目标检测-Owo Stage-YOLOv2

文章目录


前言

根据前文目标检测-One Stage-YOLOv1可以看出YOLOv1的主要缺点是:

  • 和Fast-CNN相比,速度快,但精度下降。(边框回归不加限制)

YOLOv2提出了一些改进策略,如anchor-based等


提示:以下是本篇文章正文内容,下面内容可供参考

一、YOLOv2的网络结构和流程

  1. 将影像输入卷积网络(DarkNet-19+残差连接)得到13 × 13特征图
  2. 引入anchor机制,与SSD不同的是,每个特征点对应5个anchor,且anchor的大小是由VOC 和 COCO数据集聚类得到的

ps:由于变为anchor-based算法,预测框由YOLOv1的98个变为845(13 × 13 × 5)个,mAP由69.5略微降到69.2,召回率却由81大大提升至88

  1. 将上一步得到的anchor输入分类和边框回归器
  2. 使用非极大值抑制NMS去除冗余窗口

下图可以比较清晰的看出YOLOv2的主要结构

其中,DarkNet-19的结构如下:

更详细的参数如下:

ps:上图中可以看出,残差连接时要保证两个特征图w,h的一致(从通道上进行拼接),这里通过PassThrough层将之前层的特征图进行了w,h的缩放,以和更深层特征图保持一致,PassThrough层的基本原理如下图:

之所以不用池化下采样,是想通过PassThrough保留featureMap的更多细节

二、YOLOv2的创新点

预处理

  • 使用了标准的数据增强方法:随机裁剪、旋转(random crops, rotations);色调、饱和度(hue, saturation);曝光偏移(exposure shifts)

网络结构

  1. backbone:改为Darknet-19,Darknet-19 的性能基本与 Resnet34 差不多,使得网络更轻量更快
  2. 引入了BN(Batch normalization) ,其优点如下:
    • 加快收敛;
    • 改善梯度,远离饱和区;
    • 允许大的学习率;
    • 对初始化不敏感;
    • 相当于正则化,使得有BN层的输入都有相近的分布;
    • 有了BN之后,就可以不用dropout了,或者说不能像原来一样用dropout了,这会导致训练和测试的方差偏移。
  3. 加入了anchor机制
  4. 细粒度特征(Fine-Grained Features):将最后一个最大池化层前的特征图经过Pass Through与后面的卷积特征图进行合并,Pass Through就是四分后再concat

训练

  1. 高分辨率的预训练,采用了448的输入进行微调,以便网络更好地处理更高分辨率的输入
  2. 多尺度训练:Yolov2每10个batches就会随机换一下输入的尺度({320, 352, ..., 608}),使得模型泛化于不同尺度的输入,这得益于adaptive pooling层。高分辨率的输入速度慢,但是对小目标的检测效果要好很多,低分辨率的输入速度快
  3. loss略微改动:(真阳样本的定位误差、confidence误差、分类误差)、预测框和anchor定位误差、负样本置信度误差,且5个子loss均有一个权重超参数
  4. 预测输入从448变为416,目的是让得到的feature map的size是一个奇数。这样的好处是,许多图片的中心点都是某个物体的中心,奇数保证中间是一个格子,而不是偶数那样四个格子抢占中心点
  5. 尝试了一种分类和检测的联合训练策略,类别数据集用于分类训练,检测数据集用于边框回归和分类,同时为了统一COCO数据集和ImageNet数据集类别,提出了一种层级分类方法

总结

通过网络结构和改进和一些tricks,YOLOv2精度大大提升,同时通过多尺度训练,使得相同的YOLOv2模型可以在不同的大小下运行,从而轻松实现速度和精度之间的折衷。

  • 在67 FPS的速度下,YOLOv2在VOC 2007上达到76.8mAP。
  • 在40 FPS的速度下,YOLOv2在VOC 2007上达到78.6mAP,性能优于当时的SOTA,如SSD和Faster RCNN ResNet,同时运行速度更快。
相关推荐
静心问道27 分钟前
GoT:超越思维链:语言模型中的有效思维图推理
人工智能·计算机视觉·语言模型
aneasystone本尊37 分钟前
学习 Claude Code 的工具使用(三)
人工智能
szxinmai主板定制专家39 分钟前
【精密测量】基于ARM+FPGA的多路光栅信号采集方案
服务器·arm开发·人工智能·嵌入式硬件·fpga开发
T__TIII1 小时前
Dify 自定义插件
人工智能·github
快起来别睡了1 小时前
LangChain 介绍及使用指南:从“会聊天”到“能干活”的 AI 应用开发工具
人工智能
AI数据皮皮侠1 小时前
中国区域10m空间分辨率楼高数据集(全国/分省/分市/免费数据)
大数据·人工智能·机器学习·分类·业界资讯
静心问道2 小时前
大语言模型能够理解并可以通过情绪刺激进行增强
人工智能·语言模型·大模型
运器1232 小时前
【一起来学AI大模型】算法核心:数组/哈希表/树/排序/动态规划(LeetCode精练)
开发语言·人工智能·python·算法·ai·散列表·ai编程
aneasystone本尊2 小时前
管理 Claude Code 的工具权限
人工智能
聚客AI2 小时前
大模型学习进阶路线图:从Prompt到预训练的四阶段全景解析
人工智能·llm·掘金·日新计划