CN100409258C - 一种实时快速实现高斯模板卷积的装置 - Google Patents
一种实时快速实现高斯模板卷积的装置 Download PDFInfo
- Publication number
- CN100409258C CN100409258C CNB2005101347354A CN200510134735A CN100409258C CN 100409258 C CN100409258 C CN 100409258C CN B2005101347354 A CNB2005101347354 A CN B2005101347354A CN 200510134735 A CN200510134735 A CN 200510134735A CN 100409258 C CN100409258 C CN 100409258C
- Authority
- CN
- China
- Prior art keywords
- row
- input end
- totalizer
- multiplier
- connect
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Complex Calculations (AREA)
Abstract
本发明属于机器视觉检测技术,涉及对高斯模板卷积实现装置的改进。它包括图象传感器1、列卷积系数寄存器组2和行卷积系数寄存器组3,其特征在于,有一个高斯卷积电路,它由地址发生器4、行缓存器组5、列向数据合并电路6、列卷积电路7、串行移位寄存器组8、行向数据合并电路9和行卷积电路10组成。本发明减少了模板的存储容量和逻辑资源的使用;通过并行和流水方法的结合实现了实时的大模板高斯卷积;大大提高了高斯模板卷积实现的速度。
Description
技术领域
本发明属于机器视觉检测技术,涉及对高斯模板卷积实现装置的改进。
背景技术
高斯卷积是一种线性的图像平滑滤波过程,其卷积模板是一种线性模板,可直接从二维零均值离散高斯函数计算模板权值,其从二维零均值离散高斯函数表达式为,
其中,σ是高斯函数的均方差,它控制着平滑效果。σ值越大,平滑的程度越好。
基于高斯模板卷积的高斯滤波器是一种应用非常广泛的滤波器,除了进行图像的平滑外还与很多的其他算法结合实现精确且高效的边缘提取、光条条纹提取及角点特征提取等。这些边缘、角点和光条特征信息的提取是机器视觉检测中非常重要和基础的工作。对于离散的二维图像,这些算法要求通过相应高斯核或微分形式的高斯核与原图像进行卷积来求图像灰度函数的偏导数。有些算法要对整幅图像进行多次的大模板二维卷积,算法的运算量大,如德国Steger博士(Steger1998)提出的基于Hessian矩阵的子像素级边缘检测算法在结构光条纹提取中具有较好的性能、较强的通用性以及高的定位精度,但算法要求通过相应微分形式的高斯核与原图像进行卷积来求图像灰度函数的偏导数rx,ry,rxx,rxy和ryy,而且随着光条条纹加宽,所采用的高斯模板加大(高斯模板大小达到37×37),算法的运算量非常大。由于要对整幅图像进行多次的大模板二维卷积,导致算法的运算量大。目前这些算法都是在计算机上采用软件进行实现,由于计算机的串行运算机制,计算速度非常慢。虽然也有一些人在研究其快速算法,如对其中高斯核卷积采用递归方法实现,但都不能做到实时实现,极大地影响了该算法在机器视觉中的实时应用。采用并行实现的装置(如FPGA)实现时,如果不对算法进行改进,由于模板比较大,其实现过程也是一个非常消耗逻辑资源的,计算量也是非常大的,也会极大地影响算法实现的速度。对于n×n的高斯模板(为了保证精度n值一般取≥7的奇数),它需要将一个象素附近n×n个象素与高斯模板进行卷积运算,如图1中矩形框内7×7的象素用于计算中心像元(三角形表示)的偏导数。卷积运算对应于硬件实现就是乘法器和加法器,乘法器在硬件实现中特别占逻辑单元。对于n=9的高斯模板,需要9×9=81个乘法器。
发明内容
本发明的目的是:提出一种能减少乘法器的数量和降低运算量的高斯模板卷积实现装置,使其能实现快速实时卷积运算。
本发明的技术方案是:一种实时快速实现高斯模板卷积的装置,包括一个图象传感器1、一个列卷积系数寄存器组2和一个行卷积系数寄存器组3,列卷积系数寄存器组2由(n+1)/2个寄存器CG1~CG(n+1)/2构成,行卷积系数寄存器组3由(n+1)/2个寄存器RG1~RG(n+1)/2构成,其特征在于,有一个高斯卷积电路,它由地址发生器4、行缓存器组5、列向数据合并电路6、列卷积电路7、串行移位寄存器组8、行向数据合并电路9和行卷积电路10组成;
行缓存器组5由n-1个行缓存器BUF1~BUFn-1构成,地址发生器4的地址输出端通过地址总线与图象传感器1的地址输入端连接,控制其串行输出数据,地址发生器4的地址输出端通过地址总线分别与行缓存器组5中的n-1个行缓存器的地址输入端连接,控制n-1个行缓存器的写入和读出,图象传感器1的数据输出端通过数据总线分别与行缓存器组5中的n-1个行缓存器的数据输入端连接;
列向数据合并电路6由一组加减法器CAS1~CAS(n-1)/2组成,加减法器的个数为(n-1)/2,每一个加减法器有两个输入端,第一加减法器CAS1的一个输入端与第一行缓存器BUF1的数据输出端Y1i连接,其另一个输入端与图象传感器1的数据输出端连接;第二加减法器CAS2的一个输入端与第二行缓存器BUF2的数据输出端Y2i连接,其另一个输入端与第n-1个行缓存器BUFn-1的数据输出端Yn-1i连接;第三加减法器CAS3的一个输入端与第三行缓存器BUF3的数据输出端Y3i连接,其另一个输入端与第n-2个行缓存器BUFn-2的数据输出端Yn-2i连接;依次类推,第(n-1)/2个加减法器CAS(n-1)/2的一个输入端与第(n-1)/2个行缓存器BUF(n-1)/2的数据输出端Y(n-1)/2连接,其另一个输入端与第(n+3)/2个行缓存器BUF(n+3) /2的数据输出端Y(n+3)/2i连接;
列卷积电路7由(n+1)/2个乘法器CPE1~CPE(n+1)/2和一个加法器树组成,这个加法器树由若干列加法器CAD组成,第一乘法器CPE1的一个输入端与第一加减法器CAS1的输出端连接,其另一个输入端与列卷积系数寄存器组2中的寄存器CG1的输出端连接,第二乘法器CPE2的一个输入端与第二加减法器CAS2的输出端连接,其另一个输入端与列卷积系数寄存器组2中的寄存器CG2的输出端连接,依次类推,第(n-1)/2乘法器CPE(n-1)/2的一个输入端与第(n-1)/2加减法器CAS(n-1)/2的输出端连接,其另一个输入端与列卷积系数寄存器组2中的寄存器CG(n-1)/2的输出端连接,第(n+1)/2乘法器CPE(n+1)/2的一个输入端与中间的第(n+1)/2个行缓存器BUF(n+1)/2的数据输出端Y(n+1)/2i连接,其另一个输入端与列卷积系数寄存器组2中的寄存器CG(n+1)/2的输出端连接;加法器树由若干列加法器CAD组成,第一列加法器CAD1的个数为(n+1)/4取整数,第一列加法器CAD1的第一个加法器CAD11对第一乘法器CPE1和第二乘法器CPE2的输出求和,第一列加法器CAD1的第二个加法器CAD12对第三乘法器CPE3和第四乘法器CPE4的输出求和,依次类推,第一列加法器CAD1的最后一个加法器CAD1(n+1)/4对第(n-1)/2乘法器CPE(n-1)/2和第(n+1)/2乘法器CPE(n+1)/2的输出求和;第二列加法器CAD2中的加法器分别对第一列加法器CAD的输出进行两两求和;依次类推,直至完成全部乘法器输出的求和;当被求和的乘法器或者加法器输出的个数为奇数时,剩余的一个乘法器或者加法器的输出并入下一列加法器求和;
串行移位寄存器组8由n个移位寄存器D1~Dn组成,加法器树的输出端与第一个移位寄存器D1的输入端连接,第一个移位寄存器D1输出端与第二个移位寄存器D2的输入端连接,依次类推,第n-1个移位寄存器D(n-1)的输入端与第n-2个移位寄存器D(n-2)的输出端连接,其输出端与第n个移位寄存器Dn的输入端连接;
行向数据合并电路9由一组加减法器RAS1~RAS(n-1)/2组成,加减法器的个数为(n-1)/2,每一个加减法器有两个输入端,第一加减法器RAS1的一个输入端与第一个移位寄存器D1的数据输出端连接,其另一个输入端与第n个移位寄存器Dn的数据输出端连接,第二加减法器RAS2的一个输入端与第二个移位寄存器D2的数据输出端连接,其另一个输入端与第n-1个移位寄存器Dn-1的数据输出端连接;依次类推,第(n-1)/2个加减法器RAS(n-1)/2的一个输入端与第(n-1)/2个移位寄存器D(n-1)/2的数据输出端连接,其另一个输入端与第(n+3)/2个移位寄存器D(n+3)/2的数据输出端连接;
行卷积电路10由(n+1)/2个乘法器RPE1~RPE(n+1)/2和一个加法器树组成,这个加法器树由若干行加法器RAD组成,第一乘法器RPE1的一个输入端与第一加减法器RAS1的输出端连接,其另一个输入端与行卷积系数寄存器组3中的寄存器RG1的输出端连接,第二乘法器RPE2的一个输入端与第二加减法器RAS2的输出端连接,其另一个输入端与行卷积系数寄存器组3中的寄存器RG2的输出端连接,依次类推,第(n-1)/2乘法器RPE(n-1)/2的一个输入端与第(n-1)/2加减法器RAS(n-1)/2的输出端连接,其另一个输入端与行卷积系数寄存器组3中的寄存器RG(n-1)/2的输出端连接,第(n+1)/2乘法器RPE(n+1)/2的一个输入端与中间的第(n+1)/2个移位寄存器D(n+1)/2的数据输出端连接,其另一个输入端与行卷积系数寄存器组3中的寄存器RG(n+1)/2的输出端连接;加法器树由若干行加法器RAD组成,第一列加法器RAD1的个数为(n+1)/4取整数,第一列加法器RAD1的第一个加法器RAD11对第一乘法器RPE1和第二乘法器RPE2的输出求和,第一列加法器RAD1的第二个加法器RAD12对第三乘法器RPE3和第四乘法器RPE4的输出求和,依次类推,第一列加法器RAD1的最后一个加法器RAD1(n+1) /4对第(n-1)/2乘法器RPE(n-1)/2和第(n+1)/2乘法器RPE(n+1)/2的输出求和;第二列加法器RAD2中的加法器分别对第一列加法器RAD1的输出进行两两求和;依次类推,直至完成全部乘法器输出的求和;当被求和的乘法器或者加法器输出的个数为奇数时,剩余的一个乘法器或者加法器的输出并入下一列加法器求和;最后一列加法器RADlast的输出为高斯模板卷积装置的输出,这里的n值取≥7的奇数。
本发明的优点是:通过对高斯模板的分解,减少了模板的存储容量,减少了乘法器的使用,减小了逻辑资源的使用;通过并行和流水方法的结合实现了实时的大模板高斯卷积;大大提高了高斯模板卷积实现的速度。
附图说明
图1是高斯模板卷积示意图。
图2是高斯模板的可分解示意图。
图3是高斯模板的对称性示意图。其中,(a)是零阶高斯模板,(b)是1阶高斯模板,(c)是2阶高斯模板。
图4是对称性模板精简示意图。
图5是图像数据缓存示意图。
图6是输出列向数据合并示意图。
图7是本发明高斯模板卷积装置的结构原理图。
图8(a)是在计算机上采用软件算法实现的高斯模板卷积用于基于Hessian矩阵的结构光光条中心线的提取结果,(b)是采用本发明装置实现的高斯模板卷积用于用于基于Hessian矩阵的结构光光条中心线的提取得到的结果。
具体实施方式
下面对本发明做进一步详细说明。本发明为了减少乘法器的使用并能实现实时卷积,充分利用高斯模板的特点,对卷积过程进行了改进。具体改进如下:
为了实现高精度的特征提取(如边缘、角点、光条中心)算法在实时的机器视觉中的应用,本发明以一个专用集成电路运算装置为基础,采用FPGA器件,设计其中高斯模板卷积的硬件实时实现的装置。为了减少乘法器的使用并能实现实时卷积,本发明充分利用高斯模板的特点,对高斯模板进行分解。
1)高斯模板的可分解性。
二维高斯模板的数学表达式为,
它可以分解为两个一维的高斯函数,因此,对于一个二维高斯模板,可以分解成两个一维的模板如图2所示。从图2可以看出通过模板的分解原来需要n×n的模板大小变成了2n,一维行模板和一维列模板的值是相同的,因此模板的大小从2n变成了n,在硬件实现中大大减少了所需的模板存储容量。
2)高斯模板的对称性。
从图3可以看出零阶和2阶高斯模板是偶对称的,而1阶高斯模板是奇对称的,因此上述的模板大小还可以从n精简为(n+1)/2,如图4所示是模板精简的示意图。
模板的精简不仅减少了模板本身的存储容量,还减少了硬件实现中乘法器的使用。在硬件实现的过程中,本发明将卷积中对应相同高斯模板值的图像数据先进行加或减操作,再进行并行的乘法和流水线的加法操作。采用这样的处理后,所采用的乘法器从原来的n×n减少到n+1,如n=9,原来乘法器的个数为81个,现有操作所需的乘法器个数仅为10个,大大减少了硬件逻辑资源的使用。
本发明的高斯模板卷积装置,包括一个图象传感器1、一个列卷积系数寄存器组2和一个行卷积系数寄存器组3,列卷积系数寄存器组2由(n+1)/2个寄存器CG1~CG(n+1)/2构成,行卷积系数寄存器组3由(n+1)/2个寄存器RG1~RG(n+1)/2构成。二维图像数据以行扫描的方式,在时钟的驱动下,由图象传感器1串行输出。列卷积系数寄存器组2和行卷积系数寄存器组3存储的是简化后的高斯模板的系数。在进行乘法运算时,这些系数并行的从寄存器组中输出,输入到乘法器的输入端。
本发明的特征在于:有一个高斯卷积电路,它由地址发生器4、行缓存器组5、列向数据合并电路6、列卷积电路7、串行移位寄存器组8、行向数据合并电路9和行卷积电路10组成。
行缓存器组5由n-1个行缓存器BUF1~BUFn-1构成,地址发生器4的地址输出端通过地址总线与图象传感器1的地址输入端连接,控制其串行输出数据,地址发生器4的地址输出端通过地址总线分别与行缓存器组5中的n-1个行缓存器的地址输入端连接,控制n-1个行缓存器的写入和读出,图象传感器1的数据输出端通过数据总线分别与行缓存器组5中的n-1个行缓存器的数据输入端连接。
为了实现并行处理,重复充分利用每个输入数据,扩大数据的吞吐量,需要对图像先进行缓存。图像的缓存由行缓存器组5完成。对于n×n的卷积,只需要进行n-1行的数据存储,如图5所示。每一个时钟周期从行缓存器组5和图像传感器1输出一列n个数据,以供进行实时并行的列卷积。其数据输出过程是:行缓存器组5缓存n-1行数据,并在时钟驱动下从左至右并行输出n-1个数据,同时图像传感器1输出第n个数据。
列向数据合并电路6由一组加减法器CAS1~CAS(n-1)/2组成,加减法器的个数为(n-1)/2,每一个加减法器有两个输入端,第一加减法器CAS1的一个输入端与第一行缓存器BUF1的数据输出端Y1i连接,其另一个输入端与图象传感器1的数据输出端连接;第二加减法器CAS2的一个输入端与第二行缓存器BUF2的数据输出端Y2i连接,其另一个输入端与第n-1个行缓存器BUFn-1的数据输出端Yn-1i连接;第三加减法器CAS3的一个输入端与第三行缓存器BUF3的数据输出端Y3i连接,其另一个输入端与第n-2个行缓存器BUFn-2的数据输出端Yn-2i连接;依次类推,第(n-1)/2个加减法器CAS(n-1)/2的一个输入端与第(n-1)/2个行缓存器BUF(n-1)/2的数据输出端Y(n-1)/2i连接,其另一个输入端与第(n+3)/2个行缓存器BUF(n+3) /2的数据输出端Y(n+3)/2i连接。
根据高斯模板的对称性,由列向数据合并电路6对输出的一列图像数据先进行列向数据合并,对于1阶卷积是进行减法运算,0阶和2阶是进行加法运算,如图6所示,图6还显示了其合并的数据与简化高斯模板系数的对应关系,其中g1表示1阶卷积,g0,g2分别表示零阶和2阶的卷积系数,对于同样阶数的行和列高斯卷积,其卷积模板系数相同。通过列向数据合并减少了一半的并行处理的数据量。
经列向数据合并电路6合并后的数据由列卷积电路7进行列卷积。列卷积就是将合并后的图像数据与简化的高斯模板系数进行并行的乘法和流水线的加法。
列卷积电路7由(n+1)/2个乘法器CPE1~CPE(n+1)/2和一个加法器树组成,这个加法器树由若干列加法器CAD组成,第一乘法器CPE1的一个输入端与第一加减法器CAS1的输出端连接,其另一个输入端与列卷积系数寄存器组2中的寄存器CG1的输出端连接,第二乘法器CPE2的一个输入端与第二加减法器CAS2的输出端连接,其另一个输入端与列卷积系数寄存器组2中的寄存器CG2的输出端连接,依次类推,第(n-1)/2乘法器CPE(n-1)/2的一个输入端与第(n-1)/2加减法器CAS(n-1)/2的输出端连接,其另一个输入端与列卷积系数寄存器组2中的寄存器CG(n-1)/2的输出端连接,第(n+1)/2乘法器CPE(n+1)/2的一个输入端与中间的第(n+1)/2个行缓存器BUF(n+1)/2的数据输出端Y(n+1)/2i连接,其另一个输入端与列卷积系数寄存器组2中的寄存器CG(n+1)/2的输出端连接;加法器树由若干列加法器CAD组成,第一列加法器CAD1的个数为(n+1)/4取整数,第一列加法器CAD1的第一个加法器CAD11对第一乘法器CPE1和第二乘法器CPE2的输出求和,第一列加法器CAD1的第二个加法器CAD12对第三乘法器CPE3和第四乘法器CPE4的输出求和,依次类推,第一列加法器CAD1的最后一个加法器CAD1(n+1)/4对第(n-1)/2乘法器CPE(n-1)/2和第(n+1)/2乘法器CPE(n+1)/2的输出求和;第二列加法器CAD2中的加法器分别对第一列加法器CAD1的输出进行两两求和;依次类推,直至完成全部乘法器输出的求和;当被求和的乘法器或者加法器输出的个数为奇数时,剩余的一个乘法器或者加法器的输出并入下一列加法器求和。对于n×n卷积,列卷积需要(n+1)/2个乘法器。
经列卷积电路7处理得到的串行输出的结果通过串行移位寄存器8进行串并转换。串行移位寄存器组8由n个移位寄存器D1~Dn组成,加法器树的输出端与第一个移位寄存器D1的输入端连接,第一个移位寄存器D1输出端与第二个移位寄存器D2的输入端连接,依次类推,第n-1个移位寄存器D(n-1)的输入端与第n-2个移位寄存器D(n-2)的输出端连接,其输出端与第n个移位寄存器Dn的输入端连接。这样经过串行移位寄存器8的串并转换,n个串行输出的行卷积数据就可以并行输出给后续处理电路进行并行的处理。
移位寄存器8并行输出的数据根据高斯模板的对称性进行行方向的数据的合并,合并后的数据进行行卷积,行卷积与列卷积相同也是将合并后的图像数据与简化的高斯模板系数进行并行的乘法和流水线的加法。
行向数据合并电路9由一组加减法器RAS1~RAS(n-1)/2组成,加减法器的个数为(n-1)/2,每一个加减法器有两个输入端,第一加减法器RAS的一个输入端与第一个移位寄存器D1的数据输出端连接,其另一个输入端与第n个移位寄存器Dn的数据输出端连接,第二加减法器RAS2的一个输入端与第二个移位寄存器D2的数据输出端连接,其另一个输入端与第n-1个移位寄存器Dn-1的数据输出端连接;依次类推,第(n-1)/2个加减法器RAS(n-1)/2的一个输入端与第(n-1)/2个移位寄存器D(n-1)/2的数据输出端连接,其另一个输入端与第(n+3)/2个移位寄存器D(n+3)/2的数据输出端连接。
行卷积电路10由(n+1)/2个乘法器RPE1~RPE(n+1)/2和一个加法器树组成,这个加法器树由若干行加法器RAD组成,第一乘法器RPE1的一个输入端与第一加减法器RAS1的输出端连接,其另一个输入端与行卷积系数寄存器组3中的寄存器RG1的输出端连接,第二乘法器RPE2的一个输入端与第二加减法器RAS2的输出端连接,其另一个输入端与行卷积系数寄存器组3中的寄存器RG2的输出端连接,依次类推,第(n-1)/2乘法器RPE(n-1)/2的一个输入端与第(n-1)/2加减法器RAS(n-1)/2的输出端连接,其另一个输入端与行卷积系数寄存器组3中的寄存器RG(n-1)/2的输出端连接,第(n+1)/2乘法器RPE(n+1)/2的一个输入端与中间的第(n+1)/2个移位寄存器D(n+1)/2的数据输出端连接,其另一个输入端与行卷积系数寄存器组3中的寄存器RG(n+1)/2的输出端连接;加法器树由若干行加法器RAD组成,第一列加法器RAD1的个数为(n+1)/4取整数,第一列加法器RAD1的第一个加法器RAD11对第一乘法器RPE1和第二乘法器RPE2的输出求和,第一列加法器RAD1的第二个加法器RAD12对第三乘法器RPE3和第四乘法器RPE4的输出求和,依次类推,第一列加法器RAD1的最后一个加法器RAD1(n+1) /4对第(n-1)/2乘法器RPE(n-1)/2和第(n+1)/2乘法器RPE(n+1)/2的输出求和;第二列加法器RAD2中的加法器分别对第一列加法器RAD1的输出进行两两求和;依次类推,直至完成全部乘法器输出的求和;当被求和的乘法器或者加法器输出的个数为奇数时,剩余的一个乘法器或者加法器的输出并入下一列加法器求和;最后一列加法器RADlast的输出为高斯模板卷积装置的输出,这里的n值取≥7的奇数。
对于n×n卷积,行卷积也需要(n+1)/2个乘法器,因此对于n×n的高斯卷积总共需要消耗的乘法器为n+1个。在硬件电路设计中乘法器是最占逻辑资源的。乘法器的减少意味着逻辑资源的减少。
当n=9时,直接采用二维高斯卷积模板进行卷积需要的乘法器为81个,本发明需要的乘法器仅为10个。表1是采用二维卷积模板进行卷积和采用本发明进行卷积消耗乘法器的对比。从表中可以看出随着n的增大,采用二维卷积模板进行卷积所需要的乘法器的数量增加非常多,而采用本发明进行卷积所需要乘法器的数量增加不大。在高斯卷积中n一般取奇数,随着n增加2,乘法器数量仅增加2个,是一个线性增加的过程。
表1乘法器需求对比
n | 采用二维卷积模板进行卷积乘法器消耗 | 采用本方法进行卷乘法器消耗 |
9 | 81 | 10 |
11 | 121 | 12 |
13 | 169 | 14 |
15 | 225 | 16 |
17 | 289 | 18 |
37 | 1369 | 38 |
图8(a)是在计算机上采用软件算法实现的高斯模板卷积用于基于Hessian矩阵的结构光光条中心线的提取结果,(b)是采用上述硬件方法实现的高斯模板卷积用于基于Hessian矩阵的结构光光条中心线的提取得到的结果。这里n=4σ+1,σ=4,n=17。从图8可以看出软硬件处理的结果是一致的。表2是不同方法实现高斯模板卷积的耗时比较,从表2中可以看出本发明实现的速度大大加快了。随着所采用的时钟频率的提高,本发明装置的运算速度还可以提高。
表2计算耗时比较
图像大小 | 高斯模板卷积(计算机实现ms) | 递归的高斯模板卷积(计算机实ms) | 本发明高斯模板卷积装置(并行硬件实现10M时钟ms) |
398×280 | 91.1 | 59.7 | 11.1 |
373×325 | 98.7 | 65.8 | 12.1 |
768×576 | 355.7 | 242.1 | 44.2 |
Claims (1)
1. 一种实时快速实现高斯模板卷积的装置,包括一个图象传感器[1]、一个列卷积系数寄存器组[2]和一个行卷积系数寄存器组[3],列卷积系数寄存器组[2]由(n+1)/2个寄存器CG1~CG(n+1)/2构成,行卷积系数寄存器组[3]由(n+1)/2个寄存器RG1~RG(n+1)/2构成,其特征在于,有一个高斯卷积电路,它由地址发生器[4]、行缓存器组[5]、列向数据合并电路[6]、列卷积电路[7]、串行移位寄存器组[8]、行向数据合并电路[9]和行卷积电路[10]组成;
行缓存器组[5]由n-1个行缓存器BUF1~BUFn-1构成,地址发生器[4]的地址输出端通过地址总线与图象传感器[1]的地址输入端连接,控制其串行输出数据,地址发生器[4]的地址输出端通过地址总线分别与行缓存器组[5]中的n-1个行缓存器的地址输入端连接,控制n-1个行缓存器的写入和读出,图象传感器[1]的数据输出端通过数据总线分别与行缓存器组[5]中的n-1个行缓存器的数据输入端连接;
列向数据合并电路[6]由一组加减法器CAS1~CAS(n-1)/2组成,加减法器的个数为(n-1)/2,每一个加减法器有两个输入端,第一加减法器CAS1的一个输入端与第一行缓存器BUF1的数据输出端Y1i连接,其另一个输入端与图象传感器[1]的数据输出端连接;第二加减法器CAS2的一个输入端与第二行缓存器BUF2的数据输出端Y2i连接,其另一个输入端与第n-1个行缓存器BUFn-1的数据输出端Yn-1i连接;第三加减法器CAS3的一个输入端与第三行缓存器BUF3的数据输出端Y3i连接,其另一个输入端与第n-2个行缓存器BUFn-2的数据输出端Yn-2i连接;依次类推,第(n-1)/2个加减法器CAS(n-1)/2的一个输入端与第(n-1)/2个行缓存器BUF(n-1)/2的数据输出端Y(n-1)/2i连接,其另一个输入端与第(n+3)/2个行缓存器BUF(n+3) /2的数据输出端Y(n+3)/21连接;
列卷积电路[7]由(n+1)/2个乘法器CPE1~CPE(n+1)/2和一个加法器树组成,这个加法器树由若干列加法器CAD组成,第一乘法器CPE1的一个输入端与第一加减法器CAS1的输出端连接,其另一个输入端与列卷积系数寄存器组[2]中的寄存器CG1的输出端连接,第二乘法器CPE2的一个输入端与第二加减法器CAS2的输出端连接,其另一个输入端与列卷积系数寄存器组[2]中的寄存器CG2的输出端连接,依次类推,第(n-1)/2乘法器CPE(n-1)/2的一个输入端与第(n-1)/2加减法器CAS(n-1)/2的输出端连接,其另一个输入端与列卷积系数寄存器组[2]中的寄存器CG(n-1)/2的输出端连接,第(n+1)/2乘法器CPE(n+1)/2的一个输入端与中间的第(n+1)/2个行缓存器BUF(n+1)/2的数据输出端Y(n+1)/21连接,其另一个输入端与列卷积系数寄存器组[2]中的寄存器CG(n+1)/2的输出端连接;加法器树由若干列加法器CAD组成,第一列加法器CAD1的个数为(n+1)/4取整数,第一列加法器CAD1的第一个加法器CAD11对第一乘法器CPE1和第二乘法器CPE2的输出求和,第一列加法器CAD1的第二个加法器CAD12对第三乘法器CPE3和第四乘法器CPE4的输出求和,依次类推,第一列加法器CAD1的最后一个加法器CAD1(n+1)/4对第(n-1)/2乘法器CPE(n-1)/2和第(n+1)/2乘法器CPE(n+1)/2的输出求和;第二列加法器CAD2中的加法器分别对第一列加法器CAD1的输出进行两两求和;依次类推,直至完成全部乘法器输出的求和;当被求和的乘法器或者加法器输出的个数为奇数时,剩余的一个乘法器或者加法器的输出并入下一列加法器求和;
串行移位寄存器组[8]由n个移位寄存器D1~Dn组成,加法器树的输出端与第一个移位寄存器D1的输入端连接,第一个移位寄存器D1输出端与第二个移位寄存器D2的输入端连接,依次类推,第n-1个移位寄存器D(n-1)的输入端与第n-2个移位寄存器D(n-2)的输出端连接,其输出端与第n个移位寄存器Dn的输入端连接;
行向数据合并电路[9]由一组加减法器RAS1~RAS(n-1)/2组成,加减法器的个数为(n-1)/2,每一个加减法器有两个输入端,第一加减法器RAS1的一个输入端与第一个移位寄存器D1的数据输出端连接,其另一个输入端与第n个移位寄存器Dn的数据输出端连接,第二加减法器RAS2的一个输入端与第二个移位寄存器D2的数据输出端连接,其另一个输入端与第n-1个移位寄存器Dn-1的数据输出端连接;依次类推,第(n-1)/2个加减法器RAS(n-1)/2的一个输入端与第(n-1)/2个移位寄存器D(n-1)/2的数据输出端连接,其另一个输入端与第(n+3)/2个移位寄存器D(n+3)/2的数据输出端连接;
行卷积电路[10]由(n+1)/2个乘法器RPE1~RPE(n+1)/2和一个加法器树组成,这个加法器树由若干行加法器RAD组成,第一乘法器RPE1的一个输入端与第一加减法器RAS1的输出端连接,其另一个输入端与行卷积系数寄存器组[3]中的寄存器RG1的输出端连接,第二乘法器RPE2的一个输入端与第二加减法器RAS2的输出端连接,其另一个输入端与行卷积系数寄存器组[3]中的寄存器RG2的输出端连接,依次类推,第(n-1)/2乘法器RPE(n-1)/2的一个输入端与第(n-1)/2加减法器RAS(n-1)/2的输出端连接,其另一个输入端与行卷积系数寄存器组[3]中的寄存器RG(n-1)/2的输出端连接,第(n+1)/2乘法器RPE(n+1)/2的一个输入端与中间的第(n+1)/2个移位寄存器D(n+1)/2的数据输出端连接,其另一个输入端与行卷积系数寄存器组[3]中的寄存器RG(n+1)/2的输出端连接;加法器树由若干行加法器RAD组成,第一列加法器RAD1的个数为(n+1)/4取整数,第一列加法器RAD1的第一个加法器RAD11对第一乘法器RPE1和第二乘法器RPE2的输出求和,第一列加法器RAD1的第二个加法器RAD12对第三乘法器RPE3和第四乘法器RPE4的输出求和,依次类推,第一列加法器RAD1的最后一个加法器RAD1(n+1)/4对第(n-1)/2乘法器RPE(n-1)/2和第(n+1)/2乘法器RPE(n+1)/2的输出求和;第二列加法器RAD2中的加法器分别对第一列加法器RAD1的输出进行两两求和;依次类推,直至完成全部乘法器输出的求和;当被求和的乘法器或者加法器输出的个数为奇数时,剩余的一个乘法器或者加法器的输出并入下一列加法器求和;最后一列加法器RADlast的输出为高斯模板卷积装置的输出,这里的n值取≥7的奇数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005101347354A CN100409258C (zh) | 2005-12-21 | 2005-12-21 | 一种实时快速实现高斯模板卷积的装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005101347354A CN100409258C (zh) | 2005-12-21 | 2005-12-21 | 一种实时快速实现高斯模板卷积的装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1987928A CN1987928A (zh) | 2007-06-27 |
CN100409258C true CN100409258C (zh) | 2008-08-06 |
Family
ID=38184713
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005101347354A Expired - Fee Related CN100409258C (zh) | 2005-12-21 | 2005-12-21 | 一种实时快速实现高斯模板卷积的装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100409258C (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2487377B (en) | 2011-01-18 | 2018-02-14 | Aptina Imaging Corp | Matching interest points |
GB2487375B (en) * | 2011-01-18 | 2017-09-20 | Aptina Imaging Corp | Interest point detection |
CN103985083B (zh) * | 2014-05-21 | 2017-02-01 | 西安交通大学 | 一种可重构的一维卷积处理器 |
CN104035750A (zh) * | 2014-06-11 | 2014-09-10 | 西安电子科技大学 | 一种基于fpga的实时模板卷积实现方法 |
CN105611114B (zh) * | 2015-11-02 | 2018-08-31 | 天津大学 | 用于aer图像传感器的全数字多卷积核卷积处理芯片 |
US9858636B1 (en) | 2016-06-30 | 2018-01-02 | Apple Inc. | Configurable convolution engine |
CN108513042B (zh) | 2017-02-24 | 2020-03-10 | 清华大学 | 用于图像处理的装置 |
US10325342B2 (en) * | 2017-04-27 | 2019-06-18 | Apple Inc. | Convolution engine for merging interleaved channel data |
CN108804973B (zh) * | 2017-04-27 | 2021-11-09 | 深圳鲲云信息科技有限公司 | 基于深度学习的目标检测算法的硬件架构及其执行方法 |
CN108304923B (zh) | 2017-12-06 | 2022-01-18 | 腾讯科技(深圳)有限公司 | 卷积运算处理方法及相关产品 |
CN109635929B (zh) * | 2018-12-07 | 2021-07-16 | 锐捷网络股份有限公司 | 基于fpga的卷积实现方法及卷积器 |
CN113189634B (zh) * | 2021-03-02 | 2022-10-25 | 四川新先达测控技术有限公司 | 一种类高斯成形方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0356727A2 (en) * | 1988-08-09 | 1990-03-07 | Schlumberger Technologies Inc | Symmetrie-based target position measurement |
FR2738933A1 (fr) * | 1995-09-19 | 1997-03-21 | Peugeot | Procede et dispositif pour extraire des points caracteristiques d'une image en niveaux de gris |
-
2005
- 2005-12-21 CN CNB2005101347354A patent/CN100409258C/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0356727A2 (en) * | 1988-08-09 | 1990-03-07 | Schlumberger Technologies Inc | Symmetrie-based target position measurement |
FR2738933A1 (fr) * | 1995-09-19 | 1997-03-21 | Peugeot | Procede et dispositif pour extraire des points caracteristiques d'une image en niveaux de gris |
Non-Patent Citations (6)
Title |
---|
机器视觉. 贾得云,71,科学出版社. 2000 |
机器视觉. 贾得云,71,科学出版社. 2000 * |
结构光三维视觉检测中光条图象处理方法研究. 贺俊吉,张广军.北京航空航天大学学报,第29卷第7期. 2003 |
结构光三维视觉检测中光条图象处理方法研究. 贺俊吉,张广军.北京航空航天大学学报,第29卷第7期. 2003 * |
视觉检测中高速图像采集技术的研究. 周富强,张广军.北京航空航天大学学报,第28卷第2期. 2002 |
视觉检测中高速图像采集技术的研究. 周富强,张广军.北京航空航天大学学报,第28卷第2期. 2002 * |
Also Published As
Publication number | Publication date |
---|---|
CN1987928A (zh) | 2007-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100409258C (zh) | 一种实时快速实现高斯模板卷积的装置 | |
Chaple et al. | Design of Sobel operator based image edge detection algorithm on FPGA | |
US20210216871A1 (en) | Fast Convolution over Sparse and Quantization Neural Network | |
Citron et al. | Accelerating multi-media processing by implementing memoing in multiplication and division units | |
CN111414994B (zh) | 一种基于FPGA的Yolov3网络计算加速系统及其加速方法 | |
CN105955706B (zh) | 一种除法器及除法运算方法 | |
RU2374684C1 (ru) | Параллельно-конвейерное устройство для векторизации аэрокосмических изображений земной поверхности | |
CN111095241A (zh) | 加速数学引擎 | |
CN102629189B (zh) | 基于fpga的流水浮点乘累加方法 | |
CN101261733A (zh) | 利用任意内核滤波器对数据进行滤波的方法 | |
CN103180820A (zh) | 用于执行浮点除法的方法和装置 | |
Athalye et al. | Generic hardware architectures for sampling and resampling in particle filters | |
CN103208094B (zh) | 用于对图像应用滤波器的方法和系统 | |
Aguilar-González et al. | An FPGA 2D-convolution unit based on the CAPH language | |
CN106155540A (zh) | 电子毛笔笔形处理方法和装置 | |
CN104899840A (zh) | 一种基于cuda的引导滤波加速优化方法 | |
CN103390265A (zh) | 一种基于分数阶发展方程的纹理图像去噪滤波器 | |
Soares et al. | An energy-efficient and approximate accelerator design for real-time canny edge detection | |
Arunachalam et al. | Implementation of Fast Fourier Transform and Vedic Algorithm for Image Enhancement Using Matlab | |
CN104574409A (zh) | 一种从图像中探测目标的方法及装置 | |
CN104268856A (zh) | 基于图形处理器的端元提取纯像元指数方法 | |
CN111738904B (zh) | 一种图像中目标物体的几何矩的计算方法和计算装置 | |
CN204143432U (zh) | 一种乘除法器 | |
CN114003385A (zh) | 一种用于提升后处理性能的并行化方法 | |
Nagendra et al. | Edge detection using fine-grained parallelism in vlsi |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080806 Termination date: 20111221 |