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

一种弱对比场景下的矿石目标检测方法

2022-12-13 22:12:10 来源:中国专利 TAG:


1.本发明涉及深度学习目标检测领域,尤其涉及一种弱对比场景下的矿石目标检测方法。


背景技术:

2.矿产资源是不可再生的自然资源,对矿石资源的充分利用极为重要。金属矿石的初期处理主要包含三个步骤:爆破、破碎、研磨。
3.对上述过程,通常金属矿石的采掘以爆破形式进行,矿石在爆破后的矿石大小是不均匀的,这些大小不同的矿石经过传送带运输到破碎机时,其中较小的矿石可以使用破碎机处理,而对于较大粒度的矿石,破碎机无法处理,进而会损伤破碎机机体,最终造成大量的经济损失。然而大粒度矿石的筛选一般依靠人工筛选,存在的问题如下:(1)安全问题,在提升井皮带机处,环境恶劣,粉尘和噪声严重,长时间在该环境下会对工人身体造成严重损伤;(2)人的眼睛长时间工作会出现视觉疲劳,容易出现漏检情况,导致损伤破碎机机体。
4.因此,实现矿石粒度检测的自动化既可以让工人远离恶劣的工作环境又可以提高生产效率,对于矿石生产具有重大意义。而工人的安全问题和损伤破碎机机体问题可以用计算机视觉配合机械臂解决。解决方法如下:(1)检测出是否有大粒度矿石;(2)定位矿石所在位置;(3)使用机械臂去除矿石。
5.对于上述过程而言,前两点是关键。然而,基于机器视觉的方法如分水岭算法可以做到(1),但无法做到(2)。使用深度学习的方法如使用u-net或改进的u-net网络进行分割可以做到(1)和(2)两点,但是对于本任务而言,不需要像素级的分割,这样会降低检测速度并且浪费算力。
6.由于大粒度矿石目标与小粒度矿石场景之间弱区分的特点,导致现有目标检测模型泛化能力较弱,容易造成矿石漏检。针对此问题,需要提出一种面向弱对比场景的模型,由于弱对比场景的特殊性,标注的时候只标注大目标。而在检测的过程中检测到大目标的同时未标注的小目标也会被检测到,会导致检测时的map较低,为了更好地反映检测效果,提出rap评价指标。
7.本文对大粒度矿石只进行检测不做分割操作,一方面可以提高检测速度,另一方面可以快速进行定位,方便使用机械臂自动去除大块矿石。


技术实现要素:

8.针对现有技术不足,本发明提供一种弱对比场景下的矿石目标检测方法,设计一种针对弱对比场景下矿石的检测,可以对大粒度矿石只进行检测不做分割操作,可以提高检测速度,同时快速进行定位,方便使用机械臂自动去除大块矿石。
9.为实现以上目的,本发明的技术方案通过以下技术方案予以实现:
10.一种弱对比场景下的矿石目标检测方法,具体步骤如下:
[0011]ⅰ、确定场景阶段:确定所检测的场景是弱对比场景,矿石检测场景即为弱对比场
景;
[0012]ⅱ、数据获取与预处理阶段:使用工业相机获取弱对比场景下的矿石图片数据;对图像数据进行标注,删除或修改异常标注数据;将标注数据分为训练集和验证集,对图像进行数据增强;
[0013]ⅲ、创建网络阶段:将yolov5的backbone中的cbs模块替换为cba模块,提高特征提取能力;将yolov5中的res_unit模块替换为res_iaff模块,提高网络特征融合能力;
[0014]ⅳ、验证阶段:使用训练完成的改进yolov5网络模型进行验证,保留在验证集上效果最好的网络;
[0015]

、泛化能力对比阶段:使用改进yolov5模型对验证集进行推理,推理的结果作为测试集,并计算其他网络在该测试集的rap,rap的大小可以体现网络泛化能力的差异,
[0016]
优选的,需要检测的目标与场景之可以是不同类别且容易进行区分,称之为强对比场景;对于目标与场景之间很相似的检测任务,检测的是同一类别的物体且不容易进行区分,检测的不同目标之间仅仅是大小有区别,称之为弱对比场景,其中矿石目标检测场景是弱对比场景。
[0017]
优选的,所述数据获取与预处理阶段包括以下步骤:
[0018]

使用工业相机获取弱对比场景下的视频流数据,从视频流中提取矿石图片数据;
[0019]

由于弱对比场景的特殊性,即大粒度矿石目标与小粒度矿石场景之间难以区分的特点,使用labelme软件只对大块的矿石(像素面积大于96
×
96)进行标注;
[0020]

删除或修改不符合标注要求的数据,如标注目标的像素面积小于(96
×
96),应该标注为多个矿石,而标注为一个矿石的;最后将数据集按约8:2的比例分为训练集和验证集;
[0021]

