【转载】光流法基本原理+深度学习中的应用【FlowNet】【RAFT】

1. 理论背景

1.1 光流

光流(optical flow)是空间运动物体在成像平面上的像素运动的瞬时速度
通常将一个描述点的瞬时速度的二维矢量

      u 
     
    
      ⃗ 
     
    
   
     = 
    
   
     ( 
    
   
     u 
    
   
     , 
    
   
     v 
    
   
     ) 
    
   
  
    \vec u = (u,v) 
   
  
</span><span class="katex-html"><span class="base"><span class="strut" style="height: 0.714em; vertical-align: 0em;"></span><span class="mord accent"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height: 0.714em;"><span class="" style="top: -3em;"><span class="pstrut" style="height: 3em;"></span><span class="mord mathdefault">u</span></span><span class="" style="top: -3em;"><span class="pstrut" style="height: 3em;"></span><span class="accent-body" style="left: -0.20772em;"><span class="overlay" style="height: 0.714em; width: 0.471em;"> 
        <svg width="0.471em" height="0.714em" style="width:0.471em" viewBox="0 0 471 714" preserveAspectRatio="xMinYMin"> 
         <path d="M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5

3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11
10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63
-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1
-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59
H213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359
c-16-25.333-24-45-24-59z">
=(u,v)称为光流矢量。

1.2 光流场

空间中的运动场转移到图像上就表示为光流场(optical flow field)。

  1. 光流场是很多光流的集合;
  2. 构建光流场是试图重建运动场,进行运动分析,理想情况下,光流场对应于运动场。

2. 基本原理

2.1 假设条件

1. 像素亮度恒定不变
同一像素点在不同帧中的亮度是不变的,这是光流法使用的基本假定(所有光流法及其变种都必须满足),从而可以得到2.2中的约束方程。

2. 时间连续/运动很微小
时间的变化不会引起目标位置的剧烈变化,即相邻帧之间的位移很小。

2.2 约束方程

      I 
     
    
      ( 
     
    
      x 
     
    
      , 
     
    
      y 
     
    
      , 
     
    
      t 
     
    
      ) 
     
    
      = 
     
    
      I 
     
    
      ( 
     
    
      x 
     
    
      + 
     
    
      d 
     
    
      x 
     
    
      , 
     
    
      y 
     
    
      + 
     
    
      d 
     
    
      y 
     
    
      , 
     
    
      t 
     
    
      + 
     
    
      d 
     
    
      t 
     
    
      ) 
     
     
    
      ( 
     
    
      1 
     
    
      ) 
     
    
   
     I(x,y,t)=I(x+\mathrm d x, y+\mathrm d y, t+\mathrm d t) \qquad(1) 
    
   
 </span><span class="katex-html"><span class="base"><span class="strut" style="height: 1em; vertical-align: -0.25em;"></span><span class="mord mathdefault" style="margin-right: 0.07847em;">I</span><span class="mopen">(</span><span class="mord mathdefault">x</span><span class="mpunct">,</span><span class="mspace" style="margin-right: 0.166667em;"></span><span class="mord mathdefault" style="margin-right: 0.03588em;">y</span><span class="mpunct">,</span><span class="mspace" style="margin-right: 0.166667em;"></span><span class="mord mathdefault">t</span><span class="mclose">)</span><span class="mspace" style="margin-right: 0.277778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right: 0.277778em;"></span></span><span class="base"><span class="strut" style="height: 1em; vertical-align: -0.25em;"></span><span class="mord mathdefault" style="margin-right: 0.07847em;">I</span><span class="mopen">(</span><span class="mord mathdefault">x</span><span class="mspace" style="margin-right: 0.222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right: 0.222222em;"></span></span><span class="base"><span class="strut" style="height: 0.88888em; vertical-align: -0.19444em;"></span><span class="mord mathrm">d</span><span class="mord mathdefault">x</span><span class="mpunct">,</span><span class="mspace" style="margin-right: 0.166667em;"></span><span class="mord mathdefault" style="margin-right: 0.03588em;">y</span><span class="mspace" style="margin-right: 0.222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right: 0.222222em;"></span></span><span class="base"><span class="strut" style="height: 0.88888em; vertical-align: -0.19444em;"></span><span class="mord mathrm">d</span><span class="mord mathdefault" style="margin-right: 0.03588em;">y</span><span class="mpunct">,</span><span class="mspace" style="margin-right: 0.166667em;"></span><span class="mord mathdefault">t</span><span class="mspace" style="margin-right: 0.222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right: 0.222222em;"></span></span><span class="base"><span class="strut" style="height: 1em; vertical-align: -0.25em;"></span><span class="mord mathrm">d</span><span class="mord mathdefault">t</span><span class="mclose">)</span><span class="mspace" style="margin-right: 2em;"></span><span class="mopen">(</span><span class="mord">1</span><span class="mclose">)</span></span></span></span></span></span>对右式进行泰勒展开<span class="katex--display"><span class="katex-display"><span class="katex"><span class="katex-mathml"> 
  
   
    
    
      = 
     
    
      I 
     
    
      ( 
     
    
      x 
     
    
      , 
     
    
      y 
     
    
      , 
     
    
      t 
     
    
      ) 
     
    
      + 
     
     
      
      
        ∂ 
       
      
        I 
       
      
      
      
        ∂ 
       
      
        x 
       
      
     
    
      d 
     
    
      x 
     
    
      + 
     
     
      
      
        ∂ 
       
      
        I 
       
      
      
      
        ∂ 
       
      
        y 
       
      
     
    
      d 
     
    
      y 
     
    
      + 
     
     
      
      
        ∂ 
       
      
        I 
       
      
      
      
        ∂ 
       
      
        t 
       
      
     
    
      d 
     
    
      t 
     
    
      + 
     
    
      ϵ 
     
    
   
     =I(x,y,t)+\frac {\partial I}{\partial x}\mathrm d x+\frac {\partial I}{\partial y}\mathrm d y+\frac {\partial I}{\partial t}\mathrm d t+\epsilon 
    
   
 </span><span class="katex-html"><span class="base"><span class="strut" style="height: 0.36687em; vertical-align: 0em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right: 0.277778em;"></span></span><span class="base"><span class="strut" style="height: 1em; vertical-align: -0.25em;"></span><span class="mord mathdefault" style="margin-right: 0.07847em;">I</span><span class="mopen">(</span><span class="mord mathdefault">x</span><span class="mpunct">,</span><span class="mspace" style="margin-right: 0.166667em;"></span><span class="mord mathdefault" style="margin-right: 0.03588em;">y</span><span class="mpunct">,</span><span class="mspace" style="margin-right: 0.166667em;"></span><span class="mord mathdefault">t</span><span class="mclose">)</span><span class="mspace" style="margin-right: 0.222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right: 0.222222em;"></span></span><span class="base"><span class="strut" style="height: 2.05744em; vertical-align: -0.686em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 1.37144em;"><span class="" style="top: -2.314em;"><span class="pstrut" style="height: 3em;"></span><span class="mord"><span class="mord" style="margin-right: 0.05556em;">∂</span><span class="mord mathdefault">x</span></span></span><span class="" style="top: -3.23em;"><span class="pstrut" style="height: 3em;"></span><span class="frac-line" style="border-bottom-width: 0.04em;"></span></span><span class="" style="top: -3.677em;"><span class="pstrut" style="height: 3em;"></span><span class="mord"><span class="mord" style="margin-right: 0.05556em;">∂</span><span class="mord mathdefault" style="margin-right: 0.07847em;">I</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 0.686em;"><span class=""></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mord mathrm">d</span><span class="mord mathdefault">x</span><span class="mspace" style="margin-right: 0.222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right: 0.222222em;"></span></span><span class="base"><span class="strut" style="height: 2.25188em; vertical-align: -0.88044em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 1.37144em;"><span class="" style="top: -2.314em;"><span class="pstrut" style="height: 3em;"></span><span class="mord"><span class="mord" style="margin-right: 0.05556em;">∂</span><span class="mord mathdefault" style="margin-right: 0.03588em;">y</span></span></span><span class="" style="top: -3.23em;"><span class="pstrut" style="height: 3em;"></span><span class="frac-line" style="border-bottom-width: 0.04em;"></span></span><span class="" style="top: -3.677em;"><span class="pstrut" style="height: 3em;"></span><span class="mord"><span class="mord" style="margin-right: 0.05556em;">∂</span><span class="mord mathdefault" style="margin-right: 0.07847em;">I</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 0.88044em;"><span class=""></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mord mathrm">d</span><span class="mord mathdefault" style="margin-right: 0.03588em;">y</span><span class="mspace" style="margin-right: 0.222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right: 0.222222em;"></span></span><span class="base"><span class="strut" style="height: 2.05744em; vertical-align: -0.686em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 1.37144em;"><span class="" style="top: -2.314em;"><span class="pstrut" style="height: 3em;"></span><span class="mord"><span class="mord" style="margin-right: 0.05556em;">∂</span><span class="mord mathdefault">t</span></span></span><span class="" style="top: -3.23em;"><span class="pstrut" style="height: 3em;"></span><span class="frac-line" style="border-bottom-width: 0.04em;"></span></span><span class="" style="top: -3.677em;"><span class="pstrut" style="height: 3em;"></span><span class="mord"><span class="mord" style="margin-right: 0.05556em;">∂</span><span class="mord mathdefault" style="margin-right: 0.07847em;">I</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 0.686em;"><span class=""></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mord mathrm">d</span><span class="mord mathdefault">t</span><span class="mspace" style="margin-right: 0.222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right: 0.222222em;"></span></span><span class="base"><span class="strut" style="height: 0.43056em; vertical-align: 0em;"></span><span class="mord mathdefault">ϵ</span></span></span></span></span></span>其中,<span class="katex--inline"><span class="katex"><span class="katex-mathml"> 
 
  
   
   
     ϵ 
    
   
  
    \epsilon 
   
  
</span><span class="katex-html"><span class="base"><span class="strut" style="height: 0.43056em; vertical-align: 0em;"></span><span class="mord mathdefault">ϵ</span></span></span></span></span>是二阶无穷小,可以忽略不计。将<span class="katex--inline"><span class="katex"><span class="katex-mathml"> 
 
  
   
   
     ( 
    
   
     1 
    
   
     ) 
    
   
  
    (1) 
   
  
</span><span class="katex-html"><span class="base"><span class="strut" style="height: 1em; vertical-align: -0.25em;"></span><span class="mopen">(</span><span class="mord">1</span><span class="mclose">)</span></span></span></span></span>式左右两侧同除<span class="katex--inline"><span class="katex"><span class="katex-mathml"> 
 
  
   
   
     d 
    
   
     t 
    
   
  
    \mathrm dt 
   
  
