計(jì)算機(jī)視覺研究新方向:自監(jiān)督表示學(xué)習(xí)總結(jié)(建議收藏)
點(diǎn)擊上方“小白學(xué)視覺”,選擇加"星標(biāo)"或“置頂”
重磅干貨,第一時(shí)間送達(dá)
?
隨著深度模型的興起,基于監(jiān)督的圖像特征提取方式已經(jīng)成為主流。然而這種方法需要大量的有標(biāo)簽數(shù)據(jù),標(biāo)注成本過高,在小樣本數(shù)據(jù)集上面臨著過擬合等問題。如何減少算法對(duì)高質(zhì)量標(biāo)簽數(shù)據(jù)集的需求?如何利用大量的無標(biāo)簽圖像數(shù)據(jù)進(jìn)行特征提?。咳绾巫屇P吞崛〉奶卣骶哂懈臃夯谋磉_(dá)能力?
自監(jiān)督表示學(xué)習(xí)算法應(yīng)運(yùn)而生。公眾號(hào)上一篇自監(jiān)督學(xué)習(xí)在計(jì)算機(jī)視覺中的應(yīng)用為大家介紹了自監(jiān)督學(xué)習(xí)的基本概念和一些應(yīng)用,本篇文章參考Lilian Weng在其博客(lilianweng.github.io)中總結(jié)的自監(jiān)督表示學(xué)習(xí)在圖像,視頻和控制領(lǐng)域的進(jìn)展,將摘選其中圖像和視頻部分的內(nèi)容進(jìn)行分享。內(nèi)容較多,建議先收藏~
自監(jiān)督學(xué)習(xí)在圖像任務(wù)上的特征表示
Distortion(扭曲,變形)
Exemplar-CNN(Dosovitskiy et al., 2015)《Discriminative Unsupervised Feature Learning with Exemplar Convolutional Neural Networks》用圖像中的patch創(chuàng)建數(shù)據(jù)集:
1.從包含大量梯度的位置選取“exemplary” patch
2.每個(gè)補(bǔ)丁都通過應(yīng)用各種隨機(jī)轉(zhuǎn)換(即、平移、旋轉(zhuǎn)、縮放等)所有產(chǎn)生的失真補(bǔ)丁都被認(rèn)為屬于同一個(gè)代理類
3.pretext任務(wù)是區(qū)分一組代理類(每一個(gè)patch就是一個(gè)代理類)。
Rotation《Unsupervised Representation Learning by Predicting Image Rotations》提出了一種簡(jiǎn)單的圖像旋轉(zhuǎn)分類的代理任務(wù)。為了用不同的旋轉(zhuǎn)來識(shí)別相同的圖像,模型必須學(xué)會(huì)識(shí)別高層次的物體部分,如頭、鼻子和眼睛,以及這些部分的相對(duì)位置,而不是局部模式。這個(gè)接口任務(wù)驅(qū)動(dòng)模型以這種方式學(xué)習(xí)對(duì)象的語(yǔ)義概念。
Patches
一幅圖像中提取多個(gè)patch,并要求模型預(yù)測(cè)這些patch之間的關(guān)系
relative position《Unsupervised Visual Representation Learning by Context Prediction》讓模型預(yù)測(cè)patch的相對(duì)位置
1.隨機(jī)采樣patch
2.考慮到第一個(gè)patch被放置在一個(gè)3x3的網(wǎng)格的中間,第二個(gè)patch被采樣于它周圍的8個(gè)相鄰的位置
3.引入一些噪音
4.該模型被訓(xùn)練來預(yù)測(cè)第二個(gè)patch是從8個(gè)相鄰位置中的哪一個(gè)中選擇出來的,這是一個(gè)超過8類的分類問題(就是說看第二個(gè)patch的相對(duì)于第一個(gè)patch 的位置是1,還是2,3….8)
在《Unsupervised Learning of Visual Representations by Solving Jigsaw Puzzles》是將9個(gè)patch打亂然后讓模型將其放回,實(shí)際實(shí)現(xiàn)時(shí)讓模型預(yù)測(cè)其屬于每個(gè)位置的概率,當(dāng)然可以用GCN來加速訓(xùn)練。
另一種想法是在論文《Representation Learning by Learning to Count》中提出的,將“feature”或“visual primitives”看作一個(gè)標(biāo)量值屬性,它可以在多個(gè)patch上求和,并在不同的patch之間進(jìn)行比較。然后通過計(jì)數(shù)特征和簡(jiǎn)單的算法來定義patch之間的關(guān)系。
具體操作如下:

