2021-05-27

一、注册登录百度智能云

在这里插入图片描述
百度智能云与百度旗下各款APP账号通用,大家无需另行注册!

二、创建应用获取SDK

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

点击左侧产品服务→人工智能→人体分析。
在这里插入图片描述

2.2 创建手势识别应用

进入人体分析概览后,点击创建应用。
在这里插入图片描述
应用名称进行填写,例如:手势识别
接口选择:人体分析
应用归属:个人
应用描述:例如个人学习使用
在这里插入图片描述
填写完毕后,点击立即创建。
就会跳转至创建完毕。
在这里插入图片描述
点击查看应用详情。

2.3 获取SDK

在这里插入图片描述
查看应用详情就可以获取AppID、API Key、Secret Key等信息。

三、手势识别

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

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

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

注:

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

2)除识别手势外,若图像中检测到人脸,会同时返回人脸框位置。
在这里插入图片描述
在这里插入图片描述

附源码

pip install baidu-aip
pip install opencv-python
import cv2
from aip import AipBodyAnalysis
from aip import AipSpeech
from 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'):
            break


Thread(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'):
            break

gesture_recognition()


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值