基于FasterRCNN的昆虫识别
  rr2lenfS8llG 2023年11月02日 116 0

第1章 项目简介

1.1 研究背景及意义

昆虫目标检测是农林作物病虫害防治的基础。传统的昆虫识别方法通过人为的观察昆虫外部特征并与模式标本对照鉴定识别,费时费力。现有的昆虫自动识别方法功能单一,性能有待提高。害虫是农作物生长的大敌,能给农作物造成重大损失,对农产品品质的损害更是无法估计。因此,对害虫进行检测并及时预报,从而进行更有效的防治显得尤为重要。

然而,进行这些工作的前提之一,就是对害虫进行有效的检测。只有对害虫进行及时准确的检测才能在农业生产中对害虫进行有目的的防治,本课题使用深度学习算法Faster R-CNN与昆虫检测相结合,通过Faster R-CNN强大的特征提取能力,得到不同种类昆虫的特征信息,并使用分类与回归方法,对图片中的昆虫位置进行回归,对昆虫进行分类。通过大量的训练数据对Faster R-CNN网络进行不断的训练,提高Faster R-CNN对昆虫的检测准确率。

并设计一套方便、易用的检测系统,使得非专业人士也能轻松的实时获取到被监测区域中昆虫情况,提高人们对昆虫的认识度。尽可能地利用昆虫资源降低昆虫危害:对有害昆虫的检测,有助于防治,保障农林生产安全;对有益昆虫的检测,有效利用昆虫资源,实现人与自然和谐相处

第2章 Faster-Rcnn算法原理

3.1目标检测中的IOU

交并比IOU(Intersection over Union)被广泛的应用于目标检测任务中,IOU被定义为检测到的物体边框和真实物体边框的重叠比率,即待检测物体交集和并集的比值,理想情况下,IOU的值为1。IOU的计算方式如图3-1所示。其中B1为真实物体边框,B2为检测到的物体边框。

基于FasterRCNN的昆虫识别_Faster-Rcnn

图3-1 IOU计算方式

在计算机视觉任务中,如果IOU大于0.5,此时我们则认为检测正确。对于检测精度更高的任务,我们可以通过提高IOU的比值来提升检测的精度,IOU数值越高,则边界框的定位越准确。

3.2Faster-Rcnn目标检测原理

Faster-Rcnn模型结构如图3-2所示。模型包括特征提取层、RPN、RoI pooling和分类层四个部分。

基于FasterRCNN的昆虫识别_召回率_02

图3-2 Faster-Rcnn模型结构

资料或数据来源:S. Ren, K. He, R. Girshick and J. Sun, "Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks," in IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 39, no. 6, pp. 1137-1149, 1 June 2017, doi: 10.1109/TPAMI.2016.2577031.

3.2.1 特征提取层

Faster-Rcnn首先利用一组基础的卷积、激活和池化结构对输入图像进行特征图提取,提取到的特征层被作为RPN层和全连接层的输入。在Faster-Rcnn模型结构中,利用VGG模型[13][14]作为特征提取网络,该模型由13个卷积层、13个激活层和4个池化层构成。

3.2.2 RPN

为了改进传统特征边框检测耗时的问题,Faster-Rcnn通过RPN生成检测框,从而提高检测框的生成速度。RPN检测方式如图3-3所示。

基于FasterRCNN的昆虫识别_特征提取_03

图3-3 RPN检测原理

资料或数据来源:S. Ren, K. He, R. Girshick and J. Sun, "Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks," in IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 39, no. 6, pp. 1137-1149, 1 June 2017, doi: 10.1109/TPAMI.2016.2577031.

RPN通过在原始图尺寸上设置不同的候选框,通过候选框中是否有物体,从而将候选框划分为包括物体和不包括物体的候选框,从而提取出物体的候选区域。

3.2.3 Roi Pooling

对于传统的深度模型,当模型训练完毕后,必须保证测试时的输入图像与训练时的图像大小保持一致,当图像大小不一致时,需要对图像进行裁剪或者归一化为相同大小。但是对原始图像进行处理会破坏图像的原始结构信息。不同于传统的方法,Roi Pooling层根据输入的图像,首先将ROI映射到特征层所对应的位置,然后将映射后的区域划分为相同大小的块,最后对每个块进行最大池化,从而能够克服图像大小不一的问题。Roi Pooling层以RPN生成的候选区域和特征提取网络中最后一层的特征图作为输入,从而得到固定大小的特征图,用于分类。

3.2.4 分类

分类层会将Roi Pooling层形成的固定大小的特征层进行全连接,通过Softmax分类函数进行类别的分类,同时利用L1 loss完成边界框的回归,最终获得物体的精确位置。

