• 基于深度学习的人脸识别系统(Caffe+OpenCV+Dlib)【一】如何配置caffe属性表


    前言

    基于深度学习的人脸识别系统,一共用到了5个开源库:OpenCV(计算机视觉库)、Caffe(深度学习库)、Dlib(机器学习库)、libfacedetection(人脸检测库)、cudnn(gpu加速库)。
    用到了一个开源的深度学习模型:VGG model。
    最终的效果是很赞的,识别一张人脸的速度是0.039秒,而且最重要的是:精度高啊!!!
    CPU:intel i5-4590
    GPU:GTX 980
    系统:Win 10
    OpenCV版本:3.1(这个无所谓)
    Caffe版本:Microsoft caffe (微软编译的Caffe,安装方便,在这里安利一波)
    Dlib版本:19.0(也无所谓
    CUDA版本:7.5
    cudnn版本:4
    libfacedetection:6月份之后的(这个有所谓,6月后出了64位版本的)
    这个系列纯C++构成,有问题的各位朋同学可以直接在博客下留言,我们互相交流学习。
    ====================================================================

    本篇是该系列的第一篇博客,介绍我如何在Visual Studio中像使用OpenCV一样使用Caffe。

    思路

    我们都知道在Visual Studio中使用OpenCV是非常方便的,只要配置好相关的路径,建立一个属性表就可以了。接触过Caffe的可能会知道,在Caffe的例程中并没有怎么说如何建立一个属性表,就能够使用Caffe提供的一些函数去构造程序。话说一个月前刚刚在Github上帮一个老外解决了这个问题,所以这里也写一下我的方法。
    要用Caffe,就是 include 、lib 、dll,和OpenCV一样,搞好这三个即可,推荐大家配置Release版本的,所以在编译Caffe的时候,换成Release模式也编译一次。

    实现

    观察caffe-master的第三方程序包,毫无疑问,这个与caffe-master本文件夹都需要加上去的。
    这里写图片描述
    所以在属性表里,先后需要include以下这些:(路径请自行修改)
    这里写图片描述

    D:caffe-masterinclude
    D:NugetPackagesoost.1.59.0.0lib
    ativeinclude
    D:NugetPackagesglog.0.3.3.0uild
    ativeinclude
    D:NugetPackagesgflags.2.1.2.1uild
    ativeinclude
    D:NugetPackagesprotobuf-v120.2.6.1uild
    ativeinclude
    C:Program FilesNVIDIA GPU Computing ToolkitCUDAv7.5include
    D:NugetPackagesOpenBLAS.0.2.14.1lib
    ativeinclude
    D:caffe-masterincludecaffelayers
    D:NugetPackagesOpenCV.2.4.10uild
    ativeinclude
    D:NugetPackagesOpenCV.2.4.10uild
    ativeincludeopencv
    D:NugetPackagesOpenCV.2.4.10uild
    ativeincludeopencv2

    我们可以看到,这个第三方程序包里面已经有OpenCV了,所以我们没必要把OpenCV的属性表添加。
    然后,我们需要添加lib:(路径请自行修改)

    D:NugetPackagesoost_date_time-vc120.1.59.0.0lib
    ativeaddress-model-64lib
    D:NugetPackagesoost_filesystem-vc120.1.59.0.0lib
    ativeaddress-model-64lib
    D:NugetPackagesoost_system-vc120.1.59.0.0lib
    ativeaddress-model-64lib
    D:caffe-masterBuildx64Release
    D:NugetPackagesoost_thread-vc120.1.59.0.0lib
    ativeaddress-model-64lib
    D:NugetPackagesoost_chrono-vc120.1.59.0.0lib
    ativeaddress-model-64lib
    D:NugetPackagesprotobuf-v120.2.6.1uild
    ativelibx64v120Release
    D:NugetPackagesOpenCV.2.4.10uild
    ativelibx64v120Release
    D:NugetPackagesglog.0.3.3.0uild
    ativelibx64v120Debugdynamic
    D:NugetPackagesgflags.2.1.2.1uild
    ativex64v120dynamicLib
    D:NugetPackageshdf5-v120-complete.1.8.15.2lib
    ativelibx64
    D:NugetPackagesOpenBLAS.0.2.14.1lib
    ativelibx64
    C:Program FilesNVIDIA GPU Computing ToolkitCUDAv7.5libx64

    最后一项是CUDA的配置路径,找一下应该就可以找到。
    那么我们的附加依赖项需要添加:
    这里写图片描述

    libcaffe.lib
    libprotobuf.lib
    opencv_highgui2410.lib
    opencv_core2410.lib
    opencv_imgproc2410.lib
    libglog.lib
    gflags.lib
    libopenblas.dll.a
    hdf5.lib
    hdf5_hl.lib
    cublas.lib
    cublas_device.lib
    cuda.lib
    cudadevrt.lib
    cudnn.lib
    cudart.lib
    cufft.lib
    cudart_static.lib
    cudnn_static.lib
    cufftw.lib
    cusparse.lib
    cusolver.lib
    curand.lib
    nppc.lib
    OpenCL.lib

    对了,最后别忘了配置环境变量哟,配置完之后重启一遍:

    D:NugetPackagesgflags.2.1.2.1uild
    ativex64v120dynamicLib
    D:NugetPackageshdf5-v120-complete.1.8.15.2lib
    ativeinx64
    D:NugetPackagesglog.0.3.3.0uild
    ativeinx64v120Releasedynamic
    D:NugetPackagesOpenBLAS.0.2.14.1lib
    ativeinx64
    D:NugetPackagesgflags.2.1.2.1uild
    ativex64v120dynamicLib
    D:NugetPackagesOpenCV.2.4.10uild
    ativeinx64v120Release

    这里还是建议大家建立一个属性表,方便后面的程序添加,就像这样:
    这里写图片描述
    那么在做完这些之后,我们就可以在新建工程里使用Caffe的接口了,比如:
    这里写图片描述
    不会报错滴。
    基于深度学习的人脸识别系统系列:【一】如何在Visual Studio中像使用OpenCV一样使用Caffe完结,如果在配置过程中出现了什么问题,直接留言即可。

    =============================================
    补充:
    好吧..有人问怎么在没有GPU的情况下进行呢?(CPU_ONLY模式)
    就是这样:
    1、前面都和上面一样配置,在这个地方把cu开头的lib全部删掉,改成如下:

    libcaffe.lib
    libprotobuf.lib
    opencv_highgui2410.lib
    opencv_core2410.lib
    opencv_imgproc2410.lib
    libglog.lib
    gflags.lib
    libopenblas.dll.a
    hdf5.lib
    hdf5_hl.lib

    2、运行一下,发现出现错误:
    这里写图片描述
    我们打开这个文件:
    这里写图片描述
    3、在上面这个地方我们得选择CPU模式。
    加一句#define CPU_ONLY
    这里写图片描述
    搞定。

  • 相关阅读:
    Bash简单介绍
    三大框架常遇的错误:hibernate : object references an unsaved transient instance
    第二十八篇: 学习笔记
    oracle表空间查询维护命令大全之二(undo表空间)
    JSON 数据的系统解析
    MySQL字符串函数
    HDU ACM 1025 Constructing Roads In JGShining's Kingdom->二分求解LIS+O(NlogN)
    实时竞价RTB广告平台_传漾科技_中国领先的智能数字营销引擎
    秒聘网-产品经理招聘,免费、专注、极速
    “小鸟推送”从DSP做到营销效果最大化,挂牌新三板后正在寻求B轮定增
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9412037.html
Copyright © 2020-2023  润新知