YOLOv3

YOLOv3

  • 论文简介
  • 论文内容
    • 1. 采用darknet53+FPN结构
    • 2. 边框预测保持与YOLOv2保持一致
    • 3. 沿用YOLOv2 kmeans生成先验anchors
    • 4.类别预测改为多分类格式

论文简介

论文:《YOLOv3: An Incremental Improvement》
作者:Joseph Redmon, Ali Farhadi
论文下载地址:https://arxiv.org/abs/1804.02767
代码下载:https://github.com/ultralytics/yolov3
在过去一年里作者就一直在推上刷东西,直到ddl到了才写了一篇改进YOLOv3的技术报告(作者论文自己写的)。所以这篇论文文风比较随意。

论文内容

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/69eeb759a3c4480cb9c6a24ab755b407.png

这个图主要表达的是当时几种模型在coco数据集上的的精度与推断时间。YOLOv3的三个星星表示从320、416、608这三种输入大小,也就是说随着输入大小的提高,精度也会提高。对比RetianNet的检测框架,mAP-50是57.5,而YOLOv3-608是57.9,time是198而YOLOv3-608是51,YOLOv3-608在精度和速度上都优秀于RetianNet-101-800

在这里插入图片描述
AP是检测精度,AP50是在IOU=50时的AP,AP75是在IOU=75时的AP,APS是小目标(目标边框小于32)的AP,M是中目标,L是大目标(目标边框大于96)
YOLOv3 608对比YOLOv2在各个维度都是远超的
对比两阶段算法,精度基本一样,但是速度是四倍的关系

1. 采用darknet53+FPN结构

在这里插入图片描述
YOLOv2采用的是darknet-19,是普通的卷积和池化平铺网络,如上图
在这里插入图片描述
这是YOLOv3采用的darknet-53结构,每一个方框代表一个残差模块,总共有23个残差模块,残差模块是resnet提出的结构,他可以把模型拼接很深,但是不降低精度。最后拿的是32x32 16x16 8x8这仨模块的输出
darknet一方面采用残差结构,缓解了大型梯度更新慢的问题,采用金字塔FPN结构,从网络中抽取三层,分别是原图的1/8 1/16 1/32,做一个上采样和特征合并的操作,一方面加快训练和避免梯度消失,另一方面融合上下层特征,使大尺度模板检测的时候能参考小尺度特征。
在这里插入图片描述
这是FPN结构,大概原理是,以左上角这一层举例,把这一层抽出,进行上采样操作让他变得大一点,跟第二层的合并,把合并结果进行输出。

2. 边框预测保持与YOLOv2保持一致

在这里插入图片描述
其中tx ty tw th为模型预测输出
函数为sigmod函数,归一化tx ty
pw ph为anchor的宽高
cx cy为当前grid cell的坐标
bx by bw bh为最终预测的目标边框
在这里插入图片描述
这个预测中心点的预测结果永远是girl cell右下边的效果
损失计算还是差平方和。每个输出的三个先验框会跟ground truth框做一个交并比,只会拿交并比最大的那一个作为最终预测数据。

3. 沿用YOLOv2 kmeans生成先验anchors

YOLOv3输出三个特征层,每个特征层会对应三个先验框,所以YOLOv3总共生成9个anchors。聚类的时候就会分成9类,最小的三类对应1/8特征,中间三类对应1/16,最大对应1/32.这样的效果就是小anchor对应小目标,大anchor对应大目标。
在这里插入图片描述
(BV1DS4y1R7zd的P9)
这里是这篇论文最大的改进点
YOLOv2是直接走骨干网络输出结果
YOLOv3是走骨干网络后输出一层19x19,再做一个上采样和上一层的concat在一起,再输出,再做一个上采样和最上边一层拼接在一起,在输出。总共输出三个尺度的tensor。每个tensor的输出是
在这里插入图片描述
最后把三维处理成四维。

4.类别预测改为多分类格式

