前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >论文 | COTR 一种基于Transformer的图像匹配网络

论文 | COTR 一种基于Transformer的图像匹配网络

作者头像
好好学SLAM
发布2021-07-07 11:03:20
2.5K0
发布2021-07-07 11:03:20
举报

大家好,我是realcat,今天要介绍的论文题目“COTR: Correspondence Transformer for Matching Across Images”,来源arxiv 2021。

论文题目

代码:github.com/ubc-vision/COTR

论文:arxiv.org/abs/2103.14167

主页:jiangwei221.github.io/vids/cotr/README.html

1. 摘要

Fig1. Correspondence Transformer

本文作者提出了一种匹配网络,输入为两张图像以及其中一张图像中的任意一点,输出为另外一张图像上的对应匹配点。为了使用图像的局部与全局信息,同时让模型能够捕获图像区域间的相似度,作者设计了基于Transformer的网络结构。在网络实际前向推理时,网络通过迭代地在估计点周围进行缩放,这能够使该匹配网络能够获得非常高的匹配精度。该网络能够在多项任务中获得最佳效果,其中包括稀疏匹配,稠密匹配,大视角立体视觉以及光流估计。

2. 原有技术问题

目前的图像匹配有两条不同方式:稀疏匹配,最小化对齐误差;稠密匹配,找到图像上所有点的对应匹配点。其中稀疏匹配依赖于稀疏的特征点,随后对推定的匹配对进行筛选得到稀疏的匹配点对。稠密匹配通常假定图像在时域上相差不大,如视频序列的光流估计,以及基于局部平滑假设。

3. 新技术创新点

本文提出的工作能够获得图像对任意一点的匹配对,其贡献主要体现在如下几个方面:

  • 提出一种结合稀疏和稠密匹配优势的网络结构(端到端+局部全局先验);
  • 网络前向时迭代多尺度匹配可获得高精度匹配;
  • 本文提出的COTR网络能够在诸多稀疏和稠密任务中获得最优效果;
  • 第一个使用Transformer用于特征匹配的网络(存疑,CVPR 2021 LoftR也用了Transformer)

4. 关键技术点

Fig2. COTR architecture

总览:输入两张图像,经过同一个CNN提取特征图,将特征图串联放在一起,结合位置编码得到上下文特征图;将这个特征图以及经过位置编码的查询点喂给transformer ,该网络输出经过一个多层感知机进行解码得到匹配点

输入:两幅待匹配图像,以及在图像上被归一化的坐标位置

输出:图像上被归一化的坐标位置

4.1. 问题描述

目标是找到一个最优参数集合使得函数最小化如下残差:

\begin{array}{c}\underset{\boldsymbol{\Phi}}{\arg \min } \underset{\left(\boldsymbol{x}, \boldsymbol{x}^{\prime}, \boldsymbol{I}, \boldsymbol{I}^{\prime}\right) \sim \mathcal{D}}{\mathbb{E}} \mathcal{L}_{\text {corr }}+\mathcal{L}_{\text {cycle }}, \\ \mathcal{L}_{\text {corr }}=\left\|\boldsymbol{x}^{\prime}-\mathcal{F}_{\boldsymbol{\Phi}}\left(\boldsymbol{x} \mid \boldsymbol{I}, \boldsymbol{I}^{\prime}\right)\right\|_{2}^{2} \\ \mathcal{L}_{\text {cycle }}=\left\|\boldsymbol{x}-\mathcal{F}_{\boldsymbol{\Phi}}\left(\mathcal{F}_{\boldsymbol{\Phi}}\left(\boldsymbol{x} \mid \boldsymbol{I}, \boldsymbol{I}^{\prime}\right) \mid \boldsymbol{I}, \boldsymbol{I}^{\prime}\right)\right\|_{2}^{2}\end{array}

其中,表示有真实匹配关系的训练集;表示匹配估计的误差,表示匹配的相互一致性误差;

4.2. 网络结构

本文将建模成Transformer。将两幅输入图像resize到,随后使用同一个CNN backbone提取的到维度为特征图,将二者并排组合在一起;随后使用位置编码器对坐标函数进行编码,将上述二者结合得到上下文特征图(context feature map) :

\mathbf{c}=\left[\mathcal{E}(\boldsymbol{I}), \mathcal{E}\left(\boldsymbol{I}^{\prime}\right)\right]+\mathcal{P}(\mathbf{\Omega})

随后将喂给transformer 编码器,随后使用transformer解码器对经过位置编码的进行解码。最后经过一个MLP得到网络输出, 上述过程可被描述为如下形式:

\boldsymbol{x}^{\prime}=\mathcal{F}_{\boldsymbol{\Phi}}\left(\boldsymbol{x} \mid \boldsymbol{I}, \boldsymbol{I}^{\prime}\right)=\mathcal{D}\left(\mathcal{T}_{\mathcal{D}}\left(\mathcal{P}(\boldsymbol{x}), \mathcal{T}_{\mathcal{E}}(\mathbf{c})\right)\right)
  • 线性位置编码

对于给定的坐标其位置编码为如下形式:

