文章名称:Deep Image Homography Estimation,论文地址:https://arxiv.org/pdf/1606.03798.pdf,代码地址:GitHub - mazenmel/Deep-homography-estimation-Pytorch: Deep homography network with Pytorch
单应性原理被广泛应用于图像配准,全景拼接,机器人定位SLAM,AR增强现实等领域,下图为单应矩阵在图像拼接中的应用示例。
HomographyNet是发表在CVPR 2016的一种用深度学习计算单应性变换的网络,即输入两张图,直接输出单应性矩阵H。核心思想为:
a、用最简单的方式来理解,就是取参考帧图像和待配准图像相同大小的ROI区域。
b、以参考帧图像ROI矩形的四个顶点为特征点,找到待配准图像ROI区域上对应这个4个点坐标位置。
c、利用这4对匹配点,直接求解出单应性矩阵H,得到配准数据。
整体网络结构如下,输入为两张图,输出单应矩阵估计。
使用cnn来求解单应性矩阵,通过两种方式,把它看成拟合或者分类问题。
使用cnn来求解单应性矩阵,通过两种方式,把它看成拟合或者分类问题:
数据生成示意图如下:
a、参考帧图像非边缘区域随机选择框一个矩形ROI(step1 蓝色框位置),表示为patchA;
b、蓝色框4个顶点以自身为中心,x,y坐标都在−ρ , ρ 范围内随意移动(也就是step2上那4个黄色框范围);
c、根据移动后4个顶点(step3上绿色框),和原来的4个顶点(step3上蓝色框),组合成4对匹配的特征点,求解并应用单应性矩阵HAB,生成需要的待配准图像(step4所示图像);
d、待配准图像上4个特征点,反向应用单应性矩阵Hba, 生成新的4个坐标点(step4上绿色框),得到和参考帧图像对应的patchB;
e、最终得到的patchA和patchB就表示为网络输入,step3上绿色框和蓝色框稍的4对点坐标相对位置,就可以理解为网络训练的gt。
训练集生成:
a、所有输入都转换为320x240大小灰度图;
b、使用上一步提到的gt数据生成方式,得到500000组128x128大小的训练数据块。
测试集生成:
a、随机选择5000张图像,都转换为640x480大小灰度图;
b、每张图取256x256 patch块,ρ取64,生成对应测试数据。
在存在大量无纹理区域,导致传统算法找不到足够特征点,或者说特征点分布明显不均匀情况下,本文方法有明显优势;但是,纹理丰富场景时,并无明显优势。
一些简单场景可以考虑简化使用,毕竟网络结构简单,易实现,可通过训练弥补特征点方法的不足。测试误差,略优于传统方法。但实际上,基于深度学习的方法,均存在泛化问题,场景纹理丰富时,还有优先考虑基于特征点的方法。
参考资料:
1、单应性Homography估计:从传统算法到深度学习
单应性Homography估计:从传统算法到深度学习 - 知乎
2、Keras = 2.1.2 代码实现
GitHub - 4nthon/HomographyNet_Keras: Implementation of homographiynet with keras
3、pytorch=1.6 代码实现
GitHub - mazenmel/Deep-homography-estimation-Pytorch: Deep homography network with Pytorch
4、图像配准:从SIFT到深度学习
图像配准:从SIFT到深度学习 | 码农家园
5、西安电子科技大学权老师报告
未来之星 | 基于深度学习的遥感影像配准研究(视频)