当前位置: 首页 > news >正文

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

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

相关文章:

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

1、问题背景 使用的安卓平台,客户的应用是要尽可能快的获取到1帧图像效果正常的图片。 但当打开 camera 启动出流后,前3-5帧图像是偏暗、偏色的,如下图所示,是抓取出流的前25帧图像, 前3帧颜色是偏蓝的,…...

SD-WAN技术:优化国内外服务器访问的关键

在全球化的商业环境中,企业经常需要在国内访问国外的服务器。然而,由于地理位置和网络架构的限制,这种跨国访问往往会遇到速度慢、延迟高等问题。SD-WAN(软件定义广域网)技术的兴起,为企业提供了一种新的解…...

【MySQL】学习和总结标量子查询

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​💫个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-kLo6jykc7AcEVEQk {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…...

vue3第三节(v-model 执行原理)

特殊说明: 以下vue3语法是基于 3.4之前版本进行使用的,3.4之后的版本 引入了 defineModel 宏,后续会介绍defineModel 1、vue3 与vue2 中v-model区别 vue3 中v-model绑定的不再是value,而是modelValue,接收的方法也不再…...

RunnerGo UI自动化测试脚本如何配置

RunnerGo提供从API管理到API性能再到可视化的API自动化、UI自动化测试功能模块,覆盖了整个产品测试周期。 RunnerGo UI自动化基于Selenium浏览器自动化方案构建,内嵌高度可复用的测试脚本,测试团队无需复杂的代码编写即可开展低代码的自动化…...

Android 指南针校准进度计算实现

关于Android中指南针的实现,我们可以使用传感器来获取设备的方向信息,从而实现指南针功能。 Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);sensorManager (SensorManager) getSystemService(Conte…...

c++学习:Lambda练习和数组练习

练习一 进行加减乘除 普通方法 #include <iostream> using namespace std; int add(int a,int b) {return ab; } int min(int a,int b) {return a-b; } int mul(int a,int b) {return a*b; } float divRet(int a,int b) {return (float)a/b; } int main() {int a;int …...

数据仓库和数据湖的区别

数据仓库和数据湖是两种不同的数据存储和管理架构&#xff0c;它们有以下区别&#xff1a; 1.数据结构&#xff1a;数据仓库采用结构化的数据模型&#xff0c;通常是规范化的关系型数据库&#xff0c;其中数据以表格形式组织&#xff0c;使用预定义的模式和架构。而数据湖则是…...

tkinterFrame框架+标签框架LabelFrame+Toplevel窗口的使用

1.在tkinter中&#xff0c;Frame是一个容器小部件用于组织和管理其他小部件。它可以作为一个独立的可见区域&#xff0c;也可以作为其他小部件的父容器。 import tkinter as tk import tkinter.ttk as ttk import tkinter.messagebox as mbm tk.Tk() m.title("tkinter L…...

C 语言中的 char 关键字详解

1. char类型 char类型用于存储单个字符&#xff0c;占用1个字节的内存空间。在C语言中&#xff0c;char类型可以用于存储ASCII码表中的任意字符&#xff0c;包括大小写字母、数字、标点符号等。例如&#xff1a; char ch A;在这个例子中&#xff0c;变量ch存储了字符A的ASCI…...

信息安全管理与评估赛题解析-应急响应(含环境)

服务器应急响应 文章目录 服务器应急响应题目:答案:192.168.1.7答案:Linux x86_64答案:shodan答案:DIRSEARCH答案:24/Apr/2022:15:26:42答案:2022答案:/var/www/html/footer.php答案:./prism答案:/root/.mal/prism答案:后门行为相关资源...

微服务-微服务Spring Security OAuth 2实战

1. Spring Authorization Server 是什么 Spring Authorization Server 是一个框架,它提供了 OAuth 2.1 和 OpenID Connect 1.0 规范以及其他相关规范的实现。它建立在 Spring Security 之上,为构建 OpenID Connect 1.0 身份提供者和 OAuth2 授权服务器产品提供了一个安全、轻…...

二次供水物联网:HiWoo Cloud助力城市水务管理升级

随着城市化的快速推进&#xff0c;二次供水系统作为城市基础设施的重要组成部分&#xff0c;其稳定运行和高效管理显得至关重要。然而&#xff0c;传统的二次供水管理方式在应对复杂多变的城市供水需求时&#xff0c;显得力不从心。为了破解这一难题&#xff0c;HiWoo Cloud平台…...

P1015 [NOIP1999 普及组] 回文数

题目传送门 题目描述 若一个数&#xff08;首位不为零&#xff09;从左向右读与从右向左读都一样&#xff0c;我们就将其称之为回文数。 例如&#xff1a;给定一个十进制数 56&#xff0c;将 56 加 65&#xff08;即把 56 从右向左读&#xff09;&#xff0c;得到 121 是一个…...

【MATLAB】兔子机器人动力学模型解读(simulink中的simscape的各模块介绍)

1、动力学模型 Rectangular Joint 控制平面上&#xff08;x&#xff0c;y轴&#xff09;的移动&#xff0c;去掉以后&#xff0c;机器人在原地翻滚不移动 Rigid Transform 坐标转换&#xff0c;B站视频已收藏 去掉&#xff0c;机体与地面贴合 此处的作用是设定机体的初…...

小程序配置服务器域名

要配置小程序的服务器域名&#xff0c;您需要在小程序后台进行以下步骤&#xff1a; 登录小程序后台&#xff0c;进入开发设置页面。找到服务器域名配置选项&#xff0c;点击添加域名。输入您的服务器域名&#xff0c;可以添加多个域名&#xff0c;包括请求域名、上传文件域名…...

探究全链路压力测试的含义与重要性

全链路压力测试是指对整个应用系统的各个环节或组件进行压力测试&#xff0c;以模拟实际生产环境中的用户负载和流量&#xff0c;评估系统在高负载条件下的性能表现。 1. 全链路压力测试的含义 全链路压力测试涉及系统的所有组件和环节&#xff0c;包括前端用户界面、应用服务器…...

代码随想录算法训练营day64 || 84. 柱状图中最大的矩形

单调栈&#xff0c;又一次经典来袭&#xff01; LeetCode&#xff1a;84.柱状图中最大的矩形_哔哩哔哩_bilibili 首先补充昨天接雨水题目解法的更新&#xff0c;代码随想录 中给出双指针和单调栈的解法&#xff0c;其中所采用的思想是计算每一列可以容纳的雨水&#xff0c;非常…...

图的简单介绍

定义及术语 G(V,E)&#xff1a;图G的顶点集为V&#xff0c;边集为E。分为有向图和无向图两类。 顶点的度&#xff1a;与该结点相连的边的条数。 出度&#xff1a;顶点的出边条数 入度&#xff1a;顶点的入边条数 顶点的权值称为点权&#xff0c;边的权值称为边权。 存储 1.邻…...

【C#小知识】c#中的delegate(委托)和event(事件)

今天来介绍一下delegate和event。delegate在c#中可以定义一个函数类型&#xff0c;可以将函数作为一个对象来使用。event在c#中则可以看做一个函数的集合&#xff0c;event中包含了一个或多个函数。 delegate using System;public class MyClass {//定义委托public delegate v…...

从M516 BCM的休眠电流与唤醒策略,聊聊如何让汽车电瓶更耐用

从M516 BCM的休眠电流与唤醒策略&#xff0c;聊聊如何让汽车电瓶更耐用 你是否遇到过这样的尴尬场景&#xff1a;出差一周回来&#xff0c;发现爱车竟然无法启动&#xff0c;仪表盘一片漆黑&#xff1f;这背后往往与车身控制器&#xff08;BCM&#xff09;的功耗管理设计密切相…...

从嵌入式春招到秋招:我用C语言刷动态规划(背包问题)的实战心得

从嵌入式春招到秋招&#xff1a;我用C语言刷动态规划&#xff08;背包问题&#xff09;的实战心得 去年春天&#xff0c;当我第一次打开某大厂的在线笔试系统时&#xff0c;手心里全是汗。作为嵌入式专业的学生&#xff0c;我本以为笔试会偏向硬件和底层开发&#xff0c;没想到…...

从共享单车需求预测看ST-Norm:为什么你的时序模型总忽略局部特征?

从共享单车需求预测看ST-Norm&#xff1a;为什么你的时序模型总忽略局部特征&#xff1f; 清晨7点的纽约曼哈顿&#xff0c;金融区的共享单车站点在30分钟内被抢空&#xff0c;而两公里外的学校区域却仍有大量闲置车辆。这种"时空错配"现象背后&#xff0c;隐藏着传统…...

XFCE桌面环境深度定制:彻底禁用自动锁屏与待机策略

1. 为什么需要禁用自动锁屏与待机功能&#xff1f; 很多使用Xubuntu系统的朋友都遇到过这样的困扰&#xff1a;正在跑一个长时间的任务&#xff0c;比如视频渲染、代码编译或者远程服务器监控&#xff0c;突然屏幕黑了&#xff0c;系统进入待机状态。更糟的是&#xff0c;有些…...

2026最权威的AI论文网站实际效果

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 要切实有效地把文本里 AI 生成的特征予以降低&#xff0c;就得从词汇挑选、句式架构以及逻辑…...

Android集成腾讯TBS X5内核避坑指南:从QbSdk初始化到TbsDownloader手动下载的完整流程

Android集成腾讯TBS X5内核实战指南&#xff1a;从初始化到异常处理的完整解决方案 在移动端WebView开发中&#xff0c;系统自带内核的性能和兼容性问题一直是开发者面临的挑战。腾讯TBS X5内核作为国内广泛使用的WebView增强解决方案&#xff0c;能够显著提升H5页面的渲染效果…...

实战避坑:在TensorFlow/PyTorch里高效实现Depthwise Separable Conv,别再让模型训练慢如蜗牛

深度可分离卷积实战指南&#xff1a;如何在TensorFlow/PyTorch中实现高效计算 当你在移动端或边缘设备上部署轻量级模型时&#xff0c;Depthwise Separable Convolution&#xff08;深度可分离卷积&#xff09;无疑是减少计算量和参数量的利器。但很多工程师在实际应用中会发现…...

告别ROS!在Win10上搞定Intel RealSense L515与ORB-SLAM2的保姆级避坑指南

Windows 10环境下Intel RealSense L515与ORB-SLAM2深度整合实战指南 为什么选择Windows平台进行SLAM开发&#xff1f; 对于大多数计算机视觉和机器人领域的开发者来说&#xff0c;Ubuntu和ROS似乎是SLAM开发的"标准配置"。但现实情况是&#xff0c;许多实验室、教育机…...

终极指南:3小时完成100个NCBI基因组数据批量下载的完整解决方案

终极指南&#xff1a;3小时完成100个NCBI基因组数据批量下载的完整解决方案 【免费下载链接】ncbi-genome-download Scripts to download genomes from the NCBI FTP servers 项目地址: https://gitcode.com/gh_mirrors/nc/ncbi-genome-download 作为生物信息学研究人员…...

抖音下载器完整教程:免费无水印批量下载的终极解决方案

抖音下载器完整教程&#xff1a;免费无水印批量下载的终极解决方案 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback supp…...