Print

发布时间: 2018-07-16
摘要点击次数:
全文下载次数:
DOI: 10.11834/jig.170577
2018 | Volume 23 | Number 7




    图像分析和识别    




  <<上一篇 




  下一篇>> 





Faster R-CNN在工业CT图像缺陷检测中的应用
expand article info 常海涛, 苟军年, 李晓梅
兰州交通大学自动化与电气工程学院, 兰州 730070

摘要

目的 传统的缺陷图像识别算法需要手工构建、选择目标的主要特征,并选取合适的分类器进行识别,局限性较大。为此研究了一种基于Faster R-CNN(faster Regions with convolutional neural networks features)的缺陷检测方法,该方法采用卷积网络自动提取目标的特征,避免了缺陷检测依赖手工设计缺陷特征的问题。方法 该方法基于卷积神经网络。首先,确定缺陷检测任务:选择工业CT(computed tomography)图像中主要存在的3种类型的缺陷:夹渣、气泡、裂纹为检测目标;其次,人工对缺陷图像采用矩形框(GT box)进行标注,生成坐标文件,并依据矩形框的长宽比选定42种类型的锚窗(anchor);在训练之前采用同态滤波对数据集做增强处理,增强后的图片经过卷积层与池化层后获得卷积特征图,并送入区域建议网络RPN(region proposal networks)中进行初次的目标(不区分具体类别)和背景判断,同时粗略地回归目标边框;最后经过RoI(region of interest)pooling层后输出固定大小的建议框,利用分类网络对建议区域进行具体的类别判断,并精确回归目标的边框。结果 待检测数据集的图片大小在150×150到350×250之间,每张图片含有若干个不同类别的气泡、夹渣和裂纹。利用训练出来的模型对缺陷图片进行检测,可以有效识别到不同类别的缺陷目标,其中可以检测到面积最小的缺陷区域为9×9 piexl,并快速、准确地标出气泡、夹渣和裂纹的位置,检测准确率高达96%,平均每张图片的检测时间为86 ms。结论 所提出的Faster R-CNN工业CT图像缺陷检测方法,避免了传统缺陷检测需要手动选取目标特征的问题,缺陷的识别与定位过程的自动化程度更高;该方法检测效果良好,如果需要检测更多种类的缺陷,只需要对网络进行微调训练即可获得新的检测模型。本文为工业CT图像缺陷检测提供了一种更高效的方法。

关键词

深度学习; Faster R-CNN; 卷积神经网络; 缺陷检测; 工业CT

Application of faster R-CNN in image defect detection of industrial CT
expand article info Chang Haitao, Gou Junnian, Li Xiaomei
School of Automation & Electrical Engineering, Lanzhou Jiao Tong University, Lanzhou 730070, China

Abstract

Objective Traditional defect image recognition algorithms should manually build and select the main characteristics of targets, and the main defect features that are commonly used are as follows:(1) shape characteristics, including circumference, area, aspect ratio, and circularity; (2) gray scale features, including the mean of the gray scale and the variance of the gray level; and (3) characteristics adopted by the Hu invariant moment method to extract the mathematical features of translation, proportion, and rotation invariances and the suitable classifier selected to recognize the targets according to the selected features. The most frequently used classifiers include support vector machines, Adaboost, and artificial neural networks. These methods utilize several target features and classifiers to detect defects, which are usually designed manually. The identification process is time consuming and has certain limitations in application. Therefore, this study proposes a defect detection method that is based on faster regions with convolutional neural networks (faster R-CNN) features. The method uses convolution networks to automatically extract features of targets and avoids the problem of the dependence of defect detection on the character of the manual design. Method The method is based on a deep convolutional neural network. First, defect detection is determined. Three types of defects (detection targets) mainly exist in industrial computed tomography (CT) images, namely, slag inclusion, bubbles, and cracks. Then, the target images are manually annotated with a rectangular box (ground truth[GT] box), the coordinate files for the GT are generated, and 42 types of anchor boxes are selected according to the aspect ratio of the GT bounding box. The Laplace operator and the homomorphic filter are used to sharpen and enhance the data set before training. The enhanced images are processed by the convolution and pooling layers. The convolution feature map is obtained and sent to the region proposal networks for the initial judgment of targets (no specific category) and background. Meanwhile, the target border is roughly regressed. Then, the generated proposal box is sent to the region of interest pooling layer to produce fixed-length output. Finally, the proposed feature maps are judged by the fully connected and softmax layers for specific categories, and the probability vector of each category is generated. Moreover, an accurate target detection box is regressed using the bounding box regression layer. Result The size of the picture in the data set to be detected is between 150×150 and 350×250, and each picture contains several different categories of bubbles, slags, and cracks. The trained model can be used to detect the defect images and effectively classify them into various categories of defect targets. The trained model according to the GT aspect ratio selected anchor that can detect the smallest area of the bubble is 9×9 piexl (that is, the size of the GT area, non-defect area), and the smallest area with slag inclusion is 9×10 piexl. This model can accurately and quickly mark the locations of bubbles, slags, and cracks with a detection accuracy of up to 96%, and the average detection time of each image is 86 ms. Conclusion This work uses a deep convolutional neural network to automatically extract the features of defects and classify and identify defects on the basis of the extracted features, thereby avoiding the problem of manually selecting target features in traditional defect detection. Moreover, the process of defect recognition and localization becomes increasingly automated, thus resulting in reduced detection time and improved efficiency. The trained model according to the GT aspect ratio selected anchor is more pertinent for small targets, such as bubbles and slags, and for relatively large targets, such as cracks, and the border regression is accurate. The collected industrial CT images are grayscale pictures, whose information are not as rich as that in RGB pictures. Thus, CT image preprocessing before training can improve the detection accuracy of the training models, and the accuracy rate of the overall detection is better by 2% than that without preprocessing. The faster R-CNN defect detection algorithm proposed in this work has a fine detection effect and can detect the target in the industrial CT image quickly and accurately. If additional types of defects need to be detected, then a new detection model can be obtained by the fine-tuned training of the network. This work provides a new and efficient solution for the defect detection of industrial CT images.

