seetaface VS2013下的编译安装he环境配置
2017-03-23 11:02
597 查看
最近由于毕设所做是关于人脸识别的,在毕设老师的推荐下尝试着倒腾下seetaface。在进行环境搭建的过程中不得不说是一波三折,
以下是环境配置过程的步骤、遇到的问题以及解决办法:
源代码是在点击打开链接这里面下载的。
seetaface一共提供了三个API,按照山世光老师所介绍的基本上都已经达到了state of the art的水准,而且用的是BSD开源标准,可以
用于商业用途。
首先是FaceDetection环境的搭建:
(Optional) Create and switch to x64 platform.
Add additional include directories: (Project) Properities -> Configuration Properties -> C/C++ -> General -> Additional Include Directories.
Add source files: all
Define
(Optional) Switch to Intel C++ (for better code optimization).
(Optional) Enable OpenMP support: (Project) Properities -> Configuration Properties -> C/C++ -> Language -> Open MP Support (or ... C/C++ -> Language [Intel C++] -> OpenMP Support). Define
Build.
在进行这一步需要注意的是在VS下直接进行build(编译),并没有生成对应的dll文件和lib文件。此时点一下生成解决方案按钮,则先点解决方案资源管理器->选中所选项目->
右键在资源管理器中打开文件夹->在此文件夹的上一个目录下的dubug文件夹里即可找到所需的dll文件和lib文件
上面不会步骤中的optional意为可选项,做与否并不会对最后的编译成功造成影响。
dll项目只可编译,不可运行!
点击生成解决方案,出现如下报错:
进行如下操作即可:
再次点击生成解决方案即可正确运行
之后是FaceAlignment环境的搭建:
(Optional) Create and switch to x64 platform.
Add
header files: all
Add
source files: all
Define
Build.
在这一步与上面相当吧,照猫画虎即可
此时点击生成解决方案,发生如下报错:
依据提示,在属性管理器->通用属性->C/C++->预处理器->预处理器定义里添加_CRT_SECURE_NO_WARNINGS即可
后面的可参考这篇文章点击打开链接。我在做的过程中还是遇到了很多问题。
纠其原因都是因为细节未处理好。例如没有准确处理好,忘记include某个文件夹之类的。
在进行FaceIdentification步骤时我遇到了这个问题:
错误 12 error LNK2019: 无法解析的外部符号 "private: char * __cdecl cv::String::allocate(unsigned __int64)" (?allocate@String@cv@@AEAAPEAD_K@Z),该符号在函数 "public: __cdecl cv::String::String(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char>
> const &)" (??0String@cv@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) 中被引用D:\SeetaFaceEngine-master\SeetaFaceEngine-master\FaceIdentification\examples\Tester\test_face_recognizer.objTester
但是所属项目为Tester,并不是我们所想用来生成dll和lib文件的Identification项目,所以此时可以选择性忽略。
在最后新建项目的时候发生了一个错误
如下图所示:
经过很多次的检查感觉均未出现错误,最后在GitHub上seetaface的issue70下看了一个评论:
发现我也是这么错的,于是根据这个改了下,就好了。
不过之后又出现了这个问题:
最后运行效果如图所示。
在项目搭建过程中,还遇到了error LINK2038 RuntimeLibrary不匹配这个问题,可参考点击打开链接这篇文章。
遇到其他问题,百度或者Google应该都可以解决。这种环境搭建其实最难的是第一次,随着经验的累加,会越来越轻车熟路。
其实之前有这么一个理论作为程序员有两种能力是必备的:一、算法能力,这个可以通过做oj之类的题来体现;二、环境搭建项目开发的能力。
后者只有在实践中慢慢积累了。与诸君共勉!
注:一、首先得保证opencv的path路径设置正确,x64以及x86的路径均设置正确,这样之后建opencv工程的时候可以自由选择x86或者x64项目。
二、确保生成的dll文件以及之后创建的测试工程文件是同在x86下编译的或者同在x64下编译的。
三、当报错过多,解决一个问题后面还是问题不断时,建议自己重新根据步骤重建工程,这样也许混来的更快。
以下是环境配置过程的步骤、遇到的问题以及解决办法:
源代码是在点击打开链接这里面下载的。
seetaface一共提供了三个API,按照山世光老师所介绍的基本上都已经达到了state of the art的水准,而且用的是BSD开源标准,可以
用于商业用途。
首先是FaceDetection环境的搭建:
How to Build Shared Lib with Visual Studio
Create a dll project: New Project -> Visual C++ -> Win32 Console Application -> DLL.(Optional) Create and switch to x64 platform.
Add additional include directories: (Project) Properities -> Configuration Properties -> C/C++ -> General -> Additional Include Directories.
Add source files: all
*.cppfiles in
srcexcept for those in
src/test.
Define
SEETA_EXPORTSmacro: (Project) Properities -> Configuration Properties -> C/C++ -> Preprocessor -> Preprocessor Definitions.
(Optional) Switch to Intel C++ (for better code optimization).
(Optional) Enable OpenMP support: (Project) Properities -> Configuration Properties -> C/C++ -> Language -> Open MP Support (or ... C/C++ -> Language [Intel C++] -> OpenMP Support). Define
USE_OPENMPmacro if necessary.
Build.
在进行这一步需要注意的是在VS下直接进行build(编译),并没有生成对应的dll文件和lib文件。此时点一下生成解决方案按钮,则先点解决方案资源管理器->选中所选项目->
右键在资源管理器中打开文件夹->在此文件夹的上一个目录下的dubug文件夹里即可找到所需的dll文件和lib文件
上面不会步骤中的optional意为可选项,做与否并不会对最后的编译成功造成影响。
dll项目只可编译,不可运行!
点击生成解决方案,出现如下报错:
进行如下操作即可:
再次点击生成解决方案即可正确运行
之后是FaceAlignment环境的搭建:
Build Shared Lib with Visual Studio
Create a dll project: New Project -> Visual C++ -> Win32 Console Application -> DLL.(Optional) Create and switch to x64 platform.
Add
header files: all
*.hfiles in
include.
Add
source files: all
*.cppfiles in
srcexcept for those in
src/test.
Define
SEETA_EXPORTSmacro: (Project) Properities -> Configuration Properties -> C/C++ -> Preprocessor -> Preprocessor Definitions.
Build.
在这一步与上面相当吧,照猫画虎即可
此时点击生成解决方案,发生如下报错:
依据提示,在属性管理器->通用属性->C/C++->预处理器->预处理器定义里添加_CRT_SECURE_NO_WARNINGS即可
后面的可参考这篇文章点击打开链接。我在做的过程中还是遇到了很多问题。
纠其原因都是因为细节未处理好。例如没有准确处理好,忘记include某个文件夹之类的。
在进行FaceIdentification步骤时我遇到了这个问题:
错误 12 error LNK2019: 无法解析的外部符号 "private: char * __cdecl cv::String::allocate(unsigned __int64)" (?allocate@String@cv@@AEAAPEAD_K@Z),该符号在函数 "public: __cdecl cv::String::String(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char>
> const &)" (??0String@cv@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) 中被引用D:\SeetaFaceEngine-master\SeetaFaceEngine-master\FaceIdentification\examples\Tester\test_face_recognizer.objTester
但是所属项目为Tester,并不是我们所想用来生成dll和lib文件的Identification项目,所以此时可以选择性忽略。
在最后新建项目的时候发生了一个错误
如下图所示:
经过很多次的检查感觉均未出现错误,最后在GitHub上seetaface的issue70下看了一个评论:
发现我也是这么错的,于是根据这个改了下,就好了。
不过之后又出现了这个问题:
最后运行效果如图所示。
在项目搭建过程中,还遇到了error LINK2038 RuntimeLibrary不匹配这个问题,可参考点击打开链接这篇文章。
遇到其他问题,百度或者Google应该都可以解决。这种环境搭建其实最难的是第一次,随着经验的累加,会越来越轻车熟路。
其实之前有这么一个理论作为程序员有两种能力是必备的:一、算法能力,这个可以通过做oj之类的题来体现;二、环境搭建项目开发的能力。
后者只有在实践中慢慢积累了。与诸君共勉!
二、确保生成的dll文件以及之后创建的测试工程文件是同在x86下编译的或者同在x64下编译的。
三、当报错过多,解决一个问题后面还是问题不断时,建议自己重新根据步骤重建工程,这样也许混来的更快。
相关文章推荐
- QT5.9.3安装及编译&与vs2013环境配置&opencv配置及调用
- QtCharts编译(编译环境MSVC12)和VS2013配置QtCharts
- C/C++代码静态检查工具Cppcheck在VS2013开发环境中的安装配置和使用
- VS2015下安装与编译OpenCV源码并在VS2015下配置OpenCV环境
- visual studio 2013上搭建arm交叉编译环境(二) cygwin等软件的安装及配置
- VS2013的开发环境下Qt的下载、安装、配置
- VS2013下安装配置Qt组件环境
- cocos2dx 3.2版本window环境安装 vs2013编译
- VS2013+opencv3.3的安装(或自行编译源码)及配置
- vs2013 _64和Qt5.7.0编译系统安装编译环境搭建
- Windows10下python3和python2同时安装(三)VS 2013配置python环境
- VS2013配置OpenGL编译环境
- 【OpenCV3】OpenCV3.2.0在VS2013环境下Cmake编译与快速配置
- VS2015编译环境下CUDA安装配置
- VS2015环境GDAL的配置(编译安装)
- QtCharts编译(编译环境MSVC12)和VS2013配置QtCharts
- VS2015 编译环境下CUDA安装配置
- 【OpenCV图像处理入门学习教程一】OpenCV2 + 3的安装教程与VS2013的开发环境配置 + JPEG压缩源码分析与取反运算修改
- RTP开源库jrtplib在VS2013下编译 安装和配置
- mrpt在win8.1 64bit + vs2013环境下的安装和编译