Skip to content

Model table: accuracy, size and latency

Generated by examples/render_model_table.py from two measured JSONs, so every column regenerates and any disagreement is reproducible:

uv run examples/model_table.py --coco ~/datasets/coco --input-size 640 --half --nms-iou 0.70
uv run examples/model_table.py --coco ~/datasets/coco --input-size 320 --half --nms-iou 0.70
uv run examples/runtime_matrix.py --models yolo_nas_s,yolo_nas_m,yolo_nas_l --sizes 320,640 \
    --calibration-dir ~/datasets/coco/images/val2017 \
    --sample-image ~/datasets/coco/images/val2017/000000435081.jpg
uv run examples/render_model_table.py

Box AP on COCO val2017

Model Input Params GFLOPs AP AP50 AP75 AP_S AP_M AP_L
YOLO-NAS-S 320 19.05M 8.5 38.4 53.9 41.4 13.7 43.1 64.1
YOLO-NAS-S 640 19.05M 33.9 47.3 64.4 51.8 28.5 52.9 63.6
YOLO-NAS-M 320 51.18M 23.5 43.1 59.1 46.6 17.8 49.4 68.4
YOLO-NAS-M 640 51.18M 94.2 51.3 68.3 56.0 33.6 57.0 68.1
YOLO-NAS-L 320 66.98M 32.2 43.8 59.9 47.3 18.7 50.4 67.7
YOLO-NAS-L 640 66.98M 129.0 52.0 69.1 56.9 34.5 57.4 68.5

With latency, per device

Model Input Params GFLOPs AP AP50 dGPU
TensorRT FP16
CPU
OpenVINO INT8
iGPU
OpenVINO INT8
YOLO-NAS-S 320 19.05M 8.5 38.4 53.9 1.17 ms
855 FPS
5.19 ms
193 FPS
6.83 ms
146 FPS
YOLO-NAS-S 640 19.05M 33.9 47.3 64.4 2.12 ms
472 FPS
19.87 ms
50 FPS
12.04 ms
83 FPS
YOLO-NAS-M 320 51.18M 23.5 43.1 59.1 1.50 ms
666 FPS
12.03 ms
83 FPS
9.45 ms
106 FPS
YOLO-NAS-M 640 51.18M 94.2 51.3 68.3 4.19 ms
239 FPS
47.47 ms
21 FPS
25.49 ms
39 FPS
YOLO-NAS-L 320 66.98M 32.2 43.8 59.9 1.94 ms
515 FPS
15.56 ms
64 FPS
10.38 ms
96 FPS
YOLO-NAS-L 640 66.98M 129.0 52.0 69.1 5.41 ms
185 FPS
63.00 ms
16 FPS
32.07 ms
31 FPS

Latency is model inference only, batch 1, on NVIDIA GeForce RTX 3060 Laptop GPU and x86_64. FPS is 1000 / latency on a single synchronous stream — not throughput, and not a whole frame, since preprocessing and NMS are excluded. The full grid — every runtime, precision and NMS placement — is in the runtime matrix.

Protocol

  • Weights: the pretrained COCO checkpoints this library downloads, which originate from Deci's super-gradients releases. Not weights trained by this project.
  • Accuracy: full COCO val2017, all 5000 images, pycocotools. Input letterboxed with aspect preserved; NMS at confidence 0.001 and IoU 0.70, which a sweep found optimal. Predictions are mapped back to original image coordinates before being compared with the ground truth — the evaluator inverts the same letterbox the dataset applied, so a non-640 input size is measured correctly rather than approximately.
  • Accuracy is measured in FP32 even where the latency column is FP16. Whether quantization costs AP is a separate question with its own script, examples/runtime_accuracy.py, which evaluates the exported artifact itself.
  • Parameters: sum(p.numel() for p in model.parameters()).
  • FLOPs: torch.utils.flop_counter for one forward pass at the stated input size, multiplies and adds counted separately. Papers reporting roughly half these figures are counting multiply-accumulates; compare conventions before comparing numbers.

On comparing this with published leaderboards

Detection leaderboards usually report latency on an NVIDIA T4 with TensorRT at batch 1. That is not the hardware above, and a latency number is meaningless without its protocol, so the two columns should not be read side by side. The accuracy columns are directly comparable.