detection.py 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. """
  2. 检测配置
  3. """
  4. # 检测配置
  5. DETECTION_CONFIG = {
  6. 'target_classes': ['person', '人'], # 检测目标类别 (支持中英文)
  7. 'confidence_threshold': 0.5, # 置信度阈值
  8. 'detection_interval': 0.1, # 检测间隔(秒)
  9. # RK3588 平台使用 RKNN 安全检测模型 (包含人体检测)
  10. # 类别映射: 0=安全帽, 3=人, 4=反光衣
  11. 'model_path': '/home/admin/dsh/testrk3588/yolo11m_safety.rknn',
  12. 'model_type': 'rknn', # 模型类型: 'rknn', 'yolo', 'onnx'
  13. 'use_gpu': False, # RKNN 使用 NPU,不依赖 GPU
  14. # 安全检测模型的类别映射
  15. 'class_map': {
  16. 0: '安全帽',
  17. 3: '人',
  18. 4: '反光衣'
  19. },
  20. 'person_class_id': 3, # 人员在模型中的类别ID
  21. 'person_threshold': 0.8, # 人员检测置信度阈值
  22. }
  23. # 安全检测模型配置
  24. SAFETY_DETECTION_CONFIG = {
  25. # 模型路径 - 支持三种格式:
  26. # - YOLO: .pt 文件, 使用 ultralytics
  27. # - RKNN: .rknn 文件, 使用 rknnlite (RK3588 平台)
  28. # - ONNX: .onnx 文件, 使用 onnxruntime
  29. 'model_path': '/home/admin/dsh/testrk3588/yolo11m_safety.rknn',
  30. 'model_type': 'rknn', # 模型类型: 'auto', 'yolo', 'rknn', 'onnx'
  31. 'use_gpu': False, # RKNN 使用 NPU,不依赖 GPU
  32. 'conf_threshold': 0.5, # 一般物品置信度阈值 (安全帽、反光衣)
  33. 'person_threshold': 0.8, # 人员检测置信度阈值
  34. # 检测类别映射
  35. 'class_map': {
  36. 0: '安全帽',
  37. 3: '人',
  38. 4: '反光衣'
  39. },
  40. # 检测间隔
  41. 'detection_interval': 0.1, # 检测间隔(秒)
  42. # 告警控制
  43. 'alert_cooldown': 3.0, # 同一目标告警冷却时间(秒)
  44. 'max_alerts_per_minute': 10, # 每分钟最大告警数
  45. }