JPWO2014013628A1 - 動画処理装置、動画処理方法、ならびに、情報記録媒体 - Google Patents

動画処理装置、動画処理方法、ならびに、情報記録媒体 Download PDF

Info

Publication number
JPWO2014013628A1
JPWO2014013628A1 JP2013552056A JP2013552056A JPWO2014013628A1 JP WO2014013628 A1 JPWO2014013628 A1 JP WO2014013628A1 JP 2013552056 A JP2013552056 A JP 2013552056A JP 2013552056 A JP2013552056 A JP 2013552056A JP WO2014013628 A1 JPWO2014013628 A1 JP WO2014013628A1
Authority
JP
Japan
Prior art keywords
moving image
drawn
processing apparatus
video
image processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2013552056A
Other languages
English (en)
Other versions
JP5451955B1 (ja
Inventor
理紀夫 尾内
理紀夫 尾内
誠 岡部
誠 岡部
竜矢 栗原
竜矢 栗原
正裕 三條
正裕 三條
廣美 平野
廣美 平野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Rakuten Group Inc
Original Assignee
Rakuten Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Rakuten Inc filed Critical Rakuten Inc
Priority to JP2013552056A priority Critical patent/JP5451955B1/ja
Application granted granted Critical
Publication of JP5451955B1 publication Critical patent/JP5451955B1/ja
Publication of JPWO2014013628A1 publication Critical patent/JPWO2014013628A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • H04N5/265Mixing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/802D [Two Dimensional] animation, e.g. using sprites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/156Mixing image signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • H04N5/272Means for inserting a foreground image in a background image, i.e. inlay, outlay
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20212Image combination
    • G06T2207/20221Image fusion; Image merging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/21Collision detection, intersection

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Processing Or Creating Images (AREA)

Abstract

動画処理装置(101)は、第1動画と、第2動画と、を合成する。第1動画には、第1オブジェクトが描かれ、第1オブジェクトの奥行情報を伴う。第2動画には、第2オブジェクトが描かれ、第2オブジェクトの奥行情報を伴う。動画生成部(105)は、第1動画と、第2動画と、を合成した第3動画を生成する。干渉判定部として働く衝突判定部(103)は、第3動画において、第1オブジェクトと、第2オブジェクトと、が、干渉条件を満たすか否かを、第1オブジェクトの奥行情報ならびに第2オブジェクトの奥行情報を参照して判定する。干渉条件が満たされる、と判定された場合、修正部(106)は、第2オブジェクトの3次元空間内における移動の軌跡の形状の修正に応じた変形変換を施すことにより、第2動画を修正する。

Description

本発明は、動画処理装置、動画処理方法、ならびに、情報記録媒体に関し、複数の動画に描かれた奥行情報を伴うオブジェクトを1つの動画にまとめようとするときに、オブジェクト同士が干渉条件を満たさないようにするものである。
従来から、撮影されるオブジェクトとカメラとの距離(奥行、Z距離)を取得して、奥行情報を伴う画像を作成する技術が提案されている。このような画像は、2.5次元画像と呼ばれることがある(たとえば、非特許文献1参照)。
一方で、オブジェクトが位置や形状、色彩などを変化させる様子を描く動画から、ほぼ静止した背景が描かれている領域と移動するオブジェクトが描かれている領域とを分離する技術も提案されている(たとえば、特許文献1参照)。
これらの技術を組み合わせることにより、背景とその前で移動するオブジェクトを分離した上で、背景の奥行とオブジェクトの奥行を区別した2.5次元動画を生成することができる。2.5次元動画を構成するフレームには、カメラから見えるオブジェクトの表面(オブジェクトの前面)が描かれ、当該オブジェクトが描かれた描画領域に含まれる画素には、当該画素に対応付けられるオブジェクトの表面部分の色彩のほか、当該表面部分までの奥行(前面奥行)が対応付けられる。
このような2.5次元動画は、現実世界をCCDカメラで撮影すると同時に深度センサによる検知を利用したり、現実世界を立体視用のステレオカメラで撮影して対応する画素ごとに視差を求め、その視差から深度を計算することにより得られる。ここで、現実世界を撮影した2.5次元動画には、フレーム内に描かれていないオブジェクトの表面(オブジェクトの背面)の様子は撮影されていないし、背面までの奥行の情報もわからない。
このほか、仮想空間内にオブジェクトを配置して移動等をさせる様子を表す動画を3次元グラフィックスにより生成した後、当該動画の各画素における前面奥行のみを付加することによっても、2.5次元動画を得ることができる。このような変換が行われるのは、2.5次元動画とフォーマットの整合性が保てることや、動画編集がしやすくなる等の理由で便利であるためである。
なお、3次元グラフィックスの分野では、仮想空間内を移動するオブジェクトが干渉しないように、オブジェクトが占める領域が互いに食い込んだり、一方が他方に貫通するような状況を防止するための、衝突判定の技術が広く用いられている。ここでいう衝突とは、オブジェクト同士の表面の接触は勿論、互いの占める領域が重複するような場合や、実際には両者は離間しているにもかかわらず互いの距離がある閾値よりも近い場合を含むものであり、日常的な語義より広い意味を有する。
特開2009−080660号公報
「2.5D」の項、フリー百科辞典『ウィキペディア』英語版、http://en.wikipedia.org/wiki/2.5D、2012年7月18日に取得
ここで、異なる2.5次元動画に描かれた複数のオブジェクトを一つの動画にまとめるときに、複数のオブジェクトが同じ領域に重ねて描画されるのであれば、奥行の大小によって、いずれのオブジェクトを優先して描画するかを決めることなる。しかしながら、そもそも、オブジェクト同士が互いに食い込んだり貫通する等、オブジェクト同士が衝突しては、最終的な動画も不自然なものとなってしまう。そこで、オブジェクト同士の位置についての干渉条件を考慮する必要がある。
したがって、複数の動画をまとめる際に、動画に描かれたオブジェクトが3次元空間を移動する軌跡を変形する変形変換を施すことにより、オブジェクト同士が干渉条件を満たさないようにする対策が求められている。
本発明は、上記のような課題を解決するもので、複数の動画に描かれた奥行情報を伴うオブジェクトを1つの動画にまとめようとするときに、オブジェクトが干渉条件を満たさないようにするのに好適な動画処理装置、動画処理方法、ならびに、情報記録媒体を提供することを目的とする。
本発明に係る動画処理装置は、第1動画と、第2動画と、を合成し、前記第1動画には、第1オブジェクトが描かれ、前記第1オブジェクトの奥行情報を伴い、前記第2動画には、第2オブジェクトが描かれ、前記第2オブジェクトの奥行情報を伴い、
前記第1動画と、前記第2動画と、を合成した第3動画を生成する動画生成部、
前記第3動画において、前記第1オブジェクトと、前記第2オブジェクトと、が、干渉条件を満たすか否かを、前記第1オブジェクトの奥行情報ならびに前記第2オブジェクトの奥行情報を参照して判定する干渉判定部、
前記干渉条件が満たされる、と判定された場合、前記第2オブジェクトの時間経過に応じた3次元空間内の移動を表す軌跡の形状を変形する変形変換を施すことにより、前記第2動画を修正する修正部
を備えるように構成する。
また、本発明の動画処理装置において、
前記軌跡の形状の修正箇所および修正量を表す変換パラメータにより前記変形変換を施し、更新干渉条件を満たさないように、前記変換パラメータを更新する
ように構成することができる。
また、本発明の動画処理装置において、
前記干渉条件は、前記第1オブジェクトと、前記第2オブジェクトと、が、衝突すれば、満たされる
ように構成することができる。
また、本発明の動画処理装置において、
前記干渉判定部は、前記第2オブジェクトと前記第1オブジェクトとの衝突の度合を表す衝突量を計算し、
前記修正部は、前記衝突量と、前記変換パラメータと、により定められる評価関数を最小化するように、前記変換パラメータを更新する
ように構成することができる。
また、本発明の動画処理装置において、
前記修正部は、前記衝突量が最大となるフレームにおいて、前記1つ以上のオブジェクトの位置を前記衝突量がゼロになるように修正し、当該位置の修正量を減少させながら隣接するフレームに伝播させて前記1つ以上のオブジェクトの位置を修正することを繰り返すことにより、前記変更パラメータを更新する
ように構成することができる。
また、本発明の動画処理装置において、
前記変形変換は、前記軌跡の接ベクトルの大きさは保ちつつ、主法線ベクトルの大きさを変化させる
ように構成することができる。
また、本発明の動画処理装置において、
前記衝突量は、各フレームにおける前記第1オブジェクトの奥行情報に基づいて推定される前記第1オブジェクトの形状と、前記第2オブジェクトの奥行情報に基づいて推定される前記第2オブジェクトの形状と、が、重複する体積の総和である
ように構成することができる。
また、本発明の動画処理装置において、
前記衝突量は、各フレームにおける前記第1オブジェクトが描画されるべき領域と、前記第2オブジェクトが描画されるべき領域と、が、重複する面積の総和である
ように構成することができる。
また、本発明の動画処理装置において、
前記軌跡が修正される1つ以上のオブジェクトは、当該1つ以上のオブジェクトの代表点の水平方向、垂直方向および奥行情報の位置に直交変換を施し、当該直交変換後の位置に基づいて、当該1つ以上のオブジェクトが描かれている画像に水平方向および垂直方向における相似変換を施す
ように構成することができる。
本発明に係る動画処理方法は、第1動画と、第2動画と、を合成し、前記第1動画には、第1オブジェクトが描かれ、前記第1オブジェクトの奥行情報を伴い、前記第2動画には、第2オブジェクトが描かれ、前記第2オブジェクトの奥行情報を伴い、
前記第1動画と、前記第2動画と、を合成した第3動画を生成する動画生成工程、
前記第3動画において、前記第1オブジェクトと、前記第2オブジェクトと、が、干渉条件を満たすか否かを、前記第1オブジェクトの奥行情報ならびに前記第2オブジェクトの奥行情報を参照して判定する干渉判定工程、
前記干渉条件が満たされる、と判定された場合、前記第2オブジェクトの時間経過に応じた3次元空間内の移動を表す軌跡の形状を変形する変形変換を施すことにより、前記第2動画を修正する修正工程
を備えるように構成する。
本発明に係るコンピュータ読取可能な情報記録媒体には、第1動画と、第2動画と、を合成するプログラムが記録され、前記第1動画には、第1オブジェクトが描かれ、前記第1オブジェクトの奥行情報を伴い、前記第2動画には、第2オブジェクトが描かれ、前記第2オブジェクトの奥行情報を伴い、
前記プログラムは、コンピュータを、
前記第1動画と、前記第2動画と、を合成した第3動画を生成する動画生成部、
前記第3動画において、前記第1オブジェクトと、前記第2オブジェクトと、が、干渉条件を満たすか否かを、前記第1オブジェクトの奥行情報ならびに前記第2オブジェクトの奥行情報を参照して判定する干渉判定部、
前記干渉条件が満たされる、と判定された場合、前記第2オブジェクトの時間経過に応じた3次元空間内の移動を表す軌跡の形状を変形する変形変換を施すことにより、前記第2動画を修正する修正部
として機能させるように構成する。
上記のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読み取り可能な非一時的(non-transitory)な情報記録媒体に記録することができる。この情報記録媒体は、コンピュータとは独立して配布・販売することができる。
さらに、上記のプログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網等の伝送媒体を介して配布・販売することができる。
本発明によれば、複数の動画に描かれた奥行情報を伴うオブジェクトを1つの動画にまとめようとするときに、オブジェクトが干渉条件を満たさないようにするのに好適な動画処理装置、動画処理方法、ならびに、情報記録媒体を提供することができる。
2.5次元動画に描かれるオブジェクトとその諸元の関係を表す説明図である。 オブジェクトの断面図である。 オブジェクトの前面を表す断面図である。 厚みを一定とすることにより背面の形状を推定したオブジェクトの断面図である。 オブジェクトの代表的な前面奥行を求め、これに厚みを加算したものを背面奥行とすることにより、オブジェクトの背面の形状を推定したオブジェクトの断面図である。 オブジェクトの背面の形状を球面と推定したオブジェクトの断面図である。 動画処理装置において、衝突判定を行う要素の概要構成を示す説明図である。 衝突判定処理の流れを示すフローチャートである。 ドラッグが開始される以前の画面の様子を示す説明図である。 ドラッグが開始される時点の画面の様子を示す説明図である。 ドラッグの途中の時点の画面の様子を示す説明図である。 ドロップがされた時点の画面の様子を示す説明図である。 動画処理装置のドラッグアンドドロップ処理に係る部分の概要構成を示す説明図である。 ドラッグアンドドロップ処理の制御の流れを示すフローチャートである。 自動調整処理の制御の流れを示すフローチャートである。 ドラッグが開始される以前の画面の様子を示す説明図である。 ドラッグが開始される時点の画面の様子を示す説明図である。 ドラッグの途中の時点の画面の様子を示す説明図である。 ドロップがされた時点の画面の様子を示す説明図である。 ドロップ後に、ドロップ位置の自動修正を行った様子を示す説明図である。 ドロップ可能領域の強調表示処理の制御の流れを示すフローチャートである。 軌跡pos[X,i](t)と軌跡pos[Y,j](t)の様子を示す説明図である。 軌跡pos[X,i](t)と軌跡pos[W,j](t)の様子を示す説明図である。 処理を繰り返すことによって、軌跡が次第に変形していく様子を示す説明図である。 処理を繰り返すことによって、軌跡が次第に変形していく様子を示す説明図である。 処理を繰り返すことによって、軌跡が次第に変形していく様子を示す説明図である。 処理を繰り返すことによって、軌跡が次第に変形していく様子を示す説明図である。 衝突を避けるために、軌跡の特定部分において主法線ベクトルを調整した様子を示す説明図である。
以下に本発明の実施形態を説明する。なお、本実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
なお、以下に説明する実施形態に係る動画処理装置は、コンピュータがプログラムを実行することによって実現される。ここで、プログラムは、ROM(Read Only Memory)やハードディスク等の非一時的(non-transitory)な記憶装置からRAM(Random Access Memory)等の一時的(temporary)な記憶装置に読み出される。CPU(Central Processing Unit)は、RAMに読み出されたプログラムを順次解釈し、各種記憶装置との間でデータの読み書きをしたり、データに対する計算処理を行ったりする。また、CPUは、プログラムの制御下で、キーボードやマウス、タッチパネル、ディスプレイ、ネットワークインターフェース等の入出力装置とのやりとりを制御する。
ただし、本発明に係る動画処理装置は、プログラムを実行するコンピュータにより実現されるものに限られない。たとえば、画像処理用の専用の電子回路やFPGA(Field Programmable Gate array)、DSP(Digital Signal Processor)等を利用すれば、同様の機能を実現することが可能である。
なお、3次元グラフィックスの分野では、オブジェクト同士の干渉を、衝突と呼ぶこともある。日常的な語法では、衝突とは、物体が激しくぶつかり、互いの表面が接触して、場合によっては物体の形状が変形することを意味するが、オブジェクトの干渉、あるいは、オブジェクトの衝突といった場合には、表面が接触することのほか、オブジェクトが占める3次元空間内の領域が食い込んだり貫通したりするような場合、オブジェクトが離間してはいるものの、その距離が十分に近い場合等を含む。以下の実施例では、理解を容易にするため、「干渉」という用語にかえて、適宜「衝突」という用語を用いる。
(2.5次元動画とオブジェクトの関係)
以下では、理解を容易にするため、2.5次元動画に描かれるオブジェクトを表現するための記法について整理する。図1は、2.5次元動画に描かれるオブジェクトとその諸元の関係を表す説明図である。以下、本図を参照して説明する。
なお、以下の説明では、理解を容易にするため、「2.5次元動画」を適宜「動画」と略記する。
ある動画Xに含まれるフレームのうち、再生の開始時点からの経過時間t(典型的には、フレーム番号で表現される。)に再生されるフレームをX(t)と表記する。
各フレームに固定された画素座標系において、フレームX(t)において、水平方向の座標値x、垂直方向の座標値yに配置される画素をX(t)[x,y]と表記する。
水平方向の座標値xならびに垂直方向の座標値yが動画Xの各フレームにおいて有効な値であることを、[x,y]∈Xと表記する。すなわち、[x,y]は、画素の位置を意味する。
図1は、3次元グラフィックス技術を用いて、仮想空間内にオブジェクトが配置される様子を動画のフレームに描く状況を真横から見て図示したものであるが、現実世界をカメラで撮影する場合も、同様の状況が成立する、と考えることができる。
本図に示すように、空間内では、撮影点11から、投影面12上に配置されたフレームX(t)内の画素X(t)[x,y]に向かう半直線13がオブジェクト14の表面の衝突点15でぶつかるとき、画素X(t)[x,y]には、当該ぶつかった衝突点15の様子が描かれる。これが一般的な透視投影である。
上記のように、本図は撮影の様子を真横から見たものである。したがって、本図では、投影面12は直線により表現されることになる。
撮影点11は、カメラの位置や観察位置に相当するものであり、撮影点11と投影面12との距離は、レンズの焦点距離や画素の長さの単位によって決まる。また、撮影方向16は、撮影点11から投影面12に垂らした垂線の方向である。
以下では、画素X(t)[x,y]の色彩ならびに前面奥行を、それぞれ、X(t)[x,y].colorならびにX(t)[x,y].foreと表記する。
X(t)[x,y].colorは、衝突点15における色彩やライティングの状況、撮影点11と衝突点15の距離等に基づいて定まる。X(t)[x,y].colorは、RGB、CYMK、HSVなどの各種の色空間における座標値を表すもので、色空間の間での座標値の変換は定式化されている。また、透明度を表すα値をX(t)[x,y].colorに追加することとしても良い。
X(t)[x,y].foreは、画素X(t)[x,y]に描かれているオブジェクト14の衝突点15に当る部分と、撮影点11と、の間の奥行距離を表す。奥行距離としては、撮影点11から衝突点15までのベクトルの撮影方向16の成分の長さ17(いわゆる「Z距離」に相当する。)を採用するのが一般的であるが、その近似値として、撮影点11から衝突点15までの距離を採用しても良い。
奥行距離は種々の単位系で表現が可能である。画素が正方形により構成されている場合に、当該画素の辺の長さを単位とすると、複数の動画における奥行の正規化が可能となる。以下では、奥行は正規化がされていることを前提に説明する。
一般には、動画Xには、移動するオブジェクトのほか、背景も描画されていることがある。背景は、ほとんど移動しないオブジェクトと考えることができる。
そこで、特許文献1に開示される技術などを利用して動画の各フレームを分析すれば、画素X(t)[x,y]には背景が描かれているのか、それとも、移動するオブジェクトが描かれているのか、を識別することができる。
以下では、理解を容易にするため、識別されたオブジェクトには識別番号が振られるものとする。背景を表すオブジェクトの識別番号は0、それ以外のオブジェクトの識別番号は1,2,3,…のように割り振るものとする。
さらに、画素X(t)[x,y]に部分が描かれているオブジェクトの識別番号を、X(t)[x,y].idと表記し、動画Xに出現するオブジェクトの識別番号の最大値をX.maxidと表記する。
動画Xに出現するオブジェクトの識別番号が0,1,2,3,…,Nであれば、X.maxid = Nである。
動画Xにおいて、X(t)[x,y].id≠0を満たす画素X(t)[x,y]のみを抽出すれば、オブジェクトのみの情報(背景を除去した情報)が得られることになる。また、i番目のオブジェクトのみの動画を得るには、X(t)[x,y].id=iを満たす画素X(t)[x,y]のみを抽出すれば良い。これらは、従来の動画技術におけるブルーバックを利用したクロマキー合成用の動画に相当するものである。
ここで、上記のような抽出を行った結果、処理の対象とならなくなった画素には、理解を容易にするため、識別番号として負の値が与えられるものとする。すなわち、X(t)[x,y].id<0であれば、画素X(t)[x,y]は、透明な画素と解釈される。ここでいう「透明」とは、クロマキー合成の際のブルーバックに相当するものである。
この解釈に基づけば、[x,y]∈Xが成立しない場合に、X(t)[x,y].idとして負の値が設定される、と考えることもできる。以下、理解を容易にするため、処理の対象とならない画素や、動画のフレーム外の位置における「画素」については、.idとして負の値が設定されるものとして説明を続ける。
(2.5次元動画に対する各種の変換)
以下では、ある動画から、別の動画を生成するための変換手法について説明する。このような変換手法には、以下のようなものがある。
(1)動画のフレームに沿った上下左右の平行移動
(2)動画の拡大縮小
(3)動画の奥行方向の平行移動
(4)動画の水平軸、垂直軸、奥行軸周りの回転
(5)動画の時間方向の移動
(6)動画から特定のオブジェクトのみを選択
(7)ある動画に別の動画を重ねる合成
以下、順に説明する。
まず、動画のフレームに沿った上下左右の平行移動について考える。動画Yが、動画Xをフレーム内で水平方向にp、垂直方向にqだけ平行移動することによって得られるものであれば、
Y(t)[x+p,y+q] = X(t)[x,y]
ならびに、
Y(t)[x,y] = X(t)[x-p,y-q]
が成立する。ここで、上記の等号は、.colorや.foreなど、各画素に割り当てられた値が、いずれも互いに等しいことを意味する。
以下、動画Xをフレーム内で水平方向にp、垂直方向にqだけ平行移動することにより得られる動画をmove(p,q,X)と表記する。
次に、動画の拡大縮小について考える。透視投影においては、c倍に大きく描かれる、ということは、奥行が1/c倍になって撮影点が近くなった、ということを意味する。したがって、動画Yが、動画Xをフレーム内でc倍に拡大したものであれば、各画素に割り当てられた.fore以外については、
Y(t)[c×x,c×y] = X(t)[x,y]
すなわち
Y(t)[x,y] = X(t)[x/c,y/c]
が成立する。
また、各画素に割り当てられた.foreについては、
Y(t)[c×x,c×y].fore = X(t)[x,y].fore/c
すなわち
Y(t)[x,y].fore = X(t)[x/c,y/c].fore/c
が成立する。
以下、動画Xをフレーム内でc倍に拡大することにより得られる動画を、scale(c,X)と表記する。
ついで、動画の奥行方向の移動について考える。動画Yが、動画Xに撮影されたものを奥行方向rだけ遠ざけると、X(t)[x,y]の奥行距離は、X(t)[x,y].foreからX(t)[x,y].fore + rに変化する。すなわち、奥行距離は、(X(t)[x,y].fore + r)/X(t)[x,y].fore = k倍になる。
透視投影において、撮影点との距離がk倍になったのであれば、投影面に描画されるサイズは、1/k倍に拡縮される。したがって、各画素に割り当てられた.fore以外については、
Y(t)[x/k,y/k] = X(t)[x,y]
が成立し、.foreについては、
Y(t)[x/k,y/k].fore = X(t)[x,y].fore + r
が成立する。
以下、動画Xを奥行方向にrだけ移動することにより得られる動画を、push(r,X)と表記する。
さらに、動画の水平軸、垂直軸、奥行軸周りの回転について考える。動画Yが、動画Xを水平軸周りにθだけ回転して得られるものであれば、.fore以外の要素について、
Y(t)[x,y] = X(t)[x,X(t)[x,y].fore×cosθ-y×sinθ]
とし、.foreについて、
Y(t)[x,y].fore = X(t)[x,y].fore×sinθ+y×cosθ
が成立する。
同様に、動画Yが、動画Xを垂直軸周りにφだけ回転して得られるものであれば、.fore以外の要素について、
Y(t)[x,y] = X(t)[X(t)[x,y].fore×cosφ-x×sinφ,y]
とし、.foreについて、
Y(t)[x,y].fore = X(t)[x,y].fore×sinφ+x×cosφ
が成立する。
また、動画Yが、動画Xを奥行軸周りにψだけ回転して得られるものであれば、
Y(t)[x,y] = X(t)[x×cosψ-y×sinψ,x×sinψ+y×cosψ]
が成立する。
以下、それぞれの回転により得られる動画を、rothor(θ,X)、rotver(φ,X)、rotdep(ψ,X)のように表記する。
なお、これらの変換を行う場合においては、画素の座標値が整数値でなくなったり、座標値に抜けが生じることがある。このような場合には、各画素に割り当てられた.colorや.fore等の値を補間して、アンチエイリアスを行うこととし、.idについては、当該座標に最も近い格子点における値を採用する等の手法を採用することができるほか、.idが変化する境界がどこに位置するか、を補間により調べて、その境界に基づいて、.idを決定すれば良い。
平行移動等によって動画のフレームの範囲外となる画素は、透明な画素と考えれば良いから、上記のように、.idを負の値に設定すれば良い。
ついで、動画の時間方向の移動について考える。動画Yが、動画Xの時間をdだけずらしたものであれば、
Y(t)[x,y] = X(t-d)[x,y]
が成立する。
以下、動画Xの時間をdだけずらした動画をshift(d,X)と表記する。
さらに、動画から特定のオブジェクトのみを選択する処理について考える。動画Yが、動画Xに識別番号i番目のオブジェクトのみを描くものであれば、.id以外の要素について、
Y(t)[x,y] = X(t)[x,y], if X(t)[x,y].id = i;
が成立する。また、.idについては、
Y(t)[x,y].id = 1, if X(t)[x,y].id = iかつi>0;
Y(t)[x,y].id = 0, if X(t)[x,y].id = iかつi=0;
Y(t)[x,y].id = -1, otherwise
とすれば、動画Yにおける識別番号の最大値Y.maxidをできるだけ小さくすることができる。
以下、動画Xに描かれた識別番号iのオブジェクトのみを描く動画を、select(i,X)と表記する。
最後に、ある動画に別の動画を重ねる(superimpose)処理について考える。動画X,Yに描かれているオブジェクトに衝突がなければ、動画X(背景を含んでいても良いし、背景以外のオブジェクトのみでも良い。)に、動画Yの背景以外のオブジェクトを重ねることにより、動画Xに描かれたオブジェクトと、動画Yに描かれたオブジェクトと、を1つにまとめた動画Zが得られる。
動画Zでは、.id以外については、
Z(t)[x,y] = X(t)[x,y], if Y(t)[x,y].id≦0;
Z(t)[x,y] = X(t)[x,y], if X(t)[x,y].fore<Y(t)[x,y].fore;
Z(t)[x,y] = Y(t)[x,y], otherwise
が成立する。また、.idについては、
Z(t)[x,y].id = X(t)[x,y].id, if Y(t)[x,y].id≦0;
Z(t)[x,y].id = X(t)[x,y].id, if X(t)[x,y].fore<Y(t)[x,y].fore;
Z(t)[x,y].id = Y(t)[x,y].id+X.maxid, otherwise
とすれば、オブジェクトの識別番号の重複を避けることができる。
また、整数1,2,…,Z.maxidのうち、Z(t)[x,y].idの値として出現しないものがあれば、以降のオブジェクトの.idをずらすことによって、Z.maxidを最小化することも可能である。
以下、動画Xに、動画Yの背景以外のオブジェクトを重ねることにより得られる動画を、superimpose(Y,X)と表記する。
上記のmove,scale,push, rothor,rotver,rotdep,select,superimpose等の処理をコンピュータで行う際には、CPU(Central Processing Unit)が有する計算機能を用いる他、グラフィックス処理用のプロセッサを利用する等により、高速な計算が可能である。
なお、scale,pushにおいては、原点を中心に拡縮や奥行の移動を考え、rothor,rotver,rotdepおいては、回転軸が原点を通ることを前提としている。
したがって、画像X内の任意の位置[p,q]を中心に拡縮や奥行の移動を行いたい場合には、一旦[p,q]を原点に上下左右に移動し、拡縮や奥行移動を行ってから、逆の上下左右の移動を行えば良い。すなわち、
move(p,q,scale(c,move(-p,-q,X)));
move(p,q,push(r,move(-p,-q,X)))
などを利用すれば良い。
回転軸の位置を上下左右や奥行方向にずらしたい場合も、同様に、一旦回転軸が原点を通るように上下左右や奥行の移動をしてから、回転を行い、その後に、逆の上下左右や奥行の移動を行うことになる。
このほか、scaleやpush等、奥行が移動される変換においては、その度合に応じて.colorの明度や彩度などの修正することとしても良い。
なお、動画の正規化は、撮影時の設定等に基づいて行うことも可能であるが、ユーザの希望に応じて設定をしたり、自動的に行ったりすることも可能である。
ユーザの設定による場合には、まず、ユーザの指示等に基づいて動画の高さや幅を単純に拡縮したり、解像度を調整することで画像内に描かれるオブジェクトの大きさを所望のものとする。scaleでは、対応する画素の奥行距離に、拡大率に応じた係数を乗じるが、正規化の際には、対応する画素の奥行距離をそのまま用いる。
その後に、ユーザは係数を選択し、各画素の奥行距離を一括して当該係数倍にする。
なお、動画Xにオブジェクトiが描かれ、動画Yにオブジェクトjが描かれている状況で、オブジェクトiとオブジェクトjが一緒に描かれるような動画Zを生成しようとする場合には、オブジェクトiの大きさと、オブジェクトjの大きさと、が、ほぼ等しく、オブジェクトiの奥行と、オブジェクトjの奥行と、が、ほぼ等しくなるようにすることが望ましいことが多い。このような前提が成立する場合には、自動的な正規化も可能である。
すなわち、動画Yにおいてオブジェクトjが描かれている領域の平均面積や平均高さ等が、動画Xにおけるオブジェクトiの対応する値と一致するように、動画Yを単純拡縮して動画Zを得る。すなわち、.foreを含むすべての値について、
Z(t)[x,y] = Y(t)[x/c,y/c]
とする。
そして、動画Zにおけるオブジェクトjの平均奥行と動画Xにおけるオブジェクトiの平均奥行とが一致するように、動画Zにおける奥行を一括して係数倍して、動画Wを得る。すなわち、.fore以外については、
W(t)[x,y] = Z(t)[x,y]
とし、.foreについては、
W(t)[x,y].fore = k×Z(t)[x,y].fore
とする。
上記の条件を満たすようにcやkを、自動設定すれば、動画Wは、オブジェクトjがオブジェクトiに見合うように、動画Yを正規化したものとなる。もちろん、上述の通り、cやkをユーザの希望に応じて設定することによって、正規化を行うこととしても良い。
以上、動画の種々の特徴量の表記や各種の変換について説明したが、これらの表記、変換は理解を容易にするためのものである。特に、.colorや.fore、.idなどは、他のフォーマットによって表現することも可能である。動画処理に用いられる種々のフォーマットにおいて、これと等価な形式や変換を採用した場合にも、本発明の技術的範囲に含まれることは言うまでもない。
本実施例は、動画Xに動画Yを重ねたときに、動画Xにおける識別番号iのオブジェクトiと、動画Yにおける識別番号jのオブジェクトjと、が衝突するか否かを判定するものである。
オブジェクトiと、オブジェクトjと、の衝突が比較的容易に判定できる場合としては、以下のような状況が考えられる。
まず、オブジェクトiの前面(動画Xに描画されている表面)と、オブジェクトjの前面(動画Yに描画されている表面)と、が、同じ3次元位置を占める瞬間がある場合である。すなわち、いずれかのt,x,yにおいて、
X(t)[x,y].id = i;
Y(t)[x,y].id = j;
であれば、位置[x,y]は、オブジェクトiが描画されるべき領域ならびにオブジェクトjが描画されるべき領域の両方に重複して含まれることになる。
この位置[x,y]において、
X(t)[x,y].fore = Y(t)[x,y].fore
が成立すれば、オブジェクトiとオブジェクトjが衝突する、と判定できる。
この手法では、オブジェクトi,jオブジェクトjは、背面には何もないオブジェクトで、厚みを持たず、前面の形状のみからなる面状オブジェクトである、と、想定している。
オブジェクトi,jの前面がある画素X(t)[x,y]に投影される位置で同じ奥行を有する、ということは、その位置でオブジェクトi,jの前面が重なっていることを意味する。そこで、この場合には、両者が衝突する、と判定することができる。
この判定基準を時間方向に拡張することもできる。以下では、経過時間tがフレーム番号で表現される場合、すなわち、時刻t+1のフレームが時刻tのフレームに続く場合を想定する。
すると、いずれかのt,x,yにおいて
X(t)[x,y].id = X(t+1)[x,y].id = i;
Y(t)[x,y].id = Y(t+1)[x,y].id = j;
X(t)[x,y].fore < Y(t)[x,y].fore;
X(t+1)[x,y].fore > Y(t+1)[x,y].fore
が成立すれば、時刻tから時刻t+1にかけてオブジェクトjがオブジェクトiの後から前にすり抜けて出てきた、と考えられる。また、
X(t)[x,y].id = X(t+1)[x,y].id = i;
Y(t)[x,y].id = Y(t+1)[x,y].id = j;
X(t)[x,y].fore > Y(t)[x,y].fore;
X(t+1)[x,y].fore < Y(t+1)[x,y].fore
が成立すれば、時刻tから時刻t+1にかけてオブジェクトiがオブジェクトjの後から前にすり抜けて出てきた、と考えられる。
そこで、このような「すり抜け」が生じる場合には、オブジェクトの衝突が生じた、と判定する。
これらの条件によるオブジェクトi,jの衝突判定では、オブジェクトi,jが、その前面のみの形状からなる、と想定している。オブジェクトが薄板状のオブジェクトである場合には、オブジェクトの厚みはゼロであり、オブジェクトの前面とオブジェクトの背面とが一致する、と考えることができる。したがって、これらの手法によって衝突判定を行うことにより、簡易かつ高速な判定が可能となる。
図2Aは、図1に示すオブジェクト14の断面図であり、図2Bは、オブジェクト14の前面を表す断面図である。以下、本図を参照して説明する。
図2Aに示す通り、オブジェクト14は厚みを持ち、その断面には広がりがある。
しかしながら、2.5次元動画に含まれる情報によってオブジェクト14を表現すると、図2Bに示す通り、その形状はオブジェクト14の前面のみからなる面状オブジェクトとなってしまう。なお、本図は断面図であるから、面状オブジェクトは曲線により表現されている。
したがって、オブジェクト同士の衝突判定をより正確に行うためには、図2Bに示すような面状オブジェクトの情報から、オブジェクト14の背面の形状を設定あるいは推定する必要がある。
ここで、オブジェクト14の前面までの奥行は2.5次元動画に付随する情報により得られているから、オブジェクト14の厚みを知るためには、オブジェクト14の背面までの奥行が得られれば良い。
以下、動画Xにおいてある時刻tに画素X(t)[x,y]に描かれたオブジェクトの背面までの奥行を、X(t)[x,y].backと表記し、この背面奥行を取得する手法について説明する。
第1の手法は、各オブジェクトについて、前面と背面との距離をユーザがあらかじめ設定する、というものである。
すなわち、動画Xにおけるオブジェクトiについての前面と背面との距離(厚み)が定数thick(i)と設定されていれば、
X(t)[x,y].back = X(t)[x,y].fore + thick(X(t)[x,y].id)
とするものである。
図2Cは、厚みを一定とすることにより背面の形状を推定したオブジェクトの断面図である。本図に示す通り、オブジェクト14の背面は、オブジェクト14の前面を、撮影方向16に平行移動した形状となっている。
このほか、オブジェクトiについての代表的な前面奥行を定め、これにthick(i)を加算したものを背面奥行とする、という手法がある。
ある時刻tにおけるオブジェクトiの代表的な前面奥行repfore(X,t,i)としては、以下のようなものが考えられる。
(1)オブジェクトiの前面奥行の最大値を採用する。
repfore(X,t,i) = maxx,y;X(t)[x,y].id=i X(t)[x,y].fore
(2)オブジェクトiの前面奥行の平均値を採用する。
repfore(X,t,i) = avgx,y;X(t)[x,y].id=i X(t)[x,y].fore
ここで、maxやavgは、その添字部分において、セミコロンの前に並べられた変数を、セミコロンの後に置かれた条件を満たす範囲で変化させたときの、本体部分の値の最大値や平均値を意味する。なお、条件として「常に成立する」を採用する場合には、変数のみを添字部分として表記する。
すなわち、上記(1)(2)では、与えられたX,t,iの下で、X(t)[x,y].id=iを満たすx,yの組み合わせを列挙し、その組み合わせのそれぞれについてX(t)[x,y].foreの値を求めて、その最大値や平均値を求めることになる。
このように定められたrepfore(X,t,i)を用いれば、画素X(t)[x,y]にオブジェクトiが描かれているとき(i = X(t)[x,y].id)の画素X(t)[x,y]の背面奥行は、
X(t)[x,y].back = repfore(X,t,i) + thick(i)
あるいは、
X(t)[x,y].back = max〔repfore(X,t,i) + thick(i),X(t)[x,y].fore〕
のように定めることができる。ここで、max〔...〕は、括弧内に並べられた値の最大値を意味する。
図2Dは、オブジェクトの代表的な前面奥行を求め、これに厚みを加算したものを背面奥行とすることにより、オブジェクトの背面の形状を推定したオブジェクトの断面図である。本図に示す通り、オブジェクト14の背面は、撮影方向16に垂直な平面となっており、オブジェクト14は、撮影方向16に伸びる柱状の形状により近似されることになる。
このほか、時点tにおけるオブジェクトiの代表点を定め、当該代表点を中心とする球面により、背面を近似する手法もある。
まず、動画X内で時刻tにおいてオブジェクトiが描画されている領域の画素数area(X,t,i)を以下のように求める。
area(X,t,i) = Σx,y;X(t)[x,y].id=i 1
ここで、Σの添字は、maxやavgと同じ意味を有する。
時刻tにおけるオブジェクトiの代表点の水平座標xc(X,t,i)および垂直座標yc(X,t,i)は、以下のように定められる。
xc(X,t,i) = Σx,y;X(t)[x,y].id=i x/area(X,t,i);
yc(X,t,i) = Σx,y;X(t)[x,y].id=i y/area(X,t,i)
また、動画X内で時刻tにおいてオブジェクトiが描画されている領域の幅w(X,t,i)および高さh(X,t,i)は、以下のように定められる。
w(X,t,i) = maxx,y;X(t)[x,y].id=i x - minx,y;X(t)[x,y].id=i x;
h(X,t,i) = maxx,y;X(t)[x,y].id=i y - minx,y;X(t)[x,y].id=i y
球面の直径D(X,t,i)は、たとえば、以下のような、種々の定め方がありうる。
D(X,t,i) = max〔w(X,t,i),h(X,t,i)〕;
D(X,t,i) = (w(X,t,i)2+h(X,t,i)21/2
D(X,t,i) = area(X,t,i)1/2
D(X,t,i) = maxx,y;X(t)[x,y].id=i ((x-xc(X,t,i))2+(y-yc(X,t,i))2)1/2
D(X,t,i) = avgt area(X,t,i)3/2/area(X,t,i)
なお、avgt area(X,t,i)は、動画Xにおいてオブジェクトiが描かれている領域の時間平均を意味する。したがって、avgt area(X,t,i)3/2は、オブジェクトiが占める体積の推定値に相当し、これをarea(X,t,i)で割ることで、奥行長の推定値が得られることになる。
さて、直径D(X,t,i)が定まれば、代表点の奥行座標zc(X,t,i)は、以下のように定めることができる。
zc(X,t,i) = X(t)[xc(X,t,i),yc(X,t,i)].fore + D(X,t,i)/2
このほか、単純に以下のように定めても良い。
zc(X,t,i) = X(t)[xc(X,t,i),yc(X,t,i)].fore
すると、画素X(t)[x,y]にオブジェクトiが描かれているとき(i = X(t)[x,y].id)の画素X(t)[x,y]の背面奥行は、
X(t)[x,y].back = max〔zc(X,t,i)+〔max〔(D(X,t,i)/2)2-(x-xc(X,t,i))2-(y-yc(X,t,i))2〕,0〕1/2,X(t)[x,y].fore〕
のように定めれば、球面により近似したことになるし、
X(t)[x,y].back = max〔zc(X,t,i)+D,X(t)[x,y].fore〕
のように定めれば、円柱により近似したことになる。
図2Eは、オブジェクトの背面の形状を球面と推定したオブジェクトの断面図である。本図に示す例では、オブジェクト14の背面は、代表点21を中心とする球面となっているが、オブジェクト14の前面から球面までは、撮影方向16に伸びる柱状の形状により近似されている。
ここまでは、移動するオブジェクトの背面奥行を設定、推定する手法について説明したが、背景に相当するオブジェクトについては、背面奥行は、∞と考えれば良い。すなわち、
X(t)[x,y].id = 0
が成立する場合には、
X(t)[x,y].back = ∞
とする。
さて、時刻tにおける動画X内の画素X(t)[x,y]に描かれるオブジェクトX(t)[x,y].idが画素X(t)[x,y]において占有する奥行方向の占有区間は、前面奥行X(t)[x,y].foreから背面奥行X(t)[x,y].backまでとなる。
ここで、同じ画素位置に描かれる2つのオブジェクトの前面奥行から背面奥行までの占有区間に重複があれば、当該2つのオブジェクトは衝突していることになる。
したがって、いずれかのt,x,yにおいて、
X(t)[x,y].id = i;
Y(t)[x,y].id = j
であり、かつ、
(1)X(t)[x,y].fore≦Y(t)[x,y].fore≦X(t)[x,y].back;
(2)X(t)[x,y].fore≦Y(t)[x,y].back≦X(t)[x,y].back;
(3)Y(t)[x,y].fore≦X(t)[x,y].fore≦Y(t)[x,y].back;
(4)Y(t)[x,y].fore≦X(t)[x,y].back≦Y(t)[x,y].back
の4つのいずれか少なくとも1つが成立すれば、動画Xと動画Yを重ねたときに、動画Xに描かれるオブジェクトiと動画Yに描かれるオブジェクトjとが衝突する、と判定することができる。
以下、2つの占有区間の重複量を、overlap(X,Y,t,x,y)と表記することとする。上記(1)−(4)のいずれも成立しなければ、overlap(X,Y,t,x,y)=0であり、overlap(X,Y,t,x,y)>0であれば、オブジェクトi,jは衝突することになる。
具体的には、上記(1)の場合は、
overlap(X,Y,t,x,y) = min〔X(t)[x,y].back,Y(t)[x,y].back〕-Y(t)[x,y].fore
であり、上記(2)の場合は、
overlap(X,Y,t,x,y) = Y(t)[x,y].back-max〔X(t)[x,y].fore,Y(t)[x,y].fore〕
であり、上記(3)の場合は、
overlap(X,Y,t,x,y) = min〔X(t)[x,y].back,Y(t)[x,y].back〕-X(t)[x,y].fore
であり、上記(4)の場合は、
overlap(X,Y,t,x,y) = X(t)[x,y].back-max〔X(t)[x,y].fore,Y(t)[x,y].fore〕
である。ここで、min〔...〕は、max〔...〕とは逆に、括弧内の値の最小値を返す。
なお、上記(1)−(4)のいずれかが成立し、かつ、overlap(X,Y,t,x,y)=0の場合には、オブジェクトi,jは、離間しているのではなく、互いに接する、と考えることができる。したがって、互いに喰い込んでしまう衝突と、表面が接するだけの衝突と、を、区別して判定することも可能である。
このほか、衝突判定に、上記の占有区間そのものを用いるのではなく、その上限や下限にマージンを持たせて占有区間を少し広げてから、重複があるか否かを調べることとしても良い。この場合には、オブジェクトi,jの衝突判定にマージンを持たせたことになり、オブジェクトi,jは、ある程度の距離離れていなければ、衝突する(おそれがある)と判定されることになる。
一方で、上記のマージンを負にすれば、少々食い込むような衝突を許容できるようになる。これは、オブジェクトに弾性があり、凹むことが想定される場合等に好適である。
図3は、本実施形態に係る動画処理装置において、衝突判定を行う要素の概要構成を示す説明図である。以下、本図を参照して説明する。
本図に示すように、動画処理装置101のうち、衝突判定を行う要素は、背面奥行取得部102、および、衝突判定部103からなる。
動画処理装置101は、第1動画Xおよび第2動画Yを処理の対象とする。たとえば、
(a)第1動画Xとして、現実世界においてダンサーがダンスをしている様子を撮影した2.5次元画像を採用し、
(b1)第2動画Yとして、キャラクターが無背景で踊っている様子を表す動画を採用したり、
(b2)第2動画Yとして、他のユーザがダンスをしている様子を撮影した後に当該他のユーザが編集を行い、背景の情報をすべて除去して、当該他のユーザが無背景で踊っている様子を表す動画を採用する。
なお、本実施態様における動画処理装置101は、最終的には、ダンサーがキャラクタあるいは他のユーザと一緒に踊っている第3動画を合成する。
このため、まず、動画処理装置101は、第1動画Xに描かれた第1オブジェクトiと、第1動画Xに重ねられるべき第2動画Yに描かれた第2オブジェクトjと、の衝突を判定する。動画処理装置101は、典型的には、コンピュータでプログラムを実行することによって実現される。
ここで、第1動画Xは、第1動画Xに描かれている側の第1オブジェクトiの第1前面奥行を伴い、第2動画Yは、第2動画Yに描かれている側の第2オブジェクトjの第2前面奥行を伴う。
上記の表記を用いれば、第1動画Xに含まれる時刻tのフレームX(t)において位置[x,y]の画素に第1オブジェクトiが描かれていれば、X(t)[x,y].id = iであり、その第1前面奥行は、X(t)[x,y].foreである。
第1動画Xは、移動するオブジェクトのみからなるものとしても良いし、背景を含むものとしても良い。前者の場合には、第1オブジェクトとしてi>0のものを採用することになるし、後者の場合には、第1オブジェクトとしてi≧0のものを採用することになる。
また、第2動画Yに含まれる時刻tのフレームY(t)において位置[x,y]の画素に第2オブジェクトjが描かれていれば、Y(t)[x,y].id = jであり、その第2前面奥行は、Y(t)[x,y].foreである。
第2動画Yにおいて衝突判定の対象となるオブジェクトは、背景は含まないものとする。すなわち、第2オブジェクトとしては、j>0のものを採用することになる。
まず、背面奥行取得部102は、第1動画Xに描かれていない側の第1オブジェクトiの第1背面奥行と、第2動画Yに描かれていない側の第2オブジェクトjの第2背面奥行と、を取得する。
上記の表記を用いれば、背面奥行取得部102は、時刻t、位置[x,y]のうち、X(t)[x,y].id = iを満たすものについて、上記の手法により、第1背面奥行X(t)[x,y].backを求める。また、背面奥行取得部102は、時刻t、位置[x,y]のうち、Y(t)[x,y].id = jを満たすものについて、上記の手法により、第2背面奥行Y(t)[x,y].backを求める。
一方、衝突判定部103は、オブジェクト同士の干渉を判定する干渉判定部として機能する。そして、衝突判定部103は、第1動画Xと、第2動画Yと、が重ねられることによって、第1オブジェクトiが描かれるべき第1描画領域と、第2オブジェクトjが描かれるべき第2描画領域と、が重なり、かつ、第1描画領域と、第2描画領域と、が重なる重複領域において、第1オブジェクトiの第1前面奥行から第1背面奥行までの第1占有区間と、第2オブジェクトjの第2前面奥行から第2背面奥行までの第2占有区間と、が重なれば、第1オブジェクトと、第2オブジェクトと、が衝突する、と判定する。
上記の表記を用いれば、ある時刻tにおける第1描画領域とは、X(t)[x,y].id = iを満たす位置[x,y]の集合であり、ある時刻tにおける第2描画領域とは、Y(t)[x,y].id = jを満たす位置[x,y]の集合である。これらの集合の共通部分が空集合でなければ、時刻tにおいて、第1描画領域と、第2描画領域と、が重なることになり、これらの集合の共通部分が時刻tにおける重複領域に相当する。
時刻tにおける重複領域の要素である位置[x,y]については、明らかに
X(t)[x,y].id = i;
Y(t)[x,y].id = j
が成立する。
この位置[x,y]において、第1オブジェクトiは、奥行として、X(t)[x,y].foreからX(t)[x,y].backまでの第1占有区間を占有する。また、第1オブジェクトjは、Y(t)[x,y].foreからY(t)[x,y].backまでの第2占有区間を占有する。
第1占有区間と、第2占有区間と、が、重なる場合、すなわち、第1占有区間に第2前面奥行もしくは第2背面奥行が含まれ、または、第2占有区間に第1前面奥行もしくは第1背面奥行が含まれる場合には、時刻t、位置[x,y]において、第1オブジェクトiと、第2オブジェクトjと、は、衝突する、と判定されることになる。
上記の説明では、時刻tにおけるフレームにおいて、第1オブジェクトiが描かれる第1描画領域と、第2オブジェクトjが描かれる第2描画領域と、が重なれば、背面奥行の情報を利用して、当該時刻tにおけるフレームにおける第1オブジェクトiと第2オブジェクトjとの衝突判定を行うものとしている。
したがって、動画全体において衝突が生じないことを確認するためには、第1動画Xおよび第2動画Yの全フレームについて、順次tを設定して、上記の衝突判定を行うこととすればよい。
図4は、本実施形態に係る衝突判定処理の流れを示すフローチャートである。以下では、本図を参照して、本実施形態に係る動画処理装置101にて実行される衝突判定処理について説明する。
まず、動画処理装置101は、衝突判定の対象となる第1動画Xと第2動画Yとを受け付ける(ステップS151)。第1動画Xと第2動画Yにはオブジェクトが描かれており、オブジェクトの奥行情報が付随している。
ついで、第1動画Xおよび第2動画Yのフレームを先頭から順に走査する処理を繰り返す(ステップS152)。
すなわち、現在走査しているフレームにおいて、第1動画Xにおいてオブジェクトが描かれている領域と、第2動画Yにおいてオブジェクトが描かれている領域と、に、重なりがあるか否かを判定する(ステップS153)。重なりがなければ(ステップS153;No)、ステップS157に進んで、処理を繰り返す。
重なりがあれば(ステップS153;Yes)、当該描画領域に重なりがある第1動画X内のオブジェクト(上記の「第1オブジェクト」に相当する。)の奥行情報と、第2動画Y内のオブジェクト(上記の「第2オブジェクト」に相当する。)の奥行情報と、を、取得する(ステップS154)。
そして、当該奥行情報から得られるオブジェクトの占有区間に、重なりがあるか否かを判定する(ステップS155)。重なりがなければ、ステップS157に進んで、処理を繰り返す。
重なりがあれば(ステップS155;Yes)、第1動画Xに描かれたオブジェクトと、第2動画Yに描かれたオブジェクトと、が、衝突する旨の判定結果を出力して(ステップS156)、本処理を終了する。
ステップS152−S157の繰り返しが終了したら、第1動画Xに描かれたオブジェクトと、第2動画Yに描かれたオブジェクトと、が、衝突することはない旨の判定結果を出力して(ステップS158)、本処理を終了する。
なお、上記の説明では、理解を容易にするため、第1動画Xには第1オブジェクトだけが1つ描かれ、第2動画Yには第2オブジェクトだけが1つ描かれている状況を想定しているが、オブジェクトが複数となる場合には、各オブジェクトについて同様の処理を繰り返せば良い。
また、上記の説明では、全フレームについて、描画領域の重複ならびに奥行情報に基づく占有区間の重複の判定を行っているが、フレーム数が多い場合には、適宜間引きを行うことも可能である。
たとえば、当初は等間隔にスキップしながらフレームを選び、第1描画領域と第2描画領域が重なるかを判定し、重なる場合は、その前後でのフレームの間引きをやめる、という手法を採用すれば、動画全体の衝突判定に要する計算時間を節約することができる。
さて、一般に、「いずれかの時刻、いずれかの位置において、第1動画Xに描かれたいずれかのオブジェクトと、第2動画Yに描かれたいずれかのオブジェクトと、が、衝突する」と判定されなかった場合、すなわち、衝突が一切生じない場合には、第1動画Xに第2動画Yを重ねても、オブジェクトの前後関係に矛盾が生じることはない。したがって、第1動画Xに第2動画Yを重ねた第3動画superimpose(Y,X)を求めることができる。
一方、「いずれかの時刻、いずれかの位置において、第1動画Xに描かれたいずれかのオブジェクトと、第2動画Yに描かれたいずれかのオブジェクトと、が、衝突する」と判定された場合には、第1動画Xと第2動画Yとを重ねることはできない。したがって、以下に開示するような工夫が必要となる。
本実施例は、ユーザが、マウスを用いたドラッグアンドドロップ操作等により、第1動画Xに対して第2動画Yをずらしてから重ねる際のユーザインターフェースを工夫するものである。
本実施例では、理解を容易にするため、ユーザのドラッグアンドドロップ操作により、第1動画Xに対して第2動画Yをずらしてから重ねるための上下左右の平行移動量を指定する場合を想定する。ただし、本実施例の操作体系は、必ずしもドラッグアンドドロップに限られるものではなく、タッチスクリーンに対するスライド動作や、クリック操作を2回繰り返す操作等、種々の指示入力操作を採用することによってドラッグアンドドロップにかえることも可能である。
図5Aは、ドラッグが開始される以前の画面の様子を示す説明図であり、図5Bは、ドラッグが開始される時点の画面の様子を示す説明図であり、図5Cは、ドラッグの途中の時点の画面の様子を示す説明図であり、図5Dは、ドロップがされた時点の画面の様子を示す説明図である。
また、図6は、動画処理装置101のドラッグアンドドロップ処理に係る部分の概要構成を示す説明図である。図7は、本実施例に係る動画処理装置101によって実行されるドラッグアンドドロップ処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
本実施例に係るドラッグアンドドロップ処理では、動画処理装置101において、ずらし量設定部104、ならびに、動画生成部105が、ユーザのドラッグアンドドロップ操作に基づいて動作する。
動画処理装置101は、第1動画Xに対して第2動画Yをずらしてから重ねる際に、オブジェクトの位置関係が所定の位置条件を満たすようにするため、位置条件を満たすか否かを判定するための干渉判定部を備える。
ただし、本実施例では、位置条件として、オブジェクトの衝突が生じないことを採用するため、干渉判定部として、上記の衝突判定部103を採用して、その判定結果を利用している。本図では、なお、衝突判定部103に先立つ背面奥行取得部102は図示を省略している。
後述するように、位置条件として、オブジェクトが干渉しない、すなわち、干渉条件を満たさないことに加えて、さらに他の条件、たとえば、特定のオブジェクト同士がぎりぎりまで近接する等を設定することも可能である。上述の衝突判定部103による判定結果は、オブジェクトの干渉以外の位置関係を参照した位置条件の判定にも利用することができる。
また、本図に図示されている修正部106は省略可能な要素であり、その機能については、後続する実施例について説明する。
まず、動画処理装置101は、第1動画Xの代表的なフレームと、第2動画Yの代表的なフレームと、を、画面に表示する(ステップS181)。たとえば、図5Aに示すように、画面401内には、第1動画Xのウィンドウ411と、第2動画Yのウィンドウ412と、カーソル413と、が表示される。
本図では、第1動画Xは背景付きの動画であり、ウィンドウ411の縁は実線で描かれている。一方、第2動画Yは背景なしの動画であり、ウィンドウ412の周縁は透明色で描かれ、その縁も点線で描かれている。なお、ウィンドウ412の縁は、必ずしも画面401に表示する必要はない。この場合には、ユーザには、あたかも、第2動画Y内に描かれた背景でないオブジェクトのみが、画面401に表示されているかのように見えることになる。
ついで、動画処理装置101は、ユーザによる第2動画Yのウィンドウ412内のクリック動作(ドラッグの開始)を受け付ける(ステップS182)。ここで、図5Bに示すように、ユーザがマウスを用いてカーソル413を移動させ、第2動画Y内の位置[s,t]をクリックしたとする。
さらに、動画処理装置は、ユーザによるドラッグが継続している間(ステップS183;Yes)、これに応じて、第2動画Yのウィンドウ412の表示位置を移動する(ステップS184)。たとえば、ユーザが、図5Cに示すように、クリックを維持したままカーソル413を移動させると、カーソル413が第2動画Y内の位置[s,t]を指したままとなるように、ウィンドウ412全体が移動される。
さて、ユーザが、図5Dに示すように、カーソル413を第1動画X内の位置[u,v]まで移動させて、クリックをやめ、ウィンドウ412をウィンドウ411にドロップしたとする。
すると、第1動画X内の位置[u,v]と、第2動画Y内の位置[s,t]と、が重なることになる。したがって、ユーザは、第2動画Yを、水平方向にu-s、垂直方向にv-tだけ移動するような変換を行ってから、第1動画Xに重ねようとしていると考えられる。
このように、ユーザによるドラッグが終わると(ステップS183;No)、動画処理装置101のずらし量設定部104は、ずらし量として、水平方向u-s、垂直方向v-tを設定する(ステップS185)。すなわち、動画処理装置101は、ユーザが、第1動画Xに対して、第2動画をフレームに平行に上下左右に移動することにより得られる動画move(u-s,v-t,Y)を、重ねようとしている、と解釈する。
そこで、動画処理装置101は、衝突判定部103を利用して、第1動画Xに描かれたオブジェクトと、第2動画Yをずらした中間動画move(u-s,v-t,Y)に描かれたオブジェクトと、が、いずれかのフレーム時刻、いずれかのフレーム内位置において衝突するか、それとも、衝突が一切生じないか、を判定する(ステップS186)。
図5Cに示すドロップ操作の結果、衝突が一切生じない場合(ステップS186;No)、動画処理装置101の動画生成部105は、合成により第3動画superimpose(move(u-s,v-t,Y),X)を出力して(ステップS187)、本処理を終了する。
このような構成により、ユーザは、動画Yに描かれたオブジェクトが動画X内のオブジェクトとは衝突しないように位置付けた第3動画を得ることができる。第3動画では、動画Yに描かれたオブジェクト同士の衝突が生じないから、オブジェクト同士が互いに噛み合ってしまうような不自然な描写を防止することができる。
一方、図5Cに示すドロップ操作をしたとしても、衝突が生じてしまう場合には(ステップS186;Yes)、動画処理装置101は、音声や振動、画面表示などで警告を発して(ステップS188)、本処理を終了し、新たな動画は出力しない。すなわち、ユーザの指示が適切であれば、第3動画が生成されるが、不適切であれば、警告が生じるのみで第3動画が生成されない。
なお、上記の各種の変換は、フレーム単位で行われる。したがって、ある動画に変換を施して別の動画を得る際に、全フレームに対するmove等の変換処理をまとめて行ってから、衝突判定等の他の計算処理を実行しても良いし、変換処理をデマンドドリブンに行う遅延評価を採用しても良い。
以降の実施例を含め、変換処理をデマンドドリブンに行うのであれば、あるフレームについての重複判定等を行う必要があって初めて、当該フレームについての変換が行われることになる。したがって、衝突が一切生じないという結論を得るためには、全フレームについての変換が必要であるが、動画の途中のフレームで衝突が判明した場合には、以降のフレームに対する変換処理は実行されない。
このほか、ドラッグアンドドロップによりずらし量を指定する手法では、ずらし量は、ドロップされた第2動画Y用のウィンドウ412の位置が、第1動画X用のウィンドウ411の位置に対してどれだけずれているか、により表現される。ただし、ずらし量は、第2動画Yに対して適用される量であるから、ずらし量の入力に際しては、第1動画Xとの対比は必須ではない。したがって、ユーザがキーボードを利用して直接数値を入力したり、マウスなどを利用して視覚的にずらし量を入力する手法を採用しても良い。
以下では、ユーザの指示が不適切である場合に、単に警告を発するのにかえて、自動調整を行う手法について説明する。
本実施形態は、ユーザから指定された第2動画Yの平行移動量では、第1動画Xのオブジェクトと第2動画Yのオブジェクトが衝突してしまう場合に、その衝突を避けたり、第2動画Yのオブジェクトが第1動画Xの床や天井に接しているかのように配置するための自動調整を行うものである。
この自動調整では、第2動画Yを上下左右に平行移動しては衝突が生じるかを判別する試行を少なくとも一回、多くの状況では複数回繰り返して実行する。この処理は、動画処理装置101の修正部106が行う。図8は、本実施例に係る自動調整処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
一回の試行における上下左右の移動量は、水平方向Δp、垂直方向Δqで表記することとする。Δp,Δqに定数を採用した場合には、第2動画Yをあらかじめ設定された方向にずらしながら調整することになる。
理解を容易にするため、図5A乃至図5Dと同様に、ユーザが第2動画Y内の位置[s,t]をクリックし、クリックを維持したまま第1動画X内の位置[u,v]までドラッグした後に、クリックをやめてドロップした場合を考える。
この場合、本実施例の動画処理装置101は、以下の処理を行う。
まず、動画処理装置101のずらし量設定部104は、変数pの初期値としてuを、変数qの初期値としてvを、それぞれ設定する(ステップS191)。これにより、水平方向のずらし量の初期値としてp-s = u-sが、垂直方向のずらし量の初期値としてq-t = v-tが、それぞれ設定されたことになri,ずらし量設定部104は、初期値設定部として機能する。
次に、動画処理装置101の衝突判定部103は、位置条件「第1動画Xと、設定されたずらし量だけ第2動画Yをずらした中間動画move(p-s,q-t,Y)と、の間でオブジェクト衝突が生じない」が成立するか否かを判定する(ステップS192)。
成立すれば(ステップS192;Yes)、動画生成部105は、合成により第3動画superimpose(move(p-s,q-t,Y),X)を出力して(ステップS193)、本処理を終了する。
一方、成立しなければ、修正部106は、変数pの値をΔpだけ増やし、変数qの値をΔqだけ増やす(ステップS194)。これにより、ずらし量が微小に更新される。
そして、動画Yの平行移動量(p-s,q-t)が大きくなりすぎた場合や、繰り返し回数が所定の閾値を超えた場合等、断念条件が満たされた場合には(ステップS195;Yes)、衝突が避けなれないと判断し、警告を発して(ステップS196)、本処理を終了する。
一方、断念条件が満たされず、繰り返しを継続する場合(ステップS195;No)、動画処理装置101の制御は、ステップS192に戻る。
さて、多くの動画の座標系では、垂直方向の座標値を大きくする方向は、画面下向きの方向に相当する。第2動画Yに描かれているオブジェクトを画面の下方向に移動させて配置するには、(Δp,Δq) = (0,1)と設定すれば良い。
また、当初は、(Δp,Δq) = (0,1)に設定して、上記の自動調整処理を実行した結果、衝突が避けられないと判定された場合には、(Δp,Δq) = (0,-1)に再設定して、同様の自動調整処理を再度実行することとしても良い。
これは、まず、上から下へ移動しながら衝突が避けられる平行移動量を探し、見つからなければ、今度は、下から上へ移動しながら衝突が避けられる平行移動量を探すことに相当する。
さて、上記の説明では、干渉判定部として、単に衝突判定部103を採用している。これは、オブジェクト同士の位置関係について、オブジェクト衝突が生じない、という位置条件を課したことに相当する。しかしながら、衝突判定部103による判定結果を利用すれば、干渉判定部における位置条件として他の条件を採用することもできる。
たとえば、位置条件を『「第1動画Xと動画move(p-s,q-t,Y)との間でオブジェクト衝突が生じない」かつ「第1動画Xと動画move(p-s,q+1-t,Y)との間でオブジェクト衝突が生じる」』に変更することもできる。このように変更すると、第2動画Yに描かれたオブジェクトを第1動画Xに重ねる際に、第2動画Yに描かれたオブジェクトが地面にほぼ接するように位置合わせしたことになる。
また、位置条件を、『「第1動画Xと動画move(p-s,q-t,Y)との間でオブジェクト衝突が生じない」かつ「第1動画Xと動画move(p+Δp-s,q+Δq-t,Y)との間でオブジェクト衝突が生じる」』に変更することもできる。
この場合には、ある方向への平行移動量を探す際には、できるだけ先に進むように設定して、試行を繰り返すことになる。たとえば、上から下へ移動する際には、第2動画Yのオブジェクトが第1動画Xの床に接するまで移動することになり、下から上に移動する際には、第2動画Yのオブジェクトが第1動画Xの天井に接するまで移動することになる。
なお、第1動画Xに地面が描かれており、第2動画Yに平面上を移動するオブジェクトが描かれていて、第1動画Xにおけるカメラの地面に対する向きが第2動画Yにおけるカメラの平面に対する向きにほぼ一致する場合等には、上記の処理を行えば、第2動画Yに描かれたオブジェクトを第1動画Xに重ねる際に、第2動画Yに描かれたオブジェクトが地面にほぼ接するか、もしくは、地面から離間して浮くように位置合わせしたことになる。
ここで、第1動画Xに描かれているオブジェクトが地面や天井、壁などのように静止しているオブジェクトであることがわかっている場合がある。たとえば、事前にユーザがあるフレームにおいてオブジェクトを指定したことにより確定している場合、ユーザによる過去の編集履歴によりわかっている場合、第1動画Xの各フレームを対比することによりわかっている場合等である。
この場合には、位置条件を上記のように設定することは、合成されるオブジェクトが、3次元空間において占めることができる可動範囲を設定したことを意味する。すなわち、「オブジェクトは、衝突さえしなければ宙に浮いていても良い」「オブジェクトは、床や地面に接している」「オブジェクトは、天井に接している」など、3次元空間におけるオブジェクトの可動範囲の条件を課した動画合成を行うことができる。
さて、上記のように、(Δp,Δq)は、第2動画Yに描かれるオブジェクトの描画位置の変位を表すベクトルであり、この向きを設定することによって、移動方向や移動量を適宜変更することが可能である。
上記の態様では、第2動画Yをあらかじめ設定された方向に沿って移動してから第1動画Xに重ねることで、第1動画Xおよび第2動画Yに描かれたオブジェクトが互いに衝突しないような新たな動画を生成することとしており、動画Yの上下方向のみの平行移動を想定していた。
しかしながら、上記のような移動を行った後に、位置条件を満たしつつも、ずらし量とユーザに設定された初期値との相違が最小となるように、ずらし量を修正しても良い。この場合には、ユーザの指定に最も近いずらし量が採用されることになる。
また、(Δp,Δq)の方向として、第1オブジェクトの代表点と、第2オブジェクトの代表点と、の、ベクトル差を採用することもできる。この場合には、第2オブジェクトが、第1オブジェクトに近付く方向、もしくは、第1オブジェクトから遠ざかる方向に移動するような平行移動がなされることになる。
これらの手法をさらに進めて、評価関数を適切に定め、これを最小化することで、オブジェクトの衝突を避ける手法を採用しても良い。ここでは、オブジェクトが衝突するときの「衝突量」を最小化することを考える。
ここで、動画Xと動画Yとの衝突量を、動画Xと動画Yにおいて衝突するオブジェクトが描画されている衝突領域の面積の総和と考えると、当該衝突量は、
collision(Y,X) =Σt,x,y;X(t)[x,y].id≧0,Y(t)[x,y].id>0,overlap(X,Y,t,x,y)>0 1
によって計算が可能である。
また、衝突するオブジェクトが3次元空間において重複している体積の総和の推定量を衝突量とする場合には、
collision(Y,X) =Σt,x,y;X(t)[x,y].id≧0,Y(t)[x,y].id>0,overlap(X,Y,t,x,y)>0 overlap(X,Y,t,x,y)
を採用することができる。このように計算される衝突量を評価関数とする。
衝突量を最小化するには、未定変数の更新方向(Δp,Δq)をランダムウォーク、最急降下法、共役勾配法により定めたり、(Δp,Δq)の候補として、あらかじめ(1,0),(0,1),(-1,0),(0,-1)等を用意し、それぞれを採用した場合の衝突量の変化を求め、衝突量が最も減少するものを選択することによって、p,q等、動画Yをずらす程度を表す変数の値の更新を繰り返せば良い。
たとえば、平行移動を行う場合には、s,t,u,vを上記のように定め、変数p,qの初期値をu,vとし、collision(move(p-s,q-t,Y),X)を最小化するp,qを求め、到達した最終点において、collision(move(p-s,q-t,Y),X)=0が成立すれば、オブジェクト同士の衝突を避けた平行移動量p-s,q-tを求めることができたことになる。
このほか、上下左右の平行移動のほか、奥行方向の平行移動や回転、拡大縮小、時間ずらしを任意に組み合わせても良い。
たとえば、上下左右と奥行方向の平行移動を組み合わせる場合には、s,t,u,vを上記のように定め、p,q,rの初期値をu,v,0とし、collision(push(r,move(p-s,q-t,Y)),X)を最小化するp,q,rを求める。
水平軸および垂直軸周りの回転と平行移動を組み合わせる場合には、s,t,u,vを上記のように定め、p,q,θ,φの初期値をu,v,0,0とし、collision(rotver(φ,rothor(θ,move(p-s,q-t,Y))),X)を最小化するp,q,θ,φを求める。
さて、極端な平行移動や回転が生じると、本来であればオブジェクトの背面の描画が必要となることがある。しかしながら、動画Yは2.5次元動画であるから、オブジェクトの背面の情報は持っていない。そこで、平行移動量p-s,q-t,rや回転量θ,φ,ψ等には、あらかじめ上限および下限を設けておくことで、動画Yのオブジェクトの移動が不自然に見えてしまうことを防止することができる。
このほか、できるだけずらし量を小さくするため、平行移動量p-s,q-t,rや回転量θ,φ,ψ等の変換パラメータの絶対値あるいは自乗値に所定の整定数を乗じた値と上記の衝突量とを加算した結果を、評価関数としつつ、衝突量が0になるまで、変換パラメータの更新を続ける、という手法もある。変換パラメータの初期値をユーザが指定した値とした場合には、変換パラメータの変位を評価関数に組み込めば、ユーザが指定した値にもっとも近いずらし量を見つけることも可能である。
さらに以下では、ユーザの指示により、奥行方向の平行移動量を調整するような態様を考える。
まず、奥行方向の平行移動量を0としたまま、上記の手法で、オブジェクトが床に接するようにp,qを選ぶ。その結果、第1動画Xに動画move(p-s,q-t,Y)を重ねた動画が得られたものとする。
この後、ユーザは、マウスのホイール操作等によって奥行方向の平行移動量rを指定する。
そして、条件『「第1動画Xと動画push(r,move(p-s,q-t,Y))との間でオブジェクトが衝突しない」かつ「第1動画Xと動画push(r,move(p-s,q+1-t,Y))との間でオブジェクトが衝突する」』が満たされるまで、上記の態様と同様に、(Δp,Δq)を用いて変数(p,q)の更新を繰り返す。
これらの態様を採用することにより、ユーザが指定した平行移動量だけ奥行移動をしつつも、オブジェクトは床に触れたままとした動画を生成することが可能となる。
なお、自動調整の際には、まず、第1動画Xと第2動画Y(あるいは、第2動画Yをユーザの指示にしたがってずらした動画)を合成した第3動画Zを生成してしまう態様を採用することもできる。この態様では、合成の際に、第3動画Zにおける各画素がいずれのオブジェクトに由来するものであるか、ならびに、あるオブジェクトが別のオブジェクトを隠して描画されたものであれば、当該隠されたオブジェクトの当該隠された領域における画素値と奥行情報を別途保存しておく。
そして、オブジェクトの衝突が生じないように、これらの保存した情報を参照しつつ、第3動画Zを修正するのである。なお、修正の際には、オブジェクトの奥行方向が変化することがありうる。この場合には、オブジェクトがフレーム内に描かれる際に拡縮を行うから、オブジェクトの外観の精度をできるだけ保つために、元の第2動画Yにおける画素情報を参照するのようにしても良い。
これらの態様は、上記の手法と比べると、情報の記憶手法を異なる態様とし、計算処理の順序の入れ換えを行っただけであり、その動作原理は実質的に同一であるとみなすことができる。
このほか、衝突量は、オブジェクト同士の食い込みの量を示すものと考えられるから、「オブジェクト同士がある程度食い込んでも良い」という条件を課して動画の合成を行うことも可能である。
さて、上記の種々の手法を採用したとしても、オブジェクトの衝突を避けられないことがある。このような場合には、以下に説明するような工夫が必要となる。
上記の実施例では、ユーザが動画Yのオブジェクトの上下左右の平行移動量を指定して動画Xに重ねようとして、オブジェクトの衝突が生じてしまう場合に、警告を発する態様(実施例2)と、自動的に平行移動量を調整する態様(実施例3)と、を説明した。
本実施例は、上記の実施例の両方に適用が可能なもので、ユーザがドロップ可能な領域、すなわち、ユーザのドロップ操作によってオブジェクトが衝突しない動画が生成されるようなドロップ位置からなる領域を、ユーザのドロップ操作の前に理解しやすく提示しようとするものである。
図9Aは、ドラッグが開始される以前の画面の様子を示す説明図であり、図9Bは、ドラッグが開始される時点の画面の様子を示す説明図であり、図9Cは、ドラッグの途中の時点の画面の様子を示す説明図であり、図9Dは、ドロップがされた時点の画面の様子を示す説明図である。以下、これらの図を参照して説明する。
図10は、ドロップ可能領域の強調表示処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
まず、第2動画Yを水平方向、垂直方向にずらす際に採用可能な任意のずらし量の候補を添字とする配列FをRAM内に用意する(ステップS501)。なお、以下では添字として[ps,qt]を採用するが、ps,qtは、負の値をとることもありうる。すなわち、psは、第2動画Yの幅の符号を反転した値から第1動画Xの幅と第2動画Yの幅の和までの間の整数、qtは、第2動画Yの高さの符号を反転した値から第1動画Xの高さと第2動画Yの高さの和までの間の整数とすれば良い。
そして、第2動画Yに対して、採用可能なずらし量の候補[ps,qt]について(ステップS501)、第1動画Xと、第2動画Yをずらした中間動画move(ps,qt,Y)との間で、オブジェクトの衝突判定を行い(ステップS502)、配列Fの要素F[ps,qt]に衝突判定の結果を代入する(ステップS503)処理を繰り返す(ステップS504)。
この後、上記実施例と同様に、第1動画Xのウィンドウ411と、第2動画Yのウィンドウ412と、を画面に表示し(ステップS506)。ドラッグの開始を受け付ける(ステップS507)。
ここで、ユーザがマウスを用いて、第2動画Y内の位置[s,t]をクリックしてドラッグが開始されたとする。
ここで、第2動画Yの位置[s,t]が、第1動画X内の位置[p,q]にドロップされたとすると、第2動画Yをずらした中間動画は、move(p-s,q-t,Y)となる。
したがって、第1動画Xと、中間動画move(p-s,q-t,Y)と、の間で、オブジェクトが衝突するか否かは、配列の要素F[p-s,q-t]を参照すれば良い。
そこで、動画処理装置101は、第1動画X内の各位置[p,q]について(ステップS508)、F[p-s,q-t]の値に応じて、第1動画X内の各位置[p,q]の画素の色彩(彩度、明度、色相のいずれか、もしくは、これらの組み合わせ)を変化させる(ステップS509)処理を繰り返す(ステップS510)。
これにより、ユーザによるドロップが可能な領域と、不可能な領域と、が、区別され、一方が強調表示されることになる。
強調表示の手法としては、「強調表示すべき画素の色彩を変化させるが、それ以外の画素の色彩は変化させない」あるいは「強調表示すべき画素の色彩は変化させずに、それ以外の画素の色彩を変化させる」手法がありうる。
上記実施例におけるこの後は、ステップS183に進めば良い。
以下、実例を掲げて説明する。ドラッグを開始する前は、図9Aに示す通り、ウィンドウ411には、第1動画Xがそのまま描かれている。
ドラッグが開始された瞬間に、動画処理装置は、ドロップが可能な領域を計算する。そして、図9Bに示すように、ウィンドウ411内のドロップ可能領域を強調表示する。本図では、強調表示はハッチングにより図示されている。
ユーザは、図9Cに示すように、カーソル413をドロップ可能領域内にドラッグしてから、図9Dに示すようにドロップ処理を行えば、オブジェクトが衝突しない第3動画が得られることになる。
上記の手法では、クリックをした後の強調表示の体感速度を向上させることができ、クリックをやり直した場合(図示せず)の再描画を高速に行うことができる。
ただし、十分な計算速度が実現できる場合には、ユーザのドラッグ操作が開始され、[s,t]が確定してから第1画像X内の任意の位置[p,q]について、ずらし量[p-s,q-t]に基づく衝突判定を行い、強調表示をすることとしても良い。
このように、本手法では、ユーザは、第2動画Yに対するドラッグを開始すると、第1動画Xのどこにドロップ操作を行えば新たな動画が得られるか、が、容易にわかる。
ここで、実施例3における平行移動量の自動調整は、ドロップ可能領域外にドロップがされてしまった場合に、ドロップ位置をドロップ可能領域内に修正することに相当する。
本実施例では、動画Xのフレーム内のすべての位置について、ドロップ可能か否かが判定されるから、本実施例を採用した場合には、ドロップ可能領域外にドロップがされてしまったら、「ドロップ可能領域内のうちそのドロップ位置から最も近い点」や、「ドロップ可能領域内の中心点」などに、ドロップ位置を修正するだけで、上下左右の平行移動量の自動調整が可能となる。
なお、ドロップ可能領域とドロップ可能領域外とを区切る境界に、ドロップ位置を修正する、ということは、第1動画のオブジェクトと、第2動画のオブジェクトと、が、互いに接触する瞬間があることを意味する。
したがって、オブジェクトができるだけ床に接するようにするには、ドロップ可能領域の下限にドロップ位置を修正すれば良い、と考えられる。
図9Eは、ドロップ後に、ドロップ位置の自動修正を行った様子を示す説明図である。本図に示すように、ウィンドウ412内の位置[s,t]は、ウィンドウ411内の位置[u,v]の下方の、ドロップ可能領域の下限に重なるように配置修正されている。
本実施例によれば、ユーザがドロップ可能な位置を容易に理解できるようになるとともに、ドロップできない位置にドロップをした場合であっても、すでに計算された情報を利用して、容易にドロップ位置を修正できるようになる。
動画Xに描かれるオブジェクトiの、3次元空間における代表点の座標は、上記のように、(xc(X,t,i),yc(X,t,i),zc(X,t,i))と表記することができる。これは時刻tによって変化する3次元の位置ベクトルpos[X,i](t)と見ることができる。
上記の実施例では、動画Yに描かれているオブジェクトjを動画Xに重ねようとする際に、オブジェクトjが動画Xに描かれているオブジェクトに衝突してしまう場合には、動画Yを上下左右や奥行方向に平行移動したり、回転したり、時間ずらしをした動画Wを得て、動画Xに重ねていた。
平行移動や回転等は、合同変換であるから、これらの変換のみを利用した場合には、オブジェクトjの軌跡である位置ベクトルpos[Y,j](t)と、位置ベクトルpos[W,j](t)と、は、向きや位置は異なるかもしれないが、形状は同じである。すなわち、軌跡を変形しない非変形変換が施されたため、軌跡pos[Y,j](t)と、軌跡pos[W,j](t)と、は、合同である。
図11Aは、軌跡pos[X,i](t)と軌跡pos[Y,j](t)の様子を示す説明図である。
図11Bは、軌跡pos[X,i](t)と軌跡pos[W,j](t)の様子を示す説明図である。
これらの図では、横軸に各軌跡の水平方向の位置が、縦軸に時間の経過が図示されている。また、各軌跡には、そのオブジェクトの水平方向の広がりを示す細長い長方形が付してある。
図11Bにおける軌跡pos[W,j](t)は、図11Aにおける軌跡pos[Y,j](t)を水平方向に移動したもので、両者の形状は合同である。
動画Xのオブジェクトiと、動画Yのオブジェクトjと、が、時刻Tにおいて衝突していれば、図11Aに示すように、軌跡pos[X,i](t)と軌跡pos[Y,i](t)は、時刻Tにおいて近接しており、オブジェクトの水平方向の広がりを表す長方形が重なることになる。
一方、動画Xのオブジェクトiと、動画Wのオブジェクトjと、の間では、衝突は生じない。したがって、図11Bに示すように、オブジェクトの水平方向の広がりを表す長方形に重なりはない。
しかしながら、このような合同変換のみでは、衝突が避けられない場合もある。そこで、本実施例では、修正部106が、オブジェクトの軌跡を変形するような変形変換を動画に施すこととして、オブジェクト同士の衝突を防止する。
以下では、背景を持つ動画Xに描かれているオブジェクトiの軌跡pos[X,i](t)そのものは変形せず、動画Xに重ねられる動画Yに描かれたオブジェクトjの軌跡pos[Y,j](t)を変形する手法について説明する。
まず、軌跡を表す位置ベクトルpos[Y,j](t)が変形して位置ベクトルmorph(t)になったものとする。
以下では、.x,.y,.zを付加することによって、位置ベクトルの各座標値を表記する。
軌跡の変形によって、奥行は、morph(t).z/pos[Y,j](t).z倍になる。これは、時刻tにおいてオブジェクトjを動画Yのフレーム内でpos[Y,j](t).z/morph(t).z倍に拡大することを意味する。
また、時刻tにおいてオブジェクトjは、水平方向および垂直方向にも移動される。その移動量は、それぞれ、(morph(t).x-pos[Y,j](t).x)×pos[Y,j](t).z/morph(t).z,(morph(t).y-pos[Y,j](t).y)×pos[Y,j](t).z/morph(t).zである。
したがって、軌跡を変形した場合には、オブジェクトの選択、平行移動や拡大縮小を組み合わせることによって、あるオブジェクトの軌跡変形済みの動画を得ることができる。
軌跡の変形がオブジェクト同士の衝突を避けるように行われていれば、軌跡変形済みの動画を重ね合わせることで、複数の動画に描かれていたオブジェクト同士が衝突せずに移動する様子を描いた1つの動画を生成することが可能となる。
以下では、軌跡の変形の種々の手法について、説明する。
第1の手法は、overlap(X,Y,t,x,y)>0が成立している時刻tにおいて、動画Yに含まれるオブジェクトj=Y(t)[x,y].idの代表点の位置pos[Y,j](t)を、動画Xに含まれるオブジェクトi=X(t)[x,y].idの代表点の位置pos[X,i](t)から遠ざかる方向、あるいは、軌跡pos[Y,j](t)の主法線ベクトルの方向に移動するように、オブジェクトjの軌跡を変形する処理を、時間前後における変形の度合の変化が小さくなるように繰り返して、いずれの時刻においてもoverlap(X,Y,t,x,y)=0が成立するようにするものである。
図12A乃至図12Dは、処理を繰り返すことによって、軌跡が次第に変形していく様子を示す説明図である。以下、本図を参照して説明する。
図12Aは、図11Aと同様に、軌跡pos[X,i](t)と、軌跡pos[Y,j](t)と、が、時刻Tで近接している。
そこで、図12Bでは、衝突が生じないように、時刻Tにおけるオブジェクトjの位置を、修正している。
この修正量が大きかったため、図12Cでは、時刻Tの前後T-1,T+1におけるオブジェクトjの位置を、図12Bにおける修正量よりも小さい量だけ、修正している。
この修正量がまだ大きかったため、図12Dでは、前回の修正の前後T-2,T+2におけるオブジェクトjの位置を、図12Cにおける修正量よりも小さい量だけ、さらに修正している。
これで修正は十分となり、図12Dに図示される軌跡が、最終的に得られた軌跡morph(t)に相当する。
なお、隣接するフレームに対して伝播させる修正量は、自身のフレームに対する修正量に0以上1未満の定数を乗ずることにより減衰させ、修正量が所定の閾値より小さくなったら、伝播を終了させれば良い。
なお、軌跡の変形の際には、上記のように時刻の前後に修正を伝播するのではなく、スプライン補間などを利用することで、滑らかな修正を行うこととしても良い。
また、本手法では、衝突量が最大の時点に達して上記のような修正ならびに修正量の伝播を行い、まだ衝突が生じていたら、同じ処理を繰り返すこととすれば、修正量および修正回数をできるだけ小さくすることができる。
第2の手法は、時刻tにおいて軌跡pos[Y,j](t)を変形する際に、軌跡の接ベクトル(速度ベクトルに相当する)の大きさは変化させず、主法線ベクトル(速度ベクトルに直交するベクトルで、速度ベクトルの向きを曲げようとする方向に相当する。)の大きさのみを変化させることとし、collision(Y,X)を最小化して0にするとともに、当該主法線ベクトルの大きさの変化の総和(典型的には自乗和)も最小化するという手法である。
図8は、衝突を避けるために、軌跡の特定部分において主法線ベクトルを調整した様子を示す説明図である。本図は、軌跡の形状をそのまま表すものである。
本図では、軌跡pox[X,i](t)が、軌跡pos[Y,j](t)と、時刻Tで衝突する。そこで、時刻Tの前後の調整区間T-a〜T+aで、衝突が生じないように、軌跡pos[Y,j](t)の曲がり方を調整して、修正後の軌跡morph(t)を得る。
軌跡pos[Y,j](t)と、軌跡morph(t)と、は、時刻T+a以降の形状は合同である。
第1の手法は、計算が簡易であるものの、動画によって表現されているオブジェクトjの動きと軌跡とのずれが大きくなってしまうことがあり、このときには、オブジェクトjが突然「ムーンウォーク」をしたかのように、見えてしまうことがある。
オブジェクトjが不自然が動きをしたか否かは、オブジェクトjの軌跡の接線ベクトルの大きさや向き、主法線ベクトルの大きさ(これは、軌跡の曲率に相当する値である。)や向きの変化が所定の閾値を超えたか否かによって判定することも可能である。
軌跡の変形によってオブジェクトの動きが不自然であると判断された場合には、その旨の警告を出力すれば、ユーザにとって利便性が高い。
なお、軌跡の変形処理の繰り返しにおいて、軌跡の変形量にあらかじめ上限を設定しておくこととしても良い。この場合には、オブジェクトの動きが不自然となることはないが、衝突を避けることができない可能性がある。
第2の手法は、計算は煩雑ではあるが、オブジェクトjの移動方向が微小に変化するのみであり、移動速度の大きさは変化しないので、「ムーンウォーク」は生じない。
動画Xに、オブジェクトiのほか、背景も描かれている場合には、オブジェクトiの軌跡を変化させると、背景とオブジェクトiの間に画素情報がない隙間が生じてしまうことがある。そこで、本実施形態では、動画Yに描かれているオブジェクトjの軌跡のみを変形することとしている。
しかしながら、動画Xに、背景が含まれない場合には、オブジェクトiとオブジェクトjが衝突する場合に、両方の軌跡を変形させても良い。第1の手法では、オブジェクトiとオブジェクトjとが互いに遠ざかる方向に移動させれば良いし、第2の手法では、オブジェクトiの軌跡の主法線ベクトルの変化量と、オブジェクトjの軌跡の主法線ベクトルの変化量と、の、両方を最小化すれば良い。
なお、本手法においても、主法線ベクトルの変化量に上限を設けるか、あるいは、主法線ベクトルの変化量が所定の閾値を超えた場合には警告を発するなどして、オブジェクトの不自然な動きを防止し、ユーザの利便性を向上させることができる。
本態様では、動画内に描かれたオブジェクトの単純な平行移動、回転、拡大縮小などでは衝突が避けられない場合であっても、軌跡を変形することによって、衝突を防止することができるようになる。
なお、本実施例ならびに上記の実施例においては、オブジェクトの衝突を避けるための手法を開示している。しかしながら、所望の時点においてオブジェクトの表面の接触が生じる、という制約条件を課すことも可能である。
すなわち、所望の時点において、2つのオブジェクトが重なって描画される位置における当該2つのオブジェクトの前面奥行から背面奥行までの占有区間に重複があり、かつ、overlapが0である、という制約を課した上で、その制約を満たすようなオブジェクトの移動や軌跡の変形を行うことになる。
このほか、両動画X,Yに描かれるオブジェクトi,jの軌跡の両方を変形させることとしても良い。この場合には、オブジェクトi用の変形パラメータと、オブジェクトj用の変形パラメータと、を、まとめて取扱い、衝突量の最小化を図るような変形を行えば良い。
動画Yに描かれるオブジェクトjが、平面の上でダンスをするようなオブジェクトであり、動画Xにおける背景に床が含まれる場合には、オブジェクトjが動画Xの床の上でダンスをするように重ね合わせることが望ましい。本実施例は、これを実現するものである。
上記の実施例では、動画Xにおける地面に対するカメラの傾きと、動画Yにおける平面に対するカメラの傾きと、が一致する状況について説明したが、本実施例は、必ずしもこれらの一致を要しない。
まず、動画Yに描かれるオブジェクトjの代表点として、画面の最も下方に描かれている点を選択する。オブジェクトjがダンスをするキャラクターである場合には、ここで選択される代表点は、当該キャラクターの足先に相当する。
代表点の画素位置[xb(Y,t,j),yb(Y,t,j)]は、たとえば、以下のように計算することができる。
yb(Y,t,j) = minx,y;Y(t)[x,y].id=j y;
xb(Y,t,j) = minx;Y(t)[x,yb(Y,t,j)].id=j x
ここで、オブジェクトjの最下点と、動画Xの床とが接していれば、
X(t)[xb(Y,t,j),xb(Y,t,j)].id = 0;
Y(t)[xb(Y,t,j),xb(Y,t,j)].id = j;
X(t)[xb(Y,t,j),xb(Y,t,j)].fore = Y(t)[xb(Y,t,j),xb(Y,t,j)].fore
が成立するはずである。
したがって、collision(Y,X)を最小化して0にするとともに、X(t)[xb(Y,t,j),xb(Y,t,j)].foreとY(t)[xb(Y,t,j),xb(Y,t,j)].foreの差の総和(典型的には自乗和)も最小化するように、動画Yに対する上下左右ならびに奥行の平行移動量や各軸周りの回転量を定めれば、動画Yに描かれたオブジェクトjが、動画Xに描かれる床面に接するようになる。
なお、オブジェクトjがダンスの途中で床からジャンプした場合は、X(t)[xb(Y,t,j),xb(Y,t,j)].foreとY(t)[xb(Y,t,j),xb(Y,t,j)].foreを完全に一致させることはできないが、最小化を行うことで、ジャンプをしていない瞬間に床から離間してしまう状況は防止することができる。
また、最小化によって、できるだけ動画Yにおいてオブジェクトjが乗っていた床と、動画Xにおける床とを、できるだけ一致させて、動画Xに重ねられるオブジェクトjの振舞いをできるだけ自然にすることができる。
上記の実施例では、2.5次元動画に対する各種の変換において、一つのオブジェクト内の各位置および各奥行情報に情報に対して個別な計算処理を行って、これらをできるだけ反映させるような演算を行っていた。本実施例では、オブジェクトの代表点を利用して近似を行うことで、演算負荷をさらに小さくする。
すなわち、本実施例では、動画Xの時点tにおけるオブジェクトiの代表点の動画X内における座標(xc(X,t,i),yc(X,t,i))ならびに代表点の奥行座標zc(X,t,i)が計算される。
ここで、オブジェクトiは、全体としてひとまとまりの動きをするから、オブジェクトiの各部の奥行座標は、zc(X,t,i)で近似できる。したがって、代表点の奥行がzc(X,t,i)からzc(X,t,i)+rに変化するときに、各位置における奥行が〔zc(X,t,i)+r〕/zc(X,t,i)倍になった、と近似するのである。このような近似が効果的であるのは、動画の奥行方法の平行移動、水平軸、垂直軸周りの回転である。
具体的には、平行移動や水平軸、垂直軸周りの回転の対象となるオブジェクトiの代表点のみの移動先を、上記の実施例と同様の演算により求める。そして、その移動先を中心に、代表点の奥行の変化に応じて動画を拡大縮小して配置することで、上記の演算を簡略化する。
本実施例における変換では、オブジェクトiの形状を、奥行方向に垂直な板の表面に絵が描かれた物体と仮定して、奥行方法の平行移動や水平軸、垂直軸周りの回転がされた場合であっても、この板を奥行方向に垂直なまま移動することに相当する。
奥行方向の平行移動では、板は奥行方向に垂直なままである。本実施例では、水平軸、垂直軸周りの回転角に上限を設けることにより、回転角は数度程度までとして、板の位置は回転によって変化させるが、板の向きは奥行方向に垂直なままと考える。
以下、具体的な変換の演算について説明する。
動画Xに描かれたオブジェクトiを奥行方向にrだけ移動することにより得られる動画は、以下の処理を行うことによって得られる。
(a)動画Xからオブジェクトiのみを選択し、
(b)フレームに沿って(xc(X,t,i),yc(X,t,i))が原点になるように平行移動し、
(c)zc(X,t,i)/〔zc(X,t,i)+r〕倍に動画を拡大縮小し、
(d)フレームに沿って原点が(xc(X,t,i),yc(X,t,i))になるように平行移動する。
したがって、動画Xに描かれたオブジェクトiを奥行方向にrだけ移動する変換をpush'(i,r,X)と標記すると、
push'(i,r,X) = move(xc(X,t,i),yc(X,t,i),
scale(zc(X,t,i)/〔zc(X,t,i)+r〕,
move(-xc(X,t,i),-yc(X,t,i),
select(i,X))))
となる。
また、動画Xに描かれたオブジェクトiを水平軸周りにθだけ回転すると、オブジェクトの代表点の動画内における座標は、(xc(X,t,i),yc(X,t,i))から(xc(X,t,i),zc(X,t,i)×cosθ-yc(X,t,i)×sinθ)へ移動し、奥行は、zc(X,t,i)からzc(X,t,i)×sinθ+yc(X,t,i)×cosθへ移動する。すなわち、以下の処理を行えば良い。
(a)動画Xからオブジェクトiのみを選択し、
(b)フレームに沿って(xc(X,t,i),yc(X,t,i))を(xc(X,t,i),zc(X,t,i)×cosθ-yc(X,t,i)×sinθ)へ移動し、
(c)zc(X,t,i)/〔zc(X,t,i)×sinθ+yc(X,t,i)×cosθ〕倍に動画を拡大縮小する。
したがって、動画Xに描かれたオブジェクトiを水平軸周りにθだけ回転する変換をrothor'(i,θ,X)と標記すると、
rothor'(i,θ,X) = scale(zc(X,t,i)/〔zc(X,t,i)×sinθ+yc(X,t,i)×cosθ〕,
move(0,zc(X,t,i)×cosθ-yc(X,t,i)×sinθ-yc(X,t,i),
select(i,X)))
となる。
動画Xに描かれたオブジェクトiを垂直軸周りにφだけ回転する変換rotver'(i,θ,X)も、同様に定義される。すなわち、
rotver'(i,φ,X) = scale(zc(X,t,i)/〔zc(X,t,i)×sinθ+xc(X,t,i)×cosθ〕,
move(zc(X,t,i)×cosθ-xc(X,t,i)×sinθ-xc(X,t,i),0
select(i,X)))
となる。
本実施例では、動画に描かれた一つのオブジェクトに対する変換を計算負荷が軽い演算move,select,scaleの組み合わせによって実現するため、処理の高速化を図ることができる。
上記実施例では、動画Xの時間をdだけずらす変換shift(d,X)としたが、動画Xをスロー再生したり早送りしたりする変換を考えることもできる。
動画Yが、動画Xをa倍に早送りしたものであれば、
Y(t)[x,y] = X(t/a)[x,y]
が成立する。以下、この変換をfastforward(a,X)と表記する。
動画Xに描かれるオブジェクトiと、動画Yに描かれるオブジェクトjと、が、いずれも、ある動作を繰り返し行うもので、オブジェクトiとオブジェクトjとが、動画内における特定の場所に交互に登場するような動画Zを合成したい場合に、shift,fastforwardの組み合わせが利用できる。
たとえば、臼の中の餅を杵で搗く動作をする人物(オブジェクトi)を撮影した動画Xと、同じ臼の中の餅を手でこねる動作をする人物(オブジェクトj)を撮影した動画Yと、を合成して、人物A、人物Bが共同して餅搗きする様子を表す動画を生成したい場合などである。
臼におよび周辺の様子、ならびに、撮影を行ったカメラの位置および向きが、動画X、動画Yにおいて共通する場合には、衝突量を表す評価関数を最小化するように、shift,fastforwardに対するパラメータを求めれば良いことになる。
このほか、家具や電気製品を家屋内に配置できるか否かを動画から判定したい場合に、これらの変換を適用することもできる。
たとえば、扉が開閉する洗濯機が、自宅の洗面所に配置できるか否かを、動画から判定したい場合には、以下のような処理を行えば良い。
すなわち、電気製品メーカーもしくは電気製品の販売者は、洗濯機の扉が周期的に開閉する様子を正面から撮影した動画Xをウェブなどにおいて提供する。
一方、洗濯機の購入を検討しているユーザは、洗濯機を設置しようと考えている部屋の箇所における部屋の扉や家具の扉が周期的に開閉する様子を正面から撮影した動画Yを用意する。
動画Xにおけるカメラから洗濯機までの距離と、動画Yにおけるカメラから洗濯機設置の候補箇所までの距離と、がほぼ一致するように、正規化を行った後、ユーザは、動画Xにおける洗濯機のオブジェクトを、動画Yにおける設置候補の箇所にドラッグアンドドロップする。
そして、動画X,Yにおけるオブジェクトの衝突量を求める。衝突がなければ、洗濯機は所望の箇所に設置できる、と推定できる。また、衝突が生じた場合であっても、衝突量を最小化するようなshift,fastforwardに対するパラメータを求めて、衝突が生じないようにすることができれば、やはり、洗濯機は所望の箇所に設置できる、と推定できる。
なお、ユーザが部屋の中を撮影する際に、撮影方向が限られることもある。この場合には、扉が周期的に開閉する洗濯機を、正面から撮影した様子のほか、左側から撮影した様子、右側から撮影した様子等、種々の方向から撮影した動画を提供することとし、ユーザが部屋を撮影した方向と同じ方向で撮影された動画を選択させることとしても良い。
上記実施例では、オブジェクトが互いに喰い込むような衝突をしないように動画の合成ができるほか、オブジェクトの表面が所望の瞬間に接触したり、オブジェクトの底が床に接触し続けたりするような動画の合成が可能となる。以下では、上記実施例の具体的な応用について種々説明する。
第1の応用例は、インターネットオークション等の電子市場において、商品の様子を表す動画を出品者が容易に準備できるようにするものである。
すなわち、電子市場の運営者は、各種の動画の編集ツールを提供するとともに、ユーザが自由に利用できるような動画素材を提供する。この動画素材は、電子市場の出品者や入札者が用意するものでも良いし、パブリック利用が可能な動画をアップロードして他のユーザに閲覧させるような動画配信システムを別途用意し、この動画配信システムに蓄積された動画を再利用することとしても良い。
出品者は、自宅の部屋の中等で、背景を表す動画をあらかじめ撮影しておくか、この際には、商品を見栄えよく見せるための装飾台や屏風などを用意しても良いし、部屋内の物品を整理整頓し、掃除して、プライベートな情報がわからないようにしても良い。また、背景動画は、動画素材の中から選択することとしても良い。
この後、出品者が、新たな商品を出品しようと考えた場合には、部屋の中の好きな場所で、物品の整理整頓や掃除を行わないままで、撮影を行うことができる。
この後、出品者は、撮影された新たな商品の動画を、あらかじめ撮影した背景動画にドラッグアンドドロップする。すると、上記の衝突の回避および位置の自動調整により、商品が背景画像の物品(屏風等)には衝突せず、かつ、背景画像の床(装飾台の上面等)に接する様子を表す動画が合成できる。
なお、商品動画の背景動画に対する合成は、出品者だけではなく、入札者ができるようにしても良い。たとえば、パーティ用のドレスを出品されており、出品者等のモデルがそのドレスを着用して歩いたり回ったりしている様子を表す商品動画が提供されているものとする。
入札者は、自分がドレスを着用して出席しようとするパーティが開催された会場内を撮影した背景動画を、自分で撮影したり、動画素材の中から選んだりしておく。そして、入札者は、パーティ会場の背景動画に、モデルに着用されたドレスの商品動画を合成する。
上記の実施例を適用することにより、モデルは床の上を移動するが、会場内の他の人物や家具、設備とは衝突しないような動画が合成されることになる。
入札者は、この動画を閲覧することにより、入札の前に、商品として出品されているドレスがパーティ会場の雰囲気にマッチしているか否かを、事前にチェックすることができるようになる。
第2の応用例は、動画素材のさらなる活用である。
たとえば、著名な芸能人が音楽に合わせて踊っている様子を表す背景動画が動画素材として提供されていれば、ユーザが自分で踊っている動画を撮影して合成することで、ユーザが著名な歌手と一緒に踊っている様子を表す動画を生成することが可能である。
また、メリーゴーラウンドが空席のまま動いている様子を表す背景動画が動画素材として提供されている場合には、ユーザが自転車や台車等、別の乗物に乗って、メリーゴーラウンドとほぼ同じ軌跡を移動する動画を撮影してから、「ユーザがメリーゴーラウンドに接し続ける」という制約条件を課して、動画の合成を行うことで、ユーザがメリーゴーラウンドに乗っている様子を表す動画を生成することができる。
このほか、ボールが床に激しくぶつかって衝突する背景動画に、ユーザが腕やラケットを強く振り下ろす動画を合成する際に、ユーザが腕を振り下ろした瞬間にユーザの手やラケットとボールが接する、という制約条件を課すこととすれば、ユーザがバレーボールのスパイクやテニスのスマッシュをしている様子を表す動画が生成可能である。
さらに、フェンシングや剣道の練習を一人で行っている様子を撮影した動画素材を複数合成し、撮影されたプレイヤーが決め技を行った瞬間にオブジェクト同士がタイミングで接する、という条件を課すこととすれば、あたかも試合が行われているかのような動画を合成することも可能である。
なお、本願においては、2012年7月20日にされた日本国特許出願特願2012−161924を基礎とする優先権を主張するものとし、指定国の法令が許す限り、当該基礎出願の内容を本願に取り込むものとする。
本発明によれば、複数の動画に描かれた奥行情報を伴うオブジェクトを1つの動画にまとめようとするときに、オブジェクトが干渉条件を満たさないようにするのに好適な動画処理装置、動画処理方法、ならびに、情報記録媒体を提供することができる。
11 撮影点
12 投影面
13 半直線
14 オブジェクト
15 衝突点
17 Z距離
21 代表点
101 動画処理装置
102 背面奥行取得部
103 衝突判定部
104 ずらし量設定部
105 動画生成部
106 修正部
401 画面
411 ウィンドウ
412 ウィンドウ
413 カーソル

Claims (11)

  1. 第1動画と、第2動画と、を合成する動画処理装置であって、前記第1動画には、第1オブジェクトが描かれ、前記第1オブジェクトの奥行情報を伴い、前記第2動画には、第2オブジェクトが描かれ、前記第2オブジェクトの奥行情報を伴い、
    前記第1動画と、前記第2動画と、を合成した第3動画を生成する動画生成部、
    前記第3動画において、前記第1オブジェクトと、前記第2オブジェクトと、が、干渉条件を満たすか否かを、前記第1オブジェクトの奥行情報ならびに前記第2オブジェクトの奥行情報を参照して判定する干渉判定部、
    前記干渉条件が満たされる、と判定された場合、前記第2オブジェクトの時間経過に応じた3次元空間内の移動を表す軌跡の形状を変形する変形変換を施すことにより、前記第2動画を修正する修正部
    を備えることを特徴とする動画処理装置。
  2. 請求項1に記載の動画処理装置であって、
    前記軌跡の形状の修正箇所および修正量を表す変換パラメータにより前記変形変換を施し、更新干渉条件が満たされないように、前記変換パラメータを更新する
    ことを特徴とする動画処理装置。
  3. 請求項1または2に記載の動画処理装置であって、
    前記干渉条件は、前記第1オブジェクトと、前記第2オブジェクトと、が、衝突すれば、満たされる
    ことを特徴とする動画処理装置。
  4. 請求項2または3に記載の動画処理装置であって、
    前記干渉判定部は、前記第2オブジェクトと前記第1オブジェクトとの衝突の度合を表す衝突量を計算し、
    前記修正部は、前記衝突量と、前記変換パラメータと、により定められる評価関数を最小化するように、前記変換パラメータを更新する
    ことを特徴とする動画処理装置。
  5. 請求項2または3に記載の動画処理装置であって、
    前記修正部は、前記衝突量が最大となるフレームにおいて、前記1つ以上のオブジェクトの位置を前記衝突量がゼロになるように修正し、当該位置の修正量を減少させながら隣接するフレームに伝播させて前記1つ以上のオブジェクトの位置を修正することを繰り返すことにより、前記変更パラメータを更新する
    ことを特徴とする動画処理装置。
  6. 請求項4または5に記載の動画処理装置であって、
    前記変形変換は、前記軌跡の接ベクトルの大きさは保ちつつ、主法線ベクトルの大きさを変化させる
    ことを特徴とする動画処理装置。
  7. 請求項4から6のいずれか1項に記載の動画処理装置であって、
    前記衝突量は、各フレームにおける前記第1オブジェクトの奥行情報に基づいて推定される前記第1オブジェクトの形状と、前記第2オブジェクトの奥行情報に基づいて推定される前記第2オブジェクトの形状と、が、重複する体積の総和である
    ことを特徴とする動画処理装置。
  8. 請求項4から6のいずれか1項に記載の動画処理装置であって、
    前記衝突量は、各フレームにおける前記第1オブジェクトが描画されるべき領域と、前記第2オブジェクトが描画されるべき領域と、が、重複する面積の総和である
    ことを特徴とする動画処理装置。
  9. 請求項1から8のいずれか1項に記載の動画処理装置であって、
    前記軌跡が修正される1つ以上のオブジェクトは、当該1つ以上のオブジェクトの代表点の水平方向、垂直方向および奥行情報の位置に直交変換を施し、当該直交変換後の位置に基づいて、当該1つ以上のオブジェクトが描かれている画像に水平方向および垂直方向における相似変換を施す
    ことを特徴とする動画処理装置。
  10. 第1動画と、第2動画と、を合成する動画処理方法であって、前記第1動画には、第1オブジェクトが描かれ、前記第1オブジェクトの奥行情報を伴い、前記第2動画には、第2オブジェクトが描かれ、前記第2オブジェクトの奥行情報を伴い、
    前記第1動画と、前記第2動画と、を合成した第3動画を生成する動画生成工程、
    前記第3動画において、前記第1オブジェクトと、前記第2オブジェクトと、が、干渉条件を満たすか否かを、前記第1オブジェクトの奥行情報ならびに前記第2オブジェクトの奥行情報を参照して判定する干渉判定工程、
    前記干渉条件が満たされる、と判定された場合、前記第2オブジェクトの時間経過に応じた3次元空間内の移動を表す軌跡の形状を変形する変形変換を施すことにより、前記第2動画を修正する修正工程
    を備えることを特徴とする動画処理方法。
  11. 第1動画と、第2動画と、を合成するプログラムが記録されたコンピュータ読取可能な情報記録媒体であって、前記第1動画には、第1オブジェクトが描かれ、前記第1オブジェクトの奥行情報を伴い、前記第2動画には、第2オブジェクトが描かれ、前記第2オブジェクトの奥行情報を伴い、
    前記プログラムは、コンピュータを、
    前記第1動画と、前記第2動画と、を合成した第3動画を生成する動画生成部、
    前記第3動画において、前記第1オブジェクトと、前記第2オブジェクトと、が、干渉条件を満たすか否かを、前記第1オブジェクトの奥行情報ならびに前記第2オブジェクトの奥行情報を参照して判定する干渉判定部、
    前記干渉条件が満たされる、と判定された場合、前記第2オブジェクトの時間経過に応じた3次元空間内の移動を表す軌跡の形状を変形する変形変換を施すことにより、前記第2動画を修正する修正部
    として機能させることを特徴とする情報記録媒体。
