論文筆記:RankIQA
- 2021 年 5 月 22 日
- 筆記
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 本文方法架構
本文的步驟:
- 合成排名影像。 使用任意的數據集,通過一系列失真程度合成這些影像的合成失真數據集。每個影像的絕對失真量不用於後續步驟,而是在知道的每個失真類型中,用於任何品質較高的影像對。
- 培訓孿生網路進行排名。 這裡用到高效的孿生網路向後傳播方法。
- 使用IQA數據集訓練網路進行微調。 首先提取孿生網路的一個分支(此時對在網路中學到的特徵感興趣,而不是在排名本身的結果中感興趣),並根據可獲得IQA數據集進行微調繼續訓練網路,這有效地校準了網路以輸出 IQA 分數。
3.2 使用孿生網路來進行排名訓練
使用孿生網路來進行影像品質評估排名學習,孿生網路是有兩個相同的分支網路,和一個損失函數。兩個分支網路共享權重(在實際的訓練中可以認為是相同的網路,只用實現一個即可)。影像對 (Pairs of images )和標籤(labels)是輸入,產生兩個輸出傳遞給損失函數。損失函數與所有模型參數的梯度通過隨機梯度下降來向後傳播並計算。
具體來說,如果將影像 x 作為網路輸入,以 f(x; θ)表示輸出。這裡θ是網路參數,用y來表示影像的標籤真實值。本文希望f(x; θ)輸出值能指示影像品質。
\]
ε是邊緣。本文假設x1的排名高於x2。
當網路的結果與排名一致時,梯度為零。
當網路的結果不一致時,我們降低較高的梯度並添加較低分數的梯度。
給定L關於模型參數θ的梯度,可以使用隨機梯度下降(SGD)訓練孿生網路。
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)作為損失函數對網路進行微調,代替孿生網路中使用的排名損失:
\]
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數據應用微調)上訓練了孿生網路,該驗證集被分為了五個級別的單個失真。即使兩個數據集的採集過程和場景完全不同,該模型也可以區分滑鐵盧上不同程度的失真。
Effificient Siamese backpropagation.
本實驗的目的是評估我們的暹羅反向傳播方法的效率。
Network performance analysis.
\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.
4.4 與最新技術比較
4.5 從IQA數據集上獨立(演算法泛化性)
5. Conclusions
和摘要一樣,不看了!(不會有人周六還在看論文吧…)