論文筆記-Fully-Convolutional Siamese Networks for Object Tracking

Fully-Convolutional Siamese Networks for Object Tracking

  • 摘要

任意對象跟蹤的問題傳統上通過僅在線學習對象外觀的模型來解決,使用視頻本身作爲唯一的訓練數據。 儘管這些方法取得了成功,但它們的在線方法本身就限制了他們可以學習的模型的豐富性。最近若干利用深度卷積網絡的表達能力的嘗試已經進行了。 然而,當事先不知道要跟蹤的對象時,有必要在線執行隨機梯度下降以適應網絡的權重,這會嚴重損害系統的速度。在這篇文章中,我們爲ILSVRC15數據集中的一個基本跟蹤算法配備了一個新的完全卷積連體網絡,用於端到端訓練,用於視頻中的目標檢測。 我們的跟蹤器以超出實時的幀速率運行,儘管極其簡單,但在多個基準測試中實現了最先進的性能。

  • 1.介紹

我們考慮在視頻中跟蹤任意目標的問題,其中目標僅由第一幀中的矩形標識。 由於可以請求算法跟蹤任何任意目標,因此不可能提前收集好數據並訓練特定的檢測器。

多年來,這種情況最成功的範例是使用從視頻本身中提取的示例,以在線方式學習目標的外觀模型。這在很大程度上歸功於TLD ,Struck和KCF等方法的證明。 然而,使用僅來自當前視頻的數據的明顯缺陷是隻能學習相對簡單的模型。雖然計算機視覺中的其他問題已經越來越普遍地採用從大型監督數據集訓練的深度卷積網絡,但監督數據的稀缺性和實時操作的約束,阻礙了在這種一個視頻學習一個探測器的範式中應用深度學習。

最近的一些研究旨在使用預先訓練的深度網絡來克服這種限制,該網絡是針對不同但相關的任務而學習的。 這些方法要麼使用網絡的內部表示作爲特徵應用“淺”(shallow)方法(例如相關濾波器),要麼執行SGD(隨機梯度下降)以微調網絡的多個層。 然而淺層方法的使用並未充分利用端到端學習的優勢,並且在跟蹤期間應用SGD以實現最新結果的方法卻無法實時運行。

我們提出一種替代方法:深度網絡被訓練來解決在初始的離線階段中的更一般的相似性學習問題,然後在跟蹤期間簡單地在線評估該功能。 本文的關鍵貢獻是證明這種方法在速度遠遠超過幀速率要求的現代跟蹤基準測試中表現出了非常具有競爭力的性能。 具體來說,我們訓練一個孿生(Siamese)網絡,以在更大的搜索圖像中定位示例圖像。 另一個貢獻是一種新穎的孿生(Siamese)網絡結構,它對搜索圖像進行完全卷積:使用雙線性層實現密集和有效的滑動窗口評估,並對其兩個輸入進行互相關運算。

我們認爲相似性學習方法相對被忽略了,因爲在跟蹤社區中無法找到大量標記數據集。 實際上,直到最近,可用數據集僅包含幾百個已發佈的視頻。 然而,我們認爲在視頻(以下稱爲ImageNet視頻)中出現用於物體檢測的ILSVRC數據集可以訓練這樣的模型。此外,訓練和測試使用來自同一領域的視頻進行跟蹤的深度模型的公平性是一個爭議點,因爲VOT委員會最近已經禁止這樣做。 我們展示了我們的模型從ImageNet視頻域推廣到ALOV / OTB / VOT 域,使得跟蹤基準的視頻可以保留用於測試目的。

  • 2.用於跟蹤的深度相似性學習

可以使用相似性學習來處理學習如何跟蹤任意目標。我們建議學習函數f(z,x),其將示例圖像z與相同大小的候選圖像x進行比較,並且如果兩個圖像描繪相同的對象則返回高分,否則返回低分。爲了在新圖像中找到對象的位置,我們可以窮盡地測試所有可能的位置,並選擇與對象的過去的外觀具有最大相似性的候選者。在實驗中,我們將簡單地使用對象的初始外觀作爲示例。 將從具有標記的對象軌跡的視頻的數據集中學習函數f。

