旷视研究院 · 2020年03月12日

R TALK | 旷视成都研究院负责人刘帅成:图像对齐及其应用

640.gif

「R TALK 」是一个深度学习专栏,由北京智源-旷视联合实验室推出,旨在通过一场场精彩纷呈的深度学习演讲,展示旷视研究院的学术分享及阶段性技术成果,抛砖引玉,推陈出新,推动中国乃至全球领域深度学习技术的发展。这是「R Talk」第 8  期分享。

WechatIMG179.tiff

大家好,我是旷视成都研究院负责人刘帅成,今天分享的主题是图像对齐及其应用。由于这个领域内容丰富,今天只能涵盖其中一部分,基于这些年我对图像对齐的思考。

这次R TALK的分享大纲涉及3个方面:

WechatIMG157.png

图像对齐技术广泛应用于计算机视觉各类任务,比如对不同视角下拍摄的图片进行拼接(Image stitching)、智能手机等摄像设备在Burst模式下的图像降噪、图像超分辨率应用、视频防抖,以及生成基于多次曝光的高动态范围HDR图像等等。

另外,随着手机的发展,越来越多的摄像头(长焦、广角镜头)被集成在一台设备之上,它们之间如何协同工作也与图像对齐技术息息相关。

总而言之,图像对齐不仅局限在上述场景,在医学图像领域也有广泛的应用,以及跨模态数据的对齐任务也需要图像对齐算法。所以我认为,图像对齐有点类似习武之人锻炼的内功,是一种非常基础且底层的能力,服务于上层具体的其它算法。

图像对齐面临的基本挑战


在传统对齐任务中,最常用的方式是特征点的检测和匹配,这种方式面临着5大挑战:

第一,重复纹理。 对于有重复纹理的场景(比如很多建筑的窗户非常类似),系统可能检测出很多特征点,但进行匹配时却不能有效一一对应。

WechatIMG158.png

第二,弱纹理、无纹理。 比起重复纹理,弱纹理可能对于对齐来说更加困难。比如下图(墙、天空)。对于没有什么特征纹理的场景,系统很难在这些部分找出特征点,更不用说进行有效的对齐操作。

WechatIMG159.jpeg

第三,大前景干扰。 当图像中出现大前景干扰时(无论是动态还是静态干扰),都会对系统的鲁棒性造成很大挑战,因为这种情况下当画面视角稍加变化,受遮挡影响,画面中可能就会出现从未见过的新场景。

WechatIMG160.jpeg

第四,夜景、噪声干扰。 与无纹理情况类似,这类情况也会对特征点的检测提出挑战,在夜景、噪声干扰下,系统往往只能在一小块区域检测出特征点,然而用一小块区域来对齐整张图像,效果往往不尽如人意。

WechatIMG161.png

第五,大视差。 所谓大视差问题即由于拍摄角度发生了较大变化而对对齐模型造成的挑战。

WechatIMG162.png

在了解了图像对齐的含义以及面临的主要问题之后,下面开始介绍今天的第一部分内容。

传统图像对齐法


就图像对齐的传统方法而言,总体上可以分为三大类:Homography、Mesh Warps和Optical flow。本次TALK着重在前两者,Optical flow(光流)法不作展开。

Homopgraphy

首先,所谓Homography变换,中文称之为透视变换,对应为3x3变换矩阵称之为单应性矩阵,如下图H。

WechatIMG163.png

其中由于使用的是齐次坐标系,所以h\_22一般等于1,即该矩阵只有8个自由度,又因为估算8个自由度需要4对匹配点,一对匹配点提供2约束,因此会有8个方程。

当特征点的匹配超过4个,那么就是解一个超定方程。如果大家对Homography感兴趣,具体内容可以参阅《Multiple View Geometry》这本书,介绍很详细。

Homography的问题。 Homography有2个限定条件,即它描述的运动类型只能是平面或无穷远(视为平面)的运动、相机绕光心的纯旋转运动。这里总结了传统算法Homography会遭遇3个问题:

WechatIMG164.png

  1. Depth parallax:即画面存在深度视差。如果场景画面不是纯平面,则使用1个Homography不能让图像准确匹配。
  2. Quality of image features:即Homography非常依赖图像的特征质量,因为它的工作基于特征点。
  3. RANSAC challenge:Homography会依赖RANSAC算法的鲁棒度,如果RANSAC失败,对齐工作也相应失败。

因此,针对Homography的Depth parallax问题,我们提出了MeshFlow算法。

MeshFlow

MeshFlow其实属于Mesh Warps这套算法中的一个。Mesh Warps在计算机视觉顶会中每年都能看到相关工作,其中一个比较经典的算法是Content-preserving Warps,如下图左边所示:

WechatIMG165.png

其核心思想认为,检测、匹配特征点之后,特征点的warp要尽可能接近,同时,格子要尽可能正方,最后去解一个稀疏矩阵Ax=b。

MeshFlow是我们2016年提出的一个方法,它不需要再去解Mesh Warps中的稀疏矩阵,所以相对简单、高效、鲁棒。

具体而言,假设给定两帧 t 和 t-1(如下图),那么图中标注的红点就是检测的特征点,由于这些点在前后画面中的位置是运动的,因此可以认为其周围也按照类似的方式在运动,即将该点的运动propagate到周围的mesh vertex。由于图像中有很多特征点,对每一对特征点都作相同操作。

WechatIMG166.jpeg

可以发现,往往一个vertex会收集到其周围特征点提供的多个运动信息。通过对这些运动信息进行中值滤波,可以把最终得到的结果认为是该vertex实际的运动方向。

需要强调的是,如果某些区域检测到的特征点很少,也可以通过解一个全局Homography来保证该区域至少有一个来自全局Homography的运动信息。

当为每一个vertex分配了运动信息以后,由于这些信息可能存在误差(not specially smooth),如下图黄色箭头所示方向,因此会再做一次 specially 的中值滤波,得到一个specially smooth的运动场。

到这里,MeshFlow工作就完成了。可以发现,它能够对齐场景中存在的视差(parallax),不仅仅描述空间的平面,空间中有深度变化的情况也可以解决,所以MeshFlow一定程度上解决上述提到的Depth parallax问题。

WechatIMG167.jpeg

MeshFlow的工作方式可以看出,其性能很大程度上依赖特征点的分布,一个好的特征点分布对于无论是解mesh还是homography都至关重要。

以下图为例,对于下图上方的图像,很有可能检测出来的特征点在全图中分布不均匀,因此一个较好的特征点分布应该是均匀全覆盖的。具体方法可以参考我们TIP 2016的论文。

WechatIMG168.png

但是,单纯使用MeshFlow无法解决Homography的另外两个问题;对于Homography的第二个问题特征点依赖性,这里重点介绍Deep Homography的方法。

基于深度学习的图像对齐算法

Deep Homopraphy

关于Deep Homography的相关文献并不多,经典文献有下图给出的2016、2018年两个工作,第3篇是旷视成都研究院今年的工作。根据这些方法的特性,可以将其划分为监督式、非监督式和基于内容的非监督式方法。

WechatIMG169.png

先介绍第一篇“Deep Image Homography Estimation”。该方法很容易理解,在之前,传统算法需要通过检测特征点来得出homography,但这篇论文提出,通过给一个简单的网络输入两张图像,可以直接得出homography的8个参数。

需要注意的是,由于本文采用的是监督学习,所以如何产生guidance成了一个重要的问题,对此,本文给出的方法如下所示:

WechatIMG170.png

给定一张图片,从中选定一个框(位置P,图中第一步蓝色框),然后选定该框的4个顶点,并在这些顶点上随机生成一个位移向量(motion vector),进一步,这些经过移动的顶点就会带出一个绿框来。

因为有4个点,所以可以解出homography。在第4步中,根据前述homography,我们对图像进行变形,然后再在位置P以同样的正方形选定画面,进行裁剪。由此得到原始图像裁剪部分与变换后同样位置图像的图像对。所以,对以这种方式生成的图像对进行训练就可以得到最终的模型。

不过值得提醒的是,如果直接回归Homography中那8个参数其实并不好,因为如下图所示,不同参数表示的内容不同,即这些参数有着不同的量纲,如果直接回归,网络较难训练,即便对Homography做normalization,训练也比较困难。

WechatIMG171.jpeg

考虑到一个点经过homography映射到另一个点,因此,一个较好的做法是,对这2个点作差得到位移向量,使用4个顶点的位移向量就可以等效表示homography。与其回归homography中的8个参数,不如回归4个顶点的位移向量 。如下图所示:

WechatIMG172.png

