
PatchMatch は、画像内の小さな正方形領域 (パッチ) 間の対応関係(または一致)を素早く見つけるために使用されるアルゴリズムです。画像編集において、画像のオブジェクトの並べ替えや削除、トリミングや目立った引き伸ばしをせずに縦横比を変更するなど、さまざまな用途があります。PatchMatch は、2011 年にプリンストン大学の研究者によって発表された論文で初めて紹介されました。[ 1 ]
このアルゴリズムの目的は、最近傍フィールド(NNF)を関数として定義することにより、パッチの対応関係を見つけることです。画像A内のパッチ(パッチ中心の位置)のすべての可能な一致に対するオフセットの数と、2つのパッチ間の距離関数。したがって、特定のパッチ座標に対して画像内およびそれに対応する最近傍画像内、単にしかし、画像内のすべての点を検索すると作業が難しすぎるため、計算速度を上げるために、以下のアルゴリズムをランダム化アプローチで実行します。このアルゴリズムには、主に 3 つのコンポーネントがあります。最初に、最近傍フィールドにランダムなオフセットまたは事前情報のいずれかを書き込みます。次に、NNF に対して反復更新プロセスを適用し、良好なパッチオフセットを隣接ピクセルに伝播し、その後、これまでに見つかった最良のオフセットの近傍でランダム検索を実行します。これら 3 つのコンポーネントとは別に、このアルゴリズムは、より良い結果を得るために、画像ピラミッドを構築することによって粗密アプローチも使用します。
ランダムオフセットで初期化する場合、画像の全範囲にわたって独立した均一サンプルを使用します。このアルゴリズムは、ピラミッドの前のレベルの初期推定値を使用することを避けています。これは、アルゴリズムが局所的最小値に陥るのを回避できるためです。
初期化後、アルゴリズムは、反復処理では、オフセットをスキャン順(左から右、上から下)に調べ、それぞれに伝播とランダム検索が行われます。
私たちは改善しようと努めています既知のオフセットを使用してそしてパッチオフセットが同じであると仮定します。つまり、アルゴリズムは新しい値を取得します。であるなので、もし正しいマッピングを持ち、コヒーレント領域にあるすると、下と右側正しいマッピングで埋められます。あるいは、偶数回の反復では、アルゴリズムは異なる方向を探索し、新しい値を埋めます。。
させて私たちは改善を試みます指数関数的に減少する距離にある候補オフセットのシーケンスをテストすることによって
どこは一様乱数です、は、最大画像サイズに設定される大きなウィンドウ検索半径であり、は固定比率で、多くの場合 1/2 に設定されます。このアルゴリズムの部分では、ランダムなプロセスによって局所最適解から脱出する。
よく用いられる停止基準は、反復回数を4~5回程度に設定することである。反復回数が少なくても、このアルゴリズムはうまく機能する。