一种用于高斯金字塔构建的可重构硬件加速方法与系统技术方案

技术编号:29492526 阅读:18 留言:0更新日期:2021-07-30 19:04
本发明专利技术公开了一种用于高斯金字塔构建的可重构硬件加速方法与系统,属于硬件加速器设计领域。本发明专利技术所提出的系统包括SRAM组、FIFO组、开关网络、移位寄存器阵列、加法树模块、多路分配器、可重构PE阵列以及高斯差分模块。本发明专利技术可以根据不同场景和任务对系统性能的要求对可重构PE阵列资源进行配置实现不同尺度的卷积计算,从而实现高性能的高斯金字塔和高斯差分金字塔构建。本发明专利技术包括快慢双时钟域设计、动态边缘填充设计、输入图像部分和复用设计方法,提高了硬件利用率,实现了不同边缘填充和不同尺度卷积的可重构计算,降低了高斯金字塔和高斯差分金字塔构建的运算量和硬件开销。

【技术实现步骤摘要】
一种用于高斯金字塔构建的可重构硬件加速方法与系统
本专利技术属于硬件加速器设计领域,更具体地,涉及一种用于高斯金字塔构建的可重构硬件加速方法与系统。
技术介绍
尺度不变特征变换(SIFT)是一种局部特征描述算法,可以解决两幅图像因发生平移、旋转、仿射变换等情况带来的匹配问题,具有良好的不变性和较强的匹配能力。该算法将一幅图片转换为一个具有大量局部特征向量的集合,在图像发生仿射变化、3D视角变化、比例缩放、曝光度变化、噪声加入等条件下仍然能够获得较为可靠的匹配结果。因此,该算法被广泛应用于机器人、无人机、自动驾驶、虚拟现实、现实增强、计算机视觉等领域。随着图像清晰度的提升以及图形匹配、物体追踪等应用对于实时性的要求,传统的基于软件的SIFT算法已经不能满足这些要求,设计专用的SIFT算法硬件加速器成为当前研究热点。由于在高斯金字塔构建在SIFT算法中占运算量和能耗一半以上,因此高斯金字塔构建的硬件加速最为关键。文献"High-PerformanceSIFTHardwareAcceleratorforReal-TimeImageFeatureExtraction."(Huang,F.C.,etal.IEEETransactionsonCircuits&SystemsforVideoTechnology22.3(2012):340-351)介绍了一种基于全并行计算的高斯金字塔构建方法,该方法可以实现高实时性的高斯金字塔构建。但是由于数据读写速度和数据运算速度的不匹配,即存储器的读写速度慢,计算单元的速度快,使得计算单元在完成计算后存在较长的闲置时间,造成了较大的硬件开销和较低的硬件利用率。此外,该方法未考虑高斯模板的对称性,使得其运算量和硬件开销较大;该方法实现卷积的方式未考虑边缘填充,使得不同尺度的输出图像存在不同程度的失真。
技术实现思路
针对现有技术的缺陷,本专利技术的目的在于提供一种用于高斯金字塔构建的可重构硬件加速方法与系统,旨在解决全并行高斯金字塔构建过程中硬件开销大,硬件利用率低,运算量大且未考虑边缘填充的问题。为实现上述目的,本专利技术一方面提供了一种用于高斯金字塔构建的可重构硬件加速方法,包括以下步骤:S1.将原始图像像素数据以行缓冲的形式存储,按列并行输出待卷积的像素值矩阵;S2.调整待卷积的像素值矩阵的行顺序,使得先写入的像素数据不被覆盖;S3.使用待卷积的像素值矩阵的中心像素值的坐标信息来选择是否进行边缘填充以及边缘填充的数据;S4.将待卷积的像素值矩阵中与高斯卷积核中相同权重相乘的像素值先进行相加,得到可以被不同高斯卷积核复用的部分和,基于部分和完成M个不同的尺度系数的高斯卷积运算,形成一组高斯图像,多组高斯图像形成高斯金字塔;S5.同一组高斯图像中不同尺度系数的高斯图像作差,形成一组高斯差分图像,多组高斯差分图像形成高斯差分金字塔。优选地,基于SRAM缓存读写的速度慢,计算单元的速度快这一特性,通过利用数据缓存的速度与数据运算速度的不匹配性(假设运算单元速度是SRAM读写速度的P倍),设置快慢双时钟域,提出双时钟域高斯金字塔构建硬件加速技术。具体表现为S1中输出的待卷积的像素值矩阵先经过一个从慢时钟域到快时钟域的变换,使得加法树模块、多路分配器、所配置的若干个可重构PE阵列和高斯差分模块在对SRAM组进行一列像素值读出的时间,即产生一个新的待卷积像素矩阵的时间内进行时分复用。有益效果:与现有的全并行高斯金字塔构建方案相比,本专利技术减少了硬件开销,提高了硬件利用率。优选地,步骤S4具体包括如下步骤:S41.将待卷积的像素值矩阵中与高斯卷积核中相同权重相乘的像素值先进行相加,得到可以被不同高斯卷积核复用的部分和;S42.将所述部分和分成多组,采取时分复用的策略,使多组部分和分时完成M个不同尺度系数的高斯卷积,形成一组高斯图像,多组高斯图像形成高斯金字塔。优选地,使用当前像素矩阵的中心像素值的坐标进行判断,若当前待卷积像素值矩阵的中心像素值位于原始图像中间,不进行边缘填充;若当前待卷积像素值矩阵的中心像素值处于图像边缘,进行边缘填充。移位寄存器阵列的像素寄存器缓存待卷积的像素值,边缘填充寄存器缓存不同类型边缘填充需要的值,包括零值边缘填充、常数边缘填充以及重复边缘填充在内的不同类型的边缘填充,通过使用当前待卷积像素值矩阵的中心像素值的坐标信息控制N×N移位寄存器阵列中的多路选择器MUX选择移位寄存器阵列的像素寄存器缓存待卷积的像素值或者边缘填充寄存器缓存不同类型边缘填充需要的值,可以实现可重构的多种边缘填充效果。有益效果:解决了现有全并行方案中未实现边缘填充导致部分图像丢失,特征缺少的问题。优选地,利用高斯金字塔构建模板的对称性,提出输入图像部分和复用的方法,具体来说,卷积过程是将卷积模板中的像素值与卷积核中对应位置的数值相乘,再将所乘结果相加的过程。由于高斯金字塔构建核具有对称性,将与相同权重相乘的卷积模板中的像素值先进行相加,得到部分和。有益效果:通过高斯金字塔不同尺度卷积复用部分和的方式减小了加法器和乘法器的使用数量,减少了运算量。本专利技术另一方面提供了一种用于高斯金字塔构建的可重构硬件加速系统,包括:N组SRAM、N组FIFO、N-N的开关网络、N×N的移位寄存器阵列、高斯卷积运算模块以及高斯差分模块;N组SRAM,用于在慢时钟域下,将原始图像像素数据以行缓冲的形式存入,按列并行输出待卷积的像素值矩阵;N组FIFO,用于实现从慢时钟域到快时钟域的变换;N-N的开关网络,用于在快时钟域下,调整待卷积的像素值矩阵的行顺序,使得先写入的像素数据不被覆盖后按列输出待卷积的像素值矩阵;N×N的移位寄存器阵列,用于在快时钟域下,缓存待卷积的像素值矩阵以及边缘填充值;高斯卷积运算模块,用于在快时钟域下,实现可重构高斯金字塔构建;高斯差分模块,用于在快时钟域下,将所述高斯卷积运算模块输出的同一组高斯图像中不同尺度系数的高斯图像作差,形成高斯差分金字塔。优选地,高斯卷积运算模块包括加法树、多路分配器、H个可重构PE阵列;加法树模块,用于在快时钟域下,在对SRAM组进行一列像素值读出的时间,即产生一个新的待卷积像素矩阵的时间内,将像素值矩阵中与高斯卷积核中相同权重相乘的像素值进行相加,得到可以被不同高斯卷积核复用的部分和;多路分配器,用于在快时钟域下,在对SRAM组进行一列像素值读出的时间,即产生一个新的待卷积像素矩阵的时间内对所述部分和分时分配给若干个可重构PE阵列;可重构PE阵列,用于在快时钟域下,在对SRAM组进行一列像素值读出的时间,即产生一个新的待卷积像素矩阵的时间内,对所配置的若干个可重构PE阵列进行时分复用,基于部分和完成一个待卷积像素矩阵的M个尺度的高斯卷积,形成一组高斯图像,多组高斯图像形成高斯金字塔。可根据不同场景、不同任务对系统性能的要求,配置执行高斯金字塔和高斯差分金字塔构建任务的可重构P本文档来自技高网
...

