CN110503193B - 一种基于roi的池化运算方法和电路 - Google Patents

一种基于roi的池化运算方法和电路 Download PDF

Info

Publication number
CN110503193B
CN110503193B CN201910675407.7A CN201910675407A CN110503193B CN 110503193 B CN110503193 B CN 110503193B CN 201910675407 A CN201910675407 A CN 201910675407A CN 110503193 B CN110503193 B CN 110503193B
Authority
CN
China
Prior art keywords
pooling
unit
value
remainder
quotient
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910675407.7A
Other languages
English (en)
Other versions
CN110503193A (zh
Inventor
廖裕民
张钟辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Rockchip Electronics Co Ltd
Original Assignee
Rockchip Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Rockchip Electronics Co Ltd filed Critical Rockchip Electronics Co Ltd
Priority to CN201910675407.7A priority Critical patent/CN110503193B/zh
Publication of CN110503193A publication Critical patent/CN110503193A/zh
Application granted granted Critical
Publication of CN110503193B publication Critical patent/CN110503193B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/535Dividing only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Mathematics (AREA)
  • Biomedical Technology (AREA)
  • Neurology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)

Abstract

本发明提供了一种基于ROI的池化运算方法和电路,所述方法包括以下步骤:除法运算单元根据源图像尺寸和目标图像尺寸的大小关系,进行除法运算,得到商值和余数值,并将商值存储至商值缓存单元,将余数值存储至余数值缓存单元池化窗划分单元根据商值和余数值确定源图像的划分模式,以及根据确定的划分模式将源图像划分为若干池化窗,并依次获取各池化窗对应的图像数据;池化单元对各池化窗的图像数据进行池化操作,得到目标图像。本发明的池化运算电路逻辑清晰,易于控制,可以高效实现ROI池化运算操作。

Description

