引文
最近筆者也在尋找目標檢測的其他方向,一般可以繼續挖掘的方向是從目標檢測的數據入手,困難樣本的目標檢測,如檢測物體被遮擋,極小人臉檢測,亦或者數據樣本不足的算法。這里筆者介紹一篇小樣本(few-shot)數據方向下的域適應(Domain Adaptation)的目標檢測算法,這篇新加坡國立大學&華為諾亞方舟實驗室的paper《Few-shot Adaptive Faster R-CNN》被收錄於CVPR2019,解決的具體問題場景是我們有在普通常見場景下的汽車目標檢測,我們只有少量霧天暴雨極劣天氣環境下的汽車樣本,那么我們可以使用成對采樣(pairing-sampling)的方法,源域(source domain)即普通場景下的汽車樣本\(Car_{s}\)和目標域(target domain)即惡劣天氣下的汽車樣本\(Car_{t}\)成對\((Car_s,Car_t)\)組成負樣本,另一方面源域下成對組成正樣本\((Car_s,Car_s)\),使用GAN的結構,判別器(discriminator)盡可能去分辨正負樣本的不同,也就是分辨出源域和目標域的樣本,生成器(generator)是嘗試去迷惑判別器。這就是這個算法的主要思想,主要是把域適應的思想應用到了目標檢測上。
論文源碼還沒完全開源,只找到了個官方的repo:https://github.com/twangnh/FAFRCNN
思考
在介紹文章具體網絡設計和損失函數的設計之前,我們可以帶着一個問題去思考。
- 用GAN的結構,數據樣本使用\(Car_s\)作為正樣本、\(Car_t\)作為負樣本也可以使判別器(discriminator)分辨出源域和目標域的樣本,為什么這里要組成對的去訓練?
算法設計
-
- 圖像級別的域適應
-
- 實例級別的域適應
具體可以看下面Fig2的第一行和第三行,圖像級別下的域遷移是整體圖像各個像素組成的域遷移,實例級別的域遷移是汽車樣本下的域遷移。

圖像級別的域適應
圖像級別的域適應(Image-level Adaptation) 是為了完成image-to-image的轉換,論文提出了split pooling(SP)的方法,作用是為了隨機放置grid,做法也是十分簡單,grid cell的寬為w,高為h,然后隨機生成sx和xy,grid根據sx和sy調整位置。

后面就可以用對抗訓練的方式訓練生成器和判別器了,但是因為目標域的樣本是小樣本數據,所以這里提出了成對訓練的方式,即源域對\(G_{s_1}={(g_s,g_s)}\)和源域-目標域對\(G_{s_2}={(g_s,g_t)}\)。判別器判斷樣本來源,生成器是特征提取器器目標是混淆判別器。
另外論文在圖像級別的域適應用了三個GAN,實用性不知道如何。
實例級別的域適應
跟Faster R-CNN中不同的是:foreground ROIs要求更高的IOU閾值(比如原本IOU要求是0.5的,現在可能要0.7)。獲得了ROI特征之后會根據ROI的label分組,源域目標特征是\(O_{is}\),目標域目標特征為\(O_{it}\),如果一共有C類,\(i\in[0,C]\),第0類為背景,其實跟圖像級別的成對方式一樣,源域對\(N_{i1}=\{(n_{is},n_{is})\}\)和源域目標域對\(N_{i2}=\{(n_{is},n_{it})\}\),其中\(n_{is}\sim O_{is},n_{it}\sim O_{it}\),以下為域判別器的損失函數:
以下為feature generator的損失函數:
源域模型特征正則化
這個部分就是Fig 1中的SMFR模塊,全稱為Source Model Feature Regularization,他的作用是正則化源域模型,具體來說,就是源域樣本\(x_s\)經過論文的域適應adaptation之后的特征提取器\(f_t\)和初始時擁有的僅有源域樣本訓練的特征提取器\(f_s\)要盡可能的一致,這樣才能使模型更加魯棒,文章用了L2正則。
但是因為是目標檢測模型,我們更關注的是圖片的前景目標本身,所以我們要求的是源域樣本\(x_s\)經過特征提取器之后的前景部分變化不大。
其中\(M\)為前景的mask,k為正例掩碼位置的個數。
實驗結果
實驗中數據集采用以下5種:
- Scenario-1: SIM10K to Udacity (\(S\rightarrow U\));
- Scenario-2: SIM10K to Cityscapes (\(S\rightarrow C\));
- Scenario-3: Cityscapes to Udacity (\(C\rightarrow U\));
- Scenario-4: Udacity to Cityscapes (\(U\rightarrow C\));
- Scenario-5: Cityscapes to Foggy Cityscapes (\(C\rightarrow F\)).
以下都是采用AP作為對比評價指標。
![]() |
![]() |



總結思考
回答文首的問題,相信很多讀者讀完全文之后肯定也知道答案了,paper題目就是基於小樣本學習方向的,其實需要成對訓練的目的就是增加訓練樣本,如果源域樣本\(Car_s\)有n個,目標域樣本\(Car_t\)有m個(n>m),那么最后負樣本的個數僅僅只有m個,因為是小樣本,訓練出來的效果也會十分的差。但是如果成對訓練(pairing-sampling),正樣本為\((Car_s,Car_s)\),理論上樣本數量為\(n^2\),為s負樣本為\((Car_s,Car_t)\),理論上樣本數量為\(n*m\),雖然經過這樣笛卡爾積之后的正負樣本比沒有變,但是負樣本數量卻是增多了。這也是整篇文章的主要思想,pairing-sampling的去訓練。
參考文獻
- [1]. Eric Tzeng, Judy Hoffman, Kate Saenko, and Trevor Darrell. Adversarial discriminative domain adaptation. In Computer Vision and Pattern Recognition (CVPR), volume 1, page 4, 2017.