计算机视觉:人脸识别之opencv安装配置教程

计算机视觉人脸识别

在上一篇《计算机视觉:opencv初探》中,波波简单总结了计算机视觉的市场情况及应用领域。那么从本篇开始波波将教大家一步一步学会做一个人脸识别。在人脸识别的系列笔记中波波采用的都是opencv这个开源库,所以本篇先从opencv的安装配置开始。默认情况下操作系统采用Centos,个别情况下也可能会采用Ubantu或debian。所以如果你的电脑采用Windows服务器,请从第一篇开始就不要看了,以免浪费时间。

Opencv安装配置:

1、安装依赖环境:

Centos执行如下命令:

  1. yum install cmake gcc gcc-c++ gtk+-devel gimp-devel gimp-devel-tools gimp-help-browser zlib-devel libtiff-devel libjpeg-devel libpng-devel gstreamer-devel libavc1394-devel libraw1394-devel libdc1394-devel jasper-devel jasper-utils swig python libtool nasm

Ubantu或Debian执行如下命令:

  1. $ sudo apt-get install gcc-4.8 g++-4.8  //版本高于这个版本均可
  2. $ sudo apt-get install build-essential
  3. $ sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
  4. $ sudo apt-get install libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

这一步非常重要,直接关系到后面安装是否成功。解决了依赖关系后我们就开始正式安装了。

2、下载opencv的人脸识别模块(如果你做的项目跟人脸识别无关可以不用安装这一模块)。

  1. //下载最新版本3.4.1
  2. cd /
  3. wget https://github.com/opencv/opencv_contrib/archive/3.4.1.zip
  4. unzip 3.4.1.zip

在本篇笔记中最新版本是3.4.1,后期可能会有新的版本出来,GIT地址:https://github.com/opencv/opencv_contrib.git,大家也可以通过git clone的方式下载,也可以下载tar.gz源码包。道理都是相通的,所以这里波波就不挨个写操作代码了。

3、下载opencv并编译安装

一行一行的执行如下指令。

  1. mkdir -p /opencv
  2. cd opencv
  3. wget https://github.com/opencv/opencv/archive/3.4.1.zip
  4. unzip 3.4.1
  5. //上一步解压出的目录名字是opencv_contrib-3.4.1,将上一步人脸识别模块目录cp到/opencv并将目录名字改名“opencv_contrib”
  6. cd /opencv/opencv-3.4.1
  7. mkdir -p build
  8. cd build
  9. cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules ..
  10. make -j6 && make install
  11. echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf
  12. ldconfig

在这一步需要注意的是,如果你的操作系统内包含QT的开发环境,那么上述指令没有任何问题。如果操作系统不包含则需要找到cmake那一行,将“-D WITH_QT=ON”删掉(如果你不知道的情况下执行了上述cmake那一句报了错,那么需要删除build目录,重新执行cmake就行。)。同样上述指令中没有包含JAVA支持,如需开启JAVA支持也许添加对应的编译参数。因为接下来的开发波波主要用的语言有C++,Python和PHP所以这里没有支持JAVA。

上述过程中有两处地方可能需要联网下载东西,会出现你认为是死机的现象(一个是ippicv,另一个是face_landmark),其实不是。如果取消的话按Ctrl+C即可。

这一步执行完,opencv就安装完了,大家可以进行相关项目开发了,但是如果你想让WEB同样具备这样的功能则需要安装相关扩展,不过装不装影响不大,如果你会PHP的话,也可以用Php、C++、Python、Java进行混合开发。这些都是通的。

用下面指令检查opencv是否安装成功:

  1. $ pkg-config --libs opencv

如需继续安装WEB扩展,那么下面的步骤可能会帮到你。

4、安装PHP扩展

安装指令如下(这个扩展要求opencv版本>=3.3.0,如果之前按照我的笔记安装的话,下面很顺利,否则你就要考虑opencv升级的问题了。):

  1. $ git clone https://github.com/hihozhou/php-opencv.git
  2. $ cd php-opencv
  3. $ phpize
  4. $ ./configure --with-php-config=/your/php-config --enable-debug
  5. $ make && make install

开启扩展,找到php.ini添加如下一行配置即可。

  1. extension="opencv.so path"

重启PHP,在PHP程序中我们就可以直接调用了,具体调用方法波波在后期是有具体讲的。到这里服务器的opencv全部安装配置完毕,适合树莓派最新3B+。

下篇文章波波将带大家完成简单的人脸识别,敬请期待。

2018年5月28日,我重新编辑了这篇笔记,因为在重复安装过程中出现了部分问题,并给予了解决。虽然有点啰嗦,但希望这篇笔记能够比较详尽的记录整个安装的过程,避免踩坑。


相关错误:

1、Opencv多版本共存导致过低的问题。

因为在上述实例中波波带领大家安装的是截止本篇文章的最新版本3.4.1,但是安装后运行“pkg-config --modversion opencv”发现opencv的版本为“2.4.4”,直接后果就是导致下面的PHP扩展无法正常安装成功。经过检查发现CentOS中已经安装了一个版本2.4.4,位于/usr/local/lib下面。所以更新动态链接库指向的还是这个版本。

解决方法:

  1. export PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig/    这个路径根据大家自己情况进行适当修改。
  2. sh -c 'echo "/usr/local/lib64" > /etc/ld.so.conf.d/opencv.conf'
  3. ldconfig

 

你想把广告放到这里吗?

发表评论

您必须 登录 才能发表留言!