論文筆記:RankIQA

張吱吱發表於2021-05-22

image-20210522210809999

0.Abstract

本文提出了一種從排名中學習的無參考影像質量評估方法(RankIQA)。為了解決IQA資料集大小有限的問題,本文訓練了一個孿生網路,通過使用合成的已知相對影像質量排名的資料集來訓練網路並對影像進行排名。這些具有排名的資料集可以不用主觀方法去標註,而是自動生成(失真程式碼)。然後本文把訓練好的孿生網路中表示的知識(生成的網路權重,其特徵表示的是失真)微調(fine-tuning)到傳統的CNN,以此來對單個影像進行影像質量評估的絕對分數的估算。本文還提出瞭如何通過單個網路向前傳播一批影像並反向傳播該批次的所有影像對(pairs of images)得出的梯度,從而使本文的方法比傳統的孿生網路有效得多。在TID2013基準實驗上,本文的方法優於現有的NR-IQA技術,甚至在無需高質量影像對照的情況下,本文的方法甚至全部領先於最新的技術。

1.Introduction

絕大多數可用的IQA資料集太小而無法有效的訓練CNN。本文提出了一種解決大型資料集缺失的方法。雖然很難獲得人工主觀方法標記得到的資料集,但是可以方便的使用失真程式碼來生成沒有絕對質量評估分數但是有相對質量評估等級的資料集。

本文使用孿生網路來學習根據影像質量對影像進行評估,然後將學到的模型權重微調到傳統CNN中,提高IQA的準確性。

本文提出了一種在孿生網路中進行高效反向傳播的方法。該方法通過單個網路轉發一批影像(a batch of image),然後反向傳播該批次中所有影像對(all pairs of images)得出的梯度。這種方法被證明能比其他訓練方法(hard-negative mining)更好,更快的訓練網路。

2. Related work

傳統的NR-IQA方法

大多數傳統的NRIQA可分為自然場景統計(NSS)方法和基於學習的方法。

在NSS方法中,假設不同質量的影像在對特定過濾器響應的統計中有所不同。

在基於學習的方法中,使用支援機器迴歸或神經網路提取區域性特徵並對映到 MOS。

碼本(codebook)方法結合了不同的功能,而不是直接使用區域性特徵。可以利用沒有 MOS 的資料集通過無監督學習構建碼本(codebook),由於現有資料集規模較小,這一點尤為重要。Saliency 特徵可用於模擬人類視覺系統(HVS)並提高這些方法的精度。

深度學習的NR-IQA方法

近年來,一些作品將深度學習用於 NR-IQA。深度網路的主要缺點之一是需要大型標記資料集,這些資料集目前無法用於 NR-IQA 研究。

Kang考慮小32×32個補丁(patches)而不是影像,從而大大增加了訓練樣本的數量。

有人設計了一個多工 CNN(multi-task CNN),以同時瞭解失真型別和影像質量。

Bianco 建議使用預先訓練的網路來緩解培訓資料的缺乏。他們從在IQA資料集中微調的預先訓練的模型中提取特徵。然後將這些特徵用於訓練 SVR 模型,以便將特徵對映到 IQA 分數。

本文提出了一個完全不同的方法來解決缺乏訓練資料的問題:使用大量自動生成的影像質量排名(合成失真的資料集)來訓練深度網路。這使得能夠訓練比之前的深度學習NR-IQA 的方法中直接根據絕對 IQA 資料進行訓練的其他方法更深入、更廣的網路。

排名學習

這些方法通過將排名損失函式(rank loss)降至最低從標註的真實排名中學習排名特徵。然後,此特徵可用於對測試物件進行排名。

孿生網路架構結合了排名和 CNN 的想法,在人臉驗證問題和影像補丁比較(comparing image patches)方面取得了巨大成功。