JP2013552056A 2012-07-20 2012-09-07 動画処理装置、動画処理方法、ならびに、情報記録媒体 Active JP5451955B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013552056A JP5451955B1 (ja) 2012-07-20 2012-09-07 動画処理装置、動画処理方法、ならびに、情報記録媒体

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2012161924 2012-07-20
JP2012161924 2012-07-20
JP2013552056A JP5451955B1 (ja) 2012-07-20 2012-09-07 動画処理装置、動画処理方法、ならびに、情報記録媒体
PCT/JP2012/072989 WO2014013628A1 (ja) 2012-07-20 2012-09-07 動画処理装置、動画処理方法、ならびに、情報記録媒体

Publications (2)

Publication Number Publication Date
JP5451955B1 JP5451955B1 (ja) 2014-03-26
JPWO2014013628A1 true JPWO2014013628A1 (ja) 2016-06-30

Family

ID=49948477

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013552056A Active JP5451955B1 (ja) 2012-07-20 2012-09-07 動画処理装置、動画処理方法、ならびに、情報記録媒体

Country Status (5)

Country Link
US (4) US9876965B2 (ja)
EP (4) EP2775452B1 (ja)
JP (1) JP5451955B1 (ja)
ES (4) ES2676719T3 (ja)
WO (4) WO2014013628A1 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9429912B2 (en) * 2012-08-17 2016-08-30 Microsoft Technology Licensing, Llc Mixed reality holographic object development
US9823824B2 (en) * 2013-08-19 2017-11-21 Kodak Alaris Inc. Context sensitive adaptable user interface
US10311595B2 (en) * 2013-11-19 2019-06-04 Canon Kabushiki Kaisha Image processing device and its control method, imaging apparatus, and storage medium
JP6427332B2 (ja) * 2014-04-08 2018-11-21 株式会社ミツトヨ 画像測定機
JP2015207802A (ja) * 2014-04-17 2015-11-19 ソニー株式会社 画像処理装置および画像処理方法
EP3073726B1 (en) * 2015-03-24 2017-03-01 Axis AB Method for configuring a camera
WO2016152633A1 (ja) * 2015-03-26 2016-09-29 ソニー株式会社 画像処理システムおよび画像処理方法、並びにプログラム
US20170068863A1 (en) * 2015-09-04 2017-03-09 Qualcomm Incorporated Occupancy detection using computer vision
CN105243268B (zh) * 2015-09-18 2018-06-22 网易(杭州)网络有限公司 一种游戏地图定位方法、装置及用户终端
GB2550854B (en) 2016-05-25 2019-06-26 Ge Aviat Systems Ltd Aircraft time synchronization system
CN106095294B (zh) * 2016-06-08 2019-03-05 福建天泉教育科技有限公司 不同平台之间同步笔画的方法及其系统
JP6488329B2 (ja) * 2016-09-29 2019-03-20 株式会社リクルート 順番管理システム、順番管理装置、およびプログラム
CN112154658A (zh) * 2018-05-29 2020-12-29 索尼公司 图像处理装置、图像处理方法和程序
US10609332B1 (en) 2018-12-21 2020-03-31 Microsoft Technology Licensing, Llc Video conferencing supporting a composite video stream
CN112232170A (zh) * 2020-10-10 2021-01-15 浙江大华技术股份有限公司 对象行为的确定方法及装置、存储介质、电子装置

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5087981A (en) * 1990-01-02 1992-02-11 Eastman Kodak Company Error diffusion of overlapping dots
JP3244798B2 (ja) * 1992-09-08 2002-01-07 株式会社東芝 動画像処理装置
JPH07322137A (ja) * 1994-05-30 1995-12-08 Nec Eng Ltd 映像信号合成装置
US6151009A (en) * 1996-08-21 2000-11-21 Carnegie Mellon University Method and apparatus for merging real and synthetic images
US6456289B1 (en) 1999-04-23 2002-09-24 Georgia Tech Research Corporation Animation system and method for a animating object fracture
US6738066B1 (en) * 1999-07-30 2004-05-18 Electric Plant, Inc. System, method and article of manufacture for detecting collisions between video images generated by a camera and an object depicted on a display
DE10106023A1 (de) * 2001-02-09 2002-08-29 Fraunhofer Ges Forschung Verfahren und Vorrichtung zur Kollisionserkennung von Objekten
US6791549B2 (en) * 2001-12-21 2004-09-14 Vrcontext S.A. Systems and methods for simulating frames of complex virtual environments
JP2004145448A (ja) * 2002-10-22 2004-05-20 Toshiba Corp 端末装置、サーバ装置および画像加工方法
US7982738B2 (en) * 2004-12-01 2011-07-19 Microsoft Corporation Interactive montages of sprites for indexing and summarizing video
WO2007054755A2 (en) 2004-12-03 2007-05-18 Telekinesys Research Limited Physics simulation apparatus and method
JP4335160B2 (ja) 2005-03-02 2009-09-30 任天堂株式会社 衝突判定プログラムおよび衝突判定装置
US8245313B2 (en) 2005-03-31 2012-08-14 Honda Motor Co., Ltd Document management system, document management program, document management system configuration method, and server computer
JP4345737B2 (ja) * 2005-11-14 2009-10-14 セイコーエプソン株式会社 デジタルコンテンツ作成システム、デジタルコンテンツ作成方法およびプログラム
JP4754364B2 (ja) * 2006-01-20 2011-08-24 三菱電機株式会社 画像重ね合わせ装置
KR100718157B1 (ko) * 2006-03-08 2007-05-14 삼성전자주식회사 충돌 감지 장치 및 방법
US8016653B2 (en) 2007-02-01 2011-09-13 Sportvision, Inc. Three dimensional virtual rendering of a live event
TW200844899A (en) * 2007-05-04 2008-11-16 Sunplus Mmobile Inc An interactive image and graphical system and method that is capable of detecting collisions of graphical objects
JP4998787B2 (ja) 2007-09-26 2012-08-15 楽天株式会社 物体領域抽出処理プログラム、物体領域抽出装置、および物体領域抽出方法
JP5253936B2 (ja) * 2008-09-08 2013-07-31 株式会社エヌ・ティ・ティ・ドコモ 情報処理装置及びプログラム
US8730245B2 (en) * 2008-12-01 2014-05-20 Naturalmotion Ltd. Defining an animation of a virtual object within a virtual world
GB0901351D0 (en) * 2009-01-28 2009-03-11 Univ Dundee System and method for arranging items for display
TWI378718B (en) * 2009-06-05 2012-12-01 Univ Nat Taiwan Method for scaling video content according to bandwidth rate
DE102009037835B4 (de) * 2009-08-18 2012-12-06 Metaio Gmbh Verfahren zur Darstellung von virtueller Information in einer realen Umgebung
US8749588B2 (en) * 2009-09-15 2014-06-10 HNTB Holdings, Ltd. Positioning labels in an engineering drawing
US20110199302A1 (en) 2010-02-16 2011-08-18 Microsoft Corporation Capturing screen objects using a collision volume
US20110316972A1 (en) * 2010-06-29 2011-12-29 Broadcom Corporation Displaying graphics with three dimensional video
US20120044259A1 (en) * 2010-08-17 2012-02-23 Apple Inc. Depth management for displayed graphical elements
US8860766B2 (en) * 2010-09-30 2014-10-14 Nvidia Corporation System, method, and computer program product for determining one or more contact points between a pair of objects
JP5643617B2 (ja) * 2010-11-18 2014-12-17 任天堂株式会社 画像処理プログラム、画像処理装置、画像処理方法、画像処理システム
US8401225B2 (en) * 2011-01-31 2013-03-19 Microsoft Corporation Moving object segmentation using depth images
JP5602040B2 (ja) 2011-02-03 2014-10-08 ミツカワ株式会社 積層体布帛
JP5678710B2 (ja) * 2011-02-14 2015-03-04 ソニー株式会社 画像処理装置、および画像処理方法、並びにプログラム
JP5708196B2 (ja) * 2011-04-21 2015-04-30 セイコーエプソン株式会社 衝突検出システム、ロボットシステム、衝突検出方法及びプログラム
US10109097B2 (en) * 2011-08-01 2018-10-23 Autodesk, Inc. Dynamic collision avoidance for crowd simulation over structured paths that intersect at waypoints
US20130215230A1 (en) * 2012-02-22 2013-08-22 Matt Miesnieks Augmented Reality System Using a Portable Device
US9183676B2 (en) * 2012-04-27 2015-11-10 Microsoft Technology Licensing, Llc Displaying a collision between real and virtual objects
US9147221B2 (en) * 2012-05-23 2015-09-29 Qualcomm Incorporated Image-driven view management for annotations
US9741145B2 (en) * 2012-06-29 2017-08-22 Disney Enterprises, Inc. Augmented reality simulation continuum
JP2014238731A (ja) * 2013-06-07 2014-12-18 株式会社ソニー・コンピュータエンタテインメント 画像処理装置、画像処理システム、および画像処理方法

