论文阅读——《Exposure Control using Bayesian Optimization based on Entropy Weighted Image Gradient》

  • 《Exposure Control using Bayesian Optimization based on Entropy Weighted Image Gradient》
    • 1. 曝光评价标准——熵权梯度
      • 2.1 什么是图像熵?
      • 2.2 为什么用图像熵?
      • 2.3 怎么使用图像熵?
      • 2.4 评价效果怎么样?
    • 2. 自动曝光控制——贝叶斯优化
      • 2.1 什么是贝叶斯优化?
      • 2.2 贝叶斯优化是如何进行?

《Exposure Control using Bayesian Optimization based on Entropy Weighted Image Gradient》

最近这是一篇在2018年ICRA上发表的会议论文,主要内容是提出一种新的曝光评价标准,以及一种新的自动曝光控制策略,关于自动曝光的其他文章可以参考我之前的这篇博客:
图像传感器与信号处理——自动曝光算法
我之前这篇博客分享了两篇2017年发表的利用梯度进行自动曝光的文章,这篇文章中在相关工作中也提到了,说之前的那两篇只考虑了梯度信息,对于过曝光和欠曝光的处理效果不佳,这篇文章对于这个问题则有更好的解决方案。

1. 曝光评价标准——熵权梯度

所谓“熵权梯度”就是用图像熵来作为梯度的权值

2.1 什么是图像熵?

这个熵是以像素为单位来定义的(参考《A mathematical theory of communication》),其计算公式是:Hi=−∑kP(ik)log⁡2(P(ik))H_{i}=-\sum_{k} P\left(i_{k}\right) \log _{2}\left(P\left(i_{k}\right)\right) Hi​=−k∑​P(ik​)log2​(P(ik​))其中P(⋅)P(\cdot)P(⋅)是和像素梯度级数kkk相关的概率,因此在计算这个概率之前需要先计算像素iii的梯度∥∇I(i)∥2\|\nabla I(i)\|^{2}∥∇I(i)∥2。图像熵可以描述这个像素周围纹理复杂程度,图像熵大则说明这个像素周围纹理复杂。

2.2 为什么用图像熵?

文中说利用图像熵一方面可以最小化图像梯度噪声,另一方面可以建立一个饱和区域蒙版,减小过曝光或欠曝光区域来提升图片整体效果。

2.3 怎么使用图像熵?

这就是最重要的,首先曝光评价标准的计算公式为:Gewg =∑giG_{\text {ewg }}=\sum g_{i} Gewg ​=∑gi​其中,gig_igi​就是熵权梯度,这里先给出熵权梯度的定义公式:gi=Wi∥∇I(i)∥2+π(Hi)Mi(Hi)Wi1N∑j=0N−1∥∇I(j)∥2g_{i}=W_{i}\|\nabla I(i)\|^{2}+\pi\left(H_{i}\right) M_{i}\left(H_{i}\right) W_{i} \frac{1}{N} \sum_{j=0}^{N-1}\|\nabla I(j)\|^{2} gi​=Wi​∥∇I(i)∥2+π(Hi​)Mi​(Hi​)Wi​N1​j=0∑N−1​∥∇I(j)∥2可以看出,这个图像熵公式由两部分构成,第一部分Wi∥∇I(i)∥2W_{i}\|\nabla I(i)\|^{2}Wi​∥∇I(i)∥2是主要部分,第二部分π(Hi)Mi(Hi)Wi1N∑j=0N−1∥∇I(j)∥2\pi\left(H_{i}\right) M_{i}\left(H_{i}\right) W_{i} \frac{1}{N} \sum_{j=0}^{N-1}\|\nabla I(j)\|^{2}π(Hi​)Mi​(Hi​)Wi​N1​∑j=0N−1​∥∇I(j)∥2就是通过建立蒙版来减小过曝光或欠曝光区域的,下面分别解析:

(1)第一部分Wi∥∇I(i)∥2W_{i}\|\nabla I(i)\|^{2}Wi​∥∇I(i)∥2:
权重WiW_{i}Wi​的定义公式如下:Wi=wi∑i=0N−1wiW_{i}=\frac{w_{i}}{\sum_{i=0}^{N-1} w_{i}} Wi​=∑i=0N−1​wi​wi​​其中wi=1σexp⁡{(Hi−mean⁡(Hi))22σ2}w_{i}=\frac{1}{\sigma} \exp \left\{\frac{\left(H_{i}-\operatorname{mean}\left(H_{i}\right)\right)^{2}}{2 \sigma^{2}}\right\} wi​=σ1​exp{2σ2(Hi​−mean(Hi​))2​}其中σ\sigmaσ是方差,iii是像素位置。根据公式,大的图像熵将获得较大的权值,反之则权值较小。

