Deep Image Homography Estimation

深度学习估计单应性
本文介绍了一种使用深度学习估计图像单应性的方法,基于2016年CVPR发表的文章。通过构建HomographyNet网络,利用MS-COCO数据集训练,实现了对图像单应性的有效估计。实验结果显示,回归网络在效果上优于传统ORB方法。

转载:https://blog.youkuaiyun.com/ajing2014/article/details/53998866
展开
      本篇博文主要讲解2016年发表在 Computer Visionand Pattern Recognition上的一篇文章Deep Image Homography Estimation文章地址,该文章主要讲述了使用ConvNet来实现对Homography的估计,作者来自于Magic Leap,一家做AR的公司,大家可能对这个名字不是很熟悉,但是相信该链接中的视频确实引起一阵AR的浪潮。Homography(单应性)为SLAM领域的问题,由于本人对SLAM并不是特别的了解,对该文章中的卷积神经网络的应用比较感兴趣,所以如果有领域内的专业术语理解有误或者措辞不当的请谅解。

     需要解决的问题?

     传统、简单的解决Homography的方法是使用一个3*3的矩阵和一个固定的尺度比例,如下公式所示:

                                                                      

其中[u,v]为图像1中点p的位置,[u',v']为同一物体相机位于不同视角拍摄的图片2中所对应p'的位置,为旋转 项,[H_13 H_23]为平移偏移项。可以将问题寻找9个参数的问题转化为8个参数的问题,如下图所示。

                                                        

 其中∆u_1=u_1^'-u_1,其中左图中的4个角点组成一个4边形,对应右图中由4个角点组成的4边形,这样参数就由9个变成现在的8个。问题现在比较明确为求这8个参数。

     数据集构造

        对于深度学习来说,构造数据集是一个非常关键的问题。

                                                                                           

     step1:随机的以p为中心(注意边界)切一个正方形大小的patch,该patch由4个角点组成,step2:对这4个角点加扰动量[-ρ,ρ],就生成了step3中的绿色的4变形,将该多边形的变化矩阵应用到整幅图中就可以得到step4中的图。这样就可以得到左右两幅图的图像对。

    其中在训练网络中,采用SGD,动量值为0.9,基本的学习速率为0.005,每经过30000次迭代产生学习速率会下降0.1,训练网络中共有90000次迭代,batch size为64.在caffe框架中训练,采用Titan X GPU加速,大概每个网络训练时间为8小时。

    training data

    采用MS-COCO的训练集,将所有图片转化为320*240的灰度图,通过上述的构造数据集的方法共产生500,000对128*128的图像对,其中ρ=32,大约为图像尺寸的1/4。

   testing data

   采用MS-COCO14的测试集,将图片转化为640*480的灰度图,并裁剪成256*256的图像对,其中ρ=64。

 

       HomographyNet构建

       结构类似于VGG的网络,卷积核为3*3,采用了Batch Norm和ReLU,总共网络包含8个卷积层,每个卷积层的个数为:64、64、64、64、128、128、128、128,每两个卷积层之后又一个max pooling(2*2,步长为2),以及2个全连接层,输入为2-通道的灰度图,即将左图和右图叠加成2通道的图片,可以参考该博客理解。 

其中文中构造了两种HomographyNet网络,

                                                                

Classificationnetwork:采用量化机制(会产生量化误差),训练过程中交叉熵为代价函数,最后一层为softmax层产生每个角点置信度的8维向量。

Regression network:产生8个真实值,训练过程中欧式距离为代价函数,最后一层的输出为8*21,基于classionation网络的缺点,8个方向的输出用21个量化量来表示。

       效果如何?

                                                                                                      

        可以看出,Regression Network的效果最好,不过文中也提到了HomographyNet相比较于传统的ORB的方法在有些优势,并且对噪声的鲁棒性强,但是在有些场景下传统的也会比HomographyNet表现的好。

       深度学习目前在各个领域开始有应用,正如文中在结尾所说,如何将homography估计由之前的计算机视觉方面的角度转到学习的角度,是我们现在要思考的,相信深度学习将会在各个领域的问题中有所建树。以上是我对该paper的理解,如果有误,请指出,共同进步。

### 深度学习中的图像对齐技术 #### 背景介绍 图像对齐是许多计算机视觉任务的基础,尤其是在多模态数据处理中显得尤为重要。通过深度学习的方法实现图像对齐可以显著提高精度和效率[^2]。 #### 主要挑战 在实际应用中,图像对齐面临多个困难点,这些难点主要来源于图像本身的特点以及场景复杂性。例如弱纹理、无纹理区域使得特征提取变得困难;低光照条件下的图像可能受到噪声影响,进一步降低对齐质量;而重复纹理则可能导致错误的特征匹配。此外,在某些情况下,前景物体可能会遮挡背景结构,或者由于视角差异过大而导致传统几何模型失效[^3]。 #### 基于深度学习的技术方法概述 ##### 特征提取阶段 利用卷积神经网络(CNNs)可以从原始像素级别自动抽取高层次语义信息作为描述符用于后续步骤。这种方法相比手工设计特征具有更强表达能力和泛化能力。 ##### 典型算法分析 - Deep Image Homography Estimation (DIHE) - **发布时间**: 2016年 - **核心思想**: DIHE 提出了端到端框架来估计两张图片之间的单应矩阵(Homography Matrix),该过程完全由CNN完成而不依赖任何显式的特征点检测与匹配操作。具体来说,输入一对重叠部分已知但位置未知的两幅图给定大小裁剪窗口之后送入训练好的全连接层输出最终参数向量表示对应关系。 ```python import tensorflow as tf def homography_model(input_shape=(128, 128, 2)): model = tf.keras.Sequential([ tf.keras.layers.Conv2D(64, kernel_size=3, activation='relu', input_shape=input_shape), tf.keras.layers.MaxPooling2D(pool_size=(2, 2)), tf.keras.layers.Conv2D(128, kernel_size=3, activation='relu'), tf.keras.layers.MaxPooling2D(pool_size=(2, 2)), tf.keras.layers.Flatten(), tf.keras.layers.Dense(512, activation='relu'), tf.keras.layers.Dense(8) # Output layer for the parameters of a planar homography matrix. ]) return model ``` - 这种方式不仅简化流程而且提高了鲁棒性和速度表现良好特别是在小范围位移情况之下。 #### 总结 虽然目前已有不少优秀的研究成果问世但仍有许多方面值得探索改进比如如何更好地应对极端条件下(如极度模糊不清的照片)或是跨域适应等问题都需要未来继续深入研究解决[^1]. ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值