Key words

deep learning; Faster regions with convolutional neural networks features (Faster R-CNN); convolutional neural networks; defect detection; Industrial Computed Tomography

0 引言

由于工业生产条件的制约,工件缺陷难以避免。通常工件内部主要存在夹渣、气孔和裂纹等缺陷。这些缺陷在服役过程中不断演化,对工件的性能造成影响,最终使工件失效,缩短了工件的使用寿命,进而威胁机器的使用安全。通过无损检测技术,对工件内缺陷的形状、面积、位置了解的越清楚,对工件的可靠性评估就会越准确。

目前的缺陷检测算法一般分为两个步骤:1)缺陷区域分割,将所有潜在的缺陷区域从CT图像中分割出来,并选取边界闭合的区域作为缺陷候选区域;2)候选区域判别,对分割出的候选区域依据形状特征、灰度特征以及Hu不变矩[1]特征进行甄别[2]。而候选区域判别这一部分,需要人参与设计缺陷的一些主要特征,这就存在一个问题:基于手工设计的特征对于缺陷多样化的变化没有很好的鲁棒性,只适用于特定的缺陷检测,很难适应缺陷面积大小不一、形状种类多样化、背景区域复杂的图像的自动识别与定位。

2006年Hinton等人[3]第1次提出了深度学习的概念,开启了深度学习在学术界和工业界研究的新起点。深度学习相比于传统手工提取特征的方法,不仅可以自动学习到目标的特征,而且适合数据集的处理,还能进行端到端(end2end)的学习。深度学习的优势在于其能够学习到多层的非线性关系,这是其他浅层学习算法所不能做到的[4]。2012年,Hinton和他的团队在ImageNet评测问题中采用深度学习算法将原来的图像识别错误率降低了9%[5]

深度学习模型主要有DBN[6](deep belief networks)和CNN[7-8](convolutional neural networks),而CNN是第1个真正成功训练多层网络结构的学习方法。R-CNN[9](regions with convolutional neural networks features)是深度学习在目标检测任务上的应用尝试,2014年后,R-CNN的原作者Ross Girshick再一次推出了R-CNN的继承者Fast R-CNN[10],解决了R-CNN训练速度慢,测试速度慢,训练所需空间大的问题。虽然Fast R-CNN较R-CNN有了很大的改进,但Fast R-CNN仍然是基于Selective Search[11]的方法提取建议框,而Selective Search方法提取建议框的计算是基于CPU运行的,不具有GPU的高度并行运算能力,所以效率低下。Faster R-CNN[12]在吸取Fast R-CNN特点的前提下,采用RPN预测建议框,并且绝大部分预测都在GPU中完成,大幅提升了目标检测的速度。采用Faster R-CNN +ZF[13]网络(一种卷积神经网络)在PASCAL VOC 2007[14]数据集上的准确率达到59.9%。鉴于Faster R-CNN的快速性和准确性,研究人员开始将Faster R-CNN尝试应用于医学病症检测和人脸检测等领域。

本文通过研究Faster R-CNN算法,利用深度卷积神经网络思想解决工业CT图像的缺陷识别与定位问题,为工业CT图像缺陷检测问题提供了更高效简洁的方法。

