以下、本発明によるカラオケ装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。また、本実施の形態において説明する各情報の形式、内容などは、あくまで例示であり、各情報の持つ意味を示すことができれば、形式、内容などは問わない。
(実施の形態1)
本実施の形態において、歌唱者を撮影し、当該歌唱者の動きと同じ動きをするモデル画像を構成し、当該モデル画像を背景画像上に配置した画像である合成画像を構成し、当該合成画像と楽曲とを共に出力するカラオケ装置1について説明する。
図1は、本実施の形態におけるカラオケ装置1のブロック図である。カラオケ装置1は、背景画像格納部101、キャラクタ情報格納部102、手本画像格納部103、楽曲データ格納部104、受付部105、撮影部106、スケルトン情報取得部107、モデル画像構成部108、合成画像構成部109、画像出力部110、楽曲再生部111を備える。
背景画像格納部101には、背景の画像である背景画像が格納される。本実施の形態において、「画像」とは、静止画または動画である。動画は、2以上の静止画を有する。また、動画が有する2以上の静止画は、通常、動画を構成するフレームである。また、「背景画像」とは、例えば、後述において説明するモデル画像が配置される画像である。言い換えると、「背景画像」は、例えば、いわゆる仮想空間を示す画像である。また、「背景画像」は、例えば、仮想2次元空間あるいは仮想3次元空間である。また、「背景画像」は、例えば、楽曲を歌う歌手を撮影した画像である。当該「楽曲を歌う歌手を撮影した画像」とは、例えば、いわゆるMV(Music Video)や、PV(Promotion Video)などと呼ばれる動画や、当該MVやPV中の一シーンをキャプチャした静止画などである。また、当該「楽曲を歌う歌手を撮影した画像」を、以下、適宜、歌手背景画像とする。また、「歌手背景画像」以外の背景画像を、以下、適宜、通常背景画像とする。「通常背景画像」は、例えば、いわゆるステージや、風景、幾何学的な模様などを示す画像である。つまり、背景画像は、いわゆる背景となり得る画像であればよく、その内容などは、問わない。
キャラクタ情報格納部102には、キャラクタを示す情報であるキャラクタ情報が格納される。「キャラクタ」とは、通常、いわゆるアバターである。あた、「キャラクタ」は、例えば、いわゆるアニメに登場するキャラクタや、いわゆるマスコットキャラクタなどであってもよい。また、「キャラクタ」は、例えば、歌唱者であってもよい。また、「キャラクタ情報」は、通常、キャラクタの形状を示す1以上の座標およびキャラクタの各部位の色を示す情報の集合である。当該座標は、通常、3次元(x,y,z)である。また、当該座標は、例えば、2次元(x,y)であってもよい。また、「キャラクタ情報」は、例えば、キャラクタを示す画像であってもよい。当該「キャラクタを示す画像」は、通常、キャラクタが3次元的に表現される画像である。また、当該「キャラクタを示す画像」は、例えば、キャラクタが2次元的に表現される画像であってもよい。また、当該「キャラクタを示す画像」は、通常、静止画である。
以上より、キャラクタ情報は、キャラクタの形状や色などを示すことができる情報であればよく、そのデータ構造などは、問わない。なお、3次元のキャラクタを示すキャラクタ情報を、以下、適宜、3次元キャラクタ情報とする。また、2次元のキャラクタを示すキャラクタ情報を、以下、適宜、2次元キャラクタ情報とする。
手本画像格納部103には、楽曲に対応するダンスの手本を示す画像である手本画像が格納される。当該「楽曲」は、通常、後述の楽曲再生部111が楽曲データを再生することにより出力される楽曲である。また、「手本画像」は、通常、動画である。また、「手本画像」は、例えば、人物やキャラクタなどがダンスをしている様子を示す画像である。また、「手本画像」は、ダンスにおける体の動きを示す画像であればよい。
楽曲データ格納部104には、1以上の楽曲データが格納される。「楽曲データ」とは、楽曲を電子的に扱うための情報である。また、「楽曲」とは、いわゆる「音楽」と呼ばれるものや、いわゆる「曲」と呼ばれるものなどである。また、「楽曲データ」は、楽曲を電子的に扱うための情報であれば、形式などは問わない。「楽曲データ」は、例えば、MIDIや、WAV、MP3などの形式である。また、「楽曲データ」は、通常、楽曲データの識別情報(以下、適宜、楽曲データ識別情報とする)を有する。「楽曲データ識別情報」は、例えば、歌手名および楽曲名である。また、当該識別情報は、例えば、いわゆるファイル名であってもよい。なお、楽曲データ格納部104には、通常、ネットワークから受信した楽曲データが蓄積される。また、当該楽曲データの受信は、通常、図示しない受信部が行う。
受付部105は、指示を受け付ける。当該指示は、例えば、楽曲データを選択する指示である楽曲選択指示や、電源ONの指示、電源OFFの指示などである。なお、受付部105が電源ONの指示や電源OFFの指示などを受け付けた場合、カラオケ装置1は、通常、当該受け付けた指示に応じた処理を行う。
また、受け付けとは、タッチパネルや、リモコン、キーボードなどの入力デバイスから入力された情報の取得、光ディスクや磁気ディスク、半導体メモリなどの記録媒体に格納されている情報の取得、有線もしくは無線の通信回線を介して送信された情報の受信などを含む概念である。
また、受付部105における指示の入力手段は、メニュー画面によるものや、キーボードなど、何でもよい。受付部105は、メニュー画面の制御ソフトウェアや、キーボード等の入力手段のデバイスドライバなどで実現され得る。
撮影部106は、歌唱者を撮影する。そして、撮影部106は、当該歌唱者が写された画像である歌唱者画像を取得する。当該「歌唱者」は、通常、1人である。また、当該「歌唱者」は、例えば、2人以上であってもよい。また、「歌唱者画像」には、少なくとも歌唱者が写されていればよく、その他の物体などが写されているか否かについては、問わない。
また、「歌唱者画像」は、通常、距離情報、輝度情報、またはRGB情報のうちの1以上の情報を含む画像である。また、「歌唱者画像」は、例えば、距離画像である。「距離画像」とは、1以上の距離情報を有する画像である。また、「距離情報」とは、通常、カラオケ装置1から歌唱者までの距離を示す情報である。また、「歌唱者までの距離」とは、具体的に、歌唱者の頭や目、鼻、口、肩、胸、腰、膝などの各部位や、歌唱者の体の表面上の任意の点までの距離である。また、「距離情報」は、例えば、画像を構成する1以上の各画素に対応付いている。また、「距離画像」は、距離情報のみで構成されていてもよいし、RGB情報や輝度情報などをも有していてもよい。なお、歌唱者画像のデータ構造は問わない。
また、「歌唱者画像」は、例えば、撮影画像であってもよい。「撮影画像」とは、1以上の距離情報を有さない画像である。また、「撮影画像」は、通常、いわゆるカラー画像であるが、いわゆるグレースケール画像であってもよい。
以上より、「歌唱者画像」は、例えば、RGB情報と輝度情報のいずれか一方または両方を有していてもよいし、両方を有していなくてもよい。「RGB情報」とは、画像を構成する1以上の各画素の色を示す情報である。また、「輝度情報」とは、画像を構成する1以上の各画素の輝度を示す情報である。また、「輝度」には、明暗や、濃淡なども含み、広く解する。また、「画素」は、通常、画像中の座標(x,y)により特定される。
また、撮影部106は、例えば、距離画像と撮影画像のいずれか一方のみを取得してもよいし、両方を取得してもよい。距離画像および撮影画像を取得する場合、当該距離画像および当該撮影画像において、撮影者が写されている領域は、通常、同様の位置である。つまり、距離画像および撮影画像を取得する場合、撮影部106は、通常、歌唱者が同様の位置に配置された距離画像および撮影画像を取得する。また、「歌唱者画像の取得」には、歌唱者の撮影を開始し、歌唱者画像の取得を開始することも含まれる。
なお、撮影部106は、通常、いわゆる距離画像カメラから、距離画像を取得する。また、撮影部106は、例えば、いわゆるステレオカメラから、距離画像を取得してもよい。また、撮影部106は、例えば、CMOSやCCDなどのイメージセンサ(固体撮像素子)や、イメージセンサを用いたカメラ(デジタルスチルカメラ、デジタルビデオカメラ)などから、撮影画像を取得する。また、撮影部106は、例えば、これらの装置を有していてもよいし、これらの装置で実現され得てもよい。また、撮影部106の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。
また、距離画像カメラには、例えば、3次元距離画像カメラZCシリーズ(http://www.optex.co.jp/product/3d.html)や、TOF方式距離画像カメラDISTANZAシリーズ「http://www.brainvision.co.jp/xoops/modules/tinyd4/index.php?id=15」、KINECT for Windows(http://www.microsoft.com/en-us/kinectforwindows/)などがある。
スケルトン情報取得部107は、歌唱者画像を用いてスケルトン情報を取得する。当該歌唱者画像は、撮影部106が取得した歌唱者画像である。また、「スケルトン情報」とは、歌唱者の動きを示す情報である。また、当該「動き」とは、動作や、体勢、姿勢などを含み、広く解する。また、「スケルトン情報を取得する」とは、スケルトン情報を構成することであってもよい。
具体的に、「スケルトン情報」とは、いわゆるジョイントの位置を示す1以上の座標の集合である。言い換えると、「スケルトン情報」とは、いわゆるジョイントの位置を示す1以上の座標から構成される情報である。「ジョイント」とは、歌唱者の関節(肘、膝、手首、足首、首など)、および関節を軸に動く部位の端点(指先、足先、頭頂部など)である。また、「ジョイント」は、例えば、「ノード」としてもよい。また、当該「座標」は、通常、3次元の座標である。また、当該「座標」は、例えば、2次元の座標であってもよい。また、「スケルトン情報」が有する座標は、通常、連結しているジョイントごとに、対応付いている。つまり、例えば、肘と手首とは骨により連結されている。従って、「スケルトン情報」において、肘の座標と手首の座標とは、対応付いている。また、スケルトン情報が有する1以上の各座標には、例えば、当該座標に対応するジョイントを識別する情報(以下、適宜、ジョイント識別情報とする)が対応付いていてもよい。
また、スケルトン情報取得部107は、例えば、以下のいずれかの場合に応じて、スケルトン情報を取得する。
(A)歌唱者画像が距離画像である場合
(B)歌唱者画像が撮影画像である場合
(A)の場合:この場合は、撮影部106が距離画像を取得した場合である。この場合、スケルトン情報取得部107は、通常、距離画像を用いて、3次元の座標から構成されるスケルトン情報を取得する。当該スケルトン情報の取得の手順は、例えば、以下のとおりである。
(1)距離画像が有する距離情報を用いて、当該距離情報が示す距離が予め決められた条件を満たすほど近い画素の座標(x,y)を取得する。これにより、距離画像中に写された歌唱者の領域(以下、適宜、歌唱者領域とする)が検出される。
(2)(1)で検出した歌唱者領域の輪郭を検出する。
(3)(2)で検出した輪郭に対してパターン認識を行い、距離画像における歌唱者のジョイントを検出する。これにより、距離画像中に写された歌唱者の各ジョイントに対応する2次元の座標(x,y)が取得される。
(4)(3)で取得した2次元の座標(x,y)を、連結しているジョイントごとに対応付ける。
(5)(4)で対応付けた2次元の座標(x,y)で示される各画素に対応する距離情報と、予め決められた算出式(以下、適宜、ジョイント座標値算出式とする)とを用いて、当該距離情報に対応する座標値(z)を算出する。
(6)(4)で対応付けた2次元の座標(x,y)と、(4)で算出した座標値(z)とを対応づけ、3次元の座標(x,y,z)を取得する。これにより、各ジョイントの位置を示す3次元の座標の集合(スケルトン情報)が取得される。
また、(A)の場合、スケルトン情報の取得の手順は、例えば、以下のとおりであってもよい。
(1’)距離画像が有する距離情報を用いて、当該距離情報が示す距離が予め決められた条件を満たすほど近い画素の座標(x,y)を取得する。これにより、歌唱者領域が検出される。
(2’)(1’)で検出した歌唱者領域内の各画素に対応する距離情報と、予め決められた算出式(以下、適宜、歌唱者座標値算出式とする)とを用いて、当該距離情報に対応する座標値(z)を算出する。
(3’)(1’)で取得した2次元の座標(x,y)と、(2’)で算出した座標値(z)とを対応付け、3次元の座標(x,y,z)を取得する。これにより、距離画像内に写された歌唱者の形状が検出される。
(4’)予め保持している基準スケルトン情報に、(3’)で取得した歌唱者の形状を適用する。当該「基準スケルトン情報」とは、基準の動きを示すスケルトン情報である。また、当該「適用する」とは、当該スケルトン情報が有する3次元の座標を、歌唱者の形状に合わせて変更することである。また、当該歌唱者の形状の適用には、通常、逆運動学を用いる。これにより、各ジョイントの位置を示す3次元の座標の集合(スケルトン情報)が取得される。
なお、上記(1)、(1’)において、スケルトン情報取得部107は、例えば、距離情報が示す距離が予め決められた条件を満たす1以上の画素が隣接して形成される領域を、歌唱者領域として検出してもよい。この場合、スケルトン情報取得部107は、通常、当該1以上の画素が隣接して形成される領域の面積が、予め決められた条件を満たすほど大きい場合に、当該領域を歌唱者領域として検出する。
また、上記(1)、(1’)において、スケルトン情報取得部107は、例えば、距離画像に対して二値化やラベリングなどの画像処理を施し、歌唱者領域を検出してもよい。
また、上記(5)におけるジョイント座標値算出式、および上記(2’)における歌唱者座標値算出式は、例えば、距離情報を代入するための変数を有する。また、当該ジョイント座標値算出式および歌唱者座標値算出式は、例えば、いわゆる関数(プログラム)であってもよい。また、スケルトン情報取得部107は、通常、ジョイント座標値算出式および歌唱者座標値算出式を予め保持している。また、ジョイント座標値算出式と歌唱者座標値算出式とは、通常、異なる。
また、上記(A)の場合、スケルトン情報取得部107は、例えば、2次元の座標から構成されるスケルトン情報を取得してもよい。当該スケルトン情報の取得の手順は、例えば、上記の(1)から(4)までの処理である。また、当該スケルトン情報の取得の手順は、例えば、上記の(1’)から(4’)までの処理と、その後に続く以下の(5’)の処理である。
(5’)(4’)で取得した1以上の各3次元の座標から、座標値(z)を削除する。
(B)の場合:この場合は、撮影部106が撮影画像を取得した場合である。この場合、スケルトン情報取得部107は、通常、撮影画像を用いて、2次元の座標から構成されるスケルトン情報を取得する。当該スケルトン情報の取得の手順は、例えば、以下のとおりである。
(1)撮影画像に対して二値化やラベリングなどの画像処理を施し、撮影画像中に写された歌唱者の輪郭を検出する。
(2)(1)で検出した輪郭に対してパターン認識を行い、撮影画像における歌唱者のジョイントを検出する。これにより、撮影画像中に写された歌唱者の各ジョイントに対応する2次元の座標(x,y)が取得される。
(3)(2)で取得した2次元の座標を、連結しているジョイントごとに対応付ける。これにより、各ジョイントの位置を示す2次元の座標の集合(スケルトン情報)が取得される。
また、上記(B)の場合において、スケルトン情報の取得の手順は、例えば、以下のとおりであってもよい。
(1’)撮影画像に対して二値化やラベリングなどの画像処理を施し、撮影画像中の歌唱者領域を検出する。
(2’)(1’)で検出した歌唱者領域に対して細線化の処理を施し、撮影画像中に写された歌唱者の中心線を取得する。
(3’)(2’)で取得した中心線の交点や、端点、交点と端点の中点(中心線上の点)などの2次元の座標(x,y)を取得する。これにより、撮影画像中に写された歌唱者の各ジョイントに対応する2次元の座標(x,y)が取得される。
(4’)(3’)で取得した座標を、中心線により連結されている座標ごとに対応付ける。これにより、各ジョイントの位置を示す2次元の座標の集合が取得される。
また、スケルトン情報取得部107は、取得した各ジョイントの座標に対して、通常、当該各ジョイントを識別するジョイント識別情報を対応付ける。例えば、右肘の座標を取得した場合、スケルトン情報取得部107は、当該右肘の座標に、例えば、ジョイント識別情報「右肘」を対応付ける。なお、ジョイント識別情報は、通常、予め決められた記憶領域に格納されている。
また、3次元の座標から構成されるスケルトン情報を、以下、適宜、3次元スケルトン情報とする。また、2次元の座標から構成されるスケルトン情報を、以下、適宜、2次元スケルトン情報とする。
なお、人物が写された画像(ここでは、歌唱者画像)を用いてスケルトン情報を取得する方法や手順などは、公知であるので、詳細な説明を省略する。なお、距離画像を用いてのスケルトン情報の取得は、例えば、市販のソフトウェアや、市販の距離画像カメラに付属のSDK(Software Development Kit)などを用いることにより行うことが可能である。
また、スケルトン情報の取得に際して、スケルトン情報取得部107は、例えば、歌唱者画像から予め決められた条件(以下、適宜、画素削除条件とする)を満たす画素を削除してもよい。この場合、スケルトン情報取得部107は、当該削除後の歌唱者画像を用いて、スケルトン情報を取得する。また、これにより、歌唱者画像からより高速にスケルトン情報を取得することができる。なお、当該「画素の削除」とは、いわゆる画素の間引きである。また、当該「画素削除条件」とは、例えば、削除するか否かが判断される対象となる画素に対応する距離情報と、当該画素の周囲の4個(4近傍)または8個(8近傍)の各画素に対応する距離情報との差の平均が予め決められた閾値以下であることや、当該画素の2次元の座標(x,y)の座標値が共に偶数であること、当該画素の2次元の座標(x,y)の座標値が共に奇数であることなどである。
モデル画像構成部108は、モデル画像を構成する。具体的に、モデル画像構成部108は、歌唱者画像に含まれる情報を用いて、歌唱者の1以上の属性値を取得し、少なくとも一部は当該歌唱者の1以上の属性値を用いてモデルを示す画像であるモデル画像を構成する。「歌唱者画像に含まれる情報」とは、例えば、距離情報、輝度情報、またはRGB情報のうちの1以上の情報のうち、歌唱者の領域に対応する距離情報、輝度情報、またはRGB情報のうちの1以上の情報である。また、「一部」とは、時間的、または空間的、または時間的及び空間的な一部である。「時間的な一部」とは、モデル画像が動画である場合の、一部の時間帯のことを言う。また、「空間的な一部」とは、歌唱者が有する1以上の部位のうちの一部を言う。また、「歌唱者の属性値」とは、歌唱者に関する情報であり、歌唱者の特徴量と言ってもよい。また、「1以上の属性値」は、例えば、歌唱者の動き、歌唱者の形状、または歌唱者の色のうちの1以上の情報である。また、「1以上の属性値」とは、通常、1種類以上の属性値のことである。
また、「モデル画像」は、例えば、少なくとも一部は歌唱者の動きに応じた動きを行う画像、歌唱者の形状または色を反映させた画像である。また、「歌唱者の動きに応じた動き」とは、例えば、歌唱者の動きに連動した動きや、歌唱者の動きと同一(ほぼ同一を含む)の動き、歌唱者の動きを反映させた動き、歌唱者の動きに対応した動きなどであり、広く解する。
また、「モデル画像」は、例えば、歌唱者を模した画像や、歌唱者の顔とキャラクタの胴体などを合成した画像、前述のキャラクタの画像などである。「歌唱者を模したモデル画像の構成」とは、歌唱者の色や、歌唱者の形状などを模しているモデル画像を構成することを意味する。さらに具体的には、「歌唱者を模したモデル画像の構成」とは、例えば、歌唱者の色や、歌唱者の形状などの歌唱者の属性値を取得し、当該属性値を用いて、モデル画像を構成することである。また、「歌唱者の色」とは、例えば、歌唱者の髪の色や、歌唱者の肌の色、歌唱者の服の色などである。また、当該「色」には、通常、輝度も含む。また、「歌唱者の形状」とは、例えば、歌唱者の輪郭や、歌唱者の体の表面の起伏などである。
また、「モデル画像」は、通常、3次元のモデルを示す画像(以下、適宜、3次元モデル画像とする)である。「3次元モデル画像」は、モデルが3次元(立体的)に表現された画像である。また、「モデル画像」は、例えば、2次元のモデルを示す画像(以下、適宜、2次元モデル画像とする)であってもよい。「2次元モデル画像」は、モデルが2次元(平面的)に表現された画像である。また、「モデル画像」は、あくまで画像であり、ホログラムではない。
また、モデル画像構成部108は、例えば、以下のいずれかの方法により、モデル画像を構成する。
(A)距離画像を用いる方法(その1)
(B)距離画像を用いる方法(その2)
(C)距離画像を用いる方法(その3)
(D)撮影画像を用いる方法
(E)スケルトン情報を用いる方法
(A)の方法:当該方法は、距離画像および撮影画像を用いて、歌唱者の色および形状を模した3次元のモデルを示す3次元モデル画像を構成する方法である。つまり、当該方法は、撮影部106が距離画像および撮影画像を取得した場合において、当該3次元モデル画像を構成する方法である。また、当該方法は、いわゆるサーフェスモデリングを行う方法である。当該方法の具体的な手順は、例えば、以下のとおりである。
(1)距離画像が有する距離情報を用いて、当該距離情報が示す距離が予め決められた条件を満たすほど近い画素の座標(x,y)を取得する。これにより、歌唱者領域が検出される。
(2)(1)で座標を取得した画素に対応付いている距離情報と、歌唱者座標値算出式とを用いて、当該距離情報に対応する座標値(z)を算出する。
(3)(2)で算出した座標値(z)と、当該座標値の算出に用いた画素の座標(x,y)とを対応付け、3次元の座標(x,y,z)を取得する。これにより、1以上の3次元の座標が取得される。言い換えると、これにより、距離画像内に写された歌唱者の形状が検出される。また、この処理は、例えば、3DCGを作成するための処理であるポリゴンモデリングであると考えてよい。
(4)(1)で検出した歌唱者領域に対応する画像(以下、適宜、歌唱者領域画像とする)を、撮影画像から切り出す。
(5)(3)で取得した1以上の3次元の座標(x,y,z)に、(4)で切り出した歌唱者領域画像を適用し、歌唱者の色および形状を模した3次元モデル画像を構成する。当該「3次元の座標に画像を適用する」とは、例えば、当該1以上の3次元の座標(x,y,z)により示される歌唱者の形状に、当該画像を重ね合わせることである。また、この処理は、例えば、3DCGを作成するための処理であるテクスチャマッピングであると考えてよい。
以上の処理により、例えば、撮影画像がカラー画像である場合は、歌唱者の色および形状を模した3次元モデル画像が構成される。また、例えば、撮影画像がグレースケール画像である場合は、歌唱者の輝度および形状を模した3次元モデル画像が構成される。
(B)の方法:この方法は、距離画像および撮影画像を用いて、歌唱者の色および形状を模した2次元のモデルを示す2次元モデル画像を構成する方法である。つまり、当該方法は、撮影部106が距離画像および撮影画像を取得した場合において、当該2次元モデル画像を構成する方法である。当該方法の具体的な手順は、例えば、以下のとおりである。
(1)距離画像が有する距離情報を用いて、当該距離情報が示す距離が予め決められた条件を満たすほど近い画素の座標(x,y)を取得する。これにより、歌唱者領域が検出される。
(2)(1)で検出した歌唱者領域に対応する歌唱者領域画像を、撮影画像から切り出す。当該切り出しにより取得した歌唱者領域画像が、2次元モデル画像である。
以上の処理により、例えば、撮影画像がカラー画像である場合は、歌唱者の色および形状を模した2次元モデル画像が構成される。また、例えば、撮影画像がグレースケール画像である場合は、歌唱者の輝度および形状を模した2次元モデル画像が構成される。
(C)の方法:当該方法は、距離画像を用いて、歌唱者の形状を模した3次元のまたは2次元のモデルを示す3次元モデル画像または2次元モデル画像を構成する方法である。つまり、当該方法は、撮影部106が距離画像を取得した場合において、当該3次元モデルまたは当該2次元モデルを構成する方法である。当該3次元モデル画像を構成する具体的な手順は、例えば、以下のとおりである。
(1)距離画像が有する距離情報を用いて、当該距離情報が示す距離が予め決められた条件を満たすほど近い画素の座標(x,y)を取得する。これにより、歌唱者領域が検出される。
(2)(1)で座標を取得した画素に対応付いている距離情報と、歌唱者座標値算出式とを用いて、当該距離情報に対応する座標値(z)を算出する。
(3)(2)で算出した座標値(z)と、当該座標値の算出に用いた画素の座標(x,y)とを対応付け、3次元の座標(x,y,z)を取得する。これにより、1以上の3次元の座標が取得される。言い換えると、これにより、距離画像内に写された歌唱者の形状が検出される。また、この処理は、例えば、ポリゴンモデリングであると考えてよい。
(4)(3)で取得した1以上の3次元の座標(x,y,z)に、予め保持している模様を示す画像を適用し、歌唱者の形状を模した3次元モデル画像を構成する。当該「模様」は、例えば、粘土や、水、泡などである。また、当該「模様を示す画像」は、例えば、テクスチャマッピングに用いるテクスチャであると考えてよい。また、この処理は、例えば、テクスチャマッピングであると考えてよい。
また、上記(C)の方法において、2次元モデル画像を構成する具体的な手順は、例えば、以下のとおりである。
(1’)距離画像が有する距離情報を用いて、当該距離情報が示す距離が予め決められた条件を満たすほど近い画素の座標(x,y)を取得する。これにより、歌唱者領域が検出される。
(2’)(1’)で取得した1以上の2次元の座標に、予め保持している模様を示す画像を適用し、歌唱者の形状を模した2次元モデル画像を構成する。当該「2次元の座標に画像を適用する」とは、例えば、当該1以上の2次元の座標(x,y)により示される歌唱者の形状に、当該画像を重ね合わせることである。また、この処理は、例えば、テクスチャマッピングであると考えてよい。
なお、上記(A)から(C)までの方法において、モデル画像構成部108は、例えば、距離画像に対して二値化やラベリングなどの画像処理を施し、歌唱者領域を検出してもよい。
(D)の方法:当該方法は、撮影画像を用いて、歌唱者の色および形状を模した2次元のモデルを示す2次元モデル画像を構成する方法である。つまり、当該方法は、撮影部106が撮影画像を取得した場合において、当該2次元モデルを構成する方法である。当該方法の具体的な手順は、例えば、以下のとおりである。
(1)撮影画像に対して二値化やラベリングなどの画像処理を施し、歌唱者領域を検出する。
(2)(1)で検出した歌唱者領域に対応する歌唱者領域画像を、撮影画像から切り出す。当該切り出しにより取得した歌唱者領域画像が、2次元モデル画像である。
(E)の方法:当該方法は、キャラクタ情報と、スケルトン情報とを用いて、キャラクタを示すモデル画像を構成する方法である。言い換えると、当該方法は、いわゆるスケルタルアニメーションにより、キャラクタを示すモデル画像を構成する方法である。また、当該方法は、さらに、例えば、以下の2つの方法に分類することができる。
(E1)3次元スケルトン情報を用いる方法
(E2)2次元スケルトン情報を用いる方法
(E1)の方法:当該方法は、3次元スケルトン情報を用いて、キャラクタ情報が示すキャラクタの3次元モデル画像を構成する方法である。当該方法の具体的な手順は、例えば、以下のとおりである。
(1)キャラクタ情報格納部102から、3次元キャラクタ情報を取得する。
(2)(1)で取得した3次元キャラクタ情報に、3次元スケルトン情報を適用する。「3次元スケルトン情報を適用する」とは、3次元キャラクタ情報が示すキャラクタのジョイントと、3次元スケルトン情報が有する座標とを対応付け、当該キャラクタを3次元スケルトン情報が示す動きに動かすことである。
(3)(2)で3次元スケルトン情報を適用した3次元キャラクタ情報を用いて、いわゆるレンダリングや、テクスチャマッピングなどの処理を行い、3次元モデル画像を構成する。
(E2)の場合:当該方法は、2次元スケルトン情報を用いて、キャラクタ情報が示すキャラクタの2次元モデル画像を構成する方法である。当該方法の具体的な手順は、例えば、以下のとおりである。
(1)キャラクタ情報格納部102から、2次元キャラクタ情報を取得する。
(2)(1)で取得した2次元キャラクタ情報に、2次元スケルトン情報を適用する。「2次元スケルトン情報を適用する」とは、2次元キャラクタ情報が示すキャラクタのジョイントと、2次元スケルトン情報が有する座標とを対応付け、当該キャラクタを2次元スケルトン情報が示す動きに動かすことである。
(3)(2)で2次元スケルトン情報を適用した2次元キャラクタ情報を画像化し、2次元モデル画像を構成する。
また、モデル画像構成部109は、例えば、歌唱者領域を示す1以上の2次元の座標(x,y)、または、距離画像内に写された歌唱者の形状を示す1以上の3次元の座標(x,y,z)に、キャラクタ画像を適用し、歌唱者の形状を模したキャラクタを示す2次元モデル画像または3次元モデル画像を構成してもよい。
なお、1以上の3次元の座標を用いて3次元モデル画像を構成する方法や手順、1以上の2次元の座標を用いて2次元モデル画像を構成する方法や手順、スケルトン情報とキャラクタ情報とを用いて3次元モデル画像または2次元モデル画像を構成する方法や手順などは、公知であるので、詳細な説明を省略する。例えば、1以上の3次元の座標を用いて、3次元のモデルを示す画像(ここでは、モデル画像)を構成するソフトウェアとして、例えば、以下のソフトウェアが利用可能である。
・Maya(http://www.autodesk.co.jp/products/autodesk-maya/overview)
・3dsMAX(http://www.autodesk.co.jp/products/autodesk-3ds-max/overview)
・Shade(http://shade.e-frontier.co.jp/)
・OpenGL(http://www.opengl.org/)
・DirectX(http://www.microsoft.com/ja-jp/directx/default.aspx)
また、上記の方法などにより作成したモデル画像のうち、歌唱者を模したものを示すモデル画像を、以下、適宜、歌唱者モデル画像とする。また、上記の方法などにより作成したモデル画像のうち、キャラクタを示すモデル画像を、以下、適宜、キャラクタモデル画像とする。
また、距離画像を用いた3次元モデル画像の構成に際して、モデル画像構成部108は、例えば、距離画像から画素削除条件を満たす画素を削除してもよい。この場合、モデル画像構成部108は、当該削除後の距離画像を用いて、3次元モデル画像を構成する。また、距離画像を用いた3次元モデル画像の構成に際して、モデル画像構成部108は、例えば、いわゆるカリングを行ってもよい。これらの処理により、より高速に距離画像を用いて3次元画像を構成することができる。
合成画像構成部109は、モデル画像と背景画像とを合成し、合成画像を構成する。「合成画像」とは、モデル画像が背景画像上に配置された画像である。また、当該「背景画像上」は、「背景画像中」であってもよい。また、当該モデル画像は、モデル画像構成部108が構成したモデル画像である。また、2以上の画像(ここでは、モデル画像と背景画像)を合成する方法や手順などは、公知であるので、詳細な説明を省略する。また、合成画像構成部109は、モデル画像と背景画像とを合成する際に、例えば、いわゆるカリングを行ってもよい。
例えば、背景画像が歌手背景画像である場合、合成画像構成部109は、通常、歌手背景画像中の歌手と重ならない位置にモデル画像が配置されるように、モデル画像と歌手背景画像とを合成する。このとき、合成画像構成部109は、通常、歌手背景画像に対して二値化やエッジ検出などの画像処理を施し、歌手背景画像中に写された歌手の領域を検出する。そして、合成画像構成部109は、当該検出した領域以外の領域にモデル画像が配置されるように、モデル画像と歌手背景画像とを合成する。
また、例えば、背景画像が通常背景画像である場合、合成画像構成部109は、例えば、通常背景画像中の予め決められた位置にモデル画像が配置されるように、モデル画像と通常背景画像とを合成する。
また、例えば、背景画像が通常背景画像である場合、合成画像構成部109は、例えば、モデル画像と手本画像と通常背景画像とを合成し、合成画像を構成してもよい。このとき、合成画像構成部109は、通常、モデル画像と手本画像とが、背景画像上の重ならない位置に配置されるように、モデル画像と手本画像と通常背景画像とを合成する。また、このとき、モデル画像および手本画像が配置される位置は、例えば、予め決められていてもよい。
画像出力部110は、合成画像構成部109が構成した合成画像を出力する。当該「出力」とは、例えば、ディスプレイへの表示や、プロジェクターを用いた投影、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である。なお、送信や蓄積、処理結果の引渡しについては、出力対象が最終的にユーザに提示されるものとする。
また、例えば、合成画像が手本画像を有さない場合、画像出力部110は、合成画像と共に手本画像を出力してもよい。この場合、画像出力部110は、例えば、合成画像と手本画像とを、異なる領域に出力する。
また、例えば、合成画像と共に手本画像を出力する場合、画像出力部110は、通常、後述の楽曲再生部111が楽曲データを再生することにより出力される楽曲のテンポ(リズム)と、手本画像が示す手本のダンスのテンポ(リズム)とが同期(一致)するように、手本画像を出力する。また、「合成画像の出力」には、合成画像の出力を開始することも含まれる。
また、画像出力部110は、ディスプレイなどの出力デバイスを含むと考えてもよいし、含まないと考えてもよい。画像出力部110は、出力デバイスのドライバソフトまたは、出力デバイスのドライバソフトと出力デバイスなどで実現され得る。
楽曲再生部111は、楽曲データ格納部104に格納されている楽曲データを再生する。「楽曲データを再生する」とは、例えば、楽曲データを再生することが可能な装置に楽曲データを送信することや、楽曲データを音出力すること、楽曲データを音出力することが可能な装置に楽曲データを送信することなどを含み、広く解する。また、「楽曲データの再生」を、以下、適宜、「楽曲の再生」とする。また、「楽曲データの再生」には、楽曲データの再生を開始することも含まれる。
また、楽曲再生部111が再生する楽曲データは、通常、受付部105が受け付けた楽曲選択指示により選択された楽曲データである。この場合、例えば、楽曲データの識別情報がユーザに提示されることにより、ユーザは、1以上の楽曲データの中から、自身が好む楽曲データを選択する。
また、楽曲再生部111は、スピーカーなどの出力デバイスを含むと考えてもよいし、含まないと考えてもよい。楽曲再生部111は、出力デバイスのドライバソフトまたは、出力デバイスのドライバソフトと出力デバイスなどで実現され得る。
なお、背景画像格納部101、キャラクタ情報格納部102、手本画像格納部103、楽曲データ格納部104は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。また、背景画像格納部101などに所定の情報が記憶される過程は、問わない。例えば、当該所定の情報は、記録媒体や、通信回線、入力デバイスなどを介して背景画像格納部101などに記憶されてもよい。
また、スケルトン情報取得部107、モデル画像構成部108、合成画像構成部109は、通常、MPUやメモリ等から実現され得る。また、スケルトン情報取得部107などの処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。なお、スケルトン情報取得部107などは、ハードウェア(専用回路)で実現されてもよい。
次に、カラオケ装置1の全体動作について、フローチャートを用いて説明する。図2は、カラオケ装置1の全体動作を示すフローチャートである。
(ステップS201)カラオケ装置1は、受付部105が電源ONの指示を受け付けたか否かを判断する。受け付けた場合は、ステップS202に進み、そうでない場合は、ステップS201に戻る。
(ステップS202)カラオケ装置1は、電源ONの処理を行う。
(ステップS203)図示しない受信部は、楽曲データを受信したか否かを判断する。受信した場合は、ステップS204に進み、そうでない場合は、ステップS205に進む。
(ステップS204)図示しない蓄積部は、ステップS203で受信した楽曲データを、楽曲データ格納部104に蓄積する。
(ステップS205)楽曲再生部111は、受付部105が楽曲選択指示を受け付けたか否かを判断する。受け付けた場合は、ステップS206に進み、そうでない場合は、ステップS207に進む。
(ステップS206)楽曲再生部111は、ステップS205で受け付けた楽曲選択指示により選択された楽曲データが有する楽曲データ識別情報を、楽曲データ識別情報を格納するリストである再生リストに登録する。
(ステップS207)楽曲再生部111は、楽曲データの再生のタイミングであるか否かを判断する。当該タイミングは、例えば、楽曲データの再生が終了した後や、受付部105が楽曲選択指示を受け付けた後などである。そして、楽曲データの再生のタイミングである場合は、ステップS208に進み、そうでない場合は、ステップS219に進む。
(ステップS208)楽曲再生部111は、再生リストに楽曲データ識別情報が登録されているか否かを判断する。登録されている場合は、ステップS209に進み、そうでない場合は、ステップS219に進む。
(ステップS209)楽曲再生部111は、再生リストから、次に再生する楽曲データの楽曲データ識別情報を取得する。
(ステップS210)楽曲再生部111は、ステップS209で取得した楽曲データ識別情報により識別される楽曲データを、楽曲データ格納部104から取得する。
(ステップS211)楽曲再生部111は、ステップS210で取得した楽曲データの再生を開始する。
(ステップS212)撮影部106は、歌唱者の撮影を開始する。言い換えると、撮影部106は、距離画像の取得を開始する。
(ステップS213)モデル画像構成部108は、撮影部106が距離画像を取得したか否かを判断する。取得した場合は、ステップS214に進み、そうでない場合は、ステップS219に進む。
(ステップS214)モデル画像構成部108は、モデル画像を構成する。この処理の詳細は、図3のフローチャートを用いて説明する。
(ステップS215)合成画像構成部109は、ステップS214で取得したモデル画像と、背景画像格納部101に格納されている背景画像とを用いて、合成画像を構成する。この処理の詳細は、図4のフローチャートを用いて説明する。
(ステップS216)画像出力部110は、手本画像を出力するか否かを判断する。当該判断は、例えば、ステップS215で構成した合成画像が手本画像を有するか否かを判断することや、手本画像を出力するか否かを示す情報(以下、適宜、手本画像出力判断情報とする)が予め決められた記憶領域に格納されており、当該情報が、手本画像を出力することを示すか、手本画像を出力しないことを示すかを判断することなどにより行う。つまり、画像出力部110は、例えば、合成画像が手本画像を有さない場合は、手本画像を出力すると判断し、例えば、合成画像が手本画像を有する場合は、手本画像を出力しないと判断する。また、画像出力部110は、例えば、合成画像が手本画像を有さない場合において、手本画像出力判断情報が手本画像を出力することを示す場合は、手本画像を出力すると判断し、例えば、手本画像出力判断情報が手本画像を出力しないことを示す場合は、手本画像を出力しないと判断する。そして、手本画像を出力する場合は、ステップS218に進み、そうでない場合は、ステップS217に進む。
(ステップS217)画像出力部110は、ステップS215で構成した合成画像を出力する。そして、ステップS213に戻る。
(ステップS218)画像出力部110は、ステップS215で構成した合成画像と、手本画像格納部103に格納されている手本画像とを出力する。そして、ステップS213に戻る。
(ステップS219)カラオケ装置1は、受付部105が電源OFFの指示を受け付けたか否かを判断する。受け付けた場合は、ステップS220に進み、そうでない場合は、ステップS203に戻る。
(ステップS220)カラオケ装置1は、電源OFFの処理を行う。そして、ステップS201に戻る。
なお、図2のフローチャートにおいて、電源オフや処理終了の割り込みにより処理を終了してもよい。
また、図2のフローチャートにおいて、撮影部106による撮影は、例えば、楽曲再生部111による楽曲データの再生が終了すると、終了する。また、楽曲データの再生は、例えば、受付部105が楽曲データの再生を終了する指示を受け付けた場合や、楽曲データの再生が完了した場合などに終了する。
図3は、図2のフローチャートのステップS214のモデル画像の構成処理を示すフローチャートである。
(ステップS301)モデル画像構成部108は、構成するモデル画像の種類が、歌唱者モデル画像であるかキャラクタモデル画像であるかを判断する。当該判断は、例えば、構成するモデル画像の種類を示す情報が予め決められた記憶領域に格納されており、当該情報を用いて行う。そして、歌唱者モデル画像を構成する場合は、ステップS302に進み、キャラクタモデル画像を構成する場合は、ステップS303に進む。
(ステップS302)モデル画像構成部108は、距離画像が有する距離情報を用いて、距離画像中に写された歌唱者の領域である歌唱者領域を検出する。
(ステップS303)モデル画像構成部108は、ステップS302で検出した歌唱者領域内の画素に対応付いている距離情報と、歌唱者座標値算出式とを用いて、当該距離情報に対応する座標値を算出する。
(ステップS304)モデル画像構成部108は、歌唱者領域内の画素の2次元の座標と、ステップS303で算出した座標値とを対応付け、3次元の座標を構成する。そして、モデル画像構成部108は、当該3次元の座標を用いて、歌唱者モデル画像を構成する。そして、上位処理にリターンする。
(ステップS305)スケルトン情報取得部107は、距離画像が有する距離情報を用いて、歌唱者領域を検出する。
(ステップS306)スケルトン情報取得部107は、ステップS305で検出した歌唱者領域の輪郭に対してパターン認識を行い、距離画像における歌唱者のジョイントを検出する。
(ステップS307)スケルトン情報取得部107は、ステップS306で検出したジョイントを示す画素に対応付いている距離情報と、ジョイント座標値算出式とを用いて、当該距離情報に対応する座標値を算出する。
(ステップS308)スケルトン情報取得部107は、ステップS306で検出したジョイントを示す画素の2次元の座標と、ステップS307で算出した座標値とを対応付け、3次元の座標を構成する。そして、スケルトン情報取得部107は、当該3次元の座標を、連結しているジョイントごとに対応付け、スケルトン情報を構成する。
(ステップS309)モデル画像構成部108は、キャラクタ情報格納部102に格納されているキャラクタ情報を取得する。
(ステップS310)モデル画像構成部108は、ステップS308で取得したスケルトン情報と、ステップS309で取得したキャラクタ情報とを用いて、キャラクタモデル画像を構成する。そして、上位処理にリターンする。
図4は、図2のフローチャートのステップS215の合成画像の構成処理を示すフローチャートである。
(ステップS401)合成画像構成部109は、背景画像格納部101に格納されている背景画像を取得する。
(ステップS402)合成画像構成部109は、ステップS401で取得した背景画像が、通常背景画像であるか歌手背景画像であるかを判断する。通常背景画像である場合は、ステップS403に進み、歌手背景画像である場合は、ステップS407に進む。
(ステップS403)合成画像構成部109は、手本画像を合成するか否かを判断する。当該判断は、例えば、手本画像を合成するか否かを示す情報が予め決められた記憶領域に格納されており、当該情報を用いて行う。そして、手本画像を合成する場合は、ステップS404に進み、そうでない場合は、ステップS406に進む。
(ステップS404)合成画像構成部109は、手本画像格納部103から手本画像を取得する。
(ステップS405)合成画像構成部109は、モデル画像と手本画像とが重ならない位置に配置されるように、モデル画像と手本画像と通常背景画像とを合成し、合成画像を構成する。そして、上位処理にリターンする。
(ステップS406)合成画像構成部109は、通常背景画像中の予め決められた位置にモデル画像が配置されるように、モデル画像と通常背景画像とを合成し、合成画像を構成する。そして、上位処理にリターンする。
(ステップS407)合成画像構成部109は、歌手背景画像中に写された歌手の領域である歌手領域を検出する。
(ステップS408)合成画像構成部109は、ステップS407で検出した歌手領域以外の領域にモデル画像が配置されるように、モデル画像と歌手背景画像とを合成する。そして、上位処理にリターンする。
なお、上記で説明したカラオケ装置1の全体動作は、あくまで一例である。つまり、カラオケ装置1の全体動作は、上記の説明に限定されるものではない。
(具体例)
次に、カラオケ装置1の動作の具体例について説明する。なお、本具体例において、楽曲データ格納部104には、1以上の楽曲データが予め格納されているものとする。また、撮影部106は、距離画像を取得するものとする。
(例1)
本例において、歌唱者モデル画像を構成し、当該歌唱者モデル画像と、通常背景画像とを合成し、合成画像を構成する例について説明する。
まず、ユーザが、カラオケ装置1のリモコンを操作し、自身が歌いたい楽曲を選択するための操作を行ったとする。すると、受付部105は、楽曲選択指示を受け付ける。
次に、楽曲再生部111は、楽曲選択指示により選択された楽曲データの楽曲データ識別情報を、再生リストに登録する。ここで、再生リストには、当該登録された楽曲データ識別情報のみが登録されているとする。すると、楽曲再生部111は、当該楽曲データ識別情報により識別される楽曲データを、楽曲データ格納部104から取得する。そして、楽曲再生部111は、当該取得した楽曲データの再生を開始する。
次に、撮影部106は、歌唱者の撮影を開始する。つまり、撮影部106は、距離画像の取得を開始する。ここで、撮影部106が取得した距離画像が、図5に示す画像であるものとする。当該距離画像は、カラオケ装置1(厳密には、撮影部106を構成する距離画像カメラ)から歌唱者までの距離を、輝度により表現している画像である。
次に、モデル画像構成部108は、図5の距離画像から、歌唱者領域を検出する。そして、当該歌唱者領域内の各画素に対応付いている距離情報と、歌唱者座標値算出式とを用いて、当該各距離情報に対応する座標値(z)を算出する。そして、モデル画像構成部108は、当該歌唱者領域内の各画素を示す座標(x,y)と、当該算出した座標値(z)とを、対応する画素ごとに対応付け、1以上の3次元の座標(x,y,z)を構成する。
次に、モデル画像構成部108は、構成した1以上の3次元の座標(x,y,z)を用いて、モデリングや、レンダリング、テクスチャマッピングなどの3DCGを作成するための処理を行う。そして、モデル画像構成部108は、歌唱者モデル画像を構成する。当該歌唱者モデル画像は、例えば、図6に示す画像である。
次に、合成画像構成部109は、背景画像格納部101に格納されている通常背景画像を取得する。そして、合成画像構成部109は、構成した歌唱者モデル画像と、取得した通常背景画像とを合成し、合成画像を構成する。ここで、通常背景画像が、図7に示す画像であるものとする。また、当該通常背景画像において、歌唱者モデル画像が配置される位置が予め決められているものとする。すると、合成画像構成部109は、図6の歌唱者モデル画像と、図7の通常背景画像とを合成し、例えば、図8に示す合成画像を構成する。
次に、画像出力部110は、図8の合成画像を出力する。
(例2)
本例において、キャラクタモデル画像を構成し、当該キャラクタモデル画像と、通常背景画像とを合成し、合成画像を構成する例について説明する。
まず、例1と同様に、撮影部106が、距離画像の取得を開始したものとする。
次に、スケルトン情報取得部107は、撮影部106が取得した距離画像から、歌唱者領域を検出する。そして、当該歌唱者領域の輪郭を用いて、距離画像中に写された歌唱者の1以上のジョイントを検出する。これにより、スケルトン情報取得部107は、当該ジョイントを示す画素の座標(x,y)を取得する。そして、スケルトン情報取得部107は、当該取得した座標(x,y)を、連結しているジョイントごとに対応付ける。
次に、スケルトン情報取得部107は、取得した1以上の座標(x,y)で示される画素に対応付いている距離情報と、ジョイント座標値算出式とを用いて、当該各距離情報に対応する座標値(z)を算出する。そして、スケルトン情報取得部107は、当該ジョイントの各画素を示す座標(x,y)と、当該算出した座標値(z)とを、対応する画素ごとに対応付け、1以上の3次元の座標(x,y,z)を構成する。これにより、スケルトン情報取得部107は、1以上の3次元の座標(x,y,z)から構成される3次元スケルトン情報を取得する。当該3次元スケルトン情報は、例えば、図9である。当該図9の3次元スケルトン情報は、3次元スケルトン情報を可視化(画像化)したものである。
次に、モデル画像構成部108は、キャラクタ情報格納部102に格納されているキャラクタ情報を取得する。そして、モデル画像構成部108は、取得したキャラクタ情報に、取得した3次元スケルトン情報を適用し、キャラクタモデル画像を構成する。ここで、モデル画像構成部108は、例えば、図10に示すキャラクタモデル画像を構成したものとする。
次に、合成画像構成部109は、背景画像格納部101に格納されている通常背景画像を取得する。当該通常背景画像は、図7に示す画像であるものとする。そして、合成画像構成部109は、構成したキャラクタモデル画像と、取得した通常背景画像とを、例1と同様に合成し、例えば、図11に示す合成画像を構成する。
次に、画像出力部110は、図11の合成画像を出力する。
(例3)
本例において、歌唱者モデル画像を構成し、当該歌唱者モデル画像と、歌手背景画像とを合成し、合成画像を構成する例について説明する。なお、本例において、歌手背景画像は、図12に示す画像であるものとする。図12において、歌手は、当該画像の中央より右側に写されている。
まず、例1と同様に、モデル画像構成部108が、図6の歌唱者モデル画像を構成したものとする。
次に、合成画像構成部109は、図12の歌手背景画像を、背景画像格納部101から取得する。そして、合成画像構成部109は、図12の歌手背景画像から、右側に写されている歌手の領域を検出する。そして、合成画像構成部109は、当該検出した領域以外の領域に歌唱者モデル画像が配置されるように、歌唱者モデル画像と歌手背景画像とを合成し、例えば、図13に示す合成画像を構成する。
次に、画像出力部110は、図13の合成画像を出力する。
(例4)
本例において、歌唱者モデル画像と、通常背景画像と、手本画像とを合成し、合成画像を構成する例について説明する。
まず、例1と同様に、モデル画像構成部108が、図6の歌唱者モデル画像を構成したものとする。
次に、合成画像構成部109は、背景画像格納部101から、通常背景画像を取得する。また、合成画像構成部109は、手本画像格納部103から、手本画像を取得する。当該通常背景画像は、図7の画像であるものとする。また、当該手本画像は、図14に示す画像であるものとする。
次に、合成画像構成部109は、構成した歌唱者モデル画像と、取得した手本画像と、取得した通常背景画像とを合成し、合成画像を構成する。ここで、通常背景画像において、歌唱者モデル画像および手本画像が配置される位置が予め決められているものとする。当該位置は、歌唱者モデル画像と手本画像とが重ならない位置である。すると、合成画像構成部109は、図6の歌唱者モデル画像と、図14の手本画像と、図7の通常背景画像とを合成し、例えば、図15に示す合成画像を構成する。
次に、画像出力部110は、図15の合成画像を出力する。
(例5)
本例において、合成画像と手本画像とを共に画面出力する例について説明する。
まず、例1と同様に、合成画像構成部109が、図8の合成画像を構成したものとする。
次に、画像出力部110は、手本画像格納部103から、手本画像を取得する。当該手本画像は、図14の画像であるものとする。
次に、画像出力部110は、構成した図8の合成画像と、取得した図14の手本画像とを、別々の領域に画面出力する。このときの様子は、例えば、図16である。図16は、画面の左側に合成画像が出力され、画面の右側に手本画像が出力されている例を示す図である。
以上、本実施の形態によるカラオケ装置1によれば、歌唱者の1以上の属性値に応じたモデルを背景画像内に配置して表示することができる。これにより、ユーザ(歌唱者)は、自身と同じ動きを行うモデルを見ながら歌うことができ、歌うことだけでなく、ダンスをしながらもカラオケを楽しむことができる。また、これにより、ユーザは、モデルが配置されている仮想空間においてあたかも自身がダンスしているかの様な気分(仮想空間に没入した気分)になることができる。言い換えると、ユーザは、モデルが配置されている仮想空間においてあたかも自身がダンスしているかの様な没入感を得ることができる。つまり、本実施の形態によるカラオケ装置1によれば、カラオケのエンターテイメント性をより向上させることができ、ユーザがより楽しむことができるカラオケを、ユーザに提供することができる。
また、以上より、従来のカラオケ装置は、歌唱者自身も観客である観客型カラオケを提供するカラオケ装置であり、本実施の形態によるカラオケ装置1は、歌唱者自身が演者になりきることができる演者型カラオケを提供するカラオケ装置であると言える。言い換えると、本実施の形態によるカラオケ装置1は、次世代のカラオケを提供するカラオケ装置であると言える。
なお、本実施の形態において、カラオケ装置1は、スケルトン情報取得部107を備えていなくてもよい。この場合、モデル画像構成部108は、通常、歌唱者を模した3次元モデル画像または2次元モデル画像を、歌唱者画像を用いて構成する。
また、本実施の形態において、モデル画像構成部108は、例えば、歌唱者画像から、マイクの領域(以下、適宜、マイク領域とする)を検出し、当該マイク領域と隣接している領域または当該マイク領域を含む領域を、歌唱者領域として検出してもよい。マイク領域の検出は、例えば、輪郭抽出やパターン認識などの画像処理により行う。また、これにより、モデル画像構成部108は、例えば、撮影部106が撮影により取得した歌唱者画像に歌唱者となり得る2人以上の人物が写されている場合に、実際に歌を歌っているユーザ(歌唱者)の領域のみを歌唱者領域として歌唱者画像から検出することができる。
また、本実施の形態において、合成画像構成部109が合成画像の構成に用いる背景画像は、通常、楽曲再生部111が再生する楽曲データに対応付いている。つまり、合成画像構成部109は、通常、楽曲再生部111が再生している楽曲データに対応付いている背景画像を、背景画像格納部101から取得する。そして、合成画像構成部109は、モデル画像構成部108が構成したモデル画像と、当該取得した背景画像とを用いて、合成画像を構成する。また、例えば、楽曲再生部111が再生する楽曲データに、どの背景画像も対応付いていない場合、合成画像構成部109は、例えば、予め決められた背景画像を背景画像格納部101から取得し、当該背景画像を用いて、合成画像を構成する。また、このとき、合成画像構成部109は、例えば、楽曲データが対応付いていない背景画像の中からランダムに選択した背景画像を取得してもよい。
また、本実施の形態において、合成画像構成部109が合成画像の構成に用いる手本画像は、通常、楽曲再生部111が再生する楽曲データに対応付いている。つまり、モデル画像と手本画像と通常背景画像とを合成して合成画像を構成する場合、合成画像構成部109は、通常、楽曲再生部111が再生している楽曲データに対応付いている手本画像を、手本画像格納部103から取得する。そして、合成画像構成部109は、モデル画像構成部108が構成したモデル画像と、当該取得した手本画像と、背景画像とを用いて、合成画像を構成する。また、例えば、楽曲再生部111が再生する楽曲データに、どの手本画像も対応付いていない場合、合成画像構成部109は、通常、モデル画像構成部108が構成したモデル画像と、背景画像とを用いて、合成画像を構成する。
また、本実施の形態において、合成画像構成部109は、通常、歌詞を示す画像である歌詞画像をも合成し、合成画像を構成する。当該歌詞画像は、通常、予め決められた記憶領域に格納されている。当該予め決められた記憶領域は、例えば、楽曲データ格納部101であってもよい。また、合成する歌詞画像は、通常、楽曲再生部111が再生する楽曲データに対応付いている。つまり、合成画像構成部109は、通常、楽曲再生部111が再生している楽曲データに対応付いている歌詞画像を、予め決められた記憶領域から取得する。そして、合成画像構成部109は、当該取得した歌詞画像をも用いて、合成画像を構成する。
また、本実施の形態においては、通常、楽曲データの再生が開始されると同時に、合成画像の出力が開始される。当該「同時」には、「ほぼ同時」も含まれる。つまり、楽曲再生部111が楽曲データの再生を開始すると、撮影部106は、歌唱者の撮影を開始する。また、当該撮影部106による撮影の開始に応じて、モデル画像構成部108がモデル画像を構成し、合成画像構成部109が合成画像を構成し、画像出力部110が合成画像の出力を開始する。
また、上記各実施の形態において、各処理または各機能は、単一の装置または単一のシステムによって集中処理されることによって実現されてもよいし、あるいは、複数の装置または複数のシステムによって分散処理されることによって実現されてもよい。
また、上記各実施の形態において、各構成要素は専用のハードウェアにより構成されてもよいし、あるいは、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをCPU等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。
また、上記各実施の形態におけるカラオケ装置を実現するソフトウェアは、例えば、以下のようなプログラムである。つまり、このプログラムは、背景の画像である背景画像が格納される背景画像格納部にアクセス可能なコンピュータを、歌唱者を撮影し、当該歌唱者を示す画像である歌唱者画像を取得する撮影部と、前記撮影部が取得した歌唱者画像を用いて、歌唱者の動きに応じた動きを行うモデルを示す画像であるモデル画像を構成するモデル画像構成部と、前記モデル画像構成部が構成したモデル画像と、前記背景画像とを合成し、当該モデル画像が当該背景画像上に配置された画像である合成画像を構成する合成画像構成部と、前記合成画像構成部が構成した合成画像を出力する画像出力部として機能させるためのプログラムである。
なお、上記プログラムにおいて、上記プログラムが実現する機能には、ハードウェアでしか実現できない機能は含まれない。
また、上記プログラムは、サーバなどからダウンロードされることによって実行されてもよいし、所定の記録媒体(例えば、CD−ROMなどの光ディスクや磁気ディスク、半導体メモリなど)に記録されたプログラムが読み出されることによって実行されてもよい。また、このプログラムは、プログラムプロダクトを構成するプログラムとして用いられてもよい。
また、上記プログラムを実行するコンピュータは、単数であってもよいし、複数であってもよい。つまり、集中処理を行ってもよいし、あるいは分散処理を行ってもよい。
また、図17は、前述のプログラムを実行して、前述の実施の形態のカラオケ装置等を実現するコンピュータシステム9の概観図である。前述の実施の形態は、コンピュータハードウェア、およびその上で実行されるコンピュータプログラムで実現され得る。
図17において、コンピュータシステム9は、CD−ROMドライブ9011、FDドライブ9012を含むコンピュータ901と、キーボード902と、マウス903と、モニタ904とを備える。
図18は、コンピュータシステム9のブロック図である。図18において、コンピュータ901は、CD−ROMドライブ9011、FDドライブ9012に加えて、MPU9013と、ブートアッププログラム等のプログラムを記憶するためのROM9014と、MPU9013に接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのRAM9015と、アプリケーションプログラム、システムプログラム、およびデータを記憶するためのハードディスク9016と、CD−ROMドライブ9011、FDドライブ9012、MPU9013等を相互に接続するバス9017とを備える。ここでは図示しないが、コンピュータ901は、さらに、LANへの接続を提供するネットワークカードを備えていてもよい。
コンピュータシステム9に、前述の実施の形態のカラオケ装置等の機能を実行させるプログラムは、CD−ROM9101、またはFD9102に記憶されて、CD−ROMドライブ9011またはFDドライブ9012に挿入され、さらにハードディスク9016に転送されてもよい。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ901に送信され、ハードディスク9016に記憶されてもよい。プログラムは実行の際にRAM9015にロードされる。プログラムは、CD−ROM9101、FD9102またはネットワークから直接、ロードされてもよい。
プログラムは、コンピュータ901に、前述の実施の形態のカラオケ装置等の機能を実行させるオペレーティングシステム(OS)、またはサードパーティープログラム等は、必ずしも含まなくてもよい。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいればよい。コンピュータシステム9がどのように動作するかは周知であり、詳細な説明は省略する。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。