浙江大学学报(工学版), 2020, 54(10): 1906-1914 doi: 10.3785/j.issn.1008-973X.2020.10.006

计算机技术

基于ViBe的端到端铝带表面缺陷检测识别方法

叶刚,, 李毅波,, 马逐曦, 成杰

End-to-end aluminum strip surface defects detection and recognition method based on ViBe

YE Gang,, LI Yi-bo,, MA Zhu-xi, CHENG Jie

通讯作者: 李毅波,男,副教授,博导. orcid.org/0000-0002-2408-9148. E-mail: yibo.li@csu.edu.cn

收稿日期: 2019-12-11  

Received: 2019-12-11  

作者简介 About authors

叶刚(1993—),男,硕士生,从事机器视觉的研究.orcid.org/0000-0001-5359-5042.E-mail:yeg2020@163.com , E-mail:yeg2020@163.com

摘要

针对铝带表面缺陷高精度检测要求以及传统算法识别率不佳的问题,提出端到端的表面缺陷检测与识别方法.从铝带表面初始图像序列中快速计算出平均图像,视为无缺陷背景图像,用于初始化ViBe算法的背景模型.采用ViBe算法从当前图像中分割出缺陷区域,对缺陷区域二值图像进行中值滤波和形态学运算,以去除噪声点和修补边缘,实现缺陷区域的准确提取.利用当前图像实时更新ViBe背景模型,以增加对光照变化的适应能力.提取缺陷外接矩形区域图像,归一化后输入到训练好的卷积神经网络中进行识别分类,得到分类结果.实验结果表明,提出方法的缺陷检出率为93.02%,缺陷识别率为99.86%,具有较好的应用价值.

关键词: 铝带表面缺陷 ; 缺陷检测 ; 缺陷识别 ; ViBe ; 卷积神经网络(CNN)

Abstract

An end-to-end surface defects detection and recognition method was proposed to solve the problem of high-precision detection of aluminum strip surface defects and the poor recognition rate of traditional algorithms. The average image was quickly calculated from the initial image sequence of aluminum strip surface, which was regarded as defect-free background image and was used to initialize the background model of the ViBe algorithm. The ViBe algorithm was used to segment the defect region from the current image. Median filtering and morphological operation were performed on the binary image of defect region to remove noise points and repair edges in order to accurately extract the defect region. The current image was used to update the ViBe background model in real time in order to increase the adaptability of the algorithm to illumination changes. The image of external rectangular region of the defect was extracted, normalized, and input into the trained convolutional neural networks for recognition and classification. The classification result was obtained. The experimental results show that the proposed method has a defect detection rate of 93.02% and a defect recognition rate of 99.86%, which has good application value.

Keywords: surface defects of aluminum strip ; defects detection ; defects recognition ; ViBe ; convolutional neural network (CNN)

PDF (1825KB) 元数据 多维度评价 相关文章 导出 EndNote| Ris| Bibtex  收藏本文

本文引用格式

叶刚, 李毅波, 马逐曦, 成杰. 基于ViBe的端到端铝带表面缺陷检测识别方法. 浙江大学学报(工学版)[J], 2020, 54(10): 1906-1914 doi:10.3785/j.issn.1008-973X.2020.10.006

YE Gang, LI Yi-bo, MA Zhu-xi, CHENG Jie. End-to-end aluminum strip surface defects detection and recognition method based on ViBe. Journal of Zhejiang University(Engineering Science)[J], 2020, 54(10): 1906-1914 doi:10.3785/j.issn.1008-973X.2020.10.006

铝带作为铝加工的主要产品之一,广泛应用于食品、医药、包装、电力电子、交通运输和航空航天等领域[1-2].受加工设备和生产工艺等因素的影响,铝带在生产加工中难免出现划痕、孔洞、脏污等表面缺陷.表面缺陷的存在,极大地影响了铝带的外观和质量以及下游产品的使用性能.在铝带的生产加工过程中,对表面缺陷进行检测和识别显得尤为重要.

