(57)【要約】【課題】弾性変形に基づいて物体にかかる外力を推定する入力装置および入力プログラムを提供する。【解決手段】本発明の一形態に係る入力装置は、線形弾性を有し弾性率が既知である第１の物体を、未知の第１の外力で押圧した状態を撮像可能な撮像部と、前記撮像された画像に基づいて前記第１の物体の歪み量を推定し、前記第１の物体の弾性率および前記推定した第１の物体の歪み量に基づいて前記第１の外力を推定する推定部とを備える。【選択図】図５
2015187812.tif 000002
【特許請求の範囲】
【請求項１】
線形弾性を有し弾性率が既知である第１の物体を、未知の第１の外力で押圧した状態を撮像可能な撮像部と、
前記撮像された画像に基づいて前記第１の物体の歪み量を推定し、
前記第１の物体の弾性率および前記推定した第１の物体の歪み量に基づいて前記第１の外力を推定する推定部と
を備えた入力装置。
【請求項２】
請求項１に記載の入力装置であって、
前記推定部は、
押圧しない状態の画像と押圧した状態の画像との差分から前記歪み量を推定する
入力装置。
【請求項３】
請求項２に記載の入力装置であって、
前記撮像部は、
線形弾性を有し弾性率が未知である第２の物体を、前記第１の物体により前記第１の外力で押圧した状態を撮像し、
前記推定部は、
前記撮像された画像に基づいて前記第２の物体の歪み量を推定し、
前記第１の外力および前記推定した第２の物体の歪み量に基づいて、前記第２の物体の弾性率を推定する
入力装置。
【請求項４】
請求項３に記載の入力装置であって、
前記撮像部は、
前記弾性率が推定された第２の物体を、第３の物体により未知の第２の外力で押圧した状態を撮像し、
前記推定部は、
前記推定した第２の物体の歪み量および前記推定し第２の物体の弾性率に基づいて前記第２の外力を推定する
入力装置。
【請求項５】
請求項３に記載の入力装置であって、
前記撮像部は、
前記弾性率が推定された第２の物体を、第３の物体上に置いた状態を撮像し、
前記推定部は、
前記推定した第２の物体の歪み量および前記推定した第２の物体の弾性率に基づいて前記第２の物体の重量を推定する
入力装置。
【請求項６】
線形弾性を有し弾性率が既知である第１の物体を、未知の外力で押圧した状態を撮影した画像に基づいて、前記第１の物体の歪み量を推定し、
前記第１の物体の弾性率および前記推定した歪み量に基づいて前記外力を推定する推定部
としてコンピューターを機能させるための入力プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、弾性変形に基づいて物体にかかる外力を測定する入力装置および入力プログラムに関する。
【背景技術】
【０００２】
近年、コンピューター上で動作するゲームなどにおいて、ユーザーの体やユーザーが保持する物体の動きをカメラにより撮影して認識し、認識した動きに基づいてゲームが進行するコンピューター内の仮想空間における仮想オブジェクトを操作することが行われている。（例えば、特許文献１参照。）
【０００３】
特許文献１において開示されている技術では、人体や物体を認識した後、認識した人体や物体に対しスキャンを行ったり予め用意してあるモデルとのマッチングを行ったりして、個別のモデルを作成する。モデル作成後は、作成したモデルを用いて人体や物体の認識および仮想オブジェクトの操作を行う。なお、特許文献１の技術では、人体の動作を認識するために、骨格モデルを用いている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２０１２−５２１０３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、例えば、野球ゲームにおいて、ユーザーが手近にある棒をバットに見立てて握り、スイングする動作により仮想空間上のボールを打つ場合、ユーザーがどの程度の力でバットを握っているかを測定することは出来なかった。そのため、バットを握る握力をパラメーターとして、その握力の違いにより打たれたボールの飛ぶ方向や速度を変化させることは出来なかった。
【０００６】
また、一般に、物体にかかる外力を圧力センサーなどによらずに測定（推定）することは出来なかった。
【０００７】
以上のような事情に鑑み、本発明の目的は、弾性変形に基づいて物体にかかる外力を推定する入力装置および入力プログラムを提供することにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明の一形態に係る入力装置は、線形弾性を有し弾性率が既知である第１の物体を、未知の第１の外力で押圧した状態を撮像可能な撮像部と、前記撮像された画像に基づいて前記第１の物体の歪み量を推定し、前記第１の物体の弾性率および前記推定した第１の物体の歪み量に基づいて前記第１の外力を推定する推定部とを備える。
【０００９】
上記目的を達成するため、本発明の一形態に係る入力装置では、前記推定部は、押圧しない状態の画像と押圧した状態の画像との差分から前記歪み量を推定する構成でもよい。
【００１０】
上記目的を達成するため、本発明の一形態に係る入力装置では、前記撮像部は、線形弾性を有し弾性率が未知である第２の物体を、前記第１の物体により前記第１の外力で押圧した状態を撮像し、前記推定部は、前記撮像された画像に基づいて前記第２の物体の歪み量を推定し、前記第１の外力および前記推定した第２の物体の歪み量に基づいて、前記第２の物体の弾性率を推定する構成でもよい。
【００１１】
上記目的を達成するため、本発明の一形態に係る入力装置では、前記撮像部は、前記弾性率が推定された第２の物体を、第３の物体により未知の第２の外力で押圧した状態を撮像し、前記推定部は、前記推定した第２の物体の歪み量および前記推定し第２の物体の弾性率に基づいて前記第２の外力を推定する構成でもよい。
【００１２】
上記目的を達成するため、本発明の一形態に係る入力装置では、前記撮像部は、前記弾性率が推定された第２の物体を、第３の物体上に置いた状態を撮像し、前記推定部は、前記推定した第２の物体の歪み量および前記推定した第２の物体の弾性率に基づいて前記第２の物体の重量を推定する構成でもよい。
【００１３】
上記目的を達成するため、本発明の一形態に係る入力プログラムは、線形弾性を有し弾性率が既知である第１の物体を、未知の外力で押圧した状態を撮影した画像に基づいて、前記第１の物体の歪み量を推定し、前記第１の物体の弾性率および前記推定した歪み量に基づいて前記外力を推定する推定部としてコンピューターを機能させる。
【発明の効果】
【００１４】
以上のように、本発明によれば、弾性変形に基づいて物体にかかる外力を推定することが出来る。
【図面の簡単な説明】
【００１５】
【図１】本実施形態にかかる入力装置１の構成図である。
【図２】本実施形態で用いる機能ブロックを実現するソフトウェアの構成図である。
【図３】指Ｆが挟む物体Ｏ１が剛体である場合の変形状態を示す図である。
【図４】指Ｆが挟む物体Ｏ２が指に比べて非常に柔らかい場合の変形状態を示す図である。
【図５】指Ｆと指Ｆが挟む物体Ｏ１の柔らかさが同程度である場合の変形状態を示す図である。
【図６】本実施形態にかかる入力装置１におけるキャリブレーション処理の流れについて説明するためのアクティビティ図である。
【図７】キャリブレーションにより弾性率が推定された指を用いて、弾性率が未知の物体を掴んだ場合に、未知の弾性率を推定する処理の流れを説明するアクティビティ図である。
【図８】弾性率を推定した物体の重量を推定する処理の流れを説明するアクティビティ図である。
【図９】推定した弾性率や重量を用いてアプリケーションプログラムを実行する尻の流れについて説明するアクティビティ図である。
【図１０】本実施形態の入力装置１を野球のバッティングゲームに適用した例を示す図である。
【発明を実施するための形態】
【００１６】
以下、図面を参照しながら、本発明の実施形態を説明する。
【００１７】
［概要と前提条件］
最初に、本実施形態の概要と前提条件について説明する。
【００１８】
本実施形態は、指などが物体を掴んで変形した状態をカメラなどで撮像し、撮像した画像に基づいて指の歪み量や弾性率を推定し、推定結果から指にかかっている外力の大きさを推定するものである。
【００１９】
ここで、本実施形態では、カメラなどで指などが物体を掴んで変形した状態を撮像するとき、指や物体は、弾性限界以下、すなわち応力（外力）と歪み量が弾性率を比例定数として比例する線形弾性の状態であることを前提とする。
【００２０】
また、本実施形態で用いるカメラは、常に最適な位置に配置され、指や指が挟んだ物体が変形している状態を適切に撮像可能であることを前提とする。
【００２１】
以上、本実施形態の概要と前提条件について説明した。
【００２２】
［構成］
次に、本実施形態にかかる入力装置の構成について説明する。図１は、本実施形態にかかる入力装置１の構成図である。
【００２３】
入力装置１は、カメラ１０（撮像部）および情報処理装置３０を備えている。
【００２４】
カメラ１０は、指などが物体を掴んで変形した状態を撮像できるものであれば一般的なカメラを用いてもよい。
【００２５】
情報処理装置３０は、ＰＣ（Personal Computer）などの一般的なコンピューターを用いることが出来る。情報処理装置３０には、プロセッサ３１、メモリー３２、入出力部３３などを有している。
【００２６】
情報処理装置３０には、情報処理結果をユーザーに提示するための表示部２０が接続されてもよい。表示部２０やカメラ１０は、情報処理装置３０の入出力部３３に接続される。
【００２７】
メモリー３２などに格納されたプログラムがプロセッサ３１において実行されることにより、本実施形態で用いる各機能ブロックが実現される。本実施形態で用いる機能ブロックを実現するソフトウェアの構成を図２に示す。図２は、本実施形態で用いる機能ブロックを実現するソフトウェアの構成図である。
【００２８】
本実施形態で用いる機能ブロックを実現するソフトウェアは、メインプログラム３１ａ、認識エンジン３１ｂ（推定部）、アプリケーションプログラム３１ｃを含んで構成されている。
【００２９】
メインプログラム３１ａおよび認識エンジン３１ｂの詳細については後述する。アプリケーションプログラム３１ｃは、例えば、特許文献１にあるような、仮想空間を舞台にしたゲームなどである。
【００３０】
以上、本実施形態にかかる入力装置１の構成について説明した。
【００３１】
［指と物体の変形量の関係］
次に、本実施形態にかかる入力装置１のカメラ１０で撮像する、指と指により押圧される物体とが、押圧により弾性変形する状態について説明する。
【００３２】
図３は、指Ｆが挟む物体Ｏ１が剛体である場合の変形状態を示す図である。物体Ｏ１は非常に硬いので指による押圧によっても変形しない。逆に指が大きく変形している。指Ｆの変形量から押圧の力を推定することが出来る。
【００３３】
図４は、指Ｆが挟む物体Ｏ２が指に比べて非常に柔らかい場合の変形状態を示す図である。物体Ｏ２は非常に柔らかいので大きく変形している。逆に指は殆ど変形していない。物体Ｏ２の変形量から押圧の力を推定することが出来る。
【００３４】
図５は、指Ｆと指Ｆが挟む物体Ｏ１の柔らかさが同程度である場合の変形状態を示す図である。物体Ｏ３も指Ｆも変形している。指Ｆの変形量からでも物体Ｏ３の変形量からでも、押圧の力を推定することが出来る。
【００３５】
以上、本実施形態にかかる入力装置１のカメラ１０で撮像する、指と指により押圧される物体とが、押圧により弾性変形する状態について説明した。
【００３６】
［キャリブレーション処理の流れ］
次に、本実施形態にかかる入力装置１におけるキャリブレーション処理の流れについて説明する。図６は、本実施形態にかかる入力装置１におけるキャリブレーション処理の流れについて説明するためのアクティビティ図である。なお、キャリブレーション処理では、弾性率が既知の物体を手で掴んだ状態を撮像することにより、押圧の力を求め、押圧の力と手の変形量から手の弾性率（剛性）を推定するものである。
【００３７】
まず、メインプログラム３１ａが、手の弾性率（剛性）の測定を開始する事をユーザーに伝える（ステップＳ１）。
【００３８】
次に、メインプログラム３１ａが、弾性率が既知であるキャリブレーション用の物体（第１の物体）を用意するようにユーザーに指示を出す（ステップＳ２）。
【００３９】
次に、カメラ１０が、手（指、第２の物体）と物体（力はまだ加えていない）を撮像する（ステップＳ３）。
【００４０】
次に、認識エンジン３１ｂが、撮像された手（指）と物体を認識する（ステップＳ４）。
【００４１】
次に、メインプログラム３１ａが、指で物体を押圧するようにユーザーに指示を出す（ステップＳ５）。
【００４２】
次に、カメラ１０が、押圧により変形している指と物体を撮像する（ステップＳ６）。
【００４３】
次に、認識エンジン３１ｂが、指および物体の変形量（歪み量）を認識する（ステップＳ７）。
【００４４】
次に、認識エンジン３１ｂが、認識した物体の歪み量と既知の弾性率から押圧の力（第１の外力）を推定し、推定した力と指の歪み量から指の弾性率を推定する（ステップＳ８）。なお、変形量（歪み量）は、外力を加える前の物体の画像と外力を加えて変形した物体の画像との差分から求めることが出来る。
【００４５】
次に、メインプログラム３１ａが、アプリケーションプログラム３１ｃで用いる手（指）のモデルに、推定された弾性率を属性として追加する（ステップＳ９）。
【００４６】
次に、メインプログラム３１ａが、ユーザーに手の弾性率（剛性）の測定の終了を伝える（ステップＳ１０）。
【００４７】
以上、本実施形態にかかる入力装置１におけるキャリブレーション処理の流れについて説明した。
【００４８】
［未知の弾性率を推定する処理の流れ］
次に、キャリブレーションにより弾性率が推定された指を用いて、弾性率が未知の物体を掴んだ場合に、未知の弾性率を推定する処理の流れを説明する。図７は、キャリブレーションにより弾性率が推定された指を用いて、弾性率が未知の物体を掴んだ場合に、未知の弾性率を推定する処理の流れを説明するアクティビティ図である。
【００４９】
まず、メインプログラム３１ａが、弾性率が未知の物体（第２の物体）の弾性率（剛性）の測定を開始する事をユーザーに伝える（ステップＳ２１）。
【００５０】
次に、メインプログラム３１ａが、弾性率を求める物体を用意するようにユーザーに指示を出す（ステップＳ２２）。
【００５１】
次に、カメラ１０が、手（指）と物体（力はまだ加えていない）を撮像する（ステップＳ２３）。
【００５２】
次に、認識エンジン３１ｂが、撮像された手（指）と物体を認識する（ステップＳ２４）。
【００５３】
次に、メインプログラム３１ａが、指で物体を押圧するようにユーザーに指示を出す（ステップＳ２５）。
【００５４】
次に、カメラ１０が、押圧により変形している指と物体を撮像する（ステップＳ２６）。
【００５５】
次に、認識エンジン３１ｂが、指および物体の変形量（歪み量）を認識する（ステップＳ２７）。
【００５６】
次に、認識エンジン３１ｂが、認識した指の歪み量と推定されている弾性率から押圧の力（第２の外力）を推定し、推定した力と物体の歪み量から物体の弾性率を推定する（ステップＳ２８）。
【００５７】
次に、メインプログラム３１ａが、アプリケーションプログラム３１ｃで用いる物体のモデルに、推定された弾性率を属性として追加する（ステップＳ２９）。
【００５８】
次に、メインプログラム３１ａが、ユーザーに物体の弾性率（剛性）の測定の終了を伝える（ステップＳ３０）。
【００５９】
以上、キャリブレーションにより弾性率が推定された指を用いて、弾性率が未知の物体を掴んだ場合に、未知の弾性率を推定する処理の流れを説明した。
【００６０】
［未知の重量を推定する処理の流れ］
次に、上記の処理で弾性率を推定した物体の重量を推定する処理の流れを説明する。図８は、弾性率を推定した物体の重量を推定する処理の流れを説明するアクティビティ図である。
【００６１】
まず、メインプログラム３１ａが、弾性率を推定した物体の重量の測定を開始する事をユーザーに伝える（ステップＳ４１）。
【００６２】
次に、メインプログラム３１ａが、重量を求める物体を手など（第３の物体）の上に置くようにユーザーに指示を出す（ステップＳ４２）。
【００６３】
次に、カメラ１０が、自重により変形している物体を撮像する（ステップＳ４３）。
【００６４】
次に、認識エンジン３１ｂが、物体の変形量（歪み量）を認識する（ステップＳ４４）。歪み量を求めるための差分に用いる変形前の物体の画像は、ステップＳ２３において撮像されたものを用いることが出来る。
【００６５】
次に、認識エンジン３１ｂが、認識した物体の歪み量と推定されている弾性率から物体の重量を推定する（ステップＳ４５）。
【００６６】
次に、メインプログラム３１ａが、アプリケーションプログラム３１ｃで用いる物体のモデルに、推定された重量を属性として追加する（ステップＳ４６）。
【００６７】
次に、メインプログラム３１ａが、ユーザーに物体の重量の測定の終了を伝える（ステップＳ４７）。
【００６８】
以上、弾性率を推定した物体の重量を推定する処理の流れを説明した。
【００６９】
［アプリケーションプログラムの実行の流れ］
次に、上記で推定した弾性率や重量を用いてアプリケーションプログラムを実行する尻の流れについて説明する。図９は、推定した弾性率や重量を用いてアプリケーションプログラムを実行する尻の流れについて説明するアクティビティ図である。
【００７０】
まず、メインプログラム３１ａが、上記のキャリブレーション処理などで推定した、指や物体の弾性率および重量を適用したモデルを用いて、ゲームなどのアプリケーションプログラム３１ｃを実行する（ステップＳ５１）。
【００７１】
次に、メインプログラム３１ａは、アプリケーションプログラム３１ｃの実行が終了したか否かを判断する（ステップＳ５２）。
【００７２】
実行が終了していない場合（ステップＳ５２のＮ）、カメラ１０が指や物体の変形状態を撮像し（ステップＳ５３）、認識エンジン３１ｂが撮像された変形量に応じて指や物体を押圧する力を推定し（ステップＳ５４）、推定された力を用いてアプリケーションプログラム３１ｃが実行される。
【００７３】
なお、ここでは、弾性率や重量を推定してアプリケーションプログラム３１ｃを実行したが、これに限らず、弾性率や重量の推定を行わず、指の一般的な弾性率などを用いてアプリケーションプログラムを実行してもよい。
【００７４】
以上、推定した弾性率や重量を用いてアプリケーションプログラムを実行する尻の流れについて説明した。
【００７５】
［入力装置１の適用例１］
次に、本実施形態の入力装置１を野球のバッティングゲームに適用した例を説明する。図１０は、本実施形態の入力装置１を野球のバッティングゲームに適用した例を示す図である。
【００７６】
従来は、ボールとバットの重量、速度、回転などから打球の飛ぶ方向を計算していた。
【００７７】
しかし、この例では、カメラ１０が、バットを握った手を撮像しており、ボールがバットに当たった際の、手の変形量も撮像することが出来る。
【００７８】
そして、この例では、どの程度の力でバットを握っているかに基づいてボールがバットに当たった瞬間のバットの角度を計算することが出来、より正確に、打球の飛ぶ方向を計算することが出来る。
【００７９】
このように、圧力センサーを備えていない物体をバットに用いる場合でも、押圧に用いられる力を推定し、より正確に、打球の飛ぶ方向を計算することが出来る。
【００８０】
以上、本実施形態の入力装置１を野球のバッティングゲームに適用した例を説明した。
【００８１】
［入力装置１の適用例２］
次に、本実施形態の入力装置１をコンピューターの入力装置であるキーボードに適用した例を説明する。
【００８２】
通常、キーボードの各キーは、押されている状態と押されていない状態のどちらかの状態しか検知することは出来ない。例えば、ａのキーを押して小文字の「ａ」が入力される場合、大文字の「Ａ」を入力するためには、「Ｓｈｉｆｔ」キーも一緒に押さなければならない。
【００８３】
しかし、本実施形態の入力装置１をキーボードに適用し、キーを押す際の指の変形量からキーを押す圧力を推定することにより、例えば、「ａ」のキーを軽く押すと小文字の「ａ」が入力され、強い力で押すと大文字の「Ａ」が入力されるような構成とすることも出来る。
【００８４】
以上、本実施形態の入力装置１をコンピューターの入力装置であるキーボードに適用した例を説明した。
【００８５】
［補足事項］
その他、本技術は、上述の実施形態にのみ限定されるものではなく、本技術の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【符号の説明】
【００８６】
１  …  入力装置
１０  …  カメラ
２０  …  表示部
３０  …  情報処理装置
３１  …  プロセッサ
３１ａ…  メインプログラム
３１ｂ…  認識エンジン
３１ｃ…  アプリケーションプログラム
３２  …  メモリー
３３  …  入出力部
Ｆ    …  指
Ｏ１、Ｏ２、Ｏ３  …  物体
【図１】
2015187812.tif 000003
【図２】
2015187812.tif 000004
【図３】
2015187812.tif 000005
【図４】
2015187812.tif 000006
【図５】
2015187812.tif 000007
【図６】
2015187812.tif 000008
【図７】
2015187812.tif 000009
【図８】
2015187812.tif 000010
【図９】
2015187812.tif 000011
【図１０】
2015187812.tif 000012