</span><span class="katex-html"><span class="base"><span class="strut" style="height: 0.69444em; vertical-align: 0em;"></span><span class="mord mathrm">d</span><span class="mord mathdefault">t</span></span></span></span></span>可以得到下式:<span class="katex--display"><span class="katex-display"><span class="katex"><span class="katex-mathml"> 
  
   
    
     
      
      
        ∂ 
       
      
        I 
       
      
      
      
        ∂ 
       
      
        x 
       
      
     
     
      
      
        d 
       
      
        x 
       
      
      
      
        d 
       
      
        t 
       
      
     
    
      + 
     
     
      
      
        ∂ 
       
      
        I 
       
      
      
      
        ∂ 
       
      
        y 
       
      
     
     
      
      
        d 
       
      
        y 
       
      
      
      
        d 
       
      
        t 
       
      
     
    
      + 
     
     
      
      
        ∂ 
       
      
        I 
       
      
      
      
        ∂ 
       
      
        t 
       
      
     
     
      
      
        d 
       
      
        t 
       
      
      
      
        d 
       
      
        t 
       
      
     
    
      = 
     
    
      0 
     
     
    
      ( 
     
    
      2 
     
    
      ) 
     
    
   
     \frac {\partial I}{\partial x} \frac {\mathrm dx}{\mathrm dt}+\frac {\partial I}{\partial y} \frac {\mathrm dy}{\mathrm dt}+\frac {\partial I}{\partial t} \frac {\mathrm dt}{\mathrm dt}=0 \qquad(2) 
    
   
 </span><span class="katex-html"><span class="base"><span class="strut" style="height: 2.05744em; vertical-align: -0.686em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 1.37144em;"><span class="" style="top: -2.314em;"><span class="pstrut" style="height: 3em;"></span><span class="mord"><span class="mord" style="margin-right: 0.05556em;">∂</span><span class="mord mathdefault">x</span></span></span><span class="" style="top: -3.23em;"><span class="pstrut" style="height: 3em;"></span><span class="frac-line" style="border-bottom-width: 0.04em;"></span></span><span class="" style="top: -3.677em;"><span class="pstrut" style="height: 3em;"></span><span class="mord"><span class="mord" style="margin-right: 0.05556em;">∂</span><span class="mord mathdefault" style="margin-right: 0.07847em;">I</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 0.686em;"><span class=""></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 1.37144em;"><span class="" style="top: -2.314em;"><span class="pstrut" style="height: 3em;"></span><span class="mord"><span class="mord mathrm">d</span><span class="mord mathdefault">t</span></span></span><span class="" style="top: -3.23em;"><span class="pstrut" style="height: 3em;"></span><span class="frac-line" style="border-bottom-width: 0.04em;"></span></span><span class="" style="top: -3.677em;"><span class="pstrut" style="height: 3em;"></span><span class="mord"><span class="mord mathrm">d</span><span class="mord mathdefault">x</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 0.686em;"><span class=""></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mspace" style="margin-right: 0.222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right: 0.222222em;"></span></span><span class="base"><span class="strut" style="height: 2.25188em; vertical-align: -0.88044em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 1.37144em;"><span class="" style="top: -2.314em;"><span class="pstrut" style="height: 3em;"></span><span class="mord"><span class="mord" style="margin-right: 0.05556em;">∂</span><span class="mord mathdefault" style="margin-right: 0.03588em;">y</span></span></span><span class="" style="top: -3.23em;"><span class="pstrut" style="height: 3em;"></span><span class="frac-line" style="border-bottom-width: 0.04em;"></span></span><span class="" style="top: -3.677em;"><span class="pstrut" style="height: 3em;"></span><span class="mord"><span class="mord" style="margin-right: 0.05556em;">∂</span><span class="mord mathdefault" style="margin-right: 0.07847em;">I</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 0.88044em;"><span class=""></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 1.37144em;"><span class="" style="top: -2.314em;"><span class="pstrut" style="height: 3em;"></span><span class="mord"><span class="mord mathrm">d</span><span class="mord mathdefault">t</span></span></span><span class="" style="top: -3.23em;"><span class="pstrut" style="height: 3em;"></span><span class="frac-line" style="border-bottom-width: 0.04em;"></span></span><span class="" style="top: -3.677em;"><span class="pstrut" style="height: 3em;"></span><span class="mord"><span class="mord mathrm">d</span><span class="mord mathdefault" style="margin-right: 0.03588em;">y</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 0.686em;"><span class=""></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mspace" style="margin-right: 0.222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right: 0.222222em;"></span></span><span class="base"><span class="strut" style="height: 2.05744em; vertical-align: -0.686em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 1.37144em;"><span class="" style="top: -2.314em;"><span class="pstrut" style="height: 3em;"></span><span class="mord"><span class="mord" style="margin-right: 0.05556em;">∂</span><span class="mord mathdefault">t</span></span></span><span class="" style="top: -3.23em;"><span class="pstrut" style="height: 3em;"></span><span class="frac-line" style="border-bottom-width: 0.04em;"></span></span><span class="" style="top: -3.677em;"><span class="pstrut" style="height: 3em;"></span><span class="mord"><span class="mord" style="margin-right: 0.05556em;">∂</span><span class="mord mathdefault" style="margin-right: 0.07847em;">I</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 0.686em;"><span class=""></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 1.37144em;"><span class="" style="top: -2.314em;"><span class="pstrut" style="height: 3em;"></span><span class="mord"><span class="mord mathrm">d</span><span class="mord mathdefault">t</span></span></span><span class="" style="top: -3.23em;"><span class="pstrut" style="height: 3em;"></span><span class="frac-line" style="border-bottom-width: 0.04em;"></span></span><span class="" style="top: -3.677em;"><span class="pstrut" style="height: 3em;"></span><span class="mord"><span class="mord mathrm">d</span><span class="mord mathdefault">t</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 0.686em;"><span class=""></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mspace" style="margin-right: 0.277778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right: 0.277778em;"></span></span><span class="base"><span class="strut" style="height: 1em; vertical-align: -0.25em;"></span><span class="mord">0</span><span class="mspace" style="margin-right: 2em;"></span><span class="mopen">(</span><span class="mord">2</span><span class="mclose">)</span></span></span></span></span></span>此处我们做以下人为规定:<span class="katex--display"><span class="katex-display"><span class="katex"><span class="katex-mathml"> 
  
   
    
    
      { 
     
     
      
       
        
         
          
           
           
             ∂ 
            
           
             I 
            
           
           
           
             ∂ 
            
           
             x 
            
           
          
         
           = 
          
          
          
            I 
           
          
            x 
           
          
         
        
       
      
      
       
        
         
          
           
           
             ∂ 
            
           
             I 
            
           
           
           
             ∂ 
            
           
             x 
            
           
          
         
           = 
          
          
          
            I 
           
          
            y 
           
          
         
        
       
      
      
       
        
         
          
           
           
             ∂ 
            
           
             I 
            
           
           
           
             ∂ 
            
           
             x 
            
           
          
         
           = 
          
          
          
            I 
           
          
            t 
           
          
          
         
           ( 
          
         
           3 
          
         
           ) 
          
         
        
       
      
      
       
        
         
          
           
           
             d 
            
           
             x 
            
           
           
           
             d 
            
           
             t 
            
           
          
         
           = 
          
         
           u 
          
         
        
       
      
      
       
        
         
          
           
           
             d 
            
           
             y 
            
           
           
           
             d 
            
           
             t 
            
           
          
         
           = 
          
         
           v 
          
         
        
       
      
     
    
   
     <span class="MathJax_Preview" style="color: inherit; display: none;"></span><div class="MathJax_Display"><span class="MathJax MathJax_FullWidth" id="MathJax-Element-1-Frame" tabindex="0" style="position: relative;" data-mathml="<math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot; display=&quot;block&quot;><mrow><mo>{</mo><mtable columnalign=&quot;left left&quot; rowspacing=&quot;.2em&quot; columnspacing=&quot;1em&quot; displaystyle=&quot;false&quot;><mtr><mtd><mfrac><mrow><mi mathvariant=&quot;normal&quot;>&amp;#x2202;</mi><mi>I</mi></mrow><mrow><mi mathvariant=&quot;normal&quot;>&amp;#x2202;</mi><mi>x</mi></mrow></mfrac><mo>=</mo><msub><mi>I</mi><mi>x</mi></msub></mtd></mtr><mtr><mtd><mfrac><mrow><mi mathvariant=&quot;normal&quot;>&amp;#x2202;</mi><mi>I</mi></mrow><mrow><mi mathvariant=&quot;normal&quot;>&amp;#x2202;</mi><mi>x</mi></mrow></mfrac><mo>=</mo><msub><mi>I</mi><mi>y</mi></msub></mtd></mtr><mtr><mtd><mfrac><mrow><mi mathvariant=&quot;normal&quot;>&amp;#x2202;</mi><mi>I</mi></mrow><mrow><mi mathvariant=&quot;normal&quot;>&amp;#x2202;</mi><mi>x</mi></mrow></mfrac><mo>=</mo><msub><mi>I</mi><mi>t</mi></msub><mspace width=&quot;2em&quot; /><mo stretchy=&quot;false&quot;>(</mo><mn>3</mn><mo stretchy=&quot;false&quot;>)</mo></mtd></mtr><mtr><mtd><mfrac><mrow><mrow class=&quot;MJX-TeXAtom-ORD&quot;><mi mathvariant=&quot;normal&quot;>d</mi></mrow><mi>x</mi></mrow><mrow><mrow class=&quot;MJX-TeXAtom-ORD&quot;><mi mathvariant=&quot;normal&quot;>d</mi></mrow><mi>t</mi></mrow></mfrac><mo>=</mo><mi>u</mi></mtd></mtr><mtr><mtd><mfrac><mrow><mrow class=&quot;MJX-TeXAtom-ORD&quot;><mi mathvariant=&quot;normal&quot;>d</mi></mrow><mi>y</mi></mrow><mrow><mrow class=&quot;MJX-TeXAtom-ORD&quot;><mi mathvariant=&quot;normal&quot;>d</mi></mrow><mi>t</mi></mrow></mfrac><mo>=</mo><mi>v</mi></mtd></mtr></mtable><mo fence=&quot;true&quot; stretchy=&quot;true&quot; symmetric=&quot;true&quot;></mo></mrow></math>" role="presentation"><nobr aria-hidden="true"><span class="math" id="MathJax-Span-1" style="width: 100%; display: inline-block; min-width: 7.9em;"><span style="display: inline-block; position: relative; width: 100%; height: 0px; font-size: 102%;"><span style="position: absolute; clip: rect(4.4em, 1007.77em, 12.311em, -1000em); top: -8.606em; left: 0em; width: 100%;"><span class="mrow" id="MathJax-Span-2"><span style="display: inline-block; position: relative; width: 100%; height: 0px;"><span style="position: absolute; clip: rect(4.4em, 1007.77em, 12.311em, -1000em); top: -8.606em; left: 50%; margin-left: -3.885em;"><span class="mrow" id="MathJax-Span-3"><span class="mo" id="MathJax-Span-4" style="vertical-align: 4.054em;"><span style="display: inline-block; position: relative; width: 0.889em; height: 0px;"><span style="position: absolute; font-family: MathJax_Size4; top: -3.1em; left: 0em;">⎧<span style="display: inline-block; width: 0px; height: 3.999em;"></span></span><span style="position: absolute; font-family: MathJax_Size4; top: 2.709em; left: 0em;">⎩<span style="display: inline-block; width: 0px; height: 3.999em;"></span></span><span style="position: absolute; font-family: MathJax_Size4; top: 0.054em; left: 0em;">⎨<span style="display: inline-block; width: 0px; height: 3.999em;"></span></span><span style="font-family: MathJax_Size4; position: absolute; top: -2.844em; left: 0em;">⎪<span style="display: inline-block; width: 0px; height: 3.999em;"></span></span><span style="font-family: MathJax_Size4; position: absolute; top: -2.588em; left: 0em;">⎪<span style="display: inline-block; width: 0px; height: 3.999em;"></span></span><span style="font-family: MathJax_Size4; position: absolute; top: -2.332em; left: 0em;">⎪<span style="display: inline-block; width: 0px; height: 3.999em;"></span></span><span style="font-family: MathJax_Size4; position: absolute; top: -2.076em; left: 0em;">⎪<span style="display: inline-block; width: 0px; height: 3.999em;"></span></span><span style="font-family: MathJax_Size4; position: absolute; top: -1.82em; left: 0em;">⎪<span style="display: inline-block; width: 0px; height: 3.999em;"></span></span><span style="font-family: MathJax_Size4; position: absolute; top: -1.564em; left: 0em;">⎪<span style="display: inline-block; width: 0px; height: 3.999em;"></span></span><span style="font-family: MathJax_Size4; position: absolute; top: -1.308em; left: 0em;">⎪<span style="display: inline-block; width: 0px; height: 3.999em;"></span></span><span style="font-family: MathJax_Size4; position: absolute; top: -1.052em; left: 0em;">⎪<span style="display: inline-block; width: 0px; height: 3.999em;"></span></span><span style="font-family: MathJax_Size4; position: absolute; top: 0.96em; left: 0em;">⎪<span style="display: inline-block; width: 0px; height: 3.999em;"></span></span><span style="font-family: MathJax_Size4; position: absolute; top: 1.217em; left: 0em;">⎪<span style="display: inline-block; width: 0px; height: 3.999em;"></span></span><span style="font-family: MathJax_Size4; position: absolute; top: 1.473em; left: 0em;">⎪<span style="display: inline-block; width: 0px; height: 3.999em;"></span></span><span style="font-family: MathJax_Size4; position: absolute; top: 1.729em; left: 0em;">⎪<span style="display: inline-block; width: 0px; height: 3.999em;"></span></span><span style="font-family: MathJax_Size4; position: absolute; top: 1.985em; left: 0em;">⎪<span style="display: inline-block; width: 0px; height: 3.999em;"></span></span><span style="font-family: MathJax_Size4; position: absolute; top: 2.241em; left: 0em;">⎪<span style="display: inline-block; width: 0px; height: 3.999em;"></span></span><span style="font-family: MathJax_Size4; position: absolute; top: 2.497em; left: 0em;">⎪<span style="display: inline-block; width: 0px; height: 3.999em;"></span></span><span style="font-family: MathJax_Size4; position: absolute; top: 2.753em; left: 0em;">⎪<span style="display: inline-block; width: 0px; height: 3.999em;"></span></span></span></span><span class="mtable" id="MathJax-Span-5" style="padding-right: 0.167em; padding-left: 0.167em;"><span style="display: inline-block; position: relative; width: 6.547em; height: 0px;"><span style="position: absolute; clip: rect(4.4em, 1006.45em, 12.311em, -1000em); top: -8.606em; left: 0em;"><span style="display: inline-block; position: relative; width: 6.547em; height: 0px;"><span style="position: absolute; width: 100%; clip: rect(2.921em, 1003.42em, 4.577em, -1000em); top: -7.127em; left: 0em;"><span class="mtd" id="MathJax-Span-6"><span class="mrow" id="MathJax-Span-7"><span style="display: inline-block; position: relative; width: 100%; height: 0px;"><span style="position: absolute; clip: rect(2.921em, 1003.42em, 4.577em, -1000em); top: -3.999em; left: 50%; margin-left: -1.709em;"><span class="mfrac" id="MathJax-Span-8"><span style="display: inline-block; position: relative; width: 0.925em; height: 0px; margin-right: 0.12em; margin-left: 0.12em;"><span style="position: absolute; clip: rect(3.342em, 1000.76em, 4.167em, -1000em); top: -4.42em; left: 50%; margin-left: -0.378em;"><span class="mrow" id="MathJax-Span-9"><span style="display: inline-block; position: relative; width: 0.757em; height: 0px;"><span style="position: absolute; clip: rect(3.342em, 1000.76em, 4.167em, -1000em); top: -3.999em; left: 0em;"><span class="mi" id="MathJax-Span-10" style="font-size: 70.7%; font-family: MathJax_Main;">∂<span style="display: inline-block; overflow: hidden; height: 1px; width: 0.025em;"></span></span><span class="mi" id="MathJax-Span-11" style="font-size: 70.7%; font-family: MathJax_Math; font-style: italic;">I<span style="display: inline-block; overflow: hidden; height: 1px; width: 0.045em;"></span></span><span style="display: inline-block; width: 0px; height: 3.999em;"></span></span></span></span><span style="display: inline-block; width: 0px; height: 3.999em;"></span></span><span style="position: absolute; clip: rect(3.342em, 1000.77em, 4.167em, -1000em); top: -3.589em; left: 50%; margin-left: -0.402em;"><span class="mrow" id="MathJax-Span-12"><span style="display: inline-block; position: relative; width: 0.805em; height: 0px;"><span style="position: absolute; clip: rect(3.342em, 1000.77em, 4.167em, -1000em); top: -3.999em; left: 0em;"><span class="mi" id="MathJax-Span-13" style="font-size: 70.7%; font-family: MathJax_Main;">∂<span style="display: inline-block; overflow: hidden; height: 1px; width: 0.025em;"></span></span><span class="mi" id="MathJax-Span-14" style="font-size: 70.7%; font-family: MathJax_Math; font-style: italic;">x</span><span style="display: inline-block; width: 0px; height: 3.999em;"></span></span></span></span><span style="display: inline-block; width: 0px; height: 3.999em;"></span></span><span style="position: absolute; clip: rect(0.848em, 1000.93em, 1.215em, -1000em); top: -1.283em; left: 0em;"><span style="display: inline-block; overflow: hidden; vertical-align: 0em; border-top: 1.3px solid; width: 0.925em; height: 0px;"></span><span style="display: inline-block; width: 0px; height: 1.063em;"></span></span></span></span><span class="mo" id="MathJax-Span-15" style="font-family: MathJax_Main; padding-left: 0.278em;">=</span><span class="msubsup" id="MathJax-Span-16" style="padding-left: 0.278em;"><span style="display: inline-block; position: relative; width: 0.919em; height: 0px;"><span style="position: absolute; clip: rect(3.164em, 1000.5em, 4.151em, -1000em); top: -3.999em; left: 0em;"><span class="mi" id="MathJax-Span-17" style="font-family: MathJax_Math; font-style: italic;">I<span style="display: inline-block; overflow: hidden; height: 1px; width: 0.064em;"></span></span><span style="display: inline-block; width: 0px; height: 3.999em;"></span></span><span style="position: absolute; top: -3.849em; left: 0.44em;"><span class="mi" id="MathJax-Span-18" style="font-size: 70.7%; font-family: MathJax_Math; font-style: italic;">x</span><span style="display: inline-block; width: 0px; height: 3.999em;"></span></span></span></span><span style="display: inline-block; width: 0px; height: 3.999em;"></span></span></span></span></span><span style="display: inline-block; width: 0px; height: 3.999em;"></span></span><span style="position: absolute; width: 100%; clip: rect(2.921em, 1003.36em, 4.577em, -1000em); top: -5.575em; left: 0em;"><span class="mtd" id="MathJax-Span-19"><span class="mrow" id="MathJax-Span-20"><span style="display: inline-block; position: relative; width: 100%; height: 0px;"><span style="position: absolute; clip: rect(2.921em, 1003.36em, 4.577em, -1000em); top: -3.999em; left: 50%; margin-left: -1.682em;"><span class="mfrac" id="MathJax-Span-21"><span style="display: inline-block; position: relative; width: 0.925em; height: 0px; margin-right: 0.12em; margin-left: 0.12em;"><span style="position: absolute; clip: rect(3.342em, 1000.76em, 4.167em, -1000em); top: -4.42em; left: 50%; margin-left: -0.378em;"><span class="mrow" id="MathJax-Span-22"><span style="display: inline-block; position: relative; width: 0.757em; height: 0px;"><span style="position: absolute; clip: rect(3.342em, 1000.76em, 4.167em, -1000em); top: -3.999em; left: 0em;"><span class="mi" id="MathJax-Span-23" style="font-size: 70.7%; font-family: MathJax_Main;">∂<span style="display: inline-block; overflow: hidden; height: 1px; width: 0.025em;"></span></span><span class="mi" id="MathJax-Span-24" style="font-size: 70.7%; font-family: MathJax_Math; font-style: italic;">I<span style="display: inline-block; overflow: hidden; height: 1px; width: 0.045em;"></span></span><span style="display: inline-block; width: 0px; height: 3.999em;"></span></span></span></span><span style="display: inline-block; width: 0px; height: 3.999em;"></span></span><span style="position: absolute; clip: rect(3.342em, 1000.77em, 4.167em, -1000em); top: -3.589em; left: 50%; margin-left: -0.402em;"><span class="mrow" id="MathJax-Span-25"><span style="display: inline-block; position: relative; width: 0.805em; height: 0px;"><span style="position: absolute; clip: rect(3.342em, 1000.77em, 4.167em, -1000em); top: -3.999em; left: 0em;"><span class="mi" id="MathJax-Span-26" style="font-size: 70.7%; font-family: MathJax_Main;">∂<span style="display: inline-block; overflow: hidden; height: 1px; width: 0.025em;"></span></span><span class="mi" id="MathJax-Span-27" style="font-size: 70.7%; font-family: MathJax_Math; font-style: italic;">x</span><span style="display: inline-block; width: 0px; height: 3.999em;"></span></span></span></span><span style="display: inline-block; width: 0px; height: 3.999em;"></span></span><span style="position: absolute; clip: rect(0.848em, 1000.93em, 1.215em, -1000em); top: -1.283em; left: 0em;"><span style="display: inline-block; overflow: hidden; vertical-align: 0em; border-top: 1.3px solid; width: 0.925em; height: 0px;"></span><span style="display: inline-block; width: 0px; height: 1.063em;"></span></span></span></span><span class="mo" id="MathJax-Span-28" style="font-family: MathJax_Main; padding-left: 0.278em;">=</span><span class="msubsup" id="MathJax-Span-29" style="padding-left: 0.278em;"><span style="display: inline-block; position: relative; width: 0.866em; height: 0px;"><span style="position: absolute; clip: rect(3.164em, 1000.5em, 4.151em, -1000em); top: -3.999em; left: 0em;"><span class="mi" id="MathJax-Span-30" style="font-family: MathJax_Math; font-style: italic;">I<span style="display: inline-block; overflow: hidden; height: 1px; width: 0.064em;"></span></span><span style="display: inline-block; width: 0px; height: 3.999em;"></span></span><span style="position: absolute; top: -3.849em; left: 0.44em;"><span class="mi" id="MathJax-Span-31" style="font-size: 70.7%; font-family: MathJax_Math; font-style: italic;">y<span style="display: inline-block; overflow: hidden; height: 1px; width: 0.004em;"></span></span><span style="display: inline-block; width: 0px; height: 3.999em;"></span></span></span></span><span style="display: inline-block; width: 0px; height: 3.999em;"></span></span></span></span></span><span style="display: inline-block; width: 0px; height: 3.999em;"></span></span><span style="position: absolute; width: 100%; clip: rect(2.921em, 1006.45em, 4.577em, -1000em); top: -4.023em; left: 0em;"><span class="mtd" id="MathJax-Span-32"><span class="mrow" id="MathJax-Span-33"><span style="display: inline-block; position: relative; width: 100%; height: 0px;"><span style="position: absolute; clip: rect(2.921em, 1006.45em, 4.577em, -1000em); top: -3.999em; left: 50%; margin-left: -3.273em;"><span class="mfrac" id="MathJax-Span-34"><span style="display: inline-block; position: relative; width: 0.925em; height: 0px; margin-right: 0.12em; margin-left: 0.12em;"><span style="position: absolute; clip: rect(3.342em, 1000.76em, 4.167em, -1000em); top: -4.42em; left: 50%; margin-left: -0.378em;"><span class="mrow" id="MathJax-Span-35"><span style="display: inline-block; position: relative; width: 0.757em; height: 0px;"><span style="position: absolute; clip: rect(3.342em, 1000.76em, 4.167em, -1000em); top: -3.999em; left: 0em;"><span class="mi" id="MathJax-Span-36" style="font-size: 70.7%; font-family: MathJax_Main;">∂<span style="display: inline-block; overflow: hidden; height: 1px; width: 0.025em;"></span></span><span class="mi" id="MathJax-Span-37" style="font-size: 70.7%; font-family: MathJax_Math; font-style: italic;">I<span style="display: inline-block; overflow: hidden; height: 1px; width: 0.045em;"></span></span><span style="display: inline-block; width: 0px; height: 3.999em;"></span></span></span></span><span style="display: inline-block; width: 0px; height: 3.999em;"></span></span><span style="position: absolute; clip: rect(3.342em, 1000.77em, 4.167em, -1000em); top: -3.589em; left: 50%; margin-left: -0.402em;"><span class="mrow" id="MathJax-Span-38"><span style="display: inline-block; position: relative; width: 0.805em; height: 0px;"><span style="position: absolute; clip: rect(3.342em, 1000.77em, 4.167em, -1000em); top: -3.999em; left: 0em;"><span class="mi" id="MathJax-Span-39" style="font-size: 70.7%; font-family: MathJax_Main;">∂<span style="display: inline-block; overflow: hidden; height: 1px; width: 0.025em;"></span></span><span class="mi" id="MathJax-Span-40" style="font-size: 70.7%; font-family: MathJax_Math; font-style: italic;">x</span><span style="display: inline-block; width: 0px; height: 3.999em;"></span></span></span></span><span style="display: inline-block; width: 0px; height: 3.999em;"></span></span><span style="position: absolute; clip: rect(0.848em, 1000.93em, 1.215em, -1000em); top: -1.283em; left: 0em;"><span style="display: inline-block; overflow: hidden; vertical-align: 0em; border-top: 1.3px solid; width: 0.925em; height: 0px;"></span><span style="display: inline-block; width: 0px; height: 1.063em;"></span></span></span></span><span class="mo" id="MathJax-Span-41" style="font-family: MathJax_Main; padding-left: 0.278em;">=</span><span class="msubsup" id="MathJax-Span-42" style="padding-left: 0.278em;"><span style="display: inline-block; position: relative; width: 0.77em; height: 0px;"><span style="position: absolute; clip: rect(3.164em, 1000.5em, 4.151em, -1000em); top: -3.999em; left: 0em;"><span class="mi" id="MathJax-Span-43" style="font-family: MathJax_Math; font-style: italic;">I<span style="display: inline-block; overflow: hidden; height: 1px; width: 0.064em;"></span></span><span style="display: inline-block; width: 0px; height: 3.999em;"></span></span><span style="position: absolute; top: -3.849em; left: 0.44em;"><span class="mi" id="MathJax-Span-44" style="font-size: 70.7%; font-family: MathJax_Math; font-style: italic;">t</span><span style="display: inline-block; width: 0px; height: 3.999em;"></span></span></span></span><span class="mspace" id="MathJax-Span-45" style="height: 0em; vertical-align: 0em; width: 2em; display: inline-block; overflow: hidden;"></span><span class="mo" id="MathJax-Span-46" style="font-family: MathJax_Main;">(</span><span class="mn" id="MathJax-Span-47" style="font-family: MathJax_Main;">3</span><span class="mo" id="MathJax-Span-48" style="font-family: MathJax_Main;">)</span><span style="display: inline-block; width: 0px; height: 3.999em;"></span></span></span></span></span><span style="display: inline-block; width: 0px; height: 3.999em;"></span></span><span style="position: absolute; width: 100%; clip: rect(2.944em, 1003.04em, 4.554em, -1000em); top: -2.493em; left: 0em;"><span class="mtd" id="MathJax-Span-49"><span class="mrow" id="MathJax-Span-50"><span style="display: inline-block; position: relative; width: 100%; height: 0px;"><span style="position: absolute; clip: rect(2.944em, 1003.04em, 4.554em, -1000em); top: -3.999em; left: 50%; margin-left: -1.532em;"><span class="mfrac" id="MathJax-Span-51"><span style="display: inline-block; position: relative; width: 0.918em; height: 0px; margin-right: 0.12em; margin-left: 0.12em;"><span style="position: absolute; clip: rect(3.357em, 1000.76em, 4.159em, -1000em); top: -4.412em; left: 50%; margin-left: -0.399em;"><span class="mrow" id="MathJax-Span-52"><span style="display: inline-block; position: relative; width: 0.798em; height: 0px;"><span style="position: absolute; clip: rect(3.357em, 1000.76em, 4.159em, -1000em); top: -3.999em; left: 0em;"><span class="texatom" id="MathJax-Span-53"><span class="mrow" id="MathJax-Span-54"><span style="display: inline-block; position: relative; width: 0.393em; height: 0px;"><span style="position: absolute; clip: rect(3.357em, 1000.38em, 4.159em, -1000em); top: -3.999em; left: 0em;"><span class="mi" id="MathJax-Span-55" style="font-size: 70.7%; font-family: MathJax_Main;">d</span><span style="display: inline-block; width: 0px; height: 3.999em;"></span></span></span></span></span><span class="mi" id="MathJax-Span-56" style="font-size: 70.7%; font-family: MathJax_Math; font-style: italic;">x</span><span style="display: inline-block; width: 0px; height: 3.999em;"></span></span></span></span><span style="display: inline-block; width: 0px; height: 3.999em;"></span></span><span style="position: absolute; clip: rect(3.357em, 1000.63em, 4.159em, -1000em); top: -3.604em; left: 50%; margin-left: -0.324em;"><span class="mrow" id="MathJax-Span-57"><span style="display: inline-block; position: relative; width: 0.648em; height: 0px;"><span style="position: absolute; clip: rect(3.357em, 1000.63em, 4.159em, -1000em); top: -3.999em; left: 0em;"><span class="texatom" id="MathJax-Span-58"><span class="mrow" id="MathJax-Span-59"><span style="display: inline-block; position: relative; width: 0.393em; height: 0px;"><span style="position: absolute; clip: rect(3.357em, 1000.38em, 4.159em, -1000em); top: -3.999em; left: 0em;"><span class="mi" id="MathJax-Span-60" style="font-size: 70.7%; font-family: MathJax_Main;">d</span><span style="display: inline-block; width: 0px; height: 3.999em;"></span></span></span></span></span><span class="mi" id="MathJax-Span-61" style="font-size: 70.7%; font-family: MathJax_Math; font-style: italic;">t</span><span style="display: inline-block; width: 0px; height: 3.999em;"></span></span></span></span><span style="display: inline-block; width: 0px; height: 3.999em;"></span></span><span style="position: absolute; clip: rect(0.848em, 1000.92em, 1.215em, -1000em); top: -1.283em; left: 0em;"><span style="display: inline-block; overflow: hidden; vertical-align: 0em; border-top: 1.3px solid; width: 0.918em; height: 0px;"></span><span style="display: inline-block; width: 0px; height: 1.063em;"></span></span></span></span><span class="mo" id="MathJax-Span-62" style="font-family: MathJax_Main; padding-left: 0.278em;">=</span><span class="mi" id="MathJax-Span-63" style="font-family: MathJax_Math; font-style: italic; padding-left: 0.278em;">u</span><span style="display: inline-block; width: 0px; height: 3.999em;"></span></span></span></span></span><span style="display: inline-block; width: 0px; height: 3.999em;"></span></span><span style="position: absolute; width: 100%; clip: rect(2.807em, 1002.91em, 4.554em, -1000em); top: -0.849em; left: 0em;"><span class="mtd" id="MathJax-Span-64"><span class="mrow" id="MathJax-Span-65"><span style="display: inline-block; position: relative; width: 100%; height: 0px;"><span style="position: absolute; clip: rect(2.807em, 1002.91em, 4.554em, -1000em); top: -3.999em; left: 50%; margin-left: -1.461em;"><span class="mfrac" id="MathJax-Span-66"><span style="display: inline-block; position: relative; width: 0.864em; height: 0px; margin-right: 0.12em; margin-left: 0.12em;"><span style="position: absolute; clip: rect(3.357em, 1000.74em, 4.296em, -1000em); top: -4.549em; left: 50%; margin-left: -0.372em;"><span class="mrow" id="MathJax-Span-67"><span style="display: inline-block; position: relative; width: 0.744em; height: 0px;"><span style="position: absolute; clip: rect(3.357em, 1000.74em, 4.296em, -1000em); top: -3.999em; left: 0em;"><span class="texatom" id="MathJax-Span-68"><span class="mrow" id="MathJax-Span-69"><span style="display: inline-block; position: relative; width: 0.393em; height: 0px;"><span style="position: absolute; clip: rect(3.357em, 1000.38em, 4.159em, -1000em); top: -3.999em; left: 0em;"><span class="mi" id="MathJax-Span-70" style="font-size: 70.7%; font-family: MathJax_Main;">d</span><span style="display: inline-block; width: 0px; height: 3.999em;"></span></span></span></span></span><span class="mi" id="MathJax-Span-71" style="font-size: 70.7%; font-family: MathJax_Math; font-style: italic;">y<span style="display: inline-block; overflow: hidden; height: 1px; width: 0.004em;"></span></span><span style="display: inline-block; width: 0px; height: 3.999em;"></span></span></span></span><span style="display: inline-block; width: 0px; height: 3.999em;"></span></span><span style="position: absolute; clip: rect(3.357em, 1000.63em, 4.159em, -1000em); top: -3.604em; left: 50%; margin-left: -0.324em;"><span class="mrow" id="MathJax-Span-72"><span style="display: inline-block; position: relative; width: 0.648em; height: 0px;"><span style="position: absolute; clip: rect(3.357em, 1000.63em, 4.159em, -1000em); top: -3.999em; left: 0em;"><span class="texatom" id="MathJax-Span-73"><span class="mrow" id="MathJax-Span-74"><span style="display: inline-block; position: relative; width: 0.393em; height: 0px;"><span style="position: absolute; clip: rect(3.357em, 1000.38em, 4.159em, -1000em); top: -3.999em; left: 0em;"><span class="mi" id="MathJax-Span-75" style="font-size: 70.7%; font-family: MathJax_Main;">d</span><span style="display: inline-block; width: 0px; height: 3.999em;"></span></span></span></span></span><span class="mi" id="MathJax-Span-76" style="font-size: 70.7%; font-family: MathJax_Math; font-style: italic;">t</span><span style="display: inline-block; width: 0px; height: 3.999em;"></span></span></span></span><span style="display: inline-block; width: 0px; height: 3.999em;"></span></span><span style="position: absolute; clip: rect(0.848em, 1000.86em, 1.215em, -1000em); top: -1.283em; left: 0em;"><span style="display: inline-block; overflow: hidden; vertical-align: 0em; border-top: 1.3px solid; width: 0.864em; height: 0px;"></span><span style="display: inline-block; width: 0px; height: 1.063em;"></span></span></span></span><span class="mo" id="MathJax-Span-77" style="font-family: MathJax_Main; padding-left: 0.278em;">=</span><span class="mi" id="MathJax-Span-78" style="font-family: MathJax_Math; font-style: italic; padding-left: 0.278em;">v</span><span style="display: inline-block; width: 0px; height: 3.999em;"></span></span></span></span></span><span style="display: inline-block; width: 0px; height: 3.999em;"></span></span></span><span style="display: inline-block; width: 0px; height: 8.606em;"></span></span></span></span><span class="mo" id="MathJax-Span-79"></span></span><span style="display: inline-block; width: 0px; height: 8.606em;"></span></span></span></span><span style="display: inline-block; width: 0px; height: 8.606em;"></span></span></span><span style="display: inline-block; overflow: hidden; vertical-align: -3.676em; border-left: 0px solid; width: 0px; height: 7.863em;"></span></span></nobr><span class="MJX_Assistive_MathML MJX_Assistive_MathML_Block" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><mrow><mo>{</mo><mtable columnalign="left left" rowspacing=".2em" columnspacing="1em" displaystyle="false"><mtr><mtd><mfrac><mrow><mi mathvariant="normal">∂</mi><mi>I</mi></mrow><mrow><mi mathvariant="normal">∂</mi><mi>x</mi></mrow></mfrac><mo>=</mo><msub><mi>I</mi><mi>x</mi></msub></mtd></mtr><mtr><mtd><mfrac><mrow><mi mathvariant="normal">∂</mi><mi>I</mi></mrow><mrow><mi mathvariant="normal">∂</mi><mi>x</mi></mrow></mfrac><mo>=</mo><msub><mi>I</mi><mi>y</mi></msub></mtd></mtr><mtr><mtd><mfrac><mrow><mi mathvariant="normal">∂</mi><mi>I</mi></mrow><mrow><mi mathvariant="normal">∂</mi><mi>x</mi></mrow></mfrac><mo>=</mo><msub><mi>I</mi><mi>t</mi></msub><mspace width="2em"></mspace><mo stretchy="false">(</mo><mn>3</mn><mo stretchy="false">)</mo></mtd></mtr><mtr><mtd><mfrac><mrow><mrow class="MJX-TeXAtom-ORD"><mi mathvariant="normal">d</mi></mrow><mi>x</mi></mrow><mrow><mrow class="MJX-TeXAtom-ORD"><mi mathvariant="normal">d</mi></mrow><mi>t</mi></mrow></mfrac><mo>=</mo><mi>u</mi></mtd></mtr><mtr><mtd><mfrac><mrow><mrow class="MJX-TeXAtom-ORD"><mi mathvariant="normal">d</mi></mrow><mi>y</mi></mrow><mrow><mrow class="MJX-TeXAtom-ORD"><mi mathvariant="normal">d</mi></mrow><mi>t</mi></mrow></mfrac><mo>=</mo><mi>v</mi></mtd></mtr></mtable><mo fence="true" stretchy="true" symmetric="true"></mo></mrow></math></span></span></div><script type="math/tex; mode=display" id="MathJax-Element-1">\begin{cases} \frac {\partial I}{\partial x}=I_x\\ \frac {\partial I}{\partial x}=I_y\\ \frac {\partial I}{\partial x}=I_t \qquad(3)\\ \frac {\mathrm dx}{\mathrm dt}=u\\ \frac {\mathrm dy}{\mathrm dt}=v \end{cases}</script> 
    
   
 </span><span class="katex-html"><span class="base"><span class="strut" style="height: 7.20004em; vertical-align: -3.35002em;"></span><span class="minner"><span class="mopen"><span class="delimsizing mult"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 3.85002em;"><span class="" style="top: -0.69999em;"><span class="pstrut" style="height: 3.15em;"></span><span class="delimsizinginner delim-size4"><span class="">⎩</span></span></span><span class="" style="top: -0.69999em;"><span class="pstrut" style="height: 3.15em;"></span><span class="delimsizinginner delim-size4"><span class="">⎪</span></span></span><span class="" style="top: -0.99999em;"><span class="pstrut" style="height: 3.15em;"></span><span class="delimsizinginner delim-size4"><span class="">⎪</span></span></span><span class="" style="top: -1.29999em;"><span class="pstrut" style="height: 3.15em;"></span><span class="delimsizinginner delim-size4"><span class="">⎪</span></span></span><span class="" style="top: -1.59999em;"><span class="pstrut" style="height: 3.15em;"></span><span class="delimsizinginner delim-size4"><span class="">⎪</span></span></span><span class="" style="top: -1.89999em;"><span class="pstrut" style="height: 3.15em;"></span><span class="delimsizinginner delim-size4"><span class="">⎪</span></span></span><span class="" style="top: -2.19999em;"><span class="pstrut" style="height: 3.15em;"></span><span class="delimsizinginner delim-size4"><span class="">⎪</span></span></span><span class="" style="top: -3.15001em;"><span class="pstrut" style="height: 3.15em;"></span><span class="delimsizinginner delim-size4"><span class="">⎨</span></span></span><span class="" style="top: -4.30001em;"><span class="pstrut" style="height: 3.15em;"></span><span class="delimsizinginner delim-size4"><span class="">⎪</span></span></span><span class="" style="top: -4.60001em;"><span class="pstrut" style="height: 3.15em;"></span><span class="delimsizinginner delim-size4"><span class="">⎪</span></span></span><span class="" style="top: -4.90001em;"><span class="pstrut" style="height: 3.15em;"></span><span class="delimsizinginner delim-size4"><span class="">⎪</span></span></span><span class="" style="top: -5.20001em;"><span class="pstrut" style="height: 3.15em;"></span><span class="delimsizinginner delim-size4"><span class="">⎪</span></span></span><span class="" style="top: -5.50001em;"><span class="pstrut" style="height: 3.15em;"></span><span class="delimsizinginner delim-size4"><span class="">⎪</span></span></span><span class="" style="top: -5.80001em;"><span class="pstrut" style="height: 3.15em;"></span><span class="delimsizinginner delim-size4"><span class="">⎪</span></span></span><span class="" style="top: -6.10002em;"><span class="pstrut" style="height: 3.15em;"></span><span class="delimsizinginner delim-size4"><span class="">⎧</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 3.35002em;"><span class=""></span></span></span></span></span></span><span class="mord"><span class="mtable"><span class="col-align-l"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 3.85em;"><span class="" style="top: -5.85em;"><span class="pstrut" style="height: 3.008em;"></span><span class="mord"><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 0.880108em;"><span class="" style="top: -2.655em;"><span class="pstrut" style="height: 3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight" style="margin-right: 0.05556em;">∂</span><span class="mord mathdefault mtight">x</span></span></span></span><span class="" style="top: -3.23em;"><span class="pstrut" style="height: 3em;"></span><span class="frac-line" style="border-bottom-width: 0.04em;"></span></span><span class="" style="top: -3.394em;"><span class="pstrut" style="height: 3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight" style="margin-right: 0.05556em;">∂</span><span class="mord mathdefault mtight" style="margin-right: 0.07847em;">I</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 0.345em;"><span class=""></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mspace" style="margin-right: 0.277778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right: 0.277778em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right: 0.07847em;">I</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 0.151392em;"><span class="" style="top: -2.55em; margin-left: -0.07847em; margin-right: 0.05em;"><span class="pstrut" style="height: 2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathdefault mtight">x</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 0.15em;"><span class=""></span></span></span></span></span></span></span></span><span class="" style="top: -4.41em;"><span class="pstrut" style="height: 3.008em;"></span><span class="mord"><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 0.880108em;"><span class="" style="top: -2.655em;"><span class="pstrut" style="height: 3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight" style="margin-right: 0.05556em;">∂</span><span class="mord mathdefault mtight">x</span></span></span></span><span class="" style="top: -3.23em;"><span class="pstrut" style="height: 3em;"></span><span class="frac-line" style="border-bottom-width: 0.04em;"></span></span><span class="" style="top: -3.394em;"><span class="pstrut" style="height: 3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight" style="margin-right: 0.05556em;">∂</span><span class="mord mathdefault mtight" style="margin-right: 0.07847em;">I</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 0.345em;"><span class=""></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mspace" style="margin-right: 0.277778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right: 0.277778em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right: 0.07847em;">I</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 0.151392em;"><span class="" style="top: -2.55em; margin-left: -0.07847em; margin-right: 0.05em;"><span class="pstrut" style="height: 2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathdefault mtight" style="margin-right: 0.03588em;">y</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 0.286108em;"><span class=""></span></span></span></span></span></span></span></span><span class="" style="top: -2.97em;"><span class="pstrut" style="height: 3.008em;"></span><span class="mord"><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 0.880108em;"><span class="" style="top: -2.655em;"><span class="pstrut" style="height: 3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight" style="margin-right: 0.05556em;">∂</span><span class="mord mathdefault mtight">x</span></span></span></span><span class="" style="top: -3.23em;"><span class="pstrut" style="height: 3em;"></span><span class="frac-line" style="border-bottom-width: 0.04em;"></span></span><span class="" style="top: -3.394em;"><span class="pstrut" style="height: 3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight" style="margin-right: 0.05556em;">∂</span><span class="mord mathdefault mtight" style="margin-right: 0.07847em;">I</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 0.345em;"><span class=""></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mspace" style="margin-right: 0.277778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right: 0.277778em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right: 0.07847em;">I</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 0.280556em;"><span class="" style="top: -2.55em; margin-left: -0.07847em; margin-right: 0.05em;"><span class="pstrut" style="height: 2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathdefault mtight">t</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 0.15em;"><span class=""></span></span></span></span></span></span><span class="mspace" style="margin-right: 2em;"></span><span class="mopen">(</span><span class="mord">3</span><span class="mclose">)</span></span></span><span class="" style="top: -1.53em;"><span class="pstrut" style="height: 3.008em;"></span><span class="mord"><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 0.880108em;"><span class="" style="top: -2.655em;"><span class="pstrut" style="height: 3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathrm mtight">d</span><span class="mord mathdefault mtight">t</span></span></span></span><span class="" style="top: -3.23em;"><span class="pstrut" style="height: 3em;"></span><span class="frac-line" style="border-bottom-width: 0.04em;"></span></span><span class="" style="top: -3.394em;"><span class="pstrut" style="height: 3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathrm mtight">d</span><span class="mord mathdefault mtight">x</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 0.345em;"><span class=""></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mspace" style="margin-right: 0.277778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right: 0.277778em;"></span><span class="mord mathdefault">u</span></span></span><span class="" style="top: -0.09em;"><span class="pstrut" style="height: 3.008em;"></span><span class="mord"><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 0.932216em;"><span class="" style="top: -2.655em;"><span class="pstrut" style="height: 3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathrm mtight">d</span><span class="mord mathdefault mtight">t</span></span></span></span><span class="" style="top: -3.23em;"><span class="pstrut" style="height: 3em;"></span><span class="frac-line" style="border-bottom-width: 0.04em;"></span></span><span class="" style="top: -3.44611em;"><span class="pstrut" style="height: 3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathrm mtight">d</span><span class="mord mathdefault mtight" style="margin-right: 0.03588em;">y</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 0.345em;"><span class=""></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mspace" style="margin-right: 0.277778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right: 0.277778em;"></span><span class="mord mathdefault" style="margin-right: 0.03588em;">v</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 3.35em;"><span class=""></span></span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span></span></span></span></span></span>将<span class="katex--inline"><span class="katex"><span class="katex-mathml"> 
 
  
   
   
     ( 
    
   
     3 
    
   
     ) 
    
   
  
    (3) 
   
  
</span><span class="katex-html"><span class="base"><span class="strut" style="height: 1em; vertical-align: -0.25em;"></span><span class="mopen">(</span><span class="mord">3</span><span class="mclose">)</span></span></span></span></span>带入<span class="katex--inline"><span class="katex"><span class="katex-mathml"> 
 
  
   
   
     ( 
    
   
     2 
    
   
     ) 
    
   
  
    (2) 
   
  
</span><span class="katex-html"><span class="base"><span class="strut" style="height: 1em; vertical-align: -0.25em;"></span><span class="mopen">(</span><span class="mord">2</span><span class="mclose">)</span></span></span></span></span>中,得到:<span class="katex--display"><span class="katex-display"><span class="katex"><span class="katex-mathml"> 
  
   
    
     
     
       I 
      
     
       x 
      
     
    
      u 
     
    
      + 
     
     
     
       I 
      
     
       y 
      
     
    
      v 
     
    
      + 
     
     
     
       I 
      
     
       t 
      
     
    
      = 
     
    
      0 
     
     
    
      ( 
     
    
      4 
     
    
      ) 
     
    
   
     I_x u+I_y v +I_t=0 \qquad(4) 
    
   
 </span><span class="katex-html"><span class="base"><span class="strut" style="height: 0.83333em; vertical-align: -0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right: 0.07847em;">I</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 0.151392em;"><span class="" style="top: -2.55em; margin-left: -0.07847em; margin-right: 0.05em;"><span class="pstrut" style="height: 2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathdefault mtight">x</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 0.15em;"><span class=""></span></span></span></span></span></span><span class="mord mathdefault">u</span><span class="mspace" style="margin-right: 0.222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right: 0.222222em;"></span></span><span class="base"><span class="strut" style="height: 0.969438em; vertical-align: -0.286108em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right: 0.07847em;">I</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 0.151392em;"><span class="" style="top: -2.55em; margin-left: -0.07847em; margin-right: 0.05em;"><span class="pstrut" style="height: 2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathdefault mtight" style="margin-right: 0.03588em;">y</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 0.286108em;"><span class=""></span></span></span></span></span></span><span class="mord mathdefault" style="margin-right: 0.03588em;">v</span><span class="mspace" style="margin-right: 0.222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right: 0.222222em;"></span></span><span class="base"><span class="strut" style="height: 0.83333em; vertical-align: -0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right: 0.07847em;">I</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 0.280556em;"><span class="" style="top: -2.55em; margin-left: -0.07847em; margin-right: 0.05em;"><span class="pstrut" style="height: 2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathdefault mtight">t</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 0.15em;"><span class=""></span></span></span></span></span></span><span class="mspace" style="margin-right: 0.277778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right: 0.277778em;"></span></span><span class="base"><span class="strut" style="height: 1em; vertical-align: -0.25em;"></span><span class="mord">0</span><span class="mspace" style="margin-right: 2em;"></span><span class="mopen">(</span><span class="mord">4</span><span class="mclose">)</span></span></span></span></span></span>其中<span class="katex--inline"><span class="katex"><span class="katex-mathml"> 
 
  
   
    
    
      I 
     
    
      x 
     
    
   
  
    I_x 
   
  
</span><span class="katex-html"><span class="base"><span class="strut" style="height: 0.83333em; vertical-align: -0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right: 0.07847em;">I</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 0.151392em;"><span class="" style="top: -2.55em; margin-left: -0.07847em; margin-right: 0.05em;"><span class="pstrut" style="height: 2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathdefault mtight">x</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 0.15em;"><span class=""></span></span></span></span></span></span></span></span></span></span>, <span class="katex--inline"><span class="katex"><span class="katex-mathml"> 
 
  
   
    
    
      I 
     
    
      y 
     
    
   
  
    I_y 
   
  
</span><span class="katex-html"><span class="base"><span class="strut" style="height: 0.969438em; vertical-align: -0.286108em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right: 0.07847em;">I</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 0.151392em;"><span class="" style="top: -2.55em; margin-left: -0.07847em; margin-right: 0.05em;"><span class="pstrut" style="height: 2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathdefault mtight" style="margin-right: 0.03588em;">y</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 0.286108em;"><span class=""></span></span></span></span></span></span></span></span></span></span>均可以由图像求得,<span class="katex--inline"><span class="katex"><span class="katex-mathml"> 
 
  
   
   
     ( 
    
   
     u 
    
   
     , 
    
   
     v 
    
   
     ) 
    
   
  
    (u,v) 
   
  
</span><span class="katex-html"><span class="base"><span class="strut" style="height: 1em; vertical-align: -0.25em;"></span><span class="mopen">(</span><span class="mord mathdefault">u</span><span class="mpunct">,</span><span class="mspace" style="margin-right: 0.166667em;"></span><span class="mord mathdefault" style="margin-right: 0.03588em;">v</span><span class="mclose">)</span></span></span></span></span>即为光流矢量。</p> 

约束方程有一个,但未知量有两个,因此需要引入额外的约束条件,从不同角度引入约束也就产生了不同的光流计算方法。

3. 光流估计方法

3.1 思路概述

① 基于梯度的方法(微分法)
利用时变图像灰度的时空微分(时空梯度函数)来计算像素的速度矢量。

② 基于匹配的方法
有基于特征和基于区域两种。

  • 基于特征的方法是对目标特征进行定位和跟踪,目标大的运动和亮度具有更好的鲁棒性。
  • 基于区域的方法是对类似的区域进行定位,通过相似区域的位移计算光流。

③ 基于能量的方法(频率)
要获得均匀光流场的准确的速度估计,必须对输入图像进行时空滤波处理,即对时间和空间进行整合。

④ 基于相位的方法
由Fleet和Jepon最先提出,将相位信息用于光流的计算。

⑤ 神经动力学方法
利用神经网络建立的视觉运动感知的神经动力学模型是对生物视觉系统功能与结构较为直接的模拟。

3.2 优缺点对比

方法优点缺点
基于梯度计算简单,结果较好对于变化需“平滑”的要求较高
基于匹配(特征)对目标大的运动和亮度变化具有鲁棒性特征的提取和精准匹配困难,估计亚像素精度的光流困难,计算量大
基于匹配(区域)适用于视频编码光流不稠密,估计亚像素精度的光流困难,计算量大
基于能量运算思路简单光流的时间和空间分辨率被降低,需要可靠结果的计算量大
基于相位相位信息更加可靠,获得的光流场具有更好的鲁棒性时间复杂性高,精度的提高需要消耗大量时间,对图像序列的时间混叠敏感
神经动力学对生物视觉系统的直接模拟方法仍不成熟

4. 稠密光流和稀疏光流

4.1 稠密光流

逐点匹配,计算图像上所有点的偏移量,形成一个稠密的光流场。

4.2 稀疏光流

指定的一组点(最好是具有某种明显的特征,也就是利用上文“基于特征的方法”)进行跟踪。

4.3 优缺点对比

光流类型优点缺点
稠密光流配准的精准度高,效果好由于要计算每个像素点的偏移量,计算量大,时效性差
稀疏光流计算量小需要被跟踪的点具有较为明显的特征

5. 光流法在深度学习中的应用

5.1 FlowNet

FlowNet: Learning Optical Flow with Convolutional Networks
此架构由FlowNetS(Simple) 和FlowNetCorr两种,结构均类似U-Net:
U-Net

5.1.1 FlowNetS编码器

FlowNetS

输入为两相邻帧图像,通道数为6,前3是前一帧图,后3是后一帧图。该架构允许网络自行决定如何处理两个相堆叠的图像。

5.1.2 FlowNetCorr编码器

FlowNetCorr

只接受一帧作为输入,第一阶段CNN的权值共享,从两帧图像中计算出两个特征映射

      f 
     
    
      1 
     
    
   
  
    \mathbf f_1 
   
  
</span><span class="katex-html"><span class="base"><span class="strut" style="height: 0.84444em; vertical-align: -0.15em;"></span><span class="mord"><span class="mord mathbf" style="margin-right: 0.10903em;">f</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 0.301108em;"><span class="" style="top: -2.55em; margin-left: -0.10903em; margin-right: 0.05em;"><span class="pstrut" style="height: 2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 0.15em;"><span class=""></span></span></span></span></span></span></span></span></span></span>和<span class="katex--inline"><span class="katex"><span class="katex-mathml"> 
 
  
   
    
    
      f 
     
    
      2 
     
    
   
  
    \mathbf f_2 
   
  
</span><span class="katex-html"><span class="base"><span class="strut" style="height: 0.84444em; vertical-align: -0.15em;"></span><span class="mord"><span class="mord mathbf" style="margin-right: 0.10903em;">f</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 0.301108em;"><span class="" style="top: -2.55em; margin-left: -0.10903em; margin-right: 0.05em;"><span class="pstrut" style="height: 2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 0.15em;"><span class=""></span></span></span></span></span></span></span></span></span></span>。</p> 

FlowNetCorr与前者最大的区别就是引入了一种叫“相关层”的新技术,相关性的计算是乘法补丁比较(multiplicative patch comparisons),给定两个多通道特征图

      f 
     
    
      1 
     
    
   
     , 
    
    
    
      f 
     
    
      2 
     
    
   
     : 
    
    
    
      R 
     
    
      2 
     
    
   
     → 
    
    
    
      R 
     
    
      c 
     
    
   
  
    \mathbf f_1, \mathbf f_2 : \Bbb R^2 \to \Bbb R^c 
   
  
</span><span class="katex-html"><span class="base"><span class="strut" style="height: 0.88888em; vertical-align: -0.19444em;"></span><span class="mord"><span class="mord mathbf" style="margin-right: 0.10903em;">f</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 0.301108em;"><span class="" style="top: -2.55em; margin-left: -0.10903em; margin-right: 0.05em;"><span class="pstrut" style="height: 2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 0.15em;"><span class=""></span></span></span></span></span></span><span class="mpunct">,</span><span class="mspace" style="margin-right: 0.166667em;"></span><span class="mord"><span class="mord mathbf" style="margin-right: 0.10903em;">f</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 0.301108em;"><span class="" style="top: -2.55em; margin-left: -0.10903em; margin-right: 0.05em;"><span class="pstrut" style="height: 2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 0.15em;"><span class=""></span></span></span></span></span></span><span class="mspace" style="margin-right: 0.277778em;"></span><span class="mrel">:</span><span class="mspace" style="margin-right: 0.277778em;"></span></span><span class="base"><span class="strut" style="height: 0.814108em; vertical-align: 0em;"></span><span class="mord"><span class="mord mathbb">R</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height: 0.814108em;"><span class="" style="top: -3.063em; margin-right: 0.05em;"><span class="pstrut" style="height: 2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span><span class="mspace" style="margin-right: 0.277778em;"></span><span class="mrel">→</span><span class="mspace" style="margin-right: 0.277778em;"></span></span><span class="base"><span class="strut" style="height: 0.68889em; vertical-align: 0em;"></span><span class="mord"><span class="mord mathbb">R</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height: 0.664392em;"><span class="" style="top: -3.063em; margin-right: 0.05em;"><span class="pstrut" style="height: 2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathdefault mtight">c</span></span></span></span></span></span></span></span></span></span></span></span>,其中<span class="katex--inline"><span class="katex"><span class="katex-mathml"> 
 
  
   
   
     w 
    
   
     , 
    
   
     h 
    
   
     , 
    
   
     c 
    
   
  
    w,h,c 
   
  
</span><span class="katex-html"><span class="base"><span class="strut" style="height: 0.88888em; vertical-align: -0.19444em;"></span><span class="mord mathdefault" style="margin-right: 0.02691em;">w</span><span class="mpunct">,</span><span class="mspace" style="margin-right: 0.166667em;"></span><span class="mord mathdefault">h</span><span class="mpunct">,</span><span class="mspace" style="margin-right: 0.166667em;"></span><span class="mord mathdefault">c</span></span></span></span></span>分别表示宽度、高度和通道数,将两个特征映射进行乘法块比较,计算公式为:<span class="katex--display"><span class="katex-display"><span class="katex"><span class="katex-mathml"> 
  
   
    
    
      c 
     
    
      ( 
     
     
     
       x 
      
     
       1 
      
     
    
      , 
     
     
     
       x 
      
     
       2 
      
     
    
      ) 
     
    
      = 
     
     
     
       ∑ 
      
      
      
        o 
       
      
        ∈ 
       
      
        [ 
       
      
        − 
       
      
        k 
       
      
        , 
       
      
        k 
       
      
        ] 
       
      
        × 
       
      
        [ 
       
      
        − 
       
      
        k 
       
      
        , 
       
      
        k 
       
      
        ] 
       
      
     
    
      ⟨ 
     
     
     
       f 
      
     
       1 
      
     
    
      ( 
     
     
     
       x 
      
     
       1 
      
     
    
      + 
     
    
      o 
     
    
      ) 
     
    
      , 
     
     
     
       f 
      
     
       2 
      
     
    
      ( 
     
     
     
       x 
      
     
       2 
      
     
    
      + 
     
    
      o 
     
    
      ) 
     
    
      ⟩ 
     
     
    
      ( 
     
    
      5 
     
    
      ) 
     
    
   
     c(\mathbf x_1, \mathbf x_2) = \sum _{\mathbf o \in [-k,k] \times [-k,k]} \langle \mathbf f_1(\mathbf x_1 +\mathbf o), \mathbf f_2(\mathbf x_2+\mathbf o)\rangle \qquad(5) 
    
   
 </span><span class="katex-html"><span class="base"><span class="strut" style="height: 1em; vertical-align: -0.25em;"></span><span class="mord mathdefault">c</span><span class="mopen">(</span><span class="mord"><span class="mord mathbf">x</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 0.301108em;"><span class="" style="top: -2.55em; margin-left: 0em; margin-right: 0.05em;"><span class="pstrut" style="height: 2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 0.15em;"><span class=""></span></span></span></span></span></span><span class="mpunct">,</span><span class="mspace" style="margin-right: 0.166667em;"></span><span class="mord"><span class="mord mathbf">x</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 0.301108em;"><span class="" style="top: -2.55em; margin-left: 0em; margin-right: 0.05em;"><span class="pstrut" style="height: 2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 0.15em;"><span class=""></span></span></span></span></span></span><span class="mclose">)</span><span class="mspace" style="margin-right: 0.277778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right: 0.277778em;"></span></span><span class="base"><span class="strut" style="height: 2.56601em; vertical-align: -1.51601em;"></span><span class="mop op-limits"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 1.05001em;"><span class="" style="top: -1.80899em; margin-left: 0em;"><span class="pstrut" style="height: 3.05em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathbf mtight">o</span><span class="mrel mtight">∈</span><span class="mopen mtight">[</span><span class="mord mtight">−</span><span class="mord mathdefault mtight" style="margin-right: 0.03148em;">k</span><span class="mpunct mtight">,</span><span class="mord mathdefault mtight" style="margin-right: 0.03148em;">k</span><span class="mclose mtight">]</span><span class="mbin mtight">×</span><span class="mopen mtight">[</span><span class="mord mtight">−</span><span class="mord mathdefault mtight" style="margin-right: 0.03148em;">k</span><span class="mpunct mtight">,</span><span class="mord mathdefault mtight" style="margin-right: 0.03148em;">k</span><span class="mclose mtight">]</span></span></span></span><span class="" style="top: -3.05em;"><span class="pstrut" style="height: 3.05em;"></span><span class=""><span class="mop op-symbol large-op">∑</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 1.51601em;"><span class=""></span></span></span></span></span><span class="mopen">⟨</span><span class="mord"><span class="mord mathbf" style="margin-right: 0.10903em;">f</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 0.301108em;"><span class="" style="top: -2.55em; margin-left: -0.10903em; margin-right: 0.05em;"><span class="pstrut" style="height: 2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 0.15em;"><span class=""></span></span></span></span></span></span><span class="mopen">(</span><span class="mord"><span class="mord mathbf">x</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 0.301108em;"><span class="" style="top: -2.55em; margin-left: 0em; margin-right: 0.05em;"><span class="pstrut" style="height: 2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 0.15em;"><span class=""></span></span></span></span></span></span><span class="mspace" style="margin-right: 0.222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right: 0.222222em;"></span></span><span class="base"><span class="strut" style="height: 1em; vertical-align: -0.25em;"></span><span class="mord mathbf">o</span><span class="mclose">)</span><span class="mpunct">,</span><span class="mspace" style="margin-right: 0.166667em;"></span><span class="mord"><span class="mord mathbf" style="margin-right: 0.10903em;">f</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 0.301108em;"><span class="" style="top: -2.55em; margin-left: -0.10903em; margin-right: 0.05em;"><span class="pstrut" style="height: 2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 0.15em;"><span class=""></span></span></span></span></span></span><span class="mopen">(</span><span class="mord"><span class="mord mathbf">x</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 0.301108em;"><span class="" style="top: -2.55em; margin-left: 0em; margin-right: 0.05em;"><span class="pstrut" style="height: 2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 0.15em;"><span class=""></span></span></span></span></span></span><span class="mspace" style="margin-right: 0.222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right: 0.222222em;"></span></span><span class="base"><span class="strut" style="height: 1em; vertical-align: -0.25em;"></span><span class="mord mathbf">o</span><span class="mclose">)</span><span class="mclose">⟩</span><span class="mspace" style="margin-right: 2em;"></span><span class="mopen">(</span><span class="mord">5</span><span class="mclose">)</span></span></span></span></span></span>方块图尺寸为<span class="katex--inline"><span class="katex"><span class="katex-mathml"> 
 
  
   
   
     K 
    
   
     : 
    
   
     = 
    
   
     2 
    
   
     K 
    
   
     + 
    
   
     1 
    
   
  
    K:=2K+1 
   
  
