AE(2)_tuning时AE的一些策略

news2024/11/19 23:14:58

1、设置帧率:

修改帧率可以通过修改V_Blank 或者frame length。配置在寄存器中生效。

一帧图像的曝光时间 = 帧长 * 一行时间。提高帧长,1帧图像的曝光时间就变大了,单位时间内可曝光的帧数就少了,也就是帧率就下降了。这就是项目中常用的通过降帧,来提高 低照度下相机的性能。

2、避免flicker:

我们生活常用的是交流电,50Hz,电压220V。其变化规律如图所示,这种频率的能量变化反应在发光源上称为flicker(闪烁),采购灯具的时候”抗频闪“ 说的就是肉眼观察不到flicker。

而对于能量来说,并没有正负之分,因此灯泡发光的能量周期是1/100s,即10ms。

一般 CMOS Sensor 相机会采用 Rolling shutter 方式,通过 Sensor逐行曝光的方式实现。在曝光开始的时候,Sensor 逐行扫描逐行进行曝光,直至所有像素点都被曝光。同一行上的每个pixel的曝光开始点和曝光的时间都是一模一样的,所以同一行的所有点所接受到的能量是一样的,而在不同行之间虽然曝光时间都是一样的,但是曝光的开始点是不同的,所以不同行之间所接受到的能量是不一定相同的 。

以OV2740为例,有一个reset信号负责一行像素清零,一个read信号负责读取一行像素数据,reset信号在前,read信号在后,reset信号和read信号之间的行数对应的时间即为曝光时间

CMOS Sensor

修改帧率,使sensor 的每帧间隔时间和光源周期呈整倍数关系时,50Hz的光源对应帧率为25帧,每帧间隔时间为40ms。则每一帧sensor的每一行接收的能量都是相同的,相邻帧之间没有能量差。

(1)当每行的曝光时间不等于n*10ms时,每行的能量不同,相邻行有明暗条纹,但是位置固定,不会有滚动现象。

(2)当每行的曝光时间=n*10ms时,每行能量相同,不会产生明暗条纹(banding)。--------理想状况

避免flicker计算原理为:

50HZ交流电能量周期:T = 1/(50*2)=0.01s=10ms

sensor曝光时间 = exp_line or expo_time= 10,000us * n.

(sensor 的曝光时间通过ISP设定可以自动调节,所以当灯光很亮的时候,sensor曝光时间很短,还是会产生明暗条纹)

4、避免拖影:

拖影一般是由于曝光时间长导致的,要避免拖影,需要提高帧率。

第一是使用固定帧率,消费级的UVC和车载 很多固定在25帧。

第二是提高出现拖影环境时产品的帧率,虽然之前使人眼感知不到画质卡顿的最小帧率在15帧,但现在手机端多数最小帧率已设为20帧,高端的手机设置在30帧。会牺牲一些亮度,但在拍摄摇晃的人时,人脸变形程度有很大改善。

第三是denoise 时,增加静态的NR去噪强度,减小3DNR 的强度。

5、曝光表设置:

曝光表需要设置三部分数值:gain、exposure time(line) (有的时候填写帧率)、拐点优先级。

当最小的曝光增益为1x=1024时,有时候会出现异常噪声,建议min gain=1044。

当table的拐点设置的较多时,前几个拐点设 曝光优先,最后一行设gain 优先。如果和对比机对比效果时,同个稍暗环境,清晰度差异大,可以查看两者此时的帧率和增益,可能两者的曝光优先方式不一致。需要调整。(这一点在最开始设置曝光表的时候,需要猜测对比机的增益和帧率拐点设置,以更好靠近对比机的帧率和清晰度效果,方法是改变环境用对比机拍摄不同ISO等级的图片,再查看对应的帧率。)

在PQ工具里填写好 exposure table的参数,生成的头文件会更新AE更新时索引的曝光表,也包含三部分:gain、shutter、exposure index。(这三部分在打印AE log时可以在log 中查到)

6、亮度变化明显时,收敛过程存在闪烁:

当环境亮度变化剧烈(开关1/2灯),曝光调节过程中低概率出现闪烁,但是不影响曝光的收敛,相对于其他 sensor,即最终曝光收敛的亮度以及速度没有明显区别,其他 sensor 不存在闪烁。

