NICE-SLAM简介:

是浙大和ETH提出的一种神经隐式SLAM方法主要创新点在于解决了基于传统nerf的方案如imap无法应用在较大场景的问题。

  • 关于该工程的前身和当前领域的主要研究现状见:(知乎:秦通)基于神经辐射场的(NeRF-based) SLAM 综述
  • 作者:Zihan Zhu, Songyou Peng, Viktor Larsson, Weiwei Xu, Hujun Bao, Zhaopeng Cui, Martin R. Oswald, Marc Pollefeys
  • GitHub地址:https://github.com/cvg/nice-slam
  • 论文:https://arxiv.org/abs/2112.12130

一.论文阅读:

Nice-slam的四个目标

  • 实时
  • 合理预测:传统方法无法做到
  • 大场景有效:iMAP或是learning-based方法均未能实现的
  • robust(同2):对nosie和未观测到的位置鲁棒
    总之就是传统方法+learning-based方法+最新的iMAP都只做到了以上的一项或几项,都没我考虑的全面
    创新点

multilevel grid-based features(基于网格的多层特征):替换了iMAP中的单层MLP,分为四个部分表示场景结构。局部特征网格能够保留更多的几何细节,并表示更大的场景,此外,还可以对空洞进行预测。而iMAP中的单层MLP表示整个场景,会被不断地全局更新(换句话说:MLP更倾向于学习后来的数据),导致其不仅不能预测空洞还不能表示大场景。

最大的创新点应该就是这个,其余的是一些非常零散的idea,比如:优化方法,如何mapping和tracking,如何加速训练,联合训练+分层训练,nerf采样方法等等。(纯属个人理解)

NICE-SLAM相当于采用了三维栅格地图,每个栅格保存局部的特征,用decoder将特征解码即可恢复出场景,因此即使场景面积很大也不存在网络遗忘的问题。

(原文:NICE-SLAM: Neural Implicit Scalable Encoding for SLAM论文阅读记录)