</span><span class="katex-html"><span class="base"><span class="strut" style="height: 0.68333em; vertical-align: 0em;"></span><span class="mord mathdefault" style="margin-right: 0.07153em;">K</span><span class="mspace" style="margin-right: 0.277778em;"></span><span class="mrel">:</span></span><span class="base"><span class="strut" style="height: 0.36687em; vertical-align: 0em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right: 0.277778em;"></span></span><span class="base"><span class="strut" style="height: 0.76666em; vertical-align: -0.08333em;"></span><span class="mord">2</span><span class="mord mathdefault" style="margin-right: 0.07153em;">K</span><span class="mspace" style="margin-right: 0.222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right: 0.222222em;"></span></span><span class="base"><span class="strut" style="height: 0.64444em; vertical-align: 0em;"></span><span class="mord">1</span></span></span></span></span>,公式<span class="katex--inline"><span class="katex"><span class="katex-mathml"> 
 
  
   
   
     ( 
    
   
     5 
    
   
     ) 
    
   
  
    (5) 
   
  
</span><span class="katex-html"><span class="base"><span class="strut" style="height: 1em; vertical-align: -0.25em;"></span><span class="mopen">(</span><span class="mord">5</span><span class="mclose">)</span></span></span></span></span>的计算实际上就是卷积运算,只不过这里的卷积核是不可训练的,而是用已设定好的权重参数进行卷积运算。</p> 

