2019 IEEE Conference on Sustainable Utilization and Development in Engineering and Technologies (CSUDET) 一个会议
增材制造异常检测与分类基于视觉的系统
本文提出了一种在 3D 打印机上安装基于视觉的系统的方法,以便在打印过程中检测和分类异常。
因此,引入质量监测检查打印过程,以确保发生缺陷最小,如果出现缺陷,减少打印材料的浪费。该项目使用聚乳酸(PLA)材料作为印刷材料进行。打印过程被分成几个检查点,以捕获产品的顶部表面。
本文回顾了几种流行的图像处理技术。使用 Raspberry Pi (树莓派)拍摄的图像使用 Python OpenCV 处理并分类为有缺陷的和非有缺陷的组。进行Hu矩分析,提取捕获图像和模板图像的二值特征的信息。采用几种形状距离公式以及不同Hu矩因子的组合来提高成功检测的速度。检测结果在检测分类矩阵中呈现,同时计算检测成功率和误报率。
形态学操作可以分为两类,即二值图像的二值形态滤波和灰度图像的灰度形态滤波。
Campbell等人[3]使用形态学操作来检测编织瓷砖的缺陷,而Rahaman等人[4]将这种技术用于陶瓷瓷砖。Koch等人[5]应用形态学操作来检测民用基础设施的缺陷,例如地下埋管。有四种传统的二元形态滤波操作,分别是侵蚀、膨胀、打开和关闭[6]。Vanajakshi 等人使用基本形态学操作来处理纹理图像,然后计算矩不变量 [7]。
形态学操作是在应用其他技术实现更高检测率的缺陷之前预处理方法。Huang等人基于Hu矩不变量进行了分析,研究了图像缩放和旋转对Hu矩不变量值的影响。他们的结果表明,图像分辨率对于保留图像特征很重要,矩不变量在不同的图像旋转角度[8]上有所不同。
Vanajakshi等人利用Hu Moments研究了砖、花岗岩、大理石、瓷砖和马赛克等一些纹理图像形状种群的统计数据。然后使用 Hu 矩来提取有关纹理特征的信息。在他们的论文中,导出了 10 个基于区域的矩,用于将纹理分类为其原始组 [7]。Snezana等人在他们的论文中建立了一个识别算法,根据手写数字对应的Hu矩对手写数字进行分类。Hu 矩用作特征提取方法,SVM 作为十个数字的分类器,但他们的工作 [9] 中没有包含预处理。
第一步是将RGB图像转换为灰度图像。
然后对图像进行膨胀和侵蚀过程以去除不需要的噪声,然后对灰度图像进行二值化。
然后调用结构分析将图像旋转到直立位置以减少误差。
应用Hu矩来研究捕获模型的形状。
形状距离公式用于计算和分析缺陷的正确分类率。
膨胀使用特定集合区域中像素的最高值替换集合区域中的所有像素值,并以更高的强度值扩展像素,侵蚀使用特定集合区域中像素的最低值替换集合区域中的所有像素值,并用更高的强度值缩小像素。
特定区域中的像素数量取决于所使用的结构元素(strel)大小和形状。侵蚀和膨胀用于去除3D打印过程中捕获的图像中的噪声。
接下来,使用其尺度范围为 0 到 255 的特定阈值级别对图像进行二值化。
Hu距(Hu Moments)是一种用于描述图像形状的特征向量。这些特征向量是基于图像的归一化中心矩(normalized central moments)计算而来的。Hu距最初由M. K. Hu于1962年提出,它们在图像处理和计算机视觉中广泛用于形状分析和图像识别任务。
Hu距的主要优点之一是它们对图像旋转、平移和尺度变换具有不变性,这使它们在图像匹配和识别中非常有用。具体来说,Hu距是由归一化中心矩计算而来的,这些中心矩是图像像素分布的统计特征。通过一系列的数学变换,可以计算出七个独立的Hu距,分别记为Hu1、Hu2、...、Hu7。
其中 x,y 是像素位置的坐标,I(x, y) 是强度值。
尺度不变的、归一化的核心阶矩(i+j)
使用 Hu 矩分析,使用归一化中心矩计算一组 7 个值。
由于归一化中心矩,Hu矩的前6个值是几何、平移、尺度不变的。由于 Hu 矩的七个值范围太宽,因此对数变换用于使值集具有可比性。log 变换 Hu 矩。
这些Hu距具有以下特性:
"""
Time:2023/9/18 16:42
Author:ECCUSYB
"""
# ============hu不变矩==============
# Hu不变矩的性质:(1)图像形状平移不变性;(2)图像形状尺度不变性;(3)图像形状旋转不变性。
# Hu不变矩的应用与意义:(1)图像形状匹配;(2)图像形状区分;(3)图像形状相似度计算。
import cv2
from datetime import datetime
import numpy as np
if __name__ == '__main__':
# t1 = datetime.now()
fp = 'images/bad.png'
img = cv2.imread(fp)
img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
moments = cv2.moments(img_gray)
humoments = cv2.HuMoments(moments)
# 因为直接计算出来的矩可能很小或者很大,因此取对数好比较,这里的对数底数为e,通过对数除法的性质将其转换为以10为底的对数,一般是负值,因此加一个负号将其变为正的
humoments = -(np.log(np.abs(humoments))) / np.log(10) # 同样建议取对数
print(moments)
cv2.moments()函数来获取图像的轮廓特征,通常情况下,我们将获取到的轮廓特征称为轮廓矩。
空间矩
零阶矩:m00 --轮廓的面积
一阶矩:m10,m01 --用来确定图像的灰度中心
二阶矩:m20,m11,m02 --惯性矩
三阶矩:m30,m21,m12,m03
中心矩
二阶中心矩:mu20,mu11,mu02
三阶中心矩:mu30,mu21,mu12,mu03
归一化中心矩
二阶Hu矩:nu20,nu11,nu02
三阶Hu矩:nu30,nu21,nu12,nu03
bad.png、bad2.png --只是旋转了一下,Hu矩是一样的
[3] J. G. Campbell and F. Murtagh, "Automatic visual inspection of woven textiles using a two-stage defect detector," Opt. Eng., vol. 37, no. 9, pp. 2536–2542, 1998.
[4] G. Rahaman and M. Hossain, "Automatic Defect Detection and Classification Technique from Image: a special case using ceramic tiles," arXiv Prepr. arXiv0906.3770, vol. 1, no. 1, pp. 22–30, 2009.
[5] C. Koch, K. Georgieva, V. Kasireddy, B. Akinci, and P. Fieguth, "A review on computer vision based defect detection and condition assessment of concrete and asphalt civil infrastructure," Adv. Eng. Informatics, vol. 29, no. 2, pp. 196–210, 2015.
[6] S. Rani, D. Bansal, and B. Kaur, "Detection of Edges Using Mathematical Morphological Operators," Open Trans. Inf. Process., vol. 1, no. 1, pp. 17–26, 2014.
[7] B. Vanajakshi, "Classification Of Boundary And Region Shapes Using Hu-Moment Invariants," Indian J. Comput. Sci. Eng., vol. 3, no. September, pp. 386–393, 2012.
[8] D. Li, "Analysis of moment invariants on image scaling and rotation,"Innov. Comput. Sci. Softw. Eng., no. May 2010, pp. 415–419, 2010.
[9] S. Zekovich and M. Tuba, "Hu Moments Based Handwritten Digits Recognition Algorithm," Recent Adv. Knowl. Eng. Syst. Sci., no. 44006, pp. 98–103, 2013.