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

news2024/10/6 22:19:10

一、论文思想

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.coloradmin.cn/o/552471.html

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

相关文章

微服务技术(SpringCloud、Docker、RabbitMQ)

目录 一、微服务技术简介 二、服务拆分及远程调用 1.Eureka注册中心 2.Nacos注册中心 3.Nacos配置管理 4.http客户端Feign 三、统一网关Gateway 四、Docker 五、异步通信技术 六、ElasticSearch 一、微服务技术简介 微服务是分布式架构(分布式&#xff…

Lesson14---卷积神经网络

14.1 深度学习基础 14.1.1 深度学习的基本思想 特征工程:尽可能选择和构建出好的特征,使得机器学习算法能够达到最佳性能。是机器学习的上限,而算法就是逼近这个上限传统的机器学习特证工程 依靠人工方式提取和设计特征需要大量的专业知识…

低代码系统前端实践之vue-element-admin运行demo

文章目录 1、简介2、实践功能3、实践过程3.0 下载运行demo3.1.1 解决执行npm install或出现以下报错(删掉组件tui-editor相关即可)3.1.2 解决执行npm run dev或出现no module body-parser(安装body-parser即可)3.1.3 解决执行npm run dev或出现error:0308010C:digital envelope…

RK3568平台开发系列讲解(驱动基础篇)RK平台I2C的使用

🚀返回专栏总目录 文章目录 一、I2C 使用情况二、定义和注册 I2C 设备三、定义和注册 I2C 驱动3.1 I2C 驱动定义3.2 I2C 驱动注册3.3 通过 I2C 收发数据沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将对RK I2C 的使用进行学习。 配置 I2C 可分为两大步骤: 定…

【Linux C】GCC编译 GDB调试 从入门到放弃 (gcc调试选项详解、gdb调试、条件断点、远程调试、脚本化调试)

阅读本文可能需要一些基础,比如:C语言基础、Linux基础操作、vim、防火墙等。篇幅有限,本文讲的“比较浅显”。 通过本文你将学会: gcc编译gdb调试 少年你渴望力量吗👇👇👇 一、使用GCC编译C程序…

Antd 下拉面板的位置计算错误

项目场景: 公司使用无界微前端集成ERP项目应用(可惜没跟着走一边无界,难受),某些子应用使用时,发现antd的弹窗弹出的位置不对。如下图: 问题描述 无界微前端嵌入的子应用中的antd的下拉框位置…

【谷粒商城笔记】基于docker的mysql、redis环境配置

0.系统 宝塔 v7.5.1 Centos v8.2 1. 安装Docker 直接yum install docker会提示找不到 > docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine Loaded plugins: fastestmirror No Match for argument: …

Prometheus如何优化远程读写的性能

Prometheus如何优化远程读写的性能 场景 为了解决prometheus本地存储带来的单点问题,我们一般在高可用监控架构中会使用远程存储,并通过配置prometheus的remote_write和remote_read来对接 远程写优化:remote_write 用户可以在Prometheus配…

码上行动:零基础学会Python编程(文末送书)

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

Day3 字符串中找出连续最长的数字串、数组中出现次数超过一半的数字

✨个人主页: 北 海 🎉所属专栏: C/C相关题解 🎃操作环境: Visual Studio 2019 版本 16.11.17 文章目录 选择题1、进程管理2、计算机组成原理 编程题1、字符串中找出连续最长的数字串2、数组中出现次数超过一半的数字 选…

和数组处理有关的一些OJ题;ArrayList 实现简单的洗牌算法(JAVA)(ArrayList)

接上次博客:数据结构初阶(2)(ArrayList简介、ArrayList()的构造方法、ArrayList的扩容、方法和三种遍历方法、ArrayList实现杨辉三角、ArrayList 的优缺点)_di-Dora的博客-CSDN博客 1、给你一个数组 nums 和一个值 va…

FreeRTOS(6)----软件定时器

一,软件定时器概述 软件定时器允许设置一段时间,当设定的时间到达之后就会执行指定的功能函数,被定时器调用的这个函数叫做定时器的回调函数。回调函数的两次执行间隔叫做定时器的定时周期。 二,回调函数的注意事项 回调函数是…

Linux文件权限管理

1、Linux权限介绍 权限管理,其实就是指对不同的用户,设置不同的文件访问权限。 Linux 系统,最常见的文件权限有 3 种,即对文件的读(用 r 表示)、写(用 w 表示)和执行(用…

github.io创建个人网站

文章目录 github.io介绍使用步骤新建仓库添加文件 github.io介绍 github.io是 GitHub 提供的免费 Pages服务,不需要购买云服务器和域名,就可以将自己的项目、博客在互联网上进行共享。 使用步骤 新建仓库 创建一个新的仓库,仓库名设置为如…

Nacos环境隔离

随着Nacos 0.8版本的release,Nacos离正式生产版本又近了一步(其实已经有不少企业已经上了生产,如虎牙)。一般而言,企业研发的流程一般是这样的:先在测试环境开发和测试功能,然后再灰度&#xff…

CANFDCAN协议对比 - 基础介绍_01

目录 一、为什么会出现CANFD? 1、信号数量大量增加 2、新要求,新总线系统 3、CAN性能限制 4、更短的位时间也能满足 ???CAN是否会被取代? 二、CANFD优点 1、更多数据,更低总线负载率 2…

计算机网络 三(数据链路层)下

流量控制与可靠传输机制 流量控制手段:接收方收不下就不回复确认。 传输层流量控制手段:接收端给发送端一个窗口公告 #可用协议 可用协议 停止等待协议 概念、出现原因 停止等待协议是一种简单的数据传输协议,常用于数据传输的可靠性较低…

【Docker实战】使用Docker部署Tomcat

【Docker实战】使用Docker部署Tomcat 一、Tomcat介绍1. Tomcat简介2. Tomcat特点3. Tomcat容器部署的优点4. Tomcat的配置文件 二、检查本地环境三、检查本地Docker环境1. 检查本地Docker服务2. 检查Docker版本 四、搜索docker hub中的tomcat镜像五、下载tomcat镜像六、创建Tom…

chatgpt赋能Python-pythona的三次方

Python 的三次方:探索 Python 强大的数学计算能力 Python 是一种高级编程语言,被广泛应用于数据分析、机器学习、人工智能等领域。除此之外,Python 还拥有强大的数学计算能力,其中包括 Python 的三次方计算功能。在本文中&#x…

AI人工智能标记数据的技术:类型、方法、质量控制、应用

AI人工智能 标记数据 在人工智能(Artificial Intelligence,简称AI)领域中,标记数据是非常重要的一环。它是指对原始数据进行标记和注释,以便机器学习算法可以理解和利用这些数据。标记数据可以提高机器学习模型的准确…