多尺度图像增强Retinex相关算法学习及实现
Retinex算法學習
- 引言
- Retinex算法分析
- Retinex(SSR)
- ssr算法實現步驟
- 多尺度Retinex(MSR)
- MSR(多尺度Retienx增強算法)的實現步驟:
- 帶色彩恢復的多尺度Retinex(MSRCR)
- MSRCR(帶色彩恢復的多尺度Retinex算法)的實現步驟:
- MSRCP
- 實現步驟
)
工程代碼
引言
Land在1963年首次提出的這種 Retinex模型是以下面這幾個基礎理論為出發點的:首先,現實中的各種物體本身中是不存在顏色的,這是經過生物大腦皮層神經系統的處理后產生的主觀印象,我們的視覺知覺是光線的照射與物體反射性質相互作用后出現的最終狀態。其次,人眼中所獲取到的所有顏色信息其實是由三種特定頻率的波長決定的,色彩分別表現為紅色、綠色和藍色(即三原色),這三種顏色可以構成可觀察到的所有其他顏色。這也就是說Retinex算法的主要理論基礎是光學三原色理論和顏色恒常性理論。相機拍攝圖像與人眼直接觀察場景的過程非常類似,所以研究者們希望利用顏色恒常性理論來處理圖像,以達到像大腦處理復雜場景光照條件變化時能夠得到的良好效果。和人眼不同,相機獲取圖像時場景的光照變化會對圖像質量產生較大的影響,當場景中的光源照射照不充足時會引起具體細節在圖像上的缺失,致使對比度下降等影響圖片質量的問題。如果能夠像大腦皮層處理場景信息一樣消除光照變化帶來的這些問題,就能夠讓圖像更加真實生動的展現出場景信息。Retinex理論正是Land依據這種出發點,并基于顏色恒常性提出的。
Retinex算法理論有兩個經典算法:基于路徑的Retinex以及基于中心環繞Retinex。由于基于中心圍繞的Retinex圖像增強算法的運算不會過于繁瑣,又能夠提供較好的處理效果,so這種算法成為了是目前備受關注和研究較為深入的一類Retinex算法。中心圍繞Retine算法的中心思想是:像素的亮度的通過相關鄰域之間的像素值加權進行估計的,其權值是由中心圍繞函數計算確定的。在基于高斯核計算的中心圍繞Retinex算法中,從最初非常經典且簡練的單尺度Retinex(Single Scale Retinex,SSR)到后來的多尺度Retinex(Multi Scale Retinex,MSR)和帶有色彩恢復的多尺度Retinex(Multi Scale Retinex with Color Restoration,MSRCR),到現在諸多研究人員根據色彩恢復還提出了許多其他的改進算法。
Retinex算法分析
Retinex理論模型中,圖像I(x,y)被分為了反射分量R(x,y)和入射分量L(x,y)兩部分,分別表示物體的本質特征的信息和代表入射光照的亮度圖像,圖像中的光照分量決定了一幅圖像光信號最大值和最小值的區間大小。原理模型如下圖所示:
從模型中可以看出,圖像是通過兩部分相互作用完成的,入射光線照射物體后物體所反射的信號進入人眼后,得到人類所看到的圖像,即可以將這種圖像形成的過程看作是光照分量與物體反射分量相乘,用公式可以表示為:
通常將上式取對數,將乘法轉換為加法,就可以得到圖像的各分量之間發關系:
因此,Retinex的圖像增強方法可以根據估計圖像中光照分量的計算方式的不同分為很多種,盡管很多改進算法在各個環節可能會有不同的方法,但算法的實質還是大體如下面的流程圖:
Retinex(SSR)
單尺度Retinex算法處理圖像的過程和人眼獲取場景信息的視覺成像過程非常類似。根據Retinex理論的假設可知:人眼所觀察到的物體顏色并不是物體本身就存在的,而是由物體不同波長的反射能力來決定的。SSR實現的算法流程為:首先對圖像進行數據準備,將其分解為三個通道分別對其進行處理,接著準備用于濾波的合適尺度大小取值的中心環繞函數,用該函數對各個通道的信息進行高斯濾波,得到圖像中的光照分量,然后在對數域中減去光照分量,得到表示物體實際反射性質的分量,最后將三通道數據進行合并就得到了單尺度Retinex增強圖像。其具體表達式如下:
其中, *表示卷積運算, i表示第 i個顏色通道,I(x,y) 是原始圖像,r(x,y)、R(x,y)表示反射分量,G(x,y) 為高斯環繞函數,具體表達式為:
其中δ為高斯環繞函數的尺度參數(即尺度值),這個參數決定了中心圍繞函數進行卷積運算時的鄰域大小,即高斯濾波中的標準差的大小。這個參數直接影響著SSR處理效果的好壞,δ的取值越小,SSR的動態壓縮能力就越強,但是色彩保真度相應變差,會在局部出現色彩失真的現象;反之,δ越大的話,SSR的顏色保真度就會越高,動態范圍壓縮相應減弱。SSR算法一般都是在動態范圍壓縮和色彩恢復能力之間進行取舍。而最佳的高斯函數應是:
雖然SSR在圖像增強方面的應用非常廣泛,優勢明顯,但也存在一些不足之處:利用單尺度Retinex算法對圖像進行處理以后,圖像整體的亮度相比于原圖有大幅度提高,對于原圖整體亮度非常低而導致細節缺失的圖像來說,這種處理對圖像增強來說非常有效,但是對于不是這么極端的圖像而言,處理之后的圖像整體就會顯得過于明亮。另外這種明亮程度的過高也會影響到圖像的對比度,會出現整體偏白甚至偏灰的情況。Retinex算法首先是將分量轉換到對數域中進行運算的,這種變換雖然在局部和人眼視覺的光線知覺十分相近,但是范圍有限,也會出現一些失真的現象。比如:
ssr算法實現步驟
單尺度Retinex算法的實現步驟:
- 將圖像分解為RGB三通道分量,并進行對數變換,以及統計相關圖像信息(信息熵,均值,方差),進行評估
- 構建高斯環繞函數,將各通道的灰度圖像分別與高斯環繞函數卷積,得到三通道的照度估計圖像
- 在對數域用原圖像減去照度估計分量,改變高斯卷積尺度參數δ的大小,查看不同尺度值得到反射分量不同。
- 將得到的反射分量的結果線性拉伸或者指數變換,轉化為圖像輸出的數據類型。
- 將得到的三通道的反射分量圖像合并為一幅圖像得到SSR增強圖像。
多尺度Retinex(MSR)
SSR算法在動態范圍壓縮和色調恢復的兩種效果中,只能以犧牲一種功能為代價來改進另一個,因此Jobson等一批研究者們針對單尺度Retinex模型中存在的不足,提出了將不同尺度下的增強結果線性地組合在一起,充分將局部信息和整體信息考慮進去的多尺度Retinex算法。這種算法的主要思想就是結合幾種不同的尺度的中心圍繞函數通過加權平均以后來估計光照分量。MSR算法可以產生同時擁有良好動態范圍壓縮、色彩穩定性以及良好色調恢復的單一輸出圖像。MSR算法的公式為:
其中, N表示尺度個數, N=1時即為SSR,為保證MSR算法同時具有高尺度和低尺度所具有的優點,一般將N的取值選為3,用三個不同尺度的高斯濾波器對原始圖像進行濾波處理時效果較好。 Wк是第k個尺度在進行加權時的加權系數,需要滿足
通常取W1=W2=W3=1/3 ,經過實驗發現,當取平均時,能適用于大量的低照度圖像,且運算簡單。最后Fk(x,y)是在第 k 個尺度上的高斯濾波函數,即
通過實驗證明了多尺度的 Retinex在顏色保持和細節突出等方面比單尺度的SSR要好很多,但是一般情況下尺度數選擇為3,所以一次 MSR 等同于三次的 SSR ,而三個尺度值比例在15:80:250比較合適。
MSR(多尺度Retienx增強算法)的實現步驟:
MSR的實現步驟中除了第二步中用三個尺度參數分別構成三個高斯環繞函數,以及三個高斯環繞函數分別與三通道進行卷積,并加權平均得到各通道照度分量外,其他步驟與SSR算法步驟相同
帶色彩恢復的多尺度Retinex(MSRCR)
由于單尺度Retinex既具有動態范圍壓縮的能力,也可以實現大面積的色調恢復,但二者不能同時實現。Jobson等人為了彌補MSR算法的缺陷提出了帶有色彩恢復的多尺度Retinex算法(MSRCR)。這種算法將兩種Retinex結合了起來,即低尺度retinex的動態范圍壓縮,以及高尺度retinex的色調恢復。這種色彩恢復對于克服MSR在包含違反灰度世界的場景的色彩恢復時的問題是必要的。它合并了所有的必要因素,以相當自動化和相當簡單的計算來逼近人類視覺的性能。MSRCR的公式表示如下:
其中
指的是第i個色彩通道的色彩恢復函數(CRF),用來調節三個通道顏色在圖像中所占的比例。Jobson等人通過幾種不同的色彩恢復函數在實驗場景上進行處理,函數包含線性和非線性兩種,通過對比實驗發現能夠提供最佳整體色彩還原的函數形式為
其中,β是增益常數,α的取值大小控制著非線性的強度。其中β=46,α=125時為經驗參數,MSRCR可以提供必要的顏色恢復,從而把相對較暗區域而無法觀察到的信息圖像細節展現出來,消除了MSR輸出中明顯的顏色失真和灰色區域。可以為大多數圖像提供良好的效果。比如
MSRCR(帶色彩恢復的多尺度Retinex算法)的實現步驟:
- 按照MSR算法實現步驟得到三個通道的MSR增強分量。
- 按照式2.23的Ci(x,y)得到各通道的色彩恢復函數CRF。
- 將色彩恢復函數CRF與MSR增強函數相乘,并按照式2.24的ri得到最終三通道的圖像增強分量。
- 將三個圖像增強分量合并得到MSRCR增強圖像。
MSRCP
對于一些原始圖像HUE較為合理的圖,如果用經典的MSRCR算法,會導致處理后的圖容易偏色,上述論文提出了對圖像的Intensity數據進行Retinex處理,然后再把數據根據原始的RGB的比例映射到每個通道,這樣就能在保留原始顏色分布的基礎上增強圖像,文章中稱其為MSRCP。
實現步驟
不過工程文件中還未添加該處理算法
參考資料
http://www.ipol.im/pub/art/2014/107/?utm_source=doi
https://ieeexplore.ieee.org/document/6113573
https://blog.csdn.net/lilingyu520/article/details/46755767?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-16.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-16.nonecase
https://blog.csdn.net/lz0499/article/details/81154937?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-5.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-5.channel_param
https://blog.csdn.net/ajianyingxiaoqinghan/article/details/71435098
https://blog.csdn.net/PPLLO_o/article/details/89375445
https://blog.csdn.net/Gordon_Wei/article/details/102173309?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.nonecase
https://blog.csdn.net/yayan01/article/details/50129391
https://blog.csdn.net/bluecol/article/details/45675615?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-7.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-7.channel_param
https://github.com/ShadowCoo/The-Retinex-algorithm-based-Lab-Color-Space
-task-blog-BlogCommendFromMachineLearnPai2-7.channel_param
https://github.com/ShadowCoo/The-Retinex-algorithm-based-Lab-Color-Space
總結
以上是生活随笔為你收集整理的多尺度图像增强Retinex相关算法学习及实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [html] 使用svg画一个爱心
- 下一篇: 女生适合学ux吗_UX设计色彩心理学,理