ISP(Image Signal Processor)——HDR技术总结

传统多帧融合技术

拍摄一系列不同曝光时长的图像帧(LDR),然后使用融合算法进行融合成HDR图像。

融合算法可以分为两种

基于照度图估计的融合

基于照度估计需要拟合相机响应函数,详细可以参考如下论文:
Recovering High Dynamic Range Radiance Maps from Photographs

该论文描述了如何求解相机响应曲线。

通常相机对于现实世界的亮度是一个非线性映射,它决定了场景中的亮度如何转换成为输出图像中的像素值。通过该曲线可以查找到所有现实场景亮度对应的像素值,在同时拍摄了过曝光图像A和欠曝光图像B后,A中欠曝光过暗(黑色区域)地方的像素值可以通过B图乘以一个比例因子,而该比例因子可以根据相机响应曲线中Exposure的比值来确定。

假设相机在拍摄一个场景,对于场景中某个点处辐照度为E,则曝光为

该曝光经过相机处理(相机响应曲线)输出的原始数据

需要注意的是,对于拍摄场景中的同一个点,辐照度是现实场景真实存在的参数,短时间内可认为是恒定的,即某个点的真实场景亮度短期是恒定的。由于使用不同的曝光时长,造成了同一场景可以拍摄出不同亮度的图像。而这些图像序列的对应像素点都源于同一场景对应点的相同辐照度。

这里的即为相机响应曲线。

例如下列案例
欠曝光B图
过曝光A图

假设该响应曲线已知,知道欠曝光B图的参数和像素值,过曝光A图的参数和像素值。在B图中,暗光区域(黑区)的像素值由于没有正确曝光(黑区中无法表达场景),需要通过A图对应位置来获取,也就是以下公式:

根据已知信息可知

根据上述同一场景某个点处辐照度E短时间内是恒定的,可以得出将A图中正确曝光像素映射到B图中黑区对应位置的值如下:

同理可以得到欠曝光B图中正常曝光区域(在B图中是高光饱和区域)的像素值映射到A图中对应区域位置的像素值

以上描述的仅是利用相机响应曲线中的最简单融合方式。

值得注意的是:笔者认为,应该在Bayer域求解相机响应曲线,因为ISP后续的一些部分会引入非线性变换,这些非线性变换很有可能会扭曲相机响应曲线。

多曝光直接融合

参考最经典的论文:

Exposure Fusion: A Simple and Practical Alternative to High Dynamic Range Photography

以饱和度、对比度、曝光度等简单的质量指标为指导进行多帧图像的加权和多尺度融合。

对比度指标:拉普拉斯滤波器应用于每个图像的灰度图,并获得滤波器响应的绝对值C作为对比度指标。

饱和度指标:饱和度测量S,它被计算为每个像素的R、G和B通道内的标准偏差。

曝光度指标:像素的曝光度使用高斯曲线根据每个像素强度接近0.5的程度E

多尺度融合过程如下所示:

将输入图像分解为拉普拉斯金字塔(提取细节层),该金字塔基本上包含不同尺度的带通滤波图像。然后分别对每个级别进行混合。多分辨率(多尺度)融合在避免接缝方面非常有效,因为它混合了图像特征而不是强度。

另一篇有意思的论文:

An Analysis and Implementation of the HDR+ Burst Denoising Method

传统多帧的HDR图像融合方式最大的缺点是容易产生运动伪影,在拍摄高速运动场景中的运动物体时候或者相机发生抖动的时候,由于拍摄多帧之间的帧间隔时间,图像内容往往会发生较大改变(不仅仅是亮度),因此需要联合鬼影消除和图像配准等方式,算法会变得更为复杂。

HDR Sensor

现代HDR技术更多依赖于硬件的支持,其中最重要的就是CMOS Image Sensor。

Interlaced HDR(iHDR)

为了解决鬼影问题,诞生了隔行曝光(Interlaced)HDR。采用这种技术的sensor,以行为单位,一组做长曝光,一组做短曝光,比如奇数组短曝光,偶数组长曝光(由于bayer阵列的结构,一般是两行为一组)。这样在一帧中就同时包含了长曝光和短曝光的行。算法最后会进行融合处理。iHDR会使得空间分辨率损失一半,主要的iHDR的技术有Sony的BME-HDR和OV的Alternate row HDR。

索尼的BME 是 binned multiplexed exposure 的缩写。这种 sensor 每隔两行的曝光时间分别设为 短曝光和长曝光。然后融合长短曝光的两帧图像,成为行数减半的一帧 HDR 图像。空间分辨率损失了一半,就好像是做了 1x2 binning,所以叫做 binned multiplexed exposure。 IMX135 和 IMX258 使用了这一技术。