近年来,伴随着数字图像处理、人工智能与模式识别等领域的不断创新发展,机器视觉检测识别技术以系统构成相对简单、部署方便、成本低廉、可识别的缺陷种类多、准确率高等优点,逐渐成为工业检测的主流解决方案[3-5]. 国内外研究人员对机器视觉应用于缺陷检测与识别方面进行了大量研究,提出的缺陷检测与识别方法大致可以分为3类:图像处理联合传统机器学习方法、纯深度学习方法以及图像处理联合深度学习的方法. 使用图像处理联合传统机器学习的方法进行缺陷检测识别,主要有图像处理、特征提取和分类器分类3大步骤. Zhao等[6]针对冷轧带钢,采用基于模糊集和信息熵理论的图像算法实现缺陷的分割,提取了缺陷的多种特征,基于模糊支持向量机实现缺陷分类. Yang等[7-8]利用高斯背景重构和图像差分法得到带钢表面缺陷区域,提取缺陷区域灰度、形状和纹理3大类共41种原始特征,利用主成分分析(principal component analysis,PCA)降维后,输入到反向传播(back propagation,BP)神经网络,实现缺陷的分类. 图像处理联合传统机器学习的方法尽管在某些应用场景下取得了较好的效果,但这些算法需要人为地提取特征,而人为提取特征的有效性严重依赖于算法设计者的先验知识,且被认为是费时费力的[9-11]. 随着深度学习在目标检测、语义分割等方向的不断突破,部分学者开始将纯深度学习方法用于工业缺陷检测和识别. Li等[12]使用改进后的YOLO (you only look once)网络[13],进行带钢表面缺陷的实时检测和识别.该方法效率高,能够满足实时检测需求,但不适合检测铝带上面积较小的孔洞缺陷. Tao等[14]提出级联自编码器结构,用于缺陷的分割和定位,通过紧凑型卷积神经网络(convolutional neural networks,CNN)对缺陷区域进行识别分类. 该算法在复杂的纹理背景下能够表现出较好的分割效果,但模型复杂,训练耗时较长,识别率和效率有待提高. 对于图像处理联合深度学习的方法,Yi等[15]采用对称环绕显著图构造与图像分割技术相结合分割出带钢表面缺陷,利用CNN实现7种缺陷的分类,分类准确率达到99.29%.

鉴于以上3类方法的优缺点,综合考虑缺陷分割精度和分类准确率,结合铝带表面状况,本文采用图像处理联合深度学习的思路展开研究. 1)引入视觉背景提取器(visual background extractor, ViBe)算法[16-17],以快速分割出缺陷区域. 为了避免可能出现的误检,提出结合平均背景法,对ViBe算法进行改进. 2)在分割出缺陷区域后,将缺陷的外接矩形区域原图像作为CNN的输入,由CNN自动学习缺陷特征并将缺陷类别作为输出,形成端到端的检测识别流程,避免了传统算法特征提取与缺陷分类相分离的缺点.

1. 基于ViBe的缺陷检测算法

1.1. ViBe算法原理

ViBe(visual background extractor)算法是由Barnich等[16-17]提出的通用的、像素级的背景建模和前景检测算法. ViBe算法被证明是一种优秀的算法,它能够自适应环境光照的缓慢变化,且相对于高斯混合模型和codebook方法,具有算法原理简单、分割效果更优、检测效率更高等优点. ViBe算法虽然是面向自然场景提出的检测方法,但若将缺陷区域视为前景、无缺陷区域视为背景,则ViBe算法可以应用于铝带表面缺陷检测.

ViBe算法主要包含以下3部分:像素点建模、单帧初始化和背景模型更新机制.

1)像素点建模. ViBe算法对图像上的每一个像素都建立一个背景模型,每个背景模型都是包含 $N$个元素(样本)的集合. 对于图像上任一点 $x$,令 $v(x)$表示像素, ${v_i}$为背景模型中的任一样本,则该点的背景模型 $M(x)$可以表示为

$M(x) = \{ {v_1},{v_2},\cdots,{v_i},\cdots,{v_N}\} .$

ViBe根据 $M(x)$来判断当前像素 $v(x)$是否属于背景. 定义 ${S_R}(v(x))$表示在色彩空间以像素 $v(x)$为中心、以 $R$为半径的球体,计算球体与背景模型的交集的基数(即交集中包含样本点的个数),记为Card. 如图1所示为二维欧几里得色彩空间 $({C_1},{C_2})$,交集中包含背景模型的2个样本点 ${v_2}$${v_4}$,因此Card = 2. 当Card大于等于给定的阈值时,则认为 $v(x)$属于背景,否则为前景. ViBe算法的二值化公式为

图 1

图 1   ViBe背景点判别模型[17]

Fig.1   Discriminant model of ViBe background points


${\rm{bin}} (x) = \left\{ {\begin{array}{*{20}{c}} {0,\;{\rm{Card}}\; \{ {S_R}(v(x)) \cap M(x)\} \geqslant {C_{\min }}} ;\\ {1,\;{\rm{Card}}\; \{ {S_R}(v(x)) \cap M(x)\} < {C_{\min }}}. \end{array}} \right.$

式中: ${C_{\min }}$为给定的阈值, ${\rm{bin}} (x)$为像素 $v(x)$经ViBe算法二值化后对应的像素.

2)单帧初始化. 初始化是建立背景模型的过程,ViBe初始化方法非常高效,仅用一帧图像就能完成模型初始化.具体方法如下:对于图像上任一像素点 $x$,随机选取邻域内的像素作为背景模型的样本:

${M^0}(x) = \{ {v^0}(y|y \in {N_{\rm{G}}}(x))\} .$

式中:上标0表示初始时刻; ${N_{\rm{G}}}(x)$表示 $x$像素的8邻域; ${v^0}(y)$为从8领域中随机取的像素,共取值 $N$次.

3)背景模型更新机制. 为了自适应光照变化,保证算法的准确性,背景模型需要动态更新. 在实际情况下,检测每幅新的图像时都去更新每个背景模型中的每个样本值,是非常低效和不必要的. ViBe算法采取结合保守更新和空间信息的特殊更新机制,它包含无记忆更新策略、随机时间二次取样、随机邻域传播机制3个部分.

与传统先进先出的替换策略不同,ViBe背景模型中的每个样本被随机选中替换的概率是相等的,均为 $1/N$. 经过时间 $\Delta$t,每个样本仍被保留在背景模型中的概率[17]

$P(t,t + {\Delta} t) = \exp\; \left[ - \ln\; \left(\frac{N}{{N - 1}}\right){\Delta} t\right].$

从式(4)可知,这种无记忆更新策略保证了背景模型中样本的寿命呈指数衰减,模型更新策略更优.

设时间二次采样因子为 $\phi $,在 $t$时刻,当像素 $v(x)$被判定为背景时,它被用于更新 $x$点的背景模型 $M(x)$的概率是 $1/\phi $. $v(x)$被用于更新邻居点的背景模型样本值的概率为 $1/\phi $.

ViBe采用时间二次采样,实现了有限的样本能够近似表示无限的时间窗口,使得算法在仅使用少量样本和较少内存消耗的情况下,保证算法的准确性;采用随机邻域传播机制,保证了算法的空间一致性.

1.2. ViBe算法分析

ViBe算法仅用第1帧初始化背景模型,该方法虽然简单、迅速,但是忽略了第1帧中包含前景(待检测的运动目标)的可能. 当第1帧中包含前景时,ViBe算法会错误地使用前景像素初始化背景模型,在随后的图像序列中运动前景离开原位置,该处的真实背景无法与背景模型相匹配,导致真实背景点被错误地检测为前景点,形成鬼影[18].

根据ViBe算法初始化方法和更新机制可知,鬼影产生的原因可以分为2种. 第1种发生在初始化阶段,原因是用于初始化ViBe算法的图像中包含前景;第2种发生在后续检测阶段,若相机视野中存在长时间静止的前景,ViBe的更新机制会将前景逐渐吸收为背景,当静止的前景突然运动时,会在原位置出现鬼影.

虽然更新机制可以使鬼影在随后的图像中逐渐消除,但是鬼影的自动消除需要一个过程,在该过程中ViBe会出现误检,因此需要对ViBe算法进行改进.陈亮等[18-19]分别提出抑制和快速消除鬼影的改进方法,但这些方法额外增加了检测阶段的运算和判断,牺牲了ViBe算法的检测速度.

与自然场景不同,在工业场景下,对铝带表面成像是发生在铝带高速运动过程中的,一般情况下在相机视野里铝带表面缺陷的大小、形状、位置是不断变化的,因此在检测阶段几乎不存在相对静止的缺陷. 这一事实表明,检测阶段不会出现前景(缺陷)被吸收为背景的情况,因此检测过程中鬼影不会重新出现,对鬼影的抑制可以在ViBe算法初始化阶段完成.

1.3. ViBe算法改进

提出结合平均背景法的ViBe改进方法.总体思想如下:1)取前 $Q$幅铝带表面图像求平均值和绝对值平均差,得到这 $Q$幅图像的平均背景图和平均绝对值差分图;2)采用平均背景图初始化ViBe算法背景模型,为了使初始背景模型 ${M^0}(x)$更加准确地反映真实背景,随机选取 ${M^0}(x)$中的部分样本值进行一定范围的缩放调整;3)使用调整后的 ${M^0}(x)$作为ViBe算法的初始背景模型,进行缺陷检测和分割. 具体做法如下.

1)计算图像序列前 $Q$幅图像的平均值和绝对值平均差,即

$\bar v(x) = \frac{1}{{Q - 1}}({v_2}(x) + \cdots + {v_j}(x) + \cdots + {v_Q}(x)),$

$ \begin{split} \bar d(x) =& \frac{1}{{Q - 1}}(\left| {{v_2}(x)} \right.\left. { - {v_1}(x)} \right| + \left| {{v_3}(x)} \right.\left. { - {v_2}(x)} \right| + \cdots + \\ &\left| {{v_j}(x)} \right.\left. { - {v_{j - 1}}(x)} \right| + \cdots + \left| {{v_Q}(x)} \right.\left. { - {v_{Q - 1}}(x)} \right|). \end{split} $

式中: ${v_j}(x)$为第 $j$幅图像在 $x$点处的像素, $j \in [1,Q]$$\bar v(x)$$\bar d(x)$分别为 $Q$幅图像在 $x$点处像素的平均值和绝对值平均差.

