一、对比度增强算法AGCWD硬件化实现
2013年发表在TIP上的对比度增强算法AGCWD(Efficient contrast enhancement using adaptive gamma correction with weighting distribution)
2014年发表在IEEE Transactions on Image Processing的《A New Hardware-Efficient Algorithm and Reconfigurable Architecture for Image Contrast Enhancement》论文是对前文成果的硬件化实现
下面先介绍一下这个算法的原始版本。该算法本质上是一种自适应的gamma校正算法,其中,“自适应”是利用图像直方图信息来实现的。
假设X表示我们的输入图像,其亮度l的变化范围是lmin到lmax,那么这个算法一共分为5步来执行:
二、原始版本算法步骤:
假设X表示我们的输入图像,其亮度l的变化范围l_{min}和l_{max},那么这个算法一共分为5步来执行:
2.1、Image Statistics Computation
图像X(i,j),亮度灰阶I的动态范围是l_{min}和l_{max},其中 l_{min}是最小的灰度阶,例如8bit数据,Imin最小为0,最大为255。统计图像的灰阶像素分布概率probability density function (PDF)。
\[PDF(l) =\frac{n_{l}}{MN} \]
其中,MN是像素总个数,n_{l}是灰阶n对应的像素数。
2.2、Weighting Probability Density Function
利用cd f并应用归一化伽玛函数来修改变换曲线,而不会丢失可用的统计直方图,对前一步算出来的概率密度函数进行修改,加权分布(WD)函数也用于略微修改统计直方图,得到加权概率密度函数。
\[PDF_{w}(l) =max(PDF)*(\frac{PDF(l)-min(PDF)}{max(PDF)-min(PDF)})^{\alpha} \]
较低的伽玛参数产生更显著的调整,alpha可取[0.1,0.5]值,根据经验可以取0.5,让函数曲线更加平滑
2.3、Smoothed Cumulative Distribution Function
用PDF_{w}(l)计算cumulative distribution function (CDF) ,做归一化处理,利用第二步算出来的加权概率密度函数,求出平滑的累积分布函数
\[CDF_{s}(l) =\sum_{l=l_{min}}^{l_{max}}\frac{PDF_{w}(l)}{\sum{PDF_{w}}} \]
2.4、Adaptive Gamma Correction
T(l)transform function,利用第三步的图像累积分布函数信息CDF,进行自适应的gamma校正。
\[T(l) = (l_{max}-l_{min})*(\frac{l}{l_{max}-l_{min}})^{\gamma} \]
\[\gamma=1-CDF_{s}(l)*P \]
其中,P表示自适应参数,设置为1,取值范围[0.5,1]
2.5、Final Luminance Transformation
在映射函数T(l)映射函数中,最后一步就是对图像每个像素点的亮度值进行映射,就得到了对比度增强后的图像
\[Y= {T (X(i, j))|∀X(i, j) ∈ X}。 \]
三、算法硬件移植优化
修改gamma的算法整体流程是比较简单的,其中涉及到一些计算过程对于硬件实现(FPGA逻辑实现 )来说是比较困难,尤其是步骤2和4中涉及到的非整数的求幂运算。另外,除法的实现也需要比较高的硬件成本。
因此,为了面向硬件实现,作者在文章《A New Hardware-Efficient Algorithm and Reconfigurable Architecture for Image Contrast Enhancement》对这个算法做出了一定修改。例如,对于步骤1中的除法,作者直接将分母去掉了,相当于就是在求图像的直方图。这个修改不会影响最后的结果,修改前后算出来的结果都是一样的。另外,步骤2、3、4中涉及到的除法运算和求幂运算,作者使用了近似的方法来求解。下面详细介绍一下这个近似的过程。
本文的改进算法,面向硬件实现,
3.1、修改公式2、4的非整数幂运算
为了降低中使用非整数基运算的变量幂运算的计算复杂度,修改公式2、4的非整数幂运算,将公式2简化为下式
\[y=m*(\frac{x}{n})^{\gamma} \]
将上式重写为
\[y=m*2^{log_{2}{(\frac{x}{n})^{\gamma}}} \]
再
\[y=m*2^{\gamma({log_{2}{\frac{x}{n}}})} \]
\[y=m*2^{\gamma({log_{2}x-log_{2}n})} \]
具有将非整数基计算简化为变量以二为基数的幂运算和以二为对数基数的计算。
下一步 如何在硬件上实现这个对数运算和指数运算
\[y=m*(\frac{x}{n})^{\gamma} \]
上市,m,gamma为1的时候 ,为下式
\[y=(\frac{x}{n}) \]
重写为下式
\[y=2^{log_{2}{(\frac{x}{n})}} \]
\[y=2^{({log_{2}x-log_{2}n})} \]
除法计算简化为以二为基数的可变幂运算,以及以二为对数的计算
3.2、硬件求解\(log_2k\)
通常的求解
\[log_{2}k=p+log_{2}h,k\in[1,2^{p+1}) \]
\[p=floor(log_{2}k) \]
p是实数正数,\(log_{2}h\)是小数部分,然后发现
\[k = h2^p \]
\[h=\frac{k}{2^p},h\in[1,2) \]
其中,p是寻找k中最大的非零数
我们已知了k和p,所以可以通过直接右移p位来计算h
log2k的求解就转变为了log2h的求解问题,这个h的定义域就在1和2之间
对于这个小区间的对数求解,作者使用了牛顿差分插值公式,将它简化成了一个只含乘法和加法运算的公式
为了实现较低的计算复杂度,我们使用牛顿分差插值公式,该公式在所需的区间内近似函数,将log2h的运算以下式近似公式代替。
\[log_{2}h约= [(0.1519*h−1.02123)*h+3]*h−2.13\\ h ∈ [1, 2) \]
3.3、硬件求解2^k
\[2^k,k\in[p,0) \]
将k分为p和h
\[k=p+h \]
则
\[h=k-p,h\in[0,1) \]
p是正实数,接着
\[2^k=2^p+2^h \]
且
\[p=floor(k) \]
从牛顿差分插值公式中,我们可以找到2h的近似函数为:
\[2^h约=[(0.079*h + 0.2242)*h + 0.6967]*h + 0.999, \\h ∈ [0, 1) \]
四、算法硬件化版本
4.1、Image Statistics Computation:
\[PDF'(l) = n_{l} \]
\[PDF'(l) = PDF(l)*MN \]
之前没有除以MN减少除法的应用,l是灰度阶的递进
nl表示输入图像的
4.2、Weighting Probability Density Function:
\[PDF_{w}^{‘}(l) =max(PDF^{‘})*\frac{PDF^{‘}(l)-min(PDF^{‘})}{max(PDF^{‘})-min(PDF)}^{\alpha} \]
alpha可取[0.1,0.5]值根据经验可以取0.5,让函数曲线更加平滑
\[PDF_{w}^{‘}(l) =max(PDF^{‘})*2^{\beta} \]
\[\beta=\alpha*{log_{2}[PDF^{‘}(l)-min(PDF^{‘})}]-{log_{2}[max(PDF^{‘}(l))-min(PDF^{‘})}] \]
4.3、Smoothed Cumulative Distribution Function
重写 公式3
\[CDF_{s}(l) =\sum_{l=l_{min}}^{l_{max}}\frac{PDF_{w}(l)}{\sum{PDF_{w}}} \]
用新的数据改为
\[CDF_{s}^{‘}(l) =\frac{\sum_{l=l_{min}}^{l_{max}}PDF_{w}^{‘}(l)}{\sum{PDF_{w}^{‘}}} \]
根据
\[y=\frac{x}{n}=2^{({log_{2}x-log_{2}n})} \]
上式再重写为
\[CDF_{s}^{‘}(l) =2^{(log_{2}(\sum_{l=l_{min}}^{l_{max}}PDF_{w}^{‘}(l))-log_{2}(\sum{PDF_{w}^{‘}}))} \]
4.4、Adaptive Gamma Correction:
\[T(l) = (l_{max}-l_{min})*2^{\gamma(log_2{l}-log_2{(l_{max}-l_{min})})} \]
\[\gamma=1-CDF_{s}^{‘}(l)*P \]
P参数设置为1,参数范围[0.5,1]。
4.5、Final Luminance Transformation
在映射函数T(l)映射函数中,找对应的输出
\[Y= {T (X(i, j))|∀X(i, j) ∈ X} \]
我的个人博客主页,欢迎访问
我的CSDN主页,欢迎访问
我的GitHub主页,欢迎访问
我的知乎主页,欢迎访问
1.本站内容仅供参考,不作为任何法律依据。用户在使用本站内容时,应自行判断其真实性、准确性和完整性,并承担相应风险。
2.本站部分内容来源于互联网,仅用于交流学习研究知识,若侵犯了您的合法权益,请及时邮件或站内私信与本站联系,我们将尽快予以处理。
3.本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
4.根据《计算机软件保护条例》第十七条规定“为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。”您需知晓本站所有内容资源均来源于网络,仅供用户交流学习与研究使用,版权归属原版权方所有,版权争议与本站无关,用户本人下载后不能用作商业或非法用途,需在24个小时之内从您的电脑中彻底删除上述内容,否则后果均由用户承担责任;如果您访问和下载此文件,表示您同意只将此文件用于参考、学习而非其他用途,否则一切后果请您自行承担,如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
5.本站是非经营性个人站点,所有软件信息均来自网络,所有资源仅供学习参考研究目的,并不贩卖软件,不存在任何商业目的及用途
暂无评论内容