Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Opencv
提交
9a62df16
O
Opencv
项目概览
Greenplum
/
Opencv
12 个月 前同步成功
通知
7
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
Opencv
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
9a62df16
编写于
1月 30, 2014
作者:
K
Konstantin Matskevich
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
HOG
上级
0fef7f8b
变更
4
展开全部
隐藏空白更改
内联
并排
Showing
4 changed file
with
1381 addition
and
11 deletion
+1381
-11
modules/objdetect/include/opencv2/objdetect.hpp
modules/objdetect/include/opencv2/objdetect.hpp
+13
-3
modules/objdetect/src/hog.cpp
modules/objdetect/src/hog.cpp
+521
-8
modules/objdetect/src/opencl/objdetect_hog.cl
modules/objdetect/src/opencl/objdetect_hog.cl
+726
-0
modules/objdetect/test/opencl/test_hogdetector.cpp
modules/objdetect/test/opencl/test_hogdetector.cpp
+121
-0
未找到文件。
modules/objdetect/include/opencv2/objdetect.hpp
浏览文件 @
9a62df16
...
...
@@ -308,10 +308,13 @@ public:
CV_WRAP
virtual
void
save
(
const
String
&
filename
,
const
String
&
objname
=
String
())
const
;
virtual
void
copyTo
(
HOGDescriptor
&
c
)
const
;
CV_WRAP
virtual
void
compute
(
const
Mat
&
img
,
CV_WRAP
virtual
void
compute
(
InputArray
img
,
CV_OUT
std
::
vector
<
float
>&
descriptors
,
Size
winStride
=
Size
(),
Size
padding
=
Size
(),
const
std
::
vector
<
Point
>&
locations
=
std
::
vector
<
Point
>
())
const
;
virtual
bool
ocl_compute
(
InputArray
_img
,
Size
win_stride
,
std
::
vector
<
float
>&
descriptors
,
int
descr_format
)
const
;
//with found weights output
CV_WRAP
virtual
void
detect
(
const
Mat
&
img
,
CV_OUT
std
::
vector
<
Point
>&
foundLocations
,
CV_OUT
std
::
vector
<
double
>&
weights
,
...
...
@@ -323,16 +326,22 @@ public:
double
hitThreshold
=
0
,
Size
winStride
=
Size
(),
Size
padding
=
Size
(),
const
std
::
vector
<
Point
>&
searchLocations
=
std
::
vector
<
Point
>
())
const
;
//ocl
virtual
bool
ocl_detect
(
const
UMat
&
img
,
std
::
vector
<
Point
>
&
hits
,
double
hitThreshold
=
0
,
Size
winStride
=
Size
())
const
;
//with result weights output
CV_WRAP
virtual
void
detectMultiScale
(
const
Mat
&
img
,
CV_OUT
std
::
vector
<
Rect
>&
foundLocations
,
CV_WRAP
virtual
void
detectMultiScale
(
InputArray
img
,
CV_OUT
std
::
vector
<
Rect
>&
foundLocations
,
CV_OUT
std
::
vector
<
double
>&
foundWeights
,
double
hitThreshold
=
0
,
Size
winStride
=
Size
(),
Size
padding
=
Size
(),
double
scale
=
1.05
,
double
finalThreshold
=
2.0
,
bool
useMeanshiftGrouping
=
false
)
const
;
//without found weights output
virtual
void
detectMultiScale
(
const
Mat
&
img
,
CV_OUT
std
::
vector
<
Rect
>&
foundLocations
,
virtual
void
detectMultiScale
(
InputArray
img
,
CV_OUT
std
::
vector
<
Rect
>&
foundLocations
,
double
hitThreshold
=
0
,
Size
winStride
=
Size
(),
Size
padding
=
Size
(),
double
scale
=
1.05
,
double
finalThreshold
=
2.0
,
bool
useMeanshiftGrouping
=
false
)
const
;
//ocl
virtual
bool
ocl_detectMultiScale
(
InputArray
img
,
std
::
vector
<
Rect
>
&
found_locations
,
std
::
vector
<
double
>&
level_scale
,
double
hit_threshold
,
Size
winStride
,
double
groupThreshold
)
const
;
CV_WRAP
virtual
void
computeGradient
(
const
Mat
&
img
,
CV_OUT
Mat
&
grad
,
CV_OUT
Mat
&
angleOfs
,
Size
paddingTL
=
Size
(),
Size
paddingBR
=
Size
())
const
;
...
...
@@ -351,6 +360,7 @@ public:
CV_PROP
double
L2HysThreshold
;
CV_PROP
bool
gammaCorrection
;
CV_PROP
std
::
vector
<
float
>
svmDetector
;
CV_PROP
std
::
vector
<
float
>
oclSvmDetector
;
CV_PROP
int
nlevels
;
...
...
modules/objdetect/src/hog.cpp
浏览文件 @
9a62df16
此差异已折叠。
点击以展开。
modules/objdetect/src/opencl/objdetect_hog.cl
0 → 100644
浏览文件 @
9a62df16
此差异已折叠。
点击以展开。
modules/objdetect/test/opencl/test_hogdetector.cpp
0 → 100644
浏览文件 @
9a62df16
///////////////////////////////////////////////////////////////////////////////////////
//
// 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) 2010-2012, Institute Of Software Chinese Academy Of Science, all rights reserved.
// Copyright (C) 2010-2012, Advanced Micro Devices, Inc., all rights reserved.
// Copyright (C) 2010-2012, Multicoreware, Inc., all rights reserved.
// Third party copyrights are property of their respective owners.
//
// @Authors
// Niko Li, newlife20080214@gmail.com
// Jia Haipeng, jiahaipeng95@gmail.com
// Shengen Yan, yanshengen@gmail.com
// Jiang Liyuan,jlyuan001.good@163.com
// Rock Li, Rock.Li@amd.com
// Zailong Wu, bullet@yeah.net
// Yao Wang, bitwangyaoyao@gmail.com
//
// 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 Intel Corporation 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 "test_precomp.hpp"
#include "opencv2/ts/ocl_test.hpp"
#ifdef HAVE_OPENCL
namespace
cvtest
{
namespace
ocl
{
///////////////////// HOG /////////////////////////////
PARAM_TEST_CASE
(
HOG
,
Size
,
MatType
)
{
Size
winSize
;
int
type
;
Mat
img
;
UMat
uimg
;
virtual
void
SetUp
()
{
winSize
=
GET_PARAM
(
0
);
type
=
GET_PARAM
(
1
);
img
=
readImage
(
"C:/opencv_extra/testdata/gpu/hog/road.png"
,
IMREAD_GRAYSCALE
);
ASSERT_FALSE
(
img
.
empty
());
img
.
copyTo
(
uimg
);
}
};
OCL_TEST_P
(
HOG
,
GetDescriptors
)
{
HOGDescriptor
hog
;
hog
.
gammaCorrection
=
true
;
hog
.
setSVMDetector
(
hog
.
getDefaultPeopleDetector
());
std
::
vector
<
float
>
cpu_descriptors
;
std
::
vector
<
float
>
gpu_descriptors
;
OCL_OFF
(
hog
.
compute
(
img
,
cpu_descriptors
,
hog
.
winSize
));
OCL_ON
(
hog
.
compute
(
uimg
,
gpu_descriptors
,
hog
.
winSize
));
Mat
cpu_desc
(
cpu_descriptors
),
gpu_desc
(
gpu_descriptors
);
EXPECT_MAT_SIMILAR
(
cpu_desc
,
gpu_desc
,
1e-2
);
}
OCL_TEST_P
(
HOG
,
Detect
)
{
HOGDescriptor
hog
;
hog
.
winSize
=
winSize
;
hog
.
gammaCorrection
=
true
;
if
(
winSize
.
width
==
48
&&
winSize
.
height
==
96
)
hog
.
setSVMDetector
(
hog
.
getDaimlerPeopleDetector
());
else
hog
.
setSVMDetector
(
hog
.
getDefaultPeopleDetector
());
std
::
vector
<
Rect
>
cpu_found
;
std
::
vector
<
Rect
>
gpu_found
;
OCL_OFF
(
hog
.
detectMultiScale
(
img
,
cpu_found
,
0
,
Size
(
8
,
8
),
Size
(
0
,
0
),
1.05
,
6
));
OCL_ON
(
hog
.
detectMultiScale
(
uimg
,
gpu_found
,
0
,
Size
(
8
,
8
),
Size
(
0
,
0
),
1.05
,
6
));
EXPECT_LT
(
checkRectSimilarity
(
img
.
size
(),
cpu_found
,
gpu_found
),
1.0
);
}
INSTANTIATE_TEST_CASE_P
(
OCL_ObjDetect
,
HOG
,
testing
::
Combine
(
testing
::
Values
(
Size
(
64
,
128
),
Size
(
48
,
96
)),
testing
::
Values
(
MatType
(
CV_8UC1
)
)
)
);
}}
#endif
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录