Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
O
opencv_contrib
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
opencv_contrib
Commits
a5351d9e
Commit
a5351d9e
authored
Sep 20, 2014
by
Dmitriy Anisimov
Committed by
dmitriy.anisimov
Oct 10, 2014
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
added Caltech Pedestrian dataset loading
parent
74fbe96b
Hide whitespace changes
Inline
Side-by-side
Showing
27 changed files
with
411 additions
and
2 deletions
+411
-2
datasets.rst
modules/datasets/doc/datasets.rst
+26
-0
pd_caltech.hpp
modules/datasets/include/opencv2/datasets/pd_caltech.hpp
+84
-0
util.hpp
modules/datasets/include/opencv2/datasets/util.hpp
+2
-0
pd_caltech.cpp
modules/datasets/samples/pd_caltech.cpp
+86
-0
ar_hmdb.cpp
modules/datasets/src/ar_hmdb.cpp
+1
-0
ar_sports.cpp
modules/datasets/src/ar_sports.cpp
+1
-0
dataset.cpp
modules/datasets/src/dataset.cpp
+1
-0
fr_lfw.cpp
modules/datasets/src/fr_lfw.cpp
+1
-0
gr_chalearn.cpp
modules/datasets/src/gr_chalearn.cpp
+1
-0
gr_skig.cpp
modules/datasets/src/gr_skig.cpp
+1
-0
hpe_parse.cpp
modules/datasets/src/hpe_parse.cpp
+1
-0
ir_affine.cpp
modules/datasets/src/ir_affine.cpp
+1
-0
ir_robot.cpp
modules/datasets/src/ir_robot.cpp
+1
-0
is_bsds.cpp
modules/datasets/src/is_bsds.cpp
+1
-0
is_weizmann.cpp
modules/datasets/src/is_weizmann.cpp
+1
-0
msm_epfl.cpp
modules/datasets/src/msm_epfl.cpp
+1
-0
msm_middlebury.cpp
modules/datasets/src/msm_middlebury.cpp
+1
-0
or_imagenet.cpp
modules/datasets/src/or_imagenet.cpp
+1
-0
or_mnist.cpp
modules/datasets/src/or_mnist.cpp
+1
-0
or_sun.cpp
modules/datasets/src/or_sun.cpp
+1
-0
pd_caltech.cpp
modules/datasets/src/pd_caltech.cpp
+183
-0
precomp.hpp
modules/datasets/src/precomp.hpp
+0
-2
slam_kitti.cpp
modules/datasets/src/slam_kitti.cpp
+1
-0
slam_tumindoor.cpp
modules/datasets/src/slam_tumindoor.cpp
+1
-0
tr_chars.cpp
modules/datasets/src/tr_chars.cpp
+1
-0
tr_svt.cpp
modules/datasets/src/tr_svt.cpp
+1
-0
util.cpp
modules/datasets/src/util.cpp
+10
-0
No files found.
modules/datasets/doc/datasets.rst
View file @
a5351d9e
...
...
@@ -278,6 +278,32 @@ Currently implemented loading "Scene Recognition Benchmark. SUN397". Planned to
3. To load data run: ./opencv/build/bin/example_datasets_or_sun -p=/home/user/path_to_unpacked_folder/SUN397/
Pedestrian Detection
--------------------
PD_caltech
==========
.. ocv:class:: PD_caltech
Implements loading dataset:
_`"Caltech Pedestrian Detection Benchmark"`: http://www.vision.caltech.edu/Image_Datasets/CaltechPedestrians/
.. note:: First version of Caltech Pedestrian dataset loading.
Code to unpack all frames from seq files commented as their number is huge!
So currently load only meta information without data.
Also ground truth isn't processed, as need to convert it from mat files first.
.. note:: Usage
1. From link above download dataset files: set00.tar-set10.tar.
2. Unpack them to separate folder.
3. To load data run: ./opencv/build/bin/example_datasets_pd_caltech -p=/home/user/path_to_unpacked_folders/
SLAM
----
...
...
modules/datasets/include/opencv2/datasets/pd_caltech.hpp
0 → 100644
View file @
a5351d9e
/*M///////////////////////////////////////////////////////////////////////////////////////
//
// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
//
// By downloading, copying, installing or using the software you agree to this license.
// If you do not agree to this license, do not download, install,
// copy or use the software.
//
//
// License Agreement
// For Open Source Computer Vision Library
//
// Copyright (C) 2014, Itseez Inc, all rights reserved.
// Third party copyrights are property of their respective owners.
//
// Redistribution and use in source and binary forms, with or without modification,
// are permitted provided that the following conditions are met:
//
// * Redistribution's of source code must retain the above copyright notice,
// this list of conditions and the following disclaimer.
//
// * Redistribution's in binary form must reproduce the above copyright notice,
// this list of conditions and the following disclaimer in the documentation
// and/or other materials provided with the distribution.
//
// * The name of the copyright holders may not be used to endorse or promote products
// derived from this software without specific prior written permission.
//
// This software is provided by the copyright holders and contributors "as is" and
// any express or implied warranties, including, but not limited to, the implied
// warranties of merchantability and fitness for a particular purpose are disclaimed.
// In no event shall the Itseez Inc or contributors be liable for any direct,
// indirect, incidental, special, exemplary, or consequential damages
// (including, but not limited to, procurement of substitute goods or services;
// loss of use, data, or profits; or business interruption) however caused
// and on any theory of liability, whether in contract, strict liability,
// or tort (including negligence or otherwise) arising in any way out of
// the use of this software, even if advised of the possibility of such damage.
//
//M*/
#ifndef OPENCV_DATASETS_PD_CALTECH_HPP
#define OPENCV_DATASETS_PD_CALTECH_HPP
#include <string>
#include <vector>
#include "opencv2/datasets/dataset.hpp"
#include <opencv2/core.hpp>
namespace
cv
{
namespace
datasets
{
struct
PD_caltechObj
:
public
Object
{
//double groundTrue[][];
//Mat image;
std
::
string
name
;
std
::
vector
<
std
::
string
>
imageNames
;
};
//
// first version of Caltech Pedestrian dataset loading
// code to unpack all frames from seq files commented as their number is huge
// so currently load only meta information without data
//
// also ground truth isn't processed, as need to convert it from mat files first
//
class
CV_EXPORTS
PD_caltech
:
public
Dataset
{
public
:
virtual
void
load
(
const
std
::
string
&
path
)
=
0
;
static
Ptr
<
PD_caltech
>
create
();
};
}
}
#endif
modules/datasets/include/opencv2/datasets/util.hpp
View file @
a5351d9e
...
...
@@ -54,6 +54,8 @@ namespace datasets
void
CV_EXPORTS
split
(
const
std
::
string
&
s
,
std
::
vector
<
std
::
string
>
&
elems
,
char
delim
);
void
CV_EXPORTS
createDirectory
(
const
std
::
string
&
path
);
void
CV_EXPORTS
getDirList
(
const
std
::
string
&
dirName
,
std
::
vector
<
std
::
string
>
&
fileNames
);
}
...
...
modules/datasets/samples/pd_caltech.cpp
0 → 100644
View file @
a5351d9e
/*M///////////////////////////////////////////////////////////////////////////////////////
//
// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
//
// By downloading, copying, installing or using the software you agree to this license.
// If you do not agree to this license, do not download, install,
// copy or use the software.
//
//
// License Agreement
// For Open Source Computer Vision Library
//
// Copyright (C) 2014, Itseez Inc, all rights reserved.
// Third party copyrights are property of their respective owners.
//
// Redistribution and use in source and binary forms, with or without modification,
// are permitted provided that the following conditions are met:
//
// * Redistribution's of source code must retain the above copyright notice,
// this list of conditions and the following disclaimer.
//
// * Redistribution's in binary form must reproduce the above copyright notice,
// this list of conditions and the following disclaimer in the documentation
// and/or other materials provided with the distribution.
//
// * The name of the copyright holders may not be used to endorse or promote products
// derived from this software without specific prior written permission.
//
// This software is provided by the copyright holders and contributors "as is" and
// any express or implied warranties, including, but not limited to, the implied
// warranties of merchantability and fitness for a particular purpose are disclaimed.
// In no event shall the Itseez Inc or contributors be liable for any direct,
// indirect, incidental, special, exemplary, or consequential damages
// (including, but not limited to, procurement of substitute goods or services;
// loss of use, data, or profits; or business interruption) however caused
// and on any theory of liability, whether in contract, strict liability,
// or tort (including negligence or otherwise) arising in any way out of
// the use of this software, even if advised of the possibility of such damage.
//
//M*/
#include "opencv2/datasets/pd_caltech.hpp"
#include <opencv2/core.hpp>
#include <cstdio>
#include <string>
#include <vector>
using
namespace
std
;
using
namespace
cv
;
using
namespace
cv
::
datasets
;
int
main
(
int
argc
,
char
*
argv
[])
{
const
char
*
keys
=
"{ help h usage ? | | show this message }"
"{ path p |true| path to dataset }"
;
CommandLineParser
parser
(
argc
,
argv
,
keys
);
string
path
(
parser
.
get
<
string
>
(
"path"
));
if
(
parser
.
has
(
"help"
)
||
path
==
"true"
)
{
parser
.
printMessage
();
return
-
1
;
}
Ptr
<
PD_caltech
>
dataset
=
PD_caltech
::
create
();
dataset
->
load
(
path
);
// ***************
// dataset contains for each object its images.
// currently on loading extract all images to folder path/../images/
// For example, let output train size and first element of first object
// and number of it's images.
printf
(
"train size: %u
\n
"
,
(
unsigned
int
)
dataset
->
getTrain
().
size
());
PD_caltechObj
*
example
=
static_cast
<
PD_caltechObj
*>
(
dataset
->
getTrain
()[
0
].
get
());
printf
(
"first train object:
\n
"
);
printf
(
"name: %s
\n
"
,
example
->
name
.
c_str
());
printf
(
"images number: %u
\n
"
,
(
unsigned
int
)
example
->
imageNames
.
size
());
printf
(
"first image name: %s
\n
"
,
example
->
imageNames
[
0
].
c_str
());
printf
(
"images were extracted to path/../images/
\n
"
);
return
0
;
}
modules/datasets/src/ar_hmdb.cpp
View file @
a5351d9e
...
...
@@ -40,6 +40,7 @@
//M*/
#include "opencv2/datasets/ar_hmdb.hpp"
#include "opencv2/datasets/util.hpp"
#include "precomp.hpp"
namespace
cv
...
...
modules/datasets/src/ar_sports.cpp
View file @
a5351d9e
...
...
@@ -40,6 +40,7 @@
//M*/
#include "opencv2/datasets/ar_sports.hpp"
#include "opencv2/datasets/util.hpp"
#include "precomp.hpp"
namespace
cv
...
...
modules/datasets/src/dataset.cpp
View file @
a5351d9e
...
...
@@ -40,6 +40,7 @@
//M*/
#include "opencv2/datasets/dataset.hpp"
#include "opencv2/datasets/util.hpp"
#include "precomp.hpp"
namespace
cv
...
...
modules/datasets/src/fr_lfw.cpp
View file @
a5351d9e
...
...
@@ -40,6 +40,7 @@
//M*/
#include "opencv2/datasets/fr_lfw.hpp"
#include "opencv2/datasets/util.hpp"
#include "precomp.hpp"
#include <map>
...
...
modules/datasets/src/gr_chalearn.cpp
View file @
a5351d9e
...
...
@@ -40,6 +40,7 @@
//M*/
#include "opencv2/datasets/gr_chalearn.hpp"
#include "opencv2/datasets/util.hpp"
#include "precomp.hpp"
namespace
cv
...
...
modules/datasets/src/gr_skig.cpp
View file @
a5351d9e
...
...
@@ -40,6 +40,7 @@
//M*/
#include "opencv2/datasets/gr_skig.hpp"
#include "opencv2/datasets/util.hpp"
#include "precomp.hpp"
#include <cstring>
...
...
modules/datasets/src/hpe_parse.cpp
View file @
a5351d9e
...
...
@@ -40,6 +40,7 @@
//M*/
#include "opencv2/datasets/hpe_parse.hpp"
#include "opencv2/datasets/util.hpp"
#include "precomp.hpp"
namespace
cv
...
...
modules/datasets/src/ir_affine.cpp
View file @
a5351d9e
...
...
@@ -40,6 +40,7 @@
//M*/
#include "opencv2/datasets/ir_affine.hpp"
#include "opencv2/datasets/util.hpp"
#include "precomp.hpp"
namespace
cv
...
...
modules/datasets/src/ir_robot.cpp
View file @
a5351d9e
...
...
@@ -40,6 +40,7 @@
//M*/
#include "opencv2/datasets/ir_robot.hpp"
#include "opencv2/datasets/util.hpp"
#include "precomp.hpp"
namespace
cv
...
...
modules/datasets/src/is_bsds.cpp
View file @
a5351d9e
...
...
@@ -40,6 +40,7 @@
//M*/
#include "opencv2/datasets/is_bsds.hpp"
#include "opencv2/datasets/util.hpp"
#include "precomp.hpp"
namespace
cv
...
...
modules/datasets/src/is_weizmann.cpp
View file @
a5351d9e
...
...
@@ -40,6 +40,7 @@
//M*/
#include "opencv2/datasets/is_weizmann.hpp"
#include "opencv2/datasets/util.hpp"
#include "precomp.hpp"
namespace
cv
...
...
modules/datasets/src/msm_epfl.cpp
View file @
a5351d9e
...
...
@@ -40,6 +40,7 @@
//M*/
#include "opencv2/datasets/msm_epfl.hpp"
#include "opencv2/datasets/util.hpp"
#include "precomp.hpp"
namespace
cv
...
...
modules/datasets/src/msm_middlebury.cpp
View file @
a5351d9e
...
...
@@ -40,6 +40,7 @@
//M*/
#include "opencv2/datasets/msm_middlebury.hpp"
#include "opencv2/datasets/util.hpp"
#include "precomp.hpp"
namespace
cv
...
...
modules/datasets/src/or_imagenet.cpp
View file @
a5351d9e
...
...
@@ -40,6 +40,7 @@
//M*/
#include "opencv2/datasets/or_imagenet.hpp"
#include "opencv2/datasets/util.hpp"
#include "precomp.hpp"
namespace
cv
...
...
modules/datasets/src/or_mnist.cpp
View file @
a5351d9e
...
...
@@ -40,6 +40,7 @@
//M*/
#include "opencv2/datasets/or_mnist.hpp"
#include "opencv2/datasets/util.hpp"
#include "precomp.hpp"
namespace
cv
...
...
modules/datasets/src/or_sun.cpp
View file @
a5351d9e
...
...
@@ -40,6 +40,7 @@
//M*/
#include "opencv2/datasets/or_sun.hpp"
#include "opencv2/datasets/util.hpp"
#include "precomp.hpp"
namespace
cv
...
...
modules/datasets/src/pd_caltech.cpp
0 → 100644
View file @
a5351d9e
/*M///////////////////////////////////////////////////////////////////////////////////////
//
// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
//
// By downloading, copying, installing or using the software you agree to this license.
// If you do not agree to this license, do not download, install,
// copy or use the software.
//
//
// License Agreement
// For Open Source Computer Vision Library
//
// Copyright (C) 2014, Itseez Inc, all rights reserved.
// Third party copyrights are property of their respective owners.
//
// Redistribution and use in source and binary forms, with or without modification,
// are permitted provided that the following conditions are met:
//
// * Redistribution's of source code must retain the above copyright notice,
// this list of conditions and the following disclaimer.
//
// * Redistribution's in binary form must reproduce the above copyright notice,
// this list of conditions and the following disclaimer in the documentation
// and/or other materials provided with the distribution.
//
// * The name of the copyright holders may not be used to endorse or promote products
// derived from this software without specific prior written permission.
//
// This software is provided by the copyright holders and contributors "as is" and
// any express or implied warranties, including, but not limited to, the implied
// warranties of merchantability and fitness for a particular purpose are disclaimed.
// In no event shall the Itseez Inc or contributors be liable for any direct,
// indirect, incidental, special, exemplary, or consequential damages
// (including, but not limited to, procurement of substitute goods or services;
// loss of use, data, or profits; or business interruption) however caused
// and on any theory of liability, whether in contract, strict liability,
// or tort (including negligence or otherwise) arising in any way out of
// the use of this software, even if advised of the possibility of such damage.
//
//M*/
#include "opencv2/datasets/pd_caltech.hpp"
#include "opencv2/datasets/util.hpp"
#include "precomp.hpp"
namespace
cv
{
namespace
datasets
{
using
namespace
std
;
class
CV_EXPORTS
PD_caltechImp
:
public
PD_caltech
{
public
:
PD_caltechImp
()
{}
//PD_caltechImp(const string &path);
virtual
~
PD_caltechImp
()
{}
virtual
void
load
(
const
string
&
path
);
private
:
void
loadDataset
(
const
string
&
path
);
};
/*PD_caltechImp::PD_caltechImp(const string &path)
{
loadDataset(path);
}*/
void
PD_caltechImp
::
load
(
const
string
&
path
)
{
loadDataset
(
path
);
}
void
PD_caltechImp
::
loadDataset
(
const
string
&
path
)
{
train
.
push_back
(
vector
<
Ptr
<
Object
>
>
());
test
.
push_back
(
vector
<
Ptr
<
Object
>
>
());
validation
.
push_back
(
vector
<
Ptr
<
Object
>
>
());
createDirectory
((
path
+
"../images/"
));
vector
<
string
>
objectNames
;
getDirList
(
path
,
objectNames
);
for
(
vector
<
string
>::
iterator
it
=
objectNames
.
begin
();
it
!=
objectNames
.
end
();
++
it
)
{
Ptr
<
PD_caltechObj
>
curr
(
new
PD_caltechObj
);
curr
->
name
=
*
it
;
string
objectPath
(
path
+
"../images/"
+
curr
->
name
+
"/"
);
createDirectory
(
objectPath
);
string
seqImagesPath
(
path
+
curr
->
name
+
"/"
);
vector
<
string
>
seqNames
;
getDirList
(
seqImagesPath
,
seqNames
);
for
(
vector
<
string
>::
iterator
itSeq
=
seqNames
.
begin
();
itSeq
!=
seqNames
.
end
();
++
itSeq
)
{
string
&
seqName
=
*
itSeq
;
createDirectory
((
objectPath
+
seqName
));
FILE
*
f
=
fopen
((
seqImagesPath
+
seqName
).
c_str
(),
"rb"
);
#define SKIP 28+8+512
fseek
(
f
,
SKIP
,
SEEK_CUR
);
unsigned
int
header
[
9
];
size_t
res
=
fread
(
header
,
9
,
4
,
f
);
double
fps
;
res
=
fread
(
&
fps
,
1
,
8
,
f
);
fseek
(
f
,
432
,
SEEK_CUR
);
/*printf("width %u\n", header[0]);
printf("height %u\n", header[1]);
printf("imageBitDepth %u\n", header[2]);
printf("imageBitDepthReal %u\n", header[3]);
printf("imageSizeBytes %u\n", header[4]);
printf("imageFormat %u\n", header[5]);
printf("numFrames %u\n", numFrames);
printf("fps %f\n", fps);
printf("trueImageSize %u\n", header[8]);*/
unsigned
int
numFrames
=
header
[
6
];
string
ext
;
switch
(
header
[
5
])
{
case
100
:
case
200
:
ext
=
"raw"
;
break
;
case
101
:
ext
=
"brgb8"
;
break
;
case
102
:
case
201
:
ext
=
"jpg"
;
break
;
case
103
:
ext
=
"jbrgb"
;
break
;
case
001
:
case
002
:
ext
=
"png"
;
break
;
}
for
(
unsigned
int
i
=
0
;
i
<
numFrames
;
++
i
)
{
unsigned
int
size
;
res
=
fread
(
&
size
,
1
,
4
,
f
);
char
imgName
[
20
];
sprintf
(
imgName
,
"/%u.%s"
,
i
,
ext
.
c_str
());
curr
->
imageNames
.
push_back
(
imgName
);
// comment fseek and uncomment next block to unpack all frames
fseek
(
f
,
size
,
SEEK_CUR
);
/*char *img = new char[size];
fread(img, size, 1, f);
string imgPath(objectPath + seqName + imgName);
FILE *fImg = fopen(imgPath.c_str(), "wb");
fwrite(img, size, 1, fImg);
fclose(fImg);
delete[] img;*/
fseek
(
f
,
12
,
SEEK_CUR
);
}
fclose
(
f
);
}
train
.
back
().
push_back
(
curr
);
}
}
Ptr
<
PD_caltech
>
PD_caltech
::
create
()
{
return
Ptr
<
PD_caltechImp
>
(
new
PD_caltechImp
);
}
}
}
modules/datasets/src/precomp.hpp
View file @
a5351d9e
...
...
@@ -47,6 +47,4 @@
#include <fstream>
#include "opencv2/datasets/util.hpp"
#endif
modules/datasets/src/slam_kitti.cpp
View file @
a5351d9e
...
...
@@ -40,6 +40,7 @@
//M*/
#include "opencv2/datasets/slam_kitti.hpp"
#include "opencv2/datasets/util.hpp"
#include "precomp.hpp"
namespace
cv
...
...
modules/datasets/src/slam_tumindoor.cpp
View file @
a5351d9e
...
...
@@ -40,6 +40,7 @@
//M*/
#include "opencv2/datasets/slam_tumindoor.hpp"
#include "opencv2/datasets/util.hpp"
#include "precomp.hpp"
#include <cstring>
...
...
modules/datasets/src/tr_chars.cpp
View file @
a5351d9e
...
...
@@ -40,6 +40,7 @@
//M*/
#include "opencv2/datasets/tr_chars.hpp"
#include "opencv2/datasets/util.hpp"
#include "precomp.hpp"
namespace
cv
...
...
modules/datasets/src/tr_svt.cpp
View file @
a5351d9e
...
...
@@ -40,6 +40,7 @@
//M*/
#include "opencv2/datasets/tr_svt.hpp"
#include "opencv2/datasets/util.hpp"
#include "precomp.hpp"
#include <opencv2/datasets/tinyxml2/tinyxml2.h>
...
...
modules/datasets/src/util.cpp
View file @
a5351d9e
...
...
@@ -48,6 +48,7 @@
#ifdef __GNUC__
#include <unistd.h>
#include <dirent.h>
#include <sys/stat.h>
#else
#include <io.h>
#include <direct.h>
...
...
@@ -70,6 +71,15 @@ void split(const string &s, vector<string> &elems, char delim)
}
}
void
createDirectory
(
const
string
&
path
)
{
#ifdef __GNUC__
mkdir
(
path
.
c_str
(),
S_IRWXU
|
S_IRWXG
|
S_IROTH
|
S_IXOTH
);
#else
mkdir
(
path
.
c_str
());
#endif
}
void
getDirList
(
const
string
&
dirName
,
vector
<
string
>
&
fileNames
)
{
#ifdef __GNUC__
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment