2.5. 影像校正演算法
2.5.2. Inverse Compositional 演算法
Inverse Compositional (IC) Algorithm [22][26]的是為了要避免讓所有要計算 的過程均與形變參數 p 相依,這裡一開始先介紹[22]及[26]中所提出的方法。
這裡將式(2-28)改成:
∑ _; f % a; ∆fb (2-35)
; f ; ∆fN; f (2-36) 我們將a; ∆f做泰勒展開可得:
a; ∆f a; 0 a$ ∆f O∆f (2-37)
31
其中a為樣板影像的影像梯度(gradient)值,
$為 W 的 Jacobian,a$為 Steepest descent images;忽略高次項,將此代入式(2-35)中可得:
∑ R; f % a; 0 % a$∆fU (2-38) 對∆f微分求極值可得:
2 ∑ R a$UjR; f % a; 0 % a$∆fU 0 (2-39)
∑ R a$UjRa$U ∆f ∑ R a$Uj_; f % a; 0b (2-40) 其中令a; 0 a可求出∆f:
∆f N∑ R a$Uj_; f % ab (2-41) 其中 H 為 Hessian matrix:
H ∑ R a$UjRa$U (2-42) 在 Inverse Compositional 演算法與 Lucas-Kanade 演算法的差異中,
Lucas-Kanade 演算法要計算出輸入影像的梯度值(gradient),接著再計算出 Warping Jacobian 並求出 Steepest descent image 以及 Hessian matrix,在每次迭代 過程中都需要重複計算這一個部分;而在 Inverse Compositional 演算法當中,是 使用樣版影像a去計算出影像的梯度值,由於樣版影像是已知的,因此之後的 Warping Jacobian 以及 Steepest descent image 和 Hessian matrix 都是已知的;IC 演算法只要先在迭代前計算出樣版影像的梯度值,Warping Jacobian 以及 Steepest descent image 和 Hessian matrix 都可以預先求出,而迭代時就可以省去這一部分 的計算量,因此迭代的速度可以提升許多,並且在迭代的結果也不會降低它的成 功率,因此們論文選擇此改良方法來做我們的影像校正方法。
Inverse Compositional 演算法的迭代過程可分前處理 4 個步驟(I~IV)以及迭代 5 個步驟((1)~(5))[22],為了方便區分前處理以及迭代的步驟,前處理 4 個步驟以 (I~IV)表示,而迭代 5 個步驟以((1)~(5))表示,其整體流程圖如圖 2-18 所示:
32
前處理:
I. 根據樣板影像a計算出梯度影像a II. 求出; 0的 Jacobian $
III. 計算出 steepest descent images a$
IV. 由(2-42)計算出 Hessian matrix 迭代:
在這裡使用的 Inverse Compositional 演算法由於把部分要計算的東西拿到了 前處理的步驟中,所以在迭代的過程中較 Lucas-Kanade 演算法少了四項計算,
因此可以減少不少的運算量。
接下來介紹將 Inverse Compositional 演算法套用在 AAM 的方法[22],由於形 變的部分已於 2.4.2 介紹過,因此這裡將要介紹 Warp Jacobian[27],假定
; f ; f, ; fj,則:
33
圖 2-18、Inverse Compositional 演算法流程
其中表示為形變位置; f在 x 軸的座標,f是代表形變參數,利用 chain rule 可以將
$ 表示為:
$ ∑ RPJcN t$ t t $ tU (2-44) 同樣的將
$ 表示為:
$ ∑ RPJcN t $ t t $ tU (2-45) 我們改寫(2-19)式可得:
a, a 1 % } % ~Fa, Faj }`a, `aj ~Ea, Eaj
34
35 將其帶入(2-50)(2-51)可以計算出 Warping Jacobian:
$ 1 % } % ~As }A ~A (2-56)
$ 1 % } % ~As }A ~A (2-57) 在 Inverse Compositional 演算法中我們要更新形變參數時,我們是由反向
; ∆f來計算出; ∆fN,其中:
36
之前所描述的 Inverse Compositional 演算法沒有考慮到 independent AAM 裡 的紋理變化,在這裡使用了相同的演算法加入紋理的變化模式[22]:
37
我們就由轉化上式以滿足 Inverse Compositional 演算法的定義,因此我們要 轉化為求最小化[26]: 部分對於形狀參數 p 的最小值均為 0,因此採用 Inverse Compositional 演算法先 求出前半部分的形變參數 p,接著再將 p 當作常數,而求出後半部的紋理參數λi, 由於 Ai是單範正交的(orthonormal),因此紋理參數可表示為[22]:
λi ∑´Aix · IWx; p % Aax (2-65) 其 Inverse Compositional 演算法整體流程如下[22],為了方便區分前處理以 及迭代的步驟,前處理 4 個步驟以(I~IV)表示,而迭代 5 個步驟以((1)~(5))表示:
前處理:
I. 根據樣板影像a計算出梯度影像a II. 求出; 0的 Jacobian $
III. 由(2-66)計算出改變的 steepest descent images SD(x) IV. 由 III.的 SD(x)計算出 Hessian matrix = ∑ C jC
迭代:
(1). 根據; f形變影像,計算出形變影像; f
38
(2). 計算出誤差影像(Error Image) ; f % a
(3). 計算∑ SDx o_IWx; p % Aaxb
(4). 由計算出∆f N∑ SDx j_; f % ab (5). 更新參數; f ; f ; ∆fN
迭代結束:
由(2-65)計算出紋理變化參數λi。