/SGN

Implementation of IEEE TIP 2024 paper - "Camera-based Semantic Scene Completion with Sparse Guidance Network"

Primary LanguagePythonOtherNOASSERTION

Camera-based Semantic Scene Completion with Sparse Guidance Network

Camera-based Semantic Scene Completion with Sparse Guidance Network.

[Arxiv]

News


Abstract

Semantic scene completion (SSC) aims to predict the semantic occupancy of each voxel in the entire 3D scene from limited observations, which is an emerging and critical task for autonomous driving. Recently, many studies have turned to camera-based SSC solutions due to the richer visual cues and cost-effectiveness of cameras. However, existing methods usually rely on sophisticated and heavy 3D models to process the lifted 3D features directly, which are not discriminative enough for clear segmentation boundaries. In this paper, we adopt the dense-sparse-dense design and propose an end-to-end camera-based SSC framework, termed SGN, to diffuse semantics from the semantic- and occupancy-aware seed voxels to the whole scene based on geometry prior and occupancy information. Firstly, to dynamically select sparse seed voxels and provide occupancy-aware information, we redesign the sparse voxel proposal network to process points generated by depth prediction directly with the coarse-to-fine paradigm. Furthermore, by designing hybrid guidance (sparse semantic and geometry guidance) and effective voxel aggregation for spatial occupancy and geometry priors, we enhance the feature separation between different categories and expedite the convergence of semantic diffusion. Finally, we devise the multi-scale semantic diffusion module for flexible receptive fields while reducing the computation resources. Extensive experimental results on the SemanticKITTI and SSCBench-KITTI-360 datasets demonstrate the superiority of our SGN over existing state-of-the-art methods. And even our light version SGN-L achieves notable scores of 14.80% mIoU and 45.45% IoU on SeamnticKITTI validation with only 12.5 M parameters and 7.16 G training memory.

Method

SGN.jpg
Figure 1. Overall framework of SGN. The image encoder extracts 2D features to provide the foundation for 3D features lifted by the view transformation. Then auxiliary occupancy head is applied to provide geometry guidance. Before sparse semantic guidance, depth-based occupancy prediction is utilized for voxel proposals of indexing seed features. Afterward, the voxel aggregation layer forms the informative voxel features processed by the multi-scale semantic diffusion for the final semantic occupancy prediction. KT denotes the knowledge transfer layer for geometry prior.

Getting Started

Installation

Please refer to Voxformer to create base environment. Some extra packages are needed to be installed:

  • spconv-cu111==2.1.25
  • torch-scatter==2.0.8
  • tochmetrics>=0.9.0

Prepare Dataset

Please refer to the README in the preprocess folder for details.

Run and Eval

Train SGN with 4 GPUs

./tools/dist_train.sh ./projects/configs/sgn/sgn-T-one-stage-guidance.py 4

Eval SGN with 4 GPUs

./tools/dist_test.sh ./projects/configs/sgn/sgn-T-one-stage-guidance.py ./path/to/ckpts.pth 4

Model Zoo

Backbone Dataset Method IoU mIoU Params (M) Config Download
R50 Sem.KITTI val/test SGN-T 46.21/45.42 15.32/15.76 28.2 config model
R50 KITTI360 val/test SGN-T 47.50/47.06 19.07/18.25 28.2 config model
R18 Sem.KITTI val/test SGN-L 45.45/43.71 14.80/14.39 12.5 config model
R18 KITTI360 val/test SGN-L 46.67/46.64 17.11/16.95 12.5 config model
R50 Sem.KITTI val/test SGN-S 43.60/41.88 14.55/14.01 28.2 config model
R50 KITTI360 val/test SGN-S 46.13/46.22 18.29/17.71 28.2 config model

Note that we used the checkpoints that performed best on the validation set during training to evaluate SGN on the test sets for both SemanticKITTI and SSCBench-KITTI-360 datasets.

TODO

  • SemanticKITTI
  • SSCBench-KITTI-360
  • Data augmentation

Acknowledgement

Many thanks to these excellent open source projects: