一种基于fpga的sift图像特征提取系统的制作方法

文档序号:9261753阅读:823来源:国知局
一种基于fpga的sift图像特征提取系统的制作方法
【技术领域】
[0001] 本发明属于图像配准技术领域,具体涉及一种基于FPGA的SIFT图像特征提取系 统。
【背景技术】
[0002] 在运动目标检测与跟踪系统中,对提取的图像特征点的质量要求较高。实际处理 的过程中,如果拍摄的视频图像发生一定尺度上的变化,会使特征点匹配出现偏差。
[0003] 采用SIFT特征提取算法可W提高特征点提取的准确性。例如;文献一(Yan Ke,RahulSukthankar.PCA-SIFT:amoredistinctiverespresentationforlocalimage descriptors[C].ProcConfComputerVisionandPatternRecognition, 2004:511-517) 提出了基于SIFT算法的改进方法,该方法通过PCA(主成分分析)对特征描述符作降维处 理,W及使用块状滤波炬oxlet)和积分图像取代原方法中计算复杂的高斯滤波,降低了方 法的复杂度,但是该方法是在软件平台上实现的,所W实时性较差;文献二(许飞,刘威.多 核下的算法优化[J].信息通信,2012, 121 (5) :42-46)提出了在基于TI多核C6000DSP芯 片上实现SITF算法的方法,采用多核DSP可W提高SIFT算法运算精度,且可移植性强,但 是该方法占用内存资源较大,且实时性没有得到彻底改善。

【发明内容】

