Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
O
opencv
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
Commits
a8a84233
Commit
a8a84233
authored
Jan 21, 2013
by
cuda-geek
Committed by
OpenCV Buildbot
Jan 21, 2013
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #311 from cuda-geek:soft-cascade-refactoring-and-fixes
parents
dda337bd
e15bdea6
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
45 additions
and
23 deletions
+45
-23
soft-cascade-17.12.2012.xml
data/softcascade/soft-cascade-17.12.2012.xml
+0
-0
objdetect.hpp
modules/objdetect/include/opencv2/objdetect/objdetect.hpp
+1
-1
perf_cascadeclassifier.cpp
modules/objdetect/perf/perf_cascadeclassifier.cpp
+10
-8
softcascade.cpp
modules/objdetect/src/softcascade.cpp
+0
-0
test_softcascade.cpp
modules/objdetect/test/test_softcascade.cpp
+34
-14
No files found.
data/softcascade/soft-cascade-17.12.2012.xml
0 → 100644
View file @
a8a84233
This diff is collapsed.
Click to expand it.
modules/objdetect/include/opencv2/objdetect/objdetect.hpp
View file @
a8a84233
...
...
@@ -561,7 +561,7 @@ public:
virtual
void
detect
(
InputArray
image
,
InputArray
rois
,
std
::
vector
<
Detection
>&
objects
)
const
;
// Param rects is an output array of bounding rectangles for detected objects.
// Param confs is an output array of confidence for detected objects. i-th bounding rectangle corresponds i-th configence.
CV_WRAP
virtual
void
detect
(
InputArray
image
,
InputArray
rois
,
OutputArray
rects
,
OutputArray
confs
)
const
;
CV_WRAP
virtual
void
detect
(
InputArray
image
,
InputArray
rois
,
CV_OUT
OutputArray
rects
,
CV_OUT
OutputArray
confs
)
const
;
private
:
void
detectNoRoi
(
const
Mat
&
image
,
std
::
vector
<
Detection
>&
objects
)
const
;
...
...
modules/objdetect/perf/perf_cascadeclassifier.cpp
View file @
a8a84233
...
...
@@ -54,19 +54,20 @@ typedef perf::TestBaseWithParam<fixture> detect;
namespace
{
typedef
cv
::
SCascade
::
Detection
detection_t
;
typedef
cv
::
SCascade
::
Detection
detection_t
;
void
extractRacts
(
std
::
vector
<
detection_t
>
objectBoxes
,
vector
<
Rect
>
rects
)
{
void
extractRacts
(
std
::
vector
<
detection_t
>
objectBoxes
,
vector
<
Rect
>&
rects
)
{
rects
.
clear
();
for
(
int
i
=
0
;
i
<
(
int
)
objectBoxes
.
size
();
++
i
)
rects
.
push_back
(
objectBoxes
[
i
].
bb
);
}
rects
.
push_back
(
objectBoxes
[
i
].
bb
);
}
}
PERF_TEST_P
(
detect
,
SCascade
,
testing
::
Combine
(
testing
::
Values
(
std
::
string
(
"cv/cascadeandhog/
sc_cvpr_2012_to_opencv
.xml"
)),
testing
::
Values
(
std
::
string
(
"cv/cascadeandhog/
bahnhof
/image_00000000_0.png"
))))
testing
::
Combine
(
testing
::
Values
(
std
::
string
(
"cv/cascadeandhog/
cascades/inria_caltech-17.01.2013
.xml"
)),
testing
::
Values
(
std
::
string
(
"cv/cascadeandhog/
images
/image_00000000_0.png"
))))
{
typedef
cv
::
SCascade
::
Detection
Detection
;
cv
::
Mat
colored
=
imread
(
getDataPath
(
get
<
1
>
(
GetParam
())));
...
...
@@ -89,4 +90,4 @@ PERF_TEST_P(detect, SCascade,
extractRacts
(
objectBoxes
,
rects
);
std
::
sort
(
rects
.
begin
(),
rects
.
end
(),
comparators
::
RectLess
());
SANITY_CHECK
(
rects
);
}
}
\ No newline at end of file
modules/objdetect/src/softcascade.cpp
View file @
a8a84233
This diff is collapsed.
Click to expand it.
modules/objdetect/test/test_softcascade.cpp
View file @
a8a84233
...
...
@@ -40,61 +40,63 @@
//
//M*/
#include <string>
#include <fstream>
#include "test_precomp.hpp"
TEST
(
SCascade
,
readCascade
)
{
std
::
string
xml
=
cvtest
::
TS
::
ptr
()
->
get_data_path
()
+
"cascadeandhog/
icf-template
.xml"
;
std
::
string
xml
=
cvtest
::
TS
::
ptr
()
->
get_data_path
()
+
"cascadeandhog/
cascades/inria_caltech-17.01.2013
.xml"
;
cv
::
SCascade
cascade
;
cv
::
FileStorage
fs
(
xml
,
cv
::
FileStorage
::
READ
);
ASSERT_TRUE
(
fs
.
isOpened
());
ASSERT_TRUE
(
cascade
.
load
(
fs
.
getFirstTopLevelNode
()));
}
TEST
(
SCascade
,
detect
)
{
typedef
cv
::
SCascade
::
Detection
Detection
;
std
::
string
xml
=
cvtest
::
TS
::
ptr
()
->
get_data_path
()
+
"cascadeandhog/sc_cvpr_2012_to_opencv
.xml"
;
std
::
string
xml
=
cvtest
::
TS
::
ptr
()
->
get_data_path
()
+
"cascadeandhog/cascades/inria_caltech-17.01.2013
.xml"
;
cv
::
SCascade
cascade
;
cv
::
FileStorage
fs
(
xml
,
cv
::
FileStorage
::
READ
);
ASSERT_TRUE
(
cascade
.
load
(
fs
.
getFirstTopLevelNode
()));
cv
::
Mat
colored
=
cv
::
imread
(
cvtest
::
TS
::
ptr
()
->
get_data_path
()
+
"cascadeandhog/bahnhof
/image_00000000_0.png"
);
cv
::
Mat
colored
=
cv
::
imread
(
cvtest
::
TS
::
ptr
()
->
get_data_path
()
+
"cascadeandhog/images
/image_00000000_0.png"
);
ASSERT_FALSE
(
colored
.
empty
());
std
::
vector
<
Detection
>
objects
;
cascade
.
detect
(
colored
,
cv
::
noArray
(),
objects
);
ASSERT_EQ
(
1459
,
(
int
)
objects
.
size
());
ASSERT_EQ
(
719
,
(
int
)
objects
.
size
());
}
TEST
(
SCascade
,
detectSeparate
)
{
typedef
cv
::
SCascade
::
Detection
Detection
;
std
::
string
xml
=
cvtest
::
TS
::
ptr
()
->
get_data_path
()
+
"cascadeandhog/
sc_cvpr_2012_to_opencv
.xml"
;
std
::
string
xml
=
cvtest
::
TS
::
ptr
()
->
get_data_path
()
+
"cascadeandhog/
cascades/inria_caltech-17.01.2013
.xml"
;
cv
::
SCascade
cascade
;
cv
::
FileStorage
fs
(
xml
,
cv
::
FileStorage
::
READ
);
ASSERT_TRUE
(
cascade
.
load
(
fs
.
getFirstTopLevelNode
()));
cv
::
Mat
colored
=
cv
::
imread
(
cvtest
::
TS
::
ptr
()
->
get_data_path
()
+
"cascadeandhog/
bahnhof
/image_00000000_0.png"
);
cv
::
Mat
colored
=
cv
::
imread
(
cvtest
::
TS
::
ptr
()
->
get_data_path
()
+
"cascadeandhog/
images
/image_00000000_0.png"
);
ASSERT_FALSE
(
colored
.
empty
());
cv
::
Mat
rects
,
confs
;
cascade
.
detect
(
colored
,
cv
::
noArray
(),
rects
,
confs
);
ASSERT_EQ
(
145
9
,
confs
.
cols
);
ASSERT_EQ
(
71
9
,
confs
.
cols
);
}
TEST
(
SCascade
,
detectRoi
)
{
typedef
cv
::
SCascade
::
Detection
Detection
;
std
::
string
xml
=
cvtest
::
TS
::
ptr
()
->
get_data_path
()
+
"cascadeandhog/
sc_cvpr_2012_to_opencv
.xml"
;
std
::
string
xml
=
cvtest
::
TS
::
ptr
()
->
get_data_path
()
+
"cascadeandhog/
cascades/inria_caltech-17.01.2013
.xml"
;
cv
::
SCascade
cascade
;
cv
::
FileStorage
fs
(
xml
,
cv
::
FileStorage
::
READ
);
ASSERT_TRUE
(
cascade
.
load
(
fs
.
getFirstTopLevelNode
()));
cv
::
Mat
colored
=
cv
::
imread
(
cvtest
::
TS
::
ptr
()
->
get_data_path
()
+
"cascadeandhog/
bahnhof
/image_00000000_0.png"
);
cv
::
Mat
colored
=
cv
::
imread
(
cvtest
::
TS
::
ptr
()
->
get_data_path
()
+
"cascadeandhog/
images
/image_00000000_0.png"
);
ASSERT_FALSE
(
colored
.
empty
());
std
::
vector
<
Detection
>
objects
;
...
...
@@ -102,18 +104,18 @@ TEST(SCascade, detectRoi)
rois
.
push_back
(
cv
::
Rect
(
0
,
0
,
640
,
480
));
cascade
.
detect
(
colored
,
rois
,
objects
);
ASSERT_EQ
(
145
9
,
(
int
)
objects
.
size
());
ASSERT_EQ
(
71
9
,
(
int
)
objects
.
size
());
}
TEST
(
SCascade
,
detectNoRoi
)
{
typedef
cv
::
SCascade
::
Detection
Detection
;
std
::
string
xml
=
cvtest
::
TS
::
ptr
()
->
get_data_path
()
+
"cascadeandhog/
sc_cvpr_2012_to_opencv
.xml"
;
std
::
string
xml
=
cvtest
::
TS
::
ptr
()
->
get_data_path
()
+
"cascadeandhog/
cascades/inria_caltech-17.01.2013
.xml"
;
cv
::
SCascade
cascade
;
cv
::
FileStorage
fs
(
xml
,
cv
::
FileStorage
::
READ
);
ASSERT_TRUE
(
cascade
.
load
(
fs
.
getFirstTopLevelNode
()));
cv
::
Mat
colored
=
cv
::
imread
(
cvtest
::
TS
::
ptr
()
->
get_data_path
()
+
"cascadeandhog/
bahnhof
/image_00000000_0.png"
);
cv
::
Mat
colored
=
cv
::
imread
(
cvtest
::
TS
::
ptr
()
->
get_data_path
()
+
"cascadeandhog/
images
/image_00000000_0.png"
);
ASSERT_FALSE
(
colored
.
empty
());
std
::
vector
<
Detection
>
objects
;
...
...
@@ -121,5 +123,22 @@ TEST(SCascade, detectNoRoi)
cascade
.
detect
(
colored
,
rois
,
objects
);
ASSERT_EQ
(
719
,
(
int
)
objects
.
size
());
}
TEST
(
SCascade
,
detectEmptyRoi
)
{
typedef
cv
::
SCascade
::
Detection
Detection
;
std
::
string
xml
=
cvtest
::
TS
::
ptr
()
->
get_data_path
()
+
"cascadeandhog/cascades/inria_caltech-17.01.2013.xml"
;
cv
::
SCascade
cascade
;
cv
::
FileStorage
fs
(
xml
,
cv
::
FileStorage
::
READ
);
ASSERT_TRUE
(
cascade
.
load
(
fs
.
getFirstTopLevelNode
()));
cv
::
Mat
colored
=
cv
::
imread
(
cvtest
::
TS
::
ptr
()
->
get_data_path
()
+
"cascadeandhog/images/image_00000000_0.png"
);
ASSERT_FALSE
(
colored
.
empty
());
std
::
vector
<
Detection
>
objects
;
cascade
.
detect
(
colored
,
cv
::
Mat
::
zeros
(
colored
.
size
(),
CV_8UC1
),
objects
);
ASSERT_EQ
(
0
,
(
int
)
objects
.
size
());
}
\ No newline at end of file
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