目标检测-Owo Stage-YOLOv2

文章目录

  • 前言
  • 一、YOLOv2的网络结构和流程
  • 二、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的主要结构
示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
其中,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,同时运行速度更快。
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/315963.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Eureka服务注册与发现中心

简介 Spring Cloud封装了Netflix 公司开发的Eureka模块来实现服务治理 在传统的RPC远程调用框架中,管理每个服务与服务之间依赖关系比较复杂,管理比较复杂,所以需要使用服务治理,管理服务于服务之间依赖关系,可以实现…

自动化测试之等待方式详解

在自动化测试中,等待是一个重要的技术,用于处理页面加载、元素定位、元素状态改变等延迟问题。 等待能够确保在条件满足后再进行后续操作,提高自动化测试的稳定性以及可靠性。 等待方式:显示等待、隐式等待、线程睡眠 1. 显式等…

TCP_可靠数据传输原理

引言 在网络通信中,TCP是确保数据可靠传输的关键协议。但在我们深入研究TCP拥塞控制技术之前,让我们先探索可靠数据传输的原理,特别是TCP头部中一些重要字段的作用。 网络层提供了点对点的通信服务,努力交付数据报,但…

鸿蒙OpenHarmony开发实战-0开始做游戏渲染引擎

首先实现了一个通用的画廊组件来作为练手项目,它主要使用了四个基础组件和容器组件: 我们放置一个按钮来触发 showGallery 方法,该方法控制 panel 弹出式组件的显示和隐藏,这里的 div 和 button 标签就是 hml 内置的组件&#xf…

docker安装postgresql15或者PG15

1. 查询版本 docker search postgresql docker pull postgres:15.3 # 也可以拉取其他版本2.运行容器并挂载数据卷 mkdir -p /data/postgresql docker run --name postgres \--restartalways \-e POSTGRES_PASSWORDpostgresql \-p 5433:5432 \-v /data/postgresql:/var/lib/p…

防火墙未开端口导致zookeeper集群异常,kafka起不来

转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。 问题描述: 主机信息: IPhostname10.0.0.10host1010.0.0.12host1210.0.0.13host13 在这三台主机上部署…

clickhouseSQL日期相关

1. 毫秒级时间戳转日期/小时 --13位时间戳转具体时间 toDateTime(report_time / 1000) as _c00 -- 获取时间戳对应的时间点整点(结果:%Y-%m-%d %H:00:00.0) eg:2022-09-28 23:00:00.0 toStartOfHour(toDateTime(report_time / 1000)) AS _10-- 获取时间…

认识SpringBoot项目中的Starter

✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏: 循序渐进学SpringBoot ✨特色专栏&…

基于 EigenFaces 的人脸检测

EigenFaces概述 EigenFaces 人脸检测是一种从主成分分析(Principal Component Analysis,PCA)中导出的人脸识别和描述技术。 特征脸方法就是从大量的人脸图像中,寻找出人脸的共性。将眼睛、面颊、下颌样板采集协方差矩阵的特征向…

从零开始 - 在Python中构建和训练生成对抗网络(GAN)模型

生成对抗网络(GANs)是一种强大的生成模型,可以合成新的逼真图像。通过完整的实现过程,读者将对GANs在幕后的工作原理有深刻的理解。本教程首先导入必要的库并加载将用于训练GAN的Fashion-MNIST数据集。然后,提供了构建…

一文了解VR全景技术如何运用在景区旅游宣传

引言: 随着科技的飞速发展,虚拟现实全景技术(VR全景)正在逐步改变我们的生活。这种技术以其独特的优势,逐步渗透到各个领域,尤其在景区宣传方面,VR全景技术拥有很强的应用潜力。 一、了解VR全景…

vr眼镜和AR眼镜的区别有哪些?哪些产品可以支持VR应用?

vr眼镜怎么连接手机 要将VR眼镜连接到手机上,您可以按照以下步骤进行: 1. 确保您的手机支持VR应用程序:首先,确保您的手机具备运行VR应用程序的硬件和软件条件。一些VR应用程序可能对设备有特定的要求,如处理器性能、操…