🧪 新教程持續更新中 · 由機械臂到傳感器,跟隨教程從零搭建
跳到主要內容

高級功能與追蹤 ​

淘寶店鋪

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