One-YOLOv5 v1.2.0 发布:支持分类、检测、实例分割



 

One-YOLOv5 v1.2.0 正式发布。完整更新列表请查看链接: https://github.com/Oneflow-Inc/one-yolov5/releases/tag/v1.2.0 ,欢迎体验新版本,期待你的反馈。

 

1

新版本特性

 

1. 同步了 Ultralytics YOLOv5 的上游分支 v7.0,同时支持分类、目标检测、实例分割任务

2. 支持 flask_rest_api

3. 支持使用 wandb 对实验跟踪和可视化功能 

4. oneflow_hub_support_pilimage 

5. 为每个 batch 的 compute_loss 部分减少一次 h2d 和 cpu slice_update 操作 

6. 优化 bbox_iou 函数和模型滑动平均部分,大幅提升训练性能 (一块 RTX 3090 加速训练 YOLOv5s,时间减少 11 个小时,速度提升 20%)

7. 兼容 FlowFlops,训练时可以展示模型的 FLOPs 

(基于 Flowflops 详解深度学习网络的 FLOPs 和 MACs 计算方案)

 

           

           

           

           

原图

目标检测:目标检测是指从图像中检测出多个物体并标记它们的位置和类别。目标检测任务需要给出物体的类别和位置信息,通常使用边界框(bounding box)来表示。目标检测可以应用于自动驾驶、视频监控、人脸识别等领域。

图像分类:  图像分类是指给定一张图像,通过计算机视觉技术来判断它属于哪一类别。图像分类是一种有监督学习任务,需要通过训练样本和标签来建立分类模型。在图像分类中,算法需要提取图像的特征,然后将其分类为预定义的类别之一。例如,图像分类可以用于识别手写数字、识别动物、区分汽车和自行车等。

实例分割:实例分割是指从图像中检测出多个物体并标记它们的位置和类别,同时对每个物体进行像素级的分割。实例分割要求更为精细的信息,因为它需要将物体的每个像素都分配给对应的物体。实例分割可以应用于医学影像分析、自动驾驶、虚拟现实等领域。

 

2

快速开始

 

安装

 

 Python>=3.7.0 的环境中克隆版本仓并安装 requirements.txt,包括 OneFlow nightly 或者 oneflow>=0.9.0 。

 

git clone https://github.com/Oneflow-Inc/one-yolov5  # 克隆cd one-yolov5pip install -r requirements.txt# 安装

 

  • 检测模型训练示例:

    https://start.oneflow.org/oneflow-yolo-doc/tutorials/03_chapter/quick_start.html#_4

     

  • 分割和分类模型训练示例:

    https://start.oneflow.org/oneflow-yolo-doc/tutorials/03_chapter/model_train.html

     

 

3

在 COCO 上的精度表现

 

yolov5s-default

 

 

启动指令:

 

python -m oneflow.distributed.launch --nproc_per_node 4\ train.py --batch-size 128 --data coco.yaml --weights " " --cfg models/yolov5s.yaml --img 640 --epochs 300

 

 

yolov5s-seg

 

 

 

 

OneFlow 后端启动指令

 

python -m oneflow.distributed.launch --nproc_per_node8\segment/train.py \--data coco.yaml \--weights ' ' \--cfg yolov5s-seg.yaml \--img 640\--batch-size 320\--device 0,1,2,4\--epochs 300\--bbox_iou_optim --multi_tensor_optimize

 

 

4

 

在 COCO 上的单 GPU 性能表现

 

 

 

 

 

测试环境

 

- 机器( 8GPUNVIDIA GeForce RTX 3090, 24268MiB)-oneflow.__version__= '0.9.1+cu117- torch.__version__= '1.13.0+cu117'- export NVIDIA_TF32_OVERRIDE=0# PyTorch使用FP32训练 

# 测试指令:# OneFlow后端python train.py \--batch-size 8 \--data coco.yaml \--weights ' ' \--cfg models/yolov5s.yaml \--img 640 \--epochs 1\--bbox_iou_optim --multi_tensor_optimize
python segment/train.py \--data coco.yaml \--weights ' ' \--cfgmodels/segment/yolov5s-seg.yaml \--img 640 \--batch-size 8--epochs 1 \--bbox_iou_optim --multi_tensor_optimize 
# PyTorch后端:export NVIDIA_TF32_OVERRIDE=0 # 使用fp32python\train.py \--batch-size 8 \--data coco.yaml \--weights ' ' \--cfg models/yolov5s.yaml \--img 640 \--epochs 1\
export NVIDIA_TF32_OVERRIDE=0 # 使用fp32python segment/train.py \--data coco.yaml \--weights ' ' \--cfgmodels/segment/yolov5s-seg.yaml \--img 640 \--epochs 1 \--batch-size 8

 

5
bug 修复

 

以下记录了一些用户反馈的常见问题:

 

 

1. 出现满屏的误检框。

可能到原因场景太单一,泛化不够 ,更多可见我们关于
如何准备一个好的数据集的介绍或者导出 ONNX 模型进行部署时代码有错误。

 

2. 让 batch 维度可以动态,加了 dynamic 参数?

暂时不支持该参数,可以自己编辑 ONNX 模型。相关教程请参考:
https://github.com/Oneflow-Inc/one-yolov5/releases/download/v1.2.0_/openmmlab.pptx
 

3. 模型导出 onnx 时,出现 /tmp/oneflow_model322 类似报错。

OneFlow 新老版本兼容性问题。这是旧版本创建的文件但是没清理,删除就可以解决。

 

