別魔改網絡了,Google研究員:模型精度不高,是因爲你的Resize方法不夠好!

點擊下方AI算法與圖像處理”,一起進步!

重磅乾貨,第一時間送達


作者丨小馬
編輯丨極市平臺

導讀

 

儘管近年來卷積神經網絡很大地促進了計算機視覺的發展,但一個重要方面很少被關注:圖像大小對被訓練的任務的準確性的影響 。在本文介紹了一篇谷歌在ICCV2021的工作,作者提出了一個可學習的調整器模型(resizer model)來提高模型的性能。

【寫在前面】

儘管近年來卷積神經網絡很大地促進了計算機視覺的發展,但一個重要方面很少被關注:圖像大小對被訓練的任務的準確性的影響 。通常,輸入圖像的大小被調整到一個相對較小的空間分辨率(例如,224×224),然後再進行訓練和推理。這種調整大小的機制通常是固定的圖像調整器(image resizer)(如:雙行線插值)但是這些調整器是否限制了訓練網絡的任務性能呢? 作者通過實驗證明了典型的線性調整器可以被可學習的調整器取代,從而大大提高性能 。雖然經典的調整器通常會具備更好的小圖像感知質量(即對人類識別圖片更加友好),本文提出的可學習調整器不一定會具備更好的視覺質量,但能夠提高CV任務的性能。

在不同的任務中,可學習的圖像調整器與baseline視覺模型進行聯合訓練。這種可學習的基於cnn的調整器創建了機器友好的視覺操作,因此在不同的視覺任務中表現出了更好的性能 。作者使用ImageNet數據集來進行分類任務,實驗中使用四種不同的baseline模型來學習不同的調整器,相比於baseline模型,使用本文提出的可學習調整器能夠獲得更高的性能提升。

背景

目前的resize方法一般都是已經設計好的,不可學習的,典型的有NEAREST,BILINEAR,BICUBIC。

我們先來看看這些resize算法的不同效果:

原圖:

NEAREST:

BILINEAR:

BICUBIC:

可以看出,對人來說,不同的resize方法差別還是蠻大的。那麼對於模型來說應該採用什麼樣的resize方法呢?爲此,作爲提出了採用可學習的resizer model來對圖片進行resize,以進一步提高CV任務的性能。

1. 論文和代碼地址

論文地址:https://arxiv.org/abs/2103.09950

代碼地址:未開源

2. Motivation

深度神經網絡和大規模圖像數據集的出現使機器視覺識別取得了重大突破。這類數據集中的圖像通常是從網絡上獲得的,因此已經經過了各種後處理步驟。除了收集數據時採用的一些處理方法,在CNN訓練的時候,通常還需要額外的圖像處理方法,比如resize。

圖像下采樣是分類模型中最常用的預處理模塊。圖像大小的調整主要有以下幾個原因:

(1)通過梯度下降的mini-batch學習需要batch中的所有圖像具有相同的空間分辨率

(2)顯存限制阻礙了在高分辨率下訓練CNN模型;

(3)較大的圖像尺寸會導致訓練和推理的速度較慢。

給定固定的顯存預算,需要在空間分辨率和Batch Size之間進行trade-off。而這個trade-off會很大程度上會影響模型的最終性能。

目前最基本的調整器的方法有最近鄰、bilinear和bicubic(如Section 0中的可視化結果)。這些調整器速度快,可以靈活地集成到訓練和測試框架中。但是,這些方法是在深度學習成爲視覺識別任務的主流解決方案之前就發展起來的,因此沒有對深度學習進行專門的優化。

近年來,通過圖像處理方法在提高分類模型的準確性和保持感知質量方面取得了良好的效果。這類方法保持了分類模型的參數固定,並且只訓練了增強模塊。此外,也有一些方法採用了聯合訓練預處理模塊和識別模型,這些算法建立了具有混合損失的訓練框架,允許模型同時學習更好的增強和識別。然而,在實踐中,調整圖像大小等識別預處理操作不應該優化爲更好的感知質量,因爲最終目標是讓識別網絡產生準確的結果,而不是產生對人覺得“看起來好”的圖像。

因此,本文提出了一種與分類模型聯合訓練的新型圖像調整器(如上圖所示)。

並且,這種設計能夠提高分類模型的性能(如上表所示)。

3. 方法

本文的調整器模型是易於訓練的,因此它可以插入到各種深度學習框架和任務中。此外,它還可以處理任何的縮放因子,包括不同比例的放大和縮小。在本文中,作者探索了分辨率與batch大小的trade-off,從而爲特定CV任務尋找最佳的分辨率。在理想情況下,通過這種自適應調整大小獲得的性能增益需要超過調整大小增加到的額外計算複雜度。另一方面,bilinear和bicubic等縮放方法本身是不可訓練的,因此不適合完成這樣的目標。爲此,作者設計了一個滿足這些標準的模型。

3.1. Resizer Model

本文提出的調整器架構如上圖所示。該模型最重要的特性是(1)bilinear resizer,(2)skip connection。bilinear resizer使得能夠向模型中合併以原始分辨率計算的特徵。skip connection使得模型能夠更容易學習。上圖中的bilinear resizer模塊使得模型能夠呈現一個bottleneck或者inverse bottleneck的結構。與典型的編碼-解碼器架構不同,Resizer Model能夠將圖像調整爲任何目標大小和長寬比。此外,學習到的Resizer Model的性能幾乎不依賴於bilinear resizer的選擇。