鑑於它們在計算機視覺方面的廣泛成功,我們將使用深度卷積網絡作爲函數f。使用Siamese架構解決了使用深度卷積網絡進行相似性學習的問題。 孿生(Siamese)網絡對兩個輸入應用相同的變換t,然後根據f (z, x) = g(t(z), t(x))使用另一個函數g來組合它們的表示。 當函數g是簡單距離或相似性度量時,函數t可以被認爲是嵌入。深度孿生(Siamese)網絡先前已應用於面部驗證、關鍵點描述符學習和一次性字符識別等任務。譯者注:千萬注意整個Siamese Network對應的是相似性度量方式,不僅僅是最後一層FC Layer,而是包括了ConvNet。所以在對ConvNet模型進行訓練時,就是一個學習相似性度量的過程。雖然看起來ConvNet是在做特徵提取的工作,但實際上他就是Siamese Network作爲相似性度量的一部分。

2.1全卷積孿生網絡架構

我們提出了一種相對於候選圖像x完全卷積的孿生(Siamese)架構。我們說如果一個函數與平移相關,那麼它就是卷積的。爲了給出更精確的定義,引入L_T來表示translation算子(L_T x)[u] = x [u - T]。如果對於任何平移T有h(Lk_T x) = L_T h(x),則將信號映射到信號的函數h是有着整數步長k的卷積的函數(當x是有限信號時,只需要保持輸出的有效區域)。譯者注:由此將目標目標對搜索區域逐點進行相似度計算的過程視爲卷積運算,所以在算法實現上,是將目標模版z與搜索區域x進行卷積運算,由此得到反映相似度度量的score map。Siamese Network提供的實際上是一種相似性度量。

完全卷積網絡的優點是,我們可以提供更大的搜索圖像作爲網絡的輸入,而不是相同大小的候選圖像,它將在一次評估中計算密集網格上所有轉化的子窗口(sub-windows 這裏指的應該是候選區域)的相似性。

爲了實現這一點,我們使用卷積嵌入函數t並使用互相關層組合得到的特徵圖,f(z,x)=t(z)*t(x)+b1 ,其中b1表示在每個位置取值爲b(b屬於R)的信號。該網絡的輸出不是單個分數,而是在有限網格D(D包含於Z^ 2)上定義的分數圖,如圖1所示。請注意,嵌入函數的輸出是具有空間支持的特徵映射,而不是普通向量。 同樣的技術已應用到了現代立體匹配的工作中。在跟蹤期間,我們使用以目標的先前位置爲中心的搜索圖像。 最大分數相對於分數圖中心的位置乘以網絡中設定的步長,可以得到目標在幀與幀之間的位移。 通過組裝小批量的縮放圖像,在單個前向通道中搜索多個標度。

使用互相關運算結合特徵圖並在較大的搜索圖像上對網絡一次評估(在一個較大的搜索圖像上,對兩個特徵圖,其中一個特徵圖來自較大的搜索圖像,另一個特徵圖來自要匹配的目標模版,進行互相關運算),在數學上等同於使用內積運算去結合特徵圖,並且獨立地評估每個在轉換的子窗(sub-windows)上的網絡(對兩個特徵圖,其中一個特徵圖較大的搜索區域通過搜索窗滑動平移的方式得到搜索子窗,另一個特徵圖來自於要匹配的目標模版,進行內積運算,並且將搜索窗在較大的搜索區域上平移,得到較大搜索區域中各個位置圖像與目標模版圖像的匹配程度值圖)。 然而,互相關層提供了一種非常簡單的方法,可以在有conv-net庫的框架內有效地實現此操作。 這在測試期間是有用的,同時它也可以在訓練期間被利用。譯者注:對這段話的總結爲,將目標模版對應的特徵圖和較大搜索區域對應圖像的特徵圖進行互相關運算的結果,和使用滑動窗機制,在較大的搜索區域對應圖像上獲取各個位置對應的搜索子窗的圖像,並獲取特徵圖,再將這些特徵圖一一對目標模版對應的特徵圖進行內積運算,組合各個內積運算的結果得到的整個搜索區域圖像對應的結果是一致的。而互相關運算,可以視爲卷積運算。

