基于图像的三维建模——特征点检测与匹配
點擊上方“3D視覺工坊”,選擇“星標”
干貨第一時間送達
作者:夢寐mayshine
鏈接:https://zhuanlan.zhihu.com/p/128937547
本文轉載自知乎,作者已授權,未經許可請勿二次轉載。
特征點:檢測子(給一副圖像找到特征點的位置)+描述子(特征向量,用于特征匹配)
一、圖像特征介紹
1、圖像特征點的應用
相機標定:棋盤格角點陰影格式固定,不同視角檢測到點可以得到匹配結果,標定相機內參
圖像拼接:不同視角匹配恢復相機姿態
稠密重建:間接使用特征點作為種子點擴散匹配得到稠密點云
場景理解:詞袋方法,特征點為中心生成關鍵詞袋(關鍵特征)進行場景識別
2、圖像特征點的檢測方法
人工設計檢測算法:sift、surf、orb、fast、hog
基于深度學習的方法:人臉關鍵點檢測、3D match點云匹配
場景中的人工標記點:影視場景背景簡單的標記,特殊二維碼設計(快速,精度低)
3、圖像特征點的基本要求
差異性:視覺上場景上比較顯著點,灰度變化明顯,邊緣點等
重復性:同一個特征在不同視角中重復出現,旋轉、光度、尺度不變性
二、特征檢測子
1、Harris 角點檢測(早期,原理簡單,視頻跟蹤,快速檢測)
https://zhuanlan.zhihu.com/p/90393907動機:特征點具有局部差異性
以每個點為中心取一個窗口,例如,5×5/7×7的像素,描述特征點周圍環境
此點具有差異性->窗口往任意方向移動,則周圍環境變化較大->具有局部差異性
最小二乘線性系統
加和符號:表示窗口內每個像素
w:表示權重,權值1或者以點為中心的高斯權重(離點越近權重越大)
I:表示像素,RGB/灰度
u,v:窗口移動的方向
H:harris矩陣,由兩個方向上的梯度構建而成
圖像梯度:
Harris矩陣:
Harris矩陣H 的特征值分析
兩個特征值反映相互垂直方向上的變化情況,分別代表變化最快和最慢的方向,特征值大變化快,特征值小變化慢
λ1 ≈ λ2 ≈ 0, 兩個方向上變化都很小,興趣點位于光滑區域
λ1 > 0 , λ2 ≈ 0 ,一個方向變化快,一個方向變化慢,興趣點位于邊緣區域
λ1 , λ2 > 0 , 兩個方向變化都很快,興趣點位于角點區域(容易判斷)
反映特征值情況,trace為跡
k的值越小,檢測子越敏感
只有當λ1和λ2同時取得最大值時,C才能取得較大值
避免了特征值分解,提高檢測計算效率
非極大值抑制(Non-maximal Suppression) 選取局部響應最大值,避免重復的檢測
算法流程:
0)濾波、平滑,避免出現階躍函數
1)計算圖像水平和垂直方向的梯度
2)計算每個像素位置的Harris矩陣
3)計算每個像素位置的Harris角點響應值
3+)非極大值抑制
4)找到Harris角點響應值大于給定閾值且局部最大的位置作為特征點
檢測結果:
2、基于LoG的多尺度特征檢測子
動機:Harris角點檢測不具有尺度不變性,讓特征點具有尺度不變性
解決方法:尺度歸一化LoG算子,處理尺度的變化
LoG算子:Lindeberg(1993)提出Laplacian of Gaussian (LoG)函數的極值點對應著特征點
尺度空間:
一副圖像使用不同大小濾波核濾波(e.g.高斯濾波),越大的濾波核越模糊,分辨率越小,不同濾波核濾波后的空間為尺度空間=3維空間(圖像+尺度),模擬人類視覺,較遠物體模糊,一系列濾波核構成的不同分辨率圖像為尺度空間->LoG能夠處理不同尺度的圖像
LoG算子[1]形式:高斯濾波性質:卷積->求拉普拉斯算子==求拉普拉斯算子->卷積 ? ? ? ? ? ? ? 其中 是LoG算子
尺度歸一化LoG[2](使得具有可比性=匯率):其中 是尺度歸一化LoG算子
不同尺度下的LoG響應值不具有可比性
構建尺度空間,同時在位置空間和 尺度空間尋找歸一化LoG極值(極大 /極小)點作為特征點
不同尺度下 的響應值
LoG特征檢測算法流程
1)計算不同尺度上的尺度歸一化LoG函數值
2)同時在位置和尺度構成的三維空間上尋找 尺度歸一化LoG的極值點
3)進行非極大值抑制,減少重復檢測 (去除冗余、保持穩定性)
檢測結果:效果好,LoG計算量大
3、基于DoG的多尺度特征檢測子(SIFT)——穩定和魯棒
LoG可以由DoG近似:Lowe(2004)提出歸一化LoG近似等價于相鄰尺度的高斯差分(DoG)
高斯空間:
高斯差分DoG:相鄰的空間做差,極點處對應特征點
尺度空間的構建
高斯空間
高斯差分
有效差分 (尺度空間有上下兩個鄰域才行,邊界無效)
任意設置
階數:O=3 ?(octave=階,每階圖像尺寸減少一半,階數高->運算量大->尺度變化大)
每階有效差分數:S=3(每個階內劃分數)
每階層數:N=S+3
特征點位置的確定:
1)尺度空間和圖像空間上:3*3窗口,26個鄰域,找極值點比其他都要大DoG,LoG找極大值或極小值
2)橫軸向代表離散位置,縱軸代表DoG響應值,在極值點鄰域內求二階函數的極值=準確像素位置
亞像素特征點位置的確定
x: 為三維,坐標空間+尺度空間
f(x): 為DoG值
x0: 檢測到離散坐標下的極大值點
任務:在x0附近近似一個二階函數,求二階函數極值得到更準確的亞像素極值位置
矩陣的表達-1階
矩陣的表達-2階
極值點有可能是邊緣點,->除去邊緣點:DoG在邊緣處值較大,需要避免檢測到邊緣點
計算主方向:通過統計梯度直方圖的方法確定主方向,使算法具有旋轉不變性
SIFT特征檢測流程:旋轉不變性、尺度不變性、亮度 變化不變性,對視角變化、仿射變換有一定程度的穩定性
1)計算圖像尺度空間:
2)DoG極值點檢測與定位:保留 的特征點
3)邊緣點去除:?
4)計算主方向
5)生成描述子
6)檢測結果
4、快速特征點檢測方法:——實時性要求高
FAST特征點[3]:Feature from Accelerated Segment Test
特性:通過檢測局部像素灰度變化來確認特征點的位置,速度快,SIFT的100倍;不具有尺度和旋轉不變性
流程:
1)以候選點p為圓心構建一個離散圓
2)比較圓周上的像素與p點像素值
3)當有連續的n個像素值明顯亮于或者暗于p時,p被檢測為特征點,例Fast9,Fast12
檢測:
Oriented FAST (ORB)
獲取尺度不變性:構建圖像金字塔,在金字塔 每一層上檢測關鍵點
獲取旋轉不變性 :通過灰度質心法(Intensity Centroid) 確定圖像主方向
圖像塊B上的矩定義為:
圖像塊B的質心定義為 :
計算方向角 :
檢測結果:
三、特征描述子
特征描述子 Feature Descriptor
每個特征點獨特的身份認證
同一空間點在不同視角的特征點具有高度相似的描述子
不同特征點的的描述子差異性盡量大
通常描述子是一個具有固定長度的向量
特征支持區域
主方向:進行旋轉并重新插值
特征尺度:影響支持區域的大小
1、基于直方圖的描述子
(1)用于微小運動的描述子 [4](e.g.相鄰兩幀視頻)
定義:以特征點為中心的矩形區域內所有像素的灰度值作為描述子
特性:適用于微小變化的圖像對 圖像存在明顯的旋轉、尺度、光照和透視變換時不穩定
(2)Sift描述子——旋轉主方向
定義:根據主方向對支持區域進行旋轉,并通過雙線性插值重構
特性:圖像歸一化處理,去除光照變化
統計局部梯度信息流程:
1)將區域劃分成4x4的block ;
2)每個block內統計梯度方向 的直方圖(高斯加權梯度作為系數)
(2)Sift描述子——生成描述子
(2)Sift描述子——歸一化處理
處理方式
1)門限處理-直方圖每個方向的梯度幅值不超過0.2
2)描述子長度歸一化
特性:歸一化處理提升了特征點光度變化的不變性
SIFT描述子變種:PCA-SIFT/SURF
(3)GLOH描述子[5]:Gradient Location-orientation Histogram
一共有1+2x8=17 個blocks
每個blocks計算16個方向的直方圖
描述子共16x17=272維
通過PCA可以降維到128
(4)DAISY描述子[6]:每個圓的半徑對應高斯的尺度
2、基于不變性的描述子
3、二進制描述子——BRIEF
描述子形式:描述向量由N個0或者1組成 N=128,256,512
描述子特性:生成速度快(漢明距離),匹配效率高 ,簡單有效;不具有旋轉不變性
描述子流程:
1)圖像進行如高斯濾波預處理——去除噪聲
2)在支持區域內隨機采樣N對大小5×5的patch
3)比較patch內像素和的大小,并保留結果構成特征向量 ?p(x),p(y)是簡歷在x,y處的patch
四、特征匹配
計算兩幅圖像中特征描述子的匹配關系
1、距離度量
歸一化互相關,1 ->非常匹配,0->不匹配
2、匹配策略
最近鄰:加了距離約束,防止孤立點
3、高效匹配
4、特征匹配驗證 ? ? ? ? ? ? ? ?
參考
T. Lindeberg. Detecting salient blob-like image structures and their scales with a scalespace primal sketch: A method for focus-of-attention. International Journal of Computer Vision, 11(3):283–318, Dec. 1993.
T. Lindeberg. Feature detection with automatic scale selection. International Journal of Computer Vision, 30(2):79–116, Nov. 1998.
E. Rosten and T. Drummond. Fusing points and lines for high performance tracking. In IEEE International Conference on Computer Vision (ICCV), 2005.
Scharstein, D. and Szeliski, R. (2002). A taxonomy and evaluation of dense two-framestereo correspondence algorithms. International Journal of Computer Vision, 47(1):7–42.
Mikolajczyk, K. and Schmid, C. (2005). A performance evaluation of local descriptors.IEEE Transactions on Pattern Analysis and Machine Intelligence, 27(10):1615–1630.
S. Winder and M. Brown. Learning local image descriptors. In IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR), 2007.
推薦閱讀:
吐血整理|3D視覺系統化學習路線
那些精貴的3D視覺系統學習資源總結(附書籍、網址與視頻教程)
超全的3D視覺數據集匯總
大盤點|6D姿態估計算法匯總(上)
大盤點|6D姿態估計算法匯總(下)
機器人抓取匯總|涉及目標檢測、分割、姿態識別、抓取點檢測、路徑規劃
匯總|3D點云目標檢測算法
匯總|3D人臉重建算法
那些年,我們一起刷過的計算機視覺比賽
總結|深度學習實現缺陷檢測
深度學習在3-D環境重建中的應用
匯總|醫學圖像分析領域論文
大盤點|OCR算法匯總
重磅!3DCVer-學術論文寫作投稿?交流群已成立
掃碼添加小助手微信,可申請加入3D視覺工坊-學術論文寫作與投稿?微信交流群,旨在交流頂會(ICRA/IROS/ROBIO/CVPR/ICCV/ECCV等)、頂刊(IJCV/TPAMI/TIP等)、SCI、EI等寫作與投稿事宜。
同時也可申請加入我們的細分方向交流群,目前主要有3D視覺、CV&深度學習、SLAM、三維重建、點云后處理、自動駕駛、CV入門、三維測量、VR/AR、3D人臉識別、醫療影像、缺陷檢測、行人重識別、目標跟蹤、視覺產品落地、視覺競賽、車牌識別、硬件選型、學術交流、求職交流等微信群,請掃描下面微信號加群,備注:”研究方向+學校/公司+昵稱“,例如:”3D視覺?+ 上海交大 + 靜靜“。請按照格式備注,否則不予通過。添加成功后會根據研究方向邀請進去相關微信群。原創投稿也請聯系。
▲長按加微信群或投稿
▲長按關注公眾號
3D視覺從入門到精通知識星球:針對3D視覺領域的知識點匯總、入門進階學習路線、最新paper分享、疑問解答四個方面進行深耕,更有各類大廠的算法工程人員進行技術指導。與此同時,星球將聯合知名企業發布3D視覺相關算法開發崗位以及項目對接信息,打造成集技術與就業為一體的鐵桿粉絲聚集區,近1000+星球成員為創造更好的AI世界共同進步,知識星球入口:
學習3D視覺核心技術,掃描查看介紹,3天內無條件退款
?圈里有高質量教程資料、可答疑解惑、助你高效解決問題
總結
以上是生活随笔為你收集整理的基于图像的三维建模——特征点检测与匹配的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 无糖饮料难破“高端局”
- 下一篇: 线性代数:03 向量空间 -- 向量的内