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

2023-09-09 21:35:07

前言:

大家好,今天我们继续来讲解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

最后:

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

更多推荐

求生之路2服务器搭建插件安装及详细的游戏参数配置教程windows

求生之路2服务器搭建插件安装及详细的游戏参数配置教程windows大家好我是艾西,最近研究了下l4d2(求生之路2)这款游戏的搭建以及架设过程。今天就给喜欢l4d2这款游戏的小伙伴们分享下怎么搭建架设一个自己的服务器。毕竟自己当服主是热爱游戏每一个人的梦想,在自己的服务器里为所欲为在游戏里成就自己。(注:因PT原因本文

RocketMQ消息的分类

一、普通消息1消息发送分类Producer对于消息的发送方式也有多种选择,不同的方式会产生不同的系统效果。同步发送消息同步发送消息是指,Producer发出⼀条消息后,会在收到MQ返回的ACK之后才发下⼀条消息。该方式的消息可靠性最高,但消息发送效率太低。异步发送消息异步发送消息是指,Producer发出消息后无需等待

【Jetpack】Navigation 导航组件 ④ ( Fragment 跳转中使用 safe args 安全传递参数 )

文章目录一、页面跳转间的传统的数据传递方式1、传统的数据传递方式-Bundle传递数据1、Navigation组件中的Bundle数据传递2、传统数据传递实现步骤3、FragmentA完整代码示例4、FragmentB完整代码示例5、执行结果2、使用Bundle传递数据安全性差二、页面跳转间的传统的数据传递方式1、导入

C++--哈希表的实现及unorder_set和unorder_map的封装

1.什么是哈希表哈希表是一种数据结构,用来存放数据的,哈希表存放的数据是无序的,可以实现增删查,当时不能修改数据。可以不经过任何比较,一次直接从表中得到要搜索的元素。如果构造一种存储结构,通过某种函数(hashFunc)使元素的存储位置与它的关键码之间能够建立一一映射的关系,那么在查找时通过该函数可以很快找到该元素。该

知乎万赞的:网络安全系统自学就业路线,建议收藏!

为什么说网络安全是新风口?近几年,随着移动互联网、大数据、云计算、人工智能等新一代信息技术的快速发展,围绕网络和数据的服务与应用呈现爆发式增长,丰富的应用场景下暴露出越来越多的网络安全风险和问题。但是,我国网络安全整体投入不高。网络安全建设方面,国内网络安全投入占信息化的投入比例大概不到百分之3%,而欧美等发达国家均在

Python 超高频常见字符操作【建议收藏】

文章目录前言1.字符串截取2.字符串拼接3.字符串搜索4.字符串格式化5.字符串替换6.字符串去除空格7.字符串截取8.字符串反转总结前言为了巩固所学的知识,作者尝试着开始发布一些学习笔记类的博客,方便日后回顾。当然,如果能帮到一些萌新进行新技术的学习那也是极好的。作者菜菜一枚,文章中如果有记录错误,欢迎读者朋友们批评

A Survey of Hallucination in “Large” Foundation Models

本文是LLM系列文章,针对《ASurveyofHallucinationin“Large”FoundationModels》的翻译。大型基础模型幻觉现象综述摘要1引言2大语言模型中的幻觉3大图像模型中的幻觉4大视频模型中的幻觉5大音频模型中的幻觉6幻觉不总是有害的:不同的视角7结论和未来方向7.1幻觉的自动评估7.2利

解密堆排序与TopK问题

📙作者简介:清水加冰,目前大二在读,正在学习C/C++、Python、操作系统、数据库等。📘相关专栏:C语言初阶、C语言进阶、C语言刷题训练营、数据结构刷题训练营、有感兴趣的可以看一看。欢迎点赞👍收藏⭐留言📝如有错误还望各路大佬指正!✨每一次努力都是一种收获,每一次坚持都是一种成长✨目录前言1.堆排序1.1时间

Chrome扩展开发实战:网页图片抓取,打造专属自己的效率插件

🏆作者简介,黑夜开发者,CSDN领军人物,全栈领域优质创作者✌,CSDN博客专家,阿里云社区专家博主,2023年6月csdn上海赛道top4。🏆数年电商行业从业经验,历任核心研发工程师,项目技术负责人。🏆本文已收录于专栏:100个JavaScript的小应用。🎉欢迎👍点赞✍评论⭐收藏文章目录🚀一、背景🚀二

【C++多线程】Lambda表达式

定义Lambda表达式可以说是c++11引用的最重要的特性之一,虽然跟多线程关系不大,但是它在多线程的场景下使用很频繁,所以在多线程这个主题下介绍它更合适。Lambda来源于函数式编程的概念,也是现代编程语言的一个特点。C++11这次终于把Lambda加进来了,令人非常兴奋,因为Lambda表达式能够大大简化代码复杂度

《DevOps实践指南》- 读书笔记(七)

DevOps实践指南Part5第三步:持续学习与实验的技术实践19.将学习融入日常工作19.1建立公正和学习的文化19.2举行不指责的事后分析会议19.3尽可能广泛地公开事后分析会议结果19.4降低事故容忍度,寻找更弱的故障信号19.5重新定义失败,鼓励评估风险19.6在生产环境注入故障来恢复和学习19.7创建故障演练

热文推荐