从式(5)可知,由于每张图像上缺陷的有无、大小形状以及位置分布不同,通过多幅图像求平均值,缺陷区域像素在平均背景图里得到了极大地削弱,可以认为平均背景图近似等于真实背景图.用公式表述如下:若像素 ${v_j}(x)$满足

$\bar v(x) - \bar d(x) < {v_j}(x) < \bar v(x) + \bar d(x),$

则认为 ${v_j}(x)$属于背景值.考虑到 $Q$幅图像中难免存在前景(缺陷),对平均背景值有一定的影响,因此对式(7)表示的范围进行缩放:

$\bar v(x) - \lambda \bar d(x) < {v_j}(x) < \bar v(x) + \lambda \bar d(x).$

式中: $\lambda $为缩放因子.

由式(8)可知,某个像素点处的真实背景值分布在一个范围之内,平均背景图只是真实背景的近似. 在使用平均背景图初始化ViBe背景模型之后,为了使初始背景模型更加准确地反映真实背景,随机选取初始背景模型中的部分样本值进行进一步的调整.

对于式(1)表示的 $x$点处初始背景模型 ${M^0}(x)$,从 $N$个样本值中随机选取 $T$个样本值进行调整:

$v_t^0 = \left\lfloor {{\rm{Random}}\;({v_{\min }}(x),{v_{\max }}(x))} \right\rfloor .$

式中: $v_t^0$为被选中并且作出调整后的单个样本值; ${\rm{Random}}\left( \cdot \right)$表示在该函数的参数开区间范围内取随机数; $\left\lfloor \cdot \right\rfloor $函数表示向下取整; ${v_{\max }}(x)$${v_{\min }}(x)$分别为 $x$点处最大和最小的真实背景值,

${v_{\max }}(x) = \bar v(x) + \lambda \bar d(x),$

${v_{\min }}(x) = \bar v(x) - \lambda \bar d(x).$

2)基于改进后的背景模型,根据式(2)进行图像的缺陷检测和分割.

2. 基于CNN的缺陷分类算法

在使用ViBe算法分割出缺陷区域后,提取缺陷外接矩形区域原图像,归一化至 $256 \times 256$大小后输入到训练好的卷积神经网络(CNN)中,由CNN自动提取特征并输出缺陷类别. 这种端到端的检测识别方法避免了传统方法特征提取与缺陷分类分离的影响,实现了对整体目标函数的优化[15]. 本文算法的流程如图2所示,包括线下CNN模型训练和在线缺陷检测与识别2大模块组成.

图 2

图 2   缺陷检测与识别算法流程图

Fig.2   Flow chart of defects detection and recognition algorithm


2.1. CNN理论

近年来,在众多图像分类任务上,基于CNN的深度学习算法在准确率方面超过了传统机器学习算法,逐渐成为图像分类的主流解决方法. 典型的CNN一般包含卷积层、池化层和全连接层.

卷积层由若干个特征图组成,第 $l$层的第 $j$个特征图矩阵 ${{x}}_j^l$可由前一层的若干个特征图作卷积运算并经过激活函数输出得到,可以表示[20-21]

${{x}}_j^l = f\left(\mathop \sum \limits_{i \in {\rm{Ma}}{{\rm{p}}_j}} {{x}}_i^{l - 1} * {{k}}_{ij}^l + {{b}}_j^l\right).$

式中: ${\rm{Ma}}{{\rm{p}}_j}$为输入特征图的组合; $ * $为卷积运算; ${{k}}_{ij}^l$为卷积核矩阵; ${{b}}_j^l$为偏置项; $f( \cdot )$函数为神经元激活函数,通常为ReLU函数、sigmoid函数等.

池化层又称为采样层,对输入的特征图进行采样,能够在减少数据量的同时保留特征图上的有用信息. 根据采样函数的不同,通常有最大值采样和平均值采样. 采样过程[20]可以表示为

${{x}}_j^l = f\left({{\beta}} _j^l{\rm{down}} \left({{x}}_j^{l - 1}\right) + {{b}}_j^l\right).$

式中: ${\rm{down}}\left( \cdot \right)$函数为采样函数, ${{\beta}} _j^l$为乘性偏置.

在若干个卷积层和池化层之后一般是全连接层,全连接层是密集连接层,每个神经元均与下一层的所有神经元相连. 第 $l$层全连接层特征向量 ${{{x}}^l}$[21]可以表示为

${{{x}}^l} = f({{{w}}^l}{{{x}}^{l - 1}} + {{{b}}^l}).$

式中: ${{{w}}^l}$为权值矩阵, ${{{b}}^l}$为偏置向量.

在本文的缺陷分类任务中,CNN模型的最后输出层为逻辑回归层,网络输出的每个节点表示输入图像所属类别 $i$的概率:

