传火:YOLO V1

2024-02-09 06:40
文章标签 yolo v1 传火

本文主要是介绍传火:YOLO V1,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

YOLO V1

概览

YOLO是You Only Look Once的简称,和人眼识别物体一样,看一眼就能识别出来,YOLO力求实现端到端的目标检测,只用一个简单的神经网络结构,从单张图片就可以输出图中目标的位置和目标的种类,而且因为其没有其他检测网络的复杂结构(说的就是你,Faster RCNN),所以其检测速度很快,可以实现实时的目标检测。
YOLO结构


YOLO诞生之前 – 无火的时代

赞美太阳

Long May The Sunshine.

在YOLO之前,目标检测的方法是从图像分类衍化而来,毕竟检测的第一步确实是将图片中的目标弄出来,而弄出来靠的就是先分类再定位,最后再对分出来的目标进行识别。
比较经典的是RCNN,利用区域推荐去估计目标位置(bonding box),再用卷积网络提取特征,作为后续SVM分类bonding box的依据,最后用线性模型调整box的位置,非极大值抑制(NMS)来去除重复的框。
基于RCNN,还有提升了速度的Fast & Faster RCNN,所做的改进在于减少了重复计算以及将区域推荐也用网络来实现。
像RCNN这种具有复杂pipeline的目标检测方法自然是耗时冗长而无法用于实时检测的,尽管其精度很高,却也因此无法大规模用于实际场景。


YOLO的诞生 – 传火的钟声响起

YOLO的目标很明确–实现实时的目标检测。而为了速度,就必须舍弃无效的动作,一击制敌。所以YOLO将目标检测做成了回归的形式,输入是图片,输出就是图片中目标的位置、种类,这么复杂的任务似乎也需要同样复杂的网络,但是YOLO只用了卷积层和全连接层,实现了天下武功,唯快不破。

而背后的原因是什么呢?众所周知,神经网络可以在问题和答案之间探索最佳的拟合方式,从而实现问题到答案的完美映射,取代了以往人工的算法设计;而使用神经网络的人呢,需要钻研的,就是问题的提问方式和答案的表示方式,以确保问题与答案相对的解空间中存在合理的拟合(人为定义的合理),以及探索如何指导神经网络朝正确的方向拟合过去和拟合的好坏(损失函数的设计)。

那么对于YOLO来说,他的问题(输入)是一张图片,答案则是一个 ( S × S × ( 5 × B + C ) ) (S \times S \times (5 \times B + C)) (S×S×(5×B+C))的张量。为什么这么设计答案?其合理性在于将原图分为S*S个小块,每个块内都有B个(论文中是2个,互相垂直)预测框(bonding box)的同一中心,每个框有5个参数 ( x , y , w , h , c o n f i ) (x,y,w,h,confi) (x,y,w,h,confi),x,y是框的中心相对于小块中心的偏移,w,h是框的边长,congfi则是这个框预测结果的置信度,即预测框与真值框的IOU。同时对应于C个种类有C个预测值,如果一个目标的中心落在某个小块内,则这个块的框就负责该目标的预测。这些就构成了答案的维度。如下图所示。
YOLO示意图
图片来自传送门
如此定义,从问题到解空间就存在合理的映射,而如何指导网络学习这种映射,就涉及到损失函数的设计。
YOLO的损失函数采用的是平方和的形式,答案张量中的每一个部分都在损失函数中有所对应。如下图:
loss
loss的每个部分的对应如下:
loss_explain
图片来自传送门
loss的第一部分是预测框的中心和大小,第二部分是bonding box的IOU,第三部分是分类误差。值得注意的是该loss虽然是所有块loss的总和,但是因为0-1系数的存在,只有当块负责某个目标时,才会有类别loss,只有当bbox对应于真值框时,才会有位置loss,这里的对应指的是bbox与真值的IOU最大。
为了平衡loss的各个部分,作者还加入了多个权重。比如让位置loss和类别loss同等重要是不合理的,毕竟是位置要优先于类别判断,所以在位置loss前增加了权重调节(论文中为5)。对于不存在目标的bbox的IOU loss,我们希望它的IOU越小越好,但因为大多数块都没有目标,所以在前面加入一个缩小权重的系数(论文中为0.5)。
而对于大小目标的检测来说,小目标检测出现的位置偏移误差更为难以忍受,所以在计算的时候,作者对于框的大小(w,h)开了方,因为在w,h越小的时候,相同的 δ w , δ h \delta w, \delta h δw,δh w , h \sqrt w, \sqrt h w ,h 展现的loss更大,这点很巧妙。


YOLO的缺陷 – 阿克琉斯之踵

YOLO V1因为机制的原因,存在的缺陷也很好理解。

  • 无法检测大片的,靠近的目标,如鸟群。
  • 尽管用了平方根的方法,大小目标检测在loss中的差异不明显,导致位置预测仍是主要误差来源。
  • 输入是固定的,且因为下采样导致特征不精确。

更多YOLO的实现细节,可以移步传送门

这篇关于传火:YOLO V1的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/693424

相关文章

烟火目标检测数据集 7800张 烟火检测 带标注 voc yolo

一个包含7800张带标注图像的数据集,专门用于烟火目标检测,是一个非常有价值的资源,尤其对于那些致力于公共安全、事件管理和烟花表演监控等领域的人士而言。下面是对此数据集的一个详细介绍: 数据集名称:烟火目标检测数据集 数据集规模: 图片数量:7800张类别:主要包含烟火类目标,可能还包括其他相关类别,如烟火发射装置、背景等。格式:图像文件通常为JPEG或PNG格式;标注文件可能为X

[数据集][目标检测]血细胞检测数据集VOC+YOLO格式2757张4类别

数据集格式:Pascal VOC格式+YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):2757 标注数量(xml文件个数):2757 标注数量(txt文件个数):2757 标注类别数:4 标注类别名称:["Platelets","RBC","WBC","sickle cell"] 每个类别标注的框数:

[数据集][目标检测]智慧农业草莓叶子病虫害检测数据集VOC+YOLO格式4040张9类别

数据集格式:Pascal VOC格式+YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):4040 标注数量(xml文件个数):4040 标注数量(txt文件个数):4040 标注类别数:9 标注类别名称:["acalcerosis","fertilizer","flower","fruit","grey

【YOLO 系列】基于YOLOV8的智能花卉分类检测系统【python源码+Pyqt5界面+数据集+训练代码】

前言: 花朵作为自然界中的重要组成部分,不仅在生态学上具有重要意义,也在园艺、农业以及艺术领域中占有一席之地。随着图像识别技术的发展,自动化的花朵分类对于植物研究、生物多样性保护以及园艺爱好者来说变得越发重要。为了提高花朵分类的效率和准确性,我们启动了基于YOLO V8的花朵分类智能识别系统项目。该项目利用深度学习技术,通过分析花朵图像,自动识别并分类不同种类的花朵,为用户提供一个高效的花朵识别

水面垃圾检测数据集 3000张 水面垃圾 带标注 voc yolo

数据集概述 该数据集包含3000张图像,专注于水面垃圾的检测。数据集已经按照VOC(Visual Object Classes)和YOLO(You Only Look Once)两种格式进行了标注,适用于训练深度学习模型,特别是物体检测模型,用于识别水面上的各种垃圾。 数据集特点 多样性:包含3000张图像,涵盖了多种类型的水面垃圾,确保模型能够识别各种类型的垃圾。双标注格式:提供VO

[数据集][目标检测]抽烟检测数据集VOC+YOLO格式22559张2类别

数据集格式:Pascal VOC格式+YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):22559 标注数量(xml文件个数):22559 标注数量(txt文件个数):22559 标注类别数:2 标注类别名称:["cig-pack","smoke"] 每个类别标注的框数: cig-pack 框数 = 2

[数据集][目标检测]人脸口罩佩戴目标检测数据集VOC+YOLO格式8068张3类别

数据集格式:Pascal VOC格式+YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):8068 标注数量(xml文件个数):8068 标注数量(txt文件个数):8068 标注类别数:3 标注类别名称:["face_with_mask","face_without_mask","mask"] 每个类别

CVPR 2024最新论文分享┆YOLO-World:一种实时开放词汇目标检测方法

论文分享简介 本推文主要介绍了CVPR 2024上的一篇论文《YOLO-World: Real-Time Open-Vocabulary Object Detection》,论文的第一作者为Tianheng Cheng和Lin Song,该论文提出了一种开放词汇目标检测的新方法,名为YOLO-World。论文通过引入视觉-语言建模和大规模预训练解决了传统YOLO检测器在固定词汇检测中的局限性。论

[数据集][目标检测]井盖丢失未盖破损检测数据集VOC+YOLO格式2890张5类别

数据集格式:Pascal VOC格式+YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):2890 标注数量(xml文件个数):2890 标注数量(txt文件个数):2890 标注类别数:5 标注类别名称:["broke","circle","good","lose","uncovered"] 每个类别标

YOLO缺陷检测学习笔记(3)

文章目录 PCA主成分分析PCA的核心思想PCA的步骤PCA降维后的数据表达示例数据Step 1:标准化数据 Step 2:计算协方差矩阵Step 3:计算协方差矩阵的特征值和特征向量Step 4:选择主成分Step 5:将数据映射到主成分总结PCA的应用PCA的局限性 AUC和ROC1. ROC 曲线2. AUC 随机森林1. **随机森林的基本概念**2. **随机森林的优点**3. *