热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

论文学习:基于集成YOLO算法的蝴蝶检测与分类

0.论文名称与地址连接ButterflydetectionandclassificationbasedonintegratedYOLOalgorithm论文地址:x

0.论文名称与地址连接

Butterfly detection and classification based on integrated YOLO algorithm
论文地址:xxx.itp.ac.cn//abs/2001.00361


1.摘要


Insects are abundant species on the earth, and the task of identification and identification of insects is complex and arduous. How to apply artificial intelligence technology and digital image processing methods to automatic identification of insect species is a hot issue in current research. In this paper, the problem of automatic detection and classification recognition of butterfly photographs is studied, and a method of bio-labeling suitable for butterfly classification is proposed. On the basis of YOLO algorithm[1], by synthesizing the results of YOLO models with different training mechanisms, a butterfly automatic detection and classification recognition algorithm based on YOLO algorithm is proposed. It greatly improves the generalization ability of Yolo algorithm and makes it have better ability to solve small sample problems. The experimental results show that the proposed annotation method and integrated YOLO algorithm have high accuracy and recognition rate in butterfly automatic detection and recognition.


昆虫是地球上丰富的物种,昆虫的鉴定和鉴定任务复杂而艰巨。如何将人工智能技术和数字图像处理方法应用于昆虫种类的自动识别是当前研究的热点问题。研究了蝴蝶照片的自动检测和分类识别问题,提出了一种适合蝴蝶分类的生物标记方法。在YOLO算法的基础上,综合不同训练机制的YOLO模型的结果,提出了一种基于YOLO算法的蝴蝶自动检测与分类识别算法。它大大提高了Yolo算法的泛化能力,使其具有较好的解决小样本问题的能力。实验结果表明,本文提出的标注方法和综合YOLO算法在蝴蝶的自动检测和识别中具有较高的准确率和识别率。


2.介绍

 蝴蝶作为昆虫重要的环境指标之一,种类复杂多样。蝴蝶种类的鉴定直接关系到人类和动物食用的农作物。目前,广泛使用的可靠蝴蝶识别方法效果不佳。人工识别蝴蝶种类不仅工作量大,而且需要长期的经验和知识积累。如何实现昆虫物种的自动识别是计算机视觉领域的研究热点之一。
 昆虫物种的自动识别需要对数字图像进行识别和分类,图像分类的效果与纹理特征提取的质量密切相关。2004年,Gaston等人[2]介绍了人工智能技术和数字图像处理方法在数字图像识别中的应用。此后,许多专家学者在这方面做了大量的工作[3,4]。近年来,随着机器学习的发展,研究人员提出了许多相关的蝴蝶检测应用算法。2012年,Wang等人[5]使用基于内容的图像检索(CBIR)提取蝴蝶的图像特征,如颜色、形状。Bohan Liang等人。对不同的纹理特征、特征权重和相似度匹配算法进行了比较,并提出了相应的分类方法。2014年,Kaya Y等人[6]应用局部二值模式(LBP)[7]和灰度共生矩阵(GLCM)[8]提取蝴蝶图像的纹理特征,然后利用单隐层神经网络进行分类,提出了一种基于极值学习机法则的蝴蝶物种自动识别方法。同年,Kang S H等人[9]提出了一种基于分支长度相似性(BLS)熵分布的有效识别方案,该方案利用从不同角度观察到的蝴蝶图像作为神经网络的训练数据。2015年,李帆[10]根据蝴蝶的形态特征和纹理分布,利用图像块的灰度共生矩阵(GLCM)特征和K近邻分类算法,提出了相应的特征提取和分类决策方法。2016年,Zhou A M等人[11]证明了该深度学习模型的可行性,并在蝴蝶标本的自动识别中具有较强的泛化能力。
 2018年,谢娟英等[12]采用了基于快速RCNN的蝴蝶检测和物种识别方法[13],并在自然生态环境中利用蝴蝶照片扩展了数据集。该算法对自然生态环境中的蝴蝶照片具有较高的定位精度和识别精度。传统的蝴蝶识别算法存在以下问题:
 1.在自然生态照片中,蝴蝶往往以小目标的形式出现(蝴蝶图像的面积太小),传统的蝴蝶识别算法往往无能为力。
 2.培训所需的数据量巨大,但找不到高质量的带注释的公共数据集。
 3.一些稀有蝴蝶在自然状态下的照片太少,无法直接用作训练集。
Joe Redmon[1]提出的YOLO模型是目标检测领域的一种著名的端到端学习模型。与RCNN[13]序列的两步模型相比,YOLO模型执行速度快,避免了背景误差,但定位精度差,某些分类的单模型误报率高。

