説明

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

【課題】動き制御点の設定を簡便に、且つ、適正に行う。
【解決手段】サーバ3であって、基準画像の動体モデルの骨格に係るモデル骨格情報に基づいて、当該基準画像の動体モデルが含まれるモデル領域内における複数の動き基準点の各々の位置に係る位置情報を特定する基準点位置特定部306fと、被写体領域が含まれる被写体画像を取得する画像取得部306bと、被写体画像の被写体の骨格に係る被写体骨格情報及びモデル領域内における複数の動き基準点の各々の位置に係る位置情報に基づいて、被写体領域内で複数の動き基準点の各々に対応する各位置に当該被写体領域の動きの制御に係る動き制御点を複数設定する制御点設定部306gと、を備えている。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、静止画像内に動きの制御点を設定する制御点設定方法、制御点設定装置及びプログラムに関する。
【背景技術】
【0002】
従来、二次元の静止画像内の所望の位置に動き制御点を設定して、動きをつけたい動き制御点に所望の動きを指定することで当該静止画像を動かす技術が知られている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特許第4613313号
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記特許文献1の場合、動き制御点毎に動きを指定しなければならず、その作業が煩雑であるだけでなく、動き制御点の設定を適正に行わないとユーザ所望の動きを再現することができないといった問題がある。
【0005】
本発明は、このような問題に鑑みてなされたものであり、本発明の課題は、動き制御点の設定を簡便に、且つ、適正に行うことができる制御点設定方法、制御点設定装置及びプログラムを提供することである。
【課題を解決するための手段】
【0006】
上記課題を解決するため、本発明に係る制御点設定方法は、
動体モデルの基準画像と対応付けられ、当該基準画像の動体モデルが含まれるモデル領域内に設定された複数の動き基準点の所定空間内での動きを示す動き情報を記憶する記憶手段を備える制御点設定装置を用いた制御点設定方法であって、前記基準画像の動体モデルの骨格に係るモデル骨格情報に基づいて、前記モデル領域内における前記複数の動き基準点の各々の位置に係る位置情報を特定する特定ステップと、被写体領域が含まれる被写体画像を取得する取得ステップと、この取得ステップにて取得された被写体画像の被写体の骨格に係る被写体骨格情報及び前記特定ステップにて特定された前記位置情報に基づいて、前記被写体領域内で前記複数の動き基準点の各々に対応する各位置に当該被写体領域の動きの制御に係る動き制御点を複数設定する制御点設定ステップと、を含むことを特徴としている。
【0007】
また、本発明に係る制御点設定装置は、
動体モデルの基準画像と対応付けられ、当該基準画像の動体モデルが含まれるモデル領域内に設定された複数の動き基準点の所定空間内での動きを示す動き情報を記憶する記憶手段を備える制御点設定装置であって、前記基準画像の動体モデルの骨格に係るモデル骨格情報に基づいて、前記モデル領域内における前記複数の動き基準点の各々の位置に係る位置情報を特定する特定手段と、被写体領域が含まれる被写体画像を取得する取得手段と、この取得手段により取得された被写体画像の被写体の骨格に係る被写体骨格情報及び前記特定手段により特定された前記位置情報に基づいて、前記被写体領域内で前記複数の動き基準点の各々に対応する各位置に当該被写体領域の動きの制御に係る動き制御点を複数設定する制御点設定手段と、を備えたことを特徴としている。
【0008】
また、本発明に係るプログラムは、
動体モデルの基準画像と対応付けられ、当該基準画像の動体モデルが含まれるモデル領域内に設定された複数の動き基準点の所定空間内での動きを示す動き情報を記憶する記憶手段を備える制御点設定装置のコンピュータを、前記基準画像の動体モデルの骨格に係るモデル骨格情報に基づいて、前記モデル領域内における前記複数の動き基準点の各々の位置に係る位置情報を特定する特定手段、被写体領域が含まれる被写体画像を取得する取得手段、この取得手段により取得された被写体画像の被写体の骨格に係る被写体骨格情報及び前記特定手段により特定された前記位置情報に基づいて、前記被写体領域内で前記複数の動き基準点の各々に対応する各位置に当該被写体領域の動きの制御に係る動き制御点を複数設定する制御点設定手段、として機能させることを特徴としている。
【発明の効果】
【0009】
本発明によれば、動き制御点の設定を簡便に、且つ、適正に行うことができる。
【図面の簡単な説明】
【0010】
【図1】本発明を適用した一実施形態の動画生成システムの概略構成を示すブロック図である。
【図2】図1の動画生成システムを構成するユーザ端末の概略構成を示すブロック図である。
【図3】図1の動画生成システムを構成するサーバの概略構成を示すブロック図である。
【図4】図1の動画生成システムによる動画生成処理に係る動作の一例を示すフローチャートである。
【図5】図4の動画生成処理の続きを示すフローチャートである。
【図6】図5の動画生成処理における制御点設定処理に係る動作の一例を示すフローチャートである。
【図7】図6の制御点設定処理における基準画像解析処理に係る動作の一例を示すフローチャートである。
【図8】図7の基準画像解析処理に係る画像の一例を模式的に示す図である。
【図9】図7の基準画像解析処理に係る画像の一例を模式的に示す図である。
【図10】図6の制御点設定処理における被写体画像解析処理に係る画像の一例を模式的に示す図である。
【図11】図6の制御点設定処理における基準点位置特定処理に係る動作の一例を示すフローチャートである。
【図12】図11の基準点位置特定処理を説明するための図である。
【図13】図6の制御点設定処理における制御点位置特定処理に係る動作の一例を示すフローチャートである。
【図14】図13の制御点位置特定処理に係る画像の一例を模式的に示す図である。
【発明を実施するための形態】
【0011】
以下に、本発明について、図面を用いて具体的な態様を説明する。ただし、発明の範囲は、図示例に限定されない。
図1は、本発明を適用した一実施形態の動画生成システム100の概略構成を示すブロック図である。
【0012】
本実施形態の動画生成システム100は、図1に示すように、撮像装置1と、ユーザ端末2と、サーバ3とを備え、ユーザ端末2とサーバ3とが所定の通信ネットワークNを介して各種情報を送受信可能に接続されている。
【0013】
先ず、撮像装置1について説明する。
撮像装置1は、被写体を撮像する撮像機能や撮像画像の画像データを記録媒体Cに記録する記録機能等を具備する。即ち、撮像装置1は、公知のものを適用可能であり、例えば、主要な機能を撮像機能とするデジタルカメラだけでなく、主要な機能としないものの撮像機能を具備する携帯電話機等の携帯端末なども含む。
【0014】
次に、ユーザ端末2について図2を参照して説明する。
ユーザ端末2は、例えば、パーソナルコンピュータ等により構成され、サーバ3により開設されるWebページ(例えば、動画生成用ページ)にアクセスして、当該Webページ上で各種の指示を入力する。
【0015】
図2は、ユーザ端末2の概略構成を示すブロック図である。
図2に示すように、ユーザ端末2は、具体的には、中央制御部201と、操作入力部202と、表示部203と、音出力部204と、記録媒体制御部205と、通信制御部206等を備えている。
【0016】
中央制御部201は、ユーザ端末2の各部を制御する。具体的には、中央制御部201は、CPU、RAM、ROM(何れも図示略)を備え、ROMに記憶されたユーザ端末2用の各種処理プログラム(図示略)に従って各種の制御動作を行う。その際に、CPUは、RAM内の格納領域内に各種処理結果を格納させ、必要に応じてその処理結果を表示部203に表示させる。
RAMは、例えば、CPUにより実行される処理プログラム等を展開するためのプログラム格納領域や、入力データや上記処理プログラムが実行される際に生じる処理結果等を格納するデータ格納領域などを備える。
ROMは、コンピュータ読み取り可能なプログラムコードの形態で格納されたプログラム、具体的には、ユーザ端末2で実行可能なシステムプログラム、当該システムプログラムで実行可能な各種処理プログラムや、これら各種処理プログラムを実行する際に使用されるデータ等を記憶する。
【0017】
操作入力部202は、例えば、数値、文字等を入力するためのデータ入力キーや、データの選択、送り操作等を行うための上下左右移動キーや各種機能キー等によって構成されるキーボードやマウス等を備え、ユーザにより押下されたキーの押下信号やマウスの操作信号を中央制御部201のCPUに出力する。
なお、操作入力部202としてタッチパネル(図示略)を表示部203の表示画面に配設して、タッチパネルの接触位置に応じて各種の指示を入力するような構成としても良い。
【0018】
表示部203は、例えば、LCD、CRT(Cathode Ray Tube)等のディスプレイから構成され、中央制御部201のCPUの制御下にて各種情報を表示画面に表示する。
即ち、表示部203は、例えば、サーバ3から送信され通信制御部206により受信されたWebページ(例えば、動画生成用ページ)のページデータに基づいて、対応するWebページを表示画面に表示する。具体的には、表示部203は、動画生成処理(後述)に係る各種の処理画面の画像データに基づいて、各種の処理画面を表示画面に表示する。
【0019】
音出力部204は、例えば、D/Aコンバータ、LPF(Low Pass Filter)、増幅器、スピーカ等により構成され、中央制御部201のCPUの制御下にて放音する。
即ち、音出力部204は、例えば、サーバ3から送信され通信制御部206により受信された演奏情報に基づいて、当該演奏情報のデジタルデータをD/Aコンバータによりアナログデータに変換し、増幅器を介してスピーカから、所定の音色、音高、音長で曲を放音する。また、音出力部204は、一の音源(例えば、楽器)の音を放音しても良いし、複数の音源の音を同時に放音しても良い。
【0020】
記録媒体制御部205は、記録媒体Cが着脱自在に構成され、装着された記録媒体Cからのデータの読み出しや記録媒体Cに対するデータの書き込みを制御する。即ち、記録媒体制御部205は、撮像装置1から取り外されて装着された記録媒体Cから動画生成処理(後述)に係る被写体存在画像(図示略)の画像データ(YUVデータ)を読み出して通信制御部206に出力する。
ここで、被写体存在画像とは、所定の背景内に主要な被写体が存在する画像のことである。また、記録媒体Cには、撮像装置1の画像処理部(図示略)により所定の符号化形式(例えば、JPEG形式等)に従って符号化された被写体存在画像の画像データが記録されている。
そして、通信制御部206は、入力された被写体存在画像の画像データをサーバ3に所定の通信ネットワークNを介して送信する。
【0021】
通信制御部206は、例えば、モデム(MODEM:Modulater/DEModulater)、ターミナルアダプタ(Terminal Adapter)等によって構成され、所定の通信ネットワークNを介してサーバ3等の外部機器との間で情報の通信制御を行うためのものである。
【0022】
なお、通信ネットワークNは、例えば、専用線や既存の一般公衆回線を利用して構築された通信ネットワークであり、LAN(Local Area Network)やWAN(Wide Area Network)等の様々な回線形態を適用することが可能である。また、通信ネットワークNには、例えば、電話回線網、ISDN回線網、専用線、移動体通信網、通信衛星回線、CATV回線網等の各種通信回線網と、それらを接続するインターネットサービスプロバイダ等が含まれる。
【0023】
次に、サーバ3について図3を参照して説明する。
サーバ3は、Web(World Wide Web)サーバとしてインターネット上にWebページ(例えば、動画生成用ページ)を開設する機能を具備するものであり、ユーザ端末2からのアクセスに応じて当該ユーザ端末2にWebページのページデータを送信する。また、サーバ3は、制御点設定装置として、基準画像P1の動体モデルの骨格に係るモデル骨格情報に基づいて、基準画像P1の動体モデルが含まれるモデル領域1A内における複数の動き基準点Q、…の各々の位置に係る位置情報を特定し、さらに、被写体画像の被写体の骨格に係る被写体骨格情報を取得する。そして、被写体画像の被写体の骨格に係る被写体骨格情報及びモデル領域1A内における複数の動き基準点Q、…の各々の位置に係る位置情報に基づいて、被写体領域内で複数の動き基準点Q、…の各々に対応する各位置に当該被写体領域の動きの制御に係る動き制御点Jを複数設定する。
【0024】
図3は、サーバ3の概略構成を示すブロック図である。
図3に示すように、サーバ3は、具体的には、中央制御部301と、表示部302と、通信制御部303と、被写体切抜部304と、記憶部305と、動画処理部306等を備えて構成されている。
【0025】
中央制御部301は、サーバ3の各部を制御する。具体的には、中央制御部301は、CPU、RAM、ROM(何れも図示略)を備え、CPUは、ROMに記憶されたサーバ3用の各種処理プログラム(図示略)に従って各種の制御動作を行う。その際に、CPUは、RAM内の格納領域内に各種処理結果を格納させ、必要に応じてその処理結果を表示部302に表示させる。
RAMは、例えば、CPUにより実行される処理プログラム等を展開するためのプログラム格納領域や、入力データや上記処理プログラムが実行される際に生じる処理結果等を格納するデータ格納領域などを備える。
ROMは、コンピュータ読み取り可能なプログラムコードの形態で格納されたプログラム、具体的には、サーバ3で実行可能なシステムプログラム、当該システムプログラムで実行可能な各種処理プログラムや、これら各種処理プログラムを実行する際に使用されるデータ等を記憶する。
【0026】
表示部302は、例えば、LCD、CRT等のディスプレイから構成され、中央制御部301のCPUの制御下にて各種情報を表示画面に表示する。
【0027】
通信制御部303は、例えば、モデム、ターミナルアダプタ等によって構成され、所定の通信ネットワークNを介してユーザ端末2等の外部機器との間で情報の通信制御を行うためのものである。
具体的には、通信制御部303は、例えば、動画生成処理(後述)にてユーザ端末2から所定の通信ネットワークNを介して送信された被写体存在画像(図示略)の画像データを受信して、当該画像データを中央制御部301のCPUに出力する。
中央制御部301のCPUは、入力された被写体存在画像の画像データを被写体切抜部304に出力する。
【0028】
被写体切抜部304は、被写体存在画像から被写体切り抜き画像(図示略)を生成する。
即ち、被写体切抜部304は、公知の被写体切抜手法を用いて、被写体存在画像から被写体が含まれる被写体領域が切り抜かれた被写体切り抜き画像を生成する。具体的には、被写体切抜部304は、中央制御部301のCPUから出力された被写体存在画像の画像データを取得して、例えば、ユーザによるユーザ端末2の操作入力部202(例えば、マウス等)の所定操作に基づいて、表示部203に表示されている当該被写体存在画像上に描画された境界線(図示略)により当該被写体存在画像を区分する。続けて、被写体切抜部304は、被写体存在画像の切抜線により区分される複数の区分領域の中で、被写体の背景を推定して当該背景の各画素の画素値に基づいて所定の演算を行って、被写体の背景色を所定の単一色として推定する。その後、被写体切抜部304は、所定の単一色の背景用画像と被写体存在画像との間で対応する各画素の差分情報(例えば、相違度マップ等)を生成する。そして、被写体切抜部304は、生成した差分情報の各画素の画素値を所定の閾値と比較して二値化した後、同じ連結成分を構成する画素集合に同じ番号を付けるラベリング処理を行って面積が最大の画素集合を被写体部分とする。
その後、被写体切抜部304は、例えば、上記の面積が最大の画素集合が「1」、その他の部分が「0」である二値化された差分情報に対してローパスフィルタを施して境界部分に中間値を生じさせることでアルファ値を生成し、被写体切り抜き画像内で被写体領域の位置を示す位置情報としてのアルファマップ(図示略)を生成する。
アルファ値(0≦α≦1)とは、例えば、被写体存在画像の各画素について、被写体領域の画像を所定の背景に対してアルファブレンディングする際の重みを表すものである。この場合、被写体領域はアルファ値が「1」となり、被写体存在画像の所定の背景に対する透過度が0%となる。一方、被写体の背景部分はアルファ値が「0」となり、当該被写体存在画像の所定の背景に対する透過度が100%となる。
【0029】
そして、被写体切抜部304は、アルファマップに基づいて、被写体存在画像の各画素のうち、アルファ値が「1」の画素を所定の単一色画像に対して透過させずに、且つ、アルファ値が「0」の画素を透過させるように、被写体画像を所定の単一色画像と合成して被写体切り抜き画像の画像データを生成する。
また、被写体切抜部304は、アルファマップに基づいて、被写体領域2A(図10(a)中、白で表す領域)の各画素を第1の画素値(例えば、「1」等)とし、背景領域(図10(a)中、ドットを付した領域)の各画素を第1の画素値と異なる第2の画素値(例えば、「0」等)とする二値画像であるマスク画像P2(図10(a)参照)を生成する。即ち、被写体切抜部304は、被写体切り抜き画像内で被写体領域2Aの位置を示す位置情報としてのマスク画像P2を生成する。
被写体切り抜き画像の画像データは、例えば、生成されたアルファマップやマスク画像P2等の位置情報と対応付けられたデータである。
【0030】
なお、上記した被写体切抜部304による被写体切抜手法は、一例であってこれに限られるものではなく、被写体存在画像から被写体が含まれる被写体領域を切り抜く公知の手法であれば如何なる手法を適用しても良い。
また、被写体切り抜き画像の画像データとしては、例えば、RGBA形式の画像データを適用しても良く、具体的には、RGB色空間で規定される各色に透過度(A)の情報が付加されている。この場合には、被写体切抜部304は、透過度(A)の情報を利用して、被写体切り抜き画像内で被写体領域の位置を示す位置情報(図示略)を生成しても良い。
【0031】
記憶部305は、例えば、半導体の不揮発メモリやHDD(Hard Disc Drive)等により構成され、ユーザ端末2に送信されるWebページのページデータや被写体切抜部304により生成された被写体切り抜き画像の画像データ等を記憶する。
【0032】
また、記憶部305は、動画生成処理に用いられる動き情報305aを複数記憶している。
各動き情報305aは、動体モデルの基準画像P1と対応付けられ、所定空間、即ち、例えば、互いに直交する二軸(例えば、x軸、y軸等)により規定される二次元の平面空間やこれら二軸に加えて当該二軸に直交する軸(例えば、z軸等)により規定される三次元の立体的空間内における複数の動き基準点Q、…の動きを示す情報である。なお、動き情報305aは、二次元の平面空間を所定の回動軸周りに回転させることで複数の動き基準点Q、…の動きに奥行きをもたせるような情報であっても良い。
基準画像P1は、動体モデルのモデル領域1Aの位置を示す情報であり、具体的には、例えば、モデル領域1A(図8(a)中、白で表す領域)の各画素を第1の画素値(例えば、「1」等)とし、それ以外の領域(図8(a)中、ドットを付した領域)の各画素を第1の画素値と異なる第2の画素値(例えば、「0」等)とする二値画像である。
各動き基準点Qの位置は、動きのモデルとなる動体モデル(例えば、ヒトや動物等)の骨格の形状や関節の位置等を考慮してそれぞれ規定されている。即ち、各動き基準点Qは、動体モデルとしてのヒトを所定方向(例えば、正面)から見た状態を表す基準画像P1の当該動体モデルが含まれるモデル領域1A内に、動体モデルの骨格の形状や関節の位置等を考慮して設定されている。
具体的には、例えば、ヒトの外形を模した基準画像P1のモデル領域1A内で、ヒトの左右の手首の各々に相当する位置に左右の手首動き基準点Q1、Q2が設定され、また、ヒトの左右の足首の各々に相当する位置に左右の足首動き基準点Q3、Q4が設定され、また、ヒトの首に相当する位置に首動き基準点Q5が設定されている(図8(a)参照)。
ここで、図8は、動体モデルとしてのヒトを正面から見た状態を模式的に表す基準画像P1である。当該基準画像P1は、向かって左側に動体モデルとしてのヒトの右腕及び右脚が配置され、一方、向かって右側に動体モデルとしてのヒトの左腕及び左脚が配置されている。
【0033】
また、各動き情報305aは、所定空間内にて複数の動き基準点Q、…の全て若しくは少なくとも一つを移動させた座標情報を所定の時間間隔で連続して並べることで、複数の動き基準点Q、…の動きが連続して表されている。具体的には、各動き情報305aは、例えば、基準画像P1のモデル領域1A内に設定されている複数の動き基準点Q、…を所定の踊りに対応させるように移動させた情報である。
なお、複数の動き基準点Q、…の座標情報の各々は、例えば、基準となる動き基準点Qの座標情報に対する各動き基準点Qの移動量を規定した情報であっても良いし、各動き基準点Qの絶対位置座標を規定した情報であっても良い。また、動き基準点Qの個数は、動体モデルの形状や大きさ等に応じて適宜任意に設定可能である。
【0034】
また、記憶部305は、動画生成処理に用いられる演奏情報305bを複数記憶している。
演奏情報305bは、動画処理部306の動画再生部306j(後述)により動画像とともに自動的に曲を演奏するための情報である。即ち、演奏情報305bは、例えば、テンポ、拍子、音程、音階、調、発想標語等を異ならせて複数規定され、それぞれ曲名と対応付けて記憶されている。
また、各演奏情報305bは、例えば、MIDI(Musical Instruments Digital Interface)規格等に従って規定されたデジタルデータであり、具体的には、トラック数や四分音符の分解能(Tickカウント数)等が規定されたヘッダ情報と、各パートに割り当てられた音源(例えば、楽器等)に供給させるイベント及びタイミングかならなるトラック情報等を有している。このトラック情報のイベントとして、例えば、テンポあるいは拍子の変更や、NoteOn・Offを指示する情報などがある。
【0035】
動画処理部306は、第1骨格情報取得部306aと、画像取得部306bと、第2骨格情報取得部306cと、骨格点設定部306dと、領域特定部306eと、基準点位置特定部306fと、制御点設定部306gと、フレーム生成部306hと、裏面画像生成部306iと、動画再生部306jとを具備している。
【0036】
第1骨格情報取得部306aは、基準画像P1の動体モデルの骨格に係るモデル骨格情報を取得する。
具体的には、第1骨格情報取得部306aは、記憶部305から動き情報305aを取得して、当該動き情報305aに係る基準画像P1、即ち、動体モデルのモデル領域1Aの位置を示す基準画像P1(図8(a)参照)の画像データに対して、幅が所定数(例えば、一つ)の画素からなる線画像を生成する細線化処理を施して、モデル骨格情報としてのモデル骨格線画像P1a(図8(b)参照)を生成する。
例えば、第1骨格情報取得部306aは、基準画像P1の画像データに対してHilditch法を適用して、当該画像内で境界点である端点を削除しない、孤立点を保存する、連結性を保存する、などの各種の条件を満たす画像の探索、削除を繰り返すことにより、モデル骨格線画像P1aを生成する。
なお、上記した第1骨格情報取得部306aによるモデル骨格情報の取得処理は、一例であってこれに限られるものではなく、適宜任意に変更可能である。また、細線化処理として、Hilditch法を適用するようにしたが、一例であってこれに限られるものではなく、適宜任意に変更可能である。また、図8(b)に示すモデル骨格線画像P1aにあっては、モデル領域1Aを破線で模式的に表している。
また、基準画像P1並びに被写体切り抜き画像及びマスク画像P2では、例えば、左上隅部を原点座標として(即ち、左右方向にx軸、上下方向にy軸をとり)上記の細線化処理や後述する各種の画像処理を行う。
【0037】
画像取得部306bは、動画生成処理に用いられる静止画像を取得する。
即ち、画像取得部306bは、取得手段として、背景と被写体とが存在する被写体存在画像から被写体が含まれる被写体領域が切り抜かれた被写体切り抜き画像(被写体画像)を取得する。具体的には、画像取得部306bは、被写体切抜部304により生成された被写体切り抜き画像の画像データと、当該被写体切り抜き画像の画像データと対応付けられているマスク画像P2の画像データを取得する。
なお、被写体切り抜き画像は、例えば、被写体としてのヒトを所定方向から見た状態を表す画像である。
【0038】
第2骨格情報取得部306cは、被写体切り抜き画像の被写体の骨格に係る被写体骨格情報を取得する。
即ち、第2骨格情報取得部306cは、画像取得部306bにより取得された被写体切り抜き画像の被写体の骨格に係る被写体骨格情報を取得する。具体的には、第2骨格情報取得部306cは、画像取得部306bにより取得されたマスク画像P2の画像データ、即ち、被写体切り抜き画像の画像データと対応付けられ、当該被写体切り抜き画像内で被写体領域2Aの位置を示すマスク画像P2の画像データに対して、所定数(例えば、一つ)の画素からなる線画像を生成する細線化処理を施して、被写体骨格情報としての被写体骨格線画像(図示略)を生成する。
例えば、第2骨格情報取得部306cは、上記第1骨格情報取得部306aと同様に、マスク画像P2の画像データに対してHilditch法を適用して、当該画像内で境界点である端点を削除しない、孤立点を保存する、連結性を保存する、などの各種の条件を満たす画像の探索、削除を繰り返すことにより、被写体骨格線画像を生成する。
なお、上記した第2骨格情報取得部306cによる被写体骨格情報の取得処理は、一例であってこれに限られるものではなく、適宜任意に変更可能である。また、細線化処理として、Hilditch法を適用するようにしたが、一例であってこれに限られるものではなく、適宜任意に変更可能である。
【0039】
骨格点設定部306dは、基準画像P1のモデル領域1A内でモデル骨格点Sを複数設定する。
即ち、骨格点設定部306dは、第1骨格情報取得部306aにより取得されたモデル骨格情報に基づいて、基準画像P1のモデル領域1A内で動体モデルの骨格と関連付けられたモデル骨格点Sを複数設定する。具体的には、骨格点設定部306dは、基準画像P1の画像データに基づいて、モデル領域1Aの輪郭部分であって、人体を構成する複数の部位どうしが連結された部分にてモデル骨格基準点Rを特定し、当該骨格基準点Rに基づいてモデル領域1A内で複数のモデル骨格点S、…を設定する。
モデル骨格基準点Rとしては、例えば、モデル股下基準点R1、左右のモデル脇下基準点R2、R3等が挙げられる。
【0040】
ここで、骨格点設定部306dによるモデル股下基準点R1の特定方法について説明する。
骨格点設定部306dは、動体モデル(人体)を構成する左右の脚どうしが連結された部分にてモデル股下基準点R1を特定する(図9(a)参照)。即ち、骨格点設定部306dは、例えば、基準画像P1の下側の所定範囲(例えば、基準画像P1をy軸方向(上下方向)に6等分したうちの4/6から5/6程度の範囲)内の重心位置を特定する。そして、骨格点設定部306dは、特定された重心位置からy軸のマイナス方向(上方向)に走査して、モデル領域1Aを構成する輪郭線との交点を第1輪郭点として特定する。そして、骨格点設定部306dは、特定された第1輪郭点から輪郭線上をy軸の各方向(上下両方向)に所定画素数分走査し、下記式(1)に基づいて、輪郭線における走査した経路部分にて評価値「DD」が最も大きくなる位置を探索し、モデル股下基準点R1として特定する。
なお、評価値「DD」の探索方法としては、例えば、輪郭線における走査範囲内にて経路部分に沿ったy座標の座標列の前方微分を利用する。具体的には、骨格点設定部306dは、例えば、任意の位置「k」(k:0〜n)における前後の参照範囲を「2」とし、下記式(1)に基づいて、評価値「DD」の値が最大となる位置「k」を求める。そして、骨格点設定部306dは、評価値「DD」が最大となる位置「k」を「maxK」とすると、モデル股下基準点R1の座標は、「tr(maxK)」で規定される。
なお、下記式(1)において、「tr(n).y」は経路「tr」内の位置nでのy座標を表している。
式(1);
DD = -(yd_(k-2) + yd_(k-1)) + (yd_(k+1) + yd_(k+2))
yd_(n) = tr(n+1).y - tr(n).y
【0041】
また、骨格点設定部306dは、例えば、基準画像P1のモデル領域1A内にてモデル股下基準点R1からx軸の各方向(左右両方向)に走査し、各方向について第1骨格情報取得部306aにより生成されたモデル骨格線画像P1aのモデル骨格線a1との交点を特定する。そして、骨格点設定部306dは、特定された両交点を左右のモデル股関節骨格点S1、S2として設定する(図9(b)参照)。
【0042】
次に、骨格点設定部306dによる左右のモデル脇下基準点R2、R3の特定方法について説明する。
骨格点設定部306dは、動体モデル(人体)を構成する左右の腕の各々と胴体が連結された部分にて左右のモデル脇下基準点R2、R3を特定する(図9(a)参照)。即ち、骨格点設定部306dは、例えば、左右のモデル股関節骨格点S1、S2の各々からx軸方向に沿って当該股関節骨格点S1、S2を基準として外側となる各方向に走査し、モデル領域1Aを構成する輪郭線との交点を第2輪郭点としてそれぞれ特定する。そして、骨格点設定部306dは、特定された各第2輪郭点から輪郭線上をy軸のマイナス方向(上方向)に所定画素数分走査し、下記式(2)、(3)に基づいて、左右のモデル脇下基準点R2、R3を特定する。
なお、評価値「DD」の探索方法としては、例えば、上記したモデル股下基準点R1の特定方法と同様に、左右両側の輪郭線における走査した経路部分にてx座標及びy座標の座標列の前方微分を利用する。
具体的には、基準画像P1の向かって左側のモデル右脇下基準点R3を特定する場合、骨格点設定部306dは、例えば、任意の位置「k」(k:0〜n)における前後の参照範囲を「2」とし、下記式(2)に基づいて、評価値「DD」の値が最大となる位置「k」を求める。そして、骨格点設定部306dは、評価値「DD」が最大となる位置「k」を「maxK」とすると、モデル右脇下基準点R3の座標は、「tr(maxK)」で規定される。なお、下記式(2)において、左側の経路「tr」内の位置nの座標は、(tr(n).x, tr(n).y)で取得できる。
式(2);
DD = -(d_tr(k-2).y + d_tr(k-1).y) - (d_tr(k+1).x + d_tr(k+2).x )
d_tr(n) = tr(n+1) - tr(n)
同様に、基準画像P1の向かって右側のモデル左脇下基準点R2を特定する場合、骨格点設定部306dは、例えば、任意の位置「k」(k:0〜n)における前後の参照範囲を「2」とし、下記式(3)に基づいて、評価値「DD」の値が最大となる位置「k」を求める。そして、骨格点設定部306dは、評価値「DD」が最大となる位置「k」を「maxK」とすると、モデル左脇下基準点R2の座標は、「tr(maxK)」で規定される。なお、下記式(3)において、右側の経路「tr」内の位置nの座標は、(tr(n).x, tr(n).y)で取得できる。
式(3);
DD = -(d_tr(k-2).y + d_tr(k-1).y) + (d_tr(k+1).x + d_tr(k+2).x )
d_tr(n) = tr(n+1) - tr(n)
【0043】
また、骨格点設定部306dは、例えば、基準画像P1のモデル領域1A内にて左右のモデル脇下基準点R2、R3の各々からy軸のマイナス方向(上方向)に走査し、モデル骨格線画像P1aのモデル骨格線a1との各交点を特定する。そして、骨格点設定部306dは、特定された両交点を左右のモデル肩骨格点S3、S4として設定する(図9(b)参照)。
また、骨格点設定部306dは、例えば、基準画像P1のモデル領域1A内にて左右のモデル肩骨格点S3、S4の中点を特定する。そして、骨格点設定部306dは、特定された中点をモデル肩中央骨格点S5として設定する(図9(b)参照)。
また、骨格点設定部306dは、例えば、基準画像P1のモデル領域1A内にて左モデル肩骨格点S3からモデル骨格線画像P1aのモデル骨格線a1上を走査し、左手先側の先端部までの距離を基準として所定の比率となる位置を特定する。そして、骨格点設定部306dは、特定された位置に左モデル肘骨格点S6及び左モデル手首骨格点S7を設定する(図9(b)参照)。
同様に、骨格点設定部306dは、例えば、基準画像P1のモデル領域1A内にて右モデル肩骨格点S4からモデル骨格線画像P1aのモデル骨格線a1上を走査し、右手先側の先端部までの距離を基準として所定の比率となる位置を特定する。そして、骨格点設定部306dは、特定された位置に右モデル肘骨格点S8及び右モデル手首骨格点S9を設定する(図9(b)参照)。
【0044】
また、骨格点設定部306dは、例えば、基準画像P1のモデル領域1A内にて左モデル股関節骨格点S1からモデル骨格線画像P1aのモデル骨格線a1上を走査し、左足先側の先端部までの距離を基準として所定の比率となる位置を特定する。そして、骨格点設定部306dは、特定された位置に左モデル膝骨格点S10及び左モデル足首骨格点S11を設定する(図9(b)参照)。
同様に、骨格点設定部306dは、例えば、基準画像P1のモデル領域1A内にて右モデル股関節骨格点S2からモデル骨格線画像P1aのモデル骨格線a1上を走査し、右足先側の先端部までの距離を基準として所定の比率となる位置を特定する。そして、骨格点設定部306dは、特定された位置に右モデル膝骨格点S12及び右モデル足首骨格点S13を設定する(図9(b)参照)。
【0045】
また、骨格点設定部306dは、例えば、基準画像P1のモデル領域1A内にてモデル肩中央骨格点S5からy軸のマイナス方向(上方向)に走査し、モデル領域1Aを構成する輪郭線との交点を特定する。そして、骨格点設定部306dは、特定された交点をモデル頭頂骨格点S14として設定する(図9(b)参照)。
【0046】
また、骨格点設定部306dは、被写体切り抜き画像の被写体領域内で被写体骨格点Iを複数設定する。
即ち、骨格点設定部306dは、第2骨格情報取得部306cにより取得された被写体骨格情報に基づいて、被写体切り抜き画像と対応付けられているマスク画像P2(図10(a)参照)の被写体領域2A内で被写体の骨格と関連付けられた被写体骨格点Iを複数設定する(図10(b)参照)。具体的には、骨格点設定部306dは、上記の基準画像P1のモデル領域1Aに対する処理と同様に、マスク画像P2の画像データに基づいて、被写体領域2Aの輪郭部分であって、人体を構成する複数の部位どうしが連結された部分に被写体骨格基準点Hを特定し、当該骨格基準点Hに基づいて被写体領域2A内で複数の被写体骨格点I、…を設定する。
被写体骨格基準点Hとしては、例えば、被写体股下基準点H1、左右の被写体脇下基準点H2、H3等が挙げられる。ここで、骨格点設定部306dは、例えば、モデル股下基準点R1並びに左右のモデル脇下基準点R2、R3の特定手法と同様の処理をマスク画像P2に対して行って、当該マスク画像P2の被写体領域2A内で、被写体股下基準点H1並びに左右の被写体脇下基準点H2、H3を特定する。
また、骨格点設定部306dは、例えば、左右のモデル股関節骨格点S1、S2、左右のモデル肩骨格点S3、S4、モデル肩中央骨格点S5、左右のモデル肘骨格点S6、S8、左右のモデル手首骨格点S7、S9、左右のモデル膝骨格点S10、S12、左右のモデル足首骨格点S11、S13並びにモデル頭頂骨格点S14の設定手法と同様の処理をマスク画像P2に対して行って、当該マスク画像P2の被写体領域2A内で、左右の被写体股関節骨格点I1、I2、左右の被写体肩骨格点I3、I4、被写体肩中央骨格点I5、左右の被写体肘骨格点I6、I8、左右の被写体手首骨格点I7、I9、左右の被写体膝骨格点I10、I12、左右の被写体足首骨格点I11、I13並びに被写体頭頂骨格点I14を設定する。
【0047】
なお、上記したモデル骨格基準点R及びモデル骨格点S並びに被写体骨格基準点H及び被写体骨格点Iは、一例であってこれに限られるものではなく、適宜任意に変更可能である。
【0048】
領域特定部306eは、基準画像P1のモデル領域1A内で、動体モデルを構成する代表的な部位の領域Bを特定する。
即ち、領域特定部306eは、基準画像P1の画像データに基づいて、基準画像P1のモデル領域1A内で、動体モデルを構成する代表的な部位の領域Bとして、例えば、左右の各腕に相当する左右のモデル腕領域B1、B2、左右の各脚に相当する左右のモデル脚領域B3、B4、胴体及び頭に相当する部分のモデル体領域B5をそれぞれ特定する(図9(c)参照)。
具体的には、領域特定部306eは、例えば、左モデル肩骨格点S3からy軸の各方向(上下両方向)に走査し、モデル領域1Aを構成する輪郭線との各交点をそれぞれ特定する。そして、領域特定部306eは、モデル領域1Aのうち、二つの交点を結ぶ線分により分割され、モデル肩中央骨格点S5と反対側(手先側)に存する領域を人体の左腕に相当する左モデル腕領域B1として特定する。続けて、領域特定部306eは、左モデル肘骨格点S6を通り、y軸方向に沿って延在する直線の輪郭線との各交点を特定し、当該交点間の距離を左モデル腕領域B1の太さ(幅)として特定する。
また、領域特定部306eは、例えば、人体の右腕に相当する右モデル腕領域B2についても同様の処理を行って、右モデル腕領域B2及び当該右モデル腕領域B2の太さを特定する。
【0049】
また、領域特定部306eは、例えば、左モデル股関節骨格点S1からx軸の各方向(左右両方向)に走査し、モデル領域1Aを構成する輪郭線との各交点をそれぞれ特定する。そして、領域特定部306eは、モデル領域1Aのうち、二つの交点を結ぶ線分により分割され、モデル肩中央骨格点S5と反対側(足先側)に存する領域を人体の左脚に相当する左モデル脚領域B3として特定する。続けて、領域特定部306eは、左モデル膝骨格点S10を通り、x軸方向に沿って延在する直線の輪郭線との各交点を特定し、当該交点間の距離を左モデル脚領域B3の太さとして特定する。
また、領域特定部306eは、例えば、人体の右脚に相当する右モデル脚領域B4についても同様の処理を行って、右モデル脚領域B4及び当該右モデル脚領域B4の太さを特定する。
【0050】
また、領域特定部306eは、例えば、モデル領域1A中で左右のモデル腕領域B1、B2並びに左右のモデル脚領域B3、B4が特定された結果、残った部分の領域をモデル体領域B5として特定する。また、領域特定部306eは、例えば、左右のモデル肩骨格点S3、S4間の距離をモデル体領域B5の太さとして特定する。
【0051】
また、領域特定部306eは、マスク画像P2の被写体領域2A内で、被写体領域2Aを構成する代表的な部位の領域Dを特定する。
即ち、領域特定部306eは、マスク画像P2の画像データに基づいて、マスク画像P2の被写体領域2A内で、人体を構成する代表的な部位の領域Dとして、例えば、左右の各腕に相当する左右の被写体腕領域D1、D2、左右の各脚に相当する左右の被写体脚領域D3、D4、胴体及び頭に相当する部分の被写体体領域D5をそれぞれ特定する(図10(b)参照)。
具体的には、領域特定部306eは、例えば、上記の基準画像P1のモデル領域1Aに対する処理と同様の処理をマスク画像P2に対して行って、当該マスク画像P2の被写体領域2A内で、左右の被写体腕領域D1、D2、左右の被写体脚領域D3、D4、被写体体領域D5並びに各領域D1〜D5の太さを特定する。
なお、図10(b)に示すマスク画像P2には、被写体骨格線画像(図示略)に係る被写体骨格線a2を表している。
【0052】
なお、上記した人体を構成する代表的な部位の領域B(D)は、一例であってこれに限られるものではなく、適宜任意に変更可能である。また、当該領域B(D)の特定方法や各領域B(D)の太さの特定方法も、一例であってこれに限られるものではなく、適宜任意に変更可能である。
【0053】
基準点位置特定部306fは、基準画像P1の動体モデルのモデル領域1A内における複数の動き基準点Q、…の各々の位置に係る位置情報を特定する。
即ち、基準点位置特定部306fは、特定手段として、基準画像P1の動体モデルの骨格に係るモデル骨格情報に基づいて、モデル領域1A内における複数の動き基準点Q、…の各々の位置に係る位置情報を特定する。具体的には、基準点位置特定部306fは、位置情報として、複数の動き基準点Q、…の各々に対する、骨格点設定部306dにより設定された複数のモデル骨格点S、…の相対的な位置関係に係る情報を特定する(図12参照)。
【0054】
例えば、基準点位置特定部306fは、複数の動き基準点Q、…の各々について、複数のモデル骨格点S、…の中で、最も近い位置に存する第1モデル骨格点「KP1」を特定する。そして、基準点位置特定部306fは、特定された第1モデル骨格点とともに、処理対象の動き基準点Q(当該第1モデル骨格点に最も近い動き基準点Q)を所定方向に挟む第2モデル骨格点「KP2」を特定する。具体的には、基準点位置特定部306fは、特定された第1モデル骨格点に近い位置に存する二つのモデル骨格点S、Sを候補骨格点「KP2_1」、「KP2_2」として特定する。続けて、基準点位置特定部306fは、第1モデル骨格点を始点とし、各候補骨格点「KP2_1」、「KP2_2」及び処理対象の動き基準点Qの各々を終点とする各ベクトル「KP2_1-KP1」、「KP2_2-KP1」、「Q-KP1」を生成する。そして、基準点位置特定部306fは、各候補骨格点「KP2_1」、「KP2_2」に向かう各ベクトルと処理対象の動き基準点Qに向かうベクトルの内積「IP1」、「IP2」を所定の演算式に従ってそれぞれ算出する。そして、基準点位置特定部306fは、算出された二つの内積「IP1」、「IP2」の大きさを基準として、第2モデル骨格点を特定する。即ち、基準点位置特定部306fは、二つの内積「IP1」、「IP2」が共に「0」以下であれば、二つの候補骨格点「KP2_1」、「KP2_2」の中で、動き基準点Qに近い方を第2モデル骨格点「KP2」とし、また、内積「IP1」のみ「0」より大きければ候補骨格点「KP2_1」を第2モデル骨格点「KP2」とし、それ以外であれば候補骨格点「KP2_2」を第2モデル骨格点「KP2」とする。
そして、基準点位置特定部306fは、第1モデル骨格点「KP1」と第2モデル骨格点「KP1」とを結ぶ第1線分「L1」と、当該第1線分「L1」に対して直交し、動き基準点Qを通る直線との交点「CP1」の位置を特定する。そして、基準点位置特定部306fは、第1線分「L1」の長さを「1」として、第1モデル骨格点「KP1」及び第2モデル骨格点「KP2」の各々から交点「CP1」までの距離の比率を第1比率として特定する。
このように、基準点位置特定部306fは、動き基準点Qに対する第1及び第2モデル骨格点「KP1」、「KP2」(二つのモデル骨格点S、S)の相対的な位置関係に係る情報を含む位置情報を特定する。
【0055】
さらに、基準点位置特定部306fは、モデル領域1Aにおける二つのモデル骨格点S、Sが含まれる部位の輪郭部分を特定する。
即ち、基準点位置特定部306fは、領域特定部306eにより特定された左右のモデル腕領域B1、B2、左右のモデル脚領域B3、B4、モデル体領域B5の中で、処理対象となる動き基準点Q並びに第1及び第2モデル骨格点「KP1」、「KP2」が含まれる部位の領域B(例えば、左モデル腕領域B1等)及び当該領域Bの長さを特定する。そして、線分「L1」に対して直交し、且つ、第1及び第2モデル骨格点「KP1」、「KP2」の何れか一のモデル骨格点(例えば、第1モデル骨格点「KP1」等)から動き基準点Q側に延在する線分であって、特定された長さの半分の長さの第2線分「L2」を特定する。つまり、第2線分「L2」のモデル骨格点Sと反対側の端部「L2a」が、第1及び第2モデル骨格点「KP1」、「KP2」が含まれる部位の輪郭上に存することとなる。
続けて、基準点位置特定部306fは、第2線分「L2」と、当該第2線分「L2」に対して直交し、動き基準点Qを通る直線との交点「CP2」の位置を特定する。そして、基準点位置特定部306fは、第2線分「L2」の長さを「1」として、第1モデル骨格点「KP1」及び第2線分「L2」の端部「L2a」の各々から交点「CP2」までの距離の比率を第2比率として特定する。
このように、基準点位置特定部306fは、各動き基準点Qに対して、モデル領域1Aにおける第1及び第2モデル骨格点「KP1」、「KP2」(二つのモデル骨格点S、S)が含まれる部位の領域Bの輪郭部分の相対的な位置関係に係る情報を含む位置情報を特定する。
【0056】
制御点設定部306gは、被写体切り抜き画像の被写体領域内で複数の動き基準点Q、…の各々に対応する各位置に動き制御点Jを複数設定する。
即ち、制御点設定部306gは、制御点設定手段として、基準点位置特定部306fにより特定されたモデル領域1A内における複数の動き基準点Q、…の各々の位置に係る位置情報及び第2骨格情報取得部306cにより取得された被写体骨格情報に基づいて、マスク画像P2の被写体領域2A内で複数の動き基準点Q、…の各々に対応する各位置に当該被写体領域2Aの動きの制御に係る動き制御点Jを複数設定する。具体的には、制御点設定部306gは、記憶部305から動体モデル(例えば、動物)の動き情報305aを読み出して、被写体領域2A内で、当該動き情報305aに規定されている基準フレーム(例えば、1フレーム目等)の複数の動き基準点Q、…の各々に対応する動き制御点Jを設定する。
【0057】
例えば、制御点設定部306gは、複数の動き基準点Q、…に対する、基準点位置特定部306fにより特定された複数のモデル骨格点S、…の相対的な位置関係に係る情報及び骨格点設定部306dにより被写体領域2A内で設定された複数の被写体骨格点I、…に基づいて、当該被写体領域2A内で複数の動き制御点J、…を設定する。
即ち、制御点設定部306gは、骨格点設定部306dにより被写体領域2A内で設定された複数の被写体骨格点I、…のうち、基準点位置特定部306fにより特定された複数の動き基準点Q、…の各々を所定方向に挟むように設定された隣合う二つのモデル骨格点(例えば、第1及び第2モデル骨格点「KP1」、「KP2」)S、Sに対応する二つの被写体骨格点(例えば、第1及び第2の被写体骨格点)I、Iを特定する。また、制御点設定部306gは、被写体領域2A内で、隣合う二つのモデル骨格点(例えば、第1及び第2モデル骨格点「KP1」、「KP2」)S、Sが含まれる部位の領域Bに対応する対応領域D(例えば、左被写体腕領域D1等)を特定する。
そして、制御点設定部306gは、各動き基準点Qに対する、第1及び第2のモデル骨格点S、Sの相対的な位置関係並びに当該第1及び第2モデル骨格点S、Sが含まれる部位の領域Bの輪郭部分の相対的な位置関係(例えば、第1比率及び第2比率)を、被写体領域2A内で特定された二つの被写体骨格点I、I並びに当該二つの被写体骨格点I、Iが含まれる対応領域Dの輪郭部分に対して反映させる。即ち、制御点設定部306gは、被写体領域2A内で、各動き基準点Qに対する隣合う二つのモデル骨格点S、Sの相対的な位置関係に対応する相対的な位置関係を二つの被写体骨格点I、Iに対して有するとともに、対応領域D内で、各動き基準点Qに対する当該二つのモデル骨格点S、Sが含まれる部位の輪郭部分の相対的な位置関係に対応する相対的な位置関係を当該対応領域Dの輪郭部分に対して有する位置に各動き制御点J(例えば、左手首動き制御点J1等)を設定する(図14参照)。
そして、制御点設定部306gは、マスク画像P2の被写体領域2Aに設定された各動き制御点Jに対応させるように、当該動き制御点Jの各々の座標に従って被写体切り抜き画像の被写体領域内で各動き制御点Jを設定する。
【0058】
また、制御点設定部306gは、被写体切り抜き画像の被写体領域内で動き制御点Jをそれぞれ設定することで、当該被写体切り抜き画像に対応する裏面画像内の所定位置に対してもそれぞれ対応する動き制御点Jを自動的に設定しても良い。
さらに、制御点設定部306gは、動き情報305aに規定されている複数の動き基準点Q、…の全てについて、対応する動き制御点Jを設定しても良いし、被写体の中央部や各先端部等の代表的な所定数の動き基準点Qに対応する動き制御点Jのみ設定しても良い。
【0059】
なお、制御点設定部306gによる動き制御点Jの設定が行われた後、ユーザによるユーザ端末2の操作入力部202の所定操作に基づいて動き制御点Jの設定位置の修正(変更)を受け付けるようにしても良い。
【0060】
フレーム生成部306hは、動画像を構成する複数のフレーム画像(図示略)を逐次生成する。
即ち、フレーム生成部306hは、動き情報305aの複数の動き基準点Q、…の動きに基づいて、制御点設定部306gにより被写体切り抜き画像の被写体領域内に設定された複数の動き制御点J、…を動かし、当該動き制御点Jの動きに従って被写体領域を変形させたフレーム画像を複数生成する。具体的には、フレーム生成部306hは、動画処理部306により指定された動き情報305aの複数の動き基準点Q、…の動きに追従させるように、被写体切り抜き画像の被写体画像内に設定されている複数の動き制御点J、…を移動させる。例えば、フレーム生成部306hは、動き情報305aに従って所定の時間間隔で移動する複数の動き基準点Q、…の座標情報を逐次取得して、当該動き基準点Qの各々に対応する各動き制御点Jの座標を算出する。そして、フレーム生成部306hは、算出された座標に動き制御点Jを逐次移動させていく。このとき、フレーム生成部306hは、少なくとも一の動き制御点Jを基準として被写体領域内に設定される所定の画像領域(例えば、三角形や矩形のメッシュ状の領域)を移動させたり変形させることで、基準フレーム画像(図示略)を生成する。
なお、動き制御点Jを基準とした所定の画像領域を移動させたり変形させる処理は、公知の技術であるので、ここでは詳細な説明を省略する。
【0061】
また、フレーム生成部306hは、移動後の動き基準点Qの各々に対応する複数の動き制御点J、…に基づいて生成される時間軸に沿って隣合う二つの基準フレーム画像どうしの間を補間する補間フレーム画像(図示略)を生成する。即ち、フレーム生成部306hは、動画再生部306jにより複数のフレーム画像が所定の再生フレームレート(例えば、30fps等)で再生されるように、二つの基準フレーム画像どうしの間を補間する補間フレーム画像を所定数生成する。
具体的には、フレーム生成部306hは、隣合う二つの基準フレーム画像間における、動画再生部306jにより演奏される所定の曲の演奏の進行度合を逐次取得して、当該進行度合に応じて、隣合う二つの基準フレーム画像間で再生される補間フレーム画像を逐次生成する。例えば、フレーム生成部306hは、MIDI規格の演奏情報305bに基づいてテンポの設定情報及び四分音符の分解能(Tickカウント数)を取得して、動画再生部306jにより演奏される所定の曲の演奏の経過時間をTickカウント数に変換する。続けて、フレーム生成部306hは、所定の曲の演奏の経過時間に対応するTickカウント数に基づいて、所定のタイミング(例えば、各小節の一拍目等)に同期させた隣合う二つの基準フレーム画像間における所定の曲の演奏の相対的な進行度合を、例えば百分率で算出する。そして、フレーム生成部306hは、所定の曲の演奏の相対的な進行度合に応じて、当該隣合う二つの基準フレーム画像に対する重み付けを変えて補間フレーム画像を生成する。
なお、補間フレーム画像を生成する処理は、公知の技術であるので、ここでは詳細な説明を省略する。
【0062】
また、フレーム生成部306hによる基準フレーム画像や補間フレーム画像の生成は、上記と同様にして、マスク画像P2の画像データ並びにアルファマップについても行われる。
【0063】
裏面画像生成部306iは、被写体の裏側(背面側)を擬似的に表す裏面画像(図示略)を生成する。
即ち、裏面画像生成部306iは、例えば、被写体切り抜き画像の被写体領域の輪郭部分の色情報に基づいて、裏面画像における被写体切り抜き画像の被写体領域に対応する被写体対応領域Dを描画して当該裏面画像を生成する。
【0064】
動画再生部306jは、フレーム生成部306hにより生成された複数のフレーム画像の各々を再生する。
即ち、動画再生部306jは、ユーザによるユーザ端末2の操作入力部202の所定操作に基づいて指定された演奏情報305bに基づいて所定の曲を自動的に演奏するとともに、当該所定の曲の所定のタイミングで複数のフレーム画像の各々を再生する。具体的には、動画再生部306jは、所定の曲の演奏情報305bのデジタルデータをD/Aコンバータによりアナログデータに変換して当該所定の曲を自動的に演奏させ、このとき、所定のタイミング(例えば、各小節の1拍目や各拍等)に同期させるように隣合う二つの基準フレーム画像を再生するとともに、隣合う二つの基準フレーム画像間における所定の曲の演奏の相対的な進行度合に応じて、当該進行度合に対応する各々の補間フレーム画像を再生する。
なお、動画再生部306jは、動画処理部306により指定された速さで被写体画像に係る複数のフレーム画像を再生しても良い。この場合には、動画再生部306jは、隣合う二つの基準フレーム画像を同期させるタイミングを変化させることで、所定の単位時間内に再生されるフレーム画像の数を変更して被写体画像の動きの速さを可変させる。
【0065】
<動画生成処理>
次に、ユーザ端末2及びサーバ3を用いた動画生成処理について、図4〜図14を参照して説明する。
ここで、図4及び図5は、動画生成処理に係る動作の一例を示すフローチャートである。
なお、以下の説明にあっては、被写体存在画像の画像データから生成された被写体切り抜き画像及び当該被写体切り抜き画像に対応するマスク画像P2の画像データがサーバ3の記憶部305に記憶されているものとする。
【0066】
図4に示すように、ユーザ端末2の中央制御部201のCPUは、ユーザによる操作入力部202の所定操作に基づいて、サーバ3により開設される動画生成用ページのアクセス指示が入力されると、当該アクセス指示を通信制御部206により所定の通信ネットワークNを介してサーバ3に送信させる(ステップS1)。
サーバ3の通信制御部303によって、ユーザ端末2から送信されたアクセス指示が受信されると、中央制御部301のCPUは、動画生成用ページのページデータを通信制御部303により所定の通信ネットワークNを介してユーザ端末2に送信させる(ステップS2)。
そして、ユーザ端末2の通信制御部206によって、動画生成用ページのページデータが受信されると、表示部203は、当該動画生成用ページのページデータに基づいて、動画生成用ページの画面(図示略)を表示する。
【0067】
次に、ユーザ端末2の中央制御部201は、ユーザによる操作入力部202の所定操作に基づいて、動画生成用ページの画面内にて操作された各種ボタンに対応する指示信号を通信制御部206により所定の通信ネットワークNを介してサーバ3に送信させる(ステップS3)。
図5に示すように、サーバ3の中央制御部301のCPUは、ユーザ端末2からの指示の内容に応じて処理を分岐させる(ステップS4)。具体的には、中央制御部301のCPUは、ユーザ端末2からの指示が、被写体画像の指定に関する内容の場合(ステップS4;被写体画像の指定)、処理をステップS51に移行させ、また、背景画像の指定に関する内容の場合(ステップS4;背景画像の指定)、処理をステップS61に移行させ、また、動き及び曲の指定に関する内容の場合(ステップS4;動き及び曲の指定)、処理をステップS71に移行させる。
【0068】
<被写体画像の指定>
ステップS4にて、ユーザ端末2からの指示が、被写体画像の指定に関する内容の場合(ステップS4;被写体画像の指定)、動画処理部306の画像取得部306bは、記憶部305に記憶されている被写体切り抜き画像の画像データの中からユーザにより指定された被写体切り抜き画像の画像データを読み出して取得する(ステップS51)。
次に、制御点設定部306gは、取得された被写体切り抜き画像やマスク画像P2の被写体領域2A内で動き制御点Jが既に設定されているか否かを判定する(ステップS52)。
【0069】
ステップS52にて、制御点設定部306gにより動き制御点Jが設定されていないと判定されると(ステップS52;NO)、動画処理部306は、被写体切り抜き画像の被写体領域の画像の裏側を擬似的に表す裏面画像(図示略)を生成する裏面画像生成処理を行う(ステップS53)。
【0070】
次に、中央制御部301のCPUは、生成された裏面画像と対応づけられた被写体切り抜き画像の画像データを通信制御部303により所定の通信ネットワークNを介してユーザ端末2に送信させる(ステップS54)。その後、制御点設定部306gは、被写体切り抜き画像及びマスク画像P2の各々の被写体領域2A内で複数の動き基準点Q、…に対応する各位置に動き制御点Jを複数設定する制御点設定処理(図6参照)を行う(ステップS55)。
なお、制御点設定処理については、後述する。
【0071】
そして、動画再生部306jは、当該被写体画像に対して設定された複数の動き制御点J、…、並びに被写体領域2Aの画像の合成位置やサイズ等の合成内容を所定の格納手段(例えば、所定のメモリ等)に登録する(ステップS56)。
その後、中央制御部301のCPUは、処理をステップS8に移行させる。ステップS8の処理の内容については、後述する。
【0072】
なお、ステップS52にて、既に動き制御点Jが設定されていると判定されると(ステップS52;YES)、中央制御部301のCPUは、ステップS53〜S56の処理をスキップして、処理をステップS8に移行させる。
【0073】
<背景画像の指定>
ステップS4にて、ユーザ端末2からの指示が、背景画像の指定に関する内容の場合(ステップS4;背景画像の指定)、動画処理部306の動画再生部306jは、ユーザによる操作入力部202の所定操作に基づいて所望の背景画像(他の画像)の画像データを読み出して(ステップS61)、当該背景画像の画像データを動画像の背景として所定の格納手段に登録する(ステップS62)。
具体的には、サーバ3には、ユーザ端末2の表示部203に表示されている動画生成用ページの画面内の複数の画像データの中で、ユーザによる操作入力部202の所定操作に基づいて指定された何れか一の画像データの指定指示が、通信ネットワークN及び通信制御部303を介して入力される。動画再生部306jは、当該指定指示に係る背景画像の画像データを記憶部305から読み出して取得した後(ステップS61)、当該背景画像の画像データを動画像の背景として登録する(ステップS62)。
【0074】
次に、中央制御部301のCPUは、背景画像の画像データを通信制御部303により所定の通信ネットワークNを介してユーザ端末2に送信させる(ステップS63)。
その後、中央制御部301のCPUは、処理をステップS8に移行させる。ステップS8の処理の内容については、後述する。
【0075】
<動き及び曲の指定>
ステップ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の動画再生部306jは、設定された動き情報305aや動きの速さを動画像の動きの内容として所定の格納手段に登録する(ステップS72)。
【0076】
次に、動画処理部306は、ユーザによる操作入力部202の所定操作に基づいて自動的に演奏される曲を設定する(ステップS73)。
具体的には、サーバ3には、ユーザ端末2の表示部203に表示されている動画生成用ページの画面内の複数の曲名の中で、ユーザによる操作入力部202の所定操作に基づいて指定された何れか一の曲名の指定指示が、通信ネットワークN及び通信制御部303を介して入力される。動画処理部306は、当該指定指示に係る曲名の曲を設定する。
その後、中央制御部301のCPUは、処理をステップS8に移行させる。ステップS8の処理の内容については、後述する。
【0077】
ステップS8では、中央制御部301のCPUは、動画像の生成が可能な状態であるか否かを判定する(ステップS8)。即ち、ユーザによる操作入力部202の所定操作に基づいて、サーバ3の動画処理部306は、被写体領域2Aに対する動き制御点Jの登録、被写体領域2Aの画像の動きの内容の登録、背景画像の登録等を行うことで、動画像の生成準備が整って動画像を生成可能か否か判定する。
ここで、動画像の生成が可能な状態でないと判定されると(ステップS8;NO)、中央制御部301のCPUは、処理をステップS4に戻し、ユーザ端末2からの指示の内容に応じて処理を分岐させる(ステップS4)。
一方、ステップS8にて、動画像の生成が可能な状態であると判定されると(ステップS8;YES)、図4に示すように、中央制御部301のCPUは、処理をステップS10に移行させる。
【0078】
ステップS10では、サーバ3の中央制御部301のCPUは、ユーザによるユーザ端末2の操作入力部202の所定操作に基づいて動画像のプレビュー指示が入力されたか否かを判定する(ステップS10)。
即ち、ステップS9にて、ユーザ端末2の中央制御部201が、ユーザによる操作入力部202の所定操作に基づいて入力された動画像のプレビュー指示を、通信制御部206により所定の通信ネットワークNを介してサーバ3に送信させる(ステップS9)。
そして、ステップS10にて、サーバ3の中央制御部301のCPUによって、動画像のプレビュー指示が入力されたと判定されると(ステップS10;YES)、動画処理部306の動画再生部306jは、設定済みの曲名に対応する演奏情報305bを動画像とともに自動的に演奏される情報として所定の格納手段に登録する(ステップS11)。
【0079】
次に、動画処理部306は、格納手段に登録されている演奏情報305bに基づいて動画再生部306jによる所定の曲の演奏を開始させるとともに、動画像を構成する複数のフレーム画像のフレーム生成部306hによる生成を開始させる(ステップS12)。
続けて、動画処理部306は、動画再生部306jによる所定の曲の演奏が終了したか否かを判定する(ステップS13)。
ここで、曲の演奏が終了していないと判定されると(ステップS13;NO)、動画処理部306のフレーム生成部306hは、動き情報305aに応じて変形させた被写体領域の画像の基準フレーム画像を生成する(ステップS14)。具体的には、フレーム生成部306hは、格納手段に登録されている動き情報305aに従って所定の時間間隔で移動する複数の動き基準点Q、…の座標情報をそれぞれ取得して、当該動き基準点Qの各々に対応する各動き制御点Jの座標を算出する。そして、フレーム生成部306hは、算出された座標に動き制御点Jを逐次移動させていくとともに、動き制御点Jの移動に応じて被写体領域の画像内に設定される所定の画像領域を移動させたり変形させることで、基準フレーム画像を生成する。
また、動画処理部306は、基準フレーム画像と背景画像とを公知の画像合成手法を用いて合成する。具体的には、動画処理部306は、例えば、背景画像の各画素のうち、アルファ値が「0」の画素は透過させ、アルファ値が「1」の画素は基準フレーム画像の対応する画素の画素値で上書きし、さらに、背景画像の各画素のうち、アルファ値が「0<α<1」の画素は1の補数(1−α)を用いて基準フレーム画像の被写体領域を切り抜いた画像(背景画像×(1−α))を生成した後、アルファマップにおける1の補数(1−α)を用いて基準フレーム画像を生成した際に単一背景色とブレンドした値を計算し、当該値を基準フレーム画像から減算し、それを被写体領域を切り抜いた画像(背景画像×(1−α))と合成する。
【0080】
続けて、フレーム生成部306hは、動画再生部306jにより演奏される所定の曲の演奏の進行度合に応じて、隣合う二つの基準フレーム画像どうしの間を補間する補間フレーム画像を生成する(ステップS15)。具体的には、フレーム生成部306hは、隣合う二つの基準フレーム画像間における、動画再生部306jにより演奏される所定の曲の演奏の進行度合を逐次取得して、当該進行度合に応じて、隣合う二つの基準フレーム画像間で再生される補間フレーム画像を逐次生成する。
また、動画処理部306は、補間フレーム画像と背景画像とを、上記基準フレーム画像の場合と同様に、公知の画像合成手法を用いて合成する。
【0081】
次に、中央制御部301のCPUは、動画再生部306jにより自動的に演奏される曲の演奏情報305bとともに、当該曲の所定のタイミングで再生される基準フレーム画像及び補間フレーム画像からなるプレビュー動画のデータを、通信制御部303により所定の通信ネットワークNを介してユーザ端末2に送信させる(ステップS16)。ここで、プレビュー動画のデータは、所定数の基準フレーム画像及び補間フレーム画像からなる複数のフレーム画像とユーザ所望の背景画像とが合成された動画像を構成している。
次に、動画処理部306は、処理をステップS18に戻し、曲の演奏が終了したか否かを判定する(ステップS13)。
上記の処理は、ステップS13にて、曲の演奏が終了したと判定されるまで(ステップS13;YES)、繰り返し実行される。
そして、曲の演奏が終了したと判定されると(ステップS13;YES)、図5に示すように、中央制御部301のCPUは、処理をステップS4に戻し、ユーザ端末2からの指示の内容に応じて処理を分岐させる(ステップS4)。
【0082】
ステップS16にて、サーバ3から送信されたプレビュー動画のデータがユーザ端末2の通信制御部303によって受信されると、中央制御部201のCPUは、音出力部204及び表示部203を制御してプレビュー動画を再生させる(ステップS17)。
具体的には、音出力部204は、演奏情報305bに基づいて曲を自動的に演奏してスピーカから放音するとともに、表示部203は、当該自動的に演奏される曲の所定のタイミングで基準フレーム画像及び補間フレーム画像からなるプレビュー動画を表示画面に表示する。
【0083】
なお、上記の動画生成処理にあっては、プレビュー動画を再生するようにしたが、一例であってこれに限られるものではなく、例えば、逐次生成された基準フレーム画像や補間フレーム画像や背景画像の画像データ並びに演奏情報305bを一つのファイルとして所定の記憶手段に記憶していき、動画像に係る全てのデータの生成完了後に、当該ファイルをサーバ3からユーザ端末2に送信して当該ユーザ端末2にて再生させるようにしても良い。
【0084】
<制御点設定処理>
以下に、動画処理部306による制御点設定処理について、図6〜図14を参照して詳細に説明する。
図6は、動画生成処理における制御点設定処理に係る動作の一例を示すフローチャートである。
【0085】
図6に示すように、先ず、動画処理部306は、動体モデルのモデル領域1Aの位置を示す基準画像P1を解析する基準画像解析処理(図7参照)を行う(ステップS101)。なお、基準画像解析処理については、後述する。
次に、動画処理部306は、被写体切り抜き画像及びマスク画像P2の被写体領域2Aの画像を解析する被写体画像解析処理を行う(ステップS102)。なお、被写体画像解析処理については、後述する。
【0086】
そして、動画処理部306は、基準画像P1の動体モデルのモデル領域1A内における各動き基準点Qの位置を特定する位置特定処理(図8参照)を行う(ステップS103)。なお、基準点位置特定処理については、後述する。
その後、動画処理部306は、マスク画像P2の被写体領域2A内で各動き基準点Qに対応する動き制御点Jの位置を特定する制御点位置特定処理(図9参照)を行う(ステップS104)。なお、制御点位置特定処理については、後述する。
続けて、動画処理部306は、被写体切り抜き画像やマスク画像P2の被写体領域2A内で、制御点位置特定処理により特定された各位置に動き基準点Qに対応する動き制御点Jを設定して(ステップS105)、制御点設定処理を終了する。
【0087】
<基準画像解析処理>
以下に、動画処理部306による基準画像解析処理について、図7〜図9を参照して詳細に説明する。
図7は、動画生成処理における基準画像解析処理に係る動作の一例を示すフローチャートである。
【0088】
図7に示すように、動画処理部306の第1骨格情報取得部306aは、記憶部305から動き情報305aを取得して、当該動き情報305aに係る動体モデルのモデル領域1Aの位置を示す基準画像P1(図8(a)参照)の画像データに対して、幅が一画素からなる線画像を生成する細線化処理を施してモデル骨格線画像P1a(図8(b)参照)を生成する(ステップS201)。
次に、動画処理部306の骨格点設定部306dは、基準画像P1の下側の所定範囲、例えば、基準画像P1をy軸方向(上下方向)に6等分したうちの4/6から5/6程度の範囲内の重心位置を特定する(ステップS202)。そして、骨格点設定部306dは、重心位置からy軸のマイナス方向(上方向)に走査して、モデル領域1Aを構成する輪郭線との交点を第1輪郭点として特定する(ステップS203)。
【0089】
次に、骨格点設定部306dは、特定された第1輪郭点から輪郭線上をy軸の各方向(上下両方向)に所定画素数分走査し、下記式(1)に基づいて、輪郭線における走査した経路部分にて評価値「DD」が最も大きくなる位置「k」を探索し、モデル股下基準点R1として特定する(ステップS204;図9(a)参照)。
ここで、評価値「DD」が最大となる位置「k」を「maxK」とすると、モデル股下基準点R1の座標は、「tr(maxK)」で規定される。なお、下記式(1)において、「tr(n).y」は経路「tr」内の位置nでのy座標を表している。
式(1);
DD = -(yd_(k-2) + yd_(k-1)) + (yd_(k+1) + yd_(k+2))
yd_(n) = tr(n+1).y - tr(n).y
【0090】
次に、骨格点設定部306dは、基準画像P1のモデル領域1A内にてモデル股下基準点R1からx軸の各方向(左右両方向)に走査し、各方向についてモデル骨格線画像P1aのモデル骨格線a1との交点を特定し、特定された両交点を左右のモデル股関節骨格点S1、S2として設定する(ステップS205;図9(b)参照)。
続けて、骨格点設定部306dは、左右のモデル股関節骨格点S1、S2の各々からx軸方向に沿って当該股関節骨格点を基準として外側となる各方向に走査し、基準画像P1のモデル領域1Aを構成する輪郭線との交点を第2輪郭点としてそれぞれ特定する(ステップS206;図9(b)参照)。
【0091】
そして、骨格点設定部306dは、特定された各第2輪郭点から輪郭線上をy軸のマイナス方向(上方向)に所定画素数分走査し、下記式(2)、(3)に基づいて、輪郭線における走査した経路部分にて評価値「DD」が最も大きくなる位置「k」を探索し、左右のモデル脇下基準点R2、R3を特定する(ステップS207;図9(a)参照)。
ここで、評価値「DD」が最大となる位置「k」を「maxK」とすると、左右のモデル脇下基準点R2、R3の座標は、「tr(maxK)」で規定される。なお、下記式(2)において、左側の経路「tr」内の位置nの座標は、(tr(n).x, tr(n).y)で取得できる。また、下記式(3)において、右側の経路「tr」内の位置nの座標は、(tr(n).x, tr(n).y)で取得できる。
式(2);
DD = -(d_tr(k-2).y + d_tr(k-1).y) - (d_tr(k+1).x + d_tr(k+2).x )
d_tr(n) = tr(n+1) - tr(n)
式(3);
DD = -(d_tr(k-2).y + d_tr(k-1).y) + (d_tr(k+1).x + d_tr(k+2).x )
d_tr(n) = tr(n+1) - tr(n)
【0092】
次に、骨格点設定部306dは、基準画像P1のモデル領域1A内にて左右のモデル脇下基準点R2、R3の各々からy軸のマイナス方向(上方向)に走査し、モデル骨格線画像P1aのモデル骨格線a1との各交点を特定し、特定された両交点を左右のモデル肩骨格点S3、S4として設定する(ステップS208;図9(b)参照)。
そして、骨格点設定部306dは、基準画像P1のモデル領域1A内にて左右のモデル肩骨格点S3、S4の中点を特定し、特定された中点をモデル肩中央骨格点S5として設定する(ステップS209;図9(b)参照)。
【0093】
次に、骨格点設定部306dは、基準画像P1のモデル領域1A内にて、左右のモデル肘骨格点S6、S8及び左右のモデル手首骨格点S7、S9を設定する(ステップS210;図9(b)参照)。
具体的には、骨格点設定部306dは、基準画像P1のモデル領域1A内にて左モデル肩骨格点S3からモデル骨格線画像P1aのモデル骨格線a1上を走査し、左手先側の先端部までの距離を基準として所定の比率となる位置に、左モデル肘骨格点S6及び左モデル手首骨格点S7を設定する。同様に、骨格点設定部306dは、例えば、基準画像P1のモデル領域1A内にて右モデル肩骨格点S4からモデル骨格線画像P1aのモデル骨格線a1上を走査し、右手先側の先端部までの距離を基準として所定の比率となる位置に、右モデル肘骨格点S8及び右モデル手首骨格点S9を設定する。
【0094】
そして、骨格点設定部306dは、基準画像P1のモデル領域1A内にて、左右のモデル膝骨格点S10、S12及び左右のモデル足首骨格点S11、S13を設定する(ステップS211;図9(b)参照)。
具体的には、骨格点設定部306dは、基準画像P1のモデル領域1A内にて左モデル股関節骨格点S1からモデル骨格線画像P1aのモデル骨格線a1上を走査し、左足先側の先端部までの距離を基準として所定の比率となる位置に、左モデル膝骨格点S10及び左モデル足首骨格点S11を設定する。同様に、骨格点設定部306dは、例えば、基準画像P1のモデル領域1A内にて右モデル股関節骨格点S2からモデル骨格線画像P1aのモデル骨格線a1上を走査し、右足先側の先端部までの距離を基準として所定の比率となる位置に、右モデル膝骨格点S12及び右モデル足首骨格点S13を設定する。
【0095】
次に、骨格点設定部306dは、基準画像P1のモデル領域1A内にてモデル肩中央骨格点S5からy軸のマイナス方向(上方向)に走査し、モデル領域1Aを構成する輪郭線との交点を特定し、特定された交点をモデル頭頂骨格点S14として設定する(ステップS212;図9(b)参照)。
【0096】
そして、動画処理部306の領域特定部306eは、基準画像P1のモデル領域1A内にて左右のモデル肩骨格点S3、S4から手先側を左右のモデル腕領域B1、B2として特定する(ステップS213;図9(c)参照)。
具体的には、領域特定部306eは、左モデル肩骨格点S3からy軸の各方向(上下両方向)に走査し、モデル領域1Aを構成する輪郭線との各交点をそれぞれ特定する。そして、領域特定部306eは、モデル領域1Aのうち、二つの交点を結ぶ線分により分割され、モデル肩中央骨格点S5と反対側(手先側)に存する領域を人体の左腕に相当する左モデル腕領域B1として特定する。同様に、領域特定部306eは、人体の右腕に相当する右モデル腕領域B2についても同様の処理を行って、右モデル腕領域B2を特定する。
【0097】
次に、動画処理部306の領域特定部306eは、基準画像P1のモデル領域1A内にて左右のモデル股関節骨格点S1、S2から足先側を左右のモデル脚領域B3、B4として特定する(ステップS214;図9(c)参照)。
具体的には、領域特定部306eは、左モデル股関節骨格点S1からx軸の各方向(左右両方向)に走査し、モデル領域1Aを構成する輪郭線との各交点をそれぞれ特定する。そして、領域特定部306eは、モデル領域1Aのうち、二つの交点を結ぶ線分により分割され、モデル肩中央骨格点S5と反対側(足先側)に存する領域を人体の左脚に相当する左モデル脚領域B3として特定する。同様に、領域特定部306eは、人体の右脚に相当する右モデル脚領域B4についても同様の処理を行って、右モデル脚領域B4を特定する。
【0098】
その後、領域特定部306eは、モデル領域1A中で左右のモデル腕領域B1、B2並びに左右のモデル脚領域B3、B4が特定された結果、残った部分の領域をモデル体領域B5として特定する(ステップS215;図9(c)参照)。
【0099】
次に、領域特定部306eは、左右のモデル腕領域B1、B2、左右のモデル脚領域B3、B4並びにモデル体領域B5の太さ(幅)を特定する(ステップS216;図9(c)参照)。
具体的には、領域特定部306eは、左モデル肘骨格点S6を通り、y軸方向に沿って延在する直線の輪郭線との各交点を特定し、当該交点間の距離を左モデル腕領域B1の太さ(幅)として特定する。同様に、領域特定部306eは、右モデル腕領域B2の太さを特定する。
また、領域特定部306eは、左モデル膝骨格点S10を通り、x軸方向に沿って延在する直線の輪郭線との各交点を特定し、当該交点間の距離を左モデル脚領域B3の太さとして特定する。同様に、領域特定部306eは、右モデル脚領域B4の太さを特定する。
また、領域特定部306eは、左右のモデル肩骨格点S3、S4間の距離をモデル体領域B5の太さとして特定する。
これにより、基準画像解析処理を終了する。
【0100】
<被写体画像解析処理>
以下に、動画処理部306による被写体画像解析処理について、図10を参照して詳細に説明する。
図10(a)及び図10(b)は、動画生成処理における被写体画像解析処理に係る画像の一例を模式的に示す図である。
【0101】
被写体画像解析処理は、処理対象を被写体切り抜き画像及びマスク画像P2とする以外の点で、上記した基準画像解析処理と略同様であり、その詳細な説明は省略する。
即ち、被写体画像解析処理では、骨格点設定部306dは、モデル股下基準点R1並びに左右のモデル脇下基準点R2、R3の特定手法と同様の処理をマスク画像P2(図10(a)参照)に対して行って、当該マスク画像P2の被写体領域2A内で、被写体股下基準点H1並びに左右の被写体脇下基準点H2、H3を特定する(図10(b)参照)。
また、骨格点設定部306dは、左右のモデル股関節骨格点S1、S2、左右のモデル肩骨格点S3、S4、モデル肩中央骨格点S5、左右のモデル肘骨格点S6、S8、左右のモデル手首骨格点S7、S9、左右のモデル膝骨格点S10、S12、左右のモデル足首骨格点S11、S13並びにモデル頭頂骨格点S14の設定手法と同様の処理をマスク画像P2に対して行って、当該マスク画像P2の被写体領域2A内で、左右の被写体股関節骨格点I1、I2、左右の被写体肩骨格点I3、I4、被写体肩中央骨格点I5、左右の被写体肘骨格点I6、I8、左右の被写体手首骨格点I7、I9、左右の被写体膝骨格点I10、I12、左右の被写体足首骨格点I11、I13並びに被写体頭頂骨格点I14を設定する。
【0102】
また、領域特定部306eは、上記の基準画像P1のモデル領域1Aに対する処理と同様の処理をマスク画像P2に対して行って、当該マスク画像P2の被写体領域2A内で、左右の被写体腕領域D1、D2、左右の被写体脚領域D3、D4、被写体体領域D5並びに各領域の太さを特定する(図10(b)参照)。
【0103】
<基準点位置特定処理>
以下に、動画処理部306による基準点位置特定処理について、図11、図12を参照して詳細に説明する。
図11は、動画生成処理における基準点位置特定処理に係る動作の一例を示すフローチャートである。
【0104】
図11に示すように、動画処理部306の基準点位置特定部306fは、複数の動き基準点Q、…の中で、何れか一の動き基準点Q(例えば、左手首動き基準点Q1)を指定した後(ステップS301)、モデル領域1Aについて領域特定部306eにより特定された左右のモデル腕領域B1、B2、左右のモデル脚領域B3、B4、モデル体領域B5の中で、処理対象となる動き基準点Qが含まれる部位の領域B(例えば、左モデル腕領域B1等)を特定する(ステップS302)。
なお、ステップS302における領域Bの特定は、第1及び第2モデル骨格点「KP1」、「KP2」の特定後に行われても良い。この場合には、当該第1及び第2モデル骨格点「KP1」、「KP2」が含まれる部位の領域B(即ち、処理対象となる動き基準点Q、第1及び第2モデル骨格点「KP1」、「KP2」が含まれる部位の領域B)を特定しても良い。
【0105】
次に、基準点位置特定部306fは、骨格点設定部306dにより設定された複数のモデル骨格点S、…の中で、処理対象の動き基準点Qと最も近い位置に存する第1モデル骨格点「KP1」を特定する(ステップS303)。そして、基準点位置特定部306fは、特定された第1モデル骨格点に近い位置に存する二つのモデル骨格点S、Sを候補骨格点「KP2_1」、「KP2_2」として特定する(ステップS304)。
【0106】
続けて、基準点位置特定部306fは、第1モデル骨格点「KP1」を始点とし、各候補骨格点「KP2_1」、「KP2_2」及び処理対象の動き基準点Qの各々を終点とするベクトル各「KP2_1-KP1」、「KP2_2-KP1」、「Q-KP1」を生成する(ステップS305)。そして、基準点位置特定部306fは、各候補骨格点「KP2_1」、「KP2_2」に向かう各ベクトルと処理対象の動き基準点Qに向かうベクトルの内積「IP1」、「IP2」を所定の演算式に従ってそれぞれ算出する(ステップS306)。
【0107】
次に、基準点位置特定部306fは、二つの内積「IP1」、「IP2」が共に「0」以下であるか否かを判定する(ステップS307)。
ここで、「0」以下であると判定されると(ステップS307;YES)、基準点位置特定部306fは、二つの候補骨格点「KP2_1」、「KP2_2」の中で、動き基準点Qに近い方の候補骨格点を第2モデル骨格点「KP2」として特定する(ステップS308)。
一方、ステップS307にて、「0」以下でないと判定されると(ステップS307;NO)、基準点位置特定部306fは、内積「IP1」のみが「0」よりも大きいか否かを判定する(ステップS309)。
【0108】
ステップS309にて、内積「IP1」のみが「0」よりも大きいと判定されると(ステップS309;YES)、基準点位置特定部306fは、内積「IP1」に係る候補骨格点「KP2_1」を第2モデル骨格点「KP2」として特定する(ステップS310)。
一方、S309にて、内積「IP1」のみが「0」よりも大きくないと判定されると(ステップS309;NO)、基準点位置特定部306fは、内積「IP2」に係る候補骨格点「KP2_2」を第2モデル骨格点「KP2」として特定する(ステップS311)。
【0109】
その後、基準点位置特定部306fは、動き基準点Qに対する位置情報として、第1比率及び第2比率を特定する(ステップS312;図12参照)。
具体的には、基準点位置特定部306fは、第1モデル骨格点「KP1」と第2モデル骨格点「KP1」とを結ぶ第1線分「L1」と、当該第1線分「L1」に対して直交し、動き基準点Qを通る直線との交点「CP1」の位置を特定する。そして、基準点位置特定部306fは、第1線分「L1」の長さを「1」として、第1モデル骨格点「KP1」及び第2モデル骨格点「KP2」の各々から交点「CP1」までの距離の比率を第1比率として特定する。
また、基準点位置特定部306fは、線分「L1」に対して直交し、且つ、第1モデル骨格点「KP1」から動き基準点Q側に延在する線分であって、領域特定部306eにより特定された領域の長さの半分の長さの第2線分「L2」を特定する。続けて、基準点位置特定部306fは、第2線分「L2」と、当該第2線分「L2」に対して直交し、動き基準点Qを通る直線との交点「CP2」の位置を特定する。そして、基準点位置特定部306fは、第2線分「L2」の長さを「1」として、第1モデル骨格点「KP1」及び第2線分「L2」の端部「L2a」の各々から交点「CP2」までの距離の比率を第2比率として特定する。
【0110】
次に、基準点位置特定部306fは、全ての動き基準点Qについて位置情報を特定する処理を行ったか否かを判定する(ステップS313)。
ここで、全ての動き基準点Qについて位置情報を特定していないと判定されると(ステップS313;NO)、基準点位置特定部306fは、次の処理対象として、複数の動き基準点Q、…の中で、未だ指定されていない動き基準点Q(例えば、右手首動き基準点Q2等)を指定した後(ステップS314)、処理をステップS302に移行する。
その後、動画処理部306は、ステップS302以降の処理を、ステップS313にて全ての動き基準点Qについて位置情報を特定したと判定(ステップS313;YES)されるまで、逐次繰り返し実行する。これにより、複数の動き基準点Q、…の各々について位置情報(第1比率及び第2比率)が特定される。
【0111】
そして、ステップS313にて、全ての動き基準点Qについて位置情報を特定したと判定されると(ステップS313;YES)、動画処理部306は、当該基準点位置特定処理を終了する。
【0112】
<制御点位置特定処理>
以下に、動画処理部306による制御点位置特定処理について、図13、図14を参照して詳細に説明する。
図13は、動画生成処理における制御点位置特定処理に係る動作の一例を示すフローチャートである。
【0113】
図13に示すように、動画処理部306の制御点設定部306gは、複数の動き基準点Q、…の中で、何れか一の動き基準点Q(例えば、左手首動き基準点Q1)を指定した後(ステップS401)、モデル領域1Aについて領域特定部306eにより特定された左右のモデル腕領域B1、B2、左右のモデル脚領域B3、B4、モデル体領域B5の中で、処理対象となる動き基準点Qが含まれる部位の領域B(例えば、左モデル腕領域B1等)を特定する(ステップS402)。
【0114】
次に、制御点設定部306gは、被写体領域2Aについて領域特定部306eにより特定された左右の被写体腕領域D1、D2、左右の被写体脚領域D3、D4、被写体体領域D5の中で、処理対象となる動き基準点Qが含まれる部位の領域B(例えば、左モデル腕領域B1等)に対応する対応領域D(例えば、左被写体腕領域D1等)を特定する(ステップS403)。
【0115】
次に、制御点設定部306gは、骨格点設定部306dにより被写体領域2A内で設定された複数の被写体骨格点I、…のうち、処理対象となる動き基準点Qに対して基準点位置特定部306fにより特定された第1及び第2モデル骨格点「KP1」、「KP2」に対応する二つの被写体骨格点(例えば、第1及び第2の被写体骨格点)I、Iを特定する(ステップS404)。続けて、制御点設定部306gは、動き基準点Qに対する隣合う二つのモデル骨格点S、Sの相対的な位置関係並びに当該二つのモデル骨格点S、Sが含まれる部位の領域Bの輪郭部分の相対的な位置関係(例えば、第1比率及び第2比率)を、被写体領域2A内で特定された二つの被写体骨格点I、I及び当該二つの被写体骨格点I、Iが含まれる対応領域Dの輪郭部分に対して反映して、当該対応領域D内で動き制御点J(例えば、左手首動き制御点J1等)の位置を特定する(ステップS405;図14参照)。
【0116】
次に、制御点設定部306gは、全ての動き基準点Qについて動き制御点Jの位置を特定する処理を行ったか否かを判定する(ステップS406)。
ここで、全ての動き制御点Jの位置を特定していないと判定されると(ステップS406;NO)、制御点設定部306gは、次の処理対象として、複数の動き基準点Q、…の中で、未だ指定されていない動き基準点Q(例えば、右手首動き基準点Q2等)を指定した後(ステップS407)、処理をステップS402に移行する。
その後、動画処理部306は、ステップS402以降の処理を、ステップS406にて全ての動き制御点Jの位置を特定したと判定(ステップS406;YES)されるまで、逐次繰り返し実行する。これにより、複数の動き基準点Q、…の各々について対応する動き制御点Jの位置が特定される。
【0117】
そして、ステップS406にて、全ての動き制御点Jの位置を特定したと判定されると(ステップS406;YES)、動画処理部306は、当該制御点位置特定処理を終了する。
【0118】
以上のように、本実施形態の動画生成システム100によれば、被写体切り抜き画像の被写体の骨格に係る被写体骨格情報及び基準画像P1の動体モデルが含まれるモデル領域1A内における複数の動き基準点Q、…の各々の位置に係る位置情報に基づいて、被写体領域2A内で複数の動き基準点Q、…の各々に対応する各位置に当該被写体領域2Aの動きの制御に係る動き制御点Jを複数設定するので、モデル領域1A内における各動き基準点Qの位置及び被写体切り抜き画像の被写体の骨格を考慮して、被写体領域2A内の適正な位置に複数の動き制御点J、…を自動的に設定することができ、これにより、動き制御点Jの設定を簡便に、且つ、適正に行うことができる。この結果、ユーザ所望の動きを表現した複数のフレーム画像からなる動画像の生成を適正に行うことができる。
【0119】
また、複数の動き基準点Q、…の各々に対する、基準画像P1のモデル領域1A内で設定された動体モデルの骨格と関連付けられた複数のモデル骨格点S、…の相対的な位置関係に係る情報を含む位置情報、特に、各動き基準点Qに対する当該動き基準点Qを所定方向に挟むように設定された隣合う二つのモデル骨格点S、Sの相対的な位置関係に係る情報を含む位置情報を特定するので、各動き基準点Qに対する複数のモデル骨格点S、…の相対的な位置関係を考慮して、被写体領域2A内で複数の動き制御点J、…を適正な位置に設定することができる。
さらに、各動き基準点Qに対する、モデル領域1Aにおける二つのモデル骨格点S、Sが含まれる部位の輪郭部分の相対的な位置関係に係る情報を含む位置情報を特定するので、各動き基準点Qに対する二つのモデル骨格点S、Sが含まれる部位の輪郭部分の相対的な位置関係を考慮して、被写体領域2A内で複数の動き制御点J、…を適正な位置に設定することができる。
【0120】
また、モデル領域1Aの輪郭部分であって人体を構成する複数の部位どうしが連結された部分にて特定されたモデル骨格基準点Rに基づいて、基準画像P1のモデル領域1A内で複数のモデル骨格点S、…を設定するので、人体を構成する複数の部位や当該部位どうしの連結性を考慮して、モデル領域1A内で複数のモデル骨格点S、…を適正な位置に設定することができる。
【0121】
また、複数の動き基準点Q、…の各々に対する、複数のモデル骨格点S、…の相対的な位置関係に係る情報及び被写体切り抜き画像の被写体領域内で設定された被写体の骨格と関連付けられた被写体骨格点Iに基づいて、当該被写体領域2A内で複数の動き制御点J、…を設定するので、各動き基準点Qに対する複数のモデル骨格点S、…の相対的な位置関係及び被写体領域2A内で設定された複数の被写体骨格点I、…の配置を考慮して、被写体領域2A内で複数の動き制御点J、…を適正な位置に設定することができる。
特に、被写体領域2Aの輪郭部分であって人体を構成する複数の部位どうしが連結された部分にて特定された被写体骨格基準点Hに基づいて、マスク画像P2の被写体領域2A内で複数の被写体骨格点I、…を設定するので、人体を構成する複数の部位や当該部位どうしの連結性を考慮して、被写体領域2A内で複数の被写体骨格点I、…を適正な位置に設定することができる。
また、モデル領域1A内で複数の動き基準点Q、…の各々を所定方向に挟むように設定された隣合う二つのモデル骨格点S、Sに対応する二つの被写体骨格点I、Iを特定し、被写体領域2A内で、各動き基準点Qに対する二つのモデル骨格点S、Sの相対的な位置関係に対応する相対的な位置関係を二つの被写体骨格点I、Iに対して有する位置に各動き制御点Jを設定するので、各動き基準点Qに対する二つのモデル骨格点S、Sの相対的な位置関係を被写体領域2A内で二つの被写体骨格点I、Iに反映させることができ、モデル領域1A内での隣合う二つのモデル骨格点S、Sに対する各動き基準点Qの位置に対応させるように、被写体領域2A内で二つの被写体骨格点I、Iに対して動き制御点Jを設定することができる。
さらに、被写体領域2A内で、隣合う二つのモデル骨格点S、Sが含まれる部位の領域Bに対応する対応領域Dを特定し、対応領域D内で、各動き基準点Qに対する二つのモデル骨格点S、Sが含まれる部位の輪郭部分の相対的な位置関係に対応する相対的な位置関係を当該対応領域Dの輪郭部分に対して有する位置に各動き制御点Jを設定するので、各動き基準点Qに対する二つのモデル骨格点S、Sが含まれる部位の輪郭部分の相対的な位置関係を対応領域Dの輪郭部分に反映させることができ、モデル領域1A内での隣合う二つのモデル骨格点S、Sが含まれる部位の輪郭部分に対する各動き基準点Qの位置に対応させるように、対応領域D内で二つの被写体骨格点I、Iが含まれる部位の輪郭部分に対して動き制御点Jを設定することができる。
【0122】
また、動き情報305aの複数の動き基準点Q、…の動きに基づいて複数の動き制御点J、…を動かし、当該動き制御点Jの動きに従って被写体切り抜き画像の被写体領域を変形させたフレーム画像を複数生成するので、複数の動き制御点J、…の動きに従って被写体切り抜き画像の変形を適正に行うことができる。
【0123】
なお、本発明は、上記実施形態に限定されることなく、本発明の趣旨を逸脱しない範囲において、種々の改良並びに設計の変更を行っても良い。
例えば、上記実施形態にあっては、ユーザによるユーザ端末2の所定操作に基づいて、Webサーバとして機能するサーバ(制御点設定装置)3によって動画像を生成するようにしたが、一例であってこれに限られるものではなく、制御点設定装置の構成は適宜任意に変更可能である。即ち、裏面画像の生成に係る動画処理部306の機能をソフトウェアにより実現される構成として、ユーザ端末2にインストールすることで通信ネットワークNを必要とすることなく、当該ユーザ端末2単体で動画生成処理を行うようにしても良い。
【0124】
また、上記実施形態にあっては、被写体切り抜き画像を処理対象としたが、一例であってこれに限られるものではなく、適宜任意に変更可能であり、例えば、最初から被写体領域のみの画像を用いても良い。
また、上記実施形態の動画生成処理にあっては、基準位置特定処理(図11参照)の前に、被写体画像解析処理を行うようにしたが、これらの処理の順序は一例であってこれに限られるものではなく、逆にしても良いし、同時に行っても良い。
【0125】
また、上記実施形態の動画生成処理にあっては、被写体画像の合成位置やサイズを調整可能に構成されても良い。即ち、ユーザ端末2の中央制御部201は、ユーザによる操作入力部202の所定操作に基づいて、被写体画像の合成位置やサイズの調整指示が入力されたと判定すると、当該調整指示に対応する信号を通信制御部206により所定の通信ネットワークNを介してサーバ3に送信させる。そして、サーバ3の動画処理部306は、通信制御部を介して入力された調整指示に基づいて、被写体画像の合成位置を所望の合成位置に設定したり、当該被写体画像のサイズを所望のサイズに設定するようにしても良い。
【0126】
また、上記実施形態にあっては、ユーザ端末2として、パーソナルコンピュータを例示したが、一例であってこれに限られるものではなく適宜任意に変更可能であり、例えば、携帯電話機等を適用しても良い。
なお、被写体切り抜き画像や動画像のデータには、ユーザによる所定の改変を禁止する制御情報を埋め込むようにしても良い。
【0127】
加えて、上記実施形態にあっては、特定手段、取得手段、制御点設定手段としての機能を、中央制御部301の制御下にて、基準点位置特定部306f、画像取得部306b、制御点設定部306gが駆動することにより実現される構成としたが、これに限られるものではなく、中央制御部301のCPUによって所定のプログラム等が実行されることにより実現される構成としても良い。
即ち、プログラムを記憶するプログラムメモリ(図示略)に、特定処理ルーチン、取得処理ルーチン、制御点設定処理ルーチンを含むプログラムを記憶しておく。そして、特定処理ルーチンにより中央制御部301のCPUを、基準画像P1の動体モデルの骨格に係るモデル骨格情報に基づいて、モデル領域1A内における複数の動き基準点Q、…の各々の位置に係る位置情報を特定する特定手段として機能させるようにしても良い。また、取得処理ルーチンにより中央制御部301のCPUを、被写体領域が含まれる被写体画像を取得する取得手段として機能させるようにしても良い。また、制御点設定処理ルーチンにより中央制御部301のCPUを、取得手段により取得された被写体画像の被写体の骨格に係る被写体骨格情報及び特定手段により特定された位置情報に基づいて、被写体領域内で複数の動き基準点Q、…の各々に対応する各位置に当該被写体領域の動きの制御に係る動き制御点Jを複数設定する制御点設定手段として機能させるようにしても良い。
【0128】
さらに、上記の各処理を実行するためのプログラムを格納したコンピュータ読み取り可能な媒体として、ROMやハードディスク等の他、フラッシュメモリ等の不揮発性メモリ、CD−ROM等の可搬型記録媒体を適用することも可能である。また、プログラムのデータを所定の通信回線を介して提供する媒体としては、キャリアウェーブ(搬送波)も適用される。
【0129】
〔付記〕
本発明のいくつかの実施形態を説明したが、本発明の範囲は、上述の実施の形態に限定するものではなく、特許請求の範囲に記載された発明の範囲とその均等の範囲を含む。
以下に、この出願の願書に最初に添付した特許請求の範囲に記載した発明を付記する。付記に記載した請求項の項番は、この出願の願書に最初に添付した特許請求の範囲の通りである。
<請求項1>
動体モデルの基準画像と対応付けられ、当該基準画像の動体モデルが含まれるモデル領域内に設定された複数の動き基準点の所定空間内での動きを示す動き情報を記憶する記憶手段を備える制御点設定装置を用いた制御点設定方法であって、
前記基準画像の動体モデルの骨格に係るモデル骨格情報に基づいて、前記モデル領域内における前記複数の動き基準点の各々の位置に係る位置情報を特定する特定ステップと、
被写体領域が含まれる被写体画像を取得する取得ステップと、
この取得ステップにて取得された被写体画像の被写体の骨格に係る被写体骨格情報及び前記特定ステップにて特定された前記位置情報に基づいて、前記被写体領域内で前記複数の動き基準点の各々に対応する各位置に当該被写体領域の動きの制御に係る動き制御点を複数設定する制御点設定ステップと、
を含むことを特徴とする制御点設定方法。
<請求項2>
前記モデル骨格情報に基づいて、前記モデル領域内で前記動体モデルの骨格と関連付けられたモデル骨格点を複数設定する骨格点設定ステップを更に含み、
前記位置情報は、前記複数の動き基準点の各々に対する、前記骨格点設定ステップにて設定された前記複数のモデル骨格点の相対的な位置関係に係る情報を含むことを特徴とする請求項1に記載の制御点設定方法。
<請求項3>
前記特定ステップは、更に、
前記複数のモデル骨格点の中で、前記複数の動き基準点の各々を所定方向に挟むように設定された隣合う二つのモデル骨格点を特定し、各動き基準点に対する当該二つのモデル骨格点の相対的な位置関係に係る情報を含む前記位置情報を特定することを特徴とする請求項2に記載の制御点設定方法。
<請求項4>
前記特定ステップは、更に、
前記モデル領域における、前記二つのモデル骨格点が含まれる部位の輪郭部分を特定し、各動き基準点に対する当該輪郭部分の相対的な位置関係に係る情報を含む前記位置情報を特定することを特徴とする請求項3に記載の制御点設定方法。
<請求項5>
前記基準画像は、前記動体モデルとしてのヒトを所定方向から見た状態を表す画像であり、
前記骨格点設定ステップは、
前記モデル領域の輪郭部分であって人体を構成する複数の部位どうしが連結された部分にて骨格基準点を特定し、当該骨格基準点に基づいて前記モデル領域内で前記複数のモデル骨格点を設定することを特徴とする請求項2〜4の何れか一項に記載の制御点設定方法。
<請求項6>
前記骨格点設定ステップは、更に、
前記被写体骨格情報に基づいて、前記被写体領域内で前記被写体の骨格と関連付けられた被写体骨格点を複数設定し、
前記制御点設定ステップは、
前記複数の動き基準点の各々に対する、前記特定ステップにて特定された前記複数のモデル骨格点の相対的な位置関係に係る情報及び前記骨格点設定ステップにて前記被写体領域内で設定された前記複数の被写体骨格点に基づいて、当該被写体領域内で前記複数の動き制御点を設定することを特徴とする請求項2〜5の何れか一項に記載の制御点設定方法。
<請求項7>
前記被写体画像は、前記被写体としてのヒトを所定方向から見た状態を表す画像であり、
前記骨格点設定ステップは、
前記被写体領域の輪郭部分であって人体を構成する複数の部位どうしが連結された部分にて骨格基準点を特定し、当該骨格基準点に基づいて前記被写体領域内で前記複数の被写体骨格点を設定することを特徴とする請求項6に記載の制御点設定方法。
<請求項8>
前記制御点設定ステップは、
前記骨格点設定ステップにて前記被写体領域内で設定された前記複数の被写体骨格点のうち、前記特定ステップにて特定された前記複数の動き基準点の各々を所定方向に挟むように設定された隣合う二つのモデル骨格点に対応する二つの被写体骨格点を特定するステップを含み、
前記被写体領域内で、各動き基準点に対する前記二つのモデル骨格点の相対的な位置関係に対応する相対的な位置関係を前記二つの被写体骨格点に対して有する位置に各動き制御点を設定することを特徴とする請求項6又は7に記載の制御点設定方法。
<請求項9>
前記制御点設定ステップは、
前記被写体領域内で、前記隣合う二つのモデル骨格点が含まれる部位の領域に対応する対応領域を特定するステップを含み、
前記対応領域内で、各動き基準点に対する前記二つのモデル骨格点が含まれる部位の輪郭部分の相対的な位置関係に対応する相対的な位置関係を当該対応領域の輪郭部分に対して有する位置に各動き制御点を設定することを特徴とする請求項8に記載の制御点設定方法。
<請求項10>
前記動き情報の前記複数の動き基準点の動きに基づいて前記複数の動き制御点を動かし、当該動き制御点の動きに従って前記被写体画像の前記被写体領域を変形させたフレーム画像を複数生成する生成ステップを更に含むことを特徴とする請求項1〜9の何れか一項に記載の制御点設定方法。
<請求項11>
前記取得ステップは、背景と被写体とが存在する画像から被写体が含まれる被写体領域を切り抜いた画像を前記被写体画像として取得することを特徴とする請求項1〜10の何れか一項に記載の制御点設定方法。
<請求項12>
動体モデルの基準画像と対応付けられ、当該基準画像の動体モデルが含まれるモデル領域内に設定された複数の動き基準点の所定空間内での動きを示す動き情報を記憶する記憶手段を備える制御点設定装置であって、
前記基準画像の動体モデルの骨格に係るモデル骨格情報に基づいて、前記モデル領域内における前記複数の動き基準点の各々の位置に係る位置情報を特定する特定手段と、
被写体領域が含まれる被写体画像を取得する取得手段と、
この取得手段により取得された被写体画像の被写体の骨格に係る被写体骨格情報及び前記特定手段により特定された前記位置情報に基づいて、前記被写体領域内で前記複数の動き基準点の各々に対応する各位置に当該被写体領域の動きの制御に係る動き制御点を複数設定する制御点設定手段と、
を備えたことを特徴とする制御点設定装置。
<請求項13>
動体モデルの基準画像と対応付けられ、当該基準画像の動体モデルが含まれるモデル領域内に設定された複数の動き基準点の所定空間内での動きを示す動き情報を記憶する記憶手段を備える制御点設定装置のコンピュータを、
前記基準画像の動体モデルの骨格に係るモデル骨格情報に基づいて、前記モデル領域内における前記複数の動き基準点の各々の位置に係る位置情報を特定する特定手段、
被写体領域が含まれる被写体画像を取得する取得手段、
この取得手段により取得された被写体画像の被写体の骨格に係る被写体骨格情報及び前記特定手段により特定された前記位置情報に基づいて、前記被写体領域内で前記複数の動き基準点の各々に対応する各位置に当該被写体領域の動きの制御に係る動き制御点を複数設定する制御点設定手段、
として機能させることを特徴とするプログラム。
【符号の説明】
【0130】
100 動画生成システム
1 撮像装置
2 ユーザ端末
3 サーバ
301 中央制御部
305 記憶部
305a 動き情報
306 動画処理部
306a 第1骨格情報取得部
306b 画像取得部
306c 第2骨格情報取得部
306d 骨格点設定部
306f 基準点位置特定部
306g 制御点設定部
306h フレーム生成部

