You Only Look Once:Unified,Real-Time Object Detection总结笔记

news/2024/12/4 3:48:00/

一、论文思想

1.将一个图像分成S*S个网格(grid cell),如果某个object的中心落在这个网格中,则这个网络就负责预测这个object。

2.每个网格要预测B个bounding box,每个bounding box除了要预测位置之外,还要附带预测一个confidence值。每个网格还要预测C个的类别分数。

bounding box的含义:

bounding box由5个数值组成,分别为x,y,w,h,confidence,其中(x,y)是相对于grid cell预测目标的中心位置参数(w,h)是相对于整个图像预测目标的中心位置参数confidence值为预测目标与真实目标的交并比

confidence分数

本文中提到confidence分数定义的地方有两处:

pr(Object)是一个布尔值,当检测到有目标对象时为1,否则为0,因此我们可以变相的认为confidence就是IoU值。

下图为上图公式的推导过程。

二、网络结构

yolo的网络模型结构,如下图所示:

训练过程:

1.首先,输入图像先经过一个7x7,步距为2的卷积层,再经过一个2x2,步距为2的下采样,再经过类似的5组卷积层和池化层,输出一个7x7x1024的特征图。

2.其次,将特征图进行展平(flatten)处理,再经过两个全连接层,得到一个长度为1470的特征向量

3.最后,将特征向量reshape为一个7x7x30的特征矩阵

(除了最后一层的输出使用了线性激活函数,其他层全部使用Leaky Relu激活函数)

例如,在Pascal VOC上评估YOLO,最终输出的是一个7 x 7 x 30的张量。

预测的Feature map结构,如下图所示:

沿着深度方向的每一行包含30个数组,分别为2个bounding box + 2个confidence值 + 20个类别分数,每个bounding box又包含4个值,这4个值为目标的坐标信息。

三、训练

1.Leaky Relu激活函数

除了最后一层的输出使用了线性激活函数,其他层全部使用Leaky Relu激活函数

 2.损失函数

该损失函数为误差平方和,最终的损失共包含三个部分,分别为bounding box损失、confidence损失、classes损失。以保证误差值不偏向大目标或小目标。

四、实验

数据集:Pascal VOC 2007和2012

对比网络:R-CNN Minus R、Fast R-CNN、Faster R-CNN、DPM

对比结果:

五、结论

yolo网络可以同时预测一张图像中的所有类别的所有边界框,再通过confidence分数判断是否对框包含目标对象,只需要一次网络评估,来加快模型预测检测的速度。


http://www.ppmy.cn/news/81452.html

相关文章

CVE-2023-27363 FOXIT PDF READER与EDITOR任意代码执行漏洞复现

目录 0x01 声明: 0x02 简介: 0x03 漏洞概述: 0x04 影响版本: 0x05 环境搭建: 文件下载: 0x06 漏洞复现: POC下载: 利用POC: RCE: 0x07 修复建议&a…

使用 ArcGIS 绘制地理位置图

目录 准备数据创建新的地图项目添加数据符号化地理数据添加地图元素和注释导出地理位置图地理位置图是一种用于展示地理数据的有力工具,而 ArcGIS 是一款功能强大的地理信息系统软件,提供了广泛的地理数据处理和可视化功能。本教程将介绍如何使用 ArcGIS 绘制地理位置图,以展…

xFormers安装使用

xFormers是一个模块化和可编程的Transformer建模库,可以加速图像的生成。 这种优化仅适用于nvidia gpus,它加快了图像生成,并降低了vram的使用量,而成本产生了非确定性的结果。 下载地址: https://github.com/faceb…

深入理解Java虚拟机:JVM高级特性与最佳实践-总结-8

深入理解Java虚拟机:JVM高级特性与最佳实践-总结-8 类加载的过程加载验证1.文件格式验证2.元数据验证3.字节码验证4.符号引用验证 类加载的过程 加载 在加载(Loading)阶段,Java虚拟机需要完成以下三件事情: 通过一个…

Unity之ShaderGraph 节点介绍 Input输入节点

目录 Input(输入)  1、Basic(基本)   1) Boolean(布尔)   2) Color(颜色)   3) Constant(常量)   4) Integer(整型)   5)…

『MySQL 实战 45 讲』17 - 如何正确地显示随机消息?(随机抽取 3 个词)

如何正确地显示随机消息?(随机抽取 3 个词) 需求:从用户的英语单词表中,随机选择三个单词,创表和插入数据如下: # 建表 CREATE TABLE words (id INT(11) NOT NULL AUTO_INCREMENT,word VARCHA…

LogicalDOC安装

安装7.x的版本的时候,页面新建文件夹,如果不支持中文,总是乱码,调试了很多,查了很多,发现他需要下载单独中文支持,而且还支持的不是特别好,索性用8,搭配jdk11,测试几个后…

Flutter学习之旅 -网格布局

文章目录 GridView列表三种形式常用属性 小案例 GridView列表三种形式 可以通过GridView.count实现网格布局 /* 格式: GridView.count(crossAxisCount: 一行显示数量,children: [component(),...],) */ class MyHomePage extends StatelessWidget {const MyHomePage({Key? k…