为了提高蝴蝶识别的效率,本文将充分利用中国数据挖掘大赛和百度百科提供的数据,建立包含大量蝴蝶生态照片的蝴蝶数据集,在自然环境中利用生态照片进行模型训练,并在YOLO V3算法的基础上,提出了一种用于蝴蝶生态照片定位识别的集成算法。本文的主要结构如下:

1.数据集、数据注释和数据预处理。利用文献[14]提供的蝴蝶生态照片和百度等网络照片数据库中的图片,通过自标记,建立了一个包含2342个精确标记自然环境的蝴蝶数据集。通过实验筛选出适合于蝴蝶标记的方法,并对标记方法进行了总结。
2.集成的YOLO算法。该算法继承了YOLO算法的识别速度,优化了YOLO算法,提高了YOLO算法对细目标的识别能力,提高了YOLO算法对小样本的学习能力和泛化能力。为基于atlas的后续目标检测提供了一个良好的思路。
3.实验和分析。介绍并分析了YOLO算法在不同标注和处理模式下的性能,以及在蝴蝶测试集上集成YOLO算法的性能。
4.总结与展望。


2.数据集、数据注释和数据预处理


2.1 数据集

本文使用的蝴蝶数据集都是蝴蝶在自然生态环境中的照片,以下简称生态照片。一部分来自文献[14]提供的数据集,另一部分来自百度等搜索引擎和图片库中的图片,包括蝴蝶94种11属。图1展示了蝴蝶生态学的一些样本。
在这里插入图片描述
文献[14]共拍摄照片5695张,其中蝴蝶照片有标本照片和生态照片两种。文献[12]指出,由于标本的拍摄角度和背景环境与生态照片有很大不同,在训练集中只使用生态照片的训练效果明显优于同时使用标本和生态照片进行蝴蝶检测和分类的训练效果,本研究的目的在于对自然环境中的蝴蝶进行定位,确定蝴蝶种类,因此本文仅选取了1048张自然生态环境中的蝴蝶照片。
数据集中每张照片包含的蝴蝶样本大多只有一个,最大数量不超过20个。每种蝴蝶至少由四个具有典型重尾分布的样本组成。
测试集基于文献[14]提供的标准测试集,包含678张生态照片,其余为训练集。


2.2 数据标注

因为生态照片中蝴蝶的姿态比较复杂,甚至有很多蝴蝶重叠在一起,文献[14]提供的数据集混乱,没有统一的标注标准。我们制定了一套统一的标注标准,并根据该标准手工标注了所有照片中所有蝴蝶样本的位置和种类。

在文献[14]提供的数据集中,蝴蝶所在区域的标注有两种方式:一是以蝴蝶的触角和腿为界,如图2(a)所示;二是以蝴蝶的躯干和翅膀为界,如图2(b)所示。我们使用两种注释方法来统一数据集。

在这里插入图片描述
因为有些蝴蝶有社会属性,许多蝴蝶在照片中经常重叠。文献[14]中提供的数据集使用将重叠区域中的多只蝴蝶标记为单个样本的方法,如图3(a)所示。我们还开发了一个用于标记这种情况的标准:重叠区域中的每个蝴蝶都被独立地标记,并且被遮挡的部分被忽略,如图3(b)所示。该方法不仅增加了训练样本的数量,而且提高了模型对复杂场景的识别效果。
在这里插入图片描述


2.3 数据预处理

基于深度学习的目标检测算法往往需要大量的数据作为训练集。本文采用旋转、镜像、模糊、对比度升降等9种变换方法对训练集进行扩展,并结合不同的预处理方法及其参数(如旋转角度、曝光等),得到最优的预处理方法。结果将在第4部分中显示。

通过上述过程,蝴蝶在自然生态环境中的自动检测和分类问题已经转化为一个多目标的检测和分类问题。与常见的目标检测问题不同,蝴蝶自动检测和分类问题有三个难点:1)分类多(94个分类);2)样本分布不均匀。一些珍稀品种的蝴蝶样品明显少于其他种类的蝴蝶;3)必须将不同的小类(不同种类的蝴蝶)归入同一大类(蝴蝶),即需要进行细粒度分类。因此,本文对蝴蝶的自动检测和分类的研究就更加困难。


3.蝴蝶检测与识别方法


3.1 YOLO模型

