【導讀】
目標檢測與追蹤技術是計算機視覺領域最熱門的應用之一,廣泛應用于自動駕駛、交通監控、安全防護等場景。今天我們將帶你一步步實現一個完整的項目,使用YOLOv8 + DeepSORT實現目標檢測、追蹤與速度估算。>>更多資訊可加入CV技術群獲取了解哦
目錄
一、項目簡介
技術選型:
二、項目環境配置
克隆項目代碼
創建虛擬環境并安裝依賴
更輕松的方式:試試 Coovally 平臺?
三、實現流程詳解
文件準備
四、運行檢測與追蹤
五、關鍵代碼解析
初始化 DeepSORT
YOLOv8 目標檢測
繪制邊框與編號
速度估算(單位:km/h)
六、項目效果與結果解讀
七、項目拓展建議
八、總結
一、項目簡介
本項目將實現一個功能完備的系統,具備以下能力:
-
檢測:使用 YOLOv8 快速識別圖像/視頻中的物體;
-
追蹤:用 DeepSORT 對目標進行多幀跟蹤與編號;
-
估速:通過幀間位移計算目標的移動速度;
-
統計:支持計數通過檢測線的車輛數量。
-
技術選型:
-
YOLOv8:最新一代 YOLO 模型,速度快、精度高;
-
DeepSORT:強化版追蹤算法,結合深度特征提高 ID 保持能力。
二、項目環境配置
-
克隆項目代碼
git?clone?https://github.com/Gayathri-Selvaganapathi/vehicle_tracking_counting.git
cd?vehicle_tracking_counting
-
創建虛擬環境并安裝依賴
推薦使用 conda:
conda?create -n env_tracking python=3.8
conda?activate env_tracking
pip?install -r requirements.txt
-
更輕松的方式:試試 Coovally 平臺?
覺得環境配置太繁瑣?代碼跑起來效率太低?Coovally 平臺就是你輕量開發的理想選擇!
Coovally已集成YOLOv8和DeepSORT模型,可直接一鍵調用。
且平臺還內置1000+可一鍵調用的開源模型,覆蓋目標檢測、關鍵點檢測、多模態3D檢測、目標追蹤等各類任務。
-
無需寫代碼:上傳數據集、選擇模型、配置參數、啟動訓練,全部可視化操作!
-
訓練過程實時可視:
準確率、損失曲線、預測圖像一目了然,結果即訓即看,助你快速驗證算法性能!
開發體驗拉滿:
你可以使用自己熟悉的開發工具(如VS Code、Cursor、WindTerm等),通過SSH協議直接連接Coovally云端算力,享受如同本地一樣的實時開發、調試體驗,還能調用強大的GPU環境加速實驗。
三、實現流程詳解
-
文件準備
除 GitHub 項目外,還需額外下載:
-
DeepSORT模型文件(見 README 中的 Google Drive 鏈接);
-
示例視頻文件,用于測試檢測與追蹤效果。
將上述資源分別放入:
-
deep_sort → 模型目錄;
-
data → 視頻文件目錄。
四、運行檢測與追蹤
一行命令啟動全流程:
python detect.py?--source?data/sample_video.mp4?--yolo-model?yolov8?--deep-sort?deep_sort_pytorch?--output?runs/detect
程序會處理視頻、進行檢測與追蹤,并輸出結果視頻到 runs/detect/ 目錄中。
五、關鍵代碼解析
-
初始化 DeepSORT
from?deep_sort.deep_sort?import?DeepSort ?
def?init_tracker(): ? ??
? ??return?DeepSort("deep_sort/model.ckpt", use_cuda=True)
-
YOLOv8 目標檢測
def?detect_objects(frame, model): ? ??
? ? results =?model(frame) ? ?
? ??return?results.xyxy[0]
-
繪制邊框與編號
def?draw_boxes(frame, bbox, identities, names):
? ??for?i, box?in?enumerate(bbox):
? ? ? ? ...
? ? ? ? cv2.rectangle(...)
? ? ? ? cv2.putText(...)
? ??return?frame
-
速度估算(單位:km/h)
def?estimate_speed(coord1, coord2, fps):
? ? d_pixels = np.linalg.norm(np.array(coord2) - np.array(coord1))
? ? d_meters = d_pixels / PIXELS_PER_METER
? ? speed = d_meters * fps *?3.6
? ??return?speed
六、項目效果與結果解讀
輸出效果包括:
-
邊框框選目標對象;
-
每個目標擁有唯一 ID 標簽;
-
若啟用速度估算,會在圖像中實時展示速度值;
-
支持計數功能,統計通過線段的車輛數量。
# 判斷是否通過計數線
if?is_crossing_line(bbox, line_position):
? ??vehicle_count?+=?1
# 計算速度
speed?= estimate_speed(previous_coord, current_coord, fps)
七、項目拓展建議
這個項目還可以進一步擴展:
-
訓練自定義模型:在 Coovally 上使用自己標注的數據訓練YOLOv8;
-
集成多攝像頭系統:實現多視角追蹤與分析;
-
接入可視化大屏/控制后臺:用于城市級交通監控、智慧安防系統等。
八、總結
我們通過本項目實現了一個高效的目標檢測 + 多目標追蹤 + 速度估算系統,技術組合為:
-
YOLOv8 → 高效檢測;
-
DeepSORT → 高精度追蹤;
-
簡潔清晰的速度統計與車輛計數。
借助像 Coovally 這樣的 AI 平臺,不僅可以快速部署,還能極大提高迭代效率,助力你在算法驗證、項目開發中快人一步!
📌 歡迎留言討論:你覺得?YOLOv8 + DeepSORT?最適合用于哪些場景?你是否在用其他更輕量的追蹤算法?
📥 關注我們,獲取更多開源 AI 實戰技巧與平臺實測指南!