之前自己也在思考如何利用神经网络实现图像的配准,没思考出什么结果来。大部分的深度学习中使用的是单幅图像进行训练,如果输入的是变形图像和参考图像,其实可以借鉴图像匹配的网络,但是还是不清楚具体如何进行。甚至开始怀疑配准的意义,既然都有一幅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. Deep Image Homography Estimation

    在知乎问题:深度学习应用在哪些领域让你觉得「我去,这也能行!」?中遇到一篇提交在arXiv 2016(arXiv不是正式发表,只是可以证明原创性,提供时间戳的网站)的文章<Deep Image ...

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

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

  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. 图像对齐讲座—旷世成都研究院 数据策略产品经理——阿里讲座

    刘帅成博士,旷世成都研究院,该院2018年成立, 新加坡国立大学毕业 目录: 1基于传统算法 2基于深度学习 3基于硬件 Image aligment methods图像对齐 应用: 图片拼接:不同视 ...

最新文章

  1. ubuntu修改u盘权限_Ubuntu下提示U盘没有些权限的只能读不能写
  2. 服务器流量异常排查步骤(查看进程的流量)
  3. 先了解一下Shiro安全框架
  4. eureka配置_F版本SpringCloud 5—Eureka集群和自我保护机制
  5. Why does pthread_cond_signal not work?【转】
  6. CSS, JavaScript, jQuery实现标签页切换
  7. “世界百位名人”诠释上海世博会城市主题
  8. eclipse新建服务器项目,使用eclipse快速新建spirngboot项目的方法
  9. Python利用SMTP发邮件
  10. 云计算与大片:基于阿里云的渲染农场
  11. 采用sFlow工具实现流量监控--实验
  12. iOS小技能:iOS15适配导航条主题: 背景颜色、标题颜色
  13. 【Angular中的RxJS】- Subject 分类介绍
  14. 美国国家机器人计划2.0部分项目简介
  15. html网页嵌入shiny,用Shiny生态快速搭建交互网页应用
  16. layui table 改变列表字体颜色
  17. 黑马程序员博学谷Java就业班课程
  18. Bad Ugly Numbers
  19. 解决mybatis的SELECT command denied to user 'root'@'192.168.1.47' for table 'user'的报错。mysql用户权限修改,表权限修改。
  20. ISO14001是什么?

热门文章

  1. 如何设置电脑锁屏后程序仍在运行
  2. 39. hive 在使用 count(distinct ) over 时报错,提示 Expression not in GROUP BY key
  3. Win32病毒入门--ring3篇
  4. GraphSAGE 源代码 -- 分图训练
  5. 分享一个stm8s003单片机的ADC转换,附加一个冒泡算法(用于减少误差)
  6. 【概率论】一种非常巧妙的随机抽样算法
  7. 小晴天老师系列——竖式乘法(暴力)
  8. ubuntu kylin mysql_Ubuntu Kylin 安装和配置mysql
  9. 在Unity3d项目中利用Udp进行局域网内通信
  10. WebGoat v8.1.0 下载安装(windows)