关于海思HI3518+OV9712 ISP图像调试 - 夜视效果、曝光、图像稳定响应效果

夜视效果调试

调试需求:

因产品使用的补光灯是白色LED灯,设计需求是在黑夜里还能看到彩色的画面,实际情况该方案实现画面不是很理想,灯光不够亮,图像噪点大,因不能修改硬件的情况下只能尽量优化图像。

 

hiISP_AE_ATTR_EX_S参数说明:

 

enAEMode 自动曝光的优先模式,如帧率优先,噪声优先。

 

u8ExpCompensation 自动曝光调整时对曝光补偿量。

值越大,则自动曝光的目标亮度值越大,图像越亮

 

u32GainThreshold 自动降帧时的系统增益门限值。

取值范围:[0x400, 0xFFFFFFFF]

自动降帧时增益门限值u32GainThreshold 表示在LowNoise模式下,当增益达到所设置的门限值时,系统将自动进入LowNoise模式

 

因我们使用白色LED补光,所以在光线不足的环境下容易出现噪点过大问题,以下参数能调整在夜晚环境下,镜头达到优化噪点和曝光;

 

ISP_AE_ATTR_EX_S aeAttrEx;

aeAttrEx.enAEMode = AE_MODE_LOW_NOISE; 降噪模式,光线不足时降低帧率保证图像质量

aeAttrEx.u8ExpCompensation = 64;//自动曝光调整时对曝光补偿量,因为机器使用的是白色led灯,所以这边需要设置为64,如果设置太大会曝光。

aeAttrEx.u32GainThreshold = 45000;  这里还是设置为默认好点,越小越清晰,但是前提是以降帧换取效果,画面卡!

这里的话最小值为4096,该值下画面最清晰也就最卡顿,如果设置65536的话图像会比较差,但是流畅度也最好;

 

图像稳定响应效果调试

调试需求:

因产品需求,在机器启动镜头时,sensor需要在第一时间出图像,并且图像必须稳定清晰。

 

hiISP_AE_ATTR_EX_S参数说明:

u8ExpStep  自动曝光调整时的初始步长。

 

s16ExpTolerance  自动曝光调整时对曝光量的容忍偏差。

取值范围:[0x0, 0xFFFF]

 

aeAttrEx.u8ExpStep = 255; //曝光调整步长,设置过小会使得曝光缓慢,图像从暗到亮变化时间长

 

aeAttrEx.s16ExpTolerance = 50;//自动曝光调整时对曝光量的容忍偏差

值越大则对外界环境亮度变化的敏感度越小。

 

注意:u8ExpStep是“自动曝光调整时的初始步长”,意思就是对光度自动调整图像亮度的时间长短,如果设置小的话,响应时间就长,如果设置大的话,响应时间就短;这里如果需要开始启动镜头时图像稳定响应时间短的话就需要设置大点,但是这里有个缺点,就是当光线不稳定时(测试效果:画面中存在一小部分灯源,但光线不稳定),这时画面会不断的一暗一亮的闪烁。

 

  经过我们测试,我是这样处理的:启动机器时,将u8ExpStep =255s16ExpTolerance =50,这是因为图像出现的快一点,如果设置小的话,图像会从暗到亮大概需要5秒左右(这里看个人需求)。当机器执行到5秒左右,我们再将值设为u8ExpStep =16s16ExpTolerance =10u8ExpStep设为16是因为防止光源变化会引起图像快速效应(前面说的一闪一闪)。s16ExpTolerance设置为10是为白天曝光这一功能设置的,可以让光源变化是ISP更加敏感的响应。

 

曝光调试-宽动态

调试需求:

3518的通病,摄像机正对“人面”(人面靠近IPC)和“环境背光”(IPC正对室外阳光充足环境)导致IPC对“人面”一片黑或者对“背光环境”曝光。

 

 

对于抗闪频率属性(AntiFlicker)和自动曝光属性(SetAEAttr)参数设置:

当抗闪烁非使能时,阳光下是可以看得清画面的,但与自动曝光时间设置有直接关系,当最小曝光时间增大时,画面明显曝光了。

 

ISP_INNER_STATE_INFO_S参数说明:

u8AveLum  图像平均亮度。 取值范围:[0x0,0xFF]

 

hiISP_AE_ATTR_EX_S参数说明:

u32ExpTimeMin  自动曝光的最小曝光时间。

取值范围:[0x2, 0xFFFF] ,具体范围与sensor相关。

自动曝光的最大最小时间及增益

可根据不同的场景对曝光时间及增益进行限定,如有高速运动物体场景可限定最

大曝光时间值为较小值,这样可减轻运动物体拖影现象。最小数字增益值的设定

目前暂不支持。

 

关于摄像机正对“人面”(人面靠近IPC)和“环境背光”(IPC正对室外阳光充足环境)导致IPC对“人面”一片黑或者对“背光环境”曝光问题。

AE自动曝光的最小曝光时间的增减对上述现象有直接影响,u16ExpTimeMin小了,背光环境清晰,当时人面一片黑,u16ExpTimeMin大了,人面清晰,环境曝光了;

这里我们采用关闭抗闪烁功能、自动宽动态、阶梯性设置曝光时间值方法解决该问题。

 

关于宽动态 AE曝光研究,可以通过对函数HI_MPI_ISP_QueryInnerStateInfo读取ISP_INNER_STATE_INFO_S结构体参数:

背光和曝光亮度改变影响参数主要有三个:

u8AveLum  图像平均亮度,  取值范围:[0x0,0xFF]

u32Exposure  Sensor 曝光量,取值范围[0x0,0xFFFFFFFF]

u32ExposureTime  Sensor 曝光时间,取值范围[0x0,0xFFFFFFFF]

 

背光亮度越高 u8AveLumu32ExposureTime  值越大,背光亮度越亮

当人面基本覆盖镜头时,图像光线马上变暗,u8AveLum也随之变小,这时需要升高u16ExpTimeMin值到50009000左右(根据暗度效果);

正常情况下,u8AveLum值为4556;当u8AveLum小于45时,镜头明显是黑暗的(人面或者局部无光线背影),越暗值越小,当值接近一两百时,背景明显是曝光的,我们的解决方法是阶梯式调整u16ExpTimeMin的值;

 

因为IPS刚刚开始时sensor不稳定导致图像光度不断变化,这时候不需要设置曝光值。

根据我们这边的实际情况,在光线足够暗时,u8AveLum是低于20的,所以我们划分了五个区限:

u8AveLum >= 20

u8AveLum >= 15  && u8AveLum < 20

u8AveLum >= 10  && u8AveLum < 15

u8AveLum >= 5  && u8AveLum < 10

u8AveLum >= 0  && u8AveLum < 5

 

对于设置u32ExpTimeMin值为:

u32ExpTimeMin = 2;

u32ExpTimeMin = 4000;

u32ExpTimeMin = 5000;

u32ExpTimeMin = 7000;

u32ExpTimeMin = 9000;

 

u8AveLum值越大(曝光时大于200),u32ExpTimeMin需要设置的值要越小(等于2),如果u8AveLum值接近0时,说明画面局部光线突然变暗(人面靠近),这是需要设置曝光值u32ExpTimeMin越大。

 

优化室外环境下(阳光下),环境曝光及人面看不清,优化宽动态曝光效果,效果为:当镜头对着环境时,显示对焦环境色彩(不曝光),当镜头对着人面时,对焦人面使清晰看清人面但后面环境为曝光效果,当人面移开后,镜头重新对焦环境色彩(不曝光)。

你可能感兴趣的:(海思IPC)