APP下载

基于深度学习的蝴蝶定位与识别研究

2019-02-28李奇龙

科学与财富 2019年1期
关键词:深度学习

李奇龙

摘 要:本文基于2018年第三届中国数据挖掘竞赛-国际首次蝴蝶识别大赛,提出基于深度学习技术yolov3的蝴蝶种类自动识别技术,包括生态照片和模式照片的蝴蝶位置自动检测和物种鉴定。对yolov3的网络结构进行了微调,采用对比升降、色度升降、均值模糊、上下、左右翻转七种方式进行数据预处理以增强数据量,比较了Faster-Rcnn与YOLOV3模型网络的蝴蝶自动识别系统,以recall(召回率)和loss值。为评价指标,实验结果表明,基于yolov3 深度学习框架的自动识别系统在2s内对生态环境中的蝴蝶照片能实现自动检测和物种识别,且模型的mAP(Mean Average Precision)最低值接近70%。

关键词:深度学习;YOLOV3;蝴蝶识别

引言:昆虫是人类已知的动物界中数量最为庞大的一个分支,对该类群实现分类、鉴定是一项非常复杂和艰巨的任务,也是昆虫研究领域需要解决的重要问题之一(李成德,2003)蝴蝶作为昆虫的一个数量庞大的重要分支(已知的种类多达14000余种)对其种类的鉴定与识别是长期以来的昆虫分类研究的重要内容之一(周尧,1998)蝴蝶幼虫期以农作物或植物为食,是农林业重要害虫之一,对人类的生产与生活有严重的影响,因此,对蝴蝶的分类与鉴别有着十分重要的意义。目前随着计算机的普及,人工智能的迅速发展,为物种分类提供了大量的数据和分类方法。本研究在tensorflow框架下,在应用是yolov3模型上,利用迁移学习方法,对其网络结构进行微调,通过训练网络的权重参数获得了一个较好的蝴蝶实时自动识别的模型。

1.数据与方法

1.1蝴蝶图像数据集

蝴蝶的数据一部分来源于第三届国际数据挖掘大赛,数据集中包含了5695张蝴蝶的照片,分为生态照和标本照,其中生态照(如图所示)共计1425张,111种,均由大赛组委会提供,是也在单反相机所得的高清照片,生态照的数据分类如图所示。标本照极为模式照,共计有4270张1176种,包含生态照的所有种类。分为正本两面。如图所示,模式照的数据分类如图所示。另外测试照片由本次大赛的组委会提供的,如图所示。

1.2数据集划分

根据大赛组委会的数据,我们对所有生态照的蝴蝶位置进行标注在数据预处理中,采用对比升降、色度升降、均值模糊、上下、左右翻转七种方式进行数据预处理以增强数据量,便于训练(如图所示)。数据分为训练集和测试集,训练集包含模式照片和生态照,由于很多生态照样本的蝴蝶只有一个样本,所以去掉这类样本蝴蝶的种类,共计94种蝴蝶,我们最后选取了对应的模式照的94种进行标注。我们将组委会给的图片全部用于训练集,通过数据的预处理,最后得到()张生态照和()模式照。测试集数据均来自于第三届数据挖掘大赛组委会提供。

2.蝴蝶位置检测与种类识别方法

2.1模型的选择

2018年三月Joseph Redmon Ali Farhadi 等人对yolo结构进行改进,提出了yolov3模型,在iou为0.5时,相较于其他结构例如faster cnn和ssd更快更好。

与其他模型对比如下:

因此本研究基于yolov3结构,对其网络结构进行微调,更加适合蝴蝶种类的识别与定位。由于蝴蝶的图像特征主要包括颜色、纹理、形态和局部特征,和全局特征,特征提取较困难,所以选去了更适合对微小物体分类的yolov3模型,为了提高分类的精度,对模型进行了微调。

2.2训练模型与过程

YOLOV3 用 dimension clusters 固定 anchor box 来选定边界框。采用了多次检测,在三个尺度不同的特征图上分别设置了3个不同的anchor来进行检测,特征图尺度越大,anchor越小。为了提高精度,本实验讲anchor设置为5。神经网络会为每个边界框预测 4 个坐标:tx、ty、tw、th。如果目标 cell 距离图像左上角的边距是(cx, cy),且它对应边界框的宽和 高为 pw、ph,那么网络的预测值会是:

在训练期间,计算方差。如果预测坐标的 ground truth 是 t^*, 那相应的梯度就是 ground truth 值和预测值的差:t^*-t*。

YOLOv3用逻辑回归预测每个边界框的objectness score。如果当前预测的边界框比之前的更好地与ground truth对象重合,那它的分 数就是1。如果当前的预测不是最好的,但它和ground truth对象重 合到了一定阈值以上,神经网络会忽视这个预测。我们使用的阈值是 0.5。系统只为每个ground truth对象分配一个边界框。如果 先前的边界框并未分配给相应对象,那它只是检测错了对象,而不会 对坐标或分类预测造成影响。在分类过程中未使用传统的softmax对每个框进行分类,使用的是单独的逻辑分类器,用二元交叉熵损失来预测蝴蝶类别。其主要原因是softmax使得咩哥框分配一个类别,而对于蝴蝶的数据集,目标可能有重叠的类别标签,因此softmax不适用于多类标签分类,且softmax可被多个logistic分类器代替,速度会加快,且准确率不會下降。

