目錄
?基于YOLOv8??的多端車流檢測系統(tǒng)-MTAS (Multi-Platform Traffic Analysis System)
一、基本功能介紹
1、客戶端 (pyside6+yolov8+pytorch)
?2、網頁端(Vue3+Typestript+Python3+MySQL)
?3、創(chuàng)新點(畢設需要)
4、項目包(前端-游客端)
5、項目包(前端-管理端)
6、項目包(客戶端+后端)
二、客戶端環(huán)境配置??
第一步 配置python環(huán)境??
第二步 下載庫??
第三步 運行項目(如果不需要(開啟網頁端) 或 (對接RTSP))
三、配置前端環(huán)境(使用網頁端)??
四、使用開源項目+自定義功能借鑒??
1、開源項目
2、自定義功能借鑒
附頁:小白(小丑)開發(fā)歷程【從入坑到放棄】
第一階段
第二階段(思路摸索)
第三階段(動力滿滿的開始)
第四階段(找前端項目)
第五階段(亂改前端)
第六階段(擺爛到放棄)
第七階段(項目快寫完時)
第八階段(記錄踩坑)
第九階段(感謝大佬們與開源項目)
??其他
?基于YOLOv8??的多端車流檢測系統(tǒng)-MTAS (Multi-Platform Traffic Analysis System)
一、基本功能介紹
??系統(tǒng)可大體分為兩大模塊(客戶端、網頁端)
??演示視頻:
基于yolov8的多端檢測系統(tǒng)_嗶哩嗶哩_bilibili基于yolov8的多端檢測系統(tǒng)——客戶端 & 網頁端很感謝大佬們的悉心教導,有貓魚大佬,鄧曉楠大佬,北小菜大佬等等大佬們!大佬們,都是有問必答,并且十分有耐心,嗚嗚嗚,太感動了!還有很多優(yōu)秀的開源項目,太贊了!, 視頻播放量 1、彈幕量 0、點贊數 0、投硬幣枚數 0、收藏人數 0、轉發(fā)人數 0, 視頻作者 電石QwQ, 作者簡介 不甘寂寞,相關視頻:YOLOv8-PySide-GUI調用攝像頭(比PPT還卡!),若依vue前后端分離版——服務器使用docker快速部署(后端部分),pyqt-auto-tool自己亂改的自動化小工具,Dijkstra算法[用處+代碼講解],若依vue前后端分離版——服務器使用docker快速部署(前端部分——有域名版),KMP算法動畫(next數組求值),若依vue前后端分離版——服務器快速部署(https),YOLOv8+LPRNet車牌定位與識別,線索二叉樹[第二部分:代碼講解],校園生活記錄——貓咪圖鑒小程序顏色變量統(tǒng)一https://www.bilibili.com/video/BV1iM4y1H78F
1、客戶端 (pyside6+yolov8+pytorch)
可接受
多方視頻數據流
進行車流分析(調用RTSP攝像頭、本地攝像頭、上傳本地視頻)可對車輛進行
單目追蹤
??可
動態(tài)調節(jié)檢測參數
(交互比、置信度、延時、報警閾值)檢測的視頻和數據可
保存在本地
?2、網頁端(Vue3+Typestript+Python3+MySQL)
多模式分析(用戶上傳+攝像頭拍攝)
數據保存在數據庫中(用戶數據+檢測數據)
可查看觸發(fā)的警報記錄??
響應式
?3、創(chuàng)新點(畢設需要)
結合了客戶端+網頁端(可多端操作)
可動態(tài)調整檢測參數(交互比、置信度、延時、報警閾值)
可檢測出是否超出車流閾值(可對接報警模塊)
檢測可通過多種方式進行(視頻流 / 照片)
系統(tǒng)等數據可進行保存(本地文件 / 數據庫)
可視化車流(光流繪制)顯示、可進行單目追蹤、多目標跟蹤(使用集成在yolov8中的bytetrack)
車流量可數據可視化(動態(tài)顯示車流量)
4、項目包(前端-游客端)
MTAS-guest.zip - 藍奏云文件大?。?.2 M|https://wwwf.lanzout.com/iyzac14rlzed
5、項目包(前端-管理端)
MTSP-admin.zip - 藍奏云文件大?。?.1 M|https://wwwf.lanzout.com/ijbf014rlzva
6、項目包(客戶端+后端)
MTSP-main.zip - 藍奏云文件大?。?6.9 M|https://wwwf.lanzout.com/iAFRb14rm0kf
二、客戶端環(huán)境配置??
第一步 配置python環(huán)境??
下載python(版本:python>=3.8)(建議使用訪問Anaconda官網配置虛擬環(huán)境,具體步驟如下)
1)訪問Anaconda官網:Free Download | Anaconda
2)選擇相應的操作系統(tǒng)版本并下載對應的安裝包(推薦下載64位版本)
3)打開下載的安裝包,按照提示進行安裝即可
4)創(chuàng)建一個虛擬環(huán)境:
conda create --name 自命名 python=3.9.16
第二步 下載庫??
注意:下載庫前,如果想要更好的幀數體驗請安裝cuda版本哦
(因為一般默認會安裝cpu的版本)
pip換源:
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
切換到項目文件夾下,下載依賴:
pip install -r requirements.txt
我自己使用的環(huán)境:
python3.9+CPU
第三步 運行項目(如果不需要(開啟網頁端) 或 (對接RTSP))
可直接運行項目:python main.py
??如果需要使用RTSP:
推薦手機安裝app——
IP攝像頭
如果要用電腦進行推流,可以采用zlm
??如果需要使用網頁端:
可參考下面的配置說明
注意
環(huán)境配置好后,如果無法正常啟動,請用debug開啟
ps:具體原因,俺也不知道為什么,有大佬知道的,可以留個言(感謝)
網頁端(為響應式的),需要修改方面說明之類的,后面再說吧~
??配置后端(如果你需要使用網頁端的話):
1、導入數據表
2、修改配置文件
3、啟動后端
python?app.py
?? 注意:配置文件都在config文件夾下啦
?config.txt里面的注釋是config.json的(因為json文件不能寫注釋)
這里也算是踩坑點,下次使用env或者yaml作為項目的配置文件格式!
- config.json:
{ "iou": 0.35, // 交互比 "conf": 0.59, // 置信度 "rate": 0.01, // 延時 "save_res": true, // 是否保存 結果 "save_txt": true, // 是否保存 標簽 "save_res_path": "pre_result", // 保存路徑 "save_txt_path": "pre_labels", // 保存路徑 "models_path": "models", // 模型存放路徑 "open_fold": "D:/", // 打開文件夾路徑 "show_trace": false, // 是否顯示軌跡 "show_labels": true, // 是否顯示標簽 "rtsp_ip": "rtsp://127.0.0.1:554/live/test", // RTSP路徑 "car_id": "1", // 追蹤 id "car_threshold": 8 // 車輛閾值 }
- endback.env:
#---------------------------------------------------服務器配置 HOST_NAME=127.0.0.1 # 主機名 PORT=5500 # HTTP服務端口 TOLERANT_TIME_ERROR=60 # 調用接口時附帶的時間戳參數與服務器時間之間的最大允許誤差(單位:s) BEFORE_IMG_PATH=before_img # 圖片存儲命名 ※※※ AFTER_IMG_PATH=after_img #---------------------------------------------------數據庫配置 MYSQL_HOST=127.0.0.1 # SQL主機 MYSQL_PORT=3306 # 連接端口 MYSQL_user=root # 用戶名 MYSQL_password=123456 # 密碼 MYSQL_db=yolo # 數據庫名 MYSQL_charset=utf8 # utf8
三、配置前端環(huán)境(使用網頁端)??
??第一步 配置npm與下載依賴
下載node.js(我使用的是v16.16.0版本的)
注意:如果后面前端無法正常發(fā)出請求,那么可能是版本問題,可以嘗試換成和我一樣的版本,尤其是v18.0.0以上node,容易出現這種問題
npm換源:
npm config set registry https://registry.npm.taobao.org
切換到項目文件夾下,下載依賴:
?npm install
??第二步 運行前端
?npm run dev
?? 注意:兩個前端都是這樣啟動的喲~
四、使用開源項目+自定義功能借鑒??+關于項目的問題
1、開源項目
??客戶端:https://github.com/CatfishW/MOT & https://github.com/Jai-wei/YOLOv8-PySide6-GUI
??前后端:https://github.com/Dovahkiin-Ming/Personnel-Flow-Monitoring-System-based-on-YoloV5
?? 攝像頭視頻流直接在瀏覽器播放:實現瀏覽器播放HLS和HTTP-FLV視頻流,并實現攝像頭視頻流直接在瀏覽器播放_嗶哩嗶哩_bilibili
??開源視頻行為分析系統(tǒng),系統(tǒng)實現了實時分析視頻流,實時產生報警視頻,實時推流:開源視頻行為分析系統(tǒng),系統(tǒng)實現了實時分析視頻流,實時產生報警視頻,實時推流_嗶哩嗶哩_bilibili
??前端:風神的博客(鏈接未找到)
2、自定義功能借鑒
??動態(tài)車流量圖美化:4個Python庫來美化你的Matplotlib圖表! - 知乎
??網頁端攝像頭拍照:VUE實現調用攝像頭和拍照功能_vue.js_南京李市民先生-華為云開發(fā)者聯盟
??網頁端拉取多個視頻流:(http-mp4,http-flv等,這種基于http傳輸,最多只支持6個;本項目采用ws-mp4,即可實現多個分屏)
ps:鏈接寫的不全,總之,衷心感謝大佬們的開源??????
3、項目問題(必看)??????
關于配置:
- 配置環(huán)境中,有一個lap,在pip安裝時,需要下載一個東西,根據報錯提示中的鏈接,去下載就好了:【python】安裝模塊lap出錯: error: Microsoft Visual C++ 14.0 or greater is required._lap庫安裝失敗-CSDN博客
- 如果你預測失敗,多半是yolo版本問題,需要你自己根據報錯修改一下,還有關于其他庫,就是opencv版本(或者其他庫,比如sv等)不一樣,根據報錯的庫名,卸載重新安裝對應版本
- 此項目的main_window的ui文件是沒有的,用貓魚老哥的開源改的,他當時就沒有用ui文件。直接手寫了,然后我也只好手寫ui了。
關于訓練模型+預測:(如何訓練模型——我之前寫過一篇文章,可以翻翻前面的看看)
- 如果訓練版本使用的是和預測版本一樣的話,就可以直接用
- 要用自己訓練的那個yolo版本的話,那么預測項目里面yolo版本就換為你訓練的那個版本(不過可能有api改了,但是一般改動不大,自行根據報錯修改就好了)
關于使用CUDA
- cuda版本的pytorch,需要自己根據項目的注釋和報錯修改就好了
- 因為使用了CUDA,他預測返回的數據格式和之前的不一樣,建議自行打印出來,根據數據找到自己需要數據,就可以啦~
附頁:小白(小丑)開發(fā)歷程【從入坑到放棄】
第一階段(初始階段)
1、最先開始,我去修改好了大佬的開源項目(客戶端),其實就差不多
2、然后看見了網上有個好兄弟開源了網頁版的,我就想再加一個網頁端(花了1天差不多實現了)借鑒大佬們的開源
3、其實這樣,差不多也可以混一個畢設了(滑稽.jpg)
- 客戶端是:Python+PySide+yolov8
- 網頁端的前端是:vue3+TS
- 后端是:Python+Flask
第二階段(思路摸索)
2.1、又在b站上看見了一個大佬搞的網頁端的識別網站,并且也開源了,還可以從網頁端拉流播放等等,俺大受啟發(fā)(心里就一直構思實現方案)
大佬主頁:北小菜的個人空間-北小菜個人主頁-嗶哩嗶哩視頻
然后寫了如下思路:
- 工作人員通過前端配置rtps來進行拉流,展示到前端
- 他可以選擇開啟服務,或者關閉服務,如果開啟服務,就發(fā)送請求給服務器,讓后端拉流,進行處理,并且把結果返還給前端(但是這個有延時,俺目前想法是,用前端輪尋,或者長輪訓,或websocket,但是俺覺得輪訓簡單,其他的沒有搞過,輪訓只需要給請求設置一個定時器就好了,這里想請教大佬,用什么比較好)
- 開啟之后,工作人員就可以來監(jiān)視面板中看見所有設置的畫面,每個畫面下面配上對應的信息(服務器定時返回的信息)【類似多種卡片在一個屏幕的效果】
- 大致頁面有二個——①配置頁面(可以配置視頻+是否開啟檢測)——②監(jiān)視面板(每個卡片里面有對應信息,點擊則跳出彈窗,可調整對應的信息,比如:預測關閉與開啟,刪除,停止拉流等)
第三階段(動力滿滿的開始)
- 反正,就是不去搞搞的話,手就十分的癢
- 于是就火急火燎的開始找相關的開源項目,著急想去實現心里所想的功能(那個時候,后端就想的是繼續(xù)沿用Python的Flask)
- 雖然我對音視頻方面的開發(fā)一竅不通,但是有大佬已經跑通的示例,我也沒有太多擔心的
- 反正有抱著學習的心態(tài),覺得搞不懂了,再去請教大佬,然后看視頻學習,也可以繼續(xù)搞,所以那個時候動力滿滿!
第四階段(找前端項目)
- 對我來說,首先要去實現前端的拉流,然而我也沒有搞過什么前端,所以前端是個重任
- 雖然,之前我已經改好了一個前端,對接好了Flask,可以進行簡單的圖片識別,但是本著學習和提升的心態(tài),想找?guī)讉€好的前端項目,學習學習
- 第一想法就是把若依vue3的后端管理系統(tǒng)頁面搬到原來的圖片識別項目里面,集成到一起
- 但我沒有搞過若依的vue3,以為不難,但是當我搬的時候,才發(fā)現是真滴麻煩(搬了一個多小時,嗚嗚嗚)
- 于是,我開始尋找其他的前端項目(主要是想用vue3+TS)我當時非常搞笑的是,我對TS還是完全一個小白,但就是非常想用TS寫,頭是真滴鐵(結果后面給自己挖坑,唉)
- 找了差不多一個早上,沒有找到,于是乎,自己就想著改造若依vue3,所以,我就開始大刀闊斧的開始魔改起來
第五階段(亂改前端)
- 因為若依vue3是對接的java后端,很多東西我都不需要,我就開始使勁刪東西
- 刪著刪著,發(fā)現這個玩意嵌套的東西和關聯的東西還挺多,動不動就報錯!
- 這些報錯,有點搞俺的心態(tài)(不過,究其根本,是俺學藝不精,唉?。?/strong>
- 于是乎,俺就懶得刪了,直接湊合著用,反正可以實現我的功能就行了
- 然后,我就開始寫死路由,亂改頁面
- 不過,讓我這個強迫癥難受的是,編譯器會給你爆紅,因為TS,他需要像java,C++那樣定義類型
- 但我就是不管,直接開擺,雖然你到處爆紅,不過還是可以跑的嘛,畢竟到最后都是變成js運行的嘛(心態(tài)值-10)
第六階段(擺爛到放棄)
- 我就在前端寫一個頁面,寫好之后就開始用python寫后端做數據處理,然后再把數據返還回去
- 按照這個流程,當我寫完登錄接口的時候還好(剛剛開始搞,動力還行)
- 當我寫完視頻流的表單接口時
- 我就發(fā)現這個好像不太對勁唉,和Java比起來有點麻煩呀(準確的說,是十分麻煩?。?/strong>
- 當時就有點后悔,但覺得麻煩一點也無所謂了,我反正就寫一個簡單的功能而已(這時候已經開擺了)
- 但是我越寫,我心里就越想著JAVA那個叫一個方便,用著多么的舒服
- 因為若依框架太香了,直接一鍵生成代碼,操作熟練的話,幾分鐘不到,前端+后端的增刪改查,完美搞定!
- 再回頭來,看看Python,增刪改查,一個個手寫,嗚嗚嗚,好難受!(心態(tài)值-100)
- 完了,寫著寫著心態(tài)炸了,我就開始瘋狂擺爛
- 增刪改查的接口都不寫全,只要能完成我的整個業(yè)務演示就行了
第七階段(項目快寫完時)
- 結果,昨天看見了一個Java對接FFmpeg的開源項目,我心態(tài)爆炸!(心態(tài)值-1000)
- 我恍然大悟,我完全可以Java搞業(yè)務流程,實現數據的增刪改查,網頁端單獨拉流預覽
- 再用Python單獨查詢數據庫,然后根據數據庫的表單信息,進行拉流,處理視頻流
- 這樣不就可以了么??
第八階段(記錄踩坑)
- 寫到這里,我太陽穴好痛,我感覺的低血壓都要治好了!
- 記錄時間:2023年8月1日19:57:17
- 我今天下午大概4點完成的,唉,雖然心里挺快活,但是遇到了這些坑,俺還是有點無語唉(在此記錄,引以為戒?。?/strong>
第九階段(感謝大佬們與開源項目)
- 很感謝大佬們的悉心教導,有貓魚大佬,鄧曉楠大佬,北小菜大佬等等大佬們!
- 大佬們,都是有問必答,并且十分有耐心,嗚嗚嗚,太感動了!
- 還有很多優(yōu)秀的開源項目,太贊了!
貓魚:貓魚CatfishW的個人空間-貓魚CatfishW個人主頁-嗶哩嗶哩視頻
鄧曉楠:鄧曉楠的個人空間-鄧曉楠個人主頁-嗶哩嗶哩視頻
北小菜:北小菜的個人空間-北小菜個人主頁-嗶哩嗶哩視頻
?? B站主頁:電石QwQ的個人空間-電石QwQ個人主頁-嗶哩嗶哩視頻
??CSDN:Pan_peter_Python,數據庫,Java-CSDN博客
??更多畢設:畢設項目 · 網址匯總 · 看云
??其他
本項目后面可能要對接數據庫,后面再修改就比較麻煩了??
??系統(tǒng)方面的拓展:
商場人流檢測 ??
道路路障檢測 ??
疲勞駕駛檢測 ??
??系統(tǒng)的問題:
預測速度慢,部署問題(fps、cuda、onnx)
調用攝像頭后無法釋放控制權
單目標追蹤有問題(開啟與關閉)
用戶交互
未對接報警模塊(比如:加語音提示 or 郵件 or 數據庫記錄)
未加入數據分析(比如:收集每天時間段,各種車輛的流量,分析出哪些時間段,哪種車型的流量比較大)
拉流存在延遲(延遲較大)
多線程有問題(數據可視化線程)
前后端接口不全
拉流有問題(時不時會斷)
前端一堆問題(不提了,自己挖的坑)
??系統(tǒng)的簡單技術腦圖
?
文章來源:http://www.zghlxwxcb.cn/news/detail-631517.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-631517.html
到了這里,關于基于YOLOv8的多端車流檢測系統(tǒng)(用于畢設+開源)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!