system: [SYSTEM]

user: 3. 图像特征提取及缺陷检测算法 3.1. 去背景及图像分割 在水果分拣线上，经由传送带运送到摄像机视野的水果基本都是多个出现的如图3所示。而缺陷检测和识别却是针对单个水果个体而言的。因此必须对多个水果的图像进行分割，从而得到适用于接下来检测工作的不相连图像。 得到去背景图像的流程如图4所示，分析樱桃图像的颜色分量，发现其正常部分较黑而缺陷部分及背景较白，因此为了将樱桃从背景中分离出来，选择分离其R分量并进行反转操作。 在实际图像处理中，NI VISION中含有很多的图像颜色模型，例如RGB，HIS，HSL，HSV等。不同的颜色模型即指不同的三维颜色空间的可见光子集，例如RGB颜色模型就是在单位立方体空间内的颜色合集，RGB分别表示红绿蓝三原色；HSI颜色模型则是用圆锥来描述，HIS分别表示色调、饱和度、亮度。不同的颜色模型之间可以互相转化。本次实验中摄像机获取的图像是RGB格式的，所以在提取R分量时只需要将其余两个分量的值设为0即可。 反转操作可生成所得相片的底片，加强樱桃正常部分与缺陷部分的对比。处理后由于图像色彩的缺失，图像内特征将变得不明显，因此需要进行线性对比度增强，之后即可进行阈值分割获得较为粗糙的去背景图像，但是在二值化后，图像边缘会产生毛边，对其进行中值滤波模糊处理并对处理后图像提取边缘，此时得到的图像可能出现连接，从而影响到后续实验，因此需要进行分水岭分割以获取不相连单果图像。最后所得图像如图5所示。 3.2. 涉及算法或函数 3.2.1. 阈值分割算法 视觉系统在工作时，得到的图像不仅包含樱桃而且含有背景，因此需要进行背景分割来获得去除背景后的樱桃图像，去背景最常用的方法便是阈值分割。阈值分割的原理是根据一个“数值”来定义图像 中不同目标的区域归属，这个值便称之为阈值，经过阈值分割的两部分分别属于不同的图像部分 [ 6 ] 。背景分割中阈值分割算法已经发展的十分成熟，阈值的获取方法也有很多种，NI Vision Assistant中主要方法有自适应阈值、统计最优阈值、极小点阈值和Otsu法阈值。 自适应阈值的原理是根据每个像素的邻域计算阈值，之后将每个像素的值与邻域的平均值进行比较。如果某像素的值与它的局部平均值差别很大，就会被当做异常值在阈值化过程中被分离。统计最优阈值的原理是基于统计学算法，得到能使分割失误最小的阈值。极小点阈值的原理是求取直方图峰值函数的极小值(导数为0且二阶导数大于0的点)，该点对应的灰度值就是极小点阈值。Otus法阈值又名大津法，具体原理为： 图3. 彩色多果图 图4. 摄取单果图像流程图 图5. 去背景分割图 设所求Otus阈值为T，樱桃与背景像素数分别占整个图像像素数的比例各为 ρ 1 ， ρ 2 。平均灰度分别为 N 1 ， N 2 ，总平均灰度记为N，类间方差记为P。设樱桃图像为暗的部分，且总的图像大小为 A × B ，将灰度值小于阈值T的像素个数记作 A 1 ，大于阈值T的像素个数记作 A 2 ，则： ρ 1 = A 1 A × B (1) ρ 2 = A 2 A × B (2) A 1 + A 2 = A × B (3) ρ 1 × ρ 2 = 1 (4) N = N 1 × P 1 + N 2 × P 2 (5) P = ρ 1 × ( N − N 1 ) 2 + ρ 2 × ( N − N 2 ) 2 (6) 将式(5)代入式(6)可得 P = ρ 1 × ρ 2 × ( N 1 × N 2 ) 2 (7) 比对所得到的所有的P，则使得P取得最大值的T即为所求阈值。 3.2.2. 边缘检测算子 在樱桃图像和背景分离后，还需提取樱桃图像的边缘轮廓用作后续处理。通过灰度直方图可看出灰度变化明显的部分即为边缘轮廓。灰度的突变及不连续可以利用导数来检测。NI Vision Assistant中常见的边缘检测算子有Laplacian算子、Diff算子、Prewitt算子、Sobel算子、Roberts算子、Canny算子六种，每一种都有不同的算法。下面主要介绍本次实验中用到的Laplacian算子、Sobel算子及Candy算子。 Laplacian算子 Laplacian算子原理是对于大部分图像而言，其边缘会出现阶跃，则其二阶导数在边缘点两侧异号。其定义式为： ∇ 2 f ( x ， y ) = ∂ 2 ∂ x 2 f ( x ， y ) + ∂ 2 ∂ y 2 f ( x ， y ) (8) 如果用差分代替二阶偏导，则式(8)变为： Δ 2 f ( x ， y ) = f ( x + 1 ， y ) + f ( x − 1 ， y ) + f ( x ， y + 1 ) + f ( x ， y − 1 ) − 4 f ( x ， y ) (9) Δ 2 f ( x ， y ) = f ( x − 1 ， y − 1 ) + f ( x ， y − 1 ) + f ( x + 1 ， y − 1 ) + f ( x − 1 ， y ) + f ( x + 1 ， y )     + f ( x − 1 ， y + 1 ) + f ( x ， y + 1 ) + f ( x + 1 ， y + 1 ) − 8 f ( x ， y ) (10) Laplacian算子模版如图6所示，基本特点为中心位置系数为正其余系数为负或零，且正负和为0。Laplacian算子对边缘端点及孤立点识别效果显著，这也使得其对噪声非常敏感，所以很少用直接用Laplacian算子进行检测。 Sobel算子 Sobel算子是基于函数卷积来进行图像分析的，具体运算过程就是将原图像函数先进行加权平均而后求其微分，其定义式为： s ( x ， y ) = M A X [ ∑ m = 1 M ∑ n = 1 N f ( m ， n ) g 1 ， 2 ( i − m ， j − n ) ] (11) 如果将差分替换为二阶偏导，则式(11)变为： Δ x f ( x ， y ) = [ f ( x − 1 ， y + 1 ) + 2 f ( x ， y + 1 ) + f ( x + 1 ， y + 1 ) ]     − [ f ( x − 1 ， y − 1 ) + 2 ( x ， y − 1 ) + f ( x + 1 ， y − 1 ) ] (12) Δ y f ( x ， y ) = [ f ( x − 1 ， y − 1 ) + 2 f ( x − 1 ， y ) + f ( x − 1 ， y + 1 ) ]     − [ f ( x + 1 ， y − 1 ) + 2 ( x + 1 ， y ) + f ( x + 1 ， y + 1 ) ] (13) Sobel算子模版如图7所示，左边表格用于检测水平方向边缘，右边表格用于检测垂直方向的边缘。 Candy算子 Candy算子不同于前面2种算子，其为了避免噪声干扰，选取高斯函数的一阶导函数作为边边缘检测算子。 设二维高斯函数为： G ( x ， y ) = 1 2 π σ 2 exp ( − x 2 + y 2 2 σ 2 ) (14) 由数学知识可知，高斯函数可以分解。因此可将卷积 ∇ G 分解为两个一维的行列滤波器： ∂ G ( x ， y ) ∂ x = k x exp ( − x 2 2 σ 2 ) exp ( − y 2 2 σ 2 ) = h 1 ( x ) h 2 ( y ) (15) ∂ G ( x ， y ) ∂ y = k y exp ( − y 2 2 σ 2 ) exp ( − x 2 2 σ 2 ) = h 1 ( y ) h 2 ( x ) (16) 其中 h 1 ( x ) = x h 2 ( x ) ， h 1 ( y ) = y h 2 ( y ) ，k为常数。 然后分别求其与式(15)；(16)与 的卷积，得 E x = ∂ G ( x ， y ) ∂ x ∗ f ;     E y = ∂ G ( x ， y ) ∂ y ∗ f (17) 则可得边缘强度A，方向 α 如式(18)所示 A ( i ， j ) = E x 2 + E y 2 ;     a ( i ， j ) = arctan E y ( i ⋅ j ) E x ( i ⋅ j ) (18) 图6. Laplacian算子模版 图7. Sobel算子模版 比较三种边缘算子，可以发现Candy算子在噪声去除效果上要好于其余2种算子，而Laplacian算子由于对噪声较为敏感，使得其结果虽然对边缘定位校准，但是会加强噪声。 3.2.3. 滤波处理 滤波是一种能有效抑制噪声的图像处理方法，NI Vision Assistant 中主要有低通滤波、局部均值滤波、高斯滤波、中值滤波等四种。 低通滤波的原理是使得图像低频信号通过而高频信号截至，其主要作用是消除细节模糊边缘并平滑图像。局部均值滤波与低通滤波效果类似，主要用来过滤高频噪声。高斯滤波可以有效减弱像素领域的光强变化，效果较前两种滤波较弱。中值滤波的原理是用像素点领域灰度值的中值来替代该像素点的灰度值，该方法可以有效消除椒盐噪声、脉冲噪声。比较四种滤波器可得在消除噪声时中值滤波效果较好，在平滑边缘时其余三种滤波效果较好。 3.3. 水果缺陷提取 本课题主要研究樱桃表面的缺陷，故准确高效分割出樱桃图像中的缺陷区域是处理的首要任务。在提取缺陷时，首先需要明确衡量樱桃缺陷的参数，由实际工业生产可知，樱桃缺陷主要有腐烂、鸟啄、划痕、畸形果这四种，其中腐烂在机器视觉所获取的图像中表现为二值图出现大量的斑点；鸟啄和划痕表现为在图像边缘内部出现黑色不规则线条。而裂果及畸形果则表现为图像边缘不是近似圆形或者椭圆形。所以只要获取的图像出现非边缘部分出现斑点或者不规则线条或者边缘不符合要求即可认为是缺陷果。 缺陷提取流程如图8所示。分析图像可知由于樱桃为近球型水果，其拍摄所得图像会存在边缘亮度较低的问题，不便于进行下一步处理，因此为达到缺陷分割的目的，需要首先对得到的去背景图进行边缘亮度补偿，之后再进行一次自适应阈值分割从而得到包含边缘部分及缺陷的二值图，对边缘进行类似于上一流程的处理(高斯平滑并均值滤波)后得到包含樱桃边缘和缺陷的二值图像如图9所示，将其和上一步时已储存的边缘轮廓相加，消去其外部轮廓，即可得到最后的缺陷图。 图8. 缺陷分割流程图 图9. 边缘亮度补偿及阈值分割 在进行高斯平滑并均值滤波后，还需进行闭操作筛选，而上一步的轮廓也需要进一步做膨胀处理。这样做的主要目的仍然是为了过滤噪声及加强图像以获得更准确的图像。其中闭操作筛选是用于去除图像中的暗的细节部分并保持亮的部分不受影响，防止将图像的暗点误判为缺陷。膨胀操作的目的则是为了加强轮廓效果，消除轮廓获取时存在的间断点，不相连小区域等。 最终缺陷如图10所示。 3.4. 缺陷樱桃筛选 在上一步得到包含樱桃边缘及缺陷的图像后，需要记录此时的各樱桃轮廓信息并计算每个樱桃的近 图10. 最终缺陷图 Table 1 Experimental dat 类型 样本数 检测为缺陷果 正确率 缺陷果 23 19 82.6% 正常果 77 7 90.9% 表1. 实验数据 似形心以便于此处进行筛选时对缺陷樱桃的定位。在定位结束后将位置信息传递给下机位的气吸筛选机构，由筛选机构将有问题樱桃吸出。 经测试，该气吸筛选机构工作效率较高筛选速度快，基本能够满足实时检测筛选的工业需求。