图像配准中的互信息

来源:互联网 发布:专业数据分析软件 编辑:程序博客网 时间:2024/04/29 11:05

图像配准是为了解决两幅不同来源的图像匹配问题。例如,楼外的一颗大树开花了,小明路过觉得好看,就拿相机拍了一张照片。结果回屋拷出来一看不满意,于是小明从窗户又拍了一张。两张照片拍摄角度和距离不一样(也即存在投影变换),同时照片细节也有差异(第二次拍摄的时候起风了,树叶子都有轻微的位移)。那么问题来了:怎么样让计算机把两幅图片中的树,像素对像素的给匹配起来?

互信息配准算法是解决此问题较好的方法之一。它是利用信息论中的熵思想。我们知道,熵是对随机变量不确定度的衡量。一个离散随机变量X的熵可以表示为:

H(X)=xp(x)log2p(x)

那么对于联合分布f(X,Y),当随机变量Y的取值确定以后,由于相关性的存在,X的不确定性就会降低,熵也随之减小。因此,可以定义条件熵

H(X|Y)=x,yp(x,y)log2p(x|y)

可以证明,X的条件熵是一定小于其自身的熵,也即
H(X|Y)H(X)

啥时候等号成立呢?当X和Y完全独立的时候,有兴趣的同学可以推导一下,很简单。从物理意义上也比较好理解:当X和Y完全独立,我们知道Y的值,和随机变量X没有一点关系,当然X的不确定度就没有减小。所以此时条件熵和熵相等。

有了条件熵之后,就可以定义随机变量XY的互信息,它的公式为:

I(X,Y)=x,yp(x,y)log2p(x,y)p(x)p(y)

这个公式不太直观,不过如果这么解释就易懂多了:
I(X,Y)=H(X)H(X|Y)

换言之,互信息就是,当引入一个和X具有相关性的随机变量Y之后,条件熵所消除的不确定度。

下面回到图像配准问题,假设现在待配准的两幅图像分别是IAIB,其像素数分别用#A#B来表示。我们先来讨论最直观的,根据像素值来配准。也就是说,把图像IAIB的灰度值作为分别作为随机变量AB。其概率分布可以根据直方图求得,也即

p(a)=#a#A,p(b)=#b#B,p(a,b)=#a+#b#A+#B

其中#a表示IA值为a的像素数目,下同。有了上式之后,我们很容易就可以利用互信息公式,求出图片IAIB的互信息。当两张图片被成功配准时,其互信息达到最大。

有了互信息作为小明拍摄的两幅图片之间相似性的度量,我们就可以开始配准啦。首先要建立变换模型,由于两张照片之间是存在角度和距离的变化,可以用投影变换来仿真。令[xa ya][xb yb]表示树上同一个点在IAIB两幅图像中对应的二维坐标,则它们之间的投影变换可以这么建模

xayawa=sm11m21m31m12m22m32m13m23m33xbybwb+t1t2wt

其中s表示尺度参数,M=[m11m12m13; m21m22m23; m31m32m33]表示旋转矩阵,t=t1t2wt表示平移参数。那么配准过程就是对这12个参数的估计了,就是搜索这12个参数的值,使得互信息最大化。从而将配准为题转换为一个最优化问题。

如何让搜索过程能够最好、最快地收敛到全局最优解,是图像配准中的另一个重要问题,这个目前还在学习中,留待下次记录。遗传算法、模拟退火等都可以用来求解。

互信息配准的优点是只使用了图像本身的信息,也即底层信息。它不像SIFT匹配等方法,需要人工设定的特征点提取。同时,由于互信息具有较好的鲁棒性,这种方法对局部差异不太敏感,例如灰度不均、几何失真、数据缺失等等。缺点就是运算量大,配准时间依赖搜索算法。