YOLOv1模型架构、损失值、NMS极大值抑制
文章目录
- 前言
- 一、YOLO系列v1
- 1、核心思想
- 2、流程解析
- 二、损失函数
- 1、位置误差
- 2、置信度误差
- 3、类别概率损失
- 三、NMS(非极大值抑制)
- 总结YOLOv1的优缺点
前言
YOLOv1(You Only Look Once: Unified, Real-Time Object Detection)由Joseph Redmon等人在2016年提出,是YOLO系列的第一代模型,首次将目标检测任务转化为单阶段端到端的回归问题,实现了实时检测的突破性进展。
一、YOLO系列v1
1、核心思想
将一副图像分成SxS个网格(grid cell),如果某个object的中心落在这个网格中,则这个网格就负责预测这个object。
上图把图片划分成7x7的网格,每个网格只用两个预选框,这些边框大小可以超出当前网格的范围,对于每个边框,v1模型分别预测出5个参数:中心坐标(x, y)、宽度w、高度h以及置信度confidence。置信度反映了模型对边框内包含物体的信心程度以及边框的准确度。(置信度(confidence)=类概率*IoU)
2、流程解析
网络架构借鉴了GoogleNet。24个卷积层,2个全连接层
(用1×1 reduction layers 紧跟 3×3 convolutional layers 取代Goolenet的 inception modules )
7×7意味着7×7个grid cell,30表示每个grid cell包含30个信息,其中2个预测框,每个预测框包含5个信息(x y w h c),分别为中心点位置坐标,宽高以及置信度,剩下20个是针对数据集的20个种类的预测概率(即假设该grid cell负责预测物体,那么它是某个类别的概率)。
每个grid有30维,这30维中,8维是回归box的坐标,2个B是box的confidence,还有20维是类别。 其中坐标的x,y(相对于网格单元格边界的框的中心)用对应网格的归一化到0-1之间,w,h用图像的width和height归一化到0-1之间。
二、损失函数
YOLO-V1算法最后输出的检测结果为7x7x30的形式,其中30个值分别包括两个候选框的位置和有无包含物体的置信度以及网格中包含20个物体类别的概率。那么YOLO的损失就包括三部分:位置误差,confidence误差,分类误差。
损失函数的设计目标就是让坐标(x,y,w,h),confidence,classification这个三个方面达到很好的平衡。
1、位置误差
如上图所示,其为位置误差的计算公式,其中对应的值为一个系数,表示如果你觉得位置误差更重要,那么就设置大一点,置信度误差与分类误差也是同样的意思
第二个红框内的符号表示第i个网格的第j个预选框,如果负责预测物体,那么整体的值为1,反之为0
前面的求和符号s平方表示网格的格式,例如YOLO v1中的网格个数为7*7,然后B表示预选框的个数,此处数值为2,后面的x表示预选框的中心点的坐标x,y,以及预选框的宽w、高h。
2、置信度误差
λ的值所表示的意思和上述一致,但是第二个像阿拉伯数字1noobj的符号,其所表示的值和上述位置误差中的相反,此处表示第i个网格,第j个预选框,如果不负责预测物体,那么他的值为1,否则为0,
C的表示置信度的值,置信度C的值 = Pr类别概率 * IOU
类别概率表示边界框(预选框)内存在对象的概率,若存在对象则为1,不存在则为0,IOU为预测的位置框和真实值的框相交集的值除以并集的值的大小。
Ci表示模型预测出来的置信度的值,C^i的值表示实际计算得到的置信度的值
3、类别概率损失
这里第一个求和符号后面的小符号,表示第i个网格是否包含物体,如果包含,那么其值为1,否则为0
pi©-p^i©表示预测的类别的概率减去真实标签的概率,例如模型输出20类别的结果,即有20个数据,其中有预测到狗的概率,加入标签打的是狗,只需要将20个数据中预测狗额概率的值取出来,然后减去1,在对结果平方即可
三、NMS(非极大值抑制)
同一个人脸被多个预选框预测出来,导致了预选框的重叠,此时可以将置信度低的抑制了,只保留最大的那个。
对每个类别,按置信度排序,剔除与最高分框IoU超过阈值(如0.5)的预测框。
总结YOLOv1的优缺点
YOLO V1存在的优缺点:
优点:速度快,简单
缺点1:每个cell只预测1个类别,如果重叠无法解决
缺点2:小物体检测效果一般,长宽比可选,但单一。
相关文章:

YOLOv1模型架构、损失值、NMS极大值抑制
文章目录 前言一、YOLO系列v11、核心思想2、流程解析 二、损失函数1、位置误差2、置信度误差3、类别概率损失 三、NMS(非极大值抑制)总结YOLOv1的优缺点 前言 YOLOv1(You Only Look Once: Unified, Real-Time Object Detection)由…...

