yolov1论文阅读笔记

YOLO(You Only Look Once)是一种快速的目标检测算法,以其端到端的网络结构实现高效检测。该文详细介绍了YOLOv1的架构,包括网络结构、训练过程,以及性能特点。YOLO通过将输入图像划分为网格,每个网格预测多个边界框和类别概率,直接对整张图进行训练。训练中,YOLO在ImageNet数据集预训练,并采用特定的损失函数优化坐标、大小和分类的误差。虽然在定位精度上可能低于最优系统,但YOLO的背景预测假阳性较低,整体运行速度快。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        yolo统一架构做目标检测速度非常快,是端到端的网络,定位错误会高于最优检测系统,但是背景预测的假阳性会更低。

1、介绍:

       在yolo之前出现的方法,像DPM(deformable parts models)是使用滑动窗口的方法,分类器在整个图像上以均匀间隔的位置运行。R-CNN则是先选出提议区域,产生潜在的边界框,并在此上运行分类器。后处理细化边界框,消除重复检测,并根据场景中的其他目标重新划分框,这种方法比较复杂,并且运行速度慢。

       yolo很简单,只有单独的卷积网络,同时预测多个边界框和框的分类。直接在整张图上做训练。

 

2、架构设计

       系统将输入图像分成SXS的网格,如果目标的中心落入网格单元,该网格单元就负责检测那个目标。每个网格单元预测B个边界框和这些框的置信度。置信度的计算是Pr(Object) ∗ IOU(truth pred)。每个边界框包含5个预测:x,y,w,h,c(置信度)。(x,y)坐标指框的中心相对网格单元的边界的相对坐标,宽高是相对与图片。每个网格单元还会预测C条件类别概率Pr(ClassijObject)。这些概率是在包含目标的网格单元上预测的,每个网格单元只预测类别中的一种,不管有多少框包含它。

 

2.1 网络结构

         网络有24个卷基层,连接2个全连接层。

 

2.2 训练

        在ImageNet1000类数据集上做了预训练,使用的是Darknet。后将网络的输入分辨率从224X224变为448x448用于检测。我们通过图像宽度和高度归一化边界框的宽度和高度,使它们介于0和1之间。边界框x和y坐标参数化为特定网格单元位置的偏移,因此它们也在0和1之间。最后一层的线性激活函数及所有其它层使用一下线性激活:

优化使用平方和误差。

损失函数:

       第一项是边界框中心坐标的误差项,1^{obj}_{ij} 指的是第 i 个单元格存在目标,且该单元格中的第 j 个边界框负责预测该目标第一项是边界框中心坐标的误差项。第二项是边界框的高与宽的误差项,其同等对待大小不同的边界框,但是实际上较小的边界框的坐标误差应该要比较大的边界框要更敏感。为了保证这一点,将网络的边界框的宽与高预测改为对其平方根的预测,即预测值变为 (x,y,\sqrt{w}, \sqrt{h}) 。。第三项是包含目标的边界框的置信度误差项。第四项是不包含目标的边界框的置信度误差项。而最后一项是包含目标的单元格的分类误差项, 1^{obj}_{i} 指的是第 i 个单元格存在目标。

      每个单元格预测多个边界框。但是其对应类别只有一个。那么在训练时,如果该单元格内确实存在目标,那么只选择与ground truth的IOU最大的那个边界框来负责预测该目标,而其它边界框认为不存在目标。这样设置的一个结果将会使一个单元格对应的边界框更加专业化,其可以分别适用不同大小,不同高宽比的目标,从而提升模型性能。如果一个单元格内存在多个目标,Yolo算法就只能选择其中一个来训练,这也是Yolo算法的缺点之一。要注意的一点时,对于不存在对应目标的边界框,其误差项就是只有置信度,坐标项误差是没法计算的。而只有当一个单元格内确实存在目标时,才计算分类误差项,否则该项也是无法计算的。

3、性能

 

### YOLOv11 论文笔记与分析 #### 关键架构增强功能概述 YOLOv11引入了一系列创新性的改进措施来提升模型性能和效率。这些改进不仅增强了检测精度,同时也提高了推理速度[^1]。 #### 主要技术特点 - **多尺度预测**:通过采用不同大小的感受野来进行特征提取,使得网络能够更好地捕捉到各种尺寸的对象。 - **自适应锚框机制**:动态调整预设边界框的比例尺,从而更精准地匹配实际物体形状。 - **注意力模块集成**:利用通道间依赖关系以及空间位置信息的重要性差异,进一步优化了特征表示能力。 - **轻量化设计思路**:在保持高准确率的同时尽可能减少参数量与计算成本,适用于资源受限环境下的部署应用。 #### 后处理策略 对于每一个候选区域(bounding box),其最终得分由两部分组成:一是该区域内存在目标物的可能性;二是给定此前提下属于特定分类的概率值乘积形式表达。这有助于筛选出最有可能为目标实体的位置并去除冗余重叠项[^5]。 ```python def calculate_final_score(confidence, class_probabilities): """ Calculate final score for each bounding box. Args: confidence (float): Confidence that an object exists within the bbox. class_probabilities (list[float]): Probabilities of different classes given there's an object. Returns: list[float]: Final scores indicating which category it truly belongs to with highest likelihood. """ return [confidence * prob for prob in class_probabilities] ``` #### 泛化能力 得益于全局视野的优势,即输入数据为完整的图像而非局部裁剪片段,因此即使面对未曾见过的新场景时也能表现出较强的鲁棒性和稳定性[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值