徒手做AWB(自动白平衡)
做AWB也有几年时间,也发现许多人,甚至做ISP相关的也不太明白AWB算法的基本流程和原理。主要还是资料太少,而且一般芯片厂对3A算法也从不开源,想写一篇给大家扫盲一下。先占个坑,回头写,大家有什么想知道的,可以留言...
做AWB也有几年时间,也发现许多人,甚至做ISP相关的也不太明白AWB算法的基本流程和原理。
主要还是资料太少,而且一般芯片厂对3A算法也从不开源,想写一篇给大家扫盲一下。
先占个坑,回头写,大家有什么想知道的,可以留言
更新1:
很多读者是AWB的爱好者,没有标准的灯箱和灰卡做标定,徒手做的当然不太准,但很好玩是不是^^
AWB的原理就不多说了,
我们用十分不严谨的流程和非常低的上手门槛,让大家做一个AWB,先把流程写一下:
准备:
1,手机/数码相机:最好是RGGB sensor , 支持输出RAW图的(要注意一下输出的RAW是在ISP pipeline的哪个阶段出来的,一般是sensor 直出,不太懂ISP pipeline的同学先去学习一下)
2,电脑:可以简单的输出统计值(statistics),把RAW图平均分成M*N(例如32*32)的block,并统计每个block里面平均的R/G/G/B
a, 图像不能平均分的可以留边,影响不大
b, 每个block的结构体最好包括以下数据,channel_sum_R/G/G/B, channel_count_R/G/G/B, 既每个通道下统计的像素点的sum和count, 那平均值就是sum/count
c, 不一定每个pixel点都做统计,过亮/过暗的要抛弃掉,可以设置一个bright/dark_threshold, 如果RAW太大或者处理速度慢,可以隔行/列进行处理,或者把RAW先resize小图处理。
3,用手上的设备,收集不同色温下RAW图,用于标定色温线
a, 晴天的夕阳场景是天然的色温线,夕阳是低色温,蓝天是高色温,具体的色温值,凭感觉标一下就好了
b, 一般灯箱里面的灯是7500~2000,D75/D60/D50/TL84/CWF/A/F等,标准灯箱+标准光源,可以做多个设备的重复标定,统一流程,现在我们就一个设备不用这么严格
更多推荐
所有评论(0)