CV | 360BEV: Panoramic Semantic Mapping for Indoor Bird‘s-Eye View理解

本文主要是对于论文360BEV的解读和实现。

Paper:2023.03_360BEV: Panoramic Semantic Mapping for Indoor Bird's-Eye View

360BEV:室内鸟瞰全景语义映射

arxiv.org/pdf/2303.11910

Code:jamycheung/360BEV: Repository of 360BEV (github.com)

Demo:360BEV (jamycheung.github.io)

 

论文概述

这篇论文提出了一种名为360BEV的专用解决方案,用于从鸟瞰图像对室内场景进行全景语义映射。主要贡献包括:

  1. 提出了一种从全景图像生成整体鸟瞰视图语义映射的方法,不依赖于窄视野图像或运动线索。
  2. 提出模型360Mapper,可以从全景图像预测语义标签和非模态语义映射。
  3. 所提出的方法在室内语义映射基准测试中取得了最佳性能,优于现有方法。

相关工作

基于鸟瞰图的语义分割,三种方法:

  • Early projection: Proj.→Enc.→Seg. in Fig. 2c.
  • Late projection: Enc.→Seg.→Proj. in Fig. 2d.
  • Intermediate projection: Enc.→Proj.→Seg. in Fig. 2e

模型:360BEV

这里根据原有的数据集,生成了新的数据集

360Mapper框架包括四个步骤:

  1. 基于Transformer的骨干网络从全景图像中提取特征。
  2. 逆向径向投影(IRP)模块通过深度生成的参考点得到一个2D索引。
  3. 360度注意力模块通过2D索引增强前视图特征,并根据BEV查询生成偏移量,以消除失真效应。
  4. 轻量级解码器解析投影的特征图,预测语义BEV地图。

实验

4块A100GPU

50epoch

优化器:AdamW

批次:4

数据集:360FV-Matterport 和Stanford2D3D输入是512×1024

项目实现

设置环境

git clone  https://github.com/jamycheung/360BEV
conda create -n 360BEV python=3.8
conda activate 360BEV
cd 360BEV
# 安装mmedtection
# conda create -n open-mmlab python=3.7 -y
# conda activate open-mmlab
# conda install pytorch torchvision -c pytorch
# or conda install pytorch=1.3.1 cudatoolkit=9.2 torchvision=0.4.2 -c pytorch

# 克隆项目
git clone https://github.com/open-mmlab/mmdetection.git
cd mmdetection

pip install -r requirements/build.txt
pip install "git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI"
pip install -v -e . 

cd..
pip install -r requirements.txt

数据准备

数据集使用Stanford2D3D和Matterport3D

作者提供了谷歌drive的下载地址:360BEV-Stanford,360BEV-Matterport ,360FV-Matterport

这里使用最小的

解压后如图,分为训练和测试 

 

数据格式处理如下

数据集全景(Scene)房间(Room)Frame种类(Category)
train52151,04013
val15537313
360BEV-Stanford62701,41313
train61--7,82920
val7--77220
test18--2,01420
360BEV-Matterport862,03010,61520

