【3D视觉】realsense D435三维重建

2023-05-16

1,硬件:realsense D435

驱动及SDK开发包安装

GitHub - IntelRealSense/librealsense: Intel® RealSense™ SDK

8cfbd685e6944e5c8b4c92ca9082cf23.png

 

 

下载最新驱动

 

 安装后打开 Intel RealSense Viewer

ea768c19ec3e478b83793b82d264ff3a.png

 

 

 

2.重构方法:InfiniTAM v3

65cc38ca077c46a6963b0e7523f1f96e.png

 

 

需要安装OpenGL,下载 freeglut-2.8.1,使用 vs2015打开,生成库文件

(1)编译成功后,返回到 freeglut-2.8.1 根目录,将 include 下的 GL 文件夹复制到 C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include 文件夹。

(2)返回到 freeglut-2.8.1 目录,把 lib\x86 里面的 freeglut.lib 复制到 C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib 中。

(3)把 lib\x86 里面的 freeglut.dll 复制到 C:\Windows\SysWOW64 文件夹中。

对于 32 位 Windows 操作系统,16 位的 DLL 文件被存放在 \Windows\System 文件夹里,32 位 DLL 文件会被被存放在 \Windows\System32 的文件夹里。
但对于 64 位版本的 Windows 保持 64 位和 32 位 DLL 文件的方式会相对复杂些,微软因此创建了一个新的名为 SysWOW64 的文件夹来存放 32 位的 DLL 文件,使用 \Windows\System32 文件夹作为 64 位 DLL 的文件夹,而不是存放 32 位 DLL 文件的文件夹。

至此,FreeGLUT 库的配置就完成了!

 

3,工程构建

这里演示的是在Windows10系统上构建Visual Studio 2017 Win64的工程,包括的依赖项有:OpenGL/GLUT、CUDA、FFMPEG、librealsense2。

1. 工程源码下载

在InfiniTAM仓库下载源码,clone或者download都可以。使用默认的分支master

其中,FernRelocLib、InputSource、ITMLib、MiniSlamGraphLib、ORUtils为源码主体。

2. 配置依赖库

(1)freeglut:从这里下载编译好库(freeglut-MSVC-2.8.1-1),解压,将里面的freeglut文件夹解压到InfiniTAM的源码目录中。

(2)CUDA(可选):从官网上下载CUDA toolkit,选择Window10 x86_64 10  exe(local),然后获取对应的安装程序(当前默认v10.1版本)。下载后根据提示安装即可。

(3)librealsense2(可选):同样从官网上下载安装程序,下载后安装sdk即可。

(4)ffmpeg(可选):在FFMPEG的windows版下载页面中下载,选择版本4.1.1(当前最新),Windows64-bit,然后分别选择shared和dev下载对应压缩包(shared中包含动态链接库,dev中包含include和lib)。在InfiniTAM的源码目录下新建一个ffmpeg文件夹,将dev中的include和lib两个文件夹解压到ffmpeg里,然后将shared里的ffmpeg-2019-*****-win64-shared文件夹解压到ffmpeg中,重命名为shared(里面包含一个bin文件夹)。

以上的四个依赖库,只有freeglut是必要的,剩下的三个如果不是都选择或者都不选择,则会大大简化接下来的工程构建过程。

3. CMake构建工程

打开CMake GUI程序(如cmake 3.13.0),选择源代码路径为InfiniTAM的源码目录,在源码目录下新建一个build文件夹,将它作为编译路径,如下图:

6ddb5d4aa229480eb7db8517c5576794.png

 

 

 

CMake路径选择 实际目录情况


点击configure,选择生成器:Visual Studio 15 2017 Win64,然后Finish。

如果CUDA配置有问题,这里会显示对应的错误。常见错误是cuda的版本和当前显卡的驱动版本不匹配,这时候需要更新驱动或者下载一个匹配当前驱动的CUDA版本。

如果初步配置顺利,会出现如下图的结果:


1ac63ce4ed854456b92223ddbaf27c6d.png

 


