本文主要是对于论文360BEV的解读和实现。
Paper:2023.03_360BEV: Panoramic Semantic Mapping for Indoor Bird's-Eye View
360BEV:室内鸟瞰全景语义映射
这篇论文提出了一种名为360BEV的专用解决方案,用于从鸟瞰图像对室内场景进行全景语义映射。主要贡献包括:
基于鸟瞰图的语义分割,三种方法:
这里根据原有的数据集,生成了新的数据集
360Mapper框架包括四个步骤:
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) |
|---|---|---|---|---|
| train | 5 | 215 | 1,040 | 13 |
| val | 1 | 55 | 373 | 13 |
| 360BEV-Stanford | 6 | 270 | 1,413 | 13 |
| train | 61 | -- | 7,829 | 20 |
| val | 7 | -- | 772 | 20 |
| test | 18 | -- | 2,014 | 20 |
| 360BEV-Matterport | 86 | 2,030 | 10,615 | 20 |
- 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】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博客
【6】arxiv-sanity (arxiv-sanity-lite.com)
【7】vasgaowei/BEV-Perception: Bird's Eye View Perception (github.com)
References