4. 为训练过程 loss、map、检测框等可视化适配了 wandb (https://start.oneflow.org/oneflow-yolo-doc/tutorials/03_chapter/intro_to_wandb.html)

 

5. CUDA_VISIBLE_DEVICES 环境变量设置放在 import oneflow 之后会失败,导致 device 选择失败,可以通过 export CUDA_VISIBLE_DEVICES=1 手动控制。

 

6. autobatch 功能

OneFlow 缺少 memory_reserved API,我们会尽快补齐,现在需要先手动指定下 batch_size。下个版本将会解决并且会直接支持导出 batch 维度为动态的模型。

 

下个版本的展望

 

 

  • 继续提升 One-YOLOv5 单卡模式的训练速度

     

  • 解决目前训练时显存比 Ultralytics 偏大的问题

     

  • CPU 模式下支持 ONNX 模型的导出

     

  • OneFlow 研发的 amp train 目前已经开发完成正在测试中,下个版本将合并进 main 分支

     

  • autobatch 功能

 

常用预训练模型下载列表

 

 

 

其他人都在看

 

  • GPT-3/ChatGPT 复现的经验教训

  • 超越 ChatGPT:大模型的智能极限

  • YOLOv5 解析教程:计算 mAP 用到的 Numpy 函数

  • ChatGPT 作者 Schulman:我们成功的秘密武器

  • 比快更快,开源 Stable Diffusion 刷新作图速度

  • OneEmbedding: 单卡 训练 TB 级推荐模型不是梦

  • GLM 训练加速:性能最高提升 3 倍,显存节省 1/3

 

欢迎 Star、试用 OneFlow 新版本:https://github.com/Oneflow-Inc/oneflow/

 


 

 


相關推薦

2022-09-08

训练、端侧部署推理。 五 Roadmap 后续我们计划每个月发布Release版本。近期的Roadmap如下: Transformer 分类任务训练性能优化 & benchmark 自监督学习增加检测&分割benchmark 开发更多基于Transformer的下游任务,检测 & 分

2023-10-22

相约开源PHP办公室,我们一起聊 AI!>>> 阿里达摩院宣布发布业内首个遥感 AI 大模型(AIE-SEG),号称“率先在遥感领域实现了图像分割的任务统一,一个模型实现‘万物零样本’的快速提取”,并可识别农田、水域、建筑物等

2023-07-08

标注事件订阅  修复: 修复修改密码的缺陷 标注功能支持:音频分类,音频分割,音频翻译,音频分段翻译,图像分类,矩形对象检测,画笔分割,圆形对象检测,图像关键点,多边形分割,文本分类,文本命名实体识别,文本摘要 支持审计

2024-02-07

A-Tune v1.2.0 已经发布,系统性能自优化软件 此版本更新内容包括: 更新内容 删除多余的benchmark结果记录文件 由 @ZhouPengcheng 贡献 https://gitee.com/openeuler/A-Tune/pulls/579 增加日志调试信息,与上下文保持一致 由 @Caohongtao 贡献 ht

2022-11-01

Taichi(太极)v1.2.0 已经发布,这是专为高性能计算机图形学设计的编程语言。从 v1.2.0 版本开始,Taichi 遵循语义版本控制,其中从 master 分支 cutting 的常规版本会增加 MINOR 版本,而 PATCH 版本只有在挑出关键的 bug 修复时

2024-10-17

AIEditor.dev AI 驱动的开源富文本编辑器 开箱即用、支持所有前端框架、支持 Markdown 书写模式 什么是 AIEditor AiEditor 是一个面向 AI 的下一代富文本编辑器,她基于 Web Component,因此支持 Layui、Vue、React、Angular 等几乎任何前端

2023-05-15

go-logger 是golang 的极简日志库 日志打印:调用 Debug(),Info(),Warn(), Error() ,Fatal() 日志级别由低到高 级别概念 功能用法类似java日志工具log4j 或 python的logging 设置日志打印格式: 如: SetFormat(FORMAT_SHORTFILENAME|FORMAT_DATE|FORMA

2022-12-22

txtai 5.2 已发布,此版本添加了 TextToSpeech 和 Cross-Encoder 管道。embeddings.batchtransform方法的性能得到了显着提高,从而加快了构建语义图的速度。Embeddings 现在可以使用默认配置,允许创建没有参数的 Embeddings 实例,例如 Pipelines。

2023-03-30

,具体的机器学习能力由理解机的PyTorch插件实现。 本次发布提供的PyPI包 ligavision==0.3.0 liga-pytorch==0.3.0 liga-tv==0.3.0 本次发布提供的七个可执行的Notebook 可以直接在Gitee预览这七个Notebook。 https://gitee.com/komprenilo/liga-pytorch

2024-07-30

种数据集上实现更好的图像分割性能。 此外,RWKV-SAM 的分类和语义分割结果优于最新的视觉 Mamba 模型。 VisualRWKV 论文名称:VisualRWKV: Exploring Recurrent Neural Networks for Visual Language Models 论文链接:https://arxiv.org/abs/2406.13362

2023-10-26

。 Ponder系列在通用3D方面实现三个“首次”:首次同时支持室内外使用场景;首次同时支持点云、体素和多视角图像输入;首次在不同语义层级的下游任务上达成最佳性能。在通用人工智能的研究领域,教导计算机深度理解三

2023-01-04

册、找回密码、新订单、订单状态更新提醒等工作 同时支持队列发送,提高系统资源利用效率! 邮件配置路径:系统设置→系统设置→邮件设置   3. 新增 支持后台设置每页显示商品个数 配置路径:系统设置→系

2024-05-29

的压测数据)。 在异步场景中,tklog提供了对应的方法,支持异步调用。异步方法最大的好处并非在性能上,而是它不会阻塞所在线程。但是由于 tklog的常规日志方法默认使用延迟策略,实际上也不会阻塞所在线程,或者准确说

2022-09-11

与统一维护管理的模块。 通知公告:系统通知公告信息发布维护。 代码生成:一键生成模块 CRUD 的功能,包括后端和前端 Vue 等相关代码。 案例演示:常规代码生成器一键生成后的演示案例。 开发者信息 软件名称:R