2. 车载场景光照分析:隧道出入口、夜间会车、逆光场景、雨雾天气的光照特性

做车载宽动态,第一件事不是调参数,而是搞清楚你的摄像头到底要面对什么样的光。我入行那会儿,总觉得宽动态就是「暗的地方提亮、亮的地方压暗」,结果第一次实车路测就被现实狠狠教育了一顿。

车载场景的光照,跟安防监控完全是两码事。监控摄像头对着一个固定场景,光照变化是缓慢的。车载摄像头呢?上一秒还在隧道里,下一秒就冲进大太阳底下。这种极端动态范围,才是宽动态要啃的硬骨头。

下面我把最常见的四个魔鬼场景拆开来讲。每个场景我都吃过亏,希望你别再踩一遍。

2.1 隧道出入口:最典型的「瞬间过曝」场景

隧道出入口,是车载宽动态的试金石。你想想看,隧道内的照度通常只有 10~50 lux,而隧道外的晴天路面可以达到 100,000 lux。这个跨度,接近 100dB 的动态范围。

我做过一次统计,把不同隧道出入口的实测数据列出来:

场景位置 典型照度 (lux) 动态范围需求 (dB) 主要挑战
隧道内部(距出口 50m) 10~50 — 暗部细节丢失
隧道出口(距洞口 10m) 50~5,000 80~100 亮部过曝 + 暗部欠曝并存
隧道外(出洞后 2s) 50,000~100,000 — 自动曝光来不及收敛
隧道入口(进洞前 2s) 100,000→10 80~100 亮度骤降,暗部噪声放大

为什么隧道出口特别难?因为摄像头既要看清洞外的交通灯、行人,又要保留洞内的车道线和前车尾灯。传统单帧曝光根本做不到——你保了亮部,暗部就全黑;你提了暗部,亮部就一片死白。

关键指标:隧道出入口场景要求宽动态能力至少达到 100dB,且曝光切换速度要控制在 1~2 帧以内。超过 3 帧的延迟,驾驶员就会感觉到「闪一下」或者「黑一下」。

我个人习惯在隧道场景里用 自适应长短帧融合 策略。长帧保暗部,短帧保亮部,然后根据场景亮度动态调整融合权重。嗯,这里要注意:融合权重不能突变,否则画面会闪烁。我一般用 IIR 滤波器做平滑,时间常数设在 0.5s 左右。

2.2 夜间会车:局部过曝与全局欠曝的博弈

夜间会车,是另一个让宽动态算法头疼的场景。对面来车的远光灯,照度可以达到 10,000 lux 以上,而周围路面可能只有 1 lux。这个局部动态范围,比隧道出入口还要极端。

我曾经在测试场做过一组对比:

  • 无宽动态:对面车灯区域完全过曝,形成一个直径 200 像素的白色光晕,光晕内部的车牌、车型信息全部丢失。
  • 传统宽动态:光晕缩小到 80 像素,但周围路面噪声明显增加,暗部信噪比下降 6~8dB。
  • 局部自适应宽动态:光晕控制在 30 像素以内,同时路面信噪比保持在 35dB 以上。

为什么会这样?因为传统宽动态是对整帧图像做全局融合,而夜间会车的问题本质上是 局部过曝。你需要的是空间自适应的融合策略——在车灯区域用短帧权重,在周围区域用长帧权重。

我的经验:夜间会车场景,建议把图像分成 16×16 的块,每块独立计算融合权重。块与块之间用高斯滤波做平滑,避免出现块效应。我曾经在项目里试过 8×8 分块,块效应太明显,后来改成 16×16 才解决问题。

还有一个坑:对面车灯的颜色温度通常在 4,000K~5,000K,而路灯可能是 2,700K 的钠灯。这种混合色温会让白平衡算法发疯。我建议在宽动态处理之后,单独做一次局部白平衡校正,只对过曝区域做色温补偿。

2.3 逆光场景:大光比下的细节保留

逆光场景,说白了就是太阳在摄像头正前方或者侧前方。这时候,天空和地面之间的亮度差可以达到 120dB 以上。车载摄像头如果处理不好,就会出现「天上白云朵朵,地面一片漆黑」的效果。

逆光场景跟隧道出口有一个本质区别:隧道出口的亮区和暗区是分界的,而逆光场景的亮度是 渐变 的。从天空到地面,亮度是连续变化的。这就要求宽动态算法不能只用两帧融合,而是需要多帧(3~5 帧)或者像素级曝光控制。

