/ Модель

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

Лицензия
Apache 2.0
Базовая модель
rtdetr_v2_r50vd
Библиотека
transformers
Опубликована
25 июл 2026

rtdetr-sportsmot

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

Дообученный RT-DETRv2 для обнаружения игроков на кадрах баскетбольных, футбольных и волейбольных трансляций, в том числе перед отслеживанием игроков.

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

Бенчмарки

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

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

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

  • Lekim89/sportsmot

    map75 · выше — лучше

    Результат

    0,882

    test-latency-p50-ms 62,5test-throughput-fps 28test-detections-per-frame 10,16
    Hugging Face Eval Results

    Отчёт автораревизия не подтверждена

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

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

smallTech/rtdetr-sportsmot — детектор игроков, разработанный на основе RT-DETRv2 (r50vd) и дообученный на размеченных тренировочных последовательностях SportsMOT. Модель предназначена для обнаружения игроков на кадрах трансляций баскетбола, футбола и волейбола и может использоваться как этап детектирования в системе отслеживания объектов, например вместе с ByteTrack.

Это одноклассовая модель компьютерного зрения: она принимает изображение и возвращает рамки игроков с оценками уверенности. В README приведены результаты проверки на отложенной баскетбольной последовательности и на валидационном разделе SportsMOT; заявлена скорость 16,2 кадра/с при обработке одного изображения на Tesla T4 в fp32. Модель распространяется в формате Safetensors и использует библиотеку Transformers.

Лицензия — Apache-2.0. Качество и скорость зависят от условий съёмки и оборудования; модель обучена на видеокадрах спортивных трансляций и не предназначена для общего обнаружения произвольных объектов.

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

  • обнаружение игроков на кадрах баскетбольных матчей
  • поиск игроков на кадрах футбольных трансляций
  • обнаружение игроков в волейбольных матчах
  • подготовка рамок игроков для трекинга с ByteTrack
  • анализ расположения игроков на спортивных кадрах

Ограничения

Модель обнаруживает только класс player и обучена на спортивных трансляциях; её применимость к другим объектам и условиям съёмки не установлена. Приведённые показатели скорости измерены на Tesla T4 и могут отличаться на другом оборудовании.

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

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

Открыть на Hugging Face

rtdetr-sportsmot — RT-DETRv2 (r50vd) fine-tuned on SportsMOT for player detection

Single-class (player) detector fine-tuned from PekingU/rtdetr_v2_r50vd on the annotated train sequences of Lekim89/sportsmot (basketball, soccer, and volleyball broadcast clips in MOTChallenge format). Intended as the detection stage of a tracking-by-detection pipeline (e.g. with ByteTrack via the supervision library) for basketball player tracking.

Try it in one click

  • Live demo Space — a Gradio app on ZeroGPU: drop a sports frame, tune the confidence threshold, get annotated player boxes.
  • Notebook (notebook.ipynb): open in Colab or Kaggle, or via the "Use this model" button above — install → load → detect → visualize, no token needed, CPU or GPU.

Validation (held-out basketball sequence v_-6Os86HzwCs_c009)

metricvalue
mAP@[.5:.95]0.7809
mAP@500.9597
mAP@750.8700
mAR@1000.8081

Usage

Note: this is a vision model — its preprocessor is an AutoImageProcessor (there is no tokenizer). Ignore the auto-generated "Load model directly" snippet in the Use this model button if it shows AutoTokenizer — that call will error. Use either option below.

Simplest — pipeline:

from transformers import pipeline

pipe = pipeline("object-detection", model="smallTech/rtdetr-sportsmot")
results = pipe("frame.jpg", threshold=0.5)   # [{'score', 'label': 'player', 'box'}, ...]

Manual — processor + model (full control over pre/post-processing):

import torch
from PIL import Image
from transformers import AutoImageProcessor, AutoModelForObjectDetection

processor = AutoImageProcessor.from_pretrained("smallTech/rtdetr-sportsmot")
model = AutoModelForObjectDetection.from_pretrained("smallTech/rtdetr-sportsmot")

image = Image.open("frame.jpg")
inputs = processor(images=image, return_tensors="pt")
with torch.no_grad():
    outputs = model(**inputs)
results = processor.post_process_object_detection(
    outputs, target_sizes=torch.tensor([image.size[::-1]]), threshold=0.5
)

Training details

  • Approach: RT-DETRv2's COCO detection head is replaced with a one-class (player) head while reusing the pretrained backbone.
  • Data: the annotated train/ split of SportsMOT — 44 of its 45 sequences for training (14,049 frames at stride 2, frames without boxes skipped), with one basketball sequence (v_-6Os86HzwCs_c009, 100 frames at stride 5) held out for validation. Annotations are MOTChallenge gt.txt boxes; conf==0 ignore-boxes are skipped, track ids are unused for detection. The val/ and test/ splits were never touched by training — they are the benchmark sets below.
  • Training ran entirely on Kaggle's free tier (single T4, fp16): batch 4 with 4-step gradient accumulation (effective 16), 20 epochs at 640×640, lr 5e-5 cosine with 300-step warmup, augmentation (hflip, color jitter, gaussian noise).
  • Model selection: checkpoint with the best held-out eval_loss — epoch 11 of 20 (later epochs overfit).

Benchmark — unseen val split (45 sequences)

