【Digest】YOLO系列:YOLOv1,YOLOv2,YOLOv3,YOLOv4,YOLOv5简介

YOLO详解 本文参考知乎 https://zhuanlan.zhihu.com/p/25236464 1. YOLO的创新点 YOLO将物体检测作为回归问题求解。基于一个单独的end-to-end网络,完成从原始图像的输入到物体位置和类别的输出。 从网络设计上,YOLO与two steps的目标检测方法如RCNN、Fast RCNN和Faster RCNN的区别如下: YOLO训练和检测均是在一个单独网... 阅读详情

1. 前言

论文下载:arxiv.org/abs/1506.0264

代码下载:github.com/pjreddie/dar

核心思想:将整张图片作为网络的输入(类似于Faster-RCNN),直接在输出层对BBox的位置和类别进行回归。

目标检测之YOLO算法:YOLOv1,YOLOv2,YOLOv3,TinyYOLO,YOLOv4,YOLOv5,YOLObile,YOLOF详解:

2. YOLO v1算法详解

2.1 实现方法

  • 将一幅图像分成SxS个网格(grid cell),如果某个object的中心 落在这个网格中,则这个网格就负责预测这个object。
  • 每个网络需要预测B个BBox的位置信息和confidence(置信度)信息,一个BBox对应着四个位置信息和一个confidence信息。confidence代表了所预测的box中含有object的置信度和这个box预测的有多准两重信息:
