open3d 通过vscode+ssh连接远程服务器将可视化界面本地显示的问题

 更新时间:2023年07月10日 16:48:00   作者:DpHard  
这篇文章主要介绍了open3d通过vscode+ssh连接远程服务器将可视化界面本地显示,本文分步骤给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

当使用远程服务器时,我们希望能像在本地一样写完代码后能立刻出现一些gui窗口。但是目前网络上的资料都不能很好的解决这个问题。本文尝试尽可能简短地解决这个问题。

步骤

1、在服务器上安装open3d

已经非常简化了,可以使用一行代码完成

pip3 install open3d

2、下载x系列服务器

我们这里要使用VcXsrv。安装过程一路next就行。但是注意不要安装到c盘,可能会出现权限问题。注意:本人测试过常用的x系列软件xming和xmanager均无法完成open3d的远程可视化

3、配置

打开VcXsrv安装目录下的X0.hosts 文件并输入你的服务器ip

在这里插入图片描述

在这里插入图片描述

打开同目录下的Xlauch

直到这里,非常重要,勾选如下。

在这里插入图片描述

成功设置后将看到右下角,这里注意0即为你的端口号。

在这里插入图片描述

vscode

在**本机(并非是服务器)**vscode的扩展商店中安装Remote-SSH和Remote X11(SSH)

并在SSH设置中输入以下三行

在这里插入图片描述

远程服务器

可以在vim ~/.bashrc中 最后加入

 export DISPLAY="本机ip:端口号" 

并source ~/.bashrc

注意检查:

echo $LIBGL_ALWAYS_INDIRECT

若非空或者是1,则将其置为0以上操作完成后,在终端输入xclock应该能显示一个小时钟。

运行测试程序

import numpy as np
import open3d as o3d
points = np.random.rand(10000, 3)
point_cloud = o3d.geometry.PointCloud()
point_cloud.points = o3d.utility.Vector3dVector(points)
o3d.visualization.draw_geometries([point_cloud])

成功应该是如下图所示,并且可以拖动窗口和改变视角

在这里插入图片描述

可能的原因

在远程交互过程中,open3d需要显示器创建上下文。但是远程服务器是没有图形化界面的,因此需要通过x服务器来转发到本地。通过之前的步骤,远程服务器就可以直接操纵本地的gpu环境,从而进行可视化。

参考资料

https://github.com/isl-org/Open3D/issues/897

可能的其他解决方案

1、web可视化

web可视化

import open3d as o3d
from open3d.web_visualizer import draw
cube_red = o3d.geometry.TriangleMesh.create_box(1, 2, 4)
cube_red.compute_vertex_normals()
cube_red.paint_uniform_color((1.0, 0.0, 0.0))
draw(cube_red)

即可完成在jupyter中的可视化。但是vscode插件好像暂时不支持。可以将服务器映射到本地端口进行显示,有待进一步完善步骤。

2、headless渲染

这个可以将渲染的图片全都保存下来。

到此这篇关于open3d 通过vscode+ssh连接远程服务器将可视化界面本地显示的文章就介绍到这了,更多相关vscode+ssh连接远程服务器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • HTTP全部标准响应状态码整理

    HTTP全部标准响应状态码整理

    HTTP标准响应状态码用来表明特定 HTTP 请求是否成功完成。 响应被归为以下五大类:信息响应 (100–199);成功响应 (200–299);重定向消息 (300–399);客户端错误响应 (400–499);服务端错误响应 (500–599)
    2023-07-07
  • Cache-control使用Cache-control:private学习笔记

    Cache-control使用Cache-control:private学习笔记

    网页缓存由 HTTP消息头中的Cache-control控制,常见取值有private、no-cache、max-age、must- revalidate等,默认为private
    2013-02-02
  • rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted

    rsync同步时出现rsync: failed to set times on “xxxx”: Operation no

    今天在同步数据的时候提示rsync: failed to set times on “xxxx”: Operation not permitted,一般来说要不是服务器时间不对或者权限没有设置好
    2016-12-12
  • Git使用基础篇(一些常用命令和原理)

    Git使用基础篇(一些常用命令和原理)

    Git是一个分布式的版本控制工具,本篇文章从介绍Git开始,重点在于介绍Git的基本命令和使用技巧,让你尝试使用Git的同时,体验到原来一个版本控制工具可以对开发产生如此之多的影响
    2014-09-09
  • HTTP常见的状态码HTTP Status Code

    HTTP常见的状态码HTTP Status Code

    这篇文章主要介绍了HTTP常见的状态码HTTP Status Code
    2017-01-01
  • Webpack部署本地服务器的方法

    Webpack部署本地服务器的方法

    webpack-dev-server 是一个用于开发环境的 Web 服务器,它集成了 Webpack,并提供了实时重新加载和热替换等功能,以下是一个简单的 webpack-dev-server 配置和使用示例,感兴趣的朋友跟随小编一起看看吧
    2024-03-03
  • pgpool-II搭建集群,实现高可用与读写分离

    pgpool-II搭建集群,实现高可用与读写分离

    pgpool-II是开源的PostgreSQL数据库连接池、负载均衡和高可用解决方案,支持多种工作模式,包括原始模式、内置复制模式和主/备模式,本文介绍pgpool-II的架构、进程、工作模式以及配置步骤,包括环境规划、系统准备、软件安装、数据库主节点配置、pgpool配置和集群启动
    2025-04-04
  • 本地服务器(自己的电脑)使用宝塔搭建安全省钱的个人网站(图文教程)

    本地服务器(自己的电脑)使用宝塔搭建安全省钱的个人网站(图文教程)

    文章介绍如何通过本地服务器+DDNS+内网穿透技术搭建低成本、高安全的个人网站,利用家庭宽带和二手设备替代传统云服务器,实现自主控制、灵活升级,有效应对DDoS攻击
    2025-08-08
  • webpack启动服务器和处理sourcemap的操作方法

    webpack启动服务器和处理sourcemap的操作方法

    Source Map源代码地图就是解决此类问题最好的办法,从它的名字就能够看出它的作用:映射转换后的代码与源代码之间的关系,这篇文章主要介绍了webpack启动服务器和处理sourcemap的操作方法,需要的朋友可以参考下
    2024-03-03
  • 解决服务器运行jupyter notebook方法

    解决服务器运行jupyter notebook方法

    这篇文章主要介绍了解决服务器运行jupyter notebook方法,来帮助大家实现服务器跑Jupyter,附含图文以及详细代码,有需要的朋友可以借鉴参考下
    2021-08-08

最新评论