您的位置:首页 > 其它

基于建立模板的消除水下扭曲成像

2016-05-10 16:12 267 查看
本文为针对我所研究的课题水下成像所学习文献的总结,欢迎交流、批评指正。如需源程序、文献等请私信。

原文:Seeing through Water:Image Restoration using Model-based Tracking(The Robotics Institute, Carnegie Mellon University).2009 IEEE 12th International Conference on Computer Vision(ICCV).

提出的问题

对水中物体成像,如图1所示。由于水面不是平面具有波动,光线在传输过程中经历折射和反射,最终到达相机会出现图像扭曲。



图1 水下成像示意图

解决思路

对每一帧图像的扭曲情况进行测量,实时还原退化图像。具体来说就是根据波动方模拟水面波动所造成的扭曲,建立一个waterbase,包含不同扭曲情况(可以认为是基向量),再将图像序列扭曲用waterbase和投影系数表示,在复原图像的同时,用较小的存储空间(waterbase+系数)可以重建每一帧的扭曲图像。

两个要点

1.waterbase是否可以有效的描述所有扭曲情况,包括同一帧的不同扭曲,不同帧的扭曲。2.即使第一点成立,那么如何获得每一帧的扭曲图像,在不知道静止图像的前提下。

模型建立



图2 水下成像模型

如图2所示,Ig代表静止波面时所得像,I代表退化图像,水面扭曲为w,因此I就是Ig和w的函数,可由下式表示:

I(x,t) = Ig(x+w(x,t))

并有水面波动方程:



当水面波动w与水面高度h相比较小时,有:



上式可通过向前欧拉公式求解:

h(x,t + Δt) = 2h(x, t) − h(x, t − Δt) +c2∇2h(x, t)(Δt)2 (2代表平方)

因此,如果已知h(x,0)和h(x,1)就可以模拟出任意时刻的扭曲。如下图所示,上下第一幅图是原图,随后是模拟的扭曲图形。



图3 扭曲模拟

建立waterbase

文中将原图像做分块处理,优化起来更容易。Waterbase是57*40*2*10的矩阵,前两维代表57*40的图像块,2分别代表在x,y两个方向坐标的变化,10代表块数量。表达式可以写为:

B(x) =[b1(x), b2(x), . . . ,b10(x)] %waterbase

任意扭曲w(x,t)≈
B(x)p %p为投影稀疏

数量块为10是因为假设了水面波动是较为平缓的,因此对一系列扭曲W做PCA后,前10个特征向量认为是比较大的扭曲情况,除此之外的就忽略了。
如图4所示,根据输入的水波波速以及一些参数建立的waterbase。



图4 waterbase示意图

下面就是两个问题,第一,waterbase由于只取了前10个特征值,描述的是否准确?第二,如果准确的话,怎么用其进行描述,即序列图像的畸变如何获取?

第一个问题,作者从主观视觉考虑,输入一组图像,通过波面方程模拟其扭曲,再通过waterbase投影,重构扭曲,对比模拟的扭曲和重构扭曲图像视觉效果,如下图所示:



图5 waterbase重构扭曲图

第二个问题,向waterbase投影的前提是知道扭曲w。

如果有静止图像,将每一帧图像与静止图像相减,就可以到不同帧的扭曲图像,但是现在没有静止图像。

这里简单介绍下思路:



Xs,Xt分别代表在s和t时刻的扭曲图像坐标,Ys,Yt对应与平静图像下的坐标,因此有:

Ig(Ys) = I(Xs) ,Ig(Yt) = I(Xs)

可以理解为静止图像和扭曲图像的亮度值分布是近似的,只是由于扭曲,一些点的坐标发生两维度的位移。

这就意味着针对一组ps,pt,可以得到一组ys,yt,也即平静图像Ig(Ys)和Ig(Yt)

而我们认为静止图像是不变的,因此可通过最小化两幅计算出的静止图像的差来优化出ps,pt,从而建立原图扭曲。 即下式:





图6 复原图像实验结果

具体实现过程的一些技巧以及实验结果参见文献。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: