CN112132914A - 一种图像尺度空间建立方法及图像处理芯片 - Google Patents
一种图像尺度空间建立方法及图像处理芯片 Download PDFInfo
- Publication number
- CN112132914A CN112132914A CN201910557382.0A CN201910557382A CN112132914A CN 112132914 A CN112132914 A CN 112132914A CN 201910557382 A CN201910557382 A CN 201910557382A CN 112132914 A CN112132914 A CN 112132914A
- Authority
- CN
- China
- Prior art keywords
- image
- gaussian
- gaussian convolution
- pixel points
- convolution operation
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000012545 processing Methods 0.000 title claims abstract description 49
- 230000015654 memory Effects 0.000 claims abstract description 63
- 238000005096 rolling process Methods 0.000 claims description 3
- 238000013461 design Methods 0.000 abstract description 8
- 238000004364 calculation method Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000001914 filtration Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 1
- 238000012935 Averaging Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/46—Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
- G06V10/462—Salient features, e.g. scale invariant feature transforms [SIFT]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20016—Hierarchical, coarse-to-fine, multiscale or multiresolution image processing; Pyramid transform
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Image Processing (AREA)
Abstract
本发明涉及一种图像尺度空间建立方法及图像处理芯片,通过对输入的原图选用不同的尺度系数先做行顺序高斯卷积,然后把各层行高斯卷积结果暂存到各自对应的存储器中。然后从存储器中读取列数据,选用不同的尺度系数做列顺序高斯卷积,得到高斯金字塔图像。对高斯金字塔图像,采用下一层图像减上一层图像得到高斯差分金字塔。通过采用并行读取图像数据与串行高斯卷积运算相结合的方式,只使用一组高斯卷积运算单元进行分时复用,提高了运算单元使用效率;同时采用流水设计,通过读取图像数据与高斯卷积运算并行进行,保证了算法的实时性。本发明不仅大大减小了硬件电路的面积、降低了瞬时功耗,而且保证了算法的实时性。
Description
技术领域
本发明涉及机器人视觉技术领域,具体涉及一种图像尺度空间建立方法及图像处理芯片。
背景技术
SIFT算法尺度空间生成方法是在图像多尺度空间理论上发展出来的,SIFT算法为鲁棒性较好的一种图像特征检测方法。该算法不仅具有尺度、旋转、仿射、视角、光照等不变性,对目标的运动、遮挡、噪声等因素影响也能保持较好的匹配效果,广泛应用于视频跟踪、移动机器人定位与地图创建、物体识别、图像全景拼接、人脸识别等领域。但随着网络图像、高清数字图像等所需处理的图像尺寸越来越大,以及物体运动跟踪、目标识别等任务对算法实时性、高精度运算要求的增加,基于传统结构的计算机软件***,显然不能很好地满足应用需求。因此,利用硬件电路的高速并行运算能力,对SIFT算法采用高速并行架构设计,以达到实时性、高精度的应用需求,成为现在研究的热点。
SIFT算法尺度空间的建立在硬件电路实现的过程中,要均衡运算速度、运算精度和硬件电路面积等因素。判断硬件电路实现SIFT算法建立尺度空间是否达到最优,不仅需要考虑其计算精度和计算时间,还需要考虑算法实现所占用的硬件资源。硬件电路生成尺度空间很多都是采用并联方式,以节省运算时间,但采用并行架构增加运算能力的同时,硬件电路的面积也成倍增加。中国专利申请号为201810495451.5的发明申请公开了一种图像匹配描述子生成尺度空间的硬件电路实现方法,建立尺度空间高斯金字塔空间并行方法,同时对一组中所有高斯图像做高斯卷积滤波。该方法虽然通过并行架构设计增大了高斯卷积运算能力,以达到实时性的应用需求,但是高斯卷积运算单元也成倍增加,导致硬件电路面积大大增加。因此,如何加快SIFT算法尺度空间的建立速度以满足实时性,又能节省硬件电路的面积,就成为硬件电路实现SIFT算法建立尺度空间的技术难点。
发明内容
为解决上述问题,本发明提供了一种图像尺度空间建立方法及图像处理芯片,能够在保证图像处理效率的同时,减小硬件电路面积。本发明的具体技术方案如下:
一种图像尺度空间建立方法,包括如下步骤:步骤1:输入待建立图像尺度空间的原图;步骤2:采用一个高斯卷积运算单元,分别以M组不同的尺度系数对原图中的像素点进行行高斯卷积处理,并将处理结果分别存储至不同的存储器中,所述M为大于或等于6的自然数;步骤3:并行从这些存储器中以列的形式读取像素点,读取的像素点所对应的列的长度为高斯卷积核长度,在读取下一列像素点的同时,调用高斯卷积运算单元依次对已读取的当前列的像素点进行列高斯卷积处理,直到完成所有像素点的列高斯卷积处理,形成一组高斯图像;步骤4:将每组高斯图像中的下一层图像减上一层图像;步骤5:确定当前形成的一组高斯图像中倒数第三层图像进行1/2缩放后形成的新的原图,判断新的原图的像素是否小于预设像素值,如果否,则返回步骤2,如果是,则结束,并基于步骤4的结果,形成高斯差分金字塔。
进一步地,所述步骤2具体包括如下步骤:步骤21:确定一个高斯卷积运算单元,步骤22:调用第1组尺度系数,对原图中的像素点逐个进行行高斯卷积运算,并将运算结果存储至第1存储器;步骤23:判断所述第1存储器中所存储的像素点是否达到预设行数,如果是,则进入步骤24,否则返回步骤22,继续对原图中的像素点进行行高斯卷积运算;步骤24:调用第2组尺度系数,对原图中的像素点逐个进行行高斯卷积运算,并将运算结果存储至第2存储器;步骤25:判断所述第2存储器中所存储的像素点是否达到预设行数,如果是,则进入步骤26,否则返回步骤24,继续对原图中的像素点进行行高斯卷积运算;步骤26:以此类推,直到第M存储器中所存储的像素点达到预设行数,然后进入步骤3,在执行步骤3的同时,继续执行步骤22至步骤26,以滚动形式更新存储器中数据,直到原图中的像素点全部完成行高斯卷积运算。
进一步地,所述步骤3具体包括如下步骤:同时确定M个存储器中待进行列高斯卷积的像素点为待算点,确定以待算点为列中心,列长度为高斯卷积核长度的列单元所对应的像素点,并行读取列单元所对应的像素点;基于所读取的像素点,调用高斯卷积运算单元依次进行列高斯卷积运算;在进行当前待算点的列高斯卷积运算的同时,确定各存储器中的下一个待算点,继续读取下一个待算点所在的列单元所对应的像素点,供高斯卷积运算单元进行下一次列高斯卷积运算,依次类推,直到M个存储器中的全部像素点都完成了列高斯卷积运算,形成一组高斯图像。
进一步地,所述M为数值6。
进一步地,所述预设行数为33。
进一步地,步骤5中所述的确定当前形成的一组高斯图像中倒数第三层图像进行1/2缩放后形成的新的原图,具体包括如下步骤:在形成高斯图像的过程中,实时将高斯图像中倒数第三层图像中任意相邻的两行和两列的像素点相加之后除以四,得到一个新的像素点;确定所有新的像素点构成一幅1/2缩放后的图像作为新的原图。
进一步地,所述实时将高斯图像中倒数第三层图像中任意相邻的两行和两列的像素点相加之后除以四,得到一个新的像素点的步骤,具体包括如下步骤:实时确定高斯图像的倒数第三层图像中任意相邻的两行和两列像素点相交时,相交的四个像素点所对应的二进制数值;将所确定的二进制数值相加;将相加后的二进制数值的最后两位删除,所得到的数值为新的像素点所对应的二进制数值。
进一步地,所述预设像素值的大小为33pt*33pt。
一种图像处理芯片,包括:输入模块,用于输入待建立图像尺度空间的原图;一个高斯卷积运算模块,用于分别以M组不同的尺度系数对原图中的像素点进行行高斯卷积处理;M个存储器,分别用于存储高斯卷积运算模块进行行高斯卷积处理的结果;所述高斯卷积运算模块,还用于并行从M个存储器中以列的形式读取像素点,读取的像素点所对应的列的长度为高斯卷积核长度,在读取下一列像素点的同时,依次对已读取的当前列的像素点进行列高斯卷积处理,直到完成所有像素点的列高斯卷积处理,并输出一组高斯图像;差分模块,将所述高斯卷积运算模块输出的每组高斯图像中的下一层图像减上一层图像,形成高斯差分金字塔;图像缩放模块,用于对所述高斯卷积运算模块当前输出的一组高斯图像中的倒数第三层图像进行1/2缩放,形成新的原图;判断模块,用于判断所述图像缩放模块形成的新的原图的像素是否小于预设像素值,并在新的原图的像素大于或等于预设像素值时,输出新的原图至高斯卷积运算模块,或者在新的原图的像素小于预设像素值时,输出停止图像缩放的信号至图像缩放模块。
本发明的由于效果在于:本实施例所述方法和芯片,通过对输入的原图选用不同的尺度系数先做行顺序高斯卷积,然后把各层行高斯卷积结果暂存到各自对应的存储器中。然后从存储器中读取列数据,选用不同的尺度系数做列顺序高斯卷积,得到高斯金字塔图像。对高斯金字塔图像,采用下一层图像减上一层图像得到高斯差分金字塔。对高斯金字塔倒数第三层图像,采用1/2图像缩放方法,得到下一组的图像。其中,存储器用来暂存行高斯卷积结果,每一层独立存储,总共需要6个SRAM,这样有利于硬件的并行处理,提高算法实时性。因为只有一组高斯卷积运算单元,每次只能处理一层图像的高斯卷积。所以,在行高斯卷积或列高斯卷积运算前,需要进行尺度系数选择,依次选出每层的尺度系数,分时复用高斯卷积运算单元,串行运算各层高斯卷积,不仅优化了硬件电路架构,还通过采用并行读取图像数据与串行高斯卷积运算相结合的方式,只使用一组高斯卷积运算单元进行分时复用,提高了运算单元使用效率;同时采用流水设计,通过读取图像数据与高斯卷积运算并行进行,保证了算法的实时性。该方法不仅大大减小了硬件电路的面积、降低了瞬时功耗,而且保证了算法的实时性,对SIFT算法高实时性的硬件化电路实现有很高的应用价值。
附图说明
图1为本发明实施例所述的图像尺度空间建立方法的流程示意图。
图2为本发明实施例所述采用流水设计进行列高斯卷积运算的示意图。
图3为本发明实施例所述像素点进行1/2缩放的示意图。
图4为本发明实施例所述图像处理芯片的结构示意框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行详细描述。应当理解,下面所描述的具体实施例仅用于解释本发明,并不用于限定本发明。本领域的普通技术人员可以在没有一些具体细节的情况下实施实施例。例如,某些电路可以采用电路框图表示,避免实施例方案在不必要的细节描述中变得冗余和繁杂。为了不混淆实施例,可以不详细显示公知的电路、结构和技术细节。
如图1所示,一种图像尺度空间建立方法,该方法可以由视觉机器人中的主控芯片或者专用图像处理芯片执行。为了便于描述,后续实施例中会直接将该图像尺度空间建立方法的执行主体表述为机器人。当一个机器人用其视觉***分析未知场景时,没有办法预先知道拍摄到的图像中的物体尺度,因此,需要同时考虑图像在多尺度下的描述,建立图像尺度空间,以获知感兴趣物体的最佳尺度。所述图像尺度空间的建立方法具体包括如下步骤:
步骤1:机器人通过其自身的摄像头拍摄到图像,并将拍摄到的图像作为待建立图像尺度空间的原图输入主控芯片或者专用图像处理芯片,然后进入步骤2进行下一步处理。
步骤2:首先,机器人采用一个高斯卷积运算单元,分别以M组不同的尺度系数对原图中的像素点进行行高斯卷积处理。所述高斯卷积运算单元进行高斯卷积运算需要用到乘法器,乘法器的数据位宽和数量对硬件电路面积影响较大。乘法器的数据位宽影响到高斯卷积精度,然而在算法一定精度要求下,乘法器的数据位宽也就确定了。所以,为了减小硬件电路面积,应当尽量减少乘法器的数量。根据高斯卷积的对称性,可以将对称位置的像素先加起来再相乘,以减少高斯卷积运算单元的乘法器数量。机器人只采用一个高斯卷积运算单元,通过分时复用该运算单元,可以在保证运算效率的同时,大大减小硬件电路面积,降低瞬时功耗。具体的利用不同的尺度系数对原图中的像素点进高斯卷积运算的方法在现有技术中已经公开,此处不再赘述。高斯金字塔是关于尺度的连续空间,当高斯金字塔层数越多时,所得结果越精确,但由于层数增加所带来的计算量也成倍增加,因此要适当选择高斯金字塔的组数和层数,所选择的层数对应的就是M的数值。SIFT算法建议高斯金字塔组数O=[log2(min(M,N))]-3,其中,M、N分别为图像的行数和列数,建议每组层数最少6层,所以,需要M≥6组不同的尺度系数。高斯卷积具有可叠加性,对每组第一层图像采用不同的尺度系数进行高斯卷积可以得到其余各层。高斯金字塔同一组图像的大小一样,便于模块化处理。
然后,机器人实时将行高斯卷积处理后的像素点分别存储至不同的存储器中,比如,以第一组尺度系数进行处理的像素点存入第一个存储器,以第二组尺度系数进行处理的像素点存入第二个存储器,以第M组尺度系数进行处理的像素点存入第M个存储器,各组尺度系数是不同的,一组尺度系数对应一个存储器,所述存储器采用的是静态随机存取存储器SRAM。采用这种存储方式,可以实现后续数据的并行读取,提高数据读取效率。
步骤3:机器人并行从这些存储器中以列的形式读取像素点,所述列的形式是指沿图像分辨率的高度方向,即沿图像分辨率的高度方向读取像素点,先读取第一个像素点,接着读取第一个像素点下方的第二个像素点,再读取第二个像素点下方的第三个像素点,一直读取到该列的最后一个像素点。需要说明的是,所读取的这一列的像素点的长度为高斯卷积核长度,高斯卷积核长度是机器人根据***内置的参数确定的,进行图像的高斯卷积处理时,高斯卷积核长度越大,计算精度虽然会越高,但计算的中间过程中需要存储的图像行数就越多,导致硬件电路的面积也就越大,优选的,本实施例取值33pt。读取完这一列的像素点后,读取与第一个像素点并排并且相邻的像素点以及该像素点下方的其它像素点,以此类推,一列一列地读取像素点。所述图像分辨率的大小是由机器人的图像传感器的配置决定的,一般为640*480 pt、1024*768 pt或者1920*1080 pt,等等。其中,640、1024和1920就表示图像分辨率的宽度值,简单理解就是图像的水平方向的长度,480、768和1080就表示图像分辨率的高度值,简单理解就是图像的竖直方向的长度。需要注意的是,所读取的像素点所对应的列的长度为高斯卷积核长度,不是整个图像分辨率的高度。
机器人在读取下一列像素点的同时,调用高斯卷积运算单元依次对已读取的当前列的像素点进行列高斯卷积处理,直到完成所有像素点的列高斯卷积处理。因为计算每个像素点的行高斯卷积或列高斯卷积,需要用到的像素点数量L = 高斯卷积核长度。在调用卷积运算单元运算前,需要把该像素点所有用到的数据都准备好。行高斯卷积运算时通过数据的重复利用,采用数据移位寄存器只需要读取一行数据即可。但列高斯卷积运算需要把存储器中L行数据全部读取出来。这样,完成一整行像素点的高斯金字塔图像建立,列高斯卷积需要读取的数据量是行高斯卷积的L倍,成为占用高斯卷积运算过程的主要时间。所以,在进行列高斯卷积计算时采用并行架构读取数据,同时并行读取上述M个存储器中的数据,把M层数据同时准备好,以增强算法实时性。
根据高斯卷积具有线性可分的性质,一个二维高斯滤波函数可分解为两个一维高斯滤波函数乘积,即采用行顺序高斯滤波和列顺序高斯滤波级联来达到滤波目的,这样做有利于硬件电路并行架构实现,节省硬件资源。当所有像素点的列高斯卷积处理完成,就形成一组高斯图像。
步骤4:将每组高斯图像中的下一层图像减上一层图像,具体的图像相减的算法,现有技术已经公开,此处不再赘述。需要说明的是,图像相减的过程是实时进行的,并不需要形成两幅完整的图像后才开始相减。
步骤5:在进行上述高斯卷积运算的同时,机器人实时对当前形成的一组高斯图像中倒数第三层图像进行1/2缩放,以获取新的像素点。分析由新的像素点构成的新的原图,如果新的原图的像素大于或等于预设像素值,表明当前图像还比较大,还可以继续进行高斯处理,则返回步骤2继续进行下一组高斯图像的构建,否则,表明当前图像已经比较小,无法或者没有必要继续进行高斯处理了,所以,结束高斯图像的构建,并基于步骤4的结果,形成高斯差分金字塔。所述预设像素值可以根据待建立图像尺度空间的原图大小和运算精度的要求进行配置,一般小于高斯卷积核长度就无法进行高斯卷积运算了。所述1/2缩放的方法可以采用任意相邻四个像素点取平均值的方式,也可以向下采样的方式。当然,在实际的数据处理过程中,并不需要等到新的原图形成后才进行分析,可以在数据处理过程中实时进行分析和判断。上述整个构建差分金字塔的过程就是建立图像尺度空间的过程。所述高斯差分金字塔,即DOG(Difference of Gaussian)金字塔是在高斯金字塔的基础上构建起来的,DOG金字塔的第1组第1层是由高斯金字塔的第1组高斯图像的第2层图像减第1组高斯图像的第1层图像得到的,DOG金字塔的第1组第2层是由高斯金字塔的第1组高斯图像的第3层图像减第1组高斯图像的第2层图像得到的,DOG金字塔的第1组第3层是由高斯金字塔的第1组高斯图像的第4层图像减第1组高斯图像的第3层图像得到的,以此类推,逐组逐层生成每一个差分图像,所有差分图像构成差分金字塔图像。
本实施例所述方法,通过对输入的原图选用不同的尺度系数先做行顺序高斯卷积,然后把各层行高斯卷积结果暂存到各自对应的存储器中。然后从存储器中读取列数据,选用不同的尺度系数做列顺序高斯卷积,得到高斯金字塔图像。对高斯金字塔图像,采用下一层图像减上一层图像得到高斯差分金字塔。对高斯金字塔倒数第三层图像,采用1/2图像缩放方法,得到下一组的图像。其中,存储器用来暂存行高斯卷积结果,每一层独立存储,总共需要6个SRAM,这样有利于硬件的并行处理,提高算法实时性。因为只有一组高斯卷积运算单元,每次只能处理一层图像的高斯卷积。所以,在行高斯卷积或列高斯卷积运算前,需要进行尺度系数选择,依次选出每层的尺度系数,分时复用高斯卷积运算单元,串行运算各层高斯卷积,不仅优化了硬件电路架构,还通过采用并行读取图像数据与串行高斯卷积运算相结合的方式,只使用一组高斯卷积运算单元进行分时复用,提高了运算单元使用效率;同时采用流水设计,通过读取图像数据与高斯卷积运算并行进行,保证了算法的实时性。该方法不仅大大减小了硬件电路的面积、降低了瞬时功耗,而且保证了算法的实时性,对SIFT算法高实时性的硬件化电路实现有很高的应用价值。
作为其中一种实施方式,所述步骤2具体包括如下步骤:首先,在步骤21中,机器人确定一个高斯卷积运算单元,后续将采用该单元进行分时复用,进行不同图像的高斯卷积运算。然后进入步骤22,机器人调用第1组尺度系数,该系数是***中预先配置好的,机器人基于第1组尺度系数对原图中的像素点逐个进行行高斯卷积运算,具体的运算方法现有技术已经公开,此处不再赘述。机器人将运算结果存储至第1存储器。接着,在步骤23中,机器人判断所述第1存储器中所存储的像素点是否达到预设行数,如果是,表明当前存储的像素点已经能够进行后续的列高斯卷积运算,则进入步骤24,处理下一层图像。否则返回步骤22,继续对原图中的像素点进行行高斯卷积运算,直到所存储的像素点是否达到预设行数。所述预设行数是机器人进行列高斯卷积运算时,所需要的高斯卷积核长度,本实施例选取的长度值为33,即所设置的预设行数为33行。
在步骤24中,机器人调用第2组尺度系数,对原图中的像素点逐个进行行高斯卷积运算,并将运算结果存储至第2存储器。然后进入步骤25,判断所述第2存储器中所存储的像素点是否达到预设行数,如果是,则进入步骤26,否则返回步骤24,继续对原图中的像素点进行行高斯卷积运算。
在步骤26,按照上述相同方式,以此类推,直到第M存储器中所存储的像素点达到预设行数,然后进入步骤3,开始进行列高斯卷积运算。本实施例中,M取值为6。在执行步骤3的同时,继续执行步骤22至步骤26,以滚动形式更新存储器中数据,直到原图中的像素点全部完成行高斯卷积运算。简单地说,就是机器人会连续的进行行高斯卷积运算,以不断地的更新存储器的内容,同时,机器人可以持续地从存储器中获取新的数据进行列高斯卷积运算。
本实施例所述方法,通过采用6个独立的存储器进行6层图像的行高斯卷积结果进行存储,可以为后续的列高斯卷积运算的读取提供并行数据,提高数据读取效率。
作为其中一种实施方式,所述步骤3具体包括如下步骤:首先,机器人同时确定M=6个存储器中待进行列高斯卷积的像素点为待算点,确定以待算点为列中心,列长度为高斯卷积核长度的列单元所对应的像素点,并行读取列单元所对应的像素点。机器人确定待算点时,是按照图像中排列的像素点从左到右,从上到下逐个逐个选取和确定的。假设列长度为33,像素点A17为待算点,位于列中心,则与A1同一列的上方的像素点A1至A16,与A1同一列的下方的像素点A18至A33,与A17一起,一共33个像素点,构成一列待读取的列单元。其中,需要说明的是,对于第1至第16行像素点,由于这些像素点为中心的列方向的上方没有进行列卷积运算所需的像素点,此时,可以采用不同的方式进行处理,比如采用与待算点相同的值进行补位,或者采用按一定方式变化的像素点的值进行补位,现有技术中已经有公开类似的处理方法,此处不再赘述。
然后,机器人基于所读取的像素点,调用高斯卷积运算单元依次进行列高斯卷积运算。在进行当前待算点的列高斯卷积运算的同时,确定各存储器中的下一个待算点,继续读取下一个待算点所在的列单元所对应的像素点,供高斯卷积运算单元进行下一次列高斯卷积运算,依次类推,直到M=6个存储器中的全部像素点都完成了列高斯卷积运算,形成一组高斯图像。简单地说,就是当前图像中的像素点,全部都完成了行高斯卷积运算和列高斯卷积运算,所得出的图像就是高斯图像。6个存储器中的数据都处理完,就形成6层一组的高斯图像。
如图2所示,机器人在读取第2列数据的同时,对已读取的第1列数据进行高斯卷积运算。在读取第3列数据的同时,对已读取的第2列数据进行高斯卷积运算,以此类推,采用这种流水设计的方式完成所有像素的高斯卷积运算。假定高斯卷积核长度L=33,则每个像素点列高斯卷积运算,读取列数据需要的时间t1=33个时钟周期。串行计算6层图像的列高斯卷积所需时间t2=6个时钟周期。因为t1大于t2,所以采用分时复用一个高斯卷积运算单元,串行计算6层图像的高斯卷积,并不会增加算法的总时间,同时串行运算也降低了硬件电路的瞬时功耗。
本实施例所述方法,利用高斯卷积具有线性可分的性质,一个二维高斯滤波函数可分解为两个一维高斯滤波函数乘积,即采用行顺序高斯滤波和列顺序高斯滤波级联来达到滤波目的。假定高斯卷积核长度L = 33,一个高斯卷积运算单元所需乘法器的数量N=(L+1)/2=17。如果对一组中所有层图像同时计算高斯卷积,那么每一层图像都需要一组高斯卷积运算单元,乘法器的数量将成倍增加,导致硬件电路的面积和功耗大大增加。本实施例方法通过优化了硬件电路架构,采用并行读取图像数据与串行高斯卷积运算相结合的方式,只使用一组高斯卷积运算单元,通过分时复用提高了运算单元使用效率;同时采用流水设计,通过读取图像数据与高斯卷积运算并行进行,保证了算法的实时性。
作为其中一种实施方式,所述M为数值6,如此设置,可以达到较高的运算精度,且硬件电路面积不大。
作为其中一种实施方式,所述预设行数为33,如此,可以保证较高的运算精度。
作为其中一种实施方式,步骤5中所述的确定当前形成的一组高斯图像中倒数第三层图像进行1/2缩放后形成的新的原图,具体包括如下步骤:机器人在形成高斯图像的过程中,实时将高斯图像中倒数第三层图像中任意相邻的两行和两列的像素点相加之后除以四,得到一个新的像素点。然后确定所有新的像素点构成一幅1/2缩放后的图像作为新的原图。如图3所示,空心圆表示缩放前的像素点,黑色实心圆表示经过1/2缩放后形成的像素点。本实施例所述方法,不是采用以往简单的隔行隔列降采样的方式,而是采用任意四个相邻的像素点取平均值的方式,比降采样方法只增加少量计算,就可以实现降低分辨率的同时不丢掉其它像素点的细节,有利于得到更稳定的特征点。
具体的,所述实时将高斯图像中倒数第三层图像中任意相邻的两行和两列的像素点相加之后除以四,得到一个新的像素点的步骤,具体包括如下步骤:机器人实时确定高斯图像的倒数第三层图像中任意相邻的两行和两列像素点相交时,相交的四个像素点所对应的二进制数值。然后将所确定的二进制数值相加。再将相加后的二进制数值的最后两位删除,所得到的数值为新的像素点所对应的二进制数值。除以四的算法,可以采用硬件电路实现,即将寄存器中的数据右移位,丢掉低2位数据即可。本实施例所述方法可以简化运算方式,减小运算量,进而提高图像的处理效率。
作为其中一种实施方式,所述预设像素值的大小为33pt*33pt,如此设置,可以尽可能形成更多高斯图像,有利于获取更稳定和准确的特征点。
如图4所示,一种图像处理芯片,包括输入模块10、高斯卷积运算模块20、存储器30、差分模块40、图像缩放模块50和判断模块60。所述输入模块10用于输入待建立图像尺度空间的原图,所述原图直接通过机器人的摄像头获取到。一个高斯卷积运算模块20,用于分别以M=6组不同的尺度系数对原图中的像素点进行行高斯卷积处理,并将处理结果输出至存储器30。存储器30一共采用6个独立的SRAM,一个存储器30对应一个图层,分别用于存储高斯卷积运算模块20进行行高斯卷积处理的结果。所述高斯卷积运算模块20还用于并行从M=6个存储器中以列的形式读取像素点,读取的像素点所对应的列的长度为高斯卷积核长度,在读取下一列像素点的同时,依次对已读取的当前列的像素点进行列高斯卷积处理,直到完成所有像素点的列高斯卷积处理,并输出一组高斯图像。图像缩放模块50用于对所述高斯卷积运算模块当前输出的一组高斯图像中的倒数第三层图像进行1/2缩放,形成新的原图。所述判断模块60用于判断所述图像缩放模块50形成的新的原图的像素是否小于预设像素值,并在新的原图的像素大于或等于预设像素值时,输出新的原图至高斯卷积运算模块20,或者在新的原图的像素小于预设像素值时,输出停止图像缩放的信号至图像缩放模块。差分模块40将所述高斯卷积运算模块20输出的每组高斯图像中的下一层图像减上一层图像,形成高斯差分金字塔。所述各模块的具体实现形式,可以分别采用已公开的现有技术,此处不再赘述。
本实施例所述芯片,通过各电路模块的协调工作,先对输入的原图选用不同的尺度系数先做行顺序高斯卷积,然后把各层行高斯卷积结果暂存到各自对应的存储器中。再从存储器中读取列数据,选用不同的尺度系数做列顺序高斯卷积,得到高斯金字塔图像。对高斯金字塔图像,采用下一层图像减上一层图像得到高斯差分金字塔。对高斯金字塔倒数第三层图像,采用1/2图像缩放方法,得到下一组的图像。其中,存储器用来暂存行高斯卷积结果,每一层独立存储,总共需要6个SRAM,这样有利于硬件的并行处理,提高算法实时性。因为只有一组高斯卷积运算单元,每次只能处理一层图像的高斯卷积。所以,在行高斯卷积或列高斯卷积运算前,需要进行尺度系数选择,依次选出每层的尺度系数,分时复用高斯卷积运算单元,串行运算各层高斯卷积,不仅优化了硬件电路架构,还通过采用并行读取图像数据与串行高斯卷积运算相结合的方式,只使用一组高斯卷积运算单元进行分时复用,提高了运算单元使用效率;同时采用流水设计,通过读取图像数据与高斯卷积运算并行进行,保证了算法的实时性。该方法不仅大大减小了硬件电路的面积、降低了瞬时功耗,而且保证了算法的实时性,对SIFT算法高实时性的硬件化电路实现有很高的应用价值。
本领域技术人员可以理解实现上述实施方式方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得单片机、芯片或处理器(processor)执行本发明各个实施方式所述方法的全部或部分步骤。而这些存储介质可以包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明实施方式对各种可能的组合方式不再另行说明。
Claims (9)
1.一种图像尺度空间建立方法,其特征在于,包括如下步骤:
步骤1:输入待建立图像尺度空间的原图;
步骤2:采用一个高斯卷积运算单元,分别以M组不同的尺度系数对原图中的像素点进行行高斯卷积处理,并将处理结果分别存储至不同的存储器中,所述M为大于或等于6的自然数;
步骤3:并行从这些存储器中以列的形式读取像素点,读取的像素点所对应的列的长度为高斯卷积核长度,在读取下一列像素点的同时,调用高斯卷积运算单元依次对已读取的当前列的像素点进行列高斯卷积处理,直到完成所有像素点的列高斯卷积处理,形成一组高斯图像;
步骤4:将每组高斯图像中的下一层图像减上一层图像;
步骤5:确定当前形成的一组高斯图像中倒数第三层图像进行1/2缩放后形成的新的原图,判断新的原图的像素是否小于预设像素值,如果否,则返回步骤2,如果是,则结束,并基于步骤4的结果,形成高斯差分金字塔。
2.根据权利要求1所述的方法,其特征在于,所述步骤2具体包括如下步骤:
步骤21:确定一个高斯卷积运算单元,
步骤22:调用第1组尺度系数,对原图中的像素点逐个进行行高斯卷积运算,并将运算结果存储至第1存储器;
步骤23:判断所述第1存储器中所存储的像素点是否达到预设行数,如果是,则进入步骤24,否则返回步骤22,继续对原图中的像素点进行行高斯卷积运算;
步骤24:调用第2组尺度系数,对原图中的像素点逐个进行行高斯卷积运算,并将运算结果存储至第2存储器;
步骤25:判断所述第2存储器中所存储的像素点是否达到预设行数,如果是,则进入步骤26,否则返回步骤24,继续对原图中的像素点进行行高斯卷积运算;
步骤26:以此类推,直到第M存储器中所存储的像素点达到预设行数,然后进入步骤3,在执行步骤3的同时,继续执行步骤22至步骤26,以滚动形式更新存储器中数据,直到原图中的像素点全部完成行高斯卷积运算。
3.根据权利要求2所述的方法,其特征在于,所述步骤3具体包括如下步骤:
同时确定M个存储器中待进行列高斯卷积的像素点为待算点,确定以待算点为列中心,列长度为高斯卷积核长度的列单元所对应的像素点,并行读取列单元所对应的像素点;基于所读取的像素点,调用高斯卷积运算单元依次进行列高斯卷积运算;在进行当前待算点的列高斯卷积运算的同时,确定各存储器中的下一个待算点,继续读取下一个待算点所在的列单元所对应的像素点,供高斯卷积运算单元进行下一次列高斯卷积运算,依次类推,直到M个存储器中的全部像素点都完成了列高斯卷积运算,形成一组高斯图像。
4.根据权利要求2或3所述的方法,其特征在于:所述M为数值6。
5.根据权利要求2或3所述的方法,其特征在于:所述预设行数为33。
6.根据权利要求1所述的方法,其特征在于,步骤5中所述的确定当前形成的一组高斯图像中倒数第三层图像进行1/2缩放后形成的新的原图,具体包括如下步骤:
在形成高斯图像的过程中,实时将高斯图像中倒数第三层图像中任意相邻的两行和两列的像素点相加之后除以四,得到一个新的像素点;
确定所有新的像素点构成一幅1/2缩放后的图像作为新的原图。
7.根据权利要求6所述的方法,其特征在于,所述实时将高斯图像中倒数第三层图像中任意相邻的两行和两列的像素点相加之后除以四,得到一个新的像素点的步骤,具体包括如下步骤:
实时确定高斯图像的倒数第三层图像中任意相邻的两行和两列像素点相交时,相交的四个像素点所对应的二进制数值;
将所确定的二进制数值相加;
将相加后的二进制数值的最后两位删除,所得到的数值为新的像素点所对应的二进制数值。
8.根据权利要求1所述的方法,其特征在于,所述预设像素值的大小为33pt*33pt。
9.一种图像处理芯片,其特征在于,包括:
输入模块,用于输入待建立图像尺度空间的原图;
一个高斯卷积运算模块,用于分别以M组不同的尺度系数对原图中的像素点进行行高斯卷积处理;
M个存储器,分别用于存储高斯卷积运算模块进行行高斯卷积处理的结果;
所述高斯卷积运算模块,还用于并行从M个存储器中以列的形式读取像素点,读取的像素点所对应的列的长度为高斯卷积核长度,在读取下一列像素点的同时,依次对已读取的当前列的像素点进行列高斯卷积处理,直到完成所有像素点的列高斯卷积处理,并输出一组高斯图像;
差分模块,将所述高斯卷积运算模块输出的每组高斯图像中的下一层图像减上一层图像,形成高斯差分金字塔;
图像缩放模块,用于对所述高斯卷积运算模块当前输出的一组高斯图像中的倒数第三层图像进行1/2缩放,形成新的原图;
判断模块,用于判断所述图像缩放模块形成的新的原图的像素是否小于预设像素值,并在新的原图的像素大于或等于预设像素值时,输出新的原图至高斯卷积运算模块,或者在新的原图的像素小于预设像素值时,输出停止图像缩放的信号至图像缩放模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910557382.0A CN112132914B (zh) | 2019-06-25 | 2019-06-25 | 一种图像尺度空间建立方法及图像处理芯片 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910557382.0A CN112132914B (zh) | 2019-06-25 | 2019-06-25 | 一种图像尺度空间建立方法及图像处理芯片 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112132914A true CN112132914A (zh) | 2020-12-25 |
CN112132914B CN112132914B (zh) | 2024-07-12 |
Family
ID=73849792
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910557382.0A Active CN112132914B (zh) | 2019-06-25 | 2019-06-25 | 一种图像尺度空间建立方法及图像处理芯片 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112132914B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113884857A (zh) * | 2021-09-29 | 2022-01-04 | 上海阵量智能科技有限公司 | 芯片、芯片压力测试方法、装置、电子设备及存储介质 |
CN116402693A (zh) * | 2023-06-08 | 2023-07-07 | 青岛瑞源工程集团有限公司 | 一种基于遥感技术的市政工程图像处理方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104881662A (zh) * | 2015-06-26 | 2015-09-02 | 北京畅景立达软件技术有限公司 | 一种单幅图像行人检测方法 |
CN107305694A (zh) * | 2016-04-14 | 2017-10-31 | 武汉科技大学 | 一种基于视觉显著性特征的视频灰斑检测方法 |
CN108960251A (zh) * | 2018-05-22 | 2018-12-07 | 东南大学 | 一种图像匹配描述子生成尺度空间的硬件电路实现方法 |
-
2019
- 2019-06-25 CN CN201910557382.0A patent/CN112132914B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104881662A (zh) * | 2015-06-26 | 2015-09-02 | 北京畅景立达软件技术有限公司 | 一种单幅图像行人检测方法 |
CN107305694A (zh) * | 2016-04-14 | 2017-10-31 | 武汉科技大学 | 一种基于视觉显著性特征的视频灰斑检测方法 |
CN108960251A (zh) * | 2018-05-22 | 2018-12-07 | 东南大学 | 一种图像匹配描述子生成尺度空间的硬件电路实现方法 |
Non-Patent Citations (1)
Title |
---|
巩晓倩: "基于SOC 的3D重建中SIFT算法的研究", 中国优秀硕士论文全文数据库 信息科技辑, pages 138 - 556 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113884857A (zh) * | 2021-09-29 | 2022-01-04 | 上海阵量智能科技有限公司 | 芯片、芯片压力测试方法、装置、电子设备及存储介质 |
CN113884857B (zh) * | 2021-09-29 | 2024-03-08 | 上海阵量智能科技有限公司 | 芯片、芯片压力测试方法、装置、电子设备及存储介质 |
CN116402693A (zh) * | 2023-06-08 | 2023-07-07 | 青岛瑞源工程集团有限公司 | 一种基于遥感技术的市政工程图像处理方法及装置 |
CN116402693B (zh) * | 2023-06-08 | 2023-08-15 | 青岛瑞源工程集团有限公司 | 一种基于遥感技术的市政工程图像处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112132914B (zh) | 2024-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108520247B (zh) | 对图像中的对象节点的识别方法、装置、终端及可读介质 | |
CN110717851A (zh) | 图像处理方法及装置、神经网络的训练方法、存储介质 | |
Wang et al. | High-fidelity view synthesis for light field imaging with extended pseudo 4DCNN | |
EP3093757B1 (en) | Multi-dimensional sliding window operation for a vector processor | |
CN109993712A (zh) | 图像处理模型的训练方法、图像处理方法及相关设备 | |
CN111797841B (zh) | 一种基于深度残差网络的视觉显著性检测方法 | |
CN111126385A (zh) | 一种可变形活体小目标的深度学习智能识别方法 | |
EP3723006A1 (en) | Signal processing method and device | |
CN111476835B (zh) | 多视角图像一致性的无监督深度预测方法、***、装置 | |
CN112132914B (zh) | 一种图像尺度空间建立方法及图像处理芯片 | |
CN113469074A (zh) | 基于孪生注意力融合网络的遥感图像变化检测方法及*** | |
CN117217274B (zh) | 向量处理器、神经网络加速器、芯片及电子设备 | |
CN109598335B (zh) | 一种二维卷积脉动阵列结构及实现方法 | |
CN114677286A (zh) | 一种图像处理方法、装置、存储介质及终端设备 | |
CN117011655A (zh) | 基于自适应区域选择特征融合方法、目标跟踪方法及*** | |
CN112101113A (zh) | 一种轻量化的无人机图像小目标检测方法 | |
CN116468980A (zh) | 深度融合边缘细节与深层特征的红外小目标检测方法及装置 | |
CN115511690A (zh) | 一种图像处理方法和图像处理芯片 | |
CN115909088A (zh) | 基于超分辨特征聚合的光学遥感图像目标检测方法 | |
CN111831207B (zh) | 一种数据处理方法、装置及其设备 | |
CN114119661A (zh) | 一种目标追踪处理器、目标追踪方法及装置 | |
CN114581682A (zh) | 基于自注意力机制的图像特征提取方法、装置及设备 | |
CN112132155B (zh) | 基于硬件电路的sift算法图像边界扩充方法和处理方法 | |
KR20200023154A (ko) | 컨볼루션 뉴럴 네트워크를 처리하는 방법 및 장치 | |
CN109816590A (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: 519000 2706, No. 3000, Huandao East Road, Hengqin new area, Zhuhai, Guangdong Applicant after: Zhuhai Yiwei Semiconductor Co.,Ltd. Address before: Room 105-514, No.6 Baohua Road, Hengqin New District, Zhuhai City, Guangdong Province Applicant before: AMICRO SEMICONDUCTOR Co.,Ltd. |
|
GR01 | Patent grant |