sift算法详解
A. sift算法
SIFT算法主要分为四个步骤:
1、尺度空间极值检测(Scale-space extrema detection):通过使用高斯差分函数来搜索所有尺度上的图像位置,识别出其中对于尺度和方向不变的潜在兴趣点。
B. SIFT算法原理与源码分析
SIFT算法的精密解析:关键步骤与核心原理
1. 准备阶段:特征提取与描述符生成
在SIFT算法中,首先对box.png和box_in_scene.png两张图像进行关键点检测。利用Python的pysift库,通过一系列精细步骤,我们从灰度图像中提取出关键点,并生成稳定的描述符,以确保在不同尺度和角度下依然具有较高的匹配性。
2. 高斯金字塔构建
- 计算基础图像的高斯模糊,sigma值选择1.6,先放大2倍,确保模糊程度适中。
- 通过连续应用高斯滤波,构建高斯金字塔,每层图像由模糊和下采样组合而成,每组octave包含5张图像,从底层开始,逐渐减小尺度。
3. 极值点检测与极值点定位
- 在高斯差分金字塔中寻找潜在的兴趣点,利用26邻域定义,选择尺度空间中的极值点,这些点具有旋转不变性和稳定性。
- 使用quadratic fit细化极值点位置,确保匹配点的精度。
4. 特征描述与方向计算
- 从细化的位置计算关键点方向,通过梯度方向和大小统计直方图,确定主次方向,以增强描述符的旋转不变性。
- 通过描述符生成过程,旋转图像以匹配关键点梯度与x轴,划分16x16格子并加权叠加,生成128维的SIFT特征描述符。
5. 精度校验与匹配处理
- 利用FLANN进行k近邻搜索,执行Lowe's ratio test筛选匹配点,确保足够的匹配数。
- 执行RANSAC方法估计模板与场景之间的homography,实现3D视角变化适应。
- 在场景图像上标注检测到的模板并标识SIFT匹配点。
SIFT的独特性:它提供了尺度不变、角度不变以及在一定程度上抵抗3D视角变化的特征,是计算机视觉领域中重要的特征检测和描述算法。
C. 快速搞定SIFT算法
SIFT算法旨在在图像中搜索关键点并描述它们,实现尺度不变性特征转换,有助于对图像进行详细描述。
其核心在于在不同尺度空间中查找关键点,识别这些在光照、仿射变换和噪音影响下仍保持稳定的特征点,如角点、边缘点、暗区亮点及亮区暗点。
SIFT算法流程分为关键点检测和关键点描述两大部分。
第一步是尺度空间极值检测,通过构建高斯金字塔,使用差分高斯金字塔找出具有极值的候选关键点。
第二步是关键点精确定位,利用Taylor展开对候选关键点进行精确计算,去除低对比度、对噪声敏感的关键点,确保候选关键点的稳定性。
第三步是关键点方向分配,通过计算局部像素梯度分布,为关键点分配基准方向,增强描述符的旋转不变性。
最后一步是关键点描述子构建,根据关键点的位置、尺度和方向,通过特征向量描述每个关键点,确保描述稳定,不受光照、视角变化影响。
D. SIFT绠楁硶
SIFT绠楁硶锛氢竴绉嶉潻锻芥х殑灞閮ㄧ壒寰佹弿杩版妧链
镊1999骞碊avid Lowe镄勯潻鏂颁箣浣滆癁鐢熶互𨱒ワ纴SIFT绠楁硶锲犲叾灏哄害鍜屾棆杞涓嶅彉镐у湪锲惧儚澶勭悊棰嗗烟镫镙戜竴甯溿傜洿镊2020骞寸殑涓揿埄链熸弧锛岃繖涓寮哄ぇ镄勫伐鍏峰备粖宸叉垚涓哄紑婧愮殑瀹濊吹璧勬簮锛岃骞挎硾搴旂敤浜庡叏鏅𨰾嶆惮銆佸浘镀忓尮閰岖瓑浼楀氩満鏅銆傝╂垜浠娣卞叆鎺㈣⊿IFT绠楁硶镄勫伐浣滃师鐞嗭纴棰嗙暐鍏跺湪锲惧儚涓栫晫镄勯瓟锷涖
1.2 SIFT绠楁硶镄勬牳蹇冨师鐞
棣栧厛锛孲IFT璧锋簮浜庡浘镀忕殑灏哄害绌洪棿姒傚康锛岄氲繃鍒涘缓楂樻柉閲戝瓧濉旀潵妯℃嫙浜虹溂瀵硅繙杩戝拰娓呮榈搴︾殑镒熺煡銆傝繖涓杩囩▼阃氲繃閲囨牱娉曟ā𨰾熷浘镀忕殑缂╂斁锛岄珮鏂镙稿钩婊戝勭悊鍒欐ā𨰾熺粏鑺傜殑灞傛″彉鍖栥
1.2.1 锲惧儚楂樻柉閲戝瓧濉旂殑鏋勫缓
鏋勫缓楂樻柉閲戝瓧濉旂殑鍏抽敭鍦ㄤ簬璁$畻铡熷嫔浘镀忕殑灏哄搞侀噾瀛楀旂殑灞傜骇鍜岄珮鏂妯$硦绯绘暟銆傛疮灞傚浘镀忛氲繃涓娄竴灞傜殑涓嬮噰镙锋潵瀹炵幇锛屽舰鎴愪竴缁勬ā𨰾熶笉钖屽昂搴︾殑锲惧儚銆傚湪瀵绘垒鏋佸肩偣镞讹纴鎴戜滑鍒╃敤楂樻柉宸鍒嗛噾瀛楀旓纴鍏舵疮灞备箣闂寸殑宸寮傛湁锷╀簬妫娴嫔叧阌镣广傛瀬鍊肩偣瀹氢綅娑夊强阒埚煎勭悊锛堜緥濡傦纴T=0.04锛屼笌锲惧儚鏁伴噺鐩稿叧锛屼互鍙婂儚绱犲肩殑缁濆瑰硷级锛屽苟鍦ㄤ笁涓鏂瑰悜锛坸銆乱鍜屉冿级涓婅繘琛屾悳绱銆备负浜嗘彁楂樼簿搴︼纴鏋佸肩偣杩橀渶缁忚繃娉板嫆灞曞紑淇姝o纴钖屾椂鍓旈櫎浣庡规瘆搴﹀尯锘熷拰杈圭紭鏁埚簲镄勫奖鍝嶃
鍏抽敭镣规弿杩扮殑鏋勫缓
鍏抽敭镣圭殑鏂瑰悜淇℃伅鐢辨搴︾粺璁℃彁渚涳纴鎺ョ潃阃氲繃鍒掑垎锲惧儚鍖哄烟銆佹墽琛屽潗镙囧彉鎹锛屼互鍙婄粺璁128缁寸洿鏂瑰浘𨱒ユ瀯阃犺︾粏镄勬弿杩扮︺傝繖涓杩囩▼纭淇濅简鍏抽敭镣瑰湪涓嶅悓灏哄害鍜屾棆杞涓嬬殑绋冲畾琛ㄧず锛屼娇寰桽IFT鍦ㄥ浘镀忓尮閰嶅拰璇嗗埆浠诲姟涓琛ㄧ幇鍑鸿壊銆
娣卞叆浜呜ВSIFT绠楁硶镄勬疮涓涓缁呜妭锛屼綘灏嗘洿鑳芥h祻鍒板畠鍦ㄥ浘镀忓勭悊棰嗗烟涓镄勫箍娉涘簲鐢ㄥ拰鍗撹秺镐ц兘銆傛棤璁烘槸澶勭悊澶嶆潅鍦烘櫙涓镄勮呜夋悳绱锛岃缮鏄鍦ㄥ叏鏅𨰾嶆惮涓瀹炵幇镞犵绅𨰾兼帴锛孲IFT閮芥槸涓嶅彲鎴栫己镄勫伐鍏枫傛帰绱㈡洿澶氩叧浜岙IFT鐗瑰緛鎻愬彇鍜屽昂搴︾┖闂村浘镀忛噾瀛楀旂殑娣卞叆鏂囩珷锛岃繘涓姝ユ彁鍗囦綘镄勫浘镀忓勭悊鎶鑳藉惂锛