3A之AE篇7
曝光场景中出现大面积黑色物体,曝光怎么处理?
这个问题其实在上一篇中已经有过回答。由于曝光目标值的设定是以18%中灰为基准的,当场景中出现大面积黑色物体时,实际的反射率是低于18%的,此时,应对曝光目标值增加一个负向的曝光补偿,防止出现正常场景过曝的情况。本章节中,我将更详细的讨论这个问题。
首先是自动曝光算法对大面积黑色物体场景检测的问题。最理想的方法当然是通过AI进行场景检测,并输出黑色物体的占比。根据黑色物体的占比进行相应的曝光补偿。如果无法通过AI检测,则可以通过统计数据中的亮度直方图,计算低亮度像素(如<最大亮度的5%)占比,当占比超过阈值时,则认为当前场景中存在大面积黑色物体。如下图中所示,当场景中出现大面积黑色物体时,直方图中有比较明显的体现。
其次,关于测光策略选择的问题。在进行统计亮度计算时,应根据黑色物体占比适当降低暗区权重,甚至排除暗区,不进行统计。同时,应适当提升高亮区域权重,防止出现过曝的情况(如果黑色物体也参与亮度统计,正常亮度的物体很容易出现过曝)。
第三,曝光目标值的设定。场景中出现大面积黑色物体时,应对曝光目标值增加一个负向的曝光补偿。补偿值的大小可以根据黑色物体的占比及其反射率进行动态计算。
最后,关于控制策略,应防止出现死循环及亮度闪烁问题。首先看死循环,当算法检测到场景中出现大面积黑色物体时,会对曝光目标值进行负向补偿,则画面亮度会慢慢压暗。这有可能导致算法检测到的黑色物体占比增加,从而导致负向的曝光补偿增加,画面进一步变暗,黑色物体占比进一步增加,导致算法陷入了死循环。而闪烁问题可能是由于不同亮度块的统计权重及黑色物体判断阈值造成的。比如,同样的,当算法检测到场景中出现大面积黑色物体时,会对曝光目标值进行负向补偿,则画面亮度会慢慢压暗,黑色物体占比增加,可能导致整体统计亮度偏低,算法拉升亮度,黑色物体占比减小,统计亮度增加,算法压低亮度,这样就出现了亮度闪烁。出现这种情况的原因主要是统计策略的问题,即由于黑色物体占比会随着亮度变化,这就有可能导致算法调整后,实际统计亮度和算法预测亮度相差甚远。以上两种情况都是我基于假设的情况进行模拟的。在进行算法设计时,为避免出现以上情况,权重参数的设计应尽量避免硬阈值以及数值突变设计,曝光补偿等参数应尽量进行时域上的低通平滑滤波,避免出现参数震荡。
更多的细节,则需要我们在算法开发及测试过程中进行更深入的分析和了解。
