您當前的位置:首頁 > 書法

【高手之道】海康威視研究院ImageNet2016競賽經驗分享

作者:由 程程 發表于 書法時間:2016-10-27

深度學習大講堂致力於推送人工智慧,深度學習方面的最新技術,產品以及活動。請關注我們的知乎專欄!

摘要

海康威視研究院獨家授權,分享ImageNet2016競賽Scene Classification第一名,Object Detection第二名,Object Localization第二名,Scene Parsing第七名背後的技術修煉之道。

下面為大家介紹海康威視研究院在本次ImageNet2016競賽中的相關情況。

【高手之道】海康威視研究院ImageNet2016競賽經驗分享

【高手之道】海康威視研究院ImageNet2016競賽經驗分享

團隊成員和分工如下:

【高手之道】海康威視研究院ImageNet2016競賽經驗分享

【高手之道】海康威視研究院ImageNet2016競賽經驗分享

【高手之道】海康威視研究院ImageNet2016競賽經驗分享

【高手之道】海康威視研究院ImageNet2016競賽經驗分享

【高手之道】海康威視研究院ImageNet2016競賽經驗分享

【高手之道】海康威視研究院ImageNet2016競賽經驗分享

資料增強對最後的識別效能和泛化能力都有著非常重要的作用。我們使用下面這些資料增強方法。第一,對顏色的資料增強,包括色彩的飽和度、亮度和對比度等方面,主要從Facebook的程式碼裡改過來的。第二,PCA Jittering,最早是由Alex在他2012年贏得ImageNet競賽的那篇NIPS中提出來的。 我們首先按照RGB三個顏色通道計算了均值和標準差,對網路的輸入資料進行規範化,隨後我們在整個訓練集上計算了協方差矩陣,進行特徵分解,得到特徵向量和特徵值,用來做PCA Jittering。第三,在影象進行裁剪和縮放的時候,我們採用了隨機的影象差值方式。第四, Crop Sampling,就是怎麼從原始影象中進行縮放裁剪獲得網路的輸入。比較常用的有2種方法:一是使用Scale Jittering,VGG和ResNet模型的訓練都用了這種方法。二是尺度和長寬比增強變換,最早是Google提出來訓練他們的Inception網路的。我們對其進行了改進,提出Supervised Data Augmentation方法。

【高手之道】海康威視研究院ImageNet2016競賽經驗分享

【高手之道】海康威視研究院ImageNet2016競賽經驗分享

尺度和長寬比增強變換有個缺點,隨機去選Crop Center的時候,選到的區域有時候並不包括真實目標的區域。這意味著,有時候使用了錯誤的標籤去訓練模型。如圖所示,左下角的圖真值標籤是風車農場,但實際上裁剪的區域是藍天白雲,其中並沒有任何風車和農場的資訊。我們在Bolei今年CVPR文章的啟發下,提出了有監督的資料增強方法。我們首先按照通常方法訓練一個模型,然後用這個模型去生成真值標籤的Class Activation Map(或者說Heat Map), 這個Map指示了目標物體出現在不同位置的機率。 我們依據這個機率,在Map上隨機選擇一個位置,然後映射回原圖,在原圖那個位置附近去做Crop。

【高手之道】海康威視研究院ImageNet2016競賽經驗分享

【高手之道】海康威視研究院ImageNet2016競賽經驗分享

如圖所示,對比原始的尺度和長寬比增強變換,我們方法的優點在於,我們根據目標物體出現在不同位置的機率資訊,去選擇不同的Crop區域,送進模型訓練。透過引入這種有監督的資訊,我們可以利用正確的資訊來更好地訓練模型,以提升識別準確率。 (+0。5~0。7)

【高手之道】海康威視研究院ImageNet2016競賽經驗分享

【高手之道】海康威視研究院ImageNet2016競賽經驗分享

場景資料集有800萬樣本,365個類別,各個類別的樣本數非常不平衡,有很多類別的樣本數達到了4萬,也有很多類別的樣本數還不到5000。這麼大量的樣本和非常不均勻的類別分佈,給模型訓練帶來了難題。在去年冠軍團隊的Class-Aware Sampling方法的啟發下,我們提出了Label Shuffling的類別平衡策略。在Class-Aware Sampling方法中,他們定義了2種列表,一是類別列表,一是每個類別的影象列表,對於365類的分類問題來說,就需要事先定義366個列表,很不方便。我們對此進行了改進,只需要原始的影象列表就可以完成同樣的均勻取樣任務。以圖中的例子來說,步驟如下:首先對原始的影象列表,按照標籤順序進行排序;然後計算每個類別的樣本數量,並得到樣本最多的那個類別的樣本數。根據這個最多的樣本數,對每類隨機都產生一個隨機排列的列表;然後用每個類別的列表中的數對各自類別的樣本數求餘,得到一個索引值,從該類的影象中提取影象,生成該類的影象隨機列表;然後把所有類別的隨機列表連在一起,做個Random Shuffling,得到最後的影象列表,用這個列表進行訓練。每個列表,到達最後一張影象的時候,然後再重新做一遍這些步驟,得到一個新的列表,接著訓練。Label Shuffling方法的優點在於,只需要原始影象列表,所有操作都是在記憶體中線上完成,非常易於實現。

