Ubuntu Open3D Headless Rendering 配置笔记

在服务器无显示器时,为了正常使用 Open3D,需要开启 Headless Rendering。而该功能必须要重新编译,下面给出详细过程。

使用环境Ubuntu 20.04.

主要参考

http://www.open3d.org/docs/latest/tutorial/Advanced/headless_rendering.html
http://www.open3d.org/docs/latest/compilation.html

步骤0 开启 Conda/VirtualEnv Python 环境
注意下列步骤安装的Open3D 将在该Python环境种适用。

步骤1 更新电脑中的 cmake

https://graspingtech.com/upgrade-cmake/

sudo apt install build-essential libssl-dev
wget https://github.com/Kitware/CMake/releases/download/v3.20.2/cmake-3.20.2.tar.gz
tar -zxvf cmake-3.20.2.tar.gz
cd cmake-3.20.2
./bootstrap
make -j
sudo make install

步骤2 Install OSMesa

sudo apt-get install libosmesa6-dev

步骤3 编译

git clone https://github.com/isl-org/Open3D

util/install_deps_ubuntu.sh

mkdir build
cd build

cmake -DENABLE_HEADLESS_RENDERING=ON
-DBUILD_GUI=OFF
-DUSE_SYSTEM_GLEW=OFF
-DUSE_SYSTEM_GLFW=OFF
-DBUILD_WEBRTC=OFF

make -j
make install-pip-package

搞定!

最后:Test headless rendering

$ cd …/Open3D/examples/python/visualization
$ python headless_rendering.py

如果看到输出说明成功:
Capture image 00000
Capture image 00001
Capture image 00002
Capture image 00003
Capture image 00004
Capture image 00005
:
Capture image 00030

为了在Ubuntu 22.04上配置Open3D库进行C++开发,需要完成以下步骤: ### 安装Open3D 首先,确保系统已安装必要的依赖项,包括`git`、`cmake`和`libgl1`。然后克隆Open3D仓库并编译安装: ```bash sudo apt update sudo apt install -y git cmake libgl1 git clone https://github.com/isl-org/Open3D cd Open3D git submodule update --init --recursive mkdir build && cd build ``` 在`build`目录中,使用`cmake`生成构建配置,并指定安装路径(例如`/usr/local`): ```bash cmake -DCMAKE_INSTALL_PREFIX=/usr/local .. make -j$(nproc) sudo make install ``` 这将把Open3D库安装到系统目录,便于后续开发使用[^1]。 ### 配置C++项目 接下来,创建一个C++项目并使用CMake进行配置。首先,创建一个`CMakeLists.txt`文件,指定Open3D的安装路径,并链接必要的库: ```cmake cmake_minimum_required(VERSION 3.16) project(Open3DExample) set(CMAKE_CXX_STANDARD 14) find_package(Open3D REQUIRED) add_executable(main main.cpp) target_link_libraries(main PRIVATE Open3D::Open3D) ``` 在`main.cpp`中,可以编写简单的Open3D代码来测试是否成功配置。例如,加载一个点云并显示它: ```cpp #include <open3d/Open3D.h> using namespace open3d; int main() { // 加载点云 auto cloud = io::CreatePointCloudFromFile("path_to_point_cloud.ply"); // 显示点云 visualization::DrawGeometries({cloud}); return 0; } ``` 确保`path_to_point_cloud.ply`是有效的点云文件路径,或者使用Open3D提供的示例数据进行测试。 ### 编译和运行 在项目目录中,使用以下命令编译并运行程序: ```bash mkdir build && cd build cmake .. make ./main ``` 如果一切正常,将显示一个窗口,其中包含加载的点云数据。如果遇到错误,请检查Open3D的安装路径是否正确,并确保CMake配置正确链接了Open3D库。 ### 调试和优化 在开发过程中,可能需要调整CMake配置以启用某些功能或优化构建。例如,可以通过设置`-DBUILD_GUI=ON`来启用GUI支持,或者使用`-DENABLE_HEADLESS_RENDERING=ON`进行无头渲染。这些选项可以在`cmake`命令中添加: ```bash cmake -DBUILD_GUI=ON -DENABLE_HEADLESS_RENDERING=ON .. ``` 此外,Open3D的文档和示例代码是宝贵的资源,可以参考它们来深入了解如何使用Open3D进行C++开发。 ### 性能优化 对于高性能需求的应用,考虑启用Open3D的CUDA支持(如果硬件支持)。这可以通过在编译时启用CUDA选项来实现: ```bash cmake -DENABLE_CUDA=ON .. ``` 确保系统中已安装CUDA工具包,并且NVIDIA驱动程序已正确配置。 ### 示例代码 以下是一个完整的C++示例代码,展示了如何使用Open3D加载和显示点云: ```cpp #include <open3d/Open3D.h> using namespace open3d; int main() { // 加载点云 auto cloud = io::CreatePointCloudFromFile("path_to_point_cloud.ply"); // 显示点云 visualization::DrawGeometries({cloud}); return 0; } ``` ### 相关问题
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值