一种基于ROI的池化运算方法和电路
技术领域
本发明涉及芯片电路设计领域,特别涉及一种池化运算方法和电路。
背景技术
随着人工智能深度学习神经网络的快速发展,人们对人工智能应用的需求越来越强烈。由于深度学习神经网络自身的特性对硬件资源的要求较高,在运行时将产生巨大的功耗,导致电子设备续航能力差、功耗大等问题。而池化技术是神经网络运算过程中最重要的计算之一,目前的神经网络加速电路往往将池化运算交给CPU或者GPU等通用计算单元进行,由于其计算量巨大且控制复杂,造成池化运算往往成为整体神经网络运算的瓶颈。
ROI(region of interest)算法又是监测网络中最重要的组成部分,而现有技术中并没有一个很高效的ROI的加速电路,在执行该算法时通常要占用大量的存储单元和运算单元,且不容易控制。
发明内容
为此,需要提供一种基于池化运算的技术方案,用以解决池化运算计算量大、控制复杂,导致在运行过程中功耗大的问题。
为实现上述目的,发明人提供了一种基于ROI的池化运算电路,所述电路包括除法运算单元、余数值缓存单元、商值缓存单元、池化窗划分单元、池化单元;
所述除法运算单元分别与余数值缓存单元、商值缓存单元连接;所述池化窗划分单元分别与余数值缓存单元、商值缓存单元连接,所述池化窗划分单元还与池化单元连接;
所述除法运算单元用于根据源图像尺寸和目标图像尺寸的大小关系,进行除法运算,得到商值和余数值,并将商值存储至商值缓存单元,将余数值存储至余数值缓存单元;所述图像源尺寸的大小大于目标尺寸的大小;
所述池化窗划分单元用于根据商值和余数值确定源图像的划分模式,以及根据确定的划分模式将源图像划分为若干池化窗,并依次获取各池化窗对应的图像数据;
所述池化单元用于对各池化窗的图像数据进行池化操作,得到目标图像。
进一步地,所述商值缓存单元包括第一商值缓存单元和第二商值缓存单元,所述余数值缓存单元包括第一余数值缓存单元和第二余数值缓存单元;
“除法运算单元用于根据源图像尺寸和目标图像尺寸的大小关系,进行除法运算,得到商值和余数值,并将商值存储至商值缓存单元,将余数值存储至余数值缓存单元”包括:
除法运算单元用于根据源图像和目标图像行数的大小关系,进行除法运算,得到第一商值和第一余数值,并将所述第一商值存储于第一商值缓存单元,将第二商值存储于第二商值缓存单元;以及根据源图像和目标图像列数的大小关系,进行除法运算,得到第二商值和第二余数值,将第二商值存储于第二商值缓存单元,将第二余数值存储于第二余数值缓存单元中;
“池化窗划分单元用于根据商值和余数值确定源图像的划分模式,以及根据确定的划分模式将源图像划分为若干池化窗”包括:
池化窗划分单元用于根据第一商值和第一余数值确定源图像的行划分模式,根据第二商值和第二余数值确定源图像的列划分模式,并根据行划分模式和列划分模式将源图像划分为MxN个池化窗,M的数值为所述行划分模式划分出的行数,N的数值为所述列划分模式划分出的列数。
进一步地,“池化窗划分单元用于根据第一商值和第一余数值确定源图像的行划分模式”包括:
池化窗划分单元用于先以第一商值为单位对源图像行进行划分,得到若干划分行池化窗,再根据第一余数值的大小按第一预设顺序将剩余行平均分配至对应的划分行池化窗中;
“根据第二商值和第二余数值确定源图像的列划分模式”包括:
池化窗划分单元用于先以第二商值为单位对源图像列进行划分,得到若干划分列池化窗,再根据第二余数值的大小按第二预设顺序将剩余列平均分配至对应的划分列池化窗中。
进一步地,所述第一预设顺序为自上而下且顺序靠前,和/或,第二预设顺序为自左向右且顺序靠前。
进一步地,所池化单元包括横向池化单元和纵向池化单元;
所述横向池化单元用于根据横向池化格的大小和横向步进值对池化窗进行横向池化处理;
所述纵向池化单元用于根据纵向池化格的大小和纵向步进值对池化窗进行纵向池化处理。
发明人还提供了一种基于ROI的池化运算方法,所述方法应用于基于ROI的池化运算电路,所述电路包括除法运算单元、余数值缓存单元、商值缓存单元、池化窗划分单元、池化单元;
所述除法运算单元分别与余数值缓存单元、商值缓存单元连接;所述池化窗划分单元分别与余数值缓存单元、商值缓存单元连接,所述池化窗划分单元还与池化单元连接;
所述方法包括以下步骤:
除法运算单元根据源图像尺寸和目标图像尺寸的大小关系,进行除法运算,得到商值和余数值,并将商值存储至商值缓存单元,将余数值存储至余数值缓存单元;所述图像源尺寸的大小大于目标尺寸的大小;
池化窗划分单元根据商值和余数值确定源图像的划分模式,以及根据确定的划分模式将源图像划分为若干池化窗,并依次获取各池化窗对应的图像数据;
池化单元对各池化窗的图像数据进行池化操作,得到目标图像。
进一步地,所述商值缓存单元包括第一商值缓存单元和第二商值缓存单元,所述余数值缓存单元包括第一余数值缓存单元和第二余数值缓存单元;
“除法运算单根据源图像尺寸和目标图像尺寸的大小关系,进行除法运算,得到商值和余数值,并将商值存储至商值缓存单元,将余数值存储至余数值缓存单元”包括:
除法运算单元根据源图像和目标图像行数的大小关系,进行除法运算,得到第一商值和第一余数值,并将所述第一商值存储于第一商值缓存单元,将第二商值存储于第二商值缓存单元;以及根据源图像和目标图像列数的大小关系,进行除法运算,得到第二商值和第二余数值,将第二商值存储于第二商值缓存单元,将第二余数值存储于第二余数值缓存单元中;
“池化窗划分单元根据商值和余数值确定源图像的划分模式,以及根据确定的划分模式将源图像划分为若干池化窗”包括:
池化窗划分单元根据第一商值和第一余数值确定源图像的行划分模式,根据第二商值和第二余数值确定源图像的列划分模式,并根据行划分模式和列划分模式将源图像划分为MxN个池化窗,M的数值为所述行划分模式划分出的行数,N的数值为所述列划分模式划分出的列数。
进一步地,“池化窗划分单元根据第一商值和第一余数值确定源图像的行划分模式”包括:
池化窗划分单元先以第一商值为单位对源图像行进行划分,得到若干划分行池化窗,再根据第一余数值的大小按第一预设顺序将剩余行平均分配至对应的划分行池化窗中;
“根据第二商值和第二余数值确定源图像的列划分模式”包括:
池化窗划分单元先以第二商值为单位对源图像列进行划分,得到若干划分列池化窗,再根据第二余数值的大小按第二预设顺序将剩余列平均分配至对应的划分列池化窗中。
进一步地,所述第一预设顺序为自上而下且顺序靠前,和/或,第二预设顺序为自左向右且顺序靠前。
进一步地,所池化单元包括横向池化单元和纵向池化单元;所述方法包括:
横向池化单元根据横向池化格的大小和横向步进值对池化窗进行横向池化处理;
纵向池化单元根据纵向池化格的大小和纵向步进值对池化窗进行纵向池化处理。
上述技术方案所述的基于ROI的池化运算方法和电路,所述方法包括以下步骤:除法运算单元根据源图像尺寸和目标图像尺寸的大小关系,进行除法运算,得到商值和余数值,并将商值存储至商值缓存单元,将余数值存储至余数值缓存单元池化窗划分单元根据商值和余数值确定源图像的划分模式,以及根据确定的划分模式将源图像划分为若干池化窗,并依次获取各池化窗对应的图像数据;池化单元对各池化窗的图像数据进行池化操作,得到目标图像。本发明的池化运算电路逻辑清晰,易于控制,可以高效实现ROI池化运算操作。
附图说明
图1为本发明一实施例涉及的基于ROI的池化运算电路的示意图;
图2为本发明一实施例涉及的某一源图像部分的划分模式示意图;
图3为本发明一实施例涉及的划分后的源图像的示意图;
图4为本发明一实施例涉及的池化窗划分单元的示意图;
图5为本发明一实施例涉及的池化运算过程的示意图;
图6为本发明另一实施例涉及的池化运算方法的流程图;
图7为本发明一实施例涉及的获取源图像数据的示意图。
附图标记说明:
101、除法运算单元;
102、余数值缓存单元;
103、商值缓存单元;
104、池化窗划分单元;1041、池化窗计数器;1042、余数判断单元;1043、池化窗尺寸缓存单元;
105、池化单元;1051、横向池化单元;1052、纵向池化单元;
106、源图像存储单元;
107、ROI数据读取控制单元;
108、ROI区域数据存储单元。
具体实施方式
为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。
请参阅图1,本发明一实施例涉及的基于ROI的池化运算电路的示意图。所述电路包括除法运算单元101、余数值缓存单元102、商值缓存单元103、池化窗划分单元104、池化单元105;
所述除法运算单元101分别与余数值缓存单元102、商值缓存单元103连接;所述池化窗划分单元104分别与余数值缓存单元102、商值缓存单元103连接,所述池化窗划分单元104还与池化单元105连接;
所述除法运算单元101用于根据源图像尺寸和目标图像尺寸的大小关系,进行除法运算,得到商值和余数值,并将商值存储至商值缓存单元103,将余数值存储至余数值缓存单元102;所述图像源尺寸的大小大于目标尺寸的大小。
所述池化窗划分单元104用于根据商值和余数值确定源图像的划分模式,以及根据确定的划分模式将源图像划分为若干池化窗,并依次获取各池化窗对应的图像数据;
所述池化单元105用于对各池化窗的图像数据进行池化操作,得到目标图像。
通过上述硬件电路的设计,在使用过程中只需输入源图像的尺寸大小和目标目标的尺寸大小,电路将自动进行运算以输出目标图像。在运算过程中,先确定源图像对应的划分模式,以及根据划分模式将源图像划分为若干池化窗,再基于池化窗依次对源图像进行池化处理。由于的划分模式的确定是根据预定规则执行的,因而使得划分模式的确定变得快速高效,进而提高了电路整体的池化处理速度。提升了池化效率。
在某些实施例中,所述商值缓存单元1033包括第一商值缓存单元和第二商值缓存单元,所述余数值缓存单元包括第一余数值缓存单元和第二余数值缓存单元。
“除法运算单元用于根据源图像尺寸和目标图像尺寸的大小关系,进行除法运算,得到商值和余数值,并将商值存储至商值缓存单元,将余数值存储至余数值缓存单元”包括:
除法运算单元101用于根据源图像和目标图像行数的大小关系,进行除法运算,得到第一商值和第一余数值,并将所述第一商值存储于第一商值缓存单元,将第二商值存储于第二商值缓存单元;以及根据源图像和目标图像列数的大小关系,进行除法运算,得到第二商值和第二余数值,将第二商值存储于第二商值缓存单元,将第二余数值存储于第二余数值缓存单元中;
“池化窗划分单元用于根据商值和余数值确定源图像的划分模式,以及根据确定的划分模式将源图像划分为若干池化窗”包括:
池化窗划分单元104用于根据第一商值和第一余数值确定源图像的行划分模式,根据第二商值和第二余数值确定源图像的列划分模式,并根据行划分模式和列划分模式将源图像划分为MxN个池化窗,M的数值为所述行划分模式划分出的行数,N的数值为所述列划分模式划分出的列数。
优选的,“池化窗划分单元用于根据第一商值和第一余数值确定源图像的行划分模式”包括:
池化窗划分单元用于先以第一商值为单位对源图像行进行划分,得到若干划分行池化窗,再根据第一余数值的大小按第一预设顺序将剩余行平均分配至对应的划分行池化窗中;
“根据第二商值和第二余数值确定源图像的列划分模式”包括:
池化窗划分单元用于先以第二商值为单位对源图像列进行划分,得到若干划分列池化窗,再根据第二余数值的大小按第二预设顺序将剩余列平均分配至对应的划分列池化窗中。
如图2和图3所示,假设源图像的尺寸大小为17x17(即包含有17行17列个子块),目标图像的尺寸大小为7x7(即包含有7行7列个子块),那么经过除法运算,以行为例,可得商值为2,余数值为3。因而在确定该图像的行划分模式时,会先将该图像横向分为7个池化窗,每个池化窗的行数为2行,剩余3行会按照第一预设顺序平均分配至对应的行池化窗中。例如第一预设顺序为自上而下且顺序靠前,那么剩余的3行将会平均分配至自上而下前3个行池化窗中,这样自上而下的7个行池化窗对应的行数依次为:3行,3行,3行,2行,2行,2行,2行,从而完成源图像行方向上的划分。
当然,在另一些实施例中,第一预设顺序还可以是其他顺序,例如可以是自下而上且顺序靠前的几个,也可以是自上而下顺序且行数为奇数或偶数的顺序。
同样以源图像的尺寸大小为17x17(即包含有17行17列个子块),目标图像的尺寸大小为7x7(即包含有7行7列个子块),那么经过除法运算,以列为例,可得商值为2,余数值为3。因而在确定该图像的列划分模式时,会先将该图像纵向分为7个池化窗,每个池化窗的列数为2列,剩余3列会按照第一预设顺序平均分配至对应的行池化窗中。例如第一预设顺序为自上而下且顺序靠前,那么剩余的3列将会平均分配至自左而右前3个列池化窗中,这样自左而右的7个列池化窗对应的列数依次为:3列,3列,3列,2列,2列,2列,2列,从而完成源图像列方向上的划分。
再比如源图像尺寸大小为10x15,目标图像的尺寸大小为4x4,那么经过除法运算,可得第一余数值为2,第一商值2,第二余数值为3,第二商值3。假设所述第一预设顺序为自上而下且顺序靠前,和/或,第二预设顺序为自左向右且顺序靠前。那么,源图像的行划分模式将被确定为:自上而下分为4行,行数依次为3行(第一商值+1),3行(第一商值+1),2行(第一商值),2行(第一商值)。源图像的列划分模式将被确定为:自左而右分为4列,列数依次为3列(第二商值+1),3列(第二商值+1),3列(第二商值+1),2行(第2商值)。源图像通过上述行划分模式和列划分模式进行划分后,可以得到4x4共计16个池化窗,而后可以分别对各个池化窗进行池化计算,并将池化结果输出。
如图1所示,在某些实施例中,所述装置还包括源图像存储单元106、ROI数据读取控制单元107和ROI区域数据存储单元108,所述源图像存储单元106与ROI数据读取控制单元107连接,所述ROI数据读取控制单元107和ROI区域数据存储单元108连接。
所述源图像存储单元106用于存储源图像数据,所述ROI数据读取控制单元107用于从源图像存储单元读取当前需要进行池化操作的池化窗对应的图像数据,并将读取的池化窗数据缓存至ROI区域数据存储单元108。而后池化窗划分单元可以从ROI区域数据存储单元108中读取当前需要进行池化操作的池化窗对应的图像数据,转交给横向池化单元和纵向池化单元进行池化处理。
如图7所示,池化窗划分单元获取源图像数据具体方式如下:
1、根据整个feature_Data的起始地址st_addr进行计算:
2、ROI取数起始地址为roi_st_y*line_stride+roi_st_x*32Byte;
然后区域的宽高就设置为roi_width和roi_height;
3、把上述宽度roi_width和高度roi_height配置交给rdma去读数。
如图4在某些实施方式中,所述池化窗划分单元104包括池化窗计数器1041、余数判断单元1042、池化窗尺寸缓存单元1043。所述池化窗计数器1041与余数判断单元1042连接,所述余数判断单元1042与池化窗尺寸缓存单元1043连接,所述余数判断单元1042与余数值缓存单元102连接,所述池化窗尺寸缓存单元1043与商值缓存单元103连接。
在使用过程中,池化窗计数器1041用于产生第一寄存器计数值(pool_cnt)寄存器计数值,代表当前计算的是第几个池化窗,其内部有一个像素计数器,当像素计数器记录的个数达到池化窗尺寸缓存单元送来的池化窗尺寸(pool_size)寄存器值时,pool_cnt第一寄存器计数值向上加一。
所述余数判断单元1042用于产生第二寄存器计数值(fst_roi_size)寄存器值,当余数不为0时,起始值为高,代表池化窗尺寸需要在商的基础上加一,fst_roi_size值为低时代表池化窗尺寸等于商的值。Fst_roi判断单元根据池化窗计数器送来的当前计算的是第几个池化窗,和余数进行比较判断,当当前计算的池化窗个数已经大于或者等于余数值时,fst_roi_size变为低.
池化窗尺寸缓存单元,产生pool_size寄存器值,pool_size表示当前的池化窗尺寸。当Fst_roi判断单元送来的fst_roi_size寄存器值为高时,池化窗尺寸需要在商的基础上加一,fst_roi_size值为低时代表池化窗尺寸等于商的值.。
在某些实施例中,所述池化单元105包括横向池化单元1051和纵向池化单元1052;所述横向池化单元1051用于根据横向池化格的大小和横向步进值对池化窗进行横向池化处理;所述纵向池化单元1052用于根据纵向池化格的大小和纵向步进值对池化窗进行纵向池化处理。
如图5所示,横向池化单元具进行横向池化处理的控制方法如下:
1、水平方向上做了fst_roi_size_w,pool_size_w,w_pool_cnt三个寄存器变量值。
fst_roi_size_w表示是否还是使用"商+1"的池化尺寸,当其为高时表示使用"商+1"的池化尺寸,为低时表示使用"商"的池化尺寸。当w_pool_cnt的值大于余数值后值从高变为低;
w_pool_cnt表示当前做的是第几个池化窗运算;
pool_size_w表示当前池化窗的大小,当fst_roi_size_w为高时值为"商+1"的池化尺寸,当fst_roi_size_w为低时值为"商"的池化尺寸;
2、时序如图所示,每行都按照该时序走一遍.直到所有行算完。
3、当读入数据达到池化窗大小时,对这几个数据做最大数比较或者最小数比较,然后输出结果给纵向池化单元。
纵向池化单元进行纵向池化的方法与横向池化方法类似,此处不再赘述。
如图6所示,发明人还提供了一种基于ROI的池化运算方法,所述方法应用于基于ROI的池化运算电路,所述电路包括除法运算单元、余数值缓存单元、商值缓存单元、池化窗划分单元、池化单元;
所述除法运算单元分别与余数值缓存单元、商值缓存单元连接;所述池化窗划分单元分别与余数值缓存单元、商值缓存单元连接,所述池化窗划分单元还与池化单元连接;
所述方法包括以下步骤:
首先进入步骤S601除法运算单元根据源图像尺寸和目标图像尺寸的大小关系,进行除法运算,得到商值和余数值,并将商值存储至商值缓存单元,将余数值存储至余数值缓存单元;所述图像源尺寸的大小大于目标尺寸的大小;
而后进入步骤S602池化窗划分单元根据商值和余数值确定源图像的划分模式,以及根据确定的划分模式将源图像划分为若干池化窗,并依次获取各池化窗对应的图像数据;
而后进入步骤S603池化单元对各池化窗的图像数据进行池化操作,得到目标图像。
在某些实施例中,所述商值缓存单元包括第一商值缓存单元和第二商值缓存单元,所述余数值缓存单元包括第一余数值缓存单元和第二余数值缓存单元;
“除法运算单根据源图像尺寸和目标图像尺寸的大小关系,进行除法运算,得到商值和余数值,并将商值存储至商值缓存单元,将余数值存储至余数值缓存单元”包括:
除法运算单元根据源图像和目标图像行数的大小关系,进行除法运算,得到第一商值和第一余数值,并将所述第一商值存储于第一商值缓存单元,将第二商值存储于第二商值缓存单元;以及根据源图像和目标图像列数的大小关系,进行除法运算,得到第二商值和第二余数值,将第二商值存储于第二商值缓存单元,将第二余数值存储于第二余数值缓存单元中;
“池化窗划分单元根据商值和余数值确定源图像的划分模式,以及根据确定的划分模式将源图像划分为若干池化窗”包括:
池化窗划分单元根据第一商值和第一余数值确定源图像的行划分模式,根据第二商值和第二余数值确定源图像的列划分模式,并根据行划分模式和列划分模式将源图像划分为MxN个池化窗,M的数值为所述行划分模式划分出的行数,N的数值为所述列划分模式划分出的列数。
这样,只需获知源图像的高(即总行数)和宽(即总列数),以及目标图像的高和宽,就可以通过除法运算单元计算出两者对应的商值和余数值,从而对源图像进行有效划分。
在某些实施例中,“池化窗划分单元根据第一商值和第一余数值确定源图像的行划分模式”包括:
池化窗划分单元先以第一商值为单位对源图像行进行划分,得到若干划分行池化窗,再根据第一余数值的大小按第一预设顺序将剩余行平均分配至对应的划分行池化窗中;
“根据第二商值和第二余数值确定源图像的列划分模式”包括:
池化窗划分单元先以第二商值为单位对源图像列进行划分,得到若干划分列池化窗,再根据第二余数值的大小按第二预设顺序将剩余列平均分配至对应的划分列池化窗中。
优选的,所述第一预设顺序为自上而下且顺序靠前,和/或,第二预设顺序为自左向右且顺序靠前。这样,可以保证电路在同一时间段内处理数据量相同的池化窗,如对于图3中第一行池化窗的处理,先处理尺寸大小为3x3的池化窗(即序号为1、2、3的池化窗),再处理尺寸大小为3x2的池化窗(即序号为4、5、6的池化窗),从而使得池化处理过程有序进行,不发生时序电平跳变,提升池化的准确度。
在某些实施例中,所述池化单元105包括横向池化单元1051和纵向池化单元1052;所述方法包括:
横向池化单元1051根据横向池化格的大小和横向步进值对池化窗进行横向池化处理;
纵向池化单元1052根据纵向池化格的大小和纵向步进值对池化窗进行纵向池化处理。
优选的,池化的方式可以包括最大池化、最小池化和平均池化,池化的方式可以预先进行配置。以图3中编号为1的3x3池化窗为例,假设横向单元格的大小为2,步进值为1,池化的方式为最大池化,那么其会依次比较该池化窗中,第1行第1列与第1行第2列两者之间的最大值,并将前述两者确定的最大值与第1行第3列进行比较,从而筛选出第1行3个列中数值最大的一个。纵向池化格随步进值的比较,同理可得,此处不再赘述。简言之,就是筛选出3x3池化窗中数值最大的一个进行输出。当然,如果配置的池化方式为最小池化模式或者平均池化模式时,则依次对应输出的是池化窗中最小的数值或平均数值。
本发明提供了一种基于ROI的池化运算方法和电路,所述方法包括以下步骤:除法运算单元根据源图像尺寸和目标图像尺寸的大小关系,进行除法运算,得到商值和余数值,并将商值存储至商值缓存单元,将余数值存储至余数值缓存单元池化窗划分单元根据商值和余数值确定源图像的划分模式,以及根据确定的划分模式将源图像划分为若干池化窗,并依次获取各池化窗对应的图像数据;池化单元对各池化窗的图像数据进行池化操作,得到目标图像。本发明的池化运算电路逻辑清晰,易于控制,可以高效实现ROI池化运算操作。
需要说明的是,尽管在本文中已经对上述各实施例进行了描述,但并非因此限制本发明的专利保护范围。因此,基于本发明的创新理念,对本文所述实施例进行的变更和修改,或利用本发明说明书及附图内容所作的等效结构或等效流程变换,直接或间接地将以上技术方案运用在其他相关的技术领域,均包括在本发明的专利保护范围之内。

