传统的图像对齐方法
传统的基于特征的图像对齐方法包括三个步骤:
- 关键点检测和特征描述
- 特征匹配
- 图像变换
简而言之,选择两个图像中的兴趣点,将参考图像中的每个兴趣点与浮动图像中的对应点相关联,并对浮动图像进行变换,以使两个图像对齐。
关键点检测和描述
关键点定义图像中的重要特征对象(拐角,边缘等)。每个关键点由一个描述符表示。描述符是特征向量,包含关键点的基本特征。描述符必须对图像转换(定位,比例,亮度等)具有鲁棒性。有很多算法可以检测关键点并描述特征。
- SIFT(尺度不变特征变换)是用于检测关键点的原始算法,但是要付费使用。 SIFT特征描述符对于统一缩放,方向和亮度转换是不变的,对于仿射失真则是部分不变的。
- SURF(快速鲁棒功能)是受SIFT影响的检测器和描述符。它比SIFT快几倍。我们也有专利。
- ORB FAST Brief(定向的FAST和旋转的Brief)是基于FAST关键点检测器和Brief描述符的组合的快速二进制描述符。它对旋转不变,对噪声也很强。由OpenCV Labs开发,它是SIFT的高效免费替代品。
- AKAZE(Accelerated-KAZE)是KAZE的加速版本。它为非线性尺度空间提供了一种快速的多尺度特征检测和描述方法。它对于缩放和旋转都是不变的,并且是免费的。
关键点匹配
在两个图像中找到关键点之后,需要关联或"匹配"相应的关键点。其中一种方法是BFMatcher.knnMatch()。它测量每对关键点描述符之间的距离,并与距离每个关键点最近的k个关键点进行匹配。然后应用比率过滤器以仅保留正确的匹配项。
图像转换
匹配至少4组关键点后,将一个图像相对于另一个图像进行转换。这称为图像变形。空间中同一平面上的两个图像通过单应性关联。单应性是具有八个自由参数的几何变换,并由3x3矩阵表示。它们表示应用于整个图像的失真(与局部变换相反)。因此,要获得变换后的浮动图像,需计算单应矩阵并将其应用于浮动图像。为了确保最佳变换,使用RANSAC算法来检测离群值并将其移除以确定最终的单应性。它直接内置在OpenCV findHomography方法中。作为RANSAC的替代方法,还有其他的估计方法,例如LMEDS(最小中值方法)。
基于深度学习的图像对齐方法
待完善...