论文解读 | YOLO系列开山之作:统一的实时对象检测

news/2024/7/11 1:34:41 标签: YOLO

原创 | 文 BFT机器人 

图片

01

摘要

YOLO是一种新的目标检测方法,与以前的方法不同之处在于它将目标检测问题视为回归问题,同时预测边界框和类别概率。这一方法使用单个神经网络,可以从完整图像中直接预测目标边界框和类别概率,实现端到端的性能优化。

YOLO的速度非常快,基本模型每秒可以处理45帧图像,而快速版本每秒可处理155帧,同时仍然具有很高的准确率。虽然在定位方面可能会产生一些误差,但不太可能出现背景误报。它能够学习通用的目标表示,不仅在自然图像中表现出色,还在其他领域(如艺术品)中表现优于其他检测方法,包括DPM和R-CNN。

02

介绍

将目标检测重新定义为一个单一的回归问题,直接从图像像素到边界框坐标和类概率。这种系统被称为YOLO(You Only Look Once),它允许在一次图像观察中实时预测存在的物体以及它们的位置。

YOLO的核心思想是使用一个简单的卷积神经网络,同时预测多个边界框和它们的类别概率,如图一。与传统方法相比,YOLO有三个主要优点:

速度快:由于将检测视为回归问题,不需要复杂的处理管道。YOLO的基本网络以每秒45帧的速度运行,快速版本更快,超过150fps。这意味着可以实时处理流媒体视频,延迟低于25毫秒,并且精度优于其他实时系统。

全局推理:YOLO在进行预测时可以看到整个图像,而不像其他方法使用滑动窗口或区域提议。这使得它能够隐式地编码关于物体及其外观的上下文信息,减少了背景误报。与其他方法相比,YOLO的边界框数量较少。

通用性:YOLO能够学习通用的目标表示,表现出色不仅在自然图像中,在其他领域(如艺术品)的测试中也表现出色,超过了其他顶级检测方法,如DPM和R-CNN。

然而,尽管速度快且通用性强,YOLO在精确度方面仍然落后于一些最先进的目标检测系统,特别是在精确定位小物体方面存在挑战。研究进一步探讨了这些权衡和挑战。

图片

图一

03

统一检查

核心思想和工作原理

统一神经网络模型:YOLO将目标检测的独立组件整合到一个单一的神经网络中,该网络利用整个图像的特征来预测每个边界框,同时可以同时预测图像中所有类别的边界框。这使得网络能够进行全局推理,同时处理整个图像和所有对象。

端到端训练和实时速度:YOLO的设计旨在实现端到端的训练,同时保持实时处理速度,并且能够保持高平均精度。

S×S网格划分:输入图像被分成S×S网格单元,其中每个网格单元负责检测其中心位于该单元的物体。

每个网格单元的预测:每个网格单元预测了B个边界框和这些边界框的置信度得分,该得分反映了模型对于盒子内是否有物体的自信程度以及预测的准确度。置信度分数定义为Pr(Object) * IOU_truth_pred,如果单元格中没有对象,则置信度分数为零。

边界框预测:每个边界框由五个预测组成,包括 (x, y) 坐标表示相对于网格单元边界的框的中心,以及宽度和高度相对于整个图像的预测。最后,置信度预测表示预测框与真实框之间的交集。

类别概率预测:每个网格单元还预测了 C 个条件类别概率 Pr(Class_i|Object),这些概率取决于包含对象的网格单元。无论边界框数量如何,每个网格单元只预测一组分类概率。

图片

网络设计

检测网络有24个卷积层,后面是2个全连接层。交替的1 × 1卷积层减少了前一层的特征空间。在ImageNet分类任务上以一半的分辨率(224 × 224输入图像)预训练卷积层,然后将分辨率提高一倍用于检测。

图片

训练

预训练:他们在ImageNet 1000类竞争数据集上对卷积层进行了预训练,使用了模型的前20个卷积层、平均池化层和完全连接层。这个预训练过程提高了模型的性能。

