From 63f5c8a2c41b02b96c932327880e53a02234b5b4 Mon Sep 17 00:00:00 2001 From: Georgy Ponimatkin <38923619+ponimatkin@users.noreply.github.com> Date: Thu, 2 Mar 2023 18:28:18 +0100 Subject: [PATCH] Fix camera transformations in ARKitScenes and ScanNet (#1544) * Update arkitscenes_dataparser.py Fix camera coordinate system in ARKitScenes. * Update scannet_dataparser.py Fix camera coordinates in ScanNet. --- nerfstudio/data/dataparsers/arkitscenes_dataparser.py | 2 ++ nerfstudio/data/dataparsers/scannet_dataparser.py | 9 ++++----- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/nerfstudio/data/dataparsers/arkitscenes_dataparser.py b/nerfstudio/data/dataparsers/arkitscenes_dataparser.py index 736f9941b..fdf992ebd 100644 --- a/nerfstudio/data/dataparsers/arkitscenes_dataparser.py +++ b/nerfstudio/data/dataparsers/arkitscenes_dataparser.py @@ -208,4 +208,6 @@ class ARKitScenes(DataParser): frame_pose = np.array(poses_from_traj[str(my_key)]) frame_pose[0:3, 1:3] *= -1 + frame_pose = frame_pose[np.array([1, 0, 2, 3]), :] + frame_pose[2, :] *= -1 return frame_pose diff --git a/nerfstudio/data/dataparsers/scannet_dataparser.py b/nerfstudio/data/dataparsers/scannet_dataparser.py index 80d0dd688..3a58f302a 100644 --- a/nerfstudio/data/dataparsers/scannet_dataparser.py +++ b/nerfstudio/data/dataparsers/scannet_dataparser.py @@ -77,15 +77,14 @@ class ScanNet(DataParser): first_img = cv2.imread(img_dir_sorted[0].as_posix()) h, w, _ = first_img.shape - image_filenames = [] - depth_filenames = [] - intrinsics = [] - poses = [] + image_filenames, depth_filenames, intrinsics, poses = [], [], [], [] K = np.loadtxt(self.config.data / "intrinsic" / "intrinsic_color.txt") for img, depth, pose in zip(img_dir_sorted, depth_dir_sorted, pose_dir_sorted): pose = np.loadtxt(pose) - pose[0:3, 1:3] *= -1 + frame_pose[0:3, 1:3] *= -1 + frame_pose = frame_pose[np.array([1, 0, 2, 3]), :] + frame_pose[2, :] *= -1 # We cannot accept files directly, as some of the poses are invalid if np.isinf(pose).any():