news 2026/3/2 14:52:51

YAML2ModelGraph【v1.0】:一键生成 Ultralytics 模型结构图

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
YAML2ModelGraph【v1.0】:一键生成 Ultralytics 模型结构图

YAML2ModelGraph

v0.1 版本在这篇文档 https://blog.csdn.net/weixin_43694096/article/details/154486575

项目地址:https://github.com/WangQvQ/YAML2ModelGraph


📖 项目简介

YAML2ModelGrap是一个专业的 YOLO 模型架构可视化工具,能够将 Ultralytics YOLO 模型的 YAML 配置文件自动转换为精美的 SVG 架构图。

✨ 核心特性

  • 🎨9 种精美主题:从科研论文风到现代糖果色,满足不同场景需求
  • 📐智能布局:自动识别 Backbone、Neck、Head 三大模块,智能多列折叠
  • 🔗清晰连线:支持多种连线样式(直线、贝塞尔曲线、曼哈顿路由)
  • 📊信息丰富:显示模块类型、步长(stride)、通道数等关键信息
  • 🎯即开即用:无需额外依赖,纯 Python + SVG 输出

🖼️ 主题展示

9 种主题风格一览


🚀 快速开始

安装依赖

pipinstallpyyaml

基本使用

python main.py examples/yolov8.yaml output.svg --theme paper

