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

1、问题背景

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

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

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

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

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

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

— END —

作者:木东
来源:ISP Tuning
原文:https://mp.weixin.qq.com/s/xOCEBLTaWAgOlZjpIiT2uA

推荐:

作者木东的付费知识星球,欢迎加入,主要分享总结自己学习,及工作中遇到的图像质量相关问题。

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

版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。

(0)

相关推荐

发表回复

登录后才能评论