首页 » 网站建设 » phpgdjpegsupport技巧_常用对象 dlib编译调用指南

phpgdjpegsupport技巧_常用对象 dlib编译调用指南

访客 2024-11-02 0

扫一扫用手机浏览

文章目录 [+]

dlib是一个C++工具包(dLIB中也有Python接口,但是紧张编程措辞为C++),包含绝大多数常用的机器学习算法,许多图像处理算法和深度学习算法,被工业界和学术界广泛运用于机器人、嵌入式设备、移动电话和大型高性能打算环境等领域。
dlib的开源容许许可您在任何运用程序中免费利用它。
在工程实践中,dlib常日和OpenCV结合利用,OpenCV供应图像处理算法,dlib供应机器学习算法。
对付从事打算机视觉行业的人,非常推举学习利用dlib。
本文紧张讲述dlib在Windows(win10)和linux(ubuntu18.04)下面向C++的编译安装调用。
dlib详细先容见其官网​dlib官网​​。

文章目录1 资源2 Windows下C++编译安装调用dlib2.1 编译2.2 配置与利用3 Ubuntu下C++编译安装调用dlib3.1 编译3.2 配置与利用4 Python安装调用dlib5 参考1 资源

在dlib的github仓库下载对应版本文件。
链接地址为:​​dlib​​​。
此外,在利用dlib中须要利用dlib供应的模型,下载地址见​​dlib-models​​​。
如果网速太慢,可以看看gitee备份。
地址为:​​dlib-gitee​​​和​​dlib-models-gitee​​。

phpgdjpegsupport技巧_常用对象 dlib编译调用指南

本文判断dlib是否成功编译的示例代码为dlib\examples目录下的3d_point_cloud_ex.cpp。
调用该示例代码后会可视化一个大略的3维点云数据。
代码如下:

phpgdjpegsupport技巧_常用对象 dlib编译调用指南
(图片来自网络侵删)

// The contents of this file are in the public domain. See LICENSE_FOR_EXAMPLE_PROGRAMS.txt/ This is an example illustrating the use of the perspective_window tool in the dlib C++ Library. It is a simple tool for displaying 3D point clouds on the screen./#include <dlib/gui_widgets.h>#include <dlib/image_transforms.h>#include <cmath>using namespace dlib;using namespace std;// ----------------------------------------------------------------------------------------int main(){ // Let's make a point cloud that looks like a 3D spiral. std::vector<perspective_window::overlay_dot> points; dlib::rand rnd; for (double i = 0; i < 20; i+=0.001) { // Get a point on a spiral dlib::vector<double> val(sin(i),cos(i),i/4); // Now add some random noise to it dlib::vector<double> temp(rnd.get_random_gaussian(), rnd.get_random_gaussian(), rnd.get_random_gaussian()); val += temp/20; // Pick a color based on how far we are along the spiral rgb_pixel color = colormap_jet(i,0,20); // And add the point to the list of points we will display points.push_back(perspective_window::overlay_dot(val, color)); } // Now finally display the point cloud. perspective_window win; win.set_title("perspective_window 3D point cloud"); win.add_overlay(points); win.wait_until_closed();}// ----------------------------------------------------------------------------2 Windows下C++编译安装调用dlib

Windows下的编译利用很大略,不须要其他的额外安装库,直接拉取dlib的仓库就行了。
本文将dlib仓库放在D:\packages\dlib路径下,然后通过cmake和vs2017编译利用dlib。
这一部分参考文章【C++】VS2019+Dlib安装及整合详细步骤。

2.1 编译

step1

在D:\packages\dlib路径下创建build文件夹和install文件夹,build文件夹用于存放干系编译数据,install保存末了须要调用的天生文件。
文件构造如下图所示:

step2

打开cmake-gui,配置dlib库。
cmake安装地址为:​​cmake​​。
打开cmake-gui后设置源代码目录地址和天生文件地址,点击configure。
如图所示:

然后配置编译器,选择对应的编译器版本,再选择编译平台版本x64。
末了点击finish,cmake将会自动编译文件。

在编译过程会涌现找不到cuda的情形,忽略就行了。
然后把稳将指定的安装目录CMAKE_INSTALL_PREFIX这一项改为D:\packages\dlib\install。
然后再点击configure,如果没有标红,点击generate。

step3

天生干系文件,generate成功后打开OpenProject即可,这样就会打开vs2017。
如下图所示:

打开后的vs2017界面如下图所示,确定编译平台为debug/x64,然后点击天生-天生办理方法即可,如下图所示。
这样的好处是知道哪些模块天生失落败。
如果有天生译缺点,检讨即可。
这一过程约3分钟,不同机器韶光不一样。

天生成功后,如下图所示。
可以有天生跳过,但是不能有天生失落败。

如果天生后没有失落败的,选择办理方案-INSTALL-仅用于项目-仅天生INSTALL,如下图所示:

此外以上操作只能天生dlib Debug版本。
Release版本须要修正配置平台,重复以上操作。
如下图所示:

末了如果install文件夹中有include文件夹和lib文件夹,表明编译过程成功。
如下图所示:

在windows平台下,某些情形下dlib会利用libjpeg,libpng模块,可能会涌现链接libjpeg缺点的情形。
如果你利用的是anaconda,dlib会自动链接anconda的libjpeg,libpng模块。
这些模块是32位的,你只能用x86的dlib版本,否则出错。
如果是想用x64平台,须要自己编译第三方模块的x64版本,比如libpng,libjpeg,zlib。
github搜索这些模块,然后编译后。
用visual studio的命令行开拓工具,进入build目录,自行指定libjpeg等链接文件,再进行编译。
个中dlib要链接的第三方库自行指定目录(目前看来这一种办理办法),详细命令如下:

