尧图精选

《Exposure Evaluation Method Based on Histogram Statistics》文献详细总结

🕒 发布时间:2026/10/2 8:26:04 📁 来源:尧图网络
翻译至论文《Exposure Evaluation Method Based on Histogram Statistics》摘要针对成像系统在无明确前景、无明确背景场景下存在的过曝、欠曝问题本文提出一种基于直方图的曝光评价方法。通过分析不同曝光图像直方图的统计特征采用以中灰为参考点的三阶矩来评价曝光效果。针对彩色图像为兼顾运算效率仅选取平均亮度最大的颜色通道计算直方图。实验结果表明该方法无需图像数据库即可完成曝光效果评价算法复杂度低易于工程实现。关键词曝光评价图像直方图三阶矩中灰一、引言在消费级数码相机中自动曝光AE是图像流水线的重要处理模块。自动曝光模块通过自动调节相机曝光量以输出亮度合适的图像。要实现相机曝光自动调节需要一套反馈系统依据当前图像的曝光评价结果更新相机曝光参数。因此曝光评价方法是自动曝光系统的核心。现有方案主要分为两类。 第一类是基于参考亮度的方法曝光时间越长图像亮度越高将当前图像亮度和某一参考亮度做对比以此完成相机曝光调节。例如文献 [1] 将图像切分为若干子图利用子图平均亮度确定参考亮度再调节光圈大小达到目标参考亮度类似思路也被用于快门速度调节。显然单纯依靠平均亮度的方法适用范围有限。除简单的平均亮度指标外矩阵测光、中央加权测光、信息熵、梯度等各类评价手段被用于基于图像亮度确定曝光值文献 [2‑6] 给出大量由实验总结得到的亮度‑曝光关系与规则。第二类被部分相机厂商采用的方法基于样本实例学习的方案利用大量图像样本学习不同光照条件下亮度与曝光的映射关系 [7‑9]。相比第一类方法样本学习方案鲁棒性更强因为它覆盖了大量不同光照、不同拍摄场景。但该方案必须依赖大规模不同光照下采集的图像数据库。此外传统算法适合前景、背景清晰可分的场景。但对于森林、海洋、山地这类没有明确前景、背景的特殊场景传统方法很难输出合理的曝光等级。图像质量与图像直方图紧密相关。曝光良好的图像灰度分布均匀直方图两端不存在像素溢出利用直方图还可以求解图像均值、方差、最大最小亮度。因此已有不少工作采用直方图做曝光评价 [10‑15]。但这些文献大多聚焦于感兴趣区域ROI的曝光评价。文献 [14] 依靠判断直方图两端是否存在像素评价曝光效果该方法极易受噪声干扰。为解决上述问题本文利用直方图偏斜特性判断曝光是否合适。在计算偏度时不以图像均值做偏差基准而是以参考亮度计算三阶矩。实验证明本文所提方法有效。二、基于直方图统计的曝光评价方法大量实验表明低对比度图像的直方图大多呈单峰形态部分无明确前景、背景的特殊场景直方图同样为单峰。这两类场景下物体与背景很难区分传统曝光评价方法无法得到合适曝光。本文针对直方图呈单峰的图像提出基于三阶矩的曝光评价算法。A 矩的基本概念矩在图像分析领域应用广泛可用来得到针对特定变换具备不变性的特征。矩是对点集形状的定量描述。若点集代表概率密度则零阶矩代表总概率一阶矩代表均值二阶中心矩代表方差三阶矩表征偏度。随机变量x的实函数(f(x))相对于参考点C的n阶矩定义概率密度函数(f(x))关于零点的n阶矩称为原始矩是\(X^n\)的数学期望。关于均值C取均值的矩称为中心矩中心矩描述函数分布形状不受平移影响。阶数大于等于 2 时一般优先使用中心矩而非原始矩。中心矩是随机变量相对于均值偏差整数次幂的期望因此可以更清晰地描述分布形状。一阶中心矩恒等于 0二阶中心矩即方差三阶中心矩用于定义标准化矩用来表征分布的偏斜程度。对称分布的三阶中心矩等于 0左拖尾左侧尾巴更长分布偏度为负右拖尾右侧尾巴更长分布偏度为正。B 本文算法灰度分布均匀的图像动态范围高、对比度高、画面清晰灰度均匀则分布呈对称形态。A 小节已经说明对称分布的三阶中心矩等于 0。实验同时表明灰度分布越均匀直方图偏度越趋近于 0直方图非双峰的图像该现象尤为明显。因此本文利用直方图偏度衡量灰度分布均匀程度。三阶中心矩描述直方图相对于图像自身均值的偏斜。但图像自身的平均亮度并不能代表正确曝光的亮度。曝光是否准确取决于灰度分布相对于参考亮度的对称性而不是相对于图像自身均值的对称性。由此启发将三阶矩与参考亮度结合完成曝光效果评价。绝大多数场景的整体亮度对应 18% 反射率的中灰。多数情况下以中灰亮度作为目标可以得到合适曝光因此选取中灰作为参考亮度。本文提出结合三阶矩与中灰的曝光评价方法。设U为大小图像代表图像灰度值。图像U的直方图定义式中灰度等于的像素总数量。设代表第i帧图像第i帧直方图为第i帧中灰度值等于的像素数目。令C代表中灰相对于参考点C的三阶矩定义本文中 8bit 图像中灰取。对于第i帧图像\(U_i\)相对于中灰的三阶矩采用该中灰三阶矩\(\mu(i)\)评价第i帧曝光效果分布左偏图像太暗欠曝分布右偏图像太亮过曝分布对称曝光正确。表示第i帧曝光时间第\(i1\)帧曝光时间迭代调节规则代表曝光时间调节步长。彩色图像处理每一帧都对全部颜色通道统计直方图会带来巨大时间开销。为提升效率只选择平均亮度最大的颜色通道计算该通道直方图。三、实验结果本章节使用一组树叶Leaves彩色图像验证算法性能。图像三通道均为 256 级灰度0 代表最暗255 代表最亮。全部实验基于 Vc6.0 平台完成。选取信息熵、均值法这两种传统曝光评价准则作为对比。本实验固定场景通过设置不同曝光时间得到多幅不同曝光等级的图像。 实验传感器 CMV20000帧率 25fps 条件下曝光时间调节范围。部分图像见图 I。本实验中绿色 G 通道在 RGB 三通道内平均亮度最大出于效率考量仅使用 G 通道计算。图 II 为图 I 中各图像 G 通道对应的直方图。表 I 记录 G 通道各项指标包括均值、信息熵、以均值为参考的三阶矩三阶中心矩以及以中灰为参考的三阶矩计算使用图像全部像素。图 I不同曝光时间下采集的树叶图像 (1)\(T2000\mu s\)(2)\(T2596\mu s\)(3)\(T3100\mu s\)(4)\(T3500\mu s\)(5)\(T4500\mu s\)(6)\(T5500\mu s\)如表 I 所示第一张图像画面非常暗。随着曝光时间增加图像均值不断增大见表 I画面越来越亮。图 I 的第 (5)、(6) 幅图像明显过曝。表 I不同曝光时间树叶图像实验结果帧序号 i曝光时间\(T_i(\mu s)\)均值熵以均值为中心的三阶矩以中灰为中心的三阶矩1200089.1656.65360.4400-1.81832238099.13976.79100.6041-1.023032500106.38126.94070.6595-0.596042596114.54557.04750.7754-0.052952740121.82177.11190.77880.402263100132.76477.18830.78901.178173500153.39417.25760.67773.241584000171.95567.12160.38766.264094500191.13916.7641-0.159510.1888105000206.41816.0698-0.528414.1927115500219.92745.1766-0.689018.0179126000232.45264.1512-0.630022.1286从表 I 可以看出信息熵在曝光时间等于(3500\mu s)时达到峰值。如果采用熵准则图 I (4) 会被判定为最佳曝光图像。同时以均值为中心的三阶矩在曝光(4500\mu s)时最接近 0依据该指标则图 I (5) 是最佳曝光图像。但主观看图图 I (4)、图 I (5) 已经明显过曝。当曝光时间\(3100\mu s\)时图像均值 132.7647非常接近中灰 128。按照均值法图 I (3) 是最优曝光图像。而本文提出的中灰三阶矩在曝光\(2596\mu s\)时最接近 0按照本算法判定图 I (2) 为最佳曝光。对比图 I (2) 和图 I (3)图 I (3) 整体更亮图像中下部已经出现过曝同时看图 II 直方图图 I (3) 直方图向右偏移动态范围相比图 I (2) 更低。因此图 I (2) 成像效果优于图 I (3)。此外图 II 可见图 I (4)(5)(6) 的直方图均呈右偏。曝光改变过程中直方图由左侧逐步向中间移动再进一步偏移至最右侧对应中灰三阶矩的绝对值先减小后增大。直方图偏度越趋近于 0图像动态范围越高。本测试场景只有绿叶、黄花不存在明确前景、背景直方图近似单峰。实验结果表明和其他方法对比基于中灰的三阶矩可以输出更优曝光等级。因此该指标对直方图单峰图像的曝光评价是有效的。图 II图 I 图像绿色通道直方图 (1)\(T2000\mu s\)(2)\(T2596\mu s\)(3)\(T3100\mu s\)(4)\(T3500\mu s\)(5)\(T4500\mu s\)(6)\(T5500\mu s\)综上实验证明以中灰为参考点的三阶矩可以用于直方图为单峰图像的曝光效果评价。四、结论本文提出一项全新曝光评价判据用于自动曝光控制系统该判据基于相对于中灰的三阶矩。实验结果表明该评价指标适合直方图呈单峰形态图像的曝光质量评估。五、代码实现 File: auto_exposure.py Description: 3A-AE Runs the Auto exposure algorithm in a loop Code / Paper Reference: https://www.atlantis-press.com/article/25875811.pdf http://tomlr.free.fr/Math%E9matiques/Math%20Complete/Probability%20and%20statistics/CRC%20-%20standard%20probability%20and%20Statistics%20tables%20and%20formulae%20-%20DANIEL%20ZWILLINGER.pdf Author: 10xEngineers Pvt Ltd ------------------------------------------------------------ import time import numpy as np class AutoExposure: Auto Exposure Module def __init__(self, img, sensor_info, parm_ae): self.img img self.enable parm_ae[is_enable] self.is_debug parm_ae[is_debug] self.center_illuminance parm_ae[center_illuminance] self.histogram_skewness_range parm_ae[histogram_skewness] self.sensor_info sensor_info self.param_ae parm_ae self.bit_depth sensor_info[bit_depth] # Pipeline modules included in AE Feedback Loop # (White Balance) wb module is renamed to wbc (white balance correction) # gc (Gamma Correction) module is renamed to gcm (Gamma Correction Module) def get_exposure_feedback(self): Get Correct Exposure by Adjusting Digital Gain # Convert Image into 8-bit for AE Calculation self.img self.img (self.bit_depth - 8) self.bit_depth 8 # calculate the exposure metric return self.determine_exposure() def determine_exposure(self): Image Exposure Estimation using Skewness Luminance of Histograms # plt.imshow(self.img) # plt.show() # For Luminance Histograms, Image is first converted into greyscale image # Function also returns average luminance of image which is used as AE-Stat grey_img, avg_lum self.get_greyscale_image(self.img) print(Average luminance is , avg_lum) # Histogram skewness Calculation for AE Stats skewness self.get_luminance_histogram_skewness(grey_img) # get the ranges upper_limit self.histogram_skewness_range lower_limit -1 * upper_limit if self.is_debug: print( - AE - Histogram Skewness Range , upper_limit) # see if skewness is within range if skewness lower_limit: return -1 elif skewness upper_limit: return 1 else: return 0 def get_greyscale_image(self, img): Conversion of an Image into Greyscale Image # Each RGB pixels with [0.299, 0.587, 0.144] to get its luminance grey_img np.clip( np.dot(img[..., :3], [0.299, 0.587, 0.144]), 0, (2**self.bit_depth) ).astype(np.uint16) return grey_img, np.average(grey_img, axis(0, 1)) def get_luminance_histogram_skewness(self, img): Skewness Calculation in reference to: Zwillinger, D. and Kokoska, S. (2000). CRC Standard Probability and Statistics Tables and Formulae. Chapman Hall: New York. 2000. Section 2.2.24.1 # First subtract central luminance to calculate skewness around it img img.astype(np.float64) - self.center_illuminance # The sample skewness is computed as the Fisher-Pearson coefficient of # skewness, i.e. (m_3 / m_2**(3/2)) * g_1 # where m_2 is 2nd moment (variance) and m_3 is third moment skewness img_size img.size m_2 np.sum(np.power(img, 2)) / img_size m_3 np.sum(np.power(img, 3)) / img_size g_1 np.sqrt(img_size * (img_size - 1)) / (img_size - 2) skewness np.nan_to_num((m_3 / abs(m_2) ** (3 / 2)) * g_1) if self.is_debug: print( - AE - Histogram Skewness , skewness) return skewness def execute(self): Execute Auto Exposure print(Auto Exposure str(self.enable)) if self.enable is False: return None else: start time.time() ae_feedback self.get_exposure_feedback() print(f Execution time: {time.time()-start:.3f}s) return ae_feedback数学形式这里有两层重要混淆点虽然形式上套用了标准化偏度公式模板但中心化基准C是固定 128不是样本均值。 该变量skewness已经不是统计学教科书定义的 Fisher‑Pearson 样本偏度只是借用标准化框架改造的自定义指标。增加分母之后消除了图像对比度对输出幅值的影响。论文原版同样曝光状态对比度升高会显著变大代码改造后标准化指标同样偏斜形态对比度变化输出 skewness 幅值基本不变。关键要点备注论文的三阶矩是原始三阶矩没有除以方差做标准化论文文字提到 skewness偏斜现象但数学模型没有统计学标准化偏度公式。适用边界仅验证单峰直方图场景不讨论双峰、大面积高光饱和场景。彩色图像处理策略选取 RGB 通道中平均亮度最大的单通道计算指标不是合成 Y 亮度。判据欠曝增加曝光时间过曝减少曝光时间。
上一篇/下一篇内容由系统自动关联 返回资讯列表 →