第3章 Faster-Rcnn昆虫目标检测及软件设计

3.1实验数据集及实验环境

3.1.1环境配置

本文利用Anaconda集成平台,基于Python语言进行程序的开发,Python语言是开源语言,生态完善,对于多数深度学习框架都提供了调用接口,用户可以在任何计算机上免费安装和使用相关数据库。此外,Python语言易于学习,语法简单,代码维护简单,拥有丰富的扩展库,可以轻易的完成各种高级任务。

首先需要在Anaconda官网下载Anaconda软件进行安装,并进行环境变量的配置。安装结果如图4-1所示。软件安装完毕后,新建虚拟环境,并进行python 3.8和相关依赖库的安装,相关依赖库包括Pytorch、opencv-python等。

基于FasterRCNN的昆虫识别_目标检测_04

图3-1 软件安装结果

3.1.2 实验数据集

为了能够准确进行昆虫类别识别,需要相关数据集对模型进行训练。本文选择AI识虫数据,该数据集是百度与北京林业大学进行合作所收集的相关数据。数据集中包括2183张图片,其中训练集,验证集和测试集分别有1693张、245张和245张。该数据集一共有6种类型的昆虫,分别是Boerner、Leconte、Linnaeus、acuminatus、armandi和coleoptera。标签以.xml形式存储了图片尺寸、图像中包含的昆虫、昆虫名称、物体真实框和识别是否困难。部分图像结果和标注示例如图3-2和3-3所示。

基于FasterRCNN的昆虫识别_目标检测_05

图3-2 部分标注结果

基于FasterRCNN的昆虫识别_目标检测_06

图3-3 标注示例

3.2 实验衡量指标

通过多种指标对模型的泛化性和鲁棒性进行验证,指标包括精确率,召回率、F1值、平均精确度AP、LAMR。其中精确率代表模型检测出的目标有多少比例是真正的目标物体、召回率代表所有真实的目标中有多大比例能够被模型检测出来、F1值用来衡量模型精确度、平均精确度AP代表不同召回率情况下模型的准确率、LAMR用来描述目标检测任务中的漏检率。

3.3 训练及验证

本文基于Fast-Rcnn对模型进行验证,以VGG作为特征提取网络。模型训练过程中的损失函数和学习率变化结果如图3-4所示。

基于FasterRCNN的昆虫识别_目标检测_07

图3-4 模型损失函数和学习率变化曲线结果

接下来我们将通过多种指标对模型鲁棒性和泛化性进行测试。

4.3.1AP

不同召回率情况下,昆虫识别的AP变化结果如图3-4a到3-4f所示。

基于FasterRCNN的昆虫识别_Faster-Rcnn_08

图3-4aacuminatus昆虫识别AP结果          图3-4b leconte昆虫识别AP结果

基于FasterRCNN的昆虫识别_Faster-Rcnn_09

图3-4c coleoptera昆虫识别AP结果          图3-4d boerner昆虫识别AP结果

基于FasterRCNN的昆虫识别_Faster-Rcnn_10

图3-4e armandi昆虫识别AP结果          图3-4f linnaeus昆虫识别AP结果

图3-4 6种昆虫识别AP结果

实验结果显示,对于6种昆虫,模型对boerner识别的结果准确率最高,可达98.26%。虽然对acuminatus的识别准确率较低,但也可达到78%的识别准确率,可满足实际的应用需求。

3.3.2准确率结果

不同阈值情况下,昆虫识别的准确率变化结果如图3-5a到3-5f所示。

基于FasterRCNN的昆虫识别_Faster-Rcnn_11

图3-5aacuminatus昆虫识别准确率结果          图3-5b leconte昆虫识别准确率结果

基于FasterRCNN的昆虫识别_目标检测_12

图3-5c coleoptera昆虫识别准确率结果      图3-5d boerner昆虫识别准确率结果

基于FasterRCNN的昆虫识别_Faster-Rcnn_13

图3-5e armandi昆虫识别准确率结果          图3-5f linnaeus昆虫识别准确率结果

图3-5 6种昆虫识别准确率结果

实验结果显示,对于6种昆虫,随着阈值的增加,模型的识别准确率呈现上升趋势。模型对boerner识别的结果准确率最高,可达91.67%。但是对linnaeus的识别结果准确率较低,仅为60.00%。

4.3.3召回率结果

不同阈值情况下,昆虫识别的召回率变化结果如图3-6a到3-6f所示。

基于FasterRCNN的昆虫识别_特征提取_14

