【解決手段】本願に係る仮想楽器演奏プログラムは、取得手順と、判別手順と、解析手順と、出力制御手順とをコンピュータに実行させる。取得手順は、ユーザを撮像した撮像画像を取得する。判別手順は、取得手順によって取得された撮像画像中のユーザの姿勢を示す画素部分を抽出し、かかる画素部分に基づき、機械学習により生成された演奏姿勢の判別モデルを用いて上記姿勢に対応する楽器の種類を判別する。解析手順は、上記画素部分のオプティカルフローを解析する。出力制御手順は、解析手順の解析結果に応じて楽器の楽器音を出力する。
【発明を実施するための形態】
【0011】
以下に、本願に係る仮想楽器演奏プログラム、仮想楽器演奏装置および仮想楽器演奏方法の実施形態について図面を参照しつつ詳細に説明する。
【0012】
また、以下においては、仮想楽器演奏プログラムが、スマートフォンに実装され、かかるスマートフォンが仮想楽器演奏装置10として機能する場合を例に挙げて説明を行う。
【0013】
〔1.仮想楽器演奏装置の概要〕
まず、実施形態に係る仮想楽器演奏装置10の概要について説明する。
図1は、実施形態に係る仮想楽器演奏装置10の概要説明図である。
【0014】
図1に示すように、実施形態に係る仮想楽器演奏装置10は、たとえばスマートフォンなどの携帯端末を利用して実現することができる。ユーザUには、特にユーザUの姿勢や動作を検出するためのセンサ群を装着させる必要はない。
【0015】
仮想楽器演奏装置10はまず、仮想の楽器を演奏する身振りをするユーザUを撮像する(ステップS1)。
【0016】
そして、仮想楽器演奏装置10は、撮像した撮像画像中のユーザUの演奏姿勢に対応する画素部分を抽出する(ステップS2)。本実施形態では、かかる画素部分として、たとえば撮像画像中の肌色の部分を抽出する。肌色の部分、すなわち本実施形態は、楽器を演奏する身振りをするユーザUの手や腕の部分(図中の破線の矩形R1に囲まれた部分参照)に着目するものである。かかる画素部分を以下、「肌色部分」と記載する。
【0017】
そして、仮想楽器演奏装置10は、肌色部分に基づき、機械学習による判別モデルを用いた楽器の判別を行う(ステップS3)。判別モデルは、たとえば学習用に撮像された撮像画像中の肌色部分のデータセットを用いた機械学習により、入力される肌色部分に対応する楽器の種類を判別する学習モデルとして予め生成される。機械学習のアルゴリズムには、SVM(Support Vector Machine)やディープラーニングなど公知の技術を用いることができる。
【0018】
なお、学習用の上記データセットは、各楽器が実際に演奏される場合の撮像画像に基づくものであってもよいし、ユーザUが仮想の楽器を演奏する身振りをする場合の撮像画像に基づくものであってもよい。また、学習用としてでなく、仮想楽器演奏装置10の実際の利用中に撮像された撮像画像によるフィードバックデータであってもよい。
【0019】
また、仮想楽器演奏装置10は、肌色部分のオプティカルフローを解析する(ステップS4)。すなわち、時間的に連続する肌色部分の動きをベクトル解析する。その解析結果は、ステップS3で判別された楽器の音の大きさおよび音色の決定に用いられる。
【0020】
そして、仮想楽器演奏装置10は、ステップS3で判別した楽器音をステップS4のオプティカルフローの解析結果に応じて出力する(ステップS5)。なお、
図1には、判別された楽器の種類がギターであった場合の例を図示した。
【0021】
このように、実施形態に係る仮想楽器演奏装置10では、ユーザUを撮像した撮像画像を取得し、取得された撮像画像中のユーザUの演奏姿勢に対応する画素部分を抽出する。そして、かかる画素部分に基づき、機械学習により生成された判別モデルを用いて演奏姿勢に対応する楽器の種類を判別する。また、かかる画素部分のオプティカルフローを解析する。そして、その解析結果に応じて、上記判別された楽器の楽器音を出力する。
【0022】
すなわち、本実施形態では、機械学習による判別モデルを用いた楽器の判別を行うので、保持すべきデータの容量が少量で済み、スマートフォンなどにも容易に実装することができる。また、本実施形態では、ユーザUの動きをオプティカルフロー、すなわち画像情報のみから解析するので、ユーザUの身体にセンサ群を装着させる必要がない。
【0023】
したがって、本実施形態に係る仮想楽器演奏装置10によれば、携帯情報端末に容易に実装でき、かつ、ユーザUにも負担をかけないという効果を奏することができる。以下、
図1を用いて説明した仮想楽器演奏装置10を含む仮想楽器演奏システム1の構成について、さらに詳しく説明する。
【0024】
〔2.仮想楽器演奏システムの構成〕
仮想楽器演奏システム1の構成について具体的に説明する。
図2は、実施形態に係る仮想楽器演奏システム1の構成の一例を示すブロック図である。
【0025】
なお、
図2では、仮想楽器演奏システム1の説明に必要となる構成要素のみを示しており、一般的な構成要素についての記載を省略している。また、
図2を用いた説明では、主に仮想楽器演奏装置10について説明するが、サーバ装置20から先に説明を進める。
【0026】
図2に示すように、仮想楽器演奏システム1は、仮想楽器演奏装置10と、サーバ装置20とを備える。仮想楽器演奏装置10およびサーバ装置20は、通信ネットワークNを介して相互に通信可能に接続される。通信ネットワークNは、たとえばインターネットなどのWAN(Wide Area Network)である。
【0027】
〔2.1.サーバ装置〕
サーバ装置20は、携帯情報端末などを仮想楽器演奏装置10として機能させるための配信サーバであり、通信部21と、制御部22と、記憶部23とを備える。記憶部23は、たとえば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現され、
図2の例では、判別モデル23aと、アプリ23bと、音源データ23cとを記憶する。
【0028】
(通信部21について)
通信部21は、たとえばNIC(Network Interface Card)などのインターフェイスである。制御部22は、通信部21および通信ネットワークNを介して、仮想楽器演奏装置10との間で各種の情報を送受信可能である。
【0029】
(制御部22について)
制御部22は、サーバ装置20が配信サーバとして機能するうえでの全体制御を行う。具体的に、制御部22は、たとえばCPU(Central Processing Unit)やMPU(Micro Processing Unit)などによって、サーバ装置20内部の記憶装置に記憶されている各種プログラムがRAM(Random Access Memory)を作業領域として実行されることにより実現される。また、制御部22は、たとえば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現されてもよい。
【0030】
制御部22は、学習部22aと、配信部22bとを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部22の内部構成は、
図2に示した構成に限られず、後述する情報処理を行うことができる構成であれば他の構成であってもよい。
【0031】
(学習部22aについて)
学習部22aは、たとえば学習用の撮像画像中の肌色部分のデータセットを用いた機械学習により、入力される肌色部分に対応する楽器の種類を判別する学習モデルである判別モデル23aを生成し、配信用として記憶部23へ記憶させる。
【0032】
なお、学習用のデータセットは、予め用意されたものでもよいし、サーバ装置20に接続されたカメラによって撮像されたものでもよい。また、通信ネットワークNを介して仮想楽器演奏装置10や他の装置などから収集されたものであってもよい。
【0033】
また、学習部22aは、たとえば仮想楽器演奏装置10が備えていてもよい(図中の仮想楽器演奏装置10側に破線で示す「学習部12a」参照)。また、学習部22aは、判別モデル23aの生成に特化した学習装置が備えていてもよい。
【0034】
(学習処理について)
ここで、学習部22aが実行する学習処理について、
図3を用いて説明する。
図3は、実施形態に係る学習処理の説明図である。本実施形態では、学習部22aは、演奏姿勢(仮想の場合を含む)の撮像画像中で手や腕に対応する画素部分の特徴量をクラス分類して楽器の種類(すなわち楽器音)を判別するための機械学習を実行する。
【0035】
具体的には、
図3に示すように、学習部22aは、各楽器の演奏姿勢の撮像画像群からそれぞれ抽出された肌色部分の各学習用データセットに基づき、機械学習を実行する。たとえば、学習部22aは、「ギター」の演奏姿勢に対応するデータセットD1に基づき、かかるデータセットD1に含まれる各データの特徴量から、「ギター」をクラス分類する機械学習を実行する。
【0036】
同様に、学習部22aは、「ベース」の演奏姿勢に対応するデータセットD2に基づき、「ベース」をクラス分類する機械学習を実行する。また、「キーボード」の演奏姿勢に対応するデータセットD3からは「キーボード」を、「ドラム」の演奏姿勢に対応するデータセットD4からは「ドラム」を、それぞれクラス分類する機械学習を実行する。そして、学習部22aは、各機械学習の結果として、入力される肌色部分に対し、対応する楽器の種類(たとえばクラスID)を出力する判別モデル23aを生成する。
【0037】
(楽器音のクラス分類について)
ところで、同じ楽器であっても、たとえば奏法に応じ、出力される音には違いが出る場合がある。そこで、同じ楽器につき、分類されるクラスを細分化して、出力される楽器音がより演奏姿勢に応じたものとなるように機械学習が行われてもよい。
【0038】
その具体例について
図4A〜
図4Eを用いて説明する。
図4A〜
図4Eは、楽器音のクラス分類の具体例を示す図(その1)〜(その5)である。
【0039】
図4Aには、判別モデル23aが出力するクラスIDに楽器音の種別を対応付けた楽器音種別情報を示している。たとえば、
図4Aに示すように、楽器が同じ「ギター」の場合であっても、クラスIDを細分化し、たとえばクラスID「XX1」に対しては種別「単音」を、クラスID「XX2」に対しては種別「和音」を、それぞれ対応付けることができる。
【0040】
かかる場合、たとえば
図4Bに示すように、ギターの各弦を爪弾く「アルペジオ奏法」の演奏姿勢に対応する肌色部分の学習用データセットを用いた機械学習を実行することで、種別「単音」をクラス分類してクラスID「XX1」に対応付けることが可能となる。
【0041】
また、たとえば
図4Cに示すように、ピックPなどを持ってギターの弦をかき鳴らす「ストローク奏法」に対応する肌色部分の学習用データセットを用いた機械学習を実行することで、種別「和音」をクラス分類してクラスID「XX2」に対応付けることが可能となる。
【0042】
図4Aに戻り、楽器が同じ「ベース」の場合であっても同様である。たとえば、
図4Aに示すように、楽器が「ベース」の場合に、たとえばクラスID「YY1」に対しては種別「単音」を、クラスID「YY2」に対しては種別「スラップ音」を、それぞれ対応付けることができる。
【0043】
なお、「ベース」が
図3に図示したネックを垂直に近く構えるアップライトベースではなくエレクトリックベースである場合、まず「ギター」との区別がしにくいことが考えられる。
【0044】
しかし、たとえば
図4Dに示すように、「ベース」においてよく用いられるフィンガーピッキングである「ツーフィンガー奏法」の演奏姿勢に対応する肌色部分の学習用データセットを用いた機械学習を実行することで、「ギター」と「ベース」を区別し、さらに種別「(ベースの)単音」をクラス分類してクラスID「YY1」に対応付けることが可能となる。
【0045】
また、たとえば
図4Eに示すように、親指Tで弦を叩くように弾(はじ)くサムピングを含む「スラップ奏法」に対応する肌色部分の学習用データセットを用いた機械学習を実行することで、「ギター」と「ベース」を区別し、さらに種別「スラップ音」をクラス分類してクラスID「YY2」に対応付けることが可能となる。
【0046】
なお、
図4A〜
図4Eに図示した例はあくまで一例であって、「ギター」や「ベース」の他の奏法などに基づいて、上述のように細分化されたクラス分類を行ってよい。また、「ギター」や「ベース」に限らず、他の種類の楽器についても同様に行ってよい。
【0047】
(配信部22bについて)
図2の説明に戻り、配信部22bについて説明する。配信部22bは、記憶部23に記憶された判別モデル23a、アプリ23bおよび音源データ23cを、通信部21および通信ネットワークNを介して仮想楽器演奏装置10へ必要に応じ配信する。
【0048】
なお、アプリ23bは仮想楽器演奏装置10の機能を実現するアプリケーションプログラムであり、音源データ23cはたとえば上述のクラスIDに対応付けられた各楽器音を含むデータである。
【0049】
〔2.2.仮想楽器演奏装置〕
次に、仮想楽器演奏装置10の構成について説明する。仮想楽器演奏装置10は、通信部11と、制御部12と、記憶部13とを備える。記憶部13は、記憶部23と同様に、たとえば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。
【0050】
また、仮想楽器演奏装置10は、カメラ14と、出力部15とを備える。出力部15は楽器音を出力するスピーカなどの出力デバイスである。
【0051】
(通信部11について)
通信部11は、通信部21と同様に、たとえばNIC(Network Interface Card)などのインターフェイスである。制御部12は、通信部11および通信ネットワークNを介して、サーバ装置20との間で各種の情報を送受信可能である。サーバ装置20から配信された判別モデル23a、アプリ23bおよび音源データ23cは、それぞれ判別モデル13a、アプリ13bおよび音源データ13cとして記憶部13へ記憶される。
【0052】
(制御部12について)
制御部12は、
図1を用いて説明した仮想楽器演奏処理の実行についての全体制御を行う。具体的に、制御部12は、制御部22と同様に、たとえばCPU(Central Processing Unit)やMPU(Micro Processing Unit)などによって、仮想楽器演奏装置10内部の記憶装置に記憶されている各種プログラム(たとえばアプリ13b)がRAM(Random Access Memory)を作業領域として実行されることにより実現される。また、制御部12は、制御部22と同様に、たとえば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現されてもよい。
【0053】
制御部12は、取得部12bと、顔検出部12cと、判別部12dと、解析部12eと、出力制御部12fとを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部12の内部構成は、
図2に示した構成に限られず、後述する情報処理を行うことができる構成であれば他の構成であってもよい。
【0054】
また、既に述べたが、学習部22aと同等の機能を有する学習部12aを備えていてもよい。学習部12aについては学習部22aと同様のため、説明を省略する。
【0055】
(取得部12bについて)
取得部12bは、カメラ14によって撮像された、仮想の楽器を演奏する身振りをするユーザUの撮像画像を取得する。
【0056】
(顔検出部12cについて)
顔検出部12cは、取得部12bによって取得された撮像画像中のユーザUの顔を検出する。顔検出には、公知の顔検出アルゴリズムを用いることができる。顔検出部12cによるユーザUの顔検出は、仮想楽器演奏装置10の演奏状態制御に利用することができる。
【0057】
(演奏状態制御について)
図5A〜
図5Cは、演奏状態制御の説明図(その1)〜(その3)である。
図5Aに示すように、たとえば顔検出部12cによりユーザUの顔が検出されている場合に、制御部12は、仮想楽器演奏装置10を演奏状態とする制御を行う。また、顔検出部12cによりユーザUの顔が検出されていない場合に、制御部12は、仮想楽器演奏装置10を非演奏状態とする制御を行う。
【0058】
これにより、特別な操作を行うことなく、カメラ14による撮像画像中にユーザUの顔が検出されるだけで、スムーズに仮想楽器演奏を開始することができる。
【0059】
なお、ユーザUが仮想の楽器を演奏する身振りは、たとえば音楽に乗って踊りながら、あるいは激しく行われることも多いと予測されることから、
図5Bに示すように、たとえばユーザUがターンなどして瞬間的な非検出状態となった場合は、演奏状態を継続するようにしてもよい。これにより、仮想楽器演奏がたびたび寸断するなどしてユーザUに不快感を与えたりするのを防止することができる。
【0060】
また、
図5Aおよび
図5BではユーザUの顔検出を例に挙げたが、
図5Cに示すように、胴体検出部(図示略)をさらに備えることとしたうえで、胴体検出に基づく演奏状態制御を行ってもよい。すなわち、
図5Cに示すように、ユーザUの胴体Bが検出されている場合に、制御部12は、仮想楽器演奏装置10を演奏状態とする制御を行ってもよい。また、ユーザUの胴体Bが検出されていない場合に、制御部12は、仮想楽器演奏装置10を非演奏状態とする制御を行ってもよい。
【0061】
この場合、カメラ14で複数のユーザUを撮像する場合であっても、各人を容易に識別し、各人の演奏姿勢を容易に把握することができる。
【0062】
(判別部12dについて)
図2の説明に戻り、判別部12dについて説明する。判別部12dは、取得部12bによって取得された撮像画像中の肌色部分を抽出し、かかる肌色部分に基づき、判別モデル13aを用いて肌色部分に対応する楽器の種類を判別する。このとき、具体的には、入力される肌色部分に対し、判別モデル13aからは対応するクラスIDが返され、判別部12dはかかるクラスIDによって楽器の種類およびその音の種別を判別する。
【0063】
(解析部12eについて)
解析部12eは、肌色部分のオプティカルフローを解析する。
【0064】
(出力制御部12fについて)
出力制御部12fは、判別部12dによって判別された楽器音を解析部12eの解析結果に応じて出力部15に出力させる。具体的には、出力制御部12fは、解析部12eの解析結果に含まれるオプティカルフローの大きさに基づいて楽器音の大きさを決定する。たとえば、出力制御部12fは、オプティカルフローの大きさが大きいほど楽器音が大きくなるように楽器音の大きさを決定する。
【0065】
また、出力制御部12fは、解析部12eの解析結果に含まれるオプティカルフローの向きに基づいて楽器音の音高を決定する。たとえば、出力制御部12fは、オプティカルフローが、判別部12dによって判別された楽器の高音域に対応する位置へ移動する向きを示すならば、楽器音が高くなるように楽器音の音高を決定する。
【0066】
(音高の決定方法について)
ここで、音高の決定方法の具体例について、
図6A〜
図6Dを用いて説明する。
図6A〜
図6Dは、音高の決定方法の具体例を示す図(その1)〜(その4)である。
【0067】
まず、
図6Aには、ギターやベースといった弦楽器の場合の一例を示す。
図6Aに示すギターGのように、弾(はじ)いた弦の振動する長さを変更することによって音高を変える弦楽器の場合、たとえば右手と左手の間隔が短くなることで音高は高くなり、逆に間隔が長くなることで音高は低くなる。
【0068】
すなわち、これは肌色部分のオプティカルフローに着目すれば、オプティカルフローが肌色部分の存在範囲を小さくする(肌色部分が近づく)向きを示す場合は、音高が高くなる場合に対応すると言える。逆にオプティカルフローが肌色部分の存在範囲を大きくする(肌色部分が離れる)向きを示す場合は、音高が低くなる場合に対応すると言える。
【0069】
そこで、出力制御部12fは、判別部12dによって判別された楽器の種類が弦楽器である場合に、オプティカルフローが肌色部分の存在範囲を小さくする向きを示すならば、楽器音が高くなるように楽器音の音高を決定する。また、出力制御部12fは、同じく弦楽器である場合に、オプティカルフローが肌色部分の存在範囲を大きくする向きを示すならば、楽器音が低くなるように楽器音の音高を決定する。
【0070】
次に、
図6Bには、キーボードのような鍵盤楽器の一例を示す。
図6Bに示すように、仮想のキーボードKを演奏する身振りをするユーザUを撮像する場合、キーボードKの音域は通常、図中のY軸の負方向側に行くに連れて高くなる。また、逆に、図中のY軸の正方向側に行くに連れて低くなる。
【0071】
このため、
図6Bに示す例の場合、出力制御部12fは、判別部12dによって判別された楽器の種類が鍵盤楽器であれば、肌色部分のオプティカルフローが図中のY軸の負方向側へ向かう向きを示すならば、楽器音が高くなるように楽器音の音高を決定する。また、出力制御部12fは、同じく鍵盤楽器である場合に、肌色部分のオプティカルフローが図中のY軸の正方向側へ向かう向きを示すならば、楽器音が低くなるように楽器音の音高を決定する。
【0072】
ところで、判別モデル生成のための機械学習に際して、学習用として仮想の楽器を演奏する身振りの撮像画像を用いてもよい点については既に述べた。これは、たとえば仮想の楽器について、通常とは異なる特別な姿勢で演奏しても、かかる撮像画像に基づく機械学習を実行すれば、その特別な姿勢による身振りによっても楽器の判別が可能となることを意味している。
【0073】
分かりやすい例を
図6Cおよび
図6Dに示した。
図6Cは、通常であれば鍵盤の盤面が図中のZ軸の正方向側を向くはずのキーボードKにつき、鍵盤の盤面が図中のX軸の正方向側(すなわち撮影者側)を向いていると仮定して、ユーザUがかかるキーボードKを演奏する身振りをする場合を示している。
【0074】
すなわち、この場合、機械学習は鍵盤の盤面が撮影者側に向いたキーボードKを空中で弾く身振りのユーザUの撮像画像に基づいて実行される。そして、仮想楽器演奏の際にも、ユーザUは同じく鍵盤の盤面が撮影者側に向いたキーボードKを、空中で撮影者側へ手の甲を向けて弾く身振りをすれば、判別モデル13aにより楽器はキーボードKと判別されることとなる。
【0075】
かかる
図6Cの場合、既に説明した
図6Bの場合とは異なり、キーボードKの音域は、図中のY軸の正方向側に行くに連れて高くなり、逆のY軸の負方向側に行くに連れて低くなる。
【0076】
したがって、
図6Cに示す例の場合、出力制御部12fは、判別部12dによって判別された楽器の種類が鍵盤の盤面を撮影者側へ向けた仮想の鍵盤楽器であれば、肌色部分のオプティカルフローが図中のY軸の正方向側へ向かう向きを示すならば、楽器音が高くなるように楽器音の音高を決定することとなる。また、出力制御部12fは、同じ仮想の鍵盤楽器である場合に、肌色部分のオプティカルフローが図中のY軸の負方向側へ向かう向きを示すならば、楽器音が低くなるように楽器音の音高を決定することとなる。
【0077】
図6Dは、
図6Cと同様の例をドラムセットに当てはめた場合である。すなわち、
図6Dは、通常は図中のZ軸の正方向側から視た場合のドラムセットを、図中のX軸の正方向側から視た場合に置き換えた仮想のドラムセットDrである。
【0078】
かかる仮想のドラムセットDrは、バスドラ31と、ハイハット32と、スネアドラム33と、クラッシュシンバル34と、ハイタム35と、ロータム36と、クラッシュシンバル37と、ライドシンバル38と、フロアタム39とを有するものとする。
【0079】
かかる
図6Dの場合、機械学習は仮想のドラムセットDrを空中で演奏する身振りのユーザUの撮像画像に基づいて実行される。そして、仮想楽器演奏の際にも、ユーザUは同じくスネアドラム33などの鼓面が撮影者側に向いたドラムセットDrを、空中で演奏する身振りをすれば、判別モデル13aにより楽器はドラムセットDrと判別されることとなる。
【0080】
そして、かかる仮想のドラムセットDrにつき、出力制御部12fは、オプティカルフローの向きに基づいてドラムセットDrの音高を決定する。たとえば、出力制御部12fは、肌色部分のオプティカルフローが図中の矢印601の向きを示すならば、ドラムセットDrの音高をスネアドラム33に応じた音高に決定することとなる。
【0081】
同様に、出力制御部12fは、オプティカルフローが図中の矢印602の向きを示すならば、音高をクラッシュシンバル34に応じた音高に決定することとなる。また、オプティカルフローが図中の矢印603の向きを示すならば、音高をロータム36に応じた音高に決定し、同じく図中の矢印604の向きを示すならば、音高をライドシンバル38に応じた音高に決定することとなる。
【0082】
(ユーザUの表情を解析する場合について)
ところで、これまでは、肌色部分がユーザUの手や腕を示すものとして説明してきたが、肌色部分にはたとえばユーザUの顔を含んでもよい。かかる場合、たとえば顔に相当する肌色部分のオプティカルフローに基づいて、ユーザUの表情を解析することができる。
【0083】
そして、出力制御部12fが、解析されたユーザUの表情に応じて、音の大きさやテンポなどを決定してもよい。かかる場合の具体例を
図7Aおよび
図7Bに示す。
図7Aおよび
図7Bは、ユーザUの顔の表情を解析する場合の具体例を示す図(その1)および(その2)である。
【0084】
たとえば、
図7Aに示すように、ユーザUの顔に相当する肌色部分のオプティカルフローの大きさおよび向きに基づいて、たとえばオプティカルフローの大きさが所定値より大きければ、出力制御部12fは、ユーザUが激しい表情を浮かべていると判定することができる。そして、かかる場合に、出力制御部12fは、たとえばユーザUの激しい表情に対応するオプティカルフローの大きさに応じて音の大きさを大きくしたり、テンポを速くしたりすることができる。
【0085】
また、たとえば、
図7Bに示すように、ユーザUの顔に相当する肌色部分のオプティカルフローの大きさおよび向きに基づいて、たとえばオプティカルフローの大きさが所定値より小さければ、出力制御部12fは、ユーザUが穏やかな表情を浮かべていると判定することができる。そして、かかる場合に、出力制御部12fは、たとえばユーザUの穏やかな表情に対応するオプティカルフローの大きさに応じて音の大きさを小さくしたり、テンポを遅くしたりすることができる。
【0086】
〔3.仮想楽器演奏処理の処理手順〕
次に、実施形態に係る仮想楽器演奏装置10が実行する仮想楽器演奏処理の処理手順について説明する。
図8は、実施形態に係る仮想楽器演奏装置10が実行する仮想楽器演奏処理の処理手順を示すフローチャートである。なお、
図8に示す処理手順では、判別モデル13aは予め生成され、記憶部13に記憶されているものとする。
【0087】
図8に示すように、取得部12bが、カメラ14からユーザUを撮像した撮像画像を取得する(ステップS101)。そして、制御部12が、顔検出部12cがユーザUの顔を検出したか否かを判定する(ステップS102)。
【0088】
ここで、顔検出部12cがユーザUの顔を検出した場合(ステップS102,Yes)、制御部12は、ステップS103へ制御を移す。一方、顔検出部12cがユーザUの顔を検出していない場合(ステップS102,No)、制御部12は、ステップS101からの処理を繰り返す。
【0089】
つづいて、判別部12dは、取得部12bによって取得された撮像画像中の肌色部分を抽出する(ステップS103)。そして、判別部12dは、機械学習による判別モデル13aを用いて肌色部分に対応する楽器を判別する(ステップS104)。
【0090】
そして、解析部12eが、肌色部分のオプティカルフローを解析する(ステップS105)。そして、出力制御部12fが、判別部12dの判別した楽器音を解析部12eによるオプティカルフローの解析結果に応じて出力する(ステップS106)。
【0091】
そして、制御部12は、アプリ終了操作があるか否かを判定する(ステップS107)。ここで、アプリ終了操作ありと判定された場合(ステップS107,Yes)、処理を終了する。また、アプリ終了操作なしと判定された場合(ステップS107,No)、ステップS101からの処理を繰り返す。
【0092】
〔4.複数のユーザを想定した場合について〕
ところで、これまでは、1人のユーザUを想定した場合について説明してきたが、実施形態に係る仮想楽器演奏装置10は、複数のユーザUについての仮想楽器演奏処理を行うことが可能である。
【0093】
かかる場合について、
図9Aおよび
図9Bを用いて説明する。
図9Aおよび
図9Bは、複数のユーザUを想定した場合の説明図(その1)および(その2)である。なお、ここでは複数のユーザUは2人とするが、3人以上であってもよい。
【0094】
図9Aに示すように、仮想楽器演奏装置10は、1台で複数のユーザU−1,U−2を撮像して(ステップS11)、それぞれの姿勢に対応する楽器音を出力することができる(ステップS12)。
【0095】
具体的には、取得部12bが、ユーザU−1,U−2が同時に存在する撮像画像を取得する。そして、判別部12dが、ユーザU−1,U−2それぞれの肌色部分を抽出して、かかる肌色部分に基づき、判別モデル13aによりユーザU−1,U−2それぞれに対応する楽器音を判別する。
【0096】
また、解析部12eは、ユーザU−1,U−2それぞれの肌色部分のオプティカルフローを解析して、出力制御部12fはその解析結果に応じて楽器音の大きさおよび音高を決定し、出力部15に出力させる。このとき、出力制御部12fは、ユーザU−1,U−2それぞれの楽器音がリズムやテンポなどをあわせて出力されるように、同期制御を行ってもよい。
【0097】
また、演奏状態制御は、顔検出部12cによりユーザU−1,U−2の少なくともいずれかの顔が検出されていれば、演奏状態が継続するようにしてもよい。複数のユーザUの場合、それぞれがランダムに顔の向きを変えるため、全員の顔が検出され続けることは想定しにくいためである。
【0098】
かかる
図9Aに示す例により、たとえばユーザUは、仮想楽器演奏をバンド形態で楽しむことができる。
【0099】
また、
図9Bに示すように、仮想楽器演奏装置10は、たとえば2台でそれぞれ個別にユーザU−1,U−2を撮像して(ステップS21)、それぞれが相手方の撮像画像を取得し(ステップS22)、ユーザU−1,U−2それぞれの姿勢に対応する楽器音を出力することもできる(ステップS23−1,23−2)。
【0100】
具体的には、たとえば仮想楽器演奏装置10−1の取得部12bは、自装置で撮像されたユーザU−1の撮像画像と、仮想楽器演奏装置10−2で撮像されたユーザU−2の撮像画像とを通信ネットワークNを介したビデオ通信のプロトコルなどを用いて取得する。ここで、
図9Bに示すように、相手方から取得した撮像画像は、自装置側にあわせて表示されることが好ましい。
【0101】
そして、仮想楽器演奏装置10−1の判別部12dは、自装置側に取得した撮像画像中のユーザU−1,U−2それぞれの肌色部分を抽出して、かかる肌色部分に基づき、判別モデル13aによりユーザU−1,U−2それぞれに対応する楽器音を判別する。
【0102】
また、仮想楽器演奏装置10−1の解析部12eは、自装置側で抽出したユーザU−1,U−2それぞれの肌色部分のオプティカルフローを解析する。そして、仮想楽器演奏装置10−1の出力制御部12fは、その解析結果に応じてユーザU−1,U−2それぞれの楽器音の大きさおよび音高を決定し、自装置の出力部15に出力させる。
【0103】
なお、仮想楽器演奏装置10−2側では無論、相手方を仮想楽器演奏装置10−1とした同様の処理が行われることとなる。
【0104】
かかる
図9Bに示す例により、複数のユーザUは、たとえば互いに距離を隔てた場所に所在していても、仮想楽器演奏をバンド形態で楽しむことができる。
【0105】
〔5.ハードウェア構成〕
なお、実施形態に係る仮想楽器演奏装置10は、たとえば
図10に示すような構成のコンピュータ60によって実現される。
図10は、仮想楽器演奏装置10の機能を実現するコンピュータの一例を示すハードウェア構成図である。コンピュータ60は、CPU(Central Processing Unit)61、RAM(Random Access Memory)62、ROM(Read Only Memory)63、HDD(Hard Disk Drive)64、通信インターフェイス(I/F)65、入出力インターフェイス(I/F)66、およびメディアインターフェイス(I/F)67を備える。
【0106】
CPU61は、ROM63またはHDD64に格納されたプログラムに基づいて動作し、各部の制御を行う。ROM63は、コンピュータ60の起動時にCPU61によって実行されるブートプログラムや、コンピュータ60のハードウェアに依存するプログラム等を格納する。
【0107】
HDD64は、CPU61によって実行されるプログラムおよび当該プログラムによって使用されるデータ等を格納する。通信インターフェイス65は、通信部11に対応し、通信ネットワークNを介して他の機器からデータを受信してCPU61へ送り、CPU61が生成したデータを、通信ネットワークNを介して他の機器へ送信する。
【0108】
CPU61は、入出力インターフェイス66を介して、ディスプレイやスピーカ等の出力装置、および、キーボードやマウス等の入力装置を制御する。CPU61は、入出力インターフェイス66を介して、入力装置からデータを取得する。また、CPU61は、生成したデータを、入出力インターフェイス66を介して出力装置へ出力する。
【0109】
メディアインターフェイス67は、記録媒体68に格納されたプログラムまたはデータを読み取り、RAM62を介してCPU61に提供する。CPU61は、当該プログラムを、メディアインターフェイス67を介して記録媒体68からRAM62上にロードし、ロードしたプログラムを実行する。記録媒体68は、たとえばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
【0110】
コンピュータ60が仮想楽器演奏装置10として機能する場合、コンピュータ60のCPU61は、RAM62上にロードされたプログラムを実行することにより、学習部12a、取得部12b、顔検出部12c、判別部12d、解析部12eおよび出力制御部12fの各機能を実現する。また、HDD64は、記憶部13の機能を実現し、判別モデル13a、アプリ13bおよび音源データ13cなどが格納される。
【0111】
コンピュータ60のCPU61は、これらのプログラムを、記録媒体68から読み取って実行するが、他の例として、他の装置から、通信ネットワークNを介してこれらのプログラムを取得してもよい。
【0112】
〔6.効果〕
実施形態に係る仮想楽器演奏システム1の仮想楽器演奏装置10は、取得部12bと、判別部12dと、解析部12eと、出力制御部12fとを備える。取得部12bは、ユーザUを撮像した撮像画像を取得する。判別部12dは、取得部12bによって取得された撮像画像中のユーザUの姿勢に対応する画素部分を抽出し、かかる画素部分に基づき、機械学習により生成された演奏姿勢の判別モデル13aを用いて上記姿勢に対応する楽器の種類を判別する。解析部12eは、上記画素部分のオプティカルフローを解析する。出力制御部12fは、判別された楽器の楽器音を解析部12eの解析結果に応じて出力する。
【0113】
これにより、機械学習による判別モデル13aを用いた楽器の判別を行うので、保持すべきデータの容量が少量で済み、スマートフォンなどの携帯情報端末にも容易に実装することができる。
【0114】
また、ユーザUの姿勢に対応する画素部分の動きをオプティカルフロー、すなわち画像情報のみから解析するので、モーションセンサなどのセンサ群をユーザUの身体に装着させる必要がない。したがって、ユーザUに負担をかけないという効果を奏する。
【0115】
また、上記画素部分は、撮像画像中の肌色部分である。
【0116】
これにより、ユーザUの仮想楽器演奏の身振りの特徴量が顕著に現れる手や腕などの部分に絞ってモデル判別および画像解析を行えばよいので、処理負荷を抑えることができる。また、かかる肌色部分に基づく機械学習により、判別モデル13aのデータ容量も少量で済む。したがって、スマートフォンなどの携帯情報端末に容易に実装するのに資することができる。
【0117】
また、出力制御部12fは、解析部12eの解析結果に含まれるオプティカルフローの大きさに基づいて楽器音の大きさを決定する。
【0118】
これにより、ユーザUの身振りの大きさに応じた精度の高い楽器音の出力を行うことができる。
【0119】
また、出力制御部12fは、オプティカルフローの大きさが大きいほど楽器音が大きくなるように楽器音の大きさを決定する。
【0120】
これにより、ユーザUの身振りがたとえば激しいものであれば、これに応じた音の大きな楽器音を出力することができるので、ユーザUの身振りの大きさに応じた精度の高い楽器音の出力を行うことができる。また、ユーザUにとっては、身振りを大きくすればこれに応じた音の大きな楽器音が出力されるので、ユーザUに、自身の動作に連動した仮想楽器演奏の面白みを満喫させることができる。
【0121】
また、出力制御部12fは、解析部12eの解析結果に含まれるオプティカルフローの向きに基づいて楽器音の音高を決定する。
【0122】
これにより、ユーザUの身振りに対応する位置が示す楽器の音域に応じた精度の高い楽器音の出力を行うことができる。
【0123】
また、出力制御部12fは、オプティカルフローが、判別部12dによって判別された楽器の高音域に対応する位置へ移動する向きを示すならば、楽器音が高くなるように楽器音の音高を決定する。
【0124】
これにより、ユーザUの身振りに対応する位置が楽器の高音域を示す場合に、これに応じた高い音の楽器音を出力することができるので、ユーザUの身振りに対応する位置が示す楽器の音域に応じた精度の高い楽器音の出力を行うことができる。また、ユーザUにとっては、身振りにより楽器の高音域の位置を示せばこれに応じた高い音の楽器音が出力されるので、ユーザUに、自身の動作に連動した仮想楽器演奏の面白みを満喫させることができる。
【0125】
また、出力制御部12fは、判別部12dによって判別された楽器の種類が弦楽器である場合に、オプティカルフローが上記画素部分の存在範囲を小さくする向きを示すならば、楽器音が高くなるように楽器音の音高を決定する。
【0126】
これにより、弦楽器の実際の演奏に近い身振り、たとえば高い音を出したければ弦の振動が短くなるように右手と左手を近づける身振りをすれば、これに応じた高い音の楽器音が出力されるので、精度の高い楽器音の出力を行うことができる。また、ユーザUにとっては、弦楽器の実際の演奏に近い身振りをすれば、これに応じて楽器音を精度高く出力させることができるので、ユーザUに、弦楽器の仮想演奏、たとえばエアギターの面白みを満喫させることができる。
【0127】
また、撮像画像中のユーザUの顔を検出する顔検出部12cをさらに備え、出力制御部12fは、顔検出部12cによってユーザUの顔が検出されている間、楽器音を出力する。
【0128】
これにより、仮想楽器演奏の演奏状態制御を特別な操作を行うことなく実行することができる。すなわち、ユーザビリティを向上させることができる。
【0129】
また、撮像画像中のユーザUの胴体Bを検出する胴体検出部をさらに備え、出力制御部12fは、胴体検出部によってユーザUの胴体Bが検出されている間、楽器音を出力する。
【0130】
これにより、カメラ14で複数のユーザUを撮像する場合であっても、各人を容易に識別し、各人の演奏姿勢を容易に把握することができる。そして、仮想楽器演奏の演奏状態制御を特別な操作を行うことなく実行することができる。すなわち、ユーザビリティを向上させることができる。
【0131】
また、撮像画像中の上記画素部分に基づいて機械学習を実行することで判別モデル13aを生成する学習部12aをさらに備える。
【0132】
これにより、ユーザUの仮想楽器演奏の身振りの特徴量が顕著に現れる手や腕などの部分に絞った機械学習が実行され、生成される判別モデル13aもデータ容量の小さなものとなる。したがって、スマートフォンなどの携帯情報端末に容易に実装するのに資することができる。また、仮想楽器演奏装置10の実際の利用中に撮像された撮像画像によるフィードバックデータに基づき、判別モデル13aを更新できるので、仮想楽器演奏装置10を利用するに連れて、判別モデル13aの精度を向上させるのに資することができる。
【0133】
〔7.その他〕
以上、本願の実施形態の一態様を図面に基づいて詳細に説明したが、これは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【0134】
たとえば上述した実施形態では、ユーザUの身振りにつき、判別モデル13aを用いて対応する楽器音を決定することとしたが、楽器音は、たとえばスマートフォンへのタップ操作によって切替可能であるようにしてもよい。
【0135】
また、上述した実施形態では、出力部15がスピーカであることとしたが、出力部15にディスプレイが含まれてもよい。かかる場合、出力制御部12fは、たとえば判別部12dによって判別された楽器の画像を、撮像されるユーザUに重ね合わせてディスプレイに表示するようにしてもよい。これにより、仮想楽器演奏の身振りをするユーザUだけでなく、撮影者などの見る側にも、仮想楽器演奏の楽しさを満喫させることができる。