CN116823748A - 一种基于深度学习和Halcon的螺栓拧紧工业检测方法和装置 - Google Patents
一种基于深度学习和Halcon的螺栓拧紧工业检测方法和装置 Download PDFInfo
- Publication number
- CN116823748A CN116823748A CN202310704098.8A CN202310704098A CN116823748A CN 116823748 A CN116823748 A CN 116823748A CN 202310704098 A CN202310704098 A CN 202310704098A CN 116823748 A CN116823748 A CN 116823748A
- Authority
- CN
- China
- Prior art keywords
- bolt
- contour
- halcon
- target detection
- point
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 110
- 241001292396 Cirrhitidae Species 0.000 title claims abstract description 57
- 238000013135 deep learning Methods 0.000 title claims abstract description 40
- 238000012549 training Methods 0.000 claims abstract description 56
- 238000007781 pre-processing Methods 0.000 claims abstract description 15
- 238000006243 chemical reaction Methods 0.000 claims abstract description 6
- 238000000034 method Methods 0.000 claims description 17
- 230000006870 function Effects 0.000 claims description 16
- 238000012795 verification Methods 0.000 claims description 14
- 230000009466 transformation Effects 0.000 claims description 9
- 238000012545 processing Methods 0.000 claims description 8
- 238000001914 filtration Methods 0.000 claims description 5
- 238000012216 screening Methods 0.000 claims description 5
- 230000011218 segmentation Effects 0.000 claims description 4
- 230000008569 process Effects 0.000 description 6
- 230000000007 visual effect Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 238000012706 support-vector machine Methods 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000005520 cutting process Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000003708 edge detection Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000000877 morphologic effect Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000003908 quality control method Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/0002—Inspection of images, e.g. flaw detection
- G06T7/0004—Industrial image inspection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/20—Image enhancement or restoration using local operators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/13—Edge detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/25—Determination of region of interest [ROI] or a volume of interest [VOI]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/44—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/774—Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30108—Industrial image inspection
- G06T2207/30164—Workpiece; Machine component
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Image Analysis (AREA)
Abstract
本发明涉及工业自动化领域,尤其涉及一种基于深度学习和Halcon的螺栓拧紧工业检测方法,包括步骤S1:采集螺栓所处面板处的图片,对采集的图片进行预处理后进行数据转换建立数据集样本,用于训练螺栓轮廓角点目标检测模型,其中,采集的图片中包含螺栓的整体图像和螺栓上待检测的轮廓角点;步骤S2:利用Halcon和数据集样本训练螺栓轮廓角点目标检测模型;步骤S3:用训练好的螺栓轮廓角点目标检测模型进行图像信息提取和螺栓轮廓角点提取,以最终输出结果。本发明还提供了一种基于深度学习和Halcon的螺栓拧紧工业检测装置,包括主机械臂,用于搬运和使用电动扳手安装螺栓,辅助机械臂,用于搭载机器视觉摄像头对螺栓所处面板进行拍照,以避免人工拍照产生误差。
Description
技术领域
本发明涉及工业自动化领域,尤其涉及一种基于深度学习和Halcon的螺栓拧紧工业检测方法和装置。
背景技术
螺栓是工业上必不可少的部件,具有连接可靠、装拆方便等优点,现在工业上为了节省人力资源,已经广泛开始使用电动螺丝刀实现螺栓安装,但是产线上是否安装准确,螺栓是否拧紧这类进一步的检测是必不可少的。
目前检修人员通过锤击法、扭矩扳手判断螺栓是否拧紧,这样要依靠人员主观判断,结果是不可靠的。图像识别应用于工业螺栓始于2015年,较相近的方案有拍摄螺栓节点板正视图,通过Canny算子定位螺栓的轮廓边界,Hough变换提取螺栓的角度,但是这样得到的角度适合实测角度有±2°的误差,且这样的视角是固定,二维视角无法反应三维空间的全面信息,且Hough变换算法精度差、效率低,只有在螺栓发生明显松动的时候,才能被正确检测到。另外有研究方案采用目标检测的方法,使用一部分螺栓照片作为正样本,一部分作为负样本,提取照片的方向梯度直方图(HOG)特征,在利用自适应增强算法迭代训练,得到一个效果良好的螺栓***,随后使用训练支持向量机(SVM)进行松动判断,但仍然存在精度差的情况。有研究人员采用检测照片中的栓片和栓头上标记的角度进行判断,这样通过两者相对角度的方法检测精度有所提高,但是对于检测的螺栓有局限性,要求栓头上必须要有标记,而且这要使得拍照距离离螺栓角度足够的近才能采集到清晰的栓头标记,不适合应用于实际的工业工程中。
发明内容
本发明的目的是为了解决现有技术中存在的缺点,而提供了一种基于深度学习和Halcon的螺栓拧紧工业检测方法,包括:
步骤S1:采集螺栓所处面板处的图片,对采集的图片进行预处理后进行数据转换建立数据集样本,所述数据集样本用于训练螺栓轮廓角点目标检测模型,其中,所述采集的图片中包含所述螺栓的整体图像和所述螺栓上待检测的轮廓角点;
步骤S2:利用Halcon和所述数据集样本训练所述螺栓轮廓角点目标检测模型,以得到最佳的所述螺栓轮廓角点目标检测模型,实现螺栓目标检测和目标所在区域的裁剪;
步骤S3:用训练好的所述螺栓轮廓角点目标检测模型进行图像信息提取和螺栓轮廓角点提取,以最终输出结果。
进一步地,所述步骤S1中的所述采集图片由所述机械臂中的辅助机械臂搭载所述机器视觉摄像机对所述螺栓所处面板进行拍照获得,所述采集的图片为不同角度的包含螺栓轮廓角点的所述螺栓的图片,从而获得更精确的计算。
进一步地,所述步骤S1中预处理包括以下步骤:
步骤S11:调用read_image算子,读取待处理图像;
步骤S12:调用rgb1_to_gray算子对读取完的所述待处理图像进行灰度变换,以加快软件的运算速度;
步骤S13:调用medianrect算子对进行灰度变换处理后的图像进行中值滤波,以抑制灰度值较小的噪点和平滑图像。
进一步地,所述步骤S2中利用Halcon和所述数据集样本训练所述螺栓轮廓角点目标检测模型包括,
步骤S21:建立所述螺栓轮廓角点目标检测模型;
步骤S22:设置预处理数据,将所述数据集样本分为训练数据集和验证数据集,所述训练数据集用于训练所述螺栓轮廓角点目标检测模型;所述验证数据集用于对所述螺栓轮廓角点目标检测模型进行验证,以确保准确;
步骤S23:利用所述训练数据集对所述螺栓轮廓角点目标检测模型进行训练,使其能够实现螺栓的目标检测和分类;
步骤S24:利用所述验证数据集评估训练后的所述螺栓轮廓角点目标检测模型,输出感兴趣的区域,所述感兴趣区域为裁剪好的所述目标所在区域。
进一步地,所述步骤S21包括,
首先调用create_dict算子创建数据字典,所述数据字典用于存放能为数据库所用的信息;
利用set_dict_tuple算子将网络的参数存在所述数据字典中,再调用create_dl_model_detection算子创建网络的模型,输入设置的所述螺栓轮廓角点目标检测模型参数,输出所述螺栓轮廓角点目标检测模型句柄,以完成创建。
进一步地,所述步骤S22中所述预处理数据包括,
设置输入路径和输出路径,其中所述输入路径包括图像路径和样本路径,用于分别输入含螺栓轮廓角点的所述螺栓图像和样本,所述输出路径用于存放所述样本和所述螺栓轮廓角点目标检测模型的模型文件数据;
设置分割数据集参数,将所述数据集样本划分为所述训练数据集和所述验证数据集。
进一步地,所述步骤S23中利用所述训练数据集对所述目标检测模型进行训练包括,
先将所述螺栓轮廓角点目标检测模型进行初始化,调用create_dl_train_param算子创建一个新的数据字典,设置所述螺栓轮廓角点目标检测模型的训练参数,所述训练参数存放于所述新的数据字典中,调用train_dl_model算子对所述螺栓轮廓角点目标检测模型进行深度学习训练。
进一步地,步骤S3包括,
步骤S31:输入螺栓主体图像,所述螺栓主体图像为所述裁剪好的目标所在区域的图像;
步骤S32:利用Halcon提供的4连通域,采用面积特征进行图形筛选,以将所述螺栓的图形筛选出来;
步骤S33:调用fill_up算子把筛选出来的所述螺栓的图形进行填充处理,以使所述螺栓所在的区域完整地显示出来;
步骤S34:调用boundary算子筛选出所述螺栓所在的区域最外面的轮廓区域;
步骤S35:加入Rammer算法和Tukey权重函数进一步精确拟合所述最外面的轮廓区域直线,以提取角点坐标。
进一步地,步骤S35包括,
步骤S351:利用所述Rammer算法对所述最外面的轮廓区域进行递归细分,以初步描绘出多边形轮廓;
步骤S352:利用所述Tukey权重函数鲁棒性拟合,以移除所述步骤S351中所述Rammer算法中偏离真实拐点的位置上的干扰点,以提取出所述角点坐标。
进一步地,步骤S351利用所述Rammer算法对所述最外面的轮廓区域进行递归细分包括,
步骤S3511:对最外面的轮廓上的线段进行闭合检测,将不闭合的所述线段进行连接,以使所述最外面的轮廓上的线段闭合;
步骤S3512:闭合后,将第一坐标点与所述最外面轮廓上1/2处的第二坐标点相连接,在将所述第二坐标点和第三坐标点相连接,计算所述最外面轮廓上的点到相连的线段之间的距离,其中,所述第一坐标点为所述最外面轮廓上最左侧的坐标点,所述第三坐标点为所述最外面轮廓上最右侧的坐标点;
步骤S3513:计算出的所述距离比设定的阈值大时,将第一坐标点与所述第二坐标点之间所述最外面轮廓上1/2处的第四坐标点分别与所述第一坐标点和所述第二坐标点相连接,再将第二坐标点与所述第三坐标点之间所述最外面轮廓上1/2处的第五坐标点分别与所述第二坐标点和所述第三坐标点相连接,计算点到对应相连线段的距离,重复以上操作,直到所述最外面轮廓上的所有点到线段的距离都不大于设定的所述阈值为止,实现多边形轮廓的初步描绘,所述阈值用于限定所述最外面轮廓上的所有点到对应线段的距离。
进一步地,步骤S352中所述Tukey权重函数为,
其中,δ为所述最外面轮廓上点到直线的距离,τ为削波因数。所述距离δ大于τ的点为离群值,拟合直线时将为所述离群值的点忽略,其余点的权重在0-1之间,削波因数τ可以依据数据自身来推算,通常可以基于点到直线的标准偏差σ来实现,即针对离群值的鲁棒的标准型偏差,设置τ=2σ,
其中σ为点到直线的标准偏差,δ(i)为每个点到直线的距离,i=1,……,n。
优选地,具体流程如下:
第一次迭代中使用权重ω(i)=1,i=1,……,n,即使用标准的直线拟合得到一条近似直线,并通过此计算出每个点到直线的距离δ(i),然后得到鲁棒的标准偏差σ,从而得到削波因数τ,最后得到权重,并作为下次迭代使用的权重,再按照相同的步骤重复迭代过程,最终迭代结束,获得理想的边缘轮廓,鲁棒性拟合结束。
拟合完成后,得到直线的交点即所述螺栓轮廓角点,得到角点的坐标,与标准模板进行多个角度的对比,最后输出结果。
本发明还提供了一种基于深度学习和Halcon的螺栓拧紧工业检测装置,所述基于深度学习和Halcon的螺栓拧紧工业检测装置能完成上述采集图片的工作,包括:
主机械臂,所述主机械臂用于搬运和使用电动扳手安装螺栓,
辅助机械臂,所述辅助机械臂用于搭载机器视觉摄像头对所述螺栓所处面板进行拍照,以避免人工拍照产生误差;
其中,所述辅助机械臂可调节不同角度,以拍摄出不同角度的所述螺栓的图像。
与现有技术相比,本发明的有益效果是:
1、本发明提供的一种基于深度学习和Halcon的螺栓拧紧工业检测方法和装置利用基于深度学习和Halcon的螺栓拧紧工业检测装置进行采集图片,利用基于深度学习和Halcon的螺栓拧紧工业检测方法进行螺栓拧紧对比计算,实现了真正的全自动化检测,无需依靠工作人员,防止主观判断做出不可靠的决策,从拍摄到深度学习目标检测再到信息提取全程软硬件结合,适合应用于实际的工业工程中。
2、本发明提供的一种基于深度学习和Halcon的螺栓拧紧工业检测方法,针对Canny算子和Hough变换来提取螺栓角度的方法有实测大约2°的误差,重新选取精确度更高的Rammer算法和Tukey权重函数来替代,这样提取得到的角点坐标误差性小,并且从多个角度来分析判断,突破二维图像的局限性,从而更好的反应三维空间的全面信息。
3、本发明提供的一种基于深度学习和Halcon的螺栓拧紧工业检测方法对比于opencv,Halcon更加人性化,有独立的编程环境,加入的Rammer算法先确定出螺栓所在的边缘轮廓,加入的Tukey权重函数再细化边缘点,实现螺栓轮廓角点的提取,本发明底层功能算法多,运算的速度快,非常符合工业应用领域,开发效率高、开发快。
4、本发明提供的一种基于深度学习和Halcon的螺栓拧紧工业检测方法和装置提供的基于深度学习和Halcon的螺栓拧紧工业检测装置,能准确拍摄螺栓所处位置的图片,避免了人工拍摄产生误差,且拍摄的图片可直接通过基于深度学习和Halcon的螺栓拧紧工业检测方法得出螺栓是否拧紧的结果,解决了工业检测的自动化程度低、检测精度低、开发使用不便捷等缺点,具有很高的实时性和实用性。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。
在附图中:
图1为本发明一种基于深度学习和Halcon的螺栓拧紧工业检测方法和装置的总体设计流图;
图2为本发明一种基于深度学习和Halcon的螺栓拧紧工业检测方法的图像预处理流程图;
图3为本发明一种基于深度学习和Halcon的螺栓拧紧工业检测方法的螺栓轮廓角点目标检测模型训练流程图;
图4为本发明一种基于深度学习和Halcon的螺栓拧紧工业检测方法的Rammer算法递归细分原理图;
图5为本发明一种基于深度学习和Halcon的螺栓拧紧工业检测方法的螺栓轮廓角点信息提取流程图;
图6为本发明一种基于深度学习和Halcon的螺栓拧紧工业检测装置的机械臂所处位置示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施方式,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施方式仅用以解释本发明,并不用于限定本发明。
实施例1
请参阅图1-5,本实施例提供的一种基于深度学习和Halcon的螺栓拧紧工业检测方法的技术方案如下包括:
步骤S1:采集螺栓所处面板处的图片,对采集的图片进行预处理后进行数据转换建立数据集样本,所述数据集样本用于训练螺栓轮廓角点目标检测模型,其中,所述采集的图片中包含所述螺栓的整体图像和所述螺栓上待检测的轮廓角点;
步骤S2:利用Halcon和所述数据集样本训练所述螺栓轮廓角点目标检测模型,以得到最佳的所述螺栓轮廓角点目标检测模型,实现螺栓目标检测和目标所在区域的裁剪;
步骤S3:用训练好的所述螺栓轮廓角点目标检测模型进行图像信息提取和螺栓轮廓角点提取,以最终输出结果。
具体地,"Halcon"也可以指代一种计算机视觉软件库,该库由MVTec SoftwareGmbH开发。Halcon提供了一系列强大的图像处理和机器视觉算法,用于解决各种视觉任务,包括图像获取、预处理、特征提取、物体定位和识别等。Halcon算法可以应用于工业自动化、质量控制、医学图像处理、安全监控和机器人导航等领域。
Halcon库提供了丰富的函数和工具,支持多种编程语言,如C++,C#,VB.NET等,使开发者能够快速构建高性能的视觉应用程序。它具有强大的图像处理功能,包括滤波、形态学操作、边缘检测、图像拼接等。此外,Halcon还提供了先进的机器学习算法,如神经网络、支持向量机等,用于对象识别和分类任务。
总之,Halcon算法是一套用于计算机视觉任务的强大工具集,能够帮助开发者处理和分析图像数据,并实现各种视觉应用。
具体地,步骤S1中的所述采集图片由机械臂中的辅助机械臂搭载机器视觉摄像机对螺栓所处面板进行拍照获得,采集的图片为不同角度的包含螺栓轮廓角点的螺栓的图片,从而获得更精确的计算。
在具体实施中,本发明中的拍摄摄像机可以是各种型号和品牌的工业摄像头。
在具体实施中,本发明拍摄的角度有四个类别,分别为0°,30°,45°,90°,但并不局限于这四个类别的角度。
具体地,如图2所示,步骤S1中预处理包括以下步骤:
步骤S11:调用read_image算子,读取待处理图像;
步骤S12:调用rgb1_to_gray算子对读取完的待处理图像进行灰度变换,以加快软件的运算速度;
步骤S13:调用median rect算子对进行灰度变换处理后的图像进行中值滤波,以抑制灰度值较小的噪点和平滑图像。
具体地,Halcon常用算子中read_image算子为加载图像指令,用于读取信息,rgb1_to_gray算子为彩色图转灰度图指令,用于灰度变换处理,median rect算子对图像中值滤波指令,用于去除噪点,使图像平滑。
在具体实施中,使用随机旋转、翻转、色彩空间变换等数据增强手段对拍摄的所述图像进行图像数据集扩展,用于训练一个成熟可靠的所述螺栓轮廓角点目标检测模型,之后选取100张所述图像做标记,20张做测试,100张里选取85张做训练集,15张做验证集,使用软件LabelImg在所述图像上绘制框框,输入标签(框框属于哪个类别),本发明共有四个类别,分别为0°,30°,45°,90°,标注完成后进行文件数据转换,使用python解析标注完的xml文件,转化为Halcon可以训练使用的文件。
在具体实施中,本发明中的图像处理软件可以是Halcon、OpenCV、Matlab等任何一种。
在具体实施中,本发明中图像处理可以增添或修改一些别的处理方式来提高图像的可靠性,比如图像灰阶化、图像增强、灰度直方图均衡化等。
具体地,如图3所示,步骤S2中利用Halcon和数据集样本训练螺栓轮廓角点目标检测模型包括,
步骤S21:建立螺栓轮廓角点目标检测模型;
步骤S22:设置预处理数据,将数据集样本分为训练数据集和验证数据集,训练数据集用于训练所述螺栓轮廓角点目标检测模型;验证数据集用于对螺栓轮廓角点目标检测模型进行验证,以确保准确;
步骤S23:利用训练数据集对螺栓轮廓角点目标检测模型进行训练,使其能够实现螺栓的目标检测和分类;
步骤S24:利用验证数据集评估训练后的螺栓轮廓角点目标检测模型,输出感兴趣的区域,感兴趣区域为裁剪好的目标所在区域。
在具体实施中,Halcon提供一个阈值设定选项,可自由调整阈值fa大小,直到能区分出目标区域。
具体地,步骤S21包括,
首先调用create_dict算子创建数据字典,数据字典用于存放能为数据库所用的信息;
利用set_dict_tuple算子将网络的参数存在数据字典中,再调用create_dl_model_detection算子创建网络的模型,输入设置的螺栓轮廓角点目标检测模型参数,输出螺栓轮廓角点目标检测模型句柄,以完成创建。
具体地,Halcon从18.11版本起,有了数据字典这样的概念。可以将上述设定的网络参数,以关键字的形式,存放在一个字典文件中。因而可以用create_dict算子创建数据字典,并set_dict_tuple算子将网络的参数存储在数据字典中,最后使用create_dl_model_detection创建网络的模型,输入上一步设置的模型参数等信息,输出一个DLModelHandle的模型句柄。
在具体实施中,参数包括:类别的数量,所述图像的宽、高、通道数等。
具体地,步骤S22中预处理数据包括,
设置输入路径和输出路径,其中输入路径包括图像路径和样本路径,用于分别输入含螺栓轮廓角点的螺栓图像和样本,输出路径用于存放样本和螺栓轮廓角点目标检测模型的模型文件数据;
设置分割数据集参数,将数据集样本划分为训练数据集和验证数据集。
在具体实施中,设置分割数据集参数,例如Training Percent=85,ValidationPercent=15,其中训练数据集占85%,验证数据集占15%。
具体地,步骤S23中利用训练数据集对螺栓轮廓角点目标检测模型进行训练包括,
先将所述螺栓轮廓角点目标检测模型进行初始化,调用create_dl_train_param算子创建一个新的数据字典,设置螺栓轮廓角点目标检测模型的训练参数,训练参数存放于新的数据字典中,调用train_dl_model算子对螺栓轮廓角点目标检测模型进行深度学习训练。
在具体实施中,Halcon常用算子中create_dl_train_param算子用于创建数据字典,数据字典用于存放各种参数,train_dl_model算子可以对模型进行深度学习训练。
在具体实施中,训练参数包括初始学习率、迭代次数、训练样本数等。
在具体实施中,在训练过程中,可以看到total loss在不断的减少,直到训练完成。
具体地,如图5所示,步骤S3包括,
步骤S31:输入螺栓主体图像,螺栓主体图像为裁剪好的目标所在区域的图像;
步骤S32:利用Halcon提供的4连通域,采用面积特征进行图形筛选,以将螺栓的图形筛选出来;
步骤S33:调用fill_up算子把筛选出来的螺栓的图形进行填充处理,以使螺栓所在的区域完整地显示出来;
步骤S34:调用boundary算子筛选出螺栓所在的区域最外面的轮廓区域;
步骤S35:加入Rammer算法和Tukey权重函数进一步精确拟合最外面的轮廓区域直线,以提取角点坐标。
具体地,fill_up算子用于将填充区域中的孔或和缝等填充,形成新的完成区域;boundary算子用于提取边界。
具体地,Rammer算法是一种用于序列建模的算法。它是基于递归的神经网络模型,主要用于生成自然语言文本,例如句子或段落。
Rammer算法的核心思想是利用循环神经网络(RNN)的记忆性质来生成序列。它通过将当前的输入与之前生成的部分序列结合起来,逐步生成下一个元素。在每一步中,Rammer算法会将当前的输入和之前的上下文传递给RNN,RNN会根据之前的记忆和当前输入生成一个概率分布,表示下一个元素可能的取值。
生成序列的过程可以通过不断采样来完成,每次从概率分布中选择一个元素作为生成序列的下一个元素,并将其添加到之前生成的部分序列中。然后,这个新的序列再次作为输入传递给RNN,重复上述过程,直到达到预定的生成序列的长度。
具体地,Tukey权重函数是一种基于距离的权重函数,它可以根据数据点与拟合直线的距离来调整数据点的权重,从而降低异常值的影响。
在具体实施中,步骤S32中筛选方法可这样设置:如假设螺栓的面积为12500,则设定筛选的范围为0-14000,即可将螺栓的图形筛选出来。
在具体实施中,步骤S34中得到的最外面的轮廓区域放大后发现线条都是基于亚像素的,是无法找到具体角点,因此需要加入步骤S35中的Rammer算法和Tukey权重函数,以进一步精确拟合直线,得到具体的角点。
在具体实施中,仅使用Rammer算法会存在个别控制点放置到稍微偏离真实拐点的位置上,因此需要引入Tukey权重将这些干扰点移除。
具体地,步骤S35包括,
步骤S351:利用Rammer算法对最外面的轮廓区域进行递归细分,以初步描绘出多边形轮廓;
步骤S352:利用Tukey权重函数鲁棒性拟合,以移除步骤S351中Rammer算法中偏离真实拐点的位置上的干扰点,以提取出角点坐标。
具体地,如图4所示,步骤S351利用所述Rammer算法对最外面的轮廓区域进行递归细分包括,
步骤S3511:对最外面的轮廓上的线段进行闭合检测,将不闭合的线段进行连接,以使最外面的轮廓上的线段闭合;
步骤S3512:闭合后,将第一坐标点与最外面轮廓上1/2处的第二坐标点相连接,在将第二坐标点和第三坐标点相连接,计算最外面轮廓上的点到相连的线段之间的距离,其中,第一坐标点为最外面轮廓上最左侧的坐标点,第三坐标点为最外面轮廓上最右侧的坐标点;
步骤S3513:计算出的距离比设定的阈值大时,将第一坐标点与第二坐标点之间最外面轮廓上1/2处的第四坐标点分别与第一坐标点和第二坐标点相连接,再将第二坐标点与第三坐标点之间最外面轮廓上1/2处的第五坐标点分别与第二坐标点和第三坐标点相连接,计算点到对应相连线段的距离,重复以上操作,直到最外面轮廓上的所有点到线段的距离都不大于设定的阈值为止,实现多边形轮廓的初步描绘,阈值用于限定最外面轮廓上的所有点到对应线段的距离。
具体地,步骤S352中Tukey权重函数为,
其中,δ为最外面轮廓上点到直线的距离,τ为削波因数。距离δ大于τ的点为离群值,拟合直线时将为离群值的点忽略,其余点的权重在0-1之间,削波因数τ可以依据数据自身来推算,通常可以基于点到直线的标准偏差σ来实现,即针对离群值的鲁棒的标准型偏差,设置τ=2σ,
其中σ为点到直线的标准偏差,δ(i)为每个点到直线的距离,i=1,……,n。
在具体实施中,具体流程如下:
第一次迭代中使用权重ω(i)=1,i=1,……,n,即使用标准的直线拟合得到一条近似直线,并通过此计算出每个点到直线的距离δ(i),然后得到鲁棒的标准偏差σ,从而得到削波因数τ,最后得到权重,并作为下次迭代使用的权重,再按照相同的步骤重复迭代过程,最终迭代结束,获得理想的边缘轮廓,鲁棒性拟合结束。
拟合完成后,得到直线的交点即所述螺栓轮廓角点,得到角点的坐标,与标准模板进行多个角度的对比,最后输出结果。
实施例2
本发明还提供了一种基于深度学习和Halcon的螺栓拧紧工业检测装置,所述基于深度学习和Halcon的螺栓拧紧工业检测装置能完成上述采集图片的工作,如图6所示,包括:
主机械臂,用于搬运和使用电动扳手安装螺栓,
辅助机械臂,用于搭载机器视觉摄像头对所述螺栓所处面板进行拍照,以避免人工拍照产生误差;
其中,辅助机械臂可调节不同角度,以拍摄出不同角度的螺栓的图像。
最后应说明的是:以上仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种基于深度学习和Halcon的螺栓拧紧工业检测方法,其特征在于,包括:
步骤S1:采集螺栓所处面板处的图片,对采集的图片进行预处理后进行数据转换建立数据集样本,所述数据集样本用于训练螺栓轮廓角点目标检测模型,其中,所述采集的图片中包含所述螺栓的整体图像和所述螺栓上待检测的轮廓角点;
步骤S2:利用Halcon和所述数据集样本训练所述螺栓轮廓角点目标检测模型;
步骤S3:用训练好的所述螺栓轮廓角点目标检测模型进行图像信息提取和螺栓轮廓角点提取,以最终输出结果。
2.根据权利要求1所述的基于深度学习和Halcon的螺栓拧紧工业检测方法,其特征在于:所述步骤S1中的所述图片由机械臂中的辅助机械臂搭载机器视觉摄像机对所述螺栓所处面板进行拍照获得,所述采集的图片为不同角度的包含螺栓轮廓角点的所述螺栓的图片。
3.根据权利要求1所述的基于深度学习和Halcon的螺栓拧紧工业检测方法,其特征在于:所述步骤S1中预处理包括以下步骤:
步骤S11:调用read_image算子,读取待处理图像;
步骤S12:调用rgb1_to_gray算子对读取完的所述待处理图像进行灰度变换,以加快软件的运算速度;
步骤S13:调用median rect算子对进行灰度变换处理后的图像进行中值滤波,以抑制灰度值较小的噪点和平滑图像。
4.根据权利要求1所述的基于深度学习和Halcon的螺栓拧紧工业检测方法,其特征在于:所述步骤S2中利用Halcon和所述数据集样本训练所述螺栓轮廓角点目标检测模型包括:
步骤S21:建立所述螺栓轮廓角点目标检测模型;
步骤S22:设置预处理数据,将所述数据集样本分为训练数据集和验证数据集,所述训练数据集用于训练所述螺栓轮廓角点目标检测模型;所述验证数据集用于对所述螺栓轮廓角点目标检测模型进行验证,以确保准确;
步骤S23:利用所述训练数据集对所述螺栓轮廓角点目标检测模型进行训练,使其能够实现螺栓的目标检测和分类;
步骤S24:利用所述验证数据集评估训练后的所述螺栓轮廓角点目标检测模型,输出感兴趣的区域,所述感兴趣区域为裁剪好的所述目标所在区域。
5.根据权利要求4所述的基于深度学习和Halcon的螺栓拧紧工业检测方法,其特征在于:所述步骤S21建立所述螺栓轮廓角点目标检测模型包括:
首先调用create_dict算子创建数据字典,所述数据字典用于存放能为数据库所用的信息;
利用set_dict_tuple算子将网络的参数存在所述数据字典中,再调用create_dl_model_detection算子创建网络的模型,输入设置的所述螺栓轮廓角点目标检测模型参数,输出所述螺栓轮廓角点目标检测模型句柄,以所述螺栓轮廓角点目标检测模型创建。
6.根据权利要求4所述的基于深度学习和Halcon的螺栓拧紧工业检测方法,其特征在于:所述步骤S22中所述预处理数据包括:
设置输入路径和输出路径,其中所述输入路径包括图像路径和样本路径,用于分别输入含螺栓轮廓角点的所述螺栓图像和样本,所述输出路径用于存放所述样本和所述螺栓轮廓角点目标检测模型的模型文件数据;
设置分割数据集参数,将所述数据集样本划分为所述训练数据集和所述验证数据集。
7.根据权利要求4所述的基于深度学习和Halcon的螺栓拧紧工业检测方法,其特征在于:所述步骤S23中利用所述训练数据集对所述螺栓轮廓角点目标检测模型进行训练包括:
先将所述螺栓轮廓角点目标检测模型进行初始化,调用create_dl_train_param算子创建一个新的数据字典,设置所述螺栓轮廓角点目标检测模型的训练参数,所述训练参数存放于所述新的数据字典中,调用train_dl_model算子对所述螺栓轮廓角点目标检测模型进行深度学习训练。
8.根据权利要求1所述的基于深度学习和Halcon的螺栓拧紧工业检测方法,其特征在于:所述步骤S3包括:
步骤S31:输入螺栓主体图像,所述螺栓主体图像为所述裁剪好的目标所在区域的图像;
步骤S32:利用所述Halcon提供的4连通域,采用面积特征进行图形筛选,以将所述螺栓的图形筛选出来;
步骤S33:调用fill_up算子把筛选出来的所述螺栓的图形进行填充处理,以使所述螺栓所在的区域完整地显示出来;
步骤S34:调用boundary算子筛选出所述螺栓所在的区域最外面的轮廓区域;
步骤S35:加入Rammer算法和Tukey权重函数进一步精确拟合所述最外面的轮廓区域直线,以提取角点坐标。
9.根据权利要求8所述的基于深度学习和Halcon的螺栓拧紧工业检测方法,其特征在于:所述步骤S35包括:
步骤S351:利用所述Rammer算法对所述最外面的轮廓区域进行递归细分,以初步描绘出多边形轮廓;
步骤S352:利用所述Tukey权重函数鲁棒性拟合,以移除所述步骤S351中所述Rammer算法中偏离真实拐点的位置上的干扰点,以提取出所述角点坐标。
10.根据权利要求9所述的基于深度学习和Halcon的螺栓拧紧工业检测方法,其特征在于:所述步骤S351利用所述Rammer算法对所述最外面的轮廓区域进行递归细分包括:
步骤S3511:对最外面的轮廓上的线段进行闭合检测,将不闭合的所述线段进行连接,以使所述最外面的轮廓上的线段完全闭合;
步骤S3512:闭合后,将第一坐标点与所述最外面轮廓上1/2处的第二坐标点相连接,在将所述第二坐标点和第三坐标点相连接,计算所述最外面轮廓上的点到相连的线段之间的距离,其中,所述第一坐标点为所述最外面轮廓上最左侧的坐标点,所述第三坐标点为所述最外面轮廓上最右侧的坐标点;
步骤S3513:计算出的所述距离比设定的阈值大时,将所述第一坐标点与所述第二坐标点之间所述最外面轮廓上1/2处的第四坐标点分别与所述第一坐标点和所述第二坐标点相连接,再将所述第二坐标点与所述第三坐标点之间所述最外面轮廓上1/2处的第五坐标点分别与所述第二坐标点和所述第三坐标点相连接,计算点到对应相连线段的距离,重复以上操作,直到所述最外面轮廓上的所有点到线段的距离都不大于设定的所述阈值为止,实现多边形轮廓的初步描绘,所述阈值用于限定所述最外面轮廓上的所有点到对应线段的距离。
11.根据权利要求9所述的基于深度学习和Halcon的螺栓拧紧工业检测方法,其特征在于:所述步骤S352中所述Tukey权重函数为:
其中,δ为所述最外面轮廓上点到直线的距离,τ为削波因数。所述距离δ大于τ的点为离群值,拟合直线时将为所述离群值的点忽略,其余点的权重在0-1之间,削波因数τ可以依据数据自身来推算,通常可以基于点到直线的标准偏差σ来实现,即针对离群值的鲁棒的标准型偏差,设置τ=2σ,
其中σ为点到直线的标准偏差,δ(i)为每个点到直线的距离,i=1,……,n。
12.一种用于执行如权利要求1-12中任意一项所述的基于深度学习和Halcon的螺栓拧紧工业检测方法的基于深度学习和Halcon的螺栓拧紧工业检测装置,包括:
主机械臂,所述主机械臂用于搬运和使用电动扳手安装螺栓,
辅助机械臂,所述辅助机械臂用于搭载机器视觉摄像头对所述螺栓所处面板进行拍照,以避免人工拍照产生误差;
其中,所述辅助机械臂可调节不同角度,以拍摄出不同角度的所述螺栓的图像。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310704098.8A CN116823748A (zh) | 2023-06-14 | 2023-06-14 | 一种基于深度学习和Halcon的螺栓拧紧工业检测方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310704098.8A CN116823748A (zh) | 2023-06-14 | 2023-06-14 | 一种基于深度学习和Halcon的螺栓拧紧工业检测方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116823748A true CN116823748A (zh) | 2023-09-29 |
Family
ID=88125099
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310704098.8A Pending CN116823748A (zh) | 2023-06-14 | 2023-06-14 | 一种基于深度学习和Halcon的螺栓拧紧工业检测方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116823748A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117103284A (zh) * | 2023-10-23 | 2023-11-24 | 深圳市精研科洁科技股份有限公司 | 基于机器视觉的机器人自动上料调控*** |
-
2023
- 2023-06-14 CN CN202310704098.8A patent/CN116823748A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117103284A (zh) * | 2023-10-23 | 2023-11-24 | 深圳市精研科洁科技股份有限公司 | 基于机器视觉的机器人自动上料调控*** |
CN117103284B (zh) * | 2023-10-23 | 2024-01-26 | 深圳市精研科洁科技股份有限公司 | 基于机器视觉的机器人自动上料调控*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200210702A1 (en) | Apparatus and method for image processing to calculate likelihood of image of target object detected from input image | |
CN111340797B (zh) | 一种激光雷达与双目相机数据融合检测方法及*** | |
CN108701234A (zh) | 车牌识别方法及云*** | |
CN110992349A (zh) | 一种基于深度学习的地下管道异常自动化定位与识别方法 | |
CN110910350B (zh) | 一种用于风电塔筒的螺母松动检测方法 | |
CN110853015A (zh) | 基于改进Faster-RCNN的铝型材缺陷检测方法 | |
CN110634161A (zh) | 一种基于点云数据的工件位姿快速高精度估算方法及装置 | |
CN111046856B (zh) | 基于动静态特征提取并行位姿跟踪与地图创建的方法 | |
CN105069774B (zh) | 基于多示例学习与图割优化的目标分割方法 | |
CN112488207B (zh) | 一种基于仿真图像的高相似度零件视觉识别方法及*** | |
CN109284779A (zh) | 基于深度全卷积网络的物体检测方法 | |
CN109508709B (zh) | 一种基于机器视觉的单指针仪表读数方法 | |
CN116823748A (zh) | 一种基于深度学习和Halcon的螺栓拧紧工业检测方法和装置 | |
CN109816634B (zh) | 检测方法、模型训练方法、装置及设备 | |
CN112364881B (zh) | 一种进阶采样一致性图像匹配方法 | |
CN113095187A (zh) | 一种基于图像特征匹配对齐的试卷批改方法 | |
CN114494773A (zh) | 一种基于深度学习的零件分拣识别***和方法 | |
CN113793385A (zh) | 鱼头鱼尾定位方法及装置 | |
Sulaiman et al. | DEFECT INSPECTION SYSTEM FOR SHAPE-BASED MATCHING USING TWO CAMERAS. | |
CN117330582A (zh) | 一种高分子pe薄膜表面晶点检测*** | |
CN112329845A (zh) | 更换纸币的方法、装置、终端设备及计算机可读存储介质 | |
CN116630809A (zh) | 基于智能图像分析的地质雷达数据自动识别方法及*** | |
CN114494891B (zh) | 一种基于多尺度并行检测的危险品识别装置和方法 | |
CN113222070B (zh) | 一种仿真图像数据自动标注方法及*** | |
CN115953678A (zh) | 一种基于局部灰度极值点和特征融合的路面破损检测方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |