半監(jiān)督目標(biāo)檢測(cè)相關(guān)方法總結(jié)

極市導(dǎo)讀
?本文結(jié)合相關(guān)論文介紹了一些半監(jiān)督目標(biāo)檢測(cè)算法,即如何利用大量的 unlabeled data 提升模型的檢測(cè)性能。?>>加入極市CV技術(shù)交流群,走在計(jì)算機(jī)視覺(jué)的最前沿
近期閱讀了一些半監(jiān)督目標(biāo)檢測(cè)(Semi-Supervised Object Detection,SSOD)的文章,特此總結(jié),以供未來(lái)查閱。
什么是半監(jiān)督目標(biāo)檢測(cè)?
傳統(tǒng)機(jī)器學(xué)習(xí)根據(jù)訓(xùn)練數(shù)據(jù)集中的標(biāo)注情況,有著不同的場(chǎng)景,主要包括:監(jiān)督學(xué)習(xí)、弱監(jiān)督學(xué)習(xí)、弱半監(jiān)督學(xué)習(xí)、半監(jiān)督學(xué)習(xí)。由于目標(biāo)檢測(cè)任務(wù)的特殊性,在介紹半監(jiān)督目標(biāo)檢測(cè)方法之前,我們查看一下目標(biāo)檢測(cè)在這四個(gè)方向下的具體設(shè)定,如下圖所示(不包括無(wú)監(jiān)督學(xué)習(xí)):

總而言之,我們可以講目標(biāo)檢測(cè)的 setting 分為四個(gè)部分:
有監(jiān)督目標(biāo)檢測(cè): 擁有大規(guī)模帶標(biāo)簽的數(shù)據(jù),包括完整的實(shí)例級(jí)別的標(biāo)注,即包含坐標(biāo)和類別信息; 弱監(jiān)督目標(biāo)檢測(cè): 數(shù)據(jù)集中的標(biāo)注僅包含類別信息,不包含坐標(biāo)信息,如圖一 b 所示; 弱半監(jiān)督目標(biāo)檢測(cè): 數(shù)據(jù)集中擁有部分實(shí)例級(jí)別的標(biāo)注,大量弱標(biāo)注數(shù)據(jù),模型希望利用大規(guī)模的弱標(biāo)注數(shù)據(jù)提升模型的檢測(cè)能力; 半監(jiān)督目標(biāo)檢測(cè): 數(shù)據(jù)集中擁有部分實(shí)例級(jí)別的標(biāo)注,大量未標(biāo)注數(shù)據(jù),模型希望利用大規(guī)模的無(wú)標(biāo)注的數(shù)據(jù)提升模型的檢測(cè)能力;
半監(jiān)督目標(biāo)檢測(cè)方法的核心在于,如何充分利用大量未標(biāo)注、多樣性的數(shù)據(jù)提升模型在測(cè)試集上的性能,目前的半監(jiān)督目標(biāo)檢測(cè)方法主要有兩個(gè)方向:
一致性學(xué)習(xí)(Consistency based Learning) 偽標(biāo)簽(Pseudo-label based Learning)
前者利用兩個(gè)深度卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)同一張 unlabeled 圖像不同擾動(dòng)(比如水平翻轉(zhuǎn),不同的對(duì)比度,亮度等)之間的一致性,充分利用 unlabeled data的信息。后者利用在 labeled data 上學(xué)習(xí)的預(yù)訓(xùn)練模型對(duì) unlabeled data 進(jìn)行推理,經(jīng)過(guò) NMS 后減少大量冗余框后,利用一個(gè)閾值去挑選偽標(biāo)簽,最后利用偽標(biāo)簽訓(xùn)練模型。個(gè)人認(rèn)為這兩種方法沒(méi)有本質(zhì)的區(qū)別,本身都是偽標(biāo)簽技術(shù),一致性學(xué)習(xí)可以認(rèn)為是一種 soft pseudo label,而后者是一種 hard pseudo label。
接下來(lái)我講介紹幾篇近期半監(jiān)督目標(biāo)檢測(cè)文章,主要發(fā)表在 ICLR, NeurIPS, CVPR等會(huì)議。
Consistency-based Semi-supervised Learning for Object Detection, NeurIPS 19
CSD 這篇文章是比較早期的半監(jiān)督目標(biāo)檢測(cè)方法,非常簡(jiǎn)單,該文章提出了一個(gè) Consistency-based 半監(jiān)督目標(biāo)檢測(cè)算法,可以同時(shí)在單階段和雙階段檢測(cè)器上工作。