另一个来自秦通的:[基于神经辐射场的(NeRF-based) SLAM 综述](https://zhuanlan.zhihu.com/p/555996624

NICE-SLAM在iMAP的基础上做改动,作者不仅开源了自己这部分,也把iMAP的实现开源了出来。作者的主要改动是使用了特征格网(Feature
Grid)+MLP这种显式+隐式混合的方法来表达环境。环境信息编码为多维向量,放在体素特征格网内,MLP作为decorder,将特征格网内蕴含的信息解码成occupancy和rgb,使用辐射渲染的积分方式,渲染出像素的深度及rgb值。同时,作者还用了course-to-fine的思想,将特征格网分成粗、中和精细,以便更细致的表达。该方法比iMAP快了2-3倍,虽然具备了一定的实时性,但真正用起来还是离实时有一些距离。这是当前看到的最好、最完善的NeRF-based
SLAM工作。

二.代码简析

(知乎:stella)
:NICE-SLAM 代码简析

三.环境配置(待续)

  1. 原项目README配置:
    根据NICE-SLAM的README直接使用environment.yml文件在annoconda中配置,执行以下命令来编译和安装依赖项:
conda env create -f environment.yml

出现大量问题,按照教程( pycharm配置深度学习环境:conda env create -f environment.yml报错
)解决,未成功

  1. NICE-SLAM相关工程(
    NICE-SLAM-with-Adaptive-Feature-Grids ) 中的README的配置方法:
**Installation
//First you have to make sure that you have all dependencies in place.
//The simplest way to do so, is to use Anaconda.//You can create an anaconda environment called nice-slam.
//For linux, you need to install libopenexr-dev before creating the environment.sudo apt-get install libopenexr-dev
conda env create -f spare_nice_slam.yaml
conda activate nice-slam
**Or you can usesudo apt-get install libopenexr-dev
conda env create -f ./nice-slam-1.0-alpha/environment.yaml
conda activate nice-slam
pip install einops
pip install torch torchvision

未成功

  1. 按照1.中解决教程提到的:

    但是NICE_SLAM中并没有requirements.txt文件,gg了。
  2. 又找来一个教程:
    conda env create -f environment.yml报错ResolvePackageNotFound和Found conflicts的解决方案【已解决】
    告诉我们

12 最终解决方案

以上就是我每天碰壁碰出来的结果,事实发现,这些办法都不能解决我的问题。
pip安装和conda安装配置环境我都试了,packagenotfound可以通过添加源来解决。而conflicts涉及到源码之类的,简直无能为力。因此决定暂时放弃这个方法。
开始使用,一次一安装的方式去干。 就是程序需要用到什么就安装什么。 尽可能的减少环境内包的数量和可能产生的冲突。
使用这个方法需要注意以下几点:
(1)你的源环境是否使用TensorFlow,如果使用一定要安装正确版本的TensorFlow,然后再安装其它包。
(2)可以先安装一些常用的包,比如numpy,pandas,matplotlib,scipy等等。也要根据你自己常用的情况去选择。
(3)可以看一下你程序内导入的包。
万万没想到,当我不使用这两种整体方式配置环境时候,之前的那些奇形怪状的死活有冲突安装不上的包一股脑都安装了。

conda env create -f environment.ymlpip install -r requirements.txt
  1. 网上关于深度学习SLAM 的配置方法
0.可以用以下命令罗列出当前已经创建的python虚拟环境:
conda env list
(终端输出:左边是虚拟环境的名称,右边是其所在路径,带星号的表示是默认环境。)
1.  创建新环境(时在命令中指定环境名称,不过一般也用不到,因为在environment.yml中会有项目的名字)
//注意:environment.yml应该替换为绝对路径下的文件
conda env create -f environment.yml -n new_env_name
2.进入环境:
source activate my_py_env
3. 使用环境文件遇到一些缺失的包使用anaconda单独安装命令:
conda install your-package

创建未成功,重新创建时候,显示** prefix **,是因为已经存在同名的废物虚拟环境了,因此删除该同名废物环境:

conda env list
(终端输出:左边是虚拟环境的名称,右边是其所在路径,带星号的表示是默认环境。)
conda env remove -p /home/s/.conda/envs/vmap

NICE-SLAM学习相关推荐

  1. 如何开始SLAM学习?

    作者丨王方浩@知乎 来源丨https://zhuanlan.zhihu.com/p/379070942 编辑丨3D视觉工坊 为了方便大家更好的系统学习激光SLAM,工坊邀请行业专家推出了面向工业级实战 ...

  2. SLAM学习--视觉slam学习教材推荐(附相关技术文档下载链接)

    (理论上看完前三本,足够掌握视觉slam的所有理论知识,实践部分参考各种开源代码) 一.<视觉slam十四讲>,高翔,清华大学出版社,(目前已出第二版,优先推荐) 以上教材,其实是基于国外 ...

  3. 视觉slam学习笔记以及课后习题《第五讲特征点法视觉里程计》

    这篇博客主要记录了我在深蓝学院视觉slam课程中的课后习题,因为是为了统计知识点来方便自己以后查阅,所以有部分知识可能不太严谨,如果给大家造成了困扰请见谅,大家发现了问题也可以私信或者评论给我及时改正 ...

  4. 视觉slam学习笔记以及课后习题《第三讲李群李代数》

    前言 这篇博客主要记录了我在深蓝学院视觉slam课程中的课后习题,因为是为了统计知识点来方便自己以后查阅,所以有部分知识可能不太严谨,如果给大家造成了困扰请见谅,大家发现了问题也可以私信或者评论给我及 ...

  5. SLAM学习资源分享

    SLAM学习资源分享 转载来自[SLAM],(https://mp.weixin.qq.com/s/kAdGdWDlw15ZmLzG56DOOA)如果告知侵权会删除 之前曾经总结过关于SLAM的资源, ...

  6. SLAM学习资源免费分享-转载

    SLAM学习资源分享 转载来自[SLAM],(https://mp.weixin.qq.com/s/kAdGdWDlw15ZmLzG56DOOA)如果告知侵权会删除 之前曾经总结过关于SLAM的资源, ...

  7. ROS_RGB-D SLAM学习笔记--室内环境测试

    ROS_RGB-D SLAM学习笔记 RTAB-Map's ros-pkg. RTAB-Map is a RGB-D SLAM approach with real-time constraints. ...

  8. SLAM学习笔记(十九)开源3D激光SLAM总结大全——Cartographer3D,LOAM,Lego-LOAM,LIO-SAM,LVI-SAM,Livox-LOAM的原理解析及区别

    本文为我在浙江省北大信研院-智能计算中心-情感智能机器人实验室-科技委员会所做的一个分享汇报,现在我把它搬运到博客中. 由于参与分享汇报的同事有许多是做其他方向的机器人工程师(包括硬件.控制等各方面并 ...

  9. SLAM学习笔记(二十)LIO-SAM流程及代码详解(最全)

    写在前面 关于安装配置,博客LIO_SAM实测运行,论文学习及代码注释[附对应google driver数据] 我觉得已经写的比较完善了.但是我觉得在注释方面,这位博主写的还不够完善,因此在学习以后, ...

  10. ROS机器人SLAM学习:Gazebo定位与导航仿真

    ROS机器人SLAM学习:Gazebo定位与导航仿真 一. 在 gazebo 中构建一个用于建图和导航的虚拟环境,可以使用 Building Editor工具创建,也可以使用其他功能包中已有的虚拟环境 ...

最新文章

  1. ASP.NET中随机数生成及应用
  2. Python中列表的介绍以及常见操作
  3. nginx高性能WEB服务器系列之七--nginx反向代理
  4. HALCON示例程序color_fuses_lut_trans.hdev通过颜色对保险丝进行分类
  5. 线程停止继续_线程不是你想中断就能中断
  6. mysql数据库的字符集_mysql数据库中字符集乱码问题原因及解决
  7. linux dhcp 负载均衡,dhcp双机负载均衡
  8. centos网络隔一段时间就断_潮汕青年说 | 瞎吃小哥:隔着屏幕也要把你看馋的顶配版吃货...
  9. centos6.5 安装mono
  10. 疫时急速挑战,AI 落地大考
  11. 多年JAVA 基础总结
  12. 对麦克纳姆轮辊子的理解
  13. Delphi 集合和字符串互转
  14. eclipse hadoop开发环境配置
  15. 澳大利亚IT解决方案提供商使用OpManager节省了数万美元的IT维护成本
  16. Mediastream2 用法介绍及简明实例分析
  17. python interpreter下载_Pyonic Python 2 interpreter
  18. 阿里巴巴店铺的所有商品API接口(item_search_shop-获得店铺的所有商品接口),阿里巴巴API接口
  19. 个人微信小程序开发入门教程:注册个人小程序
  20. ClickME 隐私策略

热门文章

  1. 【计算机毕业设计】23.网上商城购物系统+vue
  2. 碰到 stdafx.h报错
  3. 配置Android sdk环境变量不生效
  4. 编写一个java后台
  5. 利用算法轻松预测用户贷款是否违约(附 Python 源码)
  6. 非最大值抑制(NMS)(一)
  7. excel查询mysql数据库表,excel创建数据表/查询mysql数据库中所有表名
  8. 普元EOS应用,更改管理端口
  9. LTE随机接入RACH流程preamble发送
  10. SpringBoot如何整合Redis?SpringBoot如何使用Redis?Redies基本使用。