您的位置首页  散文评论

exb文件怎么打开(exb文件打开读数据文件错误)全程干货

dlib是一个C++工具包(dLIB中也有Python接口,但是主要编程语言为C++),包含绝大多数常用的机器学习算法,许多图像处理算法和深度学

exb文件怎么打开(exb文件打开读数据文件错误)全程干货

 

dlib是一个C++工具包(dLIB中也有Python接口,但是主要编程语言为C++),包含绝大多数常用的机器学习算法,许多图像处理算法和深度学习算法,被工业界和学术界广泛应用于机器人、嵌入式设备、移动电话和大型高性能计算环境等领域。

dlib的开源许可允许您在任何应用程序中免费使用它在工程实践中,dlib通常和OpenCV结合使用,OpenCV提供图像处理算法,dlib提供机器学习算法对于从事计算机视觉行业的人,非常推荐学习使用dlib。

本文主要讲述dlib在Windows(win10)和linux(ubuntu18.04)下面向C++的编译安装调用dlib具体介绍见其官网​dlib官网​​文章目录1 资源2 Windows下C++编译安装调用dlib

2.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​​。

本文判断dlib是否成功编译的示例代码为dlib\examples目录下的3d_point_cloud_ex.cpp调用该示例代码后会可视化一个简单的3维点云数据代码如下:// 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#include#includeusingnamespace dlib; using

namespacestd; // ----------------------------------------------------------------------------------------

intmain(){ // Lets make a point cloud that looks like a 3D spiral.std::vector points; dlib::rand rnd;

for (double i = 0; i < 20; i+=0.001) { // Get a point on a spiral dlib::vector

> val(sin(i),cos(i),i/4); // Now add some random noise to it dlib::vector 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++编译安装调用dlibWindows下的编译使用很简单,不需要其他的额外安装库,直接拉取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,zlibgithub搜索这些模块,然后编译后用visual studio的命令行开发工具,进入build目录,自行指定libjpeg等链接文件,再进行编译。

其中dlib要链接的第三方库自行指定目录(目前看来这一种解决办法),具体命令如下:# Visual Studio 152017指vs2017,vs2015用Visual Studio 142015,vs2019用Visual Studio

162019 # -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 INSTALL

2.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 -j123.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() # 包含OpenCV find_package(OpenCV REQUIRED) if (OpenCV_FOUND) include_directories(

${OpenCV_INCLUDE_DIRS}) message("OpenCV found") endif() # 包含X11 find_package(X11 REQUIRED) if (X11_FOUND) include_directories(

${X11_INCLUDE_DIR}) message("X11 found") endif() # 添加dlib include_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,多线程,X11

target_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:pipinstall cmakepipinstall boostpipinstall dlib如果发现编译失败,看看​​python–3.8安装dlib​​,直接通过whl包安装dlib也行

linux:sudo apt-get install libx11-dev sudo apt-getinstall libboost-all-dev sudo apt-getinstall cmake python3 -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​​

免责声明:本站所有信息均搜集自互联网,并不代表本站观点,本站不对其真实合法性负责。如有信息侵犯了您的权益,请告知,本站将立刻处理。联系QQ:1640731186