物体检测实践_第1页
物体检测实践_第2页
物体检测实践_第3页
物体检测实践_第4页
物体检测实践_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

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

文档简介

2021.5.252021.5.252021.5.252021.5.252021.5.25昇腾AI应用

第五章基于MindSpore建模实践

——物体检测实践

案例应用场景

案例规划部署

案例演示操作

案例相关知识案例应用场景案例演示操作案例规划部署案例相关知识

目标检测是很多计算机视觉应用的基础,比如实例分割、人体关键点提取、人脸识别等,它结合了目标分类和定位两个任务。深度学习用于目标检测的算法从思路上来看,可以分为两大类,一类是twostage的方法,也就是把整个分为两部分,生成候选框和识别框内物体,例如R-CNN系列;另一类是onestage的方法,把整个流程统一在一起,直接给出检测结果,主要包含SSD,YOLO系列。目标检测的概述

目标检测的backbone一般基于ImageNet预训练的图像分类网络。图像分类问题只关注分类和感受视野,不用关注物体定位,但是目标检测领域同时很关注空间信息。如果下采样过多,会导致最后的featuremap很小,小目标很容易漏掉。很多基础架构网络,比如ResNet、FPN等神经网络提取图像的上下文信息,不断在特征提取方向优化。目标检测概述

目标检测是也是机器视觉领域的核心问题之一。给定一张图像或是一个视频帧,让计算机找出其中所有目标的位置,并给出每个目标的具体类别。为训练目标检测算法,需要一个已经框出目标的图像训练集。通过训练,算法去学习如何在目标上放置矩形以及放置在何处。最小化推断的边界框和真实标注边界框之间的误差,以优化模型达到正确地检测目标的效果。目标检测概述案例应用场景案例演示操作案例规划部署

案例相关知识演示操作流程——环境准备准备工作:(1)

开通对象存储服务OBS演示操作流程——环境准备准备工作:(2)ModelArts平台jupyternotebook(3)ModelArts平台训练作业: Ascend-Powered-Engine-MindSpore-0.5-python3.7-aarch64演示操作流程——加载coco2014数据集COCO数据集是一个大型的(20多个G数据)、丰富的物体检测,分割和字幕数据集。这个数据集以sceneunderstanding为目标,主要从复杂的日常场景中截取,图像中的目标通过精确的segmentation进行位置的标定。COCO数据集有91类,虽然比ImageNet和SUN类别少,但是每一类的图像多,这有利于获得更多的每类中位于某种特定场景的能力,对比PASCALVOC,其有更多类和图像。该数据集主要解决3个问题:目标检测,目标之间的上下文关系,目标的2维上的精确定位。演示操作流程——创建jupyternotebook演示操作流程——加载coco2014数据集演示操作流程——加载coco2014数据集演示操作流程——加载coco2014数据集演示操作流程——创建训练作业演示操作流程——创建训练作业演示操作流程——创建训练作业演示操作流程——创建训练作业演示操作流程——创建训练作业演示操作流程——模型训练演示操作流程——模型预测演示操作流程——模型预测演示操作流程——模型预测案例应用场景案例演示操作案例规划部署

案例相关知识网络定义:这里我们使用Darknet-53的YOLOV3网络。模型训练:选择训练作业创建训练作业开始训练作业模型预测:进入ModelArts选择训练作业创建训练作业开始预测案例规划部署案例应用场景案例演示操作案例规划部署

案例相关知识相关知识概述本节主要任务:了解YOLOV1网络了解YOLOV2网络的特点了解YOLOV3网络的特点YOLO网络介绍

YOLO是单阶段方法的开山之作。它将检测任务表述成一个统一的、端到端的回归问题,并且以只处理一次图片同时得到位置和分类而得名。

YOLO网络模型YOLOV1网络介绍检测框;每个框的Confidence;每个格子预测一共C个类别的概率分数。YOLO网络模型YOLOV2:是在yolov1的基础上,添加了一些技巧,从而达到map提升的效果。YOLOV2网络介绍

YOLOV2,选择了5个锚作为召回率和模型复杂度之间的良好折衷。其关键特点:(1)使用BN层

BatchNormalization:

BN在模型收敛方面有显著地提升,同时也能够消除一些其他形式的正则化需求,在YOLO每个卷积层后面添加BN层,mAP提升2%。除此之外,BN也有助于正则化模型,使用BN能够去除避免模型过拟合的dropout步骤。YOLOV2网络特点

CNN在训练过程中网络每层输入的分布一直在改变,会使训练过程难度加大,但可以通过normalize每层的输入解决这个问题。新的YOLO网络在每一个卷积层后添加batchnormalization,通过这一方法,mAP获得了2%的提升。batchnormalization也有助于规范化模型,提升收敛速度,可以在舍弃dropout优化后依然不会过拟合。YOLOV2网络特点(2)提高与训练网络分辨率

原来的YOLO提取特征分类网络都是通过224*224来训练的,但是YOLO最后检测训练的时候都是448*448分辨率。这样会导致准确度下降,所以在YOLOv2在分类网络训练的时候,微调的时候,添加10个epoch的训练,来让检测网络更快适应高分辨率。

HighResolutionClassifier:

对YOLOV2,预训练之后,在ImageNet数据集上,用448*448大小的图片对分类网络进行微调,大约10个epoches,其目的是让网络先学习一下高分辨率的图片,之后再应用到检测网络中,这个举措使得mAP提升大概4%.YOLOV2网络特点(3)使用锚点代替全连接

yolov1使用全连接,再reshape得到7*7的结果,用来同时预测类别和回归框。这样会损失部分空间信息。yolov2没有全连接,这样好处一是不需要固定输入的图片大小。第二是保留空间信息,每一个cell类似于FasterRCNN的锚点预测。每个cell都选择5个预选框(每个预选框预测4个偏移量和一个置信度以及n个类别),这个预选框的尺寸并不是手工挑选的。是由下面聚类的方式生成的。YOLOV2网络特点(3)使用锚点代替全连接

ConvolutionalWithAnchorBoxes:

从YOLO算法中剔除全连接层,改用anchorboxes预测bbox。首先需要将448*448大小的输入图片收缩为416*416的大小,因为在YOLOV2版本中,使用的网络的总步长是32,那么最终得到的特征图为13*13,是奇数,这样能够保证特征图中恰好有一个中心点的位置。YOLOV2网络特点(4)KMeans聚类计算候选框大小

DimensionCluster:

对网络来说,如果能够选择合适的anchor尺寸,网络更加容易学习并且预测出更好的结果,在论文中作者使用k-means算法在训练集上的边界框中自动选择合适的boxdimensions。

yolov2并不是按照先验信息手动选择候选框大小(ssd和fasterRCNN是这样做的)

而是通过对coco这些数据集做维度的keams聚类,最后得到几类尺寸。其中聚类时使用不是不单出的长宽的欧式距离,而是YOLOV2网络特点(5)预测定位

Directlocationprediction:

为了延续使用原始YOLO中预测位置相对于当前网格的偏移量,使用一个sigmoid激活函数将偏移量限制在(0,1)中。在输出特征图中,每一个网格输出5个bbox,对每一个bbox,有五个参数值。YOLOV2网络特点(5)预测定位

在yolo中,4个偏移量是对于cell左上角的偏移量,以及相对于整个图片的w,h比例,作为tx,ty,tw,th,候选框定位为:

这样做导致了模型不稳定很难收敛。因为tx的不确定性,比如有可能为1的情况下,那么定位就转移到了cell的右边,如果是-1就定位到了候选框的左边,如果不加以限制就会导致训练的困难。YOLOV2网络特点(5)预测定位

所以这里使用了sigmod函数,将偏移量限制在0~1之间。这样可以保证,中心点可以落在cell里这里cx,cy是cell左上角坐标,tx,ty是预测值pw是预选框的宽,ph是预选框的高YOLOV2网络特点(5)预测定位

所以这里使用了sigmod函数,将偏移量限制在0~1之间。这样可以保证,中心点可以落在cell里这里cx,cy是cell左上角坐标,tx,ty是预测值pw是预选框的宽,ph是预选框的高。YOLOV2网络特点(6)多尺度特征融合

Fine-GrainedFeatures:在13*13特征图上进行目标检测,对于一些大的目标是足够的,但是对于小物体的检测还需要细粒度的特征,为此YOLOV2添加一个passthroughlayer,将浅层的特征和深层的特征,两个不同尺寸的特征通过stackadjacentfeature方法连接起来,将26*26*512的特征图和13*13*2048的特征图连接起来,再在扩展的特征图上进行目标检测。yolo里面有个问题就是对于小目标的效果不好。yolo2为了解决这个问题,将前面26*26*f的层的特征reshape成13*13*4f的特征再和最后13*13*n的结果做一个concat这样就调用到了前面的细节特征。对小目标检测效果会提升很多YOLOV2网络介绍(7)多尺度训练

Multi-Scaletraining:原始YOLO的网络架构中存在全连接层,使得输入图像尺寸大小固定为448*448,YOLOV2版本添加anchor之后输入图像大小改为416*416,而且v2版本仅仅使用卷积和池化操作,对输入图像的尺寸没有要求。训练的时候,每隔10隔batch我们重新修改图片的尺寸大小,取值为{320,352,...,608},这样训练出来的检测网络就可以同时检测不同分辨率的图片YOLOV2网络介绍YOLOV2网络介绍(8)特征提取

网络架构:V2版本使用一个新的分类模型作为basenet,被称为Darknet-19,有19层卷积层和5个最大池化层。yolo的网络是VGGnet添加几层卷积。yolov2的网络是Dartknet,如下图所示。YOLOV2网络介绍测试过程测试过程与yolo基本一致。将图片输入网络,获得结果(13*13*5*(5+20))。将每一个框的置信度乘上该候选框的分类概率。得到13*13*5个20维向量对于每一个向量,通过阈值筛选,如果小于阈值的,变为0对于每一类,按照每个框的该类得分排序,选最大的最为基准,进行非极大值抑制。最后每个框,按照分数最大的那个保留下来,其他都变0测试过程训练过程针对样本集,和指定先验框数量k,并进行聚类,获得不同先验框的大小。这里一个单位指的是单个cell的大小。训练分类网络

这里训练的是Darknet训练的时候,一开始是用224*224进行训练160个epoch,再用448*448进行10个epoch的训练。COCO:(0.57273,0.677385),(1.87446,2.06253),(3.33843,5.47434),(7.88282,3.52778),(9.77052,9.16828)VOC:(1.3221,1.73145),(3.19275,4.00944),(5.05587,8.09892),(9.47112,4.84053),(11.2364,10.0071)训练过程训练检测网络

移除最后一个卷积层、globalavgpooling层以及softmax层,并且新增了三个3*3*2014卷积层,同时增加了一个passthrough层,最后使用1*1卷积层输出预测结果,输出的channels数为:训练过程YOLOV3网络介绍YOLOV3,提出新的网络架构Darknet-53提取特征,新的架构借鉴了V2版本的Darknet-19和ResNet网络,整个网络没有池化层,是在五个卷积上定义步长为2来下采样,总步长为32。YOLOV3是在3个不同尺寸的特征图上进行预测的,

温馨提示

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

评论

0/150

提交评论