# paddle-flask-deploy
## 1. 介绍
PaddlePaddle是国内优秀的深度学习框架,Flask是一个使用Python编写的轻量级Web应用框架。本项目以猪只计数为例,旨在利用Flask框架实现云部署任务。
## 2. 功能
本项目一共实现了两个功能,第一个是在本地实现flask的调用功能(详见第4节),第二个是将服务封装成docker形式(详见第5节),方便部署。
## 3. 目录
```
paddle-flask-deploy
| -- deploy_python # 预测和可视化代码
| -- infer.py
| -- preprocess.py
| -- utils.py
| -- visualize.py
| -- models # 模型文件夹
| -- ppyolo
| -- infer_cfg.yml
| -- model.pdiparams
| -- model.pdiparams.info
| -- model.pdmodel
| -- app.py # 启动文件
| -- Dockerfile
| -- requirement.txt
```
## 4. 本地安装
### 4.1 环境安装
4.1.1 新建并启动conda环境
```
conda create -n paddle-flask python=3.7
conda activate paddle-flask
```
4.1.2 安装cpu版本的paddlepaddle
```
python3 -m pip install paddlepaddle==2.3.0 -i https://mirror.baidu.com/pypi/simple
```
4.1.3 克隆本仓库
```
git clone https://github.com/JackDance/paddle-flask-deploy.git
```
4.1.4 安装requirement.txt
将路径切换到项目下,安装所需依赖
```
cd paddle-flask-deploy
pip install requirements.txt
```
### 4.2 flask调用
4.2.1 启动服务
```
python app.py
```
启动成功后,控制台会输出如下提示:
```
[2022/07/22 14:11:56] root INFO: Now is the debugging phase!
* Serving Flask app 'app' (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: on
INFO 2022-07-22 14:11:56,510 app.py:101] Now is the debugging phase!
* Running on all addresses.
WARNING: This is a development server. Do not use it in a production deployment.
* Running on http://192.168.3.8:5002/ (Press CTRL+C to quit)
* Restarting with stat
```
点击提示里的链接即可在浏览器中看到服务的欢迎界面
![](https://github.com/JackDance/paddle-flask-deploy/blob/master/picture_bed/welcome.jpg)
4.2.2 执行调用预测
下面使用postman进行模型的调用预测。调用的流程如下图所示。
![](https://github.com/JackDance/paddle-flask-deploy/blob/master/picture_bed/postman.jpg)
在request body中,image_file为本机图片的路径。
在response body中,consumed_time表示该图预测所消耗的时间,count表示该图中包含的猪只的数量,image_file表示该图的路径。
## 5. Run with Docker
### 5.1 Clone the repo
```
git clone https://github.com/JackDance/paddle-flask-deploy
cd paddle-flask-deploy
```
### 5.2 Build Docker Image
```
docker build -t flask-paddle-deploy:v0.1 .
```
### 5.3 Run
```
docker run -d --name flask-paddle-deploy -v /home/jackdance/Desktop/Program/Flask_study/docker_map/output_imgs:/app/output_imgs -v /home/jackdance/Desktop/Program/Flask_study/docker_map/test_imgs:/app/test_imgs -p 5002:5002 --privileged=true flask-paddle-deploy:v0.1
```
提示:在Run中,添加了两个容器卷以实现宿主机到docker容器的映射。第一个容器卷是输出可视化的图片文件夹的映射,第二个容器卷是输入的图片文件夹的映射。各位可根据自己实际宿主机的路径进行更改。
使用 `docker ps`命令查看flask-paddle-deploy容器是否启动
![](https://github.com/JackDance/paddle-flask-deploy/blob/master/picture_bed/docker_ps.jpg)
### 5.4 执行调用预测
第一步:将要预测的图片放入宿主机的输入图片文件夹中,则图片会同步到docker对应的文件夹中
第二步:使用postman实现调用预测
使用postman的调用预测步骤可参考4.2.2节。
请求体中的image_file对应的图片路径更改成`/app/test_imgs/your_test_img_name`
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
PaddlePaddle是国内优秀的深度学习框架,Flask是一个使用Python编写的轻量级Web应用框架。本项目以猪只计数为例,旨在利用Flask框架实现云部署任务。 2. 功能 本项目一共实现了两个功能,第一个是在本地实现flask的调用功能(详见第4节),第二个是将服务封装成docker形式(详见第5节),方便部署。
资源推荐
资源详情
资源评论
收起资源包目录
基于paddle+flask实现的猪只识别计数python源码+模型+操作说明.zip (22个子文件)
code
test_imgs
20190621141918.jpg 959KB
20190621141547.jpg 951KB
20190621141553.jpg 962KB
20190515143432.jpg 891KB
20190621141911.jpg 957KB
20190621141855.jpg 969KB
20190621141840.jpg 952KB
app.py 3KB
Dockerfile 228B
requirements.txt 411B
models
ppyolo
model.pdmodel 2.67MB
model.pdiparams.info 29KB
infer_cfg.yml 602B
model.pdiparams 28.58MB
deploy_python
utils.py 8KB
preprocess.py 14KB
infer.py 18KB
visualize.py 14KB
README.md 4KB
picture_bed
postman.jpg 94KB
docker_ps.jpg 28KB
welcome.jpg 15KB
共 22 条
- 1
资源评论
FL1768317420
- 粉丝: 4107
- 资源: 4635
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功