博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于OpenCV 3.1的搭建使用经验
阅读量:6816 次
发布时间:2019-06-26

本文共 2696 字,大约阅读时间需要 8 分钟。

hot3.png

 

        最近人脸识别的技术比较火。由于工作的需要,最近一段时间也在了解人脸识别方面的知识。

        先介绍一下Face++,国内的Face++是人脸识别比较优秀的实例,有在线API和离线SDK提供,使用方式也比较简单,不过人脸库建立在Face++的服务器中,个人版免费,企业级收费。

        基于数据信息的保密和二次开发的需要,我选择了使用OpenCV用作人脸识别开发,OpenCV是由C(C++)编写的开源的计算机视觉库。提供C++接口用于调用人脸识别、人脸验证等方法。由于配置比较复杂,官方说明不详尽,开发花了较多的时间,所以写下了这篇文章,一方面提供大家学习参考,一方面为自己总结整理。

        开发的环境为Win7、VS2015、OpenCV3.1(64位)。

OpenCV:

        其中OpenCV 2.x和OpenCV 3.x版本有一个比较大的区别,OpenCV 3.x将人脸识别的部分功能(contrib)提取了出来。所以不建议在官网(http://opencv.org/)上直接下载opencv的exe执行文件来使用。需要正常使用人脸识别,除了下载opencv之外,还要下载opencv_contrib包。可以通过OpenCV的github网站(https://github.com/Itseez)来下载。

        下载完opencvopencv_contrib包后分别解压缩。再通过Cmake软件来对opencv进行搭建sln项目,搭建过程中的指定路径指向opencv_contrib(即下图步骤3)。编译通过之后就会生成一个包含人脸识别功能的完成的OpenCV 3.1项目。然后在VS2015中新建该sln解决方案,编译后就可以使用了。

        以下是CMake建立OpenCV 3.1项目的过程,1为opencv的路径,2为建立项目后生成的路径,填写路径后点击Configure,可以得到红色背景部分的内容,3为在OPENCV_EXTRA_MODULRS_PATH下填写opencv_contrib的modules目录路径,然后点击Generate即可生成解决方案。

OpenCV之人脸识别的使用 - alvinlovelife - 稻草人Alvin

        在VS2015中打开OpenCV3.1的.sln解决方案,在Debug模式下先重新生成解决方案,然后找到CMakeTargets中的install然后右键选择“Project Only”-->“Build Only INSTALL”。

        这个时候OpenCV3.1解决方案基本就完成不需要改动了,除非你要改原有的算法和实现。(这里的OpenCV 3.1项目是独立的,需要新建一个解决方案来调用它)

        现在就可以开始新建自己的解决方案了,然后在自己的解决方案中,右键点击“属性”,配置相关属性就可以调用到OpenCV3.1的功能了。

OpenCV3.1之人脸识别的使用 - alvinlovelife - 稻草人Alvin

Include Directories:

    C:\opencv3.1\install\include\opencv;C:\opencv3.1\install\include\opencv2;C:\opencv3.1\install\include;

Library Directories:     C:\opencv3.1\install\x64\vc14\bin;C:\opencv3.1\install\x64\vc14\lib;C:\opencv3.1\install\x64\vc14\staticlib;

OpenCV3.1之人脸识别的使用 - alvinlovelife - 稻草人Alvin

Additional Dependencies:     opencv_aruco310d.lib;opencv_bgsegm310d.lib;opencv_bioinspired310d.lib;opencv_calib3d310d.lib;opencv_ccalib310d.lib;opencv_core310d.lib;opencv_datasets310d.lib;opencv_dnn310d.lib;opencv_dpm310d.lib;opencv_face310d.lib;opencv_features2d310d.lib;opencv_flann310d.lib;opencv_fuzzy310d.lib;opencv_highgui310d.lib;opencv_imgcodecs310d.lib;opencv_imgproc310d.lib;opencv_line_descriptor310d.lib;opencv_ml310d.lib;opencv_objdetect310d.lib;opencv_optflow310d.lib;opencv_photo310d.lib;opencv_plot310d.lib;opencv_reg310d.lib;opencv_rgbd310d.lib;opencv_saliency310d.lib;opencv_shape310d.lib;opencv_stereo310d.lib;opencv_stitching310d.lib;opencv_structured_light310d.lib;opencv_superres310d.lib;opencv_surface_matching310d.lib;opencv_text310d.lib;opencv_tracking310d.lib;opencv_ts310d.lib;opencv_video310d.lib;opencv_videoio310d.lib;opencv_videostab310d.lib;opencv_xfeatures2d310d.lib;opencv_ximgproc310d.lib;opencv_xobjdetect310d.lib;opencv_xphoto310d.lib;ippicvmt.lib;

 

注意:

  1、OpenCV 2.x版本人脸识别需要导入的包为:#include "opencv2/contrib/contrib.hpp",在OpenCV3.1版本中不存在该包,应该导入包:#include "opencv2/face.hpp"

  2、C:/opencv3.1为我生成的解决方案目录,其中opencv3.1版本对应为vc14,opencv3.0版本为vc12

  3、生成解决方案和配置相关属性时,要注意有DebugRelease两种模式,建议两种都编译配置一次

 

 

        暂时就写这么多,还有一些实际调用了例子,等有空整理之后再分享,有问题的话可以交流。

转载于:https://my.oschina.net/u/1863428/blog/703363

你可能感兴趣的文章
ActiveMQ学习笔记(3)——ActiveMQ的安装
查看>>
OSI(Open System Interconnection)网络7层模型
查看>>
Blat-windows cmd命令行脚本SMTP模式发邮件的开源工具参数详细说明
查看>>
25匹马取前5,每次只能比5匹
查看>>
使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
查看>>
linux rhel6 搭建RSYNC 差异备份详解
查看>>
mysql语句大全
查看>>
ssh执行sudo命令所遇到的错误解决
查看>>
攻克要塞 - 冲刺题目下载
查看>>
SSH登录-bash:/etc/profile Permission Denied 报错,root登录正常
查看>>
Retrofit2 再次封装(API not restful)
查看>>
OMF方式管理(2)
查看>>
AIX学习之--文件系统修复(/home)
查看>>
10个趣味Linux动画命令
查看>>
android环境搭建
查看>>
Controller增强,全局异常处理类
查看>>
Docker镜像与仓库
查看>>
Linux基础--进程管理相关命令介绍(2)
查看>>
VB.NET 自动打包程序
查看>>
CISCO引擎RPR SSO
查看>>