勾配画像処理に基づく動画中の流体部分抽出
Extraction of Fluid Dynamic Texture using Gradient-domain Image Processing
岡部誠 †Makoto OKABE† ,安生健一 ‡Ken ANJYO‡†∗ 電気通信大学† 科学技術振興機構さきがけ‡ オー・エル・エム・デジタル

and尾内理紀夫 ∗Rikio ONAI∗†∗ The University of Electro-Communications† JST PRESTO‡ OLM Digital, Inc.

E-mail: †m.o@acm.org, ‡anjyo@olm.co.jp, ∗onai@onailab.com

はじめに

1とで，これでは流体動画の背景の推定は困難だ.
３つ目のアプローチは流体の物理的シミュレーションに映像製作の現場において流体動画データベースは爆発，基づく手法である [5]. 流体動画を Navier-Stokes 微分方程炎，煙等を含むシーンを作るための重要な資源である. 物理式と隠れマルコフモデル (HMM) でモデリングする. この的な流体シミュレーションも有効なツールであるが，専門手法は今までの方法で分離できない煙や炎を上手に分離で家でないと使いこなせないという問題もあるので，流体動きるが，この手法にも３つの制限があり，我々はこれらを画を組み合わせて高画質なシーンを合成する手法は合理的取り除きたい. １つ目は流体動画中の全てのピクセルで背で人気がある. 他方，そのような流体動画素材の多くが特別景が１度はしっかり見える必要があることだ. 現実の流体なスタジオで撮影されている. 例えば，爆発を撮影する際，には濃くて背景が一度も見えない箇所は存在しうる. ２つ後で合成することを考えて単一色の幕を背景とし [1]，更目は前景は単一色のみでなくテクスチャも扱えるものの，に適切なライティングで撮影される必要がある. そのよう時間変化が許されないことだが，ほとんどの流体の色は刻な特別なスタジオの準備は高価だが，一方で YouTube 1 等一刻と変化する. ３つ目の制限は計算時間だ. 流体シミュの動画共有サービスに目を向けると使えそうな流体動画がレーションが原因でフレーム毎に数分の計算時間が掛かる.

数多く存在する. このような流体動画は，しかし，単一色これではフル HD の動画を多く処理したい場合など，現実の幕でなく複雑な背景を持っていることが多く，しばしば，的には使い難い.

そのまま合成に使うことは難しい. そこで，我々は流体を背景から分離してシーン製作に使うことを考える.

他の関連技術としてはセグメンテーションとマット推定の組み合わせがある [7, 8]. 背景差分等のセグメンテーショ

単一の動かないカメラで撮影された動画から流体のみをン手法で２値のマスクをフレーム毎に計算し [9, 10, 11]，そ抽出する問題は ill-pose な問題として良く知られている. これを元に「前景」「背景」「未定」の領域を表現する trimapの問題への既存のアプローチは大きく次の３つがある. １を生成してアルファマットを推定する. この手法は人や動つ目の簡単で便利な方法は Bayesian matting に基づくも物の髪の毛等，不透明な物体の境界部分の半透明な領域にのである [2]. 結果のアルファマットは美しいが，背景が対しては上手く動く. しかし，流体は半透明の領域が多す

既知で，かつ，流体自身は単一色で構成されなければなら

ぎて trimap を作ることが難しく，故にこのアプローチでない. 他に霧に特化した手法 [3] もあるが，我々は背景がアルファマットを生成することは難しい.

未知でも動き，もっと一般的な流体を扱える手法を開発したい.
２つ目のアプローチは動画を半透明な層に分割する技術である. 流体も半透明な物体なのでこのアプローチが使える可能性がある. “layer information exchange” はこの問題を上手く解いていて，透明なガラス越しに見えるものとガラスに映ったものを分離できる [4]. しかし，Ghanem
ら [5] の報告では，この手法では流体動画は分離できない.
理由は大きく２つあり，１つはこの手法は繰り返しのある動きが入力ビデオに現れることを条件にしていることだ.
流体の動きに繰り返しはない. もう１つの理由は，この手法が intrinsic image decomposition [6] に基づいているこ
1 http://www.youtube.com/

