Prerequisits¶
This section imports the necessary packages for the tutorial, and downloads ‘lr kt1’ (the first trajectory) of ICL-NUIM dataset and structures it as below:
ICL
living_room_traj1_frei_png
depth/ rgb/ associations.txt livingRoom1.gt.freiburg livingRoom1n.gt.sim
We set the ICL path variable: icl_path='ICL/'
. The ICL data is loaded into the following variables:
colors
: of shape (batch_size, sequence_length, height, width, 3)depths
: of shape (batch_size, sequence_length, height, width, 1)intrinsics
: of shape (batch_size, 1, 4, 4)poses
: of shape (batch_size, sequence_length, 4, 4)
Finally RGBDImages
is created from the ICL data.
[1]:
# import necessary packages
import gradslam as gs
import matplotlib.pyplot as plt
import numpy as np
import os
import torch
from gradslam import Pointclouds, RGBDImages
from gradslam.datasets import ICL
from gradslam.slam import PointFusion
from torch.utils.data import DataLoader
# download 'lr kt1' of ICL dataset
if not os.path.isdir('ICL'):
os.mkdir('ICL')
if not os.path.isdir('ICL/living_room_traj1_frei_png'):
print('Downloading ICL/living_room_traj1_frei_png dataset...')
os.mkdir('ICL/living_room_traj1_frei_png')
!wget http://www.doc.ic.ac.uk/~ahanda/living_room_traj1_frei_png.tar.gz -P ICL/living_room_traj1_frei_png/ -q
!tar -xzf ICL/living_room_traj1_frei_png/living_room_traj1_frei_png.tar.gz -C ICL/living_room_traj1_frei_png/
!rm ICL/living_room_traj1_frei_png/living_room_traj1_frei_png.tar.gz
!wget https://www.doc.ic.ac.uk/~ahanda/VaFRIC/livingRoom1n.gt.sim -P ICL/living_room_traj1_frei_png/ -q
print('Downloaded.')
icl_path = 'ICL/'
# load dataset
dataset = ICL(icl_path, seqlen=8, height=240, width=320)
loader = DataLoader(dataset=dataset, batch_size=2)
colors, depths, intrinsics, poses, *_ = next(iter(loader))
# create rgbdimages object
rgbdimages = RGBDImages(colors, depths, intrinsics, poses)
rgbdimages.plotly(0).update_layout(autosize=False, height=600, width=400).show()