1.特征點檢測與匹配

三維模型重建的流程:
三維點云獲取——幾何結構恢復——場景繪制
三維點云獲取:
1.激光雷達
2.微軟Kinect
有效距離比較短
3.單目多視角 :幾乎很難實時
4.雙目立體視覺

基于圖像的三維模型重建:
1.輸入圖像
2.基于圖像的點云生成
3.點云到模型的重建
4.紋理圖像的創(chuàng)建與編輯
5.紋理模型



相關商業(yè)軟件:
Acute3D,Altizure,Agisoft PhotoScan

圖像特征點應用:
1.相機標定
2.圖像拼接
3.稠密重建
4.場景理解

圖像特征點的檢測方法:

  1. 人工設計檢測算法
  2. 基于深度學習的方法
  3. 場景中的人工標記點

圖像特征點的基本要求:
1.差異性——可檢測
特征點應該呈現(xiàn)出區(qū)別于非特征點的明顯特征
2.重復性——可匹配
對應同一三維點的特征點應該在不同視角中被重復檢測到

特征檢測子(Feature Detector)

  1. Harris 角點檢測
  2. 基于LoG的多尺度特征檢測子//拉普拉斯的高斯
  3. 基于DoG的多尺度特征檢測子//高斯差分的一種方法
  4. 快速特征點檢測方法
特征點具有局部差異性

動機:特征點具有局部差異性
E(u,v) = \sum_{(x,y)}w(x,y){[I(x+u,y+v)-I(x,y)] }^2 \\ \approx \sum_{(x,y)}w(x,y){[I(x,y)+\frac{\partial{I}}{\partial{x}}(x,y)u+\frac{\partial{I}}{\partial{y}}(x,y)v-I(x,y)] }^2 \\= {\begin{bmatrix}u\\v \end{bmatrix}}^T {\begin{bmatrix}u\\v \end{bmatrix}}
圖像梯度
\Delta I(x,y)= (\frac{\partial{I}}{\partial{x}}(x,y),\frac{\partial{I}}{\partial{y}}(x,y)
Harris矩陣
H = {\begin{bmatrix}\sum_{(x,y)}W(x,y){\frac{\partial{I}}{\partial{x}}(x,y)}^2 &\sum_{(x,y)}W(x,y){\frac{\partial{I}}{\partial{x}}(x,y)}){\frac{\partial{I}}{\partial{y}}(x,y)} \\\sum_{(x,y)}W(x,y){\frac{\partial{I}}{\partial{x}}(x,y)}){\frac{\partial{I}}{\partial{y}}(x,y)} & \sum_{(x,y)}W(x,y){\frac{\partial{I}}{\partial{x}}(x,y)}^2 \end{bmatrix}}


以每個點為中心取一個窗口,窗口大小為55或者77,如果這個點具有差異性,往周圍任意方向移動,周圍的環(huán)境變化都是會比較大的,如果滿足這個特性,我們就認為這個特征點具有明顯的局部差異性。在工事中,I表示像素,如果是 彩色圖像就是RGB,灰色圖像就是灰度。(u,v)表示方向。然后對上式進行一階泰勒展開。

Harris矩陣H的特征值分析:
SVD(H)=U \sum V,( \lambda _1,? \lambda _2 ),? \lambda _1 > \lambda_2
矩陣特征值反應了兩個垂直方向的變化情況,一個事變化最快的方向,一個事變化最慢的方向


\lambda_1 \approx \lambda_2
興趣點位于光滑區(qū)域,不是特征點
\lambda_1>0, \lambda_2 \approx 0
,興趣點位于邊緣區(qū)域,
\lambda_1,\lambda_2 >0
, 興趣點位于角點區(qū)域
所以檢測特征的任務轉化為計算Harris矩陣,判斷特征值大小。
在實際操作中,很少通過計算特征值來判斷,因為計算特征值計算量比較大,取而代之的是Harris角點準則。

Harris角點準則

C = det(H)-ktrace(H)^2 = \lambda_1\lambda_2-k(\lambda_1+\lambda_2)^2,k=0.04
行列式值為特征值相乘,行列式的跡為特征值相加

  • K的值越小,檢測子越敏感
  • 只有當\lambda_1\lambda_2同時取得最大值時,C才能取得較大值
  • 避免了特征值分解,提高計策計算效率
非極大值抑制

在特征點附近,其他點的響應也比較大。
所以選取局部響應最大值,避免重復檢測

Harris 角點檢測

算法流程

  1. 計算圖像水平和垂直方向的梯度
    但是在計算梯度之前,需要對圖像進行濾波,一般進行高斯平閥,避免出現(xiàn)變化劇烈的值
  2. 計算每個像素位置的Harris矩陣
  3. 每個角點的響應值
  4. 非極大值抑制


Harris角點檢測一般用于快速檢測,比如視頻里面的跟蹤

基于LoG的特征檢測子

動機:Harris角點檢測不具有尺度不變性
LoG算子:Lindeberg(1993)提出Laplacian of Gaussian
(LoG)函數(shù)的極值點對應著特征點
Lindeberg(1993)提出Laplacian of Gaussian
(LoG)函數(shù)的極值點對應著特征點
尺度空間:
對于一幅圖像,用不同大小的濾波核進行濾波,一般用高斯濾波,得到一系列圖像,這些圖像就稱之為尺度空間。然后把這些圖像摞起來
L(x,y,\sigma_D) = I(x,y)*G(x,y,\sigma_D),\sigma_D \in\{ \sigma_0,k\sigma_0,k^2\sigma_0,...\}



尺度歸一化LoG算子:

  • 不同尺度下的LoG響應值不具有可比性
  • 構建尺度空間,同時在位置空間和尺度空間尋找歸一化LoG極值(極大值/極小值)點作為特征點

LoG特征檢測算法流程


LoG特征檢測效果好,但是計算量比較大。
工程中也很少用。為了更好地利用LoG的性質,提出了一種近似的算法:基于DoG的特征檢測子

LoG可以由DoG近似:
Lowe(2004)提出LoG近似等價于相鄰尺度的高斯差分(DoG)
高斯空間:
L(x, y, \sigma) =G(x, y,\sigma)
高斯差分(DoG)
D(x, y, \sigma) =(G(x, y,k\sigma)-G(x, y,k\sigma))*I(x,y) \\ =L(x, y, k\sigma) - L(x, y, \sigma)

尺度空間構建

上圖為3個Octive,每個octive的尺寸都會減小一半。
上圖每個Octive中,左側為高斯空間,相鄰高斯空間做差得到DoG空間
特征點檢測為在三維空間上做一個極值的比較,(三維空間為圖像的二維空間+尺度的空間),必須需要兩個方向有極值。在高斯差分,邊界上的兩層是無效的,只有中間的紅色區(qū)域是有效的。
在Octive,
if 每階有效差分數(shù) S =3,則高斯空間層數(shù)為N = S+3

特征點位置確定:
在位置和尺度空間組成的三維空間中尋找極值點



亞像素特征點位置確定:



除去邊緣點:
DoG在邊緣處值較大,需要避免檢測到邊緣點

\frac{trace(H)}{Det(H)}= \frac{\lambda_1^2+\lambda_2^2}{\lambda_1\lambda_2} =<\frac{{(r+1)}^2}{r}, r =10

計算主方向

通過統(tǒng)計梯度直方圖的方法確定主方向,使算法具有旋轉不變性




旋轉 不變性、 尺度 不變性 、亮度 變化 不變性 ,對視角變化、 仿射 變換有一定程度的穩(wěn)性
SIFT特征點非常穩(wěn)定和魯棒,但是計算量很大,對于要求穩(wěn)定的圖像建??梢圆捎?。
針對實時要求比較高的應用提出了快速特征檢測。

快速特征檢測

FAST特征點(Feature from Accelerated Segment Test)
通過檢測局部像素灰度變化來確認特征點的位置




速度快,SIFT的一百倍,不具有尺度和旋轉不變性

Oriented FAST(ORB)
  • 為了獲取尺度不變性
    構建圖像金字塔,在金字塔每一層上上檢測關鍵點。
  • 獲取旋轉不變性
    通過灰度質心法(Intensity Centroid)確定圖像主方向

特征描述子(Feature Descriptor)

基于直方圖的描述子
基于不變性的描述子
二進制描述子

  • 每個特征點獨特的身份認證
  • 同一空間點在不同視角的特征點具有高度相似的描述子
  • 不同特征點的描述子差異性盡量大
  • 通常描述子是一個具有固定長度的向量(可以理解為一個特征)
特征支持區(qū)域:

以特征點為中心取一塊區(qū)域,有圓形或者矩形,稱之為特征支持區(qū)域
主方向:進行旋轉并重新插值
特征尺度:影響支持區(qū)域的大小


基于直方圖的描述子

用于微小運動的描述子
以特征點為中心的矩形區(qū)域內所有
像素的灰度值作為描述子,拉成一個向量,計算向量間距離
E_{SSD} = \sum_{i=1}^{N}\sum_{j=1}^{N}{|| I_1(x,y)-I_2(x,y) ||}^2
適用于微小變化的圖像
對圖像存在明顯的旋轉、尺度、光照和透視變換時不穩(wěn)定

SIFT描述子--旋轉主方向

根據(jù)主方向對支持區(qū)域進行旋轉,并通過雙線性插值重構
I = \frac{I-u}{s} 減去均值再除以方差
圖像歸一化處理,去除光照變化


過程:
1.統(tǒng)計局部梯度信息
將區(qū)域劃分成44的block
每個 block 內統(tǒng)計梯度方向 的直方圖 (高斯加權梯度 作為系數(shù) )
高斯加權保證距離特征點近的像素作用更大,梯度直方圖計算8個方向

每個block,統(tǒng)計8個方向的直方圖,將16個block拉成一列,那就是16
8 = 128
SIFT描述子——生成描述子

SIFT描述子——歸一化處理

  • 門限處理—直方圖每個方向的梯度幅值不超過0.2
  • 描述子長度歸一化
    歸一化處理提升了特征點光度變化的不變性
    SIFT描述子變種:PCA-SIFT/SURF
二進制描述子

描述子形式:
描述向量由N個0或者1組成
N= 128,256,512
生成速度快,匹配效率高,不具有旋轉不變性


為了使其具有旋轉不變性
N對采樣點
S= \begin{bmatrix}x_1 &...&x_n \\y_1&...&y_n \end{bmatrix}

根據(jù)特征點的主方向計算旋轉
S_\theta = R_\theta S

在新的采樣點上進行BRIEF描述子生成

特征匹配

  • 距離度量
  • 匹配策略
  • 高效匹配
  • 特征匹配驗證
    問題描述:
    計算兩幅圖中特征描述子的匹配關系
距離度量

匹配策略

最近鄰搜索
b^*=arg\ min_{b\in B}D(a,b),D(a,b^*) < \beta
最近鄰距離比(lowe-ratio)
\frac{D(a,b^*)}{D(a,b^{**})} < \alpha
最近鄰距離和次近鄰距離比小于一定值

高效匹配

快速最近鄰搜索
哈希表
多維Kd-tree

特征匹配

BFM(Bruce Force Mather)匹配ORB的結果


選擇最好的 50 個匹配結果進行顯示

錯誤的匹配可以通過估計相機模型方式去除
估計 Homography Homography 矩陣之前最好的 50 對匹配對

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容