【高手之道】海康威視研究院ImageNet2016競賽經驗分享

【高手之道】海康威視研究院ImageNet2016競賽經驗分享

我們使用的另外一個方法是Label Smoothing,是今年Google的CVPR論文中提出來的方法。根據我們的混淆矩陣(Confusion Matrix)的分析,發現存在很多跨標籤的相似性問題,這可能是由於標籤模糊性帶來的。所以,我們對混淆矩陣進行排序,得到跟每個標籤最相近的4個標籤,用它們來定義標籤的先驗分佈,將傳統的 one-hot標籤,變成一個平滑過的soft標籤。透過這種改進,我們發現可以從某種程度上降低過擬合問題。(+0。2~0。3)

【高手之道】海康威視研究院ImageNet2016競賽經驗分享

【高手之道】海康威視研究院ImageNet2016競賽經驗分享

這邊還有一些其他的技巧來提升效能,我們將其總結成一個原則:訓練和測試要協調。在訓練的時候,我們通常都需要做資料增強,在測試的時候,我們通常很少去做資料增強。這其中似乎有些不協調,因為你訓練和測試之間有些不一致。透過我們的實驗發現,如果你在訓練的最後幾個epoch,移除資料增強,然後跟傳統一樣測試,可以提升一點效能。同樣,如果訓練的時候一直使用尺度和長寬比增強資料增強,在測試的時候也同樣做這個變化,隨機取32個crop來測試,也可以在最後的模型上提升一點效能。還有一條,就是多尺度的訓練,多尺度的測試。另外,值得指出的是,使用訓練過程的中間結果,加入做測試,可以一定程度上降低過擬合。

【高手之道】海康威視研究院ImageNet2016競賽經驗分享

【高手之道】海康威視研究院ImageNet2016競賽經驗分享

對於模型結構,沒什麼特別的改進,我們主要使用了Inception v3和Inception ResNet v2,以及他們加深加寬的版本。還用到了Wide ResNet 。

【高手之道】海康威視研究院ImageNet2016競賽經驗分享

【高手之道】海康威視研究院ImageNet2016競賽經驗分享

此次競賽的語義分割任務非常具有挑戰性。它一方面需要目標整體層面的資訊,同時還需要每個畫素的分類準確率。目前有很多語義分割的模型,但哪一種框架是最好的仍然是一個問題。我們設計了一個Mixed Context Network(MCN),它由一系列Mixed Context Blocks(MCB)堆疊而成。如圖所示,每個MCB包括兩個並行的卷積層:1個1x1卷積和1個3x3 Dilated卷積。Dilated卷積的取樣率分別設定成了1,2,4,8,16。除了MCN之外,我們還在最後設計了一個Message Passing Network(MPN),來增強不同標籤之間的空間一致性。

【高手之道】海康威視研究院ImageNet2016競賽經驗分享

【高手之道】海康威視研究院ImageNet2016競賽經驗分享

CRF as RNN可以被加到網路的最後,與CNN一起聯合訓練。但是CRF as RNN比較耗費視訊記憶體,尤其是在類別數比較大的時候(比如ADE20K有150類)。可以透過降低輸入影象的解析度來節省視訊記憶體,但是這樣做也會帶來一些負面影響。為了解決這個問題,我們引入了一個新的比較省視訊記憶體的模組,叫做MPN。在MPN中,我們首先將Score Map的通道從150降到了32,然後接了一個Permutohedral卷積層,用於做高維的高斯濾波。我們去掉了其中的平滑項,僅僅將1x1卷積層的特徵和Permutohedral卷積層的特徵連線,然後接一個3x3的卷積。實驗證明,這樣的結構也能較好地工作。

【高手之道】海康威視研究院ImageNet2016競賽經驗分享

【高手之道】海康威視研究院ImageNet2016競賽經驗分享

【高手之道】海康威視研究院ImageNet2016競賽經驗分享

【高手之道】海康威視研究院ImageNet2016競賽經驗分享

我們的檢測和定位,都是基於Faster-RCNN這個框架。圖中我們列出了所有用到的技巧。有很多技巧在以前的文獻中都可以找到,比如多尺度的訓練和測試,難樣本挖掘,水平翻轉和Box Voting。但我們自己也做了很多新的改進,比如樣本均衡,Cascade RPN,預訓練的Global Context等。至於網路結構,我們僅僅用了三個ResNet-101模型。一個來自於MSRA,一個來自於Facebook,還有一個是我們自己訓練的Identity Mapping版的ResNet-101。我們最好的單模型結果,是源自我們自己訓練的Identity Mapping版的ResNet-101。

【高手之道】海康威視研究院ImageNet2016競賽經驗分享

【高手之道】海康威視研究院ImageNet2016競賽經驗分享

