YOLO更新的相关记录(YOLOv2)

本文解析了YOLOv2的升级改进,包括输入尺寸加倍、全连接层去除、引入anchor box、网络输出属性更改等。同时介绍了Darknet-19特征提取网络及新的类别输出方法,展示了YOLO9000在多个数据集上的应用。

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

前言:

{

    在写了YOLO的笔记(https://mp.youkuaiyun.com/postedit/82634004)后,我又看到了它的几个更新,目前更新到了YOLOv3。我就来看看都在哪些方面做了改进。

    文章地址:https://arxiv.org/pdf/1612.08242.pdf(YOLOv2)

}

 

正文:

{

    在第一节,作者引入了YOLO9000,一个已经在多个数据集上训练好的,能检测超过9000种物体的分类器。这个分类器就是训练好的YOLOv2。

 

    第二节第三节第四节介绍了新模型好在哪里。

    正如上次YOLO笔记(https://mp.youkuaiyun.com/postedit/82634004)里的分析,YOLO容易出现定位误差。YOLOv2有了以下改动,表2:

   

    在YOLOv2中,输入图像的高和宽都翻了倍;

    全连接层被去除了;

    原来是直接输出box的相关属性,现在加入了anchor box,输出与anchor box关联的属性;

    在数据集上进行k-means聚类以选择anchor box,聚类中使用的距离为

    网络输出的框属性被改为:

    ,其中b为标准框的各种属性,t为网络输出的各种框属性,p为框先验(box prior)的属性,即anchor box的高和宽,并且σ()为修正函数,详见图3:

   

    由于网络上全是卷积结构,输入尺寸可变,训练也是用不同尺寸的输入,不同图片尺寸的识别的效果为表3:

   

    并且添加了新的结构,和残差网络(ResNet)里的Identity Mappings类似,在网络的最后出现了跨级连接。

    特征提取网络被换成了一个新的网络-Darknet-19,其结构如表6:

   

    这个网络是独立的特征提取网络,速度不错,可以用于分类,并且作者还给出了相应的训练方法(用于分类和用于检测)。

    值得一提的是,YOLOv2可以使用分类的训练数据和面部检测的训练数据。当使用分类的训练数据进行训练时,反向传播只涉及其一部分。

    模型的类别输出被改变了。在ImageNet上,输出如图5中的WordTree1k:

   

    可以看到,输出不再是one-hot向量,输出的类型也不再是单独的一个类。通过这种方法,多个标签之间产生了练习,数据集也可以被联合起来训练一个模型。图6介绍了使用Wordnet把COCO和ImageNet的所有标签类型融合后结果:

   

    可以通过这种数据组合来训练一个通用的模型(YOLO9000就是这样训练的)。

    表7是YOLO9000在ImageNet上的部分检测表现:

   

    可以看到,对器件的识别效果不好。作者也解释到,在训练YOLO9000时只使用了ImageNet的分类数据,并且COCO中也没有这些器件。

 

    在第五节,作者做了总结,并且表明接下来打算改进数据融合的策略和方法。

}

 

结语:

{

    不光是目标检测,似乎Darknet的分类效果也还行(在速度得到保证的情况下)。新的标签融合方法也可以用于迁移学习。

    由于本人能力有限,可能有理解不到位的情况,欢迎指点。

}

D:\YOLO\yolo1\yolo\Rice_yolov8\.venv\Scripts\python.exe D:\YOLO\yolo1\yolo\Rice_yolov8\GUI.py A module that was compiled using NumPy 1.x cannot be run in NumPy 2.2.6 as it may crash. To support both 1.x and 2.x versions of NumPy, modules must be compiled with NumPy 2.0. Some module may need to rebuild instead e.g. with 'pybind11>=2.12'. If you are a user of the module, the easiest solution will be to downgrade to 'numpy<2' or try to upgrade the affected module. We expect that some modules will need time to support NumPy 2. Traceback (most recent call last): File "D:\YOLO\yolo1\yolo\Rice_yolov8\GUI.py", line 17, in <module> from ultralytics import YOLO File "D:\YOLO\yolo1\yolo\Rice_yolov8\.venv\lib\site-packages\ultralytics\__init__.py", line 11, in <module> from ultralytics.models import NAS, RTDETR, SAM, YOLO, YOLOE, FastSAM, YOLOWorld File "D:\YOLO\yolo1\yolo\Rice_yolov8\.venv\lib\site-packages\ultralytics\models\__init__.py", line 3, in <module> from .fastsam import FastSAM File "D:\YOLO\yolo1\yolo\Rice_yolov8\.venv\lib\site-packages\ultralytics\models\fastsam\__init__.py", line 3, in <module> from .model import FastSAM File "D:\YOLO\yolo1\yolo\Rice_yolov8\.venv\lib\site-packages\ultralytics\models\fastsam\model.py", line 6, in <module> from ultralytics.engine.model import Model File "D:\YOLO\yolo1\yolo\Rice_yolov8\.venv\lib\site-packages\ultralytics\engine\model.py", line 8, in <module> import torch File "D:\YOLO\yolo1\yolo\Rice_yolov8\.venv\lib\site-packages\torch\__init__.py", line 1477, in <module> from .functional import * # noqa: F403 File "D:\YOLO\yolo1\yolo\Rice_yolov8\.venv\lib\site-packages\torch\functional.py", line 9, in <module> import torch.nn.functional as F File "D:\YOLO\yolo1\yolo\Rice_yolov8\.venv\lib\site-packages\torch\nn\__init__.py", line 1, in <module> from .modules import * # noqa: F403 File "D:\YOLO\yolo1\yolo\Rice_yolov8\.venv\lib\site-packages\torch\nn\modules\__init__.py", line 35, in <module> from .transformer import TransformerEncoder, TransformerDecoder, \ File "D:\YOLO\yolo1\yolo\Rice_yolov8\.venv\lib\site-packages\torch\nn\modules\transformer.py", line 20, in <module> device: torch.device = torch.device(torch._C._get_default_device()), # torch.device('cpu'), D:\YOLO\yolo1\yolo\Rice_yolov8\.venv\lib\site-packages\torch\nn\modules\transformer.py:20: UserWarning: Failed to initialize NumPy: _ARRAY_API not found (Triggered internally at ..\torch\csrc\utils\tensor_numpy.cpp:84.) device: torch.device = torch.device(torch._C._get_default_device()), # torch.device('cpu'),
最新发布
08-06
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值