从实验结果可以看到,本文提出的方法在无纹理图像(下方滑雪图)对齐上明显优于传统方法;然而公交车场景图片结果显示,当特征点能够检测到足够多的情况下,传统方法与本文方法差异不大。

WechatIMG173.png

然而这种监督式的Deep Homography也存在较严重的问题,如下图所示:

640.gif

由于模型在训练过程中使用的训练数据是人为对图像变形得到的,而真实世界不同图像之间除了角度变化还有内容上的差异,因此本文提出的方法在面对真实世界图像的对齐问题时效果不尽如人意。

针对这个问题,下面介绍第二篇工作“Unsupervised Deep Homography”。

WechatIMG176.png

上图是非监督式的Deep Homography结构。可以发现,对于非监督方法,其在监督式方法的基础上增加了两大模块。

具体而言,同样是先给网络两个图像,回归出位移向量矩阵WechatIMG177.jpeg,在得到这些位移向量之后,把这4个顶点在原图中的位置找到,称为WechatIMG178.jpeg。利用WechatIMG179.jpegWechatIMG180.jpeg,我们可以解一个Tensor DLT(如上图),从而得到Homography。

之后,我们用这个Homography来对图像做一个warping操作(变形),得到图像P^A变形以后的图像WechatIMG181.jpeg,然后再用它与原来的P^B计算Photometric Loss,然后回传进行训练。通过这样的方式就不需要使用监督label。

640.gif

上图为监督式和无监督式Deep Homography方法的效果对比,可以看见,无监督方法在对齐非人工合成的图像时候更加鲁棒。

到目前为止,我们介绍了监督式和无监督式的Deep Homography方法,总结其特点发现,在面对前面Homography遭遇的3大困难时,这两种深度学习方法虽然解决不了深度视差的问题与RANSAC问题,但它们对图像特征的表达比较鲁棒,不像传统方法很依赖特征点。

WechatIMG182.png

那么如何解决RANSAC问题,就进入了我们团队今年的工作“Content-Aware Unsupervised Deep Homography Estimation”。

首先,我们的工作也是一个无监督方法,与前述无监督方法不同的是,会多估算一个mask。如下图,当输入两张图以后,在提取特征的同时,也估算一个mask;进一步,用特征乘上mask,把结果交给homography估计器。在我们方法中,最核心的部分就是这个mask,该mask类似于RANSAC的功能,可类比为一个NN RANSAC。
WechatIMG184.jpeg

将mask可视化以后(如下图),可以看到在(a)、(b)中mask没有关注移动的动车和出租车,在(c)中网络也更多注重于背景,而不是前景变化的喷泉。

WechatIMG183.jpeg

为了evaluate这件事情,我们制作了一套数据集,其中有5大类数据:

  • 第一类被称为Regular(RE),指图像纹理丰富,可以检测到丰富的特征点,且均是远景,是一个homography搞得定的场景;
  • 第二、第三类分别是Low texture(LT)和Low light(LL),一个纹理很少,一个光线暗淡,特征点都很难撒上去;
  • 第四类是Small Foregrounds(SF),指的是画面中存在小前景运动干扰;相对应,在Large Foreground(LF)中,数据包含的运动前景占画面比例较大,形成对RANSAC的干扰。

WechatIMG185.png

同时,为更好做量化评估,我们也手工标注了5000张图像作为ground truth。

WechatIMG186.png

WechatIMG187.jpeg

我们模型的测试结果如上图。上图左边,我们对数据集中每一类数据都计算了使用不同方法产生的误差。可以发现由于我们的方法考虑了图像的内容,所以在每一类数据中的误差都是最低的。

有趣的是,右图中我们使用了传统的一些基于特征点的方法来做对比,可以发现,在Regular类数据中,大家相差无几,甚至传统方法还比我们的方法稍强。这说明假设图像纹理足够丰富,且是一个homography可以描述的场景,那么传统方法的性能非常强大。

但当图像不满足这个限定条件时(如后面几类数据),深度学习方法的优势就明显体现出来了。从下图的可视化对比中可以发现,在雪地图(无纹理图)中,我们的方法能够准确定位背景中的电线杆,而SIFT+RANSAC因为没能找到足够的特征点所以完全失效,无监督方法效果也不佳。

640.gif

在喷泉图中(大前景干扰图),我们的方法能很好地对齐了背景的建筑;SIFT+RANSAC在找best fitting homography时,因为RANSAC的失败(喷泉前景干扰严重),fiting到了房子和喷泉中间的某个位置导致都没能对上,而无监督方法完全失效。