【论文阅读】——Articulate AnyMesh: Open-Vocabulary 3D Articulated Objects Modeling
文章目录 摘要一、介绍二、相关工作2.1. 铰接对象建模2.2. 部件感知3D生成 三、方法3.1. 概述3.2. 通过VLM助手进行可移动部件分割3.3. 通过几何感知视觉提示的发音估计3.4. 通过随机关节状态进行细化 四、实验4.1. 定量实验发音估计设置: 4.2. 应用程序 五、结论六、思考 摘要…...

HarmonyOS基本的应用的配置
鸿蒙HarmonyOS组建页面 1、创建ets文件并配置2、修改main_pages.json文件3、修改EntryAbility.ets文件(启动时加载的页面) 1、创建ets文件并配置 Index.ets是创建项目自动构建生成的,我们可以将其删除掉,并重新在page文件夹下创建…...

【redis】集群模式
Redis Cluster是Redis官方推出的分布式解决方案,旨在通过数据分片、高可用和动态扩展能力满足大规模数据存储与高并发访问的需求。其核心机制基于虚拟槽分区,将16384个哈希槽均匀分配给集群中的主节点,每个键通过CRC16哈希算法映射到特定槽位…...
生成自定义的androidjar文件具体操作
在Androidsdk目录下的platform找到对应的api的android源码包路径,如android-32拷贝里面的android.jar文件到目录,如 C:\Users\xxxxxxx\Desktop\android\new_android_jar,然后解压android.jar到目录new_android_jar下。在编译后的aosp源码中找…...

DeepSeek实战--微调
1.为什么是微调 ? 微调LLM(Fine-tuning Large Language Models) 是指基于预训练好的大型语言模型(如GPT、LLaMA、PaLM等),通过特定领域或任务的数据进一步训练,使其适应具体需求的过程。它是将…...
API请求参数有哪些?
通用参数 app_key:应用的唯一标识,用于验证应用身份,调用API时必须提供。 timestamp:请求时间戳,通常为当前时间的毫秒级时间戳,用于防止请求被重放攻击。 format:返回数据的格式,…...
Kaggle图像分类竞赛实战总结详细代码解读
前言 我是跟着李沐的动手学深度学习v2视频学习深度学习的,光看不做假把式,所以在学习完第七章-现代卷积神经网络之后,参加了一次李沐发布的Kaggle竞赛。自己动手,从组织数据集开始,到训练,再到推理&#x…...
系统间安全复制和同步文件
1、系统间安全的复制文件 1.1复制远端文件/目录到本地 scp 192.168.1.2:/etc/yum.conf /etc scp -r 192.168.1.2:/etc/dir /home scp -r -P 6022 root192.168.1.2:/etc/dir /home #-P参数指定远端服务器的ssh端口 1.2 复制本地文件/目录去远端 scp /etc/yum.conf root19…...
Cursor无法SSH远程连接服务器免密登录问题
在本地机器和Ubuntu服务器之间实现SSH远程免密连接,可按如下步骤操作: 1. 生成SSH密钥对 在本地机器上开启终端,使用以下命令生成SSH密钥对: ssh-keygen -t rsa按提示操作,一般直接回车,这样密钥会生成在…...
RHCSA Linux系统软件管理和进程管理
1. RPM管理工具 (1)简介 ① 包名格式 软件名 - 主版本 - 次版本 - 修订号 - 软件发布次数 - 发行商 - CPU架构平台 - 支持系统位数.rpm eg: zsh - 5.0.2 - 14.el7.x86_64.rpm ② 相关网站 http://rpmfind.net/, http://rpm.pbone.net/ ࿰…...
地平线rdk-x5部署yolo11(1) 模型转出
一. 模型导出: 可以参考RDK X5部署YOLOv8-Seg 和v8差不多 、拷贝YOLO项目 git clone https://github.com/ultralytics/ultralytics.git 2、虚拟环境和依赖安装 # 安装虚拟环境 conda create -n yolov8 python3.8 -y # 进入虚拟环境 conda activate yolov8 # 安…...
开源AI对比--dify、n8n
原文网址:开源AI对比--dify、n8n-CSDN博客 简介 本文介绍开源AI工作流工具的选型。 对比 项difyn8n占优者学习难度简单中等dify核心理念用LLM构建应用。“连接一切”。以工作流自动化连接各系统。平手工作模式 Chatflow:对话。支持用户意图识别、上下…...

