【《基于yolov3目标检测算法的明火识别算法设计案例》3800字】_第1页
【《基于yolov3目标检测算法的明火识别算法设计案例》3800字】_第2页
【《基于yolov3目标检测算法的明火识别算法设计案例》3800字】_第3页
【《基于yolov3目标检测算法的明火识别算法设计案例》3800字】_第4页
【《基于yolov3目标检测算法的明火识别算法设计案例》3800字】_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于yolov3目标检测算法的明火识别算法设计案例1.1明火识别方法介绍1.1.1边界框预测(BoundingBoxPrediction)在yolov3中,神经网络预测四个坐标(tx,ty,tw,th)供边界框使用。这四个坐标就是预测输出。而实际上的预测在此记为bx,by,bw,bh。其计算公式为:(公式1.1)(公式1.2)(公式1.3)(公式1.4)(cx,cy)为目标距离左上角的边距,可以理解为以左上角为原点建立直角坐标系,cx,cy即为第四象限坐标点。其对应的边界框的宽就是pw,ph(也就是预测框的尺寸)。Yolov3采用了回归的思想,在预测了边界框的objectnessscore。当此时的预测框与真实的目标对象重合时,objectnessscore就被置为1,但是如果没有完全重合的话,但是重合度也达到了某个值,神经网络就会放弃这个预测。一般情况下,这个值成为阈值初始被设置成0.1.而其他的重合为0的边界框并没有检测到目标,因此也不会给分类产生影响。1.1.2类预测(classprediction)Yolov3在预测类时没有在延续之前的单标签分类,而是采用了多标签分类去预测边界框,并且没有采用softmax,因为其不能满足高性能需求,在训练时,类别预测采用的方法是二元交叉熵损失。这个改进使得yolo可以在复杂领域得到应用,在数据集的选择上也将更加开放。在这个数据集中有许多重叠的标签(比如男人和人)。假如用softmax,每个预测框里只能有一个类别,但这种情况是不符合逻辑的,所以多标签可以更好的使数据逼真,更加具有现实意义。判断方式主要是通过Sigmoid函数,该函数输入被限制在0至1,在输出大于一半(即0.5)时,就表示属于该类。1.1.3跨尺度预测(PredictionAcrossScales)Yolov3采用的跨尺度预测其实质上就是含有三种大小不一的边界框,系统提取尺寸不一的特征,从而形成pyramidnetworks(金字塔型网络)。Yolov3在特征提取器上扩充了几个卷积层,最后一个卷积层用来预测边界框、框中目标和分类预测,这在相比于yolov2还是有着很大的提升。Yolov3所采用的coco数据集中,神经网络给这三种尺寸分别预测了三个边界框,一共就是九个边界框。得到的具体张量就是,公式中的数字分别代表:三种尺寸,四个边界框,一个目标预测和八十种分类预测。之后,我们从的得到的特征图中采用两次上采样操作,即将特征图放大,这样我们就有高分辨率和低分辨率两种特征图,再将这两种特征图连接,其目的就是得到上采样特征和细粒度特征,这样就能得到更加有效的信息。最终我们再将这些特征送入卷积层,就能达到相似且张量被扩大两倍的效果,这对小目标的检测是有很大的提升。1.1.4特征提取器(FeatureExtractor)Yolov3最大的一个更新点就是使用了一种新的网络去做特征提取,它是在yolov2采用的网络以及Darknet-19等网络的基础上,由连续的卷积层组合而成,因此它的体量相比于yolov2也更大,一共有53个卷积层,所以我们称之为Darknet-53(图1.1)。图1.1Darknet-53Darknet-53网络结构采用全卷积的同时,也含有了residual结构。使得yolov3含有它们的优点,使得yolov3的训练难度降低的同时,也提升了目标识别精度。Darknet-53网络同时期与其他网络相比,具有更好的性能。如表1.2所示是Darknet-53网络与其他网络在ImageNet上比较:表1.2Darknet53网络与其他网络参数比较Backbone(骨干网络)Top-1Top-5BnOps(每秒数十亿次运算)BF/S(十亿次浮点运算/每秒)Fps(帧率)Darknet-1991246171ResNet-10177.193.719.7103953ResNet-15277.693.829.4109037Darknet-5377.293.818.7145778由表的数据可以看出Darknet-53精度可以和ResNet系列网络相提并论,并且优于它们。它的浮点运算更少,速度也就更快。同时与ResNet-101相比,速度是其1.5倍,与ResNet-152相比,用时只不到其一半。由于浮点运算更少,也就使GPU的利用率很高,带来的直接优点就是预测效率高,速度更快。1.2yolov3明火识别方法实验研究1.2.1yolov3实验准备(1)实验环境本次实验环境配置如表1.3所示,采用算法为yolov3。表1.3环境配置表参数名称参数操作系统Window10cpu型号Intel(R)Core(TM)i7-7700HQCPU@2.80GHzGPU0Intel(R)HDGraphics630Gpu1NVIDIAGeForceGTX1050内存8G核心工具Python;tensorFlowCUDA10.1CNDNNV7.6.5Python3.8TensorFlow2.1.0本实验是基于TensorFlow平台,TensorFlow为2.1.0版本。集成开发环境选择Anaconda,开发语言为python,python版本为3.8,其他工具分别为CUDA、CUDN、OPENCV,都组成了实验不可缺少的地基作用。(2)yolov3实验环境搭建为保证本次实验使用的数据集能在yolov3的Darknet-53网络上训练,本实验采用TensorFlow2.1.0环境,集成开发环境选择Anaconda,为了提升深度学习框架在NVIDIA的GPU显卡的加速运算,安装了CUDA。同时,针对神经网络进行加速,需要安装额外的神经网络加速库cuDNN。1.2.2明火识别实验过程与对比试验(1)数据集准备本实验的数据集来源在第四章中有详细叙述,在数据标注完成后,还需要建立标签文件fire_s,用于分类时预测,其过程为新建names文件,命名为fire_voc2012并输入fire作为标签。紧接着开始训练过程。(2)生成tfrecord文件在完成对数据集的标注后,系统就要开始读入图片,如果一张张读入,系统将会占用很大的内存。为了减轻系统负担,我们还需生成tfrecord文件,其原理就算是申请一部分连续内存用于读入图片。tfrecord文件包括train和val文件,其生成如图1.6所示:图1.6tfrecord文件生成截图上图是对VOC2021数据集生成tfrecord文件时的截图,对VOC2012和VOC2020数据集的生成在此省略。(3)迁移训练在生成tfrecord文件后,即可对数据集开始训练,同样以对VOC2021数据集为例,其过程如下图1.7所示。本次迁移训练预定20次。但是在第17次就提前停止,发生了过拟合。最终的loss值为13.9%。生成了yolov3_train_17.tf.index文件,对VOC2012数据集、VOC2020数据集、VOC2021数据集总耗时分别为20分钟、48分钟、119分钟。采用的训练规则分别为每一张均要训练且训练20次、每两张抽取一张训练且训练20次、每四张抽取一张进行训练且训练40次。图1.7对明火数据集进行训练过程截图(4)模型测试在获得权重文件后,使用yolov3_train_17.tf.index文件进行预测,预测结果如图1.8所示图1.8用训练得到的权重文件进行测试从上图1.14中可以看出,明火已被识别并且标以红框。图中数字0.3619即为识别为明火的概率,但由于yolo_score_threshold被设为0.5,即概率最高就是0.5,所以图中区域为明火的概率为72.38%。1.2.3yolov3明火识别对比实验(1)实验设计本实验设计选择不同阈值但在yolov3框架里同一个数据集训练参数相同而产生的权重文件去识别目标,并且在上面三个数据集都做了实验。首先进行在同一个测试集取不同阈值进行测试。这也就保证了只有阈值这一个单变量。之后则是保证阈值不变在三个数据量不等的数据集训练出的权重文件上预测。对比得出最合适的明火识别检测所需要的权重。由于对数据集的训练次数均不止一次,且每次训练都会产生一个权重文件,所以最终对每一次生成的权重文件进行测试。对比得出最合适的明火识别检测所需要的训练模型。不同阈值的实验研究为了保证只采用阈值一个变量,此小节采用控制变量法,即在同一个数据集上改变阈值。分别选择阈值为0.5,0.25,0.1,0.05和0进行目标检测研究。如图1.9、图1.10和图1.11所示分别为检测结果:图1.9阈值为0.5时的目标检测结果图1.10阈值为0.25、0.1、0.05时的目标检测结果图1.11阈值为0时的目标检测结果从上图中可以看出,当阈值为0.5时(即系统默认值),此时表示预测框与真实框的重合不足1,所以其输出detections为空如下图1.12(a)所示:图1.12(a)当阈值为0.25、0.1、0.05时,由下图1.12(b)、(c)其输出detections就有了具体数值即为上文提到的公式4.1计算的结果。图1.12(b)图1.12(c)当阈值为0时,由下图1.12(d)其输出detections就有了具体数值出现了很多计算结果,图上并未完全截图。这是因为预测框与真实框重合度为0时,也被当作正样本输出。导致计算图上的任何点都符合正样本的要求并有了输出。图1.12(d)图1.12不同阈值预测输出截图从图1.12还可以看出它们识别的时间都是差不多的,均保持在2.2秒左右。不同数据量的测试集上的实验研究在保证阈值(默认0.3)相同的情况下,分别采用三种数据量不等的数据集进行预测,首先是VOC2012(数据量338张,训练了330张),然后是VOC2020(数据量1141张,训练了1100张),最后是VOC2021(数据量4638张,训练了4600张)。如图(图4.10(A、B、C、D))所示:(B)(C)(D)图1.13三种数据集对图片的识别其中图1.13(A)为VOC2012数据集,(B)同样是VOC2012数据集,但是阈值降低到0.01才识别到明火,且分数为0.0129,而且特征提取效果并不好。图1.13(C)是VOC2020数据集得到权重所识别结果,分数为0.1944,图1.13(D)是VOC2021数据集得到权重所识别识别结果,分数0.2939。从图中可以看出,当数据量很小时,系统进行识别的目标准确度越低。并且如果通过降低阈值取委曲求全,得到的结果也是不尽人意,使得识别准确率大幅度下降。不同权重文件的识别研究通过对每一次数据集训练的得到的权重文件对同一组图片进行明火识别,部分次数权重文件预测数据准确率如下表1.14所示:表1.SEQ表\*ARABIC14部分次数权重文件识别参数测试对象识别到物体未识别到物体平均每张图片耗时识别精确率(识别到的物体占总物体比值)准确率(准确识别的目标占测试集中所有目标的概率)训练一次的权重文件0202.20%0%训练二次的权重文件0202.30%0%训练五次的权重文件1192.25%38.75%训练七次的权重文件5152.225%50.31%训练十一次的权重文件8122.440%71.1%训练十五次的权重文件10102.250%86.0%训练十六次的权重文件1642.380%87.21%训练十七次的权重文件1822.290%87.98%由上表可以看出本次实验并未出现过拟合,随着训练次数的增加,识别准确度还是在一直增加,对目标的检测也更加的准确。由于系统在检测到过拟合时,为了防止后续生成权重文件不如前一次,所以也就停止了操作。损失曲线如图1.15所示为epoch前400次的loss折线图,其中横轴(x轴)代表epoch值,epoch为对数据模型进行一次完整的训练。横坐标epoch为1代表100次,竖轴(y轴)代表loss值。图1.15

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论