YOLO10:手把手安装教程与使用说明

前言

v9还没整明白,v10又来了。而且还是打败天下无敌手的存在,连最近很火的RT-DETR都被打败了。那么,笑傲目标检测之林的v10又能持续多久呢?

一、YOLO10检测模型

近年来,YOLO在实时目标检测领域中因其在计算成本和检测性能之间的有效平衡而成为主要范式。

研究人员在YOLO的架构设计、优化目标、数据增强策略等方面进行了探索,并取得了显著进展。然而,依赖非极大值抑制(NMS)进行后处理限制了YOLO的端到端部署,并对推理延迟产生了不利影响。此外,YOLO中各种组件的设计缺乏全面深入的检验,导致明显的计算冗余,限制了模型的能力。这导致了次优的效率,以及相当大的性能提升潜力。

在这项工作中,原作者旨在从后处理和模型架构两个方面进一步推进YOLO的性能-效率边界。为此,首先提出了YOLO的无NMS训练的一致双重分配策略,同时带来了竞争力的性能和低推理延迟。此外,引入了面向效率-准确性驱动的YOLO模型设计策略,从效率和准确性角度全面优化YOLO的各个组件,大大减少了计算开销并增强了能力。

作者的努力成果是一代新的YOLO系列用于实时端到端目标检测,被称为YOLOv10。广泛的实验表明,YOLOv10在各种模型规模上实现了最先进的性能和效率。

在这里插入图片描述
在延迟性和精度上的性能对比
在这里插入图片描述
模型尺寸和精度上的对比

二、YOLO安装过程

硬件环境:显卡NVIDIA GeForce RTX 4090;
软件环境:Linux 20.04,Conda

2.1 新建conda的环境 yolo10

在conda创建一个名为yolov10的新环境,并在其中安装python3.9,这个环境是独立的不会影响系统中的其他环境:

conda create -n yolov10 python=3.9

然后再激活yolov10的Conda环境:

conda activate yolov10

通过pip命令安装requirements.txt中的python包及其版本号:

pip install -r requirements.txt

然后设置开发者模式:

pip install -e .

2.2 安装依赖包

然后安装预训练的模型文件:

wget https://github.com/THU-MIG/yolov10/releases/download/v1.1/yolov10s.pt

最后在执行运行代码:

python app.py

最后就进入了操作界面:
在这里插入图片描述

2.3 测试

先输入要处理图片,
模型:使用上面下载的预训练模型yolov10s.pt
处理完的图片:
在这里插入图片描述
在这里插入图片描述

从上面图片可以精确看到识别的效果,因此可以判断出来模型可以正常使用。

三、训练定制的数据集

3.1 装载数据:

数据入口的切换,前提是需要准备好yolo格式的数据集:
在这里插入图片描述

3.2 训练过程记录:


