yolov5_web_在线识别图片

492 阅读2分钟

项目介绍: 前期实验室已对猪脸进行图像识别训练,效果良好,现需要一个程序用来上传图片,识别出猪脸的位置,并将猪脸框出来。于是本文档就是用来实现这个功能的。


准备工作:

  1. 本次项目打算使用 web 端的方式来实现,技术栈:python+flask+vue+docker,程序主要使用开源程序 https://github.com/Sharpiless/Yolov5-Flask-VUEYolov5-Flask-VUE 下载后有两个目录,其中 bach-end 为后端程序,front-end 为前端程序。
  1. 本次使用 docker 部署识别程序的后端程序。
  2. 识别程序前端使用 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

  1. 依据 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、
  1. 进入 docker 容器,运行后端代码程序
# 1. 查看 docker 容器是否运行
docker ps
# 2. 进入 docker 容器内部
docker exec -it 容器ID /bin/bash
  1. 修改 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 版本无法运行。

二. 前端程序部署

  1. 在前端程序目录下运行 npm install 安装相关环境
  2. 修改ip地址:修改 src>components>Content.vue 中请求的 ip 地址为后端程序暴露的 ip 地址
  3. 运行 npm run serve 启动程序即可

本文首发于本人博客:blog.gitnote.cn/post/yolov5…

版权信息: CC BY-NC-SA 4.0 (自由转载-非商用-相同方式共享-保持署名)