1 Faster R-CNN网络结构模型

Faster R-CNN可以看做是RPN和Fast R-CNN组合而成,用RPN代替Fast R-CNN中的Selective Search方法是Faster R-CNN的核心所在。

1.1 Fast R-CNN网络

图 1是Fast R-CNN的网络结构。

图 1 Fast-RCNN网络结构
Fig. 1 Fast-RCNN architecture

1) RoI pooling层,Fast R-CNN提出了RoI pooling层,这是SPP[15](空间金字塔池化)的一个特例,SPP采用多个尺度的池化层进行池化操作,而RoI pooling只采用单一尺度进行池化。

2) Multi-task loss(多任务损失函数),Fast R-CNN统一了类别输出任务和候选框回归任务。多任务损失函数的定义为

$ \begin{array}{l} \;\;\;\;\;\;\;\;\;L(p, u, {t^u}, v) = \\ {L_{{\rm{cls}}}}(p, u) + \lambda [u \ge 1]{L_{{\rm{loc}}}}({t^u}, v) \end{array} $ (1)

式中,$u$是候选框所对应的真实类别标签,$t^{u}$表示候选框变换为真实框对应的修正向量,$v$为候选框回归层产生的变换参数向量,$p$为输出类别的概率向量,$L_{\rm cls}(p, u)$表示分类损失,定义为

$ {L_{{\rm{cls}}}}(p, u) = - {\rm{log}}\;{p_u} $ (2)

式中,$\rm log$默认底数为$\rm e$,后续无特殊说明均采用$\rm log$

$L_{\rm loc}(t^{u}, v)$表示候选框变换损失函数,定义为

$ {L_{{\rm{loc}}}}({t^u}, v) = \sum\limits_{i \in \left\{ {x, y, w, h} \right\}} {{s_{L1}}(t_i^u - {v_i})} $ (3)

式中,$s_{L_{1}}(·)$定义为

$ {s_{{L_1}}}(x) = \left\{ \begin{array}{l} 0.5{x^2}\;\;\;\;\left| x \right| - 0.5\\ \left| x \right| < 1\;\;\;\;\;{\rm{其他}} \end{array} \right. $ (4)

文献[10]证明了Multi-task loss有助于网络的分类性能。

1.2 RPN网络

RPN网络是一种全卷积网络(FCN)[16],它与最先进的目标检测网络Fast R-CNN共享卷积层。通过在最后一个共享的卷积层输出的特征图矩阵上用$d$$n×n$的窗口进行滑窗处理,映射为$d$维特征向量(对于ZF是256-$\mathit{\boldsymbol{d}}$)。该向量输出给两个同级的全连接层—包围盒回归层($\rm reg$)和包围盒分类层($\rm cls$)。在每一个滑动窗口的位置,同时预测$k$个区域建议,所以$\rm reg$层有4$k$个输出($x$, $y$, $w$, $h$,分别为盒子的中心坐标和宽高),$\rm cls$层输出2$k$个得分,即每个建议框属于目标还是非目标的估计概率。$k$个建议框被相应的k个称为anchor的box参数化。每个anchor以当前滑动窗口中心为基准点,并与一种尺度(scale)和一种长宽比(ratio)对应。对于大小为$W×H$的卷积映射,总共有$W×H×k$个anchor。RPN网络的结构如图 2所示。

图 2 RPN网络结构
Fig. 2 RPN architecture

定义RPN的总体loss函数为

$ \begin{array}{l} L(\left\{ {{p_i}} \right\}\left\{ {p_i^*} \right\}) = \frac{1}{{{N_{{\rm{cls}}}}}}\sum\limits_i {{L_{{\rm{cls}}}}({p_i}, p_i^*)} + \\ \;\;\;\;\;\;\;\;\;\;\;\lambda \frac{1}{{{N_{{\rm{reg}}}}}}\sum\limits_i {p_i^*{L_{{\rm{reg}}}}({t_i}, t_i^*)} \end{array} $ (5)

式中,$i$是mini batch中anchor的索引,$p_{i}$是每个anchor $i$属于目标的预测概率。如果anchor为为正,GT标签$p^{*}_{i}$为1,如果为负则为0。$t_{i}$表示预测包围盒4个参数化坐标的向量,$t^{*}$是GT包围盒所对应的向量,$L_{\rm cls}$是两类目标(目标和非目标)的对数损失,$L_{\rm reg}$是回归损失,定义为

$ {L_{{\rm{reg}}}}({t_i}, t_i^*) = R({t_i} - t_i^*) $ (6)

式中,$R$是鲁棒损失函数($s_{L_{1}}$)。

$p^{*}_{i}L_{\rm reg}$表示只有$p^{*}_{i}=1$才有回归损失,$p^{*}_{i}=0$没有回归损失。$\rm cls$层和$\rm reg$层的输出分别由$(p_{i})$$(t_{i})$组成,$(p_{i})$$(t_{i})$$N_{\rm cls}$(一般取值为256)和$N_{\rm reg}$(典型取值为2 400)以及$\lambda $(设置为10)进行归一化。

回归过程采用4个坐标

$ {t_x} = \left( {x - {x_a}} \right)/{w_a}, {t_y} = \left( {y - {y_a}} \right)/{h_a} $ (7)

$ {t_w} = \log \left( {w/{w_a}} \right), {t_h} = \log \left( {h/{h_a}} \right) $ (8)

$ t_z^* = \left( {{x^*} - {x_a}} \right)/{w_a}, t_y^* = \left( {{y^*} - {y_a}} \right)/{h_a} $ (9)

$ t_w^* = \log \left( {{w^*}/{w_a}} \right), t_h^* = \log \left( {{h^*}/{h_a}} \right) $ (10)

式中,$x, y, w, h$分别指的是包围盒的中心坐标、宽、高。变量$x, x_{a}, x^{*}$分别指预测包围盒、anchor包围盒、GT包围盒的$x$坐标($y, w, h$也是一样)。

1.3 Faster R-CNN网络

Faster R-CNN网络结构如图 3所示。

图 3 Faster R-CNN网络结构
Fig. 3 Faster-RCNN architecture

Faster R-CNN将区域建议和Fast R-CNN融合在一个网络模型中(区域生成网络RPN层),用RPN网络代替了Selective Search,产生建议框的网络和目标检测网络进一步共享卷积特征。整体检测框架大致为:

1) 把任意大小的图片输入CNN通过卷积层进行特征提取;

