Tensorflow+树莓派,自制“猜拳神器”

本教程的灵感来源于谷歌云负责维护开发者关系的Kaz Sato制作的一个“猜拳机器”教程[1],见下图。该教程使用弯曲传感器和Tensorflow来识别猜拳手势,然后选择相应的选项:石头、剪刀、布。该项目还上了大名鼎鼎的谷歌大脑负责人Jeff Dean关于谷歌大脑在2017年的进展回顾里[2]


                           图1 

我想既然已经使用了Tensorflow,为什么不使用摄像头和卷积神经网络来识别手势,以实现同样的功能呢?

说干就干,本教程准备使用Tensorflow+树莓派,通过摄像头获取手势图片,然后通过卷积神经网络来识别手势。这里的主要难点是做到“实时和准确”:为了使人感觉不出有明显的延迟,处理时间必须保持在40ms以内(25fps),而且识别的精度也必须足够高,估计要95%以上。

本教程使用笔记本电脑进行模型的训练,使用树莓派进行模型的部署。这里假定读者对树莓派和Tensorflow有一定的了解。关于树莓派系统的安装和基本知识、摄像头以及舵机的使用,这里就不多做介绍;另外,Tensorflow在电脑端的安装和操作也不多作介绍。

这里先奉上最后的成果:


软硬件配置

本教程的电脑端使用的软硬件配置如下:

笔记本:ThinkPad E430C

操作系统: Windows 7

Python版本: 3.5.3

Tensorflow版本: 1.5.0

树莓派端的软硬件配置如下:

树莓派: 树莓派3 Model B

操作系统: 16g内存卡,2017-11-29-raspbian-stretch

摄像头: CSI接口 500万像素

Python版本: 2.7.0

Tensorflow版本: 1.1.0

舵机: 辉盛SG90

这里的配置都不是必须一样的,也不是最优的,而是因为我的电脑和树莓派现在的版本刚好是现在的样子。组装好的硬件系统如下所示:


                                                                       图2

第一步: 树莓派安装OpenCV和Tensorflow

OpenCV的安装比较简单,依次输入以下代码即可

sudo apt-get update     
sudo apt-get upgrade  #更新系统    
sudo apt-get install libopencv-dev    
sudo apt-get install python-opencv

如果要安装Tensorflow的最新版本,需要从源代码进行编译,比较费时间。这里使用大神sanjabrahams[3]为树莓派预编译的二进制版本进行安装。现在的预编译的最新版本是Tensorflow 1.1.0,但已经够用了。安装步骤如下:

安装pip, python-dev

sudo apt-get install python-pip
sudo apt-get install python-dev

使用Python 2.7安装

wget https://github.com/samjabrahams/tensorflow-on-raspberry-pi/releases/download/v1.1.0/tensorflow-1.1.0-cp27-none-linux_armv7l.whl
sudo pip install tensorflow-1.1.0-cp27-none-linux_armv7l.whl

如果因为网络原因无法下载上述预编译的文件,可以到下面的百度网盘下载

链接:https://pan.baidu.com/s/1pMKyDg3 密码:4nqr

第二步: 收集数据

一般来说,深度学习的数据都是比较贵的。但是,在本教程中,数据比较廉价,打开摄像头,在图2的背景板前做“石头、剪刀、布”手势即可获取足够多的数据。为了识别时精度比较高,确保你的手势出现在背景板前的不同位置。获取的部分数据如下:

                                                                               图3

接着,将上述数据进行手工分类,分别存放在四个类别的文件夹中,我这里按照“石头、剪刀、布和其他”的

评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值