论文阅读——《Exposure Control using Bayesian Optimization based on Entropy Weighted Image Gradient》
論文閱讀——《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 Function和Acquisition 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》的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 图像传感器与信号处理——自动曝光算法
- 下一篇: 论文阅读——《Online Photom