以下、図面を参照しつつ、投影装置について説明する。この投影装置は、検知範囲内に位置する物体までの距離を測定可能な距離センサで、追跡対象となる物体(以下、追跡対象物体と呼ぶ)を一定期間にわたって継続して撮影する。この投影装置は、その撮影中に得られる複数の距離画像のそれぞれから、その追跡対象物体の実空間での位置を求める。そしてこの投影装置は、追跡対象物体の実空間での位置変化の軌跡が追跡対象物体が把持し得る物体が含まれる領域を通過する前後でのその領域内の物体の高さの変化に基づいて、追跡対象物体が把持対象物体を把持している期間を特定する。なお、追跡対象物体が把持し得る物体を、以下では、把持対象物体と呼ぶ。そしてこの投影装置は、各距離画像から得られる追跡対象物体の像を、その距離画像の撮影順に従ってプロジェクタにより投影する際に、追跡対象物体が把持対象物体を把持している間、その把持対象物体の像も、追跡対象物体の像と異なる位置に投影する。
本実施形態では、投影装置は、作業台の上で一連の作業を指導者が実行する間に撮影された複数の距離画像のそれぞれから、指導者の手を追跡対象物体として検出する。そして本実施形態では、指導者の手により把持される工具、あるいは、部品を把持対象物体とする。そして投影装置は、ユーザにその作業を指導する際に、教師ビデオとして、距離画像の取得順序に従って、各距離画像から検出された手の像をプロジェクタにより投影面に順次投影する。なお、指導者による一連の作業についての距離センサによる撮影の実行期間を、以下では、単に撮像期間と呼び、プロジェクタによる教師ビデオの投影の実行期間を、以下では、単に投影期間と呼ぶ。
図1は、一つの実施形態による投影装置のハードウェア構成図である。図2は、一つの実施形態による投影装置の距離センサ、カメラ及びプロジェクタと追跡対象物体の像が投影される投影面の位置関係の一例を示す図である。投影装置1は、距離センサ11と、カメラ12と、プロジェクタ13と、記憶部14と、制御部15とを有する。そして距離センサ11、カメラ12、プロジェクタ13、及び記憶部14は、それぞれ、制御部15と信号線を介して接続される。また、投影装置1は、投影装置1を他の機器と接続するための通信インターフェース(図示せず)をさらに有していてもよい。
距離センサ11は、距離測定部の一例であり、図2に示されるように、例えば、ユーザが作業する作業台の表面100の少なくとも一部が検知範囲に含まれるように、プロジェクタ13の投影方向へ向けて取り付けられる。距離センサ11は、撮像期間において、一定の周期(例えば、30フレーム/秒〜60フレーム/秒)ごとに、検知範囲の距離画像を生成する。そして距離センサ11は、生成した距離画像を制御部15へ出力する。そのために、距離センサ11は、例えば、デプスカメラとすることができる。距離画像は、例えば、画素ごとに、その画素の値により、距離センサ11からその画素に写っている追跡対象物体101等までの距離を表す。例えば、距離センサ11から距離画像中の画素に写っている追跡対象物体101の点までの距離が近いほど、その画素の値は大きくなる。
カメラ12は、撮像部の一例である。カメラ12は、例えば、作業台の表面100、追跡対象物体101及び作業台の表面100に載置された作業対象物体102、及び、追跡対象物体101が把持する可能性が有る把持対象物体103がカメラ12の撮影範囲に含まれるように取り付けられる。カメラ12は、撮像期間中において、一定の周期(例えば、30フレーム/秒〜60フレーム/秒)ごとに、画像を生成する。そしてカメラ12は、画像を生成する度に、その生成した画像を制御部15へ出力する。あるいは、カメラ12は、追跡対象物体がカメラ12の撮影範囲内に存在せず、かつ、作業対象物体102及び全ての把持対象物体103が作業台の表面100に載置されている状態で、その撮影範囲を1回だけ撮影してもよい。
なお、カメラ12により生成される画像はグレー画像であってもよく、あるいは、カラー画像であってもよい。本実施形態では、カメラ12は、カラー画像を生成するものとする。
プロジェクタ13は、投影部の一例であり、図2に示されるように、投影面へ向けて映像を投影するように設置される。本実施形態では、投影面は、作業台の表面100、あるいは、作業対象物体102の表面に設定される。したがって、プロジェクタ13は、その作業台の上方に、鉛直下方へ向けて取り付けられる。
プロジェクタ13は、例えば、液晶プロジェクタであり、制御部15から受け取った映像信号に従って映像をその表示面に表示することで、映像を投影する。本実施形態では、プロジェクタ13は、追跡対象物体101の像を投影面に投影する。また、プロジェクタ13は、撮像期間中において何れかの把持対象物体103が把持されている期間(すなわち、第1の期間)に対応する、投影期間中の期間(すなわち、第2の期間)において、把持されている把持対象物体103を示す像を投影面に投影する。
記憶部14は、例えば、揮発性又は不揮発性の半導体メモリ回路を有する。そして記憶部14は、距離センサ11により得られた距離画像、カメラ12により得られた画像、及び、プロジェクタ13により投影される映像を表す映像信号などを記憶する。さらに、記憶部14は、投影処理で利用される様々な情報、例えば、世界座標系における、距離センサ11の設置位置及び向き、距離画像に含まれる画素数、距離センサ11の対角視野角などを記憶する。同様に、記憶部14は、世界座標系における、カメラ12及びプロジェクタ13の設置位置及び向き、カメラ12の画素数及びプロジェクタ13の表示面の画素数及び対角視野角などを記憶する。さらに、記憶部14は、投影処理の途中で生成される各種のデータ、例えば、軌跡データを記憶する。
制御部15は、一つまたは複数のプロセッサ及びその周辺回路を有する。そして制御部15は、投影装置1全体を制御する。
以下、制御部15により実行される、投影処理に関する構成要素の詳細について説明する。
図3は、制御部15の機能ブロック図である。制御部15は、把持物体領域設定部20と、物体領域検出部21と、実空間位置算出部22と、追跡部23と、把持判定部24と、表示領域算出部25と、投影制御部26とを有する。
制御部15が有するこれらの各部は、例えば、制御部15が有するプロセッサ上で実行されるコンピュータプログラムによって実現される機能モジュールとして実装される。あるいは、これらの各部の機能を実現する一つまたは複数の集積回路が、制御部15とは別個に投影装置1に実装されてもよい。
以下、制御部15の各部の処理を、撮像期間についての処理と投影期間についての処理とに分けて説明する。
(撮像期間)
把持物体領域設定部20は、追跡対象物体により把持されていないときに把持対象物体が含まれる実空間の領域である把持物体領域を実空間において設定する。
そのために、把持物体領域設定部20は、例えば、追跡対象物体が距離センサ11の検知範囲内に存在しておらず、全ての把持対象物体が作業台上に載置されているときに距離センサ11により得られた距離画像から、把持対象物体が写っている領域を検出する。例えば、把持物体領域設定部20は、距離画像上の各画素について、その画素の値と、距離センサ11により作業台を撮影した場合に得られる基準距離画像上の対応画素の値とを比較する。なお、基準距離画像は、予め記憶部14に保存される。把持物体領域設定部20は、距離画像の画素の値と基準距離画像の対応画素の値の差の絶対値が所定の閾値以上となる画素を抽出する。なお、所定の閾値は、例えば、1cm〜2cmに相当する距離画像上の画素値とすることができる。
把持物体領域設定部20は、抽出された画素に対して、例えば、ラベリング処理を実行して、抽出された画素をグループ化することで、それぞれが抽出された画素を含み、かつ、互いに分離した1以上の候補領域を求める。なお、把持物体領域設定部20は、距離画像中で作業対象物体が写っていると想定される範囲に含まれる候補領域は、把持対象物体とは無関係であるとして、その候補領域を削除してもよい。そして把持物体領域設定部20は、各候補領域のうち、その候補領域に含まれる画素数が把持対象物体のサイズに相当する所定の範囲内に含まれる候補領域に、把持対象物体が写っていると判定する。
把持物体領域設定部20は、把持対象物体が写っていると判定した候補領域に対応する実空間上の領域を把持物体領域として設定する。そのために、把持物体領域設定部20は、例えば、把持対象物体が写っていると判定した候補領域内の各画素に対応する把持対象物体上の点の実空間での位置を算出する。そこで先ず、把持物体領域設定部20は、着目する画素について、その画素に写っている把持対象物体の点の距離センサ座標系での位置を算出する。距離センサ座標系は、距離センサ11を基準とする、実空間での座標系である。そして把持物体領域設定部20は、距離センサ座標系で表された、着目する画素に対応する把持対象物体の点の座標を、作業台の表面を基準とする世界座標系の座標に変換する。
図4は、距離センサ座標系と世界座標系の関係を示す図である。距離センサ座標系400では、Zd軸は、距離センサ11の光軸と平行な方向に設定され、Xd軸及びYd軸は、Zd軸と直交する面、すなわち、距離センサ11のセンサ面と平行な面において、互いに直交するように設定される。例えば、Xd軸は、距離画像における水平方向に対応する方向に設定され、Yd軸は、距離画像における垂直方向に対応する方向に設定される。そして距離センサ座標系400の原点は、距離センサ11のセンサ面の中心、すなわわち、センサ面と光軸とが交差する点に設定される。
一方、世界座標系410は、作業台の表面100上に、互いに直交する二つの軸Xw軸、Yw軸が設定され、Zw軸は、作業台の表面100の法線方向と平行となるように設定される。また世界座標系410の原点は、例えば、作業台の表面100上で、プロジェクタ13の投影範囲の一端、あるいは、投影範囲の中心に設定される。なお、距離センサ11と作業台の表面100の位置関係は既知である。すなわち、距離センサ座標系400上の任意の点の座標は、アフィン変換によって世界座標系410の座標に変換可能である。
把持物体領域設定部20は、着目する画素について、その画素に写っている把持対象物体の点の距離センサ座標系での座標(Xd,Yd,Zd)を、次式に従って算出する。
(1)式は、ピンホールカメラモデルに従った式であり、fdは、距離センサ11の焦点距離を表し、DW及びDHは、それぞれ、距離画像の水平方向画素数及び垂直方向画素数を表す。またDfovDは、距離センサ11の対角視野角を表す。そして(xd,yd)は、距離画像上での水平方向の位置及び垂直方向の位置を表す。また、Zdは、距離画像上の画素(xd,yd) に対応する位置にある追跡対象物体の点と距離センサ11間の距離であり、その画素(xd,yd)の値に基づいて算出される。
さらに、把持物体領域設定部20は、着目する画素について、その画素に写っている把持対象物体の点の距離センサ座標系での座標を、次式に従って世界座標系での座標(XW,YW,ZW)に変換する。
ここでRDWは、距離センサ座標系から世界座標系へのアフィン変換に含まれる、回転量を表す回転行列であり、tDWは、そのアフィン変換に含まれる平行移動量を表す平行移動ベクトルである。そしてDLocX、DLocY、DLocZは、それぞれ、世界座標系のXw軸方向、Yw軸方向、Zw軸方向における、距離センサ11のセンサ面の中心の座標、すなわち、距離センサ座標系の原点の座標である。またDRotX、DRotY、DRotZは、それぞれ、Xw軸、Yw軸、Zw軸に対する、距離センサ11の光軸方向の回転角度を表す。
把持物体領域設定部20は、(1)式及び(2)式に従って、把持対象物体が写っていると判定した候補領域内の各画素に対応する把持対象物体の点の実空間での位置を算出する。これにより、実空間での把持対象物体の位置及び範囲が求められる。そして把持物体領域設定部20は、世界座標系のXwYw平面にて、把持対象物体の外接矩形を、把持物体領域として設定する。
図5は、把持物体領域の一例を示す図である。図5に示されるように、把持物体領域510は、Xw軸に平行な辺とYw軸に平行な辺を持ち、かつ、把持対象物体500に外接する矩形領域として設定される。なお、把持物体領域510は、把持対象物体500の外接楕円として設定されてもよく、あるいは、XwYw平面における、把持対象物体500が存在する領域そのものであってもよい。
さらに、把持物体領域設定部20は、追跡対象物体が距離センサ11の検知範囲内に存在しておらず、全ての把持対象物体が作業台上に載置されているときにカメラ12により得られた画像上で、把持対象物体ごとに、その把持物体領域に対応する領域を特定する。そして把持物体領域設定部20は、把持対象物体ごとに、その画像から、把持物体領域に対応する領域を切り出して、その把持対象物体を表す把持物体画像として、対応する把持物体領域とともに記憶部14に保存する。
把持物体画像を作成するために、把持物体領域設定部20は、着目する把持物体領域の各コーナーの実空間の位置の座標を、世界座標系の座標からカメラ座標系の座標に変換する。その際、把持物体領域設定部20は、各コーナーについて、そのコーナーの世界座標系での座標(XW,YW,ZW)を、次式に従って、カメラ座標系上の座標 (XC,YC,ZC)に変換する。
ここでRWCは、世界座標系からカメラ座標系へのアフィン変換に含まれる、回転量を表す回転行列であり、tWCは、そのアフィン変換に含まれる平行移動量を表す平行移動ベクトルである。また、RCWは、カメラ座標系から世界座標系へのアフィン変換に含まれる回転行列であり、tCWは、そのアフィン変換に含まれる平行移動量を表す平行移動ベクトルである。CLocX、CLocY、CLocZは、それぞれ、世界座標系のXw軸方向、Yw軸方向、Zw軸方向における、カメラ12のイメージセンサの中心の座標、すなわち、カメラ座標系の原点の座標である。またCRotX、CRotY、CRotZは、それぞれ、Xw軸、Yw軸、Zw軸に対する、カメラ12の光軸方向の回転角度を表す。
把持物体領域設定部20は、把持物体領域ごとに、その把持物体領域の各コーナーについてのカメラ座標系での座標(XC,YC,ZC)に対応する、カメラ12により得られる画像上の画素の座標(xc,yc)を、次式に従って特定する。
ここで、fcは、カメラ12の焦点距離を表し、CW及びCHは、それぞれ、カメラ12により得られる画像の水平方向画素数及び垂直方向画素数を表す。またCfovDは、カメラ12の対角視野角を表す。
把持物体領域設定部20は、把持物体領域ごとに、その把持物体領域の各コーナーに対応する画像上の4点で囲まれた領域を、把持物体画像として画像から切り出す。
物体領域検出部21は、撮像期間中、距離センサ11から制御部15が取得した各距離画像から、追跡対象物体が写っている領域である物体領域を検出する。本実施形態では、物体領域検出部21は、各距離画像に対して同一の処理を実行するので、以下では、一つの距離画像に対する処理について説明する。
例えば、物体領域検出部21は、距離画像上の各画素について、その画素の値と、基準距離画像上の対応画素の値とを比較する。物体領域検出部21は、距離画像の画素の値と基準距離画像の対応画素の値の差の絶対値が所定の閾値以上となる画素を抽出する。
物体領域検出部21は、抽出された画素に対して、例えば、ラベリング処理を実行して、抽出された画素をグループ化することで、それぞれが抽出された画素を含み、かつ、互いに分離した1以上の候補領域を求める。そして物体領域検出部21は、1以上の候補領域のうち、その候補領域に含まれる画素数が最大となる候補領域を物体領域とする。なお、指導者の両方の手が距離画像に写っていることもあるので、物体領域検出部21は、その候補領域に含まれる画素数が多い方から順に二つの候補領域を、それぞれ、物体領域としてもよい。あるいはまた、物体領域検出部21は、含まれる画素数が所定の画素数以上となる候補領域が存在しない場合には、距離画像には物体領域が含まれない、すなわち、距離画像に追跡対象物体が写っていないと判定してもよい。
物体領域検出部21は、距離画像上の物体領域を実空間位置算出部22へ通知する。
実空間位置算出部22は、距離センサ11から制御部15が取得した各距離画像から検出された物体領域に含まれる各画素について、その画素に写っている追跡対象物体の点の実空間での位置を算出する。本実施形態では、実空間位置算出部22は、各距離画像に対して同一の処理を実行するので、以下では、一つの距離画像に対する処理について説明する。
実空間位置算出部22は、先ず、物体領域に含まれる各画素について、その画素に写っている追跡対象物体の点の距離センサ座標系での位置を算出する。そして実空間位置算出部22は、距離センサ座標系で表された、各画素に対応する追跡対象物体の点の座標を、世界座標系の座標に変換する。
実空間位置算出部22は、物体領域に含まれる各画素について、その画素に写っている追跡対象物体の点の距離センサ座標系での座標(Xd,Yd,Zd)を、(1)式に従って算出する。さらに、実空間位置算出部22は、物体領域に含まれる各画素について、その画素に写っている追跡対象物体の点の距離センサ座標系での座標を、(2)式に従って世界座標系での座標(XW,YW,ZW)に変換する。
このように、実空間位置算出部22は、物体領域に含まれる各画素に写っている追跡対象物体の点の実空間での位置を算出することで、その追跡対象物体の実空間での実際のサイズに応じた範囲及び位置を求めることができる。
実空間位置算出部22は、物体領域に対応する追跡対象物体の各点の世界座標系での座標を追跡部23及び表示領域算出部25へ通知する。
追跡部23は、撮影期間中、実空間での追跡対象物体の位置の変化を追跡して、追跡対象物体の位置変化の軌跡をもとめる。例えば、追跡部23は、各距離画像について、その距離画像から検出された物体領域中の所定の点に対応する実空間の位置を求め、その位置を距離画像の生成順に並べることで、追跡対象物体の位置変化の軌跡を表す軌跡データを生成する。例えば、追跡部23は、追跡対象物体である手の先端、あるいは、手が把持している把持対象物体の先端を、所定の点とすることができる。例えば、世界座標系と指導者の位置関係から、手の先端、あるいは、手が把持している把持対象物体の先端が、物体領域に対応する実空間での領域における、世界座標系でのYw軸に沿った座標値の最大値に対応することが想定されるとする。この場合、追跡部23は、各距離画像について、その距離画像から検出された物体領域に対応する実空間での領域における、Yw軸に沿った座標値の最大値を持つ点の世界座標系での座標及び対応する距離センサ座標系での座標を軌跡データに含めればよい。あるいはまた、追跡部23は、物体領域に対応する実空間での領域のうち、Yw軸方向の最大値に対応する点から、Yw軸方向に沿って所定範囲(例えば、5cm〜10cm)以内にある部分領域の重心を所定の点としてもよい。この場合も、追跡部23は、各距離画像に対応するその所定の点の世界座標系での座標及び対応する距離センサ座標系での座標を軌跡データに含めればよい。
なお、各距離画像から複数の物体領域が検出されている場合、追跡部23は、オプティカルフローといった追跡処理を各物体領域に適用することで、同じ追跡対象物体に対応する物体領域を特定してもよい。また、追跡対象物体が手である場合は、右手と左手とが交差することは想定しなくてもよい。そこで、追跡部23は、作業台の中心よりも左側に相当する距離画像上の範囲に含まれる物体領域を、左手が含まれる物体領域と判定し、一方、作業台の中心よりも右側に相当する距離画像上の範囲に含まれる物体領域を、右手が含まれる物体領域と判定してもよい。そして追跡部23は、追跡対象物体ごとに、軌跡データを生成する。
図6は、軌跡データの一例を示す図である。軌跡データ600は、距離画像の取得時刻を表すタイムスタンプ601ごとに、追跡対象物体が右手か左手かを表す手ID602と、距離センサ座標系での物体領域の先端の座標603及び世界座標系での物体領域の先端の座標604を含む。
追跡部23は、追跡対象物体ごとに生成した軌跡データを記憶部14に保存する。
把持判定部24は、各距離画像について、軌跡データ、把持物体領域及び把持物体領域内の高さ情報に基づいて、追跡対象物体が把持対象物体を把持している期間を求める。
追跡対象物体が把持対象物体を把持する際には、追跡対象物体は、把持対象物体と重なる位置へ移動すると想定される。さらに、追跡対象物体が把持対象物体を把持した後では、元々把持対象物体が載置されていた領域から把持対象物体が無くなるため、その領域において、距離センサ11からの距離、すなわち、作業台の表面からの高さが変化すると想定される。そこで把持判定部24は、軌跡データを参照して、把持物体領域と追跡対象物体とが重なったか否か判定する。そして把持判定部24は、追跡対象物体が把持物体領域と重なる前後で、すなわち、追跡対象物体の軌跡が把持物体領域を通過した前後で、把持物体領域内の物体の作業台表面からの高さが変化したか否かを判定する。把持判定部24は、例えば、把持物体領域内で作業台の表面から最も高い位置、あるいは、把持物体領域内で作業台の表面からの高さの平均値を、その把持物体領域内の物体の作業台の表面からの高さとする。把持判定部24は、把持対象物体が把持されていない状態にて、追跡対象物体が把持物体領域と重なる前の高さよりも、把持物体領域と重なった後の高さが所定値以上低くなっていれば、把持判定部24は、把持対象物体が把持されたと判定する。なお、所定値は、例えば、1cm〜3cmに設定される。また、所定値は、把持対象物体の実際のサイズに応じて設定されてもよい。また、複数の把持対象物体が有る場合、把持対象物体ごとに、その把持対象物体に対応する把持物体領域と関連付けて、その把持対象物体のサイズに応じた所定値が設定されてもよい。
図7は、把持判定の概要の説明図である。この例では、作業台の表面100に4個の把持物体領域701〜704が設定されている。また軌跡705は、撮影期間中の追跡対象物体の軌跡を表す。この例では、軌跡705は、把持物体領域702及び704と重なっている。そのため、把持物体領域702に載置されている把持対象物体または把持物体領域704に載置されている把持対象物体が、追跡対象物体により把持された可能性が有る。そこで、把持物体領域702及び704について、追跡対象物体の軌跡がその把持物体領域と重なる前後で、把持物体領域内の物体の作業台の表面100からの高さが変化したか否かが判定される。そしてこの例では、把持物体領域704について、追跡対象物体の軌跡がその把持物体領域と重なる前後で、把持物体領域704内の物体の作業台の表面100からの高さが変化している。そのため、把持物体領域704に載置された把持対象物体が把持されたと判定される。
また、把持判定部24は、追跡対象物体が一旦把持したと判定した把持対象物体について、追跡対象物体の軌跡がその把持対象物体に対応する把持物体領域と重なった後に、もう一度把持物体領域内の物体の作業台の表面からの高さの変化を調べてもよい。そして把持判定部24は、把持対象物体が把持されている状態にて、追跡対象物体が把持物体領域と重なる前の高さよりも、把持物体領域と重なった後の高さが所定値以上高くなっていれば、把持判定部24は、把持対象物体が載置されたと判定すればよい。この場合、把持対意匠物体が追跡対象物体により把持されたと判定されたときから、把持対象物体が載置されたと判定されるまでの期間が、把持対象物体が追跡対象物体により把持されている期間となる。
図8は、把持判定処理の動作フローチャートである。なお、把持判定部24は、追跡対象物体ごとに、この動作フローチャートに従って把持判定処理を実行する。
把持判定部24は、軌跡データから最初の撮影時刻における追跡対象物体の世界座標系での位置を取得する。また、把持判定部24は、各把持対象物体について、把持されているか否かを表すフラグGrabbed(m)(m=1,2,...,N、Nは把持対象物体の総数)を、把持されていない状態を表すFalseに設定する。さらに、把持判定部24は、追跡対象物体が把持物体領域に入ったか否かを表すフラグHandInAreaを、追跡対象物体が何れの把持物体領域にもいないことを表すFalseに設定する(ステップS101)。
把持判定部24は、追跡対象物体の位置が何れかの把持物体領域内に位置するか否か判定する(ステップS102)。追跡対象物体の位置がm番目の把持物体領域内に位置する場合(ステップS102−Yes)、把持判定部24は、現在の把持対象物体を表すフラグObjectNumをmに設定する。さらに、把持判定部24は、フラグHandInAreaを、追跡対象物体が何れかの把持物体領域に入ったことを表すTrueに設定する(ステップS103)。
一方、追跡対象物体の位置が何れの把持物体領域内にもいない場合(ステップS102−No)、把持判定部24は、フラグHandInAreaがTrueか否か判定する(ステップS104)。フラグHandInAreaがTrueである場合(ステップS104−Yes)、追跡対象物体は、一旦何れかの把持物体領域に入ってからその把持物体領域を出たと想定される。そこで、把持判定部24は、計時を開始するとともに、フラグHandInAreaをFalseに戻す(ステップS105)。
把持判定部24は、計時中か否か判定する。計時中である場合、ObjectNumで示されるm番目の把持物体領域内の物体の作業台の表面からの高さが、追跡対象物体がその把持物体領域に入る前における、その把持物体領域内の物体の作業台の表面からの高さから変化したか否か判定する(ステップS106)。把持判定部24は、例えば、追跡対象物体が把持物体領域内に入る前の高さと把持物体領域から出た後の高さの差が所定値以上変化していれば、把持物体領域内の物体の作業台の表面からの高さが変化したと判定してもよい。また、把持判定部24は、Grabbed(ObjectNum)がFalseかTrueかに応じて、把持物体領域内の物体の作業台の表面からの高さが変化したか否かの判定条件を変えてもよい。すなわち、Grabbed(ObjectNum)がFalseである場合、ObjectNumで特定される把持対象物体が把持されていない。この場合、上記のように、把持判定部24は、追跡対象物体が把持物体領域と重なる前の高さよりも、把持物体領域と重なった後の高さが所定値以上低くなっていれば、把持物体領域内の物体の作業台の表面からの高さが変化したと判定する。一方、Grabbed(ObjectNum)がTrueである場合、ObjectNumで特定される把持対象物体が把持されている。この場合、上記のように、把持判定部24は、追跡対象物体が把持物体領域と重なる前の高さよりも、把持物体領域と重なった後の高さが所定値以上高くなっていれば、把持物体領域内の物体の作業台の表面からの高さが変化したと判定する。
把持判定部24は、計時中であり、かつ、追跡対象物体が把持物体領域内に入るまでと出た後とで高さが変化していれば(ステップS106−Yes)、フラグGrabbed(ObjectNum)がFalseか否か判定する(ステップS107)。そしてフラグGrabbed(ObjectNum)がFalseである場合(ステップS107−Yes)、把持判定部24は、フラグGrabbed(ObjectNum)を、把持対象物体が把持されている状態であることを表すTrueに書き換える(ステップS108)。一方、Grabbed(ObjectNum)がTrueである場合(ステップS107−No)、把持判定部24は、フラグGrabbed(ObjectNum)をFalseに書き換える(ステップS109)。
一方、ステップS106において計時中でないか、あるいは、追跡対象物体が把持物体領域内に入る前後で高さが変化していなければ(ステップS106−No)、把持判定部24は、計時開始から所定時間が経過したか否か判定する(ステップS110)。なお、所定時間は、例えば、追跡対象物体が、作業台上に載置されている把持対象物体を把持するのに要する時間、例えば、3秒〜5秒に設定される。そして計時開始から所定時間が経過した場合(ステップS110−Yes)、把持判定部24は、計時を終了し、計時時間を0にリセットする。また把持判定部24は、フラグObjectNumを何れの把持対象物体も表さないNULLに設定する(ステップS111)。
ステップS108、S109、あるいはS111の後、把持判定部24は、全てのObjectNum(1≦ObjectNum≦N)について、Grabbed(ObjectNum)を現撮影時刻と対応付けて記憶部14に保存する(ステップS112)。
その後、把持判定部24は、軌跡データが終了したか否か判定する(ステップS113)。軌跡データが終了していない場合(ステップS113−No)、把持判定部24は、軌跡データから次の撮影時刻における追跡対象物体の世界座標系での位置を取得する(ステップS114)。そして把持判定部24は、ステップS102以降の処理を繰り返す。一方、軌跡データが終了した場合、すなわち、軌跡データ中に含まれる全ての撮影時刻について、追跡対象物体の位置が取得されている場合(ステップS113−Yes)、把持判定部24は、把持判定処理を終了する。
以上により、撮影期間中の各距離画像の撮影時における、追跡対象物体の実空間での位置、及び、何れかの把持対象物体が把持されているか否かを表す情報が得られる。
(投影期間)
次に、投影期間における処理について説明する。投影期間において、制御部15は、撮影期間中に得られた各距離画像の撮影順序に従って、その距離画像から得られた物体領域に相当する実空間での投影面上での位置に、プロジェクタ13により追跡対象物体の像を投影させる。さらに、制御部15は、撮像期間中において何れかの把持対象物体が把持されている期間に対応する、投影期間中の一部の期間において、その把持対象物体を示す像も、プロジェクタ13により投影面上に投影させる。
表示領域算出部25は、プロジェクタ13により、追跡対象物体の像を投影面に投影する際の、プロジェクタ13の表示面上での追跡対象物体の像の範囲を表す表示領域を算出する。さらに、表示領域算出部25は、何れかの把持対象物体が追跡対象物体により把持されている間、プロジェクタ13の表示面上でのその把持対象物体を示す像を表示する第2の表示領域を算出する。
なお、表示領域算出部25は、撮影期間中の各距離画像に対して同一の処理を実行するので、以下では、一つの距離画像に対する処理について説明する。
本実施形態では、プロジェクタ13は、投影面上での追跡対象物体の像のサイズが追跡対象物体の実際のサイズと一致するように追跡対象物体の像を投影する。そこで、表示領域算出部25は、物体領域に対応する追跡対象物体の各点について、その点の実空間での位置を表す世界座標系での座標(XW,YW,ZW)のうち、Zw軸方向の座標値ZWを、投影面の高さZW'に置換する。これにより、仮想的に、追跡対象物体が投影面上にシフトされる。なお、投影面は、作業台の表面(Zw'=0)、あるいは、作業台上に載置されている作業対象物体の表面とすることができる。投影面を作業対象物体の表面とする場合、表示領域算出部25は、投影面の高さとして、作業対象物体を撮影して得られた距離画像において、作業対象物体が写っている画素に対応する世界座標系のZw軸方向の座標を、(1)式及び(2)式に従って算出すればよい。
表示領域算出部25は、シフト後の追跡対象物体の各点について、その点の世界座標系での座標(XW,YW,ZW')に相当するプロジェクタ13の表示面上の座標を算出する。ここで、プロジェクタ13と投影面の位置関係も既知である。そのため、世界座標系上の任意の点の座標は、アフィン変換により、プロジェクタ13を基準とするプロジェクタ座標系上の座標に変換可能である。なお、プロジェクタ座標系は、例えば、距離センサ座標系と同様に、プロジェクタ13の表示面の中心を原点とし、プロジェクタ13の光軸方向、及び、光軸方向と直交する平面上で互いに直交する二つの方向を、それぞれ軸とする座標系とすることができる。
表示領域算出部25は、追跡対象物体の各点について、その点の世界座標系での座標(XW,YW,ZW')を、次式に従って、プロジェクタ座標系上の座標(XP,YP,ZP)に変換する。
ここでRWPは、世界座標系からプロジェクタ座標系へのアフィン変換に含まれる、回転量を表す回転行列であり、tWPは、そのアフィン変換に含まれる平行移動量を表す平行移動ベクトルである。PLocX、PLocY、PLocZは、それぞれ、世界座標系のXw軸方向、Yw軸方向、Zw軸方向における、プロジェクタ13の表示面の中心の座標、すなわち、プロジェクタ座標系の原点の座標である。またPRotX、ProtY、ProtZは、それぞれ、Xw軸、Yw軸、Zw軸に対する、プロジェクタ13の光軸方向の回転角度を表す。なお、本実施形態では、プロジェクタ13は、鉛直下方へ向けて取り付けられているので、回転行列RWPは、対角成分のみが'1'の値を持ち、他の成分が'0'の値を持つ行列となる。
さらに、表示領域算出部25は、追跡対象物体の各点について、ピンホールモデルに従って、その点のプロジェクタ座標系での座標(XP,YP,ZP)に対応する、プロジェクタ13の表示面上での座標(xp,yp)を、次式に従って算出する。
ここで、fpは、プロジェクタ13の焦点距離を表し、PW及びPHは、それぞれ、表示面の水平方向画素数及び垂直方向画素数を表す。またPfovDは、プロジェクタ13の対角視野角を表す。
また、表示領域算出部25は、各距離画像について、その距離画像の撮影時刻に対応付けて記憶部14に保存されているフラグGrabbed(ObjectNum)を参照して、ObjectNumで表される把持対象物体が把持されているか否か判定する。そして表示領域算出部25は、ObjectNumで表される把持対象物体が把持されている場合、その把持対象物体に対応する把持物体領域に対応する、プロジェクタ13の表示領域上の第2の表示領域を(5)式及び(6)式に従って算出する。
表示領域算出部25は、表示領域及び第2の表示領域を投影制御部26へ通知する。
投影制御部26は、プロジェクタ13の表示面上の表示領域に追跡対象物体の像を表示することで、投影面に追跡対象物体の像を投影する。その際、投影制御部26は、例えば、表示領域内の各画素の値を、予め設定された所定の値とする。
ただし、プロジェクタ13による投影像は、投影面上に半透過の2次元画像として投影されるので、投影面上にある実際の物の高さと追跡対象物体の高さの差がユーザにとって認知し難い。そのため、ユーザは、追跡対象物体が、投影面上にある物に触れているか否か、あるいは、追跡対象物体が空中にあるのか否かを識別することは困難なことがある。
そこで、変形例によれば、投影制御部26は、撮像時における、距離センサ11から追跡対象物体までの距離、あるいは、投影面から追跡対象物体までの高さに応じて、プロジェクタ13の表示領域内の画素の値を調節してもよい。例えば、投影制御部26は、プロジェクタ13が追跡対象物体をグレースケールで表示する場合、表示領域内の各画素の輝度値を、次式に従って決定してもよい。
ここで、Zwは、表示領域内の着目する画素に対応する、追跡対象物体の点の投影面からの高さ(例えば、mm単位の値)を表し、Lvは、着目する画素の輝度値を表す。あるいは、投影制御部26は、(7)式の代わりに、次式に従って、表示領域内の各画素の輝度値を決定してもよい。
ここで、Zmaxは、投影面に対する追跡対象物体の高さの想定される最大値を表す。
あるいはまた、投影制御部26は、プロジェクタ13の表示面上の表示領域内の画素の値を、次式に従って設定してもよい。
ここでR,G,Bは、それぞれ、画素の赤色成分、緑色成分、青色成分の値である。またAは、透明度を表すアルファ値である。またZwは、その画素に対応する、追跡対象物体の点の世界座標系での作業台表面からの高さを表す。そしてZaveWは、物体領域のYw軸方向の先端、すなわち、追跡対象物体の先端から、Yw軸方向に沿って所定範囲(例えば、150mm)内に存在する追跡対象物体の各点の世界座標系での作業台表面からの高さの平均値を表す。またZsurfaceWは、物体領域のYw軸方向の先端から、Yw軸方向に沿って所定範囲(例えば、150mm)内となる、物体領域内の各点のXw軸方向の平均値及びYw軸方向の平均値における、投影面(例えば、作業対象物体の表面)の高さを表す。そしてα、βは、それぞれ、定数であり、例えば、α=1.2、β=128に設定される。
撮像時における、投影面から実際の追跡対象物体までの高さに応じて、投影時における、プロジェクタ13により投影される追跡対象物体の像の色または輝度を変えることで、ユーザは、撮像時における実際の追跡対象物体の高さを認知することが容易となる。そのため、ユーザは、追跡対象物体の像に基づいて、追跡対象物体が、投影面上にある物に触れているか否か、あるいは、追跡対象物体が空中にあるのか否かを識別することが容易となる。
さらに、投影制御部26は、撮像期間中において何れかの把持対象物体が把持されている期間に対応する、投影期間中の一部の期間において、その把持対象物体に対応するプロジェクタ13の表示面上の第2の表示領域に、その把持対象物体を示す像を表示させる。把持対象物体を示す像として、例えば、投影制御部26は、記憶部14に記憶されている把持物体画像を利用する。これにより、投影面に、その把持対象物体の像が投影される。さらに、投影制御部26は、第2の表示領域から所定方向に所定のオフセットだけ離れた位置に、把持対象物体が把持されている状態であることを表す情報、例えば、「使用中」との文字列を表示させる。これにより、投影面に、その情報が投影される。
図9(a)は、何れの把持対象物体も把持されていない場合における、投影面の模式図である。一方、図9(b)は、何れかの把持対象物体が追跡対象物体により把持されている場合における、投影面の模式図である。図9(a)に示されるように、何れの把持対象物体も把持されていない場合には、投影面900には、追跡対象物体の像901のみが投影される。一方、図9(b)に示されるように、何れかの把持対象物体が追跡対象物体により把持されている場合には、投影面900には、追跡対象物体の像901だけでなく、把持されている把持対象物体を示す像902も投影される。この例では、追跡対象物体の像901と把持対象物体を示す像902とが互いに異なる位置に投影される。特に、その把持対象物体の使用中では、把持対象物体を示す像902が投影される、把持物体領域と追跡対象物体の像901とは重ならない。そのため、把持対象物体を示す像902の視認性が向上する。さらに、把持対象物体の像902から所定距離の位置に、「使用中」との文字列903が投影されるので、ユーザは、把持されている把持対象物体を容易に特定できる。
図10は、制御部15により実行される投影処理の動作フローチャートである。
把持物体領域設定部20は、把持対象物体ごとに、把持対象物体を含む把持物体領域を世界座標系のXwYw平面に設定するとともに、把持物体領域内の各点の作業台表面からの高さを算出する(ステップS201)。
また把持物体領域設定部20は、把持対象物体ごとに、把持物体領域に対応する、カメラ12により得られた画像上の領域を、把持対象物体の像としてその画像から切り出して、記憶部14に保存する(ステップS202)。
物体領域検出部21は、撮影期間中に得られた距離センサ11から得られた各距離画像上で追跡対象物体が写っている物体領域を検出する(ステップS203)。そして物体領域検出部21は、物体領域を実空間位置算出部22へ通知する。
実空間位置算出部22は、距離画像ごとに、物体領域内の各画素について、その画素に写っている追跡対象物体の点の世界座標系における座標を算出することで、追跡対象物体の実空間における位置を算出する(ステップS204)。そして実空間位置算出部22は、物体領域に対応する追跡対象物体の各点の世界座標系での座標を追跡部23及び表示領域算出部25へ通知する。
追跡部23は、撮影期間中の各距離画像についての追跡対象物体の実空間での位置から、追跡対象物体の実空間での位置の変化の軌跡を表す軌跡データを生成する(ステップS205)。そして追跡部23は、軌跡データを記憶部14に保存する。
把持判定部24は、軌跡データ、把持物体領域及び把持物体領域内の各点の高さに基づいて、把持対象物体ごとに、その把持対象物体が追跡対象物体に把持されている期間を特定する(ステップS206)。
表示領域算出部25は、撮像期間中に得られた各距離画像について、その距離画像から検出された追跡対象物体の各点について、その点の世界座標系での作業台の表面からの高さを投影面の高さに置換する。そして表示領域算出部25は、撮像期間中に得られた各距離画像について、その距離画像から検出された追跡対象物体の各点に対応するプロジェクタ13の表示面上の対応画素の座標を算出することで、表示面上の表示領域を算出する(ステップS207)。
さらに、表示領域算出部25は、把持対象物体が追跡対象物体により把持されている期間中において、その把持対象物体の把持物体領域に対応するプロジェクタ13の表示面上の第2の表示領域を算出する(ステップS208)。そして表示領域算出部25は、表示領域及び第2の表示領域を投影制御部26へ通知する。
投影制御部26は、プロジェクタ13の表示面上の表示領域内の各画素について、その画素の色または輝度を、その画素に対応する追跡対象物体の点の投影面からの高さに応じた値に設定する(ステップS209)。そして投影制御部26は、表示領域内の各画素の色または輝度が設定した値となるように、追跡対象物体の像をプロジェクタ13の表示面に表示させることで、追跡対象物体の像を投影面に投影する(ステップS210)。さらに、投影制御部26は、撮影期間中における、把持対象物体が把持されている期間に対応する、投影期間中の期間において、プロジェクタ13の表示面の第2の表示領域に、その把持対象物体を示す像を表示させる。また投影制御部26は、第2の表示領域から所定距離の位置に「使用中」などの文字列を表示する。これにより、投影制御部26は、プロジェクタ13に、把持対象物体を示す像及びその文字列を投影面に投影させる(ステップS211)。そして制御部15は、投影処理を終了する。なお、制御部15は、撮像期間においては距離画像をその撮影時刻と関連付けて記憶部14に保存し、投影期間において、ステップS201〜S206の処理も実行してもよい。
以上に説明してきたように、この投影装置は、撮像期間中に得られた各距離画像から、追跡対象物体の実空間での位置をもとめる。そしてこの投影装置は、実空間における追跡対象物体の軌跡が把持物体領域を通過した前後での、把持物体領域内の物体の作業台表面からの高さの変化により、把持対象物体が追跡対象物体により把持されているか否かを判定する。そしてこの投影装置は、撮影期間中の把持対象物体が追跡対象物体により把持されている期間に対応する、投影期間中の期間において、把持対象物体が載置されていた元の位置に把持対象物体を示す像を投影する。これにより、追跡対象物体により把持されている把持対象物体を示す像が、作業対象物体及び追跡対象物体と重ならないように投影されるので、投影装置は、その把持対象物体の像の視認性を向上できる。
なお、変形例によれば、投影装置は、把持対象物体の像を投影する際に、投影面上の領域に把持対象物体または他の物体が存在するか否かを判定してもよい。そして投影装置は、その判定結果に応じて、把持対象物体を示す像の投影位置を変更したり、把持物体領域を囲む枠を、把持物体を示す像として表示させてもよい。
図11は、この変形例による、制御部35の機能ブロック図である。制御部35は、把持物体領域設定部20と、物体領域検出部21と、実空間位置算出部22と、追跡部23と、把持判定部24と、表示領域算出部25と、投影制御部26と、特徴抽出部27と、照合部28とを有する。
制御部35が有するこれらの各部は、例えば、制御部35が有するプロセッサ上で実行されるコンピュータプログラムによって実現される機能モジュールとして実装される。あるいは、これらの各部の機能を実現する一つまたは複数の集積回路が、制御部35とは別個に投影装置1に実装されてもよい。
この変形例による制御部35は、上記の実施形態による制御部15と比較して、特徴抽出部27及び照合部28を有する点と、投影制御部26の処理の一部が異なる。そこで以下では、投影制御部26、特徴抽出部27、照合部28及びその関連部分について説明する。投影装置のその他の構成要素については、上記の実施形態における対応する構成要素の説明を参照されたい。
特徴抽出部27は、撮影期間中において、各把持対象物体が作業台の表面に載置されているときにカメラ12により得られた画像または距離センサ11により得られた距離画像から、各把持対象物体の特徴量を抽出する。例えば、特徴抽出部27は、特徴量として、距離画像から把持対象物体が写っている領域として検出された候補領域に含まれる画素の数、その候補領域の長手方向の長さ、または、その候補領域における、作業台の表面からの高さの分布を算出する。あるいは、特徴抽出部27は、特徴量として、把持物体領域に対応する画像上の領域に含まれる各画素について、RGB表色系の値からHLS表色系の値に変換し、色相の値ごとの分布を求めてもよい。あるいはまた、特徴抽出部27は、把持物体領域に対応する画像上の領域そのものを特徴量としてもよい。また特徴抽出部27は、複数の特徴量を算出してもよい。そして特徴抽出部27は、求めた特徴量を、把持対象物体を識別するための識別情報(例えば、上記のObjectNum)とともに、記憶部14に保存する。なお、以下では、便宜上、撮影期間中に得られた把持対象物体の特徴量を、登録特徴量と呼ぶ。
さらに、特徴抽出部27は、追跡対象物体により把持されている把持対象物体の像を投影する際、距離センサ11により得られた距離画像、あるいはカメラ12により得られた画像から、その把持対象物体に対応する把持物体領域から上記と同様の特徴量を算出する。そして特徴抽出部27は、求めた特徴量を照合部28へわたす。なお、以下では、便宜上、追跡対象物体により把持されている把持対象物体を示す像を投影する際に得られた把持対象物体の特徴量を、照合用特徴量と呼ぶ。
照合部28は、投影期間中において、追跡対象物体により把持されている把持対象物体の像を投影するときに、その把持対象物体に対応する把持物体領域に物体が存在するか否かを判定する。例えば、照合部28は、把持物体領域に対応する距離画像上の領域において、作業台表面からの高さが所定値(例えば、1cm〜2cm)以上となる画素を抽出する。そして照合部28は、抽出した画素の数が所定数(例えば、把持物体領域に対応する距離画像上の領域に含まれる画素数の1/4〜1/2)以上である場合、その把持物体領域に物体が存在すると判定する。なお、把持物体領域に対応する距離画像上の領域は、(1)式及び(2)式の逆変換を、把持物体領域の各コーナーに対応する点に適用することで求められる。
照合部28は、把持物体領域内に物体が存在すると判定した場合、その把持対象物体についての照合用特徴量を、その把持対象物体についての登録特徴量と照合する。そして照合部28は、照合用特徴量と登録特徴量の差が所定の許容範囲内である場合、把持物体領域内に存在する物体が、追跡対象物体により把持されている把持対象物体と同じであると判定する。例えば、各特徴量が把持対象物体の画像である場合、照合部28は、その二つの把持対象物体の画像間のパターンマッチングにより正規化相互相関値を算出する。そして照合部28は、正規化相互相関値が所定の閾値以上である場合、把持物体領域内に存在する物体が、追跡対象物体により把持されている把持対象物体と同じであると判定してもよい。
照合部28は、把持物体領域内に物体が存在するか否かの判定結果、及び、把持物体領域内に存在する物体が追跡対象物体により把持されている把持対象物体と同じか否かの判定結果を投影制御部26へ通知する。
投影制御部26は、投影期間中において、追跡対象物体により把持されている把持対象物体の像を投影するときに、その把持対象物体に対応する把持物体領域内に物体が存在しなければ、上記の実施形態と同様に、把持物体領域に、把持対象物体の像を投影する。
一方、その把持対象物体に対応する把持物体領域内に物体が存在し、かつ、その物体が追跡対象物体により把持されている把持対象物体と異なれば、投影制御部26は、把持対象物体の像の投影位置を、把持物体領域から外れた位置までずらす。そのために、投影制御部26は、例えば、把持物体領域に対応する第2の表示領域を、水平方向または垂直方向に沿ってその第2の表示領域の長さだけシフトする。
また、その把持対象物体に対応する把持物体領域内に物体が存在し、かつ、その物体が追跡対象物体により把持されている把持対象物体と同一であれば、投影制御部26は、把持物体領域の輪郭に沿った枠を投影面に投影する。
図12(a)は、把持物体領域に物体が存在しない場合における、投影面の模式図である。図12(b)は、把持物体領域に、把持されている把持対象物体と異なる物体が存在する場合における、投影面の模式図である。図12(c)は、把持物体領域に、把持されている把持対象物体と同じ把持対象物体が存在する場合における、投影面の模式図である。
図12(a)に示されるように、把持物体領域1200に物体が存在しない場合には、把持物体領域1200に、把持されている把持対象物体を示す像1201が投影される。また、図12(b)に示されるように、把持物体領域1200に、把持されている把持対象物体と異なる物体1202が存在する場合には、把持されている把持対象物体を示す像1201は、把持物体領域1200から水平方向にシフトした位置に投影される。そして図12(c)に示されるように、把持物体領域1200に、把持されている把持対象物体と同じ把持対象物体1203が存在する場合には、把持物体領域1200の枠線1204が投影される。
このように、この変形例では、投影時における、把持物体領域の物体の有無、及び、その物体の種類に応じて、把持対象物体を示す像の投影位置または把持物体を示す像の種類が変更される。そのため、投影装置は、投影時において、把持物体領域内に何らかの物体が存在しても、把持対象物体を示す像の視認性を向上できる。
なお、把持対象物体は、作業対象物体に組み付けられる部品であってもよい。この場合には、把持対象物体は、追跡対象物体により一旦把持されると、元の把持物体領域には戻されず、作業対象物体上に移動されることになる。そこで他の変形例によれば、把持判定部24は、一旦、何れかの把持対象物体が追跡対象物体により把持されたと判定すると、それ以降、軌跡データに基づいて、追跡対象物体の位置と作業対象物体とが重なる位置を特定する。なお、作業対象物体の実空間での位置及び範囲は、予め記憶部14に保存される。そして把持判定部24は、特定した位置のそれぞれについて、追跡対象物体が通過する前の高さに対して、通過した後の高さが、把持対象物体の高さに相当する所定値以上高くなる場合、把持対象物体がその位置に組み付けられたと判定してもよい。この場合、把持判定部24は、追跡対象物体がその特定された位置を通過した以降、その把持対象物体は追跡対象物体により把持されていないと判定する。そして投影制御部26は、プロジェクタ13により、把持対象物体が組みつけられた位置に、把持対象物体の像を投影させてもよい。
さらに他の変形例によれば、投影装置は、撮像期間において、把持判定部24が何れかの把持対象物体を追跡対象物体が把持したと判定した直前においてカメラ12により得られた画像から、把持物体画像を生成してもよい。この場合、制御部15は、把持物体領域設定部20と同様の処理を行って、把持されたと判定された把持対象物体についての把持物体領域に対応する画像上の領域を特定し、その領域を画像から切り出すことで、把持物体画像を生成すればよい。
さらに他の変形例によれば、投影装置は、撮像期間中の何れかの時点で追跡対象物体により把持された把持対象物体について、投影期間中、把持対象物体の像を常に投影してもよい。この場合には、投影制御部26は、フラグGrabbed()が何れかの時点でTrueとなる把持対象物体について、投影期間中、プロジェクタ13の表示面上の第2の表示領域にその把持対象物体を示す像を表示させればよい。なお、この変形例でも、投影制御部26は、把持対象物体が追跡対象物体に把持されている期間に対応する投影期間中の期間に限り、プロジェクタ13に、「使用中」といった把持状態を表す文字列を投影させてもよい。
ここに挙げられた全ての例及び特定の用語は、読者が、本発明及び当該技術の促進に対する本発明者により寄与された概念を理解することを助ける、教示的な目的において意図されたものであり、本発明の優位性及び劣等性を示すことに関する、本明細書の如何なる例の構成、そのような特定の挙げられた例及び条件に限定しないように解釈されるべきものである。本発明の実施形態は詳細に説明されているが、本発明の精神及び範囲から外れることなく、様々な変更、置換及び修正をこれに加えることが可能であることを理解されたい。
以上説明した実施形態及びその変形例に関し、更に以下の付記を開示する。
(付記1)
実空間において把持対象物体が含まれる把持物体領域を記憶する記憶部と、
所定の撮像期間中において、距離センサから得た、対象物体と前記距離センサ間の距離を画素値で表した距離画像において、前記対象物体が写る物体領域を検出する物体領域検出部と、
前記距離画像において、前記物体領域内の前記対象物体に対応する各画素について、当該画素に写る前記対象物体の実空間での位置を算出する実空間位置算出部と、
前記距離画像に対応する、前記対象物体の実空間での位置に基づいて、前記対象物体の実空間の軌跡を表す軌跡データを生成する追跡部と、
前記把持物体領域内の前記把持対象物体の高さと、前記軌跡が前記把持物体領域を通過した後の物体の高さとの変化に基づいて、前記把持対象物体が前記対象物体により把持されている第1の期間を特定する把持判定部と、
前記第1の期間に対応する、所定の投影期間中の第2の期間において、プロジェクタに、前記対象物体の像と前記対象物体により把持されている前記把持対象物体を示す像とを、投影面上の互いに異なる位置に投影させる投影制御部と、
を有する投影装置。
(付記2)
前記記憶部は、前記把持対象物体が表された画像を前記把持対象物体を示す像として記憶する、付記1に記載の投影装置。
(付記3)
前記把持対象物体が前記対象物体により把持されていない時に得られた前記距離画像から、前記把持対象物体が写る領域を検出し、当該領域内の各点の実空間における位置を算出することで前記把持対象物体に対応する前記把持物体領域を設定し、かつ、カメラにより得られた前記把持対象物体を撮影した画像上で、前記把持物体領域に対応する領域を前記把持対象物体が表された画像とする把持物体領域設定部をさらに有する、付記2に記載の投影装置。
(付記4)
前記対象物体に把持されている前記把持対象物体に対応する前記把持物体領域に対応する、前記プロジェクタの表示面上の位置を算出することで、前記把持対象物体に対応する前記プロジェクタの前記表示面上の表示領域を算出する表示領域算出部をさらに有し、
前記投影制御部は、前記第2の期間において、前記プロジェクタの前記表示面上の前記表示領域に、前記把持対象物体を示す像を表示させることで前記把持対象物体を示す像を前記投影面に投影する、付記2または3に記載の投影装置。
(付記5)
前記記憶部は、前記把持対象物体の特徴を表す登録特徴量をさらに記憶し、
前記第2の期間において、前記距離センサにより得られた前記距離画像上、または、前記カメラにより得られた前記画像上で、前記対象物体に把持されている前記把持対象物体に対応する前記把持物体領域に対応する領域に写っている物体の特徴を表す照合用特徴量を算出する特徴抽出部と、
前記照合用特徴量と前記対象物体に把持されている前記把持対象物体についての前記登録特徴量とを照合して、前記物体と前記対象物体に把持されている前記把持対象物体とが同一か否かを判定する照合部とをさらに有し、
前記投影制御部は、前記物体と前記対象物体に把持されている前記把持対象物体とが同一である場合、前記第2の期間において、前記プロジェクタの前記表示面上の前記表示領域に、前記把持物体領域を囲む枠線の像を前記把持対象物体を示す像として表示させる、付記4に記載の投影装置。
(付記6)
前記投影制御部は、前記物体と前記対象物体に把持されている前記把持対象物体とが異なる場合、前記第2の期間において、前記プロジェクタに、前記把持対象物体の画像を前記物体と重ならない位置に投影させる、付記5に記載の投影装置。
(付記7)
前記照合部は、前記第2の期間において、前記距離センサにより得られた前記距離画像に基づいて前記対象物体に把持されている前記把持対象物体に対応する前記把持物体領域に前記物体が存在するか否かをさらに判定し、
前記投影制御部は、前記把持物体領域に前記物体が存在しない場合、前記プロジェクタに、前記把持対象物体が表された画像を前記把持物体領域に投影させる、付記5または6に記載の投影装置。
(付記8)
前記投影制御部は、前記第2の期間において、前記プロジェクタにより、前記把持対象物体が前記対象物体に把持されていることを示す情報を前記投影面に投影させる、付記1〜7の何れかに記載の投影装置。
(付記9)
所定の撮像期間中において、距離センサから得た、対象物体と前記距離センサ間の距離を画素値で表した距離画像において、前記対象物体が写る物体領域を検出し、
前記距離画像において、前記物体領域内の前記対象物体に対応する各画素について、当該画素に写る前記対象物体の実空間での位置を算出し、
前記距離画像に対応する、前記対象物体の実空間での位置に基づいて、前記対象物体の実空間の軌跡を表す軌跡データを生成し、
実空間において前記把持対象物体が含まれる把持物体領域内の把持対象物体の高さと、前記軌跡が前記把持物体領域を通過した後の物体の高さとの変化に基づいて、前記把持対象物体が前記対象物体により把持されている第1の期間を特定し、
前記第1の期間に対応する、所定の投影期間中の第2の期間において、プロジェクタに、前記対象物体の像と前記対象物体により把持されている前記把持対象物体を示す像とを、投影面上の互いに異なる位置に投影させる、
ことを含む投影方法。
(付記10)
所定の撮像期間中において、距離センサから得た、対象物体と前記距離センサ間の距離を画素値で表した距離画像において、前記対象物体が写る物体領域を検出し、
前記距離画像において、前記物体領域内の前記対象物体に対応する各画素について、当該画素に写る前記対象物体の実空間での位置を算出し、
前記距離画像に対応する、前記対象物体の実空間での位置に基づいて、前記対象物体の実空間の軌跡を表す軌跡データを生成し、
実空間において前記把持対象物体が含まれる把持物体領域内の把持対象物体の高さと、前記軌跡が前記把持物体領域を通過した後の物体の高さとの変化に基づいて、前記把持対象物体が前記対象物体により把持されている第1の期間を特定し、
前記第1の期間に対応する、所定の投影期間中の第2の期間において、プロジェクタに、前記対象物体の像と前記対象物体により把持されている前記把持対象物体を示す像とを、投影面上の互いに異なる位置に投影させる、
ことをコンピュータに実行させるための投影用コンピュータプログラム。