Product Surface Defect Detection Based on SURF Algorithm Research
-
摘要: 针对产品表面正确性的快速自动无损检测问题,提出了利用垂直投影法确定旋转步长来获取序列图像的方法,并将一种针对尺度旋转不变性(SIFT)改进的SURF算法应用到此方面,该算法通过计算积分图像和 Hessian 矩阵大大提高了特征点检测的速度,节省了图像匹配时所用的时间,并提高了算法的实时性。首先通过确定旋转步长来获取标准序列图库,其次通过SURF算法寻找最优匹配位置,最后通过相关度的计算来判别各区域是否有缺陷。实验表明,在对待检测图像和标准序列图像库中的5幅图像匹配时SURF算法比SIFT算法大约节省了2.6 s,显然,把SURF算法应用于序列图像中匹配可以大大节省缺陷检测时所用的时间。
-
0. 引言
由于雾天条件下悬浮颗粒对光的反射和散射作用增加了图像观测和识别的难度,导致短波红外成像系统容易丢失细节信息,图像质量和对比度降低。因此对短波红外图像进行去雾增强、提高图像可视性是十分必要的。
图像退化的程度[1]受到悬浮颗粒浓度和目标到探测器距离的影响,但这两者都很难直接从图像中获得,因此图像去雾是一个具有挑战性的问题。近年来,研究人员提出了不同的去雾方法,主要分为多信息融合和单幅图像处理[2]。信息融合方法利用额外信息进行图像恢复。Schechner等人[3]根据正交偏振角度拍摄的两张偏振图像估计了偏振光和大气光,并计算了物理模型参数。由于近红外透过率较强,Kudo等人[4]将红外图像与同一场景中的可见光图像融合,以去除可见光图像中的雾霾,但对浓雾无效。但这些方法均受到硬件和操作的限制。目前基于单幅图像恢复的主流发展方法有图像增强和图像重建。
图像增强算法是通过改变图像对比度提高图像质量。Xu等人[5]利用对比度限制的自适应直方图均衡(Contrast limited adaptive histogram equalization,CLAHE)来增强图像的对比度。多尺度Retinex(Multi-scale Retinex,MSR)理论是图像去雾领域的一种有效方法,但入射分量是通过高斯卷积估计的,这会导致边缘周围的光晕伪影[6]。基于此增强方法还包括滤波方法和小波变化等[7-8]。虽然此方法速度快且易于实现,但没有实质解决雾化问题。
图像重建算法从图像退化的物理因素出发,其中大气散射模型是图像重建领域的理论基础。Tarel等[9]提出基于中值滤波的去雾算法,此算法具有一定去雾效果但很容易丢失图像部分细节信息。He等人[10]提出基于暗通道先验的图像去雾算法,可以对雾霾图像进行有效地清晰化处理,但在生成无雾图像过程中引入了高亮区域颜色失真以及块效应。Zhu等人提出的颜色衰减先验、Li等人提出的细节先验和Singh等人提出的梯度通道先验也被应用于估计雾霾厚度[11-13]。与He算法相比,虽然这些方法具有更好的性能,但无法处理高亮失真及细节模糊问题。
本文提出了一种基于暗通道先验的短波红外图像去雾算法。通过对图像退化物理模型的分析,首先利用均值滤波得到暗通道图像数据,并基于暗通道数据对大气光进行估计;为了避免目标局部高亮或细节模糊,利用引导滤波和MSR对透射率图进行细化和增强处理,最后利用大气散射模型得到最终去雾图像。
1. 图像去雾基础理论
1.1 去雾模型
在基于图像重建的去雾算法中,使用的大气散射模型为[14]:
$$ I(x)=J(x)t(x)+A(1-t(x)) $$ (1) 式中:I(x)为输入有雾图像;J(x)为输出无雾图像;t(x)为透射率;A为大气光值。
He等人[10]提出了暗通道先验(Dark Channel Prior,DCP)算法,在大量非天空区域三颜色通道图像中至少有一个通道的像素值趋于0:
$$ J^{\mathrm{dark}}(x)=\min\limits _{y \in \mathit{\Omega}(x)}\left(\min\limits _{c \in\{r, g, b\}} J^c(y)\right) \rightarrow 0 $$ (2) 式中:Jdark(x)为暗通道图像;Jc(y)为彩色无雾图像中某个颜色分量;Ω(x)是图像中以像素点x为中心的邻域。
在公式(1)等号左右两边均取最小值滤波,得到:
$$ \begin{aligned} & \min _{y \in \mathit{\Omega}(x)}\left(\min _{c \in\{r, g, b\}} I^c(y)\right)= \\ & \underset{y \in \mathit{\Omega}(x)}{t(x) \min }\left(\min _{c \in\{r, g, b\}} J^c(y) t(x)\right)+A(1-t(x)) \end{aligned} $$ (3) 将公式(3)两边同时除以大气光值A,得到:
$$ \begin{aligned} & \min _{y \in \mathit{\Omega}(x)}\left(\min _{c \in\{r, g, b\}} \frac{I^c(y)}{A}\right)= \\ & t(x) \min _{y \in \mathit{\Omega}(x)}\left(\min _{c \in\{r, g, b\}} \frac{J^c(y)}{A}\right)+1-t(x) \end{aligned} $$ (4) 将公式(2)带入公式(4),可得透射率为:
$$ t(x)=1-\mathit{\omega} \min\limits _{y \in \mathit{\Omega}(x)}\left(\min\limits _{c \in\{r, g, b\}} \frac{I^c(y)}{A}\right) $$ (5) 式中:ω在一般情况下取0.95[10]。
将公式(5)结合公式(1)可得到去雾图像:
$$ J(x)=\frac{I(x)-A}{1-\mathit{\omega} \min\limits _{y \in \mathit{\Omega}(x)}\left(\min\limits _{c \in\{r, g, b\}} \frac{I^c(y)}{A}\right)}+A $$ (6) 由此可知若要求得去雾清晰图像J(x),则需要估计大气光值A和透射率t(x)。
1.2 Retinex理论
Edwin Land等人[15]提出了Retinex理论的计算模型,该模型计算图像中场景亮度的分布。自然场景中入射光落在反射物体上,然后被观察者接收。Retinex理论是基于落在物体上的亮度带及其对观察者的反射率这两个波段分量的乘积来表示到达传感器的光:
$$ I(x,y)=R(x,y)*L(x,y) $$ (7) 式中:I(x, y)是由传感器生成的场景图像;R(x, y)表示反射率分量;L(x, y)表示亮度分量。亮度限制动态范围,而反射率显示图像的原始外观。
2. 本文算法
本文提出了一种短波红外图像去雾算法,如图 1框图所示,所提出的方法包含3个基本阶段,首先利用改进的暗通道先验处理雾霾图像,生成对应的暗通道图像,通过此暗通道图像数据来计算大气光值;然后利用引导滤波细化透射率图,以显示雾度的深度;雾霾浓度被分离后进入增强模块,利用MSR算法对透射率图进行增强及修正;最后在大气散射模型中利用MSR增强结果和先前获得的大气光值来获得去雾图像。
2.1 暗通道算法改进
He[10]提出的暗通道算法常常用于三颜色通道的图像去雾,但由于本文研究短波红外图像,需要进一步改正算法[16]:
$$ J^{\text {dark }}(x)=\min\limits _{y \in \mathit{\Omega}(x)}(J(y)) \rightarrow 0 $$ (8) 对公式(8)左右两边最小化:
$$ \min\limits _{y \in \mathit{\Omega}(x)}(I(y))=\min\limits _{y \in \mathit{\Omega}(x)}(J(x) t(x))+A(1-t(x)) $$ (9) 为了使获得的暗通道图像获得更细节的图像特征,将公式修正如下:
$$ f(x)=\min\limits _{y \in \mathit{\Omega}(x)}(J(x) t(x))+A(1-t(x)) $$ (10) 式中:f(x)=imfilter(I(y)),即采用输入的原始短波红外图像进行均值滤波得到暗通道图像数据,由此获取到原始图像更加丰富的细节特征。
如图 2所示本文算法与He提出的引导滤波算法[16]获取的暗通道图像。引导滤波算法受最小值滤波的影响,在处理短波红外图像时细节信息特征不明显,而所提算法以改进的均值滤波得到的暗通道图像,具有更真实的灰度梯度和更具细节的图像特征。
2.2 大气光和透射率估计方法
2.2.1 估计全局大气光值A
大气光值A用于说明图像中的自然环境光[10],在雾霾天气下,假设光照最小,环境光照全面恒定。根据等式(1),从暗通道图像中存在的最高强度像素来获取大气光值A。则A可以表示为:
$$ A=\mathrm{max}(f(x)) $$ (11) 式中:f(x)为暗通道图像数据。
2.2.2 透射率细化及增强
从单个图像估计传输图是去雾方法中的重要任务之一。根据式(5)和式(11),可修改透射率为:
$$ t(x)=1-\mathit{\omega}\left(\frac{f(x)}{A}\right) $$ (12) 式中:ω=0.95。
为了进一步细化透射率图,本文引入了引导滤波[17]和MSR[18]算法。该算法解决了传统算法的颜色失真及细节模糊问题,使图像的去雾效果更加清晰。
基于引导滤波器的局部线性模型,He等人[16]假设滤波输出q是ωx窗口中导向图I的线性变换:
$$ q_i=\frac{1}{|\mathit{\omega}|} \sum_{x, i \in \mathit{\omega}_x} a_x I_i+b_x $$ (13) 式中:|ω|是ωx中的像素数;ax和bx假设为恒定的线性系数。
从∇q=a∇I可知,局部线性模型表示当窗口I处于边缘时q产生对应的边缘,(ax,bx)线性系数如下所示:
$$ a_x=\frac{\frac{1}{|\mathit{\omega}|} \sum_{i \in \mathit{\omega}_x} I_i p_i-\mu_x \bar{p}_x}{\sigma_x^2+\varepsilon} $$ (14) $$ b_x=\bar{p}_x-a_x \mu_x $$ (15) 式中:px是pi在ωx窗口的均值;μx和σx2分别是ωx窗口的均值和方差;ε表示惩罚系数ax的正则化参数。
因此经引导滤波细化后的透射率为:
$$ t_{\text {refined }}(x)=\text { guidefilter }(t(x)) $$ (16) 为增强图像对比度并保留更多的图像细节,利用MSR[17]增强优化后的透射率图像。大气光影响图像的照明,若去掉图像的照明成分,只使用反射成分,就可以实现其实际的颜色恒定性和场景细节。反射率和亮度分量可以通过取等式(7)的对数分离为两个单独的分量,如下式所示:
$$ \ln I(x, y)=\ln R(x, y)+\ln L(x, y) $$ (17) L(x, y)可以通过以下方式将归一化的函数G(x, y)与给定的图像I(x, y)的卷积来估计:
$$ \mathrm{R}_{\mathrm{SSR}}(x, y)=\ln I_{\text {input }}(x, y)-\ln \left[I(x, y)^* G(x, y)\right] $$ (18) 式中:Iinput(x, y)是未处理的输入模糊图像。该归一化函数通常是高斯函数,表示为:
$$ G\left( {x,y} \right) = k{{\text{e}}^{ - \frac{{{x^2} + {y^2}}}{{2{\sigma ^2}}}}} $$ (19) $$ k = \frac{1}{{2{\text{π }}{\sigma ^2}}} $$ (20) 式中:σ是比例因子;k可以通过其归一化来确定。σ越大,光照越均匀。当σ较小时,动态范围被更好地压缩。通常,考虑3个尺度,包括范围在0<σ<50之间的小尺度、范围在在50≤σ<100之间的中尺度和范围在σ≥100之间的大尺度。
等式(18)显示了SSR的表达式。SSR有一些局限性,通过使用扩展版本来解决这些局限性,多尺度Retinex(Multi-scale retinex,MSR)[18]。MSR即是不同加权单尺度的总和,计算公式如下:
$$ {R_{{\text{MSR}}}}\left( {x,y} \right) = \sum\limits_{n = 1}^N {{\mathit{\omega} _n} \cdot {R_{{\text{SSR}}}}\left( {x,y} \right)} $$ (21) 式中:RMSR(x, y)是变换后的图像;N是所使用的比例的数量。ωn表示权重,所有权重之和必须等于1。
利用此MSR算法进一步对透射率图进行细节增强处理,如下式所示:
$$ t_{\text {last }}(x)=\operatorname{MSR}\left(t_{\text {refined }}(x)\right) $$ (22) 如图 3(a)为修正前透射率与灰度级的关系,图 3(b)为修正后透射率与灰度级的关系。由图可知在短波红外图像灰度级范围内,修正后的透射率与灰度级关系曲线图对t(x)进行了修正和约束,使透射率值在0~255灰度级范围内趋于稳定。
根据已知修正后的透射率、大气光值和短波红外雾霾图像,带入式(6)求得去雾图像J(x),如下式所示:
$$ J\left( x \right) = \frac{{I\left( x \right) - A}}{{\max \left( {{t_{{\text{last}}}}\left( x \right),{t_0}} \right)}} + A $$ (23) 为维持场景中的最小雾度,建立了值为t0的阈值,避免去雾结果不自然现象。
3. 实验结果及分析
本文使用短波Xeneth v2.5系列探测器采集实际雾霾图像。图 4~6所示为本文算法与其它算法的去雾实验对比结果。本次实验运行环境为64位Windows10系统,NVIDA RTX a6000 GPU和64 GB RAM,仿真平台为MATLAB 2017a。
3.1 主观视觉效果
图 4~6所示为3组不同雾霾场景的短波红外图像,为了验证本文算法的有效性,将其与传统的He算法[10]与近几年算法[19-21]进行比较。图 4为雾霾场景1的图像算法对比图,其中图 4(a)为原始图像,雾霾天气下,由于悬浮在大气中的颗粒物和污染物的存在,图像对比度很低,远处建筑及近处树木细节模糊不清,图 4(b)~(f)分别为He算法[10]、Liu X算法[19]、Ehsan S M算法[20]、Yan S算法[21]与本文所提算法的去雾效果图。由去雾结果图 4(b)可知,经过He算法增强后的图像达到了去雾并清晰化图像的效果,图像对比度有所提高,但是观察该去雾图像红色框线部分可知,远处的建筑出现过度增强以及局部高亮现象,树木的细节及边缘特征丢失,该去雾效果是由于He算法中传统暗通道算法产生的天空等高亮区域的颜色失真。从图 4(c)可以看出,图像增强效果有所改善,能够显示树木的一些细节信息,但远处的建筑仍然存在过度高亮现象。Ehsan S. M.算法的增强效果如图 4(c)所示,该算法对于远处建筑的局部高亮问题有所改善,能够看出建筑内灯光信息,但却忽略了树木的细节特征。Yan S.算法如图 4(e)所示,该算法较好地处理了远处建筑区域,但建筑及树木的一些细节特征丢失,增强效果不显著。图 4(f)为本文提出的算法,本文算法不仅避免了建筑的局部高亮,而且很好地增强了树木的细节特征信息,增强效果显著。
图 5为雾霾场景2的图像算法对比图,其中图 5(a)为原始雾霾图像,由去雾结果图 5(b)可知,经过He算法增强后的图像整体偏暗,红色框线内的天线以及电动车信息丢失。从图 5(c)~(d)可以看出,算法增强效果并不显著,虽然达到了去雾效果,但是图像过暗且图像细节信息丢失。Yan S算法如图 5(e)所示,图像去雾效果获得了较大改善,但细节特征还待进一步增强。图 5(f)为本文提出的算法,本文算法较于其他算法达到了更好的去雾效果,不仅完全消除了雾霾,而且图像细节信息丰富,整体视觉效果最佳。
图 6为雾霾场景3的图像算法对比图,其中图 6(a)为原始雾霾图像,图 6(b)~(e)为其他算法去雾效果图。由图可知,虽然这些算法达到了一定的去雾效果,但观察图中红框内信息可知去雾结果不清晰,树木的增强效果不明显。而图 6(f)所示本文算法,去雾效果明显且细节丰富,得到了最好的去雾效果。
3.2 客观评价指标
本文算法不仅在视觉上具有较好的效果,在客观评估方面还成功地提高了效率。表 1~3客观地显示了本文算法与其他算法的比较。
为验证本文算法的有效性,使用峰值信噪比(Peak Single to Noise Ratio,PSNR)、平均梯度、信息熵[22]这3项指标对多种算法的实验结果进行比较分析。峰值信噪比用于评价图像或视频质量。它通过比较原始图像与经过处理后的图像之间的均方误差(MSE)来评估质量。更大的PSNR值表明图像失真越小:
$$ {\text{PSNR}} = 10 \cdot \lg \frac{{{\text{MA}}{{\text{X}}^2}}}{{{\text{MSE}}}} $$ (24) 式中:MAX表示输入图像的像素最大值;MSE为原始信号与处理后信号之间的均方误差。
平均梯度(Average Gradient, AG)反映图像不同区域之间的纹理信息、边缘或颜色过渡,平均梯度越高表明图像存在更多的边缘细节信息及纹理,其数学表达式如下:
$$ {\text{AG}} = \frac{1}{{MN}}\sum\limits_m^M {\sum\limits_n^N {\sqrt {{{\left( {\frac{{\partial I\left( {m,n} \right)}}{{\partial m}}} \right)}^2} + {{\left( {\frac{{\partial I\left( {m,n} \right)}}{{\partial n}}} \right)}^2}} } } $$ (25) 式中:M和N分为为图像的长和宽;m和n为对应像素点的横纵坐标。
信息熵(Information Entropy, IE)反映图像中平均信息量的多少,越大的信息熵值表明图像所含的信息量越丰富,信息熵的表达式如下:
$$ H = - \sum\limits_{k = 0}^{L - 1} {p\left( k \right){{\log }_2}p\left( k \right)} $$ (26) 式中:L是图像灰度最大值;p(k)为图像灰度值出现的概率。
如表 1~3所示,对比在不同的雾霾场景下的图像去雾算法客观评价指标。与其他算法相比,本文算法在峰值信噪比、平均梯度、信息熵这3个评价指标方面均为最高。因此本文算法在主观和客观方面均得到了较好的验证,不仅有效地去除了短波红外图像中的雾度,还增强了其视觉效果和细节信息。
4. 结论
针对传统的暗通道先验算法存在的局部高亮以及细节信息丢失等问题,本文提出了一种基于暗通道先验的短波红外图像去雾算法。该算法首先对输入雾霾图像进行改进的暗通道处理,进而得到暗通道图像数据,然后采取引导滤波及MSR对透射率图进行细化及增强处理,最后反演出去雾图像。在不同的雾霾场景下,将本文提出的算法与其他算法的实验结果进行比较分析,在主观视觉效果上本文算法能够对短波红外雾霾图像进行清晰化处理且能够更好地增强图像细节,并从客观评价指标方面证明了该算法的可靠性。本文提出的算法不仅能够对短波红外图像进行清晰化去雾处理,而且能够在图像细节方面得到很好的增强。
-
期刊类型引用(1)
1. 程知,陶寅,邓灶辉,高丽萍,沐超,杜丽丽. 融合残差密集块和对比正则化的单幅图像去雾方法研究. 合肥大学学报. 2025(02): 98-106+122 . 百度学术
其他类型引用(3)
计量
- 文章访问数: 65
- HTML全文浏览量: 19
- PDF下载量: 9
- 被引次数: 4