以下、図面に基づいて実施形態を説明する。
<情報処理システムの概略構成例>
図1は、情報処理システムの概略構成の一例を示す図である。図1に示す情報処理システム10は、サーバ11と、情報処理装置の一例としての1又は複数の端末装置12−1〜12−n(以下、必要に応じて「端末装置12」と総称する)とを有する。サーバ11及び端末装置12は、例えば通信ネットワーク13によりデータの送受信が可能な状態で接続されている。
サーバ11は、基準物の一例としてのARマーカや、各ARマーカの識別情報(例えば、マーカID)に対応付けて登録された1又は複数のARコンテンツ等を管理する。ARマーカとは、例えばARコンテンツ等の各種コンテンツ情報の内容や表示する位置等を指定するための標識となるものである。ARマーカは、例えば二次元コード等のように、所定の領域内に所定の模様や文字パターン等が形成された画像や物体等であるが、これに限定されるものではない。
基準物の一例としては、ARマーカに限定されるものではなく、例えば壁掛け時計や絵画、壁紙、置物等の実物体であってもよい。この場合、基準物の認識は、例えば実物体の形状や色、模様等に対応する特徴情報と、予め設定された基準物毎の特徴情報とを比較して、実物体を特定することで、その実物体に対応する識別情報(ID)を上述したマーカIDとして用いることができる。
ARコンテンツとは、例えば現実空間に対応する三次元の仮想空間上に配置された物体のモデルデータ等であり、例えば端末装置12で撮影された画像に重畳して表示される重畳用の画像データ(オブジェクト情報)である。
また、ARコンテンツは、例えば撮影画像中に含まれるARマーカの大きさや形状(歪み)等から推定されるARマーカとカメラ等の撮像部との位置関係を用いて、ARマーカを基準とした相対座標(マーカ座標系)で設定された位置に表示される。また、ARコンテンツは、上述した位置関係を用いて、ARマーカの撮影方向に対応する向きで表示される。位置関係とは、ARマーカと撮影位置との距離及び撮影方向のうち少なくとも1つを含むが、これに限定されるものでない。マーカ座標系は、例えば三次元空間座標系(X,Y,Z)であるが、これに限定されるものはなく、二次元平面座標系(X,Y)でもよい。
本実施形態のARコンテンツは、マーカID等に対応付けられており、例えばテキスト、アイコン、アニメーション、マーク、模様、画像、映像等の様々な形態が含まれる。また、ARコンテンツは、表示出力されるものに限定されず、例えば音声等の情報であってもよい。
サーバ11は、例えば端末装置12におけるARコンテンツの設定処理(オーサリング処理)により、端末装置12から得られるARマーカに関する情報(例えば、マーカID、ARマーカの位置情報等)と、ARマーカの位置を基準とする相対位置に設定されたARコンテンツとを登録する。また、サーバ11は、端末装置12におけるオーサリング処理により、端末装置12からマーカIDに対応する1又は複数のARコンテンツの設定情報を取得した場合に、そのARコンテンツ情報(例えば、ARコンテンツID、座標値、回転角度、拡縮率、ARコンテンツ格納先情報(テクスチャパス)等)を登録して管理する。
また、サーバ11は、端末装置12から、ARコンテンツの取得要求等を受信した場合には、端末装置12から送信されたマーカIDに対応させて、予め登録されたARコンテンツに関する情報を抽出し、抽出した情報を端末装置12に送信する。
サーバ11は、例えばPersonal Computer(PC)等でもよいが、これに限定されるものではなく、例えば一以上の処理装置を有するクラウドコンピューティングにより構成されるクラウドサーバ等であってもよい。
端末装置12は、端末装置12に設けられた表示部等に表示される入力画像にARマーカが含まれている場合に、そのARマーカに対応するARコンテンツを入力画像に重畳して表示する。例えば、端末装置12は、表示される入力画像からARマーカの領域を抽出し、抽出した領域の大きさ及び形状に基づき、画像撮影位置と対象物の位置関係を示す情報を生成する。また、端末装置12は、表示部に表示される入力画像に対し、ARマーカに対するマーカ認識により得られるマーカIDに対応させて、ARマーカの撮影位置を基準とした相対的な位置にARコンテンツを配置して表示する。端末装置12は、ARコンテンツを配置する際に、配置角度(回転角度)や基本サイズに対する拡縮率等を設定してもよい。
また、端末装置12は、上述した位置関係を示す情報を用いて、予め設定された条件に応じたARコンテンツの表示精度をユーザに通知する。表示精度の通知例としては、例えば上述した位置関係と、所定の条件(例えば、予め設定された表示精度判定条件)とを比較し、その比較結果に応じて予め設定された複数の精度レベル(例えば、「高」、「中」、「低」)のうち、何れかの情報を画面表示するが、これに限定されるものではない。例えば、10段階の区分けされた精度レベルのうち、所定の条件に応じて決定される1つの精度レベルを表示したり、ARコンテンツを精度よく表示できないと判定された場合に、その旨の表示を行ってもよい。
また、端末装置12は、撮影により取得又は外部装置から取得した画像に含まれるARマーカに対応させて、取得した入力画像に重畳表示させるARコンテンツを設定する処理(以下、必要に応じて「オーサリング処理」という)を行ってもよい。その場合、端末装置12は、マーカIDに対応付けて設定されたARコンテンツ、配置した位置情報(座標位置)、回転角度、及び各拡縮率等の情報を、サーバ11に送信し、登録要求を行う。
上述した情報処理システム10では、端末装置12側で、ARマーカを含む画像等を取得して、画像中のARマーカに対応するARコンテンツの表示制御や表示精度の通知に関する情報を生成したが、これに限定されるものではない。例えば、サーバ11が、端末装置12からマーカIDや端末装置12の位置情報、ARマーカを含む画像等を受信して、サーバ11側でマーカIDに対応するARコンテンツの表示制御や表示精度の通知に関する情報を生成して、端末装置12に送信してもよい。その場合、サーバ11は、例えばARマーカを含む画像に対してARコンテンツや表示精度を重畳表示した画像を生成し、生成した画像を端末装置12に送信する。端末装置12は、サーバ11からARコンテンツや表示精度を重畳表示した画像を取得して画面に表示する。
端末装置12は、例えばタブレット端末やスマートフォン、Personal Digital Assistants(PDA)、ノート型PC等であるが、これに限定されるものではなく、例えばゲーム機器、携帯電話等の通信端末であってもよい。
通信ネットワーク13は、例えばインターネットやLocal Area Network(LAN)等であるが、これに限定されるものではない。また、通信ネットワーク13は、有線でも無線でもよく、これらの組み合わせでもよい。
図1に示す情報処理システム10において、サーバ11と端末装置12とは、1対nの構成となっているが、これに限定されるものではなく、例えば複数のサーバを有していてもよい。
<サーバ11の機能構成の一例>
次に、上述したサーバ11の機能構成例について図を用いて説明する。図2は、サーバの機能構成の一例を示す図である。サーバ11は、通信部21と、記憶部22と、登録部23と、抽出部24と、制御部25とを有する。
通信部21は、通信ネットワーク13を介して端末装置12や他の装置等との間でデータの送受信を行う。通信部21は、登録されたARマーカの識別情報(例えば、マーカID)等を受信し、対応するARコンテンツ情報(例えば座標値、回転角度、拡縮率、コンテンツの情報(例えば、ファイル名)等)を記憶部22等から取得して、端末装置12に送信する。また、通信部21は、例えば端末装置12からのARコンテンツ等の登録要求や、ARマーカに対応付けて登録するARコンテンツ情報等を受信してもよい。
記憶部22は、本実施形態における表示制御処理に必要な各種情報を記憶する。記憶部22は、例えばマーカID管理テーブル、ARコンテンツ管理テーブル、表示パターン管理テーブル、表示パターンテーブル、表示精度管理テーブル等を記憶する。記憶部22に記憶される情報は、これに限定されるものではない。また、端末装置12に記憶されている情報については、記憶部22に記憶してなくてもよい。
上述した各情報は、ユーザ識別情報(ユーザID)や各ユーザが属するグループ識別情報(グループID)等により管理されていてもよい。これにより、各ユーザや各グループ単位で異なる同一のマーカIDに対し、異なるARコンテンツを管理することができる。記憶部22に記憶される情報は、これに限定されるものではない。
登録部23は、端末装置12や外部装置、又はサーバ11から得られたARコンテンツ等の各種情報等を登録する。また、登録部23は、表示精度の判定に用いられる表示精度管理テーブルの登録や、表示精度に応じたARコンテンツやARマーカに対する表示パターンの設定(表示パターンテーブル)の登録等を行う。なお、上述した各種情報の登録は、オーサリング時に端末装置12の使用者等が行ってもよく、またサーバ11の管理者等が事前に登録していてもよい。登録部23は、既に登録されているARコンテンツ情報を端末装置12からの指示により変更や更新、削除することができる。
抽出部24は、端末装置12から得られたARコンテンツの取得要求に対し、識別情報(マーカID)に基づいて記憶部22を参照し、ARコンテンツ情報や表示精度管理情報に含まれる表示精度判定条件、表示パターン情報等を抽出する。抽出部24により抽出されたARコンテンツ情報や表示精度判定条件、表示パターン等は、通信部21によりマーカIDを送信した端末装置12に送信される。
なお、抽出部24は、端末装置12からマーカIDだけでなく、端末装置12の位置情報や撮影画像等を取得した場合には、マーカIDに対応付けられたARコンテンツを抽出し、抽出したARコンテンツや、表示精度判定条件により判定された表示精度に関する情報を撮影画像に重畳し、重畳した画像を端末装置12に送信してもよい。
制御部25は、サーバ11内の各構成全体を制御する。制御部25は、例えば通信部21による各種情報の送受信、記憶部22によるデータの記憶、登録部23によるARコンテンツ情報や表示精度判定条件、表示パターン等の登録、抽出部24によるARコンテンツ情報や表示精度判定条件、表示パターンの抽出等の処理を行う。制御部25が行う制御内容については、これに限定されるものではなく、例えばエラー処理等を行ってもよい。
<端末装置12の機能構成の一例>
次に、上述した端末装置12の機能構成例について、図を用いて説明する。図3は、端末装置の機能構成の一例を示す図である。端末装置12は、通信部31と、撮像部32と、記憶部33と、表示部34と、入力部35と、認識部36と、取得部37と、判定部38と、コンテンツ生成部39と、画像生成部40と、制御部41とを有する。
通信部31は、通信ネットワーク13を介してサーバ11や他の装置等との間でデータの送受信を行う。通信部31は、例えば撮像部32等を用いて撮影された画像に含まれるARマーカから、認識部36によるマーカ認識により認識されたマーカIDをサーバ11に送信する。通信部31は、送信したマーカIDに対応するARコンテンツ情報や表示精度判定条件、表示パターン等を受信する。
また、通信部31は、例えばオーサリング処理において、入力画像に含まれるARマーカに対応付けて入力画像の所定の位置に重畳表示するARコンテンツ情報をサーバ11等に送信してもよい。入力画像は、撮像部32により撮影された画像でもよく、通信ネットワーク13を介して外部から取得した画像でもよい。
撮像部32は、静止画又は予め設定されたフレーム間隔で画像(動画像)を撮影する。撮像部32は、撮像した画像を制御部41へ出力したり、記憶部33に記憶させる。撮像部32は、例えばデジタルカメラ等であるが、これに限定されるものではない。
記憶部33は、本実施形態における表示制御に必要な各種情報を記憶する。記憶部33は、例えばマーカID管理テーブル、ARコンテンツ管理テーブル、表示パターン管理テーブル、表示パターンテーブル、表示精度管理テーブル等を記憶する。記憶部22に記憶される情報は、これに限定されるものではない。なお、これらの情報は、端末装置12が設定した情報だけでなく、サーバ11から取得した情報も含まれる。また、設定時の情報は、サーバ11へ送信した後に削除されてもよい。
表示部34は、撮像部32により撮影された画像(撮影画像)や通信ネットワーク13を介して外部より取得した画像(入力画像)等を表示する。表示部34は、表示される入力画像にARマーカが含まれている場合、そのARマーカに対応するARコンテンツ(重畳用の画像データ等)を所定の位置に重畳して表示する。ARコンテンツの一例としては、例えばコンテンツ生成部39により生成されたARマーカに対応付けて予め設定された家具、家電、車両等の三次元仮想物体等があるが、これに限定されるものではない。また、表示部34は、画像生成部40により生成された重畳画像や、本実施形態における処理の開始や終了をユーザが選択するためのボタン、その他各種の指示入力ボタン等を表示する。表示部34は、ディスプレイやモニタ等であるが、これに限定されるものではない。
入力部35は、ユーザ等からの操作内容を入力する。例えば、表示部34がタッチパネル等である場合には、入力部35は、タッチパネル上のタッチ位置座標を取得する。また、入力部35は、タッチパネルによるマルチタッチインターフェースにより、シングルタップやダブルタップ、ロングタップ、スワイプ、フリック、ピンチイン、ピンチアウトといったユーザ操作を入力する。端末装置12がキーボードや操作ボタン等を有する場合には、入力部35は、ユーザが選択したキーボードや操作ボタンに対応する情報を入力する。
認識部36は、入力画像(撮影画像や外部から取得した画像)に含まれるARマーカ等を認識する。例えば、認識部36は、撮像部32により得られる撮影画像に対して画像認識を行い、予め設定された1又は複数のARマーカ画像とのマッチングを行ってARマーカの有無を判断してARマーカを抽出する。また、認識部36は、ARマーカを抽出した場合に、予め設定されたARマーカに対応する識別情報を取得する。
また、認識部36は、抽出したARマーカの領域の大きさや形状(歪み)を認識する。マーカ領域の大きさの一例としては、例えば、画像中に含まれるARマーカ領域の総画素数(ピクセル(pix)数)であるが、これに限定されるものではない。また、形状の一例としては、例えば予め正方形等の所定の形状であるARマーカが画像中におけるARマーカの表示でどの程度歪んでいるかを示すマーカ回転角等であるが、これに限定されるものではない。
上述したARマーカの認識手法については、これに限定されるものではなく、例えば既存のマーカ認識エンジンやマーカリーダ等を用いてARマーカの形状や模様等からマーカIDを直接読み取ってもよい。なお、本実施形態では、複数の異なるARマーカから同じマーカIDが得られる場合や、1つのARマーカから複数のマーカIDが得られる場合がある。
なお、本実施形態における基準物は、ARマーカに限定されるものではなく、例えば入力画像に含まれる実物体(例えば、壁掛け時計や配管、絵画等)を基準物としてもよい。この場合、認識部36は、取得画像から実物体の特徴情報を抽出し、抽出した特徴情報と、予め登録された特徴情報とを比較し、同一又は類似度が所定値以上の特徴情報から物体を特定して、対応する識別情報を取得する。特徴情報とは、物体のエッジ情報や輝度情報等の特徴量に基づいて取得することができ、お互いの特徴情報がどの程度一致しているかに応じて物体を特定することができるが、これに限定されるものではない。
なお、認識部36は、例えば予めARマーカ又は物体の形状を規定したテンプレートを記憶部33に記憶しておき、そのテンプレートとマッチングを行うことでARマーカ又は物体を認識してもよい。
取得部37は、認識部36により読み取られたARマーカに対応するマーカIDをサーバ11に送信し、マーカIDに対応付けられたARコンテンツ情報の有無に関する情報を取得する。また、取得部37は、マーカIDに対応付けられたARコンテンツ情報がある場合には、そのARコンテンツ情報、表示精度判定条件、表示パターン等を取得する。また、取得部37は、最初に記憶部33内にマーカIDに対応する上述したARコンテンツ情報、表示精度判定情報、表示パターンがあるか否かを判断し、記憶部33に記憶されていない場合に、サーバ11に問い合わせを行い、各種情報を取得してもよい。
また、取得部37は、制御部41によりARコンテンツを表示制御するARアプリケーションが起動された場合に、サーバ11に予め設定されているARコンテンツ情報、表示精度判定条件、表示パターン等の情報を取得してもよい。
判定部38は、認識部36により認識したARマーカの領域の大きさや形状から画像撮影位置を推測し、推測した画像撮影位置とARマーカの位置関係を示す情報を生成する。位置関係を示す情報とは、例えばARマーカと撮影位置との距離及び撮影方向のうち、少なくとも1つであるが、これに限定されるものではない。
また、判定部38は、位置関係を示す情報と、所定の条件(例えば、表示精度判定条件)とを比較し、その比較結果に応じた表示精度を判定する。例えば、判定部38は、予め表示精度を段階的なレベル(例えば、「高」、「中」、「低」)で区別するための判定条件を設定しておき、位置関係を示す情報が、どの判定条件を満たすかに応じて表示精度を判定する。また、判定部38は、例えば表示精度が高いと判断されるための表示精度判定条件を設定しておき、その条件を満たさない場合に、ARコンテンツが精度よく表示されていない(ARコンテンツの大きさや向きに誤差が生じている可能性がある)と判定してもよい。
なお、判定部38における判定は、定期的、又は端末装置12の撮影位置が所定の距離以上移動した場合等の所定のタイミングで、上述した表示精度の判定を行う。
コンテンツ生成部39は、表示部34に表示される入力画像に対してマーカIDに対応するコンテンツ情報を抽出する。また、コンテンツ生成部39は、抽出したコンテンツ情報を用いて、ARマーカと入力画像を撮影したカメラ(例えば、撮像部32等)との位置関係から、画像に重畳するARコンテンツの配置(位置、向き、大きさ等)を決定する。
また、コンテンツ生成部39は、判定部38により得られた表示精度の判定結果に対応する表示パターンで表示する表示精度を通知するためのコンテンツを生成する。表示パターンは、文字や色、記号、模様、点滅のタイミング等の情報であり、これらの情報を画面上に表示させることで、表示精度をユーザに通知させる。
また、コンテンツ生成部39は、例えばオーサリング処理等において、ARコンテンツの位置情報、及びARコンテンツを形成する表示データと、マーカIDとを対応付けてARコンテンツ情報を生成する。例えば、コンテンツ生成部39は、ユーザが画面上で指定した点を、ARマーカの位置を基準とした座標系(マーカ座標系)に変換することで、その変換後の座標値をARマーカに基づく相対位置情報とすることができるが、これに限定されるものではない。コンテンツ生成部39は、生成したコンテンツ情報をマーカIDと対応づけて記憶部33に記憶してもよく、サーバ11に登録要求を行ってもよい。
画像生成部40は、コンテンツ生成部39により生成されたARコンテンツを画像中の決定された位置に配置して重畳画像を生成する。また、画像生成部40は、コンテンツ生成部39により得られる表示精度を通知するためのコンテンツを画像上に表示する。なお、表示精度の通知は、ARコンテンツが精度よく表示できていないと判定された場合に表示させてもよく、また、ARコンテンツが精度よくできていると判定された場合に表示させてもよい。
また、画像生成部40は、表示精度の通知を画像中のARマーカの位置に対応づけて相対的な位置に表示してもよく、画面の左上等のように、画面上の固定位置に表示してもよい。また、画像生成部40は、ARコンテンツの表示位置と、表示精度を通知するためのコンテンツの表示位置とが重なった場合には、一方のコンテンツ(例えば、表示精度を通知するためのコンテンツ)の表示位置を移動させてもよく、重ねて表示させてもよい。重ねて表示する場合、画像生成部40は、各コンテンツが画面上で把握できるように、コンテンツを透過させて重畳表示を行ってもよい。画像生成部40は、重畳画像以外にも、例えば重畳前の撮影画像や、設定画面等、種々の画像を生成する。
制御部41は、端末装置12が有する各構成における処理全体を制御する。制御部41は、撮像部32による画像撮影、表示部34による各種情報の画面表示、入力部35による各種入力情報の受け付け等の処理を行う。また、制御部41は、認識部36による撮影画像に含まれるARマーカ認識、取得部37によるARコンテンツ情報、表示精度判定条件、表示パターン等の取得、判定部38による表示精度判定、コンテンツ生成部39によるコンテンツの生成等の処理を行う。また、制御部41は、画像生成部40による重畳画像の生成等の処理を行う。制御部41における制御内容は、これに限定されるものではなく、例えばエラー処理等を行ってもよい。また、制御部41は、本実施形態における表示制御処理を実行するARアプリケーションの起動や終了を制御する。
<サーバ11のハードウェア構成例>
次に、サーバ11のハードウェア構成例について、図を用いて説明する。図4は、サーバのハードウェア構成の一例を示す図である。図4の例において、サーバ11は、入力装置51と、出力装置52と、ドライブ装置53と、補助記憶装置54と、主記憶装置55と、Central Processing Unit(CPU)56と、ネットワーク接続装置57とを有し、これらはシステムバスBで相互に接続されている。
入力装置51は、ユーザ等が操作するキーボード及びマウス等のポインティングデバイスやマイクロフォン等の音声入力デバイスを有しており、ユーザ等からのプログラムの実行指示、各種操作情報、ソフトウェア等を起動するための情報等の入力を受け付ける。
出力装置52は、本実施形態における処理を行うためのコンピュータ本体(サーバ11)を操作するのに必要な各種ウィンドウやデータ等を表示するディスプレイ等を有する。出力装置52は、CPU56が有する制御プログラムによりプログラムの実行経過や結果等を表示することができる。
ここで、本実施形態において、例えばコンピュータ本体にインストールされる実行プログラムは、記録媒体58等により提供される。記録媒体58は、ドライブ装置53にセット可能である。CPU56からの制御信号に基づき、記録媒体58に格納された実行プログラムが、記録媒体58からドライブ装置53を介して補助記憶装置54にインストールされる。
補助記憶装置54は、例えばHard Disk Drive(HDD)やSolid State Drive(SSD)等のストレージ手段等である。補助記憶装置54は、CPU56からの制御信号に基づき、本実施形態における実行プログラム(情報処理(表示制御)プログラム)や、コンピュータに設けられた制御プログラム等を記憶し、必要に応じて入出力を行う。補助記憶装置54は、CPU56からの制御信号等に基づいて、記憶された各情報から必要な情報を読み出したり、書き込むことができる。
主記憶装置55は、CPU56により補助記憶装置54から読み出された実行プログラム等を格納する。主記憶装置55は、Read Only Memory(ROM)やRandom Access Memory(RAM)等である。
CPU56は、Operating System(OS)等の制御プログラム、及び主記憶装置55に格納されている実行プログラムに基づいて、各種演算や各ハードウェア構成部とのデータの入出力等、コンピュータ全体の処理を制御して各処理を実現する。プログラムの実行中に必要な各種情報等は、補助記憶装置54から取得することができ、また実行結果等を格納することもできる。
具体的には、CPU56は、例えば入力装置51から得られるプログラムの実行指示等に基づき、補助記憶装置54にインストールされたプログラムを実行させることにより、主記憶装置55上でプログラムに対応する処理を行う。例えば、CPU56は、情報処理プログラムを実行させることで、上述した登録部23によるARコンテンツ情報等の登録、抽出部24によるARコンテンツ情報等の抽出、制御部25による表示制御等の処理を行う。CPU56における処理内容は、上述した内容に限定されるものではない。CPU56により実行された内容は、必要に応じて補助記憶装置54等に記憶される。
ネットワーク接続装置57は、上述した通信ネットワーク13を介して、端末装置12や他の外部装置との通信を行う。ネットワーク接続装置57は、CPU56からの制御信号に基づき、通信ネットワーク13等と接続することにより、実行プログラムやソフトウェア、設定情報等を外部装置等から取得する。また、ネットワーク接続装置57は、プログラムを実行することで得られた実行結果を端末装置12等に提供したり、本実施形態における実行プログラム自体を外部装置等に提供してもよい。
記録媒体58は、上述したように実行プログラム等が格納されたコンピュータで読み取り可能な記録媒体である。記録媒体58は、例えばフラッシュメモリ等の半導体メモリやCD−ROM、DVD等の可搬型の記録媒体であるが、これに限定されるものではない。
図4に示すハードウェア構成に実行プログラム(例えば、情報処理プログラム等)をインストールすることで、ハードウェア資源とソフトウェアとが協働して本実施形態における表示制御処理等を実現することができる。
<端末装置12のハードウェア構成例>
次に、端末装置12のハードウェア構成例について図を用いて説明する。図5は、端末装置のハードウェア構成の一例を示す図である。図5の例において、端末装置12は、マイクロフォン(以下、「マイク」という)61と、スピーカ62と、表示部63と、操作部64と、センサ部65と、電力部66と、通信部67と、カメラ68と、補助記憶装置69と、主記憶装置70と、CPU71と、ドライブ装置72とを有し、これらはシステムバスBで相互に接続されている。
マイク61は、ユーザが発した音声や、その他の音を入力する。スピーカ62は、音データや着信音等を出力したり、通話時における相手先の音声を出力する。マイク61及びスピーカ62は、例えば、通話機能等により通話相手と会話するとき等に用いることができるが、これに限定されるものではなく、音声による情報の入出力に用いることができる。
表示部63は、ユーザに対してOSや各種アプリケーションで設定された画面を表示する。表示部63は、例えば上述した表示部34に対応している。表示部63は、画面上に撮影画像や、ARコンテンツ、表示精度を通知するためのコンテンツが重畳された重畳画像、各種設定画面等を表示することができる。
表示部63は、例えばタッチパネルディスプレイ等でもよく、その場合には表示部63は、入出力部としての機能を有する。表示部63は、例えばLiquid Crystal Display(LCD)や有機Electro Luminescence(EL)等のディスプレイである。
操作部64は、表示部63の画面に表示された操作ボタンや端末装置12の外部に設けられた操作ボタン等である。操作ボタンは、例えば電源ボタンや音量調整ボタンでもよく、所定の順番で配列された文字入力用の操作キー等でもよい。ユーザは、例えば表示部63の画面上で所定の操作を行ったり、上述した操作ボタンを押すことで、表示部63により画面上のタッチ位置が検出される。
センサ部65は、端末装置12のある時点又は継続的な動作を検出する。例えば、センサ部65は、端末装置12の位置、傾き角度、加速度、方向等を検出するが、これに限定されるものではない。なお、センサ部65としては、例えば傾きセンサや加速度センサ、ジャイロセンサ、Global Positioning System(GPS)等であるが、これに限定されるものではない。
電力部66は、端末装置12の各構成に対して電力を供給する。電力部66は、例えばバッテリ等の内部電源であるが、これに限定されるものではない。電力部66は、電力量を常時又は所定の時間間隔で検出し、電力量の残量等を監視することもできる。
通信部67は、例えばアンテナ等を用いて基地局からの無線信号(通信データ)を受信したり、アンテナを介して無線信号を基地局に送信する通信データの送受信部である。通信部67により、通信ネットワーク13を介して基地局等からサーバ11とデータの送受信を行うことができる。
また、通信部67は、例えば赤外線通信やWi−Fi(登録商標)、Bluetooth(登録商標)等の通信手法を用いて、他の端末装置12等のコンピュータと近距離通信を行うことができる。
カメラ68は、端末装置12に内蔵された撮像装置である。カメラ68は、例えば上述した撮像部32に対応している。カメラ68は、予め設定された画角に対応する画像を取得する。カメラ68は、静止画像を取得してもよく、また所定のフレームレートで連続的に撮影した動画像(映像)を取得してもよい。
補助記憶装置69は、例えばHDDやSSD等のストレージ手段である。補助記憶装置69は、各種のプログラム等を記憶し、必要に応じてデータの入出力を行う。
主記憶装置70は、CPU71からの指示により補助記憶装置69から読み出された実行プログラム等を格納したり、プログラム実行中に得られる各種情報等を記憶する。主記憶装置70は、例えばROMやRAM等であるが、これに限定されるものではない。
CPU71は、OS等の制御プログラム、及び主記憶装置70に格納されている実行プログラムに基づいて、各種演算や各ハードウェア構成部とのデータの入出力等、コンピュータ全体の処理を制御することで、表示制御における各処理を実現する。
具体的には、CPU71は、例えば操作部64等から得られるプログラムの実行指示等に基づき、補助記憶装置69にインストールされたプログラムを実行させることにより、主記憶装置70上でプログラムに対応する処理を行う。例えば、CPU71は、情報処理プログラムを実行させることで、上述した入力部35による各種情報の受け付け、認識部36によるARマーカ等の基準物の認識等の処理を行う。また、CPU71は、取得部37による特徴情報の取得、判定部38による表示精度の判定、コンテンツ生成部39によるARコンテンツの生成、画像生成部40による重畳画像の生成等の処理を行う。CPU71における処理内容は、上述した内容に限定されるものではない。CPU71により実行された内容は、必要に応じて補助記憶装置69等に記憶される。
ドライブ装置72は、例えば記録媒体73等を着脱自在にセットすることができ、セットした記録媒体73に記録された各種情報を読み込んだり、所定の情報を記録媒体73に書き込むことができる。ドライブ装置72は、例えば媒体装填スロット等であるが、これに限定されるものではない。
記録媒体73は、上述したように実行プログラム等を格納するコンピュータで読み取り可能な記録媒体である。記録媒体73は、例えばフラッシュメモリ等の半導体メモリであってもよい。また、記録媒体73は、Universal Serial Bus(USB)メモリ等の可搬型記録媒体であってもよいが、これに限定されるものではない。
本実施形態では、上述したコンピュータ本体のハードウェア構成に実行プログラム(例えば、情報処理プログラム等)をインストールすることで、ハードウェア資源とソフトウェアとが協働して本実施形態における表示制御処理等を実現することができる。
また、上述した表示制御処理に対応する情報処理プログラムは、ARアプリケーションとして、例えば装置上で常駐している状態であってもよく、起動指示により起動させてもよい。
<データ例>
次に、本実施形態で適用されるデータ例について、図を用いて説明する。図6は、本実施形態におけるデータ例を示す図である。図6(A)は、マーカ管理テーブルの一例を示す。図6(B)は、ARコンテンツ管理テーブルの一例を示す。図6(C)は、表示パターン管理テーブルの一例を示す。図6(D)は、表示パターンテーブルの一例を示す。図6(E)は、表示精度管理テーブルの一例を示す。
図6(A)〜(E)に示すデータ例は、例えば予めサーバ11に登録され、端末装置12からの取得要求に応じて取得(ダウンロード)してもよく、予め端末装置12に記憶されていてもよい。また、図6(A)、(B)のテーブルは、オーサリング処理において、得られる情報であり、図6(C)〜(E)は、事前に設定されARコンテンツの表示制御時に利用される情報である。
図6(A)のマーカ管理テーブルの項目としては、例えば「マーカID」と、「ARコンテンツID」とを有するが、これに限定されるものではない。マーカ管理テーブルは、マーカIDに対応するARコンテンツIDを設定する。なお、マーカIDには、1又は複数のARコンテンツIDを対応付けることができる。例えばマーカID「3」には、ARコンテンツID「2」,「4」,「5」が対応付けられている。
図6(B)のARコンテンツ管理テーブルの項目としては、例えば「ARコンテンツID」、「座標値」、「回転角度」、「拡縮率」、「テクスチャパス」等を有するがこれに限定されるものではない。座標値は、マーカー座標系(ARマーカの中心を原点とした相対座標系)におけるARコンテンツの位置情報(座標値)を示す情報であるが、座標値の値はこれに限定されるものではない。
回転角度は、ARコンテンツが予め設定された基本角度から三次元方向(x,y,z)にどの程度傾いているかを示す情報である。拡縮率は、各ARコンテンツが予め設定された大きさを基準に三次元方向にどの程度拡大又は縮小しているかを示す情報である。回転角度や拡縮率は、オーサリング処理によりユーザが設定してもよく、また、取得画像におけるARマーカ領域の大きさ(距離)や形状(角度)に応じた値が設定されてもよい。
テクスチャパスは、ARコンテンツとして表示させるイメージファイル(画像データ)や映像データ等の格納先(パス)情報である。テクスチャパスは、例えばサーバ11以外の装置が指定されていてもよく、その場合には必要に応じて格納先からARコンテンツを取得することができる。
ARコンテンツのデータフォーマットは、PNGやJPG等の画像データに限定されるものではなく、例えばGIFやTIFF、AVI、WAV、MPEG等でもよい。また、ARコンテンツは、画像や映像に限定されるものではなく、音声データでもよく、その場合には対応する音声データがテクスチャパスに格納される。
図6(C)に示す表示パターン管理テーブルの項目としては、例えば「表示パターンID」、「表示精度判定条件ID」等であるが、これに限定されるものではない。表示パターン管理テーブルは、予め設定された各表示パターンと、各表示精度判定条件とが対応づけられている。これにより、判定部38により判定された表示精度の種類(表示精度判定条件ID)に応じて表示パターンが決定され、決定された表示パターンで表示精度が画面表示され、ユーザに通知される。
図6(D)に示す表示パターンテーブルの項目としては、例えば「表示パターンID」、「表示精度」「表示色」等があるが、これに限定されるものではなく、例えばARコンテンツを点滅表示する際の点滅間隔のタイミング等の情報を含んでいてもよい。図6(D)に示す表示パターンテーブルは、各表示パターンIDに対する表示方法が設定される。表示方法としては、例えば表示精度の表示や表示精度に対応させた表示色での表示等があるが、これに限定されるものではない。
図6(E)に示す表示精度管理テーブルの項目としては、例えば「表示精度判定条件ID」、「条件」であるが、これに限定されるものではない。図6(E)に示す表示精度管理テーブルは、判定部38が画像に重畳されるARコンテンツの表示精度を判定する際に用いられる判定条件が設定されている。判定部38による判定処理において、複数の表示精度判定条件IDのうち、どのIDの条件を満たすかに応じて、表示精度を判定することができる。
なお、図6(E)に示すように、1つのIDに対して複数の条件(条件1,2,・・・)を設定することができ、判定部38は、設定した複数の条件のうち、少なくとも1つを満たす場合又は全て満たす場合に、その表示精度であると判定することができる。また、1つの条件としては、画像中のARマーカのマーカサイズ(pix)及びマーカ回転角(°)の両方又は一方を用いることができる。つまり、表示精度管理テーブルでは、1又は複数の条件を設定することができ、それぞれをAND条件、OR条件等の各種論理演算を組み合わせて任意に設定することができる。
また、上述したマーカサイズは、ARマーカ領域の大きさ(面積)でもよく、ARマーカの1辺あたりの大きさ(長さ)でもよい。例えば、表示精度判定条件ID「1」のマーカサイズ10000pix未満は、画像中のマーカ領域が100000pix未満であることを示しており、ARマーカが正方形である場合には、1辺の長さが100pix未満であることを示している。
図6(E)に示す表示精度管理テーブルは、表示精度が高精度の場合の条件のみを格納していてもよい。その場合、判定部38は、表示精度判定において、テーブル内の条件を満たさなかった場合に、ARコンテンツの表示精度がよくない(精度が低い)と判定することができる。
上述した図6(A)〜(E)に示す各テーブルをサーバ11側で管理する場合、各テーブルの情報をユーザIDやグループIDと対応付けて記憶部22に記憶してもよい。これにより、例えば同一のマーカIDを認識したとしても重畳表示するARコンテンツの内容をユーザIDやグループID等に対応させて変更することができる。
<本実施形態におけるARコンテンツの表示精度について>
次に、本実施形態におけるARコンテンツの表示精度について説明する。図7は、本実施形態におけるARコンテンツの表示精度について説明する図である。本実施形態では、例えば画像に含まれるARマーカのサイズや回転角(角度)等を用いて、表示精度の判定を行い、判定結果に応じて表示精度が高精度であるか、低精度であるか等の通知をユーザに対して行う。
図7(A)、(B)の例では、実空間80内にARマーカ81が存在する。図7(A)の例では、ARマーカ81が壁に取り付けられ、図7(B)の例では、ARマーカ81が床に置かれている。ここで、端末装置12は、ユーザ90により操作される。端末装置12は、ARマーカ81を含む実空間80内を撮影すると、その撮影画像からARマーカ81を認識し、認識したARマーカからマーカIDを認識する。次に、端末装置12は、マーカIDに対応するARコンテンツ82−1,82−2を取得し、取得したARコンテンツ82−1,82−2を、撮影画像中のARマーカ81からの相対位置に重畳表示し、表示部34の画面に表示する。
なお、図7(A)、(B)の例では、ARコンテンツ82−1としてソファ(椅子)が画面上にのみ表示され、ARコンテンツ82−2として花瓶が画面上にのみ表示される(実際に実空間80内にソファや椅子は存在していない)。
これにより、ユーザ90は、端末装置12の表示部34上で重畳表示される情報を取得することで、実空間80におけるソファや花瓶の配置等を確認することができる。
ここで、例えば図7(A)に示すように、ARマーカ81の撮影位置が、ARマーカ81に近く、更にARマーカ81と正対して(正面から)撮影している場合には、認識精度が高いため、ARコンテンツの大きさや向きも正しく表示されている。一方、図7(B)に示すように、ARマーカ81との距離が遠く、正対していない位置から撮影した場合には、認識精度が低いため、位置関係の推定に誤差が生じる。そのため、重畳表示するARコンテンツ82−1,82−2の大きさや向きにも誤差が生じる可能性が高い。したがって、このようなARマーカ81の認識精度の違いによるARコンテンツ82の表示精度の違いをユーザ90に通知することで、表示されているARコンテンツの精度を把握し、適切な位置に移動してARマーカ81を撮影する等の対応を取らせることができる。
<画像中に含まれるARマーカ81と表示精度との関係について>
次に、画像中に含まれるARマーカ81と表示精度との関係について図を用いて説明する。図8は、端末装置の表示部に表示されるARマーカの一例を示す図である。また、図9は、ARマーカの認識精度の判定内容を説明するための図である。
本実施形態では、例えば撮影により認識したARマーカ81のマーカサイズ及びマーカ回転角からARマーカと撮像部32との位置関係を推定し、推定した位置関係を用いてARコンテンツの配置を決定する。
ここで、図8では、一例として1辺が5cmの正方形のARマーカ81を撮影した場合に、カメラ解像度が640×480(pix)の表示部34の画面に100×100(pix)のマーカ領域が表示されたとする。また、この場合の撮影距離は0.5mである。これらの値を基準として、上述した図6(E)に示すような表示精度管理テーブルの各表示精度判定条件を設定する。
図9(A)の例では、1辺が2倍(100→200(pix))で、マーカ領域が4倍(200×200(pix))の正方形(マーカ回転角0°)のARマーカ81が認識されている。この場合、上述した図6(E)に示すような表示精度管理テーブルと比較すると、表示精度判定条件ID「3」(表示精度(レベル)「高」)に相当する。なお、この場合には、マーカ領域のピクセルサイズの対比から、図8に示す基準よりも近距離(例えば、0.25m)で撮影されたARマーカ81であると推測することができる。したがって、図9(A)に示すような撮影状態の場合には、ユーザ90の端末装置12に、ARコンテンツ82−1,82−2の表示精度が高い旨の通知を行う。
図9(B)の例では、表示部34の表示から1辺が1/2倍(100→50(pix))で、マーカ領域が1/4(50×50(pix))のARマーカ81が認識されている。更に、図9(B)の例では、マーカ回転角θが30°である。この場合、上述した図6(E)に示すような表示精度管理テーブルと比較すると、表示精度判定条件ID「1」の条件2に相当するため、表示精度が「低」であると判定される。なお、この場合には、マーカ領域のピクセルサイズの対比から、図8に示す基準よりも遠距離(例えば、1.0m)で撮影されたARマーカ81であると推測することができる。
ARマーカ81と撮影位置との距離が離れると、図9(B)に示すように画像中に含まれるARマーカが小さくなるため、ARマーカと撮影位置との位置関係の推定精度が下がる。また、ARマーカを斜めから撮影する場合にも、あまりにも斜めの角度から撮影すると、ARマーカとカメラとの位置関係の推定精度が下がる。そのため、ARコンテンツ82−1,82−2の大きさや方向等の配置にも誤差が生じる。したがって、図9(B)に示すような撮影状態の場合には、ユーザ90の端末装置12に、ARコンテンツ82−1,82−2の表示精度が低い旨の通知を行う。
<ARコンテンツの設定処理(オーサリング処理)について>
本実施形態においては、ARマーカに対応して表示されるARコンテンツは、予め設定されている必要がある。ここで、端末装置12におけるARコンテンツの設定処理(オーサリング処理)の一例について説明する。
端末装置12は、オーサリング処理を行うためのARアプリケーションを起動し、撮像部32で撮影画像を取得する。次に、端末装置12は、撮影画像に含まれるARマーカのマーカ認識を行い、ARマーカを認識した場合に、認識したARマーカに対応付けて1又は複数のARコンテンツを設定し、画面上の所定の位置に配置する。
端末装置12は、設定や配置がなされたARコンテンツに関する情報を通信ネットワーク13を介してサーバ11に登録する。このとき、ARコンテンツ情報は、端末装置12の記憶部33に記憶されてもよい。このような処理により、オーサリング処理が実行される。
<表示制御処理の第1実施例>
次に、本実施形態における表示制御処理の第1実施例についてフローチャートを用いて説明する。図10は、表示制御処理の第1実施例を示すフローチャートである。図10の例において、端末装置12の制御部41は、ARコンテンツを表示制御するARアプリケーションを起動する(S11)。S11の処理におけるARアプリケーションの起動により、ARアプリケーションが終了するまで、撮像部32による画像の撮影が開始される。なお、本実施形態では、撮像部32で撮影された画像に対してARコンテンツの表示制御を行うだけでなく、外部装置で撮影された画像に対してARコンテンツの表示制御を行ってもよい。したがって、そのような場合には、S11の処理において、ARアプリケーションの起動と共に撮像部32による画像の撮影が開始されなくてもよい。
次に、取得部37は、予め設定されたARコンテンツ情報、表示精度判定条件、表示パターン等をサーバ11等から取得する(S12)。取得した各種情報は、例えば、記憶部33に記憶される。
次に、認識部36は、表示部34に表示される入力画像からARマーカを認識したか否かを判断する(S13)。ARマーカを認識した場合(S13において、YES)、ARマーカ認識時のマーカ領域の大きさ及び形状から推測される画像撮影位置と、ARマーカとの位置関係を示す情報を生成する(S14)。ここで、位置関係とは、ARマーカと撮影位置との距離及び撮影方向のうち、少なくとも1つを有する。
次に、画像生成部40は、認識したARマーカのマーカIDに対応するARコンテンツを表示部34に表示する(S15)。S15の処理では、コンテンツ生成部39により、ARマーカと撮像部32との位置関係を用いて、画像中のARコンテンツの配置(例えば、位置、向き等)を決定し、決定した位置にARコンテンツを表示させる。
次に、判定部38は、S14の処理で得られた位置関係を示す情報と、表示精度判定条件とを比較する(S16)。次に、画像生成部40は、比較結果として得られる表示精度に対応する表示パターンで、現在の表示精度を表示する(S17)。S17の処理では、表示部34の画面の所定位置(例えば、左上や右下等)の所定の位置に現在の表示精度を表示してもよく、ARマーカ又はARコンテンツからの相対座標位置に現在の表示精度を表示してもよい。例えば、入力画像に複数のARマーカが存在する場合には、ARマーカからの相対座標位置にそれぞれのARコンテンツに対する現在の表示精度を表示する。
また、S17の処理では、例えば、表示精度が高いと判断された場合には、表示精度を表示せず、ARコンテンツの表示を精度よく行えない場合に、その旨の表示を行うようにしてもよい。
次に、S17の処理後、又は、S13の処理において撮影画像からARマーカを認識しなかった場合(S13において、NO)、制御部41は、ARアプリケーションを終了するか否かを判断する(S18)。ARアプリケーションを終了しない場合(S18において、NO)、制御部41は、S13の処理に戻る。また、ユーザ等の指示によりARアプリケーションを終了する場合(S18において、YES)、制御部41は、表示制御処理(第1実施例)を終了する。なお、表示制御処理を終了する際に、撮像部32による画像撮影が継続している場合には、撮影も終了させる。
<第1実施例における画面表示例>
次に、第1実施例における画面表示例について図を用いて説明する。図11は、第1実施例における画面表示例を示す図である。図11(A)〜(C)は、第1実施例における表示精度が、「低」、「中」、「高」の場合の表示例を示している。図11(A)〜(C)の例では、端末装置12の表示部34には、表示される入力画像の内容として、椅子や机等の実物体100と、ARマーカ81と、ARマーカ81に対応付けられて表示されたARコンテンツ82とが表示されている。
ここで、図11(A)は、ARマーカを遠距離認識時(表示精度:低)の表示例を示し、図11(B)は、中距離認識時(表示精度:中)の表示例を示し、図11(C)は、近距離認識時(表示精度:高)の表示例を示している。
第1実施例における表示パターンでは、図11(A)〜(C)に示すように、画面の一部(所定の位置)にARコンテンツの表示精度を通知するためのアイコンのARコンテンツ101を表示する。また、第1実施例では、ARコンテンツ101により、精度のレベルを示す情報(低、中、高)を表示したり、図6(D)に示す表示パターンテーブルに対応させて文字部分やアイコン部分の色を変えて表示する。これにより、第1実施例では、シンプルなユーザインターフェースで表示精度をユーザに通知することができる。
<表示制御処理の第2実施例>
次に、本実施形態における表示制御処理の第2実施例についてフローチャートを用いて説明する。図12は、表示制御処理の第2実施例を示すフローチャートである。図12の例において、端末装置12の制御部41は、ARコンテンツを表示制御するARアプリケーションを起動する(S21)。S21の処理では、上述したS11の処理と同様に、撮像部32による画像の撮影を開始してもよい。
次に、取得部37は、予め設定されたARコンテンツ情報、表示精度判定条件、表示パターン等をサーバ11等から取得する(S22)。取得した各種情報は、例えば、記憶部33に記憶される。
次に、認識部36は、表示部34に表示される入力画像からARマーカを認識したか否かを判断する(S23)。ARマーカを認識した場合(S23において、YES)、ARマーカ認識時のマーカ領域の大きさ及び形状から推測される画像撮影位置と、ARマーカとの位置関係を示す情報を生成する(S24)。次に、判定部38は、S24の処理で得られた位置関係を示す情報と、表示精度判定条件とを比較する(S25)。
次に、画像生成部40は、比較結果として得られる表示精度に対応する表示パターンで、メッセージを表示する(S26)。また、画像生成部40は、表示精度に対応する表示方法で、認識したARマーカのマーカIDに対応するARコンテンツを表示する(S27)。次に、S27の処理後、又は、S23の処理において撮影画像からARマーカを認識しなかった場合(S23において、NO)、制御部41は、ARアプリケーションを終了するか否かを判断する(S28)。ARアプリケーションを終了しない場合(S28において、NO)、制御部41は、S23の処理に戻る。また、ユーザ等の指示によりARアプリケーションを終了する場合(S28において、YES)、制御部41は、表示制御処理(第2実施例)を終了する。なお、表示制御処理を終了する際に、撮像部32による画像撮影が継続している場合には、撮影も終了させる。
上述した第2実施例におけるS26、S27の処理では、上述した図6(D)に示す表示パターンテーブルとは異なるテーブルを用いる。図13は、第2実施例に対応する表示パターンテーブルの一例を示す図である。図13に示す表示パターンテーブルの項目としては、例えば「表示パターンID」、「表示色」、「表示メッセージ」、「表示方法」等があるが、これに限定されるものではない。第2実施例では、表示パターンIDに応じて表示精度を通知するためのアイコンのARコンテンツの色だけでなく、表示するテキスト情報の内容を変えたり、点滅させて表示すると共に、距離に応じてARコンテンツの点滅間隔を変えて表示させることで、より適切にユーザに表示精度を把握させることができる。
また、第2実施例において、表示部34に表示される入力画像内に複数のARマーカが存在する場合には、各ARマーカに対して上述したARコンテンツの表示制御処理が行われる。
<第2実施例における画面表示例>
次に、第2実施例における画面表示例について図を用いて説明する。図14は、第2実施例における画面表示例を示す図である。図14では、第2実施例における表示精度が「低」、「中」、「高」の場合の表示例を示している。
図14(A)〜(C)は、第2実施例における表示精度が、「低」、「中」、「高」の場合の表示例を示している。図14(A)〜(C)の例では、端末装置12の表示部34には、表示すべき画像の内容として、椅子や机等の実物体100と、ARマーカ81と、ARマーカ81に対応付けられて表示されたARコンテンツ82とが表示されている。
ここで、図14(A)は、ARマーカを遠距離(例えば、ARマーカ81から2m)認識時(表示精度:低)の表示例を示す。図14(B)は、中距離(例えば、ARマーカ81から1m)認識時(表示精度:中)の表示例を示し、図14(C)は、近距離(例えば、ARマーカ81から0.5m)認識時(表示精度:高)の表示例を示している。
第2実施例における表示パターンでは、図14(A)、(B)に示すように、画面の一部(所定の位置)にARコンテンツの表示精度を通知するためのアイコンのARコンテンツ101を表示する。また、第2実施例では、ARコンテンツ101における表示メッセージを表示精度に対応させて設定すると共に、ARコンテンツ101を表示精度に対応した間隔で点滅表示させる。表示メッセージとしては、例えば図13等に示すように、表示精度を向上させるために、ユーザ90に撮影距離や向きの移動を促すメッセージがあるが、これに限定されるものではない。
なお、第2実施例において、表示精度が「高」である場合には、図13に示す表示パターンテーブルに対応させて、図14(C)に示すように表示精度を通知するためのARコンテンツ101を表示させなくてもよい。
このように、第2実施例では、シンプルなユーザインターフェースで表示精度をユーザ90に通知することができる。更に、第2実施例では、表示精度に応じてARコンテンツの表示精度を変更することで、より適切にユーザに表示精度を把握させることができる。
<表示制御処理の第3実施例>
次に、本実施形態における表示制御処理の第3実施例についてフローチャートを用いて説明する。図15は、表示制御処理の第3実施例を示すフローチャートである。図15の例において、端末装置12の制御部41は、ARコンテンツを表示制御するARアプリケーションを起動する(S31)。S31の処理では、上述したS11の処理と同様に、撮像部32による画像の撮影を開始してもよい。
次に、取得部37は、予め設定されたARコンテンツ情報、表示精度判定条件、表示パターン等をサーバ11等から取得する(S32)。取得した各種情報は、例えば、記憶部33に記憶される。
次に、認識部36は、表示部34に表示される入力画像からARマーカを認識したか否かを判断する(S33)。ARマーカを認識した場合(S33において、YES)、ARマーカ認識時のマーカ領域の大きさ及び形状から推測される画像撮影位置と、ARマーカとの位置関係を示す情報を生成する(S34)。
次に、画像生成部40は、認識したARマーカのマーカIDに対応するARコンテンツを表示部34に表示する(S35)。次に、判定部38は、S34の処理で得られた位置関係を示す情報と、表示精度判定条件とを比較する(S36)。次に、画像生成部40は、比較結果として得られる表示精度に対応する表示パターンで、ARマーカ枠を表示(重畳表示)する(S37)。S37の処理では、S34の処理で取得したマーカ領域に対し、その周囲にARマーカ枠を設定する。また、設定したARマーカ枠を表示精度に応じて設定した色で表示する。なお、第3実施例では、ARマーカ枠内の領域についても所定の色で半透明に塗ってもよく、塗りつぶしがない状態でもよい。塗りつぶす場合には、ARマーカが認識できる程度の透明度で塗りつぶしを行う。
次に、画像内の他に認識したARマーカがあるか否かを判断し、他のARマーカがある場合(S38において、YES)、S34の処理に戻る。つまり、ARマーカ毎に上述した表示制御処理を行う。また、他に認識したARマーカがない場合(S38において、NO)、又は、S33の処理において撮影画像からARマーカを認識しなかった場合(S33において、NO)、制御部41は、ARアプリケーションを終了するか否かを判断する(S39)。ARアプリケーションを終了しない場合(S39において、NO)、制御部41は、S33の処理に戻る。また、ユーザ等の指示によりARアプリケーションを終了する場合(S39において、YES)、制御部41は、表示制御処理(第3実施例)を終了する。なお、表示制御処理を終了する際に、撮像部32による画像撮影が継続している場合には、撮影も終了させる。
上述した第3実施例におけるS37の処理では、上述した図6(D)に示す表示パターンテーブルとは異なるテーブルを用いる。図16は、第3実施例に対応する表示パターンテーブルの一例を示す図である。図16に示す表示パターンテーブルの項目としては、例えば「表示パターンID」、「表示色」、「マーカハイライト」等があるがこれに限定されるものではない。図16に示すマーカハイライトとは、例えばARマーカの領域内を表示色で半透明にハイライトしたい場合にONを設定し、ハイライトしない場合にOFFを設定する。つまり、OFFの場合には、ARマーカ枠のみが表示パターンID(表示精度)に対応する所定の色で表示される。
<第3実施例における画面表示例>
次に、第3実施例における画面表示例について図を用いて説明する。図17は、第3実施例における画面表示例を示す図である。図17(A)は、単一マーカ(画像中のARマーカが1個)の場合の表示例を示し、図17(B)は、複数マーカ(画像中のARマーカが複数)の場合の表示例を示す。
図17(A)の(i)は遠距離認識時の表示例を示し、(ii)は中距離認識時の表示例を示し、(iii)は近距離認識時の表示例を示している。第3実施例では、(i)〜(iii)における表示精度判定結果に応じてARマーカ枠110―1〜110−3を色をそれぞれ分けて表示する。これにより、表示精度毎に、認識中のマーカー枠の色を変更することで、複数のマーカーを同時認識した場合でも、画面中の表示領域を圧迫せずにARコンテンツ表示精度をユーザに通知することができる。
また、第3実施例において、ARマーカが複数ある場合には、図17(B)の示すように、ARコンテンツ82−1,82−2のそれぞれの表示精度をARマーカ81−1,81−2毎に独立して通知することができる。なお、第3実施例では、例えば画像中に複数のARマーカが存在する場合には、そのうちの少なくとも1つのARマーカを選択することで、選択されたARマーカのみに表示精度に対応するARマーカ枠110を表示させることができる。
<表示制御処理の第4実施例>
次に、本実施形態における表示制御処理の第4実施例についてフローチャートを用いて説明する。図18は、表示制御処理の第4実施例を示すフローチャートである。図18の例において、端末装置12の制御部41は、ARコンテンツを表示制御するARアプリケーションを起動する(S41)。S41の処理では、上述したS11の処理と同様に、撮像部32による画像の撮影を開始してもよい。
次に、取得部37は、予め設定されたARコンテンツ情報、表示精度判定条件、表示パターン等をサーバ11等から取得する(S42)。取得した各種情報は、例えば、記憶部33に記憶される。
次に、認識部36は、表示部34に表示される入力画像からARマーカを認識したか否かを判断する(S43)。ARマーカを認識した場合(S43において、YES)、ARマーカ認識時のマーカ領域の大きさ及び形状から推測される画像撮影位置と、ARマーカとの位置関係を示す情報を生成する(S44)。
次に、画像生成部40は、位置関係に対応させて、ARマーカの中心位置を基準として予め設定された距離に対応させた表示精度の領域を表示する(S45)。S45の処理では、表示された領域内で撮影すれば、その表示精度でARコンテンツを撮影することができることを示す領域が撮影画像等に重畳表示される。なお、領域は、表示精度毎に色分けされてもよく、半透明に表示してもよい。
次に、画像生成部40は、認識したARマーカのマーカIDに対応するARコンテンツを表示部34に表示する(S46)。次に、制御部41は、ARアプリケーションを終了するか否かを判断する(S47)。ARアプリケーションを終了しない場合(S43において、NO)、制御部41は、S43の処理に戻る。また、ユーザ等の指示によりARアプリケーションを終了する場合(S43において、YES)、制御部41は、表示制御処理(第4実施例)を終了する。なお、表示制御処理を終了する際に、撮像部32による画像撮影が継続している場合には、撮影も終了させる。
上述した第4実施例におけるS45の処理では、上述した図6(D)に示す表示パターンテーブルとは異なるテーブルを用いる。図19は、第4実施例に対応する表示パターンテーブルの一例を示す図である。図19に示す表示パターンテーブルの項目としては、「表示パターンID」、「表示色」、「領域表示方法」、「領域サイズ」等があるがこれに限定されるものではない。
領域表示方法は、例えば、床にARマーカ81を設置する場合は「マーカ平面に平行」と設定する。また、壁にARマーカ81を設置する場合は「マーカ平面に垂直」、又は「マーカに対して球状」と設定する。画像生成部40は、この設定に基づいて領域の表示を行う。また、領域サイズは、例えばARマーカ81を基準とした領域の半径のサイズを設定してもよく、領域の直径のサイズを設定してもよい。
<第4実施例における画面表示例>
次に、第4実施例における画面表示例について図を用いて説明する。図20は、第4実施例における画面表示例を示す図である。図20(A)は、第4実施例における領域表示を正面から見た図を示す。また、図20(B)は、第4実施例における領域表示を上から見た図を示す。なお、図20(A)、(B)の例では、ARマーカ81が壁に設置され、ARマーカの中心から表示精度に対応した撮影領域120が球状に重畳表示されているが、表示内容については、これに限定されるものではなく、例えば、壁の裏側の表示を削除して半球状に撮影領域120を表示させてもよい。
第4実施例では、図20(A)、(B)に示すように、ARマーカ81の位置を基準として、ARコンテンツ82の表示精度に対応した撮影領域120を端末装置12の表示部34の画面に表示する。第4実施例では、図20(A)、(B)に示すように、表示精度が「高」になると予想される撮影領域120−1、「中」になると予想される撮影領域120−2、「低」になると予想される撮影領域120−3がそれぞれ表示される。なお、この撮影領域120の表示は、予め設定された表示パターンテーブルでの設定内容に基づいて表示されているため、実際にその撮影領域内での表示精度の判定結果が、予想と同一になるとは限らない。しかしながら、表示精度を高精度にするために、ユーザを領域120−1の領域内へ移動するように促すことができるため、表示精度を向上させることができる。
なお、第4実施例は、第1〜第3実施例に示す表示制御方法と組み合わせて表示させることができる。また、第1〜第4実施例は、複数の実施例を組み合わせてもよい。
<他の実施形態>
上述した例では、ARマーカとの位置関係を利用した実施形態について説明したが、これに限定されるものではなく、例えばiBeacon(登録商標)等の近距離通信技術を利用し、iBeacon認識時のビーコンとの距離(例えば、4段階で取得される距離情報)を利用してもよい。4段階とは、例えば「近距離」、「中距離」、「遠距離」、「認識できていない」の4段階(実質3段階)である。iBeaconを利用することで、大まかな距離情報を取得することができるため、この情報を用いて、ARマーカを利用した場合と同様に表示状態を通知する処理を実施することができる。
また、他の実施形態として、例えば端末装置12に設けられたGPSを利用してもよい。この場合、GPS利用時の更新成功頻度により、ARコンテンツの表示精度を変更することができる。この場合、判定部38は、例えば10秒毎に位置情報を更新する際、毎回更新が成功したら、表示精度「高」と判定し、1回更新が失敗したら、表示精度「中」と判定し、2回以上連続で更新が失敗したら、表示精度「低」と判定し、その結果を表示させることができる。
上述したように、本実施形態によれば、ARコンテンツ(例えば、画像データ)等の表示精度を適切に通知することができる。例えば、基準物(ARマーカ)が認識でき、ARコンテンツが重畳表示可能であったとしても、そのARコンテンツの表示精度に問題があることをユーザに適切に通知することができる。
以上、実施例について詳述したが、特定の実施例に限定されるものではなく、特許請求の範囲に記載された範囲内において、種々の変形及び変更が可能である。また、上述した各実施例の一部又は全部を組み合わせることも可能である。
なお、以上の実施例に関し、更に以下の付記を開示する。
(付記1)
表示部に表示される入力画像に基準物が含まれている場合、該基準物に対応する画像データを前記表示部に表示する表示制御方法において、
前記入力画像から前記基準物の領域を抽出し、
抽出した前記領域の大きさ及び形状に基づき、画像撮影位置と前記基準物との位置関係を示す情報を生成し、
生成した前記情報と、予め設定された表示精度判定条件とを比較し、比較結果に応じて前記画像データの表示精度を通知する、ことを特徴とする表示制御方法。
(付記2)
前記位置関係は、前記基準物と前記入力画像の撮影位置との距離及び撮影方向の少なくとも1つを有することを特徴とする付記1に記載の表示制御方法。
(付記3)
前記表示精度の通知は、前記表示精度のレベルに関する情報と、前記レベル毎に設定された色情報とを用いて通知することを特徴とする付記1又は2に記載の表示制御方法。
(付記4)
前記表示精度の通知は、前記表示精度に対応するメッセージと、前記画像データに対する前記表示精度に応じた点滅表示とを用いて通知することを特徴とする付記1乃至3の何れか1項に記載の表示制御方法。
(付記5)
前記表示精度の通知は、前記表示精度に対応させた色の枠を前記基準物の周囲に重畳表示して通知することを特徴とする付記1乃至4の何れか1項に記載の表示制御方法。
(付記6)
前記表示部の画面に前記表示精度に対応する撮影領域を表示することを特徴とする付記1乃至5の何れか1項に記載の表示制御方法。
(付記7)
生成した前記情報が、前記表示精度判定条件を満たさない場合に、前記画像データの表示精度がよくない旨の通知を行うことを特徴とする付記1乃至6の何れか1項に記載の表示制御方法。
(付記8)
表示部に表示される入力画像に基準物が含まれている場合、該基準物に対応する画像データを前記表示部に表示する際、前記入力画像から前記基準物の領域を抽出し、抽出した前記領域の大きさ及び形状に基づき、画像撮影位置と前記基準物との位置関係を示す情報を生成し、
生成した前記情報と、予め設定された表示精度判定条件とを比較し、比較結果に応じて前記画像データの表示精度を通知する、処理をコンピュータに実行させる情報処理プログラム。
(付記9)
表示部に表示される入力画像に基準物が含まれている場合、該基準物に対応する画像データを前記表示部に表示する情報処理装置において、
前記入力画像から前記基準物の領域を抽出し、抽出した前記領域の大きさ及び形状に基づき、画像撮影位置と前記基準物との位置関係を示す情報を生成し、生成した前記情報と、予め設定された表示精度判定条件とを比較して、表示精度判定を行う判定部と、
前記判定部により得られる比較結果に応じて前記画像データに対する表示精度を通知する画像生成部とを有することを特徴とする情報処理装置。