ISP Pipeline lens shading

关于lens shading,我主要阐述lens shading产生的原因和shading 校正的简单模型,然后通过一个例子说明lens shading调试的注意点。

导致shading的几种原因

  • 机械安装:luma shading
  • Optical vignetting
    • lens shading
      lens 的各位置和中心的透射率不同 : luma shading
      lens 对不同光谱的shift不同 : color shading
    • IR filter
      lens 对不同光谱的shift不同 : color shading

shading correction的简单模型

在这里插入图片描述

由上图模型我们可得出lens shading 校准的公式:

gain_r1 = r1/R.* gain_radial

在chromarix 6调试中关于lens shading的校正是将其分为了17*13个区域分别进行对其校正。

初始调试

调试步骤如下:
lens shading模块也分两部分调试,分别调试normal和lowlight模式,操作具体见下图:
在这里插入图片描述

调试normal和lowlight模式的区别点在于Original Rolloff Curve的correction peroentage不一样,lowlight模式可将其设置为 75-90 之间合适,具体根据在暗光下边角noise多少决定,边角noise多的话,将其值设置的小一点。
在这里插入图片描述

example

当我们通过chromatix 6 校准出来后,代码如下所示:

/* Normal Light Rolloff */
   {
   ...
      /* TL84 Mesh Lens Rolloff */
      {
         221,
         /* R Gain */
         {
            3.756667f, 3.116342f, 2.659184f, 2.278639f, 2.008617f, 1.834949f, 1.750552f, 1.710917f, 1.721964f, 1.768556f, 1.864053f, 2.056765f, 2.314978f, 2.640778f, 3.104619f, 3.874564f, 4.954355f,
            ...
            6.335568f, 4.861440f, 3.734324f, 3.146051f, 2.859177f, 2.677176f, 2.564032f, 2.504067f, 2.497407f, 2.571602f, 2.680209f, 2.874211f, 3.141923f, 3.715159f, 4.426412f, 5.998119f, 7.900000f
         },
         /* GR Gain */
         {
            4.036563f, 3.426927f, 2.970608f, 2.571337f, 2.298463f, 2.146189f, 2.089377f, 2.064823f, 2.074510f, 2.094299f, 2.149194f, 2.319372f, 2.565494f, 2.886045f, 3.304882f, 3.997691f, 5.021236f,
            ...
            6.330090f, 5.035350f, 4.082458f, 3.630568f, 3.448388f, 3.335342f, 3.262710f, 3.224228f, 3.208900f, 3.255792f, 3.310359f, 3.416923f, 3.565569f, 3.992912f, 4.529787f, 5.950653f, 7.900000f
         },
         /* GB Gain */
         {
            4.285253f, 3.592642f, 3.062334f, 2.594782f, 2.265121f, 2.068959f, 1.975240f, 1.937340f, 1.948095f, 1.981425f, 2.069221f, 2.275585f, 2.581674f, 2.965362f, 3.450387f, 4.201347f, 5.290575f,
            ...
            6.358387f, 5.027366f, 4.001096f, 3.487785f, 3.238488f, 3.075759f, 2.961054f, 2.906108f, 2.894716f, 2.957007f, 3.047212f, 3.207128f, 3.406208f, 3.901353f, 4.486479f, 5.954483f, 7.900000f
         },
         /* B Gain */
         {
            2.589502f, 2.239432f, 1.982628f, 1.752804f, 1.591065f, 1.488403f, 1.445405f, 1.421534f, 1.431833f, 1.459512f, 1.507310f, 1.623027f, 1.768504f, 1.948858f, 2.198691f, 2.591533f, 3.140781f,
            ...
            3.901130f, 3.117857f, 2.507937f, 2.198531f, 2.052765f, 1.965928f, 1.909450f, 1.881775f, 1.870585f, 1.907899f, 1.957952f, 2.048897f, 2.168262f, 2.455119f, 2.780590f, 3.586250f, 5.249066f
         }
      },
      ...

上述代码编译后烧入设备后,发现校准后的效果不理想,见下图:
在这里插入图片描述

相应的报错日志:

    E/mm-camera: <ISP ><ERROR> 378: tintless40_algo_process_be: failed: update_func rc -4
    E/mm-camera: <ISP ><ERROR> 851: tintless40_algo_execute: failed: tintless40_trigger_algo
    E/mm-camera: <ISP ><ERROR> 98: isp_algo_execute_internal_algo: failed to run algo tintless
    E/mm-camera: <ISP ><ERROR> 710: isp_parser_thread_func: failed: isp_parser_process

从上面参数我们可以看到对应的R, GR, GB, B在边角的gain在(5, 8)之间超过了正常范围,正常范围在(1, 5)之间,所以需要进行调试,现给出以上两种思路:
1、软件调试,软件可以将边角的gain通过算法进行降低,但这样带来的后果是四个边角的亮度变暗,导致效果较差,但调试时间较短;

2、手动修改异常值:可以将对应的值按比例进行缩小即可,比如:我将最左下角的的B GAIN值除了1.5,那对应左下角的R, GR, GB也需要缩小1.5倍才可以,因为如果不按照这样修改,可能会带来边角会出现色彩异常的问题。

校准后的效果图:
在这里插入图片描述

LSC 常用算法的矫正公式

output = (input - 1) * ratio + 1
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值