# 基于Paddle+Flask的眼部医疗辅助系统(前后端分离)
视频链接:https://www.bilibili.com/video/BV1k54y1s7j9
# 1. 项目简介:
本项目基于PaddleX提供的FastSCNN语义分割模型,在眼部图像视盘分割数据集上进行训练,并开发了前后端分离项目。
后端代码基于Flask开发,前端WEB界面基于VUE开发。
![](https://ai-studio-static-online.cdn.bcebos.com/936a7f88ceac4085924961e023e0b974e38138def41444dfaf6a58cec091ec4d)
# 2. 训练语义分割模型:
```python
! pip install paddlex -i https://mirror.baidu.com/pypi/simple
```
done
[?25h Created wheel for pycocotools: filename=pycocotools-2.0.2-cp37-cp37m-linux_x86_64.whl size=278368 sha256=69425bf5985e5aa2c1a6c475a0d5e5975b3e5e5a024bda6e4573d07ccae57a21
Stored in directory: /home/aistudio/.cache/pip/wheels/fb/44/67/8baa69040569b1edbd7776ec6f82c387663e724908aaa60963
Successfully built pycocotools
Installing collected packages: paddleslim, xlwt, colorama, shapely, paddlehub, pycocotools, paddlex
Found existing installation: paddlehub 1.6.0
Uninstalling paddlehub-1.6.0:
Successfully uninstalled paddlehub-1.6.0
Successfully installed colorama-0.4.4 paddlehub-1.8.3 paddleslim-1.1.1 paddlex-1.3.4 pycocotools-2.0.2 shapely-1.7.1 xlwt-1.3.0
```python
! wget https://bj.bcebos.com/paddlex/datasets/optic_disc_seg.tar.gz
! tar xzf optic_disc_seg.tar.gz
```
--2021-01-23 08:11:17-- https://bj.bcebos.com/paddlex/datasets/optic_disc_seg.tar.gz
Resolving bj.bcebos.com (bj.bcebos.com)... 182.61.200.229, 182.61.200.195, 2409:8c00:6c21:10ad:0:ff:b00e:67d
Connecting to bj.bcebos.com (bj.bcebos.com)|182.61.200.229|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 19077558 (18M) [application/octet-stream]
Saving to: ‘optic_disc_seg.tar.gz’
optic_disc_seg.tar. 100%[===================>] 18.19M 29.0MB/s in 0.6s
2021-01-23 08:11:18 (29.0 MB/s) - ‘optic_disc_seg.tar.gz’ saved [19077558/19077558]
```python
# 设置使用0号GPU卡(如无GPU,执行此代码后仍然会使用CPU训练模型)
import matplotlib
matplotlib.use('Agg')
import os
os.environ['CUDA_VISIBLE_DEVICES'] = '0'
import paddlex as pdx
```
2021-01-23 08:11:24,888-INFO: font search path ['/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/matplotlib/mpl-data/fonts/ttf', '/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/matplotlib/mpl-data/fonts/afm', '/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/matplotlib/mpl-data/fonts/pdfcorefonts']
2021-01-23 08:11:25,242-INFO: generated new fontManager
```python
from paddlex.seg import transforms
train_transforms = transforms.Compose([
transforms.RandomHorizontalFlip(),
transforms.Resize(target_size=512),
transforms.RandomPaddingCrop(crop_size=500),
transforms.Normalize()
])
eval_transforms = transforms.Compose([
transforms.Resize(512),
transforms.Normalize()
])
```
```python
train_dataset = pdx.datasets.SegDataset(
data_dir='optic_disc_seg',
file_list='optic_disc_seg/train_list.txt',
label_list='optic_disc_seg/labels.txt',
transforms=train_transforms,
shuffle=True)
eval_dataset = pdx.datasets.SegDataset(
data_dir='optic_disc_seg',
file_list='optic_disc_seg/val_list.txt',
label_list='optic_disc_seg/labels.txt',
transforms=eval_transforms)
```
2021-01-23 08:11:39 [INFO] 267 samples in file optic_disc_seg/train_list.txt
2021-01-23 08:11:39 [INFO] 76 samples in file optic_disc_seg/val_list.txt
```python
num_classes = len(train_dataset.labels)
num_classes
```
2
```python
num_classes = len(train_dataset.labels)
model = pdx.seg.FastSCNN(num_classes=num_classes)
model.train(
num_epochs=40,
train_dataset=train_dataset,
train_batch_size=4,
eval_dataset=eval_dataset,
learning_rate=0.01,
save_interval_epochs=1,
save_dir='output/',
use_vdl=True)
```
```python
!paddlex --export_inference --model_dir=./output/best_model --save_dir=./inference_model --fixed_input_shape=[512,512]
```
W0123 08:16:03.194139 1332 device_context.cc:252] Please NOTE: device: 0, CUDA Capability: 70, Driver API Version: 10.1, Runtime API Version: 9.0
W0123 08:16:03.199599 1332 device_context.cc:260] device: 0, cuDNN Version: 7.6.
2021-01-23 08:16:06 [INFO] Model[FastSCNN] loaded.
2021-01-23 08:16:06 [INFO] Model for inference deploy saved in ./inference_model.
# 3. 模型预测
使用模型进行预测,同时使用`pdx.seg.visualize`将结果可视化,可视化结果将保存到`./output/deeplab`下,其中`weight`代表原图的权重,即mask可视化结果与原图权重因子。
```python
import paddlex as pdx
model = pdx.deploy.Predictor('inference_model')
image_name = 'optic_disc_seg/JPEGImages/H0005.jpg'
result = model.predict(image_name)
pdx.seg.visualize(image_name, result, weight=0.4, save_dir='./output/deeplab')
```
2021-01-23 08:16:45 [INFO] The visualized result is saved as ./output/deeplab/visualize_H0005.jpg
```python
!zip -r inference_model/ weights.zip
```
zip warning: name not matched: weights.zip
zip error: Nothing to do! (try: zip -r inference_model/ . -i weights.zip)
# 4. 启动WEB应用:
在 Flask 项目下运行以下代码启动后端:
```
python app.py
```
在 VUE 项目下运行以下代码安装依赖:
```
npm install
```
运行以下代码启动前端:
```
npm run serve
```
然后在浏览器打开Localhost即可:
![](https://ai-studio-static-online.cdn.bcebos.com/fbd0e4b62a3a435a9afa683456bfebb3ef173c5794854576ad0279aefa2e5bdb)
# 我的公众号:
感兴趣的同学关注我的公众号——可达鸭的深度学习教程:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210127153004430.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDkzNjg4OQ==,size_16,color_FFFFFF,t_70)
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【项目资源】: 包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。 包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。
资源推荐
资源详情
资源评论
收起资源包目录
基于PaddleX+Flask开发后端,基于VUE开发前端应用,做一个AI医疗的WEB应用.zip (41个子文件)
资料总结
LICENSE 34KB
CTAI_flask
.vscode
settings.json 74B
app.py 3KB
data
N0039.png 40KB
P0134.png 38KB
testfile.zip 77KB
core
__init__.py 0B
main.py 330B
get_feature.py 7KB
predict.py 397B
process.py 687B
net
inference_model
__params__ 4.49MB
model.yml 996B
.success 0B
__model__ 421KB
__pycache__
process.cpython-36.pyc 976B
predict.cpython-36.pyc 600B
get_feature.cpython-36.pyc 6KB
main.cpython-36.pyc 524B
__init__.cpython-36.pyc 163B
static
index.html 321B
CTAI_web
babel.config.js 53B
src
App.vue 560B
assets
style.css 4KB
main.js 873B
components
Footer.vue 457B
Header.vue 1KB
Content.vue 30KB
theme
index.css 227KB
fonts
element-icons.woff 28KB
element-icons.ttf 55KB
package.json 1KB
public
favicon.ico 1KB
index.html 557B
package-lock.json 510KB
vue.md 59KB
vue.config.js 214B
.gitignore 231B
README.md 12B
requirements.txt 12B
README.md 6KB
共 41 条
- 1
资源评论
妄北y
- 粉丝: 1w+
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功