高級功能與追蹤
本章節詳細介紹系統的自動追蹤功能,包括顏色追蹤、人臉追蹤、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/:各種目標偵測器

