前言

最近项目涉及到关于face alignment的实现,了解到目前主要的算法有ERT、SDM、LBF等,其中由于dlib开源库实现了ERT算法,效果也很不错,故开始研究dlib的使用。而使用的第一步是dlib的安装与编译,本文针对这一内容展开。网上有很多资料,不过也遇到了很多问题,走了一些弯路,故记录下来。

系统环境

1.系统:win7_x64;

2.VS版本:VS2013;

3.dlib版本:19.1;

实现步骤

1.使用dlib的注意事项;

2.dlib的下载与安装;

3.基于CMake编译dlib;

实现过程

1.使用dlib的注意事项;

1.1dlib的官网here

Dlib是一个跨平台的开源库,可以基于c++和python进行开发,包含了许多机器学习算法,官网上也有帮助文档和代码示例。dlib可以应用在Windows、Linux、Mac、embedded devices、mobile phones等,它的License是Boost Software License 1.0,可以商用。

dlib开源库的编译过程主要是生成dlib静态库,有两种方法,一种是通过Cmake,一种是通过自己创建的一个空的控制台工程,本文主要介绍第一种方法,之后会介绍第二种方法。

1.2版本的一致性;

dlib的版本与系统、编译器、VS版本需要具有一致性,通过实践发现,dlib19.1之后的较新版本适用于VS2015或者newer,同时VS2015只适用于win10或者newer系统,安装VS2015之后新建项目有如下提示:

根据现有的资源,选择dlib19.1+VS2013进行实现;

2.dlib的下载与安装;

2.1下载;

dlib官网的下载链接只有最新版本的,但是不适用于现有的资源,故需要下载之前的老版本,这个官网上是没有的,在此提供两种方法。

方法一:davisking的github

方法二:sourceforge网站

这两种方法都有各种版本的压缩包,非常方便,在此就要吐槽一下某度的搜索能力了,但是非常感谢同导师的两位同学提供的帮助;

2.2安装;

安装就非常简单了,直接解压就可以啦。。。

3.基于CMake编译dlib;

3.1CMake的下载安装;

CMake官网here,在download页面就有需要的下载链接,安装即可;

3.2dlib的编译过程;

step1:打开cmake-gui的界面,添加source code和生成文件的路径;

step2:点击configure选择生成器;

step3:点击generate生成项目文件;

最后的界面如下图所示:

生成成功之后的生成文件内容如下图所示:

以上只是将dlib开源库转换成一个VS工程,还需要打开、生成该工程;

step4:使用VS2013打开dlib项目的解决方案,方案平台选择的是x64,分别在Debug和Release模式下生成dlib的静态库文件,

保存在生成文件路径下的debug和release文件夹中;

接下来就是将dlib.lib导入到需要用到的工程中,主要需要修改项目属性,包括添加附加库目录和附加依赖项,关于dlib的使用会在之后做介绍;

注意(20180110):

本人按照以上步骤在笔记本上是可以正常运行生成静态库的,但是在boss的电脑上出现了错误,错误是关于模块计算机和目标计算机不匹配的问题,这类问题很可能就是编译器类型和链接库等类型不匹配。此处step2选择的编译器修改为win64版本的即可,主要在于当前的生成器都是win64的即可;

参考

1.dlib的编译

2.dlib提取特征点的总结

3.编译过程

4.模块计算机和目标计算机的问题解答

