王霖郁,蔣強衛,李 爽
(1.哈爾濱工程大學 信息與通信工程學院,黑龍江 哈爾濱 150000; 2.衛星導航系統與裝備技術國家重點實驗室,河北 石家莊 050081)
工業自動化水平的提高、計算機視覺的進步[1]以及人工智能領域內雙目視覺物體識別與定位等成為近年來人們研究的熱門問題。物體識別與定位在眾多領域有著廣闊的應用前景和非常巨大的應用價值。該技術可應用在智能輔助駕駛技術、無人機、工業機器人、服務機器人、軍事偵察、仿生機器人和星球探測車等領域。在這些領域的應用中,通常需要通過雙目相機獲取場景中物體的類別和位置信息。基于此,本文設計實現了基于卷積神經網絡和雙目視覺物體識別與定位系統。對于傳統的物體識別和定位算系統,采用人工設計特征和支持向量機結合的方式實現物體識別,但存在識別物體單一和識別準確率低的問題[2-4],本文提出了YOLO卷積神經網絡和雙目視覺結合方式實現物體定位,以提高物體識別種類和識別準確率,使得系統具有擴展性,可以根據需要訓練物體。文獻[5-7]采用傳統的特征點匹配算法用于雙目圖像,針對紋理少的物體匹配特征點少、無法支撐物體定位的問題,本文提出了多特征點融合算法,通過Canny邊緣檢測算法和FAST角點檢測算法結合,使得檢測算法能夠提取邊緣信息,從而提高紋理少物體的匹配點數量。本文設計的基于卷積神經網絡和雙目視覺的物體識別與定位系統可以有效完成物體定位和識別。
物體識別,又稱目標檢測[8],它包括2個任務:① 給定測試圖片的情況下,預測其中包含的物體實例的類別;② 預測給定測試圖像中物體的位置,用矩形框畫出來[9]。YOLO卷積神經網絡模型主要由卷積層、池化層和全連接成組成。YOLO網絡模型思想是直接將圖像作為輸入,直接在輸出層回歸目標的框位置和目標框的所屬類別。YOLO卷積網絡模型結構如圖1所示。該網絡與GoogleNet相似,一共有24個卷積層和2個全連接層。首先YOLO網絡采用PASCAL VOC數據訓練卷積層,然后再利用卷積層和全連接構成RPN(Region Propasal Network)[10],實現目標的類別和物體位置的預測。

圖1 YOLO網絡結構
YOLO物體檢測算法如圖2所示。首先將圖像調整到448×448大小,將圖像特征均勻地劃分為7×7的網格,每一個網格作為錨框,每個錨框產生B個檢測框。輸入到卷積神經網絡中,得到特征圖后,采用全連接層,將每個區域的特征映射到S×S×(B×5+C)大小的特征圖,對每個檢測框的類別和檢測框進行線性回歸。YOLO直接將輸入圖像分為S×S個格子,每個網格負責檢測物體中心落入該網格的物體。即某物體的中心位置的坐標落入到某個網格,那么這個網格就負責檢測這個物體,每個網格輸出B個檢測框(bounding box)信息[11],以及C個物體屬于類別的概率信息(置信度),最后輸出特征圖大小為S×S×(B×5+C)。假設采用PASCAL VOC訓練數據,訓練20個類別,S=7,B=2,C=20,所以最終的輸出特征為7×7×30。每個檢測框有5個參數:x,y,w,h和置信度(Confidence)。(x,y)為檢測邊框的中心相對于網格的位置。(w,h)為檢測框的寬與高。由于YOLO簡單地將圖像進行網格劃分和每個網格只生成2個檢測框。

圖2 YOLO算法示意



(1)
式中,Ii為判斷是否有物體中心落入在第i個網格中,如果有,Ii=1,否則Ii=0。Iij為判斷第i個網格中是否有物體中心落入其中。如果有,Iij=1,否則Iij=0。
基于多特征點融合匹配算法是通過Canny邊緣檢測算法[12]和FAST角點檢測算法[13]相結合的一種特征點檢測算法,FAST角點檢測算法不具有尺度和旋轉不變性,因此檢測速度快。通過Canny算法獲得邊緣的特征點,保證紋理少的物體具有特征點。通過FAST算法獲得物體局部的角點特征,使得物體特征點分布更均勻。最后采用BRIEF描述算法[14]實現對特征點構建描述子。算法實現流程如圖3所示。