簡(jiǎn)單來說,就是對(duì)原始圖像進(jìn)行上采樣和分塊操作(2*2分塊,得到4塊),希望上采樣后計(jì)算出的數(shù)目和原圖計(jì)算出的數(shù)目一致,希望地磚分塊操作后計(jì)算出的數(shù)目是原圖計(jì)算出的數(shù)目的4倍。
Colorization
《Colorful Image Colorization》這篇論文為灰度圖著色為彩色(在CIE LAB color space)思想也很簡(jiǎn)單。Momentum Contrast
《Momentum Contrast for Unsupervised Visual Representation Learning》提出一種新的無監(jiān)督學(xué)習(xí)框架:動(dòng)態(tài)字典查找。
對(duì)quuery(x_q)通過encoder有一個(gè)對(duì)應(yīng)的表達(dá)q,對(duì)于key(x_k)通過momentum encoder有一個(gè)對(duì)應(yīng)的表達(dá)k,這些k構(gòu)成一個(gè)list字典。假設(shè)字典中有一個(gè)k和q匹配。在論文中k是通過x的數(shù)據(jù)增強(qiáng)得來的。使用了InfoNEC contrastive loss 學(xué)習(xí) 1個(gè)positive和K個(gè)negative樣本:

訓(xùn)練偽代碼:
同樣《A Simple Framework for Contrastive Learning of Visual Representations》中也提出了一個(gè)簡(jiǎn)單的框架用于對(duì)比學(xué)習(xí)。它通過潛在空間的對(duì)比損失,最大限度地提高相同樣本的不同增強(qiáng)視圖之間的一致性,從而學(xué)習(xí)視覺輸入的表示。
訓(xùn)練偽代碼:
《CURL: Contrastive Unsupervised Representations for Reinforcement Learning》借鑒了SimCLR的想法用于強(qiáng)化學(xué)習(xí)。
自監(jiān)督學(xué)習(xí)在視頻任務(wù)上的特征表示
Video-Based
視頻中包含連續(xù)的,語(yǔ)義相近的幀,且框架的順序描述了一定的推理規(guī)則和物理邏輯;例如,物體的運(yùn)動(dòng)應(yīng)該是平穩(wěn)的,重力是向下的。
一個(gè)常見的工作流程是,用無標(biāo)簽的視頻對(duì)一個(gè)模型進(jìn)行一個(gè)或多個(gè)pretext任務(wù)的訓(xùn)練,然后將該模型的一個(gè)中間特征層輸入對(duì)動(dòng)作分類、分割或目標(biāo)跟蹤等下游任務(wù)進(jìn)行finetune。Tracking
物體的運(yùn)動(dòng)由一系列視頻幀來跟蹤。在近距離的畫面中,同一個(gè)物體在屏幕上被捕捉的方式通常差別不大,通常是由物體或相機(jī)的微小運(yùn)動(dòng)觸發(fā)的。因此,對(duì)同一物體學(xué)習(xí)的任何跨越近幀的視覺表征都應(yīng)該在潛在特征空間中是接近的。在這個(gè)想法的啟發(fā)下,Wang & Gupta, 201《Unsupervised Learning of Visual Representations using Videos》)提出了一種通過跟蹤視頻中移動(dòng)的物體來實(shí)現(xiàn)視覺表征的無監(jiān)督學(xué)習(xí)的方法。
具體做法:在一個(gè)小的window中(30幀)追蹤一個(gè)patchX,有個(gè)和X接近的patchX+,還有一個(gè)隨機(jī)選取的patchX-。這個(gè)loss像triple loss

