原创-sift实现1
清风飞扬go
这个作者很懒,什么都没留下…
展开
-
第一步:SIFT尺度空间的建立--FPGA设计完成
高斯金字塔(Gaussian Pyramid):高斯金字塔里有两个概念:组(Octave)和层(Level或Interval),每组里有若干层。高斯金字塔的构造是这样的:(1)第一组的第一层为原图像,然后将图像做一次高斯平滑(高斯卷积、高斯模糊)高斯平滑里有一个参数σ,在SIFT里作者取1.6;(2)将σ乘一个比例系数k作为新的平滑因子来平滑第一组第二层得到第三层。(3)重复若干次原创 2016-07-18 09:17:37 · 1945 阅读 · 5 评论 -
SIFT--FPGA实现之降采样
3.1 高斯金字塔的构建尺度空间在实现时使用高斯金字塔表示,高斯金字塔的构建分为两部分:1. 对图像做不同尺度的高斯模糊;2. 对图像做降采样(隔点采样)。图像的金字塔模型是指,将原始图像不断降阶采样,得到一系列大小不一的图像,由大到小,从下到上构成的塔状模型。原图像为金子塔的第一层,每次降采样所得到的新图像为金字塔的一层(每层一张图像),每个金字塔共n 层。金字塔的层数根据原创 2016-07-07 15:12:41 · 4966 阅读 · 0 评论 -
SIFT之极值点检测
极值点检测模块,主要由5个部分组成:像素窗生成模块、极值点检测、低对比度点剔除、强边缘点剔除和特征点位置信息存储,像素窗生成模块缓存两行图像生成3x3的图像块,极值点检测模块将当前DoG像素与相邻的26个DoG像素比较,判断当前DoG像素是否为局部极值点(极大值或者极小值)。低对比度点剔除模块将当前DoG像素值与固定阈值(本架原创 2016-07-21 17:06:00 · 2927 阅读 · 0 评论 -
SIFT 极值点检测FPGA实现
在极值点检测模块时,做了三个版本的,第一个是直接四舍五入,8位的数据,做的,检测的极值点有7000多个,差很多,第二个版本改为8位整数5位小数输出,检测到的关键点有1000多个,第三个版本改为DOG有符号输出,有符号的比较器,这样检测的关键点为240个,这样就和matlab检测的结果180个检测点 差不多了,如果小数精度加大,会更好,但会更费资源。原创 2016-08-02 16:59:13 · 1513 阅读 · 1 评论 -
SIFT--FPGA实现之幅值和幅角计算模块
该模块的实现,让我走了许多弯路,开始在看文献和文章里面说的都是用cordic算法去做,然后我发现xilinx的IP核里面有这个cordic算法的IP,而且还有求反正切和开方根运算sqrt,让我开心不已,就冒失的跟领导说了,这块很快就搞定了,SIFT用FPGA实现很快就要做完了,结果等我去用IP核的时候,仿真发现不对,开方根只能处理整数和小数开方根运算,而且整数开方根运算误差很大,小数开方根运算还必原创 2016-08-19 13:16:30 · 3787 阅读 · 4 评论 -
尺度不变特征变换匹配算法详解
1、SIFT综述尺度不变特征转换(Scale-invariant feature transform或SIFT)是一种电脑视觉的算法用来侦测与描述影像中的局部性特征,它在空间尺度中寻找极值点,并提取出其位置、尺度、旋转不变量,此算法由 David Lowe在1999年所发表,2004年完善总结。其应用范围包含物体辨识、机器人地图感知与导航、影像缝合、3D模型建立、手势辨识、影像追踪和动作比转载 2016-07-12 10:46:44 · 1346 阅读 · 0 评论 -
SIFT之FPGA实现--主方向计算模块
主方向计算模块主要包括以下几个模块:Guass_OriMagMagnitude(幅值高斯权重)、Argument_data_adjust(幅角调整模块)、hist(直方图统计及主方向计算模块)。当然里面还有一些小的其他模块,大致就是这几块。所以的算法设计采用全流水设计,这样使得运行的速度更快。 这里面的具体算法实现,还算容易,就是整体的建构 构建以及如何实现全流水设计是难点,想了好久,比原创 2016-09-01 15:51:44 · 1258 阅读 · 1 评论 -
FPGA实现SIFT,全部使用FPGA实现直接生产描述子,全流水处理
FPGA实现SIFT,全部使用FPGA实现直接生产描述子,全流水处理。 设计时为了考虑速度,设计全流水架构,中间只缓存几行数据进行处理,从高斯滤波到最后生成128位描述子,全部使用FPGA实现。处理效果很好,配准率很高。完全实时处理。下面为遥感图像 佐世保 处理结果效果图增加关键点数处理效果无人机原创 2016-11-14 19:07:16 · 3464 阅读 · 8 评论