其中如果有object落在一个grid cell里,第一项取1,否则取0。 第二项是预测的bounding box和实际的groundtruth之间的IoU值。
  • 每个bounding box要预测(x, y, w, h)和confidence共5个值,每个网格还要预测一个类别信息,记为C类。则SxS个网格,每个网格要预测B个bounding box还要预测C个categories。输出就是S x S x (5*B+C)的一个tensor。(注意:class信息是针对每个网格的,confidence信息是针对每个bounding box的。
  • 举例说明: 在PASCAL VOC中,图像输入为448x448,取S=7,B=2,一共有20个类别(C=20)。则输出就是7x7x30的一个tensor。整个网络结构如下图所示:
  • 在test的时候,每个网格预测的class信息和bounding box预测的confidence信息相乘,就得到每个bounding box的class-specific confidence score:
等式左边第一项就是每个网格预测的类别信息,第二三项就是每个bounding box预测的confidence。这个乘积即encode了预测的box属于某一类的概率,也有该box准确度的信息。
  • 得到每个box的class-specific confidence score以后,设置阈值,滤掉得分低的boxes,对保留的boxes进行NMS处理,就得到最终的检测结果。

简单的概括就是:

(1) 给个一个输入图像,首先将图像划分成7*7的网格

(2) 对于每个网格,我们都预测2个边框(包括每个边框是目标的置信度以及每个边框区域在多个类别上的概率)

(3) 根据上一步可以预测出7*7*2个目标窗口,然后根据阈值去除可能性比较低的目标窗口,最后NMS去除冗余窗口即可

2.2 损失函数

在实现中,最主要的就是怎么设计损失函数,让这个三个方面得到很好的平衡。作者简单粗暴的全部采用了sum-squared error loss来做这件事。

这种做法存在以下几个问题:

  • 第一,8维的localization error和20维的classification error同等重要显然是不合理的;
  • 第二,如果一个网格中没有object(一幅图中这种网格很多),那么就会将这些网格中的box的confidence push到0,相比于较少的有object的网格,这种做法是overpowering的,这会导致网络不稳定甚至发散。

解决办法:

  • 更重视8维的坐标预测,给这些损失前面赋予更大的loss weight。
  • 对没有object的box的confidence loss,赋予小的loss weight。
  • 有object的box的confidence loss和类别的loss的loss weight正常取1。

对不同大小的box预测中,相比于大box预测偏一点,小box预测偏一点肯定更不能被忍受的。而sum-square error loss中对同样的偏移loss是一样。

为了缓和这个问题,作者用了一个比较取巧的办法,就是将box的width和height取平方根代替原本的height和width。这个参考下面的图很容易理解,小box的横轴值较小,发生偏移时,反应到y轴上相比大box要大。(也是个近似逼近方式)

一个网格预测多个box,希望的是每个box predictor专门负责预测某个object。具体做法就是看当前预测的box与ground truth box中哪个IoU大,就负责哪个。这种做法称作box predictor的specialization。

最后整个的损失函数如下所示:

这个损失函数中:

  • 只有当某个网格中有object的时候才对classification error进行惩罚。
  • 只有当某个box predictor对某个ground truth box负责的时候,才会对box的coordinate error进行惩罚,而对哪个ground truth box负责就看其预测值和ground truth box的IoU是不是在那个cell的所有box中最大。

其他细节,例如激活函数使用leak RELU,模型用ImageNet预训练,模型使用了Dropout(p=0.5)和数据增强来避免过拟合的问题,使用NMS来去除重复的框提高了2%-3%的mAP等等。

2.3 优点

  • 快速,pipline简单.
  • 背景误检率低。
  • 通用性强。YOLO对于艺术类作品中的物体检测同样适用。它对非自然图像物体的检测率远远高于DPM和RCNN系列检测方法。

2.4 缺点

  • 由于输出层为全连接层,因此在检测时,YOLO训练模型只支持与训练图像相同的输入分辨率。
  • 虽然每个格子可以预测B个bounding box,但是最终只选择只选择IOU最高的bounding box作为物体检测输出,即每个格子最多只预测出一个物体。当物体占画面比例较小,如图像中包含畜群或鸟群时,每个格子包含多个物体,但却只能检测出其中一个。这是YOLO方法的一个缺陷。
  • YOLO loss函数中,大物体IOU误差和小物体IOU误差对网络训练中loss贡献值接近(虽然采用求平方根方式,但没有根本解决问题)。因此,对于小物体,小的IOU误差也会对网络优化过程造成很大的影响,从而降低了物体检测的定位准确性。

2.5 实验结果

如下图所示,YOLOV1与其他实时检测系统的实验结果的对比(PASCAL VOC 2007),YOLOV1在检测的速度和精度方面效果都不错。

PASCAL VOC 2007

如下图所示,错误分析,Fast R-CNN vs. YOLOV1:YOLOV1很难正确地定位目标,在YOLOV1的错误中,定位错误所占的比重超过了其它所有错误的总和。Fast R-CNN的定位错误要少得多,但背景错误要多得多。Fast R-CNN预测背景检测的可能性几乎是YOLOV1的三倍。

Fast R-CNN vs. YOLOV1

如下图所示,论文通过使用YOLOV1来消除来自Fast R-CNN的背景检测,得到了显著的性能提升,当与YOLOV1相结合时,其mAP增长3.2%至75.0%。不幸的是,这种组合并不能从YOLOV1的速度中受益。

模型结合

如下图所示,在VOC 2012测试中,YOLOV1的得分为57.9%。这比目前的技术水平要低,更接近使用VGG-16的原始R-CNN。与最接近的竞争对手相比,YOLOV1在检测小物体时比较困难。与YOLO结合后,Fast R-CNN提高了2.3%(Fast R-CNN + YOLO)。

YOLOV1在PASCAL VOC 2012的实验结果

如下图所示,在Picasso和People-Art 数据集上,YOLOV1与其他检测方法的性能比较。针对于不同的数据集,R-CNN的mAP下降的非常快,而YOLO和DPM的mAP下降的比较缓慢。与DPM一样,YOLOV1为目标的大小和形状、目标之间的关系以及目标通常出现的位置建模。艺术品和自然图像在像素级别上有很大的不同,但它们在目标的大小和形状方面是相似的,因此YOLOV1仍然可以预测良好的边界框和检测。

在Picasso和People-Art 数据集上,YOLOV1与其他检测方法的性能比较

YOLOV1在艺术品和自然图像上的检测结果如下,演示源代码

YOLOV1在艺术品和自然图像上的检测结果


Reference:https://zhuanlan.zhihu.com/p/362758477

卷积神经网络之Yolo详解 IoU用于衡量预测框与真实框的重叠程度,是目标检测中的基础评估指标。置信度反映了模型对于其预测框包含物体的信心。精确率衡量了预测为目标的框中,实际是目标的比例。召回率衡量了模型能够找到的真实目标的比例。精确率与召回率之间通常存在权衡,需要根据实际需求选择合适的指标。读到这里大家可能对tp tn fp fn仍有疑问,不要着急下面更详细的来了:在机器学习和目标检测中,TPFPTN和FN是用来衡量模型性能的四个基本概念,它们主要用于评估分类任务的准确性。 阅读详情

相关推荐

YOLO系列算法

目录YOLO系列算法yolo算法Yolo算法思想Yolo的网络结构网络输入网络输出7X7网格30维向量Yolo模型的训练训练样本的构建损失函数模型训练模型预测yolo总结yoloV2预测更准确(better)batch normalization使用高分辨率图像微调分类模型采用Anchor Boxes聚类提取anchor尺度边框位置的预测细粒度特征融合多尺度训练速度更快(Faster)识别对象更多yoloV3算法简介多尺度检测网络模型结构先验框logistic回归yoloV3模型的输入与输出yoloV4总结

最白の白菜的博客 3万+

pytorch实现的YOLO-v1源代码

pytorch实现的YOLO-v1源代码pytorch实现的YOLO-v1源代码pytorch实现的YOLO-v1源代码pytorch实现的YOLO-v1源代码pytorch实现的YOLO-v1源代码pytorch实现的YOLO-v1源代码pytorch实现的YOLO-v1源代码pytorch实现的YOLO-v1源代码pytorch实现的YOLO-v1源代码pytorch实现的YOLO-v1源代码pytorch实现的YOLO-v1源代码pytorch实现的YOLO-v1源代码pytorch实现的YOLO-v1源代码pytorch实现的YOLO-v1源代码pytorch实现的YOLO-v1源代码pytorch实现的YOLO-v1源代码pytorch实现的YOLO-v1源代码pytorch实现的YOLO-v1源代码pytorch实现的YOLO-v1源代码pytorch实现的YOLO-v1源代码pytorch实现的YOLO-v1源代码pytorch实现的YOLO-v1源代码pytorch实现的YOLO-v1源代码pytorch实现的YOLO-v1源代码pytorch实现的YOLO-v1源代码

智能安规考核系统:AI(YOLO+讯飞语音)赋能千人千面

摘要 "千人千面智能安规考核系统"是一款基于PyQt5框架开发的智能化安全规程考核平台,融合了YOLOPose姿态估计、人脸识别、YOLOv11目标检测和语音识别等多模态AI技术。系统通过ONNX格式实现模型轻量化部署,利用ONNX Runtime和GPU加速提升性能,并打包为独立可执行程序便于工业现场部署。该系统可自动评估安全装备佩戴、操作规范等指标,实现了电力、建筑等行业安全考核的智能化与个性化。 关键特性: 多模态AI评估体系 跨平台ONNX模型部署 实时性能优化 一体化考核解决方

pengxiang1998的博客 3218

YOLOv1详解[代码]

本文详细介绍了目标检测算法YOLOv1的核心内容。YOLOv1是CVPR2016的文章,其主要创新点在于将目标检测视为一个回归问题,使用单个网络进行端到端训练,显著提升了检测速度。文章详细解析了YOLOv1的目标检测逻辑、模型输出表示、网络设计及训练过程,包括预训练、微调、归一化、激活函数和损失函数的设计。此外,还探讨了YOLOv1的推理过程及其算法缺陷,如对小物体检测的局限性。文章建议结合原文阅读以深入理解YOLOv1的实现细节和优化策略。

YOLO系列算法全家桶——YOLOv1-YOLOv9详细介绍 !!

本文详细介绍了从YOLOv1-YOLOv9的网络结构,以及各个版本之间的迭代。YOLOv1-YOLOv8之间的对比ModelAnchorInputBackboneNeckYOLOv1锚框(训练是224*224,测试是448*448;GoogLeNet;Dropout防止过拟合;最后一层使用线性激活函数,其余层都使用ReLU激活函数无;一个网格只预测了2个框,并且都属于同一类;全连接层直接预测bbox的坐标值;YOLOv2锚框(通过k-means选择先验框。

不要给自己设限,尝试更多可能(思所向 皆可往) 7万+

从零开始掌握YOLO——实时目标检测的技术详解

在当今的计算机视觉领域,目标检测技术扮演着至关重要的角色,随着深度学习技术的迅速发展,目标检测在安防监控、自动驾驶、医疗影像等多个领域得到了广泛应用。传统的目标检测方法通常需要复杂的手工特征设计和分类器训练,不仅效率较低,还存在难以推广的瓶颈。近年来,基于卷积神经网络(CNN)的目标检测方法,尤其是YOLO(You Only Look Once),彻底改变了这一现状。

iShare_Carlos的博客 5万+

Digest】目标检测之YOLOv2 算法-YOLO9000: Better, Faster, Stronger

论文地址:https://2相关代码:https://该论文使用一种新颖的多尺度训练方法,YOLOv2可以在不同的尺寸下运行,在速度和精度之间提供了一个简单的权衡。在67 FPS的情况下,YOLOv2在VOC 2007上获得76.8mAP。在40 FPS的情况下,YOLOv2获得78.6mAP。最后提出了一种目标检测与分类的联合训练方法,利用该方法在COCO检测数据集和ImageNet分类数据集上同时训练YOLO9000,它可以预测9000多种不同的物体类别的检测结果。

我的博客 264

82yolov11检测模型迁移瑞芯微rk3588和使用昇腾设备300i DUO卡推理 batch=1/3,支持昇腾NMS迁移npu推理

本文介绍了使用昇腾设备进行分割推理的测试流程,包括两种测试方式(cann+onnx和om)。首先验证300iDUO卡的可用性,随后创建Docker镜像和容器以搭建独立环境。通过从指定仓库拉取Ubuntu 20.04镜像,创建容器并映射目录。进入容器后安装必要组件(Python3、GCC等)和系统工具(pciutils、net-tools等),为后续模型转换和迁移做准备。整个流程旨在构建可交付给第三方的标准化测试环境。

sxj731533730 1124

YOLOv8模型安卓端部署实战:NCNN+JNI高效推理全流程

YOLO(You Only Look Once)作为主流实时目标检测算法,其在移动端的落地能力直接关系到工业质检、安防巡检、医疗辅助等边缘智能场景的可行性。核心在于模型轻量化、推理引擎适配与安卓系统深度集成三者的协同优化。NCNN因其专为移动端设计的内存管理、ARM NEON加速支持及稳定INT8量化能力,成为当前安卓平台部署YOLOv8的首选推理框架;而JNI桥接层需严格遵循‘薄封装’原则,将YUV转RGB、推理、NMS等高耗时操作全置于C++层,规避Java/C++频繁切换开销。典型应用场景包括手机摄像

weixin_34197488的博客 424

边缘端自然语言PTZ智能体:SCOPE实时视觉控制框架

自然语言交互与物理执行的融合是边缘智能体的核心能力,其本质在于跨模态语义理解、实时运动控制与资源受限环境下的协同推理。传统AI视觉系统常因语音识别延迟、意图与动作脱节、云台机械响应不确定性等问题,在真实工业场景中失效。SCOPE框架以‘视觉锚点’为中枢,构建三层状态机,实现从口语指令(如‘看穿蓝衣服的人’)到毫秒级云台定位的端到端闭环,兼顾语义保真性与物理确定性。它面向PTZ相机这一典型主动感知终端,解决自然语言驱动下的跨模态时序对齐与边缘实时性难题,适用于智能巡检、工业AR协作与主动安防等需‘听懂即行动’

weixin_30412167的博客 573

ONNX实战:跨框架模型部署的工程化契约与避坑指南

ONNX(Open Neural Network Exchange)是一种面向AI模型交付的标准化中间表示(IR),其核心价值在于建立跨深度学习框架、编程语言和硬件平台的语义契约,而非简单格式转换。它通过定义统一的Operator Set和算子行为规范,支撑模型在PyTorch、TensorFlow等前端与ONNX Runtime、Triton等后端之间的可信流转。技术价值体现在工程可追溯性、推理可移植性与治理可收敛性——当模型在不同Execution Provider上出现精度或性能偏差时,ONNX使问题

852

全维度解析 AI 开发核心工具:智能编码 / 数据标注 / 模型训练平台

AI技术工业化落地依赖三大核心工具协同运作:智能编码工具(如GitHub Copilot)提升代码生产效率40%-70%,通过自然语言注释生成可运行代码;数据标注工具(如LabelImg/Doccano)为模型训练提供高质量标注数据,数据质量直接决定模型效果;模型训练平台(如Google Colab)提供算力支持,实现从数据到模型的转化。三者形成"代码开发→数据加工→模型构建"的完整闭环,个人开发者可零成本使用开源方案,企业级项目则需私有化部署方案。

zzywxc787的博客 1096

RTMP、RTSP、SRT流媒体协议实战:从原理到安卓/嵌入式推流全解析

流媒体协议是音视频实时传输的基石,其核心原理在于如何在网络之上高效、可靠地封装和传输连续的媒体数据。RTMP基于TCP,通过稳定的连接和块流机制实现低延迟交互,成为直播推流领域的事实标准,其技术价值在于广泛的生态兼容性。RTSP则扮演“网络遥控器”的角色,通过信令控制RTP传输音视频流,专精于安防监控等专业领域。面对公网传输中的丢包和抖动挑战,SRT协议在UDP基础上引入ARQ自动重传和AES加密机制,其技术价值在于为远程制作、跨国传输等场景提供了高可靠、低延迟的解决方案。本文聚焦于这三大核心协议,深入剖析

weixin_34037173的博客 752

【Codex 深度掌控:从入门到企业级多模型部署】06:构建安全网:Codex API Key 管理与中转代理全攻略

本文面向2026年企业级大模型调用场景,系统阐述了Codex API Key安全管理的完整解决方案。针对当前团队普遍存在的“密钥裸奔”问题,文章基于真实攻防案例,从零构建了包含本地mitmproxy中转代理、AES-256-GCM加密保险箱、拦截器用量监控与熔断、Node.js多Key轮换网关及审计日志告警在内的纵深防御体系。核心架构通过Codex++的“零密钥”请求模式,实现客户端不持有任何明文密钥,即使Key泄露也无法被滥用。文中提供了完整可复现代码,读者可快速将“单Key裸跑”升级为零信任安全架构,低

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 226

YOLO系列详解(YOLO1-YOLO5

YOLO系列是one-stage且是基于深度学习的回归方法,而R-CNN、Fast-RCNN、Faster-RCNN等是two-stage且是基于深度学习的分类方法。

weixin_45303602的博客 2万+

YOLO系列详解:YOLOv1YOLOv2YOLOv3YOLOv4YOLOv5YOLOv6、YOLOv7

一、前言 YOLO系列是one-stage且是基于深度学习的回归方法,而R-CNN、Fast-RCNN、Faster-RCNN等是two-stage且是基于深度学习的分类方法。 YOLO官网:https://github.com/pjreddie/darknet 1.1 YOLO vs Faster R-CNN 1、统一网络:YOLO没有显示求取region proposal的过程。Faster R-CNN中尽管RPN与fast rcnn共享卷积层,但是在模型训练过程中,需要反复训练RPN网络和fa

qq_40716944的博客 17万+

目标检测yolo系列

出自科技猛兽知乎专栏,地址:科技猛兽目标检测专栏 前言 本文目的是用尽量浅显易懂的语言让零基础小白能够理解什么是YOLO系列模型,以及他们的设计思想和改进思路分别是什么。我不会把YOLO的论文给你用软件翻译一遍,这样做毫无意义;也不会使用太专业晦涩的名词和表达,对于每一个新的概念都会解释得尽量通俗一些,目的是使得你能像看故事一样学习YOLO模型,我觉得这样的学习方式才是知乎博客的意义所在。 为了使本文尽量生动有趣,我用葫芦娃作为例子展示YOLO的过程(真的是尽力了。。。)。 葫芦娃 同时,会对

Fantastic 1万+

YOLO框架简述

YOLO(You Only Look Once)是一种基于深度神经网络的对象识别和定位算法,其最大的特点是运行速度很快,可以用于实时系统。现在YOLO已经发展到v3版本,不过新版本也是在原有版本基础上不断改进演化的,所以本文先分析YOLO v1版本。 输入一张图片,要求输出其中所包含的对象,以及每个对象的位置(包含该对象的矩形框)。 对象识别和定位...

知识搬运工的博客 15万+
上一篇: 【Digest】5G广播 && 5GNR MBS标准简介
下一篇: 【Digest】目标检测之YOLOv2 算法-YOLO9000: Better, Faster, Stronger
gikod
博客等级 码龄10年 465粉丝 111原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值