对训练集的矿石图像进行数据增强,包括随机缩放,概率为0.5,随机翻转,概率为0.5,mosaic增强,概率为1,hsv色彩空间转换。
[0022]
优选的,所述创建网络阶段包括以下步骤:
[0023]

为加强弱对比场景下模型的特征提取能力,替换cbs(conv bn silu)模块中的silu激活函数为meta-acon激活函数,生成cba(conv bn meta-acon)模块,meta-acon激活函数在acon-c上生成,acon-c函数如式(1)所示:
[0024]facon-c
(x)=(p
1-p2)x
·
σ[β(p
1-p2)x] p2x
ꢀꢀ
(1)
[0025]
其中p1,p2为超参数,是sigmoid函数,初始值β=p1=1,p2=0.β可以使得acon-c函数能够在是否激活中切换,例如:当β

∞,f
acon-c
(x)

max(p1x,p2x);当β

0,f
acon-c
(x)

mean(p1x,p2x),对于输入x),对于输入β=g(x),此时生成函数g(x)中提供了一个设计空间,这便是meta-acon,β可用公式(2)表示:
[0026][0027]

将yolov5的backbone中的cbs模块替换为cba模块,用来学习是否激活相应特征,与现有技术相比有着更强的特征提取能力。
[0028]

弱对比场景下,为了有效融合物体特征,提出res_iaff模块,为进行多尺度注意力融合,l(x)和g(x)如式(3)和(4)所示:
[0029]
l(x)=b(pwconv2(δ(b(pwconv1(x)))))
ꢀꢀ
(3)
[0030]
g(x)=b(pwconv2(δ(b(pwconv1(g(x))))))
ꢀꢀ
(4)
[0031]
其中x∈rc×h×w是有c个通道,大小为h
×
w的特征图,g(x)表示对特征图x进行全局平均池化,以获取全局的特征,pwconv代表的是逐点(point wise)卷积。b代表的是批正则化batch normalization(bn,δ表relu激活,x

∈rc×h×w为经过多尺度注意力融合操作后的特征图,可以表示为式(5):
[0032][0033]
res_aff用z可以表示为公式(6):
[0034][0035]
其中,y∈rc×h×w,为x经过两个cbs模块的结果,z∈rc×h×w,表示初始特征整合,此处选择逐元素求和作为初始值。融合权重在0到1之间,用于平衡x和y之间的权重,图中虚线表示而res_iaff模块令其中既可;
[0036]

使用res_iaff模块代替yolov5中的res_unit模块,提高模型的特征融合能力;
[0037]
其中,使用darknet53作为网络的backbone,neck为panet,使用ciou loss作为回归损失,使用交叉熵损失作为分类损失,其中focus模块结构可以降低flops,提高检测速度,同时减少神经网络的层数。spp模块结构可以在不同尺寸上去提取特征,yolo-ore的整体结构如图3所示,其中c3t_x模块代表使用res_iaff模块代替res_unit模块,cba模块表示使用metaacon激活函数改进cba模块中的silu激活函数。
[0038]
优选的,所述验证阶段包括以下步骤:
[0039]

对改进的yolov5网络进行训练,观察loss曲线,确保网络不欠拟合和过拟合;
[0040]

保留在验证集上map最高的模型以及最后一轮的模型。
[0041]
在训练完成后,泛化能力较强的检测网络会将未标注的小块矿石识别出来,会导致map中的准确率(precison)较低,相应的map也会较低。如上所述,map(弱区分场景只有一个类别,后称为ap)并不能完全地体现出检测的有效性。现提出相对平均准确率rap(relative average precision)。
[0042]
优选的,泛化能力对比阶段包括以下步骤:
[0043]

在验证集上,使用泛化能力最强的网络w推理出最好的检测结果,记作r1;
[0044]

去除r1中不符合预期或不符合逻辑的检测结果后的结果记作r2,将r2作为新的测试集,并计算其他对比网络在r2上的ap(弱对比场景只有一类,故称为ap);
[0045]

考虑到测试集r2是使用网络w推理出的,其他网络推理结果的iou一定不如w高,故让ap
iou=0.5
占据更大的比重,为0.85,ap
iou=0.75
和ap
iou=0.9
分别占据0.1和0.05的比重,rap的计算如式(7)所示:
[0046]
rap=0.85
×
ap
iou=0.5
0.1
×
ap
iou=0.75
0.05
×
ap
iou=0.90
ꢀꢀ
(7)
[0047]
通过rap的大小可以反映不同网络的泛化能力强弱,保留rap最大的模型。
[0048]
本发明提供一种弱对比场景下的矿石目标检测方法,与现有技术相比优点在于:
[0049]
本发明所针对的是弱对比场景:对于一般的目标检测任务,检测的是强对比场景下不同类别的物体,以coco数据集中的图片为例,如图1所示,对于人和机器而言,需要检测的目标与场景之可以很容易进行区分,本文称之为强对比场景,对于目标与场景之间很相
似的检测任务,检测的是弱对比场景下同一类别的物体,检测的不同目标之间仅仅是大小有区别,如图2所示,不同矿石之间只有大小不同,人与机器都不容易进行区分,称之为目标与场景弱区分场景。矿石场景是弱对比场景的一个特例。在强对比环境下需要检测的目标可以进行完全地标注。而在弱特征环境下则很难进入这样完全地标注,因为会有粒度很小的目标与粒度很大目标的特征类似。并且很多任务不需要检测出这些很小的目标,对其标注会浪费人力物力,不标注会影响检测效果,本发明选择的是不进行标注,使用相关技术来提高大块矿石的检测效果。
附图说明
[0050]
图1是本发明的整体流程图;
[0051]
图2是目标与场景强对比场景;
[0052]
图3是目标与场景弱对比场景;
[0053]
图4是cbs模块与cba模块的对比图;
[0054]
图5是多尺度注意力融合模块;
[0055]
图6是res_unit模块、res_aff模块、和res_iaff模块对比图;
[0056]
图7是c3t_x模块和c3f_x模块对比图;
[0057]
图8是本文网络结构图。
具体实施方式
[0058]
为使本发明实施例的目的、技术方案和优点更加清楚,下面结合本发明实施例对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0059]
实施例:
[0060]
结合附图对本技术方案进一步说明,针对现有的技术问题,大粒度矿石目标与小粒度矿石场景之间弱区分的特点,导致现有目标检测模型泛化能力较弱,容易造成矿石漏检。针对此问题,提出一种面向弱对比场景的模型,具体流程请参阅图1,具体实施方式如下:
[0061]ⅰ、确定场景阶段:目标与场景强对比场景,如图2所示;目标与场景弱对比场景,如图3所示,确定所检测的场景是弱对比场景,矿石检测场景为弱对比场景;
[0062]ⅱ、数据获取与预处理阶段:使用工业相机获取弱对比场景下的矿石图片数据;对图像数据进行标注,删除或修改异常标注数据;将标注数据按8:2分为训练集和验证集,对图像进行数据增强;
[0063]ⅲ、创建网络阶段:将yolov5的backbone中的cbs模块替换为cba模块,提高特征提取能力;将yolov5中的res_unit模块替换为res_iaff模块,提高网络特征融合能力;
[0064]ⅳ、验证阶段:使用训练完成的改进yolov5网络模型进行验证,保留在验证集上效果最好的网络;
[0065]

