3D特徵描述子SHOT詳解
在3D點雲目標識別中,除了傳統的利用二維影象來輔助識別,然後對映到3D的方式;學術界在十幾年前就開始研究3D點雲的特徵描述子。
本文主要詳解義大利博洛尼亞大學教授提出的SHOT(Signature of Histogram of Orientation) ofollow,noindex">http://www.vision.deis.unibo.it/SHOT 。
1、3D特徵描述子
圖1.1 3D描述子編碼通用規則
描述子的構建一般分為兩個過程特徵編碼(Signature)和直方圖統計(Histogram),特徵編碼是關鍵,直方圖是表述特徵的分佈情況,增強特徵的魯棒性(概率的角度)。
Signature:類似於2D影象的特徵描述子,對特徵點附近的資訊進行編碼,影象是圓形或矩形Patch中的灰度、梯度變化資訊。相似的,點雲特徵描述子就是對點領域附近的幾何資訊和顏色、紋理資訊進行編碼;幾何資訊主要有K-近鄰點(或者support)的法線方向、夾角、曲率等;
Histogram:有了K-鄰域內(支撐區域)點的一系列特徵描述子,採用對每個子區域進行特徵統計的思路,可以構建出整個支撐區域的直方圖特徵。
2、區域性座標系(Local Reference Frame)
有了K-近鄰點後,怎麼去提取特徵點的幾何資訊呢??文獻中一般是採用區域性座標系(Local Reference Frame)來作為幾何資訊的參考原點。
圖1.2 Local Reference Frame
區域性座標系的Z軸確定方式:對K-近鄰點擬合平面,平面法向量作為區域性座標系的Z軸,Z軸的方向由法向量n和K-近鄰法向量均值的方向相同。法向量計算理論參考
SHOT在計算Z軸的時候,加了距離權重,
區域性座標系的X軸確定方式:計算法向量n與每個近鄰的點乘,找夾角最大的的P(即cos最小),然後計算P到過特徵點F點平面的投影P′。特徵點F與投影P′組成的方向為X軸方向。
區域性座標系的Y軸確定方式:x軸和Z軸叉乘得到。
需要注意,區域性座標系中的重心一般和特徵點不是同一個點。
3、SHOT直方圖編碼
圖1.3 SHOT特徵
借鑑2D影象的SIFT特徵,鄰域內法向量整體的直方圖特徵魯棒性較低,採用區域性直方圖形式進行編碼。SHOT將整個鄰域劃分為32小塊,緯度2分,半徑2分,經度8分。
計算每個近鄰點相對於法向量的夾角(特徵值),對每個小塊內的特徵值構建直方圖(11級),累積直方圖採用插值的形式(這裡理解起來相對困難,編碼也很複雜,看了PCL的原始碼,費心),角度差值,緯度方向插值、經度方向插值和半徑方向插值。
起始就是定義一個規則,判斷當前特徵值落在哪個區間裡面,每個曲面的特徵值按照下圖方式計算。最後得到的特徵向量為32x11 = 352維。
圖1.4 插值方式
4、SHOT描述在紋理上的擴充套件
由於最初提出的SHOT描述子是不針對紋理和顏色資訊的,單純的幾何資訊編碼影響識別的準確率,因此後來SHOT加入了顏色資訊。SHOT中的顏色編碼主要是LAB空間(CIELAB計算)中的顏色;直方圖31級,因此顏色描述子長度32x31 = 992;新增顏色資訊的SHOT描述子共1344維。
一般顏色域都是RGB或者HSV(色度、飽和度、亮度),lab空間是開發出來近似人眼視覺系統的,色域比RGB大得多。感覺Lab只有在做為顏色標定或者參考時才用的上,沒想到這裡用了,應該是為表達顏色更準確。
RGB需要先轉換到XYZ,然後XYZ轉LAB。 顏色空間轉換程式碼
圖1.5 LAB轉XYZ( 逆變換見這裡 )