0. 前言
LTMNet這篇文章借鑒了CLAHE算法,所有步驟與CLAHE一致,不同之處在于LTMNet中局部映射曲線是通過(guò)CNN預(yù)測(cè)得到,而CLAHE中是通過(guò)直方圖均衡化而得。關(guān)于CLAHE,【數(shù)字圖像處理】直方圖均衡化這篇博客有簡(jiǎn)單介紹。
論文:Learning Tone Curves for Local Image Enhancement
代碼:https://github.com/samsunglabs/ltmnet
1. 理解
所謂看文先看圖,這里選擇關(guān)鍵的幾張圖來(lái)理解文章的思想。
1.1 整體框架
LTMNet的整體pipline如下:
輸入一張圖像,resize到512×512,輸入到網(wǎng)絡(luò)中,輸出M*N個(gè)RGB三通道的映射曲線,每個(gè)通道的映射曲線是一維的查找表;然后將得到的映射曲線應(yīng)用到圖像并進(jìn)行插值,得到色調(diào)映射后的圖像。以上就是完整的推理過(guò)程,訓(xùn)練時(shí)僅僅多了一個(gè)求loss的步驟。
為什么要插值:如果每個(gè)塊使用對(duì)應(yīng)的曲線進(jìn)行映射,那么在塊與塊的交界處會(huì)產(chǎn)生不自然的過(guò)渡,因此需要通過(guò)插值使得交界處過(guò)渡平滑。
上圖看下來(lái),一般會(huì)有兩個(gè)地方比較疑惑:① 網(wǎng)絡(luò)是如何預(yù)測(cè)映射曲線的?② 插值是如何操作的?下面會(huì)進(jìn)行解釋。
1.2 網(wǎng)絡(luò)結(jié)構(gòu)
首先,網(wǎng)絡(luò)是如何預(yù)測(cè)映射曲線的呢?網(wǎng)絡(luò)的結(jié)構(gòu)如下圖所示,輸入512×512×3的圖像,經(jīng)過(guò)卷積和池化后得到8×8×768的輸出,其中8×8表示grid size,即將圖像劃分為8×8塊;768表示RGB三通道的查找表,由于像素值的范圍為0~255,因此查找表的長(zhǎng)度為256。
1.3 細(xì)節(jié)
得到網(wǎng)絡(luò)輸出的映射曲線后,如何應(yīng)用到輸入圖像上以實(shí)現(xiàn)對(duì)比度增強(qiáng)呢?文章中給出的圖中解釋的比較清楚。
以2×2的grid size為例,即將輸入圖像分為4塊,每塊對(duì)應(yīng)著3×256的映射曲線,分別記為
t
1
t_1
t1?、
t
2
t_2
t2?、
t
3
t_3
t3?、
t
4
t_4
t4?。論文中的后處理方式與CLAHE一致,將每一小塊繼續(xù)劃分為2×2個(gè)小塊,所以2×2的圖像就變成了4×4的圖像,如下:
將圖像劃分為角落區(qū)域(橙黃色)、邊界區(qū)域(綠色)和中心區(qū)域(藍(lán)色),每個(gè)區(qū)域使用不同的映射規(guī)則。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-422287.html
- 對(duì)于角落區(qū)域(Corner region):直接使用所在大塊的映射曲線。
p
c
p_c
pc?是位于左下角的一個(gè)像素,因此使用
t
3
t_3
t3?進(jìn)行映射即可,得到輸出
p
^
c
=
t
3
(
p
c
)
\hat{p}_c=t_3(p_c)
p^?c?=t3?(pc?)
- 對(duì)于邊界區(qū)域(Border region):選擇所在塊和相鄰塊的映射曲線對(duì)像素進(jìn)行映射,然后通過(guò)插值計(jì)算最終的結(jié)果,插值的權(quán)重根據(jù)像素到塊邊界的距離來(lái)衡量。
p
b
p_b
pb?是位于下邊界區(qū)域的像素,因此使用
t
3
t_3
t3?和
t
4
t_4
t4?兩條映射曲線對(duì)其進(jìn)行映射,然后通過(guò)插值得到映射后的像素值
p
^
b
\hat{p}_b
p^?b?
- 對(duì)于中心區(qū)域(Center region):使用中心四個(gè)塊的映射曲線
t
1
t_1
t1?、
t
2
t_2
t2?、
t
3
t_3
t3?、
t
4
t_4
t4?分別對(duì)像素
p
m
p_m
pm?進(jìn)行映射,然后通過(guò)插值獲取結(jié)果
p
^
m
\hat{p}_m
p^?m?
2. 亮點(diǎn)
由于網(wǎng)絡(luò)輸出的是查找表,即映射曲線,因此可以交互式地對(duì)圖像的局部區(qū)域進(jìn)行調(diào)整,以達(dá)到想要的效果。例如下圖中圖像暗區(qū)過(guò)暗,通過(guò)調(diào)整曲線將亮度拉起來(lái),使得暗區(qū)細(xì)節(jié)可見(jiàn)。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-422287.html
3. 總結(jié)
- 傳統(tǒng)算法與神經(jīng)網(wǎng)絡(luò)結(jié)合,神經(jīng)網(wǎng)絡(luò)擬合色調(diào)映射函數(shù)
- 設(shè)計(jì)算法時(shí)要考慮到實(shí)際應(yīng)用環(huán)境,如ISP pipline中,一個(gè)很重要的點(diǎn)就是算法需要具備可調(diào)性,因?yàn)橛脩粜枰槍?duì)自己的偏好以及使用環(huán)境的不同對(duì)算法的效果進(jìn)行調(diào)整
到了這里,關(guān)于【對(duì)比度增強(qiáng)】Learning Tone Curves for Local Image Enhancement(LTMNet)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!