视觉缺陷检测常用算法
- 格式:docx
- 大小:3.80 KB
- 文档页数:3
印刷质量缺陷的视觉检测原理综述⼀、应⽤背景印刷品作为产品包装的⼀种主要形式,具有外观精美、清洁卫⽣、成本低廉、使⽤⽅便等优点,在众多⾏业得到了⼴泛的应⽤,其特点是材质多样、⼯艺复杂、质量要求⾼。
在本问题域中,印刷品主要涉及三个主要类型:不⼲胶标签、烟盒包装和塑料薄膜软包装。
其中,不⼲胶标签主要包括:药品标签、电⼦产品标签、⽇化品标签、⾷品标签;烟盒包装包括:软盒包装和硬盒包装;塑料薄膜软包装主要包括:药品包装、⾷品包装、⽇化品包装。
标签、烟包和软包装典型的产品图像如图1~图3所⽰。
图 1 药品标签图 2 烟包图 3 塑料软包装印刷品⽣产过程中可能会产⽣各种各样的缺陷,如墨点、异物、⽂字残缺、漏印、⾊差、套印不准、脏点、⼑丝、拖墨、划伤、溢胶、⽓泡等。
这些缺陷⼀旦出现在产品包装上,产品视觉观感将⼤打折扣,严重影响产品的品牌、降低客户满意度。
⽬前,印刷企业主要以频闪灯照明、⼈⼯粗略局部抽检进⾏质量控制。
由于⼈眼的局限性,质量得不到有效控制。
随着⽤户对产品品质要求的不断提⾼以及⾏业竞争的加剧,传统的以⼈⼯抽检为主的质量检测⼿段已经严重制约了企业竞争⼒的提⾼,⽤⾃动化质量检测设备代替⼈⼯是必然趋势。
⽬前,市场中已经出现了多种⾃动化质量检测系统,⼤都基于视觉图像进⾏产品外观质量检测。
总体⽽⾔,国外产品由于综合性能具有较⼤优势,占据着⼤部分⾼端市场。
国内产品凭借价格和服务优势,占据着中、低端市场。
未来,国内产品要在检测速度、检测能⼒、易⽤性、产品外观、可靠性等⽅⾯进⾏全⾯提升,才能更好地服务国内客户,乃⾄开拓国际市场。
因此,产品技术升级迫在眉睫。
⼆、检测原理典型的印刷品检测算法主要包括三⼤类:(1)有参照判决。
将被检测图像与标准模型⽐对,包括图像级的逐点⽐对,特征级的特征⽐对。
标准模板的获取⽅式,包括基于PDF设计⽂件和基于好品统计两类。
(2)⽆参照校验。
根据事先定义的产品特征,检测图像中指定区域是否存在违反规则的情况。
使用机器视觉算法进行缺陷检测的技巧分享随着科技的不断发展,机器视觉技术在工业领域中的应用越来越广泛,其中之一就是缺陷检测。
通过机器视觉算法进行缺陷检测可以高效而精准地识别出产品缺陷,提高生产质量,并降低人工检查的成本。
本文将分享一些使用机器视觉算法进行缺陷检测的技巧,希望对您有所帮助。
首先,建立合适的训练数据集是进行机器视觉缺陷检测的关键。
训练数据的质量和数量直接影响模型的准确性和泛化能力。
为了建立一个良好的训练数据集,我们需要:1. 采集大量的样本图片:足够多的正常样本和具有各种缺陷的样本图片可以帮助模型学习辨别正常产品和缺陷产品之间的差异。
2. 标记样本:对采集的样本图片进行标记,即给每个图片打上标签,标明其是正常样本还是有缺陷的样本,以便对数据进行监督式学习。
3. 数据增强:通过旋转、翻转、裁剪、缩放等方式对样本图片进行增强,以扩充数据集并增加模型的鲁棒性。
其次,选择合适的机器视觉算法进行缺陷检测。
常用的算法包括传统的机器学习算法和深度学习算法。
根据具体情况选择合适的算法。
1. 传统机器学习算法:如支持向量机(SVM)、随机森林(Random Forest)等。
传统机器学习算法相对较简单,适用于数据量较小或特定场景下,而且容易解释模型的预测结果。
2. 深度学习算法:如卷积神经网络(Convolutional Neural Network,CNN)、循环神经网络(Recurrent Neural Network,RNN)等。
深度学习算法通常需要大量的训练数据,但在处理复杂的视觉任务上具有优势,能够捕捉更多的特征和语义信息。
不同的算法适用于不同的场景,需要根据具体需求进行选择。
然后,进行合适的特征提取和预处理。
特征提取是机器视觉算法中的关键步骤,它能够从图像中提取有用的特征用于缺陷检测。
常见的特征提取方法包括:1. 形状特征:如边缘、角点、轮廓等特征可以帮助识别产品的形状和轮廓。
2. 纹理特征:如灰度共生矩阵(Gray-level Co-occurrence Matrix,GLCM)、局部二值模式(Local Binary Patterns,LBP)等可以用于描述图像的纹理信息。
使用计算机视觉技术进行表面缺陷检测的方法随着制造业的发展和自动化程度的提高,对产品质量的要求也越来越高。
表面缺陷是制造过程中常见的问题之一,它们可能影响产品的性能、可靠性和外观。
为了提高产品质量控制的效率和准确性,采用计算机视觉技术进行表面缺陷检测成为了一种主流方法。
计算机视觉技术是指利用计算机来模拟人类视觉系统,通过图像采集、图像处理、模式识别等方法对图像进行分析和处理的技术。
在表面缺陷检测中,计算机视觉技术可以替代传统的人工视觉检测,能够快速准确地检测出各种类型的缺陷。
下面我们将介绍几种常用的计算机视觉技术在表面缺陷检测中的应用方法。
1. 全局特征分析法全局特征分析法是一种利用图像全局特征进行表面缺陷检测的方法,它不考虑每个像素的特征,而是对整个图像进行分析。
这种方法适用于表面缺陷较大且数量有限的情况。
常用的全局特征包括灰度直方图特征、颜色特征和纹理特征等。
通过采集样本数据,训练一个分类器来对新的图像进行分类,从而判断是否存在表面缺陷。
2. 基于特征提取的方法基于特征提取的方法通过提取图像中的关键特征,并对这些特征进行分析和比较来判断是否存在缺陷。
常用的特征包括边缘特征、纹理特征、色彩特征等。
可以使用边缘检测算法如Canny算法提取边缘信息,采用纹理分析方法如Gabor滤波器来提取纹理特征。
通过对提取到的特征进行分析和比较,可以准确地检测出表面缺陷。
3. 基于深度学习的方法近年来,深度学习在计算机视觉领域取得了重大突破。
在表面缺陷检测中,基于深度学习的方法具有很高的准确性和鲁棒性。
使用卷积神经网络(CNN)可以提取图像中的特征,并能够进行自动分类和识别。
通过大量的样本数据进行训练,深度学习模型能够学习到丰富的特征表示,从而对表面缺陷进行准确的检测。
4. 基于图像分割的方法表面缺陷通常表现为图像中的一些局部区域,并且与周围区域有明显的边界。
基于图像分割的方法可以将图像分割成多个区域,并对每个区域进行独立的分析。
基于机器视觉的表面缺陷检测系统的算法研究及软件设计一、本文概述随着工业制造技术的飞速发展,产品质量与生产效率日益成为企业竞争力的核心要素。
表面缺陷检测作为产品质量控制的重要环节,其准确性和效率直接影响到产品的整体质量和企业的生产效益。
传统的表面缺陷检测方法往往依赖于人工目视检测,这种方法不仅效率低下,而且容易受到人为因素的影响,导致漏检和误检的情况时有发生。
因此,开发一种基于机器视觉的表面缺陷检测系统,实现对产品表面缺陷的快速、准确检测,已成为当前研究的热点和难点。
本文旨在研究基于机器视觉的表面缺陷检测系统的算法,并设计相应的软件系统。
通过对图像采集、预处理、特征提取、缺陷识别与分类等关键算法进行深入研究,构建一套高效、稳定的表面缺陷检测系统。
本文还将探讨如何结合机器学习、深度学习等先进算法,提高系统的自适应能力和检测精度。
本文还将关注软件系统的架构设计、界面设计、用户交互等方面的内容,确保系统的易用性和可维护性。
通过本文的研究,旨在为表面缺陷检测领域的实际应用提供理论支持和技术指导,推动机器视觉技术在工业制造领域的广泛应用,为企业提高产品质量和生产效率提供有力保障。
二、机器视觉技术基础机器视觉是一门涉及、图像处理、模式识别、计算机视觉等多个领域的交叉学科。
它利用计算机和相关设备模拟人类的视觉功能,实现对目标对象的识别、跟踪和测量,进而完成相应的自动化处理任务。
在表面缺陷检测领域,机器视觉技术发挥着至关重要的作用。
机器视觉系统主要由图像采集、图像处理、特征提取和缺陷识别等模块组成。
图像采集模块负责获取待检测物体表面的图像信息,其性能直接影响到后续处理的准确性和效率。
图像处理模块则是对采集到的图像进行预处理,如去噪、增强、滤波等操作,以提高图像质量,为后续的特征提取和缺陷识别提供有利条件。
特征提取是机器视觉系统中的关键环节,它通过对处理后的图像进行特征分析和提取,将关键信息从海量数据中筛选出来。
在表面缺陷检测中,特征提取的主要任务是提取出缺陷区域的形状、大小、颜色、纹理等关键特征,为后续的缺陷识别提供有效依据。
halcon——缺陷检测常⽤⽅法总结(光度⽴体)引⾔机器视觉中缺陷检测分为⼀下⼏种:blob分析+特征模板匹配(定位)+差分光度⽴体特征训练测量拟合频域+空间域结合:深度学习前⼀篇总结了频域与空间域的结合使⽤,本篇就光度⽴体的缺陷检测做⼀个总结。
光度⽴体在⼯业领域,表⾯检测是⼀个⾮常⼴泛的应⽤领域。
在halcon中,使⽤增强的光度⽴体视觉⽅法,三维表⾯检测被加强。
利⽤阴影可⽅便快速的检测物体表⾯的缺⼝或凹痕。
使⽤光度⽴体视觉⽅法可在复杂图像中轻松找到表⾯缺陷。
适⽤场景:光度⽴体法可以看作是2.5维,适⽤于检测⾦属物料上⾯的凹凸特征。
函数原理:1.通过photometric_stereo算⼦获得表⾯梯度图像,该算⼦可以得到表⾯梯度图像和反照率图像。
需要输⼊多张从不同⾓度照明所得到的图像。
2.通过derivate_vector_field算⼦获得⾼斯(平均)曲率图像,该算⼦中需要输⼊表⾯梯度图像。
光源:光度⽴体法不需要特殊的光源,只需要从不同的⾓度打光⽽已。
1 光度⽴体法的典型应⽤:光度⽴体法的典型应⽤是检测物体表⾯微⼩变化,例如,受打光⽅向影响的缺陷。
⽐如⾮平⾯的打印检测(个⼈理解:普通打光⽅式受光线影响特征成像不理想,可以通过光度⽴体法检测)。
值得注意的是:光度⽴体法不适⽤于绝对⾼度的重建,也就是说,它不能替代传统的3D重建算法,如对焦测距和激光三⾓测量。
2 光度⽴体法的局限性:光度⽴体法基于Woodham算法。
因此:⼀⽅⾯假定相机是⽆畸变成像,也就是说必须使⽤远⼼镜头或者长焦镜头。
另⼀⽅⾯假定每⼀个光源发射的光束都是平⾏且均匀的,也就是说必须使⽤具有均匀强度的远⼼照明光源,或者使⽤远距离的点光源代替。
此外,物体必须具有朗伯反射特性,即它必须以漫反射的⽅式反射⼊射光。
有镜⾯反射的物体或者区域(镜⼦或者光滑的表⾯)不能使⽤此⽅法,会得到⼀个错误的结果。
3 采集图像设置:带有远⼼镜头的相机必须与被测物体表⾯垂直安装,在采集多幅图像时,⼀定要保证相机和物体不被移动。
机器视觉表面缺陷检测综述机器视觉表面缺陷检测综述摘要:机器视觉表面缺陷检测是一种利用计算机视觉技术对物体表面进行检测和识别的方法。
随着图像处理技术和计算机硬件性能的不断提升,机器视觉在表面缺陷检测领域取得了显著的进展。
本文综述了机器视觉表面缺陷检测的方法和技术,并对其应用领域和未来发展方向进行了展望。
1. 引言表面缺陷是指物体表面的瑕疵或损伤,如划痕、裂纹、凹坑等。
在工业生产和制造过程中,表面缺陷可能会导致产品质量不合格或功能性降低,因此表面缺陷检测对于保证产品质量和提高生产效率至关重要。
传统的表面缺陷检测方法主要依靠人眼进行目视检测,但这种方法存在主观性强、易疲劳以及检测速度慢等问题。
而机器视觉表面缺陷检测借助计算机视觉技术,可以实现自动化、高效率的表面缺陷检测,大大提高了检测精度和产品质量。
2. 机器视觉表面缺陷检测的方法和技术机器视觉表面缺陷检测的方法主要包括图像获取、特征提取和缺陷检测三个步骤。
图像获取是指通过相机或其他图像采集设备获取待检测物体表面的图像信息。
在图像获取过程中,需要考虑光照条件、拍摄角度等因素,以保证获取清晰、准确的图像。
特征提取是指从图像中提取出有效的特征量,用于描述物体表面的缺陷。
常用的特征提取方法包括灰度共生矩阵、局部二值化模式、高斯滤波等。
缺陷检测是指利用提取得到的特征量对图像进行缺陷检测和识别。
常用的缺陷检测方法包括阈值分割、边缘检测、区域生长等。
此外,为了进一步提高缺陷检测的准确性和可靠性,还可以采用机器学习、深度学习等方法来训练和优化模型。
3. 机器视觉表面缺陷检测的应用领域机器视觉表面缺陷检测广泛应用于各个行业和领域,包括制造业、电子业、食品安全等。
在制造业中,机器视觉表面缺陷检测可以应用于产品质量检测、零件检测、半导体芯片检测等。
通过自动化的表面缺陷检测,可以有效提高产品质量和制造效率。
在电子业中,机器视觉表面缺陷检测可以应用于PCB板检测、芯片缺陷检测等。
halcon——缺陷检测常⽤⽅法总结(模板匹配(定位)+差分)引⾔机器视觉中缺陷检测分为⼀下⼏种:blob分析+特征模板匹配(定位)+差分光度⽴体:特征训练测量拟合频域+空间域结合:深度学习本篇主要总结⼀下缺陷检测中的定位+差分的⽅法。
即⽤形状匹配,局部变形匹配去定位然后⽤差异模型去检测缺陷。
模板匹配(定位)+差分整体思路(形状匹配):1. 先定位模板区域后,求得模板区域的坐标,创建物品的形状模板create_shape_model,注意把模板的旋转⾓度改为rad(0)和rad(360)。
2. 匹配模板find_shape_model时,由于物品的缺陷使形状有局部的改变,所以要把MinScore设置⼩⼀点,否则匹配不到模板。
并求得匹配项的坐标。
3. 关键的⼀步,将模板区域仿射变换到匹配成功的区域。
由于差集运算是在相同的区域内作⽤的,所以必须把模板区域转换到匹配项的区域。
4. 之后求差集,根据差集部分的⾯积判断该物品是否有缺陷。
模板匹配(定位)+差分的⽅法主要⽤来检测物品损坏,凸起,破洞,缺失,以及质量检测等。
halcon例程分析:1,印刷质量缺陷检测(print_check.hdev)该例程⽤到了差异模型,将⼀个或多个图像同⼀个理想图像做对⽐,去找到明显的不同。
进⽽鉴定出有缺陷的物体。
差异模型的优势是可以直接通过它们的灰度值做⽐较,并且通过差异图像,⽐较可以被空间地加权。
变化模型检测缺陷的整体思路:1. create_variation_model —— 创建⼀个差异模型2. get_variation_model —— 获得差异模型3. train_variation_model —— 训练差异模型4. prepare_variation_model —— 准备差异模型5. compare_variation_model —— ⽐较模型与实例6. clear_variation_model —— 清除差异模型dev_update_off ()* 选择第1张图像创建形状模板read_image (Image, 'pen/pen-01')get_image_size (Image, Width, Height)dev_close_window ()dev_open_window (0, 0, Width, Height, 'black', WindowHandle)set_display_font (WindowHandle, 16, 'mono', 'true', 'false')dev_set_color ('red')dev_display (Image)* 把我感兴趣的区域抠出来,原则上范围越⼩越好,因为这样创建模板时⼲扰会少很多threshold (Image, Region, 100, 255)fill_up (Region, RegionFillUp)difference (RegionFillUp, Region, RegionDifference)shape_trans (RegionDifference, RegionTrans, 'convex')dilation_circle (RegionTrans, RegionDilation, 8.5)reduce_domain (Image, RegionDilation, ImageReduced)inspect_shape_model (ImageReduced, ModelImages, ModelRegions, 1, 20)gen_contours_skeleton_xld (ModelRegions, Model, 1, 'filter')* 获得抠图区域的中⼼,这是参考点area_center (RegionDilation, Area, RowRef, ColumnRef)* 创建形状模板create_shape_model (ImageReduced, 5, rad(-10), rad(20), 'auto', 'none', 'use_polarity', 20, 10, ShapeModelID)* 创建变化模型(⽤于和缺陷⽐较)create_variation_model (Width, Height, 'byte', 'standard', VariationModelID)* ⽂件夹中前15张图⽚是质量良好的,可以⽤来训练模板for I := 1 to 15 by 1read_image (Image, 'pen/pen-' + I$'02d')* 先寻找模板的实例find_shape_model (Image, ShapeModelID, rad(-10), rad(20), 0.5, 1, 0.5, 'least_squares', 0, 0.9, Row, Column, Angle, Score)if (|Score| == 1)if (|Score| == 1)* 使⽤仿射变换,将当前图像平移旋转到与模板图像重合,注意是当前图像转向模板图像vector_angle_to_rigid (Row, Column, Angle, RowRef, ColumnRef, 0, HomMat2D)affine_trans_image (Image, ImageTrans, HomMat2D, 'constant', 'false')* 训练差异模型train_variation_model (ImageTrans, VariationModelID)dev_display (ImageTrans)dev_display (Model)endifendfor* 获得差异模型get_variation_model (MeanImage, VarImage, VariationModelID)* 做检测之前可以先⽤下⾯这个算⼦对可变模型进⾏设参,这是⼀个经验值,需要调试者调整prepare_variation_model (VariationModelID, 20, 3)dev_set_draw ('margin')NumImages := 30* 可变模板训练完成后,我们终于可以进⼊主题,马上对所有图像进⾏缺陷检测,思想就是差分for I := 1 to 30 by 1read_image (Image, 'pen/pen-' + I$'02d')* 要注意做差分的两幅图像分辨率相同,当然也需要通过仿射变换把待检测的图像转到与模板图像重合* 先寻找模板的实例find_shape_model (Image, ShapeModelID, rad(-10), rad(20), 0.5, 1, 0.5, 'least_squares', 0, 0.9, Row, Column, Angle, Score) if (|Score| == 1)* 使⽤仿射变换,将当前图像平移旋转到与模板图像重合,注意是当前图像转向模板图像vector_angle_to_rigid (Row, Column, Angle, RowRef, ColumnRef, 0, HomMat2D)affine_trans_image (Image, ImageTrans, HomMat2D, 'constant', 'false')* 抠图reduce_domain (ImageTrans, RegionDilation, ImageReduced)* 差分(就是检查两幅图像相减,剩下的区域就是不同的地⽅了,与模板图像不同的地⽅就是缺陷)*这⾥可不能⽤difference做差分啊,halcon为变形模板提供了专门的差分算⼦:compare_variation_modelcompare_variation_model (ImageReduced, RegionDiff, VariationModelID)connection (RegionDiff, ConnectedRegions)* 特征选择:⽤⼀些特征来判断这幅图像印刷是否有缺陷,这⾥使⽤⾯积* 其实可以考虑利⽤区域⾯积的⼤⼩来判断缺陷的严重程度,这⾥就不过多讨论了select_shape (ConnectedRegions, RegionsError, 'area', 'and', 20, 1000000)count_obj (RegionsError, NumError)dev_clear_window ()dev_display (ImageTrans)dev_set_color ('red')dev_display (RegionsError)set_tposition (WindowHandle, 20, 20)if (NumError == 0)dev_set_color ('green')write_string (WindowHandle, 'Clip OK')elsedev_set_color ('red')write_string (WindowHandle, 'Clip not OK')endifendifif (I < NumImages)disp_continue_message (WindowHandle, 'black', 'true')stop ()endifendfor* 结语:如果发现前⾯作为训练变形模板的良好图像也被判定为NG,* 可以调整prepare_variation_model参数* 或者调整select_shape特征筛选的标准相关算⼦分析:create_variation_model(创建⼀个差异模型)create_variation_model(Width, Height, Type, Mode ,ModelID)//创建⼀个ID为ModelID,宽为Width,⾼为Height,类型为Type的差异模型参数参数Mode决定了创建标准图像和相应的变化图像的⽅法。
融合多尺度特征的YOLOv8裂缝缺陷检测算法目录一、内容描述 (2)二、相关工作 (3)2.1 YOLOv8模型简介 (4)2.2 裂缝缺陷检测研究现状 (5)2.3 多尺度特征融合方法综述 (6)三、融合多尺度特征的YOLOv8裂缝缺陷检测算法 (7)3.1 算法概述 (8)3.2 特征提取与融合策略 (9)3.2.1 多尺度特征提取 (10)3.2.2 特征融合方法 (11)3.3 损失函数设计 (12)3.4 网络结构优化 (14)四、实验结果与分析 (15)4.1 实验环境与参数设置 (16)4.2 实验结果展示 (17)4.3 结果分析 (18)4.3.1 特征提取与融合效果 (19)4.3.2 损失函数对模型性能的影响 (20)4.3.3 网络结构优化成果 (21)五、总结与展望 (22)5.1 主要工作与创新点 (23)5.2 研究局限性与未来工作展望 (24)一、内容描述YOLOv8是一款高性能的实时物体检测系统,其设计目标是在给定宽高比和分辨率的图像中准确检测出多个对象及其对应的位置和类别。
在某些情况下,如裂缝缺陷检测等特定应用场景中,传统的YOLOv8模型可能无法满足需求。
为了解决这一问题,本文提出了一种融合多尺度特征的YOLOv8裂缝缺陷检测算法。
该算法旨在利用多尺度特征来提高模型对不同尺度裂缝的检测能力,并在裂缝检测任务上取得更好的性能。
本算法的主要创新点在于引入了多尺度特征融合的思想,通过在不同尺度上提取图像特征并加以融合,以增强模型对裂缝的检测能力。
我们采用了特征金字塔网络(FPN)来提取不同尺度的特征,并将它们融合在一起,以得到更丰富的特征表示。
我们还针对裂缝缺陷检测中的特定问题进行了一系列优化和改进。
我们设计了特定的损失函数来更好地适应裂缝检测任务,并采用了一些技巧来减少计算量和提高运行效率。
融合多尺度特征的YOLOv8裂缝缺陷检测算法旨在解决传统YOLOv8模型在裂缝检测中的局限性,通过引入多尺度特征融合和一系列优化改进措施,以提高模型在裂缝检测任务上的性能和准确性。
python+opencv实现机器视觉基础技术(2)(宽度测量,缺陷检测,医学处理) 本篇博客接着讲解机器视觉的有关技术和知识。
包括宽度测量,缺陷检测,医学处理。
在传统的⾃动化⽣产中,对于尺⼨的测量,典型的⽅法就是千分尺、游标卡尺、塞尺等。
⽽这些测量⼿段测量精度低、速度慢,⽆法满⾜⼤规模的⾃动化⽣产需求。
基于机器视觉的尺⼨测量属于⾮接触式的测量,具有检测精度⾼、速度快、成本低、安装简便等优点。
可以检测零件的各种尺⼨,如长度、圆、⾓度、线弧等测量。
利⽤python+opencv⽅法可以进⾏宽度的测量。
步骤是先选取出⼀个矩形,然后进⾏阈值分割,再进⾏反⾊,边缘提取之后进⾏点的选择,输出坐标做出两条线段,根据线段进⾏矩形绘制,这样之后就可以计算两条直线之间的距离,也就是我们需要求得的宽度。
OpenCV是⼀个c++库,⽤于实时处理计算机视觉⽅⾯的问题,涵盖了很多计算机视觉领域的模块。
配合python调⽤c++库,可以很⽅便地进⾏宽度测量,实现要求。
步骤如下:import cv2import cv2 as cvimport numpy as npimport imutilsimg = cv2.imread("1.jpg") ⼿动地进⾏选取我们感兴趣的部分,然后截取出来。
img = imutils.resize(img, width=500)roi = cv2.selectROI(windowName="image1", img=img, showCrosshair=True, fromCenter=False)x, y, w, h = roicv2.rectangle(img=img, pt1=(x, y), pt2=(x + w, y + h), color=(0, 0, 255), thickness=2)s = img[y:y+h,x:x+w] 截取后会出现空⽩区域很多⿊⾊的情况,需要进⾏反⾊,⽤到的⽅法是255去除值。
第37卷第12期计算机仿真2020年12月文章编号:1006 - 9348(2020)12 - 0153 - 04基于稀疏表示的焊缝视觉图像缺陷识别方法王飞,张素兰(太原科技大学计算机科学与技术学院,山西太原048000)摘要:焊缝视觉图像缺陷信息存在干扰像素,导致增强焊接结构件可靠性降低,提出一种基于稀疏表示的焊缝视觉图像缺陷 识别方法。
划分缺陷图像为目标、背景及噪声三部分,超完备转换缺陷目标,建立稀疏表示模型确定焊缝位置;利用中值滤 波剔除缺陷图像整体噪声,对图像进行二值化稀疏处理,去除非焊缝视觉区域的干扰像素,获取焊缝图像全局和局部直方图 特征,在随机Dropout以及Relu激活函数中输人焊缝视觉图像特征,输出焊接缺陷类型,保证缺陷识别结果的有效性。
仿真 结果证明,对缺陷识别准确率髙、识别效果较为清晰。
关键词:稀疏表示;焊缝视觉图像;缺陷识别;二值处理中图分类号:TP327 文献标识码:BDefect Recognition Method of Weld VisualImage Based on Sparse RepresentationWANG Fei,ZHANG Su - lan(College of Computer Science and Technology,Taiyuan University of Science and Technology,Taiyuan Shanxi048000, China)A B S T R A C T:Owing to the interference pixels of weld visual image defect information,the reliability of welded structural parts is reduced.In this regard,a defect recognition method of weld visual image based on sparse representation is put forward.The defect image was divided into target,background and noise.The defect target was transformed into super complete one,and the sparse representation model was established to determine the weld location.The o-verall noise of defect image was eliminated by utilizing median filter.The image is binarized and sparse to eliminate the interference pixels in the non- weld visual area,thus obtaining the global and local histogram features of the weld image.In the random Dropout and Relu activation functions,the visual image features of weld were input to output the type of welding defects,ensuring the validity of defect recognition results.The simulation results show that this method has high accuracy and clear recognition effect.K E Y W O R D S:Sparse representation;Weld visual image;Defect recognition;Binary processingi引言使用工业C C D摄像机的视觉传感手段已经广泛运用在 焊接领域中,尤其在焊缝跟踪控制方面取得了突破性进展,焊缝视觉图像由此孕育而生[1]。
机器视觉目标识别方法解析:Blob分析法、模板匹配法、深度学习法Blob分析法(BlobAnalysis)在计算机视觉中的Blob是指图像中的具有相似颜色、纹理等特征所组成的一块连通区域。
Blob分析(BlobAnalysis)是对图像中相同像素的连通域进行分析(该连通域称为Blob)。
其过程就是将图像进行二值化,分割得到前景和背景,然后进行连通区域检测,从而得到Blob块的过程。
简单来说,blob分析就是在一块“光滑”区域内,将出现“灰度突变”的小区域寻找出来。
举例来说,假如现在有一块刚生产出来的玻璃,表面非常光滑,平整。
如果这块玻璃上面没有瑕疵,那么,我们是检测不到“灰度突变”的;相反,如果在玻璃生产线上,由于种种原因,造成了玻璃上面有一个凸起的小泡、有一块黑斑、有一点裂缝,那么,我们就能在这块玻璃上面检测到纹理,经二值化(BinaryThresholding)处理后的图像中色斑可认为是blob。
而这些部分,就是生产过程中造成的瑕疵,这个过程,就是Blob分析。
Blob分析工具可以从背景中分离出目标,并可以计算出目标的数量、位置、形状、方向和大小,还可以提供相关斑点间的拓扑结构。
在处理过程中不是对单个像素逐一分析,而是对图像的行进行操作。
图像的每一行都用游程长度编码(RLE)来表示相邻的目标范围。
这种算法与基于像素的算法相比,大大提高了处理的速度。
针对二维目标图像和高对比度图像,适用于有无检测和缺陷检测这类目标识别应用。
常用于二维目标图像、高对比度图像、存在/缺席检测、数值范围和旋转不变性需求。
显然,纺织品的瑕疵检测,玻璃的瑕疵检测,机械零件表面缺陷检测,可乐瓶缺陷检测,药品胶囊缺陷检测等很多场合都会用到blob分析。
但另一方面,Blob分析并不适用于以下图像:1.低对比度图像; 2.必要的图像特征不能用2个灰度级描述; 3.按照模版检测(图形检测需求)。
总的来说,Blob 分析就是检测图像的斑点,适用于背景单一,前景缺陷不区分类别,识别精度要求不高的场景。
基于机器视觉的表面缺陷检测系统的算法研究及软件设计共3篇基于机器视觉的表面缺陷检测系统的算法研究及软件设计1基于机器视觉的表面缺陷检测系统的算法研究及软件设计随着现代制造业的快速发展,在生产过程中表面缺陷检测越来越重要。
其可以尽早发现问题,并且可以提高产品质量和生产效率。
在传统的表面缺陷检测方法中,通常需要大量的人力和时间,而且也不足以满足高效率的生产需求。
而基于机器视觉的表面缺陷检测系统则可以解决这些问题,并且具有高效、准确、实用等优点。
目前,基于机器视觉技术的表面缺陷检测方法主要包括以下几个步骤:1.图像预处理:对于获取的图像进行去噪、灰度化、二值化等处理,以便进一步分析。
2.特征提取:根据表面缺陷的形态、颜色等特征,从图像中提取出相应的特征信息。
常用的特征算法有颜色直方图、形态学运算等。
3.缺陷检测:根据提取到的特征信息,利用分类算法对图像进行缺陷检测。
常见的分类算法有神经网络、支持向量机等。
4.缺陷定位:在检测到缺陷后,需要进行缺陷的定位,以便进行后续的处理或修补。
基于上述方法,设计了一款基于机器视觉的表面缺陷检测系统,并进行了软件开发。
主要包括以下几个方面:1.图像采集:利用数码相机等设备对待检测的表面进行拍摄,以便后续处理。
2.图像预处理:对采集到的图像进行去噪、灰度化、平滑化、二值化等操作,使其适合进行特征提取和缺陷检测。
3.特征提取:利用颜色直方图、形态学运算等方法,从处理后的图像中提取出表面缺陷的特征。
4.缺陷检测:通过分类算法将提取到的特征与预先训练好的模型进行比对,以检测出表面缺陷的位置。
5.缺陷定位:在检测到缺陷后,根据检测结果确定缺陷的位置,以便进行后续的处理。
测试结果表明,该基于机器视觉的表面缺陷检测系统可以快速准确地对缺陷进行检测和定位,并且可靠性较高,适用于不同类型的表面缺陷检测。
在后续的工业生产中,该系统还可以与其他自动化设备进行配合,实现自动化生产和质量控制,提高生产效率和产品质量基于机器视觉的表面缺陷检测系统是一项有效的质量控制技术,可以帮助工业生产中检测和定位各种表面缺陷。
halcon缺陷检测常用方法总结Halcon是一种强大的机器视觉软件,广泛应用于工业自动化和视觉检测领域。
缺陷检测是机器视觉中的重要任务之一,其目的是利用图像处理和分析技术,通过检测和分析图像中的缺陷来保证产品质量。
在Halcon中,有多种常用的方法可以用于缺陷检测。
下面将介绍一些常用的方法。
1.边缘检测方法边缘是图像中物体的轮廓,常常用于检测缺陷。
Halcon提供了多种边缘检测方法,如Sobel、Prewitt和Canny等。
这些方法能够提取图像中的边缘信息,并通过分析边缘的强度、方向和连续性来检测缺陷。
2.区域生长方法区域生长是一种基于像素相似性的方法,能够将相似像素合并为连续的区域。
在缺陷检测中,可以利用区域生长方法找到与周围像素相比较异常的区域,从而检测缺陷。
3.学习算法方法Halcon中提供了多种机器学习算法,如支持向量机(SVM)、随机森林(Random Forest)和深度学习等。
这些算法能够通过学习大量的正常样本和缺陷样本来构建模型,并利用模型进行缺陷检测。
4.形状匹配方法形状匹配是一种通过比较图像中物体形状的方法。
Halcon中提供了多种形状匹配算法,如模板匹配和形状基因算法。
这些方法能够通过比较待检测物体的形状与模板或基因的形状差异来检测缺陷。
5.纹理分析方法纹理是图像中的细微结构,常常包含有关物体表面的信息。
Halcon中提供了多种纹理分析方法,如灰度共生矩阵(GLCM)、灰度直方图和小波变换等。
通过分析图像的纹理特征,可以检测并区分不同的缺陷。
6.自适应阈值方法阈值是一种常用的图像分割方法,可以将图像分成不同的区域。
在缺陷检测中,阈值方法常常用于将图像中的缺陷与背景进行分离。
Halcon中提供了多种自适应阈值的方法,如Otsu和基于梯度的阈值等。
7.深度学习方法深度学习是近年来非常热门的机器学习方法,具备强大的特征提取和分类能力。
Halcon中集成了深度学习库Manto,可以利用Manto进行图像分类和目标检测,从而实现缺陷检测。
利用计算机视觉技术进行路面缺陷检测的步骤随着城市化进程的加快和交通运输的不断发展,道路的安全性和可行性成为城市建设中的重要问题之一。
为了保障交通的安全和顺畅,对道路的维护和管理变得极为重要。
而利用计算机视觉技术进行路面缺陷检测成为一种高效、准确的方法。
计算机视觉技术是一种模拟人类视觉系统实现图像分析和理解的技术。
在路面缺陷检测中,计算机视觉技术主要包括图像采集、预处理、特征提取和缺陷检测这几个步骤。
下面将详细介绍这些步骤。
第一步:图像采集图像采集是路面缺陷检测的基础,通常使用摄像机或无人机进行图像采集。
摄像机通常安装在移动设备上,可以在实际道路行驶的过程中进行图像采集;而无人机则可以从空中俯瞰道路,获取更全面的道路信息。
图像采集需要考虑采集的时间、场景、光线等因素,以获取清晰、准确的道路图像。
第二步:预处理预处理是对采集到的图像进行处理,目的是提高图像质量和减少噪声。
常见的预处理技术包括灰度化、滤波、增强、边缘检测等。
灰度化可以将彩色图像转换为灰度图像,减少计算量;滤波可以去除图像中的噪声,提高图像质量;增强可以调整图像的亮度和对比度,使图像细节更加清晰;边缘检测可以提取图像中的边缘信息,为后续的特征提取做准备。
第三步:特征提取特征提取是路面缺陷检测的核心步骤,通过提取图像中的特征信息来判断是否存在缺陷。
常用的特征提取方法有传统的形状特征、纹理特征以及基于深度学习的特征提取方法。
传统的形状特征包括面积、周长、宽度等;纹理特征包括灰度共生矩阵、局部二值模式等。
基于深度学习的特征提取方法则通过构建卷积神经网络来学习图像中的信息。
第四步:缺陷检测缺陷检测是利用特征信息判断路面是否存在缺陷的过程。
常见的检测方法有传统的机器学习方法和深度学习方法。
传统的机器学习方法包括支持向量机、决策树等,通过训练分类器对图像进行分类;深度学习方法则通过训练神经网络来进行图像分类和缺陷检测。
缺陷检测的结果可以根据需要进行可视化显示,便于对道路缺陷进行分析和定位。
opencv表面缺陷检测pythonOpenCV是一个广泛应用于计算机视觉领域的开源库,它提供了丰富的图像处理和计算机视觉算法。
在工业生产中,表面缺陷检测是一个重要的环节,它能够帮助企业提高产品质量、提升生产效率。
本文将介绍如何利用OpenCV和Python进行表面缺陷检测。
在开始之前,我们首先需要了解什么是表面缺陷。
表面缺陷是指产品外观上的瑕疵或损坏,例如裂纹、划痕、气泡等。
这些缺陷可能会影响产品的质量和可靠性,因此需要在生产过程中进行及时的检测和修复。
利用OpenCV进行表面缺陷检测的关键是利用图像处理和计算机视觉算法来分析产品表面的图像。
首先,我们需要获取产品的图像。
可以使用摄像头或者从文件中读取图像。
接下来,我们可以利用OpenCV的函数对图像进行预处理,例如去噪、灰度化、二值化等操作。
这些操作可以帮助我们提取出产品表面的主要特征。
在预处理完成后,我们可以利用OpenCV提供的图像处理函数来检测表面缺陷。
例如,我们可以使用形态学操作来检测裂纹或划痕。
形态学操作是一种基于图像形状的处理方法,可以帮助我们提取出图像中的特定形状或结构。
通过将形态学操作应用于图像,我们可以将缺陷区域与正常区域进行区分。
另外,我们还可以利用边缘检测算法来检测表面的边缘,从而判断是否存在缺陷。
除了图像处理函数,OpenCV还提供了机器学习算法来进行表面缺陷检测。
例如,我们可以使用支持向量机(SVM)算法来训练一个分类器,将缺陷区域与正常区域进行分类。
通过使用大量的正负样本进行训练,我们可以得到一个准确的分类器,并用于实际的缺陷检测。
在进行表面缺陷检测时,我们还需要考虑一些实际问题。
例如,光照条件可能会对图像的质量产生影响,因此我们需要对图像进行亮度和对比度的调整。
另外,我们还需要考虑图像中的噪声问题,例如图像中的噪点或者伪影。
这些问题可以通过合适的滤波算法来解决。
除了算法和技术,我们还需要考虑一些实际因素。
例如,检测速度是一个重要的指标,特别是在高速生产线上。
综述机器视觉表⾯缺陷检测0 引⾔中国是⼀个制造⼤国,每天都要⽣产⼤量的⼯业产品。
⽤户和⽣产企业对产品质量的要求越来越⾼,除要求满⾜使⽤性能外,还要有良好的外观,即良好的表⾯质量。
但是,在制造产品的过程中,表⾯缺陷的产⽣往往是不可避免的。
不同产品的表⾯缺陷有着不同的定义和类型,⼀般⽽⾔表⾯缺陷是产品表⾯局部物理或化学性质不均匀的区域,如⾦属表⾯的划痕、斑点、孔洞,纸张表⾯的⾊差、压痕,玻璃等⾮⾦属表⾯的夹杂、破损、污点,等等。
表⾯缺陷不仅影响产品的美观和舒适度,⽽且⼀般也会对其使⽤性能带来不良影响,所以⽣产企业对产品的表⾯缺陷检测⾮常重视,以便及时发现,从⽽有效控制产品质量,还可以根据检测结果分析⽣产⼯艺中存在的某些问题,从⽽杜绝或减少缺陷品的产⽣,同时防⽌潜在的贸易纠份,维护企业荣誉。
⼈⼯检测是产品表⾯缺陷的传统检测⽅法,该⽅法抽检率低、准确性不⾼、实时性差、效率低、劳动强度⼤、受⼈⼯经验和主观因素的影响⼤,⽽基于机器视觉的检测⽅法可以很⼤程度上克服上述弊端。
美国机器⼈⼯业协会(RIA)对机器视觉下的定义为:“机器视觉是通过光学的装置和⾮接触的传感器⾃动地接收和处理⼀个真实物体的图像,以获得所需信息或⽤于控制机器⼈运动的装置”[1]。
机器视觉是⼀种⽆接触、⽆损伤的⾃动检测技术,是实现设备⾃动化、智能化和精密控制的有效⼿段,具有安全可靠、光谱响应范围宽、可在恶劣环境下长时间⼯作和⽣产效率⾼等突出优点。
机器视觉检测系统通过适当的光源和图像传感器(CCD摄像机)获取产品的表⾯图像,利⽤相应的图像处理算法提取图像的特征信息,然后根据特征信息进⾏表⾯缺陷的定位、识别、分级等判别和统计、存储、查询等操作;视觉表⾯缺陷检测系统基本组成主要包括图像获取模块、图像处理模块、图像分析模块、数据管理及⼈机接⼝模块。
图像获取模块由CCD摄像机、光学镜头、光源及其夹持装置等组成,其功能是完成产品表⾯图像的采集。
在光源的照明下,通过光学镜头将产品表⾯成像于相机传感器上,光信号先转换成电信号,进⽽转换成计算机能处理的数字信号。
Value Engineering0引言近年来,曲面屏幕被越来越多的应用在汽车制造当中,其工艺制程主要分为背板段、前板段和模组段。
背板段主要通过蚀刻法在玻璃基板上蚀刻薄膜晶体管(LTPS),用于像素控制;前板段制程主要完成液晶灌注和滤色片层压,需要先对LTPS-TFT基板做清洗、干燥、降温等处理,然后将其放入真空室内进行各发光层和功能层的蒸镀,随后将偏光片贴附于面板;模组段制程主要完成电路和背光板外围组件的组装。
每个阶段都会引起不同的Mura缺陷。
Mura缺陷通常表现为块状,亮度不均匀,形状不规则,对比度低,大多数缺陷没有规律可遵循。
常见的Mura缺陷分为三种类型:点缺陷、线缺陷和区域缺陷[1]。
常见的Mura缺陷的示意图如图1所示。
1常用Mura缺陷检测方法目前,常用的Mura缺陷检测方法有三种,即人工检测法、电测量法和基于机器视觉的光学检测方法。
人工检测方法是指由经验丰富的缺陷检测工程师通过比较缺陷样本库[2]对缺陷的类别进行判断。
电气测量方法通常用于检测由电气缺陷如短路、开路、接触不良、面板上电网线路开路等引起的磁点缺陷和线性磁点缺陷。
常用的电测量方法包括导纳电路检测方法、全屏照明法、探针扫描法、电荷读取法、电压图像法、电子束扫描像素电极法等[3]。
电测量方法无法检测由化学污染等非电气原因引起的Mura缺陷。
这就需要进一步的检测方法,如基于机器视觉的光学测量方法。
这是一种非接触式测量方法,使用图像采集设备获取屏幕上显示的信息,并对其进行定量分析,以确定缺陷的位置和类型。
2Mura缺陷的图像处理在获取图像的过程中,会受到多种因素的影响。
例如,照明设备的光强度的变化,图像采集设备本身的性能,以及工作人员获取图像的熟练程度,等等。
最初获得的原始图像的质量可能不太理想。
为了不影响后续的图像分析、图像解析等处理流程,必须对采集的图像进行一些预处理。
针对Mura缺陷的预处理方法,主要使用了图像滤波和图像校正。
视觉缺陷检测常用算法
视觉缺陷检测是指通过计算机视觉技术对产品进行检测,以发现产品表面的缺陷,如裂纹、划痕、气泡等。
视觉缺陷检测在工业生产中具有重要的应用价值,可以提高产品质量,降低生产成本。
本文将介绍视觉缺陷检测常用算法。
1. 基于边缘检测的算法
边缘检测是指通过计算图像中像素值的变化率来检测图像中的边缘。
在视觉缺陷检测中,边缘检测可以用来检测产品表面的裂纹、划痕等缺陷。
常用的边缘检测算法有Sobel算法、Prewitt算法、Canny算法等。
Sobel算法是一种基于梯度的边缘检测算法,它通过计算像素点周围的像素值的梯度来检测边缘。
Prewitt算法也是一种基于梯度的边缘检测算法,它与Sobel算法类似,但是计算梯度时采用了不同的卷积核。
Canny算法是一种基于多级阈值的边缘检测算法,它可以检测出较细的边缘,并且对噪声有较好的抑制效果。
2. 基于纹理特征的算法
纹理特征是指图像中的重复模式或规则性结构。
在视觉缺陷检测中,纹理特征可以用来检测产品表面的气泡、斑点等缺陷。
常用的纹理特征算法有灰度共生矩阵法、小波变换法、Gabor滤波器法等。
灰度共生矩阵法是一种基于灰度共生矩阵的纹理特征提取算法,它通过计算图像中像素之间的灰度共生矩阵来提取纹理特征。
小波变换法是一种基于小波变换的纹理特征提取算法,它可以将图像分解成不同尺度和方向的小波系数,从而提取出不同尺度和方向的纹理特征。
Gabor滤波器法是一种基于Gabor滤波器的纹理特征提取算法,它可以提取出图像中的局部纹理特征。
3. 基于形态学的算法
形态学是一种数学方法,它可以用来分析和处理图像中的形状和结构。
在视觉缺陷检测中,形态学可以用来检测产品表面的凸起、凹陷等缺陷。
常用的形态学算法有膨胀、腐蚀、开运算、闭运算等。
膨胀是一种形态学操作,它可以将图像中的物体膨胀成更大的物体。
在视觉缺陷检测中,膨胀可以用来检测产品表面的凸起缺陷。
腐蚀是一种形态学操作,它可以将图像中的物体腐蚀成更小的物体。
在视觉缺陷检测中,腐蚀可以用来检测产品表面的凹陷缺陷。
开运算是一种形态学操作,它先进行腐蚀操作,再进行膨胀操作。
在视觉缺陷检测中,开运算可以用来去除图像中的小物体。
闭运算是一种形态学操作,它先进行膨胀操作,再进行腐蚀操作。
在视觉缺陷检测中,闭运算可以用来填补图像中的小孔洞。
4. 基于机器学习的算法
机器学习是一种人工智能技术,它可以通过训练数据来学习模型,并用学习到的模型来进行预测和分类。
在视觉缺陷检测中,机器学习可以用来分类产品表面的缺陷。
常用的机器学习算法有支持向量机、决策树、神经网络等。
支持向量机是一种基于最大间隔分类的机器学习算法,它可以将数据分为两类,并找到一个最优的超平面来分隔这两类数据。
在视觉缺陷检测中,支持向量机可以用来分类产品表面的缺陷。
决策树是一种基于树形结构的机器学习算法,它可以将数据分为多个类别,并通过一系列的决策来判断数据属于哪个类别。
在视觉缺陷检测中,决策树可以用来分类产品表面的缺陷。
神经网络是一种基于神经元模型的机器学习算法,它可以通过多层神经元的计算来学习数据的特征,并用学习到的特征来进行分类。
在视觉缺陷检测中,神经网络可以用来分类产品表面的缺陷。
视觉缺陷检测常用算法包括基于边缘检测的算法、基于纹理特征的算法、基于形态学的算法和基于机器学习的算法。
不同的算法适用于不同的缺陷检测场景,需要根据具体情况选择合适的算法。