2082
{{thumb}}
0
什么是紫边?
紫边顾名思义,就是在摄影成像时,在对比度强烈,以及大光圈时经常会产生的紫色边缘的artifact,其实除了紫色也会存在蓝色和绿色的情况。具体的成因相当复杂,目前大部分人用光学像差来解释这个问题,其实只是一方面,实际除了镜头,紫边和sensor,以及两者的匹配以及算法都有.也有关系。现实中通常我们可以选取比较高档的经过光学优化的镜头来消除紫边,以及更好的sensor。如果上面这些方法不管用的情况下我们还可以用PS,Lightroom等后期软件来后处理消除紫边。不过在ISP里面,其实有CAC和根据图像分析depurple两种算法模块来处理这种问题,其中CAC是像差校正比较常见,根据图像分析depurple实现较难,通常只在比较新的ISP中存在。紫边的成因可以归纳为4个成因。镜头的像差,sensor的blooming,sensor和镜头的匹配,ISP算法的artifact:
首先,色差是由透镜的光学特性造成的。可见光的每个特定区域都有不同的波长。波长越长,折射率越高。R、G和B光的波长分别为650nm、510nm和475nm。它们的折射率与波长有关,因此色差发生在横向或纵向。因此,R、G、B三个通道在不同位置都呈现出模糊焦点。特别是近边缘出现紫色边缘,其亮度差异较大。这个是最常被解释的原因:
其次,blooming是由sensor传感器的固有特性产生的。sensor传感器将入射光转换为电信号。例如,在成像过程中,图像通过镜头以光的形式被感知。光电二极管是sensor传感器中的光传感器,通过光产生电荷,其中sensor传感器的每个单元定义了一个像素,每个像素都有一个量子阱,电荷在量子阱中积累,当电荷超过量子阱的存储容量时,多余的电荷可能会溢出到相邻的单元导致测量中会产生误差,这种现象被称为blooming。第三由于镜头和sensor的适配等各种因素导致高角度入射光不仅激发了正确位置的PhotoDiode,也激发了其周围PD,最终形成彩色光晕,如下图所示。
最后,去马赛克算法也会造成紫边。由于snesor的颜色阵列通常被称为拜耳模式,每个照片点都有选择地接收到一个R、G和B颜色的信号,其余两个颜色需要被插值插出来。然而,由于三种颜色之间的不一致性,插值会产生伪影。这种伪影是由于颜色不连续性周围的色调突然变化而出现的,称为伪色。
去紫边的算法
去紫边的算法在ISP分为CAC(chromatic aberration correction)和基于图像分析的方法紫边Depurple:
CAC用来消除镜头引起的像差,这边只说一些主要思路,类似Distortion Correction。分为标定和校正两步。通常使用拍摄圈点图算出每个圆的圆心和3个通道的偏移量,校正的时候再根据偏移量插值会正确的位置。
这个标定其实就是算法推广的最大困难这个标定其实就是算法推广的最大困难.另外就是由于CAC标定的是像素的平移动偏差,所以只能对于像差引起紫边比较Depurple比较有趣,本文举例一个效果不错的传统算法:《AUTOMATIC DETECTION AND CORRECTION OF PURPLE FRINGING USING THE GRADIENT INFORMATION AND DESATURATION》的算法:
这篇论文中的算法主要分为检测和校正2步:
检测从检测来说有以下3个条件:
1、NSRs: 近饱和区域:3通道平均值大于230(8bit)
2、CRs:颜色特性复合紫色区域(B-G>25,R-B<25)
3、颜色梯度:图片经过非均匀量化后的梯度图,紫边一般位于一侧是亮度一侧是较暗的位置,当某些像素3者处于重合的区域就是检测出的紫边区域。具体每个条件的检测结果可以参考下面这个图。
而紫边校正也有3种方式:
1、使用附近的颜色插值插一个过渡色(计算复杂但是自然)
2、降饱和度(变灰)
3、将R和B的值设置为G
效果:下图是方法2 和方法1的方法
其实在紫边纠正的算法中如何防止误判是很关键的,其实在紫边纠正的算法中如何防止误判是很关键的,可以看出这篇算法由于融合了梯度的信息,导致紫色衣服这样的的负样本没有被误伤。
误伤的情况
无误伤的情况
目前来看,在实际的camera生产过程中,如果通过镜头及镜头和sensor的匹配改善紫边的硬件修改成本会比较高.而好的ISP去紫边算法改进这个问题看起来会是一个大的趋势.
特别声明:本文转载自大话成像;如有侵权请联系删除。
{{CommentDatavv.name+' '+(CommentDatavv.to_user_id!=CommentDatav.user_id?('回复'+CommentDatavv.to_name):'')}}: