如果我们在日常生活中,想要写一个手势识别的程序,需要从哪开始?先选一个合适的神经网络模型,然后拍摄大量的手势图片,手动分类之后进行训练?这对于想学习机器学习的同学来说是不错的。但是这种方法需要耗费大量的精力还有时间成本,如何快速有效的写一个图像手势识别程序?

说明

这篇文章是教大家在做一些项目的时候,如果我们遇到了一些需要用到机器学习的地方,例如图像识别,语音识别,人脸定位,行为分析,数量统计等等,或者说你要自己训练一个神经网络,完全可以寻求别人已经训练好的模型。可以在百度云AI开放平台上面轻松找到。在阿里云上也可以找到类似的平台。
20200606170515
这里可以找到你需要用到的绝大部分AI接口。这里以图像手势识别为例,简单介绍一下使用方法。

准备

  • 一个百度云账号
  • 合理搭建的Python环境

创建一个人体分析应用

在百度ai开放平台上创建一个应用,名称随意,类型随意,接口选择人体分析,应用描述随便写点。
20200606170921
人体分析每天可以免费使用10000次,基本上足够我们日常使用了。

在创建完之后,我们可以在应用下面获得APP_ID、API_KEY和SECRET_KEY。

使用接口

接口的使用其实不难,如果不会使用的,可以下载SDK文档自己查看,也可以在网页上查看使用示例

这个手势识别接口一共支持24种手势的识别以及人脸定位等等。
20200606171319

Python代码

这里贴上我使用的Python代码,APP_ID就留着吧,不要恶意刷图片就行。把图片地址换成自己的就可以了。

首先需要安装百度API接口模块。

1
pip install baidu-aip

注意是aip不是api,不要搞错了。

然后就是代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from aip import AipBodyAnalysis

APP_ID = '20260576'
API_KEY = '1OvhOINzU5Ku0U6gMh4f9Cxb'
SECRET_KEY = '1D5EhSBWWQnDsnkVKW1xURIzs55qLwXU'

client = AipBodyAnalysis(APP_ID, API_KEY, SECRET_KEY)

def get_file_content(filePath):
with open(filePath, 'rb') as fp:
return fp.read()

image = get_file_content('D:/Desktop/1.jpg')
result=client.gesture(image)
print(result)

测试图片
1
返回结果

1
2
3
4
5
6
7
8
9
10
{
'log_id': 2580547130801464198,
'result_num': 1,
'result': [{
'probability': 0.9984192848205566,
'top': 166,
'height': 375,
'classname': 'Insult',
'width': 213,
'left': 145}]}

可以看到classname中准确识别出了Insult手势。

其他的ai模块也可以自己使用一下,基本上都是这样的调用方法,传输图片,返回结果,如此。

注:如果要用在自己的项目中,请将APP_ID、API_KEY和SECRET_KEY换成自己的,出问题了我可不负责。:smile: