動画：Adobe Photoshop CS5の新機能はもはやえげつないレベル… | ◆めっつぉ：スクエニ&ガジェットニュース としてAdobe Photoshop CS5 の新機能が紹介され話題になっている。







概要を知るには動画で見るのが手っ取り早いが、本エントリではSIGGRAPH2009で発表された元論文*1を参照して、その詳細を紹介したい。

本エントリで紹介する画像は全て元論文からの引用であり、高解像度画像にリンクしている。「失業者が出るレベル」とコメントされているが、高解像度画像によりそのクオリティを確認してもらいたい。

アルゴリズムの概要 画像のアスペクト比を変えるretargeting（構図変換）、不要な部分を削除し埋め合わせる画像補完、画像の一部を掴んで自由に再配置するreshuffling（画像再配置）などの画像処理においては、インタラクションが不可欠である。しかし、対象の構造を保ったまま画像の変形を行うことは計算量が大きく、高速な処理が難しいという課題があった。 ボトルネックとなっていたのは、画像内から最も類似した画像パッチ（小さな画像片）を発見する近隣探索処理である。ある部分を補完するには、類似した他の部分から画像パッチを引っ張ってきて埋める処理を行うが、PatchMatchアルゴリズムではこの検索を高速に行うことができる。自然画像は局所的に類似領域が近接する性質があり、この性質を上手く使えば、検索空間を小さくすることができるのである。



その検索は3段階のフェイズで行われる。画像Aと画像Bがあり、画像A中のパッチに近似したパッチを画像Bから発見する場合を考える。 初期化 (Initialization)：まず各パッチは対応するパッチをランダムに与えられる（赤・青・緑）。

伝搬 (Propagation)：青いパッチは、上方の緑、左方の赤の近傍をチェックし、適合度がより高まるか確認する。

検索 (Search)：赤の方が適合度が高い場合、その近傍に青に対応する領域がある事が期待されるので、近傍を検索し適合度が高い点を見つける。 このようにして自然画像の特性を利用して、連鎖的に適合度の高い点を見つけることができる。 このようにして自然画像の特性を利用して、連鎖的に適合度の高い点を見つけることができる。 次の図は提案手法における伝搬例を示している。一番左の2枚が元画像である。そして上列の右側3枚は、左下の元画像から取得した、右上画像の各要素の近似パッチ画像を用いて合成したものである。下列の右側3枚は、パッチの対応関係を可視化したものである。近似画像パッチの検索スキャンは水平ラインに沿って行われているが、第1回目のパスにおいても良い近似が得られていることが分かる。5回スキャンを繰り返すとほぼ変化が収束し、小さなオレンジ色の花が良く一致していることが分かる（拡大画像を参照すること）。



この検索において、解像度にかかわらず従来手法*2と比較して20倍から100倍の高速化、1/20以下のメモリ使用量に抑えられている。この検索の効率化が、次に述べる魔法のような画像処理をインタラクティブに実現する鍵となったのだ。

解像度(Megapixels) 処理時間(秒) 使用メモリ(MB) 本手法 kd-tree 本手法 kd-tree 0.1 0.68 15.2 1.7 33.9 0.2 1.54 37.2 3.4 68.9 0.35 2.65 87.7 5.6 118.3