实际使用的时候如果没有多分类需求,就不用这个交叉熵就行。

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

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

相关文章

Flume进阶学习!

本文图片来自于8.flume实时监控文件hdfs sink使用演示_哔哩哔哩_bilibili Apache Flume 的启动过程及其配置文件和脚本 在官网下载的Flume的压缩包中,.lib文件有大量的jar包,按道理说只有.lib文件就可以运行Flume程序了。只不过需要java -jar命令还要加…

Vue使用高德地图(快速上手)

1.在高德平台注册账号 2.我的 > 管理管理中添加Key 3.安装依赖 npm i amap/amap-jsapi-loader --save 或 yarn add amap/amap-jsapi-loader --save 4.导入 AMapLoade import AMapLoader from amap/amap-jsapi-loader; 5.直接上代码,做好了注释(初…

基于单片机的有害气体检查系统设计

**单片机设计介绍,基于单片机的有害气体检查系统设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的有害气体检查系统设计旨在实现对环境中各种有害气体的实时监测与报警,保障人员健康和环境…

【QT+QGIS跨平台编译】056:【pdal-dimbuilder+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

点击查看专栏目录 文章目录 一、pdal介绍二、dimbuilder介绍三、pdal下载四、文件分析五、pro文件六、编译实践七、生成Dimension.hpp八、生成pdal_features.hpp一、pdal介绍 PDAL(Point Data Abstraction Library)是一个开源库,用于处理点云数据的获取、过滤、转换、分析和…

常见的数据库操作

一、查看数据库及表 1.查看当前 DMBS 中有哪些数据库 show databases; (首先进入数据库) 2.查看当前数据库中有哪些表 show tables; 3.查看表的结构(信息) describe 表名;如:describe orders; 二、创建删除数据库 1.创建数据库 create databa…

文字超出收起展开功能的实现(vue2)

1.编写展开收起组件 <template><div class"text-clamp"><div class"text" :style"{height}"><span v-if"isVisible" class"btn" click"toggle">{{isExpand ? 收起 : ... 展开}}</spa…

PurpleKeep:提供Azure管道以创建基础设施并执行Atomic测试

关于PurpleKeep PurpleKeep是一款功能强大的安全测试自动化工具&#xff0c;该工具能够通过提供Azure管道以创建基础设施&#xff0c;并帮助广大研究人员执行Atomic测试。 随着攻击技术种类的迅速增加&#xff0c;以及EDR&#xff08;端点检测和响应&#xff09;和自定义检测规…

DeepWalk论文翻译

DeepWalk论文翻译 DeepWalk: Online Learning of Social Representations DeepWalk&#xff1a;社会表征的在线学习 ABSTRACT 我们提出了 DeepWalk&#xff0c;一种学习网络中顶点潜在表示的新方法。这些潜在表示在连续向量空间中对社会关系进行编码&#xff0c;很容易被统…

阿里云美国服务器价格贵吗?

阿里云美国服务器租用费用价格表&#xff0c;美国服务器可以选择弗吉尼亚和硅谷两个地域&#xff0c;美国服务器1M公网带宽30元/月、0.0625元/小时&#xff0c;美国流量价格0.5 元/GB。阿里云服务器优惠活动 aliyunfuwuqi.com/go/aliyun 目前阿里云没有美国服务器活动&#xf…

Codeforces CodeTON Round 3 D. Count GCD【状压、容斥原理计数】

D. Count GCD 题意 给定一个长度为 n n n 的正整数数组 a a a&#xff0c; ∀ 1 ≤ i ≤ n &#xff0c; a i ≤ m \forall 1 \leq i \leq n&#xff0c;a_i \leq m ∀1≤i≤n&#xff0c;ai​≤m 先要要统计满足以下条件的数组 b b b 的数量&#xff1a; ∀ 1 ≤ i ≤ n …

【Oracle】oracle、mysql、sql server三者区别

欢迎来到《小5讲堂》&#xff0c;大家好&#xff0c;我是全栈小5。 这是《Oracle》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解&#xff0c; 特别是针对知识点的概念进行叙说&#xff0c;大部分文章将会对这些概念进行实际例子验证&#xff0c;以此达到加深对知识…

Python学习: 错误和异常

Python 语法错误 解析错误(Parsing Error)通常指的是程序无法正确地解析(识别、分析)所给定的代码,通常是由于代码中存在语法错误或者其他无法理解的结构导致的。这可能是由于缺少括号、缩进错误、未关闭的引号或其他括号等问题造成的。 语法错误(Syntax Error)是指程序…

【APUE】网络socket编程温度采集智能存储与上报项目技术------多进程编程

作者简介&#xff1a; 一个平凡而乐于分享的小比特&#xff0c;中南民族大学通信工程专业研究生在读&#xff0c;研究方向无线联邦学习 擅长领域&#xff1a;驱动开发&#xff0c;嵌入式软件开发&#xff0c;BSP开发 作者主页&#xff1a;一个平凡而乐于分享的小比特的个人主页…

《数据结构学习笔记---第九篇》---循环队列的实现

文章目录 1.循环队列的定义 2.循环队列的判空判满 3.创建队列并初始化 4.入队和出队 5. 返回队尾队首元素 6.释放循环队列 1.循环队列的定义 定义&#xff1a;存储队列元素的表从逻辑上被视为一个环。 我们此次实现的循环队列&#xff0c;采用顺序表 typedef struct {int…

9、逆序对的数量(含源码)

逆序对的数量 难度&#xff1a;简单 题目描述 给定一个长度为n的整数数列&#xff0c;请你计算数列中的逆序对的数量。 逆序对的定义如下&#xff1a;对于数列的第 i 个和第 j 个元素&#xff0c;如果满足 i < j 且 a[i] > a[j]&#xff0c;则其为一个逆序对&#xf…

Open3D(C++) 基于三维激光扫描点云的树冠体积计算方法

目录 一、算法原理1、原理概述2、参考文献二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT。 一、算法原理 1、原理概述 针对树冠形状不规则,树冠体积难以测量和计算的问题,提出一种基于三…

Html提高——视频标签音频标签及其相关属性

HTML5 在不使用插件的情况下&#xff0c;也可以原生的支持音视频格式文件的播放&#xff0c;当然&#xff0c;支持的格式是有限的。 1、video标签 1.1、video标签的语法 <video src"文件地址" controls"controls"></video> video标签的内部…

7.java openCV4.x 入门-Mat之转换、重塑与计算

专栏简介 &#x1f492;个人主页 &#x1f4f0;专栏目录 点击上方查看更多内容 &#x1f4d6;心灵鸡汤&#x1f4d6;我们唯一拥有的就是今天&#xff0c;唯一能把握的也是今天建议把本文当作笔记来看&#xff0c;据说专栏目录里面有相应视频&#x1f92b; &#x1f9ed;文…

全国土壤类型分布数据/土壤有机质/土壤含水量分布/土壤温度/土壤质地/土壤PH

数据下载链接&#xff1a;数据下载链接 引言 土壤是指地球表面的一层疏松的物质&#xff0c;由各种颗粒状矿物质、有机物质、水分、空气、微生物等组成&#xff0c; 能生长植物。土壤是一个国家最重要的自然资源&#xff0c;它是农业发展的物质基础。我国幅员辽阔&#xff0c;自…

SD-WAN组网面临的安全挑战?如何提供有效的安全措施

SD-WAN&#xff08;软件定义广域网&#xff09;技术的广泛应用&#xff0c;企业面临着越来越多的网络安全挑战。尽管SD-WAN带来了灵活性和效率的提升&#xff0c;但其开放性和基于云的特性也带来了一系列安全威胁。本文将探讨SD-WAN组网面临的安全挑战&#xff0c;并提供一些有…