💡💡💡本文内容:如何用红外无人机小目标训练YOLOv13-seg和YOLO11-seg模型以及训练结果可视化;
💡💡💡 YOLOv13Mask mAP50 为 0.98 ,YOLO11 Mask mAP50 为 0979
博主简介
AI小怪兽,YOLO骨灰级玩家,1)YOLOv5、v7、v8、v9、v10、11、v13优化创新,轻松涨点和模型轻量化;2)目标检测、语义分割、OCR、分类等技术孵化,赋能智能制造,工业项目落地经验丰富;
1.YOLO11介绍
Ultralytics YOLO11是一款尖端的、最先进的模型,它在之前YOLO版本成功的基础上进行了构建,并引入了新功能和改进,以进一步提升性能和灵活性。YOLO11设计快速、准确且易于使用,使其成为各种物体检测和跟踪、实例分割、图像分类以及姿态估计任务的绝佳选择。
Segmentation 官方在COCO数据集上做了更多测试:
2.YOLOv13介绍
论文:[2506.17733] YOLOv13: Real-Time Object Detection with Hypergraph-Enhanced Adaptive Visual Perception
摘要—YOLO 系列模型因其卓越的准确性和计算效率在实时目标检测领域占据主导地位。然而,无论是 YOLO11 及更早版本的卷积架构,还是 YOLOv12 引入的基于区域的自注意力机制,都仅限于局部信息聚合和成对相关性建模,缺乏捕捉全局多对多高阶相关性的能力,这限制了在复杂场景下的检测性能。本文提出了一种准确且轻量化的 YOLOv13 目标检测器。为应对上述挑战,我们提出了一种基于超图的自适应相关性增强(HyperACE)机制,通过超图计算自适应地利用潜在的高阶相关性,克服了以往方法仅基于成对相关性建模的限制,实现了高效的全局跨位置和跨尺度特征融合与增强。随后,我们基于 HyperACE 提出了全链路聚合与分配(FullPAD)范式,通过将相关性增强特征分配到整个网络,有效实现了全网的细粒度信息流和表征协同。最后,我们提出用深度可分离卷积代替常规的大核卷积,并设计了一系列块结构,在不牺牲性能的前提下显著降低了参数量和计算复杂度。我们在广泛使用的 MS COCO 基准测试上进行了大量实验,结果表明,我们的方法在参数更少、浮点运算量更少的情况下达到了最先进性能。具体而言,我们的 YOLOv13-N 相比 YOLO11-N 提升了 3.0% 的 mAP,相比 YOLOv12-N 提升了 1.5% 的 mAP。
以往的 YOLO 系列遵循 “骨干网络 → 颈部网络 → 检测头” 的计算范式,这本质上限定了信息流的充分传输。相比之下,我们的模型通过超图自适应关联增强(HyperACE)机制,实现全链路特征聚合与分配(FullPAD),从而增强传统的 YOLO 架构。因此,我们提出的方法在整个网络中实现了细粒度的信息流和表征协同,能够改善梯度传播并显著提升检测性能。具体而言,如图 2 所示,我们的 YOLOv13 模型首先使用类似以往工作的骨干网络提取多尺度特征图 B1、B2、B3、B4、B5,但其中的大核卷积被我们提出的轻量化 DS-C3k2 模块取代。然后,与传统 YOLO 方法直接将 B3、B4 和 B5 输入颈部网络不同,我们的方法将这些特征收集并传递到提出的 HyperACE 模块中,实现跨尺度跨位置特征的高阶关联自适应建模和特征增强。随后,我们的 FullPAD 范式利用三个独立通道,将关联增强后的特征分别分配到骨干网络与颈部网络的连接处、颈部网络的内部层以及颈部网络与检测头的连接处,以优化信息流。最后,颈部网络的输出特征图被传递到检测头中,实现多尺度目标检测。
3.数据集介绍
300 张红外图像,逐像素精细标注。
难点:
- 对比度低、噪声高:热辐射背景复杂,边缘模糊。
- 目标极小:像素占比极低,检测框易包含大量背景。
- 场景多变:天空/城市/海面等背景易产生误检。
训练集180张,验证集60张,测试集60张
AUVD-yolo-seg/ ├── train/ │ ├── images/ │ └── labels/ ├── val/ │ ├── images/ │ └── labels/ └── test/ ├── images/ └── labels/
标签可视化:
4.如何训练YOLOv13-seg和YOLO11-seg模型
4.1 修改 AUVD-Seg300.yaml
path: D:/YOLOv13/data/AUVD-seg300/ # dataset root dir train: train/images # train images (relative to 'path') val: valid/images # val images (relative to 'path') test: test/images # test images (relative to 'path') # Classes names: 0: large uav 1: normal uav 2: tiny uav
4.2 如何开启训练
import warnings warnings.filterwarnings('ignore') from ultralytics import YOLO if __name__ == '__main__': model = YOLO('ultralytics/cfg/models/v13/yolov13-seg.yaml') #model = YOLO('ultralytics/cfg/models/11/yolo11-seg.yaml') #model.load('yolov13n.pt') # loading pretrain weights model.train(data='data/AUVD-Seg300.yaml', cache=False, imgsz=640, epochs=200, batch=16, #close_mosaic=10, device='0', optimizer='SGD', # using SGD project='runs/train', name='exp', )
4.3 训练结果可视化
YOLOv13Mask mAP50 为 0.98
YOLOv13-seg summary: 562 layers, 2,700,896 parameters, 0 gradients, 10.1 GFLOPs Class Images Instances Box(P R mAP50 mAP50-95) Mask(P R mAP50 mAP50-95): 100%|██████████| 2/2 [00:01<00:00, 1.02it/s] all 60 60 0.97 0.963 0.98 0.931 0.752 0.97 0.963 0.98 0.711 0.603 large uav 20 20 1 0.94 0.988 0.907 0.765 1 0.94 0.988 0.611 0.579 normal uav 20 20 0.914 0.95 0.956 0.943 0.759 0.914 0.95 0.956 0.843 0.635 tiny uav 20 20 0.995 1 0.995 0.944 0.731 0.995 1 0.995 0.678 0.596
YOLO11Mask mAP50 为 0.979
YOLO11-seg summary (fused): 265 layers, 2,835,153 parameters, 0 gradients, 10.2 GFLOPs Class Images Instances Box(P R mAP50 mAP50-95) Mask(P R mAP50 mAP50-95): 100%|██████████| 2/2 [00:02<00:00, 1.12s/it] all 60 60 0.981 0.965 0.979 0.955 0.773 0.981 0.965 0.979 0.826 0.644 large uav 20 20 1 0.993 0.995 0.995 0.809 1 0.993 0.995 0.897 0.67 normal uav 20 20 0.942 0.95 0.947 0.947 0.786 0.942 0.95 0.947 0.847 0.651 tiny uav 20 20 1 0.952 0.995 0.924 0.724 1 0.952 0.995 0.735 0.612
预测结果如下: