数据详情
构建方法
利用三维重建的方法获得特征点位置和匹配关系。
数据内容
后面更新
评价准则
定义 y = ( y 1 , … , y n ) ∈ { − 1 , 0 , + 1 } n \mathbf { y } = \left( y _ { 1 } , \ldots , y _ { n } \right) \in \{ - 1,0 , + 1 \} ^ { n } y=(y1,…,yn)∈{−1,0,+1}n 是对查询 patch 和 测试集合的每个 patches 按照它们描述符之间 score 降序或者 dis 升序排序的 label 集合,label 分别表示 negative,ignore 和 positive,即查询 patch 和测试集中某个 patch 是非匹配关系,忽略关系,还是匹配关系(真值)。
这样基于上面的 y \mathbf { y } y 定义排序前 i i i 个为算法匹配上的结果,这样 precision 和 recall 指标分布为:
P i ( y ) = ∑ k = 1 i [ y k ] + / ∑ k = 1 i ∣ y k ∣ R i ( y ) = ∑ k = 1 i [ y k ] + / ∑ k = 1 N [ y k ] + P _ { i } ( \mathbf { y } ) = \sum _ { k = 1 } ^ { i } \left[ y _ { k } \right] _ { + } / \sum _ { k = 1 } ^ { i } \left| y _ { k } \right| \\ R _ { i } ( \mathbf { y } ) = \sum _ { k = 1 } ^ { i } \left[ y _ { k } \right] _ { + } / \sum _ { k = 1 } ^ { N } \left[ y _ { k } \right] _ { + } Pi(y)=k=1∑i[yk]+/k=1∑i∣yk∣Ri(y)=k=1∑i[yk]+/k=1∑N[yk]+
其中 [ z ] + = max { 0 , z } [ z ] _ { + } = \max \{ 0 , z \} [z]+=max{0,z},正样本返回 1,其他返回 0。
这个和之前的定义一直,至少方式的不同:
P
r
e
c
i
s
i
o
n
=
T
P
T
P
+
F
P
R
e
c
a
l
l
=
T
P
T
P
+
F
N
Precision = \frac{TP}{TP + FP} \\ Recall = \frac{TP}{TP + FN}
Precision=TP+FPTPRecall=TP+FNTP
然后 average precision (AP) 的定义如下:
A
P
(
y
)
=
∑
k
:
y
k
=
+
1
P
k
(
y
)
/
∑
k
=
1
N
[
y
k
]
+
A P ( \mathbf { y } ) = \sum _ { k : y _ { k } = + 1 } P _ { k } ( \mathbf { y } ) / \sum _ { k = 1 } ^ { N } \left[ y _ { k } \right] _ { + }
AP(y)=k:yk=+1∑Pk(y)/k=1∑N[yk]+
其中
k
:
y
k
=
+
1
k : y _ { k } = + 1
k:yk=+1 表示
k
k
k 取值范围为上面排序集合中每个正样本的 index(负样本 index 无意义,只是降低 precision 大小)。
对每个正样本 index 求对应的 precision,然后平均。
但在 image matching 任务和 patch retrieval 任务中会用到忽略关系
y
i
=
0
y _ { i } = 0
yi=0 patch pairs 的数目。预先定义正样本的数目为(许多正样本的 patch pairs 在评估中不需要,比如 image matching 任务中查询 patch 只会在目标图像找到最优的 patch,并求取 score 用于后面的评估,而该查询 patch 与目标图像上其他的 patch 不会计算 score 和参与评估):
K
≥
∑
k
=
1
N
[
y
k
]
+
K \geq \sum _ { k = 1 } ^ { N } \left[ y _ { k } \right] _ { + }
K≥k=1∑N[yk]+
然后其他指标分别为:
R
i
(
y
;
K
)
=
∑
k
=
1
i
[
y
k
]
+
/
K
A
P
(
y
;
K
)
=
∑
k
:
y
k
=
+
1
P
k
/
K
R _ { i } ( \mathbf { y } ; K ) = \sum _ { k = 1 } ^ { i } \left[ y _ { k } \right] _ { + } / K \\ A P ( \mathbf { y } ; K ) = \sum _ { k : y _ { k } = + 1 } P _ { k } / K
Ri(y;K)=k=1∑i[yk]+/KAP(y;K)=k:yk=+1∑Pk/K
本文定义了三个评价指标,每个指标都是计算的 AP 值。
patch verification
指标
给定数据集定义:
P = ( ( x i , x i ′ , y i ) , i = 1 , … , N ) \mathcal { P } = \left( \left( \mathbf { x } _ { i } , \mathbf { x } _ { i } ^ { \prime } , y _ { i } \right) , \quad i = 1 , \ldots , N ) \right. P=((xi,xi′,yi),i=1,…,N)
其中 x i , x i ′ ∈ R 65 × 65 × 1 \mathbf { x } _ { i } , \mathbf { x } _ { i } ^ { \prime } \in \mathbb { R } ^ { 65 \times 65 \times 1 } xi,xi′∈R65×65×1 是匹配或者非匹配的 patch pairs, y i = ± 1 y _ { i } = \pm 1 yi=±1 是 label。
这样在评估匹配算法 A \mathcal { A } A 时,对输入的两个 patches x i , x i ′ \mathbf { x } _ { i } , \mathbf { x } _ { i } ^ { \prime } xi,xi′,输入这两个 patches 匹配的置信度 score s i ∈ R s _ { i } \in \mathbb { R } si∈R(其实实际一般是 Euclidean 距离,score 可以用距离的倒数表示)。
这样按照 score 降维排序 s π 1 ≥ s π 2 ≥ ⋯ ≥ s π N s _ { \pi _ { 1 } } \geq s _ { \pi _ { 2 } } \geq \cdots \geq s _ { \pi _ { N } } sπ1≥sπ2≥⋯≥sπN,按照上一节的方法求每个 patch 集合的 A P ( y π 1 , … , y π N ) A P \left( y _ { \pi _ { 1 } } , \ldots , y _ { \pi _ { N } } \right) AP(yπ1,…,yπN),用该值评估算法 A \mathcal { A } A 的性能。
数据集
之前构建数据集通过对匹配 pairs 添加不同的重投影噪声,生成 EASY,HARD 和 TOUGH 三类数据集,同时在同一个序列或者不同的图像序列旋转为上面选定的 patch 选择非匹配 pairs。这样就6 个 patch verification 评估的基准 patch 集合,每个集合包括 2 × 1 0 5 2 \times 10 ^ { 5 } 2×105 正样本匹配 pairs 和 1 × 1 0 6 1 \times 10 ^ { 6 } 1×106 负样本非匹配 pairs。
最终的评价指标是在这 6 个数据集上平均的 mAP。
image matching
定义
在 image matching 任务中,图像表示为多个 patches 的集合,如下:
L k = ( x i k , i = 1 , … , N ) L _ { k } = \left( \mathbf { x } _ { i k } , i = 1 , \dots , N \right) Lk=(xik,i=1,…,N)
image pairs 表示为:
D = ( L 0 , L 1 ) \mathcal { D } = \left( L _ { 0 } , L _ { 1 } \right) D=(L0,L1)
其中 L 0 L _ { 0 } L0 是参考(查询)图像, L 1 L _ { 1 } L1 是目标图像,其中 X i 0 \mathbf { X } _ { i 0 } Xi0 是和 X i 1 \mathbf { X } _ { i 1 } Xi1 是匹配关系。
利用 D \mathcal { D } D 去评估算法 A \mathcal { A } A 的,给定查询 patch x i 0 ∈ L 0 \mathbf { x } _ { i 0 } \in L _ { 0 } xi0∈L0,需要找到最优的匹配 patch x σ i 1 ∈ L 1 \mathbf { x } _ { \sigma _ { i } 1 } \in L _ { 1 } xσi1∈L1 的 index σ i ∈ { 1 , … , N } \sigma _ { i } \in \{ 1 , \dots , N \} σi∈{1,…,N},同时输出置信度 score s i ∈ R s _ { i } \in \mathbb { R } si∈R。
这样上面会求的 N N N patch pairs 的 score,分别对应的 label 为:
y i = 2 [ σ i = ? i ] − 1 y _ { i } = 2 \left[ \sigma _ { i } \stackrel { ? } { = } i \right] - 1 yi=2[σi=?i]−1
也就是 patch pairs 在图像上的 index 一直是匹配关系,不一致时非匹配关系。
同理按照 score 降维排序 s π 1 ≥ s π 2 ≥ ⋯ ≥ s π N s _ { \pi _ { 1 } } \geq s _ { \pi _ { 2 } } \geq \cdots \geq s _ { \pi _ { N } } sπ1≥sπ2≥⋯≥sπN,按照上一节的方法求每对 image pair 的 A P ( y π 1 , … , y π N ; N ) A P \left( y _ { \pi _ { 1 } } , \ldots , y _ { \pi _ { N } } ; N \right) AP(yπ1,…,yπN;N),用该值评估算法 A \mathcal { A } A 的性能。
数据集
根据视角 viewpoint 或者光线illumination 的变化进行分组,同时每个组的 patches 生成 EASY,HARD 和 TOUGH 三类数据集。
最终的评价指标是在所有的 image pairs 以及上诉变化的数据集上平均的 mAP。
patch retrieval
定义
给定数据集定义:
P = ( x 0 , ( x i , y i ) , i = 1 , … , N ) \mathcal { P } = \left( \mathbf { x } _ { 0 } , \left( \mathbf { x } _ { i } , y _ { i } \right) , i = 1 , \ldots , N \right) P=(x0,(xi,yi),i=1,…,N)
其中 x 0 \mathbf { x } _ { 0 } x0 是来自查询图像 L 0 L _ { 0 } L0 的 patch,其他的 patch 来自相同图像序列的图像 L k , k = 1 , … , K L _ { k } , k = 1 , \ldots , K Lk,k=1,…,K。
而且可知在相同图像序列的图像 L k L _ { k } Lk 上确定有一个查询 x 0 \mathbf { x } _ { 0 } x0 匹配的 patch,所有总共有确定的 K K K 个正样本。
对于每个数据集 P \mathcal { P } P 来说,算法 A \mathcal { A } A 输出 x 0 \mathbf { x } _ { 0 } x0 和 每个patch x i \mathbf { x } _ { i } xi 的 score s i ∈ R s _ { i } \in \mathbb { R } si∈R。
同理按照 score 降维排序 s π 1 ≥ s π 2 ≥ ⋯ ≥ s π N s _ { \pi _ { 1 } } \geq s _ { \pi _ { 2 } } \geq \cdots \geq s _ { \pi _ { N } } sπ1≥sπ2≥⋯≥sπN,按照上一节的方法求每个数据集 P \mathcal { P } P 的 A P ( y π 1 , … , y π N ; N ) A P \left( y _ { \pi _ { 1 } } , \ldots , y _ { \pi _ { N } } ; N \right) AP(yπ1,…,yπN;N),用该值评估算法 A \mathcal { A } A 的性能。
数据集
基准数据集总共包括 1 × 1 0 4 1 \times 10 ^ { 4 } 1×104 个测试数据集 P \mathcal { P } P,其中 x 0 \mathbf { x } _ { 0 } x0 包括 K = 5 K = 5 K=5 个匹配 patch,以及 2 × 1 0 4 2 \times 10 ^ { 4 } 2×104 个干扰负样本。同时每个测试数据集 P \mathcal { P } P的正样本 patches 生成 EASY,HARD 和 TOUGH 三类数据集。
最终的评价指标是在所有的测试集合 P \mathcal { P } P以及上诉变化的数据集上平均的 mAP。