参数说明:

  • examples/yolov8.yaml:输入的 YAML 模型配置文件
  • output.svg:输出的 SVG 文件路径(可选,默认为yolo_graph.svg
  • --theme paper:选择主题风格(可选,默认为paper

🎨 主题风格

v1.0 版本提供9 种精心设计的主题,适用于不同场景:

1. 科研标准风 (Paper) - 默认主题

特点:黑白灰配色、Times New Roman 字体、极简线条
场景:专为 IEEE / CVPR / 毕业论文插图设计,打印效果最好

python main.py examples/yolov8.yaml svg/graph_paper.svg --theme paper

2. 现代糖果风 (Candy)

特点:莫兰迪色系(淡蓝/淡橙)、大圆角、无衬线字体
场景:适合 PPT 演示、技术博客、海报,视觉效果活泼现代

python main.py examples/yolov8.yaml svg/graph_candy.svg --theme candy

3. 暗黑极客风 (Dark)

特点:深色背景、高对比度线条、代码风格字体
场景:适合深色模式阅读、屏幕演示、体现"硬核"技术感

python main.py examples/yolov8.yaml svg/graph_dark.svg --theme dark

4. 科技海洋风 (Ocean)

特点:不同深浅的蓝色调、清爽专业
场景:适合商务汇报、科技公司技术白皮书

python main.py examples/yolov8.yaml svg/graph_ocean.svg --theme ocean

5. 复古暖阳风 (Retro)

特点:暖米色背景(Gruvbox 风格)、打字机字体
场景:适合长时间阅读(护眼)、追求复古文艺感的文档

python main.py examples/yolov8.yaml svg/graph_retro.svg --theme retro

6. 工程蓝图风 (Blueprint)

特点:深蓝底色、白色细线条、CAD 工程字体
场景:体现"架构设计"、"底层逻辑"的硬核工程图

python main.py examples/yolov8.yaml svg/graph_blueprint.svg --theme blueprint

7. 森林氧吧风 (Forest)

特点:绿色系配色、清新自然
场景:护眼风格,或用于强调环保/轻量化的主题

python main.py examples/yolov8.yaml svg/graph_forest.svg --theme forest

8. 学术三原色风 (Paper RYB) ⭐ 推荐

特点:经典红黄蓝配色、极度降低饱和度,模块区分清晰
场景:适合需要清晰区分 Backbone/Neck/Head 三大模块结构的论文插图

python main.py examples/yolov8.yaml svg/graph_paper_ryb.svg --theme paper_ryb

9. 现代期刊风 (Journal)

特点:极简冷淡风、背景几乎隐形,最严谨的学术风格
场景:适合 Springer 或 Nature 子刊的图表风格

python main.py examples/yolov8.yaml svg/graph_journal.svg --theme journal

📋 功能详解

自动模块识别

工具会自动识别 YAML 配置中的模块类型,包括:

  • Backbone 模块:Conv、C2f、SPPF 等
  • Neck 模块:Upsample、Concat、C2f 等
  • Head 模块:Detect 等

智能布局算法

  • Backbone:单列垂直布局,清晰展示特征提取流程
  • Neck:智能多列折叠,当模块过多时自动分列显示
  • Head:根据输入源自动对齐,保持视觉连贯性

连线样式

  • 垂直直连:同列相邻模块使用直线连接
  • 贝塞尔曲线:跨列连接使用平滑曲线
  • 曼哈顿路由:Backbone 到 Neck 使用直角路由
  • 虚线标识:跨模块或长距离连接使用虚线

信息展示

每个节点显示:

  • 主标签:模块类型(如 Conv、C2f、Detect)
  • 副标签:步长和通道数(如8x / 256c
信息显示配置

main.py中可以通过DISPLAY_CONFIG字典自定义节点上显示的信息:

DISPLAY_CONFIG={"show_channels":True,# 显示通道 (如 64->128 或 128c)"show_repeats":True,# 显示堆叠数 (如 n=3)"show_stride":True,# 显示倍率 (如 /32x)"show_args":False,# 显示详细参数 (如 a:3,2) -> ⚠️ 如果字太多溢出,请关掉这个}

配置项说明:

  • show_channels:是否显示通道数变化(如64->128128c
  • show_repeats:是否显示模块堆叠次数(如n=3表示重复 3 次)
  • show_stride:是否显示步长倍率(如/32x表示下采样 32 倍)
  • show_args:是否显示详细参数(如a:3,2),注意:如果节点信息过多导致文字溢出,建议将此选项设为False

📁 项目结构

YAML2ModelGraph/ ├── main.py # 主程序入口 ├── yolo_graph.py # 核心解析和布局逻辑 ├── themes.py # 主题配置定义 ├── README.md # 项目文档 ├── examples/ # 示例 YAML 文件 │ ├── yolov8.yaml │ ├── yolo11.yaml │ ├── yolo12.yaml │ └── yolov9s.yaml └── svg/ # 生成的 SVG 示例 ├── graph_paper.svg ├── graph_candy.svg ├── graph_dark.svg ├── graph_ocean.svg ├── graph_retro.svg ├── graph_blueprint.svg ├── graph_forest.svg ├── graph_paper_ryb.svg └── graph_journal.svg

🔧 高级用法

自定义主题

编辑themes.py文件,可以:

  • 修改现有主题的颜色、字体、圆角等参数
  • 添加新的主题配置
  • 调整布局参数(节点大小、间距等)

自定义信息显示

编辑main.py中的DISPLAY_CONFIG字典,可以控制节点上显示哪些信息:

DISPLAY_CONFIG={"show_channels":True,# 显示通道数"show_repeats":True,# 显示堆叠数"show_stride":True,# 显示步长倍率"show_args":False,# 显示详细参数(建议关闭以避免文字溢出)}

使用建议:

  • 如果生成的图表中节点文字过多导致溢出,可以将show_args设为False
  • 对于简单的模型可视化,可以关闭部分选项以获得更简洁的图表
  • 对于详细的架构分析,可以全部开启以获得完整信息

支持的 YAML 格式

工具兼容 Ultralytics YOLO 系列的 YAML 格式:

backbone:-[-1,1,Conv,[64,3,2]]-[-1,3,C2f,[128,True]]# ...head:-[-1,1,nn.Upsample,[None,2,"nearest"]]-[[-1,6],1,Concat,[1]]# ...

📸 效果预览

所有主题的示例图已保存在svg/目录下,您可以直接查看不同主题的视觉效果。


🤝 贡献

欢迎提交 Issue 和 Pull Request!

可能的改进方向:

  • 添加更多主题风格
  • 支持自定义节点样式
  • 优化复杂模型的布局算法
  • 添加交互式 SVG 功能

📄 许可证

本项目使用MIT License开源,允许商用、修改和分发。


🙏 致谢

感谢 Ultralytics 团队提供的 YOLO 框架和模型定义格式。


版本:v1.0

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/23 20:29:52

STM32定时器定时中断

TIM(Timer)定时器定时器可以对输入的时钟进行计数,并在计数值达到设定值时触发中断16 位计数器、预分频器、自动重装寄存器的时基单元,在 72MHz 计数时钟下可以实现最大 59.65s 的定时(还可以级联获得更大的时间&#…

作者头像 李华
网站建设 2026/2/27 1:38:55

打破离散制造“内卷”:工业智能体(AI Agent)落地的五大核心原则

如果你是制造业企业的中高管,希望你能有机会看到这篇文章,结合自身企业的现状,规避AI应用的坑,让企业的钱花在刀刃上,毕竟,制造业真的很难。不再赘述离散制造业面临“多品种、小批量”与“高效率、低成本”…

作者头像 李华
网站建设 2026/2/27 10:45:16

C语言 操作符 关系操作符 笔记

关系操作符概述在C语言中,关系操作符用于比较两个操作数的大小或相等性,返回值为1(真)或0(假)。这些操作符通常用于条件判断和循环控制。常见关系操作符列表:检查两个操作数是否相等。5 3; // …

作者头像 李华
网站建设 2026/2/28 7:14:45

2025年战略咨询在行业标准演进中的推动力

2025年,战略咨询在推动行业标准演进方面发挥着重要作用。针对当前市场需求的变化,咨询公司为企业提供定制化的解决方案,使之适应不断更新的行业标准。通过深入市场分析,战略咨询不仅帮助企业识别新的竞争机会,还有效提…

作者头像 李华
网站建设 2026/2/28 19:33:19

【电商API接口】电商平台价格监控行业全景:数据驱动的定价革命

一、行业概况与市场规模电商价格监控是指系统性追踪产品价格(自身、竞品、市场均价),覆盖所有销售渠道,实现实时洞察与决策的商业实践。市场规模:全球价格监控软件市场预计 2025 年达19.2 亿美元,2034 年将…

作者头像 李华