我們設計了一個輕量級的Cascade RPN。2個RPN順序堆疊在一起。 RPN 1使用滑窗Anchors,然後輸出比較精確定位的Proposals。RPN 2使用RPN 1的Proposals作為Anchors。我們發現這個結構可以提升大中尺寸Proposals的定位精度,但不適合小的Proposals。所以在實際中,我們RPN1提取小的Proposals,RPN2提取大中尺寸的Proposals。

注:

Proposals尺寸的閾值是64 * 64。

【高手之道】海康威視研究院ImageNet2016競賽經驗分享

【高手之道】海康威視研究院ImageNet2016競賽經驗分享

另外一個改進就是限制正負Anchor的比例。在傳統的RPN中,Batch Size通常是256,理想的正負Anchor比例是1。但是在實際使用中,這個比例往往會很大,通常會大於10。所以我們縮小了Batch Size,控制最大的比例為1。5。最小的Batch Size設定為32。對比實驗表明,使用Cascade RPN和限制正負Anchor比例這兩個策略,在ImageNet DET的驗證集上,AR提升了5。4個點,Recall@0。7提升了9。5個點,而Recall@0。5只提升1個點。這說明Proposals的定位精度得到了顯著的改善。

【高手之道】海康威視研究院ImageNet2016競賽經驗分享

【高手之道】海康威視研究院ImageNet2016競賽經驗分享

Global Context在去年Kaiming的論文中就已經提到,他們使用這個方法得到了1個點的mAP提升。我們也實現了自己的Global Context方法:除了在在RoI上做RoIPooling 之外,我們還對全圖做了RoIPooling來獲得全域性特徵。這個全域性特徵僅僅被用來分類,不參加bbox迴歸。我們實驗發現,Global Context如果使用隨機初始化,其效能提升有限。當我們採用預訓練的引數進行精調之後,發現mAP的效能可以提升3。8個點。

【高手之道】海康威視研究院ImageNet2016競賽經驗分享

【高手之道】海康威視研究院ImageNet2016競賽經驗分享

此外,我們發現,在1000類的LOC上預訓練,然後再在DET資料上精調,可以 得到額外0。5個點的mAP提升。

【高手之道】海康威視研究院ImageNet2016競賽經驗分享

【高手之道】海康威視研究院ImageNet2016競賽經驗分享

平衡取樣是去年場景分類任務中所用到的一個技巧。我們也將它用來做檢測任務。左側是一個類別的列表,對於每個類別,我們又建立了一個影象列表。訓練過程中,我們先從類別列表中選擇一個類別,然後從這個類對應的影象列表中取樣。和分類任務不同的是,檢測任務中一張影象可能包含多個類別的目標。對於這種多標籤的影象我們允許它們出現在多個類別的影象列表中。使用平衡取樣技術,可以在VOC2007資料集上獲得0。7的mAP提升。

【高手之道】海康威視研究院ImageNet2016競賽經驗分享

【高手之道】海康威視研究院ImageNet2016競賽經驗分享

整合上述所列的各項技術,我們的檢測模型取得了SOTA的效能。在ImageNet DET任務中,我們以65。3的mAP獲得了第二名。就單個模型而言,我們的模型能以少許優勢排名第一。我們使用了相同的檢測框架來完成ImageNet LOC任務。在最後的競賽中,我們以8。7的定位誤差排名第二。在PASCAL VOC 2012檢測任務中,我們單模型獲得了87。9的 mAP,超過了去年Kaiming的模型有4個點之多。

【高手之道】海康威視研究院ImageNet2016競賽經驗分享

【高手之道】海康威視研究院ImageNet2016競賽經驗分享

【高手之道】海康威視研究院ImageNet2016競賽經驗分享

【高手之道】海康威視研究院ImageNet2016競賽經驗分享

【高手之道】海康威視研究院ImageNet2016競賽經驗分享

【高手之道】海康威視研究院ImageNet2016競賽經驗分享

【高手之道】海康威視研究院ImageNet2016競賽經驗分享

【高手之道】海康威視研究院ImageNet2016競賽經驗分享

該文章屬於“深度學習大講堂”原創,如需要轉載,請聯絡@果果是枚開心果.

作者簡介:

海康威視研究院

是海康威視最重要的核心部門,主要致力於基礎技術和前沿技術的探索和創新,在視音訊編解碼、影片影象處理、影片智慧分析、雲計算、大資料、雲端儲存、人工智慧等方面有深厚的技術積累,為海康威視核心產品和新興業務拓展提供了有力的支撐,成為公司主營業務和創新業務發展的重要驅動力。研究院在KITTI、MOT、Pascal VOC、ImageNet等世界級人工智慧競賽中均獲得過第一的好成績。歡迎各位老師、學者、專家及其他業內人士,蒞臨杭州,參觀交流。技術探討、訪問交流、求職招聘以及其他相關事宜,歡迎郵件聯絡謝迪博士:xiedi@hikvision。com。

原文連結:【高手之道】海康威視研究院ImageNet2016競賽經驗分享

歡迎大家關注我們的微信公眾號,搜尋微信名稱:深度學習大講堂

【高手之道】海康威視研究院ImageNet2016競賽經驗分享

【高手之道】海康威視研究院ImageNet2016競賽經驗分享

標簽: 我們  列表  訓練  類別  影象