(57)【特許請求の範囲】
【請求項１】
実空間において把持対象物体が含まれる把持物体領域を記憶する記憶部と、
所定の撮像期間中において、距離センサから得た、対象物体と前記距離センサ間の距離を画素値で表した距離画像において、前記対象物体が写る物体領域を検出する物体領域検出部と、
前記距離画像において、前記物体領域内の前記対象物体に対応する各画素について、当該画素に写る前記対象物体の実空間での位置を算出する実空間位置算出部と、
前記距離画像に対応する、前記対象物体の実空間での位置に基づいて、前記対象物体の実空間の軌跡を表す軌跡データを生成する追跡部と、
前記把持物体領域内の前記把持対象物体の高さと、前記軌跡が前記把持物体領域を通過した後の物体の高さとの変化に基づいて、前記把持対象物体が前記対象物体により把持されている第１の期間を特定する把持判定部と、
前記第１の期間に対応する、所定の投影期間中の第２の期間において、プロジェクタに、前記対象物体の像と前記対象物体により把持されている前記把持対象物体を示す像とを、投影面上の互いに異なる位置に投影させる投影制御部と、
を有する投影装置。
【請求項２】
前記記憶部は、前記把持対象物体が表された画像を前記把持対象物体を示す像として記憶する、請求項１に記載の投影装置。
【請求項３】
前記把持対象物体が前記対象物体により把持されていない時に得られた前記距離画像から、前記把持対象物体が写る領域を検出し、当該領域内の各点の実空間における位置を算出することで前記把持対象物体に対応する前記把持物体領域を設定し、かつ、カメラにより得られた前記把持対象物体を撮影した画像上で、前記把持物体領域に対応する領域を前記把持対象物体が表された画像とする把持物体領域設定部をさらに有する、請求項２に記載の投影装置。
【請求項４】
前記対象物体に把持されている前記把持対象物体に対応する前記把持物体領域に対応する、前記プロジェクタの表示面上の位置を算出することで、前記把持対象物体に対応する前記プロジェクタの前記表示面上の表示領域を算出する表示領域算出部をさらに有し、
前記投影制御部は、前記第２の期間において、前記プロジェクタの前記表示面上の前記表示領域に、前記把持対象物体を示す像を表示させることで前記把持対象物体を示す像を前記投影面に投影する、請求項３に記載の投影装置。
【請求項５】
前記記憶部は、前記把持対象物体の特徴を表す登録特徴量をさらに記憶し、
前記第２の期間において、前記距離センサにより得られた前記距離画像上、または、前記カメラにより得られた前記画像上で、前記対象物体に把持されている前記把持対象物体に対応する前記把持物体領域に対応する領域に写っている物体の特徴を表す照合用特徴量を算出する特徴抽出部と、
前記照合用特徴量と前記対象物体に把持されている前記把持対象物体についての前記登録特徴量とを照合して、前記物体と前記対象物体に把持されている前記把持対象物体とが同一か否かを判定する照合部とをさらに有し、
前記投影制御部は、前記物体と前記対象物体に把持されている前記把持対象物体とが同一である場合、前記第２の期間において、前記プロジェクタの前記表示面上の前記表示領域に、前記把持物体領域を囲む枠線の像を前記把持対象物体を示す像として表示させる、請求項４に記載の投影装置。
【請求項６】
前記投影制御部は、前記第２の期間において、前記プロジェクタにより、前記把持対象物体が前記対象物体に把持されていることを示す情報を前記投影面に投影させる、請求項１〜５の何れか一項に記載の投影装置。
【請求項７】
所定の撮像期間中において、距離センサから得た、対象物体と前記距離センサ間の距離を画素値で表した距離画像において、前記対象物体が写る物体領域を検出し、
前記距離画像において、前記物体領域内の前記対象物体に対応する各画素について、当該画素に写る前記対象物体の実空間での位置を算出し、
前記距離画像に対応する、前記対象物体の実空間での位置に基づいて、前記対象物体の実空間の軌跡を表す軌跡データを生成し、
実空間において把持対象物体が含まれる把持物体領域内の前記把持対象物体の高さと、前記軌跡が前記把持物体領域を通過した後の物体の高さとの変化に基づいて、前記把持対象物体が前記対象物体により把持されている第１の期間を特定し、
前記第１の期間に対応する、所定の投影期間中の第２の期間において、プロジェクタに、前記対象物体の像と前記対象物体により把持されている前記把持対象物体を示す像とを、投影面上の互いに異なる位置に投影させる、
ことを含む投影方法。
【請求項８】
所定の撮像期間中において、距離センサから得た、対象物体と前記距離センサ間の距離を画素値で表した距離画像において、前記対象物体が写る物体領域を検出し、
前記距離画像において、前記物体領域内の前記対象物体に対応する各画素について、当該画素に写る前記対象物体の実空間での位置を算出し、
前記距離画像に対応する、前記対象物体の実空間での位置に基づいて、前記対象物体の実空間の軌跡を表す軌跡データを生成し、
実空間において把持対象物体が含まれる把持物体領域内の前記把持対象物体の高さと、前記軌跡が前記把持物体領域を通過した後の物体の高さとの変化に基づいて、前記把持対象物体が前記対象物体により把持されている第１の期間を特定し、
前記第１の期間に対応する、所定の投影期間中の第２の期間において、プロジェクタに、前記対象物体の像と前記対象物体により把持されている前記把持対象物体を示す像とを、投影面上の互いに異なる位置に投影させる、
ことをコンピュータに実行させるための投影用コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、物体の像を所定の投影面に投影する投影装置、及び、そのような投影装置で利用される投影方法及び投影用コンピュータプログラムに関する。
【背景技術】
【０００２】
近年、拡張現実感（Augmented Reality, AR）を利用した、作業支援システムが提案されている（例えば、非特許文献１を参照）。非特許文献１に開示されたAR支援システムでは、ユーザが作業する対象の前でカメラをかざすと、その対象を写した映像に対して教師ビデオが重畳表示される。その際、このAR支援システムは、カメラと操作対象の位置関係に応じて、教師ビデオの視線を、カメラで撮影された映像の視線と合わせるために、教師ビデオを適宜変形し、変形された教師ビデオをカメラの映像上に重畳表示する。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】後藤他、「作業空間への教師ビデオ重畳表示によるＡＲ支援システム」、画像電子学会誌、第３９巻、第６号、pp.1108-1120、2010年
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ここで、教師ビデオを、プロジェクタを用いて所定の投影面に投影することを考える。この場合、非特許文献１に記載の技術のような教師ビデオの変形では、教師ビデオに写っている指導者の手などに把持され得る、工具あるいは部品といった把持対象物体の像が、投影面に載置された作業対象物体上に投影されることがある。しかし、作業対象物体が複雑な構造を有していると、投影された把持対象物体の像がその構造と重畳されるために、その像が非常に見難くなることがある。また、把持対象物体が手などに把持された状態では、把持対象物体の一部が手などで隠されて見えなくなるオクルージョンが生じるので、その状態の把持対象物体の像が投影されても、ユーザは、把持対象物体の全体を理解することが困難となる。
【０００５】
一つの側面では、本発明は、投影対象となる物体が把持している把持対象物体の像に対するユーザの視認性を向上させることが可能な投影装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
一実施形態によれば、投影装置が提供される。この投影装置は、実空間において把持対象物体が含まれる把持物体領域を記憶する記憶部と、所定の撮像期間中において、距離センサから得た、対象物体と距離センサ間の距離を画素値で表した距離画像において、対象物体が写る物体領域を検出する物体領域検出部と、距離画像において、物体領域内の対象物体に対応する各画素について、その画素に写る対象物体の実空間での位置を算出する実空間位置算出部と、距離画像に対応する、対象物体の実空間での位置に基づいて、対象物体の実空間の軌跡を表す軌跡データを生成する追跡部と、把持物体領域内の把持対象物体の高さと、対象物体の実空間の軌跡が把持物体領域を通過した後の物体の高さとの変化に基づいて、把持対象物体が対象物体により把持されている第１の期間を特定する把持判定部と、第１の期間に対応する、所定の投影期間中の第２の期間において、プロジェクタに、対象物体の像と対象物体により把持されている把持対象物体を示す像とを、投影面上の互いに異なる位置に投影させる投影制御部とを有する。
【発明の効果】
【０００７】
投影対象となる物体が把持している把持対象物体の像に対するユーザの視認性を向上させることができる。
【図面の簡単な説明】
【０００８】
【図１】一つの実施形態による投影装置のハードウェア構成図である。
【図２】一つの実施形態による投影装置の距離センサ、カメラ及びプロジェクタと追跡対象物体の像が投影される投影面の位置関係の一例を示す図である。
【図３】一つの実施形態による制御部の機能ブロック図である。
【図４】距離センサ座標系と世界座標系の関係を示す図である。
【図５】把持物体領域の一例を示す図である。
【図６】軌跡データの一例を示す図である。
【図７】把持判定の概要の説明図である。
【図８】把持判定処理の動作フローチャートである。
【図９】（ａ）は、何れの把持対象物体も把持されていない場合における、投影面の模式図である。（ｂ）は、何れかの把持対象物体が追跡対象物体により把持されている場合における、投影面の模式図である。
【図１０】投影処理の動作フローチャートである。
【図１１】変形例による、制御部の機能ブロック図である。
【図１２】（ａ）は、把持物体領域に物体が存在しない場合における、投影面の模式図である。（ｂ）は、把持物体領域に、把持されている把持対象物体と異なる物体が存在する場合における、投影面の模式図である。（ｃ）は、把持物体領域に、把持されている把持対象物体と同じ把持対象物体が存在する場合における、投影面の模式図である。
【発明を実施するための形態】
【０００９】
以下、図面を参照しつつ、投影装置について説明する。この投影装置は、検知範囲内に位置する物体までの距離を測定可能な距離センサで、追跡対象となる物体（以下、追跡対象物体と呼ぶ）を一定期間にわたって継続して撮影する。この投影装置は、その撮影中に得られる複数の距離画像のそれぞれから、その追跡対象物体の実空間での位置を求める。そしてこの投影装置は、追跡対象物体の実空間での位置変化の軌跡が追跡対象物体が把持し得る物体が含まれる領域を通過する前後でのその領域内の物体の高さの変化に基づいて、追跡対象物体が把持対象物体を把持している期間を特定する。なお、追跡対象物体が把持し得る物体を、以下では、把持対象物体と呼ぶ。そしてこの投影装置は、各距離画像から得られる追跡対象物体の像を、その距離画像の撮影順に従ってプロジェクタにより投影する際に、追跡対象物体が把持対象物体を把持している間、その把持対象物体の像も、追跡対象物体の像と異なる位置に投影する。
【００１０】
本実施形態では、投影装置は、作業台の上で一連の作業を指導者が実行する間に撮影された複数の距離画像のそれぞれから、指導者の手を追跡対象物体として検出する。そして本実施形態では、指導者の手により把持される工具、あるいは、部品を把持対象物体とする。そして投影装置は、ユーザにその作業を指導する際に、教師ビデオとして、距離画像の取得順序に従って、各距離画像から検出された手の像をプロジェクタにより投影面に順次投影する。なお、指導者による一連の作業についての距離センサによる撮影の実行期間を、以下では、単に撮像期間と呼び、プロジェクタによる教師ビデオの投影の実行期間を、以下では、単に投影期間と呼ぶ。
【００１１】
図１は、一つの実施形態による投影装置のハードウェア構成図である。図２は、一つの実施形態による投影装置の距離センサ、カメラ及びプロジェクタと追跡対象物体の像が投影される投影面の位置関係の一例を示す図である。投影装置１は、距離センサ１１と、カメラ１２と、プロジェクタ１３と、記憶部１４と、制御部１５とを有する。そして距離センサ１１、カメラ１２、プロジェクタ１３、及び記憶部１４は、それぞれ、制御部１５と信号線を介して接続される。また、投影装置１は、投影装置１を他の機器と接続するための通信インターフェース（図示せず）をさらに有していてもよい。
【００１２】
距離センサ１１は、距離測定部の一例であり、図２に示されるように、例えば、ユーザが作業する作業台の表面１００の少なくとも一部が検知範囲に含まれるように、プロジェクタ１３の投影方向へ向けて取り付けられる。距離センサ１１は、撮像期間において、一定の周期（例えば、30フレーム／秒〜60フレーム／秒）ごとに、検知範囲の距離画像を生成する。そして距離センサ１１は、生成した距離画像を制御部１５へ出力する。そのために、距離センサ１１は、例えば、デプスカメラとすることができる。距離画像は、例えば、画素ごとに、その画素の値により、距離センサ１１からその画素に写っている追跡対象物体１０１等までの距離を表す。例えば、距離センサ１１から距離画像中の画素に写っている追跡対象物体１０１の点までの距離が近いほど、その画素の値は大きくなる。
【００１３】
カメラ１２は、撮像部の一例である。カメラ１２は、例えば、作業台の表面１００、追跡対象物体１０１及び作業台の表面１００に載置された作業対象物体１０２、及び、追跡対象物体１０１が把持する可能性が有る把持対象物体１０３がカメラ１２の撮影範囲に含まれるように取り付けられる。カメラ１２は、撮像期間中において、一定の周期（例えば、30フレーム／秒〜60フレーム／秒）ごとに、画像を生成する。そしてカメラ１２は、画像を生成する度に、その生成した画像を制御部１５へ出力する。あるいは、カメラ１２は、追跡対象物体がカメラ１２の撮影範囲内に存在せず、かつ、作業対象物体１０２及び全ての把持対象物体１０３が作業台の表面１００に載置されている状態で、その撮影範囲を１回だけ撮影してもよい。
なお、カメラ１２により生成される画像はグレー画像であってもよく、あるいは、カラー画像であってもよい。本実施形態では、カメラ１２は、カラー画像を生成するものとする。
【００１４】
プロジェクタ１３は、投影部の一例であり、図２に示されるように、投影面へ向けて映像を投影するように設置される。本実施形態では、投影面は、作業台の表面１００、あるいは、作業対象物体１０２の表面に設定される。したがって、プロジェクタ１３は、その作業台の上方に、鉛直下方へ向けて取り付けられる。
プロジェクタ１３は、例えば、液晶プロジェクタであり、制御部１５から受け取った映像信号に従って映像をその表示面に表示することで、映像を投影する。本実施形態では、プロジェクタ１３は、追跡対象物体１０１の像を投影面に投影する。また、プロジェクタ１３は、撮像期間中において何れかの把持対象物体１０３が把持されている期間（すなわち、第１の期間）に対応する、投影期間中の期間（すなわち、第２の期間）において、把持されている把持対象物体１０３を示す像を投影面に投影する。
【００１５】
記憶部１４は、例えば、揮発性又は不揮発性の半導体メモリ回路を有する。そして記憶部１４は、距離センサ１１により得られた距離画像、カメラ１２により得られた画像、及び、プロジェクタ１３により投影される映像を表す映像信号などを記憶する。さらに、記憶部１４は、投影処理で利用される様々な情報、例えば、世界座標系における、距離センサ１１の設置位置及び向き、距離画像に含まれる画素数、距離センサ１１の対角視野角などを記憶する。同様に、記憶部１４は、世界座標系における、カメラ１２及びプロジェクタ１３の設置位置及び向き、カメラ１２の画素数及びプロジェクタ１３の表示面の画素数及び対角視野角などを記憶する。さらに、記憶部１４は、投影処理の途中で生成される各種のデータ、例えば、軌跡データを記憶する。
【００１６】
制御部１５は、一つまたは複数のプロセッサ及びその周辺回路を有する。そして制御部１５は、投影装置１全体を制御する。
【００１７】
以下、制御部１５により実行される、投影処理に関する構成要素の詳細について説明する。
図３は、制御部１５の機能ブロック図である。制御部１５は、把持物体領域設定部２０と、物体領域検出部２１と、実空間位置算出部２２と、追跡部２３と、把持判定部２４と、表示領域算出部２５と、投影制御部２６とを有する。
制御部１５が有するこれらの各部は、例えば、制御部１５が有するプロセッサ上で実行されるコンピュータプログラムによって実現される機能モジュールとして実装される。あるいは、これらの各部の機能を実現する一つまたは複数の集積回路が、制御部１５とは別個に投影装置１に実装されてもよい。
【００１８】
以下、制御部１５の各部の処理を、撮像期間についての処理と投影期間についての処理とに分けて説明する。
【００１９】
（撮像期間）
把持物体領域設定部２０は、追跡対象物体により把持されていないときに把持対象物体が含まれる実空間の領域である把持物体領域を実空間において設定する。
【００２０】
そのために、把持物体領域設定部２０は、例えば、追跡対象物体が距離センサ１１の検知範囲内に存在しておらず、全ての把持対象物体が作業台上に載置されているときに距離センサ１１により得られた距離画像から、把持対象物体が写っている領域を検出する。例えば、把持物体領域設定部２０は、距離画像上の各画素について、その画素の値と、距離センサ１１により作業台を撮影した場合に得られる基準距離画像上の対応画素の値とを比較する。なお、基準距離画像は、予め記憶部１４に保存される。把持物体領域設定部２０は、距離画像の画素の値と基準距離画像の対応画素の値の差の絶対値が所定の閾値以上となる画素を抽出する。なお、所定の閾値は、例えば、1cm〜2cmに相当する距離画像上の画素値とすることができる。
【００２１】
把持物体領域設定部２０は、抽出された画素に対して、例えば、ラベリング処理を実行して、抽出された画素をグループ化することで、それぞれが抽出された画素を含み、かつ、互いに分離した１以上の候補領域を求める。なお、把持物体領域設定部２０は、距離画像中で作業対象物体が写っていると想定される範囲に含まれる候補領域は、把持対象物体とは無関係であるとして、その候補領域を削除してもよい。そして把持物体領域設定部２０は、各候補領域のうち、その候補領域に含まれる画素数が把持対象物体のサイズに相当する所定の範囲内に含まれる候補領域に、把持対象物体が写っていると判定する。
【００２２】
把持物体領域設定部２０は、把持対象物体が写っていると判定した候補領域に対応する実空間上の領域を把持物体領域として設定する。そのために、把持物体領域設定部２０は、例えば、把持対象物体が写っていると判定した候補領域内の各画素に対応する把持対象物体上の点の実空間での位置を算出する。そこで先ず、把持物体領域設定部２０は、着目する画素について、その画素に写っている把持対象物体の点の距離センサ座標系での位置を算出する。距離センサ座標系は、距離センサ１１を基準とする、実空間での座標系である。そして把持物体領域設定部２０は、距離センサ座標系で表された、着目する画素に対応する把持対象物体の点の座標を、作業台の表面を基準とする世界座標系の座標に変換する。
【００２３】
図４は、距離センサ座標系と世界座標系の関係を示す図である。距離センサ座標系４００では、Zd軸は、距離センサ１１の光軸と平行な方向に設定され、Xd軸及びYd軸は、Zd軸と直交する面、すなわち、距離センサ１１のセンサ面と平行な面において、互いに直交するように設定される。例えば、Xd軸は、距離画像における水平方向に対応する方向に設定され、Yd軸は、距離画像における垂直方向に対応する方向に設定される。そして距離センサ座標系４００の原点は、距離センサ１１のセンサ面の中心、すなわわち、センサ面と光軸とが交差する点に設定される。
【００２４】
一方、世界座標系４１０は、作業台の表面１００上に、互いに直交する二つの軸Xw軸、Yw軸が設定され、Zw軸は、作業台の表面１００の法線方向と平行となるように設定される。また世界座標系４１０の原点は、例えば、作業台の表面１００上で、プロジェクタ１３の投影範囲の一端、あるいは、投影範囲の中心に設定される。なお、距離センサ１１と作業台の表面１００の位置関係は既知である。すなわち、距離センサ座標系４００上の任意の点の座標は、アフィン変換によって世界座標系４１０の座標に変換可能である。
【００２５】
把持物体領域設定部２０は、着目する画素について、その画素に写っている把持対象物体の点の距離センサ座標系での座標(Xd,Yd,Zd)を、次式に従って算出する。
【数１】
0006597277.tif 000002
（１）式は、ピンホールカメラモデルに従った式であり、fdは、距離センサ１１の焦点距離を表し、DW及びDHは、それぞれ、距離画像の水平方向画素数及び垂直方向画素数を表す。またDfovDは、距離センサ１１の対角視野角を表す。そして(xd,yd)は、距離画像上での水平方向の位置及び垂直方向の位置を表す。また、Zdは、距離画像上の画素(xd,yd) に対応する位置にある追跡対象物体の点と距離センサ１１間の距離であり、その画素(xd,yd)の値に基づいて算出される。
【００２６】
さらに、把持物体領域設定部２０は、着目する画素について、その画素に写っている把持対象物体の点の距離センサ座標系での座標を、次式に従って世界座標系での座標(XW,YW,ZW)に変換する。
【数２】
0006597277.tif 000003
ここでRDWは、距離センサ座標系から世界座標系へのアフィン変換に含まれる、回転量を表す回転行列であり、tDWは、そのアフィン変換に含まれる平行移動量を表す平行移動ベクトルである。そしてDLocX、DLocY、DLocZは、それぞれ、世界座標系のXw軸方向、Yw軸方向、Zw軸方向における、距離センサ１１のセンサ面の中心の座標、すなわち、距離センサ座標系の原点の座標である。またDRotX、DRotY、DRotZは、それぞれ、Xw軸、Yw軸、Zw軸に対する、距離センサ１１の光軸方向の回転角度を表す。
【００２７】
把持物体領域設定部２０は、（１）式及び（２）式に従って、把持対象物体が写っていると判定した候補領域内の各画素に対応する把持対象物体の点の実空間での位置を算出する。これにより、実空間での把持対象物体の位置及び範囲が求められる。そして把持物体領域設定部２０は、世界座標系のXwYw平面にて、把持対象物体の外接矩形を、把持物体領域として設定する。
【００２８】
図５は、把持物体領域の一例を示す図である。図５に示されるように、把持物体領域５１０は、Xw軸に平行な辺とYw軸に平行な辺を持ち、かつ、把持対象物体５００に外接する矩形領域として設定される。なお、把持物体領域５１０は、把持対象物体５００の外接楕円として設定されてもよく、あるいは、XwYw平面における、把持対象物体５００が存在する領域そのものであってもよい。
【００２９】
さらに、把持物体領域設定部２０は、追跡対象物体が距離センサ１１の検知範囲内に存在しておらず、全ての把持対象物体が作業台上に載置されているときにカメラ１２により得られた画像上で、把持対象物体ごとに、その把持物体領域に対応する領域を特定する。そして把持物体領域設定部２０は、把持対象物体ごとに、その画像から、把持物体領域に対応する領域を切り出して、その把持対象物体を表す把持物体画像として、対応する把持物体領域とともに記憶部１４に保存する。
【００３０】
把持物体画像を作成するために、把持物体領域設定部２０は、着目する把持物体領域の各コーナーの実空間の位置の座標を、世界座標系の座標からカメラ座標系の座標に変換する。その際、把持物体領域設定部２０は、各コーナーについて、そのコーナーの世界座標系での座標(XW,YW,ZW)を、次式に従って、カメラ座標系上の座標 (XC,YC,ZC)に変換する。
【数３】
0006597277.tif 000004
ここでRWCは、世界座標系からカメラ座標系へのアフィン変換に含まれる、回転量を表す回転行列であり、tWCは、そのアフィン変換に含まれる平行移動量を表す平行移動ベクトルである。また、RCWは、カメラ座標系から世界座標系へのアフィン変換に含まれる回転行列であり、tCWは、そのアフィン変換に含まれる平行移動量を表す平行移動ベクトルである。CLocX、CLocY、CLocZは、それぞれ、世界座標系のXw軸方向、Yw軸方向、Zw軸方向における、カメラ１２のイメージセンサの中心の座標、すなわち、カメラ座標系の原点の座標である。またCRotX、CRotY、CRotZは、それぞれ、Xw軸、Yw軸、Zw軸に対する、カメラ１２の光軸方向の回転角度を表す。
【００３１】
把持物体領域設定部２０は、把持物体領域ごとに、その把持物体領域の各コーナーについてのカメラ座標系での座標(XC,YC,ZC)に対応する、カメラ１２により得られる画像上の画素の座標(xc,yc)を、次式に従って特定する。
【数４】
0006597277.tif 000005
ここで、fcは、カメラ１２の焦点距離を表し、CW及びCHは、それぞれ、カメラ１２により得られる画像の水平方向画素数及び垂直方向画素数を表す。またCfovDは、カメラ１２の対角視野角を表す。
【００３２】
把持物体領域設定部２０は、把持物体領域ごとに、その把持物体領域の各コーナーに対応する画像上の４点で囲まれた領域を、把持物体画像として画像から切り出す。
【００３３】
物体領域検出部２１は、撮像期間中、距離センサ１１から制御部１５が取得した各距離画像から、追跡対象物体が写っている領域である物体領域を検出する。本実施形態では、物体領域検出部２１は、各距離画像に対して同一の処理を実行するので、以下では、一つの距離画像に対する処理について説明する。
【００３４】
例えば、物体領域検出部２１は、距離画像上の各画素について、その画素の値と、基準距離画像上の対応画素の値とを比較する。物体領域検出部２１は、距離画像の画素の値と基準距離画像の対応画素の値の差の絶対値が所定の閾値以上となる画素を抽出する。
【００３５】
物体領域検出部２１は、抽出された画素に対して、例えば、ラベリング処理を実行して、抽出された画素をグループ化することで、それぞれが抽出された画素を含み、かつ、互いに分離した１以上の候補領域を求める。そして物体領域検出部２１は、１以上の候補領域のうち、その候補領域に含まれる画素数が最大となる候補領域を物体領域とする。なお、指導者の両方の手が距離画像に写っていることもあるので、物体領域検出部２１は、その候補領域に含まれる画素数が多い方から順に二つの候補領域を、それぞれ、物体領域としてもよい。あるいはまた、物体領域検出部２１は、含まれる画素数が所定の画素数以上となる候補領域が存在しない場合には、距離画像には物体領域が含まれない、すなわち、距離画像に追跡対象物体が写っていないと判定してもよい。
【００３６】
物体領域検出部２１は、距離画像上の物体領域を実空間位置算出部２２へ通知する。
【００３７】
実空間位置算出部２２は、距離センサ１１から制御部１５が取得した各距離画像から検出された物体領域に含まれる各画素について、その画素に写っている追跡対象物体の点の実空間での位置を算出する。本実施形態では、実空間位置算出部２２は、各距離画像に対して同一の処理を実行するので、以下では、一つの距離画像に対する処理について説明する。
【００３８】
実空間位置算出部２２は、先ず、物体領域に含まれる各画素について、その画素に写っている追跡対象物体の点の距離センサ座標系での位置を算出する。そして実空間位置算出部２２は、距離センサ座標系で表された、各画素に対応する追跡対象物体の点の座標を、世界座標系の座標に変換する。
【００３９】
実空間位置算出部２２は、物体領域に含まれる各画素について、その画素に写っている追跡対象物体の点の距離センサ座標系での座標(Xd,Yd,Zd)を、（１）式に従って算出する。さらに、実空間位置算出部２２は、物体領域に含まれる各画素について、その画素に写っている追跡対象物体の点の距離センサ座標系での座標を、（２）式に従って世界座標系での座標(XW,YW,ZW)に変換する。
【００４０】
このように、実空間位置算出部２２は、物体領域に含まれる各画素に写っている追跡対象物体の点の実空間での位置を算出することで、その追跡対象物体の実空間での実際のサイズに応じた範囲及び位置を求めることができる。
実空間位置算出部２２は、物体領域に対応する追跡対象物体の各点の世界座標系での座標を追跡部２３及び表示領域算出部２５へ通知する。
【００４１】
追跡部２３は、撮影期間中、実空間での追跡対象物体の位置の変化を追跡して、追跡対象物体の位置変化の軌跡をもとめる。例えば、追跡部２３は、各距離画像について、その距離画像から検出された物体領域中の所定の点に対応する実空間の位置を求め、その位置を距離画像の生成順に並べることで、追跡対象物体の位置変化の軌跡を表す軌跡データを生成する。例えば、追跡部２３は、追跡対象物体である手の先端、あるいは、手が把持している把持対象物体の先端を、所定の点とすることができる。例えば、世界座標系と指導者の位置関係から、手の先端、あるいは、手が把持している把持対象物体の先端が、物体領域に対応する実空間での領域における、世界座標系でのYw軸に沿った座標値の最大値に対応することが想定されるとする。この場合、追跡部２３は、各距離画像について、その距離画像から検出された物体領域に対応する実空間での領域における、Yw軸に沿った座標値の最大値を持つ点の世界座標系での座標及び対応する距離センサ座標系での座標を軌跡データに含めればよい。あるいはまた、追跡部２３は、物体領域に対応する実空間での領域のうち、Yw軸方向の最大値に対応する点から、Yw軸方向に沿って所定範囲（例えば、5cm〜10cm）以内にある部分領域の重心を所定の点としてもよい。この場合も、追跡部２３は、各距離画像に対応するその所定の点の世界座標系での座標及び対応する距離センサ座標系での座標を軌跡データに含めればよい。
【００４２】
なお、各距離画像から複数の物体領域が検出されている場合、追跡部２３は、オプティカルフローといった追跡処理を各物体領域に適用することで、同じ追跡対象物体に対応する物体領域を特定してもよい。また、追跡対象物体が手である場合は、右手と左手とが交差することは想定しなくてもよい。そこで、追跡部２３は、作業台の中心よりも左側に相当する距離画像上の範囲に含まれる物体領域を、左手が含まれる物体領域と判定し、一方、作業台の中心よりも右側に相当する距離画像上の範囲に含まれる物体領域を、右手が含まれる物体領域と判定してもよい。そして追跡部２３は、追跡対象物体ごとに、軌跡データを生成する。
【００４３】
図６は、軌跡データの一例を示す図である。軌跡データ６００は、距離画像の取得時刻を表すタイムスタンプ６０１ごとに、追跡対象物体が右手か左手かを表す手ＩＤ６０２と、距離センサ座標系での物体領域の先端の座標６０３及び世界座標系での物体領域の先端の座標６０４を含む。
【００４４】
追跡部２３は、追跡対象物体ごとに生成した軌跡データを記憶部１４に保存する。
【００４５】
把持判定部２４は、各距離画像について、軌跡データ、把持物体領域及び把持物体領域内の高さ情報に基づいて、追跡対象物体が把持対象物体を把持している期間を求める。
【００４６】
追跡対象物体が把持対象物体を把持する際には、追跡対象物体は、把持対象物体と重なる位置へ移動すると想定される。さらに、追跡対象物体が把持対象物体を把持した後では、元々把持対象物体が載置されていた領域から把持対象物体が無くなるため、その領域において、距離センサ１１からの距離、すなわち、作業台の表面からの高さが変化すると想定される。そこで把持判定部２４は、軌跡データを参照して、把持物体領域と追跡対象物体とが重なったか否か判定する。そして把持判定部２４は、追跡対象物体が把持物体領域と重なる前後で、すなわち、追跡対象物体の軌跡が把持物体領域を通過した前後で、把持物体領域内の物体の作業台表面からの高さが変化したか否かを判定する。把持判定部２４は、例えば、把持物体領域内で作業台の表面から最も高い位置、あるいは、把持物体領域内で作業台の表面からの高さの平均値を、その把持物体領域内の物体の作業台の表面からの高さとする。把持判定部２４は、把持対象物体が把持されていない状態にて、追跡対象物体が把持物体領域と重なる前の高さよりも、把持物体領域と重なった後の高さが所定値以上低くなっていれば、把持判定部２４は、把持対象物体が把持されたと判定する。なお、所定値は、例えば、1cm〜3cmに設定される。また、所定値は、把持対象物体の実際のサイズに応じて設定されてもよい。また、複数の把持対象物体が有る場合、把持対象物体ごとに、その把持対象物体に対応する把持物体領域と関連付けて、その把持対象物体のサイズに応じた所定値が設定されてもよい。
【００４７】
図７は、把持判定の概要の説明図である。この例では、作業台の表面１００に４個の把持物体領域７０１〜７０４が設定されている。また軌跡７０５は、撮影期間中の追跡対象物体の軌跡を表す。この例では、軌跡７０５は、把持物体領域７０２及び７０４と重なっている。そのため、把持物体領域７０２に載置されている把持対象物体または把持物体領域７０４に載置されている把持対象物体が、追跡対象物体により把持された可能性が有る。そこで、把持物体領域７０２及び７０４について、追跡対象物体の軌跡がその把持物体領域と重なる前後で、把持物体領域内の物体の作業台の表面１００からの高さが変化したか否かが判定される。そしてこの例では、把持物体領域７０４について、追跡対象物体の軌跡がその把持物体領域と重なる前後で、把持物体領域７０４内の物体の作業台の表面１００からの高さが変化している。そのため、把持物体領域７０４に載置された把持対象物体が把持されたと判定される。
【００４８】
また、把持判定部２４は、追跡対象物体が一旦把持したと判定した把持対象物体について、追跡対象物体の軌跡がその把持対象物体に対応する把持物体領域と重なった後に、もう一度把持物体領域内の物体の作業台の表面からの高さの変化を調べてもよい。そして把持判定部２４は、把持対象物体が把持されている状態にて、追跡対象物体が把持物体領域と重なる前の高さよりも、把持物体領域と重なった後の高さが所定値以上高くなっていれば、把持判定部２４は、把持対象物体が載置されたと判定すればよい。この場合、把持対意匠物体が追跡対象物体により把持されたと判定されたときから、把持対象物体が載置されたと判定されるまでの期間が、把持対象物体が追跡対象物体により把持されている期間となる。
【００４９】
図８は、把持判定処理の動作フローチャートである。なお、把持判定部２４は、追跡対象物体ごとに、この動作フローチャートに従って把持判定処理を実行する。
【００５０】
把持判定部２４は、軌跡データから最初の撮影時刻における追跡対象物体の世界座標系での位置を取得する。また、把持判定部２４は、各把持対象物体について、把持されているか否かを表すフラグGrabbed(m)(m=1,2,...,N、Nは把持対象物体の総数)を、把持されていない状態を表すFalseに設定する。さらに、把持判定部２４は、追跡対象物体が把持物体領域に入ったか否かを表すフラグHandInAreaを、追跡対象物体が何れの把持物体領域にもいないことを表すFalseに設定する（ステップＳ１０１）。
【００５１】
把持判定部２４は、追跡対象物体の位置が何れかの把持物体領域内に位置するか否か判定する（ステップＳ１０２）。追跡対象物体の位置がm番目の把持物体領域内に位置する場合（ステップＳ１０２−Ｙｅｓ）、把持判定部２４は、現在の把持対象物体を表すフラグObjectNumをmに設定する。さらに、把持判定部２４は、フラグHandInAreaを、追跡対象物体が何れかの把持物体領域に入ったことを表すTrueに設定する（ステップＳ１０３）。
【００５２】
一方、追跡対象物体の位置が何れの把持物体領域内にもいない場合（ステップＳ１０２−Ｎｏ）、把持判定部２４は、フラグHandInAreaがTrueか否か判定する（ステップＳ１０４）。フラグHandInAreaがTrueである場合（ステップＳ１０４−Ｙｅｓ）、追跡対象物体は、一旦何れかの把持物体領域に入ってからその把持物体領域を出たと想定される。そこで、把持判定部２４は、計時を開始するとともに、フラグHandInAreaをFalseに戻す（ステップＳ１０５）。
【００５３】
把持判定部２４は、計時中か否か判定する。計時中である場合、ObjectNumで示されるm番目の把持物体領域内の物体の作業台の表面からの高さが、追跡対象物体がその把持物体領域に入る前における、その把持物体領域内の物体の作業台の表面からの高さから変化したか否か判定する（ステップＳ１０６）。把持判定部２４は、例えば、追跡対象物体が把持物体領域内に入る前の高さと把持物体領域から出た後の高さの差が所定値以上変化していれば、把持物体領域内の物体の作業台の表面からの高さが変化したと判定してもよい。また、把持判定部２４は、Grabbed(ObjectNum)がFalseかTrueかに応じて、把持物体領域内の物体の作業台の表面からの高さが変化したか否かの判定条件を変えてもよい。すなわち、Grabbed(ObjectNum)がFalseである場合、ObjectNumで特定される把持対象物体が把持されていない。この場合、上記のように、把持判定部２４は、追跡対象物体が把持物体領域と重なる前の高さよりも、把持物体領域と重なった後の高さが所定値以上低くなっていれば、把持物体領域内の物体の作業台の表面からの高さが変化したと判定する。一方、Grabbed(ObjectNum)がTrueである場合、ObjectNumで特定される把持対象物体が把持されている。この場合、上記のように、把持判定部２４は、追跡対象物体が把持物体領域と重なる前の高さよりも、把持物体領域と重なった後の高さが所定値以上高くなっていれば、把持物体領域内の物体の作業台の表面からの高さが変化したと判定する。
【００５４】
把持判定部２４は、計時中であり、かつ、追跡対象物体が把持物体領域内に入るまでと出た後とで高さが変化していれば（ステップＳ１０６−Ｙｅｓ）、フラグGrabbed(ObjectNum)がFalseか否か判定する（ステップＳ１０７）。そしてフラグGrabbed(ObjectNum)がFalseである場合（ステップＳ１０７−Ｙｅｓ）、把持判定部２４は、フラグGrabbed(ObjectNum)を、把持対象物体が把持されている状態であることを表すTrueに書き換える（ステップＳ１０８）。一方、Grabbed(ObjectNum)がTrueである場合（ステップＳ１０７−Ｎｏ）、把持判定部２４は、フラグGrabbed(ObjectNum)をFalseに書き換える（ステップＳ１０９）。
【００５５】
一方、ステップＳ１０６において計時中でないか、あるいは、追跡対象物体が把持物体領域内に入る前後で高さが変化していなければ（ステップＳ１０６−Ｎｏ）、把持判定部２４は、計時開始から所定時間が経過したか否か判定する（ステップＳ１１０）。なお、所定時間は、例えば、追跡対象物体が、作業台上に載置されている把持対象物体を把持するのに要する時間、例えば、3秒〜5秒に設定される。そして計時開始から所定時間が経過した場合（ステップＳ１１０−Ｙｅｓ）、把持判定部２４は、計時を終了し、計時時間を0にリセットする。また把持判定部２４は、フラグObjectNumを何れの把持対象物体も表さないNULLに設定する（ステップＳ１１１）。
【００５６】
ステップＳ１０８、Ｓ１０９、あるいはＳ１１１の後、把持判定部２４は、全てのObjectNum(1≦ObjectNum≦N)について、Grabbed(ObjectNum)を現撮影時刻と対応付けて記憶部１４に保存する（ステップＳ１１２）。
【００５７】
その後、把持判定部２４は、軌跡データが終了したか否か判定する（ステップＳ１１３）。軌跡データが終了していない場合（ステップＳ１１３−Ｎｏ）、把持判定部２４は、軌跡データから次の撮影時刻における追跡対象物体の世界座標系での位置を取得する（ステップＳ１１４）。そして把持判定部２４は、ステップＳ１０２以降の処理を繰り返す。一方、軌跡データが終了した場合、すなわち、軌跡データ中に含まれる全ての撮影時刻について、追跡対象物体の位置が取得されている場合（ステップＳ１１３−Ｙｅｓ）、把持判定部２４は、把持判定処理を終了する。
【００５８】
以上により、撮影期間中の各距離画像の撮影時における、追跡対象物体の実空間での位置、及び、何れかの把持対象物体が把持されているか否かを表す情報が得られる。
【００５９】
（投影期間）
次に、投影期間における処理について説明する。投影期間において、制御部１５は、撮影期間中に得られた各距離画像の撮影順序に従って、その距離画像から得られた物体領域に相当する実空間での投影面上での位置に、プロジェクタ１３により追跡対象物体の像を投影させる。さらに、制御部１５は、撮像期間中において何れかの把持対象物体が把持されている期間に対応する、投影期間中の一部の期間において、その把持対象物体を示す像も、プロジェクタ１３により投影面上に投影させる。
【００６０】
表示領域算出部２５は、プロジェクタ１３により、追跡対象物体の像を投影面に投影する際の、プロジェクタ１３の表示面上での追跡対象物体の像の範囲を表す表示領域を算出する。さらに、表示領域算出部２５は、何れかの把持対象物体が追跡対象物体により把持されている間、プロジェクタ１３の表示面上でのその把持対象物体を示す像を表示する第２の表示領域を算出する。
【００６１】
なお、表示領域算出部２５は、撮影期間中の各距離画像に対して同一の処理を実行するので、以下では、一つの距離画像に対する処理について説明する。
【００６２】
本実施形態では、プロジェクタ１３は、投影面上での追跡対象物体の像のサイズが追跡対象物体の実際のサイズと一致するように追跡対象物体の像を投影する。そこで、表示領域算出部２５は、物体領域に対応する追跡対象物体の各点について、その点の実空間での位置を表す世界座標系での座標(XW,YW,ZW)のうち、Zw軸方向の座標値ZWを、投影面の高さZW'に置換する。これにより、仮想的に、追跡対象物体が投影面上にシフトされる。なお、投影面は、作業台の表面(Zw'=0)、あるいは、作業台上に載置されている作業対象物体の表面とすることができる。投影面を作業対象物体の表面とする場合、表示領域算出部２５は、投影面の高さとして、作業対象物体を撮影して得られた距離画像において、作業対象物体が写っている画素に対応する世界座標系のZw軸方向の座標を、（１）式及び（２）式に従って算出すればよい。
【００６３】
表示領域算出部２５は、シフト後の追跡対象物体の各点について、その点の世界座標系での座標(XW,YW,ZW')に相当するプロジェクタ１３の表示面上の座標を算出する。ここで、プロジェクタ１３と投影面の位置関係も既知である。そのため、世界座標系上の任意の点の座標は、アフィン変換により、プロジェクタ１３を基準とするプロジェクタ座標系上の座標に変換可能である。なお、プロジェクタ座標系は、例えば、距離センサ座標系と同様に、プロジェクタ１３の表示面の中心を原点とし、プロジェクタ１３の光軸方向、及び、光軸方向と直交する平面上で互いに直交する二つの方向を、それぞれ軸とする座標系とすることができる。
【００６４】
表示領域算出部２５は、追跡対象物体の各点について、その点の世界座標系での座標(XW,YW,ZW')を、次式に従って、プロジェクタ座標系上の座標(XP,YP,ZP)に変換する。
【数５】
0006597277.tif 000006
ここでRWPは、世界座標系からプロジェクタ座標系へのアフィン変換に含まれる、回転量を表す回転行列であり、tWPは、そのアフィン変換に含まれる平行移動量を表す平行移動ベクトルである。PLocX、PLocY、PLocZは、それぞれ、世界座標系のXw軸方向、Yw軸方向、Zw軸方向における、プロジェクタ１３の表示面の中心の座標、すなわち、プロジェクタ座標系の原点の座標である。またPRotX、ProtY、ProtZは、それぞれ、Xw軸、Yw軸、Zw軸に対する、プロジェクタ１３の光軸方向の回転角度を表す。なお、本実施形態では、プロジェクタ１３は、鉛直下方へ向けて取り付けられているので、回転行列RWPは、対角成分のみが'1'の値を持ち、他の成分が'0'の値を持つ行列となる。
【００６５】
さらに、表示領域算出部２５は、追跡対象物体の各点について、ピンホールモデルに従って、その点のプロジェクタ座標系での座標(XP,YP,ZP)に対応する、プロジェクタ１３の表示面上での座標(xp,yp)を、次式に従って算出する。
【数６】
0006597277.tif 000007
ここで、fpは、プロジェクタ１３の焦点距離を表し、PW及びPHは、それぞれ、表示面の水平方向画素数及び垂直方向画素数を表す。またPfovDは、プロジェクタ１３の対角視野角を表す。
【００６６】
また、表示領域算出部２５は、各距離画像について、その距離画像の撮影時刻に対応付けて記憶部１４に保存されているフラグGrabbed(ObjectNum)を参照して、ObjectNumで表される把持対象物体が把持されているか否か判定する。そして表示領域算出部２５は、ObjectNumで表される把持対象物体が把持されている場合、その把持対象物体に対応する把持物体領域に対応する、プロジェクタ１３の表示領域上の第２の表示領域を（５）式及び（６）式に従って算出する。
【００６７】
表示領域算出部２５は、表示領域及び第２の表示領域を投影制御部２６へ通知する。
【００６８】
投影制御部２６は、プロジェクタ１３の表示面上の表示領域に追跡対象物体の像を表示することで、投影面に追跡対象物体の像を投影する。その際、投影制御部２６は、例えば、表示領域内の各画素の値を、予め設定された所定の値とする。
【００６９】
ただし、プロジェクタ１３による投影像は、投影面上に半透過の２次元画像として投影されるので、投影面上にある実際の物の高さと追跡対象物体の高さの差がユーザにとって認知し難い。そのため、ユーザは、追跡対象物体が、投影面上にある物に触れているか否か、あるいは、追跡対象物体が空中にあるのか否かを識別することは困難なことがある。
【００７０】
そこで、変形例によれば、投影制御部２６は、撮像時における、距離センサ１１から追跡対象物体までの距離、あるいは、投影面から追跡対象物体までの高さに応じて、プロジェクタ１３の表示領域内の画素の値を調節してもよい。例えば、投影制御部２６は、プロジェクタ１３が追跡対象物体をグレースケールで表示する場合、表示領域内の各画素の輝度値を、次式に従って決定してもよい。
【数７】
0006597277.tif 000008
ここで、Zwは、表示領域内の着目する画素に対応する、追跡対象物体の点の投影面からの高さ（例えば、mm単位の値）を表し、Lvは、着目する画素の輝度値を表す。あるいは、投影制御部２６は、（７）式の代わりに、次式に従って、表示領域内の各画素の輝度値を決定してもよい。
【数８】
0006597277.tif 000009
ここで、Zmaxは、投影面に対する追跡対象物体の高さの想定される最大値を表す。
【００７１】
あるいはまた、投影制御部２６は、プロジェクタ１３の表示面上の表示領域内の画素の値を、次式に従って設定してもよい。
【数９】
0006597277.tif 000010
ここでR,G,Bは、それぞれ、画素の赤色成分、緑色成分、青色成分の値である。またAは、透明度を表すアルファ値である。またZwは、その画素に対応する、追跡対象物体の点の世界座標系での作業台表面からの高さを表す。そしてZaveWは、物体領域のYw軸方向の先端、すなわち、追跡対象物体の先端から、Yw軸方向に沿って所定範囲（例えば、150mm）内に存在する追跡対象物体の各点の世界座標系での作業台表面からの高さの平均値を表す。またZsurfaceWは、物体領域のYw軸方向の先端から、Yw軸方向に沿って所定範囲（例えば、150mm）内となる、物体領域内の各点のXw軸方向の平均値及びYw軸方向の平均値における、投影面（例えば、作業対象物体の表面）の高さを表す。そしてα、βは、それぞれ、定数であり、例えば、α=1.2、β=128に設定される。
【００７２】
撮像時における、投影面から実際の追跡対象物体までの高さに応じて、投影時における、プロジェクタ１３により投影される追跡対象物体の像の色または輝度を変えることで、ユーザは、撮像時における実際の追跡対象物体の高さを認知することが容易となる。そのため、ユーザは、追跡対象物体の像に基づいて、追跡対象物体が、投影面上にある物に触れているか否か、あるいは、追跡対象物体が空中にあるのか否かを識別することが容易となる。
【００７３】
さらに、投影制御部２６は、撮像期間中において何れかの把持対象物体が把持されている期間に対応する、投影期間中の一部の期間において、その把持対象物体に対応するプロジェクタ１３の表示面上の第２の表示領域に、その把持対象物体を示す像を表示させる。把持対象物体を示す像として、例えば、投影制御部２６は、記憶部１４に記憶されている把持物体画像を利用する。これにより、投影面に、その把持対象物体の像が投影される。さらに、投影制御部２６は、第２の表示領域から所定方向に所定のオフセットだけ離れた位置に、把持対象物体が把持されている状態であることを表す情報、例えば、「使用中」との文字列を表示させる。これにより、投影面に、その情報が投影される。
【００７４】
図９（ａ）は、何れの把持対象物体も把持されていない場合における、投影面の模式図である。一方、図９（ｂ）は、何れかの把持対象物体が追跡対象物体により把持されている場合における、投影面の模式図である。図９（ａ）に示されるように、何れの把持対象物体も把持されていない場合には、投影面９００には、追跡対象物体の像９０１のみが投影される。一方、図９（ｂ）に示されるように、何れかの把持対象物体が追跡対象物体により把持されている場合には、投影面９００には、追跡対象物体の像９０１だけでなく、把持されている把持対象物体を示す像９０２も投影される。この例では、追跡対象物体の像９０１と把持対象物体を示す像９０２とが互いに異なる位置に投影される。特に、その把持対象物体の使用中では、把持対象物体を示す像９０２が投影される、把持物体領域と追跡対象物体の像９０１とは重ならない。そのため、把持対象物体を示す像９０２の視認性が向上する。さらに、把持対象物体の像９０２から所定距離の位置に、「使用中」との文字列９０３が投影されるので、ユーザは、把持されている把持対象物体を容易に特定できる。
【００７５】
図１０は、制御部１５により実行される投影処理の動作フローチャートである。
【００７６】
把持物体領域設定部２０は、把持対象物体ごとに、把持対象物体を含む把持物体領域を世界座標系のXwYw平面に設定するとともに、把持物体領域内の各点の作業台表面からの高さを算出する（ステップＳ２０１）。
【００７７】
また把持物体領域設定部２０は、把持対象物体ごとに、把持物体領域に対応する、カメラ１２により得られた画像上の領域を、把持対象物体の像としてその画像から切り出して、記憶部１４に保存する（ステップＳ２０２）。
【００７８】
物体領域検出部２１は、撮影期間中に得られた距離センサ１１から得られた各距離画像上で追跡対象物体が写っている物体領域を検出する（ステップＳ２０３）。そして物体領域検出部２１は、物体領域を実空間位置算出部２２へ通知する。
【００７９】
実空間位置算出部２２は、距離画像ごとに、物体領域内の各画素について、その画素に写っている追跡対象物体の点の世界座標系における座標を算出することで、追跡対象物体の実空間における位置を算出する（ステップＳ２０４）。そして実空間位置算出部２２は、物体領域に対応する追跡対象物体の各点の世界座標系での座標を追跡部２３及び表示領域算出部２５へ通知する。
【００８０】
追跡部２３は、撮影期間中の各距離画像についての追跡対象物体の実空間での位置から、追跡対象物体の実空間での位置の変化の軌跡を表す軌跡データを生成する（ステップＳ２０５）。そして追跡部２３は、軌跡データを記憶部１４に保存する。
【００８１】
把持判定部２４は、軌跡データ、把持物体領域及び把持物体領域内の各点の高さに基づいて、把持対象物体ごとに、その把持対象物体が追跡対象物体に把持されている期間を特定する（ステップＳ２０６）。
【００８２】
表示領域算出部２５は、撮像期間中に得られた各距離画像について、その距離画像から検出された追跡対象物体の各点について、その点の世界座標系での作業台の表面からの高さを投影面の高さに置換する。そして表示領域算出部２５は、撮像期間中に得られた各距離画像について、その距離画像から検出された追跡対象物体の各点に対応するプロジェクタ１３の表示面上の対応画素の座標を算出することで、表示面上の表示領域を算出する（ステップＳ２０７）。
【００８３】
さらに、表示領域算出部２５は、把持対象物体が追跡対象物体により把持されている期間中において、その把持対象物体の把持物体領域に対応するプロジェクタ１３の表示面上の第２の表示領域を算出する（ステップＳ２０８）。そして表示領域算出部２５は、表示領域及び第２の表示領域を投影制御部２６へ通知する。
【００８４】
投影制御部２６は、プロジェクタ１３の表示面上の表示領域内の各画素について、その画素の色または輝度を、その画素に対応する追跡対象物体の点の投影面からの高さに応じた値に設定する（ステップＳ２０９）。そして投影制御部２６は、表示領域内の各画素の色または輝度が設定した値となるように、追跡対象物体の像をプロジェクタ１３の表示面に表示させることで、追跡対象物体の像を投影面に投影する（ステップＳ２１０）。さらに、投影制御部２６は、撮影期間中における、把持対象物体が把持されている期間に対応する、投影期間中の期間において、プロジェクタ１３の表示面の第２の表示領域に、その把持対象物体を示す像を表示させる。また投影制御部２６は、第２の表示領域から所定距離の位置に「使用中」などの文字列を表示する。これにより、投影制御部２６は、プロジェクタ１３に、把持対象物体を示す像及びその文字列を投影面に投影させる（ステップＳ２１１）。そして制御部１５は、投影処理を終了する。なお、制御部１５は、撮像期間においては距離画像をその撮影時刻と関連付けて記憶部１４に保存し、投影期間において、ステップＳ２０１〜Ｓ２０６の処理も実行してもよい。
【００８５】
以上に説明してきたように、この投影装置は、撮像期間中に得られた各距離画像から、追跡対象物体の実空間での位置をもとめる。そしてこの投影装置は、実空間における追跡対象物体の軌跡が把持物体領域を通過した前後での、把持物体領域内の物体の作業台表面からの高さの変化により、把持対象物体が追跡対象物体により把持されているか否かを判定する。そしてこの投影装置は、撮影期間中の把持対象物体が追跡対象物体により把持されている期間に対応する、投影期間中の期間において、把持対象物体が載置されていた元の位置に把持対象物体を示す像を投影する。これにより、追跡対象物体により把持されている把持対象物体を示す像が、作業対象物体及び追跡対象物体と重ならないように投影されるので、投影装置は、その把持対象物体の像の視認性を向上できる。
【００８６】
なお、変形例によれば、投影装置は、把持対象物体の像を投影する際に、投影面上の領域に把持対象物体または他の物体が存在するか否かを判定してもよい。そして投影装置は、その判定結果に応じて、把持対象物体を示す像の投影位置を変更したり、把持物体領域を囲む枠を、把持物体を示す像として表示させてもよい。
【００８７】
図１１は、この変形例による、制御部３５の機能ブロック図である。制御部３５は、把持物体領域設定部２０と、物体領域検出部２１と、実空間位置算出部２２と、追跡部２３と、把持判定部２４と、表示領域算出部２５と、投影制御部２６と、特徴抽出部２７と、照合部２８とを有する。
制御部３５が有するこれらの各部は、例えば、制御部３５が有するプロセッサ上で実行されるコンピュータプログラムによって実現される機能モジュールとして実装される。あるいは、これらの各部の機能を実現する一つまたは複数の集積回路が、制御部３５とは別個に投影装置１に実装されてもよい。
【００８８】
この変形例による制御部３５は、上記の実施形態による制御部１５と比較して、特徴抽出部２７及び照合部２８を有する点と、投影制御部２６の処理の一部が異なる。そこで以下では、投影制御部２６、特徴抽出部２７、照合部２８及びその関連部分について説明する。投影装置のその他の構成要素については、上記の実施形態における対応する構成要素の説明を参照されたい。
【００８９】
特徴抽出部２７は、撮影期間中において、各把持対象物体が作業台の表面に載置されているときにカメラ１２により得られた画像または距離センサ１１により得られた距離画像から、各把持対象物体の特徴量を抽出する。例えば、特徴抽出部２７は、特徴量として、距離画像から把持対象物体が写っている領域として検出された候補領域に含まれる画素の数、その候補領域の長手方向の長さ、または、その候補領域における、作業台の表面からの高さの分布を算出する。あるいは、特徴抽出部２７は、特徴量として、把持物体領域に対応する画像上の領域に含まれる各画素について、RGB表色系の値からHLS表色系の値に変換し、色相の値ごとの分布を求めてもよい。あるいはまた、特徴抽出部２７は、把持物体領域に対応する画像上の領域そのものを特徴量としてもよい。また特徴抽出部２７は、複数の特徴量を算出してもよい。そして特徴抽出部２７は、求めた特徴量を、把持対象物体を識別するための識別情報（例えば、上記のObjectNum）とともに、記憶部１４に保存する。なお、以下では、便宜上、撮影期間中に得られた把持対象物体の特徴量を、登録特徴量と呼ぶ。
【００９０】
さらに、特徴抽出部２７は、追跡対象物体により把持されている把持対象物体の像を投影する際、距離センサ１１により得られた距離画像、あるいはカメラ１２により得られた画像から、その把持対象物体に対応する把持物体領域から上記と同様の特徴量を算出する。そして特徴抽出部２７は、求めた特徴量を照合部２８へわたす。なお、以下では、便宜上、追跡対象物体により把持されている把持対象物体を示す像を投影する際に得られた把持対象物体の特徴量を、照合用特徴量と呼ぶ。
【００９１】
照合部２８は、投影期間中において、追跡対象物体により把持されている把持対象物体の像を投影するときに、その把持対象物体に対応する把持物体領域に物体が存在するか否かを判定する。例えば、照合部２８は、把持物体領域に対応する距離画像上の領域において、作業台表面からの高さが所定値（例えば、1cm〜2cm）以上となる画素を抽出する。そして照合部２８は、抽出した画素の数が所定数（例えば、把持物体領域に対応する距離画像上の領域に含まれる画素数の1/4〜1/2）以上である場合、その把持物体領域に物体が存在すると判定する。なお、把持物体領域に対応する距離画像上の領域は、（１）式及び（２）式の逆変換を、把持物体領域の各コーナーに対応する点に適用することで求められる。
【００９２】
照合部２８は、把持物体領域内に物体が存在すると判定した場合、その把持対象物体についての照合用特徴量を、その把持対象物体についての登録特徴量と照合する。そして照合部２８は、照合用特徴量と登録特徴量の差が所定の許容範囲内である場合、把持物体領域内に存在する物体が、追跡対象物体により把持されている把持対象物体と同じであると判定する。例えば、各特徴量が把持対象物体の画像である場合、照合部２８は、その二つの把持対象物体の画像間のパターンマッチングにより正規化相互相関値を算出する。そして照合部２８は、正規化相互相関値が所定の閾値以上である場合、把持物体領域内に存在する物体が、追跡対象物体により把持されている把持対象物体と同じであると判定してもよい。
【００９３】
照合部２８は、把持物体領域内に物体が存在するか否かの判定結果、及び、把持物体領域内に存在する物体が追跡対象物体により把持されている把持対象物体と同じか否かの判定結果を投影制御部２６へ通知する。
【００９４】
投影制御部２６は、投影期間中において、追跡対象物体により把持されている把持対象物体の像を投影するときに、その把持対象物体に対応する把持物体領域内に物体が存在しなければ、上記の実施形態と同様に、把持物体領域に、把持対象物体の像を投影する。
【００９５】
一方、その把持対象物体に対応する把持物体領域内に物体が存在し、かつ、その物体が追跡対象物体により把持されている把持対象物体と異なれば、投影制御部２６は、把持対象物体の像の投影位置を、把持物体領域から外れた位置までずらす。そのために、投影制御部２６は、例えば、把持物体領域に対応する第２の表示領域を、水平方向または垂直方向に沿ってその第２の表示領域の長さだけシフトする。
【００９６】
また、その把持対象物体に対応する把持物体領域内に物体が存在し、かつ、その物体が追跡対象物体により把持されている把持対象物体と同一であれば、投影制御部２６は、把持物体領域の輪郭に沿った枠を投影面に投影する。
【００９７】
図１２（ａ）は、把持物体領域に物体が存在しない場合における、投影面の模式図である。図１２（ｂ）は、把持物体領域に、把持されている把持対象物体と異なる物体が存在する場合における、投影面の模式図である。図１２（ｃ）は、把持物体領域に、把持されている把持対象物体と同じ把持対象物体が存在する場合における、投影面の模式図である。
【００９８】
図１２（ａ）に示されるように、把持物体領域１２００に物体が存在しない場合には、把持物体領域１２００に、把持されている把持対象物体を示す像１２０１が投影される。また、図１２（ｂ）に示されるように、把持物体領域１２００に、把持されている把持対象物体と異なる物体１２０２が存在する場合には、把持されている把持対象物体を示す像１２０１は、把持物体領域１２００から水平方向にシフトした位置に投影される。そして図１２（ｃ）に示されるように、把持物体領域１２００に、把持されている把持対象物体と同じ把持対象物体１２０３が存在する場合には、把持物体領域１２００の枠線１２０４が投影される。
【００９９】
このように、この変形例では、投影時における、把持物体領域の物体の有無、及び、その物体の種類に応じて、把持対象物体を示す像の投影位置または把持物体を示す像の種類が変更される。そのため、投影装置は、投影時において、把持物体領域内に何らかの物体が存在しても、把持対象物体を示す像の視認性を向上できる。
【０１００】
なお、把持対象物体は、作業対象物体に組み付けられる部品であってもよい。この場合には、把持対象物体は、追跡対象物体により一旦把持されると、元の把持物体領域には戻されず、作業対象物体上に移動されることになる。そこで他の変形例によれば、把持判定部２４は、一旦、何れかの把持対象物体が追跡対象物体により把持されたと判定すると、それ以降、軌跡データに基づいて、追跡対象物体の位置と作業対象物体とが重なる位置を特定する。なお、作業対象物体の実空間での位置及び範囲は、予め記憶部１４に保存される。そして把持判定部２４は、特定した位置のそれぞれについて、追跡対象物体が通過する前の高さに対して、通過した後の高さが、把持対象物体の高さに相当する所定値以上高くなる場合、把持対象物体がその位置に組み付けられたと判定してもよい。この場合、把持判定部２４は、追跡対象物体がその特定された位置を通過した以降、その把持対象物体は追跡対象物体により把持されていないと判定する。そして投影制御部２６は、プロジェクタ１３により、把持対象物体が組みつけられた位置に、把持対象物体の像を投影させてもよい。
【０１０１】
さらに他の変形例によれば、投影装置は、撮像期間において、把持判定部２４が何れかの把持対象物体を追跡対象物体が把持したと判定した直前においてカメラ１２により得られた画像から、把持物体画像を生成してもよい。この場合、制御部１５は、把持物体領域設定部２０と同様の処理を行って、把持されたと判定された把持対象物体についての把持物体領域に対応する画像上の領域を特定し、その領域を画像から切り出すことで、把持物体画像を生成すればよい。
【０１０２】
さらに他の変形例によれば、投影装置は、撮像期間中の何れかの時点で追跡対象物体により把持された把持対象物体について、投影期間中、把持対象物体の像を常に投影してもよい。この場合には、投影制御部２６は、フラグGrabbed()が何れかの時点でTrueとなる把持対象物体について、投影期間中、プロジェクタ１３の表示面上の第２の表示領域にその把持対象物体を示す像を表示させればよい。なお、この変形例でも、投影制御部２６は、把持対象物体が追跡対象物体に把持されている期間に対応する投影期間中の期間に限り、プロジェクタ１３に、「使用中」といった把持状態を表す文字列を投影させてもよい。
【０１０３】
ここに挙げられた全ての例及び特定の用語は、読者が、本発明及び当該技術の促進に対する本発明者により寄与された概念を理解することを助ける、教示的な目的において意図されたものであり、本発明の優位性及び劣等性を示すことに関する、本明細書の如何なる例の構成、そのような特定の挙げられた例及び条件に限定しないように解釈されるべきものである。本発明の実施形態は詳細に説明されているが、本発明の精神及び範囲から外れることなく、様々な変更、置換及び修正をこれに加えることが可能であることを理解されたい。
【０１０４】
以上説明した実施形態及びその変形例に関し、更に以下の付記を開示する。
（付記１）
実空間において把持対象物体が含まれる把持物体領域を記憶する記憶部と、
所定の撮像期間中において、距離センサから得た、対象物体と前記距離センサ間の距離を画素値で表した距離画像において、前記対象物体が写る物体領域を検出する物体領域検出部と、
前記距離画像において、前記物体領域内の前記対象物体に対応する各画素について、当該画素に写る前記対象物体の実空間での位置を算出する実空間位置算出部と、
前記距離画像に対応する、前記対象物体の実空間での位置に基づいて、前記対象物体の実空間の軌跡を表す軌跡データを生成する追跡部と、
前記把持物体領域内の前記把持対象物体の高さと、前記軌跡が前記把持物体領域を通過した後の物体の高さとの変化に基づいて、前記把持対象物体が前記対象物体により把持されている第１の期間を特定する把持判定部と、
前記第１の期間に対応する、所定の投影期間中の第２の期間において、プロジェクタに、前記対象物体の像と前記対象物体により把持されている前記把持対象物体を示す像とを、投影面上の互いに異なる位置に投影させる投影制御部と、
を有する投影装置。
（付記２）
前記記憶部は、前記把持対象物体が表された画像を前記把持対象物体を示す像として記憶する、付記１に記載の投影装置。
（付記３）
前記把持対象物体が前記対象物体により把持されていない時に得られた前記距離画像から、前記把持対象物体が写る領域を検出し、当該領域内の各点の実空間における位置を算出することで前記把持対象物体に対応する前記把持物体領域を設定し、かつ、カメラにより得られた前記把持対象物体を撮影した画像上で、前記把持物体領域に対応する領域を前記把持対象物体が表された画像とする把持物体領域設定部をさらに有する、付記２に記載の投影装置。
（付記４）
前記対象物体に把持されている前記把持対象物体に対応する前記把持物体領域に対応する、前記プロジェクタの表示面上の位置を算出することで、前記把持対象物体に対応する前記プロジェクタの前記表示面上の表示領域を算出する表示領域算出部をさらに有し、
前記投影制御部は、前記第２の期間において、前記プロジェクタの前記表示面上の前記表示領域に、前記把持対象物体を示す像を表示させることで前記把持対象物体を示す像を前記投影面に投影する、付記２または３に記載の投影装置。
（付記５）
前記記憶部は、前記把持対象物体の特徴を表す登録特徴量をさらに記憶し、
前記第２の期間において、前記距離センサにより得られた前記距離画像上、または、前記カメラにより得られた前記画像上で、前記対象物体に把持されている前記把持対象物体に対応する前記把持物体領域に対応する領域に写っている物体の特徴を表す照合用特徴量を算出する特徴抽出部と、
前記照合用特徴量と前記対象物体に把持されている前記把持対象物体についての前記登録特徴量とを照合して、前記物体と前記対象物体に把持されている前記把持対象物体とが同一か否かを判定する照合部とをさらに有し、
前記投影制御部は、前記物体と前記対象物体に把持されている前記把持対象物体とが同一である場合、前記第２の期間において、前記プロジェクタの前記表示面上の前記表示領域に、前記把持物体領域を囲む枠線の像を前記把持対象物体を示す像として表示させる、付記４に記載の投影装置。
（付記６）
前記投影制御部は、前記物体と前記対象物体に把持されている前記把持対象物体とが異なる場合、前記第２の期間において、前記プロジェクタに、前記把持対象物体の画像を前記物体と重ならない位置に投影させる、付記５に記載の投影装置。
（付記７）
前記照合部は、前記第２の期間において、前記距離センサにより得られた前記距離画像に基づいて前記対象物体に把持されている前記把持対象物体に対応する前記把持物体領域に前記物体が存在するか否かをさらに判定し、
前記投影制御部は、前記把持物体領域に前記物体が存在しない場合、前記プロジェクタに、前記把持対象物体が表された画像を前記把持物体領域に投影させる、付記５または６に記載の投影装置。
（付記８）
前記投影制御部は、前記第２の期間において、前記プロジェクタにより、前記把持対象物体が前記対象物体に把持されていることを示す情報を前記投影面に投影させる、付記１〜７の何れかに記載の投影装置。
（付記９）
所定の撮像期間中において、距離センサから得た、対象物体と前記距離センサ間の距離を画素値で表した距離画像において、前記対象物体が写る物体領域を検出し、
前記距離画像において、前記物体領域内の前記対象物体に対応する各画素について、当該画素に写る前記対象物体の実空間での位置を算出し、
前記距離画像に対応する、前記対象物体の実空間での位置に基づいて、前記対象物体の実空間の軌跡を表す軌跡データを生成し、
実空間において前記把持対象物体が含まれる把持物体領域内の把持対象物体の高さと、前記軌跡が前記把持物体領域を通過した後の物体の高さとの変化に基づいて、前記把持対象物体が前記対象物体により把持されている第１の期間を特定し、
前記第１の期間に対応する、所定の投影期間中の第２の期間において、プロジェクタに、前記対象物体の像と前記対象物体により把持されている前記把持対象物体を示す像とを、投影面上の互いに異なる位置に投影させる、
ことを含む投影方法。
（付記１０）
所定の撮像期間中において、距離センサから得た、対象物体と前記距離センサ間の距離を画素値で表した距離画像において、前記対象物体が写る物体領域を検出し、
前記距離画像において、前記物体領域内の前記対象物体に対応する各画素について、当該画素に写る前記対象物体の実空間での位置を算出し、
前記距離画像に対応する、前記対象物体の実空間での位置に基づいて、前記対象物体の実空間の軌跡を表す軌跡データを生成し、
実空間において前記把持対象物体が含まれる把持物体領域内の把持対象物体の高さと、前記軌跡が前記把持物体領域を通過した後の物体の高さとの変化に基づいて、前記把持対象物体が前記対象物体により把持されている第１の期間を特定し、
前記第１の期間に対応する、所定の投影期間中の第２の期間において、プロジェクタに、前記対象物体の像と前記対象物体により把持されている前記把持対象物体を示す像とを、投影面上の互いに異なる位置に投影させる、
ことをコンピュータに実行させるための投影用コンピュータプログラム。
【符号の説明】
【０１０５】
１    投影装置
１１    距離センサ
１２    カメラ
１３    プロジェクタ
１４    記憶部
１５、３５    制御部
１００    作業台表面
１０１    追跡対象物体
１０２    作業対象物体
１０３    把持対象物体
２０    把持物体領域設定部
２１    物体領域検出部
２２    実空間位置算出部
２３    追跡部
２４    把持判定部
２５    表示領域算出部
２６    投影制御部
２７    特徴抽出部
２８    照合部
【図１】
0006597277.tif 000011
【図２】
0006597277.tif 000012
【図３】
0006597277.tif 000013
【図４】
0006597277.tif 000014
【図５】
0006597277.tif 000015
【図６】
0006597277.tif 000016
【図７】
0006597277.tif 000017
【図８】
0006597277.tif 000018
【図９】
0006597277.tif 000019
【図１０】
0006597277.tif 000020
【図１１】
0006597277.tif 000021
【図１２】
0006597277.tif 000022