/ Модель

Характеристики

Лицензия
Apache 2.0
Опубликована
5 авг 2026

las-vegas-metro-rfdetr-nano

Поиск объектовИзображение → bounding_boxes

RF-DETR Nano обнаруживает автомобили полиции Лас-Вегаса на кадрах с видеорегистратора в реальном времени.

0скачиваний за 30 дней1лайквеса обновлены5 авг 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

RF-DETR Nano — модель обнаружения автомобилей полицейского департамента Лас-Вегаса, разработанная для dashradar.app. Предназначена для обнаружения таких автомобилей в реальном времени на видео с автомобильного видеорегистратора, в том числе в браузере через WebGPU и на мобильных устройствах.

Модель принимает изображение размером 512×512 и выдаёт ограничивающие рамки и оценки уверенности для класса полицейского автомобиля. Доступны сборки ONNX в fp16 размером около 54 МБ и fp32 размером около 108 МБ, а также исходный чекпойнт PyTorch. Для подготовки кадра требуется центральное кадрирование без изменения пропорций; рамки заданы относительно области кадрирования. Модель обучена на конкретном автопарке и ливрее, поэтому может плохо работать с автомобилями других ведомств, регионов и с немаркированными машинами. Не предназначена для решений, критичных для безопасности. Лицензия — Apache-2.0.

Сценарии применения

  • обнаружение автомобилей полиции Лас-Вегаса на видео с видеорегистратора
  • распознавание полицейских автомобилей в браузерном приложении с WebGPU
  • обнаружение автомобилей полиции на мобильном устройстве
  • анализ центрально кадрированных кадров дорожного видео

Ограничения

Модель обучена на конкретном автопарке и ливрее и может не обобщаться на другие ведомства, регионы или немаркированные автомобили. Кадр необходимо центрировать и обрезать до 512×512 без искажения пропорций; модель не следует использовать для решений, критичных для безопасности.

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

las-vegas-metro-rfdetr-nano

An RF-DETR Nano model that detects Las Vegas Metropolitan Police Department vehicles. Built for dashradar.app and meant to run on mobile devices, in the browser on WebGPU or on-device.

Sample detection: an LVMPD police cruiser detected with its confidence score labelled

Files

FilePrecisionSizeUse
onnx/model_fp16.onnxfp16 weights, fp32 I/O~54 MBRecommended, WebGPU (onnxruntime-web)
onnx/model.onnxfp32~108 MBReference build
weights.ptfp32~121 MBSource checkpoint

Both ONNX builds share one I/O signature and agree within 0.001 confidence on the same box, so the same code runs either one.

Input and output

  • input: [1, 3, 512, 512] float32 NCHW. Resolution is fixed.
  • dets: [1, 100, 4] float32, boxes in cxcywh normalized 0..1.
  • labels: [1, 100, 2] float32, raw logits. Apply sigmoid.

Three things to get right:

  • Police vehicles are class index 1. The head is two classes wide and only one is trained. Index 0 is unused.
  • Boxes are normalized to the center crop, not to the original frame. Map them back through the crop origin.
  • Center-crop the input, don't squish it. Training images are center-cropped, so a squished full frame scores worse. The cost is field of view: a 16:9 frame loses about 44% of its width.

No NMS is baked in. Read the query count off the tensor instead of hardcoding 100. Each build carries its label map and release tag in ONNX metadata_props.

Usage

import numpy as np, onnxruntime as ort
from PIL import Image

MEAN = np.array([0.485, 0.456, 0.406], np.float32)
STD = np.array([0.229, 0.224, 0.225], np.float32)
THRESHOLD = ...  # set from the CHANGELOG entry for the revision you pin

img = Image.open("input.jpg").convert("RGB")
W, H = img.size
side = min(W, H)
x0, y0 = (W - side) // 2, (H - side) // 2
square = img.crop((x0, y0, x0 + side, y0 + side)).resize((512, 512), Image.BILINEAR)
x = ((np.asarray(square, np.float32) / 255.0 - MEAN) / STD).transpose(2, 0, 1)[None]

sess = ort.InferenceSession("onnx/model_fp16.onnx", providers=["CPUExecutionProvider"])
dets, labels = sess.run(None, {sess.get_inputs()[0].name: x})

prob = 1 / (1 + np.exp(-labels[0]))
idx = np.argsort(-prob.reshape(-1))
query, cls, score = idx // 2, idx % 2, prob.reshape(-1)[idx]
cx, cy, bw, bh = dets[0][query].T
xyxy = np.stack([x0 + (cx - bw / 2) * side, y0 + (cy - bh / 2) * side,
                 x0 + (cx + bw / 2) * side, y0 + (cy + bh / 2) * side], axis=1)

for s, c, b in zip(score, cls, xyxy):
    if s >= THRESHOLD and c == 1:
        print(f"police vehicle {s:.2f} at {b.round().astype(int).tolist()}")

Thresholds

Thresholds do not carry across versions. Every release recalibrates the score distribution. The recommended threshold and the metrics behind it live in the CHANGELOG entry for each version, so read the entry for the revision you pin and re-tune when you move. Don't reuse a threshold read off Roboflow's hosted sweep, which serves a different query count than these builds.

Confidence tracks apparent size, not distance. The same vehicle scores above 0.9 in a tight native-resolution crop and far lower when a full frame is downscaled into 512x512. For distant vehicles use a tighter crop, not a lower threshold.

Intended use and limitations

Intended for detecting Las Vegas Metro police vehicles in realtime dashcam-style video for dashradar.app. It is trained on a specific fleet and livery, so it may not generalize to other agencies, regions, or unmarked vehicles. Do not rely on it for safety-critical decisions.

License

Apache 2.0.

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм

Нельзя запустить

В репозитории нет config.json: не понять архитектуру модели.

Ревизия весов
c56cc90

0 моделей