目标检测算法YOLOv3简介

      YOLOv3由Joseph Redmon等人于2018年提出,论文名为:《YOLOv3: An Incremental Improvement》,论文见:https://arxiv.org/pdf/1804.02767.pdf ,项目网页:https://pjreddie.com/darknet/yolo/ 。YOLOv3是对YOLOv2的改进。

      以下内容主要来自论文:

      1.Bounding Box Prediction:遵循YOLO9000,我们的系统使用维度簇(dimension clusters)作为锚框来预测边界框。网络为每个边界框预测4个坐标:tx、ty、tw、th,如下图所示。在训练过程中,我们使用误差平方和损失(sum of squared error loss)。YOLOv3使用逻辑回归预测每个边界框的目标得分(objectness score)。如果先验边界框(bounding box prior)与真实目标(ground truth object)框的重叠程度超过任何其他先验边界框,则该值应该为1。如果先验边界框不是最好的,但确实与真实目标框重叠超过某个阈值,我们将忽略预测。我们使用0.5的阈值。我们的系统只为每个真实目标分配一个先验边界框。如果先验边界框未分配给真实目标,则不会导致坐标或类别预测损失,只会损失目标性(objectness,描述了某个图像区域是否可能包含一个目标的可能性)。

      2.Class Prediction:每个框使用多标签分类(multilabel classification)来预测边界框可能包含的类别。我们不使用softmax,因为我们发现它对于良好的性能来说是不必要的,而是简单地使用独立的逻辑分类器(logistic classifiers)。在训练过程中,我们使用二元交叉熵损失(binary cross-entropy loss)进行类别预测。多标签方法可以更好地对数据进行建模。

      3.Predictions Across Scales: YOLOv3预测3个不同尺度的框。我们的系统使用与特征金字塔网络(feature pyramid networks)类似的概念从这些尺度中提取特征。从我们的基本特征提取器中,我们添加了几个卷积层。最后一个预测3-d张量编码边界框、目标性和类别预测。在我们使用COCO的实验中,我们在每个尺度上预测 3个框,因此对于4个边界框偏移(bounding box offsets)、1个对象性预测和80个类别预测,张量为N*N*[3∗(4+1+80)]。接下来,我们从前2层获取特征图(feature map),并将其上采样2倍。我们还从网络的早期获取特征图,并使用串联(concatenation)将其与我们的上采样特征合并。这种方法使我们能够从上采样的特征中获得更有意义的语义信息(semantic information),并从早期的特征图中获得更细粒度(finer-grained)的信息。然后,我们添加更多的卷积层来处理这个组合特征图,并最终预测一个类似的张量(tensor),尽管现在大小是原来的两倍。我们再次执行相同的设计来预测最终尺度的框。因此,我们对第三个尺度的预测受益于所有先前的计算以及网络早期的细粒度特征(finegrained features)。我们仍然使用k均值聚类来确定边界框先验。我们只是任意选择9个簇(clusters)和3个尺度,然后在尺度上均匀地划分簇。在COCO数据集上,9个簇是:(10*13), (16*30), (33*23), (30*61), (62*45), (59*119), (116*90), (156*198), (373*326)。

      4.Feature Extractor:我们使用新的网络来执行特征提取。我们的新网络是YOLOv2、Darknet-19中使用的网络和新奇的残差网络(residual network)之间的混合方法。我们的网络使用连续的3*3和1*1卷积层,但现在也有一些快捷连接(shortcut  connections),并且尺寸明显更大。它有53个卷积层,所以我们称之为Darknet-53,如下图所示:

      过去,YOLO在处理小目标时遇到了困难。然而,现在我们看到这种趋势发生了逆转。通过新的多尺度预测,我们看到YOLOv3具有相对较高的AP性能。然而,它在中等和较大尺寸目标上的性能相对较差

      Things We Tried That Didn't Work:在开发YOLOv3时,我们尝试了很多东西。很多都没有效果。这是我们可以记住的东西。

      1.锚框x,y偏移预测:我们尝试使用普通的锚框预测机制,你可以使用线性激活(linear activation)将x,y偏移量预测为框宽度或高度的倍数。我们发现这种公式降低了模型稳定性并且效果不佳。

      2.线性x,y预测而不是逻辑预测:我们尝试使用线性激活来直接预测x,y偏移,而不是逻辑激活。这导致mAP下降了几个点。

      3.焦点损失(focal loss):我们尝试使用焦点损失。它使我们的mAP下降了约2点。YOLOv3可能已经对焦点损失试图解决的问题具有鲁棒性(robust),因为它具有单独的对象性预测(objectness predictions)和条件类别预测。因此,对于大多数例子来说,类别预测没有损失?或者其他的东西?我们并不完全确定。

      4.双IOU阈值和真值分配:Faster RCNN在训练期间使用两个IOU阈值。如果预测与真实情况重叠0.7,则为正例;如果预测与真实值重叠[.3−.7],则会被忽略;对于所有真实值目标,如果预测与真实值重叠小于0.3,则为负例。

      我们非常喜欢我们当前的表述(formulation),它似乎至少处于局部最优。其中一些技术可能最终会产生良好的结果,也许它们只需要一些调整来稳定训练。

      YOLOv3是一个很好的检测器。它很快,而且很准确。在0.5到0.95 IOU指标之间的COCO平均AP上,它并不那么好。但它在0.5 IOU的旧检测指标上非常好。

      YOLOv3配置文件:https://github.com/pjreddie/darknet/blob/master/cfg/yolov3.cfg

      GitHub:https://github.com/fengbingchun/NN_Test

     

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

