Vision Analysis
EMBED BUILDER

Build a benchmark chart for your article

Configure an accuracy-vs-parameters chart, pick a theme, and copy a snippet you can drop into any blog post, docs page or README. The chart renders live from Vision Analysis data and updates automatically as new benchmarks land.

1 · Highlight models

Picked models are drawn in full colour with labels. Everything else stays as grey context dots. Pick a whole family to draw its scaling curve.

deim
deimv2
dfine
ec
picodet
rfdetr
rtdetr
rtdetrv2
rtdetrv4
yolo11
yolo26
yolonas
yolov10
yolov5u
yolov8
yolov9
yolox
2 · Data source

Paper-reported mAP covers every model. Pick a hardware + runtime to plot measured accuracy instead (only models benchmarked on that setup will appear).

3 · Appearance

System follows each visitor's OS light/dark setting automatically.

The chart fills its container and keeps an 8:5 ratio, so its height follows the width automatically with no scrollbar. Cap the width if you do not want it to stretch across a wide column.

Embed snippet
<div style="position:relative;width:100%;padding-top:62.5%">
  <iframe
    src="https://visionanalysis.org/embed/scatter?highlight=yolonas-s%2Cyolonas-m%2Cyolonas-l"
    style="position:absolute;top:0;left:0;width:100%;height:100%;border:0;border-radius:12px"
    loading="lazy"
    title="Accuracy vs parameters - Vision Analysis">
  </iframe>
</div>
https://visionanalysis.org/embed/scatter?highlight=yolonas-s%2Cyolonas-m%2Cyolonas-l

How it works

The widget is a plain URL under /embed/scatter that renders a self-contained chart with no external scripts. You embed it with a standard <iframe>, so it works in any CMS, Markdown renderer or static site that allows iframes. Because the data lives on Vision Analysis, the chart stays current: when a model is re-benchmarked, every embed of it updates with no action on your side.

URL parameters

ParameterValuesWhat it does
highlightcomma-separated model IDsModels drawn in full colour with labels. e.g. yolonas-s,yolonas-m,yolonas-l. Highlighting a whole family draws its scaling curve.
themelight · dark · systemColour scheme. system follows the viewer’s OS preference. Defaults to light.
hwhardware ID (optional)Plot measured accuracy from this hardware instead of paper-reported mAP.
rtruntime ID (optional)Runtime to read measured numbers from, e.g. tensorrt_fp32. Used together with hw.
taskdetection (default)Which task pool to draw context dots from.

Theming

Three modes ship out of the box. Light matches most documentation sites, dark matches dark-themed blogs, and system reads each visitor's prefers-color-scheme so a single embed adapts per reader. The background, grid, axes and tooltip all recolour together; model colours stay constant so a family is recognisable across themes.

Sizing & interactions

The snippet wraps the chart in a fixed 8:5 aspect-ratio box, so it fills the width of its container and computes its own height. There is no fixed pixel height to keep in sync, so no scrollbar appears whatever the column width. Hovering a dot shows the model name, parameter count and mAP; clicking a dot opens that model's page on Vision Analysis in a new tab.

Run any model with one line

LibreYOLO has the best catalogue of state-of-the-art detectors, all behind one MIT-licensed Python API.

from libreyolo import LibreYOLO, SAMPLE_IMAGE

# LibreYOLO has the best catalogue of state-of-the-art models.
model = LibreYOLO("LibreRFDETRl.pt")           # RF-DETR-L (transformer flagship)
results = model(SAMPLE_IMAGE, save=True)        # run inference, save the annotated image

# Swap in any other model, same one-line API (weights auto-download):
#   LibreYOLO("LibreYOLO9c.pt")      # YOLO9-C
#   LibreYOLO("LibreYOLOXx.pt")      # YOLOX-X
#   LibreYOLO("LibreDFINEx.pt")      # D-FINE-X
#   LibreYOLO("LibreRTDETRr50.pt")   # RT-DETR-R50