YOLO系列论文阅读(v1--v3)

news2025/1/16 17:56:28

搞目标检测,绕不开的一个框架就是yolo,而且更糟糕的是,随着yolo的发展迭代,yolo网络可以做的事越来越多,语义分割,关键点检测,3D目标检测。。。这几天决定把YOLO系列彻底梳理一下,在进入大模型时代前,我们欣赏一下这个CNN时代最具影响力的作品。

前YOLO时代

在YOLO出现之前,目标检测已经大部迈向了CNN时代。从RCNN到FastRCNN, 再到FasterRCNN。可以看到,模型的速度越来越快,网络结构越来越简洁,启发式的方法论在一步步被抛弃。

但是,基于RCNN的方法需要预先通过region proposal network选择锚框,在保证了精度的同时,也大大耽误了速度。显然,目标检测的发展遇到了瓶颈。此时,YOLO,SSD等one stage方法孕育而生。

而经过多年的发展,YOLO系列在保持自己原来的快速的特点的基础上,在性能上也逐步提升,成为了目标检测在工业上落地的最优选择。

YOLO论文 

YOLO1

论文题目:You Only Look Once: Unified, Real-Time Object Detection

会议: CVPR2016

链接: https://arxiv.org/pdf/1506.02640.pdf

作者: Joseph Redmon, Santosh Divvala, Ross Girshick, Ali Farhadi

YOLO v1实现了从原始图像到检测框的单一网络端到端设计。 将图片分割为SxS个方块,每个方块包含2个Bbox的预测。

这里的潜在问题是:如果一个区域包含2个以上的小物体,该怎么办呢?

网络结构

网络包含24个卷积层和2个全连接层(全链接层明显开销会比较大)。此外,作者还提到了精简版的FastYOLO,包含9个卷积层,模型的输出是 7 x 7 x 30 的预测。

训练

模型训练首先采用imagenet数据进行前20个卷积层的训练(作为分类任务),随后,通过4个卷积层和2个全链接层进行检测任务的训练。

局限性

YOLO的局限性在于每一个grid最多只能输出两个物体和一种物体类别。

YOLO2 

发表于: CVPR2017

论文标题:YOLO9000: Better, Faster, Stronger

论文链接:https://arxiv.org/pdf/1612.08242.pdf

作者: Joseph Redmon, Ali Farhadi

 

YOLOv2的网络架构优化

其实,在YOLOv1种就已经提到,YOLO对于多物体的检测能力有限,尤其是当一个grid出现多个物体时。此外,作者还提到,锚框的位置不够准确,recall较低 。面对这些问题,在YOLOv2中,作者给出了解决方式,包括,1. 引入batch normalization,2. 采用高分辨率的图像训练分类器(感觉这个创新点很一般)3. 引入锚框,

这其中,比较值得一说的就是锚框,在YOLO1中通过全连接层进行猫框的预测,但是,在v2中,作者放弃这一设计,转而借鉴Faster-RCNN中提出的先验猫框的概念,通过anchor box的引入,支持的猫框数量大大增加,mAP略微下降,但是recall大大增加,总之,替换的利大于弊。

既然使用锚框,就要提供锚框先验的维度信息,作者没有使用人工选择的方式,而是选择使用K-means的方式,基于数据集找到了5个最优的大小。

此外,YOLO对于检测框位置预测的不精准,主要由于对于物体x,y位置估计的不准确,因此,我们选择预测物体位置与对应网格的相对距离。对于每个特征图的每个网格,我们会获取5个检测框的预测,基于这样的修改,我们可以保证检测框的精度进一步提升。

此外,通过passthrough layer,作者还提高了特征图的分辨率,来保证物体检测的精度(这一步其实没有太明白)。。

YOLOV2的训练策略优化

为了保证网络具有多尺度检测的能力,作者在训练的过程中,还将不同分辨率的图片,作为输入。对于低分辨率的图像,采用更轻量的检测器,可以大大提高帧率。

为了保证backbone的效率,作者认为采用vgg-16.可以,但没必要,因此选择参考googlenet。

为了让训练更高效,作者还利用目标检测数据集和分类数据集,微调网络结构,分别进行训练。

此外,还有其他技巧,这里没有全部展示。

总结

