ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
Dataset.h
Go to the documentation of this file.
1 // ----------------------------------------------------------------------------
2 // - CloudViewer: www.cloudViewer.org -
3 // ----------------------------------------------------------------------------
4 // Copyright (c) 2018-2024 www.cloudViewer.org
5 // SPDX-License-Identifier: MIT
6 // ----------------------------------------------------------------------------
7 
8 #pragma once
9 
10 #include <Eigen.h>
11 
12 #include <string>
13 #include <unordered_map>
14 #include <utility>
15 #include <vector>
16 
17 namespace cloudViewer {
18 namespace data {
19 
24 std::string LocateDataRoot();
25 
29 std::string CloudViewerDownloadsPrefix();
30 
31 void SetCustomDownloadsPrefix(const std::string& prefix);
32 std::string GetCustomDownloadsPrefix();
33 
61 class Dataset {
62 public:
75  Dataset(const std::string& prefix, const std::string& data_root = "");
76 
77  virtual ~Dataset() {}
78 
81  const std::string GetDataRoot() const { return data_root_; }
82 
84  const std::string GetPrefix() const { return prefix_; }
85 
88  const std::string GetDownloadDir() const {
89  return GetDataRoot() + "/download/" + GetPrefix();
90  }
91 
94  const std::string GetExtractDir() const {
95  return GetDataRoot() + "/extract/" + GetPrefix();
96  }
97 
98 protected:
100  std::string data_root_;
101 
103  std::string prefix_;
104 
106  void CheckPathsExist(const std::vector<std::string>& paths) const;
107 };
108 
117  DataDescriptor(const std::vector<std::string>& urls,
118  const std::string& md5,
119  const std::string& extract_in_subdir = "")
120  : urls_(urls), md5_(md5), extract_in_subdir_(extract_in_subdir) {}
121 
127  DataDescriptor(const std::string& url,
128  const std::string& md5,
129  const std::string& extract_in_subdir = "")
130  : DataDescriptor(
131  std::vector<std::string>{url}, md5, extract_in_subdir) {}
132 
134  std::vector<std::string> urls_;
135 
137  std::string md5_;
138 
141  std::string extract_in_subdir_ = "";
142 };
143 
152 class DownloadDataset : public Dataset {
153 public:
154  DownloadDataset(const std::string& prefix,
156  const std::string& data_root = "");
157 
158  DownloadDataset(const std::string& prefix,
159  const std::vector<DataDescriptor>& data_descriptors,
160  const std::string& data_root = "");
161 
162  virtual ~DownloadDataset() {}
163 
164 protected:
166  bool HasDownloaded(const DataDescriptor& data_descriptor) const;
167  std::vector<DataDescriptor> data_descriptors_;
168 };
169 
174 public:
175  ArmadilloMesh(const std::string& data_root = "");
176 
178  std::string GetPath() const { return path_; }
179 
180 private:
182  std::string path_;
183 };
184 
189 public:
190  AvocadoModel(const std::string& data_root = "");
191 
193  std::string GetPath() const { return path_; }
194 
195 private:
197  std::string path_;
198 };
199 
205 public:
206  BedroomRGBDImages(const std::string& data_root = "");
207 
209  std::vector<std::string> GetColorPaths() const { return color_paths_; }
211  std::vector<std::string> GetDepthPaths() const { return depth_paths_; }
212 
215  std::string GetTrajectoryLogPath() const { return trajectory_log_path_; }
217  std::string GetReconstructionPath() const { return reconstruction_path_; }
218 
219 private:
221  std::vector<std::string> color_paths_;
223  std::vector<std::string> depth_paths_;
224 
226  std::string trajectory_log_path_;
228  std::string reconstruction_path_;
229 };
230 
234 class BunnyMesh : public DownloadDataset {
235 public:
236  BunnyMesh(const std::string& data_root = "");
237 
239  std::string GetPath() const { return path_; }
240 
241 private:
243  std::string path_;
244 };
245 
252 class CrateModel : public DownloadDataset {
253 public:
254  CrateModel(const std::string& data_root = "");
255 
258  std::string GetPath(const std::string filename = "crate_model") const {
259  return map_filename_to_path_.at(filename);
260  }
261 
264  std::unordered_map<std::string, std::string> GetPathMap() const {
265  return map_filename_to_path_;
266  }
267 
268 private:
270  std::unordered_map<std::string, std::string> map_filename_to_path_;
271 };
272 
277 public:
278  DamagedHelmetModel(const std::string& data_root = "");
279 
281  std::string GetPath() const { return path_; }
282 
283 private:
285  std::string path_;
286 };
287 
294 public:
295  DemoColoredICPPointClouds(const std::string& data_root = "");
296 
298  std::vector<std::string> GetPaths() const { return paths_; }
301  std::string GetPaths(size_t index) const;
302 
303 private:
304  // List of path to PCD point-cloud fragments.
305  std::vector<std::string> paths_;
306 };
307 
314 public:
315  DemoCropPointCloud(const std::string& data_root = "");
316 
318  std::string GetPointCloudPath() const { return point_cloud_path_; }
320  std::string GetCroppedJSONPath() const { return cropped_json_path_; }
321 
322 private:
323  // Path to example point cloud.
324  std::string point_cloud_path_;
325  // Path to saved selected polygon volume file.
326  std::string cropped_json_path_;
327 };
328 
335 public:
336  DemoCustomVisualization(const std::string& data_root = "");
337 
339  std::string GetPointCloudPath() const { return point_cloud_path_; }
341  std::string GetTrajectoryPath() const { return camera_trajectory_path_; }
343  std::string GetRenderOptionPath() const { return render_option_path_; }
344 
345 private:
346  std::string point_cloud_path_;
347  std::string camera_trajectory_path_;
348  std::string render_option_path_;
349 };
350 
356 public:
357  DemoDopplerICPSequence(const std::string& data_root = "");
358 
360  std::vector<std::string> GetPaths() const { return paths_; }
362  std::string GetPath(std::size_t index) const;
365  std::string GetCalibrationPath() const { return calibration_path_; }
367  std::string GetTrajectoryPath() const { return trajectory_path_; }
370  bool GetCalibration(Eigen::Matrix4d& calibration, double& period) const;
373  std::vector<std::pair<double, Eigen::Matrix4d>> GetTrajectory() const;
374 
375 private:
377  std::vector<std::string> paths_;
379  std::string calibration_path_;
381  std::string trajectory_path_;
382 };
383 
390 public:
391  DemoFeatureMatchingPointClouds(const std::string& data_root = "");
392 
394  std::vector<std::string> GetPointCloudPaths() const {
395  return point_cloud_paths_;
396  }
399  std::vector<std::string> GetFPFHFeaturePaths() const {
400  return fpfh_feature_paths_;
401  }
404  std::vector<std::string> GetL32DFeaturePaths() const {
405  return l32d_feature_paths_;
406  }
407 
408 private:
410  std::vector<std::string> point_cloud_paths_;
413  std::vector<std::string> fpfh_feature_paths_;
416  std::vector<std::string> l32d_feature_paths_;
417 };
418 
424 public:
425  DemoICPPointClouds(const std::string& data_root = "");
426 
428  std::vector<std::string> GetPaths() const { return paths_; }
431  std::string GetPaths(size_t index) const;
434  std::string GetTransformationLogPath() const {
435  return transformation_log_path_;
436  }
437 
438 private:
439  // List of path to PCD point-cloud fragments.
440  std::vector<std::string> paths_;
441  std::string transformation_log_path_;
442 };
443 
449 public:
450  DemoPoseGraphOptimization(const std::string& data_root = "");
451 
453  std::string GetPoseGraphFragmentPath() const {
454  return pose_graph_fragment_path_;
455  }
457  std::string GetPoseGraphGlobalPath() const {
458  return pose_graph_global_path_;
459  }
460 
461 private:
463  std::string pose_graph_fragment_path_;
465  std::string pose_graph_global_path_;
466 };
467 
472 public:
473  EaglePointCloud(const std::string& data_root = "");
474 
476  std::string GetPath() const { return path_; }
477 
478 private:
480  std::string path_;
481 };
482 
490 public:
491  FlightHelmetModel(const std::string& data_root = "");
492 
496  std::string GetPath(const std::string filename = "flight_helmet") const {
497  return map_filename_to_path_.at(filename);
498  }
499 
502  std::unordered_map<std::string, std::string> GetPathMap() const {
503  return map_filename_to_path_;
504  }
505 
506 private:
508  std::unordered_map<std::string, std::string> map_filename_to_path_;
509 };
510 
515 public:
516  JackJackL515Bag(const std::string& data_root = "");
517 
519  std::string GetPath() const { return path_; }
520 
521 private:
523  std::string path_;
524 };
525 
528 class JuneauImage : public DownloadDataset {
529 public:
530  JuneauImage(const std::string& data_root = "");
531 
533  std::string GetPath() const { return path_; }
534 
535 private:
537  std::string path_;
538 };
539 
542 class KnotMesh : public DownloadDataset {
543 public:
544  KnotMesh(const std::string& data_root = "");
545 
547  std::string GetPath() const { return path_; }
548 
549 private:
551  std::string path_;
552 };
553 
559 public:
560  LivingRoomPointClouds(const std::string& data_root = "");
561 
563  std::vector<std::string> GetPaths() const { return paths_; }
567  std::string GetPaths(size_t index) const;
568 
569 private:
571  std::vector<std::string> paths_;
572 };
573 
579 public:
580  LoungeRGBDImages(const std::string& data_root = "");
581 
583  std::vector<std::string> GetColorPaths() const { return color_paths_; }
585  std::vector<std::string> GetDepthPaths() const { return depth_paths_; }
586 
589  std::string GetTrajectoryLogPath() const { return trajectory_log_path_; }
591  std::string GetReconstructionPath() const { return reconstruction_path_; }
592 
593 private:
595  std::vector<std::string> color_paths_;
597  std::vector<std::string> depth_paths_;
598 
600  std::string trajectory_log_path_;
602  std::string reconstruction_path_;
603 };
604 
609 public:
610  MetalTexture(const std::string& data_root = "");
612  std::string GetAlbedoTexturePath() const {
613  return map_filename_to_path_.at("albedo");
614  }
616  std::string GetNormalTexturePath() const {
617  return map_filename_to_path_.at("normal");
618  }
620  std::string GetRoughnessTexturePath() const {
621  return map_filename_to_path_.at("roughness");
622  }
624  std::string GetMetallicTexturePath() const {
625  return map_filename_to_path_.at("metallic");
626  }
629  std::unordered_map<std::string, std::string> GetPathMap() const {
630  return map_filename_to_path_;
631  }
632 
633 private:
635  std::unordered_map<std::string, std::string> map_filename_to_path_;
636 };
637 
644 class MonkeyModel : public DownloadDataset {
645 public:
646  MonkeyModel(const std::string& data_root = "");
647 
650  std::string GetPath(const std::string filename = "monkey_model") const {
651  return map_filename_to_path_.at(filename);
652  }
653 
656  std::unordered_map<std::string, std::string> GetPathMap() const {
657  return map_filename_to_path_;
658  }
659 
660 private:
662  std::unordered_map<std::string, std::string> map_filename_to_path_;
663 };
664 
670 public:
671  OfficePointClouds(const std::string& data_root = "");
672 
674  std::vector<std::string> GetPaths() const { return paths_; }
678  std::string GetPaths(size_t index) const;
679 
680 private:
682  std::vector<std::string> paths_;
683 };
684 
689 public:
690  PCDPointCloud(const std::string& data_root = "");
691 
693  std::string GetPath() const { return path_; }
694 
695 private:
697  std::string path_;
698 };
699 
704 public:
705  PLYPointCloud(const std::string& data_root = "");
706 
708  std::string GetPath() const { return path_; }
709 
710 private:
712  std::string path_;
713 };
714 
719 public:
720  PTSPointCloud(const std::string& data_root = "");
721 
723  std::string GetPath() const { return path_; }
724 
725 private:
727  std::string path_;
728 };
729 
734 public:
735  PaintedPlasterTexture(const std::string& data_root = "");
737  std::string GetAlbedoTexturePath() const {
738  return map_filename_to_path_.at("albedo");
739  }
741  std::string GetNormalTexturePath() const {
742  return map_filename_to_path_.at("normal");
743  }
745  std::string GetRoughnessTexturePath() const {
746  return map_filename_to_path_.at("roughness");
747  }
750  std::unordered_map<std::string, std::string> GetPathMap() const {
751  return map_filename_to_path_;
752  }
753 
754 private:
756  std::unordered_map<std::string, std::string> map_filename_to_path_;
757 };
758 
785 public:
786  RedwoodIndoorLivingRoom1(const std::string& data_root = "");
787 
789  std::string GetPointCloudPath() const { return point_cloud_path_; }
791  std::vector<std::string> GetColorPaths() const { return color_paths_; }
793  std::vector<std::string> GetDepthPaths() const { return depth_paths_; }
795  std::vector<std::string> GetNoisyDepthPaths() const {
796  return noisy_depth_paths_;
797  }
799  std::string GetONIPath() const { return oni_path_; }
801  std::string GetTrajectoryPath() const { return trajectory_path_; }
803  std::string GetNoiseModelPath() const { return noise_model_path_; }
804 
805 private:
806  std::string point_cloud_path_;
807  std::vector<std::string> color_paths_;
808  std::vector<std::string> depth_paths_;
809  std::vector<std::string> noisy_depth_paths_;
810  std::string oni_path_;
811  std::string trajectory_path_;
812  std::string noise_model_path_;
813 };
814 
841 public:
842  RedwoodIndoorLivingRoom2(const std::string& data_root = "");
843 
845  std::string GetPointCloudPath() const { return point_cloud_path_; }
847  std::vector<std::string> GetColorPaths() const { return color_paths_; }
849  std::vector<std::string> GetDepthPaths() const { return depth_paths_; }
851  std::vector<std::string> GetNoisyDepthPaths() const {
852  return noisy_depth_paths_;
853  }
855  std::string GetONIPath() const { return oni_path_; }
857  std::string GetTrajectoryPath() const { return trajectory_path_; }
859  std::string GetNoiseModelPath() const { return noise_model_path_; }
860 
861 private:
862  std::string point_cloud_path_;
863  std::vector<std::string> color_paths_;
864  std::vector<std::string> depth_paths_;
865  std::vector<std::string> noisy_depth_paths_;
866  std::string oni_path_;
867  std::string trajectory_path_;
868  std::string noise_model_path_;
869 };
870 
897 public:
898  RedwoodIndoorOffice1(const std::string& data_root = "");
899 
901  std::string GetPointCloudPath() const { return point_cloud_path_; }
903  std::vector<std::string> GetColorPaths() const { return color_paths_; }
905  std::vector<std::string> GetDepthPaths() const { return depth_paths_; }
907  std::vector<std::string> GetNoisyDepthPaths() const {
908  return noisy_depth_paths_;
909  }
911  std::string GetONIPath() const { return oni_path_; }
913  std::string GetTrajectoryPath() const { return trajectory_path_; }
915  std::string GetNoiseModelPath() const { return noise_model_path_; }
916 
917 private:
918  std::string point_cloud_path_;
919  std::vector<std::string> color_paths_;
920  std::vector<std::string> depth_paths_;
921  std::vector<std::string> noisy_depth_paths_;
922  std::string oni_path_;
923  std::string trajectory_path_;
924  std::string noise_model_path_;
925 };
926 
953 public:
954  RedwoodIndoorOffice2(const std::string& data_root = "");
955 
957  std::string GetPointCloudPath() const { return point_cloud_path_; }
959  std::vector<std::string> GetColorPaths() const { return color_paths_; }
961  std::vector<std::string> GetDepthPaths() const { return depth_paths_; }
963  std::vector<std::string> GetNoisyDepthPaths() const {
964  return noisy_depth_paths_;
965  }
967  std::string GetONIPath() const { return oni_path_; }
969  std::string GetTrajectoryPath() const { return trajectory_path_; }
971  std::string GetNoiseModelPath() const { return noise_model_path_; }
972 
973 private:
974  std::string point_cloud_path_;
975  std::vector<std::string> color_paths_;
976  std::vector<std::string> depth_paths_;
977  std::vector<std::string> noisy_depth_paths_;
978  std::string oni_path_;
979  std::string trajectory_path_;
980  std::string noise_model_path_;
981 };
982 
987 public:
988  SampleFountainRGBDImages(const std::string& data_root = "");
989 
991  std::vector<std::string> GetColorPaths() const { return color_paths_; }
993  std::vector<std::string> GetDepthPaths() const { return depth_paths_; }
995  std::string GetKeyframePosesLogPath() const {
996  return keyframe_poses_log_path_;
997  }
999  std::string GetReconstructionPath() const { return reconstruction_path_; }
1000 
1001 private:
1002  std::vector<std::string> color_paths_;
1003  std::vector<std::string> depth_paths_;
1004  std::string keyframe_poses_log_path_;
1005  std::string reconstruction_path_;
1006 };
1007 
1011 public:
1012  SampleL515Bag(const std::string& data_root = "");
1013 
1015  std::string GetPath() const { return path_; }
1016 
1017 private:
1019  std::string path_;
1020 };
1021 
1027 public:
1028  SampleNYURGBDImage(const std::string& data_root = "");
1029 
1031  std::string GetColorPath() const { return color_path_; }
1033  std::string GetDepthPath() const { return depth_path_; }
1034 
1035 private:
1037  std::string color_path_;
1039  std::string depth_path_;
1040 };
1041 
1045 // Additionally it also contains camera trajectory log, camera odometry log,
1046 // rgbd match, and point cloud reconstruction obtained using TSDF.
1048 public:
1049  SampleRedwoodRGBDImages(const std::string& data_root = "");
1050 
1052  std::vector<std::string> GetColorPaths() const { return color_paths_; }
1054  std::vector<std::string> GetDepthPaths() const { return depth_paths_; }
1055 
1057  std::string GetTrajectoryLogPath() const { return trajectory_log_path_; }
1059  std::string GetOdometryLogPath() const { return odometry_log_path_; }
1061  std::string GetRGBDMatchPath() const { return rgbd_match_path_; }
1063  std::string GetReconstructionPath() const { return reconstruction_path_; }
1065  std::string GetCameraIntrinsicPath() const {
1066  return camera_intrinsic_path_;
1067  }
1068 
1069 private:
1071  std::vector<std::string> color_paths_;
1073  std::vector<std::string> depth_paths_;
1074 
1076  std::string trajectory_log_path_;
1078  std::string odometry_log_path_;
1080  std::string rgbd_match_path_;
1082  std::string reconstruction_path_;
1084  std::string camera_intrinsic_path_;
1085 };
1086 
1092 public:
1093  SampleSUNRGBDImage(const std::string& data_root = "");
1094 
1096  std::string GetColorPath() const { return color_path_; }
1098  std::string GetDepthPath() const { return depth_path_; }
1099 
1100 private:
1102  std::string color_path_;
1104  std::string depth_path_;
1105 };
1106 
1112 public:
1113  SampleTUMRGBDImage(const std::string& data_root = "");
1114 
1116  std::string GetColorPath() const { return color_path_; }
1118  std::string GetDepthPath() const { return depth_path_; }
1119 
1120 private:
1122  std::string color_path_;
1124  std::string depth_path_;
1125 };
1126 
1133 class SwordModel : public DownloadDataset {
1134 public:
1135  SwordModel(const std::string& data_root = "");
1136 
1140  std::string GetPath(const std::string filename = "sword_model") const {
1141  return map_filename_to_path_.at(filename);
1142  }
1143 
1146  std::unordered_map<std::string, std::string> GetPathMap() const {
1147  return map_filename_to_path_;
1148  }
1149 
1150 private:
1152  std::unordered_map<std::string, std::string> map_filename_to_path_;
1153 };
1154 
1159 public:
1160  TerrazzoTexture(const std::string& data_root = "");
1162  std::string GetAlbedoTexturePath() const {
1163  return map_filename_to_path_.at("albedo");
1164  }
1166  std::string GetNormalTexturePath() const {
1167  return map_filename_to_path_.at("normal");
1168  }
1170  std::string GetRoughnessTexturePath() const {
1171  return map_filename_to_path_.at("roughness");
1172  }
1175  std::unordered_map<std::string, std::string> GetPathMap() const {
1176  return map_filename_to_path_;
1177  }
1178 
1179 private:
1181  std::unordered_map<std::string, std::string> map_filename_to_path_;
1182 };
1183 
1188 public:
1189  TilesTexture(const std::string& data_root = "");
1191  std::string GetAlbedoTexturePath() const {
1192  return map_filename_to_path_.at("albedo");
1193  }
1195  std::string GetNormalTexturePath() const {
1196  return map_filename_to_path_.at("normal");
1197  }
1199  std::string GetRoughnessTexturePath() const {
1200  return map_filename_to_path_.at("roughness");
1201  }
1204  std::unordered_map<std::string, std::string> GetPathMap() const {
1205  return map_filename_to_path_;
1206  }
1207 
1208 private:
1210  std::unordered_map<std::string, std::string> map_filename_to_path_;
1211 };
1212 
1217 public:
1218  WoodFloorTexture(const std::string& data_root = "");
1220  std::string GetAlbedoTexturePath() const {
1221  return map_filename_to_path_.at("albedo");
1222  }
1224  std::string GetNormalTexturePath() const {
1225  return map_filename_to_path_.at("normal");
1226  }
1228  std::string GetRoughnessTexturePath() const {
1229  return map_filename_to_path_.at("roughness");
1230  }
1233  std::unordered_map<std::string, std::string> GetPathMap() const {
1234  return map_filename_to_path_;
1235  }
1236 
1237 private:
1239  std::unordered_map<std::string, std::string> map_filename_to_path_;
1240 };
1241 
1246 public:
1247  WoodTexture(const std::string& data_root = "");
1249  std::string GetAlbedoTexturePath() const {
1250  return map_filename_to_path_.at("albedo");
1251  }
1253  std::string GetNormalTexturePath() const {
1254  return map_filename_to_path_.at("normal");
1255  }
1257  std::string GetRoughnessTexturePath() const {
1258  return map_filename_to_path_.at("roughness");
1259  }
1262  std::unordered_map<std::string, std::string> GetPathMap() const {
1263  return map_filename_to_path_;
1264  }
1265 
1266 private:
1268  std::unordered_map<std::string, std::string> map_filename_to_path_;
1269 };
1270 
1275 public:
1276  FacetsModel(const std::string& data_root = "");
1277 
1279  std::string GetPath() const { return path_; }
1280 
1281 private:
1283  std::string path_;
1284 };
1285 
1290 public:
1291  PolylinesModel(const std::string& data_root = "");
1292 
1294  std::string GetPath() const { return path_; }
1295 
1296 private:
1298  std::string path_;
1299 };
1300 
1305 public:
1306  BalusterVase(const std::string& data_root = "");
1307 
1309  std::string GetPath() const { return path_; }
1310 
1311 private:
1313  std::string path_;
1314 };
1315 
1316 } // namespace data
1317 } // namespace cloudViewer
std::string filename
Data class for ArmadilloMesh contains the ArmadilloMesh.ply from the Stanford 3D Scanning Repository.
Definition: Dataset.h:173
std::string GetPath() const
Path to the ArmadilloMesh.ply file.
Definition: Dataset.h:178
ArmadilloMesh(const std::string &data_root="")
Data class for AvocadoModel contains a avocado model file, along with material and PNG format embedde...
Definition: Dataset.h:188
AvocadoModel(const std::string &data_root="")
std::string GetPath() const
Path to the GLB format avocado model.
Definition: Dataset.h:193
Data class for BalusterVase contains the F1980_baluster_vase.glb from the CloudViewer project.
Definition: Dataset.h:1304
BalusterVase(const std::string &data_root="")
std::string GetPath() const
Path to the F1980_baluster_vase.glb file.
Definition: Dataset.h:1309
Data class for BedroomRGBDImages contains a sample set of 21931 color and depth images from Redwood R...
Definition: Dataset.h:204
BedroomRGBDImages(const std::string &data_root="")
std::string GetTrajectoryLogPath() const
Path to camera trajectory log file lounge_trajectory.log.
Definition: Dataset.h:215
std::vector< std::string > GetDepthPaths() const
Returns List of paths to depth image samples of size 21931.
Definition: Dataset.h:211
std::string GetReconstructionPath() const
Path to mesh reconstruction bedroom.ply.
Definition: Dataset.h:217
std::vector< std::string > GetColorPaths() const
Returns List of paths to color image samples of size 21931.
Definition: Dataset.h:209
Data class for BunnyMesh contains the BunnyMesh.ply from the Stanford 3D Scanning Repository.
Definition: Dataset.h:234
std::string GetPath() const
Path to the BunnyMesh.ply file.
Definition: Dataset.h:239
BunnyMesh(const std::string &data_root="")
Definition: BunnyMesh.cpp:22
Data class for CrateModel contains a sword model file, along with material and various other texture ...
Definition: Dataset.h:252
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:264
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:258
CrateModel(const std::string &data_root="")
Definition: CrateModel.cpp:22
Data class for DamagedHelmetModel contains a damaged helmet model file, along with material and JPG f...
Definition: Dataset.h:276
DamagedHelmetModel(const std::string &data_root="")
std::string GetPath() const
Path to the GLB format damaged helmet model.
Definition: Dataset.h:281
Base CloudViewer dataset class.
Definition: Dataset.h:61
const std::string GetPrefix() const
Get prefix for the dataset.
Definition: Dataset.h:84
std::string prefix_
Dataset prefix.
Definition: Dataset.h:103
const std::string GetDataRoot() const
Get data root directory. The data root is set at construction time or automatically determined.
Definition: Dataset.h:81
const std::string GetExtractDir() const
Get absolute path to extract directory. i.e. ${data_root}/extract/${prefix}.
Definition: Dataset.h:94
const std::string GetDownloadDir() const
Get absolute path to download directory. i.e. ${data_root}/download/${prefix}.
Definition: Dataset.h:88
std::string data_root_
CloudViewer data root.
Definition: Dataset.h:100
void CheckPathsExist(const std::vector< std::string > &paths) const
Check if the paths exists after extraction.
Definition: Dataset.cpp:65
Dataset(const std::string &prefix, const std::string &data_root="")
Parameterized Constructor.
Definition: Dataset.cpp:53
Data class for DemoColoredICPPointClouds contains 2 point clouds of PLY format. This data is used in ...
Definition: Dataset.h:293
std::vector< std::string > GetPaths() const
Returns list of list of 2 point cloud paths.
Definition: Dataset.h:298
DemoColoredICPPointClouds(const std::string &data_root="")
Data class for DemoCropPointCloud contains a point cloud, and cropped.json (a saved selected polygon ...
Definition: Dataset.h:313
DemoCropPointCloud(const std::string &data_root="")
std::string GetPointCloudPath() const
Path to example point cloud.
Definition: Dataset.h:318
std::string GetCroppedJSONPath() const
Path to saved selected polygon volume file.
Definition: Dataset.h:320
Data class for DemoCustomVisualization contains an example point-cloud, camera trajectory (json file)...
Definition: Dataset.h:334
std::string GetTrajectoryPath() const
Path to the camera_trajectory.json.
Definition: Dataset.h:341
DemoCustomVisualization(const std::string &data_root="")
std::string GetPointCloudPath() const
Path to the point cloud (ply).
Definition: Dataset.h:339
std::string GetRenderOptionPath() const
Path to the renderoption.json.
Definition: Dataset.h:343
Data class for DemoDopplerICPSequence contains an example sequence of 100 point clouds with Doppler v...
Definition: Dataset.h:355
DemoDopplerICPSequence(const std::string &data_root="")
std::string GetPath(std::size_t index) const
Path to the point cloud at index.
std::vector< std::pair< double, Eigen::Matrix4d > > GetTrajectory() const
Returns a list of (timestamp, pose) representing the ground truth trajectory of the sequence.
std::vector< std::string > GetPaths() const
Returns the list of the point cloud paths in the sequence.
Definition: Dataset.h:360
std::string GetCalibrationPath() const
Path to the calibration metadata file, containing transformation between the vehicle and sensor frame...
Definition: Dataset.h:365
bool GetCalibration(Eigen::Matrix4d &calibration, double &period) const
Returns the vehicle to sensor calibration transformation and the time period (in secs) between sequen...
std::string GetTrajectoryPath() const
Path to the ground truth poses for the entire sequence.
Definition: Dataset.h:367
Data class for DemoFeatureMatchingPointClouds contains 2 point cloud fragments and their respective F...
Definition: Dataset.h:389
std::vector< std::string > GetFPFHFeaturePaths() const
Returns list of paths to saved FPFH features binary for point clouds, respectively,...
Definition: Dataset.h:399
std::vector< std::string > GetL32DFeaturePaths() const
Returns list of paths to saved L32D features binary for point clouds, respectively,...
Definition: Dataset.h:404
std::vector< std::string > GetPointCloudPaths() const
Returns list of paths to point clouds, of size 2.
Definition: Dataset.h:394
Data class for DemoICPPointClouds contains 3 point clouds of binary PCD format. This data is used in ...
Definition: Dataset.h:423
DemoICPPointClouds(const std::string &data_root="")
std::vector< std::string > GetPaths() const
Returns list of 3 point cloud paths.
Definition: Dataset.h:428
std::string GetTransformationLogPath() const
Path to the transformation metadata log file, containing transformation between frame 0 and 1,...
Definition: Dataset.h:434
Data class for DemoPoseGraphOptimization contains an example fragment pose graph, and global pose gra...
Definition: Dataset.h:448
DemoPoseGraphOptimization(const std::string &data_root="")
std::string GetPoseGraphFragmentPath() const
Path to example global pose graph (json).
Definition: Dataset.h:453
std::string GetPoseGraphGlobalPath() const
Path to example fragment pose graph (json).
Definition: Dataset.h:457
Dataset class with one or more downloaded file.
Definition: Dataset.h:152
std::vector< DataDescriptor > data_descriptors_
Definition: Dataset.h:167
bool HasDownloaded(const DataDescriptor &data_descriptor) const
Check if all files are downloaded and MD5 checksums are valid.
Definition: Dataset.cpp:137
DownloadDataset(const std::string &prefix, const DataDescriptor &data_descriptor, const std::string &data_root="")
Definition: Dataset.cpp:83
Data class for EaglePointCloud contains the EaglePointCloud.ply file.
Definition: Dataset.h:471
std::string GetPath() const
Path to the EaglePointCloud.ply file.
Definition: Dataset.h:476
EaglePointCloud(const std::string &data_root="")
Data class for FacetsModel contains the facets.bin from the CloudViewer project.
Definition: Dataset.h:1274
FacetsModel(const std::string &data_root="")
Definition: FacetsModel.cpp:18
std::string GetPath() const
Path to the facets.bin file.
Definition: Dataset.h:1279
Data class for FlightHelmetModel contains a flight helmet model file, along with material and various...
Definition: Dataset.h:489
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:502
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:496
FlightHelmetModel(const std::string &data_root="")
Data class for JackJackL515Bag contains the RealSense L515 JackJackL515Bag.bag file.
Definition: Dataset.h:514
JackJackL515Bag(const std::string &data_root="")
std::string GetPath() const
Path to the JackJackL515Bag.bag file.
Definition: Dataset.h:519
Data class for JuneauImage contains the JuneauImage.jpg file.
Definition: Dataset.h:528
std::string GetPath() const
Path to the JuneauImage.jgp file.
Definition: Dataset.h:533
JuneauImage(const std::string &data_root="")
Definition: JuneauImage.cpp:22
Data class for KnotMesh contains the KnotMesh.ply file.
Definition: Dataset.h:542
KnotMesh(const std::string &data_root="")
Definition: KnotMesh.cpp:22
std::string GetPath() const
Path to the KnotMesh.ply file.
Definition: Dataset.h:547
Dataset class for LivingRoomPointClouds contains 57 point clouds of binary PLY format.
Definition: Dataset.h:558
std::vector< std::string > GetPaths() const
Returns list of paths to ply point-cloud fragments of size 57.
Definition: Dataset.h:563
LivingRoomPointClouds(const std::string &data_root="")
Data class for LoungeRGBDImages contains a sample set of 3000 color and depth images from Stanford Lo...
Definition: Dataset.h:578
LoungeRGBDImages(const std::string &data_root="")
std::string GetReconstructionPath() const
Path to mesh reconstruction lounge.ply.
Definition: Dataset.h:591
std::vector< std::string > GetDepthPaths() const
Returns List of paths to depth image samples of size 3000.
Definition: Dataset.h:585
std::vector< std::string > GetColorPaths() const
Returns List of paths to color image samples of size 3000.
Definition: Dataset.h:583
std::string GetTrajectoryLogPath() const
Path to camera trajectory log file lounge_trajectory.log.
Definition: Dataset.h:589
Data class for MetalTexture contains albedo, normal, roughness and metallic texture files for metal b...
Definition: Dataset.h:608
std::string GetAlbedoTexturePath() const
Returns the path to albedo color texture image.
Definition: Dataset.h:612
std::string GetMetallicTexturePath() const
Returns the path to metallic texture image.
Definition: Dataset.h:624
MetalTexture(const std::string &data_root="")
std::string GetRoughnessTexturePath() const
Returns the path to roughness texture image.
Definition: Dataset.h:620
std::string GetNormalTexturePath() const
Returns the path to normal texture image.
Definition: Dataset.h:616
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:629
Data class for MonkeyModel contains a monkey model file, along with material and various other textur...
Definition: Dataset.h:644
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:650
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:656
MonkeyModel(const std::string &data_root="")
Definition: MonkeyModel.cpp:22
Dataset class for OfficePointClouds contains 53 point clouds of binary PLY format.
Definition: Dataset.h:669
OfficePointClouds(const std::string &data_root="")
std::vector< std::string > GetPaths() const
Returns list of paths to ply point-cloud fragments of size 52.
Definition: Dataset.h:674
Data class for PCDPointCloud contains the fragment.pcd point cloud mesh from the Redwood Living Room ...
Definition: Dataset.h:688
PCDPointCloud(const std::string &data_root="")
std::string GetPath() const
Path to the pcd format point cloud.
Definition: Dataset.h:693
Data class for PLYPointCloud contains the fragment.ply point cloud mesh from the Redwood Living Room ...
Definition: Dataset.h:703
PLYPointCloud(const std::string &data_root="")
std::string GetPath() const
Path to the PLY format point cloud.
Definition: Dataset.h:708
Data class for PTSPointCloud contains a sample point-cloud of PTS format.
Definition: Dataset.h:718
std::string GetPath() const
Path to the PTS format point cloud.
Definition: Dataset.h:723
PTSPointCloud(const std::string &data_root="")
Data class for PaintedPlasterTexture contains albedo, normal and roughness texture files for painted ...
Definition: Dataset.h:733
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:750
std::string GetNormalTexturePath() const
Returns the path to normal texture image.
Definition: Dataset.h:741
std::string GetRoughnessTexturePath() const
Returns the path to roughness texture image.
Definition: Dataset.h:745
std::string GetAlbedoTexturePath() const
Returns the path to albedo color texture image.
Definition: Dataset.h:737
PaintedPlasterTexture(const std::string &data_root="")
Data class for PolylinesModel contains the polylines.bin from the CloudViewer project.
Definition: Dataset.h:1289
PolylinesModel(const std::string &data_root="")
std::string GetPath() const
Path to the polylines.bin file.
Definition: Dataset.h:1294
Data class for RedwoodIndoorLivingRoom1, containing dense point cloud, rgb sequence,...
Definition: Dataset.h:784
std::string GetNoiseModelPath() const
Path to the noise model.
Definition: Dataset.h:803
std::vector< std::string > GetColorPaths() const
Paths to the color images.
Definition: Dataset.h:791
std::string GetPointCloudPath() const
Path to the point cloud.
Definition: Dataset.h:789
RedwoodIndoorLivingRoom1(const std::string &data_root="")
std::vector< std::string > GetNoisyDepthPaths() const
Paths to the noisy depth images.
Definition: Dataset.h:795
std::vector< std::string > GetDepthPaths() const
Paths to the clean depth images.
Definition: Dataset.h:793
std::string GetONIPath() const
Paths to the ONI sequence.
Definition: Dataset.h:799
std::string GetTrajectoryPath() const
Path to the ground-truth camera trajectory.
Definition: Dataset.h:801
Data class for RedwoodIndoorLivingRoom2, containing dense point cloud, rgb sequence,...
Definition: Dataset.h:840
std::string GetNoiseModelPath() const
Path to the noise model.
Definition: Dataset.h:859
std::vector< std::string > GetColorPaths() const
Paths to the color images.
Definition: Dataset.h:847
RedwoodIndoorLivingRoom2(const std::string &data_root="")
std::vector< std::string > GetNoisyDepthPaths() const
Paths to the noisy depth images.
Definition: Dataset.h:851
std::string GetPointCloudPath() const
Path to the point cloud.
Definition: Dataset.h:845
std::string GetTrajectoryPath() const
Path to the ground-truth camera trajectory.
Definition: Dataset.h:857
std::string GetONIPath() const
Paths to the ONI sequence.
Definition: Dataset.h:855
std::vector< std::string > GetDepthPaths() const
Paths to the clean depth images.
Definition: Dataset.h:849
Data class for RedwoodIndoorOffice1, containing dense point cloud, rgb sequence, clean depth sequence...
Definition: Dataset.h:896
std::string GetTrajectoryPath() const
Path to the ground-truth camera trajectory.
Definition: Dataset.h:913
std::vector< std::string > GetDepthPaths() const
Paths to the clean depth images.
Definition: Dataset.h:905
std::string GetPointCloudPath() const
Path to the point cloud.
Definition: Dataset.h:901
std::string GetONIPath() const
Paths to the ONI sequence.
Definition: Dataset.h:911
std::string GetNoiseModelPath() const
Path to the noise model.
Definition: Dataset.h:915
std::vector< std::string > GetNoisyDepthPaths() const
Paths to the noisy depth images.
Definition: Dataset.h:907
RedwoodIndoorOffice1(const std::string &data_root="")
std::vector< std::string > GetColorPaths() const
Paths to the color images.
Definition: Dataset.h:903
Data class for RedwoodIndoorOffice2, containing dense point cloud, rgb sequence, clean depth sequence...
Definition: Dataset.h:952
std::vector< std::string > GetDepthPaths() const
Paths to the clean depth images.
Definition: Dataset.h:961
std::string GetTrajectoryPath() const
Path to the ground-truth camera trajectory.
Definition: Dataset.h:969
std::vector< std::string > GetColorPaths() const
Paths to the color images.
Definition: Dataset.h:959
RedwoodIndoorOffice2(const std::string &data_root="")
std::vector< std::string > GetNoisyDepthPaths() const
Paths to the noisy depth images.
Definition: Dataset.h:963
std::string GetONIPath() const
Paths to the ONI sequence.
Definition: Dataset.h:967
std::string GetPointCloudPath() const
Path to the point cloud.
Definition: Dataset.h:957
std::string GetNoiseModelPath() const
Path to the noise model.
Definition: Dataset.h:971
Data class for SampleFountainRGBDImages contains a sample set of 33 color and depth images from the F...
Definition: Dataset.h:986
std::vector< std::string > GetColorPaths() const
Returns List of paths to color image samples of size 33.
Definition: Dataset.h:991
std::string GetKeyframePosesLogPath() const
Path to camera poses at key frames log file key.log.
Definition: Dataset.h:995
SampleFountainRGBDImages(const std::string &data_root="")
std::string GetReconstructionPath() const
Path to mesh reconstruction.
Definition: Dataset.h:999
std::vector< std::string > GetDepthPaths() const
Returns List of paths to depth image samples of size 33.
Definition: Dataset.h:993
Data class for SampleL515Bag contains the SampleL515Bag.bag file.
Definition: Dataset.h:1010
std::string GetPath() const
Path to the SampleL515Bag.bag file.
Definition: Dataset.h:1015
SampleL515Bag(const std::string &data_root="")
Data class for SampleNYURGBDImage contains a color image NYU_color.ppm and a depth image NYU_depth....
Definition: Dataset.h:1026
std::string GetDepthPath() const
Path to depth image sample.
Definition: Dataset.h:1033
SampleNYURGBDImage(const std::string &data_root="")
std::string GetColorPath() const
Path to color image sample.
Definition: Dataset.h:1031
Data class for SampleRedwoodRGBDImages contains a sample set of 5 color and depth images from Redwood...
Definition: Dataset.h:1047
std::string GetOdometryLogPath() const
Path to camera trajectory log file odometry.log.
Definition: Dataset.h:1059
std::string GetTrajectoryLogPath() const
Path to camera trajectory log file trajectory.log.
Definition: Dataset.h:1057
SampleRedwoodRGBDImages(const std::string &data_root="")
std::vector< std::string > GetDepthPaths() const
Returns List of paths to depth image samples of size 5.
Definition: Dataset.h:1054
std::string GetReconstructionPath() const
Path to point cloud reconstruction from TSDF.
Definition: Dataset.h:1063
std::string GetRGBDMatchPath() const
Path to color and depth image match file rgbd.match.
Definition: Dataset.h:1061
std::string GetCameraIntrinsicPath() const
Path to pinhole camera intrinsic (json).
Definition: Dataset.h:1065
std::vector< std::string > GetColorPaths() const
Returns List of paths to color image samples of size 5.
Definition: Dataset.h:1052
Data class for SampleSUNRGBDImage contains a color image SUN_color.jpg and a depth image SUN_depth....
Definition: Dataset.h:1091
std::string GetColorPath() const
Path to color image sample.
Definition: Dataset.h:1096
SampleSUNRGBDImage(const std::string &data_root="")
std::string GetDepthPath() const
Path to depth image sample.
Definition: Dataset.h:1098
Data class for SampleTUMRGBDImage contains a color image TUM_color.png and a depth image TUM_depth....
Definition: Dataset.h:1111
std::string GetColorPath() const
Path to color image sample.
Definition: Dataset.h:1116
SampleTUMRGBDImage(const std::string &data_root="")
std::string GetDepthPath() const
Path to depth image sample.
Definition: Dataset.h:1118
Data class for SwordModel contains a sword model file, along with material and various other texture ...
Definition: Dataset.h:1133
SwordModel(const std::string &data_root="")
Definition: SwordModel.cpp:22
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:1146
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:1140
Data class for TerrazzoTexture contains albedo, normal and roughness texture files for terrazzo based...
Definition: Dataset.h:1158
std::string GetNormalTexturePath() const
Returns the path to normal texture image.
Definition: Dataset.h:1166
std::string GetAlbedoTexturePath() const
Returns the path to albedo color texture image.
Definition: Dataset.h:1162
TerrazzoTexture(const std::string &data_root="")
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:1175
std::string GetRoughnessTexturePath() const
Returns the path to roughness texture image.
Definition: Dataset.h:1170
Data class for TilesTexture contains albedo, normal and roughness texture files for tiles based mater...
Definition: Dataset.h:1187
TilesTexture(const std::string &data_root="")
std::string GetNormalTexturePath() const
Returns the path to normal texture image.
Definition: Dataset.h:1195
std::string GetAlbedoTexturePath() const
Returns the path to albedo color texture image.
Definition: Dataset.h:1191
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:1204
std::string GetRoughnessTexturePath() const
Returns the path to roughness texture image.
Definition: Dataset.h:1199
Data class for WoodFloorTexture contains albedo, normal and roughness texture files for wooden floor ...
Definition: Dataset.h:1216
WoodFloorTexture(const std::string &data_root="")
std::string GetRoughnessTexturePath() const
Returns the path to roughness texture image.
Definition: Dataset.h:1228
std::string GetAlbedoTexturePath() const
Returns the path to albedo color texture image.
Definition: Dataset.h:1220
std::string GetNormalTexturePath() const
Returns the path to normal texture image.
Definition: Dataset.h:1224
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:1233
Data class for WoodTexture contains albedo, normal and roughness texture files for wood based materia...
Definition: Dataset.h:1245
std::string GetNormalTexturePath() const
Returns the path to normal texture image.
Definition: Dataset.h:1253
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:1262
WoodTexture(const std::string &data_root="")
Definition: WoodTexture.cpp:22
std::string GetRoughnessTexturePath() const
Returns the path to roughness texture image.
Definition: Dataset.h:1257
std::string GetAlbedoTexturePath() const
Returns the path to albedo color texture image.
Definition: Dataset.h:1249
std::string CloudViewerDownloadsPrefix()
Definition: Dataset.cpp:49
static const DataDescriptor data_descriptor
std::string LocateDataRoot()
Definition: Dataset.cpp:21
static const std::vector< DataDescriptor > data_descriptors
std::string GetCustomDownloadsPrefix()
Definition: Dataset.cpp:47
void SetCustomDownloadsPrefix(const std::string &prefix)
Definition: Dataset.cpp:36
Generic file read and write utility for python interface.
Definition: Eigen.h:85
Infomation about a file to be downloaded.
Definition: Dataset.h:111
DataDescriptor(const std::string &url, const std::string &md5, const std::string &extract_in_subdir="")
Constructor a download url.
Definition: Dataset.h:127
std::string md5_
MD5 checksum of the downloaded file.
Definition: Dataset.h:137
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:117
std::vector< std::string > urls_
List of URL mirrors.
Definition: Dataset.h:134