Claims (10)

1.一种基于ROI的池化运算电路,其特征在于,所述电路包括除法运算单元、余数值缓存单元、商值缓存单元、池化窗划分单元、池化单元;
所述除法运算单元分别与余数值缓存单元、商值缓存单元连接;所述池化窗划分单元分别与余数值缓存单元、商值缓存单元连接,所述池化窗划分单元还与池化单元连接;
所述除法运算单元用于根据源图像尺寸和目标图像尺寸的大小关系,进行除法运算,得到商值和余数值,并将商值存储至商值缓存单元,将余数值存储至余数值缓存单元;所述图像源尺寸的大小大于目标尺寸的大小;
所述池化窗划分单元用于根据商值和余数值确定源图像的划分模式,以及根据确定的划分模式将源图像划分为若干池化窗,并依次获取各池化窗对应的图像数据;
所述池化单元用于对各池化窗的图像数据进行池化操作,得到目标图像;
所述池化窗划分单元包括池化窗计数器、余数判断单元和池化窗尺寸缓存单元;所述池化窗计数器与余数判断单元连接,所述余数判断单元与池化窗尺寸缓存单元连接,所述余数判断单元与余数值缓存单元连接,所述池化窗尺寸缓存单元与商值缓存单元连接;
所述池化窗尺寸缓存单元用于存储当前池化窗尺寸;
所述池化窗计数器用于产生第一寄存器计数值,所述池化窗计数器包括像素计数器,当像素计数器记录的像素个数达到所述池化窗尺寸缓存单元送来的池化窗尺寸时,第一寄存器计数值向上加一;
所述余数判断单元用于产生第二寄存器计数值,当所述余数值不为0时,所述第二寄存器计数值的起始值为高;所述余数判断单元判断当前第一寄存器计数值是否大于余数值时,若是则将所述第二寄存器计数值变为低。
2.如权利要求1所述的基于ROI的池化运算电路,其特征在于,所述商值缓存单元包括第一商值缓存单元和第二商值缓存单元,所述余数值缓存单元包括第一余数值缓存单元和第二余数值缓存单元;
“除法运算单元用于根据源图像尺寸和目标图像尺寸的大小关系,进行除法运算,得到商值和余数值,并将商值存储至商值缓存单元,将余数值存储至余数值缓存单元”包括:
除法运算单元用于根据源图像和目标图像行数的大小关系,进行除法运算,得到第一商值和第一余数值,并将所述第一商值存储于第一商值缓存单元,将第二商值存储于第二商值缓存单元;以及根据源图像和目标图像列数的大小关系,进行除法运算,得到第二商值和第二余数值,将第二商值存储于第二商值缓存单元,将第二余数值存储于第二余数值缓存单元中;
“池化窗划分单元用于根据商值和余数值确定源图像的划分模式,以及根据确定的划分模式将源图像划分为若干池化窗”包括:
池化窗划分单元用于根据第一商值和第一余数值确定源图像的行划分模式,根据第二商值和第二余数值确定源图像的列划分模式,并根据行划分模式和列划分模式将源图像划分为MxN个池化窗,M的数值为所述行划分模式划分出的行数,N的数值为所述列划分模式划分出的列数。
3.如权利要求2所述的基于ROI的池化运算电路,其特征在于,“池化窗划分单元用于根据第一商值和第一余数值确定源图像的行划分模式”包括:
池化窗划分单元用于先以第一商值为单位对源图像行进行划分,得到若干划分行池化窗,再根据第一余数值的大小按第一预设顺序将剩余行平均分配至对应的划分行池化窗中;
“根据第二商值和第二余数值确定源图像的列划分模式”包括:
池化窗划分单元用于先以第二商值为单位对源图像列进行划分,得到若干划分列池化窗,再根据第二余数值的大小按第二预设顺序将剩余列平均分配至对应的划分列池化窗中。
4.如权利要求3所述的基于ROI的池化运算电路,其特征在于,所述第一预设顺序为自上而下且顺序靠前,和/或,第二预设顺序为自左向右且顺序靠前。
5.如权利要求1所述的基于ROI的池化运算电路,其特征在于,所池化单元包括横向池化单元和纵向池化单元;
所述横向池化单元用于根据横向池化格的大小和横向步进值对池化窗进行横向池化处理;
所述纵向池化单元用于根据纵向池化格的大小和纵向步进值对池化窗进行纵向池化处理。
6.一种基于ROI的池化运算方法,其特征在于,所述方法应用于基于ROI的池化运算电路,所述电路包括除法运算单元、余数值缓存单元、商值缓存单元、池化窗划分单元、池化单元;
所述除法运算单元分别与余数值缓存单元、商值缓存单元连接;所述池化窗划分单元分别与余数值缓存单元、商值缓存单元连接,所述池化窗划分单元还与池化单元连接;
所述方法包括以下步骤:
除法运算单元根据源图像尺寸和目标图像尺寸的大小关系,进行除法运算,得到商值和余数值,并将商值存储至商值缓存单元,将余数值存储至余数值缓存单元;所述图像源尺寸的大小大于目标尺寸的大小;
池化窗划分单元根据商值和余数值确定源图像的划分模式,以及根据确定的划分模式将源图像划分为若干池化窗,并依次获取各池化窗对应的图像数据;
池化单元对各池化窗的图像数据进行池化操作,得到目标图像;
所述池化窗划分单元包括池化窗计数器、余数判断单元和池化窗尺寸缓存单元;所述池化窗计数器与余数判断单元连接,所述余数判断单元与池化窗尺寸缓存单元连接,所述余数判断单元与余数值缓存单元连接,所述池化窗尺寸缓存单元与商值缓存单元连接;
所述池化窗尺寸缓存单元用于存储当前池化窗尺寸;
所述池化窗计数器用于产生第一寄存器计数值,所述池化窗计数器包括像素计数器,当像素计数器记录的像素个数达到所述池化窗尺寸缓存单元送来的池化窗尺寸时,第一寄存器计数值向上加一;
所述余数判断单元用于产生第二寄存器计数值,当所述余数值不为0时,所述第二寄存器计数值的起始值为高;所述余数判断单元判断当前第一寄存器计数值是否大于余数值时,若是则将所述第二寄存器计数值变为低。
7.如权利要求6所述的基于ROI的池化运算方法,其特征在于,所述商值缓存单元包括第一商值缓存单元和第二商值缓存单元,所述余数值缓存单元包括第一余数值缓存单元和第二余数值缓存单元;
“除法运算单根据源图像尺寸和目标图像尺寸的大小关系,进行除法运算,得到商值和余数值,并将商值存储至商值缓存单元,将余数值存储至余数值缓存单元”包括:
除法运算单元根据源图像和目标图像行数的大小关系,进行除法运算,得到第一商值和第一余数值,并将所述第一商值存储于第一商值缓存单元,将第二商值存储于第二商值缓存单元;以及根据源图像和目标图像列数的大小关系,进行除法运算,得到第二商值和第二余数值,将第二商值存储于第二商值缓存单元,将第二余数值存储于第二余数值缓存单元中;
“池化窗划分单元根据商值和余数值确定源图像的划分模式,以及根据确定的划分模式将源图像划分为若干池化窗”包括:
池化窗划分单元根据第一商值和第一余数值确定源图像的行划分模式,根据第二商值和第二余数值确定源图像的列划分模式,并根据行划分模式和列划分模式将源图像划分为MxN个池化窗,M的数值为所述行划分模式划分出的行数,N的数值为所述列划分模式划分出的列数。
8.如权利要求7所述的基于ROI的池化运算方法,其特征在于,“池化窗划分单元根据第一商值和第一余数值确定源图像的行划分模式”包括:
池化窗划分单元先以第一商值为单位对源图像行进行划分,得到若干划分行池化窗,再根据第一余数值的大小按第一预设顺序将剩余行平均分配至对应的划分行池化窗中;
“根据第二商值和第二余数值确定源图像的列划分模式”包括:
池化窗划分单元先以第二商值为单位对源图像列进行划分,得到若干划分列池化窗,再根据第二余数值的大小按第二预设顺序将剩余列平均分配至对应的划分列池化窗中。
9.如权利要求8所述的基于ROI的池化运算方法,其特征在于,所述第一预设顺序为自上而下且顺序靠前,和/或,第二预设顺序为自左向右且顺序靠前。
10.如权利要求6所述的基于ROI的池化运算方法,其特征在于,所池化单元包括横向池化单元和纵向池化单元;所述方法包括:
横向池化单元根据横向池化格的大小和横向步进值对池化窗进行横向池化处理;
纵向池化单元根据纵向池化格的大小和纵向步进值对池化窗进行纵向池化处理。
CN201910675407.7A 2019-07-25 2019-07-25 一种基于roi的池化运算方法和电路 Active CN110503193B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910675407.7A CN110503193B (zh) 2019-07-25 2019-07-25 一种基于roi的池化运算方法和电路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910675407.7A CN110503193B (zh) 2019-07-25 2019-07-25 一种基于roi的池化运算方法和电路

