通過影片著色進行自監督跟蹤

  • 2020 年 9 月 1 日
  • AI

字幕組雙語原文:通過影片著色進行自監督跟蹤

英語原文:Self-Supervised Tracking via Video Colorization

翻譯:雷鋒字幕組(李珺毅


在本文中,我們將學習一種新穎的自監督目標跟蹤方法。自我監督是模型自我學習的一種方法  ?,這本身就使得這個話題非常有趣。在這裡,我們將看到如何學會自己跟蹤對象。我們將從基本的目標跟蹤開始,然後討論什麼是電腦視覺的自我監督學習,最後詳細討論這種方法。

此方法的實現可以在這裡找到。

目標跟蹤簡介

用簡單的語言描述它,可以理解為識別整個影片序列中唯一的對象。要跟蹤的對象通常被稱為目標對象。跟蹤可以通過邊界框或實例分割來完成。有兩種類型的公共對象跟蹤挑戰。  

  1. 單目標跟蹤:在整個影片序列中跟蹤感興趣的目標。如VOT挑戰。

  2. 多目標跟蹤:在整個影片序列中跟蹤多個感興趣的目標,例如 MOT 挑戰。

研究趨勢  

一些著名經典的用於解決目標跟蹤CV演算法的是  :

  1. Mean shift

  2. Optical flow

  3. Kalman filters

SORT是最著名的多目標跟蹤演算法之一,它以卡爾曼濾波器為核心,並且非常成功。  

隨著深度學習時代的到來,非常創新的研究進入了該研究領域,並且深度學習方法成功地勝過了傳統的CV方法來應對公共跟蹤挑戰。 儘管在公共挑戰方面取得了巨大成功,但深度學習仍在努力為現實世界中的問題陳述提供通用的解決方案。  

深度模型的挑戰

在訓練深度CNN模型時,我們面臨的主要挑戰之一是訓練數據。 

  • 訓練數據:深度學習方法需要大量數據,而這幾乎每次都成為瓶頸。此外,像多目標跟蹤這樣的任務很難注釋,而且這個過程變得不切實際,而且代價昂貴。  

         

         深度模型數據永遠不嫌多

用自監督學習來拯救

我們都知道監督和非監督學習技術。這是一種被稱為自監督學習的新型學習方式。在這些類型的學習中,我們試著利用數據中已經存在的資訊,而不是任何外部標籤,或者有時我們說模型是自己學習的。 在現實中,我們所做的是訓練CNN模型去完成一些其他的任務,這些任務間接地幫助我們實現目標,這個模型自我監督。這些任務稱為」代理任務」或「借口任務」。

代理任務的幾個例子是:

  • 顏色化 

              

CNN模型學習從灰度影像預測顏色。[資源鏈接]

  • 將影像修補程式放在正確的位置     

從影像中提取修補程式並將其打亂。模型學習如何解開拼圖並按照正確  的順序排列,如圖3所示。[資源鏈接]

  • 按正確的順序放置影片幀       

該模型學習在影片序列中對打亂的幀進行排序。[資源鏈接]

許多這樣的任務可以用作電腦視覺問題的代理任務。此類訓練的一個主要好處是,訓練不需要手動注釋數據,並且適合解決現實生活中的用例。

通過影片著色進行自監督跟蹤

我們已經了解了什麼是自監督模型,您一定已經猜到了我們將使用著色作為代理任務的名稱。  

通過給影片著色來實現跟蹤。

我們使用大量的未標記影片學習模型的視覺跟蹤無需人工監督。

arxiv.org

簡介

著色是代理任務或借口任務,目標跟蹤是主要任務或下游任務。採用大規模的無標記影片對模型進行訓練,不需要人工進行任何單一像素的標註。該模型利用影片的時間相干性對灰度影片進行著色。這看起來可能有點混亂,但我會慢慢給大家講明白。

模型將如何學習跟蹤  

我們將取兩個幀,一個目標幀(時刻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愛好者。歡迎與雷鋒字幕組一起,學習新知,分享成長

雷鋒網雷鋒網