yolov8多任务模型-目标检测+车道线检测+可行驶区域检测-yolo多检测头代码+教程

你只需看一次:实时且通用的多任务模型

A-YOLOM 插图
贡献
  1. 轻量化集成模型:我们开发了一种轻量级模型,能够将三个任务整合到一个统一的模型中。这对于需要实时处理的多任务场景尤其有利。
  2. 自适应连接模块:特别为分割架构的颈部区域设计了新颖的自适应连接模块。此模块可以无需手动设计就能自动连接特征,进一步增强了模型的泛化能力。
  3. 简洁通用的分割头:设计了一个轻量、简单且通用的分割头。对于同一类型的头部任务,我们使用了统一的损失函数,这意味着无需为特定任务定制设计;它仅由一系列卷积层构成。
  4. 广泛实验:基于公开可用的自动驾驶数据集进行了大量实验,证明我们的模型在推理时间和可视化方面优于现有工作。此外,我们在真实道路数据集上也进行了测试,结果表明我们的模型显著优于目前最先进的方法。
结果
  • 参数与速度

    模型 参数 (M) FPS (bs=1) FPS (bs=32)
    YOLOP 7.9 26.0 134.8
    HybridNet 12.83 11.7 26.9
    YOLOv8n(det) 3.16 102 802.9
    YOLOv8n(seg) 3.26 82.55 610.49
    A-YOLOM(n) 4.43 39.9 172.2
    A-YOLOM(s) 13.61 39.7 96.2
  • 交通对象检测结果

    模型 召回率 (%) mAP50 (%)
    MultiNet 81.3 60.2
    DLT-Net 89.4 68.4
    Faster R-CNN 81.2 64.9
    YOLOv5s 86.8 77.2
    YOLOv8n(det) 82.2 75.1
    YOLOP 88.6 76.5
    A-YOLOM(n) 85.3 78.0
    A-YOLOM(s) 86.9 81.1
  • 可行驶区域分割结果

    模型 mIoU (%)
    MultiNet 71.6
    DLT-Net 72.1
    PSPNet 89.6
    YOLOv8n(seg) 78.1
    YOLOP 91.6
    A-YOLOM(n) 90.5
    A-YOLOM(s) 91.0
  • 车道线检测结果

    模型 准确度 (%) IoU (%)
    ENet N/A 14.64
    SCNN N/A 15.84
    ENet-SAD N/A 16.02
    YOLOv8n(seg) 80.5 22.9
    YOLOP 84.8 26.5
    A-YOLOM(n) 81.3 28.2
    A-YOLOM(s) 84.9 28.8
  • 消融研究 1: 自适应连接模块

    训练方法 召回率 (%) mAP50 (%) mIoU (%) 准确度 (%) IoU (%)
    YOLOM(n) 85.2 77.7 90.6 80.8 26.7
    A-YOLOM(n) 85.3 78.0 90.5 81.3 28.2
    YOLOM(s) 86.9 81.1 90.9 83.9 28.2
    A-YOLOM(s) 86.9 81.1 91.0 84.9 28.8
  • 消融研究 2: 不同多任务模型和分割结构的结果

    模型 参数 mIoU (%) 准确度 (%) IoU (%)
    YOLOv8(segda) 1,004,275 78.1 - -
    YOLOv8(segll) 1,004,275 - 80.5 22.9
    YOLOv8(multi) 2,008,550 84.2 81.7 24.3
    YOLOM(n) 15,880 90.6 80.8 26.7
注意事项

本工作中参考的工作包括 Multinet、DLT-Net、Faster R-CNN、YOLOv5s、PSPNet、ENet、SCNN、SAD-ENet、YOLOP、HybridNets 以及 YOLOv8。感谢他们的出色贡献。

可视化
  • 实际道路
系统要求
  • Python 版本:3.7.16
  • PyTorch 版本:1.13.1
  • 推荐 GPU:NVIDIA GeForce RTX 4090 或更高性能的 GPU
  • 如果使用 NVIDIA GeForce GTX 1080 Ti,建议批量大小为 16。尽管训练时间会更长,但仍可行。