2) 利用RPN网络产生高质量的建议框,每张图片约产生300个建议框;

3) 将建议框映射到CNN的最后一层卷积特征图上;

4) 用RoI pooling层固定每个建议框的大小;

5) 利用分类层和边框回归层对建议区域进行具体的类别判断和精确的边框回归。

Faster R-CNN相比于Fast R-CNN而言,产生建议窗口的质量更高并且速度更快,区域建议阶段的时间大幅降低,因而检测效率更高。

2 工业CT图像缺陷检测

由于CT系统的成像原理,重建获得的CT图像含有一定的噪声,对于夹渣和气泡这样的小目标缺陷,在某些区域目标和背景的灰度差异很小,这种情况下人眼也比较困难发现并识别目标,从而影响GT包围盒的标记,进一步影响模型的训练,所以有必要做预处理来增强这些较小目标和背景的灰度差异。本文方法分为两个阶段:训练阶段和测试阶段。

训练阶段:确定待检测目标的种类,选定网络并进行训练得到缺陷检测模型。

测试阶段:用得到的模型对待检测的样本进行测试。

整体检测流程如图 4所示。

图 4 基于Faster R-CNN的缺陷检测流程
Fig. 4 Defect detection process based on Faster-RCNN

工业CT图像主要含有3种类型的缺陷:夹渣、气泡、裂纹,如图 4中绿色箭头所指,红色的框为GT包围盒。在网络训练之前对训练集做预处理:采用拉普拉斯算子进行锐化,然后采用同态滤波[17]增强。

训练集中的每一张图片均含有数个大小不一的缺陷,即每张图片均含有数个人工标定的GT包围盒。对训练集中每张图片的所有anchor进行考察。anchor具体参数如表 1所示。

表 1 anchor具体参数
Table 1 Specific parameters of anchor

下载CSV
anchor 个数
base_size 16×16 1
原始 ratios [0.5, 1, 2] 3
原始 scale [8, 16, 32] 3
新的 ratios [0.3, 0.4, 0.5, 0.75, 1, 1.5, 2] 7
新的 scale [2, 4, 6, 8, 10, 16] 6

anchor的基础尺寸不做变化。对于气泡和夹渣而言,每一anchor的大小(如果比率为1,那么anchor的大小为128×128)都远远大于缺陷的面积,导致缺陷在anchor中所占的比例很小,这样在训练过程中由于缺陷很小导致GT包围盒的面积也很小,使得anchor和GT重叠的比例就会很小,从而将anchor判断为负样本或者非负非正样本并舍弃。所以本文依据训练集图片中缺陷的大小以及GT包围盒长宽的比例,对anchor的scale和ratios做了改进。重新选定的anchor的个数共有42种(ratios×scale)。ratios有7种,scale有6种,具体参数如表 1所示。

anchor训练过程原则为:

1) 与每个GT包围盒重叠比例最大的anchor记为正样本;

