(57)【要約】      （修正有）【課題】精度良く物体を検知することが可能になる情報処理方法および情報処理装置、プログラムを提供する。【解決手段】設定された領域の第１の距離データと第１のＲＧＢデータとを第１の時間状態において取得する第１の取得手段と、設定された領域の第２の距離データを第１の時間状態以降の第２の時間状態において取得する第２の取得手段と、第１の距離データと第２の距離データとに差分がある差分領域において、第２の距離データを用いて対象物体と対象外物体とを識別する識別手段と、第１の時間状態以降の第２の時間状態において、対象物体が位置する領域を含む設定された領域の部分領域の第２のＲＧＢデータを取得する第３の取得手段と、部分領域の第１のＲＧＢデータと第２のＲＧＢデータとの差分に基づいて、対象物体の位置と大きさとを検知する検知手段と、を備える。【選択図】図３
2017037428.tif 000002
【特許請求の範囲】
【請求項１】
設定された領域の第１の距離データと第１のＲＧＢデータとを第１の時間状態において取得する第１の取得手段と、
前記設定された領域の第２の距離データを前記第１の時間状態以降の第２の時間状態において取得する第２の取得手段と、
前記第１の距離データと前記第２の距離データとに差分がある差分領域において、前記第２の距離データを用いて対象物体と対象外物体とを識別する識別手段と、
前記第１の時間状態以降の第２の時間状態において、前記対象物体が位置する領域を含む前記設定された領域の部分領域の第２のＲＧＢデータを取得する第３の取得手段と、
前記部分領域の前記第１のＲＧＢデータと前記第２のＲＧＢデータとの差分に基づいて、前記対象物体の位置と大きさとを検知する検知手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記識別手段では、背景差分により前記対象物体と前記対象外物体とを識別することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記検知手段では、背景差分により前記対象物体と前記対象外物体とを識別することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記対象外物体は、手であることを特徴とする請求項１に記載の情報処理装置。
【請求項５】
設定された領域の第１の距離データと第１のＲＧＢデータとを第１の時間状態において取得する第１の取得工程と、
前記設定された領域の第２の距離データを前記第１の時間状態以降の第２の時間状態において取得する第２の取得工程と、
前記第１の距離データと前記第２の距離データとに差分がある差分領域において、前記第２の距離データを用いて対象物体と対象外物体とを識別する識別工程と、
前記第１の時間状態以降の第２の時間状態において、前記対象物体が位置する領域を含む前記設定された領域の部分領域の第２のＲＧＢデータを取得する第３の取得工程と、
前記部分領域の前記第１のＲＧＢデータと前記第２のＲＧＢデータとの差分に基づいて、前記対象物体の位置と大きさとを検知する検知工程と、
を備えることを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像された画像に基づいて物体を検知する技術に関する。
【背景技術】
【０００２】
カメラやセンサを用いて現実世界に存在する物体の位置と大きさを検出する技術（以降、物体検知技術と記載する）が知られている（特許文献１）。
【０００３】
カメラやセンサを使った物体検知技術として、物体が置かれていない状態の画像を予め撮影しておき、該画像と所定の時間間隔毎に撮影される画像とを比較し、比較結果に差分が生じている部分を物体として判断する手法が知られている。この手法では、比較結果の差分が連続して同じになる場合に、差分部分を物体として特定することで、物体の位置と大きさと併せて物体が静止していることを判断することができる。物体が静止していることを判断することが可能になるため、動いていない物体にのみ、なんらかの処理を実施したい場合に有効である。たとえば、動いていない物体のみを認識し、認識結果に応じて物体に対して情報を投影することなどが可能になる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−１９０４２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、１つのセンサだけで物体検知の精度が得られない場合には、精度の良い物体検知を行うことができなかった。
【０００６】
本発明は、上記の課題に鑑みてなされたものであり、精度の良い物体検知を行う情報処理装置を提供することを目的とする。また、その方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る情報処理装置は以下の構成を備える。即ち、設定された領域の第１の距離データと第１のＲＧＢデータとを第１の時間状態において取得する第１の取得手段と、前記設定された領域の第２の距離データを前記第１の時間状態以降の第２の時間状態において取得する第２の取得手段と、前記第１の距離データと前記第２の距離データとに差分がある差分領域において、前記第２の距離データを用いて対象物体と対象外物体とを識別する識別手段と、前記第１の時間状態以降の第２の時間状態において、前記対象物体が位置する領域を含む前記設定された領域の部分領域の第２のＲＧＢデータを取得する第３の取得手段と、前記部分領域の前記第１のＲＧＢデータと前記第２のＲＧＢデータとの差分に基づいて、前記対象物体の位置と大きさとを検知する検知手段。
【発明の効果】
【０００８】
本発明によれば、精度良く物体を検知することが可能になる。
【図面の簡単な説明】
【０００９】
【図１】実施形態における情報処理システムの概念図である。
【図２】実施形態におけるハードウェア構成の一例を示すブロック図である。
【図３】実施形態における情報処理システムの構成を示すブロック図である。
【図４】実施形態における情報処理システム全体の流れを示すフローチャートである。
【図５】実施形態における機器キャリブレーション処理の流れを示すフローチャートである。
【図６】実施形態におけるキャリブレーション用ボードの一例である。
【図７】実施形態における物体検知の流れを示すフローチャートである。
【図８】実施形態におけるオブジェクト検知処理結果の一例である。
【図９】実施形態におけるマーカー認識処理の流れを示すフローチャートである。
【図１０】実施形態におけるマーカー対応テーブルの一例である。
【図１１】実施形態における投影データ対応テーブルの一例である。
【図１２】実施形態におけるジェスチャー認識処理の流れを示すフローチャートである。
【図１３】実施形態における投影更新データ対応テーブルの一例である。
【図１４】実施形態における投影画面の一例である。
【図１５】実施形態における投影画面の一例である。
【図１６】実施形態における投影画面の一例である。
【図１７】実施形態における投影画面の一例である。
【図１８】実施形態における投影画面の一例である。
【図１９】実施形態における投影画面の一例である。
【図２０】実施形態における投影画面の一例である。
【図２１】実施形態における投影画面の一例である。
【図２２】実施形態における投影画面の一例である。
【図２３】実施形態における投影画面の一例である。
【図２４】実施形態における投影画面の一例である。
【図２５】実施形態における投影画面の一例である。
【発明を実施するための形態】
【００１０】
以下、本発明の好適な実施形態について添付の図面を参照して詳細に説明する。
【００１１】
＜実施形態１＞
はじめに、図１（ａ）（ｂ）（ｃ）（ｄ）を用いて本実施形態における情報処理装置の処理概要を説明する。本実施形態では、プロジェクタ、距離センサ、ＲＧＢカメラ、赤外カメラを備える情報処理装置１０１を用いる。情報処理装置１０１は、該装置が備える距離センサ、ＲＧＢカメラ、赤外カメラのいずれか１つ以上のセンサもしくはカメラを用いて、机１０２に置かれた現実世界の物体の位置と大きさ、物体の種別を取得する。本実施形態で置かれる物体は、半球体オブジェクト１０３、冊子１０４である。
【００１２】
情報処理装置１０１は半球体オブジェクト１０３および冊子１０４を認識すると、冊子１０４のページを認識する。ページ認識の結果に応じて、情報処理装置１０１が搭載するプロジェクタを用いて半球体オブジェクトに情報を投影する。詳細は、図４のステップＳ４０９０、Ｓ４１００の説明にて後述する。冊子１０５は、３ページ目が開かれた状態である。冊子１０５が開かれて、冊子のページが３ページである場合、半球体オブジェクト１０３には地球の映像が投影される。
【００１３】
情報処理装置１０１は、操作者１０８によるジェスチャー操作を認識することができる。認識されたジェスチャー操作は、半球体オブジェクトに投影された情報への指示として解釈される。たとえば、半球体オブジェクト１０３の上の空間でスワイプ操作を行うと、球体の地球儀を回したように、地球の映像を回転させることが可能である。図１（ｄ）の半球体オブジェクト１０３は回転された結果の映像である。なお、投影される地球地図の映像は、３次元データとして保持されており、半球体オブジェクトの形状に合わせて、映像の歪みが決められている。その他、半球体オブジェクトの立体形状を距離センサにより動的に測定し、計測された形状に合わせて３次元データの歪みを決めても良い。
【００１４】
また、半球体オブジェクト１０３にタッチ操作を行うことで、タッチされた地域や国家の関連情報を半球体オブジェクトの近傍に表示させることが可能である。関連情報１０９は、半球体オブジェクトにタッチすることで表示された関連情報の一例である。
【００１５】
以降、図２〜図２５を用いて詳細に説明する。
【００１６】
図２は、図１にて説明した情報処理装置１０１のハードウェア構成の一例である。
【００１７】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０２は、各種処理のための演算や論理判断などを行い、バス２０１に接続された各種要素を制御する。
【００１８】
情報処理装置１０１には、プログラムメモリとデータメモリを含むメモリが搭載されている。プログラムメモリには、フローチャートにより後述する各種処理手順を含むＣＰＵによる制御のためのプログラムを格納する。このメモリはＲＯＭ（Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０３であっても良いし、外部記憶装置などからプログラムがロードされるＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０４であっても良い。あるいは、これらの組合せで実現しても構わない。
【００１９】
記憶装置２０５は本実施形態に係るデータやプログラムを記憶しておくためのハードディスクなどの装置である。また、本実施形態では、投影用のコンテンツを保持しておくためにも利用される。なお、投影用のコンテンツを保持しておく装置としては、外部接続やネットワーク接続された不図示のデータ保持装置を用いても良い。ここで、外部記憶装置２０６は、たとえば、メディア（記録媒体）と、当該メディアへのアクセスを実現するための外部記憶ドライブとで実現することができる。このようなメディアとしては、たとえば、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤ、ＵＳＢメモリ、ＭＯ、フラッシュメモリ等が知られている。
【００２０】
入力装置２０７は現実世界の情報をデジタルデータとして取り込むための装置である。本実施形態では、距離センサ、ＲＧＢカメラ、赤外カメラから構成される。
【００２１】
出力装置２０８は処理結果等を表示出力する表示手段としての装置である。出力装置２０８は、プロジェクタにより実現されており、投影用コンテンツを投影表示する。
【００２２】
インタフェース２０９は、情報の仲介を行う装置であり、このインタフェース２０９を介して外部装置とのデータのやり取りを行う。
【００２３】
図３は、本実施形態における情報処理装置１０１の機能構成を示すブロック図である。情報処理装置１０１は、撮影処理部３０１、物体検知部３０２、認識処理部３０３、投影処理部３０４から構成される。前述のように本装置は図２にて説明したハードウェアを備える。
【００２４】
撮影処理部３０１は、第一撮像部３０５、第二撮像部３０６、第三撮像部３０７から構成される。第一撮像部３０５は、現実世界の物体を撮像する距離センサである。第二撮像部３０６は、現実世界の物体を撮像するＲＧＢカメラである。第三撮像部３０７は、現実世界の物体を撮像する赤外カメラである。
【００２５】
物体検知部３０２は、第一物体検知部３０８、検知精度判定部３０９、検知対象更新部３１０、第二物体検知部３１１から構成される。第一物体検知部３０８は第一撮像部３０５で得られた画像を用いて物体の検知処理を実施する。検知精度判定部３０９は、第一物体検知部３０８による物体検知結果の精度を判定する。検知対象更新部３１０は、第一物体検知部３０８の判定の結果、精度が悪いと判定された場合、第一物体検知部３０８の検知結果に基づき検知対象領域を限定する。第二物体検知部３１１は、第二撮像部３０６で得られた画像のうち、検知対象更新部３１０により限定された検知対象領域に対して、物体検知処理を実施する。物体検知部３０２が実施する物体検知処理の詳細は、図７にて説明する。
【００２６】
認識処理部３０３は、ジェスチャー認識部３１２、マーカー認識部３１３から構成される。ジェスチャー認識部３１２は、第一撮像部３０５から得られた距離情報を使ってジェスチャー認識処理を実施する。ジェスチャー認識処理の詳細は、図１２にて説明する。マーカー認識部３１３は、第三撮像部３０７から得られた赤外画像を用いて、冊子に埋め込まれた不可視マーカーの認識を行う。マーカー認識処理の詳細は、図９にて説明する。
【００２７】
投影処理部３０４は、投影データ取得部３１４、投影データ更新部３１５、投影部３１６から構成される。投影データ取得部３１４は、認識処理部３０３の認識結果に応じて、図１１にて後述する投影データ対応テーブルから投影すべきデータを取得する。投影データ更新部３１５は、認識処理部３０３の認識結果に応じて、投影データ取得部３１４にて取得された投影データを更新する。投影部３１６は、プロジェクタを用いて現実世界に対して投影データ更新部３１５により更新された投影データを投影する。投影データ更新処理の詳細は、図１３にて説明する。
【００２８】
ブロック図が示す各機能は、図２のＣＰＵ２０２によって制御されている。
【００２９】
図４は、本実施形態における情報処理装置１０１が実現する全体の流れをフローチャートにより説明するものである。なお、本実施形態では、単一の装置（情報処理装置１０１）が以下に説明するフローチャートが示す処理を実現するが、その他、各機能を別々の複数の装置で実現しても良い。
【００３０】
ステップＳ４０００は機器キャリブレーション処理である。機器キャリブレーションは、図１にて説明した情報処理装置１０１のキャリブレーションを実施する。前述したように情報処理装置１０１は、プロジェクタ、距離センサ、ＲＧＢカメラ、赤外カメラを備えている。各装置は、情報処理装置１０１における設置位置や撮像素子の大きさなどの影響により、取得できる現実世界の範囲や投影できる現実世界の範囲が異なる。本システムにおいて、現実世界の物体の位置や大きさを一元的に扱うことが可能になるように、各ハードウェアで取得される座標系を単一の論理座標系にマッピングする。本実施形態では、このマッピング処理をキャリブレーション処理と表現する。キャリブレーション処理を実施することで、本システムを利用するアプリケーションは、装置間の座標系の違いを意識する必要がなくなるという効果がある。キャリブレーション処理の詳細は図５を用いて後述する。
【００３１】
ステップＳ４０１０は初期画像撮影処理である。初期画像撮影処理では、距離センサおよびＲＧＢカメラを用いてキャリブレーション後の状態を撮影する。撮影時は、撮影可能範囲に物体が置かれていない状態で撮影を行う。必要に応じて、物体を置いてはいけない旨をプロジェクタにより投影表示しても良い。撮影の結果、取得された画像はステップＳ４０００にてマッピングされた単一の論理座標系に対応付けられて、不図示の画像ＤＢに保持される。
【００３２】
ステップＳ４０２０は第一領域のオブジェクト検知処理である。第一領域のオブジェクト検知処理では、距離センサおよびＲＧＢカメラを用いてオブジェクトの検知を実施する。システムのユーザがオブジェクトを置いたことを検知する。第一領域のオブジェクト検知処理は物体検知処理を用いて実現する。物体検知処理の詳細は図７を用いて後述する。オブジェクトが置かれるまでは、“冊子を置いてください”というメッセージが投影される。図１４は、メッセージ表示結果の一例である。
【００３３】
ステップＳ４０３０は冊子認識処理である。冊子認識処理では、ステップＳ４０２０にて検知されたオブジェクトが冊子であるか判定を行う。冊子であると判定された場合は、ステップＳ４０３０へ移行する。冊子でないと判定された場合は、ステップＳ４０２０へ移行する。
【００３４】
冊子判定は、冊子に埋め込まれた不可視のマーカーを読み取ることで行う。本実施形態で使用する冊子には赤外光で可視化される不可視のマーカーを予め埋め込んでおく。赤外カメラによりステップＳ４０２０にて検知されたオブジェクトを撮像し、撮像された画像に対してマーカーの認識処理を行うことで実現する。マーカー認識処理の詳細は、図９を用いて後述する。
【００３５】
ステップＳ４０４０は第二領域のオブジェクト検知処理である。第二領域のオブジェクト検知処理では、距離センサおよびＲＧＢカメラを用いてオブジェクトの検知を実施する。システムのユーザがオブジェクトを置いたことを検知する。第二領域のオブジェクト検知処理は、ステップＳ４０２０にて説明した第一領域のオブジェクトの検知処理と同様に、物体検知処理を実施する。物体検知処理の詳細は図７を用いて後述する。オブジェクトが置かれるまでは、“半球体を置いてください”というメッセージが投影される。図１５は、メッセージ表示結果の一例である。
【００３６】
ステップＳ４０５０は半球体認識処理である。半球体認識処理では、ステップＳ４０４０にて検知されたオブジェクトが半球体であるか判定を行う。半球体であると判定された場合は、ステップＳ４０５０へ移行する。半球体ではないと判定された場合は、ステップＳ４０４０へ移行する。
【００３７】
半球体判定は、ステップＳ４０４０にて検知されたオブジェクトの形状を用いて行う。具体的には、オブジェクトの形状が円形である場合は半球体であると判定する。本実施形態ではオブジェクトの形状を用いて判定したが、異なる方法を用いることも可能である。たとえば、ステップＳ４０３０にて用いた不可視のマーカーを用いても良い。不可視のマーカーを半球体オブジェクトに予め埋め込んでおき、赤外カメラを使ってマーカーを検出しても半球体判定を実現できる。
【００３８】
ステップＳ４０６０は映像投影処理である。映像投影処理では、ステップＳ４０４０にて検知された半球体オブジェクトに対して、例えば地球の映像を投影する。投影する地球映像は、ステップＳ４０３０における冊子認識結果を用いて、映像データ対応テーブルを参照することで実現する。図１１は、映像データ対応テーブルの一例である。ＩＤ１１０１は、不可視マーカーに紐づけられたＩＤである。投影データ１１０２は、ＩＤ１１０１に紐づけられた映像のデータが格納されているファイルパスである。ステップＳ４０３０にて認識した不可視マーカーのＩＤ１１０１に対応する映像データのファイルパスを参照し、映像データを取得する。図１６は投影結果の一例である。映像データが半球体オブジェクト１６０１に投影されている。
【００３９】
ステップＳ４０７０はジェスチャー認識処理である。ジェスチャー認識処理では、距離情報を用いたジェスチャーの認識処理を実施する。ジェスチャー認識処理の詳細は、図１２を用いて後述する。なお、ジェスチャー認識処理は異なるタイミングで実施してもよい。たとえば、ジェスチャー認識の結果は、イベントとしてアプリケーションに通知されるため、アプリケーション起動時から常にジェスチャー認識を動作させ、ジェスチャー認識の結果を用いない処理では、イベントを無視するように処理することもできる。
【００４０】
ステップＳ４０８０は映像更新処理である。映像更新処理では、半球体オブジェクトに投影されている映像を更新する。映像の更新は、ステップＳ４０３０における冊子認識結果およびステップＳ４０７０にて取得したジェスチャー認識の結果を用いて行う。具体的には、図１３に示す投影更新データ対応テーブルを参照することで実現する。ＩＤ１３０１は、不可視マーカーに紐づけられたＩＤでありステップＳ４０３０における冊子認識の結果として取得されるデータである。ジェスチャー種別１３０２は、ステップＳ４０７０におけるジェスチャー認識の結果である。更新方法１３０３は、映像の更新方法である。ステップＳ４０６０において投影されている映像を更新方法１３０３に記載されている方法で更新する。たとえば、ＩＤが“１”、ジェスチャー種別“空中スワイプ左”の場合、ステップＳ４０６０にて投影された映像が左回転した状態に更新される。図１７は、図１６の投影を更新した結果の一例である。半球体オブジェクト１７０１に投影されている映像が更新されていることがわかる。
【００４１】
ステップＳ４０９０はページ認識処理である。ページ認識処理では、ステップＳ４０３０において認識された冊子のページ認識を行う。ページ認識は冊子のページに埋め込まれた不可視マーカーを読み取ることで実現する。不可視マーカーの認識処理はステップＳ４０３０にて説明した方法と同様である。マーカー認識処理の詳細は、図９を用いて後述する。
【００４２】
ステップＳ４１００は関連情報投影処理である。関連情報投影処理では、ステップＳ４０９０にて認識されたページに基づき、半球体オブジェクトに関連情報の映像を投影する。具体的には、ステップＳ４０６０にて説明した方法と同様に、図１１に示す投影データ対応テーブルを参照して映像を特定する。すなわち、ページ認識結果（マーカー認識結果）に対応するＩＤから、ＩＤに紐づけられた映像データを特定する。図１８、図２０、図２４は関連情報投影結果の一例である。図１８は、関連情報として地球映像と地球映像中でタッチジェスチャー操作が可能な箇所１８０１を表示している。タッチジェスチャーを受け付けたことに応じて映像を表示させることにより、冊子のテーマ１８０２（人口に関するテーマ）に合致する映像を半球体オブジェクトに投影することができる。同様に、図２０では、冊子テーマである“水”に合わせた映像が半球体オブジェクトに投影されている。図２４では、冊子テーマである“中身”に合わせた映像が半球体オブジェクトに投影されている。
【００４３】
ステップＳ４１１０はジェスチャー認識処理である。ジェスチャー認識処理は、ステップＳ４０７０にて説明した方法と同様の方法で実現する。ジェスチャー認識処理の詳細は、図１２を用いて後述する。
【００４４】
ステップＳ４１２０は関連情報更新処理である。関連情報更新処理では、ステップＳ４１１０におけるジェスチャー認識の結果に応じて、関連情報として投影されている映像を更新する。更新処理は、ステップＳ４０８０にて説明した地球映像更新処理と同様である。具体的には、図１３に示す投影更新データ対応テーブルを参照することで実現する。たとえば、ＩＤ“２”、ジェスチャー種別“半球体タッチ（日本）”の場合、更新方法としてタッチ位置に対応する詳細情報として映像データのファイルパスが特定される。図１９は、更新結果の一例である。図１８におけるジェスチャー操作箇所１８０１をタッチすると、ステップＳ４１１０の処理においてジェスチャー種別“半球体タッチ（日本）”が特定される。冊子テーマ“人口”のＩＤ“２”の場合、図１８の更新結果の一例が図１９になる。図２１から図２３は、冊子テーマ“水”の場合の更新結果の一例である。たとえば、冊子の特定領域をタッチ操作すると、図２１に示す映像２１０１が投影される。本実施形態では関連情報を表示したのち、ステップＳ４１３０に移行するが、継続してジェスチャー認識と関連情報更新を繰り返してもよい。たとえば、図２１に示された映像２１０１に従い、スワイプ右のジェスチャー操作を実施すると、さらに映像が更新され、図２２に示す映像を投影してもよい。図２２の例では、冊子テーマ“水”に合わせて、地球上の水のみを球体として表現した結果が映像２２０１として更新投影されている。さらに、この状態に対して、再度ジェスチャー操作が可能なことを示すＵＩ２２０２が表示される。図２３は図２２に対してジェスチャー操作と関連情報更新を実施した場合の一例である。図２２の映像２２０１に対して、図２１と同様にスワイプ操作を受け付けることを示す情報が投影される。実際に、スワイプ右のジェスチャー操作をすると、図２３に示す映像２３０１が投影される。図２３の例は、冊子テーマ“水”に合わせて、地球上の水映像２２０１から淡水のみを球体として表現した映像２３０１が投影されている。
【００４５】
図２５は異なる関連情報更新の例である。冊子テーマ“中身”に合わせて、ジェスチャー指示映像２５０１が投影され（図２５（ａ））、ジェスチャー操作ピンチアウトを実施すると、図２５（ｂ）に示す地球の内部構造を示す映像２５０２が投影される。
【００４６】
ステップＳ４１３０は終了指示判定処理である。終了指示判定処理は、所定のジェスチャー操作もしくはキーボード入力が行われた場合、終了指示が行われたと判定する。終了指示が行われた場合、処理を終了する。終了指示が行われない場合、ステップＳ４０９０へ戻る。
【００４７】
なお、本実施形態では上述のフローにて情報処理システムの処理を説明したが、異なる処理フローを用いることも可能である。たとえば、半球体オブジェクト、冊子等のオブジェクト数が複数の場合も適用可能である。また、投影する映像を半球体オブジェクトとその近傍領域に限定せず、冊子やその他オブジェクトへ投影することも可能である。さらに、半球体オブジェクト以外のオブジェクトを用いても上記の処理フローは適用可能である。半球体オブジェクトや冊子オブジェクト以外のオブジェクトを用いる場合も、ステップＳ４０２０およびステップＳ４０６０で説明したオブジェクト検知処理が適用可能である。さらに、ステップＳ４０３０もしくはステップＳ４０５０において、使用するオブジェクトが認識できるよう不可視マーカーをオブジェクトに埋め込んでおくことで処理を適用できる。
【００４８】
続いて、図４におけるステップＳ４０００の機器キャリブレーション処理の詳細について、図５を用いて処理フローを詳細に説明する。前述したように、本実施形態の情報処理装置はプロジェクタ、距離センサ、ＲＧＢカメラ、赤外カメラを備えている。これらの装置は、設置位置や撮像素子の大きさの違いなどの影響により、撮影もしくは投影できる実世界上の座標空間が異なる。キャリブレーション処理では、各装置で取得される座標系を単一の座標空間にマッピングする。単一の座標空間にマッピングすることで、本実施形態における情報処理装置を扱うアプリケーションは、装置間の座標系の違いを意識する必要がなくなる。
【００４９】
ステップＳ５０００はボード撮影処理である。ボード撮影処理では、図６（ａ）に示すような格子状の模様が存在するボードをＲＧＢカメラの撮像範囲およびプロジェクタの投影範囲に設置する。
【００５０】
ステップＳ５０１０は格子点指定処理である。格子点指定処理では、ステップＳ５０００にて設置したボード上の格子点にマーカーを設定する。図６（ｂ）はマーカーを設定したボードの一例である。ボードはプロジェクタの投影範囲に設置されているため、キャリブレーション実施者は、プロジェクタに投影されているマウスポインタ等のＵＩ指示情報を参照・コントロールし、格子点を指示することで各格子点に対してマーカーを設定していくことができる。
【００５１】
ステップＳ５０２０はボード撮影処理である。ボード撮影処理は、ステップＳ５０１０にて指定した格子点がプロジェクタにより投影されている状態のボードをＲＧＢカメラにより撮影する。
【００５２】
ステップＳ５０３０は機器パラメータ算出処理である。機器パラメータ算出処理では、既知の大きさをもつボードおよび格子模様の情報とステップＳ５０１０にて指定した格子点の情報を用いて機器内・外のパラメータを算出する。パラメータの算出処理は、既存の算出方法を用いる。たとえば、ＯｐｅｎＣＶ（非特許文献１）などで用いられるＺ．Ｚｈａｎｇのキャリブレーション手法（非特許文献２）を使用することができる。Ｚ．Ｚｈａｎｇのキャリブレーション手法では、機器パラメータを取得することで機器固有の座標系を実世界の座標系へ変換するための数式が開示されている。
【００５３】
以上、説明したキャリブレーション処理を実施することで、本実施形態における情報処理装置を持つシステムは、機器からデータを取得した際に、機器固有の座標系から実世界の座標系へ変換することができる。
【００５４】
なお、本実施形態では、キャリブレーションボードに対して、格子点の指定をユーザが実施したが、異なる方法を用いることもできる。たとえば、格子模様をもつボードを撮影し、格子模様の特徴点を用いて格子点を特定したうえで、機器パラメータを算出することも可能である。
【００５５】
次に、図４におけるステップＳ４０２０およびステップＳ４０４０のオブジェクト検知処理について、図７を用いて処理フローを詳細に説明する。オブジェクト検知処理は、システムのユーザがオブジェクトを置いた際に、オブジェクトの位置と大きさを取得する処理である。オブジェクト検知を実施することで、オブジェクトの位置や数が動的に変化した場合も、オブジェクトに対して位置のずれが生じないように情報の投影が可能になる。
【００５６】
ステップＳ７０００は距離情報を用いて生成した画像取得処理である。以降、距離情報を用いて生成した画像を距離画像とも記載する。距離画像取得処理では、情報処理装置が備える距離センサから得た距離情報を用いて距離画像を取得する。
【００５７】
ステップＳ７０１０は背景差分算出処理である。背景差分算出処理では、図４のステップＳ４０１０にて取得した距離画像の初期画像と、ステップＳ７０００にて取得した距離画像を比較し、背景差分を算出する。具体的には、前記２種の画像を比較し、差分のある画素のみを有効にした画像を生成する。図８（ａ）の初期画像（第１の時間状態において取得された第１の距離データから生成された画像）とステップＳ７０００の取得画像があった場合、差分領域の背景差分画像は図８（ｂ）のようになる。ステップＳ７０００における取得画像は、第１の時間状態以降の第２の時間状態において取得された第２の距離データから生成された画像である。
【００５８】
ステップＳ７０２０は手領域判別処理である。手領域判別処理では、ステップＳ７０１０にて算出した背景差分から人間の手（対象外物体）に相当する部分を特定する。人間の手領域を特定する処理には、既存の技術を用いることができる。たとえば、予め記録された手領域の画像特徴量（距離画像から得られる特徴量）と、背景差分の特徴量を比較し、特徴量が類似するものを手領域として特定することが可能である。
【００５９】
ステップＳ７０３０は物体領域識別処理である。物体領域識別処理では、ステップＳ７０１０にて算出された背景差分画像において、ステップＳ７０２０にて特定された手領域以外の領域を対象物体領域として識別する。図８（ｃ）は特定された物体領域のみで構成される画像である。
【００６０】
ステップＳ７０４０は物体有無判定処理である。物体有無判定処理では、ステップＳ７０３０にて特定された物体領域が存在するか判定する。物体領域の判定には、図８（ｃ）に示すような物体領域のみを含む画像を解析し、有効画素が存在するか確認する。有効画素が存在する場合は、物体領域が存在すると判定し、ステップＳ７０５０へ移行する。有効画素が存在しない場合は、物体領域が存在しないと判定し、ステップＳ７０００へ移行する。
【００６１】
ステップＳ７０５０は精度判定処理である。精度判定処理では、ステップＳ７０４０にて存在すると判定された物体領域の検出精度を判定する。精度判定には、距離画像の解像度を用いる。単位面積に対する距離情報の分解能を計算したものが距離画像の解像度である。距離画像の解像度が所定の解像度よりも低い場合、精度が悪いと判定する。距離画像の解像度が所定の解像度よりも高い場合は、精度が良いと判定する。解像度が低い場合、物体の形状を正確にトレースすることが難しくなる。したがって、物体の位置や大きさが実物から乖離する可能性が生じる。検出された物体の位置や大きさと実物との間に差異が生じると、物体に対して正確な投影ができなくなってしまうが、本ステップの処理および本ステップ以降の処理を実施することで、当該問題を回避することが可能になる。距離情報だけでは、物体領域の検出精度が悪いので、本ステップ以降、他の情報を使って物体領域を検出する。ただし、本ステップまでで得られている情報を使って、物体がありそうな領域を絞り込んでから、他の情報を使って物体領域を検出する。
【００６２】
本実施形態では、距離画像の解像度を用いて精度判断を行ったが、異なる方法を用いても良い。たとえば、物体を予め撮影した画像とステップＳ７０３０にて取得された物体領域画像とを比較し、比較結果が所定の画素数以上ずれている場合は、精度が悪いと判定することも可能である。
【００６３】
ステップＳ７０６０は対象領域絞り込み処理である。対象領域絞り込み処理では、ステップＳ７０３０にて取得した物体領域画像を解析し、物体領域を含む外接矩形領域を算出する。外接矩形の算出には、既存の技術を用いる。図８（ｄ）は、外接矩形の算出結果の一例を示す。矩形領域８０１が算出された外接矩形領域（部分領域）である。
【００６４】
ステップＳ７０７０はＲＧＢ画像取得処理である。ＲＧＢ画像取得処理では、情報処理装置が備えるＲＧＢカメラを用いてＲＧＢ画像（ＲＧＢデータから構成される）を取得する。
【００６５】
ステップＳ７０８０は背景差分算出処理である。背景差分算出処理は、ステップＳ７０６０にて絞り込まれた部分領域において実行する。図４のステップＳ４０１０にて取得したＲＧＢ画像の初期画像（第１のＲＧＢデータから構成される）と、ステップＳ７０７０にて取得したＲＧＢ画像（第２のＲＧＢデータから構成される）を比較する。そして、背景差分を算出する。背景差分の算出方法はステップＳ７０１０にて説明した方法と同様である。手以外の物体領域が存在する領域に絞って背景差分を実施することで、カメラの撮影範囲には手が存在しても、対象物体部分のみの背景差分を算出することが可能になる。距離画像に対してＲＧＢカメラの解像度が高い場合、上述の処理によって、精度が高い背景差分を算出できる。図８（ｅ）は、背景差分の算出処理の概要を示す図である。ＲＧＢ画像には手領域が含まれるが、ステップＳ７０６０にて特定した領域のみに対して背景差分を求めているため、背景差分画像には手が含まれないことがわかる。
【００６６】
ステップＳ７０６０では、距離画像に対する領域を求めている。図４のステップＳ４０２０にて機器キャリブレーションを実施したため、距離画像およびＲＧＢ画像で共通の座標系を用いることができる。したがって、距離画像を用いて算出した絞り込み領域は、ＲＧＢ画像の座標系へ適用可能である。
【００６７】
ステップＳ７０９０は物体領域特定処理である。物体領域特定処理では、ステップＳ７０８０にて算出した背景差分画像を用いて物体領域を特定する。具体的には、背景差分画像の有効画素群を物体領域として特定する。
【００６８】
本実施形態では、距離画像とＲＧＢ画像の二種類の画像を用いて物体領域を特定したが、異なる種類の画像を用いても良い。たとえば、一回目の撮影にはステレオカメラを用いて画像を撮影し、ステレオカメラにより取得された画像を使って、手領域を特定し、手以外の物体を検出する。ステレオカメラの解像度を使って精度を判定した上で、ＲＧＢ画像を使った物体検知処理を実施することも可能である。
【００６９】
続いて、図４におけるステップＳ４０３０およびステップＳ４０９０において使用されるマーカー認識処理について、図９を用いて処理フローを詳細に説明する。マーカー認識処理は、システムのユーザが置いたオブジェクトの種類を判定するために用いられる。赤外光のみで可視化できるマーカーがオブジェクトに埋め込まれており、このマーカーを認識することでオブジェクトを特定することができる。赤外光のみで可視化できるため、通常の人間の目には不可視のマーカーとして存在する。したがって、冊子のようにレイアウトデザインが重要なコンテンツについても、デザインを損なわずにマーカーを埋め込むことができる。
【００７０】
ステップＳ９０００は赤外画像取得処理である。赤外画像取得処理では、本実施形態における情報処理装置が備える赤外カメラを用いて赤外画像を撮影する。
【００７１】
ステップＳ９０１０はマーカー検出処理である。マーカー検出処理では、ステップＳ９０００にて取得した赤外画像に対してマーカーの検出処理を実施する。マーカーの検出処理は既存のマーカー検出技術を用いる。赤外光では可視化されているため、通常のマーカー検出技術を用いることが可能である。たとえば、２次元コードの検出技術を用いて、当該処理を実現することができる。
【００７２】
ステップＳ９０２０はマーカー判定処理である。マーカー判定処理では、ステップＳ９０１０にて検出されたマーカーが存在するか判定する。マーカーが存在しない場合、ステップＳ９０００へ移行する。マーカーが存在する場合は、ステップＳ９０３０へ移行する。
【００７３】
ステップＳ９０３０はマーカー認識処理である。マーカー認識処理では、ステップＳ９０１０にて検出されたマーカーに対して、ＩＤを特定する。マーカーのＩＤを特定する処理は、ステップＳ９０１０におけるマーカー検出と同様に既存の処理を用いる。たとえば、２次元コードの認識もしくはデコード技術を用いて、マーカーからＩＤを特定することが可能である。マーカーのＩＤについては、マーカーのデザイン時にマーカーを一意に特定できるものをあらかじめ定義しておく。
【００７４】
ステップＳ９０４０はオブジェクト判定処理である。ステップＳ９０３０にて特定されたＩＤを用いてオブジェクトを判定する。具体的には、図１０に示すマーカー対応テーブルを参照して、オブジェクトを判定する。ＩＤ１００１はマーカーのＩＤを示す。オブジェクト１００２はＩＤに対応するオブジェクトである。たとえば、ＩＤが“１”の場合、オブジェクトは“冊子”であることが特定できる。
【００７５】
本実施形態では、マーカーを用いてオブジェクトを特定したが、異なる方法を用いてもよい。たとえば、画像検索の技術を使うことも可能である。予め特定しておきたいオブジェクトを撮影しておき、オブジェクトが置かれたのち撮影された画像と予め用意しておいた画像を比較する。比較結果が類似していれば、予め撮影したオブジェクトとして判定できる。また、オブジェクトの特定は、二次元コードのような可視のマーカーや物体認識技術を用いることでも可能である。さらに、３次元形状を取得できるセンサを追加して、３次元形状を用いたオブジェクトの特定方法を用いてもよい。予めオブジェクトの３次元形状を登録しておき、置かれたオブジェクトの３次元形状と比較することで、オブジェクトの特定が可能である。
【００７６】
続いて、図４におけるステップＳ４０７０およびステップＳ４１１０のジェスチャー認識処理について、図１２を用いて処理フローを詳細に説明する。ジェスチャー認識処理を実施することで、本システムで使用されるオブジェクトに対して、プロジェクタによる映像を投影するとともに、オブジェクトに特別な装置を設置しなくとも映像に対する操作を実現することができる。
【００７７】
ステップＳ１２０００は距離画像取得処理である。距離画像取得処理では、本実施形態の情報処理装置が備える距離センサを用いて距離画像を撮影して取得する。本処理は、図７のステップＳ７０００で説明した距離画像取得処理と同様の処理により実現する。
【００７８】
ステップＳ１２０１０は手領域判別処理である。手領域判別処理では、ステップＳ１２０００で取得した距離画像から人間の手に相当する部分を特定する。人間の手領域を特定する処理は、既存の技術を用いることが可能である。たとえば、予め手領域の特徴を記録しておき、該特徴と比較することで手領域であるかを判定することができる。本処理は、図７のステップＳ７０２０にて説明した手領域判別処理と同様の処理により実現される。
【００７９】
ステップＳ１２０２０は３Ｄ座標取得処理である。３Ｄ座標取得処理では、ステップＳ１２０１０にて特定された手領域以外の領域の３Ｄ座標を取得する。３Ｄ座標は、ステップＳ１２０００にて取得した距離画像から、手領域を除いた領域について距離情報（以降、距離データとも記載する）を取得し、これらの距離情報から手領域以外の３Ｄ座標を特定する。
【００８０】
ステップＳ１２０３０はタッチ面設定処理である。タッチ面設定処理では、ステップＳ１２０２０にて取得された３Ｄ座標を用いて、タッチ面を設定する。タッチ面として設定された座標は、手領域によりタッチ操作として認識可能となる。このように、動的にタッチ面を設定することで、任意のオブジェクトが置かれた場合も、特殊な装置をオブジェクトに搭載することなくオブジェクトに対するタッチ操作が可能になる。動的なタッチ面設定がない場合は、予め規定した座標のみをタッチ面として使用することになる。たとえば、机上をタッチ面として設定しておくことになり、机上にオブジェクトが置かれた場合、オブジェクトに対してタッチ操作はできなくなる。
【００８１】
ステップＳ１２０４０はジェスチャー認識処理である。ジェスチャー認識処理では、手領域の時系列変化を用いてジェスチャーの操作種別を特定する。ジェスチャーの操作種別の特定処理には既存の技術を用いることができる。たとえば、時系列パターンモデルを用いてジェスチャーの操作種別を特定する技術が知られている。図１３におけるジェスチャー種別１３０２は当該処理により特定されるジェスチャー種別の一例である。
【００８２】
本実施形態では、ジェスチャー認識の方法として距離画像を用いたが、異なる情報を用いてジェスチャーを認識してもよい。たとえば、複数台のＲＧＢカメラを用いてジェスチャー認識する方法が知られている。
【００８３】
以上、詳細に説明したように、二種類の物体検知手法を用いることで、システムのユーザがオブジェクトを置く際に動かしている手の影響を抑えたうえで、オブジェクトの位置と大きさを精度良く検出することが可能になる。
【００８４】
本実施形態において用いた情報処理装置のように、カメラとプロジェクタで構成されるシステムでは、キーボードやマウスのような明示的な指示機器を用いるのではなく、ユーザのジェスチャー操作により各種の指示を行う。このような場合、オブジェクトを置いたのち、すぐにジェスチャー操作が行えることが望まれるが、従来技術ではオブジェクトを置いたのち、カメラで撮影している領域から、一度手をフレームアウトさせなくてはならなかった。上述の方法であれば、手をカメラの撮影領域からフレームアウトさせなくてもジェスチャー操作を開始することが可能になり、ユーザの操作性を向上することができる。
【００８５】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００８６】
３０１  撮影処理部
３０２  物体検知部
３０３  認識処理部
３０４  投影処理部
３０５  第一撮像部
３０６  第二撮像部
３０７  第三撮像部
３０８  第一物体検知部
３０９  検知精度判定部
３１０  検知対象更新部
３１１  第二物体検知部
３１２  ジェスチャー認識部
３１３  マーカー認識部
３１４  投影データ取得部
３１５  投影データ更新部
３１６  投影部
【図１】
2017037428.tif 000003
【図２】
2017037428.tif 000004
【図３】
2017037428.tif 000005
【図４】
2017037428.tif 000006
【図５】
2017037428.tif 000007
【図６】
2017037428.tif 000008
【図７】
2017037428.tif 000009
【図８】
2017037428.tif 000010
【図９】
2017037428.tif 000011
【図１０】
2017037428.tif 000012
【図１１】
2017037428.tif 000013
【図１２】
2017037428.tif 000014
【図１３】
2017037428.tif 000015
【図１４】
2017037428.tif 000016
【図１５】
2017037428.tif 000017
【図１６】
2017037428.tif 000018
【図１７】
2017037428.tif 000019
【図１８】
2017037428.tif 000020
【図１９】
2017037428.tif 000021
【図２０】
2017037428.tif 000022
【図２１】
2017037428.tif 000023
【図２２】
2017037428.tif 000024
【図２３】
2017037428.tif 000025
【図２４】
2017037428.tif 000026
【図２５】
2017037428.tif 000027