我整理了几种常见逆光场景的亮度分布:

逆光类型 天空亮度 (cd/m²) 地面亮度 (cd/m²) 动态范围 (dB) 推荐策略
正面逆光(太阳在正前方) 10,000~30,000 50~200 100~110 3 帧融合 + 局部色调映射
侧前方逆光(太阳在 45° 方向) 8,000~20,000 100~500 80~95 2 帧融合 + 全局色调映射
低角度逆光(日出/日落) 5,000~15,000 30~100 100~120 4 帧融合 + 局部自适应

我个人在逆光场景里最常用的是 多帧融合 + 局部色调映射 的组合。多帧融合负责扩展动态范围,局部色调映射负责把高动态范围压缩到 8bit 显示设备能呈现的范围。这里有个技巧:色调映射的局部对比度参数不能设得太高,否则会出现光晕伪影。我一般把局部对比度控制在 1.5~2.0 之间。

避坑指南:我曾经在一个项目里把色调映射的局部对比度设到 3.0,结果逆光场景下行人周围出现了一圈明显的白色光晕,被客户直接打回。后来我把参数降到 1.8,光晕消失了,但暗部细节依然保留得很好。

2.4 雨雾天气:低对比度 + 高动态范围的双重挑战

雨雾天气,很多人觉得「不就是画面模糊一点吗?」其实没那么简单。雨雾天气对宽动态的影响,主要体现在两个方面:

  1. 对比度下降:雾天的大气散射会降低图像的对比度,尤其是远距离物体的边缘信息会严重丢失。这时候宽动态算法如果还按照正常场景去融合,很容易把雾天的「灰蒙蒙」当成正常亮度,导致融合后的画面依然模糊。
  2. 动态范围反而增大:你没看错,雨雾天气的动态范围可能比晴天还要大。因为雨滴和雾滴会形成无数个微小的反射面,把车灯光源散射成一片光晕。近处的车灯可能过曝,远处的物体可能完全淹没在雾里。

我实测过一组雨雾天气的数据:

  • 小雨:动态范围约 70~80dB,主要挑战是雨滴造成的局部过曝和运动模糊。
  • 中雨:动态范围约 80~90dB,路面反光严重,车道线检测困难。
  • 大雾:动态范围约 90~100dB,能见度低于 50m 时,远距离物体几乎无法识别。

雨雾场景的宽动态处理,我建议在融合之前先做一步 去雾预处理。去雾算法可以恢复一部分对比度,让宽动态融合的输入图像质量更高。常用的去雾方法有暗通道先验(DCP)和基于深度学习的去雾网络。不过要注意,去雾算法不能太耗时,车载平台的计算资源有限。我一般用简化版的 DCP,只对亮度通道做处理,处理时间控制在 5ms 以内。

核心思路:雨雾天气的宽动态,不是单纯地「扩展动态范围」,而是「先恢复对比度,再扩展动态范围」。顺序不能搞反。先融合再去雾,效果远不如先去雾再融合。

嗯,还有一个细节:雨滴在镜头前会形成局部遮挡,造成「水波纹」效应。这种效应会让宽动态融合产生伪影。我建议在融合之前加一个雨滴检测模块,检测到雨滴区域后,用相邻帧的对应区域做插值替换。

2.5 本章知识体系

下面这张图,把四个场景的核心挑战和应对策略串起来了。你可以把它当作一个快速参考框架。

车载场景光照分析知识框架 车载宽动态光照场景 隧道出入口 夜间会车 逆光场景 雨雾天气 挑战:100dB 跨度 曝光切换延迟 挑战:局部过曝 混合色温 挑战:渐变亮度 120dB 动态范围 挑战:对比度下降 雨滴遮挡 策略:自适应长短帧 IIR 平滑融合 策略:16×16 分块 局部白平衡 策略:多帧融合 局部色调映射 策略:先去雾再融合 雨滴检测插值 核心原则:场景自适应 + 局部精细化处理 没有一种策略能打天下,必须根据场景动态切换

这张图把四个场景的核心挑战和应对策略都列出来了。你可以看到,每个场景的「病因」不同,「药方」也不同。隧道出入口要解决的是曝光切换速度,夜间会车要解决的是局部过曝,逆光场景要解决的是渐变亮度,雨雾天气要解决的是对比度下降。没有一种策略能打天下,必须根据场景动态切换。