ptz.py 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. """
  2. PTZ控制配置
  3. """
  4. # PTZ控制配置
  5. PTZ_CONFIG = {
  6. 'default_zoom': 5, # 默认变焦倍数(视野更宽,便于先看到人)
  7. 'max_zoom': 20, # 最大变焦倍数
  8. 'move_speed': 4, # 移动速度 (1-8)
  9. 'coordinate_offset': (0, 0), # 坐标偏移校准(仅用于线性映射后备)
  10. 'tilt_offset': 25, # tilt偏移(度),正值=向下补偿,负值=向上补偿
  11. 'pan_offset': 0, # pan固定偏移(度),已被边缘曲线补偿替代
  12. 'pan_edge_offset': 25, # pan边缘补偿幅度(度),边缘处最大补偿
  13. 'pan_curve_power': 2.0, # pan边缘曲线指数,>1时边缘补偿更大、中间更小
  14. # tilt线性映射参数(覆盖校准查找表的tilt,因为查找表tilt数据不稳定)
  15. 'tilt_linear_enabled': True, # 是否使用线性tilt映射替代查找表
  16. 'tilt_y0': 13, # 经 RK3588 实测微调:y=0(画面上方/远处)略向上,使人头/上半身不被切出画面
  17. 'tilt_y1': -5, # y_ratio=1时对应的tilt角度
  18. 'tilt_curve_power': 0.8, # tilt曲线指数,>0.5中间区域tilt更大
  19. # 视野角度配置 (根据实际摄像头参数设置)
  20. # 默认值按水平安装、全景覆盖前方 180° 设置:
  21. # x=0 -> pan=-90, x=0.5 -> pan=0, x=1 -> pan=+90
  22. 'pan_range': (-90, 90), # 水平视野范围 (度)
  23. 'tilt_range': (-5, 20), # 垂直视野范围 (度)
  24. 'pan_center': 0, # 水平中心角度 (画面中心对应的PTZ角度)
  25. 'tilt_center': 7, # 垂直中心角度
  26. # 球机安装方向配置
  27. # mount_type: 'ceiling' - 吸顶/吊装(镜头朝下), 'wall' - 壁装/立杆(镜头水平/朝下看)
  28. 'mount_type': 'ceiling',
  29. # 方向修正(根据实际安装方向调整)
  30. # pan_flip: 如果球机与全景朝向相反(球机看后面),设为True
  31. # tilt_flip: 如果俯仰方向相反,设为True
  32. 'pan_flip': False,
  33. 'tilt_flip': False,
  34. # 自动校准扫描范围(完整 360° 粗扫 + 每步由下朝上细扫)
  35. 'overlap_pan_range': (0, 360), # 完整水平扫描
  36. 'overlap_tilt_range': (-35, 45), # 更广的 tilt 范围,覆盖竖装+倒影场景
  37. 'overlap_pan_step': 20,
  38. 'overlap_tilt_step': 10,
  39. # 球机端人体检测与自动对焦配置
  40. 'enable_ptz_detection': False, # 是否启用球机端人体检测
  41. 'auto_zoom': {
  42. 'enabled': True, # 是否启用自动变焦
  43. 'target_size_ratio': 0.2, # 目标人体占画面比例(提高以获得更近的图像)
  44. 'min_zoom': 6, # 最小变倍(提高以获得更清晰的图像)
  45. 'max_zoom': 20, # 最大变倍
  46. 'zoom_step': 2, # 变焦调整步长
  47. 'center_threshold': 0.15, # 居中阈值 (人体中心偏离画面中心的比例)
  48. 'max_adjust_attempts': 3, # 最大调整次数
  49. },
  50. # 抓拍优化配置
  51. 'capture': {
  52. 'stabilize_time': 3.0, # PTZ到位后稳定等待时间(秒),增加以确保球机完全停止
  53. 'frame_wait_interval': 0.2, # 获取帧的等待间隔(秒)
  54. 'frame_max_attempts': 8, # 获取帧的最大尝试次数
  55. 'min_clarity': 200, # 最小清晰度阈值(拉普拉斯方差),提高以确保清晰
  56. },
  57. }