CSD 的結(jié)構(gòu)如圖二所示,以單階段目標(biāo)檢測(cè)器為例,訓(xùn)練的損失函數(shù)主要包括兩個(gè)部分,labeled sample 的監(jiān)督損失和 unlabeled samples 的 Consistency loss。針對(duì) unlabeled samples,首先將圖像水平翻轉(zhuǎn),然后分別送入網(wǎng)絡(luò)當(dāng)中,得到對(duì)應(yīng)的 Feature map,由于兩張翻轉(zhuǎn)的圖像的空間位置是可以一一對(duì)應(yīng)的,因此可以在對(duì)應(yīng)的位置計(jì)算一致性損失。分類部分,利用 JS 散度作為 consistency loss;定位部分,利用 L2 loss 作為 consistency loss。
雙階段檢測(cè)器的部分與單階段檢測(cè)器類似,差別主要在于 RPN(Region Proposal Network) 對(duì)于不同的輸入可能產(chǎn)生不同的 proposals,因此在計(jì)算 consistency loss 時(shí)無(wú)法一一對(duì)應(yīng)。解決此問(wèn)題也很簡(jiǎn)單,兩張圖像使用同一個(gè) RPN 生成同一組 RoI (Region of Interest) 來(lái)提取特征得到 proposals。
作者還提出了一個(gè) Background elimination 方法來(lái)消除大量背景部分的損失主導(dǎo)訓(xùn)練過(guò)程的問(wèn)題,因此作者定義了一個(gè) mask 來(lái)過(guò)濾大量的背景樣本:
其中,當(dāng)該實(shí)例的類別不等于背景類時(shí)等于1,否則為 0。
A Simple Semi-Supervised Learning Framework for Object Detection
STAC 提出了一個(gè)基于 hard pseudo label 的半監(jiān)督目標(biāo)檢測(cè)算法,如圖三所示,該方法包含四個(gè)步驟:
首先利用 labeled data 訓(xùn)練一個(gè) Teacher 模型; 生成 pseudo label, 將 unlabeled data 輸入進(jìn) Teacher 網(wǎng)絡(luò)中,得到大量的目標(biāo)框預(yù)測(cè)結(jié)果,利用 NMS 消除大量的冗余框,最后使用閾值來(lái)挑選高置信度的 pseudo label; 應(yīng)用 strong data augmentation。得到 pseudo label 后與 unlabeled image 圖像相結(jié)合,包括圖像級(jí)別的顏色抖動(dòng)、geometric transformation(平移、旋轉(zhuǎn)、剪切)、box-level transformation(小幅度的平移、旋轉(zhuǎn)、剪切); 計(jì)算無(wú)監(jiān)督 loss (pseudo label)和監(jiān)督學(xué)習(xí) loss;

Instant-Teaching: An End-to-End Semi-Supervised Object Detection Framework
Instant-Teaching 主要的 motivation 在于 STAC 僅生成一次的 pseudo label,即離線生成,在訓(xùn)練的過(guò)程中不會(huì)更新。這樣的模式存在一個(gè)問(wèn)題是,當(dāng)訓(xùn)練的模型精度逐步提升,超過(guò)原本的模型,繼續(xù)使用原來(lái)模型生成的 pseudo label 會(huì)限制模型精度進(jìn)一步提升。因此作者提出 Instant-Teaching,以及 Instant-Teaching*。