patch的獲?。?br>
Frame Sequence(幀序列)
視頻幀是按時(shí)間順序自然放置的。研究人員提出了幾個(gè)自我監(jiān)督的任務(wù),他們期望良好的表現(xiàn)應(yīng)該學(xué)習(xí)幀的正確順序?!禨huffle and Learn: Unsupervised Learning using Temporal Order Verification》中提出的pretext任務(wù)為:判斷一段視頻序列的順序是否正確,這樣模型可以獲得追蹤物體和推理的能力。
具體做法為:

類似的,《Self-Supervised Video Representation Learning With Odd-One-Out Networks》中也提出了一種基于視頻序列的無監(jiān)督學(xué)習(xí)方法“odd-one-out learning”。要從N+1個(gè)序列幀中挑選出某一個(gè)古怪的幀。
還有研究給模型播放正序或者倒序的視頻,讓其預(yù)測(cè)時(shí)間的方向 arrow of time(正或負(fù))為了預(yù)測(cè)時(shí)間箭頭,分類器應(yīng)該同時(shí)捕獲低級(jí)物理和高級(jí)語(yǔ)義。提出的T- cam(時(shí)間類激活映射)網(wǎng)絡(luò)接受T組,每個(gè)T組包含若干個(gè)光流幀。每個(gè)組的conv層輸出被連接起來并輸入到二元邏輯回歸中以預(yù)測(cè)時(shí)間箭頭。這個(gè)pretext任務(wù)可以提高動(dòng)作分類下游任務(wù)的性能。
Video Colorization
《Tracking Emerges by Colorizing Videos》提出視頻著色可以作為一個(gè)自監(jiān)督問題,在此基礎(chǔ)上得到豐富的特征表達(dá)且對(duì)視頻分割和無標(biāo)簽的區(qū)域追蹤很有效果。
和圖片的照射著色的自監(jiān)督問題不同,視頻著色是將基于一張已知的幀對(duì)另外一張幀著色。由于幀相近,具有時(shí)間相干性,因此他們之間的像素距離也相近,模型被設(shè)計(jì)用來跟蹤不同幀中相關(guān)的像素。

下載1:OpenCV-Contrib擴(kuò)展模塊中文版教程 在「小白學(xué)視覺」公眾號(hào)后臺(tái)回復(fù):擴(kuò)展模塊中文教程,即可下載全網(wǎng)第一份OpenCV擴(kuò)展模塊教程中文版,涵蓋擴(kuò)展模塊安裝、SFM算法、立體視覺、目標(biāo)跟蹤、生物視覺、超分辨率處理等二十多章內(nèi)容。 下載2:Python視覺實(shí)戰(zhàn)項(xiàng)目52講 在「小白學(xué)視覺」公眾號(hào)后臺(tái)回復(fù):Python視覺實(shí)戰(zhàn)項(xiàng)目,即可下載包括圖像分割、口罩檢測(cè)、車道線檢測(cè)、車輛計(jì)數(shù)、添加眼線、車牌識(shí)別、字符識(shí)別、情緒檢測(cè)、文本內(nèi)容提取、面部識(shí)別等31個(gè)視覺實(shí)戰(zhàn)項(xiàng)目,助力快速學(xué)校計(jì)算機(jī)視覺。 下載3:OpenCV實(shí)戰(zhàn)項(xiàng)目20講 在「小白學(xué)視覺」公眾號(hào)后臺(tái)回復(fù):OpenCV實(shí)戰(zhàn)項(xiàng)目20講,即可下載含有20個(gè)基于OpenCV實(shí)現(xiàn)20個(gè)實(shí)戰(zhàn)項(xiàng)目,實(shí)現(xiàn)OpenCV學(xué)習(xí)進(jìn)階。 交流群
歡迎加入公眾號(hào)讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器、自動(dòng)駕駛、計(jì)算攝影、檢測(cè)、分割、識(shí)別、醫(yī)學(xué)影像、GAN、算法競(jìng)賽等微信群(以后會(huì)逐漸細(xì)分),請(qǐng)掃描下面微信號(hào)加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三?+?上海交大?+?視覺SLAM“。請(qǐng)按照格式備注,否則不予通過。添加成功后會(huì)根據(jù)研究方向邀請(qǐng)進(jìn)入相關(guān)微信群。請(qǐng)勿在群內(nèi)發(fā)送廣告,否則會(huì)請(qǐng)出群,謝謝理解~