值得一提的是,两幅特征图并没有做全局关联,而是在局部上进行运算。在特征图匹配完成后,相关结果前向传播到后续卷积层,进一步提取更顶层的特征。

5.1.3 FlowNetS和FlowNetCorr解码器

为了既保留从较粗的特征图中传递的高层信息,又保留较低层的精细局部信息,作者设计了下图:
decoder
编码器输出特征图的分辨率缩小为原始图像的

      1 
     
    
      64 
     
    
   
  
    \frac 1{64} 
   
  
</span><span class="katex-html"><span class="base"><span class="strut" style="height: 1.19011em; vertical-align: -0.345em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 0.845108em;"><span class="" style="top: -2.655em;"><span class="pstrut" style="height: 3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">6</span><span class="mord mtight">4</span></span></span></span><span class="" style="top: -3.23em;"><span class="pstrut" style="height: 3em;"></span><span class="frac-line" style="border-bottom-width: 0.04em;"></span></span><span class="" style="top: -3.394em;"><span class="pstrut" style="height: 3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 0.345em;"><span class=""></span></span></span></span></span><span class="mclose nulldelimiter"></span></span></span></span></span></span>,在解码器中使用可训练的上采样卷积层,每个解码阶段将上一阶段的放大结果和编码器相应层的特征图连接起来,这样有助于网络预测细节。<br> 使用的上采样方法为计算成本较低的<strong>双线性上采样</strong>。</p> 

