一种基于yolov5算法的机载热成像野生动物物种分类方法
技术领域:
:1.本发明涉及物种识别
技术领域:
:,更具体的说是涉及一种基于yolov5算法的机载热成像野生动物物种分类方法。
背景技术:
::2.随着近年来计算机视觉的发展和硬件计算能力的提升,深度学习开始广泛应用于大数据分析、人工智能、图像处理等领域。目标检测是图像处理领域的一个重要分支,不仅要完成背景与目标的分类任务,如果包含目标则还需检出目标的精确位置信息,其方法主要分为两大类:基于传统人工特征的目标检测方法和基于深度学习的目标检测方法。传统的目标检测算法,多是基于滑动窗口模型,对手工特征进行提取、匹配,存在单一性、计算复杂、适用性不好的缺点,检测精度和速度较差。2012年alexnet出现之后,因简单高效的深度网络提取的抽象特征表征能力远超传统特征,准确度和效率大幅提升,以卷积神经网络为代表的深度学习模型渐渐取代了传统的滑动窗口人工提取特征,成为了目标检测领域的主流方法。基于深度学习的目标检测算法主要分为两类,基于区域的双阶段方法和基于回归的单阶段方法。3.双阶段算法需要先生成候选框再通过网络进行分类,代表算法有2014年girshickr等提出的基于区域提取的r-cnn算法。r-cnn首先获取输入图像,然后利用选择性搜索算法提取大约2000个自下而上的区域,使用大型卷积神经网络计算每个提取区域的特征,最后使用特定的类线性svm对每个区域进行分类。然而双阶段算法具有速度慢的缺陷,而单阶段算法直接对整张图像进行预测以实现分类和定位,代表算法有2016年redmonj等提出的yolo(youonlylookonce)算法,与基于区域的目标检测算法利用分类器来执行检测不同,yolo算法将目标检测框架看作空间上的回归问题,单个神经网络可经过一次运算从完整图像上得到边界框和类别概率的预测,有利于对检测性能进行端到端的优化。单阶段算法进行的是端到端回归,速度相比双阶段有明显提高,不同算法权重大小也比双阶段算法缩小5-10倍。4.因此,如何提供一种基于yolov5算法的机载热成像野生动物物种分类方法是本领域技术人员亟需解决的问题。技术实现要素:5.有鉴于此,本发明提供了一种基于yolov5算法的机载热成像野生动物物种分类方法,6.为了实现上述目的,本发明采用如下技术方案:7.一种基于yolov5算法的机载热成像野生动物物种分类方法,包括以下步骤:8.获取红外热成像的野生动物监测影像,将预处理后的所述野生动物监测影像输入至训练好的物种分类模型中进行物种分类,获得分类结果;9.其中,所述物种分类模型的构建及训练方法包括:10.s1.获取红外热成像的野生动物监测影像,建立数据集,并对数据集进行预处理;11.s2.将yolov5算法模型中除主干网络的csp结构内部以外的所有卷积层均替换为ghost模块,并在主干网络中添加注意力机制模块se,建成物种分类模型;12.s3.将预处理后的数据集分为训练集和验证集,将所述训练集输入所述物种分类模型中对模型进行训练,通过验证集对训练后的所述物种分类模型的分类结果进行验证,得到训练好的所述物种分类模型。13.优选的,获取红外热成像的野生动物监测影像的具体内容包括:在最佳飞行参数的情况下,利用无人机红外热成像监测野生动物;其中最佳飞行参数包括高度、速度、噪音和成像质量。14.优选的,s1中的预处理包括以下内容:15.所述数据集内的样本数据进行mosaic数据增强;对所述样本数据进行随机裁剪、色调改变、随机翻转,实现所述样本数据进行数据增强,并对每幅图像进行归一化处理。16.优选的,所述物种分类模型中的主干网络依次包括:focus结构、第一特征提取部分、第二特征提取部分和spp结构;17.所述focus结构,输入端与模型input端相连,输出端连接所述第一特征提取部分,用于完成切片操作,即将608×608×3的图像转换成304×304×12的特征图;18.所述第一特征提取部分、所述第二特征提取部分和所述spp结构中均包括所述ghost模块,且数量依次为2个、1个和1个;19.每两个所述ghost模块之间均通过一个所述csp结构相连,第三个所述csp结构与第四个所述ghost模块之间还连接有注意力机制模块se,第四个所述ghost模块后还连接有所述spp结构。20.优选的,在所述物种分类模型中,第一个所述csp结构中包括1个残差模块,第二个所述csp结构和第三个所述csp结构中包括3个残差模块。21.经由上述的技术方案可知,与现有技术相比,本发明公开提供了一种基于yolov5算法的机载热成像野生动物物种分类方法,该分类方法中根据训练后的物种分类模型来实现,其中的物种分类模型在建立与训练的过程中,是在原有的yolov5算法模型的基础上,将其中的部分卷积层替换为ghost模块,并在主干网络中添加注意力机制模块se,有效减小了模型的体量,参数更小,有效提高了计算效率及其准确率,为现有技术中的野生动物物种分类提供了新的方法。附图说明22.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。23.图1附图为本发明提供的一种基于yolov5算法的机载热成像野生动物物种分类方法的流程示意图;24.图2附图为本发明提供的一种基于yolov5算法的机载热成像野生动物物种分类方法中的物种分类模型的结构示意图;25.图3附图为本发明实施例提供的现有的yolov5算法网络结构示意图;26.图4-图8依次为本发明实施例提供的狍、驯鹿、马鹿、梅花鹿和东北虎的红外热成像的监测影像;27.图9附图为本发明实施例提供的数据增强的过程示意图;28.图10附图为本发明实施例提供的6种网络map0.5对比示意图;29.图11附图为本发明实施例提供的yolov5s+ghost网络结构示意图;30.图12附图为本发明实施例提供的se模块实现过程示意图;31.图13附图为本发明实施例提供的yolov5算法及其改进后对比示意图;32.图14-17依次为本发明实施例提供的采用物种分类模型对东北虎、驯鹿、梅花鹿和马鹿测试集数据进行识别的效果示意图。具体实施方式33.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。34.本发明实施例公开了一种基于yolov5算法的机载热成像野生动物物种分类方法,如图1所示,包括以下步骤:35.获取红外热成像的野生动物监测影像,将预处理后的野生动物监测影像输入至训练好的物种分类模型中进行物种分类,获得分类结果;36.其中,物种分类模型的构建及训练方法包括:37.s1.获取红外热成像的野生动物监测影像,建立数据集,并对数据集进行预处理;38.s2.将yolov5算法模型中除主干网络的csp结构内部以外的所有卷积层均替换为ghost模块,并在主干网络中添加注意力机制模块se,建成物种分类模型;39.s3.将预处理后的数据集分为训练集和验证集,将训练集输入物种分类模型中对模型进行训练,通过验证集对训练后的物种分类模型的分类结果进行验证,得到训练好的物种分类模型。40.为了进一步实施上述技术方案,获取红外热成像的野生动物监测影像的具体内容包括:在最佳飞行参数的情况下,利用无人机红外热成像监测野生动物;其中最佳飞行参数包括高度、速度、噪音和成像质量。41.为了进一步实施上述技术方案,s1中的预处理包括以下内容:42.数据集内的样本数据进行mosaic数据增强;对样本数据进行随机裁剪、色调改变、随机翻转,实现样本数据进行数据增强,并对每幅图像进行归一化处理。43.为了进一步实施上述技术方案,如图2所示,物种分类模型中的主干网络依次包括:focus结构、第一特征提取部分、第二特征提取部分和spp结构;44.focus结构,输入端与模型input端相连,输出端连接第一特征提取部分,用于完成切片操作,即将608×608×3的图像转换成304×304×12的特征图;45.第一特征提取部分、第二特征提取部分和spp结构中均包括ghost模块,且数量依次为2个、1个和1个;46.每两个ghost模块之间均通过一个csp结构相连,第三个csp结构与第四个ghost模块之间还连接有注意力机制模块se,第四个ghost模块后还连接有spp结构。47.为了进一步实施上述技术方案,在物种分类模型中,第一个csp结构中包括1个残差模块,第二个csp结构和第三个csp结构中包括3个残差模块。48.如图3所示,现有技术中的yolov5算法的结构分为输入端、backbone、neck、prediction四个部分。49.第一部分输入端包括三个操作:50.(1)mosaic数据增强,即采用多张图片,使用随机缩放、随机裁剪、随机排布的方式进行拼接,这样能够丰富数据集,并且减少gpu大小,对于小目标数据集训练准确率增强有效果;51.(2)自适应锚框计算,在yolo算法中,针对不同的数据集,都会有初始设定长宽的锚框。网络训练中,网络在初始锚框的基础上输出预测框,进而和真实框groundtruth进行对比,计算两者差距,再反向更新,迭代网络参数,因此初始锚框是非常重要的一部分。在输入端部分中,将此功能嵌入到代码中,每次训练时,自适应的计算不同训练集中的最佳锚框值;52.(3)自适应图片缩放,在常用的目标检测算法中,不同的图片长宽都不相同,因此常用的方式是将原始图片统一缩放到一个标准尺寸,再送入检测网络中,但在本部分对其进行了改进,使网络推理速度变快,在yolov5的代码中datasets.py的letterbox函数中进行了修改,对原始图像自适应的添加最少的黑边。第二部分backbone包含两个结构:(1)focus结构,这个结构在yolo3或者yolo4中使没有的,其最关键的操作是切片操作,也就是将608×608×3的图像变成304×304×12的特征图;(2)csp结构,这个结构借鉴了cspnet,目的是为了将基础层的特征映射分为两部分,然后通过跨越阶层次结构将它们合并,在减少了计算量的同时可以保证准确率,降低计算瓶颈和内存成本。第三部分neck是为了更好的提取融合特征,在backbone和输出层之间插入的层,相当于网络的颈部,其主要包括spp模块、fpn+pan的方式。第四部分prediction包含两个结构:(1)boundingbox损失函数,yolov5采用了giou_loss做boundingbox的损失函数,其计算公式如下:[0053][0054]其中iou为交并比,c为最小外接矩形,差集为c与并集之间的差值;(2)nms非极大值抑制,由于目标检测的后处理过程中,目标框数量比较多,所以得使用nms非极大值抑制将部分达不到要求的框筛选,便于之后处理,节约内存与时间。[0055]本发明在原有的yolov5的基础上对其结构进行改进得到了物种分类模型。[0056]下面将通过具体的实施例来对本发明进行进一步说明:[0057]采集数据集:[0058]2019-2021年,项目组多次在东北虎林园、吉林省汪清国家级自然保护区、黄泥河国家级自然保护区、珲春国家级自然保护区、汗马保护区等地利用无人机红外热成像监测野生动物,并在高度、速度,噪音、成像质量中找出了最佳飞行参数,获取了长达数十小时的不同季节的野生动物影像。项目组重点监测了东北虎及其主要猎物(马鹿、狍、梅花鹿)的生态行为,构建了野生动物监测影像数据库。试验配备大疆旗下的m300rtk无人机,并配套h20t红外热成像机,视频分辨率为640×512,照片分辨率为640×512,最低工作温度-40℃。在相同飞行高度下经多次试验,当镜头中心线与水平夹角成45°时,拍摄的图像更有利于后期处理。无人机飞行高度范围为25m-120m,以最低不惊扰拍摄目标为有效拍摄高度。2019年10月26日,于黑龙江省哈尔滨市的东北虎林园拍摄东北虎,由于拍摄目标为人工放养,拍摄目标对噪音及外部干扰适应能力强,低空45度飞行,距离地面25-30m米拍摄,噪音134db.飞行速度7m/s。2020年11月23日至27日,于吉林省延吉市的汪清保护区拍摄梅花鹿和狍。梅花鹿和狍为野生,对无人机和噪音十分敏感,低空45度飞行,距离地面69米拍摄,噪音83db,飞行速度7m/s。2020年12月22日到25日,于内蒙古自治区根河市的汗马保护区拍摄野生驯鹿和马鹿,低空45度飞行,距离地面53米拍摄,噪音63db.飞行速度7m/s。获取的视频以50帧每幅处理,有效剪辑出2000幅。其中,狍439幅,驯鹿401幅,马鹿358幅,梅花鹿361幅,东北虎441幅,如图4—8所示。[0059]数据的预处理:[0060]考虑样本数量相对较少,为减少过拟合,提高模型的鲁棒性,对2000幅有效样本数据进行数据增强。对样本数据进行随机裁剪、色调改变、随机翻转,如图9所示,将原样本2000幅增强至8000幅,并对每幅图像进行归一化处理,使训练模型的时候有更好的效果。并在原网络框架中对数据集加入mosaic操作处理降低内存,提高效率。[0061]本实施例实验中的硬件环境为amdryzen74800hwithradeongraphics的cpu与nvidiageforcertx2060的gpu;软件环境为python3.8,操作系统为ubuntu18.04。实验中使用软件aoaovideotopictureconverter对视频文件进行裁剪,并使用labelimg对图像进行框选标注,对标注好后的数据进行预处理后训练模型。此外,本实施例对以上介绍的yolo系列不同框架进行训练。精度评定选择单张训练时间、准确率、模型权重大小、参数数量、占用内存5种指标。训练参数均为0.01的学习率,300次训练迭代,损失函数为g_iouloss和c_iouloss。对yolov3、yolov3-spp以及yolov5系列共6种网络进行训练对比得到其准确率map0.5对比图如图10所示,其各项训练参数对比如表3所示。[0062]表36种网络训练效果对比[0063]table3comparisonofsixnetworktrainingeffects[0064][0065]对以上表格进行分析,可以得出:(1)训练时间最短的是yolov5s,为0.032秒识别每张图片;(2)准确率最高的是yolov5x,为95.2%;(3)权重最小的是yolov5s,为14.8mb;(4)模型参数最少的为yolov5s,为0.77million个;(5)占用gpu最少的是yolov5s,为4.58gb。由于本次实验目的是为了研究网络模型搭配边缘设备用于野外监测保护动物,模型的轻量以及识别的效率尤为重要,综合考虑之后决定选择yolov5s进行改进。[0066]在一个训练好的深度神经网络中,通常会包含丰富甚至冗余的特征图,以保证对输入数据有全面的理解,但这也会使模型变得又大又慢。如图11所示,本实施例使用ghost模块替换原卷积层对其进行优化,可以使用更少的参数生成更多特征图。其原理是将原始卷积层分为两部分,首先使用较少的卷积核来生成原始特征图,然后,进一步使用廉价变换操作以高效生产更多幻影特征图。在基准模型和数据集上进行的实验表明,该方法是一个即插即用的模块,能够将原始模型转换为更紧凑的模型,同时保持可观的性能。[0067]给yolov5s网络增加了ghost之后,模型权重大小从14.8mb下降到了7.7mb,参数数量从0.77million下降到了0.36million,但是准确率也从94.1%下降到了93.2%,不符合实验预期对准确率要求。为保证在轻量化的基础上提高准确率,多次实验后,决定给改进后的模型增加注意力机制,添加se模块,并将原yolov5s中c3部分添加的ghost模块换回原卷积层,如图2所示。[0068]senet是squeeze-and-excitationnetworks的简称,拿到了imagenet2017分类比赛冠军,其效果得到了认可,其提出的se模块思想简单,易于实现,并且很容易可以加载到现有的网络模型框架中。senet主要是学习了channel之间的相关性,筛选出了针对通道的注意力,稍微增加了一点计算量,但是效果比较好。其实现过程如图12所示,通过对卷积的到的featuremap进行处理,得到一个和通道数一样的一维向量作为每个通道的评价分数,然后将改分数分别施加到对应的通道上,得到其结果,就在原有的基础上只添加了一个模块,通过这种不同权重关注的方式提高模型识别准确率。[0069]两次改进的准确率对比图如图13所示,具体指标对比如表4所示。[0070]表43种网络训练效果对比[0071]table4comparisonofthreenetworktrainingeffects[0072][0073]使用改进后的yolov5s_ghost_se对测试集数据进行识别效果如图14-17所示:图片左上角的数字和字母代表识别出来的动物总数以及动物类别,图中用检测框将目标动物框出并给予其编号,在每个编号后面还有识别种类的置信度。[0074]本实施例主要针对野生动物东北虎及其食物链的监测保护进行研究,使用设备条件局限性强,对模型大小,检测速度要求条件较高。采用本发明中所公开的改进后的基于yolov5物种分类模型相对于现有技术中的yolov5算法来说,模型更轻,参数更小,在backbone中增加了注意力机制se模块,使准确率由原本的94.1%提升到了96%,超越了初始模型yolov5x的最高准确率95.2%。改进后的模型在准确率上比原模型增加了1.9%,权重大小减少37%,参数数量减少43%。本实施例所研究的网络模型在野生动物监测保护中能有效地做到快速准确检测的检测要求,为边缘设备应用提供了一种高性能的轻量化模型结构。在实际的应用中,可以将此模型移植到机载无人机摄像头上,快速对林区野生动物进行监测,更有效的保护野生动物。[0075]本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。[0076]对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本实施例中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本实施例所示的这些实施例,而是要符合与本实施例所公开的原理和新颖特点相一致的最宽的范围。当前第1页12当前第1页12