圖3 多特征點融合匹配算法流程
2.1.1Canny特征點檢測
Canny特征點檢測步驟如下:
① 采用3×3的高斯濾波器模板[15],模板的移動步長為4,從左到右,從上到下移動濾波模板,等效于1/4降采樣,得到濾波器圖像I(x,y)。之所以降采樣,是因為原圖檢測到的特征點過多,信息冗余,對于雙目定位系統,特征點太多,影響匹配速度。高斯濾波數學表達式為:
(2)
fs(x,y)=f(x,y)*G(x,y),
(3)
式中,f(x,y)為輸入數據;G(x,y)為二維高斯函數;fs(x,y)為經高斯濾波器處理后的數據。
② 計算圖像I(x,y)的每個像素點的梯度M和方向,圖像的梯度計算,轉化為求像素的灰度變化,分別求x方向和y方向的偏導,采用3×3的卷積模板作為對x方向和y方向的偏微分的近似值。如式(4)所示為x方向和y方向微分算子。通過3×3微分算子[16]與3×3的像素卷積運算得到x方向和y方向的偏導,即
(4)
φx(x,y)=I(x,y)*Hx(x,y),
(5)
φy(x,y)=I(x,y)*Hy(x,y)。
(6)
計算幅值:
(7)
計算方向:
(8)
③ 對圖像進行局部梯度“非極大值抑制”。首先將角度劃分4個方向范圍:(0°,-45°,90°,45°),然后對像素鄰域的4個方向進行非極大值抑制,也就是中心點與領域上4個方向比較幅值大小,如果是最大則保留,否則就直接丟棄。為了方便說明采用3×3的鄰域。
④ 對梯度圖像采用雙閾值算法檢測和邊緣連接,選取2個閾值T1和T2(T2>T1),如果像素點的梯度值J(x,y)≥T2,則把此像素點判為邊緣特征點。如果像素點的梯度值J(x,y)≤T1,該像素為非特征點;當滿足梯度值T1 2.1.2FAST特征點檢測 FAST的角點檢測采用灰度圖像,它是根據像素點與圓形鄰域的圓線上的像素點比較灰度值[17],當它們差值的絕對值有一定比例超過閾值時,則該點為FAST特征點。判別特征點p是否是一個特征點,可以通過判斷以該點為中心畫圓,該圓半徑為3個像素點,那么圓周上有16個點。當在圓線上的16個點中是否最少有n個連續的像素點滿足都比(Ip+t)大,或者都比(Ip-t)小。Ip指p點的灰度值,t是一個閾值。如果滿足這樣的要求,則判斷p是一個特征點,否則p不是。由于對每個特征點進行這樣的運算非常耗時,因此采用一種進行非特征點判別方法,如圖4所示。 圖4 FAST算法示意 從編號為1的像素點每隔4個點進行檢測(1,5,9,13),如果這4個像素點中有3個滿足,都比(Ip+t)大或都比(Ip-t)小,則繼續檢測其余圓周的上的像素點,否則判別為非特征點。算法實現過程如下: 步驟1:對需要檢測的多張圖像進行角點檢測,使用設定的n和t。將得到的特征點作為訓練樣本。對于圓周的16個像素點位置x∈{1,···,16},若選擇一個位置x對上面的特征點集合進行劃分,劃分為3個部分,規則如下: (9) 當特征點是角點時,布爾變量Kp為真,否則為假。 步驟2:對步驟1得到的特征點集合進行訓練,使用ID3算法建立決策樹,假設通過使用第x個像素點進行決策劃分,那么對集合P得到熵K為: (10) ?=H(P)-H(Pd)-H(Ps)-H(Pb)。 (11) 然后使用信息增益最大的位置進行分割,最終得到這棵決策樹,以后再有類似的場景進行特征點檢測時,則使用該決策樹進行檢測。對于特征點容易聚集在一起的問題,采用非最大值抑制的方法,給每一個已經檢測到的角點一個量化的值V,然后比較相鄰的角點的值V,刪除比較小V值角點。 (12) 式中,Sb為16領域像素點灰度值大于Ip+t的像素集合;Sd為灰度值小于Ip-t的像素集合。 2.1.3BRIEF描述子算法 BRIEF描述子是一種二進編碼的特征描述符,沒有采用SIFT和SURF在特征點鄰域統計方向直方圖和計算梯度特征作為特征點描述子方法,而是比較鄰域的灰度值產生的二進制編碼作為特征點描述子,這大大加速了描述子的建立,因為描述子是二進制編碼,相比于采用浮點數據作為特征向量計算量顯著減少,這也提高了匹配速率。 為了提高描述子的抗噪性[18],采用窗口尺寸為9×9和方差為σ=2的高斯模板對圖像濾波, (13) 然后在特征點p周圍S×S的像素塊中選取n個對比點,通過τ方法比較2個像素點的強度值,對比規則為: (14) 式中,p(u)和p(v)分別為u和v處的灰度值。通過邏輯運算得到n維的BRIEF描述子,通常n=128,256,512,則 (15) 構成一個n比特的二進制描述子,需要選取n對像素點,它們的采樣是有序的,如果存在多組相同的位置,最終會影響匹配的效果。所以給出了5種采樣方式:① 平均采樣;②p和q都符合(0,S2/25)的高斯分布;③p符合(0,S2/25)的高斯分布,而q符合(0,S2/100)的高斯分布;④ 在空間量化極坐標下的離散位置隨機采樣;⑤ 把p固定為(0,0),q在周圍平均采樣。 實驗環境為Ubuntu16.04系統,處理器型號Inter i7,顯卡型號GeForce GTX960,顯存4 GB,內存8 GB,STERROLABS ZED雙目攝像頭。基于卷積神經網絡與雙目視覺物體識別與定位研究通過雙目攝像頭采集雙目圖像,預先通過張正友棋盤標定方法實現對雙目攝像頭標定,獲得雙目相機的內外參數,然后通過標定的參數實現對雙目圖像進行校正。以左相機圖像為參考,輸入到卷積神經網絡實現對訓練物體識別和獲得物體所在圖像的區域;再利用雙目圖像特征點匹配算法,計算特征點視差;最后利用雙目測距原理[19],通過卷積神經網絡獲得物體類別和物體在圖像的區域,計算該區域的視差,實現物體識別與定位。整體系統實現過程如圖5所示。 圖5 本文提出的物體識別和定位系統原理 本文雙目特征點匹配算法采用ZED雙目相機拍攝圖像,先通過張正友雙目標定,獲得雙目相機參數,然后對雙目圖像進行矯正。本文采用傳統的SIFT、SURF、FAST、ORB算法和基于多特征點融合匹配算法在目標紋理少的圖像上進行實驗,以電腦顯示器上顯示的具有紋理少的特性為檢測目標,驗證本文算法的可行性,實驗結果如圖6和表1所示。 圖6 雙目特征點匹配算法 表1雙目圖像特征點匹配算法性能 算法檢測點(左/右)匹配點耗時/sSIFT957/873 920.863 6SUFT576/624 880.413 7FAST1 942/1 789 360.148 6ORB600/600 260.082 4本文算法1 789/2 0092350.125 7 圖6(a)為SIFT算法,因為雙目圖像不存在旋轉和尺度變換,因此在匹配算法添加極線約束,在匹配過程中,極線上下3個像素空間搜索,這不僅提高匹配精度,而且縮短匹配時間,效果如圖(b)所示。傳統算法在電腦顯示器上匹配的特征點很少,而基于多特征點融合匹配算法匹配[20]的特征點顯著增加,從而保障后續的目標定位。特征點匹配算法的匹配點對和算法耗時對比如表1所示,本文算法在算法耗時和匹配點數目上都優于SIFT和SURF算法,相比ORB和FAST,在匹配特征點數目上占優。 實驗結果證明,基于多特征點融合匹配算法比傳統特征點匹配算法更好地解決了紋理少的目標匹配點少的問題,減少了算法的耗時,這為后續的目標定位提供穩定的視差,從而提高物體定位的精度。 采用PASCAL VOC2007和VOC2012數據集選取了生活中常見14類物體(包括自行車、瓶子、巴士、車、貓、椅子、桌子、狗、山地車、人、植物、沙發、火車和顯示器)作為訓練集。為了驗證算法的定位精度,以目標人在同一場景的不同距離情況下為測試場景進行識別,如圖7所示。首先采集目標區域內的匹配特征點,計算出視差,然后進行中值濾波,最后利用雙目標定出的參數,計算出目標區域中心點的位置信息,分析測量與實際位置的誤差。 系統輸出檢測物體類別及其三維坐標如圖7所示。 圖7 整體系統的輸出效果 在不同的距離下采集100組數據,測得距離的平均值,如表2所示。數據表示,在雙目標定準確的情況下,物體識別與定位系統在12 m范圍內物體定位精度為cm級。物體識別與定位系統的性能分析,如表3所示。 表2測距結果 實際距離/cm實測距離/cm 10098.3 300295.6 500507.5 700709.3 900910.71 1001 113.51 2001 218.6 表3物體識別與定位系統性能 系統模塊耗時/s整體系統 0.212 0特征點匹配模塊0.125 7物體識別模塊0.086 3 本文設計實現了一套完整的基于卷積神經網絡和雙目視覺物體識別與定位系統,提出基于多特征點融合匹配算法。系統整體實驗結果表明,該算法既解決了紋理少物體特征點少的問題,也提高了物體匹配速度和匹配特征點數目。提出的基于卷積神經網絡和雙目視覺物體識別與定位系統有效地完成了物體識別與定位,在雙目基線為10 cm的時候,雙目定位范圍12 m左右,物體定位精度cm級,具有較好的魯棒性。匹配算法可以通過GPU加速,實現實時處理,從而使整個系統達到實時的計算效率。



3 實驗結果和分析

3.1 雙目特征點匹配算法結果與分析






3.2 整體系統實驗與結果分析



4 結束語