1.本发明涉及电芯缺陷检测技术领域,尤其涉及一种电芯表面缺陷检测方法。
背景技术:2.在新能源电芯工业生产过程中,要确保成品的适当质量,最重要的任务之一是检查产品的表面质量。通常情况下,电芯表面质量控制采用人工目视法,工人接受培训以识别复杂的表面缺陷。或是采用传统机器视觉方案,通常,在传统的机器视觉方法中,功能必须手工制作以适应特定领域,受限于场景,当机器视觉方法适应不同的产品时,这些特性不适合不同的任务,并导致较长的开发周期,所以无法普遍推广使用。深度学习方法近年来成为计算机视觉领域最常见的方法,当应用于表面质量控制问题时,深度学习方法可以取得优异的效果,并适用于不同的产品。
3.因此,亟需一种电芯表面缺陷检测方法。
技术实现要素:4.本发明的目的是提供一种电芯表面缺陷检测方法,以解决上述现有技术中的问题,能够在少量缺陷样本情况下获得较为准确的检测结果。
5.本发明提供了一种电芯表面缺陷检测方法,其中,包括以下步骤:
6.采用高动态范围成像技术对电芯表面图像进行图像预处理;
7.将预处理后的所述电芯表面图像输入双阶段端到端训练网络,得到电芯缺陷检测结果,其中,第一阶段为分割网络,对电芯图像进行像素级分割,第二阶段为分类网络,对像素级分割结果进行分类与决策,所述双阶段端到端训练网络结构将分割损失和分类损失合并为一个统一的且允许同时学习的合并损失。
8.如上所述的电芯表面缺陷检测方法,其中,优选的是,所述采用高动态范围成像技术对电芯表面图像进行图像预处理,具体包括:
9.使用相机采集不同的曝光时间的低动态范围图像;
10.利用每个曝光时间相对应最佳细节的低动态范围图像来合成最终高动态范围图像。
11.如上所述的电芯表面缺陷检测方法,其中,优选的是,在所述第一阶段中,所述分割网络包括11个卷积层和3个最大池化层,其中,每个层将分辨率降低两倍,每个卷积层之后是一个特征归一化层和一个非线性relu层。
12.如上所述的电芯表面缺陷检测方法,其中,优选的是,在所述分割网络中,前九个卷积层包括大小为5
×
5的卷积内核,后两个卷积层分别包括大小为15
×
15和1
×
1的卷积内核,最后的输出掩模是在应用内核为1
×
1的卷积层后获得的;三个所述最大池化层均包括大小为2
×
2的池化核。
13.如上所述的电芯表面缺陷检测方法,其中,优选的是,在所述第二阶段中,所述分割网络的输出作为所述分类网络的输入,将分割网络的最后一个有1024个通道的卷积层的
输出与单个通道分段输出映射连接起来,产生1025个通道。
14.如上所述的电芯表面缺陷检测方法,其中,优选的是,所述分类网络包括3个卷积层和3个最大池化层,1025个通道的组合层作为3个卷积层和3个最大池化层的输入,三个卷积层分别包括大小为5
×
5的卷积内核,第一卷积层有8个通道,第二个卷积层有16个通道,第三卷积层有32个通道,三个所述最大池化层均包括大小为2
×
2的池化核。
15.如上所述的电芯表面缺陷检测方法,其中,优选的是,在所述第二阶段中,对所述分类网络的最后一个卷积层的输出,通过全局最大池化层和全局平均池化层执行全局最大池化和全局平均池化,产生64个输出神经元,所述全局最大池化层和所述全局平均池化层均包括大小为32
×
1的池化核。
16.如上所述的电芯表面缺陷检测方法,其中,优选的是,对所述分割网络的最后一个卷积层的输出,通过全局最大池化层和全局平均池化层执行全局最大池化和全局平均池化,产生两个输出神经元,所述全局最大池化层和所述全局平均池化层均包括大小为1
×
1的池化核。
17.如上所述的电芯表面缺陷检测方法,其中,优选的是,在所述分类网络中,通过全连接层将对所述分割网络的最后一个卷积层的输出执行全局最大池化和全局平均池化得到的两个输出神经元与对所述分类网络的最后一个卷积层的输出执行全局最大和平均池化所产生的64个输出神经元连接起来,连接得到的66个神经元输入到输出层,得到电芯缺陷检测结果。
18.如上所述的电芯表面缺陷检测方法,其中,优选的是,通过以下公式计算合并损失:
19.l
total
=λ
·
l
seg
+δ
·
(1-λ)
·
l
cls
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
20.其中,l
seg
表示分割损失,l
cls
表示分类损失,δ表防止分类损失主导总损失的额外分类损失权重,λ表示平衡每个网络在最终损失中的贡献的混合因子。
21.本发明的电芯表面缺陷检测方法,在数据预处理阶段采用高动态范围图像作为输入图像,并将其作为深度学习的预处理,采用高动态范围技术与深度学习相结合,解决了电芯高反光的金属表面导致难以获得细节丰富的表面图像问题;相较于传统深度学习算法所需庞大数据集,本发明采用的双阶段网络结构将分割损失和分类损失合并为一个统一的损失,并允许同时学习,阶段一对电芯图像进行像素级分割,阶段二对分割结果进行分类与决策,相较于传统分割网络,更容易捕获小的图像细节以及在少量缺陷样本下仅使用适当数量的训练图像获得较为准确的检测结果,只需25-30张电芯图像即可进行训练,并且能够检测出较为准确的缺陷类别,从而找到一种提高灵活性的解决方案,快速适应新类型的产品和表面缺陷检测。
附图说明
22.为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步描述,其中:
23.图1为本发明提供的电芯表面缺陷检测方法的实施例的流程图;
24.图2为本发明提供的双阶段端到端训练网络结构。
具体实施方式
25.现在将参照附图来详细描述本公开的各种示例性实施例。对示例性实施例的描述仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。本公开可以以许多不同的形式实现,不限于这里所述的实施例。提供这些实施例是为了使本公开透彻且完整,并且向本领域技术人员充分表达本公开的范围。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、材料的组分、数字表达式和数值应被解释为仅仅是示例性的,而不是作为限制。
26.本公开中使用的“第一”、“第二”:以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的部分。“包括”或者“包含”等类似的词语意指在该词前的要素涵盖在该词后列举的要素,并不排除也涵盖其他要素的可能。“上”、“下”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
27.在本公开中,当描述到特定部件位于第一部件和第二部件之间时,在该特定部件与第一部件或第二部件之间可以存在居间部件,也可以不存在居间部件。当描述到特定部件连接其它部件时,该特定部件可以与所述其它部件直接连接而不具有居间部件,也可以不与所述其它部件直接连接而具有居间部件。
28.本公开使用的所有术语(包括技术术语或者科学术语)与本公开所属领域的普通技术人员理解的含义相同,除非另外特别定义。还应当理解,在诸如通用字典中定义的术语应当被解释为具有与它们在相关技术的上下文中的含义相一致的含义,而不应用理想化或极度形式化的意义来解释,除非这里明确地这样定义。
29.对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,技术、方法和设备应当被视为说明书的一部分。
30.目前,在深度学习的缺陷检测领域,利用深度去噪编码器,基于其重建误差来检测绝缘子图像中的缺陷的方法被提出,其重建损失采用l2损失。基于无监督多尺度特征聚类的全卷积自动编码器(multi-scale feature-clustering-based fully convolutional autoencoder,ms-fcae)方法被提出,该方法利用处于不同比例等级的多个fcae子网来重建若干纹理背景图像。为了最大程度地提高效率和编码特征图的判别能力,每个fcae子网采用全卷积神经网络和特征聚类方法,所提出的msfcae方法在多个纹理表面检测数据集上进行了评估,缺陷检测精度达到92.0%。使用卷积自动编码器(convolutional autoencoder,cae)用于图像重建的方法被提出,通过锐化处理重建误差获取最终的热轧带钢表面缺陷分割结果,其重建误差采用mse。利用gan和cae实现表面缺陷图像的重建的方法被提出,该方法将输入图像和重建图像输入到lbp算法处理后再做差。
31.现有的使用深度学习进行缺陷检测的方法中,最先进的图像分割模型是编码器体系结构的变体,如u-net和全卷积网络(fcn)。这些用于分割的网络有一个关键的相似性,结构上采用先编码再解码的结构,这种先进行下采样再上采样的结构可以有效获得图像的细节,然而在电芯表面缺陷的检测中,缺陷样本少导致无法获得较为准确的训练结果,而且电芯的金属表面反光问题使得所以传统的网络结构无法满足工业上的需求。
32.如图1和图2所示,本实施例提供的电芯表面缺陷检测方法在实际执行过程中,具体包括如下步骤:
33.步骤s1、采用高动态范围成像技术对电芯表面图像进行图像预处理。
34.电芯的金属表面由于其光滑类镜面的特性,因此存在成像困难以及缺陷目标小的问题,本发明采用高动态范围(high-dynamic range,hdr)成像技术进行图像预处理,可以实现在高反光表面下获得图像细节丰富的电芯表面图像;与普通的图像相比,高动态范围图像技术可以提供更多的动态范围和图像细节。在本发明的电芯表面缺陷检测方法的一种实施方式中,所述步骤s1具体可以包括:
35.步骤s11、使用相机采集不同的曝光时间的低动态范围图像。
36.步骤s12、利用每个曝光时间相对应最佳细节的低动态范围图像来合成最终高动态范围图像。
37.步骤s2、将预处理后的所述电芯表面图像输入双阶段端到端训练网络,得到电芯缺陷检测结果,其中,第一阶段为分割网络,对电芯图像进行像素级分割,第二阶段为分类网络,对像素级分割结果进行分类与决策,所述双阶段端到端训练网络结构将分割损失和分类损失合并为一个统一的且允许同时学习的合并损失。
38.如图2所示,本发明的网络结构部分分为两个阶段,第一阶段是一个分割网络,对电芯表面缺陷进行像素级定位,通过像素级损失训练该网络,有效地将每个像素视为单个训练样本,从而增加训练样本的有效数量并防止过度拟合。第二阶段是一个决策网络,执行二值图像分类,包括一个附加网络,该网络建立在分割网络之上,并使用分割输出和分割网络的特征。
39.其中,如图2所示,在所述第一阶段中,所述分割网络包括11个卷积层和3个最大池化层,其中,每个层将分辨率降低两倍,每个卷积层之后是一个特征归一化层和一个非线性relu层,这两个层都有助于提高学习过程中的收敛速度,特征归一化将每个通道归一化为具有单位方差的零均值分布。具体而言,在所述分割网络中,前九个卷积层包括大小为5
×
5的卷积内核,后两个卷积层分别包括大小为15
×
15和1
×
1的卷积内核,如图2所示,不同数量的信道被分配给不同的层。最后的输出掩模是在应用内核为1
×
1的卷积层后获得的;三个所述最大池化层均包括大小为2
×
2的池化核。通过卷积层减少了输出通道的数量,这导致单通道输出贴图的分辨率比输入图像降低了8(如前所述,每个层将分辨率降低两倍,对应于三个最大池化层,即为23=8)倍。
40.进一步地,在所述第二阶段中,所述分割网络的输出作为所述分类网络的输入,将分割网络的最后一个有1024个通道的卷积层的输出与单个通道分段输出映射连接起来,产生1025个通道。具体而言,所述分类网络包括3个卷积层和3个最大池化层,1025个通道的组合层作为3个卷积层和3个最大池化层的输入,三个卷积层分别包括大小为5
×
5的卷积内核,第一卷积层有8个通道,第二个卷积层有16个通道,第三卷积层有32个通道,三个所述最大池化层均包括大小为2
×
2的池化核。
41.在所述第二阶段中,对所述分类网络的最后一个卷积层的输出,通过全局最大池化层和全局平均池化层执行全局最大池化和全局平均池化,产生64个输出神经元,所述全局最大池化层和所述全局平均池化层均包括大小为32
×
1的池化核。
42.更进一步地,对所述分割网络的最后一个卷积层的输出,通过全局最大池化层和全局平均池化层执行全局最大池化和全局平均池化,产生两个输出神经元,所述全局最大池化层和所述全局平均池化层均包括大小为1
×
1的池化核。
43.在所述分类网络中,通过全连接层将对所述分割网络的最后一个卷积层的输出执
行全局最大池化和全局平均池化得到的两个输出神经元与对所述分类网络的最后一个卷积层的输出执行全局最大和平均池化所产生的64个输出神经元连接起来,连接得到的66个神经元输入到输出层,得到电芯缺陷检测结果。
44.综上所述,在本发明中,分类网络的体系结构使用分割网络的输出作为分类网络的输入。该网络将分割网络的最后一个卷积层(1024个通道)的输出与单个通道分段输出映射连接起来。这将产生1025个通道卷,代表剩余层(最大池层和5
×
5内核大小的卷积层)的输入。两层的组合重复3次,第一卷积层、第二卷积层和第三卷积层中分别有8、16和32个通道。选择的通道数量随着特征分辨率的降低而增加,因此每个层的计算要求相同。本发明的这种结构设计有效地使最后一个卷积层的分辨率比原始图像的分辨率低64倍。最后,网络执行全局最大和平均池化,产生64个输出神经元。此外,分割输出图上的全局最大值和平均值池化的结果被连接为两个输出神经元,以便为分割图已经确保完美检测的情况提供捷径。最后,将这些神经元与线性权值组合成最终的输出。
45.在本发明中,将分割损失和分类损失合并为一个统一的损失,同时允许同时学习,这样可以实现端到端学习。更进一步地,通过以下公式计算合并损失:
46.l
total
=λ
·
l
seg
+δ
·
(1-λ)
·
l
cls
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
47.其中,l
seg
表示分割损失,l
cls
表示分类损失,δ表防止分类损失主导总损失的额外分类损失权重,λ表示平衡每个网络在最终损失中的贡献的混合因子。λ和δ并不能取代sgd中的学习率η,而是对其进行补充。通过λ和δ可以充分控制学习过程,因为损失的规模可能不同。分割损失是所有像素的平均值,更重要的是,只有少数像素是异常的,这导致与分类损失相比,分割损失的值相对较小,因此本发明在具体实现中,通常使用较小的δ值来防止分类损失主导总损失。
48.由于卷积层中的权重共享提供了充分的正则化,因此在本发明中不使用“退出”策略。本发明提出的分割网络的设计重点是在大分辨率图像中检测小的表面缺陷。为了实现这一点,网络的设计有两个重要的要求:(a)在高分辨率图像中需要一个大的接收野大小;(b)需要捕获小的特征细节。这导致本发明的架构发生了几次重大变化。首先,一个额外的下采样层和更高层的大内核大小被用来显著增加感受野的大小。其次,每次向下采样之间的层数被更改为在架构的较低部分具有较少的层,而在较高部分具有较多的层,这增加了具有大接收野的功能的容量。最后,使用最大池而不是大跨步卷积实现下采样。这确保了小而重要的细节在下采样过程中幸存下来,这在具有额外下采样层的网络中尤为重要。
49.本发明实施例提供的电芯表面缺陷检测方法,在数据预处理阶段采用高动态范围图像作为输入图像,并将其作为深度学习的预处理,采用高动态范围技术与深度学习相结合,解决了电芯高反光的金属表面导致难以获得细节丰富的表面图像问题;相较于传统深度学习算法所需庞大数据集,本发明采用的双阶段网络结构将分割损失和分类损失合并为一个统一的损失,并允许同时学习,阶段一对电芯图像进行像素级分割,阶段二对分割结果进行分类与决策,相较于传统分割网络,更容易捕获小的图像细节以及在少量缺陷样本下仅使用适当数量的训练图像获得较为准确的检测结果,只需25-30张电芯图像即可进行训练,并且能够检测出较为准确的缺陷类别,从而找到一种提高灵活性的解决方案,快速适应新类型的产品和表面缺陷检测。
50.至此,已经详细描述了本公开的各实施例。为了避免遮蔽本公开的构思,没有描述
本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。
51.虽然已经通过示例对本公开的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本公开的范围。本领域的技术人员应该理解,可在不脱离本公开的范围和精神的情况下,对以上实施例进行修改或者对部分技术特征进行等同替换。本公开的范围由所附权利要求来限定。