基本介紹
- 中文名:稀疏光流
- 外文名:Sparse Optical Flow
- 領域:計算機視覺
- 套用:圖像配準,目標跟蹤
定義,目標函式,標準解法,逆向解法,
定義
稀疏光流是一類專門針對圖像上稀疏的點進行圖像配準的方法,也就是在參考圖上給定若干個點(一般為角點),找到其在當前圖像中的對應點。用數學的語言描述就是,給定參考圖T和當前圖I,計算參考圖T中的一個角點
在當前圖I中對應的點
,其中
就是角點的偏移量。如果以當P點和Q點為中心的兩個小矩形視窗內的所有點都相同,那么就表示這兩個點是匹配的。
![](/img/d/951/d7ce55e6e0d08411576b7e558d8e.jpg)
![](/img/6/704/2c8b758ea389e124ccee65b8bd9f.jpg)
![](/img/9/320/2f691097c4a5f3e65a65fd0f4f14.jpg)
目標函式
在實際的圖像數據中,由於有噪聲的存在,兩個對應點所在的小矩形視窗內的像素點不可能完全相同,因此可以考慮取其差異最小的一個位置為匹配點,也就求解如下目標函式:
![](/img/8/f13/21c7ab021d0c3df839195df51768.jpg)
其中
是一個以
為中心,
為半徑的矩形視窗。
![](/img/b/d16/316b934831de0020592297e415dd.jpg)
![](/img/b/085/e746ddb2c684a32ec52ce6a13ec7.jpg)
![](/img/8/44e/6b1c039d6940417a718c7386cecf.jpg)
標準解法
上式可以用非線性最小二乘法進行求解,為了加速同時也為了計算大偏移量,一般使用圖像金字塔的方法來求解。其基本思想就是在小圖上先算出一個初始值,然後將這個初始值乘2作為下一層的初始值,這樣每層只需要疊代很少的步驟就可以收斂。具體計算每一層使用的算法是高斯牛頓法,具體做法如下:
將後一項進行一階Taylor展開得到:
![](/img/3/482/f00bdad1a63cd8c3af6d323a6a3f.jpg)
![](/img/1/c33/dcc12b9c0a9835c77cb88093939b.jpg)
![](/img/e/6e2/146baf4cfd089b154fd8d60b812a.jpg)
將上式帶入目標函式可以得到:
![](/img/b/a6d/6e5a78b74fac93a7bebddc5dc7f4.jpg)
![](/img/a/6fa/40759c946189b216eba2589f7961.jpg)
其中:![](/img/6/230/199abd72ea8fdc0543486bebec5a.jpg)
![](/img/6/230/199abd72ea8fdc0543486bebec5a.jpg)
對
求偏導數可以得到:
![](/img/7/470/bc9f9bc594780d72a7f0ec1390b9.jpg)
![](/img/2/7be/43052eba4320ebc21cea5634e2dd.jpg)
![](/img/1/378/6e90f983eed0ffc8519eceae010b.jpg)
為了書寫方便,重新定義以下符號:
![](/img/a/b41/dbf9871baef2cab7ff65b774a362.jpg)
![](/img/5/8ff/3f1152f09f7630d6718841ded31c.jpg)
![](/img/2/ec2/2051576da0e504968c1bcde71d6c.jpg)
![](/img/4/bcc/cb5c7a5e316722a05cc412d3711c.jpg)
![](/img/0/893/d0e4601b9cb3ee687f47d214fd56.jpg)
由此不難得到二元一次方程組:
![](/img/8/e59/8b7a2e48075c84b33017c014d173.jpg)
![](/img/8/f4a/e55ba6a60fbaa98dfe91995378b0.jpg)
解出
即可得到偏移量。
![](/img/7/470/bc9f9bc594780d72a7f0ec1390b9.jpg)
![](/img/9/778/d14261c896a0690358558f1724f0.jpg)
![](/img/3/a93/7bf3e82a121a500445469e1725b9.jpg)
根據柯西不等式,
恆成立,只有當兩向量平行時才會取到等號,此時對應的圖像為純色或者只有單一的直線邊緣,因此一般要求特徵點為角點,這樣可以保證分母恆大於0.
![](/img/e/c69/55fb78c5926c3ecce7510244c2dd.jpg)
逆向解法
以上的解法為Lucas–Kanade光流(簡稱LK光流)的標準流程,由於在第一步做Taylor展開的時候,針對的是當前圖像
,而待求變數
也在
中,因此也被稱為正向解法。這種求解方法比較直接,但是在疊代計算的時候每次都需要重新對梯度圖像進行插值計算,算法性能較慢。
![](/img/0/81b/87987efe8166f354d30958478e6d.jpg)
![](/img/3/e8b/d6b290e7cc8f9b648c3603368775.jpg)
![](/img/0/81b/87987efe8166f354d30958478e6d.jpg)
針對上面的問題,Baker提出了一種逆向混合算法,其基本思想就是將增長變數與疊代變數分別置於兩個函式中,這樣對增長變數做Taylor近似的時候,其所在的函式不含有疊代變數,因此疊代的過程中不需要重新插值計算梯度圖像。
考察目標函式中的誤差函式:
![](/img/8/ea1/2c22d3b514bc8988b9f7c2b97916.jpg)
上式中
為疊代變數,
為增長變數,用
進行變數替換可以得到:
,由於每次的增長量
比較小,所以可以近似認為變換後的求和區間沒有變化,也就是
,因此可以將原始目標函式寫為如下形式:
![](/img/3/19e/d8b3e3b4172284c57bcddac3b61e.jpg)
![](/img/4/bfc/6a8521a2db83d8aae1af8dc79144.jpg)
![](/img/7/73e/9bf7f53685fb479205cc211e1cd0.jpg)
![](/img/3/63f/a827dee6263332fd804fa608de33.jpg)
![](/img/b/f52/a82480a1dd55dc32778fd6c4a80d.jpg)
![](/img/e/018/a4f13570dd4f4d41fc1eda4c63f7.jpg)
![](/img/8/0fb/27186d426681110755b9af2e7efb.jpg)
採用高斯牛頓法可以得到最終的二次形式:
![](/img/c/ffc/db3a06a4e59275652b1650326e09.jpg)
其中:![](/img/8/105/e933cc16ffef9f6ad0edcfc8a88b.jpg)
![](/img/8/105/e933cc16ffef9f6ad0edcfc8a88b.jpg)
對
求偏導數可以得到:
![](/img/7/470/bc9f9bc594780d72a7f0ec1390b9.jpg)
![](/img/7/c50/2ebb56ed4e57d91a4066cb915d4e.jpg)
![](/img/5/d30/bb4a3189498f0dfa0bc3252a69f0.jpg)
由此可以解出
得到:
![](/img/7/470/bc9f9bc594780d72a7f0ec1390b9.jpg)
![](/img/8/a8f/22a7eaa1f0deafe7a401649a4f58.jpg)
![](/img/4/b03/94ee553db824d314211adab0693c.jpg)
不難看出,上面的公式與標準解法的公式非常相似,僅僅是把
換成了
,但還有一個隱含的不同點,那就是計算平均值的時候,標準算法是對
的求和,這樣每次疊代的時候都需要重新對梯度圖像進行插值計算;而逆向算法是對
的求和,與
無關,因此在疊代的過程中除了含有
的項需要重新計算,其他項都是不變的,這樣可以大大的減少計算量。
![](/img/4/c9e/4f65ac75371d2f697c8fc46eaa90.jpg)
![](/img/e/e42/1f426bf085b07a34b01dfad985ef.jpg)
![](/img/9/d31/2fb49fae02be7945fbe331a11d2d.jpg)
![](/img/c/ebc/91d60dd8655a37f6952f1e250ae5.jpg)
![](/img/c/743/c7492750f2f1e6111cb96caa1e68.jpg)
![](/img/f/fce/7834018b9eaa10878882ca399622.jpg)