基于PaddleHub一键部署的图像系列Web应用服务
思路过程
相关资源
1.Github源码:https://github.com/livingbody/AutoCutout
2.CSDN文章:https://blog.csdn.net/livingbody/article/details/105885350
3.B站视频:https://www.bilibili.com/video/BV1f54y1Q77R?from=search&seid=18175618860148975489
4.AISTDIO:https://aistudio.baidu.com/aistudio/projectdetail/457697
5.服务器进程挂掉重启等监控: https://github.com/livingbody/fangtanginuse
6.http://182.92.105.173
7. ppt下载:https://download.csdn.net/download/livingbody/13712074
1.思路剖析
一代情况 (基本抠图)
做这个项目最初始的思路就是利用 deeplabv3p_xception65_humanseg 模型的一键发布功能,人像抠图服务服务运行在具有GPU超强算力的服务器上,web服务运行于WEB服务器上,通过WEB服务屏蔽代码等底层,向公众提供易用的抠图WEB应用。
第一代长这样:
二代情况 (增加换背景证件照)
后来界面上使用BOOTSTRAP进行了美化,通过微信学友提示,增加了证件照换背景功能,对于中规中矩的证件照换的相当不错,对于一些环境复杂的人像,抠图换背景就有点差。
第二代
三代功能 (增加美颜)
通过微信学友的继续提示,计划增加美颜功能,美颜功能用到了 face_landmark_localization 功能,最初的想法也是使用模型的一键发布功能,人像抠图服务服务运行在具有GPU超强算力的服务器上,web服务运行于WEB服务器上,但是由于时间的局限以及水平有限,能够获取一键发布的url,以及据此获取的服务,但是调试未能通过(为此写了config.json)。为后续的作业尽快解题,先采取了PaddleHub本地运行方式(如果发现大量注释代码,不用担心,这是基于一键发布的不成熟代码),来提供美颜功能,效果不错奥,我百度下载了美女图片,试了试,还可以。
第三代
第四代
接下来时间我将继续迭代,长什么样不确定啊啊啊。。。。。。。。。。。
代码结构
- PaddleHub一键部署提供AI服务
- Flask提供WEB服务功能
step1. 启动flask服务
python upload_pictures.py
step2. 启动PaddleHub 一键部署deeplabv3p_xception65_humanseg服务
hub serving start -m deeplabv3p_xception65_humanseg
hub serving start --config config.json
step3. 打开浏览器体验web 抠图服务
http://localhost/upload
step4. 添加证件照更换背景服务
2020.5.5 20:00
http://localhost/zhegnjianzhao
添加证件照功能
step5. 修复菜单自适应
2020.5.5 20:00
step6. 依赖
1.PaddlePaddle(飞桨)
2.PaddleHub
3.Flask
step7. 项目相关
1.Github源码:https://github.com/livingbody/AutoCutout
2.CSDN文章:https://blog.csdn.net/livingbody/article/details/105885350
3.B站视频:https://www.bilibili.com/video/BV1f54y1Q77R?from=search&seid=18175618860148975489
4.AISTDIO:https://aistudio.baidu.com/aistudio/projectdetail/457697
5.服务器进程挂掉重启等监控: https://github.com/livingbody/fangtanginuse
6.http://182.92.105.173
7. ppt下载:https://download.csdn.net/download/livingbody/13712074
step8. 增加美颜效果
step9. OCR服务、看图写诗服务、卡通头像服务
等等。。。。
step10. 增加系统监控
PaddleHub后台服务器进程监控
https://github.com/livingbody/fangtanginuse
用flask作web发布,PaddleHub模型后端,做了个小网站,然而2G内存捉襟见肘,进程掉的厉害。。。
只好亲自操刀,做个每15分钟检查一次进程的小程序,如果掉了起起来,并告警到微信,告警用到方糖的服务。
10.1.配置crontab
crontab -e
0,15,30,45 * * * * sh /root/AutoCut/webcron.sh
# *占位 ,分割,,上面表示 每个小时中0分15分30分45分执行一次该命令
10.2重启crontab
/etc/init.d/cron restart
10.3.代码日志
(base) root@iZ2ze74yt1daioe0s04o9kZ:~/AutoCutout# crontab -e
Select an editor. To change later, run 'select-editor'.
1. /bin/nano <---- easiest
2. /usr/bin/vim.basic
3. /usr/bin/vim.tiny
4. /bin/ed
Choose 1-4 [1]: 2
No modification made
(base) root@iZ2ze74yt1daioe0s04o9kZ:~/AutoCutout# crontab -e
crontab: installing new crontab
(base) root@iZ2ze74yt1daioe0s04o9kZ:~/AutoCutout# service crond restart
Failed to restart crond.service: Unit crond.service not found.
(base) root@iZ2ze74yt1daioe0s04o9kZ:~/AutoCutout# /etc/init.d/cron restart
[ ok ] Restarting cron (via systemctl): cron.service.
(base) root@iZ2ze74yt1daioe0s04o9kZ:~/AutoCutout#