项目介绍: 前期实验室已对猪脸进行图像识别训练,效果良好,现需要一个程序用来上传图片,识别出猪脸的位置,并将猪脸框出来。于是本文档就是用来实现这个功能的。
准备工作:
- 本次项目打算使用 web 端的方式来实现,技术栈:python+flask+vue+docker,程序主要使用开源程序
https://github.com/Sharpiless/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 镜像。镜像地址: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:v1
# 2. 依据镜像构建容器
# 端口为后端程序 app.py 中开放的端口,目录为后端程序将要放的目录
docker run -it -p 15003:15003 -v ./yolov5_reco:/soft/yolov5_reco --name yolov5_web_reco docker_opencv_torch:v1、
- 进入 docker 容器,运行后端代码程序
# 1. 查看 docker 容器是否运行
docker ps
# 2. 进入 docker 容器内部
docker exec -it 容器ID /bin/bash
- 修改 app.py 里 3 个 ip 地址
app.run()
里 ip 修改为0.0.0.0
, 其他两个位置 ip 修改为docker
对外暴露的 ip 和对应端口, 如172.17.0.99:15003
注意事项:
后端程序默认使用的权重为 yolov5 3.0版本,经本人测试 yolov5 5.0 版本权重在修改 common.py
(依据报错添加相关函数)后能正常运行,yolov5 6.0 版本无法运行。
二. 前端程序部署
- 在前端程序目录下运行
npm install
安装相关环境 - 修改ip地址:修改
src>components>Content.vue
中请求的 ip 地址为后端程序暴露的 ip 地址 - 运行
npm run serve
启动程序即可
本文首发于本人博客:blog.gitnote.cn/post/yolov5…
版权信息: CC BY-NC-SA 4.0 (自由转载-非商用-相同方式共享-保持署名)