CN112381763A - 一种表面缺陷检测方法 - Google Patents
一种表面缺陷检测方法 Download PDFInfo
- Publication number
- CN112381763A CN112381763A CN202011145527.5A CN202011145527A CN112381763A CN 112381763 A CN112381763 A CN 112381763A CN 202011145527 A CN202011145527 A CN 202011145527A CN 112381763 A CN112381763 A CN 112381763A
- Authority
- CN
- China
- Prior art keywords
- network
- yolov3
- feature
- module
- pruning
- 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.)
- Withdrawn
Links
Images
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
- G01—MEASURING; TESTING
- G01N—INVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
- G01N21/00—Investigating or analysing materials by the use of optical means, i.e. using sub-millimetre waves, infrared, visible or ultraviolet light
- G01N21/84—Systems specially adapted for particular applications
- G01N21/88—Investigating the presence of flaws or contamination
- G01N21/8851—Scan or image signal processing specially adapted therefor, e.g. for scan signal adjustment, for detecting different kinds of defects, for compensating for structures, markings, edges
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
- G06F18/23213—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/25—Fusion techniques
- G06F18/253—Fusion techniques of extracted features
-
- 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/045—Combinations of 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01N—INVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
- G01N21/00—Investigating or analysing materials by the use of optical means, i.e. using sub-millimetre waves, infrared, visible or ultraviolet light
- G01N21/84—Systems specially adapted for particular applications
- G01N21/88—Investigating the presence of flaws or contamination
- G01N21/8851—Scan or image signal processing specially adapted therefor, e.g. for scan signal adjustment, for detecting different kinds of defects, for compensating for structures, markings, edges
- G01N2021/8854—Grading and classifying of flaws
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01N—INVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
- G01N21/00—Investigating or analysing materials by the use of optical means, i.e. using sub-millimetre waves, infrared, visible or ultraviolet light
- G01N21/84—Systems specially adapted for particular applications
- G01N21/88—Investigating the presence of flaws or contamination
- G01N21/8851—Scan or image signal processing specially adapted therefor, e.g. for scan signal adjustment, for detecting different kinds of defects, for compensating for structures, markings, edges
- G01N2021/8887—Scan or image signal processing specially adapted therefor, e.g. for scan signal adjustment, for detecting different kinds of defects, for compensating for structures, markings, edges based on image processing techniques
-
- 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/20—Special algorithmic details
- G06T2207/20112—Image segmentation details
- G06T2207/20132—Image cropping
-
- 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/20212—Image combination
- G06T2207/20221—Image fusion; Image merging
-
- 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
Abstract
本发明公开了一种表面缺陷检测方法,包括:获取针对当前产品表面的目标图像;利用改进型YOLOv3网络的主干网络对目标图像进行特征提取,得到x个不同尺度的特征图;x为4或5;利用改进型YOLOv3网络的FPN网络对x个不同尺度的特征图进行特征融合得到各尺度对应的预测结果;利用分类网络和非极大值抑制模块对所有预测结果进行处理得到目标图像的检测结果,检测结果包括当前产品表面的缺陷的位置和类别;基于检测结果确定当前产品的待执行工序;改进型YOLOv3网络在YOLOv3网络基础上增加特征提取尺度,进行剪枝及结合知识蒸馏引导网络恢复处理。是根据产品表面缺陷部位的样本图像、及其对应缺陷的位置和类别训练得到的。
Description
技术领域
本发明属于图像检测领域,具体涉及一种表面缺陷检测方法、装置、电子设备及存储介质。
背景技术
对产品进行加工时,需要对产品表面的缺陷进行检测,以保证良品率。但在实际情况中,一方面产品表面的缺陷尺寸可能较为微小,很难得到精确检测。比如工件表面的小斑点、小凹坑、小划痕等。另一方面,缺陷检测往往针对流水线上不断传送的产品,要求检测时间较短。
虽然目前出现了多种基于神经网络的目标检测方法,比如,基于现有YOLOv3网络的目标检测方法等,但这些方法无法满足以上实际需求。
因此,如何提出一种能够针对小尺寸缺陷的快速检测方法,是业内亟待解决的问题。
发明内容
为了提出一种能够针对小尺寸缺陷的快速检测方法,本发明实施例提供了一种表面缺陷检测方法、装置、电子设备及存储介质。
具体技术方案如下:
第一方面,本发明实施例提供了一种表面缺陷检测方法,包括:
获取针对当前产品表面的目标图像;
利用改进型YOLOv3网络的主干网络对所述目标图像进行特征提取,得到x个不同尺度的特征图;x为4或5;
利用改进型YOLOv3网络的FPN网络对所述x个不同尺度的特征图进行特征融合,得到各尺度对应的预测结果;
利用分类网络和非极大值抑制模块对所有预测结果进行处理,得到所述目标图像的检测结果,所述检测结果包括当前产品表面的缺陷的位置和类别;
基于所述检测结果确定所述当前产品的待执行工序;
其中,所述改进型YOLOv3网络包括依次串接的主干网络、FPN网络、分类网络和非极大值抑制模块;所述改进型YOLOv3网络是在YOLOv3网络基础上,增加特征提取尺度,进行剪枝及结合知识蒸馏引导网络恢复处理后形成的;所述改进型YOLOv3网络是根据产品表面缺陷部位的样本图像,以及所述样本图像对应的缺陷的位置和类别训练得到的。
可选的,所述进行剪枝及结合知识蒸馏引导网络恢复处理,包括:
对YOLOv3网络基础上增加特征提取尺度得到的网络中,主干网络的残差模块进行层剪枝,得到YOLOv3-1网络;
对所述YOLOv3-1网络进行稀疏化训练,得到BN层缩放系数稀疏分布的YOLOv3-2网络;
将所述YOLOv3-2网络进行通道剪枝,得到YOLOv3-3网络;
将所述YOLOv3-3网络进行知识蒸馏,得到所述改进型YOLOv3网络。
可选的,所述对YOLOv3网络基础上增加特征提取尺度得到的网络中,主干网络的残差模块进行层剪枝,包括:
将YOLOv3网络基础上增加特征提取尺度得到的网络的主干网络中,残差模块含有的残差单元的数量由n个剪枝为p个;其中,n、p均为自然数,且p<n。
可选的,所述将所述YOLOv3-2网络进行通道剪枝,得到YOLOv3-3网络,包括:
预设一个通道剪枝比例;
将所述YOLOv3-2网络中所有的BN层缩放系数按照升序排列,得到BN层缩放系数序列;
选取所述BN层缩放系数序列中满足所述通道剪枝比例的排序在前的多个BN层缩放系数;
将选取的多个BN层缩放系数对应的通道进行剪枝处理。
可选的,所述利用改进型YOLOv3网络的FPN网络对所述x个不同尺度的特征图进行特征融合,包括:
利用改进型YOLOv3网络的FPN网络,采用自顶向下、密集连接的方式将所述x个不同尺度的特征图进行特征融合;其中,所述改进型YOLOv3网络的FPN网络包括尺度依次增大的x个预测支路Y1~Yx;其中,所述预测支路Y1~Yx的尺度与所述x个特征图的尺度一一对应。
可选的,所述采用自顶向下、密集连接的方式将所述x个不同尺度的特征图进行特征融合,包括:
针对预测支路Yi,从所述x个特征图中,获取对应尺度的特征图并进行卷积处理,将卷积处理后的特征图,与预测支路Yi-1~Y1分别经上采样处理后的特征图进行级联融合;其中,预测支路Yi-j的上采样倍数为2j;i=2、3,…,x;j为小于i的自然数。
可选的,对所述改进型YOLOv3网络进行训练之前还包括:
确定针对样本图像中锚盒尺寸的待聚类数量;
获取已标注目标框尺寸的若干样本图像;
基于已标注目标框尺寸的若干样本图像,利用K-Means聚类方法,获得样本图像中锚盒尺寸的聚类结果;
将所述聚类结果写入所述改进型YOLOv3网络的配置文件中。
第二方面,本发明实施例提供了一种表面缺陷检测装置,包括:
获取模块,用于获取针对当前产品表面的目标图像;
特征提取模块,用于利用改进型YOLOv3网络的主干网络对所述目标图像进行特征提取,得到x个不同尺度的特征图;x为4或5;
特征融合模块,用于利用改进型YOLOv3网络的FPN网络对所述x个不同尺度的特征图进行特征融合,得到各尺度对应的预测结果;
结果确定模块,用于利用分类网络和非极大值抑制模块对所有预测结果进行处理,得到所述目标图像的检测结果,所述检测结果包括当前产品表面的缺陷的位置和类别;
工序确定模块,用于基于所述检测结果确定所述当前产品的待执行工序;
其中,所述改进型YOLOv3网络包括依次串接的主干网络、FPN网络、分类网络和非极大值抑制模块;所述改进型YOLOv3网络是在YOLOv3网络基础上,增加特征提取尺度,进行剪枝及结合知识蒸馏引导网络恢复处理后形成的;所述改进型YOLOv3网络是根据产品表面缺陷部位的样本图像,以及所述样本图像对应的缺陷的位置和类别训练得到的。
第三方面,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述第一方面提供的任意一种表面缺陷检测方法的步骤。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面提供的任意一种表面缺陷检测方法的步骤。
本发明实施例所提供的方案中,基于YOLOv3网络增加细粒度的特征提取尺度,能够检测更小的物体,提升目标图像中小缺陷的检测精度。同时通过对网络进行剪枝及结合知识蒸馏引导网络恢复处理,摒除了大部分的冗余计算,能够在维持检测精度的前提下大幅缩小网络体积,提高缺陷检测速度。
当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
以下将结合附图及实施例对本发明做进一步详细说明。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种表面缺陷检测方法的流程示意图;
图2为现有技术中的YOLOv3网络的结构示意图;
图3为本发明实施例所提供的改进型YOLOv3网络的结构示意图;
图4是本发明实施例提供的稀疏化训练参数组合的权重分布情况图;其中图4-1为其偏移图,图4-2为其交叠图;
图5为本发明实施例所提供的改变FPN特征融合方式后的改进型YOLOv3网络的结构示意图;
图6为本发明实施例所提出的改进的主干网络;
图7为本发明实施例所提供的一种过渡模块的结构示意图;
图8为本发明实施例所提供的一种表面缺陷检测装置的结构示意图;
图9为本发明实施例所提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
为了提出一种能够针对小尺寸缺陷的快速检测方法,本发明实施例提供了一种表面缺陷检测方法、装置、电子设备及存储介质。
需要说明的是,本发明实施例所提供的一种表面缺陷检测方法的执行主体可以为一种表面缺陷检测装置,该表面缺陷检测装置可以运行于电子设备中。其中,该电子设备可以为一图像采集工具或图像处理工具中的插件,或者独立于一图像采集工具或图像处理工具之外的程序,当然并不局限于此。
第一方面,本发明实施例提供一种表面缺陷检测方法。下面,首先对该表面缺陷检测方法进行介绍。
如图1所示,本发明实施例所提供的一种表面缺陷检测方法,可以包括如下步骤:
S1,获取针对当前产品表面的目标图像;
目标图像为图像采集设备针对目标产品表面区域拍摄的图像;图像采集设备可以包括照相机、摄像机、手机等等;可选的实施方式中,图像采集设备可以为高分辨率相机。
图像采集设备可以设置于生产线上传送产品的预定位置处,比如传送带上方、侧方等,以采集产品上表面、侧表面等区域的图像。
图像采集设备可以根据产品的传送速度设置对应的图像采集时间间隔,比如5秒等,以便于采集到传送至预定位置处的当前产品的完整图像。
可选的,针对图像采集设备拍摄的图像,可以先检测其中是否含有产品,如果有,则将该图像作为目标图像,如果无,则由图像采集设备重新拍摄,直至获取针对当前产品表面的目标图像;目标图像中含有一个目标产品。
本发明实施例中,要求目标图像的尺寸为416×416×3。
因此,在该步骤,一种实施方式中,可以直接获得416×416×3尺寸的目标图像;另一种实施方式中,可以获得任意尺寸的图像,将获得的图像经过一定的尺寸缩放处理,得到416×416×3尺寸的目标图像。
并且,在上述两种实施方式中,还可以对获取到的图像可以进行裁剪、拼接、平滑、滤波、边缘填充等图像增强操作,以增强图像中感兴趣的特征,扩展数据集的泛化能力。
S2,利用改进型YOLOv3网络的主干网络对目标图像进行特征提取,得到x个不同尺度的特征图;x为4或5;
为了便于理解本发明实施例所提出的改进型YOLOv3网络的网络结构,首先,对现有技术中的YOLOv3网络的网络结构进行介绍,请参见图2,图2为现有技术中的YOLOv3网络的结构示意图。在图2中,虚线框内的部分为YOLOv3网络。其中点划线框内的部分为YOLOv3网络的主干(backbone)网络,即darknet-53网络;YOLOv3网络的主干网络由CBL模块和5个resn模块串接构成。CBL模块为卷积网络模块,包括串行连接的conv层(Convolutionallayer,卷积层,简称conv层)、BN(Batch Normalization,批量归一化)层和激活函数Leakyrelu对应的Leaky relu层,CBL即表示conv+BN+Leakyrelu。resn模块为残差模块,n代表自然数,如图2所示,具体地,沿输入方向依次有res1、res2、res8、res8、res4;resn模块包括串行连接的zero padding(零填充)层、CBL模块和残差单元组,残差单元组用Res unit*n表示,含义是包括n个残差单元Res unit,每个残差单元包括采用残差网络(ResidualNetwork,简称为ResNets)连接形式连接的多个CBL模块,特征融合方式采用并行方式,即add方式。
主干网络之外的其余部分为FPN(FeaturePyramidNetworks,特征金字塔网络)网络,FPN网络又分为三个预测支路Y1~Y3,预测支路Y1~Y3的尺度分别与沿输入逆向的3个残差模块res4、res8、res8分别输出的特征图的尺度一一对应。各预测支路的预测结果分别以Y1、Y2、Y3表示,Y1、Y2、Y3的尺度依次增大。
FPN网络的各个预测支路中均包括卷积网络模块组,具体包括5个卷积网络模块,即图2中的CBL*5。另外,US(up sampling,上采样)模块为上采样模块;concat表示特征融合采用级联方式,concat为concatenate的简称。
YOLOv3网络中各个主要模块的具体构成请参见图2中虚线框下的示意图。
本发明实施例中,改进型YOLOv3网络包括依次串接的主干网络、FPN网络、分类网络和非极大值抑制模块;改进型YOLOv3网络是在YOLOv3网络基础上,增加特征提取尺度,进行剪枝及结合知识蒸馏引导网络恢复处理后形成的。改进型YOLOv3网络是根据产品表面缺陷部位的样本图像,以及样本图像对应的缺陷的位置和类别训练得到的。关于网络训练过程在后文中予以介绍。
本发明实施例的改进型YOLOv3网络的结构请参见图3,图3为本发明实施例所提供的改进型YOLOv3网络的结构示意图;在图3中,可以看到除了增加有分类网络和非极大值抑制模块外,改进型YOLOv3网络相比于YOLOv3网络,明显增加了一个更细粒度的特征提取尺度,即增加了提取沿输入逆向的第四个残差模块输出的特征图进行后续的特征融合。需要说明的是,图3的四个特征提取尺度仅仅作为实例,在可选的实施方式中,也可以设置五个特征提取尺度,即再增加提取沿输入逆向的第五个残差模块输出的特征图进行后续的特征融合,即x为4或5都是合理的。
另外,在增加了新的特征提取尺度之后,对得到的网络进行剪枝及结合知识蒸馏引导网络恢复处理,以在确保精度的情况下,减小网络体积,提高检测速度,可选的一种实施方式中,进行剪枝及结合知识蒸馏引导网络恢复处理,包括以下步骤:
a)对YOLOv3网络基础上增加特征提取尺度得到的网络中,主干网络的残差模块进行层剪枝,得到YOLOv3-1网络;
通常在对YOLOv3网络简化处理过程中会直接进行通道剪枝,但是在实验中发现,仅通过通道剪枝仍难达到速度快速提升的效果。因此在通道剪枝前加入了层剪枝的处理过程。
具体的,该步骤包括:
将YOLOv3网络基础上增加特征提取尺度得到的网络的主干网络中,残差模块含有的残差单元的数量由n个剪枝为p个;其中,n、p均为自然数,且p<n。参见图3进行理解,将原有YOLOv3网络主干网络中全部或部分残差模块中的残差单元数量减少,示例性的,比如原有的残差模块res1、res2、res8、res8、res4减少后可以为res1、res1、res7、res7、res3等形式。经过层剪枝,网络结构得到简化,同时网络的参数量和运算量能够减小,可以实现提速。在图3中仅以上述res1、res1、res7、res7、res3形式进行示例,其余形式不做赘述。
b)对YOLOv3-1网络进行稀疏化训练,得到BN层缩放系数稀疏分布的YOLOv3-2网络;
将YOLOv3-1网络进行稀疏化训练,为YOLOv3-1网络的每个通道引入一个比例系数γ,使得每一个通道的输出大小可以由这个比例系数控制。为了让大部分比例系数γ都接近于0,需要在训练过程中,为γ添加稀疏正则化。稀疏训练的损失函数为:
其中,表示网络原始的损失函数,(x,y)表示训练过程的输入数据和目标数据,W表示可训练的权重,为比例系数添加的正则项,g(γ)是对比例系数进行稀疏训练的惩罚函数,λ为权重。由于要使得比例系数γ具有稀疏性,惩罚函数选择L1范数。同时,由于不知道后一项所占比重,引入λ参数进行调整。
由于λ的取值与稀疏训练的收敛速度相关,本发明实施例的应用场景为缺陷检测场景,其待检测的缺陷的种类数量远远小于原YOLOv3数据集中的80个种类,所以λ的取值可以选取较大的λ值,稀疏训练的收敛速度也不会很慢,同时也可以通过提高模型学习率的方法来进一步加快收敛;但是考虑到参数选取过大又会对网络模型的精度造成一定的损失,在不断调整学习率和λ参数后,最后确定将学习率为1×,λ为0.025×的组合作为稀疏化训练的优选参数组合。请参加图4,图4是本发明实施例提供的一种稀疏化训练参数组合的权重分布情况图,其中图4-1是权重偏移图,图4-2是权重交叠图。本发明实施例优选的学习率与权重组合对于系数训练过后的权重的分布更有利,且网络模型的精度也较高。
c)将YOLOv3-2网络进行通道剪枝,得到YOLOv3-3网络;
在稀疏化训练之后,得到了一个BN层缩放系数稀疏分布的网络模型,这就便于确定哪些通道的重要性更小。由此,可以剪去这些不太重要的通道,剪枝的方法是删除传入和传出连接以及相应的权重。
对网络进行通道剪枝操作,修剪一个通道基本上对应于删除该通道的所有传入和传出连接,可以直接获得一个轻量化的网络,而不需要使用任何特殊的稀疏计算包。通道剪枝过程中,缩放因子充当频道选择的代理;由于它们与网络权重共同优化,因此网络可以自动识别无关紧要的通道,这些通道可以安全地移除而不会极大地影响泛化性能。
具体的,该步骤可以包括以下步骤:
c1)预设一个通道剪枝比例;
c2)将YOLOv3-2网络中所有的BN层缩放系数按照升序排列,得到BN层缩放系数序列;
c3)选取BN层缩放系数序列中满足通道剪枝比例的排序在前的多个BN层缩放系数;
c4)将选取的多个BN层缩放系数对应的通道进行剪枝处理。
通过通道剪枝,可以删去冗余的通道,减少计算量,加快缺陷检测的速度。
但是在通道剪枝后,可能会由于参数减少而带来一些精度的下降,从不同的剪枝比例对网络精度的影响进行分析,如果网络剪枝比例过大,网络体积压缩更多,但也会造成网络精度的剧烈下降,由此需要进行一个网络压缩比例与压缩后网络精度的权衡。
作为一种优选的实施方式,对YOLOv3-2网络的通道剪枝比例为50%。通道剪枝之所以选择50%是因为:
由于待检测的目标图像中数量较少的缺陷种类在网络压缩过程中受到影响比较大,这就会直接影响mAP(mean average precision,平均精度均值),因此,要从数据集和网络压缩比例方面来考虑。对数据集的处理,本发明的实施例选择合并数量较少的缺陷的种类来使得不同种类的数量达到均衡,或者是直接采用种类分布更加均衡的数据集,这与本发明实施例的应用场景相吻合。另外就是控制压缩比例,保证数量较少的种类的预测精度不会下降太多。根据mAP仿真结果来看,50%-60%的压缩比例是精度变化的转折点,因此可以初步选择50%的压缩比例。
除了从精度来分析压缩的影响外,还要考虑检测时间和模型压缩比例的关系,通过对不同剪枝比例处理的网络模型不同平台上(在Tesla V100服务器和Jetson TX2边缘设备)的运行时间进行仿真,根据仿真结果可以发现,不同网络压缩比例对于网络推测的时间影响很微弱,而对于NMS(非极大值抑制)所需时间影响较大,在压缩比例达到55%之前,检测速度随着网络压缩而加快,但是压缩比例超过55%后,检测速度反而出现了减慢。由此,最终选定通道剪枝比例为55%。
d)将YOLOv3-3网络进行知识蒸馏,得到改进型YOLOv3网络。
经过剪枝,获得了一个更为紧凑的YOLOv3-3网络模型,然后需要进行微调使得精度恢复。这里引入了知识蒸馏的策略。
具体的,对YOLOv3-3网络引入知识蒸馏,将YOLOv3网络基础上增加特征提取尺度得到的网络作为教师网络,YOLOv3-3网络作为学生网络,由教师网络引导学生网络进行精度恢复和调整,得到改进型YOLOv3网络。
作为一种优选的实施方式,将YOLOv3网络基础上增加特征提取尺度得到的网络的Softmax层之前的输出结果除以温度系数,来使得教师网络最终输出的预测值软化,而后学生网络利用软化后的预测值作为标签来辅助训练YOLOv3-3网络,最终实现YOLOv3-3网络的精度与和教师网络相当;其中,温度系数是预先设定的值,不随网络训练发生变化。
引入温度参数T的原因是,一个完成训练、精度很高的网络对于输入数据的分类结果,和真实的标签是基本一致的。以三分类为例,真实已知的训练类别标签是[1,0,0],预测结果可能会是[0.95,0.02,0.03],和真实的标签值是非常逼近的。因此,对于学生网络来讲,使用教师网络的分类结果辅助训练和直接利用数据进行训练,差别不大。温度参数T可以用来控制预测标签的软化程度,即可以增加教师网络分类结果的偏差。
将添加了知识蒸馏策略的微调过程和一般的微调过程进行对比,经过知识蒸馏调整恢复的网络精度比原始的YOLOv3网络更高。
S3,利用改进型YOLOv3网络的FPN网络对x个不同尺度的特征图进行特征融合,得到各尺度对应的预测结果;
针对利用改进型YOLOv3网络的FPN网络对x个不同尺度的特征图进行特征融合:
一种实施方式,请结合图3进行理解,具体包括:
预测支路Yi从x个特征图中,获取对应尺度的特征图作为预测支路Yi的待融合特征图Fi;其中,i=2、3,…,x;
并且获取预测支路Yi-1中经卷积网络模块组输出的特征图,并进行卷积和上采样处理,得到预测支路Yi的待融合特征图Fi-1;
将待融合特征图Fi和待融合特征图Fi-1进行级联融合;
其中,卷积网络模块组包括k个卷积网络模块,k为自然数;每一预测支路均含有卷积网络模块组,预测支路Yi的卷积网络模块组设置于该预测支路的级联融合处理之后。
参见图3进行理解,预测支路Y1直接获取对应尺度的特征图,即res4输出的特征图,并将其经卷积网络模块组(以CBL*k表示)进行卷积处理以进行本预测支路的后续处理。其中k可以为5。
从预测支路Y2开始,每个预测支路Yi均获取两方面的特征图进行特征融合,一方面是:从x个特征图中,获取对应尺度的特征图作为预测支路Yi的待融合特征图Fi;针对预测支路Y2,即获取沿输入逆向的第二个残差模块res8输出的特征图作为其待融合特征图F2;另一方面是:获取相邻的尺度较小的预测支路Yi-1中经卷积网络模块组输出的特征图,并进行卷积和上采样处理,得到预测支路Yi的待融合特征图Fi-1;针对预测支路Y2,即获取预测支路Y1中经卷积网络模块组CBL*k输出的特征图,并进行卷积(CBL模块)和上采样(US模块,US为upsampling简称,原意上采样)处理,得到该预测支路的待融合特征图F1;
然后,预测支路Yi将待融合特征图Fi和待融合特征图Fi-1进行级联融合;针对预测支路Y2,即将待融合特征图F2和待融合特征图F1进行级联融合,其中,级联融合以concat表示,concat为concatenate的简称。参见图3可以理解,预测支路Y2级联融合后的特征图会经过卷积网络模块组CBL*k处理,输出的特征图一方面用于本预测支路后续的目标预测,另一方面会进行卷积和上采样处理以用于给预测支路Y3进行特征级联融合;
关于其余预测支路的特征融合过程与预测支路Y2类似,在此不再赘述。
在该实施方式中,特征融合结合横向方式与自顶向下方式,在这种方式中,尺度较小的预测支路的特征图会经由相邻的尺度较大的预测支路处理后向下传递自身的特征。
另一种实施方式包括:利用改进型YOLOv3网络的FPN网络,采用自顶向下、密集连接的方式将x个不同尺度的特征图进行特征融合;其中,改进型YOLOv3网络的FPN网络包括尺度依次增大的x个预测支路Y1~Yx;其中,预测支路Y1~Yx的尺度与x个特征图的尺度一一对应。
在该种实施方式中,首先对原有的YOLOv3网络的FPN网络进行了改进,改变其网络连接形式以改变特征融合方式得到改进型FPN网络,主旨是特征融合结合横向方式与自顶向下密集连接方式,在这种方式中,自顶向下的方式变成了尺度较小的预测支路的特征图直接向每一个尺度较大的预测支路传递自身的特征。
具体的,采用自顶向下、密集连接的方式将x个不同尺度的特征图进行特征融合,包括:
针对预测支路Yi,从x个特征图中,获取对应尺度的特征图并进行卷积处理,将卷积处理后的特征图,与预测支路Yi-1~Y1分别经上采样处理后的特征图进行级联融合;其中,预测支路Yi-j的上采样倍数为2j;i=2、3,…,x;j为小于i的自然数。
参见图5进行理解,图5为本发明实施例所提供的改变FPN特征融合方式后的改进型YOLOv3网络的结构示意图;以i=3也就是预测支路Y3为例说明,其进行级联融合处理的特征图来源于三方面:第一方面,是从4个特征图中,获取对应尺度的特征图并进行卷积处理,也就是沿输入逆向的第三个残差模块res8输出的特征图经CBL模块后的特征图,该特征图也可以理解为经过1倍上采样,尺寸是52×52×255;第二方面来源于预测支路Y2(即Yi-1=Y2),即沿输入逆向的第二个残差模块res8输出的特征图(尺寸是26×26×255)经过预测支路Y2的CBL模块再经21=2倍上采样处理后的特征图(尺寸是52×52×255);第三方面来源于预测支路Y1(即Yi-2=Y1),即沿输入逆向的第一个残差模块res4输出的特征图(尺寸是13×13×255)经预测支路Y1的CBL模块后再经22=4倍上采样处理后的特征图(尺寸是52×52×255);那么,本领域技术人员可以理解的是,上述过程将主干网络输出的三个不同尺度的特征图经过不同倍数的上采样处理后,可以使得待级联融合的三个特征图的尺寸一致,均为52×52×255。这样,预测支路Y3可以在级联融合之后,继续进行卷积等处理,得到预测结果Y3,Y3尺寸为52×52×255。
关于其余预测支路的特征融合过程,请参见预测支路Y3,在此不再赘述。而针对预测支路Y1,其获取沿输入逆向的第一个密集连接模块输出的特征图后自行进行后续的预测过程,并不接受其余预测支路的特征图与之融合。
特征融合的第一种实施方式中,使用的是先将深层和较浅层网络特征相加,再一起进行上采样的方法,这种方法在将特征相加后,要通过卷积层提取特征图,这样的操作会破坏一些原始的特征信息。而在第二种实施方式中,将特征融合方式变为了密集的融合方法,即深层特征直接进行不同倍数的上采样,以此来使得传递的所有特征图具有相同的尺寸。将这些特征图和浅层的特征图通过串联的方式融合起来,对融合的结果再次提取特征来消除里面的噪声,保留主要信息,然后进行预测,这样可以利用到更多的原始信息,在浅层网络中也有高维语义信息的参与。因此,这样可以发挥密集连接网络保留更多特征图原始语义特征的优势,只不过对于自顶向下的方法来讲,保留的原始语义是更加高维的语义信息,这样可以对于物体的分类有帮助。通过直接接收更浅层网络的特征,可以得到更加具体的特征,这样将有效地减少特征的损失,并且可以减少需要运算的参数量,加速预测过程。
在该步骤中,主要针对特征融合方式进行介绍,各预测支路在特征融合之后主要是利用一些卷积操作进行预测,关于如何获取各自的预测结果请参见相关的现有技术,在此不进行说明。各预测支路的预测结果分别为Y1~Y4,尺寸在名称之下标识,具体请参见图3或5的网络结构图进行理解。
S4,利用分类网络和非极大值抑制模块对所有预测结果进行处理,得到目标图像的检测结果,检测结果包括当前产品表面的缺陷的位置和类别;
可选的一种实施方式中,分类网络包括SoftMax分类器,目的是实现多个车辆类别互斥的分类。当然也可以沿用YOLOv3网络的logistic回归进行分类,以实现多个独立的二分类。
非极大值抑制模块用于进行NMS(non_max_suppression,非极大值抑制)处理。用于在重复框选同一目标(本实施例具体为表面的缺陷)的多个检测框中,排除置信度相对较小的检测框。
关于分类网络和非极大值抑制模块的处理过程请参见相关的现有技术,在此不做赘述。
检测结果的形式为一向量,包含预测框的位置、预测框内作为目标的缺陷的置信度、预测框内缺陷的类别。预测框的位置用来表征缺陷在目标图像中的位置;具体的,每个预测框的位置用bx,by,bw,bh四个值表示,bx,by用于表示预测框的中心点位置,bw,bh为用于表示预测框的宽和高。
类别包括斑点、凹坑、划痕、色差、缺损等。
需要说明的是,如果当前产品的检测结果没有发现缺陷,则检测结果中各项值为0。
在图3或图5中,4个预测支路共输出四个尺度的特征图,分别为13×13、26×26、52×52、104×104,最小的13×13的特征图上由于其感受野最大,适合较大的目标检测;中等的26×26特征图上由于其具有中等感受野,适合检测中等大小的目标;较大的52×52特征图上由于其具有较小的感受野,适合检测较小的目标;最大的104×104特征图上由于其具有更小的感受野,故适合检测再小的目标。本发明实施例对图像的划分更加精细,预测结果对尺寸较小的物体更有针对性。
S5,基于检测结果确定当前产品的待执行工序;
针对当前产品的检测结果判断各项值是否均为0,如果是,则确定当前产品为良品,对当前产品执行下一步工序;如果否,则确定当前产品为缺陷品,对当前产品执行缺陷检测、返修工序。
可选的,为了提高作为目标的缺陷的检测精度,可以对前述的主干网络进行修改,将残差模块更换为密集连接模块,请参见图6,图6为本发明实施例所提出的改进的主干网络。该主干网络输出的4个特征图后续的处理方式请参见前文理解。
该改进的主干网络包括多个间隔串接的密集连接模块和过渡模块;密集连接模块表示为denm。
因为至少存在四条预测支路,因此,密集连接模块的数量至少为四个,以便将自身输出的特征图对应融合进各个预测支路。在图6中,作为示例,密集连接模块的数量为5个,相比于4个密集连接模块,5个密集连接模块所构成的网络的精度更高。
密集连接模块包括串行连接的卷积网络模块(如前,表示为CBL模块)和密集连接单元组;其中,密集连接单元组表示为den unit*m,其含义是,密集连接单元组包括m个密集连接单元,m为大于等于4的自然数;
每个密集连接单元表示为den unit;其包括多个采用密集连接形式连接的卷积网络模块,并采用级联方式融合多个卷积网络模块输出的特征图;级联方式即concat,含义为张量拼接,该操作和残差模块中的add的操作是不一样的,concat会扩充张量的维度,而add只是直接相加不会导致张量维度的改变。因此,上述改进的主干网络在进行特征提取时,利用密集连接模块,将特征融合方式从并行改为了串行,能够直接将早期的特征图作为后面每一层的输入,强化特征的传递,并通过复用浅层网络的特征图参数来减少参数的数量以及运算量。因此,可以提高目标图像中缺陷检测的精度。
针对改进的主干网络中的过渡模块:
可选的第一种实施方式中,过渡模块为卷积网络模块。也就是使用CBL模块作为过渡模块。那么,在搭建改进型YOLOv3网络的主干网络时,仅需要将残差模块更换为密集连接模块,再将密集连接模块和原有的CBL模块进行串联即可得到。这样,网络搭建过程会较为快速,所得到的网络结构较为简单。但这样的过渡模块仅使用卷积层进行过渡,即直接通过增加步长来对特征图进行降维,这样做只能照顾到局部区域特征,而不能结合整张图的信息,因此会使得特征图中的信息丢失较多。
可选的第二种实施方式中,过渡模块包括卷积网络模块和最大池化层;卷积网络模块的输入和最大池化层的输入共用,卷积网络模块输出的特征图和最大池化层输出的特征图采用级联方式融合。该种实施方式中过渡模块的结构请参见图7,图7为本发明实施例所提供的一种过渡模块的结构示意图。该种实施方式中,用tran模块表示该种过渡模块,MP层为最大池化层(Maxpool,缩写MP,含义为最大池化)。进一步的,MP层的步长可以选择为2。在该种实施方式中,引入的MP层可以以较大的感受野对特征图进行降维;使用的参数比较少,因此不会过多地增加计算量,可以减弱过拟合的可能,提高网络模型的泛化能力;并且结合原有的CBL模块,可以看做从不同的感受野对特征图进行降维,因此可以保留更多信息。
针对上述第二种实施方式,可选的,过渡模块包括的卷积网络模块的数量为两个或三个,且各个卷积网络模块之间采用串接方式。相比于使用一个卷积网络模块,采用串接的两个或三个卷积网络模块,能够增加模型的复杂度,充分提取特征。
原有的YOLOv3网络中含有较多的卷积层,原因在于其针对的目标的类别较多,有80种。而在本发明实施例中,缺陷的类别数较少,那么,大量的卷积层是没有必要的,这样会浪费网络资源,降低处理速度。
因此,可选的,改进型YOLOv3网络中针对密集连接模块的m取值可以为4,这样,相比原有YOLOv3网络中主干网络的多个残差模块含有的卷积层数量,改进型YOLOv3网络中,通过将密集连接模块中含有的密集连接单元数量设置为4,可以在不影响网络精度的情况下,针对本发明实施例的目标图像,减少主干网络中卷积层的数量。
可选的,改进型YOLOv3网络还可以针对FPN网络中每个预测支路的卷积网络模块组中的k的数值进行调整,将k从原有YOLOv3网络中的5减少为4或3,也就是将原有的CBL*5改为CBL*4或者CBL*3;这样也可以减少FPN网络中卷积层的数量,在不影响网络精度的情况下,针对本发明实施例的车辆图像,整体实现网络层数精简,提升网络处理速度。
当然,优选的一种实施方式是上述两种减少卷积层数量的方案同时使用。
相应的,针对上述改变主干网络的改进型YOLOv3网络,也可以是进行剪枝及结合知识蒸馏引导网络恢复处理后形成的;其中,层剪枝部分可以为对改进的主干网络的中的密集连接模块中的密集连接单元的数量进行剪枝,该部分前文已经有所介绍,在此不再赘述,其余剪枝和知识蒸馏部分可以参见前文的过程,在此不进行重复;
以上对改进型YOLOv3网络的主要构成和检测步骤进行了介绍,接下来,对改进型YOLOv3网络的训练前过程和训练过程进行简要补充:
首先搭建网络结构,如图3、图5、图6,或图6中使用图7的过渡模块的网络结构。
其次,获得若干含有产品表面缺陷部位的样本图像,以及样本图像对应的缺陷的位置和类别。在该过程中,各样本图像对应缺陷的位置和类别是已知的,确定各样本图像对应缺陷的位置和类别的方式可以是:通过人工识别,或者通过其他图像识别工具识别等等。之后,需要对样本图像进行标记,可以采用人工标记方式,当然也可以利用其余人工智能方法进行非人工标记,这都是合理的。其中,各样本图像对应缺陷的位置是以包含缺陷区域的目标框的形式标记的,这个目标框是真实准确的,各个目标框标记有坐标信息,以此来体现缺陷在图像中的位置。
再次,确定样本图像中的锚盒尺寸;可以包括以下步骤:
①确定针对样本图像中锚盒尺寸的待聚类数量;
在目标检测领域,锚盒(anchor box)就是从训练集中真实框(ground truth)中统计或聚类得到的几个不同尺寸的框;锚盒其实就是对预测的对象范围进行约束,并加入了尺寸先验经验,从而实现多尺度学习的目的。在本发明实施例中,由于希望加入更细粒度的特征提取尺度,需要利用聚类方式对样本道路图像中已经标注好的各个目标框(也就是真实框)的尺寸进行聚类,以得到适合本发明实施例场景的合适的锚盒尺寸。
其中,确定针对样本图像中锚盒尺寸的待聚类数量,包括:
确定每个尺度对应的锚盒尺寸的种类数;将每个尺度对应的锚盒尺寸的种类数与x的乘积,作为样本道路图像中锚盒尺寸的待聚类数量。
具体的,在本发明实施中,选择每个尺度对应的锚盒尺寸的种类数为3;以有4个尺度为例,那么,得到的样本图像中锚盒尺寸的待聚类数量=3×4=12。
②获取已标注目标框尺寸的若干样本图像;
该步骤实际是获取样本图像中各个目标框的尺寸。
③基于已标注目标框尺寸的若干样本图像,利用K-Means聚类方法,获得样本图像中锚盒尺寸的聚类结果;
具体的,可以将各个目标框的尺寸利用K-Means聚类方法进行聚类,获得锚盒尺寸的聚类结果;关于聚类过程在此不再赘述。
其中,对于不同锚盒距离的定义即为其宽高的欧式距离:
其中,d1,2代表两个锚盒的欧氏距离,w1,w2代表锚盒的宽,h1,h2代表锚盒的高。
针对待聚类数量为12,可以得到各个预测支路的锚盒尺寸的聚类结果,每个预测支路有3个锚盒尺寸。
④将聚类结果写入利用改进型YOLOv3网络的配置文件中。
本领域技术人员可以理解的是,将聚类结果按照不同预测支路对应的锚盒尺寸,写入利用改进型YOLOv3网络的各预测支路的配置文件中,之后可以进行网络训练。
并且由于网络训练需要使用VOC格式或者COCO格式的数据,并将标记数据存储在文本文档当中。所以需要用Python脚本进行数据集标注格式的转换。
利用各样本图像,以及各样本图像对应缺陷的位置和类别,训练搭建好的网络,包括以下步骤:
1)将每一样本图像对应缺陷的位置和类别作为该样本图像对应的真值,将各样本图像和对应的真值,通过搭建好的网络进行训练,获得各样本图像的训练结果。
2)将每一样本图像的训练结果与该样本图像对应的真值进行比较,得到该样本图像对应的输出结果。
3)根据各个样本图像对应的输出结果,计算网络的损失值。
4)根据损失值,调整网络的参数,并重新进行1)-3)步骤,直至网络的损失值达到了一定的收敛条件,也就是损失值达到最小,这时,意味着每一样本图像的训练结果与该样本图像对应的真值一致,从而完成网络的训练。
本发明实施例所提供的方案中,基于YOLOv3网络增加细粒度的特征提取尺度,能够检测更小的物体,提升目标图像中小缺陷的检测精度。同时通过对网络进行剪枝及结合知识蒸馏引导网络恢复处理,摒除了大部分的冗余计算,能够在维持检测精度的前提下大幅缩小网络体积,提高缺陷检测速度。
第二方面,相应于上述方法实施例,本发明实施例提出了一种表面缺陷检测装置,参见图8,图8包括:
获取模块801,用于获取针对当前产品表面的目标图像;
特征提取模块802,用于利用改进型YOLOv3网络的主干网络对目标图像进行特征提取,得到x个不同尺度的特征图;x为4或5;
特征融合模块803,用于利用改进型YOLOv3网络的FPN网络对x个不同尺度的特征图进行特征融合,得到各尺度对应的预测结果;
结果确定模块804,用于利用分类网络和非极大值抑制模块对所有预测结果进行处理,得到目标图像的检测结果,检测结果包括当前产品表面的缺陷的位置和类别;
工序确定模块805,用于基于检测结果确定当前产品的待执行工序;
其中,改进型YOLOv3网络包括依次串接的主干网络、FPN网络、分类网络和非极大值抑制模块;改进型YOLOv3网络是在YOLOv3网络基础上,增加特征提取尺度,进行剪枝及结合知识蒸馏引导网络恢复处理后形成的。改进型YOLOv3网络是根据产品表面缺陷部位的样本图像,以及样本图像对应的缺陷的位置和类别训练得到的。
关于具体内容请参见第一方面的表面缺陷检测方法的内容,在此不再赘述。
本发明实施例所提供的方案中,基于YOLOv3网络增加细粒度的特征提取尺度,能够检测更小的物体,提升目标图像中小缺陷的检测精度。同时通过对网络进行剪枝及结合知识蒸馏引导网络恢复处理,摒除了大部分的冗余计算,能够在维持检测精度的前提下大幅缩小网络体积,提高缺陷检测速度。
第三方面,相应于上述方法实施例,本发明实施例还提供了一种电子设备,如图9所示,包括处理器901、通信接口902、存储器903和通信总线904,其中,处理器901、通信接口902、存储器903通过通信总线904完成相互间的通信,
存储器903,用于存放计算机程序;
处理器901,用于执行存储器903上所存放的程序时,实现前述任意一种表面缺陷检测方法的步骤。
上述电子设备提到的通信总线可以是外设部件互连标准(PeripheralComponentInterconnect,PCI)总线或扩展工业标准结构(Extended IndustryStandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(DigitalSignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
通过上述电子设备,能够实现:基于YOLOv3网络增加细粒度的特征提取尺度,能够检测更小的物体,提升目标图像中小缺陷的检测精度。同时通过对网络进行剪枝及结合知识蒸馏引导网络恢复处理,摒除了大部分的冗余计算,能够在维持检测精度的前提下大幅缩小网络体积,提高缺陷检测速度。
第四方面,相应于上述实施例所提供的表面缺陷检测方法,本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现前述任意一种表面缺陷检测方法的步骤。
上述计算机可读存储介质存储有在运行时执行本发明实施例所提供的表面缺陷检测方法的应用程序,因此能够实现:基于YOLOv3网络增加细粒度的特征提取尺度,能够检测更小的物体,提升目标图像中小缺陷的检测精度。同时通过对网络进行剪枝及结合知识蒸馏引导网络恢复处理,摒除了大部分的冗余计算,能够在维持检测精度的前提下大幅缩小网络体积,提高缺陷检测速度。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本发明实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
对于电子设备以及计算机可读存储介质实施例而言,由于其所涉及的方法内容基本相似于前述的方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种表面缺陷检测方法,其特征在于,包括:
获取针对当前产品表面的目标图像;
利用改进型YOLOv3网络的主干网络对所述目标图像进行特征提取,得到x个不同尺度的特征图;x为4或5;
利用改进型YOLOv3网络的FPN网络对所述x个不同尺度的特征图进行特征融合,得到各尺度对应的预测结果;
利用分类网络和非极大值抑制模块对所有预测结果进行处理,得到所述目标图像的检测结果,所述检测结果包括当前产品表面的缺陷的位置和类别;
基于所述检测结果确定所述当前产品的待执行工序;
其中,所述改进型YOLOv3网络包括依次串接的主干网络、FPN网络、分类网络和非极大值抑制模块;所述改进型YOLOv3网络是在YOLOv3网络基础上,增加特征提取尺度,进行剪枝及结合知识蒸馏引导网络恢复处理后形成的;所述改进型YOLOv3网络是根据产品表面缺陷部位的样本图像,以及所述样本图像对应的缺陷的位置和类别训练得到的。
2.根据权利要求1所述的方法,其特征在于,所述进行剪枝及结合知识蒸馏引导网络恢复处理,包括:
对YOLOv3网络基础上增加特征提取尺度得到的网络中,主干网络的残差模块进行层剪枝,得到YOLOv3-1网络;
对所述YOLOv3-1网络进行稀疏化训练,得到BN层缩放系数稀疏分布的YOLOv3-2网络;
将所述YOLOv3-2网络进行通道剪枝,得到YOLOv3-3网络;
将所述YOLOv3-3网络进行知识蒸馏,得到所述改进型YOLOv3网络。
3.根据权利要求2所述的方法,其特征在于,所述对YOLOv3网络基础上增加特征提取尺度得到的网络中,主干网络的残差模块进行层剪枝,包括:
将YOLOv3网络基础上增加特征提取尺度得到的网络的主干网络中,残差模块含有的残差单元的数量由n个剪枝为p个;其中,n、p均为自然数,且p<n。
4.根据权利要求2或3所述的方法,其特征在于,所述将所述YOLOv3-2网络进行通道剪枝,得到YOLOv3-3网络,包括:
预设一个通道剪枝比例;
将所述YOLOv3-2网络中所有的BN层缩放系数按照升序排列,得到BN层缩放系数序列;
选取所述BN层缩放系数序列中满足所述通道剪枝比例的排序在前的多个BN层缩放系数;
将选取的多个BN层缩放系数对应的通道进行剪枝处理。
5.根据权利要求1所述的方法,其特征在于,所述利用改进型YOLOv3网络的FPN网络对所述x个不同尺度的特征图进行特征融合,包括:
利用改进型YOLOv3网络的FPN网络,采用自顶向下、密集连接的方式将所述x个不同尺度的特征图进行特征融合;其中,所述改进型YOLOv3网络的FPN网络包括尺度依次增大的x个预测支路Y1~Yx;其中,所述预测支路Y1~Yx的尺度与所述x个特征图的尺度一一对应。
6.根据权利要求5所述的方法,其特征在于,所述采用自顶向下、密集连接的方式将所述x个不同尺度的特征图进行特征融合,包括:
针对预测支路Yi,从所述x个特征图中,获取对应尺度的特征图并进行卷积处理,将卷积处理后的特征图,与预测支路Yi-1~Y1分别经上采样处理后的特征图进行级联融合;其中,预测支路Yi-j的上采样倍数为2j;i=2、3,…,x;j为小于i的自然数。
7.根据权利要求1所述的方法,其特征在于,对所述改进型YOLOv3网络进行训练之前还包括:
确定针对样本图像中锚盒尺寸的待聚类数量;
获取已标注目标框尺寸的若干样本图像;
基于已标注目标框尺寸的若干样本图像,利用K-Means聚类方法,获得样本图像中锚盒尺寸的聚类结果;
将所述聚类结果写入所述改进型YOLOv3网络的配置文件中。
8.一种表面缺陷检测装置,其特征在于,包括:
获取模块,用于获取针对当前产品表面的目标图像;
特征提取模块,用于利用改进型YOLOv3网络的主干网络对所述目标图像进行特征提取,得到x个不同尺度的特征图;x为4或5;
特征融合模块,用于利用改进型YOLOv3网络的FPN网络对所述x个不同尺度的特征图进行特征融合,得到各尺度对应的预测结果;
结果确定模块,用于利用分类网络和非极大值抑制模块对所有预测结果进行处理,得到所述目标图像的检测结果,所述检测结果包括当前产品表面的缺陷的位置和类别;
工序确定模块,用于基于所述检测结果确定所述当前产品的待执行工序;
其中,所述改进型YOLOv3网络包括依次串接的主干网络、FPN网络、分类网络和非极大值抑制模块;所述改进型YOLOv3网络是在YOLOv3网络基础上,增加特征提取尺度,进行剪枝及结合知识蒸馏引导网络恢复处理后形成的;所述改进型YOLOv3网络是根据产品表面缺陷部位的样本图像,以及所述样本图像对应的缺陷的位置和类别训练得到的。
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-7任一所述的方法步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-7任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011145527.5A CN112381763A (zh) | 2020-10-23 | 2020-10-23 | 一种表面缺陷检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011145527.5A CN112381763A (zh) | 2020-10-23 | 2020-10-23 | 一种表面缺陷检测方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112381763A true CN112381763A (zh) | 2021-02-19 |
Family
ID=74581708
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011145527.5A Withdrawn CN112381763A (zh) | 2020-10-23 | 2020-10-23 | 一种表面缺陷检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112381763A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112580639A (zh) * | 2021-03-01 | 2021-03-30 | 四川大学 | 一种基于进化神经网络模型压缩的早期胃癌图像识别方法 |
CN112991330A (zh) * | 2021-04-19 | 2021-06-18 | 征图新视(江苏)科技股份有限公司 | 基于知识蒸馏的正样本工业缺陷检测方法 |
CN113313694A (zh) * | 2021-06-05 | 2021-08-27 | 西北工业大学 | 一种基于轻量型卷积神经网络的表面缺陷快速检测方法 |
CN114419029A (zh) * | 2022-03-11 | 2022-04-29 | 深圳艾灵网络有限公司 | 表面缺陷检测模型的训练方法、表面缺陷检测方法及装置 |
CN114973156A (zh) * | 2022-08-02 | 2022-08-30 | 松立控股集团股份有限公司 | 一种基于知识蒸馏的夜间渣土车检测方法 |
CN115147418A (zh) * | 2022-09-05 | 2022-10-04 | 东声(苏州)智能科技有限公司 | 缺陷检测模型的压缩训练方法和装置 |
CN115375677A (zh) * | 2022-10-24 | 2022-11-22 | 山东省计算中心(国家超级计算济南中心) | 基于多路径和多尺度特征融合的酒瓶缺陷检测方法及系统 |
-
2020
- 2020-10-23 CN CN202011145527.5A patent/CN112381763A/zh not_active Withdrawn
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112580639A (zh) * | 2021-03-01 | 2021-03-30 | 四川大学 | 一种基于进化神经网络模型压缩的早期胃癌图像识别方法 |
CN112580639B (zh) * | 2021-03-01 | 2021-08-13 | 四川大学 | 一种基于进化神经网络模型压缩的早期胃癌图像识别方法 |
CN112991330A (zh) * | 2021-04-19 | 2021-06-18 | 征图新视(江苏)科技股份有限公司 | 基于知识蒸馏的正样本工业缺陷检测方法 |
CN113313694A (zh) * | 2021-06-05 | 2021-08-27 | 西北工业大学 | 一种基于轻量型卷积神经网络的表面缺陷快速检测方法 |
CN114419029A (zh) * | 2022-03-11 | 2022-04-29 | 深圳艾灵网络有限公司 | 表面缺陷检测模型的训练方法、表面缺陷检测方法及装置 |
CN114419029B (zh) * | 2022-03-11 | 2022-06-24 | 深圳艾灵网络有限公司 | 表面缺陷检测模型的训练方法、表面缺陷检测方法及装置 |
CN114973156A (zh) * | 2022-08-02 | 2022-08-30 | 松立控股集团股份有限公司 | 一种基于知识蒸馏的夜间渣土车检测方法 |
CN114973156B (zh) * | 2022-08-02 | 2022-10-25 | 松立控股集团股份有限公司 | 一种基于知识蒸馏的夜间渣土车检测方法 |
CN115147418A (zh) * | 2022-09-05 | 2022-10-04 | 东声(苏州)智能科技有限公司 | 缺陷检测模型的压缩训练方法和装置 |
CN115375677A (zh) * | 2022-10-24 | 2022-11-22 | 山东省计算中心(国家超级计算济南中心) | 基于多路径和多尺度特征融合的酒瓶缺陷检测方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112381763A (zh) | 一种表面缺陷检测方法 | |
CN112380921A (zh) | 一种基于车联网的道路检测方法 | |
CN112101190A (zh) | 一种遥感图像分类方法、存储介质及计算设备 | |
CN110598620B (zh) | 基于深度神经网络模型的推荐方法和装置 | |
CN110569814B (zh) | 视频类别识别方法、装置、计算机设备及计算机存储介质 | |
CN111507370A (zh) | 获得自动标注图像中检查标签的样本图像的方法和装置 | |
CN112561910A (zh) | 一种基于多尺度特征融合的工业表面缺陷检测方法 | |
CN111259940A (zh) | 一种基于空间注意力地图的目标检测方法 | |
CN112288700A (zh) | 一种铁轨缺陷检测方法 | |
CN111582401B (zh) | 一种基于双分支卷积神经网络的向日葵种子分选方法 | |
CN112381764A (zh) | 一种农作物病虫害检测方法 | |
CN111860683B (zh) | 一种基于特征融合的目标检测方法 | |
CN112364719A (zh) | 一种遥感图像目标快速检测方法 | |
CN112464718B (zh) | 一种基于YOLO-Terse网络的目标检测方法及存储介质 | |
CN115937655B (zh) | 多阶特征交互的目标检测模型及其构建方法、装置及应用 | |
CN112364721A (zh) | 一种道面异物检测方法 | |
CN115222946B (zh) | 一种单阶段实例图像分割方法、装置以及计算机设备 | |
CN113052834A (zh) | 一种基于卷积神经网络多尺度特征的管道缺陷检测方法 | |
CN114187311A (zh) | 一种图像语义分割方法、装置、设备及存储介质 | |
CN108133235A (zh) | 一种基于神经网络多尺度特征图的行人检测方法 | |
CN110348503A (zh) | 一种基于卷积神经网络的苹果品质检测方法 | |
CN112380918A (zh) | 一种道路车辆状态识别方法、装置、电子设备及存储介质 | |
CN111310820A (zh) | 基于交叉验证深度cnn特征集成的地基气象云图分类方法 | |
CN114511733A (zh) | 基于弱监督学习的细粒度图像识别方法、装置及可读介质 | |
CN114492755A (zh) | 基于知识蒸馏的目标检测模型压缩方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20210219 |