0

字幕組雙語原文:通過視頻著色進行自監督跟蹤
英語原文:Self-Supervised Tracking via Video Colorization
翻譯:雷鋒字幕組(李珺毅)
在本文中,我們將學習一種新穎的自監督目標跟蹤方法。自我監督是模型自我學習的一種方法 ?,這本身就使得這個話題非常有趣。在這里,我們將看到如何學會自己跟蹤對象。我們將從基本的目標跟蹤開始,然后討論什么是計算機視覺的自我監督學習,最后詳細討論這種方法。
此方法的實現可以在這里找到。
用簡單的語言描述它,可以理解為識別整個視頻序列中唯一的對象。要跟蹤的對象通常被稱為目標對象。跟蹤可以通過邊界框或實例分割來完成。有兩種類型的公共對象跟蹤挑戰。
單目標跟蹤:在整個視頻序列中跟蹤感興趣的目標。如VOT挑戰。
多目標跟蹤:在整個視頻序列中跟蹤多個感興趣的目標,例如 MOT 挑戰。
一些著名經典的用于解決目標跟蹤CV算法的是 :
Mean shift
Optical flow
Kalman filters
SORT是最著名的多目標跟蹤算法之一,它以卡爾曼濾波器為核心,并且非常成功。
隨著深度學習時代的到來,非常創新的研究進入了該研究領域,并且深度學習方法成功地勝過了傳統的CV方法來應對公共跟蹤挑戰。 盡管在公共挑戰方面取得了巨大成功,但深度學習仍在努力為現實世界中的問題陳述提供通用的解決方案。
在訓練深度CNN模型時,我們面臨的主要挑戰之一是訓練數據。
訓練數據:深度學習方法需要大量數據,而這幾乎每次都成為瓶頸。此外,像多目標跟蹤這樣的任務很難注釋,而且這個過程變得不切實際,而且代價昂貴。

深度模型數據永遠不嫌多
我們都知道監督和非監督學習技術。這是一種被稱為自監督學習的新型學習方式。在這些類型的學習中,我們試著利用數據中已經存在的信息,而不是任何外部標簽,或者有時我們說模型是自己學習的。 在現實中,我們所做的是訓練CNN模型去完成一些其他的任務,這些任務間接地幫助我們實現目標,這個模型自我監督。這些任務稱為”代理任務”或“借口任務”。
代理任務的幾個例子是:
顏色化

CNN模型學習從灰度圖像預測顏色。[資源鏈接]
將圖像補丁放在正確的位置

從圖像中提取補丁并將其打亂。模型學習如何解開拼圖并按照正確 的順序排列,如圖3所示。[資源鏈接]
按正確的順序放置視頻幀

該模型學習在視頻序列中對打亂的幀進行排序。[資源鏈接]
許多這樣的任務可以用作計算機視覺問題的代理任務。此類訓練的一個主要好處是,訓練不需要手動注釋數據,并且適合解決現實生活中的用例。
我們已經了解了什么是自監督模型,您一定已經猜到了我們將使用著色作為代理任務的名稱。
著色是代理任務或借口任務,目標跟蹤是主要任務或下游任務。采用大規模的無標記視頻對模型進行訓練,不需要人工進行任何單一像素的標注。該模型利用視頻的時間相干性對灰度視頻進行著色。這看起來可能有點混亂,但我會慢慢給大家講明白。
我們將取兩個幀,一個目標幀(時刻t),一個參考幀(時刻t-1),并通過模型。該模型期望通過對參考幀顏色的先驗知識來預測目標幀的顏色。通過這種方式,模型內部學會了指向正確的區域,以便從參考框架復制顏色,如圖所示。這種指向機制可以用作推理期間的跟蹤機制,我們將很快看到如何做到這一點。

模型接收一個彩色幀和一個灰度視頻作為輸入,并預測下一幀的顏色。模型學會從參考系復制顏色,這使得跟蹤機制可以在沒有人類監督的情況下學習。[資源鏈接]
我們不復制網絡中的顏色,而是訓練我們的CNN網絡學習目標幀的像素與參考幀的像素之間的相似度(相似度在灰度像素之間),然后線性組合時使用此相似度矩陣參考幀中的真實顏色會給出預測的顏色。從數學上講,令C?為參考幀中每個像素i的真實顏色,而C?為目標幀中每個像素j的真實顏色。 該模型給出了目標框架和參考框架之間的相似度矩陣A??。 我們可以通過線性組合獲得預測的顏色y?。 
公式1:預測顏色與參考顏色的線性組合
無論是圖像、參考幀還是目標幀都經過模型學習后對每個像素進行了低層次的嵌入,這里f?是像素i在參考幀中的嵌入,類似地,f是像素j在目標幀中的嵌入。然后,計算相似度矩陣:

公式2:用softmax歸一化的內積相似度。
相似度矩陣中的每一行代表參考幀的所有像素i和目標幀的像素j之間的相似性,因此為了使總權重為1,我們對每一行應用softmax。
| Lets look an example with dimension to make it clear,we try to find a similarity matrix of 1 pixel from target frame. An illustration of this example is shown below.Consider reference image and target image, size (5, 5) => (25,1)for each pixel, cnn gives embedding of size (64, 1) , embedding for reference frame, size (64, 25) , embedding for target frame, size (64, 25) , embedding for 3rd pixel in target frame, size (64, 1)Similarity Matrix, between reference frame and target pixel, j=2 =softmax , size (25, 64) (64, 1) => (25,1) => (5, 5) we get a similarity between all the ref pixels and a target pixel at j=2.Colorization, To copy the color (here, colours are not RGB but quantized colour of with 1 channel) from reference frame, , Colors of reference frame size (5, 5) => (25, 1) , Similarity matrix, size (5, 5) => (1, 25)Predicted color at j=2, , size (1, 25) (25, 1) => (1, 1)From the similarity matrix in below figure, we can see reference color at i=1 is dominant(0.46), thus we have a color copied for target, j=2 from reference, i=1PS:1. ? denotes transpose2. matrix indices starts from 0 |

(a)為2幀大小(5,5),(b)為參考幀嵌入與目標像素在j =2處嵌入的內積,(c) softmax后的相似度矩陣,(d)相似度矩陣與參考幀真顏色的線性組合[資源鏈接]
類似地,對于目標幀中的每個目標像素((5,5)=> 25個像素),我們將具有大小為(5,5)的相似度矩陣,即大小為(5,5,25)的完整相似度矩陣A?? =(25,25)。
在實現中,我們將使用(256 x 256)圖像擴展相同的概念。

第一行顯示原始幀,第二行顯示來自實驗室空間的ab顏色通道。第三行將顏色空間量化到離散的容器中,并打亂顏色,使效果更加明顯。[資源鏈接]
顏色的空間頻率較低,因此我們可以處理低分辨率的幀。 我們不需要C(255,3)顏色組合,因此我們創建16個聚類并將顏色空間量化為這些聚類。 現在,我們只有16種獨特的顏色簇(請參見上圖的第三列)。聚類使用k均值完成。 16個群集將丟失一些顏色信息,但足以識別對象。 我們可以增加聚類的數量來提高著色的精度,但要以增加計算為代價。

為了將圖像量化為簇,我們將使用LAB顏色空間而不是RGB顏色空間的AB通道。 上圖顯示了RGB和LAB通道間的相關性,我們可以從圖中得出結論:
RGB往往比LAB具有更多的相關性。
LAB將迫使模型學習不變性,它將迫使其學習更強大的表示形式,而不是依賴于本地顏色信息。
可以使用sklearn的KMeans軟件包進行聚類。

這類將用于制作顏色的簇,我們將把它存儲為一個pickle。
注意:我使用pytorch來實現,它遵循(N,C,H,W)格式。 處理矩陣重塑時,請記住這一點。 如果您對形狀有任何疑問,請隨時與我們聯系。


該模型學習從參考幀為視頻幀著色。 [資源鏈接]
該模型的輸入是四個灰度視頻幀,其下采樣為256×256。三個參考幀和一個目標幀。
首先,我們將所有培訓視頻減少到6fps。 然后預處理框架以創建兩個不同的集合。 一種用于CNN模型,另一種用于著色任務。
| - Video fps is reduced to 6 fpsSET 1 - for CNN Model- Down sampled to 256 x 256- Normalise to have intensities between [-1, 1]SET 2 - for Colourization- Convert to LAB colour space- Downsample to 32 x 32- Quantize in 16 clusters using k-means- Create one-hot vector corresponding to the nearest cluster centroid |
模型結構
使用的主干是ResNet-18,因此結果與其他方法相當。ResNet-18的最后一層被更新為尺寸輸出為32 x 32 x 256 然后將ResNet-18的輸出傳遞到3D轉換網絡中,最終輸出為32 x 32 x64。(下面的代碼塊顯示了從ResNet-18網絡獲取輸入的3D網絡)
訓練可以分為以下三個步驟:
1.網絡傳遞
我們將使用SET 1的預處理幀,即通過網絡傳遞大小為(256 x 256)的4個灰度幀,以獲得具有64個通道的(32 x 32)空間圖。 對于(32 x 32)圖像的每個像素,這可以解釋為64維嵌入。 因此,我們有四個這樣的像素級嵌入,三個用于參考圖像,一個用于目標圖像 。