移动端前端开发中常用的css
在开发移动端项目的时候,很多样式都是相同的,比如说图标大小,头像大小,页面底部保存(添加按钮),项目主体颜色等等,对于这些在项目中常用到的,通常都会写在公共样式中(pub…...

Linux安装Weblogic 教程
前言 WebLogic 是一个由 Oracle 提供的企业级应用服务器,广泛用于部署和管理 Java EE(Enterprise Edition)应用程序。它支持多种服务,包括 Web 服务、企业信息系统、消息驱动的应用等。它是一个强大的应用服务器,旨在…...
JVM——即时编译
分层编译模式:动态平衡启动速度与执行效率 分层编译是现代JVM(如HotSpot、GraalVM)实现高性能的核心策略之一,其核心思想是根据代码的执行热度动态选择不同的编译层次,实现启动速度与运行效率的最佳平衡。以HotSpot虚…...

flutter 的热更新方案shorebird
Flutter 热修复(Shorebird)_flutter shorebird-CSDN博客 Preview Locally | ShorebirdLearn how to preview an existing release of your application.https://docs.shorebird.dev/code-push/preview/ 控制台: Shorebird Console 文档&…...

创建型模式:抽象工厂(Abstract Factory)模式
一、概念与核心思想 抽象工厂(Abstract Factory)模式是创建型设计模式的重要成员,它提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。该模式将对象的创建逻辑封装在抽象工厂及其具体实现类中,客户端通过抽象工厂接口获取所需的对象族,实现对象创…...
Java面试深度解密:Spring Boot、Redis、日志优化、JUnit5及Kafka事务核心技术解析
模拟面试实战 面试官:请解释Spring Boot的自动配置原理?哪些关键注解参与了这一过程? xbhog:Spring Boot通过AutoConfiguration标记核心配置类,通过ConditonalOnClass和ConditionalOnMissingBean判断依赖是否存在并自…...
Python爬虫(22)Python爬虫进阶:Scrapy框架动态页面爬取与高效数据管道设计
目录 一、背景:Scrapy在现代爬虫中的核心价值二、Scrapy项目快速搭建1. 环境准备与项目初始化2. 项目结构解析 三、动态页面处理:集成Splash与中间件1. 配置Splash渲染服务(Docker部署)2. 修改settings.py启用中间件3. 在Spider中…...
Tomcat 日志体系深度解析:从访问日志配置到错误日志分析的全链路指南
一、Tomcat 核心日志文件架构与核心功能 1. 三大基础日志文件对比(权威定义) 日志文件数据来源核心功能典型场景catalina.out标准输出 / 错误重定向包含 Tomcat 引擎日志与应用控制台输出(System.out/System.err)排查 Tomcat 启…...

PDF文档解析新突破:图表识别、公式还原、手写字体处理,让AI真正读懂复杂文档!
要想LLM大模型性能更佳,我们需要喂给模型看得懂的高质量数据。那有没有一种方法,能让我们把各种文档“读懂”,再喂给大模型使用呢? 如果你用传统OCR工具直接从PDF中提取文本,结果往往是乱序、缺失、格式错乱。因为实际…...

Redis 主从复制集群搭建教程
目录 为什么要搭建 Redis 主从复制集群?搭建 Redis 主从复制集群前提条件步骤一:创建 Docker 网络步骤二:启动 Redis 主节点步骤三:启动 Redis 从节点步骤四:验证复制状态步骤五:使用 Python 连接 Redis 集…...

共模电感在开关电源交流侧的应用原理与原因
在开关电源的设计中,共模电感是一个关键的电子元件,它常被连接在开关电源的交流一侧。然而,很多人虽然对共模电感并不陌生,但对于它为何要接在交流一侧,可能并没有深入理解。接下来,我们将详细探讨共模电感…...

MySQL——七、索引
优势:极高查询效率;极高排序效率 劣势:占用磁盘空间;降低更新表的速度(可忽略,磁盘相对便宜;增删改比例较小) 索引结构 MYSQL的索引是在存储引擎层实现的,不同的存储引…...
Mongo mongodump mongorestore 导入出导出操作
使用 mongodump 导出数据 示例 1: 导出整个数据库 mongodump --host localhost --port 27017 --db myDatabase --out /data/backup/–host: MongoDB服务器地址。–port: MongoDB服务器端口,默认是27017。–db: 要导出的数据库名称。–out: 输出目录,备…...
JAVA将一个同步方法改为异步执行
目的: 这么做的目的就是为了使一个高频率执行的方法能不阻塞整个程序,将该方法丢入到线程池中让线程去做异步执行,既提高了程序整体运行速度,也使得在高并发环境下程序能够更加健壮(同步执行可能会使得请求堆积以致系…...
安装jdk步骤
将Linux安装jdk的步骤放入shell脚本中 #!/bin/bash # 阿里云服务器专用 - 全自动安装 OpenJDK 1.8(无交互) # 仅支持 yum 系系统(CentOS/RHEL/Alibaba Cloud Linux)# 检查 root 权限 if [ "$(id -u)" -ne 0 ]; thenech…...

HTML应用指南:利用POST请求获取全国德邦快递服务网点位置信息
德邦快递作为中国领先的综合性物流服务提供商,自1996年成立以来,始终致力于为客户提供高效、安全的大件快递及其他物流解决方案。德邦快递凭借其强大的直营模式、“最后一公里”的优质服务以及对科技的持续投入,在竞争激烈的物流市场中占据了重要位置。特别是在大件快递领域…...

高级可视化图表分析实践——以《大侠立志传》武器系统为例
高级可视化图表分析实践——以《大侠立志传》武器系统为例 引言武器类型分布矩形树图结论 不同品质/类别武器的攻击力分布情况蜂群图分析结论 武器来源桑基图分析结论 武器附加属性词云图分析结论 不同品级武器装备熟练度要求/特质要求离散热力图结论品质与熟练度的正相关性品质…...