Paddlehub一些简单应用

 

首先介绍两个终端命令

hub list

该命令可以列出当前系统内存在的模型

 

hub show UGATIT_100w

该命令可以查看模型的具体信息如作者、版本号等

更新PaddleHub

  • 开始之前先更新一下PaddleHub的版本

In [1]

!pip install paddlehub==2.0.0b2 -i https://mirror.baidu.com/pypi/simple
Looking in indexes: https://mirror.baidu.com/pypi/simple
Collecting paddlehub==2.0.0b2
  Downloading https://mirror.baidu.com/pypi/packages/ca/1c/a0304ed4ce0ee694f4d9d2ee35dc335a0359ad43eb9ddb8f687fb032a91c/paddlehub-2.0.0b2-py3-none-any.whl (197kB)
     |████████████████████████████████| 204kB 13.2MB/s eta 0:00:01
Requirement already satisfied: gunicorn>=19.10.0; sys_platform != "win32" in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlehub==2.0.0b2) (20.0.4)
Requirement already satisfied: visualdl>=2.0.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlehub==2.0.0b2) (2.1.1)
Requirement already satisfied: colorama in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlehub==2.0.0b2) (0.4.4)
Requirement already satisfied: opencv-python in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlehub==2.0.0b2) (4.1.1.26)
Requirement already satisfied: tqdm in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlehub==2.0.0b2) (4.36.1)
Requirement already satisfied: Pillow in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlehub==2.0.0b2) (7.1.2)
Collecting gitpython (from paddlehub==2.0.0b2)
  Downloading https://mirror.baidu.com/pypi/packages/fb/67/47a04d8a9d7f94645676fe683f1ee3fe9be01fe407686c180768a92abaac/GitPython-3.1.13-py3-none-any.whl (159kB)
     |████████████████████████████████| 163kB 25.2MB/s eta 0:00:01
Requirement already satisfied: numpy in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlehub==2.0.0b2) (1.16.4)
Collecting paddlenlp>=2.0.0b (from paddlehub==2.0.0b2)
  Downloading https://mirror.baidu.com/pypi/packages/df/72/0e90273bbb9e9b8966cc7112dc77f52ffba1b245c373a424bcd980cde041/paddlenlp-2.0.0rc1-py3-none-any.whl (177kB)
     |████████████████████████████████| 184kB 19.8MB/s eta 0:00:01
Requirement already satisfied: pyzmq in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlehub==2.0.0b2) (18.1.1)
Collecting easydict (from paddlehub==2.0.0b2)
  Downloading https://mirror.baidu.com/pypi/packages/4c/c5/5757886c4f538c1b3f95f6745499a24bffa389a805dee92d093e2d9ba7db/easydict-1.9.tar.gz
Collecting packaging (from paddlehub==2.0.0b2)
  Downloading https://mirror.baidu.com/pypi/packages/3e/89/7ea760b4daa42653ece2380531c90f64788d979110a2ab51049d92f408af/packaging-20.9-py2.py3-none-any.whl (40kB)
     |████████████████████████████████| 40kB 17.8MB/s eta 0:00:01
Collecting filelock (from paddlehub==2.0.0b2)
  Downloading https://mirror.baidu.com/pypi/packages/93/83/71a2ee6158bb9f39a90c0dea1637f81d5eef866e188e1971a1b1ab01a35a/filelock-3.0.12-py3-none-any.whl
Requirement already satisfied: pyyaml in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlehub==2.0.0b2) (5.1.2)
Requirement already satisfied: colorlog in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlehub==2.0.0b2) (4.1.0)
Requirement already satisfied: rarfile in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlehub==2.0.0b2) (3.1)
Requirement already satisfied: flask>=1.1.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlehub==2.0.0b2) (1.1.1)
Requirement already satisfied: matplotlib in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlehub==2.0.0b2) (2.2.3)
Requirement already satisfied: setuptools>=3.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from gunicorn>=19.10.0; sys_platform != "win32"->paddlehub==2.0.0b2) (41.4.0)
Requirement already satisfied: protobuf>=3.11.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from visualdl>=2.0.0->paddlehub==2.0.0b2) (3.14.0)
Requirement already satisfied: requests in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from visualdl>=2.0.0->paddlehub==2.0.0b2) (2.22.0)
Requirement already satisfied: six>=1.14.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from visualdl>=2.0.0->paddlehub==2.0.0b2) (1.15.0)
Requirement already satisfied: shellcheck-py in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from visualdl>=2.0.0->paddlehub==2.0.0b2) (0.7.1.1)
Requirement already satisfied: bce-python-sdk in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from visualdl>=2.0.0->paddlehub==2.0.0b2) (0.8.53)
Requirement already satisfied: Flask-Babel>=1.0.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from visualdl>=2.0.0->paddlehub==2.0.0b2) (1.0.0)
Requirement already satisfied: flake8>=3.7.9 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from visualdl>=2.0.0->paddlehub==2.0.0b2) (3.8.2)
Requirement already satisfied: pre-commit in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from visualdl>=2.0.0->paddlehub==2.0.0b2) (1.21.0)
Collecting gitdb<5,>=4.0.1 (from gitpython->paddlehub==2.0.0b2)
  Downloading https://mirror.baidu.com/pypi/packages/48/11/d1800bca0a3bae820b84b7d813ad1eff15a48a64caea9c823fc8c1b119e8/gitdb-4.0.5-py3-none-any.whl (63kB)
     |████████████████████████████████| 71kB 23.4MB/s eta 0:00:01