Also Published As

Publication number Publication date
ES2676719T3 (es) 2018-07-24
ES2675513T3 (es) 2018-07-11
US20140347560A1 (en) 2014-11-27
US20140321736A1 (en) 2014-10-30
ES2675514T3 (es) 2018-07-11
EP2779107A1 (en) 2014-09-17
EP2775454A4 (en) 2015-04-01
US20140340477A1 (en) 2014-11-20
WO2014013628A1 (ja) 2014-01-23
WO2014013627A1 (ja) 2014-01-23
EP2775454B1 (en) 2018-05-09
US20150201132A1 (en) 2015-07-16
EP2775455A4 (en) 2015-04-22
ES2673545T3 (es) 2018-06-22
EP2775452B1 (en) 2018-05-02
EP2775452A4 (en) 2015-03-04
US9876965B2 (en) 2018-01-23
EP2779107B1 (en) 2018-05-16
WO2014013629A1 (ja) 2014-01-23
WO2014013630A1 (ja) 2014-01-23
US9819878B2 (en) 2017-11-14
EP2775455B1 (en) 2018-05-09
US9723225B2 (en) 2017-08-01
EP2775454A1 (en) 2014-09-10
EP2775455A1 (en) 2014-09-10
JP5451955B1 (ja) 2014-03-26
EP2779107A4 (en) 2015-03-11
EP2775452A1 (en) 2014-09-10
US9374535B2 (en) 2016-06-21

