system: [SYSTEM]

user: 3. 铝管表面缺陷检测 本文的实验是在Intel Core i5 8G内存，win10操作系统下，使用软件PyCharm完成。 3.1. 铝管图像预处理 由于铝管在拍摄的时候位置可能存在稍许偏差，如果不做任何处理直接输入图像进行鲁棒性主成分分析那么这些线性不相关的图像矩阵得出的结果必然不理想，所以有必要对输入图像先进行预处理保证输入到RPCA的铝管图像中的铝管均为水平方向或竖直方向。 铝管图像中存在明显的直线，所以本文采用霍夫直线检测检测图像中的直线并根据得到直线角度矫正图像方向，得到水平的铝管的图像 [ 8 ]。在霍夫直线检测之前需要对图像采用图像灰度化、中值滤波、Canny边缘检测和形态学处理。预处理流程图如图2所示。图3为预处理图像。 图2. 预处理流程图 相机采集到的图像铝管的RGB三通道图像，直接进行处理计算量比较大，因此将RGB图像转变为灰度图像，灰度变换处理结果如图3(a)。在实际应用中，相机采集到的图像必定会受到噪声影响，噪点会为后续Canny边缘检测带来干扰信息，所以采用中值滤波去除图像中的噪点。中值滤波后的滤波图像如图3(b)。Canny边缘检测检测到的边缘较全，检测位置准确，抵抗噪声的能力强。Canny边缘检测后的图像如图3(c)。图像形态学可以分为：腐蚀、膨胀、开操作、闭操作。为了更准确的见到边缘图像上的直线本文先对Canny图像做闭操作，后做开操作。结果如图3(d)。霍夫直线检测其基本思想就是将原图像变换到参数空间，用大多数边界点满足某种参数形式来描述图像中的线，通过设置累加器，求得峰值所对应的所需要的信息。霍夫直线检测如图3(e)。矫正之后图像如图3(f)。最后提取图像中感兴趣的区域，即图像ROI，结果如图3(g)。 图3. 预处理图像 3.2. 基于RPCA的铝管图像缺陷检测 鲁棒性主成分分析能够将输入的原始铝管图像分解为理想状态的低秩图像和存在缺陷的稀疏图像。在铝管缺陷检测的过程中，一批铝管只有个别铝管存在缺陷，每个图像都是相似的，将图像转换为矩阵，那么这些矩阵都是线性相关的，这些图像就是低秩图像，然而个别存在缺陷的图像矩阵即为稀疏矩阵。 3.2.1. RPCA算法原理 数据降维就是一种对高维度特征数据预处理方法。数据降维是将高维度的数据保留下最重要的一些特征，去除噪声和不重要的特征，从而实现提升数据处理速度的目的。PCA (Principal Component Analysis)，即主成分分析方法，是一种使用最广泛的数据降维算法 [ 9 ]。对带有缺陷的铝管图像，该算法可以将原图片分解为无缺陷的低秩图像和只存在缺陷的稀疏图像。传统的PCA算法是观测矩阵的低秩稀疏分解，其在理想的条件下处理效果较好，但是鲁棒性差，无法较好的处理收到较大噪声影响的观测矩阵，结果得不到理想的低秩矩阵。所以为了克服这个问题，本文采用RPCA算法，通过求解鲁棒性主成分分析模型就能得到缺陷图像。上述过程可以写成 min A ， E r a n k ( A ) + λ ‖ E ‖ 0 ，   s . t .   D = A + E (1) 其中观测矩阵D中有n组数据 D 0 ， ⋯ ， D n ∈ R w × h ，将每一组数据转化为列向量，则观测矩阵D可表示为 D = [ v e c ( I 1 ) | v e c ( I 2 ) | ⋯ | v e c ( I n ) ] ∈ R ( w × h ) × n (2) A ∈ R ( w × h ) × n 表示分解出来的低秩矩阵， E ∈ R ( w × h ) × n 表示稀疏矩阵，λ表示权衡参数。 ‖ E ‖ 0 表示E矩阵的L 0 范数。然而求解公式(1)并不容易，所以引入核范数，并且将L 0 范数松弛为L 1 范数，将难以求解的公式(1)转换为凸优化问题求解 min A ， E ‖ A ‖ * + λ ‖ E ‖ 1 ，   s . t .   D = A + E (3) 其中 ‖ A ‖ * 表示矩阵核范数， ‖ E ‖ 1 表示L 1 范数。 求解凸优化问题常用方法有：IT、APG、IALM等，本文采用非精确拉格朗日乘子法求解RPCA。首先将(3)式转换为拉格朗日函数 L ( X ， Y ， μ ) = ‖ A ‖ * + λ ‖ E ‖ 1 + 〈 Y ，   D − A − E 〉 + μ 2 ‖ D − A − E ‖ F 2 (4) 其中μ为惩罚参数，Y为拉格朗日乘子。 通过迭代对(4)进行求解，先固定E和Y，得到使L最小化的A，然后固定A和Y，得到使L最小化的E，对矩阵Y更新再对惩罚参数μ更新，重复之前的过程直到收敛便可得到输出A和E。 IALM算法的具体步骤为： 步骤1：输入样本图像矩阵 D ∈ R ( w × h ) × n 和权衡参数λ， μ 0 > 0 ， k = 0 ， Y 0 = 0 ， E 0 = 0 。 步骤2：奇异值分解， ( U ， S ， V ) = s v d ( D − E k + Y K / U k ) ，U和V代表两个相互正交的矩阵，S代表一个对角矩阵。用这个方法重估A和E。 步骤3： A k + 1 = U S μ k − 1 [ S ] V T 步骤4： E k + 1 = arg min E L ( A k + 1 ， E ， Y k ， μ k ) = S λ / μ k [ D − A k + 1 + Y k / μ k ] 。 步骤5： Y k + 1 = Y k + μ k ( D − A k + 1 − E k + 1 ) 。 步骤6：更新μ k ， k = k + 1 。 步骤7：重复步骤2~步骤6直到迭代收敛并输出 A = A k ， E = E k 。 3.2.2. 基于RPCA的铝管缺陷检测实验 输入8张带有擦伤和压坑缺陷的铝管样本图像，每幅图像的分辨率大小为250 × 75。因为一批产品带缺陷的铝管图像只占其中的一小部分，所以可以认为大多数图像是低秩图像，多数图片的观测矩阵为线性相关，缺陷则是稀疏的。图4为待检测图像，其中图5(a)(d)(e)(h)为无缺陷的铝管图像，图6(b)(c)为擦伤缺陷图像，图7(f)(g)为压坑缺陷图像。 图4. 待检测图像 采用IALM (Imprecise Augmented Lagrange Method)算法求解RPCA，将待检测图像分解为低秩图像和稀疏图像 [ 10 ]。低秩图像如图5，稀疏图像如图6。实验结果表明稀疏图像能够成功的将缺陷检测出来，但是现在的稀疏图像效果并不显著，影响后续的缺陷识别，所以需要进行形态学转换处理，形态学转换处理图像如图7。从图7可以明确的看出图(b)(c)存在擦伤缺陷，擦伤缺陷表现为一道细长的白条，图(f)(g)存在压坑缺陷，压坑缺陷表现为一片不规则形状的白洞。，图(a)(d)(e)(h)为全黑的图像表示无缺陷的合格图像。 图5. 低秩图像 图6. 稀疏图像 图7. 形态学处理图像 通过上述实验过程能够成功的检测出铝管缺陷图像，输入图像的像素大小直接影响检测速率，本文输入8张分辨率大小为250 × 75的图像其检测时间为3.81 s，平均每幅图像检测时间为0.48 s。由图7可知，输入8张图像中有图(a)(d)(e)(h)共4张无缺陷图像和图(b)(c)(f)(g)共4张有缺陷图像，对比图4待检 测的8张图像，可知图(a)(d)(e)(h)为无缺陷图像和图(b)(c)(f)(g)为有缺陷图像。检测准确率 μ = ( α β ) × 100 % ， 其中α为检测后无缺陷图像和有缺陷图像的总和，β为待检测图像的总和。由上述分析可知α = 8，β = 8，则准确率为100%。可见，本文采用的方法检测时间较短，检测率较高，能够完成工业生产线上的对检测时间和准确率的要求。 3.3. 缺陷识别 本文研究的铝管缺陷有两类，分别为擦伤和压坑，由上述实验可知这两种缺陷在大小和形状上有很大的差别，所以采用三种特征参数对擦伤和压坑缺陷进行分类 [ 11 ]。三种特征参数分别为：面积、分散度和高宽比。面积既为缺陷内有S个像素点。分散度用于测量缺陷的紧密和疏松程度，周长为L，则分散度p为： p = L 2 / S 。当p越小说明缺陷越稀疏，p越大说明缺陷越紧密。高宽比，求出缺陷的最小外接矩形，外界矩形的高度h和宽度w的比值k能表达缺陷的不同。根据实验总结的判断的各个缺陷特征参数，如表1所示。表2为实验缺陷图像的特征参数，结合表1的判断标准能够判别图(b)(c)为擦伤缺陷，图(f)(g)为压坑缺陷。 Table 1 Judge the characteristic parameters of each defec 缺陷类型 面积S(像素) 分散度p 高宽比k 擦伤 S < 30.0 p >50.00 k > 4， k < 0.25 压坑 S > 100.0 p <39.00 2.5 > k > 0.4 表1. 判断各个缺陷的特征参数 Table 2 Characteristic parameters of experimental defect image 缺陷图像 面积(像素) 分散度p 长宽比 图(b) 12.0 105.95 8.20 图(c) 18.0 73.95 7.71 图(f) 196.0 30.33 0.48 图(g) 137.0 39.39 0.61 表2. 实验缺陷图像的特征参数