3. 手势识别系统设计——使用 baidu API
Posted 小可爱的大笨蛋
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的本地版本。
以上是关于3. 手势识别系统设计——使用 baidu API的主要内容,如果未能解决你的问题,请参考以下文章
Hololens开发笔记之Gesture手势识别(基本介绍)
毕业设计 - 题目:基于机器视觉opencv的手势检测 手势识别 算法 - 深度学习 卷积神经网络 opencv python