CN117115099A - 斜齿轮瑕疵检测方法、装置、终端设备及存储介质 - Google Patents
斜齿轮瑕疵检测方法、装置、终端设备及存储介质 Download PDFInfo
- Publication number
- CN117115099A CN117115099A CN202311042347.8A CN202311042347A CN117115099A CN 117115099 A CN117115099 A CN 117115099A CN 202311042347 A CN202311042347 A CN 202311042347A CN 117115099 A CN117115099 A CN 117115099A
- Authority
- CN
- China
- Prior art keywords
- image
- training
- helical gear
- flaw
- training image
- 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 140
- 238000000034 method Methods 0.000 claims abstract description 46
- 238000012549 training Methods 0.000 claims description 234
- 238000002372 labelling Methods 0.000 claims description 62
- 238000001914 filtration Methods 0.000 claims description 29
- 230000007547 defect Effects 0.000 abstract description 11
- 238000010586 diagram Methods 0.000 description 31
- 238000004422 calculation algorithm Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 13
- 230000000694 effects Effects 0.000 description 12
- 238000012937 correction Methods 0.000 description 9
- 238000005457 optimization Methods 0.000 description 9
- 238000012360 testing method Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000009466 transformation Effects 0.000 description 5
- 238000011156 evaluation Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 238000013136 deep learning model Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000004927 fusion Effects 0.000 description 2
- 238000011068 loading method Methods 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 1
- 102000005877 Peptide Initiation Factors Human genes 0.000 description 1
- 108010044843 Peptide Initiation Factors Proteins 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000000137 annealing Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000010191 image analysis Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 230000001172 regenerating effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001629 suppression Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000000007 visual effect Effects 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
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/24—Aligning, centring, orientation detection or correction of the image
- G06V10/242—Aligning, centring, orientation detection or correction of the image by image rotation, e.g. by 90 degrees
-
- 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/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/764—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
-
- 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
-
- 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)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Databases & Information Systems (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种斜齿轮瑕疵检测方法、装置、终端设备及存储介质,属于机械部件检测技术领域,该方法通过获取第一待测图像中第一斜齿轮的第一倾斜角度;基于第一倾斜角度将所述第一待测图像进行旋转,得到第二待测图像,其中,第二待测图像中的第一斜齿轮与水平面平行;将第二待测图像输入至预先训练好的目标检测模型中,以在第二待测图像中对所述第一斜齿轮的第一瑕疵进行识别。本发明通过采用上述技术方案,提高了斜齿轮瑕疵检测的精度。
Description
技术领域
本发明属于机械部件检测技术领域,尤其涉及一种斜齿轮瑕疵检测方法、装置、终端设备及存储介质。
背景技术
齿轮作为一种典型的动力传递器件,其质量的好坏直接影响着机械产品性能,而齿轮配件异常检测是工业瑕疵检测的痛点场景。
目前,关于齿轮的瑕疵检测,也从传统的图像分析技术发展到了基于AI技术的智能检测,即使用深度学习方法来实现齿轮的瑕疵检测,主要瑕疵分类有齿面黑皮、齿底黑皮、磕碰等。其中,在使用矩形框对斜齿轮进行瑕疵检测过程中,由于斜齿轮的包围框不可避免地包含了大量的重叠区域,且包围框中有很大部分不属于标注出来的瑕疵区域,所以会导致斜齿轮的瑕疵检测精度较低的问题。
综上,如何提高斜齿轮瑕疵检测的精度,已经成为机械部件检测技术领域亟待解决的技术问题。
发明内容
本发明的主要目的在于提供一种斜齿轮瑕疵检测方法、装置、终端设备及存储介质。旨在实现提高斜齿轮瑕疵检测的精度。
为了实现上述目的,本发明提供一种斜齿轮瑕疵检测方法,所述斜齿轮瑕疵检测方法包括:
获取第一待测图像中第一斜齿轮的第一倾斜角度;
基于所述第一倾斜角度将所述第一待测图像进行旋转,得到第二待测图像,其中,所述第二待测图像中的所述第一斜齿轮与水平面平行;
将所述第二待测图像输入至预先训练好的目标检测模型中,以在所述第二待测图像中对所述第一斜齿轮的第一瑕疵进行识别。
可选地,所述方法还包括:
基于已知第二瑕疵的多张第一训练图像建立训练集;
基于所述训练集对预先构建的初始检测模型进行模型训练,得到所述目标检测模型。
可选地,所述基于已知第二瑕疵的多张第一训练图像建立训练集的步骤,包括:
提取已知第二瑕疵的第一训练图像中的边缘轮廓信息,并对所述边缘轮廓信息进行矩形框拟合,得到包含多个第一矩形框的第二训练图像;
将多个所述第一矩形框中符合过滤条件的矩形框从所述第二训练图像中去除,得到包含多个第二矩形框的第三训练图像;
计算多个所述第二矩形框各自对应的第二倾斜角度的第一平均角度,将所述第一平均角度作为所述第一训练图像中第二斜齿轮的第三倾斜角度;
基于所述第三倾斜角度将所述第一训练图像进行旋转,得到第四训练图像,并将所述第四训练图像加入训练集。
可选地,所述将多个所述第一矩形框中符合过滤条件的矩形框从所述第二训练图像中去除的步骤,包括:
基于多个所述第一矩形框各自对应的横纵比和第四倾斜角度判断所述第一矩形框是否符合过滤条件;
若所述第一矩形框符合所述过滤条件,则将所述第一矩形框从所述第二训练图像中去除。
可选地,所述基于所述训练集对预先构建的初始检测模型进行模型训练,得到所述目标检测模型的步骤,包括:
获取所述第二瑕疵在所述第一训练图像中构成的多边形框,并计算所述多边形框的各顶点各自在所述第四训练图像中的旋转标注坐标;
基于各所述旋转标注坐标确定所述第二瑕疵在所述第四训练图像中构成的第三矩形框,并计算所述第三矩形框的面积;
基于各所述旋转标注坐标、所述面积以及所述第四训练图像的高度和宽度,生成所述第四训练图像对应的旋转标注文件;
基于所述训练集和所述旋转标注文件对预先构建的初始检测模型进行模型训练,得到所述目标检测模型。
可选地,所述计算所述多边形框的各顶点各自在所述第四训练图像中的旋转标注坐标的步骤,包括:
从所述第一训练图像对应的原始标注文件中获取所述多边形框各个顶点各自的原始标注坐标;
基于各所述原始标注坐标、所述第三倾斜角度和预设的坐标系旋转公式计算各所述顶点各自在所述第四训练图像中的旋转标注坐标。
可选地,所述基于各所述旋转标注坐标确定所述第二瑕疵在所述第四训练图像中的第三矩形框的步骤,包括:
基于各所述旋转标注坐标确定各所述顶点在所述第四训练图像中构成的最小矩形框,将所述最小矩形框作为所述第二瑕疵在所述第四训练图像中构成的第三矩形框。
此外,为实现上述目的,本发明还提供一种斜齿轮瑕疵检测装置,所述斜齿轮瑕疵检测装置包括:
获取模块,用于获取第一待测图像中第一斜齿轮的第一倾斜角度;
旋转模块,用于基于所述第一倾斜角度将所述第一待测图像进行旋转,得到第二待测图像,其中,所述第二待测图像中的所述第一斜齿轮与水平面平行;
识别模块,用于将所述第二待测图像输入至预先训练好的目标检测模型中,以在所述第二待测图像中对所述第一斜齿轮的第一瑕疵进行识别。
此外,为实现上述目的,本发明还提供一种终端设备,所述终端设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的斜齿轮瑕疵检测程序,所述终端设备的斜齿轮瑕疵检测程序被所述处理器执行时实现如上所述的斜齿轮瑕疵检测方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有斜齿轮瑕疵检测程序,所述斜齿轮瑕疵检测程序被处理器执行时实现如上所述的斜齿轮瑕疵检测方法的步骤。
本发明实施例提出的一种斜齿轮瑕疵检测方法、装置、终端设备以及计算机可读存储介质,所述方法获取第一待测图像中第一斜齿轮的第一倾斜角度;基于所述第一倾斜角度将所述第一待测图像进行旋转,得到第二待测图像,其中,所述第二待测图像中的所述第一斜齿轮与水平面平行;将所述第二待测图像输入至预先训练好的目标检测模型中,以在所述第二待测图像中对所述第一斜齿轮的第一瑕疵进行识别。
本发明实施例通过获取待测图像(即上述第一待测图像)中的斜齿轮(即上述第一斜齿轮)的倾斜角度(即上述第一倾斜角度),基于第一倾斜角度将第一待测图像进行旋转,得到旋转后的待测图像(即上述第二待测图像),而且,第二待测图像中的第一斜齿轮与水平面平行,然后将第二待测图像输入至预先训练好的目标检测模型中,通过该目标检测模型在第二待测图像中对第一斜齿轮的第一瑕疵进行识别。如此,相比于现有使用矩形框对斜齿轮上的瑕疵进行检测时出现的包围框包含大量的重叠区域不属于瑕疵的深度学习模型,本申请对输入的待测图像进行预先处理,将倾斜的斜齿轮旋转到水平方向,可以理解的是,由于用于包围斜齿轮瑕疵区域的矩形框是非倾斜的,所以同样的瑕疵区域,在水平状态的斜齿轮上构成的矩形框比在倾斜状态构成的矩形框标注的瑕疵区域更精确,进而提高斜齿轮瑕疵检测的精度。
附图说明
图1是本发明实施例方案涉及的终端设备硬件运行环境的设备结构示意图;
图2为本发明斜齿轮瑕疵检测方法第一实施例的步骤流程示意图;
图3为本发明斜齿轮瑕疵检测方法的一实施例所涉及的图像预处理效果示意图;
图4为本发明斜齿轮瑕疵检测方法的一实施例所涉及的图像优化效果示意图;
图5为本发明斜齿轮瑕疵检测方法的一实施例所涉及的图像旋转效果示意图;
图6为本发明斜齿轮瑕疵检测方法的一实施例所涉及的磕碰比对效果示意图;
图7为本发明斜齿轮瑕疵检测方法的一实施例所涉及的齿底黑皮比对效果示意图;
图8为本发明斜齿轮瑕疵检测方法的一实施例所涉及的齿底齿面黑皮比对效果示意图;
图9为本发明斜齿轮瑕疵检测方法的一实施例所涉及的图像旋转原理示意图;
图10为本发明斜齿轮瑕疵检测方法的一实施例所涉及的文件数据变换示意图;
图11为本发明斜齿轮瑕疵检测方法的一实施例所涉及的瑕疵包围框可视化效果图;
图12为本发明斜齿轮瑕疵检测方法的一实施例所涉及的数据集优化算法流程示意图;
图13为本发明斜齿轮瑕疵检测方法的一实施例所涉及的训练结果示意图;
图14为本发明斜齿轮瑕疵检测方法的一实施例所涉及的逆向旋转原理示意图;
图15为本发明斜齿轮瑕疵检测方法的一实施例所涉及的逆向旋转前后文件对比示意图;
图16为本发明斜齿轮瑕疵检测方法的一实施例所涉及的磕碰检测结果比对示意图;
图17为本发明斜齿轮瑕疵检测方法的一实施例所涉及的齿底黑皮检测结果比对示意图;
图18为本发明斜齿轮瑕疵检测方法的一实施例所涉及的齿底黑皮检测结果比对示意图;
图19为本发明斜齿轮瑕疵检测装置一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及终端设备的硬件运行环境的设备结构示意图。
本发明实施例终端设备可以是应用于机械部件检测技术领域的终端设备。具体地,该终端设备可以是智能手机、PC(PerSonal Computer,个人计算机)、平板电脑、便携计算机等等。
如图1所示,该终端设备可以包括:处理器1001,例如CPU,通信总线1002,用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(DiSplay)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如Wi-Fi接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的终端设备结构并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及斜齿轮瑕疵检测程序。
在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端,与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的斜齿轮瑕疵检测程序,并执行如下操作:
获取第一待测图像中第一斜齿轮的第一倾斜角度;
基于所述第一倾斜角度将所述第一待测图像进行旋转,得到第二待测图像,其中,所述第二待测图像中的所述第一斜齿轮与水平面平行;
将所述第二待测图像输入至预先训练好的目标检测模型中,以在所述第二待测图像中对所述第一斜齿轮的第一瑕疵进行识别。
可选地,处理器1001还可以用于调用存储器1005中存储的斜齿轮瑕疵检测程序,还执行如下操作:
基于已知第二瑕疵的多张第一训练图像建立训练集;
基于所述训练集对预先构建的初始检测模型进行模型训练,得到所述目标检测模型。
可选地,处理器1001还可以用于调用存储器1005中存储的斜齿轮瑕疵检测程序,并执行如下操作:
提取已知第二瑕疵的第一训练图像中的边缘轮廓信息,并对所述边缘轮廓信息进行矩形框拟合,得到包含多个第一矩形框的第二训练图像;
将多个所述第一矩形框中符合过滤条件的矩形框从所述第二训练图像中去除,得到包含多个第二矩形框的第三训练图像;
计算多个所述第二矩形框各自对应的第二倾斜角度的第一平均角度,将所述第一平均角度作为所述第一训练图像中第二斜齿轮的第三倾斜角度;
基于所述第三倾斜角度将所述第一训练图像进行旋转,得到第四训练图像,并将所述第四训练图像加入训练集。
可选地,处理器1001还可以用于调用存储器1005中存储的斜齿轮瑕疵检测程序,并执行如下操作:
基于多个所述第一矩形框各自对应的横纵比和第四倾斜角度判断所述第一矩形框是否符合过滤条件;
若所述第一矩形框符合所述过滤条件,则将所述第一矩形框从所述第二训练图像中去除。
可选地,处理器1001还可以用于调用存储器1005中存储的斜齿轮瑕疵检测程序,并执行如下操作:
获取所述第二瑕疵在所述第一训练图像中构成的多边形框,并计算所述多边形框的各顶点各自在所述第四训练图像中的旋转标注坐标;
基于各所述旋转标注坐标确定所述第二瑕疵在所述第四训练图像中构成的第三矩形框,并计算所述第三矩形框的面积;
基于各所述旋转标注坐标、所述面积以及所述第四训练图像的高度和宽度,生成所述第四训练图像对应的旋转标注文件;
基于所述训练集和所述旋转标注文件对预先构建的初始检测模型进行模型训练,得到所述目标检测模型。
可选地,处理器1001还可以用于调用存储器1005中存储的斜齿轮瑕疵检测程序,并执行如下操作:
从所述第一训练图像对应的原始标注文件中获取所述多边形框各个顶点各自的原始标注坐标;
基于各所述原始标注坐标、所述第三倾斜角度和预设的坐标系旋转公式计算各所述顶点各自在所述第四训练图像中的旋转标注坐标。
可选地,处理器1001还可以用于调用存储器1005中存储的斜齿轮瑕疵检测程序,并执行如下操作:
基于各所述旋转标注坐标确定各所述顶点在所述第四训练图像中构成的最小矩形框,将所述最小矩形框作为所述第二瑕疵在所述第四训练图像中构成的第三矩形框。
基于上述的终端设备,提出本发明斜齿轮瑕疵检测方法的各实施例。
请参照图2,图2为本发明斜齿轮瑕疵检测方法第一实施例的流程示意图。需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,本发明斜齿轮瑕疵检测方法当然也可以以不同于此处的顺序执行所示出或描述的步骤。
在本发明斜齿轮瑕疵检测方法的第一实施例中,本发明斜齿轮瑕疵检测方法包括:
步骤S10,获取第一待测图像中第一斜齿轮的第一倾斜角度;
在本实施例中,终端设备获取待测图像(以下称为第一待测图像以示区分)中的斜齿轮(以下称为第一斜齿轮以示区分)的倾斜角度(以下称为第一倾斜角度以示区分)。
示例性地,终端设备调用ShiftCorrection()算法获取待检测图像中各斜齿轮的平均倾斜角度,具体的,ShiftCorrection()算法的主要步骤为:将待检测图像转换为灰度图像,并依次使用中值滤波和高斯滤波来预处理图像,以去除图像的噪声,此处两种滤波算法的卷积核都使用的5×5,滤波后的图像如图3中的(a)所示;使用Canny算法提取图像的边缘,使用的低阈值为50,高阈值为150,提取的边缘图像如图3中的(b)所示;使用可旋转的矩形提取轮廓,此处使用的OpenCV中的函数FindContours来自动获取轮廓,并用可旋转的最小外接矩形框来拟合每一个轮廓,得到轮廓拟合之后的图像如图3中的(c)所示;需要说明的是,斜齿轮图像中齿面、齿底以及齿面纹理轮廓都是横纵比较大的矩形,且倾斜角应该在±90度之间,所以在对多个矩形框进行第一轮优化时,去除横纵比(矩形框的长与宽的比值)低于10或者倾斜角过大的外接矩形,即剔除显著的误检轮廓区域,第一轮优化后的图像如图4中的(d)所示;由于每个单幅图像采集的是同一个齿轮的图像,齿的倾斜角度应该是唯一的,以此为依据来对矩形框进行第二次筛选。具体方法是计算所有矩形的平均倾斜角度和标准差,当某一个矩形的倾斜角与平均值的差异超过1倍标准差时,去掉该矩形框,第二轮优化后的图像如图4中的(e)所示;重新分析剩余的矩形框,计算新的平均值和标准差,此时标准差已经很小,说明所保留的矩形框倾斜角较为集中,整体误差较小,此时的平均值能用来表示图像的整体倾斜角。该平均值即为待检测图像中斜齿轮的齿面倾斜角,即上述第一倾斜角度,也就是ShiftCorrection()算法的输出结果。
步骤S20,基于所述第一倾斜角度将所述第一待测图像进行旋转,得到第二待测图像,其中,所述第二待测图像中的所述第一斜齿轮与水平面平行;
在本实施例中,终端设备基于待测斜齿轮的第一倾斜角度将第一待测图像进行旋转,使得第一斜齿轮与水平面平行,并得到旋转后的待测图像(以下称为第二待测图像以示区分)。
示例性地,如图5所示,旋转前的待测图像和旋转后的待测图像,终端设备使用imgaug库中的iaa.Affine函数用于对图像进行旋转操作,输入的参数rotate表示旋转角度,即第一倾斜角度,假设第一倾斜角度为28度,则将第一待测图像朝逆时针方向旋转28度,保留第一待测图像的全图,因此旋转之后图像范围会扩大,产生的新像素点用常数0填充。应当理解的是,理论上,在旋转后的图像中第一斜齿轮与水平面平行。
步骤S30,将所述第二待测图像输入至预先训练好的目标检测模型中,以在所述第二待测图像中对所述第一斜齿轮的第一瑕疵进行识别。
在本实施例中,终端设备将第二待测图像输入至预先训练好的目标检测模型中,通过该目标检测模型在第二待测图像中对第一斜齿轮的瑕疵(以下称为第一瑕疵以示区分)进行识别,并使用矩形框对第一瑕疵所在的区域进行框选,并确定第一瑕疵的瑕疵类型,其中,瑕疵类型包括但不限于齿面黑皮、齿底黑皮和磕碰。
需要说明的是,本申请上述目标检测模型具体为PP-YOLOE模型,PP-YOLOE是基于PP-YOLOv2的卓越的单阶段Anchor-free模型,超越了多种流行的YOLO模型。其使用大规模数据集obj365预训练模型进行预训练,可以在不同场景数据集上快速调优收敛。
示例性地,终端设备通过预先训练得到的最优模型权重参数来对所有旋转之后的待检测图像进行瑕疵推理,采用以下指令完成推理:
Python tools/infer.py-cconfigs/ppyoloe/ppyoloe_plus_crn_l_80e_coco.yml-oweights=output/ppyoloe_plus_crn_l_80e_coco/best_model--infer_dir=../Val--saveresults=True
其中,所有待检测图像存储在与PaddleDetection同路径下的文件夹Val中,所有推理结果存储在PaddleDetection/output文件夹中,其中的一组典型的检测结果如图6、图7和图8所示,其中图6为磕碰比对效果示意图,表示瑕疵类别为磕碰的瑕疵的瑕疵检测结果(预测值)和实际瑕疵情况(真实值),图7为齿底黑皮比对效果示意图,表示瑕疵类别为齿底黑皮的瑕疵的瑕疵检测结果(预测值)和实际瑕疵情况(真实值),图8为齿底齿面黑皮比对效果示意图,表示瑕疵类别为齿底黑皮和瑕疵类别为齿面黑皮的瑕疵的瑕疵检测结果(预测值)和实际瑕疵情况(真实值)。
在本实施例中,本发明斜齿轮瑕疵检测方法通过获取第一待测图像中的第一斜齿轮的第一倾斜角度;基于待测斜齿轮的第一倾斜角度将第一待测图像进行旋转,使得第一斜齿轮与水平面平行,并得到旋转后的第二待测图像;将第二待测图像输入至预先训练好的目标检测模型中,通过该目标检测模型在第二待测图像中对第一斜齿轮的第一瑕疵进行识别,并使用矩形框对第一瑕疵所在的区域进行框选,并确定第一瑕疵的瑕疵类型,其中,瑕疵类型包括但不限于齿面黑皮、齿底黑皮和磕碰。
如此,本发明实施例通过获取待测图像(即上述第一待测图像)中的斜齿轮(即上述第一斜齿轮)的倾斜角度(即上述第一倾斜角度),基于第一倾斜角度将第一待测图像进行旋转,得到旋转后的待测图像(即上述第二待测图像),而且,第二待测图像中的第一斜齿轮与水平面平行,然后将第二待测图像输入至预先训练好的目标检测模型中,通过该目标检测模型在第二待测图像中对第一斜齿轮的第一瑕疵进行识别。如此,相比于现有使用矩形框对斜齿轮上的瑕疵进行检测时出现的包围框包含大量的重叠区域不属于瑕疵的深度学习模型,本申请对输入的待测图像进行预先处理,将倾斜的斜齿轮旋转到水平方向,可以理解的是,由于用于包围斜齿轮瑕疵区域的矩形框是非倾斜的,所以同样的瑕疵区域,在水平状态的斜齿轮上构成的矩形框比在倾斜状态构成的矩形框标注的瑕疵区域更精确,进而提高斜齿轮瑕疵检测的精度。
进一步地,基于上述本发明斜齿轮瑕疵检测方法的第一实施例,提出本发明斜齿轮瑕疵检测方法的第二实施例。
在本实施例中,本发明斜齿轮瑕疵检测方法,还可以包括:
步骤A10,基于已知第二瑕疵的多张第一训练图像建立训练集;
步骤A20,基于所述训练集对预先构建的初始检测模型进行模型训练,得到所述目标检测模型。
在本实施例中,终端设备基于已知瑕疵(以下称为第二瑕疵以示区分)的多张训练图像(以下称为第一训练图像以示区分)建立数据训练集,然后基于该训练集对预先构建的初始检测模型进行模型训练,得到目标检测模型。
进一步地,在一种可行的实施例中,上述步骤A10,可以包括:
步骤A101,提取已知第二瑕疵的第一训练图像中的边缘轮廓信息,并对所述边缘轮廓信息进行矩形框拟合,得到包含多个第一矩形框的第二训练图像;
在本实施例中,终端设备提取已知第二瑕疵的第一训练图像中的边缘轮廓信息,并对提取出的边缘轮廓信息进行矩形框拟合,得到多个矩形框(以下称为第一矩形框以示区分),并得到包含多个第一矩形框的训练图像(以下称为第二训练图像以示区分)。
示例性地,终端设备调用ShiftCorrection()算法,基于ShiftCorrection()算法将每张第一训练图像转换为灰度图像,并依次使用中值滤波和高斯滤波来预处理图像,以去除图像的噪声,然后使用Canny算法提取图像的边缘,再使用可旋转的矩形提取轮廓,此处使用的OpenCV中的函数FindContours来自动获取轮廓,并用可旋转的最小外接矩形框来拟合每一个轮廓,得到上述第二训练图像。
步骤A102,将多个所述第一矩形框中符合过滤条件的矩形框从所述第二训练图像中去除,得到包含多个第二矩形框的第三训练图像;
在本实施例中,终端设备将第二训练图像中的多个第一矩形框中符合过滤条件的矩形框从第二训练图像中去除,将剩余的矩形框作为第二矩形框,并生成包含多个第二矩形框的训练图像(以下称为第三训练图像以示区分)。
进一步地,在一种可行的实施例中,上述步骤A102,可以包括:
步骤B10,基于多个所述第一矩形框各自对应的横纵比和第四倾斜角度判断所述第一矩形框是否符合过滤条件;
步骤B20,若所述第一矩形框符合所述过滤条件,则将所述第一矩形框从所述第二训练图像中去除。
在本实施例中,终端设备计算多个第一矩形框各自对应的横纵比,并计算多个第一矩形框各自对应的倾斜角度(以下成为第四倾斜角度以示区分),然后基于计算得到的各横纵比和各第四倾斜角度判断每一个第一矩形框是否符合过滤条件,将符合过滤条件的矩形框从第二训练图像中去除。
示例性地,终端设备计算每个第一矩形框的横纵比,检测该横纵比是否小于预设数值,若检测到当前第一矩形框的横纵比小于预设数值,则将当前第一矩形框从第二训练图像中去除,其中,本申请将上述预设数值设置为10,但应当理解的是,本申请不对预设数值的具体大小进行限定;终端设备计算每个第一矩形框的倾斜角度,检测该倾斜角度是否大于预设角度,若检测到当前第一矩形框的倾斜角度大于预设角度,则将当前第一矩形框从第二训练图像中去除,其中,本申请将上述预设角度设置为80度,但应当理解的是,本申请不对预设角度的具体大小进行限定;终端设备计算全部第一矩形框各自的倾斜角度的平均值和标准差,检测当前第一矩形框的倾斜角度与平均值之间的差值是否超过1倍标准差,若检测到当前第一矩形框的倾斜角度与平均值之间的差值超过1倍标准差,则将当前第一矩形框从第二训练图像中去除。如此,本申请将影响斜齿轮平均倾斜角度准确性的误检轮廓区域去除,从而保证ShiftCorrection()算法的输出结果的精度。
步骤A103,计算多个所述第二矩形框各自对应的第二倾斜角度的第一平均角度,将所述第一平均角度作为所述第一训练图像中第二斜齿轮的第三倾斜角度;
在本实施例中,终端设备计算多个第二矩形框各自对应的倾斜角度(以下成为第二倾斜角度以示区分)的平均角度(以下成为第一平均角度以示区分),并将计算得到的第一平均角度作为第一训练图像中的斜齿轮(以下成为第二斜齿轮以示区分)的齿轮平均倾斜角度(以下称为第三倾斜角度以示区分)。
示例性地,终端设备重新分析剩余的第二矩形框,计算新的平均值和标准差,将此时计算得到的新的平均值作为参与模型训练的斜齿轮的倾斜角度。
步骤A104,基于所述第三倾斜角度将所述第一训练图像进行旋转,得到第四训练图像,并将所述第四训练图像加入训练集。
在本实施例中,终端设备基于第三倾斜角度将第三训练图像进行旋转,得到旋转后的训练图像(以下称为第四训练图像以示区分),并将第四训练图像加入训练集中。
示例性地,终端设备将每张第一训练图像按照ShiftCorrection()算法输出的倾斜角度进行旋转,得到旋转后的训练图像并加入到训练集中。
在本实施例中,本发明斜齿轮瑕疵检测方法提取已知第二瑕疵的第一训练图像中的边缘轮廓信息,并对提取出的边缘轮廓信息进行矩形框拟合,得到多个第一矩形框,并得到包含多个第一矩形框的第二训练图像;计算第二训练图像中的多个第一矩形框各自对应的横纵比,并计算多个第一矩形框各自对应的第四倾斜角度,然后基于计算得到的各横纵比和各第四倾斜角度判断每一个第一矩形框是否符合过滤条件,将符合过滤条件的矩形框从第二训练图像中去除;计算多个第二矩形框各自对应的第二倾斜角度的第一平均角度,并将计算得到的第一平均角度作为第一训练图像中的第二斜齿轮的齿轮平均倾斜角度;基于第三倾斜角度将第三训练图像进行旋转,得到旋转后的第四训练图像,并将第四训练图像加入训练集中。
如此,本申请在模型训练阶段,对斜齿轮数据集中所有的图像进行倾斜角分析,获得每一幅图像的平均倾斜角度,并逆时针旋转原图,生成新的图像用来训练,完成了对训练集的优化,进而为目标检测模型精度的提高提供基础。
进一步地,基于上述本发明斜齿轮瑕疵检测方法的第一实施例和/或者第二实施例,提出本发明斜齿轮瑕疵检测方法的第三实施例。
在本实施例中,上述步骤A20,可以包括:
步骤A201,获取所述第二瑕疵在所述第一训练图像中构成的多边形框,并计算所述多边形框的各顶点各自在所述第四训练图像中的旋转标注坐标;
在本实施例中,终端设备确定第二瑕疵在第一训练图像中构成的多边形框,并计算该多边形的各顶点跟随第一训练图像进行旋转之后各自在第四训练图像中的坐标(以下称为旋转标注坐标以示区分)。
进一步地,在一种可行的实施例中,上述步骤A201中,“计算所述多边形框的各顶点各自在所述第四训练图像中的旋转标注坐标”的步骤,可以包括:
步骤C10,从所述第一训练图像对应的原始标注文件中获取所述多边形框各个顶点各自的原始标注坐标;
步骤C20,基于各所述原始标注坐标、所述第三倾斜角度和预设的坐标系旋转公式计算各所述顶点各自在所述第四训练图像中的旋转标注坐标。
在本实施例中,终端设备获取第一训练图像对应的原始标注文件,在该原始标注文件中获取多边形框各个顶点各自的坐标(以下成为原始标注坐标以示区分),然后将原始标注坐标和第三倾斜角度代入预设的坐标系旋转公式中,计算出各顶点各自在第四训练图像中的旋转标注坐标。
示例性地,终端设备在原始标注文件Json的字段images中搜索"file_name"为当前图像名的子条,记录该字条中的"id";在字段annotations(注解)中搜索所有与字段images中"id"值相匹配的子条"image_id",也就是找到当前图像中的标注对象。一般来说,一幅图像中有很多个标注对象,因此,在annotations字段中,与images字段中"id"值相匹配的"image_id"子条有很多个,每一个都要进行坐标变换,直到所有子条变换完为止,具体的,"segmentation"记录的是图像中某一个标注对象的多边形包围框各个顶点的横坐标和纵坐标,因此需要采用坐标旋转的方法来修改原坐标,旋转的原理如图9所示,其中:(x0,y0)分别是旋转之后的横坐标和纵坐标,(x,y)分别是旋转之前的横坐标和纵坐标,(center_x,center_y)分别是旋转之前的图像中心点横坐标和纵坐标,首先以原图为中心进行旋转,旋转之后的坐标计算方法如下(A[i]是上一步获取的第i幅图像中,齿轮的平均倾斜角):
x0=(x-center_x)×cos(A[i])+(y-center_y)×sin(A[i])+center_x
y0=-(x-center_x)×sin(A[i])+(y-center_y)×cos(A[i])+center_y
旋转之后图像的大小发生了变化,因此,还要对以上坐标进行修正。用(center_x_new,center_y_new)分别表示旋转之后的图像中心点横坐标和纵坐标,修正之后的横纵坐标分别为x_new和y_new,按以下规则计算:
x_new=x0+(center_x_new-center_x)
y_new=y0+(center_y_new-center_y)
如此,得到多边形框的各顶点各自在第四训练图像中的旋转标注坐标。
步骤A202,基于各所述旋转标注坐标确定所述第二瑕疵在所述第四训练图像中构成的第三矩形框,并计算所述第三矩形框的面积;
在本实施例中,终端设备基于计算得到的各旋转标注坐标确定第二瑕疵在第四训练图像中构成的矩形框(以下称为第三矩形框以示区分),并基于各旋转标注坐标计算该第三矩形框的面积。
进一步地,在一种可行的实施例中,上述步骤A202中,“基于各所述旋转标注坐标确定所述第二瑕疵在所述第四训练图像中的第三矩形框”的步骤,可以包括:
步骤D10,基于各所述旋转标注坐标确定各所述顶点在所述第四训练图像中构成的最小矩形框,将所述最小矩形框作为所述第二瑕疵在所述第四训练图像中构成的第三矩形框。
在本实施例中,终端设备基于各旋转标注坐标确定多边形框的各顶点在第四训练图像中构成的最小矩形框,将最小矩形框作为第二瑕疵在第四训练图像中构成的第三矩形框。
示例性地,"bbox"是用一个最小外接矩形拟合"segmentation"记录中的多边形包围框,一共有四个值(x_Min,y_Min,x_Max-x_Min,y_Max-y_Min),x_Min为"segmentation"记录中最小的横坐标,y_Min为"segmentation"记录中最小的纵坐标,x_Max为"segmentation"记录中最大的横坐标,y_Max为"segmentation"记录中最大的纵坐标。因此,"bbox"记录的是矩形包围框的左上角坐标、矩形的长度和宽度,是一个平行于所在图像的矩形。在旋转后的图像中,Json文件对应的坐标也会发生变化,由于"bbox"数据来源于"segmentation"记录,因此,不用对原Json文件中"bbox"记录进行坐标变换,直接从"segmentation"记录中获取,具体方法为:分离出"segmentation"记录中所有点的横坐标和纵坐标,搜索横坐标列表中的最大值和最小值,即为对应"bbox"记录中的x_Max和x_Min,搜索纵坐标列表中的最大值和最小值,即为对应"bbox"记录中的y_Max和y_Min,再求出x_Max-x_Min和y_Max-y_Min,即可获得该包围框的四个值(x_Min,y_Min,x_Max-x_Min,y_Max-y_Min)。最后,根据包围框"bbox"记录中新矩形的长度和宽度,相乘获得该标注框的面积,并修改原Json文件中对应目标的"area"数据。
步骤A203,基于各所述旋转标注坐标、所述面积以及所述第四训练图像的高度和宽度,生成所述第四训练图像对应的旋转标注文件;
在本实施例中,终端设备基于各旋转标注坐标、第三矩形框的面积以及第四训练图像的高度和宽度,重新生成第四训练图像对应的旋转标注文件。
示例性地,终端设备在原标注文件Json的字段images中搜索"file_name"为本图像名的子条,首先修改该条中的"width"和"height"为旋转后的新图像的宽度和高度,并找到对应图像所在的标注对象,修改所有子条中"segmentation"(分割)和"bbox"的值。如图10所示,经过以上变换,即可获得第i幅图像的在Json文件中的新数据,随机选取数据集中的一幅图像,该图像的名称为“3_13__H2_817171_IO-NIO198M_210316A0303-2-2.jpg”,Json文件的images字段数据,其中id=794,用来替换图像名,原图大小为1400×2000,旋转之后大小为2175×2423。在annotations字段中,这幅图的定位依靠image_id(对应于images字段中的id),这幅图中一共有74个标注目标bbox框,图10截取了其中2个框,该字段中,id记录的是bbox框的标记,image_id记录该框来自于哪一幅图像,category_id记录标记出来的目标属于哪一种瑕疵类别,segmentation记录这个标注出来的对象的多边形各点的坐标,area记录该矩形框的面积,bbox记录该矩形框左上角坐标和矩形的长和宽。
需要说明的是,经过以处理前后的包围框可视化效果对比如图11所示,瑕疵包围框可视化效果图。从图11中可以发现,经过旋转之后的图像中,斜齿轮都平行放置,其对应的包围框位置更为精确,没有过多的不属于瑕疵的区域,也很好地解决了由于包围框区域过大导致的重叠问题,这会显著提高深度学习训练模型的mAP值。
示例性地,如图12所示,数据训练集优化算法流程示意图,首先,终端设备运行软件,载入标注图像所在文件夹和对应的Json文件,令i=1,由于本申请采用2000张已用矩形框标注的真实斜齿轮的平面展开图作为数据集,用于训练和调节深度学习模型超参数,并评估模型的平均检测精度mAP,所以i的取值范围为[1,2000];载入第i幅图像;分析当前图像,使用ShiftCorrection()算法获取当前图像中斜齿轮的平均偏移角度,记为A[i];然后控制当前图像旋转-A[i]角经过旋转变换后产生的空白像素点用像素值0填充;对Json文件中,第i幅图像中涉及到的参数进行相应的变化,具体包括旋转后图像的宽度、高度、所有标注目标涉及到的坐标和已知瑕疵在旋转后的图像中构成的矩形框的面积;判断是否已经处理完文件夹中的所有图像;若是,则结束流程;若否,则对i进行加一处理,将i+1重新幅值给i,并返回“载入第i幅图像”的步骤。
步骤A204,基于所述训练集和所述旋转标注文件对预先构建的初始检测模型进行模型训练,得到所述目标检测模型。
在本实施例中,终端设备基于训练集和旋转标注文件对预先构建的初始检测模型进行模型训练,得到目标检测模型。
示例性地,在对PP-YOLOE模型进行模型训练之前,需要根据本次训练任务修改相关配置文件,PP-YOLOE模型修改检测对象的类别数量,本任务只有三种瑕疵类别,因此把参数num_classes设置为3。另外,要根据数据集及标注的Json文件存储的位置修改路径参数到相应位置。基于预先完成的数据训练集的Json文件的处理,所以此处利用飞桨全流程开发工具PaddleX实现数据集切分,在MyDataset路径(存储Json文件的路径)下运行命令:paddlex--split_dataset--format COCO--dataset_dir./--val_value 0.1--test_value0.1。该指令将数据集按8:1:1切分成训练集、验证集和测试集。执行完成后,会生成train.Json、val.Json和test.Json三个文件,存储用来训练、验证和测试的数据。
示例性地,需要预先配置的文件包括:优化器配置文件optimizer_80e.yml,设置参数epoch为100,即预设的总训练轮数为100轮。基本学习率参数base_lr设置为0.00025。使用余弦退火方式调整学习率,在最大轮数为192时衰减到最小值。在前5轮内线性地增加学习率,起始因子为0。使用Momentum优化器,动量设置为0.9。使用了L2正则化,系数为0.0005;数据读取配置文件ppyoloe_plus_reader.yml,数据读取器的工作进程数worker_num设置为4。由于本任务中图像尺寸都较大,因此评估数据的高度eval_height和宽度eval_width都设置为1280。训练、评估和测试过程中的批次大小batch_size分别设置为4、2、1。该文件中的其他参数均采用百度飞桨提供的目标检测工具包PaddleDetection中的原始数据;模型配置文件ppyoloe_plus_crn.yml,模型架构使用的YOLOv3,归一化类型是sync_bn。骨干网络是CSPResNet,指定使用的特征融合网络是CustomCSPPAN,指定使用的检测头部是PPYOLOEHead。其中,骨干网络和特征融合网络的配置参数采用百度飞桨提供的目标检测工具包PaddleDetection中的原始数据,未优化。检测头部中,静态分配器的迭代轮数进行了修正,本任务中设置为30,其他参数未改变;运行时置文件runtime.yml,该文件中,需要根据电脑的配置来修改,本任务使用的电脑配置了NVIDIA的RTX3090显卡,因此use_gpu参数设置为true,即使用GPU进行训练。参数post_process和nms都设置为True,也就是在模型导出时包含后处理步骤,进行非极大值抑制,消除冗余检测结果,进一步提高mAP值。进行了以上设置之后,在PaddleDetection路径下运行python-mpaddle.distributed.launch--gpus 0tools/train.py-c configs/ppyoloe/ppyoloe_plus_crn_l_80e_coco.yml--eval–amp。就启动了模型的训练,本机只有单卡训练,采取了边训练边评估的方式,训练一轮的时间在12分钟左右,因此,要完成100轮的训练大概需要20小时。训练完成后,会在PaddleDetection/output目录下生成ppyoloe_plus_crn_l_80e_coco文件夹,最后一轮训练获得的模型权重参数存储在model_final.pdparams文件中,其对应的模型参数的指数移动平均值存储在model_final.pdema文件中,这两个文件是后面使用该模型来对未知图像进行瑕疵预测时会使用到,另外model_final.pdopt文件,只在训练过程中使用。由于训练时采用了边训练边评价的方案,并且采取了分批次训练,因此,最后一轮的参数未必是最优秀的参数,因此,在ppyoloe_plus_crn_l_80e_coco文件夹中,还有对应的best_model文件,存储的是效果最佳的参数,通常,在进行瑕疵预测时,使用的是best_model相关文件。在使用同样的配置,数据集的切分规则也完全相同的情况下,分别对原始数据集和经过第一步数据集优化算法处理的数据集进行模型参数训练,对比最终评价参数,优化前后的结果如图13所示,由于数据集样本不多,齿底黑皮和齿面黑皮这两种瑕疵不显著,整体mAP不高,但优化后的mAP较原始数据有显著的提高。
需要说明的是,由于有些应用的瑕疵检测是在原图上进行的,而且,来计算评价参数的真实值是在未旋转的图像上定义的,因此在利用预先准备的测试集进行模型效果验证时,将测试集文件夹中各幅图像F[j]中齿轮的平均倾斜角,记录为C[j],然后将预测的所有包围框根据各幅图像的倾斜角参数C[j]进行逆向旋转,在原图上可视化,并保存旋转之后的Json文件。具体的,如图14所示,逆向旋转原理示意图,C[j]为旋转角,在逆向旋转步骤中本发明不对"segmentation"记录中的各点进行旋转,而是旋转每个"bbox"包围框的四个顶点,旋转之后映射到原图,并求出最小外接矩形拟合新的bbox框。假设第j幅图像旋转之后的图像宽度为N_W,高度为N_H,其中某包围框在Json文件中的数据为(new_x,new_y,new_w,new_h),该数据表示包围框的左上角横纵坐标值和包围框和宽度和高度。原图宽度为O_W,高度为O_H,其中对应包围框在Json文件中的数据为(old_x,old_y,old_w,old_h)。其中:(old_x,old_y,old_w,old_h)是待求的包围框在原图中的左上角坐标值以及包围框的宽度和高度,其他都是已知条件,求解过程如下:
首先,确定包围框四个顶点的坐标,旋转之前为(new_x,new_y)、(new_x+new_w,new_y+new_h)、(new_x+new_w,new_y)、(new_x,new_y+new_h),旋转之后为(old_x1,old_y1)、(old_x2,old_y2)、(old_x3,old_y3)、(old_x4,old_y4),依次按照以下规则计算旋转之后的顶点坐标。
old_x1=(new_x-N_W/2)×cos(C[j])-(new_y-N_H/2)×sin(C[j])+O_W/2
old_y1=(new_x-N_W/2)×sin(C[j])+(new_y-N_H/2)×cos(C[j])+O_H/2
old_x2=(new_x+new_w-N_W/2)×cos(C[j])-(new_y+new_h-N_H/2)×sin(C[j])+O_W/2
old_y2=(new_x+new_w-N_W/2)×sin(C[j])+(new_y+new_h-N_H/2)×cos(C[j])+O_H/2
old_x3=(new_x+new_w-N_W/2)×cos(C[j])-(new_y-N_H/2)×sin(C[j])+O_W/2
old_y3=(new_x+new_w-N_W/2)×sin(C[j])+(new_y-N_H/2)×cos(C[j])+O_H/2
old_x4=(new_x-N_W/2)×cos(C[j])-(new_y+new_h-N_H/2)×sin(C[j])+O_W/2
old_y4=(new_x-N_W/2)×sin(C[j])+(new_y+new_h-N_H/2)×cos(C[j])+O_H/2
然后,确定bbox在原图中的坐标(old_x,old_y,old_w,old_h)的值,按照以下规则计算:
old_x=Min(old_x1,old_x2,old_x3,old_x4)
old_y=Min(old_y1,old_y2,old_y3,old_y4)
old_w=Max(old_x1,old_x2,old_x3,old_x4)-Min(old_x1,old_x2,old_x3,old_x4)
old_h=Max(old_y1,old_y2,old_y3,old_y4)-Min(old_y1,old_y2,old_y3,old_y4)
其中函数Min()表示求所有输入中的最小值作为输出,函数Max()表示求所有输入中的最大值作为输出。
最后,将Json文件中的其他记录直接映射到新文件中,如图15所示,逆向旋转前后文件对比示意图。
本发明通过采用上述技术方案,可以提高瑕疵检测到准确度,具体的,如图16所示,磕碰检测结果比对示意图,其中,位于图16左侧的图表示采用本发明提供的目标检测模型进行瑕疵检测得出的检测结果,位于图16中间位置的图表示实际的瑕疵情况,位于图16右侧的图表示传统检测方式得到的检测结果;如图17所示,齿底黑皮检测结果比对示意图,其中,位于图17左侧的图表示采用本发明提供的目标检测模型进行瑕疵检测得出的检测结果,位于图17中间位置的图表示实际的瑕疵情况,位于图17右侧的图表示传统检测方式得到的检测结果;如图18所示,齿底黑皮检测结果比对示意图,其中,位于图18左侧的图表示采用本发明提供的目标检测模型进行瑕疵检测得出的检测结果,位于图18中间位置的图表示实际的瑕疵情况,位于图18右侧的图表示传统检测方式得到的检测结果。综上,可以看出本发明提供的目标检测模型输出的检测结果与实际瑕疵情况基本相符,且精度远远大于传统方式得到的检测结果。
在本实施例中,本发明斜齿轮瑕疵检测方法获取第一训练图像对应的原始标注文件,在该原始标注文件中获取多边形框各个顶点各自的坐标(以下成为原始标注坐标以示区分),然后将原始标注坐标和第三倾斜角度代入预设的坐标系旋转公式中,计算出各顶点各自在第四训练图像中的旋转标注坐标;基于各旋转标注坐标确定多边形框的各顶点在第四训练图像中构成的最小矩形框,将最小矩形框作为第二瑕疵在第四训练图像中构成的第三矩形框,并基于各旋转标注坐标计算该第三矩形框的面积;基于各旋转标注坐标、第三矩形框的面积以及第四训练图像的高度和宽度,重新生成第四训练图像对应的旋转标注文件;最后,基于训练集和旋转标注文件对预先构建的初始检测模型进行模型训练,得到目标检测模型。
如此,通过在对数据集中的图像进行旋转之后,对标注的Json文件进行相应的旋转,用coco数据集的格式,即矩形框的左上角坐标和矩形的长度和高度来确定一个包围框的位置,得到新的包围框坐标,新包围框精确地拟合了瑕疵范围,没有过多的非瑕疵目标区域,不需要对现有的目标检测模型的架构、数据格式等进行过多的修改,降低了整个方案的难度。同时相比于主流用多边形框替代矩形框的方法,本方案只是旋转了图像和Json文件的坐标,过程较为简单,无需重新标注文件,降低了工作量和计算难度。
此外,本发明实施例还提供一种斜齿轮瑕疵检测装置。
请参照图19,图19为本发明斜齿轮瑕疵检测装置一实施例的功能模块示意图,如图19所示,本发明斜齿轮瑕疵检测装置包括:
获取模块10,用于获取第一待测图像中第一斜齿轮的第一倾斜角度;
旋转模块20,用于基于所述第一倾斜角度将所述第一待测图像进行旋转,得到第二待测图像,其中,所述第二待测图像中的所述第一斜齿轮与水平面平行;
识别模块30,用于将所述第二待测图像输入至预先训练好的目标检测模型中,以在所述第二待测图像中对所述第一斜齿轮的第一瑕疵进行识别。
可选地,本发明斜齿轮瑕疵检测装置,还包括:
训练集建立模块,用于基于已知第二瑕疵的多张第一训练图像建立训练集;
模型训练模块,用于基于所述训练集对预先构建的初始检测模型进行模型训练,得到所述目标检测模型。
可选地,训练集建立模块,包括:
提取和拟合单元,用于提取已知第二瑕疵的第一训练图像中的边缘轮廓信息,并对所述边缘轮廓信息进行矩形框拟合,得到包含多个第一矩形框的第二训练图像;
过滤单元,用于将多个所述第一矩形框中符合过滤条件的矩形框从所述第二训练图像中去除,得到包含多个第二矩形框的第三训练图像;
第一计算单元,用于计算多个所述第二矩形框各自对应的第二倾斜角度的第一平均角度,将所述第一平均角度作为所述第一训练图像中第二斜齿轮的第三倾斜角度;
旋转单元,用于基于所述第三倾斜角度将所述第一训练图像进行旋转,得到第四训练图像,并将所述第四训练图像加入训练集。
可选地,过滤单元,包括:
判断子单元,用于基于多个所述第一矩形框各自对应的横纵比和第四倾斜角度判断所述第一矩形框是否符合过滤条件;
去除单元,用于若所述第一矩形框符合所述过滤条件,则将所述第一矩形框从所述第二训练图像中去除。
可选地,模型训练模块,包括:
获取单元,用于获取所述第二瑕疵在所述第一训练图像中构成的多边形框,并计算所述多边形框的各顶点各自在所述第四训练图像中的旋转标注坐标;
第二计算单元,用于基于各所述旋转标注坐标确定所述第二瑕疵在所述第四训练图像中构成的第三矩形框,并计算所述第三矩形框的面积;
文件生成单元,用于基于各所述旋转标注坐标、所述面积以及所述第四训练图像的高度和宽度,生成所述第四训练图像对应的旋转标注文件;
模型训练单元,用于基于所述训练集和所述旋转标注文件对预先构建的初始检测模型进行模型训练,得到所述目标检测模型。
可选地,获取单元,包括:
获取子单元,用于从所述第一训练图像对应的原始标注文件中获取所述多边形框各个顶点各自的原始标注坐标;
计算子单元,用于基于各所述原始标注坐标、所述第三倾斜角度和预设的坐标系旋转公式计算各所述顶点各自在所述第四训练图像中的旋转标注坐标。
可选地,第二计算单元,包括:
拟合子单元,用于基于各所述旋转标注坐标确定各所述顶点在所述第四训练图像中构成的最小矩形框,将所述最小矩形框作为所述第二瑕疵在所述第四训练图像中构成的第三矩形框。
本发明还提供一种计算机存储介质,该计算机存储介质上存储有斜齿轮瑕疵检测程序,上述斜齿轮瑕疵检测程序被处理器执行时实现如以上任一项实施例所述的斜齿轮瑕疵检测程序方法的步骤。
本发明计算机存储介质的具体实施例与上述本发明斜齿轮瑕疵检测程序方法各实施例基本相同,在此不作赘述。
本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现如以上任一项实施例所述的本发明斜齿轮瑕疵检测方法的步骤,在此不作赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是TWS耳机等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种斜齿轮瑕疵检测方法,其特征在于,所述斜齿轮瑕疵检测方法包括:
获取第一待测图像中第一斜齿轮的第一倾斜角度;
基于所述第一倾斜角度将所述第一待测图像进行旋转,得到第二待测图像,其中,所述第二待测图像中的所述第一斜齿轮与水平面平行;
将所述第二待测图像输入至预先训练好的目标检测模型中,以在所述第二待测图像中对所述第一斜齿轮的第一瑕疵进行识别。
2.如权利要求1所述的斜齿轮瑕疵检测方法,其特征在于,所述方法还包括:
基于已知第二瑕疵的多张第一训练图像建立训练集;
基于所述训练集对预先构建的初始检测模型进行模型训练,得到所述目标检测模型。
3.如权利要求2所述的斜齿轮瑕疵检测方法,其特征在于,所述基于已知第二瑕疵的多张第一训练图像建立训练集的步骤,包括:
提取已知第二瑕疵的第一训练图像中的边缘轮廓信息,并对所述边缘轮廓信息进行矩形框拟合,得到包含多个第一矩形框的第二训练图像;
将多个所述第一矩形框中符合过滤条件的矩形框从所述第二训练图像中去除,得到包含多个第二矩形框的第三训练图像;
计算多个所述第二矩形框各自对应的第二倾斜角度的第一平均角度,将所述第一平均角度作为所述第一训练图像中第二斜齿轮的第三倾斜角度;
基于所述第三倾斜角度将所述第一训练图像进行旋转,得到第四训练图像,并将所述第四训练图像加入训练集。
4.如权利要求3所述的斜齿轮瑕疵检测方法,其特征在于,所述将多个所述第一矩形框中符合过滤条件的矩形框从所述第二训练图像中去除的步骤,包括:
基于多个所述第一矩形框各自对应的横纵比和第四倾斜角度判断所述第一矩形框是否符合过滤条件;
若所述第一矩形框符合所述过滤条件,则将所述第一矩形框从所述第二训练图像中去除。
5.如权利要求3所述的斜齿轮瑕疵检测方法,其特征在于,所述基于所述训练集对预先构建的初始检测模型进行模型训练,得到所述目标检测模型的步骤,包括:
获取所述第二瑕疵在所述第一训练图像中构成的多边形框,并计算所述多边形框的各顶点各自在所述第四训练图像中的旋转标注坐标;
基于各所述旋转标注坐标确定所述第二瑕疵在所述第四训练图像中构成的第三矩形框,并计算所述第三矩形框的面积;
基于各所述旋转标注坐标、所述面积以及所述第四训练图像的高度和宽度,生成所述第四训练图像对应的旋转标注文件;
基于所述训练集和所述旋转标注文件对预先构建的初始检测模型进行模型训练,得到所述目标检测模型。
6.如权利要求5所述的斜齿轮瑕疵检测方法,其特征在于,所述计算所述多边形框的各顶点各自在所述第四训练图像中的旋转标注坐标的步骤,包括:
从所述第一训练图像对应的原始标注文件中获取所述多边形框各个顶点各自的原始标注坐标;
基于各所述原始标注坐标、所述第三倾斜角度和预设的坐标系旋转公式计算各所述顶点各自在所述第四训练图像中的旋转标注坐标。
7.如权利要求5所述的斜齿轮瑕疵检测方法,其特征在于,所述基于各所述旋转标注坐标确定所述第二瑕疵在所述第四训练图像中的第三矩形框的步骤,包括:
基于各所述旋转标注坐标确定各所述顶点在所述第四训练图像中构成的最小矩形框,将所述最小矩形框作为所述第二瑕疵在所述第四训练图像中构成的第三矩形框。
8.一种斜齿轮瑕疵检测装置,其特征在于,所述斜齿轮瑕疵检测装置,包括:
获取模块,用于获取第一待测图像中第一斜齿轮的第一倾斜角度;
旋转模块,用于基于所述第一倾斜角度将所述第一待测图像进行旋转,得到第二待测图像,其中,所述第二待测图像中的所述第一斜齿轮与水平面平行;
识别模块,用于将所述第二待测图像输入至预先训练好的目标检测模型中,以在所述第二待测图像中对所述第一斜齿轮的第一瑕疵进行识别。
9.一种终端设备,其特征在于,所述终端设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的斜齿轮瑕疵检测程序,所述斜齿轮瑕疵检测程序被所述处理器执行时实现如权利要求1至7中任一项所述的斜齿轮瑕疵检测方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有斜齿轮瑕疵检测程序,所述斜齿轮瑕疵检测程序被处理器执行时实现如权利要求1至7中任一项所述的斜齿轮瑕疵检测方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311042347.8A CN117115099A (zh) | 2023-08-17 | 2023-08-17 | 斜齿轮瑕疵检测方法、装置、终端设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311042347.8A CN117115099A (zh) | 2023-08-17 | 2023-08-17 | 斜齿轮瑕疵检测方法、装置、终端设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117115099A true CN117115099A (zh) | 2023-11-24 |
Family
ID=88806881
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311042347.8A Pending CN117115099A (zh) | 2023-08-17 | 2023-08-17 | 斜齿轮瑕疵检测方法、装置、终端设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117115099A (zh) |
-
2023
- 2023-08-17 CN CN202311042347.8A patent/CN117115099A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100682889B1 (ko) | 영상에 기반한 사실감 있는 3차원 얼굴 모델링 방법 및 장치 | |
CN109815865B (zh) | 一种基于虚拟水尺的水位识别方法及系统 | |
CN111640089B (zh) | 一种基于特征图中心点的缺陷检测方法及装置 | |
CN111402209B (zh) | 一种基于U-Net的高速铁路钢轨损伤检测方法 | |
US20070182739A1 (en) | Method of and system for determining a data model designed for being superposed with an image of a real object in an object tracking process | |
CN115641332B (zh) | 产品边缘外观缺陷的检测方法及装置、介质、设备 | |
CN104732510B (zh) | 一种相机镜头黑斑检测方法及装置 | |
JP3078166B2 (ja) | 物体認識方法 | |
CN110879972B (zh) | 一种人脸检测方法及装置 | |
CN109993758A (zh) | 分割方法、分割装置、计算机设备及存储介质 | |
CN111105452B (zh) | 基于双目视觉的高低分辨率融合立体匹配方法 | |
CN115713476A (zh) | 基于激光焊接的视觉检测方法、装置及可读存储介质 | |
CN115937203A (zh) | 一种基于模板匹配的视觉检测方法、装置、设备及介质 | |
CN110852974B (zh) | 图像抗锯齿处理方法、图像生成器的训练方法及装置 | |
CN115908988B (zh) | 一种缺陷检测模型生成方法、装置、设备以及存储介质 | |
Chen et al. | A Voronoi-Diagram-based method for centerline extraction in 3D industrial line-laser reconstruction using a graph-centrality-based pruning algorithm | |
CN117115099A (zh) | 斜齿轮瑕疵检测方法、装置、终端设备及存储介质 | |
CN107341830A (zh) | 一种确定弹孔环值的方法及装置 | |
CN113012132A (zh) | 一种图像相似度确定方法、装置及计算设备、存储介质 | |
CN113554024A (zh) | 一种车辆的清洁度的确定方法、装置及计算机设备 | |
CN112001336A (zh) | 行人越界报警方法、装置、设备及系统 | |
CN112199975A (zh) | 基于人脸特征的身份验证方法及装置 | |
CN114310875B (zh) | 一种曲轴定位识别方法、装置、存储介质和设备 | |
CN117475262B (zh) | 图像生成方法、装置、存储介质及电子设备 | |
JP7414540B2 (ja) | 確率取得装置及び確率取得方法 |
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 |