檢測(cè)跟蹤計(jì)數(shù)系統(tǒng)-YOLOv5+DeepSORT)
本項(xiàng)目為前幾天收費(fèi)幫學(xué)妹做的一個(gè)項(xiàng)目在工作環(huán)境中基本使用不到但是很多學(xué)校把這個(gè)當(dāng)作編程入門(mén)的項(xiàng)目來(lái)做故分享出本項(xiàng)目供初學(xué)者參考。一、項(xiàng)目描述基于YOLOv5DeepSORT的視頻目標(biāo)檢測(cè)跟蹤計(jì)數(shù)系統(tǒng)基于 YOLOv5 DeepSORT 的視頻目標(biāo)檢測(cè)跟蹤計(jì)數(shù)系統(tǒng)對(duì)監(jiān)控視頻中的行人、自行車(chē)、小汽車(chē)、摩托車(chē)、公交車(chē)、卡車(chē)進(jìn)行實(shí)時(shí)檢測(cè)、多目標(biāo)跟蹤并通過(guò)雙區(qū)域撞線法按方向分別統(tǒng)計(jì)進(jìn)入/離開(kāi)數(shù)量。在原有命令行版本基礎(chǔ)上新增了 Web 界面支持用戶上傳視頻、查看處理進(jìn)度、統(tǒng)計(jì)結(jié)果和歷史記錄。二、項(xiàng)目功能– 視頻上傳支持 MP4/AVI/MOV/MKV 等格式拖拽或點(diǎn)擊上傳– 目標(biāo)檢測(cè)與跟蹤YOLOv5 檢測(cè) 6 類目標(biāo)DeepSORT 分配軌跡 ID– 雙向計(jì)數(shù)藍(lán)/黃雙多邊形撞線按穿越順序判定進(jìn)入下行與離開(kāi)上行同一 ID 防重復(fù)計(jì)數(shù)– 統(tǒng)計(jì)展示進(jìn)入/離開(kāi)/合計(jì)計(jì)數(shù)卡片、分類別統(tǒng)計(jì)表、逐次撞線事件時(shí)間線– 結(jié)果回放輸出帶檢測(cè)框、軌跡 ID、撞線區(qū)域標(biāo)注的 H.264 視頻瀏覽器可直接播放– 歷史記錄SQLite 持久化支持回看統(tǒng)計(jì)結(jié)果和刪除記錄重啟不丟失– 處理進(jìn)度實(shí)時(shí)顯示幀進(jìn)度和當(dāng)前計(jì)數(shù)后臺(tái)隊(duì)列串行處理三、運(yùn)行環(huán)境– 操作系統(tǒng)Windows亦兼容 Linux– Python 3.11– CPU 模式運(yùn)行約 0.5 秒/幀有 NVIDIA 顯卡可裝 CUDA 版 PyTorch 加速– 服務(wù)啟動(dòng)項(xiàng)目根目錄執(zhí)行python app.py 瀏覽器訪問(wèn)http://127.0.0.1:5000四、項(xiàng)目技術(shù)– 檢測(cè)模型YOLOv5mCOCO 預(yù)訓(xùn)練權(quán)重– 跟蹤算法DeepSORT卡爾曼濾波 匈牙利匹配 ReID 外觀特征– 計(jì)數(shù)算法雙多邊形區(qū)域撞線法軌跡點(diǎn)穿越順序判定方向– 后端Flask SQLite后臺(tái)線程任務(wù)隊(duì)列視頻 Range 分段傳輸– 前端原生 HTML/CSS/JS 單頁(yè)應(yīng)用XMLHttpRequest 上傳進(jìn)度、輪詢?nèi)蝿?wù)狀態(tài)– 依賴PyTorch、OpenCV、NumPy、SciPy以上系統(tǒng)源碼經(jīng)過(guò)技術(shù)整理與調(diào)試確保能正常運(yùn)行五、項(xiàng)目截圖