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