$\begin{split} & P(Y = i|{{x}},{{\omega}} ,{{b}}) = {{\rm{softmax}} _i}({{\omega}} {{x}} + {{b}}) = \\ &\quad\quad\frac{{\exp\;({{{\omega}} _i}{{x}} + {b_i})}}{{\displaystyle\mathop \sum \limits_j [\exp \;({{{\omega}} _j}{{x}} + {b_i})]}} . \end{split} $

式中: ${{\omega}} $为最后一层的权参数, ${{x}}$为最后一层的输入向量, ${{b}}$为相应的偏置参数向量.

CNN可以使用BP算法训练,对于样本数量为 $m$的训练集,损失函数可以使用交叉熵[21]表示为

$J = - \frac{1}{m}\mathop \sum \limits_{j = 1}^m \mathop \sum \limits_{i = 1}^k\;y_{ji}\;\ln\;P_{ji}.$

式中:m为样本数量;k为类别数量;y $_{ji}$为第j个样本的标签,若样本类别为i,则 $y_{ji}$=1,否则为0; $P_{ji}$为神经网络的输出中第j个样本为类别i的概率.

在作分类测试时,CNN的预测值为

${y_{{\rm{pred}}}} = \mathop {\arg \max }\limits_i P(Y = i|{{x}},{{\omega}} ,{{b}}).$

2.2. 基于VGG16的缺陷识别模型

VGGNet[22]是由牛津大学Visual Geometry Group提出的经典的CNN模型,VGG16是VGGNet的一种,整个网络由5个卷积块和3个全连接层组成,卷积块均由 $3 \times 3$卷积层和 $2 \times 2$最大池化层组成. 相比于使用 $7 \times 7$卷积层或 $5 \times 5$卷积层,使用多个较小的 $3 \times 3$卷积层的优势如下:一方面可以有更少的参数;另一方面可以在不影响感受野的情况下增加映射函数的非线性,从而增加网络的判别能力[21].

VGG16结构简单、网络层数合适,适用于铝带缺陷分类任务. 本文的缺陷识别模型结构如图3所示,在VGG16基础上通过修改VGG16网络顶层的全连接层,使之适用于铝带表面缺陷的分类. 为了避免过拟合,引入Dropout,将Dropout设置为0.5.

图 3

图 3   基于VGG16的缺陷识别模型结构

Fig.3   Structure of defects recognition model based on VGG16


3. 实验结果与分析

3.1. 实验平台

图像采集平台如图4所示,包含分辨率为4 096像素的工业线阵相机、镜头、高亮度线光源、电控操作台及可高速运转的铝带. 该实验以线阵相机采集的含有划痕、凹坑、黑点等5类常见的冷轧铝带表面缺陷图像作为实验材料,以Intel Core i5 CPU、8 GB运行内存的计算机作为算法验证平台,对该算法进行实验分析.

图 4

图 4   图像采集平台

Fig.4   Image acquisition platform


3.2. 缺陷数据集的建立

由于目前尚无共享的铝带表面缺陷数据集,使用在图像采集平台上收集的缺陷图像建立数据集. 数据集包含黑点、划痕、凹凸包等5类常见缺陷,共3 499幅 $256 \times 256$大小的图像,数据集中的样本数量分布如图5所示. 图中,M为缺陷图像样本的数量. 在网络训练之前,将数据集中每类缺陷样本分别按60%、20%、20%的比例划分为训练集、验证集和测试集. 为了减轻CNN模型在小样本集上存在的过拟合问题,增加模型的泛化能力,在训练过程中对训练集样本使用数据增强技术,采用旋转、平移、缩放、水平翻转等手段,对训练集样本数量进行扩充.

图 5

图 5   缺陷数据集样本分布

Fig.5   Sample distribution of defects dataset


3.3. 缺陷检测实验与分析

3.3.1. 实验参数

在缺陷分割部分,不同的参数对分割算法的效率和效果有一定的影响,本文所用参数如下. 1)ViBe的每个背景模型包含的样本数量 $N$. $N$太小会导致分割效果不理想, $N$太大则需要较多的计算成本和内存消耗,本文取 $N = 20$;2)球体半径 $R$,取 $R = 20$. 3)时间二次采样因子 $\phi $,取 $\phi = 16$. 4)将被检测像素判定为背景像素的阈值 ${C_{\min }}$,取 ${C_{\min }} = 2$. 5)求取平均背景图所需的图像数量 $Q$. $Q$越大求得的平均背景图在理论上越接近真实背景,但使用过大的 $Q$增加了计算成本和时间成本, $Q$的选取须结合铝带表面纹理复杂程度、铝带头部缺陷数量和严重程度,本文实验中取 $Q = 20$. 6)缩放因子 $\lambda $,本文取 $\lambda = 4$. 7)使用平均背景图初始化ViBe背景模型后需要随机调整的样本数量 $T$,取 $T = 2$.

