NARUTO 复现记录

news2024/11/19 13:39:19

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

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

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

相关文章

【JavaEE】HTTP 协议

文章目录 一、HTTP 协议1、HTTP 是什么2、理解 "应用层协议"3、理解 HTTP 协议的工作过程4、HTTP 协议格式5、HTTP 请求 (Request)5.1 认识 URL 6、 二、HTTPS1、HTTPS是什么2、"加密" 是什么3、HTTPS 的工作过程3.1 对称加密3.2 非对称加密3.3 证书3.4 完…

用suno创作歌曲音乐的8个技巧

导读 Suno Ai可以将文本转化为高度逼真的音乐和语音。 该系统包括多种音乐风格&#xff0c;如电影、RAP、翻唱等&#xff0c;并提供了多语言和不同性别的播音员选择。 用户可以使用命令来生成音频并进行个性化设置。 用suno.ai所生成的歌曲质量非常高&#xff0c;而且完美支…

C++——超简单登录项目

程序入口文件 #include <QtWidgets/QApplication> // 包含登录页面头文件 #include "DlgLogin.h"int main(int argc, char *argv[]) {QApplication a(argc, argv);// 程序入口// 调页面起来//DlgMain w;//w.show();// 换成登录页面DlgLogin w;w.show();return…

kafka学习笔记04(小滴课堂)

Kafka的producer生产者发送到Broker分区策略讲解 Kafka核心API模块-producer API讲解实战 代码&#xff1a; ProducerRecord介绍和key的作用 Kafka核心API模块-producerAPI回调函数实战 producer生产者发送指定分区实战 我们设置5个分区。 我们指定分区。 重新指定一个分区&am…

猫吃普通猫粮会秃头?细数生骨肉冻干喂养是否智商税

鉴于科学养猫的理念日益深入人心&#xff0c;生骨肉冻干喂养逐渐成为养猫人的首选。生骨肉冻干喂养不仅符合猫咪的自然习性&#xff0c;更提供了均衡全面的营养&#xff0c;有助于维护猫咪的口腔健康及消化系统功能。普通猫粮的营养远不如生骨肉冻干&#xff0c;长期喂食生骨肉…

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

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

Verilog代码bug:一种特殊的组合逻辑环

Verilog代码bug&#xff1a;一种特殊的组合逻辑环 组合逻辑环&#xff08;Combinational Loop&#xff09;是什么&#xff0c;别的文章已经写的很多了&#xff0c;本文就不赘述了&#xff0c;本文主要记录遇到过的一种特殊的逻辑环&#xff1b; 代码如下所示&#xff1a; mo…

【STM32】状态机实现定时器按键消抖,处理单击、双击、三击、长按事件

目录 一、简单介绍 二、模块与接线 三、cubemx配置 四、驱动编写 状态图 按键类型定义 参数初始化/复位 按键扫描 串口重定向 主函数 五、效果展示 六、驱动附录 key.c key.h 一、简单介绍 众所周知&#xff0c;普通的机械按键会产生抖动&#xff0c;可以采取硬件…

卡片笔记写作法 精读笔记 01

元数据 卡片笔记写作法&#xff1a;如何实现从阅读到写作 书名&#xff1a; 卡片笔记写作法&#xff1a;如何实现从阅读到写作作者&#xff1a; 申克阿伦斯简介&#xff1a; 卢曼的“盒中笔记”通常很简短&#xff0c;因为这些只是他庞大繁杂研究中的索引&#xff0c;等需要时&…

[沫忘录]MySQL 锁

[沫忘录]MySQL 锁 锁能够协调多线程或多进程并发访问某资源产生的数据冲突与错乱。而在数据库中&#xff0c;锁也是协调数据库访问的有效工具。 全局锁 能够锁住当前服务器所有数据库及其表。后续所有事务都只能进行读操作&#xff0c;而不能进行写操作或表属性更改。 典型…

SwiftUI中三大渐变色的介绍

