为了完(ying)成(fu)HCI的项目,报了两位大佬的大腿,打算借此机会学习一下手势识别。
第0篇当然是进行环境搭建了~(因为可以凑出来一篇内容)
好了来看一下项目概要和环境要求:
项目概要
这次的项目是我HCI课程的项目的一部分,主要目的是通过一个摄像头实现实时的手势识别
为什么只写项目的一部分呢?因为项目除了手势识别还要干什么还没想好(逃
有可能是实现一个小游戏吧
咳咳说远了,回到我们的主题
既然是使用摄像头的手势识别,肯定要基于低分辨率(毕竟现在主流的电脑摄像头基本上都是1到2MP的),并且是2D的图像,那么就会想到采用OpenCV来进行录制。
其次,为了进行训练,当然要采用主流的(至少是我很喜欢使用的)Tensorflow框架。
项目环境
既然上面都说到了主要利用到的包,那么就列一下:
OpenCV,版本2.4.13.6,是CV2的最新版(截止时间为2018年5月1日,下同)
Python,版本3.6.5(采用了Anaconda 3 x64发行版,便于管理更多需要的包)
Tensorflow-GPU,版本1.8.0
其他可能用到的包(直接使用Anaconda管理)
因为我的项目还没有完成,我不太确定是否还会增加别的包,就目前来看,使用Anaconda来管理下面的包都是没有问题并且非常方便的(Anaconda是不是考虑给我发点钱?)
Numpy,版本1.14.3
NumPy是Python语言的一个扩充程式库。支援高阶大量的维度阵列与矩阵运算,此外也针对阵列运算提供大量的数学函数函式库。NumPy的前身Numeric最早是由Jim Hugunin与其它协作者共同开发,2005年,Travis Oliphant在Numeric中结合了另一个同性质的程式库Numarray的特色,并加入了其它扩充功能而开发了NumPy。NumPy为开放原始码并且由许多协作者共同维护开发。
注:介绍引用自维基百科,本人不对从其引用的内容的准确性作任何保证,侵删,下同。
Matplotlib,版本2.2.2
matplotlib 是Python编程语言及其数值数学扩展包 NumPy的可视化操作界面。它为利用通用的图形用户界面工具包,如Tkinter, wxPython, Qt或GTK+向应用程序嵌入式绘图提供了应用程序接口(API)。此外,matplotlib还有一个基于图像处理库(如开放图形库OpenGL)的pylab接口,其设计与MATLAB非常类似–尽管并不怎么好用。SciPy就是用matplotlib进行图形绘制。matplotlib最初由John D. Hunter撰写,它拥有一个活跃的开发社区,并且根据BSD样式许可证分发。 在John D. Hunter2012年去世前不久,迈克尔Droettboom被提名为matplotlib的主要开发者。截至到2015年10月30日,matplotlib 1.5.x支持Python 2.7到3.5版本。 Matplotlib 1.2是matplotlib的第一个版本,支持Python 3.x. Matplotlib 1.4是matplotlib支持Python 2.6的最后一个版本。
环境安装
Python (Anaconda)
Anaconda 是一种Python语言的免费增值开源发行版,用于进行大规模数据处理, 预测分析, 和科学计算, 致力于简化包的管理和部署。 Anaconda使用软件包管理系统Conda进行包管理。
Anaconda 的使用非常简单,只需要安装后就可以使用对应的环境。直接从https://www.anaconda.com下载需要的发行版,使用GUI安装即可。本文及其系列均采用Anaconda 3 x64作为默认的Python环境。
Tensorflow
TensorFlow是一个开源软件库,用于各种感知和语言理解任务的机器学习。目前被50个团队用于研究和生产许多Google商业产品,如语音识别、Gmail、Google 相册和搜索,其中许多产品曾使用过其前任软件DistBelief。TensorFlow最初由Google Brain团队开发,用于Google的研究和生产,于2015年11月9日在Apache 2.0开源许可证下发布。
由于我的训练用计算机使用了nVidia GTX 1080 8GB显卡,所以可以采用使用GPU进行计算的Tensorflow框架,使用GPU的好处是速度会快很多(根据我以往经验判断大致可以比CPU版本快两个数量级)。
1. 安装CUDA (限GPU版)
使用GPU版的Tensorflow需要计算机安装有一张以上的nVidia的GPU,并且Compute Capability不低于3.0(可以通过https://developer.nvidia.com/cuda-gpus查看GPU是否符合要求)。
可以看到我的GTX1080的Compute Capability 是6.1,可以使用CUDA和GPU版Tensorflow。
然后安装CUDA9.0。从https://developer.nvidia.com/cuda-90-download-archive下载CUDA 9.0(9.1版本不太确定能否兼容)。安装后在命令行输入
(注意-V要大写)检查是否安装了CUDA。
根据这个提示信息可以知道我这里已经安装好了9.1.85的CUDA(我的电脑上9.0和9.1是共存的),所以CUDA已经安装完成了。
2. 安装cuDNN(仅限GPU版)
安装完CUDA后还需要安装cuDNN。
访问https://developer.nvidia.com/cudnn后注册nVidia Developer帐号,然后下载对应CUDA版本的cuDNN,将下载解压后的cuda文件夹中的内容放到
对应文件夹下即可。
3. 安装Tensorflow(使用pip)
因为安装了Anaconda,所以这一步就很简单了。
打开Anaconda命令行(在开始菜单Anaconda文件夹下),输入:
即可开始安装。
如果提示更新pip,请根据提示进行操作。在安装过程中有可能需要为pip指定参数
安装完成后,在命令行下输入
进入python环境,然后执行下面的代码测试tensorflow的安装情况:
如果你看到类似的输出:
和:
那么Tensorflow就已经安装完毕了。
OpenCV
起初我打算直接使用Anaconda安装OpenCV,但是没有找到很好的方法,因为Anaconda3默认会安装OpenCV3。所以使用了下面的方法:
访问https://opencv.org/releases.html,下载2.4.13.6下的Win pack,解压后找到cv2.pyd,解压到Anaconda安装目录的
下,然后进入Anaconda命令行并进入python环境,输入
如果没有报错,则OpenCV安装成功。
领取专属 10元无门槛券
私享最新 技术干货