Разработка системы трекинга объектов на видео (Object Tracking)

Проектируем и внедряем системы искусственного интеллекта: от прототипа до production-ready решения. Наша команда объединяет экспертизу в машинном обучении, дата-инжиниринге и MLOps, чтобы AI работал не в лаборатории, а в реальном бизнесе.
Показано 1 из 1 услугВсе 1566 услуг
Разработка системы трекинга объектов на видео (Object Tracking)
Средняя
от 1 недели до 3 месяцев
Часто задаваемые вопросы
Направления AI-разработки
Этапы разработки AI-решения
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1240
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1167
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    867
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1084
  • image_logo-advance_0.png
    Разработка логотипа компании B2B Advance
    563
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    829

Разработка системы трекинга объектов на видео (Object Tracking)

Трекинг — задача следования за конкретным объектом через последовательность кадров с сохранением идентичности. Если детекция отвечает на вопрос «что и где на кадре», то трекинг добавляет «это тот же объект, что и в предыдущих кадрах». Применения: подсчёт людей пересекающих линию, анализ траекторий в магазине, управление в системах автономного вождения, спортивная аналитика.

Алгоритмы трекинга

SORT (Simple Online and Realtime Tracking) — базовый алгоритм: Калман-фильтр для предсказания положения + IoU matching для ассоциации. Быстрый, но теряет объект при перекрытиях.

DeepSORT — SORT + ReID (Re-Identification): deep appearance features для ассоциации по внешнему виду, не только по пространственному положению. Лучше справляется с перекрытиями.

ByteTrack — текущий state-of-the-art для общих задач. Использует все детекции (включая низкоуверенные) для ассоциации:

from ultralytics import YOLO

model = YOLO('yolov8l.pt')

# Трекинг встроен в Ultralytics
results = model.track(
    source='video.mp4',
    tracker='bytetrack.yaml',
    persist=True,            # сохранять трек-IDs между кадрами
    conf=0.3,
    iou=0.5
)

for result in results:
    boxes = result.boxes
    for box in boxes:
        track_id = box.id.item()  # уникальный ID объекта
        x1, y1, x2, y2 = box.xyxy[0]

BoT-SORT — ByteTrack + camera motion compensation + ReID. Лучшие результаты на MOT17 benchmark: HOTA 77.8.

StrongSORT — ещё более агрессивная ReID интеграция, лучше для задач с длительными перекрытиями.

ReID модели

ReID-модель извлекает embedding внешнего вида объекта. При потере трека система ищет его по similarity в embeddings:

import torchreid

# Загрузка ReID модели
model = torchreid.models.build_model(
    name='osnet_x1_0',
    num_classes=751,  # Market-1501
    pretrained=True
)

def extract_appearance_features(crop: np.ndarray) -> np.ndarray:
    tensor = preprocess_crop(crop)
    with torch.no_grad():
        features = model(tensor)
    return features.cpu().numpy()

Метрика ReID: mAP и Rank-1 на Market-1501 / DukeMTMC. OSNet-x1.0: Rank-1 94.8%, mAP 84.9% на Market-1501.

Анализ траекторий

После трекинга строим аналитику по траекториям:

class TrajectoryAnalyzer:
    def __init__(self):
        self.tracks = {}  # track_id -> list of (frame, x, y)

    def update(self, track_id, frame_num, cx, cy):
        if track_id not in self.tracks:
            self.tracks[track_id] = []
        self.tracks[track_id].append((frame_num, cx, cy))

    def count_line_crossings(self, line: tuple, direction='both') -> int:
        """Подсчёт пересечений виртуальной линии"""
        count = 0
        for track in self.tracks.values():
            if self._crosses_line(track, line, direction):
                count += 1
        return count

Метрики качества трекинга

  • HOTA (Higher Order Tracking Accuracy) — основная метрика, балансирует Detection и Association accuracy
  • MOTA (Multiple Object Tracking Accuracy) — учитывает FP, FN, ID switches
  • IDF1 — ID F1 score: насколько хорошо сохраняются ID через время
  • ID Switches — количество смен ID у одного объекта
Алгоритм HOTA MOT17 MOTA ID Switches
SORT 55.1 63.3 4852
DeepSORT 61.2 71.4 1821
ByteTrack 77.3 80.3 2196
BoT-SORT 77.8 80.5 1871
Масштаб системы Срок
Трекинг 1 класса, 1–4 камеры 2–3 недели
Мультикласс, анализ траекторий 4–6 недель
Долгосрочный ReID трекинг (re-enter) 6–10 недель