Joe-Redmon提出的YOLO模型[1]是目标检测领域一种著名的端到端学习模型。其特点是与RCNN[8]级数的两步模型相比,YOLO模型的执行速度快得多,在细粒度检测中表现良好。我们的任务选择了YOLO的第三代车型YOLO v3。

YOLO V3模型的结构如图4所示。为了检测自然照片中不同大小(面积比例不同)的蝴蝶,YOLO V3在特征提取网络(darknet-53)后,利用多尺度特征图对不同大小的目标进行检测。

YOLO V3输出三个不同比例的特征图。经过79层卷积网络后,通过三层特征提取网络得到第一尺度的检测结果。这里用于检测的特征图是输入图像的32倍下采样。由于降采样率高,特征地图的感知场相对较大,适合于检测图像中面积较大的目标。

上采样卷积是从79层后面完成的。第81层特征图与第61层特征图相结合。经过三层特征提取网络,得到了第九十一层的细粒度特征图,即相对于输入图像的16倍下采样特征图。它具有中等尺度的感知视野,适合于检测图像中面积比例中等的目标。

最后,再次对91层特征图进行采样,并与36层特征图进行连接。经过三层特征提取网络,得到相对于输入图像低8倍采样的特征图。它具有最小的感知场,适合于检测图像中面积比例较小的目标。

每个输出包含3d2分割5+N维向量,其中符号D表示该比例下输出特征图的边长度。数字3以每个网格单元中的先验框数为中心,符号N是分类数。每个向量的前四个维表示预测框的位置,第五个维表示候选框中目标的概率,5+i维表示候选框中目标属于i类的概率。

YOLO使用均方和误差作为损失函数。它由四部分组成:预测盒误差(ERRcenter)、预测边界宽度和高度误差(ERRwh)、分类误差(ERRclass)和预测置信误差(ERRconf)。

在这里插入图片描述
这里,n是网格单元中预测帧的数目,(x,y)是预测帧的中心坐标,w和h分别是预测帧的宽度和高度。由于大预测盒引起的误差明显大于小预测盒引起的误差,YOLO采用了预测宽高平方根的方法,而不是直接预测宽高。如果第一个网格单元中的第j个预测框负责对象,则我们得到ιobj ij=1,反之,ιobj ij=0。
在这里插入图片描述
YOLO认为每个网格单元只包含一个分类对象。如果c是正确的类别,那么ˆpi(c)=1,反之,ˆpi(c)=0。
在这里插入图片描述
其中ci表示预测框中包含的对象的置信度。如果实际边界框中有对象,则ˆci是实际边界框和预测框的IoU值。相反,有ˆCi=0。在损失函数的不同加权部分引入参数λ,提高了模型的鲁棒性。在本文中,我们有λcoord=5,λcoord=0.5。
在这里插入图片描述


3.2 综合YOLO算法

为了得到更准确的分类和检测结果,提高magic的泛化能力,本文进一步对多个YOLO模型的结果进行处理,得到了集成的YOLO算法。算法的伪码如算法1所示。其核心思想是利用多个训练效果较好的模型分别对图像进行预测,并对预测帧进行聚类。聚类过程如图5所示。
在这里插入图片描述
每个定位框可以描述为一个四维向量bi=(x1i,x2i,y1i,y2i),一个整数和一个实数pi。它表示:在左上角为x1i、y1i、右下角为x2iand和y2i的矩形中,有种数为ciis pi的蝴蝶的概率。设每个集群集为S1,S2,…,Sk。对于每个S i(i=1,2,…,k),满足:对于∀i,j∈S,ci=cj。将集合的“大体”定义为:
在这里插入图片描述
其中,B(S)是集合S的“聚合”定位框,P(S)是集合S的“聚合”概率,C(S)是集合S的“聚合”分类。每次对单个预测边界框进行分类时,从与检测框具有相同分类的所有集合中选择概率最大的集合S,并且IoU(B(S),B)≥0.5。如果没有符合条件的,则将该框放置在新的集合Sk+1中

在这里插入图片描述


4.实验结果与分析


4.1 评价指标

