• 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

    项目实现

    设置环境

    1. git clone https://github.com/jamycheung/360BEV
    2. conda create -n 360BEV python=3.8
    3. conda activate 360BEV
    4. cd 360BEV
    5. # 安装mmedtection
    6. # conda create -n open-mmlab python=3.7 -y
    7. # conda activate open-mmlab
    8. # conda install pytorch torchvision -c pytorch
    9. # or conda install pytorch=1.3.1 cudatoolkit=9.2 torchvision=0.4.2 -c pytorch
    10. # 克隆项目
    11. git clone https://github.com/open-mmlab/mmdetection.git
    12. cd mmdetection
    13. pip install -r requirements/build.txt
    14. pip install "git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI"
    15. pip install -v -e .
    16. cd..
    17. 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

    1. data/
    2. ├── Stanford2D3D
    3. │ └── area_[1|2|3|4|5a|5b|6]
    4. │ ├── rgb/*png
    5. │ └── semantic/*png
    6. ├── 360BEV-Stanford
    7. │ ├── training
    8. │ └── valid
    9. │ ├── data_base_with_rotationz_realdepth/*h5
    10. │ └── ground_truth/*h5
    11. ├── 360BEV-Matterport
    12. │ ├── training
    13. │ ├── testing
    14. │ └── valid
    15. │ ├── smnet_training_data_zteng/*h5
    16. │ └── topdown_gt_real_height/*h5
    17. └── 360FV-Matterport
    18. ├── 17DRP5sb8fy
    19. │ ├── depth/*png
    20. │ ├── rgb/*png
    21. │ └── semantic/*png
    22. └── ...

    训练

    1. # 360BEV_Matterport
    2. python train_360BEV_Matterport.py --config configs/model_360BEV_mp3d.yml
    3. # 360BEV_S2d3d
    4. python train_360BEV_S2d3d.py --config configs/model_360BEV_s2d3d.yml
    5. # Stanford2D3D
    6. python train_pano_360Attention_S2d3d.py --config configs/model_fv_s2d3d.yml
    7. # 360FV-Matterport
    8. python train_pano_360Attention_Matterport.py --config configs/model_fv_mp3d.yml

    测试

    1. # 360BEV_Matterport
    2. python test_360BEV_Matterport.py --config configs/model_360BEV_mp3d.yml
    3. # 360BEV_S2d3d
    4. python test_360BEV_S2d3d.py --config configs/model_360BEV_s2d3d.yml
    5. # Stanford2D3D
    6. python test_pano_360Attention_S2d3d.py --config configs/model_fv_s2d3d.yml
    7. # 360FV-Matterport
    8. python test_pano_360Attention_Matterport.py --config configs/model_fv_mp3d.yml

    代码解析

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

    1. # 初始化
    2. generate feature
    3. FPN output feature maps
    4. # 从transformer提取特征后,
    5. 更新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

  • 相关阅读:
    Docker | 专栏文章整理🎉🎉
    机器学习知识总结 —— 15. 什么是支持向量机(对偶问题、核技巧)?
    【Luckfox pico入门记录(一)】开发环境与工具链
    Docker基础概念
    CC0是什么,为什么它会改变NFT市场?
    Android查漏补缺(5)ContentProvider和ContentResolver
    0076 稀疏数组
    离散粒子群算法(DPSO)求解路径规划(Matlab代码实现)
    开发工程师必备————【Day26】Django补充(三)
    【Docker系列】Docker生产常用命令01
  • 原文地址:https://blog.csdn.net/weixin_44649780/article/details/138204428