\begin{aligned} \mathcal{P}(\boldsymbol{x}) &=\left[p_{1}(\boldsymbol{x}), p_{2}(\boldsymbol{x}), \ldots, p_{\frac{N}{4}}(\boldsymbol{x})\right] \\ p_{k}(\boldsymbol{x}) &=\left[\sin \left(k \pi \boldsymbol{x}^{\top}\right), \cos \left(k \pi \boldsymbol{x}^{\top}\right)\right] \end{aligned}

其中是特征图的通道数,的维度是,所以的维度为。

4.3. 网络前向推理

接下来将探讨上述网络是如何进行前向推理的。

4.3.1. 迭代缩放

作者提到,视觉任务中使用了功能强大的transformer是有一定代价的,它需要沉重的下采样得到的特征图,在匹配任务中,这会使匹配变差。

为了应对这种现象,本文通过不停地迭代使用能够获得高精度的匹配关系。如下图所示,下一次迭代的初值是在上一次预测的结果做了裁剪后的放大。

Fig3. Recursive COTR at inference time

4.3.2. 尺度补偿

Fig4.通过共视区域进行尺度估计

为了应对不同尺度的匹配问题,作者认为缩放比例应该与共视区域呈一定比例。例如,一开始进行匹配时输入是两张原始图像,它们可能存在一定的尺度差异,如上图(左边两幅图)所示的宫殿是从近处和远处分别拍摄的。首先估计每一个像素点的匹配,并计算相互一致性误差,设置一个阈值像素对匹配进行筛选,这样可以得到如上图右边两幅图所示的共视区域。那么在接下来的缩放过程中,缩放比例与有效的像素的数量成正比。

4.3.3. 适配任意尺寸图像

本文网络的输入为固定尺寸。对于任意尺度的图像输入,第一步将图像resize到,并估计初始匹配,在接下来的裁剪和缩放过程中,在原图的匹配像素点周围取一个正方形区域,尺寸需要与当前的缩放level适配(如上节介绍),随后将方形区域resize到作为下一次网络推理的输入。

4.3.4. 删除错误匹配

当待查询的像素在另一张图像上被遮挡或不在视野内时,应该如何处理呢?类似于尺度补偿中介绍的方法,排除那些相互一致性误差大于像素的匹配对。

4.3.5. 稠密匹配插值

作者提到有两种方式获得稠密匹配:1. 逐像素匹配(较为耗时);2. 稀疏匹配后插值(GPU rasterizer可高效实现)。

5. 实验

先把耗时写在前面:在平台NVIDIA RTX 3090上, 1秒钟35个匹配对(笔者:太慢了!);

作者比较了四个任务中COTR的表现,它们分别是:

数据集

任务

HPatches

光照视角变化条件下图像稀疏匹配效果;

KITTI

自动驾驶数据集,验证稠密光流估计效果;

ETH3D

包含室内外手持式相机拍摄的图像,场景纹理稀疏,验证匹配效果匹配;

Image Matching Challenge (IMC2020)

大基线图像匹配,评价位姿估计的精度;

5.1. HPatches

Tab1. HPatches定量结果,其中AEPE:Average End Point Error,PCK:Percent of Correct Keypoints,下列数值加粗表示最好,下划线表示次好

5.2. KITTI

Tab2. KITTI定量结果,其中Fl表示光流外点比例,越低越好;

Fig5.KITTI光流估计比较

5.3. ETH3D

Tab3. ETH匹配结果,rate越大表示帧间时域差异越大,匹配越难

Fig6. ETH3D特征匹配对比,红色表示外点匹配

5.4. Image Matching Challenge 2020

Tab4. Stereo performance on IMC2020,第二列的数值表示平均内点数量,越大越好;三四列mAA:mean Average Accuracy,阈值分别为5deg和10deg,该值越大越好

上表中括号表示该算法针对该比赛做过精心裁剪过(用语义分割将天空或行人上的特征点滤除掉)的结果,在此不做比较;作者针对上述测试结果提到“在2K特征阵营,本文算法最好”。

6. 总结

  1. 匹配时的迭代缩放策略+尺度补偿+外点滤除策略能够极大提高匹配精度,但其代价是耗时的增加(~30点/sec);
  2. 笔者认为:是否可以考虑使用patch-netvlad的划分区域+多尺度的方式对上述净化策略进行加速?

-END-

— 版权声明 —

本微信公众号所有内容,由计算机视觉SLAM微信自身创作、收集的文字、图片和音视频资料,版权属计算机视觉SLAM微信所有;从公开渠道收集、整理及授权转载的文字、图片和音视频资料,版权属原作者。本公众号内容原作者如不愿意在本号刊登内容,请及时通知本号,予以删除。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-06-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 计算机视觉SLAM 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 摘要
  • 2. 原有技术问题
  • 3. 新技术创新点
  • 4. 关键技术点
    • 4.1. 问题描述
      • 4.2. 网络结构
        • 4.3. 网络前向推理
          • 4.3.1. 迭代缩放
          • 4.3.2. 尺度补偿
          • 4.3.3. 适配任意尺寸图像
          • 4.3.4. 删除错误匹配
          • 4.3.5. 稠密匹配插值
      • 5. 实验
        • 5.1. HPatches
          • 5.2. KITTI
            • 5.3. ETH3D
              • 5.4. Image Matching Challenge 2020
              • 6. 总结
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档