(2)第二部分π(Hi)Mi(Hi)Wi1N∑j=0N−1∥∇I(j)∥2\pi\left(H_{i}\right) M_{i}\left(H_{i}\right) W_{i} \frac{1}{N} \sum_{j=0}^{N-1}\|\nabla I(j)\|^{2}π(Hi​)Mi​(Hi​)Wi​N1​∑j=0N−1​∥∇I(j)∥2:
激活函数π(Hi)\pi\left(H_{i}\right)π(Hi​)的定义公式如下:π(Hi)=21+exp⁡(−αHi+τ)−1,0≤Hi≤1\pi\left(H_{i}\right)=\frac{2}{1+\exp \left(-\alpha H_{i}+\tau\right)}-1,0 \leq H_{i} \leq 1 π(Hi​)=1+exp(−αHi​+τ)2​−1,0≤Hi​≤1其中参数α\alphaα控制像素iii的图像熵和梯度的之间的关系,如果α\alphaα较大时则考虑更多图像熵的因素,饱和区域会更快被控制,如果α\alphaα较小时则考虑更多梯度的因素。参数τ\tauτ控制可以被视作饱和区域像素的最小图像熵水平,激活函数随这两个参数变化的图像如下图所示:
这里指的注意的是,激活函数输入的是像素的图像熵,从图像上可以很直观的看到,小的图像熵激活函数输出负值,大的则输出正值。
蒙版函数Mi(Hi)M_{i}\left(H_{i}\right)Mi​(Hi​)的定义公式如下:Mi(Hi)={0,Hthres≤Hi≤11,0≤Hi<HthresM_{i}\left(H_{i}\right)=\left\{\begin{array}{ll} {0,} & {H_{\text {thres}} \leq H_{i} \leq 1} \\ {1,} & {0 \leq H_{i}<H_{\text {thres}}} \end{array}\right. Mi​(Hi​)={0,1,​Hthres​≤Hi​≤10≤Hi​<Hthres​​通过公式可以看出,当图像熵较大时,蒙版输出为0,当图像熵较小时,蒙版输出为1。也就说蒙版只对图像熵小的像素进行限制。
结合激活函数和蒙版函数的特性知道,过曝光或者欠曝光区域像素图像熵通常较小,第二部分因此在这些像素上输出小值或者负值,使得过曝光或者欠曝光的图像按照曝光评价标准计算出来更小。

2.4 评价效果怎么样?

文中给了这样一幅图:其中红色标记和红色曲线为本文的评价标准,可以看出来最优的曝光图片其过曝光区域确实相对较小。

2. 自动曝光控制——贝叶斯优化

有了曝光评价函数后就需要考虑如果通过曝光评价函数来进行自动曝光控制,以获取最优曝光,目前我看过好几种算法了,例如在《Active Exposure Control for Robust Visual Odometry in HDR Environments,2017》中,文中采用的是通过就曝光评价函数对曝光时间的偏导,然后通过高斯牛顿法获取最优曝光。在《Gradient-based Camera Exposure Control for Outdoor Mobile Platforms,2018》中是通过最优γ\gammaγ矫正来获取最优曝光。本文提出一种基于贝叶斯优化的自动曝光控制算法,挺有意思。

2.1 什么是贝叶斯优化?

贝叶斯优化算法通常用在机器学习中寻找最优超参数的问题中,具体问题可以这么描述,如下:X∗=arg⁡x∈Smax⁡f(x)X^{*}=\arg _{x \in S} \max f(x) X∗=argx∈S​maxf(x)其实就是在集合SSS中选择参数xxx使得函数f(x)f(x)f(x)最大,最核心的问题就是函数fff是未知且不一定是凸函数,对应到我们自动曝光过程中,参数xxx就是曝光程度,而函数fff就是曝光评价随曝光程度的变化趋势

2.2 贝叶斯优化是如何进行?

文中这幅图就很形象地说明了贝叶斯优化的过程:

贝叶斯优化算法最核心的内容主要有两部分构成,分别是Prior FunctionAcquisition Function,下面分别进行说明:

(1)Prior Function
前面提到,我们要求的函数fff是完全未知的,因此我们就要通过模型建立Prior Function,在上图中,蓝色曲线就是我们要求的函数fff,而"紫色栅格"就是基于高斯模型建立的Prior Function,基于高斯模型建立的Prior Fuction这个函数的自变量对应的不是一个标量,而是一个高斯分布。从上图中可以看到,贝叶斯优化的过程实际上就是不断采样使得Prior Fuction不断逼近函数fff(如何采样就和Acquisition Function有关),其具体公式如下:μ(x∗)=k∗T(K+σn2I)−1yσ2(x∗)=k(x∗,x∗)−k∗T(K+σn2I)−1k∗\begin{aligned} \mu\left(x_{*}\right) &=\mathbf{k}_{*}^{T}\left(K+\sigma_{n}^{2} I\right)^{-1} \mathbf{y} \\ \sigma^{2}\left(x_{*}\right) &=k\left(x_{*}, x_{*}\right)-\mathbf{k}_{*}^{T}\left(K+\sigma_{n}^{2} I\right)^{-1} \mathbf{k}_{*} \end{aligned} μ(x∗​)σ2(x∗​)​=k∗T​(K+σn2​I)−1y=k(x∗​,x∗​)−k∗T​(K+σn2​I)−1k∗​​其中,内核矩阵K=[k(xi),k(xj)]xi,xj∈xK=\left[k\left(x_{i}\right), k\left(x_{j}\right)\right]_{x_{i}, x_{j} \in \mathbf{x}}K=[k(xi​),k(xj​)]xi​,xj​∈x​,k∗=[k(xi,x∗)]xi∈x\mathbf{k}_{*}=\left[k\left(x_{i}, x^{*}\right)\right]_{x_{i} \in \mathbf{x}}k∗​=[k(xi​,x∗)]xi​∈x​,其中x\mathbf{x}x是已有的采样点集合,k(⋅,⋅)k(\cdot, \cdot)k(⋅,⋅)是内核函数,本文采用的是平方指数函数。那么μ(x∗)\mu\left(x_{*}\right)μ(x∗​)和σ2(x∗)\sigma^{2}\left(x_{*}\right)σ2(x∗​)分别是函数在自变量x∗x_{*}x∗​处的均值方差。

(2)Acquisition Function
前文提到要如何进行采样,Acquisition Funtion就是根据当前的Prior Function获取下一阶段采样的算法,文中分为MAXVAR\text{MAXVAR}MAXVAR算法和MAXMI\text{MAXMI}MAXMI算法.

那么论文中整个控制算法的伪代码如下图所示,我觉得有了前面的理解,对伪代码的阅读就没那么困难了,只是可能复现出来还有一定难度:


其中x=(x0,⋯,xm)\mathbf{x}=\left(x_{0}, \cdots, x_{m}\right)x=(x0​,⋯,xm​),y=(y0,⋯,ym)\mathbf{y}=\left(y_{0}, \cdots, y_{m}\right)y=(y0​,⋯,ym​),我按照对算法的理解绘制了如下流程图,便于理解:

最后实验结果部分就不介绍了,反正很牛逼就对了,这里是实验结果视频,好啦,那么这篇paper就总结到这儿,不知道2019和2020有没得更新的成果,花时间去找找,有问题欢迎交流~

论文阅读——《Exposure Control using Bayesian Optimization based on Entropy Weighted Image Gradient》相关推荐

  1. 《基于卷积神经网络的深度迁移学习,用于燃气轮机燃烧室的故障检测》论文阅读

    目录 突出 抽象 引言 1.1动机 1.2文献综述获得的结论 1.3贡献 1.4组织 2方法 2.1燃汽轮机组故障知识共享 2.2迁移学习 2.3 基于卷积神经网络的深度迁移学习 2.4用于燃气轮机燃 ...

  2. 基于卷积神经网络和投票机制的三维模型分类与检索 2019 论文笔记

    作者:白静 计算机辅助设计与图形学学报 1.解决的问题 由于三维模型投影得到的视图是由不同视点得到,具有相对独立性,这种像素级的融合运算并没有直接的物理或者几何意义,更有可能造成图像有益信息淹没和混淆 ...

  3. TextCNN——基于卷积神经网络的文本分类学习

    1.CNN基础内容 CNN的全称是Convolutional Neural Network,是一种前馈神经网络.由一个或多个卷积层.池化层以及顶部的全连接层组成,在图像处理领域表现出色. 本文主要学习 ...

  4. 读懂深度迁移学习,看这文就够了 | 赠书

    百度前首席科学家.斯坦福大学副教授吴恩达(Andrew Ng)曾经说过:迁移学习将是继监督学习之后的下一个促使机器学习成功商业化的驱动力. 本文选自<深度学习500问:AI工程师面试宝典> ...

  5. 一种基于卷积神经网络的图像去雾研究-含matlab代码

    目录 一.绪论 二.去雾卷积网络 2.1 特征提取 2.2 多尺度映射 2.3 局部均值 2.4 非线性回归 三.实验与分析 四.Matlab代码获取 一.绪论 雾是一种常见的大气现象,空气中悬浮的水 ...

  6. 机械臂论文笔记(一)【基于卷积神经网络的二指机械手 抓取姿态生成研究 】

    基于卷积神经网络的二指机械手 抓取姿态生成研究 论文下载 摘要 第1章 绪论 1.1 抓取生成国内外研究现状 1.1.1已知物体抓取生成 1.1.2相似物体抓取生成 1.1.3 未知物体抓取生成 1. ...

  7. 毕业设计 - 基于卷积神经网络的乳腺癌分类 深度学习 医学图像

    文章目录 1 前言 2 前言 3 数据集 3.1 良性样本 3.2 病变样本 4 开发环境 5 代码实现 5.1 实现流程 5.2 部分代码实现 5.2.1 导入库 5.2.2 图像加载 5.2.3 ...

  8. 基于卷积神经网络与迁移学习的油茶病害图像识别

    基于卷积神经网络与迁移学习的油茶病害图像识别 1.研究思路 利用深度卷积神经网络强大的特征学习和特征表达能力来自动学习油茶病害特征,并借助迁移学习方法将AlexNet模型在ImageNet图像数据集上 ...

  9. Python深度学习实例--基于卷积神经网络的小型数据处理(猫狗分类)

    Python深度学习实例--基于卷积神经网络的小型数据处理(猫狗分类) 1.卷积神经网络 1.1卷积神经网络简介 1.2卷积运算 1.3 深度学习与小数据问题的相关性 2.下载数据 2.1下载原始数据 ...

  10. 基于卷积神经网络实现图片风格的迁移 1

    卷积神经网络详解 一.实验介绍 1.1 实验内容 Prisma 是最近很火的一款APP,它能够将一张普通的图像转换成各种艺术风格的图像.本课程基于卷积神经网络,使用Caffe框架,探讨图片风格迁移背后 ...

最新文章

  1. ccs怎么把2个变量都在一个graph中显示_因果推理实战(2)——利用Tetrad进行因果分析...
  2. 1539. 第 k 个缺失的正整数
  3. Mr.J--JS学习(事件处理函数包装)
  4. 后端学 Angular 2 —— 组件间通信
  5. [LeetCode]题15:3Sum
  6. ubuntu ftp server配置
  7. 使用 Docker Machine 添加机器记录
  8. 玩转代码|简单分析如何获取小程序的t值
  9. ipa在线安装搭建_最新!超级签名系统源码以及搭建过程
  10. qq传输文件的软件测试点,QQ传文件速度对比测试活动
  11. The Finalless——新学期的scrum
  12. NDT算法配准代码学习,很详细,很多不懂,一句一句解释。
  13. 怎样才能画好人物手臂?画好人物手臂有哪些技巧?
  14. 如何快速学习一门计算机语言
  15. MapStruct系列(6)-映射集合、映射Stream流、映射枚举
  16. Kafka配置动态SASL_SCRAM认证
  17. python-tkinter(7) 实现各种个样的撩妹鼠标拖尾
  18. 基于融云SDK实现高仿微信
  19. element ui——slot 和 #。#只能用在template。slot=“title“ #title 等同
  20. URP——后期处理特效——颜色调整Color Adjustments

热门文章

  1. 【Java】6.1 Java 8增强的包装类
  2. 万字详解,JDK1.8的Lambda、Stream和日期的使用详解
  3. SpringBoot+MyBatis+Shiro 搭建杂谈
  4. 【struts2+hibernate+spring项目实战】数据报表jxl及生成excel(ssh项目实战)
  5. Java常用类之要点总结
  6. sevlet3.0上传文件功能
  7. Hibernate中的HQL的基本常用小例子,单表查询与多表查询
  8. javascript之DOM总结
  9. 数据结构 - 直接插入排序法
  10. Gentoo 安装日记 05 (磁盘分区)