Collecting seqeval (from paddlenlp>=2.0.0b->paddlehub==2.0.0b2)
  Downloading https://mirror.baidu.com/pypi/packages/9d/2d/233c79d5b4e5ab1dbf111242299153f3caddddbb691219f363ad55ce783d/seqeval-1.2.2.tar.gz (43kB)
     |████████████████████████████████| 51kB 23.6MB/s eta 0:00:01
Requirement already satisfied: h5py in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlenlp>=2.0.0b->paddlehub==2.0.0b2) (2.9.0)
Requirement already satisfied: jieba in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlenlp>=2.0.0b->paddlehub==2.0.0b2) (0.42.1)
Requirement already satisfied: pyparsing>=2.0.2 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from packaging->paddlehub==2.0.0b2) (2.4.2)
Requirement already satisfied: Werkzeug>=0.15 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from flask>=1.1.0->paddlehub==2.0.0b2) (0.16.0)
Requirement already satisfied: Jinja2>=2.10.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from flask>=1.1.0->paddlehub==2.0.0b2) (2.10.1)
Requirement already satisfied: click>=5.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from flask>=1.1.0->paddlehub==2.0.0b2) (7.0)
Requirement already satisfied: itsdangerous>=0.24 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from flask>=1.1.0->paddlehub==2.0.0b2) (1.1.0)
Requirement already satisfied: cycler>=0.10 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from matplotlib->paddlehub==2.0.0b2) (0.10.0)
Requirement already satisfied: python-dateutil>=2.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from matplotlib->paddlehub==2.0.0b2) (2.8.0)
Requirement already satisfied: kiwisolver>=1.0.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from matplotlib->paddlehub==2.0.0b2) (1.1.0)
Requirement already satisfied: pytz in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from matplotlib->paddlehub==2.0.0b2) (2019.3)
Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from requests->visualdl>=2.0.0->paddlehub==2.0.0b2) (3.0.4)
Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from requests->visualdl>=2.0.0->paddlehub==2.0.0b2) (1.25.6)
Requirement already satisfied: idna<2.9,>=2.5 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from requests->visualdl>=2.0.0->paddlehub==2.0.0b2) (2.8)
Requirement already satisfied: certifi>=2017.4.17 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from requests->visualdl>=2.0.0->paddlehub==2.0.0b2) (2019.9.11)
Requirement already satisfied: pycryptodome>=3.8.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from bce-python-sdk->visualdl>=2.0.0->paddlehub==2.0.0b2) (3.9.9)
Requirement already satisfied: future>=0.6.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from bce-python-sdk->visualdl>=2.0.0->paddlehub==2.0.0b2) (0.18.0)
Requirement already satisfied: Babel>=2.3 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from Flask-Babel>=1.0.0->visualdl>=2.0.0->paddlehub==2.0.0b2) (2.8.0)
Requirement already satisfied: pycodestyle<2.7.0,>=2.6.0a1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from flake8>=3.7.9->visualdl>=2.0.0->paddlehub==2.0.0b2) (2.6.0)
Requirement already satisfied: pyflakes<2.3.0,>=2.2.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from flake8>=3.7.9->visualdl>=2.0.0->paddlehub==2.0.0b2) (2.2.0)
Requirement already satisfied: importlib-metadata; python_version < "3.8" in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from flake8>=3.7.9->visualdl>=2.0.0->paddlehub==2.0.0b2) (0.23)
Requirement already satisfied: mccabe<0.7.0,>=0.6.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from flake8>=3.7.9->visualdl>=2.0.0->paddlehub==2.0.0b2) (0.6.1)
Requirement already satisfied: aspy.yaml in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from pre-commit->visualdl>=2.0.0->paddlehub==2.0.0b2) (1.3.0)
Requirement already satisfied: toml in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from pre-commit->visualdl>=2.0.0->paddlehub==2.0.0b2) (0.10.0)
Requirement already satisfied: virtualenv>=15.2 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from pre-commit->visualdl>=2.0.0->paddlehub==2.0.0b2) (16.7.9)
Requirement already satisfied: cfgv>=2.0.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from pre-commit->visualdl>=2.0.0->paddlehub==2.0.0b2) (2.0.1)
Requirement already satisfied: identify>=1.0.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from pre-commit->visualdl>=2.0.0->paddlehub==2.0.0b2) (1.4.10)
Requirement already satisfied: nodeenv>=0.11.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from pre-commit->visualdl>=2.0.0->paddlehub==2.0.0b2) (1.3.4)
Collecting smmap<4,>=3.0.1 (from gitdb<5,>=4.0.1->gitpython->paddlehub==2.0.0b2)
  Downloading https://mirror.baidu.com/pypi/packages/d5/1e/6130925131f639b2acde0f7f18b73e33ce082ff2d90783c436b52040af5a/smmap-3.0.5-py2.py3-none-any.whl
