Bootstrap

使用PaddleHub生成证件照

      飞桨是百度自主研发的开源深度学习平台。包含深度学习核心训练和推理框架、工具组件、基础模型库、端到端开发套件、 预测部署和开发训练。

       今天要说的PaddleHub是飞桨中的一个工具组件,包含了大量的预训练模型,不需要自己训练可以拿来直接使用,也可以根据自己的需要做一些少量的训练进行微调。

       预训练模型,从应用场景可以分为文本、视频、图像、语音、工业应用五大类模型库到目前为止共400多个模型。

        生成证件照的思路,从一张人像图片生成证件照,需要两大步,第一步利用PaddleHub中的图像分割模型,把人像从原图中扣出,第二步使用Python图像处理库PIL (Python Imaging Library) ,对图像进行处理,调整图像大小,设置图像底色即可保存证件照。

一,部署PaddleHub

参考官网安装方式

PaddleHub-源于产业实践的开源深度学习平台

pip install --upgrade paddlepaddle -i https://mirror.baidu.com/pypi/simple
pip install --upgrade paddlehub -i https://mirror.baidu.com/pypi/simple

二,选择图像分割模型

这里使用推荐的模型 deeplabv3p_xception65_humanseg

在当前页面向下找到学习模型,点击更多模型进入选择模型界面。从

在左侧导航栏中从应用场景=>图像=>图像分割 右侧会出现多个模型,可以根据自己需求选择对应的模型,这里选择deeplabv3p_xception65_humanseg

三,测试

使用下面的脚本对图像进行分割扣图

import paddlehub as hub
import cv2

human_seg = hub.Module(name="deeplabv3p_xception65_humanseg")
result = human_seg.segment(images=[cv2.imread('/PATH/TO/IMAGE')],visualization=True,output_dir="output")

在模型页面下方有API预测的相关命令

四,生成证件照

        PaddleHub部署完成后,就可以使用python调用PaddleHub生成证件照了下面是生成证件照的代码及程序界面

代码如下:

###########################################
#   生成证件照 配置环境
# sudo apt install python3-tk
# pip install Pillow
# 先导入python环境再执行此脚本 
# source ~/paddlehub_env/bin/activate
###########################################

import tkinter as tk  
from tkinter import filedialog  
import os
from PIL import Image, ImageDraw, ImageFont, ImageTk
import paddlehub as hub
import sys
import cv2
import 
;