IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> [Camera效果]MSM8909 AWB算法流程 -> 正文阅读

[数据结构与算法][Camera效果]MSM8909 AWB算法流程

本文来自于我的前同事-小卢,一个很有个性,能力又不错的年轻小伙子!
(文章已经得他本人同意分享)

MSM8909 AWB算法流程

本文介绍 MSM8909 AWB 的相关流程,在那之前,先了解 AWB 的相关概念

一. 相关概念

1. 色温

色温表示光线中包含颜色成分的一个计量单位。理论上讲,色温是将绝对黑体从绝对零度开始升温后所呈现的颜色,计量单位为开尔文(K)。绝对黑体在受热后,颜色逐渐从黑转红、转黄、转白、最后转蓝。如果某一种光源发出的光,与某以温度下黑体发出的光所含光谱成分相同,就将其称为某色温光。常见的标准色温等有:

D65:国际标准人工日光,色温 = 6500K
D75:模拟北方太阳光,色温 = 7500K
D50:模拟太阳光,色温 = 5000K
TL84:商场灯光,色温 = 4000K
CWF:商场冷白灯光,色温 = 4100K
A:黄色展厅灯光,色温 = 2860K

2. 白平衡

由于光源经常性地会带着某种颜色的光谱,因此,当白色的物体呈现在此种光源下时,它就不再是白色了。如果没有白平衡,那么在黄光下拍的图片(如 A 光)就会偏黄,在日光下拍的图片就会偏蓝,等等。为了使所拍物体呈现真正的颜色,需要把光源本身的颜色消除掉,这个操作就称之为白平衡。

二. 高通白平衡流程

白平衡的基本思路就是通过设定的统计区域统计出画面的光源分布情况,进而准确的判断出当前场景的色温,再根据色温选择对应 RGB 的补偿系数,达到消除光源颜色的目的

先整体了解 AWB 的处理流程
(mm-camera-CORE 为 3A 核心算法,具体代码实现高通不开放)

1、设置 AWB 相关参数

首先从设置 awb 参数开始,awb 模块会收到 ae 传递的 exp_idx 等参数,用于区分室内室外;接着判断是否需要 lock awb,当走 awb 时,会开始进行 awb 处理;

2、 计算 rg,bg

高通以 rg 为横坐标,bg 为纵坐标,划分整个光源区域

算法会计算出画面中各个白点的落点区域,再根据参数中设定的权重,得出最终的 rg,bg 值

不同的算法,会得出不同的 rg,bg,例如简单灰度世界算法,决策树算法等等。高通 AWB 采用多种算法得出不同算法下的 rg,bg,最终根据效果参数中设定的权重值决定采用何种结果。
(顺带一提,算法一直在更新,主流的算法都是根据先验知识预测结果,当算法工程师提出某种应对特殊场景的算法机制时,就需要 tuning 工程师根据实际场景以及 side effect 决定是否使用)

从上面的 log 来看,已得多种白点的加权平均分布 weighted sample average,一般而言已经可以根据该分布直接得出 final decision,但正如上所言,高通算法工程师考虑到某些特殊场景,于是在算法里加入了这些场景的检测机制,当触发这些检测机制时,会使得 weighted sample average 无效或占比极少;

例如 Green_Zone 机制(用于大面积绿色草地的场景),dominant_white_in_history 机制(该机制意义未明,触发后该机制算出的 rg,bg 会占主导),如下 log:

虽然 weighted sample avg 已经推测出该光源为 TL84(4000K),但由于阈值设置不合场景,算法错误地检测出该场景为 Green_Zone,错判光源为 D50(5000K),最终使用了不合适的 r_gain,b_gain


如下 log,虽然 weighted sample avg 推测出光源为 TL84(4000K),但由于触发 history dominant white decision,该机制算出光源为 D75(7500K),导致最终的 rg,bg D75 占主导,致使算法错判场景光源为 D65(6500K)

final-awb-decison 的推导可以说是 AWB 算法的核心,因为它决定了 ISP 使用多少 rgb gain 去抵消光源的影响

3、传递 AWB gain

算法得出 AWB gain 后,实际上 tuning 的工作已经完成(tuning 需要确保针对场景的 AWB gain 是合适的),接下来只要将 awb_output 输入到 ISP,ISP 会做 AE、AWB 的同步,以及准备下一次的 AWB 统计、AWB 计算等等

之后的流程不熟,就不继续了。

三、总结

总的来说,AWB 是消除光源对画面颜色的影响,其作用于 sensor 的 RGB 域:

  sensor_output -> OBC(暗电流校准)-> Lens RollOff (镜头衰减校准) -> AWB 

但白平衡始终有其局限性,例如,多光源场景(前景、后景光源色温差异大),混淆色干扰(低色温蓝色场景,高色温黄色场景)等等,这些场景 AWB 算法存在瓶颈,无法完全兼顾。

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-11-18 11:25:30  更:2021-11-18 11:26:19 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 11:25:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码