深入解析YOLO v1:实时目标检测的开山之作
目录
YOLO v1 算法详解
1. 核心思想
2. 算法优势
3. 网络结构(Unified Detection)
4. 关键创新
5. 结构示意图(Fig1)
Confidence Score 的计算
类别概率与 Bounding Box 的关系
后处理:非极大值抑制(NMS)
网络结构实现细节
输出张量示例(7×7×30)
深入解析YOLO v1:实时目标检测的开山之作
YOLO(You Only Look Once)是目标检测领域的里程碑式算法,由Joseph Redmon等人在2016年CVPR会议上提出。作为第一个将目标检测任务转化为单阶段(one-stage)回归问题的算法,YOLO v1以其惊人的速度和简洁的网络结构迅速成为研究热点。本文将全面剖析YOLO v1的核心思想、实现细节及技术优势,并对比同期算法(如Faster R-CNN)的差异。
论文名称:You only look once unified real-time object detection
论文链接
YOLO v1 算法详解
1. 核心思想
YOLO(You Only Look Once)将物体检测(object detection)任务视为一个端到端的回归问题,通过单个卷积神经网络(CNN)直接从输入图像预测目标边界框(bounding box)和类别概率。
2. 算法优势
YOLO v1 的主要优势包括:
- 速度快:在 Titan X GPU 上达到 45 FPS,快速版(Fast YOLO)可达 150 FPS,适合实时检测。
- 全局推理:基于整张图像进行预测(而非滑动窗口或候选区域),减少背景误检(false positives),比 Fast R-CNN 的误检率低一半以上。
- 泛化能力强:学习到的特征更具通用性,在迁移到新领域时表现较好。
- 高准确率:在 VOC 2007 数据集上 mAP 达 63.4%,兼顾速度和精度。
3. 网络结构(Unified Detection)
YOLO v1 采用 24 层卷积网络 + 2 层全连接层,结构特点如下:
- 输入:448×448 图像(通过下采样适应网络)。
- 输出:
S×S×(B×5 + C)
的张量,其中:S×S
表示网格划分(默认7×7
)。B
是每个网格预测的边界框数量(默认2
)。5
包含边界框的坐标(x, y, w, h
)和置信度(confidence)。C
是类别概率(如 VOC 数据集的 20 类)。
4. 关键创新
- 网格化预测:图像被划分为
S×S
网格,每个网格负责预测中心落在该区域的目标。 - 多任务损失函数:联合优化边界框坐标、置信度和分类概率,损失函数设计如下:
- 坐标误差(加权)
- 置信度误差(区分有无目标)
- 分类误差(交叉熵)
5. 结构示意图(Fig1)
Confidence Score 的计算
每个 bounding box 对应一个 confidence score,用于衡量该框内是否包含物体以及预测框的准确性:
- 公式:
-
- 如果 grid cell 中没有物体(背景),则 confidence = 0。
- 如果 grid cell 中有物体,confidence = 预测框与真实框的 IOU(交并比)。
如何判断 grid cell 是否包含物体?
- 规则:若某物体的 ground truth 边界框的中心点坐标落在某个 grid cell 内,则该 grid cell 负责预测该物体。
类别概率与 Bounding Box 的关系
-
类别概率(Class Probability):
- 每个 grid cell 预测 C 个类别概率(如 VOC 数据集的 20 类),表示该 grid cell 包含物体时属于各类别的概率。
- 注意:类别概率是针对 grid cell 的,而非单个 bounding box。
-
Bounding Box 的最终分类得分:
- 将每个 bounding box 的 confidence 与 grid cell 的类别概率相乘,得到该 box 属于某类别的置信度得分:
-
- 输出矩阵:
- 形状为
20×(7×7×2) = 20×98
(20 类,98 个 bounding box)。
- 形状为
- 输出矩阵:
后处理:非极大值抑制(NMS)
- 阈值过滤:
- 对每一类别(矩阵的每一行),将得分 < 0.2 的 bounding box 置 0。
- 排序与去重:
- 按得分从高到低排序,选择最高得分的 box,计算其与其余 box 的 IOU:
- 若 IOU > 0.5(重叠过高),则抑制(得分置 0)。
- 否则保留。
- 重复上述过程,直到所有 box 被处理。
- 按得分从高到低排序,选择最高得分的 box,计算其与其余 box 的 IOU:
- 最终分类:
- 对每个 bounding box,取 20 个类别得分中的最大值:
- 若最大值 > 0,则判定为对应类别;
- 若最大值 = 0,判定为背景(忽略)。
- 对每个 bounding box,取 20 个类别得分中的最大值:
网络结构实现细节
- Backbone:基于 GoogLeNet 改进的卷积网络(24 层卷积 + 4 层 Inception 模块)。
- 输出层:
- 全连接层输出
7×7×30
的张量,其中:7×7
:grid cell 数量。30
:包含 2 个 bounding box 的坐标(x,y,w,h
)和 confidence,以及 20 个类别概率。
- 全连接层输出
- 关键改动:
- 替换 GoogLeNet 的复杂 Inception 模块为简单的
1×1
和3×3
卷积组合,提升速度。 - 最后一层全连接层直接回归边界框和类别(端到端训练)。
- 替换 GoogLeNet 的复杂 Inception 模块为简单的
输出张量示例(7×7×30)
分量 | 维度 | 说明 |
---|---|---|
Bounding Box 1 | 5 (x,y,w,h,conf) | 第一个预测框的坐标和置信度 |
Bounding Box 2 | 5 (x,y,w,h,conf) | 第二个预测框的坐标和置信度 |
Class Probabilities | 20 | 20 个类别的条件概率(P(class|obj)) |
相关文章:
深入解析YOLO v1:实时目标检测的开山之作
目录 YOLO v1 算法详解 1. 核心思想 2. 算法优势 3. 网络结构(Unified Detection) 4. 关键创新 5. 结构示意图(Fig1) Confidence Score 的计算 类别概率与 Bounding Box 的关系 后处理&…...
windows作业job介绍
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、作业job是什么?二、使用步骤1.代码示例 总结 前言 提示:这里可以添加本文要记录的大概内容: winapi网站: h…...
POLARIS土壤相关数据集
POLARIS相关数据集属于杜克大学(Duke University)土木与环境工程系(CEE)的水文学研究团队。该团队有三个总体主题:1) 改善地球系统模型中地表异质性的表示,2) 利用环境数据来描述在陆…...
【Harmony OS】组件
目录 组件概述 组件常用属性 系统内置组件 Text TextArea 多行文本输入框组件 TextInput 文本输入框 Button Image 图片组件,支持本地图片和网络图片 Radio 单选框 Checkbox 复选框 Blank 空白填充组件 Divider 分隔符 PatternLock 图案密码锁组件 Prog…...
找出字符串中第一个匹配项的下标
题目:28. 找出字符串中第一个匹配项的下标 给你两个字符串 haystack 和 needle,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。如果 needle 不是 haystack 的一部分,则返回 -1。 …...
专家系统的知识获取、检测与组织管理——基于《人工智能原理与方法》的深度解析
前文我们已经了解了专家系统的基本概念和一般结构,系统中有专业的知识才是专家系统的关键,接下来对专家系统中的知识是如何获取、检测、组织和管理的进行探讨。 1.专家系统的基本概念:专家系统的基本概念解析——基于《人工智能原理与方法》…...
BUUCTF-[GWCTF 2019]re3
[GWCTF 2019]re3 查壳,64位无壳 然后进去发现主函数也比较简单,主要是一个长度校验,然后有一个mprotect函数,说明应该又是Smc,然后我们用脚本还原sub_402219函数处的代码 import idc addr0x00402219 size224 for …...
基准指数选股策略思路
一种基于Python和聚宽平台的量化交易策略,主要包含以下内容: 1. 导入必要的库 - 导入jqdata和jqfactor库用于数据获取和因子计算。 - 导入numpy和pandas库用于数据处理。 2. 初始化函数 - 设置基准指数为沪深300指数。 - 配置交易参数,如使用…...
【阿里云大模型高级工程师ACP习题集】2.5 优化RAG应用提升问答准确度(⭐️⭐️⭐️ 重点章节!!!)
习题集 【单选题】在RAG应用的文档解析与切片阶段,若遇到文档类型不统一,部分格式的文档不支持解析的问题,以下哪种解决方式不可行?( ) A. 开发对应格式的解析器 B. 转换文档格式 C. 直接忽略该类型文档 D. 改进现有解析器以支持更多格式 【多选题】在选择向量数据库时,…...
【torch\huggingface默认下载路径修改】.cache/torch/ 或 .cache/huggingface
问题 服务器的硬盘空间是有限的,系统上的固态硬盘空间又比较小,在跑深度学习模型的时候经常有默认下载权重的操作,不管是torch或者huggingface,如果不加管理,所有的权重都放在home/user/.cache 里面,迟早会…...
SpringBoot 常用注解大全
SpringBoot 常用注解大全 一、核心注解 1. 启动类注解 SpringBootApplication:组合注解,包含以下三个注解 Configuration:标记该类为配置类EnableAutoConfiguration:启用自动配置ComponentScan:组件扫描 2. 配置相…...
【器件专题1——IGBT第2讲】IGBT 基本工作原理:从结构到特性,一文解析 “电力电子心脏” 的核心机制
IGBT(绝缘栅双极型晶体管,Insulated Gate Bipolar Transistor)作为现代电力电子领域的核心器件,其工作原理融合了 MOSFET 的高效控制优势与 BJT 的大功率处理能力。本文从物理结构、导通 / 关断机制、核心特性等维度,深…...
再谈String
1、字符串常量池 1.1 创建对象的思考 下面是两种创建字符串对象的代码 public static void main1(String[] args) {String s1 "hello";String s2 "hello";System.out.println(s1 s2);//trueString s3 new String("hello");String s4 new …...
语音合成之五语音合成中的“一对多”问题主流模型解决方案分析
语音合成中的“一对多”问题主流模型解决方案分析 引言“一对多”指的是什么?优秀开源模型的方法CosyvoiceSparkTTSLlaSA TTSVITS 引言 TTS系统旨在模仿人类的自然语音,但其核心面临着一个固有的挑战,即“一对多”问题 。这意味着对于给定的…...
嵌入式:Linux系统应用程序(APP)启动参数及其规则详解
在 systemd 的服务单元文件中,[Service] 部分用于定义服务的启动、停止、重启等操作,以及服务的运行环境和参数。以下是 [Service] 部分常见参数及其规则的详细介绍: 服务类型相关参数 **Type** **作用**:指定服务的启动类型&…...
25%甘油(灭菌)保存菌液以及10%甘油(普通)保存蛋白的原理及操作-实验操作系列-010
01 甘油保菌实验原理 1. 渗透压调节 甘油作为渗透压调节剂,能显著降低水的结冰温度,防止低温环境中细菌细胞内冰晶的形成。冰晶会破坏细胞膜,从而损伤细胞的完整性。甘油能够减少冰晶的生成,维持细胞结构的稳定,保护…...
影楼精修-手部青筋祛除算法解析
注意:本文样例图片为了避免侵权,均使用AIGC生成; 手部青筋祛除科普 手部青筋祛除是影楼精修中一个非常精细的工作,需要较高的修图技巧,目前市面上很少有自动化的青筋祛除功能的,而像素蛋糕目测是第一个做到…...
【时时三省】Python 语言----函数
山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省 1,函数概念 为了实现某种功能而组织的语句集合 定义格式: def 函数名([参数])函数体def add_num(a,b):c = a + bprint(c)add_num(11, 22) def 是定义函数的关键字。定义函数时,需要注意以下问题: 1,不需要说…...
蜜罐管理和数据收集服务器:Modern Honey Network (MHN)
一、Modern Honey Network (MHN)介绍 Modern Honey Network (MHN) 是一个集中化的蜜罐管理和数据收集服务器。它旨在简化蜜罐的部署和管理,并提供一个简洁的 Web 界面来查看捕获的数据。 1、主要功能: 集中化管理: 通过一个中心服务器管理多个蜜罐传感器。快速部…...
关于hbaseRegion和hbaseRowKey的一些处理
我遇到了什么问题? 我的habse一共有三台服务器,其中一台忙的要死,另外两台吃瓜看戏,我的业务都在其中一个服务器上,导致数据的读写瓶颈。 先说一下hbase的概况,有一个整体了解,我们再讲原因。…...
exec和spawn
前言 需求:做一个electron应用,用node打开exe软件,打开后返回成功与否,打开的软件不会随electron应用的关闭而关闭 exec exec 第一个参数为要运行的command命令,参数以空格分隔。 child_process.exec(command[, opti…...
【C到Java的深度跃迁:从指针到对象,从过程到生态】第四模块·Java特性专精 —— 第十三章 异常处理:超越C错误码的文明时代
一、错误处理的范式革命 1.1 C错误处理的黑暗时代 C语言通过返回值传递错误状态,存在系统性缺陷: 典型错误处理模式: FILE* open_file(const char* path) { FILE* f fopen(path, "r"); if (!f) { return NULL; // 错误信息…...
AD相同网络的铜皮和导线连接不上
出现这样的情况是不是很烦恼,明明是相同的网络连接不上????? 直接修改铜皮属性(选择所有相同这个选项) 这样就可以连接上了...
驱动开发硬核特训 · Day 21(下篇): 深入剖析 PCA9450 驱动如何接入 regulator 子系统
📘 一、设备树视角:PCA9450 是如何声明的? 设备树中定义了 PCA9450 芯片通过 I2C 总线挂载,并描述了多个 regulator 通道: &i2c1 {pmic25 {compatible "nxp,pca9450c";reg <0x25>;regulators …...
消息队列mq在Mlivus Cloud向量数据库中的关键配置与最佳实践
作为《向量数据库指南》的作者和大禹智库高级研究员,我在30多年的向量数据库实战中深刻认识到:消息队列(MQ)作为现代向量数据库架构的"神经系统",其配置优化直接决定了系统的吞吐量、稳定性和扩展性。本文将基于Mlivus Cloud这一领先的向量数据库平台,深入剖析…...
常见网络安全攻击类型深度剖析(四):跨站脚本攻击(XSS)——分类、漏洞利用与前端安全防护
常见网络安全攻击类型深度剖析(四):跨站脚本攻击(XSS)——分类、漏洞利用与前端安全防护 在Web应用安全中,跨站脚本攻击(Cross-Site Scripting, XSS)是攻击者利用浏览器漏洞&#x…...
临床试验中安全性估计策略与应用
1. 安全性估计概述 1.1 安全性估计的定义与重要性 1.1.1 安全性估计的定义 安全性估计旨在准确评估药物或干预措施的安全性特征,涵盖不良事件的发生率、严重程度及与治疗的因果关系等关键要素。 依据 ICH E9(R1) 指南,需明确定义目标人群、伴发事件处理方式及分析策略,为药…...
2025年GPLT团体程序设计天梯赛L1-L2
目录 1.珍惜生命 2.偷感好重 3.高温补贴 4.零头就抹了吧 5.这是字符串题 6.这不是字符串题 7.大幂数编辑 8.现代战争编辑 9.算式拆解 10.三点共线 11.胖达的山头 12.被n整除的n位数 1.珍惜生命 【解析】直接输出即可 #include<bits/stdc.h> using namespace…...
AI 场景落地:API 接口服务 VS 本地部署,哪种更适合?
在当前 AI 技术迅猛发展的背景下,企业在实现 AI 场景落地时,面临着一个关键抉择:是选择各大厂商提供的 API 接口服务,还是进行本地化部署?这不仅关乎成本、性能和安全性,还涉及到技术架构、数据治理和长期战…...
cdh平台管理与运维最佳实践
一、容量规划:构建可持续扩展的数据湖底座 1.1 资源评估三维模型 #mermaid-svg-f455GhWoSD6qmLzX {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-f455GhWoSD6qmLzX .error-icon{fill:#552222;}#mermaid…...
未来乘用车电气/电子(E/E)架构与商用车电气/电子架构有何不同?
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 钝感力的“钝”,不是木讷、迟钝,而是直面困境的韧劲和耐力,是面对外界噪音的通透淡然。 生活中有两种人,一种人格外在意别人的眼光;另一种人无论…...
第25周:DenseNet+SE-Net实战
目录 前言 1.准备工作 2.查看数据 3.划分数据集 4.创建模型 5.编译及训练模型 6.结果可视化 7.总结 前言 🍨 本文为🔗365天深度学习训练营中的学习记录博客🍖 原作者:K同学啊 1.准备工作 import torch import torch.nn as nn imp…...
【ESP32-IDF笔记】20-配置以太网网络(W5500)
环境配置 Visual Studio Code :版本1.98.2 ESP32:ESP32-S3 ESP-IDF:V5.4 模块:W5500,SPI通讯协议 组件支持:esp_eth 官方的ethernet 以太网组件 W5500介绍 介绍 W5500 是一款全硬件 TCP/IP 嵌入式以太网…...
python源码打包为可执行的exe文件
文章目录 简单的方式(PyInstaller)特点步骤安装 PyInstaller打包脚本得到.exe文件 简单的方式(PyInstaller) 特点 支持 Python 3.6打包为单文件(–onefile)或文件夹形式自动处理依赖项 步骤 安装 PyIns…...
在vscode终端中运行npm命令报错
解决方案 这个错误信息表明,你的系统(可能是 Windows)阻止了 PowerShell 执行脚本,这是由于 PowerShell 的执行策略导致的。PowerShell 的执行策略控制着在系统上运行哪些 PowerShell 脚本。默认情况下,Windows 可能…...
Canvas入门教程!!【Canvas篇二】
没有一朵花,从一开始就是花。 目录 translate() 方法:rotate() 方法:scale() 方法: translate() 方法: Canvas 2D API 的 CanvasRenderingContext2D.translate() 方法用于对当前网格添加平移变换。 translate() 方法通…...
windows服务器及网络:搭建FTP服务器
前言:(各位大佬们,昨天太忙了,整得没有发布昨天那该写的那一篇,属实有点可惜的说QAQ,不过问题已经解决,我又回来啦) 今天我要介绍的是在Windows中关于搭建FTP服务器的流程与方法 注…...
[4A/OP]
2.2 安装程序 2.2.1 解压缩.tar.gz文件 调用UNIX命令tar会在当前目录下创建4A/OP子例程主目录4AOP-1.5/,包括所有必要的子目录。只需键入以下命令即可解压缩和“untar”4AOP-1.5.tar.gz: tar -xzvf 4AOP-1.5.tar.gz4AOP-1.5/目录现在应该已经创建&…...
C++学习之网络攻防以及信息搜索
目录 1.课程安排 2.课程介绍 3.渗透测试 4.ptes渗透测试执行标准的介绍 5.网络攻防环境的介绍 6.kali系统的介绍和调整 7.搜索引擎踩点 8.dnsenum和nslookup 9.whois命令 10.traceroute命令 11.复习 12.traceroute原理 13.telnet命令 14.在线存货ping 15.nmap扫描…...
4.5/Q1,GBD数据库最新文章解读
文章题目:Cross-Country Inequalities in Disease Burden and Quality of Care of Stroke, 1990-2021: A Systematic Analysis of the Global Burden of Disease Study 2021 DOI:10.1111/ene.70050 中文标题:1990 年至 2021 年中风疾病负担和…...
py语法基础理解
条件判断 只有if-else等我语句,Python不支持switch语句 单if语句 if 条件语句: 条件为真时执行的内容 if-else语句 if 条件语句: 条件为真时执行的内容 else: 条件为假时执行的内容 if-elif语句 else if if 条件语句1: 条件语句1为真时执行的内容 elif 条件语句…...
python——异常
1、定义 异常是在代码执行过程中发生的,它会影响到程序的正常运行。python程序不会自动来进行异常处理。python中常见异常父类:Exception。 2、常见异常 TypeError:类型错误异常。ValueError:值的异常。KeyError:键…...
深入理解指针(4)
1.二级指针 如何理解呢? 1.pp的类型是int * * ——二级指针类型 2.p指向a,a的类型是int 3.int * * pp 其中 int * 在说明 pp 是指向 p 的类型 int * ,第二个 * 说明 pp 是指针变量 4.p 1 跳过 4 个字节 , pp 1 跳过 4 或者 8 个字节&am…...
Apipost免费版、企业版和私有化部署详解
Apipost是企业级的 API 研发协作一体化平台,为企业提供 API研发测试管理全链路解决方案,不止于API研发场景,增强企业API资产管理。 Apipost 基于同一份数据源,同时提供给后端开发、前端开发、测试人员使用的接口调试、Mock、自动化…...
小火电视桌面 TV版 老旧历史版本安装包 官方免费下载
如果你还在为小火桌面tv版无法使用而烦恼,四处寻找其他新老版本安装包,那么不妨试试乐看家桌面,它能为你带来全新的电视使用体验。 乐看家桌面的界面简洁纯净,没有繁琐的层级和恼人的广告,大字体、大图标设计ÿ…...
Java常用API详解
本文将系统讲解Java开发中高频使用的工具类API,涵盖数学计算、系统操作、对象处理和大数运算等场景。ps:本文是免费的,如果被csdn锁了,请联系我.如果需要查看更详细的说明,可以查阅javaAPI帮助文档.我本来想直接把API文档整合到文章中方便大家下载,结果csdn这货直接…...
jdk-8u202-linux-x64.tar.gz官方下载地址
https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html 点击下载,需要先注册oracle账号,很好注册随便写,注册完登录就可以下载了。目前就Oracle JDK 8u201/202 是最后两个可免费用于商业用途的公开版本...
内联函数(c++)
预处理:优点:内嵌到目标代码,减少函数的调用。 缺点:在预处理阶段完成替换,避免了语义上的差错。 egg: #define SQR(X) ((X)*(X)) 函数:优点:完成了某一类操作的抽象,…...
Python 基础语法与数据类型(四) - 布尔类型 (bool) 与逻辑运算符 (and, or, not) 和类型转换
文章目录 布尔类型 (bool)逻辑运算符 (and, or, not)布尔值的“真值”判断 (Truthiness / Falsiness)类型转换 (Type Casting)总结 在前面的文章中,我们学习了数字类型(整型、浮点型)和字符串。今天,我们要介绍另一种非常基础且极…...
WebUI可视化:第7章:系统优化与部署实战
第7章:系统优化与部署实战 学习目标 ✅ 掌握Web应用的性能优化技巧 ✅ 实现安全可靠的线上部署 ✅ 配置监控与日志系统 ✅ 了解云服务成本控制方法 7.1 性能优化策略 7.1.1 前端优化 python # 示例:Gradio异步处理 demo.queue(concurrency_count=5) # 控制并发数 de…...