# Visual Studio 15 2017指vs2017,vs2015用Visual Studio 14 2015,vs2019用Visual Studio 16 2019# -DCMAKE_INSTALL_PREFIX=../instal 编译文件安装目录cmake -G "Visual Studio 15 2017" -DJPEG_INCLUDE_DIR=..\dlib\external\libjpeg -DJPEG_LIBRARY=..\dlib\external\jpeg.lib -DPNG_PNG_INCLUDE_DIR=..\dlib\external\libpng -DPNG_LIBRARY_RELEASE=..\dlib\external\libpng.lib -DZLIB_INCLUDE_DIR=..\dlib\external\zlib -DZLIB_LIBRARY_RELEASE=..\dlib\external\z.lib -DDLIB_GIF_SUPPORT=OFF -DCMAKE_INSTALL_PREFIX=../install -DCMAKE_GENERATOR_PLATFORM=x64 ..# 编译debug版本cmake --build . --target INSTALL# 编译release版本cmake --build . --config Release --target INSTALL2.2 配置与利用

新建vs2017项目,然后选择属性管理器,新建属性列表dlib如下图所示。
这样该dlib属性列表往后可以重复导入利用,不须要每次新建工程都配置。

修正Release|X64模式下的dlib属性,修正VC++目录下的可实行目录,库目录。
如下图所示:

包含目录设置如下,添加头文件:

D:\packages\dlib\install\include

库目录设置如下:

D:\packages\dlib\install\lib

然后修正链接器-输入-附加依赖项,如下图所示:

附加依赖项设置如下。
把稳不同版本dlib编译天生的lib不一样,把稳区分,如果是debug就调用相应的debug版本,都在install\lib目录下。

dlib19.22.99_release_64bit_msvc1916.lib

然后调用本文在第一节提到的示例代码3d_point_cloud_ex.cpp文件,结果如下图所示,便是一个展示3维点云的代码,可以拖动或放大缩小图形。

3 Ubuntu下C++编译安装调用dlib3.1 编译

ubuntu下编译利用dlib比windows下轻微繁芜,由于ubuntu短缺一些dlib所须要的库,有时会涌现莫名其妙的缺点,一样平常来说都是短缺图形显示库,比如linux下dlib须要x11图像化界面(windows不须要,其他系统图像化界面可能不一样),以是先安装x11。
如果不安装可能会涌现X11干系缺点。
这一部分参考文章​​ubuntu下利用 dlib​​和​​cmake-cant-find-x11​​

sudo apt-get install libx11-dev

然后进入dlib根目录,输入以下命令:

mkdir build; cd build; cmake … -DUSE_AVX_INSTRUCTIONS=1; make -j12

上述命令会编译AVX,来加速CPU运行,如果涌现缺点利用以下命令编译:

mkdir build; cd build; cmake …; make -j12

3.2 配置与利用

新建一个文件夹dlib-test,将3d_point_cloud_ex.cpp复制到该文件夹。
进入该文件夹,新建CMakeList.txt文件,CMakeList.txt内容如下。
把稳CMake文件链接dlib库的路径地址

cmake_minimum_required(VERSION 2.8.12)# 工程名project(dlib_test)SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -O2 -DDLIB_JPEG_SUPPORT") IF(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Weverything")ELSEIF(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra")ENDIF()# 包含OpenCVfind_package(OpenCV REQUIRED)if (OpenCV_FOUND) include_directories(${OpenCV_INCLUDE_DIRS}) message("OpenCV found")endif()# 包含X11find_package(X11 REQUIRED)if (X11_FOUND) include_directories(${X11_INCLUDE_DIR}) message("X11 found")endif()# 添加dlibinclude_directories(/home/{yourpath}/dlib)link_directories(/home/{yourpath}/dlib/build/dlib/)# 添加代码add_executable(dlib_test 3d_point_cloud_ex.cpp)# 链接库# libdlib.a - lpthread - lX11分别表示链接dlib,多线程,X11target_link_libraries(dlib_test ${OpenCV_INCLUDE_LIBS} ${X11_LIBRARIES} libdlib.a -lpthread -lX11)

然后输入以下命令,即可编译运行示例代码:

mkdir build; cd build; cmake …; make -j12; ./dlib_test

如果涌现第二节的三维点云图形,表明dlib安装成功。

4 Python安装调用dlib

常日直接用pip install dlib会出错,以是须要安装一系列的库,紧张是cmake、Boost。
详细如下:windows:

pip install cmakepip install boostpip install dlib

如果创造编译失落败,看看​​python–3.8安装dlib​​,直接通过whl包安装dlib也行

linux:

sudo apt-get install libx11-devsudo apt-get install libboost-all-devsudo apt-get install cmakepython3 -m pip install dlib

安装成功后,在python环境import dlib即表明安装成功,当然也可以编译安装,详细步骤见官方仓库文档。

5 参考​​dlib官网​​​​dlib​​​​dlib-models​​​​dlib-gitee​​​​dlib-models-gitee​​【C++】VS2019+Dlib安装及整合详细步骤ubuntu下利用 dlib​​cmake-cant-find-x11​​
标签:

相关文章

微信第三方登录便捷与安全的完美融合

社交平台已成为人们日常生活中不可或缺的一部分。微信作为我国最受欢迎的社交软件之一,拥有庞大的用户群体。为了方便用户在不同平台间切换...

网站建设 2025-02-18 阅读0 评论0

广东高速代码表解码高速公路管理智慧

高速公路作为国家交通动脉,连接着城市与城市,承载着巨大的物流和人流。广东作为我国经济大省,高速公路网络密布,交通流量巨大。为了更好...

网站建设 2025-02-18 阅读0 评论0