基于YOLOv4的蛇类图像识别
2021-02-19王博鑫李丹
王博鑫 李丹
摘 要:文章基于YOLOv4进行了蛇类检测。在谷歌的Open Image数据集中下载已标注蛇类图片,使用谷歌的Colab平台进行实验,在Darknet框架下对网络模型进行训练。经对比,YOLOv4的最终性能高于常见的onestage检测算法,相近准确度下速度快于twostage检测算法。最终结果显示,YOLOv4在识别蛇类图像时准确度达95.55%,平均检测时间为37 ms,帧处理速率达27FPS(帧/秒)。该检测速度和检测精度满足大部分背景下蛇类检测的需求,使蛇类检测与识别具备了可行性。
关键词:深度学习;卷积神经网络;蛇类;YOLOv4;目标检测
中图分类号:TP391.4 文献标识码:A文章编号:2096-4706(2021)13-0034-03
Snake Image Recognition Based on YOLOv4
WANG Boxin, LI Dan
(School of Computer and Software, Jincheng College of Sichuan University, Chengdu 611731, China)
Abstract: In this paper, snake detection is carried out based on YOLOv4. Download the marked snake pictures in Google,s Open Image dataset, conduct experiments using Google,s Colab platform, and train the network model under the Darknet framework. After comparison, the final performance of YOLOv4 is higher than the common onestage detection algorithm, and the speed of it is faster than the twotage detection algorithm in the context of similar accuracy. The final results show that the accuracy of YOLOv4 in identifying snake images reaches 95.55%, the average detection time is 37 ms, and the frame processing rate reaches 27 FPS (frames/second).The detection speed and accuracy meet the needs of snake detection in most backgrounds, which makes snake detection and recognition feasible.
Keywords: deep learning; convolutional neural network; snake; YOLOv4; object detection
0 引 言
蛇是生物種群中常见的爬行动物。我国的蛇类具备高度的种类丰富性和资源丰富性,是蛇类最多的国家之一。但蛇类伤人事件时常发生,尤其是在野外,所以需要有效的办法检测蛇类并预警。现在,蛇类的检测判别基本上依赖于人工来完成,但蛇的栖息环境并非固定,会因为各种原因变化,且蛇类喜阴凉潮湿,活动地点往往有杂物遮挡,因而检测判别蛇需要花费许多时间成本以及人工成本,且有一定可能误判漏判。近年来,深度学习作为机器学习领域的一个研究方向,进步非常迅速。基于深度学习的目标检测在诸多领域中都展现出非常好的效果,得到了广泛应用。截至目前,有关蛇类检测识别的研究寥寥可数,而深度学习中的目标检测是当下非常热门的计算机视觉应用,利用它来进行蛇类检测研究非常有前景。
目标检测试图找到图像中需要检测的目标并给出它们的类别和位置,由于受到诸多干扰因素(例如不同类目标整体外形上的差异、又或者是图像拍摄时光线、物体覆盖等要素)的影响,目标检测当仁不让地成为CV领域最有难度的问题之一。目标检测方法大致有两类:一阶检测算法(onestage)和二阶检测算法(twostage)。twostage目标检测算法首先生成许多候选区域(即可能包含目标的区域)当作样本,然后再对生成的各个候选区进行检测划分,twostage的典型算法有R-CNN[1]、SPP-Net[2]等算法;其次是onestage算法,该类算法直接通过网络进行特征提取从而预测目标的类别概率和位置坐标值,但准确度相对较低,速度相对更快。
YOLOv4是近年目标检测领域里综合较好的算法。作为一个onestage算法,它能够以很快的速度完成检测同时保持一定的准确度。简而言之就是,速度快的没它准,准的又没它快,因此它一出世便引人瞩目,因为它能够在实时检测中大放异彩。它在原有的目标检测架构的基础上,使用近年来卷积神经网络领域中最好的优化策略,在输入端、骨干网络、激活函数、损失函数等诸多方面都有了一定程度的改进,从而使得其在速度和精度上比起上一代的YOLOv3都获得了一定程度的提升。
1 YOLOv4算法在蛇类检测中的应用
1.1 yolov4网络框架
YOLOv4以CSPDarknet53特征提取网络为主干,网络结构如图1所示。骨干网络即主干特征提取网络CSPDarknet53包含一个Darknet卷积块和5个CSP(Cross Stage Partial)模块,在各个CSP模块前有3×3的卷积核,可以加强网络的学习能力。使用CSPDarknet53结构,减少了很多参数,提升了卷积神经网络的学习能力,既易于训练又保证了准确性。
YOLOv4在主干中运用了Mish。为了更高的准确度和更好的泛化性,应当使用平滑的激活函数,Mish就是一个平滑的激活函数。如下式:
f(x)=x·tanh(ς(x))
其中,ς(x)=1n(1+e^x)。
YOLOv4采用路径聚合网络(PANet)[3]作为颈部、添加空间金字塔池(SPP),采用一系列最大池化,增加了网络的感受野且分离并融合目标在不同尺度的上下文特征;继续使用YOLOv3中的检测头作为头部整合通道,计算损失。YOLOv4采用了几种数据增强方法如Mosaic、自对抗训练等。
Mosaic方法使用4张图片并以缩放、翻转、裁剪等方法操作后再组合,极大丰富了检测数据集。使检测目标的背景更多样,从而减少了对特定背景的依赖,具有更好的健壮性;SAT自对抗训练包括两个阶段:首先,神经网络修改输入的原图,然后使用最初的边界框和类别标签与修改后的新图像训练,对模型泛化能力的提升和防止过拟合都有帮助。同时采用标签平滑(Label Smoothing)、学习率余弦退火衰减(CosineAnnealing)等方法优化网络的训练过程[4]。
1.2 损失函数
以往的目标检测模型例如YOLOv3的损失函数MSE(均方误差)损失函数,是通过预测框和真实框的中心点坐标和长宽信息设置的。均方误差损失函数把检测框的坐标及长宽信息看作独立变量,但这其实并不恰当,因为这些信息相互间是有关系的。解决方法是使用IoU及一系列改进的损失函数来替代均方误差损失函数。在YOLOv4网络训练时使用了CIoU边界框回归损失函数,它在之前IoU系列损失函数的基础上增加了对长宽比的惩罚项,用来测量长宽比的一致性。经过这个改进后,CIoU考虑得更加全面,能够获得以下改进式:
其中α是权重函数,v用来度量长宽比的一致性[5]。
相较于传统目标检测中使用的MSE损失,CIoU较为完美地解决了对检测目标尺寸大小敏感的缺点,将重心放在预测框与实际框的位置关系上,增强了目标框回归的稳定性,不会出现其他边界框回归损失函数在训练中发散的问题。
2 数据采集
考虑到蛇类数量众多且较难拍摄的情况,使用谷歌推出的Open ImageDataset。该数据集包含数百万张已标注图片,拥有6 000个类别的标签,平均每张图有8个标签,非常适合用在深度学习的训练中。下载其中蛇类的图片,由于是已标注的图片,只需要将其下载整合即可。数据集共有1 425张图像,训练集含1 000张图像,测试集含425张图像,分配比例约为7:3,如表1所示。
3 实验与分析
3.1 模型训练
本实验在谷歌Colab平台上进行实验,在Darknet框架下训练。使用GPU以加速网络训练,显卡是Tesla V100-SXM2-16GB,CUDA版本11.2,最大学习率为0.001,且可以在中断后继续训练。图像输入大小为608×608,RGB三通道。因为图片较少,随机选取1 425张已标注数据集中1 000张图片,约为总数据集的80%用于训练,余下425张约为总数据集的30%用于验证。
在训练过程中,损失值在0~800次迭代时震荡较大,大体呈下降趋势。800~1 850次迭代期间,损失值下降缓慢,逐渐从2左右降至1.2左右。1 850次迭代之后损失值一直在1.2附近小幅波动,迭代2 000次结束训练时损失值稳定在1.2。
3.2 训练结果
实验中平均每张图像检测耗时0.037 1 s,换算为帧数即检测速率可达27 FPS,能够满足实时识别蛇类图像。由实验可知,整体准确率可达95.55%,保持了较高的准确率,表明网络预测的结果具备较高可靠性。数据集中因部分光线以及杂物遮挡,对准确率存在一定影响。训练集1 000张,使用实验平台将测试图像输入网络模型进行测试,测试效果如图2所示。
在同样的数据集、设备和同样参数设定的条件下,与采用YOLOv3[6]和Faster R-CNN[7]网络检测算法对比,如表2所示。
YOLOv4检测算法的准确度与二阶(twostage)算法Faster R-CNN接近,却相比其FPS快了11帧/秒。相比于同为一阶(onestage)算法的YOLOv3,准确度提高了2.14%,FPS提升了4帧/ 秒。
4 应用——蛇类检测预警系统
蛇类的检测识别与预警对人类群居地区的安全至关重要,特别是在部分蛇类常出没的地区。近年来,随着科考人员野外考查的进一步开展,我国蛇的种类和数量不断增多,在部分地区经常发生蛇类攻击人类甚至咬人事件。出于以人为本的理念,不论是毒蛇还是非毒蛇,都建議在蛇类常出没的高危地区配置蛇类检测预警系统。蛇类喜阴凉、潮湿,行动轨迹难以预测,容易对人民生命财产安全造成威胁。鉴于由专业人员进行人工检测的难度大、成本高,且无法安排专业人员在各个蛇类易出没的人类居住地区随时随地进行人工检测,故设计该蛇类检测模型以应用于蛇类检测识别预警系统。此模型能够很好地应对复杂的场景,并且相较于人工检测,成本大幅降低且可行性大幅提高。如上图2,在色系相近的背景下也能较好地检测识别出蛇类。不过被遮挡目标的检测准确度还有待提升,由于数据集较小,数据丰富程度也有待增强。
5 结 论
本文针对国内蛇类检测识别缺失的问题进行研究,提出了基于YOLOv4算法的轻量级蛇类图像检测识别模型,模型适用范围囊括了大部分常见蛇类,能够很好地解决许多场景下蛇类图像的检测识别问题。基于YOLOv4目标检测网络进行目标检测,建立数据集并增强数据,训练模型,提高了模型的准确度。本文方法比传统图像处理方法和过去的蛇类深度学习目标检测算法性能更佳,能够做到实时检测。但因为已标注蛇类图像数据集较少,有一定的局限性。希望后续能够增加数据集的数量,相信经过更多的训练后,模型的各方面都会有提升。后续也会继续收集数据集,对模型进行优化和完善。
参考文献:
[1] GIRSHICK R,DONAHUE J,DARRELL T,et al. Rich Feature Hierarchies for Accurate Object Detection and Semantic Segmentation [C]//2014 IEEE Conference on Computer Vision and Pattern Recognition.Columbus:IEEE,2014:580-587.
[2] HE K,ZHANG X Y,REN S Q ,et al. Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition [J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2015,37(9):1904-1916.
[3] MEI Y Q,FAN Y C,ZHANG Y L,et al. Pyramid Attention Networks for Image Restoration [EB/OL].[2020-04-28].https://www. researchgate.net/publication/341040607.
[4] BOCHKOVSKIY A,WANG C Y,LIAO H Y M. YOLOv4:Optimal Speed and Accuracy of Object Detection [J/OL].(2020-04-23).arXiv:2004.10934 [cs.CV].https://arxiv.org/abs/2004.10934.
[5] ZHENG Z,WANG P,LIU W,et.al. DongweiRen.Distance-IoULoss:Faster and Better Learning for Bounding Box Regression [C]//Proceedings of the AAAI Conference on Artificial Intelligence.2020,34(7):12993-13000.
[6] REDMON J,FARHADI A. YOLOv3: An Incremental Improvement [J/OL].(2018-04-08).arXiv:1804.02767 [cs.CV].https://arxiv.org/abs/1804.02767.
[7] REN S,HE K,GIRSHICK R,et al. Faster R-CNN:Towards Real-Time Object Detection with Region Proposal Networks [J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2017,39(6):1137-1149.
作者简介:王博鑫(2000.04—),男,汉族,四川西昌人,本科在讀,研究方向:软件工程。