2. 相似度矩陣
通過這五個嵌入,我們在參考幀和目標幀之間找到了一個相似矩陣。 對于目標幀中的像素,我們將獲得一個相似度值,其中所有三個參考幀中的所有像素均通過softmax歸一化為1。

3.色處理
我們將使用SET 2的預處理幀,即將四個降采樣為(32 x 32)并量化的幀用于著色。 將三個參考幀與相似度矩陣組合以獲得預測的量化幀。 我們發現了具有預測顏色的交叉熵損失(請記住,我們將幀量化為16個簇,現在我們有16種類別。我們發現了這些顏色的多類別交叉熵損失。)




跟蹤預測的例子 [資源鏈接]
在學習了著色任務之后,我們有了一個可以為一對目標框架和參考框架計算相似度矩陣A??的模型。 現在,對于跟蹤的實際任務,我們利用模型在標簽空間中為非參數的屬性。我們只是簡單地使用等式1進行傳播,但是我們傳播類別的分布而不是傳播顏色。對于第一幀,我們具有真實框掩碼,我們將所有實例掩碼布置為一獨熱矢量c?(這類似于訓練期間使用的量化顏色的一獨熱矢量)。將c?與我們的相似性矩陣A相結合,以找到掩碼的新位置,但請記住,隨后幾幀中的c?預測將變得很柔和,表明模型的置信度。 要做出艱難的決定,我們可以簡單地選擇最自信的類別。 推理算法為:
| WHILE (target frame, reference frames) in the videostep 1. Pass the target and reference frames through CNN modelstep 2. Find Similarity Matrixstep 3. Take ground truth object masks as one-hot encodingstep 4. Linear combine the object masks with similarity matrixstep 5. Update ground truth object masks by predicted masks |
讓我們討論一下,在某些情況下模型何時傾向于失敗(大多數情況下是著色失敗),這意味著著色與跟蹤具有高度的相關性。
在以下情況下會發現一些故障:
當光線在視頻中劇烈或頻繁變化時 。
該方法成功地跟蹤了小到中等遮擋情況下的目標,但在大遮擋情況下仍然無法跟蹤目標。
物體大小的突然變化 。
在這里,我們看到了一個模型如何在沒有任何手動注釋數據的情況下學習自己的模型。我們學習了如何在一些代理任務上訓練CNN模型,并利用這種學習來完成實際任務。我們使用著色作為代理,但這并不局限于此,各種新的方法正在出現作為新的代理任務。自我監督的方法是必要的,而且它們可以消除現實用例中昂貴的數據收集的主要約束。這種模式還不能擊敗當前的最頂尖的監督模型,但優于許多其他模式。
就其方法和靈活性而言,該方法前景一片大好,憑借其優勢,自監督模型很快將成為解決機器學習問題的首選。 本文基于“ Google Research ”的研究成果, 我試圖根據我的知識和理解來解釋這項研究。
雷鋒字幕組是一個由 AI 愛好者組成的翻譯團隊,匯聚五百多位志愿者的力量,分享最新的海外AI資訊,交流關于人工智能技術領域的行業變革與技術創新的見解。
團隊成員有大數據專家、算法工程師、圖像處理工程師、產品經理、產品運營、IT咨詢人、在校師生;志愿者們來自IBM、AVL、Adobe、阿里、百度等知名企業,北大、清華、港大、中科院、南卡羅萊納大學、早稻田大學等海內外高校研究所。
如果,你也是位熱愛分享的AI愛好者。歡迎與雷鋒字幕組一起,學習新知,分享成長。

雷鋒網雷鋒網
雷峰網版權文章,未經授權禁止轉載。詳情見轉載須知。