Experience the CMOS Annealing Machine

画像のノイズリダクション

このチュートリアルは、デモアプリ「画像のノイズリダクション」でアニーリングマシンが行っている処理を解説したものです。

概要

ノイズがのっている白黒の画像から元の画像を推定する問題です。

一般的に、以下の条件が成り立つと仮定してアニーリングマシンに載せられる形で表現します。

  • (a) (少量のノイズであれば)入力画像と出力画像の画素値は概ね同じ
  • (b) ノイズリダクション後の出力画像は、隣り合う画素値が同じことが多い
ノイズがのった画像(入力)
ノイズを減少させた画像(出力)

コスト関数の作成

この問題では画素の色が黒または白の2値なので、これをCMOSアニーリングマシンのスピンの値-1 or +1に対応させます。
(a)より、ここで入力画像のi番目の画素の値を $y_i$ とし、ノイズリダクション後の画像のi番目の画素の値を $s_i$ とします。
入力画像と出力画像の画素値が概ね同じとするには、以下のようなコスト関数を使います。

$$ -\sum_{i \in V} y_i s_i $$

ここで$V$は画素の集合を表します。入力画像と出力画像でi番目の画素値が同じとき $y_i s_i$ は+1となり、画素値が異なるとき-1となるので、画素値が同じ際にコストが小さくなるように $-$ の符号をつけたものをすべての画素に対して足し合わせる形です。

ノイズリダクション後の出力画像は、隣り合う画素値が同じことが多い、という条件も同様に考えると以下のようなコスト関数となります。

$$ -\sum_{(i,j) \in E} s_i s_j $$

ここで$E$は隣接画素ペアの集合を表します。これらを足し合わせると、以下の最終的なコスト関数が得られます。

$$ -\sum_{(i,j) \in E} s_i s_j-\eta\sum_{i \in V} y_i s_i $$

二つ目の項の前に $\eta(>0)$ というパラメータを導入しています。これは2つの条件の強さを調整するためのものです。
$\eta$ が0の場合、コスト関数は第1項だけの形になります。この場合、出力画像の画素値がすべて同じときにコスト最小となります。逆に、$\eta$ を非常に大きくすると、実質的に第2項だけの形になるので、入力画像と出力画像がまったく同じ場合にコスト最小となります。
本サイトのデモでは $\eta=2 or 3$ としています。

ACWスキルロードマップ

未読

後で学びなおすときは未読にスライドしておくことができます。

シェアする/フィードバックする