图3-6aacuminatus昆虫识别召回率结果          图3-6b leconte昆虫识别召回率结果

基于FasterRCNN的昆虫识别_特征提取_15

图3-6c coleoptera昆虫识别召回率结果         图3-6d boerner昆虫识别召回率结果

基于FasterRCNN的昆虫识别_特征提取_16

图3-6e armandi昆虫识别召回率结果          图3-6f linnaeus昆虫识别召回率结果

图3-5 6种昆虫识别召回率结果

实验结果显示,对于6种昆虫,随着阈值的增加,模型的召回率呈现下降趋势。模型对boerner识别结果的召回率最高,可达97.06%。但是对armandi的识别结果召回率较低,仅为66.67%。

3.3.4F1结果

F1值综合考虑了召回率和准确率,昆虫识别的F1值结果如图3-7a到3-7f所示。

基于FasterRCNN的昆虫识别_目标检测_17

图3-7aacuminatus昆虫识别F1结果          图3-7b leconte昆虫识别F1结果

基于FasterRCNN的昆虫识别_特征提取_18

图3-7c coleoptera昆虫识别F1结果         图3-7d boerner昆虫识别F1结果

基于FasterRCNN的昆虫识别_目标检测_19

图3-7e armandi昆虫识别F1结果          图3-7f linnaeus昆虫识别F1结果

图3-7 6种昆虫识别F1结果

实验结果显示,对于6种昆虫,随着阈值的增加,模型的F1呈现下降趋势。整体来说,模型对boerner识别结果的F1值最高,可达0.94。对linnaeus识别结果的F1值最低,为0.64。

3.3.5其他指标

为了进一步验证模型的识别结果,我们可视化了模型的真正率和假正率,真正率代表该类别被真实预测正确的数量,假正率代表其他类别被预测为该类别的数量。6种昆虫数量如图3-8所示,图中显示,不同种类昆虫的数量较为平均,未出现较大数量的类间方差。6中昆虫的识别结果如图3-9所示。图中绿色结果代表真正率、红色结果代表假正率。

基于FasterRCNN的昆虫识别_目标检测_20

图3-8 6种昆虫的真实数量

基于FasterRCNN的昆虫识别_目标检测_21

图3-9 6种昆虫单一类别情况下预测的真正率和假正率结果

最后,我们对模型的漏检率进行统计,统计结果如图3-10所示。结果显示,对boerner类别的漏检率最低,对acuminatus类别的漏检率最高,可以进一步佐证上述其他模型验证指标。

基于FasterRCNN的昆虫识别_Faster-Rcnn_22

图3-10 模型对6种模型的漏检率

4.4 界面设计实现及测试

模型训练完成后,为了增加交互性能,我们设计了如图3-11所示的交互界面,交互界面包括识别图像中昆虫、识别食品中的昆虫、利用摄像机实时识别昆虫三种方式。对于视频和视像头识别两种方法,可以通过开始和暂停控制视频和实时检测的速度。

基于FasterRCNN的昆虫识别_Faster-Rcnn_23

图3-11 昆虫识别系统交互界面

选择图像进行昆虫识别,图像选择界面如图3-12所示。

基于FasterRCNN的昆虫识别_召回率_24

图3-12 昆虫图像选择界面

基于选择后的图像进行昆虫识别的原始图像和可视化结果分别如图3-13和图3-14所示。

基于FasterRCNN的昆虫识别_目标检测_25

图3-13 待检测图像

基于FasterRCNN的昆虫识别_特征提取_26

图3-14 检测结果

基于选择后的图像进行昆虫识别的原始图像和可视化结果分别如图3-13和图3-14所示。识别结果种可显示识别到的昆虫种类以及预测到的该种类的置信度。除了可进行图片识别以外,系统还可以实现视频中昆虫类别的识别,仅需要选择相关检测视频即可实现相应的功能。最后,如果需要实现实时识别的效果,系统同样提供了打开摄像头进行实时检测方式。

最后,采用Intel oneAPI AI组件对模型实现端到端的优化,使用英特尔神经压缩器1.12,环境配置如图所示。

基于FasterRCNN的昆虫识别_特征提取_27

经过优化后的平均训练时间统计结果如下图所示,结果显示,经过优化后的平均训练时间更短。

基于FasterRCNN的昆虫识别_Faster-Rcnn_28

同时对经过英特尔oneAPI AI分析工具箱优化后的训练速度和推理速度进行统计可以发现,经过优化后可减少训练时间,加快推理速度。

基于FasterRCNN的昆虫识别_Faster-Rcnn_29


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
rr2lenfS8llG
作者其他文章 更多