【技术保护点】
1.一种用于高斯金字塔构建的可重构硬件加速方法,其特征在于,包括以下步骤:/nS1.将原始图像像素数据以行缓冲的形式存储,按列并行输出待卷积的像素值矩阵;/nS2.调整待卷积的像素值矩阵的行顺序,使得先写入的像素数据不被覆盖;/nS3.使用待卷积的像素值矩阵的中心像素值的坐标信息来选择是否进行边缘填充以及边缘填充的数据;/nS4.将待卷积的像素值矩阵中与高斯卷积核中相同权重相乘的像素值先进行相加,得到可以被不同高斯卷积核复用的部分和,基于部分和完成M个不同的尺度系数的高斯卷积运算,形成一组高斯图像,多组高斯图像形成高斯金字塔;/nS5.同一组高斯图像中不同尺度系数的高斯图像作差,形成一组高斯差分图像,多组高斯差分图像形成高斯差分金字塔。/n

【技术特征摘要】
1.一种用于高斯金字塔构建的可重构硬件加速方法,其特征在于,包括以下步骤:
S1.将原始图像像素数据以行缓冲的形式存储,按列并行输出待卷积的像素值矩阵;
S2.调整待卷积的像素值矩阵的行顺序,使得先写入的像素数据不被覆盖;
S3.使用待卷积的像素值矩阵的中心像素值的坐标信息来选择是否进行边缘填充以及边缘填充的数据;
S4.将待卷积的像素值矩阵中与高斯卷积核中相同权重相乘的像素值先进行相加,得到可以被不同高斯卷积核复用的部分和,基于部分和完成M个不同的尺度系数的高斯卷积运算,形成一组高斯图像,多组高斯图像形成高斯金字塔;
S5.同一组高斯图像中不同尺度系数的高斯图像作差,形成一组高斯差分图像,多组高斯差分图像形成高斯差分金字塔。


