李石朋,方 赟
(1.中國國際海運(yùn)集裝箱(集團(tuán))股份有限公司,廣東深圳 518067;2.浙江大學(xué)機(jī)械工程學(xué)院,杭州 310058)
近年來,在機(jī)器人視覺控制領(lǐng)域中被研究最多的是視覺伺服技術(shù)。視覺伺服技術(shù)是一種利用圖像信息的實(shí)時閉環(huán)反饋完成機(jī)器人姿態(tài)動態(tài)調(diào)整的技術(shù)。該技術(shù)在完成系統(tǒng)的硬件部署后,首要任務(wù)就是獲取機(jī)器人視覺系統(tǒng)的操作對象,因此對具有目標(biāo)特征的圖像有效識別是視覺伺服系統(tǒng)面臨的第一個關(guān)鍵問題。對視覺伺服的理解,可以形象地比喻為人類基于眼睛視野信息進(jìn)行電腦鼠標(biāo)尋找的過程,當(dāng)視野中出現(xiàn)具有類似鼠標(biāo)外在基本特征的物體時,即使目標(biāo)被部分遮擋,大腦也可以根據(jù)經(jīng)驗(yàn)判斷出此物體是否為所要搜尋的目標(biāo),并完成對該目標(biāo)的定位。在此過程中即使面對光照、遮擋等因素,人腦也能夠克服約束影響,所依賴的正是目標(biāo)在大腦計(jì)算單元中所形成的印象深刻的特征形象。
與人類大腦的搜索和計(jì)算相比,機(jī)器人視覺處理系統(tǒng)并沒有此能力,但過程類似:首先,對目標(biāo)的搜尋主要是匹配處理系統(tǒng)已有的有限目標(biāo)模型,較大姿態(tài)的改變會導(dǎo)致匹配失敗,對于發(fā)生嚴(yán)重遮擋或非剛體目標(biāo)形狀變化造成的目標(biāo)信息約束無能為力,這也是機(jī)器人視覺控制系統(tǒng)嚴(yán)重依賴標(biāo)準(zhǔn)工作環(huán)境,系統(tǒng)魯棒性差的原因。在本文所關(guān)注的復(fù)雜工業(yè)生產(chǎn)環(huán)境中存在大量的非結(jié)構(gòu)性因素,如目標(biāo)特征的非標(biāo)準(zhǔn)化,其他機(jī)械設(shè)備運(yùn)行產(chǎn)生的各種噪聲,相機(jī)視野范圍出現(xiàn)的遮擋,環(huán)境光線強(qiáng)度的變化等因素均會造成視覺目標(biāo)識別失敗。因此,需要研究一種能夠適應(yīng)各種非結(jié)構(gòu)化環(huán)境信息影響的圖像識別和目標(biāo)匹配算法,以完成系統(tǒng)任務(wù)的關(guān)鍵一步。
基于YOLO 的深度學(xué)習(xí)算法的主要目的在于提高目標(biāo)圖像檢測速度,在個別的工作中已實(shí)現(xiàn)了對整幅圖像和視頻的實(shí)時檢測[1]。在檢測算法實(shí)施的過程中,最關(guān)鍵的是如何提高網(wǎng)絡(luò)的運(yùn)行效率,使得模型在計(jì)算能力較低的嵌入式設(shè)備上也能夠高效運(yùn)行。從已有的研究成果來看[2],考慮到通過提升現(xiàn)有上位機(jī)計(jì)算能力的方法提升網(wǎng)絡(luò)運(yùn)行效率的效果有限,一般通過采用降低模型復(fù)雜度的手段,以犧牲目標(biāo)模型完整度和精度的代價換取計(jì)算速度的提升,這種以刪減網(wǎng)絡(luò)結(jié)構(gòu),調(diào)整分辨率為主要手段的方法顯然不能從根本上解決問題。
ROI-Pooling是Pooling算法的一種,在傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)中主要有以下作用[3]:首先是特征不變性,該算法更關(guān)注模型是否存在某種特征而非特征的具體位置,同時對目標(biāo)圖像位置具有較強(qiáng)的旋轉(zhuǎn)和平移不變性,這是對機(jī)器人視覺伺服任務(wù)非常重要的一個性質(zhì);其次該算法還可以通過特征降維的方式使模型抽取更廣范圍的特征,減少各層輸入大小,減少特征計(jì)算量和計(jì)算個數(shù),這也完美符合視覺伺服研究以簡單特征為目標(biāo)降低系統(tǒng)計(jì)算負(fù)載而提高實(shí)時性的任務(wù)訴求;另外還可以在一定程度上防止過擬合,更方便優(yōu)化。
基于上述ROI-Pooling 的特點(diǎn),本文著重研究在目標(biāo)圖像完全信息受到干擾或缺失的情況下,提高圖像檢測成功率以及對目標(biāo)缺失信息進(jìn)行預(yù)測的目標(biāo)檢測算法。
YOLO 算法將目標(biāo)物體的檢測轉(zhuǎn)換為一種回歸問題[4],通過對邊界框和對應(yīng)類的概率進(jìn)行空間分離,其邊框和對應(yīng)類的檢測只需在單一的神經(jīng)網(wǎng)絡(luò)評估中就可以完成,該網(wǎng)絡(luò)通過將圖像分割成更細(xì)粒度的區(qū)域網(wǎng)格,實(shí)現(xiàn)任意區(qū)域邊框的檢測并計(jì)算出檢測概率,最后通過檢測概率來確定這些檢測邊框的權(quán)重。這種檢測通道為單一卷積神經(jīng)網(wǎng)絡(luò)的方式,也為其檢測性能上完成端到端的優(yōu)化提供了可能,這個特點(diǎn)也是其優(yōu)于基于區(qū)域生成方法的地方,大量研究結(jié)果證實(shí)了其具有快速且精確的檢測效果(如實(shí)時圖像檢測傳輸幀率最高可達(dá)50幀),但該檢測方法也存在定位錯誤的缺點(diǎn)[5]。
YOLO 目前已經(jīng)發(fā)展出了多個版本,相對于初代版本,最新的版本主要是針對以下幾個方面的改進(jìn)[6]:首先是不同尺度的目標(biāo)檢測,以13× 13、26 × 26 和52 ×52 作為3 個尺度預(yù)測選取值;其次是對網(wǎng)絡(luò)結(jié)構(gòu)方面的優(yōu)化,使用了Res-Net 的設(shè)計(jì)方法,通過加入殘差塊的方法來降低梯度消失的概率,不同的特征圖尺度負(fù)責(zé)檢測不同尺寸的物體,如大尺度特征圖來完成最小目標(biāo)的檢出[7-8]。這種引入殘差塊的方法一方面降低了卷積的參數(shù)冗余,另一方面使梯度爆炸和梯度消失的情況也有所減少,從結(jié)構(gòu)上優(yōu)化了該網(wǎng)絡(luò)主體。
YOLO-V3網(wǎng)絡(luò)總體架構(gòu)以Darknet-53為主干進(jìn)行設(shè)計(jì),具有置信度高、定位準(zhǔn)確的特點(diǎn),圖1 所示為其典型的網(wǎng)絡(luò)結(jié)構(gòu)。基于以上YOLO 網(wǎng)絡(luò)結(jié)構(gòu)的研究基礎(chǔ),結(jié)合本文研究目標(biāo),對本文采用的復(fù)雜環(huán)境檢測算法進(jìn)行介紹。
圖1 YOLOv3總體采樣網(wǎng)絡(luò)結(jié)構(gòu)示意
本文主要結(jié)合視覺伺服系統(tǒng)在復(fù)雜環(huán)境中目標(biāo)檢測的特點(diǎn),利用基于YOLO 的目標(biāo)檢測和特征提取一體化網(wǎng)絡(luò)結(jié)構(gòu),提出一種將上一幀目標(biāo)位置與卡爾曼濾波得到的目標(biāo)在當(dāng)前幀的預(yù)測位置做關(guān)鍵點(diǎn)匹配,從而判斷預(yù)測位置是否存在目標(biāo)的方法。該方法能夠有效提高圖像目標(biāo)特征的檢測效率,目的在于克服現(xiàn)有技術(shù)在檢測速度和成功率上的不足,設(shè)計(jì)適合本文總體目標(biāo)的檢測框架,其主要步驟可描述如下。
步驟1:通過圖像傳感器獲取視頻流;
步驟2:使用目標(biāo)檢測網(wǎng)絡(luò)檢測輸入視頻,在這一步驟中如果檢測到目標(biāo)則使用目標(biāo)的檢測位置信息初始化卡爾曼濾波器,用目標(biāo)在圖像中的外接矩形框表示目標(biāo)的位置信息;如果未能檢測到目標(biāo),則持續(xù)使用YOLO網(wǎng)絡(luò)檢測輸入視頻;
步驟3:通過本文YOLO 檢測網(wǎng)絡(luò)獲取當(dāng)前圖像幀,如果檢測到目標(biāo)則計(jì)算當(dāng)前幀圖像目標(biāo)的檢測位置與預(yù)測位置的交并比,如果交并比大于預(yù)設(shè)閾值,則用目標(biāo)的檢測位置作為目標(biāo)在當(dāng)前幀的位置,否則將目標(biāo)在上一幀的位置與目標(biāo)在當(dāng)前幀的預(yù)測位置做關(guān)鍵點(diǎn)匹配,如果匹配對大于預(yù)設(shè)閾值,得到目標(biāo)在當(dāng)前幀的位置,否則重復(fù)執(zhí)行步驟2;
步驟4:檢查視頻是否檢測結(jié)束,若是則結(jié)束跟蹤,否則執(zhí)行步驟3。在這一步的執(zhí)行過程中需要首先設(shè)置交并比閾值,計(jì)算當(dāng)前圖像目標(biāo)的檢測位置與預(yù)測位置的交并比,該比值的計(jì)算方法如下:
式中:IIoU為檢測位置與預(yù)測位置的交并比;Sdetection為目標(biāo)檢測位置的外接矩形框的面積;Sprediction為目標(biāo)預(yù)測位置的外接矩形框的面積。
當(dāng)IIoU小于檢測算法中的預(yù)設(shè)閾值時,系統(tǒng)選擇目標(biāo)檢測位置的值[9],否則需要重新檢測輸入圖像流,即執(zhí)行步驟2相關(guān)流程。更直觀的流程可見圖2。
圖2 目標(biāo)圖像特征位置預(yù)測流程
需要指出的是,在實(shí)現(xiàn)進(jìn)行上述圖像預(yù)測關(guān)鍵點(diǎn)匹配過程中,如SHIF 關(guān)鍵點(diǎn)檢測、RANSAC 的計(jì)算、放射矩陣的變換、卡爾曼濾波器的更新等步驟較為復(fù)雜,本文通過以下偽代碼進(jìn)行主要算法實(shí)現(xiàn)流程的說明,作為上文如步驟3的補(bǔ)充。
其主要算法實(shí)現(xiàn)如下:
Input:image setI={I1,I2,…,Im,…,IM} ,image attributeIm=(Cm,Tm,max).
Threshold detection setT={T1,T2,…Tn,…TN,}
YOLO target detection network intercepts the current frame imageI1
Obtain intersection ratio of detection position and the predicted position of the target in the current frame.
Match key points according to the thresholdTn.Output:Φ
Begin
Computing SIFT Key Points of Prediction Position
P={P1,P2,…Pn} ;
Extract feature vectorsVpcorresponding to each key point Calculated euclidean distancedeof feature vector;Get thedminanddsecmindistance;
for
judge whetherdmin <0.6·dsec min;If true,consider the SIFT point matching,Complete the matching task of all key points;
Determine whether the key point matching pairs are greater than 10;
Calculation of affine transformation matrix
by RANSAC algorithm;
for
Randomly selecting 4 pairs of key matching points;Gets four verticesV1,V2,V3,V4of the target bounding rectangle and calculates the widthwand height ? of the rectangleR;
Prediction of rectangular center coordinatesCo;
end for
Update Kalman Filter through Current Position;
end for
Get the final matching result Φ;
Return Φ;
End Begin
在上述算法中,涉及仿射矩陣的參數(shù)表示意義如下:?′0、?′、1?′0和?′0為縮放旋轉(zhuǎn)因子,Δx和Δy分別為目標(biāo)在上一幀的檢測位置相對目標(biāo)在當(dāng)前幀的預(yù)測位置在X方向和Y方向上的偏移量,[x′,y′,1]T和[x,y,1]T分別為任一對SIFT 關(guān)鍵點(diǎn)在目標(biāo)在上一幀的檢測位置與目標(biāo)在當(dāng)前幀的預(yù)測位置的齊次坐標(biāo)。
根據(jù)上一節(jié)和緒論中的研究可知,無論從推斷過程或是訓(xùn)練的角度考慮,回歸的方法都要優(yōu)于候選框的方法?;诨貧w的檢測方法雖能夠滿足視覺伺服對系統(tǒng)實(shí)時性的要求,但在視覺伺服研究中精度方面的檢出效果卻無法與基于候選框的方法相比,研究認(rèn)為這種差距的存在歸結(jié)于卷積層在完成位置回歸和類別預(yù)測時造成的高分辨率丟失[10]。鑒于此,本文在YOLO 回歸概念的基礎(chǔ)上結(jié)合ROI目標(biāo)檢測算法,通過將跨層的ROI結(jié)構(gòu)池在回歸的過程中實(shí)現(xiàn),利用高分辨率的方法對系統(tǒng)的檢測效果進(jìn)行優(yōu)化,這也有助于視覺伺服魯棒動態(tài)特性的提升。
圖3 所示為以木塊的特征檢測為例的YOLO 模型網(wǎng)絡(luò)結(jié)構(gòu)。圖3(a)表示通過YOLO 框架完成目標(biāo)圖像在C×C個網(wǎng)格中的輸入,若目標(biāo)物體或其他物體的中心位置出現(xiàn)在某個網(wǎng)格(圖3(b)),那么就由該網(wǎng)格完成該目標(biāo)的檢出工作(圖3(c)),最終檢測結(jié)果如圖3(d)。滑動窗口由T(x,y,w,?,Cconfidence)等信息組表示,其中,預(yù)測目標(biāo)的置信度中心坐標(biāo)為(x,y),此外寬度、高度、置信度依次由w、?、Cconfidence表示,這些數(shù)值可以客觀地說明檢測對象與滑動窗口的相對位置,同時做出準(zhǔn)確性預(yù)測,計(jì)算方法為:
式中:P( object )為檢測對象出現(xiàn)在T(x,y,w,?,Cconfidence)中的概率,圖3 中表示的真實(shí)目標(biāo)檢測區(qū)域與滑動窗口的重疊面積通過表示。若檢測目標(biāo)存在于單元格中,則P( object )為1,此時置信度Cconfidence為,否則P( object )為0,置信度為0。這里候選框中某一類別的置信度可以通過下式計(jì)算。
式中:P(classi)為某目標(biāo)圖像在候選框中的概率,通過與的乘積來計(jì)算目標(biāo)物體匹配度。在YOLO 中引入錨機(jī)制、歸一化處理、維度聚類、高分辨率分類器、直接位置預(yù)測等技巧措施來提高檢測精度[11],也可結(jié)合詞向量樹法擴(kuò)大YOLO檢測目標(biāo)的種類[12]。
圖3 本文優(yōu)化算法檢測模型
為改善YOLO 的目標(biāo)檢測精度,本文在圖像檢測過程中采取融合ROI的處理技術(shù)。
如圖4所示,經(jīng)過卷積運(yùn)算,特征圖像1中的ROI大于輸入圖像中的ROI,這是因?yàn)榫矸e操作會導(dǎo)致輸入圖像中的單個像素影響輸出圖像中的9 個像素(3像素× 3像素)的值。在圖4中,特征圖像2的ROI大于前一層的ROI。隨著卷積操作持續(xù)到網(wǎng)絡(luò)末端,ROI會變得越來越大,最終會和輸入圖像一樣。這意味著輸入圖像中的所有數(shù)據(jù)都將被視為感興趣的區(qū)域,將導(dǎo)致減少了最終ROI 的計(jì)算。因此,在進(jìn)行卷積運(yùn)算后,有必要推導(dǎo)出合適的ROI選擇方法。
圖4 未抽樣ROI變化情況示意
圖5 所示為在卷積層中確定的ROI 示例。每個方框?qū)?yīng)一個像素N、I 代表RONI(Region of Non Interest)數(shù)據(jù)和ROI 數(shù)據(jù),內(nèi)核大小為3× 3。當(dāng)內(nèi)核窗口中的ROI 數(shù)據(jù)數(shù)為大于預(yù)定閾值,則輸出是ROI。在圖5(a)中,輸入圖像右下角的粗方塊指示當(dāng)前卷積的滑動窗口操作,該卷積運(yùn)算的輸出被視為ROI 數(shù)據(jù),卷積后的輸出取決于輸入窗口中的ROI數(shù)據(jù)量,圖中3個數(shù)據(jù)在ROI中,其余6 個在RONI 中的預(yù)定義的閾值用于確定輸出層。當(dāng)數(shù)據(jù)值為0、1 或2 時,將其輸出為ROI 區(qū)域,超過2的區(qū)域作為RONI區(qū)域輸出;在圖5(b)中,當(dāng)閾值為0 時,表示當(dāng)內(nèi)核窗口至少包含一個ROI 數(shù)據(jù),輸出為投資回報率。圖5(b)顯示了該條件何時為TH0,與ROI 邊界相鄰的數(shù)據(jù)變?yōu)镽OI 數(shù)據(jù),因此卷積層輸出的ROI 大小為大于輸入的ROI;圖5(c)顯示了條件是TH3時,閾值為3,則ROI不會增加。一旦輸出了ROI區(qū)域,避免了在RONI 區(qū)域生成數(shù)據(jù)的操作,在成功檢出目標(biāo)的同時可以減少計(jì)算量,不會對系統(tǒng)計(jì)算負(fù)載造成影響。每一層只處理ROI 數(shù)據(jù)生成的操作,并將結(jié)果傳遞給下一層。
圖5 ROI的示意
一些說明:根據(jù)視覺伺服系統(tǒng)的特點(diǎn),在比較了常用的卷積模型后可以發(fā)現(xiàn),VGG 網(wǎng)絡(luò)在眾多的研究中都有出色的ROI 提取效果,在Image-Net 圖像分類工作的Top-5 的錯誤率穩(wěn)定在7.1%,比Google-Net、Res-Net 等形式的卷積模型在特征提取中的精度雖無明顯優(yōu)勢[13-14],但在多個網(wǎng)絡(luò)中表現(xiàn)卻更穩(wěn)定[15],這對視覺伺服系統(tǒng)的魯棒性優(yōu)化很重要,也是本文選取VGG-16 模型作為編碼器進(jìn)行輸入圖像提取的原因。
有關(guān)本文檢測模型的效果將在實(shí)驗(yàn)部分,視覺伺服系統(tǒng)在不同約束條件下目標(biāo)圖像識別情況的對比中給出。
本文主要結(jié)合優(yōu)化YOLO 圖像快速檢測與ROI Pooling候選框算法高檢測精度的特點(diǎn),針對在工業(yè)環(huán)境下常見的約束條件下,研究目標(biāo)特征圖像高效的檢測識別算法,并對部分信息缺失情況下目標(biāo)的識別問題進(jìn)行測試。
如圖6 所示,實(shí)驗(yàn)平臺包括一個七軸協(xié)作機(jī)器人Franka Panda、相機(jī)Realsense SR300 和Basler acA720-520uc(能夠自由設(shè)置相機(jī)頻率);上位機(jī)操作系統(tǒng)Ubantu 16.04 LTS,配備英特爾I350-T2 V2網(wǎng)卡(需有較高配置,保證數(shù)據(jù)處理的實(shí)時性),開源圖像處理庫OpenCV 4.1,TensorFlow 2.0,LabelImg,Caffe,標(biāo)注工具Labelme等。
圖6 視覺伺服算法測試實(shí)驗(yàn)平臺
針對工業(yè)環(huán)境常見的約束條件,本文設(shè)計(jì)了復(fù)雜背景、強(qiáng)光照、陰暗空間、遮擋、形變等約束項(xiàng),并在不同的姿態(tài)下對目標(biāo)圖像進(jìn)行10 000次左右的訓(xùn)練,圖7所示為部分位置訓(xùn)練結(jié)果。由圖可知,在不同條件下,本文基于YOLO-ROI 的圖像優(yōu)化識別算法均能有效從非結(jié)構(gòu)化環(huán)境中檢測出目標(biāo)圖像,各約束條件下檢測效率較高,尤其在視覺伺服系統(tǒng)中影響大的遮擋和反光情況下也有理想的識別效果。在識別目標(biāo)后進(jìn)行系列增強(qiáng)、銳化等步驟。
圖7 不同條件下圖像訓(xùn)練后識別情況
在實(shí)際工業(yè)環(huán)境中,目標(biāo)圖像的位置和姿態(tài)不可能完全匹配ROI 池的目標(biāo)特征,對于非訓(xùn)練樣本空間的目標(biāo)圖像的有效識別更有實(shí)際意義。如表1 所示,分別改變上述5 種約束條件,并在每種條件下進(jìn)行10 000 次左右不同姿態(tài)的目標(biāo)識別,并對非訓(xùn)練樣本空間目標(biāo)圖像進(jìn)行識別率測試,其識別效率如表1所示。
在表1 中,反光和陰影條件的不同可以分別通過改變相機(jī)幀率進(jìn)行數(shù)據(jù)設(shè)置,背景改變通過增加和減少干擾項(xiàng)數(shù)量實(shí)現(xiàn)(不對目標(biāo)進(jìn)行遮擋),遮擋情況中ROI訓(xùn)練數(shù)據(jù)最大遮擋面積占總面積為50%,目標(biāo)形變項(xiàng)以未發(fā)生形變目標(biāo)圖像為基準(zhǔn)進(jìn)行改變,在不易量化的情況下以實(shí)驗(yàn)人員經(jīng)驗(yàn)為參考。由表可知,除復(fù)雜背景一項(xiàng)外,在稍微增加環(huán)境約束量的情況下,系統(tǒng)有較高的概率正確識別目標(biāo),只有在目標(biāo)受遮擋的情況下識別效率較差;而當(dāng)增加環(huán)境約束權(quán)重,目標(biāo)識別率則出現(xiàn)嚴(yán)重下降,但仍然可以在一定程度上識別圖像,顯示了本文算法良好的預(yù)測能力和對環(huán)境的魯棒性,可以有效提高視覺伺服系統(tǒng)環(huán)境適應(yīng)性。
表1 非訓(xùn)練樣本空間目標(biāo)圖像識別率
本文主要研究在視覺伺服過程中圖像處理階段如何克服系統(tǒng)魯棒性因素帶來的影響,包括有效實(shí)現(xiàn)工業(yè)環(huán)境約束條件下(如光照、陰影、遮擋等情況)對目標(biāo)特征圖像的識別和具有較強(qiáng)魯棒性和精度的目標(biāo)模型匹配算法。在分析工業(yè)環(huán)境中所面臨的主要約束任務(wù)后,提出了以YOLO 算法為基礎(chǔ)的復(fù)雜工業(yè)環(huán)境目標(biāo)檢測算法,利用端到端的規(guī)劃思路,將物體檢測轉(zhuǎn)換為單一的回歸問題。該方法避免了基于R-CNN 方法對每個模塊都單獨(dú)訓(xùn)練,通過多個步驟來完成對目標(biāo)物體檢測的必要過程,融合定位與分類任務(wù)后同時進(jìn)行,在完成對圖片的單次掃描后利用CNN 網(wǎng)絡(luò)進(jìn)行特征提取和定位,提高目標(biāo)檢測的實(shí)時性,降低大規(guī)模計(jì)算帶來的影響,此外也能在一定程度上克服動態(tài)約束因素的干擾。