ISP 统计的图像亮度、设置给 ov2710 的曝光时间、曝光增益信息打印出来,仔细分析数据会发现闪烁基本出现在曝光时间与曝光增益的变化趋势不一样的时候,即 Fn+1 相对于 Fn 来说,曝光时间变大,但是曝光增益变小。

可以单独变化曝光时间或是曝光增益,确认 sensor 在第 N 帧刷新曝光时间寄存器,在 N+2 帧生效,Sensor 在第 N 帧刷新曝光增益寄存器,在 N+1 帧生效。

ae设置的曝光时间与曝光增益会根据生效时间的定义来间隔设置曝光时间与增益,从而保证曝光增益与曝光时间在同一帧生效;

---------------有时候需要check sensor的线性度,但成熟的大厂sensor一般不会出现问题--------------

1、如果是闪烁幅度大(震荡):和trigger 相关。这部分和算法相关。

2、AE敏感容易收敛:和stable 相关,两帧之间的差异超过阈值则重新触发收敛。stable out.

3、同一环境,两次收敛最终画面亮度不一致。和以上trigger、stable 相关,稳定范围大则拉大了同一个target目标的AE lux 范围。两次收敛的结果,如果一个较高,一个较低,就会出现不一致。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1221507.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

全局异常拦截和Spring Security认证异常的拦截的顺序

📑前言 本文主要全局异常拦截和Spring Security认证异常的顺序,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是青衿🥇 ☁️博客首页:CSDN主页放风讲故事 🌄每日…

个人微信机器人接口

请求URL: http://域名地址/modifyGroupName 请求方式: POST 请求头Headers: Content-Type:application/jsonAuthorization:login接口返回 参数: 参数名必选类型说明wId是String登录实例标识chatRoom…

探索计算机视觉技术的应用前景

计算机视觉技术是人工智能领域中一项至关重要的技术,它通过模拟人类视觉系统的工作原理,使计算机能够以一种类似于人类的方式理解和解释图像和视频。这项技术不仅在学术界受到了广泛关注,而且在商业领域也得到了广泛应用。 计算机视觉技术的应…

【C++】入门二

下面我们说一下缺省参数,那么什么是缺省参数呢?就是说在定义或者声明函数时给形参赋予一个确定的值(也叫缺省值),那么当我们调用这个函数的时候,就可以不传值也可以传值,传值的话缺省值就没作用…

企业月结快递管理教程

什么是月结快递?员工可能不清楚,但是企业行政人员应该很熟悉。各大快递公司为了留住商企这些大客户,推出了月结协议寄件,企业可以和快递公司签订月结协议,员工寄件不需要当场结算快递费,而是将快递费挂在企…

Qt HTTP 摘要认证(海康球机摄像机ISAPI开发)

接到一个需求是开发下海康的球机,控制云台,给到我的是一个开发手册,当然了是海康的私有协议 ISAPI开发手册https://download.csdn.net/download/qq_37059136/88547425关于开发这块读文档就可以理解了,海康使用的是摘要认证,当然了海康已经给出使用范例 通过libcurl就可以直接连…

Python学习笔记--自定义元类

四、自定义元类 到现在,我们已经知道元类是什么鬼东西了。 那么,从始至终我们还不知道元类到底有啥用。 只是了解了一下元类。 在了解它有啥用的时候,我们先来了解下怎么自定义元类。 因为只有了解了怎么自定义才能更好的理解它的作用。…

es使用客户端,“grunt” 不是内部或外部命令,多种解决方法

”grunt“不是内部或外部命令,也不是可运行的程序 或批处理文件。 4、问题排查 查看node的安装根目录 npm root -g 在运行grunt -version还是不行 网上找了很多,给出正确解决方案的没几个,所以自己摸索,最后确定了加环境变量的解…

python使用selenium webDriver时 报错

可能原因和解决: 1. python 解释器 ----> 设置 2. 浏览器版本 与 浏览器驱动版本不一致 ----> 安装同一版本的 (下载chromedriver | 谷歌驱动更高版本的测试版) 参考:Python使用Selenium WebDriver的入门介绍及安装教程-CSDN博客 Selenium安…

