基于AM5728的自适应图像增强算法的研究与实现*

2018-11-19 02:27卿粼波熊淑华何小海
网络安全与数据管理 2018年11期
关键词:图像增强亮度光照

郭 威,卿粼波,熊淑华,何小海

(四川大学 电子信息学院,四川 成都 610064)

0 引言

近年来由于半导体工业技术和图像处理技术日益发展,基于嵌入式平台的视觉检测系统被广泛应用于工业检测等领域,如工件品缺陷检测、印刷品缺陷检测、硬币检测等。但是实际工业生产环境中的光源单一、照度不均,在光照不均条件下采集的图像往往会出现质量较差、图像信息不足等情况,从而影响工业检测的准确率。因此基于嵌入式平台的图像增强处理具有十分重要的研究意义。

图像增强技术指的是针对一些信息量不足或者某些关键信息不突出的图像进行的一种图像信息增强的技术。目前应用广泛的图像增强算法有直方图均衡算法、小波变换算法、Retinex算法等。直方图均衡算法是一种通过将图像灰度级概率密度均衡化处理,从而达到对比度拉伸的算法,该算法原理简单、处理图像速度较快,但在处理光照不均的图像时容易产生过增强现象[1]。小波变换是通过将图像分解成低频图像和高频图像,分别对不同频率图像进行处理从而达到细节增强的目的,但同时也存在噪声放大的问题[2]。Retinex算法是一种基于颜色恒常知觉理论的算法,通过对图像的光照分量进行调整从而有效地消除光照对图像的影响。常见的基于Retinex理论的算法有单尺度Retinex(SSR)算法[3]、多尺度Retinex(MSR)算法[4]和带色彩恢复的多尺度Retinex(MSRCR)算法[5]等改进算法,这类算法都是采用高斯滤波来提取图像的光照分量,通常会产生细节丢失的现象。为了避免高斯滤波的这一缺陷,引导滤波[6]和双边滤波[7]相继被提出,在保持图像边缘特性方面均有较好的效果。文献[8]提出了一种基于引导滤波的自适应图像增强算法,该算法虽然能自适应地进行光照矫正,但由于计算复杂,对图像的矫正时间较长,并不适用于工业检测系统。

本文采用引导滤波来估计图像的光照分量,结合Gamma函数的非线性矫正特性,提出了一种基于光照分布特性的自适应增强算法,能够有效地矫正图像亮度不均匀分布,增强图像质量。且鉴于工业检测系统中嵌入式平台具有稳定性高、功耗低、运算速度快等优势,本文针对嵌入式平台AM5728进行了算法的移植与优化,具有更高的实用价值。

1 自适应图像增强算法

根据人眼对亮度具有较高的敏感性这一特点,针对光照的有效矫正至关重要。本文算法首先利用引导滤波有效地提取光照分量,然后基于光照分量的不均匀分布特性提出了一种改进的自适应Gamma矫正函数,能够有效地消除光照不均对图像采集造成的影响。

1.1 算法的构建

光照的不均匀分布会导致采集的图像亮度过高或过低,严重降低采集图像的质量。为了减小不均匀的光照对图像质量的影响,提取图像的光照分量并进行矫正是本文算法的核心思想。

由LAND E H提出的Retinex光照模型[9]可知,成像单元获取的数字图像S(x,y)是环境照明亮度I(x,y)和物体表面对照射光的反射系数R(x,y)的乘积。可表示为:

S(x,y)=R(x,y)·I(x,y)

(1)

照明亮度I(x,y)也称作光照分量,该分量决定了图像的动态范围,对应着图像中的低频部分;R(x,y)也称作反射分量,该分量体现了图像的实质属性,携带了图像的细节信息,对应着图像中的高频部分。目前,采用高斯滤波或者双边滤波的方法来提取图像的低频信息最为常见。MSR及SSR等算法通常采用平滑特性较好的高斯函数作为中心滤波函数,但采用高斯函数提取光照分量往往不能很好地保持边缘特性。而双边滤波和引导滤波则在边缘保持特性方面效果较为明显,双边滤波运算的时间较长,并不适用于工业检测中的高速图像处理的情况。而引导滤波算法则具有较低的运算复杂度,运算时间短,所以本文采用引导滤波对图像进行光照分量的提取。最后通过提出的一种可变参数的Gamma校正函数对光照分量进行处理,降低光照较强区域的亮度值以及增强光照较弱区域的亮度值,从而有效减小了光照不均对图像的影响,实现对图像的自适应增强处理。

1.2 引导滤波提取光照分量

引导滤波算法通过引入引导图像的概念来对原图像进行滤波。使得输出图像q既能保持原图像的信息又具有与引导图像相似的细节纹理。在滤波窗口ωk中,输出图像q与引导图像I的线性变换关系为:

qi=akIi+bk, ∀i∈ωk

(2)

(3)

其中,ε为正则化系数,目的是避免ak取值过大。通常是采用最小二乘法求得ak与bk的最优解:

(4)

(5)

1.3 基于Gamma变换的光照矫正算法