本文以联合交叉点(IoU)作为蝴蝶定位任务的评价指标,定义为两个区域面积与合并区域面积之比。最佳比例为1,即完全重叠。实验中以IoU=0.5作为阈值,即预测盒和原标签盒正定位,IoU>0.5,IoU≤0.5正定位有误。本文将平均精度均值(mAP)作为蝴蝶分类任务的评价指标。地图来源于精确性(pre)和召回(recall)。计算公式如下。
在这里插入图片描述
其中,TP(rue阳性数)、FP(假阳性数)和FN(假阴性数)分别表示预测为阳性的阳性样本数、预测为阳性的阴性样本数和预测为阴性的阳性样本数。
根据不同的置信水平,可以得到多个(pre,recall)点,并以查全率为横坐标,查准率为纵坐标,绘制出预查全率曲线。其中,平均精度AP是预召回曲线和召回轴周围的区域,这是预召回曲线的积分,如下所示
在这里插入图片描述
在实际应用中,通常用矩形面积和来逼近积分。本文采用PASCAL-VOC Challenge在2010年后的计算方法[15],即召回可以分为n个块[0,1n,…(n−1)n,1],然后平均准确度(AP)可以表示为
在这里插入图片描述
在这里插入图片描述


4.2 YOLO V3模型效应实验

本文测试了两种不同的蝴蝶标记方法:一种是用蝴蝶的触角作为框架的边界,称为全标度标记法;另一种是用蝴蝶的躯干和翅膀作为框架的边界,称为非全标度标记法。采用不同的预处理方法,两种注释方法的最佳结果如表1所示。
可见,非满标度法的计算结果明显优于满标度法。由于满标度法中蝴蝶触角周围的面积较大,这会使蝴蝶触角周围的面积在标记区域中所占的比例降低,从而使背景环境对分类的影响变大。非全标记方法更适合于蝴蝶的自动检测和识别任务。
由于YOLO模型中输入图像大小的不同会导致不同输出尺度下的网格单元数目的不同,因此本文测试了不同输入尺寸下单个YOLO V3模型在蝴蝶自动定位任务中的性能。
采用非满标度法,无需任何其他预处理,三种输入尺寸的最佳结果如表2所示。
可见,采用608px×608px的分辨率输入具有较好的精度。
在这里插入图片描述
在蝴蝶自动定位和分类任务中,采用不同的预处理方法对608px×608px输入进行非完全标记,测试了单个YOLO V3模型的性能。表3显示了对分类结果有较大影响的两个参数的影响。
可以看出,通过旋转原始图像(0°、45°、90°、180°)并将其分别曝光1.0、1.2、1.5和1.8次,可以获得最佳的分类结果。mAP的值可以达到0.7766。特别是深色和保护色蝴蝶的识别率明显高于第一组。


4.3 综合模型效能试验

我们在一个YOLO模型中选择了三个性能最好的模型(表3中的模型3、4、5)进行集成。在检测任务中,准确率达98.35%。在分类任务中,在测试集分类(94类)中得到0.798地图,在家庭分类(11类)中得到0.850地图。
表4显示了集成Yolo模型和主流目标检测模型(如fast RCNN、Yolo v3等)在蝴蝶自动检测和分类任务中的性能。
上述结果表明,本文提出的数据标注和预处理方法适用于蝴蝶的自动检测和分类任务。它还表明了由我们对自然生态照片中蝴蝶的检测和物种识别是非常有效和正确的。


5 总结与展望

目前,目标检测领域主要分为两大流派:端到端检测和分布式检测。端到端的检测速度很快,但与分布式检测方案相比,精度有很大差距。利用端到端模型的快速性和蝴蝶种群间的高度相似性,提出了一种基于不同浓度YOLO的综合模型,保持了端到端模型的检测速度,提高了检测精度和定位精度。
集成模型的本质是在各种条件下,根据模型的最优解来寻找更好的解。这样可以提高模型在特定训练集上的性能,提高模型的综合泛化能力。在文献[14]提供的测试集中,该模型在生态照片定位任务中的准确率达到98.35%,在物种定位识别任务中的准确率达到0.7978,在被试定位识别任务中的准确率达到0.8501。
蝴蝶在物种间具有很高的相似性,这表明在知识地图中,蝴蝶之间存在着很强的关系。对于范围更广的目标检测任务,利用知识地图可以对物种进行准确分类和定位,通过不同的模型能力和不同的识别焦点可以进一步优化其识别任务。


