NARUTO 复现记录

1 环境配置

下载项目,一定要 git 下载全项目,下载完后要检查third_parities 里面的coslam和neural_slam_eval 文件全不全。

git clone --recursive https://github.com/oppo-us-research/NARUTO.git

环境配置

注意  

bash scripts/installation/conda_env/build.sh

这个安装文件里面要确定 habitat 按照这个源下载好,最好能够联网按照脚本下载齐全。

GitHub - Huangying-Zhan/habitat-sim: A flexible, high-performance 3D simulator for Embodied AI research.

如果联网下载失败,则将起更改为如下

ROOT=${PWD} ### create conda environment ###
conda create -y -n naruto python=3.8 cmake=3.14.0### activate conda environment ###
conda activate naruto# ### Setup habitat-sim ###
cd ${ROOT}/third_parties
#git clone git@github.com:Huangying-Zhan/habitat-sim.git habitat_sim
git clone https://github.com/Huangying-Zhan/habitat-sim habitat_sim
cd habitat_sim
pip install -r requirements.txt
python setup.py install --headless --bullet### extra installation ###
pip install opencv-python
conda install -y ipython
pip install mmcv==2.0.0### CoSLAM installation ###
cd ${ROOT}/third_parties/coslam
git checkout 3bb904e
pip install torch==1.10.1+cu113 torchvision==0.11.2+cu113 torchaudio==0.10.1 -f https://download.pytorch.org/whl/cu113/torch_stable.html
pip install -r requirements.txt
cd external/NumpyMarchingCubes
python setup.py install### NARUTO installation ###
pip install -r ${ROOT}/envs/requirements.txt

安装完毕后,cmake 总是遇到问题,建议

pip install cmake==3.14.3 

 总算安装完成。

 2 下载数据

按照项目的readme 没问题

# Download Replica data and save as data/replica_v1.
# This process can take a while.
bash scripts/data/replica_download.sh data/replica_v1

# Once the donwload is completed, create modified Habitat Simulator configs that adjust the coordinate system direction.
# P.S. we adjust the config so the coordinates matches with the mesh coordinates.
bash scripts/data/replica_update.sh data/replica_v1

# Download Replica (SLAM) Data and save as data/Replica
bash scripts/data/replica_slam_download.sh

3 运行

bash scripts/naruto/run_replica.sh {SceneName/all} {NUM_TRIAL} {EXP_NAME} {ENABLE_VIS}# Run MP3D 
bash scripts/naruto/run_mp3d.sh {SceneName/all} {NUM_TRIAL} {EXP_NAME} {ENABLE_VIS}# examples
bash scripts/naruto/run_replica.sh office0 1 NARUTO 1
bash scripts/naruto/run_mp3d.sh gZ6f7yhEvPG 1 NARUTO 0
bash scripts/naruto/run_replica.sh all 5 NARUTO 0

bash scripts/naruto/run_replica.sh office0 1 NARUTO 1 

#报错0 路径和文件名

 

 解决:

定位到NARUTO/src/simulator/habitat_utils.py", line 198, 

in make_configuration
    assert os.path.exists(backend_cfg.scene_id)

没有这个文件的路径,这个文件打印出来,发现

而在data文件夹下面找到的是不带SDK的json文件,于是更改文件名。

 再运行,还是不行。发现data下的scene 名为room_0,config 中均为room0, 遂将data下的文件夹更名。

可以运行起来了,

#1报错:tiny-cudann安装出错

Failed to build tinycudann; Could not build wheels for tinycudann; Could not find filesystem; xxx.so.xx no such file or directory #337

User
In file included from /home/xxx/NARUTO/tiny-cuda-nn/include/tiny-cuda-nn/cpp_api.h:32:0,from /home/xxx/NARUTO/tiny-cuda-nn/include/tiny-cuda-nn/common_host.h:33,from ../../src/common_host.cu:31:
/home/xxx/NARUTO/tiny-cuda-nn/dependencies/json/json.hpp:3954:14: 致命错误:filesystem:没有那个文件或目录#include <filesystem>^~~~~~~~~~~~
编译中断。
error: command '/home/xxx/cuda-11.3/bin/nvcc' failed with exit code 1

参考:https://github.com/NVlabs/tiny-cuda-nn/issues/337

解决方案:

将gcc和g++升级到9.0以上版本。

#2报错 open3d安装出错

evaluation过程中又有新的报错

 OSError: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.27' not found (required by /home/wsx/anaconda3/envs/naruto/lib/python3.8/site-packages/open3d/cpu/pybind.cpython-38-x86_64-linux-gnu.so)

这个错误表明您的程序或库依赖于 GLIBC 的 2.27 版本,但您的系统上安装的 GLIBC 版本低于 2.27。导致这种情况的原因可能是:

  1. 您的系统未安装或未正确配置 GLIBC 2.27。
  2. 您的程序或库要求 GLIBC 2.27,但您的系统中的版本较低或者较高

参考:Build from source - Open3D 0.18.0 documentation

==> Evaluating reconstruction result [accuracy, completeness, and completion ratio]
Traceback (most recent call last):File "src/evaluation/eval_recon.py", line 34, in <module>from third_parties.neural_slam_eval.eval_recon import calc_3d_mesh_metric, get_align_transformationFile "/home/wsx/NARUTO/third_parties/neural_slam_eval/eval_recon.py", line 7, in <module>import open3d as o3dFile "/home/wsx/anaconda3/envs/naruto/lib/python3.8/site-packages/open3d/__init__.py", line 56, in <module>_CDLL(str(next((_Path(__file__).parent / 'cpu').glob('pybind*'))))File "/home/wsx/anaconda3/envs/naruto/lib/python3.8/ctypes/__init__.py", line 373, in __init__self._handle = _dlopen(self._name, mode)
OSError: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.27' not found (required by /home/wsx/anaconda3/envs/naruto/lib/python3.8/site-packages/open3d/cpu/pybind.cpython-38-x86_64-linux-gnu.so)
==> Evaluating reconstruction result [MAD]

 原因是ubuntu 16.04 里面没有open3d  0.10 版本之后需要的GLIBC_2.27。

解决方案:

参考这个[教程] Ubuntu16.04系统安装Open3D_open3d移植到ubuntu-CSDN博客

如果想要在Ubuntu16.04的系统上使用Open3D该怎么办呢?

可以通过编译源码的方式进行安装:

(1)从github上下载Open3D的源码,

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

(2)切换到v0.6.0版本,(0.12.0,0.13.0需要cmake=3.17,3.18)

git checkout v0.6.0

(3)再下载子模块的代码

git submodule update --init --recursive

这一步是下载子模块3rdparty的代码,如果下载的比较慢,同样可以先把仓库导入到gitee,再把.gitmodules文件中的url修改为gitee中的仓库地址即可。

(4)安装依赖

bash util/scripts/install-deps-ubuntu.sh 

(5)按顺序执行下面的命令编译C++库

mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/opt/Open3D/ -DBUILD_EIGEN3=ON -DBUILD_GLEW=ON -DBUILD_GLFW=ON -DBUILD_JSONCPP=ON -DBUILD_PNG=ON -DENABLE_JUPYTER=OFF -DPYTHON_EXECUTABLE=/usr/bin/python3 ..#注意DPYTHON_EXECUTABLE=/usr/bin/python3 根据自己环境的版本定义,如本文的
anaconda 虚拟环境naruto 则该命令改为cmake -DCMAKE_INSTALL_PREFIX=/opt/Open3D/ -DBUILD_EIGEN3=ON -DBUILD_GLEW=ON -DBUILD_GLFW=ON -DBUILD_JSONCPP=ON -DBUILD_PNG=ON -DENABLE_JUPYTER=OFF -DPYTHON_EXECUTABLE=/home/usrname/anaconda3/envs/naruto/bin/python3.8 ..   
make -j$(nproc)
sudo make install

(6)编译Python库

make pip-package

(7)编译成功后,会在lib/python_package/pip_package/目录下生成对应Python版本的.whl包,用pip命令安装一下就可以了。

pip3 install lib/python_package/pip_package/open3d-0.6.0.0-cp38-cp38-linux_x86_64.whl

(8)安装成功后可以再验证一下:

python3 -c "import open3d"

如果没有输出错误,就说明已经可以用了。

#3 报错:trimesh版本调整

Pixels to save: 40800 Traceback (most recent call last): File "src/evaluation/eval_mad.py", line 87, in <module> gt_pc = trimesh.sample.sample_surface(mesh_gt, 200000, seed=0)[0] # N,3 TypeError: sample_surface() got an unexpected keyword argument 'seed',如下

这个错误提示表明在调用 trimesh.sample.sample_surface() 函数时,出现了意外的关键字参数 'seed'。这可能是因为你使用的 trimesh 版本与你所查看的文档不匹配,导致文档中提到的参数在你使用的版本中不存在。

解决方案:

更新 trimesh 库 (参考naruto工程的requirements 文件)

 pip install trimesh==3.23.5
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Collecting trimesh==3.23.5Downloading https://pypi.tuna.tsinghua.edu.cn/packages/c9/10/c5925a556ae5eebca155524443cb94d84ba5715b56085fbbdd8438eb5509/trimesh-3.23.5-py3-none-any.whl (685 kB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 685.4/685.4 kB 2.2 MB/s eta 0:00:00
Requirement already satisfied: numpy in /home/wsx/anaconda3/envs/naruto/lib/python3.8/site-packages (from trimesh==3.23.5) (1.22.4)
Installing collected packages: trimeshAttempting uninstall: trimeshFound existing installation: trimesh 3.21.5Uninstalling trimesh-3.21.5:Successfully uninstalled trimesh-3.21.5
Successfully installed trimesh-3.23.5

ok

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/12311.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

番外篇 | 利用PyQt5+YOLOv5来搭建目标检测系统(附可视化界面+功能介绍+源代码)

前言:Hello大家好,我是小哥谈。PyQt5是一个Python绑定的Qt库,是用于创建图形用户界面(GUI)和其他应用程序组件的工具包。PyQt5提供了许多GUI元素,如按钮、文本框、标签等,也提供了许多Qt的功能,如网络、数据库、XML等。通过PyQt5可以在Python中使用Qt的丰富功能和强大的工…

克服亏损的负面影响 学学现货白银止损的方法

一个多月以前&#xff0c;现货黄金的上涨还十分强劲&#xff0c;一度还逼近历史的高位30大关。但是我们看近半个月以来&#xff0c;现货白银价格出现了调整。很多在高位买入的投资者都承受了较大的亏损&#xff0c;这时候就凸显出了现货白银止损的作用。如果投资者能够通过近期…

Git 基础使用(2) 分支管理

文章目录 分支概念分支使用查看分支分支创建分支切换分支合并合并冲突分支删除 分支管理快进模式分支策略内容保存错误处理 分支概念 &#xff08;1&#xff09;分支概念 Git分支是指在版本控制系统Git中&#xff0c;用来表示项目的不同工作流程或开发路径的一个重要概念。通过…

【cmake】Windows 环境下编译第三方依赖源码(以编译Xerces库为例)

第三方依赖源码的编译分为两种&#xff0c;一种是使用 Configure 脚本编译&#xff0c;另一种是使用 CMakeLists.txt 编译。Xerces 3.2.3 的编译方式是 CMakeLists.txt 脚本编译。 必要软件&#xff1a; CMake &#xff08;CMake | Download&#xff09;Visual Studio 2019&a…

【数据结构】二叉树(Binary Tree)

文章目录 一、树的概念及结构二、二叉树的概念及结构1.二叉树的概念2.特殊的二叉树3.二叉树的性质 三、二叉树的存储顺序存储链式存储 四、二叉树的实现1.创建二叉树2.二叉树的遍历前序遍历中序遍历后序遍历层序遍历根据遍历顺序创建二叉树 3.二叉树的基本操作1.总结点个数2.二…

ctfshow之_萌新web9至web10

一、访问在线靶场ctfshow 1、web9 如下图所示&#xff0c;进入_萌新赛的web9问题&#xff0c;题目提醒flag在config.php中&#xff1a; 如上图所示&#xff0c;可以get传参&#xff0c;且传入的参数需要正则匹配system、exec、highlight&#xff0c;且不区分大小写&#xff0…

C++设计模式|创建型 5.原型模式

1.什么是原型模式&#xff1f; 原型模式⼀种创建型设计模式&#xff0c;该模式的核⼼思想是基于现有的对象创建新的对象&#xff0c;⽽不是从头开始创建。 在原型模式中&#xff0c;通常有⼀个原型对象&#xff0c;它被⽤作创建新对象的模板。新对象通过复制原型对象的属性和状…

Mac IDEA 自动补全mybatis sql语句

导航 Mac IDEA 自动补全mybatis sql语句一、点击IDEA 右侧Database选项二、选择添加对应数据库三、输入数据库信息和方案四、输入数据库信息和方案五、成功 Mac IDEA 自动补全mybatis sql语句 背景&#xff1a; 想在Mapper中&#xff0c;能够实现自动检索数据库表和对应的字段…

web前端之sass中的颜色函数、active按钮激活、hover鼠标悬浮、disabled禁用、scss循环、css

MENU 效果图htmlsassscss编译后的css页面css 效果图 注意查看蓝色按钮。 html <div class"box"><button class"btn type_1">按钮</button><button class"btn type_2">按钮</button><button class"btn ty…

一文读懂通用漏洞评分系统CVSS4.0:顺带理清CVE、CWE及其与CVSS之间的关系

事件响应和安全团队论坛 (FIRST&#xff0c;Forum of Incident Response and Security Teams) 于 2023 年 11 月 1 日正式推出第四版通用漏洞评分系统 (CVSS 4.0&#xff0c;Common Vulnerability Scoring System version 4.0)。CVSS 4.0 是评估计算机系统安全漏洞严重性的行业…

C++ 多态性

一 多态性的分类 编译时的多态 函数重载 运算符重载 运行时的多态 虚函数 1 运算符重载的引入 使用C编写程序时&#xff0c;我们不仅要使用基本数据类型&#xff0c;还要设计新的数据类型-------类类型。 一般情况下&#xff0c;基本数据类型的运算都是运算符来表达&#x…

【C++】详解C++的模板

目录 概念 ​编辑 语法 函数模板 类模板 非类型模板参数 模板的特化 函数模板特化 类模板特化 全特化 偏特化 分离编译 概念 模板是C中非常厉害的设计&#xff0c;模板把通用的逻辑剥离出来&#xff0c;让不同的数据类型可以复用同一种模板的逻辑&#xff0c;甚至可以…

PHP黑魔法之md5绕过

php本身是一种弱语言,这个特性决定了它的两个特点: 输入的参数都是当作字符串处理变量类型不需要声明,大部分时候都是通过函数进行类型转化php中的判断有两种: 松散比较:只需要值相同即可,类型不必相同,不通类型比较会先转化为同类型,比如全数字字符串和数字比较,会比…

凸优化理论学习三|凸优化问题(一)

系列文章目录 凸优化理论学习一|最优化及凸集的基本概念 凸优化理论学习二|凸函数及其相关概念 文章目录 系列文章目录一、优化问题&#xff08;一&#xff09;标准形式的优化问题&#xff08;二&#xff09;可行点和最优点&#xff08;三&#xff09;局部最优点&#xff08;四…

《Python编程从入门到实践》day28

# 昨日知识点回顾 安装Matplotlib 绘制简单的折线图 # 今日知识点学习 15.2.1 修改标签文字和线条粗细 # module backend_interagg has no attribute FigureCanvas. Did you mean: FigureCanvasAgg? # 解决办法&#xff1a;matplotlib切换图形界面显示终端TkAgg。 #…

使用Three.js绘制快速而逼真的水

本文将利用GPUComputationRenderer来实现水波纹的绘制&#xff0c;相似的案例可以看threejs官方的GPGPU Water示例。更多精彩内容尽在数字孪生平台。 什么是 GPGPU GPGPU代表通用图形处理单元&#xff08;General-Purpose Graphic Processing Unit&#xff09;&#xff0c;意思…

1146 -Table ‘performance schema.session variables‘ doesn‘t exist的错误解决

一、问题出现 今天在本地连数据库的时候&#xff0c;发现这个问题&#xff0c;哎呦我擦&#xff0c;差点吓死了 二、解决办法 1&#xff09;找文件 用everything搜一下MySQL Server 5.7 然后去Windows服务找一下MySQL配置文件的具体路径 如果知道那最好&#xff0c;不知道那…

宝塔8.1.0去除绑定用户

非要绑定手机号&#xff0c;确实很烦 1&#xff0c;/www/server/panel/BTPanel __init__.py if not public.is_bind():return redirect(/bind, 302) 将is_bind的路由全部注释 2&#xff0c;/www/server/panel/class下 panelPlugin.py 注释异常&#xff0c; 新增 softLis…

SSL协议

SSL 安全传输协议&#xff08;安全套接层&#xff09; 也叫TLS ---- 传输层安全协议 SSL的工作原理&#xff1a;SSL协议因为是基于TCP协议工作的&#xff0c;通信双方需要先建立TCP会话。因为SSL协议需要进行安全保证&#xff0c;需要协商安全参数&#xff0c;所以也需要建立…

springboot房屋租赁系统

摘要 房屋租赁系统&#xff1b;为用户提供了一个房屋租赁系统平台&#xff0c;方便管理员查看及维护&#xff0c;并且可以通过需求进行设备信息内容的编辑及维护等&#xff1b;对于用户而言&#xff0c;可以随时进行查看房屋信息和合同信息&#xff0c;并且可以进行报修、评价…