Requirement already satisfied: scikit-learn>=0.21.3 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from seqeval->paddlenlp>=2.0.0b->paddlehub==2.0.0b2) (0.22.1)
Requirement already satisfied: MarkupSafe>=0.23 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from Jinja2>=2.10.1->flask>=1.1.0->paddlehub==2.0.0b2) (1.1.1)
Requirement already satisfied: zipp>=0.5 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from importlib-metadata; python_version < "3.8"->flake8>=3.7.9->visualdl>=2.0.0->paddlehub==2.0.0b2) (0.6.0)
Requirement already satisfied: joblib>=0.11 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from scikit-learn>=0.21.3->seqeval->paddlenlp>=2.0.0b->paddlehub==2.0.0b2) (0.14.1)
Requirement already satisfied: scipy>=0.17.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from scikit-learn>=0.21.3->seqeval->paddlenlp>=2.0.0b->paddlehub==2.0.0b2) (1.3.0)
Requirement already satisfied: more-itertools in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from zipp>=0.5->importlib-metadata; python_version < "3.8"->flake8>=3.7.9->visualdl>=2.0.0->paddlehub==2.0.0b2) (7.2.0)
Building wheels for collected packages: easydict, seqeval
  Building wheel for easydict (setup.py) ... done
  Created wheel for easydict: filename=easydict-1.9-cp37-none-any.whl size=6350 sha256=19acfeef0ed59be23b420fdf237cebf74b710c313b7c870d9949daf1f1205688
  Stored in directory: /home/aistudio/.cache/pip/wheels/35/8b/38/7327c27cd3d4590ffa75b98030bd3828e68b8bb3d599573163
  Building wheel for seqeval (setup.py) ... done
  Created wheel for seqeval: filename=seqeval-1.2.2-cp37-none-any.whl size=16171 sha256=5ea3fdc0aaf4008040f5418a52eabb3e48547525f2d6bb19a6a67461a800018b
  Stored in directory: /home/aistudio/.cache/pip/wheels/9c/f7/1c/8bdbcbb74a93c95d32f55c63f51e6dbf20b77b7c1db4164f14
Successfully built easydict seqeval
Installing collected packages: smmap, gitdb, gitpython, seqeval, paddlenlp, easydict, packaging, filelock, paddlehub
  Found existing installation: paddlehub 1.6.0
    Uninstalling paddlehub-1.6.0:
      Successfully uninstalled paddlehub-1.6.0
Successfully installed easydict-1.9 filelock-3.0.12 gitdb-4.0.5 gitpython-3.1.13 packaging-20.9 paddlehub-2.0.0b2 paddlenlp-2.0.0rc1 seqeval-1.2.2 smmap-3.0.5

模型列表

1. 人像动漫化 UGATIT

  • PS. 本模型对小姐姐的脸比较友好,生成的效果比较好一些,至于小哥哥嘛,唉,还是算了吧

In [2]

import paddlehub as hub

# 测试图像
test_pic = 'test1.jpg'

# 模型加载
# use_gpu:是否使用GPU进行预测
# 三个模型可选 UGATIT_83w UGATIT_92w UGATIT_100w
model = hub.Module(name='UGATIT_100w', use_gpu=False)

# 模型预测
result = model.style_transfer(
    images=None,
    paths=[test_pic],
    batch_size=1,
    output_dir='output',
    visualization=True
)
/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/matplotlib/__init__.py:107: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated, and in 3.8 it will stop working
  from collections import MutableMapping
/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/matplotlib/rcsetup.py:20: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated, and in 3.8 it will stop working
  from collections import Iterable, Mapping
/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/matplotlib/colors.py:53: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated, and in 3.8 it will stop working
  from collections import Sized