data/
├── Stanford2D3D
│   └── area_[1|2|3|4|5a|5b|6]
│       ├── rgb/*png
│       └── semantic/*png
│
├── 360BEV-Stanford
│   ├── training
│   └── valid
│       ├── data_base_with_rotationz_realdepth/*h5
│       └── ground_truth/*h5
│
├── 360BEV-Matterport
│   ├── training
│   ├── testing
│   └── valid
│       ├── smnet_training_data_zteng/*h5
│       └── topdown_gt_real_height/*h5
│
└── 360FV-Matterport
    ├── 17DRP5sb8fy
    │   ├── depth/*png
    │   ├── rgb/*png
    │   └── semantic/*png   
    └── ...

训练


# 360BEV_Matterport
python train_360BEV_Matterport.py --config configs/model_360BEV_mp3d.yml

# 360BEV_S2d3d
python train_360BEV_S2d3d.py --config configs/model_360BEV_s2d3d.yml

# Stanford2D3D
python train_pano_360Attention_S2d3d.py --config configs/model_fv_s2d3d.yml

# 360FV-Matterport
python train_pano_360Attention_Matterport.py --config configs/model_fv_mp3d.yml

测试

# 360BEV_Matterport
python test_360BEV_Matterport.py --config configs/model_360BEV_mp3d.yml

# 360BEV_S2d3d
python test_360BEV_S2d3d.py --config configs/model_360BEV_s2d3d.yml

# Stanford2D3D
python test_pano_360Attention_S2d3d.py --config configs/model_fv_s2d3d.yml

# 360FV-Matterport
python test_pano_360Attention_Matterport.py --config configs/model_fv_mp3d.yml

代码解析

论文以transformer为骨干网络提取特征,transformer.py在

# 初始化
generate feature
FPN output feature maps

# 从transformer提取特征后,

更新bev的高,宽,以及位置

疑问与解答

Q1:在BEV中,摄像头是固定,还是固定可环视?输入的值的区别是什么?

训练时分为俩个阶段

Q2:语义分割中前景,中景,从上到写视角是指什么 意思?

语义分割中,我们常用以下几个视角来描述图像的不同部分:

  1. 前景:前景是图像中最显著的部分,通常是我们关心的目标物体。在语义分割中,前景指的是被标记为特定类别(如人、车、树等)的区域。

  2. 中景:中景是介于前景和背景之间的部分。在拍摄和视觉艺术中,中景通常是指人物的膝盖以上的取景范围。在语义分割中,中景可能包括一些次要目标或环境元素,但不如前景那么显著。

  3. 从上到下视角:这是一种拍摄或观察图像的方式。从上到下视角意味着我们以一种俯视的方式来看待场景,就像我们站在高处往下看一样。这种视角可以用于强调环境、布局或整体结构。

参考文献

【1】Joint 2D-3D-Semantic Data for Indoor Scene Understanding 1702.01105 (arxiv.org)

【2】360BEV: Panoramic Semantic Mapping for Indoor Bird's-Eye View,arXiv - CS - Computer Vision and Pattern Recognition - X-MOL【3】几种流行的视觉bev算法通俗对比介绍_bev视觉缺点-CSDN博客

【4】四. 基于环视Camera的BEV感知算法-环视背景介绍_remote camera 环视摄像头-CSDN博客

【5】(BEV综述)Delving into the Devils of Bird’s-eye-view Perception: A Review, Evaluation and Recipe - 哈哈哈喽喽喽 - 博客园 (cnblogs.com)

【6】arxiv-sanity (arxiv-sanity-lite.com)

【7】vasgaowei/BEV-Perception: Bird's Eye View Perception (github.com)

References

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

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

相关文章

win11 修改hosts提示无权限

win11下hosts的文件路径 C:\Windows\System32\drivers\etc>hosts修改文件后提示无权限。 我做了好几个尝试,都没个啥用~比如:右键 管理员身份运行,在其他版本的windows上可行,但是win11不行,我用的是微软账号登录的…

Android 组件提供的状态保存(saveInstanceState)与恢复(restoreInstanceState)

在Android的组件Activity中,有这样一对方法: onSaveInstanceeState 和 onRestoreInstanceState 这两对方法,可以让我在Activiy被异常销毁时,保存状态;以及在Activity重建时,恢复状态。 比如:当我们在输入…

就业班 第三阶段(负载均衡) 2401--4.18 day2 LVS-DR模式

3、LVS/DR 模式 实验说明: 1.网络使用NAT模式 2.DR模式要求Director DIP 和 所有RealServer RIP必须在同一个网段及广播域 3.所有节点网关均指定真实网关 主机名ip系统用途client172.16.147.1mac客户端lvs-server172.16.147.154centos7.5分发器real-server1172.16.…

SpringCloud简介

微服务架构理论 微服务架构概述 Spring Cloud简介Spring Cloud 技术栈SpringBoot和SpringCloud的关系SpringCloud和Dubbo区别对比相关文档 微服务架构概述 微服务是一种架构模式,将单一应用程序划分成一组小的服务,服务之间相互协调、相互配合&#xff0…

OSPF的LSA与特殊区域

Area区域概念 *一个区域维护一张LSDB,路由器详细的链路信息只在这个区域内传播 不是每一台路由器都需要了解所有外部目的地的详细信息 *OSPF网络的层次化设计 通过区域ID标识 骨干( Backbone )区域,必须是area 0(骨干区域…

milvus对象存储和消息中间件的工厂设计模式分析

milvus对象存储和消息中间件的工厂设计模式分析 需求 根据参数设置创建mq和storage mq有kafka,pulsar storage有local,minio,remote 配置文件 根据配置文件选择初始化mq和存储: mq:type: pulsarcommon:storageType: minio对于这种类型一个是mq,一个是存储&…

kubernetes部署控制器Deployment

一、概念 在学习rc和rs控制器资源时,这两个资源都是控制pod的副本数量的,但是,他们两个有个缺点,就是在部署新版本pod或者回滚代码的时候,需要先apply资源清单,然后再删除现有pod,通过资源控制&…

接口测试和Mock学习路线(上)

一、接口测试和Mock学习路线-第一阶段: 掌握接口测试的知识体系与学习路线掌握面试常见知识点之 HTTP 协议掌握常用接口测试工具 Postman掌握常用抓包工具 Charles 与 Fiddler结合知名产品实现 mock 测试与接口测试实战练习 1.接口协议: 需要先了解 O…

Vue3 + Element-Plus 对接高德地图实现搜索提示选址、点击地图选址、自我定位功能(最新)

Vue3 Element-Plus 对接高德地图实现搜索提示选址、点击地图选址、自我定位功能&#xff08;最新&#xff09; 1、效果展示2、实现代码2.1 GaoDeMap.vue2.2 SystemDialog.vue2.3 UnusedList.vue.vue 1、效果展示 2、实现代码 2.1 GaoDeMap.vue <template><div style…

【个人博客搭建】(11)swagger添加jwt信息

这个主要是为了方便使用swagger时&#xff0c;能更好的带入我们的token。 ps&#xff1a;如果使用其他第三方api工具&#xff08;apipost、postman等&#xff09;则不需要。 &#xff08;当然&#xff0c;不用不能没有&#xff0c;是吧&#xff09; 1、在AddSwaggerGen内添加…

文件权限管理

文件权限管理 1. 权限对象 权限对象含义u属主&#xff0c;所有者g属组o其他人 2. 权限类型 权限类型含义值r读权限4w写权限2x执行权限1 3. 修改文件属主及属组 命令:chown(change own)更改文件或目录属主与属组名 3.1 修改文件属主与属组 只修改属主&#xff1a;chown $…

【数据结构】链表的中间节点

给你单链表的头结点 head &#xff0c;请你找出并返回链表的中间结点。 如果有两个中间结点&#xff0c;则返回第二个中间结点。 Definition for singly-linked list.struct ListNode {int val;struct ListNode *next;};typedef struct ListNode ListNode; struct ListNode…

美国服务器vs香港服务器,哪个网站部署打开更快一些?

网站打开速度受多种因素影响&#xff0c;包括服务器地理位置、网络质量、带宽等。用户距离服务器越近&#xff0c;访问速度越快。对于中国大陆用户而言&#xff0c;香港的服务器可能会提供更快的网站访问体验&#xff0c;因为香港距离大陆较近&#xff0c;且网络连接通常较好。…

python高阶函数:zip()

概述与基本用法 zip() 是 Python 内置函数之一&#xff0c;用于将多个可迭代对象打包成一个元组序列&#xff0c;然后返回一个迭代器。它可以接受任意数量的可迭代对象作为参数&#xff0c;并将它们的元素按顺序一一对应地打包成元组。 以下是 zip() 函数的基本用法&#xff…

2024年视频号小店来了,这次是不是新的电商风口?

大家好&#xff0c;我是电商糖果 2024年电商行业可以说大地震了&#xff0c;为什么这么说呢&#xff1f; 因为一个非常有实力的新平台出现了。 它就是微信视频号推出的视频号小店&#xff0c;也可以理解为腾讯旗下的电商平台。 视频号的出现是腾讯为了对标抖音&#xff0c;和…

使用LSTM网络实现文本情感分析

一、实验目的&#xff1a; 理解循环神经网络的基本概念和原理&#xff1b;了解循环神经网络处理文本数据的基本方法&#xff1b;掌握循环神经网络处理文本数据的实践方法&#xff0c;并实现文本情感分析任务。 实验要求&#xff1a; 使用Keras框架定义并训练循环神经网络模型…

链游:未来游戏发展的新风向

链游&#xff0c;即区块链游戏的一种&#xff0c;是一种将区块链技术与游戏玩法相结合的创新型游戏。它利用区块链技术的特性&#xff0c;如去中心化、可追溯性和安全性&#xff0c;为玩家提供了一种全新的游戏体验。链游通常采用智能合约来实现游戏的规则和交易系统&#xff0…

B站无限评论暴力截留协议及教程

B站无限评论暴力截留协议及教程 B站无限评论暴力截留协议及教程&#xff0c;需要抓CK &#xff0c;教程里面有讲如何抓取 网盘自动获取 链接&#xff1a;https://pan.baidu.com/s/1lpzKPim76qettahxvxtjaQ?pwd0b8x 提取码&#xff1a;0b8x

森林消防隔膜泵的应用与前景——恒峰智慧科技

随着全球气候变暖&#xff0c;森林火灾频发&#xff0c;给生态环境和人类安全带来严重威胁。为有效应对这一挑战&#xff0c;森林消防领域不断引入新技术、新装备。其中&#xff0c;隔膜泵作为一种高效、可靠的消防设备&#xff0c;正逐渐受到广泛关注。本文将探讨森林消防隔膜…

c++在visual studio上的默认配置

右键 新建项 右键源文件 属性