detection.py 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. """
  2. 检测配置
  3. 注意:系统当前仅保留人体检测配置,安全帽/反光衣等安全检测配置已移除。
  4. """
  5. import platform
  6. def _default_model():
  7. """根据平台选择默认检测模型"""
  8. system = platform.system()
  9. machine = platform.machine()
  10. if system == 'Linux' and machine == 'aarch64':
  11. # RK3588 / ARM64 NPU
  12. # 使用 yolo26n end2end RKNN(单输出 1x300x6,x1/y1/x2/y2/conf/cls)
  13. return '/home/admin/dsh/testrk3588/yolo26n_end2end.rknn', 'rknn'
  14. elif system == 'Darwin':
  15. # macOS 本地测试:使用 yolo11n.pt,Ultralytics 会自动下载
  16. return '/Users/wenhongquan/Desktop/阿里云同步/项目/dnn/sb/model/yolo11n.pt', 'yolo'
  17. else:
  18. # x86 Linux 等
  19. return '/home/wen/dsh/yolo/yolo11n.pt', 'yolo'
  20. _MODEL_PATH, _MODEL_TYPE = _default_model()
  21. # 人体检测配置(用于 panorama_camera.ObjectDetector,多组模式)
  22. DETECTION_CONFIG = {
  23. 'target_classes': ['person'], # 检测目标类别 (支持中英文)
  24. 'confidence_threshold': 0.45, # 置信度阈值(yolo26n end2end 内置 NMS)
  25. 'detection_fps': 2, # 检测帧率(每秒检测帧数),替代原来的detection_interval
  26. 'detection_interval': 4, # 兼容保留:检测间隔(秒),当detection_fps=2时间隔为0.5秒
  27. # 检测图片保存配置
  28. 'save_detection_image': False, # 是否保存检测到人的图片
  29. 'detection_image_dir': '/home/admin/dsh/detection_images', # 图片保存目录
  30. # 配对图片保存配置(全景+球机图片归入同一目录)
  31. 'enable_paired_saving': True, # 是否启用配对图片保存
  32. 'paired_image_dir': '/home/admin/dsh/paired_images', # 配对图片保存目录
  33. 'paired_time_window': 5.0, # 批次时间窗口(秒),同一窗口内的检测归为一批
  34. # 默认人体检测模型
  35. 'model_path': _MODEL_PATH,
  36. 'model_type': _MODEL_TYPE, # 模型类型: 'rknn', 'yolo', 'onnx'
  37. 'use_gpu': True, # 是否使用 GPU / NPU
  38. # 人体检测后处理阈值
  39. 'person_threshold': 0.45, # 进入联动跟踪的人体置信度阈值
  40. # RKNN/ONNX 模型类别映射(yolo26n COCO80:0=person)
  41. 'class_map': {0: 'person'},
  42. }