在Resizer Model中有r個相同的殘差塊,在實驗中,作者設置了r=1或2。所有的中間卷積層都有n(n=16)個大小爲3×3的核。第一層和最後一層的卷積核大小爲7×7。

本文提出的Resizer Model相對來說比較輕量級,與原始的模型相比,沒有添加大量的可訓練參數。Resizer Model各種配置的可訓練參數數量如上表所示。ResNte-50有約2300萬個參數,與原始模型的參數相比,Resizer Model引入的參數可以說是非常小的。

3.2. Learning Losses

Resizer Model是用Baseline Model的損失函數進行聯合訓練的。由於Resizer Model的目標是學習baseline視覺任務的最優調整器,因此作者沒有對Resizer Mode用任何其他損失或正則化約束。

3.2.1 Image Classification

分類模型採用交叉熵損失進行訓練。ImageNet由1000個類組成,因此,模型的輸出代表1000個預測類概率。作者在訓練過程中採用了label-smoothing方法,損失函數如下所示:

其中 是預測和平滑的標籤,K表示類的總數。

3.2.2 Image Quality Assessment (IQA)

質量評估模型通過迴歸損失進行訓練。AVA數據集中的每張圖像都有一個人工評級的直方圖,得分從1到10不等。在本文中,作者使用Earth Mover's Distance (EMD)作爲訓練損失。具體地說,baseline模型有一個Softmax層,輸出10個logits。EMD損失可以表示爲:

其中 代表累積分佈函數,

4.實驗

上表展示了本文實驗的細節的總結。首先,在每個數據集上,作者用 bilinear和bicubic進行圖片縮放來訓練baseline模型,而不用提出的Resizer Model。這些模型被用作benchmark來對比Resizer Model的性能。訓練的任務包括分類和IQA。然後作者又用了可學習的Resizer Model和Baseline模型進行聯合訓練來對比實驗結果。

4.1. Classification

作者採用了四個模型來驗證Resizer Model的有效性。可以看到,使用Resizer Model訓練的網絡顯示出比默認baseline更好的性能。與默認baseline相比,DenseNet-121和MobileNet-v2分別顯示出最大和最小的性能增益。

此外,無論是否使用Resizer Model,增加輸入分辨率都有利於DenseNet-121、ResNet-50和MobileNet-v2的性能提升。

上表顯示了不同resize方法和不同模型下resizer model的輸出結果。這些結果的共同點是具備高頻細節,這可能會使分類模型更有效。

4.2. Quality Assessment

在AVA數據集上,作者訓練了三個baseline模型,並使用PLCC和SRCC評價指標來評價模型的性能。可以看出,與Baseline模型相比,本文提出的resizer model能夠進一步模型的性能。

上圖展示了resizer model的輸出結果。可以看出,Inception和DenseNet模型的圖像有更多的細節信息;EfficientNet輸出模型有很強顏色偏移。

4.3. Generalization

此外,作者還驗證了resizer model的遷移泛化能力,作者嘗試了在不同baseline模型訓練的resizer model進行互換,結果如上表所示。這些結果表明,爲一個模型訓練的resizer model通過很少的fine-tune就可以作爲另一個模型的resizer model。

4.4. Ablation

作者在不同的 上進行了消融實驗,結果如上表所示。作者在實驗中採用了

5. 總結

在本文中,作者提出了一個可學習的調整器模型(resizer model)來提高模型的性能。作者關注於調整圖像大小,並沒有對重新調整的圖像施加像素或感知的損失函數,因此結果只針對機器視覺任務進行了優化。實驗表明,用resizer model代替傳統的圖像調整器可以提高視覺模型的性能。

個人認爲,本文的實現方法其實非常簡單,就是用了一個模型去學習圖片應該怎麼resize。但是思路還是比較新奇的,因爲以前的方法大多都是關注在怎麼更改模型的結構來提升模型的性能,但是這篇論文自己開了一個賽道,學習一個更好的調整器模型,用更適用於深度學習模型的方式來進行resize。


本文亮點總結


1. 圖像大小的調整主要原因:

(1)通過梯度下降的mini-batch學習需要batch中的所有圖像具有相同的空間分辨率 ;

(2)顯存限制阻礙了在高分辨率下訓練CNN模型;

(3)較大的圖像尺寸會導致訓練和推理的速度較慢。

2. 本文模型最重要的特性是(1)bilinear resizer,(2)skip connection。bilinear resizer使得能夠向模型中合併以原始分辨率計算的特徵。skip connection使得模型能夠更容易學習。

努力分享優質的計算機視覺相關內容,歡迎關注:

交流羣


歡迎加入公衆號讀者羣一起和同行交流,目前有美顏、三維視覺計算攝影、檢測、分割、識別、醫學影像、GAN算法競賽等微信羣


     
        
        
        
個人微信(如果沒有備註不拉羣!
請註明: 地區+學校/企業+研究方向+暱稱



下載1:何愷明頂會分享


AI算法與圖像處理」公衆號後臺回覆:何愷明,即可下載。總共有6份PDF,涉及 ResNet、Mask RCNN等經典工作的總結分析


下載2:終身受益的編程指南:Google編程風格指南


AI算法與圖像處理」公衆號後臺回覆:c++,即可下載。歷經十年考驗,最權威的編程規範!



   
      
      
      
下載3 CVPR2021

AI算法與圖像處公衆號後臺回覆: CVPR 即可下載1467篇CVPR 2020論文 和 CVPR 2021 最新論文


本文分享自微信公衆號 - AI算法與圖像處理(AI_study)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章