图像视频降噪的现在与未来
全文核心部分內(nèi)容來自于 https://zhuanlan.zhihu.com/p/106191981,即為騰訊研究院針對降噪的講解PPT。
在此之前首先講述一下多幀降噪的相關(guān)原理,
一、噪點產(chǎn)生的原因
為什么手機在夜間拍攝會出現(xiàn)噪點呢?其實噪點的生成跟CMOS有很大關(guān)系。
數(shù)碼相機包括手機將光線和物體的信息通過鏡頭傳輸至CMOS過程中會產(chǎn)生熱量,快門時間越長,則CMOS所接收的光線照射時間越多,CMOS的工作時間也就越長。CMOS在長時間工作的時候,會產(chǎn)生熱量,而這些熱量會均勻得分布與CMOS每一個晶體單元上。在成像完成后,這些熱量會破壞照片上的一些像素點,從而形成了我們看到的噪點(也就是熱噪)。
另外ISO的數(shù)值高低也會影響噪點的多少,ISO越高,光線感應(yīng)的性能越強,也就越能接收更多的光線,從而產(chǎn)生更多的熱量。這也就是為什么我們快門速度慢(長時間工作)且ISO數(shù)值高(進(jìn)光量明顯增加)的時候,拍出來的照片噪點明顯變多的原因。
而同樣的環(huán)境、同樣的參數(shù),拍出來的照片會給人感覺手機的噪點遠(yuǎn)遠(yuǎn)大于單反,這是因為手機的CMOS面積遠(yuǎn)遠(yuǎn)小于單反。或者這樣說,熱量相同,CMOS越小,單位面積集中的熱量越多,噪點也就越明顯。
二、多幀降噪
所謂多幀降噪就是在夜景或者暗光環(huán)境下,相機在按快門到成像的時候會采集多張/多幀照片或者影像,在不同的幀數(shù)下找到不同的帶有噪點性質(zhì)的像素點,通過加權(quán)合成后得到一張較為干凈、純凈的夜景或者暗光照片。
通俗地說,就是手機在拍攝夜景或者暗光環(huán)境的時候,會進(jìn)行多個幀數(shù)的噪點數(shù)量和位置的計算和篩選,將有噪點的地方用沒有噪點的幀數(shù)替換位置,經(jīng)過反復(fù)加權(quán)、替換,就得到一張很干凈的照片,其實最終成像的照片是由多個幀數(shù)的影像合成的,所以在某些場合我們隱約可以看到部分物體的重影,當(dāng)然只要不影像照片主體,它就可以忽略。
多幀降噪,與是否高ISO無關(guān)。多幀降噪可以消除的是隨機噪聲,包括但不限于散粒噪聲和傳感器底噪和熱噪。哪怕用極高的ISO數(shù)值拍攝,也可以通過多幀降噪的方式壓榨寬容度。信噪比提升也得到顯著提升(騰訊PPT中有提到相關(guān)具體數(shù)據(jù))。高ISO并不是噪聲的直接來源,弱光環(huán)境才是。另外降噪的原理也不是相機識別出了噪點然后抹掉,而是把對應(yīng)位置所有參加運算的圖像數(shù)據(jù)放到一起求一個平均值。當(dāng)然了為了避開這樣嚴(yán)重的偽色,還可以選中間值模式。這樣就是在所有數(shù)據(jù)中選中位數(shù)。無論哪一種,都避開了噪聲值。除了偽色之外,多幀降噪還有可能導(dǎo)致鬼影等問題。因為本質(zhì)上也是合成,拍攝主體在運動的情況也沒有辦法拍攝。
接著順著騰訊PPT講一下降噪
騰訊多媒體實驗室專注于多媒體技術(shù)領(lǐng)域的前沿技術(shù)探索、研發(fā)、應(yīng)用和落地,在長期積累中精心打造出三大核心能力,分別是:音視頻編解碼、網(wǎng)絡(luò)傳輸和實時通信;多媒體內(nèi)容處理、分析、理解和質(zhì)量評估;沉浸式媒體系統(tǒng)設(shè)計和端到端解決方案。本次分享中的內(nèi)容就屬于多媒體內(nèi)容處理的一部分。
上圖是騰訊多媒體實驗室常年積累起來的視頻處理能力,包括視頻降噪、去壓縮失真、視頻去抖動、夜景增強、視頻超分、視頻銳化等,這些能力已經(jīng)應(yīng)用于騰訊的許多產(chǎn)品,比如騰訊云、全民K歌、企鵝電競、微視、QQ空間等。目前團(tuán)隊正在向騰訊云推出畫質(zhì)修復(fù)功能,已經(jīng)開發(fā)和計劃開發(fā)的技術(shù),包括視頻超分、去偽影、去抖動、去劃痕與雪花、插幀、HDR,還有下面主要介紹的視頻降噪技術(shù)。
1. 噪聲的簡介
1.1 噪聲的來源
圖像、視頻從采集到播放的整個生命周期中會經(jīng)歷各種各樣的處理過程,比如采集、剪輯、編碼、轉(zhuǎn)碼、傳輸、顯示等,每個處理過程都會引入失真。“噪聲”就是在信號采集過程中引入的一種普遍失真。降低噪聲強度可以使圖像主觀效果更好。另外,在圖像、視頻壓縮時也不必浪費碼率在編碼噪聲上。同時,會使得視頻編碼中的運動估計更準(zhǔn)確、熵編碼速度更快。
噪聲的來源有多種,其中最主要的部分來自光子散粒噪聲。上圖描述的是從感光元器件收集到光子,一直到生成數(shù)字圖像的過程。首先感光元器件把光子轉(zhuǎn)換成電子,電子形成電壓,電壓放大后量化,最終形成數(shù)字圖像。光子散粒噪聲在感光元器件接收光子時就發(fā)生了。
即使光線是完全平坦的,感光元器件每個像素接受到的光子個數(shù)也是不同的。像素接收到光子個數(shù)的分布,符合一個經(jīng)典的離散概率分布模型—泊松分布。上圖中右側(cè)是泊松分布的數(shù)學(xué)公式,他的均值是λ,標(biāo)準(zhǔn)差是√λ,而均值和標(biāo)準(zhǔn)差分別對應(yīng)了信號以及噪聲的強度。均值和標(biāo)準(zhǔn)差的比值就是信噪比。可以看到,信噪比是隨λ增加而增加的,信噪比越高意味著主觀感受到的噪聲越小,這里的λ可以理解為每個像素接收到的光子個數(shù)。因此,我們可以通過提高單位像素面積內(nèi)接受到的光子個數(shù)來降低人眼感知到的噪聲強度。不論是硬件降噪或是軟件降噪,很多降噪方法都利用到了這個原理。
除了光子散粒噪聲外,噪聲來源還包括暗電流噪聲、熱點噪聲、固定模式噪聲以及讀出噪聲。這些噪聲或者與電路熱擾動釋放的電子有關(guān),或者與感光元器件在制造過程中產(chǎn)生的缺陷有關(guān)。其中,暗電流噪聲和熱點噪聲與曝光時間有關(guān),曝光時間越長,這兩類噪聲的強度越大。上圖中左下部分給出的是關(guān)于信號和噪聲強度的一個更精確的公式。
1.2 硬件降噪方法
通常的硬件降噪方法都是通過增加單位像素接收到的光子個數(shù)來增加圖像的信噪比的。比如,增加感光元器件的尺寸,在像素個數(shù)固定的情況下,每個像素的面積增大了,單位時間內(nèi)接收到的光子個數(shù)就變多了。另外還可以增大光圈,通過增加進(jìn)光亮,使得感光元器件上接收到的光子個數(shù)增加。背照式和堆棧式的CMOS通過將感光元器件的處理電路下移,減少電路對光線的反射和吸收,增加感光區(qū)域的實際占比。有些感光元器件為了接收到更多的光子去掉了彩色濾光片,這樣可以在暗光下有更好的噪聲表現(xiàn),但缺點是只能拍攝灰度圖像,需要結(jié)合正常攝像頭一起使用。最后是像素融合,如右上圖所示,在光線較暗的情況下,可以將四個像素當(dāng)作一個像素使用,這樣每個像素接受的光子數(shù)就增多了。
2. 傳統(tǒng)降噪方法
2.1 單幀降噪
分析完硬件降噪之后,我們來看看對單幅圖像的傳統(tǒng)降噪方法。上圖來自于2004年的一篇綜述文章,可以看到單幀降噪算法可以做很多種不同的分類,比如線性/非線性、空域/頻域,頻域又包括小波變換域、傅里葉變換域或其他變換域。從圖中可以看到,在小波域中做單幀降噪算法的種類是比較多的,小波域結(jié)合統(tǒng)計建模是當(dāng)時比較流行的研究方法。
上圖簡單粗暴的將單幀降噪方法歸類為速度快的和效果好兩種類型。這樣的分類方法雖然并不科學(xué),但大致反映了實際情況:單幀降噪算法往往需要在速度和效果之間權(quán)衡,使用純軟件的方式很難實現(xiàn)出既快又好的單幀降噪方法。
上面的PPT中包含了雙邊濾波和小波變換的示意圖。通常我們會拿雙邊濾波和高斯濾波進(jìn)行對比。對于高斯濾波來說,在處理當(dāng)前像素的過程中會用到當(dāng)前像素附近的像素做加權(quán)平均,權(quán)重取決于當(dāng)前像素和周圍像素的距離,距離越遠(yuǎn)則權(quán)重越小。雙邊濾波除了考慮距離之外,還會考慮當(dāng)前像素和周圍像素顏色的差異,對距離近但顏色差異大的像素會分配一個小的權(quán)重,這樣做就不會模糊了邊界,實現(xiàn)了保持邊界的濾波。右側(cè)是小波變換的示意圖,在小波變換之后信號被分解到不同頻帶,同時每個頻帶還保留了一定的空域信息。通過對這些小波系數(shù)做閾值處理、濾波或者基于統(tǒng)計建模的處理,再反變換回空域,可以實現(xiàn)有效的降噪效果。
上圖來自2008年的一篇文章,它結(jié)合了小波變換和雙邊濾波兩種方法,對低頻信號做雙邊濾波,對高頻信號做閾值處理,結(jié)合之后生成低頻信號再做雙邊濾波,如此反復(fù)。這個方法的優(yōu)勢是可以針對不同的頻帶調(diào)節(jié)降噪的強度,同時保持了邊界。適用范圍廣,可以針對不同的攝像頭模組調(diào)節(jié)降噪?yún)?shù),所以很多基于硬件的單幀降噪模塊使用的就是小波變換結(jié)合雙邊濾波的方法。
上圖給出了一個“效果好”的例子,自相似結(jié)合變換域。左邊的圖解釋的是自相似的概念,對每個塊在圖像內(nèi)進(jìn)行搜索,找到與之相似的一系列塊。經(jīng)典的非局部平均(Non-Local Means)降噪算法會將這些相似塊在空間域做加權(quán)平均。如果更近一步,將這些相似塊變換到頻域,在頻域做一些濾波和閾值處理之后再轉(zhuǎn)換回空間域,就是自相似與變換域結(jié)合的方法,比如經(jīng)典的單幀降噪算法BM3D利用的就是這樣的原理。類似的,還有自相似結(jié)合稀疏編碼、自相似結(jié)合低秩等,都可以實現(xiàn)很好的單幀降噪效果。
2.2 多幀降噪
接下來介紹一下傳統(tǒng)的多幀降噪方法。在光線比較暗的情況下,我們用手機拍照按下快門的時刻,會記錄下多張圖像,算法會將這些圖像做對齊、融合,形成一張圖像。這樣做相當(dāng)于延長了曝光時間,使得感光元器件接收到了更多的光子,增加了信噪比,同時又不會因為手持相機和曝光時間過長而導(dǎo)致圖像模糊。如果對四張圖像做對齊融合,則相當(dāng)于每個像素多采集到了四倍數(shù)量的光子,換算成信噪比有6分貝的提升,這對于圖像質(zhì)量來說是一個非常可觀的數(shù)字。多幀降噪的主要步驟有兩個:對齊和融合。對齊就是找到多個圖像中像素(塊)的對應(yīng)關(guān)系;融合是將這些對應(yīng)的像素(塊)在空域或者頻域做加權(quán)平均。為了確定加權(quán)平均的權(quán)重值,我們需要知道像素(塊)之間的差異是由于對齊不準(zhǔn)造成的還是因為噪聲造成的,因此需要估計噪聲強度。一個準(zhǔn)確的噪聲強度估計算法,對多幀降噪的效果會起到至關(guān)重要的作用。
上圖是谷歌在2016年發(fā)表的一篇手機圖像質(zhì)量增強的文章,介紹的是HDR+算法,用在了谷歌手機上。HDR+有很多圖像處理模塊,其中就包括了剛才介紹的多幀降噪。HDR+的多幀降噪實現(xiàn)在Raw域,由于Raw域的圖像沒有經(jīng)過后續(xù)非線性圖像處理模塊的影響,所以可以在Raw域中對圖像中的噪聲進(jìn)行比較精確地建模,有了噪聲建模的結(jié)果之后就可以對噪聲強度做估計并運用到多幀降噪算法中去。
2.3 視頻降噪
視頻降噪與上面介紹的多幀降噪類似,為了達(dá)到更好的降噪效果也會用到臨近幀的信息,把臨近幀中相似的像素塊做融合處理。在手機端對視頻的每一幀做這樣的操作,又要保持實時性是很困難的。因此需要硬件的支持,使用快速的對齊算法,或者用運動檢測代替運動估計,根據(jù)檢測到的運動強度,對時域濾波和空域濾波的結(jié)果做加權(quán)平均。
3. 深度學(xué)習(xí)降噪方法
基于深度學(xué)習(xí)的降噪通常會使用圖像到圖像的卷積網(wǎng)絡(luò)。右邊的示例圖給出的是圖像到標(biāo)簽和圖像到圖像卷積網(wǎng)絡(luò)的對比,可以看出圖像到標(biāo)簽的網(wǎng)絡(luò)在處理大分辨率的圖像時,可以先做縮放,把圖像分辨率縮小后再輸入網(wǎng)絡(luò)。而對于圖像到圖像的卷積網(wǎng)絡(luò),輸入通常是原始分辨率的圖像,輸出也是同樣分辨率的,對于像超分這樣的應(yīng)用,輸出的分辨率甚至更大,所以即使卷積層的層數(shù)非常少,計算復(fù)雜度仍然是很高的,對顯存的需求也高。另外,基于深度學(xué)習(xí)的降噪方法通常需要使用含有真實噪聲的訓(xùn)練數(shù)據(jù)才能達(dá)到比較好的處理效果。
3.1 單幀降噪網(wǎng)絡(luò)結(jié)構(gòu)
上圖列舉了幾個用于降噪的深度學(xué)習(xí)算法。參考文獻(xiàn)[5]是最早使用深度模型做降噪的文章之一,帶有噪聲的圖像經(jīng)過一系列的卷積處理,最后生成一張只包含噪聲的殘差圖。參考文獻(xiàn)[6]使用自編碼結(jié)構(gòu),編碼端由卷積層構(gòu)成,解碼端由反卷積層構(gòu)成,編碼端與解碼端有一系列的跳過連接。參考文獻(xiàn)[7]使用了生成對抗網(wǎng)絡(luò),通過對降噪網(wǎng)絡(luò)和判別網(wǎng)絡(luò)做聯(lián)合優(yōu)化,提升降噪網(wǎng)絡(luò)的處理效果。參考文獻(xiàn)[8]研究網(wǎng)絡(luò)的“深”與“寬”對降噪效果的影響,它得出的結(jié)論是網(wǎng)絡(luò)寬一些(更多的通道數(shù)、更大的卷積核)會使降噪效果更好。參考文獻(xiàn)[9]使用傳統(tǒng)方法結(jié)合深度學(xué)習(xí)進(jìn)行圖像處理。這里的傳統(tǒng)圖像處理方法是一個循環(huán)迭代的優(yōu)化過程,其中的每一步迭代都可以用深度模型替代其中的部分處理過程。
3.2 視頻降噪
這里介紹幾個使用深度學(xué)習(xí)做視頻降噪的例子。參考文獻(xiàn)[10]是DVDNet,它會對當(dāng)前幀和臨近幀做空域上的卷積降噪,然后通過光流網(wǎng)絡(luò)將臨近幀與當(dāng)前幀對齊,最后在對齊后的圖像上做時域降噪。參考文獻(xiàn)[11]是DVDNet的加速版,為了提高處理速度,它舍棄了光流對齊,直接把臨近幀輸入到一個兩級的深度網(wǎng)絡(luò)中做降噪。參考文獻(xiàn)[12]提出了EDVR網(wǎng)絡(luò),它介于上述兩種方法之間,沒有用現(xiàn)成的光流對齊方法,也沒有完全去掉對齊的過程,而是在一個叫做PCD(Pyramid Cascading Deformable convolution)的模塊里將卷積處理后得到的特征圖進(jìn)行對齊。需要指出的是,EDVR并不是用來做降噪的,而是用來做超分和去模糊的,但這樣的處理方式同樣可以用來做降噪。
3.3 真實噪聲數(shù)據(jù)庫
使用深度學(xué)習(xí)做降噪,訓(xùn)練的過程最好可以使用包含真實噪聲的數(shù)據(jù)庫。上圖右側(cè)的列表給出了一些包含真實噪聲的數(shù)據(jù)庫,每個數(shù)據(jù)庫提供的圖像個數(shù)并不多。為了訓(xùn)練深度模型,數(shù)據(jù)庫需要提供“無噪聲”的圖像作為Ground Truth (GT),獲得GT的方法主要有兩種,一種是使用低ISO長曝光的圖像作為GT,另外一種是融合多張高ISO短曝光的圖像作為GT。不管使用哪種方法,噪聲圖像與GT之間還是會存在對齊不準(zhǔn)、顏色不匹配的情況,因此還需要做后處理(左下圖)才能得到更準(zhǔn)確的訓(xùn)練圖像對。
3.4 模擬真實噪聲
很多早期基于深度學(xué)習(xí)的降噪方法會使用模擬的噪聲圖像進(jìn)行訓(xùn)練。他們會在sRGB空間的“無噪聲”圖片中加入高斯白噪聲或者柏松噪聲。用這些方式加入的噪聲很不真實,所以訓(xùn)練出的降噪模型效果不好。上圖是2019年CVPR發(fā)表的一篇文章,文中使用的噪聲數(shù)據(jù)也是模擬出來的,但更精確的模擬了噪聲的形態(tài)。它模擬ISP的處理過程,對“無噪聲“的圖像做了一個ISP”反處理“,將圖像從sRGB空間變換到Raw域,在Raw域加入光子散粒噪聲、讀噪聲。由于這種方法可以更好的模擬真實拍攝到的噪聲圖像,學(xué)習(xí)出的深度降噪模型在DND真實噪聲數(shù)據(jù)集上取得了非常好的效果。
4. 發(fā)展趨勢
想與大家分享我個人對于降噪技術(shù)發(fā)展趨勢的判斷。首先手機上的降噪將逐漸硬件化。目前,手機上的圖像降噪效果有很大一部分是軟件實現(xiàn)的,比如,之前多數(shù)手機是不支持硬件多幀降噪的。而現(xiàn)在越來越多的高、中端手機平臺芯片都開始支持多幀降噪、基于運動補償?shù)囊曨l降噪等。另外一個發(fā)展趨勢是智能化,既越來越多的使用深度模型進(jìn)行圖像處理。如上所述,深度模型做圖像、視頻處理速度慢,資源消耗高。但隨著終端設(shè)備計算能力的不斷增強,異構(gòu)計算平臺的發(fā)展,以及模型壓縮技術(shù)的進(jìn)步,在終端使用深度學(xué)習(xí)做圖像處理會變的越來越多。最后一個趨勢是多功能,一個深度模型同時處理多個任務(wù),比如同時實現(xiàn)降噪、超分、增強等功能。硬件化、智能化和多功能將是未來降噪技術(shù)的三個發(fā)展趨勢。
總結(jié)
以上是生活随笔為你收集整理的图像视频降噪的现在与未来的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【绩效工具】KPI与BSC
- 下一篇: 外霍尔水流量传感器0.3-10L/min