YOLOV2中,作者对于网络结构,和训练策略都做了调整和改进。对于网络架构的修改,有效的弥补了YOLO的短板,而关于训练策略的优化,作者展示了统一目标检测和分类这两类任务的雄心。此外,也提到了在物体分割领域的应用可能。

此外,作者的笔风也逐渐飘逸,说实话better,stonger,faster作为小标题,并不利用读者梳理论文的框架。

YOLOv3

标题: YOLOv3: An Incremental Improvement

作者: Joseph Redmon, Ali Farhadi

发表于:CVPR2018

YOLOV3的论文基本是以技术报告的形式展现。

这里整理一下我认为比较重要的几个创新点

1. Backbone的改进

在V2中,作者提到backbone的设计借鉴了googleNet,而在V3中,作者则借鉴了resnet的残差设计,网络层数也大大加深,从YOLOv2 的Darknet-19 变为了Darknet-53。

2。 引入多尺度信息

YOLOv3在三个尺度进行特征提取。然后通过上采样的方式进行特征融合,通过类似v2中K-means的方法获得了9个先验的尺度信息,然后分布在3个特征提取层中。

总结

Yolov3的创新点给人一种重剑无锋的感觉,没有太多冗余的更新,但是backbone优化,和多尺度信息引入又大大的改进了YOLOv2的效果。而作者开源的YOLOv3 c++推理代码也为YOLO的黄金时代画下了一个完美的句号。

多尺度预测,残差网络的运用

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

奇异递归模板模式应用6-类模板enable_shared_from_this

