Transcript 601415124
Dim Light Image Enhancement
601415124 吳健豪
Outline
• Introduction
• Implementation
• Proposed algorithm
• Demo
• Conclusion
• Future work
• Introduction
• Implementation
• Proposed algorithm
• Demo
• Conclusion
• Future work
Introduction
• 在夜間時所拍攝的影像時常因為光源不足或是亮暗相差太多,導致顯示出來的圖
像往往在較暗部分的細節無法顯現,因此會希望能夠經由對於此類影像進行增強
處理的程序來達到將原本已經存在影像中,由於過暗的環境導致無法顯示的影像
細節顯示出來。
• 在此期末專題中所用來增強影像的方式我採用了兩種方法
• Low-exposed image enhancement and noise reduction algorithm
• RETINEX algorithm
• Introduction
• Implementation
• Proposed algorithm
• Demo
• Conclusion
• Future work
Implementation
• 實作環境
- Ubuntu 12.04.3 (GNU/Linux 3.2.0-53-generic x86_64)
• Compile : G++ with Makefile
• Bulding library
C/C++、OpenCV、QT4
QT4
• Qt 可以運行在不同的平台,像是 Unix/X11、Windows、Mac OS 與支
framebuffer 的嵌入式Linux平台(Embedded Linux Platform),廣泛用於開發GUI程式
Useful C++ class library
• QtGui (GUI library)
• QtMultimedia (Multimedia moulde)
• QtNetwork (HTTP, FTP and lower level protocol support)
• QtOpenGL (OpenGL, OpenGL ES)
• QtScript (ECMA standard script engine)
• QtWebkit (Web browser engine)
• QtXml (XML reader and parser)
QT4
• Write QT program
• qmake
- qmake –project
Generate *.pro file (Qt的專案檔)
- qmake
Generate Makefile
- make (compile)
• Build your program
OpenCV
• Open Source Computer Vision Library
OpenCV是Intel®開發的電腦視覺庫。它由一系列 C 函數和少量 C++ 類構成,實
現了圖像處理和電腦視覺方面的很多通用演算法。
OpenCV
• OpenCV(開放原始碼之電腦視覺)包含眾多即時電腦視覺功能的函式庫。
• 應用領域:
• 影像處理、人機介面(HCI)、物件辨識、影像切割
• 人臉辨識、手勢辨識、移動偵測、動作認知
• 場景重構(Structure From Motion)
• 立體聲和多台攝影機校正及深度計算
• 移動機器人視覺
• Introduction
• Implementation
• Proposed algorithm
-Low-exposed image enhancement and noise reduction algorithm
-RETINEX algorithm
• Demo
• Conclusion
• Future work
Low-exposed image enhancement
• 在低曝光低亮度的環境中,luminance過低因此我們希望透過提昇luminance的
方式來對影像做增強的效果,藉此來將低亮度中的細節影像顯示出來
• 此enhancement processing專門針對亮度低的影像做處理
• 另外透過不同的參數設定,可以得到雜訊濾除後只剩下較亮的影像部分,再與原
圖做balance,可以先得到濾除雜訊後品質叫好的影像,以提供enhancement有
更好的效果
Low-exposed image enhancement
• 首先將影像分為亮度luminance與彩度chrominance的部份,針對luminance的
部分來做處理
• Image decomposition
將Image color space轉到YCbCr domain
YCbCr,是色彩空間的一種,通常會用於影片中的影像連續處理,或是數字攝影系統中。
Y為顏色的亮度(luminance)成分、而CB和CR則為藍色和紅色的濃度偏移量成份。
Input image
Y
Cb
Cr
Low-exposed image enhancement
• 針對luminance的enhancement function
𝑥
• 𝑚 𝑥, 𝜑 =
log 𝑥𝑀𝑎𝑥 𝜑−1 +1
log 𝜑
• Parameter 𝜑 from 2 to 1024 curve
• 𝜑 = 2 : most linear
• 𝜑 = 1024 : most curved
Low-exposed image enhancement
• Source image
𝑥
𝑚 𝑥, 𝜑 =
log 𝑥𝑀𝑎𝑥 𝜑−1 +1
log 𝜑
𝜑 = 64
Low-exposed image enhancement
• 可以看的到經過𝑚 𝑥, 64 enhancement的結果將原圖的luminance增強,但是也同
時將不想要的noise也增強了
• Noise reduction
• 而將m(x,𝜑)的公式改變並且採取不同的𝜑後有非常不一樣的結果
𝑥
• 𝑚′ 𝑥, 𝜑 =
log 𝑥𝑀𝑎𝑥 𝜑
log 𝜑
𝜑=4
Low-exposed image enhancement
• 𝑚′ 𝑥, 𝜑 ,𝜑 =4的結果只會將亮度較亮的部份顯示出來,而其於雜訊且沒那麼亮
的區域也會顯示為pure black,藉此可以完全去除雜訊點
• Output : 𝑚′ 𝑥, 4 ∗ 0.5 + 𝑚 𝑥, 64 ∗ 0.5
Low-exposed image enhancement
• 𝑚 𝑥, 4 的效果只會將較亮的部分顯示出來,較暗的部份則是都顯示為黑色,進而
得到去雜訊效果
• 在與原圖做平均去除雜訊時也會削弱邊緣較暗的部分
• 因此先將原圖做sharpening處理再做noise reduction會有較多邊緣的保留
• Front-end processing:sharpening + noise reduction
Low-exposed image enhancement
• Sharpening
• Detail (Ori_img – Gaussian_img)
Processing flow
Sharpening_img
Input
Gaussian
𝑌
5x5
Max_luminance
−
+
Sharpening
𝐶𝑏 𝐶𝑟
𝑚(𝑦, 5)
Output_img
Tone mapping
Tone_Mapping
𝜑=5
Noise_reduction
Temporal
𝑚𝑒𝑎𝑛
Result
𝑌𝑚𝑎𝑥
Result
• Source image
proposed output
• Introduction
• Implementation
• Proposed algorithm
-Low-exposed image enhancement and noise reduction algorithm
-RETINEX algorithm
• Demo
• Conclusion
• Future work
RETINEX
• Retinex(視網膜」Retina」和大腦皮層」Cortex」的縮寫)理論是一種建立在
科學實驗和科學分析基礎上的基於人類視覺系統(Human Visual System)的圖
像增強理論。該算法的基本原理模型最早是由Edwin Land於1971年提出的一種
被稱為的色彩的理論,並在顏色恆常性的基礎上提出的一種基於理論的圖像增強
方法。Retinex 理論的基本內容是物體的顏色是由物體對長波(紅)、中波(綠)
和短波(藍)光線的反射能力決定的,而不是由反射光強度的絕對值決定的;物
體的色彩不受光照非均性的影響具有一致性,即Retinex 理論是以色感一致性
(顏色恆常性)為基礎的。
RETINEX
• 人的視覺影像主要來自光線波長與不同頻率而有所改變,物體的顏色是由物體反
射光的頻率和強度所反映出來的
RETINEX
• I(x,y)=R(x,y)﹒L(x,y)
• I:觀察影像
• L:入射光影像
• R:反射物體影像
• 只要能估算出L就能夠得到物體本身的影像R
• Retinex 演算法在log domain下表示法
• I(x,y)=R(x,y)﹒L(x,y)
• log(R(x,y)) = log
𝐼(𝑥,𝑦)
𝐿 𝑥,𝑦
= log[𝐼 𝑥, 𝑦 ] − log[𝐿 𝑥, 𝑦 ]
RETINEX
• 要求出R的前提就是需要先估算出環境光L的影像,而這估算的方式可以由光源L
與R的基本圖像特性來著手
• 由以下的例子來說明:若是在一間屋子裡以紅光照射,所得到房屋內的圖像可以
分解成一個純紅光的影像和一個屋內以白光照射的影像,而純紅光的影像所對應
到的頻譜是較為低頻的影像,相對而言背景影像就是高頻影像
• 因此要估算出L便簡單許多,一般而言是使用Gaussian low pass filter來濾得較低
頻的影像
RETINEX
• 因此L的估算方式可由下列式子表示
• 𝐿 𝑥, 𝑦 = 𝐼 𝑥, 𝑦 ∗ 𝐺 𝑥, 𝑦
• 𝐺 𝑥, 𝑦 = 𝜆 ∙ 𝑒
−(𝑥2 +𝑦2 )
𝑐2
• G:Gaussian function
• 其中
• C值小:包含較少Pixel ,保留較少色彩資訊 ,細節增強較多
• C值大:包含較多pixel,保留較多色彩資訊,但是細節增強較少
RETINEX
• 最後可得出還原後的影像
• r(x,y)=log(R(x,y))
= log
𝐼(𝑥,𝑦)
𝐿 𝑥,𝑦
= log 𝐼 𝑥, 𝑦
− log 𝐼 𝑥, 𝑦 ∗ 𝐺 𝑥, 𝑦
• 此方式稱為Single scale retinex(SSR)
RETINEX
• 由於Gaussian kernel的不同,SSR無法實現同時保留細節以及增強色彩資訊,因
此還有透過取得不同Gaussian kernel綜合的方式稱為Multi scale retinex(MSR)
C值小:邊緣資訊
C值大:色彩資訊
• 公式如下
• 𝑅 𝑥, 𝑦 =
𝑘
𝑘=1 𝑊𝑘 (𝑙𝑜𝑔𝐼
• 𝑊𝑘 :權重值 總和等於 1
𝑥, 𝑦 − log[𝐹 𝑥, 𝑦 ∗ 𝐼(𝑥, 𝑦)])
RETINEX
• 另外還有更加增強影像顏色資訊的MSRCR以及將luminance與color channel分
開處理的IMSR
• 在此期末專題所呈現的結果是SSR,可以透過Slider來調整不同的Gaussian
kernel,可以感受在c值不同的情形retinex演算法所得到的不同結果
Result
• 原始影像
C值大
C值小
Result
• 原始影像
C值小
C值大
• Introduction
• Implementation
• Proposed algorithm
• Demo
• Conclusion
• Future work
Demo
連結
• 程式執行後會如右圖所示
*在pattern資料夾中有可供demo的影像
• Source :選取輸入影像
• Slider:可以調整參數來得到不同結果
在enhancement中是調整𝜑值
在retinex中則是調整Gaussian kernel的c值
• 選擇完照片後可以選擇enhancement或
Retinex演算法
Result :點選完演算法後顯示的區塊
Close : 結束程式
Demo 影片連結
Conclusion
• 實作方式皆由演算法著手轉為C code來編譯實現
• 透過這兩種不同的演算法可以得到在低曝光影像中不同的增強細節效果
• 第一種Low-exposed image enhancement and noise reduction algorithm效果
是調整global亮度來使細節顯示出來
• 而retinex則是能夠將濾除光源資訊後得到不受光源影響的影像
• 影像增強是圖像處理領域中一個相當傳統且重要的主題,同時又一直是較為活躍
的研究領域,不斷有新方法和新手段引入使該領域保持旺盛的生命力,並不斷有
新成果面世。Retinex也可以相當廣泛應用於軍事、醫學、遙感以及視頻檢測等方
面。
Future work
• 而在低曝光增強影像的處理上,雜訊往往都是相當重要的一個課題
• 如何有效的抑制雜訊,並且效果很好的細部資訊顯示出來將是演算法未來應該著
重的部分
• 此專題的兩種演算法都是以global的方式處理,可以朝向local的處理方式,可以
將同一影像中亮度不同的區塊做最佳化的處理
• 此外也希望能夠將演算法的執行時間減少,希望能夠得到real-time的效果以應用
在行車應用、監視系統、即時影像處理上
Reference
• Retinex-圖像處理
• Video Enhancement Using Per-Pixel Virtual Exposures
• Adaptive enhancement and noise reduction in very low light-level video
• ImageProc for Human Understanding in Low-visibility
• Research powerpoint by my self
Thanks For Your Listening
National Chung Cheng University
Department of Electrical Engineering
National Chung Cheng University
The SoC Research Center