- 可接受
多方视频数据流
进行车流分析(调用RTSP摄像头、本地摄像头、上传本地视频)- **可对车辆进行
单目追踪
**🚖- 可
动态调节检测参数
(交互比、置信度、延时、报警阈值)- 检测的视频和数据可
保存在本地
2、网页端(Vue3+Typestript+Python3+MySQL)
- 多模式分析(用户上传+摄像头拍摄)
- 数据保存在数据库中(用户数据+检测数据)
- 可查看触发的警报记录🔔
- 响应式
3、创新点(毕设需要)
- 结合了客户端+网页端(可多端操作)
- 可动态调整检测参数(交互比、置信度、延时、报警阈值)
- 可检测出是否超出车流阈值(可对接报警模块)
- 检测可通过多种方式进行(视频流 / 照片)
- 系统等数据可进行保存(本地文件 / 数据库)
- 可视化车流(光流绘制)显示、可进行单目追踪、多目标跟踪(使用集成在yolov8中的bytetrack)
- 车流量可数据可视化(动态显示车流量)
4、项目包(前端-游客端)
MTAS-guest.zip - 蓝奏云文件大小:8.2 M|
https://wwwf.lanzout.com/iyzac14rlzed
5、项目包(前端-管理端)
MTSP-admin.zip - 蓝奏云文件大小:8.1 M|
https://wwwf.lanzout.com/ijbf014rlzva
6、项目包(客户端+后端)
MTSP-main.zip - 蓝奏云文件大小:16.9 M|
https://wwwf.lanzout.com/iAFRb14rm0kf
二、客户端环境配置⚒️
第一步 配置python环境🚀
- 下载python(版本:python>=3.8)(建议使用访问Anaconda官网配置虚拟环境,具体步骤如下)
- 1)访问Anaconda官网:Free Download | Anaconda
- 2)选择相应的操作系统版本并下载对应的安装包(推荐下载64位版本)
- 3)打开下载的安装包,按照提示进行安装即可
- 4)创建一个虚拟环境:
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
- 我自己使用的环境:
python3.9+CPU
第三步 运行项目(如果不需要(开启网页端) 或 (对接RTSP))
- 可直接运行项目:python main.py
🚀如果需要使用RTSP:
- 推荐手机安装app——
IP摄像头
如果要用电脑进行推流,可以采用zlm
🚀如果需要使用网页端:
- 可参考下面的配置说明
注意
环境配置好后,如果无法正常启动,请用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
三、配置前端环境(使用网页端)⚒️
🚀第一步 配置npm与下载依赖
- 下载node.js(我使用的是v16.16.0版本的)
- **注意:如果后面前端无法正常发出请求,那么可能是版本问题,可以尝试换成和我一样的版本,尤其是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
💎开源视频行为分析系统,系统实现了实时分析视频流,实时产生报警视频,实时推流:开源视频行为分析系统,系统实现了实时分析视频流,实时产生报警视频,实时推流_哔哩哔哩_bilibili
💎前端:风神的博客(链接未找到)
2、自定义功能借鉴
👍动态车流量图美化:4个Python库来美化你的Matplotlib图表! - 知乎
👍网页端摄像头拍照:VUE实现调用摄像头和拍照功能_vue.js_南京李市民先生-华为云开发者联盟
👍网页端拉取多个视频流:(http-mp4,http-flv等,这种基于http传输,最多只支持6个;本项目采用ws-mp4,即可实现多个分屏)
ps:链接写的不全,总之,衷心感谢大佬们的开源🌹🌹🌹
3、项目问题(必看)🌟🌟🌟
关于配置:
- 配置环境中,有一个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,他预测返回的数据格式和之前的不一样,建议自行打印出来,根据数据找到自己需要数据,就可以啦~
附页:小白(小丑)开发历程【从入坑到放弃】
第一阶段(初始阶段)
1、最先开始,我去修改好了大佬的开源项目(客户端),其实就差不多
2、然后看见了网上有个好兄弟开源了网页版的,我就想再加一个网页端(花了1天差不多实现了)借鉴大佬们的开源
3、其实这样,差不多也可以混一个毕设了(滑稽.jpg)
- 客户端是:Python+PySide+yolov8
- 网页端的前端是:vue3+TS
- 后端是:Python+Flask
第二阶段(思路摸索)
2.1、又在b站上看见了一个大佬搞的网页端的识别网站,并且也开源了,还可以从网页端拉流播放等等,俺大受启发(心里就一直构思实现方案)
然后写了如下思路:
- 工作人员通过前端配置rtps来进行拉流,展示到前端
- 他可以选择开启服务,或者关闭服务,如果开启服务,就发送请求给服务器,让后端拉流,进行处理,并且把结果返还给前端(但是这个有延时,俺目前想法是,用前端轮寻,或者长轮训,或websocket,但是俺觉得轮训简单,其他的没有搞过,轮训只需要给请求设置一个定时器就好了,这里想请教大佬,用什么比较好)
- 开启之后,工作人员就可以来监视面板中看见所有设置的画面,每个画面下面配上对应的信息(服务器定时返回的信息)【类似多种卡片在一个屏幕的效果】
- 大致页面有二个——①配置页面(可以配置视频+是否开启检测)——②监视面板(每个卡片里面有对应信息,点击则跳出弹窗,可调整对应的信息,比如:预测关闭与开启,删除,停止拉流等)
第三阶段(动力满满的开始)
- 反正,就是不去搞搞的话,手就十分的痒
- 于是就火急火燎的开始找相关的开源项目,着急想去实现心里所想的功能(那个时候,后端就想的是继续沿用Python的Flask)
- 虽然我对音视频方面的开发一窍不通,但是有大佬已经跑通的示例,我也没有太多担心的
- 反正有抱着学习的心态,觉得搞不懂了,再去请教大佬,然后看视频学习,也可以继续搞,所以那个时候动力满满!
第四阶段(找前端项目)
- 对我来说,首先要去实现前端的拉流,然而我也没有搞过什么前端,所以前端是个重任
- 虽然,之前我已经改好了一个前端,对接好了Flask,可以进行简单的图片识别,但是本着学习和提升的心态,想找几个好的前端项目,学习学习
- 第一想法就是把若依vue3的后端管理系统页面搬到原来的图片识别项目里面,集成到一起
- 但我没有搞过若依的vue3,以为不难,但是当我搬的时候,才发现是真滴麻烦(搬了一个多小时,呜呜呜)
- 于是,我开始寻找其他的前端项目(主要是想用vue3+TS)我当时非常搞笑的是,我对TS还是完全一个小白,但就是非常想用TS写,头是真滴铁(结果后面给自己挖坑,唉)
- 找了差不多一个早上,没有找到,于是乎,自己就想着改造若依vue3,所以,我就开始大刀阔斧的开始魔改起来
第五阶段(乱改前端)
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)
…(img-Sf0rFrhR-1713208471345)]
[外链图片转存中…(img-tz8LhID0-1713208471345)]
[外链图片转存中…(img-5PhQReHq-1713208471346)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)
![img](https://img-blog.csdnimg.cn/img_convert/71604e082eb75b124aaa50cb029d23be.jpeg)