网易云api接口_四十九、使用百度云API接口实现手势识别和抠图

「@Author:Runsen」

RESTAPI

API已在软件、Web和移动应用程序开发领域无处不在。API(Application Programming Interface)是指应用程序编程接口,包括在操作系统中的动态链接库文件例如dllso,或者基于TCP层的socket连接,用来提供预定义的方法和函数,调用者无需访问源码和理解内部原理便可实现相应功能。

你应该经常去调用过 API ,通过一定的规则就能快速使用云市场提供的服务,比如你想要使用人脸识别,就有相应的 API 供你使用:

REST即表述性状态传递(英文:Representational State Transfer,简称REST)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。它是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。(引用自百度百科)

网络应用程序,分为前端和后端两个部分。REST 的 API 配合JSON格式的数据交换,使得前后端分离、数据交互变得非常容易,而且也已经成为了目前Web领域最受欢迎的软件架构设计模式。

实现手势识别

由于不注重算法模型的,因此个人使用的是百度手势识别API接口来实现手势识别。

百度Ai开发大脑:https://ai.baidu.com/

63b7c82fa00e51743b0bcf76a83df2c0.png

在技术文档中需要创建一个应用来获取APP_ID ,API_KEY和SECRET_KEY。

8c470197cf26f2f4cf987153d407cfd2.png

参考官方的技术文档:https://ai.baidu.com/ai-doc/BODY/4k3cpywrv

d7fd946c0085a8a49648bb053fa0288a.png

获取Access Token:https://ai.baidu.com/ai-doc/REFERENCE/Ck3dwjhhu

下面我们对一张图片调用API接口,实现手势识别

f39e21e7e5e7a7c96d6a88d9d9f91ae3.png

具体代码如下。

import requestsimport base64API_KEY = '0EGiM1wDAH5kmFAvhYVLYCbs'SECRET_KEY = 'KVugHxxu4uq203b111SwVY2w98Cd9D70'# client_id 为官网获取的AK, client_secret 为官网获取的SKhost = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id='+ API_KEY + '&client_secret=' + SECRET_KEYresponse = requests.get(host)if response:    access_token = response.json()['access_token']    if access_token:        request_url = "https://aip.baidubce.com/rest/2.0/image-classify/v1/gesture"        # 二进制方式打开图片文件        f = open('1.png', 'rb')        img = base64.b64encode(f.read())        params = {"image":img}        request_url = request_url + "?access_token=" + access_token        headers = {'content-type': 'application/x-www-form-urlencoded'}        response = requests.post(request_url, data=params, headers=headers).json()        if response['result'][0]:            print(response['result'][0]['classname'])
abfb4d8c4425528ca1cf42d8d7a2ec65.png

实现人脸抠图

实现人脸抠图,我用过scikit-image,opencv,对于百度深度学习框架paddlepaddle,中文名称叫“飞桨”,几行代码也可以搞定,使用的模型是deeplabv3p_xception65_humanseg,其本身还是调用API接口。

下面我就直接展示一下效果图吧。百度AI将人脸系列封装到了一个AipBodyAnalysis类上。返回的是图片的Base64的字符串,最后使用base64.b64decode转化成图片即可。

下面我就采用自己的头像进行一个简单的调用API接口进行人脸抠图

fd6d6ec5d1005a51a34c07876bc94db7.png

1.jpg

具体代码如下。

from aip import AipBodyAnalysis#引入Baidu_API类""" 你的 APPID AK SK """APP_ID = '23061934'API_KEY = '0EGiM1wDAH5kmFAvhYVLYCbs'SECRET_KEY = 'KVugHxxu4uq203b111SwVY2w98Cd9D70'client = AipBodyAnalysis(APP_ID, API_KEY, SECRET_KEY)# 人像分割 实现抠图def bodySeg(filePath, outPath):    """ 读取图片 """    with open(filePath, 'rb') as fp:        result = client.bodySeg(fp.read())    labelmap = base64.b64decode(result['foreground'])    with open(outPath, 'wb') as fp:        fp.write(labelmap)  bodySeg('1.jpg','2.jpg')
26d39cf7a6000b93b08fa7503f515ef9.png

2.jpg

本文主要介绍和使用接口的请求方式,通过访问得到Json数据,然后通过键值对取值即可。

本文已收录 GitHub,传送门~[1] ,里面更有大厂面试完整考点,欢迎 Star。

Reference

[1]

传送门~: https://github.com/MaoliRUNsen/runsenlearnpy100

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值