、泛化能力对比阶段:使用改进yolov5模型对验证集进行推理,推理的结果作为测试集,并计算其他网络在该测试集的rap,rap的大小可以体现网络泛化能力的差异。
[0066]
从同一类别中筛选出特定特征的细分子集,即从矿石场景中筛选大粒度矿石,导致无法完全区别正负样本。具体是,为了检测大块矿石,在数据集中只标注了大块的矿石,未标注的中小块矿石在正负样本采样时会被分为负样本,增加检测难度细粒度图像识别要在自然场景下得到广泛应用,就不得不考虑诸如光照,模糊,遮挡,低分辨率,物体干扰等复杂场景下的图像识别问题。本文将在固定光照辅助条件下进行研究。
[0067]
使用工业相机获取矿石工业检测现场的视频流数据,使用python脚本,从视频流中提取矿石图片数据。
[0068]
由于弱对比场景的特殊性,即大粒度矿石目标与小粒度矿石场景之间难以区分的特点,使用labelme软件只对大块的矿石(像素面积大于96
×
96)进行标注。
[0069]
删除或修改不符合标注要求的数据,如标注目标的像素面积小于(96
×
96),应该标注为多个矿石,而标注为一个矿石的;最后将数据集按约8:2的比例分为训练集和验证集。构建一个具有10137矿石图片的训练集和具有2022张矿石图片的验证集。
[0070]
对训练集的矿石图像进行数据增强,包括随机缩放,概率为0.5,随机翻转,概率为0.5,mosaic增强,概率为1,hsv色彩空间转换。
[0071]
为加强弱对比场景下模型的特征提取能力,替换cbs(conv bn silu)模块中的silu激活函数为meta-acon激活函数,生成cba(conv bn meta-acon)模块。meta-acon激活函数在acon-c上生成。acon-c函数如式(1)所示:
[0072]facon-c
(x)=(p
1-p2)x
·
σ[β(p
1-p2)x] p2x
ꢀꢀ
(1)
[0073]
其中p1,p2为超参数,是sigmoid函数,初始值β=p1=1,p2=0.β可以使得acon-c函数能够在是否激活中切换,例如:当β

