(57)【特許請求の範囲】
【請求項１】
実空間に存在する対象物を指定する操作を受け付けるユーザインターフェース部と、
前記ユーザインターフェース部によって指定された前記対象物である指定先の対象物に関連する基準平面上の基準点を特定する指定先特定部と、
前記基準平面と前記基準点とに基づいて、前記基準点を含む位置に配置され、仮想オブジェクトが配置されることができる第１の配置平面を決定する配置位置計算部と、
前記第１の配置平面を回転させることで得られ、前記仮想オブジェクトが配置されることができる１つ以上の第２の配置平面を決定する複数視点計算部と、
を備え、
前記第１の配置平面と前記仮想オブジェクトとを紐づけした情報及び前記第２の配置平面と前記仮想オブジェクトとを紐づけした情報とをオーサリングデータとして出力する
ことを特徴とするオーサリング装置。
【請求項２】
前記ユーザインターフェース部による前記操作は、ｎを３以上の整数とした場合に、前記指定先の対象物を示す領域をｎ角形で囲う操作であることを特徴とする請求項１に記載のオーサリング装置。
【請求項３】
前記指定先特定部は、
前記ｎ角形の頂点のうちの３つの頂点を含む平面のうちの１つを前記基準平面とし、
前記ｎ角形の重心位置と前記基準平面とに基づいて前記基準点を決定する
ことを特徴とする請求項２に記載のオーサリング装置。
【請求項４】
前記複数視点計算部は、前記基準点を含む軸線を中心に前記第１の配置平面を回転させることで前記１つ以上の第２の配置平面を決定することを特徴とする請求項１から３のいずれか１項に記載のオーサリング装置。
【請求項５】
実空間を撮影するカメラから出力される画像データから前記カメラの位置及び姿勢を推定する位置姿勢推定部と、
推定された前記カメラの前記位置及び前記姿勢と前記オーサリングデータとに基づいて、前記仮想オブジェクトが配置される表示平面を、前記第１の配置平面及び前記１つ以上の第２の配置平面の中から選択する表示平面特定部と、
前記画像データと前記表示平面上に配置された前記仮想オブジェクトとに基づく表示画像データを出力するレンダリング部と、
をさらに備えたことを特徴とする請求項１から４のいずれか１項に記載のオーサリング装置。
【請求項６】
前記表示平面特定部は、前記第１の配置平面及び前記１つ以上の第２の配置平面のうちの、前記カメラの位置と前記基準点とによって決まるベクトルと前記第１の配置平面とのなす角度及び前記ベクトルと前記１つ以上の第２の配置平面とのなす角度が最も９０°に近い配置平面を、前記仮想オブジェクトが表示される表示平面として選択することを特徴とする請求項５に記載のオーサリング装置。
【請求項７】
実空間に存在する対象物を指定する操作を受け付けるステップと、
指定された前記対象物である指定先の対象物に関連する基準平面上の基準点を特定するステップと、
前記基準平面と前記基準点とに基づいて、前記基準点を含む位置に配置され、仮想オブジェクトが配置されることができる第１の配置平面を決定するステップと、
前記第１の配置平面を回転させることで得られ、前記仮想オブジェクトが配置されることができる１つ以上の第２の配置平面を決定するステップと、
前記第１の配置平面と前記仮想オブジェクトとを紐づけした情報及び前記第２の配置平面と前記仮想オブジェクトとを紐づけした情報とをオーサリングデータとして出力するステップと、
を有することを特徴とするオーサリング方法。
【請求項８】
実空間に存在する対象物を指定する操作を受け付ける処理と、
指定された前記対象物である指定先の対象物に関連する基準平面上の基準点を特定する処理と、
前記基準平面と前記基準点とに基づいて、前記基準点を含む位置に配置され、仮想オブジェクトが配置されることができる第１の配置平面を決定する処理と、
前記第１の配置平面を回転させることで得られ、前記仮想オブジェクトが配置されることができる１つ以上の第２の配置平面を決定する処理と、
前記第１の配置平面と前記仮想オブジェクトとを紐づけした情報及び前記第２の配置平面と前記仮想オブジェクトとを紐づけした情報とをオーサリングデータとして出力する処理と、
をコンピュータに実行させることを特徴とするオーサリングプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オーサリング装置、オーサリング方法、及びオーサリングプログラムに関する。
【背景技術】
【０００２】
近年、現実世界の画像に仮想的な情報を重畳することで得られた拡張現実（ＡＲ：Ａｕｇｍｅｎｔｅｄ  Ｒｅａｌｉｔｙ）画像をユーザに提示する技術が注目されている。例えば、ユーザが現実世界の物体である対象物を指定する操作を行ったときに、指定された対象物に関連する仮想的な情報部分である仮想オブジェクトを、指定された対象物の周辺に表示する技術が知られている。【０００３】
特許文献１は、カメラで取得された実空間の情報を解析することで、実空間に存在する物体（例えば、手）の面である基準面（例えば、手の平）を求め、画像表示部に表示される仮想オブジェクトを、基準面に基づいて変更する装置を提案している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１８−８４８８６号公報（例えば、段落００８７〜０１０２、図８〜図１１）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記従来の装置では、仮想オブジェクトが配置される平面の形状及び傾きは、実空間に存在する物体の形状及び傾きに応じて変化するため、仮想オブジェクトの視認性が低下する場合があるという問題がある。【０００６】
本発明は、上記課題を解決するためになされたものであり、仮想オブジェクトの視認性を低下させないように拡張現実画像を表示可能にするオーサリング装置、オーサリング方法、及びオーサリングプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一態様に係るオーサリング装置は、実空間に存在する対象物を指定する操作を受け付けるユーザインターフェース部と、前記ユーザインターフェース部によって指定された前記対象物である指定先の対象物に関連する基準平面上の基準点を特定する指定先特定部と、前記基準平面と前記基準点とに基づいて、前記基準点を含む位置に配置され、仮想オブジェクトが配置されることができる第１の配置平面を決定する配置位置計算部と、前記第１の配置平面を回転させることで得られ、前記仮想オブジェクトが配置されることができる１つ以上の第２の配置平面を決定する複数視点計算部と、を備え、前記第１の配置平面と前記仮想オブジェクトとを紐づけした情報及び前記第２の配置平面と前記仮想オブジェクトとを紐づけした情報とをオーサリングデータとして出力することを特徴とする。【０００８】
本発明の他の態様に係るオーサリング方法は、実空間に存在する対象物を指定する操作を受け付けるステップと、指定された前記対象物である指定先の対象物に関連する基準平面上の基準点を特定するステップと、前記基準平面と前記基準点とに基づいて、前記基準点を含む位置に配置され、仮想オブジェクトが配置されることができる第１の配置平面を決定するステップと、前記第１の配置平面を回転させることで得られ、前記仮想オブジェクトが配置されることができる１つ以上の第２の配置平面を決定するステップと、前記第１の配置平面と前記仮想オブジェクトとを紐づけした情報及び前記第２の配置平面と前記仮想オブジェクトとを紐づけした情報とをオーサリングデータとして出力するステップと、を有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、仮想オブジェクトの視認性を低下させないように拡張現実画像を表示することが可能になる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施の形態１に係るオーサリング装置のハードウェア構成の例を示す図である。
【図２】実施の形態１に係るオーサリング装置の構成を概略的に示す機能ブロック図である。
【図３】（Ａ）から（Ｄ）は、実施の形態１に係るオーサリング装置のデータ取得部によって扱われるデータ及び実空間を撮影するカメラの位置及び姿勢を示すパラメータを示す図である。
【図４】実空間に存在する対象物及びそれらに付与された物体ＩＤの例を示す図である。
【図５】平面状の仮想オブジェクトの例を示す図である。
【図６】立体状の仮想オブジェクトの例を示す図である。
【図７】指定先の対象物上の領域を直線で囲うユーザ操作によって指定先を指定する第１の指定方法を示す図である。
【図８】指定先の対象物上の点を指定するユーザ操作によって指定先を指定する第２の指定方法を示す図である。
【図９】（Ａ）は、ユーザ操作によって指定された指定先の領域及び基準点の例を示す図であり、（Ｂ）は、基準点及び基準平面の例を示す図であり、（Ｃ）は、水平面の例を示す図である。
【図１０】（Ａ）、（Ｂ）及び（Ｃ）は、基準平面と水平面とから配置平面を導出する処理を示す図である。
【図１１】（Ａ）及び（Ｂ）は、基準点と基準平面とから仮想オブジェクトが配置される配置平面を導出するための第１の導出方法及び第２の導出方法を示す図である。
【図１２】（Ａ）は、指定先の領域を手前から見る場合に、配置平面上に表示された仮想オブジェクトを視認することができることを示す図であり、（Ｂ）は、指定先の領域を上から見る場合に、配置平面上に表示された仮想オブジェクトを視認することができないことを示す図である。
【図１３】図１２（Ｂ）の状態のときに、ビルボードレンダリングを用いて仮想オブジェクトを表示した例を示す図である。
【図１４】複数視点計算部によって導出された配置平面を示す図である。
【図１５】複数視点計算部によって導出された配置平面を示す図である。
【図１６】複数視点計算部によって導出された配置平面を示す図である。
【図１７】実施の形態１に係るオーサリング装置の動作を示すフローチャートである。
【図１８】本発明の実施の形態２に係るオーサリング装置のハードウェア構成の例を示す図である。
【図１９】実施の形態２に係るオーサリング装置の構成を概略的に示す機能ブロック図である。
【図２０】実施の形態２に係るオーサリング装置の動作を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下に、本発明の実施の形態に係るオーサリング装置、オーサリング方法、及びオーサリングプログラムを、図面を参照しながら説明する。以下の実施の形態は、例にすぎず、本発明の範囲内で種々の変更が可能である。
【００１２】
《１》実施の形態１．
《１−１》構成
《１−１−１》ハードウェア構成
図１は、実施の形態１に係るオーサリング装置１のハードウェア構成の例を示す図である。図１は、仮想オブジェクトを含むオーサリングデータに基づいてＡＲ画像を表示する処理であるレンダリングを実行するための構成を示していない。しかし、オーサリング装置１は、カメラ又はセンサなどのような実空間の情報を取得する構成を備えてもよい。
【００１３】
図１に示されるように、オーサリング装置１は、例えば、ソフトウェアとしてのプログラム、すなわち、実施の形態１に係るオーサリングプログラムを格納する記憶装置としてのメモリ１０２と、メモリ１０２に格納されたプログラムを実行する演算処理部としてのプロセッサ１０１とを備えている。プロセッサ１０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などの情報処理回路である。メモリ１０２は、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などの揮発性の記憶装置である。オーサリング装置１は、例えば、コンピュータである。実施の形態１に係るオーサリングプログラムは、情報を記録する記録媒体から媒体情報読取装置（図示せず）を介して又はインターネットなどに接続可能な通信インタフェース（図示せず）を介してメモリ１０２に格納される。
【００１４】
また、オーサリング装置１は、マウス、キーボード、タッチパネル、などのユーザ操作部である入力装置１０３を備えている。入力装置１０３は、ユーザ操作を受け付けるユーザ操作装置である。入力装置１０３は、ジェスチャー操作による入力を受け付けるＨＭＤ（Ｈｅａｄ  Ｍｏｕｎｔｅｄ  Ｄｉｓｐｌａｙ）、視線操作による入力を受け付ける装置、などを含む。ジェスチャー操作による入力を受け付けるＨＭＤは、小型カメラを備えており、ユーザの身体の一部を撮像し、その身体の動きであるジェスチャー操作を、ＨＭＤに対する入力操作として認識する。
【００１５】
また、オーサリング装置１は、画像を表示する表示装置１０４を備えている。表示装置１０４は、オーサリングを行う際にユーザに情報を提示するディスプレイである。表示装置１０４は、アプリケーションを表示する。表示装置１０４は、ＨＭＤのシースルー型のディスプレイであってもよい。
【００１６】
また、オーサリング装置１は、各種情報を記憶する記憶装置であるストレージ１０５を備えてもよい。ストレージ１０５は、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、などの記憶装置である。ストレージ１０５は、プログラム、オーサリングの実行時に使用するデータ、オーサリングによって生成されるデータ、などを格納する。ストレージ１０５は、オーサリング装置１の外部の記憶装置であってもよい。ストレージ１０５は、例えば、通信インタフェース（図示せず）を介して接続可能なクラウド上に存在する記憶装置であってもよい。
【００１７】
オーサリング装置１は、メモリ１０２に格納されるプログラムを実行するプロセッサ１０１によって実現されることができる。また、オーサリング装置１の一部が、メモリ１０２に格納されているプログラムを実行するプロセッサ１０１によって実現されてもよい。
【００１８】
《１−１−２》オーサリング装置１
図２は、実施の形態１に係るオーサリング装置１の構成を概略的に示す機能ブロック図である。オーサリング装置１は、実施の形態１に係るオーサリング方法を実施することができる装置である。オーサリング装置１は、仮想オブジェクトの奥行きを考慮したオーサリングを行う。
【００１９】
オーサリング装置１は、
（１）実空間に存在する対象物を指定するユーザ操作を受け付け、
（２）指定された対象物である指定先の対象物に関連する基準平面上の基準点を特定し（この処理は、後述する図９（Ａ）から（Ｃ）に示される。）、
（３）基準平面と基準点とに基づいて、基準点を含む位置に配置され、仮想オブジェクトが配置されることができる第１の配置平面を決定し（この処理は、後述する図１０（Ａ）から（Ｃ）に示される。）、
（４）第１の配置平面を回転させることで得られ、仮想オブジェクトが配置されることができる１つ以上の第２の配置平面を決定し（この処理は、後述する図１４から図１６に示される。）、
（５）第１の配置平面と仮想オブジェクトとを紐づけした情報及び第２の配置平面と仮想オブジェクトとを紐づけした情報とをオーサリングデータとして、例えば、ストレージ１０５に出力する。
【００２０】
図２に示されるように、オーサリング装置１は、オーサリング部１０と、データ取得部２０と、認識部３０とを備えている。オーサリング部１０は、ユーザによって行われる入力操作であるユーザ操作に応じてオーサリングを実行する。データ取得部２０は、ストレージ１０５（これは、図１に示される。）から、オーサリングの実行時に使用するデータを取得する。認識部３０は、オーサリング部１０によって実行されるオーサリングの過程で必要となる、画像認識などの処理を行う。実施の形態１におけるストレージ１０５は、図１に示されるが、ストレージ１０５の全体又は一部は、オーサリング装置１の外部の記憶装置であってもよい。
【００２１】
《１−１−３》データ取得部２０
図３（Ａ）から（Ｄ）は、実施の形態１に係るオーサリング装置１のデータ取得部２０によって扱われるデータ及び実空間を撮影するカメラの位置及び姿勢を示すパラメータを示す図である。カメラについては、実施の形態２で説明する。データ取得部２０は、オーサリング部１０がオーサリングを実行するときに用いるデータを取得する。オーサリングの実行時に用いられるデータは、３次元モデルを示す３次元モデルデータ、仮想オブジェクトを示す仮想オブジェクトデータ、及びセンサから出力されるセンサデータを含むことができる。これらのデータは、予めストレージ１０５に記憶されていてもよい。
【００２２】
〈３次元モデルデータ〉
３次元モデルデータは、ＡＲ画像を表示する実空間の情報を、３次元的に表すデータである。３次元モデルデータは、図３（Ａ）から（Ｃ）に示されるデータを含むことができる。３次元モデルデータは、例えば、ＳＬＡＭ（Ｓｉｍｕｌｔａｎｅｏｕｓ  Ｌｏｃａｌｉｚａｔｉｏｎ  ａｎｄ  Ｍａｐｐｉｎｇ）技術を用いて取得することができる。ＳＬＡＭ技術では、実空間のカラー画像（すなわち、ＲＧＢ画像）と奥行き画像（すなわち、Ｄｅｐｔｈ画像）とを取得することができるカメラ（以下「ＲＧＢＤカメラ」とも言う。）を用いて実空間を撮影することによって、３次元モデルデータを取得する。
【００２３】
図３（Ａ）は、３次元点群の例を表している。３次元点群は、実空間に存在する物体である対象物を表している。実空間に存在する対象物は、例えば、床、壁、ドア、天井、床に置かれた物品、天井から吊るされた物品、壁に取り付けられた物品、などを含む。
【００２４】
図３（Ｂ）は、３次元モデルデータの生成過程で取得された平面の例を表している。この平面は、図３（Ａ）に示される３次元点群から取得される。
【００２５】
図３（Ｃ）は、複数の視点からの撮影及び複数の角度による撮影によって得られた画像の例を表している。ＳＬＡＭ技術では、ＲＧＢＤカメラなどを用いて、複数の視点から及び複数の角度で実空間を撮影することによって、３次元モデルデータが生成される。このときの撮影時に得られた図３（Ｃ）に示される画像（すなわち、画像データ）は、図３（Ａ）に示される３次元点群、図３（Ｂ）に示される平面、又はこれらの両方と共に、ストレージ１０５に記憶される。
【００２６】
図３（Ｄ）に示される情報は、それぞれの画像についてのカメラの位置及び姿勢を示す情報である。ｋ＝１，２，…，Ｎ（Ｎは正の整数）とした場合、ｐｋは、ｋ番目のカメラの位置を示し、ｒｋは、ｋ番目のカメラの姿勢、すなわち、カメラの撮影方向を示している。
【００２７】
図４は、実空間に存在する対象物及びそれらに付与された物体ＩＤ（Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）の例を示す図である。図４において、物体ＩＤの例として、「Ａ１」，「Ａ２」，「Ａ３」，及び「Ａ４」が記載されている。３次元モデルデータは、仮想オブジェクトの３次元的な配置位置を決定する処理、画像上の対象物の位置、姿勢、又はこれらの両方を導出する処理、などにおいて使用される。３次元モデルデータは、オーサリング部１０の入力データの一つである。
【００２８】
３次元モデルデータは、図３（Ａ）から（Ｄ）に示される情報のほかに、他の情報を含んでもよい。３次元モデルデータは、実空間に存在する対象物のそれぞれのデータを含んでもよい。例えば、図４に示されるように、３次元モデルデータは、各対象物に付与された物体ＩＤと、物体ＩＤが付与された対象物ごとの部分的な３次元モデルデータとを含んでもよい。
【００２９】
図４に示される場合には、対象物ごとの部分的な３次元モデルデータは、例えば、セマンティックセグメンテーション技術を用いて取得することができる。例えば、図３（Ａ）に示される３次元点群のデータ、図３（Ｂ）に示される平面のデータ、又はこれらの両方のデータを、各対象物が持つ領域ごとに分割することで、対象物ごとの部分的な３次元モデルデータを取得することが可能である。また、非特許文献１は、点群データから点群データに含まれている対象物の領域を検出する技術を説明している。
【００３０】
【非特許文献１】Ｆｌｏｒｉａｎ  Ｗａｌｃｈ、  “Ｄｅｅｐ  Ｌｅａｒｎｉｎｇ  ｆｏｒ  Ｉｍａｇｅ−Ｂａｓｅｄ  Ｌｏｃａｌｉｚａｔｉｏｎ”、  Ｄｅｐａｒｔｍｅｎｔ  ｏｆ  Ｉｎｆｏｒｍａｔｉｃｓ、  Ｔｅｃｈｎｉｃａｌ  Ｕｎｉｖｅｒｓｉｔｙ  ｏｆ  Ｍｕｎｉｃｈ  （ＴＵＭ）、  ２０１６年１０月１５日
【００３１】
〈仮想オブジェクトデータ〉
図５は、平面状の仮想オブジェクトの例を示す図である。図６は、立体状の仮想オブジェクトの例を示す図である。仮想オブジェクトデータは、ＡＲ画像として表示される仮想オブジェクトを示す情報を格納するデータである。ここで扱われる仮想オブジェクトには、２種類の属性がある。
【００３２】
図５に示される仮想オブジェクトＶ１は、平面で表される。仮想オブジェクトＶ１は、画像及び動画などに相当する。仮想オブジェクトＶ１の重心座標は、Ｚｖ１で表される。重心座標Ｚｖ１は、ローカル座標系の座標としてストレージ１０５に記憶されている。
【００３３】
図６に示される仮想オブジェクトＶ２は、立体で表される。仮想オブジェクトＶ２は、３次元モデリングツールなどによって作成されたデータに相当する。仮想オブジェクトＶ２の重心座標は、Ｚｖ２で表される。重心座標Ｚｖ２は、ローカル座標系の座標としてストレージ１０５に記憶されている。
【００３４】
〈センサデータ〉
センサデータは、画像データ撮影時のカメラの位置及び姿勢の推定処理を支援するために用いられるデータである。センサデータは、例えば、実空間を撮影するカメラの傾きを測定するジャイロセンサから出力された傾きデータ、このカメラの加速度を測定する加速度センサから出力された加速度データ、などを含むことができる。センサデータは、カメラに付随する情報に限られず、例えば、位置情報計測システムであるＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）によって計測された位置データを含んでもよい。
【００３５】
《１−１−４》認識部３０
認識部３０は、データ取得部２０によって取得された３次元モデルデータを用いて、画像上の特定箇所に存在する平面又は対象物を認識する。認識部３０は、ピンホールカメラモデルに従って、画像上の２次元位置を実空間上の３次元位置に変換し、この３次元位置を３次元モデルデータと照合することによって画像の特定箇所に存在する平面又は対象物を認識する。なお、画像上の２次元位置は、ピクセル座標によって表される。
【００３６】
また、認識部３０は、画像を入力として受け取り、受け取った画像に基づいて、この画像を撮影したカメラの位置及び姿勢を認識する。画像からその画像を撮影したカメラの位置及び姿勢のペアを推定する方法には、例えば、ＰｏｓｅＮｅｔと呼ばれるニューラルネットワークを利用した方法が知られている。この方法は、例えば、非特許文献２に説明されている。
【００３７】
【非特許文献２】Ｃｈａｒｌｅｓ  Ｒ．Ｑｉ、外３名、  “ＰｏｉｎｔＮｅｔ：  Ｄｅｅｐ  Ｌｅａｒｎｉｎｇ  ｏｎ  Ｐｏｉｎｔ  Ｓｅｔｓ  ｆｏｒ  ３Ｄ  Ｃｌａｓｓｉｆｉｃａｔｉｏｎ  ａｎｄ  Ｓｅｇｍｅｎｔａｔｉｏｎ”、  Ｓｔａｎｆｏｒｄ  Ｕｎｉｖｅｒｓｉｔｙ
【００３８】
また、画像からその画像を撮影したカメラの位置及び姿勢のペアを推定する他の方法としては、ＳＬＡＭ技術を用いた方法が知られている。
【００３９】
《１−１−５》オーサリング部１０
オーサリング部１０は、データ取得部２０によって取得された３次元モデルデータ、仮想オブジェクトデータ、又はこれらの両方のデータを用いて、仮想オブジェクトのオーサリングを実行する。オーサリング部１０は、オーサリングの結果をオーサリングデータとして出力する。オーサリング部１０は、ユーザが指定した箇所、すなわち、ユーザが指定した指定先の領域、に関連する仮想オブジェクトが、指定先の領域の奥行き方向の位置に合致する奥行き方向の位置を持つように、オーサリングを実行する。図２に示されるように、オーサリング部１０は、ユーザインターフェース部１１と、指定先特定部１２と、配置位置計算部１３と、複数視点計算部１４とを含む。
【００４０】
《１−１−６》ユーザインターフェース部１１
ユーザインターフェース部１１は、オーサリングのためのユーザインターフェースを提供する。ユーザインターフェース部１１は、例えば、図１に示される入力装置１０３、及び表示装置１０４、などである。ユーザインターフェース部１１は、ＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）アプリケーションを含むことができる。具体的には、ユーザインターフェース部１１は、オーサリングに利用される画像又は３次元データ（例えば、３次元点群データ、平面データ、など）を表示装置１０４に表示させ、オーサリングに必要な、入力装置１０３からのユーザ操作を受け付ける。ここで、３次元データは、例えば、３次元点群データ、平面データ、などである。
【００４１】
入力装置１０３を用いて行われるユーザの入力操作を説明する。「操作Ｕ１」では、ユーザは、オーサリングに使用される画像を指定する。例えば、「操作Ｕ１」では、ユーザは、図３（Ａ）、（Ｂ）及び（Ｃ）に示される画像の中から１つの画像を選択する。「操作Ｕ２」では、ユーザは、ＡＲ画像の基準となる指定先を指定する。「操作Ｕ３」では、ユーザは、仮想オブジェクトを配置するための操作を行う。「操作Ｕ４」では、ユーザは、平面パターンの数を指定する。平面パターンの数は、後述する複数視点計算部１４で計算によって取得される平面の数である。
【００４２】
ユーザが、「操作Ｕ１」で指定した画像において、「操作Ｕ２」で指定先を指定することで、指定先特定部１２及び配置位置計算部１３は、指定先の３次元的な位置と指定先に関連する仮想オブジェクトが配置される平面である配置平面とを求める。
【００４３】
ユーザが、求められた平面に対して、「操作Ｕ３」で仮想オブジェクトが配置される位置を指定することで、配置位置計算部１３は、仮想オブジェクトの３次元的な位置と姿勢を算出する。また、ユーザが「操作Ｕ４」で平面パターンの数Ｇ（Ｇは、正の整数である。）を指定することで、複数視点計算部１４は、Ｇ個の視点から（すなわち、Ｇパターンの視線方向に）指定先を見た際の仮想オブジェクトの配置位置を求めることができる。
【００４４】
《１−１−７》指定先特定部１２
指定先特定部１２は、ユーザインターフェース部１１によってユーザが指定した指定先から、基準点ｐと基準平面Ｓｐとを求める。指定先を指定する方法としては、第１の指定方法と第２の指定方法とがある。指定先特定部１２は、指定先の指定方法ごとに、基準点ｐ及び基準平面Ｓｐの導出方法として、異なる方法を用いる。
【００４５】
＜第１の指定方法＞
第１の指定方法では、ユーザは、ＧＵＩが表示された画像に対して、指定先とする領域を、矩形又は多角形などの直線で囲う操作を行う。直線で囲われた箇所が、指定先の領域となる。第１の指定方法で指定先が指定された場合、基準点ｐと基準平面Ｓｐとは、以下のように求められる。
【００４６】
指定先として指定されたｎ角形の領域の各頂点を、Ｈ１，…，Ｈｎとする。ここで、ｎは３以上の整数である。頂点Ｈ１，…，Ｈｎは、ＧＵＩ画像上のピクセル座標（ｕ，ｖ）で表される。これらの座標は、ピンホールカメラモデルに従い、３次元座標ａｉ＝（ｘ，ｙ，ｚ）に変換される。ここで、ｉ＝１，２，…，ｎである。
【００４７】
３次元座標ａ１，…，ａｎから、任意に選ばれた３つの点をｂ１，ｂ２，ｂ３とすると、点ｂ１，ｂ２，ｂ３を含む平面Ｓｍは、一意に求まる。また、ｎ角形の領域の頂点Ｈ１，…，Ｈｎのうちの３つの点ｂ１，ｂ２，ｂ３に選ばれなかった点の集合Ｃを、以下のように表記する。
Ｃ＝｛ｃ１，ｃ２，…，ｃｎ−３｝
【００４８】
３次元座標ａ１，…，ａｎから３つの点を選ぶ選び方は、以下の式（１）に示されるＪ通りである。ここで、Ｊは、正の整数である。
【００４９】
【数１】
0006818968.tif 000002
【００５０】
このため、ｎ角形の頂点のうちの任意の３つの点から求められる平面は、Ｊ個存在する。Ｊ個の平面を、Ｓｍ１，…，ＳｍＪと表記する。
【００５１】
また、ｎ角形の領域の頂点Ｈ１，…，Ｈｎから任意の３つの点を除いた点の集合Ｃ１，…，ＣＪは、以下に示すように、Ｊ通り存在する。
【００５２】
【数２】
0006818968.tif 000003
【００５３】
なお、例えば、要素ｃ１，ｎ−３は、集合Ｃ１における、ｎ−３番目の要素、すなわち、点を表す。
【００５４】
平面Ｓと点Ｘとの距離を、Ｄ（Ｓ，Ｘ）と表記すると、基準平面Ｓｐは、以下の式（２）で求められる。ｎ角形の頂点のうちの３つの点から求められる複数の平面のうち、他の点との距離の平均が一番小さいものを基準平面Ｓｐとする。ここで、「他の点」とは、平面を構成しない点である。
【００５５】
【数３】
0006818968.tif 000004
【００５６】
ここで、要素Ｃｉ，ｊは、集合Ｃｉにおける、ｊ番目の要素である。
【００５７】
また、ｎ角形の重心の座標をＡＧとすると、座標ＡＧから式（２）で求められた基準平面Ｓｐに垂線を引いたときの、基準平面Ｓｐと垂線との交点を基準点ｐとする。
【００５８】
＜第２の指定方法＞
ユーザは、ＧＵＩが表示された画像に対して、指定先とする１つの点を指定する操作を行う。第２の指定方法では、ユーザによって指定先の領域である点が指定された場合、基準点ｐと基準平面Ｓｐは、以下のように求められる。
【００５９】
基準点ｐが指定された画像上の点をＭ＝（ｕ，ｖ）とすると、Ｍは、ピンホールカメラモデルに従い、３次元座標ａｉ＝（ｘ，ｙ，ｚ）に変換することが可能である。第２の指定方法では、３次元座標ａｉを、そのまま基準点ｐの座標とする。
【００６０】
認識部３０は、３次元モデルデータの平面データから基準点ｐを含む平面を検出し、基準平面Ｓｐを決定する。認識部３０は、対応する平面が存在しない場合は、例えば、ＲＡＮＳＡＣ（ＲＡＮｄｏｍ  Ｓａｍｐｌｅ  Ｃｏｎｓｅｎｓｕｓ）を利用して、基準点ｐの周辺の点群データを用いて疑似平面を検出してもよい。
【００６１】
図７は、指定先の対象物上の領域を直線で囲うユーザ操作によって指定先を指定する第１の指定方法を示す図である。図８は、指定先の対象物上の点を指定するユーザ操作によって指定先を指定する第２の指定方法を示す図である。図８に示される第２の指定方法では、１つの点のみから平面を検出するため、指定先の対象物が平面ではない場合に、基準平面Ｓｐを適切に検出することができない場合がある。しかし、図７に示される第１の指定方法を用いることで、指定先の対象物の形状が平面ではない場合であっても、基準平面Ｓｐを導出することができる。
【００６２】
《１−１−８》配置位置計算部１３
配置位置計算部１３は、以下に示される第１の処理１３ａと、第２の処理１３ｂとを行う。
【００６３】
第１の処理１３ａでは、配置位置計算部１３は、仮想オブジェクトが配置される配置平面Ｓｑを計算する。配置位置計算部１３は、指定先特定部１２で求められた基準点ｐと基準平面Ｓｐとから、仮想オブジェクトが配置される平面である配置平面Ｓｑを導出する。配置平面Ｓｑの導出方法としては、第１の導出方法と第２の導出方法とがある。
【００６４】
＜第１の導出方法＞
第１の導出方法では、配置位置計算部１３は、基準平面Ｓｐを、そのまま配置平面Ｓｑとして扱う。
【００６５】
＜第２の導出方法＞
第２の導出方法では、まず、配置位置計算部１３は、３次元モデルデータから実空間における水平面Ｓｈを検出する。水平面Ｓｈは、ユーザインターフェース部１１を用いるユーザのユーザ操作によって選択されてもよい。また、水平面Ｓｈは、画像認識及び空間認識技術を用いて自動的に決定されてもよい。図９（Ａ）は、ユーザ操作によって指定された指定先の領域及び基準点ｐの例を示す図である。図９（Ｂ）は、基準点ｐ及び基準平面Ｓｐの例を示す図である。図９（Ｃ）は、水平面Ｓｈの例を示す図である。
【００６６】
図１０（Ａ）、（Ｂ）及び（Ｃ）は、基準平面Ｓｐと水平面Ｓｈとから配置平面Ｓｑを導出する処理を示す図である。このとき、第２の導出方法では、配置位置計算部１３は、図１０（Ａ）、（Ｂ）及び（Ｃ）に示される処理によって、配置平面Ｓｑを導出する。
【００６７】
先ず、図１０（Ａ）に示されるように、基準平面Ｓｐと水平面Ｓｈとの交線をＬとする。次に、図１０（Ｂ）に示されるように、基準平面Ｓｐを、交線Ｌを中心軸にして、水平面Ｓｈと垂直となるように回転させて水平面Ｓｈと垂直な平面Ｓｖとする。次に、図１０（Ｃ）に示されるように、水平面Ｓｈと垂直な平面Ｓｖを、基準点ｐを通るように平行移動させる。次に、基準点ｐを通る、水平面Ｓｈと垂直な平面Ｓｖを、配置平面Ｓｑとする。
【００６８】
第１の導出方法では、指定先の領域の傾きによっては、視認性の悪い配置平面となる場合がある。しかし、第２の導出方法のように、基準点ｐを通る、水平面Ｓｈと垂直な平面Ｓｖを、配置平面Ｓｑとすることで、指定先の領域の傾きに依存せずに、仮想オブジェクトの奥行き方向の位置を指定先の領域の奥行き方向の基準位置である基準点ｐに揃えることができる。
【００６９】
図１１（Ａ）及び（Ｂ）は、基準点ｐと基準平面Ｓｐとから、仮想オブジェクトが配置される配置平面Ｓｑを導出するための第１の導出方法と第２の導出方法とを示す図である。
【００７０】
第２の処理１３ｂでは、配置位置計算部１３は、仮想オブジェクトの３次元的な配置位置ｑを計算する。配置位置計算部１３が、第１の処理１３ａにより、仮想オブジェクトが配置される配置平面Ｓｑを導出した後に、ユーザは、ＧＵＩにより、仮想オブジェクトの配置位置を指定する。例えば、ユーザは、画像上の仮想オブジェクトを配置したい場所を、マウスなどの入力装置１０３でクリックすることで、仮想オブジェクトの配置位置を指定する。このとき、ＧＵＩの画像上に配置平面Ｓｑを投影して、ユーザによる配置位置の指定操作を支援してもよい。
【００７１】
ユーザの指定によって取得された画像上の座標をＤ＝（ｕ，ｖ）とすると、座標Ｄから、ピンホールカメラモデルに従い、３次元座標Ｅ＝（ｘ，ｙ，ｚ）が得られる。３次元モデルデータから得られるカメラの３次元座標をＦ＝（ｘｃ，ｙｃ，ｚｃ）とするとき、座標Ｅと座標Ｆの２点によって形成されるベクトルと、配置平面Ｓｑとの交点を、配置位置ｑとする。また、１つの指定先に対して、複数の仮想オブジェクトを配置することも可能である。ｔ個（ｔは正の整数である。）の仮想オブジェクトを配置する場合には、同様の手順で配置位置ｑ１，ｑ２，…，ｑｔを導出する。
【００７２】
また、配置位置を決定した後に、ユーザによって仮想オブジェクトのサイズをドラッグアンドドロップなどのユーザ操作によって変更してもよい。その場合、ユーザ操作時に、表示装置１０４に、レンダリングの結果として得られる仮想オブジェクトが、表示されることが望ましい。
【００７３】
また、このとき、ユーザは、仮想オブジェクトが配置される向き（すなわち、姿勢）をドラックアンドドロップなどのユーザ操作により変更してもよい。その場合は、仮想オブジェクトの回転に関する情報もオーサリングデータとしてストレージ１０５に記憶される。以上の処理を行うことで、仮想オブジェクトの３次元的な配置位置、範囲、姿勢が求められる。
【００７４】
《１−１−９》複数視点計算部１４
配置位置計算部１３までの処理の結果、ある１方向から見た際に、指定先の領域の奥行き方向の位置と仮想オブジェクトの奥行き方向の位置とが揃えられている。図１２（Ａ）は、指定先の領域を手前から見る場合に、配置平面Ｓｑ上に表示された仮想オブジェクト＃１及び＃２を視認することができることを示す図である。図１２（Ｂ）は、指定先の領域を上から見る場合に、配置平面Ｓｑ上に表示された仮想オブジェクト＃１及び＃２を視認することができないことを示す図である。
【００７５】
図１３は、ビルボードレンダリングを用いて仮想オブジェクト＃１及び＃２を表示した例を示す図である。ビルボードレンダリングを用いて、仮想オブジェクトが常にカメラの視線ベクトルに垂直な姿勢になるようにレンダリングを実行した場合は、図１３に示されるように、仮想オブジェクトを視認することができる。しかし、仮想オブジェクト＃１及び＃２の奥行き方向の位置Ｌ１及びＬ２が指定先の領域の奥行き方向の位置Ｌｐとずれている。
【００７６】
複数視点計算部１４は、上記のように視点が大きく変わった際であっても、仮想オブジェクトの奥行き方向の位置を指定先の領域の奥行き方向の位置に合致させるために、１つの指定先に対して、複数の配置平面を用意し、それぞれの配置平面での仮想オブジェクトの配置位置の計算を行う。複数視点計算部１４は、以下の第１の視点計算処理１４ａと、第２の視点計算処理１４ｂとを、追加する配置平面の数に等しい回数繰り返す。
【００７７】
第１の視点計算処理１４ａでは、複数視点計算部１４は、配置位置計算部１３で求められた配置平面Ｓｑを、基準点ｐを通る軸を中心にして回転させることで得られた平面Ｓｒを求める。
【００７８】
第２の視点計算処理１４ｂでは、複数視点計算部１４は、配置位置計算部１３で求められた配置される仮想オブジェクトｖ１，ｖ２，…，ｖｔの平面Ｓｒ上での配置位置ｑｒ１，ｑｒ２，…，ｑｒｔを求める。
【００７９】
第１の視点計算処理１４ａについては、ドラッグアンドドロップなどのユーザ操作によって、ユーザ自身に平面Ｓｒ設定させてもよい。また、複数視点計算部１４は、平面Ｓｒを自動で求める機能を備えてもよい。自動で求める方法の例は後述する。
【００８０】
第２の視点計算処理１４ｂについては、複数視点計算部１４は、配置位置計算部１３で求めた仮想オブジェクトｖ１，ｖ２，…，ｖｔの配置位置ｑ１，ｑ２，…，ｑｔと基準点ｐの配置平面Ｓｑ上での相対的な位置関係を利用することで、平面Ｓｒ上での配置位置ｑｒ１，ｑｒ２，…，ｑｒｔを求めることができる。
【００８１】
また、上記の方法で一時的な配置位置を求めた後に、ユーザによって配置位置を調整するユーザインターフェースを提供してもよい。また、複数視点計算部１４は、一時的な配置位置を求めた後に、３次元モデルデータの点群のデータ、３次元モデルデータの平面のデータ、又はこれらの両方のデータを利用して、仮想オブジェクトと実空間における対象物の衝突判定を行い、仮想オブジェクトの配置位置を調整してもよい。
【００８２】
第１の視点計算処理１４ａにおいて、平面Ｓｒを自動で求める方法の例を説明する。ここでは、平面Ｓｒの数が３つの例を説明する。平面の数が３の場合、複数視点計算部１４では、平面Ｓｒとして配置平面Ｓｒ１，Ｓｒ２，Ｓｒ３を導出する。図１４は、複数視点計算部１４によって導出された配置平面Ｓｒ１を示す図である。図１５は、複数視点計算部１４によって導出された配置平面Ｓｒ２の例を示す図である。図１６は、複数視点計算部１４によって導出された配置平面Ｓｒ３の例を示す図である。図１４から図１６の例は、指定先を前後、上下、左右から見ることを考慮した配置平面Ｓｒ１，Ｓｒ２，Ｓｒ３を示している。この例の場合、配置平面Ｓｒ１，Ｓｒ２，Ｓｒ３は、ユーザ操作無しで、以下のように求めることができる。
【００８３】
図１４に示される例は、配置位置計算部１３で導出した配置平面Ｓｑをそのまま、配置平面Ｓｒ１として扱う例である。
【００８４】
図１５に示される配置平面Ｓｒ２は、配置平面Ｓｑを、基準点ｐを通る水平軸を中心にして、配置位置計算部１３で検出した水平面Ｓｈと平行となるように回転させることによって得られる平面である。
【００８５】
図１６に示される配置平面Ｓｒ３は、配置平面Ｓｑを、配置平面Ｓｒ１及び配置平面Ｓｒ２の両方と垂直な方向に変更し、かつ、基準点ｐを通る平面である。
【００８６】
以上のように、配置位置計算部１３は、複数の配置平面及び配置位置を計算し、計算結果をオーサリングデータとして出力する。レンダリングの実行時には、カメラの角度に応じて、レンダリングする平面を切り替えることで、複数の視点から見た際であっても、指定先に関する複数の仮想オブジェクトの奥行き方向の位置を指定先の奥行き方向の位置に合致させることができる。
【００８７】
《１−１−１０》オーサリングデータ
オーサリングデータは、オーサリング部１０によって行われたオーサリングの結果がストレージ１０５に格納されたデータである。オーサリングデータには、例えば、以下の第１から第６の情報Ｉ１〜Ｉ６が含まれる。
【００８８】
第１の情報Ｉ１は、指定先に関する情報であり、基準点ｐと基準平面Ｓｐの情報を含む。第２の情報Ｉ２は、配置平面に関する情報であり、配置平面Ｓｑと平面Ｓｒの情報を含む。第３の情報Ｉ３は、仮想オブジェクトの情報であり、仮想オブジェクトｖ１，ｖ２，…の情報を含む。第４の情報Ｉ４は、仮想オブジェクトの配置位置を示す情報である。第５の情報Ｉ５は、仮想オブジェクトの配置範囲を示す情報である。第６の情報Ｉ６は、仮想オブジェクトの姿勢を示す情報である。姿勢を示す情報は、仮想オブジェクトの向きを示す情報とも言う。
【００８９】
オーサリング部１０で求められた仮想オブジェクトの３次元的な配置位置は、配置平面、指定先、又はこれらの両方に紐づけて管理される。
【００９０】
《１−２》動作
図１７は、実施の形態１に係るオーサリング装置１の動作を示すフローチャートである。まず、ステップＳ１１において、オーサリング装置１は、ユーザ指示に従い、オーサリング部１０の機能を搭載したオーサリングアプリケーションを起動する。
【００９１】
ステップＳ１２において、オーサリング装置１は、ユーザによってオーサリング部１０のユーザインターフェース部１１で指定された、オーサリングに使用する画像、又は３次元データである３次元点群若しくは平面を取得し、取得された画像又は３次元データを表示装置１０４に表示させる。ユーザによる指定は、ユーザインターフェース部１１であるマウス又はタッチパッドなどにより行われる。
【００９２】
ステップＳ１３において、オーサリング装置１は、ユーザによってユーザインターフェース部１１で指定された画像又は３次元データの指定先を特定する。オーサリング装置１は、ユーザによって指定された指定先から基準点ｐと基準平面Ｓｐを求める。
【００９３】
ステップＳ１４において、オーサリング装置１は、仮想オブジェクトが配置される配置平面Ｓｑを決定する。
【００９４】
ステップＳ１５において、オーサリング装置１は、ユーザ操作により入力された、仮想オブジェクトの配置位置、サイズ、回転などの情報を受け取る。オーサリング装置１は、受け取った情報に基づいて、仮想オブジェクトの３次元的な配置位置及び姿勢などの情報を計算する。
【００９５】
ステップＳ１６において、オーサリング装置１は、複数の視点からのレンダリングに対応させるために、追加する平面の数に等しい回数だけ、配置平面とその配置平面に置かれる仮想オブジェクトの配置位置などを求める。このとき、追加する配置平面は、ユーザ操作によってＧＵＩ上で指定される場合と、ユーザ操作によらずに自動的に決定される場合とがある。
【００９６】
ステップＳ１７において、オーサリング装置１は、複数平面での仮想オブジェクトのオーサリング情報を求めた後に、ここまでの処理で得たオーサリングに関する情報を、オーサリングデータとして出力して、ストレージ１０５に保存する。
【００９７】
《１−３》効果
以上に説明したように、実施の形態１では、実空間における指定先の対象物と、その指定先の対象物に関連する仮想オブジェクトとに基づくオーサリングを実行する際に、指定先特定部１２によって、ユーザの指定先から基準点ｐと基準平面Ｓｐを求める。このため、指定先の形状及び傾きに依存せずに、仮想オブジェクトの奥行き方向の位置を指定先の奥行き方向の位置に合致させることができる。
【００９８】
また、複数視点計算部１４によって、複数の仮想オブジェクトの配置平面が求められる。このため、カメラの向き又は姿勢を変えた際であっても、仮想オブジェクトの奥行き方向の位置を指定先の奥行き方向の位置に合致させることができる。
【００９９】
また、１つの指定先に関して複数のコンテンツを登録した場合であっても、カメラの向き又は姿勢を変えた際であっても、仮想オブジェクトの奥行き方向の位置を指定先の奥行き方向の位置に合致させることができる。
【０１００】
《２》実施の形態２．
《２−１》構成
《２−１−１》ハードウェア構成
実施の形態１に係るオーサリング装置１は、オーサリングデータを生成し出力する装置であるが、オーサリング装置は、レンダリングを実行するための構成を備えてもよい。
【０１０１】
図１８は、本発明の実施の形態２に係るオーサリング装置２のハードウェア構成の例を示す図である。図１８において、図１に示される構成要素と同一又は対応する構成要素には、図１に示される符号と同じ符号が付される。実施の形態２に係るオーサリング装置２は、センサ１０６とカメラ１０７を備えた点において、実施の形態１に係るオーサリング装置１と相違する。
【０１０２】
センサ１０６は、ＩＭＵ（Ｉｎｅｒｔｉａｌ  Ｍｅａｓｕｒｅｍｅｎｔ  Ｕｎｉｔ）、赤外線センサ、又はＬｉＤＡＲ（Ｌｉｇｈｔ  Ｄｅｔｅｃｔｉｏｎ  ａｎｄ  Ｒａｎｇｉｎｇ）、などである。ＩＭＵは、加速度センサ、地磁気センサ、ジャイロセンサ、などの各種のセンサが統合された検出装置である。カメラ１０７は、撮像装置であり、例えば、単眼カメラ、ステレオカメラ、又はＲＧＢＤカメラ、などである。
【０１０３】
オーサリング装置２は、実空間を撮影するカメラ１０７から出力される画像データからカメラ１０７の位置及び姿勢を推定し、推定されたカメラ１０７の位置及び姿勢とオーサリングデータとに基づいて、仮想オブジェクトが配置される表示平面を、第１の配置平面及び１つ以上の第２の配置平面の中から選択し、画像データと表示平面上に配置された仮想オブジェクトとに基づく表示画像データを出力する。
【０１０４】
オーサリング装置２は、第１の配置平面及び１つ以上の第２の配置平面のうちの、カメラ１０７の位置と基準点ｐとによって決まるベクトルと第１の配置平面とのなす角度及び前記ベクトルと１つ以上の第２の配置平面とのなす角度が最も９０°に近い配置平面を、仮想オブジェクトが表示される表示平面として選択する。
【０１０５】
《２−１−２》オーサリング装置２
図１９は、実施の形態２に係るオーサリング装置２の構成を概略的に示す機能ブロック図である。図１９において、図２に示される構成要素と同一又は対応する構成要素には、図２に示される符号と同じ符号が付される。実施の形態２に係るオーサリング装置２は、画像取得部４０と、表示装置１０４に画像データを出力するＡＲ表示部５０とを備えた点において、実施の形態１に係るオーサリング装置１と相違する。
【０１０６】
画像取得部４０は、カメラ１０７から出力される画像データを取得する。画像取得部４０で取得される画像データは、オーサリング部１０、認識部３０、及びＡＲ表示部５０に入力される。カメラ１０７から出力される画像データを用いてオーサリングを実行する場合は、カメラ１０７から出力される画像データは、オーサリング部１０に入力される。それ以外の場合は、カメラ１０７から出力される画像データは、ＡＲ表示部５０に入力される。
【０１０７】
《２−１−３》ＡＲ表示部５０
ＡＲ表示部５０は、オーサリング部１０から出力された又はストレージ１０５に記憶されたオーサリングデータを利用して、表示装置１０４に仮想オブジェクトを表示させる画像データを生成するためのレンダリングを実行する。図１９に示されるように、ＡＲ表示部５０は、位置姿勢推定部５１と、表示平面特定部５２と、レンダリング部５３とを備えている。
【０１０８】
〈位置姿勢推定部５１〉
位置姿勢推定部５１は、オーサリング装置２に接続されているカメラ１０７の位置及び姿勢を推定する。画像取得部４０によってカメラ１０７から取得された撮像画像の画像データは、認識部３０に与えられる。認識部３０は、画像データを入力として受け取り、受け取った画像データに基づいて、この画像を撮影したカメラの位置及び姿勢を認識する。位置姿勢推定部５１は、認識部３０の認識の結果に基づいて、オーサリング装置２に接続されているカメラ１０７の位置及び姿勢を推定する。
【０１０９】
〈表示平面特定部５２〉
実施の形態２におけるオーサリングデータには、複数視点計算部１４によって、ユーザが指定した１つの指定先に対して複数の配置平面が存在する場合がある。複数の配置平面は、例えば、図１４から図１６に示されている配置平面Ｓｒ１，Ｓｒ２，Ｓｒ３である。表示平面特定部５２は、現在のカメラ１０７の位置及び姿勢情報を利用して、複数の配置平面の中からレンダリングの対象となる平面を決定する。ある指定先に対応する基準点をｐとし、ｔ個（ｔは正の整数である。）の表示平面をＳ１，Ｓ２，…，Ｓｔとする。また、カメラ１０７の３次元位置と基準点ｐとによって決まるベクトルと、表示平面Ｓ１，Ｓ２，…，Ｓｔとのなす角度［°］をそれぞれθ１，θ２，…，θｔとし、ｉを１以上ｔ以下の整数とすると、レンダリングの対象となる平面ＳＲは、０°＜θｉ≦９０°のときには、例えば、以下の式（３）のように求まる。カメラ１０７の３次元位置と基準点ｐとによって決まるベクトルは、例えば、カメラ１０７の光軸の位置と基準点ｐとを結ぶ方向のベクトルである。
【０１１０】
【数４】
0006818968.tif 000005
【０１１１】
ただし、９０°＜θｉ≦１８０°のときには、レンダリングの対象となる平面ＳＲは、例えば、以下の式（４）のように求まる。
【０１１２】
【数５】
0006818968.tif 000006
【０１１３】
平面ＳＲを求めたのち、平面ＳＲに含まれる仮想オブジェクトの配置位置などをオーサリングデータから取得し、レンダリング部５３に出力する。つまり、カメラ１０７の３次元位置と基準点ｐとによって決まるベクトルと、表示平面とのなす角度が、９０°に最も近い表示平面が平面ＳＲとして選択される。
【０１１４】
〈レンダリング部５３〉
レンダリング部５３は、位置姿勢推定部５１によって取得されたカメラ１０７の位置及び姿勢並びに表示平面特定部５２によって取得された仮想オブジェクトの配置平面、配置位置の情報に基づいて、仮想オブジェクトの３次元座標を表示装置１０４のディスプレイ上の２次元座標に変換し、表示装置１０４のディスプレイにおいて、変換で得られた２次元座標に仮想オブジェクトを重畳表示する。
【０１１５】
《２−１−４》表示装置１０４
表示装置１０４は、ＡＲ画像をレンダリングするための装置である。表示装置１０４は、例えば、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）のディスプレイ、スマートフォンのディスプレイ、タブレット端末のディスプレイ、又はヘッドマウントディスプレイ、などである。
【０１１６】
《２−２》動作
図２０は、実施の形態２に係るオーサリング装置２の動作を示すフローチャートである。実施の形態２に係るオーサリング装置２によって実行されるオーサリングは、実施の形態１のものと同様である。
【０１１７】
ステップＳ２１において、オーサリング装置２は、ＡＲアプリケーションを起動する。
【０１１８】
ステップＳ２２において、オーサリングデータが起動された後、ステップＳ２３において、オーサリング装置２は、表示データとしてオーサリングデータを取得する。
【０１１９】
ステップＳ２４において、オーサリング装置２は、オーサリング装置２に接続されたカメラ１０７から出力された撮像画像の画像データを取得する。
【０１２０】
ステップＳ２５において、オーサリング装置２は、カメラ１０７の位置及び姿勢を推定する。
【０１２１】
ステップＳ２６において、オーサリング装置２は、オーサリングデータから、求められた指定先についての情報を取得し、１つの指定先について、又は複数の指定先の各々について、ステップＳ２７の処理を実行する。
【０１２２】
ステップＳ２６において、オーサリング装置２は、指定先に対応する複数の配置平面の中から、仮想オブジェクトが表示される配置平面を１つ特定する。次に、オーサリング装置２は、決定した配置平面上に配置される仮想オブジェクトの配置位置、サイズ、位置及び姿勢などの情報をオーサリングデータから取得する。次に、オーサリング装置２は、仮想オブジェクトのレンダリングを実行する。
【０１２３】
ステップＳ２７において、オーサリング装置２は、ＡＲ表示処理を、継続するか、又は、登録した全ての指定先について処理が終了したかの判定を行う。継続する場合には、ステップＳ２４からＳ２７の処理が繰り返される。
【０１２４】
《２−３》効果
以上に説明したように、実施の形態２では、仮想オブジェクトの対象となる指定先とそれに関連する仮想オブジェクトをレンダリングする際に、オーサリング部１０によって出力されたオーサリングデータに基づいたレンダリングを行う。このため、指定先の形状又は傾きに依存せずに、仮想オブジェクトの奥行き方向の位置を指定先の奥行き方向の位置に合致させるレンダリングが可能となる。
【０１２５】
また、表示平面特定部５２によって、複数視点計算部１４で求めた複数のコンテンツ配置平面から、カメラ１０７の位置、姿勢、又はこれらの両方に応じてレンダリングする平面を決定する。このため、カメラ１０７の位置、姿勢、又はこれらの両方に変化がある場合であっても、仮想オブジェクトの奥行き方向の位置を指定先の奥行き方向の位置に合致させることができる。
【符号の説明】
【０１２６】
１，２  オーサリング装置、  １０  オーサリング部、  １１  ユーザインターフェース部、  １２  指定先特定部、  １３  配置位置計算部、  １４  複数視点計算部、  ２０  データ取得部、  ３０  認識部、  ４０  画像取得部、  ５０  ＡＲ表示部、  ５１  位置姿勢推定部、  ５２  表示平面特定部、  ５３  レンダリング部、  １０１  プロセッサ、  １０２  メモリ、  １０３  入力装置、  １０４  表示装置、  １０５  ストレージ、  １０６  センサ、  １０７  カメラ、  ｐ  基準点、  Ｓｐ  基準平面、  Ｓｈ  水平面、  Ｓｑ  配置平面、  Ｓｒ１，Ｓｒ２，Ｓｒ３  配置平面。
【図１】
0006818968.tif 000007
【図２】
0006818968.tif 000008
【図３】
0006818968.tif 000009
【図４】
0006818968.tif 000010
【図５】
0006818968.tif 000011
【図６】
0006818968.tif 000012
【図７】
0006818968.tif 000013
【図８】
0006818968.tif 000014
【図９】
0006818968.tif 000015
【図１０】
0006818968.tif 000016
【図１１】
0006818968.tif 000017
【図１２】
0006818968.tif 000018
【図１３】
0006818968.tif 000019
【図１４】
0006818968.tif 000020
【図１５】
0006818968.tif 000021
【図１６】
0006818968.tif 000022
【図１７】
0006818968.tif 000023
【図１８】
0006818968.tif 000024
【図１９】
0006818968.tif 000025
【図２０】
0006818968.tif 000026