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.
5.7 KiB
5.7 KiB
Справочник конфигурации
1. Общий принцип
У проекта два основных файла конфигурации:
config.pyconfig_intercept.py
Плюс слой env-overrides:
runtime_env.py
Если проект запускается локально, обычно проще править config.py и config_intercept.py.
Если проект запускается в Docker, лучше использовать env-переменные.
2. Главные параметры config.py
Источник и модель
MODEL_PATH— путь кbest.ptDEVICE— индекс CUDA-устройстваUSE_HALF— half precision на GPUSOURCE— видеофайл, индекс камеры, RTSP или UDPVIDEO_REALTIME— pacing по времени источникаCAP_BACKEND— backend OpenCV для камер
Вывод
SHOW_OUTPUT— показывать окно OpenCVWINDOW_NAME— имя окнаSAVE_INFER_VIDEO— писать выходное видеоOUT_VIDEO_PATH— базовое имя выходного видео
Детектор YOLO
CONFIMG_SIZE_ROIIMG_SIZE_FULLMAX_DETTARGET_CLASS_ID
KLT
KLT_MAX_CORNERSKLT_QUALITYKLT_MIN_DISTKLT_WINKLT_MAX_LEVELKLT_OUTLIER_THRESHKLT_OK_QKLT_OK_PTSKLT_REFRESH_WITH_YOLO
ByteTrack / Kalman
BT_HIGHBT_LOWBT_NEWBT_MATCH_IOUBT_BUFFERBT_MIN_HITSBT_MAX_PREDICT_AGEKALMAN_HOLD_MAX
Guidance
GUIDANCE_ENABLEDRAW_GUIDANCEGUIDANCE_EXPORT_ENABLEGUIDANCE_EXPORT_PATHGUIDANCE_EXPORT_EVERYGUIDANCE_CMD_SMOOTHGUIDANCE_POINT_SMOOTHGUIDANCE_CONF_MINGUIDANCE_OVERRIDE_ENABLEGUIDANCE_OVERRIDE_MISS_GEGUIDANCE_OVERRIDE_TTL
3. Главные параметры config_intercept.py
Range estimation
RANGE_ENABLECAMERA_FOCAL_LENGTH_PXTARGET_KNOWN_SIZE_MRANGE_MIN_APPARENT_SIZE_PXRANGE_MAX_MRANGE_MIN_M
Proportional navigation
PN_ENABLEPN_NAV_GAINPN_AUGMENTEDPN_AUG_GAINPN_MAX_ACCEL_CMD
Intercept FSM
INTERCEPT_FSM_ENABLEFSM_ACQUIRE_RANGE_MFSM_TRACK_CONFIRM_HITSFSM_INTERCEPT_RANGE_MFSM_TERMINAL_TAU_SECFSM_TERMINAL_RANGE_MFSM_LOST_TIMEOUT
Внешние backend'ы
AUTOPILOT_ENABLEAUTOPILOT_BACKENDAUTOPILOT_JSON_PATHAUTOPILOT_JSON_EVERYMAVLINK_CONNECTIONMSP_PORTMSP_BAUD
Испытательный UDP-протокол
PROTO_UDP_ENABLEPROTO_UDP_HOSTPROTO_UDP_PORTPROTO_UDP_DESCRIPTOR
IMM / расширенные модули
IMM_ENABLEIMM_REPLACE_KALMAN
4. Env-переменные, которые реально поддерживаются
Ниже перечислен точный набор env-overrides из runtime_env.py.
Переопределения config.py
FPV_MODEL_PATHFPV_SOURCEFPV_VIDEO_REALTIMEFPV_SHOW_OUTPUTFPV_SAVE_INFER_VIDEOFPV_OUT_VIDEO_PATHFPV_GUIDANCE_EXPORT_ENABLEFPV_GUIDANCE_EXPORT_PATH
Переопределения config_intercept.py
FPV_AUTOPILOT_ENABLEFPV_AUTOPILOT_BACKENDFPV_AUTOPILOT_JSON_PATHFPV_MAVLINK_CONNECTIONFPV_MSP_PORTFPV_PROTO_UDP_ENABLEFPV_PROTO_UDP_HOSTFPV_PROTO_UDP_PORTFPV_PROTO_UDP_DESCRIPTOR
5. Как интерпретируется FPV_SOURCE
Камера
FPV_SOURCE=0
Если строка состоит только из цифр, она будет преобразована в индекс камеры.
RTSP / HTTP / UDP / RTMP
FPV_SOURCE=rtsp://192.168.1.10:8554/live
FPV_SOURCE=udp://@0.0.0.0:5600
Такие источники открываются как поток.
Видео-файл
FPV_SOURCE=/data/input/test.mp4
6. Рекомендуемые пресеты запуска
Отладка на видеофайле
SOURCE= путь к файлуAUTOPILOT_BACKEND = "json"SHOW_OUTPUT = TrueSAVE_INFER_VIDEO = True
Реальный live-поток
SOURCE= камера/RTSP/UDPAUTOPILOT_BACKEND = "json"на первом этапеSHOW_OUTPUTпо ситуации
Испытания протокола
AUTOPILOT_BACKEND = "proto_udp"PROTO_UDP_ENABLE = TruePROTO_UDP_HOSTиPROTO_UDP_PORTпод вашу сеть
7. Что лучше менять через env, а что через файлы
Через env лучше менять:
- источник;
- backend;
- пути к выходным файлам;
- включение UDP-протокола;
- сетевые адреса и порты.
Через config.py и config_intercept.py лучше менять:
- глубокий тюнинг трекера;
- пороги KLT/ByteTrack/Kalman;
- ROI- и recover-параметры;
- параметры PN/FSM;
- экспериментальные флаги.
8. Что не переопределяется через env
На текущий момент через env не вынесены все сотни тюнинговых параметров из config.py.
Это сделано специально, чтобы:
- оставить Docker-конфигурацию компактной;
- не раздувать runtime API;
- не превращать проект в огромный набор shell-параметров.
Если вам нужно контейнерно менять дополнительный параметр, его можно добавить в runtime_env.py.