[深度学习论文笔记][CVPR 17 oral] Inverse Compositional Spatial Transformer Networks

标签: 深度学习
6588人阅读 评论(0) 收藏 举报
分类:

[CVPR 17 oral] Inverse Compositional Spatial Transformer Networks

Chen-Hsuan Lin and Simon Lucey

from CMU

paper link

Intuition

这篇文章是针对Spatial Transformer Network进一步改进的工作。从研究领域来看,该工作是对增强深度网络之于输入图片空间不变性的研究。作者首先对这一领域的工作进行了简单的总结和分类。前人工作可大致分为两类:

  1. 一类是传统的通过训练数据扩展和在网络中使用max pooling等操作让网络容忍输入图片的空间变化;
  2. 第二种则是使用参数方法改变网络结构,消除数据的空间变化。STN是第一个使用较小计算代价来实现这一功能的尝试。

这篇文章提出的模型仍然遵循了STN的大致思路:通过网络预测得到一组与当前数据相关的仿射变换的参数,并使用这些参数对数据/特征进行形变操作,从而消除输入图像中物体各种各样的空间变化。

与STN相比,这篇文章提出的IC-STN模型有两点主要改进:

  1. 预测参数时借鉴了Inverse Compositional算法(Lucas & Kanade算法的变种)的思想,并不像STN一样通过侧支网络直接回归变换参数;
  2. IC-STN模型仅在网络最后的特征上进行形变操作,而STN则是在网络之中进行多步的形变操作。STN的做法会导致一种边缘效应(boundary effect)。

Method

1. IC-STN

在介绍网络结构之前,需要简单介绍下Lucas & Kanade(LK)算法和Inverse Compositional算法。LK算法是已经集成到OpenCV中的经典算法,目前有很多博客详细介绍了算法的计算过程。这里仅作概念和思路的介绍。LK算法是一个基于优化的算法,其的过程是将原图片I进行基于可学习参数p的形变,目的是得到与给定的模板图片T最为相近的结果。用能量函数描述即为,通过学习参数p来最小化以下式子:

minΔp||I(p+Δp)T(0)||22

其中I(p) 代表使用参数p得到的变换后图像。对I(p)进行一阶泰勒近似可得:
minΔp||I(p)+I(p)pΔpT(0)||22

通过这个式子便可得到Δp,然后对p进行更新迭代。Inverse Compositional算法则是对LK算法的一个加速。首先对第一个公式做一个变量代换:
minΔp||I(p)T(Δp)||22

之后对T(Δp)而不是I(p)进行泰勒一阶展开:
minΔp||I(p)T(0)T(0)pΔp||22

也可得到Δp。这里性能的提升体现在I(p)p需要在每次更新p之后重新计算,而T(0)p则不需要。

将这套算法应用到深度网络上则表现为:使用侧支网络预测Δp,IC算法的迭代过程变为对侧支网络的优化。通过如下框图可以比较IC-STN(图1,迭代优化一次)与STN(图2)预测变换参数p的不同:

image(1)
image(2)

如果将IC-STN的迭代优化过程表示出来则有:

image

也可以画作recurrent形式:

image

2. Boundary Effect on STN

由于STN是在网络主干中进行多次切割子图和仿射变换,则会有一个潜在的问题:如果前一个操作是将图片放大,即取出一个子图,后一个操作是将图片缩小的时候,后一操作将无法恢复出被前一操作所舍弃掉的像素,最后的结果会得到黑色边缘。从图片结果可形象表示为:

image

(a)是原图。假设STN的形变操作依次是:(b)切割,(c)放大,(d)缩小与形变。可以看到由于(d)操作是基于(c)的结果,(d)操作无法得到在(c)结果所示范围之外的数据,于是在放大的时候只能用0来充填。如果将这些操作进行综合,只在最后进行一次形变,那应该得到(e)的结果。显然(e)结果是更有利于特征提取的。

IC-STN为了避免这一不利现象,将形变操作只进行了一次。

Experiment

作者在MNIST手写数据集和GTSRB标牌数据集上做了IC-STN与STN的对比试验,定性与定量结果如下:

MNIST

image

image

GTSRB

image