IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社ミクシィの特許一覧

特許7299478オブジェクト姿勢制御プログラムおよび情報処理装置
<>
  • 特許-オブジェクト姿勢制御プログラムおよび情報処理装置 図1
  • 特許-オブジェクト姿勢制御プログラムおよび情報処理装置 図2
  • 特許-オブジェクト姿勢制御プログラムおよび情報処理装置 図3
  • 特許-オブジェクト姿勢制御プログラムおよび情報処理装置 図4
  • 特許-オブジェクト姿勢制御プログラムおよび情報処理装置 図5
  • 特許-オブジェクト姿勢制御プログラムおよび情報処理装置 図6
  • 特許-オブジェクト姿勢制御プログラムおよび情報処理装置 図7
  • 特許-オブジェクト姿勢制御プログラムおよび情報処理装置 図8
  • 特許-オブジェクト姿勢制御プログラムおよび情報処理装置 図9
  • 特許-オブジェクト姿勢制御プログラムおよび情報処理装置 図10
  • 特許-オブジェクト姿勢制御プログラムおよび情報処理装置 図11
  • 特許-オブジェクト姿勢制御プログラムおよび情報処理装置 図12
  • 特許-オブジェクト姿勢制御プログラムおよび情報処理装置 図13
  • 特許-オブジェクト姿勢制御プログラムおよび情報処理装置 図14
  • 特許-オブジェクト姿勢制御プログラムおよび情報処理装置 図15
  • 特許-オブジェクト姿勢制御プログラムおよび情報処理装置 図16
  • 特許-オブジェクト姿勢制御プログラムおよび情報処理装置 図17
  • 特許-オブジェクト姿勢制御プログラムおよび情報処理装置 図18
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-06-20
(45)【発行日】2023-06-28
(54)【発明の名称】オブジェクト姿勢制御プログラムおよび情報処理装置
(51)【国際特許分類】
   G06F 3/04815 20220101AFI20230621BHJP
   G06F 3/04845 20220101ALI20230621BHJP