5.2 RAFT

RAFT: Recurrent All-Pairs Field Transforms for Optical FlowRAFT代码
与FlowNet类似,RAFT架构同样有两种:RAFT和RAFT-S,后者是其轻量级版本。

RAFT由三个主要部分构成:

  1. 一个特征提取器,为每个像素提取出一个特征向量;
  2. 一个相关层,为所有像素对产生一个四维“相关体积”,随后汇集产生一个较低分辨率的“体积”;
  3. 一个基于GRU的循环更新运算器,从“相关体积”中检索数值并迭代更新光流场。

接下来,对这三个部分进行详细介绍。

5.2.1 特征提取

编码特征提取

      g 
     
    
      θ 
     
    
   
  
    g_{\theta} 
   
  
</span><span class="katex-html"><span class="base"><span class="strut" style="height: 0.625em; vertical-align: -0.19444em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right: 0.03588em;">g</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 0.336108em;"><span class="" style="top: -2.55em; margin-left: -0.03588em; margin-right: 0.05em;"><span class="pstrut" style="height: 2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right: 0.02778em;">θ</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 0.15em;"><span class=""></span></span></span></span></span></span></span></span></span></span>输入类似于FlowNetCorr,也是分别输入两个连续帧图像,从图像中分别提取特征。卷积构架由6个残差层组成(同ResNet)。<br> <img src="https://img-blog.csdnimg.cn/d05a6ee26c0e41ccbbf380ba63f9a684.png" alt="resnet"><br> 另外,作者还引入了一个<font color="red"><strong>上下文网络</strong></font>,上下文网络仅仅从第一张输入图像中提取特征,网络结构<span class="katex--inline"><span class="katex"><span class="katex-mathml"> 
 
  
   
    
    
      h 
     
    
      θ 
     
    
   
  
    h_{\theta} 
   
  
