PS-GAN:如何合成高質量行人圖像提升行人檢測性能?
本文首發於極市博客
作者:Panzer
論文地址:https://arxiv.org/abs/1804.02047
摘要:本文是利用合成圖像提升行人檢測性能的一次有益嘗試,提出一種合成行人圖像的方法(PS-GAN),該方法能夠合成高質量的行人圖像,並能夠很好地融合在周圍的場景中。
背景介紹
由CNN引領的行人檢測器已經在幾個數據集上(INRIA、ETH、Caltech、KITTI、CityPersons)取得了很好的性能。然而檢測器的訓練嚴重依賴大量標註數據,有限的訓練數據往往使得檢測器的性能達到一個瓶頸就很難再有提升了;另一方面,在現實場景應用中標註數據的代價是很高的,那麼能不能自動生成一些標註數據來輔助檢測器的訓練呢?生成的標註數據又能在多大程度上提升檢測器的性能?本文對此做了一次有益嘗試。
生成對抗網路(Generative Adversarial Nets, GAN)已經在圖像合成領域獲得了很多的成功應用(如DCGAN),其基本思路是輸入一張noise圖像,用生成器(Generator)生成一張偽圖像去欺騙判別器,判別器(Discriminator)則努力將偽圖像和真實圖像區分開,在這種對抗訓練的過程中,生成器會逐漸變得強大,生成的偽圖像幾乎和真圖像一樣,這樣我們的目的就達到了。但是要想使得GAN生成的行人圖像能夠輔助檢測器的訓練,個人認為面臨兩大挑戰:一是目前GAN能生成的圖像解析度還比較小;二是如何使得生成的行人圖像融合到周圍的場景中呢?本文就為我們解答了這兩個疑惑。
本文方法
- 基本思路:
圖1給出了本文方法的一個基本思路:要訓練一個GAN使得它能合成於場景相融的圖像,PS-GAN的整個訓練過程如下:
Generator(G):首先我把一張場景圖Real image中的一個行人框全部用noise替換(目的就是在這個框中生成一個行人),然後送給生成器G,輸出是一張生成的場景圖。
Discriminator(D):包含兩部分,DP負責生成的行人的真假,Db負責判斷生成的場景圖的真假。為什麼要用兩個Discriminator呢?因為DP只能關注到行人的細節信息,看不到場景信息,而Db則能捕捉到整個場景的信息,二者剛好形成互補優勢,才能使得生成的行人圖像和周圍的場景能夠有機融合。想法特別棒,那麼網路具體是怎麼訓練的呢?
- 模型結構:
圖2給出了網路訓練的實現流程,其網路架構借鑒了pix2pix GAN [1]的訓練過程,在此基礎上實現我們的目的。
Generator(G):就是用的pix2pix GAN [1]中的U-Net。
Discriminator(Db):也是用的pix2pix GAN [1]中的PatchGAN。如圖2中的左半部分所示,Real image和Noise image接成6通道的圖像行成一對pair,作為正樣本;Generated image和Noise image行成一對pair,作為負樣本,以此來訓練Db;
Discriminator(Dp):用的是一個含有5層卷積層的網路,為了適應不同尺度的行人,最後接了一層空間金字塔池化層(SPP layer),SPP是經典的目標檢測演算法SPPNet [2]中提出的,可以保留行人的局部結構信息啊,實驗證明SPP對於生成細節豐富的行人圖像非常有用。在本文的實現中,用了三層空間金字塔,分別是1x1, 2x2, 4x4的池化,共21個bin,最後把這些特徵拼接起來送給分類器。
- 損失函數:
有了以上的訓練流程,剩下的就是利用什麼樣的損失函數去指導網路去訓練了。由於有兩個Discriminator,本文的對抗損失函數主要包括兩個部分:
1、G和Db之間:如(1)式,用的是least square loss。
2、G和Dp之間:如(2)式,用的是傳統的GAN中的cross entropy loss。
為什麼同樣是Discriminator,這兩個loss還不一樣呢?實驗效果給出了答案(見圖3),作者在文中是這樣解釋的:least square loss比cross entropy loss能獲得更大的損失值,使得模型對每個像素都更加敏感,因而會使得生成的行人圖像的細節更加豐富,而Db更應該關注的是場景的全局信息,因此用cross entropy loss就更好了。此外,參考pix2pix [1],也是為了使得生成的圖像儘可能逼近於真實圖像,還增加了一個L1 loss:
最終整個網路的loss為:
參數設置和pix2pix GAN [1]中一樣。下面我們看一下生成效果,其中A是指不用SPP layer的效果,B是指兩個Discriminator都用least square loss,C是指兩個Discriminator都用cross entropy loss,可以發現PS-GAN生成效果最好。
實驗分析
- 實驗細節:
(1)為了驗證生成圖像的質量,PS-GAN的訓練圖像來自於Cityscapes [3],PS-GAN的測試圖像分別來自Cityscapes和Tsinghua-Daimler Cyclist Benchmark [4]。
(2)為了驗證生成圖像是否有利於提升行人檢測性能,選用Faster R-CNN作為檢測器,驗證合生圖像到底能在多大程度上提升Faster R-CNN的性能。
- 實驗結果:
(1)生成圖像的質量:
和圖3相比,圖4表明,即使在空白圖像上,PS-GAN也能生成和場景比較匹配的高質量行人圖像。以上圖像都是隨機從原圖上crop出來的256x256大小的圖像,把這些crop出來的圖像貼合原圖,就得到如下圖所示的例子:
可以發現這些合成圖像已經和真實圖像很接近,不仔細看,肉眼都無法判斷是合成圖像。那麼這些「如此真實」的合成圖像到底能給檢測器的訓練帶來多少的性能提升呢?
(2)生成圖像對檢測器的提升:
上表為在Cityscapes [3]的檢測性能,可以看到pix2pix GAN[1]生成的圖像基本沒有提升檢測器的性能啊,說明圖像生成的質量還是很關鍵的,但是本文的PS-GAN是有效的,從表中可以得到以下三點結論:
1、合成圖像對性能提升是有上限的,在1826張真實圖像下,加5000個合成行人時檢測器性能達到飽和,個人認為主要還是因為合成的行人較為單一,而這些合成圖像中的背景信息是不變的;
2、不同domain上訓練得到的model很難generalize,比如在Pascal VOC上訓練的model只有37%的AP,甚至不如我們用300張真實圖像訓練的結果;
3、對於PS-GAN,見過更多的訓練圖像,其生成的圖像更能提升檢測器的性能,在有300張真實圖像時能提升1%,而有1000張真實圖像時能提升4%,個人認為還是因為1000張真實圖像比300張圖像多了更豐富的場景信息,使得檢測器在訓練過程中學到了更為general的信息。
下表則展示了在Tsinghua-Daimler Cyclist Benchmark [4] 的檢測性能,結論同上,但也說明了本文方法可以遷移到另外一個數據集上。
下面看一看生成的圖像能不能被我們的檢測器成功檢測出來呢:如果能檢測率越高,豈不是證明了我們生成的行人圖像更加真實?從下表可以看出,PS-GAN生成的圖像,檢測率能達到90%,而pix2pix GAN[1]生成的圖像最高只有70%左右,再一次證明我們PS-GAN在生成行人圖像上的優勢。
總結展望
- 本文貢獻:
(1)提出了一種生成行人圖像的全新方法PS-GAN,能夠生成與背景相容的高質量圖像;
(2)生成的行人圖像能夠提升檢測器的檢測性能,為無監督行人檢測提供了一種可行思路。
- 個人見解:
(1)熟悉GAN的同學可能知道,這篇文章主要借鑒了pix2pix GAN[1]的核心思想,裝出了新酒——PS-GAN,並將其用在行人檢測領域,是利用GAN合成圖像提升detection performance的又一次成功應用,相似應用可見於Person Re-ID領域 [5]。
(2)在合成圖像上的檢測率能達到90%,而真實圖像上的檢測率只有60%?合成圖像上的行人目標這麼容易被檢測出來?這是因為本文PS-GAN生成的行人圖像還比較單一,而真實圖像中行人目標的變化更為複雜:尺度範圍更大,遮擋程度也千變萬化,正式這些複雜變化導致很難被檢測器學習到,因而利用有限的訓練數據檢測器的性能達到一定的瓶頸後再難以提升,而這些複雜變化是PS-GAN無法生成的,因而在合成圖像上的檢測率能達到90%,進而用PS-GAN生成的圖像對檢測器帶來的提升也是有限的。
總之,本文為生成行人圖像提供了一種很好的思路,如何使得生成的行人目標更為豐富,能夠cover現實場景中的各種變化,是下一個要攻克的堡壘。
參考文獻
[1] Isola, P., Zhu, J.Y., Zhou, T., Efros, A.A.: Image-to-image translation with conditional adversarial networks. CVPR (2017)
[2] He, K., Zhang, X., Ren, S., Sun, J.: Spatial pyramid pooling in deep convolutional networks for visual recognition. ECCV (2014)
[3] Marius, C., Mohamed, O., Sebastian, R., Timo, R., Markus, E., Rodrigo, B.,Uwe, F., Stefan, R., Bernt, S.: The cityscapes dataset for semantic urban scene understanding. CVPR(2016)
[4] Li, X., Flohr, F., Yang, Y., Xiong, H., Braun, M., Pan, S., Li, K., Gavrila, D.M.: A new benchmark for vision-based cyclist detection. In: 2016 IEEE IntelligentVehicles Symposium (IV). (2016)
[5] Zhedong Zheng, Liang Zheng, Yi Yang.: Unlabeled Samples Generated by GAN Improve the Person Re-identification Baseline in vitro. ICCV(2017)
本文為極市原創文章,轉載請發私信~
推薦閱讀: