(華北電力大學 北京 102206)
機器人具有識別預先訪問的位置或位置識別的能力在視覺SLAM中至關重要,基于視覺的場景識別通?;谠~袋模型,詞袋模型最初被用在文本處理領域,計算機視覺領域中基于詞袋模型的場景識別方法主要是通過提取圖像局部特征將它們聚類成詞匯表,創建視覺單詞,將每個圖像用單詞向量表示進行場景外觀建模。之后用單詞向量表征圖像,并根據視覺詞的相似性返回匹配圖像。本文通過采集和下載一定的數據集圖像,提取圖像的局部特征,然后利用k-means ++分層聚類的方法構建詞典樹,引入TF-IDF計算圖像單詞權重。最后利用L1范式計算兩幅圖像的BoW向量的距離,判斷兩幅圖像間的相似性。
本文采用ORB點特征和LBD線特征描述符構建視覺詞典。ORB算法首先計算圖像FAST角點,然后使用矩計算質心C確定特征點的主方向θ。在對應的尺度圖像上的特征點處取大小為的Sb的鄰域(patch),并通過旋轉角度θ得到特征點鄰域內新的點對進而求得二進制描述符(BRIEF描述符)。對于一幅圖像的關鍵點p,它對應的長度為Lb的BRIEF描述子向量B(p)為:
(1)
?i∈[1,Lb]

線特征采用LSD線段檢測算法提取,將圖像縮放到原來的80%,計算每個像素梯度并創建線段支持域(LSR)。通過計算LSR的最小外接矩形內支持點的比例判斷其是否為一條線段。之后將線段支持域劃分為多個條帶,利用全局和局部高斯函數作用于線段支持域的每一行及相鄰條帶,降低遠離線段的像素梯度對描述子的影響以及條帶之間的邊界效應。基于相鄰條帶的梯度計算每個條帶對應的特征向量BDT,將所有特征向量連接起來得到LBD描述子:
(2)
(一)k-means ++聚類。本文采用k-means ++算法對提取的圖像特征進行分層聚類,構建單詞樹。k-means ++算法的主要步驟為:
第一步:從收集的訓練樣本中隨機選取一個樣本作為初始聚類中心C1;

第三步:重復第二步直到選出K個聚類中心。
以上步驟可以得到單詞樹的第一層,之后從選出的K個簇再進行聚類,直到滿足L層。對于分層聚類的方法需要預先設定聚類的分支數K和深度L,K和L的大小決定了視覺詞典的規模。


訓練數據集包括兩個公開數據集New College、Bovisa_2008-09-01。對兩個數據集進行不同特征的提取和詞典訓練,之后利用雙目相機采集某建筑物室內走廊的圖像序列進行不同類型詞典性能實驗,如圖1所示,為左側相機拍攝結果。

圖1 實驗場景
實驗以左側相機采集圖像建立數據庫,右側作為查詢圖像,利用查詢結果繪制出圖2。從圖中可以看出通過在室內結構化場景中線特征查詢成功率要高于點特征,錯誤查詢的離散點也更少。這是因為實驗用到的環境中含有豐富的線特征,點特征較線特征來說較少。

(a)點特征查詢成功率87.5%

(b)線特征查詢成功率93%
目前有許多類型的特征可以用于場景識別。但是還沒有一種特征是可以在所有環境中都有很好的效果,因此在進行實際應用時需要根據環境的特點選擇合適的特征。本文實驗中可以看出,在結構化線特征豐富的場景中線特征比點特征更為合適。