使用Zynq-7000 All Programmable SoC实现图像传感器色彩校正
白平衡 使用上面介绍的相机校准方法,我们建立了4个色彩校正系数和偏移量(CCMk,k={1,2,3,4})。如果能够正确地识别光源,这4个系数和偏移量就可实现理想的色彩表达。采用运行在嵌入式处理器上的软件实现的白平衡算法需要逐帧完成下列运算。首先根据统计信息估算光源权重(Wk)。权重经低通滤波后,用于补偿场景突变,得到光源概率(pk)。根据权重pk,使用CCMk值对色彩校正矩阵模块进行编程。 这种方法的优势在于,即便场景色彩和光源色彩没有适当分离,校准CCMk值的线性组合也能限制色彩伪影形成。比如在水下摄影时会面临严重的蓝色调,如果采用灰度世界法等简单的白平衡算法,在补偿时会去除所有的蓝色,导致场景的原生色彩严重失真。 对灯箱中不同场景设置下的所有光源k={1,2,3,4},我们通过根据色度对像素值进行分档并根据亮度值对每个像素加权,还得到二维的场景YUV直方图(亮度加权色度直方图)。这种方法可以去掉黑色像素,或者那些R、G、B值存在少量差异就会在色度域中形成巨大噪声的像素。 我们使用掩码,去除可能造成典型光源照明条件下中性(灰色或白色)物体不可能产生的鲜艳颜色对应的直方图分档(图6)。典型的掩码包含的是仅围绕中性(白色)点周围的非零值,这里是大多数光源所处的位置。我们将有掩码的二维直方图值Hk(X,y)和CCMk值硬件编码到运行在嵌入式处理器上的白平衡应用中。 在实时运算过程中,白平衡应用负责采集相似的二维亮度加权色度直方图。然后给测得的二维直方图加掩码。最后计算四个存储的直方图和测得的直方图之间的绝对差和或方差和: 根据测量的直方图偏差Dk,用下式计算标准化相似值: 最后,我们将预先计算出的色彩校正系数和偏移量(CCMk)线性合并,完成ISP的色彩校正模块的编程(图3): 图7是自然光和荧光灯照明条件下,场景采用实时白平衡算法实现的结果,可以看出感知的图像质量和色彩表达的明显改善。 Zynq视频与成像套件,加上赛灵思提供的MATLAB脚本,为我们提供的算法提供了补充和实现范例。 随着工业、消费和汽车视频应用分辨率和帧率的提高,实时色彩平衡算法的难度正在不断增大。我们在本文介绍的算法阐述了如何使用运行在嵌入式处理器(诸如Zynq处理平台采用的ARM9核)上的软件,控制执行像素级色彩校正的定制图像和视频处理算法。 参考文献:
其中Hk(X,Y)是与已知光源{k=1,2,3,4}有关的预先计算出的基准二维直方图,H(x,y)是实时测量的直方图。
为避免逐帧色调陡变,我们将标准化相似值按时间进行平滑处理。我们采用简单的低通IIR滤波器,实现方法为:
其中0
[1]Chong H Y, Gortler S J和Zickler T.冯 克里斯假设和色彩恒定的基础.IEEE计算机视觉国际大会会议纪要,2007
[2] Bianco S,Gasparini F和Schettini R.白平衡综合策略.2007年国际光学工程学会(SPIE)纪要, 39卷: 65020D-65020D-9
赛灵思 嵌入式 Zynq FPGA 201303 相关文章:
- 可扩展的嵌入式网络平台(07-07)
- 基于赛灵思Spartan-3A DSP的安全视频分析(02-17)
- 如何快速启动嵌入式系统开发(01-06)
- 利用XPS工具快速生成Virtex FPGA的板级支持包(03-18)
- 设计可靠性: MTBF—这只是开始!(09-17)
- 将SoC平台设计与DSP系统生成器相集成(07-01)