一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于TensorRT加速推理的芯片缺陷检测方法及系统

2022-12-02 23:41:34 来源:中国专利 TAG:

一种基于tensorrt加速推理的芯片缺陷检测方法及系统
技术领域
1.本发明属于芯片缺陷检测技术领域,具体涉及一种基于tensorrt加速推理的芯片缺陷检测方法及系统。


背景技术:

2.近年来,随着我国经济增长以及人工智能化时代的到来,各行各业都加入数字化转型的队伍,电子设备已逐渐成为人们工作生活中不可缺少的部分,由于芯片属于各电子设备正常运行的核心,芯片的需求量也在不断攀升,一旦芯片出现质量问题,将带来巨大损失,所以供应厂商对芯片质检的把控不容忽视。目标检测技术是近年来计算机视觉领域的研究热点,随着深度学习技术的快速发展,目标检测取得了巨大进展,该项技术借助卷积神经网络,利用已经标注好的数据集对网络参数进行训练,自动提取目标中的潜在特征,最终完成目标的分类与定位。
3.由于近年来产业智能化转型,目标检测技术将广泛应用于产线质检,从最初耗时耗力的人工质检,到如今使用aoi设备代替人工,提高了机械化水平。但是aoi设备的检测算法标准过于单一,效率低下,准确率也存在一定问题,并且不同批次有不同的合格标准,泛化性极差,并未最大化提高人工复查效率。于是将深度学习与目标检测技术相结合。然后应用于芯片质检的方案,能够大大提高产线质检效率与产品的生产质量。
4.目前,基于深度学习的目标检测算法主要分为单阶段检测算法和双阶段检测算法。其中,单阶段检测算法主要有yolo、ssd等,之所以称为单阶段检测算法,是因为该类算法在训练过程中,生成预测框的同时,进行分类与回归操作;双阶段检测方法主要有rcnn系列等,该类方法首先通过rpn网络产生的一系列感兴趣区域,然后将这些感兴趣区域送入卷积神经网络进行分类与回归操作。
5.在基于深度学习的目标检测技术发展的同时,量化技术也逐渐成熟,量化是将训练好的模型转为低精度表示与计算。常用的软件工具就包括nvidia的tensorrt,tensorrt是一种深度学习推理引擎,是一套从模型获得,到模型优化与编译,再到模型部署的完整工具。tensorrt支持当前常用的pytorch、tensorflow、caffe等主流框架。
6.由于芯片需求量与日俱增,质量要求更不容忽视,所以工业产线质检对检测速度、精度要求更高,所以,发明一种能在保证检测速度的同时兼顾检测精度的芯片缺陷检测方法是有待解决的问题。


技术实现要素:

