Ver Fonte

config: make tracking config platform-aware and consistent

wenhongquan há 1 dia atrás
pai
commit
a3a1744046
1 ficheiros alterados com 49 adições e 26 exclusões
  1. 49 26
      dual_camera_system/config/tracking.py

+ 49 - 26
dual_camera_system/config/tracking.py

@@ -2,38 +2,61 @@
 跟踪与轮询抓拍配置
 """
 
+import platform
+
+from .coordinator import COORDINATOR_CONFIG
+from .ptz import PTZ_CONFIG
+
+
+def _default_model_paths():
+    """根据平台返回默认模型路径。"""
+    system = platform.system()
+    machine = platform.machine()
+
+    if system == 'Linux' and machine == 'aarch64':
+        base = '/home/admin/dsh/model'
+    elif system == 'Linux' and machine == 'x86_64':
+        base = '/home/wen/dsh/model'
+    elif system == 'Darwin':
+        base = '/Users/wenhongquan/Desktop/阿里云同步/项目/dnn/sb/model'
+    else:
+        # 未知平台降级为项目相对路径
+        base = '../model'
+
+    return f'{base}/yolo11.rknn', f'{base}/yolo11n.pt'
+
+
+_MODEL_PATH, _FALLBACK_MODEL_PATH = _default_model_paths()
+
 TRACKING_CONFIG = {
     # 模型配置
-    "model_path": "/Users/wenhongquan/Desktop/阿里云同步/项目/dnn/sb/model/yolo11.rknn",
-    "fallback_model_path": "/Users/wenhongquan/Desktop/阿里云同步/项目/dnn/sb/model/yolo11n.pt",
-    "model_type": "auto",                  # "auto" | "yolo" | "rknn" | "onnx"
-    "use_gpu": True,
+    'model_path': _MODEL_PATH,
+    'fallback_model_path': _FALLBACK_MODEL_PATH,
+    'model_type': 'auto',                  # 'auto' | 'yolo' | 'rknn' | 'onnx'
+    'use_gpu': True,
 
     # 跟踪器
-    "tracker_type": "bytetrack",           # "bytetrack" | "botsort"
-    "max_tracking_targets": 4,
-    "tracking_timeout": 3.0,               # Coordinator 层面:目标多久未更新视为丢失
-    "conf_threshold": 0.5,
-    "person_threshold": 0.5,
-    "max_lost": 30,                        # Tracker 内部参数:跟踪器允许目标丢失多少帧后仍保留 ID
+    'tracker_type': 'bytetrack',           # 'bytetrack' | 'botsort'
+    'max_tracking_targets': COORDINATOR_CONFIG.get('max_tracking_targets', 4),
+    'tracking_timeout': COORDINATOR_CONFIG.get('tracking_timeout', 3.0),
+    'conf_threshold': 0.5,
+    'person_threshold': 0.5,
+    'max_lost': 30,                        # Tracker 内部参数:跟踪器允许目标丢失多少帧后仍保留 ID
 
     # 轮询抓拍
-    "ptz_stabilize_time": 2.0,
-    "ptz_command_cooldown": 0.2,
-    "capture_dir": "/home/admin/dsh/tracking_captures",
-    "save_panorama_pair": True,
-    "max_capture_per_target": 0,           # 0 表示不限制
+    'ptz_stabilize_time': PTZ_CONFIG.get('stabilize_time', 2.0),
+    'ptz_command_cooldown': PTZ_CONFIG.get('command_cooldown', 0.2),
+    'capture_dir': '/home/admin/dsh/tracking_captures',
+    'save_panorama_pair': True,
+    'max_capture_per_target': 0,           # 0 表示不限制
 
     # 目标选择(淘汰策略)
-    "target_selection": {
-        "strategy": "area",
-        "area_weight": 0.6,
-        "confidence_weight": 0.4,
-        "prefer_center": True,
-        "center_weight": 0.2,
-        "min_area_threshold": 2000,
-    },
-
-    # 上传
-    "enable_upload": True,
+    'target_selection': COORDINATOR_CONFIG.get('target_selection', {
+        'strategy': 'area',
+        'area_weight': 0.6,
+        'confidence_weight': 0.4,
+        'prefer_center': True,
+        'center_weight': 0.2,
+        'min_area_threshold': 2000,
+    }),
 }