3.3.2. 缺陷检测实验过程与结果

该实验以图像采集平台上采集的300幅铝带表面图像作为实验材料. 采用本文改进方法初始化ViBe,即取前20幅图像求得平均背景图,使用平均背景图初始化ViBe背景模型,随机选取初始背景模型中的2个样本值进行调整,对剩余图像进行缺陷检测. 实验中对分割得到的二值图像增加了中值滤波和形态学运算,以避免噪声对缺陷区域检测造成不良的影响[23]. 考虑到实际情况下对生产加工精度的要求,常对面积<6 mm2的细微缺陷不判定为生产缺陷,故设置面积阈值,忽略面积<6 mm2的缺陷区域,对面积≥6 mm2的缺陷区域生成外接矩形,提取外接矩形区域原图像供后续对缺陷进行识别分类. 实验结果示例如表1所示.

表 1   缺陷检测结果示例

Tab.1  Examples of defects detection results

类别 黑点 凹凸包 凹坑 脏污 划痕
缺陷原图
分割结果
缺陷轮廓
缺陷外接矩形

新窗口打开| 下载CSV


3.3.3. 缺陷检测实验结果分析

  1)主观评价. 由表1可知,从整体效果来看,本文算法对5种常见的缺陷都能够较好地检出,尤其对除脏污外的4种缺陷分割完整度较高,检测效果较好. 对于较难检测的脏污缺陷,虽然分割完整度有进一步提高的空间,但检测结果能够满足实际要求.

为了说明本文改进算法对缺陷检测的有效性和优越性,分别将本文改进算法与原ViBe算法[17]和文献[7]算法进行对比实验.

将本文改进算法与原ViBe算法[17]作实验对比,验证本文改进算法对鬼影抑制的有效性. 如图6所示,为了直观地展示对比效果,使用图6(a)所示的1幅含有黑点缺陷的图像初始化ViBe背景模型,采用图6(b)所示的前20幅图像的平均背景图初始化本文算法,待检测的图像示例如图6(c)所示,分割结果如图6(d)(e)所示. 由图6(d)(e)可以看出,原ViBe算法和本文改进算法都能够对划痕缺陷进行有效检测. 由于初始化原ViBe算法的图像中包含黑点缺陷,导致在图6(d)中出现了黑点的鬼影,造成了误检. 图6(e)显示,本文改进算法克服了原ViBe算法可能出现鬼影的缺点,对鬼影的抑制效果显著,且在初始化阶段就能完成,避免了后续的一系列误检. 以上分析表明,利用本文改进算法可以有效地抑制鬼影,能够对缺陷区域进行有效且准确的分割.

图 6

图 6   不同算法的分割效果对比

Fig.6   Comparison of segmentation effects of different algorithms


将本文改进算法与文献[7]算法进行对比实验,待检测的缺陷图像为图6(c)所示的图像,检测结果如图6所示. 对比图6(e)(f)可见,本文算法的分割效果比文献[7]算法的分割效果更佳,对划痕区域的分割完整度更高,对伪缺陷和噪声的抗干扰能力更强.

2)客观评价. 采用缺陷检出率 ${P_{\rm{A}}}$指标,评价本文改进算法和文献[7]算法从图像中检测出缺陷的准确性. 缺陷检出率的计算公式为

${P_{\rm{A}}} = S/{{{S_0}}}.$

式中: $S_0$为待检测的图像中实际包含的缺陷总数量, $S$为算法正确检测出的缺陷数量.

由上述定义可知, ${P_{\rm{A}}}$越大,表明算法的效果越好. 对100幅铝带表面图像分别使用本文改进的ViBe算法和文献[7]算法进行缺陷检测,计算上述指标:本文改进算法的缺陷检出率为93.02%,文献[7]算法的缺陷检出率为88.37%.

本文改进算法的缺陷检出率大于93%,且高于文献[7]算法,表明本文改进算法的效果比文献[7]算法好,缺陷检出率较高,漏检较少出现. 本文改进算法出现了少部分漏检,原因是铝带上存在一些非常轻微的划痕缺陷,灰度与背景相差较小,本文改进算法对这类轻微划痕缺陷的检测效果有待提高.

3.4. 缺陷分类实验与分析
3.4.1. CNN模型训练细节

为了更有效地训练CNN模型,采用模型微调(fine-tuning)方法. 加载VGG16卷积基网络在ImageNet[24]数据集上预训练好的权重参数,将卷积块1~4冻结,在本文铝带缺陷数据集上对卷积块5和全连接层进行联合训练. 采用自适应矩估计(adaptive moment estimation, Adam)优化器、分类交叉熵损失函数(categorical cross entropy),将初始学习率设为0.000 1. 当连续2轮迭代模型性能没有提升时,自动将学习率衰减为原来的0.5倍. 设置batch size为64,训练25个轮次(epoch)后模型性能基本不再提升,模型在验证集上的最高准确率达到99.81%,训练期间的精度曲线和损失曲线如图7所示. 图中,E为迭代轮次,A为精度,L为损失值. 在训练完成后,保存在验证集上表现最优的模型用于缺陷识别分类.