推荐阅读
  • 能够感知你情绪状态的智能机器人即将问世 | 科技前沿观察
    本周科技前沿报道了多项重要进展,包括美国多所高校在机器人技术和自动驾驶领域的最新研究成果,以及硅谷大型企业在智能硬件和深度学习技术上的突破性进展。特别值得一提的是,一款能够感知用户情绪状态的智能机器人即将问世,为未来的人机交互带来了全新的可能性。 ... [详细]
  • 通过使用CIFAR-10数据集,本文详细介绍了如何快速掌握Mixup数据增强技术,并展示了该方法在图像分类任务中的显著效果。实验结果表明,Mixup能够有效提高模型的泛化能力和分类精度,为图像识别领域的研究提供了有价值的参考。 ... [详细]
  • 每日一书丨AI圣经《深度学习》作者斩获2018年图灵奖
    2019年3月27日——ACM宣布,深度学习之父YoshuaBengio,YannLeCun,以及GeoffreyHinton获得了2018年的图灵奖, ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 在机器学习领域,深入探讨了概率论与数理统计的基础知识,特别是这些理论在数据挖掘中的应用。文章重点分析了偏差(Bias)与方差(Variance)之间的平衡问题,强调了方差反映了不同训练模型之间的差异,例如在K折交叉验证中,不同模型之间的性能差异显著。此外,还讨论了如何通过优化模型选择和参数调整来有效控制这一平衡,以提高模型的泛化能力。 ... [详细]
  • 独家解析:深度学习泛化理论的破解之道与应用前景
    本文深入探讨了深度学习泛化理论的关键问题,通过分析现有研究和实践经验,揭示了泛化性能背后的核心机制。文章详细解析了泛化能力的影响因素,并提出了改进模型泛化性能的有效策略。此外,还展望了这些理论在实际应用中的广阔前景,为未来的研究和开发提供了宝贵的参考。 ... [详细]
  • 从2019年AI顶级会议最佳论文,探索深度学习的理论根基与前沿进展 ... [详细]
  • 表面缺陷检测数据集综述及GitHub开源项目推荐
    本文综述了表面缺陷检测领域的数据集,并推荐了多个GitHub上的开源项目。通过对现有文献和数据集的系统整理,为研究人员提供了全面的资源参考,有助于推动该领域的发展和技术进步。 ... [详细]
  • 「爆干7天7夜」入门AI人工智能学习路线一条龙,真的不能再透彻了
    前言应广大粉丝要求,今天迪迦来和大家讲解一下如何去入门人工智能,也算是迪迦对自己学习人工智能这么多年的一个总结吧,本条学习路线并不会那么 ... [详细]
  • TensorFlow入门上
    前置准备在阅读本文之前,请确定你已经了解了神经网络的基本结构以及前向传播、后向传播的基本原理,如果尚未了解,可以查看下文。神经网络初探​chrer.com也可以直接在我博客阅读Te ... [详细]
  • Python与R语言在功能和应用场景上各有优势。尽管R语言在统计分析和数据可视化方面具有更强的专业性,但Python作为一种通用编程语言,适用于更广泛的领域,包括Web开发、自动化脚本和机器学习等。对于初学者而言,Python的学习曲线更为平缓,上手更加容易。此外,Python拥有庞大的社区支持和丰富的第三方库,使其在实际应用中更具灵活性和扩展性。 ... [详细]
  • 当前,众多初创企业对全栈工程师的需求日益增长,但市场中却存在大量所谓的“伪全栈工程师”,尤其是那些仅掌握了Node.js技能的前端开发人员。本文旨在深入探讨全栈工程师在现代技术生态中的真实角色与价值,澄清对这一角色的误解,并强调真正的全栈工程师应具备全面的技术栈和综合解决问题的能力。 ... [详细]
  • 图像分割技术在人工智能领域中扮演着关键角色,其中语义分割、实例分割和全景分割是三种主要的方法。本文对这三种分割技术进行了详细的对比分析,探讨了它们在不同应用场景中的优缺点和适用范围,为研究人员和从业者提供了有价值的参考。 ... [详细]
  • AI TIME联合2021世界人工智能大会,共探图神经网络与认知智能前沿话题
    AI TIME携手2021世界人工智能大会,共同探讨图神经网络与认知智能的最新进展。自2018年在上海首次举办以来,WAIC已成为全球AI领域的年度盛会,吸引了众多专家学者和行业领袖参与。本次大会将聚焦图神经网络在复杂系统建模、知识图谱构建及认知智能应用等方面的技术突破和未来趋势。 ... [详细]
  • 深度学习中的Vision Transformer (ViT)详解
    本文详细介绍了深度学习中的Vision Transformer (ViT)方法。首先介绍了相关工作和ViT的基本原理,包括图像块嵌入、可学习的嵌入、位置嵌入和Transformer编码器等。接着讨论了ViT的张量维度变化、归纳偏置与混合架构、微调及更高分辨率等方面。最后给出了实验结果和相关代码的链接。本文的研究表明,对于CV任务,直接应用纯Transformer架构于图像块序列是可行的,无需依赖于卷积网络。 ... [详细]
author-avatar
mobiledu2502918033
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有