在SwiftUI中&#xff0c;渐变色是一种常用的视觉效果&#xff0c;用于创建平滑过渡的颜色变化。通过使用渐变色&#xff0c;我们可以实现丰富多彩的界面设计&#xff0c;增强用户体验。 1. 渐变色的种类和用途 种类&#xff1a; 线性渐变&#xff08;Linear Gradient&#x…

huggingface 笔记:pipeline

1 介绍 pipeline() 是使用预训练模型进行推理的最简单和最快速的方式。可以针对不同模态的许多任务直接使用 pipeline() 2 举例&#xff1a;情感分析 2.1 创建pipeline实例 from transformers import pipelineclassifier pipeline("sentiment-analysis") #首先创…

练习题(2024/5/13)

1移除链表元素 给你一个链表的头节点 head 和一个整数 val &#xff0c;请你删除链表中所有满足 Node.val val 的节点&#xff0c;并返回 新的头节点 。 示例 1&#xff1a; 输入&#xff1a;head [1,2,6,3,4,5,6], val 6 输出&#xff1a;[1,2,3,4,5]示例 2&#xff1a; …

Zoho CRM企业成长的智能引擎,智能化销售自动化

数字化时代&#xff0c;客户体验已成为企业竞争的核心要素。卓豪Zoho CRM&#xff0c;作为全球领先的SaaS云端客户关系管理平台&#xff0c;正引领着一场企业运营模式的变革&#xff0c;助力超过25万家企业跨越180多个国家&#xff0c;实现客户互动与业务增长的无缝对接。让我们…

Taylor Francis科技期刊数据库文献去哪里获取

一、Taylor & Francis科技期刊数据库简介&#xff1a; Taylor & Francis 科技期刊数据库&#xff08;T&F ST Library&#xff09;提供超过520种经专家评审的高质量科学与技术类期刊, 其中超过85%的期刊被Web of Science收录&#xff0c;内容最早至1997年。该科技期…

Windows快捷命令

Windows 操作系统提供了大量的快捷命令&#xff0c;用于快速访问系统设置和管理工具。这些命令在各个版本的 Windows 中基本都适用&#xff0c;可以帮助用户快速进入各类管理工具&#xff0c;方便系统的配置和管理。如果你需要使用这些工具&#xff0c;只需按 Win R 键&#x…

CVHub | CVPR 2024 | 英伟达发布新一代视觉基础模型: AM-RADIO = CLIP + DINOv2 + SAM

本文来源公众号“CVHub”&#xff0c;仅用于学术分享&#xff0c;侵权删&#xff0c;干货满满。 原文链接&#xff1a;CVPR 2024 | 英伟达发布新一代视觉基础模型: AM-RADIO CLIP DINOv2 SAM 标题&#xff1a;《AM-RADIO: Agglomerative Vision Foundation Model Reduce Al…

GPT-4o,AI实时视频通话丝滑如人类,Plus功能免费可用

不开玩笑&#xff0c;电影《她》真的来了。 OpenAI最新旗舰大模型GPT-4o&#xff0c;不仅免费可用&#xff0c;能力更是横跨听、看、说&#xff0c;丝滑流畅毫无延迟&#xff0c;就像在打一个视频电话。 现场直播的效果更是炸裂&#xff1a; 它能感受到你的呼吸节奏&#xf…

第 5 篇 : 多节点Netty服务端(可扩展)

说明 前面消息互发以及广播都是单机就可以完成测试, 但实际场景中客户端的连接数量很大, 那就需要有一定数量的服务端去支撑, 所以准备虚拟机测试。 1. 虚拟机准备 1.1 准备1个1核1G的虚拟机(160), 配置java环境, 安装redis和minio 1.2 准备6个1核1G的空虚拟机(161到166), …

C++:编程世界的永恒之石

在编程的广袤领域中&#xff0c;C犹如一块永恒的基石&#xff0c;历经岁月的洗礼&#xff0c;依旧坚固而璀璨。它的深厚底蕴、强大功能和广泛的应用领域&#xff0c;使其成为无数程序员心中的信仰与追求。 一、C&#xff1a;历史与传承的交汇点 C的历史可追溯到上世纪80年代&…