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

一种可自动判断是否正确捉拿兔子的方法与流程

2022-02-22 04:43:26 来源:中国专利 TAG:


1.本发明属于深度学习识别技术领域,尤其涉及一种可自动判断是否正确捉拿兔子的方法。


背景技术:

2.目前深度学习模型虽然已经有了较强的学习能力,但是对于类别之间差异不明显的情况,如类别是非刚体的目标,且数据量不足,在处理拥有这些特点的问题时,深度学习模型无法很好的解决。
3.现有技术通过视频来分辨是否正确捉拿兔子就是上述这种问题,我们测试发现,直接利用分类网络以数据训练的方式解决此问题最后的准确率是极低的。
4.目前采用各种方法来自动判断是否正确捉拿兔子,如使用分类网络resnet50直接对图片进行分类;采用目标检测网络直接对捉拿兔子动作进行分类;这两种方法在训练集都是很准确的,但是在测试集的表现是很差的。
5.因此本发明提出了一种通过利用深度学习目标检测程序结合规则判断的方法来解决此问题,这个解决方案利用了深度学习对于简单目标较容易识别的特点,首先识别出简单的关键目标,再利用这些简单目标的位置关系,来做出最终的判断。


技术实现要素:

6.鉴于现有技术的不足,本发明公开了一种可自动判断是否正确捉拿兔子的方法,以解决现有技术的不足。
7.为了实现上述目的,本发明采用了如下技术方案:
8.一种可自动判断是否正确捉拿兔子的方法,包括如下步骤:
9.s1:接收目标图片,并对目标图片进行预处理,其预处理包括:对目标图片进行归一化操作、目标图片padding为正方形图片、分为若干个区域、用目标检测模型yolov4识别目标图片中的捉拿兔子相关目标、对识别结果进行后处理操作;
10.s2:判断所有目标区域的目标是否有兔子;
11.s3:若有兔子,则判断所有目标中兔子身上是否只有一只正在捉拿兔子的手;
12.s4:若有兔子,判断所有目标中兔子头上是否检测到耳朵;
13.s5:若有兔子,判断所有目标中兔子周围是否有两个手腕;
14.s6:若步骤s3、s4和s5的判断结果都为真,则目标图片中有正确捉拿兔子动作。
15.作为上述技术方案的进一步描述:在所述步骤s1中:
16.所述目标图片为摄像头由顶部拍摄捉拿兔子的图片,由顶部拍摄有利于实际应用环境,一般手术人员都在手术台上给兔子做手术,因此将摄像头放置在手术台的正上方比较方便。
17.作为上述技术方案的进一步描述:
18.在所述步骤s1中:
19.所述目标图片中兔子的大小占整个图片面积的30%左右,手占整个图片面积的15%左右,深度学习预测的目标的像素大小要一致,因此在将图片缩放到416*416后,要求各个目标的尺寸不能波动的太大,否则会降低识别精度。
20.作为上述技术方案的进一步描述:所述步骤s1包括:
21.s11:将目标图片由bgr通道转换为rgb通道,以保证网络处理的数据的分布是一致的;
22.s12:将目标图片数据类型转换为float32,并除以255归一化,以减小误差;
23.s13:根据目标图片的宽高比,将图片通过填充0变成为一个正方形的目标图片;
24.s14:按照顺序将目标图片分成10840个不同大小的区域,用目标检测模型yolov4识别每个目标区域里是否有目标;
25.s15:计算所有目标区域中置信度分数,并消除所有目标区域中置信度分数不足0.4的目标;
26.其中,置信度分数的计算公式是:
[0027][0028]fyi
表示的是每个目标的置信度的值,通过公式来对每个目标的置信度值进行归一化,转换为概率值li。
[0029]
s16:利用nms算法消除所有目标区域中重叠的目标;具体地,nms算法先计算出所有目标之间的iou值,得到iou相关矩阵,保留每行目标中置信度最大的目标。重复对每一行进行相同操作,即消除了重叠的目标。
[0030]
s17:将所有目标位置信息转换为值为0到1的相对坐标,便于目标之间相对位置距离的计算。
[0031]
作为上述技术方案的进一步描述:所述步骤s13还包括:
[0032]
将正方形的目标图片通过降采样操作转换为416*416大小,一般情况下预测的图片大小和预测时间成正比,因此以现今的电脑设备的算力,一般选择416*416或618*618进行预测。
[0033]
作为上述技术方案的进一步描述:所述步骤s2具体为:
[0034]
识别所有剩余的目标,判断其中是否有兔子标签的目标。
[0035]
作为上述技术方案的进一步描述:所述步骤s3具体包括:
[0036]
s31:若有兔子目标,则识别所有目标,找到标签为手的目标;
[0037]
s32:计算每个手目标与兔子的距离是否小于0.1,只有小于0.1的手才会加入计数;
[0038]
具体计算公式为:
[0039][0040]
向量x={x1,x
2,
...,xn},y={y1,y2,...,yn},xi表示x在第i维的坐标值。
[0041]
s33:识别所有目标,找到里面标签为手捉拿兔子的目标;
[0042]
s34:计算每个手捉拿兔子目标与兔子的距离是否小于0.1,只有小于0.1的手捉拿
兔子才会加入计数。
[0043]
作为上述技术方案的进一步描述:所述步骤s4具体包括:
[0044]
s41:若有兔子目标,则识别所有目标,找到里面标签为兔子耳朵的目标,统计兔子耳朵的数量。
[0045]
作为上述技术方案的进一步描述:所述步骤s5具体包括:
[0046]
s51:若有兔子目标,则识别所有目标,找到里面标签为手腕的目标;
[0047]
s52:计算每个手腕目标与兔子的距离是否小于0.2,只有小于0.2的手腕才会加入计数。
[0048]
采用首先将兔子的box放大0.1倍,再计算与手腕目标的iou,iou的意思是交集的意思。iou衡量两个目标相较的程度,0为不相交,1为全部重合。
[0049][0050]
其中,分子为两个区域重叠的面积,分母为两个区域的并集的面积。
[0051]
作为上述技术方案的进一步描述:所述步骤s6具体包括:
[0052]
s61:统计手腕数量、兔子耳朵数量、捉拿兔子的手数量和手的数量,若统计的手腕数量为2,兔子耳朵的数量为2,捉拿兔子手的数量为1,手的数量为1时,该图片中有正确捉拿兔子动作。
[0053]
作为上述技术方案的进一步描述:所述方法还包括:
[0054]
s7:根据连续的在每分钟统计此时间内的存在正确捉拿兔子动作的目标图片帧数,若帧数值大于阈值,则认为视频中存在正确捉拿兔子动作。
[0055]
本发明具有如下有益效果:
[0056]
本发明提供的一种可自动判断是否正确捉拿兔子的方法,其利用深度学习善于识别简单目标的特点,首先识别出一些简单的目标,再利用这些简单的目标结合规则进一步判断,避免了深度学习模型不善于分辨相似目标的缺点,经过实验验证在测试集上得到了较为准确的结果。
附图说明
[0057]
图1为本发明提供的一种可自动判断是否正确捉拿兔子的方法的流程示意图;
[0058]
图2为步骤(1)中对目标图片进行预处理的流程示意图;
[0059]
图3为步骤(3)的流程示意图;
[0060]
图4为步骤(5)的流程示意图。
具体实施方式
[0061]
下面将结合实施例,对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有付出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0062]
为使本发明实施例的目的、技术方案和优点更加清楚,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的
实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0063]
本发明提出了一种通过利用深度学习目标检测程序结合规则判断的方法来解决此问题,这个解决方案利用了深度学习对于简单目标较容易识别的特点,首先识别出简单的关键目标,再利用这些简单目标的位置关系,来做出最终的判断。
[0064]
由于只判断是否正确抓取,因此只在相关视频检测正确的抓取动作,若正确则认为会正确捉拿兔子,若未检测到正确捉拿兔子动作,则认为是错误捉拿兔子。
[0065]
正确捉拿兔子时手是处于兔子的背部的抓握状态,因此本发明要判断是否有一只手正在捉拿兔子的背部。
[0066]
正确捉拿兔子时不允许捉拿兔子耳朵,而若兔子耳朵被手抓握时无法检测到兔子耳朵,因此若未检测到兔子耳朵,则认为当前不是正确抓取状态。
[0067]
由于是采用正上方摄像头,因此正确捉拿兔子时由于一只手在兔子臀部,这只手被遮挡,因此正确捉拿兔子只会检测到一只手,因此通过只有兔子身上有一只手时才认为是正确捉拿兔子。
[0068]
正确捉拿兔子的状态下,一只手在兔子身下无法被顶部摄像头拍摄到,另一只手在兔子背部捉拿兔子,因此此时兔子周围有两个手臂。因此若兔子周围有两个手臂才认为是正确捉拿兔子。
[0069]
如图1所示,一种可自动判断是否正确捉拿兔子的方法,包括如下步骤:
[0070]
(1)接收目标图片后,对目标图片进行预处理,其预处理包括:对目标图片进行归一化操作、目标图片padding(填充)为正方形图片、分为若干个区域、用目标检测模型yolov4识别目标图片中的捉拿兔子相关目标、对识别结果进行后处理操作;
[0071]
(2)判断所有目标区域的目标是否有兔子;
[0072]
(3)若有兔子,则判断所有目标中兔子身上是否只有一只正在捉拿兔子的手;
[0073]
(4)若有兔子,判断所有目标中兔子头上是否检测到耳朵;
[0074]
(5)若有兔子,判断所有目标中兔子周围是否有两个手腕;
[0075]
(6)若步骤(3)、(4)和(5)的判断结果都为真,则目标图片中有正确捉拿兔子动作,由顶部拍摄有利于实际应用环境,一般手术人员都在手术台上给兔子做手术,因此将摄像头放置在手术台的正上方比较方便。
[0076]
在本实施例中,所述步骤(1)中:目标图片为摄像头由顶部拍摄捉拿兔子的图片;值得注意的是,深度学习预测的目标的像素大小要一致,因此在将图片缩放到416*416后,要求各个目标的尺寸不能波动的太大,否则会降低识别精度。
[0077]
在本实施例中,所述步骤(1)中:所述目标图片中兔子的大小占整个图片面积的30%左右,手占整个图片面积的15%左右。
[0078]
在本实施例中,所述步骤(1)具体包括:
[0079]
(11)将目标图片由bgr通道转换为rgb通道,以保证网络处理的数据的分布是一致的;因为训练网络时输入图片是rgb的,而opencv读图片读的是bgr的,为了保证网络处理的数据的分布是一致的,需要将其转换为rgb。
[0080]
(12)将目标图片数据类型转换为float32,并除以255归一化,以减小误差;具体地,设置网络的输入处的于均值为0,方差为1时其泛化误差会更小,因此除以255归一化,以
减小误差。
[0081]
(13)根据目标图片的宽高比,将图片通过填充0变成为一个正方形的目标图片;由于摄像机一般输出的都是宽高比为2:1的图片,而网络一般处理的都是1:1的图片,而将一个2:1的图片直接降采样为1:1会导致图片内的目标的宽高比发生变化,因此需要先将图片padding为2:2的正方形图片,一般情况下预测的图片大小和预测时间成正比,因此以现今的电脑设备的算力,一般选择416*416或618*618进行预测。
[0082]
(14)按照顺序将目标图片分成10840个不同大小的区域,用目标检测模型yolov4识别每个目标区域里是否有目标;
[0083]
(15)计算所有目标区域中置信度分数,并消除所有目标区域中置信度分数不足0.4的目标;消除方法为:识别所有10840个目标,每个目标会有一个判断此区域内是否存在待识别目标的置信度分数,分数越大表示这个区域越有可能有目标,再将分数小的删除。
[0084]
其中,置信度分数的计算公式是:
[0085][0086]fyi
表示的是每个目标的置信度的值,通过公式来对每个目标的置信度值进行归一化,转换为概率值li。
[0087]
(16)利用nms算法消除所有目标区域中重叠的目标;由于10840个区域有很多的重叠,因此将重叠的目标删除;比如图片中一只手的附近会检测到很多只手,消除这些重叠的手,只保留一个置信度最大的。
[0088]
(17)将所有目标位置信息转换为值为0到1的相对坐标,便于目标之间相对位置距离的计算。具体转化方式为:将位置信息除以图片的高和宽,即从一个绝对坐标转换为相对坐标。
[0089]
在本实施例中,所述步骤(2)具体包括:识别所有剩余的目标,判断其中是否有兔子标签的目标。
[0090]
在本实施例中,所述步骤(3)具体包括:
[0091]
(31)若有兔子目标,则识别所有目标,找到标签为手的目标;
[0092]
(32)计算每个手目标与兔子的距离是否小于0.1,只有小于0.1的手才会加入计数;
[0093]
具体计算公式为:
[0094][0095]
向量x={x1,x
2,
...,xn},y={y1,y2,...,yn},xi表示x在第i维的坐标值。
[0096]
(33)识别所有目标,找到里面标签为手捉拿兔子的目标;
[0097]
(34)计算每个手捉拿兔子目标与兔子的距离是否小于0.1,只有小于0.1的手捉拿兔子才会加入计数。
[0098]
在本实施例中,所述步骤(4)具体包括:
[0099]
(41)若有兔子目标,则识别所有目标,找到里面标签为兔子耳朵的目标,统计兔子耳朵的数量。
[0100]
在本实施例中,所述步骤(5)具体包括:
[0101]
(51)若有兔子目标,则识别所有目标,找到里面标签为手腕的目标;
[0102]
(52)计算每个手腕目标与兔子的距离是否小于0.2,只有小于0.2的手腕才会加入计数。
[0103]
采用首先将兔子的box放大0.1倍,再计算与手腕目标的iou,iou的意思是交集的意思。iou衡量两个目标相较的程度,0为不相交,1为全部重合。
[0104][0105]
其中,分子为两个区域重叠的面积,分母为两个区域的并集的面积。
[0106]
在本实施例中,所述步骤s6具体包括:
[0107]
(61)统计手腕数量、兔子耳朵数量、捉拿兔子的手数量和手的数量,若统计的手腕数量为2,兔子耳朵的数量为2,捉拿兔子手的数量为1,手的数量为1时,该图片中有正确捉拿兔子动作。
[0108]
在本实施例中,一种可自动判断是否正确捉拿兔子的方法还包括:
[0109]
(7)根据连续的在每分钟统计此时间内的存在正确捉拿兔子动作的目标图片帧数,若帧数值大于阈值,则认为视频中存在正确捉拿兔子动作。由于电脑的性能的差异导致每分钟处理的帧数不同,一般取每分钟处理的帧数的一半作为阈值。
[0110]
本发明提供的一种可自动判断是否正确捉拿兔子的方法,其利用深度学习善于识别简单目标的特点,首先识别出一些简单的目标,再利用这些简单的目标结合规则进一步判断,避免了深度学习模型不善于分辨相似目标的缺点,经过实验验证在测试集上得到了较为准确的结果。
[0111]
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献