2. 图像亮度度量:从RAW域到YUV域,如何定义一张图像的“亮度”?

做AE算法这些年,我最大的体会是:曝光准不准,首先得知道什么叫“亮”

你想想看,一张照片,有的地方亮、有的地方暗。我们怎么用一个数字,来描述整张图的亮度?

这个问题,从RAW域到YUV域,答案完全不一样。今天我就带你捋一遍。

2.1 平均亮度:最简单,但最不靠谱

最直观的想法,就是把所有像素的亮度值加起来,除以像素总数。

公式很简单:

L_mean = (1/N) * Σ I(i, j)

其中 I(i, j) 是像素 (i, j) 的亮度值,N 是总像素数。

但我在项目中吃过这个亏。

有一次做手机夜景模式,用平均亮度做AE参考。结果呢?画面里有一盏路灯,占了不到5%的面积,但亮度极高。平均亮度被拉得很高,算法以为场景很亮,自动降低了曝光。结果人脸全黑了。

避坑指南: 平均亮度对极端值非常敏感。一个高光点,就能把整张图的“亮度”带偏。我曾经因为这个,被测试团队追着改了三版算法。

2.2 中心权重亮度:更符合人眼习惯

人眼看东西,是有“重点”的。我们通常会把注意力放在画面中央。

所以,中心权重亮度就来了。它给画面中心区域更高的权重,边缘区域权重低一些。

常见的权重分布是高斯分布:

W(i, j) = exp( - ((i - i0)² + (j - j0)²) / (2σ²) )

L_weighted = ( Σ W(i, j) * I(i, j) ) / Σ W(i, j)

其中 (i0, j0) 是图像中心,σ 控制权重衰减速度。

我个人习惯用 σ = 0.3 * min(width, height)。这样中心区域大概占画面的30%左右,比较符合人眼视觉。

经验之谈: 做视频通话AE时,中心权重特别好用。因为人脸通常都在画面中央。我做过一个测试,中心权重亮度比平均亮度,在人物场景下AE准确率提升了约15%。

2.3 直方图亮度:最全面的视角

平均和中心权重,都只给了一个数字。但一张图的亮度分布,其实很复杂。

直方图,就是把所有像素的亮度值,按区间统计出来。横轴是亮度(0~255),纵轴是像素数量。

从直方图里,我们能读出很多信息:

  • 左偏:画面偏暗,欠曝
  • 右偏:画面偏亮,过曝
  • 中间集中:对比度低,灰蒙蒙
  • 两边都有峰:高反差场景

基于直方图,我们可以定义多种亮度度量:

度量方式 计算方法 适用场景
中位数亮度 直方图累积到50%时的亮度值 抗噪能力强,不受极端值影响
众数亮度 直方图峰值对应的亮度值 场景主色调明显时好用
百分比亮度 取直方图某个百分位(如90%)的亮度 避免高光溢出时参考

我一般怎么用?

做AE算法时,我通常取中位数亮度作为主参考,再结合90%分位亮度做防过曝保护。这样既稳定,又安全。

2.4 从RAW域到YUV域:亮度定义完全不同

这里有个关键点,很多人会忽略。

RAW域的亮度,是线性的。 传感器采集的光子数,和像素值成正比。但人眼对亮度的感知,是非线性的。

YUV域的亮度,是经过Gamma校正的。 它更接近人眼的感知特性。

所以,同一个场景,在RAW域和YUV域算出来的“平均亮度”,意义完全不同。

核心结论:
  • RAW域做AE:用线性亮度,适合精确控制曝光时间
  • YUV域做AE:用Gamma校正后的亮度,适合视觉质量评估
  • 我建议:算法内部用RAW域,最终输出前转YUV域做校验

2.5 知识体系总览

下面这张图,是我自己总结的亮度度量知识体系。你看一遍,心里就有谱了。

图像亮度度量知识体系 平均亮度 L_mean = (1/N) Σ I 中心权重亮度 高斯权重分布 直方图亮度 中位数/众数/分位 缺点:对极端值敏感 优点:计算简单 适用:均匀光照场景 缺点:边缘信息丢失 优点:符合人眼习惯 适用:人物/视频通话 缺点:计算量稍大 优点:信息最全面 适用:复杂光照场景 RAW域 vs YUV域:亮度定义完全不同 RAW域 线性亮度 适合精确控制曝光 YUV域 Gamma校正亮度 适合视觉质量评估 推荐:算法内部用RAW域,输出前用YUV域校验

2.6 实战建议:我到底该用哪个?

说了这么多,你可能有点晕。我直接给你一个决策流程:

  1. 先看场景:如果是均匀光照(如室内灯光),平均亮度就够了
  2. 再看主体:如果主体在中央(如人像),用中心权重
  3. 最后看复杂度:如果场景复杂(如逆光、夜景),必须用直方图

嗯,这里要注意:没有万能的亮度度量。我做过一个项目,白天用平均亮度,晚上自动切换到直方图中位数。效果比单一方法好很多。

我的小技巧: 在AE算法里,同时计算三种亮度。然后根据场景分类器,动态选择参考值。这样既灵活又鲁棒。

好了,关于图像亮度度量,就聊到这儿。记住:选对度量方式,AE算法就成功了一半


公众号:蓝海资料掘金营,微信deep3321