鄒 斌,蒲東兵,陳智強,孫英娟
(1.東北師范大學(xué)信息科學(xué)與技術(shù)學(xué)院,吉林 長春 130117;2.長春師范大學(xué)計算機科學(xué)與技術(shù)學(xué)院,吉林 長春 130032)
動態(tài)目標(biāo)跟蹤技術(shù)廣泛應(yīng)用于智能駕駛、體育競技以及軍事武器等眾多領(lǐng)域,其關(guān)鍵問題是如何快速、準(zhǔn)確檢測并定位到被跟蹤目標(biāo)?;谙嚓P(guān)濾波的方法檢測速度快,但魯棒性不足,而滑動窗口或特征點匹配方法對圖像平移、尺度變換的支持較弱[1-2]。SIFT[3](Scale Invariant Feature Transform)特征提取方法具有圖像平移、旋轉(zhuǎn)和尺度不變性,適合于目標(biāo)快速匹配。融合深度學(xué)習(xí)技術(shù)的Faster R-CNN(Faster Region-based Proposal Convolutional Neural Networks)[4]、SSD(Single Shot MultiBox Detector)[5]、YOLO(You Only Look Once)[6]等網(wǎng)絡(luò)模型在檢測速度和精度上都有很好的表現(xiàn),而Siamese FC(Fully-Convolutional Siamese Networks)[7]和SiamRPN(Siamese Region Proposal Networks)[8]通過融合RPN結(jié)構(gòu)實現(xiàn)了對特定目標(biāo)的檢測。盡管Siamese系列算法能夠?qū)崟r檢測定位目標(biāo),但當(dāng)遇到目標(biāo)被遮擋、相似物干擾、目標(biāo)產(chǎn)生形變甚至丟失等情形時,該類算法的效率就會大打折扣,本文提出的融合SIFT特征和相似度比較的SiamMask(Siamese Mask)[9]改進算法SSC-SiamMask(SiamMask-based of SIFT Features and Similarity Comparison for Single Object Detection and Localization)可有效解決上述問題。
孿生網(wǎng)絡(luò)Siamese由兩個完全相同的模塊組成,以實現(xiàn)對跟蹤目標(biāo)與后續(xù)圖像的特征提取。孿生掩碼網(wǎng)絡(luò)SiamMask通過RPN實現(xiàn)分類、定位與對目標(biāo)輪廓的預(yù)測,同時保留了跟蹤目標(biāo)和當(dāng)前幀的空間信息,但缺少對算法輸出錯誤結(jié)果的解決方案。本文提出的SSC-SiamMask算法在SiamMask算法的基礎(chǔ)上增加了SSC模塊(圖1),SSC模塊由正確性驗證與目標(biāo)尋回兩部分構(gòu)成,正確性驗證實現(xiàn)對SiamMask算法受到干擾時輸出的錯誤結(jié)果進行過濾,目標(biāo)尋回實現(xiàn)對SiamMask的輸出結(jié)果進行矯正,確保在跟蹤目標(biāo)丟失后重新找回目標(biāo)。
圖1 SSC-SiamMask網(wǎng)絡(luò)
正確性驗證包括歷史記錄隊列保留和相似度對比兩個部分(圖1),歷史記錄隊列作為目標(biāo)歷史狀態(tài)保留的緩沖區(qū),為后續(xù)檢測提供參考,相似度對比則計算當(dāng)前SiamMask的輸出與真實目標(biāo)的相似度,以判斷本次SiamMask輸出結(jié)果正確與否。
歷史隊列中的記錄項由定位信息和目標(biāo)圖像兩部分組成。SiamMask所輸出的坐標(biāo)信息由[tx,ty,w,h]表示,其中,tx,ty,w,h分別表示目標(biāo)中心點的坐標(biāo)(x,y)和預(yù)測邊界框的寬度與高度。
歷史記錄隊列為雙端隊列,以提高數(shù)據(jù)檢索的效率,由近N次SiamMask的正確輸出和系統(tǒng)初始化時選定的跟蹤目標(biāo)坐標(biāo)及其區(qū)域組成,共N+1條歷史記錄項。盡管初始化目標(biāo)在當(dāng)前運動狀態(tài)下已發(fā)生較大變化,但諸如顏色、紋理、邊界形狀等低層特征改變較小,可為正確性驗證提供更多參考。當(dāng)SiamMask實現(xiàn)正確輸出后,使用此歷史記錄項對隊列尾部元素進行替換,確保隊列為最新的定位結(jié)果,以保證目標(biāo)實時變化的狀態(tài)可以被完整保留。當(dāng)后續(xù)需要重新初始化SiamMask或進行相似度對比時,可以從該隊列中提取出目標(biāo)的最新狀態(tài)特征作為參考。
相似度對比則計算當(dāng)前SiamMask的輸出與真實目標(biāo)的相似度,以判斷是否輸出結(jié)果。在進行相似度對比時,首先使用SIFT算法提取目標(biāo)的SIFT特征Ts,然后從歷史記錄隊列中逐一將N條歷史記錄項取出,提取歷史記錄項中保存圖像的SIFT特征Hsi,i=1,2,…,N,計算Ts與Hsi的歐氏距離,取最大值并記為Sn。然后將原始記錄圖像從隊列中取出,提取其SIFT特征Os,計算Ts與Os的特征相似度So, 將兩次結(jié)果進行加權(quán)求和計算相似度:
S=λ1×Sn+λ2×So,
(1)
其中,λ1和λ2為權(quán)重,本文中λ1取值0.7,λ2取值0.3時,SSC模塊驗證效果達到最好。
當(dāng)SiamMask輸出大量錯誤結(jié)果時,說明跟蹤器已丟失跟蹤目標(biāo),本文采用目標(biāo)尋回方法對SiamMask的輸出進行矯正。目標(biāo)尋回時,首先對歷史記錄項進行循環(huán)讀取,同時在線替換SiamMask中所保留的跟蹤目標(biāo)特征參數(shù),使網(wǎng)絡(luò)可以充分利用目標(biāo)近期不同狀態(tài)的特征,將其作為識別目標(biāo)的參考。在后續(xù)圖像幀中進行目標(biāo)檢測定位時,使用正確性驗證模塊對SiamMask的每次輸出進行驗證,若驗證結(jié)果表明已找回目標(biāo),則使用本次SiamMask的輸出結(jié)果對歷史記錄隊列進行一次更新,其流程如圖2所示。
圖2 目標(biāo)尋回流程
本文設(shè)計的跟蹤系統(tǒng)架構(gòu)如圖3所示,包括上位機和下位機兩部分。系統(tǒng)中的下位機(具有網(wǎng)絡(luò)傳輸功能的小車)即為本文的跟蹤器,上位機為服務(wù)器,上位機與下位機通過無線Wi-Fi進行通信。其中,下位機主要對移動目標(biāo)進行跟蹤,包含網(wǎng)絡(luò)傳輸、圖像采集、避障、測距、硬件驅(qū)動等任務(wù);上位機實現(xiàn)SSC-SiamMask算法與數(shù)據(jù)處理,主要包含目標(biāo)檢測定位、網(wǎng)絡(luò)傳輸以及GUI等。
圖3 系統(tǒng)架構(gòu)
當(dāng)上位機通過SSC-SiamMask計算來自下位機的圖像數(shù)據(jù),輸出檢測目標(biāo)的二維像素坐標(biāo)后,下位機基于雙目測距算法計算其與目標(biāo)之間的距離,將相關(guān)數(shù)據(jù)傳回到上位機。雙目視覺一般用于空間三維建圖,通過構(gòu)建像素坐標(biāo)系,將視差值作為參數(shù),使用相似三角形定理計算跟蹤器至觀測目標(biāo)的距離,其具體過程如圖4所示。正常跟蹤時,本文設(shè)定跟蹤器與目標(biāo)之間的參考距離為2 m。
圖4 雙目測距流程
為了實現(xiàn)跟蹤過程中下位機自主避障,系統(tǒng)采用紅外傳感器和超聲波傳感器協(xié)同避障的方式,多傳感器協(xié)同避障邏輯如圖5所示。跟蹤器在跟蹤過程中,其超聲波傳感器不斷檢測跟蹤器正前方障礙物,若存在障礙物,則將該信號反饋至紅外傳感器,紅外傳感器將對跟蹤器兩側(cè)障礙物存在情況進行檢測。
圖5 多傳感器協(xié)同避障
在跟蹤過程中,上位機根據(jù)SSC-SiamMask發(fā)出指令,驅(qū)動跟蹤器運動。跟蹤器在尋找目標(biāo)過程中,不斷接收來自上位機的指令,當(dāng)上位機發(fā)現(xiàn)目標(biāo)后,以發(fā)送定位坐標(biāo)的方式,通知跟蹤器目標(biāo)已被找到,跟蹤器收到指令后退出目標(biāo)尋回模式,同時利用接收到的定位信息,調(diào)整舵機姿態(tài)并驅(qū)動電機移動至目標(biāo)所在方向。
跟蹤系統(tǒng)上位機與跟蹤器采用Ubuntu操作系統(tǒng),通過Python編程,實現(xiàn)系統(tǒng)的集成測試。圖6為跟蹤系統(tǒng)的綜合控制GUI,用于設(shè)定初始目標(biāo)區(qū)域,顯示實時采集的圖像、目標(biāo)區(qū)域、測距距離、目標(biāo)中心點坐標(biāo)、時間戳等信息。
圖6 上位機綜合控制GUI
圖7和圖8分別表示SSC-SiamMask正常跟蹤時的網(wǎng)絡(luò)初始化過程和實際檢測定位效果對比。
圖7 網(wǎng)絡(luò)初始化
圖8 目標(biāo)檢測定位
本文拍攝兩組視頻,每組視頻中目標(biāo)正常存在的圖像和目標(biāo)消失的圖像各500幀。通過統(tǒng)計錯誤輸出率進行過濾效果的驗證,利用系統(tǒng)單位時間內(nèi)處理圖像的速率(幀/s)作為指標(biāo),驗證該模塊對系統(tǒng)實時性產(chǎn)生的影響,結(jié)果如圖9和表1所示。
圖9(a)表示SiamMask檢測正確目標(biāo)的情形;圖9(b)表示當(dāng)目標(biāo)消失后,系統(tǒng)在未進行正確性驗證的情況下檢測到錯誤目標(biāo),說明SiamMask算法的局限性;圖9(c)表示當(dāng)目標(biāo)消失后,使用SSC正確性驗證模塊對SiamMask輸出進行過濾,未在圖中進行任何錯誤標(biāo)識,說明正確性驗證模塊的有效性。
(a)目標(biāo)正常結(jié)果輸出
(b)目標(biāo)消失錯誤結(jié)果輸出
(c)目標(biāo)消失正確結(jié)果輸出
表1 正確性驗證算法過濾效果
表1說明引入正確性驗證模塊后,SSC-SiamMask的錯誤輸出率顯著低于SiamMask,盡管犧牲了少部分檢測速度,但獲得了更高的準(zhǔn)確率。
圖10表示目標(biāo)丟失時信息記錄與處理結(jié)果,圖10(a)中保留了目標(biāo)消失時的最后圖像信息,時間戳表明目標(biāo)于16點04分50秒時消失。由于系統(tǒng)使用正確性驗證模塊對網(wǎng)絡(luò)的錯誤輸出進行了過濾,所以圖10(b)未輸出任何錯誤定位信息,說明正確性驗證模塊起到了過濾錯誤的效果。
(a)丟失時間戳
(b)定位結(jié)果
圖11(a)表示目標(biāo)再現(xiàn),圖11(b)顯示的時間戳為16點05分01秒說明目標(biāo)消失了11 s,此時檢測定位算法盡管還未檢測到待跟蹤目標(biāo),但也沒有任何錯誤的檢測結(jié)果輸出。
(a)目標(biāo)再現(xiàn)
(b)目標(biāo)再現(xiàn)時間戳
圖12(a)表示當(dāng)目標(biāo)消失一段時間再現(xiàn)后,系統(tǒng)能夠找回丟失的目標(biāo),并輸出其坐標(biāo)信息,同時將跟蹤目標(biāo)的位置實時地通過矩形框標(biāo)注在圖中。圖12(b)的時間戳為16時05分03秒,進一步驗證了通過保留歷史記錄的方式,使用目標(biāo)尋回模塊找回目標(biāo)的有效性。
(a)目標(biāo)尋回
(b)目標(biāo)尋回時間戳
圖13(a)表明當(dāng)遇到相似顏色特征的干擾物(橢圓形包),網(wǎng)絡(luò)仍然正確識別并定位出目標(biāo)。圖13(b)顯示檢測到的目標(biāo),目標(biāo)的距離為40.29 cm。
(a)“顏色相似物”干擾
(b)“顏色相似物”干擾時間戳
為了解決目標(biāo)被遮擋時無法識別或錯誤定位的問題,本文采用了擴大搜索域策略。圖14(a)表示目標(biāo)部分區(qū)域被遮擋,SSC-SiamMask使用相似度比較算法對網(wǎng)絡(luò)輸出進行正確性驗證,并對錯誤輸出結(jié)果進行過濾,只輸出了正確的定位結(jié)果,如圖14(b)所示。
(a)“遮擋”干擾
(b)“遮擋”干擾時間戳
圖15(a)(b)(c)分別表示第三視角(從跟蹤器和跟蹤目標(biāo)以外的視角)下跟蹤測試的結(jié)果。
(a)跟蹤開始
(b)跟蹤進行
(c)跟蹤轉(zhuǎn)彎
圖16(a)(b)(c)分別表示上位機實時顯示跟蹤狀態(tài)的視角效果,該視角對應(yīng)第一視角(從跟蹤器角度觀察的視角)。
(a)跟蹤開始
(b)跟蹤進行
(c)跟蹤轉(zhuǎn)彎
本文將計算機視覺技術(shù)與深度學(xué)習(xí)算法相結(jié)合,設(shè)計并實現(xiàn)了一個基于SSC-SiamMask的目標(biāo)跟蹤系統(tǒng)。該系統(tǒng)通過SSC-SiamMask算法對目標(biāo)進行檢測定位,跟蹤器收到定位信息后跟蹤目標(biāo)。經(jīng)測試,SSC-SiamMask算法能夠過濾環(huán)境中96%以上的視覺干擾,跟蹤器在保持與目標(biāo)間距2 m的同時,有效規(guī)避障礙物,實時跟蹤動態(tài)目標(biāo)。