</span><span class="katex-html"><span class="base"><span class="strut" style="height: 0.84444em; vertical-align: -0.15em;"></span><span class="mord"><span class="mord mathdefault">h</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 0.336108em;"><span class="" style="top: -2.55em; margin-left: 0em; margin-right: 0.05em;"><span class="pstrut" style="height: 2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right: 0.02778em;">θ</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 0.15em;"><span class=""></span></span></span></span></span></span></span></span></span></span>和前面的<span class="katex--inline"><span class="katex"><span class="katex-mathml"> 
 
  
   
    
    
      g 
     
    
      θ 
     
    
   
  
    g_{\theta} 
   
  
</span><span class="katex-html"><span class="base"><span class="strut" style="height: 0.625em; vertical-align: -0.19444em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right: 0.03588em;">g</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 0.336108em;"><span class="" style="top: -2.55em; margin-left: -0.03588em; margin-right: 0.05em;"><span class="pstrut" style="height: 2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right: 0.02778em;">θ</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 0.15em;"><span class=""></span></span></span></span></span></span></span></span></span></span>是一样的。</p> 

特征提取模块由编码特征提取

      g 
     
    
      θ 
     
    
   
  
    g_{\theta} 
   
  
</span><span class="katex-html"><span class="base"><span class="strut" style="height: 0.625em; vertical-align: -0.19444em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right: 0.03588em;">g</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 0.336108em;"><span class="" style="top: -2.55em; margin-left: -0.03588em; margin-right: 0.05em;"><span class="pstrut" style="height: 2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right: 0.02778em;">θ</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 0.15em;"><span class=""></span></span></span></span></span></span></span></span></span></span>和上下文网络<span class="katex--inline"><span class="katex"><span class="katex-mathml"> 
 
  
   
    
    
      h 
     
    
      θ 
     
    
   
  
    h_{\theta} 
   
  