2.如权利要求1所述的方法,其特征在于,所述S1中输出的待卷积的像素值矩阵经过一个从慢时钟域到快时钟域的变换,再进入S2。


3.如权利要求1所述的方法,其特征在于,步骤S4具体包括如下步骤:
S41.将待卷积的像素值矩阵中与高斯卷积核中相同权重相乘的像素值先进行相加,得到可以被不同高斯卷积核复用的部分和;
S42.将所述部分和分成多组,采用时分复用,使多组部分和分时完成M个不同尺度系数的高斯卷积,形成一组高斯图像,多组高斯图像形成高斯金字塔。


4.如权利要求1所述的方法,其特征在于,步骤S3中当待卷积像素值矩阵的中心像素值位于原始图像中间,不进行边缘填充;当待卷积像素值矩阵的中心像素值处于图像边缘,进行边缘填充,填充方式为零值边缘填充、常数边缘填充或者重复边缘填充。


5.一种用于高斯金字塔构建的可重构硬件加速系统,其特征在于,包括:N组SRAM、N组FIFO、N-N的开关网络、N×N的移位寄存器阵列、高斯卷积运算模块以及高斯差分模块;
N组SRAM,用于在慢时钟域下,将原始图像像素数据以行缓冲的形式存入,按列并行输出待卷积的像素值矩阵;
N组FIFO,用于实现从慢时钟域到快时钟域的变换;
N-N的开关网络,用于在快时钟域...

【专利技术属性】
技术研发人员:王超余国义詹翊刘炳强胡晓峰王子豪
申请(专利权)人:华中科技大学
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1