diff --git a/modules/datasetstools/include/opencv2/datasetstools/ar_hmdb.hpp b/modules/datasetstools/include/opencv2/datasetstools/ar_hmdb.hpp index a11858621..85e159702 100644 --- a/modules/datasetstools/include/opencv2/datasetstools/ar_hmdb.hpp +++ b/modules/datasetstools/include/opencv2/datasetstools/ar_hmdb.hpp @@ -63,7 +63,7 @@ struct AR_hmdbObj : public Object class CV_EXPORTS AR_hmdb : public Dataset { public: - virtual void load(const std::string &path, int number = 0) = 0; + virtual void load(const std::string &path) = 0; static Ptr create(); }; diff --git a/modules/datasetstools/include/opencv2/datasetstools/ar_sports.hpp b/modules/datasetstools/include/opencv2/datasetstools/ar_sports.hpp index 0b44d8ee3..408e2fca5 100644 --- a/modules/datasetstools/include/opencv2/datasetstools/ar_sports.hpp +++ b/modules/datasetstools/include/opencv2/datasetstools/ar_sports.hpp @@ -63,7 +63,7 @@ struct AR_sportsObj : public Object class CV_EXPORTS AR_sports : public Dataset { public: - virtual void load(const std::string &path, int number = 0) = 0; + virtual void load(const std::string &path) = 0; static Ptr create(); }; diff --git a/modules/datasetstools/include/opencv2/datasetstools/dataset.hpp b/modules/datasetstools/include/opencv2/datasetstools/dataset.hpp index afac7bc68..a12be8480 100644 --- a/modules/datasetstools/include/opencv2/datasetstools/dataset.hpp +++ b/modules/datasetstools/include/opencv2/datasetstools/dataset.hpp @@ -62,16 +62,18 @@ public: Dataset() {} virtual ~Dataset() {} - virtual void load(const std::string &path, int number = 0) = 0; + virtual void load(const std::string &path) = 0; - std::vector< Ptr >& getTrain() { return train; } - std::vector< Ptr >& getTest() { return test; } - std::vector< Ptr >& getValidation() { return validation; } + std::vector< Ptr >& getTrain(int splitNum = 0) { return train[splitNum]; } + std::vector< Ptr >& getTest(int splitNum = 0) { return test[splitNum]; } + std::vector< Ptr >& getValidation(int splitNum = 0) { return validation[splitNum]; } + + int getNumSplits() const { return train.size(); } protected: - std::vector< Ptr > train; - std::vector< Ptr > test; - std::vector< Ptr > validation; + std::vector< std::vector< Ptr > > train; + std::vector< std::vector< Ptr > > test; + std::vector< std::vector< Ptr > > validation; }; } diff --git a/modules/datasetstools/include/opencv2/datasetstools/fr_lfw.hpp b/modules/datasetstools/include/opencv2/datasetstools/fr_lfw.hpp index a1866269b..1fcdd3a42 100644 --- a/modules/datasetstools/include/opencv2/datasetstools/fr_lfw.hpp +++ b/modules/datasetstools/include/opencv2/datasetstools/fr_lfw.hpp @@ -63,7 +63,7 @@ struct FR_lfwObj : public Object class CV_EXPORTS FR_lfw : public Dataset { public: - virtual void load(const std::string &path, int number = 0) = 0; + virtual void load(const std::string &path) = 0; static Ptr create(); }; diff --git a/modules/datasetstools/include/opencv2/datasetstools/gr_chalearn.hpp b/modules/datasetstools/include/opencv2/datasetstools/gr_chalearn.hpp index 66e071a03..efadb605d 100644 --- a/modules/datasetstools/include/opencv2/datasetstools/gr_chalearn.hpp +++ b/modules/datasetstools/include/opencv2/datasetstools/gr_chalearn.hpp @@ -80,7 +80,7 @@ struct GR_chalearnObj : public Object class CV_EXPORTS GR_chalearn : public Dataset { public: - virtual void load(const std::string &path, int number = 0) = 0; + virtual void load(const std::string &path) = 0; static Ptr create(); }; diff --git a/modules/datasetstools/include/opencv2/datasetstools/gr_skig.hpp b/modules/datasetstools/include/opencv2/datasetstools/gr_skig.hpp index abaad7482..79cfcdeb4 100644 --- a/modules/datasetstools/include/opencv2/datasetstools/gr_skig.hpp +++ b/modules/datasetstools/include/opencv2/datasetstools/gr_skig.hpp @@ -102,7 +102,7 @@ struct GR_skigObj : public Object class CV_EXPORTS GR_skig : public Dataset { public: - virtual void load(const std::string &path, int number = 0) = 0; + virtual void load(const std::string &path) = 0; static Ptr create(); }; diff --git a/modules/datasetstools/include/opencv2/datasetstools/hpe_parse.hpp b/modules/datasetstools/include/opencv2/datasetstools/hpe_parse.hpp index 197e14c79..7d1d1b15a 100644 --- a/modules/datasetstools/include/opencv2/datasetstools/hpe_parse.hpp +++ b/modules/datasetstools/include/opencv2/datasetstools/hpe_parse.hpp @@ -62,7 +62,7 @@ struct HPE_parseObj : public Object class CV_EXPORTS HPE_parse : public Dataset { public: - virtual void load(const std::string &path, int number = 0) = 0; + virtual void load(const std::string &path) = 0; static Ptr create(); }; diff --git a/modules/datasetstools/include/opencv2/datasetstools/ir_affine.hpp b/modules/datasetstools/include/opencv2/datasetstools/ir_affine.hpp index 763514c76..b3cc8782a 100644 --- a/modules/datasetstools/include/opencv2/datasetstools/ir_affine.hpp +++ b/modules/datasetstools/include/opencv2/datasetstools/ir_affine.hpp @@ -64,7 +64,7 @@ struct IR_affineObj : public Object class CV_EXPORTS IR_affine : public Dataset { public: - virtual void load(const std::string &path, int number = 0) = 0; + virtual void load(const std::string &path) = 0; static Ptr create(); }; diff --git a/modules/datasetstools/include/opencv2/datasetstools/ir_robot.hpp b/modules/datasetstools/include/opencv2/datasetstools/ir_robot.hpp index 9d6952204..fe319ba14 100644 --- a/modules/datasetstools/include/opencv2/datasetstools/ir_robot.hpp +++ b/modules/datasetstools/include/opencv2/datasetstools/ir_robot.hpp @@ -73,7 +73,7 @@ struct IR_robotObj : public Object class CV_EXPORTS IR_robot : public Dataset { public: - virtual void load(const std::string &path, int number = 0) = 0; + virtual void load(const std::string &path) = 0; static Ptr create(); }; diff --git a/modules/datasetstools/include/opencv2/datasetstools/is_bsds.hpp b/modules/datasetstools/include/opencv2/datasetstools/is_bsds.hpp index 40232b075..880b2fcb7 100644 --- a/modules/datasetstools/include/opencv2/datasetstools/is_bsds.hpp +++ b/modules/datasetstools/include/opencv2/datasetstools/is_bsds.hpp @@ -62,7 +62,7 @@ struct IS_bsdsObj : public Object class CV_EXPORTS IS_bsds : public Dataset { public: - virtual void load(const std::string &path, int number = 0) = 0; + virtual void load(const std::string &path) = 0; static Ptr create(); }; diff --git a/modules/datasetstools/include/opencv2/datasetstools/is_weizmann.hpp b/modules/datasetstools/include/opencv2/datasetstools/is_weizmann.hpp index c8cb1f058..66184489f 100644 --- a/modules/datasetstools/include/opencv2/datasetstools/is_weizmann.hpp +++ b/modules/datasetstools/include/opencv2/datasetstools/is_weizmann.hpp @@ -65,7 +65,7 @@ struct IS_weizmannObj : public Object class CV_EXPORTS IS_weizmann : public Dataset { public: - virtual void load(const std::string &path, int number = 0) = 0; + virtual void load(const std::string &path) = 0; static Ptr create(); }; diff --git a/modules/datasetstools/include/opencv2/datasetstools/msm_epfl.hpp b/modules/datasetstools/include/opencv2/datasetstools/msm_epfl.hpp index b71c8d8fa..1aecf6f66 100644 --- a/modules/datasetstools/include/opencv2/datasetstools/msm_epfl.hpp +++ b/modules/datasetstools/include/opencv2/datasetstools/msm_epfl.hpp @@ -74,7 +74,7 @@ struct MSM_epflObj : public Object class CV_EXPORTS MSM_epfl : public Dataset { public: - virtual void load(const std::string &path, int number = 0) = 0; + virtual void load(const std::string &path) = 0; static Ptr create(); }; diff --git a/modules/datasetstools/include/opencv2/datasetstools/msm_middlebury.hpp b/modules/datasetstools/include/opencv2/datasetstools/msm_middlebury.hpp index c52ba41b9..cbfbb38be 100644 --- a/modules/datasetstools/include/opencv2/datasetstools/msm_middlebury.hpp +++ b/modules/datasetstools/include/opencv2/datasetstools/msm_middlebury.hpp @@ -65,7 +65,7 @@ struct MSM_middleburyObj : public Object class CV_EXPORTS MSM_middlebury : public Dataset { public: - virtual void load(const std::string &path, int number = 0) = 0; + virtual void load(const std::string &path) = 0; static Ptr create(); }; diff --git a/modules/datasetstools/include/opencv2/datasetstools/or_imagenet.hpp b/modules/datasetstools/include/opencv2/datasetstools/or_imagenet.hpp index 05fd1414e..ac401f930 100644 --- a/modules/datasetstools/include/opencv2/datasetstools/or_imagenet.hpp +++ b/modules/datasetstools/include/opencv2/datasetstools/or_imagenet.hpp @@ -64,7 +64,7 @@ struct OR_imagenetObj : public Object class CV_EXPORTS OR_imagenet : public Dataset { public: - virtual void load(const std::string &path, int number = 0) = 0; + virtual void load(const std::string &path) = 0; static Ptr create(); }; diff --git a/modules/datasetstools/include/opencv2/datasetstools/or_sun.hpp b/modules/datasetstools/include/opencv2/datasetstools/or_sun.hpp index f14aaea44..f231d6d20 100644 --- a/modules/datasetstools/include/opencv2/datasetstools/or_sun.hpp +++ b/modules/datasetstools/include/opencv2/datasetstools/or_sun.hpp @@ -63,7 +63,7 @@ struct OR_sunObj : public Object class CV_EXPORTS OR_sun : public Dataset { public: - virtual void load(const std::string &path, int number = 0) = 0; + virtual void load(const std::string &path) = 0; static Ptr create(); }; diff --git a/modules/datasetstools/include/opencv2/datasetstools/slam_kitti.hpp b/modules/datasetstools/include/opencv2/datasetstools/slam_kitti.hpp index 68fd3416a..f133eb134 100644 --- a/modules/datasetstools/include/opencv2/datasetstools/slam_kitti.hpp +++ b/modules/datasetstools/include/opencv2/datasetstools/slam_kitti.hpp @@ -71,7 +71,7 @@ struct SLAM_kittiObj : public Object class CV_EXPORTS SLAM_kitti : public Dataset { public: - virtual void load(const std::string &path, int number = 0) = 0; + virtual void load(const std::string &path) = 0; static Ptr create(); }; diff --git a/modules/datasetstools/include/opencv2/datasetstools/slam_tumindoor.hpp b/modules/datasetstools/include/opencv2/datasetstools/slam_tumindoor.hpp index a35e84ed6..4945dca33 100644 --- a/modules/datasetstools/include/opencv2/datasetstools/slam_tumindoor.hpp +++ b/modules/datasetstools/include/opencv2/datasetstools/slam_tumindoor.hpp @@ -71,7 +71,7 @@ struct SLAM_tumindoorObj : public Object class CV_EXPORTS SLAM_tumindoor : public Dataset { public: - virtual void load(const std::string &path, int number = 0) = 0; + virtual void load(const std::string &path) = 0; static Ptr create(); }; diff --git a/modules/datasetstools/include/opencv2/datasetstools/tr_chars.hpp b/modules/datasetstools/include/opencv2/datasetstools/tr_chars.hpp index 3c61efe05..c8207b45f 100644 --- a/modules/datasetstools/include/opencv2/datasetstools/tr_chars.hpp +++ b/modules/datasetstools/include/opencv2/datasetstools/tr_chars.hpp @@ -63,7 +63,7 @@ struct TR_charsObj : public Object class CV_EXPORTS TR_chars : public Dataset { public: - virtual void load(const std::string &path, int number = 0) = 0; + virtual void load(const std::string &path) = 0; static Ptr create(); }; diff --git a/modules/datasetstools/include/opencv2/datasetstools/tr_svt.hpp b/modules/datasetstools/include/opencv2/datasetstools/tr_svt.hpp index 57c50f791..eb014af95 100644 --- a/modules/datasetstools/include/opencv2/datasetstools/tr_svt.hpp +++ b/modules/datasetstools/include/opencv2/datasetstools/tr_svt.hpp @@ -70,7 +70,7 @@ struct TR_svtObj : public Object class CV_EXPORTS TR_svt : public Dataset { public: - virtual void load(const std::string &path, int number = 0) = 0; + virtual void load(const std::string &path) = 0; static Ptr create(); }; diff --git a/modules/datasetstools/samples/ar_hmdb.cpp b/modules/datasetstools/samples/ar_hmdb.cpp index 82c67da2a..b45297cc3 100644 --- a/modules/datasetstools/samples/ar_hmdb.cpp +++ b/modules/datasetstools/samples/ar_hmdb.cpp @@ -65,18 +65,14 @@ int main(int argc, char *argv[]) return -1; } - Ptr dataset[3]; - for (int i=0; i<3; ++i) - { - dataset[i] = AR_hmdb::create(); - dataset[i]->load(path, i); - } + Ptr dataset = AR_hmdb::create(); + dataset->load(path); // *************** // dataset contains for each split: a set of video file names for each action. // For example, let output all training video file names for second split and first action. // And its size. - AR_hmdbObj *example = static_cast(dataset[1]->getTrain()[0].get()); + AR_hmdbObj *example = static_cast(dataset->getTrain()[0].get()); printf("name: %s\n", example->name.c_str()); vector &videoNames = example->videoNames; printf("size: %u\n", (unsigned int)videoNames.size()); diff --git a/modules/datasetstools/samples/tr_chars.cpp b/modules/datasetstools/samples/tr_chars.cpp index 499d831a1..0dd28d6f7 100644 --- a/modules/datasetstools/samples/tr_chars.cpp +++ b/modules/datasetstools/samples/tr_chars.cpp @@ -66,26 +66,19 @@ int main(int argc, char *argv[]) return -1; } - vector< Ptr > dataset; - do - { - Ptr curr = TR_chars::create(); - dataset.push_back(curr); - - int number = (int)dataset.size()-1; - dataset.back()->load(path, number); - } while (dataset.back()->getTrain().size()>0); - dataset.pop_back(); // remove last empty split + Ptr dataset = TR_chars::create(); + dataset->load(path); // *************** // dataset. train, test contain information about each element of appropriate sets and splits. // For example, let output first elements of these vectors and their sizes for last split. // And number of splits. - printf("splits number: %u\n", (unsigned int)dataset.size()); + int numSplits = dataset->getNumSplits(); + printf("splits number: %u\n", numSplits); - vector< Ptr > &currTrain = dataset.back()->getTrain(); - vector< Ptr > &currTest = dataset.back()->getTest(); - vector< Ptr > &currValidation = dataset.back()->getValidation(); + vector< Ptr > &currTrain = dataset->getTrain(numSplits-1); + vector< Ptr > &currTest = dataset->getTest(numSplits-1); + vector< Ptr > &currValidation = dataset->getValidation(numSplits-1); printf("train size: %u\n", (unsigned int)currTrain.size()); printf("test size: %u\n", (unsigned int)currTest.size()); printf("validation size: %u\n", (unsigned int)currValidation.size()); diff --git a/modules/datasetstools/src/ar_hmdb.cpp b/modules/datasetstools/src/ar_hmdb.cpp index 1aa8c4d89..d30d48507 100644 --- a/modules/datasetstools/src/ar_hmdb.cpp +++ b/modules/datasetstools/src/ar_hmdb.cpp @@ -53,15 +53,17 @@ class CV_EXPORTS AR_hmdbImp : public AR_hmdb { public: AR_hmdbImp() {} - //AR_hmdbImp(const std::string &path, int number = 0); + //AR_hmdbImp(const string &path, int number = 0); virtual ~AR_hmdbImp() {} - virtual void load(const std::string &path, int number = 0); + virtual void load(const string &path); private: - void loadDataset(const std::string &path, int number = 0); + void loadDatasetSplit(const string &path, int number = 0); - void loadAction(const std::string &fileName, std::vector &train_, std::vector &test_); + void loadDataset(const string &path); + + void loadAction(const string &fileName, vector &train_, vector &test_); }; void AR_hmdbImp::loadAction(const string &fileName, vector &train_, vector &test_) @@ -86,12 +88,20 @@ void AR_hmdbImp::loadAction(const string &fileName, vector &train_, vect loadDataset(path, number); }*/ -void AR_hmdbImp::load(const string &path, int number) +void AR_hmdbImp::load(const string &path) { - loadDataset(path, number); + loadDataset(path); +} + +void AR_hmdbImp::loadDataset(const string &path) +{ + for (int i=0; i<3; ++i) + { + loadDatasetSplit(path, i); + } } -void AR_hmdbImp::loadDataset(const string &path, int number) +void AR_hmdbImp::loadDatasetSplit(const string &path, int number) { // valid number [0,1,2] if (number<0 || number>2) @@ -99,6 +109,10 @@ void AR_hmdbImp::loadDataset(const string &path, int number) return; } + train.push_back(vector< Ptr >()); + test.push_back(vector< Ptr >()); + validation.push_back(vector< Ptr >()); + string pathDataset(path + "hmdb51_org/"); string pathSplit(path + "testTrainMulti_7030_splits/"); @@ -111,8 +125,8 @@ void AR_hmdbImp::loadDataset(const string &path, int number) currTrain->name = *it; currTest->name = *it; - train.push_back(currTrain); - test.push_back(currTest); + train.back().push_back(currTrain); + test.back().push_back(currTest); char tmp[2]; sprintf(tmp, "%u", number+1); diff --git a/modules/datasetstools/src/ar_sports.cpp b/modules/datasetstools/src/ar_sports.cpp index c13e67976..0f4b4cf58 100644 --- a/modules/datasetstools/src/ar_sports.cpp +++ b/modules/datasetstools/src/ar_sports.cpp @@ -53,15 +53,15 @@ class CV_EXPORTS AR_sportsImp : public AR_sports { public: AR_sportsImp() {} - //AR_sportsImp(const std::string &path); + //AR_sportsImp(const string &path); virtual ~AR_sportsImp() {} - virtual void load(const std::string &path, int number = 0); + virtual void load(const string &path); private: - void loadDataset(const std::string &path); + void loadDataset(const string &path); - void loadDatasetPart(const std::string &fileName, std::vector< Ptr > &dataset_); + void loadDatasetPart(const string &fileName, vector< Ptr > &dataset_); }; void AR_sportsImp::loadDatasetPart(const string &fileName, vector< Ptr > &dataset_) @@ -89,26 +89,25 @@ void AR_sportsImp::loadDatasetPart(const string &fileName, vector< Ptr > loadDataset(path); }*/ -void AR_sportsImp::load(const string &path, int number) +void AR_sportsImp::load(const string &path) { - if (number!=0) - { - return; - } - loadDataset(path); } void AR_sportsImp::loadDataset(const string &path) { + train.push_back(vector< Ptr >()); + test.push_back(vector< Ptr >()); + validation.push_back(vector< Ptr >()); + string trainPath(path + "original/train_partition.txt"); string testPath(path + "original/test_partition.txt"); // loading train video urls & labels - loadDatasetPart(trainPath, train); + loadDatasetPart(trainPath, train.back()); // loading test video urls & labels - loadDatasetPart(testPath, test); + loadDatasetPart(testPath, test.back()); } Ptr AR_sports::create() diff --git a/modules/datasetstools/src/fr_lfw.cpp b/modules/datasetstools/src/fr_lfw.cpp index a394ab506..0c9f506fa 100644 --- a/modules/datasetstools/src/fr_lfw.cpp +++ b/modules/datasetstools/src/fr_lfw.cpp @@ -53,13 +53,13 @@ class CV_EXPORTS FR_lfwImp : public FR_lfw { public: FR_lfwImp() {} - //FR_lfwImp(const std::string &path); + //FR_lfwImp(const string &path); virtual ~FR_lfwImp() {} - virtual void load(const std::string &path, int number = 0); + virtual void load(const string &path); private: - void loadDataset(const std::string &path); + void loadDataset(const string &path); }; /*FR_lfwImp::FR_lfwImp(const string &path) @@ -67,18 +67,17 @@ private: loadDataset(path); }*/ -void FR_lfwImp::load(const string &path, int number) +void FR_lfwImp::load(const string &path) { - if (number!=0) - { - return; - } - loadDataset(path); } void FR_lfwImp::loadDataset(const string &path) { + train.push_back(vector< Ptr >()); + test.push_back(vector< Ptr >()); + validation.push_back(vector< Ptr >()); + vector fileNames; getDirList(path, fileNames); for (vector::iterator it=fileNames.begin(); it!=fileNames.end(); ++it) @@ -94,7 +93,7 @@ void FR_lfwImp::loadDataset(const string &path) curr->images.push_back(*itFace); } - train.push_back(curr); + train.back().push_back(curr); } } diff --git a/modules/datasetstools/src/gr_chalearn.cpp b/modules/datasetstools/src/gr_chalearn.cpp index a27d16f9b..b9380193b 100644 --- a/modules/datasetstools/src/gr_chalearn.cpp +++ b/modules/datasetstools/src/gr_chalearn.cpp @@ -53,15 +53,15 @@ class CV_EXPORTS GR_chalearnImp : public GR_chalearn { public: GR_chalearnImp() {} - //GR_chalearnImp(const std::string &path); + //GR_chalearnImp(const string &path); virtual ~GR_chalearnImp() {} - virtual void load(const std::string &path, int number = 0); + virtual void load(const string &path); private: - void loadDataset(const std::string &path); + void loadDataset(const string &path); - void loadDatasetPart(const std::string &path, std::vector< Ptr > &dataset_, bool loadLabels); + void loadDatasetPart(const string &path, vector< Ptr > &dataset_, bool loadLabels); }; /*GR_chalearnImp::GR_chalearnImp(const string &path) @@ -69,13 +69,8 @@ private: loadDataset(path); }*/ -void GR_chalearnImp::load(const string &path, int number) +void GR_chalearnImp::load(const string &path) { - if (number!=0) - { - return; - } - loadDataset(path); } @@ -153,12 +148,16 @@ void GR_chalearnImp::loadDatasetPart(const string &path, vector< Ptr > & void GR_chalearnImp::loadDataset(const string &path) { + train.push_back(vector< Ptr >()); + test.push_back(vector< Ptr >()); + validation.push_back(vector< Ptr >()); + string pathTrain(path + "Train/"); - loadDatasetPart(pathTrain, train, true); + loadDatasetPart(pathTrain, train.back(), true); // freely available validation set doesn't have labels string pathValidation(path + "Validation/"); - loadDatasetPart(pathValidation, validation, false); + loadDatasetPart(pathValidation, validation.back(), false); } Ptr GR_chalearn::create() diff --git a/modules/datasetstools/src/gr_skig.cpp b/modules/datasetstools/src/gr_skig.cpp index aeecba7b6..fe783fd37 100644 --- a/modules/datasetstools/src/gr_skig.cpp +++ b/modules/datasetstools/src/gr_skig.cpp @@ -55,13 +55,13 @@ class CV_EXPORTS GR_skigImp : public GR_skig { public: GR_skigImp() {} - //GR_skigImp(const std::string &path); + //GR_skigImp(const string &path); virtual ~GR_skigImp() {} - virtual void load(const std::string &path, int number = 0); + virtual void load(const string &path); private: - void loadDataset(const std::string &path); + void loadDataset(const string &path); }; /*GR_skigImp::GR_skigImp(const string &path) @@ -69,18 +69,17 @@ private: loadDataset(path); }*/ -void GR_skigImp::load(const string &path, int number) +void GR_skigImp::load(const string &path) { - if (number!=0) - { - return; - } - loadDataset(path); } void GR_skigImp::loadDataset(const string &path) { + train.push_back(vector< Ptr >()); + test.push_back(vector< Ptr >()); + validation.push_back(vector< Ptr >()); + for (unsigned int i=1; i<=6; ++i) { char number[2]; @@ -117,7 +116,7 @@ void GR_skigImp::loadDataset(const string &path) curr->pose = (poseType)atoi( file.substr(posPose + strlen("pose_"), 1).c_str() ); curr->type = (actionType)atoi( file.substr(posType + strlen("actionType_"), 2).c_str() ); - train.push_back(curr); + train.back().push_back(curr); } else { printf("incorrect file name: %s", file.c_str()); diff --git a/modules/datasetstools/src/hpe_parse.cpp b/modules/datasetstools/src/hpe_parse.cpp index dab81512f..ea835fdc1 100644 --- a/modules/datasetstools/src/hpe_parse.cpp +++ b/modules/datasetstools/src/hpe_parse.cpp @@ -53,13 +53,13 @@ class CV_EXPORTS HPE_parseImp : public HPE_parse { public: HPE_parseImp() {} - //HPE_parseImp(const std::string &path); + //HPE_parseImp(const string &path); virtual ~HPE_parseImp() {} - virtual void load(const std::string &path, int number = 0); + virtual void load(const string &path); private: - void loadDataset(const std::string &path); + void loadDataset(const string &path); }; /*HPE_parseImp::HPE_parseImp(const string &path) @@ -67,18 +67,17 @@ private: loadDataset(path); }*/ -void HPE_parseImp::load(const string &path, int number) +void HPE_parseImp::load(const string &path) { - if (number!=0) - { - return; - } - loadDataset(path); } void HPE_parseImp::loadDataset(const string &path) { + train.push_back(vector< Ptr >()); + test.push_back(vector< Ptr >()); + validation.push_back(vector< Ptr >()); + unsigned int i=0; vector fileNames; getDirList(path, fileNames); @@ -97,10 +96,10 @@ void HPE_parseImp::loadDataset(const string &path) if (i<100) { - train.push_back(curr); + train.back().push_back(curr); } else { - test.push_back(curr); + test.back().push_back(curr); } ++i; } diff --git a/modules/datasetstools/src/ir_affine.cpp b/modules/datasetstools/src/ir_affine.cpp index 7923284e2..94a8a9a55 100644 --- a/modules/datasetstools/src/ir_affine.cpp +++ b/modules/datasetstools/src/ir_affine.cpp @@ -53,13 +53,13 @@ class CV_EXPORTS IR_affineImp : public IR_affine { public: IR_affineImp() {} - //IR_affineImp(const std::string &path); + //IR_affineImp(const string &path); virtual ~IR_affineImp() {} - virtual void load(const std::string &path, int number = 0); + virtual void load(const string &path); private: - void loadDataset(const std::string &path); + void loadDataset(const string &path); }; /*IR_affineImp::IR_affineImp(const string &path) @@ -67,18 +67,17 @@ private: loadDataset(path); }*/ -void IR_affineImp::load(const string &path, int number) +void IR_affineImp::load(const string &path) { - if (number!=0) - { - return; - } - loadDataset(path); } void IR_affineImp::loadDataset(const string &path) { + train.push_back(vector< Ptr >()); + test.push_back(vector< Ptr >()); + validation.push_back(vector< Ptr >()); + for (unsigned int i=1; i<=6; ++i) { Ptr curr(new IR_affineObj); @@ -100,7 +99,7 @@ void IR_affineImp::loadDataset(const string &path) } } - train.push_back(curr); + train.back().push_back(curr); } } diff --git a/modules/datasetstools/src/ir_robot.cpp b/modules/datasetstools/src/ir_robot.cpp index 71b0c33ff..e9c0678f5 100644 --- a/modules/datasetstools/src/ir_robot.cpp +++ b/modules/datasetstools/src/ir_robot.cpp @@ -53,13 +53,13 @@ class CV_EXPORTS IR_robotImp : public IR_robot { public: IR_robotImp() {} - //IR_robotImp(const std::string &path); + //IR_robotImp(const string &path); virtual ~IR_robotImp() {} - virtual void load(const std::string &path, int number = 0); + virtual void load(const string &path); private: - void loadDataset(const std::string &path); + void loadDataset(const string &path); }; /*IR_robotImp::IR_robotImp(const string &path) @@ -67,18 +67,17 @@ private: loadDataset(path); }*/ -void IR_robotImp::load(const string &path, int number) +void IR_robotImp::load(const string &path) { - if (number!=0) - { - return; - } - loadDataset(path); } void IR_robotImp::loadDataset(const string &path) { + train.push_back(vector< Ptr >()); + test.push_back(vector< Ptr >()); + validation.push_back(vector< Ptr >()); + vector fileNames; getDirList(path, fileNames); for (vector::iterator it=fileNames.begin(); it!=fileNames.end(); ++it) @@ -95,7 +94,7 @@ void IR_robotImp::loadDataset(const string &path) string &fileName = *itScene; int imageNum = atoi( fileName.substr(3, 3).c_str() ); - int pos = atoi( fileName.substr(6, 2).c_str() ); + //int pos = atoi( fileName.substr(6, 2).c_str() ); if (imageNum != currImageNum) { curr->pos.push_back(cameraPos()); @@ -105,7 +104,7 @@ void IR_robotImp::loadDataset(const string &path) curr->pos.back().images.push_back(fileName); } - train.push_back(curr); + train.back().push_back(curr); } } diff --git a/modules/datasetstools/src/is_bsds.cpp b/modules/datasetstools/src/is_bsds.cpp index 13a723e45..ebc397e30 100644 --- a/modules/datasetstools/src/is_bsds.cpp +++ b/modules/datasetstools/src/is_bsds.cpp @@ -53,15 +53,15 @@ class CV_EXPORTS IS_bsdsImp : public IS_bsds { public: IS_bsdsImp() {} - //IS_bsdsImp(const std::string &path); + //IS_bsdsImp(const string &path); virtual ~IS_bsdsImp() {} - virtual void load(const std::string &path, int number = 0); + virtual void load(const string &path); private: - void loadDataset(const std::string &path); + void loadDataset(const string &path); - void loadDatasetPart(const std::string &fileName, std::vector< Ptr > &dataset_); + void loadDatasetPart(const string &fileName, vector< Ptr > &dataset_); }; void IS_bsdsImp::loadDatasetPart(const string &fileName, vector< Ptr > &dataset_) @@ -81,26 +81,25 @@ void IS_bsdsImp::loadDatasetPart(const string &fileName, vector< Ptr > & loadDataset(path); }*/ -void IS_bsdsImp::load(const string &path, int number) +void IS_bsdsImp::load(const string &path) { - if (number!=0) - { - return; - } - loadDataset(path); } void IS_bsdsImp::loadDataset(const string &path) { + train.push_back(vector< Ptr >()); + test.push_back(vector< Ptr >()); + validation.push_back(vector< Ptr >()); + string trainName(path + "iids_train.txt"); string testName(path + "iids_test.txt"); // loading train - loadDatasetPart(trainName, train); + loadDatasetPart(trainName, train.back()); // loading test - loadDatasetPart(testName, test); + loadDatasetPart(testName, test.back()); } Ptr IS_bsds::create() diff --git a/modules/datasetstools/src/is_weizmann.cpp b/modules/datasetstools/src/is_weizmann.cpp index ca2d7c547..094521080 100644 --- a/modules/datasetstools/src/is_weizmann.cpp +++ b/modules/datasetstools/src/is_weizmann.cpp @@ -53,13 +53,13 @@ class CV_EXPORTS IS_weizmannImp : public IS_weizmann { public: IS_weizmannImp() {} - //IS_weizmannImp(const std::string &path); + //IS_weizmannImp(const string &path); virtual ~IS_weizmannImp() {} - virtual void load(const std::string &path, int number = 0); + virtual void load(const string &path); private: - void loadDataset(const std::string &path); + void loadDataset(const string &path); }; /*IS_weizmannImp::IS_weizmannImp(const string &path) @@ -67,18 +67,17 @@ private: loadDataset(path); }*/ -void IS_weizmannImp::load(const string &path, int number) +void IS_weizmannImp::load(const string &path) { - if (number!=0) - { - return; - } - loadDataset(path); } void IS_weizmannImp::loadDataset(const string &path) { + train.push_back(vector< Ptr >()); + test.push_back(vector< Ptr >()); + validation.push_back(vector< Ptr >()); + vector fileNames; getDirList(path, fileNames); for (vector::iterator it=fileNames.begin(); it!=fileNames.end(); ++it) @@ -93,7 +92,7 @@ void IS_weizmannImp::loadDataset(const string &path) curr->humanSeg = imageName + "human_seg/"; - train.push_back(curr); + train.back().push_back(curr); } } } diff --git a/modules/datasetstools/src/msm_epfl.cpp b/modules/datasetstools/src/msm_epfl.cpp index 798b5f97e..220691e0c 100644 --- a/modules/datasetstools/src/msm_epfl.cpp +++ b/modules/datasetstools/src/msm_epfl.cpp @@ -53,13 +53,13 @@ class CV_EXPORTS MSM_epflImp : public MSM_epfl { public: MSM_epflImp() {} - //MSM_epflImp(const std::string &path); + //MSM_epflImp(const string &path); virtual ~MSM_epflImp() {} - virtual void load(const std::string &path, int number = 0); + virtual void load(const string &path); private: - void loadDataset(const std::string &path); + void loadDataset(const string &path); }; /*MSM_epflImp::MSM_epflImp(const string &path) @@ -67,18 +67,17 @@ private: loadDataset(path); }*/ -void MSM_epflImp::load(const string &path, int number) +void MSM_epflImp::load(const string &path) { - if (number!=0) - { - return; - } - loadDataset(path); } void MSM_epflImp::loadDataset(const string &path) { + train.push_back(vector< Ptr >()); + test.push_back(vector< Ptr >()); + validation.push_back(vector< Ptr >()); + string pathBounding(path + "bounding/"); string pathCamera(path + "camera/"); string pathP(path + "P/"); @@ -144,7 +143,7 @@ void MSM_epflImp::loadDataset(const string &path) } } - train.push_back(curr); + train.back().push_back(curr); } } diff --git a/modules/datasetstools/src/msm_middlebury.cpp b/modules/datasetstools/src/msm_middlebury.cpp index 88a817233..e65b1330f 100644 --- a/modules/datasetstools/src/msm_middlebury.cpp +++ b/modules/datasetstools/src/msm_middlebury.cpp @@ -53,13 +53,13 @@ class CV_EXPORTS MSM_middleburyImp : public MSM_middlebury { public: MSM_middleburyImp() {} - //MSM_middleburyImp(const std::string &path); + //MSM_middleburyImp(const string &path); virtual ~MSM_middleburyImp() {} - virtual void load(const std::string &path, int number = 0); + virtual void load(const string &path); private: - void loadDataset(const std::string &path); + void loadDataset(const string &path); }; /*MSM_middleburyImp::MSM_middleburyImp(const string &path) @@ -67,18 +67,17 @@ private: loadDataset(path); }*/ -void MSM_middleburyImp::load(const string &path, int number) +void MSM_middleburyImp::load(const string &path) { - if (number!=0) - { - return; - } - loadDataset(path); } void MSM_middleburyImp::loadDataset(const string &path) { + train.push_back(vector< Ptr >()); + test.push_back(vector< Ptr >()); + validation.push_back(vector< Ptr >()); + string name(path.substr(0, path.length()-1)); size_t start = name.rfind('/'); name = name.substr(start+1, name.length()-start); @@ -113,7 +112,7 @@ void MSM_middleburyImp::loadDataset(const string &path) infile >> curr->t[i]; } - train.push_back(curr); + train.back().push_back(curr); } } diff --git a/modules/datasetstools/src/or_imagenet.cpp b/modules/datasetstools/src/or_imagenet.cpp index 6f327c959..dc5986a4d 100644 --- a/modules/datasetstools/src/or_imagenet.cpp +++ b/modules/datasetstools/src/or_imagenet.cpp @@ -53,13 +53,13 @@ class CV_EXPORTS OR_imagenetImp : public OR_imagenet { public: OR_imagenetImp() {} - //OR_imagenetImp(const std::string &path); + //OR_imagenetImp(const string &path); virtual ~OR_imagenetImp() {} - virtual void load(const std::string &path, int number = 0); + virtual void load(const string &path); private: - void loadDataset(const std::string &path); + void loadDataset(const string &path); }; /*OR_imagenetImp::OR_imagenetImp(const string &path) @@ -67,18 +67,17 @@ private: loadDataset(path); }*/ -void OR_imagenetImp::load(const string &path, int number) +void OR_imagenetImp::load(const string &path) { - if (number!=0) - { - return; - } - loadDataset(path); } void OR_imagenetImp::loadDataset(const string &path) { + train.push_back(vector< Ptr >()); + test.push_back(vector< Ptr >()); + validation.push_back(vector< Ptr >()); + ifstream infile((path + "fall11_urls.txt").c_str()); string line; while (getline(infile, line)) @@ -96,7 +95,7 @@ void OR_imagenetImp::loadDataset(const string &path) curr->wnid = elems[0]; curr->id2 = atoi(elems[1].c_str()); - train.push_back(curr); + train.back().push_back(curr); } } diff --git a/modules/datasetstools/src/or_sun.cpp b/modules/datasetstools/src/or_sun.cpp index c332617dd..3a3492da5 100644 --- a/modules/datasetstools/src/or_sun.cpp +++ b/modules/datasetstools/src/or_sun.cpp @@ -53,13 +53,13 @@ class CV_EXPORTS OR_sunImp : public OR_sun { public: OR_sunImp() {} - //OR_sunImp(const std::string &path); + //OR_sunImp(const string &path); virtual ~OR_sunImp() {} - virtual void load(const std::string &path, int number = 0); + virtual void load(const string &path); private: - void loadDataset(const std::string &path); + void loadDataset(const string &path); }; /*OR_sunImp::OR_sunImp(const string &path) @@ -67,18 +67,17 @@ private: loadDataset(path); }*/ -void OR_sunImp::load(const string &path, int number) +void OR_sunImp::load(const string &path) { - if (number!=0) - { - return; - } - loadDataset(path); } void OR_sunImp::loadDataset(const string &path) { + train.push_back(vector< Ptr >()); + test.push_back(vector< Ptr >()); + validation.push_back(vector< Ptr >()); + string classNameFile(path + "ClassName.txt"); ifstream infile(classNameFile.c_str()); string line; @@ -95,7 +94,7 @@ void OR_sunImp::loadDataset(const string &path) curr->imageNames.push_back(*it); } - train.push_back(curr); + train.back().push_back(curr); } } diff --git a/modules/datasetstools/src/slam_kitti.cpp b/modules/datasetstools/src/slam_kitti.cpp index 6414d25b7..697889fd3 100644 --- a/modules/datasetstools/src/slam_kitti.cpp +++ b/modules/datasetstools/src/slam_kitti.cpp @@ -53,13 +53,13 @@ class CV_EXPORTS SLAM_kittiImp : public SLAM_kitti { public: SLAM_kittiImp() {} - //SLAM_kittiImp(const std::string &path); + //SLAM_kittiImp(const string &path); virtual ~SLAM_kittiImp() {} - virtual void load(const std::string &path, int number = 0); + virtual void load(const string &path); private: - void loadDataset(const std::string &path); + void loadDataset(const string &path); }; /*SLAM_kittiImp::SLAM_kittiImp(const string &path) @@ -67,18 +67,17 @@ private: loadDataset(path); }*/ -void SLAM_kittiImp::load(const string &path, int number) +void SLAM_kittiImp::load(const string &path) { - if (number!=0) - { - return; - } - loadDataset(path); } void SLAM_kittiImp::loadDataset(const string &path) { + train.push_back(vector< Ptr >()); + test.push_back(vector< Ptr >()); + validation.push_back(vector< Ptr >()); + string pathSequence(path + "sequences/"); vector fileNames; getDirList(pathSequence, fileNames); @@ -155,7 +154,7 @@ void SLAM_kittiImp::loadDataset(const string &path) curr->posesArray.push_back(p); } - train.push_back(curr); + train.back().push_back(curr); } } diff --git a/modules/datasetstools/src/slam_tumindoor.cpp b/modules/datasetstools/src/slam_tumindoor.cpp index 85dbc5635..27712ebae 100644 --- a/modules/datasetstools/src/slam_tumindoor.cpp +++ b/modules/datasetstools/src/slam_tumindoor.cpp @@ -55,13 +55,13 @@ class CV_EXPORTS SLAM_tumindoorImp : public SLAM_tumindoor { public: SLAM_tumindoorImp() {} - //SLAM_tumindoorImp(const std::string &path); + //SLAM_tumindoorImp(const string &path); virtual ~SLAM_tumindoorImp() {} - virtual void load(const std::string &path, int number = 0); + virtual void load(const string &path); private: - void loadDataset(const std::string &path); + void loadDataset(const string &path); }; /*SLAM_tumindoorImp::SLAM_tumindoorImp(const string &path) @@ -69,18 +69,17 @@ private: loadDataset(path); }*/ -void SLAM_tumindoorImp::load(const string &path, int number) +void SLAM_tumindoorImp::load(const string &path) { - if (number!=0) - { - return; - } - loadDataset(path); } void SLAM_tumindoorImp::loadDataset(const string &path) { + train.push_back(vector< Ptr >()); + test.push_back(vector< Ptr >()); + validation.push_back(vector< Ptr >()); + string infoPath(path + "info/"); // get info map name, .csv should be only one such file in folder @@ -138,7 +137,7 @@ void SLAM_tumindoorImp::loadDataset(const string &path) } } - train.push_back(curr); + train.back().push_back(curr); } } diff --git a/modules/datasetstools/src/tr_chars.cpp b/modules/datasetstools/src/tr_chars.cpp index b157e9207..0760f0f78 100644 --- a/modules/datasetstools/src/tr_chars.cpp +++ b/modules/datasetstools/src/tr_chars.cpp @@ -56,10 +56,12 @@ public: //TR_charsImp(const string &path, int number = 0); virtual ~TR_charsImp() {} - virtual void load(const string &path, int number = 0); + virtual void load(const string &path); private: - void loadDataset(const string &path, int number = 0); + void loadDatasetSplit(const string &path, int number); + + void loadDataset(const string &path); void parseLine(const string &line, vector &currSet, int number); @@ -84,7 +86,7 @@ void TR_charsImp::parseLine(const string &line, vector &currSet, int number } } -inline void TR_charsImp::convert(vector &from, std::vector< Ptr > &to, vector &allLabels, vector &allNames) +inline void TR_charsImp::convert(vector &from, vector< Ptr > &to, vector &allLabels, vector &allNames) { for (vector::iterator it=from.begin(); it!=from.end(); ++it) { @@ -121,13 +123,31 @@ inline void TR_charsImp::parseSet(const string &line, const string &pattern, boo loadDataset(path, number); }*/ -void TR_charsImp::load(const string &path, int number) +void TR_charsImp::load(const string &path) { - loadDataset(path, number); + loadDataset(path); +} + +void TR_charsImp::loadDataset(const string &path) +{ + int number = 0; + do + { + loadDatasetSplit(path, number); + number++; + } while (train.back().size()>0); + + train.pop_back(); // remove last empty split + test.pop_back(); // remove last empty split + validation.pop_back(); // remove last empty split } -void TR_charsImp::loadDataset(const string &path, int number) +void TR_charsImp::loadDatasetSplit(const string &path, int number) { + train.push_back(vector< Ptr >()); + test.push_back(vector< Ptr >()); + validation.push_back(vector< Ptr >()); + vector allLabels, trainSet, testSet, validationSet; vector allNames; @@ -189,9 +209,9 @@ void TR_charsImp::loadDataset(const string &path, int number) "list.TXNind = ["*/ } - convert(trainSet, train, allLabels, allNames); - convert(testSet, test, allLabels, allNames); - convert(validationSet, validation, allLabels, allNames); + convert(trainSet, train.back(), allLabels, allNames); + convert(testSet, test.back(), allLabels, allNames); + convert(validationSet, validation.back(), allLabels, allNames); } Ptr TR_chars::create() diff --git a/modules/datasetstools/src/tr_svt.cpp b/modules/datasetstools/src/tr_svt.cpp index 6a3b9db8a..34d7fa908 100644 --- a/modules/datasetstools/src/tr_svt.cpp +++ b/modules/datasetstools/src/tr_svt.cpp @@ -56,15 +56,15 @@ class CV_EXPORTS TR_svtImp : public TR_svt { public: TR_svtImp() {} - //TR_svtImp(const std::string &path); + //TR_svtImp(const string &path); virtual ~TR_svtImp() {} - virtual void load(const std::string &path, int number = 0); + virtual void load(const string &path); private: - void loadDataset(const std::string &path); + void loadDataset(const string &path); - void xmlParse(const std::string &set, std::vector< Ptr > &out); + void xmlParse(const string &set, vector< Ptr > &out); }; void TR_svtImp::xmlParse(const string &set, vector< Ptr > &out) @@ -117,26 +117,25 @@ void TR_svtImp::xmlParse(const string &set, vector< Ptr > &out) loadDataset(path); }*/ -void TR_svtImp::load(const string &path, int number) +void TR_svtImp::load(const string &path) { - if (number!=0) - { - return; - } - loadDataset(path); } void TR_svtImp::loadDataset(const string &path) { + train.push_back(vector< Ptr >()); + test.push_back(vector< Ptr >()); + validation.push_back(vector< Ptr >()); + string trainXml(path + "train.xml"); string testXml(path + "test.xml"); // loading train images description - xmlParse(trainXml, train); + xmlParse(trainXml, train.back()); // loading test images description - xmlParse(testXml, test); + xmlParse(testXml, test.back()); } Ptr TR_svt::create()