engine/trainer: task=detect, mode=train, model=yolov10n.pt, data=NEU.yaml, epochs=120, time=None, patience=100, batch=64, imgsz=640, save=True, save_period=-1, val_period=1, cache=False, device=None, workers=8, project=None, name=train, exist_ok=False, pretrained=True, optimizer=auto, verbose=True, seed=0, deterministic=True, single_cls=False, rect=False, cos_lr=False, close_mosaic=10, resume=False, amp=True, fraction=1.0, profile=False, freeze=None, multi_scale=False, overlap_mask=True, mask_ratio=4, dropout=0.0, val=True, split=val, save_json=False, save_hybrid=False, conf=None, iou=0.7, max_det=300, half=False, dnn=False, plots=True, source=None, vid_stride=1, stream_buffer=False, visualize=False, augment=False, agnostic_nms=False, classes=None, retina_masks=False, embed=None, show=False, save_frames=False, save_txt=False, save_conf=False, save_crop=False, show_labels=True, show_conf=True, show_boxes=True, line_width=None, format=torchscript, keras=False, optimize=False, int8=False, dynamic=False, simplify=False, opset=None, workspace=4, nms=False, lr0=0.01, lrf=0.01, momentum=0.937, weight_decay=0.0005, warmup_epochs=3.0, warmup_momentum=0.8, warmup_bias_lr=0.1, box=7.5, cls=0.5, dfl=1.5, pose=12.0, kobj=1.0, label_smoothing=0.0, nbs=64, hsv_h=0.015, hsv_s=0.7, hsv_v=0.4, degrees=0.0, translate=0.1, scale=0.5, shear=0.0, perspective=0.0, flipud=0.0, fliplr=0.5, bgr=0.0, mosaic=1.0, mixup=0.0, copy_paste=0.0, auto_augment=randaugment, erasing=0.4, crop_fraction=1.0, cfg=None, tracker=botsort.yaml, save_dir=/home/wqt/Projects/yolov10NEU/runs/detect/train
Overriding model.yaml nc=80 with nc=6

                   from  n    params  module                                       arguments                     
  0                  -1  1       464  ultralytics.nn.modules.conv.Conv             [3, 16, 3, 2]                 
  1                  -1  1      4672  ultralytics.nn.modules.conv.Conv             [16, 32, 3, 2]                
  2                  -1  1      7360  ultralytics.nn.modules.block.C2f             [32, 32, 1, True]             
  3                  -1  1     18560  ultralytics.nn.modules.conv.Conv             [32, 64, 3, 2]                
  4                  -1  2     49664  ultralytics.nn.modules.block.C2f             [64, 64, 2, True]             
  5                  -1  1      9856  ultralytics.nn.modules.block.SCDown          [64, 128, 3, 2]               
  6                  -1  2    197632  ultralytics.nn.modules.block.C2f             [128, 128, 2, True]           
  7                  -1  1     36096  ultralytics.nn.modules.block.SCDown          [128, 256, 3, 2]              
  8                  -1  1    460288  ultralytics.nn.modules.block.C2f             [256, 256, 1, True]           
  9                  -1  1    164608  ultralytics.nn.modules.block.SPPF            [256, 256, 5]                 
 10                  -1  1    249728  ultralytics.nn.modules.block.PSA             [256, 256]                    
 11                  -1  1         0  torch.nn.modules.upsampling.Upsample         [None, 2, 'nearest']          
 12             [-1, 6]  1         0  ultralytics.nn.modules.conv.Concat           [1]                           
 13                  -1  1    148224  ultralytics.nn.modules.block.C2f             [384, 128, 1]                 
 14                  -1  1         0  torch.nn.modules.upsampling.Upsample         [None, 2, 'nearest']          
 15             [-1, 4]  1         0  ultralytics.nn.modules.conv.Concat           [1]                           
 16                  -1  1     37248  ultralytics.nn.modules.block.C2f             [192, 64, 1]                  
 17                  -1  1     36992  ultralytics.nn.modules.conv.Conv             [64, 64, 3, 2]                
 18            [-1, 13]  1         0  ultralytics.nn.modules.conv.Concat           [1]                           
 19                  -1  1    123648  ultralytics.nn.modules.block.C2f             [192, 128, 1]                 
 20                  -1  1     18048  ultralytics.nn.modules.block.SCDown          [128, 128, 3, 2]              
 21            [-1, 10]  1         0  ultralytics.nn.modules.conv.Concat           [1]                           
 22                  -1  1    282624  ultralytics.nn.modules.block.C2fCIB          [384, 256, 1, True, True]     
 23        [16, 19, 22]  1    863668  ultralytics.nn.modules.head.v10Detect        [6, [64, 128, 256]]           
YOLOv10n summary: 385 layers, 2709380 parameters, 2709364 gradients, 8.4 GFLOPs

Transferred 493/595 items from pretrained weights
Freezing layer 'model.23.dfl.conv.weight'
AMP: running Automatic Mixed Precision (AMP) checks with YOLOv8n...
Downloading https://github.com/ultralytics/assets/releases/download/v8.1.0/yolov8n.pt to 'yolov8n.pt'...

需要下载yolov8的模型,v10是基于v8来重构造的

总结

通过这次安装到最后的功能实现,体现了yolo10的特点:便捷安装,运行好。

  • 19
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

烧技湾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值