赞
踩
1.在linux服务器上配置如下
#安装VNC和必要的一些图形显式库: # 安装基本的依赖包 apt update && apt install -y libglu1-mesa-dev mesa-utils xterm xauth x11-xkb-utils xfonts-base xkb-data libxtst6 libxv1 # 安装libjpeg-turbo和turbovnc export TURBOVNC_VERSION=2.2.5 export LIBJPEG_VERSION=2.0.90 wget http://aivc.ks3-cn-beijing.ksyun.com/packages/libjpeg-turbo/libjpeg-turbo-official_${LIBJPEG_VERSION}_amd64.deb wget http://aivc.ks3-cn-beijing.ksyun.com/packages/turbovnc/turbovnc_${TURBOVNC_VERSION}_amd64.deb dpkg -i libjpeg-turbo-official_${LIBJPEG_VERSION}_amd64.deb dpkg -i turbovnc_${TURBOVNC_VERSION}_amd64.deb rm -rf *.deb # 启动VNC服务端,这一步可能涉及vnc密码配置(注意不是实例的账户密码)。另外如果出现报错xauth未找到,那么使用apt install xauth再安装一次 rm -rf /tmp/.X11-unix /tmp/.X11-unix # 如果再次启动,删除上一次的临时文件,否则无法正常启动 USER=root /opt/TurboVNC/bin/vncserver :1 -desktop X -auth /root/.Xauthority -geometry 1920x1080 -depth 24 -rfbwait 120000 -rfbauth /root/.vnc/passwd -fp /usr/share/fonts/X11/misc/,/usr/share/fonts -rfbport 6006 # 检查是否启动,如果有vncserver的进程,证明已经启动 ps -ef | grep vnc #由于我使用的是AutoDL的远程服务器,所以需要在后续通过其中的自定义服务连接,这步自己的服务器来设置 # 以上启动Server时,手动设置了rfbport=6006端口,那么可以通过实例提供的「自定义服务」的地址来访问,「自定义服务」会将实例中的6006端口暴露到公网中,公网的访问地址查看方法为:
点击该自定义服务,会在浏览器中获取例如http://region-4.autodl.com:66666
的地址,那么下面使用vnc客户端连接时,地址请填写:region-4.autodl.com:66666
2.在windows上配置
在您的local电脑使用turbovnc客户端进行连接,地址为上述获取的地址,一切顺利的话,输入密码就能看到VNC连接成功后的图形化界面,以及正在运行在实例中的GUI程序;另外这里提供Windows系统turbovnc客户端的下载链接(也可以到turbovnc官网下载)
Windows: http://aivc.ks3-cn-beijing.ksyun.com/packages/turbovnc/TurboVNC-2.2.5-x64.exe
3.在Linux上操作
#在执行您的图形程序前,在同一终端中执行:
#export DISPLAY=:1
#后再执行您的程序。可以使用以下python代码进行简单验证:
import numpy as np
import cv2
h = 500
w = 500
img = 255 * np.ones((h ,w , 3), dtype=np.uint8)
cv2.imshow("", img)
cv2.waitKey(0)
如果在本地的vnc client显示图片,证明安装和启动过程无误
4.使用open3d操作时,由于远程服务器无图形化界面,想利用VScode将open3d视图在本地实时查看
(1)确认在上述linux服务器中启动vnc 服务
# 检查是否启动,如果有vncserver的进程,证明已经启动
ps -ef | grep vnc
#其中包含一个rfbport=590*
# 上面由于在启动vnc时指定了DISPLAY=":1",所以这时候的rfbport=5901
(2)使用VScode在终端页面点击“端口”,设置
(3)在本地windows打开安好的vnc程序,通过“服务器ip:上面手动暴露的端口”连接服务器,成功后在VScode上运行open3d可视化程序,以mmdetection3d为例
from mmdet3d.apis import init_model, inference_detector, show_result_meshlab # pointPillars模型 config_file = "configs/pointpillars/hv_pointpillars_secfpn_6x8_160e_kitti-3d-3class.py" # checkpoint_file中的文件提前在mmdetection3d模型库中下载 checkpoint_file = "checkpoints/hv_pointpillars_secfpn_6x8_160e_kitti-3d-3class_20220301_150306-37dc2420.pth" model = init_model(config_file, checkpoint_file) pcd = "demo/data/kitti/kitti_000008.bin" result, data = inference_detector(model, pcd) # 输出结果到output out_dir = "./test_output" import os show_result_meshlab(data, result, out_dir, show=True)
(4)图像将显示在windows的vnc页面中
参考:
https://www.autodl.com/docs/gui/
https://blog.csdn.net/weixin_44287798/article/details/126925297
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。