一套同时detector和descriptor的网络框架。
SuperPoint Architecture
整体网络框架:
![](https://i-blog.csdnimg.cn/blog_migrate/5c4e017270e1553a7865dd17a3fd9f1c.png)
3.1. Shared Encoder
使用VGG网络输出的cnn feature map(叠加了多个feature map),最后输出B ∈ R Hc×Wc×F, 其中Hc = H/8 and Wc = W/8 and F > 1
3.2. Interest Point Decoder
通过卷积层输出R Hc×Wc×64, 然后经过channel上的softmax输出R H×W
3.3. Descriptor Decoder
输出半dense的descriptor
3.4. Loss Functions
![](https://i-blog.csdnimg.cn/blog_migrate/53da612798eb4a7581f6185f64d58fb2.png)
![](https://i-blog.csdnimg.cn/blog_migrate/3b4550f9f1df97d6d6eb441ef0fd16e0.png)
detector的loss:其中
这里的65个chanel,每个channel表示的是原始图像上的每个pixel是焦点的概率,因此对chennal上进行卷积就可以得到每个cell(8 * 8)上的detector点。
,。 分子:k表示每个chennal上的index(1-65),hw表示feature map层每个元素坐标(正好是h*w*65的feature map),y表示的是gt的位置,因此分母是每个chennal上65个数字之和,分子表示的是gt的index(y),那个位置的数字(交叉商损失)
![](https://i-blog.csdnimg.cn/blog_migrate/89b21436a5bf384c1f7edf0f9be3fd80.png)
![](https://i-blog.csdnimg.cn/blog_migrate/71737ad6c912afe9a01d971f41fe17c6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f0d8d62f53c48376c358a3ca614bcd7d.png)
descriptor loss: S表示0或者1,
,可以直观的认为匹配的是1,不匹配的是0.很容易理解,当是匹配的时候惩罚第一项,惩罚其不相似性,当时不匹配的时候s=0,惩罚第二项,惩罚其相似性。
![](https://i-blog.csdnimg.cn/blog_migrate/62f356a92f5d13df44b253c07468bc0f.png)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
训练以及gt的获取
-
首先使用合成数据训练 MagicPoint(其实MagicPoint就是superpoint网络中的detector部分)网络。(这部分的焦点标注很容易)
![](https://i-blog.csdnimg.cn/blog_migrate/b909418a663f63f49165b30485bf8eae.png)
-
通过上述图片方式生成真实数据的标注结果:
-
首先将真实数据生成一系列warp的image,然后每个image 都过网络 MagicPoint,生成不同的角点。最后使用:
![](https://i-blog.csdnimg.cn/blog_migrate/59ce5213ca6121298c6edd88a6d53b0c.png)
生成最后的稍微密集点的角点位置,就是最终要训练superpoint的时候的gt。
3. 训练superpoint,匹配对是通过不同的warp得到
整体网络结果以及过程如下图:
![](https://i-blog.csdnimg.cn/blog_migrate/38aab6cc5a573dd313da24577a9e36d7.png)