游乐游手机版
首页/AI教程/文章详情

目标检测YOLOv1的损失函数与非极大值抑制详解

时间:2026-05-31 06:14
YOLOv1将输入图片划分为7×7网格,每个网格预测两个边界框,共98个框。损失函数通过交并比(IoU)匹配预测框与真实框,包含位置、置信度和类别损失,并设置权重放大坐标损失。非极大值抑制按类别筛选置信度大于0 2的预测框,排序后取最高分框绘制。

损失函数

先说明一个基础事实:YOLOv1将输入图像划分为7×7的网格,总共49个格子。每个网格会预测两组中心点与边界框信息,合计49乘以2,即98个中心点和边界框。那么,在这98个候选框中,哪一个才是真正可靠的?哪个预测结果最准确?

衡量模型检测效果的核心指标是交并比(IoU)。简单来说,在数据预处理阶段,我们会人工标注出目标物体的精确位置和尺寸,这个标准框被称为真实框(Ground Truth),也就是模型训练的“标准答案”。模型推理时输出的框称为预测框。将预测框与真实框进行比较:计算两者交集面积除以并集面积,得到的结果就是IoU。该数值越高,说明预测框的定位越精准。

在预测阶段,每个网格输出的信息包括:两组边界框的中心点偏移量、宽高偏移量,以及对应这两个框的置信度。YOLOv1对置信度的定义是:网格包含目标物体的概率乘以预测框与真实框的IoU。只要网格内确实存在物体,这个概率就为1;没有物体则为0。此外,每个网格还会输出20个类别的预测概率值。

训练过程中,网络会将自己预测的两个边界框与标注好的绿色真实框(GT)进行匹配对比。那些IoU过小、明显偏离目标的预测框会被自动舍弃,只保留匹配度更高的那个框,用于后续损失函数的计算。

接下来我们分析YOLOv1的损失函数是如何设计的:

公式中的S²代表划分的7×7共49个网格,参数B=2表示每个网格预测两个边界框。obj表示网格包含目标物体时取1,不包含时取0;noobj则正好相反——网格有物体时取0,没有物体时取1。损失函数计算时会同时兼顾包含物体的网格和不包含物体的网格,两者都不遗漏。

这里有一个巧妙的设计:权重系数设置为5,专门用来放大中心点与边界框坐标的损失权重。为什么这么做?因为49个网格中,真正包含物体的网格数量非常少。如果不加大权重,那些不包含物体的网格产生的损失就会稀释目标位置的重要性。设置这个权重,目的是让模型把注意力集中到真正有目标的位置上。

损失函数的前两项是位置损失,采用均方误差计算预测框中心点、宽高与真实框的偏差。简单来说,就是真实值减去预测值,再取平方。后续的项依次是置信度损失和类别分类损失。

非极大值抑制

YOLOv1总共会输出98个预测框,那么模型是如何从这么多框中挑选出最优的那几个呢?

每个网格输出的预测向量中,后20个数值对应20个类别的预测概率;前10个参数包含两组边界框的信息,其中就包括两个边界框的置信度得分。这个置信度得分由公式计算得出,具体定义如下:

接着会得到两个长度为20维的新向量。向量中的每一个数值,分别代表该预测框对应各个类别目标的置信可靠程度。

最终会得到98个20维的向量,分别对应模型预测的98个边界框。向量中每一列的数值,代表对应类别的置信度得分。例如第一列,就是目标属于汽车类别的置信度。

处理时按类别逐一进行:以汽车类别为例,先筛选出置信度大于0.2的预测框,其余全部舍弃(代码实现时直接将置信度置为0即可)。然后将保留的预测框按置信度从高到低排序,为非极大值抑制(NMS)做好准备。

最后整理成一个98×20的矩阵,将矩阵中所有置信度为0的无效数据剔除,即可进行预测框的绘制。仍以汽车类别为例:在汽车这一类中,选出置信度得分最高的那个预测框,提取其对应的中心点与边界框坐标,直接绘制到原始图片上,并标注相应的类别标签即可。

来源:https://developer.aliyun.com/article/1738727
上一篇AI总结归纳赋能行业应用与教育变革 下一篇Thundr 随机视频聊天 类似 Omegle TV
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
2026实测解析GPT-5.5模型能力详解与国内合规使用规范
AI教程 · 2026-06-03

2026实测解析GPT-5.5模型能力详解与国内合规使用规范

2026年,AI大模型迎来了又一次迭代升级。GPT-5 5凭借在多模态精细化处理能力上的跨越式突破,正逐步成为职场办公、内容创作、代码开发以及数据优化等领域的核心生产力工具。然而,对国内多数用户而言,当前仍面临不少现实难题:渠道杂乱、合规边界模糊、账号频繁被封、数据泄露风险——各类非正规镜像站、共享

分时操作系统和实时操作系统的主要区别
AI教程 · 2026-06-03

分时操作系统和实时操作系统的主要区别

分时操作系统和实时操作系统区别 ?️ 操作系统家族里,有两类系统经常被放在一起比较:分时操作系统和实时操作系统。它们虽然都叫“操作系统”,但设计哲学、工作机制和应用场景可以说是天差地别。一个追求“公平共享”,一个追求“确定性响应”。这篇文章打算从定义、核心机制、调度策略、实际应用等维度,把这两者的本

企业AI智能体从零搭建实战踩坑经验全记录
AI教程 · 2026-06-03

企业AI智能体从零搭建实战踩坑经验全记录

去年开始用腾讯云智能体开发平台(ADP)跑了几个企业项目,从最基础的客服Bot一路干到多Agent协同系统,中间踩的坑不少,但积累下来的经验价值也相当可观。这篇文章就聊聊实际落地过程里的那些关键节点和教训,给同样在腾讯云上折腾AI Agent的朋友做个参考。为什么选腾讯云ADP而不是从零搭建做第一个

Selenium自动化测试入门:从环境搭建到首个可维护用例
AI教程 · 2026-06-03

Selenium自动化测试入门:从环境搭建到首个可维护用例

Selenium 入门的核心不在于记住多少 API,而在于把三件事想清楚:环境别装错版本、等待机制别用 sleep、用例结构别写成流水账。下面按照“装环境 → 跑通第一个脚本 → 理解等待 → 选对定位器 → 拆成 Page Object”的顺序走一遍,每一步都附上代码,踩过的坑直接标出来。 Sel

专业表格魔法师 QoderWork CN 让脏数据秒变仪表盘神器
AI教程 · 2026-06-03

专业表格魔法师 QoderWork CN 让脏数据秒变仪表盘神器

使用案例 今天聊聊怎么用阿里巴巴的 QoderWork CN 桌面应用智能体,把 Excel 里那堆乱糟糟的原始数据清洗干净,再做成可视化的看板。整个过程基本不需要写代码,全靠自然语言对话就能搞定。下面就用一个实际案例,把操作步骤拆开来讲。 步骤一:安装并注册 QoderWork CN 账号 先到