# 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. Запустите: ```bash python main.py ``` ### Docker-запуск 1. Установите Docker. 2. Для GPU установите NVIDIA Container Toolkit на хосте. 3. Соберите образ: ```bash docker compose build ``` 4. Запустите: ```bash docker compose up ``` ## Комплект документации - [Полный runbook](docs/RUNBOOK_RU.md) - [Архитектура проекта](docs/ARCHITECTURE_RU.md) - [Справочник конфигурации](docs/CONFIG_REFERENCE_RU.md) - [Испытательный UDP-протокол](docs/PROTOCOL_UDP_RU.md) - [Поиск и устранение проблем](docs/TROUBLESHOOTING_RU.md) ## Что является точкой входа Основной runtime проекта запускается через: ```bash 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` После сборки образ рассчитан на запуск без интернета.