[0004] 本发明解决的技术问题是,提供一种在运动目标检测中能够实时、精确地提取目 标特征信息的图像配准预处理的系统。
[0005] 为了解决上述技术问题,本发明提供一种基于FPGA的SIFT图像特征提取系统,包 括千兆网模块、高斯滤波级联和高斯差分模块、梯度计算模块、极值点检测模块W及主方向 和特征描述子模块;千兆网模块与高斯滤波级联和高斯差分模块相连,高斯滤波级联和高 斯差分模块同时与梯度计算模块和极值点检测模块相连,主方向和特征描述子模块同时与 梯度计算模块和极值点检测模块相连;千兆网模块接收到电脑端发送的图像数据包后进行 解包操作并将数据发送给高斯滤波级联和高斯差分模块;高斯滤波级联和高斯差分模块接 收到数据后计算高斯滤波值和高斯差分值,然后将高斯滤波值发送到梯度计算模块,将高 斯差分值发送到极值点检测模块;梯度计算模块接收到高斯滤波值后计算梯度值,然后将 求得的梯度值发送给主方向和特征描述子模块;极值点检测模块接收到高斯差分值后在差 分值之间寻找极值,并将极值代表的特征点的位置坐标发送给主方向和特征描述子模块; 主方向和特征描述子模块根据梯度值和特征点的位置坐标使用统计直方图信息的方式先 求取特征点的主方向,然后再利用特征点的主方向求取特征点的特征描述子,最后将特征 描述子传递给后端进行后续的匹配操作。
[0006] 本发明与现有技术相比,其显著优点在于;(1)本发明采用定点数表示来表示系 统中间的数据,通过选择合理的尺度大小、高斯金字培层数和组数来保证方法的精度要求; (2)本发明将每一层的二维高斯滤波分解成为对行像素和列像素分别进行一维的高斯滤 波,降低了本发明的复杂度;(3)在本发明中,采用SRAM缓存技术来存储算法中间产生的大 量数据,利用SRAM读写操作较容易的特点,提高了计算速度,降低了芯片占用的资源;(4) 本算法采用纯硬件实现,所W数据传输率快,运算速度快,实时性好,效率高,为后续算法提 供了较大的时间余量。
【附图说明】
[0007] 图1是本发明基于FPGA的SIFT图像特征提取系统模块结构示意图。
[0008] 图2是本发明基于FPGA的SIFT图像特征提取系统高斯滤波级联和高斯差分模块 示意图。
[0009] 图3是本发明基于FPGA的SIFT图像特征提取系统二维高斯卷积示意图。
[0010] 图4是本发明基于FPGA的SIFT图像特征提取系统极值点寻找示意图。
[0011] 图5是本发明基于FPGA的SIFT图像特征提取系统求取主方向和特征描述子示意 图。
【具体实施方式】
[0012] 如图1所示,本发明基于FPGA的SIFT图像特征提取系统,包括千兆网模块、高斯 滤波级联和高斯差分模块、梯度计算模块、极值点检测模块W及主方向和特征描述子模块; 千兆网模块与高斯滤波级联和高斯差分模块相连,高斯滤波级联和高斯差分模块同时与梯 度计算模块和极值点检测模块相连,主方向和特征描述子模块同时与梯度计算模块和极值 点检测模块相连;
[0013] 千兆网模块接收到电脑端发送的图像数据包后进行解包操作并将数据发送给高 斯滤波级联和高斯差分模块;高斯滤波级联和高斯差分模块接收到数据后计算高斯滤波值 和高斯差分值,然后将高斯滤波值发送到梯度计算模块,将高斯差分值发送到极值点检测 模块;梯度计算模块接收到高斯滤波值后计算梯度值,然后将求得的梯度值发送给主方向 和特征描述子模块;极值点检测模块接收到高斯差分值后在差分值之间寻找极值,并将极 值代表的特征点的位置坐标发送给主方向和特征描述子模块;主方向和特征描述子模块根 据梯度值和特征点的位置坐标使用统计直方图信息的方式先求取特征点的主方向,然后再 利用特征点的主方向求取特征点的特征描述子,最后将特征描述子传递给后端进行后续的 匹配操作。
[0014] 本发明基于FPGA的SIFT图像特征提取系统,中间产生的部分数据利用H片外部 的SRAM存储芯片进行缓存。兆网模块与高斯滤波级联和高斯差分模块之间连接有第一 SRAM存储芯片,高斯滤波级联和高斯差分模块连接有第二SRAM存储芯片,梯度计算模块与 主方向和特征描述子模块之间连接有第HSRAM存储芯片。千兆网模块输出的数据使用第 一SRAM存储芯片进行缓存;高斯滤波级联和高斯差分模块求取高斯滤波值时产生的一维 高斯卷积值用第二SRAM存储芯片进行缓存;梯度计算模块求得的梯度值用第HSRAM存储 芯片进行缓存。
[0015]本发明高斯滤波级联和高斯差分模块中,高斯滤波采用多级级联的方式搭建高斯 金字培。如图2所示,每一层高斯滤波值求完后输入到下一层高斯卷积中求取下一层的高 斯滤波值,依次级联下去。
[0016]本发明高斯滤波级联和高斯差分模块中,高斯滤波采用的二维高斯卷积方法分解 为两次一维高斯卷积,如图3所示,即先对图像的行像素进行一维高斯卷积,求取一维高斯 卷积值,然后将求得的一维高斯卷积值存储利在第二SRAM存储芯片中进行转置,对转置后 的行像素进行一维高斯卷积,求得二维高斯卷积值也即高斯滤波值。
[0017] 本发明在高斯滤波级联和高斯差分模块中求取高斯差分值时,使用先入先出缓存 器FIFO对前一层高斯滤波值进行延时,保证相邻两层高斯滤波值的时序同步,通过对相邻 两层高斯滤波值作差求得尺度空间。
[0018] 本发明极值点检测模块中,极值点检测利用两个先入先出缓存器FIF01和FIF02 构造n*n大小的比较矩阵,通过比较矩阵求取极值点后再将极值点坐标W及对应尺度输入 至先入先出缓存器FIFOS中缓存。
[0019]本发明梯度计算模块采用C0畑1C(坐标旋转数字计算)迭代算法求取梯度值的。 C0RDIC算法采用多次迭代的方法进行梯度值的计算,将复杂的数学运算简化成简单的移位 和加减运算。
[0020] 本发明主方向和特征描述子模块中,在直方图统计时采用方形邻域作为统计区 域。同时,在模值累加时需要对幅角进行取整进行判断。
[00川 实施例
[0022] 本实施例实现的硬件平台;采用XI化INX公司xc5vfx30t-2ff665为主芯片的 FPGA开发板,外置的SRAM存储芯片,千兆网口。算法用verilog语言描述,程序编写和仿真 在ISE13. 1上完成。
[0023] 电脑端将摄像头采集到的视频数据通过千兆网网口发送到Vbtex-5开发板上的 千兆网模块。因电脑端发送的视频图像大小是320*256格式,为了便于千兆网发送数据,电 脑端将每4行数据打包成1280字节的UDP数据包,并在每一峽图像的前面加上相同的峽头 作为新的图像数据标志。
[0024] 千兆网模块
[0025] 千兆网模块接收电脑端传递过来的视频流后,因千兆网传输模块接收到的RXD信 号是4位图像数据,所W通过先入先出缓存器FIFO读写将其转换为16位数据,同时进行大 小端转换,再对UDP数据包进行拆包处理并检测CRC校验码,如果CRC校验码计算正确,贝U 将四行1280个字节的数据输出到第一SRAM存储芯片进行缓存。
[0026] 高斯滤波级联和高斯差分模块
[0027] 如图2,对从第一SRAM存储芯片输出的数据经过6个高斯卷积模块(高斯卷积的参 数分别为0。,〇1,0 2, 0 3, 0 4, 0 5,),连续(即级联)地进行6次高斯卷积,得到6层高斯 滤波值,该6层高斯滤波值被称为第一组高斯金字培。然后W倒数第H个高斯滤波值作为 第二组高斯金字培的初始输入值,同样进行6次级联高斯卷积,得到第二组高斯金字培的6 层高斯滤波值。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1