Evaluated on every annotated frame of the SportsMOT val split — 26,970 frames / 295,573 ground-truth boxes across 45 sequences (basketball, soccer, volleyball) never used in training (training consumed only the train/ split; test/ has no public ground truth). Frame stride 1; same metric implementation as the training-time validation (torchmetrics COCO mAP, detection threshold 0.01).

metricvalue
mAP@[.5:.95]0.7928
mAP@500.9383
mAP@750.8820
mAR@1000.8269

Latency (single image, batch 1, fp32, Tesla T4, torch 2.10.0+cu128): mean 61.6 ms · p50 61.4 ms · p90 62.8 ms · p99 66.3 ms → 16.2 fps. Model load: 5.4 s.

sequencemAP@[.5:.95]mAP@50mAP@75
v_4-EmEtrturE_c0090.8990.9800.959
v_cC2mHWqMcjk_c0090.8680.9700.937
v_cC2mHWqMcjk_c0070.8590.9700.937
v_00HRwkvvjtQ_c0030.8520.9800.934
v_cC2mHWqMcjk_c0080.8390.9590.906
v_4r8QL_wglzQ_c0010.8350.9700.915
v_5ekaksddqrc_c0050.8320.9690.913
v_G-vNjfx1GGc_c0080.8250.9760.943
v_dw7LOz17Omg_c0670.8230.9540.923
v_5ekaksddqrc_c0020.8220.9790.908
v_5ekaksddqrc_c0040.8210.9790.908
v_G-vNjfx1GGc_c0040.8190.9640.931
v_dw7LOz17Omg_c0530.8160.9580.913
v_5ekaksddqrc_c0030.8140.9700.900
v_2QhNRucNC7E_c0170.8140.9230.902
v_00HRwkvvjtQ_c0010.8120.9600.890
v_0kUtTtmLaJA_c0040.8100.9500.895
v_0kUtTtmLaJA_c0080.8090.9690.882
v_0kUtTtmLaJA_c0100.8070.9700.893
v_ITo3sCnpw_k_c0100.8040.9140.894
v_0kUtTtmLaJA_c0070.8010.9600.868
v_i2_L4qquVg0_c0100.7960.9360.905
v_BgwzTUxJaeU_c0140.7910.9480.878
v_i2_L4qquVg0_c0070.7910.9210.898
v_ITo3sCnpw_k_c0120.7900.9280.906
v_00HRwkvvjtQ_c0050.7890.9500.870
v_00HRwkvvjtQ_c0080.7880.9590.864
v_BgwzTUxJaeU_c0080.7810.9590.845
v_5ekaksddqrc_c0010.7770.9600.876
v_0kUtTtmLaJA_c0050.7760.9400.862
v_i2_L4qquVg0_c0090.7740.9160.873
v_00HRwkvvjtQ_c0110.7730.9490.855
v_ITo3sCnpw_k_c0110.7730.9150.872
v_0kUtTtmLaJA_c0060.7710.9380.862
v_i2_L4qquVg0_c0060.7660.9110.879
v_9MHDmAMxO5I_c0090.7600.9110.844
v_9MHDmAMxO5I_c0020.7520.9400.849
v_00HRwkvvjtQ_c0070.7520.9380.846
v_BgwzTUxJaeU_c0120.7460.9380.841
v_9MHDmAMxO5I_c0030.7430.9100.819
v_ITo3sCnpw_k_c0070.7340.8780.835
v_9MHDmAMxO5I_c0060.7270.9100.791
v_G-vNjfx1GGc_c6000.7230.9520.869
v_G-vNjfx1GGc_c6010.6490.8780.724
v_9MHDmAMxO5I_c0040.6330.7820.704

Benchmark — test split (performance only)

Measured on the full SportsMOT test split (150 sequences, 94,835 frames), staged as two mutually exclusive halves to fit Kaggle's kernel-output cap. The test split has no public ground truth (withheld for the SportsMOT challenge server), so no accuracy metrics are possible here — see the val-split benchmark above for those.

metric (Tesla T4)value
throughput (batched x8, fp16 autocast, 4-thread prefetch)28.0 fps (GPU-timed) · 26.5 fps wall-clock
single-image latency (batch 1, fp16, 300-frame probe)mean 74.4 ms · p50 62.5 · p90 68.1 · p99 90.1
detections per frame (conf ≥ 0.5)mean 10.2 · p50 10 · max 23
mean confidence of detections0.920
model load time5.2 s

Environment & method — the assumptions these numbers were measured under:

GPUTesla T4 (sm_75, 15.6 GB)
Softwaretorch 2.10.0+cu128 · CUDA 12.8 · transformers 5.0.0 · Python 3.12.13
CPU4 vCPUs (image decode / prefetch)
Batching & precision8 images per forward, fp16 autocast (fp32 weights)
Parallelism4-thread image prefetch; part-2 tar extracted in a background thread during part-1 compute
Timing scopeCUDA-synchronized: preprocess + forward + postprocess per batch
Latency probeseparate batch-1 pass over the first 300 frames
Inputsframe stride 1, confidence ≥ 0.5

Pipeline & reproducibility

This model was trained, evaluated, and benchmarked end-to-end on Kaggle's free tier, orchestrated from the HuggingFace workspace repository (staging → smoketest → run for each stage). The benchmark sections of this card are written by the evaluation/testing kernels themselves and update in place on re-runs.

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

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

GPU в ailist

Универсальный рантайм · transformers · object-detection

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

Доступ к модели ограничен автором; у платформы нет доступа к весам.

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

0 моделей