在预测方面采用的是跨尺度预测,yolov3提供了3种尺寸不一的边界框,用以预测boxes,yolov3使用的特征提取模型通过FPN(feature pyramid network)网络进行改变,(如图所示)形成金字塔结构,最后得到一个3-d tensor(三维张量编码)其中包含:bounding box(边界框)的信息,边界框中的信息已经多少类的预测信息N*N*[3*(4+1+94)]94代表94类物体。

(FPN结构图)

我们用同样的网络设计来预测边界框的最终尺寸,这个过程其实也有助于分类预测,因为我们可以从早期图像中筛选出更精细的特征。 在处理本次比赛中采用的聚类方法是K-Means,用以得到bounding box的先验,选择9个簇以及3个尺度。然后将这9个簇均匀的分布在这几个尺度上,在特征提取上,我们使用的是Darknet-53, (Darknet-53是由yolov2,Darknet-19以及这Resnet,并在后面增加了一些shortcut connection)Darknet-53也可以实现每秒最高的测量浮点运算。这意味着网络 结构可以更好地利用GPU,使其预测效率更高,速度更快。这主要是 因为ResNets的层数太多,效率不高。 下图为Darknet-53的结构:

式(1)表示该网络的多任务的损失函数,即坐标预测、含object的box的confidence预测、不含object的box的confidence预测以及类别预测的和。

整个训练的流程如图所示,先对原始蝴蝶数据进行数据划分,对数据中蝴蝶位置进行人工标注,数据进行预处理,增加图像的数量,制作成训练集,进入神经网络进行训练,参数的调试,最后得到最优模型。由于训练集数据过于少,为了避免过拟合,采用了 YOLOv3 的 darknet53 进行 fine turn。把 Darknet53 作为特征提取器(Feature Extractor),训练的时候维持其预训练权重不变,不对其训练,只对后面添加的 Detection_net21 进行训练,所以整个网络只训练 21 层, 既提高了训练效率又避免了过拟合。Detection_net21 网络结构具体 如图所示:

训练过程:

本次实验采用的是tensorflow模型,所需软件python3.6及以上,tensorflow框架为1.3及以上。所需系统ubntu16.04.3所需软件为cdua_8.0.61 cudnn5.1 。再训练的过程中初使学习率为0.001每20000次训练后递减,迭代次数为80000次。输出为94类蝴蝶。

最后使用初始化的参数对训练图像进行前向传播操作,计算误差,再使用梯度下降算法和反向传播算法调整参数,通过不断的迭代使损失函数收敛到最小值,讲此时训练出的权值参数作为蝴蝶分类模型的最终权值参数。

2.3蝴蝶识别的评价指标

任务一:score=所有覆盖率的平均值*100%。其中覆盖率为(A交B)/(A并B), A与 B 分别为参赛队伍输出的检测区域与大赛官方标注的真值区域。任务二:score=分类 正确的照片数/生态照总数*100%。R=TP/(TP+FN)

3.实验结果与分析

任务一的结果为68.42 任务二的结果为70.52

4.结论

通过实验与对比,我们发现yolov3在目标检测与定位上效果更佳,另外本文提出的基于yolov3的深度学习模型,不仅仅可以对蝴蝶样本进行分类与检测,还可以用于其他生物等方向,而且yolov3的速度更快。

致谢:

我们特别感谢“第三届数据挖掘大赛—国际首次蝴蝶识别大赛”给我们提供的数据集,同时我们也非常感谢yolov3的提出者,因为他们的工作才使得我们的自动识别定位系统得以实现。还要感谢成都理工大学提供的实验室为我们在做实验,训练数据提供了保障。

参考文献:

[1]Redmon J, Farhadi A. YOLOv3: An Incremental Improvement[J]. 2018.

[2]Ren S, He K, Girshick R, et al. Faster R-CNN: towards real-time object detection with region proposal networks[C]// International Conference on Neural Information Processing Systems. MIT Press, 2015:91-99.

[3]Liu W, Anguelov D, Erhan D, et al. SSD: Single Shot MultiBox Detector[J]. 2015:21-37.

[4]周爱明, 马鹏鹏, 席天宇,等. 基于深度学习的蝴蝶科级标本图像自动识别[J]. 昆虫学报, 2017(11).

[5]Jia Y, Shelhamer E, Donahue J, et al. Caffe: Convolutional Architecture for Fast Feature Embedding[C]// Acm International Conference on Multimedia. ACM, 2014:675-678.

[6]Abadi M, Barham P, Chen J, et al. TensorFlow: a system for large-scale machine learning[J]. 2016.

[7]柴瑞敏, 曹振基. 基于Gabor小波與深度信念网络的人脸识别方法[J]. 计算机应用, 2014, 34(9):2590-2594.

[8]李彦冬, 郝宗波, 雷航. 卷积神经网络研究综述[J]. 计算机应用, 2016, 36(9):2508-2515.

猜你喜欢

深度学习
从合坐走向合学:浅议新学习模式的构建
面向大数据远程开放实验平台构建研究
基于自动智能分类器的图书馆乱架图书检测
搭建深度学习的三级阶梯
有体验的学习才是有意义的学习
电子商务中基于深度学习的虚假交易识别研究
利用网络技术促进学生深度学习的几大策略
MOOC与翻转课堂融合的深度学习场域建构
大数据技术在反恐怖主义中的应用展望
深度学习算法应用于岩石图像处理的可行性研究