2.2用大的搜索圖像進行訓練

譯者注:對訓練後的模型進行遷移。SiamFC中並沒有引進在線學習的模塊。

我們採用discriminative方法,用正負對和使用logistic loss作爲損失函數對來訓練網絡。l(y, v) = log(1 + exp(-yv))。其中v是單個樣本-候選對的實值得分,y(y屬於{+ 1,1})是其真實的標籤(ground-truth)。通過使用包含示例圖像和更大搜索圖像的對,我們在訓練期間利用了網絡的完全卷積性質。這將產生一個由得分v組成的圖D(D屬於R),每對都能有效地產生許多例子。我們將分數圖(score map)的損失定義爲個體損失的平均值,L(y, v) = (1/|D|) * sigma_u(l(y[u], v[u])),要求分數圖中每個位置u都有真實標籤y [u](y屬於{+1, 1})。通過將隨機梯度下降(SGD)應用於問題來獲得卷積網絡的參數theta。argmin_theta E{L(y,f(z,x;theta))}。

通過提取以目標爲中心的示例和搜索圖像,從註釋視頻的數據集中獲得對,如圖2所示。圖像是從視頻的兩個幀中提取的,這兩個幀都包含對象並且最多相隔T幀, 訓練期間忽略對象的類。在不破壞圖像的縱橫比的情況下對每個圖像內的對象的比例進行歸一化。如果得分圖的元素在中心的半徑R內(考慮網絡的步幅k),則認爲分數圖的元素屬於正例。分數圖中的正負示例的損失被加權以消除類的不平衡。

由於我們的網絡是完全卷積的(Fully-Convolutional),因此不存在它爲中心的子窗口(sub-windows)學習偏差的風險。 我們認爲考慮以目標爲中心的搜索圖像是有效的,因爲最困難的子窗口以及對跟蹤器性能影響最大的子窗口可能是與目標相鄰的子窗口。

注意,由於網絡是對稱的f(z,x) = f(x,z),因此它實際上也是示例中的完全卷積(Fully-Convolutional)。 雖然這允許我們在理論上對不同的對象使用不同尺寸的示例圖像,但我們假設統一尺寸,因爲它簡化了小批量實現。 但是,這種假設將來可以放寬。

2.3用ImageNet Vedio來進行跟蹤

2.4實際考慮

數據集規劃

訓練期間,我們採用127 x 127的示例圖像,並搜索255 x 255像素的圖像。加上附加邊緣,使得圖像縮放後例如Bounding Box具有固定的區域。更確切地說,如果緊密邊界框(tight bounding box)具有大小(w,h)並且上下文context邊距是p,則選擇比例因子s使得縮放矩形的面積等於常數 s(w+2p) x s(h+2p)=A。譯者注:s爲scale,縮放尺度大小。且注意這是在訓練期間。

我們使用示例圖像A = 127^2的區域並將上下文context的量設置爲平均維度的一半p = (w + h)/4。 每幀的示例和搜索圖像都被提取出來以避免在訓練期間調整圖像大小。 在這項工作的初步版本中,我們採用了一些啓發式方法來限制從中提取訓練數據的幀數。 相反,對於本文的實驗,我們使用了ImageNet Video的所有4417個視頻,其中包含超過200萬個標記的邊界框。

網絡架構

我們採用的embedding function t的體系結構類似於Krizhevsky等人的網絡的卷積部分。參數和激活函數的尺寸在表1中給出。在前兩個卷積層之後使用最大池化層。 除了conv5(最後一層)之外,每個卷積層都遵循ReLU非線性。在訓練期間,在每個線性層之後立即插入批標準化(Batch Normalization)。最終表示(representation)的步幅是8。 該設計的一個重要方面是在網絡中沒有引入填充。 雖然這是圖像分類中的常見做法,但它違反了方程式的完全卷積性質。

