(58)【調査した分野】(Int.Cl.,DB名)
前記オプティカルフロー処理手段は、移動前の領域と移動後の領域とで、該各領域内の各画素が示す色の差が所定の閾値と比較して大きい場合は、移動後の領域を前記移動後不定領域とする、
ことを特徴とする請求項1に記載の動画像前景切抜き装置。
前記オプティカルフロー処理手段は、移動前の領域と移動後の領域とで、該各領域内の各画素ごとに、該画素と該画素の所定の近傍領域の各画素についての各色の差の和が所定の閾値と比較して大きい場合は、移動後の領域を前記移動後不定領域とする、
ことを特徴とする請求項2に記載の動画像前景切抜き装置。
前記差分処理手段は、前記現フレームと前記前フレームとで対応する各画素ごとに、該画素と該画素の所定の近傍領域の各画素の各差分の和が所定の差分閾値と比較して大きい場合に該画素について差分があると判定する、
ことを特徴とする請求項1ないし3のいずれかに記載の動画像前景切抜き装置。
前記切抜き処理手段は、前記前景指定領域、前記背景指定領域、および前記不定指定領域を入力として、前記現フレームの画像内の各画素に付与する前記前景領域または前記背景領域を示す領域ラベル値を更新しながら、該領域ラベル値と該各画素の画素値とに基づいて、Graph Cuts法により、前記前景らしさまたは前記背景らしさと隣接画素間の前記画素値の変化を評価するエネルギー関数の最小化処理により、前記現フレームの画像内で前記前景領域を切り抜いて前記背景領域から分割する、
ことを特徴とする請求項1ないし5のいずれかに記載の動画像前景切抜き装置。
前記切抜き処理手段によって切り抜かれた現フレームの前記前景領域をユーザに表示して確認させ、ユーザに該前景領域が適切であるか否かを入力させ、ユーザが適切である旨を入力した場合には、次のフレームに対して前記動画像前景切抜き装置の動作を実行させ、ユーザが不適切である旨を入力した場合には、ユーザに前記前景指定領域および前記背景指定領域を入力指定させて前記切抜き処理手段に入力し前記前景領域を切り抜いて前記背景領域から分割する処理を実行させるインタラクティブユーザインタフェース手段をさらに備える、
ことを特徴とする請求項1ないし6のいずれかに記載の動画像前景切抜き装置。
【発明を実施するための形態】
【0017】
以下、本発明を実施するための形態について図面を参照しながら詳細に説明する。
【0018】
図1は、本発明の一実施形態に係る動画像前景切抜き装置101のハードウェア構成例を示すブロック図である。
【0019】
この動画像前景切抜き装置101は例えば、いわゆるスマートフォンなどの携帯情報端末であるコンピュータシステムやパーソナルコンピュータシステム上に実現される。
【0020】
動画像前景切抜き装置101は、CPU(Central Processing Unit:中央演算処理装置)102と、ROM(Read Only Memory)103と、RAM(Random Access Memory)104を備える。また、動画像前景切抜き装置101は、ソリッド記憶装置またはハードディスク記憶装置等の外部記憶装置105と、通信インタフェース106と、タッチパネルディスプレイ装置やマウス入力装置またはキーボード入力装置などの入力装置107、および同じくタッチパネルディスプレイ装置や液晶ディスプレイ装置等の表示装置108を備える。さらに、動画像前景切抜き装置101は、マイクロSDメモリカードやUSB(Universal Serial Bus)メモリカードなどの可搬記録媒体110をセット可能な可搬記録媒体駆動装置109を備える。撮像装置112は、静止画像やビデオ画像を撮像することのできるデジタルカメラ機構であり、レンズ、オートフォーカス駆動制御装置、露出制御装置、撮像センサ等を備える。上述の各機器102〜109および112は、バス111によって相互に接続される。
【0021】
ROM103には、スマートフォン全体の一般的な動作を制御するプログラムのほか、後述する各フローチャートによって示される動画像前景切抜き処理の制御プログラムが記憶されている。CPU102は、ROM103から、この制御プログラムを読み出し、RAM104をワークメモリとして実行する。これにより、後述する
図2の機能ブロックで示される動画像前景切抜き処理機能が実現される。
【0022】
この結果、例えばユーザが、撮像装置112によって撮像して得た動画像データにおいて、動画像を構成する各フレームごとに前景領域を切り抜く動画像前景切抜き処理が実行される。
あるいは、外部記憶装置105や可搬記録媒体110、あるいはインターネット等から通信インタフェース106を介して読み込んだ動画像データにおいて、同様の動画像前景切抜き処理が実行される。
【0023】
図2は、
図1の動画像前景切抜き装置101の機能的構成を示す機能ブロック図である。
【0024】
本実施形態による動画像前景切抜き装置101は、動画像を構成する各フレームの画像内で例えば被写体である前景領域を切り抜いて背景領域と分割する装置として実現される。
【0025】
縮退処理手段201は、現フレームの1つ前の前フレームで算出された前景領域207と背景領域208の境界を示す不定領域209と、前景領域207内で不定領域209以外の領域を示す縮退前景領域210と、背景領域208内で不定領域209以外の領域を示す縮退背景領域211を算出する。
【0026】
差分処理手段202は、現フレームのデータ212と前フレームのデータ213を読み込む。差分処理手段202は、これらのデータに基づき、現フレームと前フレームとで対応する各画素ごとの差分を算出し、縮退背景領域211のうち差分がない画素から構成される領域を不変背景領域214として算出する。
差分処理手段202は、現フレームと前フレームとで対応する各画素ごとに、その画素とその画素の所定の近傍領域の各画素の各差分の和が所定の差分閾値と比較して大きい場合にその画素について差分があると判定するように処理してもよい。
【0027】
オプティカルフロー処理手段203は、現フレームのデータ212と前フレームのデータ213を読み込む。オプティカルフロー処理手段203は、これらのデータに基づき、前フレームの各画素の現フレームへの移動情報を示す各速度場データを算出する。そして、オプティカルフロー処理手段203は、算出した各速度場データに基づき、縮退処理手段201にて得られた縮退前景領域210および縮退背景領域211を現フレームに移動させた各領域を、移動後前景領域215および移動後背景領域216として算出し、移動後前景領域215および移動後背景領域216以外の領域を移動後不定領域217として算出する。
オプティカルフロー処理手段203は、移動前の領域と移動後の領域とで、各領域内の各画素が示す色の差が所定の閾値と比較して大きい場合は、移動後の領域を移動後不定領域217とするように処理してもよい。さらにこの場合、オプティカルフロー処理手段203は、移動前の領域と移動後の領域とで、各領域内の各画素ごとに、その画素とその画素の所定の近傍領域の各画素についての各色の差の和が所定の閾値と比較して大きい場合は、移動後の領域を移動後不定領域217とするように処理してもよい。
【0028】
合成処理手段204は、差分処理手段202で得られる不変背景領域214と、オプティカルフロー処理手段203で得られる移動後前景領域215、移動後背景領域216、および移動後不定領域217とを、不変背景領域214が優先されるように合成する。
すなわち、合成処理手段204は、不変背景領域214または移動後背景領域216からなる領域を、背景指定領域219として抽出する。合成処理手段204は、不変背景領域214と重ならない移動後前景領域215のみの領域を、前景指定領域218として抽出する。合成処理手段204は、不変背景領域214と重ならない移動後不定領域217のみの領域を、不定指定領域220として抽出する。
【0029】
合成処理手段204にて抽出された前景指定領域218、背景指定領域219、および不定指定領域220は、そのまま切抜き処理手段206に入力されてもよいが、その入力の前に以下のような不定指定領域孤立点除去処理手段205で処理されてもよい。不定指定領域孤立点除去処理手段205は、前景指定領域218を囲んでいない不定指定領域220を、背景指定領域219に変換して切抜き処理手段206に入力する。
【0030】
切抜き処理手段206は、前景指定領域218、背景指定領域219、および不定指定領域220を入力して、現フレームのデータ212を読み込んで、現フレームの画像内で前景領域207を切り抜いて背景領域208と分割する。
切抜き処理手段206は、前景指定領域218、背景指定領域219、および不定指定領域220を入力として、現フレームの画像内の各画素に付与する前景領域207または背景領域208を示す領域ラベル値を更新しながら、その領域ラベル値とその各画素の画素値とに基づいて、Graph Cuts法により、前景らしさまたは背景らしさと隣接画素間の画素値の変化を評価するエネルギー関数の最小化処理により、現フレームの画像内で前景領域207を切り抜いて背景領域208と分割するように処理してもよい。
【0031】
本実施形態は、
図2の構成に加えて、次のようなインタラクティブユーザインタフェース手段を備えることができる。インタラクティブユーザインタフェース手段は、切抜き処理手段206によって切り抜かれた現フレームの前景領域207をディスプレイ等を介してユーザに表示して確認させ、ユーザにその前景領域207が適切であるか否かをタッチパネルやマウス等を介して入力させる。ユーザが適切である旨を入力した場合には、インタラクティブユーザインタフェース手段は、次のフレームに対して
図2の動画像前景切抜き装置101の動作を実行させる。一方、ユーザが不適切である旨を入力した場合には、インタラクティブユーザインタフェース手段は、ユーザに前景指定領域218および背景指定領域219を入力指定させて切抜き処理手段206に入力し切抜き処理を実行させる。
【0032】
図2に示される本実施形態における動画像前景切抜き装置101の機能構成では、次のような作用が実現される。
【0033】
まず縮退処理手段201による縮退処理で、前フレームで得られた前景領域207および背景領域208の情報から、確実な前景領域および背景領域と見なせる領域をそれぞれ縮退前景領域210および縮退背景領域211として抽出できる。そして、不確実な領域は不定領域209として抽出することができる。
【0034】
前フレームの情報を加工したこれらの確実な情報に基づいて、差分処理手段202が、前フレームと現フレームとで変化がなく現フレームにおいて確実な背景領域であると見なせる領域を、不変背景領域214として抽出することができる。
【0035】
これと並行して、前フレームの情報を加工した確実な情報に基づいて、オプティカルフロー処理手段203が、オプティカルフロー処理によって、移動後前景領域215、移動後背景領域216、および移動後不定領域217を抽出することができる。
【0036】
そして、合成処理手段204が、オプティカルフロー処理手段203において生じるであろう各領域の抽出誤差を、差分処理手段202で確実な情報として抽出された不変背景領域214によって補完することができる。
【0037】
このようにして補完された情報から、前景指定領域218、背景指定領域219、および不定指定領域220が抽出され、これらの指定領域情報に基づいて、切抜き処理手段206が、GraphCut処理等に基づく切抜き処理を実行する。オプティカルフロー処理手段203で抽出される移動後前景領域215は、オプティカルフロー処理の性質上、前フレームで得られている前景領域207より小さい領域になることが予想される。しかし、本実施形態では、この移動後前景領域215は、現フレームでの前景領域207として採用される訳ではなく、切抜き処理手段206で実行されるGraphCut処理等の確実な領域目安情報である前景指定領域218として用いられるだけである。切抜き処理手段206は、確実な前景領域と見なせるこの前景指定領域218、および背景指定領域219を用いてGraphCut処理等による切抜き処理を実行する。GraphCut処理等による切抜き処理では、前景指定領域218および背景指定領域219によって、確実に前景または背景と見なせる領域情報を与えれば、それを種領域としてその周囲の前景領域207や背景領域208を正確に抽出することができる特性を有する。これにより、前フレームで切り抜かれた前景領域207に対して小さくならない現フレームの前景領域207を抽出することができる。
【0038】
この場合、前フレームにおいて、前景領域207と背景領域208の境界領域の部分は、フレーム間での前景または背景の移動によってあいまいになりやすい。このため、この境界領域は、縮退処理手段201が不定領域209として抽出し、オプティカルフロー処理手段203が移動後不定領域217として現フレームに伝達し、合成処理手段204が不定指定領域220として出力する。切抜き処理手段206は、切抜きのための例えばエネルギー関数の計算において、前景であるか背景であるかを判定するときの重みを、上述の不定指定領域220の情報に基づいてコントロールする。これにより、フレーム間の前景や背景の移動を考慮した前景領域207の正確な切抜き処理をほぼ自動的に実行させることが可能となる。
【0039】
なお、不定指定領域220によって囲まれる領域の内部に前景指定領域218が存在しないような場合には、その領域の内部には前景領域207は存在しないと推定される。そこで、不定指定領域孤立点除去処理手段205がそのような不定指定領域220を背景指定領域219に変換して切抜き処理手段206に与えることにより、そのような不定指定領域220が切抜き処理に悪影響を及ぼすことを防止することが可能となる。
【0040】
インタラクティブユーザインタフェース手段は、切抜き処理手段206から出力される現フレームに対する前景領域207の切抜き結果をユーザに確認させながら、動画像の各フレームの切抜き処理を進めることができる。本実施形態では、フレームの進行に従って前景や背景が多少動いても、切抜き処理の精度を低下させずにほぼ自動的な前景領域指定および背景領域指定を行える。このため、動画の各キーフレームに対する前景領域及び背景領域のユーザによる再指定作業を、軽減させることが可能となる。
【0041】
図3は、
図1のハードウェア構成を有する動画像前景切抜き装置が
図2で説明した機能を実行するための制御処理を示すフローチャートである。また、
図4は、
図3のフローチャートで示される制御処理の動作説明図である。
この制御処理は例えば、
図1において、CPU102がROM103に記憶された制御プログラムを実行する処理として実現される。
図3のフローチャートで示される制御処理は、動画像の各フレームデータが読み込まれたときの1フレームあたりの処理を示すものである。連続するフレームに対する全体的な制御動作は、
図9および
図10の説明で後述する。
以下の説明において、201から220の参照番号で示される部分は、
図2上の同じ参照番号の部分に対応する。
【0042】
図3のステップS301の縮退処理では、次の処理が実行される。
【0043】
まず、処理対象のフレームである現フレームの1つ前のフレームである前フレームにおいて算出されている前景領域207と背景領域208を示す二値マスクデータ301が、例えば
図1のRAM104または外部記憶装置105から読み込まれる。
図4の前フレームの二値マスクデータ301の例では、例えば白色(値「1」)の領域ラベルが付与されている部分が前景領域207、例えば黒色(値「0」)の領域ラベルが付与されている部分が背景領域208である。
【0044】
次に、前フレームの二値マスクデータ301の前景領域207と背景領域208に対して次のような縮退処理が実行される。まず、背景領域208の領域ラベルが付与されている各処理対象画素について、その処理対象画素から所定半径内、例えば8近傍+その周囲1画素程度の範囲内に、前景領域207の領域ラベルが付与されている画素が存在すれば、その処理対象画素の領域ラベルが不定領域209を示す領域ラベルに付け替えられる。逆に、前景領域207の領域ラベルが付与されている各処理対象画素について、その処理対象画素から上記所定半径内に、背景領域208の領域ラベルが付与されている画素が存在する場合も、その処理対象画素の領域ラベルが不定領域209を示す領域ラベルに付け替えられる。
【0045】
この縮退処理の結果、前景領域207(例えば値「1」)と背景領域208(例えば値「0」)を含む前フレームの二値マスクデータ301が、前景領域207と背景領域208の境界を示す不定領域209(例えば値「2」)と、前景領域207内で不定領域209以外の領域を示す縮退前景領域210(例えば値「1」)と、背景領域208内で不定領域209以外の領域を示す縮退背景領域211(例えば値「0」)とを含む縮退三値データ302に変換される。
この縮退三値データ302は、例えば
図1のRAM104に記憶される。
図4の縮退三値データ302の例では、例えば灰色(値「2」)の部分が不定領域209、例えば白色(値「1」)の部分が縮退前景領域210、例えば黒色(値「0」)の部分が縮退背景領域211である。
縮退前景領域210は、前フレームで抽出された前景領域207において確実に前景領域であると見なされる領域である。縮退背景領域211は、前フレームで抽出された背景領域208において確実に背景領域であると見なされる領域である。
【0046】
以上の
図3のステップS301の縮退処理は、
図2の縮退処理手段201の機能を実現する。
【0047】
次に説明する差分処理を実行するプロセスAとオプティカルフロー処理を実行するプロセスBでは、例えば被写体である前景領域207とそれ以外の背景領域208の境界部分が、前景と背景の両方の成分を持っている場合があり、この結果処理結果が不安定になり精度が落ちてしまう可能性がある。そこで、このような境界部分では、不定状態のまま処理させることにより、差分処理とオプティカルフロー処理を組み合わせた場合の処理精度を向上させることが可能となる。
【0048】
次に、差分処理を実行するプロセスAとオプティカルフロー処理を実行するプロセスBの2種類の処理が実行される。
【0049】
まず、
図3のステップS302のプロセスAでは、現フレームのデータ212と前フレームのデータ213が、例えば
図1のRAM104または外部記憶装置105から読み込まれる。これらのデータに基づき、現フレームと前フレームとで対応する各画素ごとの差分が算出される。
次に、
図3のステップS301で算出され例えば
図1のRAM104に記憶されている縮退三値データ302が読み込まれる。そして、縮退三値データ302中の縮退背景領域211のうち、上述の差分がない画素から構成される領域が、不変背景領域214として算出される。
この不変背景領域214は、例えば
図1のRAM104に記憶される。
【0050】
図4の不変背景領域214の例では、黒色の部分が不変背景領域214であり、灰色の部分は差分が存在する領域である。
【0051】
以上の
図3のステップS302のプロセスAは、
図2の差分処理手段202の機能を実現する。なお、このプロセスAの詳細処理は、
図5および
図6を用いて後述する。
【0052】
一方、
図3のステップS303のプロセスBでは、まず、現フレームのデータ212と前フレームのデータ213が、例えば
図1のRAM104または外部記憶装置105から読み込まれる。次に、これらのデータに基づき、前フレームの各画素の現フレームへの移動情報を示す各速度場データが算出され、例えば
図1のRAM104に記憶される。
次に、
図3のステップS301で算出され例えば
図1のRAM104に記憶されている縮退三値データ302が読み込まれる。また、上述のように例えば
図1のRAM104に記憶されている各速度場データが読み込まれる。そして、各速度場データに基づき、縮退三値データ302中の縮退前景領域210および縮退背景領域211を、それぞれ現フレームに移動させて得られる移動後前景領域215および移動後背景領域216と、それら以外の移動後不定領域217とを含む移動後三値データ303が算出される。
この移動後三値データ303は、例えば
図1のRAM104に記憶される。
【0053】
図4の移動後三値データ303の例では、白色(値「1」)の部分が移動後前景領域215、黒色(値「0」)の部分が移動後背景領域216、灰色(値「2」)の部分が移動後不定領域217である。
【0054】
以上の
図3のステップS303のプロセスBは、
図2のオプティカルフロー処理手段203の機能を実現する。なお、プロセスBの詳細処理は、
図7および
図8を用いて後述する。
【0055】
次に、
図3のステップS304の合成処理では、ステップS302のプロセスAで得られ例えば
図1のRAM104に記憶されている不変背景領域214と、ステップS303のプロセスBで得られる例えば同じくRAM104に記憶されている移動後三値データ303が読み込まれる。そして、不変背景領域214と、移動後三値データ303中の移動後前景領域215、移動後背景領域216、および移動後不定領域217とが、不変背景領域214が優先されるように合成される。
すなわち、不変背景領域214または移動後背景領域216からなる領域が、背景指定領域219として抽出される。不変背景領域214と重ならない移動後前景領域215のみの領域が、前景指定領域218として抽出される。そして、不変背景領域214と重ならない移動後不定領域217のみの領域が、不定指定領域220として抽出される。
これらの前景指定領域218、背景指定領域219、および不定指定領域220は、例えば
図1のRAM104に記憶される。
【0056】
図4の前景指定領域218、背景指定領域219、および不定指定領域220の例では、白色(値「1」)の部分が前景指定領域218、黒色(値「0」)の部分が背景指定領域219、灰色(値「2」)の部分が不定指定領域220である。
【0057】
以上の
図3のステップS304の合成処理は、
図2の合成処理手段204の機能を実現する。
【0058】
続いて、
図3のステップS305の不定指定領域孤立点除去処理では、ステップS304の合成処理で得られ例えば
図1のRAM104に記憶されている前景指定領域218、背景指定領域219、および不定指定領域220が読み込まれる。そして、前景指定領域218、背景指定領域219、および不定指定領域220において、前景指定領域218を囲んでいない不定指定領域220が、背景指定領域219に変換される。
不定指定領域孤立点除去処理後の
図4の前景指定領域218、背景指定領域219、および不定指定領域220は、例えば
図1のRAM104に再び記憶される。
不定指定領域孤立点除去処理後の
図4の前景指定領域218、背景指定領域219、および不定指定領域220の例では、フレーム画像内右上にあった例えば雲を示す不定指定領域220が、前景指定領域218に関与していないとして除去されている。
【0059】
以上の
図3のステップS305の不定指定領域孤立点除去処理は、
図2の不定指定領域孤立点除去処理手段205の機能を実現する。
【0060】
最後に、
図3のステップS306の切抜き処理では、ステップS305の不定指定領域孤立点除去処理の結果最終的に得られ例えばRAM104に記憶されている前景指定領域218、背景指定領域219、および不定指定領域220が読み込まれる。また、例えば
図1のRAM104または外部記憶装置105から現フレームのデータ212が読み込まれる。そして、これらの情報に基づいて、現フレームの画像内で前景領域207を切り抜いて背景領域208と分割する切抜き処理が実行される。
【0061】
より具体的には、前景指定領域218、背景指定領域219、および不定指定領域220を入力として、現フレームの画像内の各画素に付与する前景領域207または背景領域208を示す領域ラベル値を更新しながら、その領域ラベル値とその各画素の画素値とに基づいて、Graph Cuts法により、前景らしさまたは背景らしさと隣接画素間の画素値の変化を評価するエネルギー関数の最小化処理が実行される。この結果、現フレームの画像内で、前景指定領域218、背景指定領域219、および不定指定領域220をそれぞれ種領域として、前景領域207が適切に切り抜かれる。
【0062】
このようにして算出された現フレームに対応する前景領域207および背景領域208は、現フレームの画像中で、前景領域207に属する画素には前景領域207の領域ラベル(例えば値「1」)が付与され、背景領域208に属する画素には背景領域208の領域ラベル(例えば値「0」)が付与された二値マスクデータ301として、例えば
図1のRAM104または外部記憶装置105に記憶される。
【0063】
以上の
図3のステップS306の切抜き処理は、
図2の切抜き処理手段206の機能を実現する。
【0064】
図5は、
図3のステップS302のプロセスAの詳細処理を示すフローチャートである。また、
図6は、
図5のフローチャートで示されるプロセスAの詳細処理の動作説明図である。
【0065】
まず、
図5のステップS501の差分調査処理では、次の処理が実行される。例えば
図1のRAM104または外部記憶装置105から、現フレームのデータ212と前フレームのデータ213が読み込まれる。これらのデータに基づき、現フレームと前フレームとで対応する各画素ごとの差分が計算される。そして、差分がない領域が、不変領域501として抽出される。
この場合に、
図2の差分処理手段202の説明において前述したように、現フレームと前フレームとで対応する各画素ごとに、その画素とその画素の所定の近傍領域の各画素の各差分の和が所定の差分閾値と比較して大きい場合にその画素について差分があると判定するように処理されてもよい。
この不変領域501は、例えば
図1のRAM104に記憶される。
図6において、現フレームのデータ212と前フレームのデータ213とから不変領域501が抽出される例では、黒色の部分が差分がない不変領域501として抽出される。
【0066】
次に、
図5のステップS502の共通部分検出処理では、次の処理が実行される。
図3のステップS301で抽出され例えば
図1のRAM104に記憶されている縮退三値データ302(
図6参照)が読み込まれる。また、
図5のステップS501で算出され例えば
図1のRAM104に記憶されている不変領域501(
図6参照)が読み込まれる。そして、縮退三値データ302中の縮退背景領域211(
図6参照)と不変領域501の共通部分が、不変背景領域214′として検出される。
この不変背景領域214′は、例えば
図1のRAM104に記憶される。
【0067】
次に、
図5のステップS503の背景領域孤立点除去処理では、次の処理が実行される。
図5のステップS502で得られ例えばRAM104に記憶されている不変背景領域214′が読み込まれる。また、
図3のステップS301の縮退処理において算出され例えばRAM104に記憶される不定領域209が読み込まれる。として、不変背景領域214′が不定領域209に囲まれて孤立して存在する場合には、その不変背景領域214′は不定領域209に置き換えられる。この結果、置き換えが行われなかった不変背景領域214′が不変背景領域214として出力され、例えば
図1のRAM104に記憶される。
図6の不変背景領域214の例では、黒色の部分がフレーム間の移動によって変化がない不変の背景領域として抽出されている。
【0068】
図7は、
図3のステップS303のプロセスBの詳細処理を示すフローチャートである。また、
図8は、
図7のフローチャートで示されるプロセスBの詳細処理の動作説明図である。
【0069】
まず、
図7のステップS701のオプティカルフロー処理では、次の処理が実行される。例えば
図1のRAM104または外部記憶装置105から、現フレームのデータ212と前フレームのデータ213が読み込まれる。これらのデータに基づき、前フレームの各画素の現フレームへの移動情報を示す例えば
図8に示される各速度場データ701が算出され、例えば
図1のRAM104に記憶される。
【0070】
次に、
図7のステップS702の画素移動処理では、次の処理が実行される。
図3のステップS301で算出され例えば
図1のRAM104に記憶されている縮退三値データ302が読み込まれる。また、
図7のステップS701で算出され例えば
図1のRAM104に記憶されている各速度場データ701が読み込まれる。そして、各速度場データ701に基づき、縮退三値データ302中の縮退前景領域210および縮退背景領域211ごとに、各領域を構成する各画素が、その画素に対応する速度場データ701に基づいて移動させられる。この結果、移動後の各画素に付与されている二値の領域ラベルに基づいて、移動後前景領域215′および移動後背景領域216′が得られる。また、移動後前景領域215′および移動後背景領域216′以外の領域が移動後不定領域217′とされる。この結果、移動後前景領域215′、移動後背景領域216′、および移動後不定領域217′を含む移動後三値データ303′が算出される。
この移動後三値データ303′は、例えば
図1のRAM104に記憶される。
【0071】
次に、
図7のステップS703の移動先チェック処理では、次の処理が実行される。上記移動後前景領域215′および移動後背景領域216′のうち、移動前の領域と移動後の領域とで、各領域内の各画素(またはその近傍領域を含む領域)が示す色の差が所定の閾値と比較して大きい場合は、移動後の領域が移動後不定領域に置き換えられる。
ステップS703の移動先チェック処理により最終的に得られる移動後三値データが、移動後前景領域215、移動後背景領域216、および移動後不定領域217を含む移動後三値データ303として出力される。
この移動後三値データ303は、例えば
図1のRAM104に記憶される。
【0072】
図8の移動後三値データ303の例では、白色(値「1」)の部分が移動後前景領域215、黒色(値「0」)の部分が移動後背景領域216、灰色(値「2」)の部分が移動後不定領域217である。例えば、縮退前景領域210と不定領域209の右部分の縮退背景領域211が速度場データ701の右向きのベクトルによって移動後前景領域215および移動後背景領域216に移動する。この一方、不定領域209の左部分の縮退背景領域211は、速度場データのベクトルが0で移動しない。これらの結果、元の不定領域209の部分は移動後前景領域215および移動後背景領域216のどちらの領域からも侵食されないため残っているような例になっている。
【0073】
図9は、動画像を構成する連続するフレームに対する全体的な制御処理を示すフローチャートである。この制御処理は例えば、
図1において、CPU102がROM103に記憶された動画切抜きアプリケーションの制御プログラムを実行する処理として実現される。
【0074】
まず、
図9のステップS901で、ユーザが、
図1の撮像装置112によって撮像しRAM104等に記憶された動画像データ、外部記憶装置105や可搬記録媒体110に記憶してある動画像データ、あるいはインターネット等から通信インタフェース106を介してRAM104や外部記憶装置105等に取得した動画像データの読込みを指示する。
【0075】
これを受けて、
図9のステップS902で、動画切抜きアプリケーションが、上記該当する記憶装置に記憶された動画データを例えば
図1のRAM104上に取得する。
【0076】
次に、
図9のステップS903で、動画切抜きアプリケーションが、例えば
図1の表示装置108上の液晶等の表示デバイスに、先頭のフレーム(キーフレーム)を表示する。
【0077】
続いて、動画切抜きアプリケーションが、
図9のステップS904のループ処理によって、各キーフレームを例えば
図1のRAM104から順次読み込みながら、ステップS905からS917までの一連の処理を実行する。
【0078】
まず、
図9のステップS904のループ処理によって決定される処理対象である現フレームにおいて、
図9のステップS905で、ユーザが、切抜き結果が適切(OK)か否か(NG)かを判定する。
【0079】
最初は、前回の切抜きは行われていないため、切抜き結果はNGとされる。
【0080】
切抜き結果がNGの場合、
図9のステップS906からS909の一連の処理が実行される。
【0081】
図9のステップS906で、ユーザが、表示デバイスに表示されている現フレームの画像上で、前景または背景の領域を指定する。指定方式としては、例えば
図11(b)に示されるような方式を採用してよい。
【0082】
次に、
図9のステップS907で、切抜き処理が実行される。この切抜き処理は、前述した
図2の切抜き処理手段206の機能に対応する
図3のステップS306の切抜き処理と同等の処理である。この場合、ユーザが指定した前景または背景の領域が、前景指定領域218または背景指定領域219として、切抜き処理に入力される。
【0083】
図9のステップS908で、ステップS907により得られる切抜き結果と現フレームの二値マスクデータ301が、例えば
図1のRAM104に保存される。
【0084】
また、
図9のステップS909で、表示デバイスに上記切抜き結果が表示され、ユーザがそれを確認する。
【0085】
これに対して、
図9のステップS905で、ユーザが、切抜き結果が適切(OK)か否か(NG)かを判定する。
【0086】
ユーザが切抜き結果としてNGを応答すれば、再び上述のステップS906からS909の処理が繰り返される。
【0087】
ユーザが切抜き結果としてOKを応答した場合、
図9のステップS910からS917の一連の処理が実行される。
【0088】
まず、
図9のステップS910で、ユーザが切抜き結果がOKであることを応答することにより、動画切抜きアプリケーションは、処理対象である現フレームを1つ進める。
【0089】
次に、
図9のステップS911で、動画切抜きアプリケーションが、例えば
図1のRAM104に記憶されている現フレームのデータ212を取得する。
【0090】
同様に、
図9のステップS912で、動画切抜きアプリケーションが、例えば
図1のRAM104に記憶されている前フレームのデータ213を取得する。
【0091】
さらに、
図9のステップS913で、動画切抜きアプリケーションが、例えば
図1のRAM104に記憶されている前フレームの二値マスクデータ301を取得する。
【0092】
続いて、
図9のステップS914で、動画切抜きアプリケーションが、前述した
図2の縮退処理手段201、差分処理手段202、オプティカルフロー処理手段203、合成処理手段204、不定指定領域孤立点除去処理手段205の機能に対応する
図3のステップS301からS305の一連の処理を実行する。この結果、動画切抜きアプリケーションが、前景指定領域218、背景指定領域219、および不定指定領域220を生成する。
【0093】
そして、
図9のステップS915で、上述の前景指定領域218、背景指定領域219、および不定指定領域220を入力として、
図2の切抜き処理手段206の機能に対応する
図3のステップS306の切抜き処理を実行する。
【0094】
図9のステップS916で、ステップS915により得られる切抜き結果と現フレームの二値マスクデータ301が、例えば
図1のRAM104に保存される。
【0095】
また、
図9のステップS917で、表示デバイスに上記切抜き結果が表示され、ユーザがそれを確認する。
【0096】
これに対して、
図9のステップS905で、ユーザが、切抜き結果が適切(OK)か否か(NG)かを判定する。
【0097】
ユーザが切抜き結果としてNGを応答すれば、前述したステップS906からS909の処理が再度実行される。
【0098】
ユーザが切抜き結果としてOKを応答した場合、
図9のステップS910からS917の一連の処理が実行され、自動的に次のフレームの切抜き処理が実行される。
【0099】
図10は、
図9のフローチャートで示される制御処理の動作説明図である。
【0100】
図10の1001に示されるように、処理の開始時のみ、ユーザが手動で、前景と背景の領域を指定する。
【0101】
その後、動画切抜きアプリケーションが、1001でのユーザ指定に基づいて、動画第1フレーム1001(#1)を読み込んで、切抜き処理1003(#1)を実行する。動画第1フレームの切抜き結果1004(#1)がユーザに表示される。
【0102】
ユーザが切抜き結果に対してNGを応答すれば、ユーザが前景と背景の領域を再度手動で指定して、動画第1フレーム1001(#1)に対する切抜き処理1003(#1)が再度実行される。
【0103】
ユーザが切抜き結果に対してOKを応答すれば、動画切抜きアプリケーションが、切抜き処理1003(#2)において、次の動画第2フレーム1002(#2)を現フレームのデータ212(
図2参照)として読み込む。そして、前フレームである動画第1フレーム1002(#1)の切抜き結果1004(#1)である前フレームの二値マスクデータ301に基づいて、動画第2フレーム1002(#2)に対応する前景指定領域218、背景指定領域219、不定指定領域220(
図2参照)が自動的に生成され、これらを入力として動画第2フレーム1002(#2)に対する切抜き処理1003(#2)が実行される。
【0104】
動画第3フレーム1002(#3)、動画第4フレーム1002(#4)等も同様である。
【0105】
本実施形態では、各動画フレームに対する切抜き処理1003が実行されるときに、その前フレームの前景領域207の切抜き結果を含む二値マスクデータ301に基づいて、差分処理とオプティカルフロー処理を組み合わせた処理が実行される。これにより、現フレームの切抜き処理1003のための前景指定領域218、背景指定領域219、および不定指定領域220を、高精度に算出することが可能となる。フレームの進行に従って前景や背景が多少動いても、切抜き処理の精度を低下させずにほぼ自動的な前景領域指定および背景領域指定を行える。このため、切抜き結果1004に対してユーザがNGを応答する割合を減らすことができ、動画の各フレームに対する前景領域及び背景領域のユーザによる再指定作業を軽減させることが可能となる。
【0106】
以上の実施形態に関して、更に以下の付記を開示する。
(付記1)
動画像を構成する各フレームの画像内で前景領域を切り抜いて背景領域と分割する装置であって、
現フレームの1つ前の前フレームで算出された前景領域と背景領域の境界を示す不定領域と、前記前景領域内で前記不定領域以外の領域を示す縮退前景領域と、前記背景領域内で前記不定領域以外の領域を示す縮退背景領域を算出する縮退処理手段と、
前記現フレームと前記前フレームとで対応する各画素ごとの差分を算出し、前記縮退背景領域のうち前記差分がない画素から構成される領域を不変背景領域として算出する差分処理手段と、
前記前フレームの各画素の前記現フレームへの移動情報を示す各速度場データを算出し、該各速度場データに基づき前記縮退前景領域および前記縮退背景領域を移動させた各領域を移動後前景領域および移動後背景領域として算出し、該移動後前景領域および該移動後背景領域以外の領域を移動後不定領域として算出するオプティカルフロー処理手段と、
前記不変背景領域または前記移動後背景領域からなる領域、前記移動後前景領域のみの領域、および前記移動後不定領域のみの領域をそれぞれ、背景指定領域、前景指定領域、および不定指定領域として抽出する合成処理手段と、
前記前景指定領域、前記背景指定領域、および前記不定指定領域を入力し、前記現フレームの画像内で前記前景領域を切り抜いて前記背景領域から分割する切抜き処理手段と、
を備えることを特徴とする動画像前景切抜き装置。
(付記2)
前記オプティカルフロー処理手段は、移動前の領域と移動後の領域とで、該各領域内の各画素が示す色の差が所定の閾値と比較して大きい場合は、移動後の領域を前記移動後不定領域とする、
ことを特徴とする付記1に記載の動画像前景切抜き装置。
(付記3)
前記オプティカルフロー処理手段は、移動前の領域と移動後の領域とで、該各領域内の各画素ごとに、該画素と該画素の所定の近傍領域の各画素についての各色の差の和が所定の閾値と比較して大きい場合は、移動後の領域を前記移動後不定領域とする、
ことを特徴とする付記2に記載の動画像前景切抜き装置。
(付記4)
前記差分処理手段は、前記現フレームと前記前フレームとで対応する各画素ごとに、該画素と該画素の所定の近傍領域の各画素の各差分の和が所定の差分閾値と比較して大きい場合に該画素について差分があると判定する、
ことを特徴とする付記1ないし3のいずれかに記載の動画像前景切抜き装置。
(付記5)
前記前景指定領域を囲んでいない前記不定指定領域を前記背景指定領域に変換して前記切抜き処理手段に入力する不定指定領域孤立点除去処理手段をさらに備える、
ことを特徴とする付記1ないし4のいずれかに記載の動画像前景切抜き装置。
(付記6)
前記切抜き処理手段は、前記前景指定領域、前記背景指定領域、および前記不定指定領域を入力として、前記現フレームの画像内の各画素に付与する前記前景領域または前記背景領域を示す領域ラベル値を更新しながら、該領域ラベル値と該各画素の画素値とに基づいて、Graph Cuts法により、前記前景らしさまたは前記背景らしさと隣接画素間の前記画素値の変化を評価するエネルギー関数の最小化処理により、前記現フレームの画像内で前記前景領域を切り抜いて前記背景領域から分割する、
ことを特徴とする付記1ないし5のいずれかに記載の動画像前景切抜き装置。
(付記7)
前記切抜き処理手段によって切り抜かれた現フレームの前記前景領域をユーザに表示して確認させ、ユーザに該前景領域が適切であるか否かを入力させ、ユーザが適切である旨を入力した場合には、次のフレームに対して前記動画像前景切抜き装置の動作を実行させ、ユーザが不適切である旨を入力した場合には、ユーザに前記前景指定領域および前記背景指定領域を入力指定させて前記切抜き処理手段に入力し前記前景領域を切り抜いて前記背景領域から分割する処理を実行させるインタラクティブユーザインタフェース手段をさらに備える、
ことを特徴とする付記1ないし6のいずれかに記載の動画像前景切抜き装置。
(付記8)
動画像を構成する各フレームの画像内で前景領域を切り抜いて背景領域と分割する方法であって、
現フレームの1つ前の前フレームで算出された前景領域と背景領域の境界を示す不定領域と、前記前景領域内で前記不定領域以外の領域を示す縮退前景領域と、前記背景領域内で前記不定領域以外の領域を示す縮退背景領域を算出し、
前記現フレームと前記前フレームとで対応する各画素ごとの差分を算出し、前記縮退背景領域のうち前記差分がない画素から構成される領域を不変背景領域として算出し、
前記前フレームの各画素の前記現フレームへの移動情報を示す各速度場データを算出し、該各速度場データに基づき前記縮退前景領域および前記縮退背景領域を移動させた各領域を移動後前景領域および移動後背景領域として算出し、該移動後前景領域および該移動後背景領域以外の領域を移動後不定領域として算出し、
前記不変背景領域または前記移動後背景領域からなる領域、前記移動後前景領域のみの領域、および前記移動後不定領域のみの領域をそれぞれ、背景指定領域、前景指定領域、および不定指定領域として抽出し、
前記前景指定領域、前記背景指定領域、および前記不定指定領域を入力して、前記現フレームの画像内で前記前景領域を切り抜いて前記背景領域から分割する、
ことを備えることを特徴とする動画像前景切抜き方法。
(付記9)
動画像を構成する各フレームの画像内で前景領域を切り抜いて背景領域と分割するコンピュータに、
現フレームの1つ前の前フレームで算出された前景領域と背景領域の境界を示す不定領域と、前記前景領域内で前記不定領域以外の領域を示す縮退前景領域と、前記背景領域内で前記不定領域以外の領域を示す縮退背景領域を算出する縮退処理と、
前記現フレームと前記前フレームとで対応する各画素ごとの差分を算出し、前記縮退背景領域のうち前記差分がない画素から構成される領域を不変背景領域として算出する差分処理と、
前記前フレームの各画素の前記現フレームへの移動情報を示す各速度場データを算出し、該各速度場データに基づき前記縮退前景領域および前記縮退背景領域を移動させた各領域を移動後前景領域および移動後背景領域として算出し、該移動後前景領域および該移動後背景領域以外の領域を移動後不定領域として算出するオプティカルフロー処理と、
前記不変背景領域または前記移動後背景領域からなる領域、前記移動後前景領域のみの領域、および前記移動後不定領域のみの領域をそれぞれ、背景指定領域、前景指定領域、および不定指定領域として抽出する合成処理と、
前記前景指定領域、前記背景指定領域、および前記不定指定領域を入力して、前記現フレームの画像内で前記前景領域を切り抜いて前記背景領域から分割する切抜き処理と、
を実行させるためのプログラム。