Download https://bj.bcebos.com/paddlehub/paddlehub_dev/UGATIT_100w.tar.gz
[##################################################] 100.00%
Decompress /home/aistudio/.paddlehub/tmp/tmpmko9p136/UGATIT_100w.tar.gz
[##################################################] 100.00%

[2021-02-10 19:34:01,069] [    INFO] - Successfully installed UGATIT_100w-1.0.0
[2021-02-10 19:34:01,098] [ WARNING] - The _initialize method in HubModule will soon be deprecated, you can use the __init__() to handle the initialization of the object

效果对比:

    

2. 人像卡通化 Photo2Cartoon

  • 本模型封装自 photo2cartoon-paddle 项目
  • 模型预测的大致流程如下:
    • 矫正人脸
    • 人像分割
    • 人像卡通化
  • 效果展示:

  • PS. 本模型还是对小姐姐的脸比较友好,生成的效果比较好一些,气抖冷,小哥哥什么时候才能站起来

In [3]

import paddlehub as hub

test_pic = 'test2.jpg'

# 模型加载
model = hub.Module(name='Photo2Cartoon')

# 模型预测
result = model.Cartoon_GEN(
    images=None,
    paths=[test_pic],
    batch_size=1,
    output_dir='output',
    visualization=True,
    use_gpu=False
)

效果对比:

  

 

3. 人脸素描画像生成 U2Net

  • 本模型转换至 U-2-Net 项目中的 u2net_portrait 模型
  • 模型预测的大致流程如下:
    • 人脸检测
    • 人脸裁切
    • 画像生成
  • 效果展示:

  • PS. 本模型没有上述模型的问题,小哥哥终于站起来,而且除了人像,其实其他的图像也是可以进行素描生成的,就是效果可能不佳

In [4]

import paddlehub as hub

# 测试图像
test_pic = 'test1.jpg'

# 模型加载
model = hub.Module(name='U2Net_Portrait')

# 模型预测
result = model.Portrait_GEN(
    images=None,
    paths=[test_pic],
    scale=1,
    batch_size=1,
    output_dir='output_portrait',
    face_detection=False,
    visualization=True
)

效果对比

5. 街景动漫化

  • 支持一键街景照片动漫化,适用于美食、风景、人物等场景。 

In [8]

%env CUDA_VISIBLE_DEVICES=0

# 转换为宫崎骏《起风了》风格图片

import cv2
import paddlehub as hub

# 模型加载
# use_gpu:是否使用GPU进行预测

model = hub.Module(name='animegan_v2_hayao_99', use_gpu=True)

# 模型预测
result = model.style_transfer(images=[cv2.imread('./anime.jpg')],visualization=True)

效果对比:

6. 偷天换日

效果展示

  • 原始视频:

    在这里插入图片描述

  • 木星:

    在这里插入图片描述

  • 雨天:

    在这里插入图片描述

  • 银河:

    在这里插入图片描述

  • 第九区飞船:

    在这里插入图片描述

In [ ]

import paddlehub as hub

# 加载模型
model = hub.Module(name='SkyAR')

# 魔法换天
# video_path:输入视频路径
# save_path:输出视频路径
model.MagicSky(
    video_path='test_videos/canyon.mp4',
    save_path='save_videos/jupiter.mp4',config='jupiter',
        is_rainy=False, preview_frames_num=0, is_video_sky=False, is_show=False,
        skybox_img=None, skybox_video=None, rain_cap_path=None,
        halo_effect=True, auto_light_matching=False,
        relighting_factor=0.8, recoloring_factor=0.5, skybox_center_crop=0.5
)

 

更多选项

  • video_path(str):输入视频路径
  • save_path(str):视频保存路径
  • config(str): 预设 SkyBox 配置,所有预设配置如下,如果使用自定义 SkyBox,请设置为 None:
[
    'cloudy', 'district9ship', 'floatingcastle', 'galaxy', 'jupiter',
    'rainy', 'sunny', 'sunset', 'supermoon', 'thunderstorm'
]
  • skybox_img(str):自定义的 SkyBox 图像路径
  • skybox_video(str):自定义的 SkyBox 视频路径
  • is_video_sky(bool):自定义 SkyBox 是否为视频
  • rain_cap_path(str):自定义下雨效果视频路径
  • is_rainy(bool): 天空是否下雨
  • halo_effect(bool):是否开启 halo effect
  • auto_light_matching(bool):是否开启自动亮度匹配
  • relighting_factor(float): Relighting factor
  • recoloring_factor(float): Recoloring factor
  • skybox_center_crop(float):SkyBox center crop factor
  • preview_frames_num(int):设置预览帧数量,即只处理开头这几帧,设为 0,则为全部处理
  • is_show(bool):是否图形化预览
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

身在江湖的郭大侠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值