跟蹤算法

由於我們的目的是證明我們完全卷積的Siamese網絡的功效及其在ImageNet Video上訓練時的泛化能力,我們使用極其簡單的算法來執行跟蹤。與更復雜的跟蹤器不同,我們不更新模型或維護過去外觀的記憶,我們不包含額外的線索,如光流或顏色直方圖,我們不會使用邊界框迴歸來改進我們的預測。然而,儘管他很簡單,但是當配備我們的在線學習的相似性度量時,跟蹤算法實現了令人驚訝的良好結果。

在在線部分,我們確實結合了一些基本的時間約束:我們只在大約其先前大小的四倍的區域內搜索對象,並且在分數圖中添加餘弦窗口以懲罰大的位移。通過處理搜索圖像的若干縮放版本來實現通過比例空間來進行跟蹤。 規模的任何變化都會受到懲罰,當前規模的更新也會受到抑制。

  • 3.相關工作

最近的一些研究試圖針對物體跟蹤問題訓練遞歸神經網絡(RNN)。 甘等人,通過訓練RNN預測每個幀中目標的絕對位置,Kahou等人類似地訓練RNN,使用不可靠的注意機制進行跟蹤。這些方法尚未在現代基準測試中顯示出有競爭力的結果,但它無疑是未來研究的一個有希望的途徑。 我們注意到,通過將孿生(Siamese)網絡解釋爲在長度爲2的序列上訓練和評估的展開的RNN,可以在此方法和我們的方法之間繪製一個有趣的平行線。 因此,孿生網絡可以作爲重複模型的強大初始化。Denil等人,使用粒子濾波器來跟蹤目標,該粒子濾波器使用學習距離度量來比較當前外觀與第一幀的外觀。 但是,它們的距離度量與我們的距離度量差異很大。 它們不是比較整個物體的圖像,而是計算固定點間的距離(目標邊界框內的小區域的局部)。爲了學習距離度量,他們訓練受限制的玻爾茲曼機器(RBM),然後使用隱藏激活之間的歐幾里德距離進行兩次固定。雖然RBM是非監督的,但他們建議在對象的圖像中心隨機固定訓練RBM以進行檢測。 這必須在線執行或在離線階段執行,並瞭解要跟蹤的對象。 在跟蹤對象時,他們學習了一種隨機策略,用於選擇特定於該對象的注視,使用不確定性作爲獎勵信號。除了MNIST數字的合成序列之外,該方法僅在面部和人物跟蹤問題上得到定性證明。

雖然爲每個新視頻從頭開始訓練深度卷積網絡是不可行的,但有幾項工作已經研究了在測試時從預先訓練的參數進行微調的可行性。SO-DLT和MDNet都在一個類似的檢測任務中訓練卷積網絡,然後在測試時使用SGD學習一個探測器,其中包含從視頻中提取的例子跟蹤作爲探測器學習範例。由於在許多示例中評估前向和後向傳遞的計算負擔,這些方法不能以幀速率操作。 利用卷積網進行跟蹤的另一種方法是使用預先訓練的卷積網絡的內部表示作爲特徵來應用傳統的淺層方法。雖然這種風格的跟蹤器如Ma等人的DeepSRDCF和FCNT取得了很好的成果,由於卷積網絡表示的維度相對較高,它們無法實現幀率運算。

