撮影装置及びそのプログラム
【課題】 被写体が所望の状態で滑らかに動くような、実写アニメーションを容易に作成できるように支援する撮影装置及びそのプログラムを実現する。
【解決手段】 パラメータ登録モードに設定されると、まず、3次元のx位置パラメータを選択し(S1)、各フレームにおける該選択された位置パラメータとの関係を示す位置グラフを表示させ(S2)、位置パラメータの入力が完了したか否かを判断する(S3)。このとき、ユーザは撮影したい被写体が所望の動きとなるように、概略的に任意のフレームの位置パラメータの値を入力する。そして、位置パラメータの入力が完了したと判断すると、入力されたフレームの位置パラメータの値に基づいてスプライン関数により近似線を求め、該求めた近似線に基づいて各フレームの一パラメータの値を登録する。この登録動作を、3次元のy位置パラメータ、z位置パラメータに行なう。
【解決手段】 パラメータ登録モードに設定されると、まず、3次元のx位置パラメータを選択し(S1)、各フレームにおける該選択された位置パラメータとの関係を示す位置グラフを表示させ(S2)、位置パラメータの入力が完了したか否かを判断する(S3)。このとき、ユーザは撮影したい被写体が所望の動きとなるように、概略的に任意のフレームの位置パラメータの値を入力する。そして、位置パラメータの入力が完了したと判断すると、入力されたフレームの位置パラメータの値に基づいてスプライン関数により近似線を求め、該求めた近似線に基づいて各フレームの一パラメータの値を登録する。この登録動作を、3次元のy位置パラメータ、z位置パラメータに行なう。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、撮影装置及びそのプログラムに係り、詳しくは、実写によるアニメーション動画の作成を支援する機能有した撮影装置及びそのプログラムに関する。
【背景技術】
【0002】
アニメーション動画の作成を支援するカメラであって、アニメーション動画を構成する各コマ(フレーム)の撮影時に、このアニメーション動画における動く物体の撮影フレーム内での位置を案内表示する技術が知られている(特許文献1)。
【0003】
【特許文献1】公開特許公報 特開2003−37808
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1の技術によれば、ユーザが指定した物体の位置や直前のコマ(フレーム)における物体の位置を案内表示するだけなので、複数のコマ(フレーム)に渡って物体が所望の状態で滑らかに動くように、物体を設置して撮影を行うことはできなかった。
【0005】
そこで本発明は、かかる従来の問題点に鑑みてなされたものであり、被写体が滑らかに動くような実写アニメーション動画を容易に作成できるように支援する撮影装置及びそのプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
上記目的達成のため、請求項1記載の発明による撮影装置は、撮影された複数の画像データを用いて所定の被写体の動きを表現した実写アニメーション動画の作成を支援する撮影手段と電子ファインダを備えた撮影装置であって、
前記実写アニメーション動画を構成する各フレームに対応させて、前記所定の被写体の状態を示したパラメータを生成する生成手段と、
前記生成手段により生成されたパラメータに基づいて、各フレームの撮影の際に、撮影するフレームに対応する前記被写体の撮影予定状態を前記電子ファインダに案内表示させる案内表示制御手段と、
前記案内表示制御手段による案内表示に対応して前記撮影手段により撮影された各フレームの画像データに基づいて動画データを生成する動画生成手段と、
を備えたことを特徴とする。
【0007】
また、例えば、請求項2に記載されているように、前記実写アニメーション動画の背景部分に対応した3次元空間内での前記所定の被写体の動きを特定する特定手段と、
前記生成手段は、
前記実写アニメーション動画における各フレームが再生されるタイミング情報に従って、前記特定手段によって特定された前記3次元空間内での前記所定の被写体の動きを、各フレームに対応した前記所定の被写体の状態に変換することにより、前記パラメータを生成するようにしてもよい。
【0008】
また、例えば、請求項3に記載されているように、前記アニメーション動画を構成する各フレームのうち、一部のフレームに写る前記所定の被写体の状態を示すパラメータをユーザが入力するための入力手段を備え、
前記特定手段は、
前記入力手段により入力された一部のフレームに写る前記所定の被写体の状態を示すパラメータに基づいて、前記実写アニメーション動画の背景部分に対応した3次元空間内での前記所定の被写体の動きを特定するようにしてもよい。
【0009】
また、例えば、請求項4に記載されているように、前記特定手段は、
前記入力手段により入力された一部のフレームに写る前記所定の被写体の状態を示すパラメータに基づいて、前記所定の被写体の動きが滑らかになるように、前記実写アニメーション動画の背景部分に対応した3次元空間内での前記所定の被写体の動きを特定するようにしてもよい。
【0010】
また、例えば、請求項5に記載されているように、前記特定手段は、
前記所定の被写体の動きが滑らかになるように、前記入力手段により入力された一部のフレームに写る前記所定の被写体の状態を示すパラメータを修正して、前記実写アニメーション動画の背景部分に対応した3次元空間内での前記所定の被写体の動きを特定するようにしてもよい。
【0011】
また、例えば、請求項6に記載されているように、実際に撮影された画像データに基づいて、実際に撮影されたフレームに対応する前記所定の被写体の撮影状態を示すパラメータを検出する検出手段を備え、
前記特定手段は、
前記検出手段により検出されたパラメータに基づいて、前記実写アニメーション動画の背景部分に対応した3次元空間内での前記所定の被写体の動きを新たに特定するようにしてもよい。
【0012】
また、例えば、請求項7に記載されているように、前記特定手段は、
前記検出手段により検出された、少なくともパラメータを生成する現フレームの直前の2フレームの状態に基づいて、前記所定の被写体の移動の方向と速度を特定し、
前記生成手段は、
該検出された移動の方向及び速度に基づいて、該現フレームのパラメータを生成するようにしてもよい。
【0013】
また、例えば、請求項8に記載されているように、前記特定手段は、
前記検出手段により検出された、少なくともパラメータを生成する現フレームの直前の3フレームの状態に基づいて、前記被写体の移動の方向と加速度を特定し、
前記生成手段は、
該検出された移動の方向及び加速度に基づいて、該現フレームのパラメータを生成するようにしてもよい。
【0014】
また、例えば、請求項9に記載されているように、前記特定手段は、
前記検出手段により検出された、少なくともパラメータを生成する現フレームの直前の2フレームの状態に基づいて、前記所定の被写体の向きが変化する方向と速度を特定し、
前記生成手段は、
該検出された向きが変化する方向及び速度に基づいて、該現フレームのパラメータを生成するようにしてもよい。
【0015】
また、例えば、請求項10に記載されているように、前記アニメーション動画を構成する各フレームのうち、一部のフレームに写る前記所定の被写体の状態を示すパラメータをユーザが入力するための入力手段を備え、
前記生成手段は、
前記入力手段により入力された一部のフレームに対応するパラメータに基づいて、該被写体の動きが滑らかになるように、この一部のフレーム以外の各フレームに対応する該被写体の状態を示したパラメータを生成するようにしてもよい。
【0016】
また、例えば、請求項11に記載されているように、前記生成手段は、
前記所定の被写体の動きが滑らかになるように、前記入力手段により入力されたパラメータを修正して、各フレームに写る該被写体の状態を示したパラメータを生成するようにしてもよい。
【0017】
また、例えば、請求項12に記載されているように、実際に撮影された画像データに基づいて、実際に撮影されたフレームに対応する前記所定の被写体の撮影状態を検出する検出手段と、
前記検出手段により検出された前記所定の被写体の撮影状態に基づいて、前記生成手段により生成されたパラメータのうち、まだ撮影されていないフレーム部分のパラメータを修正する修正手段と、
を備えるようにしてもよい。
【0018】
また、例えば、請求項13に記載されているように、実際に撮影された各フレームの画像データに基づいて、実際に撮影された前記所定の被写体の撮影状態を検出する検出手段を備え、
前記生成手段は、
前記検出手段により検出された各フレームの前記所定の被写体の撮影状態に基づいて、まだ生成していないフレーム部分のパラメータを生成するようにしてもよい。
【0019】
また、例えば、請求項14に記載されているように、前記生成手段は、
前記検出手段により検出された、少なくともパラメータを生成する現フレームの直前の2フレームの状態に基づいて、前記所定の被写体の移動の方向と、速度を検出し、該検出された移動の方向及び速度に基づいて、該現フレームのパラメータを生成するようにしてもよい。
【0020】
また、例えば、請求項15に記載されているように、前記生成手段は、
前記検出手段により検出された、少なくともパラメータを生成する現フレームの直前の3フレームの状態に基づいて、前記所定の被写体の移動の方向と、加速度を検出し、該検出された移動の方向及び加速度に基づいて、該現フレームのパラメータを生成するようにしてもよい。
【0021】
また、例えば、請求項16に記載されているように、前記生成手段は、
前記検出手段により検出された、少なくともパラメータを生成する現フレームの直前の2フレームの状態に基づいて、前記所定の被写体の向きが変化する方向と、速度を検出し、該検出された向きが変化する方向及び速度に基づいて、該現フレームのパラメータを生成するようにしてもよい。
【0022】
また、例えば、請求項17に記載されているように、前記検出手段は、
前記被写体の特徴点を検出することにより、被写体の撮影状態を検出するようにしてもよい。
【0023】
また、例えば、請求項18に記載されているように、前記検出手段は、
前記被写体の複数の特徴点を検出し、該検出された複数の特徴点の中心を被写体の位置として検出するようにしてもよい。
【0024】
また、例えば、請求項19に記載されているように、記検出手段は、
前記被写体の複数の特徴点を検出し、該検出された複数の特徴点の相対的な位置関係に基づいて前記被写体の向きを検出するようにしてもよい。
【0025】
上記目的達成のため、請求項20記載の発明によるプログラムは、撮影された複数の画像データを用いて所定の被写体の動きを表現した実写アニメーション動画の作成を支援する撮影手段と電子ファインダを備えた撮影装置を実行させるためのプログラムであって、
前記実写アニメーション動画を構成する各フレームに対応させて前記所定の被写体の状態を示したパラメータを生成する生成処理と、
前記生成処理により生成されたパラメータに基づいて、各フレームの撮影の際に、撮影するフレームに対応する前記被写体の撮影予定状態を前記電子ファインダに案内表示させる案内表示制御処理と、
前記案内表示制御処理による案内表示に対応して前記撮影手段により撮影素子に撮影された各フレームの画像データに基づいて動画データを生成する動画生成処理と、
を含むことを特徴とする。
【発明の効果】
【0026】
本願発明によれば、被写体が滑らかに動くような実写アニメーション動画を容易に作成することができる。
【発明を実施するための最良の形態】
【0027】
以下、本実施の形態について、本発明の撮影装置をデジタルカメラに適用した一例として図面を参照して詳細に説明する。
[実施の形態]
A.デジタルカメラの構成
図1は、本発明の撮影装置を実現するデジタルカメラ1の電気的な概略構成を示すブロック図である。
デジタルカメラ1は、撮影レンズ2、レンズ駆動ブロック3、絞り4、CCD5、ドライバ6、TG(timing generator)7、ユニット回路8、画像生成部9、CPU10、キー入力部11、メモリ12、DRAM13、フラッシュメモリ14、画像表示部15、バス16を備えている。
【0028】
撮影レンズ2は、図示しない複数のレンズ群から構成されるフォーカスレンズ、ズームレンズ等を含む。そして、撮影レンズ2にはレンズ駆動ブロック3が接続されている。レンズ駆動ブロック3は、フォーカスレンズ、ズームレンズをそれぞれ光軸方向に沿って駆動させるフォーカスモータ、ズームモータと、CPU10から送られてくる制御信号にしたがって、フォーカスモータ、ズームモータを駆動させるフォーカスモータドライバ、ズームモータドライバから構成されている(図示略)。
【0029】
絞り4は、図示しない駆動回路を含み、駆動回路はCPU10から送られてくる制御信号にしたがって絞り4を動作させる。
絞り4とは、撮影レンズ2から入ってくる光の量を制御する機構のことをいう。
【0030】
CCD5は、ドライバ6によって駆動され、一定周期毎に被写体像のRGB値の各色の光の強さを光電変換して撮影信号としてユニット回路8に出力する。このドライバ6、ユニット回路8の動作タイミングはTG7を介してCPU10により制御される。なお、CCD5はベイヤー配列の色フィルターを有しており、電子シャッタとしての機能も有する。この電子シャッタのシャッタ速度は、ドライバ6、TG7を介してCPU10によって制御される。
【0031】
ユニット回路8には、TG7が接続されており、CCD5から出力される撮影信号を相関二重サンプリングして保持するCDS(Correlated Double Sampling)回路、そのサンプリング後の撮影信号の自動利得調整を行なうAGC(Automatic Gain Control)回路、その自動利得調整後のアナログの撮影信号をデジタル信号に変換するA/D変換器から構成されており、CCD5から出力された撮影信号はユニット回路8を経てデジタル信号として画像生成部9に送られる。
【0032】
画像生成部9は、ユニット回路8から送られてきた画像データに対してγ補正処理、ホワイトバランス処理などの処理を施すとともに、輝度色差信号(YUVデータ)を生成し、該生成された輝度色差信号の画像データはDRAM13(バッファメモリ)に記憶される。つまり、画像生成部9は、CCD5から出力された画像データに対して画像処理を施す。
【0033】
CPU10は、CCD5への撮影制御、フラッシュメモリ14への記録処理、画像データの表示処理を行う機能を有するとともに、デジタルカメラ1の各部を制御するワンチップマイコンである。また、CPU10はクロック回路を含み、タイマーとしての機能も有する。
【0034】
特に、CPU10は、実写アニメーション動画の背景部分に対応した3次元空間内での所定の被写体(動く物体)の動きをユーザーが入力指定する機能、ユーザーが入力指定した被写体の動きを、各フレームに対応する被写体の状態に変換する機能、フレームの各位置パラメータの値に基づいて該フレームの被写体の撮影予定位置を画像表示部15に透過表示させる機能、該透過表示に対応して撮影された各フレームの画像データに基づいて動画データを生成する機能を有する。
【0035】
上記入力指定機能および変換機能においては、複数フレームを通しての物体の動きをユーザーが容易に入力指定でき、且つ、より自然で滑らかな物体の動きとなるように、補間や補正を行う機能も併せ持つ。このような自然で滑らかなデータを容易に入力できるようにするために補間や補正を行う具体的な方法については、様々な方法が考えられるが、本実施の形態では、実写アニメーション動画を構成する複数のフレームのうち、一部のフレームに対応させて、被写体の状態を示したパラメータをユーザーが入力すると、このユーザによって入力された任意のフレームのパラメータの値に基づいて、その他のフレームのパラメータの値をスプライン関数によって算出することで、補間や補正を行うものとする。
【0036】
キー入力部11は、シャッタボタン、モード切替キー、十字キー、SETキー等の複数の操作キーを含み、ユーザのキー操作に応じた操作信号をCPU10に出力する。
【0037】
メモリ12には、CPU10が各部を制御するのに必要な制御プログラム、及び必要なデータが記録されており、CPU10は、該プログラムに従い動作する。なお、このメモリ12は書き換え可能な不揮発性メモリである。
また、メモリ12には、動画データを構成する各フレームに写る被写体の位置パラメータを記録させておく位置パラメータテーブルを備えている。
【0038】
DRAM13は、CCD5によって撮影された後、CPU10に送られてきた画像データを一時記憶するバッファメモリとして使用されるとともに、CPU10のワーキングメモリとして使用される。
フラッシュメモリ14は、画像データを保存する記録媒体である。
【0039】
画像表示部15は、カラーLCDとその駆動回路を含み、撮影待機状態にあるときには、CCD5によって撮影された被写体をスルー画像として表示し、記録画像の再生時には、フラッシュメモリ14から読み出され、伸張された記録画像を表示させる。
【0040】
B.デジタルカメラ1の動作について
実施の形態におけるデジタルカメラ1の動作をパラメータ登録と、アニメーション動画撮影に分けて説明する。
このパラメータ登録とは、簡単に説明すると、実写アニメーション動画の背景部分に対応した3次元空間内での所定の被写体(動く物体)の動きを登録するものであり、アニメーション動画撮影により撮影される各フレームに対応する被写体の位置や向きなどの状態を示す(位置)パラメータによって被写体の動きを登録することをいい、アニメーション動画撮影とは、実時間で動画を撮影するのではなく、つまり、被写体をリアルタイムで順次撮影していくのではなく、各フレーム毎に同一の被写体を別々に静止画撮影をしていき、該静止画撮影により得られた画像データに基づいて動画データを生成するというものである。
【0041】
B−1.パラメータ登録の動作について
まず、パラメータ登録の動作を図2のフローチャートに従って説明する。
ユーザのキー入力部11のモード切替キーの操作によりパラメータ登録モードに設定されると、CPU10は、1つ目の位置パラメータを選択する(ステップS1)。ここで、被写体の位置は、(x,y,z)の3次元で示され、位置パラメータは、x方向の位置を示すx位置パラメータと、y方向の位置をy位置パラメータと、z方向の位置を示すz位置パラメータとで構成される。ここでは、位置パラメータが選択される順番は、x、y、zの順とするので、ステップS1では1目の位置パラメータとしてx位置パラメータが選択される。
【0042】
図3(A)は、x、y、zで表わされる3次元の様子の一例を示すものである。
図3(A)を見るとわかるように、ある位置を(x,y,z)=(0,0,0)とし、該位置からx軸、y軸、z軸が伸びている。ここで、z軸のマイナス方向がないのは、CCD5の撮影面がx軸とy軸とで形成される平面上にあり、且つ、z軸のプラス方向を向いていることを前提としているからであり、z軸のマイナス方向は撮影されないからである。また、CCD5の撮影面の中心を、(x、y、z)=(0,0,0)とする。なお、x軸のプラス方向を右方向、マイナス方向を左方向、y軸のプラス方向を上方向、マイナス方向を下方向とする。
【0043】
次いで、CPU10は、各フレームにおける現在選択されている位置パラメータとの関係を示す位置グラフを表示させる(ステップS2)。
図3(B)は、表示された位置グラフの様子の一例を示す図である。
図3(B)を見るとわかるように横軸が、1枚目、2枚目等のフレームの枚数を示しており、縦軸が位置パラメータの値を示している。ここでは、x位置パラメータが選択されているので、縦軸はx位置パラメータの値を示している。
【0044】
そして、CPU10は、ユーザによって該選択されている位置パラメータの入力が完了したか否かを判断する(ステップS3)。この判断は、SETキーの操作に対応する操作信号がキー入力部11から送られてきたか否かにより判断する。
【0045】
ここで、ユーザはキー入力部11を操作することにより任意にあるフレームを選択し、該選択したフレームに写る被写体の位置を示す位置パラメータの値を入力することができる。このとき、入力された位置パラメータの値は該表示されている関係グラフに表示される。また、各フレーム毎に位置パラメータの値を入力する必要はなく、10枚おき、100枚おきという具合に位置パラメータの値を入力すればよい。つまり、撮影したい被写体が所望の動きとなるように、概略的に現在選択されている位置パラメータの値を決めればよい。このとき、最初のフレーム(1枚目のフレーム)の位置パラメータと、最後のフレーム位置パラメータを必ず入力するようにさせてもよい。この最後のフレームとは、ユーザが撮影したい動画の最後のフレームのことをいい、たとえば、1000枚のフレームを撮影したい場合は、最後のフレームは1000枚ということになる。このようにすれば、位置パラメータの登録と同時に動画に含まれる撮影予定のフレーム数を予め指定することができる。
【0046】
ステップS3で、現在選択されている位置パラメータの入力が完了したと判断すると、CPU10は、該入力された位置パラメータの値に基づいてスプライン関数により近似線を求める(ステップS4)。このスプライン関数により位置パラメータが滑らかになるように各フレームの位置パラメータの値が求められる。つまり、被写体の動きが滑らかになるように各フレームの位置パラメータの値が求められる。この求められた近似線は関係グラフ上に表示される。
【0047】
なお、このとき、ユーザによって入力されたフレームの位置パラメータの値を変えないようにスプライン関数により各フレームの位置パラメータの値を求めるようにしてもよい。また、ユーザによって入力されたフレームの位置パラメータの値によって、各フレームの位置パラメータの値が滑らかにならない場合は、ユーザによって入力されたフレームの位置パラメータの値を変える(修正する)ようにしてもよい。つまり、ユーザによって入力されたフレームの位置パラメータの値は絶対的なものではなく、該入力された位置パラメータの値を目安としてスプライン関数により近似線を求める。
【0048】
ここで、図4(A)は、x位置パラメータの入力が完了したときの、入力されたx位置パラメータの様子の一例を示す図であり、図4(B)は、該入力された位置パラメータに基づいてスプライン関数により求められた近似線が表示されたときの様子の一例を示す図である。ここでは、最後のフレームはn枚目のフレームとする。
図4を示すように、ユーザによって概略的に入力された被写体の位置パラメータに基づいて近似線が求められ、これにより1枚目からn枚目までの各フレームの位置パラメータが定まる。
図4(B)を見るとわかるように、被写体の位置は、中央(x=0)から右側に移動し、その後、左方向、右方向という具合に交互に中央から左右に移動しているのがわかる。
【0049】
次いで、CPU10は、該求められた近似線に基づいて現在選択されている位置パラメータの登録を行うか否かを判断する(ステップS5)。
この判断は、ユーザのSETキーの操作に対応する操作信号がキー入力部11から送られてきた場合は登録すると判断し、キャンセルキーの操作に対応する操作信号が送られてきた場合は登録しないと判断する。
【0050】
ステップS5で、パラメータの登録を行わないと判断するとステップS3に戻り、再びユーザによって位置パラメータの入力が完了したか否かを判断する。この表示されている近似線が自分が所望する被写体の動きでない場合は、再び位置パラメータを再入力することにより所望する被写体の動きに変更することができる。
【0051】
一方、ステップS5で、パラメータの登録を行うと判断すると、CPU10は、該求められた近似線に基づいて、現在選択されている位置パラメータを登録する(ステップS6)。具体的に説明すると、該近似線に基づいて、各フレームの被写体の予定位置となる現在選択されている位置パラメータの値を登録することになる。この登録される値は、メモリ12の位置パラメータテーブルに記録されることになる。
【0052】
そして、CPU10は、すべての位置パラメータを選択したか否かを判断し(ステップS7)、すべての位置パラメータを選択していないと判断すると、次のパラメータを選択して(ステップS8)、ステップS2に戻る。位置パラメータは、x、y、z順に選択されるので、現在x位置パラメータを選択している場合はステップS8でy位置パラメータが選択され、現在y位置パラメータが選択されている場合はz位置パラメータが選択されることになる。
【0053】
図5(A)は、登録されるy位置パラメータの元となる近似線の様子の一例を示すものであり、図5(B)は、登録されるz位置パラメータの元となる近似線の様子の一例を示すものである。
図5(A)を見るとわかるように、被写体の位置の高さは変わらず、CCD5の中央より下の位置であることがわかる。また、図5(B)を見るとわかるように、後に撮影されるフレームほど被写体の位置はCCD5から遠ざかることがわかる。
【0054】
また、図6は、メモリ12の位置パラメータテーブルに記録されている(登録されている)被写体の各位置パラメータの様子の一例を示すものであり、各フレーム毎にx位置パラメータの値、y位置パラメータの値、z位置パラメータ値の各値が記録されている。
【0055】
このような登録方法の利点は、自然で滑らかな動きとなるようにユーザが全てのフレームに対応するパラメータを正確に入力することは非常に困難であるが、一部のフレームのパラメータを入力するだけで、他のフレームのパラメータの補間や補正を行うので、自然で滑らかな動きを容易に登録することが可能となるものである。つまり、2点を指定すれば、この2点を通る1次関数で表されるような直線移動、3点を指定すれば、この3点を通る3次関数で表されるような等加速度運動となり、指定する点の数が増えるに従って複雑な動きを指定することができる。
【0056】
また、この登録処理においては、撮影予定となっているフレームに対応させてパラメータを登録したが、ここでは物体の動きが登録できればよいので、必ずしも撮影予定フレームに対応してパラメータを登録しなくてもよい。実際に撮影を開始するときに、動画のフレームレートを新たに設定するようにし、この設定されたフレームレートに対応して撮影予定となる複数のフレームを新たに決定し、登録されている物体の動きに基づいて、この新たに決定された複数のフレームの各々に対応するパラメータを自動生成するようにしてもよい。また、一定のフレームレートで再生する動画でなはなく、フレームレートが可変である動画であっても、各フレームが再生されるタイミングが特定できれば、そのフレームに対応するパラメータを生成することが可能である。
【0057】
B−2.アニメーション動画撮影の動作について
次に、アニメーション動画撮影の動作を図7のフローチャートに従って説明する。
ユーザのキー入力部11のモード切替キーの操作によりパラメータ登録モードに設定されると、CPU10は、これから撮影する所定の被写体であり、背景に対して動く物体の実際の大きさを設定する(ステップS11)。このときは、被写体の大きさをユーザに入力させるための画面を表示させ、該入力された大きさを設定する。
【0058】
次いで、CPU10は、最初のフレーム(1枚目のフレーム)を撮影対象として特定する(ステップS12)。つまり、これから撮影するフレームを特定する。
次いで、CPU10は、所定のフレームレートでCCD5による撮影を開始させ、CCD5により順次撮影され画像生成部9によって生成された輝度色差信号のフレーム画像データ(YUVデータ)をバッファメモリ(DRAM13)に記憶させていき、該記憶されたフレーム画像データに基づく画像を画像表示部15に表示させていくという、いわゆるスルー画像表示を開始する(ステップS13)。
【0059】
次いで、CPU10は、図6に示す登録されている現在特定されているフレームの各位置パラメータの値と、ステップS1で設定された所定の被写体の実際の大きさと、設定されている撮影画角(スーム倍率など)の情報に基づいて、該特定されているフレームの被写体の撮影予定状態を示した枠(撮影予定状態枠)を画像表示部15に透過表示させる(ステップS14)。ここで、透過表示させる撮影予定状態とは、撮影予定となる画像表示部15上の被写体の位置、大きさのことをいう。
【0060】
このとき、該特定されているフレームの各位置パラメータの値と、ステップS1で設定された被写体の大きさに基づいて3次元モデルを生成し、その3次元モデルを、x軸及びy軸から構成される平面上にあり、且つ、(x,y,z)=(0,0,0)が中央となるように配置されたCCD5から見たときの様子を、被写体の状態として2次元投射により生成し、該生成した被写体の枠を撮影予定状態枠として画像表示部15に透過表示させることになる。
【0061】
図9は、該特定されているフレームの各位置パラメータの値と、ステップS1で設定された被写体の大きさに基づいて生成される3次元モデルの一例を示すものである。図9の黒点31は、特定されたフレームの各位置パラメータの値により定められる被写体の位置を示し、楕円32はステップS1で設定された被写体の大きさを示している。
【0062】
この生成した被写体の3次元モデルを、CCD5から見たときの様子を、被写体の撮影予定状態として2次元投射により生成する。このとき、デジタルカメラ1の撮影レンズの焦点距離によって被写体の大きさも変わってくるので、撮影レンズの焦点距離も考慮して2次元投射により生成する。このように、設定された被写体の大きさ、焦点距離、(x,y,z)=(0,0,0)から被写体の位置31までの距離に応じて2次元投射により生成される被写体の大きさは変わってくる。
【0063】
図10(A)は、図9の3次元モデルを2次元投射して生成された被写体の撮影状態枠の様子の一例を示すものである。
また、図10(B)、(C)は、2枚目、3枚目のフレームの各位置パラメータの値に基づいて透過表示される撮影予定状態枠の様子を示すものである。図10を見るとわかるように、被写体の撮影予定状態枠は徐々に右側に移動し、且つ、被写体の位置が遠ざかっていくので(図4、図5参照)、撮影予定状態枠として透過表示される被写体の大きさは小さくなっているのがわかる。
【0064】
これにより、被写体の撮影予定となる画像表示部15上の位置と、その大きさを撮影予定状態枠として表示させることにより、該特定したフレームの各位置パラメータの値となるような位置で被写体を撮影することができる。
なお、この3次元モデルから2次元投射して2次元のものを得る技術は周知技術なので説明を割愛する。
【0065】
図7のフローチャートの説明に戻り、被写体の撮影予定状態枠を表示させると、CPU10は、ユーザによってシャッタボタンが押下されたか否かを判断する(ステップS15)。
このとき、ユーザは、デジタルカメラ1の位置を変えることにより、撮影したい被写体が該透過表示された撮影予定状態枠と同じとなるように、被写体の位置、大きさを調整し、被写体の位置、大きさが透過表示された撮影予定状態枠と同じと判断した場合に、シャッタボタンを押下する。
【0066】
ステップS15で、シャッタボタンが押下されていないと判断すると押下されるまでステップS15に留まり、シャッタボタンが押下されたと判断すると、CPU10は、静止画撮影を行い、該得られた画像データを現在特定されているフレームの画像データとしてフラッシュメモリ14に記録する(ステップS16)。このとき、現在特定されているフレームの情報を一緒に記録する。このフレームの情報とは、何枚目のフレームに対応する画像データであるか否かを示す情報のことである。
【0067】
次いで、CPU10は、実際に撮影された画像データに基づいて、実際の被写体の位置、大きさを特定する(ステップS17)。この大きさの特定は、該透過表示された撮影予定状態枠付近にある被写体の特徴点を複数抽出し、該複数抽出した特徴点により被写体の輪郭を特定し、位置の特定は、該特定した輪郭の中央部を被写体の位置として特定する。
次いで、CPU10は、該特定した実際の被写体の位置、大きさに基づいて、被写体の3次元の座標位置を検出する(ステップS18)。この2次元のものから3次元のものを検出する技術は周知技術なので説明を割愛する。
【0068】
そして、CPU10は、該検出した3次元の座標位置と、現在特定されているフレームの登録されている各位置パラメータの値とを比較する(ステップS19)。
次いで、CPU10は、該比較した両者の値の差が所定値以上であるか否かを判断する(ステップS20)。
【0069】
ステップS20で、その差が所定値以上であると判断すると、CPU10は、画像の撮り直しを行うか否かを判断する。
このとき、CPU10は、「予定していた被写体の撮影予定状態と違います。画像を撮り直しますか」という表示をさせ、ユーザによってSETキーの操作が行われると画像の撮り直しをしないと判断し、キャンセルキーの操作が行われると画像の撮り直しをすると判断する。
【0070】
ステップS21で、画像の撮り直しをすると判断すると、現在特定されているフレームとしてステップS16で記録した画像データを削除して(ステップS22)、ステップS14に戻る。
一方、ステップS21で、画像の撮り直しをしないと判断すると、CPU10は、現在特定されているフレーム後のフレームの位置パラメータが登録されているか否かを判断する(ステップS23)。
【0071】
ステップS23で、現在特定されているフレーム後のフレームの位置パラメータが登録されていると判断すると、CPU10は、ステップS18で検出された被写体の3次元の座標位置に基づいて、現在特定しているフレーム後のフレームの登録されている位置パラメータを修正して(ステップS24)、ステップS26に進む。この修正された位置パラメータの値は、図6に示す位置パラメータテーブルに上書きされることになる。
【0072】
また、この修正は、スプライン関数により各フレームの各位置パラメータの値が滑らかになるように修正する。この修正は、現在特定しているフレームから遠いフレーム程、現在登録されている各位置パラメータの値を優先して修正する。つまり、現在特定しているフレームから近いフレーム程、該検出された実際に撮影された被写体の3次元の座標位置の影響を受けることになる。
【0073】
図11は、登録されているx位置パラメータとフレームとの関係グラフ、修正されたx位置パラメータとフレームとの関係グラフの様子の一例を示している。
図11の上の関係グラフは登録されているx位置パラメータとフレームとの関係グラフを、下の関係グラフは修正されたx位置パラメータとフレームとの関係グラフを示している。
【0074】
また、図11の上の関係グラフの中にある×印は実際に撮影された被写体の位置を示しており、4枚目のフレームを見ると登録されているx位置パラメータと実際に撮影された被写体のx軸の位置はずれていることがわかる。
そして、図11の下の関係グラフを見るとわかるように、4枚目のフレーム以降のx位置パラメータの値が修正されているのがわかる。また、下の関係グラフを見ると、4枚目のフレームから遠ざかるにつれて登録されていたフレームのx位置パラメータの値と変わらなくなってきているのもわかる。なお、図11の下の関係グラフのうち、点線であらわさている部分は、修正前の位置パラメータの値の近似線の様子を示している。
【0075】
一方、ステップS20で、検出された実際に撮影された被写体の3次元の座標位置と現在特定されているフレームの登録されている各位置パラメータの値との差が所定値以上でないと判断すると、CPU10は、現在特定しているフレームの次のフレームの位置パラメータが登録されているか否かを判断する(ステップS25)。
【0076】
ステップS25で、現在特定しているフレームの次のフレームの位置パラメータが登録されていると判断するとステップS26に進む。
ステップS26に進むと、CPU10は、現在特定されているフレームの次のフレームを撮影対象として特定して、ステップS13に戻る。
次のフレームとは、たとえば、現在特定しているフレームが1枚目のフレームの場合は次のフレームとして2枚目のフレームを特定し、現在特定されているフレームが2枚目のフレームの場合は次のフレームとして3枚目のフレームを特定する。
【0077】
一方、ステップS23で、現在特定しているフレーム後のフレームの位置パラメータが登録されていないと判断された場合、ステップS25で現在特定しているフレームの次のフレームの位置パラメータが登録されていないと判断すると、図8のステップS31に進み、CPU10は、次のフレームを撮影するか否かを判断する。
ここでは、N枚目のフレームの位置パラメータまで登録しているので、現在特定しているフレームがN枚目のフレームの場合には、ステップS23やステップS25で、現在特定しているフレーム後の、若しくは、現在特定しているフレームの次のフレームの位置パラメータが登録されていないと判断することになる。
【0078】
このとき、CPU10は、「次のフレームを撮影しますか」という質問を画像表示部15に表示させ、ユーザによってSETキーの操作が行われると次のフレームを撮影すると判断し、ユーザによってキャンセルキーの操作が行われると次のフレームを撮影しないと判断する。
ステップS31で、次のフレームを撮影すると判断すると、CPU10は、次のフレームを撮影対象として特定する(ステップS32)。
【0079】
次いで、CPU10は、登録されている各フレームの位置パラメータに基づいて、該特定したフレームの被写体の各位置パラメータを予測する(ステップS33)。この予測はスプライン関数によって予測する。このとき、次のフレームの各位置パラメータの値と既に登録されている過去の各フレームの各位置パラメータの値とが滑らかになるように、該次のフレームの各位置パラメータを予測する。
【0080】
次いで、CPU10は、スルー画像表示を開始して(ステップS34)、該予測された被写体の各位置パラメータの値及びステップS11で設定された被写体の大きさに基づいて、該特定されているフレームの被写体の撮影予定状態を示した撮影予定状態枠を画像表示部15に透過表示させる(ステップS35)。この透過表示は上述したステップS14と同じ動作なのでここでは説明を省略する。
【0081】
次いで、CPU10は、シャッタボタンが押下されたか否かを判断する(ステップS36)。
このとき、ユーザは、デジタルカメラ1の位置を変えることにより、撮影したい被写体が該透過表示された撮影予定状態枠と同じとなるように、被写体の位置、大きさを調整し、被写体の位置、大きさが透過表示された撮影予定状態枠と同じと判断した場合に、シャッタボタンを押下する。
【0082】
ステップS36で、シャッタボタンが押下されていないと判断すると押下されたと判断するまでステップS36に留まり、シャッタボタンが押下されたと判断すると、CPU10は、静止画撮影処理を行い、該得られた画像データを現在特定されているフレームの画像データとしてフラッシュメモリ14に記録する(ステップS37)。このとき、現在特定されているフレームの情報を一緒に記録する。このフレームの情報とは、何枚目のフレームに対応する画像データであるか否かを示す情報のことである。
【0083】
次いで、CPU10は、実際に撮影された画像データに基づいて、実際の被写体の位置、大きさを特定する(ステップS38)。この大きさの特定は、該透過表示された撮影予定状態枠付近にある被写体の特徴点を複数抽出し、該複数抽出した特徴点により被写体の輪郭を特定し、位置の特定は、該特定した輪郭の中央部を被写体の位置として特定する。
【0084】
次いで、CPU10は、該特定した実際の被写体の位置、大きさに基づいて、被写体の3次元の座標位置を検出する(ステップS39)。この2次元のものから3次元のものを検出する技術は周知技術なので説明を割愛する。
そして、CPU10は、該検出した3次元の座標位置と、現在特定されているフレームの登録されている各位置パラメータの値とを比較する(ステップS40)。
【0085】
次いで、CPU10は、該比較した両者の値の差が所定値以上であるか否かを判断する(ステップS41)。
ステップS40で、その差が所定値以上であると判断すると、CPU10は、画像の撮り直しを行うか否かを判断する(ステップS42)。
このとき、CPU10は、「予定していた被写体の撮影予定状態と違います。画像を撮り直しますか」という表示をさせ、ユーザによってSETキーの操作が行われると画像の撮り直しをしないと判断し、キャンセルキーの操作が行われると画像の撮り直しをすると判断する。
【0086】
ステップS42で、画像の撮り直しを行うと判断すると、CPU10は、現在特定されているフレームとしてステップS37で記録した画像データを削除して(ステップS43)、ステップS34に戻る。
一方、ステップS42で画像の撮り直しをしないと判断した場合は、CPU10は、ステップS39で検出した実際に撮影した被写体の3次元の座標位置を、現在特定しているフレームの被写体の各位置パラメータの値として位置パラメータテーブルに新たに追加記録(追加登録)して(ステップS44)、ステップS31に戻る。
【0087】
また、ステップS41でその差が所定値以上でないと判断した場合、ステップS33で予測した各位置パラメータを現在特定しているフレームの位置パラメータとして新たに追加記録(追加登録)して(ステップS45)、ステップS31に戻る。
一方、ステップS31で、次のフレームを撮影しないと判断すると、該記録した画像データに基づいて、フラッシュメモリ14上に動画ファイルを生成する(ステップS46)。
【0088】
図12は、位置パラメータが登録されているフレーム後のフレームを撮影するとステップS31で判断された場合に、新たに追加登録されたフレームのx位置のパラメータの様子を示す図である。
図12を見るとわかるように、n枚目のフレームの位置パラメータまでしか登録されていなかったが、n枚目以降のフレームの位置パラメータが登録されたのがわかる。過去の各フレームの位置パラメータに基づいて、該特定しているフレームの各位置パラメータの値が推測され、撮影予定状態枠が表示される。そして、実際に撮影された被写体の3次元の座標位置と該推測した各位置パラメータの値の差が所定値以上でない場合には該推測した各位置パラメータの値が該特定しているフレームの位置パラメータとして登録され、その差が所定値以上の場合には実際に撮影された被写体の3次元の座標位置が該特定しているフレームの各位置パラメータの値として登録される。
【0089】
以上のように、実施の形態においては、予めユーザが所望する動きとなるように、被写体の撮影予定状態を大まかに入力し(1部のフレームに対して各位置パラメータの値を入力し)、CPU10は、該入力した撮影予定状態に基づいて各フレームの撮影予定状態を算出して登録し、アニメーション動画撮影を行う場合には、各フレームの撮影毎に、該登録した撮影予定状態を示す撮影予定状態枠を透過表示させることにより、該登録した撮影予定状態と同じ状態で被写体の撮影するにようにユーザに促すことができ、アニメーション動画を容易に作成することができる。
【0090】
また、ユーザは、被写体の動きが所望の動きとなるように、1部のフレームに対して各位置パラメータの値を入力すると、自動的に各フレームの各位置パラメータの値を決めるので、ユーザは容易に位置パラメータの値を決めることができる。また、ユーザによって入力された1部のフレームの各位置パラメータの値に基づいて各フレームの位置パラメータの値が滑らかになるように、各位置パラメータの値を決めるので、被写体の動きが滑らかなアニメーション動画を作成することができる。
また、実際に撮影された被写体の状態と、登録した撮影予定状態の差が所定値以上ある場合に、画像の撮り直すことができるので、登録した撮影予定状態となるような画像を得ることができる。また、画像の撮り直しをしない場合は、被写体の動きが滑らかになるように、実際に撮影された被写体の状態に基づいて、以後のフレームの撮影予定状態を修正するようにしたので、登録した撮影予定状態と違う状態で被写体を撮影した場合であっても、被写体の動きが滑らかになるように、被写体を撮影することができ、動きが滑らかなアニメーション動画を作成することができる。
【0091】
また、位置パラメータを登録していないフレームを撮影する場合であっても、登録されている各フレームの各位置パラメータに基づいて、これから撮影する各位置パラメータの値を推測するので、位置パラメータを登録していないフレームを撮影する場合であっても対応することができる。たとえば、当初はこのぐらいの枚数を撮影すると思ってフレームの各位置パラメータの登録したが、実際に撮影してみてもう少しフレームを多く撮影したいと思う場合であっても対応することができる。
【0092】
[変形例]
D.上記実施の形態は以下のような態様でもよい。
【0093】
(01)上記実施の形態において、CCD5を、x軸とy軸の平面上にあり、且つ、CCD5の中心を(x,y,z)=(0,0,0)とするようにしたが、CCD5をx軸とy軸の平面上になくてもよいし、CCD5の中心を(x,y,z)=(0,0,0)でなくてもよい。つまり、x、y、zで構成される3次元を任意の角度、及び、距離にCCD5を配置したときに見える被写体を2次元投射により生成するようにしてもよい。
【0094】
(02)上記実施の形態において、フレーム毎に3次元の各位置パラメータを登録するようにしたが、フレーム毎にCCD5上の被写体の位置、及び、その大きさを登録するようにしてもよい。
【0095】
(03)上記実施の形態においては、各フレームの被写体の撮影予定状態として、3次元の各位置パラメータを登録するようにしたが、さらに、各フレーム毎の被写体の向きを示すパラメータを登録するようにしてもよい。
このときは、撮影予定となる被写体の位置、大きさとともにその向きも撮影予定状態として表示させるようにしてもよい。
また、このとき、実際に撮影された画像データに基づいて、被写体の向きを検出する方法としては、たとえば、被写体が人、動物などの目があるものである場合は、目と目の間の距離に応じて被写体の向きを検出するようにしてもよい。正面を向いているときの目と目の間の距離が一番長く、被写体の向きが斜めになるにつれて目と目の間の距離は短くなっていくからである。つまり、目の特徴点の相対的な位置関係によって被写体の向きを検出する。
また、撮影する被写体を360度のあらゆる角度から撮影して登録しておき、該登録した被写体の360度のあらゆる角度の画像データと、実際に撮影された被写体の画像データとを比較照合することにより実際に撮影された被写体の向きを検出するようにしてもよい。
また、図7のステップS17、図8のステップS38でも、上記登録した被写体の360度のあらゆる角度から撮影した画像データに基づいて、実際に撮影された被写体がいる位置及び大きさも特定するようにしてもよい。
【0096】
(04)上記実施の形態においては、被写体の撮影予定状態を、枠を表示させることにより撮影予定状態を表示させるようにしたが、枠に限らず、他の方法によって表示させるようにしてもよい。
【0097】
(05)上記実施の形態においては、予め各フレームの位置パラメータを登録して、アニメーション動画撮影を行うようにしたが、複数フレーム撮影をしていき、該撮影された画像データに基づいて被写体の3次元の座標位置を検出し、該検出された座標位置に基づいてその後のフレームの各位置パラメータを推測して透過表示させていくようにしてもよい。
【0098】
(06)上記実施の形態においては、登録されていないフレームの各位置パラメータの値を推測する場合は、少なくとも直前の2フレームの各位置パラメータに基づいて被写体の速度と移動している方向を算出し、該算出した被写体の速度と同じ速度で該算出した方向に移動した場合における各位置パラメータの値を算出するようにしてもよい。
また、登録されていないフレームの各位置パラメータの値を推測する場合は、少なくとも直前の3フレームの各位置パラメータに基づいて、被写体の加速度と移動している方向を算出し、該算出した加速度と同じ加速度で該算出した方向に移動した場合における各位置パラメータの値を算出するようにしてもよい。
また、登録されていないフレームの被写体の向きを示すパラメータの値を推測する場合は、少なくとも直前の2フレームの向きが変化する方向と、その変化の速度を算出し、該算出した速度と同じ速度で、該算出した向きが変化する方向に向きが変わった場合における向きを示すパラメータの値を算出するようにしてもよい。
【0099】
(07)上記実施の形態においては、ユーザによって入力された1部のフレームの被写体の状態を示した各位置パラメータによって、他のフレームの各位置パラメータを算出することにより、同時に、被写体の動きを特定するようにしたが、ユーザによって入力された概略的な被写体の動きによって、被写体の一連の動きを特定し、該特定された被写体の動きに基づいて、各フレームの各位置パラメータを算出するようにしてもよい。これによっても、アニメーション動画を容易に作成することができる。
【0100】
このユーザの被写体の概略的な動きの入力は、上記実施の形態のように、一部のフレームの被写体の状態を示した各位置パラメータによって直接概略的な被写体の動きを入力するようにしてもよいし、3次元空間において、ある時刻ではこの位置、この時刻ではこの位置という具合に被写体の動きを概略的に入力するようにしてもよい。
また、この場合は、該入力された概略的な被写体の動きに基づいて特定する一連の被写体の動きは、動きが滑らかになるように特定する。そして、該特定された動きに基づいて、各フレームに対応した被写体状態に変換し、各フレームの各位置パラメータを算出する。なお、このとき、ユーザによって入力されたフレームの位置パラメータの値を変えないように被写体の動きを特定するようにしてもよいし、ユーザによって入力されたフレームの位置パラメータの値によって、被写体の動きが滑らかにならない場合は、ユーザによって入力されたフレームの位置パラメータの値を変えて(修正して)、被写体の動きを特定するようにしてもよい。
【0101】
また、この場合、上記実施の形態においては、撮影予定の各位置パラメータと実際に撮影された被写体の3次元の座標位置が異なる場合は、以後のフレームの各位置パラメータを修正するようにしたが、特定した被写体の動きを修正(新たに特定)し、該修正された被写体の動きに基づいて、各フレームの位置パラメータを算出する。これにより、被写体の動きが滑らかになるように被写体を撮像することができる。
同様に、位置パラメータが登録されていないフレームを撮像する場合も、これまでの被写体の動きを予測して被写体の動きを新たに特定し、該特定された被写体の動きに基づいて、該フレームの位置パラメータを算出する。この動きの予測は、これまでに撮像されたフレームの各位置パラメータに基づいて、被写体の動きの方向、速度、加速度、向き等を特定し、該特定された被写体の動きに基づいて各フレームのパラメータの値を求める。これにより、被写体の動きが滑らかになるように被写体を撮像することができる。
【0102】
(08)上記実施の形態においては、背景に対してカメラを特定した場合について説明したが、背景に対してカメラを固定しない場合にも適用してもよい。この場合は、登録された各フレームの位置パラメータと、カメラの位置に基づいて、被写体の撮影予定状態を透過表示させる。
【0103】
(09)上記変形例(01)乃至(08)を矛盾しない範囲内で任意に組み合わせた態様であってもよい。
【0104】
(10)また、本発明の上記実施形態は、何れも最良の実施形態としての単なる例に過ぎず、本発明の原理や構造等をより良く理解することができるようにするために述べられたものであって、添付の特許請求の範囲を限定する趣旨のものでない。
したがって、本発明の上記実施形態に対してなされ得る多種多様な変形ないし修正はすべて本発明の範囲内に含まれるものであり、添付の特許請求の範囲によって保護されるものと解さなければならない。
【0105】
最後に、上記実施の形態においては、本発明の撮影装置をデジタルカメラ1に適用した場合について説明したが、上記の実施の形態に限定されるものではなく、要は、被写体を撮影することができる機器であれば適用可能である。
【図面の簡単な説明】
【0106】
【図1】本発明の実施の形態のデジタルカメラのブロック図である。
【図2】パラメータ登録の動作を示すフローチャートである。
【図3】x、y、zで表わされる3次元の様子の一例、及び、表示された位置グラフの様子の一例を示す図である。
【図4】x位置パラメータの入力が完了したときの、入力されたx位置パラメータの様子の一例、及び、該入力された位置パラメータに基づいてスプライン関数により求められた近似線が表示されたときの様子の一例を示す図である。
【図5】登録されるy位置パラメータの元となる近似線の様子の一例、及び、登録されるz位置パラメータの元となる近似線の様子の一例を示すものである。
【図6】メモリ12の位置パラメータテーブルに登録された被写体の各位置パラメータの様子の一例を示す図である。
【図7】アニメーション動画撮影の動作を示すフローチャートである。
【図8】アニメーション動画撮影の動作を示すフローチャートである。
【図9】該特定されているフレームの各位置パラメータの値と、被写体の大きさに基づいて生成される3次元モデルの一例を示すものである。
【図10】生成された被写体の撮影予定状態枠の一例を示す図である。
【図11】修正されたx位置パラメータとフレームとの関係グラフの様子の一例を示す図である。
【図12】新たに追加登録されたフレームのx位置のパラメータの様子を示す図である。
【符号の説明】
【0107】
1 デジタルカメラ
2 撮影レンズ
3 レンズ駆動ブロック
4 絞り
5 CCD
6 ドライバ
7 TG
8 ユニット回路
9 画像生成部
10 CPU
11 キー入力部
12 メモリ
13 DRAM
14 フラッシュメモリ
15 画像表示部
16 バス
【技術分野】
【0001】
本発明は、撮影装置及びそのプログラムに係り、詳しくは、実写によるアニメーション動画の作成を支援する機能有した撮影装置及びそのプログラムに関する。
【背景技術】
【0002】
アニメーション動画の作成を支援するカメラであって、アニメーション動画を構成する各コマ(フレーム)の撮影時に、このアニメーション動画における動く物体の撮影フレーム内での位置を案内表示する技術が知られている(特許文献1)。
【0003】
【特許文献1】公開特許公報 特開2003−37808
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1の技術によれば、ユーザが指定した物体の位置や直前のコマ(フレーム)における物体の位置を案内表示するだけなので、複数のコマ(フレーム)に渡って物体が所望の状態で滑らかに動くように、物体を設置して撮影を行うことはできなかった。
【0005】
そこで本発明は、かかる従来の問題点に鑑みてなされたものであり、被写体が滑らかに動くような実写アニメーション動画を容易に作成できるように支援する撮影装置及びそのプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
上記目的達成のため、請求項1記載の発明による撮影装置は、撮影された複数の画像データを用いて所定の被写体の動きを表現した実写アニメーション動画の作成を支援する撮影手段と電子ファインダを備えた撮影装置であって、
前記実写アニメーション動画を構成する各フレームに対応させて、前記所定の被写体の状態を示したパラメータを生成する生成手段と、
前記生成手段により生成されたパラメータに基づいて、各フレームの撮影の際に、撮影するフレームに対応する前記被写体の撮影予定状態を前記電子ファインダに案内表示させる案内表示制御手段と、
前記案内表示制御手段による案内表示に対応して前記撮影手段により撮影された各フレームの画像データに基づいて動画データを生成する動画生成手段と、
を備えたことを特徴とする。
【0007】
また、例えば、請求項2に記載されているように、前記実写アニメーション動画の背景部分に対応した3次元空間内での前記所定の被写体の動きを特定する特定手段と、
前記生成手段は、
前記実写アニメーション動画における各フレームが再生されるタイミング情報に従って、前記特定手段によって特定された前記3次元空間内での前記所定の被写体の動きを、各フレームに対応した前記所定の被写体の状態に変換することにより、前記パラメータを生成するようにしてもよい。
【0008】
また、例えば、請求項3に記載されているように、前記アニメーション動画を構成する各フレームのうち、一部のフレームに写る前記所定の被写体の状態を示すパラメータをユーザが入力するための入力手段を備え、
前記特定手段は、
前記入力手段により入力された一部のフレームに写る前記所定の被写体の状態を示すパラメータに基づいて、前記実写アニメーション動画の背景部分に対応した3次元空間内での前記所定の被写体の動きを特定するようにしてもよい。
【0009】
また、例えば、請求項4に記載されているように、前記特定手段は、
前記入力手段により入力された一部のフレームに写る前記所定の被写体の状態を示すパラメータに基づいて、前記所定の被写体の動きが滑らかになるように、前記実写アニメーション動画の背景部分に対応した3次元空間内での前記所定の被写体の動きを特定するようにしてもよい。
【0010】
また、例えば、請求項5に記載されているように、前記特定手段は、
前記所定の被写体の動きが滑らかになるように、前記入力手段により入力された一部のフレームに写る前記所定の被写体の状態を示すパラメータを修正して、前記実写アニメーション動画の背景部分に対応した3次元空間内での前記所定の被写体の動きを特定するようにしてもよい。
【0011】
また、例えば、請求項6に記載されているように、実際に撮影された画像データに基づいて、実際に撮影されたフレームに対応する前記所定の被写体の撮影状態を示すパラメータを検出する検出手段を備え、
前記特定手段は、
前記検出手段により検出されたパラメータに基づいて、前記実写アニメーション動画の背景部分に対応した3次元空間内での前記所定の被写体の動きを新たに特定するようにしてもよい。
【0012】
また、例えば、請求項7に記載されているように、前記特定手段は、
前記検出手段により検出された、少なくともパラメータを生成する現フレームの直前の2フレームの状態に基づいて、前記所定の被写体の移動の方向と速度を特定し、
前記生成手段は、
該検出された移動の方向及び速度に基づいて、該現フレームのパラメータを生成するようにしてもよい。
【0013】
また、例えば、請求項8に記載されているように、前記特定手段は、
前記検出手段により検出された、少なくともパラメータを生成する現フレームの直前の3フレームの状態に基づいて、前記被写体の移動の方向と加速度を特定し、
前記生成手段は、
該検出された移動の方向及び加速度に基づいて、該現フレームのパラメータを生成するようにしてもよい。
【0014】
また、例えば、請求項9に記載されているように、前記特定手段は、
前記検出手段により検出された、少なくともパラメータを生成する現フレームの直前の2フレームの状態に基づいて、前記所定の被写体の向きが変化する方向と速度を特定し、
前記生成手段は、
該検出された向きが変化する方向及び速度に基づいて、該現フレームのパラメータを生成するようにしてもよい。
【0015】
また、例えば、請求項10に記載されているように、前記アニメーション動画を構成する各フレームのうち、一部のフレームに写る前記所定の被写体の状態を示すパラメータをユーザが入力するための入力手段を備え、
前記生成手段は、
前記入力手段により入力された一部のフレームに対応するパラメータに基づいて、該被写体の動きが滑らかになるように、この一部のフレーム以外の各フレームに対応する該被写体の状態を示したパラメータを生成するようにしてもよい。
【0016】
また、例えば、請求項11に記載されているように、前記生成手段は、
前記所定の被写体の動きが滑らかになるように、前記入力手段により入力されたパラメータを修正して、各フレームに写る該被写体の状態を示したパラメータを生成するようにしてもよい。
【0017】
また、例えば、請求項12に記載されているように、実際に撮影された画像データに基づいて、実際に撮影されたフレームに対応する前記所定の被写体の撮影状態を検出する検出手段と、
前記検出手段により検出された前記所定の被写体の撮影状態に基づいて、前記生成手段により生成されたパラメータのうち、まだ撮影されていないフレーム部分のパラメータを修正する修正手段と、
を備えるようにしてもよい。
【0018】
また、例えば、請求項13に記載されているように、実際に撮影された各フレームの画像データに基づいて、実際に撮影された前記所定の被写体の撮影状態を検出する検出手段を備え、
前記生成手段は、
前記検出手段により検出された各フレームの前記所定の被写体の撮影状態に基づいて、まだ生成していないフレーム部分のパラメータを生成するようにしてもよい。
【0019】
また、例えば、請求項14に記載されているように、前記生成手段は、
前記検出手段により検出された、少なくともパラメータを生成する現フレームの直前の2フレームの状態に基づいて、前記所定の被写体の移動の方向と、速度を検出し、該検出された移動の方向及び速度に基づいて、該現フレームのパラメータを生成するようにしてもよい。
【0020】
また、例えば、請求項15に記載されているように、前記生成手段は、
前記検出手段により検出された、少なくともパラメータを生成する現フレームの直前の3フレームの状態に基づいて、前記所定の被写体の移動の方向と、加速度を検出し、該検出された移動の方向及び加速度に基づいて、該現フレームのパラメータを生成するようにしてもよい。
【0021】
また、例えば、請求項16に記載されているように、前記生成手段は、
前記検出手段により検出された、少なくともパラメータを生成する現フレームの直前の2フレームの状態に基づいて、前記所定の被写体の向きが変化する方向と、速度を検出し、該検出された向きが変化する方向及び速度に基づいて、該現フレームのパラメータを生成するようにしてもよい。
【0022】
また、例えば、請求項17に記載されているように、前記検出手段は、
前記被写体の特徴点を検出することにより、被写体の撮影状態を検出するようにしてもよい。
【0023】
また、例えば、請求項18に記載されているように、前記検出手段は、
前記被写体の複数の特徴点を検出し、該検出された複数の特徴点の中心を被写体の位置として検出するようにしてもよい。
【0024】
また、例えば、請求項19に記載されているように、記検出手段は、
前記被写体の複数の特徴点を検出し、該検出された複数の特徴点の相対的な位置関係に基づいて前記被写体の向きを検出するようにしてもよい。
【0025】
上記目的達成のため、請求項20記載の発明によるプログラムは、撮影された複数の画像データを用いて所定の被写体の動きを表現した実写アニメーション動画の作成を支援する撮影手段と電子ファインダを備えた撮影装置を実行させるためのプログラムであって、
前記実写アニメーション動画を構成する各フレームに対応させて前記所定の被写体の状態を示したパラメータを生成する生成処理と、
前記生成処理により生成されたパラメータに基づいて、各フレームの撮影の際に、撮影するフレームに対応する前記被写体の撮影予定状態を前記電子ファインダに案内表示させる案内表示制御処理と、
前記案内表示制御処理による案内表示に対応して前記撮影手段により撮影素子に撮影された各フレームの画像データに基づいて動画データを生成する動画生成処理と、
を含むことを特徴とする。
【発明の効果】
【0026】
本願発明によれば、被写体が滑らかに動くような実写アニメーション動画を容易に作成することができる。
【発明を実施するための最良の形態】
【0027】
以下、本実施の形態について、本発明の撮影装置をデジタルカメラに適用した一例として図面を参照して詳細に説明する。
[実施の形態]
A.デジタルカメラの構成
図1は、本発明の撮影装置を実現するデジタルカメラ1の電気的な概略構成を示すブロック図である。
デジタルカメラ1は、撮影レンズ2、レンズ駆動ブロック3、絞り4、CCD5、ドライバ6、TG(timing generator)7、ユニット回路8、画像生成部9、CPU10、キー入力部11、メモリ12、DRAM13、フラッシュメモリ14、画像表示部15、バス16を備えている。
【0028】
撮影レンズ2は、図示しない複数のレンズ群から構成されるフォーカスレンズ、ズームレンズ等を含む。そして、撮影レンズ2にはレンズ駆動ブロック3が接続されている。レンズ駆動ブロック3は、フォーカスレンズ、ズームレンズをそれぞれ光軸方向に沿って駆動させるフォーカスモータ、ズームモータと、CPU10から送られてくる制御信号にしたがって、フォーカスモータ、ズームモータを駆動させるフォーカスモータドライバ、ズームモータドライバから構成されている(図示略)。
【0029】
絞り4は、図示しない駆動回路を含み、駆動回路はCPU10から送られてくる制御信号にしたがって絞り4を動作させる。
絞り4とは、撮影レンズ2から入ってくる光の量を制御する機構のことをいう。
【0030】
CCD5は、ドライバ6によって駆動され、一定周期毎に被写体像のRGB値の各色の光の強さを光電変換して撮影信号としてユニット回路8に出力する。このドライバ6、ユニット回路8の動作タイミングはTG7を介してCPU10により制御される。なお、CCD5はベイヤー配列の色フィルターを有しており、電子シャッタとしての機能も有する。この電子シャッタのシャッタ速度は、ドライバ6、TG7を介してCPU10によって制御される。
【0031】
ユニット回路8には、TG7が接続されており、CCD5から出力される撮影信号を相関二重サンプリングして保持するCDS(Correlated Double Sampling)回路、そのサンプリング後の撮影信号の自動利得調整を行なうAGC(Automatic Gain Control)回路、その自動利得調整後のアナログの撮影信号をデジタル信号に変換するA/D変換器から構成されており、CCD5から出力された撮影信号はユニット回路8を経てデジタル信号として画像生成部9に送られる。
【0032】
画像生成部9は、ユニット回路8から送られてきた画像データに対してγ補正処理、ホワイトバランス処理などの処理を施すとともに、輝度色差信号(YUVデータ)を生成し、該生成された輝度色差信号の画像データはDRAM13(バッファメモリ)に記憶される。つまり、画像生成部9は、CCD5から出力された画像データに対して画像処理を施す。
【0033】
CPU10は、CCD5への撮影制御、フラッシュメモリ14への記録処理、画像データの表示処理を行う機能を有するとともに、デジタルカメラ1の各部を制御するワンチップマイコンである。また、CPU10はクロック回路を含み、タイマーとしての機能も有する。
【0034】
特に、CPU10は、実写アニメーション動画の背景部分に対応した3次元空間内での所定の被写体(動く物体)の動きをユーザーが入力指定する機能、ユーザーが入力指定した被写体の動きを、各フレームに対応する被写体の状態に変換する機能、フレームの各位置パラメータの値に基づいて該フレームの被写体の撮影予定位置を画像表示部15に透過表示させる機能、該透過表示に対応して撮影された各フレームの画像データに基づいて動画データを生成する機能を有する。
【0035】
上記入力指定機能および変換機能においては、複数フレームを通しての物体の動きをユーザーが容易に入力指定でき、且つ、より自然で滑らかな物体の動きとなるように、補間や補正を行う機能も併せ持つ。このような自然で滑らかなデータを容易に入力できるようにするために補間や補正を行う具体的な方法については、様々な方法が考えられるが、本実施の形態では、実写アニメーション動画を構成する複数のフレームのうち、一部のフレームに対応させて、被写体の状態を示したパラメータをユーザーが入力すると、このユーザによって入力された任意のフレームのパラメータの値に基づいて、その他のフレームのパラメータの値をスプライン関数によって算出することで、補間や補正を行うものとする。
【0036】
キー入力部11は、シャッタボタン、モード切替キー、十字キー、SETキー等の複数の操作キーを含み、ユーザのキー操作に応じた操作信号をCPU10に出力する。
【0037】
メモリ12には、CPU10が各部を制御するのに必要な制御プログラム、及び必要なデータが記録されており、CPU10は、該プログラムに従い動作する。なお、このメモリ12は書き換え可能な不揮発性メモリである。
また、メモリ12には、動画データを構成する各フレームに写る被写体の位置パラメータを記録させておく位置パラメータテーブルを備えている。
【0038】
DRAM13は、CCD5によって撮影された後、CPU10に送られてきた画像データを一時記憶するバッファメモリとして使用されるとともに、CPU10のワーキングメモリとして使用される。
フラッシュメモリ14は、画像データを保存する記録媒体である。
【0039】
画像表示部15は、カラーLCDとその駆動回路を含み、撮影待機状態にあるときには、CCD5によって撮影された被写体をスルー画像として表示し、記録画像の再生時には、フラッシュメモリ14から読み出され、伸張された記録画像を表示させる。
【0040】
B.デジタルカメラ1の動作について
実施の形態におけるデジタルカメラ1の動作をパラメータ登録と、アニメーション動画撮影に分けて説明する。
このパラメータ登録とは、簡単に説明すると、実写アニメーション動画の背景部分に対応した3次元空間内での所定の被写体(動く物体)の動きを登録するものであり、アニメーション動画撮影により撮影される各フレームに対応する被写体の位置や向きなどの状態を示す(位置)パラメータによって被写体の動きを登録することをいい、アニメーション動画撮影とは、実時間で動画を撮影するのではなく、つまり、被写体をリアルタイムで順次撮影していくのではなく、各フレーム毎に同一の被写体を別々に静止画撮影をしていき、該静止画撮影により得られた画像データに基づいて動画データを生成するというものである。
【0041】
B−1.パラメータ登録の動作について
まず、パラメータ登録の動作を図2のフローチャートに従って説明する。
ユーザのキー入力部11のモード切替キーの操作によりパラメータ登録モードに設定されると、CPU10は、1つ目の位置パラメータを選択する(ステップS1)。ここで、被写体の位置は、(x,y,z)の3次元で示され、位置パラメータは、x方向の位置を示すx位置パラメータと、y方向の位置をy位置パラメータと、z方向の位置を示すz位置パラメータとで構成される。ここでは、位置パラメータが選択される順番は、x、y、zの順とするので、ステップS1では1目の位置パラメータとしてx位置パラメータが選択される。
【0042】
図3(A)は、x、y、zで表わされる3次元の様子の一例を示すものである。
図3(A)を見るとわかるように、ある位置を(x,y,z)=(0,0,0)とし、該位置からx軸、y軸、z軸が伸びている。ここで、z軸のマイナス方向がないのは、CCD5の撮影面がx軸とy軸とで形成される平面上にあり、且つ、z軸のプラス方向を向いていることを前提としているからであり、z軸のマイナス方向は撮影されないからである。また、CCD5の撮影面の中心を、(x、y、z)=(0,0,0)とする。なお、x軸のプラス方向を右方向、マイナス方向を左方向、y軸のプラス方向を上方向、マイナス方向を下方向とする。
【0043】
次いで、CPU10は、各フレームにおける現在選択されている位置パラメータとの関係を示す位置グラフを表示させる(ステップS2)。
図3(B)は、表示された位置グラフの様子の一例を示す図である。
図3(B)を見るとわかるように横軸が、1枚目、2枚目等のフレームの枚数を示しており、縦軸が位置パラメータの値を示している。ここでは、x位置パラメータが選択されているので、縦軸はx位置パラメータの値を示している。
【0044】
そして、CPU10は、ユーザによって該選択されている位置パラメータの入力が完了したか否かを判断する(ステップS3)。この判断は、SETキーの操作に対応する操作信号がキー入力部11から送られてきたか否かにより判断する。
【0045】
ここで、ユーザはキー入力部11を操作することにより任意にあるフレームを選択し、該選択したフレームに写る被写体の位置を示す位置パラメータの値を入力することができる。このとき、入力された位置パラメータの値は該表示されている関係グラフに表示される。また、各フレーム毎に位置パラメータの値を入力する必要はなく、10枚おき、100枚おきという具合に位置パラメータの値を入力すればよい。つまり、撮影したい被写体が所望の動きとなるように、概略的に現在選択されている位置パラメータの値を決めればよい。このとき、最初のフレーム(1枚目のフレーム)の位置パラメータと、最後のフレーム位置パラメータを必ず入力するようにさせてもよい。この最後のフレームとは、ユーザが撮影したい動画の最後のフレームのことをいい、たとえば、1000枚のフレームを撮影したい場合は、最後のフレームは1000枚ということになる。このようにすれば、位置パラメータの登録と同時に動画に含まれる撮影予定のフレーム数を予め指定することができる。
【0046】
ステップS3で、現在選択されている位置パラメータの入力が完了したと判断すると、CPU10は、該入力された位置パラメータの値に基づいてスプライン関数により近似線を求める(ステップS4)。このスプライン関数により位置パラメータが滑らかになるように各フレームの位置パラメータの値が求められる。つまり、被写体の動きが滑らかになるように各フレームの位置パラメータの値が求められる。この求められた近似線は関係グラフ上に表示される。
【0047】
なお、このとき、ユーザによって入力されたフレームの位置パラメータの値を変えないようにスプライン関数により各フレームの位置パラメータの値を求めるようにしてもよい。また、ユーザによって入力されたフレームの位置パラメータの値によって、各フレームの位置パラメータの値が滑らかにならない場合は、ユーザによって入力されたフレームの位置パラメータの値を変える(修正する)ようにしてもよい。つまり、ユーザによって入力されたフレームの位置パラメータの値は絶対的なものではなく、該入力された位置パラメータの値を目安としてスプライン関数により近似線を求める。
【0048】
ここで、図4(A)は、x位置パラメータの入力が完了したときの、入力されたx位置パラメータの様子の一例を示す図であり、図4(B)は、該入力された位置パラメータに基づいてスプライン関数により求められた近似線が表示されたときの様子の一例を示す図である。ここでは、最後のフレームはn枚目のフレームとする。
図4を示すように、ユーザによって概略的に入力された被写体の位置パラメータに基づいて近似線が求められ、これにより1枚目からn枚目までの各フレームの位置パラメータが定まる。
図4(B)を見るとわかるように、被写体の位置は、中央(x=0)から右側に移動し、その後、左方向、右方向という具合に交互に中央から左右に移動しているのがわかる。
【0049】
次いで、CPU10は、該求められた近似線に基づいて現在選択されている位置パラメータの登録を行うか否かを判断する(ステップS5)。
この判断は、ユーザのSETキーの操作に対応する操作信号がキー入力部11から送られてきた場合は登録すると判断し、キャンセルキーの操作に対応する操作信号が送られてきた場合は登録しないと判断する。
【0050】
ステップS5で、パラメータの登録を行わないと判断するとステップS3に戻り、再びユーザによって位置パラメータの入力が完了したか否かを判断する。この表示されている近似線が自分が所望する被写体の動きでない場合は、再び位置パラメータを再入力することにより所望する被写体の動きに変更することができる。
【0051】
一方、ステップS5で、パラメータの登録を行うと判断すると、CPU10は、該求められた近似線に基づいて、現在選択されている位置パラメータを登録する(ステップS6)。具体的に説明すると、該近似線に基づいて、各フレームの被写体の予定位置となる現在選択されている位置パラメータの値を登録することになる。この登録される値は、メモリ12の位置パラメータテーブルに記録されることになる。
【0052】
そして、CPU10は、すべての位置パラメータを選択したか否かを判断し(ステップS7)、すべての位置パラメータを選択していないと判断すると、次のパラメータを選択して(ステップS8)、ステップS2に戻る。位置パラメータは、x、y、z順に選択されるので、現在x位置パラメータを選択している場合はステップS8でy位置パラメータが選択され、現在y位置パラメータが選択されている場合はz位置パラメータが選択されることになる。
【0053】
図5(A)は、登録されるy位置パラメータの元となる近似線の様子の一例を示すものであり、図5(B)は、登録されるz位置パラメータの元となる近似線の様子の一例を示すものである。
図5(A)を見るとわかるように、被写体の位置の高さは変わらず、CCD5の中央より下の位置であることがわかる。また、図5(B)を見るとわかるように、後に撮影されるフレームほど被写体の位置はCCD5から遠ざかることがわかる。
【0054】
また、図6は、メモリ12の位置パラメータテーブルに記録されている(登録されている)被写体の各位置パラメータの様子の一例を示すものであり、各フレーム毎にx位置パラメータの値、y位置パラメータの値、z位置パラメータ値の各値が記録されている。
【0055】
このような登録方法の利点は、自然で滑らかな動きとなるようにユーザが全てのフレームに対応するパラメータを正確に入力することは非常に困難であるが、一部のフレームのパラメータを入力するだけで、他のフレームのパラメータの補間や補正を行うので、自然で滑らかな動きを容易に登録することが可能となるものである。つまり、2点を指定すれば、この2点を通る1次関数で表されるような直線移動、3点を指定すれば、この3点を通る3次関数で表されるような等加速度運動となり、指定する点の数が増えるに従って複雑な動きを指定することができる。
【0056】
また、この登録処理においては、撮影予定となっているフレームに対応させてパラメータを登録したが、ここでは物体の動きが登録できればよいので、必ずしも撮影予定フレームに対応してパラメータを登録しなくてもよい。実際に撮影を開始するときに、動画のフレームレートを新たに設定するようにし、この設定されたフレームレートに対応して撮影予定となる複数のフレームを新たに決定し、登録されている物体の動きに基づいて、この新たに決定された複数のフレームの各々に対応するパラメータを自動生成するようにしてもよい。また、一定のフレームレートで再生する動画でなはなく、フレームレートが可変である動画であっても、各フレームが再生されるタイミングが特定できれば、そのフレームに対応するパラメータを生成することが可能である。
【0057】
B−2.アニメーション動画撮影の動作について
次に、アニメーション動画撮影の動作を図7のフローチャートに従って説明する。
ユーザのキー入力部11のモード切替キーの操作によりパラメータ登録モードに設定されると、CPU10は、これから撮影する所定の被写体であり、背景に対して動く物体の実際の大きさを設定する(ステップS11)。このときは、被写体の大きさをユーザに入力させるための画面を表示させ、該入力された大きさを設定する。
【0058】
次いで、CPU10は、最初のフレーム(1枚目のフレーム)を撮影対象として特定する(ステップS12)。つまり、これから撮影するフレームを特定する。
次いで、CPU10は、所定のフレームレートでCCD5による撮影を開始させ、CCD5により順次撮影され画像生成部9によって生成された輝度色差信号のフレーム画像データ(YUVデータ)をバッファメモリ(DRAM13)に記憶させていき、該記憶されたフレーム画像データに基づく画像を画像表示部15に表示させていくという、いわゆるスルー画像表示を開始する(ステップS13)。
【0059】
次いで、CPU10は、図6に示す登録されている現在特定されているフレームの各位置パラメータの値と、ステップS1で設定された所定の被写体の実際の大きさと、設定されている撮影画角(スーム倍率など)の情報に基づいて、該特定されているフレームの被写体の撮影予定状態を示した枠(撮影予定状態枠)を画像表示部15に透過表示させる(ステップS14)。ここで、透過表示させる撮影予定状態とは、撮影予定となる画像表示部15上の被写体の位置、大きさのことをいう。
【0060】
このとき、該特定されているフレームの各位置パラメータの値と、ステップS1で設定された被写体の大きさに基づいて3次元モデルを生成し、その3次元モデルを、x軸及びy軸から構成される平面上にあり、且つ、(x,y,z)=(0,0,0)が中央となるように配置されたCCD5から見たときの様子を、被写体の状態として2次元投射により生成し、該生成した被写体の枠を撮影予定状態枠として画像表示部15に透過表示させることになる。
【0061】
図9は、該特定されているフレームの各位置パラメータの値と、ステップS1で設定された被写体の大きさに基づいて生成される3次元モデルの一例を示すものである。図9の黒点31は、特定されたフレームの各位置パラメータの値により定められる被写体の位置を示し、楕円32はステップS1で設定された被写体の大きさを示している。
【0062】
この生成した被写体の3次元モデルを、CCD5から見たときの様子を、被写体の撮影予定状態として2次元投射により生成する。このとき、デジタルカメラ1の撮影レンズの焦点距離によって被写体の大きさも変わってくるので、撮影レンズの焦点距離も考慮して2次元投射により生成する。このように、設定された被写体の大きさ、焦点距離、(x,y,z)=(0,0,0)から被写体の位置31までの距離に応じて2次元投射により生成される被写体の大きさは変わってくる。
【0063】
図10(A)は、図9の3次元モデルを2次元投射して生成された被写体の撮影状態枠の様子の一例を示すものである。
また、図10(B)、(C)は、2枚目、3枚目のフレームの各位置パラメータの値に基づいて透過表示される撮影予定状態枠の様子を示すものである。図10を見るとわかるように、被写体の撮影予定状態枠は徐々に右側に移動し、且つ、被写体の位置が遠ざかっていくので(図4、図5参照)、撮影予定状態枠として透過表示される被写体の大きさは小さくなっているのがわかる。
【0064】
これにより、被写体の撮影予定となる画像表示部15上の位置と、その大きさを撮影予定状態枠として表示させることにより、該特定したフレームの各位置パラメータの値となるような位置で被写体を撮影することができる。
なお、この3次元モデルから2次元投射して2次元のものを得る技術は周知技術なので説明を割愛する。
【0065】
図7のフローチャートの説明に戻り、被写体の撮影予定状態枠を表示させると、CPU10は、ユーザによってシャッタボタンが押下されたか否かを判断する(ステップS15)。
このとき、ユーザは、デジタルカメラ1の位置を変えることにより、撮影したい被写体が該透過表示された撮影予定状態枠と同じとなるように、被写体の位置、大きさを調整し、被写体の位置、大きさが透過表示された撮影予定状態枠と同じと判断した場合に、シャッタボタンを押下する。
【0066】
ステップS15で、シャッタボタンが押下されていないと判断すると押下されるまでステップS15に留まり、シャッタボタンが押下されたと判断すると、CPU10は、静止画撮影を行い、該得られた画像データを現在特定されているフレームの画像データとしてフラッシュメモリ14に記録する(ステップS16)。このとき、現在特定されているフレームの情報を一緒に記録する。このフレームの情報とは、何枚目のフレームに対応する画像データであるか否かを示す情報のことである。
【0067】
次いで、CPU10は、実際に撮影された画像データに基づいて、実際の被写体の位置、大きさを特定する(ステップS17)。この大きさの特定は、該透過表示された撮影予定状態枠付近にある被写体の特徴点を複数抽出し、該複数抽出した特徴点により被写体の輪郭を特定し、位置の特定は、該特定した輪郭の中央部を被写体の位置として特定する。
次いで、CPU10は、該特定した実際の被写体の位置、大きさに基づいて、被写体の3次元の座標位置を検出する(ステップS18)。この2次元のものから3次元のものを検出する技術は周知技術なので説明を割愛する。
【0068】
そして、CPU10は、該検出した3次元の座標位置と、現在特定されているフレームの登録されている各位置パラメータの値とを比較する(ステップS19)。
次いで、CPU10は、該比較した両者の値の差が所定値以上であるか否かを判断する(ステップS20)。
【0069】
ステップS20で、その差が所定値以上であると判断すると、CPU10は、画像の撮り直しを行うか否かを判断する。
このとき、CPU10は、「予定していた被写体の撮影予定状態と違います。画像を撮り直しますか」という表示をさせ、ユーザによってSETキーの操作が行われると画像の撮り直しをしないと判断し、キャンセルキーの操作が行われると画像の撮り直しをすると判断する。
【0070】
ステップS21で、画像の撮り直しをすると判断すると、現在特定されているフレームとしてステップS16で記録した画像データを削除して(ステップS22)、ステップS14に戻る。
一方、ステップS21で、画像の撮り直しをしないと判断すると、CPU10は、現在特定されているフレーム後のフレームの位置パラメータが登録されているか否かを判断する(ステップS23)。
【0071】
ステップS23で、現在特定されているフレーム後のフレームの位置パラメータが登録されていると判断すると、CPU10は、ステップS18で検出された被写体の3次元の座標位置に基づいて、現在特定しているフレーム後のフレームの登録されている位置パラメータを修正して(ステップS24)、ステップS26に進む。この修正された位置パラメータの値は、図6に示す位置パラメータテーブルに上書きされることになる。
【0072】
また、この修正は、スプライン関数により各フレームの各位置パラメータの値が滑らかになるように修正する。この修正は、現在特定しているフレームから遠いフレーム程、現在登録されている各位置パラメータの値を優先して修正する。つまり、現在特定しているフレームから近いフレーム程、該検出された実際に撮影された被写体の3次元の座標位置の影響を受けることになる。
【0073】
図11は、登録されているx位置パラメータとフレームとの関係グラフ、修正されたx位置パラメータとフレームとの関係グラフの様子の一例を示している。
図11の上の関係グラフは登録されているx位置パラメータとフレームとの関係グラフを、下の関係グラフは修正されたx位置パラメータとフレームとの関係グラフを示している。
【0074】
また、図11の上の関係グラフの中にある×印は実際に撮影された被写体の位置を示しており、4枚目のフレームを見ると登録されているx位置パラメータと実際に撮影された被写体のx軸の位置はずれていることがわかる。
そして、図11の下の関係グラフを見るとわかるように、4枚目のフレーム以降のx位置パラメータの値が修正されているのがわかる。また、下の関係グラフを見ると、4枚目のフレームから遠ざかるにつれて登録されていたフレームのx位置パラメータの値と変わらなくなってきているのもわかる。なお、図11の下の関係グラフのうち、点線であらわさている部分は、修正前の位置パラメータの値の近似線の様子を示している。
【0075】
一方、ステップS20で、検出された実際に撮影された被写体の3次元の座標位置と現在特定されているフレームの登録されている各位置パラメータの値との差が所定値以上でないと判断すると、CPU10は、現在特定しているフレームの次のフレームの位置パラメータが登録されているか否かを判断する(ステップS25)。
【0076】
ステップS25で、現在特定しているフレームの次のフレームの位置パラメータが登録されていると判断するとステップS26に進む。
ステップS26に進むと、CPU10は、現在特定されているフレームの次のフレームを撮影対象として特定して、ステップS13に戻る。
次のフレームとは、たとえば、現在特定しているフレームが1枚目のフレームの場合は次のフレームとして2枚目のフレームを特定し、現在特定されているフレームが2枚目のフレームの場合は次のフレームとして3枚目のフレームを特定する。
【0077】
一方、ステップS23で、現在特定しているフレーム後のフレームの位置パラメータが登録されていないと判断された場合、ステップS25で現在特定しているフレームの次のフレームの位置パラメータが登録されていないと判断すると、図8のステップS31に進み、CPU10は、次のフレームを撮影するか否かを判断する。
ここでは、N枚目のフレームの位置パラメータまで登録しているので、現在特定しているフレームがN枚目のフレームの場合には、ステップS23やステップS25で、現在特定しているフレーム後の、若しくは、現在特定しているフレームの次のフレームの位置パラメータが登録されていないと判断することになる。
【0078】
このとき、CPU10は、「次のフレームを撮影しますか」という質問を画像表示部15に表示させ、ユーザによってSETキーの操作が行われると次のフレームを撮影すると判断し、ユーザによってキャンセルキーの操作が行われると次のフレームを撮影しないと判断する。
ステップS31で、次のフレームを撮影すると判断すると、CPU10は、次のフレームを撮影対象として特定する(ステップS32)。
【0079】
次いで、CPU10は、登録されている各フレームの位置パラメータに基づいて、該特定したフレームの被写体の各位置パラメータを予測する(ステップS33)。この予測はスプライン関数によって予測する。このとき、次のフレームの各位置パラメータの値と既に登録されている過去の各フレームの各位置パラメータの値とが滑らかになるように、該次のフレームの各位置パラメータを予測する。
【0080】
次いで、CPU10は、スルー画像表示を開始して(ステップS34)、該予測された被写体の各位置パラメータの値及びステップS11で設定された被写体の大きさに基づいて、該特定されているフレームの被写体の撮影予定状態を示した撮影予定状態枠を画像表示部15に透過表示させる(ステップS35)。この透過表示は上述したステップS14と同じ動作なのでここでは説明を省略する。
【0081】
次いで、CPU10は、シャッタボタンが押下されたか否かを判断する(ステップS36)。
このとき、ユーザは、デジタルカメラ1の位置を変えることにより、撮影したい被写体が該透過表示された撮影予定状態枠と同じとなるように、被写体の位置、大きさを調整し、被写体の位置、大きさが透過表示された撮影予定状態枠と同じと判断した場合に、シャッタボタンを押下する。
【0082】
ステップS36で、シャッタボタンが押下されていないと判断すると押下されたと判断するまでステップS36に留まり、シャッタボタンが押下されたと判断すると、CPU10は、静止画撮影処理を行い、該得られた画像データを現在特定されているフレームの画像データとしてフラッシュメモリ14に記録する(ステップS37)。このとき、現在特定されているフレームの情報を一緒に記録する。このフレームの情報とは、何枚目のフレームに対応する画像データであるか否かを示す情報のことである。
【0083】
次いで、CPU10は、実際に撮影された画像データに基づいて、実際の被写体の位置、大きさを特定する(ステップS38)。この大きさの特定は、該透過表示された撮影予定状態枠付近にある被写体の特徴点を複数抽出し、該複数抽出した特徴点により被写体の輪郭を特定し、位置の特定は、該特定した輪郭の中央部を被写体の位置として特定する。
【0084】
次いで、CPU10は、該特定した実際の被写体の位置、大きさに基づいて、被写体の3次元の座標位置を検出する(ステップS39)。この2次元のものから3次元のものを検出する技術は周知技術なので説明を割愛する。
そして、CPU10は、該検出した3次元の座標位置と、現在特定されているフレームの登録されている各位置パラメータの値とを比較する(ステップS40)。
【0085】
次いで、CPU10は、該比較した両者の値の差が所定値以上であるか否かを判断する(ステップS41)。
ステップS40で、その差が所定値以上であると判断すると、CPU10は、画像の撮り直しを行うか否かを判断する(ステップS42)。
このとき、CPU10は、「予定していた被写体の撮影予定状態と違います。画像を撮り直しますか」という表示をさせ、ユーザによってSETキーの操作が行われると画像の撮り直しをしないと判断し、キャンセルキーの操作が行われると画像の撮り直しをすると判断する。
【0086】
ステップS42で、画像の撮り直しを行うと判断すると、CPU10は、現在特定されているフレームとしてステップS37で記録した画像データを削除して(ステップS43)、ステップS34に戻る。
一方、ステップS42で画像の撮り直しをしないと判断した場合は、CPU10は、ステップS39で検出した実際に撮影した被写体の3次元の座標位置を、現在特定しているフレームの被写体の各位置パラメータの値として位置パラメータテーブルに新たに追加記録(追加登録)して(ステップS44)、ステップS31に戻る。
【0087】
また、ステップS41でその差が所定値以上でないと判断した場合、ステップS33で予測した各位置パラメータを現在特定しているフレームの位置パラメータとして新たに追加記録(追加登録)して(ステップS45)、ステップS31に戻る。
一方、ステップS31で、次のフレームを撮影しないと判断すると、該記録した画像データに基づいて、フラッシュメモリ14上に動画ファイルを生成する(ステップS46)。
【0088】
図12は、位置パラメータが登録されているフレーム後のフレームを撮影するとステップS31で判断された場合に、新たに追加登録されたフレームのx位置のパラメータの様子を示す図である。
図12を見るとわかるように、n枚目のフレームの位置パラメータまでしか登録されていなかったが、n枚目以降のフレームの位置パラメータが登録されたのがわかる。過去の各フレームの位置パラメータに基づいて、該特定しているフレームの各位置パラメータの値が推測され、撮影予定状態枠が表示される。そして、実際に撮影された被写体の3次元の座標位置と該推測した各位置パラメータの値の差が所定値以上でない場合には該推測した各位置パラメータの値が該特定しているフレームの位置パラメータとして登録され、その差が所定値以上の場合には実際に撮影された被写体の3次元の座標位置が該特定しているフレームの各位置パラメータの値として登録される。
【0089】
以上のように、実施の形態においては、予めユーザが所望する動きとなるように、被写体の撮影予定状態を大まかに入力し(1部のフレームに対して各位置パラメータの値を入力し)、CPU10は、該入力した撮影予定状態に基づいて各フレームの撮影予定状態を算出して登録し、アニメーション動画撮影を行う場合には、各フレームの撮影毎に、該登録した撮影予定状態を示す撮影予定状態枠を透過表示させることにより、該登録した撮影予定状態と同じ状態で被写体の撮影するにようにユーザに促すことができ、アニメーション動画を容易に作成することができる。
【0090】
また、ユーザは、被写体の動きが所望の動きとなるように、1部のフレームに対して各位置パラメータの値を入力すると、自動的に各フレームの各位置パラメータの値を決めるので、ユーザは容易に位置パラメータの値を決めることができる。また、ユーザによって入力された1部のフレームの各位置パラメータの値に基づいて各フレームの位置パラメータの値が滑らかになるように、各位置パラメータの値を決めるので、被写体の動きが滑らかなアニメーション動画を作成することができる。
また、実際に撮影された被写体の状態と、登録した撮影予定状態の差が所定値以上ある場合に、画像の撮り直すことができるので、登録した撮影予定状態となるような画像を得ることができる。また、画像の撮り直しをしない場合は、被写体の動きが滑らかになるように、実際に撮影された被写体の状態に基づいて、以後のフレームの撮影予定状態を修正するようにしたので、登録した撮影予定状態と違う状態で被写体を撮影した場合であっても、被写体の動きが滑らかになるように、被写体を撮影することができ、動きが滑らかなアニメーション動画を作成することができる。
【0091】
また、位置パラメータを登録していないフレームを撮影する場合であっても、登録されている各フレームの各位置パラメータに基づいて、これから撮影する各位置パラメータの値を推測するので、位置パラメータを登録していないフレームを撮影する場合であっても対応することができる。たとえば、当初はこのぐらいの枚数を撮影すると思ってフレームの各位置パラメータの登録したが、実際に撮影してみてもう少しフレームを多く撮影したいと思う場合であっても対応することができる。
【0092】
[変形例]
D.上記実施の形態は以下のような態様でもよい。
【0093】
(01)上記実施の形態において、CCD5を、x軸とy軸の平面上にあり、且つ、CCD5の中心を(x,y,z)=(0,0,0)とするようにしたが、CCD5をx軸とy軸の平面上になくてもよいし、CCD5の中心を(x,y,z)=(0,0,0)でなくてもよい。つまり、x、y、zで構成される3次元を任意の角度、及び、距離にCCD5を配置したときに見える被写体を2次元投射により生成するようにしてもよい。
【0094】
(02)上記実施の形態において、フレーム毎に3次元の各位置パラメータを登録するようにしたが、フレーム毎にCCD5上の被写体の位置、及び、その大きさを登録するようにしてもよい。
【0095】
(03)上記実施の形態においては、各フレームの被写体の撮影予定状態として、3次元の各位置パラメータを登録するようにしたが、さらに、各フレーム毎の被写体の向きを示すパラメータを登録するようにしてもよい。
このときは、撮影予定となる被写体の位置、大きさとともにその向きも撮影予定状態として表示させるようにしてもよい。
また、このとき、実際に撮影された画像データに基づいて、被写体の向きを検出する方法としては、たとえば、被写体が人、動物などの目があるものである場合は、目と目の間の距離に応じて被写体の向きを検出するようにしてもよい。正面を向いているときの目と目の間の距離が一番長く、被写体の向きが斜めになるにつれて目と目の間の距離は短くなっていくからである。つまり、目の特徴点の相対的な位置関係によって被写体の向きを検出する。
また、撮影する被写体を360度のあらゆる角度から撮影して登録しておき、該登録した被写体の360度のあらゆる角度の画像データと、実際に撮影された被写体の画像データとを比較照合することにより実際に撮影された被写体の向きを検出するようにしてもよい。
また、図7のステップS17、図8のステップS38でも、上記登録した被写体の360度のあらゆる角度から撮影した画像データに基づいて、実際に撮影された被写体がいる位置及び大きさも特定するようにしてもよい。
【0096】
(04)上記実施の形態においては、被写体の撮影予定状態を、枠を表示させることにより撮影予定状態を表示させるようにしたが、枠に限らず、他の方法によって表示させるようにしてもよい。
【0097】
(05)上記実施の形態においては、予め各フレームの位置パラメータを登録して、アニメーション動画撮影を行うようにしたが、複数フレーム撮影をしていき、該撮影された画像データに基づいて被写体の3次元の座標位置を検出し、該検出された座標位置に基づいてその後のフレームの各位置パラメータを推測して透過表示させていくようにしてもよい。
【0098】
(06)上記実施の形態においては、登録されていないフレームの各位置パラメータの値を推測する場合は、少なくとも直前の2フレームの各位置パラメータに基づいて被写体の速度と移動している方向を算出し、該算出した被写体の速度と同じ速度で該算出した方向に移動した場合における各位置パラメータの値を算出するようにしてもよい。
また、登録されていないフレームの各位置パラメータの値を推測する場合は、少なくとも直前の3フレームの各位置パラメータに基づいて、被写体の加速度と移動している方向を算出し、該算出した加速度と同じ加速度で該算出した方向に移動した場合における各位置パラメータの値を算出するようにしてもよい。
また、登録されていないフレームの被写体の向きを示すパラメータの値を推測する場合は、少なくとも直前の2フレームの向きが変化する方向と、その変化の速度を算出し、該算出した速度と同じ速度で、該算出した向きが変化する方向に向きが変わった場合における向きを示すパラメータの値を算出するようにしてもよい。
【0099】
(07)上記実施の形態においては、ユーザによって入力された1部のフレームの被写体の状態を示した各位置パラメータによって、他のフレームの各位置パラメータを算出することにより、同時に、被写体の動きを特定するようにしたが、ユーザによって入力された概略的な被写体の動きによって、被写体の一連の動きを特定し、該特定された被写体の動きに基づいて、各フレームの各位置パラメータを算出するようにしてもよい。これによっても、アニメーション動画を容易に作成することができる。
【0100】
このユーザの被写体の概略的な動きの入力は、上記実施の形態のように、一部のフレームの被写体の状態を示した各位置パラメータによって直接概略的な被写体の動きを入力するようにしてもよいし、3次元空間において、ある時刻ではこの位置、この時刻ではこの位置という具合に被写体の動きを概略的に入力するようにしてもよい。
また、この場合は、該入力された概略的な被写体の動きに基づいて特定する一連の被写体の動きは、動きが滑らかになるように特定する。そして、該特定された動きに基づいて、各フレームに対応した被写体状態に変換し、各フレームの各位置パラメータを算出する。なお、このとき、ユーザによって入力されたフレームの位置パラメータの値を変えないように被写体の動きを特定するようにしてもよいし、ユーザによって入力されたフレームの位置パラメータの値によって、被写体の動きが滑らかにならない場合は、ユーザによって入力されたフレームの位置パラメータの値を変えて(修正して)、被写体の動きを特定するようにしてもよい。
【0101】
また、この場合、上記実施の形態においては、撮影予定の各位置パラメータと実際に撮影された被写体の3次元の座標位置が異なる場合は、以後のフレームの各位置パラメータを修正するようにしたが、特定した被写体の動きを修正(新たに特定)し、該修正された被写体の動きに基づいて、各フレームの位置パラメータを算出する。これにより、被写体の動きが滑らかになるように被写体を撮像することができる。
同様に、位置パラメータが登録されていないフレームを撮像する場合も、これまでの被写体の動きを予測して被写体の動きを新たに特定し、該特定された被写体の動きに基づいて、該フレームの位置パラメータを算出する。この動きの予測は、これまでに撮像されたフレームの各位置パラメータに基づいて、被写体の動きの方向、速度、加速度、向き等を特定し、該特定された被写体の動きに基づいて各フレームのパラメータの値を求める。これにより、被写体の動きが滑らかになるように被写体を撮像することができる。
【0102】
(08)上記実施の形態においては、背景に対してカメラを特定した場合について説明したが、背景に対してカメラを固定しない場合にも適用してもよい。この場合は、登録された各フレームの位置パラメータと、カメラの位置に基づいて、被写体の撮影予定状態を透過表示させる。
【0103】
(09)上記変形例(01)乃至(08)を矛盾しない範囲内で任意に組み合わせた態様であってもよい。
【0104】
(10)また、本発明の上記実施形態は、何れも最良の実施形態としての単なる例に過ぎず、本発明の原理や構造等をより良く理解することができるようにするために述べられたものであって、添付の特許請求の範囲を限定する趣旨のものでない。
したがって、本発明の上記実施形態に対してなされ得る多種多様な変形ないし修正はすべて本発明の範囲内に含まれるものであり、添付の特許請求の範囲によって保護されるものと解さなければならない。
【0105】
最後に、上記実施の形態においては、本発明の撮影装置をデジタルカメラ1に適用した場合について説明したが、上記の実施の形態に限定されるものではなく、要は、被写体を撮影することができる機器であれば適用可能である。
【図面の簡単な説明】
【0106】
【図1】本発明の実施の形態のデジタルカメラのブロック図である。
【図2】パラメータ登録の動作を示すフローチャートである。
【図3】x、y、zで表わされる3次元の様子の一例、及び、表示された位置グラフの様子の一例を示す図である。
【図4】x位置パラメータの入力が完了したときの、入力されたx位置パラメータの様子の一例、及び、該入力された位置パラメータに基づいてスプライン関数により求められた近似線が表示されたときの様子の一例を示す図である。
【図5】登録されるy位置パラメータの元となる近似線の様子の一例、及び、登録されるz位置パラメータの元となる近似線の様子の一例を示すものである。
【図6】メモリ12の位置パラメータテーブルに登録された被写体の各位置パラメータの様子の一例を示す図である。
【図7】アニメーション動画撮影の動作を示すフローチャートである。
【図8】アニメーション動画撮影の動作を示すフローチャートである。
【図9】該特定されているフレームの各位置パラメータの値と、被写体の大きさに基づいて生成される3次元モデルの一例を示すものである。
【図10】生成された被写体の撮影予定状態枠の一例を示す図である。
【図11】修正されたx位置パラメータとフレームとの関係グラフの様子の一例を示す図である。
【図12】新たに追加登録されたフレームのx位置のパラメータの様子を示す図である。
【符号の説明】
【0107】
1 デジタルカメラ
2 撮影レンズ
3 レンズ駆動ブロック
4 絞り
5 CCD
6 ドライバ
7 TG
8 ユニット回路
9 画像生成部
10 CPU
11 キー入力部
12 メモリ
13 DRAM
14 フラッシュメモリ
15 画像表示部
16 バス
【特許請求の範囲】
【請求項1】
撮影された複数の画像データを用いて所定の被写体の動きを表現した実写アニメーション動画の作成を支援する撮影手段と電子ファインダを備えた撮影装置であって、
前記実写アニメーション動画を構成する各フレームに対応させて、前記所定の被写体の状態を示したパラメータを生成する生成手段と、
前記生成手段により生成されたパラメータに基づいて、各フレームの撮影の際に、撮影するフレームに対応する前記被写体の撮影予定状態を前記電子ファインダに案内表示させる案内表示制御手段と、
前記案内表示制御手段による案内表示に対応して前記撮影手段により撮影された各フレームの画像データに基づいて動画データを生成する動画生成手段と、
を備えたことを特徴とする撮影装置。
【請求項2】
前記実写アニメーション動画の背景部分に対応した3次元空間内での前記所定の被写体の動きを特定する特定手段と、
前記生成手段は、
前記実写アニメーション動画における各フレームが再生されるタイミング情報に従って、前記特定手段によって特定された前記3次元空間内での前記所定の被写体の動きを、各フレームに対応した前記所定の被写体の状態に変換することにより、前記パラメータを生成することを特徴とする請求項1記載の撮影装置。
【請求項3】
前記アニメーション動画を構成する各フレームのうち、一部のフレームに写る前記所定の被写体の状態を示すパラメータをユーザが入力するための入力手段を備え、
前記特定手段は、
前記入力手段により入力された一部のフレームに写る前記所定の被写体の状態を示すパラメータに基づいて、前記実写アニメーション動画の背景部分に対応した3次元空間内での前記所定の被写体の動きを特定することを特徴とする請求項2記載の撮影装置。
【請求項4】
前記特定手段は、
前記入力手段により入力された一部のフレームに写る前記所定の被写体の状態を示すパラメータに基づいて、前記所定の被写体の動きが滑らかになるように、前記実写アニメーション動画の背景部分に対応した3次元空間内での前記所定の被写体の動きを特定することを特徴とする請求項3記載の撮像装置。
【請求項5】
前記特定手段は、
前記所定の被写体の動きが滑らかになるように、前記入力手段により入力された一部のフレームに写る前記所定の被写体の状態を示すパラメータを修正して、前記実写アニメーション動画の背景部分に対応した3次元空間内での前記所定の被写体の動きを特定することを特徴とする請求項3記載の撮像装置。
【請求項6】
実際に撮影された画像データに基づいて、実際に撮影されたフレームに対応する前記所定の被写体の撮影状態を示すパラメータを検出する検出手段を備え、
前記特定手段は、
前記検出手段により検出されたパラメータに基づいて、前記実写アニメーション動画の背景部分に対応した3次元空間内での前記所定の被写体の動きを新たに特定することを特徴とする請求項2乃5の何れかに至記載の撮影装置。
【請求項7】
前記特定手段は、
前記検出手段により検出された、少なくともパラメータを生成する現フレームの直前の2フレームの状態に基づいて、前記所定の被写体の移動の方向と速度を特定し、
前記生成手段は、
該検出された移動の方向及び速度に基づいて、該現フレームのパラメータを生成することを特徴とする請求項6記載の撮影装置。
【請求項8】
前記特定手段は、
前記検出手段により検出された、少なくともパラメータを生成する現フレームの直前の3フレームの状態に基づいて、前記被写体の移動の方向と加速度を特定し、
前記生成手段は、
該検出された移動の方向及び加速度に基づいて、該現フレームのパラメータを生成することを特徴とする請求項6又は7記載の撮影装置。
【請求項9】
前記特定手段は、
前記検出手段により検出された、少なくともパラメータを生成する現フレームの直前の2フレームの状態に基づいて、前記所定の被写体の向きが変化する方向と速度を特定し、
前記生成手段は、
該検出された向きが変化する方向及び速度に基づいて、該現フレームのパラメータを生成することを特徴とする請求項6乃至8の何れかに記載の撮影装置。
【請求項10】
前記アニメーション動画を構成する各フレームのうち、一部のフレームに写る前記所定の被写体の状態を示すパラメータをユーザが入力するための入力手段を備え、
前記生成手段は、
前記入力手段により入力された一部のフレームに対応するパラメータに基づいて、該被写体の動きが滑らかになるように、この一部のフレーム以外の各フレームに対応する該被写体の状態を示したパラメータを生成することを特徴とする請求項1記載の撮影装置。
【請求項11】
前記生成手段は、
前記所定の被写体の動きが滑らかになるように、前記入力手段により入力されたパラメータを修正して、各フレームに写る該被写体の状態を示したパラメータを生成することを特徴とする請求項10記載の撮影装置。
【請求項12】
実際に撮影された画像データに基づいて、実際に撮影されたフレームに対応する前記所定の被写体の撮影状態を検出する検出手段と、
前記検出手段により検出された前記所定の被写体の撮影状態に基づいて、前記生成手段により生成されたパラメータのうち、まだ撮影されていないフレーム部分のパラメータを修正する修正手段と、
を備えたことを特徴とする請求項10又は11記載の撮影装置。
【請求項13】
実際に撮影された各フレームの画像データに基づいて、実際に撮影された前記所定の被写体の撮影状態を検出する検出手段を備え、
前記生成手段は、
前記検出手段により検出された各フレームの前記所定の被写体の撮影状態に基づいて、まだ生成していないフレーム部分のパラメータを生成することを特徴とする請求項10乃至12の何れかに記載の撮影装置。
【請求項14】
前記生成手段は、
前記検出手段により検出された、少なくともパラメータを生成する現フレームの直前の2フレームの状態に基づいて、前記所定の被写体の移動の方向と、速度を検出し、該検出された移動の方向及び速度に基づいて、該現フレームのパラメータを生成することを特徴とする請求項13記載の撮影装置。
【請求項15】
前記生成手段は、
前記検出手段により検出された、少なくともパラメータを生成する現フレームの直前の3フレームの状態に基づいて、前記所定の被写体の移動の方向と、加速度を検出し、該検出された移動の方向及び加速度に基づいて、該現フレームのパラメータを生成することを特徴とする請求項13又は14記載の撮影装置。
【請求項16】
前記生成手段は、
前記検出手段により検出された、少なくともパラメータを生成する現フレームの直前の2フレームの状態に基づいて、前記所定の被写体の向きが変化する方向と、速度を検出し、該検出された向きが変化する方向及び速度に基づいて、該現フレームのパラメータを生成することを特徴とする請求項13乃至15の何れかに記載の撮影装置。
【請求項17】
前記検出手段は、
前記被写体の特徴点を検出することにより、被写体の撮影状態を検出することを特徴とする6乃至9、12乃至16の何れかに記載の撮影装置。
【請求項18】
前記検出手段は、
前記被写体の複数の特徴点を検出し、該検出された複数の特徴点の中心を被写体の位置として検出することを特徴とする請求項17記載の撮影装置。
【請求項19】
前記検出手段は、
前記被写体の複数の特徴点を検出し、該検出された複数の特徴点の相対的な位置関係に基づいて前記被写体の向きを検出することを特徴とする請求項17又は18記載の撮影装置。
【請求項20】
撮影された複数の画像データを用いて所定の被写体の動きを表現した実写アニメーション動画の作成を支援する撮影手段と電子ファインダを備えた撮影装置を実行させるためのプログラムであって、
前記実写アニメーション動画を構成する各フレームに対応させて前記所定の被写体の状態を示したパラメータを生成する生成処理と、
前記生成処理により生成されたパラメータに基づいて、各フレームの撮影の際に、撮影するフレームに対応する前記被写体の撮影予定状態を前記電子ファインダに案内表示させる案内表示制御処理と、
前記案内表示制御処理による案内表示に対応して前記撮影手段により撮影素子に撮影された各フレームの画像データに基づいて動画データを生成する動画生成処理と、
を含むことを特徴とするプログラム。
【請求項1】
撮影された複数の画像データを用いて所定の被写体の動きを表現した実写アニメーション動画の作成を支援する撮影手段と電子ファインダを備えた撮影装置であって、
前記実写アニメーション動画を構成する各フレームに対応させて、前記所定の被写体の状態を示したパラメータを生成する生成手段と、
前記生成手段により生成されたパラメータに基づいて、各フレームの撮影の際に、撮影するフレームに対応する前記被写体の撮影予定状態を前記電子ファインダに案内表示させる案内表示制御手段と、
前記案内表示制御手段による案内表示に対応して前記撮影手段により撮影された各フレームの画像データに基づいて動画データを生成する動画生成手段と、
を備えたことを特徴とする撮影装置。
【請求項2】
前記実写アニメーション動画の背景部分に対応した3次元空間内での前記所定の被写体の動きを特定する特定手段と、
前記生成手段は、
前記実写アニメーション動画における各フレームが再生されるタイミング情報に従って、前記特定手段によって特定された前記3次元空間内での前記所定の被写体の動きを、各フレームに対応した前記所定の被写体の状態に変換することにより、前記パラメータを生成することを特徴とする請求項1記載の撮影装置。
【請求項3】
前記アニメーション動画を構成する各フレームのうち、一部のフレームに写る前記所定の被写体の状態を示すパラメータをユーザが入力するための入力手段を備え、
前記特定手段は、
前記入力手段により入力された一部のフレームに写る前記所定の被写体の状態を示すパラメータに基づいて、前記実写アニメーション動画の背景部分に対応した3次元空間内での前記所定の被写体の動きを特定することを特徴とする請求項2記載の撮影装置。
【請求項4】
前記特定手段は、
前記入力手段により入力された一部のフレームに写る前記所定の被写体の状態を示すパラメータに基づいて、前記所定の被写体の動きが滑らかになるように、前記実写アニメーション動画の背景部分に対応した3次元空間内での前記所定の被写体の動きを特定することを特徴とする請求項3記載の撮像装置。
【請求項5】
前記特定手段は、
前記所定の被写体の動きが滑らかになるように、前記入力手段により入力された一部のフレームに写る前記所定の被写体の状態を示すパラメータを修正して、前記実写アニメーション動画の背景部分に対応した3次元空間内での前記所定の被写体の動きを特定することを特徴とする請求項3記載の撮像装置。
【請求項6】
実際に撮影された画像データに基づいて、実際に撮影されたフレームに対応する前記所定の被写体の撮影状態を示すパラメータを検出する検出手段を備え、
前記特定手段は、
前記検出手段により検出されたパラメータに基づいて、前記実写アニメーション動画の背景部分に対応した3次元空間内での前記所定の被写体の動きを新たに特定することを特徴とする請求項2乃5の何れかに至記載の撮影装置。
【請求項7】
前記特定手段は、
前記検出手段により検出された、少なくともパラメータを生成する現フレームの直前の2フレームの状態に基づいて、前記所定の被写体の移動の方向と速度を特定し、
前記生成手段は、
該検出された移動の方向及び速度に基づいて、該現フレームのパラメータを生成することを特徴とする請求項6記載の撮影装置。
【請求項8】
前記特定手段は、
前記検出手段により検出された、少なくともパラメータを生成する現フレームの直前の3フレームの状態に基づいて、前記被写体の移動の方向と加速度を特定し、
前記生成手段は、
該検出された移動の方向及び加速度に基づいて、該現フレームのパラメータを生成することを特徴とする請求項6又は7記載の撮影装置。
【請求項9】
前記特定手段は、
前記検出手段により検出された、少なくともパラメータを生成する現フレームの直前の2フレームの状態に基づいて、前記所定の被写体の向きが変化する方向と速度を特定し、
前記生成手段は、
該検出された向きが変化する方向及び速度に基づいて、該現フレームのパラメータを生成することを特徴とする請求項6乃至8の何れかに記載の撮影装置。
【請求項10】
前記アニメーション動画を構成する各フレームのうち、一部のフレームに写る前記所定の被写体の状態を示すパラメータをユーザが入力するための入力手段を備え、
前記生成手段は、
前記入力手段により入力された一部のフレームに対応するパラメータに基づいて、該被写体の動きが滑らかになるように、この一部のフレーム以外の各フレームに対応する該被写体の状態を示したパラメータを生成することを特徴とする請求項1記載の撮影装置。
【請求項11】
前記生成手段は、
前記所定の被写体の動きが滑らかになるように、前記入力手段により入力されたパラメータを修正して、各フレームに写る該被写体の状態を示したパラメータを生成することを特徴とする請求項10記載の撮影装置。
【請求項12】
実際に撮影された画像データに基づいて、実際に撮影されたフレームに対応する前記所定の被写体の撮影状態を検出する検出手段と、
前記検出手段により検出された前記所定の被写体の撮影状態に基づいて、前記生成手段により生成されたパラメータのうち、まだ撮影されていないフレーム部分のパラメータを修正する修正手段と、
を備えたことを特徴とする請求項10又は11記載の撮影装置。
【請求項13】
実際に撮影された各フレームの画像データに基づいて、実際に撮影された前記所定の被写体の撮影状態を検出する検出手段を備え、
前記生成手段は、
前記検出手段により検出された各フレームの前記所定の被写体の撮影状態に基づいて、まだ生成していないフレーム部分のパラメータを生成することを特徴とする請求項10乃至12の何れかに記載の撮影装置。
【請求項14】
前記生成手段は、
前記検出手段により検出された、少なくともパラメータを生成する現フレームの直前の2フレームの状態に基づいて、前記所定の被写体の移動の方向と、速度を検出し、該検出された移動の方向及び速度に基づいて、該現フレームのパラメータを生成することを特徴とする請求項13記載の撮影装置。
【請求項15】
前記生成手段は、
前記検出手段により検出された、少なくともパラメータを生成する現フレームの直前の3フレームの状態に基づいて、前記所定の被写体の移動の方向と、加速度を検出し、該検出された移動の方向及び加速度に基づいて、該現フレームのパラメータを生成することを特徴とする請求項13又は14記載の撮影装置。
【請求項16】
前記生成手段は、
前記検出手段により検出された、少なくともパラメータを生成する現フレームの直前の2フレームの状態に基づいて、前記所定の被写体の向きが変化する方向と、速度を検出し、該検出された向きが変化する方向及び速度に基づいて、該現フレームのパラメータを生成することを特徴とする請求項13乃至15の何れかに記載の撮影装置。
【請求項17】
前記検出手段は、
前記被写体の特徴点を検出することにより、被写体の撮影状態を検出することを特徴とする6乃至9、12乃至16の何れかに記載の撮影装置。
【請求項18】
前記検出手段は、
前記被写体の複数の特徴点を検出し、該検出された複数の特徴点の中心を被写体の位置として検出することを特徴とする請求項17記載の撮影装置。
【請求項19】
前記検出手段は、
前記被写体の複数の特徴点を検出し、該検出された複数の特徴点の相対的な位置関係に基づいて前記被写体の向きを検出することを特徴とする請求項17又は18記載の撮影装置。
【請求項20】
撮影された複数の画像データを用いて所定の被写体の動きを表現した実写アニメーション動画の作成を支援する撮影手段と電子ファインダを備えた撮影装置を実行させるためのプログラムであって、
前記実写アニメーション動画を構成する各フレームに対応させて前記所定の被写体の状態を示したパラメータを生成する生成処理と、
前記生成処理により生成されたパラメータに基づいて、各フレームの撮影の際に、撮影するフレームに対応する前記被写体の撮影予定状態を前記電子ファインダに案内表示させる案内表示制御処理と、
前記案内表示制御処理による案内表示に対応して前記撮影手段により撮影素子に撮影された各フレームの画像データに基づいて動画データを生成する動画生成処理と、
を含むことを特徴とするプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2009−100167(P2009−100167A)
【公開日】平成21年5月7日(2009.5.7)
【国際特許分類】
【出願番号】特願2007−268901(P2007−268901)
【出願日】平成19年10月16日(2007.10.16)
【出願人】(000001443)カシオ計算機株式会社 (8,748)
【Fターム(参考)】
【公開日】平成21年5月7日(2009.5.7)
【国際特許分類】
【出願日】平成19年10月16日(2007.10.16)
【出願人】(000001443)カシオ計算機株式会社 (8,748)
【Fターム(参考)】
[ Back to top ]