1、问题背景
工作中经常有调试图像客观指标的需求,很容易遇到我们自己的环境测试是过的,
但客户那边的环境就是测不过,这时候该怎么办呢?
2、问题分析
首先要改变以往的工作思路,在调试的过程中不能说指标过了就完了,而是需要思考:
1)这些指标和什么有关系,受什么的影响?
2)客户那边测不过的话,可以有哪些应对措施?
3)调试过程中我能怎么尽可能的去规避,由于环境差异导致的指标不过问题。
以我遇到的一个具体问题为例:
我司有两个灯箱,一个是LED光源的立式灯箱,一个标准荧光灯箱,如下图所示:
设置的同样的色温和照度,拍出来的24色卡图,存在肉眼可见的差异(LED灯箱下拍摄的图卡更鲜艳,亮度更高),如下图所示;
以下是imatest的分析结果:
1)这些指标和什么有关系,受什么的影响?
从测得的指标结果来看,ΔC00 chroma.corr 的指标差异较小,
而ΔC00 chroma.corr、 ΔE00、Mean camera chroma差异比较大,这是为什么呢?
首先要搞清楚如上指标的含义及计算方式,如下是从从imatest官网总结的关于色差指标的含义及计算公式:
CIE2000 | 3种色差计算标准,后两种标准(CIE1994、CIE2000)计算更准确,反映了人眼对高饱和度,颜色变化的敏感性降低。因此它们通常测的值较低 |
Mean Camera chroma | 1. 表示24个色块的平均饱和度值; 2. 单个色块 i 的饱和度就是它到原点的距离: 3. 平均饱和度计算公式是相机颜色的平均饱和度除以理想色块颜色的平均饱和度,用百分数表示,i_meas 表示色块 i 测量值,i_ideal表示理想值; |
ΔC00 chroma.corr | 1. 颜色误差,即各个色块的测量值与理想值之间的距离; 2. mean是所有24个色块颜色偏差值的均值,max是24个色块颜色偏差值中的最大值; 3. 计算时,忽略亮度 L*, 4. 计算时,校正平均饱和度, 是通过将 a*、b* 和 C* 乘以 100%/(平均饱和度)来完成的。校正后的值(用 i_corr 表示)将替换为 ΔC 计算中的测量值。 注:这是一个非标准的测量,它已被淡化,将来可能会被删除; |
ΔC00 uncorr | 1. 颜色误差,即各个色块的测量值与理想值之间的距离; 2. mean是所有24个色块颜色偏差值的均值,max是24个色块颜色偏差值中的最大值; 3. 计算时,忽略亮度 L*,不校正平均饱和度; 注:这是标准的ΔCxx测量值; |
ΔE00 | 1. 颜色误差,即各个色块的测量值与理想值之间的距离; 2. mean是所有24个色块颜色偏差值的均值,max是24个色块颜色偏差值中的最大值; 3. 包含亮度的计算,未校正饱和度; |
注意:如上ΔC,ΔE 的计算公式是基于CIE1976的标准,CIE1994和CIE2000的计算公式是不同的,但有些复杂,
可以基于CIE1976的公式来理解关于色差的计算,具体可以看imatest官网中的描述:
https://www.imatest.com/docs/colortone_ref/#colorerr
接着再来看问题,
ΔC00 chroma.corr 的指标值差异很小,是因为它的计算是忽略了亮度,及校正了平均饱和度, 这种归一化消除了饱和度提升的影响,从而降低了平均颜色误差 ;
ΔC00 chroma.uncorr 差异较大是因为未校正饱和度;
ΔE00 差异较大是因为未校正饱和度,且计算包含了亮度;
Mean camera chroma 差异比较大,是因为色块的测量值与理想值的偏差太大,也就是ΔC00 chroma.uncorr 差异较大,实际也是和亮度相关的。
那是什么导致的两个灯箱,拍摄出的色卡亮度存在差异呢?
实际观察灯箱发现,两个灯箱的补光方式其实不一致,标准荧光灯箱光管是安装在灯箱顶上,光线是带角度的斜射到色卡上,
而且下半部分距离光源越远,光照相较上半部分就越弱,所以色卡上下表面的光照强度是不均匀的,且反射进摄像头的光线也偏少,所以拍摄出的图片也偏暗。
而LED灯箱的光源则是左右两边斜45°角直接照射到色卡上,且上下左右是全覆盖的,色卡表面的亮度均匀性更好,亮度也更高。
所以导致差异的原因,就是两个灯箱的补光方式不同所造成的。当然也有LED灯和荧光灯光源不同,其显色指数不同,导致的颜色偏差。
之前很多时候和客户解释,就说两个灯箱不一样,环境不一样,光照条件不一样,所以测出来的指标就不一样,
怎么解决呢?也没办法,要远程基于客户的环境重新去调试。这其实是不合理的,有点糊弄客户,也糊弄自己。
2)客户那边测不过的话,可以有哪些应对措施呢?
首先还是要先确认环境,用的什么类型的光源、补光位置在哪里、色卡的位置是怎么摆放的、摄像头的位置是怎么摆放的,
如果和我上述例子类似是补光位置的差异,那就给客户解释清楚是什么原因,要怎么去调整,可以把图卡忘上移动一下看看,
类似的也有遇到用OECF-20的图卡,测试灰阶,由于图卡两边的照度差异200lux左右,结果就是测不过,亮度调整成一致后,就可以测过了。
如果是所使用的光源不一样,光源的显色指数差异太大,那就没啥办法了,要基于该光源重新调测一下。
3)调试过程中要怎么尽可能的去规避,由于环境差异导致的指标不过问题。
首先调测过程中,要严格去按测试标准去设定色温,照度,保证调测环境的色温一致,照度一致,所拍图卡的亮度均匀。
关于如何正确测量场景的照度和色温,可以看这篇:如何测量场景的照度和色温?
其次要了解所用到的光源环境,具体是什么类型光源,色温多少,显色指数是多少,光谱分布是怎样的。
关于如何区分不同种类的光源,可以看这篇:如何区分不同类型的光源
接着调试过程中,调测出的参数,不要把指标卡在临界值,比如色彩的饱和度指标要求是110-130,
最好是可以调到120,可以让参数的适应性更好一点。