Gamma非线性函数通过指数变换的方式能够实现对不同的像素进行不同的矫正。针对数字图像的Gamma校正函数为:

(6)

其中,G(x,y)为矫正后的图像,S(x,y)为采集到的原始图像,λ为矫正因子。当λ大于1时,可以降低像素点的亮度值,当λ小于1时,能够增加像素点的亮度值。为了实现根据图像的亮度分布自动地选择λ值,本文提出了一种随着光照分量变化而变化的分段线性函数:

(7)

其中,I(x,y)为提取的光照分量,a为自适应增强系数。该分段函数对应的变化曲线如图1所示。

图1 自适应增强系数变化曲线

由图1可以看出,针对一幅数字图像,当图像亮度越高时,λ越大;图像亮度越低时,λ越小。从而能够达到对不同亮度的值进行不同强度的矫正,有效地减少光照不均对图像造成的影响。针对一幅图像不同像素的矫正能够很好地解决图像中照度不均匀的问题,但针对不同的图像,往往需要使用不同的矫正因子才能达到较为理想的增强效果,鉴于此本文引入了自适应增强系数a,定义如下:

(8)

其中,Sv(x,y)为原始图像均值,当图像过亮或者过暗时即均值较大或者较小,a值则较大,对图像也就有较大程度的矫正;当图像亮度适中时,对光照的矫正程度则较小。由式(7)可知,增强系数λ由整体图像的均值和每个点的像素值共同决定。因此针对不同的图像均能达到较好的增强效果。

2 基于AM5728的算法移植与优化

AM5728是TI公司生产的一款ARM+DSP多核异构的高性能音视频处理器。它结合了DSP的高度并行运算能力及ARM强大的逻辑控制管理能力。AM5728具有两个ARMv7架构的Cortex-A15核和两个TM320C66x超长指令集DSP核。ARM核作为平台控制管理单元,时钟频率可达1.5 GHz,能对平台各个接口资源进行统一管理。DSP核时钟频率可高达750 MHz, 通常可用于视频处理等需要复杂计算的场合。鉴于AM5728多核异构的特点,充分考虑ARM和DSP各自的优势,采用多进程的方式实现ARM双核的并行处理,同时基于OpenCL框架维护了一个消息队列来保持ARM核与DSP核之间的通信,每个DSP核均从消息队列中获取数据从而实现了DSP核的并行运算。算法的执行流程如图2所示。

图2 多核并行设计图

ARM_CORE1主要负责数字图像的采集任务,ARM_CORE2负责将每一帧图像的每一行数据封装为一个工作组,并按组将数据送往OpenCL维护的消息队列中,然后两个DSP核均从消息队列中取出数据进行运算,对每个工作组的数据进行滤波和Gamma矫正。运算完成后的工作组同样通过消息队列的方式传回ARM_CORE2,ARM_CORE2同时将接收到的数据组合成为增强后的图像,并通过ARM_CORE1将图像输出到显示设备上。本文设计的算法流程充分利用了AM5728的硬件资源,在运算速度上有了很大提升。

3 实验结果分析

为了验证本文算法的有效性,本文针对光照不均的硬币图像和岩石图像,分别利用直方图均衡算法、MSR算法以及本文算法进行增强处理,结果如图3和图4所示。

图3 硬币图像的不同算法处理结果

图4 岩石图像的不同算法处理结果

通过对比可以看出,直方图均衡化对于对比度较高的区域(如图3中硬币边缘和图4中的岩石边缘)进行增强时容易出现过增强现象,增加了很多的噪声;MSR算法由于直接滤除光照分量导致光照强度过亮的区域变得更加模糊,如图3中硬币的右上角区域和图4中岩石中心区域;而本文算法对照度不均匀的图像有了整体性的增强和细节上的锐化。

为了验证本文算法的高效性,针对本文算法分别测试了使用OpenCL框架加速和未使用OpenCL框架的图像增强时间,针对不同尺寸的图像选取多张图像进行测试,平均处理时间如表1所示。

表1 单帧图像处理时间 (ms)

可以看出通过OpenCL框架调用DSP核加速处理的时间明显低于未使用DSP核时处理的时间。针对720 p的视频可以达到实时增强的效果。

4 结论

为了降低工业视觉检测中图像采集质量对检测准确率的影响,本文基于Gamma校正函数提出了一种自适应增强算法,该算法能有效地增强在照度不均条件下采集的图像质量。并针对嵌入式平台AM5728进行了移植和优化,最终实现了对采集图像高速有效的增强处理。

猜你喜欢
图像增强亮度光照
节能环保 光照万家(公益宣传)
图像增强技术在超跨声叶栅纹影试验中的应用
远不止DCI色域,轻量级机身中更蕴含强悍的亮度表现 光峰(Appptronics)C800
当幻想的光照进童心世界
水下视觉SLAM图像增强研究
隐蔽的力量
虚拟内窥镜图像增强膝关节镜手术导航系统
春光照瑶乡
亮度调色多面手
基于图像增强的无人机侦察图像去雾方法