2) 对于a)中剩余的anchor如果与任一GT包围盒重叠比例大于0.7记为正样本,与GT包围盒的重叠比例小于0.3记为负样本;

3) 舍弃1)2)中剩余的anchor。

重新选定的anchor由于观察的区域变小,减少了一个anchor包含多个GT包围盒的情况,使得GT包围盒都至少对应一种anchor。其中ratios中的前4种和scale中的前3种,可以使气泡和夹渣在anchor中占较大的比例,其余的anchor可以检测到不同大小的裂纹。

训练过程中其他参数的取值如表 2所示。

表 2 其他参数取值
Table 2 values of other parameters

下载CSV
参数 取值
TEST.SCALES 250
TEST.MAX_SIZE 400
TRAIN.BATCH_SIZE 64
TEST.RPN_MIN_SIZE 4
CONF_THRESH 0.6

由于采集到的图片大小在150×150到350×250之间,在训练过程中如果图片缩放尺度过大,对小目标而言就会产生失真,不能很好的保持原有的信息,所以对缩放尺度也做了调整。

3 实验结果与分析

实验使用caffe框架,采用GPU加速,特征提取网络采用ZF。训练集的图片数量为3 687张,每一张图片分别含有数个大小不同的缺陷、夹渣、裂纹,具体构成如表 3所示。

表 3 训练集构成
Table 3 Training set structure

下载CSV
缺陷 缺陷/(个/张) 数量/张 总数/张
裂纹 1 1 634 1 675
2 41
气泡 1 124 782
2 281
3 282
4 95
夹渣 1 27 1 230
2 1 203

其中,含有3个气泡和1个夹渣的图片总数为162张,含有2个气泡和1个夹渣的图片总数为37张,所采集的缺陷图片具有各类缺陷的典型特征。待检测的图片数量为80张。

3.1 预处理结果

图 5(a)是原始图像,图 5(b)是其对应的直方图,从原始图像可以看出含有两个夹渣缺陷,夹渣占图像的比例很小,并且和背景的灰度值非常接近,灰度分布较为分散,图 5(c)为预处理后的图像,图 5(d)为预处理后图像的直方图,从图中可以看出经过预处理后的图像目标和背景的灰度值有了明显的差异,灰度分布较为集中。

图 5 预处理结果
Fig. 5 Pretreatment result((a) original image; (b) original histogram; (c) image after pretreatment; (d) histogram after pretreatment)

3.2 缺陷检测结果

图 6为用训练好的Faster R-CNN网络模型对待检测的图像进行检测的结果。

图 6 检测结果
Fig. 6 Detection result((a) crack detection result; (b) bubble detection result; (c) slag inclusion test result; (d) incorrect detection)

图 6(a)是对裂纹的检测结果,图 6(b)是对气泡的检测结果,图 6(c)是对夹渣的检测结果,可以看出对于不同大小的3种缺陷,由于重新选定了新的anchor,均可以检测到,并且包围盒良好的包围住缺陷。在待检测的图像中最小的气泡GT包围盒为9×9,最小夹渣的GT包围盒为9×10(GT包围盒的面积大于缺陷的面积),从检测结果可以看出具有较高的检测质量。图 6(d)为漏检与误检的结果,其中3个气泡是正确检测的结果,绿色的包围盒包围的区域是漏检的夹渣区域,右上角黄色的包围盒是误检的区域,这块区域没有任何缺陷,但是由于右下角的气泡区域和背景区域灰度非常接近,在做了预处理之后这一部分目标和背景的灰度差异依然很小,致使在检测过程中将右上角具有相似灰度分布的区域识别为气泡。

待检测图片数量总共为80张,裂纹、夹渣、气泡3种缺陷的个数以及检测结果比率分别见表 4表 5所示。

表 4 缺陷检测个数统计
Table 4 statistics of defect detection number

下载CSV
缺陷 正确检测 漏检 误检
裂纹 28 1 0
气泡 64 2 1
夹渣 51 3 0
总数 143 6 1

表 5 缺陷检测比率统计
Table 5 Correct detection ratio statistics

下载CSV
缺陷 准确率 漏检率 误检率
裂纹 0.966 0.034 0
气泡 0.970 0.03 0.15
夹渣 0.944 0.056 0
合计 0.960 0.04 0.007

表 4表 5可以看出,依据GT包围盒的长宽比重新选定的anchor对3种缺陷都有良好的检测结果,整体检测准确率较高。

3.3 检测结果比较

将文献[12]的训练结果以及未做预处理直接进行检测的结果与本文方法的检测结果做了比较,具体的比较的内容如下。

3.3.1 准确率对比

3种方法对80张图片分别做了检测,检测的结果如表 6表 7所示。

