M×N扫描序列图像拼接、大视场图像拼接、全景图像拼接、2D网格拼图方法、累计误差消除(显微图像/航拍图像等)


前言

笔者前一段时间在做基于点云的二维定位超分辨拼图,其中临接点云两两对准算法采用JRMPC算法(经典的ICP算法对初值较为敏感),本文主要介绍获得序列图像两两变换关系后,大视场图像拼接存在的问题与拼接方法。(嗯~点云和图像在两两对准算法上不同,但大视场拼图的逻辑都一样,所以虽然做的是点云拼接但是很多地方习惯性采用了图像字眼)

笔者总共归纳出了5种拼接方法,包括:
搜索算法、最小生成树算法、全局捆绑调整算法、全局调整回路检测结合算法


一、问题描述

序列图像的获取包括下图所示的一些扫描方式,不论我们采用何种扫描方法,最终将获得许多小视场图像,这些小视场图像的大体位置可以根据扫描方式确定,而图像拼接问题就是如何根据已知大体位置关系和相邻两幅图像的变换关系(由两两图像对准算法求取),重建出完整的大视场图像。
在这里插入图片描述在这里插入图片描述
上图来自https://imagej.net/downloads的FiJi插件

二、拼接过程存在的问题

图中每个小视场的图像序列编号由扫描方式确定,代表了每个小视场图像的位置关系。由于每次扫描步进间隔不稳定,获取的小视场图像会存在一定的错位,我们需要通过配准/对准算法对相邻的图像进行两两对准以获得他们之间的变换关系(2D序列图像拼接,这里仅考虑水平x、y方向的变换关系)。

两两图像间的对准关系有了,那是不是按照下图(a)的方式,把第2张图和第一张图拼在一起,再陆续用和后面的3,4张图不断拼上去呢?如果这样做那么问题来了,我们不能保证1-2、2-3、3-4这些图像两两配准后获得的变换关系绝对正确,比如(b)图,当按照1,2,3,6,5,4的顺序依次拼接,由于两两图像配准存在误差,这一连串拼接下来,最后的1图和4图是否能对齐呢?另一方面当某两幅图像对准结果存在较大的偏差时,后续依次拼接上的图像将会产生严重的错误。

总的来说主要有以下两个问题需要考虑
1. 累计误差的影响
2. 错误配准的影响

事实上在扫描获取序列图像的过程中,扫描步进的大致范围是知道的,依据步进范围可以大体剔除严重的错误对准,但是对于对准错误较小的情况(较小的对准错误也远大于对准误差,不加以处理会产生严重的拼接错位)仍然需要认真考虑。

[1]

三、4种拼接算法介绍

每张图像根据位置不同可能有2,3,4个相邻的图像,因为相邻图像两两对准过程中可能存在错误对准情况,剔除掉明显错误的连接后,每个图像节点可能的连接边有0,1,2,3,4个。(对于连接边为0的图像节点无法根据对准关系拼接,这里一般根据其图像序列,也就是扫描过程中的大致位置来给一个全局位置坐标)
在这里插入图片描述

1.搜索算法

搜索算法是最基本的拼接算法了。搜索算法以某一个图像节点为起始点根据邻接关系搜索其他图像节点并进行配准,配准结果如果没有因为错误过大而被剔除则认为配准成功,并搜索其他图像节点。这里就不详细介绍搜索算法原理了(算法过程可以参考文末附码)。

  搜索算法不用事先把所有相邻图像都进行配准,而是一边搜索一边配准,最后总共进行的配准次数会远小于对所有相邻图像的配准。但是搜索算法并没有消除累计误差和拼接错误,其最后的大视场图像拼接效果非常依赖于对准算法的对准精度与鲁棒性。一般如果采用搜索算法进行大视场图像重建,建议采用广度优先搜索而不是深度搜索,因为深度优先搜索容易产生较大的累计误差。

2.最小生成树算法*

总体思路:将所有相邻的小视场图进行两两配准,用合适的评价算法对每次配准结果打分(比如拼接效果越好就给定更小的权值),最后所有的连接边(成功配准上的两幅图)都有一个权值,权值越小配准效果越好。获得所有连接边和其对应权值后,只要找到一条连接路线,该路线包括了所有图像节点且路线上的权值和最小,那么可以认为按这条路线进行拼接,最后结果最优。这个查找最小权值路线的算法就是最小生成树算法。
关于最小生成树算法的介绍与实现,这篇文章写的很详细,有需要的可以参考。
在这里插入图片描述
可惜的是,不论对图像配准还是点云配准,都没有十分有效的评价方法来评价配准的效果,评价结果只能保证大致正确,有时并不值得信赖。这里简单补充一下常用的评价方法,对于图像配准评价可以用互相关值大小作为评价指标,对于点云配准可以用最近邻点欧式距离和大小作为评价指标(仔细想想可以发现其实最近邻欧式距离和可以算作点云的互相关值大小)。

  最小生成树算法需要专门设置配准评价方法进行打分,而且需要保证评价方法大致有效(大致有效主要指能够一定程度区分不同配准的结果好坏)。最小生成树算法在评价方法还OK的情况可以避开错误配准的边,选择那些配准效果更好的边进行大视场图像重建。但是它也没有解决误差累计这个问题。

3.全局捆绑调整算法

假设以第一张图像的坐标系为全局坐标系,计算其他每张节点图像(小视场图像)到全局坐标系下的坐标变换,如下图所示,即求解每个节点图像在全局坐标系下的坐标。(这个问题与SLAM中求解相机姿态的图后端优化是一样的,实际上它是相机位姿优化的简化版了,不需要进行投影,单个节点的变量也仅x,y两个)

这个优化求解方法采用的就是捆绑调整(BA),下面我简单介绍一下全局BA是如何求解每个图像节点位置坐标的。
首先明确一下已知量和需要求解的变量,已知量是经过两两配准后得到的两幅图像节点的变换关系,也即下图中没有打红叉的连接边,需要求解的变量即下图中15个图像节点的全局坐标。那么怎样求解这个问题呢?
我们先来看图像节点0和节点1,假设节点0到节点1的变换为z1(通俗点说也就是将图0与图1进行配准,图1相对图0在水平和竖直方向上的位移为(a1,a2),用z1表示),图像节点0的全局坐标为h0,节点1的全局坐标为h1那么就有:

                    e 1 = ( h 1 − h 0 ) − z 1 e_1 = (h_1 - h_0) - z_1 e1=h1h0z1

e1表示误差大小。
那么我们对所有连接边计算误差,求和:

                 m i n F ( h   0   , h   1   , . . . h   k   , . . . h   15   ) = ∑ i = 1 n ∣ ∣ e k ∣ ∣ minF(h~0~, h~1~, ...h~k~, ...h~15~) = \sum_{i=1}^{n} ||e_k|| minF(h 0 ,h 1 ,...h k ,...h 15 )=i=1

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值