曹昭睿,白 帆,劉鳳麗,郝永平
(1 沈陽理工大學機械工程學院, 沈陽 110159; 2 沈陽理工大學裝備工程學院, 沈陽 110159)
野外搜救、自動駕駛、視頻監(jiān)控等應用中,機器視覺能夠提供給計算機最直觀的目標信息,需要采取不同的技術(shù)措施。其中,目標物的識別與鎖定是機器視覺中最重要的一個環(huán)節(jié),而對于以上應用,該環(huán)節(jié)不但需要具備速度快、精準度高、抗干擾能力強等特點,還要盡可能的減少對計算資源的消耗。由于實時識別跟蹤任務(wù)下,目標經(jīng)常會發(fā)生無規(guī)則變形或快速移動,所以基于模式識別的目標識別算法的準確率會受到極大影響。目前如Faster-RCNN、SSD[1-2]等基于卷積神經(jīng)網(wǎng)絡(luò)的深度學習算法雖然針對可變化環(huán)境與目標的識別率較高,但由于卷積神經(jīng)網(wǎng)絡(luò)對硬件系統(tǒng)的依賴性過大,為達到實時識別跟蹤,這些算法在計算過程中會消耗大量的計算機計算能力。
文中設(shè)計了一種聯(lián)合輕量化卷積神經(jīng)網(wǎng)絡(luò)與KCF的目標識別跟蹤算法,在第一幀快速識別目標并鎖定該目標的區(qū)域,將該區(qū)域信息傳遞給KCF跟蹤環(huán)節(jié),進行目標鎖定跟蹤,同時對比識別模板與跟蹤模板間的相關(guān)性,一旦識別模板與跟蹤模板的差別較大,則重新識別目標并刷新鎖定區(qū)域,實現(xiàn)對移速較快且發(fā)生形變的目標的跟蹤。
算法整體由目標識別、目標跟蹤與位置刷新3個環(huán)節(jié)組成,圖1為輕量化神經(jīng)網(wǎng)絡(luò)(tiny convolution neural network,TCNN)識別跟蹤算法的流程圖。首先利用輕量化卷積神經(jīng)網(wǎng)絡(luò)對探測視頻的第一幀進行目標識別,將需要鎖定的目標進行位置標記,并獲取該位置的區(qū)域坐標信息(圖2(a)),將該坐標信息作為跟蹤環(huán)節(jié)內(nèi)目標區(qū)域的來源,利用KCF算法對該區(qū)域進行跟蹤(圖2(b));跟蹤過程中對識別模板與跟蹤模板利用感知哈希算法進行相關(guān)性比較,若識別后新目標所在區(qū)域與原跟蹤區(qū)域尺寸、位置差別較大(圖2(c)),則刷新跟蹤區(qū)域并繼續(xù)跟蹤目標(圖2(d)),重復以上步驟至目標脫離視野。

圖1 輕量化神經(jīng)網(wǎng)絡(luò)識別跟蹤算法流程圖

圖2 系統(tǒng)處理效果流程
在對目標進行跟蹤前,系統(tǒng)需要對視頻數(shù)據(jù)進行目標識別檢測,以確定目標是否存在并提取目標的位置信息。為加快系統(tǒng)計算速度,同時減少對硬件系統(tǒng)的依賴性,文中選用輕量化神經(jīng)網(wǎng)絡(luò)作為目標識別核心算法。TCNN是一種以YOLO卷積神經(jīng)網(wǎng)絡(luò)為基礎(chǔ),經(jīng)過縮減優(yōu)化后的網(wǎng)絡(luò)模型。該模型由7個卷積層、7個最大池化層和一個輸出層組成,其中卷積層與最大池化層依次交替出現(xiàn)[3]。卷積層中卷積核尺寸為3,步長為1,滑動步幅為1,層內(nèi)激活函數(shù)為ReLU函數(shù);最大池化層的采樣核大小為2,步長為2;輸出層最終輸出多維張量。圖3為TCNN網(wǎng)絡(luò)結(jié)構(gòu)模型圖。

圖3 TCNN網(wǎng)絡(luò)結(jié)構(gòu)模型圖
TCNN網(wǎng)絡(luò)首先將目標圖片分割成S*S個網(wǎng)格,每個網(wǎng)格將分別輸入到輸入層并向后傳遞計算[4]。若目標的中心落在某個網(wǎng)格中,則該網(wǎng)格就將對這個區(qū)域內(nèi)的目標進行檢測。置信值表示當前網(wǎng)格中是否包含目標以及目標位置的準確性,置信值為檢測目標的概率與IOU的乘積,如式(1)所示:
(1)
P(object)為該網(wǎng)格中是否存在有目標,若存在則值為1,不存在值為0。IOU為交并比(intersection over union),即目標產(chǎn)生的目標框與該目標的范圍框的交并比例,表達式為:
(2)
式中:DR為檢測目標框范圍[5](detection result);GT為真實目標覆蓋范圍(ground truth)。檢測目標范圍與真實目標覆蓋范圍交并結(jié)果IOU如圖4所示。

