1、高动态范围图像相关
图像的动态范围是指一幅图像中量化的最大亮度与最小噪声的比值。高动态范围HDR(high dynamic range)图像,能够完整表示真实场景中跨度很大的动态范围。采用普通CMOS/CCD图像传感器不能完整呈现亮度层次差异较大的真实场景。场景中较亮的区域,由于过曝光会出现一片白亮,而场景中较暗的区域,由于欠曝光会出现一片黑暗。
另外,由于成本等原因,显示设备的动态范围也较小,如一般的阴极射线管(Cathode RayTube,CRT)、液晶显示器(Liquid Crystal Display,LCD)、LED、等离子显示器等,显示动态范围最大为28(O到255),大多在102个数量级,远远低于现实场景的动态范围,无法做到完全映射。这意味着,即使捕获了亮度差异较大的高动态范围图像,也很难在普通显示设备上完整显示出来。
多帧图像融合
较为经济的解决思路是采用多帧图像融合,图像可以是固定增益采用不同曝光下采集,也可以是同等曝光不同增益下采集。一般情况多采用两帧图像合成,长曝光-短曝光合成或者高增益-低增益合成。
1、高低增益融合:指在同样曝光时间条件下,同时输出一路高增益数据和一路低增益数据,根据某种关系将两路数据进行融合。
2、长短曝光融合:指在同等增益的条件下,同时输出一路长曝光数据和一路短曝光数据,根据某种关系将两路数据进行融合。
长曝光与高增益数据,保证场景中较暗处细节信息能够完整捕获(高增益类似)。短曝光与低增益数据保证场景中较亮处不至于过曝(低增益类似)。
通过高低增益融合或者长短曝光融合方式融合,这种HDR图像既能够有好的暗部信息,又保证了亮部不过曝,保留了亮度信息。
相比之下笔者觉得长短曝光融合方式效果更佳,因为在光照不足的环境下,高增益数据噪声会较大,合成的图像噪点多。
2、图像融合形成HDR图像
根据Debevec等人提出的相机响应曲线(Camera Response Curve,CRV),采集图像数据计算长曝光与像素值的关系,短曝光与像素值的关系,再利用权重函数,将长曝光、短曝光对应的低动态范围图像数据合成,得到高动态范围图像。
需要sensor支持同时输出长曝光、短曝光图像,通过长短曝光融合方式来形成高动态图像。长短曝光比率是可以配置的(如果sensor支持的话),不同的配比带来不同的效果。
注意事项:
第一,利用sensor输出的图像进行合成,长短曝光比率需要摸索,不是越大越好,合适的比率融合效果更自然。
第二,像素点亮度值与曝光时间成线性关系。对于同一像素点,长曝光相比于短曝光像素响应值更高,信噪比更高。可见光sensor线性度一般都很好,而红外探测器线性度很差,一般需要做均匀性校正之后再进行融合。
第三,一般的合成算法较为复杂,有的利用最小二乘法求解多个方程,有的进行分块融合,有的需要多次迭代处理。
像素过曝光和正常曝光的概念:
(1)过曝光:亮度值>90%最大满阱值
(2)正常曝光:亮度值<=90%最大满阱值
(3)亮度阈值:90%最大满阱值
> 参考文献:《Recovering high dynamic range radiance maps from photographs》 > > 参考文献:<多曝光融合算法研究及HDR图像合成与色调映射算法设计实现> > > 参考文献:专利201810097959 .X > > 参考文献:《基于相机响应曲线的高动态范围图像融合》
3.图像融合方法
可见光sensor的像素线性响应度是很好的,线性区间几乎可以从暗场到满阱值,这为融合参数计算带来便利。
1)采集长短曝光下的数据
固定增益,短曝光间隔相同曝光值采集N组数据,长曝光数据与短曝光保持相同的比率
2)分析长短曝光下响应的曲线参数
3)计算长短曝光数据之间的响应关系
$$ L_{exp} = k*S_{exp} b
$$
4)按照融合的算法,进行图像融合。
亮度阈值90%最大满阱值,阈值之下用长曝光数据,阈值之上用短曝光拟合的数据
$$ if Y>thr, HDR=L_{exp} else Y<=thr, HDR=S_{exp}*k b
$$
得到的HDR数据需要移位来压缩动态范围,得到动态范围较好的图像
短曝光图像:
长曝光图像:
融合的HDR图像:
4、测试程序路径
测试程序供参考: https://github.com/AomanHao/AomanHao_example_of_algorithms/tree/main/2-HDR