Motivation
該論文的內容是行人實例檢測,針對的問題是數據集只有部分數據有標註,其他大部分數據沒有標註,即半監督(semi-supervised)學習研究的內容。該論文使用GAN來生成行人實例樣本,訓練一個行人類別分類器,用該分類器對未標註的圖片進行掃描分類,得到未標註圖片的僞標註,最後使用有標註的數據和僞標註的數據訓練重新訓練檢測器。
- Semi-supervised.
- 適用情景:部分數據有label,大部分數據沒有label。
- 收集和人工標註大量數據需要耗費大量的時間和精力。
- 用GAN生成行人實例。
- 行人實例檢測。
Method
論文的方法如下圖所示
方法分爲幾個部分
- Base Detector:使用有標註的數據訓練的檢測器,是2階段的檢測器,有RPN。RPN網絡提取region proposals,映射到原圖,裁剪出來,作爲其他網絡的輸入。
- Generator G: 生成器。給定類別y和隨機變量z,生成類別爲y的樣本。
- Class-conditional discriminator Dcon: 用來判讀生成的樣本和類別y是否匹配。
- Class- specific discriminator Dspe: 用來判讀樣本是真實樣本還是生成樣本。
- Post-refinement classifier (PRC): 行人分類器,訓練的目的是對未標註的數據進行分類,爲未標註的數據賦予僞標註。
Instance synthesis
說明符號的含義
- (x,y)∼pl: 已標註數據的分佈,x表示裁剪出來的小圖
- x∼pu: 未標註數據的分佈
- (z,y)∼ps: 輸入到G的先驗分佈
與G對應的訓練公式
θGminladvG+μlfeaMat(1)
其中
ladvG=E(z,y)∼ps[log(1−Dcon(G(z,y),y))]+Ey=y+(z,y)∼ps[log(1−Dspe(G(z,y)))](2)
公式2第1項(2-1)作用是使得生成的樣本和類別y越匹配越好。公式2第2項(2-2)作用是使得生成的樣本越真實越好。
lfeaMat表示平均特徵匹配項
lfeaMat=∥∥∥E(x,y)∼pl[1{y=y+}fC(x)]−E(z,y)∼ps[1{y=y+}fC(G(z,y))]∥∥∥22(3)
公式3第1項(3-1)表示真實樣本特徵的平均值,特徵是指PRC最後一層隱藏層的特徵,公式3第2項(3-2)表示生成樣本特徵的平均值。公式3的目的是使得生成的行人實例匹配徵是樣本特徵的統計值,使得生成樣本更加真實,同時有助於PRC的訓練。
Optimizing the PRC
PRC分類網絡的訓練公式如下
θCminladvC+λflfeaMat+λclclaEva(4)
首先,第一項(4-1)是指把僞標註的樣本和對應的僞標註輸入到Dcon中,由Dcon來判斷未標註樣本和僞標註是否匹配,目的是使得僞標註儘可能準確。
ladvC=Ex∼pu[p(x∣θC)log(1−Dcon(x,y^)]
其中p(x∣θC)表示PRC預測出來的置信度,y^是僞標註,由p(x∣θC)決定具體的值。
第三項(4-3)是分類損失(分類網絡當然要有分類損失),包括3中數據的3個損失項
lclaEva=E(x,y)∼pl[−ylogp(x∣θC)]Ex∼pu[−p(x∣θC)logp(x∣θC)]Ey=y+(z,y)∼pu[−ylogp(G(z,y)∣θC)](6)
公式6第二項(6-2)有些奇怪,用p(x∣θC)代替真實樣本y的位置,這樣做的目的是使得PRC預測出來的結果分數高的越高,分數低的越低,提高分類器對未標註數據的分類信心。
Adversarial training
GAN的訓練過程還包括最大化的過程。
首先看Dcon
maxθDconE(x,y)∼pl[logDcon(x,y)]+21E(z,y)∼ps[log(1−Dcon(G(z,y),y))]+21Ex∼pu[log(1−Dcon(x,y^))](7)
因爲有3中數據,所以公式7有3項。
對於另外一個Dspe,它的作用是判斷樣本是真的還是假的
θDspcmaxEy=y+(x,y)∼pl[logDspc(x)]+Ey=y+(z,y)∼ps[1−Dspc(G(z,y))](8)
Enhancement of the base detector
使用預訓練的檢測器和PRC去掃描未標註的圖片,生成僞標註,然後使用已標註數據和僞標註數據重新訓練檢測器。
檢測器訓練時正樣本的選擇:IoU>0.5,其他的爲負樣本。
檢測器訓練單個樣本的損失函數
ldet(x,y)=−ylogp(x∣θR)+vr1{y=y+}llocReg(b,b~)(9)
分別是分類損失和bbox的迴歸損失。
總損失函數
θRminE(x,y)∼pl[ldet(x,y)]+v∗Ey∗=y+(x,y∗)∼pl∗[ldet(x,y∗)]+vcE(x,y∗)∼pl∗,y∗=y+(x,y)∼pl,y=y+orx′∈N(x)[∥p(x∣θR)−p(x′∣θR)∥22](11)
其中y∗表示僞標籤,pl∗表示對應的分佈。公式11前兩項分佈代表已標註數據和僞標註數據的損失。
僞標註數據有一個缺點,僞標註的bbox可能不準確,可能只包括gt bbox的一部分。論文提出了公式11第3項。選擇一個樣本x,在x的領域N(x)內隨機選擇一個樣本x′,對x′的預測結果要和x的預測結果一樣,這是(11-3)項的意思。這樣做可以保證檢測器的分類效果,減少網絡受到僞標註數據的壞影響。
Experiments
論文在3個行人檢測數據集上進行實驗。論文只使用數據集上5%的圖片的標註,剩餘的95%的圖片都當作沒有標註的數據。這個數據劃分就很誇張了,但是論文的實驗效果很好,說明了該方法確實可行。
論文首先看看GAN生成行人實例的效果
可以看到生成的行人實例已經很接近真實樣本了。
接着看看行人檢測的效果,指標是log-average miss rate,值越小越好。