单应性估计homography estimatio是一种深度卷积神经网络,用于估计两张图像之间的相对单应性(homography),其前馈网络包含10层,以两张堆叠的灰度图像作为输入,输出一个具有8个自由度的单应性矩阵,可用于将第一张图像的像素映射到第二张图像。描述同一个平面在两个不同视角下的投影关系
如何映射:分类单应性网络(Classification HomographyNet)会为每个角点的每一个潜在二维位移生成一个分数。每个角点对应的这个二维分数网格,其实就可以被看作是一种概率分布。
【二维分数网络:其实就是网络输出的热力图(Heatmap),分数越高的地方,说明模型越觉得这个位移是正确的,所以把它理解成“分布”是非常合理的。】数学描述:两张图像之间的单应性变换通常用一个3*3的矩阵H来表示。这个矩阵总共有9个元素:
但是,单应性矩阵使用的是齐次坐标,在齐次坐标系下,矩阵乘以一个非零的常数k,得到的变换效果是完全一样的(即 HH 和 kHkH 是等价的)。
因为存在这种全局尺度不确定性,我们可以固定矩阵中的某一个元素(例如令 h33=1h33=1 ),或者规定矩阵的范数 ∥H∥=1∥H∥=1 。
这样一来,9个元素减去1个尺度约束,9 - 1 = 8,所以单应性矩阵拥有 8 个自由度。因为单应性有8个自由度,而二维图像上的一个点提供2个坐标约束(x和y),所以刚好需要4对对应点(2*4=8)就可以列出一个方程组,从而唯一求解出这个3*3的单应性矩阵。这也是传统计算机视觉算法的基础。
与ORB传统局部纹理描述子作对比:传统算法ORB是一种局部特征提取与匹配算法。它的作用是在图像中寻找具有显著纹理的“特征点”(如角点),所谓的“具有显著纹理的特征点”,通常指的是图像中那些在局部区域内灰度值(亮度)发生剧烈变化、具有明显方向性且易于被区分的像素点。
而homography是一个包含8个参数的 3x3 矩阵。它的任务是:根据 ORB 找到的那些零散的对应点,反推出一个全局的几何变换公式。
ORB寻找局部特征的核心标准:
ORB算法的第一步是使用FAST角点检测器。FAST的原理是检查一个中心像素周围一圈(通常是16个像素)的亮度。如果这一圈中有连续多个像素的亮度都比中心像素明显亮,或者明显暗,那么这个中心点就会被认定为“特征点”。
找到角点后,ORB还会计算这些点的BRIEF描述子(通过比较周围特定像素对的亮度大小,生成一串0和1组成的二进制码)。
ORB具有旋转不变性,它会计算特征点周围区域的“重心”(灰度质心),从而算出该点的主方向。即使相机旋转了,ORB依然能认出是同一个点。
ORB具有尺度适应性,ORB使用了图像金字塔技术,在不同缩放比例的图像上寻找特征点。无论远处的微小纹理,还是近处的大块纹理,只要满足上述条件,都能被提取出来。
应用:可用于增强现实,利用目标系统自身的传感器和环境生成的图像对样本进行训练,做AR的时候,用特定设备在真实场景下拍的照片对去训练单应性网络,能让AR应用受益。