基于FPGA的ORB特征点提取算法部署系统
- 国知局
- 2024-08-19 14:23:01
本发明涉及硬件图像算法,特别涉及一种基于fpga的orb特征点提取算法部署系统。
背景技术:
1、orb(oriented fast and rotated brief)算法是一种用于特征点提取和描述的算法,它是fast特征检测器和brief描述子的结合,通过引入旋转不变性和尺度不变性,提供了具有鲁棒性和高性能的特征点检测和匹配算法,具有低计算复杂度和高匹配效率的特点。
2、为了提高特征点提取和匹配的准确度,它引入了旋转不变性和尺度不变性。具体来说,orb算法在计算描述子时,会对关键点进行旋转和尺度的仿射变换,将关键点的局部区域转换为固定的大小和方向,以便于后续的匹配过程。orb算法具有快速高效、鲁棒性强和旋转尺度不变性等优点,在计算机视觉领域的目标识别、图像配准和同步定位与建图算法(slam)等任务中得到了广泛应用。
3、fpga(field-programmable gate array)是一种可编程逻辑设备,它可以根据用户的需求重新配置其内部逻辑电路。相比于cpu等传统硬件,fpga具有以下优点:首先,fpga具有并行处理的能力,可以同时进行多个操作,从而提供了更高的计算性能;其次,fpga可实现底层硬件级别的优化,可以根据具体算法特点进行灵活定制,提高算法执行的效率和速度;此外,fpga具有低功耗和低延迟的特性,适用于对实时性要求较高的应用。因此,通过fpga部署算法可以获得更高的性能和更好的能效,增强了算法在特定应用领域的适用性。
4、在诸如增强现实中跟踪注册显示等应用场景中,orb特征点的提取的计算密集型较高,计算量较大,适合使用硬件方法实现,能够提高数据吞吐量、降低延迟和功率。
技术实现思路
1、本发明提供一种基于fpga的orb特征点提取算法部署系统,通过对该算法中非极大值抑制算法的邻域参数进行了指定,减少了缓存容量和非必要的逻辑开支,从而降低了系统的面积和功耗。
2、本发明实施例提供一种基于fpga的orb特征点提取算法部署系统,包括:
3、原始图像数据缓存模块,用于将输入的原始图像连续的4个像素进行缓存,并在寄存器阵列中维护图像的4片重叠的7*7大小图像局部模板;
4、fast特征点检测模块,用于基于fast算法,对所述原始图像数据缓存模块中寄存器中的4片图像局部模板进行快速特征点检测相关计算;
5、fast数据缓存模块,用于根据所述fast特征点检测模块的计算结果,对fast数据进行更新与缓存;
6、高斯模糊模块,用于利用5*5大小的高斯滤波器对所述原始图像数据缓存模块中寄存器中的四个中心像素进行高斯模糊处理;
7、高斯模糊图像数据缓存模块,用于对经过高斯模糊处理后的像素数据进行缓存,并在寄存器阵列中维护模糊图像的局部信息;
8、brief描述子计算模块,用于根据所述高斯模糊图像数据缓存模块和所述fast数据缓存模块中的数据,计算brief描述子,得到orb特征点数据。
9、可选地,在本发明的一个实施例中,所述fast特征点检测模块包括:
10、fast角点判断子模块,用于计算图像局部模板的中心像素与外围16个像素差的绝对值,并与预设阈值进行比较,若存在连续的九个差值绝对值均大于预设阈值,则认定中心像素为fast角点;
11、fast得分计算子模块,用于在16个中心像素与外围像素差的绝对值中,取16组数据,每组由不同像素起,相邻的9个中心像素与外围像素差的绝对值构成,在每组数据内取最小值,再对这16个组内最小值取最大值得到fast得分,fast得分用于评价fast角点的性能;
12、fast得分修正子模块,用于根据所述fast角点判断子模块的计算结果,若中心像素非fast角点,则修正其得分为0;
13、行内非极大值抑制子模块,用于比较4个像素fast得分的高低,向外输出最高得分的中心像素的局部位置和得分。
14、可选地,在本发明的一个实施例中,所述fast得分计算子模块利用比较器树进行计算,先对16个中心像素与外围像素差的绝对值,求16对相邻的连续2个值间的最小值;再利用计算出的最小值求16对相邻的连续4个值间的最小值;再利用计算出的最小值求16对相邻的连续8个值间的最小值;再利用计算出的最小值和原始的中心像素与外围像素差的绝对值求16对相邻的连续9个值间的最小值;再用比较器树求最小值中的最大值,得到fast得分。
15、可选地,在本发明的一个实施例中,所述fast数据缓存模块内部的存储组件使用两个双端口ram串联,简称ram0和ram1,ram0的写端口、ram1的读端口分别与所述fast特征点检测模块和所述brief描述子计算模块连接;
16、与所述fast特征点检测模块相连的ram0,用于对fast得分数据进行缓存与更新,当所述fast特征点检测模块输出fast特征点的坐标和得分时,所述fast数据缓存模块内的译码逻辑先将坐标转化为该坐标在整体图像中所在的4*4局部模板的位置,再将坐标转化为ram储存单元的真实列地址对其进行读操作,得到该位置上的fast特征数据;之后内部逻辑比较当前fast特征点检测模块输出fast特征点的得分和由ram0读出的上一行的得分,若当前得分更高,则在下一个时钟上升沿对该地址的数据进行更新,否则保持不变,通过利用行间数据传输的延迟性,在传输的过程中进行非极大值抑制;
17、与所述fast特征点检测模块相连的ram1,用于读取当下对所述高斯模糊图像数据缓存模块内寄存器模板维护的图像局部中心像素对应地址的fast数据,具体为fast特征点在4个像素中的局部坐标,进行片选,提供给所述brief描述子计算模块,若不存在fast特征点,则提供给所述brief描述子计算模块全0数据。
18、可选地,在本发明的一个实施例中,所述brief描述子计算模块包括:
19、像素矩计算子模块,用于通过加法器树计算31*31像素模板内圆形范围内的像素在横向和纵向上的矩,具体方法为:计算范围内所有像素与其所在局部横纵坐标的乘积和,得到横向矩和纵向矩;
20、旋转角度计算子模块,用于通过比较横向矩和纵向矩与32个量化角度正切值的乘积相对大小,确定旋转角度的量化值;
21、brief描述子的计算与修正子模块,用于利用rs-brief算法计算描述子,并利用所述旋转角度计算模块计算得到的旋转角度的量化值对描述子进行移位修正,若中心像素点为fast角点,则输出brief描述子、fast角点坐标以及得分。
22、本发明实施例的基于fpga的orb特征点提取算法部署系统,实现了对其的硬件加速,同时通过对该算法中非极大值抑制算法的邻域参数进行了指定,减少了缓存容量和非必要的逻辑开支,从而降低了系统的面积和功耗。
23、本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
本文地址:https://www.jishuxx.com/zhuanli/20240819/274993.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。