• 算法---Face_Recognition配置实战篇


    python人脸识别库Face_Recognition-实操篇

    @WP20190307

    ================================ =================================

    一、编译dlib

    二、编译face_recognition环境

    三、使用opencv遇到的问题

     

    ================================ =================================

    基础认识:

    1Dlib是一个使用现代C++技术编写的跨平台的通用库,是一个包含机器学习算法的C++开源工具包,有c++Python的接口。使用dlib可以大大简化开发,比如人脸识别,特征点检测之类的工作都可以很轻松实现,也可以帮助用户创建很多复杂的机器学习方面的软件来帮助解决实际问题。目前Dlib已经被广泛的用在行业和学术领域,包括机器人,嵌入式设备,移动电话和大型高性能计算环境。

    2Face_recogintionpython的开源人脸识别库,是基于dlib开发的应用和开源库dlib依赖Boostcmake。引用ageitgey/face_recognitionFace_recogintion项目的人脸识别模型是基于成年人的,在孩子身上效果可能一般。如果图片中有孩子的话,建议把临界值设为0.6.”

    3)本文环境:Ubuntu18.04+Dlib19.16.99+Python3.6.4+faceRecognition1.2.3,其中Dlib19.16.99+Python3.6.4+faceRecognition1.2.3版本是编译后,查看版本显示的。

    经验总结:

    安装face_recognition最简单的命令,使用pip安装face_recognition

    $ pip install face_recognition

    注意,Ubuntu下使用的是python2.7就使用pip2,使用python3则使用pip3

    但由于face recognition基于dlib库,所以在使用“pip install face_recognition ”安装的过程中会卡在编译dlib”这一步上,很长时间都不会有什么反应,所以先编译dlib库。如果编译dlib完后直接再使用“pip install face_recognition ”安装依然会卡在dlib那里不动,所以换一种方式安装face recognition

    一、编译dlib

    网络博客推荐的方法,有:

    T1方法:pip install dlib

    此方法是需要在你安装cmakeBoost环境的计算机使用。

    T2方法:conda install -c menpo dlib==19.8.1

    此方法适合那些已经安装好conda库的环境的计算机使用。

    T3方法:pip install dlib-19.8.1-cp36-cp36m-win_amd64.whl

    这里主要参考http://www.cnblogs.com/whenyd/p/7721989.htmlUbuntudlib库编译安装》:

    (1.0)前提需要boostcmake环境,如果有配置过caffe就不用重复了。

    boost环境,  $ sudo apt-get install libboost-all-dev

    cmake环境, $ sudo apt-get install -y cmake,也可参考其他解决。

     ********http://www.cnblogs.com/whenyd/p/7721989.html

     ********https://www.cnblogs.com/spyplus/p/7829772.html

    1.1)下载Dlib库到本地。

    $ git clone https://github.com/davisking/dlib.git

    1.2)编译Dlib

    $ cd dlib

    $ mkdir build; cd build; cmake .. -DDLIB_USE_CUDA=0 -DUSE_AVX_INSTRUCTIONS=1; cmake --build .(注意中间有个空格)

       说明: -DDLIB_USE_CUDA=0不使用cuda-DUSE_AVX_INSTRUCTIONS=1使用cpuAVX加速

    $ cd ..

    $ python setup.py install --yes USE_AVX_INSTRUCTIONS --no DLIB_USE_CUDA

       说明:这里可以指定python2python3,也可以在虚拟环境中安装,--no DLIB_USE_CUDA选项不使用cuda,使用cuda可以不指定该选项或DLIB_USE_CUDA

    开始漫长的等待过程。。。。。。。莫着急。。。。。。

    1.3)查看Dlib是否安装成功。

    $ python

    $ import dlib

    确认Dlib是否安装成功,这一步卡主了,重复安装了七八遍,在本地、在虚拟机下、换不同的python版本,都是前面步骤均无报错,也提示Dlib成功安装了。最后就是 输入import dlib一直报错,显示非法指令(核心已转存)跳出程序。折腾一天,第二天发现Dlib自动安装的路径没注意,Dlib安装的版本制定了需要的python版。

    这里是Dlib19.16.99+Python3.6.4,个人一直没有注意,一直在python2.7python3.5下面使用,自然就一直报错啦。以后,安装漫长的过程,也要稍微留意一下安装细节。

    二、编译face_recognition环境

    因尝试使用“pip install face_recognition ”安装多次卡住,故这里换用下面的方法。

    2.1)下载face_recognition到本地。

    $ git clone https://github.com/ageitgey/face_recognition

    2.2编译安装face_recognition

    $ cd ~/face_recognition

    $ python3 setup.py build

    $ python3 setup.py install

    2.3)查看face_recognition是否安装成功。

    $ python

    $ import face_recognition

    $ import dlib

    2.4)测试一张图片。

    wp@wp-MS-7519:~/FaceRecognitionPy3.6.4/examples$

    python find_faces_in_picture.py

     (2.5)Face Recognition 人脸识别。

    各种案例识别,详细参考:https://github.com/ageitgey/face_recognition/blob/master/README_Simplified_Chinese.md。实操起来,还挺有意思的哦~~

    三、使用opencv遇到的问题

    执行命令,$ python,  $ import cv2, 报错。细看(1$ python2,  $ import cv2,(2$ python3,  $ import cv2,发现Python2能使用opencv,然而python3却不能使用opencv。分析原因,之前完整的装过opencv3.4.2python2能使用,python3却不能用,说明是哪里配置的问题。分析dlib配置/home/wp/anaconda2/lib/python3.6在路径下,而且python要调用opencv,查找解决问题的办法最后通过进入Anaconda终端:pip3 install opencv_python解决问题。

    wp@wp-MS-7519:~/anaconda2$

    $  sudo pip3 install opencv-python

    $  sudo pip3 install numpy Matplotlib

    $  sudo pip3 install --upgrade setuptools

    然后,成功解决问题:

    wp@wp-MS-7519:~/anaconda2$ python3

    Python 3.6.4 |Anaconda, Inc.| (default, Jan 16 2018, 18:10:19)

    [GCC 7.2.0] on linux

    Type "help", "copyright", "credits" or "license" for more information.

    >>> import cv2

    >>> cv.__version__

  • 相关阅读:
    malloc和new的区别
    Http协议解析
    Linux基础命令-history
    Linux基础命令-last
    Linux基础命令-who
    Linux基础命令-free
    Linux基础命令-uptime
    Linux基础命令-uname
    Linux基础命令-ifconfig
    Linux基础命令-killall
  • 原文地址:https://www.cnblogs.com/carle-09/p/10490215.html
Copyright © 2020-2023  润新知