最近在使用openface
来测试人脸识别,实际过程中发现识别速度非常缓慢,平均每帧的识别速度达到了秒级水平,这个是不可接受的。跟踪代码性能,发现是dlib
部分非常缓慢。
根据dlib
的文档,默认使用
1 |
$ sudo pip install dlib |
安装的dlib
库,由于对具体硬件的要求(CPU
需要支持AVX
指令集),是没有开启AVX
指令加速的,另外由于显卡的要求,也是默认不开启CUDA
的支持。
如果想要开启这部分加速,需要手工编译安装才可以,具体操作如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
$ cd ~ $ mkdir dlib $ sudo pip download dlib $ tar -zxvf tar -zxvf dlib-*.tar.gz $ cd dlib* #安装依赖的库 $ sudo apt-get -y install libopenblas-dev #移除我们以前安装过的dlib $ sudo pip uninstall dlib #开启AVX指令集支持 $ sudo python setup.py install --yes USE_AVX_INSTRUCTIONS |
上面的命令是使用AVX
指令加速功能的,如果机器上安装了CUDA
,则需要正确安装cuDNN 5.0
以上的版本,否在编译的时候会报告
1 2 3 4 |
-- Checking if you have the right version of cuDNN installed. -- *** Found cuDNN, but it looks like the wrong version so dlib will not use it. *** -- *** cuDNN V5.0 OR GREATER NOT FOUND. DLIB WILL NOT USE CUDA. *** -- *** If you have cuDNN then set CMAKE_PREFIX_PATH to include cuDNN's folder. |
对于使用
1 |
$ sudo apt install nvidia-cuda-toolkit |
安装的CUDA-7.5
来说,可以从这里下载cuDNN v6.0 (April 27, 2017), for CUDA 7.5,下载完成后,整个目录中的include
目录中的文件解压缩到/usr/local/include/
目录下,lib64
目录中的内容整个解压缩到/usr/lib/
目录下,并且在/usr/local/lib/
目录下建立libcudnn.so
的软链接
1 |
$ sudo ln -s /usr/lib/libcudnn.so /usr/local/lib/libcudnn.so |
都配置正确后,使用如下编译命令安装:
1 |
$ sudo python setup.py install --yes DLIB_USE_CUDA |
参考链接
Easily Create High Quality Object Detectors with Deep Learning