張新
(黑龍江工商學院 黑龍江哈爾濱 150000)
隨著互聯網絡的發展,計算機視覺技術也緊跟步伐,而目標跟蹤技術在計算機視覺領域的研究價值也備受關注。目標跟蹤技術與目標檢測技術之間也存在著一些差異。其中,目標檢測技術是判斷檢測對象是否存在預定義類別的語義對象的實例[1],若存在就能輸出實例對象的所占范圍與空間位置。例如,在檢測過程中,將對圖像或者視頻中的目標對象進行標注。然而,目標跟蹤技術則需要在視頻圖像中標注跟蹤對象的空間位置,還要將視頻中連續幀中的標注的目標對象拼接起來,最終能夠清晰地跟蹤目標對象的運動軌跡。隨著深度學習的發展及技術不斷的提高,目標跟蹤技術已經在社會各行業中廣泛應用,例如,廣泛應用于模式識別[2]、無人駕駛、智慧大棚、智慧醫療、智慧教育等領域。本文旨在對基于深度學習的目標跟蹤技術的發展進行梳理,對基于深度學習的目標跟蹤技術的典型方法進行剖析,并論述目標跟蹤技術應用于各領域的數據集,最后對其進行總結與展望。
許多研究人員在多目標跟蹤方面投入了大量的工作,不僅跟蹤算法本身不斷改進,而且被跟蹤對象的建模方法也得到了迅速發展。早期的目標建模工作包括遞歸算法,即利用前一幀的信息預測當前幀的目標位置[3]。然而,在現實生活中,目標在跟蹤過程中的特征分布并不總是高斯分布。為了解決這個問題,粒子濾波方法也稱(序列蒙特卡洛方法)隨之而生。該方法首先應用于單目標跟蹤,然后隨著計算能力的發展,逐漸擴展到多目標跟蹤領域。近年來,在目標檢測方面取得了重大進展,對多目標跟蹤產生了深遠的影響。例如,在粒子濾波器中引入檢測算法以減小漂移,其基本思想是使用離線訓練的檢測器逐幀檢測目標,然后選擇一定的時間窗,將檢測結果與待跟蹤的目標軌跡相關聯。
Benfold等人融合異步HOG檢測、模擬仿真KLT跟蹤和馬爾科夫鏈蒙特卡洛數據關聯在一起,進行多目標跟蹤[4]。該方法構造了異步多線程結構,以滿足實時性要求。在跟蹤過程中,檢測部分是實時性的瓶頸。應用其他方法代替目標檢測也是減少計算時間的解決方案。因此,Possegger 等人提出了一種基于局部高密度3D 的船體重建算法來代替多目標跟蹤中的檢測算法,并采用粒子濾波結合泰森多邊形分割進行跟蹤。
隨著近幾年深度學習算法的發展,計算機視覺任務性能對于外觀特征提取的能力得到了極大的提升。其中,Anton Milan等人在2016年發表的論文中提出基于循環神經網絡的在線多目標跟蹤算法,其主要是針對構建大量且復雜的模型,以及調整大量參數而致使實時性能不佳的問題,并提出了端到端的學習算法的多目標跟蹤方法[5]。端到端的算法結構提高了實時性,但準確率不高,但是其最大貢獻在于為多目標跟蹤技術提供了新的思路與可能。
自2015年發展以來,深度學習技術的發展也進入了高質量發展階段,同時,其也被應用于計算機視覺的各個領域。深度學習在目標跟蹤領域的初始形式是用深度神經網絡提取的特征代替人工提取的特征,并將其應用于相關濾波器的跟蹤框架。深度特征、C-COT、ECO 和STRCF 等技術的應用已經逐漸體現出深度目標學習特征。從深度網絡中提取的目標特征優于人工提取的目標特征,但是也增加了計算量。
Davia Hold 等人于2015年發布的goturn 算法可被視為使用端到端深度學習模型進行目標跟蹤的創始人。Goturn 使用alov300+視頻序列集和ImageNet 的算法技術來檢測數據集,輸入圖像來訓練卷積神經網絡,網絡輸出搜索區域相對于前一幀中的目標位置的變化,以獲得當前幀中的目標位置。本文通過CNN的卷積層,同時傳輸前一幀的目標信息和當前幀的搜索區域,然后通過卷積層的輸出被傳輸到全連接層。整個網絡結構具有典型性,用于提取目標特征的卷積層和回歸算法的全連接層。在跟蹤過程中,不進行模型更新,對網絡參數進行預先訓練。因此,GPU可以運行在100~165幀/s。
2016年,Hyeonseob Nam 等人對MDNet(multidomain network)進行研究[6],深入分析了深度學習目標跟蹤的技術框架,為后續研究提供了參考價值。對于深度學習的目標跟蹤技術,一般都采用圖片數據集,如ImageNet,并對網絡模型VGG 進行訓練,以便于提取特征,作為特征提取器。宋奕兵等人在2017年提出的峰值算法,利用殘差網絡對目標進行跟蹤,通過檢測卷積特征和目標對象的差異,進行殘差學習[7],其原理主要是端到端網絡結構相同,通過卷積神經網絡提取特征,然后利用高斯卷積運算進行濾波,得到響應值,再加入殘差信息,進而保證了高斯響應的質量。
人工神經網絡也可以說是深度學習的先驅,被設計用來模仿人腦中的神經元,用于傳遞和處理信息。如圖1所示。
圖1 人工神經網絡模型
人工神經網絡模型由輸入層、輸出層、隱藏層組成。其中,輸入、輸出層負責數據的傳遞;隱藏層中包括對數據的邏輯運算與處理,一般要求隱藏層5層、10層甚至幾百層。
人工神經網絡的每一層都由大量的節點(神經元)組成,層與層之間有大量的連接,但層中的神經元一般是相互獨立的。深度學習的目的是利用已知數據學習一組模型,以便系統在遇到未知數據時能夠做出預測,這一過程要求神經元具有以下兩個特征。
2.1.1 激活函數
它通常是一個非線性函數,即每個神經元通過該函數對來自其他神經元的原始輸入進行非線性變換,并將其輸出到下一層神經元。由激活函數實現的非線性變換是前向傳播的重要組成部分,常用的激活函數包括Sigmoid、ReLU等[8]。
2.1.2 成本函數
它用于定量評估特定輸入值下神經網絡輸出結果與實際值之間的偏差。通過優化方法,不斷調整各層的權重參數,使最終損耗值最小化,即完成反向傳播。損耗值越小,結果越可靠。
卷積神經網絡是由多個卷積層和多個完全連接的層組成的前饋神經網絡,與其他深度學習網絡相比,它采用共享參數機制來減少需要估計的參數數目。卷積神經網絡與傳統的人工神經網絡相比,卷積層神經網絡主要有以下特征。
2.2.1 權值共享
在傳統的神經網絡中,權重矩陣中的每個元素在計算一個層的輸出時只使用1 次。在卷積網絡中,卷積核的每個元素作用于輸入的每個位置,并且在整個視覺區域中重復一個卷積核。重復濾波器可以在不考慮位置信息的情況下檢測特征,共享權重可以大大減少需要學習的自由參數的數量,從而提高學習效率。
典型的卷積神經網絡模型如圖2所示,從圖中可以看出,輸出圖像的大小為32×32,經過卷積層對圖像進行特征提取,通過多個通道的卷積核對其進行處理,可以得到多張圖片的特征,再經過采樣層,降低網絡訓練參數數量及模型的擬合程度,再經過全連接層,將特征空間映射到類別空間,最后,通過輸出層的徑向基核函數,得到一定的概率即(0-9),最大概率就等同于分類結果。
圖2 卷積神經網絡模型
2.2.2 稀疏連接
傳統的神經網絡使用矩陣乘法建立輸入和輸出之間的聯系,參數矩陣中的每個單獨參數描述了輸入單元和輸出單元之間的相互作用,這意味著每個輸出單元都需要所有的輸入單元參與計算。在卷積網絡中,只有對某些輸入單元進行卷積運算,才能得到一個輸出單元,這是通過使卷積核的大小比輸入的大小小得很多來實現的,與全連接的神經網絡相比,這大大減少了計算量,并且通過多層神經元的積累,卷積濾波器的全局性逐層增加。
棧式自編碼網絡是深度學習網絡非監督性質的一種,其是由多層稀疏自編碼網絡組成,分為編譯器和解碼器。假設觀察的樣本為{y1,y2……yk},其中,自編碼網絡通過對神經元的激活或抑制來獲取稀疏結構,如式(1)所示。
這個公式代表了神經元j的平均活動,以實現網絡稀疏性的限制,設定了參數p及之間的KL距離,便是稀疏性懲罰項,如公式(2)所示:
在目標跟蹤中,N.Wang等人首先利用自編碼器的括號降噪功能,去除了自編碼器的譯碼部分,代之以軟最大分類器。他們提出的這種算法在2013年的VOT比賽中獲得了第五名的成績。該算法的優點是利用離線數據庫在很大程度上解決了訓練樣本不足的問題[9]。
自2013年以來,雖然基于深度學習的目標跟蹤算法取得了一些重大進展,但現實情景往往比評估數據更復雜,目前的跟蹤算法不能滿足魯棒性、實時性和準確性的同樣要求。根據跟蹤問題的本質,在以下3 個方面還有很大的改進空間。
(1)目前,大多數的目標跟蹤算法都是基于深度網絡的,可簡單地將問題看作二分類問題,利用視頻或圖像序列中的有效運動信息,在一定程度上避免了跟蹤點漂移。
(2)在多目標跟蹤過程中,可能會遇到的遮擋和目標相互作用大多是由二維圖像中不同深度目標的前視投影引起的。在三維空間中,任何目標都不存在遮擋相互作用。三維信息的引入可以在目標和背景之間獲得更準確的位置,這對于解決跟蹤中可能出現的模糊問題具有可預測的幫助。因此,基于關節三維信息的多目標跟蹤是一個值得進一步研究的方向。
(3)深層網絡強大的性能能力在所需的計算工作量和跟蹤問題的實時需求之間提供了適當的平衡。