查看原文
其他

干货|手把手教你用Ubuntu14.04 LTS搭建简易人脸识别系统

2017-03-26 全球人工智能

全球人工智能


来源:七月在线老宅


硬件:Core i7-6700;16GB;Nvidia GeForce GTX1070;500G SSD

平台:台式PC

软件:Linux 对应的GTX1070驱动;cuda8.0;cudnn 5.1;Linux 14.04 LTS,OpenCV 3.1.0 Linux版

相关博客:http://www.jianshu.com/p/68ac83436a1b



前期环境搭建


本文实验基于的环境:Ubuntu14.04LTS+CUDA8.0+cudnn5.1的安装和调试请读者查看本博之前的博文:


《(Ubuntu+Tensorflow+CUDA8.0+cudnn,新鲜靠谱版)利用DL学梵高作画---实战记录和心得》,本文不再赘述。


编译环境准备


在Terminal中,操作如下:


输入:sudo -i  回车    

输入开机登录密码,回车

输入:sudo apt-get install build-essential 回车

等待系统完成安装。。。。。。

(笔者注:大部分情况下,在完成了前文所说的“前期环境搭建”,这一步是可以省略的。)


依赖库安装


继续在Terminal中,操作如下:


输入:apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev   回车


(此时,系统会多次询问是否需要安装***,全部输入Y  回车,即可)


屏幕显示如图:  



然后,继续在Terminal中,操作如下:


输入:apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev   回车   等待

(笔者注:小白在操作时,尤其是在windows环境下成长出来的Linux小白,在输入命令时一定要克制内心对于命令输入的抵触心理)


准备OpenCV 3.1.0 for Linux


在OpenCV官网下载区下载OpenCV 3.1.0 for Linux

地址:http://opencv.org/releases.html

将下载文件放置在Ubuntu14.04LTS的桌面上,执行解压操作,备用。


安装


安装操作全部在OpenCV解压文件的目录内进行,所以,首先需要操作的是切入OpenCV解压文件内。操作如下:(以下载文件名为opencv-3.1.0.zip为例)


继续在Terminal中操作:


输入:cd /OpenCV-3.1.0/  回车

输入:cmake  .  回车

输入:sudo make  回车

输入:sudo make install 回车

输入:sudo /bin/bash -c 'echo "/usr/local/lib"> /etc/ld.so.conf.d/opencv.conf' 回车

输入:sudo ldconfig  回车


这里需要注意的是,笔者在安装时,出现了系统已安装的CUDA-8.0与OpenCV 3.1.0冲突的情况,这时需要修改OpenCV 3.1.0的源码,具体操作如下:


输入:cd /OpenCV-3.1.0/modules/cudalegacy/src/  回车

输入:vi  graphcuts.cpp  回车


按照VIM的文本修改方式,将文本中的第45行:


#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER)

修改成:

#if !defined(HAVE_CUDA)||defined(CUDA_DISABLER)||(CUDART_VERSION>=8000)

然后,在Terminal中,执行:

sudo make   回车


屏幕显示内容如下:


编译自带Samples


如果你熟悉了上文的操作,那么如下的操作也不会陌生,因为所有的执行依然要在OpenCV3.1.0的源文件目录下进行。


在Terminal中,操作如下:


输入:cd ~/OpenCV-3.1.0/samples/   回车

输入:cmake  .    回车

输入:sudo make -j $(nproc)  回车


屏幕显示如下:



人脸检测


在这一波编译执行完成之后,就可以进行OpenCV 3.1.0人脸检测测试程序的执行了,这里需要你准备一张带有人脸正面(免冠,免眼镜)的照片,小编这里用了美队。


先将照片放在桌面上,并命名为CA.jpg。


依然是在Terminal中,具体操作如下:


输入:cd ~/opencv-3.1.0/samples/cpp   回车

输入: ./cpp-example-facedetect /home/[输到这里可以按一下Tab键]/Desktop/CA.jpg  回车


————————见证奇迹的时刻————————


这次实验使用OpenCV3.1自带的facedetect人脸检测样例算法,检测成功用时436毫秒,由此可以看出OpenCV自带的人脸检测算法效率并不高。从图中可以看出,算法并不能够精准的只抓取美队的面部,并且,经多次实验确认,此算法不能对戴眼镜以及帽子的面部特征做出识别,足见其还有很大的改进空间。


热门文章推荐

重磅|IEEE发布了最新的世界顶级机器人视频集锦,不看你会后悔

最新|2017年全球top50机器人公司,大疆仅排第⑨名!

最新|Yann LeCun昨天在清华都讲了什么?(附精彩视频)

重磅|百度AI负责人吴恩达(Andrew Ng)宣布将从百度辞职

Google发布Distill平台:欲搭建机器学习生态系统

开源|2017 CVPR(Oral Paper):多目标实时体态估测 项目开源

重磅|IBM和万达签订战略合作协议 助推Watson在华落地

重磅|Google发布新开源图像算法工具Guetzli:压缩35%的图片大小仍保证高质量

重磅|3.15曝光的“人脸识别”技术真的那么脆弱吗?!

重磅|谷歌DeepMind将“记忆”植入机器学习,从而提高机器持续的自适应学习!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存