本文同步发表在我的微信公众号和知乎专栏“计算摄影学”,欢迎扫码关注,
如果你试过去拍摄一些运动场景,例如拍摄疾驰的汽车,或是田径场上的短跑运动员,你一定曾经遇到过“拍糊”的时候。这种现象就是我在本文中要讨论的由运动导致的图像模糊,这是一种与我之前介绍的几种导致图像模糊的方式完全不同的问题,所以今天让我们来看看有什么好办法来应对。
我今天要给你介绍的是两种消除运动模糊的技术,一个叫做Coded Exposure Photography(编码曝光),确切的说是一种利用了Flutter Shutter(震颤快门)的编码曝光技术。 另外一种则是Motion Invariant Photography(运动不变摄影)。可能现在还听起来比较拗口,不过先让我们看看它们的效果:
下图是编码曝光拍摄的原始图像,以及经过处理后的清晰图像,你可以看到汽车变得非常清晰了,很神奇吧?(至于为何有原始图像,为何又要经过处理,我们待会再讲)
再来看看运动不变摄影,下面左图是一个固定相机拍摄的运动物体场景,场景中的物体有远处的固定背景屏风,也有近处摆在一个托盘上的水平运动的物体,由于物体有远近,所以其相对相机的运动也是不同的,所以普通相机拍出来就呈现出了不同的模糊程度。而右图则是所谓运动不变摄影的结果,你可以看到总体来说画面变清晰了。真的很惊人!
看到这里,我想你已经迫不及待想知道其中的技术细节了。那就让我们开始吧 我们先从运动模糊的基本模型和解决它的困难之处讲起。
一、运动模糊的基本模型
先让我们看一个典型的场景,这里面背景和部分物体是固定的,但有一个装着啤酒罐的托盘快速的带动啤酒罐从左向右移动,使得拍摄的画面中啤酒罐出现了运动模糊。那么我们如何来建模这种模糊呢?
事实上,运动模糊和我们之前讲过的几种模糊都可以用卷积来描述。具体到上面这种均匀运动的模糊,可以如下表示:
所以,似乎像以前一样,我们只要知道了模糊核,就能够去卷积把模糊图像变清晰了,是吗?
然而,运动模糊的消除有几个难点:
- 很难获取到准确的卷积核,因为卷积核跟物体的远近、物体运动的速度方向都有关系。
- 场景中的各个物体有不同的运动方向和速度,还可能有固定的背景,所以需要把需要恢复的物体分割开来,而这本来就是一个困难的问题。
- 运动卷积核丢失了高频信息,去卷积技术就会面临严重的信噪比低的问题。
那么,如何解决上述问题呢?我们先从解决难点3讲起,这就是我们会介绍的Coded Exposure技术
二、Coded Exposure
我们先来看看传统相机在拍摄一个水平一维运动物体时的情况:
此时模糊相当于对图像做一个一维的Box Filter,而这个卷积核的傅里叶变换(即OTF)如下图所示,它实际上是一个Sinc函数,可以看到这里有一些值接近零的点。