手把手教你用深度学习做物体检测(六):YOLOv2介绍

本文接着上一篇《手把手教你用深度学习做物体检测(五):YOLOv1介绍》文章,介绍YOLOv2在v1上的改进。有些性能度量指标术语看不懂没关系,后续会有通俗易懂的关于性能度量指标的介绍文章。

YOLOv2

论文:《 YOLO9000: Better, Faster, Stronger》
地址:  https://arxiv.org/pdf/1612.08242v1.pdf

yolov2和v1的区别

  • 引入了Batch Normalization 
    有一定的正则化效果,可以减轻过拟合,这样就不用使用dropout等优化方法了。BN归一化了激活函数的输入值,加快了隐藏层单元的学习速度。可以抑制covariate shift 现象对深层网络较深的层的影响(covariate shift是指训练样本和测试样本分布不同导致的训练模型在测试数据上表现不佳的问题)。
  • High Resolution Classifier(采用高分辨率的分类器)
    这里是指在ImageNet上训练的时候就用到了448*448的分辨率(先224*224训练160个epochs,然后就调整到了448*448,再跑10个epochs),而yolov1时采用的224*224。
  • Convolutional With Anchor Boxes (采用锚盒)
    引入Anchor Boxes后,每个格子预测9个边界框,比v1多了,结果是准确率下降0.3%,召回率提升7%。 因为可以通过进一步的工作来加强准确率,所以说改进空间提高了。
  • Dimension Clusters (维度聚类)
    anchor boxes需要是精选的先验框,也就是说一开始的anchor boxes如果比较好,网络就更容易学到准确的预测位置。这里作者使用了k-means的方法来选择anchor boxes.需要注意的是,计算过程中作者用IOU得分代替了欧氏距离的方法,使得boxes的聚类是受IOU的影响。k值的选择,作者经过实验确定为5。
  • Direct location prediction 
    为了解决预测的边界框坐标不稳定, anchor可能预测很远处的格子(grid cell)的问题,作者利用logistic回归函数把anchor的偏移量限制在了0到1之间,使得anchor只用于预测其周围的边界框。该方法使mAP获得了5%的提升。
  • Fine-Grained Features(浅层纹理特征)
    为了在小尺度物体检测上表现的好,作者添加了一个passthrough  layer(转移层),就是把浅层纹理特征拼接到深层特征图,这波操作 使得模型的性能获得了1%的提升。
  • Multi-Scale training (多尺度训练)因为去掉了全连接层,任意输入维度都可以在网络中运行,所以作者每10个batches就随机选择一个新的size进行输入,YOLO网络使用的降采样参数为32,即使用32的倍数进行尺度池化{32*10,32*11,…,32*19}。最终最小的尺寸为320*320,最大的尺寸为608 * 608。这种机制使得网络可以更好地预测不同尺寸的图片,意味着同一个网络可以进行不同分辨率的检测任务,在小尺寸图片上YOLOv2运行更快,在速度和精度上达到了平衡。在小尺寸图片检测中,YOLOv2的mAP堪比Faster R-CNN。在大尺寸图片检测中,YOLOv2在VOC2007 上mAP为78.6%,仍然高于平均水准。
  • Darknet-19
    yolov2使用了Darknet-19这个新的网络结构作为特征提取部分,输入大小变为416*416。
  • 另外,作者提出了一种可以同时在 COCO和fulll ImageNet(前9000类)数据集中进行训练的方法,训练出的模型可以 实现9000种物体的实时检测(具体内容建议看原论文)。用作者的话说就是:使用这个联合训练方法,YOLO9000使用COCO的检测数据来学会找到图片中的物体,使用ImageNet中的数据来学会给这些找到的物体分类。

总结一下:

YOLOv2在学习速度、准确度、对小目标的检测、对不同尺度图片的检测上都有提升。

YOLOv2的改进就介绍到这里啦,下一篇文章《手把手教你用深度学习做物体检测(七):YOLOv3》中,我们会介绍v3做了哪些新的改进。

原文地址:https://www.cnblogs.com/anai/p/11474093.html

时间: 2024-11-01 20:19:43

手把手教你用深度学习做物体检测(六):YOLOv2介绍的相关文章

手把手教你搭建深度学习平台——避坑安装theano+CUDA

python有多混乱我就不多说了.这个混论不仅是指整个python市场混乱,更混乱的还有python的各种附加依赖包.为了一劳永逸解决python的各种依赖包对深度学习造成的影响,本文中采用python的发行版Anaconda. Step1 安装Anaconda 这里不建议使用python3.4以后的Anaconda版本,因为太新的版本(python3.5)不支持python/matlab混合编程.所以为了以后方便,建议使用python2.7的Anaconda版本.Anaconda安装完成后,n

(转)基于深度学习的物体检测

