Open3D (C++ API)  0.18.0+5c982c7
Dataset.h
Go to the documentation of this file.
1 // ----------------------------------------------------------------------------
2 // - Open3D: www.open3d.org -
3 // ----------------------------------------------------------------------------
4 // Copyright (c) 2018-2023 www.open3d.org
5 // SPDX-License-Identifier: MIT
6 // ----------------------------------------------------------------------------
7 
8 #pragma once
9 
10 #include <string>
11 #include <unordered_map>
12 #include <utility>
13 #include <vector>
14 
15 #include "open3d/utility/Eigen.h"
16 
17 namespace open3d {
18 namespace data {
19 
24 std::string LocateDataRoot();
25 
29 std::string Open3DDownloadsPrefix();
30 
58 class Dataset {
59 public:
72  Dataset(const std::string& prefix, const std::string& data_root = "");
73 
74  virtual ~Dataset() {}
75 
78  const std::string GetDataRoot() const { return data_root_; }
79 
81  const std::string GetPrefix() const { return prefix_; }
82 
85  const std::string GetDownloadDir() const {
86  return GetDataRoot() + "/download/" + GetPrefix();
87  }
88 
91  const std::string GetExtractDir() const {
92  return GetDataRoot() + "/extract/" + GetPrefix();
93  }
94 
95 protected:
97  std::string data_root_;
98 
100  std::string prefix_;
101 
103  void CheckPathsExist(const std::vector<std::string>& paths) const;
104 };
105 
114  DataDescriptor(const std::vector<std::string>& urls,
115  const std::string& md5,
116  const std::string& extract_in_subdir = "")
117  : urls_(urls), md5_(md5), extract_in_subdir_(extract_in_subdir) {}
118 
124  DataDescriptor(const std::string& url,
125  const std::string& md5,
126  const std::string& extract_in_subdir = "")
127  : DataDescriptor(
128  std::vector<std::string>{url}, md5, extract_in_subdir) {}
129 
131  std::vector<std::string> urls_;
132 
134  std::string md5_;
135 
138  std::string extract_in_subdir_ = "";
139 };
140 
149 class DownloadDataset : public Dataset {
150 public:
151  DownloadDataset(const std::string& prefix,
152  const DataDescriptor& data_descriptor,
153  const std::string& data_root = "");
154 
155  DownloadDataset(const std::string& prefix,
156  const std::vector<DataDescriptor>& data_descriptors,
157  const std::string& data_root = "");
158 
159  virtual ~DownloadDataset() {}
160 
161 protected:
163  bool HasDownloaded(const DataDescriptor& data_descriptor) const;
164  std::vector<DataDescriptor> data_descriptors_;
165 };
166 
171 public:
172  ArmadilloMesh(const std::string& data_root = "");
173 
175  std::string GetPath() const { return path_; }
176 
177 private:
179  std::string path_;
180 };
181 
186 public:
187  AvocadoModel(const std::string& data_root = "");
188 
190  std::string GetPath() const { return path_; }
191 
192 private:
194  std::string path_;
195 };
196 
202 public:
203  BedroomRGBDImages(const std::string& data_root = "");
204 
206  std::vector<std::string> GetColorPaths() const { return color_paths_; }
208  std::vector<std::string> GetDepthPaths() const { return depth_paths_; }
209 
212  std::string GetTrajectoryLogPath() const { return trajectory_log_path_; }
214  std::string GetReconstructionPath() const { return reconstruction_path_; }
215 
216 private:
218  std::vector<std::string> color_paths_;
220  std::vector<std::string> depth_paths_;
221 
223  std::string trajectory_log_path_;
225  std::string reconstruction_path_;
226 };
227 
231 class BunnyMesh : public DownloadDataset {
232 public:
233  BunnyMesh(const std::string& data_root = "");
234 
236  std::string GetPath() const { return path_; }
237 
238 private:
240  std::string path_;
241 };
242 
249 class CrateModel : public DownloadDataset {
250 public:
251  CrateModel(const std::string& data_root = "");
252 
255  std::string GetPath(const std::string filename = "crate_model") const {
256  return map_filename_to_path_.at(filename);
257  }
258 
261  std::unordered_map<std::string, std::string> GetPathMap() const {
262  return map_filename_to_path_;
263  }
264 
265 private:
267  std::unordered_map<std::string, std::string> map_filename_to_path_;
268 };
269 
274 public:
275  DamagedHelmetModel(const std::string& data_root = "");
276 
278  std::string GetPath() const { return path_; }
279 
280 private:
282  std::string path_;
283 };
284 
291 public:
292  DemoColoredICPPointClouds(const std::string& data_root = "");
293 
295  std::vector<std::string> GetPaths() const { return paths_; }
298  std::string GetPaths(size_t index) const;
299 
300 private:
301  // List of path to PCD point-cloud fragments.
302  std::vector<std::string> paths_;
303 };
304 
311 public:
312  DemoCropPointCloud(const std::string& data_root = "");
313 
315  std::string GetPointCloudPath() const { return point_cloud_path_; }
317  std::string GetCroppedJSONPath() const { return cropped_json_path_; }
318 
319 private:
320  // Path to example point cloud.
321  std::string point_cloud_path_;
322  // Path to saved selected polygon volume file.
323  std::string cropped_json_path_;
324 };
325 
332 public:
333  DemoCustomVisualization(const std::string& data_root = "");
334 
336  std::string GetPointCloudPath() const { return point_cloud_path_; }
338  std::string GetTrajectoryPath() const { return camera_trajectory_path_; }
340  std::string GetRenderOptionPath() const { return render_option_path_; }
341 
342 private:
343  std::string point_cloud_path_;
344  std::string camera_trajectory_path_;
345  std::string render_option_path_;
346 };
347 
353 public:
354  DemoDopplerICPSequence(const std::string& data_root = "");
355 
357  std::vector<std::string> GetPaths() const { return paths_; }
359  std::string GetPath(std::size_t index) const;
362  std::string GetCalibrationPath() const { return calibration_path_; }
364  std::string GetTrajectoryPath() const { return trajectory_path_; }
367  bool GetCalibration(Eigen::Matrix4d& calibration, double& period) const;
370  std::vector<std::pair<double, Eigen::Matrix4d>> GetTrajectory() const;
371 
372 private:
374  std::vector<std::string> paths_;
376  std::string calibration_path_;
378  std::string trajectory_path_;
379 };
380 
387 public:
388  DemoFeatureMatchingPointClouds(const std::string& data_root = "");
389 
391  std::vector<std::string> GetPointCloudPaths() const {
392  return point_cloud_paths_;
393  }
396  std::vector<std::string> GetFPFHFeaturePaths() const {
397  return fpfh_feature_paths_;
398  }
401  std::vector<std::string> GetL32DFeaturePaths() const {
402  return l32d_feature_paths_;
403  }
404 
405 private:
407  std::vector<std::string> point_cloud_paths_;
410  std::vector<std::string> fpfh_feature_paths_;
413  std::vector<std::string> l32d_feature_paths_;
414 };
415 
421 public:
422  DemoICPPointClouds(const std::string& data_root = "");
423 
425  std::vector<std::string> GetPaths() const { return paths_; }
428  std::string GetPaths(size_t index) const;
431  std::string GetTransformationLogPath() const {
432  return transformation_log_path_;
433  }
434 
435 private:
436  // List of path to PCD point-cloud fragments.
437  std::vector<std::string> paths_;
438  std::string transformation_log_path_;
439 };
440 
446 public:
447  DemoPoseGraphOptimization(const std::string& data_root = "");
448 
450  std::string GetPoseGraphFragmentPath() const {
451  return pose_graph_fragment_path_;
452  }
454  std::string GetPoseGraphGlobalPath() const {
455  return pose_graph_global_path_;
456  }
457 
458 private:
460  std::string pose_graph_fragment_path_;
462  std::string pose_graph_global_path_;
463 };
464 
469 public:
470  EaglePointCloud(const std::string& data_root = "");
471 
473  std::string GetPath() const { return path_; }
474 
475 private:
477  std::string path_;
478 };
479 
487 public:
488  FlightHelmetModel(const std::string& data_root = "");
489 
493  std::string GetPath(const std::string filename = "flight_helmet") const {
494  return map_filename_to_path_.at(filename);
495  }
496 
499  std::unordered_map<std::string, std::string> GetPathMap() const {
500  return map_filename_to_path_;
501  }
502 
503 private:
505  std::unordered_map<std::string, std::string> map_filename_to_path_;
506 };
507 
512 public:
513  JackJackL515Bag(const std::string& data_root = "");
514 
516  std::string GetPath() const { return path_; }
517 
518 private:
520  std::string path_;
521 };
522 
525 class JuneauImage : public DownloadDataset {
526 public:
527  JuneauImage(const std::string& data_root = "");
528 
530  std::string GetPath() const { return path_; }
531 
532 private:
534  std::string path_;
535 };
536 
539 class KnotMesh : public DownloadDataset {
540 public:
541  KnotMesh(const std::string& data_root = "");
542 
544  std::string GetPath() const { return path_; }
545 
546 private:
548  std::string path_;
549 };
550 
556 public:
557  LivingRoomPointClouds(const std::string& data_root = "");
558 
560  std::vector<std::string> GetPaths() const { return paths_; }
564  std::string GetPaths(size_t index) const;
565 
566 private:
568  std::vector<std::string> paths_;
569 };
570 
576 public:
577  LoungeRGBDImages(const std::string& data_root = "");
578 
580  std::vector<std::string> GetColorPaths() const { return color_paths_; }
582  std::vector<std::string> GetDepthPaths() const { return depth_paths_; }
583 
586  std::string GetTrajectoryLogPath() const { return trajectory_log_path_; }
588  std::string GetReconstructionPath() const { return reconstruction_path_; }
589 
590 private:
592  std::vector<std::string> color_paths_;
594  std::vector<std::string> depth_paths_;
595 
597  std::string trajectory_log_path_;
599  std::string reconstruction_path_;
600 };
601 
606 public:
607  MetalTexture(const std::string& data_root = "");
609  std::string GetAlbedoTexturePath() const {
610  return map_filename_to_path_.at("albedo");
611  }
613  std::string GetNormalTexturePath() const {
614  return map_filename_to_path_.at("normal");
615  }
617  std::string GetRoughnessTexturePath() const {
618  return map_filename_to_path_.at("roughness");
619  }
621  std::string GetMetallicTexturePath() const {
622  return map_filename_to_path_.at("metallic");
623  }
626  std::unordered_map<std::string, std::string> GetPathMap() const {
627  return map_filename_to_path_;
628  }
629 
630 private:
632  std::unordered_map<std::string, std::string> map_filename_to_path_;
633 };
634 
641 class MonkeyModel : public DownloadDataset {
642 public:
643  MonkeyModel(const std::string& data_root = "");
644 
647  std::string GetPath(const std::string filename = "monkey_model") const {
648  return map_filename_to_path_.at(filename);
649  }
650 
653  std::unordered_map<std::string, std::string> GetPathMap() const {
654  return map_filename_to_path_;
655  }
656 
657 private:
659  std::unordered_map<std::string, std::string> map_filename_to_path_;
660 };
661 
667 public:
668  OfficePointClouds(const std::string& data_root = "");
669 
671  std::vector<std::string> GetPaths() const { return paths_; }
675  std::string GetPaths(size_t index) const;
676 
677 private:
679  std::vector<std::string> paths_;
680 };
681 
686 public:
687  PCDPointCloud(const std::string& data_root = "");
688 
690  std::string GetPath() const { return path_; }
691 
692 private:
694  std::string path_;
695 };
696 
701 public:
702  PLYPointCloud(const std::string& data_root = "");
703 
705  std::string GetPath() const { return path_; }
706 
707 private:
709  std::string path_;
710 };
711 
716 public:
717  PTSPointCloud(const std::string& data_root = "");
718 
720  std::string GetPath() const { return path_; }
721 
722 private:
724  std::string path_;
725 };
726 
731 public:
732  PaintedPlasterTexture(const std::string& data_root = "");
734  std::string GetAlbedoTexturePath() const {
735  return map_filename_to_path_.at("albedo");
736  }
738  std::string GetNormalTexturePath() const {
739  return map_filename_to_path_.at("normal");
740  }
742  std::string GetRoughnessTexturePath() const {
743  return map_filename_to_path_.at("roughness");
744  }
747  std::unordered_map<std::string, std::string> GetPathMap() const {
748  return map_filename_to_path_;
749  }
750 
751 private:
753  std::unordered_map<std::string, std::string> map_filename_to_path_;
754 };
755 
782 public:
783  RedwoodIndoorLivingRoom1(const std::string& data_root = "");
784 
786  std::string GetPointCloudPath() const { return point_cloud_path_; }
788  std::vector<std::string> GetColorPaths() const { return color_paths_; }
790  std::vector<std::string> GetDepthPaths() const { return depth_paths_; }
792  std::vector<std::string> GetNoisyDepthPaths() const {
793  return noisy_depth_paths_;
794  }
796  std::string GetONIPath() const { return oni_path_; }
798  std::string GetTrajectoryPath() const { return trajectory_path_; }
800  std::string GetNoiseModelPath() const { return noise_model_path_; }
801 
802 private:
803  std::string point_cloud_path_;
804  std::vector<std::string> color_paths_;
805  std::vector<std::string> depth_paths_;
806  std::vector<std::string> noisy_depth_paths_;
807  std::string oni_path_;
808  std::string trajectory_path_;
809  std::string noise_model_path_;
810 };
811 
838 public:
839  RedwoodIndoorLivingRoom2(const std::string& data_root = "");
840 
842  std::string GetPointCloudPath() const { return point_cloud_path_; }
844  std::vector<std::string> GetColorPaths() const { return color_paths_; }
846  std::vector<std::string> GetDepthPaths() const { return depth_paths_; }
848  std::vector<std::string> GetNoisyDepthPaths() const {
849  return noisy_depth_paths_;
850  }
852  std::string GetONIPath() const { return oni_path_; }
854  std::string GetTrajectoryPath() const { return trajectory_path_; }
856  std::string GetNoiseModelPath() const { return noise_model_path_; }
857 
858 private:
859  std::string point_cloud_path_;
860  std::vector<std::string> color_paths_;
861  std::vector<std::string> depth_paths_;
862  std::vector<std::string> noisy_depth_paths_;
863  std::string oni_path_;
864  std::string trajectory_path_;
865  std::string noise_model_path_;
866 };
867 
894 public:
895  RedwoodIndoorOffice1(const std::string& data_root = "");
896 
898  std::string GetPointCloudPath() const { return point_cloud_path_; }
900  std::vector<std::string> GetColorPaths() const { return color_paths_; }
902  std::vector<std::string> GetDepthPaths() const { return depth_paths_; }
904  std::vector<std::string> GetNoisyDepthPaths() const {
905  return noisy_depth_paths_;
906  }
908  std::string GetONIPath() const { return oni_path_; }
910  std::string GetTrajectoryPath() const { return trajectory_path_; }
912  std::string GetNoiseModelPath() const { return noise_model_path_; }
913 
914 private:
915  std::string point_cloud_path_;
916  std::vector<std::string> color_paths_;
917  std::vector<std::string> depth_paths_;
918  std::vector<std::string> noisy_depth_paths_;
919  std::string oni_path_;
920  std::string trajectory_path_;
921  std::string noise_model_path_;
922 };
923 
950 public:
951  RedwoodIndoorOffice2(const std::string& data_root = "");
952 
954  std::string GetPointCloudPath() const { return point_cloud_path_; }
956  std::vector<std::string> GetColorPaths() const { return color_paths_; }
958  std::vector<std::string> GetDepthPaths() const { return depth_paths_; }
960  std::vector<std::string> GetNoisyDepthPaths() const {
961  return noisy_depth_paths_;
962  }
964  std::string GetONIPath() const { return oni_path_; }
966  std::string GetTrajectoryPath() const { return trajectory_path_; }
968  std::string GetNoiseModelPath() const { return noise_model_path_; }
969 
970 private:
971  std::string point_cloud_path_;
972  std::vector<std::string> color_paths_;
973  std::vector<std::string> depth_paths_;
974  std::vector<std::string> noisy_depth_paths_;
975  std::string oni_path_;
976  std::string trajectory_path_;
977  std::string noise_model_path_;
978 };
979 
984 public:
985  SampleFountainRGBDImages(const std::string& data_root = "");
986 
988  std::vector<std::string> GetColorPaths() const { return color_paths_; }
990  std::vector<std::string> GetDepthPaths() const { return depth_paths_; }
992  std::string GetKeyframePosesLogPath() const {
993  return keyframe_poses_log_path_;
994  }
996  std::string GetReconstructionPath() const { return reconstruction_path_; }
997 
998 private:
999  std::vector<std::string> color_paths_;
1000  std::vector<std::string> depth_paths_;
1001  std::string keyframe_poses_log_path_;
1002  std::string reconstruction_path_;
1003 };
1004 
1008 public:
1009  SampleL515Bag(const std::string& data_root = "");
1010 
1012  std::string GetPath() const { return path_; }
1013 
1014 private:
1016  std::string path_;
1017 };
1018 
1024 public:
1025  SampleNYURGBDImage(const std::string& data_root = "");
1026 
1028  std::string GetColorPath() const { return color_path_; }
1030  std::string GetDepthPath() const { return depth_path_; }
1031 
1032 private:
1034  std::string color_path_;
1036  std::string depth_path_;
1037 };
1038 
1042 // Additionally it also contains camera trajectory log, camera odometry log,
1043 // rgbd match, and point cloud reconstruction obtained using TSDF.
1045 public:
1046  SampleRedwoodRGBDImages(const std::string& data_root = "");
1047 
1049  std::vector<std::string> GetColorPaths() const { return color_paths_; }
1051  std::vector<std::string> GetDepthPaths() const { return depth_paths_; }
1052 
1054  std::string GetTrajectoryLogPath() const { return trajectory_log_path_; }
1056  std::string GetOdometryLogPath() const { return odometry_log_path_; }
1058  std::string GetRGBDMatchPath() const { return rgbd_match_path_; }
1060  std::string GetReconstructionPath() const { return reconstruction_path_; }
1062  std::string GetCameraIntrinsicPath() const {
1063  return camera_intrinsic_path_;
1064  }
1065 
1066 private:
1068  std::vector<std::string> color_paths_;
1070  std::vector<std::string> depth_paths_;
1071 
1073  std::string trajectory_log_path_;
1075  std::string odometry_log_path_;
1077  std::string rgbd_match_path_;
1079  std::string reconstruction_path_;
1081  std::string camera_intrinsic_path_;
1082 };
1083 
1089 public:
1090  SampleSUNRGBDImage(const std::string& data_root = "");
1091 
1093  std::string GetColorPath() const { return color_path_; }
1095  std::string GetDepthPath() const { return depth_path_; }
1096 
1097 private:
1099  std::string color_path_;
1101  std::string depth_path_;
1102 };
1103 
1109 public:
1110  SampleTUMRGBDImage(const std::string& data_root = "");
1111 
1113  std::string GetColorPath() const { return color_path_; }
1115  std::string GetDepthPath() const { return depth_path_; }
1116 
1117 private:
1119  std::string color_path_;
1121  std::string depth_path_;
1122 };
1123 
1130 class SwordModel : public DownloadDataset {
1131 public:
1132  SwordModel(const std::string& data_root = "");
1133 
1137  std::string GetPath(const std::string filename = "sword_model") const {
1138  return map_filename_to_path_.at(filename);
1139  }
1140 
1143  std::unordered_map<std::string, std::string> GetPathMap() const {
1144  return map_filename_to_path_;
1145  }
1146 
1147 private:
1149  std::unordered_map<std::string, std::string> map_filename_to_path_;
1150 };
1151 
1156 public:
1157  TerrazzoTexture(const std::string& data_root = "");
1159  std::string GetAlbedoTexturePath() const {
1160  return map_filename_to_path_.at("albedo");
1161  }
1163  std::string GetNormalTexturePath() const {
1164  return map_filename_to_path_.at("normal");
1165  }
1167  std::string GetRoughnessTexturePath() const {
1168  return map_filename_to_path_.at("roughness");
1169  }
1172  std::unordered_map<std::string, std::string> GetPathMap() const {
1173  return map_filename_to_path_;
1174  }
1175 
1176 private:
1178  std::unordered_map<std::string, std::string> map_filename_to_path_;
1179 };
1180 
1185 public:
1186  TilesTexture(const std::string& data_root = "");
1188  std::string GetAlbedoTexturePath() const {
1189  return map_filename_to_path_.at("albedo");
1190  }
1192  std::string GetNormalTexturePath() const {
1193  return map_filename_to_path_.at("normal");
1194  }
1196  std::string GetRoughnessTexturePath() const {
1197  return map_filename_to_path_.at("roughness");
1198  }
1201  std::unordered_map<std::string, std::string> GetPathMap() const {
1202  return map_filename_to_path_;
1203  }
1204 
1205 private:
1207  std::unordered_map<std::string, std::string> map_filename_to_path_;
1208 };
1209 
1214 public:
1215  WoodFloorTexture(const std::string& data_root = "");
1217  std::string GetAlbedoTexturePath() const {
1218  return map_filename_to_path_.at("albedo");
1219  }
1221  std::string GetNormalTexturePath() const {
1222  return map_filename_to_path_.at("normal");
1223  }
1225  std::string GetRoughnessTexturePath() const {
1226  return map_filename_to_path_.at("roughness");
1227  }
1230  std::unordered_map<std::string, std::string> GetPathMap() const {
1231  return map_filename_to_path_;
1232  }
1233 
1234 private:
1236  std::unordered_map<std::string, std::string> map_filename_to_path_;
1237 };
1238 
1243 public:
1244  WoodTexture(const std::string& data_root = "");
1246  std::string GetAlbedoTexturePath() const {
1247  return map_filename_to_path_.at("albedo");
1248  }
1250  std::string GetNormalTexturePath() const {
1251  return map_filename_to_path_.at("normal");
1252  }
1254  std::string GetRoughnessTexturePath() const {
1255  return map_filename_to_path_.at("roughness");
1256  }
1259  std::unordered_map<std::string, std::string> GetPathMap() const {
1260  return map_filename_to_path_;
1261  }
1262 
1263 private:
1265  std::unordered_map<std::string, std::string> map_filename_to_path_;
1266 };
1267 
1268 } // namespace data
1269 } // namespace open3d
Data class for ArmadilloMesh contains the ArmadilloMesh.ply from the Stanford 3D Scanning Repository.
Definition: Dataset.h:170
ArmadilloMesh(const std::string &data_root="")
Definition: ArmadilloMesh.cpp:21
std::string GetPath() const
Path to the ArmadilloMesh.ply file.
Definition: Dataset.h:175
Data class for AvocadoModel contains a avocado model file, along with material and PNG format embedde...
Definition: Dataset.h:185
AvocadoModel(const std::string &data_root="")
Definition: AvocadoModel.cpp:21
std::string GetPath() const
Path to the GLB format avocado model.
Definition: Dataset.h:190
Data class for BedroomRGBDImages contains a sample set of 21931 color and depth images from Redwood R...
Definition: Dataset.h:201
std::vector< std::string > GetDepthPaths() const
Returns List of paths to depth image samples of size 21931.
Definition: Dataset.h:208
BedroomRGBDImages(const std::string &data_root="")
Definition: BedroomRGBDImages.cpp:30
std::vector< std::string > GetColorPaths() const
Returns List of paths to color image samples of size 21931.
Definition: Dataset.h:206
std::string GetReconstructionPath() const
Path to mesh reconstruction bedroom.ply.
Definition: Dataset.h:214
std::string GetTrajectoryLogPath() const
Path to camera trajectory log file lounge_trajectory.log.
Definition: Dataset.h:212
Data class for BunnyMesh contains the BunnyMesh.ply from the Stanford 3D Scanning Repository.
Definition: Dataset.h:231
std::string GetPath() const
Path to the BunnyMesh.ply file.
Definition: Dataset.h:236
BunnyMesh(const std::string &data_root="")
Definition: BunnyMesh.cpp:21
Data class for CrateModel contains a sword model file, along with material and various other texture ...
Definition: Dataset.h:249
std::string GetPath(const std::string filename="crate_model") const
Path to the filename. By default it returns the path to crate.obj file. Refer documentation page for ...
Definition: Dataset.h:255
CrateModel(const std::string &data_root="")
Definition: CrateModel.cpp:21
std::unordered_map< std::string, std::string > GetPathMap() const
Returns the map of filename to path. Refer documentation page for available options.
Definition: Dataset.h:261
Data class for DamagedHelmetModel contains a damaged helmet model file, along with material and JPG f...
Definition: Dataset.h:273
DamagedHelmetModel(const std::string &data_root="")
Definition: DamagedHelmetModel.cpp:21
std::string GetPath() const
Path to the GLB format damaged helmet model.
Definition: Dataset.h:278
Base Open3D dataset class.
Definition: Dataset.h:58
std::string prefix_
Dataset prefix.
Definition: Dataset.h:100
virtual ~Dataset()
Definition: Dataset.h:74
const std::string GetExtractDir() const
Get absolute path to extract directory. i.e. ${data_root}/extract/${prefix}.
Definition: Dataset.h:91
Dataset(const std::string &prefix, const std::string &data_root="")
Parameterized Constructor.
Definition: Dataset.cpp:35
void CheckPathsExist(const std::vector< std::string > &paths) const
Check if the paths exists after extraction.
Definition: Dataset.cpp:47
std::string data_root_
Open3D data root.
Definition: Dataset.h:97
const std::string GetPrefix() const
Get prefix for the dataset.
Definition: Dataset.h:81
const std::string GetDownloadDir() const
Get absolute path to download directory. i.e. ${data_root}/download/${prefix}.
Definition: Dataset.h:85
const std::string GetDataRoot() const
Get data root directory. The data root is set at construction time or automatically determined.
Definition: Dataset.h:78
Data class for DemoColoredICPPointClouds contains 2 point clouds of PLY format. This data is used in ...
Definition: Dataset.h:290
DemoColoredICPPointClouds(const std::string &data_root="")
Definition: DemoColoredICPPointClouds.cpp:21
std::vector< std::string > GetPaths() const
Returns list of list of 2 point cloud paths.
Definition: Dataset.h:295
Data class for DemoCropPointCloud contains a point cloud, and cropped.json (a saved selected polygon ...
Definition: Dataset.h:310
DemoCropPointCloud(const std::string &data_root="")
Definition: DemoCropPointCloud.cpp:21
std::string GetPointCloudPath() const
Path to example point cloud.
Definition: Dataset.h:315
std::string GetCroppedJSONPath() const
Path to saved selected polygon volume file.
Definition: Dataset.h:317
Data class for DemoCustomVisualization contains an example point-cloud, camera trajectory (json file)...
Definition: Dataset.h:331
std::string GetTrajectoryPath() const
Path to the camera_trajectory.json.
Definition: Dataset.h:338
std::string GetPointCloudPath() const
Path to the point cloud (ply).
Definition: Dataset.h:336
DemoCustomVisualization(const std::string &data_root="")
Definition: DemoCustomVisualization.cpp:21
std::string GetRenderOptionPath() const
Path to the renderoption.json.
Definition: Dataset.h:340
Data class for DemoDopplerICPSequence contains an example sequence of 100 point clouds with Doppler v...
Definition: Dataset.h:352
std::vector< std::string > GetPaths() const
Returns the list of the point cloud paths in the sequence.
Definition: Dataset.h:357
std::string GetCalibrationPath() const
Path to the calibration metadata file, containing transformation between the vehicle and sensor frame...
Definition: Dataset.h:362
std::vector< std::pair< double, Eigen::Matrix4d > > GetTrajectory() const
Returns a list of (timestamp, pose) representing the ground truth trajectory of the sequence.
Definition: DemoDopplerICPSequence.cpp:116
std::string GetTrajectoryPath() const
Path to the ground truth poses for the entire sequence.
Definition: Dataset.h:364
bool GetCalibration(Eigen::Matrix4d &calibration, double &period) const
Returns the vehicle to sensor calibration transformation and the time period (in secs) between sequen...
Definition: DemoDopplerICPSequence.cpp:100
std::string GetPath(std::size_t index) const
Path to the point cloud at index.
Definition: DemoDopplerICPSequence.cpp:91
DemoDopplerICPSequence(const std::string &data_root="")
Definition: DemoDopplerICPSequence.cpp:78
Data class for DemoFeatureMatchingPointClouds contains 2 point cloud fragments and their respective F...
Definition: Dataset.h:386
DemoFeatureMatchingPointClouds(const std::string &data_root="")
Definition: DemoFeatureMatchingPointClouds.cpp:22
std::vector< std::string > GetL32DFeaturePaths() const
Returns list of paths to saved L32D features binary for point clouds, respectively,...
Definition: Dataset.h:401
std::vector< std::string > GetPointCloudPaths() const
Returns list of paths to point clouds, of size 2.
Definition: Dataset.h:391
std::vector< std::string > GetFPFHFeaturePaths() const
Returns list of paths to saved FPFH features binary for point clouds, respectively,...
Definition: Dataset.h:396
Data class for DemoICPPointClouds contains 3 point clouds of binary PCD format. This data is used in ...
Definition: Dataset.h:420
std::string GetTransformationLogPath() const
Path to the transformation metadata log file, containing transformation between frame 0 and 1,...
Definition: Dataset.h:431
DemoICPPointClouds(const std::string &data_root="")
Definition: DemoICPPointClouds.cpp:21
std::vector< std::string > GetPaths() const
Returns list of 3 point cloud paths.
Definition: Dataset.h:425
Data class for DemoPoseGraphOptimization contains an example fragment pose graph, and global pose gra...
Definition: Dataset.h:445
std::string GetPoseGraphFragmentPath() const
Path to example global pose graph (json).
Definition: Dataset.h:450
std::string GetPoseGraphGlobalPath() const
Path to example fragment pose graph (json).
Definition: Dataset.h:454
DemoPoseGraphOptimization(const std::string &data_root="")
Definition: DemoPoseGraphOptimization.cpp:21
Dataset class with one or more downloaded file.
Definition: Dataset.h:149
DownloadDataset(const std::string &prefix, const DataDescriptor &data_descriptor, const std::string &data_root="")
Definition: Dataset.cpp:65
bool HasDownloaded(const DataDescriptor &data_descriptor) const
Check if all files are downloaded and MD5 checksums are valid.
Definition: Dataset.cpp:119
virtual ~DownloadDataset()
Definition: Dataset.h:159
std::vector< DataDescriptor > data_descriptors_
Definition: Dataset.h:164
Data class for EaglePointCloud contains the EaglePointCloud.ply file.
Definition: Dataset.h:468
std::string GetPath() const
Path to the EaglePointCloud.ply file.
Definition: Dataset.h:473
EaglePointCloud(const std::string &data_root="")
Definition: EaglePointCloud.cpp:21
Data class for FlightHelmetModel contains a flight helmet model file, along with material and various...
Definition: Dataset.h:486
FlightHelmetModel(const std::string &data_root="")
Definition: FlightHelmetModel.cpp:21
std::unordered_map< std::string, std::string > GetPathMap() const
Returns the map of filename to path. Refer documentation page for available options.
Definition: Dataset.h:499
std::string GetPath(const std::string filename="flight_helmet") const
Path to the filename. By default it returns the path to FlightHelmet.gltf file. Refer documentation p...
Definition: Dataset.h:493
Data class for JackJackL515Bag contains the RealSense L515 JackJackL515Bag.bag file.
Definition: Dataset.h:511
std::string GetPath() const
Path to the JackJackL515Bag.bag file.
Definition: Dataset.h:516
JackJackL515Bag(const std::string &data_root="")
Definition: JackJackL515Bag.cpp:20
Data class for JuneauImage contains the JuneauImage.jpg file.
Definition: Dataset.h:525
std::string GetPath() const
Path to the JuneauImage.jgp file.
Definition: Dataset.h:530
JuneauImage(const std::string &data_root="")
Definition: JuneauImage.cpp:21
Data class for KnotMesh contains the KnotMesh.ply file.
Definition: Dataset.h:539
KnotMesh(const std::string &data_root="")
Definition: KnotMesh.cpp:21
std::string GetPath() const
Path to the KnotMesh.ply file.
Definition: Dataset.h:544
Dataset class for LivingRoomPointClouds contains 57 point clouds of binary PLY format.
Definition: Dataset.h:555
LivingRoomPointClouds(const std::string &data_root="")
Definition: LivingRoomPointClouds.cpp:21
std::vector< std::string > GetPaths() const
Returns list of paths to ply point-cloud fragments of size 57.
Definition: Dataset.h:560
Data class for LoungeRGBDImages contains a sample set of 3000 color and depth images from Stanford Lo...
Definition: Dataset.h:575
std::string GetReconstructionPath() const
Path to mesh reconstruction lounge.ply.
Definition: Dataset.h:588
std::vector< std::string > GetDepthPaths() const
Returns List of paths to depth image samples of size 3000.
Definition: Dataset.h:582
std::string GetTrajectoryLogPath() const
Path to camera trajectory log file lounge_trajectory.log.
Definition: Dataset.h:586
std::vector< std::string > GetColorPaths() const
Returns List of paths to color image samples of size 3000.
Definition: Dataset.h:580
LoungeRGBDImages(const std::string &data_root="")
Definition: LoungeRGBDImages.cpp:21
Data class for MetalTexture contains albedo, normal, roughness and metallic texture files for metal b...
Definition: Dataset.h:605
std::string GetNormalTexturePath() const
Returns the path to normal texture image.
Definition: Dataset.h:613
MetalTexture(const std::string &data_root="")
Definition: MetalTexture.cpp:21
std::string GetRoughnessTexturePath() const
Returns the path to roughness texture image.
Definition: Dataset.h:617
std::unordered_map< std::string, std::string > GetPathMap() const
Returns the map of filename to path. Refer documentation page for available options.
Definition: Dataset.h:626
std::string GetAlbedoTexturePath() const
Returns the path to albedo color texture image.
Definition: Dataset.h:609
std::string GetMetallicTexturePath() const
Returns the path to metallic texture image.
Definition: Dataset.h:621
Data class for MonkeyModel contains a monkey model file, along with material and various other textur...
Definition: Dataset.h:641
std::string GetPath(const std::string filename="monkey_model") const
Path to the filename. By default it returns the path to mokey.obj file. Refer documentation page for ...
Definition: Dataset.h:647
MonkeyModel(const std::string &data_root="")
Definition: MonkeyModel.cpp:21
std::unordered_map< std::string, std::string > GetPathMap() const
Returns the map of filename to path. Refer documentation page for available options.
Definition: Dataset.h:653
Dataset class for OfficePointClouds contains 53 point clouds of binary PLY format.
Definition: Dataset.h:666
std::vector< std::string > GetPaths() const
Returns list of paths to ply point-cloud fragments of size 52.
Definition: Dataset.h:671
OfficePointClouds(const std::string &data_root="")
Definition: OfficePointClouds.cpp:21
Data class for PCDPointCloud contains the fragment.pcd point cloud mesh from the Redwood Living Room ...
Definition: Dataset.h:685
PCDPointCloud(const std::string &data_root="")
Definition: PCDPointCloud.cpp:21
std::string GetPath() const
Path to the pcd format point cloud.
Definition: Dataset.h:690
Data class for PLYPointCloud contains the fragment.ply point cloud mesh from the Redwood Living Room ...
Definition: Dataset.h:700
PLYPointCloud(const std::string &data_root="")
Definition: PLYPointCloud.cpp:21
std::string GetPath() const
Path to the PLY format point cloud.
Definition: Dataset.h:705
Data class for PTSPointCloud contains a sample point-cloud of PTS format.
Definition: Dataset.h:715
PTSPointCloud(const std::string &data_root="")
Definition: PTSPointCloud.cpp:21
std::string GetPath() const
Path to the PTS format point cloud.
Definition: Dataset.h:720
Data class for PaintedPlasterTexture contains albedo, normal and roughness texture files for painted ...
Definition: Dataset.h:730
std::string GetRoughnessTexturePath() const
Returns the path to roughness texture image.
Definition: Dataset.h:742
std::string GetNormalTexturePath() const
Returns the path to normal texture image.
Definition: Dataset.h:738
std::string GetAlbedoTexturePath() const
Returns the path to albedo color texture image.
Definition: Dataset.h:734
PaintedPlasterTexture(const std::string &data_root="")
Definition: PaintedPlasterTexture.cpp:21
std::unordered_map< std::string, std::string > GetPathMap() const
Returns the map of filename to path. Refer documentation page for available options.
Definition: Dataset.h:747
Data class for RedwoodIndoorLivingRoom1, containing dense point cloud, rgb sequence,...
Definition: Dataset.h:781
std::string GetPointCloudPath() const
Path to the point cloud.
Definition: Dataset.h:786
std::vector< std::string > GetColorPaths() const
Paths to the color images.
Definition: Dataset.h:788
std::string GetONIPath() const
Paths to the ONI sequence.
Definition: Dataset.h:796
std::string GetNoiseModelPath() const
Path to the noise model.
Definition: Dataset.h:800
RedwoodIndoorLivingRoom1(const std::string &data_root="")
Definition: RedwoodIndoorLivingRoom1.cpp:37
std::vector< std::string > GetDepthPaths() const
Paths to the clean depth images.
Definition: Dataset.h:790
std::vector< std::string > GetNoisyDepthPaths() const
Paths to the noisy depth images.
Definition: Dataset.h:792
std::string GetTrajectoryPath() const
Path to the ground-truth camera trajectory.
Definition: Dataset.h:798
Data class for RedwoodIndoorLivingRoom2, containing dense point cloud, rgb sequence,...
Definition: Dataset.h:837
RedwoodIndoorLivingRoom2(const std::string &data_root="")
Definition: RedwoodIndoorLivingRoom2.cpp:36
std::vector< std::string > GetColorPaths() const
Paths to the color images.
Definition: Dataset.h:844
std::string GetPointCloudPath() const
Path to the point cloud.
Definition: Dataset.h:842
std::string GetONIPath() const
Paths to the ONI sequence.
Definition: Dataset.h:852
std::string GetTrajectoryPath() const
Path to the ground-truth camera trajectory.
Definition: Dataset.h:854
std::vector< std::string > GetNoisyDepthPaths() const
Paths to the noisy depth images.
Definition: Dataset.h:848
std::vector< std::string > GetDepthPaths() const
Paths to the clean depth images.
Definition: Dataset.h:846
std::string GetNoiseModelPath() const
Path to the noise model.
Definition: Dataset.h:856
Data class for RedwoodIndoorOffice1, containing dense point cloud, rgb sequence, clean depth sequence...
Definition: Dataset.h:893
std::string GetTrajectoryPath() const
Path to the ground-truth camera trajectory.
Definition: Dataset.h:910
RedwoodIndoorOffice1(const std::string &data_root="")
Definition: RedwoodIndoorOffice1.cpp:35
std::vector< std::string > GetNoisyDepthPaths() const
Paths to the noisy depth images.
Definition: Dataset.h:904
std::vector< std::string > GetColorPaths() const
Paths to the color images.
Definition: Dataset.h:900
std::vector< std::string > GetDepthPaths() const
Paths to the clean depth images.
Definition: Dataset.h:902
std::string GetPointCloudPath() const
Path to the point cloud.
Definition: Dataset.h:898
std::string GetONIPath() const
Paths to the ONI sequence.
Definition: Dataset.h:908
std::string GetNoiseModelPath() const
Path to the noise model.
Definition: Dataset.h:912
Data class for RedwoodIndoorOffice2, containing dense point cloud, rgb sequence, clean depth sequence...
Definition: Dataset.h:949
std::string GetNoiseModelPath() const
Path to the noise model.
Definition: Dataset.h:968
std::string GetPointCloudPath() const
Path to the point cloud.
Definition: Dataset.h:954
std::vector< std::string > GetDepthPaths() const
Paths to the clean depth images.
Definition: Dataset.h:958
std::vector< std::string > GetNoisyDepthPaths() const
Paths to the noisy depth images.
Definition: Dataset.h:960
std::vector< std::string > GetColorPaths() const
Paths to the color images.
Definition: Dataset.h:956
RedwoodIndoorOffice2(const std::string &data_root="")
Definition: RedwoodIndoorOffice2.cpp:35
std::string GetONIPath() const
Paths to the ONI sequence.
Definition: Dataset.h:964
std::string GetTrajectoryPath() const
Path to the ground-truth camera trajectory.
Definition: Dataset.h:966
Data class for SampleFountainRGBDImages contains a sample set of 33 color and depth images from the F...
Definition: Dataset.h:983
std::vector< std::string > GetDepthPaths() const
Returns List of paths to depth image samples of size 33.
Definition: Dataset.h:990
std::string GetKeyframePosesLogPath() const
Path to camera poses at key frames log file key.log.
Definition: Dataset.h:992
SampleFountainRGBDImages(const std::string &data_root="")
Definition: SampleFountainRGBDImages.cpp:21
std::string GetReconstructionPath() const
Path to mesh reconstruction.
Definition: Dataset.h:996
std::vector< std::string > GetColorPaths() const
Returns List of paths to color image samples of size 33.
Definition: Dataset.h:988
Data class for SampleL515Bag contains the SampleL515Bag.bag file.
Definition: Dataset.h:1007
SampleL515Bag(const std::string &data_root="")
Definition: SampleL515Bag.cpp:21
std::string GetPath() const
Path to the SampleL515Bag.bag file.
Definition: Dataset.h:1012
Data class for SampleNYURGBDImage contains a color image NYU_color.ppm and a depth image NYU_depth....
Definition: Dataset.h:1023
std::string GetDepthPath() const
Path to depth image sample.
Definition: Dataset.h:1030
SampleNYURGBDImage(const std::string &data_root="")
Definition: SampleNYURGBDImage.cpp:21
std::string GetColorPath() const
Path to color image sample.
Definition: Dataset.h:1028
Data class for SampleRedwoodRGBDImages contains a sample set of 5 color and depth images from Redwood...
Definition: Dataset.h:1044
std::string GetOdometryLogPath() const
Path to camera trajectory log file odometry.log.
Definition: Dataset.h:1056
std::vector< std::string > GetColorPaths() const
Returns List of paths to color image samples of size 5.
Definition: Dataset.h:1049
std::vector< std::string > GetDepthPaths() const
Returns List of paths to depth image samples of size 5.
Definition: Dataset.h:1051
std::string GetTrajectoryLogPath() const
Path to camera trajectory log file trajectory.log.
Definition: Dataset.h:1054
SampleRedwoodRGBDImages(const std::string &data_root="")
Definition: SampleRedwoodRGBDImages.cpp:21
std::string GetReconstructionPath() const
Path to point cloud reconstruction from TSDF.
Definition: Dataset.h:1060
std::string GetCameraIntrinsicPath() const
Path to pinhole camera intrinsic (json).
Definition: Dataset.h:1062
std::string GetRGBDMatchPath() const
Path to color and depth image match file rgbd.match.
Definition: Dataset.h:1058
Data class for SampleSUNRGBDImage contains a color image SUN_color.jpg and a depth image SUN_depth....
Definition: Dataset.h:1088
std::string GetDepthPath() const
Path to depth image sample.
Definition: Dataset.h:1095
SampleSUNRGBDImage(const std::string &data_root="")
Definition: SampleSUNRGBDImage.cpp:21
std::string GetColorPath() const
Path to color image sample.
Definition: Dataset.h:1093
Data class for SampleTUMRGBDImage contains a color image TUM_color.png and a depth image TUM_depth....
Definition: Dataset.h:1108
std::string GetDepthPath() const
Path to depth image sample.
Definition: Dataset.h:1115
std::string GetColorPath() const
Path to color image sample.
Definition: Dataset.h:1113
SampleTUMRGBDImage(const std::string &data_root="")
Definition: SampleTUMRGBDImage.cpp:21
Data class for SwordModel contains a sword model file, along with material and various other texture ...
Definition: Dataset.h:1130
std::string GetPath(const std::string filename="sword_model") const
Path to the filename. By default it returns the path to sword.obj file. Refer documentation page for ...
Definition: Dataset.h:1137
std::unordered_map< std::string, std::string > GetPathMap() const
Returns the map of filename to path. Refer documentation page for available options.
Definition: Dataset.h:1143
SwordModel(const std::string &data_root="")
Definition: SwordModel.cpp:21
Data class for TerrazzoTexture contains albedo, normal and roughness texture files for terrazzo based...
Definition: Dataset.h:1155
TerrazzoTexture(const std::string &data_root="")
Definition: TerrazzoTexture.cpp:21
std::string GetRoughnessTexturePath() const
Returns the path to roughness texture image.
Definition: Dataset.h:1167
std::unordered_map< std::string, std::string > GetPathMap() const
Returns the map of filename to path. Refer documentation page for available options.
Definition: Dataset.h:1172
std::string GetAlbedoTexturePath() const
Returns the path to albedo color texture image.
Definition: Dataset.h:1159
std::string GetNormalTexturePath() const
Returns the path to normal texture image.
Definition: Dataset.h:1163
Data class for TilesTexture contains albedo, normal and roughness texture files for tiles based mater...
Definition: Dataset.h:1184
std::string GetAlbedoTexturePath() const
Returns the path to albedo color texture image.
Definition: Dataset.h:1188
TilesTexture(const std::string &data_root="")
Definition: TilesTexture.cpp:21
std::string GetNormalTexturePath() const
Returns the path to normal texture image.
Definition: Dataset.h:1192
std::string GetRoughnessTexturePath() const
Returns the path to roughness texture image.
Definition: Dataset.h:1196
std::unordered_map< std::string, std::string > GetPathMap() const
Returns the map of filename to path. Refer documentation page for available options.
Definition: Dataset.h:1201
Data class for WoodFloorTexture contains albedo, normal and roughness texture files for wooden floor ...
Definition: Dataset.h:1213
std::string GetNormalTexturePath() const
Returns the path to normal texture image.
Definition: Dataset.h:1221
WoodFloorTexture(const std::string &data_root="")
Definition: WoodFloorTexture.cpp:21
std::string GetRoughnessTexturePath() const
Returns the path to roughness texture image.
Definition: Dataset.h:1225
std::string GetAlbedoTexturePath() const
Returns the path to albedo color texture image.
Definition: Dataset.h:1217
std::unordered_map< std::string, std::string > GetPathMap() const
Returns the map of filename to path. Refer documentation page for available options.
Definition: Dataset.h:1230
Data class for WoodTexture contains albedo, normal and roughness texture files for wood based materia...
Definition: Dataset.h:1242
WoodTexture(const std::string &data_root="")
Definition: WoodTexture.cpp:21
std::unordered_map< std::string, std::string > GetPathMap() const
Returns the map of filename to path. Refer documentation page for available options.
Definition: Dataset.h:1259
std::string GetNormalTexturePath() const
Returns the path to normal texture image.
Definition: Dataset.h:1250
std::string GetRoughnessTexturePath() const
Returns the path to roughness texture image.
Definition: Dataset.h:1254
std::string GetAlbedoTexturePath() const
Returns the path to albedo color texture image.
Definition: Dataset.h:1246
std::string Open3DDownloadsPrefix()
Definition: Dataset.cpp:31
std::string LocateDataRoot()
Definition: Dataset.cpp:20
const char const char value recording_handle imu_sample recording_handle uint8_t size_t data_size k4a_record_configuration_t config target_format k4a_capture_t capture_handle k4a_imu_sample_t imu_sample playback_handle k4a_logging_message_cb_t void min_level device_handle k4a_imu_sample_t timeout_in_ms capture_handle capture_handle capture_handle image_handle temperature_c k4a_image_t image_handle uint8_t image_handle image_handle image_handle image_handle image_handle timestamp_usec white_balance image_handle k4a_device_configuration_t config device_handle char size_t serial_number_size bool int32_t int32_t int32_t int32_t k4a_color_control_mode_t default_mode value const const k4a_calibration_t calibration char size_t
Definition: K4aPlugin.cpp:719
const char const char value recording_handle imu_sample recording_handle uint8_t data
Definition: K4aPlugin.cpp:269
const char const char value recording_handle imu_sample recording_handle uint8_t size_t data_size k4a_record_configuration_t config target_format k4a_capture_t capture_handle k4a_imu_sample_t imu_sample playback_handle k4a_logging_message_cb_t void min_level device_handle k4a_imu_sample_t timeout_in_ms capture_handle capture_handle capture_handle image_handle temperature_c k4a_image_t image_handle uint8_t image_handle image_handle image_handle image_handle image_handle timestamp_usec white_balance image_handle k4a_device_configuration_t config device_handle char size_t serial_number_size bool int32_t int32_t int32_t int32_t k4a_color_control_mode_t default_mode value const const k4a_calibration_t calibration char const const k4a_calibration_t calibration const k4a_calibration_t calibration
Definition: K4aPlugin.cpp:745
Definition: PinholeCameraIntrinsic.cpp:16
Definition: Device.h:107
Infomation about a file to be downloaded.
Definition: Dataset.h:108
std::vector< std::string > urls_
List of URL mirrors.
Definition: Dataset.h:131
std::string md5_
MD5 checksum of the downloaded file.
Definition: Dataset.h:134
DataDescriptor(const std::string &url, const std::string &md5, const std::string &extract_in_subdir="")
Constructor a download url.
Definition: Dataset.h:124
DataDescriptor(const std::vector< std::string > &urls, const std::string &md5, const std::string &extract_in_subdir="")
Constructor a list of url mirrors.
Definition: Dataset.h:114
std::string extract_in_subdir_
Definition: Dataset.h:138