表 6 未做预处理检测个数统计
Table 6 Statistics of no-preprocessing defect detection number

下载CSV
缺陷 正确检测 漏检 误检
裂纹 28 1 0
气泡 62 4 1
夹渣 50 4 1
总数 140 9 2

表 7 文献[12]检测个数统计
Table 7 Statistics of number of reference[12]

下载CSV
缺陷 正确检测 漏检 误检
裂纹 25 4 0
气泡 24 42 4
夹渣 20 34 10
总数 69 80 14

表 6表 7的统计结果得到检测准确率的柱状图如图 7所示。由图 7可以看出3种方法对裂纹都有较高的检测准确率,但文献[12]对气泡和夹渣的检测结果较差。由于重新选定了anchor,本文方法和未做预处理直接检测对夹渣和气泡的检测准确率有了较大的提升。综合对比表 6表 7图 7结果可知,文献[12]算法对气泡和夹渣的漏检率和误检率都很高,对缺陷整体的检测结果较差,本文方法较未做预处理直接进行检测的结果准确率提高了2%,整体检测准确率较文献[12]的检测准确率提高了将近2倍,表明依据GT包围盒的长宽比选定的anchor对于面积较小的目标检测更有针对性,对训练集做预处理有助于网络的检测性能。

图 7 检测准确率比较
Fig. 7 Comparison of detection accuracy

3.3.2 Bounding Box精度对比

3种方法对待检测目标的边框回归(Bounding Box,包围盒)精度比较如图 8图 9图 10所示。

图 8 夹渣边框回归精度比较
Fig. 8 Comparison of regression accuracy of slag((a)algorithm of reference [12]; (b)no-preprocessing defect detection; (c)ours)
图 9 气泡边框回归精度比较
Fig. 9 Comparison of regression accuracy of bubble((a)algorithm of reference [12]; (b)no-preprocessing defect detection; (c)ours)
图 10 裂纹边框回归精度比较
Fig. 10 Comparison of regression accuracy of crack((a)algorithm of reference [12]; (b)no-preprocessing defect detection; (c)ours)

图 8为3种方法对夹渣的边框回归结果,图 9为3种方法对气泡的边框回归结果,图 10为3种方法为对裂纹的边框回归结果。从图 8中可以看出图 8(a)文献[12]的算法漏检了夹渣1,对夹渣2的边框回归只包含了目标的部分区域;图 8(b)未做预处理直接检测误检了一块区域,图中数字3所标注的区域;图 8(c)本文方法正确检测到夹渣并标记出来夹渣的位置。从图 9中可以看出图 9(a)文献[12]的算法漏检了气泡2和气泡3,对气泡1的边框回归只包含了极少部分,属于误检;图 9(b)未做预处理直接检测虽然检测出来三个气泡但是对气泡2和气泡3的边框回归并不准确,只包含了部分区域;图 9(c)本文方法较图 9(b)的边框回归更准确。从图 10中可以看出,图 10(a)文献[12]的算法只包含了裂纹的部分区域,未能准确检测出裂纹;图 10(b)未做预处理直接检测和图 10(c)本文方法都正确检测到裂纹,但是图 10(c)的边框回归结果较图 10(b)更优。从图中可以看到对比文献[12]方法本文方法依据GT包围盒长宽比选择的anchor大幅提升了缺陷的定位和识别准确度,经过预处理后在检测精度上较未做预处理直接进行检测给出的Bounding Box精度更高,定位出的缺陷更准确,说明对于灰度图像由于图像的色彩信息不如RGB图像丰富,在做检测之前使用预处理不仅可以提高识别准确率,还可以提高Bounding Box的回归精度。

图 8图 9图 10中检测出目标的具体坐标信息如表 8表 9表 10所示。

表 8 文献[12]检测出的具体坐标
Table 8 Specific coordinates detected by reference [12]

下载CSV
缺陷 GT 文献[12]算法 GT尺寸/像素 Detected尺寸/像素 IOU
夹渣1 [144, 133, 162, 147] [0, 0, 0, 0] 18×14 0 0
夹渣2 [189, 130, 208, 147] [188, 139, 208, 156] 19×17 20×17 0.30
气泡1 [62, 174, 79, 186] [62, 182, 79, 198] 17×12 17×16 0.17
气泡2 [70, 139, 85, 154] [0, 0, 0, 0] 15×15 0 0
气泡3 [121, 88, 135, 102] [0, 0, 0, 0] 14×14 0 0
裂纹 [91, 12, 143, 110] [115, 19, 154, 73] 51×98 39×54 0.27

表 9 未做预处理检测出的具体坐标
Table 9 Specific coordinates detected by no-preprocessing

