Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Opencv
提交
ccc72f61
O
Opencv
项目概览
Greenplum
/
Opencv
大约 1 年 前同步成功
通知
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,发现更多精彩内容 >>
提交
ccc72f61
编写于
9月 30, 2010
作者:
I
Ilya Lysenkov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Updated a recall curve construction in descriptors evaluation
上级
13b535ac
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
20 addition
and
35 deletion
+20
-35
tests/cv/src/adetectordescriptor_evaluation.cpp
tests/cv/src/adetectordescriptor_evaluation.cpp
+20
-35
未找到文件。
tests/cv/src/adetectordescriptor_evaluation.cpp
浏览文件 @
ccc72f61
...
...
@@ -987,54 +987,39 @@ void DescriptorQualityTest::calculatePlotData( vector<vector<DMatch> > &allMatch
{
vector
<
Point2f
>
recallPrecisionCurve
;
computeRecallPrecisionCurve
(
allMatches
,
allCorrectMatchesMask
,
recallPrecisionCurve
);
// you have recallPrecisionCurve for all images from dataset
// size of recallPrecisionCurve == total matches count
#if 0
std::sort( allMatches.begin(), allMatches.end() );
//calcDatasetQuality[di].resize( allMatches.size() );
calcDatasetQuality
[
di
].
clear
();
int correctMatchCount = 0, falseMatchCount = 0;
const float sparsePlotBound = 0.1;
const int npoints = 10000;
int step = 1 + allMatches.size() / npoints;
const
float
resultPrecision
=
0.5
;
bool
isResultCalculated
=
false
;
const
double
eps
=
1e-2
;
for( size_t i=0;i<allMatches.size();i++)
Quality
initQuality
;
initQuality
.
recall
=
0
;
initQuality
.
precision
=
0
;
calcDatasetQuality
[
di
].
push_back
(
initQuality
);
for
(
size_t
i
=
0
;
i
<
recallPrecisionCurve
.
size
();
i
++
)
{
if( allMatches[i].isCorrect )
correctMatchCount++
;
else
falseMatchCount++
;
Quality
quality
;
quality
.
recall
=
recallPrecisionCurve
[
i
].
y
;
quality
.
precision
=
1
-
recallPrecisionCurve
[
i
].
x
;
Quality
back
=
calcDatasetQuality
[
di
].
back
()
;
if( precision( correctMatchCount, falseMatchCount ) >= sparsePlotBound || (i % step == 0) )
{
Quality quality;
quality.recall = recall( correctMatchCount, allCorrespCount );
quality.precision = precision( correctMatchCount, falseMatchCount );
if
(
fabs
(
quality
.
recall
-
back
.
recall
)
<
eps
&&
fabs
(
quality
.
precision
-
back
.
precision
)
<
eps
)
continue
;
calcDatasetQuality[di].push_back( quality );
calcDatasetQuality
[
di
].
push_back
(
quality
);
if( !isResultCalculated && quality.precision < resultPrecision )
if
(
!
isResultCalculated
&&
quality
.
precision
<
resultPrecision
)
{
for
(
int
ci
=
0
;
ci
<
TEST_CASE_COUNT
;
ci
++
)
{
for(int ci=0;ci<TEST_CASE_COUNT;ci++)
{
calcQuality[di][ci].recall = quality.recall;
calcQuality[di][ci].precision = quality.precision;
}
isResultCalculated = true;
calcQuality
[
di
][
ci
].
recall
=
quality
.
recall
;
calcQuality
[
di
][
ci
].
precision
=
quality
.
precision
;
}
isResultCalculated
=
true
;
}
}
Quality quality;
quality.recall = recall( correctMatchCount, allCorrespCount );
quality.precision = precision( correctMatchCount, falseMatchCount );
calcDatasetQuality[di].push_back( quality );
#endif
}
void
DescriptorQualityTest
::
runDatasetTest
(
const
vector
<
Mat
>
&
imgs
,
const
vector
<
Mat
>
&
Hs
,
int
di
,
int
&
progress
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录