公司动态
117、HDR多帧融合算法:曝光序列、运动鬼影消除与合成权重的高效实现
117、HDR多帧融合算法:曝光序列、运动鬼影消除与合成权重的高效实现从一次夜拍翻车说起去年调试某款旗舰机的主摄HDR,客户反馈夜景模式下拍路灯,灯杆周围总有一圈“鬼影”——不是镜头flare,是算法把不同帧的灯杆边缘叠歪了。我盯着log看了三天,发现是运动检测模块把灯杆当成“运动物体”给抹掉了,结果短帧的灯杆边缘和长帧的灯杆边缘错位,融合后像得了帕金森。这问题在实验室里用静态场景根本复现不了,只有到真实街景里,风吹树叶、行人走动、甚至手抖,都会让多帧融合变成一场灾难。HDR多帧融合,说白了就是“用时间换动态范围”。但时间一长,运动就成了敌人。今天这篇笔记,我把这些年踩过的坑、试过的方案、以及最终沉淀下来的高效实现,掰开揉碎讲清楚。曝光序列:不是随便拍三张就完事很多人以为HDR就是“欠曝+正常+过曝”三帧,然后加权平均。错。曝光序列的设计直接决定融合质量。曝光时间比是第一个坑。早期方案用1/4、1/16、1/64这种等比序列,但实际场景中,暗部信噪比和亮部饱和之间需要更精细的过渡。我现在的做法是:先确定基准帧(通常是中帧),然后根据场景亮度分布动态调整短帧和长帧的曝光时间。比如在逆光场景,短帧要更短(1/120甚至1/240),长帧要更长(1/8甚至1/4),但长帧不能超过手持安全快门(1/焦距的倒数,别问我怎么知道的,手抖废片堆了一抽屉)。帧间间隔是第二个坑。连续拍摄三帧,如果间隔太短(比如10ms),