圖4 IOU示意圖
每個網(wǎng)格同時還能預測C個目標類別概率,即第i類目標中心落在該網(wǎng)格內(nèi)的概率,記為P(Classi|Object)。C為目標的類別數(shù),與目標個數(shù)B無關(guān)。將目標類別概率與置信值相乘,得到乘積作為置信值的評分,如式(3)所示:
(3)
最終,根據(jù)每個網(wǎng)格所得出的置信值評分,確定網(wǎng)格中是否存在目標,從而完成目標的確定與識別。
選用KCF算法作為目標跟蹤的核心算法,該算法通過嶺回歸分類器的學習來完成對移動目標的跟蹤。將輕量化神經(jīng)網(wǎng)絡(luò)識別出的目標信息作為目標區(qū)域傳入嶺回歸分類器中,再利用循環(huán)矩陣理論,對目標區(qū)域進行稠密采樣,獲取正負樣本,提取方向梯度直方圖特征,將所有樣本對嶺回歸分類器進行訓練。在檢測階段,以視頻前一幀目標位置為中心進行稠密采樣,將得到的所有樣本輸入到嶺回歸分類器,經(jīng)過分類,得到目標的位置。
2.2.1 稠密采樣與循環(huán)矩陣
KCF算法中所有樣本均由對目標區(qū)域的循環(huán)位移處理所得到,該過程成為稠密采樣[8]。設(shè)目標區(qū)域為圖5中實線框內(nèi)容所示。

圖5 稠密采樣示意圖
則記該區(qū)域內(nèi)圖像塊所含信息為X=[x1,x2,…,xn]T,向量的循環(huán)可由排列矩陣得到,即[9]:

(4)
Px=[xn,x1,x2,…,xn-1]T
(5)
式中Px表示為圖5中虛線框所示信息。按照該方法將目標框在水平方向與垂直方向進行循環(huán)采樣,由此獲得完備的訓練樣本集。
2.2.2 嶺回歸分類器
設(shè)樣本集為(xi,yi),則嶺回歸分類器需找到一個函數(shù)f(X)=wTX,并使其損失函數(shù)下降到最小,即:
(6)
式中:w是列向量,表示權(quán)重系數(shù);λ為防止過擬合的正則項。寫成矩陣形式為:
(7)
X=[x1,x2,…,xn]T
(8)
式中:X的每一行表示一個向量,y是列向量,每個元素對應一個樣本的標簽,令導數(shù)為0,在復數(shù)域中表示為:
w=(XHX+λ)-1XHy
(9)
式中XH表示復共軛轉(zhuǎn)置矩陣。
2.2.3 核空間下的嶺回歸
對于無法在原始空間分類的樣本,需要引入核函數(shù)才可將低維空間中存在的線性不可分的模式映射到高維空間中并且實現(xiàn)線性可分,其中核函數(shù)的表現(xiàn)形式為[10]:
k(x,z)=φ(x)φ(z)
(10)
式中:k(x,z)為核函數(shù),φ(x)和φ(z) 為低維空間到高維空間的映射函數(shù)。在這種情況下重新設(shè)定分類器:
f(xi)=wTφ(xi)
(11)
則該分類器的權(quán)重系數(shù)為:
(12)
式中:w是Φ(X)行向量張成的空間中的一個向量,當w=∑aiΦ(xi)時:
(13)
令K表示核空間的核矩陣,則存在:
a=(K+λI)-1y
(14)
目標跟蹤過程中,嶺回歸分類器首先直接接收來自輕量化神經(jīng)網(wǎng)絡(luò)的目標位置信息并進行跟蹤,在下一幀后將更新的目標位置信息繼續(xù)返回嶺回歸分類器進行訓練,如此反復,完成對目標的跟蹤。
當目標在移動過程中發(fā)生變形或移速陡增時,KCF算法可能會出現(xiàn)跟蹤鎖定框與實際目標大小和位置不相匹配的狀況,導致無法準確跟蹤目標。為減小該狀況造成的跟蹤誤差,文中利用感知哈希算法對每一幀內(nèi)的跟蹤模板與原目標識別模板進行對比,感知哈希算法基于頻域?qū)崿F(xiàn),即將圖像通過不同頻率分量疊加的形式表示,由于感知哈希算法采用離散余弦變換 (DCT)保留了圖像中頻率較低的信息,故該算法保留了原有圖像的更多細節(jié),同時避免了伽瑪校正或顏色直方圖調(diào)整的影響。哈希算法首先將圖像縮小為8像素×8像素的尺寸,去除對比圖片中尺寸和比例的差異, 只保留圖片的結(jié)構(gòu)、明暗等基本信息。隨后將圖像轉(zhuǎn)化為灰度圖,設(shè)灰度圖圖像為Gp。利用離散余弦變換將灰度圖從像素域變換為頻域,轉(zhuǎn)換過程如下[11]:
(15)
式中:x、y是像域中元素坐標;f(x,y)是該坐標下的值;n是像素矩陣的階;u、v是頻域中元素的坐標;F(x,y)是頻域的系數(shù)矩陣的元素,該系數(shù)矩陣記為Mn×n[16],如式(16)所示:
(16)
式中:mk×k為Mn×n左上角k×k矩陣,計算mk×k矩陣元素平均值,記為eavg,并將mk×k陣中所有元素與eavg比較,若該元素值大于eavg,則記為1,反之記為0,統(tǒng)計上述數(shù)據(jù)后得到k2個bit的二進制串,記為Hp。最后計算兩張比較圖片HP的漢明距離,距離越大,則認為兩張圖差異越大,反之兩張圖片越相似。一旦兩模板差別較大(文中設(shè)定兩幅圖片中漢明距離的不同數(shù)據(jù)位超過10時差別較大),則認為目標已脫離跟蹤框,需利用輕量化神經(jīng)網(wǎng)絡(luò)重新對當前幀圖像內(nèi)的目標進行識別,并根據(jù)識別框重新定義跟蹤框位置;反之則認為目標仍存在于跟蹤框內(nèi),并保持當前跟蹤框繼續(xù)對目標進行跟蹤。
本實驗以室外環(huán)境下行人為目標,行人行走過程中會突然加速奔跑、蹲伏和被部分遮擋。行人目標權(quán)重由含有行人步行、奔跑、蹲伏與部分被遮擋的一萬張圖片集訓練而成,訓練網(wǎng)絡(luò)為標準YOLO V2。測試視頻時長10 s,共290幀,視頻內(nèi)目標共計一人,實驗平臺為英偉達Jetson TX2視覺計算模塊。
經(jīng)測試,TNCC算法識別測試效果如圖6所示。其中圖6(a)中紫色識別框為初始幀時利用輕量化神經(jīng)網(wǎng)絡(luò)對目標進行首次識別與定位結(jié)果;圖6(b)中紅色跟蹤框為使用KCF對目標跟蹤結(jié)果;圖6(c)中黑色對比框為目標發(fā)生形變時感知哈希檢測到跟蹤框定位不準,同時將跟蹤框從紅色改變?yōu)楹谏虞p量化神經(jīng)網(wǎng)絡(luò)重識別的結(jié)果;圖6(d)為啟用輕量化神經(jīng)網(wǎng)絡(luò)重定位后的結(jié)果。目標一旦發(fā)生類似的變化,系統(tǒng)將如圖6所示進行循環(huán)操作。