解决IDEA下springboot项目打包没有主清单属性

1.问题出现在SpringBoot学习中 , 运行maven打包后无法运行 报错为spring_boot01_Demo-0.0.1-SNAPSHOT.jar中没有主清单属性 SpringBoot版本为 2.6.13 Java 版本用的8 解决方法 1.执行clean 删除之前的打包 2.进行打包规范设置 2.1 3.进行问题解决 (借鉴了阿里开发社区) 使用…

利用PDAL2.7.1 实现点云滤波

利用PDAL2.7.1 实现点云滤波 本文介绍利用PDAL实现点云滤波方法,包含pipeline命令行运行、C代码两种方法,C代码分别介绍对点云文件进行滤波、点云全部在内存中进行滤波的pdal两种调用方法。并简单探究pdal的设计结构。 目录 1 pipeline命令调用方法2 文…

R语言4版本安装mvstats(纯新手)

首先下载mvstats.R文件 下载mvstats.R文件点此链接:https://download.csdn.net/download/m0_62110645/89251535 第一种方法 找到mvstats.R的文件安装位置(R语言的工作路径) getwd() 将mvstats.R保存到工作路径 在R中输入命令 source(&qu…

飞腾D2000+X100 TYPE6全国产核心板

飞腾D2000X100 TYPE6核心板 产品概述 飞腾D2000X100 TYPE6核心板为增强型自主控制器核心板,其核心芯片CPU采用飞腾D2000/8核工业版CPU、飞腾桥片X100、双通道DDR4L插槽、PHY芯片等。 产品特点 l 基于飞腾D2000X100桥片 l 丰富的PCIE扩展资源,一路PCIE…

C++入门系列-函数重载

🌈个人主页: 羽晨同学 💫个人格言:“成为自己未来的主人~” 函数重载 自然语言当中,一个词可以有多重含义,人们可以通过上下文来判断该词真实的含义,即该词被重载了。 函数重载的概念 函数重载&#x…

A4的PDF按A3打印

先用办公软件打开,比如WPS。 选择打印-属性。 纸张选A3,如果是双面打印,选短边装订,然后在版面-页面排版-每张页数(N合1)选2。 不同打印机的具体配置可能不一样,但大体都是这个套路。

rocketmq dashboard控制台中topic状态无法展示

现象 在使用rocketmq控制台查看topic状态和订阅状态时,出现错误和没有信息的情况。 原因 rocketmq控制台版本问题,最新版本为1.0.1,支持rocketmq5版本,如果使用rocketmq4版本的服务无法兼容对应的数据。同理1.0.0版本也无法兼容ro…

中兴ZXV10 B860AV2.1机顶盒刷机

