画像処理ブログ

画像処理エンジニアのおっさんが興味あることや調べたことを徒然のままに垂れ流すブログ

LK法の式の導出 一般化

前回の記事では、LK法の概要と、1次元の信号についてのLK法の式の導出を解説しました。

m-yoshi-1700.hatenablog.com

この記事では、一般化したLK法の式を導出します。

この技術についての投稿は、一つの索引用の記事にまとめられています。 全体を俯瞰する場合はそちらを御覧ください。

m-yoshi-1700.hatenablog.com

最終的な目的は、次のLK法の式を導出することです。

LK法の定義

画像を与える関数をF(x)とする、その関数をhだけ動かしたものをG(x)とする。 hの初期値をh0と置いた時、hは以下の式で求められる。

{ \displaystyle
\def\vector#1{\mbox{\boldmath $#1$}}
\textbf{h} \approx
\left[ \sum_{\textbf{x}} ( \frac {\delta F} {\delta \textbf{x}} )^{\mathrm{T}}
\left[ G(\textbf{x}) - F(\textbf{x}) \right]
\right]
\left[ \sum_{\textbf{x}} ( \frac {\delta F} {\delta \textbf{x}} )^{\mathrm{T}} ( \frac {\delta F} {\delta \textbf{x}} ) \right] ^{-1}
}

一般化

前回の記事で導出した式は、1次元の信号について考えたもので、一般化されているわけではありません。

一般化が必要な理由は以下になります。

  • 2次元の導関数は1次元とは定義が違う。
  • F'(x)=0となる点でhが定義されていない。(F'(x)はhの近似式の分母になっています。)

まず、式(1)を次のように変形します。

{ \displaystyle
F'(\textbf{x}) \approx
\frac {F(x + h) - F(x)} {h}
= \frac {G(x) - F(x)} {h}
\tag{1}
}

{ \displaystyle
F(x + h) \approx F(x) + hF'(x)
\tag{8}
}

※ 式番号は論文と対応させています。

ここで、L2 normを最小化することを考えます。

{ \displaystyle
E = \sum_{x} \left[ F(x + h) - G(x) \right]^{2}
}

誤差を最小化するhを以下の様に置きます。

{ \displaystyle
0 = \frac {\delta E} {\delta h}\\
   \approx \frac {\delta} {\delta h} \sum_{x} \left[ F(x) + hF'(x) - G(x) \right]^{2}\\
   = \sum_{x} 2F'(x) \left[ F(x) + hF'(x) - G(x) \right]
}

この式を変形し、

{ \displaystyle
h \approx \frac {\sum_{x} F'(x) \left[ G(x) - F(x) \right]} {\sum_{x} F'(x)^{2}}
\tag{9}
}

この式は基本的には前の記事の式(6)と同じ意味で、w(x) = F'(x)2と置いたものになります。

また、この式は、前の式の式(3)と比較して、F'(x) = 0となる箇所があった場合にも対応しています。

式(3)の場合は、どこか1箇所でもF'(x)=0となる箇所があると成り立たなくなるのに対し、この式は、全てF'(x) = 0となるxの範囲以外は成立します。

式(9)を用いて、前の式(6)を書き直すと次のようになります。

{ \displaystyle
h_{0} = 0\\
h_{k + 1} = h_{k} +
\left[ \frac {\sum_{x} w(x) F'(x + h_{k})[G(x) - F(x + h_{k})]} {\sum_{x} w(x) F'(x + h_{k})^{2}} \right]
\tag{10}
}

こちらで導出は以上になります。

次回は1次元の信号についてのLK法で、パフォーマンスについて解説します。