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_transformation
  File "/home/wsx/NARUTO/third_parties/neural_slam_eval/eval_recon.py", line 7, in <module>
    import open3d as o3d
  File "/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.5
  Downloading 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: trimesh
  Attempting uninstall: trimesh
    Found existing installation: trimesh 3.21.5
    Uninstalling trimesh-3.21.5:
      Successfully uninstalled trimesh-3.21.5
Successfully installed trimesh-3.23.5

ok

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【哔哩哔哩下载】Bilidown,B站下载工具网站,永久免费使用NO.98

本文一共:448 个字,需要阅读:2 分钟,更新时间:2024年5 月14日,部分内容具有时效性,如有失效请留言,阅读量:0 输入B站视频网址就可以下载了 除了可以下载视频&#xff0c;还能获取弹幕、查看封面&#xff0c;如果你想解锁1080P画质&#xff0c;就需要扫码登录。 点击右下角的齿…

python “名称空间和作用域” 以及 “模块的导入和使用”

七、名称空间和作用域 可以简单理解为存放变量名和变量值之间绑定关系的地方。 1、名称空间 在 Python 中有各种各样的名称空间&#xff1a; 全局名称空间&#xff1a;每个程序的主要部分定义了全局的变量名和变量值的对应关系&#xff0c;这样就叫做全局名称空间 局部名称…

0508GoodsContent的Maven项目

0508GoodsContent的Maven项目包-CSDN博客 数据库字段 页面需求

OFDM802.11a的FPGA实现(十五)短训练序列:STS(含Matlab和verilog代码)

原文链接&#xff08;相关文章合集&#xff09;&#xff1a;OFDM 802.11a的xilinx FPGA实现 1.前言 在之前已经完成了data域数据的处理&#xff0c;在构建整个802.11a OFDM数据帧的时候&#xff0c;还剩下前导码和signal域的数据帧&#xff0c;这两部分的内容。 PLCP的前导部分…

八年前端开发之路中遇到的一些实用技巧分享——代码思路及通用场景

在开发中比较有用的代码思路 1. 链式编程2. 高阶函数应用-(添加数据并提供删除方法)3. 利用Promise链切入&#xff08;延迟执行&#xff09;4. 通过中间层来解决问题&#xff08;装饰者模式&#xff09;5. 单例模式 1. 链式编程 所谓链式编程即是函数调用后返回对象本身 let …

LoRA Land: 310个经微调的大语言模型可媲美GPT-4

摘要 低秩自适应 (LoRA) 已成为大语言模型 (LLM) 参数有效微调 (PEFT) 中最广泛采用的方法之一。LoRA 减少了可训练参数的数量和内存使用,同时达到了与全面微调相当的性能。该研究旨在评估在实际应用中训练和服务使用 LoRA 微调的 LLM 的可行性。首先,该研究测量了在 10 个基础…

搞什么副业可以月入过万?

月入过万的副业不是一件容易的事情&#xff0c;它需要你付出很多努力和时间。以下是一些可能能够实现月入过万的副业 1. 自媒体运营 通过开设自己的公众号、博客或YouTube频道&#xff0c;积累一定的粉丝和流量&#xff0c;然后通过广告、赞助、商品销售等方式赚取收入。 2. …

110份财务常用excel模板(个税、采购、报销、预算),超实用!

如果你还在为报表头疼&#xff0c;那你一定不能错过这篇干货满满的分享&#xff01; 个税报表 个人所得税&#xff0c;听起来就头大&#xff1f;别担心&#xff0c;掌握这些技巧&#xff0c;轻松搞定&#xff01; - 记录员工收入&#xff0c;确保数据准确无误 - 计算应纳税…

【Redis7】10大数据类型之Bitfield类型

文章目录 1. Bitfield简介2. BITFIELD key [GET type offset]3. BITFIELD key [SET type offset value]4. BITFIELD key [INCRBY type offset increment] 1. Bitfield简介 Bitfield(位域)命令可以将一个 Redis 字符串看作是一个由二进制位组成的数组&#xff0c; 并对这个数组…

Qwen-VL环境搭建推理测试