异步编程中存在一种场景,需要在类中将该类的对象注册到某个回调类或函数中,不能简单地将this传递给回调类中,很可能因为回调时该对象不存在而导致野指针访问(也有可能在析构函数解注册时被回调,造成对象不完整&#xf…

【变压器故障诊断分类及预测】基于GRNN神经网络

课题名称:基于GRNN神经网络的变压器故障诊断分类及预测 版本日期:2024-02-10 运行方式:直接运行GRNN0507.m文件 代码获取方式:私信博主或QQ:491052175 模型描述: 对变压器油中溶解气体进行分析是变压器…

基于springboot+vue的精准扶贫管理系统(前后端分离)

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 ​主要内容:毕业设计(Javaweb项目|小程序|Pyt…

前端工程化面试题 | 15.精选前端工程化高频面试题

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

Linux系统前后端分离项目

目录 一.jdk安装 二.tomcat安装 三.MySQL安装 四.nginx安装 五.Nginx负载均衡tomcat 六.前端部署 一.jdk安装 1. 上传jdk安装包 jdk-8u151-linux-x64.tar.gz 进入opt目录,将安装包拖进去 2. 解压安装包 这里需要解压到usr/local目录下,在这里新建一个…

基于yolov5的电瓶车和自行车检测系统,可进行图像目标检测,也可进行视屏和摄像检测(pytorch框架)【python源码+UI界面+功能源码详解】

功能演示: 基于yolov5的电瓶车和自行车检测系统_哔哩哔哩_bilibili (一)简介 基于yolov5的电瓶车和自行车检测系统是在pytorch框架下实现的,这是一个完整的项目,包括代码,数据集,训练好的模型…

低于API等级30的应用将无法在上述应用商店

minSdkVersion minSdkVersion用于指定应用兼容的最低Android版本(API等级)。 如果APP某些功能无法支持低版本Android系统的设备,可以配置minSdkVersion确保APP只能安装到指定Android版本以上的设备。HBuilder|HBuilderX中可在manifest.json中…

单词倒排——c语言解法

以下是题目: 这个题中有三个点, 一个是将非字母的字符转换为空格, 第二是如果有两个连续的空格, 那么就可以将这两个连续的空格变成一个空格。 第三个点就是让单词倒排。 那么我们就可以将这三个点分别封装成三个函数。 还有就是…

Spring Security源码学习

Spring Security本质是一个过滤器链 过滤器链本质是责任链设计模型 1. HttpSecurity 【第五篇】深入理解HttpSecurity的设计-腾讯云开发者社区-腾讯云 在以前spring security也是采用xml配置的方式&#xff0c;在<http>标签中配置http请求相关的配置&#xff0c;如用户…

Linux下的版本控制系统——Git:初学者指南

引言 在软件开发的世界中&#xff0c;版本控制是一项至关重要的技术。它允许开发者追踪和管理代码的变更历史&#xff0c;协同工作&#xff0c;并在必要时恢复到之前的版本。而在Linux系统下&#xff0c;Git已经成为事实上的版本控制标准。本文将带领大家走进Git的世界&#x…

【人脸朝向识别与分类预测】基于PNN神经网络

课题名称&#xff1a;基于PNN神经网络的人脸朝向识别分类 版本日期&#xff1a;2024-02-20 运行方式&#xff1a;直接运行PNN0503.m文件 代码获取方式&#xff1a;私信博主或 QQ:491052175 模型描述&#xff1a; 采集到一组人脸朝向不同角度时的图像&#xff0c;图像来自不…

React组件详解

React组件分为两大类 1.函数组件 2.类组件&#xff08;最常用&#xff09; 组件化 import ReactDom from "react-dom";// // 1.通过函数创建一个组件 // 2.函数名字必须大写开头 // 3.函数必须有返回值 function Func1() {return <h2>这是一个基础组件</h…

[设计模式Java实现附plantuml源码~行为型]对象间的联动~观察者模式

前言&#xff1a; 为什么之前写过Golang 版的设计模式&#xff0c;还在重新写Java 版&#xff1f; 答&#xff1a;因为对于我而言&#xff0c;当然也希望对正在学习的大伙有帮助。Java作为一门纯面向对象的语言&#xff0c;更适合用于学习设计模式。 为什么类图要附上uml 因为很…

数字化转型导师鹏:政府数字化转型政务服务类案例研究

政府数字化转型政务服务类案例研究 课程背景&#xff1a; 很多地方政府存在以下问题&#xff1a; 不清楚标杆省政府数字化转型的政务服务类成功案例 不清楚地级市政府数字化转型的政务服务类成功案例 不清楚县区级政府数字化转型的政务服务类成功案例 课程特色&#x…

PX4FMU和PX4IO最底层启动过程分析(下)

PX4FMU和PX4IO最底层启动过程分析&#xff08;下&#xff09; PX4FMU的系统启动函数为nash_main(int argc,char *argv[]) PX4IO的系统启动函数为nash_start(int argc,char *argv[]) PX4FMU启动函数nash_main(int argc,char *argv[]) 首先分析一下nash_main(int argc,char *a…

2023最新盲盒交友脱单系统源码

源码获取方式 搜一搜&#xff1a;万能工具箱合集 点击资源库直接进去获取源码即可 如果没看到就是待更新&#xff0c;会陆续更新上 或 源码软件库 最新盲盒交友脱单系统源码&#xff0c;纸条广场&#xff0c;单独抽取/连抽/同城抽取/高质量盒子 新增功能包括心动推荐&#xff…

JavaAPI常用类02

目录 基本数据类型封装类 包装类常用属性方法 8中基本数据类型各自所对应的包装类 以下方法以java.lang.Integer为例 代码 运行 装箱和拆箱 装箱 何为装箱 代码 范围问题 代码 运行 拆箱 代码 String类 概述 代码 运行 创建形式 画图讲解 代码 运行 构造…

golang通过http访问外部网址

不同项目之前,通过http访问,进行数据沟通 先设定一个接口,确认外部能访问到 PHP写一个接口 public function ceshi_return() {$data $this->request->param();$id $data[id];$res Db::name(user)->field(id,status,price,name)->where([id>$id])->find…

数据可视化基础与应用-01-课程目标与职位分析

总结 本系列是数据可视化基础与应用的第01篇&#xff0c;主要介绍本门课程的课程目标与职位分析 教材 数据可视化基础与应用 课程教学方法 布鲁姆教学法 认知领域&#xff08;cognitive domain&#xff09; 1.知道&#xff08;知识&#xff09;&#xff08;knowledge&#…

Jitsi Meet 大型视频会议调优方案

jitsi meet 大型视频会议调优方案 在举办一些大型会议的时候,比如100个人会议,为了节约宽带和节省资源,我们并不会选择传输全部的音视频资源。 举个例子,比如100个人线下会议,如果大家都说话的情况下,大家要么听不清,要么听得是声音最大的那几个人。 视频会议也可以借…