回顾仿射变换
我们之前在博文[2,4]中谈到过仿射变换,简单来说就是仿射变换是几何图形之间保持平行线,共线性的一种线性变换,在二维情况下,我们用齐次坐标系[4]可以表示为:
其中满足约束:
一般来说,仿射变换包括了 旋转,平移,切变,尺度放缩等基本几何操作 [4]。当然,一般我们提到仿射变换时,都默认是全局的仿射变换(global affine transformation)。
手写字符匹配在说到局部仿射变换之前,我们先提一下手写字符匹配这个应用场景,在这个场景里面,局部仿射变换有着其作用之地。对于某个手写字符,比如“大”字,我们可以设置一个标准的参考字符,我们分别用R , S 表示参考字符和输入字符,假设这两个字符的特征点为:
其中表示特征点的数量,如Fig 2.1所示,为了使得匹配关系尽可能一致,我们的目标方程是:
其中表示了从 R 到 S 的特征点映射关系,即是,不失一般性地假设,此时为单位映射,我们有:
此时变形向量可以表示为:
Fig 2.1 “大”字的参考字符和输入字符之间存在一定的匹配关系,当然,这两类字符的特征点数不一定一致,但是可以进行特定的采样使得其特征点数一致。
注意到一种现象,在式子(2.3)中其实考虑的是每个点之间的匹配关系,我们称之为全局匹配关系,而在手写字体和参考字体的真实匹配过程中,其实可能存在局部的匹配关系,即是某些部分的匹配比较接近,而某些部分的匹配不够接近,如果把这两个结果一起优化(即是全局),则优化过程可能对局部优化较好的结果产生不好的影响。为了避免全局信息对局部信息产生影响,此时需要考虑局部的匹配结果优化。
局部仿射变换
我们假设输入的字符特征点可以用参考字符特征点的仿射变换表示,那么有:
其中是二维的仿射变换矩阵,用齐次坐标系表示,而是残差。那么对于每个特征点i ii而言,都存在这样一个二维仿射变换矩阵 ,使得参考字符和输入字符的特征点都可以用仿射变换进行关联,如Fig 3.1所示。
可知对于而言,也有:
那么为了优化得到第 i 个特征点的仿射矩阵,我们有:
有最优化过程:
我们发现,该优化过程需要考虑全局的特征点之间的仿射关系,而这个考虑关联的程度由权重系数控制,一般来说,我们用高斯函数[5]表示这个权重大小,也就是距离 i 越远的特征点 j 其权重越小,反之亦然。有:
我们称θ \thetaθ为窗口大小,这个决定了特征点之间距离和权重系数之间的放缩关系。
通过这个权重参数,我们在优化的时候,更多地考虑的是以特征点 i 为圆心,以为半径的局部的特征点优化,而不是全局信息,这个就称之为 局部仿射变换。
Fig 3.1 输入字符和参考字符的特征点之间可以用仿射变换进行关联。
容易发现,当时,,此时等价于全局仿射变换,当时,,此时意味着所有匹配都准确,这个是不可能的。
总结总结来说,全局仿射变换和局部仿射变换的区别在于,在局部仿射变换过程中,求解仿射变换矩阵的参考点是局部的,在对于某些存在局部变形的应用中,会更为适合用局部仿射变换去求解局部仿射变换矩阵。
Reference
[1]. Siarohin, A., Lathuilière, S., Tulyakov, S., Ricci, E., & Sebe, N. (2019). First order motion model for image animation. In Advances in Neural Information Processing Systems (pp. 7137-7147).
[2]. https://blog.csdn.net/LoseInVain/article/details/104533575
[3]. Wakahara, T. (1988, January). Online cursive script recognition using local affine transformation. In 9th International Conference on Pattern Recognition (pp. 1133-1134). IEEE Computer Society.
[4]. https://blog.csdn.net/LoseInVain/article/details/102756630
[5]. https://blog.csdn.net/LoseInVain/article/details/80339201