图 7

图 7   CNN训练期间的精度曲线和损失曲线

Fig.7   Accuracy curve and loss curve during CNN training


3.4.2. 缺陷分类实验与结果分析

该实验对测试集5类共699幅缺陷图像进行分类测试,结果如表2所示. 表中,第1列是实际的缺陷类别,每一行数据对应的是CNN预测结果的统计值,Pacc为正确率. 观察表2的数据可知,对凹凸包、凹坑和脏污等4种类型的缺陷取得了最好的分类结果,准确率达到100%,5种缺陷的平均识别率为99.86%,整体效果较好. 数据表明,采用的基于VGG16的识别模型及网络训练方法对于铝带表面缺陷分类问题是非常有效的.

表 2   缺陷分类实验结果的混淆矩阵

Tab.2  Confusion matrix of defects classification experimental results

缺陷类别 黑点 凹凸包 凹坑 脏污 划痕 Pacc / %
黑点 98 0 0 1 0 98.99
凹凸包 0 212 0 0 0 100
凹坑 0 0 182 0 0 100
脏污 0 0 0 92 0 100
划痕 0 0 0 0 114 100

新窗口打开| 下载CSV


4. 结 论

(1)将ViBe算法应用到铝带表面缺陷检测中,结合平均背景法改进了ViBe 初始化方法. 通过对比实验,证明了本文改进算法能够有效避免原ViBe算法可能造成的误检,在缺陷检出率方面具有优于同类算法的准确性和可靠性.

(2)在自制数据集上,对卷积神经网络进行训练和测试. 分类实验结果表明,采用的神经网络模型和训练方法是非常有效的,对5种常见缺陷的平均识别率达到99.86%.

(3)采用端到端的检测识别方法,自动从输入图像检测出缺陷区域并输出缺陷类别,避免了传统算法特征提取与缺陷分类相分离的局限性.

实验表明,提出的算法不仅具有较高的缺陷识别率,而且缺陷分割准确性和完整性较高,能够适应多种缺陷的检测,可以为缺陷信息统计和铝带质量评估工作提供有效的数据支持,具有较好的应用价值.

后续研究工作将致力于提高缺陷检出效率和扩充缺陷数据集样本数量和类别,进一步提高算法的适用性和鲁棒性.

参考文献

康军伟, 张建辉, 曾宏凯

国内外铝加工行业状况浅析

[J]. 有色金属加工, 2017, 46 (6): 1- 5

[本文引用: 1]

KANG Jun-wei, ZHANG Jian-hui, ZENG Hong-kai

Analysis of aluminum processing industry at home and abroad

[J]. Nonferrous Metals Processing, 2017, 46 (6): 1- 5

[本文引用: 1]

陈良

国内铝板带箔加工行业的现状分析

[J]. 有色金属加工, 2014, 43 (3): 1- 4

[本文引用: 1]

CHEN Liang

Analysis of current situation of domestic aluminum plate, strip and foil processing industry

[J]. Nonferrous Metals Processing, 2014, 43 (3): 1- 4

[本文引用: 1]

颜云辉. 机器视觉检测与板带钢质量评价[M]. 北京: 科学出版社, 2016.

[本文引用: 1]

陈凯华. 基于机器视觉的板材表面缺陷检测与识别算法研究[D]. 南昌: 华东交通大学, 2012.

CHEN Kai-hua. Research based on machine vision of plate surface defects detection and recognition algorithm [D]. Nanchang: East China Jiaotong University, 2012.

秦钟伟, 陈捷, 洪荣晶, 等

摩擦片表面缺陷的视觉显著性检测算法

[J]. 浙江大学学报: 工学版, 2019, 53 (10): 1883- 1891

[本文引用: 1]

QIN Zhong-wei, CHEN Jie, HONG Rong-jing, et al

Visual salience detection algorithm for surface defects of friction sheets

[J]. Journal of Zhejiang University: Engineering Science, 2019, 53 (10): 1883- 1891

[本文引用: 1]

ZHAO J, YANG Y M, LI G. The cold rolling strip surface defect on-line inspection system based on machine vision [C]// 2010 2nd Pacific-Asia Conference on Circuits, Communications and System. Beijing: IEEE, 2010: 402-405.

[本文引用: 1]

YANG Y X, LI Q, CHEN P, et al. Strip surface defect detection algorithm based on background difference [C]//2010 2nd Pacific-Asia Conference on Circuits, Communications and System. Beijing: IEEE, 2010: 23-26.

[本文引用: 9]

