標籤:

SiameseFC:Fully-Convolutional Siamese Networks for Object Tracking

這篇文章講什麼呢,Siamese網路,2016年最新網路,VOT排名12(這張圖是他的,我偷來的,哈哈@YaqiLYU ) 在跟蹤上面效果還是很好的,最主要的是跟蹤速度快,對需要實時效果的有很大的影響。因為最近也在做這一方面的東西,用到了這個,就仔細研究了一下。

論文和代碼地址:Project

說在前面:

Siamese優點:

①那不用多說速度快必須是第一大優點,這個在現在需要實時跟蹤的時代,速度快加精度高必須提的有點;

②使用全卷積的結構,可以輸入任意尺寸的圖片,不必須按照固定大小輸入輸出;

③想再補充一點只能是這個思想了,想法新

—————————————————————————————————————————

人無完人,演算法也沒有絕對好的,有有點當然就有缺點了。

—————————————————————————————————————————

Siamese缺點:

①因為Siamese是屬於模板匹配類演算法,對於突然變化和超出邊界框(圖像)的目標跟蹤失敗;(例如:當目標從正面突然轉到側面,目標還是一個目標,但是跟蹤肯定失敗)

②對於背景雜斑較多,即有太多相似性物體的時候,跟蹤效果也不好(可以參考basketball數據集的跟蹤結果)

—————————————————————————————————————————

一、核心思想

在我個人理解,Siamese就是一個相似度比較(模板匹配也可以,就是這類東西)演算法,比較目標幀中和模板圖片的相似程度,給出相似度最大的位置,就是目標幀中目標所在的位置。

用作者的話說就是離線訓練一個通用的相似學習問題,能夠用在在線跟蹤上面。

二、論文核心

Siamese能夠在學習之後對任意的目標進行跟蹤,這個主要取決於他訓練的數據集。本文中作者使用的訓練集是ImageNet2015。Siamese的主要任務就是學習一個相似度匹配函數F(z,x),計算相同大小的圖像x和模板圖像z之間的相似度,如果兩個圖像塊表示的是相同的目標,返回較大的分數值,否則返回較小的分數值。在新的圖像中,為了找到目標的位置,我們在整張圖片當中找到最大相似度的候選塊當作我們的目標位置。跟蹤當中,模板塊就是在第一幀中給出的目標位置和大小。使用訓練集進行訓練得到函數F。

全卷積Siamese結構

本文提出的Siamese結構是全卷積網路結構,這樣的好處是能夠輸入輸出任意大小的結構。不用受限制於要輸入相同大小的圖片尺寸,可以在跟蹤的時候使用全圖作為輸入去比較,找到目標的位置,保證目標不丟失。

對於文中定義的全卷積函數有點懵,難道是說的對於任意的平移變換操作,變換前後結果也對應變換的位置?(OMG,誰來給我解釋一下這兩個公式~~~~必定點名感謝!!!)

變換操作:

定義一個函數h,如果有以下等式成立,則說函數h是全卷積的。

這個是文中的定義,我的理解是對於任意的變換操作,函數h能夠使得變換操作前後,經過h之後的值和原始值經過h再進行變換操作的結果是一樣的。

為了達到這個目的,使用一個卷積函數Ф對圖像進行卷積,然後使用互相層進行融合結果:

Siamese網路的輸出不是一個單一的分數值,而是一個分數圖,這個分數圖是定義在一個有限的網格D上,如圖1 中所示。分數圖中的數值代表的是每一個以這個位置為中心點,預設目標大小區域的圖像塊和目標模板的相似度值。

在跟蹤的過程當中,前一幀的圖像塊就是目標模板圖像塊,當前幀圖像就是目標圖像,輸入到網路當中,找到分數圖當中分數值最大的一個,然後再乘上步長,找到在當前幀當中目標的位置所在。

三、訓練網路

就是使用ImageNet數據集中的圖片,把標註的目標位置作為模板樣本,把整張圖片作為搜索樣本對網路進行訓練,得到最終的參數。訓練數據的樣式如圖2 所示。

使用判別式方法對網路進行訓練在正樣本和負樣本對上

損失函數為

v是真實值對於每一個,y是標籤。

訓練使用的數據為數據對,包含一個樣本圖像和一個大的搜索圖像。經過網路產生一個分數圖,在每一個搜索圖上都會有很多對匹配結果,定義每一個score map 的損失函數:

最終參數θ可以使用隨機梯度下降解決最小化問題:

作者訓練網路使用的訓練數據集對。在訓練的過程當中,不考慮對目標進行分類,這樣可以學習到通用的參數,可以對任意的目標使用和跟蹤。同時作者還有提到,對目標比較接近的,對目標的影響比較大。由於網路是對稱的,可以使用不同大小的樣本圖片,之所以在這裡使用相同大小的目的是簡單。

四、實驗結果

論文當中對給出的實驗結果都進行解釋了,這些我就不多敘述了,我說一點我自己跑出來的結果。下面三張圖是我用作者給出來的結果跑出來的圖,(紅色是使用五個尺度的結果,綠色是三個尺度的結果)圖中可以看出來,使用3個尺度和5個尺度在總體效果和尺度變化數據集上基本沒有什麼影響,但是不知道為什麼在低解析度的數據集上效果會差的這麼明顯,這個是我沒有想明白的一點。但是在速度上兩個可是差的還挺多的30FPS呢,所以,對尺度沒什麼要求的同學,可以考慮不適用尺度變化,或者減小尺度變化的數量,提升速度的同時精度也沒怎麼變化。


推薦閱讀:

[行為檢測]R-C3D-Resgion Convolutional 3D Network for Temporal Activity Detection
【OpenCV圖像處理】總緒論
10 大深度學習架構:計算機視覺優秀從業者必備(附代碼實現)
無人機避障的技術實現方式
HOG特徵如何可視化?

TAG:计算机视觉 |