体验华为云ModelArts,用python让你的头像动漫化【玩转华为云】

举报
福州司马懿 发表于 2023/05/28 15:26:51 2023/05/28
【摘要】 产品入口 选择模型 头像动漫化模型 订阅模型 部署云服务 在线调试 代码调试 获取AK/SK 获取API公网接口 编写Python脚本 总结 产品入口华为云的ModelArts网址为:https://www.huaweicloud.com/product/modelarts.html直接在浏览器中输入该地址,即可进入页面 选择模型在ModelArts产品页面的功能模块处,选择“AI Gal...

产品入口

华为云的ModelArts网址为:https://www.huaweicloud.com/product/modelarts.html

直接在浏览器中输入该地址,即可进入页面

图片.png

选择模型

在ModelArts产品页面的功能模块处,选择“AI Gallary”

图片.png

AI Gallery 是一个“资产集市”。通过该集市,开发者可以有偿(或无偿)的共享Notebook代码样例、数据集、算法、模型、Workflow等AI资产。

本文教大家拿来即用,直接使用AI Gallary训练好的模型。在 AI Gallery 页面,选中“资产集市”,然后点击“部署”下的“模型”按钮

图片.png

在模型首页,能看到一个近期更新,里面有一个“头像动漫化模型”。本文就带大家体验下,如何借助华为云ModelArts,让你的头像动漫化

图片.png

头像动漫化模型

“头像动漫化模型”的链接地址为:https://developer.huaweicloud.com/develop/aigallery/model/detail?id=b37976a6-4ffe-48bd-aba0-ffa82a44d91a

它通过POST的方式接收上传的图片,然后将图片进行动漫化,并返回处理好的图片的Base64信息

图片.png

订阅模型

点击右上角的订阅按钮,确定提示后,即可订阅到该模型。

图片.png

订阅成功后,会弹出一个绿框提示,然后额外显示出一个“前往控制台”的按钮

图片.png

点击“前往控制台”后,首先要做的就是选择云服务区域

图片.png

部署云服务

进入控制台后,默认只会显示出你刚刚订阅的模型。点击“部署”按钮,然后选择“在线服务”

图片.png

然后开始实际部署

  • 改变服务器名(也可以不改变,主要是为了好认)
  • 选择免费的服务器
  • 勾选协议

图片.png

图片.png

确认部署信息后,提交即可

图片.png

图片.png

然后就是在控制台中等待部署状态变为“已启动”

图片.png

在线调试

等待了10分钟左右,模型已经部署成功了。点击右边的“预测”按钮,进入在线服务页面

图片.png

图片.png

在这里上传一个需要“动漫化”的照片,然后点击“预测”。等待了2-3秒后,可以看到右侧出现 base64 形式的返回结果,如下图。

图片.png

推荐一个站长工具,可以用来将BASE64转为图片:https://tool.chinaz.com/tools/imgtobase/

图片.png

但是经过测试,该BASE64无法转为图片(应该是有错)

图片.png

代码调试

要使用代码调用云服务,首先要拿到的就是你的AK/SK

获取AK/SK

下面使用AK和SK的方式调用接口。获取AK和SK的方式为

  1. 右上角账户名,点击“我的凭证”
  2. 左侧切换到“访问密钥”选项卡
  3. 新建访问密钥
  4. 下载 credentials.csv 密钥文件
  5. Access Key Id 就是AK;Secret Access Key 就是SK

注意:如果访问密钥泄露,会带来数据泄露风险,且每个访问密钥仅能下载一次,为了帐号安全性,建议您定期更换并妥善保存访问密钥。

图片.png

图片.png

获取API公网接口

选项卡切换到“调用指南”,然后复制“API接口公网地址”即可

图片.png

我这里的地址是:https://76f04ee698f04b7baa560cee38657ac2.apig.cn-north-4.huaweicloudapis.com/v1/infers/0f62e2f6-7905-4fc8-9187-7b0276d8ad10

编写Python脚本

首先从下面链接下载apig sdk
https://obs.cn-north-1.myhuaweicloud.com/apig-sdk/ApiGateway-python-sdk.zip

下载好后解压文件夹,解压后的目录结构如下 (执行main.py时,会自动引用apig_sdk文件夹下的内容)

图片.png

然后在开始菜单中,打开 SpyderJupyter Notebook(本文以 Spyder 为例)

图片.png

打开 ApiGateway-python-sdk/main.py 文件,将其替换为如下代码

# -*- coding: utf-8 -*-
"""
Created on Sun May 28 14:40:26 2023

@author: Administrator
"""

import requests
from apig_sdk import signer

# Config url, ak, sk and file path.
url = "在线服务调用地址"
ak = "AK值"
sk = "SK值"
file_path = "预测文件的本地路径"

# Create request, set method, url, headers and body.
method = 'POST'
headers = {"x-sdk-content-sha256": "UNSIGNED-PAYLOAD"}
request = signer.HttpRequest(method, url, headers)

# Create sign, set the AK/SK to sign and authenticate the request.
sig = signer.Signer()
sig.Key = ak
sig.Secret = sk
sig.Sign(request)

# Send request
files = {'images': open(file_path, 'rb')}
resp = requests.request(request.method, request.scheme + "://" + request.host + request.uri, headers=request.headers, files=files)

# Print result
print(resp.status_code)
print(resp.text)

注意:其中的4个中文标注的变量,需要替换成你自己的值

图片.png

执行后,可以看到一大串 BASE64 的图片信息,这并不直观。我们将其显示为图片看看。添加如下代码

import base64
from io import BytesIO
from PIL import Image
import matplotlib.pyplot as plt

result = eval(resp.text)
base64imgs = result["results"]
for i in base64imgs:
    imgdata = base64.b64decode(i)
    img = Image.open(BytesIO(imgdata))
    plt.imshow(img)
    plt.show()

执行后发现报错:

图片.png

Figures are displayed in the Plots pane by default. To make them also appear inline in the console, you need to uncheck “Mute inline plotting” under the options menu of Plots.

打开tools→preferences→ipython console→graphics backend→automatic,设置完成然后重启Spyder

图片.png

然后再次运行程序,就可以在 Plots 处查看到图片了。新增的Python块会将返回的Base64数据转化为图片并显示出来

图片.png

下面晒一下转化前后的对比图

  • 原图
  • 处理后的图片(只会跳出面部的部分裁剪并处理)

从两幅图中可以发现,该服务不单单对图片进行动漫化,还包含人脸识别算法,只提取出图片中关于人脸的部分,然后进行处理,真的是非常智能

停止服务

实验结束后,展开右边的更多按钮。手动停止,并关闭服务,释放资源

图片.png

总结

用华为云ModelArts的的AI模型,可以让你0人工智能基础,就能部署上线一个很强大的AI模型,而且操作、代码都还很简单,赶紧一起来试试吧

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。