YANG Y X, DENG Y, LI Q, et al. Strip surface defect recognition algorithm based on PCA and improved BP neural network [C]// 2010 2nd Pacific-Asia Conference on Circuits, Communications and System. Beijing: IEEE, 2010: 19-22.

[本文引用: 1]

SUN X H, GU J N, TANG S X, et al

Research progress of visual inspection technology of steel products: a review

[J]. Applied Sciences, 2018, 8 (11): 2195

DOI:10.3390/app8112195      [本文引用: 1]

BENGIO Y, COURVILLE A, VINCENT P

Representation learning: a review and new perspectives

[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2013, 35 (8): 1798- 1828

DOI:10.1109/TPAMI.2013.50     

LECUN Y, BENGIO Y, HINTON G

Deep learning

[J]. Nature, 2015, 521 (7553): 436

DOI:10.1038/nature14539      [本文引用: 1]

LI J Y, SU Z F, GENG J H, et al. Real-time detection of steel strip surface defects based on improved YOLO detection network [C/OL]// 5th IFAC Workshop on Mining, Mineral and Metal Processing. Shanghai: IFAC, 2018 [2019-12-01]. https://doi.org/ 10.1016/j.ifacol.2018.09.412.

[本文引用: 1]

REDMON J, DIVVALA S, GIRSHICK R, et al. You only look once: unified, real-time object detection [C]// 2016 IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas: IEEE, 2016: 779-788.

[本文引用: 1]

TAO X, ZHANG D P, MA W Z, et al

Automatic metallic surface defect detection and recognition with convolutional neural networks

[J]. Applied Sciences, 2018, 8 (9): 1575

DOI:10.3390/app8091575      [本文引用: 1]

YI L, LI G Y, JIANG M M

An end-to-end steel strip surface defects recognition system based on convolutional neural networks

[J]. Steel Research International, 2017, 88 (2): 176- 187

[本文引用: 2]

BARNICH O, DROOGENBROECK V M. VIBE: a powerful random technique to estimate the background in video sequences [C]// 2009 IEEE International Conference on Acoustics, Speech and Signal Processing. Taipei: IEEE, 2009: 945-948.

[本文引用: 2]

BARNICH O, DROOGENBROECK V M

ViBe: a universal background subtraction algorithm for video sequences

[J]. IEEE Transactions on Image Processing, 2011, 20 (6): 1709- 1724

DOI:10.1109/TIP.2010.2101613      [本文引用: 6]

陈亮, 陈晓竹, 范振涛

基于Vibe的鬼影抑制算法

[J]. 中国计量学院学报, 2013, 24 (4): 425- 429

[本文引用: 2]

CHEN Liang, CHEN Xiao-zhu, FAN Zhen-tao

Ghost suppression algorithm based on Vibe

[J]. Journal of China University of Metrology, 2013, 24 (4): 425- 429

[本文引用: 2]

徐久强, 江萍萍, 朱宏博, 等

面向运动目标检测的ViBe算法改进

[J]. 东北大学学报: 自然科学版, 2015, 36 (9): 1227- 1231

[本文引用: 1]

XU Jiu-qiang, JIANG Ping-ping, ZHU Hong-bo, et al

An improved ViBe algorithm for moving object detection

[J]. Journal of Northeastern University: Natural Science, 2015, 36 (9): 1227- 1231

[本文引用: 1]

BOUVRIE J. Notes on convolutional neural networks [EB/OL]. (2006-11-22) [2019-12-01]. http://web.mit.edu/jvb/www/papers/ cnn_tutorial.pdf.

[本文引用: 2]

张顺, 龚怡宏, 王进军

深度卷积神经网络的发展及其在计算机视觉领域的应用

[J]. 计算机学报, 2019, 42 (3): 453- 482

[本文引用: 4]

ZHANG Shun, GONG Yi-hong, WANG Jin-jun

The development of deep convolution neural network and its application on computer vision

[J]. Chinese Journal of Computers, 2019, 42 (3): 453- 482

[本文引用: 4]

SIMONYAN K, ZISSERMAN A. Very deep convolutional networks for large-scale image recognition [EB/OL]. (2015-04-10) [2019-12-01]. http://arxiv.org/abs/1409.1556.

[本文引用: 1]

安宗权, 王匀

一种非线性扩散与图像差分的金属表面缺陷检测方法

[J]. 表面技术, 2018, 47 (6): 277- 283

[本文引用: 1]

AN Zong-quan, WANG Yun

A metal surface defect detection method based on nonlinear diffusion and image difference

[J]. Surface Technology, 2018, 47 (6): 277- 283

[本文引用: 1]

DENG J, DONG W, SOCHER R, et al. ImageNet: a large-scale hierarchical image database [C]// 2009 IEEE Conference on Computer Vision and Pattern Recognition. Piscataway: IEEE, 2009: 248-255.

[本文引用: 1]

/