</span><span class="katex-html"><span class="base"><span class="strut" style="height: 0.84444em; vertical-align: -0.15em;"></span><span class="mord"><span class="mord mathdefault">h</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 0.336108em;"><span class="" style="top: -2.55em; margin-left: 0em; margin-right: 0.05em;"><span class="pstrut" style="height: 2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right: 0.02778em;">θ</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 0.15em;"><span class=""></span></span></span></span></span></span></span></span></span></span>两部分共同阻证,两者均只执行一次。</p> 

5.2.2 视觉相似性计算

视觉相似性计算的是所有特征图对的内积,从而得到一个名为“相关体积”的四维张量,其中包含了关于大小像素位移的关键信息。
correlation
与FlowNetCorr的相关层不同,此处计算的是两个特征图的全局相关性,没有任何固定大小的窗口,可以用下式表示:

       C 
      
      
      
        i 
       
      
        j 
       
      
        k 
       
      
        l 
       
      
     
    
      = 
     
     
     
       ∑ 
      
     
       d 
      
     
     
      
      
        f 
       
      
        1 
       
      
      
      
        i 
       
      
        j 
       
      
        d 
       
      
     
    
      ⋅ 
     
     
      
      
        f 
       
      
        2 
       
      
      
      
        k 
       
      
        l 
       
      
        d 
       
      
     
     
    
      ( 
     
    
      6 
     
    
      ) 
     
    
   
     \mathrm C_{ijkl} = \sum_d \mathbf {f_1}_{ijd} \cdot \mathbf {f_2}_{kld} \qquad(6) 
    
   
 </span><span class="katex-html"><span class="base"><span class="strut" style="height: 0.969438em; vertical-align: -0.286108em;"></span><span class="mord"><span class="mord mathrm">C</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 0.336108em;"><span class="" style="top: -2.55em; margin-left: 0em; margin-right: 0.05em;"><span class="pstrut" style="height: 2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">i</span><span class="mord mathdefault mtight" style="margin-right: 0.05724em;">j</span><span class="mord mathdefault mtight" style="margin-right: 0.03148em;">k</span><span class="mord mathdefault mtight" style="margin-right: 0.01968em;">l</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 0.286108em;"><span class=""></span></span></span></span></span></span><span class="mspace" style="margin-right: 0.277778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right: 0.277778em;"></span></span><span class="base"><span class="strut" style="height: 2.35212em; vertical-align: -1.30211em;"></span><span class="mop op-limits"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 1.05001em;"><span class="" style="top: -1.84789em; margin-left: 0em;"><span class="pstrut" style="height: 3.05em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathdefault mtight">d</span></span></span><span class="" style="top: -3.05001em;"><span class="pstrut" style="height: 3.05em;"></span><span class=""><span class="mop op-symbol large-op">∑</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 1.30211em;"><span class=""></span></span></span></span></span><span class="mspace" style="margin-right: 0.166667em;"></span><span class="mord"><span class="mord"><span class="mord"><span class="mord mathbf" style="margin-right: 0.10903em;">f</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 0.301108em;"><span class="" style="top: -2.55em; margin-left: -0.10903em; margin-right: 0.05em;"><span class="pstrut" style="height: 2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathbf mtight">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 0.15em;"><span class=""></span></span></span></span></span></span></span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 0.286408em;"><span class="" style="top: -2.5003em; margin-right: 0.05em;"><span class="pstrut" style="height: 2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">i</span><span class="mord mathdefault mtight" style="margin-right: 0.05724em;">j</span><span class="mord mathdefault mtight">d</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 0.335808em;"><span class=""></span></span></span></span></span></span><span class="mspace" style="margin-right: 0.222222em;"></span><span class="mbin">⋅</span><span class="mspace" style="margin-right: 0.222222em;"></span></span><span class="base"><span class="strut" style="height: 1em; vertical-align: -0.25em;"></span><span class="mord"><span class="mord"><span class="mord"><span class="mord mathbf" style="margin-right: 0.10903em;">f</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 0.301108em;"><span class="" style="top: -2.55em; margin-left: -0.10903em; margin-right: 0.05em;"><span class="pstrut" style="height: 2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathbf mtight">2</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 0.15em;"><span class=""></span></span></span></span></span></span></span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 0.286408em;"><span class="" style="top: -2.5003em; margin-right: 0.05em;"><span class="pstrut" style="height: 2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right: 0.03148em;">k</span><span class="mord mathdefault mtight" style="margin-right: 0.01968em;">l</span><span class="mord mathdefault mtight">d</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 0.1997em;"><span class=""></span></span></span></span></span></span><span class="mspace" style="margin-right: 2em;"></span><span class="mopen">(</span><span class="mord">6</span><span class="mclose">)</span></span></span></span></span></span>将四维张量的后两维使用大小分别为<span class="katex--inline"><span class="katex"><span class="katex-mathml"> 
 
  
   
   
     1 
    
   
     , 
    
   
     2 
    
   
     , 
    
   
     4 
    
   
     , 
    
   
     8 
    
   
  
    1,2,4,8 
   
  
