发布信息

一种消除宠物检测中误报的方法与流程

作者:admin      2022-09-30 21:15:17     724



计算;推算;计数设备的制造及其应用技术1.本发明涉及智能视频处理技术领域,特别涉及一种消除宠物检测中误报的方法。背景技术:2.随着计算机技术的发展和计算机视觉原理的广泛应用,使用计算机图像处理技术来实时检测跟踪目标变得越来越流行。在智能交通系统,智能监控系统和军事目标检测中使用目标的动态实时跟踪和定位,并且将手术器械定位在医学导航手术中具有广泛的应用价值。目标检测的任务是找出图像中所有感兴趣的目标,确定它们的位置和大小,是机器视觉领域的核心问题之一。由于各类物体有不同的外观,形状,姿态,加上成像时光照,遮挡等因素的干扰,目标检测一直是机器视觉领域最具有挑战性的问题。3.如今猫狗当宠物越来越受大众喜爱,其相关需求也相继而生。目前猫狗检测技术应用广泛,猫狗检测可以用在宠物家庭中,如猫狗喂食器,当猫狗走近猫狗喂食器,猫狗喂食器检测到猫狗时便自动打开盖子,方便猫狗进食等。4.现有目标检测中常用的减少误报方法大多是:增加负样本数据,增加负样本数据也可分为两类,一是找一些多样的没有目标的图片直接放进训练数据中;另一种是用现有的模型对无目标图片进行检测,会出现一些检测错误的图片,将这些检测出来的图片当负样本放进训练数据中;除了增加负样本数据外还可以通过提高正样本质量来减少误报,需要对训练样本重新进行筛选,过滤不好的样本;当然还可以通过使用更深更复杂的网络,只是这样会改变网络结构,这样一来,检测时间也会相应增加。5.现有的消除误报方法如增加负样本数据,这种方法可以解决一些泛化的误报,但是增加负样本必然会导致召回率的下降;筛选正样本,提高样本质量,如猫狗中出现人的误检是由于,框的猫狗正样本中一部分数据包含了人,只需调整正样本避开人的标注,便可消除对人的误报,这种方法会减少正样本的多样性,从而导致召回率的下降;使用更深的网络会导致网络的改变,增加检测时间,增加模型的大小;并且这些传统方法不能消除相似物体的误报,如猫检测中的狗误报,猫脸狗脸检测中的人脸误报,大头照中的人头误报,即使加入人负样本也不能消除误检。技术实现要素:6.本技术解决了上述问题,本技术的目的在于,通过增加一类来容纳误报类,在不影响召回率的情况下完美消除猫狗检测中人的误报。7.具体地,本发明提供一种消除宠物检测中误报的方法,所述方法包括以下步骤:8.s1,添加人头标注:加入了人头这一类,把训练样本中的人头标注出来,只标注正面;9.s2,改变网络增加误检目标分类:宠物检测网络是基于目标检测框架改进的,将配置文件中的cfg中的classes属性值加一,将数据配置文件中data文件的classes属性值加一,在数据配置文件中name文件中添加误检类name属性;10.s3,训练模型:经过上述两个步骤便完成了增加人头的数据和添加分类,即可进行数据的训练,由于增加了一类,训练时可加载之前的宠物类模型;11.s4,检测模型并调整:测试训练出的模型,若影响了宠物检测精度,可适当减少人头样本;若人头误报的消除效果不好,在保证不影响宠物检测精度的情况下适量增加人头样本,以此来调整数据,直到在不影响精度的情况下消除误报;12.s5,检测结果过滤误报类:由于添加的人头是为消除误报而添加,所以检测结果应滤掉这类,找到此类的class_id,通过判断过滤掉此类。13.所述步骤s2中,所述的宠物检测网络可以采用yolov3框架,所述yolov3网络结构是由一系列的1x1和3x3的卷积层组成,每个卷积层后都会跟一个bn层和一个leakyrelu,网络中有53个convolutional layers卷积层,卷积的strides默认为(1,1),padding默认为same,当strides为(2,2)时padding为valid;本方法在3个predict层根据class_id过滤误报目标。14.所述的yolov3框架是一个多类别用于目标检测的一个深度学习开源框架。15.所述53个convolutional layers是2+1*2+1+2*2+1+8*2+1+8*2+1+4*2+1=53按照顺序数,最后的connected是全连接层也算卷积层,一共53个。16.所述3个predict层输出目标四个位置坐标,一个物体目标得分,一个分类得分:获取class_id。17.所述的宠物检测加入人头类,增加了误检目标人头类,设class_id=2,在得到结果之前增加class_id是否为2的判断,如果是2,则将其过滤掉,这样便可去除误报,即先分离再过滤。18.所述yolov3框架增加分类的具体步骤如下:19.s2.1,将配置文件中的cfg中的两个classes属性值加一,如果原为classes=2则现变为classes=3;并将filters属性值加3,由于anchors取了三个,故每增加一类加三,classes变化公式为classes=class总类别数,filters=(4+1+1)*3,即4个坐标加一个得分加一个分类后再乘以结果层所取anchors的数目;20.s2.2,将数据配置文件中data文件的classes属性值加一,classes变化公式为classes=class总类别数;21.s2.3,在数据配置文件中name文件中添加误检类name属性,此处添加一类为person类。22.由此,本技术的优势在于:在不影响现有精度的情况下巧妙消除常规方法消除不了的相似误报。具体地,将分类的思想和消除误报结合在一起,巧妙地用分类的方法在不影响原检测目标召回率和精确度的情况下消除常规方法不能消除的相似目标的误报。附图说明23.此处所说明的附图用来提供对本发明的进一步理解,构成本技术的一部分,并不构成对本发明的限定。24.图1是现有技术中猫狗检测流程的示意图。25.图2是本发明中猫狗检测流程的示意图。26.图3是本发明的方法流程图。27.图4是本发明中采用yolov3网络的结构图。28.图5是图4中convolutional set部分进一步的结构图。具体实施方式29.为了能够更清楚地理解本发明的技术内容及优点,现结合附图对本发明进行进一步的详细说明。30.如图1所示,现有技术中宠物以猫狗为例的猫狗检测流程的步骤,包括:开始,获取数据,数据增强,进入网络,获得结果,判断class_id==0?如果是yes,则判断为猫,流程结束;如果是no,则判断为狗,流程结束。事实上,class_id是宠物分类,在数据标注的时候定义的,当是一类时可以不写,当是多类时需定义,从0开始。本技术中classid的设置是猫为0,狗为1,人头为2,这些都是人为设定的,目的是区分不同类目标。31.如图2所示,是本发明方法的具体实施例,仍然以猫狗为例。猫狗检测加入人头类(class_id=2),本技术的思想体现在增加了误检目标人头类,在得到结果之前增加class_id是否为2的判断,将其过滤掉,这样便可去除误报,即先分离再过滤。具体的流程步骤,包括:开始,获取数据,数据增强,进入网络,判断class_id==2?如果是yes,则去除该数据;如果是no,则获得结果,再判断class_id==0?如果是yes,则判断为猫,流程结束;如果是no,则判断为狗,流程结束。32.如图3所示,为一种消除宠物检测中误报的方法,所述方法包括以下步骤:33.s1,添加人头标注:加入了人头这一类,把训练样本中的人头标注出来,只标注正面;34.s2,改变网络增加误检目标分类:宠物检测网络是基于目标检测框架改进的,将配置文件中的cfg中的classes属性值加一,将数据配置文件中data文件的classes属性值加一,在数据配置文件中name文件中添加误检类name属性;35.s3,训练模型:经过上述两个步骤便完成了增加人头的数据和添加分类,即可进行数据的训练,由于增加了一类,训练时可加载之前的宠物类模型,在加载模型的时候把预训练模型的结果层去掉,即不加载预训练模型的结果层;36.s4,检测模型并调整:测试训练出的模型,若影响了宠物检测精度,可适当减少人头样本;若人头误报的消除效果不好,在保证不影响宠物检测精度的情况下适量增加人头样本,以此来调整数据,直到在不影响精度的情况下消除误报;37.s5,检测结果过滤误报类:由于添加的人头是为消除误报而添加,所以检测结果应滤掉这类,找到此类的class_id,通过判断过滤掉此类。38.进一步地,所述方法步骤包括:39.步骤s1.添加人头标注40.由于在猫狗检测中,大量出现正面人头的误报,又因为人出现的几率较高,所以这个误报必须消除。由于加入了人头这一类,所以需把训练样本中的人头标注出来,只标注正面即可,不然会被当成负样本处理,注意加入的人头样本数量不宜偏多,因为只是为消除人误报,所以不需要很高的精度,正常的人检出即可。这样既能保证猫狗检测的精度,同时又可消除人的误报。41.步骤s2.改变网络增加误检目标分类42.此次的猫狗检测网络是基于yolov3框架改进的,故以yolov3框架(yolov3是一个多类别用于目标检测的一个深度学习开源框架,其网络结构图如图4)为例,此方法不仅限于yolov3框架,所有目标检测框架皆可使用,增加方式因框架不同而改变,yolov3框架增加分类的具体步骤如下:43.s2.1将配置文件中的cfg中的两个classes属性值加一,原为classes=2现变为classes=3;并将filters属性值加3,由于anchors取了三个,故每增加一类加三;如有多个误检类,可都视为一类或者每一类为一个类别,classes变化公式classes=class总类别数;filters=(4+1+1)*3,即(4个坐标+一个得分+一个分类)乘结果层所取anchors的数目;其中,cfg是yolov3框架里的配置文件,以.cfg为后缀,如yolov3.cfg,里边定义了有关网络的参数;44.s2.2将数据配置文件中data文件的classes属性值加一,classes变化公式classes=class总类别数。45.s2.3在数据配置文件中name文件中添加误检类name属性,有几类添加几个,此处添加一类为person类。46.步骤s3.训练模型47.经过上述两个步骤便完成了增加人头的数据和添加分类,即可进行数据的训练,由于多了一类,训练时可加载之前的猫狗两类模型,在加载模型的时候把预训练模型的结果层去掉,即不加载预训练模型的结果层。48.步骤s4.检测模型并调整49.测试训练出的模型,若影响了猫狗精度,可适当减少人样本;若人误报消除效果不太好,可在保证不影响猫狗检测精度的情况下适量增加人样本,以此来调整数据,直到在不影响精度的情况下消除误报。50.步骤s5.检测结果过滤误报类51.由于添加的人头是为消除人误报而添加,所以检测结果应滤掉这类,找到此类的classid加个判断过滤掉此类即可。52.如图4所示,为本实施例中采用的yolov3网络结构图,这个网络主要是由一系列的1x1和3x3的卷积层组成(每个卷积层后都会跟一个bn(batch normalization)层和一个leakyrelu),网络中有53个convolutional layers,(2+1*2+1+2*2+1+8*2+1+8*2+1+4*2+1=53按照顺序数,最后的connected是全连接层也算卷积层,一共53个),卷积的strides默认为(1,1),padding默认为same,当strides为(2,2)时padding为valid。本方法在3个predict layers预测层(predict层输出目标四个位置坐标,一个物体目标得分,一个分类得分:获取class_id)根据classid过滤误报目标。53.其中,如图5所示,所述convolutional set(卷积集)部分进一步为:依次从convolutional 1×1到convolutional 3×3,再到convolutional 1×1,再到convolutional 3×3,再到convolutional 1×1。54.本方法消除误报的方法起源于猫狗检测,可扩展于所有目标检测中的相似误报的消除。55.以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。









图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!




内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!




免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

相关内容 查看全部