邱守猛,谷宇章,袁澤強
1.中國科學院 上海微系統(tǒng)與信息技術研究所 仿生視覺系統(tǒng)實驗室,上海200050
2.中國科學院大學,北京100049
目標跟蹤是計算機視覺中一個非常重要的研究任務,在人機交互、自動駕駛、安防監(jiān)控等各個方面都有著巨大的應用空間。盡管在過去的幾十年中目標跟蹤這一領域取得了許多重要的進展,但由于在跟蹤過程中可能出現(xiàn)各種情況,比如目標遮擋、光照變化、自身形變等,視覺跟蹤仍然面臨著嚴峻的挑戰(zhàn)。
傳統(tǒng)的目標跟蹤算法,如KCF[1]、SRDCF[2]等使用相關濾波的思想來對目標的狀態(tài)進行估計,上述方法使用手工設計的特征作為圖像的表示,表達能力受限。李彪等人[3]提出了一種自適應特征融合的相關濾波跟蹤算法,通過融合兩種互補特征來提高算法的魯棒性。由于深度特征具有更強大的表示能力,人們便將深度特征用在相關濾波算法中,C-COT[4]使用多層深度特征替代了傳統(tǒng)圖像特征以獲得性能的進一步提升。最近張晶等人[5]提出了一種結合重檢測機制的多卷積層特征響應跟蹤算法,通過使用多卷積層的深度特征,能夠處理環(huán)境中目標快速變化并防止跟蹤器漂移。
近些年來,基于孿生神經網絡的目標跟蹤算法由于結構簡單、性能優(yōu)異引起了人們的廣泛關注。Bertinetto等人[6]提出的SiamFC是一種端到端的全卷積孿生網絡跟蹤模型,在當時取得了非常優(yōu)異的性能。之后,基于孿生網絡的跟蹤算法就變得流行起來[7-8],如SiamRPN[9]、SiamRPN++[10]等算法。它們都使用相關操作作為特征之間的匹配度量方式。不同的是SiamFC[6]使用相關操作獲得一張單通道的響應圖,然后使用該圖來判斷目標出現(xiàn)的位置,單張圖中包含的信息是非常有限的,如不能表達出目標尺度的變化、不能有效應對遮擋問題,因此算法在每次跟蹤時都輸入三種不同尺度下的圖像,根據不同尺度下的響應大小選擇最佳的目標尺度。陳富健等人[11]最近提出了一種引入抗遮擋機制的SiamVGG網絡目標跟蹤算法,通過對網絡輸出置信圖的峰值和連通域的變化規(guī)律分析,設置不同的跟蹤模式,提升了孿生網絡算法在抗遮擋問題上的有效性和魯棒性。SiamRPN[9]借鑒了目標檢測中的候選框機制,為了獲得最終的k個錨框預測結果,網絡一共需要輸出2k通道的分類回歸結果和4k通道的位置回歸結果,因此在進行相關操作之前先將特征的通道數提升至對應的倍數,然后再分別進行相關操作,極大地增加了參數量和計算量。SiamRPN++[10]提出了一種高效的深度可分離相關操作,分別在每個通道上進行獨立的相關求解,而后獲得多張包含不同語義的響應圖。通過對這些響應圖中的信息進行聚合處理可以獲得更加魯棒的預測結果。后續(xù)很多基于孿生網絡的跟蹤算法都采用了深度可分離的相關操作,例如SiamFC++[12]、SiamCAR[13]等,它們的區(qū)別主要在于對目標狀態(tài)的表示方式不同。雖然傳統(tǒng)的相關操作和深度可分離相關操作被應用在很多跟蹤器上,并且取得了非常不錯的效果。但是該操作依然存在一些問題。具體來說,在進行相關操作時,模板圖像不同區(qū)域的特征是使用同樣的網絡模型提取的。理論上,對于目標的內部和輪廓區(qū)域,對特征的關注重點是不同的,內部區(qū)域應該更關注整體內容的提取,而在輪廓區(qū)域則應該關注輪廓信息的編碼,抑制周邊內容信息,因為模型并不知道那些輪廓附近哪些屬于目標,哪些屬于背景信息。雖然深度神經網絡提取得到的特征圖中可以包含各種語義信息,但是在獲得普適性的信息提取能力的同時也失去了針對不同區(qū)域不同關注重點的能力。
此外,在基于孿生網絡的目標跟蹤算法中,相關操作時模板的形狀一般是固定的,如空間尺度大小為5×5,這樣一來特征的結構也就固定下來,無法有效應對目標發(fā)生形變時的情況。CGACD[14]中提出了一種逐像素相關的方案來解決上述問題,但是每個像素位置只生成一張響應圖,包含的信息有限,并且不同像素下生成的響應圖在空間位置上是存在偏移的,這就要求后續(xù)網絡模塊需要較大的感受野才能獲得目標的整體信息,對于卷積神經網絡就意味著更大的卷積核或更深的結構。又因為卷積網絡的有效感受野要小于理論感受野[15],使得上述問題更加突出,另外,大感受野也更容易受到背景信息的干擾。
為解決上述問題,本文首先提出使用雙分支結構來分別針對目標內部和輪廓處特征的提取,然后使用改進后的逐像素相關操作替代傳統(tǒng)的相關操作,降低因目標變形可能導致的匹配不準確問題。
本文算法基于SiamFC++[12],整體流程如圖1所示。首先使用相同的特征提取網絡分別對目標和搜索區(qū)進行特征提取,接下來,本文算法將提取到的特征分為兩路,分別送到不同的特征自適應模塊,對應目標內部和輪廓處的不同需求。然后將兩路分支得到的特征分別進行相關操作。對于目標輪廓處的特征,為了降低目標形變給特征匹配帶來的影響,使用本文改進的逐像素相關的算法取代傳統(tǒng)的相關算法。然后將兩路分支下得到的相關特征送入特征融合模塊進行融合,將融合后的特征用于目標的分類和回歸任務。下面對本文中提出的各個模塊進行具體介紹。
圖1 算法整體流程圖Fig.1 Flowchart of proposed algorithm
本文中使用兩路特征提取模塊分別對目標內部和輪廓處的特征進行提取。為降低計算量,兩路特征提取模塊在前期共享同一基礎特征提取網絡,后面通過兩路特征自適應模塊完成對不同區(qū)域不同重點特征的提取。
具體的,給定目標的模板圖像Timg和搜索區(qū)圖像Simg,首先使用基礎特征提取網絡來獲得對應的基礎特征Z∈?C×h×w和X∈?C×H×W。其中C表示特征的通道數,h和w分別表示目標模板特征圖的大小,H和W分別表示搜素區(qū)特征圖的大小。然后使用兩個不同的分支分別對基礎特征進行進一步的特征提取。簡單起見,兩個分支被設置為相同的結構但不共享參數。通過不同分支后獲得具有區(qū)域特異性(目標內部和輪廓處)的特征,計算過程如下:
上式中φo()表示針對目標輪廓的網絡分支,φi()表示針對目標內部特征的網絡分支。分別表示模板特征和搜索區(qū)特征經過不同分支后提取到的結果。
由于內部分支重點關注目標內部特征的表示,因此在使用該分支得到的特征進行相關操作時先對特征進行中心裁剪。該分支下的相關操作表示為:
其中,fc表示相關操作后獲得的特征圖,Crop_center()表示中心裁剪操作。具體的裁剪尺寸和原始模板特征圖的大小有關。DW_corr()表示深度可分離相關操作。
對目標內部區(qū)域,其內容一般相對穩(wěn)定,受形變影響較小,可以直接使用高效的深度可分離相關操作。但對于輪廓分支,由于目標發(fā)生形變時最容易表現(xiàn)在輪廓處,如果直接使用外周輪廓的特征作為模板進行相關匹配,結果的準確性將會受到影響。對此,提出了改進逐像素相關的特征匹配算法。下面對該算法進行具體的介紹。
首先介紹在CGACD[14]中提出的逐像素相關算法。然后介紹本文中提出的改進方案并重點突出與原來算法的不同之處。
與傳統(tǒng)相關操作中直接使用整個模板進行相關計算不同,逐像素相關操作首先將整個模板特征Z∈?C×h×w分解成多個大小為1×1的核Zk∈?C×1×1,k∈1,2,…,h×w,然后將每個核分別與搜索區(qū)的特征進行相關操作。最后一共可以獲得w×h張不同的響應圖,逐像素相關操作可以表示為:
然后將w×h張不同的響應圖在通道維度進行拼接。其中每張?zhí)卣鲌D分別對應著目標不同區(qū)域下的匹配響應信息。由于分解后每個核大小為1×1,其中包含的結構信息相對于原來整個特征模板要少,因此,逐像素相關操作獲得的響應結果對于目標的形變等問題更加魯棒。
CGACD算法[14]一定程度上解決了目標形變導致的匹配結果不準確問題,但仍然存在一些不足。首先,多張響應圖在通道維度直接進行拼接,沒有考慮到不同的特征圖是由目標不同區(qū)域的特征分別進行相關得到的,直接在通道維度上進行拼接,后續(xù)處理模塊就需要較大的感受野才能獲得整個目標的信息,更大的感受野可能引入更多的背景干擾。另一個問題是不同的目標區(qū)域只生成一張響應圖,包含的信息有限。
為解決上述問題,本文對逐像素相關算法進行了改進。針對第一個問題,將不同大小的特征相關操作后得到的響應圖進行對齊,原來在空間上的位置關系就被轉移到通道上來,即響應圖中同一位置不同通道上包含著同一個物體不同區(qū)域的信息。這樣不需要太大的感受野就可以獲得整個目標的響應信息,有利于后續(xù)任務模塊對目標狀態(tài)估計。
以3×3大小的模板核為例,圖2給出了本文改進的逐像素相關算法與原有逐像素相關算法的對比。
圖2 改進算法與原算法對比圖Fig.2 Comparision of proposed algorithm and original algorithm
下面分析改進的逐像素相關算法對目標變形的影響。傳統(tǒng)相關操作和深度可分離相關都只保留了所有局部區(qū)域響應值的和:
其中M(i,j)表示響應圖(i,j)位置上的值,pk,k∈1,2,…,h×w表示目標的不同區(qū)域對(i,j)位置上響應結果的貢獻。因此如果某些區(qū)域發(fā)生了變形導致該區(qū)域下的匹配響應值很低,會直接影響最終的求和結果,并且根據最終響應結果無法得出是局部匹配失敗還是整體匹配程度不高導致的,不利于對遮擋或變形的情況的判斷。CGACD[14]中的逐像素相關將局部區(qū)域的響應值都保留下來,某些區(qū)域的匹配誤差不會影響到其他區(qū)域,但由于不同區(qū)域對應的響應值分布在響應圖的不同位置上,容易受到周圍背景信息的干擾。而本文算法通過空間對齊,將局部區(qū)域的響應信息保留在響應圖同一位置的不同通道上:
整個目標不同區(qū)域的響應信息都包含在空間大小為1×1的向量中,M(i,j)的周邊區(qū)域可以覆蓋由于目標變形導致的局部響應值偏移,而卷積操作(卷積核大于1×1時)可以有效地提取周邊信息,因此后續(xù)網絡模塊可以更有效應對目標變形的問題。
此外,對于第二個問題,可以通過深度可分離卷積操作保留較多的信息,但直接使用深度可分離卷積,多個局部區(qū)域相關得到的特征在進行拼接后維度將會變得非常高,對此,將相關操作轉換為分組卷積,保留較多的信息的同時降低模型的復雜度。
空間對齊方式具體如圖3所示。不同編號的區(qū)域可以表示每個Zk∈?C×1×1,k∈1,2,…,h×w特征所對應的感受野(實際中相鄰特征之間感受野會存在一定的重疊),這里h和w都為3。不同Zk對應的區(qū)域在空間位置上是不同的,經過中心對齊操作后,整幅圖像被表示一幅九通道(每個通道都是RGB圖像)圖像的某一較小的區(qū)域。后續(xù)的卷積網絡不需要太大的感受野就可以獲得目標的整體信息。因此有效減少了大感受野下背景信息帶來的干擾。
圖3 目標不同區(qū)域上的空間中心對齊Fig.3 Spatial alignment on different target areas
在進行目標狀態(tài)回歸前,需要將兩路分支得到的特征進行融合。這里使用簡單的特征拼接融合方式,先將兩路特征在通道維度上進行拼接,然后使用1×1的卷積對特征進行降維以匹配后面模塊的輸入。
本文以性能優(yōu)異的孿生網絡跟蹤算法SiamFC++為基準模型進行改進。為驗證本文提出算法的有效性,在OTB[16]、GOT-10k[17]數據集上進行了實驗驗證。
本文算法運行平臺配置為:CPU為8核3.00 GHz i7-9700,內存為16 GB,顯卡為RTX2080,操作系統(tǒng)為Ubuntu18.04,編程環(huán)境為Python3.6。其中基礎特征提取網絡選擇為GoogleNet[18],在使用公式(2)對特征圖進行裁剪時,原始特征圖的大小為5×5,將其中間3×3的部分作為目標的內部區(qū)域,將剩下的外周部分視為目標的輪廓部分。由于SiamFC++算法中本身就具有針對不同回歸任務的自適應模塊,因此本文直接將對于不同回歸任務的自適應模塊復制為兩份,分別對應于內部特征和周圍輪廓處特征的提取,自適應模塊的的具體結構為Conv+Bn+Relu(卷積層+批量歸一化層+激活層)。逐像素相關操作時,分組卷積的組數設置為16,相關時可以將分解后的每個核并行計算,提高效率。與基準模型相比,改進后的模型只增加了額外自適應模塊和特征融合時的1×1降維卷積層,帶來的參數量的增加可以忽略不計。實驗表明,改進的模型與原模型相比,跟蹤速度幾乎保持不變,在NVIDIA 2080Ti顯卡上可達90 frame/s左右。為了公平比較,在實驗中所有的超參數設置都與基準算法SiamFC++相同。使用GOT-10k[16]的訓練集作為訓練數據集。
2.2.1 在OTB2015數據集上的結果與分析
OTB2015數據集是一個經典的被用作跟蹤器性能評估的數據集。OTB2015中一共包含有100個目標跟蹤視頻序列。其中包含了目標遮擋、形變、快速運動、運動模糊、光照變化、尺度變化等一共11種不同的挑戰(zhàn)屬性??梢詫Ω櫵惴ㄔ诟鞣N情境下的跟蹤性能做出評價。使用跟蹤成功率和歸一化精度作為評價指標來衡量不同跟蹤器的性能差異。跟蹤成功率反映了算法估計的目標位置與標注位置之間的重合程度。
假設BBtr為跟蹤算法估計得到的目標位置,BBgt為數據集中人工標注的目標位置,||表示區(qū)域內的像素個數。當跟蹤結果與真值之間的IOU(交并比)大于某一設定閾值時,該幀就被視為跟蹤成功。跟蹤成功的幀數和總幀數的比值即為成功率??梢钥闯觯唧w的成功率是和閾值相關的,為了去除不同閾值對結果的影響,可以將不同閾值下的成功率作出一條曲線,然后計算曲線下的面積作為最終結果,即AUC指標。
由于原有的精度指標對圖像分辨率和目標的大小十分敏感。本文中使用文獻[19]中改進的歸一化精度代替原來的精度指標,歸一化精度計算方式為:
式(7)、(8)中Ctr表示跟蹤預測的目標中心,Cgt表示目標的真值中心分別表示目標的真實寬度和高度。為了去除不同閾值精度對結果的影響,將不同閾值下的歸一化精度作出一條曲線,參照文獻[19],取閾值在0~0.5的曲線下面積作為最終指標。
本算法在OTB2015數據集上和7種先進的跟蹤算法進行比較:ECO_HC[20]、DaSiamRPN[21]、ATOM[22]、DiMP50[23]、Ocean-offline[24]、Ocean-online[24]和SiamFC++。圖4為不同算法在OTB2015數據集上的跟蹤成功率和歸一化精度指標。相較于基準算法,本文算法在成功率指標上性能提升了1.2%。和其他算法相比,本文算法也取得了最好的成績。改進后的算法在歸一化精度指標上也有所提升。
圖4 在OTB2015上的實驗結果Fig.4 Experiments on OTB2015
接下來再對改進后的算法對目標變形、尺度變化屬性下跟蹤精度性能的影響進行分析,以驗證本文算法在對這兩種屬性下跟蹤性能的改善情況。結果如圖5所示。
圖5 變形、尺度變化屬性下的歸一化精度Fig.5 Normalized precision in target deform,scale change
通過圖5可以看出,改進后的算法在變形、尺度變化這兩個屬性上精度指標都有所提升,分別提升0.4%和1.7%。并且在尺度變化這一屬性下性能還超越了使用在線更新策略的DiMP算法。
下面對不同屬性下跟蹤性能變化進行分析。不同屬性下的成功率變化如圖6所示。
圖6 OTB2015下不同屬性視頻序列的成功率Fig.6 Success rate of different attribute sequence on OTB2015
可以看出,在變形和尺度變化這兩個屬性下,改進后的算法相較于原算法獲得了比較顯著的性能改善,獲得了1.8%和1.9%的提升。分析原因,對于變形屬性,由于本文提出的逐像素相關算法可以降低目標形變對特征匹配結果的影響。對于尺度變化屬性,通過逐像素相關模塊中的空間對齊操作,使得后續(xù)目標狀態(tài)回歸模塊不需要太大的感受野就能獲得目標的整體信息,減少了大感受野下背景信息的干擾,因此在目標尺度發(fā)生變化時仍然可以有效地獲得其全局信息,從而提升了算法在該屬性視頻下的魯棒性。另外,在其他大多數的屬性下,如光照變化、低分辨率,本文算法也取得了比基準算法更加優(yōu)異的性能。
為了更加直觀地對跟蹤性能的變化進行展示,選取了6個跟蹤序列對中間結果進行可視化。結果見圖7。對于(a)Trellis和(b)Deer視頻序列,可以看出,與基準算法相比,本文算法的預測結果和真值更加接近,這是因為本文算法中的雙分支模塊中的輪廓分支可以更有效地提取輪廓信息,因此對輪廓的定位也就更加準確。對于(c)Liquor序列,當目標發(fā)生遮擋時,由于本文算法在逐像素相關模塊中使用了局部信息,算法依然可以根據未被遮擋的區(qū)域對目標狀態(tài)進行估計,因此和使用目標整體信息的原算法相比效果更好。對于(d)Human4、(e)Bolt和(f)Suv序列,原算法發(fā)生跟蹤錯誤時是因為附近出現(xiàn)了相似目標的干擾,而本文算法由于使用了輪廓信息和局部信息,提升了跟蹤器的判別性,因此在這一情況下的表現(xiàn)更加魯棒。
圖7 算法跟蹤結果展示Fig.7 Visualization of tracking result
2.2.2 在GOT-10k數據集上的結果與分析
GOT-10k數據集是由中科院自動化所提出的一個大規(guī)模跟蹤數據集,其訓練集和測試集之間不存在類別重疊,因此可以用來衡量跟蹤器的泛化能力。在此數據集上使用評價指標AO(平均重疊率)和SR(成功率)進行評估,其中SR0.5和SR0.75分別表示不同閾值下的成功率結果。加入了比較流行的跟蹤器MDNet[25]、D3S[26]進行比較。實驗結果如表1所示。
表1 GOT-10k數據集AO、SR0.5、SR0.75指標性能Table 1 AO,SR0.5,SR0.75 experiments on GOT-10k %
可以看出,本文算法在AO指標下取得了最好的性能,超越了使用了在線更新的Ocean-online算法。另外,在SR0.5和SR0.75評價指標下,本文算法也都取得了最好的效果,充分證明了本文算法對于未知目標也有著優(yōu)異的泛化能力。
為了驗證本文中提出的雙分支結構和逐像素相關模塊對于算法性能的影響。本文進行了對應的消融實驗,實驗在GOT-10k測試集上進行。實驗結果如表2所示。其中+D表示使用了雙分支結構,+PWC表示使用了原始的逐像素卷積操作,+PWC+S表示使用了原始逐像素卷積操作加空間對齊,+PWC+S+G表示在+PWC+S的基礎上在逐像素相關卷積時又使用了分組卷積來保留更多的相關后的信息。
表2 GOT-10k上的消融實驗結果(AO、SR0.5、SR0.75指標)Table 2 Impact of different decisions on AO,SR0.5,SR0.75 performance %
在表2中可以看出,將單分支變成雙分支后,模型的性能有了顯著的提升,在AO、SR0.5、SR0.75指標上分別獲得了2.2%、2.2%和1.9%的提升,證明了雙分支模塊的有效性。此外,本文中提出的其他模塊對算法的最終性能也都有一定的提升。
下面對雙分支模塊中的重要參數對模型性能的影響進行分析。主要考慮模塊中卷積核的大小和模塊的深度對性能的影響。實驗在GOT-10k測試集上進行,在本文的主要實驗中,雙分支模塊采用SiamFC++算法中的特征自適應模塊結構,具體為Conv+Bn+Relu,這里卷積核的大小為3×3。表3是對卷積核大小為5×5情況下對模型性能的影響實驗結果,表4是模塊的深度對性能的影響實驗結果。表4中SiamDAH(1)表示分支模塊結構為Conv+Bn+Relu,SiamDAH(2)表示堆疊兩層同樣的結構,SiamDAH(3)表示堆疊三層結構。
表3 卷積核大小對模型AO、SR0.5、SR0.75性能的影響Table 3 Effect of convolution kernel size on AO,SR0.5,SR0.75 model performance %
表4 層數對模型AO、SR0.5、SR0.75性能的影響Table 4 Effect of number of layers on AO,SR0.5,SR0.75 model performance %
從表3可以看出,增加卷積核的大小并未有效帶來性能上的提升。這可以解釋為對于輪廓和內部特征的提取并不需要太大的卷積核或感受野,如對于邊緣的提取,3×3的Sobel算子就能取得不錯的效果。從表4可以看出,堆疊多層結構也沒有帶來性能上的提升,這是因為和增加卷積核尺寸一樣,多層結構也可以理解為增加了模塊的感受野。另一方面,無論是增加卷積核大小,還是堆疊模型深度,都增加了模型的復雜性,從而可能發(fā)生過擬合,影響模型的最終性能。
本文提出了一種基于雙分支孿生網絡的目標跟蹤算法。引入雙分支結構來分別對應的目標內部和輪廓處的特征提取,解決了內外區(qū)域對特征的表達需求不一致的問題。為了應對跟蹤過程中可能出現(xiàn)的目標形變,提出了一種改進的逐像素相關模塊,將目標的空間結構關系轉移到通道上來,后續(xù)模塊不需要太大的感受野就能關注到整個目標的信息,減少了背景信息的干擾,有利于對目標位置的判別和回歸。最后,在OTB2015和GOT-10k上的實驗結果表明,本文提出的算法可以顯著提升基準算法的性能。