一种基于图像处理的金属表面缺陷在线检测装置和方法
技术领域
本发明属于金属缺陷检测设备领域,具体涉及一种基于图像处理的高反光金属表面缺陷在线检测装置和方法。
背景技术
金属表面局部物理或化学性质不均匀的区域。包括非金属夹杂物及其他第二相颗粒、位错或晶界露头、吸附杂质原子、表面空位或台阶等。表面缺陷是原子活性较高的部位,常常成为金属腐蚀的始发处。
硫化后的橡胶制品,有时表面会有疤、起泡、裂口、海绵状、色泽不一致、重皮等缺陷,这些缺陷多半由于硫化压力不足、硫化前表面有污损、胶料硫化速度过快或欠硫过硫等原因造成,为避免出现这些弊病,应严格操作要求,控制好工艺条件。
现有技术中,往往对对金属表面的缺陷检测效率不高,且仪器造价昂贵,影响了金属制品质量的检测精度与效率。
发明内容
针对现有技术中对金属表面的缺陷检测效率不高,且仪器造价昂贵,影响了金属制品质量的检测精度与效率的问题,本发明提供一种基于图像处理的高反光金属表面缺陷在线检测装置和方法,其目的在于:降低金属缺陷检测成本,提高工件缺陷检测效率和速度。
本发明采用的技术方案如下:
一种基于图像处理的金属表面缺陷在线检测装置,包括传送带与检测装置,所述检测装置连接有计算机,其特征在于,所述检测装置设置在传动带的顶部与侧部,所述传送带上设置有数个待测件,其中检测装置分别检测待测件的表面缺陷与切口是否方正。
采用上述方案,可通过设置在传送带顶部与侧部的检测装置同时对传送带上的待测件进行表面及切口的缺陷检测,大大提高了金属表面缺陷的检测效率。
所述检测装置包括第一相机与第二相机,所述第一相机的底部固定设置有同轴光源,所述同轴光源的一侧摄入有平行光。
采用上述方案,相机位于同轴光源上方若干距离,经过同轴光源在高反光金属表面的均匀反射,有效地抑制了反射噪声,为算法提取有效的缺陷奠定了基础,同轴光源能够凸显物体表面不平整,克服表面反光造成的干扰,其主要用于检测物体平整光滑表面的碰伤、划伤、裂纹和异物,适合于真实反映高反光金属的表面信息,在算法处理时能够较好地抑制高光反射噪声,也是我们在尝试多种光源之后觉得效果最好的光源。
所述计算机配置有图像处理系统与数据分析系统。
一种基于图像处理的金属表面缺陷在线检测装置的方法,其特征在于,包括以下步骤:
步骤A:开启第一相机与第二相机,并对图像进行滤波;
步骤B:通过第一相机进行待测金属的表面缺陷检测,并将特征、实时画面显示于QT界面;
步骤C:通过第二相机进行待测金属的切口缺陷检测,并将特征、实时画面显示于QT界面。
采用上述方案,能够有效地提高工件缺陷检测的效率和速度,且整体结构简单,成本交底,能够有效地降低检测成本以及提高企业竞争力。
所述步骤B具体为:
B1:第一相机调用OpenCV接口adaptiveMethod,通过自定义分块大小Block Size和常数项C获得自适应阈值二值化后的图像,并用OpenCV接口findContours来检测阈值化后的物体轮廓;
B2:将检测到的物体轮廓坐标化;
B3:定义一个宽度范围,并根据此宽度范围进行物体轮廓筛选,将在宽度范围内的轮廓加入合集list,得到待测件的轮廓集合;
B4:将集合内的每个待测件轮廓内的若干轮廓进行筛选,排除待测件内缺陷以外的轮廓;
B5:将待测件轮廓内的黑线特征与缺口特征分别进行筛选。
所述步骤B4的具体步骤为:
B41:获取坐标化后的待测件轮廓上的四点坐标,根据两点确定一条直线的方法,计算得到两边直线方程。
B42:通过for循环遍历每个待测件轮廓内的若干轮廓,并求出待测件轮廓内每个轮廓到待测件两边的距离,分别为d1与d2,并取其最小值min length
B43:通过预先设定的缺陷到待测件最短边的距离与整个待测件的占比rate fix,设定范围[rate min,rate max],若rate min<rate fix<rate max,则为缺陷轮廓,钢管表面其他轮廓将被排除。
所述步骤B5的具体步骤为:
B51:设定两个范围[detect_width_min,detect_width_max]、[detect_height_min,detect_height_max]和一个常数min numm;
B52:求出缺陷轮廓的宽度rect_detect[1][1],长度rect_detect[1][0],若detect_width_min<rect_detect[1][1]<detect_width_max且detect_height_min<rect_detect[1][0]<detect_height_max,那么我们就认定该轮廓这是黑线;
B52:若rect_detect[1][1]>detect_width_max,则认定为该轮廓是缺口。
所述步骤C的具体步骤为:
C1:通过调用OpenCV接口Canny算子对边缘轮廓进行提取;
C2:将边缘轮廓进行膨胀处理和降噪处理;
C3:将膨胀处理后的边缘轮廓通过OpenCV接口arcLength计算轮廓周长,再通过结构approxPolyDP获取膨胀后的多边形边长,再通过len函数计算边长数量count length;
C4:对边长数量count length进行判断,若count length=4,则说明切口方正,若count length=5或其他,说明切口不方正。
综上所述,由于采用了上述技术方案,本发明的有益效果是:
1.可通过设置在传送带顶部与侧部的检测装置同时对传送带上的待测件进行表面及切口的缺陷检测,大大提高了金属表面缺陷的检测效率。
2.相机位于同轴光源上方若干距离,经过同轴光源在高反光金属表面的均匀反射,有效地抑制了反射噪声,为算法提取有效的缺陷奠定了基础,同轴光源能够凸显物体表面不平整,克服表面反光造成的干扰,其主要用于检测物体平整光滑表面的碰伤、划伤、裂纹和异物,适合于真实反映高反光金属的表面信息,在算法处理时能够较好地抑制高光反射噪声,也是我们在尝试多种光源之后觉得效果最好的光源。
3.能够有效地提高工件缺陷检测的效率和速度,且整体结构简单,成本交底,能够有效地降低检测成本以及提高企业竞争力。
附图说明
本发明将通过例子并参照附图的方式说明,其中:
图1是本发明的一种实施方式的算法流程图;
图2是本发明的一种实施方式的装置结构示意图。
图3是本发明的一种实施方式的效果图。
附图标记:1-传送带;2-待测件;3-同轴光源;4-平行光;5-第一相机;6-计算机;7-第二相机。
具体实施方式
本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。
下面结合图1、图2对本发明作详细说明。
实施例一:
一种基于图像处理的金属表面缺陷在线检测装置,包括传送带与检测装置,所述检测装置连接有计算机,其特征在于,所述检测装置设置在传动带的顶部与侧部,所述传送带上设置有数个待测件2,其中检测装置分别检测待测件2的表面缺陷与切口是否方正。
所述检测装置包括第一相机5与第二相机7,所述第一相机5的底部固定设置有同轴光源,所述同轴光源3的一侧摄入有平行光4。
所述计算机6配置有图像处理系统与数据分析系统。
一种基于图像处理的金属表面缺陷在线检测装置的方法,其特征在于,包括以下步骤:
步骤A:开启第一相机与第二相机,并对图像进行滤波;
步骤B:通过第一相机进行待测金属的表面缺陷检测,并将特征、实时画面显示于QT界面;
步骤C:通过第二相机进行待测金属的切口缺陷检测,并将特征、实时画面显示于QT界面。
所述步骤B具体为:
B1:第一相机调用OpenCV接口adaptiveMethod,通过自定义分块大小Block Size和常数项C获得自适应阈值二值化后的图像,并用OpenCV接口findContours来检测阈值化后的物体轮廓;
B2:将检测到的物体轮廓坐标化;
B3:定义一个宽度范围,并根据此宽度范围进行物体轮廓筛选,将在宽度范围内的轮廓加入合集list,得到待测件的轮廓集合;
B4:将集合内的每个待测件轮廓内的若干轮廓进行筛选,排除待测件内缺陷以外的轮廓;
B5:将待测件轮廓内的黑线特征与缺口特征分别进行筛选。
所述步骤B4的具体步骤为:
B41:获取坐标化后的待测件轮廓上的四点坐标,根据两点确定一条直线的方法,计算得到两边直线方程。
B42:通过for循环遍历每个待测件轮廓内的若干轮廓,并求出待测件轮廓内每个轮廓到待测件两边的距离,分别为d1与d2,并取其最小值min length
B43:通过预先设定的缺陷到待测件最短边的距离与整个待测件的占比rate fix,设定范围[rate min,rate max],若rate min<rate fix<rate max,则为缺陷轮廓,钢管表面其他轮廓将被排除。
所述步骤B5的具体步骤为:
B51:设定两个范围[detect_width_min,detect_width_max]、[detect_height_min,detect_height_max]和一个常数min numm;
B52:求出缺陷轮廓的宽度rect_detect[1][1],长度rect_detect[1][0],若detect_width_min<rect_detect[1][1]<detect_width_max且detect_height_min<rect_detect[1][0]<detect_height_max,那么我们就认定该轮廓这是黑线;
B52:若rect_detect[1][1]>detect_width_max,则认定为该轮廓是缺口。
所述步骤C的具体步骤为:
C1:通过调用OpenCV接口Canny算子对边缘轮廓进行提取;
C2:将边缘轮廓进行膨胀处理和降噪处理;
C3:将膨胀处理后的边缘轮廓通过OpenCV接口arcLength计算轮廓周长,再通过结构approxPolyDP获取膨胀后的多边形边长,再通过len函数计算边长数量count length;
C4:对边长数量count length进行判断,若count length=4,则说明切口方正,若count length=5或其他,说明切口不方正。
1.在上述实施例一种,其第一相机5的底部设置的同轴光源,由于四周采用了黑色的边框限制了发光角度,故该光源可放置于待测件一定距离之外而不被外界照明影响,因而本装置的抗环境光噪声能力很轻,其中同轴光源配置电源配适器,可根据环境适当调整明暗,使缺陷相更加突出。其中第一相机5用于检测待测件表面的若干缺陷,第二相机用于检测待测件切口是否方正,第一相机5与第二相机分辨率都是244+px*1944px,在最大分辨率的条件下,最大帧率为6帧/秒,第一相机5的镜头焦距为8mm,第二相机镜头教具为12mm,第一相机5放置于距离同轴光上表面2-5cm,并辅助以一定遮挡措施,用于消除顶部光源透过同轴光源上表面造成的干扰,第二相机放置于传送带顶端距离钢管放置位置20-30cm放置,或者通过载物台夹持于距离钢管上表面2-3cm为宜,同时相机自带光圈也可根据环境调节明暗,根据我们实验得知,在将电源适配器亮度尽可能调大的前提下,使用较小的光圈能够获得对比度更高的画质。所述的图像处理系统通过相机自带的USB2.0数据线连接PC端,基于Python作为开发语言来识别和分类缺陷,同时使用pyqt5工具包作为前端开发工具,将实时画面以及处理画面以图形化形式展示。所述的数据分析系统是通过将采集到的缺陷类型,通过socket通信方式写入数据库,后端系统再通过读取到该数据之后分析处理。
其中传送带选用1m宽度传送带,待测件一般为25cm左右,同轴光源外观尺寸在200cm左右,所以为了充分利用传送带资源,可同时搭建4个采集系统,且彼此互不干扰,有效地提高了效率。
其中图像处理系统是基于Python语言以及pyqt5作为开发工具包来进行系统开发,Python集成了OpenCV这个计算机视觉开源库,里面提供的很多优秀的传统图像处理算法接口,很好地拓宽了开发者的选择,而pyqt5以图形化的方法编程,基于信号与槽的工作方式,只需使用Python语言处理好逻辑关系就能通信,简化了前端布局的复杂度。
其中数据分析系统是根据图像处理系统识别到的缺陷类型,通过socket通信方式传送写入数据库,然后服务器再读取数据库里的这些数据,根据这些缺陷特征进行数据分析,根据不同编号的钢管每个面的缺陷类型、个数等信息,依据客户的要求设计评判指标,反馈出该钢管是否合格。
其中B2步骤为同时通过设置合理地高斯核函数以及自定义分块大小Block Size和常数项C,都能够有效减少噪声轮廓,从而减少程序处理时间。通过调用OpenCV接口minAreaRect,将每一个轮廓用最小的矩形框框出来,返回的矩形框rect包含了具体的四个点的坐标、边长、角度等信息,其中不同的角度范围对应的不同的四个点的下标,具体可分为钢管往左偏,即-45.0<angle<0.0时,此时的坐标:左下(box[0][0],box[0][1]),左上(box[1][0],box[1][1]),右上(box[2][0],box[2][1]),右下(box[3][0],box[3][1]);往右偏即-90.0<angle<-45.0,此时的坐标:左下(box[1][0],box[1][1]),左上(box[2][0],box[2][1]),右上(box[3][0],box[3][1]),右下(box[0][0],box[0][1]);摆正即angle=-90.0或者angle=0.0时同往右偏,所以需要分情况讨论;接下来就根据这些具体的信息来对轮廓进行筛选;
其中步骤B41具体为:将步骤B2得到的物体轮廓四点坐标,再根据两点确定一条直线的方法,分别计算出左右两条直线方程的斜率k和截距b,其中(x_detect,y_detect)可以为任一点坐标,为方便起见,我们将它特定化为轮廓矩形框的中心坐标(rect[0][0],[0][1]),那么左边直线:
k1=(y_left_upper-y_left_lower)/(x_left_upper-x_left_lower)
b1=y_left_lower-k*x_left_lower
y=k1*x_detect-y_detect+b1
右边直线:
k2=(y_right_upper-y_right_lower)/(x_right_upper-x_right_lower)
b2=y_right_lower-k*x_right_lower
y=k2*x_detect-y_detect+b2
其中步骤C1选择Canny算子的理由为,Canny算子的方法效果要更好。基于Canny算子的方法只需要认为设定两个阈值thresh1、thresh2,其中较大的阈值thresh2用于检测图像中明显的边缘,但是检测出来是断断续续的,此时较小的阈值thresh1用于将这些间断的边缘连接起来,尽管如此,分割效果依旧不太连续,接下来使用形态学膨胀的方法,使不连续但是靠得很近的边缘连起来,使之尽可能成为一个整体,从而减少了轮廓的数量,缩短了遍历轮廓所需的时间,也方便后面识别出完整的形状;
以上所述实施例仅表达了本申请的具体实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请保护范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请技术方案构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。