|
|
# 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`
|
|
|
|
|
|
После сборки образ рассчитан на запуск без интернета.
|