下载CSV
缺陷 GT 未做预处理 GT尺寸/像素 Detected尺寸/像素 IOU
夹渣1 [144, 133, 162, 147] [133, 137, 158, 153] 18×14 25×16 0.27
夹渣2 [189, 130, 208, 147] [185, 131, 212, 150] 19×17 27×19 0.57
气泡1 [62, 174, 79, 186] [60, 172, 78, 187] 17×12 18×15 0.68
气泡2 [70, 139, 85, 154] [69, 141, 86, 154] 15×15 17×13 0.77
气泡3 [121, 88, 135, 102] [118, 93, 134, 105] 14×14 16×12 0.43
裂纹 [91, 12, 143, 110] [86, 0, 156, 113] 51×98 70×113 0.64

表 10 本文方法检测出的具体坐标
Table 10 Specific coordinates detected by ours

下载CSV
缺陷 GT 本文 GT尺寸/像素 Detected尺寸/像素 IOU
夹渣1 [144, 133, 162, 147] [140, 132, 164, 151] 18×14 24×19 0.55
夹渣2 [189, 130, 208, 147] [189, 131, 216, 154] 19×17 27×23 0.48
气泡1 [62, 174, 79, 186] [64, 170, 79, 188] 17×12 15×18 0.61
气泡2 [70, 139, 85, 154] [67, 135, 86, 159] 15×15 19×24 0.50
气泡3 [121, 88, 135, 102] [114, 88, 134, 106] 14×14 20×18 0.49
裂纹 [91, 12, 143, 110] [91, 5, 151, 116] 51×98 60×111 0.77

GT为人工标注的缺陷区域矩形框的坐标,对应各算法定位出的缺陷区域坐标分别见表 8表 9表 10。表中,GT尺寸表示人工标注缺陷区域的面积,Detected尺寸为算法定位出的缺陷区域的面积,IOU(intersection over union)表示GT尺寸与Detected尺寸的交集与二者并集的比值。IOU越大,说明定位出的区域与GT区域越接近。对于有误检的区域,仅选取包含缺陷面积最大的区域的坐标值,其他坐标不做计算,没有检测的区域坐标取0。结合图 8图 9图 10表 8表 9表 10可知,文献[12]的检测结果较差,对面积较小的目标无法做出准确的定位与识别;未做预处理直接进行检测,虽然部分IOU值高,但是只定位出目标的局部区域;本文方法可以准确定位出缺陷,具有较高的IOU值。

3.3.3 检测时间对比

3种方法检测每一张图片的时间如图 11所示。由图 11可以看出本文方法的平均检测时间为86 ms,未做预处理直接检测的平均检测时间是97 ms,文献[12]的平均检测时间是73 ms。本文方法与文献[12]的检测时间相近,但是检测结果较文献[12]的结果更准确,说明增加anchor的数量有助于提升网络的检测性能,几乎不影响整个网络在检测时间上的消耗。本文方法在预处理阶段平均花费时间为80 ms,平均每张图片总的检测时间为166 ms,较未做预处理直接检测时间有所增加,但是最终的定位与识别更准确。

图 11 3种方法检测时间对比
Fig. 11 Comparison of three methods to detect time

4 结论

本文基于Faster R-CNN通过重新选定anchor以及在检测之前对训练集做预处理增强目标和背景的差异,最终获得工业CT图像缺陷检测模型。该方法利用深度卷积网络自动提取特征,有效避免了传统方法依赖手工设计缺陷特征的问题。依据GT包围盒的长宽比选择的anchor可以检测到气泡和夹渣这类面积较小的目标,降低了模型对这类缺陷的误检和漏检率。从实验结果和分析可以看出,本文提出的方法可以得到较优的检测结果,并且速度快,从检测过程上较传统方法在自动化程度上有了大幅的提升,具有较强的鲁棒特性,是一种有效可行的方法。

目前,本文所研究的方法可以准确定位和识别缺陷,但是对于气泡和夹渣的定位结果较GT略大,更精确的定位气泡和夹渣是下一步着重研究的问题,同时在精确定位的基础上,采用卷积网络对缺陷进行像素级分割,完成从定位—识别—分割—测量,这一整体缺陷检测系统的建立。

