失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Python之调用百度API实现手势识别

Python之调用百度API实现手势识别

时间:2019-09-07 01:05:25

相关推荐

Python之调用百度API实现手势识别

目录

1.作者介绍2.实现过程2.1注册登录百度智能云2.2进入百度智能云---人体分析2.3创建手势识别应用2.4 获取SDK3.结果及代码3.1手势识别结果3.2代码

1.作者介绍

周新龙,男,西安工程大学电子信息学院,级研究生,张宏伟人工智能课题组

研究方向:机器视觉与人工智能

电子邮件:402850713@

2.实现过程

2.1注册登录百度智能云

百度智能云与百度旗下各款APP账号通用,大家无需另行注册!

2.2进入百度智能云—人体分析

点击左侧产品服务→人工智能→人体分析。

2.3创建手势识别应用

进入人体分析概览后,点击创建应用。

应用名称进行填写,例如:手势识别

接口选择:人体分析

应用归属:个人

应用描述:例如个人学习使用

填写完毕后,点击立即创建。

就会跳转至创建完毕。

点击查看应用详情。

2.4 获取SDK

查看应用详情就可以获取AppID、API Key、Secret Key等信息。

3.结果及代码

3.1手势识别结果

支持的24类手势列表:拳头、OK、祈祷、作揖、作别、单手比心、点赞、Diss、我爱你、掌心向上、双手比心(3种)、数字(9种)、Rock、竖中指。

主要适用于3米以内的自拍、他人拍摄,1米内识别效果最佳,拍摄距离太远时,手部目标太小,无法准确定位和识别。

图片中有多个手势时,也能识别,但该情况下,单个手势的目标可能较小,且角度可能不好(例如存在倾斜、遮挡等),识别效果可能受影响。建议针对单个手势进行识别,效果最佳。

注:

1)上述24类以外的其他手势会划分到other类。

2)除识别手势外,若图像中检测到人脸,会同时返回人脸框位置。

3.2代码

pip install baidu-aippip install opencv-pythonimport cv2from aip import AipBodyAnalysisfrom aip import AipSpeechfrom threading import Thread""" 你的 APPID AK SK """APP_ID = 'xxxxx'API_KEY = 'xxxx'SECRET_KEY = 'xxxx'''' 调用'''hand = {'One': '数字1', 'Five': '数字5', 'Fist': '拳头', 'Ok': 'OK','Prayer': '祈祷', 'Congratulation': '作揖', 'Honour': '作别','Heart_single': '比心心', 'Thumb_up': '点赞', 'Thumb_down': 'Diss','ILY': '我爱你', 'Palm_up': '掌心向上', 'Heart_1': '双手比心1','Heart_2': '双手比心2', 'Heart_3': '双手比心3', 'Two': '数字2','Three': '数字3', 'Four': '数字4', 'Six': '数字6', 'Seven': '数字7','Eight': '数字8', 'Nine': '数字9', 'Rock': 'Rock', 'Insult': '竖中指', 'Face': '脸'}# 手势识别gesture_client = AipBodyAnalysis(APP_ID, API_KEY, SECRET_KEY)capture = cv2.VideoCapture(0) # 0为默认摄像头def camera():while True:# 获得图片ret, frame = capture.read()# cv2.imshow(窗口名称, 窗口显示的图像)# 显示图片cv2.imshow('frame', frame)if cv2.waitKey(1) == ord('q'):breakThread(target=camera).start() # 引入线程防止在识别的时候卡死def gesture_recognition():# 第一个参数ret 为True 或者False,代表有没有读取到图片# 第二个参数frame表示截取到一帧的图片while True:try:ret, frame = capture.read()# 图片格式转换image = cv2.imencode('.jpg', frame)[1]gesture = gesture_client.gesture(image) # AipBodyAnalysis内部函数words = gesture['result'][0]['classname']print(hand[words])except:print('识别失败')if cv2.waitKey(1) == ord('q'):breakgesture_recognition()

如果觉得《Python之调用百度API实现手势识别》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。