【特許請求の範囲】
【請求項1】
動体モデルの基準画像と対応付けられ、当該基準画像の動体モデルが含まれるモデル領域内に設定された複数の動き基準点の所定空間内での動きを示す動き情報を記憶する記憶手段を備える制御点設定装置を用いた制御点設定方法であって、
前記基準画像の動体モデルの骨格に係るモデル骨格情報に基づいて、前記モデル領域内における前記複数の動き基準点の各々の位置に係る位置情報を特定する特定ステップと、
被写体領域が含まれる被写体画像を取得する取得ステップと、
この取得ステップにて取得された被写体画像の被写体の骨格に係る被写体骨格情報及び前記特定ステップにて特定された前記位置情報に基づいて、前記被写体領域内で前記複数の動き基準点の各々に対応する各位置に当該被写体領域の動きの制御に係る動き制御点を複数設定する制御点設定ステップと、
を含むことを特徴とする制御点設定方法。
【請求項2】
前記モデル骨格情報に基づいて、前記モデル領域内で前記動体モデルの骨格と関連付けられたモデル骨格点を複数設定する骨格点設定ステップを更に含み、
前記位置情報は、前記複数の動き基準点の各々に対する、前記骨格点設定ステップにて設定された前記複数のモデル骨格点の相対的な位置関係に係る情報を含むことを特徴とする請求項1に記載の制御点設定方法。
【請求項3】
前記特定ステップは、更に、
前記複数のモデル骨格点の中で、前記複数の動き基準点の各々を所定方向に挟むように設定された隣合う二つのモデル骨格点を特定し、各動き基準点に対する当該二つのモデル骨格点の相対的な位置関係に係る情報を含む前記位置情報を特定することを特徴とする請求項2に記載の制御点設定方法。
【請求項4】
前記特定ステップは、更に、
前記モデル領域における、前記二つのモデル骨格点が含まれる部位の輪郭部分を特定し、各動き基準点に対する当該輪郭部分の相対的な位置関係に係る情報を含む前記位置情報を特定することを特徴とする請求項3に記載の制御点設定方法。
【請求項5】
前記基準画像は、前記動体モデルとしてのヒトを所定方向から見た状態を表す画像であり、
前記骨格点設定ステップは、
前記モデル領域の輪郭部分であって人体を構成する複数の部位どうしが連結された部分にて骨格基準点を特定し、当該骨格基準点に基づいて前記モデル領域内で前記複数のモデル骨格点を設定することを特徴とする請求項2〜4の何れか一項に記載の制御点設定方法。
【請求項6】
前記骨格点設定ステップは、更に、
前記被写体骨格情報に基づいて、前記被写体領域内で前記被写体の骨格と関連付けられた被写体骨格点を複数設定し、
前記制御点設定ステップは、
前記複数の動き基準点の各々に対する、前記特定ステップにて特定された前記複数のモデル骨格点の相対的な位置関係に係る情報及び前記骨格点設定ステップにて前記被写体領域内で設定された前記複数の被写体骨格点に基づいて、当該被写体領域内で前記複数の動き制御点を設定することを特徴とする請求項2〜5の何れか一項に記載の制御点設定方法。
【請求項7】
前記被写体画像は、前記被写体としてのヒトを所定方向から見た状態を表す画像であり、
前記骨格点設定ステップは、
前記被写体領域の輪郭部分であって人体を構成する複数の部位どうしが連結された部分にて骨格基準点を特定し、当該骨格基準点に基づいて前記被写体領域内で前記複数の被写体骨格点を設定することを特徴とする請求項6に記載の制御点設定方法。
【請求項8】
前記制御点設定ステップは、
前記骨格点設定ステップにて前記被写体領域内で設定された前記複数の被写体骨格点のうち、前記特定ステップにて特定された前記複数の動き基準点の各々を所定方向に挟むように設定された隣合う二つのモデル骨格点に対応する二つの被写体骨格点を特定するステップを含み、
前記被写体領域内で、各動き基準点に対する前記二つのモデル骨格点の相対的な位置関係に対応する相対的な位置関係を前記二つの被写体骨格点に対して有する位置に各動き制御点を設定することを特徴とする請求項6又は7に記載の制御点設定方法。
【請求項9】
前記制御点設定ステップは、
前記被写体領域内で、前記隣合う二つのモデル骨格点が含まれる部位の領域に対応する対応領域を特定するステップを含み、
前記対応領域内で、各動き基準点に対する前記二つのモデル骨格点が含まれる部位の輪郭部分の相対的な位置関係に対応する相対的な位置関係を当該対応領域の輪郭部分に対して有する位置に各動き制御点を設定することを特徴とする請求項8に記載の制御点設定方法。
【請求項10】
前記動き情報の前記複数の動き基準点の動きに基づいて前記複数の動き制御点を動かし、当該動き制御点の動きに従って前記被写体画像の前記被写体領域を変形させたフレーム画像を複数生成する生成ステップを更に含むことを特徴とする請求項1〜9の何れか一項に記載の制御点設定方法。
【請求項11】
前記取得ステップは、背景と被写体とが存在する画像から被写体が含まれる被写体領域を切り抜いた画像を前記被写体画像として取得することを特徴とする請求項1〜10の何れか一項に記載の制御点設定方法。
【請求項12】
動体モデルの基準画像と対応付けられ、当該基準画像の動体モデルが含まれるモデル領域内に設定された複数の動き基準点の所定空間内での動きを示す動き情報を記憶する記憶手段を備える制御点設定装置であって、
前記基準画像の動体モデルの骨格に係るモデル骨格情報に基づいて、前記モデル領域内における前記複数の動き基準点の各々の位置に係る位置情報を特定する特定手段と、
被写体領域が含まれる被写体画像を取得する取得手段と、
この取得手段により取得された被写体画像の被写体の骨格に係る被写体骨格情報及び前記特定手段により特定された前記位置情報に基づいて、前記被写体領域内で前記複数の動き基準点の各々に対応する各位置に当該被写体領域の動きの制御に係る動き制御点を複数設定する制御点設定手段と、
を備えたことを特徴とする制御点設定装置。
【請求項13】
動体モデルの基準画像と対応付けられ、当該基準画像の動体モデルが含まれるモデル領域内に設定された複数の動き基準点の所定空間内での動きを示す動き情報を記憶する記憶手段を備える制御点設定装置のコンピュータを、
前記基準画像の動体モデルの骨格に係るモデル骨格情報に基づいて、前記モデル領域内における前記複数の動き基準点の各々の位置に係る位置情報を特定する特定手段、
被写体領域が含まれる被写体画像を取得する取得手段、
この取得手段により取得された被写体画像の被写体の骨格に係る被写体骨格情報及び前記特定手段により特定された前記位置情報に基づいて、前記被写体領域内で前記複数の動き基準点の各々に対応する各位置に当該被写体領域の動きの制御に係る動き制御点を複数設定する制御点設定手段、
として機能させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate