CN116703919A - 一种基于最优传输距离损失模型的表面杂质检测方法 - Google Patents
一种基于最优传输距离损失模型的表面杂质检测方法 Download PDFInfo
- Publication number
- CN116703919A CN116703919A CN202310981099.7A CN202310981099A CN116703919A CN 116703919 A CN116703919 A CN 116703919A CN 202310981099 A CN202310981099 A CN 202310981099A CN 116703919 A CN116703919 A CN 116703919A
- Authority
- CN
- China
- Prior art keywords
- impurity
- glass
- model
- feature map
- network structure
- 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
- 239000012535 impurity Substances 0.000 title claims abstract description 122
- 238000001514 detection method Methods 0.000 title claims abstract description 113
- 230000005540 biological transmission Effects 0.000 title claims abstract description 17
- 239000011521 glass Substances 0.000 claims abstract description 92
- 238000012549 training Methods 0.000 claims abstract description 25
- 238000010586 diagram Methods 0.000 claims abstract description 19
- 238000005520 cutting process Methods 0.000 claims abstract description 10
- 238000000034 method Methods 0.000 claims description 27
- 238000009826 distribution Methods 0.000 claims description 20
- 230000008569 process Effects 0.000 claims description 13
- 238000004364 calculation method Methods 0.000 claims description 10
- 238000012545 processing Methods 0.000 claims description 10
- 238000005070 sampling Methods 0.000 claims description 10
- 230000001133 acceleration Effects 0.000 claims description 5
- 239000011159 matrix material Substances 0.000 claims description 5
- 230000004927 fusion Effects 0.000 claims description 4
- 238000011282 treatment Methods 0.000 claims description 4
- 206010037180 Psychiatric symptoms Diseases 0.000 claims description 3
- 238000010606 normalization Methods 0.000 claims description 2
- 238000009795 derivation Methods 0.000 claims 1
- 230000006870 function Effects 0.000 description 24
- 239000000428 dust Substances 0.000 description 8
- 238000012360 testing method Methods 0.000 description 8
- 238000013135 deep learning Methods 0.000 description 5
- 238000005259 measurement Methods 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 4
- 238000000605 extraction Methods 0.000 description 4
- 230000006872 improvement Effects 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003321 amplification Effects 0.000 description 2
- 210000004027 cell Anatomy 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000003384 imaging method Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000003199 nucleic acid amplification method Methods 0.000 description 2
- 230000035945 sensitivity Effects 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 239000000126 substance Substances 0.000 description 2
- 238000013519 translation 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
- 230000004913 activation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013145 classification model Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 238000009776 industrial production Methods 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 238000011897 real-time detection Methods 0.000 description 1
- 238000011524 similarity measure Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0495—Quantised networks; Sparse networks; Compressed networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
-
- 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
- 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/806—Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level of extracted features
-
- 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/20021—Dividing image into blocks, subimages or windows
-
- 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
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V2201/00—Indexing scheme relating to image or video recognition or understanding
- G06V2201/07—Target detection
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T10/00—Road transport of goods or passengers
- Y02T10/10—Internal combustion engine [ICE] based vehicles
- Y02T10/40—Engine management systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Multimedia (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Molecular Biology (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Image Analysis (AREA)
Abstract
本发明涉及图像识别技术领域,具体是一种基于最优传输距离损失模型的表面杂质检测方法,包括以下操作步骤:S1、获取玻璃表面图像数据,并保存在数据库中;S2、在基础Yolov5网络结构的输出层中增加用于检测微小杂质的微小杂质特征图,以构成改进Yolov5网络结构,并优化定位损失函数;S3、对获取的玻璃表面图像数据进行切割缩小处理,将处理后的数据输入到改进Yolov5网络结构中进行训练,并对训练完成的玻璃杂质检测模型进行优化,以得到优化后的玻璃杂质检测模型;S4、将新的玻璃表面图像输入到优化后的玻璃杂质检测模型中进行检测,以得到各个污渍的类别、位置和大小;本发明通过增设的微小杂质特征图,能够有效的提高网络结构预测的精准度。
Description
技术领域
本发明涉及图像识别技术领域,具体是一种基于最优传输距离损失模型的表面杂质检测方法。
背景技术
目前对光伏玻璃表面的检测方法主要有人工、声波、光学、计算机视觉等识别方法。手工检测需要员工在暗场的环境下使用照明设备对其进行检测,这种检测效率低,且仅靠主观感受进行判断,难以指导改进生产,不能满足现代工业对高速精密检测的要求。使用声波、光学代替人工肉眼检测玻璃缺陷,虽然检测效果有所提升,但使用计算机视觉方法进行玻璃缺陷检测更有前景。
目前计算机视觉方法中主要采用神经网络算法对玻璃表面进行检测。常用的算法有基础Yolov5网络结构、BP神经网络结构等。其中,由于基础Yolov5网络结构按照预定的标准将玻璃表面的杂质分成了大、中、小三种不同的尺度,即在基础Yolov5网络结构的输出层中包含大中小三个不同尺度的特征图,因而提高了网络结构预测的准确性。在实际使用的过程中发现,对中尺度和大尺度的污渍来说,由于污渍本身的尺度较大,能够清晰的呈现在视野中,因此尽管在两个尺寸差别较大污渍之间进行切换预测时,对预测的精度也不会产生影响。但是,小尺度的污渍中还存在一些像灰尘一样的微小物质,并且这些微小物质在视野中的成像较为模糊,再加上较大尺度的转换,对网络结构造成了负面的影响,导致预测精度降低。
发明内容
为了避免和克服现有技术中存在的技术问题,本发明提供了一种基于最优传输距离损失模型的表面杂质检测方法。本发明通过增设的微小杂质特征图,能够有效的提高网络结构预测的精准度。
为实现上述目的,本发明提供如下技术方案:
一种基于最优传输距离损失模型的表面杂质检测方法,包括以下操作步骤:
S1、获取玻璃表面图像数据,并保存在数据库中;
S2、在基础Yolov5网络结构的输出层中增加用于检测微小杂质的微小杂质特征图,以构成改进Yolov5网络结构,并优化定位损失函数;
S3、将数据库中的数据输入到改进Yolov5网络结构中进行训练,训练得到玻璃杂质检测模型;对玻璃杂质检测模型进行优化,以得到优化后的玻璃杂质检测模型;
S4、将新的玻璃表面图像输入到优化后的玻璃杂质检测模型中进行检测,以得到各个污渍的类别、位置和大小。
作为本发明再进一步的方案:所述优化后的玻璃杂质检测模型的定位损失函数的计算公式如下:
其中,L loc 表示优化后的玻璃杂质检测模型的定位损失函数值;表示微小杂质特征图中边界框A和边界框B之间的距离度量;C表示度量参数;‖·‖2表示二阶范数;cx a 表示微小杂质特征图中边界框A的中心点在图像坐标系中的横坐标,cy a 表示微小杂质特征图中边界框A的中心点在图像坐标系中的纵坐标,w a 表示微小杂质特征图中边界框A的宽度,h a 表示微小杂质特征图中边界框A的高度;
cx b 表示微小杂质特征图中边界框B的中心点在图像坐标系中的横坐标,cy b 表示微小杂质特征图中边界框B的中心点在图像坐标系中的纵坐标,w b 表示微小杂质特征图中边界框B的宽度,h b 表示微小杂质特征图中边界框B的高度。
作为本发明再进一步的方案:优化后的玻璃杂质检测模型定位损失函数的推导过程如下:
S2B1、获取微小杂质特征图中的边界框A和边界框B的特征尺寸,边界框A的特征尺寸为R a ,R a =(cx a ,cy a ,w a ,h a ),边界框B的特征尺寸为R b ,R b =(cx b ,cy b ,w b ,h b );
S2B2、分别将R a 和R b 建模成对应的二维高斯分布;边界框A的特征尺寸R a 符合的二维高斯分布为N a (μ a ,Σ a ),其中,μ a 表示边界框A的特征尺寸R a 的均值向量,Σ a 表示边界框A的特征尺寸R a 的协方差矩阵;
边界框B的特征尺寸R b 符合的二维高斯分布为N b (μ b ,Σ b ),其中,μ b 表示边界框B的特征尺寸R b 的均值向量,Σ b 表示边界框B的特征尺寸R b 的协方差矩阵;
S2B3、将边界框A和边界框B之间的相似度转换为两个对应二维高斯分布之间的分布距离;
S2B4、接着对进行归一化处理,以得到L loc ,并用L loc 替代基础Yolov5网络结构中的定位损失函数,L loc 即为优化后的玻璃杂质检测模型的定位损失函数。
作为本发明再进一步的方案:优化后的玻璃杂质检测模型的总损失函数的计算公式如下:
其中,λ 1、λ 2和λ 3均为总损失函数的平衡系数,L cls 为分类损失函数,L obj 为置信度损失函数,L loc 为定位损失函数。
作为本发明再进一步的方案:所述分类损失函数L cls 和置信度损失函数L obj 均采用交叉熵损失函数,表示如下:
其中,n表示输入的样本总数,y i 表示第i个样本的标签,p i 表示第i个样本预测的输出。
作为本发明再进一步的方案:在基础Yolov5网络结构的输出层中增加微小杂质特征图的具体操作过程如下:
S2A1、对基础Yolov5网络结构在第17层得到的特征图进行上采样处理,扩大特征图的分辨率;
S2A2、对步骤S2A1中上采样处理后的特征图继续进行上采样处理,直到处理到基础Yolov5网络结构的第20层,并得到大小为320*320的特征图;
S2A3、将大小为320*320的特征图与基础Yolov5网络结构第2层得到特征图进行张量融合,以得到微小杂质特征图。
作为本发明再进一步的方案:在基础Yolov5网络结构中增加了图像切割层,图像切割层的处理过程如下:
S3A1、将从数据库中输入的玻璃表面图像分割成设定数量的小图;
S3A2、将小图依次传递到后续的各隐藏层中进行处理;
S3A3、最后回收所有小图,计算各个小图坐标的相对值,并对所有小图集体执行一次NMS过程以筛除多余的目标检测框。
作为本发明再进一步的方案:步骤S3的具体步骤如下:
S31、将步骤S3A3中删除多余目标检测框的小图输入到改进Yolov5网络结构中训练,得到玻璃杂质检测模型;
S32、将玻璃杂质检测模型转化成ONNX模型;
S33、将ONNX模型输入到TensorRT模块上进行模型推理加速,以得到优化后的玻璃杂质检测模型。
作为本发明再进一步的方案:步骤S4的具体步骤如下:
S41、将获取的新的原始玻璃表面图像也切割成设定数量的小图;
S42、将小图输入优化后的玻璃杂质检测模型中进行检测,以获得各个小图上污渍的类别、位置和大小;
S43、将各个小图拼接恢复成对应的原始玻璃表面图像,进而获得各个原始玻璃表面图像上污渍的类别、位置和大小。
与现有技术相比,本发明的有益效果是:
1、本发明采用最优Yolov5网络结构算法进行光伏玻璃表面杂质的检测,具有高效、准确的特点;相对于传统的检测方法,本发明检测速度更快,检测精度更高。
2、本发明针对企业采用工业面阵相机采集到的高分辨率玻璃图像难以识别灰尘类的微小杂质目标的问题,在模型中增加了用于识别微小杂质目标的检测头,以及多个小目标的特征提取层,将NWD应用于定位损失函数来设计强大的微小检测器,并在检测网络中增加了图像切割层,可以更好地检测微小的玻璃杂质。
3、本发明利用ONNX将PyTorch模型转换为通用格式,并使用TensorRT加速工具对模型的推理速度进行优化,使得模型可以在不同平台、不同硬件上部署,方便快捷,可以适应不同的实际检测场景。
4、本发明具有高效、准确、自适应和易于部署等显著优点,能够更好地满足实际玻璃表面杂质检测的需求。
5、本发明采用基于深度学习的Yolov5网络结构算法来检测玻璃表面杂质。轻量化、高速度的Yolov5网络结构算法在Yolov4的基础上添加了一些新的改进思路,能够满足实时性要求,同时可以在GPU等硬件平台上高效地实现,速度与精度都得到了极大的性能提升。
6、在模型中,为微小目标检测专门增加了一个预测头以及几个特征提取层。在第17层后,继续对特征图进行上采样等处理,使得特征图继续扩大,同时在第20层时,将获取到的大小为320*320的特征图与骨干网络中第2层特征图进行concat融合,以此获取更大的特征图进行小目标检测。并使用归一化高斯Wasserstein距离(NWD)替换原Yolov5定位损失函数中的CloU loss,作为衡量两个边界框之间相似性的更好指标。
7、在检测网络中,增加了图像切割层,目的是在目标分辨率太大的情况下,将目标图像分解为数个图像送入Yolov5网络中做检测,接着回收所有图像,计算坐标的相对值,再集体利用NMS算法将重复检测过滤,最终将各块的检测结果进行融合。
8、本发明使用ONNX将改进的Yolov5算法跑出的PyTorch模型转换为ONNX格式,可以实现模型在不同平台上的部署。ONNX通过剪枝、量化等技术来压缩模型大小、减少模型存储空间和计算量。通过结合ONNX和改进的Yolov5模型,采用数据优化和模型训练优化等手段,可以提高玻璃杂质的检测效率。
附图说明
图1为本发明的操作流程结构示意图。
图2为本发明中预测边界框的结构示意图。
图3为本发明中玻璃表面杂质检测软件流程图。
图4为本发明中NWD损失函数的边界框表示示意图。
图5为本发明中优化后的玻璃杂质检测模型结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
由图1可知,本发明的一种基于最优传输距离损失模型的表面杂质检测方法,包括以下具体内容:
1、图像采集系统搭建
为了使玻璃图片更加接近于工业环境下获取的图片,搭建的平台需要更接近生产条件下的检测环境。根据对玻璃表面的检测要求以及成像情况,完成对图像采集系统的设计和硬件选型。
系统首先确定各种硬件的选型,然后搭建一套可以模拟玻璃生产的试验台,使工业相机有效的采集玻璃表面图像。图像采集模块将玻璃表面图像信息转换变成数字图像,并存储在计算机系统中,再将其制作成数据集,完成模型的训练。通过载入的目标检测模型检测玻璃表面杂质,并在展示界面显示最终的检测结果。
图像采集模块主要由工业相机、光学镜头、照明系统、控制器、计算机和试验台组成。其中光源部分负责为玻璃平面提供不同的打光方式,以突出特征,其他模块需要进行合理的选型以及合理的部署,以使系统更加接近工业生产环境。控制器用于控制光源的亮度,从而提升系统的可靠性和稳定性。根据玻璃检测系统设计的要求,在实验室环境下设计了一套玻璃表面图像采集实验平台。
试验台主要由输送机、缓冲装置、检测台和防尘装置组成。其中,输送机用于对玻璃样品进行输送。缓冲装置安装在玻璃样品进行采样后所经过的输送机的后端,承接已检测完成的玻璃,其可有效吸收玻璃样品的动能,使玻璃慢慢停止运动。检测台位于输送机与缓冲装置之间,用于放置固定检测玻璃样品的光学系统,其由底板、立柱、灯架、夹具、工字型导轨组成。在检测过程中,在试验台四周安装实验室暗室防尘帘支架,并挂上实验室暗室防尘帘,可作为试验台的防尘装置并保证暗室环境下只有紫外光源;阻挡来自空气中的灰尘,减少灰尘对试验的影响。
2、玻璃图像采集与数据扩增
本发明考虑了三种玻璃表面杂质类型:水滴、灰尘和油污,采用人工制作的方法去丰富数据样本。在玻璃表面检测中,各类杂质出现的频率不同,杂质检测的重点也不同。因此,在采集数据集时,其样本量需要按比例制作样本,下表1是数据集采样表。我们将对采样的数据集按照6:2:2的比例划分成训练集、验证集和测试集。
表1 数据集采样表
深层神经网络是功能强大的机器学习方法,在获得大量数据训练时通常能够得出理想的结果。数据增强相关技术是提高图像分类模型精度的有效手段。通过数据增强方式可以增加数据的多样性和数据量。基于深度学习的检测模型中,为了提高数据量以及模型检测精度,我们通过人工调节方法来扩增数据集,包括对原始图像进行平移、缩放、旋转、仿射变换、裁剪等一系列图像增强方法。
拍摄采集的玻璃图像经过数据扩增处理后,构建玻璃表面杂质图谱库。玻璃表面杂质数据集基于PASCAL VOC数据集格式进行制作。对于目标检测模型来说,完成对杂质的类别和位置的人工标注,是开始训练模型的第一步。我们采用LabelImg软件针对玻璃表面杂质数据集的图像进行位置和类型的框选与分类。
3、Yolov5算法原理
目标检测模型主要分为one-stage和two-stage两种,YOLO是典型的one-stage目标检测算法模型。Yolov5完全基于PyTorch实现,作为one-stage的目标检测模型,Yolov5模型主要由三个部分组成:
Backbone:作为模型的核心部分,对输入的图像进行杂质特征提取,是整个图像任务的根基。
Neck:对提取的杂质特征进行融合。
Head:根据不同的尺寸特征网络对图像中的目标物体进行预测,并进行定位,以及分类。
Yolov5在Backbone部分将网络的第一层由原来的Focus模块换成了一个6×6大小的卷积层。两者在理论上其实是等价的,但是对于现有的一些GPU设备,使用6×6大小的卷积层比使用Focus模块更加高效。在Neck部分的变化相对较大,首先是将SPP结构换成了SPPF结构。SPPF结构是将输入串行通过多个5×5大小的MaxPool层,这个改动使得SPPF结构比SPP结构的计算速度翻倍加快。在Neck部分的PAN结构中加入了CSP结构,Yolov5的每个C3模块里都含有CSP结构。
Yolov5在trainloader中应用在线图像空间和色彩空间增强,以在每次加载图像进行训练时呈现一个新的且独特的增强MOSAIC(原始图像+ 3个随机图像),图像永远不会以相同的方式呈现两次。还可以根据配置文件里的Scale和Translation超参数对图像进行缩放和平移。训练前会先进行Warmup热身,然后采用Cosine学习率下降策略。
损失函数主要由三个部分组成:
其中,λ 1、λ 2和λ 3均为总损失函数的平衡系数,L cls 为分类损失函数,L obj 为置信度损失函数,L loc 为定位损失函数。第一部分是分类损失Classes loss,采用的是BCE loss,这里只计算正样本的分类损失。第二部分是置信度损失Objectness loss,采用的依然是BCEloss,obj指的是网络预测的目标边界框与GT Box的CIou,计算的是所有样本的obj损失。第三部分是定位损失Location loss,采用的是CIou loss,只计算正样本的定位损失。三个预测特征层P3,P4,P5上的obj损失采用不同的权重。针对预测小目标的预测特征层P3采用的权重是4.0,预测中等目标的特征层P4采用的权重是1.0,预测大目标的特征层P5采用的权重是0.4。
预测边界框的示意图如图2所示,在消除Grid敏感度时,主要是调整预测目标中心点相对Grid网格的左上角偏移量。图2中的边界框表示物体预测的位置,当模型训练的很好的时候,预测边界框的位置更接近真实框的位置,虚线框表示anchor。预测边界框的实际中心点(b x ,b y )的数值原本是b x =σ(t x )+c x ,b y =σ(t y )+c y ,(t x ,t y )表示预测边界框的中心点相对于网格左上角坐标在X轴方向和Y轴方向上的偏移量;(c x ,c y )表示预测框中心点所在网格的左上角坐标。在Yolov5中引入了缩放因子,对偏移量进行了缩放,从原来的(0,1)缩放到(-0.5,1.5),这样网络预测的偏移量就很方便达到0或1,故最终预测的目标中心点计算公式为:b x =(2·σ(t x )-0.5)+c x ,b y =(2·σ(t y ))-0.5)+c y ,其中σ是Sigmoid激活函数,将预测的偏移量限制在0到1之间,即预测的中心点不会超过对应的Grid Cell区域。除了调整预测Anchor相对Grid网格左上角坐标偏移量以外,还将预测目标宽度的计算公式调整为:b w =p w (2·σ(t w ))2;预测目标高度的计算公式调整为:b h =p h (2·σ(t h ))2。b w 表示预测边界框的宽度;b h 表示预测边界框的高度。p w 表示先验框anchor的宽度;p h 表示先验框anchor的高度;t w 表示预测边界框的宽度相对于先验框anchor宽度的缩放比例,t h 表示预测边界框的高度相对于先验框anchor高度的缩放比例。
在匹配正样本时,先计算每个GT Box与对应的Anchor Templates模板的高宽比例,即:r w =w gt /w at ,r h =h gt /h at ;r w 表示GT Box与对应的Anchor Templates模板的宽度比例;r h 表示GT Box与对应的Anchor Templates模板的高度比例;w gt 表示GT Box的宽度;h gt 表示GTBox的高度;w at 表示Anchor Templates的宽度;h at 表示Anchor Templates的高度。然后计算GT Box和Anchor Templates分别在宽高方向上的最大差异:
其中,r max 表示GT Box和Anchor Templates在宽度和高度方向差异的最大值;表示GT Box和Anchor Templates在宽度方向的最大差异;/>表示GT Box和Anchor Templates在高度方向的最大差异。
如果GT Box和对应的Anchor Template的r max 小于阈值anchor_t,则将GT Box分配给该Anchor Template模板。然后将GT Box投影到对应预测特征层上,根据GT Box的中心点定位到对应Cell,这样会让正样本的数量得到大量的扩充。
4、针对灰尘等微小杂质目标识别的算法改进
为了应对玻璃表面杂质数据集中包含大量的灰尘等微小杂质,我们在模型中引入一个由低水平、高分辨率的微小杂质特征图生成的预测头,它对微小目标更敏感。优化后的网络架构如图5所示,结合其他3个预测头,这种4头结构可以有效缓解剧烈的物体尺度方差对模型性能造成的负面影响。此外,我们针对微小目标检测专门的增加了几个特征提取层。原始的第17层采用C3模块扩大感受野并捕获更多的上下文信息,在此基础上,我们继续添加了第18至21层,通过对微小杂质特征图进行上采样等处理,使得微小杂质特征图继续扩大。如图5所示,若输入图像尺寸为1280*1280,在第20层时,我们将获取到的大小为320*320的微小杂质特征图与Backbone网络中第2层特征图进行Concat融合,以此获取更大的微小杂质特征图进行微小目标检测。新增加320*320的检测特征图,用于检测4*4以上的微小目标。最终,网络将在4个层级上进行目标检测,最低的特征层级负责预测微小杂质,最高的特征层级负责预测大目标。增加检测头后,虽然增加了计算和存储成本,但对微小杂质的检测性能得到了很大的提高。我们重新配置了四个预测特征层的权重,强调对微小杂质的检测,新的目标损失为:
四个预测特征层P2,P3,P4,P5上的obj损失采用不同的权重。针对预测微小目标的预测特征层P2采用的权重是4.0;针对预测小目标的预测特征层P3采用的权重是1.0;预测中等目标的特征层P4采用的权重是0.25;预测大目标的特征层P5采用的权重是0.06。通过增加微小杂质特征层的权重,模型更关注微小杂质的检测和定位,提高对微小杂质的敏感性和准确性。
小目标由于在图像中覆盖面积小,因此其边界框的定位相对于大/中尺度尺寸目标具有更大的挑战性。在预测过程中,预测边界框偏移一个像素点,对小目标的误差影响远高于大/中尺度目标。尽管CloU同时考虑了重叠面积、中心点距离及宽高比,但对微小杂质的位置偏差仍非常敏感,在用于基于锚的检测器时会大大降低检测性能。对于微小的杂质,它们的边界框中往往会有一些背景像素,因为大多数真实物体不是严格的矩形。在这些边界框中,前景像素和背景像素分别集中在边界框的中心和边界上。为了更好地描述边界框中不同像素的权重,边界框可以建模为二维高斯分布,其中边界框的中心像素具有最高的权重,像素的重要性从中心到边界递减。具体来说,对于水平边界框R=(cx,cy,w,h),其内切椭圆方程可以表示为:
其中(μ x ,μ y )是椭圆的中心坐标,σ x 表示沿X轴的半轴长度,σ y 表示沿Y轴的半轴长度。因此,μ x =cx,μ y =cy,σ x =w/2,σ y =h/2。二维高斯分布的概率密度函数由下式给出:
其中,Q表示高斯分布的坐标;μ表示高斯分布均值向量;Σ表示高斯分布的协方差矩阵。当满足:L=1时,内切椭圆将变为二维高斯分布的密度等值线。因此,水平边界框R=(cx,cy,w,h)可以建模为二维高斯分布N(μ,Σ),μ=[cx,cy],
此外,边界框A和边界框B之间的相似度可以转换为两个高斯分布之间的分布距离。通过使用最优传输理论中的Wasserstein距离来计算分布距离。对于两个二维高斯分布,它们之间的二阶Wasserstein距离定义为:
但是,是距离度量,不能直接用作相似度度量。因此,使用它的指数形式归一化Wasserstein距离(NWD)的新度量:
将NWD度量设计为定位损失Location loss,替换原本基于loU的CloUloss,解决CloU对微小杂质位置偏差的敏感问题。新的定位损失函数为:
L loc 表示优化后的玻璃杂质检测模型的定位损失函数值。
最后我们对detect.py做了修改,增加了图像切割层。原始数据集分辨率很大,如果简单的进行下采样,下采样的倍数太大,容易丢失数据信息。但是倍数太小,网络前向传播需要在内存中保存大量的特征图,极大耗尽GPU资源,很容易发生显存爆炸,无法正常的训练集推理。这种情况可以使用切割的方式,把大图分解为多个小图再喂到网络里训练或检测,对每个小图检测,最后再回收所有图片。我们将4096×3000原图的分成2×2个子图,送到修改后的model中去做检测,在算力足够的情况下,可以有效改善原始玻璃图像中灰尘的检测效果。
我们相机拍摄出来的是4096×3000高分辨率图片,所以在训练时选取了模型网络更深、通道数量更多的Yolov5l.pt模型。目的是使网络的神经元具有更大的感受野,能够在更大的图像中提取相似的特征,同时增加了网络的宽度,提取更多细粒度特征,增加特征的辨识度。整个训练过程是在两块3080显卡上进行的,并且我们设置了300轮的训练轮次。在训练过程中为了避免欠拟合或过拟合,我们通过TensorBoard可视化工具实时跟踪和评估模型的成熟度。
训练完成后,模型权重将保存到weights,最后我们利用训练好的模型,将测试图像送到网络中去检测并可视化检测器推断结果。平均每张照片的检测时间大约为116.4ms。所有玻璃图像的检测结果存放在文件夹中,其中包括预测结果的图像、裁剪过的预测框图片、可视化的特征图、所有图片检测框的信息以及检测到的杂质占比等信息。
5、 ONNX+TensorRT模型优化与部署
上述改进的Yolov5模型是在PyTorch框架下训练的,PyTorch训练的模型转成pth,用C++推理也很难达到真正的加速效果,因为本质上最耗时的网络前向推理部分并无太多的加速。ONNX是一种针对机器学习所设计的开放式的文件格式,用于存储训练好的模型,可使模型在不同框架之间进行转移。作为一个通用的网络模型的中间格式,ONNX能够将Yolov5训练出来的玻璃杂质检测模型转化成ONNX格式的权重。这个权重文件不只包含了权重值,也包含了神经网络的网络流动信息以及每一层网络的输入输出信息和一些其余的辅助信息。
我们在训练Yolov5时,为了加快训练速度,会使用多GPU分布式训练。但在部署推理时,为了下降成本,会使用单GPU机器甚至嵌入式平台进行部署,部署端也要有与训练时相同的深度学习环境。因为训练的网络模型大、参数多,并且部署端的机器性能存在差别,就会致使推理速度慢、延迟高。这对于玻璃企业高实时性的检测场景来说是不利的。TensorRT是一个高性能的深度学习推理优化器,它是对训练好的模型进行优化。当网络训练完以后,能够将训练模型文件直接丢进TensorRT中,而再也不需要依赖深度学习框架。
在前面的内容中,我们已经完成对玻璃表面杂质图像采集系统的搭建以及完成对杂质检测模型的优化。现在将训练完成的PyTorch模型转成ONNX模型,而后在TensorRT模块上进行模型推理加速,提高检测速度。最后,为了更加直观的查看玻璃表面杂质检测情况,我们设计出玻璃表面杂质检测和识别系统可视化界面:载入检测后玻璃表面图像,显示检测结果,若识别出存在杂质,展示杂质类别、数量、坐标及杂质占比的信息,并保存在数据集文件中。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
Claims (9)
1.一种基于最优传输距离损失模型的表面杂质检测方法,其特征在于,包括以下操作步骤:
S1、获取玻璃表面图像数据,并保存在数据库中;
S2、在基础Yolov5网络结构的输出层中增加用于检测微小杂质的微小杂质特征图,以构成改进Yolov5网络结构,并优化定位损失函数;
S3、将数据库中的数据输入到改进Yolov5网络结构中进行训练,训练得到玻璃杂质检测模型;对玻璃杂质检测模型进行优化,以得到优化后的玻璃杂质检测模型;
S4、将新的玻璃表面图像输入到优化后的玻璃杂质检测模型中进行检测,以得到各个污渍的类别、位置和大小。
2.根据权利要求1所述的一种基于最优传输距离损失模型的表面杂质检测方法,其特征在于,优化后的玻璃杂质检测模型的定位损失函数的计算公式如下:
其中,L loc 表示优化后的玻璃杂质检测模型的定位损失函数值;/>表示微小杂质特征图中边界框A和边界框B之间的距离度量;C表示度量参数;‖·‖2表示二阶范数;cx a 表示微小杂质特征图中边界框A的中心点在图像坐标系中的横坐标,cy a 表示微小杂质特征图中边界框A的中心点在图像坐标系中的纵坐标,w a 表示微小杂质特征图中边界框A的宽度,h a 表示微小杂质特征图中边界框A的高度;
cx b 表示微小杂质特征图中边界框B的中心点在图像坐标系中的横坐标,cy b 表示微小杂质特征图中边界框B的中心点在图像坐标系中的纵坐标,w b 表示微小杂质特征图中边界框B的宽度,h b 表示微小杂质特征图中边界框B的高度。
3.根据权利要求2所述的一种基于最优传输距离损失模型的表面杂质检测方法,其特征在于,优化后的玻璃杂质检测模型定位损失函数的推导过程如下:
S2B1、获取微小杂质特征图中的边界框A和边界框B的特征尺寸,边界框A的特征尺寸为R a ,R a =(cx a ,cy a ,w a ,h a ),边界框B的特征尺寸为R b ,R b =(cx b ,cy b ,w b ,h b );
S2B2、分别将R a 和R b 建模成对应的二维高斯分布;边界框A的特征尺寸R a 符合的二维高斯分布为N a (μ a ,Σ a ),其中,μ a 表示边界框A的特征尺寸R a 的均值向量,Σ a 表示边界框A的特征尺寸R a 的协方差矩阵;
边界框B的特征尺寸R b 符合的二维高斯分布为N b (μ b ,Σ b ),其中,μ b 表示边界框B的特征尺寸R b 的均值向量,Σ b 表示边界框B的特征尺寸R b 的协方差矩阵;
S2B3、将边界框A和边界框B之间的相似度转换为两个对应二维高斯分布之间的分布距离;S2B4、接着对/>进行归一化处理,以得到L loc ,并用L loc 替代基础Yolov5网络结构中的定位损失函数,L loc 即为优化后的玻璃杂质检测模型的定位损失函数。
4.根据权利要求3所述的一种基于最优传输距离损失模型的表面杂质检测方法,其特征在于,优化后的玻璃杂质检测模型的总损失函数的计算公式如下:
其中,λ 1、λ 2和λ 3均为总损失函数的平衡系数,L cls 为分类损失函数,L obj 为置信度损失函数,L loc 为定位损失函数。
5.根据权利要求4所述的一种基于最优传输距离损失模型的表面杂质检测方法,其特征在于,所述分类损失函数L cls 和置信度损失函数L obj 均采用交叉熵损失函数,表示如下:
其中,n表示输入的样本总数,y i 表示第i个样本的标签,p i 表示第i个样本预测的输出。
6.根据权利要求5所述的一种基于最优传输距离损失模型的表面杂质检测方法,其特征在于,在基础Yolov5网络结构的输出层中增加微小杂质特征图的具体操作过程如下:
S2A1、对基础Yolov5网络结构在第17层得到的特征图进行上采样处理,扩大特征图的分辨率;
S2A2、对步骤S2A1中上采样处理后的特征图继续进行上采样处理,直到处理到基础Yolov5网络结构的第20层,并得到大小为320*320的特征图;
S2A3、将大小为320*320的特征图与基础Yolov5网络结构第2层得到特征图进行张量融合,以得到微小杂质特征图。
7.根据权利要求6所述的一种基于最优传输距离损失模型的表面杂质检测方法,其特征在于,在基础Yolov5网络结构中增加了图像切割层,图像切割层的处理过程如下:
S3A1、将从数据库中输入的玻璃表面图像分割成设定数量的小图;
S3A2、将小图依次传递到后续的各隐藏层中进行处理;
S3A3、最后回收所有小图,计算各个小图坐标的相对值,并对所有小图集体执行一次NMS过程以筛除多余的目标检测框。
8.根据权利要求7所述的一种基于最优传输距离损失模型的表面杂质检测方法,其特征在于,步骤S3的具体步骤如下:
S31、将步骤S3A3中删除多余目标检测框的小图输入到改进Yolov5网络结构中训练,得到玻璃杂质检测模型;
S32、将玻璃杂质检测模型转化成ONNX模型;
S33、将ONNX模型输入到TensorRT模块上进行模型推理加速,以得到优化后的玻璃杂质检测模型。
9.根据权利要求8所述的一种基于最优传输距离损失模型的表面杂质检测方法,其特征在于,步骤S4的具体步骤如下:
S41、将获取的新的原始玻璃表面图像也切割成设定数量的小图;
S42、将小图输入优化后的玻璃杂质检测模型中进行检测,以获得各个小图上污渍的类别、位置和大小;
S43、将各个小图拼接恢复成对应的原始玻璃表面图像,进而获得各个原始玻璃表面图像上污渍的类别、位置和大小。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310981099.7A CN116703919A (zh) | 2023-08-07 | 2023-08-07 | 一种基于最优传输距离损失模型的表面杂质检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310981099.7A CN116703919A (zh) | 2023-08-07 | 2023-08-07 | 一种基于最优传输距离损失模型的表面杂质检测方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116703919A true CN116703919A (zh) | 2023-09-05 |
Family
ID=87839671
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310981099.7A Pending CN116703919A (zh) | 2023-08-07 | 2023-08-07 | 一种基于最优传输距离损失模型的表面杂质检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116703919A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117094999A (zh) * | 2023-10-19 | 2023-11-21 | 南京航空航天大学 | 一种跨尺度缺陷检测方法 |
CN117274183A (zh) * | 2023-09-18 | 2023-12-22 | 江苏同人医疗电子科技有限公司 | 一种用于甲襞微循环血管的微循环智能分析方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114119610A (zh) * | 2022-01-25 | 2022-03-01 | 合肥中科类脑智能技术有限公司 | 基于旋转目标检测的缺陷检测方法 |
CN116128826A (zh) * | 2022-12-30 | 2023-05-16 | 昂视智能(深圳)有限公司 | 基于YOLOv5的锂电池缺陷检测方法、系统、设备以及存储介质 |
-
2023
- 2023-08-07 CN CN202310981099.7A patent/CN116703919A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114119610A (zh) * | 2022-01-25 | 2022-03-01 | 合肥中科类脑智能技术有限公司 | 基于旋转目标检测的缺陷检测方法 |
CN116128826A (zh) * | 2022-12-30 | 2023-05-16 | 昂视智能(深圳)有限公司 | 基于YOLOv5的锂电池缺陷检测方法、系统、设备以及存储介质 |
Non-Patent Citations (3)
Title |
---|
JUNLONG TANG 等: "Smoking Behavior Detection Based On Improved YOLOv5s Algorithm", 《IEEE》, pages 1 - 4 * |
YE XIN-YI 等: "HB-YOLOv5: improved YOLOv5 based on hybrid backbone for infrared small target detection on complex backgrounds", 《DOI: 10.1117/12.2664934》, pages 1 - 11 * |
ZSTAR_: "【目标检测】使用TensorRT加速YOLOv5", 《HTTPS://BLOG.51CTO.COM/U_15762365/5807839?ARTICLEABTEST=0》, pages 1 - 10 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117274183A (zh) * | 2023-09-18 | 2023-12-22 | 江苏同人医疗电子科技有限公司 | 一种用于甲襞微循环血管的微循环智能分析方法 |
CN117094999A (zh) * | 2023-10-19 | 2023-11-21 | 南京航空航天大学 | 一种跨尺度缺陷检测方法 |
CN117094999B (zh) * | 2023-10-19 | 2023-12-22 | 南京航空航天大学 | 一种跨尺度缺陷检测方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109166094B (zh) | 一种基于深度学习的绝缘子故障定位识别方法 | |
CN113052210B (zh) | 一种基于卷积神经网络的快速低光照目标检测方法 | |
Kim et al. | High-speed drone detection based on yolo-v8 | |
CN111462120B (zh) | 一种基于语义分割模型缺陷检测方法、装置、介质及设备 | |
CN113065558A (zh) | 一种结合注意力机制的轻量级小目标检测方法 | |
Nguyen et al. | Yolo based real-time human detection for smart video surveillance at the edge | |
CN116703919A (zh) | 一种基于最优传输距离损失模型的表面杂质检测方法 | |
CN108256426A (zh) | 一种基于卷积神经网络的人脸表情识别方法 | |
CN110175504A (zh) | 一种基于多任务级联卷积网络的目标检测和对齐方法 | |
CN111401293B (zh) | 一种基于Head轻量化Mask Scoring R-CNN的手势识别方法 | |
CN110674741A (zh) | 一种基于双通道特征融合的机器视觉中手势识别方法 | |
WO2020134818A1 (zh) | 图像处理方法及相关产品 | |
CN112528782A (zh) | 水下鱼类目标检测方法及装置 | |
CN111368637B (zh) | 一种基于多掩模卷积神经网络的搬运机器人识别目标方法 | |
CN115439458A (zh) | 基于深度图注意力的工业图像缺陷目标检测算法 | |
CN114926747A (zh) | 一种基于多特征聚合与交互的遥感图像定向目标检测方法 | |
CN110929795A (zh) | 高速焊线机焊点快速识别与定位方法 | |
CN114283137A (zh) | 基于多尺度特征图推理网络的光伏组件热斑缺陷检测方法 | |
CN118196309B (zh) | 基于图像处理工控机的高清视觉检测识别系统 | |
CN116721139A (zh) | 生成图像数据的深度图像 | |
Mirani et al. | Object recognition in different lighting conditions at various angles by deep learning method | |
CN113065506B (zh) | 一种人体姿态识别方法及系统 | |
Wang et al. | MeDERT: A metal surface defect detection model | |
CN113591735A (zh) | 一种基于深度学习的行人检测方法及系统 | |
CN117409244A (zh) | 一种SCKConv多尺度特征融合增强的低照度小目标检测方法 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20230905 |
|
RJ01 | Rejection of invention patent application after publication |