matlab機器視覺工具箱學習隨筆1-局部特征的檢測和提取


開篇文章,先介紹一下背景。老實說不能算完全原創,主要是參考matlab幫助系統,添上一些自己的理解。E文好的可以直接去看幫助文件,這里記錄一下一方面逼自己去好好理解一下內容,另外一方面也想提高一下英文閱讀能力。不過本人比較懶,也不知道能堅持多久,寫一篇是一篇吧。廢話不多說,直接上文。在嘮叨一句,文中用到的代碼都是matlab腳本語言,版本是2016b。

什么是局部特征?
局部特征指在圖像中發現的的模式或結構,像點,邊或小的圖像塊。他們通常與和其周圍的圖像塊有不同的紋理,顏色或亮度。特征到底代表什么不重要,只要它和周圍像素能區分開來就行。局部特征的例子是斑點、角點和邊緣像素。
比如角點檢測的例子,下圖中綠色點就是角點。

I = imread('circuit.tif');
corners = detectFASTFeatures(I,'MinContrast',0.1);
J = insertMarker(I,corners,'circle');
imshow(J);

 

局部特征的作用
局部特征可以讓你找到圖像特點,不管有沒有遮擋,不管觀察視角的變化,或者有噪音存在。比如說雖然人臉都是有5官構成,觀察的時候可能是正面也可能是側面,但是我們卻能區分出張三李四,就是因為大腦掃描對方的臉后找到了其特有的地方,所以才能識別。局部特征的特性使得他們適用於作圖像分類。

局部特征有幾個主要運用:
1.定位錨點用來拼接圖像或3維重構
2.通過壓縮圖像的內容來進行檢測和分類。

什么才是好的局部特征?
依賴於梯度變化或亮度變化方法能夠檢測出比較好的局部特征。這些特征包括邊緣、斑點和區域。好的局部特性具有以下特性:
1.可重復檢測:
給同樣場景的兩張圖像,從兩張圖像檢測出來的特征應該大部分是一致的。在不同的觀測條件和有噪音的情況下特征應該具有魯棒性。
2.可區分的:
特征中心周圍的區域變化足夠大,以便在特征之間進行可靠的比較。
3.可定位:
特性具有分配給它的唯一位置。觀察條件的變化不會影響其位置。


特征檢測和特征提取
特征檢測選擇具有唯一內容的圖像區域,例如角點或斑點。使用特征檢測查找感興趣的點,用於進一步處理。這些點並不一定對應於物理結構,例如桌子的角。特征檢測的關鍵是找到保持局部不變的特征,這樣即使在旋轉或尺度變化的情況下也能檢測到它們。
特征提取涉及到一個描述符的計算,該描述符計算通常是以檢測到的特征為中心的區域進行的。描述符依靠圖像處理將局部像素鄰域轉換成一個緊湊的向量表示。這種新的代表性允許鄰里之間的比較,而不管大小或方向的變化。描述符,比如SIFT或SURF,基於局部梯度的計算。二進制描述符,比如BRISK或FREAK,基於局部亮度差異,通過二進制向量編碼。

上面的描述可能不太好理解,總體來說特種提取是基於特征檢測的,先通過檢測算法,檢測到特征,比如角點,但是如果只是記錄角點的像素坐標的話意義不大,一只狗在兩張圖像中僅僅因為稍微移動了一下位置就識別不出來是肯定不行的,所以如何描述這些檢測出來的特征很有講究,主要是要考慮縮放,旋轉的無關性。這個就是計算描述符的意義。

選擇特征檢測方法和描述符
通過考慮應用程序的標准和數據的性質,選擇最佳的特征檢測器和描述符。第一張表描述了選擇時考慮的一些通用准則,后兩張具體描述了各檢測方法和描述符之間的差別和適用范圍。

通用准側:

檢測器區分:

描述符區分:

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM