|
|
# Поиск и устранение проблем
|
|
|
|
|
|
## 1. Не открывается источник видео
|
|
|
|
|
|
Симптом:
|
|
|
|
|
|
- `Capture open failed`
|
|
|
|
|
|
Проверки:
|
|
|
|
|
|
1. Верный ли `SOURCE`.
|
|
|
2. Для камеры: правильный ли индекс `0`, `1`, `2`.
|
|
|
3. Для RTSP: доступен ли поток из этой сети.
|
|
|
4. Для UDP: идет ли поток на указанный порт.
|
|
|
5. Для файла: существует ли путь и читается ли файл.
|
|
|
|
|
|
## 2. Проект запускается, но не использует GPU
|
|
|
|
|
|
Проверки:
|
|
|
|
|
|
1. Установлен ли GPU-вариант `torch`.
|
|
|
2. Совместимы ли версия CUDA и wheel `torch`.
|
|
|
3. Видит ли Python CUDA:
|
|
|
|
|
|
```python
|
|
|
import torch
|
|
|
print(torch.cuda.is_available())
|
|
|
```
|
|
|
|
|
|
4. Не стоит ли CPU-only wheel.
|
|
|
|
|
|
## 3. В Docker нет GPU
|
|
|
|
|
|
Симптом:
|
|
|
|
|
|
- внутри контейнера `torch.cuda.is_available() == False`
|
|
|
|
|
|
Проверки:
|
|
|
|
|
|
1. Установлен ли NVIDIA драйвер на хосте.
|
|
|
2. Установлен ли NVIDIA Container Toolkit.
|
|
|
3. Поддерживает ли ваш Docker runtime `gpus: all`.
|
|
|
4. Не запущен ли контейнер на машине без доступной NVIDIA GPU.
|
|
|
|
|
|
## 4. В Docker не видна обычная webcam на Windows
|
|
|
|
|
|
Это типичная проблема Windows Docker Desktop.
|
|
|
|
|
|
Практические варианты:
|
|
|
|
|
|
- использовать RTSP;
|
|
|
- использовать UDP-видеопоток;
|
|
|
- использовать внешний capture-процесс вне контейнера;
|
|
|
- запускать локально на Windows без Docker.
|
|
|
|
|
|
## 5. Есть видео, но нет детекций
|
|
|
|
|
|
Проверки:
|
|
|
|
|
|
1. Тот ли `MODEL_PATH`.
|
|
|
2. Совместима ли модель с текущим кодом.
|
|
|
3. Правильный ли `TARGET_CLASS_ID`.
|
|
|
4. Не слишком ли высокий `CONF`.
|
|
|
5. Реально ли цель различима на этом разрешении.
|
|
|
|
|
|
## 6. Появляются детекции, но guidance не следует за ними
|
|
|
|
|
|
Важно:
|
|
|
|
|
|
- guidance строится не по "любой текущей рамке YOLO", а по выбранному lock/tracker state;
|
|
|
- при miss может работать удержание через Kalman/KLT;
|
|
|
- статус `HOLD` и `REACQ` означают, что проект находится не в чистой детекции.
|
|
|
|
|
|
Проверки:
|
|
|
|
|
|
1. Что в overlay пишется в строках `miss`, `KLT valid`, `G HOLD` или `G REACQ`.
|
|
|
2. Есть ли свежий `track_log_*.csv`.
|
|
|
3. Не слишком ли жесткие условия handoff/switch.
|
|
|
|
|
|
## 7. Не создается `guidance_state.json`
|
|
|
|
|
|
Проверки:
|
|
|
|
|
|
1. Включен ли `GUIDANCE_EXPORT_ENABLE`.
|
|
|
2. Есть ли права на запись в каталог.
|
|
|
3. Не держит ли файл другой процесс.
|
|
|
|
|
|
Если в логах есть:
|
|
|
|
|
|
```text
|
|
|
Permission denied: guidance_state.json.tmp
|
|
|
```
|
|
|
|
|
|
это обычно означает, что файл временно заблокирован другим процессом или watcher'ом.
|
|
|
|
|
|
## 8. Не работает `proto_udp`
|
|
|
|
|
|
Проверки:
|
|
|
|
|
|
1. `AUTOPILOT_BACKEND = "proto_udp"`
|
|
|
2. `PROTO_UDP_ENABLE = True`
|
|
|
3. Правильные ли `HOST` и `PORT`
|
|
|
4. Видит ли сеть UDP-пакеты
|
|
|
5. Совпадает ли формат пакета с приемником
|
|
|
|
|
|
Практическая проверка:
|
|
|
|
|
|
- поднимите простой UDP listener;
|
|
|
- убедитесь, что приходят пакеты при наличии цели.
|
|
|
|
|
|
## 9. Не работает `mavlink`
|
|
|
|
|
|
Проверки:
|
|
|
|
|
|
1. Установлен ли `pymavlink`
|
|
|
2. Верный ли `MAVLINK_CONNECTION`
|
|
|
3. Доступен ли endpoint
|
|
|
4. Нет ли firewall/маршрутизации, блокирующих UDP
|
|
|
|
|
|
## 10. Не работает `msp`
|
|
|
|
|
|
Проверки:
|
|
|
|
|
|
1. Установлен ли `pyserial`
|
|
|
2. Верный ли `MSP_PORT`
|
|
|
3. Верный ли `MSP_BAUD`
|
|
|
4. Есть ли права доступа к порту
|
|
|
|
|
|
## 11. Видео не пишется
|
|
|
|
|
|
Проверки:
|
|
|
|
|
|
1. `SAVE_INFER_VIDEO = True`
|
|
|
2. Каталог записи существует
|
|
|
3. OpenCV может открыть `VideoWriter`
|
|
|
4. Кодек `mp4v` поддерживается в вашей среде
|
|
|
|
|
|
## 12. Проект слишком медленный
|
|
|
|
|
|
Проверки:
|
|
|
|
|
|
1. Есть ли GPU.
|
|
|
2. Не работает ли все на CPU.
|
|
|
3. Не слишком ли тяжелый full-frame режим.
|
|
|
4. Не включены ли лишние debug-наложения.
|
|
|
5. Не используется ли `SHOW_OUTPUT` там, где окно не нужно.
|
|
|
|
|
|
## 13. Сборка Docker слишком тяжелая
|
|
|
|
|
|
В проекте уже добавлен `.dockerignore`, который исключает:
|
|
|
|
|
|
- `cvat/`
|
|
|
- `dataset_prep/`
|
|
|
- видео
|
|
|
- старые логи
|
|
|
- архивы
|
|
|
|
|
|
Если сборка все равно тяжелая, проверьте:
|
|
|
|
|
|
1. не лежат ли рядом новые большие файлы, не попавшие в ignore;
|
|
|
2. не добавлены ли лишние каталоги в build context.
|
|
|
|
|
|
## 14. Что сделать перед обращением к разработчику
|
|
|
|
|
|
Подготовьте:
|
|
|
|
|
|
1. какой источник видео использовался;
|
|
|
2. локальный запуск или Docker;
|
|
|
3. backend команд;
|
|
|
4. последние `track_log_*.csv` и `track_summary_*.json`;
|
|
|
5. скриншот overlay;
|
|
|
6. точный текст ошибки.
|