检测模型转换:然后,他们将模型转换为执行目标检测。为了增加性能,作者添加了四个卷积层和两个随机初始化权重的完全连接层。因为检测需要更多的视觉信息,所以他们将网络的输入分辨率从224×224增加到448×448。

最后一层预测:模型的最后一层用于预测类别概率和边界框坐标。边界框的宽度和高度被标准化到0和1之间,并且x和y坐标参数化为特定网格单元格位置的偏移量。

激活函数:最后一层使用线性激活函数,而其他层使用漏整流线性激活函数。

损失函数:作者使用平方和误差作为优化目标,尽管它不完全符合他们最大化平均精度的目标。为了解决训练中的不稳定性问题,他们增加了边界框坐标预测的损失,并减少了不包含对象的框的置信度预测的损失。

图片

04

结论

该论文介绍了一种名为YOLO的目标检测统一模型。YOLO模型的构建简单,能够在完整图像上进行训练,与以前的分类器方法不同,它使用了与检测性能直接相关的损失函数进行训练,并且整个模型进行了联合训练。

其中的快速版本YOLO是文献中最快的通用对象检测器,推动了实时对象检测领域的进展。此外,YOLO还能够成功应用于新领域,使其成为依赖于快速和强大的对象检测的应用程序的理想选择。

作者 | 不加糖

排版 | 小河

审核 | 猫

若您对该文章内容有任何疑问,请与我们联系,我们将及时回应。如果想要了解更多的前沿资讯,记得点赞关注哦~


http://www.niftyadmin.cn/n/5033800.html

相关文章

C++---链表

1、链表 1.1、链表的结构 每个链表开头都有一个头指针Head尾节点的指针域为NULL,用于判断此列表是否结束 如果一个链表开始就为NULL,那么该链表为空链表 链表中的先后不代表在真实内存中的位置,只是单纯的逻辑上关系 1.2、创建链表 我们首…

【UE5 C++ 學習日志】01. UEnhancedInput

UE5 提供了一種對複雜輸入處理或運行時重新映射按鍵增强輸入插件。此插件向上兼容UE4的默認輸入系統,并可以實現径向死区、同时按键、上下文输入和优先级安排等多種功能。 核心概念: (1)Input Actions: Input Actio…

ElasticSearch配置

2) 搭建ElasticSearch环境 2.1) 拉取镜像 docker pull elasticsearch:7.4.02.2) 创建容器 docker run -id --name elasticsearch -d --restartalways -p 9200:9200 -p 9300:9300 -v /usr/share/elasticsearch/plugins:/usr/share/elasticsearch/plugins -e "discovery.…

已解决 Go Error: cannot use str (type string) as type int in assignment

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页: 🐅🐾猫头虎的博客🎐《面试题大全专栏》 🦕 文章图文并茂&#x1f996…

2023 Google 开发者大会,共创、赋能开发者

前言: 9月6日,2023 Google 开发者大会在上海拉开帷幕。在本次大会,Google 将技术灵感带到了中国。在为期两天的大会中,让我印象最为深刻的是,谷歌帮助中国开发者释放潜能,持续创新,落地创意灵感…

Leetcode154. 寻找旋转排序数组中的最小值(存在重复元素)

力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组。例如,原数组 nums [0,1,4,4,5,6,7] 在变化后可能得到:…

three.js——模型对象的使用材质和方法

模型对象的使用材质和方法 前言效果图1、旋转、缩放、平移,居中的使用1.1 旋转rotation(.rotateX()、.rotateY()、.rotateZ())1.2缩放.scale()1.3平移.translate()1.4居中.center() 2、材质属性.wireframe 前言 BufferGeometry通过.scale()、…

Linux安装Ansible管理工具

条件情况说明 准备4台机器,是单master集群安装 192.168.186.128 ansible 192.168.186.129 node1 192.168.186.130 node2 192.168.186.131 node3 #永久修改主机名 hostnamectl set-hostname ansible && bash #在ansible上操作 hostnamectl set-hostname n…