• Stars
    star
    137
  • Rank 266,121 (Top 6 %)
  • Language
    Python
  • License
    MIT License
  • Created almost 2 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

This repository contains evaluation code for CVPR2023 paper "MobileBrick: Building LEGO for 3D Reconstruction on Mobile Devices"

Building LEGO for 3D Reconstruction on Mobile Devices

Kejie Li Β· Jia-Wang Bian Β· Robert Castle Β· Philip H.S. Torr Β· Victor Adrian Prisacariu

Project Page | arXiv | Dataset


Even 3D scanners can only generate pseudo ground-truth shapes with artefacts. MobileBrick is the first multi-view RGBD dataset, captured on a mobile device, with precise 3D annotations for detailed 3D object reconstruction.

We propose a novel data capturing and 3D annotation pipeline in MobileBrick without relying on expensive 3D scanners. The key to creating the precise 3D ground-truth shapes is using LEGO models, which are made of LEGO bricks with known geometry. The data modality of RGBD images captured on a mobile device paired with exact 3D geometry annotations provides a unique opportunity for future research on high-fidelity 3D reconstruction.

Overview

  1. Install
  2. Our dataset
  3. Evaluation
  4. Cite
  5. Changelog

Install

you can install dependencies with Anaconda as follows:

conda env create -f environment.yml
conda activate mobilebrick

Dataset Organisation

The dataset is organised by sequences, with 135 sequences of random shapes can be used for training, and 18 sequences of manually curated LEGO models for evaluation.

A sequence contains the following structure:


SEQUENCE_NAME
β”œβ”€β”€ arkit_depth (the confidence and depth maps provided by ARKit)
|    β”œβ”€β”€ 000000_conf.png
|    β”œβ”€β”€ 000000.png
|    β”œβ”€β”€ ...
β”œβ”€β”€ gt_depth (The high-resolution depth maps projected from the aligned GT shape)
|    β”œβ”€β”€ 000000.png
|    β”œβ”€β”€ ...     
β”œβ”€β”€ image (the RGB images)
|    β”œβ”€β”€ 000000.jpg
|    β”œβ”€β”€ ...
β”œβ”€β”€ mask (object foreground mask projected from the aligned GT shape)
|    β”œβ”€β”€ 000000.png
|    β”œβ”€β”€ ...
β”œβ”€β”€ intrinsic (3x3 intrinsic matrix of each image)
|    β”œβ”€β”€ 000000.txt
|    β”œβ”€β”€ ...
β”œβ”€β”€ pose (4x4 transformation matrix from camera to world of each image)
|    β”œβ”€β”€ 000000.txt
|    β”œβ”€β”€ ...
β”œβ”€β”€ mesh
|    β”œβ”€β”€ gt_mesh.ply
β”œβ”€β”€ visibility_mask.npy (the visibility mask to be used for evaluation)
β”œβ”€β”€ cameras.npz (processed camera poses using the format of NeuS)

Note:

  • the gt_mesh.ply is created by running tsdf-fusion using the gt depth

Evaluation

We provide scripts to run evaluation on 3D reconstruction and Novel View Synthesis (NVS).

To evaluate 3D reconstruction, use the following code.

python evaluations/evaluate_3d.py --method $METHOD

The reconstruction files (.ply) to be evaluated should be places in the ./meshes/$METHOD folder. A .csv file with per-sequence results will be generated.

To evaluate NVS, use the following code.

python evaluate_nvs.py --method $METHOD

The rendered images for evaluation should be placed in ./nvs/$METHOD

Cite

Please cite our work if you find it useful or use any of our code

@article{li2023mobilebrick,
  author = {Kejie Li, Jia-Wang Bian, Robert Castle, Philip H.S. Torr, Victor Adrian Prisacariu},
  title = {MobileBrick: Building LEGO for 3D Reconstruction on Mobile Devices},
  journal={arXiv preprint arXiv:2303.01932},
  year={2023}
}

Changelog

  • 09/03/2023: MobileBrick is merged into Voxurf, see instructions on their repo.
  • 06/03/2023: Dataset is online

More Repositories

1

Awesome-LLM-3D

Awesome-LLM-3D: a curated list of Multi-modal Large Language Model in 3D world Resources
949
star
2

nerfmm

(Arxiv 2021) NeRF--: Neural Radiance Fields Without Known Camera Parameters
Python
550
star
3

nope-nerf

(CVPR 2023) NoPe-NeRF: Optimising Neural Radiance Field with No Pose Prior
Python
378
star
4

porf

(ICLR 2024) PoRF: Pose Residual Field for Accurate Neural Surface Reconstruction
Python
123
star
5

DFNet

DFNet: Enhance Absolute Pose Regression with Direct Feature Matching (ECCV 2022)
Python
77
star
6

DualRC-Net

Python
56
star
7

DSConv

Python
49
star
8

SD4Match

Python
32
star
9

ray-onet

Python
29
star
10

gaussctrl

[ECCV 2024] GaussCtrl: Multi-View Consistent Text-Driven 3D Gaussian Splatting Editing
Python
27
star
11

LearningToCountAnything

This is the official implementation of: Learning to Count Anything: Reference-less Class-agnostic Counting with Weak Supervision Michael Hobley, Victor Prisacariu
Python
26
star
12

ANCNet

Correspondence Networks with Adaptive Neighbourhood Consensus
Python
24
star
13

LaLaLoc

Latent Layout Localisation
Python
21
star
14

direct-posenet

Direct-PoseNet: Absolute Pose Regression with Photometric Consistency (3DV 2021)
Python
20
star
15

BNInterpolation

Training scripts and Python modules for the ECCV 2018 paper "Interpolating Convolutional Networks Using Batch Normalization"
Python
12
star
16

NINormal

(BMVC 2020 Oral) Neighbourhood-Insensitive Point Cloud Normal Estimation Network
Python
10
star
17

NUQ

Finding Non-Uniform Quantization Schemes using Multi-Task Gaussian Processes
Python
4
star
18

ApproxConv

Code for the paper "Approximating Continuous Convolutions for Deep Network Compression"
Python
3
star
19

Quantization

Python
2
star
20

NeFeS

1
star