YOLO-Architekturen mit YAML2ModelGraph visualisieren#
YAML2ModelGraph ist ein Community-Tool, das YAML-Dateien von Ultralytics YOLO in SVG-Architekturdiagramme umwandelt. Es kann dich dabei unterstützen, benutzerdefinierte Modelle zu dokumentieren oder ihre Backbone-, Neck- und Head-Struktur zu untersuchen.
Installation#
Klone das Projekt und installiere die PyYAML-Abhängigkeit:
git clone https://github.com/WangQvQ/YAML2ModelGraph.git
cd YAML2ModelGraph
pip install pyyamlVerwendung#
Erstelle ein Diagramm aus dem enthaltenen YOLO26-Beispiel:
python main.py examples/yolo26.yaml output.svgVerwende --head multi, um separate Head-Knoten für die einzelnen Skalierungen zu zeichnen, oder wähle eines der enthaltenen Designs aus:
python main.py examples/yolo26.yaml output.svg --head multi --theme paper_rybZu den verfügbaren Designs gehören paper, paper_ryb, candy, dark, ocean, retro, blueprint, forest und
journal. Für das generierte SVG ist keine Graphviz-Installation erforderlich.
Knotenmetadaten#
Bearbeite DISPLAY_CONFIG in main.py von YAML2ModelGraph, um auszuwählen, welche Details in jedem Knoten angezeigt werden:
DISPLAY_CONFIG = {
"show_channels": True,
"show_repeats": True,
"show_stride": True,
"show_args": False,
}Benutzerdefinierte YAML-Modulnamen werden automatisch dargestellt. Farben, Formen und Typografie des Designs werden in themes.py des Tools konfiguriert.
Einschränkungen#
YAML2ModelGraph richtet standardmäßige Detect-Heads speziell aus. Andere Task-Heads wie OBB, Pose und Segment werden derzeit als generische Knoten in Neck-Bahnen dargestellt. Aktuelle Informationen zur Unterstützung und Verwendung findest du im YAML2ModelGraph-Repository.
FAQ#
Ja. Jedes Ultralytics-Modell-YAML, das dem Schichtformat von
[from, repeats, module, args]entspricht, wird gerendert, und benutzerdefinierte Modulnamen werden als generische Knoten gezeichnet. Das Format findest du im Modell-YAML-Konfigurationsleitfaden.Nein. Das Tool schreibt SVG direkt und ist nur von PyYAML abhängig.
Nur Standardköpfe von
Detect. Köpfe vonOBB,PoseundSegmentwerden als generische Neck-Lane-Knoten gezeichnet; die aktuelle Unterstützung kannst du im YAML2ModelGraph-Repository überprüfen.