鄧虛睿 賈蒙磊



摘要:利用搭載雙目攝像機與GPS設備,提出了一種基于深度學習與雙目立體視覺的物體管理方案。首先用智能眼睛拍攝照片,并利用GPS獲取智能眼睛所在的位置,然后利用卷積神經網絡(CNN)中的FAST-RCNN對拍攝照片進行物體識別,獲取照片中的物體,再利用雙目立體視覺技術中的SGBM算法,獲取照片中的物體相對與攝像機的坐標。利用拍攝者的GPS與物體相對拍攝者的坐標,就可以獲取物體的坐標,從而獲取物品的位置,實現管理物體的功能。
關鍵詞:深度學習 FAST-RCNN;雙目立體視覺技術;SGBM
中圖分類號:P315.69????????? 文獻標識碼:B
1 引言
在工業市場,常用RFID技術解決物體識別的難題[1]。
RFID是利用非接觸的雙向通信來達到識別效果并交換數據的通信技術[2]。RFID由標簽、讀取器、天線組成。標簽標識物體,讀取器讀取標簽信息,天線負責標簽與讀取器之間的數據轉移[3]。然而,在物體管理方面卻需要進行給物體嵌入RFID芯片,標識物體的位置信息,利用讀寫器對RFID內的信息進行查詢與修改。嵌入芯片與修改芯片內的信息是一個十分繁雜的過程[4],中間產生了大量的人力成本。
信息爆炸時代如何對信息進行處理已經成為了時代難題。數據處理的需求與計算機硬件設備的改善,促進了人工智能的發展。隨著人工智能的發展,大量的勞動力將會被人工智能取代。現在,計算機圖形學與深度學習正在快速發展,然而這些技術在現實中的應用卻十分有限,構建使用這些技術的系統能有效地解決一些難以解決的問題。基于RFID技術的物體管理系統,會產生巨大的人力開銷。利用當下流行的深度學習技術與雙目立體視覺技術能有效地模擬人類的視覺,同時結合GPS定位技術,會給物體識別帶來全新的解決方案。
深度學習是機器學習研究的新領域。它的動機是建立模擬人腦學習數據的神經網絡,比如圖像、聲音和文本[5]。本文將使用深度學習中的卷積神經網絡算法(CNN)來解決物體管理中的物體識別問題。
雙目立體視覺是計算機圖形學的一個重要分支。它使用視差的原理利用兩個相同的成像裝置在不同位置拍攝相同的畫面,并且通過計算點的位置偏差,來得到物體的三維坐標數據[6]。本文將采用雙目立體視覺技術解決物體管理中的坐標問題。
利用物體識別來獲取照片中的物體信息,再用雙目立體視覺技術獲取照片中物體相對與拍攝位置的坐標信息。根據拍攝位置的GPS信息與相對拍攝位置的坐標信息,即可獲取照片中的物體的坐標。
本文將深度學習與雙目立體視覺結合在一起,建立一個管理物品的模型,用于管理物體的坐標信息。
2 基于卷積神經網絡的物體識別
2.1 卷積神經網絡
在物體管理系統中,圖像識別是個極其重要的部分,利用圖像識別,能識別出攝像頭、拍攝的物體的種類。同時,結合尺度不變特征變換算法,可以區分出拍攝圖片中的不同的物體。利用這些技術,能實現對每個物體個體的標記。
卷積神經網絡是深度學習中一個極具代表性的網絡結構,它的應用十分廣泛,尤其是在計算機視覺領域取得了很大的成功。CNN在圖像識別中相較于其他算法的優點在于,避免了對前期圖像復雜的預處理過程,CNN可以直接利用原始像素,用很少的預處理識別出物體的特性。
Krizhevsky等人在2012年提出了經典的CNN結構—AlexNet,該網絡在圖像識別任務上有著良好的表現[7]。AlexNet取得成功后,研究人員進一步提出了其他的神經網絡結構ZFNet、VGGNet、GoogleNet和ResNet[8]。至此,卷積神經網絡能很好地處理了物體識別的問題。
由于物體管理對物體識別的精確度要求較高,本文選用了卷積神經網絡中物體識別效果較好的FAST-RCNN來進行圖像識別。
2.2 FAST-RCNN的設計與實現
(1) FAST-RCNN結構
FAST-RCNN網絡由卷積層、降采樣層、ROIPooling層、全連接層與損失層組成[9],如圖1所示。
(2) 訓練樣本
訓練過程中每個mini-batch包含2張圖和128個region proposal(即ROI),其中大約25%的ROI和ground truth的IOU大于0.5,只通過隨機水平翻轉進行數據增強。
在數據集上,選擇了圖片盡可能大的數據集,以確保物體識別的種類更廣泛,同時選擇了ImageNet作為數據集。
ImageNet是一個有超過1400萬個圖像覆蓋了超過20,000種類的數據集,被廣泛地應用于深度學習圖像領域的研究[10]。
(3) 損失函數
本文采用多融合損失(融合回歸損失和分類損失),分類的Loss采用Log Loss(即對真實分類的概率取負Log,輸出K+1維),回歸的Loss使用與RCNN一致的SmoothL1Loss。
總的損失函數如下:
分類損失函數如下:
回歸損失函數如下:
其中有:
(4) ROIPooling
由于region proposal的尺度不同,同時需要使提取出來的特征向量維度相同,于是需要一種特殊的方法來解決。ROIPooling就是用來解決這個問題的。思路如下:
將region proposal劃分為H X W大小的網絡;
對每個網絡做MAXPooling可能;
將所有的輸出結合起來形成大小為HXW的特征映射。
(5) 全連接層
卷積層計算一整張的圖片,而全連接層需要對每個region proposal作用一次,所以全連接層的計算量會非常大,使用奇異值分解(SVD)進行數據降維,來簡化全連接層計算。
3 基于雙目立體視覺的坐標定位
3.1 雙目立體視覺
雙目立體視覺是基于人眼視差原理的計算機圖形學的一個分支。它把在雙攝像頭上獲取的圖像經過各種處理,以獲得照片中的點相對于雙目攝像機的三維幾何信息[11]。
對于空間物體表面的一點,如果從雙目攝像頭同時觀察P,并能確定在左攝像頭圖像中的點pl與右攝像機圖像上的點pr是空間同一點p的圖像點,在得知左右攝像頭的三維坐標后,P的三維坐標可以被計算出來。雙目立體視覺系統包括相機標定、立體校正、立體匹配和三維重建四個過程。
相機標定利用空間中的點的三維位置和它在圖像中的對應點的相互關系,建立了相機成像的幾何模型,從而獲取該雙目攝相機的幾何模型參數。
立體矯正能將左右圖像去除畸變,將兩幅圖像極線對齊,以方便后續操作。
立體匹配可以找到在不同視點圖像中匹配到的對應點,由此獲得視差圖。
在獲取了視差圖后,就可以用三維重建技術可以確定物體在圖像中的位置信息,同時能確定物體的種類,從而得到相片中的物體相對于相機的三維坐標。
本文使用Semi-Global Block Matching算法進行立體匹配過程。
3.2 Semi-Global Block Matching 算法的實現
(1) Semi-Global Block Matching介紹
Semi-Global Block Matching是一種被廣泛應用于計算視差的算法。
SGMB通過選取每個點的視差,組成一個視差圖,同時根據視差圖,設置一個和該圖相關的能量函數,使能量函數最小化到收斂,從而求解出每個像素最優的視差[12]。
(2) 能量函數的設置
E[D]表示視差圖D的能量函數;p,q代表圖像中的像素;Nq表示q的相鄰像素。
C(p,Dp)指當p像素點視差值為Dp時,該像素點的Cost。P1、P2是懲罰系數,相差為1的像素用P1,視差值相差大于1的像素用P2。
I[.]函數中的參數,如果是真則I[.]值為1;如果為假,則I[.]值為0。
(3) 算法優化
使用上述函數來查找二維圖像的最優解是NP-hard問題時,耗時巨大,所以將問題分解成多個一維問題,以減少復雜度。與此同時,使用動態規劃來解決每個一維問題。一個像素具有8個相鄰的元件,因此它可以被分解成8個一維問題。
(4) 算法實現
每個像素p的視差只與像素p左邊的像素相關,因此得出了下面的公式:
其中,r為p左邊的相鄰像素,r的方向為p的方向;Lr(p,d)表示沿著r的方向,像素p的視差為d時,最小的Cost值。
這個Cost為下列四種Cost值中的最小值:
1) 左邊像素的視差為d時,Cost的最小值;
2) 左邊像素的視差為d-1時,Cost的最小值與懲罰系數P1之和;
3) 左邊像素的視差為d+1時,Cost的最小值與懲罰系數P1之和;
4) 左邊像素的視差為其他時,Cost的最小值與懲罰系數P2之和。
另外,由于Lr(p, d)是隨像素的右移不停地增長,故像素p的Cost值需要減去前一個像素不同視差值時最小的Cost。這能防止Lr(p, d)數值溢出,讓它維持在一個較小的數值。
C(p, d)的計算很簡單,由兩個公式計算:
定義p移動d個像素之后的像素為q。p和q之間,經過半個像素插值后,C(p, d)的值為兩個像素點灰度差值的最小值或兩個像素RGB差值的最小值。
上面的計算僅僅表示從左到右的最小Cost值,然而這樣的Cost值不夠全面。因為一個像素有8個鄰域,要從8個方向分別計算Cost值。
然后把8個方向上的Cost值累加,累加值最小的視差值則作為最終視差值。視差圖即為每個像素都進行該操作后的結果,具體公式表達如下:
4 實驗結果分析與討論
4.1 Fast-RCNN的物體識別結果和分析
(1)訓練結果
將ImageNet數據集訓練完成后,將被測樣品輸入到訓練好的FAST-RCNN神經網絡模型中,得到預測結果,具體的結果如表1所示。
由表1可知,Fast-RCNN模型在識別物體的效果上,表現得良好。在生活中常見的物品中,識別率能達到80%左右的效果。
(2)迭代次數對實驗誤差的影響
選用之前介紹的方法計算Loss,在訓練的過程中調整迭代次數,防止迭代次數過多導致過擬合與迭代次數過少而產生的欠擬合,其中的Loss變化如圖2所示。
可以看出隨著迭代次數的增加,FAST-RCNN的Loss一直在減小,直到趨于穩定。隨著Loss的減少,模型的準確度也在不斷的提高,當迭代次數到30000之后,Loss幾乎沒有明顯變化,說明此時的神經網絡權值與閾值已經穩定。接下來的實驗可以將迭代次數設置為30000次,以進行后續的實驗。
(3)mAP性能評估指標
物體識別模型要想應用在實際環境中,必須要擁有良好的性能?,F在常用均值平均精度(mAP),來衡量模型的性能,mAP值越高,模型的性能越好[13]。
Mean Average Precision,即平均AP值,是對多個驗證集個體求平均AP值。AP值為Average Precision,即對Precision取平均。
[5]?胡越,羅東陽,花奎,等.關于深度學習的綜述與討論[J].智能系統學報,2019,14(1):1-19.
[6]?黃鵬程,江劍宇,楊波.雙目立體視覺的研究現狀及進展[J].光學儀器,2018,40(4):81-86.
[7]?Gu S, Lu D, Yue Y, et al. A new deep learning method based on AlexNet model and SSD model for tennis ball recognition[C].IEEE International Workshop on Computational Intelligence & Applications. 2017.
[8]?楊真真,匡楠,范露,等.基于卷積神經網絡的圖像分類算法綜述[J].信號處理,2018,34(12):1474-1489.
[9]?Girshick R. Fast R-CNN[C].IEEE International Conference on Computer Vision. 2015.
[10]?Krizhevsky A, Sutskever I, Hinton G E. ImageNet classification with deep convolutional neural networks[C].International Conference on Neural Information Processing Systems. 2012.
[11]?陳小華,袁衛.基于雙目立體視覺的目標定位[J].自動化技術與應用,2017,36(12):102-105.
[12]?Humenberger M, Engelke T, Kubinger W. A census-based stereo vision algorithm using modified Semi-Global Matching and plane fitting to improve matching quality[C].IEEE Computer Society Conference on Computer Vision & Pattern Recognition-workshops. 2010.
[13]?Yue Y, Finley T, Radlinski F, etal. A support vector method for optimizing average precision[C].International Acm Sigir Conference on Research & Development in Information Retrieval. 2007.
[14]?朱小美,張官進,朱楠.基于MATLAB的布爾莎模型七參數解算實現[J].北京測繪,2015,(5):61-65.
[15]?Yan T W, Garcia-Molina H. SIFT: a tool for wide-area information dissemination[C].Usenix Technical Conference. 1995.