图像配准简单概述
一、前言
图像配准作为图像算法中的基础模块,有着长久的发展历史和源源不断的最新成果,它的常见作用在于,将有输入图像像素,映射到参考图像上,使得图像公共区域内容信息可以在空间上一一对应起来,提升如后多帧融合,图像拼接等算法效果。
二、配准图像分类
根据应用场景不同,配准算法需要处理的输入图像上会存在很大区别,在算法设计实现和配准难度上也有很大差异。
常见像素级配准图像通常有:
1、相同摄像头,相同角度拍摄的多帧图像:图像内容基本一致,通常主要是由于手抖之类因素导致的图像偏差。
2、相同摄像头,不同角度拍摄的多帧图像:图像内容差异较大,公共区域面积相对较小,并且可能存在图像缩放差异。
3、不同摄像头,相同角度拍摄的多帧图像:图像内容基本一致,但是由于来自不同硬件设备,除了手抖等问题外,还存在硬件本身差异导致的分辨率,画幅,景深,缩放等问题。
4、不同摄像头,不同角度拍摄的多帧图像:除了硬件差异带来的分辨率,画幅,景深,缩放等问题之外,还存在图像内容差异较大,公共区域面积较小等难点。
但是实际对于配准来说,真要细分的话,常见的差异难点其实还有很多类别,比如场景中存在运动物体,比如场景中存在大量无纹理或者重复纹理区域等。
三、配准算法分类
常见的配准算法有很多,并且还在源源不断的有着更多,不同小伙伴对这些算法的分类方式也同样有很多,比如根据实现原理分类,比如根据应用场景分类。我个人喜欢根据配准数据来对图像进行分类。
根据配准数据来说,大方向上大致可以分为2类:全局和局域配准。
全局来说大部分是求解单应性矩阵,局域基本都是各类流场。
进一步细分的话,全局还可以分为:平移、平移+旋转、平移+旋转+缩放等;局域配准也可以分为:稀疏流和稠密流等。
通常项目上来说,这些全局和局域的配准算法并不是互斥的,很多项目上都会先全局对图像做基本配准,然后再继续做局域配准,来进一步提高配准效果。
四、总结
实际项目上,根据输入图像情况,可以看情况选择满足项目需求的配准算法,尽量在效果和性能上权衡,比如对第一类配准图像来说,使用全局配准,甚至极端情况下,只考虑平移,可能都够用,但是对于第三或者第四类配准图像来来说,基本得需要用到局域流场了。
这里只是做了个大概分类情况,配准相关更详细的综述可以参考:
白小鱼:图像配准综述
【Image Registration】图像配准综述 等文章。