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