打开 Camera app 出图,前几帧图像偏暗、偏色该怎样去避免?

1、问题背景

使用的安卓平台,客户的应用是要尽可能快的获取到1帧图像效果正常的图片。

但当打开 camera 启动出流后,前3-5帧图像是偏暗、偏色的,如下图所示,是抓取出流的前25帧图像,

前3帧颜色是偏蓝的,前10帧亮度是从暗到亮在收敛的。此现象是正常的嘛?该如何去解决呢

2、问题分析

我们这里的应用是,打开 camera app 出图, 就是 sensor 重新上电启动的过程,退出 app 就是 sensor stream off 的过程。

ae,awb 要根据当前场景重新计算收敛,实际问题就是对 ae, awb 收敛速度的要求,计算能在几帧内收敛完成。

具体还是要去看产品的应用,一般人眼去观察的设备,对收敛速度要求不高,1s内(25fps)能收敛完成,就没太大问题,感受也不明显。

但对一些机器识别的应用,他是需要逐帧分析的,对稳定出图的速度是有要求的,如果是25fps内才能收敛完成,那对于识别的性能就要差很多了,也是不可接受的。

目前知道的解决方式有如下几种:

1)最直接的就是优化 ae、awb 的算法性能,即使场景再突变,也可以在2-3帧内就能收敛完成,而不带来任何的副作用,比如震荡,闪烁等等。

2)当固定场景下使用时(场景的照度固定、色温固定),将当前场景下算法统计出的 ae,awb 的值,在驱动中配置成ae、awb的预设值。

启流做初始化时,直接写到相应的 sensor、isp 寄存器中,这样用初始化参数输出的图像给到算法时,因为本身就是曝光正常,白平衡准确的,所以 ae, awb 几乎不存在收敛的时间。

3)出流给到应用时,采用丢帧的方法,将前几帧没收敛完成的帧给丢弃掉,避免影响后续应用识别的准确性。但这就相当于出流慢了,对识别的速度肯定有影响。

4)退出 camera app 时,保存下当前 ae、awb 的值,当再次打开 camera app 时,将上次退出 camera app 保存下来的 ae、awb 的值,

在 sensor 出流以前,将 ae 的参数写入到 sensor 寄存器,awb 的参数写入到 isp 寄存器即可。

这样也只能保证当场景不变时,反复打开关闭 camera app 出图,前几帧是一致的;当场景变化时,第一次打开时,出流会不一致。

驱动的同事在加上面(4)的策略,提出要加一个时间限制的判断,比如当第二次打开相机app 与上一次打开的时间间隔超过1个小时,就用默认的预设值参数。

考虑到间隔时间长了,场景有可能会有变化,但其实默认的预设值,定义的就是一个固定场景下统计的 ae, awb 的参数,

即使回到默认值,效果也不一定就是好的,用上一次保存的历史参数,有可能效果还更好,因为他是根据场景在变化的。

相关推荐
慕雪华年17 小时前
【SLAM】在ORB_SLAM2的ROS模式下使用RealSense D435相机
数码相机
中达瑞和-高光谱·多光谱2 天前
高光谱相机:温室盆栽高通量植物表型光谱成像研究
数码相机
PHOSKEY3 天前
3D案例丨多个3D工业相机拼接检测 开启360°新视界
数码相机
围垦3 天前
C# visionpro联合编程中遇到的问题之 R6025 - pure virtual function call
数码相机·c#·visual studio
中达瑞和-高光谱·多光谱3 天前
短波红外高光谱相机:高光谱成像在塑料分选中的应用
数码相机
luoganttcc3 天前
如何 在 Cesium 中选择部分区域 并渲染保存成 图片
数码相机
少年的云河月3 天前
OpenHarmony Camera组件简介
harmonyos·相机·openharmony·camera
中达瑞和-高光谱·多光谱3 天前
多光谱相机:林业监测应用(病虫害、外来物种、森林防火识别)
数码相机
xiaomu_3474 天前
工业相机使用笔记
笔记·数码相机·计算机视觉
不死鸟.亚历山大.狼崽子4 天前
Cesium.js(6):Cesium相机系统
开发语言·javascript·数码相机