CN114998432A - 一种基于YOLOv5的电路板检测点定位方法 - Google Patents
一种基于YOLOv5的电路板检测点定位方法 Download PDFInfo
- Publication number
- CN114998432A CN114998432A CN202210606294.7A CN202210606294A CN114998432A CN 114998432 A CN114998432 A CN 114998432A CN 202210606294 A CN202210606294 A CN 202210606294A CN 114998432 A CN114998432 A CN 114998432A
- Authority
- CN
- China
- Prior art keywords
- detection
- point
- algorithm
- circuit board
- parameter
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
-
- 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
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/13—Edge detection
-
- 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/168—Segmentation; Edge detection involving transform domain methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/80—Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
-
- 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/80—Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level
- G06V10/817—Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level by voting
-
- 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/20048—Transform domain processing
- G06T2207/20061—Hough transform
-
- 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/30141—Printed circuit board [PCB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V2201/00—Indexing scheme relating to image or video recognition or understanding
- G06V2201/06—Recognition of objects for industrial automation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V2201/00—Indexing scheme relating to image or video recognition or understanding
- G06V2201/07—Target detection
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Multimedia (AREA)
- Quality & Reliability (AREA)
- Image Analysis (AREA)
Abstract
Description
技术领域
本发明属于图像检测技术领域,尤其涉及一种基于YOLOv5的电路板检测点定位方法。
背景技术
对于电路板特征点检测模块的研究,2017年,Liu Z等在canny边缘检测的基础上,运用主成分分析和分段随机霍夫变换圆对PCB板Mark点进行定位并给出准确的定位参数。2019年,Wu Z等提出了一种基于亚像素边缘检测和最小二乘拟合的圆形PCB标记精确定位算法,通过模板匹配,边缘检测粗略得到标记位置,再利用最小二乘拟合和亚像素边缘点进一步准确拟合,定位误差较小。2021年,Melnyk R等通过K-means聚类、填充和细化算法,构建骨架并寻找特殊接触点的像素。Cho T H等通过构建LPRNet神经网络,识别印刷在PCB组件上的字符。识别摄像头拍摄的电路板探测点是之后一切操作的基础,因此正确获得检测点像素坐标是整个系统的关键。传统计算机视觉识别通过二值化、腐蚀膨胀和边缘检测等传统方法进行检测识别。但是传统检测算法会受到环境因素的影响,比如灯光,拍摄过程中的杂物等,往往会产生较大的误差,会对检测的精度产生较大的影响,检测具有不稳定性。。
发明内容
本发明目的在于提供一种基于YOLOv5的电路板检测点定位方法,以解决上述的技术问题。
为解决上述技术问题,本发明的一种基于YOLOv5的电路板检测点定位方法的具体技术方案如下:
一种基于YOLOv5的电路板检测点定位方法,包括如下步骤:
步骤1:采用YOLOv5目标检测算法对拍摄的电路板图像中检测点像素位置进行定位;
步骤2:采用基于神经网络拟合的手眼标定算法将检测点的像素坐标转换为实际空间坐标;
步骤3:采用动态松弛投票的方式对得到的检测点空间坐标进行分类,分别计算坐标点集中任意两点构成的直线参数,找出出现次数最多的直线参数,计算坐标点集中任意点到直线的距离,将距离与阈值进行判断,从而进行分类;最后利用最小二乘法拟合坐标点得到最后的电路板角度信息,最终确定检测点位置信息,实现电路板检测点的定位。
进一步地,所述步骤1包括如下具体步骤:
步骤1.1:采用电路板正放,拍摄光线明亮、电路板正放,拍摄光线昏暗、电路板不同角度斜放,拍摄光线明亮和电路板不同角度斜放,拍摄光线昏暗各6张图片,共24张图片作为训练集,6张随机拍摄图片作为测试集;步骤1.2:经过800轮训练,模型最终在训练集上的mAP@0.5为0.995,经过推理检测后,检测目标被矩形框框选,并且显示置信度,即当前框选对象为检测目标的概率,算法采用矩形框的中心作为检测目标的像素坐标,得出光线亮度和电路板的摆放情况对于YOLO算法最终的推理结果没有较大的影响,表明算法对于场景不具有依赖性,并且每种场景下的检测效果精度较优,均能识别出所有的检测点;
步骤1.3:测试YOLOv5算法在不同场景下的识别精准度和识别效果的稳定性:以算法推理检测点成功率、推理结果的置信度作为算法识别精准度和稳定性的衡量指标,分别在正放,光线明亮、正放,光线昏暗、斜放,光线明亮和斜放,光线昏暗四种场景下各进行20次实验,得到检测置信度分布和准确率,得出在不同的场景下,算法的检测准确率都为100%;
步骤1.4:研究光线强度和摆放位置对于算法检测稳定性的影响:通过分析对比各场景下的推理结果置信度分布,得到,光线明亮的情况下,推理结果的置信度较光线昏暗的情况下的推理结果置信度较高;电路板正放时,推理结果的置信度较斜放时的推理结果执行难度较高,因此可以得出当光线明亮,电路板正放时,推理结果置信度较高,推理结果较为稳定。进一步地,所述步骤2包括如下具体步骤:
步骤2.1:基于手眼标定算法,通过引入神经网络拟合的方法,直接拟合像素坐标至空间坐标的关系;
步骤2.2:构建神经网络结构;
步骤2.3:检验基于神经网络拟合的手眼标定算法的精度:采样49组数据,每组数据由像素坐标及其对应的空间坐标组成,并随机抽取10组数据作为测试集,剩余39组数据作为训练集,分别采用传统的仿射变换标定算法和基于神经网络拟合的手眼标定算法进行测试,得到神经网络法最终的拟合效果要优于采用仿射变化法拟合的效果。
进一步地,所述步骤3包括如下具体步骤:
步骤3.1:对经YOLOv5算法推理后返回的电路板检测点的无序的像素坐标集合进行分类;对于电路板结构而言,检测点呈现两条平行直线排列,因此得到的像素坐标应为双平行散点分布,由于YOLOv5检测存在一定的像素偏差,因此得到的像素坐标不一定严格符合平行列,即属于一条直线上的检测点像素坐标可能分布在某条直线的附近,
因此,上述问题可以转化为近似双平行散点分类问题:平面内存在点集P,找出两组子点集P1,P2,满足:
且对于任意一个子点集,满足:
yi=kxi+bi+δ(2)
其中(xi,yi)∈Pi,δ是服从均值为0的正态分布随机误差;
在图像处理领域,采用霍夫变换对图像中的直线、圆进行检测;通过二值化和边缘检测得到边缘点集,通过霍夫变换将边缘点集由直角坐标系转化到直线参数空间系,此时直角坐标系中的一条直线即转化到参数空间内一点,通过投票机制,确定出现在参数空间内次数较多的点即为检测的直线参数;
步骤3.2:提出一种基于动态松弛投票的近似双平行散点分类算法;
根据两点确定一条直线,每条直线由斜率k和截距b两个参数确定;首先,创建空参数集Q;其次,每每计算坐标集P中任意两点确定的直线参数k,b,如果该直线参数存在于参数集Q中,则该参数的票数增加1,否则,将该参数添加至参数集Q中;最后,选取投票数最多的两对参数作为两条平行线的参数,根据各点到两条直线的距离对坐标集进行分类,得到最后的分类结果;
步骤3.3:在原有算法思路基础上,在投票部分添加动态松弛,即当前计算得到的参数如果在参数集Q中某个参数的松弛范围内,则该参数的票数增加一,并且松弛范围与当前计算得到的参数中的斜率参数k相关,k较大时,松弛范围较大,k较小时,松弛范围较小;
步骤3.4:检测算法实现效果,分别生成三组数据,分别代表平行线斜率不同的情形,进行算法实验,得出,无论是较小斜率和较大斜率,算法都能进行较好的分类,经过投票得到的最优参数直线也近似符合散点的直线分布。
进一步地,包括步骤4:系统整机实验及效果分析,包括如下具体步骤:步骤4.1:实验平台:采用Python语言作为开发变成语言;软件环境包括深度学习框架torch1.10.1、集成开发环境Pycharm2020.3.3和第三方函数库Anaconda1.10.0以及操作系统Windows 10专业版;硬件开发环境为处理器Intel(R)Core(TM)i7-6500U CPU@2.50GHz 2.6GHz,内存 8G;
步骤4.2:实验测量指标:检验系统整体检测、定位的精准度以及检测效率,对系统进行整机实验,以定位精度误差作为精准度的衡量指标,图像识别推理时间和两个检测点之间的移动时间作为检测效率的衡量指标,进行20次整机实验;定位精度误差定义为系统计算检测点坐标与实际检测点坐标之间的欧式距离,其中实际检测点坐标由人工控制机械臂移动至检测点,通过机械臂反馈获得;图像识别推理时间定义为摄像头拍摄图像至系统获得检测点坐标、角度等相关信息所用时间;两个检测点之间的移动时间定义为机械臂从当前检测点移动至下一个检测点所需要的时间;
步骤4.3:实验结果与分析:20次实验测试结果为:平均定位精度误差为 0.71mm,图像推理平均时间为2.88s,点到点移动平均时间为1.20s,且 20次实验均成功进行检测;定位精度平均误差满足检测点检测5mm×5mm要求,并且系统检测用时较短,效率要远远高于人工检测,系统设计符合要求。
本发明的一种基于YOLOv5的电路板检测点定位方法具有以下优点:本发明方法的平均定位精度误差为0.71mm,图像推理平均时间为2.88s,点到点移动平均时间为1.20s,且20次实验均成功进行检测。定位精度平均误差满足检测点检测5mm×5mm要求,并且系统检测用时较短,效率要远远高于人工检测,系统设计符合要求。
附图说明
图1为本发明的基于YOLOv5的电路板检测点定位方法流程图;
图2为本发明的Yolov5算法在不同场景下的检测效果图;
图3a为电路板正放场景下的推理置信度分布图;
图3b为电路板斜放场景下的推理置信度分布图;
图3c为光线明亮场景下的推理置信度分布图;
图3d为光线昏暗场景下的推理置信度分布图;
图4为本发明的神经网络结构图;
图5a为仿射变换法在训练集上的拟合效果图;
图5b为神经网络法在训练集上的拟合效果图;
图5c为仿射变化法在测试集上的拟合效果图;
图5d为神经网络法在测试集上的拟合效果图;
图6为散点直线分类算法伪代码图;
图7为散点直线分类算法效果图;
图8为整机实验结果图。
具体实施方式
为了更好地了解本发明的目的、结构及功能,下面结合附图,对本发明一种基于YOLOv5的电路板检测点定位方法做进一步详细的描述。
如图1所示,本发明的一种基于YOLOv5的电路板检测点定位方法,包括如下步骤:
步骤1:采用YOLOv5目标检测算法对拍摄的电路板图像中检测点像素位置进行定位;
由于锂电池保护电路只需对检测点这一单一目标进行检测,因此训练需要的数据集无需过多,训练时间无需过长,即可获得较高精度。
实验采用电路板正放,拍摄光线明亮、电路板正放,拍摄光线昏暗、电路板不同角度斜放,拍摄光线明亮和电路板不同角度斜放,拍摄光线昏暗各6张图片,共24张图片作为训练集,6张随机拍摄图片作为测试集。
经过800轮训练,模型最终在训练集上的mAP@0.5为0.995。图2为 YOLOv5算法在不同场景下的检测结果。经过推理检测后,检测目标被矩形框框选,并且显示置信度(图2上的数字),即当前框选对象为检测目标的概率,算法采用矩形框的中心作为检测目标的像素坐标。可以看出,光线亮度和电路板的摆放情况对于YOLO算法最终的推理结果没有较大的影响,表明算法对于场景不具有依赖性,并且每种场景下的检测效果精度较优,均能识别出所有的检测点。
为了进一步测试YOLOv5算法在不同场景下的识别精准度和识别效果的稳定性,以算法推理检测点成功率、推理结果的置信度作为算法识别精准度和稳定性的衡量指标,分别在正放,光线明亮、正放,光线昏暗、斜放,光线明亮和斜放,光线昏暗四种场景下各进行20次实验,得到检测置信度分布和准确率如图3a-3d和表1所示。
表2 YOLOv5算法不同场景下的检测准确率
表1表明,在不同的场景下,算法的检测准确率都为100%,算法均能准确地检测电路板检测点,达到工业生产的要求。
图3a-3d分别研究光线强度和摆放位置对于算法检测稳定性的影响。大部分实验算法推理结果的置信度分布在0.75-0.95之间,只有极小部分推理结果置信度处于0.65-0.7之间,表明算法在不同场景下的检测稳定性较高。而且通过分析对比图4中各场景下的推理结果置信度分布,可以发现,光线明亮的情况下,推理结果的置信度较光线昏暗的情况下的推理结果置信度较高;电路板正放时,推理结果的置信度较斜放时的推理结果执行难度较高,因此可以得出当光线明亮,电路板正放时,推理结果置信度较高,推理结果较为稳定。
步骤2:采用基于神经网络拟合的手眼标定算法将检测点的像素坐标转换为实际空间坐标;
手眼标定是实现像素坐标到空间坐标转化的基础。系统要求机械臂携带探针进行检测,并且检测点的识别范围较小(大约为5mm×5mm),因此系统对定位精度要求较高。
传统的手眼标定算法一般通过相机内外参标定,消除相机畸变带来的影响,然后采用仿射变化法进行标定,即通过引入旋转矩阵和平移矩阵,建立转化矩阵,完成坐标之间的转化,如式1所示,其中[X,Y]为空间坐标,为[X′,Y′] 像素坐标,R1,R2,R3,R4为旋转矩阵参数,[T1,T2]为平移矩阵参数。
但由于相机内外参标定过于复杂,如果参数标定错误,对于最终的结果会造成较大的影响。并且在参数标定准确的前提下,标定的结果也可能存在一定的偏差。因此,本发明通过引入神经网络拟合的方法,直接拟合像素坐标至空间坐标的关系,从而简便标定过程的同时提高标定的精度。
考虑到像素坐标到实际坐标的转化符合一定的规律,因此构建的神经网络不必过于复杂。根据多次实验,设计如图4所示的神经网络结构,能在较为简单的网络结构下达到较优的拟合精度。
为了检验基于神经网络拟合的手眼标定算法的精度,采样49组数据,每组数据由像素坐标及其对应的空间坐标组成,并随机抽取10组数据作为测试集,剩余39组数据作为训练集,分别采用传统的仿射变换标定算法和基于神经网络拟合的手眼标定算法进行测试,两种算法在测试集和训练集上的表现效果如图5a-5d和表2所示。
表3不同标定算法的拟合效果
表2展示了测试集和训练集上两种算法拟合的MSE和R方。可以看出,神经网络法在训练集和测试集上的MSE要远远小于采用仿射变化法得到的拟合结果;神经网络法在训练集和测试集上的R方为0.99,接近于1,远远优于仿射变化法。图5a-5d也较为直观地展现了神经网络法和仿射变化法在数据集上的拟合效果。综合表2和图5a-5d的结果,无论在训练集和测试集上,神经网络法最终的拟合效果要远远优于采用仿射变化法拟合的效果。
步骤3:采用动态松弛投票的方式对得到的检测点空间坐标进行分类,分别计算坐标点集中任意两点构成的直线参数,找出出现次数最多的直线参数,计算坐标点集中任意点到直线的距离,将距离与阈值进行判断,从而进行分类;最后利用最小二乘法拟合坐标点得到最后的电路板角度信息,最终确定检测点位置信息,实现电路板检测点的定位。
由于经YOLOv5算法推理后返回的电路板检测点像素坐标集合是无序的,一方面为了保证检测电路板按顺序对每个检测点进行检测,另一方面为了计算电路板的偏转角度,都需要对上述无序的像素坐标集合进行分类。对于电路板结构而言,检测点呈现两条平行直线排列,因此得到的像素坐标应为双平行散点分布,由于YOLOv5检测存在一定的像素偏差,因此得到的像素坐标不一定严格符合平行列,即属于一条直线上的检测点像素坐标可能分布在某条直线的附近。
因此,上述问题可以转化为近似双平行散点分类问题:平面内存在点集 P,找出两组子点集P1,P2,满足:
且对于任意一个子点集,满足:
yi=kxi+bi+δ (5)
其中(xi,yi)∈Pi,δ是服从均值为0的正态分布随机误差。
在图像处理领域,通常采用霍夫变换对图像中的直线、圆进行检测。通过二值化和边缘检测得到边缘点集,通过霍夫变换将边缘点集由直角坐标系转化到直线参数空间系,此时直角坐标系中的一条直线即转化到参数空间内一点,通过投票机制,确定出现在参数空间内次数较多的点即为检测的直线参数。
采用霍夫直线检测算法可以解决近似双平行散点问题,但是由于图像中边缘点数量较多,而该问题中给出的散点数目较少,而且并非满足严格平行的情况,直接采用霍夫直线检测效果较差。为了解决上述问题,提出一种基于动态松弛投票的近似双平行散点分类算法。
算法大致思路如下:根据两点确定一条直线,每条直线由斜率k和截距b 两个参数确定。首先,创建空参数集Q。其次,每每计算坐标集P中任意两点确定的直线参数k,b,如果该直线参数存在于参数集Q中,则该参数的票数增加1,否则,将该参数添加至参数集Q中。最后,选取投票数最多的两对参数作为两条平行线的参数,根据各点到两条直线的距离对坐标集进行分类,得到最后的分类结果。
上述的算法思路存在两个问题:
由于各坐标点并不是严格位于直线上,因此可能会导致参数集P中没有存在相同的参数,导致投票机制失效。因此需要引入一定的松弛判定机制,提高投票机制的有效性。
如果引入松弛机制,在平行直线斜率较大的情况下,由于坐标点微小的偏差计算得到的斜率k会有较大偏差,如果松弛机制太小,同样会造成投票机制失效;在平行直线斜率较小的情况下,如果松弛机制过大,会造成投票错投,投票结果失效。因此,需要考虑在不同斜率情况下的不同松弛机制。
考虑上述问题,在原有算法思路基础上,在投票部分添加动态松弛,即当前计算得到的参数如果在参数集Q中某个参数的松弛范围内,则该参数的票数增加一,并且松弛范围与当前计算得到的参数中的斜率参数k相关,k较大时,松弛范围较大,k较小时,松弛范围较小。
综上所述,给出基于动态松弛投票的近似双平行散点分类算法的伪代码如图6所示,其中P代表坐标集,G1,G2代表分类后的子点集,Q为参数集,δ(k) 为以斜率变量k为自变量的松弛函数,满足单调不减性质。
为了检测算法实现效果,分别生成三组数据,分别代表平行线斜率不同的情形,进行算法实验,结果如图7所示。
从图7可以看出,无论是较小斜率和较大斜率,算法都能进行较好的分类,经过投票得到的最优参数直线也近似符合散点的直线分布。因此,上述基于动态松弛投票的近似双平行线散点分类算法能较好地解决无序近似双平行线散点的分类问题,对于系统计算电路板偏转角度和按序检测提供了帮助。
系统整机实验及效果分析:
实验平台
采用Python语言作为开发变成语言。软件环境包括深度学习框架 torch1.10.1、集成开发环境Pycharm2020.3.3和第三方函数库 Anaconda1.10.0以及操作系统Windows10专业版。硬件开发环境为处理器 Intel(R)Core(TM)i7-6500U CPU@2.50GHz 2.6GHz,内存8G。
实验测量指标
为了检验系统整体检测、定位的精准度以及检测效率,对系统进行整机实验,以定位精度误差作为精准度的衡量指标,图像识别推理时间和两个检测点之间的移动时间作为检测效率的衡量指标,进行20次整机实验。定位精度误差定义为系统计算检测点坐标与实际检测点坐标之间的欧式距离,其中实际检测点坐标由人工控制机械臂移动至检测点,通过机械臂反馈获得。图像识别推理时间定义为摄像头拍摄图像至系统获得检测点坐标、角度等相关信息所用时间。两个检测点之间的移动时间定义为机械臂从当前检测点移动至下一个检测点所需要的时间。
3.3实验结果与分析
实验结果如图8所示和表3所示。20次实验测试结果为:平均定位精度误差为0.71mm,图像推理平均时间为2.88s,点到点移动平均时间为1.20s,且 20次实验均成功进行检测。定位精度平均误差满足检测点检测5mm×5mm要求,并且系统检测用时较短,效率要远远高于人工检测,系统设计符合要求。
表3实验结果表
综上所述,本发明针对检测精度高,检测稳定性强的检测需求,提出了基于YOLOv5的电路板检测点检测算法、基于神经网络拟合的手眼标定算法和基于动态松弛投票的近似双平行散点分类算法。基于YOLOv5的电路板检测点检测算法对于场景和训练数据量依赖性较低,在不同场景下均能保持较高的准确率和较强的稳定性。基于神经网络的手眼标定算法,以较为简单的神经网络结构拟合非线性的转化关系,标定结果的准确率大大优于传统的手眼标定算法。基于动态松弛投票的近似双平行散点分类算法解决了霍夫变换直线检测算法对于检测点数量要求的局限,对于少数散点能快速完成聚类工作。
在最后的整机实验过程中,测量了相关指标,实验结果表明,系统在精准率和效率上都达到要求,且效率远远优于人工操作,基本实现桌面级检测的要求。
可以理解,本发明是通过一些实施例进行描述的,本领域技术人员知悉的,在不脱离本发明的精神和范围的情况下,可以对这些特征和实施例进行各种改变或等效替换。另外,在本发明的教导下,可以对这些特征和实施例进行修改以适应具体的情况及材料而不会脱离本发明的精神和范围。因此,本发明不受此处所公开的具体实施例的限制,所有落入本申请的权利要求范围内的实施例都属于本发明所保护的范围内。
Claims (5)
1.一种基于YOLOv5的电路板检测点定位方法,其特征在于,包括如下步骤:
步骤1:采用YOLOv5目标检测算法对拍摄的电路板图像中检测点像素位置进行定位;
步骤2:采用基于神经网络拟合的手眼标定算法将检测点的像素坐标转换为实际空间坐标;
步骤3:采用动态松弛投票的方式对得到的检测点空间坐标进行分类,分别计算坐标点集中任意两点构成的直线参数,找出出现次数最多的直线参数,计算坐标点集中任意点到直线的距离,将距离与阈值进行判断,从而进行分类;最后利用最小二乘法拟合坐标点得到最后的电路板角度信息,最终确定检测点位置信息,实现电路板检测点的定位。
2.根据权利要求1所述的基于YOLOv5的电路板检测点定位方法,其特征在于,所述步骤1包括如下具体步骤:
步骤1.1:采用电路板正放,拍摄光线明亮、电路板正放,拍摄光线昏暗、电路板不同角度斜放,拍摄光线明亮和电路板不同角度斜放,拍摄光线昏暗各6张图片,共24张图片作为训练集,6张随机拍摄图片作为测试集;
步骤1.2:经过800轮训练,模型最终在训练集上的mAP@0.5为0.995,经过推理检测后,检测目标被矩形框框选,并且显示置信度,即当前框选对象为检测目标的概率,算法采用矩形框的中心作为检测目标的像素坐标,得出光线亮度和电路板的摆放情况对于YOLO算法最终的推理结果没有较大的影响,表明算法对于场景不具有依赖性,并且每种场景下的检测效果精度较优,均能识别出所有的检测点;
步骤1.3:测试YOLOv5算法在不同场景下的识别精准度和识别效果的稳定性:以算法推理检测点成功率、推理结果的置信度作为算法识别精准度和稳定性的衡量指标,分别在正放,光线明亮、正放,光线昏暗、斜放,光线明亮和斜放,光线昏暗四种场景下各进行20次实验,得到检测置信度分布和准确率,得出在不同的场景下,算法的检测准确率都为100%;
步骤1.4:研究光线强度和摆放位置对于算法检测稳定性的影响:通过分析对比各场景下的推理结果置信度分布,得到,光线明亮的情况下,推理结果的置信度较光线昏暗的情况下的推理结果置信度较高;电路板正放时,推理结果的置信度较斜放时的推理结果执行难度较高,因此可以得出当光线明亮,电路板正放时,推理结果置信度较高,推理结果较为稳定。
3.根据权利要求1所述的基于YOLOv5的电路板检测点定位方法,其特征在于,所述步骤2包括如下具体步骤:
步骤2.1:基于手眼标定算法,通过引入神经网络拟合的方法,直接拟合像素坐标至空间坐标的关系;
步骤2.2:构建神经网络结构;
步骤2.3:检验基于神经网络拟合的手眼标定算法的精度:采样49组数据,每组数据由像素坐标及其对应的空间坐标组成,并随机抽取10组数据作为测试集,剩余39组数据作为训练集,分别采用传统的仿射变换标定算法和基于神经网络拟合的手眼标定算法进行测试,得到神经网络法最终的拟合效果要优于采用仿射变化法拟合的效果。
4.根据权利要求1所述的基于YOLOv5的电路板检测点定位方法,其特征在于,所述步骤3包括如下具体步骤:
步骤3.1:对经YOLOv5算法推理后返回的电路板检测点的无序的像素坐标集合进行分类;对于电路板结构而言,检测点呈现两条平行直线排列,因此得到的像素坐标应为双平行散点分布,由于YOLOv5检测存在一定的像素偏差,因此得到的像素坐标不一定严格符合平行列,即属于一条直线上的检测点像素坐标可能分布在某条直线的附近,
因此,上述问题可以转化为近似双平行散点分类问题:平面内存在点集P,找出两组子点集P1,P2,满足:
且对于任意一个子点集,满足:
yi=kxi+bi+δ (2)
其中(xi,yi)∈Pi,δ是服从均值为0的正态分布随机误差;
在图像处理领域,采用霍夫变换对图像中的直线、圆进行检测;通过二值化和边缘检测得到边缘点集,通过霍夫变换将边缘点集由直角坐标系转化到直线参数空间系,此时直角坐标系中的一条直线即转化到参数空间内一点,通过投票机制,确定出现在参数空间内次数较多的点即为检测的直线参数;
步骤3.2:提出一种基于动态松弛投票的近似双平行散点分类算法;
根据两点确定一条直线,每条直线由斜率k和截距b两个参数确定;首先,创建空参数集Q;其次,每每计算坐标集P中任意两点确定的直线参数k,b,如果该直线参数存在于参数集Q中,则该参数的票数增加1,否则,将该参数添加至参数集Q中;最后,选取投票数最多的两对参数作为两条平行线的参数,根据各点到两条直线的距离对坐标集进行分类,得到最后的分类结果;
步骤3.3:在原有算法思路基础上,在投票部分添加动态松弛,即当前计算得到的参数如果在参数集Q中某个参数的松弛范围内,则该参数的票数增加一,并且松弛范围与当前计算得到的参数中的斜率参数k相关,k较大时,松弛范围较大,k较小时,松弛范围较小;
步骤3.4:检测算法实现效果,分别生成三组数据,分别代表平行线斜率不同的情形,进行算法实验,得出,无论是较小斜率和较大斜率,算法都能进行较好的分类,经过投票得到的最优参数直线也近似符合散点的直线分布。
5.根据权利要求1所述的基于YOLOv5的电路板检测点定位方法,其特征在于,包括步骤4:系统整机实验及效果分析,包括如下具体步骤:
步骤4.1:实验平台:采用Python语言作为开发变成语言;软件环境包括深度学习框架torch1.10.1、集成开发环境Pycharm2020.3.3和第三方函数库Anaconda1.10.0以及操作系统Windows 10专业版;硬件开发环境为处理器Intel(R)Core(TM)i7-6500U CPU@2.50GHz2.6GHz,内存8G;
步骤4.2:实验测量指标:检验系统整体检测、定位的精准度以及检测效率,对系统进行整机实验,以定位精度误差作为精准度的衡量指标,图像识别推理时间和两个检测点之间的移动时间作为检测效率的衡量指标,进行20次整机实验;定位精度误差定义为系统计算检测点坐标与实际检测点坐标之间的欧式距离,其中实际检测点坐标由人工控制机械臂移动至检测点,通过机械臂反馈获得;图像识别推理时间定义为摄像头拍摄图像至系统获得检测点坐标、角度等相关信息所用时间;两个检测点之间的移动时间定义为机械臂从当前检测点移动至下一个检测点所需要的时间;
步骤4.3:实验结果与分析:20次实验测试结果为:平均定位精度误差为0.71mm,图像推理平均时间为2.88s,点到点移动平均时间为1.20s,且20次实验均成功进行检测;定位精度平均误差满足检测点检测5mm×5mm要求,并且系统检测用时较短,效率要远远高于人工检测,系统设计符合要求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210606294.7A CN114998432A (zh) | 2022-05-31 | 2022-05-31 | 一种基于YOLOv5的电路板检测点定位方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210606294.7A CN114998432A (zh) | 2022-05-31 | 2022-05-31 | 一种基于YOLOv5的电路板检测点定位方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114998432A true CN114998432A (zh) | 2022-09-02 |
Family
ID=83031094
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210606294.7A Pending CN114998432A (zh) | 2022-05-31 | 2022-05-31 | 一种基于YOLOv5的电路板检测点定位方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114998432A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116091600A (zh) * | 2022-12-26 | 2023-05-09 | 北京万集科技股份有限公司 | 一种图像目标的定位方法、装置、终端设备和存储介质 |
CN116704017A (zh) * | 2023-08-09 | 2023-09-05 | 烟台大学 | 一种基于视觉混合的机械臂位姿检测方法 |
-
2022
- 2022-05-31 CN CN202210606294.7A patent/CN114998432A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116091600A (zh) * | 2022-12-26 | 2023-05-09 | 北京万集科技股份有限公司 | 一种图像目标的定位方法、装置、终端设备和存储介质 |
CN116091600B (zh) * | 2022-12-26 | 2023-12-01 | 北京万集科技股份有限公司 | 一种图像目标的定位方法、装置、终端设备和存储介质 |
CN116704017A (zh) * | 2023-08-09 | 2023-09-05 | 烟台大学 | 一种基于视觉混合的机械臂位姿检测方法 |
CN116704017B (zh) * | 2023-08-09 | 2023-11-14 | 烟台大学 | 一种基于视觉混合的机械臂位姿检测方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108288088B (zh) | 一种基于端到端全卷积神经网络的场景文本检测方法 | |
CN114998432A (zh) | 一种基于YOLOv5的电路板检测点定位方法 | |
CN106980856B (zh) | 公式识别方法及系统和符号推理计算方法及系统 | |
CN109740606B (zh) | 一种图像识别方法及装置 | |
CN111639647B (zh) | 指示灯状态识别方法、装置、计算机设备及存储介质 | |
CN112257676A (zh) | 一种指针式仪表读数方法、系统以及巡检机器人 | |
CN111814740B (zh) | 指针仪表读数的识别方法、装置、计算机设备和存储介质 | |
CN112784869B (zh) | 一种基于注意力感知与对抗学习的细粒度图像识别方法 | |
CN113569968B (zh) | 模型训练方法、目标检测方法、装置、设备及存储介质 | |
CN108664860B (zh) | 房间平面图的识别方法及装置 | |
CN107239743B (zh) | 一种基于投影法的刻度线读数自动检测方法 | |
CN110659637A (zh) | 一种结合深度神经网络和sift特征的电能表示数与标签自动识别方法 | |
CN112801094A (zh) | 一种指针式仪表图像倾斜校正方法 | |
CN111738319B (zh) | 一种基于大规模样本的聚类结果评价方法及装置 | |
CN115841488A (zh) | 一种基于计算机视觉的pcb板的检孔方法 | |
CN117351499B (zh) | 一种分合指示状态识别方法、系统、计算机设备和介质 | |
Sowah et al. | An intelligent instrument reader: using computer vision and machine learning to automate meter reading | |
Zhang et al. | A YOLOv3‐Based Industrial Instrument Classification and Reading Recognition Method | |
Ni et al. | Multi-meter intelligent detection and recognition method under complex background | |
CN112070811A (zh) | 一种基于连续域蚁群算法改进的图像配准方法 | |
CN116597246A (zh) | 模型训练方法、目标检测方法、电子设备及存储介质 | |
CN113362380B (zh) | 一种图像特征点检测模型训练方法、装置及其电子设备 | |
CN114021480A (zh) | 模型优化方法、设备和存储介质 | |
CN112200217B (zh) | 基于红外图像大数据的识别算法评价方法及系统 | |
CN114155380A (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 |