Open3D (C++ API)  0.17.0
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 namespace open3d {
16 namespace data {
17 
22 std::string LocateDataRoot();
23 
27 std::string Open3DDownloadsPrefix();
28 
56 class Dataset {
57 public:
70  Dataset(const std::string& prefix, const std::string& data_root = "");
71 
72  virtual ~Dataset() {}
73 
76  const std::string GetDataRoot() const { return data_root_; }
77 
79  const std::string GetPrefix() const { return prefix_; }
80 
83  const std::string GetDownloadDir() const {
84  return GetDataRoot() + "/download/" + GetPrefix();
85  }
86 
89  const std::string GetExtractDir() const {
90  return GetDataRoot() + "/extract/" + GetPrefix();
91  }
92 
93 protected:
95  std::string data_root_;
96 
98  std::string prefix_;
99 
101  void CheckPathsExist(const std::vector<std::string>& paths) const;
102 };
103 
112  DataDescriptor(const std::vector<std::string>& urls,
113  const std::string& md5,
114  const std::string& extract_in_subdir = "")
115  : urls_(urls), md5_(md5), extract_in_subdir_(extract_in_subdir) {}
116 
122  DataDescriptor(const std::string& url,
123  const std::string& md5,
124  const std::string& extract_in_subdir = "")
125  : DataDescriptor(
126  std::vector<std::string>{url}, md5, extract_in_subdir) {}
127 
129  std::vector<std::string> urls_;
130 
132  std::string md5_;
133 
136  std::string extract_in_subdir_ = "";
137 };
138 
147 class DownloadDataset : public Dataset {
148 public:
149  DownloadDataset(const std::string& prefix,
150  const DataDescriptor& data_descriptor,
151  const std::string& data_root = "");
152 
153  DownloadDataset(const std::string& prefix,
154  const std::vector<DataDescriptor>& data_descriptors,
155  const std::string& data_root = "");
156 
157  virtual ~DownloadDataset() {}
158 
159 protected:
161  bool HasDownloaded(const DataDescriptor& data_descriptor) const;
162  std::vector<DataDescriptor> data_descriptors_;
163 };
164 
169 public:
170  ArmadilloMesh(const std::string& data_root = "");
171 
173  std::string GetPath() const { return path_; }
174 
175 private:
177  std::string path_;
178 };
179 
184 public:
185  AvocadoModel(const std::string& data_root = "");
186 
188  std::string GetPath() const { return path_; }
189 
190 private:
192  std::string path_;
193 };
194 
200 public:
201  BedroomRGBDImages(const std::string& data_root = "");
202 
204  std::vector<std::string> GetColorPaths() const { return color_paths_; }
206  std::vector<std::string> GetDepthPaths() const { return depth_paths_; }
207 
210  std::string GetTrajectoryLogPath() const { return trajectory_log_path_; }
212  std::string GetReconstructionPath() const { return reconstruction_path_; }
213 
214 private:
216  std::vector<std::string> color_paths_;
218  std::vector<std::string> depth_paths_;
219 
221  std::string trajectory_log_path_;
223  std::string reconstruction_path_;
224 };
225 
229 class BunnyMesh : public DownloadDataset {
230 public:
231  BunnyMesh(const std::string& data_root = "");
232 
234  std::string GetPath() const { return path_; }
235 
236 private:
238  std::string path_;
239 };
240 
247 class CrateModel : public DownloadDataset {
248 public:
249  CrateModel(const std::string& data_root = "");
250 
253  std::string GetPath(const std::string filename = "crate_model") const {
254  return map_filename_to_path_.at(filename);
255  }
256 
259  std::unordered_map<std::string, std::string> GetPathMap() const {
260  return map_filename_to_path_;
261  }
262 
263 private:
265  std::unordered_map<std::string, std::string> map_filename_to_path_;
266 };
267 
272 public:
273  DamagedHelmetModel(const std::string& data_root = "");
274 
276  std::string GetPath() const { return path_; }
277 
278 private:
280  std::string path_;
281 };
282 
289 public:
290  DemoColoredICPPointClouds(const std::string& data_root = "");
291 
293  std::vector<std::string> GetPaths() const { return paths_; }
296  std::string GetPaths(size_t index) const;
297 
298 private:
299  // List of path to PCD point-cloud fragments.
300  std::vector<std::string> paths_;
301 };
302 
309 public:
310  DemoCropPointCloud(const std::string& data_root = "");
311 
313  std::string GetPointCloudPath() const { return point_cloud_path_; }
315  std::string GetCroppedJSONPath() const { return cropped_json_path_; }
316 
317 private:
318  // Path to example point cloud.
319  std::string point_cloud_path_;
320  // Path to saved selected polygon volume file.
321  std::string cropped_json_path_;
322 };
323 
330 public:
331  DemoCustomVisualization(const std::string& data_root = "");
332 
334  std::string GetPointCloudPath() const { return point_cloud_path_; }
336  std::string GetTrajectoryPath() const { return camera_trajectory_path_; }
338  std::string GetRenderOptionPath() const { return render_option_path_; }
339 
340 private:
341  std::string point_cloud_path_;
342  std::string camera_trajectory_path_;
343  std::string render_option_path_;
344 };
345 
352 public:
353  DemoFeatureMatchingPointClouds(const std::string& data_root = "");
354 
356  std::vector<std::string> GetPointCloudPaths() const {
357  return point_cloud_paths_;
358  }
361  std::vector<std::string> GetFPFHFeaturePaths() const {
362  return fpfh_feature_paths_;
363  }
366  std::vector<std::string> GetL32DFeaturePaths() const {
367  return l32d_feature_paths_;
368  }
369 
370 private:
372  std::vector<std::string> point_cloud_paths_;
375  std::vector<std::string> fpfh_feature_paths_;
378  std::vector<std::string> l32d_feature_paths_;
379 };
380 
386 public:
387  DemoICPPointClouds(const std::string& data_root = "");
388 
390  std::vector<std::string> GetPaths() const { return paths_; }
393  std::string GetPaths(size_t index) const;
396  std::string GetTransformationLogPath() const {
397  return transformation_log_path_;
398  }
399 
400 private:
401  // List of path to PCD point-cloud fragments.
402  std::vector<std::string> paths_;
403  std::string transformation_log_path_;
404 };
405 
411 public:
412  DemoPoseGraphOptimization(const std::string& data_root = "");
413 
415  std::string GetPoseGraphFragmentPath() const {
416  return pose_graph_fragment_path_;
417  }
419  std::string GetPoseGraphGlobalPath() const {
420  return pose_graph_global_path_;
421  }
422 
423 private:
425  std::string pose_graph_fragment_path_;
427  std::string pose_graph_global_path_;
428 };
429 
434 public:
435  EaglePointCloud(const std::string& data_root = "");
436 
438  std::string GetPath() const { return path_; }
439 
440 private:
442  std::string path_;
443 };
444 
452 public:
453  FlightHelmetModel(const std::string& data_root = "");
454 
458  std::string GetPath(const std::string filename = "flight_helmet") const {
459  return map_filename_to_path_.at(filename);
460  }
461 
464  std::unordered_map<std::string, std::string> GetPathMap() const {
465  return map_filename_to_path_;
466  }
467 
468 private:
470  std::unordered_map<std::string, std::string> map_filename_to_path_;
471 };
472 
477 public:
478  JackJackL515Bag(const std::string& data_root = "");
479 
481  std::string GetPath() const { return path_; }
482 
483 private:
485  std::string path_;
486 };
487 
490 class JuneauImage : public DownloadDataset {
491 public:
492  JuneauImage(const std::string& data_root = "");
493 
495  std::string GetPath() const { return path_; }
496 
497 private:
499  std::string path_;
500 };
501 
504 class KnotMesh : public DownloadDataset {
505 public:
506  KnotMesh(const std::string& data_root = "");
507 
509  std::string GetPath() const { return path_; }
510 
511 private:
513  std::string path_;
514 };
515 
521 public:
522  LivingRoomPointClouds(const std::string& data_root = "");
523 
525  std::vector<std::string> GetPaths() const { return paths_; }
529  std::string GetPaths(size_t index) const;
530 
531 private:
533  std::vector<std::string> paths_;
534 };
535 
541 public:
542  LoungeRGBDImages(const std::string& data_root = "");
543 
545  std::vector<std::string> GetColorPaths() const { return color_paths_; }
547  std::vector<std::string> GetDepthPaths() const { return depth_paths_; }
548 
551  std::string GetTrajectoryLogPath() const { return trajectory_log_path_; }
553  std::string GetReconstructionPath() const { return reconstruction_path_; }
554 
555 private:
557  std::vector<std::string> color_paths_;
559  std::vector<std::string> depth_paths_;
560 
562  std::string trajectory_log_path_;
564  std::string reconstruction_path_;
565 };
566 
571 public:
572  MetalTexture(const std::string& data_root = "");
574  std::string GetAlbedoTexturePath() const {
575  return map_filename_to_path_.at("albedo");
576  }
578  std::string GetNormalTexturePath() const {
579  return map_filename_to_path_.at("normal");
580  }
582  std::string GetRoughnessTexturePath() const {
583  return map_filename_to_path_.at("roughness");
584  }
586  std::string GetMetallicTexturePath() const {
587  return map_filename_to_path_.at("metallic");
588  }
591  std::unordered_map<std::string, std::string> GetPathMap() const {
592  return map_filename_to_path_;
593  }
594 
595 private:
597  std::unordered_map<std::string, std::string> map_filename_to_path_;
598 };
599 
606 class MonkeyModel : public DownloadDataset {
607 public:
608  MonkeyModel(const std::string& data_root = "");
609 
612  std::string GetPath(const std::string filename = "monkey_model") const {
613  return map_filename_to_path_.at(filename);
614  }
615 
618  std::unordered_map<std::string, std::string> GetPathMap() const {
619  return map_filename_to_path_;
620  }
621 
622 private:
624  std::unordered_map<std::string, std::string> map_filename_to_path_;
625 };
626 
632 public:
633  OfficePointClouds(const std::string& data_root = "");
634 
636  std::vector<std::string> GetPaths() const { return paths_; }
640  std::string GetPaths(size_t index) const;
641 
642 private:
644  std::vector<std::string> paths_;
645 };
646 
651 public:
652  PCDPointCloud(const std::string& data_root = "");
653 
655  std::string GetPath() const { return path_; }
656 
657 private:
659  std::string path_;
660 };
661 
666 public:
667  PLYPointCloud(const std::string& data_root = "");
668 
670  std::string GetPath() const { return path_; }
671 
672 private:
674  std::string path_;
675 };
676 
681 public:
682  PTSPointCloud(const std::string& data_root = "");
683 
685  std::string GetPath() const { return path_; }
686 
687 private:
689  std::string path_;
690 };
691 
696 public:
697  PaintedPlasterTexture(const std::string& data_root = "");
699  std::string GetAlbedoTexturePath() const {
700  return map_filename_to_path_.at("albedo");
701  }
703  std::string GetNormalTexturePath() const {
704  return map_filename_to_path_.at("normal");
705  }
707  std::string GetRoughnessTexturePath() const {
708  return map_filename_to_path_.at("roughness");
709  }
712  std::unordered_map<std::string, std::string> GetPathMap() const {
713  return map_filename_to_path_;
714  }
715 
716 private:
718  std::unordered_map<std::string, std::string> map_filename_to_path_;
719 };
720 
747 public:
748  RedwoodIndoorLivingRoom1(const std::string& data_root = "");
749 
751  std::string GetPointCloudPath() const { return point_cloud_path_; }
753  std::vector<std::string> GetColorPaths() const { return color_paths_; }
755  std::vector<std::string> GetDepthPaths() const { return depth_paths_; }
757  std::vector<std::string> GetNoisyDepthPaths() const {
758  return noisy_depth_paths_;
759  }
761  std::string GetONIPath() const { return oni_path_; }
763  std::string GetTrajectoryPath() const { return trajectory_path_; }
765  std::string GetNoiseModelPath() const { return noise_model_path_; }
766 
767 private:
768  std::string point_cloud_path_;
769  std::vector<std::string> color_paths_;
770  std::vector<std::string> depth_paths_;
771  std::vector<std::string> noisy_depth_paths_;
772  std::string oni_path_;
773  std::string trajectory_path_;
774  std::string noise_model_path_;
775 };
776 
803 public:
804  RedwoodIndoorLivingRoom2(const std::string& data_root = "");
805 
807  std::string GetPointCloudPath() const { return point_cloud_path_; }
809  std::vector<std::string> GetColorPaths() const { return color_paths_; }
811  std::vector<std::string> GetDepthPaths() const { return depth_paths_; }
813  std::vector<std::string> GetNoisyDepthPaths() const {
814  return noisy_depth_paths_;
815  }
817  std::string GetONIPath() const { return oni_path_; }
819  std::string GetTrajectoryPath() const { return trajectory_path_; }
821  std::string GetNoiseModelPath() const { return noise_model_path_; }
822 
823 private:
824  std::string point_cloud_path_;
825  std::vector<std::string> color_paths_;
826  std::vector<std::string> depth_paths_;
827  std::vector<std::string> noisy_depth_paths_;
828  std::string oni_path_;
829  std::string trajectory_path_;
830  std::string noise_model_path_;
831 };
832 
859 public:
860  RedwoodIndoorOffice1(const std::string& data_root = "");
861 
863  std::string GetPointCloudPath() const { return point_cloud_path_; }
865  std::vector<std::string> GetColorPaths() const { return color_paths_; }
867  std::vector<std::string> GetDepthPaths() const { return depth_paths_; }
869  std::vector<std::string> GetNoisyDepthPaths() const {
870  return noisy_depth_paths_;
871  }
873  std::string GetONIPath() const { return oni_path_; }
875  std::string GetTrajectoryPath() const { return trajectory_path_; }
877  std::string GetNoiseModelPath() const { return noise_model_path_; }
878 
879 private:
880  std::string point_cloud_path_;
881  std::vector<std::string> color_paths_;
882  std::vector<std::string> depth_paths_;
883  std::vector<std::string> noisy_depth_paths_;
884  std::string oni_path_;
885  std::string trajectory_path_;
886  std::string noise_model_path_;
887 };
888 
915 public:
916  RedwoodIndoorOffice2(const std::string& data_root = "");
917 
919  std::string GetPointCloudPath() const { return point_cloud_path_; }
921  std::vector<std::string> GetColorPaths() const { return color_paths_; }
923  std::vector<std::string> GetDepthPaths() const { return depth_paths_; }
925  std::vector<std::string> GetNoisyDepthPaths() const {
926  return noisy_depth_paths_;
927  }
929  std::string GetONIPath() const { return oni_path_; }
931  std::string GetTrajectoryPath() const { return trajectory_path_; }
933  std::string GetNoiseModelPath() const { return noise_model_path_; }
934 
935 private:
936  std::string point_cloud_path_;
937  std::vector<std::string> color_paths_;
938  std::vector<std::string> depth_paths_;
939  std::vector<std::string> noisy_depth_paths_;
940  std::string oni_path_;
941  std::string trajectory_path_;
942  std::string noise_model_path_;
943 };
944 
949 public:
950  SampleFountainRGBDImages(const std::string& data_root = "");
951 
953  std::vector<std::string> GetColorPaths() const { return color_paths_; }
955  std::vector<std::string> GetDepthPaths() const { return depth_paths_; }
957  std::string GetKeyframePosesLogPath() const {
958  return keyframe_poses_log_path_;
959  }
961  std::string GetReconstructionPath() const { return reconstruction_path_; }
962 
963 private:
964  std::vector<std::string> color_paths_;
965  std::vector<std::string> depth_paths_;
966  std::string keyframe_poses_log_path_;
967  std::string reconstruction_path_;
968 };
969 
973 public:
974  SampleL515Bag(const std::string& data_root = "");
975 
977  std::string GetPath() const { return path_; }
978 
979 private:
981  std::string path_;
982 };
983 
989 public:
990  SampleNYURGBDImage(const std::string& data_root = "");
991 
993  std::string GetColorPath() const { return color_path_; }
995  std::string GetDepthPath() const { return depth_path_; }
996 
997 private:
999  std::string color_path_;
1001  std::string depth_path_;
1002 };
1003 
1007 // Additionally it also contains camera trajectory log, camera odometry log,
1008 // rgbd match, and point cloud reconstruction obtained using TSDF.
1010 public:
1011  SampleRedwoodRGBDImages(const std::string& data_root = "");
1012 
1014  std::vector<std::string> GetColorPaths() const { return color_paths_; }
1016  std::vector<std::string> GetDepthPaths() const { return depth_paths_; }
1017 
1019  std::string GetTrajectoryLogPath() const { return trajectory_log_path_; }
1021  std::string GetOdometryLogPath() const { return odometry_log_path_; }
1023  std::string GetRGBDMatchPath() const { return rgbd_match_path_; }
1025  std::string GetReconstructionPath() const { return reconstruction_path_; }
1027  std::string GetCameraIntrinsicPath() const {
1028  return camera_intrinsic_path_;
1029  }
1030 
1031 private:
1033  std::vector<std::string> color_paths_;
1035  std::vector<std::string> depth_paths_;
1036 
1038  std::string trajectory_log_path_;
1040  std::string odometry_log_path_;
1042  std::string rgbd_match_path_;
1044  std::string reconstruction_path_;
1046  std::string camera_intrinsic_path_;
1047 };
1048 
1054 public:
1055  SampleSUNRGBDImage(const std::string& data_root = "");
1056 
1058  std::string GetColorPath() const { return color_path_; }
1060  std::string GetDepthPath() const { return depth_path_; }
1061 
1062 private:
1064  std::string color_path_;
1066  std::string depth_path_;
1067 };
1068 
1074 public:
1075  SampleTUMRGBDImage(const std::string& data_root = "");
1076 
1078  std::string GetColorPath() const { return color_path_; }
1080  std::string GetDepthPath() const { return depth_path_; }
1081 
1082 private:
1084  std::string color_path_;
1086  std::string depth_path_;
1087 };
1088 
1095 class SwordModel : public DownloadDataset {
1096 public:
1097  SwordModel(const std::string& data_root = "");
1098 
1102  std::string GetPath(const std::string filename = "sword_model") const {
1103  return map_filename_to_path_.at(filename);
1104  }
1105 
1108  std::unordered_map<std::string, std::string> GetPathMap() const {
1109  return map_filename_to_path_;
1110  }
1111 
1112 private:
1114  std::unordered_map<std::string, std::string> map_filename_to_path_;
1115 };
1116 
1121 public:
1122  TerrazzoTexture(const std::string& data_root = "");
1124  std::string GetAlbedoTexturePath() const {
1125  return map_filename_to_path_.at("albedo");
1126  }
1128  std::string GetNormalTexturePath() const {
1129  return map_filename_to_path_.at("normal");
1130  }
1132  std::string GetRoughnessTexturePath() const {
1133  return map_filename_to_path_.at("roughness");
1134  }
1137  std::unordered_map<std::string, std::string> GetPathMap() const {
1138  return map_filename_to_path_;
1139  }
1140 
1141 private:
1143  std::unordered_map<std::string, std::string> map_filename_to_path_;
1144 };
1145 
1150 public:
1151  TilesTexture(const std::string& data_root = "");
1153  std::string GetAlbedoTexturePath() const {
1154  return map_filename_to_path_.at("albedo");
1155  }
1157  std::string GetNormalTexturePath() const {
1158  return map_filename_to_path_.at("normal");
1159  }
1161  std::string GetRoughnessTexturePath() const {
1162  return map_filename_to_path_.at("roughness");
1163  }
1166  std::unordered_map<std::string, std::string> GetPathMap() const {
1167  return map_filename_to_path_;
1168  }
1169 
1170 private:
1172  std::unordered_map<std::string, std::string> map_filename_to_path_;
1173 };
1174 
1179 public:
1180  WoodFloorTexture(const std::string& data_root = "");
1182  std::string GetAlbedoTexturePath() const {
1183  return map_filename_to_path_.at("albedo");
1184  }
1186  std::string GetNormalTexturePath() const {
1187  return map_filename_to_path_.at("normal");
1188  }
1190  std::string GetRoughnessTexturePath() const {
1191  return map_filename_to_path_.at("roughness");
1192  }
1195  std::unordered_map<std::string, std::string> GetPathMap() const {
1196  return map_filename_to_path_;
1197  }
1198 
1199 private:
1201  std::unordered_map<std::string, std::string> map_filename_to_path_;
1202 };
1203 
1208 public:
1209  WoodTexture(const std::string& data_root = "");
1211  std::string GetAlbedoTexturePath() const {
1212  return map_filename_to_path_.at("albedo");
1213  }
1215  std::string GetNormalTexturePath() const {
1216  return map_filename_to_path_.at("normal");
1217  }
1219  std::string GetRoughnessTexturePath() const {
1220  return map_filename_to_path_.at("roughness");
1221  }
1224  std::unordered_map<std::string, std::string> GetPathMap() const {
1225  return map_filename_to_path_;
1226  }
1227 
1228 private:
1230  std::unordered_map<std::string, std::string> map_filename_to_path_;
1231 };
1232 
1233 } // namespace data
1234 } // namespace open3d
Data class for ArmadilloMesh contains the ArmadilloMesh.ply from the Stanford 3D Scanning Repository.
Definition: Dataset.h:168
ArmadilloMesh(const std::string &data_root="")
Definition: ArmadilloMesh.cpp:21
std::string GetPath() const
Path to the ArmadilloMesh.ply file.
Definition: Dataset.h:173
Data class for AvocadoModel contains a avocado model file, along with material and PNG format embedde...
Definition: Dataset.h:183
AvocadoModel(const std::string &data_root="")
Definition: AvocadoModel.cpp:21
std::string GetPath() const
Path to the GLB format avocado model.
Definition: Dataset.h:188
Data class for BedroomRGBDImages contains a sample set of 21931 color and depth images from Redwood R...
Definition: Dataset.h:199
std::vector< std::string > GetDepthPaths() const
Returns List of paths to depth image samples of size 21931.
Definition: Dataset.h:206
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:204
std::string GetReconstructionPath() const
Path to mesh reconstruction bedroom.ply.
Definition: Dataset.h:212
std::string GetTrajectoryLogPath() const
Path to camera trajectory log file lounge_trajectory.log.
Definition: Dataset.h:210
Data class for BunnyMesh contains the BunnyMesh.ply from the Stanford 3D Scanning Repository.
Definition: Dataset.h:229
std::string GetPath() const
Path to the BunnyMesh.ply file.
Definition: Dataset.h:234
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:247
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:253
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:259
Data class for DamagedHelmetModel contains a damaged helmet model file, along with material and JPG f...
Definition: Dataset.h:271
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:276
Base Open3D dataset class.
Definition: Dataset.h:56
std::string prefix_
Dataset prefix.
Definition: Dataset.h:98
virtual ~Dataset()
Definition: Dataset.h:72
const std::string GetExtractDir() const
Get absolute path to extract directory. i.e. ${data_root}/extract/${prefix}.
Definition: Dataset.h:89
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:95
const std::string GetPrefix() const
Get prefix for the dataset.
Definition: Dataset.h:79
const std::string GetDownloadDir() const
Get absolute path to download directory. i.e. ${data_root}/download/${prefix}.
Definition: Dataset.h:83
const std::string GetDataRoot() const
Get data root directory. The data root is set at construction time or automatically determined.
Definition: Dataset.h:76
Data class for DemoColoredICPPointClouds contains 2 point clouds of PLY format. This data is used in ...
Definition: Dataset.h:288
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:293
Data class for DemoCropPointCloud contains a point cloud, and cropped.json (a saved selected polygon ...
Definition: Dataset.h:308
DemoCropPointCloud(const std::string &data_root="")
Definition: DemoCropPointCloud.cpp:21
std::string GetPointCloudPath() const
Path to example point cloud.
Definition: Dataset.h:313
std::string GetCroppedJSONPath() const
Path to saved selected polygon volume file.
Definition: Dataset.h:315
Data class for DemoCustomVisualization contains an example point-cloud, camera trajectory (json file)...
Definition: Dataset.h:329
std::string GetTrajectoryPath() const
Path to the camera_trajectory.json.
Definition: Dataset.h:336
std::string GetPointCloudPath() const
Path to the point cloud (ply).
Definition: Dataset.h:334
DemoCustomVisualization(const std::string &data_root="")
Definition: DemoCustomVisualization.cpp:21
std::string GetRenderOptionPath() const
Path to the renderoption.json.
Definition: Dataset.h:338
Data class for DemoFeatureMatchingPointClouds contains 2 point cloud fragments and their respective F...
Definition: Dataset.h:351
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:366
std::vector< std::string > GetPointCloudPaths() const
Returns list of paths to point clouds, of size 2.
Definition: Dataset.h:356
std::vector< std::string > GetFPFHFeaturePaths() const
Returns list of paths to saved FPFH features binary for point clouds, respectively,...
Definition: Dataset.h:361
Data class for DemoICPPointClouds contains 3 point clouds of binary PCD format. This data is used in ...
Definition: Dataset.h:385
std::string GetTransformationLogPath() const
Path to the transformation metadata log file, containing transformation between frame 0 and 1,...
Definition: Dataset.h:396
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:390
Data class for DemoPoseGraphOptimization contains an example fragment pose graph, and global pose gra...
Definition: Dataset.h:410
std::string GetPoseGraphFragmentPath() const
Path to example global pose graph (json).
Definition: Dataset.h:415
std::string GetPoseGraphGlobalPath() const
Path to example fragment pose graph (json).
Definition: Dataset.h:419
DemoPoseGraphOptimization(const std::string &data_root="")
Definition: DemoPoseGraphOptimization.cpp:21
Dataset class with one or more downloaded file.
Definition: Dataset.h:147
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:157
std::vector< DataDescriptor > data_descriptors_
Definition: Dataset.h:162
Data class for EaglePointCloud contains the EaglePointCloud.ply file.
Definition: Dataset.h:433
std::string GetPath() const
Path to the EaglePointCloud.ply file.
Definition: Dataset.h:438
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:451
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:464
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:458
Data class for JackJackL515Bag contains the RealSense L515 JackJackL515Bag.bag file.
Definition: Dataset.h:476
std::string GetPath() const
Path to the JackJackL515Bag.bag file.
Definition: Dataset.h:481
JackJackL515Bag(const std::string &data_root="")
Definition: JackJackL515Bag.cpp:20
Data class for JuneauImage contains the JuneauImage.jpg file.
Definition: Dataset.h:490
std::string GetPath() const
Path to the JuneauImage.jgp file.
Definition: Dataset.h:495
JuneauImage(const std::string &data_root="")
Definition: JuneauImage.cpp:21
Data class for KnotMesh contains the KnotMesh.ply file.
Definition: Dataset.h:504
KnotMesh(const std::string &data_root="")
Definition: KnotMesh.cpp:21
std::string GetPath() const
Path to the KnotMesh.ply file.
Definition: Dataset.h:509
Dataset class for LivingRoomPointClouds contains 57 point clouds of binary PLY format.
Definition: Dataset.h:520
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:525
Data class for LoungeRGBDImages contains a sample set of 3000 color and depth images from Stanford Lo...
Definition: Dataset.h:540
std::string GetReconstructionPath() const
Path to mesh reconstruction lounge.ply.
Definition: Dataset.h:553
std::vector< std::string > GetDepthPaths() const
Returns List of paths to depth image samples of size 3000.
Definition: Dataset.h:547
std::string GetTrajectoryLogPath() const
Path to camera trajectory log file lounge_trajectory.log.
Definition: Dataset.h:551
std::vector< std::string > GetColorPaths() const
Returns List of paths to color image samples of size 3000.
Definition: Dataset.h:545
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:570
std::string GetNormalTexturePath() const
Returns the path to normal texture image.
Definition: Dataset.h:578
MetalTexture(const std::string &data_root="")
Definition: MetalTexture.cpp:21
std::string GetRoughnessTexturePath() const
Returns the path to roughness texture image.
Definition: Dataset.h:582
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:591
std::string GetAlbedoTexturePath() const
Returns the path to albedo color texture image.
Definition: Dataset.h:574
std::string GetMetallicTexturePath() const
Returns the path to metallic texture image.
Definition: Dataset.h:586
Data class for MonkeyModel contains a monkey model file, along with material and various other textur...
Definition: Dataset.h:606
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:612
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:618
Dataset class for OfficePointClouds contains 53 point clouds of binary PLY format.
Definition: Dataset.h:631
std::vector< std::string > GetPaths() const
Returns list of paths to ply point-cloud fragments of size 52.
Definition: Dataset.h:636
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:650
PCDPointCloud(const std::string &data_root="")
Definition: PCDPointCloud.cpp:21
std::string GetPath() const
Path to the pcd format point cloud.
Definition: Dataset.h:655
Data class for PLYPointCloud contains the fragment.ply point cloud mesh from the Redwood Living Room ...
Definition: Dataset.h:665
PLYPointCloud(const std::string &data_root="")
Definition: PLYPointCloud.cpp:21
std::string GetPath() const
Path to the PLY format point cloud.
Definition: Dataset.h:670
Data class for PTSPointCloud contains a sample point-cloud of PTS format.
Definition: Dataset.h:680
PTSPointCloud(const std::string &data_root="")
Definition: PTSPointCloud.cpp:21
std::string GetPath() const
Path to the PTS format point cloud.
Definition: Dataset.h:685
Data class for PaintedPlasterTexture contains albedo, normal and roughness texture files for painted ...
Definition: Dataset.h:695
std::string GetRoughnessTexturePath() const
Returns the path to roughness texture image.
Definition: Dataset.h:707
std::string GetNormalTexturePath() const
Returns the path to normal texture image.
Definition: Dataset.h:703
std::string GetAlbedoTexturePath() const
Returns the path to albedo color texture image.
Definition: Dataset.h:699
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:712
Data class for RedwoodIndoorLivingRoom1, containing dense point cloud, rgb sequence,...
Definition: Dataset.h:746
std::string GetPointCloudPath() const
Path to the point cloud.
Definition: Dataset.h:751
std::vector< std::string > GetColorPaths() const
Paths to the color images.
Definition: Dataset.h:753
std::string GetONIPath() const
Paths to the ONI sequence.
Definition: Dataset.h:761
std::string GetNoiseModelPath() const
Path to the noise model.
Definition: Dataset.h:765
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:755
std::vector< std::string > GetNoisyDepthPaths() const
Paths to the noisy depth images.
Definition: Dataset.h:757
std::string GetTrajectoryPath() const
Path to the ground-truth camera trajectory.
Definition: Dataset.h:763
Data class for RedwoodIndoorLivingRoom1, containing dense point cloud, rgb sequence,...
Definition: Dataset.h:802
RedwoodIndoorLivingRoom2(const std::string &data_root="")
Definition: RedwoodIndoorLivingRoom2.cpp:36
std::vector< std::string > GetColorPaths() const
Paths to the color images.
Definition: Dataset.h:809
std::string GetPointCloudPath() const
Path to the point cloud.
Definition: Dataset.h:807
std::string GetONIPath() const
Paths to the ONI sequence.
Definition: Dataset.h:817
std::string GetTrajectoryPath() const
Path to the ground-truth camera trajectory.
Definition: Dataset.h:819
std::vector< std::string > GetNoisyDepthPaths() const
Paths to the noisy depth images.
Definition: Dataset.h:813
std::vector< std::string > GetDepthPaths() const
Paths to the clean depth images.
Definition: Dataset.h:811
std::string GetNoiseModelPath() const
Path to the noise model.
Definition: Dataset.h:821
Data class for RedwoodIndoorLivingRoom1, containing dense point cloud, rgb sequence,...
Definition: Dataset.h:858
std::string GetTrajectoryPath() const
Path to the ground-truth camera trajectory.
Definition: Dataset.h:875
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:869
std::vector< std::string > GetColorPaths() const
Paths to the color images.
Definition: Dataset.h:865
std::vector< std::string > GetDepthPaths() const
Paths to the clean depth images.
Definition: Dataset.h:867
std::string GetPointCloudPath() const
Path to the point cloud.
Definition: Dataset.h:863
std::string GetONIPath() const
Paths to the ONI sequence.
Definition: Dataset.h:873
std::string GetNoiseModelPath() const
Path to the noise model.
Definition: Dataset.h:877
Data class for RedwoodIndoorLivingRoom1, containing dense point cloud, rgb sequence,...
Definition: Dataset.h:914
std::string GetNoiseModelPath() const
Path to the noise model.
Definition: Dataset.h:933
std::string GetPointCloudPath() const
Path to the point cloud.
Definition: Dataset.h:919
std::vector< std::string > GetDepthPaths() const
Paths to the clean depth images.
Definition: Dataset.h:923
std::vector< std::string > GetNoisyDepthPaths() const
Paths to the noisy depth images.
Definition: Dataset.h:925
std::vector< std::string > GetColorPaths() const
Paths to the color images.
Definition: Dataset.h:921
RedwoodIndoorOffice2(const std::string &data_root="")
Definition: RedwoodIndoorOffice2.cpp:35
std::string GetONIPath() const
Paths to the ONI sequence.
Definition: Dataset.h:929
std::string GetTrajectoryPath() const
Path to the ground-truth camera trajectory.
Definition: Dataset.h:931
Data class for SampleFountainRGBDImages contains a sample set of 33 color and depth images from the F...
Definition: Dataset.h:948
std::vector< std::string > GetDepthPaths() const
Returns List of paths to depth image samples of size 33.
Definition: Dataset.h:955
std::string GetKeyframePosesLogPath() const
Path to camera poses at key frames log file key.log.
Definition: Dataset.h:957
SampleFountainRGBDImages(const std::string &data_root="")
Definition: SampleFountainRGBDImages.cpp:21
std::string GetReconstructionPath() const
Path to mesh reconstruction.
Definition: Dataset.h:961
std::vector< std::string > GetColorPaths() const
Returns List of paths to color image samples of size 33.
Definition: Dataset.h:953
Data class for SampleL515Bag contains the SampleL515Bag.bag file.
Definition: Dataset.h:972
SampleL515Bag(const std::string &data_root="")
Definition: SampleL515Bag.cpp:21
std::string GetPath() const
Path to the SampleL515Bag.bag file.
Definition: Dataset.h:977
Data class for SampleNYURGBDImage contains a color image NYU_color.ppm and a depth image NYU_depth....
Definition: Dataset.h:988
std::string GetDepthPath() const
Path to depth image sample.
Definition: Dataset.h:995
SampleNYURGBDImage(const std::string &data_root="")
Definition: SampleNYURGBDImage.cpp:21
std::string GetColorPath() const
Path to color image sample.
Definition: Dataset.h:993
Data class for SampleRedwoodRGBDImages contains a sample set of 5 color and depth images from Redwood...
Definition: Dataset.h:1009
std::string GetOdometryLogPath() const
Path to camera trajectory log file odometry.log.
Definition: Dataset.h:1021
std::vector< std::string > GetColorPaths() const
Returns List of paths to color image samples of size 5.
Definition: Dataset.h:1014
std::vector< std::string > GetDepthPaths() const
Returns List of paths to depth image samples of size 5.
Definition: Dataset.h:1016
std::string GetTrajectoryLogPath() const
Path to camera trajectory log file trajectory.log.
Definition: Dataset.h:1019
SampleRedwoodRGBDImages(const std::string &data_root="")
Definition: SampleRedwoodRGBDImages.cpp:21
std::string GetReconstructionPath() const
Path to point cloud reconstruction from TSDF.
Definition: Dataset.h:1025
std::string GetCameraIntrinsicPath() const
Path to pinhole camera intrinsic (json).
Definition: Dataset.h:1027
std::string GetRGBDMatchPath() const
Path to color and depth image match file rgbd.match.
Definition: Dataset.h:1023
Data class for SampleSUNRGBDImage contains a color image SUN_color.jpg and a depth image SUN_depth....
Definition: Dataset.h:1053
std::string GetDepthPath() const
Path to depth image sample.
Definition: Dataset.h:1060
SampleSUNRGBDImage(const std::string &data_root="")
Definition: SampleSUNRGBDImage.cpp:21
std::string GetColorPath() const
Path to color image sample.
Definition: Dataset.h:1058
Data class for SampleTUMRGBDImage contains a color image TUM_color.png and a depth image TUM_depth....
Definition: Dataset.h:1073
std::string GetDepthPath() const
Path to depth image sample.
Definition: Dataset.h:1080
std::string GetColorPath() const
Path to color image sample.
Definition: Dataset.h:1078
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:1095
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:1102
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:1108
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:1120
TerrazzoTexture(const std::string &data_root="")
Definition: TerrazzoTexture.cpp:21
std::string GetRoughnessTexturePath() const
Returns the path to roughness texture image.
Definition: Dataset.h:1132
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:1137
std::string GetAlbedoTexturePath() const
Returns the path to albedo color texture image.
Definition: Dataset.h:1124
std::string GetNormalTexturePath() const
Returns the path to normal texture image.
Definition: Dataset.h:1128
Data class for TilesTexture contains albedo, normal and roughness texture files for tiles based mater...
Definition: Dataset.h:1149
std::string GetAlbedoTexturePath() const
Returns the path to albedo color texture image.
Definition: Dataset.h:1153
TilesTexture(const std::string &data_root="")
Definition: TilesTexture.cpp:21
std::string GetNormalTexturePath() const
Returns the path to normal texture image.
Definition: Dataset.h:1157
std::string GetRoughnessTexturePath() const
Returns the path to roughness texture image.
Definition: Dataset.h:1161
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:1166
Data class for WoodFloorTexture contains albedo, normal and roughness texture files for wooden floor ...
Definition: Dataset.h:1178
std::string GetNormalTexturePath() const
Returns the path to normal texture image.
Definition: Dataset.h:1186
WoodFloorTexture(const std::string &data_root="")
Definition: WoodFloorTexture.cpp:21
std::string GetRoughnessTexturePath() const
Returns the path to roughness texture image.
Definition: Dataset.h:1190
std::string GetAlbedoTexturePath() const
Returns the path to albedo color texture image.
Definition: Dataset.h:1182
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:1195
Data class for WoodTexture contains albedo, normal and roughness texture files for wood based materia...
Definition: Dataset.h:1207
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:1224
std::string GetNormalTexturePath() const
Returns the path to normal texture image.
Definition: Dataset.h:1215
std::string GetRoughnessTexturePath() const
Returns the path to roughness texture image.
Definition: Dataset.h:1219
std::string GetAlbedoTexturePath() const
Returns the path to albedo color texture image.
Definition: Dataset.h:1211
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 data
Definition: K4aPlugin.cpp:269
Definition: PinholeCameraIntrinsic.cpp:16
Definition: Device.h:107
Infomation about a file to be downloaded.
Definition: Dataset.h:106
std::vector< std::string > urls_
List of URL mirrors.
Definition: Dataset.h:129
std::string md5_
MD5 checksum of the downloaded file.
Definition: Dataset.h:132
DataDescriptor(const std::string &url, const std::string &md5, const std::string &extract_in_subdir="")
Constructor a download url.
Definition: Dataset.h:122
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:112
std::string extract_in_subdir_
Definition: Dataset.h:136