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.

2.2 KiB

Docker Runtime

Что собирается

Один GPU-образ для fpv_tracker_optimized с уже встроенными:

  • torch + torchvision для CUDA 12.8
  • ultralytics
  • opencv
  • pymavlink
  • pyserial
  • моделью best.pt
  • локальным bytetrack_min_aggressive.py

После сборки контейнер может запускаться без интернета.

Сборка

docker compose build

Запуск

docker compose up

Основные env-переменные

  • FPV_SOURCE Примеры: "0", "rtsp://192.168.1.10:8554/live", "udp://@0.0.0.0:5600", "/data/input/test.mp4"
  • FPV_MODEL_PATH
  • FPV_SHOW_OUTPUT
  • FPV_SAVE_INFER_VIDEO
  • FPV_OUT_VIDEO_PATH
  • FPV_GUIDANCE_EXPORT_ENABLE
  • FPV_GUIDANCE_EXPORT_PATH
  • FPV_AUTOPILOT_ENABLE
  • FPV_AUTOPILOT_BACKEND Значения: json, mavlink, msp, proto_udp

Испытательный UDP-протокол

Включение:

FPV_AUTOPILOT_BACKEND: "proto_udp"
FPV_PROTO_UDP_ENABLE: "1"
FPV_PROTO_UDP_HOST: "192.168.1.50"
FPV_PROTO_UDP_PORT: "5005"

Пакет отправляется в формате little-endian:

<BBBhhbbB
descriptor
object_id
target_state
offset_y_px
offset_x_px
offset_y_pct
offset_x_pct
bbox_area_pct

target_state:

  • 0 — цели нет
  • 1 — цель есть и идет по детекции
  • 3 — детекция пропала, работает трекинг/удержание

Важные замечания

  • Для GPU нужен установленный NVIDIA Container Toolkit на хосте.
  • На Linux USB-камера обычно пробрасывается как /dev/video0.
  • На Windows Docker Desktop прямой доступ Linux-контейнера к обычной webcam часто недоступен. В этом случае лучше использовать RTSP, UDP или внешний capture-источник, который виден контейнеру как сеть.
  • SHOW_OUTPUT=1 внутри headless-контейнера обычно не нужен. По умолчанию он выключен.