説明

プログラム、情報記憶媒体及び物体認識システム

【課題】効率的に、かつ、正確に物体を認識する処理を行うことが可能な物体認識処理のプログラム、情報記憶媒体及び物体認識システムを提供すること。
【解決手段】入力画像の各画素の動きベクトルに基づいて、入力画像において特定領域を設定し、特定領域において物体認識処理を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、情報記憶媒体及び物体認識システムに関する。
【背景技術】
【0002】
従来から、入力画像の各画素の動きベクトルを求めて入力画像を解析し、入力画像上の物体を認識する処理を行う装置が存在する(特許文献1)。
【0003】
しかし、特許文献1に示すような従来技術は、動いている対象が人であることを前提として作られたものであり、実際には被写体が人でない物体(例えば、「鳥」)などの動きも、人の動きであると誤認されてしまうことがあった。
【0004】
また、動いている対象が「人」であるか否かを判断する従来技術も存在するが、このような従来技術は、入力画像全体において「人」の認識パターンを用いて認識処理を行うので、非常に効率が悪く処理負荷が高くなるものであった。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2005−13750号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明は、以上のような問題に鑑みてなされたものであり、その目的とするところは、効率的に、かつ、正確に物体を認識する処理を行うことが可能な物体認識処理のプログラム、情報記憶媒体及び物体認識システムを提供することにある。
【課題を解決するための手段】
【0007】
(1)本発明は、物体を認識する処理を行うプログラムであって、撮像部によって撮像された入力画像を取得し、異なる時点で撮像された2つの入力画像に基づいて、入力画像の各画素の動きベクトルを算出する算出部と、入力画像の各画素の動きベクトルに基づいて、入力画像において特定領域を設定する領域設定部と、物体を認識する物体認識処理を行う物体認識処理部として、コンピュータを機能させ、前記物体認識処理部が、特定領域において物体認識処理を行うプログラムに関する。また本発明は、コンピュータに読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶(記録)した情報記憶媒体に関係する。また、本発明は、上記各部を含む物体認識システムに関係する。
【0008】
本発明によれば、特定領域に集中して物体認識処理を行うので、従来よりも正確に物体を認識することができる。また、本発明によれば、全画面ではなく特定領域において物体認識処理を行うので、無駄な処理を省略することができ、従来よりも効率よく物体認識処理を行うことができる。また、本発明によれば特定領域において物体認識処理を行うので特定領域以外の領域に別の物体が映りこんでいる場合に、その別の物体を誤って認識する事態を防止することができる。
【0009】
(2)また、本発明のプログラム、情報記憶媒体及び物体認識システムは、前記物体認識処理部が、特定領域における物体認識処理の精度を特定領域以外の領域の物体認識処理の精度よりも上げて、特定領域において物体認識処理を行うようにしてもよい。本発明は、特定領域における物体認識処理の精度を特定領域以外の領域の物体認識処理の精度よりも上げて、特定領域において物体認識処理を行うので、より正確に物体を認識することができる。
【0010】
(3)また、本発明のプログラム、情報記憶媒体及び物体認識システムは、前記物体認識処理部が、特定領域において物体認識処理を行う周期を特定領域以外の領域の物体認識処理の周期よりも短くして、特定領域において物体認識処理を行うようにしてもよい。本発明によれば、特定領域において物体認識処理を行う周期を特定領域以外の領域の物体認識処理の周期よりも短くするので、より正確に物体を認識することができる。
【0011】
(4)また、本発明のプログラム、情報記憶媒体及び物体認識システムは、前記物体認識処理部が、特定領域の画像精度を特定領域以外の領域の画像精度よりも上げて、特定領域において物体認識処理を行うようにしてもよい。本発明によれば、特定領域の画像精度を特定領域以外の領域の画像精度よりも上げて、特定領域において物体認識処理を行うので、より正確に物体を認識することができる。
【0012】
(5)また、本発明のプログラム、情報記憶媒体及び物体認識システムは、前記物体認識処理部が、特定領域以外の領域において物体認識処理を行うと共に、特定領域以外の領域において物体認識処理を行う周期を、特定領域において物体認識処理を行う周期よりも長くするようにしてもよい。本発明によれば、特定領域以外の領域においても物体認識処理を行うことができる。また、本発明は、特定領域以外の領域において物体認識処理を行う周期を、特定領域において物体認識処理を行う周期よりも長くするので、マシンパワー(コンピュータの総合的な処理能力)を主に特定領域の物体認識処理に注力することができ、特定領域の物体認識処理をより正確に行うことができる。
【0013】
(6)また、本発明のプログラム、情報記憶媒体及び物体認識システムは、前記物体認識処理部が、特定領域以外の領域において物体認識処理を行うと共に、特定領域以外の領域の画像精度を特定領域の画像精度よりも低くするようにしてもよい。本発明によれば、特定領域以外の領域においても物体認識処理を行うことができる。また、本発明は、特定領域以外の領域の画像精度を特定領域の画像精度よりも低くするので、マシンパワーを主に特定領域の物体認識処理に注力することができ、特定領域の物体認識処理をより正確に行うことができる。
【0014】
(7)また、本発明のプログラム、情報記憶媒体及び物体認識システムは、前記領域設定部が、複数の特定領域を設定した場合には、前記物体認識処理部が、少なくとも1つの特定領域について物体認識処理を行うようにしてもよい。本発明によれば、複数の特定領域を設定した場合に、少なくとも1つの特定領域について物体認識処理を行うので、少なくとも1つの特定領域について、より正確に物体を認識することができる。
【0015】
(8)また、本発明のプログラム、情報記憶媒体及び物体認識システムは、前記領域設定部が、各特定領域に優先度を付与し、前記物体認識処理部が、各特定領域において物体認識処理を行うと共に、優先度の低い特定領域において物体認識処理を行う周期を、優先度の高い特定領域において物体認識処理を行う周期よりも長くするようにしてもよい。本発明によれば、複数の特定領域において物体を認識する場合に、優先度の低い特定領域において物体認識処理を行う周期を、優先度の高い特定領域において物体認識処理を行う周期よりも長くするので、優先度が高い特定領域ほどマシンパワーを注力することができ、効率よく物体認識処理を行うことができる。
【0016】
(9)また、本発明のプログラム、情報記憶媒体及び物体認識システムは、前記領域設定部が、各特定領域に優先度を付与し、前記物体認識処理部が、各特定領域において物体認識処理を行うと共に、優先度の低い特定領域の画像精度を、優先度の高い特定領域の画像精度よりも低くするようにしてもよい。本発明によれば、複数の特定領域において物体を認識する場合に、優先度の低い特定領域において物体認識処理を行う周期を、優先度の低い特定領域の画像精度を、優先度の高い特定領域の画像精度よりも低くするので、優先度が高い特定領域ほどマシンパワーを注力することができ、効率よく物体認識処理を行うことができる。
【0017】
(10)また、本発明のプログラム、情報記憶媒体及び物体認識システムは、前記領域設定部が、各特定領域に優先度を付与し、前記物体認識処理部が、優先度の低い特定領域において物体認識処理を行わずに、優先度の高い特定領域において物体認識処理を行うようにしてもよい。本発明によれば、優先度の低い特定領域において物体認識処理を行わずに、優先度の高い特定領域において物体認識処理を行うので、より効率よく物体認識処理を行うことができる。
【0018】
(11)また、本発明のプログラム、情報記憶媒体及び物体認識システムは、前記領域設定部が、入力画像の各画素の動きベクトルと色情報とに基づいて、入力画像において特定領域を設定するようにしてもよい。本発明によれば、入力画像の各画素の動きベクトルと色情報とに基づいて、入力画像において特定領域を設定するので、より正確に物体を認識すべき特定領域を設定することができる。
【0019】
(12)また、本発明のプログラム、情報記憶媒体及び物体認識システムは、前記領域設定部が、入力画像の各画素の動きベクトルのうち大きさが所定値以上である動きベクトルに基づいて、入力画像において特定領域を設定するようにしてもよい。本発明によれば、入力画像の各画素の動きベクトルのうち大きさが所定値以上である動きベクトルに基づいて、入力画像において特定領域を設定するので、より正確に物体を認識すべき特定領域を設定することができる。
【0020】
(13)また、本発明のプログラム、情報記憶媒体及び物体認識システムは、前記物体認識処理部が、ボーン情報に基づいて、前記特定領域における前記物体認識処理を行うようにしてもよい。本発明によれば、ボーン情報に基づいて特定領域における物体認識処理を行うので、物体をより適確に認識することができる。
【図面の簡単な説明】
【0021】
【図1】本実施形態の第1の物体認識システムの概観図。
【図2】本実施形態の第1の物体認識システムの機能ブロック図。
【図3】動きベクトルの説明図。
【図4】図4(A)〜(G)は、動きベクトルの説明図。
【図5】動きベクトルの向きを算出するためのフローチャート。
【図6】図6(A)(B)(C)は、動きベクトルの説明図。
【図7】特定領域を設定する手法を説明するための図。
【図8】特定領域において物体認識処理を行う手法を説明するための説明図。
【図9】物体認識処理の周期を説明するための図。
【図10】図10(A)(B)(C)は、動きベクトルの説明図。
【図11】特定領域を設定する手法を説明するための図。
【図12】特定領域において物体認識処理を行う手法を説明するための説明図。
【図13】物体認識処理の周期を説明するための図。
【図14】特定領域を設定する手法を説明するための図。
【図15】各特定領域の優先度に関する説明図。
【図16】特定領域において物体認識処理を行う手法を説明するための説明図。
【図17】物体認識処理の周期を説明するための図。
【図18】第1の実施形態のフローチャート。
【図19】本実施形態の第2の物体認識システムの概観図。
【図20】本実施形態の第2の物体認識システムの機能ブロック図。
【図21】図21(A)(B)は、本実施形態の入力部に入力される入力画像の説明図。
【図22】第2の実施形態の深度センサの説明図。
【図23】第2の実施形態の深度センサの説明図。
【図24】第2の実施形態の実空間における物体の位置と入力部の位置関係を示す説明図。
【図25】図25(A)〜(D)は、物体認識処理の説明図。
【図26】特定領域を設定する手法を説明するための図。
【図27】特定領域において物体認識処理を行う手法を説明するための説明図。
【図28】図28(A)(B)は、特定領域において物体認識処理を行う手法を説明するための説明図。
【図29】特定領域を設定する手法を説明するための図。
【図30】特定領域において物体認識処理を行う手法を説明するための説明図。
【図31】特定領域において物体認識処理を行う手法を説明するための説明図。
【図32】第2の実施形態のフローチャート。
【図33】図33(A)(B)は、物体の動き認識処理の説明図。
【発明を実施するための形態】
【0022】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0023】
1.第1の実施形態
1−1.第1の物体認識システム
図1は、第1の実施形態における第1の物体認識システム(第1のゲームシステム、第1の画像生成システム)の概略外観図である。本実施形態の第1の物体認識システムは、ゲーム画像を表示させる表示部90と、物体認識処理、ゲーム処理等を行う物体認識装置10(ゲーム機)と、入力部20とを含む。そして、図1に示すように、表示部90(表示画面91)の周囲には、表示部90と関連付けた位置に入力部20が配置されている。例えば、入力部20は、表示部90の下部に配置してもよいし、表示部90の上部に配置してもよい。
【0024】
そして、物体認識装置10は、静止状態にあるRGBカメラ(撮像部)21を備える入力部20から取得した入力画像を解析し、入力画像上の物体を認識する。例えば、図1に示すように、物体認識装置10は、プレーヤPを被写体として撮像した入力画像と「人」(物体の一例)の認識パターンとを比較することによって、入力画像で「人」を認識できるか否かを判断する。そして、物体認識装置10は、「人」を認識できた場合には、「人」の動きや、ジェスチャーを認識する処理を行う。これにより、さまざまなゲーム処理を行うことができる。第1の実施形態では、この入力部20を用いた第1の物体認識システムの処理例について説明する。
【0025】
1−2.構成
図2は、第1の物体認識システムの機能ブロック図の一例である。なお、第1の物体認識システムでは、図2の各部を全て含む必要はなく、その一部を省略した構成としてもよい。
【0026】
第1の物体認識システムは、物体認識装置10と、入力部20と、表示部90、スピーカー92を含む。入力部20は、RGBカメラ(撮像部)21、処理部22、記憶部23によって構成されている。
【0027】
RGBカメラ(撮像部)21は、物体から発した光をレンズなどの光学系によって撮像素子の受光平面に結像させ、その像の光による明暗を電荷の量に光電変換し、それを順次読み出して電気信号に変換する。そして、RGB化(カラー化)されたRGB画像(入力画像の一例)を記憶部23に出力する処理を行う。RGBカメラ21は、所定の周期で(例えば、1/60秒毎に)、記憶部23に出力する処理を行う。また、処理部22は、RGBカメラ21で撮像されたRGB画像を、物体認識装置10に送信する処理などを行う。また、記憶部23は、RGBカメラ21によって出力されたRGB画像を逐次記憶する。
【0028】
次に、本実施形態の物体認識装置10について説明する。本実施形態の物体認識装置10は、記憶部170、処理部100、情報記憶媒体180、通信部196によって構成される。
【0029】
記憶部170は、主記憶部171、描画バッファ172、認識パターン記憶部173、入力画像記憶部174、差分画像記憶部175とを含む。主記憶部171は、処理部100のワーク領域であり、描画バッファ172は、画像生成部120において描画された画像を格納するための記憶領域である。
【0030】
また、認識パターン記憶部173は、物体を特定するために予め用意されたパターン、テンプレートを格納するための記憶領域であり、物体それぞれに対応づけてパターンが記憶されている。例えば、視覚的特徴や画素値そのものを認識パターンとして認識パターン記憶部173に格納される。
【0031】
なお、認識パターン記憶部173は、データベースとして構築される記憶領域でもよい。例えば、「人」、「手」、「足」、「腕」などの各物体に対応づけて、1または複数のパターンを関連づけて記憶するようにしてもよい。
【0032】
また、入力画像記憶部174は、物体認識処理、動きベクトル算出処理を行うために所定周期で入力部20が取得した入力画像を格納するための記憶領域である。また、差分画像記憶部175は、動きベクトル算出処理を行うために、異なる時点で撮像された2つの画像の各画素値の差分をとった差分画素値を格納するための記憶領域である。
【0033】
そして、処理部100は、この情報記憶媒体180に格納されるプログラムから読み出されたデータに基づいて本実施形態の種々の処理を行う。即ち、情報記録媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶される。
【0034】
通信部196は、ネットワーク(インターネット)を介して他のゲーム機と通信することができる。その機能は、各種プロセッサまたは通信用ASIC、ネットワーク・インタフェース・カードなどのハードウェアや、プログラムなどにより実現できる。
【0035】
なお、本実施形態の各部としてコンピュータを機能させるためのプログラムは、サーバが有する、記憶部、情報記憶媒体からネットワークを介して情報記憶媒体180(または、記憶部170)に配信するようにしてもよい。このようなサーバの情報記憶媒体の使用も本発明の範囲に含まれる。
【0036】
処理部100(プロセッサ)は、入力部20から取得した情報や情報記憶媒体180から記憶部170に展開されたプログラム等に基づいて、物体認識処理、ゲーム処理、画像生成処理、或いは音制御の処理を行う。
【0037】
特に、第1の物体認識システムの処理部100は、取得部110、算出部111、領域決定部112、物体認識処理部113、ゲーム演算部114、画像生成部120、音制御部130として機能する。
【0038】
取得部110は、RGBカメラ(撮像部)21によって撮像された入力画像(RGB画像)を取得する処理を行う。
【0039】
算出部111は、異なる時点で撮像された2つの入力画像に基づいて、入力画像の各画素の動きベクトルを算出する。
【0040】
領域設定部112は、入力画像の各画素の動きベクトルに基づいて、入力画像において特定領域を設定する。領域設定部112は、複数の特定領域を設定するようにしてもよい。複数の特定領域を設定した場合には、各特定領域に優先度(優先順位情報)を付与(設定)する。つまり、特定領域単位で優先度を付与する。なお、優先度は、優先度が上位である特定領域を、その特定領域より優先度が下位である特定領域に優先して特定領域の物体認識処理を行うための情報である。
【0041】
また、領域設定部112は、入力画像の各画素の動きベクトルと色情報とに基づいて、入力画像において特定領域を設定するようにしてもよい。また、領域設定部112は、入力画像の各画素の動きベクトルのうち大きさが所定値以上である動きベクトルに基づいて、入力画像において特定領域を設定するようにしてもよい。
【0042】
物体認識処理部113は、物体を認識する物体認識処理を行う。ここで、物体を認識する物体認識処理とは、物体自体を認識する処理、物体の動きを認識する処理、物体のジェスチャー(形、ポーズ)を認識する処理の少なくとも1つを含む。
【0043】
例えば、物体認識処理部113は、入力画像の各画素の画素情報(画素の位置座標、画素の色情報、画素の動きベクトルの少なくとも1つ)に基づいて、認識パターン記憶部173に格納されている「人」の認識パターンを用いて、「人」を認識できるか否かを判断する。
【0044】
具体的には、「人」の形(形状、シルエット)の認識パターンを用意し、入力画像において動きベクトルによって示される動き領域の形が、「人」の形であるか否かを判断する。そして、「人」の形であると判断した場合には、「人」を認識したと判定する処理を行う。一方、「人」を認識できない場合には、次の物体(例えば「手」)の認識パターンを用いて、次の物体(「手」)を認識できるか否かを判断する。そして、物体を認識できるまで、入力画像と次の認識パターンとを照合する処理を行う。
【0045】
また、物体認識処理部113は、「人」を認識したと判定された場合には、入力画像の各画素の画素情報に基づいて、「人」の動きを認識する処理を行う。また、物体認識処理部113は、「人」を認識したと判定された場合には、入力画像の各画素の画素情報に基づいて、「人」のジェスチャーを認識する処理を行う。
【0046】
特に、本実施形態の物体認識処理部113は、特定領域において物体認識処理を行う。例えば、物体認識処理部113は、特定領域における物体認識処理の精度を特定領域以外の領域の物体認識処理の精度よりも上げて、特定領域において物体認識処理を行うようにしてもよい。
【0047】
より具体的に説明すると、物体認識処理部113は、特定領域において物体認識処理を行う周期を特定領域以外の領域の物体認識処理の周期よりも短くして、特定領域において物体認識処理を行う。また、物体認識処理部113は、特定領域の画像精度(精細度)を特定領域以外の領域の画像精度よりも上げて、特定領域において物体認識処理を行う。
【0048】
また、物体認識処理部113は、特定領域以外の領域において物体認識処理を行うと共に、特定領域以外の領域において物体認識処理を行う周期を、特定領域において物体認識処理を行う周期よりも長くする。また、物体認識処理部113は、特定領域以外の領域において物体認識処理を行うと共に、特定領域以外の領域の画像精度を特定領域の画像精度よりも低くする。
【0049】
また、物体認識処理部113は、複数の(2以上の)特定領域を設定されている場合には、少なくとも1つの特定領域について物体認識処理を行う。
【0050】
また、物体認識処理部113は、複数の特定領域を設定されている場合には、各特定領域において物体認識処理を行うと共に、優先度の低い特定領域において物体認識処理を行う周期を、優先度の高い特定領域において物体認識処理を行う周期よりも長くするようにしてもよい。
【0051】
また、物体認識処理部113は、複数の特定領域を設定されている場合には、各特定領域において物体認識処理を行うと共に、優先度の低い特定領域の画像精度を、優先度の高い特定領域の画像精度よりも低くするようにしてもよい。
【0052】
また、物体認識処理部113は、複数の特定領域を設定されている場合には、優先度の低い特定領域において物体認識処理を行わずに、優先度の高い特定領域において物体認識処理を行うようにしてもよい。
【0053】
また、物体認識処理部113は、ボーン情報に基づいて、前記特定領域における前記物体認識処理を行うようにしてもよい。
【0054】
ゲーム演算部114は、種々のゲーム演算を行う。ここでゲーム演算としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。
【0055】
例えば、ゲーム演算部114は、入力部20からの入力データやプログラムなどに基づいて、ゲーム処理を行う。本実施形態のゲーム演算部114は、例えば、物体認識処理部113の認識結果に基づいてゲーム演算処理を行う。つまり、物体認識処理部113において「人(プレーヤ)」を認識した場合には、物体認識処理部113が「人」の動きやジェスチャーを認識し、その「人」の動き(左右に人が動く動作)やジェスチャー(特定のポーズ)に基づいてゲーム演算処理を行うようにしてもよい。
【0056】
なお、処理部100は、仮想空間にオブジェクトを配置する処理、仮想空間に存在するオブジェクトを移動させる処理などを行うようにしてもよい。例えば、処理部100は、オブジェクトを仮想空間(仮想3次元空間(オブジェクト空間)、仮想2次元空間)に配置する処理を行うようにしてもよい。例えば、キャラクタ、指示オブジェクトの他に、建物、球場、車、樹木、柱、壁、マップ(地形)などの表示物を、仮想空間に配置する処理を行う。ここで仮想空間とは、仮想的なゲーム空間であり、例えば、仮想3次元空間の場合、ワールド座標系、仮想カメラ座標系のように、3次元座標(X,Y,Z)においてオブジェクトが配置される空間である。
【0057】
例えば、処理部100は、ワールド座標系にオブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト)を配置する。また、例えば、ワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。なお、処理部100は、スケーリングされたオブジェクトを仮想空間に配置する処理を行ってもよい。
【0058】
また、処理部100は、仮想空間にあるオブジェクトの移動・動作演算を行うようにしてもよい。すなわち入力部から受け付けた入力情報、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)などに基づいて、オブジェクトを仮想空間内で移動させたり、オブジェクトを動作(モーション、アニメーション)させたりする処理を行う。具体的には、オブジェクトの移動情報(移動速度、移動加速度、位置、向きなど)や動作情報(オブジェクトを構成する各パーツの位置、或いは回転角度)を、1フレーム(1/60秒)毎に順次求める処理を行う。なお、フレームは、オブジェクトの移動・動作処理や画像生成処理を行う時間の単位である。
【0059】
画像生成部120は、処理部100で行われる種々の処理の結果に基づいて描画処理を行い、これにより画像を生成し、表示部90に出力する。例えば、本実施形態の画像生成部120は、基準開始タイミングと基準判定期間とを指示する画像を生成する。
【0060】
画像生成部120は、オブジェクト(モデル)の各頂点の頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)を含むオブジェクトデータ(モデルデータ)が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理(頂点シェーダによるシェーディング)が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。
【0061】
頂点処理では、頂点処理プログラム(頂点シェーダプログラム、第1のシェーダプログラム)に従って、頂点の移動処理や、座標変換、例えばワールド座標変換、視野変換(カメラ座標変換)、クリッピング処理、透視変換(投影変換)、ビューポート変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更(更新、調整)する。
【0062】
そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセル処理(ピクセルシェーダによるシェーディング、フラグメント処理)が行われる。ピクセル処理では、ピクセル処理プログラム(ピクセルシェーダプログラム、第2のシェーダプログラム)に従って、テクスチャの読出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を画像バッファ172(ピクセル単位で画像情報を記憶できるバッファ。VRAM、レンダリングターゲット)に出力(描画)する。すなわち、ピクセル処理では、画像情報(色、法線、輝度、α値等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として1画面に表示できるように画像を生成することができる。
【0063】
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン(プリミティブ)の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ(頂点シェーダやピクセルシェーダ)により実現される。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【0064】
そして画像生成部120は、オブジェクトを描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【0065】
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後(透視投影変換後)のオブジェクトデータ(オブジェクトの頂点の位置座標、テクスチャ座標、色データ(輝度データ)、法線ベクトル、或いはα値等)は、記憶部170に保存される。
【0066】
テクスチャマッピングは、記憶部170に記憶されるテクスチャ(テクセル値)をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定(付与)されるテクスチャ座標等を用いて記憶部170からテクスチャ(色(RGB)、α値などの表面プロパティ)を読み出す。そして、2次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【0067】
隠面消去処理としては、描画ピクセルのZ値(奥行き情報)が格納されるZバッファ(奥行きバッファ)を用いたZバッファ法(奥行き比較法、Zテスト)による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Zバッファに格納されるZ値を参照する。そして参照されたZバッファのZ値と、プリミティブの描画ピクセルでのZ値とを比較し、描画ピクセルでのZ値が、仮想カメラから見て手前側となるZ値(例えば小さなZ値)である場合には、その描画ピクセルの描画処理を行うとともにZバッファのZ値を新たなZ値に更新する。
【0068】
αブレンディング(α合成)は、α値(A値)に基づく半透明合成処理(通常αブレンディング、加算αブレンディング又は減算αブレンディング等)のことである。
【0069】
例えば、αブレンディングでは、これから画像バッファ172に描画する描画色(上書きする色)C1と、既に画像バッファ172(レンダリングターゲット)に描画されている描画色(下地の色)C2とを、α値に基づいて線形合成処理を行う。つまり、最終的な描画色をCとすると、C=C1*α+C2*(1−α)によって求めることができる。
【0070】
なお、α値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度(透明度、不透明度と等価)、バンプ情報などとして使用できる。
【0071】
音制御部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、スピーカー92に出力する。
【0072】
なお、本実施形態の端末は、1人のプレーヤのみがプレイできるシングルプレーヤモード、或いは、複数のプレーヤがプレイできるマルチプレーヤモードでゲームプレイできるように制御してもよい。例えば、マルチプレーヤモードで制御する場合には、ネットワークを介して他の端末とデータを送受信してゲーム処理を行うようにしてもよいし、1つの端末が、複数の入力部からの入力情報に基づいて処理を行うようにしてもよい。
【0073】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などのハードウェアにより実現できる。
【0074】
表示部90は、処理部100により生成された画像を出力するものであり、その機能は、CRTディスプレイ、LCD(液晶ディスプレイ)、OELD(有機ELディスプレイ)、PDP(プラズマディスプレイパネル)、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などのハードウェアにより実現できる。
【0075】
スピーカー92は、音制御部130により再生する音を出力するものであり、その機能は、スピーカー、或いはヘッドフォンなどのハードウェアにより実現できる。なお、スピーカー92は、表示部に備えられたスピーカーとしてもよい。例えば、テレビ(家庭用テレビジョン受像機)を表示部としている場合には、テレビのスピーカーとすることができる。
【0076】
なお、本実施形態は、物体認識装置10の認識パターン記憶部173、入力画像記憶部174、差分画像記憶部175に記憶されるデータを、入力部20の記憶部23に記憶するようにし、本実施形態の算出部111、領域設定部112、物体認識処理部113の処理を、入力部20の処理部22が行うようにしてもよい。
【0077】
1−3.動きベクトルの説明
本実施形態は、RGBカメラ21(撮像部)により撮像された入力画像(RGB画像)を取得する。例えば、図3に示すように、描画のフレームレートにあわせて所定周期(例えば、1/60秒の周期)で、RGBカメラ21からデジタル化された入力画像F1、F2、F3、F4を取得する処理を行う。
【0078】
そして、本実施形態では、異なる時点で撮像された2つの入力画像において、同じ画素の対応付けを行い、その動き量(移動量)と動き方向(移動方向)とを示す動きベクトル(移動ベクトル、オプティカルフロー)を求める。図3の動きベクトルVは、入力画像F1の画素P1に対応する入力画像F2の画素P2に向かうベクトルを示している。本実施形態では、入力画像の各画素について動きベクトルを求めている。
【0079】
特に、本実施形態では、処理負荷を軽減するために、入力画像F1、F2との画素値(輝度値、カラー値)の差分をとった差分画像に基づいて動きベクトルを求めている。例えば、図4(A)に示すように画素値が「50」の領域が右下方向に動く例について説明する。本実施形態では、図4(B)に示すように前画像(入力画像F1)と、現画像(入力画像F2)とを入力画像記憶部174に記憶部し、前画像と現画像の画素値の差分をとり、図4(C)に示す差分画像を、差分画像記憶部175に記憶する。そして、差分画像に基づいて画素の動き量と動き方向とを求めている。つまり、本実施形態では、前画像と現画像との差分をとった各画素の差分画素値の絶対値を、各画素の動きベクトルVの大きさ(動き量)とし、前画像と現画像との差分画素値に基づいて、画素における各方位(上方向、下方向、右方向、左方向)の推定方位を求める。
【0080】
推定方位の求め方についてより詳しく図5に示すフローチャートを用いて説明する。まず、本実施形態では、前画像の画素P(x,y)の特定方位上の隣接する2つの画素値を比較する(ステップS1)。例えば、図4(D)に示すように、前画像の画素P(x,y)の左右方向上に隣接する画素(x,y)の画素値と(x,y)の画素値とを比較する。
【0081】
そして、比較した画素値が等しいか否かを判断する(ステップS2)。そして、比較した画素値が等しくない場合は、ステップS3に進み、一方、比較した画素値が等しい場合には画素P(x,y)が動いていないものとみなし処理を終了する。例えば、画素(x,y)の画素値と画素(x,y)の画素値は異なるので、ステップS3に進む。
【0082】
そして、小さい画素値を有する画素をLとし、大きい画素値を有する画素をGとする(ステップS3)。例えば、図4(D)の例では、画素(x,y)をLとし、画素(x,y)をGとする。
【0083】
そして、画素P(x,y)での差分画像の差分画素値が0であるか否かを判断し(ステップS4)、差分画素値が0でない場合には、ステップS5に進み、差分画像の差分画素値が0である場合には、画素P(x,y)が動いていないものとみなし処理を終了する。例えば、図4(D)の例では、画素P(x,y)差分画像の差分画素値は「−40」であるので、ステップS5に進む。
【0084】
そして、差分画素値が0より小さいか否かを判断し(ステップS5)、差分画素値が0より小さい場合には、ステップS6に進み、P→Gの向きを選択する処理を行う(ステップS6)。一方、差分画素値が0より小さくない場合には、ステップS7に進み、P→Lの向きを選択する処理を行う(ステップS7)。図4(D)の例では、画素P(x,y)差分画像の差分画素値は「−40」であり、0より小さいのでステップS6に進み、P→Gの右方向の向きが推定方向として選択される。以上で処理が終了する。
【0085】
図4(E)は、全画素について、画素の4方位(上方向、下方向、右方向、左方向)の推定方向を求めた例である。本実施形態では、図4(F)に示すように、各画素において、画素の4方位(上方向、下方向、右方向、左方向)に関する推定方向の和をその画素P(x,y)の動き方向としてもよい。また、図4(G)に示すように、各画素において、画素の周辺8個を含む推定方向を平滑化した方向を動き方向としてもよい。
【0086】
以上のようにして、本実施形態では、入力画像の各画素の動き量、及び動きベクトルを求めているが、いわゆる勾配法やブロックマッチング法によって求めてもよい。なお、本実施形態では、RGB画像を入力画像としているが、輝度値を有するグレースケール画像を入力画像として用いてもよい。
【0087】
1−4.物体認識処理
本実施形態では、記憶部に予め格納されている認識パターンを用いて、RGBカメラによって撮像された画像上の物体を認識する物体認識処理を行う。ここで、物体を認識する物体認識処理とは、物体自体を認識する処理、物体の動きを認識する処理、物体のジェスチャー(形、ポーズ)を認識する処理の少なくとも1つを含む。
【0088】
例えば、入力画像の各画素の画素情報(画素の位置座標、画素の色情報、画素の動きベクトルの少なくとも1つ)に基づいて、認識パターン記憶部173に格納されている「人」の認識パターンを用いて、「人」を認識できるか否かを判断する。
【0089】
具体的には、差分画像において差分画素値が20以上の画素の領域、或いは、差分画像において差分画素値が0より大きい値の画素で区切られる領域を動き領域として設定し、「人」の形(形状)の認識パターンを用いて、動き領域の形が認識パターンで示される「人」の形と適合(一致)するか否かを判断する。そして、「人」の形と適合する場合には、「人」を認識したと判定する処理を行う。一方、「人」を認識できない場合には、次の物体(例えば「手」)の認識パターンを用いて、次の物体を認識できるか否かを判断する。そして、物体を認識できるまで、入力画像と次の認識パターンとを照合する処理を行う。そして、結果的に動き領域において物体を認識できない場合には、次の動き領域を特定して、次の動き領域において物体を認識する処理を行う。
【0090】
本実施形態では、(A)毎フレーム(1/60秒間隔)で2つの画像の差分画像をとり、差分画像の差分画素値に基づいて、動き領域を特定してもよいし、(B)2フレーム(1/30秒間隔)で2つの画像の差分画像をとり、差分画像の差分画素値に基づいて、動き領域を特定してもよいし、(C)10フレーム(1/6秒間隔)で2つの画像の差分画像をとり、差分画像の差分画素値に基づいて、動き領域を特定してもよい。
【0091】
なお、(A)(B)(C)で特定した動き領域の平均的な領域を、動き領域として特定してもよい。例えば、1秒間の間に毎フレームでの差分画像の差分画素値の平均値Aと、同じ1秒間の間に1/30秒間隔での差分画像の差分画素値の平均値Bと、同じ1秒間の間に1/6秒間隔での差分画像の差分画素値の平均値Cの合計を、3で割った値を用いて、動き領域を設定するようにしてもよい。
【0092】
1−5.特定領域において物体を認識する処理
本実施形態では、特定領域を設定し、特定領域において物体認識処理を行う。このようにすれば、効率的に、かつ、正確に物体を認識する処理を行うことができる。また、特定領域以外の領域に別の物体が映りこんでいる場合に、その別の物体を誤って認識する事態を防止することができる。
【0093】
まず、本実施形態では、入力画像の各画素の動きベクトルに基づいて、入力画像において特定領域を設定する。例えば、図6(A)に示すように入力画像F1と、図6(B)に示す入力画像F2(入力画像F1から1/60秒後に取得した入力画像F2)とに基づいて、図6(C)に示すような入力画像F1、F2間の各画素の動きベクトルが得られた場合、入力画像F1、F2間の動きベクトルの方向、大きさに基づいて、特定領域を設定する。言い換えると、入力画像F1、F2間の差分画像の差分画素値に基づいて特定領域を設定する。
【0094】
例えば、「所与の期間(2秒間)において、動きベクトルの大きさ(差分画素値)の平均値が200以上であって、動きベクトルが左又は右方向を向く領域」をルール1とし、図7に示すように、ルール1に基づいて決定される領域を、特定領域A1として設定する。例えば、本実施形態では、ルール1などの規則情報に基づいて決定される領域を包囲する矩形の領域を特定領域A1として設定する。なお、特定領域を設定するルールは記憶部70に記憶されている。
【0095】
なお、本実施形態では、入力画像の各画素の動きベクトルと色情報とに基づいて、入力画像において特定領域を設定するようにしてもよい。例えば、「黄色系統のカラー値を有する画素であって、所与の期間(2秒間)において、動きベクトルの大きさ(差分画素値)の平均値が200以上であって、動きベクトルが左又は右方向を向く領域」をルール1´とし、ルール1´に基づいて、特定領域A1´を設定するようにしてもよい。
【0096】
なお、一度、特定領域A1を設定した場合、特定領域A1の物体を認識する必要があるので、特定領域A1を設定した時点から所与の期間(例えば60秒間)、特定領域A1を固定する。そして、所与の周期(例えば60秒周期)で特定領域A1を更新(変動、再設定)する。
【0097】
そして、本実施形態では、図7に示す特定領域A1において物体認識処理を行う。つまり、設定された特定領域A1において、動き領域S1を設定し、動き領域の形が認識パターンと一致するか否かを判断すればよい。例えば、特定領域A1の各画素において、動きベクトルの大きさ(差分画素値が)所定値以上である画素の集合を動き領域S1とする。
【0098】
そして、本実施形態では、例えば、特定領域A1の動き領域S1の形と、「人」の認識パターンとを比較し「人」であるか否かを判断する。図7の例では、「人」の認識パターンと一致しないと判断され、特定領域A1の動き領域S1の形と「手」の認識パターンとを比較し「手」であるか否かを判断する。図7の例では、「手」の認識パターンと一致すると判断され、特定領域A1において「手」を認識したと判定されることになる。
【0099】
また、本実施形態では、入力画像の一部の特定領域A1にマシンパワーを注ぐことができるので、特定領域A1の画像精度を上げて物体を認識するようにしてもよい。画像精度とは、画像の解像度(画像の総画素数)や、画像の量子化レベル(画素が取り得る範囲、階調)であり、解像度が高いほど、より精細に物体を認識することができる。また、量子化レベルが高いほど、画素値(差分画素値)の取り得る値域が広がり、より精細に動き領域を設定する精度を上げることができる。
【0100】
例えば、図8に示すように、特定領域A1の解像度を上げて、特定領域A1において各画素の動きベクトルを算出し直し、画像精度を上げた各画素の動きベクトルに基づいて、動き領域S1´を設定するようにしてもよい。このようにすれば、例えば、「手」を判断された場合に、「手」のジェスチャー(形状)や、「手」の動きをより詳しく認識することができる。図8の例では、特定領域A1の動き領域S1´の形と、「手」の「グー」、「チョキ」、「パー」の3つの認識パターンそれぞれの一致度を判断し、「パー」の認識パターンに最も一致すると判断される。
【0101】
また、本実施形態では、図9に示すように、特定領域A1において物体認識処理を行う周期を短くするようにしてもよい。例えば、特定領域A1を設定する前において、1/6秒周期で取得した2つの入力画像の差分画像を求めていた場合、特定領域A1を設定したt10時点以後は、1/60秒周期で取得した2つの入力画像の差分画像を求めるようにする。つまり、1/60秒間隔で入力画像上の特定領域A1の差分画像を求めるようにする。このようにすれば、より詳細に物体の動きを認識することができる。
【0102】
以上のように、本実施形態では、特定領域A1にマシンパワーを注ぐことができるので、物体について詳細に物体認識処理を行うことができる。また、本実施形態では、特定領域について画像精度を上げ、さらに認識周期を短くすることによって物体の誤認識を軽減することができる、という効果もある。
【0103】
例えば、図10(A)に示す入力画像F10と、図10(B)に示す入力画像F11との差分画像に基づき、図10(C)に基づく動きベクトルが得られ、かかる場合において、図11に示すように、ルール1に基づいて特定領域B1が設定されたとする。ここで、画像精度を上げない場合や、認識周期を短くしない場合は、特定領域B1の動き領域S2の形が「鳥」ではなく「手」であると判断されるおそれがある。
【0104】
しかし、特定領域B1では、図10(A)、(B)に示すように、実際は鳥が飛んでいるので、「鳥」と判断される方が自然である。そこで本実施形態では、図12に示すように、特定領域B1について画像精度を上げ、また、認識周期を短くし、詳細に正しく物体認識処理を行うようにする。つまり、特定領域B1の解像度を上げて、動きベクトルを算出しなおし、特定領域B1において動き領域S2´を特定する。そして動き領域S2´の形が、「手」の認識パターンを一致せず、「鳥」の認識パターンと一致すると判断され、結果的に、特定領域B1において「鳥」を認識することができる。
【0105】
1−6.特定領域と特定領域以外の領域との関係
本実施形態では、図7の特定領域A1以外の領域において物体認識処理を行うようにしてもよい。特定領域以外の領域において物体認識処理を行う場合には、特定領域以外の領域の画像精度を特定領域の画像精度よりも低くする。このようにすれば、特定領域A1よりも認識精度は劣るが、特定領域A1以外に物体が存在する場合には、その物体を認識することができる。
【0106】
本実施形態では、特定領域A1以外の領域の画像精度を特定領域の画像精度よりも低くするようにしてもよい。また、特定領域以外の領域において物体認識処理を行う周期を、特定領域A1において物体認識処理を行う周期よりも長くする。例えば、図13に示すように、特定領域A1以外の領域においては、1/6秒の周期で物体認識処理を行い、特定領域A1においては、1/60秒の周期で物体認識処理を行う。このようにすれば、マシンパワー(コンピュータの総合的な処理能力)を主に特定領域A1の物体認識処理に注力することができ、特定領域A1の物体認識処理をより正確に行うことができる。
【0107】
1−7.複数の特定領域
本実施形態では、複数の特定領域を設定するようにしてもよい。例えば、「所与の期間(2秒間)において、動きベクトルの大きさ(差分画素値)の平均値が200以上であって、動きベクトルが左又は右方向を向く領域」をルール1とし、「所与の期間(2秒間)において、動きベクトルの大きさ(差分画素値)の平均値が100以上であって、動きベクトルが左又は右方向を向く領域」をルール2とした場合、図7に示すように、ルール1に基づいて決定される領域を、特定領域A1として設定すると共に、図14に示すように、ルール2に基づいて決定される領域を、特定領域A2として設定する。なお、本実施形態では、3つ以上の特定領域を設定してもよい。
【0108】
そして、少なくとも1つの特定領域について物体認識処理を行う。例えば、ルール1、ルール2に基づいて設定された特定領域A1、A2のいずれか一方について物体認識処理を行うようにしてもよいし、特定領域A1、A2の両方について物体認識処理を行うようにしてもよい。例えば、特定領域A2において物体認識処理を行う場合には、特定領域A2の動き領域S3の形と、「人」の認識パターンとを比較し「人」であるか否かを判断する。図14の例では、「人」の認識パターンと一致すると判断される。
【0109】
特に、本実施形態では、複数の特定領域を設定した場合には、各特定領域に優先度を設定する(付与する)。例えば、図15に示すように、各ルールのIDに対応づけて(各領域に対応づけて)、優先度を設定する。本実施形態では、動きベクトルの大きさに従って優先度を決める。例えば、特定領域上の各画素の動きベクトルの大きさ(差分画素値)の平均値を算出し、平均値が高いほど優位になるように優先度を設定するようにしてもよい。
【0110】
そして、本実施形態では、優先度に基づいて、物体認識処理を行う。例えば、優先度の低い特定領域の画像精度を、優先度の高い特定領域の画像精度よりも低くするようにしてもよい。つまり、図16に示すように、特定領域A2について解像度を上げると共に、優先度の低い特定領域A2の解像度を、優先度の高い特定領域A1の解像度よりも低くする。このようにすれば、優先度の高い特定領域A1について、マシンパワーを主に注力させて詳細に物体を認識することができ、優先度の低いものについて処理を簡素にし、効率よく特定領域A1、A2の物体認識処理を行うことができる。
【0111】
なお、図16に示すように、特定領域A2について解像度を上げた場合には、解像度を上げた特定領域A2において動きベクトルを算出し直し、特定領域A2の動き領域S3´の形と、「人」の認識パターンとを比較し「人」であるか否かを判断するようにしてもよい。図16の例では、「人」の認識パターンと一致すると判断される。
【0112】
同様に、例えば、優先度の低い特定領域において物体認識処理を行う周期を、優先度の高い特定領域において物体認識処理を行う周期よりも長くする。つまり、図17に示すように、優先度の低い特定領域A2において物体認識処理を行う周期を、優先度の高い特定領域A1において物体認識処理を行う周期よりも長くする。このようにすれば、優先度の高い特定領域A1についてより詳細に物体を認識することができる。
【0113】
また、本実施形態では、複数の特定領域を設定されている場合には、優先度の低い特定領域において物体認識処理を行わずに、優先度の高い特定領域において物体認識処理を行うようにしてもよい。例えば、優先度の低い特定領域A2において物体認識処理を行わずに、優先度の高い特定領域A1において物体認識処理を行うようにしてもよい。
【0114】
1−8.フローチャート
最後に、本実施形態の処理の流れについて図18を用いて説明する。まず、2つの入力画像の差分画像に基づいて、各画素の動きベクトルを算出する(ステップS10)。そして、動きベクトルに基づいて、入力画像上の特定領域を設定する(ステップS11)。そして、特定領域の画像精度を上げるとともに、特定領域の物体認識処理を行う周期を短くする(ステップS12)。そして、特定領域において物体を認識する処理を行う(ステップS13)。以上で処理が終了する。
【0115】
2.第2の実施形態
次に、本実施形態の第2の実施形態について説明する。なお、第2の実施形態は、第1の実施形態を応用したものである。第2の実施形態では、第1の実施形態と共通する点について説明を省略し、第1の実施形態と相違する点や第2の実施形態で追加した点等について説明する。
【0116】
2−1.第2の物体認識システム
図19は、第2の実施形態における第2の物体認識システム(第1のゲームシステム、第1の画像生成システム)の概略外観図である。本実施形態の第2の物体認識システムは、ゲーム画像を表示させる表示部90と、物体認識処理、ゲーム処理等を行う物体認識装置50(ゲーム機)と、入力部60とを含む。そして、図19に示すように、表示部90(表示画面91)の周囲には、表示部90と関連付けた位置に入力部60が配置されている。例えば、入力部60は、表示部90の下部に配置してもよいし、表示部90の上部に配置してもよい。
【0117】
第2の物体認識システムは、プレーヤPの手や体の動きを認識することができる入力部60(センサの一例)を備えている。この入力部60は、発光部610、深度センサ620、RGBカメラ630、音入力部640(マルチアレイマイクロフォン)とを備え、プレーヤP(物体)と非接触で、実空間におけるプレーヤPの手や体の3次元の位置や、形の情報をとらえることができる。第2の実施形態では、この入力部60を用いた第2の物体認識システムの処理例について説明する。
【0118】
2−2.構成
図20は、第2の物体認識システムの機能ブロック図の一例である。なお、第1の物体認識システムの構成例との共通する点については説明を省略し、第1の物体認識システムの構成例と相違する点について説明する。なお、第2の物体認識システムでは、図20の各部を全て含む必要はなく、その一部を省略した構成としてもよい。
【0119】
第2の物体認識システムは、物体認識装置50と、入力部60と、表示部90、スピーカー92を含む。
【0120】
入力部60は、発光部610、深度センサ620、RGBカメラ(撮像部)630、音入力部640、処理部650、記憶部660によって構成されている。
【0121】
発光部610は、光を物体(プレーヤ、被写体)に照射する処理を行う。例えば、発光部610は、LEDなどの発光素子による赤外線などの光を対象の物体に照射する。
【0122】
深度センサ620は、物体から反射光を受光する受光部を有する。深度センサ620は、発光部610が発光しているときに受光した光量と、発光部610が発光していないときに受光した光量の差をとることによって、発光部610から照射される物体の反射光を取り出す処理を行う。つまり、深度センサ620は、図21(A)に示すように、発光部610から照射される物体の反射光を取り出した反射光画像(入力画像の一例)を、所定単位時間で(例えば、1/60秒単位で)、記憶部660に出力する処理を行う。反射光画像は画素単位で、入力部60から物体までの距離(深度値)を取得することができる。
【0123】
RGBカメラ(撮像部)630は、物体(プレーヤP)から発した光をレンズなどの光学系によって撮像素子の受光平面に結像させ、その像の光による明暗を電荷の量に光電変換し、それを順次読み出して電気信号に変換する。そして、RGB化(カラー化)されたRGB画像(入力画像の一例)を記憶部660に出力する処理を行う。例えば、図21(B)に示すようなRGB画像を生成する。RGBカメラ630は、所定単位時間で(例えば、1/60秒単位で)、記憶部660に出力する処理を行う。
【0124】
なお、深度センサ620とRGBカメラ630とは、共通の受光部から光を受光するようにしてもよい。かかる場合、2つの受光部を有していてもよい。また、深度センサ620用の受光部と、RGBカメラ630用の受光部とをそれぞれ異ならせてもよい。
【0125】
音入力部640は、音声認識処理を行うものであり、例えばマルチアレイマイクロフォンとすることができる。
【0126】
処理部650は、発光部610に発光するタイミングを指示したり、深度センサ620によって出力された反射光画像や、RGBカメラ630で撮像されたRGB画像を、物体認識装置50に送信する処理などを行う。
【0127】
記憶部660は、深度センサ620によって出力された反射光画像や、RGBカメラ630によって出力されたRGB画像を逐次記憶する。
【0128】
次に、本実施形態の物体認識装置50について説明する。本実施形態の物体認識装置50は、記憶部570、処理部500、情報記憶媒体580、通信部596によって構成される。
【0129】
認識パターン記憶部573には、物体を特定するために予め用意されたパターン、テンプレートを格納するための記憶領域であり、物体それぞれに対応づけてパターンが記憶されている。例えば、視覚的特徴や画素値そのものを認識パターンとして認識パターン記憶部573に格納される。
【0130】
なお、認識パターン記憶部573は、データベースとして構築される記憶領域でもよい。例えば、「人」、「手」、「足」、「腕」などの各物体に対応づけて、1または複数の認識パターンを関連づけて記憶するようにしてもよい。
【0131】
特に、第2の物体認識システムの認識パターン記憶部573には、物体を特定するための深度値情報を認識パターンとして認識パターン記憶部573に記憶するようにしてもよい。
【0132】
また、第2の物体認識システムの認識パターン記憶部573は、複数のボーン情報(スケルトン情報、骨格情報)を記憶するようにしてもよい。例えば、人を認識するためのボーン情報や、手のボーン、腕のボーン、足のボーンのように、人物を構成する部位単位でボーン情報を認識パターン記憶部573に記憶するようにしてもよい。なお、ボーン情報は、人体の3次元の関節位置及び3次元の関節の回転角度を仮想的に定義したものである。
【0133】
また、入力画像記憶部574は、物体認識処理、動きベクトル算出処理を行うために所定周期で入力部20が取得した入力画像を格納するための記憶領域である。また、差分画像記憶部575は、動きベクトル算出処理を行うために、異なる時点で撮像された2つの画像の各画素値の差分をとった差分画素値を格納するための記憶領域である。
【0134】
そして、処理部500は、この情報記憶媒体580に格納されるプログラムから読み出されたデータに基づいて本実施形態の種々の処理を行う。即ち、情報記録媒体580には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶される。
【0135】
通信部596は、ネットワーク(インターネット)を介して他のゲーム機と通信することができる。その機能は、各種プロセッサまたは通信用ASIC、ネットワーク・インタフェース・カードなどのハードウェアや、プログラムなどにより実現できる。
【0136】
なお、本実施形態の各部としてコンピュータを機能させるためのプログラムは、サーバが有する、記憶部、情報記憶媒体からネットワークを介して情報記憶媒体580(または、記憶部570)に配信するようにしてもよい。このようなサーバの情報記憶媒体の使用も本発明の範囲に含まれる。
【0137】
処理部500(プロセッサ)は、入力部60から受信した情報や情報記憶媒体580から記憶部570に展開されたプログラム等に基づいて、ゲーム処理、画像生成処理、或いは音制御の処理を行う。
【0138】
特に、第2の物体認識システムの処理部500は、取得部510、算出部511、領域決定部512、物体認識処理部513、ゲーム演算部514、画像生成部520、音制御部530として機能する。
【0139】
取得部510は、入力部50からRGB画像、反射光画像などの入力画像を取得する処理を行う。つまり、取得部510は、深度カメラ620によって、発光部から照射された物体の反射光を受光することによって各画素の深度値を有する反射光画像(赤外線の反射結果)を取得する。
【0140】
算出部511は、異なる時点で取得した2つの入力画像(RGB画像、反射光画像)に基づいて、入力画像の各画素の動きベクトルを算出する。例えば、算出部511は、算出部111と同じように、RGBカメラ630によって撮像された入力画像を取得し、異なる時点で撮像された2つの入力画像に基づいて、入力画像の各画素の動きベクトルを算出するようにしてもよい。
【0141】
領域設定部512は、入力画像の各画素の深度値に基づいて、入力画像において特定領域を設定する。また、領域設定部512は、複数の特定領域を設定するようにしてもよい。複数の特定領域を設定した場合には、各特定領域に優先度を付与(設定)する(特定領域単位で優先度を付与する)。
【0142】
また、領域設定部512は、入力画像の各画素の色情報と深度値とに基づいて、入力画像において特定領域を設定するようにしてもよい。また、領域設定部512は、入力画像の各画素の深度値のうち所定値以上である深度値に基づいて、入力画像において特定領域を設定するようにしてもよい。
【0143】
また、領域設定部512は、入力画像の各画素の動きベクトルと深度値とに基づいて、入力画像において特定領域を設定するようにしてもよい。
【0144】
物体認識処理部513は、物体を認識する物体認識処理を行う。ここで、物体を認識する物体認識処理とは、物体自体を認識する処理、物体の動きを認識する処理、物体のジェスチャー(形、ポーズ)を認識する処理の少なくとも1つを含む。
【0145】
特に、物体認識処理部513は、入力画像の各画素の画素情報(画素の深度値、画素の位置座標、画素の色情報、画素の動きベクトルの少なくとも1つ)に基づいて、認識パターン記憶部573に格納されている「人」の認識パターンを用いて、「人」を認識できるか否かを判断する。
【0146】
具体的には、物体認識処理部513は、入力画像(例えば、反射光画像、RGB画像)の各画素の画素情報に基づいて3次元の人のシルエット(3次元の形状)を切り出す処理を行う。例えば、反射光画像の各画素の深度値(輝度値)、RGB画像のカラー値に基づいて、3次元の人のシルエットを切り出す処理を行う。
【0147】
そして、物体認識処理部513は、ボーン情報に基づいて、前記特定領域における前記物体認識処理を行う。例えば、物体認識処理部513は、認識パターン記憶部573で記憶されている複数のボーン(スケルトン、骨格)と、シルエットとを照合し、最もシルエットに合致するボーンを設定する。物体認識処理部513は、設定されたボーンの動きを演算する処理を行う。つまり、ボーンの動きを、プレーヤPの動作とみなす処理を行なう。本実施形態では、フレーム毎に、ボーンを特定しプレーヤPの動作を取得する処理を行っている。なお、本実施形態では、腕のボーン、足のボーンのように、人物を構成する部位単位で処理を行う場合には、部位単位で、抽出されたシルエットが複数のボーンのうちいずれと合致するかを判定し、部位の動きを、プレーヤの部位の動作とする処理を行う。
【0148】
例えば、物体認識処理部513は、「人」のボーン情報を用意し、反射光画像から所定輝度値(所定深度値)以上の輝度値(深度値)を有する画素群領域の3次元のシルエットが、「人」のボーン情報に合致するか否かを判断する。そして、シルエットが「人」のボーン情報と合致する場合には、「人」を認識したと判定する処理を行う。一方、「人」を認識できない場合には、次の物体(例えば「手」)のボーン情報を用いて、次の物体を認識できるか否かを判断する。そして、物体(「手」)を認識できるまで、入力画像と次のボーン情報とを照合する処理を行う。
【0149】
また、物体認識処理部513は、フレーム毎にシルエットに合致するボーン情報に基づいて、シルエットの動作を認識する処理を行う。例えば、「人」のボーン情報に基づいて、「人」を認識したと判定された場合には、当該ボーン情報に基づいて「人」の動作、ジェスチャーを認識する処理を行う。
【0150】
また、本実施形態の物体認識処理部513は、特定領域において物体認識処理を行う。例えば、物体認識処理部513は、特定領域における物体認識処理の精度を特定領域以外の領域の物体認識処理の精度よりも上げて、特定領域において物体認識処理を行うようにしてもよい。
【0151】
より具体的に説明すると、物体認識処理部513は、特定領域において物体認識処理を行う周期を特定領域以外の領域の物体認識処理の周期よりも短くして、特定領域において物体認識処理を行う。また、物体認識処理部513は、特定領域の画像精度を特定領域以外の領域の画像精度よりも上げて、特定領域において物体認識処理を行う。
【0152】
また、物体認識処理部513は、特定領域以外の領域において物体認識処理を行うと共に、特定領域以外の領域において物体認識処理を行う周期を、特定領域において物体認識処理を行う周期よりも長くする。また、物体認識処理部513は、特定領域以外の領域において物体認識処理を行うと共に、特定領域以外の領域の画像精度を特定領域の画像精度よりも低くする。
【0153】
また、物体認識処理部513は、複数の(2以上の)特定領域を設定されている場合には、少なくとも1つの特定領域について物体認識処理を行う。
【0154】
また、物体認識処理部513は、複数の特定領域を設定されている場合には、各特定領域において物体認識処理を行うと共に、優先度の低い特定領域において物体認識処理を行う周期を、優先度の高い特定領域において物体認識処理を行う周期よりも長くするようにしてもよい。
【0155】
また、物体認識処理部513は、複数の特定領域を設定されている場合には、各特定領域において物体認識処理を行うと共に、優先度の低い特定領域の画像精度を、優先度の高い特定領域の画像精度よりも低くするようにしてもよい。
【0156】
また、物体認識処理部513は、複数の特定領域を設定されている場合には、優先度の低い特定領域において物体認識処理を行わずに、優先度の高い特定領域において物体認識処理を行うようにしてもよい。
【0157】
また、物体認識処理部513は、所定タイミングで前記特定領域における画像の変化を認識する処理を行うようにしてもよい。
【0158】
ゲーム演算部514は、種々のゲーム演算を行う。ここでゲーム演算としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。
【0159】
例えば、ゲーム演算部514は、入力部60からの入力データやプログラムなどに基づいて、ゲーム処理を行う。本実施形態のゲーム演算部514は、例えば、物体認識処理部513の認識結果に基づいてゲーム演算処理を行う。つまり、物体認識処理部513において「人(プレーヤ)」を認識した場合には、物体認識処理部513が「人」の動きやジェスチャーを認識し、その「人」の動き(左右に人が動く動作)やジェスチャー(特定のポーズ)に基づいてゲーム演算処理を行うようにしてもよい。
【0160】
なお、処理部500は、処理部100と同じように、仮想空間にオブジェクトを配置する処理、仮想空間に存在するオブジェクトを移動させる処理などを行うようにしてもよい。
【0161】
また、処理部500は、処理部100と同じように、仮想空間にあるオブジェクトの移動・動作演算を行うようにしてもよい。
【0162】
画像生成部520は、画像生成部120と同じように、処理部500で行われる種々の処理の結果に基づいて描画処理を行い、これにより画像を生成し、表示部90に出力する。
【0163】
音制御部530は、音制御部130と同じように、処理部500で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、スピーカー92に出力する。
【0164】
なお、本実施形態の物体認識システムは、1人のプレーヤのみがプレイできるシングルプレーヤモード、或いは、複数のプレーヤがプレイできるマルチプレーヤモードでゲームプレイできるように制御してもよい。例えば、マルチプレーヤモードで制御する場合には、ネットワークを介して他の端末とデータを送受信してゲーム処理を行うようにしてもよいし、1つの端末が、複数の入力部からの入力情報に基づいて処理を行うようにしてもよい。
【0165】
情報記憶媒体580(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などのハードウェアにより実現できる。
【0166】
なお、物体認識装置50の認識パターン記憶部573、入力画像記憶部574、差分画像記憶部575に記憶されるデータを、入力部60の記憶部660に記憶するようにし、本実施形態の算出部511、領域設定部512、物体認識処理部513の処理を、入力部60の処理部650が行うようにしてもよい。
【0167】
2−3.入力部の説明
第2の物体認識システムの入力部60は、深度センサ620と、RGBカメラ630とを備え、コントローラなどの入力機器を必要とせず、物体(プレーヤ、プレーヤの手など)を画像処理することにより入力を受け付けることができる。これにより、従来にはない様々なゲーム処理を行うことができる。まず、入力部60の深度センサ620、RGBカメラ630について説明する。
【0168】
2−3−1.深度センサ
本実施形態の深度センサ620について、図21を用いて説明する。まず、図21に示すように、入力部60が備える発光部610は、タイミング信号にしたがって時間的に強度変動する光を発光する。発光される光は、光源の前方に位置するプレーヤP(物体の一例)に照射される。
【0169】
そして、深度センサ620は、発光部610が発光した光の反射光を受光する。つまり、深度センサ620は、反射光の空間的な強度分布を抽出した反射像画像を生成する。例えば、深度センサ620は、発光部610が発光しているときに受光した光量と、発光部610が発光していないときに受光した光量の差をとることによって、発光部610からの光の物体による反射光を取り出して反射光画像を得る。この反射光画像の各画素の値は、深度センサ620の入力部60の位置GPから物体までの距離(深度値)に対応する。なお、入力部60の位置GPは、深度センサ620の位置、深度センサ60が備える受光位置と同義である。
【0170】
例えば、図22の例では、プレーヤPの手の部分が入力部60の位置GPに最も近くにあるので、図21(A)に示すようなプレーヤPの手を示す領域が、もっとも受光量多い部分(高輝度部分)となる反射像画像を得ることになる。
【0171】
本実施形態では、反射光画像の各画素について、輝度値(受光量、画素値)が所定値以上である画素を、入力部60の位置GPに近い画素として抽出する。例えば、反射光画像の階調が256階調であれば、所定値(例えば200)以上の画素を、高輝度の部分として抽出する。
【0172】
この深度センサで得られる反射光画像は、物体までの距離(深度値)に関係する。つまり、図23に示すように、入力部60の位置GPから1メートル離れたところでプレーヤPが位置する場合は、位置GPから2メートル離れたところでプレーヤPが位置する場合よりも、反射光画像の手の領域部分が高輝度となる(受光量が多くなる)。また、入力部60の位置GPから2メートル離れたところでプレーヤPが位置する場合は、位置GPから3メートル離れたところでプレーヤPが位置する場合よりも、反射光画像の手の領域部分が高輝度となる(受光量が多くなる)。
【0173】
このような原理に基づき、本実施形態では、反射光画像で高輝度部分として抽出された画素の輝度値に基づいて、実空間におけるプレーヤPの位置を算出する。例えば、反射光画像のうち、輝度値が最も高い画素を特徴点とし、特徴点の輝度値に基づいて位置GPからプレーヤPまでの距離を算出する。なお、特徴点は、予め用意された形状パターンや動きベクトル等に基づいて特定される手の領域の重心画素としてもよい。なお、反射光画像において高輝度部分が広い場合には、高輝度部分が狭い場合よりも例えば物体が入力部の近くに存在すると判定することもできる。
【0174】
また、本実施形態では、反射光画像に基づいて、入力部60を基準とする実空間における物体の位置を特定することができる。例えば、反射光画像の中心に、特徴点がある場合には、物体が入力部60の光源の発射方向上に位置しているものと特定できる。また、特徴点が反射光画像の上部にある場合には、入力部60を基準に物体が上部にあるものと特定できる。また、特徴点が反射光画像の下部にある場合には、入力部60を基準に物体が下部にあるものと特定できる。また、特徴点が反射光画像の左部にある場合には、入力部60を基準に(入力部の正面(光源側)からみて)物体が右部にあるものと特定できる。また、特徴点が反射光画像の左部にある場合には、入力部60を基準に物体が(入力部の正面(光源側)からみて)右部にあるものと特定できる。このように、本実施形態では、反射光画像に基づいて、物体と入力部60との位置関係を特定できる。
【0175】
また、本実施形態では、反射光画像に基づいて、実空間における物体の移動方向を特定することができる。例えば、反射光画像の中心に特徴点があり、当該特徴点の輝度値が高くなる場合、物体が入力部60の光源方向に近づいているものと特定できる。また、特徴点が反射光画像の上部から下部に移動している場合には、入力部60を基準に物体が上部から下部に移動しているものと特定できる。また、特徴点が反射光画像の左部から右部に移動している場合には、入力部60を基準に物体が右部から左部に移動しているものと特定できる。このように、本実施形態では、反射光画像に基づいて、入力部60を基準に物体の移動方向を特定できる。
【0176】
なお、物体の反射光は、入力部60の位置GPから物体の距離が大きくなるにつれ大幅に減少する。例えば、反射光画像の1画素あたりの受光量は、物体までの距離の2乗に反比例して小さくなる。したがって、プレーヤPが入力部60から20メートル程離れて位置する場合には、プレーヤPからの反射光はほぼ無視できるくらいに受光量が小さくなり、プレーヤPを特定できるような高輝度部分を抽出することができない。かかる場合には、入力がないものとして制御してもよい。また、高輝度部分を抽出することができない場合には、スピーカーから警告音を出力するようにしてもよい。
【0177】
2−3−2.RGBカメラの説明
本実施形態は、RGBカメラ(撮像部)630によりRGB画像を入力情報として取得する。RGB画像は、反射光画像に対応しているため、物体の動きベクトル(移動ベクトル)や特定領域の設定処理、物体認識処理の精度を高めることができる。
【0178】
第2の本実施形態のRGBカメラ630は、RGBカメラ21と同様な処理を行うことができる。つまり、第2の実施形態においても、図3に示すように、異なる時点で撮像された2つの入力画像において、同じ画素の対応付けを行い、その動き量(移動量)と動き方向(移動方向)とを示す動きベクトル(移動ベクトル、オプティカルフロー)を求めることができる。第2の実施形態においても、入力画像F1、F2との画素値(輝度値、カラー値)の差分をとった差分画像に基づいて動きベクトルを求めているようにしてもよい。
【0179】
また、本実施形態では、深度センサ620によって、入力部60からの物体までの距離(深度値)を特定でき、反射光画像やRGB画像の2次元平面上において高輝度部分の特徴点の位置座標(X、Y)、特徴点の動きベクトルを抽出できる。したがって、入力部60から物体までの距離(Z)と、反射光画像及びRGB画像の位置座標(X、Y)とに基づいて、実空間における入力部60を基準とする物体の位置Qを特定できる。したがって、本実施形態では、図24に示すように、反射光画像に基づいて算出された、入力部60の位置GPから物体の位置Qまでの距離Lに基づいて、特定領域の設定処理、物体認識処理、ゲーム演算を行うことができる。
【0180】
2−4.物体認識処理
本実施形態では、記憶部に予め格納されている認識パターンを用いて、入力画像(反射光画像、RGB画像)上の物体を認識する物体認識処理を行う。ここで、物体を認識する物体認識処理とは、物体自体を認識する処理、物体の動きを認識する処理、物体のジェスチャー(形、ポーズ)を認識する処理の少なくとも1つを含む。
【0181】
第2の物体認識システムの物体認識処理について詳細に説明すると、例えば、図25(A)に示すように、深度カメラ620によって、発光部から照射された物体の反射光を受光した反射光画像(赤外線の反射結果)を取得する。
【0182】
そして、図25(B)に示すように、反射光画像の各画素の輝度値に基づいて、シルエット(形状)を切り出す処理を行う。つまり、反射光画像の各画素の輝度値のうち所定輝度値(200)以上である画素値の領域をシルエットST1として切り出す処理(抽出する処理)を行う。
【0183】
そして、認識パターン記憶部573に記憶されている複数のボーン情報(スケルトン、骨格)それぞれと、シルエットST1とを照合し、最もシルエットST1に合致するボーン情報を設定する。例えば、図25(C)に示すように、「人」に関するボーン情報BO1、BO2、BO3が認識パターン記憶部573に記憶されており、シルエットST1が、ボーン情報BO1に最も合致すると判断されると、「人」を認識したと判定する処理を行う。
【0184】
一方、「人」を認識できない場合には、次の物体(例えば「手」)のボーン情報を用いて、次の物体(「手」)を認識できるか否かを判断する。そして、物体を認識できるまで、入力画像と次のボーン情報とを照合する処理を行う。図25(D)の例では、シルエットST1が、ボーン情報BO1、BO2、BO3のうち、「人」のボーン情報BO1と最も合致すると判断され、「人」を認識したと判定する。
【0185】
また、本実施形態では、フレーム毎にシルエットに合致するボーン情報に基づいて、物体の動作を認識する処理、物体のジェスチャーを認識する処理を行う。例えば、s0時点において、「人」のボーン情報BO1に基づいて、「人」を認識したと判定され、s0時点から10フレーム後のs10時点において、「人」のボーン情報BO2に基づいて、「人」を認識したと判定され、s1時点から20フレーム後のs20時点において「人」のボーン情報BO3に基づいて、「人」を認識したと判定された場合には、各ボーン情報BO1、BO2、BO3をキーフレームとし、キーフレーム間の動きを補間することによって、s1時点からs20時点までの「人」の動きを認識することができる。また、例えば、s20時点と、s20時点から10フレーム後のs30時点とにおいて、「人」のボーン情報BO3に基づいて、「人」を認識した場合には、s20時点からs30時点までの間において、物体(人)が、ボーン情報BO3に基づくジェスチャーを行っていると認識する。
【0186】
また、本実施形態では、3次元のボーン情報と、3次元に抽出したシルエットとが一致するかを判断することによって、物体を認識しているので、3次元の物体、物体の動きやジェスチャーを認識することができる。
【0187】
なお、本実施形態では、人物を構成する部位単位(手、腕、顔、足)で物体認識処理を行うこともできる。かかる場合は、部位単位で予め複数のボーンを認識パターン記憶部573に格納し、抽出されたシルエットが複数のボーンのうちいずれと合致するかを判定してもよい。
【0188】
また、第2の物体認識システムは、第1の物体認識システムのように、差分画像に基づいて動き領域を設定し、「人」の形状の認識パターンを用いて、動き領域のシルエットが認識パターンで示される「人」の形状と適合(一致)するか否かを判断するようにしてもよい。
【0189】
2−5.特定領域において物体を認識する処理
本実施形態では、特定領域を設定し、特定領域において物体認識処理を行う。このようにすれば、効率的に、かつ、正確に物体を認識する処理を行うことができる。また、特定領域以外の領域に別の物体が映りこんでいる場合に、その別の物体を誤って認識する事態を防止することができる。
【0190】
つまり、本実施形態では、図21(A)に示す反射光画像(入力画像)の各画素の深度値に基づいて、入力画像において特定領域を設定する。例えば、図21(A)に示すような反射光画像が得られた場合、深度値に基づいて、高輝度部分を特定領域として設定する。
【0191】
例えば、「所与の期間(2秒間)において、反射光画像の各画素の輝度値の平均値がしきい値以上(例えば220以上)である領域」をルール10とし、図26に示すように、ルール10に基づいて決定される領域を、特定領域C1として設定する。なお、特定領域を設定するルールは記憶部570に記憶されている。
【0192】
なお、本実施形態では、入力画像の各画素の深度値と色情報とに基づいて、入力画像において特定領域を設定するようにしてもよい。例えば、「黄色系統のカラー値を有する画素であって、所与の期間(2秒間)において、反射光画像の輝度値の平均値がしきい値以上(例えば220以上)である領域」をルール10´とし、ルール10´に基づいて、特定領域C1´を設定するようにしてもよい。
【0193】
なお、一度、特定領域C1を設定した場合、特定領域C1の物体を認識する必要があるので、特定領域C1を設定した時点から所与の期間(例えば60秒間)、特定領域C1を固定する。そして、所与の周期(例えば60秒周期)で特定領域C1を更新(変動、再設定)する。
【0194】
そして、本実施形態では、図26に示す特定領域C1において物体認識処理を行う。つまり、設定された特定領域C1において、反射光画像の画素の輝度値がしきい値以上(例えば、220以上)である画素の領域のシルエットST2を切り出し、いずれのボーン情報と一致するか否かを判断すればよい。なお、特定領域においてシルエットを切り出す際のしきい値は、特定領域を設定するルールのしきい値と同じにしてもよい。
【0195】
例えば、特定領域C1のシルエットST2と、「人」のボーン情報とを比較し、シルエットST2と「人」のボーン情報とが一致するか否かを判断する。図26の例では、シルエットST2が、「人」のボーン情報と一致しないと判断される。そして、特定領域C1のシルエットST2と、次のボーン情報である例えば「手」のボーン情報とを比較し、シルエットST2と「手」のボーン情報とが一致するか否かを判断する。図26の例では、シルエットST2が「手」のボーン情報と一致すると判断され、特定領域C1において「手」を認識したと判定されることになる。
【0196】
なお、本実施形態では、入力画像の一部の特定領域C1にマシンパワーを注ぐことができるので、特定領域C1の画像精度を上げて物体を認識するようにしてもよい。画像精度とは、画像の解像度(画像の総画素数)や、画像の量子化レベル(画素が取り得る範囲、階調)、ボーン情報の関節数であり、解像度が高いほど、より精細に物体を認識することができる。また、量子化レベルが高いほど、画素値(差分画素値)の取り得る値域が広がり、より詳細にシルエットを切り出すことができる。
【0197】
例えば、図27に示すように、特定領域C1の解像度を上げて、特定領域C1において各画素の輝度値(深度値)を算出し直し、特定領域C1の各画素の輝度値に基づいて、シルエットST2´を切り出す。例えば、輝度値が220以上の画素の領域をシルエットST2´として切り出す。このようにすれば、例えば、「手」と判断された場合に、「手」のジェスチャー(形状)や、「手」の動きをより詳しく認識することができる。
【0198】
また、特定領域C1のボーン情報の関節数を上げて、より詳細に物体を認識するようにしてもよい。より具体的に説明すると、図27で抽出したシルエットST2´と関節数を多くしたボーン情報とを比較して、物体を認識するようにしてもよい。例えば、図28(B)に示すように、シルエットST2´が「手」のボーン情報BOH1と一致すると判断されると、特定領域C1において「手」を認識したと判定される。
【0199】
なお、本実施形態では、物体に対応づけて、関節数が異なる複数のボーン情報群を予め用意する。例えば、低、中、高のレベルを設け、レベルが高くになるにつれて関節数が多くなるようにボーン情報群を用意する。例えば、「人」の場合には、関節数が13個のボーン情報群を低レベルとし、関節数が28個のボーン情報群を中レベルとし、関節数が56個のボーン情報群を高レベルとする。また、「手」の場合には、関節数が1個のボーン情報群を低レベルとし、関節数が5個のボーン情報群を中レベルとし、関節数が15個のボーン情報群を高レベルとしている。
【0200】
そして、本実施形態では、特定領域において物体認識処理を行う場合には、少なくとも中レベル以上のボーン情報群を用いて物体認識処理を行うようにする。例えば、特定領域C1において物体認識処理を行う場合には、特定領域C1のシルエットと、中レベルの「人」のボーン情報群の各ボーン情報とを比較し、「人」であるか否かを判断する。
【0201】
図27の例で示す特定領域C1のシルエットST2´は、「人」のボーン情報と一致しないと判断され、次に、特定領域C1のシルエットST2´と高レベルの「手」のボーン情報群の各ボーン情報とを比較し、特定領域C1のシルエットST2´と、ボーン情報BOH1とが一致すると判断され、特定領域C1にある物体は「手」であることを認識する。
【0202】
なお、本実施形態では、特定領域C1において物体自体を認識した場合には、特定領域C1において物体自体を認識した関節数レベルのボーン情報群に基づいて、特定領域C1の物体のジェスチャーや動きを認識する処理を行うようにしてもよい。例えば、高レベルの「手」のボーン情報に基づいて特定領域C1において、「手」自体を認識した場合には、高レベルの「手」のボーン情報群に基づいて、特定領域C1の「手」のジェスチャーや動きを認識する処理を行うようにしてもよい。
【0203】
また、本実施形態では、図9に示すように、特定領域C1において物体認識処理を行う周期を短くするようにしてもよい。例えば、特定領域C1を設定する前において、反射光画像を1/6秒周期で取得していた場合、特定領域C1を設定したt10以後は、1/60秒周期で取得するようにしてもよい。このようにすれば、より詳細に物体の動きを認識することができる。
【0204】
以上のように、本実施形態では、特定領域C1にマシンパワーを注ぐことができるので、物体について詳細に物体認識処理を行うことができる。また、本実施形態では、特定領域について画像精度を上げ、さらに認識周期を短くすることによって物体の誤認識を軽減することができる、という効果もある。
【0205】
2−6.特定領域と特定領域以外の領域との関係
本実施形態では、図26の特定領域C1以外の領域において物体認識処理を行うようにしてもよい。特定領域以外の領域において物体認識処理を行う場合には、特定領域以外の領域の画像精度を特定領域の画像精度よりも低くする。このようにすれば、特定領域C1よりも認識精度は劣るが、特定領域C1以外に物体が存在する場合において物体を認識することができる。
【0206】
本実施形態では、特定領域C1以外の領域の画像精度を特定領域の画像精度よりも低くするようにしてもよい。また、特定領域以外の領域において物体認識処理を行う周期を、特定領域において物体認識処理を行う周期よりも長くするようにしてもよい。例えば、図13に示すように、特定領域C1以外の領域においては、1/6秒の周期で物体認識処理を行い、特定領域C1においては、1/60秒の周期で物体認識処理を行う。このようにすれば、マシンパワー(コンピュータの総合的な処理能力)を主に特定領域C1の物体認識処理に注力することができ、特定領域C1の物体認識処理をより正確に行うことができる。
【0207】
2−7.複数の特定領域
本実施形態では、複数の特定領域を設定するようにしてもよい。例えば、「所与の期間(2秒間)において、反射光画像の輝度値の平均値がしきい値以上(例えば220以上)である領域」をルール10とし、「所与の期間(2秒間)において、反射光画像の輝度値の平均値がしきい値以上(例えば200以上)である領域」をルール20とした場合、図26に示すように、ルール10に基づいて決定される領域を、特定領域C1として設定すると共に、図29に示すように、ルール20に基づいて決定される領域を、特定領域C2として設定する。なお、本実施形態では、3つ以上の特定領域を設定してもよい。つまり、本実施形態では、反射光画像の輝度値は奥行き(物体との距離)に関係するので、物体の距離関係に応じた特定領域の設定を行う。
【0208】
そして、少なくとも1つの特定領域について物体認識処理を行う。例えば、ルール10、ルール20に基づいて設定された特定領域C1、C2のいずれか一方について物体認識処理を行うようにしてもよいし、特定領域C1、C2の両方について物体認識処理を行うようにしてもよい。
【0209】
例えば、図29に示すように、特定領域C2について物体認識処理を行う場合には、特定領域C2において輝度値が200以上の画素の領域をシルエットST3として切り出す。そして、シルエットST3とボーン情報とを対比して物体を特定する。図31に示すように、例えば、シルエットST3と「人」のボーンとが一致する場合には、特定領域C2において「人」を認識したと判定する。
【0210】
また、本実施形態では、第1の物体認識システム同じように、各特定領域に優先度を設定する。本実施形態では、深度値に基づいて優先度を決める。例えば、特定領域上の各画素の深度値の平均値を算出し、平均値が高いほど優位になるように優先度を設定するようにしてもよい。このようにすれば、入力部60に近い物体ほど優先的に物体認識処理を行うことができる。
【0211】
そして、本実施形態では、優先度に基づいて、物体認識処理を行う。例えば、優先度の低い特定領域の画像精度を、優先度の高い特定領域の画像精度よりも低くするようにしてもよい。
【0212】
例えば、特定領域C1の優先度が1であり、特定領域C2の優先度が2であるとすると、図30に示すように、特定領域C2について解像度を上げると共に、優先度の低い特定領域C2の解像度を、優先度の高い特定領域C1において物体認識処理を行う解像度よりも低くする。
【0213】
また、優先度の高い特定領域C1については、図28(B)に示すように、関節数を低レベルから高レベルに上げ、高レベルのボーン情報群に基づいて物体認識処理を行い、優先度が特定領域C1よりも低い特定領域C2については、図31に示すように、関節数を低レベルから中レベルに上げて中レベルのボーン情報群に基づいて物体認識処理を行う。
【0214】
例えば、図29に示すように、特定領域C2について物体認識処理を行う場合には、特定領域C2の解像度を上げて、特定領域C2において各画素の輝度値(深度値)を算出し直し、例えば、輝度値が200以上の画素の領域をシルエットST3´として切り出す。そして、シルエットST3´とボーン情報とを対比して物体を特定する。図31に示すように、例えば、シルエットST3´と「人」のボーンBO5とが一致する場合には、特定領域C2において「人」を認識することができる。
【0215】
このようにすれば、優先度の高い特定領域C1についてより、マシンパワーを注いで詳細に物体を認識することができ、優先度の低いものについて処理を簡素にし、効率よく特定領域C1、C2の物体認識処理を行うことができる。
【0216】
同様に、例えば、優先度の低い特定領域において物体認識処理を行う周期を、優先度の高い特定領域において物体認識処理を行う周期よりも長くする。つまり、図17に示すように、優先度の低い特定領域C2において物体認識処理を行う周期を、優先度の高い特定領域C1において物体認識処理を行う周期よりも長くする。このようにすれば、優先度の高い特定領域C1についてより詳細に物体を認識することができる。
【0217】
また、本実施形態では、複数の特定領域を設定している場合には、優先度の低い特定領域において物体認識処理を行わずに、優先度の高い特定領域において物体認識処理を行うようにしてもよい。つまり、優先度の低い特定領域C2において物体認識処理を行わずに、優先度の高い特定領域C1において物体認識処理を行うようにしてもよい。
【0218】
2−8.フローチャート
最後に、本実施形態の処理の流れについて図32を用いて説明する。まず、入力画像の各画素の深度値に基づいて、入力画像上の特定領域を設定する(ステップS20)。そして、特定領域の画像精度を上げると共に、特定領域の物体認識処理を行う周期を短くする(ステップS21)。そして、特定領域において物体を認識する処理を行う(ステップS22)。以上で処理が終了する。
【0219】
3.ゲーム演算処理例
本実施形態では、以上に示す物体認識処理を行うことによって、種々のゲームを行うことができる。
【0220】
3−1.野球ゲームの例
3−1−1.第1の物体認識システムで野球ゲームのゲーム演算を行う例
本実施形態において、第1の物体認識システムで野球ゲームのゲーム演算を行う例について説明する。まず、本実施形態では、オブジェクト空間に、プレーヤキャラクタを配置する。そして、プレーヤの動きやジェスチャーを認識し、認識したプレーヤの動きやジェスチャーに基づいて、プレーヤキャラクタがピッチャーとしてボールを投げる動作処理を行う。
【0221】
例えば、オブジェクト空間内においてプレーヤキャラクタがマウンド(所定区域)に立ったタイミングで、入力画像においてルール2(所与の期間(2秒間)において、動きベクトルの大きさ(差分画素値)の平均値が100以上であって、動きベクトルが左又は右方向を向く領域)に基づいて決定される特定領域A2において、動きベクトルによって示される動き領域S3を抽出する。そして動き領域S3の形が「人」のパターン(「人」の形状、「人」の色情報)と一致するか否かを判断する。なお、人の認識処理を行う場合には、特定領域A2において、画像精度を上げた各画素の動きベクトルに基づいて、動き領域S3´を設定し、動き領域S3´の形と、「手」の認識パターンの一致度を判断する。
【0222】
本実施形態では、特定領域A2において「人」を認識した場合に、次に、入力画像に基づいて「手」を認識できるか否かを判断する。例えば、入力画像においてルール1(所与の期間(2秒間)において、動きベクトルの大きさ(差分画素値)の平均値が200以上であって、動きベクトルが左又は右方向を向く領域)に基づいて決定される特定領域A1の動き領域S1の形が、「手」のパターン(「手」の形状、「手」の色情報)と一致するか否かを判断する。例えば、手の認識処理を行う場合には、特定領域A1において、画像精度を上げた各画素の動きベクトルに基づいて、動き領域S1´を設定し、動き領域S1´の形と、「手」の認識パターンの一致度を判断する。
【0223】
そして、特定領域A1において、「手」を認識すると、次に、「手」のジェスチャーを認識する。本実施形態では、認識された「手」のジェスチャーに基づいて、プレーヤキャラクタがボールを投げる投球フォームを決定する。例えば、特定領域A1の動き領域S1´の形と、「手」の「グー」、「チョキ」、「パー」の3つの認識パターンそれぞれの一致度を判断する。そして、動き領域S1´の形が「グー」の認識パターンと一致している場合には、プレーヤキャラクタの投球フォームを「ストレート」に決定し、動き領域S1´の形が「チョキ」の認識パターンと一致している場合には、プレーヤキャラクタの投球フォームを「フォーク」に決定し、動き領域S1´の形が「パー」の認識パターンと一致している場合には、プレーヤキャラクタの投球フォームを「スライダー」に決定する。
【0224】
そして、特定領域A1(或いは、動き領域S1´)の各画素の動きベクトルの方向に基づいて「手」の動きを認識し、「手」の動きに基づいてオブジェクト空間のプレーヤキャラクタの動作演算を行う。例えば、「手」を認識した特定領域A1において、動きベクトルの方向が画面下方向であって、その動きベクトルの大きさが所定値以上(例えば、差分画素値が250以上)であることを検出した場合に、オブジェクト空間に存在するプレーヤキャラクタが、決定された投球フォームでボールを投げる動作を行う。
【0225】
以上のように、第1の物体認識システムで野球ゲームのゲーム演算を行う場合には、全画面ではなく特定領域において、「人」や、「手」の物体認識、ジェスチャー、動きを認識する処理を行うので、無駄な処理を省略することができ、効率よく処理を行うことができる。
【0226】
3−1−2.第2の物体認識システムで野球ゲームのゲーム演算を行う例
次に、本実施形態の第2の物体認識システムで野球ゲームのゲーム演算を行う例について説明する。まず、本実施形態では、オブジェクト空間に、プレーヤキャラクタを配置し、プレーヤの動きやジェスチャーを認識し、認識したプレーヤの動きやジェスチャーに基づいて、プレーヤキャラクタがピッチャーとしてボールを投げる動作処理を行う。
【0227】
例えば、オブジェクト空間内においてプレーヤキャラクタがマウンドに立ったタイミングで、入力画像においてルール20(所与の期間(2秒間)において、反射光画像の輝度値の平均値がしきい値以上(例えば200以上)である領域)に基づいて決定されるシルエットを特定領域C2として設定し、特定領域C2のシルエットST3が「人」のボーン情報と一致するか否かを判断する。例えば、「人」を認識する場合には、特定領域C2の画像精度を上げて各画素情報に基づいて、シルエットST3´を設定し、シルエットST3´の形と「人」のボーン情報の一致度を判断する。
【0228】
そして、特定領域C2において「人」を認識した場合には、次に、入力画像に基づいて「手」を認識可能か否かを判断する。例えば、入力画像においてルール10(所与の期間(2秒間)において、反射光画像の輝度値の平均値がしきい値以上(例えば220以上)である領域)に基づいて決定される領域を特定領域C1として設定し、特定領域C1のシルエットST2の形が「手」のボーン情報と一致するか否かを判断する。例えば、特定領域C1の画像精度を上げて各画素情報に基づいて、シルエットST2´を設定し、シルエットST2´の形と、「手」のボーン情報の一致度を判断する。
【0229】
そして、特定領域C1において、「手」を認識すると、次に、「手」のジェスチャーを認識する。例えば、本実施形態では、認識されたジェスチャーに基づいて、プレーヤキャラクタがボールを投げる投球フォームを決定する。例えば、特定領域C1のシルエットST2´の形と、「手」の「グー」、「チョキ」、「パー」の3つのボーン情報それぞれの一致度を判断する。そして、シルエットST2´の形が「グー」のボーン情報と一致する場合には、プレーヤキャラクタの投球フォームを「ストレート」に決定し、シルエットST2´の形が「チョキ」のボーン情報と一致する場合には、プレーヤキャラクタの投球フォームを「フォーク」に決定し、シルエットST2´の形が「パー」のボーン情報と一致する場合には、プレーヤキャラクタの投球フォームを「スライダー」に決定する。
【0230】
そして、本実施形態では、シルエットST3´に一致するボーン情報に基づいて、「人」の動きを認識する。例えば、本実施形態では、所定周期で更新するシルエットST3´に合致する「人」のボーン情報をキーフレームとし、キーフレーム間の動きを補間して、「人」の動作を認識し、認識した動作に基づいて、オブジェクト空間に存在するプレーヤキャラクタの動作処理(モーション処理)を行う。例えば、「人」を認識した特定領域C2において、「人」のボールを投げる動きをしていることを認識した場合に、決定された投球フォームに基づいて、オブジェクト空間に存在するプレーヤキャラクタがボールを投げる動作を行う。
【0231】
以上のように、第2の物体認識システムで野球ゲームのゲーム演算を行う場合には、全画面ではなく特定領域において、「人」や、「手」の物体認識、ジェスチャー、動きを認識する処理を行うので、無駄な処理を省略することができ、効率よく処理を行うことができる。
【0232】
3−2.対戦ゲームの例
3−2−1.第1の物体認識システムで対戦ゲームのゲーム演算を行う例
第1の物体認識システムで対戦ゲームのゲーム演算を行う例について説明する。まず、本実施形態では、オブジェクト空間に、プレーヤキャラクタを配置する。そして、プレーヤの動きやジェスチャーを認識し、認識したプレーヤの動きやジェスチャーに基づいて、プレーヤキャラクタが敵キャラクタに攻撃技、防御技などを決定する。
【0233】
例えば、オブジェクト空間内においてプレーヤキャラクタと敵キャラクタとの対戦ゲームが開始されると、入力画像においてルール2に基づいて決定される特定領域A2において、動きベクトルによって示される動き領域S3の形が認識パターン記憶部173に記憶されている「人」のパターン(「人」の形状、「人」の色情報)と一致するか否かを判断する。例えば、特定領域A2において画像精度を上げた各画素の動きベクトルに基づいて、動き領域S3´を設定し、動き領域S3´の形と、「人」の認識パターンの一致度を判断する。
【0234】
そして、特定領域A2において「人」を認識した場合には、次に、入力画像に基づいて「手」を認識できるか否かを判断する。例えば、入力画像においてルール1に基づいて特定領域A1を設定し、特定領域A1の動き領域S1の形が「手」のパターン(「手」の形状、「手」の色情報)と一致するか否かを判断する。例えば、特定領域A1において画像精度を上げた各画素の動きベクトルに基づいて、動き領域S1´を設定し、動き領域S1´の形と、「手」の認識パターンの一致度を判断する。
【0235】
そして、特定領域A1において、「手」を認識すると、次に、「手」のジェスチャーを認識する。例えば、本実施形態では、認識されたジェスチャーに基づいて、プレーヤキャラクタの技を決定する。例えば、特定領域A1の動き領域S1´の形と、「手」の「グー」、「チョキ」、「パー」の3つの認識パターンそれぞれの一致度を判断する。例えば、動き領域S1´の形が「グー」の認識パターンと一致する場合にはプレーヤキャラクタの技を「パンチ」に決定し、動き領域S1´の形が「チョキ」の認識パターンと一致する場合にはプレーヤキャラクタの技を「タックル」に決定し、「パー」の認識パターンと一致する場合にはプレーヤキャラクタの技を「投げ技」に決定する。
【0236】
そして、特定領域A1(或いは、動き領域S1´)の各画素の動きベクトルの方向に基づいて「手」の動きを認識する。例えば、「手」を認識した特定領域A1において、動きベクトルの方向が画面下方向であって、その動きベクトルの大きさが所定値以上(例えば、差分画素値が250以上)であることを検出した場合に、決定された「技」に基づいて、オブジェクト空間に存在するプレーヤキャラクタが敵キャラクタに攻撃を行う動作を行う。
【0237】
なお、本実施形態では、認識したプレーヤの人や手の動きに基づいて、プレーヤキャラクタを動作させる処理を行うようにしてもよい(モーション演算を行うようにしてもよい)。このようにすれば、例えば、プレーヤが行うパンチの動作をプレーヤキャラクタに反映させることができる。例えば、特定領域A1(或いは、動き領域S1´)の各画素の動きベクトルの方向に基づいて「手」の動きを認識した場合に、その「手」の動きに基づいて、オブジェクト空間に存在するプレーヤキャラクタの手(腕)の動作処理を行う。例えば、「手」を認識した特定領域A1において、動きベクトルの方向が画面下方向であって、その動きベクトルの大きさが所定値以上であることを検出した場合に、プレーヤの「手」が上から下へ動いたものと判断し、プレーヤキャラクタの手(腕)を上から下に振り下ろすモーション処理を行う。
【0238】
以上のように、第1の物体認識システムで対戦ゲームのゲーム演算を行う場合には、全画面ではなく特定領域において、「人」や、「手」の物体認識、ジェスチャー、動きを認識する処理を行うので、無駄な処理を省略することができ、効率よく処理を行うことができる。
【0239】
3−2−2.第2の物体認識システムで対戦ゲームのゲーム演算を行う例
次に、本実施形態の第2の物体認識システムで対戦ゲームのゲーム演算を行う例について説明する。まず、本実施形態では、プレーヤの動きやジェスチャーを認識し、認識したプレーヤの動きやジェスチャーに基づいて、プレーヤキャラクタが敵キャラクタに攻撃技、防御技などを決定する。
【0240】
例えば、オブジェクト空間内においてプレーヤキャラクタと敵キャラクタとの対戦ゲームが開始されると、入力画像においてルール20に基づいて決定される特定領域C2において切り出されたシルエットST3が「人」のボーン情報と一致するか否かを判断する。例えば、「人」を認識する場合には、特定領域C2の画像精度を上げて各画素情報に基づいて、シルエットST3´を設定し、シルエットST3´の形と「人」のボーン情報の一致度を判断する。
【0241】
そして、シルエットST3が「人」のボーン情報と一致し、「人」であることを認識した場合には、次に、入力画像に基づいて「手」を認識できるか否かを判断する。例えば、入力画像においてルール10に基づいて特定領域C1を設定し、特定領域C1のシルエットST2の形が「手」のボーン情報と一致するか否かを判断する。例えば、特定領域C1の画像精度を上げて各画素情報に基づいて、シルエットST2´を設定し、シルエットST2´の形と、「手」のボーン情報の一致度を判断する。
【0242】
そして、特定領域C1において、「手」を認識すると、次に、「手」のジェスチャーを認識する。例えば、本実施形態では、認識されたジェスチャーに基づいて、プレーヤキャラクタの技を決定する。例えば、シルエットST2´が「グー」のボーン情報と一致する場合にはプレーヤキャラクタの技を「パンチ」に決定し、シルエットST2´が「チョキ」のボーン情報と一致する場合にはプレーヤキャラクタの技を「タックル」に決定し、シルエットST2´が「パー」のボーン情報と一致する場合にはプレーヤキャラクタの技を「投げ技」に決定する。
【0243】
そして、特定領域C1(或いは、シルエットST2´)のボーン情報に基づいて「手」の動きを認識する。例えば、「手」を認識した特定領域C1において、「手」のボーンが、深度センサに対して前に突き出す動作(奥から手前へ手を前に出す動作)をしていることを検出した場合に、オブジェクト空間に存在するプレーヤキャラクタが、決定された「技」に基づいて、オブジェクト空間に存在するプレーヤキャラクタが敵キャラクタに攻撃を行う。
【0244】
なお、本実施形態では、プレーヤの動きやジェスチャーを認識し、プレーヤの動きやジェスチャーに基づいて、プレーヤキャラクタを動作させる処理を行うようにしてもよい(モーション演算を行う)。
【0245】
例えば、特定領域C2(或いは、シルエットST3´)のボーン情報に基づいて「人」の動きを認識した場合に、その「人」の動きに基づいて、オブジェクト空間に存在するプレーヤキャラクタの動作処理を行う。例えば、本実施形態では、所定周期で更新するシルエットST3´に合致する「人」のボーン情報をキーフレームとし、キーフレーム間の動きを補間して、「人」の動作を認識し、認識した動作に基づいて、オブジェクト空間に存在するプレーヤキャラクタの動作処理(モーション処理)を行う。このようにすれば、例えば、プレーヤが行うパンチの動作をプレーヤキャラクタに反映させることができる。
【0246】
以上のように、第2の物体認識システムで対戦ゲームのゲーム演算を行う場合には、全画面ではなく特定領域において、「人」や、「手」の物体認識、ジェスチャー、動きを認識する処理を行うので、無駄な処理を省略することができ、効率よく処理を行うことができる。
【0247】
3−3.その他のゲーム
本実施形態では、アクションゲーム、レーシングゲーム、シューティングゲーム、スポーツゲーム、競争ゲーム、ロールプレイングゲーム、シミュレーションゲーム、音楽演奏ゲーム、ダンスゲームなど種々のゲームに適用できる。
【0248】
例えば、各ゲームにおいて適用する場合には、ゲーム進行に応じた所定のタイミングで、特定領域において物体認識処理を行うようにしてもよい。例えば、オブジェクト空間においてプレーヤの操作対象のプレーヤオブジェクトが敵オブジェクトと遭遇したタイミング(プレーヤオブジェクトの位置と敵オブジェクトの位置とが所定位置関係になったタイミング)で、特定領域において物体認識処理を行うようにしてもよい。
【0249】
また、レーシングゲーム、シューティングゲーム等においては、プレーヤがハンドルや操縦桿等を操作しているような動きを認識するようにしてもよい。例えば、レーシングゲーム等で手(或いは腕などでもよい)を認識するための特定領域を設定し、特定領域において手を認識できた場合には、その特定領域において、手の動き、手のジェスチャーを認識する処理を行う。
【0250】
また、音楽ゲームやダンスゲームでは、プレーヤの動作を認識し、プレーヤの動作が予め決められた動作に一致しているか否かを判断してもよい。例えば、人を認識するための特定領域を設定し、特定領域において人を認識できた場合には、その特定領域において、人の動き、人のジェスチャーを認識する処理を行う。
【0251】
また、本実施形態では、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレーター、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯電話などの種々のシステム(端末)に適用できる。
【0252】
4.応用例
本実施形態では、第1の物体認識システムの処理部100の処理を、第2の物体認識システムの処理部500に応用してもよいし、第2の物体認識システムの処理部500の処理を、第1の物体認識システムの処理部100に応用してもよい。例えば、第1の物体認識システムにおいて、ボーン情報を用いて物体認識処理を行うようにしてもよい。具体的には、第1の物体認識システムの認識パターン記憶部173に「人」に関するボーン情報を記憶させる。そして、認識パターン記憶部173で記憶されている複数のボーン(スケルトン、骨格)と入力画像の各画素の画素情報に基づいて設定された動き領域(2次元のシルエット)とを照合し、最も動き領域に合致するボーンを設定する。
【0253】
そして、本実施形態では、設定されたボーンの動きを演算する処理を行う。つまり、ボーンの動きを、プレーヤPの動作とみなす処理を行なう。本実施形態では、所定間隔毎(例えば、フレーム毎)に、ボーンを特定しプレーヤPの動作を取得する処理を行っている。
【0254】
なお、本実施形態では、人物を構成する部位単位(手、腕、顔、足)で物体認識処理を行うこともできる。かかる場合は、部位単位で予め複数のボーンを認識パターン記憶部173に格納し、抽出された動き領域が複数のボーンのうちいずれと合致するかを判定してもよい。
【0255】
5.物体の動きを認識する処理についての説明
本実施形態では、所定タイミングで画像の変化を認識する処理を行うようにしてもよい。つまり、本実施形態では、2つの異なる時点で取得した入力画像に基づいて、物体の動きを認識する処理を行うようにしてもよい。例えば、単純に2つの入力画像間の差分をとって物体の動き(物体の移動)を認識してもよい。このようにすれば、簡易な処理で物体の動きや移動等を認識することができる。
【0256】
より具体的に説明すると、図33(A)(B)に示すように、タイミングT20で取得した入力画像F20と、タイミングT20時点から所定期間経過した所定タイミングでT21時点(例えば、T20時点から1秒後のT21時点)において取得した入力画像F21との差分をとって動きを認識してもよい。つまり、入力画像F20の各画素値の合計値と、入力画像F21の各画素値の合計値の差分値を算出し、差分値が動き認識のためのしきい値以上(所定値以上)であるか否かを判断し、差分値が動き認識のしきい値以上である場合に、動きがあったものと認識する。
【0257】
なお、入力画像はRGB画像でもよいし、反射光画像でもよい。例えば、T20時点のRGB画像の各画素のカラー値の合計値と、T21時点のRGB画像の各画素のカラー値の合計値の差分値を算出し、差分値がしきい値以上であるか否かを判断する。そして、差分値がしきい値以上である場合に、動きがあったものと認識する。
【0258】
また、T20時点の反射光画像の各画素の深度値の合計値と、T21時点の反射光画像の各画素の深度値の合計値の差分値を算出し、差分値がしきい値以上であるか否かを判断する。そして、差分値がしきい値以上である場合に、動きがあったものと認識する。特に、反射光画像を用いれば、物体が奥行き方向へ動いたことを認識することができる。
【0259】
また、本実施形態では入力画像において特定領域を設定するので、所定タイミングで特定領域における画像の変化を認識する処理を行うようにしてもよい。例えば、図33(A)(B)に示すように、T20時点で取得した入力画像F20の特定領域A20の各画素値の合計値と、T21時点で取得した入力画像F21の特定領域A21の各画素値の合計値の差分値を算出し、差分値がしきい値以上である場合に、動きがあったものと認識するようにしてもよい。このようにすれば、効率的に物体の動きを認識することができ、また、特定領域にマシンパワーを注ぐことができ、より正確に物体の動きを認識することができるからである。
【0260】
例えば、特定領域A20の各画素のカラー値の合計値と、特定領域A21の各画素のカラー値の合計値の差分値を算出し、差分値がしきい値以上であるか否かを判断する。そして、差分値がしきい値以上である場合に、動きがあったものと認識する。また、特定領域A20の各画素の深度値の合計値と、特定領域A21の各画素の深度値の合計値の差分値を算出し、差分値がしきい値以上であるか否かを判断する。そして、差分値がしきい値以上である場合に、動きがあったものと認識する。
【符号の説明】
【0261】
物体認識装置 10、処理部 100、取得部 110、算出部 111、
領域設定部 112、物体認識処理部 113、ゲーム演算部 114、
画像生成部 120、音制御部 130、記憶部 170、主記憶部 171、
描画バッファ 172、認識パターン記憶部 173、入力画像記憶部 174、
差分画像記憶部 175、情報記憶媒体 180、通信部 196、
入力部 20、RGBカメラ(撮像部) 21、処理部 22、記憶部 23、
物体認識装置 50、処理部 500、取得部 510、算出部 511、
領域設定部 512、物体認識処理部 513、ゲーム演算部 514、
画像生成部 520、音制御部 530、記憶部 570、主記憶部 571、
描画バッファ 572、認識パターン記憶部 573、入力画像記憶部 574、
差分画像記憶部 575、情報記憶媒体 580、通信部 596、
入力部 60、発光部 610、光源 611、深度センサ 620、
RGBカメラ(撮像部) 630、音入力部 640、処理部 650、
記憶部 660表示部 90、スピーカー 92、P プレーヤ、
F1〜F4、F10、F11 入力画像、P1、P2 画素、V 動きベクトル、
A1、A2、B1、C1、C2 特定領域、S1、S1´、S2、S2´ 動き領域、
GP 入力部の位置、Q 物体の位置、L 物体から入力部までの距離、
BO1、BO2、BO3、BO4、BO5、BOH1 ボーン、
ST1、ST2、ST2´、ST3、ST3´ シルエット

【特許請求の範囲】
【請求項1】
物体を認識する処理を行うプログラムであって、
撮像部によって撮像された入力画像を取得し、異なる時点で撮像された2つの入力画像に基づいて、入力画像の各画素の動きベクトルを算出する算出部と、
入力画像の各画素の動きベクトルに基づいて、入力画像において特定領域を設定する領域設定部と、
物体を認識する物体認識処理を行う物体認識処理部として、コンピュータを機能させ、
前記物体認識処理部が、
特定領域において物体認識処理を行うことを特徴とするプログラム。
【請求項2】
請求項1において、
前記物体認識処理部が、
特定領域における物体認識処理の精度を特定領域以外の領域の物体認識処理の精度よりも上げて、特定領域において物体認識処理を行うことを特徴とするプログラム。
【請求項3】
請求項1又は2において、
前記物体認識処理部が、
特定領域において物体認識処理を行う周期を特定領域以外の領域の物体認識処理の周期よりも短くして、特定領域において物体認識処理を行うことを特徴とするプログラム。
【請求項4】
請求項1〜3のいずれかにおいて、
前記物体認識処理部が、
特定領域の画像精度を特定領域以外の領域の画像精度よりも上げて、特定領域において物体認識処理を行うことを特徴とするプログラム。
【請求項5】
請求項1〜4のいずれかにおいて、
前記物体認識処理部が、
特定領域以外の領域において物体認識処理を行うと共に、
特定領域以外の領域において物体認識処理を行う周期を、特定領域において物体認識処理を行う周期よりも長くすることを特徴とするプログラム。
【請求項6】
請求項1〜5のいずれかにおいて、
前記物体認識処理部が、
特定領域以外の領域において物体認識処理を行うと共に、
特定領域以外の領域の画像精度を特定領域の画像精度よりも低くすることを特徴とするプログラム。
【請求項7】
請求項1〜6のいずれかにおいて、
前記領域設定部が、複数の特定領域を設定した場合には、
前記物体認識処理部が、
少なくとも1つの特定領域について物体認識処理を行うことを特徴とするプログラム。
【請求項8】
請求項7において、
前記領域設定部が、各特定領域に優先度を付与し、
前記物体認識処理部が、
各特定領域において物体認識処理を行うと共に、
優先度の低い特定領域において物体認識処理を行う周期を、優先度の高い特定領域において物体認識処理を行う周期よりも長くすることを特徴とするプログラム。
【請求項9】
請求項7又は8において、
前記領域設定部が、各特定領域に優先度を付与し、
前記物体認識処理部が、
各特定領域において物体認識処理を行うと共に、
優先度の低い特定領域の画像精度を、優先度の高い特定領域の画像精度よりも低くすることを特徴とするプログラム。
【請求項10】
請求項7において、
前記領域設定部が、各特定領域に優先度を付与し、
前記物体認識処理部が、
優先度の低い特定領域において物体認識処理を行わずに、優先度の高い特定領域において物体認識処理を行うことを特徴とするプログラム。
【請求項11】
請求項1〜10のいずれかにおいて、
前記領域設定部が、
入力画像の各画素の動きベクトルと色情報とに基づいて、入力画像において特定領域を設定することを特徴とするプログラム。
【請求項12】
請求項1〜11のいずれかにおいて、
前記領域設定部が、
入力画像の各画素の動きベクトルのうち大きさが所定値以上である動きベクトルに基づいて、入力画像において特定領域を設定することを特徴とするプログラム。
【請求項13】
請求項1〜12のいずれかにおいて、
前記物体認識処理部が、
ボーン情報に基づいて、前記特定領域における前記物体認識処理を行うことを特徴とするプログラム。
【請求項14】
コンピュータにより読み取り可能な情報記憶媒体であって、請求項1〜13のいずれかに記載のプログラムを記憶することを特徴とする情報記憶媒体。
【請求項15】
物体を認識する処理を行う物体認識システムであって、
撮像部によって撮像された入力画像を取得し、異なる時点で撮像された2つの入力画像に基づいて、入力画像の各画素の動きベクトルを算出する算出部と、
入力画像の各画素の動きベクトルに基づいて、入力画像において特定領域を設定する領域設定部と、
物体を認識する物体認識処理を行う物体認識処理部とを含み、
前記物体認識処理部が、
特定領域において物体認識処理を行うことを特徴とする物体認識システム。

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図20】
image rotate

【図22】
image rotate

【図23】
image rotate

【図28】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図1】
image rotate

【図19】
image rotate

【図21】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図29】
image rotate

【図30】
image rotate


【公開番号】特開2011−215967(P2011−215967A)
【公開日】平成23年10月27日(2011.10.27)
【国際特許分類】
【出願番号】特願2010−84609(P2010−84609)
【出願日】平成22年3月31日(2010.3.31)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】