Publications (2)

Publication Number Publication Date
CN110503193A CN110503193A (zh) 2019-11-26
CN110503193B true CN110503193B (zh) 2022-02-22

Family

ID=68586917

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910675407.7A Active CN110503193B (zh) 2019-07-25 2019-07-25 一种基于roi的池化运算方法和电路

Country Status (1)

Country Link
CN (1) CN110503193B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115828079B (zh) * 2022-04-20 2023-08-11 北京爱芯科技有限公司 一种最大池化运算的方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106354473A (zh) * 2015-07-16 2017-01-25 浙江大华技术股份有限公司 一种除法器和求商和余数的方法
CN106548512A (zh) * 2015-09-22 2017-03-29 中国石油化工股份有限公司 网格模型数据的生成方法
CN108304845A (zh) * 2018-01-16 2018-07-20 腾讯科技(深圳)有限公司 图像处理方法、装置及存储介质
CN108416430A (zh) * 2017-02-10 2018-08-17 耐能股份有限公司 卷积神经网络的池化运算装置及方法
CN109146786A (zh) * 2018-08-07 2019-01-04 北京市商汤科技开发有限公司 场景图生成方法及装置、电子设备和存储介质
CN109165728A (zh) * 2018-08-06 2019-01-08 济南浪潮高新科技投资发展有限公司 一种卷积神经网络的基本计算单元及计算方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7363469B2 (en) * 2006-03-28 2008-04-22 International Business Machines Corporation Method and system for on-demand scratch register renaming
US9613001B2 (en) * 2013-12-20 2017-04-04 Intel Corporation Processing device for performing convolution operations
CN108197536B (zh) * 2017-12-20 2019-12-17 深圳云天励飞技术有限公司 图像处理方法及装置、计算机装置及可读存储介质
CN108805285B (zh) * 2018-05-30 2022-03-29 山东浪潮科学研究院有限公司 一种卷积神经网络池化单元设计方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106354473A (zh) * 2015-07-16 2017-01-25 浙江大华技术股份有限公司 一种除法器和求商和余数的方法
CN106548512A (zh) * 2015-09-22 2017-03-29 中国石油化工股份有限公司 网格模型数据的生成方法
CN108416430A (zh) * 2017-02-10 2018-08-17 耐能股份有限公司 卷积神经网络的池化运算装置及方法
CN108304845A (zh) * 2018-01-16 2018-07-20 腾讯科技(深圳)有限公司 图像处理方法、装置及存储介质
CN109165728A (zh) * 2018-08-06 2019-01-08 济南浪潮高新科技投资发展有限公司 一种卷积神经网络的基本计算单元及计算方法
CN109146786A (zh) * 2018-08-07 2019-01-04 北京市商汤科技开发有限公司 场景图生成方法及装置、电子设备和存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于卷积神经网络图像识别的交通流量信息采集终端的设计与实现;范雪梅;《中国优秀硕士学位论文全文数据库 工程科技Ⅱ辑》;20190515(第5期);C034-581 *