(注意,因为已经正确安装和配置了CUDA,初次工程配置会默认把CUDA相关的信息包含进来,另外GLUT的信息也会被默认收集并配置。如果此时继续点击Configure进行确认,那么最后generate出的工程不会有问题,可以正常编译和执行,但是会不支持部分功能如接收外接摄像头的输入,视频的录制和读取等。)

下一步,勾选WiTH_FFMPEG, WITH_REALSENSE2(这里只选取这两个功能的扩展,如果想要选取其他的功能也可以,但是前提是要配置对应的依赖库),然后再次Configure。

这里会出现第一个错误,即FFMPEG配置错误,如下图:

9dafb4d8b23542b3999038c59ec5d3b2.png

这里要手动修改上图中红色标识的键值对中的Value值,也就是对应的文件及文件夹路径,这些信息都在第2步配置的依赖库文件夹FFMPEG中,手动选取对应路径,修改完成后,再次点击Configure进行确认

这里有两个问题,一个是找不到FFMPEG的shared文件夹路径,另一个是realsense2路径配置错误。

 

同样地手动修改这几个错误的值。首先,FFMPEG的shared文件夹在前面配置好的ffmpeg文件夹下,可以直接选取。然后,realsense2的配置路径实际上就是第2步中安装realsense sdk的目录,找到这个目标并选取对应文件夹即可。

然后,同样地Configure确认,结果:

2ba51bf310554ad8bca61865114e6d72.png

 

 

第三次配置成功,没有再报错。这里就可以点击Generate进行工程的生成了。

显示Generating done,表示工程生成成功。

4. 工程编译

工程生成成功后,会在build文件下生成一个InfiniTAM.sln的解决方案。使用Visual Studio 2017打开这个sln。

 

可以在Debug和Release下分别生成解决方案来进行InfiniTAM的编译。

在这个解决方案中,InfiniTAM和InfiniTAM_cli是两个示例程序,其中,InfiniTAM是一个图形程序,有显示界面并可以操作;InfiniTAM_cli是一个控制台程序,提供InfiniTAM的单线程调用示例。这两个程序的执行依赖于外部数据的输入。

如果工程在构建时已经包含了对realsense或realsense2的支持,那么在机器上连接一个realsense的摄像头,就可以正常运行上面两个程序,并看到运行的结果。

如果在工程构建时没有包含任何额外的依赖库,那么可以从InfiniTAM官网上下载一个示例的图像帧序列压缩包(包含ppm和pgm),然后根据InfiniTAM程序中的源代码说明应用这些数据执行程序,执行结果如下图:

4ad12d7d22da49158f8c59034ba617f1.png

 

 

5. 部分问题

当前网上所能下载的MMPEG版本实际都高于InfiniTAM v3中应用的版本,因此有一些地方需要做修改,否则会在工程编译时发生错误。

第一个问题是,在目前的各MMPEG版本中,libavfilter/avfiltergraph.h这个头文件已经被移除,但是在InfiniTAM v3中依然引用了这个头文件,具体见InputSource/FFMPEGWriter.cpp和InputSource/FFMPEGReader.cpp。解决这个问题,只需要把对avfiltergraph.h的引用改为引用avfilter.h,因为原avfiltergraph.h中的定义已经包含在avfilter.h中了。

第二个问题是由InfiniTAM源码目录下的cmake文件夹里的LinkFFmpeg.cmake引起的。在LinkFFmpeg.cmake中已经默认定义了在工程编译时要拷贝的ffmpeg的dll文件
而实际下载的ffmpeg的dll文件版本比默认定义的要高,如下图:

ad72e4e72e784a7798ba3ec52db21a75.png

 

 

这个不一致会引起Visual Studio在工程编译时报“setlocal”错误。修改的方法就是修改LinKFFmpeg.cmake中默认拷贝的dll的文件名与实际的相同,然后重新Generate工程。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【3D视觉】realsense D435三维重建 的相关文章

随机推荐