yolov5_web_在线识别图片
项目介绍:
前期实验室已对生猪脸部进行图像识别训练,效果良好,现需要一个在线程序用来上传图片,识别出猪脸的位置,并将猪脸框出来。于是本文档就是用来实现这个功能的。
准备工作:
- 本次项目打算使用 web 端的方式来实现,技术栈:python+flask+vue+docker,程序主要使用开源程序
https://github.com/qiaoyukeji/Yolov5-Flask-VUE
修改部署。Yolov5-Flask-VUE
下载后有两个目录,其中bach-end
为后端程序,front-end
为前端程序。 - 本次使用 docker 部署识别程序的后端程序。
- 识别程序前端使用 vue ,本地需要先安装 nodejs
一. Yolov5-Flask-VUE
后端程序部署
Yolov5-Flask-VUE
后端程序部署本人将采用 docker 进行部署,由于后端程序需要调用 CPU/GPU 进行深度处理,并且需要相关深度学习环境,所以本人提供已安装好 torch
1.10.1 和 torchvision
0.11.2 环境的 docker 镜像。
镜像地址:https://registry.cn-hangzhou.aliyuncs.com/qiaoyu/docker_opencv_torch:v2
- 依据 docker 镜像构建 docker 容器
# 1. 拉取 docker 镜像 docker pull registry.cn-hangzhou.aliyuncs.com/qiaoyu/docker_opencv_torch:v2 # 2. 依据镜像构建容器 # 端口为后端程序 app.py 中开放的端口,目录为后端程序将要放的目录 docker run -it -p 15003:15003 -v ./yolov5_reco:/soft/yolov5_reco --name yolov5_web_reco docker_opencv_torch:v2
- 将后端程序
bach-end
拷贝到上面的./yolov5_reco
目录中 - 进入 docker 容器,运行后端代码程序
# 1. 查看 docker 容器是否运行 docker ps # 2. 进入 docker 容器内部 docker exec -it 容器ID /bin/bash # 3. 进入代码目录 cd /soft/yolov5_reco # 4. 替换 weights 中的自有权重 # 5. 运行 程序 python app.py # 6. 初次运行程序时,会报部分python库未安装,依报错安装即可
- 修改 app.py 里 3 个 ip 地址
app.run()
里 ip 修改为0.0.0.0
其他两个位置 ip 修改为docker
对外暴露的 ip 和对应端口, 如172.17.XXX.99:15003
注意事项:
后端程序默认使用的权重为 yolov5 3.0版本,经本人测试 == yolov5 5.0 == 版本权重在修改common.py
(依据报错添加相关函数)后能正常运行,yolov5 6.0 版本无法运行。
2022.07.27 更新:更新 yolov5 6.0 版本支持 ,代码见 :https://github.com/qiaoyukeji/Yolov5-Flask-VUE/tree/yolov5_6.0
二. 前端程序部署
- 在前端程序目录下运行
npm install
安装相关环境 - 修改ip地址:修改
src>components>Content.vue
中请求的 ip 地址为后端程序暴露的 ip 地址 - 运行
npm run serve
启动程序即可