Similar Documents

Publication Publication Date Title
JP5451955B1 (ja) 動画処理装置、動画処理方法、ならびに、情報記録媒体
JP6950013B2 (ja) 画像処理装置、画像処理方法及びプログラム
US10777002B2 (en) 3D model generating system, 3D model generating method, and program
JP7353782B2 (ja) 情報処理装置、情報処理方法、及びプログラム
CN113347373B (zh) 通过ar空间定位实时制作特效视频的图像处理方法
KR20200043458A (ko) 3d 장면의 이미지를 생성 및 수정하기 위한 방법
JP5254505B1 (ja) 動画処理装置、動画処理方法、ならびに、情報記録媒体
JP6555755B2 (ja) 画像処理装置、画像処理方法および画像処理プログラム
KR102009400B1 (ko) 실감형 영상 콘텐츠 제공 방법 및 이를 이용한 서버
JP5270052B1 (ja) 動画処理装置、動画処理方法、ならびに、情報記録媒体
JP5270051B1 (ja) 動画処理装置、動画処理方法、ならびに、情報記録媒体
JP7119854B2 (ja) 変更画素領域抽出装置、画像処理システム、変更画素領域抽出方法、画像処理方法及びプログラム
Albuquerque et al. An overview on virtual sets
JP2020057037A (ja) 変更画素領域抽出装置、画像処理システム、変更画素領域抽出方法、画像処理方法及びプログラム
JP2000048226A (ja) 情報提示装置

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131224

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131226

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5451955

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250