Reinforced Feature Points: Optimizing Feature Detection and Description for a High-Level(2020)(八)

tech2024-08-20  44

本文是一套提高feature提取以及描述能力的通用方案,可以认为是一种refine原始网络的方案。 可以应用到任何类似superpoint这样的网络上,不需要数据标注,而且改造成本很小!!!!!   问题描述:像superpoint这样的网络训练的时候是在一些合成图上训练,并且这样的网络几乎都是在low-level层次训练,                   并没有在high-level层次训练网络,因此往往在解决实际任务的时候泛化能力不强                 (比如我想进行2d-3d求解pose任务上,或者想在求解两张图的relative pose任务上(high-level),                    那么假设我的任务是求解两张图的relative pose是不是网络直接在这样的任务上训练好呢,答案是肯定的,                    是否能实现呢,答案也是肯定的)。下边看实现方法。   本文选择执行两张图的匹配获取relative任务   符号说明:          :    表示匹配的两张图          : 表示这两张图之间的relative pose,          :            表示第i个位置的特征点(x,y)坐标          :    表示特征点I的descriptor(superpoint中是256维)。          :表示两张图中某一个匹配。   特征点选择转换成概率问题(detector)          在superpoint中存在两个网络分支,一个是detector一个是descriptor,这里先解释detector的转换。 假设原始网络输出detector层是 (在superpoint中这是一个W*H*1的score 层)而且他还是被归一化了,那么我们很可以将其当成是一个概率呀:  ,这个概率表示一个pixel是一个keypoint的概率,那么假设我们要随机选择N个keypoint是不是概率就是: (每个pixel都是独立同分布的)。         那么我们如果想在待匹配的这两张图上找两组匹配keypoint是不是概率是:            feature匹配转换成概率问题(match)               上述公式表示某个匹配是匹配的概率,先看分母:k的取值是集合i中所有的数值,k’的取值是集合j中的所有匹配。     再来看分子:就是要求解的这个匹配的descriptor之间的距离。                上述概率可以发现,越是正确的匹配概率越大,所以按照这个方向如果最大化概率网络将向着正确的匹配的descriptor越来月接近,  不正确的匹配的descriptor越来越远离。   那么如果有一堆匹配(可以通过最近邻算法得到),他的概率就是:   有了上述经验,我们看怎样学习网络以及如何设置loss          因为我们的目的是学习的descriptor用来做求解relative pose,那么我们是可以得到relative pose的ground truth的,这件事很简单。   假设我们得到了通过上述选择的N个keypoint也通过descriptor计算出来match的P,那么我们是可以通过ransac+5点法求解出relative pose的。   这个pose:T和ground truth T之间的差值(角度+translation)定义为误差: (这是一个具体的数,根据选择的detector和descriptor计算得到的) 现在有了误差,还有得到这个误差的概率。这样问题就很明确了啊,那么其实我们的网络的任务就是将上述误差的期望最小化即可。 怎么办呢??全概率公式啊,因此定义loss: ,好了可以直接求导了:      反向传播吧!!!!!!!!!!,网络已经可以run起来了。   最后完整的网络结构图如下(可以将ransac+5点法求解T的过程当成黑盒子,目的就是为了求解出来具体的误差数,然后好用来求解期望)       备注:!!!选择keypoint的时候要随机多选择几次每次都会得到pose,使用最大的误差进行回传。
最新回复(0)