强烈建议创建纯净环境并遵循指示进行设置,以避免因 YOLOv8 自动检测环境包而可能引起的变量值变化问题。

数据准备及预训练模型
  • 下载图像
  • 预训练模型:A-YOLOM(包含两个版本,分别为 "n" 和 "s")
  • 下载检测标注
  • 下载可行驶区域分割标注
  • 下载车道线分割标注

推荐的数据集目录结构如下:

复制代码
# 根据 id 表示对应关系
├─dataset root
│ ├─images
│ │ ├─train2017
│ │ ├─val2017
│ ├─detection-object
│ │ ├─labels
│ │ │ ├─train2017
│ │ │ ├─val2017
│ ├─seg-drivable-10
│ │ ├─labels
│ │ │ ├─train2017
│ │ │ ├─val2017
│ ├─seg-lane-11
│ │ ├─labels
│ │ │ ├─train2017
│ │ │ ├─val2017

更新您的数据集路径于 ./ultralytics/datasets/bdd-multi.yaml 文件中。

训练
  • 设置训练配置文件 ./ultralytics/yolo/cfg/default.yaml
  • 运行 python train.py 开始训练
  • 可以根据需要修改 train.py 中的设置,如模型路径、数据路径、GPU 设备编号等
评估
  • 设置评估配置文件 ./ultralytics/yolo/cfg/default.yaml
  • 运行 python val.py 进行评估
  • 修改 val.py 中的相关路径和设置
预测
  • 运行 python predict.py 进行预测
  • 修改 predict.py 中的源图像路径、设备选择、输出尺寸等参数
扩展性

代码易于扩展至任何多任务分割和检测任务,只需修改模型 YAML 和数据集 YAML 文件中的信息,并按照我们的标签格式创建您的数据集即可。请记住,在检测任务名称中保留"det",在分割任务名称中保留"seg"。

当您更改检测任务类别数量时,请相应地调整 dataset.yamlmodel.yaml 中的 "tnc" 值。"nc_list" 也需要更新,应与您的 "labels_list" 顺序相匹配。例如,如果您的 "labels_list" 包括检测对象、可行驶区域和车道线,则 "nc_list" 应设置为 7,1,1

通过这些详细说明,您可以开始使用 YOLOv8 多任务模型进行自己的项目开发。希望这能帮助您快速启动并在多个计算机视觉任务上取得优异成绩。

最后

复制代码
计算机视觉、图像处理、毕业辅导、作业帮助、代码获取,远程协助,代码定制,私聊会回复!
相关推荐
AI02261 小时前
探秘AI Agent软件公司:开启智能时代的创新引擎
人工智能
fīɡЙtīиɡ ℡3 小时前
AI 应用系统设计
java·开发语言·人工智能
小淮AI3 小时前
国际教育课程的本土化探索:以枫叶教育三十年为观察样本
大数据·人工智能
又折桃枝换酒钱3 小时前
VisCoder2:构建多语言可视化编码智能体(翻译与解读)
人工智能·信息可视化
AI绘画哇哒哒4 小时前
【建议收藏!】35岁后端血泪忠告,这3类人别硬转Agent(过来人亲述)
java·人工智能·后端·ai·程序员·大模型·agent
Chengbei114 小时前
DSH渗透测试插件dsh-pentest全新升级!适配DeepSeek Harness,可视化探索链路,一键搭建轻量化AI渗透测试环境。
人工智能·web安全·网络安全·微信·小程序·系统安全·安全架构
QN1幻化引擎4 小时前
DalinX Phi 性能突破:跨层秩保持对齐与意识涌现度量的实证研究
人工智能·ai·架构·agi·asi
NeilCarmack4 小时前
Deepseek-harness增加桌面版端序列:第 1 讲 · 命令解析:`pnpm dsh desktop` 的第一步
人工智能·agent·ai agent
龙兵AI增长破局圈.赵老师讲成交4 小时前
只有把过程管好,结果才会出来。
大数据·人工智能·ai·创业创新