吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 8030|回复: 15
收起左侧

[Python 原创] 【python】树莓派相机实现手势识别,调百度API

  [复制链接]
xuehu96 发表于 2019-8-11 18:10

1. 做这个的想法

之前一直在玩百度的IOT天工物联网,一次偶然看到了人工智能标签下的人体分析功能,进去看了文档和API,发现有个手势识别很好玩,而且居然50000次/天免费  

正巧,手边有一个带摄像头的树莓派3B,说干就干,开始。

2. 资料和准备

百度的API https://cloud.baidu.com/doc/BODY/s/ajwvxyyn0/

可以看到,能够识别24类手势,还挺好玩的,树莓派支持python,手势识别正好有python的API

首先远程连接树莓派,enable摄像头(raspi-config)

pip安装百度的aip库(sudo pip3 install baidu-aip)

python2今年就停止支持了,所以直接上python3

3.编写代码

代码主要分为3部分

  • 拍照
  • 人体识别
  • 文字转语音

全部代码如下(AK和SK隐藏了,需要的时候换成你自己的就行,反正是免费的):

# 使用python3运行
# 作者:xuehu96
# 编写时间 2019年8月11日
from picamera import PiCamera,Color
import time
import demjson
from pygame import mixer 
from aip import AipBodyAnalysis
from aip import AipSpeech

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':'脸'}

# 下面的key要换成自己的 
""" 人体分析 APPID AK SK """
APP_ID = '*******'
API_KEY = '*******************'
SECRET_KEY = '*******************'
""" 语音技术 APPID AK SK """
SpeechAPP_ID = '*******'
SpeechAPI_KEY ='*******************'
SpeechSECRET_KEY = '*******************'

camera = PiCamera()
client = AipBodyAnalysis(APP_ID, API_KEY, SECRET_KEY)
Speechclient = AipSpeech(SpeechAPP_ID, SpeechAPI_KEY, SpeechSECRET_KEY)

'''cam config'''
camera.resolution = (1280, 720)
camera.annotate_text = "xuehu96 !" #图片上加水印
#camera.annotate_background = Color('blue')
camera.annotate_text_size = 20
camera.annotate_foreground = Color('white')
camera.brightness = 55

""" 读取图片 """
def get_file_content(filePath):
    with open(filePath, 'rb') as fp:
        return fp.read()
mixer.init()
while True:
    """1.拍照 """
    camera.start_preview()
    time.sleep(2)
    mixer.music.stop()
    camera.capture('./image.jpg')
    camera.stop_preview()

    image = get_file_content('./image.jpg')

    """ 2.调用手势识别 """
    raw = str(client.gesture(image))
    text = demjson.decode(raw)
    try:
        res = text['result'][0]['classname']
    except:
        print('识别结果:什么也没识别到哦~' )
    else:
        print('识别结果:' + hand[res])

        """ 3.调用文字转语音"""
        content = hand[res]
        result = Speechclient.synthesis(content, 'zh', 1, {'spd': 2, 'vol': 6, 'per': 1})
        #print(result)
        if not isinstance(result, dict):
            with open('./res.mp3', 'wb') as f:
                f.write(result)

            mixer.music.load('./res.mp3')
            mixer.music.play()
#            time.sleep(3)
#            

4. 运行与测试

编写一个body.py, 然后 python3 body.py就可以运行了,如果缺少什么库 就sudo pip3 install xxx就行了

图片和测试结果贴在文章的最后。

可以看到,百度在ai方面还是挺强的,识别率很高。识别出后,通过文字转语音,再用pygame模块播报出来,再给树莓派接上USB小音箱,就能听到识别的结果了

5. 最后

可以看到 python语言确实非常简单方便,短短几十行代码,就完成了这样一个小功能,这样的小作品用做本科的普通毕业设计都绰绰有余,而且可以在此基础上加更多的功能,比如和智能家居联动(手势打开窗帘,手势开灯等等),就更好玩了。不过我只是想起来就做了这个小想法,没准备做更多的功能,上面你的代码完整并且完全开源,填上key就能运行,大家有兴趣了可以在我代码基础上添加更多创意。




TIM截图20190811180335.png
TIM图片20190811180425.jpg

免费评分

参与人数 10吾爱币 +12 热心值 +8 收起 理由
dbgba + 1 + 1 我很赞同!
s58046 + 1 + 1 用心讨论,共获提升!
evayang + 1 + 1 热心回复!
1358582642 + 1 + 1 谢谢 @Thanks!
taobaogd + 1 这个必须赞
苏紫方璇 + 5 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
Kings_jk + 1 热心回复!
清风浅辰 + 1 用心讨论,共获提升!
小补 + 1 + 1 我很赞同!
叫我阿东麽 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

萧筱小 发表于 2019-8-11 20:09
爱拍阴天 发表于 2019-8-11 19:18
牛逼,就是百度api的实在是太少了要是有那种自定义的就完美的(纯属瞎扯)

可以啊,自定义就是自己开发一个。可以的
 楼主| xuehu96 发表于 2019-8-11 19:43
582938472 发表于 2019-8-11 19:07
一直都在识别吗 还是有延时的

目前是3秒识别一次,因为百度的API是上传图片,不是视频流无法做到实时识别
 楼主| xuehu96 发表于 2019-8-11 18:13
wuai6757620 发表于 2019-8-11 18:18
看不懂!
不败的意志 发表于 2019-8-11 18:26
大神的水平高啊!刚开始学习python,膜拜中。
zyy22664488 发表于 2019-8-11 18:27
感谢分享
慕沐 发表于 2019-8-11 18:33
果然还是大神 一个想法就实施
下次我有想法 能不能让你帮忙 哈哈
582938472 发表于 2019-8-11 19:07
一直都在识别吗 还是有延时的
爱拍阴天 发表于 2019-8-11 19:18
牛逼,就是百度api的实在是太少了要是有那种自定义的就完美的(纯属瞎扯)
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-24 15:08

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表