∞,f
acon-c
(x)

max(p1x,p2x);当β

0,f
acon-c
(x)

mean(p1x,p2x)。对于输入x)。对于输入β=g(x),此时生成函数g(x)中提供了一个设计空间,这便是meta-acon,β可用公式(2)表示:
[0074][0075]
将yolov5的backbone中的cbs模块替换为cba模块,用来学习是否激活相应特征,与现有技术相比有着更强的特征提取能力。cbs模块与cba模块的对比图,如图4所示。
[0076]
将backbone中的cbs改进为cba,记为cba(b);改进在neck,记为cba(n);同时改进记为cba(bn)。“ ”代表在yolov5的基础上增加某一模块。
[0077]
弱对比场景下,为了有效融合物体特征,提出res_iaff模块。为进行多尺度注意力融合,l(x)和g(x)如式(3)和(4)所示
[0078]
l(x)=b(pwconv2(δ(b(pwconv1(x)))))
ꢀꢀ
(3)
[0079]
g(x)=b(pwconv2(δ(b(pwconv1(g(x))))))
ꢀꢀ
(4)
[0080]
其中x∈rc×h×w是有c个通道,大小为h
×
w的特征图。g(x)表示对特征图x进行全局平均池化,以获取全局的特征。pwconv代表的是逐点(point wise)卷积。b代表的是批正则化batch normalization(bn)。δ表relu激活。x

∈rc×h×w为经过多尺度注意力融合操作后的特征图,可以表示为式(5),多尺度注意力融合块图,如图5所示。
[0081][0082]
res_aff用z可以表示为公式(6):
[0083]
[0084]
其中,y∈rc×h×w,为x经过两个cbs模块的结果,z∈rc×h×w,表示初始特征整合,此处选择逐元素求和作为初始值。融合权重在0到1之间,用于平衡x和y之间的权重,图中虚线表示而res_iaff模块令其中既可。
[0085]
使用res_iaff模块代替yolov5中的res_unit模块,提高模型的特征融合能力。
[0086]
res_unit模块、res_aff模块、和res_iaff模块对比图,如图6所示。
[0087]
使用darknet53作为网络的backbone,neck为panet,使用ciou loss作为回归损失,使用交叉熵损失作为分类损失,其中focus模块结构可以降低flops,提高检测速度,同时减少神经网络的层数。spp模块结构的灵感来自于文献,可以在不同尺寸上去提取特征。
[0088]
c3t_x和c3f_x模块结构如图7所示,在该命名中,t代表使用res_iaff模块,f代表使用cbs模块,x代表模块的个数。
[0089]
cba模块表示使用metaacon激活函数代替cbs模块中的silu激活函数。
[0090]
yolo-ore(本发明方法)的整体结构如图8所示。
[0091]
对改进的yolov5网络进行训练,cuda版本10.1,加载预训练模型,迭代轮次(epoch)为30轮,批量大小(batch size)为8,优化器使用的是sgd,学习率设置为0.01,,观察loss曲线,确保网络不欠拟合和过拟合。
[0092]
保留在验证集上map最高的模型以及最后一轮的模型。
[0093]
在训练完成后,泛化能力较强的检测网络会将未标注的小块矿石识别出来,会导致map中的准确率(precison)较低,相应的map也会较低。如上所述,map并不能完全地体现出检测的有效。
[0094]
在验证集上,使用泛化能力最强的网络w推理出最好的检测结果,记作r1;
[0095]
去除r1中不符合预期或不符合逻辑的检测结果后的结果记作r2,将r2作为新的测试集,并计算其他对比网络在r2上的ap;
[0096]
让ap
iou=0.5
占据更大的比重,为0.85,ap
iou=0.75
和ap
iou=0.9
分别占据0.1和0.05的比重。rap的计算如公式(7)所示。
[0097]
rap=0.85
×
ap
iou=0.5
0.1
×
ap
iou=0.75
0.05
×
ap
iou=0.90
ꢀꢀ
(7)
[0098]
计算各个网络的ap、rap、参数量和gflops,对比结果如下表所示:
[0099]
[0100][0101]
与其他经典网络相比,yolo-ore比yolov5s和 res_aff的rap分别高出了5.6%和4.0%,说明yolo-ore在目标与场景弱区分场景下有着更强的检测与泛化能力,与retinanet-r50相比yolo-ore的rap更是高出7.5%。
[0102]
为满足检测现场的速度要求,将本发明模型使用tensorrt进行部署,生成best.engine模型,加快推理速度。
[0103]
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0104]
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

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

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

相关文献