• rv1126之isp黑电平(BLC)校准!


    前言:

    大家好,今天我们继续来讲解isp第二期内容,这期内容主要分三个部分:

    • 1、tunning的工作流程

    • 2、利用RKISP2.x_Tuner来创建tunning工程,并连接上rv1126开发板进行抓图

    • 3、BLC(黑电平校准)的原理和校准方法以及实战

    那对于RKISP2.x_Tuner的工具使用,这个在第一期的内容里面有详细的介绍,当时也给大家大概的介绍了一些isp专用术语;随着内容的深入,这些专业俗语会慢慢详细讲解,并实战演示!

    希望这个专题的内容,对大家学习isp内容有帮助!

    一、tunning工作流程:

    在我们进行对图像质量校准的时候,我们肯定是需要大体知道一个工作流程,只有知道了工作流程,我们才知道干什么。

    这里以rv1126平台为例,实际的tunning工作流程如下:

    16ee004bd22608c486653977e488d4e5.png
    • BLC:黑电平校正

    • LSC:镜头阴影校正

    • CCM:色彩校正矩阵

    • AWB:自动白平衡校正

    • GIC:绿通道平衡校正

    • Bayer NR:Raw域降噪

    • YNR:Y通道降噪

    • MFNR:多帧降噪

    • FEC:鱼眼校正

    今天会专门来介绍黑电平校准!

    在第一步新建工程完成后,工具将会在工程路径下生成一份XML文件,该文件记录ISP开放的所有可调参数,无论是后续的标定流程中输出的标定参数,还是调试流程中用户调试的结果,都将记录在XML文件中,最后用户应将该文件替换固件或设备中相应位置的XML即可,这个是在rk平台上是这种参数保存方式,其它soc平台就可能不太一样:

    64a99f3e0af8cf146bfe919f70eaa2b1.png

    拍摄Raw图是为了进行基础模块的标定,同时也可以采集效果异常的场景,在仿真器中排查问题(这个暂时没讲解,如果要用到再来弄)。基础模块标定需要按照一定流程来进行,如下图:

    b7c10db5979088784caab91e478d0b09.png

    由于某些模块的标定会依赖前级模块的标定结果,所以用户应按照流程顺序完成标定工作。在完成某一模块标定计算后,应确认参数是否正确,以免错误的结果影响到后级模块。

    二、利用RKISP2.x_Tuner来创建tunning工程,并连接上rv1126开发板进行抓图:

    下面正式开始来创建一个tunning工程:

    d1ad1758c7354aec5721dd382f02763a.png
    创建工程

    选择当前项目或产品使用的sensor,Tuner会自动加载对应的配置(分辨率、曝光表等),同时填写镜头型号和模组型号,便于区分项目或产品名称,这里rv1126开发板上使用的sensor是格科微的sensor:gc2053,对应的datasheet如下:

    3422d30806f286a42ac38966cc707f25.png2022b3f2ca0d086083a3b4cd3886e510.png

    最终生成的工程文件如下:

    38acbf90b5e291fd5868716107f66bfe.png

    下面开始来连接rv1126开发板;上次我给大家分享了如何在rv1126开发板通过udhcpc来自动获取局域网的ip方法,这里我就不再重复写了!

    00867ae8ed89331a321e325ca650d553.png

    板子ip

    59e85cdc976446189955bba52a00f509.png

    连接开发板

    25d30353fd6922778525ee5b45cc8990.png

    点击connect to devices 和test按钮出现下面情况,说明连接开发板成功:

    5c9559ea4c20a47f3ec8203b2f269890.png4741e0d3dce53b711aa2a7e580960a6f.png

    现在这里使用vlc来查看预览画面:

    6fb30cd622d1a29c8f9a1fa9220d5484.png

    最后来使用Capture Tool抓取Raw图:

    2875ecde4ea1cca674ad15d2c4f05742.png7849f0827aaa123fbf50d773f5695106.png753a10e04f7def7478ba8a1504ab9178.png

    加载完成后工具会根据XML中的配置,初始化拍摄配置界面:

    接着开始按照下面步骤配置下面的参数,不过这里全部默认即可(根据实际情况做调整):

    • 1、选择正确的分辨率、光源和模块名,便于后续使用时区分

    • 2、配置增益、曝光时间和拍摄张数等参数

    • 3、点击Start Manual Capture按钮

    • 4、 拍摄到的raw图会在右侧的Raw Preview & Statistics界面中显示:

    864f26daae2e5a7d1f97f4e9403006c2.png

    • 5、下方显示了该raw图对应的直方图信息、最大/最小/均值亮度、全局白平衡增益等:

    b8e4e6443fbc4e5d5fa2e560dbddbd41.png

    • 6、抓拍的图片就保存在工程里面:

    8cd7f7b32ac29eb7e600cbed4911da95.png28b671c4dfc1c9cce92e35d5065f43ab.png

    三、BLC(黑电平校准):

    1、标定流程说明:

    各模块的标定工作主要可以分为三个部分:

    • 1、拍摄标定图:根据各模块的需求,用合适的曝光拍摄标定板或场景的raw图

    • 2、计算标定参数:导入raw图,计算标定参数,个别模块可以根据需要微调一些参数

    • 3、确认效果并保存参数:根据各模块的标准,判断标定参数是否正确

    2、什么是黑电平?

    看下面这幅图的介绍介绍即可:

    b6417b778f76a7113691bc460f420d97.pnga01616b0f048f21e6d537813b76e04de.png

    3、BLC标定Raw图拍摄要求:

    • 1、拍摄时遮黑镜头,确保没有任何光线进入

    • 2、拍摄需要遍历Gain=1x、2x、4x、8x、16x...Max(若驱动最大Gain支持到40x,则Max=32)

    • 3、曝光时间并不影响BLC标定,可以统一10ms

    4、BLC标定Raw图拍摄方法:

    • 1、打开RKISP Tuner Capture Tool,参考前面的方法,连接设备,光源名选择unknow(无光),模块名称选择BLC;

    2c4aaa2a1092e250349ffeaebd4d8e21.png

    • 2、将设备或模组置于无光环境下,并使用黑布、镜头盖等将镜头盖紧;

    • 3、 在Manual Exposure页面中配置Gain=1.0 ExpTime=0.010 Frame Number=1;

    b622217f13bfb3938765ae6a336946ba.png

    • 4、 点击Start Manual Capture拍摄Raw图;

    • 5、 拍摄到的raw图会显示在右侧,确认raw图基本正常后拍摄下一张;

    ccbaae366a51ca6dd38c3608deea628f.png

    • 6、 调整Gain值,Gain=2,重复步骤c、d、e,直至遍历完成(意思就是多抓几张不太同gain值得图片);

    5、开始黑电平校准:

    标定方法:

    • 1、打开Calibration Tool,点击界面左上角的Edit Options按钮,打开配置界面,输入raw图的尺寸、位宽和bayer顺序;

    4c9054fe2bb4beee1727fd5d41af92c7.png6338893ddc996b1be6c45d78ee2698c7.png

    • 2、选择BLC标签页,点击下方的Load Raw Files按钮,选择存放Raw图的文件夹,导入的Raw图会显示在右侧的列表中:

    017802e3a0b0bcbeb4f9990c37b35a7a.png

    • 3、点击Calibrate按钮,开始标定计算:

    614d8b41f564249de42d2f8daf430d0a.png

    • 最后保存参数即可,并这个xml文件放到开发板里面去看实际的现象.

    文章相关参考:Rockchip_IQ_Tools_Guide_ISP2x_CN_v1.2.1

    最后:

    最后的效果,我会在第三期内容进行展示给大家!

  • 相关阅读:
    xv6源码阅读——虚拟内存
    VMware ifconfig ip报错解决记录
    Java工具篇-Git 基于IDEA管理的本地仓库同时关联多个远程仓库
    canvas绘制渐变色三角形金字塔
    PostgreSQL 文章下架 与 热更新和填充可以提升数据库性能
    LeetCode 周赛上分之旅 #33 摩尔投票派上用场
    第二十二课,实例化(instancing)
    Google Earth Engine(GEE)——landsat 8 去云一个简单的ui.select()结果
    Linux shell printf命令小例子
    [Spring]第七篇:日志框架和测试支持
  • 原文地址:https://blog.csdn.net/Dada_ping/article/details/132784633