NeurIPS 2019 oral
https://www.bilibili.com/video/av84172526/
《R2D2: Repeatable and Reliable Detector and Descriptor》论文解读
https://www.yanxishe.com/columnDetail/24517
特征匹配 开源汇总
《R2D2: Repeatable and Reliable Detector and Descriptor》论文解读
R2D2:密集点的匹配
构造一个图像对,然后每个图像都依次输入该网络中,得到每张图像的每个像素的descriptors和reliability和repeatability,然后计算损失。
输入数据是什么?
一个字典,包含dict_keys(['img1', 'img2', 'aflow', 'mask'])
img1和img2的shape:torch.Size([3, 3, 192, 192])
aflow的shape:torch.Size([3, 2, 192, 192]) aflow是通过通过homography计算的,第一张图的对应点在第二张图上的坐标
mask的shape:torch.Size([3, 192, 192])
返回结果:dict_keys(['descriptors', 'repeatability', 'reliability', 'imgs'])
其中'descriptors'是两个(一对)图片的描述符,每个图片描述符的shape为(128,192,192)
repeatability是两个图片可重复性的度量,每个图片对应的shape为(1,192,192)
'reliability'也是一样的,两个图片可靠性的度量,每个图片对应的shape为(1,192,192)
'imgs'应该还是指的原来的两幅输入图像,每幅图像的大小为(3,192,192)
其中loss_func的输入为:dict_keys(['aflow', 'mask', 'descriptors', 'repeatability', 'reliability', 'imgs'])
reliability 这个loss同时回传到descriptor网络和reliability网络。
reliability 其中ap的计算:
计算每个点的ap
(1)将一个点和它在另一幅图中对应点周边3个像素内的点记为正样本,其他记为负样本。对正负样本采样(样本是指一对点是否为对应点),获得gt(1表示这对点为对应点,0表示这对点不是对应点)
(2)通过一对样本点的2个descriptor,计算得到一个分数。
(3)设置不同的分数阈值,计算正样本的pre和recall,然后计算这些样本点的ap
Ri,j是我们预测得到的点(i,j)的可靠性,如果该点越可靠,Ri,j越大,点的AP越重要,表明该点对损失的作用越大。如果该点不重要,我们希望Ri,j比较小,这点的AP就不重要
R2D2: Repeatable and Reliable Detector and Descriptor
相关推荐阅读
L2-Net: Deep Learning of Discriminative Patch Descriptor in Euclidean Space (CVPR 2017) ——R2D2网络结构的基础。
Local descriptors optimized for average precision (CVPR 2018) ——AP(average precision)概念的提出。
Hpatches: A benchmark and evaluation of handcrafted and learned local descriptors (CVPR 2017) ——HPatches数据集。
Benchmarking 6DOF Outdoor Visual Localization in Changing Conditions (CVPR 2018) ——包含Aachen Day-Night数据集。