在知乎问题:深度学习应用在哪些领域让你觉得「我去,这也能行!」?中遇到一篇提交在arXiv 2016(arXiv不是正式发表,只是可以证明原创性,提供时间戳的网站)的文章《Deep Image Homography Estimation》,感觉对自己帮助很大,所以记录在这里。

之前自己也在思考如何利用神经网络实现图像的配准,没思考出什么结果来。大部分的深度学习中使用的是单幅图像进行训练,如果输入的是变形图像和参考图像,其实可以借鉴图像匹配的网络,但是还是不清楚具体如何进行。甚至开始怀疑配准的意义,既然都有一幅ground truth了,为什么不直接使用而需要将另外一幅进行配准。最后这个问题后来想通了:配准指的是形态配准到一致,但在异源图像的融合中,还需要两幅图像之间的互补信息才能得到更多的有效信息。剩下的问题在这篇文章中给出了一些思路。

总的来说,这篇文章的创新点主要有两个,一个是如知乎回答中的,将神经网络与图像处理的专业知识结合起来了,不再是使用一个黑箱直接得到结果,而是使用神经网络得到一个中间变量Homography,再使用Homography进行配准,而不必再将特征点检测和变换估计分开,因为传统的方法是先使用ORB等特征点检测找到一些角点,然后再使用RANSAC等方法进行变换矩阵的估计。因为关于Homography的研究其实已经很成熟了,只要是共面变换,就可以使用Homography单应矩阵描述图像之间的变换。文章中提到Homography的应用场景有三个:只有旋转的变换;平面场景;离观察者很远的场景。这三种条件正如之前博客中对于Homography的分析。

还有一个创新点我认为是作者以一种很简单的方式建立了训练样本并且得到了真正的Homography。作者借助了图像集MS-COCO(Microsoft COCO: Common Objects in Context)构建自己的训练样本。

首先Homography有8个自由度(8-dof),所以理论上只需要4对匹配点就可以估计出单应矩阵。所以参考图像就是在图像样本中随机裁剪得到一个128x128大小的图像patch A,然后对于图像的四个顶点坐标的x,y值分别在[-p,p]范围内进行偏移(偏移最大值为128的四分之一),于是就得到了一个变形的绿色的框B,并且可以得到A到B之间的变换矩阵HAB作为ground-truth training label。但是在训练网络中我们希望变形图像和参考图像都是大小一样的正方形,所以我们借助HAB矩阵的逆矩阵,将原图变形,同时将绿框恢复为正方形,对应Step4,Step4中的图像中的绿框就是变形图像B。A和B都是灰度图,二者构建一个2通道的图像作为网络的输入。关于2通道图像在神经网络中的训练,可以参考这个博客。

此外,还可以人为地在训练集上做一些模糊等处理来增强网络的鲁棒性。

关于网络的一些细节

常规操作:使用3x3的卷积模板,使用BatchNorm归一化,使用ReLU作为激活函数。整个网络的结构和Oxford VGG很相似,整个网络有10层,其中有8个卷积层,两个全连接层,每两个卷积层后面跟一个最大池化层,在最后一个卷积层和第一个全连接层之间还有一个Dropout,Dropout以0.5的概率随机丢弃神经元,避免过拟合。

在此基础上,其实作者提出了两个结构,一个是回归网络regression network,直接估计出Homography矩阵的参数值;一个是分类网络classification network,输出对于量化矩阵的分布函数produces a distribution over quantized homographies.

可以看到,两种网络只有最后一层是不同的。

回归网络在训练时最后一层使用的是L2 损失函数。这种方法的优点是计算简单,然而,没有计算出预测值的置信度confidence,这在某些应用中是不允许的prohibitive。

分类网络在最后一层使用的是softmax分类器训练时使用交叉熵cross entrop作为损失函数。文章中使用了量化方法,我的理解是这样的:文章首先将对单应矩阵的预测转换成对4对匹配点的预测,具体形式是横纵坐标的偏移量(对应于测试样本的构建),4个点对的偏移量构成的矩阵和单应矩阵是一一对应的。

所以,量化就是把当前点坐按概率分配给对应点。因为会产生量化误差,所以对每一个角点会生成一个关于偏移量的分布函数。

X和y坐标都可以在正向和负方向偏移。对8个维度,每个维度用21bins量化,这样输出就是168个神经元。

怎么实验的

实验使用了Titan X GPU进行训练,耗时8小时,使用了随机梯度下降法,动量momentum是0.9,学习率是0.005,每30000次迭代进行因子为10的下降。Batch size是64,total iteration为90000.使用Caffe深度学习框架。网络参数的初始值为随机值。

测试集和训练集的生成方法类似,只不过图像更大,patch也更大(256x256).因为在patch是128x128时,ORB检测出的特征点过少,而神经网络没有这个问题。因为网络的输入必须是固定大小的,所以测试时的patch必须进行因子为2的下采样,在计算得到homography时再乘2.

作者将HomographyNet的两个版本回归和分类网络与两个baseline进行了比较。一个baseline是ORB特征点检测+RANSAC+OpenCV中的getPerspectiveTransform函数的方法;一个baseline是对于测试集中的图像对使用单位矩阵identity matrix。ORB方法的效果与特征点的数目有关:In scenarios where too few ORB features are computed, the ORB+RANSAC approach outputs an identity estimate. In scenarios where the ORB+RANSAC’s estimate is too extreme, the 4-point homography estimate is clipped at [-64,64].