开源库dlib的安装与编译-CMake的更多相关文章

  1. libCURL开源库在VS2010环境下编译安装,配置详解

    libCURL开源库在VS2010环境下编译安装,配置详解 转自:http://my.oschina.net/u/1420791/blog/198247 http://blog.csdn.net/su ...

  2. linux下安装libcurl及开源库的一般安装步骤

    前言 总有人说:要多看源代码!那么源代码去哪找呢?找到了又该怎么安装呢?本票博客不介绍如何使用和学习,只要讲获取和安装,以后会将curl和libevent的使用和学习. 一.开源库常用安装步骤 1.开 ...

  3. c++ 开源库介绍和安装

    1 BLAS库 BLAS(Basic Linear Algebra Subprograms)是一组线性代数计算中通用的基本运算操作函数集合.BLAS Technical (BLAST) Forum负责 ...

  4. cryptopp开源库的使用(零):windows下使用visual studio编译

    编译相当简单:打开目录下的sln文件直接编译即可,官方支持到vc2012,我使用vs2013也没有错误,优秀的开源库总是便于使用. 编译的时候注意运行库得选择需要跟使用该库的保持一致,否则会出现重定义 ...

  5. MXNet 学习 (1) --- 最易上手的深度学习开源库 --- 安装及环境搭建

    安装环境:Win 10 专业版 64位 + Visual Studio 2015 Community. 记录下自己在有GPU的环境下安装配置MXNet的过程.该过程直接使用MXNet release ...

  6. python学习--Linux下dlib安装(主要是cmake和boost的安装)

    昨天我们使用了dlib和opencv进行了人脸检测标注(http://www.cnblogs.com/take-fetter/p/8310298.html) 但是运行环境是基于windows的而且可能 ...

  7. 视觉slam十四讲开源库安装教程

    目录 前言 1.Eigen线性代数库的安装 2.Sophus李代数库的安装 3.OpenCV计算机视觉库的安装 4.PCL点云库的安装 5.Ceres非线性优化库的安装 6.G2O图优化库的安装 7. ...

  8. 安装与编译Dlib(以Ubuntu16.04+Python3.6+pip为例)

    安装与编译Dlib(以Ubuntu16.04+Python3.6+pip为例) Step1:下载Ubuntu (or Linux)系统支持库=>Install OS libraries -dev ...

  9. 开源服务专题之--------mysql的编译安装

    为什么选择MySQL 1:mysql性能卓越,服务稳定,很少出现异常宕机 2:mysql开源免费,无版权制约,自主性及使用成本低 3:产品耦合度,mysql支持多种操作系统,支持多开发语言,特别是ph ...

随机推荐

  1. MongoDB(课时15 数据排序)

    3.4.2.10 数据排序 在MongoDB里数据排序操作使用“sort()”函数,在进行排序的时候可以有两个顺序:升序(1),降序(-1). 范例:排序 db.students.find().sor ...

  2. Oracle 12c Windows安装、介绍及简单使用(图文)

    1.下载 地址为:http://www.oracle.com/technetwork/cn/database/enterprise-edition/downloads/index.html 含企业版和 ...

  3. Java注册帐号邮箱激活验证实现

    Java注册帐号邮箱激活验证实现 1.需要加入发送邮件的mail.jar: http://www.oracle.com/technetwork/java/javamail/index-138643.h ...

  4. YII第三步,日志开启

    YII第三步,日志开启 index.php入口文件配置: defined('YII_DEBUG') or define('YII_DEBUG',true); cofig/main.php 'prelo ...

  5. codeforces 578c//Weakness and Poorness// Codeforces Round #320 (Div. 1)

    题意:一个数组arr,一个数字x,要使arr-x的最大子段最小,问该最小值. 三分x,复杂度logn,内层是最大子段的模板,只能用n复杂度的.因为是绝对值最大,正负各求一次,取大的.精度卡得不得了,要 ...

  6. 『cs231n』作业1选讲_通过代码理解KNN&交叉验证&SVM

    通过K近邻算法探究numpy向量运算提速 茴香豆的“茴”字有... ... 使用三种计算图片距离的方式实现K近邻算法: 1.最为基础的双循环 2.利用numpy的broadca机制实现单循环 3.利用 ...

  7. HDU-4471 Yet Another Multiple Problem (BFS+路径还原)

    Problem Description There are tons of problems about integer multiples. Despite the fact that the to ...

  8. 高精度减法用string 和 stack

    #include "bits/stdc++.h" using namespace std; int main() { string a,b; while(cin >> ...

  9. linux下批量kill进程的方法

    --kill某个用户下的所有进程(用户为test)--pkill  # pkill -u test--killall  # killall -u test--ps  # ps -ef | grep t ...

  10. POJ 2251 bfs

    DESCRIPTION:给你一个三维的迷宫.问你是否能从起点走到终点.如果能,输出最小步数.对我来说难得就是我没有想到怎么把他给你的三维图转换成map.恩..好像解题报告上说.只要是这种的最短路都要用 ...