Skip to content

Commit bf0c871

Browse files
committed
Merge pull request #341 from Auron-X:TLD/VOT2015_Datasets_Support
2 parents d255138 + 1db7b6e commit bf0c871

19 files changed

+1944
-687
lines changed

modules/datasets/include/opencv2/datasets/dataset.hpp

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -477,6 +477,27 @@ To run benchmark execute:
477477
./opencv/build/bin/example_datasets_tr_svt_benchmark -p=/home/user/path_to_unpacked_folders/svt/svt1/
478478
~~~
479479
480+
@defgroup datasets_track Tracking
481+
482+
### VOT 2015 Database
483+
484+
Implements loading dataset:
485+
486+
"VOT 2015 dataset comprises 60 short sequences showing various objects in challenging backgrounds.
487+
The sequences were chosen from a large pool of sequences including the ALOV dataset, OTB2 dataset,
488+
non-tracking datasets, Computer Vision Online, Professor Bob Fisher’s Image Database, Videezy,
489+
Center for Research in Computer Vision, University of Central Florida, USA, NYU Center for Genomics
490+
and Systems Biology, Data Wrangling, Open Access Directory and Learning and Recognition in Vision
491+
Group, INRIA, France. The VOT sequence selection protocol was applied to obtain a representative
492+
set of challenging sequences.": <http://box.vicos.si/vot/vot2015.zip>
493+
494+
Usage:
495+
-# From link above download dataset file: `vot2015.zip`
496+
-# Unpack `vot2015.zip` into folder: `VOT2015/`
497+
-# To load data run:
498+
~~~
499+
./opencv/build/bin/example_datasets_track_vot -p=/home/user/path_to_unpacked_files/VOT2015/
500+
~~~
480501
@}
481502
482503
*/
Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
/*M///////////////////////////////////////////////////////////////////////////////////////
2+
//
3+
// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4+
//
5+
// By downloading, copying, installing or using the software you agree to this license.
6+
// If you do not agree to this license, do not download, install,
7+
// copy or use the software.
8+
//
9+
//
10+
// License Agreement
11+
// For Open Source Computer Vision Library
12+
//
13+
// Copyright (C) 2014, Itseez Inc, all rights reserved.
14+
// Third party copyrights are property of their respective owners.
15+
//
16+
// Redistribution and use in source and binary forms, with or without modification,
17+
// are permitted provided that the following conditions are met:
18+
//
19+
// * Redistribution's of source code must retain the above copyright notice,
20+
// this list of conditions and the following disclaimer.
21+
//
22+
// * Redistribution's in binary form must reproduce the above copyright notice,
23+
// this list of conditions and the following disclaimer in the documentation
24+
// and/or other materials provided with the distribution.
25+
//
26+
// * The name of the copyright holders may not be used to endorse or promote products
27+
// derived from this software without specific prior written permission.
28+
//
29+
// This software is provided by the copyright holders and contributors "as is" and
30+
// any express or implied warranties, including, but not limited to, the implied
31+
// warranties of merchantability and fitness for a particular purpose are disclaimed.
32+
// In no event shall the Itseez Inc or contributors be liable for any direct,
33+
// indirect, incidental, special, exemplary, or consequential damages
34+
// (including, but not limited to, procurement of substitute goods or services;
35+
// loss of use, data, or profits; or business interruption) however caused
36+
// and on any theory of liability, whether in contract, strict liability,
37+
// or tort (including negligence or otherwise) arising in any way out of
38+
// the use of this software, even if advised of the possibility of such damage.
39+
//
40+
//M*/
41+
42+
#ifndef OPENCV_DATASETS_TRACK_VOT_HPP
43+
#define OPENCV_DATASETS_TRACK_VOT_HPP
44+
45+
#include <string>
46+
#include <vector>
47+
48+
#include "opencv2/datasets/dataset.hpp"
49+
#include "opencv2/datasets/util.hpp"
50+
51+
using namespace std;
52+
53+
namespace cv
54+
{
55+
namespace datasets
56+
{
57+
58+
//! @addtogroup datasets_track
59+
//! @{
60+
61+
struct TRACK_votObj : public Object
62+
{
63+
int id;
64+
std::string imagePath;
65+
vector <Point2d> gtbb;
66+
};
67+
68+
class CV_EXPORTS TRACK_vot : public Dataset
69+
{
70+
public:
71+
static Ptr<TRACK_vot> create();
72+
73+
virtual void load(const std::string &path) = 0;
74+
75+
virtual int getDatasetsNum() = 0;
76+
77+
virtual int getDatasetLength(int id) = 0;
78+
79+
virtual bool initDataset(int id) = 0;
80+
81+
virtual bool getNextFrame(Mat &frame) = 0;
82+
83+
virtual vector <Point2d> getGT() = 0;
84+
85+
protected:
86+
vector <vector <Ptr<TRACK_votObj> > > data;
87+
int activeDatasetID;
88+
int frameCounter;
89+
};
90+
91+
//! @}
92+
93+
}
94+
}
95+
96+
#endif
Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
/*M///////////////////////////////////////////////////////////////////////////////////////
2+
//
3+
// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4+
//
5+
// By downloading, copying, installing or using the software you agree to this license.
6+
// If you do not agree to this license, do not download, install,
7+
// copy or use the software.
8+
//
9+
//
10+
// License Agreement
11+
// For Open Source Computer Vision Library
12+
//
13+
// Copyright (C) 2014, Itseez Inc, all rights reserved.
14+
// Third party copyrights are property of their respective owners.
15+
//
16+
// Redistribution and use in source and binary forms, with or without modification,
17+
// are permitted provided that the following conditions are met:
18+
//
19+
// * Redistribution's of source code must retain the above copyright notice,
20+
// this list of conditions and the following disclaimer.
21+
//
22+
// * Redistribution's in binary form must reproduce the above copyright notice,
23+
// this list of conditions and the following disclaimer in the documentation
24+
// and/or other materials provided with the distribution.
25+
//
26+
// * The name of the copyright holders may not be used to endorse or promote products
27+
// derived from this software without specific prior written permission.
28+
//
29+
// This software is provided by the copyright holders and contributors "as is" and
30+
// any express or implied warranties, including, but not limited to, the implied
31+
// warranties of merchantability and fitness for a particular purpose are disclaimed.
32+
// In no event shall the Itseez Inc or contributors be liable for any direct,
33+
// indirect, incidental, special, exemplary, or consequential damages
34+
// (including, but not limited to, procurement of substitute goods or services;
35+
// loss of use, data, or profits; or business interruption) however caused
36+
// and on any theory of liability, whether in contract, strict liability,
37+
// or tort (including negligence or otherwise) arising in any way out of
38+
// the use of this software, even if advised of the possibility of such damage.
39+
//
40+
//M*/
41+
42+
#include "opencv2/datasets/track_vot.hpp"
43+
#include <opencv2/core.hpp>
44+
#include <opencv2/highgui.hpp>
45+
#include <opencv2/imgproc.hpp>
46+
47+
#include <cstdio>
48+
#include <cstdlib>
49+
50+
#include <string>
51+
#include <vector>
52+
#include <set>
53+
54+
using namespace std;
55+
using namespace cv;
56+
using namespace cv::datasets;
57+
58+
int main(int argc, char *argv[])
59+
{
60+
const char *keys =
61+
"{ help h usage ? | | show this message }"
62+
"{ path p |true| path to folder with dataset }"
63+
"{ datasetID id |1| Dataset ID}";
64+
CommandLineParser parser(argc, argv, keys);
65+
string path(parser.get<string>("path"));
66+
int datasetID(parser.get<int>("datasetID"));
67+
if (parser.has("help") || path == "true")
68+
{
69+
parser.printMessage();
70+
getchar();
71+
return -1;
72+
}
73+
74+
Ptr<TRACK_vot> dataset = TRACK_vot::create();
75+
dataset->load(path);
76+
printf("Datasets number: %d\n", dataset->getDatasetsNum());
77+
for (int i = 1; i <= dataset->getDatasetsNum(); i++)
78+
printf("\tDataset #%d size: %d\n", i, dataset->getDatasetLength(i));
79+
80+
dataset->initDataset(datasetID);
81+
82+
for (int i = 0; i < dataset->getDatasetLength(datasetID); i++)
83+
{
84+
Mat frame;
85+
if (!dataset->getNextFrame(frame))
86+
break;
87+
//Draw Ground Truth BB
88+
vector <Point2d> gtPoints = dataset->getGT();
89+
for (int j = 0; j < (int)(gtPoints.size()-1); j++)
90+
line(frame, gtPoints[j], gtPoints[j + 1], Scalar(0, 255, 0), 2);
91+
line(frame, gtPoints[0], gtPoints[(int)(gtPoints.size()-1)], Scalar(0, 255, 0), 2);
92+
93+
imshow("VOT 2015 DATASET TEST...", frame);
94+
waitKey(100);
95+
}
96+
97+
getchar();
98+
return 0;
99+
}

0 commit comments

Comments
 (0)