总结当前的进展,在使用了关注画面内容的deep homography方法后,我们解决了RANSAC带来的问题,但依然没有解决深度视差问题。

究其原因,与我们使用的homography方法本身有关,一个homography只能描述一个平面。下图展示了一个典型的拥有两个平面的场景,可以发现,我们的方法很好对齐了背景,然而地面却没有对上。

640-1.gif

Deep MeshFlow

为了解决深度视差带来的挑战,下面介绍同样是我们团队今年提出的DeepMeshFlow方法“DeepMeshFlow: Content Adaptive Mesh Deformation for Robust Image Registration” 。

WechatIMG189.png

该工作的思想与上面提到的基于内容的Deep Homography类似,唯一不同的是,这里我们不仅仅回归homography的H\_4pt,而是把每一个vertex上的位移都计算出来。

有趣的是,当我们将不同scale的mask可视化以后发现,随着scale的增大(1*1 其实就是一个homography)网络关注的内容逐渐增多,这说明模型对运动的表征能力在逐渐增强,它在尝试对齐图像中更多的内容。

WechatIMG190.png

将Deep MeshFlow方法和之前Content Deep Homography对比(下图),可以发现效果有了显著提升,地面和背景基本上都对齐。

640.gif

到目前为止,借助Deep MeshFlow,我们已经能够很好地解决homography方法遭遇的三大问题。

WechatIMG191.png

接下来,我们介绍一下与上述对齐方法完全不同的另一种范式——基于硬件的图像对齐,这里选择陀螺仪为例。

基于硬件的图像对齐


陀螺仪

在目前很多设备中都存在陀螺仪,它们可以为我们提供很多运动的信息,它们可以帮助我们进行图像对齐工作。

WechatIMG192.png

通常情况下,陀螺的gyro data采样率都较高,远高于拍摄视频的帧数,即一帧会对应多个陀螺仪数据。每一个陀螺仪gyro data可转化成一个homography矩阵,多个gyro data 会组成一个homography array。

下图展示了利用纯陀螺数据(不看图像)进行对齐与使用SIFT+RANSAC对齐的效果对比。可以发现利用陀螺数据会非常有趣,因为我们可以在不依靠图像画面内容的情况下对齐图像。

640-1.gif

虽然如此,使用陀螺仪对齐画面依然存在几个难点与局限。

WechatIMG193.png

首先,需要矫正一系列参数(如上图中的K、t\_s、t\_d等);其次,光学防抖也会干扰我们对图像的对齐,因为它加入了原始陀螺之外的运动信息;第三,是它只能描述相机的纯旋转运动,以下方实验为例:

640-2.gif

640-3.gif

可以发现,根据gyro数据可以很好对齐相机纯旋转(图中相机架设在一个脚架上旋转拍摄)拍摄的画面;而在当做translation的时候,仅用陀螺的数据就无法精确对齐画面了。不过值得注意的是,真实运动中大部分运动都来自于旋转。

总结陀螺的优缺点,由于它永远针对的是平面,所以无法对齐有深度视差的图像;但它能很好处理图像特征与RANSAC的问题(因为它根本不需要看图像);它只能弥补因为纯旋转带来的运动变化,而无法处理translation问题。

需要强调的是,这里只介绍了手机场景下的陀螺仪对齐,对于陀螺外置的情况(如自己组装的一些设备),其实也可以利用陀螺仪来辅助我们进行图像对齐。

以上就是今天的全部内容,谢谢大家,欢迎感兴趣的同学加入旷视研究院!

视频回顾:

https://v.qq.com/x/page/u3041...


---------R Talker 介绍-------

刘帅成,旷视成都研究院负责人,博士毕业于新加坡国立大学电子与计算机工程系,主持多项国家自然科学基金。他的研究成果发表在SIGGRAPH/CVPR/ECCV/ACMM等会议及TOG/TMM/TIP/TCSVT等期刊,专注于底层视觉和计算摄影学研究。目前带领团队开展手机影像研究,研究成果获得广泛应用。

个人主页:http://www.liushuaicheng.org/

专栏文章推荐


欢迎关注旷视研究院极术社区专栏,定期更新最新旷视研究院成果
加入旷视:career@megvii.com
推荐阅读
关注数
7696
内容数
164
专注旷视研究院学术论文解读推送,涵盖计算机视觉,文字识别等
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息