linux下安装python dlib机器学习依赖

2019-04-0422:32:26WEB前端开发Comments2,903 views字数 2514阅读模式

dlib是主要用于机器学习的库,封装了机器学习算法,可以非常方便的实现比如人脸识别,车辆识别,物体检测以其他很多功能,dlib默认使用C++进行开发,另外图像识别有一部分支持python接口开发,上手非常快,因为对于系统的安装过程,都来自官方文档的拼凑,网上资料很少,对新手会有一些坑,所以这里主要说一下python依赖接口的安装,服务器环境,python版本,下面是所有的依赖以及安装顺序:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/11187.html

1. pip python模块,下载地址:https://pypi.python.org/pypi/pip文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/11187.html

2. cmake编译工具  之前文章有详细的安装过程文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/11187.html

3.  boost是一款非常流行的C++类库,封装了非常多好用的工具,其中一个组件,主要封装了python和C/C++之间通信的API,比默认的python api更完善,dlib基于这个依赖进行交互,所以这里需要编译依赖文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/11187.html

4. dlib python模块,前面环境都准备完毕,最后一步就是编译并安装dlib python扩展了文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/11187.html

dlib python模块执行安装时,过程是会基于cmake编译工具和工具对dlib源码进行编译,最后将二进制模块编译至python库目录下,然后python就可以调用了,那下面开始安装文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/11187.html

1. pip模块文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/11187.html

pip模块从上面网址下载下来,解压开,直接执行python install即可,和普通模块安装一样,没什么说的文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/11187.html

2. cmake编译工具文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/11187.html

参考之前的文章  安装即可;如果没有cmake工具,在安装dlib时也会给出提示文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/11187.html

3.文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/11187.html

如果没有boost python依赖,那么下一步编译dlib时,会给出明确的提示和操作步骤,如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/11187.html

linux下安装python dlib机器学习依赖文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/11187.html

步骤其实都给出来了,按上面的步骤安装即可,下面是具体过程:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/11187.html

.  下载boost库文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/11187.html

boost官网:,点击右侧的最新版下载即可:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/11187.html

linux下安装python dlib机器学习依赖文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/11187.html

我这里下载的是: 大小80M左右文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/11187.html

. 安装boost库文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/11187.html

下载之后开始安装,首先解压安装包:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/11187.html

tar -jxvf boost_1_65_1.tar.bz2
cd boost_1_65_1/

然后按照上面图片的步骤和官网文档的步骤安装:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/11187.html

./bootstrap.sh --prefix=/monchickey/boost --with-libraries=python
./b2
./b2 install

上面的参数解释:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/11187.html

1. --prefix是指定安装的位置,如果不加默认是安装在/usr/local和系统库混合,这样后面比较省事,但是手动指定目录便于对库进行管理,不过后期要配置一些东西,下面会说到.文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/11187.html

2. python支持编译:--with-libraries=python 这里意思是仅安装python的库,其余的都不安装,对于dlib来说就是够用即可,但是如果需要编译全部库--with-libraries参数需要留空,也就是不加,文档中具体有写到,此时编译python要使用--with-python参数来专门指定,python2只使用参数:--with-python=python即可,其余的都默认,python3要使用--with-python=PYTHON3_HOME以及其他参数都指定详细,另外有篇文章是专门编译python3的,可以参考;文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/11187.html

根据上面说的,如果需要编译boost全部依赖以及python 2.x的话,则使用下面的命令:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/11187.html

./bootstrap.sh --prefix=/monchickey/boost --with-python=python
./b2 && ./b2 install

上面编译和安装过程需要等待挺长时间,完了之后进入安装目录,会看到只有两个目录,一个是include主要是存放头文件和源代码文件,另一个是lib,也就是我们编译好的python相关依赖,如下(备注: 这里因为仅编译python库, 所以比较少):文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/11187.html

linux下安装python dlib机器学习依赖文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/11187.html

到这里依赖就算安装完成了文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/11187.html

4. 最后编译dlib python模块文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/11187.html

dlib库官网地址: 进入后点击左下侧按钮直接下载即可:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/11187.html

linux下安装python dlib机器学习依赖文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/11187.html

这里下载的是:,首先在指定位置解压:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/11187.html

tar -jxvf dlib-19.7.tar.bz2
cd dlib-19.7/

进入目录后会看到,如果上面安装到系统目录下的话,那么现在直接安装应该就可以了,如果是自定义目录,这时候安装仍然会报错提示找不到boost python库,其实是cmake找不到boost,这时候先不要急着配置系统库建软链,而是要配置环境变量,目的是让cmake找到boost即可,首先执行 vim /etc/profile 然后在最后一行加上: export BOOST_ROOT=/monchickey/boost 指定boost根目录,如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/11187.html

linux下安装python dlib机器学习依赖文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/11187.html

配置好之后,执行 source /etc/profile 使环境变量生效,接下来就可以执行安装了:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/11187.html

python  install --yes USE_AVX_INSTRUCTIONS

这里后面加这个参数是为了支持CPU AVX指令集,这样可以提升程序运行的性能,目前一般CPU都支持;等一会就安装完成了,安装完成之后运行 python 进入交互式界面,输入 import dlib 如果正常就成功了,不过如果boost库安装的不是默认目录,仍然会出问题即找不到的错误,原因是导入编译好的dlib模块时,同时dlib运行时又会加载库,这时候系统搜索不到所以会报错,这和刚才cmake报错是不同的,这个时候不要将刚才的boost库文件放到python库下面,只有编译成可以被python直接调用的库才放在python目录下面,而基于C的python库,运行时依赖的是系统库搜索路径,应该是/usr/lib,/usr/lib64这些,所以这时候解决方法有以下两种:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/11187.html

1). 将/monchickey/boost/lib中的so模块建立软链接到/usr/lib64下面文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/11187.html

2). 利用配置文件/etc/加载新的库搜索路径文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/11187.html

这里使用第二种方法,首先执行 vim /etc/ld.so.conf.d/boost.conf 新建配置文件,然后加入一行:/monchickey/boost/lib 保存并退出,文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/11187.html

然后执行命令: ldconfig 使配置生效,这样指定的链接库就被加到运行时搜索目录了文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/11187.html

现在再次导入dlib模块就正常了文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/11187.html

  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/gcs/11187.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定