(57)【要約】【課題】最大限の投影サイズでコンテンツを投影すること。【解決手段】情報提供装置１０は、３Ｄ距離カメラで環境の３Ｄ点群情報を取得する処理と、３Ｄ点群情報から平面領域に属する点群を抽出する平面検出を行う処理と、平面領域を複数のグリッドに分割するグリッドサイズの縦横比を投影コンテンツの縦横比に基づいて設定する処理と、距離変換を適用して各グリッドの平面領域外までの距離を求め、距離が最大のグリッド位置を投影位置として算出する処理と、投影位置のグリッド位置の距離から投影サイズを算出する処理とを実行する。【選択図】図３
2017076943.tif 000002
【特許請求の範囲】
【請求項１】
３Ｄ距離カメラで環境の３Ｄ点群情報を取得する取得部と、
前記３Ｄ点群情報から平面領域に属する点群を抽出する平面検出を行う検出部と、
前記平面領域を複数のグリッドに分割するグリッドサイズの縦横比を投影コンテンツの縦横比に基づいて設定する設定部と、
距離変換を適用して各グリッドの平面領域外までの距離を求め、前記距離が最大のグリッド位置を投影位置として算出する第１算出部と、
前記投影位置のグリッド位置の距離から投影サイズを算出する第２算出部と
を有することを特徴とするコンテンツ投影装置。
【請求項２】
前記第１算出部は、前記距離が最大であるグリッド位置が複数存在する場合、前記距離変換の適用により前記距離が割り当てられた各グリッドに所定のフィルタを適用して、前記フィルタの畳み込み演算を繰り返し実行することにより、前記距離が最大であるグリッド位置を１つに絞り込むことを特徴とする請求項１に記載のコンテンツ投影装置。
【請求項３】
前記平面検出により得られた平面領域のうち前記平面領域に属する点群が持つ色情報を参照して、前記平面領域のうち前記色情報が無地に対応しない領域を除外して前記色情報が無地に対応する領域を抽出する抽出部をさらに有し、
前記設定部は、前記抽出部により抽出された領域に対して処理を実行することを特徴とする請求項１または２に記載のコンテンツ投影装置。
【請求項４】
３Ｄ距離カメラで環境の３Ｄ点群情報を取得する処理と、
前記３Ｄ点群情報から平面領域に属する点群を抽出する平面検出を行う処理と、
前記平面領域を複数のグリッドに分割するグリッドサイズの縦横比を投影コンテンツの縦横比に基づいて設定する処理と、
距離変換を適用して各グリッドの平面領域外までの距離を求め、前記距離が最大のグリッド位置を投影位置として算出する処理と、
前記投影位置のグリッド位置の距離から投影サイズを算出する処理と
がコンピュータにより実行されることを特徴とするコンテンツ投影方法。
【請求項５】
３Ｄ距離カメラで環境の３Ｄ点群情報を取得する処理と、
前記３Ｄ点群情報から平面領域に属する点群を抽出する平面検出を行う処理と、
前記平面領域を複数のグリッドに分割するグリッドサイズの縦横比を投影コンテンツの縦横比に基づいて設定する処理と、
距離変換を適用して各グリッドの平面領域外までの距離を求め、前記距離が最大のグリッド位置を投影位置として算出する処理と、
前記投影位置のグリッド位置の距離から投影サイズを算出する処理と
をコンピュータに実行させることを特徴とするコンテンツ投影プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンテンツ投影装置、コンテンツ投影方法及びコンテンツ投影プログラムに関する。
【背景技術】
【０００２】
現場における各種の作業を支援するために、現場の環境や作業の状況に合わせて情報提示が行われることがある。
【０００３】
例えば、情報提示が端末上の画面表示により実現される場合、スマートフォン等に代表される携帯端末装置を手に取ってタッチパネル等の画面を見たり、画面を操作したりしながら作業が行われる。この場合、作業時に手がふさがるので、情報提示が作業進行の妨げの一因になることもある。
【０００４】
また、上記の情報提示は、コンテンツの投影、いわゆるプロジェクションＡＲ（Artificial  Reality）により実現される場合もある。このようにコンテンツを投影する場合、コンテンツが投影される位置およびサイズの設定が手間となる。すなわち、上記の設定を人手に委ねたのでは、現場ごとに設定を行う労力が生まれてしまう。さらに、たとえコンテンツを投影する位置およびサイズが設定されたとしても、現場における作業者の位置や設備の配置が固定であるとは限らない。このため、上記の設定で定められた位置にコンテンツを投影しようとしても、作業者や設備が遮蔽物となってプロジェクタの発光部と投影面の光路が遮られた場合、コンテンツの表示内容が判別できないこともある。
【０００５】
これらのことから、１つの平面に収まるサイズでコンテンツをできるだけ大きく投影できる位置を自動的に計算する方法が求められる。これに関連する技術の一例として、設置場所に応じて投影領域を自動的に変更するための投影装置が提案されている。この投影装置では、プロジェクタからの距離が同一である平面エリアの各頂点または重心に、投影画像データのアスペクト比と同一のアスペクト比を持つ矩形を設定する。その上で、投影装置は、各矩形をエリア外に到達するまで拡大する処理を行い、最大の面積が得られた矩形領域に投影する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１４−１９２８０８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記の技術では、必ずしも平面エリアの頂点または重心に矩形を設定できるとは限らず、平面エリアの頂点または重心の周辺の形状によっては矩形を設定できない場合があるので、最大限の投影サイズでコンテンツを投影できない場合がある。
【０００８】
１つの側面では、本発明は、最大限の投影サイズでコンテンツを投影できるコンテンツ投影装置、コンテンツ投影方法及びコンテンツ投影プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
一態様では、３Ｄ距離カメラで環境の３Ｄ点群情報を取得する取得部と、前記３Ｄ点群情報から平面領域に属する点群を抽出する平面検出を行う検出部と、前記平面領域を複数のグリッドに分割するグリッドサイズの縦横比を投影コンテンツの縦横比に基づいて設定する設定部と、距離変換を適用して各グリッドの平面領域外までの距離を求め、前記距離が最大のグリッド位置を投影位置として算出する第１算出部と、前記投影位置のグリッド位置の距離から投影サイズを算出する第２算出部とを有する。
【発明の効果】
【００１０】
最大限の投影サイズでコンテンツを投影できる。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施例１に係る情報提供システムのシステム構成の一例を示す図である。
【図２】図２は、プロジェクションＡＲが起動される場面の一例を示す図である。
【図３】図３は、実施例１に係るポータブル型の情報提供装置の機能的構成を示すブロック図である。
【図４】図４は、プロジェクションＡＲの失敗例を示す図である。
【図５】図５は、既存技術の限界の一例を示す図である。
【図６】図６は、既存技術の限界の一例を示す図である。
【図７】図７は、既存技術の限界の一例を示す図である。
【図８】図８は、既存技術の限界の一例を示す図である。
【図９】図９は、平面領域の一例を示す図である。
【図１０】図１０は、バウンディングボックスの一例を示す図である。
【図１１】図１１は、グリッド分割の一例を示す図である。
【図１２】図１２は、平面領域外のグリッドの一例を示す図である。
【図１３】図１３は、距離変換の結果の一例を示す図である。
【図１４】図１４は、コンテンツの投影例を示す図である。
【図１５】図１５は、グリッド分割の他の一例を示す図である。
【図１６】図１６は、実施例１に係るコンテンツ投影処理の手順を示すフローチャートである。
【図１７】図１７は、実施例１に係る平面検出処理の手順を示すフローチャートである。
【図１８】図１８は、実施例１に係る投影パラメータの算出処理の手順を示すフローチャートである。
【図１９】図１９は、コンテンツの一例を示す図である。
【図２０】図２０は、グリッドの形状の応用例を示す図である。
【図２１】図２１は、実施例１及び実施例２に係るコンテンツ投影プログラムを実行するコンピュータのハードウェア構成例を示す図である。
【発明を実施するための形態】
【００１２】
以下に添付図面を参照して本願に係るコンテンツ投影装置、コンテンツ投影方法及びコンテンツ投影プログラムについて説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１３】
［システム構成］
図１は、実施例１に係る情報提供システムのシステム構成の一例を示す図である。図１には、作業が行われる区画の一例として、現場２Ａ〜現場２Ｎが例示されている。さらに、図１には、現場２Ａ〜現場２Ｎで点検作業を行う作業者３に加え、現場２Ａ〜現場２Ｎと隔てられた遠隔地４から支援者５により作業者３による作業が支援される場合が例示されている。なお、以下では、現場２Ａ〜現場２Ｎを総称する場合に「現場２」と記載する場合がある。
【００１４】
図１に示す情報提供システム１は、現場２における作業に役立つ支援データを作業者３へ提供する情報提供サービスを提供するものである。この情報提供サービスは、ハンズフリーの作業を実現する観点から、上記の支援データに関するコンテンツの投影、すなわちプロジェクションＡＲにより実現される。
【００１５】
かかる情報提供サービスの一環として、情報提供システム１は、３Ｄ点群情報から検出される平面領域のバウンディングボックスが分割されたグリッドに距離変換を適用することにより平面領域外までの距離を各グリッド要素に割り当て、当該距離が最大であるグリッド要素を投影位置に設定するコンテンツ投影処理を実現する。これによって、平面領域の各頂点または重心にコンテンツのアスペクト比と同一のアスペクト比を持つ矩形を設定してエリア外まで拡大する場合のように、コンテンツの投影位置が決定できる平面領域の形状が限定されるのを抑制し、もって最大限の投影サイズでコンテンツを投影する。
【００１６】
図１に示すように、情報提供システム１には、情報提供装置１０と、情報処理装置５０とが収容される。なお、図１には、一例として、情報提供装置１０及び情報処理装置５０を１台ずつ例示したが、１台の情報提供装置１０につき複数台の情報処理装置５０を設けることとしてもよいし、１台の情報処理装置５０につき複数台の情報提供装置１０を設けることとしてもかまわない。
【００１７】
これら情報提供装置１０及び情報処理装置５０は、所定のネットワークを介して、互いが通信可能に接続される。かかるネットワークの一例としては、有線または無線を問わず、インターネット（Internet）、ＬＡＮ（Local  Area  Network）やＶＰＮ（Virtual  Private  Network）などの任意の種類の通信網を採用できる。この他、ＢＬＥ（Bluetooth（登録商標）  Low  Energy）等の近距離無線通信によって両者が通信接続されることとしてもかまわない。
【００１８】
情報提供装置１０は、現場２の作業者３に対し、上記の支援データに関するコンテンツを提供する装置である。
【００１９】
一実施形態として、情報提供装置１０は、作業者３がハンドキャリーを行うポータブル型の装置として実装される。例えば、作業者３が現場２Ａ〜現場２Ｎで作業を行うとしたとき、１つの現場２につき１台の情報提供装置１０を設置せずともかまわず、１台の情報提供装置１０を各現場２で持ち回って使用することができる。すなわち、作業者３は、現場２で作業が終了する度に、次の現場２へハンドキャリー等で情報提供装置１０を持ち込み、次の現場２の任意の位置に載置することにより、支援データの提供を受けることができる。
【００２０】
ここで、情報提供装置１０は、現場２における人や環境を計測するセンサ類、例えば後述する３Ｄセンサや２Ｄセンサなどを通じて、現場２の中で作業者３が存在する位置をセンシングできる。
【００２１】
例えば、情報提供装置１０は、作業者３が現場２で存在する位置に応じてプロジェクションＡＲを起動することができる。図２は、プロジェクションＡＲが起動される場面の一例を示す図である。図２に示すように、現場２には、プロジェクションＡＲの起動が規定されたエリアＥが設定される。かかるエリアＥには、上記の支援データに関するコンテンツ２０が関連付けられる。これらの設定の下、情報提供装置１０は、上記のセンサ類からの３Ｄまたは２Ｄのセンシングデータから作業者３が存在する現場２上の位置を推定する。このように推定された作業者３の位置がエリアＥ内である場合、情報提供装置１０は、プロジェクションＡＲを起動し、当該エリアＥに関連するコンテンツ２０を投影する。
【００２２】
図２に示す例の他、情報提供装置１０は、作業者３が装備するウェアラブルガジェットと協働し、プロジェクションＡＲを起動することもできる。例えば、情報提供装置１０は、ヘッドマウントディスプレイ、腕輪型のガジェット、指輪型のガジェットなどの多岐にわたるウェアラブルガジェットから出力されるセンシングデータから、作業者３が所定の設備、例えば点検対象とする計器（メータやバルブなど）への接触動作または近接動作を検知し、これらの動作を契機にプロジェクションＡＲを起動することもできる。
【００２３】
また、情報提供装置１０は、上記のセンサ類を用いる他にも、時間を条件としてプロジェクションＡＲを起動することができる。例えば、情報提供装置１０は、時刻ごとに当該時刻に投影するコンテンツの予定が対応付けられたスケジュールデータを参照して、定められた時刻に定められたコンテンツを投影することもできる。
【００２４】
情報処理装置５０は、上記の情報提供装置１０に接続されるコンピュータである。
【００２５】
一実施形態として、情報処理装置５０は、遠隔地４で支援者５が使用するパーソナルコンピュータとして実装される。ここで言う「遠隔地」とは、必ずしも現場２との距離が物理的に遠い場所に限定されず、現場２との間で対面の情報共有が困難である程度に隔てられた場所も含まれる。
【００２６】
例えば、情報処理装置５０は、情報提供装置１０から３Ｄ及び２Ｄのセンシングデータを受信する。このように情報提供装置１０から情報処理装置５０へ送信されるセンシングデータには、一例として、情報提供装置１０の３Ｄセンサにより撮像されるライブ画像を含めることができる。かかるライブ画像を所定の表示装置等に表示させることにより、支援者５は、現場２における作業者３や環境の状況に合わせて上記の支援データを選択したり、上記の支援データを生成したりすることができる。その上で、情報処理装置５０は、図示しない入力装置を介して、上記の支援データの投影を指示する操作を受け付けた場合、情報処理装置５０から情報提供装置１０へ送信される支援データに関するコンテンツを投影させたり、情報提供装置１０に記憶されたコンテンツのうち情報処理装置５０から指定されたコンテンツを投影させたりする。このように、支援者５からの指示にしたがってプロジェクションＡＲを起動することもできる。
【００２７】
［ポータブル型の情報提供装置１０］
図３は、実施例１に係るポータブル型の情報提供装置１０の機能的構成を示すブロック図である。図３に示すように、ポータブル型の情報提供装置１０は、プロジェクタ１１と、通信Ｉ／Ｆ（interface）部１２と、２Ｄ（two  dimensions）センサ１３と、３Ｄ（three  dimensions）センサ１４と、記憶部１５と、制御部１６とを有する。
【００２８】
プロジェクタ１１は、空間に画像を投影する投影機である。かかるプロジェクタ１１には、任意の表示方式、例えば液晶方式やＤＬＰ（Digital  Light  Processing：登録商標）方式、レーザ方式やＣＲＴ方式などを採用することができる。
【００２９】
通信Ｉ／Ｆ部１２は、他の装置、例えば情報処理装置５０などとの間で通信制御を行うインタフェースである。
【００３０】
一実施形態として、情報提供装置１０及び情報処理装置５０間の通信網がＬＡＮ等により接続される場合、通信Ｉ／Ｆ部１２には、ＬＡＮカードなどのネットワークインタフェースカードを採用できる。また、情報提供装置１０及び情報処理装置５０間がＢＬＥ等の近距離無線通信により接続される場合、通信Ｉ／Ｆ部１２には、ＢＬＥの通信モジュールを採用できる。例えば、通信Ｉ／Ｆ部１２は、３Ｄ及び２Ｄのセンシングデータを情報処理装置５０へ送信したり、また、情報処理装置５０から上記の支援データの表示指示を受信したりする。
【００３１】
２Ｄセンサ１３は、２次元の距離を測定するセンサである。
【００３２】
一実施形態として、２Ｄセンサ１３には、ＬＲＦ（Laser  Range  Finder）を始め、ミリ波レーダやレーザレーダなどを採用できる。例えば、２Ｄセンサ１３を図示しないモータを駆動制御して水平方向、すなわちＺ軸回りに回転させることにより、情報提供装置１０を原点とする水平面、すなわちＸＹ平面上の距離を取得することができる。かかる２Ｄセンサ１３によって、ＸＹ平面における全方位の２次元の距離情報を２Ｄのセンシングデータとして得ることができる。
【００３３】
３Ｄセンサ１４は、空間の物理的な形状データを出力する３次元スキャナである。
【００３４】
一実施形態として、３Ｄセンサ１４は、ＩＲ（infrared）カメラとＲＧＢカメラとを含む３次元スキャナとして実装できる。これらＩＲカメラ及びＲＧＢカメラは、同一の解像度を有し、コンピュータ上で扱う点群の３次元座標も共有される。例えば、３Ｄセンサ１４では、ＩＲカメラが赤外線の照射光が環境の対象物に反射して戻ってくるまでの時間を計測することにより距離画像を撮像するのに同期して、ＲＧＢカメラがカラー画像を撮像する。これによって、３Ｄセンサ１４の画角に対応する画素、すなわち３次元空間上の解像度に対応する点（Ｘ，Ｙ）ごとに距離（Ｄ）及び色情報（Ｒ，Ｇ，Ｂ）が得られる。以下では、距離画像（Ｘ，Ｙ，Ｄ）のことを「３Ｄ点群情報」と記載する場合がある。なお、ここでは、距離画像およびカラー画像を撮像する場合を例示したが、上記のコンテンツ投影処理の実施には少なくとも距離画像があればよく、３Ｄ距離カメラだけを実装することもできる。
【００３５】
記憶部１５は、制御部１６で実行されるＯＳ（Operating  System）を始め、上記のコンテンツ投影処理を実現するコンテンツ投影プログラムなどの各種プログラムに用いられるデータを記憶する記憶デバイスである。
【００３６】
一実施形態として、記憶部１５は、情報提供装置１０における主記憶装置として実装される。例えば、記憶部１５には、各種の半導体メモリ素子、例えばＲＡＭ（Random  Access  Memory)やフラッシュメモリを採用できる。また、記憶部１５は、補助記憶装置として実装することもできる。この場合、ＨＤＤ（Hard  Disk  Drive）、光ディスクやＳＳＤ（Solid  State  Drive）などを採用できる。
【００３７】
記憶部１５は、制御部１６で実行されるプログラムに用いられるデータの一例として、コンテンツデータ１５ａを記憶する。かかるコンテンツデータ１５ａ以外にも、他の電子データ、例えば時刻ごとに当該時刻に投影するコンテンツの予定が対応付けられたスケジュールデータなども併せて記憶することもできる。
【００３８】
コンテンツデータ１５ａは、上記の支援データに関するコンテンツのデータである。
【００３９】
一実施形態として、コンテンツデータ１５ａは、プロジェクタ１１に投影させるコンテンツの画像データもしくはコンテンツの識別情報と、現場２でプロジェクションＡＲの起動を定義するエリアの区画情報とが対応付けられたデータを採用できる。かかるコンテンツデータ１５ａが参照される場面の一例として、現場２における作業者３の位置がいずれかのエリア内に存在するか否かによりプロジェクションＡＲを起動するか否かを判定する場合が挙げられる。他の一例として、プロジェクションＡＲを起動する場合に、進入が検知されたエリアに対応するコンテンツ、すなわちプロジェクタ１１に投影させるコンテンツを読み出すために参照される。
【００４０】
制御部１６は、各種のプログラムや制御データを格納する内部メモリを有し、これらによって種々の処理を実行するものである。
【００４１】
一実施形態として、制御部１６は、中央処理装置、いわゆるＣＰＵ（Central  Processing  Unit）として実装される。なお、制御部１６は、必ずしも中央処理装置として実装されずともよく、ＭＰＵ（Micro  Processing  Unit）として実装されることとしてもよい。また、制御部１６は、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などのハードワイヤードロジックによっても実現できる。
【００４２】
制御部１６は、各種のプログラム、例えばプリプロセッサを実行することによって下記の処理部を仮想的に実現する。例えば、制御部１６は、図３に示すように、起動部１６ａと、取得部１６ｂと、検出部１６ｃと、設定部１６ｄと、第１算出部１６ｅと、第２算出部１６ｆと、投影部１６ｇとを有する。
【００４３】
起動部１６ａは、プロジェクションＡＲを起動する処理部である。
【００４４】
一実施形態として、起動部１６ａは、２Ｄセンサ１３や３Ｄセンサ１４を始め、図示しないウェアラブルガジェットなどのセンサ類を用いて、プロジェクションＡＲを起動するか否かを判定する。ここでは、あくまで一例として、作業者３が現場２で存在する位置に応じてプロジェクションＡＲを起動する場合を例示するが、上述のように、上記のセンサ類を用いる他にも、時間を条件としてプロジェクションＡＲを起動したり、情報処理装置５０からの指示にしたがってプロジェクションＡＲを起動したりすることもできる。
【００４５】
例えば、起動部１６ａは、３Ｄセンサ１４により採取される３Ｄのセンシングデータから情報提供装置１０が載置された現場２内の位置を推定すると共に、２Ｄセンサ１３により採取される２Ｄのセンシングデータから、現場２における作業者３の有無や作業者３の位置を検知する。
【００４６】
具体的には、２Ｄセンサ１３が情報提供装置１０の載置面から１ｍ程度の高さの位置に実装される場合、作業者３の腰あたりの形状が２Ｄのセンシングデータに現れる公算が高まる。ここで、２Ｄのセンシングデータは、一例として、２Ｄセンサ１３を水平方向、すなわちＺ軸回りに回転駆動させるモータの回転角ごとに２Ｄセンサ１３から対象物までの距離が対応付けられたデータとして得られる。このため、情報提供装置１０の周辺に作業者３が立位で存在する場合、回転角の変化にしたがってプロットされる距離には、作業者３の腰の形状と一致する変化が現れる。このことから、起動部１６ａは、所定のテンプレート、例えば男女別、年齢別または２Ｄセンサ１３に対する腰の向き別に設定された腰の形状との間で所定の閾値以上の類似度を有する距離のプロットが２Ｄのセンシングデータに存在するか否かを判定することにより人の有無を検知することができる。このとき、人の腰の形状と類似する特徴を持つ物体、例えばマネキン等がノイズとなって誤検知が生じるのを抑制する観点から、２Ｄのセンシングデータが取得された時刻よりも前の時刻、例えば一時刻前の２Ｄのセンシングデータとの差分の有無からノイズを除去することとしてもよい。例えば、起動部１６ａは、人の腰の形状と類似する距離のプロットが２Ｄのセンシングデータに存在する場合に、当該２Ｄデータから検知された距離のプロットと一時刻前の２Ｄのセンシングデータから検知された距離のプロットとの間で距離のプロットがＸＹ平面上で形成する図形の重心位置及びプロットの輪郭に変化があるか否かを判定する。そして、起動部１６ａは、重心位置及びプロットの輪郭のうちいずれか１つ以上に変化がある場合に絞って作業者３が現場２内に存在すると検知することとしてもよい。
【００４７】
その後、起動部１６ａは、現場内に作業者３が存在する場合、３Ｄのセンシングデータから推定された現場２における情報提供装置１０の位置と、２Ｄのセンシングデータから検知された距離、すなわち情報提供装置１０から作業者３までの距離とから、現場２における作業者３の位置を特定する。その上で、起動部１６ａは、現場２における作業者３の位置が記憶部１５に記憶されたコンテンツデータ１５ａに含まれるいずれかのエリアに存在するか否かを判定する。このとき、起動部１６ａは、作業者３の位置がいずれかのエリアに存在する場合、当該エリアに対応付けられたコンテンツのプロジェクションＡＲを起動する。
【００４８】
取得部１６ｂは、３Ｄ点群情報を取得する処理部である。
【００４９】
一実施形態として、取得部１６ｂは、起動部１６ａによりプロジェクションＡＲが起動された場合、３Ｄセンサ１４を制御して、３Ｄ点群情報を取得する。ここでは、一例として、図示しないモータを駆動制御することにより、３Ｄセンサ１４を水平方向、すなわち図１に示した３次元座標系におけるＺ軸回りでパン駆動させることにより、水平方向で３６０°の視野を持つ３Ｄのセンシングデータが取得される場合を想定する。
【００５０】
例えば、３Ｄのセンシングが起動されると、取得部１６ｂは、３Ｄセンサ１４に距離画像及びカラー画像を撮像させることにより距離画像及びカラー画像を取得する。続いて、取得部１６ｂは、所定の角度、例えば本例の画角の例で言えば６０°にわたって３Ｄセンサ１１をＺ軸回りにパン駆動させる。その上で、取得部１６ｂは、パン駆動後の新たな視野で距離画像及びカラー画像を取得する。その後、取得部１６ｂは、所定の回数、例えば本例の画角の例で言えば５回にわたってパン駆動が行われることにより水平方向の全方位、すなわち３６０°の距離画像及びカラー画像が取得されるまで、パン駆動と距離画像及びカラー画像の取得とを繰り返し実行する。そして、取得部１６ｂは、水平方向の全方位の距離画像及びカラー画像が取得されると、６回にわたって取得された距離画像及びカラー画像を統合することにより、３Ｄのセンシングデータ、いわゆるポイントクラウド（Ｘ，Ｙ，Ｄ，Ｒ，Ｇ，Ｂ）を生成する。なお、３Ｄのセンシングデータの座標系には、一例として、情報提供装置１０を原点とする３次元座標系が採用されることとするが、これに限定されない。すなわち、３次元座標系の原点は、任意の位置とすることができるし、現場２の地図とのマップマッチングや現場２上のＡＲマーカとの対応付けなどの任意の手法によりグローバル座標系に変換することもできる。
【００５１】
このように取得される３Ｄのセンシングデータのうち、後段の処理部では、距離画像、すなわち３Ｄ点群情報（Ｘ，Ｙ，Ｄ）がコンテンツの投影位置及び投影サイズの決定に用いられる。なお、ここでは、一例として、水平方向の全方位にわたって３Ｄ点群情報が取得される場合を例示したが、コンテンツを投影させる区画の大枠が定められている場合、当該区画に絞って３Ｄ点群情報を取得させることもできる。
【００５２】
検出部１６ｃは、３Ｄ点群情報から現場２の平面領域を検出する処理部である。
【００５３】
一実施形態として、検出部１６ｃは、ＲＡＮＳＡＣ（RANdom  Sample  Consensus）などのアルゴリズムにしたがって、取得部１６ｂにより取得された３Ｄ点群情報に含まれる３Ｄ点群が形成する平面領域を検出する。例えば、検出部１６ｃは、３Ｄ点群情報に含まれる３Ｄ点群をサンプルとし、当該サンプルから３つの点をランダムに抽出する。続いて、検出部１６ｃは、３Ｄ点群情報に含まれる３Ｄ点群のうち、サンプルからランダムに抽出された３点により定まる平面モデルから所定の距離以内にある点群をさらに抽出する。ここで、平面モデルから所定の距離以内にある点群を平面モデル上に存在する点群とみなし、以降の処理を説明することとする。その上で、検出部１６ｃは、平面モデル上に存在する点群の数が所定の閾値以上であるか否かを判定する。このとき、検出部１６ｃは、平面モデル上の点群が閾値以上である場合、平面モデルを定義するパラメータ、例えば３点の座標または平面の方程式等と、当該平面モデルに含まれる点群とが対応付けられた平面領域データを内部メモリ上のワークエリアに保存する。一方、検出部１６ｃは、平面モデル上に存在する点群の数が閾値未満である場合、当該平面モデルに関する平面領域データを保存しない。その後、検出部１６ｃは、サンプルからの３点のランダムサンプリング及びそれに伴う平面領域データの保存を所定の試行回数にわたって繰り返し実行する。このような平面検出方法によって、一定数以上の点群が平面モデルからの法線方向へ向けて一定距離内にある平面モデルを求めることができる。以下では、平面モデルにより規定される平面上で３Ｄ点群が所定の密度以上で存在する部分のことを「平面領域」と記載する場合がある。
【００５４】
なお、ここでは、平面モデル上に存在する点群の数が閾値以上であることを条件にその平面領域データを保存する場合を例示したが、平面モデル上に存在する点群の数が最高値である平面モデルに絞って平面領域データを保存することとしてもかまわない。
【００５５】
設定部１６ｄは、平面モデル上に存在する点群から設定されるバウンディングボックスを分割するグリッドサイズを設定する処理部である。
【００５６】
一実施形態として、設定部１６ｄは、内部メモリのワークエリアに保存された平面領域のうち平面領域を１つ選択する。続いて、設定部１６ｄは、先に選択された平面領域に対応する平面領域データを参照して、平面モデル上に存在する３Ｄ点群を２次元の投影面、例えばＸＹ平面へ投影することにより、２Ｄ点群へ変換する。そして、設定部１６ｄは、ＸＹ平面へ投影された２Ｄ点群のバウンディングボックス、いわゆる外接矩形を計算する。その後、設定部１６ｄは、記憶部１５に記憶されたコンテンツデータ１５ａを参照して、作業者３が存在するエリアに対応付けられたコンテンツの縦横比、矩形の場合は「アスペクト比」を取得する。その上で、設定部１６ｄは、投影が実施されるコンテンツのサイズに比べてグリッドの縦のサイズおよび横のサイズが十分に小さく、かつ当該コンテンツの縦横比と同一の縦横比を持つグリッドサイズを設定する。例えば、グリッドの縦のサイズおよび横のサイズは、平面領域上に投影できる箇所が１つのグリッドだけであっても一定の視認性を有する大きさ、言い換えればグリッドをこれ以上小さくすると見えなくなる大きさに設定される。なお、ここでは、一例として、画像であるコンテンツの拡大を縦横比を維持した状態で実施する観点から、グリッドサイズの設定にコンテンツの縦横比を用いる場合を例示したが、必ずしもグリッドサイズの縦横比はこれに限定されず、格子の各辺の長さを同一としてもかまわない。
【００５７】
第１算出部１６ｅは、コンテンツの投影位置を算出する処理部である。
【００５８】
一実施形態として、第１算出部１６ｅは、設定部１６ｄにより設定されたグリッドサイズにしたがって上記の２Ｄ点群のバウンディングボックスをグリッド状に分割する。以下では、バウンディングボックスにグリッド分割を行うことにより得られた要素のことを「グリッド要素」と記載する場合がある。そして、第１算出部１６ｅは、バウンディングボックスが分割されたグリッド要素ごとに当該グリッド要素に含まれる２Ｄ点群の数を算出する。続いて、第１算出部１６ｅは、各グリッド要素のうち、２Ｄ点群の数が所定値、例えばゼロ以下であるグリッド要素にフラグ等の識別情報を付与する。すなわち、グリッド要素に２Ｄ点群のうちいずれの点も含まれないという事実は、当該グリッド要素が平面領域内ではなく、その外側に位置するグリッド要素であることを意味し、平面領域外のグリッド要素には平面領域内のグリッド要素との識別ができるようにマークが付与される。その後、第１算出部１６ｅは、バウンディングボックスが分割されたグリッドに距離変換を適用することにより、グリッド要素ごとに当該グリッド要素から平面領域外のグリッド要素に隣接するグリッド要素までの距離を割り当てる。ここでグリッド要素に割り当てられる距離は、グリッド要素間の距離を指し、例えば、注目のグリッド要素から当該注目のグリッド要素の縦、横、斜めの８方向に隣接する各グリッド要素までの距離を「１」とし、距離を割り当てる対象のグリッド要素から平面領域外のグリッド要素に隣接するグリッド要素までの経路を最短で移動する場合の移動回数が距離として割り当てられる。その上で、第１算出部１６ｅは、上記の距離変換により割り当てられた距離が最大であるグリッド要素を投影位置として算出する。例えば、第１算出部１６ｅは、上記の最大距離のグリッド要素に対応する３次元空間上の位置を、コンテンツのバウンディングボックスの図心、例えば中心や重心が投影される位置として設定する。
【００５９】
このように、第１算出部１６ｅは、平面領域外から離れているグリッド要素ほど付与される値が高くなる評価値の一例として、上記の距離変換で割り当てられるグリッド要素間の距離を用いて、いずれのグリッド要素をコンテンツのバウンディングボックスの図心に対応させるのが相応しいのかを評価している。
【００６０】
第２算出部１６ｆは、コンテンツの投影サイズを算出する処理部である。
【００６１】
一実施形態として、第２算出部１６ｆは、第１算出部１６ｅによりコンテンツのバウンディングボックスに関する投影位置が設定された場合、当該投影位置で平面領域上にコンテンツを投影できる最大限のサイズを投影サイズとして算出する。
【００６２】
一側面として、グリッドサイズの縦横比が１：１に設定されている場合、第２算出部１６ｆは、投影位置に設定されたグリッド要素を起点とし、当該投影位置のグリッド要素の上下左右の４方向ごとに起点から平面領域外のグリッド要素に隣接するグリッド要素までのグリッド数を計数する。その上で、第２算出部１６ｆは、起点から右方向へ探索して平面領域の右端へ到達するまでのグリッド数と起点から左方向へ探索して平面領域の左端へ到達するまでのグリッド数との合計値に対応する横幅をコンテンツの横幅で除算し、当該除算結果をコンテンツの画像データを幅方向、すなわちＸ方向へ拡大する倍率として設定する。これと共に、第２算出部１６ｆは、起点から上方向へ探索して平面領域の上端へ到達するまでのグリッド数と起点から下方向へ探索して平面領域の下端へ到達するまでのグリッド数との合計値に対応する高さをコンテンツの高さで除算し、当該除算結果をコンテンツの画像データを高さ方向、すなわちＹ方向へ拡大する倍率として設定する。
【００６３】
他の側面として、グリッドサイズの縦横比がコンテンツのバウンディングボックスの縦横比と同一の縦横比に設定されている場合、投影位置のグリッド要素に割り当てられた評価値、本例では距離が平面領域上に投影可能なサイズに直結する。すなわち、グリッドサイズの（投影位置のグリッドの評価値−０．５）×２倍のサイズまでの投影であれば、コンテンツの画像データが拡大された場合でも平面領域内に収まる。よって、第２算出部１６ｆは、グリッドサイズ×（投影位置のグリッド要素の評価値−０．５）×２をコンテンツの画像データの投影サイズとして設定する。
【００６４】
投影部１６ｇは、プロジェクタ１１に対する投影制御を実行する処理部である。
【００６５】
一実施形態として、投影部１６ｇは、記憶部１５に記憶されたコンテンツデータ１５ａのうち作業者３が存在するエリアに対応付けられたコンテンツデータ１５ａを読み出す。続いて、投影部１６ｇは、第１算出部１６ｅより投影位置として算出されたグリッド要素に対応する３次元空間上の位置とコンテンツのバウンディングボックスの図心とを一致させると共に、コンテンツの画像データを第２算出部１６ｆにより算出された投影サイズまで拡大させる制御をプロジェクタ１１に実行させる。
【００６６】
［具体例］
以下では、本実施例に係るポータブル型の情報提供装置１０が実行する処理内容の具体例について説明する。ここでは、プロジェクションＡＲの失敗例を説明した後に既存技術の限界を説明し、これらをもってポータブル型の情報提供装置１０が解決する課題の一側面を示した後に、ポータブル型の情報提供装置１０による処理内容の具体例を示す。
【００６７】
（１）プロジェクションＡＲの失敗例
プロジェクションＡＲが行われる場合、投影サイズが適切であっても投影位置が適切でなければコンテンツの視認性は低下し、また、投影位置が適切であっても投影サイズが適切でなければコンテンツの視認性は低下する。
【００６８】
図４は、プロジェクションＡＲの失敗例を示す図である。図４に示すコンテンツ４１の場合、現場２に設置されたパネル４０と現場２の壁面との段差が原因となり、コンテンツ４１の左部４１Ｌとコンテンツ４１の右部４１Ｒとが段違いになった状態で投影される。これでは、左右で段違いになった部分の視認性が著しく低下する。また、図４に示すコンテンツ４２の場合、作業者３が遮蔽物となってプロジェクタの発光部から投影面までの光路が遮られた結果、作業者３上にコンテンツが投影される。これでは、作業者３の衣服の色や模様によってコンテンツの視認性が低下する。さらに、図４に示すコンテンツ４３の場合、現場２の部屋の隅によってコンテンツ４３の左部４３Ｌの投影面とコンテンツ４３の右部４３Ｒの投影面との角度差が大きくなった状態で投影される。これでは、左右の投影面が交わる部分の視認性が著しく低下する。
【００６９】
これらコンテンツ４１、４２及び４３に示すように、コンテンツの投影位置を適切に設定できないからといってコンテンツの投影サイズを小さくすればよいという単純な話でもない。すなわち、図４に示すコンテンツ４４に示す通り、コンテンツ４１、４２及び４３に比べて投影サイズを過度に小さくしたのでは、視認性が低下するのは明らかである。このことから、１つの平面に収まるサイズでコンテンツをできるだけ大きく投影できる位置を決定する技術の有用性が高まっていると言える。
【００７０】
（２）既存技術の限界
上記の背景技術の項で説明した投影装置のように、プロジェクタからの距離が同一である平面エリアのうちいずれの平面エリアを投影範囲に設定するのかを投影画像データのアスペクト比によって決定する技術は存在する。しかしながら、上記の投影装置では、平面エリア上に投影されるコンテンツの投影サイズが平面エリアの形状に左右される。これは、投影装置がコンテンツの投影位置を決定するアルゴリズムに欠陥があるからである。
【００７１】
すなわち、既存技術でコンテンツの投影位置が決定される場合、平面エリアの各頂点または重心に投影画像データのアスペクト比と同一のアスペクト比を持つ矩形が設定された上で、各矩形をエリア外に到達するまで拡大する処理を行い、最大の面積が得られた矩形領域に投影が行われる。ところが、平面エリアが次のような形状である場合、平面エリアの各頂点や重心に矩形が設定されたとしても、適切な投影領域を探索することはできない。
【００７２】
例えば、平面エリアの頂点から矩形を拡大する場合、図５に示す平面エリア５００や図６に示す平面エリア６００から適切な投影領域を探索するのは困難である。図５及び図６は、既存技術の限界の一例を示す図である。このうち、図５には、平面エリア５００の頂点Ｐに設定された矩形の面積をアスペクト比が維持されたままの状態で拡大する例が示されている。ところが、平面エリア５００は、局所的には直角や鈍角である頂点を有するが、大局的には正三角形の形状に近い形状、すなわち正三角形の頂点付近の部分が欠落した形状を持つ。かかる平面エリア５００のように、頂点の付近が狭まる形状を有する場合、頂点に設定される矩形が拡大されると、図５に示す矩形５１０の通り、すぐにエリア外に到達してしまう。また、図６に示す平面エリア６００のように、楕円形の滑らかな曲線に囲われた形状を有する場合、そもそも頂点が存在しないので、矩形を設定できない。
【００７３】
また、平面エリアの重心から矩形を拡大する場合、図７に示す平面エリア７００や図８に示す平面エリア８００から適切な投影領域を探索するのは困難である。図７及び図８は、既存技術の限界の一例を示す図である。図７には、平面エリア７００の重心周辺の形状が凸形または凹形であることにより重心周辺の領域が平面エリア外と判定された平面エリア７００が示されている。図７に示す平面エリア７００の場合、重心が平面エリア外となるので、重心に矩形を設定したとしても平面にコンテンツを投影できない。また、図８には、凹多角形の平面エリア８００が示されている。図８に示す平面エリア８００の場合、図７に示す平面エリア７００と同様、重心が平面エリア外となるか、あるいはその付近になるので、重心に矩形を設定したとしても平面にコンテンツを投影できない。
【００７４】
（３）情報提供装置１０の処理内容
これらのことから、情報提供装置１０は、３Ｄ点群情報から検出される平面領域のバウンディングボックスが分割されたグリッドに距離変換を適用することにより平面領域外までの距離を各グリッドに割り当て、当該距離が最大であるグリッドを投影位置に設定するコンテンツ投影処理を実現する。
【００７５】
かかるコンテンツ投影処理を図９〜図１５を用いて具体的に説明する。図９は、平面領域の一例を示す図である。図１０は、バウンディングボックスの一例を示す図である。図１１は、グリッド分割の一例を示す図である。図１２は、平面領域外のグリッドの一例を示す図である。図１３は、距離変換の結果の一例を示す図である。図１４は、コンテンツの投影例を示す図である。図１５は、グリッド分割の他の一例を示す図である。
【００７６】
図９には、３Ｄ点群情報（Ｘ，Ｙ，Ｄ）から検出された平面領域９００が示されている。この平面領域９００は、ＲＡＮＳＡＣ等のアルゴリズムにしたがってランダムサンプリングされた３点により規定される平面モデル上で所定の密度以上で存在する３Ｄ点群がＸＹ平面の２次元平面へ投影された２Ｄ点群が説明の便宜上、塗りつぶしにより領域として示されている。
【００７７】
ここでは、一例として、点検作業を行う作業者３に対し、ある計器、例えば排水管等の圧力の履歴に関する支援データの画像がコンテンツＣとして平面領域９００に投影される場合の処理内容を示すこととする。かかるコンテンツＣによれば、排水管等の圧力に異常がないかどうか、すなわち排水管のバルブの開け閉めの要否、さらには、排水管の圧力が異常判定ラインの近傍にある場合や異常判定ラインを超える場合に排水管を開け閉めする度合いを作業者３に判断させることができる。
【００７８】
図１０に示すように、図９に示した平面領域９００には、当該平面領域９００に含まれる２Ｄ点群のバウンディングボックス１０００が計算される。このようなバウンディングボックス１０００の設定の下、図１１に示すように、所定のグリッドサイズにしたがって２Ｄ点群のバウンディングボックス１０００がグリッド状に分割される。これにより、バウンディングボックス１０００がグリッド分割されたグリッド要素の集合１１００が得られる。図１１には、あくまで一例として、格子の各辺の長さを同一とするグリッドサイズの設定にしたがってグリッド分割が行われた場合が示されている。
【００７９】
その後、グリッド要素ごとに当該グリッド要素に含まれる２Ｄ点群の数が算出される。このとき、各グリッド要素のうち２Ｄ点群の数が「０」であるグリッド要素には、フラグ等の識別情報が付与される。例えば、図１２に示す例では、２Ｄ点群のうちいずれの点も含まれないグリッド要素には、平面領域内のグリッド要素との識別ができるように「×」のマークが示されている。
【００８０】
このように平面領域外のグリッド要素が識別可能な状況の下、バウンディングボックス１０００が分割されたグリッド要素の集合１１００に距離変換を適用することにより、図１３に示すように、グリッド要素ごとに当該グリッド要素から平面領域外のグリッド要素に隣接するグリッド要素までの距離が割り当てられる。例えば、１行１列目、すなわち（１，１）のグリッド要素は、平面領域外である。このため、（１，１）のグリッド要素に隣接する（１，２）、（２，２）及び（２，１）のグリッド要素には距離「０」が割り当てられる。また、（２，３）のグリッド要素は、平面領域外のグリッド要素に隣接する（１，２）、（１，３）、（１，４）及び（２，２）のグリッド要素との間で最短距離となる。これらのグリッド要素はいずれも（２，３）のグリッド要素から１つしか離れていないので、（２，３）のグリッド要素には距離「１」が割り当てられる。
【００８１】
かかる距離変換が行われた場合、距離の最大値は「４」となる。かかる距離の最大値「４」は、図１３の例では複数のグリッド要素で現れる。この場合、複数のグリッド要素のうちいずれかのグリッド要素が投影位置に設定される。例えば、距離「４」が水平方向へ６つ連続するグリッド要素のうちいずれかのグリッド要素が投影位置とされた場合、図１４に示すコンテンツＣ１が平面領域９００へ投影される。また、距離「４」が垂直方向へ２つ連続するグリッド要素のうちいずれかのグリッド要素が投影位置とされた場合、図１４に示すコンテンツＣ２が平面領域９００へ投影される。
【００８２】
このように、本実施例に係る情報提供装置１０は、３Ｄ点群情報から検出される平面領域のバウンディングボックスが分割されたグリッドに距離変換を適用することにより平面領域外までの距離を各グリッドに割り当て、当該距離が最大であるグリッドを投影位置に設定するコンテンツ投影処理を実現する。それ故、平面領域の頂点または重心の周辺の形状が図５〜図８に示した形状であったとしてもコンテンツの投影位置を決定できるので、コンテンツの投影位置を決定できる平面領域の形状が限定されるのを抑制できる。したがって、最大限の投影サイズでコンテンツを投影することが可能になる。
【００８３】
ここで、図１１に示すように、格子の各辺の長さを同一とするグリッドサイズが設定された場合、図９に示すコンテンツＣの通り、コンテンツが縦横同サイズではなく縦長だったり横長だったりするので、一側面として、距離変換による評価値の大きさが投影可能なサイズに直結しないという問題もある。このため、コンテンツが極端に縦長または横長の場合は評価値が小さいグリッド要素を投影位置とした方が大きく投影できる可能性もある。
【００８４】
（４）グリッド分割の応用例
このような問題を回避するためのさらなる工夫として、グリッド状に分割する際のグリッド要素の縦横サイズの比をコンテンツのバウンディングボックスの縦横サイズの比に設定することもできる。例えば、図９に示したコンテンツＣの縦横比と同一の縦横比がグリッドサイズに設定されたグリッドに図１３に示した場合と同様に距離変換を適用することにより、図１５に示すグリッド１５００のように、コンテンツＣの形状を加味したスペースの評価を行うことができる結果、評価値を投影可能なサイズに直結させることもできる。すなわち、グリッドサイズの（投影位置のグリッドの評価値−０．５）×２倍のサイズまでの投影であれば、コンテンツＣの画像データが拡大された場合でも平面領域９００内に収めることができる。このように、図１５に示すグリッド分割が適用される場合、図９に示したグリッド分割が適用される場合よりも大きい投影サイズで投影できる投影位置を決定する可能性を高めることができる。
【００８５】
［処理の流れ］
次に、本実施例に係る情報提供装置１０の処理の流れについて説明する。なお、ここでは、情報提供装置１０により実行される（１）コンテンツ投影処理について説明した後に、そのサブフローとして実行される（２）平面検出処理、（３）投影パラメータの算出処理について説明することとする。
【００８６】
（１）コンテンツ投影処理
図１６は、実施例１に係るコンテンツ投影処理の手順を示すフローチャートである。この処理は、一例として、起動部１６ａによりプロジェクションＡＲが起動された場合に開始される。
【００８７】
図１６に示すように、取得部１６ｂは、３Ｄセンサ１４を制御して、３Ｄ点群情報を取得する（ステップＳ１０１）。その後、検出部１６ｃは、図１７を用いて後述するように、ＲＡＮＳＡＣなどのアルゴリズムにしたがってステップＳ１０１で取得された３Ｄ点群情報に含まれる３Ｄ点群が形成する平面領域を検出する「平面検出処理」を実行する（ステップＳ１０２）。
【００８８】
続いて、設定部１６ｄ、第１算出部１６ｅ及び第２算出部１６ｆは、図１８を用いて後述するように、ステップＳ１０２で検出された平面領域ごとに当該平面領域でコンテンツを投影する場合の投影位置および投影サイズを含む投影パラメータを算出する「投影パラメータの算出処理」を実行する（ステップＳ１０３）。
【００８９】
そして、ステップＳ１０２で複数の平面領域が検出されていた場合（ステップＳ１０４Ｙｅｓ）、投影部１６ｇは、ステップＳ１０３で平面領域ごとに算出された投影パラメータのうち最大の投影サイズを持つ投影パラメータを選択する（ステップＳ１０５）。なお、ステップＳ１０２で平面領域が１つだけ検出されていた場合（ステップＳ１０４Ｎｏ）、投影パラメータが一意に定まるので、ステップＳ１０５の処理を飛ばすことができる。
【００９０】
その後、投影部１６ｇは、ステップＳ１０５で選択された投影パラメータにしたがって記憶部１３にコンテンツデータ１５ａとして記憶されたコンテンツの画像データを投影し（ステップＳ１０６）、処理を終了する。
【００９１】
（２）平面検出処理
図１７は、実施例１に係る平面検出処理の手順を示すフローチャートである。この処理は、図１６に示したステップＳ１０２の処理に対応し、ステップＳ１０１で３Ｄ点群情報が取得された場合に開始される。
【００９２】
図１７に示すように、検出部１６ｃは、ステップＳ１０１で取得された３Ｄ点群情報に含まれる３Ｄ点群をサンプルとし、当該サンプルから３つの点をランダムに抽出する（ステップＳ３０１）。
【００９３】
続いて、検出部１６ｃは、３Ｄ点群情報に含まれる３Ｄ点群のうちステップＳ３０１でランダムに抽出された３点により定まる平面モデルから所定の距離以内にある点群をさらに抽出する（ステップＳ３０２）。
【００９４】
その上で、検出部１６ｃは、平面モデル上に存在する点群の数が所定の閾値以上であるか否かを判定する（ステップＳ３０３）。このとき、平面モデル上の点群が閾値以上である場合（ステップＳ３０３Ｙｅｓ）、検出部１６ｃは、平面モデルを定義するパラメータ、例えば３点の座標または平面の方程式等と、当該平面モデルに含まれる点群とが対応付けられた平面領域データを内部メモリ上のワークエリアに保存する（ステップＳ３０４）。一方、平面モデル上に存在する点群の数が閾値未満である場合（ステップＳ３０３Ｎｏ）、当該平面モデルに関する平面領域データは保存されない。
【００９５】
その後、検出部１６ｃは、所定の試行回数にわたって上記のステップＳ３０１〜ステップＳ３０４の処理が実行されるまで（ステップＳ３０５Ｎｏ）、上記のステップＳ３０１〜ステップＳ３０４の処理を繰り返し実行する。そして、所定の試行回数にわたって上記のステップＳ３０１〜ステップＳ３０４の処理が実行された場合（ステップＳ３０５Ｙｅｓ）、処理を終了する。
【００９６】
（３）投影パラメータの算出処理
図１８は、実施例１に係る投影パラメータの算出処理の手順を示すフローチャートである。この処理は、図１６に示したステップＳ１０３の処理に対応し、ステップＳ１０２で説明した平面検出処理が実行された後に実行される。
【００９７】
図１８に示すように、設定部１６ｄは、図１７に示したステップＳ３０４で内部メモリのワークエリアに保存された平面領域のうち平面領域を１つ選択する（ステップＳ５０１）。
【００９８】
続いて、設定部１６ｄは、ステップＳ５０１で選択された平面領域に対応する平面領域データを参照して、平面モデル上に存在する３Ｄ点群を２次元の投影面、例えばＸＹ平面へ投影することにより、２Ｄ点群へ変換する（ステップＳ５０２）。
【００９９】
そして、設定部１６ｄは、ステップＳ５０２でＸＹ平面へ投影された２Ｄ点群のバウンディングボックスを計算する（ステップＳ５０３）。その後、設定部１６ｄは、記憶部１５に記憶されたコンテンツデータ１５ａのうち作業者３が存在するエリアに対応付けられたコンテンツデータを参照して、投影が実施されるコンテンツのサイズに比べてグリッドの縦のサイズおよび横のサイズが十分に小さく、かつ当該コンテンツの縦横比と同一の縦横比を持つグリッドサイズを設定する（ステップＳ５０４）。
【０１００】
続いて、第１算出部１６ｅは、ステップＳ５０４で設定されたグリッドサイズにしたがってステップＳ５０３で得られた２Ｄ点群のバウンディングボックスをグリッド状に分割する（ステップＳ５０５）。
【０１０１】
そして、第１算出部１６ｅは、ステップＳ５０５でバウンディングボックスが分割されたグリッド要素ごとに当該グリッド要素に含まれる２Ｄ点群の数を算出する（ステップＳ５０６）。続いて、第１算出部１６ｅは、各グリッド要素のうち、２Ｄ点群の数が所定値、例えばゼロ以下であるグリッド要素にフラグ等の識別情報を付与する（ステップＳ５０７）。
【０１０２】
その後、第１算出部１６ｅは、バウンディングボックスが分割されたグリッドに距離変換を適用することにより、グリッド要素ごとに当該グリッド要素から平面領域外のグリッド要素に隣接するグリッド要素までの距離を割り当てる（ステップＳ５０８）。
【０１０３】
その上で、第１算出部１６ｅは、ステップＳ５０８の距離変換により割り当てられた距離が最大であるグリッド要素に対応する３次元空間上の位置を、コンテンツのバウンディングボックスの図心、例えば中心や重心が投影される位置として算出する（ステップＳ５０９）。
【０１０４】
さらに、第２算出部１６ｆは、ステップＳ５０９でコンテンツのバウンディングボックスに関する投影位置が設定された場合、当該投影位置で平面領域上にコンテンツを投影できる最大限のサイズを投影サイズとして算出する（ステップＳ５１０）。
【０１０５】
その後、投影部１６ｇは、ステップＳ５０９で算出された投影位置およびステップＳ５１０で算出された投影サイズをステップＳ５０１で選択された平面領域の投影パラメータとして上記の内部メモリに保存する（ステップＳ５１１）。
【０１０６】
そして、図１７に示したステップＳ３０４で内部メモリのワークエリアに保存された全ての平面領域が選択されるまで（ステップＳ５１２Ｎｏ）、上記のステップＳ５０１〜ステップＳ５１１までの処理を繰り返し実行する。その後、図１７に示したステップＳ３０４で内部メモリのワークエリアに保存された全ての平面領域が選択された場合（ステップＳ５１２Ｙｅｓ）、処理を終了する。
【０１０７】
［効果の一側面］
上述してきたように、本実施例に係る情報提供装置１０は、３Ｄ点群情報から検出される平面領域のバウンディングボックスが分割されたグリッドに距離変換を適用することにより平面領域外までの距離を各グリッドに割り当て、当該距離が最大であるグリッドを投影位置に設定するコンテンツ投影処理を実現する。それ故、コンテンツの投影位置を決定できる平面領域の形状が限定されるのを抑制できる。したがって、本実施例に係る情報提供装置１０によれば、最大限の投影サイズでコンテンツを投影することが可能になる。
【実施例２】
【０１０８】
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【０１０９】
［投影位置算出の応用例］
上記の実施例１では、距離変換により割り当てられた距離が最大であるグリッド要素を投影位置として算出する場合を例示したが、距離が最大であるグリッド要素は必ずしも１つでない場合がある。この場合、いずれのグリッド要素を選択したとしても一定の投影サイズで投影することはできるが、選択されるグリッド要素によってはコンテンツの投影サイズに差がでる場合もある。このことから、距離が最大であるグリッド要素が複数存在する場合、下記に説明する処理を実行することにより、複数のグリッド要素のうち最大の投影サイズで投影できるグリッド要素を選択することもできる。
【０１１０】
例えば、第１算出部１６ｅは、距離が最大であるグリッド要素が複数存在する場合、距離変換により距離が割り当てられたグリッドに対し、各種のフィルタを適用してフィルタの畳み込み演算を実行する。かかるフィルタには、一例として、注目画素のフィルタ係数が注目画素のフィルタ係数よりも大きい平滑化フィルタやガウシアンフィルタを適用することができる。
【０１１１】
ここで、第１算出部１６ｅは、フィルタの畳み込み演算により距離が最大であるグリッド要素が１つに絞り込まれたか否かを判定する。そして、距離が最大であるグリッド要素が１つに絞り込まれた場合、第１算出部１６ｅは、フィルタの畳み込み演算により絞り込まれたグリッド要素を投影位置として算出する。その後、距離が最大であるグリッド要素が１つに絞り込まれるまで、フィルタの畳み込み演算を所定の試行回数にわたって繰り返し実行する。この結果、上記の試行回数の実行後にも距離が最大であるグリッド要素が１つに絞り込まれなかった場合、第１算出部１６ｅは、距離が最大であるグリッド要素のうちグリッド要素をランダムに１つ選択する。
【０１１２】
このようにフィルタの畳み込み演算を繰り返し実行して距離が最大であるグリッド要素を１つに絞り込むことにより、複数のグリッド要素のうち最大の投影サイズで投影できるグリッド要素を投影位置に設定することが可能になる。
【０１１３】
［グリッドの形状］
上記の実施例１では、グリッドの形状の一例として矩形を例示したが、グリッドの形状は矩形に限定されない。例えば、情報提供装置１０は、バウンディングボックスを分割するグリッドの形状を平行四辺形とすることもできる。
【０１１４】
図１９は、コンテンツの一例を示す図である。図２０は、グリッドの形状の応用例を示す図である。図１９に示すコンテンツＣ３の場合、コンテンツＣ３に外接するバウンディングボックスの形状は、矩形よりも平行四辺形の方が適合する。かかるコンテンツＣ３の投影パラメータを算出する場合に矩形のバウンディングボックスＢ１を計算し、矩形状のグリッド要素に分割して距離変換を行ったのでは、最大の投影サイズで投影できる投影位置を決定できないケースが生じることも考えられる。このことから、２Ｄ点群から矩形のバウンディングボックスＢ１と共に、平行四辺形のバウンディングボックスＢ２をさらに計算し、これら２つのバウンディングボックスごとにグリッド分割を行う。その後、矩形および平行四辺形のバウンディングボックスの種類ごとに平面領域外のグリッド要素の総数を比較し、平面領域外のグリッド要素の総数が少ない種類のグリッドを選択して距離変換以降の処理を実行することもできる。この場合、平行四辺形のグリッドが選択された場合でも、図２０に示す通り、ステップＳ５０８〜ステップＳ５１１までの処理を同様に適用できるのは言うまでもない。
【０１１５】
これによって、コンテンツの形状によりフィットするグリッド形状に分割することで、単純にコンテンツのバウンディングボックスのアスペクト比の矩形に分割するよりも、大きく投影可能な位置およびサイズを求めることができる。
【０１１６】
［平面領域の応用例］
上記の実施例１では、検出部１６ｃにより検出された平面領域全体から投影パラメータを算出する場合を例示したが、平面領域の一部の領域を平面領域から除外することもできる。すなわち、現場２において無地の壁にポスターが貼ってあるケース等では、ポスターを避けてコンテンツを投影したい場合がある。このような場合、３Ｄセンサ１４により取得される距離（Ｘ，Ｙ，Ｄ）に加えて色情報、例えば（Ｘ，Ｙ，Ｒ，Ｇ，Ｂ）などを参照することにより、一部の領域を平面領域から除外し、平面領域外とみなすこともできる。例えば、情報提供装置１０は、平面領域の点群に対応する色情報（Ｘ，Ｙ，Ｒ，Ｇ，Ｂ）を参照し、平面領域を同色で形成される領域ごとにラベリング処理を実行し、同一のラベルが付与された領域ごとに模様の有無を判定する。そして、情報提供装置１０は、模様が存在しない領域を「平面領域内」と識別する一方で、模様が存在する領域を「平面領域外」と識別する。これによって、平面領域のうち無地でない領域、例えばポスター等の表示や特定の標示が存在する領域を除外してコンテンツを投影させることができる。さらに、情報提供装置１０は、模様が存在しない領域であり、かつ無彩色である領域を「平面領域内」と識別することもできる。これによって、壁としてより尤もらしい領域に絞ってコンテンツを投影させることができる。
【０１１７】
［他の実装例］
上記の実施例１では、コンテンツ投影用の装置を情報提供装置１０として例示したが、情報提供装置１０の実装形態はこれに限定されない。例えば、３Ｄ計測機能やプロジェクタ機能を搭載する携帯端末装置が増加傾向にあるので、汎用の携帯端末装置等を情報提供装置１０として実装することもできる。この場合、起動部１６ａ、取得部１６ｂ、検出部１６ｃ、設定部１６ｄ、第１算出部１６ｅ、第２算出部１６ｆ及び投影部１６ｇなどの処理部を携帯端末装置に実装することにより、コンテンツ投影処理を実行させることとすればよい。また、上記の実施例１では、３Ｄ距離カメラから３Ｄ点群情報を取得する場合を例示したが、必ずしも３Ｄ距離カメラから３Ｄ点群情報を取得せずともかまわない。例えば、２つ以上のカメラにより撮像されたステレオ画像の視差から３Ｄ点群情報に対応する距離画像を算出することとしてもよい。
【０１１８】
［分散および統合］
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されておらずともよい。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、起動部１６ａ、取得部１６ｂ、検出部１６ｃ、設定部１６ｄ、第１算出部１６ｅ、第２算出部１６ｆ又は投影部１６ｇを情報提供装置１０の外部装置としてネットワーク経由で接続するようにしてもよい。また、起動部１６ａ、取得部１６ｂ、検出部１６ｃ、設定部１６ｄ、第１算出部１６ｅ、第２算出部１６ｆ又は投影部１６ｇを別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記の情報提供装置１０の機能を実現するようにしてもよい。また、記憶部１５に記憶されるデータ、例えばコンテンツデータ１５ａの全部または一部を別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記の情報提供装置１０の機能を実現するようにしてもかまわない。
【０１１９】
［コンテンツ投影プログラム］
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図２１を用いて、上記の実施例と同様の機能を有するコンテンツ投影プログラムを実行するコンピュータの一例について説明する。
【０１２０】
図２１は、実施例１及び実施例２に係るコンテンツ投影プログラムを実行するコンピュータのハードウェア構成例を示す図である。図２１に示すように、コンピュータ１００は、操作部１１０ａと、スピーカ１１０ｂと、カメラ１１０ｃと、ディスプレイ１２０と、通信部１３０とを有する。さらに、このコンピュータ１００は、ＣＰＵ１５０と、ＲＯＭ１６０と、ＨＤＤ１７０と、ＲＡＭ１８０とを有する。これら１１０〜１８０の各部はバス１４０を介して接続される。
【０１２１】
ＨＤＤ１７０には、図２１に示すように、上記の実施例１で示した起動部１６ａ、取得部１６ｂ、検出部１６ｃ、設定部１６ｄ、第１算出部１６ｅ、第２算出部１６ｆ及び投影部１６ｇと同様の機能を発揮するコンテンツ投影プログラム１７０ａが記憶される。このコンテンツ投影プログラム１７０ａは、図３に示した起動部１６ａ、取得部１６ｂ、検出部１６ｃ、設定部１６ｄ、第１算出部１６ｅ、第２算出部１６ｆ及び投影部１６ｇの各構成要素と同様、統合又は分離してもかまわない。すなわち、ＨＤＤ１７０には、必ずしも上記の実施例１で示した全てのデータが格納されずともよく、処理に用いるデータがＨＤＤ１７０に格納されればよい。
【０１２２】
このような環境の下、ＣＰＵ１５０は、ＨＤＤ１７０からコンテンツ投影プログラム１７０ａを読み出した上でＲＡＭ１８０へ展開する。この結果、コンテンツ投影プログラム１７０ａは、図２１に示すように、コンテンツ投影プロセス１８０ａとして機能する。このコンテンツ投影プロセス１８０ａは、ＲＡＭ１８０が有する記憶領域のうちコンテンツ投影プロセス１８０ａに割り当てられた領域にＨＤＤ１７０から読み出した各種データを展開し、この展開した各種データを用いて各種の処理を実行する。例えば、コンテンツ投影プロセス１８０ａが実行する処理の一例として、図１６〜図１８に示す処理などが含まれる。なお、ＣＰＵ１５０では、必ずしも上記の実施例１で示した全ての処理部が動作せずともよく、実行対象とする処理に対応する処理部が仮想的に実現されればよい。
【０１２３】
なお、上記のコンテンツ投影プログラム１７０ａは、必ずしも最初からＨＤＤ１７０やＲＯＭ１６０に記憶されておらずともかまわない。例えば、コンピュータ１００に挿入されるフレキシブルディスク、いわゆるＦＤ、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」にコンテンツ投影プログラム１７０ａを記憶させる。そして、コンピュータ１００がこれらの可搬用の物理媒体からコンテンツ投影プログラム１７０ａを取得して実行するようにしてもよい。また、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ１００に接続される他のコンピュータまたはサーバ装置などにコンテンツ投影プログラム１７０ａを記憶させておき、コンピュータ１００がこれらからコンテンツ投影プログラム１７０ａを取得して実行するようにしてもよい。
【符号の説明】
【０１２４】
１    情報提供システム
２    現場
３    作業者
５    支援者
１０    情報提供装置
１１    プロジェクタ
１２    通信Ｉ／Ｆ部
１３    ２Ｄセンサ
１４    ３Ｄセンサ
１５    記憶部
１５ａ  コンテンツデータ
１６    制御部
１６ａ  起動部
１６ｂ  取得部
１６ｃ  検出部
１６ｄ  設定部
１６ｅ  第１算出部
１６ｆ  第２算出部
１６ｇ  投影部
５０    情報処理装置
【図１】
2017076943.tif 000003
【図２】
2017076943.tif 000004
【図３】
2017076943.tif 000005
【図４】
2017076943.tif 000006
【図５】
2017076943.tif 000007
【図６】
2017076943.tif 000008
【図７】
2017076943.tif 000009
【図８】
2017076943.tif 000010
【図９】
2017076943.tif 000011
【図１０】
2017076943.tif 000012
【図１１】
2017076943.tif 000013
【図１２】
2017076943.tif 000014
【図１３】
2017076943.tif 000015
【図１４】
2017076943.tif 000016
【図１５】
2017076943.tif 000017
【図１６】
2017076943.tif 000018
【図１７】
2017076943.tif 000019
【図１８】
2017076943.tif 000020
【図１９】
2017076943.tif 000021
【図２０】
2017076943.tif 000022
【図２１】
2017076943.tif 000023