通过视频着色进行自监督跟踪
正文字?jǐn)?shù):4004 ?閱讀時(shí)長(zhǎng):8分鐘
在本文中,我們將學(xué)習(xí)一種新穎的自監(jiān)督目標(biāo)跟蹤方法。自我監(jiān)督是模型自我學(xué)習(xí)的一種方法,這本身就使得這個(gè)話(huà)題非常有趣。在這里,我們將看到如何學(xué)會(huì)自己跟蹤對(duì)象。我們將從基本的目標(biāo)跟蹤開(kāi)始,然后討論什么是計(jì)算機(jī)視覺(jué)的自我監(jiān)督學(xué)習(xí),最后詳細(xì)討論這種方法。
Posted by?Tushar Kolhe?
url :?https://towardsdatascience.com/self-supervised-tracking-via-video-colorization-7b2b066359d5
方法的實(shí)現(xiàn)可以訪問(wèn)鏈接了解:
https://github.com/hyperparameters/tracking_via_colorization
目標(biāo)跟蹤概述
簡(jiǎn)單地說(shuō),它可以理解為在整個(gè)視頻序列中識(shí)別唯一的對(duì)象。要跟蹤的對(duì)象通常稱(chēng)為目標(biāo)對(duì)象,跟蹤可以通過(guò)邊界框或?qū)嵗指顏?lái)完成,有兩種類(lèi)型的公共對(duì)象跟蹤挑戰(zhàn)。
1. 單目標(biāo)跟蹤:在整個(gè)視頻序列中跟蹤感興趣的目標(biāo),例如VOT挑戰(zhàn)
2. 多目標(biāo)跟蹤:在整個(gè)視頻序列中跟蹤多個(gè)感興趣的目標(biāo)。例如:MOT挑戰(zhàn)
研究趨勢(shì)
一些著名的經(jīng)典的用于解決目標(biāo)跟蹤C(jī)V算法的是:
1.?Mean shift
2.?Optical flow
3.?Kalman filters
其中最著名的一種多目標(biāo)跟蹤算法是SORT,是以卡爾曼濾波器為核心,并且非常成功的一種算法。?
隨著深度學(xué)習(xí)時(shí)代的到來(lái),社會(huì)上出現(xiàn)了非常有創(chuàng)新性的研究并且深度學(xué)習(xí)方法成功地勝過(guò)了傳統(tǒng)的CV方法來(lái)應(yīng)對(duì)公共跟蹤挑戰(zhàn)。盡管在公共挑戰(zhàn)方面取得了巨大成功但深度學(xué)習(xí)仍在努力為現(xiàn)實(shí)世界中的問(wèn)題陳述提供通用的解決方案。?
深度模型的挑戰(zhàn)
在訓(xùn)練深度CNN模型時(shí),我們面臨的主要挑戰(zhàn)之一是訓(xùn)練數(shù)據(jù)。
訓(xùn)練數(shù)據(jù):深度學(xué)習(xí)方法需要大量的數(shù)據(jù),這幾乎每次都會(huì)成為一個(gè)瓶頸。此外,像多目標(biāo)跟蹤這樣的任務(wù)很難注釋,而且這個(gè)過(guò)程變得不切實(shí)際而且成本高昂。
深度模型數(shù)據(jù)永遠(yuǎn)不嫌多
用自監(jiān)督學(xué)習(xí)來(lái)拯救
我們都知道有監(jiān)督和非監(jiān)督學(xué)習(xí)技術(shù)。這是一種被稱(chēng)為自監(jiān)督學(xué)習(xí)的新型學(xué)習(xí)方式。在這些類(lèi)型的學(xué)習(xí)中,我們?cè)囍脭?shù)據(jù)中已經(jīng)存在的信息,而不是任何外部標(biāo)簽,或者有時(shí)我們說(shuō)模型是自己學(xué)習(xí)的。實(shí)際上,我們所做的就是訓(xùn)練CNN模型去完成一些其他的任務(wù),間接地幫助我們實(shí)現(xiàn)我們的目標(biāo),這個(gè)模型自我監(jiān)督。這些任務(wù)被稱(chēng)為“代理任務(wù)”或“借口任務(wù)”。
代理任務(wù)的示例如下:
顏色化
CNN模型學(xué)習(xí)從灰度圖像預(yù)測(cè)顏色。(來(lái)源:https://arxiv.org/abs/1603.08511)
將圖像補(bǔ)丁放在正確的位置
從圖像中提取補(bǔ)丁并將其打亂。模型學(xué)習(xí)如何解開(kāi)拼圖并按照正確? 的順序排列,如圖3所示。(來(lái)源:https://arxiv.org/abs/1603.09246)
按正確的順序放置視頻幀
該模型學(xué)習(xí)在視頻序列中對(duì)打亂的幀進(jìn)行排序。[來(lái)源:https://arxiv.org/abs/1708.01246]
許多這樣的任務(wù)可以用作計(jì)算機(jī)視覺(jué)問(wèn)題的代理任務(wù)。這種訓(xùn)練的一個(gè)主要好處是訓(xùn)練不需要手動(dòng)注釋數(shù)據(jù),并且適合解決生活中實(shí)際的用例。
通過(guò)視頻著色進(jìn)行自監(jiān)督跟蹤
我們已經(jīng)看到了并了解了什么是自監(jiān)督模型,您一定猜到了我們將使用著色作為我們的代理任務(wù)的名稱(chēng)。
通過(guò)給視頻著色來(lái)實(shí)現(xiàn)跟蹤
我們使用大量未標(biāo)記視頻學(xué)習(xí)模型的視覺(jué)跟蹤無(wú)需人工監(jiān)督。
arxiv.org(https://arxiv.org/abs/1806.09594)
簡(jiǎn)介
著色是代理任務(wù)或借口任務(wù),目標(biāo)跟蹤是主要任務(wù)或下游任務(wù)。采用大規(guī)模的無(wú)標(biāo)記視頻對(duì)模型進(jìn)行訓(xùn)練,不需要人工進(jìn)行任何單一像素的標(biāo)注。該模型利用視頻的時(shí)間相干性對(duì)灰度視頻進(jìn)行著色。這看起來(lái)可能有點(diǎn)混亂,但我會(huì)慢慢給大家講明白。
模型將如何學(xué)習(xí)跟蹤
我們將取兩個(gè)幀,一個(gè)目標(biāo)幀(時(shí)刻t),一個(gè)參考幀(時(shí)刻t-1),并通過(guò)模型。該模型期望通過(guò)對(duì)參考幀顏色的先驗(yàn)知識(shí)來(lái)預(yù)測(cè)目標(biāo)幀的顏色。通過(guò)這種方式,模型內(nèi)部學(xué)會(huì)了指向正確的區(qū)域,以便從參考框架復(fù)制顏色,如圖所示。這種指向機(jī)制可以用作推理期間的跟蹤機(jī)制,我們將很快看到如何做到這一點(diǎn)。
模型接收一個(gè)彩色幀和一個(gè)灰度視頻作為輸入,并預(yù)測(cè)下一幀的顏色。模型學(xué)會(huì)從參考系復(fù)制顏色,這使得跟蹤機(jī)制可以在沒(méi)有人類(lèi)監(jiān)督的情況下學(xué)習(xí)。[來(lái)源:https://ai.googleblog.com/2018/06/self-supervised-tracking-via-video.html]
我們不復(fù)制網(wǎng)絡(luò)中的顏色,而是訓(xùn)練我們的CNN網(wǎng)絡(luò)學(xué)習(xí)目標(biāo)幀的像素和參考幀的像素之間的相似度(相似度是灰度像素之間),然后線性組合時(shí)使用此相似度矩陣參考幀中的真實(shí)顏色會(huì)給出預(yù)測(cè)的顏色。從數(shù)學(xué)上講,設(shè)C?為參考幀中每個(gè)像素i的真實(shí)顏色,C?為目標(biāo)幀中每個(gè)像素j的真實(shí)顏色。
[資源鏈接:https://arxiv.org/abs/1806.09594]
公式1:預(yù)測(cè)顏色與參考顏色的線性組合
如何計(jì)算相似度矩陣
無(wú)論是圖像、參考幀還是目標(biāo)幀都經(jīng)過(guò)模型學(xué)習(xí)后對(duì)每個(gè)像素進(jìn)行了低層次的嵌入,這里f?是像素i在參考幀中的嵌入,類(lèi)似地,f是像素j在目標(biāo)幀中的嵌入。然后,計(jì)算相似度矩陣:
公式2:用softmax歸一化的內(nèi)積相似度
相似矩陣中的每一行表示參考幀的所有像素i和目標(biāo)幀的像素j之間的相似性,因此為了使總權(quán)重為1,我們對(duì)每一行應(yīng)用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)為參考幀嵌入與目標(biāo)像素在j =2處嵌入的內(nèi)積,(c) softmax后的相似度矩陣,(d)相似度矩陣與參考幀真顏色的線性組合[來(lái)源:https://github.com/hyperparameters/tracking_via_colorization]
同樣,對(duì)于目標(biāo)幀中的每個(gè)目標(biāo)像素((5,5)=> 25個(gè)像素),我們將會(huì)有一個(gè)相似矩陣的大小(5,5),即大小為(5,5,25)的完整相似度矩陣A?? =(25,25)。?
在實(shí)現(xiàn)中,我們將使用(256 x 256)圖像擴(kuò)展相同的概念。??
圖像量化
第一行顯示原始幀,第二行顯示來(lái)自實(shí)驗(yàn)室空間的ab顏色通道。第三行將顏色空間量化到離散的容器中,并打亂顏色,使效果更加明顯。[來(lái)源:https://arxiv.org/abs/1806.09594]
顏色是空間頻率偏低,所以我們可以處理低分辨率的幀。我們不需要C(255,3)顏色組合,所以我們創(chuàng)建了16個(gè)聚類(lèi)并將顏色空間量化為這些聚類(lèi)。現(xiàn)在我們只有16種獨(dú)特的顏色簇(見(jiàn)上圖第3欄)。聚類(lèi)是用k-均值完成的。16個(gè)群集會(huì)有一些顏色信息的丟失,但足以識(shí)別物體。我們可以增加聚類(lèi)的數(shù)目來(lái)提高著色的精度,但代價(jià)是增加計(jì)算量。
[來(lái)源:https://arxiv.org/abs/2002.07793]
為了將圖像量化成簇,我們將使用LAB顏色空間的AB通道而不是RGB顏色空間通道。上面的圖顯示了RGB和LAB通道間的相關(guān)性,從圖中我們可以得出結(jié)論
RGB往往比LAB更具相關(guān)性。
LAB將強(qiáng)制模型學(xué)習(xí)不變性,它將強(qiáng)制其學(xué)習(xí)更強(qiáng)大的表示形式,而不是依賴(lài)于本地顏色信息。
可以使用sklearn的KMeans軟件包進(jìn)行聚類(lèi)。
?
這個(gè)類(lèi)將用于制作顏色的簇,我們將把它存儲(chǔ)為一個(gè)pickle。
實(shí)現(xiàn)
注意:我使用pytorch來(lái)進(jìn)行實(shí)現(xiàn),它遵循(N, C, H, W)格式。在處理矩陣重塑時(shí)要記住這一點(diǎn)。如果你對(duì)形狀有任何疑問(wèn),請(qǐng)隨時(shí)與我們聯(lián)系。
該模型從參考幀中學(xué)習(xí)為視頻幀著色。[來(lái)源:https://ai.googleblog.com/2018/06/self-supervised-tracking-via-video.html]
輸入
該模型的輸入是四個(gè)灰度視頻幀,其下采樣為256×256。三個(gè)參考幀和一個(gè)目標(biāo)幀。
預(yù)處理
首先,我們將所有的訓(xùn)練視頻壓縮到6fps。然后預(yù)處理框架以創(chuàng)建兩個(gè)不同的集合。一個(gè)用于CNN模型,另一個(gè)用于著色任務(wù)。
-?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模型結(jié)構(gòu)
所用的主干是ResNet-18,因此其結(jié)果與其他方法相當(dāng)。ResNet-18的最后一層被更新為32 x 32 x 256的尺寸輸出。ResNet-18的輸出隨后被傳送到3D-Conv網(wǎng)絡(luò),最終輸出為32 x 32 x 64。(下面的代碼塊顯示了從ResNet-18網(wǎng)絡(luò)獲取輸入的3D網(wǎng)絡(luò))
訓(xùn)練
訓(xùn)練可分為以下3個(gè)步驟:
1. 網(wǎng)絡(luò)傳遞
我們將使用SET 1的預(yù)處理幀,即通過(guò)網(wǎng)絡(luò)傳遞大小為(256 x 256)的4個(gè)灰度幀,以獲得具有64個(gè)通道的(32 x 32)空間圖。對(duì)于(32 x 32)圖像的每個(gè)像素,這可以解釋為64維嵌入。因此,我們有四個(gè)這樣的像素級(jí)嵌入,三個(gè)用于參考圖像,一個(gè)用于目標(biāo)圖像 。
?
2. 相似度矩陣
利用這五個(gè)嵌入,我們找到了參考幀和目標(biāo)幀之間的相似矩陣。對(duì)于目標(biāo)幀中的像素我們將獲得一個(gè)相似度值,其中所有三個(gè)參考幀中的所有像素均通過(guò)softmax歸一化為1。
3. Colourization著色處理
我們將使用SET 2的預(yù)處理幀,即將四個(gè)降采樣為(32 x 32)并量化的幀用于著色。將三個(gè)參考幀與相似度矩陣相結(jié)合,得到預(yù)測(cè)的量化幀。我們發(fā)現(xiàn)了具有預(yù)測(cè)顏色的交叉熵?fù)p失,(記住,我們量化幀到16個(gè)聚類(lèi),現(xiàn)在我們有16個(gè)類(lèi)別。我們發(fā)現(xiàn)在這些顏色上有多類(lèi)交叉熵?fù)p失。
推理
??
跟蹤預(yù)測(cè)的例子[來(lái)源:https://ai.googleblog.com/2018/06/self-supervised-tracking-via-video.html]
在學(xué)習(xí)了著色的任務(wù)后,我們有了一個(gè)模型,可以計(jì)算一對(duì)目標(biāo)框架和參考框架的相似矩陣a??。對(duì)于跟蹤的實(shí)際任務(wù),我們利用了標(biāo)簽空間中模型是非參數(shù)的這一特性。我們簡(jiǎn)單地重復(fù)使用等式1來(lái)傳播,但不是傳播顏色,而是傳播類(lèi)別的分布。對(duì)于第一幀,我們有真實(shí)框掩碼,我們將所有實(shí)例掩碼布置為一獨(dú)熱矢量c?(這類(lèi)似于訓(xùn)練期間使用的量化顏色的一獨(dú)熱矢量)。將c?與我們的相似性矩陣A相結(jié)合,以找到掩碼的新位置,但請(qǐng)記住,隨后幾幀中的c?預(yù)測(cè)將變得很柔和,表明模型的置信度。為了做出艱難的決定,我們可以簡(jiǎn)單地選擇最自信的那一類(lèi)。推理算法為:
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 失效模式讓我們來(lái)討論一下,當(dāng)模型在某些場(chǎng)景中趨于失敗時(shí),這主要是著色失敗的情況,這意味著著色與跟蹤有很高的相關(guān)性。
在以下情況下會(huì)發(fā)現(xiàn)一些故障:
當(dāng)光線在視頻中劇烈或頻繁變化時(shí)?
該方法成功地跟蹤了輕微到中等遮擋情況下的目標(biāo),但當(dāng)物體受到嚴(yán)重遮擋時(shí)無(wú)法進(jìn)行對(duì)目標(biāo)的跟蹤
物體尺寸大小突然發(fā)生變化
LiveVideoStackCon 2020?北京
2020年10月31日-11月1日
點(diǎn)擊【閱讀原文】了解更多詳細(xì)信息
總結(jié)
以上是生活随笔為你收集整理的通过视频着色进行自监督跟踪的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【传统PSTN与互联网通信】
- 下一篇: 探索企业出海新机遇与音视频技术优化实践