【FI】
G06F3/04815
G06F3/04845
【請求項の数】 6
(21)【出願番号】P 2019061945
(22)【出願日】2019-03-27
(65)【公開番号】P2020161006
(43)【公開日】2020-10-01
【審査請求日】2022-01-04
(73)【特許権者】
【識別番号】500033117
【氏名又は名称】株式会社MIXI
(74)【代理人】
【識別番号】110000408
【氏名又は名称】弁理士法人高橋・林アンドパートナーズ
(72)【発明者】
【氏名】小林 一希
【審査官】田川 泰宏
(56)【参考文献】
【文献】特開2019-020836(JP,A)
【文献】特開2014-071499(JP,A)
【文献】特開2018-029907(JP,A)
【文献】特表2016-524262(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/01-3/04895
(57)【特許請求の範囲】
【請求項1】
情報処理装置の制御部
複数の部位を有するオブジェクトを表す第1画像を撮像部で撮像された第2画像に重畳させて表示部に表示し、
前記第2画像に撮像された実空間に存在する第1対象物および第2対象物のうち前記撮像部との距離が小さい前記第2対象物を操作体として設定し、
前記オブジェクトと前記第2画像内の前記操作体との位置関係に基づいて、前記オブジェクトの複数の部位のうち少なくとも一部の被操作部位の位置情報を変化させて前記オブジェクトの姿勢を制御することを実行させるためのオブジェクト姿勢制御プログラム。
【請求項2】
前記撮像部と、前記第1対象物または前記第2対象物との距離は、撮像において生じる視差に基づいて算出される、
請求項1に記載のオブジェクト姿勢制御プログラム
【請求項3】
前記操作体の位置と前記被操作部位の位置とが少なくとも一部重なる場合に、ユーザに通知するための処理を実行する、
請求項1または2に記載のオブジェクト姿勢制御プログラム。
【請求項4】
前記操作体の位置と前記被操作部位の位置とが少なくとも一部重なっている間の前記操作体の位置情報の変化に基づいて、前記被操作部位の位置を変化させる、
請求項1乃至3のいずれか一項に記載のオブジェクト姿勢制御プログラム。
【請求項5】
前記操作体の位置と前記被操作部位の位置とはそれぞれ前記オブジェクトが配置される空間の座標系における位置として規定される、
請求項3または4に記載のオブジェクト姿勢制御プログラム。
【請求項6】
オブジェクトの姿勢を制御する情報処理装置であって、
複数の部位を有するオブジェクトを表す第1画像を撮像部で撮像された第2画像に重畳させて表示部に表示し、
前記第2画像に撮像された実空間に存在する第1対象物および第2対象物のうち前記撮像部との距離が小さい前記第2対象物を操作体として設定し、
前記オブジェクトと前記第2画像内の前記操作体との位置関係に基づいて、前記オブジェクトの複数の部位のうち少なくとも一部の被操作部位の位置情報を変化させて前記オブジェクトの姿勢を制御する制御部を備える、情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はオブジェクト姿勢制御プログラムおよび情報処理装置に関する。
【背景技術】
【0002】
近年、電子機器の発展により、高精細の静止画および動画をスマートフォンやパーソナルコンピュータなどの端末に表示することが可能となった。さらに、情報処理技術の研究開発も進展しており、拡張現実(AR:Augmented Reality)を用いて仮想空間と現実空間を融合させた表示技術も実用可能になりつつある。例えば、特許文献1には情報端末の表示領域に仮想空間に配置されたオブジェクトを表示する技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2015-41126号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
一方で、表示領域に表示されたオブジェクトの姿勢の制御は、オブジェクトの対象となる部位を指定するうえで、入力処理が複雑となる場合がある。
【0005】
このような課題に鑑み、本発明の目的の一つは、仮想空間に配置されたオブジェクトの姿勢を容易に制御することにある。
【課題を解決するための手段】
【0006】
本発明の一実施形態によれば、情報処理装置に複数の部位を有するオブジェクトを表す第1画像を撮像部で撮像された第2画像に重畳させて表示部に表示し、前記オブジェクトと前記第2画像内の操作体との位置関係に基づいて、前記オブジェクトの複数の部位のうち少なくとも一部の被操作部位の位置情報を変化させて前記オブジェクトの姿勢を制御することを実行させるためのオブジェクト姿勢制御プログラムが提供される。
【0007】
上記オブジェクト姿勢制御プログラムにおいて、前記操作体の位置と前記被操作部位の位置とが少なくとも一部重なる場合に、ユーザに通知するための処理を実行してもよい。
【0008】
上記オブジェクト姿勢制御プログラムにおいて、前記操作体の位置と前記被操作部位の位置とが少なくとも一部重なっている間の前記操作体の位置情報の変化に基づいて、前記被操作部位の位置を変化させてもよい。
【0009】
上記オブジェクト姿勢制御プログラムにおいて、前記被操作部位の位置と前記被操作部位の位置とはそれぞれ前記オブジェクトが配置される空間の座標系における位置として規定されてもよい。
【0010】
本発明の一実施形態によれば、オブジェクトの姿勢を制御する情報処理装置であって、複数の部位を有するオブジェクトを表す第1画像を撮像部で撮像された第2画像に重畳させて表示部に表示し、前記オブジェクトと前記第2画像内の操作体との位置関係に基づいて、前記オブジェクトの複数の部位のうち少なくとも一部の被操作部位の位置情報を変化させて前記オブジェクトの姿勢を制御する、情報処理装置が提供される。
【発明の効果】
【0011】
本発明の一実施形態を用いることにより、オブジェクトの姿勢を容易に制御することができる。
【図面の簡単な説明】
【0012】
図1】本発明の第1実施形態に係るオブジェクト姿勢制御システムにおけるハードウェアの構成を示す図である。
図2】本発明の第1実施形態に係るオブジェクト姿勢制御部の機能ブロック図である。
図3】本発明の第1実施形態に係るオブジェクト姿勢制御処理のフロー図である。
図4】本発明の第1実施形態に係る重畳表示処理のフロー図である。
図5】本発明の第1実施形態に係る重畳表示処理における仮想空間の座標と情報処理装置に表示される座標との位置合わせの一例である。
図6】本発明の第1実施形態に係るオブジェクトの各部位の座標の一例である。
図7】本発明の第1実施形態に係る重畳表示処理における情報処理装置の表示部に表示されたユーザインターフェースの一例である。
図8】本発明の第1実施形態に係る第1オブジェクト姿勢検出処理のフロー図である。
図9】本発明の第1実施形態に係る第1オブジェクト姿勢検出処理における情報処理装置の表示部に表示されたユーザインターフェースの一例である。
図10】本発明の第1実施形態に係る第2オブジェクト姿勢検出処理のフロー図である。
図11】本発明の第1実施形態に係る第2オブジェクト姿勢検出処理における、操作体の移動前、移動後の位置座標およびオブジェクトの位置座標である。
図12】本発明の第1実施形態に係る第2オブジェクト姿勢検出処理における情報処理装置の表示部に表示されたユーザインターフェースの一例である。
図13】本発明の第2実施形態に係るオブジェクト姿勢制御部の機能ブロック図である。
図14】本発明の第2実施形態に係る第1オブジェクト姿勢検出処理のフロー図である。
図15】本発明の第2実施形態に係る第1オブジェクト姿勢検出処理における情報処理装置の表示部に表示されたユーザインターフェースの一例である。
図16】本発明の第2実施形態に係る第2オブジェクト姿勢検出処理のフロー図である。
図17】本発明の第2実施形態に係る情報処理装置の表示部に表示されたユーザインターフェースの一例である。
図18】本発明の第1実施形態に係る情報処理装置の表示部に表示されたユーザインターフェースの変形例である。
【発明を実施するための形態】
【0013】
以下、本発明の実施の形態を、図面等を参照しながら説明する。但し、本発明は多くの異なる態様で実施することが可能であり、以下に例示する実施の形態の記載内容に限定して解釈されるものではない。図面は説明をより明確にするため、模式的に表される場合があるが、あくまで一例であって、本発明の解釈を限定するものではない。また、各要素に対する「第1」、「第2」と付記された文字は、各要素を区別するために用いられる便宜的な標識であり、特段の説明がない限りそれ以上の意味を有さない。なお、本実施形態で参照する図面において、同一部分または同様な機能を有する部分には同一の符号または類似の符号(数字xxxにA,Bを付しただけの符号)を付し、その繰り返しの説明は省略する場合がある。また、構成の一部が図面から省略されたりする場合がある。その他、本発明の属する分野における通常に知識を有する者であれば認識できるものである場合、特段の説明を行わないものとする。
【0014】
本発明の一実施形態において記載される「部位」とは、オブジェクトが有する移動可能な部位をいい、複数の部位を組み合わせることにより連動する部位が構成される。
【0015】
<第1実施形態>
本発明の第1実施形態に係るオブジェクト姿勢制御システムについて、図面を参照しながら詳細に説明する。
【0016】
(1-1.オブジェクト姿勢制御システムのハードウェア構成)
図1に、オブジェクト姿勢制御システム1のハードウェア構成および機能ブロック図を示す。図1に示すように、オブジェクト姿勢制御システム1は、端末10およびサーバ20を含む。端末10およびサーバ20を合わせて情報処理装置という場合がある。
【0017】
端末10は、コンピュータの一つであり、表示部11、制御部12、記憶部13、操作部14、通信部15、センサ部16、撮像部17、およびスピーカー部18を有する。この例では、端末10としてスマートフォンが用いられる。なお、スマートフォンに限定されず、携帯電話(フィーチャーフォン)、タブレット型端末、ノートPC(Personal Computer)、IoTデバイス(電源機構、通信機能および情報記憶機構を備えた機器)などでもよく、ネットワークを通じてサーバ20と通信可能なものであれば適用可能である。
【0018】
表示部11は、液晶ディスプレイまたは有機ELディスプレイなどの表示デバイスであって、制御部12から入力される信号により表示内容が制御される。
【0019】
制御部12は、CPU(Central Processing Unit)、ASIC(Application Specific Integrated Circuit)、FPGA(Flexibe Programable Gate Array)、またはその他の演算処理回路を備える。制御部12は、表示部11および操作部14の操作に基づいて、記憶部13に記憶されたオブジェクト姿勢制御プログラムを含むアプリケーションを実行させる。
【0020】
記憶部13は、オブジェクト姿勢制御用プログラム、およびオブジェクト姿勢制御用プログラムで用いられる空間情報を記憶するデータベースとしての機能を有する。記憶部13には、メモリ、SSD、またはその他の記憶可能な素子が用いられる。
【0021】
操作部14は、コントローラー、ボタン、またはスイッチを含む。操作部14は、上下左右への移動、押圧、または回転などの動作がなされることにより、その動作に基づく情報が制御部12に送信される。本実施形態では、端末10がタッチセンサを有する表示装置(タッチパネル)であることにより、表示部11と操作部14とが、同じ場所に配置されてもよい。
【0022】
通信部15は、サーバ20と送受信する機能を有する。通信部15には、LAN送受信機(例えばWi-Fi送受信機)が用いられる。なお、送受信機は、LAN送受信機に限定されない。端末が携帯型の端末の場合には、携帯端末用通信(例えばLTE通信)用の送受信機が設けられてもよいし、近距離無線通信用の送受信機が設けられてもよい。端末10は、ネットワーク50を介してサーバ20と接続される。
【0023】
センサ部16は、マーカー、操作体、オブジェクトなどの位置情報を検出する機能を有する。センサ部16には、位置センサ、距離センサ、変位センサを含む。
【0024】
撮像部17は、環境画像を撮像する機能を有し、オブジェクトを表示する上でのマーカー部が設けられた対象物を撮像する。撮像部17には、例えばCMOSイメージセンサが用いられる。
【0025】
スピーカー部18は、検出された情報をもとに外部に音情報を出力する音情報を出力する機能を有する。
【0026】
サーバ20は、通信部21、記憶部22、制御部23および表示部24を有する。サーバ20は、データベースおよびアプリケーションサーバとして機能する。なお、あらかじめ端末10にオブジェクト姿勢制御用プログラムに関連するすべての情報が搭載されている場合にはサーバ20を必ずしも用いなくてもよい。
【0027】
通信部21は、送受信機を有し、ネットワーク50を介して端末10とオブジェクトの制御情報の情報通信を行う。通信部21には、インターネット用の送受信機が用いられる。なお、送受信機は、インターネット用のLAN送受信機に限定されず、端末10と同様に通信可能な装置が用いられる。
【0028】
記憶部22は、ハードディスク、およびSSDを用いることで、オブジェクト姿勢制御用プログラムで用いられる情報のデータベースとしての機能を有する。
【0029】
制御部23は、CPU、ASIC、FPGAまたはその他の演算処理回路を用いて、オブジェクト姿勢制御プログラムの処理を制御する。また、制御部23からの命令によって、オブジェクト姿勢制御プログラムを実行するためのユーザインターフェースが表示部24に提供される場合がある。
【0030】
(1-2.オブジェクト姿勢制御部100の構成)
図2は、オブジェクト姿勢制御システム1における端末10の各構成要素およびサーバ20の各構成要素によって構成され、オブジェクト姿勢制御機能を実現させるプログラム(オブジェクト姿勢制御プログラム)を制御するオブジェクト姿勢制御部100の機能ブロック図を示す。この例では、オブジェクト姿勢制御プログラムが端末10に設けられている例を説明する。
【0031】
オブジェクト姿勢制御部100は、撮像画像取得部110、マーカー検出部120、空間定義部130、オブジェクト表示部140、操作体検出部150、重畳部分検出部160、通知部170、移動情報取得部180、およびオブジェクト座標変更部190を含む。
【0032】
撮像画像取得部110は、撮像部17において撮像された実空間の環境画像を取得する機能を有する。
【0033】
マーカー検出部120は、撮像画像取得部110によって取得された画像からマーカーを検出する機能を有する。この例では、マーカーの情報は、あらかじめ記憶部13に記憶されている。なお、マーカーの情報は、必ずしも記憶部13に記憶されていなくてもよく、撮像された画像からマーカーとなりうる特徴点を抽出してもよい。
【0034】
空間定義部130は、仮想空間と表示部11の座標との位置合わせを行う機能を有する。本実施形態では、空間定義部130は、マーカーベース位置合わせ法を用い、検出されたマーカーを基準に仮想空間と表示部11の座標とを位置合わせする。
【0035】
オブジェクト表示部140は、仮想空間上に配置された姿勢を制御する対象となるオブジェクトを表示部11に表示する機能を有する。
【0036】
操作体検出部150は、撮像された画像に含まれる対象物から操作体を検出し、操作体として設定する機能を有する。重畳部分検出部160は、操作体と、オブジェクトが有する複数の部位のうち一部の部位とが重畳することを検出し、当該部位を被操作部位として設定する機能を有する。
【0037】
通知部170は、操作体と被操作部位とが重畳していることをユーザに通知する機能を有する。なお、操作体と被操作部位とが重畳しているとは、例えば、操作体と被操作部位が配置される空間(仮想的空間を含む)または表示部11の表示領域において、操作体との被操作部位との少なくとも一部に位置座標の重なりがあることをいう。この例では、端末10のスピーカー部18から発せられる音情報を介して通知する。
【0038】
移動情報取得部180は、設定された操作体の移動前後の座標にもとづいた移動情報を取得する機能を有する。
【0039】
オブジェクト座標変更部190は、表示部11に移動後のオブジェクトを表示するために、操作体と重畳する非操作部位の座標を変更し記録するとともに、その位置情報をオブジェクト表示部140に送信する機能を有する。移動情報取得部180、オブジェクト座標変更部190およびオブジェクト表示部140は、1秒あたり60回にわたってオブジェクトにおける被操作部位の移動情報を取得し、操作体の空間座標および表示画面上の座標を変更することにより、オブジェクトの動き(姿勢の変化)を静止画または動画として表示することができる。
【0040】
(1-3.オブジェクト姿勢制御処理)
次に、オブジェクト姿勢制御部100におけるオブジェクト姿勢制御プログラムによる命令に基づいたオブジェクト姿勢制御処理について説明する。オブジェクト姿勢制御処理は、重畳表示処理S100およびオブジェクト姿勢検出処理を含む。図3(A)は、重畳表示処理のフロー図である。図3(B)は、オブジェクト姿勢検出処理のフロー図である。図3(B)に示すように、オブジェクト姿勢検出処理は、第1オブジェクト姿勢検出処理S200および第2オブジェクト姿勢検出処理S300を含む。重畳表示処理と、オブジェクト姿勢検出処理とは、並行して行うことができる。
【0041】
重畳表示処理S100は、撮像画像の取得・表示処理、マーカー情報検出処理、空間定義処理、オブジェクト座標取得処理および撮像画像・オブジェクト重畳表示処理を含む。第1オブジェクト姿勢検出処理S200は、操作体検出処理、操作体設定処理、重畳部分検出処理、被操作部位設定処理、および重畳通知処理を含む。第2オブジェクト姿勢検出処理S300は、操作体移動量取得処理、オブジェクトの座標変更処理、および端末の移動が終了したかどうかの判定処理を含む。それぞれのオブジェクト姿勢制御処理を分けて説明する。
【0042】
(1-3-1.重畳表示処理S100)
図4に、重畳表示処理S100を示す。重畳表示処理S100は、オブジェクト姿勢制御プログラムを含むアプリケーションを起動させることをきっかけとして開始される。
【0043】
重畳表示処理S100において、撮像画像取得部110は実空間の環境画像の撮像を行い、その撮像された画像を取得し(S110)、端末10の表示部11に撮像された画像(第2画像ともいう)を表示する。
【0044】
図5は、端末10で実空間を撮像するときの一例である。図5において、実際の空間には、端末10とともに、テーブル60、シート70とともに、操作体となるユーザの手90が配置されている。シート70には、4つのマーカー75が含まれている。この例では、端末10により4つのマーカー75を含むように、テーブル60の一部、シート70、ユーザの手90が撮像される。
【0045】
図4に戻って説明する。次に、マーカー検出部120は、マーカー検出処理を行う(S120)。この例では、オブジェクト姿勢制御プログラムには、あらかじめ4つのマーカーの情報が登録されている。マーカーの情報は、マーカーの形態および配置に関するものである。4つのマーカーが検出されないとき(S120;No)、撮像画像の取得・表示処理(S110)に戻る。
【0046】
次に、4つのマーカーを検出した場合には(S120;Yes)、空間定義部130は、マーカーベース位置合わせ法を用いて、実空間と仮想空間との座標の位置合わせ(空間定義)を行う(S130)。このとき、空間定義部130は、表示部11に表示された実空間上のマーカー75と、オブジェクト姿勢制御プログラムに記憶された仮想空間上のマーカーとを照合し、仮想空間の座標を実空間の座標として表示部11に表示可能となるように調整を行う。例えば、マーカー75-1の位置座標は、実空間の位置座標が(Xr75-1,Yr75-1,Zr75-1)、表示部11における位置座標が(Xd75-1,Yd75-1)、仮想空間の位置座標が(Xv75-1,Yv75-1,Zv75-1)として定義される。
【0047】
次に、空間定義部130は、仮想空間におけるオブジェクト座標の取得処理を行う(S140)。図6は、オブジェクトの各部位の仮想空間上の座標である。図6に示すように、オブジェクトの各部位の座標情報は、4つのマーカーの座標に基づいて設定された原点に対して設定される。上記処理により、マーカー75の表示部11における情報が取得されることにより、オブジェクトの各部位の座標が取得される。
【0048】
次に、オブジェクト表示部140は、撮像された画像(第2画像)とオブジェクトの画像(第1画像ともいう)を重畳して表示する(S150)。図7は、端末10の表示部11に表示されたオブジェクトのユーザインターフェースである。図7において、ユーザの手90とともに、シート70上に配置された仮想空間上のオブジェクト80が表示される。この例では、オブジェクト80は、人型の体形を有し、複数の部位81および複数のボーン82を有する。部位81は、移動可能な部位であり、人間の関節に相当する。部位81(部位81a)は、隣接する部位81(部位81b)と、ボーン82(ボーン82a)を介して接続されている。つまり、部位81aおよび部位81bは連動する部位であるということができる。なお、オブジェクト80を表示する際に、シート70は表示されなくてもよい。
【0049】
次に、重畳表示処理を終了するかどうかの判定処理がなされる(S160)。当該判定処理は、ユーザからの入力される情報をもとになされてもよいし、所定の条件を満たすか否かによりなされてもよい。例えば、撮像された画像において、移動する対象物がある場合には、重畳表示処理を終了しないと判定し(S160;No)、再度撮像画像の取得処理(S110)に戻り、重畳表示処理S100が繰り返される。一方、重畳表示処理を終了すると判定した場合(S160;Yes)、重畳表示処理S100は終了となる。
【0050】
(1-3-2.第1オブジェクト姿勢検出処理S200)
図8に、第1オブジェクト姿勢検出処理S200のフロー図を示す。第1オブジェクト姿勢検出処理S200は、検出開始信号が入力されることをきっかけとして行われる。検出開始信号は、ユーザが入力してもよいし、プログラムから所定の信号が入力されてもよい。
【0051】
まず、操作体検出部150は、操作体の検出処理を行う(S210)。当該検出処理は、撮像された撮像において生じる視差に基づいて判定される。
【0052】
まず、撮像部17で撮像された複数の画像における対象物の位置の変化(視差)に基づいて端末10(撮像部17)から対象物までの距離を算出する。次に、端末10から対象物までの距離が撮像部17からテーブルまでの距離よりも小さい対象物を操作体として検出する。この例では、端末10からテーブル60までの距離に対して、端末10からユーザの手90までの距離の方が小さいため、ユーザの手90が操作体として検出され(S210;Yes)、設定される(S220)。このとき、ユーザの手90のうちシート70に最も近い部分(より具体的には人差し指の先端部90a)を操作体として定義してもよい。操作体が検出されないときは(S210;No)、上記処理がループして行われる。
【0053】
次に、重畳部分検出部160は、オブジェクト80と、操作体とが重畳することを検出する(S230)。重畳しているか否かの検出は、オブジェクト80の対象部位の仮想空間上の座標と、操作体の実空間の座標とが、一致するか否かに基づいて判定される。
【0054】
図9は、操作体と被操作部位とが重畳したときを示すユーザインターフェースの一例である。図9に示すように、この例では、ユーザの手90のうち人差し指の先端部90aおよび親指の先端部90bがオブジェクト80の部位81a(左手首の関節に相当)の一部と重畳している。以下に、人差し指の先端部90aと、オブジェクト80の部位81aとが重畳したことの検出方法を示す。
【0055】
まず、人差し指の先端部90aの実空間の位置(座標)を取得する。人差し指の先端部90aの座標には、シート70上に配置された4つのマーカー75で囲まれた領域の中央部を原点とし、当該原点を基準とした相対座標が用いられる。このとき、人差し指の先端部90aの実空間の座標は(Xr_90a,Yr_90a,Zr_90a)である。そして、上記実空間の座標に基づいて、人差し指の先端部90aが仮想空間に配置された場合の座標(Xv_90a,Yv_90a,Zv_90a)が演算される。
【0056】
次に、人差し指の先端部90aの仮想空間の座標と、オブジェクト80の複数の部位81のいずれかの部位(この例ではオブジェクトの部位81aの仮想空間の座標(Xv_81a,Yv_81a,Zv_81a))とが一致したときに、重畳部分を検出したと判定する(S230;Yes)。このとき、オブジェクトの部位81aは被操作部位として設定される(S240)。なお、重畳部分が検出されないときは(S230;No)、上記重畳部分検出処理がループして行われる。
【0057】
重畳部分を検出したとき、通知部170は、操作体と被操作部位とが重畳していることを通知する(S250)。この例では、端末10のスピーカー部18から発せられる音情報を用いて通知する。以上により、第1オブジェクト姿勢検出処理S200は終了となる。
【0058】
(1-3-3.第2オブジェクト姿勢検出処理S300)
図10は、第2オブジェクト姿勢検出処理S300のフロー図である。第2オブジェクト姿勢検出処理S300は、第1オブジェクト姿勢検出処理S200の終了をきっかけに開始される。
【0059】
第2オブジェクト姿勢検出処理S300において、はじめに、移動情報取得部180は、操作体の移動量を取得する(S310)。この例では、操作体(ユーザの手90の人差し指の先端部90a)の位置情報の変化に伴うオブジェクトの姿勢の追跡は、V-SLAM(Visual Simultaneous Localization and Mapping)法により行われる。人差し指の先端部90aの位置(座標)は、センサ部16および撮像部17を用いて計測・演算処理され、移動情報取得部180において取得される。センサ部16および撮像部17には、イメージセンサ、位置センサ、距離センサ、変位センサ、またはその他位置検出可能な素子が用いられる。
【0060】
図11(A)は、初期値(移動前)、時間t1後(移動後)の操作体(人差し指の先端部90a)の位置(座標)、および移動前後の座標より求められる人差し指の先端部90aの移動量を示すデータ構造である。移動前は、操作体と被操作部位とが重畳したことを検出した時を示す。
【0061】
次に、取得された操作体の移動量をもとに、オブジェクト座標変更部190は、オブジェクト80のうち移動対象部位である被操作部位(部位81a)の座標を変更し、記録する(S320)。図11(B)は、初期値(移動前)、時間t1後のオブジェクトの被操作部位(部位81a)の仮想空間上の座標および表示部11における座標のデータ構造である。図11(B)に示すように、操作体(人差し指の先端部90a)の移動量に基づいて仮想空間におけるオブジェクト80の被操作部位(部位81a)の座標情報、および表示部11におけるオブジェクト80の被操作部位(部位81a)の座標情報が変更され、変更後の座標情報が記憶される(座標情報の書き換えがなされる)。
【0062】
図10に戻って説明する。このとき、オブジェクト表示部140は、重畳表示処理S100において移動後(時間t1後)の被操作部位の情報を用いて表示部11にオブジェクト80を表示する。図12は、表示部11に被操作部位の位置が変化したオブジェクト80を表示したユーザインターフェースである。図12に示すように、被操作部位(部位81a)は、図7で表示された位置から異なる部位(部位81b、肘関節に相当)を基準として移動する。つまり、操作体の動きに関する情報に基づいて、オブジェクトの複数の部位のうち一部の部位を移動することができる。上記処理は、操作体が移動する限り(S330;Yes)、繰り返し行われる。この例では、操作体の移動量の取得は、1秒あたり60回行われるため、オブジェクトの姿勢の変化が滑らかに表示される。端末10の移動が終了したとき(S330;No)、第2オブジェクト姿勢検出処理S300は、終了となる。
【0063】
上記に示した通り、本実施形態のオブジェクト姿勢制御プログラムを用いることにより、複数の部位を有するオブジェクトを、複雑な制御を行うことなく容易にオブジェクトの姿勢制御を行うことができる。
【0064】
<第2実施形態>
本実施形態では、第1実施形態と異なるオブジェクトの姿勢制御処理について説明する。具体的には、複数の部位が一つの端末の移動に基づいて移動する例について説明する。なお、第1と同様の構成および方法については、適宜省略する場合がある。
【0065】
(2-1.サーバおよびオブジェクト姿勢制御部100Aの構成)
図13は、オブジェクト姿勢制御システム1Aにおける、オブジェクト姿勢制御部100Aの機能ブロック図を示す。図22に示すように、オブジェクト姿勢制御部100Aは、撮像画像取得部110、マーカー検出部120、空間定義部130、オブジェクト表示部140、操作体検出部150、重畳部分検出部160、通知部170、移動情報取得部180、およびオブジェクト座標変更部190に加えて、第2操作体検出部195、第2重畳部分検出部200を含む。
【0066】
第2操作体検出部195は、撮像された画像に含まれる複数の対象物から操作体として検出された対象物とは異なる対象物を検出し、第2操作体として設定する機能を有する。第2重畳部分検出部200は、第2操作体と、オブジェクトが有する複数の部位のうち一部の部位とが重畳することを検出し、当該部位を第2被操作部位として設定する機能を有する。
【0067】
(2-2.オブジェクト姿勢制御処理)
図14に、オブジェクト姿勢制御部100Aにおけるオブジェクト姿勢制御プログラムによる命令に基づいた第1オブジェクト姿勢検出処理S200Aのフロー図を示す。図14に示すように、重畳部分の通知がなされた後(S250)、追加で操作体を設定するか判定する(S255)。上記判定は、所定の期間において操作体として設定された対象物以外に動いている対象物があるか否かに基づいてなされてもよいし、ユーザからの入力情報によりなされてもよい。また、表示部11に「新たな操作体を追加しますか?」と表示されるとともに、「はい」および「いいえ」のボタンが表示されてもよい。追加で設定しない場合(S255;No)、第1オブジェクト姿勢検出処理S200Aが終了となる。
【0068】
追加で設定すると判定された場合(S255;Yes)、第2操作体検出部195は、第2操作体となる対象物を検出する(S260)。この例では、ユーザの左手91が第2操作体として検出される。検出方法は、本発明の第1実施形態に記載した方法と同様の方法を用いることができる。このとき、ユーザの左手91のうちシート70に最も近い部分(より具体的には左手の人差し指の先端部91a)を操作体として設定してもよい(S265)。
【0069】
次に、第2重畳部分検出部200は、第2操作体とオブジェクト80の一部の部位との重畳部分(第2重畳部分)を検出する(S270)。第2重畳部分の検出方法には、本発明の第1実施形態の重畳部分の検出方法と同様の方法が用いられる。第2操作体がオブジェクト80の一部の部位81cと重畳したと判定される場合(S270;Yes)。このとき、オブジェクトの部位81cは第2被操作部位として設定される(S280)。なお、第2重畳部分が検出されないときは(S270;No)、上記第2重畳部分検出処理がループして行われる。
【0070】
第2重畳部分が検出されたのち、通知部170は、第2重畳を検出したことを通知してもよい(S290)。通知方法は、第1実施形態と同様の方法を用いることができる。以上により、第1オブジェクト姿勢検出処理S200Aが終了となる。
【0071】
図16は、第3オブジェクト制御処理S300Aのフロー図である。本実施形態において、操作体(ユーザの手90の人差し指の先端部90a)の移動に伴うオブジェクトの被操作部位(部位81a)の移動は第1実施形態と同様の方法で実現される。本実施形態の場合、図17に示すように、被操作部位(部位81a)が移動するのと同時に、操作体とは異なる第2操作体(ユーザの左手91の人差し指の先端部91a)の移動量に基づいて、部位81eを基準にして第2被操作部位(部位81c,足首の関節に相当)が移動するように被操作部位および第2被操作部位の座標変更が変更される(S320)。つまり、複数の操作体の動きに合わせて複数の被操作部位を動かし、オブジェクトの姿勢を制御することができる。
【0072】
なお、本実施形態では、2つの操作体を用いて、オブジェクトの姿勢を制御する例を示したが、これに限定されない。3つ以上の操作体を有する場合にも同様に適用することができる。
【0073】
なお、本発明の思想の範疇において、当業者であれば、各種の変更例および修正例に想到し得るものであり、それら変更例および修正例についても本発明の範囲に属するものと了解される。例えば、前述の各実施形態に対して、当業者が適宜、構成要素の追加、削除若しくは設計変更を行ったもの、又は、工程の追加、省略若しくは条件変更を行ったものも、本発明の要旨を備えている限り、本発明の範囲に含まれる。
【0074】
(変形例)
本発明の第1実施形態では、操作体の移動情報において、X座標、Y座標、Z座標を用いる例を示したが、これに限定されない。例えば、X座標、Y座標、Z座標だけではなく角度θを用いてもよい。この場合、X座標、Y座標、Z座標のいずれかが用いられなくてもよい。操作体の動きに合わせて仮想空間におけるオブジェクト80の被操作部位(部位81a)の情報、および表示部11におけるオブジェクト80の被操作部位(部位81a)の位置座標が変更され、変更後の位置座標の情報が記憶される(座標情報の書き換えがなされる)。これにより、オブジェクトの姿勢において、特にひねりの姿勢を制御することができる。
【0075】
また、本発明の第1実施形態では、操作体を検出、設定した後に重畳部分を検出し、被操作部位を設定する例を示したが、これに限定されない。例えば、対象物とオブジェクトとが重畳した段階で重畳する対象物を操作体として検出、設定し、オブジェクトの重畳部分を被操作部位として設定してもよい。
【0076】
また、本発明の第1実施形態では、主に人差し指の先端部90aがオブジェクトの一部の部位(部位81a)と重畳する例を示したが、これに限定されない。重畳部分検出部160は、複数の重畳部分を有する場合に、重畳したと検出してもよい。例えば、2点以上で重畳した場合、ユーザの指はオブジェクトをつまむ形状を有することができ、より自然にオブジェクトの姿勢を制御することができる。
【0077】
また、複数部分が重畳したと判定されたときに、通常のオブジェクトの姿勢制御とは異なる付加的な制御を設けてもよい。図18は、複数部分が重畳したと判定され、操作体が移動したときのユーザインターフェースの一例である。図18に示すように、この例では、人差し指の先端部90aおよび親指の先端部90bがオブジェクトの部位81(a)と重畳している。このとき、人差し指の先端部90aおよび親指の先端部90bの移動に合わせて、あらかじめ設定された条件に基づき、オブジェクト80の部位81aも移動し、さらにボーン82(82a)が伸長する。このように、通常のオブジェクトの姿勢制御とは異なる付加的な制御を行うことによりオブジェクトの姿勢を多様な形態で制御することができる。
【0078】
なお、部位81aに相当する部分を囲むように操作体を動作させて検出してもよいし、部位81aに相当する部分を複数の指で囲むようにして、検出してもよい。
【0079】
本発明の第1実施形態では、通知部170は、音情報を用いて通知する例を示したが、これに限定されない。例えば、通知部170は、重畳部分を検出したときに、端末10を振動させて通知してもよい。または、重畳部分を検出したときに、端末10が光を発して通知してもよい。または、重畳部分を検出したときに、文字情報を用いて通知してもよい。または、重畳部分を検出したときに、重畳部分の色を変更することにより強調表示して通知してもよい。また、通知部170は、必ずしも用いなくてもよい。
【0080】
なお、操作体の検出は、視差を用いる方法に限定されない。例えば、対象物の色または形状にもとづいて所定の条件を満たすものを操作体として検出してもよい。
【0081】
また、所定の速度を超えて移動する対象物を操作体として検出してもよい。また、対象物が仮想空間に配置された場合の仮想空間の座標とオブジェクトとの仮想空間の座標によって導出される距離が所定の距離よりも小さくなった時に、その対象物を操作体として検出してもよい。
【0082】
本発明の第1実施形態では、撮像された画像と、仮想空間のオブジェクトとをマーカーベース位置合わせ法により位置合わせされ、重畳表示された例を示したが、これに限定されない。オブジェクトを含む仮想空間と、撮像画像との位置合わせの方法として、マーカーベース位置合わせ手法のほかに、特定のマーカーを用いない自然特徴ベース位置合わせ手法、モデルベース位置合わせ手法などのビジョンベース位置合わせ手法、センサを用いたセンサベース位置合わせ手法などを適宜用いてもよい。
【0083】
また、本発明の第1実施形態では、拡張現実を用いてオブジェクトを表示する例を示したが、これに限定さない。本発明の一実施形態は、オブジェクトの座標が特定できれば、拡張現実以外にも混合現実(MR:Mixed Reality)などに適用することも可能である。
【0084】
また、本発明の第1実施形態では、スマートフォンのような形態を有する平面状の端末の表示部に表示する例を示したが、これに限定されない。例えば、表示するための端末としてゴーグル型の端末を用いてもよい。また、このとき、撮像部17には、2眼方式のカメラ(ステレオカメラ)が用いられてもよい。これにより、表示される画像をより立体的に表示することができる。
【符号の説明】
【0085】
1・・・オブジェクト姿勢制御システム,10・・・端末,11・・・表示部,12・・・制御部,13・・・記憶部,14・・・操作部,15・・・通信部,16・・・センサ部,17・・・撮像部,18・・・スピーカー部,20・・・サーバ,21・・・通信部,22・・・記憶部,23・・・制御部,24・・・表示部,50・・・ネットワーク,60・・・テーブル,70・・・シート,75・・・マーカー,80・・・オブジェクト,81・・・部位,82・・・ボーン,90・・・手,90a・・・先端部,90b・・・先端部,91・・・手,91a・・・先端部,100・・・オブジェクト姿勢制御部,110・・・撮像画像取得部,120・・・マーカー検出部,130・・・空間定義部,140・・・オブジェクト表示部,150・・・操作体検出部,160・・・重畳部分検出部,170・・・通知部,180・・・移動情報取得部,190・・・オブジェクト座標変更部,195・・・第2操作体検出部,200・・・第2重畳部分検出部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18