OV的alternate row HDR 是每两行用一个曝光,long 或者short。对应长曝光、短曝光行的gain也可以分开控制。与sony 的BME HDR 类似,这个alternate row HDR 会损失一半的空间分辨率。

zHDR(Zig-zag HDR)

iHDR技术最大的问题是空间分辨率损失的问题,zHDR基本思想源自iHDR,但做了改进。zHDR不再以行为单位做曝光时间区分,而是按照Z字形方式组织长曝光和短曝光的数据。 zHDR是由SONY提出的iHDR的升级版本, 具体的实现方案主要是SONY的SME-HDR。

SME 是 Spatially multiplexed exposure 的缩写。这种 sensor 在空间上以棋盘格的 pattern 排列着长曝光和短曝光的像素。然后通过算法处理融合两个曝光的图像成为一帧 HDR 图像。IMX214 采用了这一技术。

QHDR(QB-HDR)

QBC 是 quad bayer coding 的缩写。这种 sensor 的设计是:每个像素是有四个子像素组成, 他们公用一个 color filter。在非 HDR 模式下,四个像素合并成一个输出值,在 HDR 模式时,会把四个像素分成两组,对角线方向的分到同一组,135 度的那组曝光要短于 45 度的那组,然后再 scale+combine,这样就生成完全 pixel 位置的 HDR 图像。IMX294CJK 采用了这个技术。

行交织HDR(Digital-Overlap)

索尼的DOL(Digital-Overlap) HDR相比传统HDR读取完每一行所有像素然后开始曝光,完成后再分别进行长中短这种低效模式下,DOL HDR的长中短三次读取曝光是同时进行的(准同时)效率更高。DOL HDR相比传统HDR读取完每一行所有像素然后开始曝光,完成后再分别进行长中短这种低效模式下,DOL HDR的长中短三次读取曝光是同时进行的(准同时)效率更高。IMX290 使用了这一技术。(IMX274LQC也使用了该技术)

OV的Staggered HDR:staggered HDR 与sony 的Dol 类似,不同的是Sony 最多支持4:1 曝光输出,即long,medium,short,veryshort。而OV 最多支持3:1 输出,即long,medium,short。

传统的多帧HDR是以帧为单位,只有第一帧所有行完成曝光后才开始第二帧的曝光,如下图所示

而行交织DOL HDR只要长曝光行曝光结束就开始短曝光行的曝光,这种方式避免了传统多帧HDR方式对于拍摄高速移动物体场景的限制。

大小pixel HDR Sensor

与普通CFA的不同,大小pixel技术的sensor在相邻位置有一大一小两个pixel,他们空间上非常接近,可以认为对空间采样相同。IMX490 采用了此技术

由于pixel的大小不同,物理上的sensitivity不同,FWC也不同,会产生与时域HDR一样的不同曝光效果,形成了对不同动态范围的覆盖。

DCG Sensor

据说这是小米10 至尊纪念版主摄技术

Dual一词也就说明了一个pixel下有两个方案--Low conversion gain(LCG)和high conversion gain (HCG)。 LCG应对于明亮的场景,DCG处于打开状态;HCG应对低光场景,DCG处于关闭状态,灵敏度增加。CG值越高,电子更容易被探测到,也就是sensitivity越高。

双摄HDR

这个不用多说,就是使用两个摄像头,一颗摄像头负责短曝光,一颗摄像头负责长曝光,后期通过HDR多帧融合算法融合即可。

相关推荐
Antonio91515 小时前
【图像处理】libtiff 的介绍与使用
图像处理
第二层皮-合肥16 小时前
图像处理中的暗场校正
图像处理·数码相机·计算机视觉
chao1898441 天前
多光谱图像融合:IHS、PCA与小波变换的MATLAB实现
图像处理·计算机视觉·matlab
这张生成的图像能检测吗1 天前
(论文速读)基于图像堆栈的低频超宽带SAR叶簇隐蔽目标变化检测
图像处理·人工智能·深度学习·机器学习·信号处理·雷达·变化检测
禁默2 天前
第四届图像处理、计算机视觉与机器学习国际学术会议(ICICML 2025)
图像处理·机器学习·计算机视觉
Antonio9152 天前
【图像处理】tiff格式介绍
图像处理·人工智能
Antonio9152 天前
【图像处理】png 格式详解
图像处理
AndrewHZ2 天前
【图像处理基石】什么是alpha matting?
图像处理·人工智能·计算机视觉·matting·发丝分割·trimap·人像模式
LabVIEW开发3 天前
LabVIEW液位边缘检测
图像处理·计算机视觉·labview·labview知识·labview功能·labview程序
拾荒的小海螺3 天前
C#:OpenCvSharp 实现图像处理的技术指南
开发语言·图像处理·c#