简介
在日常模型的部署中我们有边缘计算盒、交互网页、手机APP、微信小程序等众多部署使用选择。这里我开发了一个通用的目标检测的微信小程序。该小程序拥有一个基于Flask开发的后台API服务提供,前台有微信小程序与用户进行交互。这个微信小程序除了能本地演示,在拥有域名和云服务器的情况下可以快速部署到实际环境中。更有趣的是,基于Flask的后台服务API是通用性的,只要是图像任务,包含图像分类、目标检测、图像分割、风格迁移等视觉项目都可以通过替换加载不同模型替换。不论是经典的Resnet网络还是新的SOTA模型都可以快速融入到这个微信小程序和后台服务中。

要求环境:
python3环境及YOLOv5官方的指定环境:requirements.txt设备要求:Windows(GPU/CPU)、Linux(GPU/CPU)目录
.
├── back 后端服务API
│ ├── Serving_model
│ │ └── commodity
│ │ └── 1
│ │ └── best.pt
│ ├── clear.bat
│ ├── config.yaml
│ ├── detector.py
│ ├── models
│ ├── server_wx.py
│ ├── static
│ └── utils
├── front 前端微信小程序
│ ├── app.js
│ ├── app.json
│ ├── app.wxss
│ ├── images
│ │ └── 3.png
│ ├── pages
│ │ ├── index
│ │ │ ├── index.js
│ │ │ ├── index.json
│ │ │ ├── index.wxml
│ │ │ └── index.wxss
│ │ └── logs
│ │ ├── logs.js
│ │ ├── logs.json
│ │ ├── logs.wxml
│ │ └── logs.wxss
│ ├── project.config.json
│ ├── sitemap.json
│ └── utils
│ └── util.js
└── 使用.txt 使用说明
如何使用
1、下载源代码:面包多-【源码】YOLOv5微信小程序部署(通用)
2、修改成自己的模型权重,将你自己训练的模型重新命名为:weights.pt,在Serving_model\commodity文件夹下新建一个新的数字文件夹(例如Serving_model\commodity文件夹下有一个1文件夹,你可以新建一个2文件夹),将weights.pt放入到新建的这个数字文件夹。这里我们的server_wx.py里面会自动检测大数字的文件夹并且调用其权重。这里2比1大因此会优先调用2文件夹中的权重。
3、修改配置文件config.yaml:
未解释内容不要做修改!!!
HOST: localhost 本地测试为localhost,云端部署为0.0.0.0
PORT: 8090 根据需求指定端口,默认8090
FOLDER: [caches, results,results_json]
CACHE_FOLDER: caches
RESULTS_FOLDER: results
ALLOWED_EXTENSIONS: [png, jpg, jpeg]
MYDEVICE: 0 使用的设备(0:代表使用GPU;cpu:代表使用CPU)
IMG_SIZE: 640 输入图片大小640
THRESHOLD: 0.6 置信度
DIR_PATH: Serving_model/commodity/
4、启动服务:
确认自己安装好python3环境,其他环境同YOLOv5官方指定环境
python server_wx.py
输出
============================================
Model Version:1,Use Model Weight:/weights.pt
============================================
YOLOv5 2022-2-9 torch 1.10.1+cu102 CUDA:0 (NVIDIA GeForce GTX 1050, 4096MiB)
Fusing layers…
Model Summary: 213 layers, 7225885 parameters, 0 gradients, 16.5 GFLOPs
* Serving Flask app server (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://localhost:8090/ (Press CTRL+C to quit)
5、把front文件夹导入到微信小程序,然后点击上传可以进行预测和返回了。 6、云端部署与本地部署无差异。
