资源描述
中国大陆的海岸线长达18000多千米,有着丰富的海洋资源。鱼可不只有作为人类的盘中餐这个作用,还是生态链里面的重要平衡者,没有了他们生态都会遭到巨大的破坏,也是地球上重要的海洋生物资源,所以对于水产养殖的现代化管理,渔场环境的实时监测,尤其是水下模糊环境下的鱼类识别对我国开发和利用海洋鱼类等生物资源有着不可或缺的价值。传统的鱼类图像识别往往存在识别速度慢,识别率低,误判率,漏检率高等问题。随着现代信息社会,新科技,新技术,新设施的发展以及深度学习算法框架的完善,许多基于深度学习的水下鱼类图像识别算法被提出,例如:基于-CNN深度学习的鱼类目标检测算法、基于水下图像底层特征的鱼类目标检测等算法,但通常都因为水下环境恶劣、可见性差、拍摄图片品质差等因素导致最终识别效果很差。本文将深度学习优秀的学习能力以及可移植性好等优点运用于水下模糊环境的鱼类识别领域,开展了基于深度学习的水下模糊环境下鱼类识别研究。目前YOL v5在目标检测领域从速度和精度综合来看,是明显优于其它先进的目标检测算法如:EfficientDet、SSD、Fast -CNN等。所以本文提出一种基于YOLOv5算法的水下模糊环境下鱼类识别模型。本文的主要工作和成果如下:(1)本文拍摄并制作了共计3595张水下模糊环境下的同种鱼类图片数据。为了克服水下模糊环境下拍摄图片整体光照强度低、可视范围小、水下背景模糊、杂质多等问题,首先,在预处理阶段采用暗通道先验算法,以提高图像的清晰度、明度,减少图片品质导致人工数据集标注的误差。(2)针对YOLOv5算法召回率低、mAP(平均准确度)低的问题,研究采用xxxxxx。实验结果验证了本文基于改进YOLOv5算法的水下模糊环境下鱼类识别模型的有效性。关键词:鱼类鉴别;目标检测;YOLO;深度学习1 绪论1.1 研究背景还要生态系统是迄今为止已有的生态系统中最大的,海洋发展战略的提出,让它的相关所有物种数目都得到了提高。地球上约有200万种不同的海洋生物。海洋里面的鱼类扮演了人们的食物餐品和生态系统重要的调节者的两个角色,两个方面都赋予了无可替代的职能。因而在水产养殖行业的智能化运营、鱼类生活环境的生物检测,特别是如何辨认深水区的鱼类品目这些关键的技术的学习和掌握对我们国家海洋业的各方面发展都气到了很重要的作用。鱼类检测和识别系统可以探索海洋生物的活动规律,运于改进水产养殖捕捞的方式,并在海洋鱼类知识科普宣传、海洋环境管理、稀有生物保护等领域有广泛的用途。其为检测海洋的鱼类品种的重要辅助工具,为今后对未知海域探索的有力保障。鱼类识别问题,由于鱼类的形态各异,大小不一,且水下拍摄图像存在能见度低,环境复杂,噪声大等问题。因而和另外的检测工作来比有了更高的要求。传统实现鱼类识别与分类的算法是基于传统的机器学习。首先由人工根据事物设计特征,然后向分类器中输入特征向量来完成分类任务。然而,人工特征提取往往存在着特征提取困难、缺乏泛化性与通用性、工作量复杂又耗时等不可避免的缺点。近年来,由于人工智能在图像处理、自然语言处理、语言识别等诸多领域的取得了很大的成就,基于深度学习的图像识别技术得到了快速发展,并广泛应用于人脸识别、行为识别、字符识别等领域,具有很高的识别水平和识别精度以及鲁棒性。本文将深度学习优秀的学习能力以及可移植性好等优点运用于水下模糊环境的鱼类识别领域,开展了基于深度学习的水下模糊环境下鱼类识别研究。在解决了以前的方式不容易得到特性的难题的基础上,还有提升图像的精确度和增大可以辩识的位置。在水下模糊环境下,基于深度学习的鱼类识别检测将是一个非常重要的研究课题,它不仅能克服传统方法中的特征提取难的问题,而且可以提高图像识别的准确率,扩大识别范围。同中国进行更多的海洋渔业的使用起到了很大的帮助。1.2 国内外研究现状1.2.1 深度学习在图像识别领域研究现状对算法设计的全面理解一开始是作用于图像的处理方面。2018年的图灵奖获得者加拿大人杨立昆在1989年与他的合作伙伴就发现了卷积神经网络(CNN),CNN为一类包含了卷积层的全面神经网络模型。理论上来说,独立的卷积神经网络结构可以由一对特殊化处理的非线性卷积层、两个固定子采样层和一个全连通层构造出来。它最低包含了五层隐藏层,它是通过胡贝和维塞尔这两个专家建造的动物视觉模型为基础来构思的,尤其在动物的V1和V2视觉皮层里面的各种类型的细胞的功能的借鉴。它在图像大小的方面获得了很大的突破。但是,CNN持续了很多年依旧没有得到创新,主要是因为卷积神经网络在大尺寸图像中不能达到理想的效果,计算机无法理解存在大量像素的自然图像中的内容,因此CNN在计算机可视化技术这个范畴里并不能造成很大的改变。2012年10月Hinton教授和他的学生Alex Krizhevsky构建了一个由65万多个神经元、6000多万个待估计参数组成的卷积神经网络,在著名的ImageNet问题上取得了37.5%的Top1错误率。取得了当下最好的图像识别处理结果,极大地促进了深度学习在工业领域的综合应用,使深度学习在图像识别领域取得了良好的成就。 CNN至今为止,在图像识别这个领域已经进去了它发展的天花板阶段。然而辛顿于2012年发展并发表的深度神经网络却在行业里掀起了巨大的浪花。创新之处在于提升了神经系统的算法机制,权值衰减被于神经系统调节的过程被应用,以减小权值的幅度,阻碍网络的过度拟合情况。而且,计算机包括运算和CPU在内的能力正在光速提高,所以能够得到越来越多的结果在练习中得到发挥,让计算机的因特网上能够拿到拟合度比之前高的联系用的参数。中国的互联网领军企业百度公司早就在2012年就将它应用在很多识别(人间、物象)上,还利用它设计和制造了许许多多对方式产生了爆炸性影响的商品。到现在为止,深度学习网络模型对很多的人或者物的图像识别和记载已经能实现很高的精确度了。深度学习模型在提升识别方面的准确率和功能性上已经很成熟,还节省了大把的曾经浪费在识别上的时间避,让运行速率有了让人叹为观止的进步。1.2.2 目标检测方法自从2006年至今,在欣顿、班吉奥、杨立昆等专家学者的带领下,深入研究出了不少的相关深度神经网络的学术论文。辛顿教授与他的弟子克里泽夫斯基创建了一个具备65万多个神经元、6000多万个待估计数据的卷积神经网络,而且给它取了一个名字为Alex Net1网络,非常大地升高了卷积神经网络的分类精度。从这以后,卷积神经网络被绝大多数专业人士所熟知。现如今,以卷积神经网络的为基础的模型很多都是在计算机视觉领域被使用。大多数是被用在目标定位与识别、目标检测、语义分割等。运动目标的研究是计算机视觉领域的一个重要研究方向,许多基于卷积神经网络的模型也被使用。计算机对目标运动的分析大方向能够分为3个方面:运动分割、目标检测、目标跟踪、动作识别和行为描述2。目标检测是运动目标分析一个重要方面,同时运动目标的研究也是分析监控视频的基本任务。因为监控视频设备局所不具备的很多功能导致的环境、分辨率、气候、光线等方面和环境的多样性问题,因为视频画面中的物体体态不同,经常会出现物体被遮挡,运动不规则,而目标检测算法的结果会影响后续的跟踪、动作识别和行为描述。因此,目标检测技术还需要进一步的研究,以适应实际应用中的各种场景。目标检测技术一般应用于图像中存在多个目标的场景中。我们不仅要检测目标的位置,还要同时识别多个目标。即目标定位和目标分类。目标分类就是输出一系列分数矩阵来表示感兴趣的对象是出现在输入图像中还是图像中选定的部分中,表示感兴趣的对象出现在输入图像中还是图像中选定的部分的可能性。目标定位是确定目标在输入图像或选定图像中的位置和范围。边界框通常用来表示对象的位置信息。目前,目标检测算法主要是基于深度学习模型,可以分为两类:(1)两阶段目标检测算法,将目标检测问题分为两个阶段,第一阶段在第二阶段先生成区域,使用卷积神经网络把候选帧分成许许多多的种类,我们大部分应用的算法有:R-CNN、Fast R-CNN、Faster R-CNN和R-FCN等。(2)One-Stage要完成第二个目标的算法是Region Proposals,完全在因特网里寻找特征来预测物体类别概率与位置坐标信息,常见算法有YOLO、SSD、Retina Net和Corner Net等。一般而言,Tow-Stage算法较为准确,而One-Stage算法较为快速。下面对上述两种类型的算法进行介绍。1.2.2.1 两阶段目标检测算法两阶段目标检测算法准确率较高,而One-Stage算法较为快速。Two-Stage算法的目标检测任务分为两个阶段,第一阶段首先尝试识别并预测物体位置,第二步则加工第一次的检测结果来获取目标图像更准确的坐标信息,然后再依次对每个候选区进行单阶段目标识别。R-CNN为Ross Girshick 首次应用的利用替补区换掉传统滑动窗口的目标检测算法3,这个算法总共需要进行三个过程,首先基于Selective Search(选择性搜索)生成一些候选的区域即Proposals;然后对于这些候选区进行长和宽的归一化后,输入到CNN中提取特征,最后,利用SVM (support vector machine)分类模型结合NMS (non - maximum suppression),利用窗口评分来抑制每类对象的非最大值,并提出重叠建议框。最后,得到各类回归校正后得分最高的窗口,并得到区域边界,以判断候选区域中是否有目标以及目标的类别。该算法需要大量的特征提取,计算量大,耗时长。Ross Girshick在R-CNN的基础上提出了Fast R-CNN目标检测算法4。该算法将特征获取和分类放在在一个网络中进行联合训练。使用RoI-Pooling层代替了空间金字塔池化操作,加速了CNN提取特征的过程,RoI Pooling是利用一个固定尺寸的矩形框将特征进行分割,得到不同候选区域,继而把这里的候选区域的特殊性质传入Softmax分类器和位置回归函数里面。这样的方式把在网络中加入了多任务函数边框回归,完成了端到端目标检测算法。任少卿, 何凯明等人为了解决曾经有目标检测算法检测速度迟缓的麻烦,制订了 Faster R-CNN目标检测算法5。 该方法使用了RPN(Region Proposal Network)区域建议网络代替了Selective Search,极大地提高了生成Proposals的速率。整个算法大致可分为两个步骤:第一步是在滑动窗口上生成大小和长度与宽度比率不同的锚框,设置IoU的阈值,并根据Ground Truth(正确地)校准这些锚框。标记)的标志。因此,传递到RPN网络的样本数据将分类为锚框坐标以及每个锚框中是否有对象(两个分类标签)。 RPN网络将每个样本映射到一个概率值和四个坐标值。概率值反映了锚框具有对象的概率,并且使用四个坐标值进行回归以定义对象的位置。最后,将两个分类和坐标回归的损失统一起来,作为RPN网络的目标训练。 RPN所获得的区域建议书根据概率值进行筛选后,经过类似的标记过程,然后传递到R-CNN子网中进行多分类和坐标回归,并且多任务损失也被用于组合分类损失函数和回归损失函数。RPN所获得的区域建议书根据概率值进行筛选后,经过类似的标记过程,然后传递到R-CNN子网中进行多分类和坐标回归,并且多任务损失也被用于组合分类损失函数和回归损失函数。RPN所获得的区域建议书根据概率值进行筛选后,经过类似的标记过程,然后传递到R-CNN子网中进行多分类和坐标回归,并且多任务损失也被用于组合分类损失函数和回归损失函数。 该方法避免了上述方法的对大量候选区域进行检测的操作,减少了目标检测的时间。1.2.2.2 单阶段目标检测算法与两阶段目标检测算法不同,单阶段目标检测算法将物体分类和物体定位放在一个步骤,没有生成候选区过程,直接从图片获得预测结果,也被称为Region-free方法,不仅简化了目标检测的整个过程,同时大大减少了目标检测所需的时间,在检测处理速度上更加满足现实实际需求。YOLOv1(You Only Look Once)5把没有剪裁过的图片作为网络的输入,把图像划分成SS的几个部分,所有的网格来说,研究时都把他当做有B个边框(含有所有边框是目标的置信度和所有边框区域在不同的类别上面的概率),在前面的基础上我们能得道SSB个目标窗口,再按照IoU阈值排出很少有可能性的目标窗口,最后一步是NMS删除冗余窗口即。输出结果不仅仅有各种类别的置信度,还有预测框的位置坐标。该方法一个网格只预测两个框,因此无法对小目标和靠得很近的物体进行有效的检测。SSD算法5把YOLOv1算法没有很好的检测性能这个方面改良升级了,检测速度不降低的同时还在增强了检测算法的性能。该算法对先验框的尺寸进行了固定,每个特征中有固定个数的先验框以进行检测,同时,该算法考虑到低层特 征中小目标特征较为明显,使用了多个尺度的特征来进行检测,以解决YOLOv1算法 中的小目标检测较差的问题。YOLOv2(Redmon J et al. )为YOLOv1算法的一个多个问题补丁加强的版本,该方法设计了一个新的特征提取网络来提取图像的特征,并使用聚类算法来确定 先验框的尺寸,同时用于检测的特征尺寸为1313,对小目标检测具有更好的性能。 此外,在训练时使用多个尺度的图像对网络进行训练,使网络更能适应多个尺度的目标。YOLOv3(Redmon J et al. )算法是YOLOv2算法很多方面的改良加强版。在该算法中设计了一个特征提取能力更强的Darknet-53网络,并对聚类算法进行 了改进以获取更加精确的先验框尺寸。此外,引入了特征金字塔结构实现了多尺度检测,使模型的检测性能显著提升,同时检测速度未降低。和它的性能差不多的时候,和SSD比较起来, 整整快了三倍。目标检测到现在为止依旧为计算机视觉领域比较积极的学术方向,单阶段检测算法与两阶段检测算法均取得了很多喜人的成果,然而和以上的其它算法比较来说,YOLOv3算法在目标检测领域的性能更加优越,达到了速度和准确率的平衡,从运算速度上看,能达到接近实时的表现,从检测效果上看,有着较高的准确率。1.2.3 水下目标检测算法水下目标检测是通过对水下光学信息进行分析,检测到水下图像或者视频中感兴趣的目标。近年来,各国研究人员对水下目标检测已经进行了大量的研究。国外对水下目标检测方法的研究开展较早,并提出了一些代表性的方法。文献(WhiteDJetal.2006)针对同一种类的但品种不同的鱼进行了研究,使用机器学习算法实现了不同品种的鱼的分类。文献(BazeilleSetal.2007)对水下颜色的变化模型进行了分析,并采用颜色特征进行水下目标检测,但对图像序列的一致性没有考虑。文献(AlsmadiMKetal.2010)对BP分类器进行了改进,使用Memetic算法对其进行优化,对提取的特征进行分类,达到了84%的准确率。文献(ChristianBetal.2010)提出了一种水下目标分割方法,该方法基于主动轮廓,在目标的颜色跟背景不接近的情况下取得了比较满意的结果,但当两者接近时,检测结果会变得比较差。文献(Marlindiaetal.2011)利用Randon变换检测水下目标并对目标几何形状进行重构,因为目标几何形状由直线连接形成,在检测得到直线后,采用直线方程以计算边的角度和数目,进而重构得到目标几何形状。文献(BeijbomOetal.2012)提出在多尺度上采用颜色特征跟纹理特征检测水下珊瑚目标,实验结果表明,该方法对跨越年份和位置的水下珊瑚的覆盖率进行了准确的估计,为可靠的水下珊瑚礁图像的注释打下了坚实的基础。文献(ShihavuddinasASMetal.2012)提出利用视觉显著性对水下视频进行检测,将单帧图像跟邻帧图像的均值做差,然后利用显著性算法对目标进行检测,速度上获得了较大突破,精度上依旧达不到预期。文献(KimDetal.2014)提出一种水下目标的检测方法,该方法的对象选择基于多模板、图像分割基于颜色,并通过实验验证了该方法的性能。文献(HsiaoYHetal.2014)通过对水下图像的底层特征进行提取,并采用稀疏表达方法来设计分类器,以对真实的水下非限制的环境中的鱼类目标进行检测识别,准确率达到81.8%,但是实时性比较差。文献(CutterRGetal.2015)采用Haar-like特征与多个级联分类器以检测海底非限制环境中的岩石鱼类目标,准确率达到89%,但在光照条件比较差、背景比较复杂、分辨率比较低、噪声比较大、非正常姿态的非限制环境中的检测结果比较差,误检率比较高。文献(ChuangMetal.2016)采用相位傅里叶变换方法对鱼的纹理特征进行提取,并通过实验验证了该方法对纹理特征提取的优异性,但只对其感兴趣的目标的轮廓相对敏感。中国关于水下目标检测反面仅仅对很少的物种进行了调查,没有形成一个完整体系。冯占国等(2007)利用不变性特征对水下目标进行检测,该方法生成了基于区域矩的仿射变换不变量,用来克服水下的不确定因素为目标检测带来的影响。张铭钧等(2009)使用灰度-梯度恒等矩完成于水下目标的测试,这个方式采用应用梯度特征来填补灰度特征空间信息,对研究结果的准确性有重要影响。但在深水区域目标的灰度信息不够显著,检测的准确率也比较低。李涛等(2010)对模糊熵的概念提出了新的表达,并改进了可自动选取阀值的PSO方法(朱炜等2007),以实现对水下图像的分割。张志强等(2011)对淡水鱼的分类问题进行了研究。首先使用图像处理技术处理图像,然后使用淡水鱼图像的颜色分量和长短轴比值等特征来表示淡水鱼图像,并利用这些特征实现了4种淡水鱼的识别。万鹏等(2012)得出了一种以神经递质调节机制的认识鱼类的方式。首先对鱼图像进行分析,将鱼体图像进行切分,然后采用切分后鱼体的平均宽度和鱼体的长度的比值来表示鱼体特征,最后使用反向传播神经网络对两种鱼类进行了分类,分类准确率为92.5%。董欣(2013)利用注意机制以解决水下图像视觉模糊与目标颜色失真导致检测困难,但该方法只考虑了水下图像的颜色特征的恢复和增强,对颜色特征变化不明显的方向与亮度特征的变化情况没有考虑,通用性较差。马伟英(2014)结合偏振信息和Itti模型(IttiLetal.1998)以实现对水下目标的检测。实验结果证明了该方法在一定程度上可以克服水下复杂环境对于目标检测的不利影响,有效提升了水下目标的检测精度。吴一全等(2014)寻找到了在最小二乘法为基础的认识鱼类的方式。并使用Krawtchouk矩、灰度共生矩阵以及蜂群算法对该识别算法进行优化,实现了5种鱼类的识别。郭传鑫等(2015)对显著图与GrabCut算法进行融合,以实现对水下图像的分割。但是该方法的运行速度比较慢,无法达到实时性。吴健辉等(2016)采用鱼体背部弯曲潜能算法,对鱼鲫(Carassiusauratus)、草鱼(Ctenopharyn godonidellus)、团头鲂、鲤四种淡水鱼进行了识别研究,基本上能准确实现四种鱼体的分类识别。乔曦(2017)提出一种分割评估水下图像的方法,该方法基于主动轮廓且自动定位,实验结果表明,该方法优于文献(Otsuetal.1979)提出的方法和文献(Chanetal.2001)提出的主动轮廓方法。同时该方法可以对水下目标快速进行自动定位,并精确分割水下目标。然而,还是不能实现好速度的准时。基于计算机视觉的水下目标检测的研究已经取得了重大进展,但是依然存在各种各样的问题。这些方法都是传统的基于人类经验的检测方法,会导致重要特征缺失,分类准确率低。此外,由于水下环境的复杂性,这些方法只能够应用在特定环境,无法适用不同场景,同时上述方法的检测速度和准确率也需要进一步的提升。1.3 研究目的及意义、内容、技术路线1.3.1 研究目的及意义现阶段对于我国海洋资源的开发和利用,没有一个快速有效的办法运用在海洋鱼类图像识别领域,本研究的目的是针对海底观测图像质量差导致海洋鱼类识别困难和缓慢的问题,寻找到一一个在深度学习的水下模糊环境下鱼类识别基础上的解决方案。研究内容中国大陆的海岸线长达18000多千米,有着丰富的海洋资源。所以对于海洋里的鱼类识别,尤其是水下模糊环境下的鱼类识别对我国开发和利用海洋鱼类等生物资源有着不可或缺的价值。本文将深度学习优秀的学习能力以及可移植性好等优点运用于水下模糊环境的鱼类识别领域,开展了基于深度学习的水下模糊环境下鱼类识别研究。本文结合YOLO v5检测算法的优缺点,提出一种改进的YOLOv5水下模糊环境下鱼类识别方法。第一章为绪论,主要介绍了水下模糊环境下鱼类识别技术研究的相关背景、研究现状、研究目的及意义,并阐述了国内外现在主流的目标检测算法和鱼类识别的现状。同时梳理了水下模糊环境下鱼类识别的难点,通过上述分析确定了本文的、研究内容、技术路线,最后展示了本论文的组织架构安排。第二章为背景知识介绍,本章首先对YOLOv5的相关理论进行介绍。主要介绍图像特征的卷积神经网络、YOLOv5的网络结构以及边界框预测等内容并介绍了目标检测常用的数据集以及使用场景,最后简单说明了一下目标检测与识别任务中常用的评价指标。第三章介绍本实验基于改进YOLOv5 水下模糊环境下的鱼类检测方法第四章总结与展望,本章对本文的研究成功进行了总结,并对本文技术的改进方向进行了展望。1.3.2 技术路线图1-1 技术路线图2 相关知识2.1 YOLOv5模型YOLO(you only look once)为一个很有研究价值的one-stage方法。顾名思义,这种识别方法只需要扫描一次,就可以实时输出待测图中物体的位置以及类别。将检测问题转换为回归问题。通过一个CNN网络就可以完成特征提取,然后转换成预测的中心位置(x,y)、高(h)、宽(w)以及类别,从而完成对视频以及图像的实时检测。YOLO是采用一个CNN的模型来实现目标检测的,具体做法是:首先将输入的图片切割成SS的网络,共有S2个grid。每个grid只能识别出一个物体,如果这个物体只能在grid内,那就与滑动窗口法无异了。但YOLO则是只需要检测物体中心点是否落在此grid内。继而,所有的grid均要计算得出B个bounding boxs,存在五个不定量,他们是待测物体中心的坐标(x,y)和bounding boxs的高(h)与宽(w),还有此次预测的置信度(confidence score)。置信度分为两部分,一部分是bounding boxes内有特征对象的概率大小记为Pr(object),另一部分是bounding boxes的准确度,准确度一般由预测框和实际框的IOU(intersection over union,交并比)来表示,一般记为IOUPrdTruth。置信度即为准确度与Pr(object)的乘积。只剩下了分类的方面没有明确了,于所有的grid来说,它都会将C个类别的预测过程得到的概率给出来,它说明的是从这个小室负责预测的bounding boxes目标可以归纳在每一个概率数据里面。将前文所有的结论和数据全部结合起来。实现了只需要扫描一次,就可以实时输出待测图中物体的位置以及类别的目的。YLOLv5则采用了更轻量级的网络结构以及内置的超参优化策略实现了整体性能更为强大的目标检测算法。它把YOLOv4搭载的Darknet变换为pytorch。实现了140 FPS 的快速检测。出于邻域的正样本anchor匹配方式的想法,把正样本的数目提高了。而且YOLOv5能够作用于数据加载器让所有的批训练数据都被运输,还应用mosaic加强对数据组的练习。继而让模型训练里存在问题最大的“小目标识别问题”,解决了,让它的小物体检测能力提升。YOLOv5的网络结构如图2-1所示。图2-1从图片能够得到YOLOv5的网络结构可以分成输入端、Backbone、Neck、Prediction4个。2.1.1 YOLO网络架构2.1.1.1 输入端(1) Mosaic数据增强YOLOv5使用和前一版v4一模一样的Mosaic方法来提高数据。实现方式是:先随机读取4张图片,分别对所读取图片进行随机缩放、裁剪、翻转、色域变化等操作后,再随机分布进行拼接从而实现图片的组合和边界框的组合。如果数据集不会被改变,存在特别多的数据集被检测,还让模型学习变得不再简单,特别是里面的不系统缩放让目标变得更复杂了,给还可以提高网络的鲁棒性。这样还可以达到减少GPU的目标,一般的扩充数据组同样能进行这个操作,然而事实却是每个每台计算机仅存一个GPU,所以MOSAIC的学习过程里,能够一起对四张图片的数据计量,让Mini batch要少的数据,只一个GPU就够用了,而且最后结果不差。自适应锚框重计算YOLO中对于包括数据在内的全部的预训练数据集,均包含规定了相应长宽的锚框。在网络训练中,网络在初始锚架的基础上输出预测帧,与实际帧的ground truth进行比较,计算两者的差值,然后反向更新网络参数。YOLOv3网络模型采用K-means聚类方法,对训练样本已标注过的边界框的尺寸进行聚类,确定最合适的先验框的尺寸,以提升预测边界框和真实目标的重合率。所以在使用时我们不能忽视初始锚框产生的效应,就像YOLO5于coco数据库里最开始应用的的锚框参考为下图2-2所示。在,YOLOv3、YOLO4里,对其中每一组结果进行应用的时候,我们一般会使用特别的软件来求出初始锚框的数值。然而YOLOv5里面把这个算法加入到代码中,在各次应用时,搜寻所有计算机数据组里面效果最好的,能被应用的最佳锚框值。图2-1(2) 自适应图片缩放如今现存的目标检测算法里,一般是把尺寸有差别的图片剪裁作用到同样的尺寸,然后再将一样尺寸的图片放到一个共用的检测网络里。YOLO算法中一般都是416416,608608等等规格。但由于实际情况中,原始图片的长宽比不同就会导致填充黑边的比较多,就会出现信息冗余,降低推理的速度。而YOLOv5则是依赖datasets.py的letterbox函数把最初需要处理的照片智能化地放缩来达到减少黑点的目的,让数据应用的负担减轻,而且还提高的最后的处理速度。2.1.1.2 Backbone(1) Focus从输入端拿到的原始特征图一般都比较大,直接进行卷积计算量会非常大。而YOLOv5的Focus主要是先对特征图进行间隔slice(切分),然后再进行组合,这样后续操作的特征图的大小就会小很多。便于后续处理的加速。可以把它解释为yolov2内存在ReOrg(多尺度) + Conv操作,还能说成亚像素卷积的非正方向的机制,用通俗点的话说也为将结果划成四块,所有的结果都能看做放大一倍收集来的,再使用channel(通道)把它们结合起来,结尾使用卷积操作。让数据的流失范围降到最低的同时收集样本应该说是它具备的最大优势。我们在这里应用的最初权重文件YOLOv5s则把最初的6086083大小的可视文件加在Focus结构,经过切片工作就制得30430412的图像,w和h就由608减小成304,让之后的工作变得事半功倍。13
展开阅读全文