打开 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 的参数,

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

相关推荐
PHOSKEY9 小时前
具身机器人行星滚柱丝杠核心尺寸测量与光子精密QM系列闪测仪应用
数码相机
就是个名称1 天前
cesium 地球地固转地惯
数码相机
AttosTek1 天前
-80℃深度制冷短波红外相机选型指南
数码相机
落苜蓿蓝1 天前
多张覆盖视场的平面棋盘图片; 、对每张图片用 OpenCV 的 findChessboardCorners 检测内角点并用 corn ...
数码相机·opencv·平面
取个名字太难了~2 天前
最新手机外接相机实时传输 + 动态美颜完整项目源码
android·数码相机·智能手机·美颜·相机连接·demu
取个名字太难了~3 天前
安卓相机连接手机实时预览+美颜特效完整源码
android·数码相机·智能手机·美颜·相机连接·demu
ueotek3 天前
Ansys Speos丨面向航空航天与国防的杂散光分析——红外相机中的冷反射(Narcissus)效应
数码相机
美狐美颜SDK开放平台3 天前
直播APP开发,美颜SDK和相机SDK有什么区别?
android·深度学习·数码相机·ios·直播美颜sdk·视频美颜sdk
巧克力味的桃子3 天前
尼康Z30|P/A/S/M四大档位完整详解
数码相机
code_pgf3 天前
鱼眼相机模型
数码相机