JP5874426B2 - 制御点設定方法、制御点設定装置及びプログラム - Google Patents

制御点設定方法、制御点設定装置及びプログラム Download PDF

Info

Publication number
JP5874426B2
JP5874426B2 JP2012029149A JP2012029149A JP5874426B2 JP 5874426 B2 JP5874426 B2 JP 5874426B2 JP 2012029149 A JP2012029149 A JP 2012029149A JP 2012029149 A JP2012029149 A JP 2012029149A JP 5874426 B2 JP5874426 B2 JP 5874426B2
Authority
JP
Japan
Prior art keywords
control
control point
predetermined
points
time
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.)
Active
Application number
JP2012029149A
Other languages
English (en)
Other versions
JP2013167924A (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.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
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 Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP2012029149A priority Critical patent/JP5874426B2/ja
Publication of JP2013167924A publication Critical patent/JP2013167924A/ja
Application granted granted Critical
Publication of JP5874426B2 publication Critical patent/JP5874426B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Processing Or Creating Images (AREA)

Description

本発明は、静止画像の被写体領域内で制御点を設定する制御点設定方法、制御点設定装置及びプログラムに関する。
従来、静止画像内の所望の位置に制御点を設定して、動きをつけたい制御点に所望の動きを指定することで当該静止画像を動かす技術が知られている(例えば、特許文献1参照)。
特許第4613313号
しかしながら、制御点を動体モデルに設定されている基準点の位置情報を利用して動かしただけでは、当該動体モデルの動きを適正に反映することができないといった問題がある。
本発明は、このような問題に鑑みてなされたものであり、本発明の課題は、静止画像の被写体領域を動体モデルに合わせて適正に動かすことができる制御点設定方法、制御点設定装置及びプログラムを提供することである。
上記課題を解決するため、本発明に係る制御点設定方法は、
基準画像の動体モデルが含まれるモデル領域に設定された複数の動きの基準点の所定空間内での動きを示す動き情報を記憶する記憶手段を備える制御点設定装置を用いた制御点設定方法であって、前記動き情報は、前記複数の基準点の前記所定空間での位置を示す情報を時間軸に沿って並べた情報であり、静止画像を取得する取得ステップと、前記動き情報に基づいて、前記取得ステップにより取得された前記静止画像の被写体が含まれる被写体領域内で、前記モデル領域に設定されている複数の基準点の所定の基準時における基準位置に対応する対応位置に当該被写体領域の動きの制御に係る制御点を設定する際、所定の制御点を無効化して設定可能な設定ステップと、を含むことを特徴としている。
また、本発明に係る制御点設定装置は、
基準画像の動体モデルが含まれるモデル領域に設定された複数の動きの基準点の所定空間内での動きを示す動き情報を記憶する記憶手段を備える制御点設定装置であって、前記動き情報は、前記複数の基準点の前記所定空間での位置を示す情報を時間軸に沿って並べた情報であり、静止画像を取得する取得手段と、前記動き情報に基づいて、前記取得手段により取得された前記静止画像の被写体が含まれる被写体領域内で、前記モデル領域に設定されている複数の基準点の所定の基準時における基準位置に対応する対応位置に当該被写体領域の動きの制御に係る制御点を設定する際、所定の制御点を無効化して設定可能な設定手段と、を備えることを特徴としている。
また、本発明に係るプログラムは、
基準画像の動体モデルが含まれるモデル領域に設定された複数の動きの基準点の所定空間内での動きを示し、前記複数の基準点の前記所定空間での位置を示す情報を時間軸に沿って並べた動き情報を記憶する記憶手段を備える制御点設定装置のコンピュータを、静止画像を取得する取得手段、前記動き情報に基づいて、前記取得手段により取得された前記静止画像の被写体が含まれる被写体領域内で、前記モデル領域に設定されている複数の基準点の所定の基準時における基準位置に対応する対応位置に当該被写体領域の動きの制御に係る制御点を設定する際、所定の制御点を無効化して設定可能な設定手段、として機能させることを特徴としている。
本発明によれば、静止画像の被写体領域を動体モデルに合わせて適正に動かすことができる。
本発明を適用した一実施形態の動画生成システムの概略構成を示すブロック図である。 図1の動画生成システムを構成するユーザ端末の概略構成を示すブロック図である。 図1の動画生成システムを構成するサーバの概略構成を示すブロック図である。 図3のサーバに記憶されている動き情報を模式的に示す図である。 図1の動画生成システムによる動画生成処理に係る動作の一例を示すフローチャートである。 図5の動画生成処理の続きを示すフローチャートである。 図5の動画生成処理に係る画像の一例を模式的に示す図である。 図5の動画生成処理における制御点設定処理に係る動作の一例を示すフローチャートである。 図8の制御点設定処理における制御点位置特定処理に係る動作の一例を示すフローチャートである。 図9の制御点位置特定処理における体幹制御点特定処理に係る動作の一例を示すフローチャートである。 図10の体幹制御点特定処理に係る画像の一例を模式的に示す図である。 図10の体幹制御点特定処理を説明するための図である。 図9の制御点位置特定処理における腕制御点特定処理に係る動作の一例を示すフローチャートである。 図13の腕制御点特定処理に係る画像の一例を模式的に示す図である。 図13の腕制御点特定処理を説明するための図である。 図13の腕制御点特定処理を説明するための図である。 図13の腕制御点特定処理を説明するための図である。 図5の動画生成処理に係る画像の一例を模式的に示す図である。
以下に、本発明について、図面を用いて具体的な態様を説明する。ただし、発明の範囲は、図示例に限定されない。
図1は、本発明を適用した一実施形態の動画生成システム100の概略構成を示すブロック図である。
本実施形態の動画生成システム100は、図1に示すように、撮像装置1と、ユーザ端末2と、サーバ3とを備え、ユーザ端末2とサーバ3とが所定の通信ネットワークNを介して各種情報を送受信可能に接続されている。
先ず、撮像装置1について説明する。
撮像装置1は、被写体を撮像する撮像機能や撮像画像の画像データを記録媒体Cに記録する記録機能等を具備する。即ち、撮像装置1は、公知のものを適用可能であり、例えば、主要な機能を撮像機能とするデジタルカメラだけでなく、主要な機能としないものの撮像機能を具備する携帯電話機等の携帯端末なども含む。
次に、ユーザ端末2について図2を参照して説明する。
ユーザ端末2は、例えば、パーソナルコンピュータ等により構成され、サーバ3により開設されるWebページ(例えば、動画生成用ページ)にアクセスして、当該Webページ上で各種の指示を入力する。
図2は、ユーザ端末2の概略構成を示すブロック図である。
図2に示すように、ユーザ端末2は、具体的には、中央制御部201と、操作入力部202と、表示部203と、音出力部204と、記録媒体制御部205と、通信制御部206等を備えている。
中央制御部201は、ユーザ端末2の各部を制御する。具体的には、中央制御部201は、CPU、RAM、ROM(何れも図示略)を備え、ROMに記憶されたユーザ端末2用の各種処理プログラム(図示略)に従って各種の制御動作を行う。その際に、CPUは、RAM内の格納領域内に各種処理結果を格納させ、必要に応じてその処理結果を表示部203に表示させる。
RAMは、例えば、CPUにより実行される処理プログラム等を展開するためのプログラム格納領域や、入力データや上記処理プログラムが実行される際に生じる処理結果等を格納するデータ格納領域などを備える。
ROMは、コンピュータ読み取り可能なプログラムコードの形態で格納されたプログラム、具体的には、ユーザ端末2で実行可能なシステムプログラム、当該システムプログラムで実行可能な各種処理プログラムや、これら各種処理プログラムを実行する際に使用されるデータ等を記憶する。
操作入力部202は、例えば、数値、文字等を入力するためのデータ入力キーや、データの選択、送り操作等を行うための上下左右移動キーや各種機能キー等によって構成されるキーボードやマウス等を備え、ユーザにより押下されたキーの押下信号やマウスの操作信号を中央制御部201のCPUに出力する。
なお、操作入力部202としてタッチパネル(図示略)を表示部203の表示画面に配設して、タッチパネルの接触位置に応じて各種の指示を入力するような構成としても良い。
表示部203は、例えば、LCD、CRT(Cathode Ray Tube)等のディスプレイから構成され、中央制御部201のCPUの制御下にて各種情報を表示画面に表示する。
即ち、表示部203は、例えば、サーバ3から送信され通信制御部206により受信されたWebページ(例えば、動画生成用ページ)のページデータに基づいて、対応するWebページを表示画面に表示する。具体的には、表示部203は、動画生成処理(後述)に係る各種の処理画面の画像データに基づいて、各種の処理画面を表示画面に表示する。
音出力部204は、例えば、D/Aコンバータ、LPF(Low Pass Filter)、増幅器、スピーカ等により構成され、中央制御部201のCPUの制御下にて放音する。
即ち、音出力部204は、例えば、サーバ3から送信され通信制御部206により受信された演奏情報305bに基づいて、当該演奏情報305bのデジタルデータをD/Aコンバータによりアナログデータに変換し、増幅器を介してスピーカから、所定の音色、音高、音長で曲を放音する。また、音出力部204は、一の音源(例えば、楽器)の音を放音しても良いし、複数の音源の音を同時に放音しても良い。
記録媒体制御部205は、記録媒体Cが着脱自在に構成され、装着された記録媒体Cからのデータの読み出しや記録媒体Cに対するデータの書き込みを制御する。即ち、記録媒体制御部205は、撮像装置1から取り外されて装着された記録媒体Cから動画生成処理(後述)に係る被写体存在画像(図示略)の画像データ(YUVデータ)を読み出して通信制御部206に出力する。
ここで、被写体存在画像とは、所定の背景内に主要な被写体が存在する画像のことである。また、記録媒体Cには、撮像装置1の画像処理部(図示略)により所定の符号化形式(例えば、JPEG形式等)に従って符号化された被写体存在画像の画像データが記録されている。
通信制御部206は、例えば、モデム(MODEM:Modulater/DEModulater)、ターミナルアダプタ(Terminal Adapter)等によって構成され、所定の通信ネットワークNを介してサーバ3等の外部機器との間で情報の通信制御を行う。
具体的には、通信制御部206は、記録媒体制御部205から出力され入力された被写体存在画像の画像データを所定の通信ネットワークNを介してサーバ3に送信する。
なお、通信ネットワークNは、例えば、専用線や既存の一般公衆回線を利用して構築された通信ネットワークであり、LAN(Local Area Network)やWAN(Wide Area Network)等の様々な回線形態を適用することが可能である。また、通信ネットワークNには、例えば、電話回線網、ISDN回線網、専用線、移動体通信網、通信衛星回線、CATV回線網等の各種通信回線網と、それらを接続するインターネットサービスプロバイダ等が含まれる。
次に、サーバ3について図3を参照して説明する。
サーバ3は、Web(World Wide Web)サーバとしてインターネット上にWebページ(例えば、動画生成用ページ)を開設する機能を具備するものであり、ユーザ端末2からのアクセスに応じて当該ユーザ端末2にWebページのページデータを送信する。また、サーバ3は、静止画像の被写体が含まれる被写体領域P内で、モデル領域Rの隣合う3つの領域に設定されている3つの動き基準点Qz、…の所定の基準時t1における基準位置に対応する対応位置に設定された3つの基準制御点Oz、…のうちの何れか一の基準制御点Ozと他の2つの基準制御点Oz、Ozとの相対的な位置関係、並びに、所定の基準時t1及びこの所定の基準時t1から所定時間経過した時点tnにおける3つの動き基準点Qz、…のうち、何れか一の基準制御点Ozに対応する一の動き基準点Qzと他の2つの動き基準点Qz、Qzとの相対的な位置関係を基準として、所定時間経過した時点tnにて他の2つの基準制御点Oz、Ozが存する位置をそれぞれ特定する。
図3は、サーバ3の概略構成を示すブロック図である。
図3に示すように、サーバ3は、具体的には、中央制御部301と、表示部302と、通信制御部303と、被写体切抜部304と、記憶部305と、動画処理部306等を備えて構成されている。
中央制御部301は、サーバ3の各部を制御する。具体的には、中央制御部301は、CPU、RAM、ROM(何れも図示略)を備え、CPUは、ROMに記憶されたサーバ3用の各種処理プログラム(図示略)に従って各種の制御動作を行う。その際に、CPUは、RAM内の格納領域内に各種処理結果を格納させ、必要に応じてその処理結果を表示部302に表示させる。
RAMは、例えば、CPUにより実行される処理プログラム等を展開するためのプログラム格納領域や、入力データや上記処理プログラムが実行される際に生じる処理結果等を格納するデータ格納領域などを備える。
ROMは、コンピュータ読み取り可能なプログラムコードの形態で格納されたプログラム、具体的には、サーバ3で実行可能なシステムプログラム、当該システムプログラムで実行可能な各種処理プログラムや、これら各種処理プログラムを実行する際に使用されるデータ等を記憶する。
表示部302は、例えば、LCD、CRT等のディスプレイから構成され、中央制御部301のCPUの制御下にて各種情報を表示画面に表示する。
通信制御部303は、例えば、モデム、ターミナルアダプタ等によって構成され、所定の通信ネットワークNを介してユーザ端末2等の外部機器との間で情報の通信制御を行う。
具体的には、通信制御部303は、例えば、動画生成処理(後述)にてユーザ端末2から所定の通信ネットワークNを介して送信された被写体存在画像の画像データを受信して、当該画像データを中央制御部301のCPUに出力する。
中央制御部301のCPUは、入力された被写体存在画像の画像データを被写体切抜部304に出力する。
被写体切抜部304は、被写体存在画像から被写体切り抜き画像(図示略)を生成する。
即ち、被写体切抜部304は、公知の被写体切抜手法を用いて、被写体存在画像から被写体が含まれる被写体領域Pが切り抜かれた被写体切り抜き画像を生成する。具体的には、被写体切抜部304は、中央制御部301のCPUから出力された被写体存在画像の画像データを取得し、例えば、ユーザによるユーザ端末2の操作入力部202(例えば、マウス等)の所定操作に基づいて、表示部203に表示されている当該被写体存在画像上に描画された境界線(図示略)により当該被写体存在画像を区分する。続けて、被写体切抜部304は、被写体存在画像の切抜線により区分される複数の区分領域の中で、被写体の背景を推定して当該背景の各画素の画素値に基づいて所定の演算を行って、被写体の背景色を所定の単一色として推定する。その後、被写体切抜部304は、所定の単一色の背景用画像と被写体存在画像との間で対応する各画素の差分情報(例えば、相違度マップ等)を生成する。そして、被写体切抜部304は、生成した差分情報の各画素の画素値を所定の閾値と比較して二値化した後、同じ連結成分を構成する画素集合に同じ番号を付けるラベリング処理を行って面積が最大の画素集合を被写体部分とする。
その後、被写体切抜部304は、例えば、上記の面積が最大の画素集合が「1」、その他の部分が「0」である二値化された差分情報に対してローパスフィルタを施して境界部分に中間値を生じさせることでアルファ値を生成し、被写体切り抜き画像内で被写体領域Pの位置を示す位置情報としてのアルファマップ(図示略)を生成する。
アルファ値(0≦α≦1)とは、例えば、被写体存在画像の各画素について、被写体領域Pの画像を所定の背景に対してアルファブレンディングする際の重みを表すものである。この場合、被写体領域Pはアルファ値が「1」となり、被写体存在画像の所定の背景に対する透過度が0%となる。一方、被写体の背景部分はアルファ値が「0」となり、当該被写体存在画像の所定の背景に対する透過度が100%となる。
そして、被写体切抜部304は、アルファマップに基づいて、被写体存在画像の各画素のうち、アルファ値が「1」の画素を所定の単一色画像に対して透過させずに、且つ、アルファ値が「0」の画素を透過させるように、被写体画像を所定の単一色画像と合成して被写体切り抜き画像の画像データを生成する。
また、被写体切抜部304は、アルファマップに基づいて、被写体領域Pの各画素を第1の画素値(例えば、「1」等)とし、背景領域(図7(a)中、斜線を伏した領域)の各画素を第1の画素値と異なる第2の画素値(例えば、「0」等)とする二値画像であるマスク画像P1(図7(a)参照)を生成する。即ち、被写体切抜部304は、被写体切り抜き画像内で被写体領域Pの位置を示す位置情報としてのマスク画像P1を生成する。
被写体切り抜き画像の画像データは、例えば、生成されたアルファマップやマスク画像P1等の位置情報と対応付けられたデータである。
なお、上記した被写体切抜部304による被写体切抜手法は、一例であってこれに限られるものではなく、被写体存在画像から被写体が含まれる被写体領域Pを切り抜く公知の手法であれば如何なる手法を適用しても良い。
また、被写体切り抜き画像の画像データとしては、例えば、RGBA形式の画像データを適用しても良く、具体的には、RGB色空間で規定される各色に透過度(A)の情報が付加されている。この場合には、被写体切抜部304は、透過度(A)の情報を利用して、被写体切り抜き画像内で被写体領域Pの位置を示す位置情報(図示略)を生成しても良い。
記憶部305は、例えば、半導体の不揮発メモリやHDD(Hard Disc Drive)等により構成され、ユーザ端末2に送信されるWebページのページデータや被写体切抜部304により生成された被写体切り抜き画像の画像データ等を記憶する。
また、記憶部305は、動画生成処理に用いられる動き情報305aを複数記憶している。
各動き情報305aは、所定空間、即ち、例えば、互いに直交する二軸(例えば、x軸(横軸)、y軸(縦軸)等)により規定される二次元の平面空間やこれらの二軸に加えて当該二軸に直交する軸(例えば、z軸等)により規定される三次元の立体的空間内における複数の基準点Q、…の変位(動き)を示す情報である。なお、動き情報305aは、二次元の平面空間を所定の回動軸周りに回転させることで複数の基準点Q、…の動きに奥行きをもたせるような情報であっても良い。
ここで、各基準点Qの位置は、動きのモデルとなる動体モデル(例えば、ヒトや動物等)の骨格の形状や関節の位置等を考慮してそれぞれ規定されている。即ち、各基準点Qは、動きの基準となる基準フレーム(基準画像)F1の動体モデルが含まれるモデル領域R内に、動体モデルの骨格の形状や関節の位置等を考慮して設定されている。また、複数の基準点Q、…は、モデル領域Rの複数の領域毎に組をなして設定されている。例えば、モデル領域Rは、ヒトの腰部から頭部に亘る体幹に相当する体幹構成領域Raと、ヒトの左右の腕に相当する左右の腕構成領域Rb、Rcと、ヒトの左右の脚に相当する左右の脚構成領域Rd、Reとを有し、これら各構成領域の各々に基準点Qが所定数設定されている。例えば、体幹構成領域Raには、腰部側から頭部側にかけて第1〜第4体幹基準点Qa1〜Qa4が設定され、また、左腕構成領域Rbには、左脇下側から左手先側にかけて第1〜第6左腕基準点Qb1〜Qb6が設定され、また、右腕構成領域Rcには、右脇下側から右手先側にかけて第1〜第6右腕基準点Qc1〜Qc6が設定され、また、左脚構成領域Rdには、股関節側から左足先側にかけて第1〜第6左脚基準点Qd1〜Qd6が設定され、また、右脚構成領域Reには、股関節側から右足先側にかけて第1〜第6右脚基準点Qe1〜Qe6が設定されている(図4参照)。なお、基準点Qの個数は、動体モデルの形状や大きさ等に応じて適宜任意に設定可能である。
ここで、図4は、動体モデルとしてのヒトを正面から見た状態を模式的に表し、向かって左側に動体モデルとしてのヒトの右腕及び右脚が配置され、一方、向かって右側に動体モデルとしてのヒトの左腕及び左脚が配置されている。
また、各動き情報305aは、複数の基準点Q、…の所定空間での位置を示す情報を時間軸に沿って並べた情報である。即ち、各動き情報305aは、所定空間内にて複数の基準点Q、…の全て若しくは少なくとも一つを移動させた座標情報を所定の時間間隔で連続して並べることで、複数の基準点Q、…の所定の時間間隔毎の動きが連続して表されている。
具体的には、各動き情報305aは、例えば、基準フレームS1のモデル領域R内に設定されている複数の基準点Q、…を所定の踊りに対応させて移動させるような複数のフレームに対応する座標情報を含む。例えば、図4に示すように、動き情報305aは、ヒトの動体モデルの両方の腕を挙げ、且つ、両脚を開いた状態を模式的に表した基準フレームS1に対応する複数の基準点Q、…の座標情報、左腕を上げるとともに右腕を下げた状態を模式的に表した2番目のフレームS2に対応する複数の基準点Q、…の座標情報、さらに左腕を下げた状態を模式的に表した3番目のフレームS3に対応する複数の基準点Q、…の座標情報といったように、複数のフレームが時間軸に沿って所定の時間間隔を空けて連続して並べられている(図4にあっては、3番目以降のフレームの座標情報の図示は省略する)。
なお、複数の基準点Q、…の座標情報の各々は、例えば、左上隅部を原点(0,0)とするXY平面空間における絶対位置座標が規定された情報であっても良いし、基準点Qの基準位置(例えば、初期位置等)の座標情報に対する各基準点Qの相対的な移動量が規定された情報であっても良い。
また、図4に示した動き情報305aは、一例であってこれに限られるものではなく、動きの種類等は適宜任意に変更可能である。
また、記憶部305は、動画生成処理に用いられる演奏情報305bを複数記憶している。
演奏情報305bは、動画処理部306の動画再生部306i(後述)により動画像の再生とともに自動的に曲を演奏するための情報である。即ち、演奏情報305bは、例えば、テンポ、拍子、音程、音階、調、発想標語等を異ならせて複数規定され、それぞれ曲名と対応付けて記憶されている。
また、各演奏情報305bは、例えば、MIDI(Musical Instruments Digital Interface)規格等に従って規定されたデジタルデータであり、具体的には、トラック数や四分音符の分解能(Tickカウント数)等が規定されたヘッダ情報と、各パートに割り当てられた音源(例えば、楽器等)に供給させるイベント及びタイミングかならなるトラック情報等を有している。このトラック情報のイベントとして、例えば、テンポあるいは拍子の変更や、NoteOn・Offを指示する情報などがある。
動画処理部306は、画像取得部306aと、第1制御点設定部306bと、基準点特定部306cと、制御点特定部306dと、第2制御点設定部306eと、領域分割部306fと、フレーム生成部306gと、裏面画像生成部306hと、動画再生部306iとを具備している。
画像取得部306aは、動画生成処理に用いられる静止画像を取得する。
即ち、画像取得部306aは、取得手段として、動画生成処理の処理対象となる静止画像を取得する。具体的には、画像取得部306aは、被写体切抜部304により生成された被写体切り抜き画像の画像データと、当該被写体切り抜き画像の画像データと対応付けられているマスク画像P1(図7(a)参照)の画像データを取得する。
第1制御点設定部306bは、動画生成処理の処理対象となる静止画像の被写体領域P内で制御点Oを複数設定する。
即ち、第1制御点設定部306bは、設定手段として、動体モデルの動き情報305aに基づいて、画像取得部306aにより取得された静止画像(例えば、マスク画像P1等)の被写体領域P内で、モデル領域Rの隣合う3つの領域(例えば、体幹構成領域Ra、左右の腕構成領域Rb、Rc等)に設定されている3つの基準点Qの所定の基準時t1における基準位置に対応する対応位置に当該被写体領域Pの動きの制御に係る制御点Oを基準制御点Oz(図14(b)参照)としてそれぞれ設定する。
ここで、所定の基準時t1における基準位置は、動き情報305aに従って動体モデルが動く前の基準点Qの所定空間での初期位置を含む。基準点Qの所定空間での初期位置とは、例えば、1フレーム目に相当し、静止状態の動体モデルに対応する基準フレームS1における位置座標のことである。なお、所定フレーム目(例えば、3フレーム目等)に相当するフレームにおける複数の基準点Q、…の位置座標を基準位置としても良い。
第1制御点設定部306bは、具体的には、記憶部305に記憶されている動体モデル(例えば、ヒト)の動き情報305aに基づいて、静止画像の被写体領域P内で、モデル領域Rの各構成領域に設定されている複数の基準点Q、…に対応させて制御点Oをそれぞれ設定する。例えば、第1制御点設定部306bは、記憶部305から動体モデル(例えば、ヒト)の動き情報305aを読み出して、当該動き情報305aに規定されている静止状態の動体モデルに対応する基準フレームS1(例えば、1フレーム目等)のモデル領域Rの各構成領域に設定されている複数の基準点Q、…の基準位置を取得する。そして、第1制御点設定部306bは、被写体切り抜き画像及びマスク画像P1の各被写体領域P内で被写体の骨格の形状や関節の位置等を考慮して各基準点Qの基準位置に対応する対応位置をそれぞれ特定した後、特定された各対応位置に制御点Oをそれぞれ設定する(図7(a)参照)。
例えば、被写体領域Pの体幹に相当する体幹対応領域Paに、体幹構成領域Raに設定されている第1〜第4体幹基準点Qa1〜Qa4に対応する第1〜第4体幹制御点Oa1〜Oa4が設定される。また、被写体領域Pの左腕に相当する左腕対応領域Pbに、左腕構成領域Rbに設定されている第1〜第6左腕基準点Qb1〜Qb6に対応する第1〜第6左腕制御点Ob1〜Ob6が設定され、また、被写体領域Pの右腕に相当する右腕対応領域Pcに、右腕構成領域Rcに設定されている第1〜第6右腕基準点Qc1〜Qc6に対応する第1〜第6右腕制御点Oc1〜Oc6が設定される。また、被写体領域Pの左脚に相当する左脚対応領域Pdに、左脚構成領域Rdに設定されている第1〜第6左脚基準点Qd1〜Qd6に対応する第1〜第6左脚制御点Od1〜Od6が設定され、また、被写体領域Pの右脚に相当する右脚対応領域Peに、右脚構成領域Reに設定されている第1〜第6右脚基準点Qe1〜Qe6に対応する第1〜第6右脚制御点Oe1〜Oe6が設定される。
上記のようにして被写体領域P内に設定された各制御点Oが有効な制御点Oとみなされ、当該有効な制御点Oが対応する基準点Qの移動に追随するように動くこととなる。
ここで、第1制御点設定部306bは、必ずしも動き情報305aに係る複数の基準点Q、…の全てに対応させて制御点Oを設定する必要はない。例えば、所定数の制御点Oを間引いて設定する簡易設定モードが指定されている場合には、第1制御点設定部306bは、体幹対応領域Paにおける第1及び第3体幹制御点Oa1、Oa3を間引き、また、左腕対応領域Pbにおける第1、第2、第4、第6左腕制御点Ob1、Ob2、Ob4、Ob6を間引き、また、右腕対応領域Pcにおける第1、第2、第4、第6右腕制御点Oc1、Oc2、Oc4、Oc6を間引き、また、左脚対応領域Pdにおける第1、第2、第4、第6左脚制御点Od1、Od2、Od4、Od6を間引き、また、右脚対応領域Peにおける第1、第2、第4、第6右脚制御点Oe1、Oe2、Oe4、Oe6を間引くようにしても良い(間引かれた制御点Oを模式的に白丸で表す;図7(b)参照)。
また、ユーザによるユーザ端末2の操作入力部202の所定操作に基づいて、制御点Oの設定位置が修正されてユーザ所望の位置が指定された場合には、第1制御点設定部306bは、指定されたユーザ所望の位置に制御点Oをそれぞれ設定するようにしても良い。
同様に、ユーザによるユーザ端末2の操作入力部202の所定操作に基づいて、何れかの制御点O(例えば、左腕の制御点O等)を無効とし当該制御点Oの設定を解除可能に構成されていても良い。
そして、第1制御点設定部306bは、被写体領域Pの各対応領域に設定されている有効な複数の制御点O、…の中で、何れか一の制御点Oを基準制御点Ozとして設定する。例えば、第1制御点設定部306bは、各対応領域に設定されている複数の制御点O、…の中で、所定の探索条件(例えば、予め定められた探索順序等)に従って探索し、最初に検出された制御点O(例えば、第1左腕制御点Ob1等)を基準制御点Ozとして設定する。
ここで、第1制御点設定部306bは、各対応領域の基準制御点Ozを隣合う対応領域との位置関係を考慮して設定するようにしても良い。例えば、隣合う3つの対応領域が体幹対応領域Paと左右の腕対応領域Pb、Pcの場合には、第1制御点設定部306bは、第2体幹制御点Oa2と第1左腕制御点Ob1と第1右腕制御点Oc1とを基準制御点Ozとして設定しても良い。また、例えば、隣合う3つの対応領域が体幹対応領域Paと左右の脚対応領域Pd、Peの場合には、第1制御点設定部306bは、第1体幹制御点Oa1と第1左脚制御点Od1と第1右脚制御点Oe1とを基準制御点Ozとして設定しても良い。
また、第1制御点設定部306bは、被写体切り抜き画像の被写体領域P内で制御点Oをそれぞれ設定することで、当該被写体切り抜き画像に対応する裏面画像内の所定位置に対してもそれぞれ対応する制御点Oを自動的に設定しても良い。
基準点特定部306cは、動画像を構成する複数のフレームにおいて各基準点Qの位置をそれぞれ特定する。
即ち、基準点特定部306cは、記憶部305に記憶されている動体モデル(例えば、ヒト)の動き情報305aに基づいて、所定の基準時t1に対応する基準フレームS1にてモデル領域Rの各構成領域に設定されている複数の基準点Q、…の中で、第1制御点設定部306bにより設定された基準制御点Ozに対応する動き基準点Qzの位置座標を特定する。ここで、第1制御点設定部306bによって各対応領域の基準制御点Ozが隣合う対応領域との位置関係を考慮して設定された場合には、基準点特定部306cも、モデル領域Rの隣合う3つの構成領域(例えば、体幹構成領域Raと左右の腕構成領域Rb、Rc等)にて各基準制御点Ozに対応する動き基準点Qz(図14(a)参照)の位置座標をそれぞれ特定する。
例えば、基準点特定部306cは、基準制御点Ozとして第2体幹制御点Oa2と第1左腕制御点Ob1と第1右腕制御点Oc1とが設定された場合には、各制御点Oに対応する第2体幹基準点Qa2と第1左腕基準点Qb1と第1右腕基準点Qc1とを動き基準点Qzとしてその位置座標を特定する。同様に、基準点特定部306cは、基準制御点Ozとして第1体幹制御点Oa1と第1左脚制御点Od1と第1右脚制御点Oe1とが設定された場合には、各制御点Oに対応する第1体幹基準点Qa1と第1左脚基準点Qd1と第1右脚基準点Qe1とを動き基準点Qzとしてその位置座標を特定する。
また、基準点特定部306cは、第1特定手段として、動体モデルの動き情報305aに基づいて、所定の基準時t1から所定時間経過した時点tnにおける二次元の平面空間(所定空間)、即ち、XY平面空間の各フレームにてモデル領域Rの隣合う3つの領域(例えば、体幹構成領域Ra、左右の腕構成領域Rb、Rc等)に設定されている3つの動き基準点Qz、…(例えば、第2体幹基準点Qa2と第1左腕基準点Qb1と第1右腕基準点Qc1等)の位置をそれぞれ特定する。具体的には、基準点特定部306cは、記憶部305から動体モデル(例えば、ヒト)の動き情報305aを読み出して、当該動き情報305aに従って各フレームのモデル領域Rの各構成領域に設定されている複数の基準点Q、…の各々の位置座標を逐次取得する。つまり、基準点特定部306cは、所定の時間間隔(例えば、連続するフレームの時間間隔等)で移動する複数の基準点Q、…の各々の位置座標を順次取得していくことで、所定の基準時t1(例えば、動体モデルの静止時)から所定時間経過した時点tnにおける各フレーム毎に3つの動き基準点Qz、…のXY平面空間での位置座標をそれぞれ特定する。
ここで、各基準点Qの位置座標の取得は、複数の基準点Q、…が組をなすモデル領域Rの複数の構成領域毎に行われても良い。これにより、基準点特定部306cは、モデル領域Rを構成する隣合う3つの構成領域の各々に対応する各組の複数の基準点Q、…のうち、所定の基準時t1から所定時間経過した時点tnにおける二次元の平面空間(所定空間)での3つの動き基準点Qz、…以外の基準点Qの位置もそれぞれ特定する。
このように、基準点特定部306cは、モデル領域Rの複数の構成領域の各々に設定されている動き基準点Qzを含む全ての基準点Qについて、所定の基準時t1から所定時間経過した時点tnに対応する各フレーム内での位置座標を特定する。
制御点特定部306dは、複数の基準点Q、…に対応する複数の制御点O、…の位置をそれぞれ特定する制御点位置特定処理を実行する。
即ち、制御点特定部306dは、動き情報305aに基づいて所定の時間間隔で移動する各基準点Qに対応する各制御点Oの二次元の平面空間(例えば、XY平面空間)での位置座標を特定する。
ここで、制御点特定部306dは、動き情報305aに基づいて、被写体領域Pの各対応領域(例えば、体幹対応領域Pa、左右の腕対応領域Pb、Pc、左右の脚対応領域Pd、Pe等)毎に制御点Oの位置をそれぞれ特定する。例えば、制御点特定部306dは、被写体領域Pの各対応領域に設定されている複数の制御点O、…(例えば、体幹対応領域Paの第1〜第4体幹制御点Oa1〜Oa4等)の所定の基準時t1から所定時間経過した時点tnにおける位置座標を、モデル領域Rの各対応領域に対応する構成領域にて基準点特定部306cにより特定された当該時点tnにおける複数の基準点Q、…(例えば、体幹構成領域Raの第1〜第4体幹基準点Qa1〜Qa4等)の位置座標を基準として特定する。
具体的には、制御点特定部306dは、先ず、被写体領域Pの体幹対応領域Paに設定されている第1〜第4体幹制御点Oa1〜Oa4のうち、基準制御点Oz(例えば、第2体幹制御点Oa2等)が所定の基準時t1から所定時間経過した時点tnにて存する位置を特定する。即ち、制御点特定部306dは、基準点特定部306cにより特定された所定の基準時t1から所定時間経過した時点tnにおける、基準制御点Ozに対応する動き基準点Qz(例えば、第2体幹基準点Qa2等)の位置座標の、所定の基準時t1に対応する基準位置からのX軸及びY軸の各方向の移動距離dx、dyを算出した後、当該移動距離dx、dyを基準フレームS1のX軸及びY軸の各方向の大きさ(例えば、画素数)t_wd、t_htで除算して、移動距離dx、dyに対する基準フレームS1の大きさt_wd、t_htの移動比率Rx、Ryをそれぞれ算出する(図11(a)参照)。
そして、制御点特定部306dは、算出された移動比率Rx、Ryを基準として、XY平面空間にて基準制御点Ozが存する位置を特定する。例えば、制御点特定部306dは、移動比率Rx、Ryと静止画像(例えば、マスク画像P1)のX軸及びY軸の各方向の大きさ(例えば、画素数)i_wd、i_htとを乗算して、XY平面空間にて基準制御点Ozが存する位置を特定する(図11(b)参照)。
なお、被写体領域Pの他の対応領域、例えば、左右の腕対応領域Pb、Pc、左右の脚対応領域Pd、Pe等における基準制御点Oz、即ち、第1左腕制御点Ob1、第1右腕制御点Oc1、第1左脚制御点Od1、第1右脚制御点Oe1等の位置座標の特定方法については後述する。
その後、制御点特定部306dは、被写体領域Pの各対応領域に設定されている複数の制御点O、…(例えば、体幹対応領域Paの第1〜第4体幹制御点Oa1〜Oa4等)のうち、基準制御点Oz(例えば、第2体幹制御点Oa2等)以外の制御点Oの位置座標を特定する。
即ち、制御点特定部306dは、体幹構成領域Raの基準点特定部306cにより特定された所定の基準時t1から所定時間経過した時点tnにおける動き基準点Qz以外の基準点Qと当該体幹構成領域Raの他の基準点Qとの相対的な位置関係を基準として、第1制御点設定部306bにより設定された体幹対応領域Paの第1〜第4体幹制御点Oa1〜Oa4のうち、基準制御点Oz以外の制御点Oが存する位置をそれぞれ特定する。
ここで、他の基準点Qとは、動き基準点Qzと、当該動き基準点Qz以外の基準点Qとを含む。
具体的には、制御点特定部306dは、所定の基準時t1及びこの所定の基準時t1から所定時間経過した時点tnにおける体幹構成領域Raの第1〜第4体幹基準点Qa1〜Qa4のうち、隣合う基準点Qどうしの距離(例えば、ユークリッド空間における距離等)を基準フレーム距離Dt1及び後フレーム距離Dtnとしてそれぞれ算出する(図12(a)及び図12(b)参照)。また、制御点特定部306dは、所定の基準時t1における体幹対応領域Paの第1〜第4体幹制御点Oa1〜Oa4のうち、隣合う制御点Oどうしの距離(例えば、ユークリッド空間における距離等)を基準被写体距離Di1としてそれぞれ算出する(図12(c)参照)。そして、制御点特定部306dは、算出された後フレーム距離Dtnを基準フレーム距離Dt1で除算し、且つ、基準被写体距離Di1を乗算して、所定の基準時t1から所定時間経過した時点tnにおける体幹対応領域Paの第1〜第4体幹制御点Oa1〜Oa4のうち、隣合う制御点Oどうしの距離(例えば、ユークリッド空間における距離等)を後被写体距離Dinとしてそれぞれ算出する(図12(d)参照)。
また、制御点特定部306dは、所定時間経過した時点tnにおける体幹構成領域Raの第1〜第4体幹基準点Qa1〜Qa4のうち、動き基準点Qzと隣合う基準点Q(例えば、第1及び第3体幹基準点Qa1、Qa3等)については、この基準点Qと動き基準点Qzとを結ぶ線分のX軸からの偏角を各基準点Qの角度変位として算出し、一方、動き基準点Qzと隣合わない基準点Q(例えば、第4体幹基準点Qa4等)については、この基準点Qに隣合い、且つ、動き基準点Qz側の基準点Q(例えば、第3体幹基準点Qa3等)と当該基準点Qとを結ぶ線分のX軸からの偏角を各基準点Qの角度変位として算出する(図12(b)参照)。図12(b)にあっては、X軸を模式的に一点鎖線で表している。
なお、例えば、第1制御点設定部306bにより各対応領域内で所定の制御点O(例えば、体幹対応領域Paの第3体幹制御点Oa3等)が間引かれて設定されることで無効な制御点Oが存する場合には、当該無効な制御点O及び対応する基準点Qを除外して有効なものどうしの距離や有効な基準点Qの角度変位の算出を行うものとする。
そして、制御点特定部306dは、体幹対応領域Paの第1〜第4体幹制御点Oa1〜Oa4のうち、基準制御点Oz(例えば、第2体幹制御点Oa2等)以外の制御点Oについて、XY平面空間にて基準制御点Ozが存する位置を基準として所定時間経過した時点tnにおける位置座標を特定する(図12(d)参照)。
具体的には、制御点特定部306dは、基準制御点Ozと隣合う制御点O(例えば、第1及び第3体幹制御点Oa1、Oa3等)については、所定時間経過した時点tnにおける基準制御点Ozの位置から対応する各基準点Q(例えば、第1及び第3体幹基準点Qa1、Qa3等)の角度変位の方向に当該制御点Oの後被写体距離Dinの分だけ変位させて、XY平面空間にて当該制御点Oが存する位置を特定する。一方、制御点特定部306dは、基準制御点Ozと隣合わない制御点O(例えば、第4体幹制御点Oa4等)については、この制御点Oに隣合い、且つ、基準制御点Oz側の制御点O(例えば、第3体幹制御点Oa3等)の位置から対応する各基準点Q(例えば、第4体幹基準点Qa4等)の角度変位の方向に当該制御点Oの後被写体距離Dinの分だけ変位させて、XY平面空間にて当該制御点Oが存する位置を特定する。図12(d)にあっては、X軸を模式的に一点鎖線で表している。
なお、例えば、第1制御点設定部306bにより各対応領域内で所定の制御点O(例えば、体幹対応領域Paの第3体幹制御点Oa3等)が間引かれて設定された場合など、当該対応領域内で基準制御点Ozと隣合わない制御点Oが存在しない場合には、基準制御点Ozと隣合う制御点Oについてのみ位置座標を特定する。
また、制御点特定部306dは、被写体領域Pの各対応領域のうち、体幹対応領域Paと隣合う2つの対応領域に設定されている複数の制御点O、…(例えば、左腕対応領域Pbの第1〜第6左腕制御点Ob1〜Ob6、右腕対応領域Pcの第1〜第6右腕制御点Oc1〜Oc6等)の所定の基準時t1から所定時間経過した時点tnにおける位置座標を特定する(図14(a)及び図14(b)参照)。
即ち、制御点特定部306dは、先ず、体幹対応領域Paと隣合う左右の腕対応領域(2つの対応領域)Pb、Pcに設定されている第1〜第6左腕制御点Ob1〜Ob6並びに第1〜第6右腕制御点Oc1〜Oc6のうち、基準制御点Oz(例えば、第1左腕制御点Ob1、第1右腕制御点Oc1等)が所定の基準時t1から所定時間経過した時点tnにて存する位置を特定する。具体的には、制御点特定部306dは、第1制御点設定部306bにより被写体領域P内の対応位置に設定された第1左腕制御点Ob1及び第1右腕制御点Oc1(他の2つの基準制御点Oz、Oz)の各々と第2体幹制御点Oa2(何れか一の基準制御点Oz)とを通る2つの制御直線のなす角度、並びに、所定の基準時t1及び所定時間経過した時点tnにおける第1左腕基準点Qb1及び第1右腕基準点Qc1の各々と第2体幹基準点Qa2とを通る2つの基準直線のなす角度を基準として、所定時間経過した時点tnにて第1左腕制御点Ob1及び第1右腕制御点Oc1が存する位置をそれぞれ特定する。
また、制御点特定部306dは、角度算出部d1と、方向特定部d2とを具備している。
角度算出部d1は、所定の基準時t1から所定時間経過した時点tnにおける他の2つの基準制御点Oz、Oz(例えば、第1左腕制御点Ob1、第1右腕制御点Oc1等)の各々と何れか一の基準制御点Oz(例えば、第2体幹制御点Oa2等)とを通る2つの制御直線Li1l、Li1rのなす角度を後被写体角度θinとして算出する。
即ち、角度算出部d1は、所定の基準時t1における2つの制御直線Li1l、Li1rのなす角度(基準被写体角度θi1;図15(c)参照)、所定の基準時t1における2つの基準直線Lt1l、Lt1rのなす角度(基準フレーム角度θt1;図15(a)参照)及びこの所定の基準時t1から所定時間経過した時点tnにおける2つの基準直線Ltnl、Ltnrのなす角度(後フレーム角度θtn;図15(b)参照)並びに所定の基準時t1から所定時間経過した時点tnにおける当該2つの基準直線Ltnl、Ltnrのなす角度の変化を基準として、所定時間経過した時点tnにおける2つの制御直線Linl、Linrのなす角度(後被写体角度θin;図15(d)参照)を所定の演算式に従って算出する。
なお、角度算出部d1により算出される2つの制御直線のなす角とは、2つの基準制御点(例えば、第1左腕制御点Ob1、第1右腕制御点Oc1等)の各々と何れか一の基準制御点Oz(例えば、第2体幹制御点Oa2等)とを結ぶ2つの線分がなす角であって、被写体領域Pの当該何れか一の基準制御点Ozが含まれる対応領域の何れか一側(例えば、体幹対応領域Paの頭側)に形成される角のことである。
同様に、角度算出部d1により算出される2つの基準直線のなす角とは、2つの動き基準点Qz、Qz(例えば、第1左腕基準点Qb1、第1右腕基準点Qc1等)の各々と一の動き基準点Qz(例えば、第2体幹基準点Qa2等)とを結ぶ2つの線分がなす角であって、モデル領域Rの当該一の動き基準点Qzが含まれる構成領域の何れか一側(例えば、体幹構成領域Raの頭側)に形成される角のことである。
角度算出部d1は、具体的には、基準点特定部306cにより特定された所定の基準時t1に対応する基準フレームS1のモデル領域Rにおける、左腕構成領域Rbの第1左腕基準点Qb1、右腕構成領域Rcの第1右腕基準点Qc1及び体幹構成領域Raの第2体幹基準点Qa2の各々の基準位置の位置座標を特定する。そして、角度算出部d1は、左腕構成領域Rbの第1左腕基準点Qb1と体幹構成領域Raの第2体幹基準点Qa2とを通る基準直線Lt1lと、右腕構成領域Rcの第1右腕基準点Qc1と体幹構成領域Raの第2体幹基準点Qa2とを通る基準直線Lt1rとを特定して、所定の基準時t1における当該2つの基準直線Lt1l、Lt1rのなす角度を基準フレーム角度θt1として算出する(図15(a)参照)。
また、角度算出部d1は、基準点特定部306cにより特定された所定の基準時t1から所定時間経過した時点tnにおけるXY平面空間での左腕構成領域Rbの第1左腕基準点Qb1、右腕構成領域Rcの第1右腕基準点Qc1及び体幹構成領域Raの第2体幹基準点Qa2の各々の位置座標を特定する。そして、角度算出部d1は、左腕構成領域Rbの第1左腕基準点Qb1と体幹構成領域Raの第2体幹基準点Qa2とを通る基準直線Ltnlと、右腕構成領域Rcの第1右腕基準点Qc1と体幹構成領域Raの第2体幹基準点Qa2とを通る基準直線Ltnrとを特定して、所定時間経過した時点tnにおける当該2つの基準直線Ltnl、Ltnrのなす角度を後フレーム角度θtnとして算出する(図15(b)参照)。さらに、角度算出部d1は、算出された所定時間経過した時点tnにおける2つの基準直線Ltnl、Ltnrのなす後フレーム角度θtnと、所定の基準時t1における2つの基準直線Lt1l、Lt1rのなす基準フレーム角度θt1とを比較して、所定の基準時t1から所定時間経過した時点tnにおける2つの基準直線Ltnl、Ltnrのなす角度の変化(例えば、増角や減角等)を特定する。
また、角度算出部d1は、第1制御点設定部306bにより被写体領域Pに設定された所定の基準時t1における、左腕対応領域Pbの第1左腕制御点Ob1、右腕対応領域Pcの第1右腕制御点Oc1及び体幹対応領域Paの第2体幹制御点Oa2の各々の位置座標を特定する。そして、角度算出部d1は、左腕対応領域Pbの第1左腕制御点Ob1と体幹対応領域Paの第2体幹制御点Oa2とを通る制御直線Li1lと、右腕対応領域Pcの第1右腕制御点Oc1と体幹対応領域Paの第2体幹制御点Oa2とを通る制御直線Li1rとを特定して、所定の基準時t1における当該2つの制御直線Li1l、Li1rのなす角度を基準被写体角度θi1として算出する(図15(c)参照)。
そして、角度算出部d1は、所定の基準時t1における2つの基準直線Lt1l、Lt1rのなす基準フレーム角度θt1、所定の基準時t1から所定時間経過した時点tnにおける2つの基準直線Ltnl、Ltnrのなす後フレーム角度θtn、2つの基準直線Ltnl、Ltnrのなす角度の変化、及び、所定の基準時t1における2つの制御直線Li1l、Li1rのなす基準被写体角度θi1を基準として、所定時間経過した時点tnにおける2つの制御直線Linl、Linrのなす後被写体角度θinを算出する。即ち、角度算出部d1は、例えば、基準フレーム角度θt1及び基準被写体角度θi1が劣角(0<θ<π)であるか優角(π≦θ<2π)であるかや、2つの基準直線Ltnl、Ltnrのなす角度の変化が増角か減角かや、後フレーム角度θtnの大きさ等に応じて、下記式(1)〜(5)の中で後被写体角度θinを算出するための所定の演算式を特定する。そして、角度算出部d1は、特定された所定の演算式を用いて、所定時間経過した時点tnにおける2つの制御直線Linl、Linrのなす後被写体角度θinを算出する。
ここで、所定の演算式として下記式(1)〜(5)を規定している理由は、所定の基準時t1における2つの基準直線Lt1l、Lt1rのなす角及び2つの制御直線Li1l、Li1rのなす角のうち、両方が同じ方向の場合、2つの基準直線のなす角が「0(ゼロ)またはπまたは2π」となるとき、対応する2つの制御直線のなす角が「0またはπまたは2π」となり、互いに反対方向の場合、2つの基準直線のなす角が「0または2π」となるとき、対応する2つの制御直線のなす角が「0または2π」となるように、後被写体角度θinを算出するためである。
具体的には、例えば、基準フレーム角度θt1が劣角、基準被写体角度θi1が劣角、2つの基準直線Ltnl、Ltnrのなす角度の変化が減角の場合(図16(a)参照)、また、基準フレーム角度θt1が劣角、基準被写体角度θi1が優角、2つの基準直線Ltnl、Ltnrのなす角度の変化が減角の場合(図16(b)参照)、また、基準フレーム角度θt1が優角、基準被写体角度θi1が劣角、2つの基準直線Ltnl、Ltnrのなす角度の変化が減角の場合(図16(c)参照)、角度算出部d1は、下記式(1)を所定の演算式として特定して後被写体角度θinを算出する。
Figure 0005874426
また、例えば、基準フレーム角度θt1が優角、基準被写体角度θi1が優角、2つの基準直線Ltnl、Ltnrのなす角度の変化が増角の場合(図16(d)参照)、また、基準フレーム角度θt1が優角、基準被写体角度θi1が劣角、2つの基準直線Ltnl、Ltnrのなす角度の変化が増角の場合(図16(e)参照)、また、基準フレーム角度θt1が劣角、基準被写体角度θi1が優角、2つの基準直線Ltnl、Ltnrのなす角度の変化が増角の場合(図16(f)参照)、角度算出部d1は、下記式(2)を所定の演算式として特定して後被写体角度θinを算出する。
Figure 0005874426
また、例えば、基準フレーム角度θt1が劣角、基準被写体角度θi1が劣角、2つの基準直線Ltnl、Ltnrのなす角度の変化が増角であって、後フレーム角度θtnがθt1<θtn≦2π−θt1を満たす場合(図17(a)参照)、また、基準フレーム角度θt1が優角、基準被写体角度θi1が優角、2つの基準直線Ltnl、Ltnrのなす角度の変化が減角であって、後フレーム角度θtnが2π−θt1<θtnを満たすの場合(図17(b)参照)、角度算出部d1は、下記式(3)を所定の演算式として特定して後被写体角度θinを算出する。
Figure 0005874426
また、例えば、基準フレーム角度θt1が劣角、基準被写体角度θi1が劣角、2つの基準直線Ltnl、Ltnrのなす角度の変化が増角であって、後フレーム角度θtnが2π−θt1<θtnを満たす場合(図17(c)参照)角度算出部d1は、下記式(4)を所定の演算式として特定して後被写体角度θinを算出する。
Figure 0005874426
また、基準フレーム角度θt1が優角、基準被写体角度θi1が優角、2つの基準直線Ltnl、Ltnrのなす角度の変化が減角であって、後フレーム角度θtnがθtn≦2π−θt1を満たすの場合(図17(d)参照)、角度算出部d1は、下記式(5)を所定の演算式として特定して後被写体角度θinを算出する。
Figure 0005874426
方向特定部d2は、所定の基準時t1から所定時間経過した時点tnにて何れか一の基準制御点Oz(例えば、第2体幹制御点Oa2等)に対して他の2つの基準制御点Oz、Oz(例えば、第1左腕制御点Ob1、第1右腕制御点Oc1等)が存する方向を特定する。
即ち、方向特定部d2は、角度算出部d1により算出された2つの制御直線Linl、Linrのなす後被写体角度θinと、所定の基準時t1から所定時間経過した時点tnにおける第2体幹基準点Qa2(一の動き基準点Qz)に対する第1左腕基準点Qb1及び第1右腕基準点Qc1(他の2つの動き基準点Qz、Qz)の相対的な位置とに基づいて、所定時間経過した時点tnにて第2体幹基準点Qa2に対して第1左腕基準点Qb1及び第1右腕基準点Qc1が存する方向を特定する。ここで、方向特定部d2は、所定の基準時t1から所定時間経過した時点tnにおける2つの制御直線Linl、Linrのなす角の頂点を所定時間経過した時点tnにおける第2体幹制御点Oa2(何れか一の制御点O)とし、当該第2体幹制御点Oa2と交わり、所定時間経過した時点tnにおける2つの基準直線Ltnl、Ltnrのなす角の二等分線と同方向に延在する直線Lcを基準位置とする角度範囲内で、第2体幹制御点Oa2に対して第1左腕基準点Qb1及び第1右腕基準点Qc1が存する方向を特定する。
具体的には、方向特定部d2は、所定の基準時t1から所定時間経過した時点tnにおける第2体幹制御点Oa2の位置と交わるように、所定時間経過した時点tnにおける2つの基準直線Ltnl、Ltnrのなす角の二等分線と同方向に直線Lcを設定する。そして、方向特定部d2は、2つの制御直線Linl、Linrのなす角の頂点が第2体幹制御点Oa2(何れか一の制御点O)と重なり、且つ、直線Lcが中心に位置するように角度算出部d1により算出された後被写体角度θinを構成する2つの制御直線Linl、Linrの各々と同方向に延在する2つの直線を設定する(図15(d)参照)。つまり、当該2つの直線の各々と直線Lcとがなす各角度が後被写体角度θin/2で等しくなる。
これにより、第1左腕基準点Qb1及び第1右腕基準点Qc1が存する方向として、2つの直線の延在方向が特定される。
そして、制御点特定部306dは、所定の基準時t1及びこの所定の基準時t1から所定時間経過した時点tnにおける他の2つの動き基準点Qz、Qz(例えば、第1左腕基準点Qb1、第1右腕基準点Qc1等)の各々と一の動き基準点Qz(例えば、第2体幹基準点Qa2等)との距離どうしの比率を基準として、所定時間経過した時点tnにて他の2つの基準制御点Oz、Oz(例えば、第1左腕制御点Ob1、第1右腕制御点Oc1等)が存する位置をそれぞれ特定する。即ち、制御点特定部306dは、所定の基準時t1における第1左腕基準点Qb1及び第1右腕基準点Qc1の各々と第2体幹基準点Qa2との距離(前基準点間距離)と、所定の基準時t1から所定時間経過した時点tnにおける第1左腕基準点Qb1及び第1右腕基準点Qc1の各々と第2体幹基準点Qa2との距離(後基準点間距離)との比率を基準として、所定の基準時t1から所定時間経過した時点tnにおける第1左腕制御点Ob1及び第1右腕制御点Oc1の各々と第2体幹制御点Oa2との距離(後制御点間距離)を算出する。
具体的には、制御点特定部306dは、所定の基準時t1における第1左腕基準点Qb1及び第1右腕基準点Qc1の各々と第2体幹基準点Qa2との距離(例えば、ユークリッド空間における距離等)を前基準点間距離Ds1l、Ds1rとして算出する(図15(a)参照)。また、制御点特定部306dは、所定の基準時t1から所定時間経過した時点tnにおける第1左腕基準点Qb1及び第1右腕基準点Qc1の各々と第2体幹基準点Qa2との距離(例えば、ユークリッド空間における距離等)を後基準点間距離Dsnl、Dsnrとして算出する(図15(b)参照)。
また、制御点特定部306dは、所定の基準時t1における第1左腕制御点Ob1及び第1右腕制御点Oc1の各々と第2体幹制御点Oa2との距離(例えば、ユークリッド空間における距離等)を前制御点間距離Dc1l、Dc1rとして算出する(図15(c)参照)。
そして、制御点特定部306dは、算出された後基準点間距離Dsnl、Dsnrを前基準点間距離Ds1l、Ds1rで除算した値(比率)に前制御点間距離Dc1l、Dc1rを乗算して、所定の基準時t1から所定時間経過した時点tnにおける第1左腕制御点Ob1及び第1右腕制御点Oc1の各々と第2体幹制御点Oa2との距離を後制御点間距離Dcnl、Dcnrとして算出する(図15(d)参照)。
また、制御点特定部306dは、方向特定部d2により特定された第1左腕基準点Qb1及び第1右腕基準点Qc1が存する方向、即ち、2つの直線の各々の延在方向に沿って、所定の基準時t1から所定時間経過した時点tnにおける第2体幹制御点Oa2の位置から後制御点間距離Dcnl、Dcnrの分だけ変位させて、XY平面空間にて第1左腕基準点Qb1及び第1右腕基準点Qc1が存する位置を特定する(図15(d)参照)。
そして、制御点特定部306dは、体幹対応領域Paと隣合う2つの対応領域に設定されている複数の制御点O、…のうち、基準制御点Oz(例えば、左腕対応領域Pbの第1左腕制御点Ob1、右腕対応領域Pcの第1右腕制御点Oc1等)以外の制御点O(例えば、左腕対応領域Pbの第2〜第6左腕制御点Ob2〜Ob6、右腕対応領域Pcの第2〜第6右腕制御点Oc2〜Oc6等)の位置座標を特定する。
ここで、左腕対応領域Pbの第2〜第6左腕制御点Ob2〜Ob6並びに右腕対応領域Pcの第2〜第6右腕制御点Oc2〜Oc6の位置座標の特定方法は、上記した体幹対応領域Paの基準制御点Oz(例えば、第2体幹制御点Oa2等)以外の制御点O(例えば、第1、第3、第4体幹制御点Oa1、Oa3、Oa4等)の位置座標の特定方法と同様である。即ち、詳細な説明は省略するが、制御点特定部306dは、左右の腕構成領域Rb、Rcの各々について、基準点特定部306cにより特定された所定の基準時t1から所定時間経過した時点tnにおける動き基準点Qz(第1左腕基準点Qb1、第1右腕基準点Qc1)以外の基準点Qと当該腕構成領域の他の基準点Qとの相対的な位置関係を基準として、各腕対応領域の基準制御点Oz(第1左腕制御点Ob1、第1右腕制御点Oc1)以外の制御点Oが存する位置をそれぞれ特定する。
このように、制御点特定部306dは、基準点特定部306cにより特定された所定の基準時t1から所定時間経過した時点tnにおける隣合う3つの構成領域(例えば、体幹構成領域Ra、左右の腕構成領域Rb、Rc等)の3つの動き基準点Qz、…(例えば、第2体幹基準点Qa2、第1左腕基準点Qb1、第1右腕基準点Qc1等)以外の基準点Qと当該動き基準点Qzが含まれる構成領域(組)の他の基準点Qとの相対的な位置関係を基準として、第1制御点設定部306bにより3つの構成領域の各々に対応させて設定された各対応領域(組)の制御点Oのうち、所定時間経過した時点tnにて3つの基準制御点Oz、…以外の制御点Oが存する位置をそれぞれ特定する。
なお、3つの基準制御点Oz、…としての、第2体幹制御点Oa2、第1左腕制御点Ob1及び第1右腕制御点Oc1のうち、第2体幹制御点Oa2を何れか一の基準制御点Ozとしたが、一例であってこれに限られるものではなく、第1左腕制御点Ob1や第1右腕制御点Oc1を何れか一の基準制御点Ozとしても良い。この場合には、先ず、左腕対応領域Pb(或いは、右腕対応領域Pc)の全ての制御点Oの位置座標を特定した後、体幹対応領域Paと右腕対応領域Pc(或いは、左腕対応領域Pb)の全ての制御点Oの位置座標を特定する。
また、体幹対応領域Paと隣合う2つの対応領域として、左右の腕対応領域Pb、Pcを例示したが、一例であってこれに限られるものではなく、例えば、左右の脚対応領域Pd、Peであっても良い。なお、詳細な説明は省略するが、制御点特定部306dは、第1体幹制御点Oa1と第1左脚制御点Od1と第1右脚制御点Oe1とを基準制御点Ozとして、上記と同様に、左右の脚対応領域Pd、Peの複数の制御点O、…の位置座標を特定する。また、同様に、第1制御点設定部306bにより3つの基準制御点Oz、…として、第1体幹制御点Oa1、第1左脚制御点Od1及び第1右脚制御点Oe1が設定された場合にも、何れか一の基準制御点Ozは第1体幹制御点Oa1に限られるものではなく、第1左脚制御点Od1や第1右脚制御点Oe1としても良い。そして、先ず、左脚対応領域Pd(或いは、右脚対応領域Pe)の全ての制御点Oの位置座標を特定した後、体幹対応領域Paと右脚対応領域Pe(或いは、左脚対応領域Pd)の全ての制御点Oの位置座標を特定する。
このように、制御点特定部306dは、第2特定手段として、第1制御点設定部306bにより設定された3つの基準制御点Oz、…(例えば、第2体幹制御点Oa2、第1左腕制御点Ob1、第1右腕制御点Oc1等)のうちの何れか一の基準制御点Oz(例えば、第2体幹制御点Oa2等)と他の2つの基準制御点Oz、Ozとの相対的な位置関係、並びに、所定の基準時t1及びこの所定の基準時t1から所定時間経過した時点tnにおける3つの動き基準点Qz、…(例えば、第2体幹基準点Qa2、第1左腕基準点Qb1、第1右腕基準点Qc1等)のうち、何れか一の基準制御点Ozに対応する一の動き基準点Qz(例えば、第2体幹基準点Qa2等)と他の2つの動き基準点Qz、Qzとの相対的な位置関係を基準として、所定の基準時t1から所定時間経過した時点tnにて他の2つの基準制御点Oz、Ozが存する位置をそれぞれ特定する。
第2制御点設定部306eは、所定の時間間隔で移動する複数の基準点Q、…に対応させて制御点Oを順次設定する。
即ち、第2制御点設定部306eは、制御点特定部306dによる特定結果に基づいて、所定の時間間隔毎に各基準点Qに対応する各制御点Oを制御点特定部306dにより特定されたXY平面空間での位置座標に移動させて設定する。つまり、第2制御点設定部306eは、所定の基準時t1から所定時間経過した時点tnにおけるXY平面空間での各基準点Qの位置に対応させるように、第1制御点設定部306bにより静止画像の被写体領域P内に設定された複数の制御点O、…を、制御点特定部306dにより特定された所定時間経過した時点tnにおけるXY平面空間での各位置に設定する。
領域分割部306fは、被写体領域Pを所定形状の複数の画像領域(図示略)に分割する。
即ち、領域分割部306fは、例えば、被写体切り抜き画像やマスク画像P1の画像データに対してドローネの三角形分割を行って、被写体領域P内に所定の間隔で頂点を配置して三角形のメッシュ状の複数の画像領域に分割する。
ここで、ドローネの三角形分割とは、各点を頂点とする複数の三角形で処理対象の領域を分割する方法のうち、三角形の最小角の和を最大にするように分割する方法のことである。
なお、領域分割部306fによる被写体領域Pの分割手法として、ドローネの三角形分割を例示したが、一例であってこれに限られるものではなく、被写体領域Pを複数の画像領域に分割する手法であれば適宜任意に変更可能である。
フレーム生成部306gは、動画像を構成する複数の変形フレーム画像を逐次生成する。
即ち、フレーム生成部306gは、制御点特定部306dにより特定された所定の基準時t1から所定時間経過した時点tnにおける隣合う3つの対応領域(例えば、体幹構成領域Ra、左右の腕構成領域Rb、Rc等)の3つの制御点O、…が存する位置を基準として、被写体領域Pを変形させた変形画像を生成する。具体的には、フレーム生成部306gは、第2制御点設定部306eにより設定された位置に移動させた複数の制御点O、…を基準として、動き情報305aの複数の基準点Q、…の動きに追従させるように、被写体切り抜き画像の被写体領域P内に設定されている複数の制御点O、…を移動させた複数の変形フレーム画像を逐次生成する。
例えば、フレーム生成部306gは、所定の基準時t1から所定時間経過した時点tnにおけるXY平面空間での複数の制御点O、…を基準として、領域分割部306fにより被写体領域Pが分割された複数の画像領域(例えば、三角形のメッシュ状の領域)を移動させたり変形させることで、変形フレーム画像を生成する(図18参照)。
なお、図18にあっては、被写体切り抜き画像のマスク画像P1と、動き情報305aの2番目及び3番目のフレームS3に対応する変形フレーム画像のマスク画像P2、P3を模式的に表している。
また、制御点Oを基準とした所定の画像領域を移動させたり変形させる処理は、公知の技術であるので、ここでは詳細な説明を省略する。
なお、フレーム生成部306gは、例えば、Open GL等の三次元の描画インターフェース等を利用して、被写体領域Pを構成する各領域(例えば、左右の腕対応領域Pb、Pcや左右の脚対応領域Pd、Pe等)の所定の時間間隔毎の奥行き方向の位置に基づいて、当該所定の時間間隔毎に被写体切り抜き画像の被写体領域Pの各領域を奥行き方向に変位させるようにしても良い。
また、フレーム生成部306gは、移動後の基準点Qの各々に対応する複数の制御点O、…に基づいて生成される時間軸に沿って隣合う二つの変形フレーム画像どうしの間を補間する補間フレーム画像(図示略)を生成する。即ち、フレーム生成部306gは、動画再生部306iにより複数のフレーム画像が所定の再生フレームレート(例えば、30fps等)で再生されるように、二つの変形フレーム画像どうしの間を補間する補間フレーム画像を所定数生成する。
具体的には、フレーム生成部306gは、隣合う二つの変形フレーム画像間における、動画再生部306iにより演奏される所定の曲の演奏の進行度合を逐次取得して、当該進行度合に応じて、隣合う二つの変形フレーム画像間で再生される補間フレーム画像を逐次生成する。例えば、フレーム生成部306gは、MIDI規格の演奏情報305bに基づいてテンポの設定情報及び四分音符の分解能(Tickカウント数)を取得して、動画再生部306iにより演奏される所定の曲の演奏の経過時間をTickカウント数に変換する。続けて、フレーム生成部306gは、所定の曲の演奏の経過時間に対応するTickカウント数に基づいて、所定のタイミング(例えば、各小節の一拍目等)に同期させた隣合う二つの変形フレーム画像間における所定の曲の演奏の相対的な進行度合を、例えば百分率で算出する。そして、フレーム生成部306gは、所定の曲の演奏の相対的な進行度合に応じて、当該隣合う二つの変形フレーム画像に対する重み付けを変えて補間フレーム画像を生成する。
なお、補間フレーム画像を生成する処理は、公知の技術であるので、ここでは詳細な説明を省略する。
また、フレーム生成部306gによる変形フレーム画像や補間フレーム画像の生成は、上記と同様にして、マスク画像P1の画像データ並びにアルファマップについても行われる。
裏面画像生成部306hは、被写体の裏側(背面側)を擬似的に表す裏面画像(図示略)を生成する。
即ち、裏面画像生成部306hは、例えば、被写体切り抜き画像の被写体領域Pの輪郭部分の色情報に基づいて、裏面画像における被写体切り抜き画像の被写体領域Pに対応する被写体対応領域を描画して当該裏面画像を生成する。
動画再生部306iは、フレーム生成部306gにより生成された複数のフレーム画像の各々を再生する。
即ち、動画再生部306iは、ユーザによるユーザ端末2の操作入力部202の所定操作に基づいて指定された演奏情報305bに基づいて所定の曲を自動的に演奏するとともに、当該所定の曲の所定のタイミングで複数のフレーム画像の各々を再生する。具体的には、動画再生部306iは、所定の曲の演奏情報305bのデジタルデータをD/Aコンバータによりアナログデータに変換して当該所定の曲を自動的に演奏させ、このとき、所定のタイミング(例えば、各小節の1拍目や各拍等)に同期させるように隣合う二つの変形フレーム画像を再生するとともに、隣合う二つの変形フレーム画像間における所定の曲の演奏の相対的な進行度合に応じて、当該進行度合に対応する各々の補間フレーム画像を再生する。
なお、動画再生部306iは、動画処理部306により指定された速さで被写体画像に係る複数のフレーム画像を再生しても良い。この場合には、動画再生部306iは、隣合う二つの変形フレーム画像を同期させるタイミングを変化させることで、所定の単位時間内に再生されるフレーム画像の数を変更して被写体画像の動きの速さを可変させる。
次に、ユーザ端末2及びサーバ3を用いた動画生成処理について、図5〜図18を参照して説明する。
ここで、図5及び図6は、動画生成処理に係る動作の一例を示すフローチャートである。
なお、以下の説明にあっては、被写体存在画像の画像データから生成された被写体切り抜き画像及び当該被写体切り抜き画像に対応するマスク画像P1の画像データがサーバ3の記憶部305に記憶されているものとする。
図5に示すように、ユーザ端末2の中央制御部201のCPUは、ユーザによる操作入力部202の所定操作に基づいて、サーバ3により開設される動画生成用ページのアクセス指示が入力されると、当該アクセス指示を通信制御部206により所定の通信ネットワークNを介してサーバ3に送信させる(ステップS1)。
サーバ3の通信制御部303によって、ユーザ端末2から送信されたアクセス指示が受信されると、中央制御部301のCPUは、動画生成用ページのページデータを通信制御部303により所定の通信ネットワークNを介してユーザ端末2に送信させる(ステップS2)。
そして、ユーザ端末2の通信制御部206によって、動画生成用ページのページデータが受信されると、表示部203は、当該動画生成用ページのページデータに基づいて、動画生成用ページの画面(図示略)を表示する。
次に、ユーザ端末2の中央制御部201は、ユーザによる操作入力部202の所定操作に基づいて、動画生成用ページの画面内にて操作された各種ボタンに対応する指示信号を通信制御部206により所定の通信ネットワークNを介してサーバ3に送信させる(ステップS3)。
図6に示すように、サーバ3の中央制御部301のCPUは、ユーザ端末2からの指示の内容に応じて処理を分岐させる(ステップS4)。具体的には、中央制御部301のCPUは、ユーザ端末2からの指示が、被写体画像の指定に関する内容の場合(ステップS4;被写体画像の指定)、処理をステップS51に移行させ、また、背景画像の指定に関する内容の場合(ステップS4;背景画像の指定)、処理をステップS61に移行させ、また、動き及び曲の指定に関する内容の場合(ステップS4;動き及び曲の指定)、処理をステップS71に移行させる。
<被写体画像の指定>
ステップS4にて、ユーザ端末2からの指示が、被写体画像の指定に関する内容の場合(ステップS4;被写体画像の指定)、動画処理部306の画像取得部306aは、記憶部305に記憶されている被写体切り抜き画像の画像データの中からユーザにより指定された被写体切り抜き画像の画像データと、当該被写体切り抜き画像の画像データと対応付けられているマスク画像P1の画像データを読み出して取得する(ステップS51)。
次に、動画処理部306は、取得された被写体切り抜き画像やマスク画像P1の被写体領域P内で制御点Oが既に設定されているか否かを判定する(ステップS52)。
ステップS52にて、制御点Oが設定されていないと判定されると(ステップS52;NO)、動画処理部306は、被写体切り抜き画像の被写体領域Pの画像の裏側を擬似的に表す裏面画像(図示略)を生成する裏面画像生成処理を行う(ステップS53)。
次に、中央制御部301のCPUは、生成された裏面画像と対応づけられた被写体切り抜き画像の画像データを通信制御部303により所定の通信ネットワークNを介してユーザ端末2に送信させる(ステップS54)。その後、動画処理部306は、被写体切り抜き画像及びマスク画像P1の各々の被写体領域P内で、制御点Oを複数設定する(ステップS55)。
具体的には、動画処理部306の第1制御点設定部306bは、記憶部305から動体モデル(例えば、ヒト)の動き情報305aを読み出して、当該動き情報305aに規定されている静止状態の動体モデルに対応する基準フレームS1(例えば、1フレーム目等)のモデル領域Rの各構成領域に設定されている複数の基準点Q、…の初期位置(所定の基準時t1に対応する基準位置)を取得する。そして、第1制御点設定部306bは、被写体切り抜き画像及びマスク画像P1の各被写体領域P内で各基準点Qの初期位置に対応する対応位置をそれぞれ特定した後、特定された各対応位置に制御点Oをそれぞれ設定する(図7(a)参照)。
例えば、第1制御点設定部306bは、被写体領域Pの体幹対応領域Paに第1〜第4体幹制御点Oa1〜Oa4を設定し、また、左腕対応領域Pbに第1〜第6左腕制御点Ob1〜Ob6を設定し、また、右腕対応領域Pcに第1〜第6右腕制御点Oc1〜Oc6を設定し、また、左脚対応領域Pdに第1〜第6左脚制御点Od1〜Od6を設定し、また、右脚対応領域Peに第1〜第6右脚制御点Oe1〜Oe6を設定する。
また、第1制御点設定部306bは、被写体領域Pの各対応領域に設定されている有効な複数の制御点O、…の中で、何れか一の制御点Oを基準制御点Ozとして設定する。具体的には、第1制御点設定部306bは、各対応領域の基準制御点Ozを隣合う対応領域との位置関係を考慮して設定し、例えば、隣合う3つの対応領域が体幹対応領域Paと左右の腕対応領域Pb、Pcの場合には、第2体幹制御点Oa2と第1左腕制御点Ob1と第1右腕制御点Oc1とを基準制御点Ozとして設定し、隣合う3つの対応領域が体幹対応領域Paと左右の脚対応領域Pd、Peの場合には、第1体幹制御点Oa1と第1左脚制御点Od1と第1右脚制御点Oe1とを基準制御点Ozとして設定する。
そして、動画再生部306iは、当該被写体領域Pに対して設定された制御点O並びに被写体画像の合成位置やサイズ等の合成内容を所定の格納手段(例えば、所定のメモリ等)に登録する(ステップS56)。
その後、中央制御部301のCPUは、処理をステップS8に移行させる。ステップS8の処理の内容については、後述する。
なお、ステップS52にて、既に制御点Oが設定されていると判定されると(ステップS52;YES)、中央制御部301のCPUは、ステップS53〜S56の処理をスキップして、処理をステップS8に移行させる。ステップS8の処理の内容については、後述する。
<背景画像の指定>
ステップS4にて、ユーザ端末2からの指示が、背景画像の指定に関する内容の場合(ステップS4;背景画像の指定)、動画処理部306の動画再生部306iは、ユーザによる操作入力部202の所定操作に基づいて所望の背景画像(他の画像)の画像データを読み出して取得し(ステップS61)、当該背景画像の画像データを動画像の背景として所定の格納手段に登録する(ステップS62)。
具体的には、サーバ3には、ユーザ端末2の表示部203に表示されている動画生成用ページの画面内の複数の画像データの中で、ユーザによる操作入力部202の所定操作に基づいて指定された何れか一の画像データの指定指示が、通信ネットワークN及び通信制御部303を介して入力される。動画再生部306iは、当該指定指示に係る背景画像の画像データを記憶部305から読み出して取得した後、当該背景画像の画像データを動画像の背景として登録する。
次に、中央制御部301のCPUは、背景画像の画像データを通信制御部303により所定の通信ネットワークNを介してユーザ端末2に送信させる(ステップS63)。
その後、中央制御部301のCPUは、処理をステップS8に移行させる。ステップS8の処理の内容については、後述する。
<動き及び曲の指定>
ステップS4にて、ユーザ端末2からの指示が、動き及び曲の指定に関する内容の場合(ステップS4;動き及び曲の指定)、動画処理部306は、ユーザによる操作入力部202の所定操作に基づいて動き情報305aや動きの速さを設定する(ステップS71)。
具体的には、サーバ3には、ユーザ端末2の表示部203に表示されている動画生成用ページの画面内の複数の動きモデルのモデル名の中で、ユーザによる操作入力部202の所定操作に基づいて指定された何れか一のモデル名(例えば、フラダンス等)の指定指示が、通信ネットワークN及び通信制御部303を介して入力される。動画処理部306は、記憶部305に記憶されている複数の動き情報305a、…の中で、当該指定指示に係る動きモデルのモデル名と対応付けられている動き情報305aを設定する。なお、動画処理部306は、複数の動き情報305a、…の中で、例えば、デフォルトとして設定されている動き情報305aやユーザにより前回指定された動き情報305aを自動的に指定するようにしても良い。
また、サーバ3には、ユーザ端末2の表示部203に表示されている動画生成用ページの画面内の複数の動きの速さ(例えば、1/2倍、標準(等倍)、2倍等)の中で、ユーザによる操作入力部202の所定操作に基づいて指定された何れか一の速さ(例えば、標準等)の指定指示が、通信ネットワークN及び通信制御部303を介して入力される。動画処理部306は、当該指定指示に係る速さを被写体画像の動きの速さとして設定する。
その後、動画処理部306の動画再生部306iは、設定された動き情報305aや動きの速さを動画像の動きの内容として所定の格納手段に登録する(ステップS72)。
次に、動画処理部306は、ユーザによる操作入力部202の所定操作に基づいて自動的に演奏される曲を設定する(ステップS73)。
具体的には、サーバ3には、ユーザ端末2の表示部203に表示されている動画生成用ページの画面内の複数の曲名の中で、ユーザによる操作入力部202の所定操作に基づいて指定された何れか一の曲名の指定指示が、通信ネットワークN及び通信制御部303を介して入力される。動画処理部306は、当該指定指示に係る曲名の曲を設定する。
その後、中央制御部301のCPUは、処理をステップS8に移行させる。ステップS8の処理の内容については、後述する。
ステップS8では、中央制御部301のCPUは、動画像の生成が可能な状態であるか否かを判定する(ステップS8)。即ち、ユーザによる操作入力部202の所定操作に基づいて、サーバ3の動画処理部306は、被写体領域Pに対する制御点Oの登録、被写体領域Pの画像の動きの内容の登録、背景画像の登録等を行うことで、動画像の生成準備が整って動画像を生成可能か否か判定する。
ここで、動画像の生成が可能な状態でないと判定されると(ステップS8;NO)、中央制御部301のCPUは、処理をステップS4に戻し、ユーザ端末2からの指示の内容に応じて処理を分岐させる(ステップS4)。
一方、動画像の生成が可能な状態であると判定されると(ステップS8;YES)、図4に示すように、中央制御部301のCPUは、処理をステップS10に移行させる。
ステップS10では、サーバ3の中央制御部301のCPUは、ユーザによるユーザ端末2の操作入力部202の所定操作に基づいて動画像のプレビュー指示が入力されたか否かを判定する(ステップS10)。
即ち、ステップS9にて、ユーザ端末2の中央制御部201が、ユーザによる操作入力部202の所定操作に基づいて入力された動画像のプレビュー指示を、通信制御部206により所定の通信ネットワークNを介してサーバ3に送信させる(ステップS9)。
そして、ステップS10にて、サーバ3の中央制御部301のCPUによって、動画像のプレビュー指示が入力されたと判定されると(ステップS10;YES)、動画処理部306の動画再生部306iは、設定済みの曲名に対応する演奏情報305bを動画像とともに自動的に演奏される情報として所定の格納手段に登録する(ステップS11)。
次に、動画処理部306は、格納手段に登録されている演奏情報305bに基づいて動画再生部306iによる所定の曲の演奏を開始させる(ステップS12)。続けて、動画処理部306は、動画再生部306iによる所定の曲の演奏が終了したか否かを判定する(ステップS13)。
ここで、曲の演奏が終了していないと判定されると(ステップS13;NO)、動画処理部306は、所定の時間間隔で移動する複数の基準点Q、…に対応させて制御点Oを順次設定する制御点設定処理(図7参照)を実行する(ステップS14)。
なお、制御点設定処理については、後述する。
その後、動画処理部306は、フレーム画像を生成するフレーム画像生成処理を実行する(ステップS15)。
具体的には、動画処理部306の領域分割部306fは、例えば、被写体切り抜き画像及びマスク画像P1の画像データに対してドローネの三角形分割を行って、被写体領域P内に所定の間隔で頂点を配置して三角形のメッシュ状の複数の画像領域に分割する。続けて、フレーム生成部306gは、第2制御点設定部306eにより設定された所定の基準時t1から所定時間経過した時点tnにおけるXY平面空間での複数の制御点O、…を基準として、領域分割部306fにより被写体領域Pが分割された複数の画像領域(例えば、三角形のメッシュ状の領域)を移動させたり変形させることで、変形フレーム画像を生成する(図18参照)。
そして、動画処理部306は、生成された変形フレーム画像と背景画像とを公知の画像合成手法を用いて合成する。具体的には、動画処理部306は、例えば、背景画像の各画素のうち、アルファ値が「0」の画素は透過させ、アルファ値が「1」の画素は変形フレーム画像の対応する画素の画素値で上書きし、さらに、背景画像の各画素のうち、アルファ値が「0<α<1」の画素は1の補数(1−α)を用いて変形フレーム画像の被写体領域Pを切り抜いた画像(背景画像×(1−α))を生成した後、アルファマップにおける1の補数(1−α)を用いて変形フレーム画像を生成した際に単一背景色とブレンドした値を計算し、当該値を変形フレーム画像から減算し、それを被写体領域Pを切り抜いた画像(背景画像×(1−α))と合成する。
また、フレーム生成部306gは、動画再生部306iにより演奏される所定の曲の演奏の進行度合に応じて、隣合う二つの変形フレーム画像どうしの間を補間する補間フレーム画像を生成する。フレーム生成部306gにより補間フレーム画像が生成された場合にも、動画処理部306は、補間フレーム画像と背景画像とを、上記変形フレーム画像の場合と同様に、公知の画像合成手法を用いて合成する。
次に、中央制御部301のCPUは、動画再生部306iにより自動的に演奏される曲の演奏情報305bとともに、当該曲の所定のタイミングで再生される変形フレーム画像及び補間フレーム画像からなるプレビュー動画のデータを、通信制御部303により所定の通信ネットワークNを介してユーザ端末2に送信させる(ステップS16)。ここで、プレビュー動画のデータは、所定数の変形フレーム画像及び補間フレーム画像からなる複数のフレーム画像とユーザ所望の背景画像とが合成された動画像を構成している。
次に、動画処理部306は、処理をステップS13に戻し、曲の演奏が終了したか否かを判定する(ステップS13)。
上記の処理は、ステップS13にて、曲の演奏が終了したと判定されるまで(ステップS13;YES)、繰り返し実行される。
そして、曲の演奏が終了したと判定されると(ステップS13;YES)、図6に示すように、中央制御部301のCPUは、処理をステップS4に戻し、ユーザ端末2からの指示の内容に応じて処理を分岐させる(ステップS4)。
ステップS16にて、サーバ3から送信されたプレビュー動画のデータがユーザ端末2の通信制御部303によって受信されると、中央制御部201のCPUは、音出力部204及び表示部203を制御してプレビュー動画を再生させる(ステップS17)。
具体的には、音出力部204は、演奏情報305bに基づいて曲を自動的に演奏してスピーカから放音するとともに、表示部203は、当該自動的に演奏される曲の所定のタイミングで変形フレーム画像及び補間フレーム画像からなるプレビュー動画を表示画面に表示する。
なお、上記の動画生成処理にあっては、プレビュー動画を再生するようにしたが、一例であってこれに限られるものではなく、例えば、逐次生成された変形フレーム画像や補間フレーム画像や背景画像の画像データ並びに演奏情報305bを一つのファイルとして所定の記憶手段に記憶していき、動画像に係る全てのデータの生成完了後に、当該ファイルをサーバ3からユーザ端末2に送信して当該ユーザ端末2にて再生させるようにしても良い。
<制御点設定処理>
以下に、動画処理部306による制御点設定処理について、図8〜図17を参照して詳細に説明する。
図8は、動画生成処理における制御点設定処理に係る動作の一例を示すフローチャートである。
図8に示すように、先ず、動画処理部306の基準点特定部306cは、動体モデルのモデル領域Rにて基準制御点Ozに対応する動き基準点Qzが特定されているか否かを判定する(ステップS21)。
ここで、動き基準点Qzが特定されていないと判定されると(ステップS21;NO)、基準点特定部306cは、記憶部305から動体モデルの動き情報305aを読み出し、当該動き情報305aに基づいて、所定の基準時t1に対応する基準フレームS1にてモデル領域Rの各構成領域に設定されている複数の基準点Q、…の中で、第1制御点設定部306bにより設定された基準制御点Ozに対応する動き基準点Qzの位置座標を特定する(ステップS22)。
続けて、基準点特定部306cは、動き情報305aに従って、所定の基準時t1から所定時間経過した時点tnにおけるXY平面空間の各フレーム(例えば、2番目のフレームS2等)にてモデル領域Rの各構成領域に設定されている複数の基準点Q、…の各々の位置を特定する(ステップS23)。
また、ステップS21にて、動き基準点Qzが特定されていると判定された場合にも(ステップS21;YES)、基準点特定部306cは、処理をステップS23に移行して、モデル領域Rに設定されている複数の基準点Q、…の各々の位置を特定する。
次に、制御点特定部306dは、所定の基準時t1から所定時間経過した時点tnにおけるXY平面空間の各フレーム(例えば、2番目のフレームS2等)の複数の基準点Q、…に対応する複数の制御点O、…の位置をそれぞれ特定する制御点位置特定処理(図9参照)を実行する(ステップS24)。
なお、制御点位置特定処理について後述する。
その後、第2制御点設定部306eは、所定の基準時t1から所定時間経過した時点tnにおける各基準点Qに対応する各制御点Oを制御点特定部306dにより特定されたXY平面空間での位置座標に移動させて設定する(ステップS25)。つまり、第1制御点設定部306bにより静止画像の被写体領域P内に設定された複数の制御点O、…が、所定の基準時t1から所定時間経過した時点tnにおけるXY平面空間での各基準点Qの位置に対応した位置に設定される。
これにより、制御点設定処理を終了する。
<制御点位置特定処理>
以下に、制御点位置特定処理について、図9〜図17を参照して詳細に説明する。
図9は、制御点設定処理における制御点位置特定処理に係る動作の一例を示すフローチャートである。
図9に示すように、先ず、動画処理部306の制御点特定部306dは、被写体領域Pの体幹対応領域Paに設定されている各制御点Oが所定の基準時t1から所定時間経過した時点tnにて存する位置を特定する体幹制御点特定処理(図10参照)を実行する(ステップS31)。
以下に、体幹制御点特定処理について図10〜図12を参照して詳細に説明する。
<体幹制御点特定処理>
図10に示すように、先ず、制御点特定部306dは、所定の基準時t1から所定時間経過した時点tnにおける、基準制御点Oz(例えば、第2体幹制御点Oa2等)に対応する動き基準点Qz(例えば、第2体幹基準点Qa2等)の初期位置(所定の基準時t1に対応する基準位置)からの移動比率を算出する(ステップS41)。
具体的には、制御点特定部306dは、例えば、基準点特定部306cにより特定された所定の基準時t1から所定時間経過した時点tnにおける第2体幹基準点Qa2の位置座標の、所定の基準時t1に対応する基準位置からのX軸及びY軸の各方向の移動距離dx、dyを算出する。その後、制御点特定部306dは、算出された移動距離dx、dyを基準フレームS1のX軸及びY軸の各方向の大きさt_wd、t_htで除算して、移動距離dx、dyに対する基準フレームS1の大きさt_wd、t_htの移動比率Rx、Ryをそれぞれ算出する(図11(a)参照)。
次に、制御点特定部306dは、算出された移動比率Rx、Ryを基準として、XY平面空間にて体幹対応領域Paの基準制御点Ozが存する位置を特定する(ステップS42)。具体的には、制御点特定部306dは、例えば、移動比率Rx、Ryと静止画像(例えば、マスク画像P1)のX軸及びY軸の各方向の大きさi_wd、i_htとを乗算して、XY平面空間にて基準制御点Oz(例えば、第2体幹制御点Oa2等)が存する位置を特定する(図11(b)参照)。
続けて、制御点特定部306dは、所定の基準時t1及び所定時間経過した時点tnにおける体幹構成領域Raの第1〜第4体幹基準点Qa1〜Qa4のうち、隣合う基準点Qどうしの距離を基準フレーム距離Dt1及び後フレーム距離Dtnとしてそれぞれ算出する(ステップS43;図12(a)及び図12(b)参照)。即ち、制御点特定部306dは、所定の基準時t1及び所定時間経過した時点tnにおける、第1体幹基準点Qa1と第2体幹基準点Qa2との基準フレーム距離Dt1及び後フレーム距離Dtn、第2体幹基準点Qa2と第3体幹基準点Qa3との基準フレーム距離Dt1及び後フレーム距離Dtn、第3体幹基準点Qa3と第4体幹基準点Qa4との基準フレーム距離Dt1及び後フレーム距離Dtnを算出する。
次に、制御点特定部306dは、所定の基準時t1における体幹対応領域Paの第1〜第4体幹制御点Oa1〜Oa4のうち、隣合う制御点Oどうしの距離を基準被写体距離Di1としてそれぞれ算出する(ステップS44;図12(c)参照)。即ち、制御点特定部306dは、所定の基準時t1における、第1体幹制御点Oa1と第2体幹制御点Oa2との基準被写体距離Di1、第2体幹制御点Oa2と第3体幹制御点Oa3との基準被写体距離Di1、第3体幹制御点Oa3と第4体幹制御点Oa4との基準被写体距離Di1を算出する。
そして、制御点特定部306dは、隣合う基準点Qどうしの後フレーム距離Dtn及び基準フレーム距離Dt1、隣合う制御点Oどうしの基準被写体距離Di1に基づいて、所定の基準時t1から所定時間経過した時点tnにおける体幹対応領域Paの第1〜第4体幹制御点Oa1〜Oa4のうち、隣合う制御点Oどうしの距離を後被写体距離Dinとしてそれぞれ算出する(ステップS45)。具体的には、制御点特定部306dは、後フレーム距離Dtnを基準フレーム距離Dt1で除算し、且つ、基準被写体距離Di1を乗算して、第1〜第4体幹制御点Oa1〜Oa4のうち、隣合う制御点Oどうしの距離を後被写体距離Dinとしてそれぞれ算出する(図12(d)参照)。
即ち、制御点特定部306dは、所定時間経過した時点tnにおける、第1体幹制御点Oa1と第2体幹制御点Oa2との後被写体距離Din、第2体幹制御点Oa2と第3体幹制御点Oa3との後被写体距離Din、第3体幹制御点Oa3と第4体幹制御点Oa4との後被写体距離Dinを算出する。
次に、制御点特定部306dは、所定時間経過した時点tnにおける体幹構成領域Raの第1〜第4体幹基準点Qa1〜Qa4のうち、動き基準点Qz(例えば、第2体幹基準点Qa2等)以外の基準点Qについて角度変位を算出する(ステップS46;図12(b)参照)。
具体的には、制御点特定部306dは、第1〜第4体幹基準点Qa1〜Qa4のうち、第2体幹基準点Qa2と隣合う第1及び第3体幹基準点Qa1、Qa3については、各基準点Qと第2体幹基準点Qa2とを結ぶ線分のX軸からの偏角を各基準点Qの角度変位として算出する。また、制御点特定部306dは、第2体幹基準点Qa2と隣合わない第4体幹基準点Qa4については、この基準点Qに隣合い、且つ、第2体幹基準点Qa2側の基準点Qである第3体幹基準点Qa3と当該第4体幹基準点Qa4とを結ぶ線分のX軸からの偏角を当該第4体幹基準点Qa4の角度変位として算出する。
そして、制御点特定部306dは、後被写体距離Din及び各基準点Qの角度変位に基づいて、所定時間経過した時点tnにおける体幹対応領域Paの基準制御点Oz(例えば、第2体幹制御点Oa2等)以外の制御点Oの位置を特定する(ステップS47;図12(d)参照)。
具体的には、制御点特定部306dは、第2体幹制御点Oa2と隣合う第1及び第3体幹制御点Oa1、Oa3については、所定時間経過した時点tnにおける第2体幹制御点Oa2の位置から対応する第1及び第3体幹基準点Qa1、Qa3の角度変位の方向に当該制御点Oの後被写体距離Dinの分だけ変位させて、XY平面空間にて当該制御点Oが存する位置を特定する。また、制御点特定部306dは、第2体幹制御点Oa2と隣合わない第4体幹制御点Oa4については、この制御点Oに隣合い、且つ、第2体幹制御点Oa2側の制御点Oである第3体幹制御点Oa3の位置から対応する第4体幹基準点Qa4の角度変位の方向に当該制御点Oの後被写体距離Dinの分だけ変位させて、XY平面空間にて当該制御点Oが存する位置を特定する。
これにより、体幹制御点特定処理を終了する。
図9に戻り、制御点特定部306dは、被写体領域Pの左右の腕対応領域Pb、Pcに設定されている各制御点Oが所定の基準時t1から所定時間経過した時点tnにて存する位置を特定する腕制御点特定処理(図13参照)を実行する(ステップS32)。
以下に、腕制御点特定処理について図13〜図17を参照して詳細に説明する。
<腕制御点特定処理>
図13に示すように、先ず、制御点特定部306dの角度算出部d1は、基準点特定部306cにより特定された所定の基準時t1に対応する基準フレームS1のモデル領域Rにおける体幹構成領域Ra並びに左右の腕構成領域Rb、Rcの各動き基準点Qz、即ち、体幹構成領域Raの第2体幹基準点Qa2、左腕構成領域Rbの第1左腕基準点Qb1及び右腕構成領域Rcの第1右腕基準点Qc1の各々の基準位置の位置座標を特定する(ステップS51)。
続けて、角度算出部d1は、左右の腕構成領域Rb、Rcの各動き基準点Qzと体幹構成領域Raの動き基準点Qzとを通る2つの基準直線Lt1l、Lt1r、即ち、左腕構成領域Rbの第1左腕基準点Qb1と体幹構成領域Raの第2体幹基準点Qa2とを通る基準直線Lt1lと、右腕構成領域Rcの第1右腕基準点Qc1と体幹構成領域Raの第2体幹基準点Qa2とを通る基準直線Lt1rとを特定する。そして、角度算出部d1は、所定の基準時t1における当該2つの基準直線Lt1l、Lt1rのなす角度を基準フレーム角度θt1として算出する(ステップS52;図15(a)参照)。
次に、角度算出部d1は、基準点特定部306cにより特定された所定の基準時t1から所定時間経過した時点tnにおけるXY平面空間での体幹構成領域Ra並びに左右の腕構成領域Rb、Rcの各動き基準点Qz、即ち、体幹構成領域Raの第2体幹基準点Qa2、左腕構成領域Rbの第1左腕基準点Qb1及び右腕構成領域Rcの第1右腕基準点Qc1の各々の位置座標を特定する(ステップS53)。
続けて、角度算出部d1は、左右の腕構成領域Rb、Rcの各動き基準点Qzと体幹構成領域Raの動き基準点Qzとを通る2つの基準直線Ltnl、Ltnr、即ち、左腕構成領域Rbの第1左腕基準点Qb1と体幹構成領域Raの第2体幹基準点Qa2とを通る基準直線Ltnlと、右腕構成領域Rcの第1右腕基準点Qc1と体幹構成領域Raの第2体幹基準点Qa2とを通る基準直線Ltnrとを特定する。そして、角度算出部d1は、所定時間経過した時点tnにおける当該2つの基準直線Ltnl、Ltnrのなす角度を後フレーム角度θtnとして算出する(ステップS54;図15(b)参照)。
その後、角度算出部d1は、2つの基準直線Ltnl、Ltnrのなす後フレーム角度θtnと、2つの基準直線Lt1l、Lt1rのなす基準フレーム角度θt1とを比較して、所定の基準時t1から所定時間経過した時点tnにおける2つの基準直線Ltnl、Ltnrのなす角度の変化を特定する(ステップS55)。
次に、角度算出部d1は、第1制御点設定部306bにより被写体領域Pに設定された所定の基準時t1における体幹対応領域Pa並びに左右の腕対応領域Pb、Pcの各基準制御点Oz、即ち、体幹対応領域Paの第2体幹制御点Oa2、左腕対応領域Pbの第1左腕制御点Ob1及び右腕対応領域Pcの第1右腕制御点Oc1の各々の位置座標を特定する(ステップS56)。
続けて、角度算出部d1は、左右の腕対応領域Pb、Pcの各基準制御点Ozと体幹対応領域Paの基準制御点Ozとを通る2つの制御直線Li1l、Li1r、即ち、左腕対応領域Pbの第1左腕制御点Ob1と体幹対応領域Paの第2体幹制御点Oa2とを通る制御直線Li1lと、右腕対応領域Pcの第1右腕制御点Oc1と体幹対応領域Paの第2体幹制御点Oa2とを通る制御直線Li1rとを特定する。そして、角度算出部d1は、所定の基準時t1における当該2つの制御直線Li1l、Li1rのなす角度を基準被写体角度θi1として算出する(ステップS57;図15(c)参照)。
そして、角度算出部d1は、基準フレーム角度θt1、後フレーム角度θtn、2つの基準直線Ltnl、Ltnrのなす角度の変化、及び、基準被写体角度θi1に基づいて、所定時間経過した時点tnにおける2つの制御直線Linl、Linrのなす角度である後被写体角度θinを算出する(ステップS58)。
具体的には、角度算出部d1は、例えば、基準フレーム角度θt1及び基準被写体角度θi1が劣角(0<θ<π)であるか優角(π≦θ<2π)であるかや、2つの基準直線Ltnl、Ltnrのなす角度の変化が増角か減角かや、後フレーム角度θtnの大きさ等に応じて、上記した式(1)〜(5)の中で所定の演算式を特定し、特定された所定の演算式を用いて後被写体角度θinを算出する(図16(a)〜図17(d)参照)。
次に、方向特定部d2は、所定の基準時t1から所定時間経過した時点tnにおける体幹対応領域Paの基準制御点Oz(例えば、第2体幹制御点Oa2等)に対して左右の腕対応領域Pb、Pcの各基準制御点Oz(例えば、第1左腕制御点Ob1及び第1右腕制御点Oc1等)が存する方向(2つの直線の延在方向)を特定する(ステップS59)。
具体的には、方向特定部d2は、所定の基準時t1から所定時間経過した時点tnにおける第2体幹制御点Oa2の位置と交わるように、2つの基準直線Ltnl、Ltnrのなす角の二等分線と同方向に直線Lcを設定する。そして、方向特定部d2は、2つの制御直線Linl、Linrのなす角の頂点が第2体幹制御点Oa2と重なり、且つ、直線Lcが中心に位置するように角度算出部d1により算出された後被写体角度θinを構成する2つの制御直線Linl、Linrの各々と同方向に延在する2つの直線を設定する(図15(d)参照)。このようにして、方向特定部d2は、第1左腕制御点Ob1及び第1右腕制御点Oc1が存する方向として、2つの直線の延在方向を特定する。
次に、制御点特定部306dは、所定の基準時t1における左右の腕構成領域Rb、Rcの各動き基準点Qzと体幹構成領域Raの動き基準点Qzとの距離、即ち、第1左腕基準点Qb1及び第1右腕基準点Qc1の各々と第2体幹基準点Qa2との距離を前基準点間距離Ds1l、Ds1rとして算出する(ステップS60;図15(a)参照)。
そして、制御点特定部306dは、所定の基準時t1から所定時間経過した時点tnにおける左右の腕構成領域Rb、Rcの各動き基準点Qzと体幹構成領域Raの動き基準点Qzとの距離、即ち、第1左腕基準点Qb1及び第1右腕基準点Qc1の各々と第2体幹基準点Qa2との距離を後基準点間距離Dsnl、Dsnrとして算出する(ステップS61;図15(b)参照)。
続けて、制御点特定部306dは、所定の基準時t1における左右の腕対応領域Pb、Pcの各基準制御点Ozと体幹対応領域Paの基準制御点Ozとの距離、即ち、第1左腕制御点Ob1及び第1右腕制御点Oc1の各々と第2体幹制御点Oa2との距離を前制御点間距離Dc1l、Dc1rとして算出する(ステップS62;図15(c)参照)。
そして、制御点特定部306dは、所定の基準時t1から所定時間経過した時点tnにおける左右の腕対応領域Pb、Pcの各基準制御点Ozと体幹対応領域Paの基準制御点Ozとの距離を後制御点間距離Dcnl、Dcnrとして算出する(ステップS63)。具体的には、制御点特定部306dは、後基準点間距離Dsnl、Dsnrを前基準点間距離Ds1l、Ds1rで除算した値(比率)に前制御点間距離Dc1l、Dc1rを乗算して、第1左腕制御点Ob1及び第1右腕制御点Oc1の各々と第2体幹制御点Oa2との距離である後制御点間距離Dcnl、Dcnrを算出する(図15(d)参照)。
続けて、制御点特定部306dは、方向特定部d2により特定された左右の腕対応領域Pb、Pcの各基準制御点Ozが存する方向である2つの直線の各々の延在方向と、後制御点間距離Dcnl、Dcnrとに基づいて、所定時間経過した時点tnにおける左右の腕対応領域Pb、Pcの各基準制御点Ozの位置を特定する(ステップS64)。具体的には、制御点特定部306dは、所定の基準時t1から所定時間経過した時点tnにおける第2体幹制御点Oa2の位置から2つの直線の各々の延在方向に沿って後制御点間距離Dcnl、Dcnrの分だけ変位させて、XY平面空間にて第1左腕基準点Qb1及び第1右腕基準点Qc1が存する位置を特定する(図15(d)参照)。
次に、制御点特定部306dは、左右の腕対応領域Pb、Pcに設定されている複数の制御点O、…のうち、基準制御点Oz(例えば、左腕対応領域Pbの第1左腕制御点Ob1、右腕対応領域Pcの第1右腕制御点Oc1等)以外の制御点O(例えば、左腕対応領域Pbの第2〜第6左腕制御点Ob2〜Ob6、右腕対応領域Pcの第2〜第6右腕制御点Oc2〜Oc6等)の位置座標を特定する(ステップS65)。
なお、左腕対応領域Pbの第2〜第6左腕制御点Ob2〜Ob6、右腕対応領域Pcの第2〜第6右腕制御点Oc2〜Oc6の位置座標の特定方法は、上記した体幹対応領域Paの基準制御点Oz(例えば、第2体幹制御点Oa2等)以外の制御点O(例えば、第1、第3、第4体幹制御点Oa1、Oa3、Oa4等)の位置座標の特定方法と同様であり、その詳細な説明は省略する。
これにより、腕制御点特定処理を終了する。
図9に戻り、制御点特定部306dは、被写体領域Pの左右の脚対応領域Pd、Peに設定されている各制御点Oが所定の基準時t1から所定時間経過した時点tnにて存する位置を特定する脚制御点特定処理を実行する(ステップS33)。
脚制御点特定処理は、第1体幹制御点Oa1と第1左脚制御点Od1と第1右脚制御点Oe1とを基準制御点Ozとして行われる以外の点で上記の腕制御点特定処理と略同様な処理であり、その詳細な説明は省略する。
脚制御点特定処理の結果、左脚対応領域Pdの第1〜第6左脚制御点Od1〜Od6並びに右脚対応領域Peの第1〜第6右脚制御点Oe1〜Oe6の所定時間経過した時点tnにおけるXY平面空間での位置座標が特定される。
脚制御点特定処理の実行が完了することにより制御点位置特定処理が終了し、当該制御点位置特定処理の結果、所定の基準時t1から所定時間経過した時点tnにおけるXY平面空間での各制御点Oの位置座標が特定された状態となる。
そして、図8に示すように、ステップS25にて、第2制御点設定部306eは、制御点特定部306dによる特定結果に基づいて、各制御点Oを制御点特定部306dにより特定されたXY平面空間での位置座標に移動させて設定する。これにより、制御点設定処理を終了する。
以上のように、本実施形態の動画生成システム100によれば、サーバ3は、静止画像の被写体が含まれる被写体領域P内で、モデル領域Rの隣合う3つの領域に設定されている3つの動き基準点Qz、…の所定の基準時t1における基準位置(例えば、動体モデルが動く前の動き基準点Qzの所定空間での初期位置等)に対応する対応位置に設定された3つの基準制御点Oz、…のうちの何れか一の基準制御点Ozと他の2つの基準制御点Oz、Ozとの相対的な位置関係、並びに、所定の基準時t1及びこの所定の基準時t1から所定時間経過した時点tnにおける3つの動き基準点Qz、…のうち、何れか一の基準制御点Ozに対応する一の動き基準点Qzと他の2つの動き基準点Qz、Qzとの相対的な位置関係を基準として、所定時間経過した時点tnにて他の2つの基準制御点Oz、Ozが存する位置をそれぞれ特定するので、モデル領域Rの隣合う3つの領域に設定されている3つの動き基準点Qz、…の動きを一体的なものとして当該動きを3つの基準制御点Oz、…の動きに反映させることができ、3つの動き基準点Qz、…の動きに対応させるように3つの基準制御点Oz、…を動かすことができる。
これにより、3つの動き基準点Qz、…の動きに対応させるように動かした3つの基準制御点Oz、…が存する位置を考慮して、被写体領域Pを変形させた変形画像を適正に生成することができることとなって、静止画像の被写体領域Pを動体モデルに合わせて適正に動かすことができる。
また、対応位置に設定された他の2つの基準制御点Oz、Ozの各々と何れか一の基準制御点Ozとを通る2つの制御直線Li1l、Li1rのなす角度、並びに、所定の基準時t1における他の2つの動き基準点Qz、Qzの各々と一の動き基準点Qzとを通る2つの基準直線Lt1l、Lt1rのなす角度、及び、所定の基準時t1から所定時間経過した時点tnにおける2つの基準直線Ltnl、Ltnrのなす角度を基準として、所定時間経過した時点tnにて他の2つの基準制御点Oz、Ozが存する位置をそれぞれ特定するので、3つの動き基準点Qz、…により構成される2つの基準直線Ltnl、Ltnrのなす角度が所定の基準時t1から所定時間経過することで一体的に変化した3つの動き基準点Qz、…の相対的な位置関係を、2つの制御直線Linl、Linrのなす角を構成する3つの基準制御点Oz、…の動きに反映させることができる。
具体的には、2つの制御直線Li1l、Li1rのなす角度、所定の基準時t1における2つの基準直線のLt1l、Lt1rなす角度、及び所定時間経過した時点tnにおける2つの基準直線Lt1l、Lt1rのなす角度並びに、所定時間経過した時点tnにおける当該2つの基準直線Ltnl、Ltnrのなす角度の変化を基準とすることで、所定時間経過した時点tnにおける2つの制御直線Linl、Linrのなす角度を所定の演算式に従って算出することができる。そして、算出された2つの制御直線Linl、Linrのなす角度と、所定時間経過した時点tnにおける一の動き基準点Qzに対する他の2つの動き基準点Qz、Qzの相対的な位置とに基づいて、所定時間経過した時点tnにて何れか一の基準制御点Ozに対して他の2つの基準制御点Oz、Ozが存する方向を特定することができる。より具体的には、所定時間経過した時点tnにおける2つの制御直線Linl、Linrのなす角の頂点を所定時間経過した時点tnにおける何れか一の動き制御点Oとし、当該何れか一の動き制御点Oと交わり、所定時間経過した時点tnにおける2つの基準直線Ltnl、Ltnrのなす角の二等分線と同方向に延在する直線を基準位置とする角度範囲内で、何れか一の基準制御点Ozに対して他の2つの基準制御点Oz、Ozが存する方向を特定することができる。つまり、所定時間経過した時点tnにおける2つの制御直線Linl、Linrのなす角度範囲を所定時間経過した時点tnにおける2つの基準直線Ltnl、Ltnrのなす角の二等分線と同方向に延在する直線を基準位置として設定することで、所定時間経過することで変化した2つの基準直線Ltnl、Ltnrのなす角を構成する3つの動き基準点Qz、…の相対的な位置関係を、所定時間経過した時点tnにおける何れか一の基準制御点Ozに対する他の2つの基準制御点Oz、Ozの相対的な位置に反映させることができる。
また、所定時間経過した時点tnにおける一の動き基準点Qzの基準位置からの距離の基準フレームの大きさに対する比率を考慮して、所定時間経過した時点tnにて何れか一の基準制御点Ozが存する位置を適正に特定することができる。これにより、何れか一の基準制御点Ozに対して相対的に配置される他の2つの基準制御点Oz、Ozの位置を適正に特定することができ、例えば、動体モデルと外形が異なり、基準点Qと制御点Oの対応位置がずれてしまっている場合に、動体モデルが逆立ちするような動きに対しても被写体領域Pの画像が不自然に変形してしまうといったことがなくなる。
さらに、所定の基準時t1及び所定時間経過した時点tnにおける他の2つの動き基準点Qz、Qzの各々と一の動き基準点Qzとの距離どうしの比率を考慮して、所定時間経過した時点tnにて他の2つの基準制御点Oz、Ozが存する位置をそれぞれ適正に特定することができる。
また、被写体領域P内で、モデル領域Rに設定されている複数の基準点Q、…の各々の所定の基準時t1における基準位置に対応する対応位置に制御点Oをそれぞれ設定するので、モデル領域Rの隣合う3つの領域に設定されている3つの動き基準点Qz、…に対応させて3つの基準制御点Oz、…を適正に設定することができる。
さらに、モデル領域Rの複数の領域毎に組をなす複数の基準点Q、…の各組に対応させて複数の制御点O、…を各組毎に設定し、所定時間経過した時点tnにおける3つの動き基準点Qz、…以外の基準点Qと当該基準点Qが含まれる組の他の基準点Qとの相対的な位置関係を基準として、3つの領域の各々に対応させて設定された各組の制御点Oのうち、所定時間経過した時点tnにて3つの基準制御点Oz、…以外の制御点Oが存する位置をそれぞれ適正に特定することができる。即ち、3つの基準制御点Oz、…を適正に設定することができるだけでなく、3つの基準制御点Oz、…に対応する動き基準点Qzが含まれる組の他の基準点Qとの相対的な位置関係を基準として、当該3つの基準制御点Oz、…の各々と対応付けられている他の制御点Oも適正に設定することができる。
なお、本発明は、上記実施形態に限定されることなく、本発明の趣旨を逸脱しない範囲において、種々の改良並びに設計の変更を行っても良い。
例えば、上記実施形態にあっては、ユーザによるユーザ端末2の所定操作に基づいて、Webサーバとして機能するサーバ(画像生成装置)3によって動画像を生成するようにしたが、一例であってこれに限られるものではなく、画像生成装置の構成は適宜任意に変更可能である。即ち、変形画像としての変形フレーム画像の生成に係る動画処理部306の機能をソフトウェアにより実現される構成として、ユーザ端末2にインストールすることで通信ネットワークNを必要とすることなく、当該ユーザ端末2単体で動画生成処理を行うようにしても良い。
また、上記実施形態の動画生成処理の制御点位置特定処理にあっては、腕制御点特定処理(ステップS32)の後に脚制御点特定処理(ステップS33)を行うようにしたが、制御点Oの位置の特定の順序は一例であってこれに限られるものではなく、逆にしても良いし、同時に行っても良い。
さらに、上記実施形態の動画生成処理にあっては、被写体画像の合成位置やサイズを調整可能に構成されても良い。即ち、ユーザ端末2の中央制御部201は、ユーザによる操作入力部202の所定操作に基づいて、被写体画像の合成位置やサイズの調整指示が入力されたと判定すると、当該調整指示に対応する信号を通信制御部206により所定の通信ネットワークNを介してサーバ3に送信させる。そして、サーバ3の動画処理部306は、通信制御部を介して入力された調整指示に基づいて、被写体画像の合成位置を所望の合成位置に設定したり、当該被写体画像のサイズを所望のサイズに設定するようにしても良い。
また、上記実施形態にあっては、ユーザ端末2として、パーソナルコンピュータを例示したが、一例であってこれに限られるものではなく適宜任意に変更可能であり、例えば、携帯電話機等を適用しても良い。
なお、被写体切り抜き画像や動画像のデータには、ユーザによる所定の改変を禁止する制御情報を埋め込むようにしても良い。
加えて、上記実施形態にあっては、取得手段、設定手段、第1特定手段、第2特定手段としての機能を、中央制御部301の制御下にて、画像取得部306a、第1制御点設定部306b、制御点特定部306d、第2制御点設定部306eが駆動することにより実現される構成としたが、これに限られるものではなく、中央制御部301のCPUによって所定のプログラム等が実行されることにより実現される構成としても良い。
即ち、プログラムを記憶するプログラムメモリ(図示略)に、取得処理ルーチン、設定処理ルーチン、第1特定処理ルーチン、第2特定処理ルーチンを含むプログラムを記憶しておく。そして、取得処理ルーチンにより中央制御部301のCPUを、静止画像を取得する取得手段として機能させるようにしても良い。また、設定処理ルーチンにより中央制御部301のCPUを、動き情報305aに基づいて、取得手段により取得された静止画像の被写体が含まれる被写体領域P内で、モデル領域Rの隣合う3つの領域に設定されている3つの基準点Qの所定の基準時t1における基準位置に対応する対応位置に当該被写体領域Pの動きの制御に係る制御点Oをそれぞれ設定する設定手段として機能させるようにしても良い。また、第1特定処理ルーチンにより中央制御部301のCPUを、動き情報305aに基づいて、所定の基準時t1から所定時間経過した時点tnにおける所定空間内での3つの基準点Qの位置をそれぞれ特定する第1特定手段として機能させるようにしても良い。また、第2特定処理ルーチンにより中央制御部301のCPUを、設定手段により対応位置に設定された3つの制御点O、…のうちの何れか一の制御点Oと他の2つの制御点O、Oとの相対的な位置関係、並びに、所定の基準時t1及び所定時間経過した時点tnにおける3つの基準点Qのうち、何れか一の制御点Oに対応する一の基準点Qと他の2つの基準点Qとの相対的な位置関係を基準として、所定時間経過した時点tnにて他の2つの制御点O、Oが存する位置をそれぞれ特定する第2特定手段として機能させるようにしても良い。
さらに、上記の各処理を実行するためのプログラムを格納したコンピュータ読み取り可能な媒体として、ROMやハードディスク等の他、フラッシュメモリ等の不揮発性メモリ、CD−ROM等の可搬型記録媒体を適用することも可能である。また、プログラムのデータを所定の通信回線を介して提供する媒体としては、キャリアウェーブ(搬送波)も適用される。
〔付記〕
本発明のいくつかの実施形態を説明したが、本発明の範囲は、上述の実施の形態に限定するものではなく、特許請求の範囲に記載された発明の範囲とその均等の範囲を含む。
以下に、この出願の願書に最初に添付した特許請求の範囲に記載した発明を付記する。付記に記載した請求項の項番は、この出願の願書に最初に添付した特許請求の範囲の通りである。
<請求項1>
基準画像の動体モデルが含まれるモデル領域を構成する複数の領域毎に設定された複数の動きの基準点の所定空間内での動きを示す動き情報を記憶する記憶手段を備える制御点設定装置を用いた制御点設定方法であって、
前記動き情報は、前記複数の基準点の前記所定空間での位置を示す情報を時間軸に沿って並べた情報であり、
静止画像を取得する取得ステップと、
前記動き情報に基づいて、前記取得ステップにより取得された前記静止画像の被写体が含まれる被写体領域内で、前記モデル領域の隣合う3つの領域に設定されている3つの基準点の所定の基準時における基準位置に対応する対応位置に当該被写体領域の動きの制御に係る制御点をそれぞれ設定する設定ステップと、
前記動き情報に基づいて、前記所定の基準時から所定時間経過した時点における前記所定空間内での前記3つの基準点の位置をそれぞれ特定する第1特定ステップと、
前記設定ステップにより前記対応位置に設定された前記3つの制御点のうちの何れか一の制御点と他の2つの制御点との相対的な位置関係、並びに、前記所定の基準時及び前記所定時間経過した時点における前記3つの基準点のうち、前記何れか一の制御点に対応する一の基準点と他の2つの基準点との相対的な位置関係を基準として、前記所定時間経過した時点にて前記他の2つの制御点が存する位置をそれぞれ特定する第2特定ステップと、
を含むことを特徴とする制御点設定方法。
<請求項2>
前記第2特定ステップは、
前記対応位置の前記他の2つの制御点の各々と前記何れか一の制御点とを通る2つの制御直線のなす角度、並びに、前記所定の基準時及び前記所定時間経過した時点における前記他の2つの基準点の各々と前記一の基準点とを通る2つの基準直線のなす角度を基準として、前記所定時間経過した時点にて前記他の2つの制御点が存する位置をそれぞれ特定することを特徴とする請求項1に記載の制御点設定方法。
<請求項3>
前記第2特定ステップは、
前記対応位置に係る前記2つの制御直線のなす角度、前記所定の基準時及び前記所定時間経過した時点における前記2つの基準直線のなす角度、並びに、前記所定時間経過した時点における当該2つの基準直線のなす角度の変化を基準として、前記所定時間経過した時点における前記2つの制御直線のなす角度を所定の演算式に従って算出する算出ステップと、
前記算出ステップにより算出された前記2つの制御直線のなす角度と、前記所定時間経過した時点における前記一の基準点に対する前記他の2つの基準点の相対的な位置とに基づいて、前記所定時間経過した時点にて前記何れか一の制御点に対して前記他の2つの制御点が存する方向を特定する方向特定ステップと、を更に含むことを特徴とする請求項2に記載の制御点設定方法。
<請求項4>
前記方向特定ステップは、
前記所定時間経過した時点における前記2つの制御直線のなす角の頂点を前記所定時間経過した時点における前記何れか一の制御点とし、当該何れか一の制御点と交わり、前記所定時間経過した時点における前記2つの基準直線のなす角の二等分線と同方向に延在する直線を基準位置とする角度範囲内で、前記何れか一の制御点に対して前記他の2つの制御点が存する方向を特定することを特徴とする請求項3に記載の制御点設定方法。
<請求項5>
前記第2特定ステップは、更に、
前記第1特定ステップにより特定された前記所定時間経過した時点における前記一の基準点の前記基準位置からの距離の前記基準画像の大きさに対する比率を基準として、前記所定時間経過した時点にて前記何れか一の制御点が存する位置を特定することを特徴とする請求項1〜4の何れか一項に記載の制御点設定方法。
<請求項6>
前記第2特定ステップは、更に、
前記所定の基準時及び前記所定時間経過した時点における前記他の2つの基準点の各々と前記一の基準点との距離どうしの比率を基準として、前記所定時間経過した時点にて前記他の2つの制御点が存する位置をそれぞれ特定することを特徴とする請求項1〜5の何れか一項に記載の制御点設定方法。
<請求項7>
前記設定ステップは、
前記動き情報に基づいて、前記被写体領域内で、前記モデル領域に設定されている複数の基準点の各々の所定の基準時における基準位置に対応する対応位置に前記制御点をそれぞれ設定することを特徴とする請求項1〜6の何れか一項に記載の制御点設定方法。
<請求項8>
前記複数の基準点は、前記モデル領域の複数の領域毎に組をなし、
前記設定ステップは、
前記複数の基準点の各組に対応させて前記複数の制御点を各組毎に設定し、
前記第1特定ステップは、
前記モデル領域の前記3つの領域の各々に対応する各組の複数の基準点のうち、前記所定時間経過した時点における前記所定空間内での前記3つの基準点以外の基準点の位置をそれぞれ特定し、
前記第2特定ステップは、
前記第1特定ステップにより特定された前記所定時間経過した時点における前記3つの基準点以外の基準点と当該基準点が含まれる組の他の基準点との相対的な位置関係を基準として、前記設定ステップにより前記3つの領域の各々に対応させて設定された各組の制御点のうち、前記所定時間経過した時点にて前記3つの制御点以外の制御点が存する位置をそれぞれ特定することを特徴とする請求項7に記載の制御点設定方法。
<請求項9>
前記所定の基準時における基準位置は、前記動体モデルが動く前の前記基準点の前記所定空間での初期位置を含むことを特徴とする請求項1〜8の何れか一項に記載の制御点設定方法。
<請求項10>
前記第2特定ステップにより特定された前記所定時間経過した時点における前記3つの制御点が存する位置を基準として、前記被写体領域を変形させた変形画像を生成する生成ステップを更に含むことを特徴とする請求項1〜9の何れか一項に記載の制御点設定方法。
<請求項11>
基準画像の動体モデルが含まれるモデル領域を構成する複数の領域毎に設定された複数の動きの基準点の所定空間内での動きを示す動き情報を記憶する記憶手段を備える制御点設定装置であって、
前記動き情報は、前記複数の基準点の前記所定空間での位置を示す情報を時間軸に沿って並べた情報であり、
静止画像を取得する取得手段と、
前記動き情報に基づいて、前記取得手段により取得された前記静止画像の被写体が含まれる被写体領域内で、前記モデル領域の隣合う3つの領域に設定されている3つの基準点の所定の基準時における基準位置に対応する対応位置に当該被写体領域の動きの制御に係る制御点をそれぞれ設定する設定手段と、
前記動き情報に基づいて、前記所定の基準時から所定時間経過した時点における前記所定空間内での前記3つの基準点の位置をそれぞれ特定する第1特定手段と、
前記設定手段により前記対応位置に設定された前記3つの制御点のうちの何れか一の制御点と他の2つの制御点との相対的な位置関係、並びに、前記所定の基準時及び前記所定時間経過した時点における前記3つの基準点のうち、前記何れか一の制御点に対応する一の基準点と他の2つの基準点との相対的な位置関係を基準として、前記所定時間経過した時点にて前記他の2つの制御点が存する位置をそれぞれ特定する第2特定手段と、
を備えることを特徴とする制御点設定装置。
<請求項12>
基準画像の動体モデルが含まれるモデル領域を構成する複数の領域毎に設定された複数の動きの基準点の所定空間内での動きを示し、前記複数の基準点の前記所定空間での位置を示す情報を時間軸に沿って並べた動き情報を記憶する記憶手段を備える制御点設定装置のコンピュータを、
静止画像を取得する取得手段、
前記動き情報に基づいて、前記取得手段により取得された前記静止画像の被写体が含まれる被写体領域内で、前記モデル領域の隣合う3つの領域に設定されている3つの基準点の所定の基準時における基準位置に対応する対応位置に当該被写体領域の動きの制御に係る制御点をそれぞれ設定する設定手段、
前記動き情報に基づいて、前記所定の基準時から所定時間経過した時点における前記所定空間内での前記3つの基準点の位置をそれぞれ特定する第1特定手段、
前記設定手段により前記対応位置に設定された前記3つの制御点のうちの何れか一の制御点と他の2つの制御点との相対的な位置関係、並びに、前記所定の基準時及び前記所定時間経過した時点における前記3つの基準点のうち、前記何れか一の制御点に対応する一の基準点と他の2つの基準点との相対的な位置関係を基準として、前記所定時間経過した時点にて前記他の2つの制御点が存する位置をそれぞれ特定する第2特定手段、
として機能させることを特徴とするプログラム。
100 動画生成システム
1 撮像装置
2 ユーザ端末
3 サーバ
301 中央制御部
305 記憶部
305a 動き情報
306 動画処理部
306a 画像取得部
306b 第1制御点設定部
306c 基準点特定部
306d 制御点特定部
d1 角度算出部
d2 方向特定部
306e 第2制御点設定部
306g フレーム生成部

Claims (15)

  1. 基準画像の動体モデルが含まれるモデル領域に設定された複数の動きの基準点の所定空間内での動きを示す動き情報を記憶する記憶手段を備える制御点設定装置を用いた制御点設定方法であって、
    前記動き情報は、前記複数の基準点の前記所定空間での位置を示す情報を時間軸に沿って並べた情報であり、
    静止画像を取得する取得ステップと、
    前記動き情報に基づいて、前記取得ステップにより取得された前記静止画像の被写体が含まれる被写体領域内で、前記モデル領域に設定されている複数の基準点の所定の基準時における基準位置に対応する対応位置に当該被写体領域の動きの制御に係る制御点を設定する際、所定の制御点を無効化して設定可能な設定ステップと、
    含むことを特徴とする制御点設定方法。
  2. 前記動き情報に基づいて、前記所定の基準時から所定時間経過した時点における前記所定空間内での前記複数の基準点の位置をそれぞれ特定する第1特定ステップと、
    前記設定ステップにより無効化されなかった制御点のうちの何れか一の制御点と他の2つの制御点との相対的な位置関係、並びに、前記所定の基準時及び前記所定時間経過した時点における前記複数の基準点のうち、前記何れか一の制御点に対応する一の基準点と他の2つの基準点との相対的な位置関係を基準として、前記所定時間経過した時点にて前記他の2つの制御点が存する位置をそれぞれ特定する第2特定ステップと、
    を含むことを特徴とする請求項1に記載の制御点設定方法。
  3. 前記第2特定ステップは、
    前記対応位置の前記他の2つの制御点の各々と前記何れか一の制御点とを通る2つの制御直線のなす角度、並びに、前記所定の基準時及び前記所定時間経過した時点における前記他の2つの基準点の各々と前記一の基準点とを通る2つの基準直線のなす角度を基準として、前記所定時間経過した時点にて前記他の2つの制御点が存する位置をそれぞれ特定することを特徴とする請求項に記載の制御点設定方法。
  4. 前記第2特定ステップは、
    前記対応位置に係る前記2つの制御直線のなす角度、前記所定の基準時及び前記所定時間経過した時点における前記2つの基準直線のなす角度、並びに、前記所定時間経過した時点における当該2つの基準直線のなす角度の変化を基準として、前記所定時間経過した時点における前記2つの制御直線のなす角度を所定の演算式に従って算出する算出ステップと、
    前記算出ステップにより算出された前記2つの制御直線のなす角度と、前記所定時間経過した時点における前記一の基準点に対する前記他の2つの基準点の相対的な位置とに基づいて、前記所定時間経過した時点にて前記何れか一の制御点に対して前記他の2つの制御点が存する方向を特定する方向特定ステップと、を更に含むことを特徴とする請求項に記載の制御点設定方法。
  5. 前記方向特定ステップは、
    前記所定時間経過した時点における前記2つの制御直線のなす角の頂点を前記所定時間経過した時点における前記何れか一の制御点とし、当該何れか一の制御点と交わり、前記所定時間経過した時点における前記2つの基準直線のなす角の二等分線と同方向に延在する直線を基準位置とする角度範囲内で、前記何れか一の制御点に対して前記他の2つの制御点が存する方向を特定することを特徴とする請求項に記載の制御点設定方法。
  6. 前記第2特定ステップは、更に、
    前記第1特定ステップにより特定された前記所定時間経過した時点における前記一の基準点の前記基準位置からの距離の前記基準画像の大きさに対する比率を基準として、前記所定時間経過した時点にて前記何れか一の制御点が存する位置を特定することを特徴とする請求項の何れか一項に記載の制御点設定方法。
  7. 前記第2特定ステップは、更に、
    前記所定の基準時及び前記所定時間経過した時点における前記他の2つの基準点の各々と前記一の基準点との距離どうしの比率を基準として、前記所定時間経過した時点にて前記他の2つの制御点が存する位置をそれぞれ特定することを特徴とする請求項の何れか一項に記載の制御点設定方法。
  8. 前記設定ステップは、
    前記動き情報に基づいて、前記被写体領域内で、前記モデル領域に設定されている複数の基準点の各々の所定の基準時における基準位置に対応する対応位置に前記制御点をそれぞれ設定することを特徴とする請求項の何れか一項に記載の制御点設定方法。
  9. 前記複数の基準点は、前記モデル領域を構成する複数の領域毎に設定されており、
    前記複数の基準点は、前記モデル領域の複数の領域毎に組をなし、
    前記設定ステップは、
    前記複数の基準点の各組に対応させて前記複数の制御点を各組毎に設定し、
    前記第1特定ステップは、
    前記モデル領域の隣合う3つの領域の各々に対応する各組の複数の基準点のうち、前記所定時間経過した時点における前記所定空間内での前記3つの領域以外の領域の基準点の位置をそれぞれ特定し、
    前記第2特定ステップは、
    前記第1特定ステップにより特定された前記所定時間経過した時点における前記3つの領域以外の基準点と当該基準点が含まれる組の他の基準点との相対的な位置関係を基準として、前記設定ステップにより前記3つの領域の各々に対応させて設定された各組の制御点のうち、前記所定時間経過した時点にて前記3つの領域以外の制御点が存する位置をそれぞれ特定することを特徴とする請求項に記載の制御点設定方法。
  10. 前記所定の基準時における基準位置は、前記動体モデルが動く前の前記基準点の前記所定空間での初期位置を含むことを特徴とする請求項の何れか一項に記載の制御点設定方法。
  11. 前記第2特定ステップにより特定された前記所定時間経過した時点における前記3つの領域の制御点が存する位置を基準として、前記被写体領域を変形させた変形画像を生成する生成ステップを更に含むことを特徴とする請求項10の何れか一項に記載の制御点設定方法。
  12. 前記設定ステップは、自動的に前記所定の制御点を無効化して設定可能なことを特徴とする請求項1〜11の何れか一項に記載の制御点設定方法。
  13. 前記設定ステップは、ユーザの所定操作に基づいて前記所定の制御点を無効化して設定可能なことを特徴とする請求項1〜11の何れか一項に記載の制御点設定方法。
  14. 基準画像の動体モデルが含まれるモデル領域に設定された複数の動きの基準点の所定空間内での動きを示す動き情報を記憶する記憶手段を備える制御点設定装置であって、
    前記動き情報は、前記複数の基準点の前記所定空間での位置を示す情報を時間軸に沿って並べた情報であり、
    静止画像を取得する取得手段と、
    前記動き情報に基づいて、前記取得手段により取得された前記静止画像の被写体が含まれる被写体領域内で、前記モデル領域に設定されている複数の基準点の所定の基準時における基準位置に対応する対応位置に当該被写体領域の動きの制御に係る制御点を設定する際、所定の制御点を無効化して設定可能な設定手段と、
    備えることを特徴とする制御点設定装置。
  15. 基準画像の動体モデルが含まれるモデル領域に設定された複数の動きの基準点の所定空間内での動きを示し、前記複数の基準点の前記所定空間での位置を示す情報を時間軸に沿って並べた動き情報を記憶する記憶手段を備える制御点設定装置のコンピュータを、
    静止画像を取得する取得手段、
    前記動き情報に基づいて、前記取得手段により取得された前記静止画像の被写体が含まれる被写体領域内で、前記モデル領域に設定されている複数の基準点の所定の基準時における基準位置に対応する対応位置に当該被写体領域の動きの制御に係る制御点を設定する際、所定の制御点を無効化して設定可能な設定手段、
    して機能させることを特徴とするプログラム。
JP2012029149A 2012-02-14 2012-02-14 制御点設定方法、制御点設定装置及びプログラム Active JP5874426B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012029149A JP5874426B2 (ja) 2012-02-14 2012-02-14 制御点設定方法、制御点設定装置及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012029149A JP5874426B2 (ja) 2012-02-14 2012-02-14 制御点設定方法、制御点設定装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2013167924A JP2013167924A (ja) 2013-08-29
JP5874426B2 true JP5874426B2 (ja) 2016-03-02

Family

ID=49178296

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012029149A Active JP5874426B2 (ja) 2012-02-14 2012-02-14 制御点設定方法、制御点設定装置及びプログラム

Country Status (1)

Country Link
JP (1) JP5874426B2 (ja)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2770711B2 (ja) * 1993-07-29 1998-07-02 日本電気株式会社 人体動作視覚化システム
JPH1040407A (ja) * 1996-07-24 1998-02-13 Nippon Telegr & Teleph Corp <Ntt> 動画生成方法および装置
JPH11185055A (ja) * 1997-12-24 1999-07-09 Fujitsu Ltd 動きデータ作成装置およびそのプログラムを格納した記憶媒体

Also Published As

Publication number Publication date
JP2013167924A (ja) 2013-08-29

Similar Documents

Publication Publication Date Title
JP5434965B2 (ja) 動画生成方法、動画生成装置及びプログラム
JP3601350B2 (ja) 演奏画像情報作成装置および再生装置
JP5375897B2 (ja) 画像生成方法、画像生成装置及びプログラム
JP5454604B2 (ja) 動画再生方法、動画再生装置及びプログラム
JP5111627B2 (ja) 映像処理装置及び映像処理方法
JP2012199613A (ja) 画像処理装置および方法、並びにプログラム
JP5408205B2 (ja) 制御点設定方法、制御点設定装置及びプログラム
JP2017054337A (ja) 画像処理装置および方法
JP2019083402A (ja) 画像処理装置、画像処理システム、画像処理方法、及びプログラム
JP2000311251A (ja) アニメーション作成装置および方法、記憶媒体
JP2000250942A (ja) 図書情報検索空間構築・検索装置および図書情報検索空間構築・検索プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2002163678A (ja) 擬似三次元画像生成方法および装置
JP5874426B2 (ja) 制御点設定方法、制御点設定装置及びプログラム
JP5894505B2 (ja) 画像コミュニケーションシステム、画像生成装置及びプログラム
JP2006196017A (ja) アニメーション作成装置および方法、記憶媒体
JP5408206B2 (ja) 画像生成方法、画像生成装置及びプログラム
JP2008033840A (ja) 動画表示装置、動画表示方法、及びコンピュータプログラム
JP2013196154A (ja) 画像コミュニケーションシステム、AR(AugmentedReality)動画生成装置及びプログラム
JP6398938B2 (ja) 投影制御装置、及びプログラム
TW578080B (en) Image processing method
JP5776442B2 (ja) 画像生成方法、画像生成装置及びプログラム
JP5906897B2 (ja) 動き情報生成方法、動き情報生成装置及びプログラム
JP5891883B2 (ja) 画像生成方法、画像生成装置及びプログラム
JP5919926B2 (ja) 画像生成方法、画像生成装置及びプログラム
JP2009020818A (ja) 画像生成装置、画像生成方法、ならびに、プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141224

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151030

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151104

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151204

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: 20151222

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160104

R150 Certificate of patent (=grant) or registration of utility model

Ref document number: 5874426

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150