図 1: 提案手法の概要.
我々は既存手法よりも仮定が少なく計算量の軽い手法を提案する. 単一の固定カメラで撮影した流体動画を入力す
ると，本手法は背景画像を推定し，前景及びアルファマットを推定する. 背景画像は動きのないピクセルに着目し，それらを全フレームを通して重み付き平均することで得る(図. 1-b). 密度の濃い流体については背景色の推定も行う.の重み付き平均で計算される.
∑Ii (⃗x)Wi (⃗x)B(⃗x) = i∑,x)
i Wi (⃗Wi (⃗x) = e−β|Vi (⃗x)| ,(2)(3)

背景を推定した後は，ユーザがパラメータを手動で操作において Vi は i 番目と i + 1 番目のフレーム間の速度場，しラフな初期アルファマットを作る. それをコンピュータがVi (⃗x) は ⃗x における速度，Wi は重み，β は 40 に設定され受け取り自動的にアルファマットを精製する. コンピューている. 図. 2 に煙の動画における背景推定の過程を示す.

タがアルファマットをイチから完璧に推定することは難しいので，初期アルファマットをユーザに作ってもらい，一方，初期アルファマット上のノイズを手作業で取り除くのは難しいので，そこはコンピュータが担当するという作業分担が本手法のアイデアである.
初期アルファマットは背景差分に基づいて得る (図. 1-c).
煙の領域をラフに得ることはできるものの，背景のレンガ模様が載っている. この模様を取り除いて精製したアルファマット (図. 1-d) を得て，同時に前景画像 (図. 1-e) を推定する. この時，勾配画像処理を用いる. 各フレームについて，
図 2: 背景推定.

横方向，縦方向に勾配画像を得て，煙に無関係な，つまり，背景に強く関係する勾配成分を取り除き，それを積分することでアルファマットを精製する. この勾配成分を取り除く過程が我々の技術的貢献である. 計算時間は 640 × 360 の解像度でフレーム毎に数秒である. アルファマットも既存手法に比べて同程度か，もしくはより高品質な結果が得られている. 得られた前景画像及びアルファマットを用いて緑の背景と合成したのが図. 1-f である.

フレーム Ii を第１行に，対応する速度場 Vi の大きさを示す画像を第２行に，重み Wi の画像を第３行に示す. 直感
的には，速度場の大きさ |Vi (x)| が小さいと重み Wi (x) が高い確率で背景色を与えるという考え方である. 図. 2 の一番右は推定された背景 B と，M をフレーム数とした時の∑M
重みの平均 W avg = i Wi /M である. B にいくらか煙が残っており，その領域で W avg は黒く，つまり小さな値を持つことが分かる.
流体が濃い場所では真の背景色を得ることが難しい. 図. 3

提案手法

2の窓の周辺では煙が非常に濃く (図. 3-a)，煙が推定され流体動画の i 番目のフレームは標準的なアルファブレンディングで表現される.

Ii (⃗x) = Fi (⃗x)αi (⃗x) + B(⃗x)(1 − αi (⃗x)),た背景に多く残っている (図. 3-b の黄色い楕円).

この

煙の色は後々背景差分の計算に悪影響なので取り除きた
い. W avg を用いて流体の濃さを見積もるため，２つのピ(1)において ⃗x はピクセル位置，Ii , Fi , B, αi はフレーム，前景，背景，アルファマットの画像である. 固定カメラを仮定するので，B は単一画像である. 以下，ピクセル値の範囲は 0 から 1(255 ではない) とする.

クセル位置の集合を考える. パラメータ γ を導入し，
Φ={}{}⃗ avg (ϕ)⃗ < γ と Ψ = ψ|γ⃗ < W avg (ψ)⃗ の２つの集ϕ|W合だ.Φ は図. 3-c の黒い領域，Ψ は明るい領域に相当する.
⃗ における煙の色を取り除くため，ϕ⃗ に最も近いピクセルϕ⃗⃗⃗ にコピーす位置 ψ nearest∈ Ψ から色 B(ψ nearest) を B(ϕ)
る. 結果は図. 3-d に示す. 煙の色が消え，図. 3-b よりも良い背景として使える.

2.1

背景推定

背景は動きの少ないピクセルに着目することで推定する.
動きはオプティカルフローで計算し速度場を得る. ここでは OFLib を用いている [12]. このライブラリは GPU を用いており，筆者の環境では 640 × 480 の解像度でフレームあたり 0.1 秒程度の計算速度である. 背景画像 B(x) は次

図 3: 流体密度 W avg を考慮した背景推定.

2.2

初期アルファマットの推定推定した背景 B を使って，Ii と B の差分により初期アる. 積分は制約付き最小二乗法で定式化する.
∑ ∑∑2argminE =(ap − aq − gpq )2 +λp (ap − ainitp ) ,a1 ,...,aN

ルファマット Ainitを計算する. Ii と B の各ピクセルは赤，i緑，青チャンネルから成る３次元ベクトルとし，Ainitのip q∈ν(p)p(5)

各ピクセルは輝度のスカラー値を持つ. 初期アルファマッにおいて，{a1 , ..., aN } は精製されるアルファマットの全はシグモイド関数で次のように計算する.
ト Ainitiピクセル値，p はピクセル位置，ν(p) は横縦方向に p にAinit(⃗x) =i

1
1 + e−g(|Ii (⃗x)−B(⃗x)|−t)

隣接するピクセル位置の集合，gpq は p と q の間の勾配で,(4)図. 5-d と e に相当する. λp は p における制約の重み，ainitpは初期アルファマット Ainitの p における値である. このiにおいて，g と t は曲線の傾きとオフセットを決めるパラ

エネルギー関数の最小化は，preconditioner を用いたポアメータである. 図. 4-a は g と t を 1.4 と 0.18 に設定して得ソン方程式の解法アルゴリズムを GPU 実装したものを用られる. 差分を計算する前にガウスぼかしを Ii と B に掛いる [13]. Conjugate Gradient 法の繰り返し回数は 80 回けてノイズを除去する. ガウスカーネルの直径は 5 とした.に設定した. 精製されたアルファマットを得るためには，

図. 4-b と c は得られた初期アルファマットである. 背景の各ピクセルにおける勾配 gpq と制約の重み λp を適切に与レンガ模様が出てしまっている.

える必要がある. 以下，それぞれ説明する.

2.3.1

勾配と制約の設定

図. 5-d と e に示す勾配画像 gpq を得るアイデアは Ainitのiと背景 B に共通して見える勾みに見られる勾配を残し Ainiti
配は消す，というものだ. このアイデアは Background Cutの “contrast attenuation” と類似である [10]. BackgroundCut では，あるピクセル位置で B の勾配の値が大きい時，
図 4: シグモイド関数と初期アルファマット.

Ainitの勾配を消すことで Ainitのみに存在する勾配だけをii残し他を削除する. しかし，勾配の大きさのみに基づくこの方法は，我々の目的には不十分である. 例えば，レンガ

2.3

アルファマットの精製模様は多くの場所で勾配が大きいので，この方法では背景のみならず煙を表現する勾配も消してしまうためだ. よりユーザが作った初期アルファマットは大まかな流体領域

注意深く勾配を選択するため，本手法は大きさのみでなくを与えるが背景のテクスチャ模様の影響を受けてしまう.

テクスチャ模様の類似度を Ainitと B の間で観察する.
i

これを取り除くため勾配画像処理を用いる. 図. 5 に概要を示す. 初期アルファマット (図. 5-a) の横縦方向の勾配画テクスチャ模様を 5×5 のパッチを用いて記述する (図. 6-

像を計算する (図. 5-b and c). これらの勾配のうち，煙にa). パッチの各ピクセルで勾配方向と大きさを見てヒストグラムを作る. ８方向を見つつ 180 度異なる方向は同一視関する勾配のみ残し，背景のレンガ模様に関する勾配を弱し，４次元のヒストグラムを考える. 各ビンは各勾配の大める (図. 5-d and e). 最後に処理された勾配画像を積分しきさの合計値が入る. ヒストグラムは全ビンの合計が１とて最終的に精製されたアルファマットを得る (図. 5-f). 勾なるように正規化される.
各ピクセル位置で Ainitと B の間でヒストグラムをユーi
クリッド距離で比較する. 図. 6-d は結果で輝度値がユーク
init
リッド距離を表現している. gpq
を Ainitの勾配として次iのように処理をする.
init
gpq = gpq
(1 − e−dp /K ),22(6)において，dp は p におけるユークリッド距離 (図. 6-d)，K
図 5: アルファマット精製の概要.
配画像は横縦方向に隣接するピクセル間で差を計算して得は今回は 0.01 に設定する. 処理した勾配 gpq は図. 5-d と eに相当する. レンガのテクスチャ模様が勾配画像と最終結果のアルファマットから取り除かれていることが分かる.
制約は初期アルファマットの値 ainitが 0.8 より大きい，pもしくは 0.02 より小さい場合のみ λp を 0.01 に設定し，それ以外では λp はゼロとした.

集した. 各動画は流体が静止したカメラの前を流れるものだ. 動画中の流体は疎な部分と密な部分の両方を持っており，背景は複雑なテクスチャ模様を持っている. 各結果の情報は表 1 に示す. 流体の抽出結果及び，他の背景との合成結果，Adobe After Eﬀects の背景差分との比較は添付のビデオをご覧頂きたい. 実験には Intel(R) Core(TM) i7
図 6: (a) 勾配を 5 × 5 のパッチで計算し４次元のヒスト

1.87 GHz CPU と NVIDIA Quadro FX 3800M GPU を積んだノートブック PC を用いた.

グラムを作ってテクスチャ類似度を計算する.(b) 初期アルシステムは，まず数分掛けて背景を推定する. 次にユーと B の間のヒスト.(c) 背景 B.(d) Ainit
ファマット Ainitii

ザはパラメータ γ と t と g を操作し初期アルファマットを作

グラムのユークリッド距離. 黄色い境界は対応する領域をる. 満足のいく初期アルファマットを得たら，コンピュータ示す. 黒い値が高い類似性を示す. 黒い場所では勾配がよりが自動的に全フレームについてアルファマットを精製する.

除去される.

表 1 に示すように γ = 0，t = 0.18，g = 1.4 が良いデフォルト値であることが分かった. Smoke2 では γ も調整

2.4

前景推定

前景の推定もアルファマットの精製と同様の手法で行う.
横縦方向の Ii の勾配を計算し，式. 6 で勾配選択を行い，最した. 煙の濃い場所があり背景を注意深く作る必要があったためだ (図. 3). Smoke3 でも異なるパラメータを使った.
が，これは結果的に失敗例となった.3.1 章で述べる.

後に積分して前景画像を得る. 処理は赤，緑，青チャンネ

図. 7，図. 8 と図. 10 に成功例を示す. 図. 7 では煙が比ルで独立に制約付き最小二乗法を解く事となる. 式. 5 で，較的疎であり背景が上手く推定できた (図. 1-b). 煙が少し

ai を前景の各チャンネルの輝度値とし，ainitを Ii の輝度
pinit値とする. 勾配選択は式. 6 を用いる. この時 gpqは Ii の残るが，特に最終的な煙の抽出には問題ない. 図. 8 では初期アルファマットと精製されたアルファマットを比較して勾配，dp は Ii と B の間のヒストグラムのユークリッド距いる. 赤，黄色，青の円内で本手法が背景の屋根のタイル離に基づくテクスチャ類似度である. 制約は ainit
が 0.8 よp等の模様を上手く削除できていることが分かる.

り大きい場合のみ λp を 0.01 に設定する. 図. 7 は結果の前景画像である.

図 8: Explosion2 の結果. 赤，黄色，青の円内で本手法が背景由来の模様を消せている.

図 7: (a) 動画フレーム.(b) 精製されたアルファマット.(c)3.1

手法の限界と将来課題推定された前景.(d) 緑の背景と合成した結果.
不要な勾配を弱めるというアプローチなので，前景がぼけてしまう傾向がある. 図. 8 にこの現象が見える. コント
ラストとテクスチャ模様が弱まりぼけている. これは勾配

3

結果と議論
提案手法を炎，煙，爆発の流体動画に適用した. 動画素材は DynTex データベース [14] と Getty Images 2 から収
2 http://www.gettyimages.com

選択手法の改善の余地を示唆している. 他の解決策は，後処理でコントラストを上げたり，ヒストグラムマッチングで見た目を復元することが考えられる.
本手法の成否は初期アルファマットが上手く作れるかどうかにかかっている. そのため推定された背景が前景と似

流体動画

フレーム数

解像度

γtg

時間

Smoke1

883

Smoke2359

352×288

00.18

1.4

2.92

640×360

0.035

0.18

1.4

7.42

Smoke3441

480×360

00.05

2.5

6.25

Fire1503

640×360

00.18

1.4

2.19

Explosion1

209

480×360

00.18

1.4

6.31

Explosion2

947

640×360

00.18

1.4

5.0

Explosion3

687

640×360

00.18

1.4

5.45

Explosion4

609

640×360

00.18

1.4

6.0

表 1: 各流体動画について，フレーム数，解像度，パラメータ γ ，t，g ，フレームあたりの計算時間（秒）を示す.

たような色を持っている場合は上手くいかない. 図. 9 に
この失敗例を示す. まず，雲という濃すぎる流体のせいで背景 (図. 9-b) が上手く推定されない. そして，色差分に基づいて作られる初期アルファマットには望ましくない穴ができた (図. 9-c). 本手法はこの穴を埋めるべく勾配選択を行ったが，多少は穴がぼけただけで望ましいアルファマットは得られない (図. 9-d). この問題の解決策として色のみでなく流体の動きの分析を初期アルファマットの計算に使うことを考えている.

参考文献[1] Smith, A.R., Blinn, J.F. Blue screen matting. In Proc.
SIGGRAPH ’96. pp. 259–268, 1996.
[2] Chuang, Y.Y., Agarwala, A., Curless, B., Salesin, D.H.,Szeliski, R. Video matting of complex scenes. In Proc ofSIGGRAPH 2002, pp. 243–248, 2002.
[3] Zhang, J., Li, L., Zhang, Y., Yang, G., Cao, X., Sun,J. Video dehazing with spatial and temporal coherence.
Vis. Comput. 27, pp. 749–757, 2011.
[4] Sarel, B., Irani, M. Separating transparent layers throughlayer information exchange. In ECCV 2004, pp. 328–341,2004.
[5] Ghanem, B., Ahuja, N. Extracting a fluid dynamic texture and the background from video. In Proc. of CVPR
’08, pp. 1–8, 2008.

図 9: Ii と B の色差分があまりないために作られる穴.

[6] Weiss, Y. Deriving intrinsic images from image sequences.
In Proc. of Int’l Conf. on Computer Vision ’01, pp. 68–75,2001.
[7] Gong, M., Wang, L., Yang, R., Yang, Y.H. Real-timevideo matting using multi-channel poisson equations. InProc. of Graphics Interface 2010, pp. 89–96, 2010.
[8] Sarim, M., Hilton, A., Guillemaut, J.Y., Kim, H., Takai,
T. Multiple view wide-baseline trimap propagation for
natural video matting. In Proc. of CVMP, pp. 82–91,2010.
[9] Criminisi, A., Cross, G., Blake, A., Kolmogorov, V. Bilayer segmentation of live video. In Proc. of CVPR ’06,pp. 53–60, 2006.
[10] Sun, J., Zhang, W., Tang, X., Shum, H.Y. Backgroundcut. In Europ. Conf. on Computer Vision, pp. 628–641,
2006.
[11] Bai, X., Wang, J., Sapiro, G. Dynamic color flow: amotion-adaptive color model for object segmentation invideo. In Europ. Conf. on Computer Vision, pp. 617–630,
2010.

図 10: Smoke2，Explosion1，Fire1 の結果.

[12] Zach, C., Pock, T., Bischof, H. A duality based approachfor realtime tv-l1 optical flow. In Pattern Recognition(Proc. DAGM), pp. 214–223, 2007.
[13] Szeliski, R. Locally adapted hierarchical basis preconditioning. In SIGGRAPH 2006, pp. 1135–1143, 2006.
[14] Péteri, R., Fazekas, S., Huiskes, M.J. DynTex : a Comprehensive Database of Dynamic Textures. In Pattern
Recognition Letters. http://projects.cwi.nl/dyntex/.