圖6 TNCC識別測試效果
為驗證本算法的優(yōu)化效果,實驗同時針對普通YOLO V2、普通KCF跟蹤算法、Camshift跟蹤算法進行測試,對比以上算法和本算法針對測試視頻進行識別跟蹤時的計算機利用率與其他性能指標。其中各算法計算機利用率如圖7所示。

圖7 各算法計算機利用率
圖7中顯示,當目標發(fā)生快速移動與形態(tài)變化時(0~5幀、61~91幀、187~198幀、299~232幀、252~260幀),TNCC啟用輕量化神經(jīng)網(wǎng)絡(luò)對目標進行重新識別與定位,此時計算機使用率較大,當目標被鎖定后,TNCC關(guān)閉目標識別系統(tǒng),開啟目標跟蹤環(huán)節(jié),此時CPU使用率下降,GPU使用率為0。TNCC僅在目標出現(xiàn)大幅度增速與發(fā)生形變時會消耗較多的計算空間,一旦目標穩(wěn)定后且被TNCC鎖定,則系統(tǒng)將會進入到計算平穩(wěn)態(tài),此時余下的空間便可以提供給如飛行控制、路徑規(guī)劃、目標對應行動抉擇等其他計算環(huán)節(jié)。
各算法計算性能指標如表1所示。

表1 各系統(tǒng)計算性能
綜合圖7與表1中的結(jié)果,TNCC在計算機利用率、目標脫離率與識別速度上最為平衡,在提高計算機剩余計算空間的情況下同時提升了針對可變形、加速、遮擋目標的識別跟蹤能力,解決了目標識別跟蹤過程中普通卷積神經(jīng)網(wǎng)絡(luò)的高計算機占有率和普通跟蹤算法需要人工劃分興趣區(qū)域與易丟失目標位置的問題。
由于TNCC減小了計算機計算負載,同時減小了模式識別受目標大幅度變化的影響,故該算法能夠更好地與視覺航跡規(guī)劃、視覺決策計算等其他基于機器視覺識別跟蹤的后續(xù)操作進行連接,為相應的擴展應用提供了更多的計算環(huán)境支持。
文中設(shè)計了一種結(jié)合輕量化神經(jīng)網(wǎng)絡(luò)、KCF目標跟蹤算法與感知哈希算法的目標識別跟蹤算法,對于目標發(fā)生突然變形、提速與被遮擋的環(huán)境下具有較好的識別與跟蹤效果,在不減小識別精確度的情況下提高了計算速度,同時為其他后續(xù)操作提供了更多的計算空間。