在我們自己的工作的同時,其他一些作者也提出了通過學習圖像對的函數來使用目標跟蹤的網絡。 Held等人介紹了GOTURN,其中訓練了一個網絡,以便從兩個圖像直接回歸到第一個圖像中所示的對象的第二個圖像中的位置。預測矩形而不是位置具有以下優點:可以在不藉助於詳盡評估的情況下處理尺度和縱橫比的變化。 然而,它們的方法的缺點是它不具有對第二圖像的平移的內在不變性。這意味着必須在所有位置顯示網絡示例,這是通過相當大的數據集擴充來實現的。Chen等人訓練了將示例和較大搜索區域映射到響應圖的網絡。 然而,由於最終的層是完全連接的,因此它們的方法也缺乏對第二圖像的平移的不變性。與Held等人類似,這是不方便的,因爲訓練集必須代表所有對象的所有翻譯。 他們的方法被命名爲YCNN用於網絡的Y形狀。 與我們的方法不同,它們無法在訓練後動態調整搜索區域的大小。 陶等人建議訓練一個孿生(Siamese)網絡,以識別與初始物體外觀相匹配的候選圖像位置,方法稱爲SINT(Siamese INstance search Tracker)。與我們的方法相反,它們不採用相對於搜索圖像完全卷積的架構。 相反,在測試時,他們在Struck中對不同半徑的圓均勻地採樣邊界框。此外,它們結合光流和邊界框迴歸來改善結果。 爲了提高系統的計算速度,他們採用感興趣區域(RoI)池化來有效地檢查許多重疊的子窗口。 儘管進行了這種優化,但每秒2幀,整個系統仍然遠非實時。上面訓練視頻序列的所有競爭方法(MD-Net,SINT,GOTURN)使用屬於基準使用的相同ALOV / OTB / VOT域的訓練數據。 由於擔心過度擬合基準測試中的場景和對象,這種做法已經在VOT挑戰中被徵用。 因此,我們工作的一個重要貢獻是證明可以在不使用與測試集相同的分佈的視頻的情況下訓練網絡以進行有效的對象跟蹤。

  • 4.實驗

4.1實現細節

訓練

通過最小化來找到embedding function的參數,使用MatConvNet直接進行SGD。參數的初始值遵循高斯分佈,根據改進的Xavier方法進行縮放。訓練進行了50多個時期,每個時期由50,000個採樣對組成。使用尺寸爲8的小批量估計每次迭代的梯度,並且在每個週期幾何地從10^-2到10^-5對學習速率進行退火。

跟蹤

如前所述,在線階段是刻意的簡約。 初始對象外觀的嵌入函數(embedding function) t(z)被計算一次,並且被卷積地與後續幀的子窗口進行比較。 我們發現通過簡單的策略(如線性插值)在線更新(特徵表示)樣本並沒有獲得太多的性能,因此我們將其保持固定。我們發現,使用雙三次插值從17 x 17到272 x 272在分數圖進行上採樣,由於原始地圖相對粗糙,因此可以實現更準確的定位。爲了處理比例變化,我們還搜索五個比例的對象1.025^{-2,-1,0,1,2},並通過線性插值更新比例,係數爲0.35,以提供阻尼。爲了證明我們的實驗結果可重複,我們共享訓練和跟蹤代碼,以及腳本,以在http://www.robots.ox.ac.uk/~luca/siamese-fc.html生成精選數據集。在配備單個NVIDIA GeForce GTX Titan X和4.0GHz英特爾酷睿i7-4790K的機器上,我們的完整在線跟蹤管道分別以每秒86和58幀的速度運行,分別搜索3和5級。

4.2評估

我們評估了我們的簡單跟蹤器的兩個變體:SiamFC(Siamese Fully-Convolutional)和SiamFC-3s,它們搜索3個等級而不是5個等級。

4.3數據集尺寸

表3說明了用於訓練Siamese網絡的數據集的大小如何極大地影響性能。 當將數據集的大小從5%增加到100%時,預期的平均重疊(在VOT-15上測量)從0.168穩定地提高到0.274。 這一發現表明,使用更大的視頻數據集可以進一步提高性能。 實際上,即使200萬個有監督的邊界框看起來很龐大,也不應忘記它們仍然屬於相對適中數量的視頻,至少與通常用於訓練網絡的數據量相比。

  • 5結論