本文转自:http://www.cosmosshadow.com/ml/%E5%BA%94%E7%94%A8/2015/12/07/%E7%89%A9%E4%BD%93%E6%A3%80%E6%B5%8B.html 物体检测 Index RCNN Fast RCNN Faster RCNN R-FCN YOLO SSD NMS xywh VS xyxy RCNN Rich feature hierarchies for accurate object detection and semantic

用深度学习做命名实体识别(四)——模型训练

通过本文你将了解如何训练一个人名.地址.组织.公司.产品.时间,共6个实体的命名实体识别模型. 准备训练样本 下面的链接中提供了已经用brat标注好的数据文件以及brat的配置文件,因为标注内容较多放到brat里加载会比较慢,所以拆分成了10份,每份包括3000多条样本数据,将这10份文件和相应的配置文件放到brat目录/data/project路径下,然后就可以从浏览器访问文件内容以及相应的标注情况了. 链接:https://pan.baidu.com/s/1-wjQnvCSrbhor9x3G

基于深度学习的目标检测

普通的深度学习监督算法主要是用来做分类,如图1(1)所示,分类的目标是要识别出图中所示是一只猫.而在ILSVRC(ImageNet Large Scale Visual Recognition Challenge)竞赛以及实际的应用中,还包括目标定位和目标检测等任务.其中目标定位是不仅仅要识别出来是什么物体(即分类),而且还要预测物体的位置,位置一般用边框(bounding box)标记,如图1(2)所示.而目标检测实质是多目标的定位,即要在图片中定位多个目标物体,包括分类和定位.比如对图1(3

第二十八节、基于深度学习的目标检测算法的综述

在前面几节中,我们已经介绍了什么是目标检测,以及如何进行目标检测,还提及了滑动窗口,bounding box.以及IOU,非极大值抑制等概念. 这里将会综述一下当前目标检测的研究成果,并对几个经典的目标检测算法进行概述,本文内容来自基于深度学习的目标检测,在后面几节里,会具体讲解每一种方法. 在深度度学习的目标检测算法兴起之前,传统的目标检测算法是怎样的呢? 传统的目标检测一般使用滑动窗口的框架,主要包括三个步骤: 利用不同尺寸的滑动窗口框住图中的某一部分作为候选区域: 提取候选区域相关的视觉特

4. 基于深度学习的目标检测算法的综述(转)

4. 基于深度学习的目标检测算法的综述(转) 原文链接:https://www.cnblogs.com/zyly/p/9250195.html 目录 一 相关研究 1.选择性搜索(Selective Search) 2.OverFeat 二.基于区域提名的方法 1.R-CNN 2.SPP-Net 3.Fast R-CNN 4.Faster R-CNN 5.R-FCN 三 端对端的方法 1.YOLO 2.SSD 四 总结 在前面几节中,我们已经介绍了什么是目标检测,以及如何进行目标检测,还提及了滑

基于深度学习的目标检测研究进展

前言 开始本文内容之前,我们先来看一下上边左侧的这张图,从图中你看到了什么物体?他们在什么位置?这还不简单,图中有一个猫和一个人,具体的位置就是上图右侧图像两个边框(bounding-box)所在的位置.其实刚刚的这个过程就是目标检测,目标检测就是"给定一张图像或者视频帧,找出其中所有目标的位置,并给出每个目标的具体类别". 目标检测对于人来说是再简单不过的任务,但是对于计算机来说,它看到的是一些值为0~255的数组,因而很难直接得到图像中有人或者猫这种高层语义概念,也不清楚目标出现在

目标检测梳理:基于深度学习的目标检测技术演进:R-CNN、Fast R-CNN、Faster R-CNN(转)

基于深度学习的目标检测技术演进:R-CNN.Fast R-CNN.Faster R-CNN(转) 原文链接:https://www.cnblogs.com/skyfsm/p/6806246.html object detection我的理解,就是在给定的图片中精确找到物体所在位置,并标注出物体的类别.object detection要解决的问题就是物体在哪里,是什么这整个流程的问题.然而,这个问题可不是那么容易解决的,物体的尺寸变化范围很大,摆放物体的角度,姿态不定,而且可以出现在图片的任何地方

深度学习之目标检测常用算法原理+实践精讲

第1章 课程介绍本章节主要介绍课程的主要内容.核心知识点.课程涉及到的应用案例.深度学习算法设计通用流程.适应人群.学习本门课程的前置条件.学习后达到的效果等,帮助大家从整体上了解本门课程的整体脉络. 第2章 目标检测算法基础介绍本章节主要介绍目标检测算法的基本概念.传统的目标检测算法.目前深度学习目标检测主流方法(one-stage.two-stage.多任务网络).相关算法的基本流程.算法性能的评价指标.不同算法的优缺点和性能比较等,并结合实际的应用场景和案例来介绍目标检测算法的重要性和实用