本系列主要介紹圖像信號(hào)處理器 (ISP, Image Signal Processor) 中各核心算法模塊的設(shè)計(jì)以及相關(guān)的前沿研究,以典型的相機(jī)成像系統(tǒng)為基礎(chǔ),涉及的內(nèi)容包括各類缺陷校正,去馬賽克,去噪,3A算法(自動(dòng)對(duì)焦,自動(dòng)曝光,自動(dòng)白平衡),超分,HDR,風(fēng)格遷移等主題。
本文介紹壞點(diǎn)產(chǎn)生的原因、現(xiàn)有壞點(diǎn)矯正方法及其優(yōu)缺點(diǎn)。
模塊背景介紹
CMOS/CCD鏡頭上對(duì)于外界光照失效而呈現(xiàn)為極亮或極暗的點(diǎn),可分為壞點(diǎn) (Deadpixel)、粘滯點(diǎn) (StuckPixels) 與亮點(diǎn) (Hotpixel),前者是高度曝光下的暗像素點(diǎn),中者是高度曝光下相同位置出現(xiàn)的彩色像素點(diǎn),后者為極暗條件下產(chǎn)生的亮點(diǎn)。
壞點(diǎn)產(chǎn)生的原因主要包括感光元件芯片自身工藝技術(shù)以及材料瑕疵、光線采集存在缺陷、光信號(hào)轉(zhuǎn)化的過程錯(cuò)誤、制造商產(chǎn)品差異以及產(chǎn)品使用損耗等。其中感光元件芯片工藝及材料瑕疵是CMOS/CCD圖像傳感器產(chǎn)生壞點(diǎn)的基本原因。
從壞點(diǎn)的靜動(dòng)態(tài)分布上可以分為靜態(tài)壞點(diǎn)與動(dòng)態(tài)壞點(diǎn),從像素亮度上可分為亮點(diǎn)與暗點(diǎn)。
靜態(tài)壞點(diǎn) (Static Defective Pixel, SDP) 是由缺圖像傳感器技術(shù)的芯片缺陷導(dǎo)致,解決方案是基于既定靜態(tài)壞點(diǎn)表,比較當(dāng)前坐標(biāo)是否與靜態(tài)壞點(diǎn)表中的某坐標(biāo)一致,若坐標(biāo)一致則判定為壞點(diǎn),然后再計(jì)算校正結(jié)果并校正。
動(dòng)態(tài)壞點(diǎn) (Dynamic Defective Pixel, DDP) 與傳感器溫度、增益有關(guān),傳感器溫度升高或者增益值增大時(shí),動(dòng)態(tài)壞點(diǎn)會(huì)變會(huì)增多,與ISO的大小有關(guān),文獻(xiàn)[1]表明,對(duì)于不同的ISO設(shè)定,其缺陷隨著ISP增大而增多。
像素點(diǎn)的亮度一般正比于入射光的強(qiáng)度,而亮點(diǎn)的亮度值明顯大于入射光乘以相應(yīng)比例,并且隨著曝光時(shí)間的增加,該點(diǎn)的亮度會(huì)顯著增加。
暗點(diǎn)即無論在什么入射光下,該像素點(diǎn)的值都接近于0。
現(xiàn)存壞點(diǎn)矯正及其優(yōu)缺點(diǎn)分析
現(xiàn)存壞點(diǎn)矯正主要包括Pinto[2]算法與Kakarala[3]算法等。通過拜爾陣列中同一通道的鄰域像素的計(jì)算與判斷,對(duì)壞點(diǎn)所在位置的像素值進(jìn)行替換。Pinto 算法
Pinto 算法根據(jù)壞點(diǎn)是其鄰域內(nèi)的極亮、極暗的點(diǎn),像素為鄰域內(nèi)的最大(小)值。以R通道為例,首先將中心像素RT與周圍的像素R1~R8分別作差,根據(jù)結(jié)果Result的正負(fù)進(jìn)行判斷,如果Result全為正值或負(fù)值,則該點(diǎn)為壞點(diǎn),并用周圍像素點(diǎn)R1~R8的中值進(jìn)行替代;反之,如果Result有正有負(fù),則視為正常像素點(diǎn),不進(jìn)行壞點(diǎn)校正。Pinto算法選取R、G、B通道的模板分別進(jìn)行濾波處理,G通道與B通道與R通道的處理方式相同,示意圖如圖1所示。
圖1
Kakarala算法通過首先計(jì)算中心像素值XT與周圍像素的平均值,如通過X1、X2、X3與XT的平均值計(jì)算得到x11,其中X∈[R,G,B],x∈[r,g,b],其余x13、x31、x33計(jì)算過程類似,R通道與B通道還需通過類似的方式計(jì)算得到x12、x21、x22、x32的結(jié)果,最終在三通道均組成3*3的模板并通過排序找到其最大值max、最小值min與平均值avg;最值相減得到dif值,即dif= max- min,若根據(jù)avg±dif的結(jié)果設(shè)置閾值T1與T2(假設(shè)T1>T2)并進(jìn)行判斷,若該處像素值XT大于T1或者小于T2,則視XT處為壞點(diǎn),并用均值avg代替該處的像素值,濾波模板示意如圖2所示。
圖2
Pinto算法的優(yōu)點(diǎn)是作用域廣泛,對(duì)于圖片的大部分區(qū)域均有效果;模糊邊緣效果較弱。其缺點(diǎn)是位于邊緣處的壞點(diǎn)無法檢測(cè)。原因主要在于對(duì)于Pinto算法的假設(shè)在邊緣情況下可能不成立,比如算法假設(shè)像素點(diǎn)為鄰域內(nèi)的最大值或最小值,但這在邊緣處是顯然不成立的,邊緣處的像素值可能作為正常像素點(diǎn),本身比壞點(diǎn)值更大。
Kakarala算法同樣作用域廣泛;可檢測(cè)大部分的邊緣處壞點(diǎn)。但是缺點(diǎn)是有明顯的模糊效果。主要原因是Kakarala算法在濾除大部分壞點(diǎn)的同時(shí)由于其濾波特性模糊了圖像的邊緣。
總之,兩種算法對(duì)于平坦區(qū)域均有良好的效果,但是對(duì)于邊緣處壞點(diǎn)的處理效果欠佳。
參考文獻(xiàn):
[1] Leung J, Chapman G H, Choi Y H, et al. Analyzing the impactof ISO on digital imager defects with an automatic defect tracealgorithm[C]//Sensors, Cameras, and Systems for Industrial/ScientificApplications XI. SPIE, 2010, 7536: 129-140.
[2] Pinto V, Shaposhnik D. Dynamicidentification and correction of defective pixels: U.S. Patent 8,098,304[P].2012-1-17.
[3] Baharav I, Kakarala R, Zhang X,et al. Bad pixel detection and correction in an image sensing device: U.S.Patent 6,737,625[P]. 2004-5-18.