用 YOLOv8 + DeepSORT 實現目標檢測、追蹤與速度估算

【導讀】

目標檢測與追蹤技術是計算機視覺領域最熱門的應用之一,廣泛應用于自動駕駛、交通監控、安全防護等場景。今天我們將帶你一步步實現一個完整的項目,使用YOLOv8 + DeepSORT實現目標檢測、追蹤與速度估算。>>更多資訊可加入CV技術群獲取了解哦

目錄

一、項目簡介

技術選型:

二、項目環境配置

克隆項目代碼

創建虛擬環境并安裝依賴

更輕松的方式:試試 Coovally 平臺?

三、實現流程詳解

文件準備

四、運行檢測與追蹤

五、關鍵代碼解析

初始化 DeepSORT

YOLOv8 目標檢測

繪制邊框與編號

速度估算(單位:km/h)

六、項目效果與結果解讀

七、項目拓展建議

八、總結


一、項目簡介

本項目將實現一個功能完備的系統,具備以下能力:

  • 檢測:使用 YOLOv8 快速識別圖像/視頻中的物體;

  • 追蹤:用 DeepSORT 對目標進行多幀跟蹤與編號;

  • 估速:通過幀間位移計算目標的移動速度;

  • 統計:支持計數通過檢測線的車輛數量。

  • 技術選型:

  • YOLOv8:最新一代 YOLO 模型,速度快、精度高;

  • DeepSORT:強化版追蹤算法,結合深度特征提高 ID 保持能力。


二、項目環境配置

  • 克隆項目代碼

git?clone?https://github.com/Gayathri-Selvaganapathi/vehicle_tracking_counting.gitcd?vehicle_tracking_counting
  • 創建虛擬環境并安裝依賴

推薦使用 conda:

conda?create -n env_tracking python=3.8conda?activate env_trackingpip?install -r requirements.txt
  • 更輕松的方式:試試 Coovally 平臺?

覺得環境配置太繁瑣?代碼跑起來效率太低?Coovally 平臺就是你輕量開發的理想選擇!

Coovally已集成YOLOv8和DeepSORT模型,可直接一鍵調用。

且平臺還內置1000+可一鍵調用的開源模型,覆蓋目標檢測、關鍵點檢測、多模態3D檢測、目標追蹤等各類任務。

screenshot_2025-06-30_15-11-56.png

  • 無需寫代碼:上傳數據集、選擇模型、配置參數、啟動訓練,全部可視化操作!

  • 訓練過程實時可視:
    準確率、損失曲線、預測圖像一目了然,結果即訓即看,助你快速驗證算法性能!

圖片

開發體驗拉滿:

你可以使用自己熟悉的開發工具(如VS Code、Cursor、WindTerm等),通過SSH協議直接連接Coovally云端算力,享受如同本地一樣的實時開發、調試體驗,還能調用強大的GPU環境加速實驗。

SSH.GIF


三、實現流程詳解

  • 文件準備

除 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 實戰技巧與平臺實測指南!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/87706.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/87706.shtml
英文地址,請注明出處:http://en.pswp.cn/web/87706.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python實例題:基于 Python 的簡單聊天機器人

Python實例題 題目 基于 Python 的簡單聊天機器人 要求: 使用 Python 構建一個聊天機器人,支持以下功能: 基于規則的簡單問答系統關鍵詞匹配和意圖識別上下文記憶功能支持多輪對話可擴展的知識庫 使用tkinter構建圖形用戶界面。實現至少 …

相機:Camera原理講解(使用OpenGL+QT開發三維CAD)

相機為三維場景提供了靈活便捷的視角變換和交互能力,通過相機操作可以實現全方位、各角度的場景瀏覽。 怎樣在三維場景中引入相機,怎樣處理和實現視角的放縮、移動、旋轉?在視角旋轉時以指定目標為中心又該怎樣處理? 原文&#…

開源的虛擬電廠預測數據:資源、應用與挑戰

引言 虛擬電廠(Virtual Power Plant, VPP)是一種通過聚合分布式能源資源(如太陽能、風能、儲能系統、電動汽車和可控負荷)來優化電力系統運行的數字化能源管理平臺。準確的預測數據是虛擬電廠高效運行的關鍵,而開源數據為研究者和企業提供了低成本、高透明度的解決方案。…

IDE全家桶專用快捷鍵----------個人獨家分享!!

給大家分享一下我個人整理的快捷鍵,其中包含對電腦的操作,以及在編寫代碼時的操作🚀Window系列1 WindowsR 開啟運行對話框--->輸入cmd啟動黑窗口?2 WindowsE 快速打開我的電腦 ?3 WindowsL 電腦鎖屏 ?4 WindowsD 顯示/恢復桌面 ?5 Win…

人工智能概念:RNN中的基礎Encoder-Decoder框架

