高级功能与追踪
本章节详细介绍系统的自动追踪功能,包括颜色追踪、人脸追踪、QR码追踪,以及目标锁定机制和参数调优。
自动追踪模式概述
系统支持三种自动追踪模式:
- 颜色追踪:追踪指定颜色的物体
- 人脸追踪:追踪人脸
- QR码追踪:追踪QR码
颜色追踪
颜色选择
系统支持多种颜色的追踪:
- 红色
- 绿色
- 蓝色 在程序中可以通过按键切换颜色:
X:选择红色Y:选择绿色Z:选择蓝色
颜色追踪使用流程
- 按
C连接云台 - 按
2进入颜色追踪模式 - 将目标颜色物体放在画面中央
- 按
T锁定目标 - 移动目标,观察云台跟随效果
简单的颜色追踪示例
你也可以使用简单的颜色追踪示例程序:
python
python examples/04_color_track_simple.py --camera 0 --port COM3 --color red此程序提供了最基础的颜色追踪功能,适合学习。
人脸追踪
人脸追踪原理
系统使用 OpenCV 的 Haar 级联分类器进行人脸检测。在检测到人脸后,系统将自动计算目标位置并控制云台跟随。
人脸追踪使用流程
- 按
C连接云台 - 按
1进入人脸追踪模式 - 将人脸放在画面中央
- 按
T锁定目标 - 移动人脸,云台会自动跟随
提高人脸检测成功率的建议
- 保持光照充足,避免背光
- 人脸正面朝向摄像头
- 保持适当距离(建议1-3米)
- 避免多人脸场景,或使用锁定机制固定追踪目标
QR码追踪
QR码追踪模式利用 OpenCV 的 QRCodeDetector 进行 QR码识别和定位。使用方法与前两种追踪模式类似:
- 连接云台,进入 QR码追踪模式
- 将 QR码放在画面中央,按
T锁定 - 移动 QR码,观察云台跟随效果
目标锁定机制
锁定的作用
目标锁定机制是系统的关键功能,它的作用包括:
- 记录锁定时目标的中心位置和大小
- 在出现多个目标时,优先选择距离锁定点最近的目标
- 防止目标频繁跳变,保持追踪的稳定性
锁定流程
- 将目标物体放在画面中央
- 按
T进行锁定 - 锁定成功后,系统将优先追踪与锁定时最相似的目标
- 按
S可取消锁定,停止追踪
锁定时的选择逻辑
系统在锁定后的目标选择时,会综合考虑两个因素:
- 距离:目标中心距离锁定点的远近(权重 70%)
- 大小:目标大小与锁定时的相似程度(权重 30%)
- 系统会选择综合得分最高的目标进行追踪
追踪控制参数调优
在 src/trackers/tracking_controller.py 中,有以下可调参数:
| 参数名 | 默认值 | 说明 |
|---|---|---|
| kp_pan | 0.08 | 左右追踪的比例增益 |
| kp_tilt | 0.12 | 上下追踪的比例增益 |
| dead_zone | 30 | 死区范围(像素),在此范围内不移动云台 |
| min_move_interval | 0.15 | 最小移动间隔(秒),限制云台运动频率 |
参数调整方法
- 追踪太慢:增大
kp_pan和kp_tilt - 追踪过灵敏导致抖动:减小
kp_pan和kp_tilt,或增大min_move_interval,或增大dead_zone - 频繁微调整导致抖动:增大
dead_zone - 方向反了:修改
calculate_move方法中delta_pan或delta_tilt的符号
追踪使用的完整示例
以下是一个完整的使用流程示例:
- 启动程序:
python
python examples/auto_tracking_demo.py --camera 0 --port COM3 --color red- 按
C连接云台 - 按
2选择颜色追踪模式 - 将红色物体放在画面中央
- 按
T锁定目标 - 移动物体,观察云台跟随效果
- 如需换绿色,按
Y后重新按T锁定 - 按
S停止追踪,按R回中 - 按
Q退出
进阶开发提示
如需自定义功能或进行二次开发,可以参考:
src/sc_servo.py:舵机通信底层src/gimbal.py:云台控制src/trackers/tracking_controller.py:追踪控制器src/detectors/:各种目标检测器