7.针对现有技术存在的不足,本发明提出了一种基于tensorrt加速推理的芯片缺陷检测方法及系统,该方法包括:
8.s1:获取芯片图像数据集并对其进行预处理,得到处理好的芯片图像数据集;
9.s2:使用芯片图像数据集对改进yolov5模型进行训练,得到多个目标检测模型;
10.s3:将所有目标检测模型转换成tensorrt模型并将tensorrt模型拼接;
11.s4:获取待检测芯片图像,采用拼接后的tensorrt模型对待检测芯片图像进行处理,得到推理结果;
12.s5:对推理结果进行降维处理;采用改进nms算法对降维处理后的推理结果进行去冗余处理,得到待检测芯片的缺陷检测结果。
13.优选的,对改进yolov5模型进行训练的过程包括:改进yolov5模型包括backbone网络、neck网络和head网络;
14.backbone网络中采用形变卷积提取特征,采用backbone网络对芯片图像进行处理,得到不同尺寸的特征图;
15.neck网络融合不同尺寸的特征图,得到融合特征图;
16.head网络对融合特征图进行处理,得到预测结果;
17.采用总损失函数对改进yolov5模型的参数进行调整,得到训练好的改进yolov5模型。
18.进一步的,采用形变卷积提取特征的公式为:
[0019][0020]
其中,y(p0)表示位置点p0在输出特征图上的位置,w(pn)表示位置点pn的权重,r表示规则网格,δpn表示偏移量,ωn表示偏移量δpn的权重,x()表示点在输入特征图上的位置。
[0021]
进一步的,总损失函数为:
[0022]
loss=w1·
loss
cls
w2·
loss
reg
w3·
loss
obj
[0023]
其中,loss
cls
表示分类损失,loss
reg
表示定位损失,loss
obj
表示置信度损失,w1、w2、w3分别对应三种损失的权重。
[0024]
进一步的,分类损失为:
[0025][0026][0027]
其中,n表示样本的总数量,x表示样本,y
gt
表示标签,y
p
表示预测输出,x表示样本;ω1表示第一调节权重,ω2表示第二调节权重,sample()表示求和。
[0028]
优选的,对推理结果进行降维处理的公式为:
[0029]
length=box
num
*box
pram_num
*memory_size 1
[0030]
其中,length表示降维后存储推理结果的数组长度,box
num
表示预测框的数量,box
pram_num
表示预测框中参数的数量,memory_size表示数据类型占内存的大小。
[0031]
优选的,推理结果包括多个预测框信息,预测框信息包括预测框的坐标、长度、宽度和置信度。
[0032]
优选的,采用改进nms算法对降维处理后的推理结果进行去冗余处理的过程包括:
[0033]
设置交叠率阈值,计算最大置信度的预测框与其他预测框的交叠率,去除其他框中交叠率大于交叠率阈值的预测框;
[0034]
设置小目标、中目标和大目标的尺寸范围;将芯片图像数据集中的缺陷根据其最
长边长划分为小目标、中目标和大目标;分别取落在三种目标下的所有缺陷的最小边尺寸作为小目标阈值尺寸、中目标阈值尺寸和大目标阈值尺寸;
[0035]
选取余下预测框中置信度最高的预测框,将预测框的最小边与最接近最小边的阈值尺寸作比较,若最小边小于该阈值尺寸,则将预测框的最小边扩展到该阈值尺寸;
[0036]
计算扩展尺寸后的预测框与余下预测框的交叠率,若交叠率大于交叠率阈值,则去除余下预测框中交叠率大于交叠率阈值的预测框。
[0037]
一种基于tensorrt加速推理的芯片缺陷检测系统,包括:图像处理模块、目标检测模块、推理结果再处理模块和检测结果显示模块;
[0038]
所述图像处理模块用于对待检测芯片图像进行预处理;
[0039]
所述目标检测模块用于对预处理后的待检测芯片图像进行缺陷检测,得到推理结果;
[0040]
所述推理结果再处理模块用于对推理结果进行再处理,去除冗余预测框,得到缺陷检测结果;
[0041]
所述检测结果显示模块根据芯片合格标准分析缺陷检测结果并输出分析结果。
[0042]
本发明的有益效果为:本发明将普通卷积变成形变卷积增强网络提取特征的能力,将pytorch框架下的.pt格式的目标检测模型转换成.engine格式的tensorrt模型,加快了检测速度;利用多个.engine模型推理检测,提高了检测精度;本发明结合深度学习、目标检测技术与加速推理框架,实时精准检测芯片缺陷,从根本上解决现有设备质检速度与精度上的不足,检测效率更高、速度更快,节约了人力成本,实用性高。
附图说明
[0043]
图1为本发明中基于tensorrt加速推理的芯片缺陷检测方法流程图。
具体实施方式
[0044]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0045]
本发明提出了一种基于tensorrt加速推理的芯片缺陷检测方法及系统,如图1所示,所述方法包括以下内容:
[0046]
s1:获取芯片图像数据集并对其进行预处理,得到处理好的芯片图像数据集。
[0047]
可从生产线上拍摄获得芯片图像,使用标注工具对图像中的缺陷目标进行标注,以voc格式制作数据集,然后将数据集按照比例划分为训练集和测试集,对训练集图像数据进行预处理,将图像缩放至适合网络结构的尺寸,得到芯片图像数据集,数据集中的芯片图像长、宽均相同。
[0048]
s2:使用芯片图像数据集对改进yolov5模型进行训练,得到多个目标检测模型。
[0049]
传统的yolov5模型是ultralytics公司于2020年6月9日公开发布的基于yolov3模型基础上改进而来;本发明对传统yolov5模型进行改进,改进的yolov5模型包括backbone网络(骨干网络,用于特征提取)、neck网络(颈部,用于连接backbone和head)和head网络
(头部,做最后的输出预测);首先,将预处理后得到的芯片图像数据集输入到backbone提取特征,backbone通过对处理后的图像进行卷积池化操作提取到不同尺度的特征图,再将得到的不同尺度的特征图输入到neck部分进行特征融合,最后将融合后的特征输入到head部分做分类和边界框回归处理得到预测框。其中backbone网络中采用形变卷积提取特征;具体的,本发明将backbone网络部分最后3层的3*3普通卷积改为形变卷积来提取特征。形变卷积是基于用额外的偏移量来增加模块中的空间采样位置,并从目标任务中学习偏移量,而不需要额外的监督。在标准卷积中的常规网格采样位置添加二维偏移量,可使采样网络能够形成自由形式的变形,偏移量是通过额外的卷积层从前面的特征图中学习到的。因此,变形是以局部、密集和自适应的方式影响输入特征的。
[0050]
在输入特征图x即芯片图像数据上使用规则网格r进行采样,网格r定义了接受场的大小和扩张:
[0051]
r={(-1,-1),(-1,0),......,(0,1),(1,1)}
[0052]
对于形变卷积的输出映射y上的位置,有:
[0053][0054]
其中,y(p0)表示位置点p0在输出特征图的位置,x()表示某点在输入特征图上的初始位置;pn表示r中的第n个位置,pn枚举了r中的位置;w(pn)表示pn中第n个位置的权重,x(p0 pn)表示输入特征图上p0关于接受场r中各点的位置,在可变形卷积中,规则网格r增加了偏移量{δpn|n=1,2,...,n},其中n=|r|,偏移量的计算在格外的卷积层进行,对原图使用普通卷积核得到2n个偏移量,即x方向和y方向各有n个,在使用形变卷积的前一层卷积网络新增一个专门用于计算偏移量的卷积层,针对两个方向分别对应两个卷积层进行计算,得到δpn=p(δxn,δyn),上式变为:
[0055][0056]
采样是在不规则和偏移位置pn δpn上,由于偏移量常是小数,所以采用双线性插值将偏移量分解为x,y方向上的整数:
[0057][0058]
其中,p表示一个任意位置,q枚举了特征图x的所有积分空间位置,g()是双线性插值核,g是一个二维的,它被分成两个一维的内核。
[0059]
g(p,q)=g(q
x
,p
x
)
·
g(qy,py)
[0060]
g(a,b)=max(0,1-|a-b|)
[0061]
由于g(q,p)只对几个q是非零的,x(p)的计算非常快。
[0062]
偏移量是在相同的输入特征映射上应用一个卷积层来获得的,卷积核与当前卷积层具有相同的空间分辨率和扩展度。输出偏移字段与输入特征映射具有相同的空间分辨率,在训练过程中,同时学习生成输出特征的卷积核和偏移量。为每一个偏移量引入一个权重参数,在提取特征时,根据提取到的roi(region of interest,感兴趣区域)与真实框对比,以该roi可代表真实框的概率值作为δpn的权重系数ωn,所以计算卷积后的特征映射的
表达式变为:
[0063][0064]
芯片图像经过backbone网络处理后,得到不同尺寸的特征图;neck网络将不同尺寸的特征图进行融合,从而得到既包含丰富的位置信息又包含丰富的语义信息的融合特征图。
[0065]
head网络对融合特征图进行处理,得到预测结果;预测结果为多个预测框信息,包括预测框的坐标、长度、宽度和置信度。在该部分中,采用总损失函数对改进yolov5模型的参数进行调整;总损失函数分为三部分,分别是:用于计算锚框与对应的真实框分类是否正确的分类损失、计算预测框与真实框之间的误差的定位损失、用于计算网络的置信度的置信度损失;分类损失和置信度损失使用交叉熵损失函数计算,定位损失使用iou(intersection over union,交并比)损失函数计算;通过损失函数得到损失值,然后通过反向传播对模型参数进行更新,可得到训练好的改进yolov5模型即目标检测模型,采用不同的训练数据可得到多个不同的目标检测模型。本发明对分类损失和置信度损失进行改进,改进后的分类损失为:
[0066][0067][0068][0069]
其中,loss
cls
表示分类损失,loss
obj
表示置信度损失,n表示样本的总数量,x表示样本,一个样本即一个输入;y
gt
表示标签,y
p
表示预测输出,qo表示预测输出的置信度分数,p
iou
表示预测框与对应的目标框的iou(交叠率)值;ω1为第一调节权重,ω2为第二调节权重,ω1,ω2均用于调节正负样本的权重,正样本表示识别为缺陷的预测框,负样本表示识别为非缺陷的预测框;用于调和正负样本之间的平衡,其中,sample()表示求和,sample(y
p
)表示对所有预测输出y
p
求和。
[0070]
定位损失为:
[0071]
loss
reg
=1-iou
[0072]
其中,iou表示两个预测框的交并比,即两个预测框的交集面积与两个预测框的并集面积的比值。
[0073]
总损失函数为:
[0074]
[0075]
原交叉熵损失函数是平等对待正负样本的,当正负样本有不均衡的情况时,比如负样本小于正样本时,正样本总的损失会远大于负样本总的损失,这样模型的学习会逐渐偏向正样本,而不会考虑负样本的影响。本发明通过改进损失函数,添加权重参数用于调整调和正负样本的不均衡,ω1随(1-a)的变化趋势变化,ω2随a的变化趋势变化(a表示预测标签或者预测输出的置信度分数),比如,当输出是正样本,并且a的值较大,说明是一个易分的正样本,此时由于ω1随(1-a)的趋势,所以正样本的易分样本损失就会被减小,从而抑制正样本数量;进而使得模型的预测结果更加精确。
[0076]
s3:将所有目标检测模型转换成tensorrt模型并将tensorrt模型拼接。
[0077]
将.pt格式的目标检测模型转换成.engine格式的tensorrt模型,在转换期间将会完成优化过程中的层间融合和精度校准。层间融合阶段中,pytorch框架下的每一层张量作为输入,将层与层之间进行横向或者纵向合并,横向合并将卷积、偏置和激活函数合并为一个cbr结构,只占用一个cuda核心;纵向合并能将结构相同、权值不同的层合并为一个更宽的层,也只占用一个cuda核心。层间融合将使层的数量减少,因为在模型推理时每一层的计算操作实际上都是gpu通过调用不同的cuda核心完成计算,虽然cuda计算张量的速度很快,但是时间会浪费在cuda核心的启动与对每一层张量的读写操作上,将会造成空间不足,所以需要使用层间融合提升计算速度;精度校准过程由tensor rt内部自动完成,该过程中,很多框架使用的张量都是32位精度的浮点数,等到网络训练完成之后,在推理过程中是没有反向传播的过程的,所以本发明将精度设为16位,将张量精度降低,占用内存更少,轻量化模型。
[0078]
由步骤s2中训练得到多个目标检测模型均转换为tensorrt模型后,将多个tensorrt模型拼接,具体的,
[0079]
1.依次读取不同的.engine文件,并将其反序列化;
[0080]
2.创建二维engine对象,然后依次反序列化后的文件存入二维engine对象,加载单模型时,采用的数据结构为一维指针,将此处改为以二维动态数组的形式存储,实现模型拼接;
[0081]
3.创建context,为模型的输入创建接口;
[0082]
4.创建buffer,在gpu上为待检测数据的输入输出开辟缓存空间;
[0083]
s4:获取待检测芯片图像,采用拼接后的tensorrt模型对待检测芯片图像进行处理,得到推理结果。
[0084]
待检测芯片输入到拼接后的tensorrt模型中进行处理,输出推理结果;推理结果包括多个预测框信息,预测框信息包括预测框的坐标、长度、宽度和置信度。
[0085]
使用二维数组对推理结果进行存储。将推理结果展开,计算每个tensorrt模型对应推理结果的数量,并在之后串联下一模型的推理结果。
[0086]
s5:对推理结果进行降维处理;采用改进nms算法对降维处理后的推理结果进行去冗余处理,得到待检测芯片的缺陷检测结果。
[0087]
对推理结果进行再处理,去除冗余框。首先,对推理结果进行降维处理,具体的,对推理结果进行降维处理的公式为:
[0088]
length=box
num
*box
pram_num
*memory_size 1
[0089]
其中,length表示降维后存储推理结果的数组长度,box
num
表示预测框的数量,
box
pram_num
表示预测框中参数的数量,memory_size表示数据类型占内存的大小。
[0090]
将降维之后的一维数组传入nms(non-maximum suppression,非极大值抑制)算法中,此时在nms算法中,需要重新计算数组长度,原有技术因为是单模型推理,指定了推理后输出的长度,数组中包括一些没有存储推理结果的内存,造成推理时间长、空间浪费;而本发明由于使用多个模型推理,存储结构发生改变,进行了模型拼接及维度展开等操作,在进行nms操作时,只根据现有检测结果做计算,避免空间浪费,节约时间成本。
[0091]
具体的,采用改进nms算法对降维处理后的推理结果进行进一步处理的过程包括:
[0092]
设置交叠率阈值,计算最大置信度的预测框与其他预测框的交叠率iou即两个预测框的交集与并集的比值,然后去除其他框中交叠率大于交叠率阈值的预测框;
[0093]
设置小目标、中目标和大目标的尺寸范围;将芯片图像数据集中的缺陷根据其最长边长划分为小目标、中目标和大目标;分别取落在三种目标下的所有缺陷的最小边尺寸作为小目标阈值尺寸、中目标阈值尺寸和大目标阈值尺寸;
[0094]
选取余下预测框中置信度最高的预测框,将预测框的最小边与最接近最小边的阈值尺寸作比较,若最小边小于该阈值尺寸,则将预测框的最小边扩展到该阈值尺寸;
[0095]
计算扩展尺寸后的预测框与余下预测框的交叠率,若交叠率大于交叠率阈值,则去除余下预测框中交叠率大于交叠率阈值的预测框。
[0096]
传统的nms算法处理之后,当前设置iou阈值不能更多地去除冗余框,针对该情况,本发明使用改进nms算法改变预测框的尺寸,再次计算iou就能够去除传统算法中因为iou值略低于设置的阈值而被保留的框,从而去除更多的冗余框。经过改进nms算法处理后,得到待检测芯片的缺陷检测结果;根据芯片合格标准分析待检测芯片的缺陷检测结果,得到分析结果即某芯片是否有缺陷,缺陷的大小和位置,芯片是否合格等结果。
[0097]
本发明还提出了一种基于tensorrt加速推理的芯片缺陷检测系统,该系统用于执行上述基于tensorrt加速推理的芯片缺陷检测方法,包括:图像处理模块、目标检测模块、推理结果再处理模块和检测结果显示模块;
[0098]
所述图像处理模块用于对待检测芯片图像进行预处理;
[0099]
所述目标检测模块用于对预处理后的待检测芯片图像进行缺陷检测,得到推理结果;
[0100]
所述推理结果再处理模块用于对推理结果进行再处理,去除冗余预测框,得到缺陷检测结果;
[0101]
所述检测结果显示模块根据芯片合格标准分析缺陷检测结果并输出分析结果。
[0102]
该系统执行基于tensorrt加速推理的芯片缺陷检测方法的过程与上述基于tensorrt加速推理的芯片缺陷检测方法实现过程类似,此处不再赘述。
[0103]
以上所举实施例,对本发明的目的、技术方案和优点进行了进一步的详细说明,所应理解的是,以上所举实施例仅为本发明的优选实施方式而已,并不用以限制本发明,凡在本发明的精神和原则之内对本发明所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献