3. 手势识别系统设计——使用 baidu API

        上午写完博客后,和女朋友吃完饭,收拾一下就开始看百度的API,基本上和Face++相同,不同之处在于返回的JSON信息以及多了一个面部信息。

1. 安装百度API

安装的过程很简单:

pip install baidu-aip

安装完成:

都不需要下载百度官方的SDK。

2. 生成ID,KEY,SECRET。

到百度AI开放平台——> 人体分析 ——> 创建应用 ——> 填写信息(记得选择人体分析,默认是选择好的)。

就有了想要的ID,KEY,Secret。

3. Coding

准备好之后,就可以开始调用百度API了,还是用Python来写,方便。

3.1 导库:

# 导库
from aip import AipBodyAnalysis
import cv2 as cv

3.2 设定常量,建立连接

# 在官网申请,申请好了之后将*修改
API_ID = '*****'  
API_KEY = '*****'
SECRET_KEY = '****'
client = AipBodyAnalysis(APP_ID,API_KEY,SECRET_KEY)  # 建立连接

3.3  读取文件,完成识别

# 读取文件方法
def get_file_content(filePath):
    with open(filePath,'rb') as fp:
        return fp.read()
# 读取图片
image = get_file_content('test.jpg')
# 识别,得到JSON信息
gesture_info = client.gesture(image)
print(gesture_info)

上图是我们得到的JSON信息,发现和Face++有一点不同,没有error_message(测试上传错误之后只会返回一个error_message),但是多了result_num,在类别里面多了一个Face,其他的没有多大的不同。我们接下来对JSON进行解析。

3.4 JSON解析

先获取到result_num:

# 获取到结果个数
num = gesture_info['result_num']
print(num)

之后获取到结果:

# 获取到结果集合
if(num != 0):
    result = gesture_info['result']
    print(result)

最后我们输出除了面部意外的其他的信息:
 

for i in range(0,2):
    classname = result[i]['classname']
    if(classname == 'Face'):
        continue
    print(result[i])

输出结果:

测试图:

         之后想要试试能不能完成实时的一个检测,但是估计在线版本的都有点难度,因为需要一次IO的读写操作以及一定的网络延时,虽然Face++检测一张图片的时间在100us左右。之后试一试SVM的本地版本。

猜你喜欢

转载自blog.csdn.net/RookieSa/article/details/84202043