視覚探索方法
【課題】 探索対象物以外にも物体が存在している場合に、他の物体による隠れを考慮して探索を行う視覚探索方法を提供する。
【解決手段】 視覚センサ(例えば、ステレオカメラ)により対象物を探索した場合に、対象物が見つからない場合、認識環境の3次元モデルを生成し(ステップS52)、認識物の投影面積、視点からの距離を算出し(ステップS53)、それらと対象物の形状データから定量評価を行い(ステップS54)、多因子統合評価により遮蔽物除去の優先順位を決定する(ステップS55)。
【解決手段】 視覚センサ(例えば、ステレオカメラ)により対象物を探索した場合に、対象物が見つからない場合、認識環境の3次元モデルを生成し(ステップS52)、認識物の投影面積、視点からの距離を算出し(ステップS53)、それらと対象物の形状データから定量評価を行い(ステップS54)、多因子統合評価により遮蔽物除去の優先順位を決定する(ステップS55)。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はロボット等に用いられる視覚センサを利用して画像認識により対象物を探索する方法に関する。
【背景技術】
【0002】
視覚センサを用いて外界の情報を取得し、複雑な作業を実行するロボットの開発が進められている。例えば、特許文献1に開示されている技術は、知能ロボット等において能動的に外部環境を認識する環境認識システムである。この技術の基本的な考え方は、ある点から見ただけでは、物体を認識することができなければ、もっとよく見える位置に視点を移動したり、複雑に隠蔽されて認識が困難な物体は、障害物を隠蔽しない場所に移動させる、あるいは、照明条件を適切に変更するなど、積極的に自己および外部環境を変化させることにより、視覚系が機能しやすい環境を自ら作り出そうとするものである、と記載されている。
【特許文献1】特開平8−30327号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
この技術においては、例えば、別のロボットを視覚により認識する場合に、自らが動く、他のロボットの移動を促す、間にある障害物を移動させる、等の例が開示されている。ところで、人の生活環境内で動作するロボットにおいては、ある物体を探索して、探索した物体を把持する等、所定の動作を行わせるような用途が考えられる。しかし、上記技術においては、探索対象物の近くに他の物体が存在する場合に、どのようにして他の物体により隠れが発生しているかを判定する手法や、そのような物体が複数存在する場合の具体的な探索方法については何ら開示されていない。
【0004】
そこで本発明は、探索対象物以外にも物体が存在している場合に、他の物体による隠れを考慮して探索を行う視覚探索方法を提供することを課題とする。
【課題を解決するための手段】
【0005】
上記課題を解決するため、本発明にかかる視覚探索方法は、視覚センサを用いて空間中の対象物を探索し、その空間位置を取得する視覚探索方法において、視覚センサにより取得した画像から画像認識により画像内の物体の占める空間位置を取得する工程と、視覚センサから見て認識した各物体の影となる領域を判定する工程と、探索対象物の形状と判定した影となる領域の面積、視点からの距離に基づいて定量的に評価することで探索対象物を遮蔽しうる遮蔽物を判別する工程と、を備えていることを特徴とする。
【0006】
探索対象物と視覚センサとの間に他の物体が存在するため、探索対象物が視覚センサから認識できないケースが発生するには、探索対象物が視覚センサから見た他の物体の影にほぼ完全に入り込んでいる必要がある。したがって、この影領域の面積、視点からの距離により定量的な評価を行うことで、探索対象物を背後に隠しうる遮蔽物が判別可能となる。
【0007】
遮蔽物が複数個存在する場合に、対象物探索のために遮蔽物を移動する優先順位を設定する工程をさらに備えているとよい。遮蔽物が存在する場合に、対象物を探索するには、遮蔽物を除去するか、視点を移動させる必要がある。この優先順位としては、視覚センサに近い遮蔽物、背の高い遮蔽物等を優先して除去するとよい。
【0008】
優先順位に基づいて遮蔽物を移動し、対象物が見つかるまで探索と遮蔽物移動を繰り返す工程をさらに備えているとよい。遮蔽物を移動することで、遮蔽物の背後に探索対象物が存在している場合でも探索が可能となる。このとき、遮蔽物は、それにより影となる領域が移動前と重複しないような位置に移動させるとよい。
【発明の効果】
【0009】
本発明によれば、探索対象物のほかに物体が存在する場合に、探索対象物を背後に隠しうる遮蔽物が存在するか否かを判定することができるので、無駄に他の物体を動かしたり、視覚センサ自体を移動させる必要がなく、対象物を確実に探索することができる。
【0010】
複数の遮蔽物候補が存在する場合、特に影となる領域の大きな遮蔽物を優先して移動させることで、迅速に探索範囲を拡大し、探索対象物をより早く見つけ出す確率が向上する。
【0011】
また、ロボットハンド等により、遮蔽物の移動と探索を順次行うことで、対象物をより早く確実に探索することができる。
【発明を実施するための最良の形態】
【0012】
以下、添付図面を参照して本発明の好適な実施の形態について詳細に説明する。説明の理解を容易にするため、各図面において同一の構成要素に対しては可能な限り同一の参照番号を附し、重複する説明は省略する。
【0013】
図1は、本発明にかかる視覚探索方法を実施するロボットの概略構成を示すブロック図である。このロボットは、多指多関節のハンドを左右の多関節アームの先端に配置しており、各関節に配置されるアクチュエータ40を駆動することで、物体を把持する等の所定の動作を行わせることができる。ロボットの頭部にはステレオカメラ20が配置されており、対象物や周辺環境のステレオ画像を取得し、制御部1へ転送する。
【0014】
制御部1は、CPU、ROM、RAM等によって構成されており、内蔵したプログラムに応じてロボットハンド・アームに所定の動作を実行させる。図示は、省略しているが、入力手段(キーボードや音声入力、有線・無線LAN等)からの指示に応じて所定の動作を行ったり、ステレオカメラ20で取得した画像中から探索した対象物に応じた動作を行うようにすればよい。所定の動作としては、物体を把持して予め定められた位置に移動させる動作や、物体を把持したままプログラムされている一連の動作を実行する動作等が含まれる。
【0015】
制御部1は、ステレオカメラ20で取得した画像を処理する画像処理部11と、処理結果からロボットの周辺環境における物体の形状や位置情報を取得する周辺環境認識部12、ロボットの各関節等に配置された角度センサ30の出力からロボットの位置姿勢を認識する位置姿勢認識部13、所望の動作を行わせるためのロボットハンドの移動経路を探索する経路探索部14、アクチュエータ40を駆動して探索した経路上の移動を支援する駆動制御部15を備えている。これらの各部11〜14は、別個のハードウェアによって構成されていてもよいが、一部または全部が、一部または全部のハードウェアを共有していてもよく、その場合でもソフトウェアが完全に独立している必要はなく、その一部を共有する構成となっていてもよい。
【0016】
このロボットにおいては、ステレオカメラ20により、制御指令に基づいて物体を探索し、その物体に対して所定の動作(例えば、物体の移動や物体を所持したまま物体の姿勢を変更する等)を実行する。この場合に、物体が他の物体によって隠される場合がある。本発明にかかる視覚探索方法は、こうした隠れ物体を含めて物体の視覚による探索を効果的に行う手法である。
【0017】
図2、図3に本視覚探索処理のフローチャートを示す。図2がメイン処理を示しており、図3は、そのうちの除去遮蔽物決定処理の詳細を示している。この処理は、制御部1において実行されるものであり、内部のプログラムまたは外部プログラムや外部入力により対象物およびその探索が指示された場合に実行されるものである。
【0018】
最初に、対象物探索処理を実行する(ステップS1)。この対象物探索処理においては、対象物の画像情報をもとにパターンマッチング等により探索する手法や取得した画像から周囲の環境の3次元形状・位置を取得し、取得した3次元形状・位置から対象物の3次元形状に一致する物体を探索する手法等を用いることができる。この探索処理については、各種の既知の手法、ないし、それらの改良手法を用いることができる。
【0019】
次に、探索に成功したか否かを判定する(ステップS2)。探索に成功した場合にはステップS8へと移行し、探索結果を出力して処理を終了する。一方、探索に失敗した場合には、ステップS3へと移行する。探索に失敗する場合とは、主として対象物が存在しない場合、対象物が他の物体に隠れて見えない場合である。ここでは、対象物が存在しているのに誤認識等で見失っている場合、および、対象物が探索範囲内に存在しない場合については考慮しないものとする。すなわち、ここでは、探索に失敗する場合としては、対象物が他の物体に隠れて見えない場合のみが該当する。
【0020】
図4に、この隠れ問題が発生しうる状況下における対象物と他の物体との位置関係を示す。ここで、遮蔽物としてObject iないしObject jが存在する場合、視点(Viewpoint)から見て、対象物が遮蔽物より十分に遠い(a)または(b)位置を含むRegion Iに位置している場合には、対象物の全体像を視認できるため、隠れ問題は発生しない。これに対して、対象物がより遮蔽物へと接近し、視点と遮蔽物の輪郭を結ぶ線を横切る位置、つまり、(c)位置を含むRegion II内に位置している場合には、対象物の下側は遮蔽物によって隠されることになり、その全体像を視認することができない。
【0021】
さらに、対象物が遮蔽物へと近づき、視点と遮蔽物の輪郭を結ぶ線より下に位置する場合、つまり、(d)(e)位置を含むRegion III内に位置している場合には、対象物全体が遮蔽物によって隠されることになり、その一部分でも視認することはできなくなる。前述した探索成功の場合とは、対象物がRegion Iに存在している場合を意味する。以下、対象物がRegion IIまたはRegion IIIに存在している場合の処理を説明する。
【0022】
例えば、図5に示されるような環境において、図6に示されるような急須51を対象物として探索する場合を考えると、ロボット2のステレオカメラ20からみて遮蔽物となりうるのは、符号52、53で示す2物体である。
【0023】
図2のメインフローにおけるステップS3では、一部隠れ候補の有無を判定する。一部隠れ候補の判定は、例えば、パターン認識において類似度を数値化して出力する場合であれば、合致判定を行うしきい値以下の類似度ではあるが、高い類似度を示している場合を一部隠れ候補と判定する手法が考えられる。あるいは、対象物の全体像ではなく、部分像をパターン認識の候補としておき、全体像に合致する候補はないが、ある部分に合致する物体を認識した場合に、一部隠れ物体と判定してもよい。
【0024】
一部隠れ物体ありと判定した場合には、その物体の一部を遮蔽している物体(遮蔽物)を判別する(ステップS4)。具体的には、ステレオカメラ20の視線と当該隠れ物体とを結ぶライン上に存在する物体を判別することで、遮蔽物を判別することができる。遮蔽物を判別したら、それを除去するハンドの移動経路を設定する(ステップS6)。この遮蔽物除去経路の設定は、各種の既知の経路設定手法を用いればよい。こうして経路を設定したら、アクチュエータ40を駆動することで、ハンドを設定した経路に沿って移動させることにより、対象物とステレオカメラ20とを結ぶライン上から遮蔽物を除去する(ステップS7)。遮蔽物を除去したらステップS1へと戻り、再度対象物の探索処理を実行する。この遮蔽物の除去においては、角度センサ30の出力を基にして、位置姿勢認識部13がロボットのアーム・ハンドの体勢を判定し、経路探索部14で設定した経路上の移動が実現されているか否かを追跡し、必要ならば駆動制御部15によるアクチュエータ40の駆動を調整するとよい。この調整は、各種のフィードバック制御、フィードフォワード制御等によって行われる。
【0025】
ステップS3において、一部隠れ候補なしと判定した場合には、対象物の全体が遮蔽物に隠されていると考えられるため、ステップS5へと移行して、除去すべき遮蔽物を決定する処理を行う。具体的には、図3に示されるように、まず、画像処理部11がカメラ画像を読み込む(ステップS51)。そして、画像処理部11の処理結果に基づいて周辺環境認識部12が認識した周辺環境の3次元モデルを生成する(ステップS52)。このとき、周辺環境に存在する物体は複雑な3次元形状を有していることが多いが、これを単純化した多面体や円筒、球等としてモデル化すると、その後の処理が容易になるため好ましい。
【0026】
3次元形状モデルを生成したら、認識物の投影面積、視点からの距離を算出する(ステップS3)。具体的な算出手法について、以下に例示する。図7は、遮蔽物候補が多面体(直方体)の場合の投影面の位置関係を示しており、図8はその領域を算出する処理のフローチャートである。ここでは、投影面を含む平面上に原点を配置して投影面をXY平面とし、Z軸上にロボットの視点を配置する。図5に示されるような環境においては投影面はテーブル70の天板に一致する。
【0027】
最初に多面体の境界表現を読み込む(ステップS61)。ここでは、対象物に当てはめる多面体の基本形状である面数、各面の頂点数に関する情報を読み込む。次に、対象物である遮蔽物候補に当てはめた多面体の各頂点位置を算出する(ステップS62)。つまり、図7においては、頂点A〜Hの頂点座標を算出する。図7に示される直方体の場合には、頂点Fは死角に入り、視点から視認することはできないが、モデル化した直方体の位置として算出可能である。
【0028】
次に、投影面上への頂点の投影位置を算出する(ステップS63)。具体的には、頂点A、B、C、Dの各投影点A’、B’、C’、D’位置を算出する。視点の空間座標を(0,0,zv)、頂点Aの空間座標を(xA,yA,zA)とすると、投影点A’の空間座標(xA’,yA’,0)は、以下の式で表せる。
【0029】
【数1】
【0030】
他の頂点の投影点の空間座標についても同様に算出できる。
【0031】
こうして算出した後に、投影面上における投影点、頂点の順序づけを行う(ステップS64)。これは、遮蔽物とその影が投影面で形成する多角形の頂点位置をその接続関係を考慮して順序づけるものである。ここでは、時計回りに順序づけを行うものとして、A’点を始点とする。本例では、A’→B’→C’→G→H→E→A’という順番になる。
【0032】
次に、この投影面の面積、視点からの距離を算出する(ステップS65)。投影面の面積は、投影点・頂点の各座標値から以下の式により算出できる。
【0033】
【数2】
【0034】
こうして求めたSprojと多面体の底面の面積Shとの差が影部分の面積Sshadowとなる。距離は、例えば、遮蔽物の上面ABCDの重心Oの投影位置O’と視点との距離により代表させればよい。
【0035】
次に、遮蔽物候補が立円筒の場合の算出手法について述べる。図9は、遮蔽物と投影面の位置関係を示しており、図10はその領域を算出する処理のフローチャートである。投影面と遮蔽物の位置関係は、上述した多面体の場合と同様である。
【0036】
最初に立円筒の幾何表現を読み込む(ステップS71)。具体的には、立円筒の底面の中心位置、直径、高さに関する情報を読み込む。次に、円筒の中心軸がX’軸上に位置するよう座標系を回転させる(ステップS72)。図9に示される例では、XY軸を原点を中心に角度βだけ回転させればよい。次に、投影面上の特徴点位置を算出する(ステップS73)。特徴点としては、円筒の上面に対し、視点から伸ばした接線の上面との接点E、Fそれぞれの投影点E’、F’と上面の中心Oの投影点O’が挙げられる。このO’は上面を投影した円の中心であり、E’、F’はこの投影円に対して視点から伸ばした接線の投影円への接点に一致する。
【0037】
次に、投影面の面積を算出する(ステップS73)。投影面の面積Sprojは、視点の高さをH、円筒の高さをh、その半径をrとし、円筒の中心軸のz軸からの距離をdとすると、以下の式に表される。
【0038】
【数3】
【0039】
最後に座標系を元に戻して(ステップS75)、処理を終了する。
【0040】
遮蔽物候補が横円筒の場合の算出手法は以下の通りである。図11は、遮蔽物と投影面の位置関係を示しており、図12はその領域を算出する処理のフローチャートである。投影面と遮蔽物の位置関係は、上述した多面体、立円筒の場合と同様である。
【0041】
最初に横円筒の幾何表現を読み込む(ステップS81)。具体的には、横円筒の両底面の中心位置、直径、高さ(長さ)に関する情報を読み込む。次に、円筒の中心軸がX’軸上に位置するよう座標系を回転させる(ステップS82)。図11に示される例では、直線で示される横円筒の場合には、XY軸を原点を中心に角度α1だけ半時計回りに回転(軸X1’と直交)させればよく、破線で示される横円筒の場合には、XY軸を原点を中心に角度α2だけ時計回りに回転(軸X2’と直交)させればよい。
【0042】
次に、円筒を内包する多角形の形状位置を算出する(ステップS83)。例えば、底面である円に外接する正6角形であって、そのうちの一辺が投影面に接する正6角形を底面とする6角柱の形状位置を算出する。次に座標系を元に戻し(ステップS84)、求めた多角形として投影領域を計算する処理を行う(ステップS85)。
【0043】
最後に遮蔽物候補が球の場合の算出手法について述べる。図13は、遮蔽物と投影面の位置関係を示している。投影面と遮蔽物の位置関係は、上述した多面体、立円筒、横円筒の場合と同様である。
【0044】
球の投影面は、図13(b)に示されるように、球を内接する円錐の斜め断面に等しくなる。したがって、球の位置、半径から投影面の形状、面積は幾何学的に計算できる。球の半径をr、球の中心C(xc,yc,r)のz軸からの距離をd、視点と球の中心Cとの距離をs、視点の高さをH、視点から球の中心Cを結んだ線とz軸のなす角度をφ、円錐の頂角を2ψとすると、投影面の面積は以下の式で表せる。
【0045】
【数4】
【0046】
こうして各物体の投影面積、視点からの距離等を算出したら、認識物を定量的に評価し(図3、ステップS54)、多因子統合評価により、遮蔽物除去の優先順位を決定する(ステップS55)。この定量評価と統合評価処理の処理例を示すフローチャートが図14である。ここでは、曖昧評価手法が用いられる。
【0047】
まず、正規化処理を実行する(ステップS91)。投影面積Sprojについては、それを対象物の底面積STOで除して正規化面積SProjectionNormとする。ここで、STOは、対象物が複雑な場合には、その実際の底面積ではなく、規格化した面積が用いられる。例えば、図6に示されるような急須51については、その本体部を囲む直方体の底面積が用いられる。なお、高さ、幅についても同様である。物体の高さhoについては、これを対象物の高さhTOで除して正規化高さHObjectNormとする。同様に、物体の等価幅wno=Sproj/hoをwTOで除して正規化幅WObjectNormとする。また、物体の位置を正規化するため、当該物体の視点からの距離doを、環境中で最もロボットに近い物体の視点からの距離dminと、最もロボットから遠い物体の視点からの距離dmaxを用いて、(do−dmin)/(dmax−dmin)の解を求め、正規化距離DObjectNormとする。
【0048】
正規化処理後は、ファジー化処理を行う(ステップS92)。具体的には、図15に示されるメンバーシップ関数を用いて、正規化した値から評価値を求める。評価値は、ν1、ν2、ν3の3次元からなり、それぞれに図15に示される値が設定される。ここで、ν1がsmall(距離の場合はfar)、ν2がmedium、ν3がlarge(距離の場合はnear)に対応する。
【0049】
次に、統合評価を行う(ステップS93)。ここで、環境中の物体セットをO={O1,O2,…,On}で表すものとし、各物体についての因子Uの{u1,u2,u3,u4}として投影面積Sproj、高さho、等価幅wno、距離doが設定される。さらに、各因子u1,u2,u3,u4に対して評価レベルV={ν1,ν2、ν3}が設定される。ある物体Okについてのメンバーシップ関数を用いることで、評価関係行列式は以下のように表せる。
【0050】
【数5】
【0051】
ここで、rijは、正規化単因子であり、以下の関係が成り立つ。
【0052】
【数6】
【0053】
また、以下の式で表される重みづけ分布ベクトルを用いると、上記関係を有する各物体Okについて統合評価結果は下記のように表せる。
【0054】
【数7】
【0055】
正規化後の結果は、
【0056】
【数8】
【0057】
さらに、本実施形態では、統合評価値Mkを以下の式により求める。
【0058】
【数9】
【0059】
ステップS94では、評価結果Mkをもとにして結果の並べ替えを行う。並び順が上位の候補が遮蔽物候補の除去順位において優先度の高い候補となる。候補が決定したらステップS6へと移行し、遮蔽物の除去経路を設定し、その除去処理(ステップS7)を行った後に、対象物探索処理(ステップS1)へと戻る。
【0060】
本実施形態においては、対象物を隠す遮蔽物の判定を行う際に、周囲の物体(遮蔽物)により影となる領域の面積、遮蔽物と視点との距離、遮蔽物の高さ、幅を対象物のそれらによって正規化し、これらを統合的に考慮して隠れ物体としての除去優先順位を判定するので、遮蔽物の判定を精度よく高速で行うことができる。
【0061】
この点、周辺物体の空間的な影領域を元に判定を行う手法も考えられるが、このように空間的位置関係を考慮した判定を行おうとすると、判定処理の計算量が膨大になり、処理に時間がかかってしまうが、本実施形態のように処理を簡素化することで、処理を高速化することができる。一方で、多因子統合評価を行うことで、精度の低下を抑制している。
【0062】
ここでは、一部が隠れている場合と、全体が隠れている可能性がある場合とで異なる処理を行ったが、その重要部ないし一定比率以上の部分が隠れているような場合には、一部が隠れている場合であっても全体が隠れている場合と同様の処理を行うようにしてもよい。
【0063】
以上の説明では、ロボットに適用した場合において、遮蔽物を自ら除去する例を説明したが、例えば、監視装置等においても本発明は適用でき、遮蔽物を自ら除去するのではなく、遮蔽物を指摘するようにしてもよい。また、遮蔽物に応じて自らの視点を移動させるようにしてもよい。
【図面の簡単な説明】
【0064】
【図1】本発明にかかる視覚探索方法を実施するロボットの概略構成を示すブロック図である。
【図2】図1のロボットが行う視覚探索処理のフローチャートである。
【図3】図2中の除去遮蔽物決定処理の詳細を示すフローチャートである。
【図4】隠れ問題が発生しうる状況下における対象物と他の物体との位置関係を示す図である。
【図5】対象物探索の一例における状況を示す図である。
【図6】図5の状況における対象物を示す図である。
【図7】遮蔽物が多面体の場合の影領域との位置関係を示す図である。
【図8】図7における投影面積等の算出処理を示すフローチャートである。
【図9】遮蔽物が立円筒の場合の影領域との位置関係を示す図である。
【図10】図9における投影面積等の算出処理を示すフローチャートである。
【図11】遮蔽物が横円筒の場合の影領域との位置関係を示す図である。
【図12】図11における投影面積等の算出処理を示すフローチャートである。
【図13】遮蔽物が球の場合の影領域との位置関係を示す図である。
【図14】定量評価処理のフローチャートである。
【図15】図14において用いるメンバーシップ関数の一例を示す線図である。
【符号の説明】
【0065】
1…制御部、2…ロボット、10…画像処理部、11…画像処理部、12…周辺環境認識部、13…位置姿勢認識部、14…経路探索部、15…駆動制御部、20…ステレオカメラ、30…角度センサ、40…アクチュエータ、51…急須、52、53…遮蔽物候補、70…テーブル。
【技術分野】
【0001】
本発明はロボット等に用いられる視覚センサを利用して画像認識により対象物を探索する方法に関する。
【背景技術】
【0002】
視覚センサを用いて外界の情報を取得し、複雑な作業を実行するロボットの開発が進められている。例えば、特許文献1に開示されている技術は、知能ロボット等において能動的に外部環境を認識する環境認識システムである。この技術の基本的な考え方は、ある点から見ただけでは、物体を認識することができなければ、もっとよく見える位置に視点を移動したり、複雑に隠蔽されて認識が困難な物体は、障害物を隠蔽しない場所に移動させる、あるいは、照明条件を適切に変更するなど、積極的に自己および外部環境を変化させることにより、視覚系が機能しやすい環境を自ら作り出そうとするものである、と記載されている。
【特許文献1】特開平8−30327号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
この技術においては、例えば、別のロボットを視覚により認識する場合に、自らが動く、他のロボットの移動を促す、間にある障害物を移動させる、等の例が開示されている。ところで、人の生活環境内で動作するロボットにおいては、ある物体を探索して、探索した物体を把持する等、所定の動作を行わせるような用途が考えられる。しかし、上記技術においては、探索対象物の近くに他の物体が存在する場合に、どのようにして他の物体により隠れが発生しているかを判定する手法や、そのような物体が複数存在する場合の具体的な探索方法については何ら開示されていない。
【0004】
そこで本発明は、探索対象物以外にも物体が存在している場合に、他の物体による隠れを考慮して探索を行う視覚探索方法を提供することを課題とする。
【課題を解決するための手段】
【0005】
上記課題を解決するため、本発明にかかる視覚探索方法は、視覚センサを用いて空間中の対象物を探索し、その空間位置を取得する視覚探索方法において、視覚センサにより取得した画像から画像認識により画像内の物体の占める空間位置を取得する工程と、視覚センサから見て認識した各物体の影となる領域を判定する工程と、探索対象物の形状と判定した影となる領域の面積、視点からの距離に基づいて定量的に評価することで探索対象物を遮蔽しうる遮蔽物を判別する工程と、を備えていることを特徴とする。
【0006】
探索対象物と視覚センサとの間に他の物体が存在するため、探索対象物が視覚センサから認識できないケースが発生するには、探索対象物が視覚センサから見た他の物体の影にほぼ完全に入り込んでいる必要がある。したがって、この影領域の面積、視点からの距離により定量的な評価を行うことで、探索対象物を背後に隠しうる遮蔽物が判別可能となる。
【0007】
遮蔽物が複数個存在する場合に、対象物探索のために遮蔽物を移動する優先順位を設定する工程をさらに備えているとよい。遮蔽物が存在する場合に、対象物を探索するには、遮蔽物を除去するか、視点を移動させる必要がある。この優先順位としては、視覚センサに近い遮蔽物、背の高い遮蔽物等を優先して除去するとよい。
【0008】
優先順位に基づいて遮蔽物を移動し、対象物が見つかるまで探索と遮蔽物移動を繰り返す工程をさらに備えているとよい。遮蔽物を移動することで、遮蔽物の背後に探索対象物が存在している場合でも探索が可能となる。このとき、遮蔽物は、それにより影となる領域が移動前と重複しないような位置に移動させるとよい。
【発明の効果】
【0009】
本発明によれば、探索対象物のほかに物体が存在する場合に、探索対象物を背後に隠しうる遮蔽物が存在するか否かを判定することができるので、無駄に他の物体を動かしたり、視覚センサ自体を移動させる必要がなく、対象物を確実に探索することができる。
【0010】
複数の遮蔽物候補が存在する場合、特に影となる領域の大きな遮蔽物を優先して移動させることで、迅速に探索範囲を拡大し、探索対象物をより早く見つけ出す確率が向上する。
【0011】
また、ロボットハンド等により、遮蔽物の移動と探索を順次行うことで、対象物をより早く確実に探索することができる。
【発明を実施するための最良の形態】
【0012】
以下、添付図面を参照して本発明の好適な実施の形態について詳細に説明する。説明の理解を容易にするため、各図面において同一の構成要素に対しては可能な限り同一の参照番号を附し、重複する説明は省略する。
【0013】
図1は、本発明にかかる視覚探索方法を実施するロボットの概略構成を示すブロック図である。このロボットは、多指多関節のハンドを左右の多関節アームの先端に配置しており、各関節に配置されるアクチュエータ40を駆動することで、物体を把持する等の所定の動作を行わせることができる。ロボットの頭部にはステレオカメラ20が配置されており、対象物や周辺環境のステレオ画像を取得し、制御部1へ転送する。
【0014】
制御部1は、CPU、ROM、RAM等によって構成されており、内蔵したプログラムに応じてロボットハンド・アームに所定の動作を実行させる。図示は、省略しているが、入力手段(キーボードや音声入力、有線・無線LAN等)からの指示に応じて所定の動作を行ったり、ステレオカメラ20で取得した画像中から探索した対象物に応じた動作を行うようにすればよい。所定の動作としては、物体を把持して予め定められた位置に移動させる動作や、物体を把持したままプログラムされている一連の動作を実行する動作等が含まれる。
【0015】
制御部1は、ステレオカメラ20で取得した画像を処理する画像処理部11と、処理結果からロボットの周辺環境における物体の形状や位置情報を取得する周辺環境認識部12、ロボットの各関節等に配置された角度センサ30の出力からロボットの位置姿勢を認識する位置姿勢認識部13、所望の動作を行わせるためのロボットハンドの移動経路を探索する経路探索部14、アクチュエータ40を駆動して探索した経路上の移動を支援する駆動制御部15を備えている。これらの各部11〜14は、別個のハードウェアによって構成されていてもよいが、一部または全部が、一部または全部のハードウェアを共有していてもよく、その場合でもソフトウェアが完全に独立している必要はなく、その一部を共有する構成となっていてもよい。
【0016】
このロボットにおいては、ステレオカメラ20により、制御指令に基づいて物体を探索し、その物体に対して所定の動作(例えば、物体の移動や物体を所持したまま物体の姿勢を変更する等)を実行する。この場合に、物体が他の物体によって隠される場合がある。本発明にかかる視覚探索方法は、こうした隠れ物体を含めて物体の視覚による探索を効果的に行う手法である。
【0017】
図2、図3に本視覚探索処理のフローチャートを示す。図2がメイン処理を示しており、図3は、そのうちの除去遮蔽物決定処理の詳細を示している。この処理は、制御部1において実行されるものであり、内部のプログラムまたは外部プログラムや外部入力により対象物およびその探索が指示された場合に実行されるものである。
【0018】
最初に、対象物探索処理を実行する(ステップS1)。この対象物探索処理においては、対象物の画像情報をもとにパターンマッチング等により探索する手法や取得した画像から周囲の環境の3次元形状・位置を取得し、取得した3次元形状・位置から対象物の3次元形状に一致する物体を探索する手法等を用いることができる。この探索処理については、各種の既知の手法、ないし、それらの改良手法を用いることができる。
【0019】
次に、探索に成功したか否かを判定する(ステップS2)。探索に成功した場合にはステップS8へと移行し、探索結果を出力して処理を終了する。一方、探索に失敗した場合には、ステップS3へと移行する。探索に失敗する場合とは、主として対象物が存在しない場合、対象物が他の物体に隠れて見えない場合である。ここでは、対象物が存在しているのに誤認識等で見失っている場合、および、対象物が探索範囲内に存在しない場合については考慮しないものとする。すなわち、ここでは、探索に失敗する場合としては、対象物が他の物体に隠れて見えない場合のみが該当する。
【0020】
図4に、この隠れ問題が発生しうる状況下における対象物と他の物体との位置関係を示す。ここで、遮蔽物としてObject iないしObject jが存在する場合、視点(Viewpoint)から見て、対象物が遮蔽物より十分に遠い(a)または(b)位置を含むRegion Iに位置している場合には、対象物の全体像を視認できるため、隠れ問題は発生しない。これに対して、対象物がより遮蔽物へと接近し、視点と遮蔽物の輪郭を結ぶ線を横切る位置、つまり、(c)位置を含むRegion II内に位置している場合には、対象物の下側は遮蔽物によって隠されることになり、その全体像を視認することができない。
【0021】
さらに、対象物が遮蔽物へと近づき、視点と遮蔽物の輪郭を結ぶ線より下に位置する場合、つまり、(d)(e)位置を含むRegion III内に位置している場合には、対象物全体が遮蔽物によって隠されることになり、その一部分でも視認することはできなくなる。前述した探索成功の場合とは、対象物がRegion Iに存在している場合を意味する。以下、対象物がRegion IIまたはRegion IIIに存在している場合の処理を説明する。
【0022】
例えば、図5に示されるような環境において、図6に示されるような急須51を対象物として探索する場合を考えると、ロボット2のステレオカメラ20からみて遮蔽物となりうるのは、符号52、53で示す2物体である。
【0023】
図2のメインフローにおけるステップS3では、一部隠れ候補の有無を判定する。一部隠れ候補の判定は、例えば、パターン認識において類似度を数値化して出力する場合であれば、合致判定を行うしきい値以下の類似度ではあるが、高い類似度を示している場合を一部隠れ候補と判定する手法が考えられる。あるいは、対象物の全体像ではなく、部分像をパターン認識の候補としておき、全体像に合致する候補はないが、ある部分に合致する物体を認識した場合に、一部隠れ物体と判定してもよい。
【0024】
一部隠れ物体ありと判定した場合には、その物体の一部を遮蔽している物体(遮蔽物)を判別する(ステップS4)。具体的には、ステレオカメラ20の視線と当該隠れ物体とを結ぶライン上に存在する物体を判別することで、遮蔽物を判別することができる。遮蔽物を判別したら、それを除去するハンドの移動経路を設定する(ステップS6)。この遮蔽物除去経路の設定は、各種の既知の経路設定手法を用いればよい。こうして経路を設定したら、アクチュエータ40を駆動することで、ハンドを設定した経路に沿って移動させることにより、対象物とステレオカメラ20とを結ぶライン上から遮蔽物を除去する(ステップS7)。遮蔽物を除去したらステップS1へと戻り、再度対象物の探索処理を実行する。この遮蔽物の除去においては、角度センサ30の出力を基にして、位置姿勢認識部13がロボットのアーム・ハンドの体勢を判定し、経路探索部14で設定した経路上の移動が実現されているか否かを追跡し、必要ならば駆動制御部15によるアクチュエータ40の駆動を調整するとよい。この調整は、各種のフィードバック制御、フィードフォワード制御等によって行われる。
【0025】
ステップS3において、一部隠れ候補なしと判定した場合には、対象物の全体が遮蔽物に隠されていると考えられるため、ステップS5へと移行して、除去すべき遮蔽物を決定する処理を行う。具体的には、図3に示されるように、まず、画像処理部11がカメラ画像を読み込む(ステップS51)。そして、画像処理部11の処理結果に基づいて周辺環境認識部12が認識した周辺環境の3次元モデルを生成する(ステップS52)。このとき、周辺環境に存在する物体は複雑な3次元形状を有していることが多いが、これを単純化した多面体や円筒、球等としてモデル化すると、その後の処理が容易になるため好ましい。
【0026】
3次元形状モデルを生成したら、認識物の投影面積、視点からの距離を算出する(ステップS3)。具体的な算出手法について、以下に例示する。図7は、遮蔽物候補が多面体(直方体)の場合の投影面の位置関係を示しており、図8はその領域を算出する処理のフローチャートである。ここでは、投影面を含む平面上に原点を配置して投影面をXY平面とし、Z軸上にロボットの視点を配置する。図5に示されるような環境においては投影面はテーブル70の天板に一致する。
【0027】
最初に多面体の境界表現を読み込む(ステップS61)。ここでは、対象物に当てはめる多面体の基本形状である面数、各面の頂点数に関する情報を読み込む。次に、対象物である遮蔽物候補に当てはめた多面体の各頂点位置を算出する(ステップS62)。つまり、図7においては、頂点A〜Hの頂点座標を算出する。図7に示される直方体の場合には、頂点Fは死角に入り、視点から視認することはできないが、モデル化した直方体の位置として算出可能である。
【0028】
次に、投影面上への頂点の投影位置を算出する(ステップS63)。具体的には、頂点A、B、C、Dの各投影点A’、B’、C’、D’位置を算出する。視点の空間座標を(0,0,zv)、頂点Aの空間座標を(xA,yA,zA)とすると、投影点A’の空間座標(xA’,yA’,0)は、以下の式で表せる。
【0029】
【数1】
【0030】
他の頂点の投影点の空間座標についても同様に算出できる。
【0031】
こうして算出した後に、投影面上における投影点、頂点の順序づけを行う(ステップS64)。これは、遮蔽物とその影が投影面で形成する多角形の頂点位置をその接続関係を考慮して順序づけるものである。ここでは、時計回りに順序づけを行うものとして、A’点を始点とする。本例では、A’→B’→C’→G→H→E→A’という順番になる。
【0032】
次に、この投影面の面積、視点からの距離を算出する(ステップS65)。投影面の面積は、投影点・頂点の各座標値から以下の式により算出できる。
【0033】
【数2】
【0034】
こうして求めたSprojと多面体の底面の面積Shとの差が影部分の面積Sshadowとなる。距離は、例えば、遮蔽物の上面ABCDの重心Oの投影位置O’と視点との距離により代表させればよい。
【0035】
次に、遮蔽物候補が立円筒の場合の算出手法について述べる。図9は、遮蔽物と投影面の位置関係を示しており、図10はその領域を算出する処理のフローチャートである。投影面と遮蔽物の位置関係は、上述した多面体の場合と同様である。
【0036】
最初に立円筒の幾何表現を読み込む(ステップS71)。具体的には、立円筒の底面の中心位置、直径、高さに関する情報を読み込む。次に、円筒の中心軸がX’軸上に位置するよう座標系を回転させる(ステップS72)。図9に示される例では、XY軸を原点を中心に角度βだけ回転させればよい。次に、投影面上の特徴点位置を算出する(ステップS73)。特徴点としては、円筒の上面に対し、視点から伸ばした接線の上面との接点E、Fそれぞれの投影点E’、F’と上面の中心Oの投影点O’が挙げられる。このO’は上面を投影した円の中心であり、E’、F’はこの投影円に対して視点から伸ばした接線の投影円への接点に一致する。
【0037】
次に、投影面の面積を算出する(ステップS73)。投影面の面積Sprojは、視点の高さをH、円筒の高さをh、その半径をrとし、円筒の中心軸のz軸からの距離をdとすると、以下の式に表される。
【0038】
【数3】
【0039】
最後に座標系を元に戻して(ステップS75)、処理を終了する。
【0040】
遮蔽物候補が横円筒の場合の算出手法は以下の通りである。図11は、遮蔽物と投影面の位置関係を示しており、図12はその領域を算出する処理のフローチャートである。投影面と遮蔽物の位置関係は、上述した多面体、立円筒の場合と同様である。
【0041】
最初に横円筒の幾何表現を読み込む(ステップS81)。具体的には、横円筒の両底面の中心位置、直径、高さ(長さ)に関する情報を読み込む。次に、円筒の中心軸がX’軸上に位置するよう座標系を回転させる(ステップS82)。図11に示される例では、直線で示される横円筒の場合には、XY軸を原点を中心に角度α1だけ半時計回りに回転(軸X1’と直交)させればよく、破線で示される横円筒の場合には、XY軸を原点を中心に角度α2だけ時計回りに回転(軸X2’と直交)させればよい。
【0042】
次に、円筒を内包する多角形の形状位置を算出する(ステップS83)。例えば、底面である円に外接する正6角形であって、そのうちの一辺が投影面に接する正6角形を底面とする6角柱の形状位置を算出する。次に座標系を元に戻し(ステップS84)、求めた多角形として投影領域を計算する処理を行う(ステップS85)。
【0043】
最後に遮蔽物候補が球の場合の算出手法について述べる。図13は、遮蔽物と投影面の位置関係を示している。投影面と遮蔽物の位置関係は、上述した多面体、立円筒、横円筒の場合と同様である。
【0044】
球の投影面は、図13(b)に示されるように、球を内接する円錐の斜め断面に等しくなる。したがって、球の位置、半径から投影面の形状、面積は幾何学的に計算できる。球の半径をr、球の中心C(xc,yc,r)のz軸からの距離をd、視点と球の中心Cとの距離をs、視点の高さをH、視点から球の中心Cを結んだ線とz軸のなす角度をφ、円錐の頂角を2ψとすると、投影面の面積は以下の式で表せる。
【0045】
【数4】
【0046】
こうして各物体の投影面積、視点からの距離等を算出したら、認識物を定量的に評価し(図3、ステップS54)、多因子統合評価により、遮蔽物除去の優先順位を決定する(ステップS55)。この定量評価と統合評価処理の処理例を示すフローチャートが図14である。ここでは、曖昧評価手法が用いられる。
【0047】
まず、正規化処理を実行する(ステップS91)。投影面積Sprojについては、それを対象物の底面積STOで除して正規化面積SProjectionNormとする。ここで、STOは、対象物が複雑な場合には、その実際の底面積ではなく、規格化した面積が用いられる。例えば、図6に示されるような急須51については、その本体部を囲む直方体の底面積が用いられる。なお、高さ、幅についても同様である。物体の高さhoについては、これを対象物の高さhTOで除して正規化高さHObjectNormとする。同様に、物体の等価幅wno=Sproj/hoをwTOで除して正規化幅WObjectNormとする。また、物体の位置を正規化するため、当該物体の視点からの距離doを、環境中で最もロボットに近い物体の視点からの距離dminと、最もロボットから遠い物体の視点からの距離dmaxを用いて、(do−dmin)/(dmax−dmin)の解を求め、正規化距離DObjectNormとする。
【0048】
正規化処理後は、ファジー化処理を行う(ステップS92)。具体的には、図15に示されるメンバーシップ関数を用いて、正規化した値から評価値を求める。評価値は、ν1、ν2、ν3の3次元からなり、それぞれに図15に示される値が設定される。ここで、ν1がsmall(距離の場合はfar)、ν2がmedium、ν3がlarge(距離の場合はnear)に対応する。
【0049】
次に、統合評価を行う(ステップS93)。ここで、環境中の物体セットをO={O1,O2,…,On}で表すものとし、各物体についての因子Uの{u1,u2,u3,u4}として投影面積Sproj、高さho、等価幅wno、距離doが設定される。さらに、各因子u1,u2,u3,u4に対して評価レベルV={ν1,ν2、ν3}が設定される。ある物体Okについてのメンバーシップ関数を用いることで、評価関係行列式は以下のように表せる。
【0050】
【数5】
【0051】
ここで、rijは、正規化単因子であり、以下の関係が成り立つ。
【0052】
【数6】
【0053】
また、以下の式で表される重みづけ分布ベクトルを用いると、上記関係を有する各物体Okについて統合評価結果は下記のように表せる。
【0054】
【数7】
【0055】
正規化後の結果は、
【0056】
【数8】
【0057】
さらに、本実施形態では、統合評価値Mkを以下の式により求める。
【0058】
【数9】
【0059】
ステップS94では、評価結果Mkをもとにして結果の並べ替えを行う。並び順が上位の候補が遮蔽物候補の除去順位において優先度の高い候補となる。候補が決定したらステップS6へと移行し、遮蔽物の除去経路を設定し、その除去処理(ステップS7)を行った後に、対象物探索処理(ステップS1)へと戻る。
【0060】
本実施形態においては、対象物を隠す遮蔽物の判定を行う際に、周囲の物体(遮蔽物)により影となる領域の面積、遮蔽物と視点との距離、遮蔽物の高さ、幅を対象物のそれらによって正規化し、これらを統合的に考慮して隠れ物体としての除去優先順位を判定するので、遮蔽物の判定を精度よく高速で行うことができる。
【0061】
この点、周辺物体の空間的な影領域を元に判定を行う手法も考えられるが、このように空間的位置関係を考慮した判定を行おうとすると、判定処理の計算量が膨大になり、処理に時間がかかってしまうが、本実施形態のように処理を簡素化することで、処理を高速化することができる。一方で、多因子統合評価を行うことで、精度の低下を抑制している。
【0062】
ここでは、一部が隠れている場合と、全体が隠れている可能性がある場合とで異なる処理を行ったが、その重要部ないし一定比率以上の部分が隠れているような場合には、一部が隠れている場合であっても全体が隠れている場合と同様の処理を行うようにしてもよい。
【0063】
以上の説明では、ロボットに適用した場合において、遮蔽物を自ら除去する例を説明したが、例えば、監視装置等においても本発明は適用でき、遮蔽物を自ら除去するのではなく、遮蔽物を指摘するようにしてもよい。また、遮蔽物に応じて自らの視点を移動させるようにしてもよい。
【図面の簡単な説明】
【0064】
【図1】本発明にかかる視覚探索方法を実施するロボットの概略構成を示すブロック図である。
【図2】図1のロボットが行う視覚探索処理のフローチャートである。
【図3】図2中の除去遮蔽物決定処理の詳細を示すフローチャートである。
【図4】隠れ問題が発生しうる状況下における対象物と他の物体との位置関係を示す図である。
【図5】対象物探索の一例における状況を示す図である。
【図6】図5の状況における対象物を示す図である。
【図7】遮蔽物が多面体の場合の影領域との位置関係を示す図である。
【図8】図7における投影面積等の算出処理を示すフローチャートである。
【図9】遮蔽物が立円筒の場合の影領域との位置関係を示す図である。
【図10】図9における投影面積等の算出処理を示すフローチャートである。
【図11】遮蔽物が横円筒の場合の影領域との位置関係を示す図である。
【図12】図11における投影面積等の算出処理を示すフローチャートである。
【図13】遮蔽物が球の場合の影領域との位置関係を示す図である。
【図14】定量評価処理のフローチャートである。
【図15】図14において用いるメンバーシップ関数の一例を示す線図である。
【符号の説明】
【0065】
1…制御部、2…ロボット、10…画像処理部、11…画像処理部、12…周辺環境認識部、13…位置姿勢認識部、14…経路探索部、15…駆動制御部、20…ステレオカメラ、30…角度センサ、40…アクチュエータ、51…急須、52、53…遮蔽物候補、70…テーブル。
【特許請求の範囲】
【請求項1】
視覚センサを用いて空間中の対象物を探索し、その空間位置を取得する視覚探索方法において、
前記視覚センサにより取得した画像から画像認識により画像内の物体の占める空間位置を取得する工程と、
認識した各物体の影となる領域を判定する工程と、
探索対象物の形状と判定した影となる領域の面積、視点からの距離に基づいて定量的に評価することで探索対象物を遮蔽しうる遮蔽物を判別する工程と、を備えていることを特徴とする視覚探索方法。
【請求項2】
前記遮蔽物が複数個存在する場合に、対象物探索のために前記遮蔽物を移動する優先順位を設定する工程をさらに備えていることを特徴とする請求項1記載の視覚探索方法。
【請求項3】
前記優先順位に基づいて前記遮蔽物を移動し、対象物が見つかるまで探索と遮蔽物移動を繰り返す工程をさらに備えていることを特徴とする請求項2記載の視覚探索方法。
【請求項1】
視覚センサを用いて空間中の対象物を探索し、その空間位置を取得する視覚探索方法において、
前記視覚センサにより取得した画像から画像認識により画像内の物体の占める空間位置を取得する工程と、
認識した各物体の影となる領域を判定する工程と、
探索対象物の形状と判定した影となる領域の面積、視点からの距離に基づいて定量的に評価することで探索対象物を遮蔽しうる遮蔽物を判別する工程と、を備えていることを特徴とする視覚探索方法。
【請求項2】
前記遮蔽物が複数個存在する場合に、対象物探索のために前記遮蔽物を移動する優先順位を設定する工程をさらに備えていることを特徴とする請求項1記載の視覚探索方法。
【請求項3】
前記優先順位に基づいて前記遮蔽物を移動し、対象物が見つかるまで探索と遮蔽物移動を繰り返す工程をさらに備えていることを特徴とする請求項2記載の視覚探索方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【公開番号】特開2007−241644(P2007−241644A)
【公開日】平成19年9月20日(2007.9.20)
【国際特許分類】
【出願番号】特願2006−62964(P2006−62964)
【出願日】平成18年3月8日(2006.3.8)
【出願人】(000003207)トヨタ自動車株式会社 (59,920)
【Fターム(参考)】
【公開日】平成19年9月20日(2007.9.20)
【国際特許分類】
【出願日】平成18年3月8日(2006.3.8)
【出願人】(000003207)トヨタ自動車株式会社 (59,920)
【Fターム(参考)】
[ Back to top ]