在這項工作中,我們偏離了跟蹤中使用的傳統在線學習方法,並展示了一種側重於在離線階段學習強嵌入的替代方法。 與它們在分類設置中的使用不同,我們證明了對於跟蹤應用,Siamese全卷積深度網絡能夠更有效地使用可用數據。 這既可以在測試時進行,也可以通過執行有效的空間搜索,也可以在訓練時進行,其中每個子窗口都能有效地代表一個有用的樣本,而且成本很低。 實驗表明,深度嵌入爲在線跟蹤器提供了自然豐富的功能來源,並使簡單的測試時策略能夠很好地運行。 我們相信這種方法是對更復雜的在線跟蹤方法的補充,並期望未來的工作能夠更徹底地探索這種關係。

==================================================================================================

總結 :

一、總體框架

圖中z代表的是模板圖像,算法中使用的是第一幀的groundtruth;x代表的是search region,代表在後面的待跟蹤幀中的候選框搜索區域;ϕϕ代表的是一種特徵映射操作,將原始圖像映射到特定的特徵空間,文中採用的是CNN中的卷積層和pooling層;6*6*128代表z經過ϕϕ後得到的特徵,是一個128通道6*6大小feature,同理,22*22*128是x經過ϕϕ後的特徵;後面的*代表卷積操作,讓22*22*128的feature被6*6*128的卷積核卷積,得到一個17*17的score map,代表着search region中各個位置與模板相似度值。

從圖一和文章題目我們可以很容易理解算法的框架,算法本身是比較搜索區域與目標模板的相似度,最後得到搜索去區域的score map。其實從原理上來說,這種方法和相關性濾波的方法很相似。其在搜索區域中逐點的目標模板進行匹配,將這種逐點平移匹配計算相似度的方法看成是一種卷積,然後在卷積結果中找到相似度值最大的點,作爲新的目標的中心。

上圖所畫的ϕϕ其實是CNN中的一部分,並且兩個ϕϕ的網絡結構是一樣的,這是一種典型的孿生神經網絡,並且在整個模型中只有conv層和pooling層,因此這也是一種典型的全卷積(fully-convolutional)神經網絡。

二、具體實現

1、損失函數

在訓練模型的時肯定需要損失函數,並通過最小化損失函數來獲取最優模型。本文算法爲了構造有效的損失函數,對搜索區域的位置點進行了正負樣本的區分,即目標一定範圍內的點作爲正樣本,這個範圍外的點作爲負樣本,例如圖1中最右側生成的score map中,紅色點即正樣本,藍色點爲負樣本,他們都對應於search region中的紅色矩形區域和藍色矩形區域。文章採用的是logistic loss,具體的損失函數形式如下:
對於score map中了每個點的損失:
l(y,v)=log(1+exp(−yv))
其中v是score map中每個點真實值,y∈{+1,−1}是這個點所對應的標籤。

如果score map上的元素根據以下條件判斷y值是1 還是-1 :

上面的是score map中每個點的loss值,而對於score map整體的loss,則採用的是全部點的loss的均值。即

這裏的u∈D代表score map中的位置。
有了損失函數,那就可以用SGD對模型進行訓練。

2、訓練所用數據庫

與以前的算法不一樣的是,起訓練的數據庫並不是傳統的VOT,ALOV,OTB這三個跟蹤benchmark,而是ILSVRC(ImageNet Large Scale Visual Recognition Challenge)中用於視頻目標檢測中的視頻,這個數據集一共有4500個videos,4500個,4500….視頻的每一幀都有標記的groundtruth,4500是什麼概念呢,VOT,ALOV,OTB這三個數據集加起來也就不到500個視頻,500個,500…..

3、網絡結構

整個網絡結構類似與AlexNet,但是沒有最後的全連接層,只有前面的卷積層和pooling層。整個網絡結構入上表,其中pooling層採用的是max-pooling,每個卷積層後面都有一個ReLU非線性激活層,但是第五層沒有。另外,在訓練的時候,每個ReLU層前都使用了batch normalization,用於降低過擬合的風險。
圖2  網絡結構
 

4、一些實現細節

訓練採用的框架是MatConvNet
訓練採用的優化算法就是batch SGD,batch大小是8
跟蹤時直接對score map進行線性插值,將17*17的score map擴大爲272*272,這樣原來score map中響應值最大的點映射回272*272目標位置

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章