
在研读以下两篇论文的时候:
在《一种用于随机值脉冲噪声的检测统计量》论文中推导ROLD的统计量的时候,对对数的一些理解结合之前的软光敏算法逻辑,想到了一中新的思路实现软光敏算法。
由以上QE曲线可知,sensor在红外光谱的环境下,三个通道的响应比较趋近,响应基本一致。假设我们能够从ISP端获取raw域的分块统计信息,结合对数函数性质,我们可以构建一种新的软光敏主要实现思路:
- 假设可以获取M*N个分块的raw域统计信息,每一块中分别有R、G、B三个通道的total值;
- 根据y_low\y_high两个阈值参数,剔除掉高亮过饱和的块和过暗噪声比较大的块,得到有效的块数量cnt_valid;
- 在符合亮度条件的块中,计算log2(R/G),log2(B/G)的比值;
- 由于纯红外模式下,其对数计算值大体在0附近浮动,但不完全等于0.
- 计算log2RG = abs(log2R/G))-offset_rg,log2BG = abs(log2B/G))-offset_bg.offset_rg,offset_bg可以通过在纯红外环境下标定得到。一般offset_bg = 0.11,offset_rg = 0.21。通过此计算之后,log2RG,log2BG基本趋近于0,而在可见光下其数值比较大,大概相差10倍左右;对数函数可以放大0-1之间比值的差异,方便后续的逻辑操作;
- 设定某一阈值th,统计第五步中大于阈值th的块数量cnt.
- 计算cnt/cnt_valid的比值。当其比值大于一定阈值cnt_th时,即在当前环境中存在了相对较多的可见光,再结合自动曝光的AE参数联合判断是否需要切换IRCUT。
为了使得算法更加鲁棒,还需要更多的诸如亮度稳定判断逻辑等逻辑操作。
实际数据初步验证:
纯红外场景下的log2RG ,log2BG数据:
红外光下log2RG
红外光下log2BG
可见光场景下的log2RG ,log2BG数据:
可见光场景下的log2RG
可见光场景下的log2BG
由以上图可知,可见光下每一块的数值时纯红外下的数倍。数值之间的差距比较明显,不存在重叠的区域,可以非常方便的区分纯红外场景和可见光场景。