本文的方法並不是為了訓練出一個可以得到排名的網路,而是用排名學習來作為一個資料增強技術。我們通過容易獲得的排名好(影像質量評估分數)的影像資料集來訓練一個大的網路,然後用來微調到NR-IQA任務中(得出無參考影像質量評估分數)。

孿生網路中的難例挖掘

難優劣挖掘策略( hard positive and hard-negative mining strategy),以向前傳播一組對,並取樣向後傳播中損失最高的對(pairs),然而伴隨著高昂的計算成本。

半硬對(semi-hard pair selection)被認為選擇最難的對可能導致糟糕的區域性收斂。

以一批對作為輸入,並選擇小批次(mini-batch)中的四個最難的負樣本。為了解決不良的區域性收斂,優化光滑的上界損失特徵,以利用小批次(mini-batch)中所有可能的對。

本文提出了一種高效的孿生網路向後傳播方法,它不依賴於難例選擇。而是考慮了小批次(mini-batch)中所有可能的對。這有利於優化利用訓練深網的主要計算瓶頸,即通過網路對影像的前向傳播。

3. Learning from rankings for NR-IQA

3.1 本文方法架構

本文的步驟:

  1. 合成排名影像。 使用任意的資料集,通過一系列失真程度合成這些影像的合成失真資料集。每個影像的絕對失真量不用於後續步驟,而是在知道的每個失真型別中,用於任何質量較高的影像對。
  2. 培訓孿生網路進行排名。 這裡用到高效的孿生網路向後傳播方法。
  3. 使用IQA資料集訓練網路進行微調。 首先提取孿生網路的一個分支(此時對在網路中學到的特徵感興趣,而不是在排名本身的結果中感興趣),並根據可獲得IQA資料集進行微調繼續訓練網路,這有效地校準了網路以輸出 IQA 分數。

3.2 使用孿生網路來進行排名訓練

使用孿生網路來進行影像質量評估排名學習,孿生網路是有兩個相同的分支網路,和一個損失函式。兩個分支網路共享權重(在實際的訓練中可以認為是相同的網路,只用實現一個即可)。影像對 (Pairs of images )和標籤(labels)是輸入,產生兩個輸出傳遞給損失函式。損失函式與所有模型引數的梯度通過隨機梯度下降來向後傳播並計算。

具體來說,如果將影像 x 作為網路輸入,以 f(x; θ)表示輸出。這裡θ是網路引數,用y來表示影像的標籤真實值。本文希望f(x; θ)輸出值能指示影像質量。

\[L\left(x_{1}, x_{2} ; \theta\right)=\max \left(0, f\left(x_{2} ; \theta\right)-f\left(x_{1} ; \theta\right)+\varepsilon\right) \]

ε是邊緣。本文假設x1的排名高於x2。

當網路的結果與排名一致時,梯度為零。

當網路的結果不一致時,我們降低較高的梯度並新增較低分數的梯度。

給定L關於模型引數θ的梯度,可以使用隨機梯度下降(SGD)訓練孿生網路。

\[\nabla_{\theta} L=\left\{\begin{array}{lr} 0 & \text { if } f\left(x_{2} ; \theta\right)-f\left(x_{1} ; \theta\right)+\varepsilon \leq 0 \\ \nabla_{\theta} f\left(x_{2} ; \theta\right)-\nabla_{\theta} f\left(x_{1} ; \theta\right) & \text { otherwise } \end{array}\right. \]

3.3 高效的孿生網路向後傳播方法

後續更新...

3.4 微調到NR-IQA任務中

訓練一個孿生對失真影像進行排序後,再從網路中提取單個分支進行微調。給定帶有主觀標註的的小批量M幅影像,將第i幅影像的真值質量分數記為\(y_i\),從網路中預測的分數記為\(\hat{y}_{i}\)。用平方歐氏距離(squared Euclidean distance)作為損失函式對網路進行微調,代替孿生網路中使用的排名損失:

\[L\left(y_{i}, \hat{y}_{i}\right)=\frac{1}{M} \sum_{i=1}^{M}\left(y_{i}-\hat{y}_{i}\right)^{2} \]

4. Experimental results

4.1 資料集

IQA資料集。

LIVE [28]包含從29張原始影像生成的808張影像,這些影像通過五種畸變進行失真:高斯模糊(GB),高斯噪聲(GN),JPEG壓縮(JPEG),JPEG2000壓縮(JP2K)和快速衰落( FF)。

TID2013[22]資料集由25張參考影像和3000種來自24種不同失真型別的失真影像組成。

用於生成排名對的資料集。

為了在LIVE資料庫上進行測試,我們生成了四種型別的失真,這些失真被廣泛使用和常見:GB,GN,JPEG和JP2K。

為了在TID2013上進行測試,我們在總共24種失真中生成了17種(除了#3,#4,\#12,#13,#20,#21,#24)。

滑鐵盧資料集包含從網際網路上精心挑選的4,744張高質量自然影像。使用此資料集的目的是證明可以使用並非專門為IQA問題設計的資料集來學習高質量的排名嵌入。

4.2 實驗標準

Network architectures.

淺層網路具有四個卷積層和一個完全連線的層。 對於AlexNet和VGG-16,僅更改輸出數量,目標是為每個失真的影像輸出一個分數。

Strategy for training and testing.

從原始的高解析度影像中隨機取樣子影像。這樣做而不是縮放,以避免引入由插值或濾波引起的失真。
取樣影像的大小由每個網路確定。但是,輸入影像的大尺寸很重要,因為輸入子影像應至少為原始影像的1/3,以便捕獲上下文資訊。

在訓練期間,從每個時期的每個訓練影像中取樣單個子影像。

In our experiments, we sample \(227 \times 227\) and \(224 \times 224\) pixel images, depending on the network. We use the Caffe framework and train using mini-batch Stochastic Gradient Descent (SGD) with an initial learning rate of \(1 \mathrm{e}-4\) for efficient Siamese network training and \(1 \mathrm{e}-6\) for fine-tuning. Training rates are decreased by a factor of \(0.1\) every \(10 \mathrm{~K}\) iterations for a total of \(50 \mathrm{~K}\) iterations. For both training phases we use \(\ell_{2}\) weight decay (weight 5e-4).

測試時,從原始影像中隨機抽取了30個子影像。子區域的輸出平均值是每個影像的最終分數。

Evaluation protocols.

使用LCC(演算法預測的準確性)和SROCC(演算法預測的單調性)進行演算法評估。

4.3 從排名中學習NR-IQA(細節)

Siamese networks and IQA discrimination.

為了展示排名網路區分影像質量的能力,在Places2驗證集(未對IQA資料應用微調)上訓練了孿生網路,該驗證集被分為了五個級別的單個失真。即使兩個資料集的採集過程和場景完全不同,該模型也可以區分滑鐵盧上不同程度的失真。

image-20210522210728839

Effificient Siamese backpropagation.

本實驗的目的是評估我們的暹羅反向傳播方法的效率。

image-20210522210929380

Network performance analysis.

\[\begin{array}{c|ccc} \hline & \text { Shallow } & \text { AlexNet } & \text { VGG-16 } \\ \hline \text { LCC } & 0.930 & 0.945 & 0.973 \\ \text { SROCC } & 0.937 & 0.949 & 0.974 \\ \hline \end{array} \]

從排名中學習可以有效地訓練非常深的網路而不會過度擬合。

這些結果是通過從頭開始進行訓練而獲得的,但是使用ImageNet上預先訓練的網路初始化權重可以進一步改善結果。因此,在其餘的實驗中,將使用預先訓練的權重初始化的VGG16網路。

Baseline performance analysis.

image-20210522211347619

4.4 與最新技術比較

image-20210522211955185

4.5 從IQA資料集上獨立(演算法泛化性)

image-20210522212011346

5. Conclusions

和摘要一樣,不看了!(不會有人週六還在看論文吧...)

相關文章