Photoshopを凌駕するリアルタイムの動画像切り貼り処理

Photoshop等の画像編集アプリケーションを用いた画像処理において、パッチツールを用いた画像の切り貼りは重要な操作である。パッチツールを用いた切り貼り操作では、貼り付けたパッチ画像は周囲にあわせて自動的に調整され、境界面が目立たないようになる。SIGGRAPH2009において、ヘブライ大学の研究グループが、この切り貼り操作を高速で行う手法を提案している。動画に対してもリアルタイムに切り貼り操作を行う事ができる。まずは動画をご覧頂くのが良いだろう。



本エントリでは論文*1を参照して、本手法の紹介を行う。例によって図表は論文の引用である。


【告知】@LunarModule7でつぶやいています。
興味のあるかたはフォローください。

Mean-Value Seamless Cloning


(a) Source patch(b) Laplace membrane(c) Mean-value membrane
(d) Target image(e) Poisson cloning(f) Mean-value cloning
図1:ポアソンクローニングとMVCクローニング

画像の自然な切り貼りは、ポアソンクローニング(Poisson cloning)と呼ばれる手法で実現される。これは勾配ドメイン手法(gradient domain techniques)の一つの応用で、ソース画像(貼り付けるパッチ画像:図1a)の内部の勾配と、ターゲット画像(貼り付け先画像:図1d)から決まるディリクレ境界条件(Dirichlet boundary conditions)から構成されるポアソン方程式(Poisson equation)を解く事によって実現される。

このポアソン方程式は、ソース画像とターゲット画像の境界に沿った差に設定されるディリクレ境界条件をもつラプラス方程式を解く事と等価である事が分かっているが*2、概念的には、ポアソンクローニングは、ソース画像とターゲット画像の間を自然に繋ぐ補間膜(図1b)を構築することになる。この薄皮のおかげでパッチの境目が目立たなるのだ(図1e)。

ポアソンクローニングの課題はポアソン方程式を解く処理に時間がかかる点で、多くの高速処理手法や、GPUを用いた解法などが提案されているが、ヘブライ大学の研究グループが提案した座標ベースのMVCクローニングは、ポアソン方程式を解く代わりにMean Value Coordinates(MVC)*3を利用して、直接補間膜を生成するものだ。厳密な解ではないが、生成される補間膜(図1c)は厳密解を用いたものとほとんど同じで、処理結果(図1f)も充分な精度が得られている。

さらに画像の連続性を利用して計算する点の数を削減し、間を線形補完する事で計算量を抑制、実時間でのクローニング処理を実現としている。次の表はAthlon 2.5GHz及びNVIDIA GeForce 9600M GTの実装におけるMVCクローニング処理時間を示したものだ。133Kピクセルの画像処理に0.3秒、GPUでは毎秒134フレームの生成が行えている。リアルタイムの高速処理が可能で、実装が容易、省メモリで動作する上、GPUを用いた並列計算処理に向いているため、早晩商用のアプリケーションにも実装されると期待できる。


表1:MVCクローニングの処理パフォーマンス
#cloned pixels#boundary pixels#mesh verticescoords/vertexprep. time(s)cloning rate
CPUGPU
51,8201,1132,06338.630.15199.0163
133,4081,5622,96344.210.3092.1134
465,1342,6835,32345.500.6322.682
1,076,5724,1458,24144.591.169.744
4,248,4618,13316,36957.713.632.726
12,328,28914,00528,24058.688.990.94..

処理結果

図2にポアソンクローニングとMVCクローニングを用いて写真中から兎を消す例を示す。左上が元画像で、左下が張り込むソースパッチである。右下に生成される補間膜をカラーマップを用いて視覚化表示している。補間膜には若干の違いは見られるが、右上に示す結果画像にはほとんど違いは見られない。


図2:オブジェクトの削除

図3はMVCクローニングの誤差が大きくなる画像における処理結果を示している。左が入力画像、中央がポアソンクローニング結果、右がMVCクローニング結果である。Ωの形状が見えなくなると完璧で、上列の例ではポアソンクローニングでは完全に消す事に成功しているが、MVCクローニングでは薄くΩが残ってしまっている。しかし、下列のより一般的なシナリオにおいてはほとんど違いは見られない。


図3:凹部分補間における比較

図4はMVCクローニングの適用例を示している。Photoshop CS4ではパッチツールが用意されているが、リアルタイムで処理を行えないため、試行錯誤が行いにくいという問題があった。MVCクローニングを利用すれば、瞬時に処理結果をプレビュー可能であり処理効率が上がる事が期待できる(動画2:18-3:00)。また、拡大縮小回転などの操作を行ったとしても、結果が損なわれる事は無く、自然な画像処理がストレス無く行える。図の左が元画像で、図右が画像の一部をコピーしてサイズ変更、回転して貼り付けたものだ。こうした処理がリアルタイムに行える恩恵は大きい(動画3:00-3:25)。


図4:MVCクローニング例

そして何よりも効果的だと思われるのが、動画像のリアルタイムな編集である(図5・動画5:00-5:45)。これは動画を見た方が分かりやすいと思うが、鳥や岩のインタラクティブな編集操作が実現している。クローニング処理により、境界は目立たないように補完されるため、見た目にも自然な動画コラージュがリアルタイムで行えるわけだ。


図5:シームレスな動画クローニング

他にも画像をシームレスにつなぎ合わせてパノラマ画像を生成するMVC stitching(動画4:47-5:00)や、trimapを指定する事でマット画像を生成し透明度調整を行う事で全く異なる領域に自然な貼り付けを行うMatted cloning(動画4:10-4:47)などが提案されているので、気になる方は元論文を参照されたい。

まとめ

MVCクローニングは万能ではなく、ポアソン方程式が利用される全てのシナリオにおいて利用可能な訳ではない。たとえば、勾配ドメインHDR圧縮や、混合勾配を伴うポアソンクローニングなどには適用ができない。また、ポアソンクローニングもMVCクローニングも、ソース画像とターゲット画像のテクスチャが充分似通っているような領域でないとうまく働かない。これは動画のクローニングにおいて顕著で、空間的にも時間的にもテクスチャが充分適合していないと満足な結果が得られない。

それでも、実時間のクローニング処理が実現する事によって画像処理における処理効率の改善が期待できる。Adobe Photoshopを初めとするアプリケーションにも同様の技術が応用される事だろう。また、動画像のリアルタイム編集処理が可能ということは、視覚情報を自然に改変できる可能性を示している。HMDを用いたAugmented Realityにおいて、視覚から不要なものを除外したり、置き換えたりする事が可能になるかも知れない。

誰ですか、配偶者の顔をお気に入りのアイドルに変えようなんて言っている人は?

関連エントリ

*1:Zeev Farbman, Gil Hoffer, Yaron Lipman, Daniel Cohen-Or and Dani Lischinski: "Coordinates for Instant Image Cloning", ACM Transaction on Graphics (Proceedings of SIGGRAPH) 2009

*2:PEREZ, P., GANGNET, M., AND BLAKE, A. 2003. Poisson image editing. ACM Trans. Graph. 22, 3, 313.318.

*3:FLOATER, M. S. 2003. Mean value coordinates. Comput. Aided Geom. Des. 20, 1, 19.27.