前言

最近项目涉及到关于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. YOLO V3论文理解

    YOLO3主要的改进有:调整了网络结构:利用多尺度特征进行对象检测:对象分类用Logistic取代了softmax. 1.Darknet-53 network在论文中虽然有给网络的图,但我还是简单说一 ...

  2. Codeforces 918D - MADMAX

    918D - MADMAX 思路: dp+记忆化搜索 状态:dp[i][j][w]表示先手在i节点,后手在j节点,这一轮的字母为w的结果,如果为true,则表示先手必赢,否则后手必赢. 状态转移:如果 ...

  3. Codeforces 535C - Tavas and Karafs

    535C - Tavas and Karafs 思路:对于满足条件的r,max(hl ,hl+1 ,hl+2 ,......,hr )<=t(也就是hr<=t)且∑hi<=t*m.所 ...

  4. Java选择结构和数组

    Java选择结构和数组 一.Switch语句 二.if和switch区别 推荐使用if 三.函数 Java中的函数和方法是同一个词 四.数组 4.1.数组常见错误 五.内存机制 六.转换成十六进制 移 ...

  5. 雷林鹏分享:C# 运算符重载

    C# 运算符重载 您可以重定义或重载 C# 中内置的运算符.因此,程序员也可以使用用户自定义类型的运算符.重载运算符是具有特殊名称的函数,是通过关键字 operator 后跟运算符的符号来定义的.与其 ...

  6. 雷林鹏分享:C# 接口(Interface)

    C# 接口(Interface) 接口定义了所有类继承接口时应遵循的语法合同.接口定义了语法合同 "是什么" 部分,派生类定义了语法合同 "怎么做" 部分. 接 ...

  7. codeforces 555c// Case of Chocolate// Codeforces Round #310(Div. 1)

    题意:直角边为n的网格巧克力,一格为一块,选择斜边上一点,从左或上吃,直到吃到空气,称为一次操作.给出几个操作,问各能吃几块.如果x是当前要吃的横坐标,在已经吃过的中找x1>=x的第一个x1,即 ...

  8. unittest参数化

    我们在写case的时候,如果用例的操作是一样的,就是参数不同,比如说要测一个登陆的接口,要测正常登陆的.黑名单用户登陆的.账号密码错误的等等,在unittest里面就要写多个case来测试. 这样的情 ...

  9. python-day4笔记

    1.文件后缀名对python运行没关系 2.Python解释器执行python程序的过程:python3 C:\test.py 1)启动python解释器(内存中) 2)将C:\test.py内容从硬 ...

  10. 蓝桥杯--乘积最大(数字DP)

    1230: 乘积最大 [DP] 时间限制: 1 Sec 内存限制: 128 MB 提交: 7 解决: 5 状态 题目描述 今年是国际数学联盟确定的“2000——世界数学年”,又恰逢我国著名数学家华罗庚 ...