引子 这几天阿里的Qwen2.5大模型在大模型圈引起了轰动&#xff0c;号称地表最强中文大模型。前面几篇也写了QWen的微调等&#xff0c;视觉语言模型也写了一篇CogVLM&#xff0c;感兴趣的小伙伴可以移步Qwen1.5微调-CSDN博客。前面也写过一篇智谱AI的视觉大模型&#xff08;Cog…

c++编程(11)——string类的模拟实现

欢迎来到博主的专栏——c编程 博主ID&#xff1a;代码小豪 文章目录 前言string类的模拟实现string的成员对象构造、赋值、析构访问成员对象的接口访问字符串中的元素迭代器对字符序列的插入、删除元素操作mystring类的相关操作 mystring类的所有模拟实现以及测试案例 前言 本…

云服务器和主机的区别

在今天的数字化时代&#xff0c;对于个人和企业来说&#xff0c;选择适当的服务器托管解决方案至关重要。然而&#xff0c;很多人对于云服务器和传统主机之间的区别不太清楚。本文将为您提供一个详细的指南&#xff0c;帮助您理解云服务器与主机之间的区别&#xff0c;以便您能…

光耦 IS314W中文资料 IS314W引脚图及功能说明

IS314W是一款IGBT/MOSFET输出型光耦&#xff0c;由Isocom公司制造。它主要用于驱动用于电机控制和电源系统变频器的功率IGBT和MOSFET。以下是该产品的部分功能和参数&#xff1a; - 两个独立的光耦输出通道 - 轨对轨输出电压 - 最大峰值输出电流&#xff1a;1.0A - 最小峰值输…

一文扫盲(13):电商管理系统的功能模块和设计要点

电商管理系统是一种用于管理和运营电子商务平台的软件系统。它提供了一系列功能模块&#xff0c;帮助企业进行商品管理、订单管理、会员管理、营销推广、数据分析等工作。本文将从以下四个方面介绍电商管理系统。 一、什么是电商管理系统 电商管理系统是一种集成了各种功能模块…

Moveit Noetic的运动规划组python接口

Moveit Noetic的运动规划组python接口 记录学习如何使用moveit的python API进行机械臂的控制 &#x1f680; 环境配置 &#x1f680; ubuntu 20.04ros noeticmoveit noetic法奥机械臂 frcobot_fr5 文章目录 Moveit Noetic的运动规划组python接口1. 设置moveit功能包2. 编写M…

springboot月度员工绩效考核管理系统

摘要 本月度员工绩效考核管理系统采用java语言做为代码编写工具&#xff0c;采用mysql数据库进行系统中信息的存储与处理。框架采用springboot。 本系统的功能分为管理员和员工两个角色&#xff0c;管理员的功能有&#xff1a; &#xff08;1&#xff09;个人中心管理功能&am…

解决OpenHarmony设备开发Device Tools工具的QUICK ACCESS一直为空

今天重新安装了OpenHarmony设备开发的环境&#xff0c;在安装过程中&#xff0c;到了工程之后&#xff0c;QUICK ACCESS一直为空。如下图红色大方框的内容一开始没有。 解决方案&#xff1a; 在此记录我的原因&#xff0c;我的原因主要是deveco device tools的远程连接的是z…

Spring Bean的生命周期 五步 七步 十步 循序渐进

&#x1f468;‍&#x1f3eb; 参考视频地址 &#x1f496; 五步版 实例化 bean&#xff08;构造方法&#xff09;属性注入&#xff08;set() 方法&#xff09;初始化方法&#xff08;自定义&#xff09;使用bean销毁方法&#xff08;自定义&#xff09; &#x1f496; 七步版…

janus源码分析(1)--代码结构整理

基础说明 janus官网 https://janus.conf.meetecho.com/index.html janus源码地址 https://github.com/meetecho/janus-gateway 编译及部署参考 https://pro-hnb.blog.csdn.net/article/details/137730389?spm1001.2014.3001.5502 https://pro-hnb.blog.csdn.net/article/deta…

Online RL + IL : TGRL: An Algorithm for Teacher Guided Reinforcement Learning

ICML 2023 Poster paper Intro 文章设定一个专家策略&#xff0c;给出两种优化目标。一个是基于专家策略正则的累计回报&#xff0c;一个是原始累计回报。通过比较二者动态的衡量专家策略对智能体在线学习的影响程度&#xff0c;进而实现在线引导过程。 Method 原始的RL目标…