Fork me on GitHub

连铸拼接的一些要点

这个项目已经过去有很长时间了,近期因网友提问,我重新整理了一下发布出来,供大家参考.

一、拼接的基本过程

     

    一般意义上来说,全景拼接可以划分为图1所示的6个部分。

    1、输入图像,就是获得全部的待拼接的图像;

    2、图像几何校正,就是校正因为镜头固有缺陷、拍摄方法造成的图像失真;

    3、图像预处理,就是对输入的图像进行去噪、白平衡等降维操作;

    4、图像配准,就是识别计算图像本身的纹理特征,并将图像按照真实的位置排列起来;

    5、图像融合,在配准之后的边界位置,会出现比较明显的缝隙,需要专门的算法进行融合;

    6、获得全景图像;

    对于连铸项目具体来说,还应该包括第7个部分,就是对应“点”的寻找。

二、连铸项目的拼接实现

       结合连铸项目的具体实现,(主要以上表面需要校直的这种情况,其他情况都相对要简单)来具体分析这7个步骤。

    1、输入图像。(略)

    2、图像几何校正。采用手工标定的透视变换对输入图像进行电子校正。

   

   

3、图像预处理。主要考虑到原始图像上面有高曝区域,采用色彩平衡算法进行处理,并突出表面问题里区域。

4、图像配准。首先通过“自适应canny算法”,最大程度强化各图片表面纹理区域,而后采用“符合模板匹配算法”,进行模板识别并配准,这步完成后得到图像如下。算法的简单介绍参看“难点重点”章节

5、图像融合。采用《基于Halcon的图像拼接算法研究_谭杰.pdf》中提出的线性融合算法进行图像融合。

    6、获得全景图像;(略)

三、难点重点

       由于拍摄条件的限制,连铸项目在实现过程中遇到了一些阻力。为了更好地解决问题,我提出并实现了一些新的思路和算法。

    1、提高模板识别的成功率;

越是纹理清晰的图像越是容易匹配成功。在实际项目中,有利于匹配的点是有很多个的,那么如果有预处理模型就能够在这个时候取得较好的结果。

    比较这两幅图像(里面外面):

可以看到,外面的图像相对来说,纹理不清楚,比较平淡;但是里面的来说纹理比较复杂。那么如果直接来sobel是否可以有比较好的结果了?

通过简单的canny,就可以看出纹理清楚的图像具有更丰富的细节。

    opencv里面提供的模板匹配算法一共有5类,一般来说是使用所用的方法,找到最好的效果。

   我认为,在代码中间遍历所有的算法,不是一个好的思路,因为模板匹配是最消耗时间的。在项目的初期,就根据样本实验,选择合适的算法,并且建立测试的模型。这个时候就应该把算法定下来。这里主要研究的是各个算法的值。

   首先从自己需找自己的模板开始。

在另一个图片上寻找

差距非常明显,但是更要命的是max都是1min都是0

都而对于halcon,它提供的结果是467.453636.408,应该说那个都不一样。而一般认为halcon是比较准确的。为了验证,我这里换一个图像:

这个结果应该说是更令人迷惑,6个中有4个给出了接近的x,而三个给出了接近的y,max值依然是没有价值的。halcon的差距也是非常大。

必须考虑到,halcon最后给的是图片中心,而oopencv最后给的是左上角。那么结论就是opencv的模板匹配距离实际的差距还很大,非常要命。

我准备模仿halcon的方法,首先找出纹理,然后进行匹配。采用同样的图片进行。

结果为

 有大量的值为统一的,那么这是真实的值吗?

结果非常好!再测试一个例子,并且加上自适应的canny代码

 

       2、引入先验模型

    在现有的模型下面,模板匹配的本质决定了它只能提供这个程度的识别效率。如何在可能的情况下极高识别的成功率?如何去验证这个成功的拼接?这是核心问题。

图像识别还是做项目,每一个项目有不同的图片源和要求。连铸这个项目,考虑到他们下一步要做得,所以对于特征的要求肯定很高。如果采用单路匹配的方法,对结果进行统计分析。现在看来这个效果不是太好,主要是因为特征明显的区域不一定都位于图像中心。

现在采取三条匹配,尽可能包含可能的特征区域;

降低带识别区域大小,提高识别准确效率的方法。

简单地说就是优化识别方法,提高识别效率。

<学习opencv>里面就提到对于5种算法要灵活运用。我采用重复使用。不仅是算法的重复,而且是对于效果不佳的区域的重复。这个时间可以通过对识别区域的预测来抵消。

比较好的识别

质量一般的识别

质量很差的识别

 

四、备注

    系统平台:winxp(或更高版本)

       引用类库:opencv2.8(或更高版本)

       编译平台:vs2010(或更高版本)

    性能指标:<=1.5s/

 





附件列表

     

    posted @ 2020-11-26 11:06  jsxyhelu  阅读(147)  评论(0编辑  收藏