You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

3.7 KiB

FPV Tracker Optimized

Русская документация для проекта сопровождения и удержания воздушной цели на базе YOLO + ByteTrack + Kalman + KLT.

Проект умеет:

  • принимать видео с файла, камеры, RTSP и UDP-потока;
  • обнаруживать и сопровождать цель;
  • удерживать цель при кратковременной потере детекции;
  • строить команды наведения в экранных координатах;
  • экспортировать команды в json, mavlink, msp и испытательный proto_udp;
  • работать локально или в Docker с GPU.

Быстрый старт

Локальный запуск

  1. Установите Python 3.12 и зависимости.
  2. Проверьте, что модель best.pt лежит в корне проекта.
  3. Настройте SOURCE и MODEL_PATH в config.py.
  4. При необходимости настройте backend в config_intercept.py.
  5. Запустите:
python main.py

Docker-запуск

  1. Установите Docker.
  2. Для GPU установите NVIDIA Container Toolkit на хосте.
  3. Соберите образ:
docker compose build
  1. Запустите:
docker compose up

Комплект документации

Что является точкой входа

Основной runtime проекта запускается через:

python main.py

В проекте нет полноценного CLI с аргументами командной строки. Конфигурация задается:

  • напрямую через config.py;
  • напрямую через config_intercept.py;
  • через env-переменные, если проект запускается в контейнере или через shell.

Основные файлы

  • main.py — основной цикл обработки видео.
  • config.py — настройки источника, детектора, трекинга, ROI и вывода.
  • config_intercept.py — настройки наведения, range/PN/FSM и backend'ов.
  • guidance.py — экранный guidance и экспорт guidance_state.json.
  • autopilot_bridge.py — отправка команд наружу.
  • runtime_env.py — env-overrides для контейнера и shell-запуска.
  • bytetrack_min_aggressive.py — локальная реализация ByteTrack.

Что генерируется во время работы

В зависимости от настроек проект может создавать:

  • out_infer_*.mp4 — видео с наложениями;
  • track_log_*.csv — покадровый лог;
  • track_summary_*.json — сводка по прогону;
  • guidance_state.json — текущее состояние guidance;
  • autopilot_cmd.json — команды автопилота при backend json.

Статус Docker-упаковки

В проекте уже подготовлены:

  • Dockerfile
  • docker-compose.yml
  • docker/entrypoint.sh
  • requirements-docker.txt

После сборки образ рассчитан на запуск без интернета.