Instant-Teaching 采用即時(shí)生成 pseudo label 的模式,在每一個(gè)迭代中,包括兩個(gè)步驟:
生成 pseudo label: 對(duì) unlabeled image 進(jìn)行 weak augmentation,送入模型中得到 hard label; 利用生成的 pseudo label 進(jìn)行 strong augmentation,除了 在 STAC 中的數(shù)據(jù)增強(qiáng),還包括了 Mixup 和 Mosaic,利用增強(qiáng)后的數(shù)據(jù)訓(xùn)練模型;
Instant-Teaching 主要提出了一個(gè) co-rectify scheme 來(lái)解決 pseudo label 的 confirmation bias 的問(wèn)題(噪聲 pseudo label 的錯(cuò)誤累計(jì)效應(yīng))。因此,作者利用兩個(gè)模型,給予不同的初始化參數(shù),輸入不同的數(shù)據(jù)增強(qiáng)的樣本,分別彼此糾正和檢測(cè)對(duì)方生成的 pseudo label,形式如圖四右半部分。
Data-Uncertainty Guided Multi-Phase Learning for Semi-Supervised Object Detection
這篇工作提出一個(gè)多階段的學(xué)習(xí)半監(jiān)督目標(biāo)檢測(cè)學(xué)習(xí)算法,前面的方法基本在偽標(biāo)簽生成后,直接擬合生成的偽標(biāo)簽,這樣將會(huì)引發(fā) label noise overfitting 問(wèn)題,即由于深度網(wǎng)絡(luò)較強(qiáng)的擬合能力,即時(shí)錯(cuò)誤的標(biāo)簽?zāi)P鸵材軌驍M合。因此作者利用圖像級(jí)別 uncertainty 來(lái)進(jìn)行多階段學(xué)習(xí),思想類似于課程學(xué)習(xí)(curriculum learning),先學(xué)習(xí) easy 樣本再學(xué)習(xí) difficult data。具體來(lái)說(shuō),作者利用 RPN 出來(lái)的 proposal 的平均分?jǐn)?shù)作為 uncertainty 的指標(biāo)。平均分?jǐn)?shù)越高,uncertainty 越小,視為 easy sample,反之為 difficult sample。

在區(qū)域級(jí)別,作者提出 RoI 的 re-weighting 操作,作者從 Soft sampling for robust object detection 得到啟示,對(duì)于具有噪聲的數(shù)據(jù)(偽標(biāo)簽),在訓(xùn)練時(shí),不同的 RoI 應(yīng)該給予不同的權(quán)重,作者提出了幾個(gè)的簡(jiǎn)單但有效的策略來(lái)解決這個(gè)問(wèn)題,受限于篇幅,這里不再具體介紹,感興趣可以去閱讀原文的 Section 3.3.2.
Unbiased Teacher for Semi-Supervised Object Detection
這篇文章發(fā)表在 ICLR 2021, 主要思想還是說(shuō)現(xiàn)在的半監(jiān)督目標(biāo)檢測(cè)算法生成的標(biāo)簽具有 bias,這里作者主要 argue 的點(diǎn)在于目標(biāo)檢測(cè)中存在天然的類別不平衡問(wèn)題,包括 RPN 前景和背景的分類,ROIHead 的多類別分類,因此作者提出了一個(gè) Unbiased Teacher 方法,來(lái)解決此問(wèn)題。

從方法上來(lái)說(shuō),非常的簡(jiǎn)單,首先是 Burn-IN stage,即在 labeled data 上訓(xùn)練一個(gè)預(yù)訓(xùn)練模型,然后利用 Mean Teacher 的結(jié)構(gòu),Teacher 生成 Pseudo label 來(lái)同時(shí)監(jiān)督 RPN 和 ROIHead。不同的點(diǎn)在于,作者只利用 pseudo label 更新 RPN 和 ROIHead 的 classification 分支,主要原因在于由 confidence score 生成的 pseudo label 與 bounding box 位置的質(zhì)量關(guān)系不大。除此之外,作者將原本的 cross entropy loss 替換為 Focal loss 來(lái)解決 pseudo label bias 問(wèn)題,即 class imbalance 。
Interactive Self-Training with Mean Teachers for Semi-supervised Object Detection
這篇文章揭示了之前利用 pseudo label 的方法忽略了同一張圖片在不同的迭代的檢測(cè)結(jié)果之間的差異性,而且不同的模型對(duì)同一張圖像的檢測(cè)結(jié)果也有差異。

因此作者提出一個(gè)基于 Mean Teacher 的 Interactive form of self-training 的半監(jiān)督目標(biāo)檢測(cè)算法:
解決不同訓(xùn)練迭代檢測(cè)結(jié)果的不穩(wěn)定問(wèn)題,作者使用 NMS 將不同迭代的檢測(cè)結(jié)果進(jìn)行融合。 同時(shí)利用兩個(gè)檢測(cè)頭部 ROIHead 生成 pseudo label,兩個(gè)檢測(cè)頭部可以相互提供有用的互補(bǔ)信息。

IST 算法的主要步驟如圖八所示:
使用 labeled data 訓(xùn)練一個(gè)擁有兩個(gè) ROIHead 的預(yù)訓(xùn)練模型 利用預(yù)訓(xùn)練模型生成兩個(gè)對(duì)應(yīng)的偽標(biāo)簽 利用 labeled data 和 unlabeled data 進(jìn)行監(jiān)督學(xué)習(xí),圖八中 Pseudo Labels Memory 用來(lái)使用 NMS 融合不同迭代的檢測(cè)結(jié)果。該步驟詳情如圖九所示,利用 Mean Teacher 的結(jié)構(gòu),teacher 生成 pseudo label 并與 Memory 中的 pseudo label 進(jìn)行融合,并更新 Memory。作者使用 Dropblock 模塊確保不同的 ROIHead 能夠獨(dú)立收斂,并提供互補(bǔ)的信息,即圖九中的 D。

總結(jié)
本文介紹了一些半監(jiān)督目標(biāo)檢測(cè)算法,即如何利用大量的 unlabeled data 提升模型的檢測(cè)性能,當(dāng)前主要的方法包含 consistency based 以及 pseudo label based 兩類。consistency based 方法主要學(xué)習(xí)模型在 unlabeled data 上的一致性,pseudo label 則利用在 unlabeled data 上生成 pseudo label 進(jìn)而監(jiān)督模型訓(xùn)練,主要的方向即為如何生成高質(zhì)量的偽標(biāo)簽以及模型如何對(duì)抗在 unlabeled data 上的 noise label。本文介紹了的半監(jiān)督目標(biāo)檢測(cè)方法不多,關(guān)于方法的介紹較為籠統(tǒng),如有謬誤,煩請(qǐng)指正,其中細(xì)節(jié),還需仔細(xì)閱讀文章,歡迎討論。
如果覺(jué)得有用,就請(qǐng)分享到朋友圈吧!
公眾號(hào)后臺(tái)回復(fù)“transformer”獲取最新Transformer綜述論文下載~

#?CV技術(shù)社群邀請(qǐng)函?#

備注:姓名-學(xué)校/公司-研究方向-城市(如:小極-北大-目標(biāo)檢測(cè)-深圳)
即可申請(qǐng)加入極市目標(biāo)檢測(cè)/圖像分割/工業(yè)檢測(cè)/人臉/醫(yī)學(xué)影像/3D/SLAM/自動(dòng)駕駛/超分辨率/姿態(tài)估計(jì)/ReID/GAN/圖像增強(qiáng)/OCR/視頻理解等技術(shù)交流群
每月大咖直播分享、真實(shí)項(xiàng)目需求對(duì)接、求職內(nèi)推、算法競(jìng)賽、干貨資訊匯總、與?10000+來(lái)自港科大、北大、清華、中科院、CMU、騰訊、百度等名校名企視覺(jué)開(kāi)發(fā)者互動(dòng)交流~