Also Published As

Publication number Publication date
CN110503193A (zh) 2019-11-26

Similar Documents

Publication Publication Date Title
CN108133270B (zh) 卷积神经网络加速方法及装置
US10394929B2 (en) Adaptive execution engine for convolution computing systems
US9875420B2 (en) Performing object detection in an image
CN110390384A (zh) 一种可配置的通用卷积神经网络加速器
CN110163338B (zh) 具有运算阵列的芯片运算方法、装置、终端及芯片
CN108629406B (zh) 用于卷积神经网络的运算装置
US20220083857A1 (en) Convolutional neural network operation method and device
CN111723918A (zh) 用于卷积内核的自动生成和调谐工具
CN112395092B (zh) 数据处理方法及人工智能处理器
US20180137408A1 (en) Method and system for event-based neural networks
CN110688616B (zh) 一种基于乒乓ram的条带阵列的卷积模块及其运算方法
CN111984400A (zh) 神经网络的内存分配方法及装置
CN112633470B (zh) 优化神经网络卷积残差结构的方法、***、设备及介质
CN112668708A (zh) 一种提高数据利用率的卷积运算装置
US20190318461A1 (en) Histogram Statistics Circuit and Multimedia Processing System
CN103793873B (zh) 图像像素中值的获取方法和装置
US9336454B2 (en) Vector processor calculation of local binary patterns
CN110503193B (zh) 一种基于roi的池化运算方法和电路
CN112712457B (zh) 数据处理方法以及人工智能处理器
CN111340790B (zh) 包围盒的确定方法、装置、计算机设备和存储介质
CN110490312B (zh) 一种池化计算方法和电路
CN114254740B (zh) 卷积神经网络加速计算方法、计算***、芯片及接收机
CN114998377A (zh) 一种图像的边缘检测方法、装置、电子设备及存储介质
CN112837256B (zh) 一种用于Harris角点检测的电路***及检测方法
CN115049529A (zh) 一种图像梯度确定方法、装置、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 350003 building 18, No.89, software Avenue, Gulou District, Fuzhou City, Fujian Province

Applicant after: Ruixin Microelectronics Co.,Ltd.

Address before: 350003 building 18, No.89, software Avenue, Gulou District, Fuzhou City, Fujian Province

Applicant before: FUZHOU ROCKCHIP ELECTRONICS Co.,Ltd.

GR01 Patent grant
GR01 Patent grant