参考文献

  • [1] Yuan Y, Wang H, Yuan P X, et al. An improved hu invariant moment algorithm for storage medium image recognition[J]. Chinese Journal of Scientific Instrument, 2016, 17(5): 1042–1048. [原玥, 王宏, 原培新, 等. 一种改进的Hu不变矩算法在存储介质图像识别中的应用[J]. 仪器仪表学报, 2016, 17(5): 1042–1048. ] [DOI:10.3969/j.issn.0254-3087.2016.05.011]
  • [2] Yan W X. Research on deep learning and its application on the casting defects automatic detection[D]. Guangzhou: South China University of Technology, 2016. [颜伟鑫. 深度学习及其在工件缺陷自动检测中的应用研究[D]. 广州: 华南理工大学, 2016.] http://cdmd.cnki.com.cn/Article/CDMD-10561-1016770553.htm
  • [3] Hinton G E, Salakhutdinov R R. Reducing the dimensionality of data with neural networks[J]. Science, 2006, 313(5786): 504–507. [DOI:10.1126/science.1127647]
  • [4] Zheng Y, Chen Q Q, Zhang Y J. Deep learning and its new progress in object and behavior recognition[J]. Journal of Image and Graphics, 2014, 19(2): 175–184. [郑胤, 陈权崎, 章毓晋. 深度学习及其在目标和行为识别中的新进展[J]. 中国图象图形学报, 2014, 19(2): 175–184. ] [DOI:10.11834/jig.20140202]
  • [5] Krizhevsky A, Sutskever I, Hinton G E. Image Net classification with deep convolutional neural networks[J]. Communications of the ACM, 2017, 60(6): 84–90. [DOI:10.1145/3065386]
  • [6] Hinton G E, Osindero S, Teh Y W. A fast learning algorithm for deep belief nets[J]. Neural Computation, 2006, 18(7): 1527–1554. [DOI:10.1162/neco.2006.18.7.1527]
  • [7] Bengio Y. Learning Deep Architectures for AI[M]. Hanover: Now Publishers, 2009: 1-127.
  • [8] Wang X B, Li J, Yao M H, et al. Solar cells surface defects detection based on deep learning[J]. PR & AI, 2014, 27(6): 517–523. [王宪保, 李洁, 姚明海, 等. 基于深度学习的太阳能电池片表面缺陷检测方法[J]. 模式识别与人工智能, 2014, 27(6): 517–523. ] [DOI:10.16451/j.cnki.issn1003-6059.2014.06.006]
  • [9] Girshick R, Donahue J, Darrell T, et al. Rich feature hierarchies for accurate object detection and semantic segmentation[C]//Proceedings of 2014 IEEE Conference on Computer Vision and Pattern Recognition. Columbus, OH, USA: IEEE, 2014: 580-587. [DOI:10.1109/CVPR.2014.81]
  • [10] Girshick R. Fast R-CNN[C]//Proceedings of 2015 IEEE International Conference on Computer Vision. Santiago, Chile: IEEE, 2015: 1440-1448. [DOI:10.1109/ICCV.2015.169]
  • [11] Uijlings J R R, Van de Sande K E, Gevers T, et al. Selective search for object recognition[J]. International Journal of Computer Vision, 2013, 104(2): 154–171. [DOI:10.1007/s11263-013-0620-5]
  • [12] Ren S Q, He K M, Girshick R, et al. Faster R-CNN:towards real-time object detection with region proposal networks[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017, 39(6): 1137–1146. [DOI:10.1109/TPAMI.2016.2577031]
  • [13] Zeiler M D, Fergus R. Visualizing and understanding convolutional networks[C]//Proceedings of the 13th European Conference on Computer Vision-ECCV 2014. Springer International Publishing. Zurich, Switzerland: Springer, 2014: 818-833. [DOI:10.1007/978-3-319-10590-1_53]
  • [14] Everingham M, Van Gool L, Williams C K I, et al. The PASCAL Visual Object Classes (VOC) Challenge[J]. International Journal of Computer Vision, 2010, 88(2): 303–338. [DOI:10.1007/s11263-009-0275-4]
  • [15] He K M, Zhang X Y, Ren S Q, et al. Spatial pyramid pooling in deep convolutional networks for visual recognition[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2015, 37(9): 1904–1916. [DOI:10.1109/TPAMI.2015.2389824]
  • [16] Long J, Shelhamer E, Darrell T. Fully convolutional networks for semantic segmentation[C]//Proceedings of 2015 IEEE Conference on Computer Vision and Pattern Recognition. Boston, MA, USA: IEEE, 2015: 3431-3440. [DOI:10.1109/CVPR.2015.7298965]
  • [17] Xu L M, Lü J D. Bayberry image segmentation based on homomorphic filtering and K-means clustering algorithm[J]. Transactions of the Chinese Society of Agricultural Engineering, 2015, 31(14): 202–208. [徐黎明, 吕继东. 基于同态滤波和K均值聚类算法的杨梅图像分割[J]. 农业工程学报, 2015, 31(14): 202–208. ] [DOI:10.11975/j.issn.1002-6819.2015.14.028]