</span><span class="katex-html"><span class="base"><span class="strut" style="height: 0.83888em; vertical-align: -0.19444em;"></span><span class="mord">1</span><span class="mpunct">,</span><span class="mspace" style="margin-right: 0.166667em;"></span><span class="mord">2</span><span class="mpunct">,</span><span class="mspace" style="margin-right: 0.166667em;"></span><span class="mord">4</span><span class="mpunct">,</span><span class="mspace" style="margin-right: 0.166667em;"></span><span class="mord">8</span></span></span></span></span>的核进行池化,形成相关金字塔。利用相关金字塔建立多尺度图像相似性特征,<strong>使突变运动更为明显,也同时提供了关于大位移和小位移的信息。</strong></p> 

5.2.3 迭代更新

使用一个门控循环单元(GRU)序列,来结合之前获取的所有数据。
GRU

更新算子从初始值

      f 
     
    
      0 
     
    
   
     = 
    
   
     0 
    
   
  
    \mathbf f_0 = 0 
   
  
</span><span class="katex-html"><span class="base"><span class="strut" style="height: 0.84444em; vertical-align: -0.15em;"></span><span class="mord"><span class="mord mathbf" style="margin-right: 0.10903em;">f</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 0.301108em;"><span class="" style="top: -2.55em; margin-left: -0.10903em; margin-right: 0.05em;"><span class="pstrut" style="height: 2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">0</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 0.15em;"><span class=""></span></span></span></span></span></span><span class="mspace" style="margin-right: 0.277778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right: 0.277778em;"></span></span><span class="base"><span class="strut" style="height: 0.64444em; vertical-align: 0em;"></span><span class="mord">0</span></span></span></span></span>开始估计一连串的光流值<span class="katex--inline"><span class="katex"><span class="katex-mathml"> 
 
  
   
   
     { 
    
    
    
      f 
     
    
      1 
     
    
   
     , 
    
   
     . 
    
   
     . 
    
   
     . 
    
   
     , 
    
    
    
      f 
     
    
      N 
     
    
   
     } 
    
   
  
    \{\mathbf f_1, ..., \mathbf f_N\} 
   
  
</span><span class="katex-html"><span class="base"><span class="strut" style="height: 1em; vertical-align: -0.25em;"></span><span class="mopen">{<!-- --></span><span class="mord"><span class="mord mathbf" style="margin-right: 0.10903em;">f</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 0.301108em;"><span class="" style="top: -2.55em; margin-left: -0.10903em; margin-right: 0.05em;"><span class="pstrut" style="height: 2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 0.15em;"><span class=""></span></span></span></span></span></span><span class="mpunct">,</span><span class="mspace" style="margin-right: 0.166667em;"></span><span class="mord">.</span><span class="mord">.</span><span class="mord">.</span><span class="mpunct">,</span><span class="mspace" style="margin-right: 0.166667em;"></span><span class="mord"><span class="mord mathbf" style="margin-right: 0.10903em;">f</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 0.328331em;"><span class="" style="top: -2.55em; margin-left: -0.10903em; margin-right: 0.05em;"><span class="pstrut" style="height: 2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathdefault mtight" style="margin-right: 0.10903em;">N</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 0.15em;"><span class=""></span></span></span></span></span></span><span class="mclose">}</span></span></span></span></span>。每次迭代产生一个更新方向<span class="katex--inline"><span class="katex"><span class="katex-mathml"> 
 
  
   
   
     Δ 
    
   
     f 
    
   
  
    \Delta \mathbf f 
   
  
</span><span class="katex-html"><span class="base"><span class="strut" style="height: 0.69444em; vertical-align: 0em;"></span><span class="mord">Δ</span><span class="mord mathbf" style="margin-right: 0.10903em;">f</span></span></span></span></span>,并应用于当前估计值:<span class="katex--inline"><span class="katex"><span class="katex-mathml"> 
 
  
   
    
    
      f 
     
     
     
       k 
      
     
       + 
      
     
       1 
      
     
    
   
     = 
    
   
     Δ 
    
   
     f 
    
   
     + 
    
    
    
      f 
     
     
     
       k 
      
     
       + 
      
     
       1 
      
     
    
   
  
    \mathbf f_{k+1}=\Delta \mathbf f+\mathbf f_{k+1} 
   
  
</span><span class="katex-html"><span class="base"><span class="strut" style="height: 0.902771em; vertical-align: -0.208331em;"></span><span class="mord"><span class="mord mathbf" style="margin-right: 0.10903em;">f</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 0.336108em;"><span class="" style="top: -2.55em; margin-left: -0.10903em; margin-right: 0.05em;"><span class="pstrut" style="height: 2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right: 0.03148em;">k</span><span class="mbin mtight">+</span><span class="mord mtight">1</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 0.208331em;"><span class=""></span></span></span></span></span></span><span class="mspace" style="margin-right: 0.277778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right: 0.277778em;"></span></span><span class="base"><span class="strut" style="height: 0.77777em; vertical-align: -0.08333em;"></span><span class="mord">Δ</span><span class="mord mathbf" style="margin-right: 0.10903em;">f</span><span class="mspace" style="margin-right: 0.222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right: 0.222222em;"></span></span><span class="base"><span class="strut" style="height: 0.902771em; vertical-align: -0.208331em;"></span><span class="mord"><span class="mord mathbf" style="margin-right: 0.10903em;">f</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 0.336108em;"><span class="" style="top: -2.55em; margin-left: -0.10903em; margin-right: 0.05em;"><span class="pstrut" style="height: 2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right: 0.03148em;">k</span><span class="mbin mtight">+</span><span class="mord mtight">1</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 0.208331em;"><span class=""></span></span></span></span></span></span></span></span></span></span>。</p> 

5.3 RAFT和RAFT-S的区别

RAFT
在RAFT-S中用瓶颈残差单元(bottleneck residual units) 取代残差单元;RAFT使用两个GRU更新块,大小分别为

     1 
    
   
     × 
    
   
     5 
    
   
  
    1 \times 5 
   
  
</span><span class="katex-html"><span class="base"><span class="strut" style="height: 0.72777em; vertical-align: -0.08333em;"></span><span class="mord">1</span><span class="mspace" style="margin-right: 0.222222em;"></span><span class="mbin">×</span><span class="mspace" style="margin-right: 0.222222em;"></span></span><span class="base"><span class="strut" style="height: 0.64444em; vertical-align: 0em;"></span><span class="mord">5</span></span></span></span></span>和<span class="katex--inline"><span class="katex"><span class="katex-mathml"> 
 
  
   
   
     5 
    
   
     × 
    
   
     1 
    
   
  
    5 \times 1 
   
  
</span><span class="katex-html"><span class="base"><span class="strut" style="height: 0.72777em; vertical-align: -0.08333em;"></span><span class="mord">5</span><span class="mspace" style="margin-right: 0.222222em;"></span><span class="mbin">×</span><span class="mspace" style="margin-right: 0.222222em;"></span></span><span class="base"><span class="strut" style="height: 0.64444em; vertical-align: 0em;"></span><span class="mord">1</span></span></span></span></span>,RAFT-S只使用一个GRU更新块,大小为<span class="katex--inline"><span class="katex"><span class="katex-mathml"> 
 
  
   
   
     3 
    
   
     × 
    
   
     3 
    
   
  
    3 \times 3 
   
  
</span><span class="katex-html"><span class="base"><span class="strut" style="height: 0.72777em; vertical-align: -0.08333em;"></span><span class="mord">3</span><span class="mspace" style="margin-right: 0.222222em;"></span><span class="mbin">×</span><span class="mspace" style="margin-right: 0.222222em;"></span></span><span class="base"><span class="strut" style="height: 0.64444em; vertical-align: 0em;"></span><span class="mord">3</span></span></span></span></span>。<br> 图中可以看到两者的运算量还是有比较大的区别。</p> 

参考博客:

计算机视觉–光流法(optical flow)简介

OpenCV进阶(2)OpenCV中的光流

RAFT:使用深度学习的光流估计

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值