張楓
(深圳市慧鯉科技有限公司上海分公司 上海市 200233)
隨著科學技術的不斷發(fā)展,越來越多的數(shù)字設備如手機、數(shù)碼相機開始集成越來越先進的圖像傳感器,以滿足人們?nèi)找鎸ο鄼C成像越來越高的圖像質(zhì)量的要求。傳感器廠商為了降低生產(chǎn)難度與成本,會在生產(chǎn)時在每個像素的位置上只放置一個顏色濾光片陣列(Color Filter Array,CFA),最常見的CFA格式由1976年柯達公司的設計工程師布萊斯·拜爾(Bryce Bayer)提出,通過這種CFA采集到的數(shù)據(jù)也被稱之為bayer格式數(shù)據(jù)。由于每個像素只過濾并記錄三種顏色的一種,因此并不能從單個像素的信號中完整恢復RGB型號。為了得到完整的圖像通常會利用周圍相同顏色的像素信息,采用插值的方式恢復當前缺失的像素值,這個過程被稱之為去馬賽克(demosaicing)。
雖然大部分CFA格式依然是bayer的,但是近些年越來越多的出現(xiàn)其他種類的CFA格式以滿足不同的需要。例如2007年柯達(Eastman Kodak)公司提出的全色單元,通過增加一個對所有可見光波長敏感的全色單元來提高圖像傳感器對光的敏感度。這種設計傳感器可以收集更多的光線,以改善暗光條件下的成像能力。富士(Fujifilm)公司提出的X-Trans的格式,與標準bayer不同的是X-Trans通過在每行的像素中使用紅色、藍色和綠色的濾光片來減少摩爾紋偽色的產(chǎn)生,使用這種CFA可以在沒有抗鋸齒濾光片的情況下制造。Sony推出的四bayer陣列(quadbayer)首次在2018年時華為發(fā)布的P20 pro中。該CFA相鄰的2×2區(qū)域的像素顏色相同。通過四合一操作會合成一個更大的像素,像素的進光量得到提高,而且四個像素可以采用不同的曝光時間,單幅圖像的動態(tài)范圍也可以提高。quadbayer的優(yōu)勢突出,很快的就在市場上得到了普及。
如圖1所示,由于quadbayer的采樣周期為4×4,采樣頻率低于bayer格式的采樣頻率,因此直接進行去馬賽克的任務會比較困難。目前傳感器廠商為了兼容后續(xù)ISP的處理,提供兩種方式可以轉(zhuǎn)換到bayer:一個是通過每2×2個像素進行四合一操作,但這樣會降低圖像的分辨率。另一種是通過傳感器自帶的算法進行重馬賽克,可以輸出原始尺寸的bayer,但重馬賽克過程會造成原始像素信息的丟失,實際效果也依賴于重馬賽克的算法。理論上這兩種方法都存在信息丟失的問題。
圖1:(左)四合一去馬賽克(中)重馬賽克 (右)直接去馬賽克
通常的圖像的去馬賽克方法通常是利用周圍像素的信息來對當前缺失的像素進行估計,最簡單的方法就是線性插值法,這種方法只是簡單的利用了像素之間的空間信息進行估計恢復。由于忽略了真實圖像的紋理信息,因此恢復出來的彩色圖像常常存在偽色(false color),鋸齒(zipper)等畫質(zhì)問題。后來又有很多算法來改善這些問題。如Hamilton利用了二階導數(shù)梯度信息,分別沿水平與垂直方向進行插值。Pekkucuksen等結合梯度與光譜相關性信息提出了基于梯度的無閾值插值算法(GBTF),GBTF首先對綠色平面方向插值,然后通過色比來對缺失的像素進行恢復。Kiku 等提出了RI算法。RI算法先通過引導濾波對RGB進行插值,然后通過預測的值與真實值的計算出殘差,通過殘差插值改善效果。后續(xù)提出的MLRI與ARI在RI上進行了改進,MLRI進一步采用拉普拉斯殘差插值替代色差插值,而ARI是改進了G通道的插值方式。
近年來,隨著數(shù)據(jù)與算力的不斷增長,神經(jīng)網(wǎng)絡的方法在機器視覺與圖像處理領域大放光彩,效果遙遙領先于傳統(tǒng)算法。基于神經(jīng)網(wǎng)絡的底層視覺的相關研究有:SRCNN首次利用卷積神經(jīng)網(wǎng)絡來做圖像超分的工作,整個結構分為三個部分,分別為特征提取與表示層,非線性映射層與重建層,通過使用了三層卷積神經(jīng)網(wǎng)絡來輸出高分辨率得到圖像。DemosaicNet是聯(lián)合了去馬賽克與降噪任務的深度卷積神經(jīng)網(wǎng)絡。在網(wǎng)絡設計中它借鑒了ResNet中的增加特征層直連的機制,在訓練數(shù)據(jù)的生成上也提出一種方法,將容易出錯的樣本進行整理后重新訓練,可以有效的提升模型的泛化能力。KPN(kernel predict network)是最近用于對圖像進行降噪的神經(jīng)網(wǎng)絡,主干結構上采用深度殘差U型網(wǎng)絡,輸入圖像經(jīng)過一系列的下采樣與上采樣后進行輸出。與一般神經(jīng)網(wǎng)絡不同的是,KPN并不是直接回歸出最后的結果,而是通過對輸出空間進行約束,預測一個濾波的卷積核。
本文提出來的方法結合了前面所示方法的優(yōu)勢,提出了QDNET(quadbayer demosaic network)并首次運用到了quadbayer的去馬賽克任務上。整體設計思想是結合缺失像素周圍的空間與紋理信息,利用神經(jīng)網(wǎng)絡預測插值核,然后將插值核作用到原始的輸入上以達到去馬賽克的目的。該方案是一個端到端的方法,實驗結果表明,該方法可以根據(jù)紋理區(qū)域的特性生成適合該區(qū)域插值核,客觀主觀測試效果良好。
本文介紹的QDNET算法網(wǎng)絡結構如圖2所示。
圖2:QDNET的網(wǎng)絡結構示意圖
QDNET主要有數(shù)據(jù)前處理,特征提取,圖像重建等部分構成。
由于傳感器采集到馬賽克數(shù)據(jù)是在線性RGB空間,而人眼感知的顏色空間并不是線性的,為了呈現(xiàn)更好的主觀視覺效果,需要進行白平衡與非線性拉伸,轉(zhuǎn)換到sRGB空間。具體公式如下:
f(x,y)表示當前的馬賽克輸入的RGB像素值,如果該位置像素沒有對應的值即為0。k,k,k為對應的RGB的白平衡增益值,一般情況下k的值保持為1,而k,k與拍攝場景的環(huán)境光照有關。得到g(x,y),g(x,y),g(x,y)依然是在線性RGB空間,通過如下公式(2)轉(zhuǎn)換到sRGB空間:
特征提取是采用的是類似于編碼器解碼器的網(wǎng)絡結構設計,由基礎映射塊,上采樣,下采樣,跳遠連接組成。每個基礎映射塊包含有三層卷積和relu激活的組合,所有的卷積核大小均為3×3,步長為1,填充為1,因此基礎映射塊的輸入與輸出具有相同的維度,初始化首個基礎映射塊為64通道。下采樣模塊采用的是均值池化的操作,在網(wǎng)絡中第2-5個基礎映射塊的輸入采用一層下采樣,同時將通道數(shù)量翻倍,這樣可以在保留信息的同時提高模塊的映射能力。后面6-8個基礎模塊采用對特征圖進行雙線性上采樣方式恢復到原始分辨率。前后模塊之間增加了跳遠連接,這樣的連接可以很好的解決網(wǎng)絡層數(shù)過多時導致的梯度彌散與消失的問題,使網(wǎng)格更容易收斂。同時由于跳遠直連的方式可以充分融合低級特征與高級特征,使得信息在前向傳播時不會丟失,最終網(wǎng)絡的學習表達能力會更強。
圖像重建部分由生成插值卷積核與去馬賽克兩部分組成。生成插值卷積核是由前面特征提取層進行生成,輸出KN個通道,通過數(shù)據(jù)重排可以形成N個K×K個卷積核。對于每個N都有如下的公式如下:
v(x)表示像素P的K×K鄰域中的像素,f表示與當前像素點P對應的插值卷積核,Y表示插值卷積后的結果。由于每個像素位置RGB三個通道中缺失兩個通道的信息,因此每個點需要生成2個線性的插值核,為了實現(xiàn)簡單起見,我們實際生成的是3組插值核,實現(xiàn)RGB三通道輸出(實際有一個通道并不需要插值,結果也直接采用原始的輸入),在本實驗中的配置N=3,K=7。
去馬賽克就是將生成卷積核作用到輸入的馬賽克圖像上,為了保證插值過程中只用到同顏色的像素信息,需要將馬賽克的輸入分離為三個通道,分別在三個通道上使用對應的插值核即可得到去馬賽克的結果。
本文提出的QDNET的損失函數(shù)是與基準(ground truth)圖像進行對比,包含有兩項,一項是基于像素亮度值差異,計算L2的距離。另一項是基于圖像的梯度值差異,計算L1的距離。如下列公式所示:
由于真實圖像傳感器采集的quadbayer并沒有基準圖像,故無法有效的生成訓練數(shù)據(jù)對。因此本文的實驗采用在合成數(shù)據(jù)集上進行訓練,選用網(wǎng)上開源的DIV2K中的數(shù)據(jù)集作為訓練網(wǎng)絡的訓練集,DIV2K包含有800張高清的SRGB圖像,通過隨機將圖像進行旋轉(zhuǎn)裁剪等操作,生成128×128的數(shù)據(jù)塊共20萬張圖像作為訓練集。為了模擬真實quadbayer的輸入,本文對訓練集進行馬賽克采樣得到輸
入的馬賽克圖像,標簽為采樣前的圖像。實驗中訓練所用圖像塊尺寸為128,batch size設置為32,學習步長為5e-4,優(yōu)化函數(shù)選擇Adam,模型訓練大概需要2天,取得了較好的結果。
本文采用網(wǎng)絡公開的Kodak數(shù)據(jù)集作為測試數(shù)據(jù)集。Kodak數(shù)據(jù)集由柯達公司提供,包含有24張未經(jīng)壓縮的PNG格式的圖像,每個圖像的分辨率為768×512。該數(shù)據(jù)集也被廣泛的應用到去馬賽克任務的效果評估上。由于在quadbayer上并沒有相關的研究工作,因此本文對比了QDNET與傳感器廠家推薦的四合一后利用不同去馬賽克算法的效果。
如表1所示。
表1:客觀結果比較
本文進一步在真實傳感器采集的數(shù)據(jù)上進行驗證。選用效果最好的去馬賽克的方法demosaicnet,對比了四合一,廠商重馬賽克以及本文的方法,如圖3所示。實驗證明該方法不僅僅在客觀指標上處于領先地位,而且在主觀效果上也遠遠優(yōu)于四合一去馬賽克以及重馬賽克的效果。由于圖像通過四合一會丟失細節(jié)信息,導致再去馬賽克算法后圖像均比較模糊。重馬賽克的方法清晰度較高,但是由于丟失了一些原始信號以及受限于廠商自研的重馬賽克的算法,會有產(chǎn)生嚴重的偽色。QDNET不僅可以保持原始分辨率,而且充分利用了圖像的信息,保留更多的細節(jié)紋理與邊緣。
圖3:(左)四合一 (中)重馬賽克 (右)本文方法
針對近些年出現(xiàn)的quadbayer的圖像傳感器,本文提出了一種基于卷積神經(jīng)網(wǎng)絡的圖像去馬賽克方法。本文通過采用編碼器解碼器的網(wǎng)絡結構用于特征提取,與一般網(wǎng)絡不同的是并不直接回歸到最終像素值,而是通過預測插值卷積核,對輸出空間進行約束,最后將預測的卷積核作用到分離的三通道馬賽克圖像上,得到去馬賽克后的結果。實驗證明本文所提出的QDNET效果顯著,無論是主觀結果還是客觀結果都會明顯優(yōu)于四合一后去馬賽克的效果,同時也優(yōu)于硬件。