CV课程之Calculating Optical Flow开篇

本系列的博客主要基于这学期参加的computer vision的选修课,本课程的vision特指中层视觉,不含图像处理与机器学习。本文的目的,是想给一些准备入门的同学,介绍一下vision中关于motion部分的计算机视觉发展史,看看前辈们是如何提出一个大问题,又是通过加入哪些assumptions去解决这些问题,而后辈们又是如何突破这些asuumption的限制获得泛化能力更强的解的。

Calculating Optical Flow的重要工作完成于上世纪80年代初,分别是从局部入手的Locas-Kanade’s Method和从全局入手的Horn-Schunck’s Method,它的作用是可以通过计算物体2D移动,进而求解3D移动,对机器人的实时跟踪等算法具有重要的意义。

首先介绍一下Motion field (运动场)and optical flow(光流)

概念一:Motion field (2D):  a velocity vector associated with each image point

大家可以这样理解,一个在3D空间内运动的物体,通过投影成像在底片或者视网膜等2D平面上的像素点,随着3D的运动而运动,因为有方向有大小,也就是向量了。

P.S. 这里需要讲一下3D motion与2D motion之间相互关系,这在以后的博客关于从2D motion到3D motion转化的时候会用到。首先看一下下面这个图,左图是我们常用的投影perspective projection(透视投影)的习惯画法,有些人把这个模型想不明白,其实真正的模型是右边那个(给机械的丢脸了)。

CV课程之Calculating Optical Flow开篇_第1张图片       CV课程之Calculating Optical Flow开篇_第2张图片

针对左边这个模型,假设空间存在一点,令它在2D平面的投影点,为简单起见,我们令焦距f=1,为了便于运算,引入,于是我们有如下关系,(通过相似比例运算很容易得到)。这样位置得到了,我们对位置求导,就得到了运动的相应关系了,下面是计算过程。

CV课程之Calculating Optical Flow开篇_第3张图片

在进行一次移项换算,就得到了一下表达式:


这个关系我们将在后面用到。

概念二:Optical flow: the apparent motion of the brightness’ pattern

光流呢,指的是一个有特定特征的图案,在相邻时间内位置发生了变化,可以看做是光强往一个方向的流动。

其实大家可以看到,这两个定义虽然不同,但是很相似,一个运动的物体在成像在image上面(motion field)便有了特定的图案, 这个图案跟着物体的变化而发生位移,显然这又是 optical flow。

这感情好啊,这样我们就可以根据optical  flow来计算motion field了,然而事情并没有你想象的那么简单,有人提出了反例

CV课程之Calculating Optical Flow开篇_第4张图片

因此:,那这可咋办呢,视觉专家们也没办法了,于是有了提出了第一个至今都无法突破的

assumption 1!!!:Motion field = Optical flow

既然大家都认为它俩挺般配,那就让它俩在一起吧,矛盾么,周总理不都说了大家要求同存异,大不了以后被哪个砖家突破了,再离呗。

下面呢,我们将具体求解光流。专家们又通过两个assumption,得出了著名的光流约束方程(optical flow constraint equation),我说一下此方程得到的思路

先说一下各符号的表示:

CV课程之Calculating Optical Flow开篇_第5张图片

这里将给出第二个assumption,即光强不变性限制

Assumption 2 Brightness constant constraint (BCC):


这个假设是指在dt时间内,m点在前后两帧的光强保持一致,此限制是让我们在求光流时有点可跟踪。

根据上式,想要求解,我们首先想到的就是把左边给Taylor展开,但是Taylor展开是有条件的,就是可微,于是为了求解上式,我们又引入了下一个假设,即光强是缓慢变化的。

P.S.这个思路是解决问题的常用套路,我要解决这个问题,不会,怎么办?能不能将原问题的范围缩小了,虽然我们得到的解的鲁棒性将降低,但是却也能解决一类问题啊,而且如果你加 的限制适用于绝大多数场景,那就是能解决一片问题了。

Assumption 3 the brightness changess moothly 

于是我们对上面的方程进行Taylor展,得到了下面的式子

CV课程之Calculating Optical Flow开篇_第6张图片

通过移项,写成梯度与内积的形式,就得到了著名的光流约束方程。


WOW,幸福来得太突然,optical flow的问题就这样完美解决了? 然而并没有,2个未知数,一个方程,不能直接解。咋解?

对于不定方程,目前,全宇宙只有两种主流解法,一个是加入constraints,增加方程个数;另一个是根据先验知识(prior knowledge)对原方程加入正则项,求解优化问题。基于这两种思想,便有了Locas-Kanade’s Method和Horn-Schunck’s Method,这两种方法具体怎们实现的呢?我们下一篇博客再说吧。


你可能感兴趣的:(computer,vision)