🧪 新教程持续更新中 · 从机械臂到传感器,跟着教程从零搭建
跳到主要内容

高级功能与追踪 ​

淘宝店铺

本章节详细介绍系统的自动追踪功能,包括颜色追踪、人脸追踪、QR码追踪,以及目标锁定机制和参数调优。


自动追踪模式概述 ​

系统支持三种自动追踪模式:

  1. 颜色追踪:追踪指定颜色的物体
  2. 人脸追踪:追踪人脸
  3. QR码追踪:追踪QR码

颜色追踪 ​

颜色选择 ​

系统支持多种颜色的追踪:

  • 红色
  • 绿色
  • 蓝色 在程序中可以通过按键切换颜色:
  • X:选择红色
  • Y:选择绿色
  • Z:选择蓝色

颜色追踪使用流程 ​

  1. 按 C 连接云台
  2. 按 2 进入颜色追踪模式
  3. 将目标颜色物体放在画面中央
  4. 按 T 锁定目标
  5. 移动目标,观察云台跟随效果

简单的颜色追踪示例 ​

你也可以使用简单的颜色追踪示例程序:

python
python examples/04_color_track_simple.py --camera 0 --port COM3 --color red

此程序提供了最基础的颜色追踪功能,适合学习。


人脸追踪 ​

人脸追踪原理 ​

系统使用 OpenCV 的 Haar 级联分类器进行人脸检测。在检测到人脸后,系统将自动计算目标位置并控制云台跟随。

人脸追踪使用流程 ​

  1. 按 C 连接云台
  2. 按 1 进入人脸追踪模式
  3. 将人脸放在画面中央
  4. 按 T 锁定目标
  5. 移动人脸,云台会自动跟随

提高人脸检测成功率的建议 ​

  • 保持光照充足,避免背光
  • 人脸正面朝向摄像头
  • 保持适当距离(建议1-3米)
  • 避免多人脸场景,或使用锁定机制固定追踪目标

QR码追踪 ​

QR码追踪模式利用 OpenCV 的 QRCodeDetector 进行 QR码识别和定位。使用方法与前两种追踪模式类似:

  1. 连接云台,进入 QR码追踪模式
  2. 将 QR码放在画面中央,按 T 锁定
  3. 移动 QR码,观察云台跟随效果

目标锁定机制 ​

锁定的作用 ​

目标锁定机制是系统的关键功能,它的作用包括:

  • 记录锁定时目标的中心位置和大小
  • 在出现多个目标时,优先选择距离锁定点最近的目标
  • 防止目标频繁跳变,保持追踪的稳定性

锁定流程 ​

  1. 将目标物体放在画面中央
  2. 按 T 进行锁定
  3. 锁定成功后,系统将优先追踪与锁定时最相似的目标
  4. 按 S 可取消锁定,停止追踪

锁定时的选择逻辑 ​

系统在锁定后的目标选择时,会综合考虑两个因素:

  • 距离:目标中心距离锁定点的远近(权重 70%)
  • 大小:目标大小与锁定时的相似程度(权重 30%)
  • 系统会选择综合得分最高的目标进行追踪

追踪控制参数调优 ​

在 src/trackers/tracking_controller.py 中,有以下可调参数:

参数名默认值说明
kp_pan0.08左右追踪的比例增益
kp_tilt0.12上下追踪的比例增益
dead_zone30死区范围(像素),在此范围内不移动云台
min_move_interval0.15最小移动间隔(秒),限制云台运动频率

参数调整方法 ​

  • 追踪太慢:增大 kp_pan 和 kp_tilt
  • 追踪过灵敏导致抖动:减小 kp_pan 和 kp_tilt,或增大 min_move_interval,或增大 dead_zone
  • 频繁微调整导致抖动:增大 dead_zone
  • 方向反了:修改 calculate_move 方法中 delta_pan 或 delta_tilt 的符号

追踪使用的完整示例 ​

以下是一个完整的使用流程示例:

  1. 启动程序:
python
python examples/auto_tracking_demo.py --camera 0 --port COM3 --color red
  1. 按 C 连接云台
  2. 按 2 选择颜色追踪模式
  3. 将红色物体放在画面中央
  4. 按 T 锁定目标
  5. 移动物体,观察云台跟随效果
  6. 如需换绿色,按 Y 后重新按 T 锁定
  7. 按 S 停止追踪,按 R 回中
  8. 按 Q 退出

进阶开发提示 ​

如需自定义功能或进行二次开发,可以参考:

  • src/sc_servo.py:舵机通信底层
  • src/gimbal.py:云台控制
  • src/trackers/tracking_controller.py:追踪控制器
  • src/detectors/:各种目标检测器