当前位置: 首页 > article >正文

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

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

在这里插入图片描述

A-YOLOM 插图

在这里插入图片描述

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

    模型参数 (M)FPS (bs=1)FPS (bs=32)
    YOLOP7.926.0134.8
    HybridNet12.8311.726.9
    YOLOv8n(det)3.16102802.9
    YOLOv8n(seg)3.2682.55610.49
    A-YOLOM(n)4.4339.9172.2
    A-YOLOM(s)13.6139.796.2
  • 交通对象检测结果

    模型召回率 (%)mAP50 (%)
    MultiNet81.360.2
    DLT-Net89.468.4
    Faster R-CNN81.264.9
    YOLOv5s86.877.2
    YOLOv8n(det)82.275.1
    YOLOP88.676.5
    A-YOLOM(n)85.378.0
    A-YOLOM(s)86.981.1
  • 可行驶区域分割结果

    模型mIoU (%)
    MultiNet71.6
    DLT-Net72.1
    PSPNet89.6
    YOLOv8n(seg)78.1
    YOLOP91.6
    A-YOLOM(n)90.5
    A-YOLOM(s)91.0
  • 车道线检测结果

    模型准确度 (%)IoU (%)
    ENetN/A14.64
    SCNNN/A15.84
    ENet-SADN/A16.02
    YOLOv8n(seg)80.522.9
    YOLOP84.826.5
    A-YOLOM(n)81.328.2
    A-YOLOM(s)84.928.8
  • 消融研究 1: 自适应连接模块

    训练方法召回率 (%)mAP50 (%)mIoU (%)准确度 (%)IoU (%)
    YOLOM(n)85.277.790.680.826.7
    A-YOLOM(n)85.378.090.581.328.2
    YOLOM(s)86.981.190.983.928.2
    A-YOLOM(s)86.981.191.084.928.8
  • 消融研究 2: 不同多任务模型和分割结构的结果

    模型参数mIoU (%)准确度 (%)IoU (%)
    YOLOv8(segda)1,004,27578.1--
    YOLOv8(segll)1,004,275-80.522.9
    YOLOv8(multi)2,008,55084.281.724.3
    YOLOM(n)15,88090.680.826.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 多任务模型进行自己的项目开发。希望这能帮助您快速启动并在多个计算机视觉任务上取得优异成绩。

最后

计算机视觉、图像处理、毕业辅导、作业帮助、代码获取,远程协助,代码定制,私聊会回复!

http://www.kler.cn/news/316866.html

相关文章:

  • Spring IOC容器Bean对象管理-注解方式
  • 每日一题——第九十四题
  • pywinauto:Windows桌面应用自动化测试(十)
  • 成都睿明智科技有限公司怎么样?
  • 【深度】为GPT-5而生的「草莓」模型!从快思考—慢思考到Self-play RL的强化学习框架
  • Shader 中的光源
  • 民主测评系统可以解决哪些问题?
  • Typescript进阶:解锁Infer类型的使用
  • C++笔记---set和map
  • NLP--自然语言处理学习-day1
  • 《微信小程序实战(3) · 推广海报制作》
  • 文件系统(软硬链接 动静态库 动态库加载的过程)
  • C++学习笔记(32)
  • 在C#中使用NPOI将表格中的数据导入excel中
  • 工业交换机如何保证数据的访问安全
  • SkyWalking 简介
  • 深入理解Go语言中的并发封闭与for-select循环模式
  • 使用脚本自动化管理外部Git仓库依赖
  • 如何基于Flink CDC与OceanBase构建实时数仓,实现简化链路,高效排查
  • MySQL面试题——第一篇
  • 人工智能不是人工“制”能
  • FreeSWITCH 简单图形化界面29 - 使用mod_xml_curl 动态获取配置、用户、网关数据
  • 寻呼机爆炸,炸醒通讯安全警惕心
  • 【操作系统强化】王道强化一轮笔记
  • k8s1.27.7部署higress,代理非k8s集群业务
  • 如何借助ChatGPT提升论文质量:实战指南
  • 真正能抵抗裁员的,从不是专业能力,早知道这些都财务自由了
  • JAVA_17
  • pSort
  • < 微积分Calculus >