文章目錄一、序列(Seq2Seq)轉換的核心架構二、Encoder-Decoder框架基礎原理2.1 整體工作流程2.2 編碼器(Encoder)詳解2.3 解碼器(Decoder)工作機制與缺陷三、基礎框架的核心缺陷分析(以"歡…

R 列表:深入解析與高效應用

R 列表:深入解析與高效應用 引言 在R語言中,列表(List)是一種非常重要的數據結構,它允許我們將不同類型的數據組合在一起。列表在數據分析和統計建模中扮演著至關重要的角色。本文將深入探討R列表的概念、創建方法、…

uniapp 國密sm2加密

1. uniapp 國密sm2加密 在uniapp中使用國密SM2算法進行加密解密,你可以通過安裝第三方庫miniprogram-sm-crypto來實現。這個庫提供了SM2、SM3和SM4算法的實現,可以在小程序和uniapp項目中使用。 1.1. 安裝miniprogram-sm-crypto 首先,你需要…

07_持續集成與部署:DevOps的核心引擎

07_持續集成與部署:DevOps的核心引擎 引言 在快速迭代的軟件開發時代,持續集成(CI)與持續部署(CD)已成為企業提升競爭力的關鍵。通過自動化構建、測試和部署流程,CI/CD能夠顯著縮短交付周期,提高軟件質量,降低發布風險。本文將深入探討CI/CD的核心理念、實施路徑與最…

電腦休眠設置

Dont Sleep的意思就是“不要睡覺”,用在電腦里就是“阻止休眠”的意思。但這款軟件其實有“阻止休眠”和“允許休眠”兩個功能。 阻止休眠時可以選擇事件,是計時器、電池、CPU、網絡這幾個事件進行觸發阻止休假的功能。 允許休眠也可以根據自己的需求進行…

藍牙墨水屏上位機學習(3)

main.js中sendimg()函數學習,對應發送圖片按鈕函數代碼如下:async function sendimg() {const canvasSize document.getElementById(canvasSize).value;const ditherMode document.getElementById(ditherMode).value;const epdDriverSelect document.…

Linux應用基礎

1. 基礎概念 1.1 系統調用 系統調用實際上是Linux內核為上層應用程序提供的API接口,方便應用程序進行調用,類似于SVC。 1.2 庫函數 庫函數是應用層里邊的東西,在系統調用的上層,通常以動態庫文件(.so)形式…

【時間序列數據處理的噩夢與救贖:一次復雜數據可視化問題的深度復盤】

時間序列數據處理的噩夢與救贖:一次復雜數據可視化問題的深度復盤 創建時間: 2025/7/3 技術棧: Vue 3 TypeScript UniApp ECharts 問題級別: 🔴 系統性架構問題 🎯 引言:當簡單需求變成技術噩夢 “老哥,這個圖表時…

Redis--黑馬點評--基于stream消息隊列的秒殺優化業務詳解

基于redis的stream結構作為消息隊列,實現異步秒殺下單 需求: 創建一個Stream類型的消息隊列,名為stream.oreders 修改之前的秒殺下單Lua腳本,在認定有搶夠資格后,直接向stream.orders中添加消息,內容包括…

Zephyr RTOS 防止中斷影響數據寫入

目錄 概述 1 中斷保護核心策略 1.1 中斷鎖定/解鎖 (IRQ Locking) 1.2 自旋鎖 (Spin Locks) 2 高級保護技術 2.1 雙重緩沖技術 2.2 RCU (Read-Copy-Update) 模式 3 中斷安全數據寫入模式 3.1 FIFO隊列保護 3.2 原子操作保護 4 性能優化策略 4.1 分區數據保護 4.2 中斷…

Hinge×亞矩云手機:以“深度連接”為名,重構云端社交的“真實感”

當傳統婚戀社交應用困于“淺層匹配”“硬件性能瓶頸”與“信任成本高企”,當Z世代對“靈魂共鳴、沉浸體驗、隱私安全”的需求愈發迫切,以“設計讓你刪除的應用”為理念的Hinge,正攜手亞矩云手機開啟一場“云端深度社交革命”——用云端算力破…

OpenSSL 內存泄漏修復全景:119 個歷史 Commit 的類型分析與防御啟示

1 前言 openssl 開源庫作為 C/C 項目中常用的組件庫,截至 2025年7月4日 ,openssl 的提交記錄包含 119 個 Fix memory leak 。 本文基于源碼 Commit 分析,揭示了 OpenSSL 內存泄漏修復從被動應對到主動防御的演進趨勢,給各位 C/C…

十一、Python 3.13 的新特性和更新內容

1. 性能提升 1.1 解釋器性能優化 更快的啟動速度:Python 3.13 啟動時間比 3.12 快約 10-15%。內存使用優化:減少了內存占用,特別是在處理大型數據結構時。 1.2 字節碼優化 新的字節碼指令:引入了更高效的字節碼指令&#xff0…

后端 Maven打包 JAR 文件、前端打包dist文件、通過后端服務訪問前端頁面、Nginx安裝與部署

打包 JAR 文件通常使用 Maven 或 Gradle 構建工具(Spring Boot 項目默認推薦 Maven)。以下是詳細步驟和常見問題解答: 一、后端 Maven打包 JAR 文件 1. 確保項目是 Spring Boot 項目 項目結構應包含 pom.xml(Maven 配置文件&am…

大數據系列 | 日志數據采集工具Filebeat的架構分析及應用

大數據系列 | 日志數據采集工具Filebeat的架構分析及應用 1. Filebeat的由來2. Filebeat原理架構分析3. Filebeat的應用3.1. 安裝Filebeat3.2. 實戰采集應用程序日志1. Filebeat的由來 在介紹Filebeat之前,先介紹一下Beats。Beats是一個家族的統稱,Beats家族有8個成員,早期的…

基于 Vue + RuoYi 架構設計的商城Web/小程序實訓課程

以下是基于 Vue RuoYi 架構設計的商城Web/小程序實訓課程方案,結合企業級開發需求與教學實踐,涵蓋全棧技術棧與實戰模塊: 📚 一、課程概述 目標:通過Vue前端 RuoYi后端(Spring Boot)開發企業…