移动的电视盒子如果不续费,连桌面都进不去,趁着五一有空把系统刷了。整体上比较顺利。 注意这个盒子只有两个螺丝,盒子上已经标识,如上图左上角和右下角。盒子里面有卡扣,卸掉螺丝直接扣是很难打开的,需要用…

【CLion】clion无法加载或找不到cmakekists文件

一、问题表象 最近工作中,在git pull远程仓库最新版本程序后,平时打开CLion自动加载的工程CMakeLists文件突然失效(显示找不到可编译的文件),无法debug程序。 二、原因分析 基于平时的编码经验和之前git pull也出现…

深度学习之基于CIFAR10图像分类可视化

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 深度学习之基于CIFAR-10图像分类可视化项目简介 一、项目背景 随着深度学习和计算机视觉技术的飞速发展&#xff…

边缘计算含义与应用简析

边缘计算概述 边缘计算使数据存储和处理靠近生成或收集数据的位置,而不是在位于数千公里的服务器上。它将通过保持灵活性在边缘无缝可靠地部署服务。它比云计算更安全,因为不需要传输数据。因此,在将数据从边缘移动到云端时,不用…

基于React实现B站评论区

今天继续来学习一下React,使用React实现B站评论区,如下图: 在使用React开发类似B站评论区的功能时,我们需要考虑以下几个关键点来构建一个基本的评论系统: 1. 设计组件结构 首先,设计组件结构是关键。至少…

什么是弹性云服务器(ECS)

弹性云服务器(Elastic Cloud Server,ECS)是由CPU、内存、操作系统、云硬盘组成的基础的计算组件。弹性云服务器创建成功后,您就可以像使用自己的本地PC或物理服务器一样,在云上使用弹性云服务器。 云服务器ECS&#x…

Re71:读论文 Sequence to Sequence Learning with Neural Networks

诸神缄默不语-个人CSDN博文目录 诸神缄默不语的论文阅读笔记和分类 论文名称:Sequence to Sequence Learning with Neural Networks ArXiv下载地址:https://arxiv.org/abs/1409.3215 本文是2014年NeurIPS论文(那时候这个会还叫NIPS&#xf…

HBase的简单学习四

一 HBase的进阶 1.1 hbase的写流程 Hbase读取数据的流程: 1)是由客户端发起读取数据的请求,首先会与zookeeper建立连接 2)从zookeeper中获取一个hbase:meta表位置信息,被哪一个regionserver所管理着 hbase:meta表…

C语言:循环结构

循环结构 1. for循环概念举例示例结果分析 补充 2. while循环概念举例示例结果分析补充 3. do-while循环概念举例示例结果分析 补充 4.循环控制举例示例结果分析 C语言中的循环结构是一种重要的编程构造,它允许我们重复执行一段代码,直到满足某个条件为止…

Hive优化以及相关参数设置

1.表层面设计优化 1.1 表分区 分区表实际上就是对应一个 HDFS 文件系统上的独立的文件夹,该文件夹下是该分区所有的数据文件。Hive 中的分区就是分目录,把一个大的数据集根据业务需要分割成小的数据集。在查询时通过 WHERE 子句中的表达式选择查询所需要…

Angular基础-搭建Angular运行环境

这篇文章介绍了在Angular项目中进行开发环境搭建的关键步骤。包括node.js安装和配置、安装Angular CLI工具、安装angular-router、创建Angular项目等步骤。这篇文章为读者提供了清晰的指南,帮助他们快速搭建Angular开发环境,为后续的项目开发奠定基础。 …

Python中动画显示与gif生成

1. 动画生成 主要使用的是 matplotlib.animation ,具体示例如下: import matplotlib.pyplot as plt import matplotlib.animation as animation import numpy as np fig, ax plt.subplots() t np.linspace(0, 3, 40) g -9.81 v0 12 z g * t**2 / …

【项目学习01_2024.05.02_Day04】

学习笔记 4 课程分类查询4.1需求分析4.2 接口定义4.3 接口开发4.3.1 树型表查询4.3.2 开发Mapper 4 课程分类查询 4.1需求分析 有课程分类的需求 course_category课程分类表的结构 这张表是一个树型结构,通过父结点id将各元素组成一个树。 利用mybatis-plus-gen…