刷题学习记录(攻防世界)

wife_wife 一拿到题目就提示这题不用爆破 进入环境得到的是一个登录框 随便试了一下登录账户密码会提示错误,那就去注册账户,注册的账户还有注册管理员的选项 先注册普通用户234,注册好后登录 这样就得到flag,但是提交是错误的&a…

Linux设置禁止SSH空密码登录

为什么要禁止SSH空密码登陆? 禁止SSH空密码登录的原因是出于安全考虑。如果允许使用空密码进行SSH登录,那么任何人都可以通过尝试使用空密码来尝试登录到系统,从而获取系统的访问权限,这显然是非常不安全的。 此外,使…

FullCalendar日历插件说明文档

一般标准配置 属性描述默认值header设置日历头部信息。 如果设置为false,则不显示头部信息。包括left,center,right左中右三个位置,每个位置都可以对应以下不同的配置: title: 显示当前月份/周/日信息 prev: 用于切换到上一月/周…

蓝桥杯 map

map 代码示例 #include<iostream> #include<map> using namespace std; int main(){//创建并初始化mapmap<int,string> myMap{{1,"Apple"},{2,"Banana"},{3,"Orange"}} ;//插入元素myMap.insert(make_pair(4,"Grapes&qu…

Simulink 自动代码生成电机控制:模型预测控制(MPC)模块使用总结(2)

目录 设置预测范围对系统的影响 设置输入输出约束对系统的影响 设置权重对系统的影响 调整Close-Loop Performance 和State Estimation效果 检查MPC设计是否合理 总结 设置预测范围对系统的影响 预测范围越小&#xff0c;响应越快&#xff0c;预测性能越差&#xff0c;系统稳…

Javascript if 语句使用详解

Javascript if 语句使用详解 目录 Javascript if 语句使用详解 一、if语句 二、if……else语句 三、if……else if语句 if语句是使用最为普遍的条件选择语句&#xff0c;每一种编程语言的if语句都差不多。if语句类型共有3种&#xff1a; &#xff08;1&#xff09;if语句&…

黔院长 | 何为风邪?

中医上所说的风&#xff0c;也称风邪&#xff0c;是指受到外界侵犯&#xff08;外邪&#xff09;而感得风寒、风热、风湿等症状&#xff0c;导致人的免疫力下降。寒、湿、燥、暑、热等都属于外邪&#xff0c;多依附于风而入侵人体&#xff0c;因此风邪更多的是指一种致病因素。…

LED裸机

关于STM32的GPIO的初始化&#xff1a; 初始化&#xff1a; 时钟&#xff1b;输出/输入功能、上拉、速度等等&#xff1b;设置复用功能等等 回顾GPIO和IO&#xff1a; GPIO&#xff1a; 通用IO口。嵌入式系统中常常有数量众多&#xff0c;但是结构却比较简单的外部设备/电路&a…

Python系列:如何提高python程序代码的健壮性

前言 在编程的时候,我们难免会遇到一些不可靠的情况,比如网络请求失败,数据库连接超时等等。这些不确定性会让我们的程序容易出现各种错误和异常。那么如何来增加程序的容错性和健壮性呢? 可能大多数人会想到使用try except来进行异常捕捉进行失败重试(Retry)。虽然try-esc…

lvgl 画好一个圆弧arc 要了解的相关知识

目录 一、概述 1. css盒子模型示意图2. 圆弧的理解对象3. lvgl 版本 二、功能细节 1. 圆弧的角度 1.1 圆弧的0度在哪里&#xff1f;1.2 设置圆弧角度的1.3 设置圆弧的背景角度 2. 圆弧的半径3. 圆弧的圆角 3.1 设置圆弧的圆角 效果如下&#xff1a; 4. 圆弧的宽度 4.1圆弧主体…

基于SSM的宠物医院管理系统

基于SSM的宠物医院管理系统的设计与实现~ 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringMyBatisSpringMVC工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 主页 后台 摘要 随着人们对宠物健康关注的增加&#xff0c;宠物医疗服务的需求也…