下图是实验结果。评价指标是对应点之间的平均距离。

可以看到回归的方法效果最好,但是分类的方法可以得到置信度,且可以可视化地纠正实验结果,在某些应用中是有优势的。

作者总结了这个系统的两个优势,一个是速度快,借助英伟达的泰坦显卡,可以实现每秒处理300帧的图像,with a batch size of one。第二,将计算机视觉中最基础的单应矩阵的估计问题转化为机器学习的问题,可以针对应用情景如使用SLAM的室内导航机器人做特定优化。事实上,单应矩阵在图像拼接,ORB-SLAM算法和Augmented Reality(AR),相机标定中都有很重要的应用。这篇文章的三个作者都来自Magic Leap公司,一家做AR的公司,已经得到了Google和阿里巴巴等公司是十几亿美金的投资。

Reference:

https://blog.csdn.net/ajing2014/article/details/53998866

Deep Image Homography Estimation相关推荐

  1. ISP图像对齐(二):Deep Image Homography Estimation

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.4-点式建模与其利弊 二.原理过程 三.训练与效果 总结 前言 ISP 图像对齐笔记(二):Deep Image ...

  2. 文章《Deep Image Homography Estimation》

    之前自己也在思考如何利用神经网络实现图像的配准,没思考出什么结果来.大部分的深度学习中使用的是单幅图像进行训练,如果输入的是变形图像和参考图像,其实可以借鉴图像匹配的网络,但是还是不清楚具体如何进行. ...

  3. 【论文精读】Deep Defocus Map Estimation using Domain Adaptation-2019CVPR

    题目:Deep Defocus Map Estimation using Domain Adaptation 题目:使用区域适应的深度散焦map估计 作者:Junyong Lee 来自POSTECH ...

  4. Deep Upsupervised Cardinality Estimation 解读(2019 VLDB)

    Deep Upsupervised Cardinality Estimation 解读(2019 VLDB) Deep Upsupervised Cardinality Estimation 选择度( ...

  5. 【文献阅读】 Deep Learning-Based Channel Estimation in OFDM Systems

    2019 IEEE https://arxiv.org/abs/1810.05893 代码:https://gitee.com/joannne/ChannelNet Pilot Pattern Des ...

  6. Homography estimation(旋转估计)

    以下内容节选自https://bitesofcode.wordpress.com/2017/09/12/augmented-reality-with-python-and-opencv-part-1/ ...

  7. 单应性Homography梳理,概念解释,传统方法,深度学习方法

    Homography 这篇博客比较清晰准确的介绍了关于刚性变换,仿射变换,透视投影变换的理解 单应性变换 的 条件和表示 用 [无镜头畸变] 的相机从不同位置拍摄 [同一平面物体] 的图像之间存在单应 ...

  8. lisp提取长方形坐标_语义SLAM | 深度学习用于特征提取 : SuperPoint(一)

    0. 写在前面 SuperPoint 是基于自监督训练的特征点检测和描述符提取方法,是2018年MagicLeap发表的一篇文章中提出的.MagicLeap是一个备受争议的做VR的公司,大家如果对他的 ...

  9. 【计算机视觉】图像配准(Image Registration)

    (Source:https://blog.sicara.com/image-registration-sift-deep-learning-3c794d794b7a)  图像配准方法概述 图像配准广泛 ...

最新文章

  1. Python笔记:字典的fromkeys方法创建的初始value同内存地址问题
  2. Python 微信机器人-用itchat库向好友发送名片、转发名片实例演示
  3. python算法与数据结构-数据结构中常用树的介绍
  4. 6个重构方法提升80%的代码质量
  5. 10个有趣的Python教程,附视频讲解+练手项目。
  6. 微信小程序在当前页面设置其他页面的数据
  7. PHP 将Base64图片保存到 Sae storage
  8. Vue中$nextTick的理解
  9. 微软发布首个 Chromium Edge stable 预览版
  10. python线程数组_Python多线程
  11. QuickBI助你成为分析师-仪表板钻取的实现
  12. 道客巴巴 解析_华为2019数字芯片岗笔试解析(多选部分)
  13. 深度学习(01)——安装anaconda
  14. 计算机视觉可分计算成像学()五大类,中国大学 MOOC_化工过程与控制仿真实习_期末考试选修课答案...
  15. kali Linux桌面环境切换
  16. 关于车臣战争有什么电影?车臣战争片推荐
  17. 【图解CAN总线】-2-详述CAN总线电平
  18. Key(Windows Android),申请 android google 地图 API key(转)
  19. ansible常用模块
  20. 困牛放牧(Sleepy Cow Herding)

热门文章

  1. 报名 | 全国知识图谱与语义计算大会(CCKS 2019)评测任务发布
  2. 论文浅尝 | 用异源监督进行关系抽取:一种表示学习方法
  3. [中文事件抽取]DCFEE: A Document-level Chinese Financial Event Extraction System based on Automatically Lab
  4. from torchcrf import CRF
  5. 2019.3.23 捕获异常
  6. VM虚拟机下配置centos linux系统
  7. 数据结构-使用两个栈实现一个队列
  8. day27 CRM delete action 嵌入CRM
  9. 游戏“冰川滑行”设计稿(第一版)
  10. CodeForces 615C