[go: up one dir, main page]

JP2006003263A - 視覚情報処理装置および適用システム - Google Patents

視覚情報処理装置および適用システム Download PDF

Info

Publication number
JP2006003263A
JP2006003263A JP2004181135A JP2004181135A JP2006003263A JP 2006003263 A JP2006003263 A JP 2006003263A JP 2004181135 A JP2004181135 A JP 2004181135A JP 2004181135 A JP2004181135 A JP 2004181135A JP 2006003263 A JP2006003263 A JP 2006003263A
Authority
JP
Japan
Prior art keywords
cad data
data
image information
point
points
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2004181135A
Other languages
English (en)
Inventor
Keiji Tanaka
敬二 田中
Koji Kikuchi
孝司 菊池
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2004181135A priority Critical patent/JP2006003263A/ja
Publication of JP2006003263A publication Critical patent/JP2006003263A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Length Measuring Devices By Optical Means (AREA)
  • Manipulator (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)

Abstract

【課題】
アズビルト3D−CADデータをリアルタイムで自動生成して利用することができる視覚情報処理装置及びその応用システムを提供する。
【解決手段】
移動可能な撮像装置の画像情報を入力とし、入力画像を処理して移動空間に存在する物体のCADデータを自動的に生成する機能と自動的に更新する機能を持たせる。また、CADデータの探索指令信号を入力とし、その指令信号に基づきCADデータを探索する機能と、探索したCADデータの情報を出力する機能を持たせる。更に、その視覚情報処理装置をロボット制御装置などと組み合わせて自律制御型の各種自動機械を構成する。
【選択図】 図141

Description

本発明は、視覚情報処理装置と該視覚情報処理装置を適用したシステムに関するものである。特にアズビルトの3D−CADデータの自動生成やロボット等自動機械の視覚誘導制御装置や移動検査装置、監視サービスシステムに好適な視覚情報処理装置である。
撮像装置で撮影して得た画像情報に基づいて3D−CADデータの生成手法としては、複数枚の写真から3次元の座標を求める手法がある。例えば、米国の3D Construction Companyで開発され、日本では(株)ケイ・ジー・ティーから販売されている3D Builderというソフトウェアなどがある。複数枚の写真間の対応する点をオペレータが一つ一つ入力すると、その点と撮影した撮像装置のカメラの位置と向きが3次元座標として計算され、対話形式でCADデータを作成したり、テクスチャマッピングを行なうことができる。
また、特開2002−32741号公報および特開2002−32742号公報には、初期画像で特徴点(ウィンドウ)を指定または特徴点位置設定データに基づき最初に特徴点を最初に設定すれば、連続的に入力される画像の中で特徴点を自動追跡させて、対応点をオペレータが一つ一つ入力しないで済むようにして、3次元座標を計算し、それらの点データを結んでテクスチャマッピングを行なうことができるシステムの概念が開示されている。
また、ステレオ計測の対応点探索の方法として、特公平8−16930号公報には、画像の相関をとって相関係数、残差自乗和によってマッチングの良くない箇所の対応点をオペレータが入力するようにした方法が開示されている。
特開2002−32741号公報 特開2002−32742号公報 特公平8−16930号公報 特開平02−137072号公報
3D Builder (株)ケイ・ジー・ティーから販売されているソフトウェア 情報通信電子学会論文誌 D−II Vol.J80−D−II No.5 PP.1136−1143、1997年5月 情報処理学会研究報告 コンピュータビジョンとイメージメディア、No. 131-022、2001年
しかしながら、複数枚の写真の中の対応する特徴点を正確に自動で探索させたり、オペレータが入力設定しないで済むようにしたり、テクスチャマッピングをしないで正確なCADデータを生成させることや、撮像装置の撮影カメラを積極的に移動させてCADデータをより正確に生成するようにすることや、ロボット等の制御にも利用できるように最初はそれなりの精度で生成させて撮影カメラを前後左右に近づけたり移動させることで精度を向上させていくことをリアルタイムで行なえるようにすることや、複数の撮影カメラを移動させて生成したCADデータを統合させることなどについては考えられていなかった。また、更にアズビルトのCADデータを生成した後あるいは生成しながら、任意のCADデータを探索させる機能と組み合わせて、ロボット等の自動機械の視覚誘導制御装置や自動車などのナビゲーションシステム、移動検査装置、監視サービスシステムなどに適用することや、自律制御型ロボットなどに適用することなども考えられていなかった。
本発明の目的は、アズビルト3D−CADデータをリアルタイムで自動生成可能とし、また、CADデータの探索機能と組み合わせて、ロボット等の各種自動機械の視覚誘導制御装置として、また、ナビゲーションシステム、移動検査装置、監視サービスシステムなどとして適用可能な視覚情報処理装置およびそのシステムを提供することにある。
発明者等は、前記目的を達成するための基本的な手段として、特願2002−368134号の明細書および図面に記載したような視覚情報処理装置を開発した。本発明は、この基本的な手段を基礎として更なる手段を提案するものである。
第1の手段は、移動可能な撮像装置で物体を撮影して得た画像情報を入力して前記物体のCADデータを生成する画像情報処理装置と、生成したCADデータを記憶する記憶装置を備えた視覚情報処理装置において、前記画像情報処理装置に、生成した新生CADデータが既に生成されている既成CADデータの更新対象となるかどうかを判別する更新対象判別処理機能と、更新対象となる既成CADデータと新生CADデータの精度を比較するCADデータ精度比較処理機能と、新生CADデータの精度が更新対象となる既成CADデータの精度よりも高いときには該既成CADデータを新生CADデータで更新するCADデータ更新処理機能をもたせたことを特徴とする。
この第1の手段は、視覚情報処理装置において、移動可能な撮像装置によって得た画像情報を入力とし、入力画像を処理して移動空間に存在する物体のCADデータを生成する機能をもたせたので、移動空間に存在するいろいろな物体のCADデータを容易生成することが可能となる。
また、生成された新生CADデータが既に生成されている既成CADデータの更新対象となるか否かの更新対象判別処理機能と、新生CADデータが既成CADデータの更新対象となる場合には、新生CADデータの精度と更新対象の以前に生成された既成CADデータの精度を比較して精度が良くなる場合には該CADデータを更新する機能ももたせたことによって、撮像装置が移動しながら物体に近づいて該物体のより詳細部の画像情報を得ることにより、物体のより詳細なCADデータを生成しながら更新することが可能となる。また、移動する撮像装置は、物体の上下左右および裏面の画像情報を入力することができるので、物体の正面だけの色や形状だけでなく、上下左右、更には裏面の色や形状までをCADデータとして生成することが可能となる。新生CADデータが既成CADデータの更新対象となるか否かの更新対象判別処理機能は、例えば、CADデータの生成後に、同じ個所に以前に生成されたCADデータが存在しない場合には更新対象とせずにそのままCADデータを追加し、存在する場合には更新対象とするものである。新生CADデータが既成CADデータの更新対象となった場合には新生CADデータの精度と更新対象の既成CADデータの精度を比較し、精度が良くなる場合にはCADデータを更新することにより、毎回同じ部位のCADデータが生成されてもより精度が良くなる場合以外には更新されることはなく、より精度が良くなる場合には更新されるので、この処理を繰り返し行なうようにすることで、移動空間に存在する物体は、そのCADデータが更新されるたびにより精度が良くなり、最終的には精度の良いCADデータを得ることができるようになる。このように、CADデータの精度が良くなる更新のみを行なうようになれば、CADデータは、撮像装置が対象から離れている段階で撮影して得た画像情報からはそれなりの精度で生成されるが、撮像装置が対象の近くへ寄って撮影した画像情報によれば生成精度をそれなりに上げることができるようになる。
運用においても、CADデータの精度が良くない場合には、例えば、遠方の対象に対する大雑把な位置決め制御にCADデータを利用することができるし、その後、近くに寄れば、精度の上がったCADデータを使用して更に精度の良い位置決め制御を行なうことが可能となるので、精度の良くない最初の段階からでもCADデータを連続的に有効に利用することが可能となる。
また、このようなCADデータの更新機能があれば、移動していない物体の同じ部位については、CADデータが何度生成されても同じようなCADデータが沢山蓄積されることはなく、同じような物体が幾つも生成される場合は、移動物体が含まれる場合であるので、トラッキングなどで移動前後の対応が取れるようにすることにより、煙や湯気などの動く対象物体の動きとか、移動するスポットライトあるいは移動する影などの追従も、CADデータが逐次更新されていくので、その更新履歴を参照することで、容易に行なうことが可能となる。
第2の手段は、前記第1の手段を適用して構成した視覚情報処理装置において、CADデータは輪郭線と実際の線を区別するようにすることである。
このような第2の手段は、前記第1の手段を適用して構成した視覚情報処理装置において、CADデータは、輪郭線と実際の線を区別するようにしていることから、物体の形状データを取り込む場合には輪郭線として検出された線もその物体の形状を示す線であるので、形状データとして蓄積しておくことができる。また、模様の線のように実際にそこに線が存在する場合の該線は、絶対的な位置の情報を有する形状データともなるし、その物体の模様を形成する模様の情報でもある。従って、生成されたCADデータで輪郭線と実際の線を区別して管理しておけば、形状データを取り扱いたい場合には、輪郭線と実際の線の両方を用いたより多くの情報を用いてより正確な形状を認識処理することが可能となる。
一方、パターンマッチングなどである模様を探索しようとする場合には、輪郭線のデータを一緒に取り扱うと模様にはない線が含まれてしまうので正しいマッチングがとれずに探索し難いが、そのような場合には、実際の線データのみを使用して探したい模様とのマッチングを行なえば、容易に模様を探索することができるようになる。それは、輪郭線と実際の線を区別して管理しておくので、必要な線の方だけを必要なときに効率良く使用することが可能となる。従って、模様のある物体と模様のない物体が混在する環境においても、CADデータの生成と探索を効率的に行なうことができるようになる。また、スポットライトや影の輪郭線は、それがライトが当たっている面の輪郭や当たっていない影の輪郭と分かっている場合には輪郭線になるが、光源や光源からの光を遮る物体が移動しなければ撮像装置が移動しただけでは変化しないので模様として取り扱える両方の特徴をもつので、分かった時点で実際(模様)の線から輪郭線に区別内容を変更しても良いし、光源や遮る物体が動くことが分かっていてもCADデータを利用する時間の間隔では動かない場合には、影をパターンマッチングの模様にするケースを考慮して、影等の輪郭線は、他の輪郭線や実際の線とは区別して管理するようにしても良い。
また、輪郭線と実際の線との区別は、異なる複数の視点から撮像して得た画像情報から当該線分の位置、具体的には線分を構成する特徴点を計測するわけであるが、輪郭線の場合は、異なる複数の視点から撮影して抽出した当該輪郭線は厳密には対象物の違う部位を同じ輪郭線として3次元計測するので、ステレオ計測であれば対応する点が厳密にはずれる(ずれに相当する誤差を有する)ことになる。実際線の場合には、そのずれは極めて小さくなる。そこで、その対応点のずれの程度を求めて、ずれが所定の大きさ以上の場合は輪郭線として、未満の場合は実際の線と区別することでも良いが、その対応点のずれの程度をCADデータに持たせて、実際の線と輪郭線と線の種類で区別するかわりに、そのずれの程度で当該線分を区別するようにしても良い。
第3の手段は、前記第1〜第2の手段を選択的に適用して構成した視覚情報処理装置において、CADデータに該CADデータを生成した時間に関する情報をもたせるようにすることである。
このような第3の手段は、前記第1〜第2の手段を選択的に適用して構成した視覚情報処理装置において、CADデータに生成された時間に関する情報をもたせるようにしているので、生成されたCADデータを参照したときに該CADデータが生成された時刻を参照することができるようになる。従って、例えば、現在生成した同じ場所のCADデータと前に生成されていたCADデータを比較したときに、違いがあった場合には、現在の時刻と前のCADデータに登録されていた時刻とから何時間前からの状態から変化したかということを認識することが可能となる。CADデータを生成しながら生成されているCADデータを参照する場合に、生成時刻がCADデータにあれば、どちらが先に生成されたCADデータかも確認することができる。
第4の手段は、前記第1〜3の手段を選択的に適用して構成した視覚情報処理装置において、移動可能な撮像装置からの画像情報を入力とし、入力した画像情報を処理して移動空間に存在する物体のCADデータを自動的に生成する機能を備え、このCADデータを自動生成する機能は、同時刻に取り込んだ複数の撮像装置の画像情報内の特徴点の対応付けを画像情報の特徴部位から行いステレオ計測して、ステレオ計測された点の中で安定な少なくとも3点をトラッキング追従させることにより撮像装置の移動による画像情報内の対応点を関係付けするようにして3次元の座標データを求める方法を実行することによって実現するようにしたことである。
第4の手段では、前記第1〜3の手段を選択的に適用して構成した視覚情報処理装置において、移動可能な撮像装置の画像情報を入力とし、入力した画像情報を処理して移動空間に存在する物体のCADデータを自動的に生成する機能を備え、このCADデータを自動生成する機能は、同時刻に取り込んだ複数の撮像装置の画像情報内の特徴点の対応付けを画像情報の特徴部位から行いステレオ計測して、ステレオ計測された点の中で安定な少なくとも3点をトラッキング追従させることにより撮像装置の移動による画像情報内の対応点を関係付けするようにして3次元の座標データを求める方法を実行することによって実現するようにしたので、まずステレオ計測によって最初に撮影した画像情報の中の特徴点の3次元位置の計測が容易にでき、一度にたくさんの特徴点の3次元位置の計測ができるので、その中からもっとも計測時の精度良い安定した3点が撮像装置が移動した次の時点で撮影した画像情報の中からトラッキング抽出することができれば、3点の3次元位置の既知データがあるので移動前のカメラ座標系と移動後のカメラ座標系の座標変換を行う計算式の全ての係数は既知となるので、移動後の画像情報で計測した移動後のカメラ座標系での全ての特徴点の3次元位置情報は容易に移動前のカメラ座標系の位置情報に変換することが容易に可能となる。また、少なくとも3点のトラッキングを行うときに2次元の画像情報の中で対応する点を探索することもできるが、対応点候補が複数残ってその中の一つをプログラムにより自動的に特定できないような場合にも移動後の位置での全特徴点の3次元位置を移動後のカメラ座標系でステレオ計測で求めることができるので、複数候補の対応点の中より3点を選択して座標変換を行う計算式の全て係数を求めてその変換計算式で移動後のカメラ座標系の全特徴点を移動前の座標系に変換したときに一致する特徴点の数が一番多い3点の組み合わせが正しい対応する3点であることを容易に判定することができるので、候補点全ての3点の選択組み合わせを確認することで正しい座標変換計算式を容易に得ることができるようになり、撮像装置が移動して新たに画像情報を取り込んでいくことを繰り返すことによって、3次元空間に存在する物体の3次元CADデータを容易に生成することができるようになる。更に、同じ点と思われる特徴点を、再度、3次元計測した場合は、計測した条件に基づき計測精度がより向上する場合には当該特徴点の計測した位置情報を更新するようにすれば、撮像装置を移動して計測対象に近づくことによってより精度の良い3次元CADデータを自動的に生成できるようになる。また、毎回撮像装置が移動するごとにステレオ計測で特徴点の3次元座標を計測する方法のみでも良いが、本手段を用いれば、以前に撮影した画像情報を残しておき、前述のトラッキングによって残しておいた画像情報を撮影した位置から十分離れた位置へ移動したときの撮像画像情報を用いてあらためて3次元計測を行うこともできるので、より計測精度を向上させることができる。この場合、撮像装置の位置がステレオ計測を行っている撮像装置間の間隔より十分広い間隔で再度3次元計測ができるので、計測精度を容易に向上させることができる。
第5の手段は、移動する物体により画像情報内の特徴点位置が変化する、あるいは撮像装置が移動するために画像情報内の特徴点位置が変化する、あるいは複数の撮像装置で撮影することにより各撮像装置から得られる画像情報内での特徴点の位置が変化する特徴点の対応付けを行う対応点の探索方法において、撮像装置から得られる画像情報を特徴点を結ぶ色境界線分から構成される2次元のCADデータに変換して、色境界線分が区分する少なくとも背景領域を除く領域内の特徴部位の類似度を比較して高いものを対応点候補として絞り込むようにしたことである。
この第5の手段では、移動する物体により画像情報内の特徴点位置が変化する、あるいは撮像装置が移動するために画像情報内の特徴点位置が変化する、あるいは複数の撮像装置で撮影することにより各撮像装置から得られる画像情報内での特徴点の位置が変化する特徴点の対応付けを行う対応点の探索方法において、撮像装置から得られる画像情報を特徴点を結ぶ色境界線分から構成される2次元のCADデータに変換して、色境界線分が区分する少なくとも背景領域を除く領域内の特徴部位の類似度を比較して高いものを対応点候補として絞り込むようにするので、撮影対象に対する撮像装置の位置や角度によって変形する背景を含む局部的2次元の画像情報を使用しないで十分な確度で対応点の探索を容易に行うことができるようになる。具体的にその容易さが実現される作用を説明する。2次元のCADデータの線分で構成される線画の局部的な特徴部位とは線分の特徴点の位置や線分が境界線として線を引いた両側の色情報や線分の繋がりの状態などである。位置に関しては、例えば移動するカメラの微小時間間隔で画像を取り込むようにした場合は、撮像装置の移動速度にも関係するが特徴点の移動範囲は前回撮影した特徴点の近くの微小領域内である。画像情報を取り込む周期が小さくなればなるほどその微小領域は小さくなるので対応点を探索する場合の候補点の数はより多く絞りこむことが可能となる。また、一方、ステレオ計測のように、あらかじめ撮影位置の異なる撮像装置の位置関係が既知の場合には、探索する対応点は必ず探索する相手側の特徴点の位置に関連する所定の直線上に存在するので、その直線上にある点を候補点として絞り込むことができる。そして更に、その候補点の中から特徴点が構成する線分の左右の色情報が一致するかどうかで対応点を更に絞り込むことができる。このとき、かならずしも両側の色情報が一致するという条件のみでふるいわけをするのではなく、片側でも一致すれば十分に対応点の候補となる。それは、当該線分が実際線である場合は両側の色情報が一致するが、当該線が輪郭線である場合には、どちらか一方は背景の色情報であるためにかならずしも一致しない。それは、背景の色情報は、その輪郭を撮影する角度によってその輪郭線の隣に見える背景が違ってくるためである。しかし、当該線分のかならず一方の側は輪郭を生成する手前の物体の色情報になるために、撮影する角度が変わっても対応する点の色情報は一致する。従って、両側の色情報が一致する場合にはそれは対応点候補となり、また、片側の色情報が一致する場合にも対応点候補となる。色情報は、1画素オーダーの局部的な領域で類似度を比較する場合には境界の反対側の色情報になるが、局部領域を数画素のオーダーにして処理を行う場合には、当該点から広がる境界線分が構成する微小領域ごとの相関をとって背景の微小領域を除く部分の微小領域の相関値の高い微小領域の存在する対応候補の点を対応点と判別するようにしても良い。以上のように、位置と両側あるいは境界線の微小領域の色情報で絞り込んだ対応点の候補点について、更に線分情報の繋がり情報、繋がっている線分の色情報が一致している場合には、それはより対応点の候補として絞り込めることになる。それでステレオ計測などのステレオ計測のように、あらかじめ撮影位置の異なる撮像装置の位置関係が既知の場合には、絞り込まれた対応点候補の中より3点の組み合わせを順次行って座標変換計算式の係数を求めて多くの特徴点が一致する3点の組み合わせが確実に正しい対応のとれた3点であるということから、正しい対応点を精度良く容易に得られるようになる。また、ここで、ステレオ計測で対応点が一致した場合でも錯覚で一致している場合もあるので、引き続き撮像装置が移動して異なる視点からステレオ計測しても同じように対応点として一致している場合にはそれは安定な点として識別管理するようにして次のトラッキングするときに用いる3点に優先的に選ぶようにするのが良い。
一方、ステレオ計測でなくトラッキングによる計測の場合には、サンプリング速度を早くして探索範囲を微小にすることによって対応点候補を絞り込むのが有効である。しかしながら、処理速度との関係でそれほど高速化が困難の場合には、同様にある範囲の位置情報、線分の両側の色情報、更には線分の繋がり情報や周囲との位置関係の類似性より絞り込んで、最終的には対応点候補の中より総合的な一致度の高いものから3点を選択して座標変換計算式の係数をもとめて他の対応候補のある全ての点を同じ座標系に変換したときに一致する対応点候補の数の多い3点が最も確実な対応点であると判別して処理を連続継続させる。また、ステレオ計測のトラッキングの場合には、対応点探索の前にステレオ計測により3次元の位置情報を求めてトラッキングの移動前後のカメラ座標系により計測した3次元の特徴点群の3次元CADデータ上で特徴点群のマッチング性の一番高い座標変換計算式の係数を正しい変換係数とすることでトラッキングを精度良く継続させることが可能となる。このようにすれば容易に確実に対応点の探索を自動で行うことが可能となる。ここで、確からしい対応点が3点得られなかった場合は、同撮像装置といっしょに動くように加速度センサやジャイロセンサを設けてそれらのセンサの情報により特徴点のトラッキングができない期間の撮像装置の移動情報を得るようにして補間するようにするのが良い。
第6の手段は、前記第5の手段で比較する特徴部位の類似度は、対応点候補から引いた他の特徴点までのベクトルの類似度、あるいはベクトルの類似度とベクトル先端の特徴点の有する色情報の類似度を用いて類似度が高いものを対応点として絞り込む方法と組み合わせるようにすることである。
この第6の手段では、前記第5の手段で比較する特徴部位の類似度は、対応点候補から引いた他の特徴点までのベクトルの類似度、あるいはベクトルの類似度(同じ方向で同じ長さのベクトルの本数の大小)とベクトル先端の特徴点の有する色情報の類似度(上下左右の色情報の一致度)を用い類似度が高いものを対応点として絞り込む方法と組み合わせるようにするので、2次元のCADデータに置き換わった画像情報(データ)のマッチング処理を高速に行うことが可能となる。ここで、従来の2次元配列の画像情報どおしでマッチングする場合は、2次元の相関係数を求めたり、1回のマッチング計算に多くの時間を必要とするが、データ量は、CADデータに置き換えられた時点で、2次元の画像情報量から特徴点の数だけに低減されており、それらのベクトルは、方向と距離の2つの数値を比較することでベクトルの類似度は求められるので、2次元の画像情報のマッチング計算と比較して簡単になる。また、ベクトルの方向と距離の他にベクトル先端の特徴点の色情報の類似度を比較する場合でも特徴点1点の周辺の色情報のみであり、1点の対応点候補から引くベクトルの本数が数十から数百本になったとしても2次元の画像での相関係数を求める計算量よりは少なくできるので、正確なマッチングをより早く容易に行うことができるようになる。この場合も、第5の手段で述べたように、背景と背景でない色境界線分の区分けする領域ごとのベクトルの類似度を比較するようにする。
第7の手段は、前記第5,6の手段の色境界線分の抽出方法は、輝度信号などの画像情報の変曲点の繋がりを色境界線分として行うようにしたことである。
この第7の手段では、前記第5,6の手段の色境界線分の抽出方法は、輝度信号などの画像情報の変曲点の繋がりを色境界線分として実行するようにするので、感度良く、また、安定に線分を抽出することができる。ここでの輝度信号とは、白黒画像の輝度信号は勿論であるが、明るさが距離情報に対応した輝度信号でも良いし、カラー画像情報の色情報(R,G,Bなど)の輝度信号でも良いし、X線CTで物体内部の透過率を計測した輝度信号でも良い。色情報の場合のように複数の輝度情報を扱う場合には、同じ処理で得られる特徴点を合成して使用するようにする。変曲点は、左右の色情報の変化率が変わる部位であるために、照明条件が変わって全体的に明るさが変化しても、また、照明の明るさが連続的に変る条件においても撮影対象物に変曲点が生じるような部位が存在する個所には変曲点が生じるので、照明条件が多少変化しても、その影響を受けないで変曲点が生じるような部位が存在する個所は線分として安定に容易に検出できるようになる。また、感度は、撮影画像全体で一定感度にしても良いが、局部的に周囲の輝度情報に応じて変曲点を変曲点として検出する閾値を変化させて画面全体でどこでも最高の感度で検出できるようにして良い。また、処理速度の観点から、撮影画像情報の中の検出線分の本数が所定の数量程度になるように感度を自動調整するようにしても良い。そうすることによって、常に適当な量の線分(特徴点)が得られるのでトラッキングなどを安定して連続に行うことができ、かつ、線分の物量が処理速度以上に増えることも抑制することができる。特徴点の抽出は、安定に行なわれる必要があるので、抽出した変曲点は、照明のみでなく撮影視点によっても微妙に変化するので、安定化するために変曲点から線分を生成するときに最小二乗法などでフィッティリングさせて線分を生成させても良いし、線分を延長して延長した先の線分の交点を特徴点とするようにしても良い。また、生成する線分は、閉ループが生成されれば面データがたくさん定義できるので、2次元の撮影画像の色グループ化処理を行い撮影画像情報の全体をもれなく閉ループの色領域境界線分で区分けする処理を行い、その境界線分の分岐点や鋭角な曲がり点などを特徴点としても良いが、更に、その境界線分に変曲点から生成させた線分を対応させて境界線分を参考にして閉ループの線分をよりたくさん生成するようにしても良い。
第8の手段は、撮像装置から得られる画像情報を直接あるいは間接的に取り込んで該画像情報内の特徴点を抽出する方法において、特徴点として線分の特徴点と、閉ループ図形の特徴点の両方を特徴点として抽出するようにしたことである。
この第8の手段では、撮像装置から得られる画像情報を直接あるいは間接的に取り込んで該画像情報内の特徴点を抽出する方法において、特徴点として線分の特徴点と、閉ループ図形の特徴点の両方を特徴点として抽出するようにするので、閉ループを生成していない線分は、線分の端点や分岐点や鋭角の折曲がり点などが特徴点として抽出されて3次元座標の計測やトラッキングに使用されるだけではなく、閉ループ図形の境界線分であり、端点が存在しないで、かつ、分岐点もなく、かつ、鋭角の折曲がり点もないと特徴点を抽出することができないが、そういう場合には、基本図形の例えば中心とか、基本図形の向きなどを組み合わせて閉ループ図形の特徴点とすれば、閉ループ図形が混在する画像情報の中で数多くの特徴点を抽出して3次元座標の計測やトラッキングに使用することができるようになる。
また、線分の例えば端点などを特徴点として検出してトラッキングを続けている途中で線分が閉ループに繋がった場合には、閉ループの基本図形の特徴点(図心とか向きの情報など)に切り替えてトラッキングを継続して行うこともできるようになる。再度、また、途中で閉ループが切れた場合には、端点が現れるので端点を特徴点としたトラッキングに切り替えて継続トラッキングを行うことができるようになる。
第9の手段は、前記第1〜4の手段を選択的に適用して構成した視覚情報処理装置において、CADデータに対応付けてカメラの撮影位置と画像情報を記録するようにしたことである。
この第9の手段では、前記第1〜4の手段を選択的に適用して構成した視覚情報処理装置において、CADデータに対応付けてカメラの撮影位置と画像情報を記録するようにするので、抽出される線分データの数が少ない場合や閉ループを構成する線分データが定義する面データがたくさん生成されない場合でも撮影対象の色情報(テクスチャ情報)を利用してそれまで生成されたCADデータを表示したり、利用したりすることが容易にできるようになる。具体的には、線分データのCADデータをモニタ画面に表示する場合に、背景にその線分を計測したときのテクスチャ情報(具体的は2次元の画像情報)を重ねて表示すれば、十分な情報がCADデータに変換生成されていない場合でもモニタ画面を見る操作者にはCADデータの線分が画像上のどの線に相当するCADデータなのかが容易に分かるようになる。また、CADデータのもつ3次元位置情報と画像情報の色情報を組み合わせてロボットの制御や検査結果データの編集などにプログラム上で使用することも可能となる。テクスチャである画像情報は、撮像装置の位置と対応付けて記録しているので、モニタ画面に表示するときに、表示するときの視点の位置に画像データを変換して表示すれば、違和感のない背景を表示させることができる。また、各線分データに対応する画像データが割り付けられるようにすれば、モニタ画面の視点の位置に一番近い位置で撮影したテクスチャ(画像情報)を表示に利用することができるようになる。基本的には面に対する法線方向から撮影した画像情報を記録するようにするが、まだ、面が生成されていない場合には、複数の線分から推定できる推定面に対する法線方向から撮影した画像情報を記録するようにする。何れの場合にも、全て法線方向から撮影した画像情報を記録できるわけではないので、撮像装置が移動しながら撮影を繰り返す中で、より法線方向に近い画像情報、より近くから撮影した画像情報が得られた場合には、古い画像情報を消去して新しい画像情報にテクスチャ情報も随時更新するようにして良い。
第10の手段は、前記第1〜第9の手段を選択的に適用して構成した視覚情報処理装置および視覚情報処理システムにおいて、画像情報処理装置は、移動する撮像装置の位置または姿勢あるいはその両方の情報を求める機能と、求めた位置情報あるいは姿勢情報あるいはその両方を出力する機能を有するようにすることである。
このような第10の手段は、前記第1〜第9の選択的に適用して構成した視覚情報処理装置および予めCADデータを有している視覚情報処理装置あるいはそれらの視覚情報処理装置を適用した視覚情報処理システムにおいて、画像情報処理装置は、移動する撮像装置の位置または姿勢あるいはその両方の情報を求める機能と、求めた位置情報または姿勢情報あるいはその両方を出力する機能を有するので、撮像装置の位置および姿勢情報を別のCPU等のアプリケーションシステム側で利用することが可能となる。ロボット等の自動機械の視覚誘導制御装置として適用する場合には、対象物体にアクセスするロボットハンドなどの先端に撮像装置を取り付けることで、この撮像装置とロボットハンドの相対取り付け位置関係は既知であることから、撮像装置の位置と姿勢がわかればロボットハンドの位置と姿勢がわかるようになり、生成したCADデータの移動空間で任意の目標地点までロボットハンドを誘導移動制御することが容易となる。
第11の手段は、前記第1〜第10の手段を選択的に適用して構成した視覚情報処理装置および予めCADデータを有している視覚情報処理装置あるいはそれらの視覚情報処理装置を適用した視覚情報処理システムにおいて、画像情報処理装置は、CADデータの探索指令信号を入力とし、その指令信号に基づきCADデータを探索する機能と、探索したCADデータの情報を出力する機能を有するようにすることである。
このような第11の手段は、前記第1〜第10の手段を選択的に適用して構成した視覚情報処理装置および予めCADデータを有している視覚情報処理装置あるいはそれらの視覚情報処理装置を適用した視覚情報処理システムにおいて、画像情報処理装置は、CADデータの探索指令信号を入力とし、その指令信号に基づきCADデータを探索する機能と、探索したCADデータの情報を出力する機能を有するので、別のCPU等のアプリケーションシステム側で必要とする情報、例えば、目標とする対象物体のCADデータを探索させ、探索した対象物体のCADデータの情報として、その位置と姿勢の情報を探索結果として得るようにすれば、アプリケーションシステム側で、例えばロボットハンドをその対象物体を掴むような位置と姿勢に誘導制御することが可能となる。更に、ロボットハンドのCADデータを定期的に探索させ、探索したロボットハンドのCADデータの情報として、その位置と姿勢を探索結果として得るようにすれば、その情報をロボットハンドの位置と姿勢のフィードバック制御へ利用することも可能となり、ロボットハンドのアーム部分の撓みとかロボットハンドのベースの位置ずれ等を補正した誘導制御を行なうことが可能となる。また、目標とする対象物体のCADデータの探索も定期的に行なうことにより、目標とする対象物体が移動している場合でも、リアルタイムに目標物体の位置と姿勢の情報が得られるので、アプリケーションシステムは移動する目標物体に対してもロボットハンドをアクセスさせて該目標物体を掴む動作を誘導制御することが可能となる。
第12の手段は, 前記第11の手段を有する視覚情報処理装置において、3次元CADデータを生成する範囲を指定する指令情報の入力インターフェースを設けたことである。
この第12の手段では, 前記第11の手段を有する視覚情報処理装置において、3次元CADデータを生成する範囲を指定する指令情報の入力インターフェースを設けるので、外部から範囲を指定する指令情報を入力することにより容易に3次元CADデータを生成する範囲を必要な範囲のみに限定できる。従って、処理速度の高速化を図ることができるようになる。処理速度は抽出される特徴点(線分)の量にもよるが、処理範囲が入力画像全体の場合が最も処理時間はかかる。一方,処理範囲を限定、例えば、赤い動く物体の周囲のみを処理範囲に指定すれば、処理の範囲は画像全体の処理範囲より小さくできるので、その分処理の周期は高速化できるようになる。処理が高速化すれば撮像装置の移動速度が速くなってもより追従しやすくなる。範囲を指定するコマンドとしては、複数用意しておいて良い。例えば、2次元画像情報上で差分で変化の生じた部位を抽出してその周辺のみを処理の対象範囲とするとか、2次元画像情報上で動いているもの、あるいは具体的に早く動くもの、ゆっくり動くものを移動速度とともに指定して、検出した物体の周辺のみを処理の範囲とするとか、2次元画像情報上で反射で光るものを検出した場合にその周辺を処理の範囲とするとか、形、色、大きさを具体的に指定して該当する物体を2次元画像情報上で検出し、あるいは3次元CADデータに変換した3次元CADデータ上で検出するようにしてその周辺を処理の範囲とするとか、例えば指向性マイクで音などの概略方向が検出できる場合には、処理の範囲を直接座標で指定して指定された座標エリア内を処理の対象とできるようなコマンドを用意して良い。
第13の手段は、前記第11,12の手段を選択的に適用して構成した視覚情報処理装置において、CADデータの探索指令情報に2次元の探索指令と3次元の探索指令の少なくとも2種類の探索指令を設けたことである。
この第13の手段では、前記第11,12の手段を選択的に適用して構成した視覚情報処理装置において、CADデータの探索指令情報にマッチング精度は不十分でも処理速度の速い2次元の探索指令と処理の時間はかかるがマッチング精度の高い3次元の探索指令の少なくとも2種類の探索指令を設けたので、最初に2次元の探索指令で高速に探索候補を絞り込んでその後に3次元の探索指令でより精度良くマッチングを行い探索候補を絞り込むこが容易にできるようになるので、より高速に探索処理を行うことができるようになる。
第14の手段は、前記第11〜13の手段の探索機能は、探索する2次元あるいは3次元のCADデータの対応点候補から引いた他の特徴点までのベクトルの類似度あるいはベクトルの類似度とベクトル先端の特徴点の有する色情報の類似度を用い類似度が高いものを対応点として絞り込む方法と組み合わせるようにすることである。
このような第14の手段では、前記第11〜13の手段の探索機能で、探索する2次元あるいは3次元のCADデータの対応点候補から引いた他の特徴点までのベクトルの類似度あるいはベクトルの類似度(同じ方向で同じ長さのベクトルの本数の大小)とベクトル先端の特徴点の有する色情報の類似度(上下左右あるいは前後上下左右の色情報の一致度)を用い類似度が高いものを対応点として絞り込む方法と組み合わせるようにするので、2次元あるいは3次元のCADデータでのマッチング処理を高速に行うことが可能となる。ここで、従来の線画どおしでマッチングする場合などは、ポテンシャルマッチング法などを用いて高速に行う手段はあるが、1回のマッチング計算に多くの時間を必要とする。ここでのベクトルマッチングは、ベクトルは方向と距離の2つの数値を比較することでベクトルの類似度は求められるので、その他のマッチング手法の計算量と比較して簡単になる。また、ベクトルの方向と距離の他にベクトル先端の特徴点の色情報の類似度を比較することで、よりマッチング精度を上げることができる。また、特徴点1点の周辺の色情報のみであり、1点の対応点候補から引くベクトルの本数が数十から数百本になったとしても計算量はより少なくできるので、正確なマッチングをより早く容易に行うことができるようになる。
第15の手段は、前記第11〜14の手段を選択的に適用して構成した視覚情報処理装置あるいはそれを適用したシステムにおいて、あらかじめ少なくとも3次元CADデータの部品形状と各部品との結合条件をデータベースとして設けておき、探索時に当該データベースの情報より部品の結合条件の所定のルールに従って部品の結合条件を変えて探索CADデータを生成して探索するようにしたことである。
この第15の手段では、前記第11〜14の手段を選択的に適用して構成した視覚情報処理装置あるいはそれを適用したシステムにおいて、あらかじめ少なくとも3次元CADデータの部品形状と各部品との結合条件をデータベースとして設けておき、探索時に当該データベースの情報より部品の結合条件の所定のルールに従って部品の結合条件を変えて探索CADデータを生成して探索するようにしたので、人間の手足や顔、車のドアの開閉状態、携帯電話のアンテナの出し入れ状態、パワーショベルのバックホーの動作状態などで、探索しようとしている物体の形状がいろいろな形状に変わる物体においても、動きうる部品とその動き方のすべての組み合わせ状態を変化させて、現在撮影している画像情報に写っている形状とマッチング処理ができるので、いろいろな形状をとりうる物体の探索も容易に実現できるようになる。ここで、動く部品のすべての可動状態の組み合わせを微小量の可動変化で行うと組み合わせ数が多くなることから、大まかな動きで代表的な変形形状でマッチング探索を行い、候補を絞り込んだ後に可動部を微小量づつ変化させてよりマッチング精度を上げて更に候補を絞り込むようにして良い。あらかじめあらゆる部品の可動状態の参照モデルを用意しておく方法もあるが、可動状態を細かく変化させて多くの種類を用意しようとするとデータ量が多くなるが、マッチング時に生成するようにすることによってデータベースのデータ量を少なくでき、かつ多くの細かい可動状態の参照モデルによるマッチングを行うことができるようになる。また、部品の可動状態をいろいろと変えながらマッチング処理を行ってマッチング度が最も高くなる可動状態を探索することによって、探索対象物体の可動部の状態を特定することも可能となる。例えば、ドアの開閉度合いとか、人の顔であれば、口の開きぐあいなども探索処理の結果得ることが可能となる。
第16の手段は、前記第11〜15の手段を選択的に適用して構成した視覚情報処理装置あるいはそれを適用したシステムにおいて、探索した物体に対する判断機能とその判断機能を使用するための指令情報を入力するインターフェースと判断結果の情報を出力するインターフェースを設けたことである。
このような第16の手段では、前記第11〜15の手段を選択的に適用して構成した視覚情報処理装置あるいはそれを適用したシステムにおいて、探索した物体に対する判断機能とその判断機能を使用するための指令情報を入力するインターフェースと判断結果の情報を出力するインターフェースを設けているので、探索指令を出して探索結果を取得して探索結果を判定して再度探索指令を出して再探索させるという繰り返しの処理を視覚情報処理装置の中で行えるようにするので目的に合致する探索処理をより高速に行うことができるようになる。
第17の手段は、移動検査装置において、少なくとも撮像装置と撮像装置からの画像情報を処理して3次元CADデータを生成するとともに撮像装置の位置を求める機能を有する視覚情報処理装置あるいはあらかじめ3次元CADデータを有して移動しながら3次元CADデータの中での撮像装置の位置を求める機能を備えた視覚情報処理装置を設けて、3次元CADデータの中の撮像装置の位置情報より特定する検査対象部位に相当する3次元CADデータの部位と対応付けして検査結果のデータを記録するようにしたことである。
この第17の手段では、移動検査装置において、少なくとも撮像装置と撮像装置からの画像情報を処理して3次元CADデータを生成するとともに撮像装置の位置を求める機能を有する視覚情報処理装置あるいはあらかじめ3次元CADデータを有して移動しながら3次元CADデータの中での撮像装置の位置を求める機能を有する視覚情報処理装置を設けて、3次元CADデータの中の撮像装置の位置情報より特定する検査対象部位に相当する3次元CADデータの部位と対応付けして検査結果のデータを記録するようにしたので、後で検査結果を確認するときに確認したい検査対象部位の検査結果を容易に参照できるように、検査結果データを検査対象部位と対応付けして整理する手作業も不要にすることができる。また、繰り返し同じ箇所の検査を行う場合には、同じ場所の検査結果の変化を比較するとか、変化のトレンドも容易に確認することができるようになる。検査結果には時刻データも一緒に記録するようにして良い。
第18の手段は、前記第17の手段を用いた移動検査装置において、あらかじめ移動検査装置の計画移動経路を設定する機能と、あらかじめ設定した計画移動経路と実際の移動経路の誤差を3次元CADデータの中での撮像装置の位置情報より求める機能と、その誤差を小さくするように移動検査装置の移動制御を行うためのルールを設定する機能と、その移動制御のルールに基づき移動検査装置の移動制御を実行する制御部をもたせたことである。
この第18の手段では、前記第17の手段を用いた移動検査装置において、あらかじめ移動検査装置の計画移動経路を設定する機能と、あらかじめ設定した計画移動経路と実際の移動経路の誤差を3次元CADデータの中での撮像装置の位置情報より求める機能と、その誤差を小さくするように移動検査装置の移動制御をおこなうためのルールを設定する機能と、その移動制御のルールに基づき移動検査装置の移動制御を実行する機能をもたせるので、移動検査装置を操作者が操作することなく自動で必要な範囲の検査を行うことができるようになる。ここで、計画移動経路と実際の移動経路の誤差を小さくするように移動検査装置の移動制御をおこなうためのルールの設定を容易にできるようにしておけば、制御性能の改善も容易に行なうことができるようになる。
第19の手段は、ロボットあるいいはロボットの制御装置において、撮像装置の画像情報を入力とし入力画像を処理して移動空間に存在する物体のCADデータを生成する視覚情報処理装置を適用して、ロボットの動作する環境の3次元CADデータを生成してCADデータの中のロボットの現在位置を特定する手段と、ロボットからの各種センサ信号よりロボットの現在の姿勢、動作状態を特定する手段と、前記ロボットの動作する環境の3次元CADデータと前記CADデータの中のロボットの現在位置と前記ロボットの現在の姿勢、動作状態をロボットのシミュレーションモデルへ反映する手段と、ロボットの動作をシミュレーションする手段と、そのシミュレーション手段に移動計画に基づくロボットの動作指令信号を入力する手段と、シミュレーション結果が所定の評価レベルになったか否かを判断する手段と、シミュレーション結果が所定の評価レベルに至らなかった場合にシミュレーション結果に基づきロボットへの動作指令信号を修正する手段とを設けて、所定の条件において最も評価レベルが良好なロボットへの動作指令信号をロボットへ出力するようにすることである。
このような第19の手段は、ロボットあるいいはロボットの制御装置において、撮像装置の画像情報を入力とし入力画像情報を処理して移動空間に存在する物体のCADデータを生成する視覚情報処理装置を適用して、ロボットの動作する環境の3次元CADデータを生成してCADデータの中のロボットの現在位置を特定する手段と、ロボットからの各種センサ信号よりロボットの現在の姿勢、動作状態を特定する手段と、前記ロボットの動作する環境の3次元CADデータと前記CADデータの中のロボットの現在位置と前記ロボットの現在の姿勢、動作状態をロボットのシミュレーションモデルへ反映する手段と、ロボットの動作をシミュレーションする手段と、そのシミュレーション手段に移動計画に基づくロボットの動作指令信号を入力する手段と、シミュレーション結果が所定の評価レベルになったか否かを判断する手段と、シミュレーション結果が所定の評価レベルに至らなかった場合にシミュレーション結果に基づきロボットへの動作指令信号を修正する手段とを設けて、所定の条件において最も評価レベルが良好なロボットへの動作指令信号をロボットへ出力するようにするので、そしてこの処理は高速にリアルタイムで行うようにするので、ロボットが飛んだり跳ねたりするダイナミックな移動制御においても、ロボットが飛んでいる途中に腕を振ったり、胴をひねったならばどのように姿勢が変わるかもシミュレーションすることができて、着地するまでに計画する姿勢にもっていくための最適な動作もシミュレーション(ここでいうシミュレーションは物体に作用する力、反力を求めて、速度、加速度、変位を求めるダイナミックなシミュレーションを意味している)で求めることができるので、ロボットを常に計画どおりに制御できる動作指令信号を出力することができ、安定にダイナミックなロボットの制御を行うことが可能となる。このような処理を行うロボットの制御装置に、少なくとも前記第1〜18の手段で述べたような視覚情報処理装置あるいは視覚情報処理システムを適用することで、ここで行うシミュレーションに用いるロボットの現在いる環境の3次元CADデータはアズビルトのCADデータがリアルタイムに生成され、またその中のロボットの現在位置と姿勢情報についてもリアルタイムで得ることができるので、シミュレーション結果は現在いるロボットの実際の環境に基づき適切な制御データが得られ安定にリアルタイムの制御が実現可能となる。
第20の手段は、マニピュレータ,移動ロボット,文字読み取り装置,物体認識装置,計測装置,CADデータ生成装置,ナビゲーション装置,検査装置,ピッキング装置,自律制御型ロボット,監視装置,自動車,船,飛行機などのシステムに、前記第1〜第19の手段を選択的に適用して構成した視覚情報処理装置あるいはそれを適用した視覚情報処理システムを適用することである。
このような第20の手段は、特定部位の位置決めを行なうロボットあるいはマニピュレータにおいては、その制御装置に前記第1〜第19の手段を選択的に適用して構成した視覚情報処理装置あるいはそれを適用した視覚情報処理システムを適用するので、例えば、遠隔操作ロボットなどでは、手先の自動位置決めを行なうシステムを容易に構築することができる。具体的には、例えば、手先に撮像装置を取り付けて該撮像装置の位置と姿勢情報を得れば、その情報に基づいて手先の位置を目標とする位置へ修正制御することが可能となる。また、手先がアクセスしようとする対象物体をCADデータから探索してその対象物体の位置と姿勢情報を得るようにすれば、撮像装置と対象物体の両方の位置と姿勢が分かるので、より正確に手先を対象物体にアクセスするように誘導制御することが可能となる。また、手先に撮像装置を付けられない場合には、手先を撮影する撮像装置を別に設けることで、その撮像装置の画像情報で手先のCADデータの探索を行って手先の位置と姿勢を直接に検出して制御に利用することも可能となる。
また、移動ロボットにおいては、前記第1〜第19の手段を選択的に適用して構成した視覚情報処理装置あるいはそれを適用した視覚情報処理システムを適用しているので、移動ロボット自身の位置決め、姿勢制御を容易に行なうことができるようになる。例えば、移動ロボットに撮像装置を搭載すれば、撮像装置の位置と姿勢情報は移動ロボットの位置と姿勢の情報を示すことになるので、その情報に基づいて移動ロボットの位置や姿勢を制御することで、移動ロボットの位置決め制御,姿勢制御,誘導制御などを容易に行なうことができるようになる。水中を浮遊するROV等に撮像装置を搭載して、この装置を適用すれば、水中深く位置していて、水面の上から水中のROVを直接見ることができなくとも、例えば、周囲環境のCADデータと撮像装置のその中での位置と姿勢を操作卓の表示装置に表示するようにすれば、水中ROVの遠隔操作を、その表示装置で位置と姿勢を確認しながら容易に行なうことができるようになる。また、CADデータ上で任意の場所の正面に位置するように最終目標位置と姿勢を入力して自動的にその目標位置と姿勢に水中ROVがなるように制御すようにすれば、自動運転の制御システムも容易に構築することも可能となる。もちろん、飛行船や飛行機などに撮像装置を搭載して飛行ロボットの遠隔操作と自動制御に適用することもできる。
また、文字読み取り装置では、前記第1〜第19の手段を選択的に適用して構成した視覚情報処理装置あるいはそれを適用した視覚情報処理システムを適用するので、例えば、3次元的に凹凸のある刻印文字などは単純に2次元の画像処理では読み取り難い文字についても3次元のCADデータのマッチング処理により所定の文字を認識し易くしたシステムを容易に構築することができる。また、時系列に変化する文字も時系列にデータを生成することができるので、例えば、電光掲示板で流れるように表示される文字とか風で揺らいでいる看板などのように予め移動パターンが分かってない移動する文字なども容易に読み取ることができるシステムを構築することが可能となる。
また、3次元の物体認識装置、計測装置、CADデータ生成装置では、前記第1〜第19の手段を選択的に適用して構成した視覚情報処理装置あるいはそれを適用した視覚情報処理システムを適用しているので、プラントなどの現場調査、車のデザイン設計、CGのキャラクタなどに必要な3次元の物体認識装置、計測装置、CADデータ生成装置等を容易に実現することが可能となる。すなわち、高精度の分解能の撮像装置を用いたシステムとしなくとも汎用的な撮像装置でも撮像装置を対象物体の近くに寄って撮影してCADデータを生成するようにすれば、近くに寄ればその分精度の良いCADデータを生成することができるので、汎用の撮像装置で撮影して得た画像情報に基づいて精度の良いCADデータを生成することができ、そのCADデータを参照できるシステムとすれば、精度の良い3D計測システムを汎用の撮像装置を用いて容易に構築することが可能となる。生成あるいは更新されたCADデータを取り出すときに、所定のCADデータのフォーマット、例えば、DXFのフォーマットなどへ変換するようにすれば、アズビルトで生成されたCADデータを、例えば、Auto−CADなどの汎用のCADシステムで容易に活用できるようになる。また、撮像装置を地面を走行する走行車と空を飛行する飛行体に搭載すれば、より正確な町並みの3次元地図を容易に作ることができるようになる。すなわち、地面を走行する走行車の視覚情報処理装置は、道路や家などを下から撮影した範囲の詳細なCADデータの生成を行なうが、家の屋根上とか地面に生えている木の上の方は下から見上げている撮影のしかたでは十分な画像情報が得ることができないので、上部のCADデータまで十分に生成することはできないが、空を飛行する飛行体から見下ろして撮影した画像情報で生成されたCADデータと統合することにより、下の方から上部まで生成漏れのない、正確な町並みの3次元地図を容易に作ることができるようになる。
また、ナビゲーション装置では、その処理装置に前記第1〜第19の手段を適用して構成した視覚情報処理装置あるいはそれを適用した視覚情報処理システムを適用するので、GPS不要のナビゲーション装置を容易に実現することが可能となる。すなわち、移動するナビゲーション装置に撮像装置を接続して、撮像装置で周囲の環境のCADデータを生成および更新しながら、撮像装置の位置と姿勢情報をリアルタイムで取り出すようにして、環境CADデータと撮像装置の位置と姿勢情報を表示するようにすることで容易に現在位置を確認することができるシステムとなる。環境CADデータは、予めある程度のCADデータとしてナビゲーゲーション装置にもたせておくようにしても良いし、例えば、2次元の地図情報のみをもたせておき、走行するに従って生成されていく3次元CADデータの道や交差点付近の建物などから2次元の地図と3次元CADデータを対応させるようにしても良い。予め作成しておくCADデータは、特徴的な建物などをオフラインで入力しておくようにしても良いし、予め自動車や飛行体で町並みのCADデータを本発明の視覚情報処理装置で生成および合成したものを使用するようにする方法でも良い。また、更に、移動してCADデータを生成している他のナビゲーション装置と生成したアズビルトのCADデータを互いに交換し合っても良いし、中央情報処理センタなどを介して複数のナビゲーション装置で生成したCADデータを授受することができるようにしても良い。撮像装置と移動体との取り付け関係が既知であり、その関係を事前に設定しておくことにより、撮像装置の位置と姿勢を表示する代わりに、移動体の位置と姿勢を表示するようにすることもできる。また、環境CADデータの中の目的地が入力されれば、CADデータの中の目的地と現在の移動体の位置から、どのような経路で目的地まで移動していくのが良いかなどのナビゲーションの表示は、GPS搭載のナビゲーション装置と同じように構成して実行すれば良い。
また、検査装置では、前記第1〜第19の手段を選択的に適用して構成した視覚情報処理装置あるいはそれを適用した視覚情報処理システムを適用しているので、容易に立体的な形状の検査装置を得ることができる。すなわち、例えば、マニピュレータなどの先端に撮像装置を設けて、この撮像装置でいろいろな角度から検査対象の部位を撮影するようにして検査対象のCADデータを生成するようにすれは、CADデータは、3次元の凸凹状態を正確に再現しているので、例えば所定の場所に所定の部品がきちんと付いているかどうかなど、所定の部品の付いている位置と姿勢情報を取り出せるようにすれば、容易に自動検査装置を構築することが可能となる。撮像装置をマイクロスコープとすれば、生成された3次元のCADデータは、微細な3次元的な凸凹面になることから、例えば、CDやDVDなどの角度をいろいろ変えて見ないと見えない微細な傷なども容易に効率良く検査することができる検査装置を実現することできる。
また、ピッキング装置あるいはシステムでは、前記第1〜第19の手段を選択的に適用して構成した視覚情報処理装置あるいはそれを適用した視覚情報処理システムを適用するので、通常の汎用の撮像装置を最低1台準備することで、容易にピッキングシステムを構築することが可能となる。すなわち、ハンドリングするマニピュレータの先端に通常の汎用的な撮像装置を取り付けて該撮像装置からの画像情報でワークCADデータを生成するように、最初にワークの周囲から撮影をすることで、ワークのアズビルトCADデータを生成することができる。ここで、撮像装置は、ワークの周囲に複数固定して画像情報の信号を切り替えるようにして該撮像装置をワーク周囲で動かした場合と同じような画像情報が得られるようにしても良い。ワークのアズビルトのCADデータが生成できた後には、ワークの中の一つの部品の形状を予め探索用CADデータとして登録しておき、生成された部品が沢山積み上げられたワークのCADデータの中から一つ一つの部品の位置と姿勢情報を探索機能によって求めて一番外側にある部品から順番にハンドリング用のマニピュレータでピックするように、マニピュレータの制御装置に掴む対象の部品の位置と姿勢情報を与えて該マニピュレータの制御が行なわれるようにすれば、容易にピッキングシステムを構築することができる。特にマニピュレータの先端に撮像装置を付けた場合には、撮像装置をワークに接近させて該ワークを撮影してCADデータを精度良く生成することができるので、撮像装置は、高分解の特殊な撮像装置でなく汎用の一般的な撮像装置で撮影しても精度良いCADデータを生成することができる。ピッキングで部品を取り除いて部品の積み上げられたワークの形状が変わっても、ワークのCADデータが更新されるので、常にそのときの状態に応じてピッキング制御に対応することができる。
また、自律制御型ロボットでは、前記第1〜第19の手段を適用して構成した視覚情報処理装置あるいはそれを適用した視覚情報処理システムを適用するので、自律制御型ロボットを容易に構築することが可能となる。すなわち、ロボットに撮像装置を付ければ、視覚情報処理装置を適用して環境のアズビルトCADデータを容易に生成することができ、その中にある撮像装置の位置と姿勢情報やロボット自身の位置と姿勢情報も容易に得ることができる。更に、環境の中の特定のCADデータを探索することもできるので、予め探索用に準備しているCADデータの有無、有る場合にはその位置と姿勢情報を得ることができるので、それが作業対象物体であれば作業対象物体の位置と姿勢と自分自身の位置と姿勢により、ロボット自身を作業対象物体に対してどのようにでも制御することが可能となる。例えば、特定の作業対象物体を探して持って帰ってくる作業内容を実行しようとする場合には、前記ナビゲーション機能を用いてロボットをナビゲーションが計画したとおりの経路に沿って移動させて作業対象物体を探索させ、作業対象物体が見つかった場合には、それに対して所定の位置と姿勢でロボット自身を接近させて、ロボットが有しているハンドリング機能で作業対象物体を掴んで、再度、ナビゲーション機能を使ってスタート地点まで戻る制御を容易に実現することができるようになる。途中に障害物があれば、環境のCADデータは、随時、生成および更新されているので、この障害物を障害物と認識することも容易に行なうことができるので、予め障害物を発見した場合の対処方法として、例えば障害物を避けて回避経路を探して進むプログラムを用意しておけば、途中に障害物があっても目的とする作業を計画どおりに自律的に実行させることが可能となる。ここで自律制御型ロボットと称するものは、自動車,無人搬送車,マニピュレータ,人間型ロボットの何れもでも良いが、ロボット自身が判断して動作制御する機能を有するロボットのことである。自律制御型ロボットは、基本的には、操作者の指令に従うようにプログラムして良いが、例えば、ペットロボットなどのような場合には、充電が必要な状態の場合には充電器へ向かって充電することを優先するようにプログラムし、必ずしも指令に従わないようにしても良い。また、番犬ロボットに適用する場合には、周囲の人物の不審な服装や不審な動きを認識して、不審者に対しては不審者を追いかけるようにプログラムしておくようなシステムの構築も容易に実現することが可能となる。
また、監視装置では前記第1〜第19の手段を適用して構成した視覚情報処理装置あるいはそれを適用した視覚情報処理システムを適用するので、監視対象物を認識して、監視対象物ごとに必要な監視を容易に行わせることができる。例えば、赤ん坊の形状をあらかじめ登録しておけば、登録されている赤ん坊を探索したり、赤ん坊の位置を検出でき、赤ん坊が移動してもトラッキングしながら継続して赤ん坊を撮影する制御も容易にできるので、更に赤ん坊の泣いている表情、笑っている表情などを登録しておき、現在の表情がどの表情に近いかを検出することで、赤ん坊が笑っているか、泣いているかなどの状況も自動的に認識できるので、あらかじめ泣いたらばアラームで親に知らせるように設定しておけば、赤ん坊が泣いたら親に自動的に知らせるような監視システムも容易に構築することが可能となる。ここでは赤ん坊の表情の監視を例にとって説明したが、自然の状態、機器の運転状態、プラント状態、不審者の侵入監視など、CADデータで形状を探索、マッチングさせることで、また、音声や温度センサ等他のセンサ情報とも組み合わせるようにしていろいろな監視システムを容易に実現可能となる。
また、自動車、船、飛行機などのシステムでは、前記第1〜第19の手段を適用して構成した視覚情報処理装置あるいはそれを適用した視覚情報処理システムを適用するので、搭載した撮像装置で周囲環境のアズビルトCADデータを生成できるようになり、また、撮像装置の現在位置と現在の姿勢も、周囲環境のアズビルトCADデータを生成するときの3D計測、トラッキング処理を行う中で計算されるので、撮像装置を取り付けている自動車、船、飛行機などの移動する乗り物の位置と方向が検出されるので、らかじめ目的の移動ルートが設定されていれば、目的の移動ルートから現在位置のずれを計算して、自動車、船、飛行機などの移動する乗り物の位置と方向を目的の移動ルートに一致するように修正する制御を自動的に行うことができる、また、この時に移動する周囲、前方の人や車、船、飛行機、その他の物体もあらかじめ登録しておくことにより、近くにいる物体が何かが検出できるので、また、検出された物体に応じて、それを避けて迂回制御するか、止まるか、そのまま進むかなどの制御プログラムもあらかじめ用意しておけば、検出した物体に応じた適切な移動経路の修正,変更もしながら、目的とする移動ルートに合わせるように自動車、船、飛行機などの移動する乗り物を自動で運転制御させることも容易に実現可能となる。
第21の手段は、1台あるいは複数の端末から送られてくる情報をセンタで統括監視する監視サービス提供システムにおいて、ユーザからのリクエストによりユーザを探索し、監視中はユーザを追跡して、ユーザおよびユーザの周辺を連続して監視するようにすることである。
このような第21の手段は、1台あるいは複数の端末から送られてくる情報をセンタで統括監視する監視サービス提供システムにおいて、ユーザからのリクエストによりユーザを探索し、監視中はユーザを追跡して、ユーザおよびユーザの周辺を連続して監視するようにしているので、ユーザの安全を保証する監視サービスシステムを容易に構築することが可能となる。ここで、追跡は、手動装置で行っても良いし、画像処理等で自動追尾を行なうようにしても良い。また、自律制御型ロボットのユーザがロボットの監視用に本サービスを利用することでもできる。画像は、監視中、録画されるようにして後で参照できるようにしておくと良い。また、監視カメラなどが設置されていない場所や設置数の少ない場所を人が移動するような場合には、人が携帯用の小型カメラ付けて本サービスを受けられるようにすることもできる。また、監視サービス提供スシステムの処理装置に前記第1〜第19の手段を選択的に適用して構成した視覚情報処理装置あるいはそれを適用した視覚情報処理システムすれば、3次元CADデータに基づいてユーザの自動追跡が容易になる。また、周辺の状況を3次元CADデータで見ることができるようになるので、より一層、的確に現場状況を確認することができるようになる。
第22の手段は、1台あるいは複数の端末から送られてくる情報をセンタで統括監視する監視サービス提供システムにおいて、各端末には所定の期間の所定の情報を時刻と対応つけて記録しておく機能を設け、ユーザーからのリクエストにより所定の端末の所定の時刻の記録データを取り出せるようにしたことである。
このような第22の手段では、1台あるいは複数の端末から送られてくる情報をセンタで統括監視する監視サービス提供システムにおいて、各端末には所定の期間の所定の情報を時刻と対応つけて記録しておく機能を設け、ユーザからのリクエストにより所定の端末の所定の時刻の記録データを取り出せるようにするので、ユーザからの監視サービス依頼が依頼されているときの監視サービス以外に監視サービスが依頼されていなかったときに事件が発生した場合においても過去の監視記録データを取り出すことから事件捜査に容易に利用できるようになるので、監視サービスを依頼しないで事件に巻き込まれたユーザに対してもサービスを提供できるようになる。
第23の手段は、前記第21,22の手段を選択的に適用して構成した監視サービス提供システムにおいて、監視中はユーザ周辺の人に監視サービス中であることを知らせる状態表現手段を設けたことである。
この第23の手段では、1台あるいは複数の端末から送られてくる情報をセンタで統括監視して、前記第21,22の手段を選択的に適用して構成した監視サービス提供システムにおいて、監視中はユーザ周辺の人に監視サービス中であることを知らせる状態表現手段を設けるので、不審者に襲われる前に不審者をけん制することができるようになる。
第24の手段は、前記第20〜23の手段を選択的に適用して構成した監視サービス提供システムにおいて、監視中にユーザへ知らせる状況が発生した場合にはユーザあるいはユーザとその周辺の人にその情報を提供する手段を設けたことである。
この第24の手段では、前記第20〜23の手段を選択的に適用して構成した監視サービス提供システムにおいて、監視中にユーザへ知らせる状況が発生した場合にはユーザあるいはユーザとその周辺の人にその情報を提供する手段を設けるので、不審者に襲われる前にユーザあるいはその周辺の人にその情報を知らせることができるので事件を未然に防ぐことができるようになる。
第25の手段は、センサ情報を取得するための端末装置において、あらかじめ複数箇所にセンサの設置ポートを設けておき、端末を組み立てるときに1セットあるいは複数セットのセンサを所定の個所の設置ポートに接続できる構成としたことである。
この第25の手段では、センサ情報を取得するための端末装置において、あらかじめ複数箇所にセンサの設置ポートを設けておき、端末を組み立てるときに1セットあるいは複数セットのセンサを所定の個所の設置ポートに接続できる構成とするので、センサを設置する場所に応じて必要な方向にのみセンサを組み込むことができるので必要最小限のセンサで必要な端末装置を組み立てることができるようになる。
本発明によれば、アズビルト3D−CADデータをリアルタイムで自動生成可能とし、また、CADデータの探索機能と組み合わせて、ロボット等の各種自動機械の視覚誘導制御装置として、また、ナビゲーションシステム、移動検査装置、監視サービスシステムなどとして適用可能な視覚情報処理装置およびそのシステムを提供することができる。
本発明は、移動可能な撮像装置で物体を撮影して得た画像情報を入力して前記物体のCADデータを生成する画像情報処理装置と、生成したCADデータを記憶する記憶装置を備えた視覚情報処理装置において、前記画像情報処理装置には、生成した新生CADデータが既に生成されている既成CADデータの更新対象となるかどうかを判別する更新対象判別処理機能と、更新対象となる既成CADデータと新生CADデータの精度を比較するCADデータ精度比較処理機能と、新生CADデータの精度が更新対象となる既成CADデータの精度よりも高いときには該既成CADデータを新生CADデータで更新するCADデータ更新処理機能を設け、
新生CADデータを生成する機能は、同時刻に取り込んだ複数の撮像装置の画像情報内の特徴点の対応付けを画像情報の特徴部位から行いステレオ計測して、ステレオ計測された点の中で安定な少なくとも3点をトラッキング追従させることにより撮像装置の移動による画像情報内の対応点を関係付けするようにして3次元の座標データを求める方法を実行することによって実現するように構成する。
図1は、本発明の視覚情報処理装置における第1の手段の基本構成を示すブロック図である。
画像情報処理装置100は、撮像装置10によって得た画像情報を直に/または記録媒体を介して間接的に入力してCADデータを生成し、生成したCADデータを記憶装置200に記憶させる。
撮像装置10は、移動するTVカメラのような装置であり、CADデータ化するあらゆる物体をいろいろな角度から撮影して画像情報を生成する。
画像情報処理装置100は、撮像装置10が撮影して生成した画像情報を直に/または間接的に入力して該画像情報に含まれるあらゆる物体の3次元CDAデータを生成して記憶装置200に記憶させる。また、この画像情報処理装置100は、必要に応じて、記憶装置200に記憶している既成CADデータを読み込み、新たに生成した新生CADデータと精度を比較し、新生CADデータの精度が既成CADデータよりも高いときには記憶装置200に記憶している既成CADデータを新生CADデータで更新する。撮像装置10は、環境を自由に動き回ることができるので、環境にある物体に近寄ることや離れることもできる。撮像装置10が対象物体に近くなれば精度良く物体を撮影することができるので、例えば、遠くでは1本の線に見えていた部分が近くに寄るとか、見る角度が変わることによって2本に見えることがあるので、画像情報処理装置100は、先に生成した既成CADデータをより詳細になるように、また、先に誤認識して生成した部分を修正するように更新するCADデータ更新機能を有する。
これによって、撮像装置10をいろいろと動かして物体を詳細に撮影すればするほどより正確なCADデータを構築することができるようになる。また、いろいろな位置に動き回ることができる撮像装置10であるので、物体の裏面も下面も上面も撮影して画像情報を生成することができるので、精度良いアズビルトのCADデータを容易に生成することができるようになる。
図2は、本発明の視覚情報処理装置における第1の手段の基本構成の他の例を示すブロック図である。
画像情報処理装置100は、第1の撮像装置10と第2の撮像装置20によって撮影して得た2つの画像情報を直接または記録媒体を介在させて間接的に入力する。第1の撮像装置10と第2の撮像装置20は、ステレオ計測を行なうことができるように、所定の間隔をおいて固定する。この構成であれば、画像情報処理装置100は、2台の撮像装置10,20から入力する2つの画像情報を用いてステレオ計測で物体までの距離情報を計測しながらCADデータを生成することが可能となる。その他は、図1に示した視覚情報処理装置の構成と同じ構成である。
次に、画像情報処理装置100の内部構成について説明する。画像情報処理装置100は、基本的には、演算処理装置と情報(演算)処理プログラムによって構成する。ここで、第1の手段は、図1に示すように単眼の撮像装置10を使用して構成する場合であり、第1の手段の他の形態の構成段は、図2に示すように複眼(ステレオ)の撮像装置10,20を使用して構成する場合であるが、画像情報処理装置100の基本的な情報処理の流れは同じになるので、ここでは、まず、単眼の場合の基本的な処理の流れを説明した後に、図3〜図8を用いて、複眼(ステレオ)の場合の処理を説明する。単眼の場合の処理は、複眼(ステレオ)でないとできない処理を省いたような処理となる。
単眼の場合の基本的な処理の流れでは、処理をスタートすると、撮像装置10によって得た画像情報を取り込み、微分処理やノイズ除去などの処理を行い、線分を抽出して、例えば、その線分の始点と終点をトラッキングなどで追跡することにより、複数の違った視点から撮影した複数枚の画像情報間で始点と終点のように対応する点の明確な画像情報が得られるので、写真計測法でそれらの点の3次元座標を計算する。そして、その3次元の始点と終点を結ぶ線分を3次元のCADデータとして定義し、同じように複数の線分について定義していくことにより、空間にある物体のいろいろな部分の線分のCADデータを生成する。ここで、更に、撮像装置10を移動させて対象物体に近寄せれば、撮像装置10は対象物体をより大きく撮像することができるので、分解能、すなわち、精度が良くなる。それで引き続きCADデータの生成処理を繰り返して、以前に1本に見えていた線が2本に見えるようになったならば(CADデータ更新対象判別機能およびCADデータ精度処理機能)、既成のCADデータにおける1本の線分を2本の線分に更新する(CADデータ更新処理機能)。
このような機能により、撮像装置10を移動させて対象物体をより詳しく観察(撮影)すればするほど、より精度の良いCADデータに置き換えていくことができる。
このようにすることで、トラッキングの途中で線分の一方の端点が見えなくなってしまって、所定の枚数の画像情報の中で対応点がとれない点が生じるとしても、それはそれでその点はまだ処理をしないで対応点のとれた十分な枚数が揃った点のみを処理して、それらの点で3次元のCADデータを生成していく処理を繰り返せば、撮像装置10は移動を継続しているので、CADデータの更新処理機能と組み合わせることにより、徐々に計測される点も増えてCADデータも増え、また、より詳しく更新されながらCADデータがより正確なものになっていく。
ここで、1度、2本に見えた線を2本の線分のCADデータにした後に、再度、撮像装置10が物体から遠ざかって遠くから撮影するようになった場合には、再度、1本の線分に戻すような更新処理の仕方をしても良いが、1度、2本に見えるようになったものは、その後に1本になっても、2本が1本に見えているだけということで、CADデータを1本には更新しない処理方法とすることが、CADデータをより正確に作成するという目的の場合には適切である。この場合、例えば、3次元の座標を計算する場合のそのときのその計算結果の精度に関する情報を一緒に記憶しておくようにして、再度、同じ場所の同じあたりの点(先に計算されている点を中心に所定半径の球を考えてその中に入る点とかとして同じ場所か否かを判別しても良い。このとき、想定する半径は先に計算されている点の精度に応じて精度が良ければ小さく、精度が悪ければ大きく設定するようにしても良い。)が求められた場合には、今回求めた精度と前回求めた精度を比較して、精度の高い方を残すようにする処理方法にすると良い。
CADデータの更新の概念は、別途、図面を参照して詳細に説明する。ここでは、更新する処理機能を設けることによって、従来、難しいとされていた対応点を確実に追跡する問題を完全に解決する手段を適用しなくとも、そのときそのときに生成できる点のみや生成できる線分のみを生成して、より、精度良く生成された場合には置き換えていく、すなわち、更新していくことにより、撮像装置10を必要な精度のCADデータが十分に得られるように十分に移動することにより、使用目的に十分に対応することができる精度のCADデータを得ることができるようになる。
次に、図3〜図8を用いて、複眼(ステレオ)の場合の処理を説明する。複眼(ステレオ)の場合には、ステレオによる3次元の計測と、撮像装置10,20を移動させることによって、単眼の場合と同じように写真計測と組み合わせた場合の実施の形態を説明する。3次元(3D)座標を計測する手段、トラッキングの手段、何を特徴点としてトラッキングさせるかとか、CADデータは3次元データのみ生成するようにするとか、2次元の各画像情報ベースで2次元のCADデータも併用するなどCADデータの生成の仕方にもいろいろ考えられるので、処理速度とか、メモリ容量を小さくするとか、その目的にあった適切な手法を適用しても良い。このように本発明の適用の仕方はいろいろあるが、ここではあくまでも、一実施の形態として説明する。
図3は、第1の手段を実現する画像情報処理装置100における処理の基本的な流れを示すフローチャートである。
スタート100aは、電源ONで処理がスタートするようにしても良いし、スタート釦などでスタートさせるようにしても良いが、処理の開始の部分である。スタート100aから処理が始まると、処理の流れとしては、まず、撮像装置10,20によって得た画像情報の取り込み処理100bを行なう。取り込んだ画像情報は、記憶装置200へ生画像情報として記憶しても良いし、画像情報処理装置100内の画像専用メモリに記憶するようにしても良いが、次の処理に使えるようにしておくことが必要である。
次に、取り込んだ画像情報の微分処理やノイズ除去などの処理(1)100cを行なう。
ここで、この処理(1)100cの具体例を図4を参照して説明する。画像情報はステレオであるので2枚分ある。左の生画像情報(生画像)101aに対して微分処理などを行なうことによって、処理画像情報101cのような線画像情報(線画像)を生成する。この処理は、微分処理でなくても良く、輪郭を抽出する処理を行なえば同じ結果が得られる。右の生画像情報(生画像)101bも同様に処理することにより、処理画像情報101dのような線画像情報(線画像)
に変換する。ここで、重要なことは、線分の始点,終点などをトラッキングで追従したりするので、照明の状態が少し変わったり、撮像装置10,20の視点が少し変わった程度で抽出される線分の長さとかが極端に変化しないような安定な処理結果が得られるように、微分処理を行なうパラメータとか、ノイズ除去のパラメータ、手法などを考慮することである。また、線分の端点が他の線分と接しているか否かもある閾値を用いて判定するような処理を行い、照明の条件などで線分が離れた状態で抽出されたような場合でもそれを付けるような補正をするようにすることが望ましい。但し、他の線分と接していると見做せない線分は、見做せる線分が抽出されるまで、そのままにする。何れも、撮像装置10,20の視点が多少変わっても同じように抽出されるようにするのが良い。
次の処理(2)100dでは、線分にナンバリング処理をしたり、ステレオの場合には、左右の線分の対応付けを行なう。
ここで、この処理(2)100dの詳細を図5を参照して説明する。抽出した線画像情報(線画像)の各線分に名前を付けて管理する。線理画像情報(線画像)102a,102bには、直方体の輪郭が各々抽出されている。この直方体を構成する各線分にL1からL9までの名前を付けて管理できるようにナンバリングを行なう。ナンバリングした各線分の線画像情報102a,102b上での座標で、その始点,終点,線種,曲線の場合には該曲線の関数などを2次元画像データベースとして内部メモリまたは記憶装置200へ記憶させて登録する。ここで、この2次元画像データベースの簡単なイメージを下記する。
Figure 2006003263
これらのデータは、撮像装置10,20が移動して撮影シーンが変わったならば、シーン(2),(3)…と増やしていく。
左右の撮像装置10,20は、人の左右の目と同じ程度に近くに離れた状態に設置することにより、左右の画像情報は少しずれてはいるがほとんど似た画像情報となる(左右の相関性は非常に良い)ので、それを利用して左右の画像データの各々対応する線分や点の対応付けを行なう。対象物体が目前にあって左右の画像情報が極端に違う場合の処理は、部分的なマッチングと十分に同じと判断できる部分の点のみを対応付ける。対応がとれなかった点は、後に撮像装置10,20が移動した場合の時系列の画像情報で写真計測から求めれば良いので、ここで100%の対応とれないからと言って処理ができなくなるものではない。求めた対応付けの関係は、左右の2次元画面データベースにも登録しておく。例えば、上記の例のように線分名称を同じにすることでも良い。線分名称をメモリのレコードNo.として定義しても良いし、左右のデータを記憶装置200内の物理的に別々のメモリへ記憶させて登録するようにしても良い。始点,終点の座標は、ここでは、画像メモリ上の番地になるので整数で良い。線種が直線の場合には、フィッティング関数の係数はなしで良い。曲線が2次曲線であれば、Y=aX+bX+cという関数でフィッティングさせる場合には、係数はa,b,cの3つとなる。線種が円や楕円の場合には、その関数に必要な係数を必要な数だけ登録する。点は、短い線分として始点と終点が一致している線分として定義して良い。
次の処理(3)100eでは、ステレオ処理ができる複眼の場合には、この時点で各線分を3次元のデータに変換して3次元形状モデルを生成する。
ここで、処理(3)100eの詳細を図6を参照して説明する。既に処理(2)の段階において左右で対応の取れた線分データがL1〜L9として得られているので、複眼のステレオ計測にて、各線分の始点,終点の座標は、3次元空間での座標に計算して求めることができる。その3次元の座標を計算した結果に基づいて、この処理(3)では、3次元データベースを生成する。
この3次元データベースの概念は、直方体の線分L1〜L9を3次元の線分データに変換することができ、また、各線分が繋がって閉ループを作れば、面S1,S2,S3を定義することができる形態である。また、何もない状態では、最初の平面(無限遠の無限平面と考えても良い。)S0を定義することができる。
具体的には、左右の対応付けされた画像情報から3次元の線分L1〜L9の始点,終点,線種,線の関数を登録する。次に、3次元の線分で閉ループを形成している3次元の面S1〜S3の構成線分,面の種類,面の関数を登録する。背景は、取り敢えず、面S0として登録する(最初は、未だ背景面は定まらないので、データの中味はない状態である。)。
この3次元データベースの簡単なイメージを下記する。
Figure 2006003263
上記の面データは、単純な平面データのみであるので、面を構成する線分名称をデータとしてもつだけでも良い。
次の処理(4)100fにおいて、必要であれば、見えない部分のデータを生成する。これは、総てのデータを円筒,球,円錐,直方体などの基本図形と見做してCADデータを生成する場合には有効である。但し、必ずしもそうする必要はない。
この処理(4)100fの詳細を図7を参照して説明する。
最初の撮影で得た画像情報に基づいて生成した3次元の平面群から基本図形の一部を構成していると推定することができる面群を探索する。見つからないときには、この処理をパスする。平面S1,S2,S3が基本図形の一部を構成していると推定したときには、その座標データに基づいて、基本図形に置き換えると、どの基本図形に一番近いかを判別する。そして、平面S1,S2,S3が直方体の一部であると判別すれば、見えてない面を推定平面SS4,SS5,SS6として生成する。このとき、見えていない部分の線分データも推定線分SL10,SL11,SL12として生成する。更に、構成面はS1,S2,S3,SS4,SS5,SS6である推定ソリッドデータSV1を定義する。そして、これらのデータを3次元データベースに登録する。
このようにステレオ処理を併用すると、撮像装置10,20が動き出す前からCADデータを、一部に推定部分はあるものの、直ぐに、例えば、マニピュレータのハンドリングなどにおいて対象物体に向けてアームを移動させるための制御情報(物体検索情報)として利用できる状態にすることができる。
ここで、推定データは、推定データであることが分かるように管理しておき、例えば、物体の裏側に回り込んで該裏側の部分を撮影した画像情報に基づき該裏側の部分のCADデータを生成したときには、推定CADデータは推定でないCADデータに置き換えるようにする。
以上のように、図3に示したフローチャートにおける処理(1)100c,処理(2)100d,処理(3)100e,処理(4)100fで必要な部分の処理を行なうようにして2次元画面データベースと3次元データベースへの登録と、撮像装置10,20からの画像情報の取り込みとを繰り返しながら行なうことにより、撮像装置10,20が動き出せば、多くの2次元画像データ(シーン)が蓄積される。そして、処理100gにおいて2次元画面データの溜り具合を監視し、ある程度溜まった段階で処理(5)100hの写真計測で座標を求めるようにすれば良い。
処理(5)100hの詳細を図8を参照して説明する。左右の撮像装置10,20の何れかの生画像情報と考えて良いが、生画像情報105aの物体も視点が変わると生画像情報105c,生画像情報105eのように見え方も変わる。
ここで、右側は3次元データベースに登録されているデータに基づく線画像情報の概念で、線画像情報105b,105d,105fのように、撮像装置10(20)の視点の角度によっては見えないことから推定により生成している推定線分SL10,SL12の線分は、画像情報105dの段階では見えないので推定のレベルであるが、画像情報105fの段階では実際に撮影された画像情報では見えるようになることから該画像情報に基づいてこれらの線分を直に生成することができるようになるので、推定線分SL10は線分L10へ、推定線分SL12は線分L12に確定することができる。また、このように違う視点から撮影した画像情報に基づく2次元画像データが増えると写真計測を適用することができるので、各線分を定義している始点や終点のX,Y,Zの空間座標は、ステレオ計測で求めておいた座標値から写真計測で求める座標の方がより精度良く求められる部分は座標データを書き換えてCADデータの精度上げるように更新するようにする。このとき、3次元データベースの各座標値がステレオ計測で求められた場合にはそのときの測定精度をデータベースへ記憶させておき、新たにステレオ計測でも写真計測でも同じ点を再計算した場合には、その手法でそのときの条件で計算される3次元座標値の精度を求め、前の座標値を計算したときの精度よりも良い場合には座標値とその精度データを更新するようにする。因みに、3次元の座標計算の精度は、離れた物体については、ステレオ計測よりも写真計測の方が良い場合がある。これによって、精度が向上する場合にはCADデータを自動的に更新することができるようになる。
なお、図3における処理(1)100c〜処理(4)100fを繰り返す場合の処理内容を以下に補足説明する。
(1) 最初は停止している撮像装置10,20もそのうちに移動する。撮像装置10,20の位置と姿勢の変化もこの中で計算して良い。
(2) 2次元画面データが逐次追加されるので、途中の変化の少ないデータは削除してデータ量が爆発(メモリが不足)しないようにする。
(3) 同じ画面内に新たな線分や点が生じた場合には、2次元図面データベースへ新たに登録する。
(4) 同じ画面内の同じ線分や点は、移動しても同じ線分や点として追跡管理する。動画のトラッキングとしての対応付けをこの2次元画面データベースにて管理する。
(5) 同時に左右の画像の対応点にも誤りがないかどうかを、逐次、チェックして、誤りが発見された場合には、それに関わる部分の再計算を直ぐに行い、2次元画面データベースおよび3次元データベースを修正する。
(6) 新たに新しい線分や点が生じた場合には、処理(3)100e,処理(4)100fにて3次元データベースに新たなモデルを追加生成する。
(7) 2次元画面データが蓄積されてきたならば、処理(5)100hも実施して、3次元データベースに新たなモデルを追加生成する。
このように撮影シーンを画像処理して3次元座標を計算するときに、撮像装置10,20のレンズは、実用的には、広角レンズを使用して広範囲を撮影することにより、トラッキング追従している特徴点を見失う機会を少なくすると共に、短時間で広範囲の環境のCADデータを生成したり、検索できるようにすることが望ましいが、広角レンズを使用すると撮影して得た画像情報の周縁部分に歪みが発生して正確な3D計算を行なうことができなくなることがある。従って、広角レンズを使用するときには、歪みの少ない広角レンズを使用するようにする配慮や、レンズの歪みを画像処理で補正しながら3D計算を行なうようにする配慮が必要になる。
画像情報の歪みは、レンズの屈折により発生するものであり、レンズの屈折率の関係から、画像情報の歪み特性は、レンズの特性として既知となるので、レンズの歪み特性に応じた補正を画像処理の前処理の段階で行なうことにより、補正後の歪みのない画像情報に基づいた3D計算が可能となる。このような処理を高速に行なうためには、LSI回路のようなハードウェアによって行なうようにすると良い。また、ズームレンズを使用するときには、ズームの状態によってレンズの特性(補正パラメータ)が変わるので、ズーム状態を取り込んで補正処理を行なう補正回路とすることが望ましい。
図9は、CADデータとして生成される浮遊線分の活用の概念を示している。図9において、例えば、線分L11,L12,L13は、直方体の各面に付いている線であり、それらの線分データの座標データは、直方体の平面の一部に含まれる座標であり、直方体の形状を示している。また、実際に線が描かれている場合には、模様データとしてその物体の特徴を示す線分データとしても活用することが可能である。
従って、輪郭線を抽出したときに生じる平面を構成しない浮遊線分は、2次元画面データベースおよび3次元データベースに登録して管理する。各線分は、何れの面に付いているかも登録して管理する。これらの浮遊線分は、面データを作成するときに、面の中の線分の座標を参照することにより該面の形状を表現することができ、また、模様や傷などを参照データとして探索する場合には、マッチングするために必要なデータとなる。また、面データも何処かの面に付いている場合には、その関係を登録して管理する。
図10は、円筒や球体へ適用した場合の概念を示している。円筒には線分L7、球体には線分L8が付いている。これらは実際の線分データとして、円筒や球体の表面形状の一部を示しているデータとなる。
図10において、線分L1,L4,L5,L7は、曲線としてデータベースに登録する。面S2,S3は、実際には曲面であるが、この段階では不明である(平面かも知れない)。面S2,S3は、視点が変わると線分L2,L3,L5の位置が変わることから、線分L2,L3,L5は、曲面の境界線であることが分かり、基本図形の特徴から円柱および球体と推定定義するか、浮遊線分L7,L8の座標から曲面関数として推定定義する。
図11は、特殊曲面のCADデータとしての定義の一例を示している。例えば、木900の茂っている葉などは、遠くから撮影した画像情報では一枚毎の形状が見えない。その場合は、例えば、輪郭線L1が作っている特殊面S1に線分L2,L3,L4,L5,L6が付いていると見做す。各線分は、3次元の座標値をもっているので、その線分が表面に付いている特殊曲面S1の形状は、それ線分データの付いている部分に表面があると考えることが可能となる。このような特殊面の定義の概念を用いれば、皺のある布や着物の複雑な曲面とか、砂山などの表面を定義することが可能となる。
具体的には、葉の茂った木900では、輪郭線L1,L7は、はっきりと抽出することができるが、頂点などがないので形状を定義し難いことから、輪郭線L1,L7が形成している曲面S1,S2を定義して、この曲面S1,S2上に浮遊線分L2,L3,L4,L5,L6,L8,L9,L10,L11などが存在するとして該曲面上に定義する。風で葉が揺れたり、光の具合で浮遊線分の位置や形状が変わったり、消えたりするが、その瞬間のデータを正と見做せばそれで良い。このような大雑把な表現で良いと考える理由は、遠くの物体のデータは、精度を必要とする制御に直接利用することはない、ことにある。マニピュレータで葉を掴むようなハンドリング制御では、手先が葉に近づけば、撮像装置10,20も同様に葉に近づいて葉の一枚一枚の詳細な画像情報が得られることから、CADデータも相応して詳細になって必要な精度が得られるようになるからである。
ソリッドデータとしても、同様に、浮遊線分L2,L3,L4,L5,L6,L8,L9,L10,L11などが存在する曲面からなる物体として定義することができる。このソリッドデータは、この程度の大きさのこのような形状の木として調べるときに利用することができる。曲面は、可能であれば、浮遊線分の座標データよりそれらの点を含む曲面の関数で表現した方が処理を機械化し易い場合もある。
このような特殊曲面は、布,着物,かばん,タオルなどのように皺のある複雑な曲面の物体、人の指,腕,服など、砂山,遠くの山,カーテンなどの背景のような物体においても同様な表現となる。
図12は、本発明の第1の手段においてCADデータを更新する場合の実施の形態を示したものである。
(A)は、物体を該物体から遠く離れて位置する撮像装置10,20によって撮影したときの生画像情報であり、近くへ寄って撮影すると(B)のようになる。この物体は、例えば、机のようなものである。
この物体を遠くから撮影して得た生画像情報(A)に基づいてCADデータを生成すると、(a)に示すように、線分L1〜L9からなる直方体が生成される。そこで、撮像装置10,20を物体の近くに寄せて撮影して得た生画像情報(B)に基づいてCADデータを生成すると、(b)に示すようなデータを生成することになる。この場合には、新たな線分L10,L11,L12,L13,L14が生成して追加されると共に線分L1〜L9の始点と終点の座標データも近くで計測しているのでより精度の良い座標データに更新される。
具体的には、物体を遠くから撮影して得た生画像情報に基づいて生成される1本の輪郭線は、近づいて撮影して得た生画像情報によれば、分解能が向上することから、2本の輪郭線となることがあり、より正確な形状データとなる場合がある。
ここでは、2次元画面データベースの更新で説明するが、同様に、関連する総ての3次元データベースも更新するものとする。
物体から遠く離れた位置で該物体を撮影して得た生画像情報に基づいて生成した線分L1,L2,L3,L5は、それぞれ1本であるが、近寄った位置で撮影して得た生画像情報に基づいて生成した線分は、それぞれが2本になる。線分L1,L2,L3,L5は、削除しないで、一番近い線分のより正確なデータとして、新しく求められる座標値に更新する。近い線分がないときには、削除して新たに生成し直す。新たな線分L10,L11,L12,L13,L14は、新たにナンバリングして追加登録する。
このように、CADデータの生成のみでなく更新も自動的に行なうようにすれば、移動可能な撮像装置10,20により撮影して得られる生画像情報に基づくCADデータの生成は、撮像装置10,20が移動すれば移動するほど精度が良くなる。また、最初の段階でもそれなりの精度でCADデータを生成することができるので、ロボットの制御などに早い段階からこのCADデータを利用することができるようになる。
図13は、第2の手段の実施の形態を示す概念図である。ここでは、撮像装置10,20が対象物である円柱状の物体(円柱)901の周りを回るように移動しながら撮影して得た画像情報に基づいてCADデータを生成することを考える。また、円柱901は、表面に「A」という文字101Aが描かれている物体とする。
このような状態では、撮像装置10,20は、円柱901の側面のラインおよび上面あるいは下面の円板の淵が楕円に見える。しかし、それらの線は総てが輪郭線であり、そこに実際の線が存在するわけではない。そこで、3次元CADデータを生成していくときには、円柱901の淵の画像情報を密に取り込みながら周囲を回って沢山の輪郭線を検出してデータを生成していくと、3次元データベース200Gには、円柱902のようなワイヤーフレームのCADデータが生成される。
また、円柱901の表面に描かれた文字「A」を構成する線分は、そこに実際に存在する線分である実際の線である。それは、例えば、CADデータの中では文字「A」902Aを構成する線分データとして生成される。このような輪郭線と実際の線は、CADデータを利用するときに使い分けると、CADデータを効率良く使うことができる。例えば、輪郭線の線分データは実際には存在しない線であるので、文字「A」の線分データを探すような場合には邪魔になる。また、円柱という形状データを参照したい場合には、多くの輪郭線も用いることでより詳細な形状に関するデータが得られるので、データを生成する上でこれは実際の線であるということが確定した段階で実際の線と定義するようにしてCADデータを生成する。この事例の場合には、撮像装置10,20が移動すると、円柱901の側面の輪郭線は、撮像装置10,20が移動しても見える場所が変わらないのに対して、文字「A」は、撮像装置10,20が移動すると見える場所が変わる。3次元のデータに変換した後に撮像装置10,20の移動前後における線分の位置を比較すると、移動前の輪郭線の線分は、移動後の位置には線分として見えない。しかしながら、実際の線である文字Aは、撮像装置10,20が移動しても同じ場所に存在する特徴から、「A」という文字を構成する線分は実際の線分であることを識別することができる。また、円柱901のような側面の輪郭線の場合、複眼の撮像装置10,20で見ている輪郭の位置は若干ずれた場所になるが、ステレオ計測でその輪郭線を生成する場合にはそれは誤差として影響するので、輪郭線というものはそういう誤差も含んでいるものであるということを区別していれば、利用するときに注意することも容易である。
以下に、3次元データベースの概念の一例を示す。以下のように線種の中で区別するようにする一つの方法を示す。線分L1は、実際の線であることを示し、線分L2は、輪郭線であることを示している。
Figure 2006003263
次に、第2の手段の他の実施の形態を説明する。直方体の基本図形をソリッドデータSV1として生成する方法を図7を参照して説明したが、撮像装置が移動し、CADデータを更新するようにしたシステムでは、撮像装置が遠くから物体を見たときには直方体であっても、近くに寄って見たときには、例えば、サイコロのように直方体の角に丸みがある場合には、それを直方体として定義しておくことが適切ではなくなってくる。また、大きな建物を遠くから見ると直方体に見えるが、近くに寄ればドアがあり、中に入ると最初に直方体と見えていた建物は壁のような平面で囲まれた物体になる。更に、壁に近くに寄って見ると、厚みのある複数の平面の偏平な直方体となるようになることから、このようなシステムの場合には、必ずしもソリッドモデルにまで落とし込む必要はない。そこで、必要最小限のデータ構成を考えると、点と線と面まで上げられるので、必要最小限の面データまでを生成して更新していくシステムとするのが処理速度の観点などから有利である。
次に、第2の手段の他の実施の形態を説明する。既に説明したデータベースは、線データを関数表現する形態と面データも関数表現するような形態であるが、面データを関数で表現することは、処理の複雑さとデータメモリ節約効率から考えると、節約の効果が少ない。そこで、少なくとも線データまでを関数表現することでデータ量を大幅に低減することを提案する。例えば、通常の環境を対象にして処理を行なうと莫大な数の線分が抽出される。それらの線分の形を、例えば、総て直線で表現しようとすると、円や複雑に曲がった形状の線分は、線分上に沢山の点を定義し、それらの点の間を直線の線分で繋いで円や曲がった形状を表現するようにしなければならず、多くの点データも必要となるので、莫大なメモリ容量が必要となる。そこで、曲線を関数で定義して、フィッティングさせる適切な係数(上記データ例のa1、b1…)で表現するようにすることによって、データ量を大幅に縮小することが可能となる。
第2の手段の他の実施の形態を説明する。この実施の形態は、生成および更新するCADデータにおける少なくとも面データに色情報をもたせるというものである。その概念を示すと以下のようになる。
Figure 2006003263
勿論、赤,青…という表現ではなく、色コードで微妙な中間色まで区別できるようにしても良い。このように、CADデータに色情報があれば、赤いものを探すというような場合には赤い色情報をもつCADデータのみを探せば良いので、CADデータを取り扱うときの効率が良くなる。また、色情報で色の変わるところを境界線の線分データとして積極的に定義すれば、より多くの形状を示す線分データも得られるし、色の分布状態をより詳細に定義することも可能となる。
図14は、色情報を用いて輪郭を抽出する概念を例示している。参照符号110aは、生の画像情報とする。各メッシュの小さな枠が1画素に相当する部分である。そこに画像情報として、いろいろな色の面と線分などがあるという状況を示している。
この画像データ上で2次元の画像データベースを作成することを考えると、例えば、各画素についてその周りの画素の色を自分の画素と比較しながら画面全体を処理し、色が変化する画素の部分に境界線を定義するようにすると、参照符号110bに示すような結果が得られる。それを更にシンボリックに定義すると、面データ110c,110f,110iは、それぞれの閉ループの中の色が定義されて面データには色情報も定義される。その他、境界部分には輪郭線データ110eや線のみの場合には面110fの中に線データ110d、また、単独に線データ110hなども定義される。ここでの輪郭線110eは、色違いの境界線を示しているので、ペイントされた模様であれば、これは実際の線として定義して良い。ここでは画面の淵の部分には仮想点110jを定義して、面データ110iを定義することができるようにしている。これらの図の概念は、2次元の画像データベースの概念であり、2次元の画像データベースでも線分データ以外に面データを定義するやり方をとっても良いし、面データの定義は3次元データベースでのみ行なうようにしても良い。
ここで、図14の処理の手順を補足説明する。
隣り合う画素の色や輝度を比較して、大きく変化している場合には輪郭と判断する。同様に周囲を探索していくと、閉ループの輪郭ができる。それを輪郭の線データ(境界なら無色)と閉ループの面データとして登録する。領域(面積)のないものは線データとして登録する。
次に、第2の手段の他の実施の形態を説明する。CADデータの例を以下に示す。
Figure 2006003263


ここでは、最大の明るさを100として、背景面S0は50の明るさ、赤い面S1は20の明るさ、青い面S2の明るさは100と例示している。このように定義しておくことによって、例えば、面S2が青ランプで光る面である場合には、その明るさデータ100を見れば、その青ランプは点灯していると判断させるような使い方をすることができるようになる。ここで、CADデータを生成するときに、撮像装置10,20によって得た画像情報の当該面の輝度値を参照してその情報をCADデータに登録すれば、CADデータに明るさの情報を追加することが可能である。
次に、第3の手段の実施の形態を説明する。CADデータの例を以下に示す。
Figure 2006003263
以上の例では、面データS1,S2は、時刻13:15に生成されたデータと時刻13:20に生成されたデータの2種類が存在する部分を示している。このように、そのデータを生成した時刻データを登録しておくようにすることで、例えば、面データS2は、明るさが100から20に変わったので青のランプが消えた、ということを容易に認識することができるようになる。前の時刻に生成されたCADデータと違いのあるものは残しておくようにすれば、同じCADデータを調べることで変化の状態や履歴も認識させることが可能となる。また、このようにしてデータを追加していくとメモリ容量が足りなくなるので、例えば、重複するデータは、生成した時刻から1時間とか10分とかの所定の時間を経過した後には自動的に消去するようにプラグラムすることで、メモリ容量が爆発することを防ぐことができる。それは、例えば、CADデータの時刻を常に確認するようにして、所定の時間が経過したものは消去するようにすれば、自動消去処理が可能である。
図15,図16,図17,図18は、第10手段〜第11の手段の実施の形態を示すブロック図である。
図15は、画像情報処理装置100に別のCPU等300を接続し、画像情報処理装置100の中でその都度計算されている撮像装置10,20、すなわちカメラの位置と姿勢情報を別のCPU300で取り出せるように構成した装置である。ここでは、例えば、カメラの位置と姿勢情報を定周期で画像情報処理装置100から出力させることにより、CPU300において、その周期でカメラの位置と姿勢情報を得ることができる。このように構成することによって、CPU300を使用して構成するアプリケーションシステムにおいて、カメラの位置と姿勢情報を利用することができるようになる。例えば、ロボットアームの制御のシステムであれば、ロボットアームの制御をCPU300が行なっているような場合には、カメラをロボットアームの先端に取り付けておくことによって、CPU300は、ロボットアームの先端の位置と姿勢情報を得ることができ、その結果を制御へ応用することができるようになる。
図16は、アプリケーションシステムのCPU300がカメラの位置と姿勢情報を得るために該CPU300から画像情報処理装置100へ指令信号を入力するように構成し、その応答としてカメラの位置と姿勢情報を画像情報処理装置100から取得するように構成した装置である。従って、画像情報処理装置100は、CPU300が必要とするときにのみカメラの位置と姿勢情報を出力してCPU300に与えることができるようになる。
図17は、アプリケーションシステムのCPU300から画像情報処理装置100へCADデータの探索指令信号も入力できるように構成し、その応答として、画像情報処理装置100が探索したCADデータの情報(形状でも良いし、位置と姿勢情報でも良い。)をCPU300が取得できるように構成した装置である。これによって、CPU300側では、制御したいものの位置や姿勢情報と制御するときに必要となる相手側の位置や姿勢情報の両方を容易に得ることができるようになるので、制御にその情報を利用することができるようになる。
図18は、CPU300から探索指令信号だけではなく、カメラの位置と姿勢情報を出力させる指令信号の両方を出力して、画像情報処理装置100から検索結果やカメラの位置や姿勢情報を取得するように構成した装置である。このように構成した装置では、例えば、コップなどをアームで把持するように構成するときには、カメラをアームの先端に設け、アームで把持しようとするコップのCADデータを画像情報処理装置100に探索させて該コップの位置と姿勢情報をCADデータの探索結果で得ることができるように構成し、ロボットハンドの先端の位置と姿勢情報はカメラの位置と姿勢情報として得て制御に利用することができる。カメラの位置と姿勢情報は、CADデータを生成するときに計算される情報であることから改めて計算処理するための別の時間を要しないので短時間に得られるメリットがある。勿論、対象のコップの位置と姿勢をCADデータで探索して、更に、ロボットハンドもハンドの形状データより探索して該ハンドの位置と姿勢情報を得るように構成することもできる。
図19は、第10の手段〜第11の手段をロボット制御専用の視覚情報処理装置として実施する場合の画像情報処理装置100の処理の実施の形態を示すフローチャートである。
画像情報処理装置100の処理は、先ず、スタート123aから入り、アプリケーションシステムにおけるCPU300などからのコマンド入力処理123bを行なう。ここで、CADデータ探索というコマンドの場合には、どのようなCADデータかという情報も入力する。
次に、画像情報処理に移り、先ず、画像情報の取込処理123cを行なう。引き続き、3次元計測と3D−CADデータの生成処理とカメラの位置と姿勢計算処理123dを行なう。そして、CADデータの探索処理123eを行なう。
そして、カメラと探索したCADデータの位置と姿勢情報をCPU300へ出力する処理123fを実行する。
その後は、コマンド入力処理123bからの繰り返し処理となるようにする。この繰り返しサイクルが数10msecとかの高速で行なわれるようにすることで、ロボット等をリアルタイムで制御するCPU300は、ロボットの制御に利用する情報を容易に取得することができるようになる。
具体的には、図19にも示しているように、ロボットハンド部に設けたカメラ123gと環境の中にある物体の1つで、例えば、円柱123hの位置と姿勢情報がリアルタイムに分かるようになることから、円柱123hを把持するためにロボットハンドを誘導する制御などを容易に実現することが可能となる。
図20および図21を参照して、第11の手段の他の実施の形態を説明する。
図20は、交通信号機やビルのある街の道路を車が走っている情景であり、その中のHITACHIビル904の看板を探索する場合の例を説明する。
CADデータの探索の方法としては、基本図形をもとにその基本図形に近いものを探索する方法を採用する。この場合、看板のサイズが分かっていれば、基本図形としては、所定の寸法の長方体を参照CADデータ904aとして用意し、生成されたCADデータの中からそれに近いものを探すようにする。そうすることによって、HITACHIビル904の看板を容易に探索することができる。
また、図21に示す例は、基本図形だけでは限られた形状しか探索できないことから、予め、生成されたCADデータの中から一部分を取り出しておき、それを探索用の参照CADデータ904bとして入力するものである。この場合は、生成されたCADデータそのものであるので精度良くマッチングする部分が必ずあることから、より確実且つ正確に探索することができるようになる。また、基本図形にないどんな形状のCADデータのかたまりの一部分でも探索することができるようになる。
ここで、探索データを予め読み出しておく方法としては、第11の手段の一例であるが、例えば、任意のサイズに変更可能な直方体を生成されたCADデータの中に表示して、その直方体のエリアの中をCADデータを探索用のCADデータとして読み出す方法がある。この方法によれば、必要な部分を簡単に取り出せるようになる。そのエリア904Aは、HITACHIビル904を包むような大きさで指定すれば、看板部を含む探索用CADデータを読み出すことが可能となる。このデータで探索すれば、看板の文字データも探索するときの特徴情報になるので、より確実に目的とする探索対象を探し出すことが可能となる。勿論、いろいろな場所を読み出しておけば、必要なときに、直ぐに、その場所を探索して確認できるようなシステムも構築することができるようになる。エリアは、直方体でなくても任意の大きさに設定できる球体でも良い。球体であれば姿勢まで指定しないで済むので、操作が容易になる。
また、第11の手段で、最初に基本図形で看板を探索した後にその看板を含む大き目のエリアを探索用CADデータとして読み出す方法である。この方法であれば、最初は基本図形だけで探索することができ、次には、看板の文字も含めたその看板の部分を探索用に利用することができるようにすることができる。勿論、基本図形でない場合も、似たような場所を探して、似たような場所の周辺を探索用CADデータとして読み取るようにすれば、ずばりその場所を探索するのに適した探索用CADデータを得ることができる。
このように第11の手段を用いれば、最初は基本図形程度しかなくても、徐々に似ているような場所を探して新たな探索用CADデータにすることができるので、容易に探索用CADデータ集を作ることも可能となる。
第11の手段で、基本図形で探索する場合に、例えば、看板の直方体のサイズが不明の場合には、縦に長い直方体を示すような概略の縦横長さの比を指定するようにしてその比に近い直方体の物体を複数探索させる手法である。この手法は、形状が同じであれば、サイズは大きいものから小さいものまで探索したい、という場合に効果的である。バルブとか配管などのように、同じ形状でいろいろなサイズがあるものなどを探索するときには便利である。また、人のような形でも子供から大人まで探索するときのように、マッチング程度をある程度許容することで、同じ探索用データをサイズフリーで指示することで大小のある程度似たものを探索することができるようになる。探索用データも大きさの数だけもっている必要がないのでメモリの節約にもなる。
図22を参照して、第11の手段の他の実施の形態を説明する。撮像装置10は、撮影対象の物体905と共に部屋905aの中に入り、物体905を上下左右のいろいろな角度から撮影して画像情報を生成してCADデータを生成させる。この場合の撮影対象の物体905は花である。
一般の環境にある花は、いろいろなものの陰になったりするので、花の全体形状のCADデータを生成するのは難しいが、この手法を用いることで撮影対象の物体905の正確なCADデータ905cを容易に得ることができるようになる。また、専用の部屋905aとしてその中には他の物体が存在しないようにすれば、どのような角度から対象物体905を撮影しても他の物体が混入するようなことはない。部屋905aの内装は、床も壁も天井も真っ白とか、青とかにしておいても良いし、また、グリッドなどのメッシュを部屋の床,壁,天井に引いておき、CADデータ生成時にそのグリッドを利用するようにしても良い。
図23,図24,図25および図26を参照して、第11の手段の実施の形態を説明する。この図23〜図26は、図19を参照して説明した基本処理における参照CADデータの探索処理123eの一例を説明するためのものである。
図23は、探索例の条件を整理したものである。現在の撮像装置(カメラ)の画像情報(映像)には4つの直方体が写っており、そのうちの3つの直方体は3段重ねになっている。そして、CADデータはある程度行なわれており、同じような環境のCADデータは既に生成されているものとする。具体的には、各直方体に相当するソリッドデータSV1,SV2,SV3,V4が生成されており、平面S0にソリッドSV1,V4が付いているデータが生成されているとする。この状態で、探索したい参照CADデータは、2段重ねの長方体の積み木である。
図24を参照して探索処理123eにおける処理(1)の例を説明する。この処理は、探索用CADデータ(参照CADデータ)の特徴量を計算する処理である。特徴量とは、CADデータによってはいろいろ考えられるが、ここでは、体積、細長比、頂点,線分,面の構成員数、凸凹の数、基本形状の数(直方体2個とか)、線分,面の特徴(曲面の場合の関数)、色情報などである。これらの計算処理は、新しい探索用CADデータが入力されたときに1回だけ行なう。
図25を参照して探索処理123eにおける処理(2)の例を説明する。具体的には、現在見えている視野の中に入っているCADデータの中から処理(1)で抽出した特徴量と同じ特徴量を有するCADデータを探索する処理である。
この例では、4つの直方体のデータがあるので、各々4つの直方体(候補1〜候補4)と、積み重なっている直方体では2つづつの組み合せが2種類(候補5と候補6)と、更に3段重ねの組み合せ(候補7)の合計7つの候補となることから、この7つの候補の特徴量と探索したい参照CADデータの特徴量を比較すれば、候補5が最も一致するということになる。基本図形で探索できるような単純な環境であれば、基本形状が最も近似する候補のCADデータが探索結果であるので、その結果として、この候補のCADデータの中心の位置と姿勢情報を出力するようにすれば良い。これは、図19の基本的な探索処理123eにおいて1回で全部実施するようにしても良いし、何回かに分けて実施するようにしても良い。すなわち、CADデータの生成サイクルの10回に1回の程度で探索結果を出力するようにしても良いし、1回毎に出力するようにしても良い。
図26は、環境が基本図形のみでない場合などに特に有効な処理方法であり、探索処理123eにおける処理(2)で最も近似する候補を1つ、場合によっては複数選択した後に参照CADデータと候補CADデータのパターンマッチングを行って、更に適切な候補を探索する処理(3)である。
この例は、3Dポテンシャルマッチング法であり、最も近似する候補の最も確からしい位置,姿勢に参照CADデータをおいて最終マッチングを行なう。そして、マッチング度が所定値以上であれば、探索対象の物体であるとして特定し、未満の場合には、否として探索を継続する。
マッチング処理では、既に2次元処理で方法が確立しているパターンポテンシャルマッチング法を3次元に拡張したり、固有値空間マッチング法などを用いることによって探索速度を高速化することが可能となる。ここで、ポテンシャルマッチング法は、特開平02−137072号公報などに記載されている2次元ポテンシャルマッチングの処理を3次元の処理に拡張する使い方をする。固有値空間マッチング法は、文献で1997年5月情報通信電子学会論文誌D−II Vol.J80−D−II No.5 PP.1136−1143に記述されている手法などを応用する。何れの場合でも、最初に特徴量で候補を絞り込んで最終的な確定のために各種のマッチング法を用いる方法が良い。ここで用いるマッチング法は、上述のものに限定されるものではない。高速に高精度でマッチングできる手法と組み合わせて行なうようなマッチング手法でも良い。また、複数のマッチング手法を組み合わせて使用する方法でも良い。
ここで、探索用CADデータは、3次元でも良いし、2次元でも良い。2次元のCADデータとは、模様や絵や看板の文字などである。すなわち、それらは、1つの面データの中にいろいろな面データと線分データが付いているようなCADデータで与えられる。面には色情報が付いていても良い。そのような探索用CADデータは、2次元で与えても探索する対象は3次元のCADデータの空間となるので、2次元のプレートの最もマッチングする部分を3次元空間の中から探索することになる。その場合、2次元のプレートは、向きや姿勢をいろいろな方向に変えてマッチングする場所を探索することになる。また、3次元の探索用CADデータの場合と同じように、スケールファクタは可変にして同じプレート、すなわち模様やマークで、大きいものから小さなものまで探索できるようにすると良い。
ここで、マッチング探索について補足説明する。生成される環境のCADデータや入力される探索用CADデータは、そのデータ量を少なくするために、線データは、始点と終点と線種、線の関数パラメータなどで表現され、面データは、構成する線分の名称などで表現されるが、探索の時点では、マッチングを行なう部分に関しては、線分であれば線上の複数の点データに、面データであればその面を構成する複数の点データに変換して、点データ同士のマッチング処理、すなわち、相関をとる処理を行なうようにすれば良い。色情報をもっていた面データから置き換えられる点データには色情報ももたせて、色情報も考慮したマッチングとする。マッチング処理が終わったならば、置き換えた点データは消去可能である。その都度、点データに置き換えることで、通常もっていなければならないCADデータとしてのデータ量を少なくすることができる。
また、点に置き換える場合の密度であるが、マッチング精度に応じて適切に変えるようにすると良い。基本的には、等ピッチ,等間隔で置き換えるが、複雑な形状、複雑な色模様の個所の密度を濃くし、単純な形状、単純な模様の色データの個所は粗くするようにすると良い。また、ソリッドのCADデータで管理、入出力するようにしている場合には、ソリッドデータもそのソリッド内空間に点データを一定密度で、あるいは、密と粗い部分を設けるなりして点データに置き換えて点データ同士のマッチングにすると良い。点データに置き換えることで、汎用的なマッチング処理を共通的に使用することができるようになる。なお、ここでは、点データに置き換える方法を説明したが、関数ベースでのマッチングができればそれでも良い。
図27を参照して第11の手段の他の実施の形態を説明する。膨大で広範囲に生成したCADデータの中から参照CADデータを探索する場合には、探索速度を高速にするために、CADデータが生成される空間全体をブロック番地に区切り、区切番地を指定して探索範囲を絞り込むようにすると良い。
図27は、空間を同じ大きさのブロックに分断して探索する概念を示している。その中に撮像装置10であるカメラが存在しており、カメラ10は視野10Vの範囲を撮影している状況を示している。
探索する場合には、カメラ10で見えている範囲を検索させる方法と、見えてない範囲を検索させる方法がある。勿論、CADデータを生成している中で検索させる方法もあるし、生成されたCADデータを使ってオフラインで検索処理のみを実施する方法もある。何れの方法においても、全エリアを検索するのは大変な時間がかかるので、例えば、対象空間が日本全国であって、現在の対象エリアが東京であれば、東京のブロック番地のみを探索対象にする方法で絞り込むようにする。
また、第11の手段の他の実施の形態は、カメラ10の向きの方向のブロックを探索するようにするものである。すなわち、カメラ10の視野10Vの中に入っているブロックを探索の対象とするものである。ここで、生成するCADデータは、生成時にブロック番地で区分けして管理するようにしていくことにより、ブロックを指定すれば対象CADデータも自動的に絞り込めるようにすることができる。ブロックを指定して処理を行なえば、探索を効率良く行なうことができる。
図28は、第11の手段の他の実施の形態である視覚情報処理装置のブロック図である。この視覚情報処理装置は、画像情報処理装置100に、I/Fとして、別のCPU300からの探索指令信号を入力する2つの系統と、探索結果を出力する2つの系統を設けた構成である。勿論、3つ以上でも良いし、1台のCPU300ではなく複数台のCPU300と接続されるように構成しても良い。
このように、画像情報処理装置100に複数のI/Fを設けることにより、画像情報処理装置100の処理速度を上げてもCPU300とのデータ受け渡し速度が遅くてシステムの処理能力向上が制限されるような事態となるのを回避することができる。CADデータは、沢山の点や線分データから構成されている場合もあるし、探索によって沢山の候補データが探索され、また、それらの位置と姿勢情報以外に色とか形状の情報も読み出す場合には多くの時間がかかる。従って、画像情報処理装置100に複数のI/Fの出入り口を設けることにより、多くのCADデータの探索処理を効率良く行なうことができるようになる。
図29および図30を参照して、第11の手段の他の実施の形態を説明する。
図29は、生成されたCADデータの概念を示している。実際には細かな線分や面データの集合からなるCADデータであるが、ここでは、予め探索用CADデータがひとかたまりのものとして登録されているものとする。それらは、具体的には、机,花瓶,花,コップである。
そこで、部屋の中のCADデータを生成したときに同じようなCADデータのかたまりが存在しているので、予め探索用にその物体のみで生成していたCADデータを使って探索させる。例えば、花のデータを使って探索させると花905を構成する線分や面データのかたまりが探索されるので、それをID=1と定義する。ID=1は、処理の中では花である。次に、花瓶906aを探索させるとその部分のデータが探索されるので、それをID=2と定義する。同様に、カップ906bのデータ部分はID=3と定義し、机907のデータを使って探索させると机と思われる線分と面データのかたまりが探索されるので、それをID=4と定義する。このIDを登録するときには、それを構成する線分や面のCADデータはグルーピングするようにする。IDを定義したCADデータには、そのIDの代表点の位置とかたまりとしての物体の姿勢情報を登録するようにしても良い。このようにマッチングした部分をかたまりとし定義して管理しておけば、次に探索するような場合には、IDを指定して探索するような使い方ができるようになり、便利である。
予め用意しておいた探索用CADデータとマッチングしなかった部分908のかたまりがあるとすると、そのかたまりの部分が未認識の物体ということになる。そのような場合には、応用システムは、カメラを未確認物体908の周囲で上下左右に動かして該未認識物体908を撮影してCADデータを更に精度良く生成するようにすると良い。そして、その未確認物体908の部分にそれまで取られていない新たなID番号を付けて管理するようにすれば、未確認物体があってもそれを良く観察して詳しいCADデータを生成して新たな物体として認識させることができるようになる。ここで、IDが付けられるということは、システムがその物体をIDの番号で認識しているということである。
IDには、種類と個々の番号をもたせるようにすると良い。例えば、コップが2つある場合にはID=(3の1)が1つ目、ID=(3の2)が2つ目というように管理すると良い。種類と個別番号を付けて管理するということである。
第11の手段では、そのIDに人間の言葉を対応付けるようにしても良い。この場合のCADデータの概念を以下に示す。
Figure 2006003263
このように、ID=1は、人間の言葉で「花」であることを対応させておくことにより、「花」を探索させることが可能となり、システムと人間とのI/Fを、操作(指示)し易いものに構築することができる。また、探索を行なうときに、例えば、「カップ(ID=3)とか花瓶(ID=2)は、机(ID=4)の上にある場合が多い。」という知識があれば、探索時には、先ずは机(ID=4)のCADデータの上に付いているCADデータを対象に探索するようにすることができる。このように範囲を特定して探索することで探索効率を上げることが可能となる。
図30は、知識データを入力するための実施の形態を示しており、図30を参照して説明した探索において、未認識の物体908のCADデータのかたまりが生じた場合には、システムは、人間に「この物体はなんですか?」という問いを出力し、人間がそれはID=5と定義することを入力しているときのLCDの表示画面を例示している。
このときに、知識データも一緒に入力するようにすると、入力漏れがなくなるシステムを構築することができる。また、知識データは、人間の言葉で入力するようにすれば、入力し易くなる。例えば、ID=5=「小包」と入力した後に、知識1=「小包」は「机」の「上にある」と入力すれば、必要なデータベースが自動的に作られるようにする。先に、総てのIDの言葉が登録されていれば、知識データベースは、人間の言葉からID番号に置き換えてID番号を所定の場所に記憶させるようにすることができる。また、ここで、「上にある」という言葉も何か他の記号に置き換えて記憶させるようにしても良いが、「上にある」ということは、その次にくるIDの物体の上(空間的に高い位置)のCADデータを探索することである、ということが対応付いているように探索のプログラムが記述されていることが前提になる。
まとめて探索用CADデータを登録して各々IDを登録する場合を考慮して、知識データもオフラインで予め別ファイルで製作しておき、知識データを一括してシステムに読み込ませるようにする手段であり、効率良く知識データの登録が可能となる。
なお、CADデータのデータベースの概念は、前述した実施の形態では、単純にデータをレコードNo.毎に羅列するように記述しているが、実際にシステムを実現する場合には、検索し易いデータベースにして、いろいろなデータにアクセスする時間を短くして、最終的には視覚情報処理装置あるいはそのシステムの処理速度を上げてリアルタイム性を向上するように工夫するのが良い。
第11の手段の他の実施の形態を図29を参照して説明する。元々、図29の個々のCADデータのかたまりは、実際には、生成された線分データや面データが複雑にしかも不完全に集合したものである。また、そのデータの数も多いので、探索してマッチング度がある程度一致した場合には、その部分を基本図形あるいは基本図形の集合体で定義された基本図形で置き換える。このようにして置き換え可能な総てのCADデータを基本図形に置き換えれば、データ量は大幅に削減することが可能となる。
次に、図31を参照して第1〜3の手段および第10,第11の手段の他の実施の形態を説明する。この実施の形態は、本発明を実施する場合に適した視覚情報処理装置の基本的な製品形態の1つである。
この実施の形態では、画像情報処理装置100は、前述したような画像情報処理機能を実現する手段(演算処理装置)をLSI化した視覚誘導チップとして構成し、撮像装置10,20は、2つのCCDカメラを使用し、記憶装置200は、スマートカード,メモリスティック,ICカード,ハードディスクなどのメモリを単独または組み合わせて使用し、別のCPU300は、ロボット制御装置などのアプリケーション側のCPUを使用し、拡張用として、加速度センサ30やジャイロセンサ40を用意する。
画像情報処理装置100である視覚誘導チップには、画像情報や指令(コマンド)や探索用のCADデータやセンサ信号などを入力する入力I/Fと、指令に対する応答や撮像装置10,20や検索CADデータの位置や姿勢情報を出力する出力I/Fと、記憶装置200を接続するメモリ用I/Fなどを設ける。
そして、この視覚誘導チップ(画像情報処理装置)100は、アプリケーション側のCPU300からの指令に従って、CCDカメラ(撮像装置)10,20から出力される生画像情報や加速度センサ30とジャイロセンサ40から出力されるセンサ信号を取り込んでCADデータを生成し、参照CADデータを探索する画像情報処理を実行し、探索結果をアプリケーション側のCPU300に報告し、生成したCADデータを記憶装置200に記憶させる処理を実行する。
ここで、画像情報処理装置100の機能を実現する視覚誘導チップは、CADデータ生成と更新機能のハードチップ部とCADデータの探索機能のハードチップ部を分けるようにしても良い。その場合は、記憶装置200へのI/Fは、CADデータ生成と更新機能のハードチップ部とCADデータ探索機能のハードチップ部の両方に設け、同時に記憶装置200を読み書きしないように制御する。このような視覚誘導チップの構成とすれば、CADデータ生成と更新機能のみを必要とするアプリケーションには当該ハードチップ部だけを使用すれば良く、CADデータの探索機能が必要な場合に当該ハードチップ部を使用すれば良くなるので、合理的なアプリケーションシステムを経済的に構築することができるようになる。
次に、図32〜図40を参照して、図31に示した実施の形態の視覚誘導チップ(画像情報処理装置)100が実行する具体的な画像情報処理(CADデータの生成と更新機能)を詳細に説明する。
図32および図33は、視覚誘導チップ100が実行するメイン処理のフローチャートである。ここでは、アプリケーション側のCPU300からのコマンドとして、必要最小限の最も単純な4つのコマンドを用意した場合の例で説明する。そのコマンドは、コマンド=0が原点リセットでデータエリアをクリアするもの、コマンド=1がカメラ位置リクエスト、コマンド=2が探索指令、コマンド=3がデータ登録(ファイリング)の機能を有するものとする。
システムの電源投入後のリセット信号で視覚誘導チップ100のメイン処理がスタートする。最初に処理(1)で撮像装置(カメラ)の現在の位置と姿勢データ(Xc,Yc,Zc,αc,βc,γc)をゼロリセットして、ワールド座標系を定義する。ワールド座標系は、ここでは、電源投入リセットスタート時のカメラ座標系をワールド座標系として定義する。そして、生成したCADデータを記憶させるメモリ200のデータ記憶エリアをゼロクリアする。
次の処理(2)では、アプリケーション側のCPU300からのコマンド入力を読み取る。ここでは、各コマンドを0,1,2,3の4種を番号で区別するようにした。
その次の処理(3)では、コマンド=0かどうかを判定し、Yesの場合には処理(4)のコマンド=0に相当する処理の原点リセットを行ない、処理(5)でアプリケーション側のCPU300へ原点リセット完了の応答を出力する処理を実行する。
前記処理(3)でコマンド=0でない場合は、処理(6)へジャンプする。この処理(6)では、コマンド=1か否かを判別し、Yesの場合には、処理(7)において撮像装置10,20の現在位置と姿勢情報をアプリケーション側のCPU300へ出力する応答処理を実行する。
処理(6)でコマンド=1でない場合は、処理(8)へジャンプする。処理(8)では、コマンド=3か否かを判別し、Yesの場合には、処理(9)において、現在までに生成したCADデータをファイル名を付けてメモリ200の生成CADデータ記憶エリアとは別の記憶エリアに登録する。そして、処理(10)でデータ登録完了をアプリケーション側のCPU300へ応答出力する処理を実行する。
処理(8)でコマンド=3でない場合は、処理(11)へジャンプする。処理(11)は、撮像装置10,20からの生画像情報の取り込みである。撮像装置10と撮像装置20によって得た生画像情報(1),(2)を視覚誘導チップ100へ取り込む。撮像装置20が接続されていない場合には単眼の処理となり、接続されている場合にはステレオ処理も可能とする。
次の処理(12)では、3D座標計算,CADデータの生成処理を行なう。この処理(12)の詳細は、別途、図34を参照して後述する。
次の処理(13)では、コマンド=2か否かを判別し、Yesの場合には、処理(14)において3D−CADデータの探索処理を実行する。
そして、処理(15)において、探索できたか否かを判別して、Yesの場合には、処理(16)で探索結果として、候補数、各候補物体の座標姿勢データ、候補と決めた時のマッチング度などをアプリケーション側のCPU300へ応答出力する処理を実行し、処理(2)へ戻る。
また、処理(13)の判別でコマンド=2でない場合と処理(15)で探索できなかった場合には、そこから処理(2)へ戻る。
このような処理を視覚誘導チップ100で実行できるようにすることにより、さまざまなアプリケーションの実現が容易になる。
図34は、図33に示した視覚誘導チップ100のメイン処理における処理(12)である3D座標計算,CADデータ生成処理の詳細なフローチャートである。
この処理では、処理(1)において、ステレオか単眼かの判別を行い、ステレオの場合には、処理(2)へ分岐する。
処理(2)では、ステレオ視の左右の画像データで対応する特徴点を複数抽出する。
処理(3)では、抽出した左右の画像データの対応する特徴点を3D座標へ変換する。
そして、処理(4)において、3D−CADデータの生成処理を行なう。ステレオ視で3D座標を計算する手法は一般的であるので、ここでは詳細な説明を省略するが、3D座標が計算された後の処理(4)の詳細は、別途、図35〜図38を参照して後述する。その後、単眼の場合と合流して処理(5)を実行する。
処理(5)は、処理(1)の判別で単眼の場合に分岐する処理である。ステレオの場合は、処理(2)〜(4)を実行した後にこの処理(5)に合流する。この処理(5)では、取り込み画像データの特徴点あるいは特徴物体を複数抽出する。
次に処理(6)において、前回の取り込み画像データの特徴点と対応付けのできた特徴点は、前回のものと同じ名前を付け、新しい特徴点は新しい名前を付けて、今回の取り込み画像データを一時記憶する。処理(5),(6)は、特徴点のトラッキング処理の部分である。ステレオの場合には、少なくとも左右の何れか一方の画像情報について処理を行えば良い。
次に、処理(7)では、このトラッキングしながら蓄えた画像データが複数枚そろったか否かを識別する。
処理(7)でYesの場合は、処理(8)の写真計測での3D座標計算を実行する。具体的には、対応する複数の特徴点を3D座標へ変換する。このとき、各画像を撮影したカメラの位置や姿勢情報も計算されるので、その情報も一時記憶する。最新の取り込み画像のカメラ位置と姿勢情報は、変数Xc,Yc,Zc,αc,βc,γcにセットする。
そして、処理(9)において、3D−CADデータ生成処理を実行しRETURNで戻る。処理(9)は、処理(4)と同じである。
処理(7)の判別で複数枚の画像データがそろわない場合には、そのままRETURNで戻る。写真計測に必要な画像データ枚数は、最小2枚であるが、更に多くの枚数を用いて写真計測するようにすると良い。3D座標計算に当たっては、スタート後、最初の取り込み画像を撮影したカメラ座標系をワールド座標系として3D座標を計算する。
図35〜図38は、図34に示した処理における処理(4)と処理(9)の3D−CADデータ生成処理の詳細なフローチャートである。ここでは、最も基本となる第1の手段における更新機能の詳細も説明する。
この処理に入ったならば、処理(1)で3D座標に変換されたM(MAX)個の特徴点Q1〜QM(MAX)が、既に生成されているN個のCADデータの特徴点P1〜PNと既に生成されているL本のCADデータの線分L1〜LLに対して十分に離れた位置にある特徴点か否かを判別する。そして、十分に離れている特徴点がM個あった場合には、そのM個の特徴点を既に生成されているCADデータに追加する。すなわち、N個のCADデータにM個の点を追加する処理を行なう。ここで、十分に離れているか否かの判別は、Q点とP点の距離あるいはQ点とL線分との最短距離が、Q点が計算されたときの可能性のある最大誤差とP点あるいはL線分のQ点に近い点(LP点)の計算されたときの可能性のある最大誤差の和を比較して、それよりも離れている場合には、その近いP点あるいはLP点から十分に離れた新たな点であると判別するようにした。このように判別すれば、同じ特徴点を別の特徴点と誤って判別することはなくなる。ここでは、単純に可能性のある最大誤差を想定するとしたが、厳密には、発生する誤差は方向によって異なるので、方向と誤差の大きさも考慮して判別することにより、より正確な判別ができるのでそのようにすると良い。この処理(1)は、生成されたCADデータが既に生成されているCADデータの更新対象となるか否かの判別処理であり、更新対象でないM個の特徴点が新たに追加されたものである。残りのM(MAX)−M個の特徴点が更新対象の特徴点となり、次の処理(2)以降で更新処理を行なう。
処理(2)では、既存点P点や線分から十分に離れていなく接近している特徴点を改めて次の処理のためにQ1〜QMに再定義する。ここでのM個は、前述のM(MAX)−M個とした。
次の処理(3)では、処理(2)でQ1〜QMと再定義した特徴点に近い以前に生成されているKN個のP点とLP点をKP1〜KP(NK)に定義する。ここで、一つのP点に近いQ点は、複数ある場合もあることから、必ずしもM=KNとはならないので、別々の個数として定義している。このとき、互いに近いQ点とKP点の関係は、既にわかっているので、どの特徴点がどの特徴点に近いかを互いに関連付けておくと後の処理がより簡単になるので注記してある。
図36に示した処理(4)〜処理(15)までの処理(A)は、点データの更新処理である。
処理(4)ではi=1と設定して、処理(14)でi=KNとなるまで処理(15)でi=i+1としながら次の処理(5)以降の処理を繰り返す。すなわち、KN個の点KP1〜KP(KN)について同じ処理を行なうようにしている。
処理(5)では、KPiに近い既存の点Q1〜QM点の中よりKM個の特徴点をKQ1〜KQ(KM)とし、処理(6)では、TEN=0,j=1として処理(12)でjがKMになるまで処理(13)でj=j+1としてKQ1〜KQ(KM)の総ての組み合せをチェックする。
処理(7)では、KPiとKQjの計算されたときの精度を比較し、KQjの精度がUP(向上)している場合には、処理(10)あるいは処理(11)で更新処理を行なうようにし、精度がUPしていない場合には、処理(12)へジャンプする。
精度がUPしている場合には、同じKPi点について、最初の処理の場合には、処理(10)でKPiの座標を単純にKQjの座標に更新する。同じKPiの特徴点に対して、2回目以降は、処理(11)にて分割更新の処理を行なうようにする。これは、以前にはKPiという1つの特徴点を2つ以上に分割することになるので、最初に存在するKPi点以外にP点を追加して定義する。そのため、N=N+1の処理もここで行なうようにした。
処理(9)でKPiが線分上の点(LP点)であったか否かを判別ロジックに入れているのは、線分上の特徴点であれば処理(10)の座標値の更新はなく、処理(11)で新たな特徴点を追加して分割更新させることが必要となるためである。
以上の処理を総てのKPi点について行なえば点データの更新処理が行なわれることとなる。
図37に示した処理(16)〜処理(27)までの処理(B)は、線分データの更新と追加の処理である。
最初の処理(16)では、線分データの更新を行なうに当たって対象範囲の総ての点データを拾い上げる処理を行なう。すなわち、3D座標へ変換するときに参照した画像データの視野中の総ての点データを抽出してKN個のKP1〜KP(KN)点として定義する。ここでは、前の処理で追加されたP点や座標の値が更新されたP点も含まれる。
次に、処理(17)でi=1と設定し、処理(26)でi=KNとなるまで処理(27)でi=i+1としながら処理(18)以降の処理を繰り返す。すなわち、対象となる総ての点データ,KN個の点KP1〜KP(KN)について、同じ処理を行なうようにしている。
処理(18)ではj=i+1として処理(24)でj=KNになるまで処理(25)でj=j+1としてKP(i+1)〜KP(KN)の総ての組み合せをチェックする。同じ組み合せは2回処理しないで済むように、jはi+1からKNまでとしている。
処理(19)では、点KPiとKPjを結ぶ線分データが既に存在するか否かで次の処理を処理(20)と処理(22)に分ける。
線分データが既にある場合には、処理(20)において点KPiかKPjの何れが更新あるいは追加されたものか否かを調べ、何れも更新も追加もされたものでない場合には、線分の更新処理は行わないで処理(24)へジャンプする。これは、線分の始点と終点の何れにも変化がなかったということから、途中の線分上も見直しするような変化はなかったと判断して処理を省略するものである。もちろん、始点と終点に変化がなくても途中の線分がより良く撮像されている場合もあるので、処理(20)を設けないで、総て処理(21)へ進むようにしても良い。
処理(21)は、線分の更新を行なう処理であり、輪郭抽出などで線画になった画像データを参照しながら、KPi点とKPj点を結ぶ線分データの見直しを行なう処理である。3D座標で計算されたKPi点とKPj点は、それを計算するときに用いた2次元の画像データ上の点として、どこの点であるかは対応が付いているので、画像データ中のKPi点とKPj点を結ぶ線分を抽出してその線分データを3次元の線分のデータ、すなわち、KPi点とKPj点を結ぶ3次元の点列データ、あるいは、KPi点とKPj点を結ぶ3次元の直線あるいは曲線の関数などを求めて線分データの見直し、再定義を行なう。ここで、処理(20)でKPi点かKPj点の何れかが追加あるいは更新されたという場合には、始点,終点となる点の精度がUPしたということであるので、線分データも見直せば精度はアップすることを期待した処理としている。また、既に存在する線分データが直線であっても、精度条件が良くなった場合に見直すことで、直線へのフィッティングに無理がある場合には、その時点で直線の線分データから曲線の線分データに変更すると良い。
一方、KPi点とKPj点を結ぶ線分データがない場合には、処理(22)へ進んで、線画などになった画像データを参照して、KPi点とKPj点を結ぶ線分が存在するか否かを判別して、結ぶ線分が存在しない場合には、処理(24)へジャンプする。
結ぶ線分が存在する場合には、処理(23)で線分データの追加処理を行なう。すなわち、画像データ中のKPi点とKPj点を結ぶ線分を抽出し、その線分データを3次元の線分のデータ、すなわち、KPi点とKPj点を結ぶ3次元の点列データ、あるいは、KPi点とKPj点を結ぶ3次元の直線あるいは曲線の関数などを求めて線分データを新たに定義する。
以上の処理をKP1〜KP(KN)点の総ての組み合せについて行なえば線分データの更新処理が行なわれることとなる。ここで、処理(21),処理(23)に引き続いて、面データの更新も直ぐに行なうようにしても良いが、この実施の形態では、次の処理でまとめて面データの更新を行なうようにしている。
図38に示した処理(28)〜処理(40)までの処理(C)は、面データの更新と追加の処理である。
最初の処理(28)では、面データの更新を行なうに当たって、前回の処理で更新された線分データの総てを拾い上げる処理を行なう。すなわち、前記処理(B)の処理の中で更新あるいは追加された線分データの総てをKN個の線分データとしてKL1〜KL(KN)と設定する。
次に、処理(29)でi=1と設定して、処理(39)でi=KNとなるまで処理(40)でi=i+1しながら処理(30)以降の処理を繰り返す。
処理(30)では、線分データKLiを成分とする面データを総て抽出してKM個の面データとしてKS1〜KS(KM)と設定する。ここで抽出対象となる面データは、総てである。総ての面データの中から、更新あるいは追加された線分データKLiを成分とする総ての面データを抽出する。具体的な抽出の方法としては、線分データKLiに繋がる線分データをCADデータ上で探索し、更に、その線分に繋がる線分というように線分データを探索して最初の線分データKLiに戻るルート、すなわち、線分データが作る閉ループを面として総て抽出する処理を実行する。
処理(31)でj=1とし、処理(37)でj=KMになるまで処理(38)でj=+1にして処理(32)以降の処理を繰り返し、抽出された総ての面データKS1〜KS(MK)について同じ処理を繰り返す。
処理(32)では、面データKSjに相当する面データが既にCADデータとして定義されているか否かを判断する。通常、同じ線分の繋がりで構成される、いわゆる面の裏と表に関しては同じ面の裏と表としてCADデータを管理しても良いが、ここでは、将来より詳細な形状に表は表で裏は裏で分割生成されていくことなどを考慮して、裏と表は別の閉ループ(別の面データ)として抽出するのが良い。処理(30)では新たに追加,更新した線分データにかかわる総ての面データ(閉ループの線分データの繋がり)を抽出するので、既に面データが定義されている面データも抽出されるし、今まで定義されていなかった新たな面データも抽出される。そこで、処理(32)では、抽出された面データKSjが既に面データとして定義されているものか、今まで定義されてなく今回初めて面データとして抽出されたもの、すなわち、新たに線分データが追加あるいは更新されたことにより、線分データの新しく定義される閉ループが生じたものか否を判別している。ここでの判別は、面KSjとその近くに存在する総ての以前に生成されている面データとを比較して、その面を構成する線分レベルでその線分の想定される最大誤差と当該面KSjを構成する線分の想定される最大誤差を考慮して、その誤差内で一致しているか否かで判別するようにする。その面を構成する線分の繋がり関係のみで単純に比較すると、1本の線分がその途中で分かれた2本の線分に更新されている場合には、面としては同じ面を示しているが、構成する線分はより詳細に分割定義されているために、同じ面とは判別できなくなってしまう場合がある。また、1つの面がその面を分割する新たな線分データが生成されたことにより分割される場合もあるので、面データKSjの全部あるいは一部が既存の面データの全部あるいは一部に一致する場合を含めて、既にある面と一致するか否かを判別するようにする。そのために、誤差内で重なる同じ面データがあるか否かにて判断するようにする。その判別の結果、既に面データがある場合には、処理(33)の更新の処理へ進み、当該の面データKSjに相当する面データが以前に作成されているCADデータの中になかった場合には、処理(35)で新たな面データ(線分の繋がり閉ループ)の追加、登録を行なう処理へ進む。
処理(33)の面データの更新においては、既に点データや線分データは更新されているので、それらの更新内容を参照しながら面データを構成する線分データの見直しを行なうようにしても良いが、更新前の面データが構成する更新前の点データや線分データも参照できるようにしておくことでも良い。面の更新を行なう場合には、面データKSjに一致する既存の面データがあることが前提となるが、面データKSjと既存の面データとが誤差範囲内で全体が一致している場合には、各線分データをより精度良く生成された新しい線分データに置き換えて定義し直せば良い。また、面データKSjが既存の面データより小さく、既存の面データの一部と一致している場合には、一致している部分の面データを新たに定義し直すと共に残りの部分をもう1つの面データとして定義して分割する処理を行なう。また、面データKSjが既存の面データと一致する部分もあるが、既存の面データより大きな部分がある場合には、その面データKSjについては更新処理を行わないようにする。これは、抽出された面データの中には大きな閉ループを抽出するケースが含まれるために生じるが、その中に小さな閉ループの面も抽出されているために、小さい面データの場合に更新処理を行なえば当該部分の面データは更新されるので良いものとする。CADデータは、より精度良くなる場合に更新されるようにするので、小さな閉ループが大きく統合されるような処理を行なわないようにする。
処理(33)で面データを構成する線分の更新を行なった後に面データの属性を更新するが、処理(34)にて面データの属性を更新するに十分な画像情報があるか否かを確認し、ない場合には処理(37)へジャンプする。更新可能な画像情報がある場合には処理(36)へジャンプする。
処理(35)は、面データKSjと重なる以前に生成された面データはない場合であるので、面データKSjを新たな面データとしてCADデータに追加定義する。ここでの定義は、面データを構成する線分データの定義である。
そして、その次に、処理(36)において、面データの属性を定義する。面データの属性は、画像データを参照する。元々、2次元の画像データより3D座標に変換して面データまで定義しているので、3D座標の点データと線分データにより構成される3Dの面データは、2次元の画像情報の中のどの点に対応しているかの対応が取れているため、その面と対応する部位の色、明るさなどの面データの属性を画像情報から読み取って面データの属性データとして登録する。処理(34)からジャンプしてきた場合には、面データの更新であるので、元々定義されていた面データの属性を見直し更新するものとする。元々処理(33)で更新されたことを前提に考えると、面の輪郭の線分データはより精度良く更新されていることから、今回の画像情報は、より正しい当該面の色、明るさを表していると考えて、処理(34)では、単純に当該面の画像情報の中の面積の大小や明るさで判断、すなわち輪郭は精度良く更新されたが、極端に斜めから見た場合とか、面は陰になって輪郭のみはっきりと見えているようなシーンであるか否かのみを判断するようにしても良いが、撮影時のカメラとその面を結ぶ線がその面の法線により近い場合、すなわち、その面をより正面から見ている条件の場合に更新するように、より厳密に判定させるようにしても良い。また、面の属性として透過率や反射率を定義するようにした場合には、その面の中に映り込んでいる奥の物体や反射して写っている物体の明るさをそれら物体との位置関係などの情報も用いて透過率や反射率に換算してから求めるため、必ずしも最初の処理で定義する必要はない。例えば、透過して見える物体があった場合に、その物体を直接見たときのその物体の面データの明るさと、その面を通して見たときの明るさと互いの距離関係などが総て求められたときに、その面の透過率を推定計算することができるようになるので、そのときに更新することができるようにしておくと良い。
以上の処理をKS1〜KS(KM)の総てKLiの線分に係わる面データに対して行い、更に更新,追加のあった総ての線分データKL1〜KL(KN)に対して行なうようにする。
図39は、図35〜図38を参照して説明した3D−CADデータ生成処理において特に点データ,線分データが更新されるときの概念を示している。
ステップ(1)に示す図は、更新前のCADデータの概念であり、点P1と点P2を結ぶ線分L1というデータである。点P1,P2の周囲の点線の円は、それぞれの点が3D計測されたときに想定される最大誤差の円であり、3D上では球として誤差円があると見做す。線分L1には、各々の線分上の誤差円、3D上では最大誤差を半径とする球が定義されるが、それを線分L1上の総ての点で考えると、その球の包絡面と見做すことができる。それが線分L1の周囲にある点線の部分である。線分L1の途中の誤差半径の大きさは、ここでは、線分L1の端部のP1,P2の場所での誤差半径より推定して比例で求めた大きさとしている。
ステップ(2)は、新たに求められた3D変換された点Q1〜Q4を更新前のCADデータの上に重ねて描いた概念を示している。点Q1〜Q4にもそれぞれの点が計算されたときの誤差を半径とする球を点線で描いている。点Q1とQ3は、その誤差半径を考慮すると、点P1の誤差半径の中に存在している可能性がある。すなわち、更新前にP1であった点がQ1である可能性もあり、Q3である可能性もある。同様に、点Q2は、点P2である可能性があり、点Q4は、線分L1上の点LP1である可能性があると見ることができる。
ここで、この発明における更新処理を説明すると、ステップ(3)では、同じである可能性のある更新前の点データと新たに計算された点データの各々が計算されたときに想定される最大誤差の何れが大きいかを比較(ここでは、誤差を半径とする球の何れが小さいかを比較)して、小さい場合には、より精度良く計測されていると見做せるので、点データの更新を行なうようにする。ステップ(3)は、その更新の概念を示している。すなわち、点P1の誤差円と点Q1の誤差円を比べると、点Q1の誤差円の方が小さいので、点Q1の座標値を点P1の点データに入れ替える。同様に、点Q3の誤差円も点P1の誤差より小さいので置き換えるが、既に点P1の座標値は点Q1の座標値に更新されているので、ここでは、新たな点P3を定義して点Q3の座標を入れる。これは、更新前の点P1が更新後は点P1と点P3に分割されたことを意味する。同様に、点P2は、点Q2の方が誤差半径が小さいので、この点P2の座標が点Q2の座標に置き換えられることにより更新される。同様に、点LP1の誤差半径と点Q4の誤差半径も点Q4の方が小さいので、点Q4の座標を点LP1の座標とするが、LP1という点は、線分L1上の仮想の点であることから、CADデータとしては新たに点P4を定義してその座標に点Q4の座標値を入れて更新処理を行なうようにする。
その結果、ステップ(4)に示すように、更新後のCADデータとして、点データは、P1,P2,P3,P4が更新されている。また、線分更新としても、ステップ(1)に示されている更新前のCADデータの点P1と点P2を結ぶL1という線分データは、点P2と点P4を結ぶ線分L2と点P4と点P1を結ぶ線分L3と点P4と点P3を結ぶ線分L1という線分データに更新されており、これらの処理は、図35〜図38に示した処理を実行することにより実現する。
図40は、図35〜図38を参照して説明した3D−CADデータ生成処理の中の新規なデータの生成と更新の概念を一般的な図形の生成と更新の概念に当てはめて描いた図である。
(1)は、点P1と点P2を結ぶ線分L1が初めは線分の長さが1mであったものが、次の計測により点P1と点P2の位置がより精度良く更新された結果、線分L1の長さも0.97mに更新される概念を示している。これは、精度UPによる更新の処理である。
(2)は、線分L1が生成されている状態で更に線分K2が見えて追加生成された状況を示している。これは、初めは物の陰になっていて見えなかった線分L2が、撮像装置10,20が移動して線分L2が見えるようになり、新たに点P3,P4が生成され、線分L2も生成された状況を示している。これは、新たな線分の生成という概念に該当する。
(3)は、容器の側面などの線分L1が見えていてCADデータにも線分L1が生成されているが、撮像装置10,20が物体を近くから撮像することによって新たな線分が見え、その線分が矩形S1を構成して最初の線分L1に付いている状況を示している。この場合、矩形S1の線分は、今まで見えてなかったものが見えるようになって新たに追加生成されたものであるので、生成の概念に該当するが、矩形S1の線分L1と接している部位は、データとしては、線分L1が線分L1と線分L2と線分L3に分断されるので、線分L1については、更新されるという概念になる。
(4)では、初めは線分L1が生成されているが、近くで見ると、点P1は点P1と点P3に分割して見え、点P2は点P2と点P4に分割して見えてきて、線分L1は線分L1と線分L2に分割生成されるので、この場合には精度もUPすることから、分割の更新の概念となる。
最後の(5)では、最初は側面が線分L1,L2,L3,L4からなる容器の側面のようなものに矩形S1のようなものと線分L5が付いている状況であるが、この場合も、撮像装置10,20が物体に近づいて詳しく撮影すると、矩形S1の左の1辺は矩形S2という形状であり、線分L5も矩形S3になる。この場合にも更新処理となる。
これら(1)〜(5)のケースが代表的な例であるが、図35〜図38に示した処理フローに基づいて3D−CADデータの生成処理を行なうと、このような生成と更新が行なわれることになる。
図41〜50を参照して本発明の第4,第5および第6の手段の基本的な実施の形態を説明する。
図41は、2台のカメラによるステレオ計測による基本的な実施の形態の概念を示しており、撮影対象901を撮像装置10,20の2台のカメラで撮影する所謂ステレオ計測の構成である。2台の撮像装置10,20は、お互いの位置と姿勢が既知の関係で固定されており、移動する場合には一緒に移動する。撮像装置10から得られる画像情報のイメージが(A)であり、撮像装置20から得られる画像情報のイメージが(B)である。(A)と(B)は、画像情報を取り込んだ視覚情報処理装置の画像メモリーの概念でとらえて良い。
ここで、画像情報処理としては、まず、撮像装置10,20からの画像情報の中の特徴点と線分を抽出を抽出する。線分は、特徴点を結ぶ線となる。この線分を抽出する処理は、2次元の画像データを微分処理した後に細線化処理する方法などさまざまな手法が考えられるが、できるだけ照明条件や撮影する方向に左右されないで、多少それらの条件が変っても同じように撮影対象901の特徴部位を抽出できる安定な手法を採用するのが良い。
今、画像イメージ(A)の中に特徴点1a,1c,1eが抽出されていて、また、線分としてはそれらの特徴点を結ぶ線分1b,1dが抽出されているとする。ここで、抽出する特徴点,線分は、白黒画像であれば輝度情報、カラー画像であれば色情報(R、G、Bの輝度信号)の変化する境界線を抽出するのが良い。ここでは、白黒、カラーの区別なくそれらの情報を色情報と言うこととする。そのように抽出された線分は、その線分の両側の色の境界を示しているので、それぞれの抽出された特徴点あるいは線分あるいはその両方(特長点と線分)に色情報をもたせて特徴点,線分のデータとして管理するようにする。
この実施例の画像イメージ(A)の中の抽出線分では、線分1b,1dの右側は色1、線分1b,1dの左側は色2であり、その境界線として線分1b,1dが抽出された状況を示している。それぞれの線分には左右の色情報(色1,色2)をもたせて管理する。画像イメージ(A)の中には、他にもたくさんの特徴点,線分が抽出されていて良いが、今は、ここで説明した抽出線分に着目して説明する。これはステレオ計測の手法になるが、画像イメージ(A)で抽出された特徴点1aについて、その点1aに対応する画像イメージ(B)の中の点を探索する必要があるが、2台の撮像装置10,20のお互いの位置関係が分かっているので、画像1aに対応する画像イメージ(B)の中の点は、理論的には、所定の線分1fの上に存在することとなる。実際にはいろいろな誤差要因があるので、線分1fの線上というよりは所定の幅を持たせた線分1hと線分1gで挟む領域内に存在すると考える。
特徴点1aの対応点が存在する線分を求める方法を図42を参照して説明する。撮像装置10の撮像面(図41の画像イメージ(A)に相当する面と考えて良い。)を、視点O1を定義する座標系のXY平面、撮像装置20の撮像面(図41の画像イメージ(B)に相当する面と考えて良い。)とすれば、視点O2の座標系のXY平面上の点P1が、図41の画像イメージ(A)の中の特徴点1aとすると、3次元空間の中の実際の点P1は、視点O2と視点O2を定義する座標系のXY平面上のP1点を結ぶ線分上に存在することになり、その線分は、視点O1を定義する座標系のXY平面上の線分P0P3の線上に存在するように撮影される。線分P0P3を求める方法は、例えば、視点O1を定義する座標系のXY平面と視点O1,視点O2,点O2を定義する座標系のXY平面上のP1点の3点が作る平面の交線を求めることで容易に求まる。ここでの実際の探索範囲は、撮像装置に撮影されている範囲になるので線分P0P3の上で探索すれば良い。
図41を参照する説明に戻る。画像イメージ(B)の中で画像イメージ(A)の中の特徴点1aに対応する点を画像イメージ(B)の中で線分1hと1gの間にある点を全て探索すると、画像イメージ(B)の中の(a),(b),(c),(d),(e),(f)の6点が対応候補点として存在している状況を示している。ここで、特徴点は、必ず線分として抽出するようにするために、線分に繋がらない1点の特徴点は処理の対象としないノイズ除去処理を処理の中に入れると良い。それぞれの対応候補点は、その点に繋がる線分を構成しているとする。
次の処理としては、この候補6点の中から特徴点1aに対応する点を見つけることになるが、その手順を以下に説明する。図41の画像イメージ(C)は、画像イメージ(B)で探索した6つの特徴点のそれぞれに画像イメージ(A)の特徴点1aをそれぞれ重ねて表示した画像イメージである。実際の処理としては、この段階では、画像データは特徴点や線分に置き換えられているので、CADデータどおしのマッチング処理になる。
マッチングの最初の処理としては、特徴点の上下左右の色情報の一致度あるいは線分の左右の一致度になる。
それぞれの色マッチングの例を図41の(D)を参照して説明する。画像イメージ(B)の候補点として探索されたそれぞれに特徴点1aを重ねて調べる。図41の(D)の(a)の例で説明すると、特徴点1aを候補点1nに合わせる。今、対応点を調べたい特徴点1aの線分の左右の色は、右側が色1で左側が色2である。また、図41の(D)の(a)で重ねる候補点側の線分の各両側の色は、色3,色5,色4である。候補点側は3本の線分が繋がっており、色情報はそれぞれの線分が境界となるので、この場合は、3つの領域の色情報がある。ここで、色1と色3、色2と色5の一致度が高ければ、特徴点1aの対応点は1nと分かる。このとき、実際の線である場合は、左右の色は一致して非常に安定な点ということになるが、片側のみが一致する場合も候補点となる。左右の色が一致度が少し劣るが似ている部位より、片側が非常に一致している方がより確からしい場合がある。それは、一方の色が背景である場合である。
詳細は後述するが、ここでは、少なくともどちらかが非常に一致する組み合わせを見つけて対応点候補の6個の中より更に候補数を絞り込む。処理としては、色の一致度に閾値を設けておき、両側が一致しない場合は対応点候補から除く処理、片側が一致する場合は輪郭線である可能性のある候補として残す。両側が一致する場合には実際線の可能性がある候補として残す処理となる。ここで、可能性があるという表現を用いたのは、このシーンだけからの判断はまだできないからである。実際には撮像装置は移動して視点を変えながら同じ点を計測する機会が生じるので、いろいろな視点から撮影した画像情報で常に実際線と推定される場合には実際線である可能性がより高くなる。しかし、たとえあるシーンで実際線である可能性があると判断される場合でもたまたま背景が同じように写っているだけである可能性があり、そのような場合には、視点を変えて同じ点をみたときに輪郭線であると判断される場合もある。処理としては、そのように判断されたときに実際線候補から輪郭線候補にデータを書き換えすれば良い。
図41を参照する説明に戻すが、色情報のマッチングの段階で候補数が1つになればそれ以上の絞込みは不要である。実際には、画像情報のひずみを精度良く補正して、また、ステレオ計測の2台の位置関係を精度良く求めることにより線分1hと1gの幅は狭くすることができので、線上にある対応点候補の段階で効率良く絞り込むことが可能となる。
次の色情報を用いたマッチングでまだ複数の対応点候補が残った場合には、他のマッチングも行う。マッチング手法としてはいろいろ考えられるが、例えば、図41の(D)の(a)で説明すると、線分1bに対応する線分は線分1n1q、線分1n1s、線分1n1rが候補になる。勿論、図41の(D)の(b),(c),(d),(e)にも1本づつ、(f)には2本対応候補となる線分が存在する。まずは、左右の色情報は左右とも異なれば候補からは除くが、まだ、複数残る場合が考えられるので、(a)で簡単な方法を説明すると、線分1bを線分1n1qへ対応させる場合の回転角δα1、線分1bを線分1n1sへ対応させる場合の回転角δα2、線分1bを線分1n1rへ対応させる場合の回転角δα3を求めて、所定のありうる回転角度以下を候補点に絞るとか、更に、特徴点1a以外の他の特徴点についても同様な絞込みを行ったときに、同じ傾向の多い回転角度のグループを候補点に絞り込むような方法もある。
また、もっとも精度の良いマッチング方法の例を、図41の(D)の(f)を参照して説明する。図41(D)の(f)では、画像イメージ(B)の対応点候補1iに特徴点1aを重ね、次に画像シーン(A)の点1cを画像シーン(B)の点1jに合わせるように変換する変換係数を求め、同じ変換係数を用いて他の点1eも変換して画像イメージ(B)の上に写像する。もっと、線分が複雑に繋がっている場合には、全部の線分を同じ変換式で写像する。そして、その写像結果と画像イメージ(B)で抽出された線分、この場合には、線分1i1j線分1j1k線分1k1mとのマッチングをとり一致度によって1iを対応点候補として残すか、除くかを判別するようにする。写像した線分と抽出した線分の長さが同じでない場合は、どちらの線分でも余分に長い部分は除いてマッチング度を求める。それは、撮影する方向が違った影響で、一方では境界線分が抽出されるが、もう片方の撮影の方向からは境界線分が抽出できない場合もあるためである。線分と線分のマッチング度を求める方法にもいろいろあるが、例えば、もう一度同じ太さの2次元の画像データの線分に戻して相関係数を求めるようにしても良い。
ここで、簡単な方法の一つを図41の(D)の(f)を参照して説明する。対応点候補1iへ特徴点1aを重ねて、線分1bを画像イメージ(B)の中の線分1i1jに重ねる変換係数を求める。変換係数は、位置は完全に点1aと点1iを一致させて次に点1cを点1jに合わせるための回転角度で考えても良いし、回転角度とスケースファクタ(倍率)の組み合わせで考えても良い。あるいは、別の手法としては、画像イメージ(A)を透明のガラス板にたとえて、その面に線分1b、線分1dが書いてあるとして、そのガラス板を画像イメージ(B)の上に重ねて線分1bが線分1i1jと一致するようにガラス板を前後左右に傾けたり時計回りあるいは反時計回りに回転させたり、あるいは大きさが変るように近づけたり離したりしたときの、傾ける角度,回転角度,離す距離、それから前後左右に移動した距離などを変換係数とする。この場合に、同じ変換係数で変換することは、同じガラス上に記載してある線分1dは同じ変換がされていると考える。その線分1dの写像が線分1j1kとどれだけ一致しているかでマッチング度を評価する。そのような方法でも何らかのルールに従って写像した後にその評価をすることになるが、マッチング度の指標としては2次元画像データに変換しての相関係数でも良いし、図41の(D)の(f)で説明すれば、線分1dの写像を線分1j1kに合わせるための長さの偏差δrと角度の偏差δθを求めてそれらの偏差が小さいほどマッチング度は高いと処理しても良い。ここで、δrは使用しないでδθのみで行っても良い。また、線分が複雑に何本も繋がっていてマッチングさせる両方の線分が同じように複雑で複数本ある場合には、次に、特徴点1eの写像点を点1kに合わせてその先に繋がる線分がある場合には同じようにδr、δθを求めて、その先も同じように合わせながら偏差量のδrとδθを求めていき、全体のδrの和、δθの和の大小でマッチング度として良い。また、途中で分岐している場合も同じように考えられるマッチングの組み合わせで合わせていき、一致度の一番高い対応線分を求めるようにする。
変換係数を求めるときには、最初に1本の線分1bを合わせるように変換係数を求めても良いが、かならずしも点1cが点1jに対応しているとは限らないので、繋がっている線分の全体が一番一致するように変換する変換係数を求めるようにする方が良い。
以上で特徴点1aの対応点候補は相当絞りこまれる。ここで注意が必要なことは、例えば、特徴点1aの対応点候補が1nと分かっても、必ずしも点1cの対応点が点1qとは限らないので、同じ処理を画像イメージ(A)の中の他の特徴点1c,1e,その他にも点がたくさんあれば、全ての点について行うようにする。その結果、更に複数候補が残っている場合には、複数候補が存在しないで一致度の高い特徴点の変換係数の傾向と複数候補残っているそれぞれの変換係数の傾向を比較して傾向の一致度合いより更に絞り込むようにすると良い。
対応点候補の絞込み方法は、その他にもいろいろなマッチング手法が考えられるが、優先度を付けてそれぞれのルールに基づいて対応点候補を絞り込むようにする。それで、最後にどうしても複数候補残る場合も考えられるが、それはそれで、次のように処理をすれば問題ない。それは、このシーンではその特徴点は3次元の点に変換しないでパスすることである。後で、撮像装置10,20が移動して撮影する視点が変ると、複数候補残っている特徴点についても1つの候補に絞り込めるようになる。
また、複数候補残る特徴点は、本当は対応点ではないのに誤って3次元変換してしまう点の撮影対象によっても生じる場合がある。それは、実際にその時の撮影位置からはそのように見える位置関係が存在するわけであり、画像情報処理システムとしても人間と同じように錯覚点を検出してしまうことがある。この対応としては、1箇所の視点でたとえ安定に対応付けされて計測した点についてもまだ安定な実際線を構成する点と判断するのではなく、次に視点が移動して別のシーンで同じ点を計測して複数回にわたって安定に対応点が存在して計測される特徴点,線分がより実際線で存在する特徴点,線分である可能性が高くなるので、そのような視点を変えて安定に計測できた回数などを指標に実際線である可能性を指標として管理するようにするのが良い。
これらのことは、撮像装置を移動させながら3次元CADデータを生成して、追加生成したり、より近くから撮影して精度が高くなる場合にはCADデータを更新する機能があれば、撮影対象901をいろいろな角度から、また、より近づいたりしてCADデータの精度高くしていく、第1〜第3の手段を適用することによってより有効に実現することができるものになる。
次に、ステレオ計測の処理の方法の一例を図43〜図49を参照して説明する。ここで、図43は、ステレオ計測を行う2台の撮像装置10,20のそれぞれのO1視点座標系とO2視点座標系と見る。2台の撮像装置の位置関係は、最初に精度良く求めておくということを説明したが、その一手法として、あらかじめ複数の対応点、ここでは3点P1,P2,P3を例に説明するが、O1視点座標系からみた点とO2座標系からみた点の対応関係をあらかじめ操作者が指定してその条件よりO1視点座標系とO2視点座標系の座標変換の関係式を求める。ある程度既知の位置関係の条件を使用して関係式を精度良く求めるようにしても良いし、3点ではなく少なくとも8点の対応点を操作者が指定すれば、位置関係がまったくわからない状態でも関係式を求めることができる。8ポイント法については、情報処理学会研究報告コンピュータビジョンとイメージメディア、No. 131-022、2001年、「幾何学的拘束による共分散行列の更新について」、などの文献があるので、ここでの詳細な説明は省略する。何れの手法を用いても、指定した対応点、例えばP1,P2,P3の点は、その点が対応するように関係式を求めるのでO1視点座標系とO2視点座標系のそれぞれで完全に一致するように対応がとれている。このようにしてあらかじめ求めておいた関係式より、例えばその関係式を求めるときに用いなかった点P4をステレオ計測で求める場合を考えると、点P1,P2,P3は、それぞれO1視点からの延長戦とO2視点からの延長線は交わる関係にあるが、点P4については、必ずしも交わらない。これは、いろいろな誤差要因があるからである。
図44は、図43におけるP4周辺を拡大した図であるが、線分L1と線分L2の交点は誤差によって存在しない。この場合の求め方は両方の線分に接する球を考えてその球の径が最も小さくなる球を求めてその球の中心点をP4の座標として求める。そして、その球の例えば半径rをそのP4点の誤差の半径と考える。
図44において、P4の球は、線分L2とP4atL2で接して、線分L1とはP4atL1で接している状態を示している。ここで誤差半径rは、画像のひずみの影響やステレオ計測する2台のカメラの位置関係を示す座標変換の計算式の精度に起因する部分もあるが、それらは画像ひずみを画像処理する前に補正するようにしたり、カメラの位置関係を示す座標変換の計算式の精度は精度良く行うことにより限りなくゼロに近づけることができる。その他の誤差としては、カメラの分解能があるが、それは撮影対象901と撮像装置10,20の距離と2台の位置関係からさけがたい計測誤差として生じる。更に、その他の誤差として、これは本発明での重要なポイントの一つになるが、対応点の対応精度に影響する誤差が含まれる。実際に撮影対象にペイントがしてある境界線を見ているような場合には、それは顕微鏡撮影などを行わない通常運用においては極めて安定な実際線となるが、物体の輪郭を検出した線分の場合にはどうしても撮影方向が変ったことによってもっともマッチングする対応点候補を選択した場合においても厳密には同じ撮影対象の部位を見ていないので、本当の対応点からは少しずれてそのズレがこの誤差半径rになって生じる。画像ひずみの誤差とステレオ計測の座標変換の誤差を1画素以内に十分小さくして撮影距離と分解能に関わる誤差は撮像装置の仕様とP4点の概略距離情報から決まるのでそれを差し引いた分が輪郭線ゆえの誤差半径となる。この誤差も球体や円筒面を計測する場合は大きくなり、鋭角な辺からなる直方体などの辺の誤差は小さくなるので、この誤差を当該点の安定度の指標として管理するようにする。輪郭線と実際線の区別も、その誤差半径でどちらの線に属するかの程度を表現するようにしても良い。そして、CADデータを更新するか否かの判断は、撮影距離と分解能に関わる誤差が小さくなることと共にこの安定度が良くなったかどうかも含めて総合的に判断するようにするのが良い。更に、後述するトラッキングを行うようにして更に計測座標をもとの座標系に変換する場合にも変換誤差が加算されるので、それらの総合的な判断で更新するか否かを判断するようにするのが良い。トラッキングを行う場合には、少なくとも3点の対応点が必要になるが、その3点を選ぶ場合にもこの安定度の良い3点を選ぶようにすればトラッキングによる座標変換による誤差も小さく抑えることが可能となる。
ちなみに、ステレオ計測では、誤差半径rが小さい点は、より安定な点ということができ、そういう点をトラッキング時の3点に選ぶようにする。鋭角な輪郭線の点は、誤差半径rがより小さく、実際線の点の場合は、誤差半径は一番小さくなる。
また、図45には、撮影距離と分解能に関わる誤差P4(r1)と輪郭線ゆえの誤差半径P4(r2)の概念を示す。図44のP4atL1の点とP4atL2の点には撮影距離と撮像装置の分解能、撮像装置の撮影関係(間隔)に関わる誤差があり、それを半径r2の球P4(r2)で表すと、その2つの球P4(r2)の中心に、輪郭線ゆえの誤差半径r1の球P4(r1)で表現する。この場合、誤差が小さくなる場合はCADデータを更新するわけであるが、処理を簡単にするために、球P4(r1)と2つの球P4(r2)を包絡する球P4(r3)を考えて、あらたに計測された点の球P4(r3)が、現在の球P4(r3)の中にあってより小さくなる場合には、その点のCADデータを更新するようにしても良い。
また、図46に示すように、撮影距離と撮像装置の分解能、撮像装置の撮影関係(間隔)に関わる誤差球P4(r2)は、ステレオ計測の場合のように撮像装置の間隔が狭く遠くを撮影する場合には、撮影方向に対して上下左右の誤差よりも奥行き方向の誤差の方が大きくなるので、それを球で表現すると処理は簡単になるが、精度の厳密性に欠けるので、視点O1、O2から引いた1画素に相当する円錐あるいは角錐の交わる部分の形状P4(δ)を誤差として管理するようにしても良い。この場合には、撮像装置が移動して視点O1,O2の位置が変わって、先に奥行き方向を計測していた部分が上下あるいは左右方向の向きで計測することできるようになったり、トラッキングして更に視点O1,O2の間隔が広がってより精度良く計測された場合があるので有効である。誤差の形状P4(δ)の形が全体として小さくなるのではなく、向きや方向によって一部分は更新して、前回計測部分が精度高い方向は前回の計測部分の誤差を用いて、全体として、例えば、誤差形状の体積や最長部位が小さくなる場合は、そのような前回と今回の誤差形状の組み合わせで更新してあらたな誤差形状として変形させながら管理するようにして良い。例えば、先に計測した奥行き方向の誤差が横から計測したことにより小さくなる場合は、先に計測した奥行き方向の誤差は新たに計測した左右の誤差になるように小さくして、先に左右方向で精度良く計測していた方向は、今度は奥行き方向になるので、その方向については前回の誤差形状を使って更新しないようにすることになる。このように、最初に生成される誤差の形状は、P4(δ)のような形状であるが、更新処理によりその形状を精度が良くなる部分ごとに小さくしていくことにより、誤差を形状として更新しながら厳密にCADデータの更新を行うようにしても良い。
図47は、視点O1,O2の2台の撮像装置からステレオカメラで最初に生成されるポイントP4の誤差形状P4(δ)を示している。奥行き方向の誤差は大きいために、外接円を書くとP4(r2)の球になる。
次に、ステレオカメラである視点O1,O2が移動して、図48のように、同じポイントP4を計測すると、視点O1,O2からポイントP4までの撮影距離も近くなっているので、上下左右の誤差の広がりも小さくなるが、図47の誤差形状P4(δ)を斜めから撮影することになるので、前回の奥行き方向で精度の良くない方向を今回は上下左右方向の精度で測定できるので前回の誤差形状P4(δ)は更に小さい誤差形状P4’(δ)にして管理することができる。外接円もP4’(r2)と小さくなる。新たな誤差形状を求めるときには、現在の誤差形状と新たに計測されたときの誤差形状を重ねて重なる部分を抽出するようにしても良い。重なる部分が前回の誤差形状全部になる場合は、今回計測誤差が大きいので当該点の計測座標値は更新しない。一方、新たに計測した誤差形状が全部含まれる場合は、新たに計測した計測座標値に更新する。また、一部重なる部分が前回と今回の誤差形状のそれぞれにある場合は、重なる部分を新たな誤差形状に更新する。その場合、計測座標値も更新するが、更新の方法としては新たに求めた誤差形状の中心(立体図形の密度を均一とした場合の重心など)を当該点計測座標値として更新するようにしても良い。この場合には、最初に計測する段階から計測座標値は誤差形状の中心の座標値を使うようにして良い。このように厳密に誤差形状を求めながら計測したポイントの誤差の大きさをその方向も考慮した形状で管理する場合には、更に輪郭線ゆえの誤差やトラッキングなどにより生じる誤差もその方向性を考慮した厳密な形状で管理するようにしても良い。また、ある程度、誤差形状に方向による依存がなくなった場合には簡略化のために球にして管理して、方向性に大きさ差が生じた場合に誤差形状で再度管理するようにしても良い。また、方向性を有する誤差も直方体や楕円球のような基本図形におきかえて処理をある程度簡略化するようにしても良い。
基本図形として、図49に示すように、誤差半径δRの球がPC点からP4を結ぶ方向にP4を中心にδLの長さの間にあるように近似して誤差を表現するようにすれば、3D点P4に付属させるべき形状誤差に関する情報は、半径δR、長さδL、Pc点の座標x,y,zの5つの変数で表現することができるので計算効率などを考慮しても合理的である。P4点の座標の更新にともなって、この誤差形状を更新する場合には、複雑な形状としないで、球の半径とその球が並ぶ長さに近似して、半径δR、長さδL、Pc点の座標x,y,zの5つの変数を更新するようにすれば良い。勿論、近似の時には近似した誤差形状が厳密な誤差形状より小さすぎることのないように半径δR、長さδLを決めるようにする。
次に、図43を参照して撮像装置が移動して視点が変る場合の処理の方法の一例を説明する。図43は、O1視点座標系は、撮像装置10,20の何れか1台の撮像装置の座標系を示しており、この位置から撮像装置がO2視点の位置に移動した状況を示しているものとする。ここで、撮像装置は、仮に左側の撮像装置10であると考える。左側の撮像装置10がO1視点にあるときに2台のカメラで先に説明した方法等を用いてステレオ計測すれば撮影対象の中の特徴点はO1視点座標系の3次元の点座標として計測されている。実際には、たくさんの特徴点が計測されるが、その中より対応点が一致して、計測の条件が良く、最も安定で、最も精度高く計測された点の中から3点を選ぶようにする。また、3点を選ぶ場合に精度が良いからと言って距離の近い3点を選ぶのもあとの変換精度が悪くなるので、適度に離れている点で安定で精度良く測定された点を選ぶようにする。計測できた特徴点が3点しかない場合はその3点を選択するしかないが、少なくとも3点が計測されてO2視点から撮影した場合もその3点が移っていれば画像情報によるトラッキングは継続できる。逆にいうと、3点得られない場合は画像情報によるトラッキングはできなくなるので、その場合には、再度、少なくとも対応する3点が移る状態になるまで待つか、別のセンサとして加速度センサやジャイロセンサ、磁気センサなどを撮像装置に取り付けておき、画像情報によりトラッキングできないときのカメラ位置を補間するようにしても良い。最初に抽出した3点以上の画像イメージ上の特徴点情報を消去しないで記録保存しておくようにすれば、途中は画像情報によるトラッキングができなくとも撮像装置が再度以前に撮影した近くに戻ってきた場合には、保存しておいた以前の画像イメージ上の特徴点情報を利用してそこからのトラッキング処理を再開継続するようにしても良い。
基本的なトラッキングの処理の例を説明すると、O1視点でステレオ計測された点P1,P2,P3が2次元の画像イメージ上で高速処理で見失わないようにトラッキングすれば撮像装置10aがO2視点の位置に移動してきた場合に点P1,P2,P3はステレオ計測によって、O2視点座標系の座標データとして求めることができる。2つの座標系で対応する3点P1,P2,P3のそれぞれの座標系での3次元座標が求まっているので、O1視点座標系とO2視点座標系の座標変換の関係式を求めれば、2次元画像イメージ上でトラッキングできなかった、あるいは、新たに撮像装置の視野に入ってきた、例えば点P4についてみれば、ステレオ計測でO2視点座標系の座標は求まり、それをO2視点座標系からO2視点座標系の座標値に変換することができる。このようにして、トラッキングを続けていき、少なくとも安定な3点のトラッキングができれば、全ての計測点は、最初のスタート時の同じ座標系に変換した3次元のCADデータが得られるようになる。
次に、図50を用いて単眼のカメラシステムの場合でも複眼のステレオカメラシステムの場合でも同じであるが、カメラの最初の視点O1座標系で既知の3点が存在する場合の同じカメラの移動後の視点O2座標系が未知の場合のO1座標系とO2座標系の座標変換の計算式を求める方法、すなわち、O1座標系におけるO2座標系の位置と姿勢を決定するトラッキングの手法について説明する。ここでの条件は、O1座標系でのP1,P2,P3の3次元座標が既知で2次元画像イメージ上の連続処理によって、O1視点位置のカメラの画像に写っている点P1,P2,P3とO2視点の位置のカメラの画像イメージに写っている点P1,P2,P3とは対応がとれているという条件である。
O1座標系とO2座標系の座標変換の計算式の定数が未知であるので、それを未知の変数に置き換え、O1視点座標系にO2視点座標系の全ての点を置き換えて考える。視点O1と視点O1座標系のxy平面(2次元のが画像に対応する平面)上の点P1を結ぶ線分の延長線と視点O2と視点O2座標系のxy平面(2次元のが画像に対応する平面)上の点P1を結ぶ線分の延長線とがO1座標系の3次元空間の点P1で交わるという条件、視点O1と視点O1座標系のxy平面(2次元のが画像に対応する平面)上の点P2を結ぶ線分の延長線と視点O2と視点O2座標系のxy平面(2次元のが画像に対応する平面)上の点P2を結ぶ線分の延長線とがO1座標系の3次元空間の点P2で交わるという条件、視点O1と視点O1座標系のxy平面(2次元のが画像に対応する平面)上の点P3を結ぶ線分の延長線と視点O2と視点O2座標系のxy平面(2次元のが画像に対応する平面)上の点P3を結ぶ線分の延長線とがO1座標系の3次元空間の点P3で交わるという条件からの連立方程式を解くことによって、最初に未知と置いたO1座標系とO2座標系の座標変換の計算式の定数は求めることができる。これによって、O1座標系とO2座標系の位置関係が求まるので、ステレオ計測システムであれば、O2座標系で計測できた他の3次元点データをO1座標系の3次元点データに変換できる。また、ステレオ計測システムにおいても左右のカメラの間隔が狭いために遠方をステレオ計測する場合の測定精度は良くならないことから、ステレオカメラシステムの左右のカメラのどちらか、あるいは両方を少なくとも3点の対応する点をトラッキング処理によって得られれば、ここで説明した方法で離れた2箇所のカメラ位置の関係が求まるので、その条件を使って、すなわち、カメラが大きく移動する前の位置で撮影したときに抽出した特徴点とカメラがそれから十分離れた位置に移動してきた現在撮影した画像情報内で抽出した対応する特徴点候補を用いて、あらためてステレオ計測することによって、左右のカメラでステレオ計測する場合より遠方の撮影対象の計測精度のより良いCADデータを得ることができる。また、単眼システムの場合には、常に、カメラが十分移動してから、最初のカメラ位置の画像情報と離れた位置のカメラからの画像情報から、3ポイントの対応する点より座標変換の計算式を求め、そのカメラ間の位置関係の情報を参照して、前述したステレオ計測と同じような手法で3次元のCADデータを生成することができる。
ここで、単眼カメラシステムの場合は、最初に3点の既知のポイントが必要になるが、その場合の手法を図51を参照して説明する。
撮像装置10は、最初は基準となるベースに設置する。このとき、撮像装置10をベースに何回着脱しても精度良く再現するように、ベース側と撮像装置側に印籠などの金具を取り付けておくのが良い。そして、ベースとの相対位置関係が頑強に変化しない関係でスタート時に視野に入るようにマーク6aを設置するようにする。基準マーク6aは、図に示すように十字でも何でも良いが、少なくとも3点、この場合は、例えば、基準マーク6aの角の3点P1,P2,P3のベースに撮像装置10を置いたときにカメラ座標系で精度良くその座標を求めておき、その座標値を使って、3ポイント法によるトラッキングと3D計測、CADデータを生成をスタートさせるようにすることも可能となる。毎回、同じベースからスタートさせることになる。これは、点検検査装置などに適用する場合は、定期的に同じ個所を点検するような運用が行われるので、あらかじめ基準ベースと基準マークを設置しておくとか、基準ベースと基準マークが一体になったカメラスタンド治具をもって現場に入って現場にマーキングしておいた場所にそのカメラスタンド治具を設置して運用するようにしても良い。常設が難しい場合には、有効な手段である。現場マーキングの場所に設置する精度が多少悪くても、生成されるCADデータが相対的に前回実施時とずれるだけであるので、検査作業としての運用上はその程度の設置のしかたで十分である。
また、単眼システムにおいて、基準マークを用いない方法もあるので、その方法に関連する内容をここで説明する。
前述した8ポイント法は、対応する点が8ポイント以上について2次元画像イメージ上でトラッキングできれば、対応する8ポイントを用いて離れた撮像装置の視点座標系の座標変換の計算式が決まるものであるので、8ポイント法を用いれば、単眼システムでも、最初に基準マークを撮影しないでもスタートできるシステムを構築することができる。8ポイント法を用いる場合は、安定な8ポイントをいかに選択するかという点が重要になるので、処理としては、複数の対応点が2次元画像処理でトラッキングできている場合にはそれらの複数のトラッキングできた点群から8ポイントを選び、その8ポイントで座標変換の計算式を求め、その計算式で8ポイント以外の他の点を変換したときに精度良く一致する点の数を指標として、他の8ポイントの組み合わせ全ての場合において同じようにその指標を求めて、もっとも精度良く一致する他の点がたくさん生じる場合の計算式を求めるときに使った8ポイントが最も安定で精度良く対応のとれている点とうことで、その8ポイントで求めた座標変換の計算式を使うようにする。このようにして、常にトラッキングしながら、8ポイント法で計測していく方法もあるが、8ポイントの組み合わせの数だけ計算式を求めて、評価を繰り返す必要があるために、計算速度を十分早くして適用するか、あるいは、最初のみ8ポイント法で計測して、安定な3ポイントが求まった場合には、前述の3ポイント法に切り替えて動作するようにシステムを構築しても良い。この場合は、処理速度との関係で、撮像装置を最初はゆっくり動かすように運用で工夫することでも良い。
画面上で常に対応点を8ポイント確保するためには、画像イメージの中の視野を大きく変化させると対応する8ポイントが得られなくなったり画面の片側のみに集中(片側に集中すると座標変換の計算式の精度に影響する場合もある)したりするので、3ポイントの方が対応点を確保しやすというメリットもあるので3ポイント法に切り替えるようにする方が良い。
なお、ステレオ計測でも単眼システムでも同様であるが、少なくとも3ポイントのトラッキングができていれば画像処理によりトラッキングが継続できるが、安定なポイントが2ポイント以下になってしまった場合には、加速度センサやジャイロセンサなどの信号でカメラ移動位置を補間するようにしても良い。再開する場合には、ステレオカメラシステムの場合には、最初から3次元の点を計測できるので、途中、センサで補間しない場合でも、計測した3次元の点群データで過去に計測していた点群とのマッチングをとることによって見失った撮像装置を位置を見つけて、継続再開するようにもできる。そのとき、加速度センサやジャイロセンサにより、見失っていた期間の撮像装置の移動情報があれば、概略の位置が推定できるので、CADデータで精度良くマッチングするにしても効率良くマッチング処理して現在の位置を精度良く見つけて再開しやすくなる。単眼システムの場合には、3ポイントを見失ったあとに再開する場合には、再度、8ポイント法から始めるようにする必要がある。
次に、図52を参照してステレオ計測の場合において、2次元画像情報上で色情報、その他のルールを使って対応する特徴点候補を絞り込む方法について説明する。図52において、(a)と(b)は、ステレオ計測している左右の画像イメージである。(b)の特徴点7aは、(a)の画像イメージの直線L1上にその対応点候補7aとして存在する。ここで、特徴点7aとその対応点候補7aの回りの色情報で対応点候補が間違いないか否かを判断するが、この場合は、特徴点7aと対応点候補7aの色情報が良く一致しているので対応点候補として使用する。万一、画像イメージ(a)の外にもっと適切な対応点が存在する場合も考えられるが、その場合は、撮像装置が移動して別の視点から計測したときに特徴点7aに対応する点が再度別の視点からも計測できたことを確認してから正規のCADデータにすることによって、このような錯覚点は容易に削除することができる。
具体的には、最初の1回の計測の段階では計測されれた点データに1回目というフラグを設けておき、別の視点から、場合によっては、3つの視点から厳しく判定するようにしても良いが、2回以上計測できた場合にそのフラグをリセットするようにする。もちろん、1回計測のみの点も確認表示することはできるようにして良いが、データ上は区別して管理するようにする。その上で対応点のずれによる計測誤差が大きいものは、輪郭線として、誤差がほとんどないものは、実際線として区別して管理する。輪郭線も実際線もいろいろな視点から撮影して計測を繰り返すことによって、最初は実際線と思われた安定な点も良く見たら輪郭線だったということもあるので、輪郭線と実際線を0か1で区別するのではなく、対応点のずれによる計測誤差の大きさでランク付けするようにしても良い。実際線も違った視点で数多く対応点の誤差が少なく計測されれば、実際線として安定な線分である可能性が高くなるので、こういう計測回数などの情報も点データとして管理するようにするのが良い。そして、トラッキングなどで使用する点は、できるだけ安定な実際線が良いので、そういう線、特徴点を容易に見分けることができるような実際線か輪郭線かの識別管理を行うようにするのが良い。
図52の(c),(d)は、同じ左右の画像イメージであるが、撮影対象に1個の直方体が追加されたシーンの例である。画像イメージ(d)の中の特徴点7bに対応する画像イメージ(c)の中の特徴点候補はL2線上に存在して対応点候補7bがある。ここで、特徴点7bと対応点候補7bの周辺の色情報を比較すると、色1と色2は違うが点7bから繋がっている色の境界線分は3本あるが、3本とも両側の色が異なる線分はないので、十分対応点候補と考えて良い。
次に、図7の(e)と(f)の場合であるが、この場合は、画像イメージ(f)の特徴点7cに対応する画像イメージ(e)の中の点は、線分L3上に対応点候補7c、7dの2点が存在する。このような場合の処理も、まずは、同様に点から繋がる線分の左右の色情報を比較する。この場合で比較すると、(f)の特徴点7cからは線分7i,7j,7kの3本が繋がっていて、(e)の対応点候補7cからは線分7g、7hが、対応点候補7dからは線分7e、7fが繋がっている。色情報を比較する場合は、点に繋がっている色境界線分の点に向かって右と左を比較して、右が右どうし、左が左どうしで一致するか否かを見るようにする。そうすると、線分7kと線分7hが両側一致、線分7jと線分7gが片側一致、線分7iと線分7eが片側一致している。線分7iと線分7gや線分7fと7kも片側の色が一致しているが、これらについては、それそれの線分を重ね合わせようとするときの回転しなければならない角度が大きいので、通常のステレオ計測で考えられない所定の回転角度以上は除くような処理も入れて良い。その上で判断するようにしたとしても、2つの対応点候補7c,7dには、それぞれ少なくとも片側の色情報が非常に一致する線分が繋がっているのでそちらも対応点候補となり、絞り込まずにここでこれらの点は絞り込めないため処理を行わないようにして良い。この場合は、次に撮像装置が移動して別の視点から計測することで、対応点が本当に存在する場合には、そのときに計測できるようにすれば良い。また、更に絞り込む処理として、対応点候補7cと7dでの線分の色情報比較結果で対応点候補7dは線分1本であるが、対応点候補7cは線分7hと7gの2本が対応する色境界線分になっているので、その線分の数を判別の指標にして、この場合は対応点候補を7cに絞り込むようにしても良い。この対応点候補7cの場合には、ここでは候補として残ってステレオ計測して3次元の点のCADデータに変換することはできるが、実際には存在しない錯覚点であるため、次に撮像装置が移動して同様に計測されるまでは1回目のフラグが消えない状態でこのような点であることは識別することができる。計測した点周辺で別の視点から計測しているはずなのに、1回計測した点が存在しない場合には当該の点データは消去するようにしても良い。
実際には、完全な対応点判別を行なおうとすると、いろいろな判別を行い、処理時間も長くなるので、簡略化した判別処理を行なってもよい。また、対応点探索で100%間違いないように処理するのは処理時間もかかり非常に大変になるので、間違った対応点で3D計測を行なってしまうと3次元の空間に実際には存在しない誤った3次元の点データが生成されるが、それを視点が移動する間に継続して同じ場所に同じ点が生成されるかをチェックすることによって、誤った対応点で計測した3D点であることを判別できるので、その関係を利用して、誤った対応点でステレオ計測してしまった3D計測点をキャンセルするような処理を入れても良い。
また、判別の別の方法として、ステレオ計測を行なった左右の画像の対応点を左右それぞれの2次元の画像内でトラッキングを行い別の視点位置から再度同じ対応点どうしでステレオ計測をしようとすると、例えば、図52(e)のL3などの右画像の対応点による左画像上の線分L3の上に左の画像の対応点が乗らなくなり、線分L3から離れる関係になって、ステレオ計測できる対応点ではないということが視点が変わることによって判別することができるようになるので、その関係を利用して、誤った対応点でステレオ計測してしまった3D計測点をキャンセルするような処理としても良い。
ここでは、境界線分の色情報の比較を行っているが、感度を落として抽出される線分の量を少なくしたような場合には、マクロ的な手法もるので説明しておく。それは、線分に左右の色情報をもたせて比較するかわりに、色境界線分は特徴点に放射状にあつまるので、少し大きなエリアを想定して2次元の画像のマッチング(相関性)をとる方法でも良い。この場合、特徴点から放射状に広がるので領域は扇形あるいは三角形や四角形になる。半径はあらかじめ所定の微小領域として決めておけば良い。但し、対応する扇の放射線分の開き角度は対応候補の色境界線分の開き角度と異なるので、同じ形状になるように変形処理を行って同じ形、大きさにしてから扇や三角、微小四角領域などで2次元の相関マッチングを行うようにする。
次に、図53〜図66を用いて、2次元画像上で色境界線分の色情報などを用いてトラッキングを行う場合の対応点候補の絞込みの方法の一例を説明する。
図53の(A)は同じカメラの移動前の画像イメージ、(B)は移動後の画像イメージを示している。ここでは、画像イメージ(A)の中の特徴点8cに着目してその対応点候補を画像イメージ(B)の中より探索して絞り込むものである。特徴点8cには色境界線分8bと8dが繋がっている。今、画像イメージ(A)を撮影してから、所定の時間間隔で画像イメージ(B)を撮影したとすると、その時間間隔の間に撮像装置が移動することによって特徴点8cの対応点候補の移動量が推定される。処理速度の関係から決まる撮影の時間間隔と撮像装置のその応用システム上での最大移動速度、回転速度などを考慮すれば、ある所定の時間内に画像イメージ内で移動する量は推定できるので、その移動量の内側を対応点候補の探索範囲と考える。この実施例では、特徴点8cの周囲に半径d/2の円を考えてその中で探索するようにしても良いし、領域は円ではなく1辺の長さがdの正方形としても良い。長さdが撮像装置の移動速度と処理速度を考慮して決める探索範囲の大きさである。当然のことであるが、処理速度を上げれば上げるほど探索領域は小さくすることができるので、処理速度は可能な限り早くするのが良い。また、特殊な場合は微小領域が大きくなって、最大は画面エリア全体の中から対応点候補を絞り込む場合においてもここで説明する方法で実施することができる。
ここでは、画像イメージ(B)の中の探索領域内には特徴点候補の点として3点8f,8g,8hが存在している場合の例を示している。領域内の候補を探索したらば、次の処理としては、色境界線分の両側の色情報が少なくとも片側が精度良く一致するものを対応点候補として残すようにする。これは、ステレオ計測の場合は線上から候補を探索した代わりにトラッキングでは微小エリア内から探索するところが違うが、その後の対応点候補を絞込み処理は、基本的には同じ方法を適用することができる。
図53の(a)では、対応点候補8fに特徴点8cを重ね合わせて、それらの点に結ばれる色境界線分どうしの左右の色情報を比較する。この場合は、対応点候補8fに繋がる線分は3本で特徴点8cに繋がる線分は2本であるが、繋がる線分の本数はこの視点からの撮影で必ずしも対応点でも同じ色境界線分が抽出されるとは限らないので、ここでの処理では、あまり気にする必要はない。
同様に、(b)では、対応点候補8hに特徴点8cを重ね合わせて、そこから繋がる色境界線線分の両側の色を比較する。
同様に、(c)では、対応点候補8gに特徴点8cを重ね合わせて、そこから繋がる色境界線分の両側の色情報を比較する。そして、左右の色情報の少なくとも片側が精度良く同じ色で一致した場合にはその線分は対応線分候補する。そして次の絞込み処理を行う。
次の処理は、ステレオ計測の場合にも適用すると同じであるが、1本の色境界線分を合わせるときにその線分に繋がる他の点の同じ変換結果がどれ程ずれるかという指標で絞り込むようにしても良い。図54の(a)の特徴点8aを対応点候補9bに合わせて線分8a8cを線分9b9cに合わせるようにする変換式を求めて同じ変換を線分8c8eについて行ったときにその写像線分と線分9c9dとの一致度をδθの回転量の誤差とδrの長さの誤差などの指標で行うものである。
図54の(b)は、特徴点8aを対応点9fに合わせるようにして、同様に線分8a8cを線分9f9gに合わせるように変形させたときに、線分8c8eの写像と線分9g9hとの一致度をδθの回転量の誤差とδrの長さの誤差を求めようとする例である。この指標の大小で絞込み、次の絞込み処理としては形の一致度として更に繋がる線分のマッチング性の高いものを選ぶようにする。それから、トラッキングの場合には回転も大きくなるが、全体が基本的には同じように変形されるので、全体の傾向の一致度を変換式が似ているか否かで大きく違うものは除くように処理する。特にマッチング度の高い変換式に近い変換式を有する対応点候補は対応点候補として残すように処理する。
このように、絞込みを行う方法はいろいろ考えられるが、あらかじめルール(処理の内容と優先度)を決めておき、絞り込めるまで絞込みを行うようにすれば良い。そして、最後にどうしても絞り込めないで複数候補が残った場合には、トラッキングの場合には、次のように処理することも可能である。それは複数残った場合でも、その他に良く一致する3点の対応点が見付かっている場合には、その3点を用いてトラッキング行えば良い。3点以上ある場合には、複数の対応点候補の中より3点を選んでその3点の座標変換の計算式を求めて3点以外の他の点をその計算式を使って写像させて精度良く一致する点の数を指標として、その指標の一番良くなる3点を使ってトラッキングするようにするが、このときに、1点の特徴点の対応点候補が絞り込めないで複数残った場合は、その点は更に複数残った対応点候補も3点の組み合わせ選択の中に含めて指標を調べてみるようにしても良い。特に、これは、抽出される特徴点が少ないような場合には全体として対応点候補も少ないときなどは1点の対応点を絞り込めない中に本当の精度の良い対応点が存在する場合もあるので有効な処理になる。
また、図55〜図57を用いて、色境界線分の色情報のみではなく、色境界線分の構成する面の色情報も積極的に利用して対応点候補あるいは対応面候補の絞込みを行う方法の一実施例を説明する。このような絞込みの方法はステレオ計測の場合は線分上で、トラッキング探索の場合は推定エリア内での探索になるが、同じように適用できる手法である。また、色境界線分のみでの絞込みでは、線分の抽出感度を下げて大きな変化点のみを抽出して対応点探索を行うマクロ的マッチングと線分の抽出感度を上げて微妙な色境界線を抽出してその線分の対応点を絞り込もうとするミクロ的マッチングを組み合わせて処理を行うことも考えられるが、ここで説明する手法は、例えば、同じような模様が複数存在する撮影対象の中でどの模様が別の視点から撮影された画像の中の対応する模様かの対応付けをしたいような場合にも有効な手法であり、マクロ的マッチングには面の色情報マッチングを行い、ミクロ的マッチングに色境界線分のマッチングを行うようにした場合の一実施例である。この手法の場合は色境界線分は面データを構成するとともに、色境界線分が閉ループ、すなわち、面を構成しないような場合も、全ての色境界線分は面データを構成するか、あるいは面データに付いているという関係を利用してCADデータを管理するようにすることで、どの線分はどの面に付いている線分かが処理の中でいつでも参照できるようになるので、面によるマクロ的マッチングから線分によるミクロ的マッチングへ、マクロ的絞り込み情報を有効に利用してミクロ的マッチングの処理へ繋げることも容易に行えるようになる。
図55は、ある画像の色境界線分を抽出した結果得られた線分の一部分を示している。多数の特徴点を色境界線分が抽出されている。例えば、点9i,点9jは特徴点であり、線分9i9jは色境界線分の一つである。
ここで、図55の線分の抽出方法は、後で図68を用いて詳細は説明するが、最も正確に感度良く色境界線分の抽出できる色の変曲点を抽出するような手法を用いる。これは、ミクロマッチングはより高精度で対応点を求めるので、それに使用する線分はより正確に抽出されたものが良いからである。但し、この手法で行うと、感度、精度が良いために、閉ループを構成しない線分も抽出される。端点9p,9qと間の部分は色がグラディエーションのように徐々に変化しているような部分で色の変曲点として抽出されていない状況である。面によるマクロマッチングを行うためには面を抽出する必要がある。
図56の(a)〜(d)は、色の面の抽出方法の例をいくつか説明する図である。図56の(a)の例は、閉ループになっていない色線分の端点9pと端点9qの例えば輝度レベルの平均値の輝度レベルの等高線を抽出する方法によって閉ループである面9Aを抽出した例である。端点9pと端点9qの輝度と平均輝度が一致しない場合は、等高線からは端点9pと端点9qを通らない閉ループである面9Aが抽出される。
また、図56の(b)は、色境界線分9n9pの色境界の輝度値で等高線を抽出する方法で閉ループである面9Aを抽出した例である。この場合、面9Aの等高線は、色境界線分9n9pに一致している例である。しかし、その他の厳密に抽出した色境界線分と閉ループにはなるが厳密性の劣る等高線として抽出した別の色境界線分は一致していないという例である。
図56の(c)の例は、厳密に抽出した色境界線をそのまま生かして閉ループになっていない端点9p,9qを結ぶように処理する場合の一例である。端点9pと9qをむずぶ線分9n9pは、厳密に抽出された色境界線分とは区別するために、閉ループ化のための仮想線分として種類を区別して線分データは管理するようにする。閉ループを生成するためにどのように仮想線分を結ぶかはいろいろな方法があるが、ここでは、一例を説明する。どのように閉ループが構成できるかの組み合わせはたくさんあるので、それぞれの特徴点から近くの特徴点を結んで良いかどうかを判定しながら適切な仮想線分を得るようにする。例えば、特徴点9m,9nを結んでも閉ループは生成できるが、この場合、例えば、仮想線分9m9nの左右の法線方向を調べて最も近い境界線分に至るまでの平均色を左右で求めて、左右の平均色が似ている場合は同じ色の平面内に仮想線分9m9nを結ぼうとしていることがわかるので、その場合には仮想線分9m9nは結ばないようにするなどの方法である。そのようにして、いろいろな組み合わせを行い、最も左右の平均色が違う部分を仮想線分として引くようにすると、同じ色の閉ループ内に仮想境界線分を引かないようにすることができる。この手法であれば、厳密な色境界線分と面データの境界線分は一致するようにして全てのエリアを面データに区切ることも可能となる。
図56の(d)は、別の例で、単純に同じような色の部分を所定の輝度レベルで等高線を引いて面を抽出するようにした例である。厳密な色境界線分と面データの境界線分は一致しない。この場合、厳密に抽出した色境界線分は、全てどれかの面の中に存在しているので、その関係を使って、最初に面でのマクロマッチングにより同じ色、同じ形の面を選択するようにして対応面絞込みを行った後、対応する面の中という限られたエリアの中でミクロマッチングにより厳密に抽出された色境界線分の対応線分、対応点の絞込みを行えるようにすることができる。これは、厳密な色境界線を抽出して精度の高い視覚情報処理システムを得たい場合の一手法であるが、勿論、より、単純な視覚情報処理システムとしては、厳密に抽出した色境界線分は用いないで、全ての線分を色境界の等高線で抽出して閉ループの面を構成する線分のみで処理をするようにすることでも良い。この場合は、生成される3次元CADデータの精度もそれなりのものとなる。
次に、図57の(a)〜(f)を用いて、同じ模様が一つの画像イメージの中に複数存在する場合の対応面、対応線分、対応点の絞込みの方法の一例を説明する。
図57の(a)は、ある視点から撮影した画像情報の色境界の閉ループを抽出した画像イメージの中の一部分を示す。抽出方法は、ここでは、先に説明した図56の(c)の方法で厳密な色境界線分を利用して閉ループの面データを生成した状態を示す。図57の(c)は、視点を少し移動して同様な処理を行った画像イメージの対応する部分を示すが、画像イメージは、視点が少し移動したため斜めから見たように変形している状況を示している。
ここで、最初の処理結果(a)の色境界特徴線分、特徴点の対応点が処理結果(c)の中から探索して対応候補を絞り込む場合を考える。ここれは、マクロマッチングとして、面9Aの対応面を探索する場合で説明する。まず、ステップ1では、処理結果(a)の中の面9Aの図形データを変形処理させながら処理結果(c)の図形データである面9A,9B,9C,…,9L,…の全ての面とのマッチングをとって一番マッチングの高いもの、他の面のマッチングにおける変形処理の係数で同じ傾向にあるか否かなどで絞り込むと、処理結果(c)の中の面9Aと面9Gが同じ程度に非常に良くマッチングするというマッチング結果が得られる。ここでの変形処理とは、図形を透明の平面ガラスの上に置いて、そのガラス板を持って、前後左右に傾けたり、遠ざけたり近づけたり、あるいは、回転させたりして一致するようにする処理であり、通常の座標変換処理でx,y,zの平行移動量とα,β,γの方向余弦の6つのパラメータを調整することに相当するものである。これらの係数の傾向を見る場合には、傾向は、撮影距離の大小によって異なるので同じ近傍であれば同じ傾向にあり、また、距離に応じた係数の変化傾向はあるが、撮影画像全体で同じ係数になるとは限らないので注意を要する。また、処理を簡略化するために、変形度合いの少ない場合、すなわち、2つの撮影視点の変化がわずかな場合には、対応点探索の精度が多少低下するために対応点の得られる数は減る場合もあるが、省略する方法を用いても良い。このステップ1では、処理結果(c)の面9Aと9Gの2つの対応面候補が得られる。これは、複数の同じような模様が並んでいるようなシーンを撮影するような場合は、2つに限らず、複数個の対応面候補が残る。
そこで、次の処理として、ステップ2を実行する。ステップ1では、処理結果(a)の面9Aのみでマッチング処理を行ったが、ここでは、処理結果(a)の面9Aの境界周辺に存在する面まで含めた面でのマッチング処理を行う。この例の場合は、処理結果(a)の面9Aの周囲には、面9B、面9C、面9Dの3つがあるので、それぞれ、1面づつを組み合せて、マッチング処理を行うようにする。
具体的には、図57の(d),(e),(f)に示すように、それぞれ変形処理を行ってマッチング処理を行う。その結果、変形処理(d),(f)は、処理結果(a)の中にも同じ模様構成になっているため一致度が高くなるが、変形処理(e)の結果では、処理結果(c)の面9A側ではマッチング度が高くなるが、面9G側では、処理結果(a)の面9Cと処理結果(c)の面9Jとは違う色、形状の面であるために、マッチング度が低くなり、その結果、処理結果(a)の中で2つ残っていた対応面候補の面9Aと面9Gのうち、面9Aの方がよりそれらしいということで絞り込むことが可能となる。但し、ここで注意を要することは、変形処理(d)と変形処理(f)ではマッチングしているので、厳密には、面9Gもまだ対応面候補である可能性がある。それは、面9Aと面9Cの境界線分が背景との輪郭線である場合は対応する面でも一致しない場合があるからである。そういうことから、処理としては、周囲の面を一つづく組み合わせて変形処理を行った結果、一つでもマッチング度の高い結果がある場合にはまだ対応点候補として残しておき、次の処理として、一致したものは、更に周囲の隣接面を加えて同じような処理を組み合わせる面を増やしていきながら行うようにする。同じ模様が密集している場合には、一つの面(ここでは面9A)の回りの面をどんどん組み合わせて広い複数面どおしのマッチング処理を行うようにする。そして、画像シーンの末端に違う模様が存在すれば、そこまで含めたマッチング処理に拡大していけば、マッチングする対応面候補とそうではないものを絞り込むことが可能となる。但し、撮影した画像シーン内の全てが同じ模様のパターンで埋まっているような場合は、この手法を適用しても対応面を絞り込むことはできない。これは理論的に絞り込めない画像情報ということになるので、そのような場合には、処理をしないようにして良い。このようにして、複数同じ模様が存在する場合でもその同じでない範囲まで広げたマクロマッチングで対応面を絞り込むことが可能となる。対応面が絞り込めたらば、その面に付いている線分どおしのミクロマッチング処理をその対応する面内で行うことによって、詳細部分を抽出している厳密な色境界線分、閉ループになっていない色境界線分についても対応線分、対応点を絞り込みすることが可能となる。ここで、線分が面に付いているというデータの管理上の概念は、本手法などを用いて3次元CADデータを生成したり、より精度が良くなった場合に更新したりする場合には、処理対象の面や線分のデータを容易に参照できるようにするために有効な手法である。
最初のCADデータが生成される前の最初には、背景という仮想面を定義して、何か生成された線分データや面データは、その背景という仮想面に付いているという考え方からデータを管理していくようにする。そして、線分は、閉ループになればそれは面データになるので、この面データも背景という仮想面に付いている面データとして管理する。更に、その面の中の線分が閉ループになり面データが生成された場合には、背景という仮想面データについている面データにその面は付いているということになる。このように、一番背景の仮想面データを頂点として、その下に線分データや面データが存在して、各面データの下には同様に線分データや面データが存在するというツリー状のデータ管理を行うことで、参照したい処理対象のCADデータを容易に参照できる。ここで、マクロマッチングのために引いた仮想線分は仮想線分として、また、仮想線分によって閉ループとなった面データはその段階ではまだ仮想面データであるので、実際の線分データや面データとは区別して管理するようにして、実際にモニタ表示する場合には仮想線分や仮想面は表示しないようにするのが、実際の情景に対応したCADデータになる。但し、形状データとしては、仮想線分や仮想面の処理の上で有効に使用できる場合は使用すれば良いので、どちらのデータも管理するが、区別して管理するようにするのが良い。また、本手法のように、仮想線分や仮想面データを生成して、各画像シーンの写る物体の全てが閉ループの図形になって表現するようにした場合には、厳密な色境界線分のみで処理すると閉ループでない線分から閉ループ図形に変化し、また、再度閉ループでない線分に変化するような場合の処理(詳細は図 14を用いて後述する処理)のようなことは行わないようにしても良い。このときに各面データが面を構成する線分だけではマッチングなどの処理速度が遅くなる場合もあるので、高速化のために、各閉ループ図形の図心、面積、最大の縦横長さ、週長さ、凹凸の方向ベクトルなどを求めるようにして、閉ループ基本図形のマッチング照合を短時間に行えるようにしても良い。
このようにマクロマッチングとミクロマッチングを行うようにするのが良いのであるが、感度を上げてミクロマッチング用の色境界線分を抽出しても微妙な線分を抽出しているのでわずかに視点が動くとミクロマッチングの段階でもマッチングがとれない場合もある。それは、視点変化の影響(ノイズ)の方が検出したい色境界線分より大きいということによる。そういう場合には、レーザー光を投射したりして、形状の微妙な凸凹を安定な色境界線を積極的に作って検出するようにしても良い。マクロマッチングは、感度を下げて、すなわち、厳密性を犠牲にしてラフに行う処理に相当するので処理速度も速くできることから、感度をリモートで変更(例えば、視覚情報処理装置へのコマンド指令などで変更、マッチングもマクロかミクロかをコマンドで指令できるようにしても良い。)できるようにしておくことにより、通常は、ラフなマクロマッチングにより粗いCADデータを生成しておき、必要なときに必要な個所の感度を上げてミクロマッチングによる詳細なCADデータを生成するようにしても良い。マクロマッチングとミクロマッチングの順番は逆に行っても良い。すなわち、最初からマクロマッチングを必ず行うようにするのではなく、最初にミクロマッチングで複数候補が絞れ込めない場合にマクロマッチングにより絞り込むようにしてマクロマッチング不要時の処理速度の高速化を図るようにしても良い。
また、図58〜図66を用いて、別の手法のマクロマッチングの方法として、周囲の特徴点との関係を利用して絞り込みを行う基本的な方法の例を説明する。このような絞込みの方法は、ステレオ計測の場合は線分上で、トラッキング探索の場合は推定エリア内での探索で同じように適用できることは勿論であるが、その他にも、探索時に用いるCADデータに変換した後の2次元模様や3次元形状のパターンマッチングで相関性の高い対象部分を見つけるときにも適用可能な手法である。
図58は、撮像装置から入力された画像情報を2次元のCADデータに変換したイメージを示す。ここでは、理解を容易にするために、極めて単純な画像情報を処理したイメージで説明する。画像情報の全体は、閉ループのそれぞれの色情報を有した図形9M,9N,9P,9Q,9R,9S,9T,9Uの8つに色境界線分によって分割処理されている。ここでは、厳密な色境界線分のみによって閉ループ図形が生成されているが、勿論、仮想線分や仮想面を定義しても良い。また、画像情報のフレーム枠の部分については、実際にその外側にある面の色境界線分はまだ不明であるため、仮想線分を用いて仮想面を定義してある。例えば、面9Mは、線分L1,L2,L3,L4から構成されるが、その中の点9r,9s,9uは、画像情報のフレーム枠上にある仮想点であり、線分L1,L2,L3,L4ともに両端点の少なくとも片側が仮想点のため、まだ、この段階では仮想線分であり、面9Mも仮想面である。面9Q,9R,9S,9T,9Uは、閉ループ図形に仮想線分が使われていなければ、画像フレームの中に全て入っているので、実際の面データとして生成されている部分である。CADのデータとしては、面9Nに面9Q,9R,9S,9Uと線分L7が付いているというように管理する。また、面9Tは面9Sに付いており、線分L8は面9Tに付いているということになる。また、これから、各特長点を3次元計測して、それに繋がる線分や線分が構成する面として3次元CADデータを生成した場合にもこの関係は基本的に同じであるが、3次元の場合には、先に述べたように、最初に背景という仮想面が一番後にあると考える。このようなデータ構成をとることで、花や草木や着物などの柔らかでしわのあるような物体のCADデータの表現も容易になる。また、3次元データの場合に注意を要することは、線分や面データが所定の面に付いているかどうかというのは、それらのデータが有する位置情報などから判断するとか、3次元の空間にある面に当該線分、面が付いているか否かを判断する処理が必要になる。2次元CADデータでは、後にある面の手前にある線分や面データがその画像の中では付いているように見えるだけである場合もあるため、2次元CADデータ上で付いているという関係であったものが、必ずしも3次元データ上でも付いている関係にあるとは限らないので、3次元データを生成していくときにはその関係は調べるようにするのが良い。2次元のデータでは、処理の便宜上、付いているというデータ構成をとって良いということである。2次元データでは、必ずしも、そのようなデータ管理をする必要はない。3次元データの場合には、処理が広大な3次元空間であることから、処理対象を絞り込みやすくするために、そのようなデータの構成をとった方が効率的に処理ができるということである。
次に、この画像処理結果のイメージ(図58)で撮像装置の視点が変わって別の視点から同じように同じ部分を撮影して、いわいるステレオ計測やトラッキングを行う場合に、同じような処理を新たに撮像装置から入力された画像についても行うようにする。ここで、対応する色境界線分や特徴点を絞り込む別の方法について説明する。ここでは、図58に示す画像イメージの特徴点9vの対応点を視点の変わった別の画像イメージの中から探索する。別の画像イメージも視点は変わるが、視野には同じような画像イメージ(図58)と同じような範囲が入っているものとする。そうすると、ミクロマッチングで特徴点9vに繋がる色境界線分L5,L6だけでマッチングを行うと同じよな模様が同じシーンの中に複数あるので、別の特徴点9w,9xも同じような特徴があって、ミクロマッチングだけでは絞り込むことが困難となる。そこで、マクロ的に離れた位置の特徴点情報も積極的に用いてマクロ的なマッチングを行うが、その効率的な手法として、他の特徴点の方向と長さを有するベクトルとその先にある特徴点の有する色情報を用いてマッチングをする場合の一手法を説明する。
図59(a)は、対応点を探索したい特徴点9vの色境界線分L5、線分L6が作る領域の狭い方について、近傍の特徴点までのベクトルV1,V2,V3を引いた概念を示す。このベクトルを視点の変化に対応する前述の形状変形処理(b)を行って、新しい視点で撮影した画像の処理結果(c)の中の対応点候補の全てにつても同様にベクトルを引いて、そのベクトルとその先にある特徴点の色情報の一致度より絞り込みを行う。変形処理は、簡略化するときには省略する方法を用いても良い。
図60と図61は、新しい視点で撮影した画像情報の処理結果(図59(c))の中の対応点候補としてミクロマッチングでは絞込みできなかった特長点9w,9xについて、同様にベクトルを引いた概念を示す。ここで、図60の場合は、面9Sに付いている面9Tや線分L8があるため、それらを構成する特徴点へのベクトルV1〜V6の多数が引かれる。この段階で図59(a)のベクトルV1とV3は、図60のベクトルV1,V6と一致するが、図59(a)のベクトルV2に相当する方向には、図60のベクトルV2〜V5が存在するので、点9wは対応点でない可能性が高いことが分かる。
また、図62は、特徴点9vからの色境界線分L5,L6が作る広い側の領域についても、同様にベクトルを引いて、また、視点の変わった後の画像情報で対応点候補9v,9w,9xの各々から同様にベクトルを引いた概念を示す。このようにベクトルを引いて比較すると、対応点候補9vは、対応点候補9w,9xより引いたベクトルが一致することより、真に対応する特徴点を絞り込むことが可能となる。
以下に、ベクトルの具体的なデータ比較の一例を示す。簡単のために、ベクトル4本とベクトル6本の比較で説明する。各々、ベクトルの方向、長さ、先の特徴点の色情報から構成する。方向は基準線分(例えば、特徴点9vであれば線分L5や線分L6)からのベクトルの時計周りの角度などで表現して良い。
<対応点を探したい特徴点Pのベクトルデータの一例>
ベクトル 方向 長さ 先の特徴点の色情報
PV1 角度1 距離1 縦境界線で左色L1、右色R1
PV2 角度2 距離2 横境界線で左色L2、右色R2
PV3 角度3 距離3 縦境界線で左色L3、右色R3
PV4 角度4 距離4 横境界線で左色L4、右色R4
<1対応点候補Qのベクトルデータの一例>
ベクトル 方向 長さ 先の特徴点の色情報
QV1 角度1 距離1 縦境界線で左色L1、右色R1
QV2 角度2 距離2 横境界線で左色L2、右色R2
QV3 角度3 距離3 縦境界線で左色L3、右色R3
QV4 角度4 距離4 横境界線で左色L4、右色R4
QV5 角度5 距離5 縦境界線で左色L5、右色R5
QV6 角度6 距離6 横境界線で左色L6、右色R6
ここで、特徴点Pから引いたベクトルはPV1〜PV4の4本あって、対応点候補Qから引いたベクトルはQV1〜QV6の6本であるが、本数はその撮影時に安定に特徴点が抽出されるか否かの相違が生じるので、対応点であってもベクトルの本数は一致しない。この例では、例えば、ベクトルPV2とQV2、ベクトルPV4とベクトルQV5が非常に良く一致しているという結果になる場合もあるが、それでも十分に対応点候補になりうる。それは、一致するベクトルの本数もどちらかで特徴点は抽出されて、どちらかでは抽出されていない場合もあるので、引いたベクトルの全部が一致するか否かで判別するのではなく、その中に先の特徴点の色情報までが一致するベクトルが何本あるかという情報で、他の候補点との相対的な比較で、どちらがより一致度が高いかで絞り込みを行うようにするのが良い。また、この処理において、比較は、対応点を探索したい特徴点9vに繋がる色境界線L5,L6の作る領域ごとに行う。比較結果は、別の視点で初めて視野に入った背景との境界線分(輪郭線)である可能性もあるので、必ずしも全ての領域で一致するとは限らないので、領域ごとに比較して、一致する、あるいは、一致度の高い領域が多くあるものを対応点候補して絞り込むようにする。この例では、色境界線分L5,L6が2本であるため、特徴点9v回り360度を2つに分割する領域でそれぞれベクトルを引いて一致度を調べるが、色境界線分が3本であれば領域も3つになるように、色境界線分の数に応じて多数の領域に分割して調べることになる。1本の色境界線分の端点の場合は、360度の範囲の1領域で調べる。また、この例では、その領域の中でベクトルを引く場合にベクトルが他の色境界線分に届く場合はそれ以上先の特徴点までは引かないようにした例であるが、ベクトルの一致度傾向の高い領域の有無を調べるようにするので他の色境界線分の向こう側にある特徴点までベクトルを引くようにして比較するようにしても良い。
ここで、図63の(a)〜(e)を参照して、判別ロジックの例を説明する。図63の(a),(b),(c)は、図58の面9R,9S,9Uのように、同じような形の形状を有する対応点候補のそれぞれにベクトルを引いて絞り込む場合の領域を図示したものである。いずれも、角度の狭い方が領域(1)で角度の大きな方が領域(2)になる。この例では、領域は2つの場合であるが、3つ、4つになる場合もある。また、処理を簡略化するために、色境界線を水平と垂直の方向で検出する場合、その検出された方向に領域を分割するようにしても良い。水平と垂直の両方に色境界線が抽出される場合は4つの領域になる。この簡略方式は、視点の変化に回転成分が含まれていないステレオ計測時の対応点探索時などには有効である。また、領域は必ずしもはっきり抽出できないような場合もあるので、ベクトルの一致度を一方向回りに順番に調べて一致するベクトルの割合の大きな領域と小さな領域の境目を後から領域と見なして処理をするようにしても良い。この方法は、視点の変化に回転成分の生じるトラッキング時の対応点探索時などには有効である。
ここで、領域(1)と領域(2)について、その領域内のベクトルの一致頻度が他と比較して十分高い場合に○、そうではない場合を×として判別する場合の一例を図63の(d)と(e)に示す。(d)は、対応点候補(a)は領域(1)と領域(2)で一致度が高く、対応点候補(c)の領域(1)の一致度が高い結果となっている例であるが、このような場合には対応点候補(b)は除けるが、対応点候補(a)と対応点候補(c)は、この結果だけからは絞り込むことはできない。対応点候補(c)は領域(2)側が背景でたまたま一致度が低かった可能性があるためである。勿論、対応点候補(c)が領域(1)と領域(2)の両方で×であれば、対応点候補(a)は領域(1)と(2)の両方が○であり、絞り込むことができる。また、(d)は、対応点候補(a)の領域(1)のみが○であるが、このように領域の一つでも○があって、他には○がなければ、対応点候補として絞込み可能となる。2つ以上の対応点候補に少なくとも一つ以上の領域に○がある場合には、そのマッチング処理だけでは対応点候補を一つに絞り込むことはまだできないという結果になる。そのような場合には、ベクトルが一致すると判別する角度と長さの許容誤差範囲を狭くしたり、ベクトル先端の色情報の許容範囲を小さくしたり、また、ベクトルを引く範囲を色境界線を越えては引かないように引く領域を限定したり、変形処理のマッチング精度を上げるようにすることで、より、精度良く対応点候補を絞り込むようにしても良い。また、ベクトルを引く本数は最初から多数引いて比較処理しないでも、最初は所定の距離以内に存在する特徴点に絞ってベクトルを引くようにして処理速度の高速化を測るようにして良い。その結果、絞込みが十分できない場合は、ベクトルを引く特徴点を更に広いエリアに広げて、より、遠くの特徴点の情報も用いてベクトルを引いて比較するようにしても良い。また、ここでの例では、ベクトルは他の特徴点までベクトルを引いているが、ここでの特徴点とは線分の端点や分岐点や線分の途中の大きな屈曲頂点などであるので、線分として分割されるデータとしては始点と終点の点のみであるが、ベクトルマッチングを行う場合に、線分の始点と終点の途中に存在する点に対してもベクトルを引いてマッチングさせるようにしても良い。これは、例えば、線分の本数が少ない場合には、線分の端点などの特徴点のみを使用してベクトルマッチングを行うと比較するベクトルの本数も少ないために対応点候補を絞り込むのがむずかしいような場合にも線分の途中の点までのベクトルはその線分の方向、形に対応したベクトルになるので、その線分の方向、形のマッチング度により対応点候補を絞り込めるようにもできる。更に、一方、線分の本数が多く、一箇所に線分が複雑に混み合っているような場合には、線分の途中の点までベクトルを引くと似たようなベクトルが多数存在して、逆に対応点候補を絞り込みずらくなる場合もあるので、ベクトルマッチングの方法として、特徴点までのベクトルで行って、絞り込めない場合は線分の途中の点も使用したベクトルマッチングを行って絞り込む、あるいは、この逆の手順にしても良いが、特徴点のみのベクトルマッチングと線分の途中の点までのベクトルも含めてベクトルマッチングを行う方法の両方を用いるようにして対応点候補を絞り込むようにしても良い。また、マッチング絞込みの手法として、ステレオ計測の場合もトラッキングの場合も両方に適用して良いが、最初に色境界線分を抽出するときは感度を低くしてはっきりとした色境界線分のみを抽出してマッチングによる対応点候補の絞込みを行い、次に色境界線分の感度を上げてより多くの色境界線分を抽出してマッチング処理を行う、2回目以降に行う場合は既にマッチング処理で対応点が明確になっている色境界線分は除いて新たに抽出された線分で対応点候補の絞込みを行うようにする。また、2回目以降のマッチング処理では、最初に求めた対応点の関係を積極的に活用して現在処理中の対応点候補の絞込みを行うようにしても良い。最初から感度を高くして多くの色境界線分を抽出すると、隣接した部分に多くの色境界線分が抽出されるので、対応点候補を絞り込むのが容易でなくなるのと、マッチング処理の組み合わせ回数も多くなるので処理時間も多くかかる。そこで、ここで説明した手順で何回かに分けて色境界線分を抽出するようにすることで、多くの色境界線分を精度良く、しかも効率良く対応点候補を絞り込むことが可能となる。
また、図63の(f)のように、2つの図形(a)と(b)が背景(Z)の手前にあるような場合でも、両方が共通の面(A)に付いているような場合には共通の面(A)の特徴点までベクトルを引くようにすることで、図形(a)と(b)のベクトルは違う部分が生じるのでベクトルマッチングで区別してそれぞれが対応点候補であっても絞り込むことは可能である。
また、図63の(g)のように、共通面がないような場合にも、図形(a)と(b)の相対位置関係が変わらない場合にはそれぞれの図形(a)と(b)にベクトルを引くことによって、識別して絞り込むことは可能である。但し、図63の(g)で図形(a)と(b)が互いに独立して背景(Z)の手前で移動するようなものの場合には、2箇所の視点からの画像を同時に撮影するステレオ計測時の対応点探索は可能であるが、トラッキング時の対応点探索には適用の限界がある。そのような場合にはステレオ計測して求めた3次元位置情報の変化のドレンドなどから対応点を対応付けする方法と組み合わせるようなことも必要となる。このようなベクトルマッチング手法を用いれば、特長点9vの対応点でミクロマッチングだけでは絞り込めない対応点候補9v,9w,9xの中から対応点候補9vを絞り込むことが容易に可能となる。本手法は、2次元でCG変換された特徴点の座標や色情報で処理を行うのみなので、局部的な微小領域の画像データやCGでも面データとしてマッチング処理を行うより簡単でより高速化が可能な手法である。
また、図64の(a),(b)は、本手法を3次元に拡張した場合の例を示している。図64の(a)は、あるときに生成した3次元の点データとして、点P1〜点P8が生成されていて、線分P1P3なども3次元データとして生成されている概念を示している。図64の(b)は、別の時間に新たに同じ部位のCADデータを生成した場合の同様の概念を示している。ここでは、今回、生成したCADデータ(a)の点P1に対応する点を別の時刻に生成されたCADデータ(こ)の中より探索するのに適用した場合の一例である。これは、CADデータの探索機能や2次元の画像トラッキングで見失って、再度、トラキングを継続する場合の位置合わせ処理などに適用可能である。
まず、点P1から周囲に所定の距離以内に存在する点までのベクトルを引く。同様に別の時刻に生成されたCADデータでは点P1の候補となる点全てにおいて、同じように所定の距離以内に存在する点までのベクトルを引く。(b)は、点P3からベクトルを引いた場合の例を示す。(a)の点P1からのベクトルと(b)の点P3からのベクトルを比較すると一致しないことから、点P3は点P1の滞欧点候補ではないことがすぐに分かる。同様に、(b)においては、他の点についても、ベクトルを同様に引いて調べると、真の対応点候補である点P1からベクトルを引いた時に非常に一致するので、点P1の対応点候補を絞り込むことができる。同様にして、3点の対応点を見つければCADデータ全体の対応がとれることになり、本手法はこのような場合にも有効に適用できる。
前述した例は、点P1〜P8が実際に存在する色境界線から抽出した特徴点の場合であるので、一致する対応点がそのままの処理で見付かる場合の例であるが、実際に対応する特徴点のデータが存在しない場合の例を、図65の(a)〜(f)を参照して説明する。
図65の(a)と(b)は、溶接線ビードのようなものに赤のレーザ光線を照射して溶接線の特徴ある実際の色境界線分の特徴点9y,9zなどがCADデータとして生成されている他に、レーザ光線により生成された輪郭線分RedL1〜RedL3とRedL4〜RedL6のCADデータがある概念を示している。(a)と(b)の違いは、同じ溶接ビードの部分のCADデータを生成したが、その時に照射したレーザ光線の位置や向きが異なるために、レーザ光線によって生成された形状を示す仮想線分の線分データ、その線分を構成する点データは、図(a)と(b)とでは対応しない場合を例にとって説明する。実際のビードの模様として検出された色境界線分は同じ位置に生成されるが、生成される線分の数が非常に少ないので、それだけでは形状によるマッチング処理ができないことから、レーザ光線により生成した仮想線分のデータも使ってマッチング処理を行う場合の例である。
図65の(c)と(d)に示すように、レーザ光線RedL2よって生成された線分の点RedP1,RedP2,RedP3は、レーザ光線RedL5よって生成された線分の点RedP4,RedP5,RedP6とは対応していないので、そのままの状態で、例えば、(c)で特徴点9zからベクトルV1,V2,V3,V4を引いても、(d)で同様に特徴点9zからベクトルV1,V2,V3を引いても、もともとレーザ光線によって生成した仮想点は対応する点でないため、対応する点の場合もそこから引いたベクトルは同じようにならない。すなわち、対応する点を絞り込みずらい。
そのような場合には、(e)、(f)に示すようにも、ともとある仮想点の間に途中を滑らかに補間するような(e)の仮想点Dp1(x),Dp2(x),Dp3(x)…と(f)の仮想点Dp1(y),Dp2(y),Dp3(y)を作って、特徴点9zからベクトルを引き、ベクトルの一致度を調べるようにする。このようにすることで、対応点が存在しない場合にも全体の形状情報から対応点を探索、絞り込むことができる。このような3次元のベクトルの処理においても、ベクトルの先の特徴点の色情報やそれに繋がる線分情報などを利用して、より正確に絞り込むようにして良い。
また、図66の(a)〜(e)は、本ベクトルマッチング手法を探索機能に用いる場合の例を示すものである。探索を行う場合の前提としては、2つ考えられる。それは、探索対象はある場所が既知で動かない場合と、探索対象は既知でもそれがどこに存在するか未知であるとか、あるいは、探索対象が移動する(位置と姿勢が変化する)ものである場合である。
図66の(a)と(b)を参照して、探索対象はある場所が既知で動かない場合の基本的な探索方法を説明する。(a)は、既知の探索対象901とその存在する既知の環境周辺の3次元CADデータの概念を示している。探索対象901およびその他のCADデータは、ワールド座標系O1の中でどの位置にどのように存在しているかが、あらかじめCADデータとして用意されているものとする。そのCADデータが本発明の手法であらかじめ撮像装置を移動しながらCADデータを生成したものであっても良いし、別の手段で生成されたものでも良い。そこで、探索時に、実際に撮像装置10からの画像情報が得られてその処理を行うことで2次元のCADデータを生成したり、ステレオ計測やトラッキング計測を行うことにより3次元のCADデータを生成させることもできるが、ここでは、探索を効率良く行うために撮影した画像データから生成した2次元のCADデータ(色境界線などを抽出した特徴点や色境界線分やそれらが構成する面などのCADデータ)と2次元の状態でマッチングを行う場合の手法を説明する。
具体的には、現在の撮像装置10の位置と姿勢がワールド座標系O1で分かっていれば、その位置から探索対象901を撮影した場合の見え方は3次元のCADデータより生成できる。図66の(a)は、3次元のCADデータの概念であるが、3次元のCADデータの中に撮像装置10を想定して、その場合に撮像装置10に結像される3次元のCADデータを生成すれば(b)に示すような参照すべき2次元のCADデータが得られる。この場合、対象物901は移動しないものであらかじめその環境の中での位置と姿勢が固定であるので、参照CADデータは、対象901とその他の環境CADデータの両方を2次元へ投影して生成する。ここで、参照CADデータである(b)の中の例えば点P1に相当する撮影画像情報内の対応する点を探索する場合は、先に述べたように参照CADデータのP1点から引いたベクトルと撮影して得られた画像情報に対して同じような2次元のCADデータを生成して得られる場面内の全ての特徴点から同様にベクトルを引いて、点P1の有する各領域においてベクトルの一致する領域のある特徴点を抽出して探索するようにすれば、3次元のマッチングよりも高速に2次元のベクトルマッチングで探索を行わせることが可能となる。
探索対象901が動く場合とか、ワールド座標系O1の中での位置と姿勢が未知の場合の基本的な探索手法を図66の(c)〜(e)を参照して説明する。この場合は、探索対象のみの3次元CADデータを用いて、2次元の参照CADデータを生成する。(c)は、物体901のみの3次元のCADデータであり、それを未知の3次元環境で探索する2次元のマッチング処理を行う場合には、物体901をいくつかの基本的な形状の見え方の違う方向から見たときに撮像装置の撮像面に投影される2次元のCADデータを視点の数だけ生成するか、あらかじめ2次元のCADデータとして用意しておくようにする。図66の(c)の例では、撮像装置の位置は撮像装置10(1),10(2),10(3)の3つの位置と姿勢で、各々そこから撮影面へ投影される2次元のCADデータを生成した状況を(d),(e),(f)に示している。ここでは、代表的な3つの見え方の異なる2次元のCADデータを示したが、他にも別の視点から撮影する場合の見え方で多数の参照CADデータを生成したら、あらかじめ用意しておくようにしても良い。あらかじめ持っているデータとして3次元のCADデータにしておけば、必要なときに必要な2次元のCADデータを生成させることができる。また、3次元のCADデータであれば、初めは代表的な視点から見た大まかな見え方の違いで概略の見ている方向の絞込みを行ってから、次にはその方向からでも微妙に異なる視点から見た2次元のCADデータを生成するようにして、それを繰り返すことによりマッチング精度を上げていくようにすることも可能となる。CADデータとしては、3次元のCADデータとある視点から見た2次元のCADデータの両方を持たせておき、2次元のCADデータを生成する時間を省略して概略探索できるようなシステムにしても良い。対象物が移動したり位置が未知の場合には、探索対象物体901のみのCADデータから探索する。実際に撮影した画像情報から2次元のCADデータを生成したものは、探索対象が写っていた場合にもその他の環境のCADデータもあり、特徴点は関係ないものも沢山存在する可能性あるが、同様な手法で全ての特徴点からベクトルを引いて比較するようにすれば、実際に探索対象が写っていた場合には当該部位の特徴点から引いたベクトルが参照CADデータの点から引いたベクトルと一致する場合があるので、それを探索するようにする。
このようにして探索を行う場合でも2次元のCADデータどおしのマッチング処理となれば、同様に探索したい対応点からベクトルを引いて、入力画像情報の中の各特徴点から引いたベクトルが一致する点を絞り込んで見つけることができるが、この場合は、用意した複数の2次元のCADデータのどの見え方にあるかが未知であるため、用意した2次元の参照CADデータ全てについて同じような処理を行い、視点の違いも絞り込むようにする。具体的には、この例のように3枚の2次元の参照CADデータ(d),(e),(f)が用意されている場合には、(d)の中の見えている点全ての対応点の探索を行い、(e)と(f)でも同様に行い、3枚の2次元の参照CADデータの現在撮影した画像情報から生成した2次元CADデータとのマッチング度の高い参照CADデータを選択するようにする。勿論、探索対象が全然写っていない場合もあるので、所定の閾値以上でマッチングする場合に3枚の参照CADデータの中より一番マッチングするものを選択するようにする。そして、ある程度、マッチングするようになったらば、視点を微妙に変えて2次元の参照CADデータを生成するようにして、より、精度良く探索対象を探索するようにする。また、参照2次元CADデータを生成する場合に、現在の撮像装置と探索対象との位置関係(例えば、道路の反対側から道路沿いにある物体を探索するような場合とか、橋の上にある物体とか概略距離情報が絞り込める場合など)、概略の撮影距離が既知であれば、それを考慮して2次元のCADデータを生成するようにしても良いし、向きが物体によっては決まってくるような場合(例えば置いてある状態は安定な姿勢しかとり得ないものとか)には、あらかじめ向きも絞り込んで参照CADデータを生成するようにして、2次元の参照CADデータの枚数をできるだけ少なくして探索速度を上げるようにしても良い。
また、2次元あるいは3次元のマッチングするときに、あらかじめCADデータのグルーピングを行っておき、特定のグループのみを探索対象のCADデータとして探索速度アップ、マッチング精度の向上を図るようにしても良い。具体的には、例えば、青や黄色の模様を背景とした本の表紙などに黒の文字の「ABC」が印刷されているような対象物体のCADデータを生成して、その中から文字の「ABC」を探索するような場合には、背景の模様のCADデータと文字「ABC」のCADデータがそれぞれ生成されるが、そのときに、どちらも、本の輪郭線の構成する閉ループの面に付いている線分であるが、探索したいものが黒の文字「ABC」であるから、まずは、黒の色境界線に関わる線分データあるいは黒の閉ループの面データを抽出して一つのグループAにしておき、背景の青と黄色の模様を構成する色境界線分データあるいは青系、黄色系の閉ループ面データのグループBに分けて、マッチング探索処理は、グループAの黒の文字に関係するCADデータの中から探索マッチングをとるようにすることで、より高速に精度良くマッチングできるようになる。
勿論、本の文字を探索するために各種タイトル候補の文字データとマッチングをとって当該本のタイトルを認識させる場合にタイトルの文字の色グループに絞り込みマッチング処理を行う場合でも、たくさんの本の中から黒の文字のタイトル「ABC」とある本を複数候補の本の中からタイトル部分をグループ化してマッチング探索する場合でも、同様に、色グループによる探索対象の絞込みは有効である。また、色によるグルーピングの他、線分の長さや面の大きさ、線分の直線、曲線、円弧などの形状、面の形などでもあらかじめ探索対象の特徴に応じて有効であればあらかじめグルーピング化を行い探索対象を絞り込んでから探索処理を行う方が、探索マッチングの処理はいろいろな方向、大きさなどを変えながらマッチングを行い一番マッチング度の大きなものを絞り込むため、処理によってはマッチング処理に時間がかかるので、最初にグルーピング化でマッチング対象の候補数を絞り込むことは探索時間の短縮に効果的である。また、最初にグループの特徴で絞込みを行っているので、その中でのマッチング度の高い候補を見つけるということは、別のグループの似ている候補をグルーピング化の段階でマッチング対象から排除できるので、マッチング精度も良くなる。
次に、図67を参照してトラッキングによる座標変換時の誤差の考え方について説明する。図67の(a)は、撮影対象901を視点O1から視点O2までトラッキングしてきて、単眼のカメラシステムでも良いが、ステレオカメラシステムでもその場所で十分離れた状態での3D計測を実施したとところとしても良い。(b)は、次のシーケンスになって、視点O2から視点O3になった状況、(c)は、視点O3から視点O4になった状況を示している。ここで、(d)は、それぞれの視点O2,O3が重なるようにしてCADデータを同じ座標系に変換した状況を示している。この場合は、トラッキングによる座標変換の誤差がCADデータに含まれる。
図67の(e)は、視点ではなく、CADデータの方を合わせるようにした場合の例を示している。この場合は、視点の位置、すなわち、撮像装置の位置と姿勢の情報にトラッキングの座標変換による誤差が含まれるようになる。CADデータを生成する応用システムの場合には、CADデータ側に誤差のらない(e)の方法を用いるのが良い。この場合、計測されるそのシーケンスでのCADデータとの相対位置関係で撮像装置の位置は求まっているので、最初のO1座標系からの絶対位置誤差は大きくなっても、現在の撮影対象に対する撮像装置の位置は精度良く求まっているので、障害物を回避しての移動制御や、対応物にアクセスするようなナビゲーションや自律制御に適用するに当たっては問題とはならない。また、両方CADデータもそれなりに合わせて、撮像装置の視点位置情報もそれなりにあわせるように変換する方法もある。それらは適用するシステムに応じてもっとも適したものを選定するようにすれば良い。
図68〜図70は、本発明の第7の手段の実施例の基本的な構成を示している。
図68において、X軸は画像データの水平座標であり、B軸は輝度値を示している。白黒画像であれば明るさであるが、カラー画像であればR,G,Bのそれぞれの輝度値と考えても良いし、カラー画像でも明るさの輝度値で処理する場合もあるので、そういう輝度値と考える。距離画像の得られる撮像装置の場合には、距離情報に対応した輝度値として適用する。ここで、X軸上のI1,I2,I3,I4は、画素のアドレスを示し、X1,X2,X3,X4,X5はX軸上の座標値(カメラ座標系におけるX座標の値に相当する座標値)を示す。それぞれの輝度値が11a,11b,11c,11dである。撮影対象の実際の輝度分布は、11fの実線のようになっているが、有限の画素を有する撮像装置で撮影しているために、センサ情報として得られる値は、各アドレスでの輝度値になる。ここで、輝度値が変化するということは、明るさや色情報が変わっていることであるので、その変曲点を見つけて、その左右の色情報をその変曲点の情報にもたせるようにする。変曲点の位置を推定する手法はいろいろあるが、最も簡単な方法は、輝度11aから輝度11bへの変化量から輝度11bから輝度11cへの変化量の増加になっており、次に輝度11bから輝度11cへの変化量から、輝度11cから輝度11dへの変化量は減少したので変化量の増減の傾向が反転する場所が、この例では画素アドレスI2とI3の間が変曲点11eとして抽出するようにすれば良い。更に、精度良く変曲点の位置を求める方法としては、前述のように変曲点が見付かったらば、その前後の4点の輝度値を用いて、例えば、3次曲線に最小二乗法などでフィッティングさせてその3次曲線の変曲点を求めるようにして、より本当の変曲店11gに近い位置を検出するようにしても良い。そして、抽出した変曲点の左右の色情報は検出した変曲点の左右の隣の変曲点までの色の平均色にしても良いし、隣の変曲点との中間当たりの点の色を色情報としても良い。平均化するときには変曲点近くの色情報は、変化している過程の色であるために除くようにしても良い。あるいは、あまり隣の変曲点を気にしないで単純に変曲点の左右の色情報をもたせるようにしても良い。変曲点は、色情報の変化する境界を示すので平均化した色にはそれなりの意味があるが、ごく近傍の原色を使う場合は差は小さくなる可能性はあるが色マッチングは原色で厳密に行えるというメリットがある。以上のような処理を水平画素以外に垂直画素でも行うようにする。また、斜め45度方向に画像を回転させてから再度水平方向の処理も加えて実施するようにすれば斜めの線分をより感度良く抽出できるようになる。
次に、このように抽出した変曲点から色境界線分の作成方法の一例を図69を参照して説明する。図69の(a),(b)は、画像データで4×4の画素のイメージを記載している。ここでは、色情報は2色で、色1の画素と色2の画素があるものとする。ここで、図68の手法で変曲点を求めてその画素の1辺の両端12a,11bなどの点を結ぶようにする方法である。
図69の(b)は、変曲点として抽出された画素の1辺の中央に点12cなどを定義してその点を結ぶようにする方法である。
(a)の方法は、画素に忠実である。検査装置などは(a)の方法が好適である。(b)の方法は、線分を滑らかに結ぶような感じになる。
次に、このように線分を抽出しても画素レベルから抽出しているので画素の単位でのギザギザ特性が残っていたりするのでそれらを取り除く処理を行うようにしても良い。
図69の(c)は、直線の途中にある点は省略できるので、線分のCADデータとしては途中の点を省略するようにして良い。また、(d)の例のように、所定の長さの直線の後に90度方向が変って1画素の長さの直線があって、次に逆方向に90度方向が変って最初と同じ長さの線分が繋がっている場合には、90度方向転換する部分の点は省略して直接結ぶようにしても良い。(e)の例は、同じ処理を1画素単位でジグザグしている部分を省略できる。また、(f)の例は、照明条件などにより必ずしも十分に線分が抽出されない場所では、直線と推定される線分は、そこに最小2乗法などでフィッティングさせた直線を定義して、そういう直線どうしの交点をあらたな特徴点をして定義するような処理を盛り込んでも良い。この場合には、このようにして求めた特徴点の誤差は、その点を作った直線を求めた計測点の誤差と直線でフィッティングしている誤差があるので、それらの誤差を推定して点データの誤差として管理して、そういうことも考慮した誤差が大きくなるか小さくなるかでそういう点の更新をするか否かを判別するようにする。
また、直線ではない曲線と推定される線分では、抽出された特徴点を直線で結ぶのではなく、滑らかなBスプラインなどの曲線でむすぶようにしても良い。また、図68で説明した特徴点、特徴線分の抽出方法は、精度良く境界部位を抽出できるが、精度が画素レベルで良いために、図69の(f)のように直線部が直線としてきれいに抽出されない場合がある。また、円弧が円弧としてきれいに抽出されない場合がある。また、一般の環境にある物体の輪郭や色境界には直線や円弧や滑らかな曲線が多く存在する。そこで、図68の手法で特徴点、特徴線分を抽出することと、画像の2値化処理などのもう少し精度は劣っても直線や円弧などをそれなりに抽出しやすい処理を同じ画像について行い、2値化処理などで抽出した図形の輪郭を直線や円弧、滑らかな曲線で近似して、それらの直線や円弧、滑らかな曲線に近い、図68の手法で抽出した特徴点、特徴線分について対応付けを行い、図69の(f)の直線でフィッティングさせたような手法で、図68の手法で抽出した特徴点、特徴線分群にフィッティングさせ、より精度の良い直線や円弧、滑らかな曲線を新たに定義して、それらの直線や円弧、滑らかな曲線を3D計測に使用するようにしても良い。
図70を参照して、図68を参照して説明した手法を適用して特徴点と線分を抽出した場合と他の手法の場合を比較して説明する。
図70の(a)は、撮影対象の画像の上に図68で説明した手法で抽出した特徴点と色境界線分を重ねて表示している。画像イメージ(A)は、特にA部を拡大して大きく表示したものである。撮影対象は、水中の溶接線のビードである。ここでは、輝度の変曲点を感度良く抽出するようにしたので、溶接線のビードの凸凹の微小な影とか、照明のスポットの輪郭線とか、ビードの横の汚れなどが抽出されている。この方法の特徴は、(d)に示すように、照明が当たって輝度分布に一様な傾斜が生じている中でゴミやわずかな凸凹などで一様な輝度分布の傾向の変化部を抽出して、左右の色情報は、傾斜している輝度の平均的な色情報としてもたせることが容易にできる。また、(e)の輝度部分のように、輝度の変化が緩やかな場合にもその変曲点の中間位置を抽出するようにすれば、色境界線の位置を実際より近く精度良く検出することができる。撮影対象が実際にそういう輝度部分をしている場合もあるが、実際の撮影対象の色境界がはっきりしている場合でも撮像装置のピントがボケているような場合には(e)の輝度分布のようになるので、そういう場合にも有効な手法でる。
図70の(b)は、同じ撮影画像を単純に輝度値のレベルで分けて境界線を抽出したものである。この方法であると、境界線は必ず閉ループになる点は良いが実際の特徴点が特徴点として抽出されていないで、どちらかというと照明の分布が抽出されている。(f)の輝度分布のような局部的にわずかな変化部は抽出できない。また、(g)の輝度の分布ように輝度の変化がなだらかな部位は、変曲している中央とは違った場所が抽出されてしまう。
図70の(c)は、同じような所定の範囲内(ΔRGB)の色を平均色を求めて同じグループにして、そのグループの境界線を色境界線として抽出した場合である。これは、色の変化する境界部位がΔRGB以内であれば(h)のように色境界線が比較的精度良く検出でき、しかも境界線は閉ループになるというメリットはある。境界線が閉ループになると面が定義できて、面には色情報も正確に付けられるので、アプリケーションによってはこの手法が有効な場合もある。この方法の場合、輝度の変化量がΔRGBより小さいと境界が検出されない。色境界線の抽出位置のズレは、そのあとの対応点探索精度、更に3D計測した点の精度にも影響する。
これらの方法の中でもっとも精度良くしかも感度を上げて色境界線を検出できるのは、図68を参照して説明した変曲点を求める方法である。また、特にVT(目視)検査装置に適用する場合には、正確にCADデータを生成することができる図68の手法が良い。この手法を用いれば、精度良く、また、感度良くCADデータを生成できるようになる。変曲点を抽出する感度は、輝度の増加量の増減をノイズと識別する閾値などになるが、感度は、画面全体で一定で処理をしても良いし、局部的な輝度分布の状態より局部的な閾値値を局部的な部位ごとに変えて画面全体に対して全て最良の感度で処理を行わせるようにしても良い。また、処理速度の観点から、常に同じ程度の処理対象の線分が生成されるように処理エリア内の線分の本数が所定の本数程度におさまるように感度を自動調整するようにしても良い。自動調整の一つの方法は、微小領域内の処理で生成された線分の本数をカウントして全体エリア内の本数を推定し、多すぎる場合は感度を落として、少ない場合には感度を上げてこの処理を数回繰り返すことで適切な感度に設定するようにすれば良い。
図71は、本発明における第8の手段の基本的構成を示している。図71は、特徴点をトラッキングしている状況を示している。
最初は、線分14a、線分14b、線分14cの3本の線分が検出されてそれらの線分の端点が特徴点となっている。これらの特徴点をトラッキングしている段階で線分が良く抽出されると3本の線分が1本の閉ループの線分14dになってしまった場合の処理の方法を説明する。
通常、線分の特徴点は、線分の端点や分岐点や鋭角な角の点や直線から曲線に変る部分の点であるが、線分が曲線でなめらかで線分上に特徴となる点がない場合にはトラッキング継続が困難となってしまう。第8の手段は、そのような場合にもトラッキングを継続できるようにするもので、特徴点のある線分から特徴点のない閉ループの線分に変ったときに特徴点の組替えを行うようにする。図71に示す例では、閉ループの線分14dに変ったときに、その閉ループの線分14dの閉ループの図形の中心14eと閉ループ図形の方向性の特徴として、この場合には方向14fと方向14gの方向に例えば凸状になっているという方向の情報である。方向14hと14gは、中心14eからのベクトルとして定義する。長さは、中心14eから境界線までの長さにしても良い。処理としては、このような閉ループの線分に変った場合には、当然、線分14a,14b,14cは検出されないはずであるから、以降の処理は、線分14a,14b,14cの代わりに閉ループの基本図形の形、中心位置、特徴ある形状部位の方向の情報などを特徴として閉ループの図形をトラッキングするようにする。そして、後で、再度、閉ループが閉ループでなくなった場合には、線分の特徴点のトラッキングに再度もどるような処理を行う。この例では、閉ループ14dは、次には線分14hと14iになったという状況を示している。このときには、閉ループの図形は存在しなくなっているので、その対応する図形での処理は止めて、あらたに検出された線分の特徴点をトラッキングするような処理とすることで、閉ループになる場合も継続してトラッキングできるようになる。
図72は、本発明の第9の手段の基本的構成を例示している。図72は、撮影対象901を単眼あるいはステレオのどちらでも良いが、撮影しながらCADデータを生成したときに線分L1,L2が計測されてワールド座標系O1(単純に撮像装置を動かし始めた最初のカメラ座標系と考えても良いし、そこと基準となるワールド座標系との関係が分かっていて変換されたワールド座標系と考えても良い。)で求められている。ここで、計測されたCADデータは、線分L1,L2のみであるので、閉ループにならないために面データはまだ定義されていない。面データが定義されていないので、面データとしての色情報もない状態である。このような状態で計測したCADデータをモニタに表示して確認しても実際の撮影対象901(例えば地面に立っているタンクのようなもの)と計測された線分L1,L2の関係がわからない。この第9の手段では、線分L1,L2を計測したときに、撮影した撮像装置の位置と姿勢とそのときの画像データを対応付けて記録しておくようにする。
図72の(c)には、線分L1,L2のCADデータに画像データG1,G2を対応させて記録している概念を、画像データG1,G2には画像ファイル名「画像001.JPG」などとその画像を撮影したときの撮像装置のO1座標系での位置x,y,z、更にx,y,z軸回りの回転角度のα,β,γを画像No.と対応させて記録しているデータの概念を示している。このように記録しておけば、CADデータを表示するときに、このデータよりCADデータL1,L2の背景にそのCADデータを計測したときの撮影画像を容易に表示できるようになる。
図72の(d)は、そのように対応する画像を背景に表示しているモニタ画面のイメージを示している。線分L1,L2の背景に画像データG1が表示されている。この場合、完全に線分L1,L2が背景の画像と対応するようにするため画像データの対応情報の中に撮像装置の位置と姿勢の情報があるので、自動でCADデータをモニタへ表示させるときの視点の位置を撮像装置が撮影したときに視点の位置に合わせて表示するようにすればCADデータと背景は一致する。この状態で、画面を拡大したり詳細に確認することで、計測された線分L1,L2が何に対応するものかが容易に確認できるようになる。また、3次元情報をもっている線分L1,L2は、良く形を確認するために、視点の向きを変更したり、より近くで拡大して表示させたい場合があるが、そのような場合には背景と対応しなくなるので、スイッチひとつで対応する状態に戻せる表示装置にしておいても良い。また、視点が多少変わった場合に、線分が付いている背景の写真の部位をCADデータの位置として背景画像を変形させて表示するようにしても良い。また、CADデータの線分がもっとたくさんある場合には、表示視点を変えたりしていると、どれかのCADデータがモニタの中央にくるので、そのような場合には、現在モニタの中央にあるCADデータに対応する背景の画像データに自動的に切り替るように表示する。複数候補のある場合には、最も現在CADデータを表示している視点に最も近い背景画像データを自動的に選択切り替えて重ねて表示するようにしても良い。また、ステレオカメラ方式の場合は、対象物によっては、特に、近かい距離で光る物体を撮影するような場合は、視点のわずかな違いで反射している状況の見え方が大きく変わる場合もあるので、そのような場合には、左右両方の画像を左右のそれぞれのカメラの撮影位置に対応つけて記録しておくようにしても良い。
また、CADデータの線分L1,L2の両側には色情報があるので、その色をある程度モニタ上で見やすいエリアで線分L1,L2の両側にCADデータとして表示するようにしても良い。この場合は、線分データ、背景画像データが少ない場合でもそれなりに線分周辺の色情報を確認できるようになる。勿論、背景に画像を表示して線分の両側にはCADの色情報を表示するようにして良い。線分の両側に表示する色情報の表示エリアは、表示したときに隣合う線分が密に存在する場合には小さくして、周辺に他の線分の表示がないような場合には大きく表示するように、自動で表示エリアの大きさが調整されるようにしても良い。
勿論、閉ループの面が生成されている場合には、面に画像を貼り付けるようにしても良い。特に色境界線の抽出感度を低くする場合には、色境界線分として抽出されない部分を画像のテクスチャとして貼り付けて面の色情報として管理する場合に有効である。この場合、当該面のより法線方向から撮影した画像に更新するようにしても良いし、見る角度で見え方が異なる場合は、一つの面に見る向きに応じた複数の画像を貼り付けるようにしても良い。閉ループが生成されない部分は、最初に生成される仮想背景に画像を貼り付けるようにしても良い。
図73〜115は、本発明における第11〜15の手段の基本的構成を例示している。
図73は、本視覚情報処理装置の基本的なアプリケーションの構成と視覚情報処理装置に対する基本コマンドと拡張コマンドを示している。視覚情報処理装置100は、カメラなどの撮像装置10からのビデオ信号を入力としてアプリケーション側の制御装置300と連携するが、連携するI/Fとしては、アプリケーション側の制御装置300から視覚情報処理装置100へコマンド指令を出して、その結果が応答として視覚情報処理装置100からアプリケーション側の制御装置300へ返すというのが基本概念である。アプリケーション側の制御装置300には、各種センサ30やアクチュエータ401を駆動制御するドライバ400などが接続される。勿論、この他にもいろいろなデバイスが接続されるようにして良い。視覚情報処理装置100には、CADデータなどを記録するメモリ200が接続される。これらは一つの例であり、これに類似した他の構成にしても良い。
ここで、アプリケーション側の制御装置300から視覚情報処理装置100への基本コマンドとしては、原点リセットでCADデータをクリアする機能、カメラの3次元位置情報を取り出すためのカメラ位置リクエスト、生成したCADデータの探索を行う探索コマンド、生成したCADデータをファイルに登録するファイル登録機能であるが、アプリケーション側の視覚情報処理に対する高速処理化に対応するた各種拡張コマンドを準備する。
以下、それらの拡張コマンドを例を説明する。
拡張コマンド1〜4は、CADデータを生成する場合に生成させる領域を指定するコマンドの一例である。領域の指定方法によって、ここでは4つの方法の例を述べる。
拡張コマンド1の領域指定方法は、ワールド座標系におけるX,Y,Zの位置座標とそこを中心とする領域の大きさを指定する方法で、ここでは、半径を指定して球状の領域を指定するものである。領域は直方体や円柱でも良いが、この例では球にした。このコマンドに対する画像処理上の処理は、基本コマンドだけでは、常に画面全体の処理をしているので処理時間がかかるので、カメラを早く動かしたい、例えば、ロボットを早く動かしたいような場合には、より視覚情報処理のスピードを高めたい場合があるが、そのような場合に有効な手法である。コマンドと一緒に送られてくる指定領域は、X,Y,Zの3次元座標とカメラの現在位置情報からカメラに写っている2次元の画像データ上でX,Y,Zのポイントがどこかが分かる。また、エリアの大きさも実際の大きさが半径rの球が2次元の画像上で半径がいくらの円になるかも位置関係から求めることができるので、その円の内側領域のみ3次元のCADデータを生成するようにする。勿論、トラッキングを行うための対応点を見失うわけにはいかないので、トラッキング処理は、画面全体で行うようにする。少なくともCADデータを生成する処理エリアが小さくなれば、処理の速度はその分早くなるので、早く動かしたいアプリケーションには有効なコマンドとなる。また、生成されるCADデータ量が少なくなれば、探索する処理時間も早くすることができるようになる。勿論、座標X,Y,Zは、その都度頻繁に変えて指定して良い。また、このようにCADデータの生成領域を限定した上でCADデータの探索を行わせるようにしても良い。また、CADデータの探索する範囲も同じように指定領域で限定するようにしても良い。これらの処理は、例えば、2足歩行ロボットが階段を下りるような場合には、足元の階段のエッジの部分のみが3D計測されてCADデータが生成されて、階段のエッジの参照CADデータで階段のエッジの位置を検出して次ぎに足を出す位置制御に利用するのに有効な機能となる。ロボットが次に足を出そうとする位置は、制御計画上予想されているので、その予想位置より領域を指定するようにすれば良い。また、カメラと一緒に指向性マイクを搭載した首振り機構などを有するロボットの場合は、指向性マイクの音声処理で探索しようとする対象の音が特定できるような場合には、指向性マイクの特性を利用して最初に概略の方向が分かればその方向を指定してCADデータを生成して、探索したい対象を探索するような使用方法もある。この場合には、X,Y,Z座標と領域の大きさではなく、方向と領域の大きさを指定するようにするコマンドを用意するようにして良い。
また、拡張コマンド2の領域指定は、2次元の画像の中で指定された速度(ゆっくり動くもの、あるいは高速で動くものなど)の例えば速度の範囲で指定して2次元の画像内でその速度で移動しているものを2次元の差分2値化処理などで変化部位を抽出して、その変化部位の2次元の画像内での移動速度を求めて、指定された程度で移動する物体が2次元の画像内に生じた場合にその移動している物体周辺の3次元のCADデータの生成を行うようにするコマンドの例である。2次元の対象処理エリアは、既に2次元の差分2値化処理で移動する物体を検出したエリアがそのまま3DCADデータの生成処理エリアとなる。このコマンドも動くものを高速に探索したい場合に処理エリアを限定することで有効なコマンドとなる。また、この機能を使用して、カメラを固定しておき、対象物を回転テーブルの上にのせて回転させながらCADデータを生成するようにすれば、実際の物体の参照CADデータを何もない部屋の中に入れて生成しないでも、背景にいろいろな物が存在する部屋の中でも回転テーブルに乗って移動している物体周辺のみのCADデータを生成することもできるので、そのように利用しても良い。
CADデータの拡張コマンド3の領域指定は、2次元の画像内で例えば光る部分を2次元の画像処理で検出して指定された輝度レベルで光っている物体があればその物体の周辺を処理するようにするコマンドである。これも探索したいものが光る物体であると分かっている場合などに有効である。あるいは、光っている背景の中で光っていない物体を探索するような場合にも有効である。
拡張コマンド4の領域指定は、2次元の画像内で特定の形、色、大きさの物体を2次元の画像処理で求めて、指定された形、色、大きさにほぼ一致する物体が2次元の画像上で検出された場合に、その検出した物体周辺を処理の対象とするコマンドである。これは、形状を探索対象の3次元CADデータでのマッチングの前に2次元のある特定方向から見たときの形、色、大きさなどで探索するので、高速処理で探索した物体を探索できるようになる。大きさなどは撮影距離に影響するので、現在のカメラの位置と探索したい領域との位置関係よりある程度推定して指定するようにする必要はある。2次元で探索する場合は、代表的な見る方向によっていくつかの違った形があるので、方向を違えた複数の2次元の参照データを一緒に指示するようにしても良い。処理としては、2次元の画像上で複数種類のマッチングを行うようにすれば良い。これも2次元の探索機能で概略候補を見つけてから、詳細な対象物の位置と姿勢を3次元の探索機能で探索するようにするので、トータルの探索時間はより高速化することができるようになる。一般に、撮影距離が離れている場合の遠方の画像は、左右のステレオ画像で大きな違いは生じないので、遠方は2次元の探索機能で高速に処理して、対象物体の近くにきたときには、左右の画像の違いも大きくなって2次元探索を行うと誤認識する恐れもあることから、カメラによる計測精度も良くなるので、探索も3次元の探索コマンドで精度良く対象物を探索するようにするのが良い。また、2次元の探索にするか、3次元の探索にするかも、探索物体が近くか、遠方かで、自動的に切り替るようにしても良い。また、拡張コマンド1〜4で処理エリアを3次元の所定の場所周辺を指定するかわりに、処理の簡略化のため、2次元のカメラによる画像情報から得られる方向の情報のみを指定して、指定した方向のものは手前から遠方まで、あるいは、手前と遠方の距離の範囲を概略指定するような方法で、基本的には、方向を指定するようにしても良い。
拡張コマンド5,6は、探索機能として、もっと汎用的に2次元の探索コマンド、3次元の探索コマンドを用意しておき、先に2次元の探索コマンドで探索指令を出している場合には、次ぎに3次元探索処理を行うときには先の2次元の探索結果をもとにそれまでの2次元の探索データを引き継いで対応する3次元の詳細な探索を行うようにする。2次元の処理で候補として探索されたデータが3次元の探索を始めるときの探索候補の物体としてそれらのデータが引き継がれて3次元の探索処理を行うようにしたものである。また、2次元の探索機能としては、3次元CADデータの中に探索対象の物体が分かっている場合に、また、それをカメラがどの位置から撮影することで当該対象を発見したいかというその位置候補が1個所あるいは複数箇所ある場合には、それらの候補位置から探索対象物体を撮影した場合にどのように撮影されるかという2次元の特徴点と特徴線からなる2次元の画像イメージを生成して、その画像イメージと実際に撮影した画像の特徴点と特徴線からなる画像をマッチング処理して2次元の探索処理や位置決め制御(ずれ量を検出して応答として回答する)のためのマッチングを行うようにしても良い。
また、ステレオなどの複数の撮像装置で2次元の探索コマンドを実行させる場合、少しずつ視点の異なる撮像装置の全ての画像情報を処理して2次元の探索処理を行うようにしても良いが、例えば、2眼のステレオの撮像装置の場合に、通常は左の撮像装置の画像情報を処理するようにしておき、左の撮像装置の画像に探索対象物が入っていない場合とか、手前に対象物を遮るものが写って対象物が写らなくなった場合には右のカメラの画像情報に切り替るなど、複数の撮像装置を自動的に切り替えるようにして、画像処理プロセッサを撮像装置の台数分平行して駆動しないで単純な構成で複数台の撮像装置の画像を用いて2次元の探索コマンドの画像処理が行われるようにしても良い。
2次元あるいは3次元の探索処理を行う場合に、探索する対象物が見る方向によって形が異なることは当然あるが、見る方向が同じでも対象物が変形するものである場合は見え方も変化する。そのような場合には、最初から全ての場合の変形を考慮して2次元あるいは3次元の参照CADデータを用意するのは大変であるので、変形する結合条件を参照CADデータとしてもたせておくようにする。
その例を図112〜114を参照して説明する。図112は、CADデータの結合関係をデータで記述する場合の一例を示しており、可動する各部品Part1とPart2の基本位置関係、動作軸(直動か回転か)、動作範囲を記述したものである。図113は、可動のある撮影対象の例として携帯電話機のようなもので、部品18aは、アンテナで本体の部品18bに結合しており、その結合条件は、所定の基本位置関係からz方向にZ1〜Z2の範囲で伸び縮みして、本体18bと本体18cは、x軸回りにθ1〜θ2回転するようになっている。このような参照データのものを探索する場合には、まずは最初に代表的な形状を選ぶ。それは、2次元探索する場合の視点を選ぶ場合もそうであるが、代表的な特徴ある視点を選ぶようにする。形状が変化するものについては、変形するパターンの中より代表的なパターンをいくつか絞り込む。この携帯電話機の場合は、図114の(a),(b),(c)が代表的な形状である。これは、普段、その対象物がそのような形をしている場合が多いという知識データより参照CADデータを生成するようにする。知識データは、ロボットに学習機能を設けて自動的に入力、記録されるようにしても良いが、まずは、人があらかじめ入力しておく方法もある。図114の(a),(b),(c)の3つのパターンが生成された場合、いきなり、3つの3次元CADデータでの探索指令を出すのではなく、まずは、2次元の探索処理を行うようにする。それは、図114の3つのパターンに対してそれぞれ体表的な形に見える方向をいくつか選択して、そのいくつかの視点から見た場合の2次元の参照CADデータを生成する。画像データにして画像データレベルでのマッチング探索できるようにしても良いし、2次元で抽出した2次元のCADデータ(この場合、2値化したような形状データも2次元のCADデータと称している。)を2次元の参照CADデータのマッチングをとるようにして良い。CADデータどおしのマッチングは全体の大きさを合わせてから行うようにする。部品の可動状態を考慮した2次元のマッチングは、基本的シルエットのマッチングで代表的な輪郭形状のマッチングになるので2次元の図形マッチングになる。更に、CADデータの表面にマークが付いていたり、模様の色情報も有したCADデータになる場合には、先に説明した色境界線分を抽出して、境界線分色情報の比較や線分の繋がりなど対応点を求める手段と同じ処理方法も取り込んで、模様などのマッチング処理をするようにして良い。ここでのマッチングは、代表的な形、代表的な視点かから見た複数参照パターンのマッチングになるので、概略のマッチングになる。概略であるのでマッチング度もそれほど高くはないか、そういう中でマッチング度が高かったものを探索候補物体として絞り込むようにする。そして、絞り込まれた候補物体に対して、次の段階で視点の位置、変形する量を少しずつ変えながら、よりマッチング度の高くなる視点の方向、変形の条件を探索しておくようにする。最終的には、3次元の探索マッチングコマンドで精度良く対象物体の位置と姿勢、可動部を有する物体の可動状態を求めることができる。
最初は概略のマッチングで、しかも2次元のマッチング機能を利用すれば、全体の探索時間をより高速にすることができるようになる。ここで、2次元の参照図形を生成する機能や大きさを推定する機能などは、その全部を視覚情報処理装置内に設けても良いし、アプリケーション側の制御装置側に一部の機能をもたせるようにしても良いし、アプリケーションとして構築しやすい機能分担を考えて良い。また、部品が動きうる可能性のあるもの、例えば、回転するタイヤなどは、止まっているタイヤの模様と回転しているときに普通のカメラ撮影して画像データとして撮影される模様は異なるので、そのような物体であることをあらかじめCADデータの結合条件か或いは別のデータとして登録しておき、探索時に参照して、模様が一致しない場合でも形が一致していれば回転中のタイヤであることが認識できるようにしても良い。また、タイヤのように丸くなく、四角の物体が回転する場合は回転したときの回転形状を回転する軸の情報より生成してマッチングするようにしても良い。
拡張コマンド7は、より処理の高速化を図るために判断機能も視覚情報処理装置内に設けるようにした場合の例で、一つの例で対象物体ID1と対象物体ID2が衝突するか否か、衝突するとした場合に、衝突までの時間を予想する機能を設ける場合のコマンドの例である。
図115は、物体20a1と物体20b1の移動の概念を示している。移動する物体20a1は、ある時間後には10a2の位置に、同様に物体20b1は物体20b2の位置に、更に同じ時間後には20a3と20b3の位置に移動した場合の例である。ここで、それぞれの3次元座標内での物体20a1の移動方向とその大きさは、ベクトルδa1,δa2と変化しているので、次の所定の時間までの動きを予測すると、更にδa3だけ移動することが予測できる。物体20b1の移動方向とその大きさについてもベクトルδb1,δb2と変化しているので、次の所定の時間までの動きを予測すると、更にδb3だけ移動することが予測できる。この予想から、2つの物体が衝突するか否かをチェックするようにする。また、更にその先の移動方向をその延長上で推定するようにすれば、衝突するまでの時間を推定することもできる。
図115の(G)は、2つの物体の動きを2次元画像上で示したものである。この場合の処理も高速化するために、2次元上の処理で判断するようなコマンドを用意しておき、2次元画像上で判断させるようにしても良い。3次元の移動軌跡であるベクトルδa1,δa2などは、2次元画像上の移動軌跡ベクトルδaXY1,δaXY2と対応する量であるので、厳密な衝突判断はできなくとも、少なくとも2次元の画像上で衝突しなければ、すきまが、まだ、あいている間は衝突しないと2次元処理の段階でも概略判断させることが可能である。また、先に3次元上で衝突予想位置を求めてその位置を2次元画像上に移して考えたときに、現在の画像上の対象物が衝突予定位置に来たかどうかでより精度良く判断できるようになるし、衝突するまでの時間をより精度良く予測することが2次元の画像上で高速処理でできるようになる。また、3次元と2次元の関係をあらかじめ確認して、3次元と対応する2次元での条件を設定(例えば、この物体の2次元画像のこの部位とこの部位の間にあれば衝突しないことなど。)を3次元データであらかじめ確認できるようにしておき、その関係を2次元の画像データ上で対応させて、監視するときには2次元の画像上で高速に監視して、何かロボットなどの制御信号にフィードバックするようにしても良い。
また、拡張コマンドとしては、コマンド指令後、撮像装置(ロボット自身)の絶対位置と姿勢情報のかわりに変位量と姿勢の変化量、あるいは、認識した物体IDの移動量と姿勢の変化量などを応答出力されるようにしたり、あるいは、変化量に所定の閾値を設定してそれを超えるような場合にはその旨の応答出力されるようにしても良い。このように、これらの拡張コマンドは、アプリケーション側の制御装置300の使いやすいコマンドを用意するようにして良い。
以上のように、これらの拡張コマンドを設ければ、高速にCADデータの生成や探索がより容易にできるようになる。また、参照CADデータを生成したときに電子タグシステムのデータと対応するようにCADデータを作成しておき、実際に探索する場合には、タグシステムの情報を利用してCADデータを管理したり、対象物体を探索するようにしても良い。押して変形、叩いて音を聞いて対象物の種別を認識するようにし、また、あらかじめ物体に関するデータを用意(あるいは学習するように)して、例えば、金属であれば叩くと高い音がする、ゴムであれば押すと変形して反力が検出される、水であれば変形して反力は検出されない、などの知識情報も活用して、ロボットのアクティブな動作も活用して、撮影対象の未知の物体が金属であるか、ゴムのようなものであるか、水のようなものであるか調べるような使い方もできるようにしておくと良い。また、探索した物体にICタグが付いている場合には、ICタグにあらかじめその物体の物理的な特性を書き込んでおき、それを読み取った情報を生成したCADデータの中に取り入れられるよういしても良い。また、一つの物体に目的を別にした複数のICタグが装着される場合、例えば、本環境認識システムのためにICタグを取り付けると先に別の目的に取り付けられていたICタグとダブル場合もあるが、そのような場合には、後から取り付けるタグ情報の中に同じ物体に既に張られているICタグの認識番号を書き込んでおき、そういう別のタグが付いている物体であるということや、別のタグが持っている情報を必要に応じて利用できるようにしても良い。
また、拡張コマンドに、人や動物やロボットを認識したその次ぎに使用するコマンドとして、アイコンタクトの有無を検出させるようなコマンドを用意しても良い。処理としては、認識した人や動物やロボットの参照CADデータと個々の部品結合データなどより、認識対応の目あるいはカメラの位置と部品CADデータを探索して、その視線方向が自分の現在いる方向か否かで、認識対象がこちらを見ているか否かを判断するようにする。また、輝度レベルが設定レベル以上の明るさの何かが光ったなら、あるいは所定の色の物体が何か視野の中に入ったなら、すかさず、その位置を3次元計測して計測結果の座標(X,Y,Z)をコマンドの応答結果として出力するような拡張コマンドを用意しておくことで、危険物を探索して発見した場合には、とにかくその方向からロボット自身の見を守るような動作を直ぐ取れるようにしても良い。このような処理を視覚情報処理装置100側で単一コマンドでクローズして結果がでるまで任せることができれば、主制御装置300の処理の負担と結果と指令のやりとりの煩雑さを不要にすることができる。
また、拡張コマンドとして、周囲に障害物などがない場合には、CADデータの生成を粗く行うようにして、周囲に特に近くに障害物がある場合(これは座標を指定しても良いし、視覚情報側で障害物を認識させてから処理をさせても良い)は、詳細にCADデータを生成するように切り替えるコマンドを用意しておけば、例えば、ロボットが移動中、周囲に障害物のない広いところを移動中にはラフに広範囲のCADデータを生成させ、障害物の近くをゆっくり移動するような場合には、常に障害物の衝突防止検出を行いながら障害物周辺の位置検出を精度良く行うようにする使い方も容易にできるようになる。
拡張コマンドに干渉チェックというコマンドを用意して、干渉チェックする対象物体、ロボットであればロボット自体の形状データとその時その時の各関節の角度情報などを指令データをして入力して、周囲環境と干渉チャックを行わせ、衝突する恐れのある場合には、応答として、アラーム信号と衝突部位(自分のどこと環境のどこが衝突するか)、現在のクリアランス量、現在のまま動くと衝突するまでの時間などを返すようにしても良い。そのときに、干渉チェックをよりしやすい方向へロボットの位置や撮像装置の向きや位置を誘導するためのロボットへ干渉チェックをより良く行うための望ましいロボットの制御データ(これは、ロボットの位置、姿勢、撮像装置の位置や向きなどの大まかなデータなどで実際にロボットを制御するための具体的な制御指令ロボットの制御装置などが生成してロボットを実際に制御するように機能分担することで良い。)を応答情報の一部として出力するようにしても良い。
また、探索機能関連の各種コマンドについても、より探索しやすい方向に撮像装置を移動要求に関わる情報として、望ましいロボットの制御データを出力するようにして、物の影で探索したい場所が見えない場合とか、光が反射して探索したい場所が見えない場合とか、もっと詳しく詳細に探索するために近づく必要がある場合などロボット制御装置と連携しながら効率良く探索できるようにしても良い。また、ロボットの手先に撮像装置を搭載するような場合や、あらかじめロボットの手先や足先の参照形状データを指定して、あるいはロボットが工具を持っている場合には工具の参照形状データを指定して、それと作業の目的(例えば、撮像装置自身や、足先、手先の到達目標を指定するとか、手先を環境の物体IDの座標X,Y,Zで正対させるとか、指定した認識対象の物体IDを常に撮像装置画面内入れるように追従させるとか、指定した物体IDを指定した物体IDの後に所定の位置関係で追従させるなど)を指定して、その目的を達成するためのロボットの制御誘導情報を出力するようにしても良い。
視覚情報処理装置は、ロボットの形状データと環境のデータをアクセスできる構成になるので、応答としては、撮像装置あるいは物体IDの座標系でX,Y,Zの方向、X,Y,Z軸周りの回転方向の速度指令で誘導制御指令情報として応答するようにしても良いし、ロボット側の動作関節構造が分かっていれば、各動作軸の制御信号にまで指令情報を分解して各関節の制御データを直接に生成できる機能を持たせることで、ロボットの制御系を合理的に構成することも可能となる。
また、2次元及び3次元の各種参照データベースを充実させておけば、例えば、路上で走っている車を認識して特定できれば、その車の運転席の位置情報もデータにあればそれを参照して運転席周辺のCADデータの生成や2次元あるいは3次元のマッチング処理を行わせるようにして、例えば、典型的な男女の参照データを複数用意しておけば、それらとのマッチングで運転しているのは男か女かの認識が可能となり、更に、個人の参考データを用意しておき、より詳細なマッチング処理を行わせることで、運転しているのは誰かというところまで認識させるような制御をロボットにも容易に行わせることが可能となる。
また、遭難者を上空から探索するような場合は、あらかじめ遭難者の参照データを容易していないような場合には、例えば、遭難者と背格好が同じような人に協力してもらい、考えられるいろいろな状況姿勢での2次元及び3次元の参照データを生成しておき、遭難者を探索するようなこともできる。これは、ロボットでなくても、車や飛行船やヘリコプターに撮像装置を搭載して移動しながら探索するような運用方法を用いても良い。探査時に赤外線カメラやX線CTなどの別のセンサと組み合わせて、それらのセンサで検知された部位に相当する場所、あるいは方向を精度良く探索するように連動させても良い。
また、距離の計測に3次元のレーザ計測あるいは距離画像と可視画像を得られるCCDなどを応用した2次元の距離センサなどと組み合わせてステレオ計測の代りに3次元計測をしてトラッキングや形状探索を行うようにしても良い。
また、CADデータベースに各種認識IDの形状情報に対応付けて、その名称や重量や各種情報を対応させてデータを管理するようにして良く、例えば、鳥であれば鳥の種類、大きさ(これは成長に伴う大きさ)ごとに代表的な形状データを登録したらば、それらのデータごとに鳥の鳴き声の音声データ(時系列の音声信号の一定時間のサンプル記録など)を登録しておき、視覚情報処理装置に音声認識機能も付加して、現在撮像装置で撮影探索認識している対象の物体(鳥)が何の種類か形状データのみでは特定しずらいような場合に、その時にマイクなどからの別のセンサで取得した鳥の鳴き声の音声データを取得して、その音声の所定時間サンプリングした時系列データを参照データとして入力すれば、その音声データもデータベースの中の音声情報とマッチングを行い、現在認識中の鳥の種類の特定処理に併用して、より精度良く物体の認識ができるようにしても良い。
また、拡張コマンドとして、1回特定の対象物体を認識したならば、その物体IDを指定して、物体IDが移動するような場合にも継続認識させて3次元空間上位置と姿勢を連続して応答させるコマンドを設けるようにしても良い。移動する物体が撮像装置の視野から外れたり、手前の障害物の後ろを移動して継続した認識処理が途切れるような場合についても、図115で説明したように、それまでの動きを予測して継続して探索すべき場所を視覚情報処理側で自動的に推定して認識処理を行うようにさせても良い。それでも見失った場合には、その結果を応答する。
また、拡張コマンドとして、探索範囲と2次元あるいは3次元の参照CADデータを指定して、同じような形状物体、模様などの数を数えて、数えた数を応答させるようにしても良い。
また、過去に1回認識してIDが特定されているものは、CADデータあるいはそれに対応する各種データなどの代りにIDを指定するようにして、物体に付けた特定の名前(番号)であるIDによって参照するべきデータを視覚情報処理側で自動的に参照できるようにしても良い。また、あらかじめ、何を検出するか決めておき、検出範囲とその検出する内容をコマンドで指定して、その検出結果を応答されるようにしても良い。例えば、水道の蛇口の場所を指定して、蛇口から水が出ているか否か、コンセントの場所を指定して、コンセントにプラグが差し込まれているか否かを検出させらり、ランプや信号等であれば、その位置を概略して、ランプや信号が付いているか否か、何色か、などを応答するようにしても良い。
このように、拡張コマンドとしては、AI的な処理を含めた、アプリケーション側であれば有効なコマンドをあらかじめ決めて、各種用意しておくようにしても良い。また、典型的な動作パターン(動き)のデータベースに登録しておき、認識対象の動きがデータベースに登録してある動きと同じか否かを判別することによって、認識対象が何の動作をしているかという、あらかじめデータベースに登録してある動作の種類(例えば、人間が歩いている動作、万歳をしている動作、屈伸運動をしている動作など)を応答出力できるようにしても良い。動作の参照パターンデータとしては、時刻データ付きの3次元CADデータで表現して、時間軸のスケールはその動作パターンごとに登録されている所定の範囲内で可変で合わせるようにして、時系列のCADデータの動作パターンの相関性、具体的には、1シーンごとのマッチングをとって、姿勢のマッチング度とその変化する姿勢の時系列順番のマッチング度より、参照パターンデータの中に現在撮影している画像情報の中の認識対象の動きが所定の閾値以上に一致する場合には、当該参照パターンの動作をしていると判断するようにしても良いし、動作パターンを全て時系列の3次元CADデータで記述しないで、動きの特徴、傾向(例えば、手の動きの大きさ、早さ、位置など)の時系列の特徴量の変化パターンで記述しておき、撮影画像の認識対象物の時系列の当該特徴量を抽出比較してどの参照パターンの動作をしていると判断するようにしても良い。このときデータベースは、3次元の動きの特徴量を登録しておき、マッチング処理を行うときには、認識対象と撮像装置の位置関係より参照データを2次元画像上での特徴量の変化パターンを求めて2次元の処理で特徴量の変化パターンのマッチングを高速に行うようにしても良い。また、コマンドしては、探索対象物を特定しないで、撮像装置から入力される画像情報に対して、データベースに登録されている参照CADデータとのマッチング処理を自動で行わせて、マッチング度が高い結果となった参照画像を物体IDをその時点で応答するようなコマンドを用意しても良い。認識した物体のID出力は複数であっても良いし、IDと一緒にその位置と姿勢情報も出力するようにしても良い。また、多くの参照データをデータベースに登録しておく方法として、一緒に存在する可能性のあるデータを関連付けして、また、どういう場所にあるかという場所の情報とも関連付けをしておくことによって、現在、撮像装置が撮影している場所の情報からマッチング処理を行う参照データの数を絞り込んで、より効率良く処理を行わせることも可能となる。
図74〜図91は、本発明における第1〜15の手段をLSI回路あるいはLSIを組み合わせた基板の回路などで実施する場合の基本的なブロック図を例示している。図92〜図99は、そのときのタイミングチャートの一例を示し、図100〜111は、各回路の動作を説明する基本処理フローチャートを例示している。これらの例は、あくまでも一例であり、盛り込む機能の内容、回路の組み合わせ方法、タイミングの取り方などはいろいろ考えられるので、目的に応じて、また、回路の規模、開発費用などの制約条件を考慮して変形するようにすると良い。
図74は、撮像装置10,20からの画像情報(映像信号)をA/D変換回路15(a)0,15(a)33により、それぞれの画像メモリへ取り込み、水平特徴点抽出回路16(a)1,2と16(a)21,22、垂直特徴点抽出回路16(a)3,4と16(a)23,24で色境界線分の特徴点を抽出して、線分生成(1)〜(4)16(a)5〜8と線分生成(1)〜(4)16(a)25〜28でそれぞれ2次元のCADデータの線分を生成して、線分統合(1)〜(4)16(a)9〜12と線分統合(1)〜(4)16(a)29〜32で各々の左右の撮像装置10,20で撮影した画像情報の線分を統合して各々のメモリへ格納する処理を行う。各処理回路は、動作速度を速くするために、水平および垂直の特徴点抽出回路は2つづつ、線分生成、線分統合はそれぞれ4つづつパラに処理できるように構成してある。処理速度に応じてパラに処理する回路数は計画するようにして良い。線分生成を画面の中のエリアごとに分割してパラの処理で高速に実施するようにしたので、各エリアをまたいで結ばれる線分が存在することから、その領域をまたがって繋がっている線分を同線分として繋げる処理を線分統合(1)〜(4)の回路の中で実行するようにする。
また、ステレオ計測の前処理として、点抽出(1)〜(n)16(a)12〜14は、右画像の線分データメモリから対称点を抽出する。例えば、線分の始点と終点の点データを抽出して、その点データを2D点メモリへ書き込む。
次に、S候補(1)〜(n)の回路16(a)15〜17は、ステレオの対応点候補を左画像の線分データメモリから抽出する。ステレオ計測では、1本の線上に対応点は存在するので、その線上にある左画像の中の候補点を抽出するようにする。
対応探索(1)〜(n)の回路16(a)18〜20は、対応点候補の絞込みをベクトルのマッチング処理などを利用して行う。絞り込んだ結果、対応点候補が一つに絞り込まれた場合は、左右の点をS対応点メモリへ出力する。ここで、対応探索(1)〜(n)の処理は、他の処理よりも時間がかかるため、パラに処理できる回路をn個用意するが、n個は十分多くするのが良い。
メモリ転送(1)16(a)10は、トラッキングフラグメモリの内容を確認して、転送するフラグがONしていた場合には(左画像の)線分統合メモリの内容をT計測(左画像の)線分統合メモリへ転送する。これは、トラッキングによる3D計測を行うために左の画像の処理結果を一時記憶しておくための処理である。トラッキングフラグメモリは、最初と、トラッキングを見失って再開する場合やトラッキングによる計測を実施した後に転送ONのフラグになるようにする。メモリ転送(1)16(a)11は、トラッキングを行うために毎回左画像の線分統合データを前(左画像の)線分統合メモリへ一時記憶しておくための処理である。
S対応点メモリ(1)〜(4)へ書き込まれた左右の対応点のデータは、次の図75の(A)から3D計測(1)〜(4)の回路16(b)1〜4で読み込まれてステレオ計測され、その結果は3D点メモリ(1)〜(4)へ書き込まれる。次に、3D線生成(1)〜(4)の回路16(b)5〜8で3D計測した点に繋がる線分についても3D計測して3次元の線分のCADデータを生成して3D線メモリ(1)〜(4)へ書き込む。また、ここでも、処理を高速化するために、4つの同じ回路をパラに動作させるので、それぞれで生成した線分が繋がっている場合もあるのでその境界部分の処理を行い繋がる3D線分は2本の線分を1本に統合する処理を3D線統合(1)の回路16(b)9で行い、統合された3D線分を3D線分統合メモリへ出力する。ここで出力する3D線分統合メモリは左カメラの座標系における3D線分データである。
図76は、トラッキング処理の回路の部分を示している。前(左画像の)線分統合メモリから始点や終点、分岐点や鋭角な点の色境界線分の特徴となる点の抽出を、ステレオ計測の場合と同じように、点抽出(1)〜(n)の回路16(c)1〜3で行い、2D点メモリ(1)〜(4)へ出力する。次に、T候補(1)〜(n)の回路16(c)4〜6で(左画像の)線分統合メモリの中からトラッキングの対応点候補を抽出する。次に、対応探索(1)〜(n)の回路16(c)7〜9で候補点の絞込みをベクトルマッチング処理などを利用して行い、対応点候補をT対応点メモリ(1)〜(4)へ書き込み出力する。ここでも、対応探索(1)〜(n)の処理は、ステレオ計測の場合と同じ処理回路が利用できるが、同様に時間がかかるのでパラに処理をする回路数nは十分多くするのが良い。
次に、図77の入力(B)からトラッキングの対応点候補を読み込み、移動量計算(1)〜(4)の回路16(d)1〜4で移動量を計算して移動量メモリ(1)〜(4)へ書き込み、最終的には安定度評価の回路6(d)5で一番正しいと思われるトラッキングの対応点3点を選んで、その3点による移動量を決定移動量として決定して決定移動量メモリへ書き込む。決定できなかった場合は、トラッキングを見失ったことになるのでT継続フラグメモリへNGを書き込む。トラッキングが継続している場合は、T継続フラグメモリへ継続中のフラグを書き込む。ここでの安定度評価では、候補移動量で3D計測された3D点を前回の座標系へ変換したときに多くの3D点が一致する移動量をより正しい移動量として選択するようにする。
次に、図78では、3D線分統合メモリ(左カメラ座標系)に求められた3D線分データをトラッキングによる座標変換の回路16(e)1で3D線分統合メモリ(トラッキング開始時のワールド座標系)に変換する。次に、計測された点の誤差の大きさ、誤差の形状を考慮して、新たに計測された点、線分データは追加して、誤差が小さくなるものは更新する処理を更新処理16(e)2で行い、トラッキング開始時のワールド座標系で表現された連続トラッキング中の3D線分全体の統合メモリへ書き込むようにする。次に、更に最初のトラッキングが途中で途切れて再開している場合は、トラッキングが途切れたときの一番最初のワールド座標系へ変換するための座標変換を回路16(e)3で行い、その変換した点、線分データを最初のワールド座標系で表現された3D線分全体の統合メモリへ書き込む。同じ点が存在する場合には、ここでも総合的な精度の良い、誤差形状の小さな点に更新するようにしたり、この変換で生じる誤差を加算するなどの処理も行うようにする。ワールド座標変換16(e)3は、トラッキングで現在位置を見失っている状態では変換できないので、3D決定フラグメモリを参照して3D決定移動量メモリに座標変換行列が決定されていない場合には処理を行わないようにする。
図79,図80は、トラッキングを見失った場合に、対応する変換行列を決定するための処理を行う回路ブロックを示している。3D点(1)〜(n)の回路16(f)1〜(3)は、3D線分全体の最初のワールド座標系における線分データの中から3D点を抽出する。抽出する基準は、見失った場所近傍でその後のトラッキングによる移動量を考慮して移動している可能性のある範囲を特定して、その中の3D点を抽出するようにする。次に、W候補(1)〜(n)の回路16(f)4〜6では、抽出した3D点に対応するトラキング再開後に生成される3D線分データの中の3D点を抽出する。抽出する基準は、見失ってから移動した量に対応する範囲に存在する3D点を候補として抽出する。次に、3D探索(1)〜(n)の回路16(f)7〜9で、それぞれ対応する点を3次元のベクトルマッチングなどの手法を用いて候補を絞り込む。
次に、3D移動量計算(1)〜(4)の回路16(g)1〜4は、絞り込んだ対応点候補の組み合わせを分担してそれらの対応が正しいとした場合の移動量を計算して3D移動量メモリへ出力する。そして、最後に、対応度評価16(g)5の回路で総合的に多くの点がより精度良く一致する組み合わせを決定して決定した移動量(座標変換係数)3D決定移動量メモリへ書き込む。また、3D決定移動フラグメモリへ決定したフラグを書き込む。3D点の中から候補点を見つける処理では、見失ってからの時間が長くなればなるほど、その後に移動する移動量も大きくなるので、候補となる点の数が多くなる。点の数が処理能力をオーバーするような場合もありうるので、そういう場合には、処理をいくつかのエリアブロックに分割して何回かに分けて処理するようにしても良い。また、最初にCADデータを生成して見失ってからその後生成したCADデータが多くなり、最初の見失う前に生成したCADデータの量が少ないような場合で、所定の長い時間最初の位置を再特定できない場合も生じるが、そのような場合は、最初に見失う前に生成したCADデータに繋げることをあきらめて、後に生成を再開したワールド座標系を最初の座標系とするような処理にしても良い。その場合、以前に生成されたCADデータは破棄するようにしても良いし、いつか繋がることもあることを期待して残しておくようにすることでも良い。
図81は、本回路全体の外部との入出力I/Fの回路ブロックを示している。コマンド入力回路16(h)1は、外部のマイコン等の処理装置300からのコマンド指令を入出力I/F部から入力してコマンド格納メモリへコマンドの内容を格納する。付属データ入力の回路16(h)2は、同様に、コマンドに付属する指令を実行するときに必要な情報を読み取りコマンド付属データ格納メモリへ書き込む。カメラ位置出力の回路16(h)3は、本視覚情報処理装置100が3D計測やトラッキングを行うことにより求まるカメラの現在位置と姿勢の情報をカメラの現在位置、姿勢が格納されているメモリから読み出してマイコン等の装置300へ読み取れるように入出力I/F部へ出力する。探索結果出力の回路16(h)4は、同様に、探索などのコマンドを実行したときの結果を格納されているメモリから読み出して入出力I/F部へ出力する。2D−CADデータ入出力の回路1(h)5は、大量のデータを扱える外部メモリ200と入出力I/F部を介して外部メモリ200から探索用2D参照CADデータを読み込んだり、逆に外部メモリ200へ後で探索用2D参照CADデータとして使用可能な2DCADデータや探索等の処理結果としての2D−CADデータを出力する。また、3D−CADデータ入出力の回路1(h)6は、同様に、大量のデータを扱える外部メモリ200と入出力I/F部を介して外部メモリ200から探索用3D参照CADデータを読み込んだり、逆に外部メモリ200へ後で探索用3D参照CADデータとして使用可能な3DCADデータや探索等の処理結果としての3D−CADデータを出力できるようにする。
図82は、トラッキング計測判定の回路16(i)1の周辺回路を示している。トラッキング計測判定の回路16(i)1は、T継続フラグメモリからトラッキングが継続されているかの状態を読み取り、また、決定移動量メモリからは、トラッキングによるカメラの移動量を読み取り、その移動量が3D計測に適した移動量に達した場合にはトラッキング計測可能と判断してトラッキング計測を実行させるタイミングを決める。トラキングによる3D計測は現在の(左画像)の線分統合データとトラッキング計測のために前に記憶しておいたT計測(左画像の)線分統合データを使用して、ステレオ計測と同じように、処理回路は図83の点抽出(1)〜(n)の回路16(j)1〜3、S候補(1)〜(n)の回路16(j)4〜6、対応探索(1)〜(n)の回路16(j)7〜9、図84の3D計測(1)〜(4)の回路16(k)1〜4、3D線分生成(1)〜(4)の回路16(k)5〜8、3D線分統合回路16(k)9で3D線分統合データを生成して、図85のトラッキングによる座標変換の回路16(l)1でトラッキング開始時からの移動量の座標変換を行い、更新処理16(l)2、ワールド座標変換16(l)3で最初のワールド座標系における3D線分統合データを更新するようにする。このトラッキングによる計測処理を行うと、計測精度は、カメラの間隔を広くしてステレオ計測するのと同じ効果で向上するが、タイミング的にはシリーズになるので、その分、画像情報を取り込むサイクルタイムが長くなるので、設ける場合には、ステレオ計測の実施タイミングの代わりにトラッキングによる計測を同じタイミングで実施するようにしてサイクルタイムが長くならないような工夫も行うようにしても良い。また、必ずしも、この機能は盛り込まなくても、ステレオ計測のみでも、視点の位置が変わったときに誤差形状を更新させて、精度の悪い奥行き方向の精度を別の角度からのステレオ計測で補うことも可能なので、適用システムによっては十分使用可能なものとなるので省略するようにしても良い。
図86,図87は、3D探索の処理回路のブロック図を示している。3D点(1)〜(n)の回路16(m)1〜3は、探索用3D参照CADデータの中なら始点、終点、鋭角な頂点、分岐点などの3Dの特徴点を抽出する。W候補(1)〜(n)の回路は、生成された3D−CADデータを格納している最初のワールド座標系の3D線分全体の統合データの中から対応候補を抽出する。抽出する基準は、コマンドおよびコマンド付属データでエリアを特定する指令があればそのエリアの中から抽出するようにする。特に特定するエリア指定がコマンドで与えられない場合には、現在のカメラの位置とカメラの向きから視野に入る方向のエリアの中の3D点を抽出するようにする。3D探索(1)〜(n)の回路16(m)7は、抽出した生成CADデータの3D点と参照CADデータの3D点の対応点候補を求めてW対応点メモリ(1)〜(4)へ書き込む。
3D類似度計算の回路16(n)1〜4は、3D点の対応点候補の組み合わせのすべてを分担してパラに3D類似度を計算して類似度の計算結果を3D類似度メモリ(1)〜(4)へ書き込む。そして、類似度評価の回路16(n)5で最終的に対応点候補の中で最も類似度の高い組み合わせを決定する。類似度が十分一致する候補が見つかった場合には、一致度の高い順番にCADデータ転送回路16(n)6に指令して探索などの処理結果の3D−CADデータ格納メモリへ格納する。その結果、候補がいくつ見つかったとか、それぞれのマッチング度などは探索などの処理結果メモリへ出力する。
図88,図89は、2次元の探索コマンドを実行する回路のブロック図を示している。点抽出(1)〜(n)の回路16(o)1〜3は、探索用2D参照CADデータの中から始点、終点、鋭角な頂点、分岐点などの2Dの特徴点を抽出する。探索候補(1)〜(n)の回路10(o)4〜6は、左画像の現在の線分統合データの中から対応候補を抽出する。抽出する基準は、コマンドおよびコマンド付属データで方向やエリアを特定する指令があればその方向やエリアの中から抽出するようにする。特に特定する方向やエリア指定がコマンドで与えられない場合には、現在の左画像の線分統合データ全部の中から抽出するようにする。対応探索(1)〜(n)の回路16(o)7〜9は、抽出した左画像の2D点と参照CADデータの2D点の対応点候補を求めて探索対応点メモリ(1)〜(4)へ書き込む。
2D類似度計算の回路16(p)1〜4は、2D点の対応点候補の組み合わせのすべてを分担してパラに2D類似度を計算して類似度の計算結果を2D類似度メモリ(1)〜(4)へ書き込む。そして、類似度評価の回路16(p)5で最終的に対応点候補の中で最も類似度の高い組み合わせを決定する。類似度が十分一致する候補が見つかった場合には、一致度の高い順番にCADデータ転送回路16(p)6に指令して探索などの処理結果の2D−CADデータ格納メモリへ格納する。その結果、候補がいくつ見つかったとか、それぞれのマッチング度などは探索などの処理結果メモリへ出力する。
図90,図91は、探索用2D参照CADデータを生成する回路ブロックを示している。3D線分の2D投影の回路16(q)1は、現在までに生成した3D−CADデータの中からコマンド指令に基づく方向から見たときの2D参照CADデータを生成して探索用2D参照CADデータ格納メモリへ書き込む。作成する参照CADデータは、複数の視点から見た2D参照CADデータの場合もある。このコマンドは、すでに生成したCADデータに対して再度探索、位置決めなどを行いたいような場合に使用する。
3D線分の2D投影の回路16(r)1は、与えられた探索用3D参照CADデータの中からコマンド指令に基づく方向から見たときの2D参照CADデータを生成して探索用2D参照CADデータ格納メモリへ書き込む。作成する参照CADデータは、複数の視点から見た2D参照CADデータの場合もある。このコマンドは、指定された参照CADデータの物体を探索する場合に3Dマッチングよりより高速に2Dマッチングで探索したい場合に使用する。
図92〜図99は、前述の各ブロック回路の動作タイミングを示している。
図92のA/Dの回路16(a)0とA/Dの回路16(a)33と図96のコマンド入力16(h)1,2から始まって、各ブロック回路は所定のタイミングで順番に動作して、最後は、図96のカメラ位置出力16(h)3と探索結果出力16(h)4となり、以下、同じ順番の動作を繰り返すものである。図98には、最初のワールド座標系の3D線分全体の統合メモリの使用状態を、図99には左画像の線分統合メモリの使用状態を示してあるが、各回路ブロックは同時に同じメモリにアクセスすることができないので、メモリへのアクセスが重ならないようにタイミングを取るとともに全体のサイクル、すなわち、A/Dの回路16(a)0とA/Dの回路16(a)33が画像情報を取り込んでから次の画像情報を取り込むまでのサイクルはできるだけ短くなるように工夫する。また、使用するメモリのデータは、当該ブロックの回路が動作する前に更新されているように全体のタイミングの順番を決める。ここで示している1回の動作タイミングの時間の長さは、同じ間隔で図示したが、実際の処理時間から実時間の長さは変わってくる。全体的に効率良く処理が高速に実行されるように、この例では、回路のパラの処理を4個とかn個として説明しているが、実際の処理時間の関係で適切な平行処理回路の数を決めるようにする。
図100〜図111は、主要な処理回路ブロックの基本的な処理フローチャートを示している。図100は、16(a)1の水平特徴点抽出(1)の基本フローチャートを示す。図92の水平特徴点抽出(1)16(a)1のタイミングチャートの起動タイミングでスタートして、まず、処理16(t1)aでコマンド格納メモリと付属データ格納メモリを参照して、CADデータ生成エリアの指定で方向の指定があれば、処理方向から画像上の処理エリア(IX1〜IX2、IY1〜IY2)を特定する。
次に、処理16(t1)bで処理エリア内の水平1本の輝度(カラーの場合はRBG輝度)データを画像データから読み込み、次に、処理16(t1)cで水平1本の輝度情報を端部から順番に調べて、変曲点(傾きの変化が上向に急変する点から次の下向きに急変する点までの中間位置、あるいは傾きの変化が下向に急変する点から次の上向きに急変する点までの中間位置)の位置を求めて、画像メモリ上のアドレス座標で点メモリ(1)〜(4)へ順番に格納する。
次に、判別処理16(t1)dで水平1本の反対の端部まで処理は終了したかどうかを判別して、No.の場合は処理16(t1)cから繰り返す。
更に、処理16(t1)eで水平輝度データは縦方向の処理エリアIY1〜IY2のすべて終了したかどうかを判別し、Noの場合は処理16(t1)bから繰り返す。そしてすべての範囲を終了したらば終了する機能を回路に組み込む。
図101は、処理ブロック16(a)18の対応探索(1)の基本フローチャートを示す。処理16(t2)aで候補点メモリ(1)から最初の右画像から抽出した点P(i)とそれに対応する左画像の中から先に抽出された対応点候補の点KP1〜KPnを読み込み、次に、処理16(t2)bで点P(i)の右画像周辺のベクトルを色境界線で区切られた領域ごとに求める。ここでは、ベクトル先端の色情報も含めて求める。また、ベクトルは、点抽出時に求めてメモリへ格納しておき候補点メモリ(1)から読み出すだけにしておいても良い。
次に、処理16(t2)cで対応点候補の点KPjの左画像での周辺のベクトル(先端の色情報も含む)を色境界線で区切られた領域ごとに求める。そして、処理16(t2)dで点P(i)のベクトルと対応点候補の点KPjのベクトルを色境界線で区切られた領域ごとに比較してマッチング度を求める。そして、判別処理16(t2)eで対応点候補KPjは1〜n個すべての組み合わせが終わったかどうかを判別し、Noの場合は処理16(t2)cから繰り返す。Yesの場合は、処理16(t2)fで点P(i)に対する対応点候補KP1〜nの中から1領域内のベクトルマッチング度が高く、2番目の候補点のマッチング度よりも所定以上にマッチング度が高い点のある場合は、ステレオ計測の対応点PofL(i),PofR(i)の組合わせとしてS対応点メモリ(1)へ書き込む。
そして、判別処理16(t2)gで抽出点P(i)はすべて終了したかどうか判別し、Noの場合は、処理16(t2)aから繰り返すようにしてすべての抽出点P(i)について処理して終了する機能を回路に組み込む。
図102は、16(b)5の3D線生成(1)の基本フローチャートを示す。まず、処理16(t3)aでコマンド格納メモリと付属データ格納メモリを参照して、CADデータ生成エリアの指定で方向の奥行き指定があれば、奥行きから3D線分生成の処理エリア(距離範囲)を特定する。次に、処理16(t3)bで3D点メモリ(1)から3次元計測された点3DP(i)と左右の画像の対応点情報PofL(i)、PofR(i)を読み取る。そして、次の判別処理16(t3)cで3次元の点3DP(i)の奥行きは指定の生成エリア内の3D点かどうか判別するようにし、Noの場合には、次の処理16(t3)dと処理16(t3)eはパスするようにする。Yesの場合は、処理16(t3)dで右の画像の対応点情報PofR(i)に繋がる線分上の点に対応する左の画像の対応点情報PofL(i)に繋がる線分上の点を対応度をチェックしながら探し、対応する点が存在する場合にはその点もステレオ計測による3D点を求めて、最初の3D点3DP(i)に繋がる線分データとして3D線メモリ(1)へ書き込む。そして、処理右の画像の対応点情報PofR(i)に繋がる線分上の点に対応する左の画像の対応点情報PofL(i)に繋がる線分上の点を対応度をチェックしながら探し、対応する点が存在する場合には、その点もステレオ計測による3D点を求めて、最初の3D点3DP(i)に繋がる線分データとして3D線メモリ(1)へ書き込んで、3D線メモリには3D線を構成する点を3D計測した左画像の視点O1のワールド座標での座標とその視点から見たときに色境界線分の特徴点として抽出した左右の色情報も一緒に3D線メモリ(1)の点情報に付属する情報として書き込む。ここで、CADデータ生成時刻を以降の処理で参照する場合には、点情報に付属する情報として撮像装置が撮影した時刻データも付属情報として書き込むようにする。
そして、判別処理16(t3)fで3Dメモリ(1)内の3D計測された点3DP(i)はすべて処理したかどうかを判別し、Noの場合は処理16(t3)bから繰り返す。そして、3Dメモリ(1)内の3D計測された点3DP(i)がすべて処理したならば終了する機能を回路に組み込む。
図103は、16(d)1の移動量計算(1)の基本フローチャートを示す。まず、処理16(t4)aでT対応点メモリ(1)の中から前(左画像の)線分から抽出された点PofBL(i)i=1〜nと、それに対応する(左画像の)線分から絞り込まれたトラッキング対応点候補KPofL(i、j)j=1〜mと、トラッキング対応点候補を対応探索で絞り込むときのマッチング度に関わる情報を読み込む。次に、処理16(t4)bで前(左画像の)線分から抽出された点PofBL(i)i=1〜nと、それに対応する(左画像の)線分から絞り込まれたトラッキング対応点候補KPofL(i、j)j=1〜mの組み合わせn×m個の中から3個を選択する組み合わせ総数の所定の順番の1番目から総数の1/4(4はパラに処理する回路の数)番目の組み合わせの中の1つの組み合わせS1(PofBL(i)とKPofL(i、j)の中の1個)、S2(PofBL(i)とKPofL(i、j)の中の1個)、S3(PofBL(i)とKPofL(i、j)の中の1個)を次の処理データにセットする。
そして、処理16(t4)cで前(左画像の)線分から抽出された点PofBL(i)i=1〜nの3D計測されたトラッキング開始時のワールド座標系での3次元座標データを読み込む。そして、処理16(t4)dで前(左画像の)線分から抽出された3点、それに対応する(左画像の)線分から絞り込まれたトラッキング対応点候補の3点と点PofBL(i)i=1〜nの3D計測されたトラッキング開始時のワールド座標系での3次元座標データを用いて撮像装置10aの移動量(座標変換係数)を計算して、移動量メモリへ組み合わせ情報S1,S2,S3とともに移動量を書き込む。
次に、判別処理16(t4)eで組合総数の1/4(4はパラに処理する回路の数)のすべて計算終了したかどうかを判別し、Noの場合は処理16(t4)bから繰り返し、すべての計算が終了したならば終了する機能を回路に組み込む。
図104は、16(d)5の安定度評価の基本フローチャートを示す。まず、処理16(t5)aで移動量メモリ(1)〜(4)から前(左画像の)線分から抽出された点PofBL(i)i=1〜nと、それに対応する(左画像の)線分から絞り込まれたトラッキング対応点候補KPofL(i、j)j=1〜mの組み合わせn×m個の中から3個を選択する組み合わせと、その組み合わせの3点を選択した場合の移動量の計算結果を読み込む。
次に、処理16(t5)bで3D線分統合メモリ(左カメラ座標系)から3D点の座標データを読み込み、すべての移動量(座標変換係数)で座標変換を行い、3D線分統合メモリ(トラッキング開始時のワールド座標系)の中にある点と所定の精度以上で一致ずる3D点の数を求め、一致する3D点の数の多い移動量候補を絞り込む。次に、処理16(t5)cで絞り込まれた移動量候補の中から、更に、前処理で一致している3D点の一致度の最も良い移動量候補を決定移動量として決定移動量メモリへ書き込む。
そして、処理16(t5)dで決定移動量が決定した場合は、T継続フラグメモリへ「継続中のフラグ」を書き込み、一致する点が少なく、あるいは、一番を絞り込めなかった場合にはT継続フラグメモリへ「継続断のフラグ」を書き込み終了する機能を回路に組み込む。
図105は、ブロック16(m)7の3D探索(1)基本フローチャートを示す。まず、処理16(t6)aで3D補点メモリ(1)から探索用3D参照CADデータ格納メモリから抽出された点PofRfCAD(i)と、それに対応する3D線分全体の統合メモリ(最初のワールド座標系)から抽出された3D対応点候補KPoCAD(i、j)j=1〜mを読み込む。探索用3D参照CADデータが複数個ある場合は、その種類ごとに分けて以降の計算も行うようにする。
次に、処理16(t6)bで点PofRfCAD(i)の周辺の点へのベクトルをベクトル先端の色情報も含めて求める。3D領域毎に求めても良い。また、3D点抽出時に求めて3D候補点メモリ(1)から読み出すだけにしておいても良い。
次に、処理16(t6)cで3D対応点候補KPoCAD(i、j)j=1〜mの周辺の点へのベクトル(先端の色情報も含む)をj=1〜mのそれぞれについて求める。3D領域毎に求めても良い。次に、処理16(t6)dで点PofRfCAD(i)から引いたベクトルと3D対応点候補KPoCAD(i,j)j=1〜mから引いたベクトルの先端の色情報を含めて比較してマッチング度を求める。3D領域毎に比較しても良い。色情報を比較する場合には、色情報を登録したときの視点の位置情報から色境界線分の左右の方向を考慮してマッチングさせる。
次に、処理16(t6)eでベクトルマッチング度が高く、2番目の候補点よりも所定以上にマッチング度が高い点のある場合は、対応点としてマッチング度の高い点PofRfCAD(i)と3D対応点候補KPoCAD(i、j)j=1〜mから絞り込んだ点M個をW対応点メモリ(1)〜(4)へ書き込む。そして、判別処理16(t6)fで抽出された点PofRfCAD(i)のi=1〜nのすべて終了したかどうかを判別し、Noの場合は処理16(t6)aから繰り返す。そして抽出された点PofRfCAD(i)のi=1〜nのすべて終了したならば終了する機能を回路に組み込む。
図106は、ブロック16(n)1の3D類似度計算(1)の基本フローチャートを示す。まず、処理16(t7)aW対応点メモリ(1)から探索用3D参照CADデータ格納メモリから抽出された点PofRfCAD(i)i=1〜Nと、それぞれの点に対応する3D線分全体の統合メモリ(最初のワールド座標系)の中の3D対応点(複数個)を読み込む。複数個の員数は、総数の1/4(4はパラに処理する回路の数)とする。また、探索用3D参照CADデータが複数個ある場合は、その種類ごとに分けて以降の計算も行うようにする。
次に、処理16(t7)bで点PofRfCAD(k)から他の点PofRfCAD(i)i=1〜N(除くk)へのベクトルを先端の点の色情報も含めて求める。ここで、kは、k=1〜Nの中から点PofRfCAD(k)に対応する3D線分全体の統合メモリ(最初のワールド座標系)の中の対応点の存在するものを選ぶようにする。
次に、処理16(t7)cで3D対応点の中の点PofRfCAD(k)に対応する点から他の点PofRfCAD(i)i=1〜N(kを除く)に対応する点へのベクトルを先端の点の色情報も含めて求める。複数組求める。次に、処理16(t7)dで点PofRfCAD(k)からのベクトル群と点PofRfCAD(k)に対応する点からのベクトル群のマッチング度を複数組求めてマッチング度などの計算結果を3D類似度メモリへ書き込む。また、3D対応点候補KPoCAD(i,j)を求めるときにスケールファクタを考慮している場合は、同様に、そのときのスケールファクタを考慮してマッチング度を求めようにする。
次に、判別処理16(t7)eでk=1〜Nのすべてを終了したかどうか、あるいは、探索は十分かどうか、を判別するようにし、Noの場合は16(t7)bから繰り返すようにして、すべてが終了したならば終了する機能を回路に盛り込む。
図107は、ブロック16(n)5の類似度評価の基本フローチャートを示す。まず、処理16(t8)aでコマンド格納メモリからコマンド、コマンド付属データ格納メモリからコマンド付属データを読み込む。次に、処理16(t8)bで3D類似度メモリ(1)〜(4)から探索用3D参照CADデータ格納メモリから抽出された点PofRfCAD(i)i=1〜Nと、それに対応する3D線分全体の統合メモリ(最初のワールド座標系)の中の3D対応点の組とそのときの3D類似度計算結果を読み込む。また、探索用3D参照CADデータが複数個ある場合はその種類ごとに分けて以降の計算も行うようにする。
次に、処理16(t8)cで3D類似度計算結果より、類似度が高い順番にコマンド付属データで員数が指定ある場合には、その員数以内を順番に3D線分全体の統合メモリ(最初のワールド座標系)の中の対応する点にかかわるCADデータを転送する指令をCADデータ転送回路へ指令して探索等の処理結果の3D-CADデータ格納メモリへ転送させる。そして、処理16(t8)dで類似度が高い順番に3D線分全体の統合メモリ(最初のワールド座標系)の中の3D対応点の組の座標データより、探索用3D参照CADデータの基準座標系の最初のワールド座標系の中での位置と向きを計算して探索等の処理結果格納メモリへ書き込む。
そして、判別処理16(t8)eでコマンドにその他の判断処理などの指令が含まれているかどうかを判別し、Noの場合は、次の処理16(t8)fは行わないようにして、Yesの場合は、処理16(t8)fでその他のコマンドに含まれる指令の内容を処理を実行してその結果を探索等の処理結果格納メモリへ書き込むようにする。また、ここで例をあげると、探索したCADデータID1と探索したCADデータID2の衝突有無を判断する指令の場合には、探索したCADデータID1と探索したCADデータID2の距離を求めてその距離が所定の距離(コマンド付属データで与えられている場合にはその値を使用する)以下の場合は、「衝突危険性あり」を、以上の場合は「衝突危険性なし」を探索等の処理結果格納メモリへ書き込むような処理となる。そして、終了する機能を回路に盛り込む。
図108は、ブロック16(0)7の対応探索(1)基本フローチャートを示す。まず、処理16(t9)aでは候補点メモリ(1)から探索用2D参照CADデータ格納メモリから抽出された点PofRfCAD(i)と、それに対応する(左画像の)線分統合メモリから抽出された対応点候補KPoL(i、j)j=1〜mを読み込む。探索用2D参照CADデータが複数個ある場合は、その種類ごとに分けて以降の計算も行うようにする。
次に、処理16(t9)bで点PofRfCAD(i)の周辺の点へのベクトルをベクトル先端の色情報も含めて求める(色境界領域毎に求めても良い。)。2D点抽出時に求めて候補点メモリ(1)から読み出すだけにしておいても良い。
次に、処理16(t9)cで対応点候補KPoCAD(i、j)j=1〜mの周辺の点へのベクトル(先端の色情報も含む)をj=1〜mのそれぞれについて求める。色境界線分で分けられる領域毎に求めても良い。次に、処理16(t9)dで点PofRfCAD(i)から引いたベクトルと対応点候補KPoCAD(i,j)j=1〜mから引いたベクトルの先端の色情報を含めて比較してマッチング度を求める。領域毎に比較しても良い。
次に、処理16(t9)eでベクトルマッチング度が高く、2番目の候補点よりも所定以上にマッチング度が高い点がある場合は、対応点としてマッチング度の高い点PofRfCAD(i)と対応点候補KPoCAD(i、j)j=1〜mから絞り込んだ点M個を対応点メモリ(1)〜(4)へ書き込む。そして、判別処理16(t9)fで抽出された点PofRfCAD(i)のi=1〜nのすべてを終了したかどうかを判別し、Noの場合は処理16(t9)aから繰り返すようにして、抽出された点PofRfCAD(i)のi=1〜nのすべてを終了したならば終了する機能を回路に盛り込む。
図109は、ブロック16(p)1の2D類似度計算(1)の基本フローチャートを示す。まず、処理16(t10)aで探対応点メモリ(1)から探索用2D参照CADデータ格納メモリから抽出された点PofRfCAD(i)i=1〜Nと、それぞれの点に対応する(左画像の)線分統合メモリの中の対応点(複数個)を読み込む。複数個の員数は総数の1/4(4はパラに処理する回路の数)とする。また、探索用2D参照CADデータが複数個ある場合は、その種類ごとに分けて以降の計算も行うようにする。
次に、処理16(t10)bで点PofRfCAD(k)から他の点PofRfCAD(i)i=1〜N(kを除く)へのベクトルを先端の点の色情報も含めて求める。kは、k=1〜Nの中から点PofRfCAD(k)に対応する(左画像の)線分統合メモリの中の対応点の存在するものを選ぶようにする。次に、処理16(t10)cで点PofRfCAD(k)に対応する(左画像の)線分統合メモリの中の対応点から他の点PofRfCAD(i)i=2〜Nに対応する点へのベクトルを先端の点の色情報も含めて求める。複数組求める。
次に、処理16(t10)dで点PofRfCAD(k)からのベクトル郡と点PofRfCAD(k)に対応する点からのベクトル郡のマッチング度を複数組求めてマッチング度などの計算結果を2D類似度メモリへ書き込む。2D対応点候補KPoCAD(i,j)を求めるときにスケールファクタを考慮している場合は、同様に、そのときのスケールファクタを考慮してマッチング度を求める。
そして、判別処理16(t10)eでk=1〜Nのすべてを終了したかどうか、あるいは、探索は十分かどうか、を判別し、Noの場合は処理16(t10)bから繰り返し行うようにし、すべてが終了したならば終了する機能を回路に盛り込む。
図110は、ブロック16(p)5の類似度評価の基本フローチャートを示す。まず、処理16(t11)aでコマンド格納メモリからコマンド、コマンド付属データ格納メモリからコマンド付属データを読む込む。
次に、処理16(t11)bで2D類似度メモリ(1)〜(4)から探索用2D参照CADデータ格納メモリから抽出された点PofRfCAD(i)i=1〜Nと、それに対応する(左画像の)線分統合メモリの中の対応点の組とそのときの類似度計算結果を読み込む。探索用2D参照CADデータが複数個ある場合は、その種類ごとに分けて以降の計算も行うようにする。
次に処理16(t11)cで2D類似度計算結果より、類似度が高い順番に、コマンド付属データで員数が指定ある場合にはその員数以内を順番に3D線分全体の統合メモリ(最初のワールド座標系)の中の(左画像の)線分統合メモリの中の対応点に対応する点にかかわるCADデータを転送する指令をCADデータ転送回路へ指令して探索等の処理結果の3D-CADデータ格納メモリへ転送させる。
そして、次の処理16(t11)dで類似度が高い順番に(左画像の)線分統合メモリの中の対応点の組の対応する3D線分全体の統合メモリ(最初のワールド座標系)の中の点の組の座標データより、探索用2D参照CADデータの基準座標系の最初のワールド座標系の中での位置と向きを計算して探索等の処理結果格納メモリへ書き込む。
そして、判別処理16(t11)eでコマンドにその他の判断処理などの指令が含まれているかどうかを判別し、NOの場合は、次の処理16(t11)fは行わないようにパスして、Yesの場合は、処理16(t11)fでその他のコマンドに含まれる指令の内容を処理を実行してその結果を探索等の処理結果格納メモリへ書き込む。例としては、探索したCADデータID1と探索したCADデータID2の衝突有無を判断する指令の場合には、探索したCADデータID1と探索したCADデータID2の距離を求めてその距離が所定の距離(コマンド付属データで与えられている場合にはその値を使用する)以下の場合は「衝突危険性あり」を、以上の場合は「衝突危険性なし」を探索等の処理結果格納メモリへ書き込むなどとなる。そして、終了する機能を回路に組み込む。
図111は、ブロック16(r)1の3D線分の2D投影の基本フローチャートを示す。まず処理16(t12)aでコマンド格納メモリからコマンド、コマンド付属データ格納メモリからコマンド付属データを読む込む。
次に、処理16(t12)bで探索用3D参照CADデータ格納メモリから3D−CADデータを読み込む。3D−CADデータが複数の部品(ID1〜IDn)から構成されている場合は、部品ごとにデータを管理する。また、各部品(ID1〜IDn)の結合条件がある場合は、それらの条件も読み込む。
次に、16(t12)cでコマンドおよびコマンド付属データで生成条件に限定する範囲の条件がある場合には、その範囲の中で、限定条件のない場合には、参照CADデータの全方向からの全結合条件の各移動量の組合せによる複数部品の各種組み合わせ条件のすべての種類の2D投影CADデータを生成して、その観察方向、結合条件の各移動量の組合せによる複数部品の各種組み合わせ条件の種類ごとに探索用2D参照CADデータ格納メモリへ書き込む。観察方向の分割数、結合条件の移動量は、コマンド付属データで指定があればその値を使用して、ない場合はデフォルトと設定してある所定の値を使用する。また、1回に探索用2D参照CADデータ格納メモリへ書き込むデータ量は、あらかじめ処理能力から決まる所定のデータ量以下の量ごとに、数回のサイクルに分けて全部のデータを書き込むようにする。そして、終了する機能を回路に組み込む。
以上、主な処理機能の基本的な流れを説明したが、これはあくまでも一例であり、いろいろな機能の組み合わせ、分担の方法はあるので、目的や盛り込む機能の大小に応じて全体として合理的な回路を設計するようにする。
図116〜図128は、本発明の第16〜17の手段の基本的構成を例示している。
図116は、原子力発電プラントを例にした場合の各種検査装置に適用した場合の数例を示す。勿論、ここで上げた例以外のあらゆる検査ロボットあるいは監視点検ロボット、その他の作業ロボットに適用して良いし、原子力発電プラントに限らず、その他の原子力施設、火力プラント、水力プラント、化学プラント、海洋プラント、宇宙基地、公共施設、病院、家庭内のあらゆる分野の検査、作業ロボットに適用して良いものである。
図116の(a)は、原子力発電プラントにおける原子炉21rの中の各種機器の検査に検査装置を適用する概念を示している。原子炉21rの中には、核燃料、制御棒の他、シュラウド等の炉内構造物のいろいろな機器が設置され、また、原子炉21rの胴体は、それ自体が複数枚の板を加工して溶接で接合された構造であり、胴板や底部には、配管部材と繋がる各種管台が溶接で取り付けられている。また、各種炉内構造物にも溶接構造物がある。それらの溶接線の健全性確認は重要であり、原子力発電プラントでは、定期的にそれら溶接線の検査が行われている。検査は、目視検査(VT検査)や超音波によるUT検査なども行われる。原子炉21rの中を検査する場合には、原子力発電プラントを止めてから、原子炉上部の蓋を開放して、取り出せる内部構造物は取り出して、必要に応じて燃料なども取り出した上で、蓋を開放した上から原子炉内へ検査装置21A,21Cを投入して検査する。検査装置21Aや検査装置21Cは、TVカメラなどの撮像装置や超音波センサを搭載してケーブル21Kでそれらの信号を処理する処理装置100へ接続されている。原子炉内は、高い放射線のある環境であるので、原子炉21rの中は水が張られており、これらの検査作業は、全て水中にて遠隔操作で行われる。
図116の(b)は、(a)に示した検査装置21Aの構成を示したものであり、水中を浮遊しながら移動する水中ROV型の検査装置の一例を示している。水中ROVには、スクリューを回転させて推進する方式や水を噴射するジェット方式などがあるが、いずれの場合においても、水中ROVは、前後に、上下左右に、また、左右の回転などの姿勢制御を複数のスクリューの回転制御や複数のジェット噴射の制御にて遠隔で制御できるようになっている。水中ROV本体21Aには、本例の場合は、2台の右のカメラ20と左のカメラ10が組み込まれてステレオ画像情報を得ることができるようになっている。また、必要に応じて、照明も水中ROVに搭載する。照明については、画像認識からは外部照明を準備する方が、水中ROV21Aが移動するような場合にも撮影対象、ここでは原子炉底部の管台の溶接部909が撮影対象になるが、撮影対象に対する照明条件は変わらない方が安定な画像が得られるので、より処理性能は良くなる。それでも、スペース的に外部に照明を置けないような場所では、搭載した照明で画像処理を行うようになるが、前述した図68のような特徴点抽出方法を用いることによって、また、十分対応する対応点のみを抽出して3次元のCADデータに変換することにより、照明を搭載している場合でも、画像情報を処理して3次元のCADデータを生成しながら、水中ROV21Aの自分自身の位置を検出するようにすることは可能となる。また、移動照明の影響を少なくするために移動照明で局部的により明るくして十分強力な固定照明で全体を明るくする両方を組み合わせた照明方法を用いても良い。
操作者が水中ROV本体21Aを遠隔操縦する環境は、操作者から直視できない遠隔地で同じような複数の管台が林立している環境であるため、カメラの画像情報を見ただけでは水中ROVの現在位置を操作者が認識するのが非常にむずかしい。また、検査を行なっている場合も、どこの検査を行っているかの対応をとるのがむづかしいが、本発明の視覚情報処理装置を適用すれば、撮像装置の位置をトラッキングで管理しながら検出することができるので、撮像装置の位置情報から水中ROV21Aの位置と姿勢情報を求めてその結果を操作部の処理装置100のモニタに表示すれば、現在の位置と姿勢を操作者が容易に確認することができるようになる。
また、水中ROV21Aの位置と姿勢情報より、センサでどこを検査しているかが分かるので、検査結果データも検査している場所に対応付けして自動的に記録させるようなことも容易にできるようになる。また、水中ROV本体21Aには、画像情報によるトラッキングが途切れた場合に水中ROV21Aの位置情報を補間するために加速度センサやジャイロセンサを搭載してそのセンサ信号も処理するようにしても良い。また、通常の照明以外に、1本あるいは複数本の光の線を撮影対象に当てるためのレーザー等のマーカ21eを搭載するようにしても良い。マーカ21eによる光の線は、例えば赤色レーザ光であれば、撮影対象の溶接部の色や通常の照明とも違った色になるので、水中ROV21A本体の形状は、円筒状で角はできるだけ丸みを付けて、上部にケーブル21Kの出口を設ける。
推進装置は、スクリューやジェットの噴射口によって上下と周囲にできる表面の凸凹ができるだけ少なくなるように複数設けている。これは、原子炉下部で制御棒駆動機構などの管台溶接部を点検するような場合には、原子炉21rの上部から水中ROV21Aを投入して一番底までいろいろな炉内構造物の間を通して遠隔制御で移動させる必要があり、途中、燃料を抜いた空間の狭いスペースから下部の燃料サポート部の更に下に潜る必要があるので、突起物があると引っかかって移動制御がむづかしくなることと、万一、推進装置が故障したような場合でもケーブルを引っ張ることで水中ROV本体を回収することができるように表面はなるべく滑らかな構造とすることで、非常時の回収性も考慮したものである。
複数の噴射を制御することで、水中ROV本体21Aの前進、後退、その場回転、上昇、下降の移動と姿勢制御が可能となる。形状が円筒であるので、姿勢のチルト制御を行うようにするよりも、カメラ10,20を水中ROV本体21Aの内部でチルト動作させるようにした方が良い。
ジェット推進の場合は、操作するフロアなどに大きなポンプを準備して圧力を高めた流体をケーブル21Kの中にホースも組み込んで高い推進エネルギーを外部のポンプから得られるようにすれば、水中ROV本体21Aにはポンプを搭載しないで済み、小型の電磁弁を噴射ノズルの員数のみ搭載するか、複数本のホースでポンプ側で噴射制御するようにもできるので、水中ROV本体を小型軽量にすることができる。水中ROV本体21Aは、ケーブルKで遠隔地にある操作部に相当する処理装置100に接続される。
処理装置100は、カメラなどのセンサの信号を処理して点検結果を記録する機能の他に、水中ROV本体21Aを遠隔手動操作、あるいは自動制御できるように構成する。手動操作は処理装置100の画面のマウススイッチで操作できるようにしても良いし、ジョイステックなどの操作スイッチを別に設けるようにしても良い。
図116の(c)は、(a)の原子炉内の底部を除く部位で上から水中カメラ10を投入してカメラから出ているケーブル21Kで単純にカメラ10を吊って操作者あるいは機械が上部フロアの気中で取扱う検査カメラに適用する場合の例を示している。操作者がケーブル21Kを緩ませたり、引っ張ったりすることでカメラ10を上下方向に移動させることができ、また、ケーブル21Kを操作者が持って移動すればカメラ10も同じ方向に移動する。カメラ10には照明21sを一緒に取り付けてあり、全体を吊下式カメラ本体21Cと称することとする。勿論、簡単な推進機構やガイド機構や吸着して壁面を移動する機構などを吊下式カメラ本体21Cに設けても良い。カメラ10は、2台にしてステレオカメラ方式にしても良い。また、レーザスポット線を撮影対象部位に照射するようにしても良い。また、カメラ以外の超音波センサ(UTセンサ)を搭載してガイド機構や吸着機構で炉内の壁や構造物に対して所定の姿勢でアクセスできるようにして炉壁や構造物の肉厚を測定したり、UTセンサで内部の欠陥を検査するようにしても良い。
吊下式カメラ本体21Cのカメラ10やその他のジャイロ等のセンサを搭載している場合には、それらの信号情報が処理装置100へ入力されて、処理装置100の中の画像情報処理の機能でカメラ信号の画像情報を処理して、カメラの現在位置をモニタ表示しながら、検査結果(画像データやUT検査データなど)を、画像情報を処理して生成した3次元のCADデータの部位情報に対応させて自動で検査データが記録されるようにして良い。画像データを処理して3次元のCADデータを生成すれば、万一、欠陥部位があっても、その欠陥をCADデータとして生成するので、そのCADデータは3次元の位置情報をもっているので、処理装置のモニタに表示して欠陥の形や大きさや、その欠陥が原子炉設備のどこの位置にあるかなどの情報を容易に確認することができるようになる。吊下式カメラ本体21Cには、複数のレーザの線21eを撮影対象に照射できるマーカを搭載するようにしても良い。
図116の(d)は、原子力発電プラントの原子炉とは別に燃料を一時的に保管するために水を張ったプール等のライニングの溶接線などを検査するためのクローラ式検査装置へ適用した場合の一例を示している。プール等の壁面や底面には鋼製のライニングが施工されており、ライニングは、板材を溶接で接合してプール内の水が漏れないようになっている。そのライニングの溶接線を検査する場合の検査装置としては、壁面は、(b)や(c)で説明した水中ROV21Aや吊下式カメラ本体21Cを使用して検査することができるが、プール底部のライニングの溶接線909は、クローラ式VT装置21Bを用いるのが、安定に高速に移動できるので検査効率が良い。クローラ式VT装置21Bは、左右のクローラを制御することで前進、後退、その場旋回できる走行機構に左右の2台のカメラ10,20が搭載されている。燃料を保管するラックの下に入って溶接線を検査するために、必要であれば、照明も搭載する。また、画像トラッキングを補間する加速度センサやジャイロセンサを搭載しても良いし、左右のクローラの回転数を検出するエンコーダなどのセンサを搭載して回転角度を積算することで画像トラッキングを補正する情報にすることでも良い。クローラ式の代わりに車輪走行方式でも良いし、独立して床面と接触してすべりを少なくしたエンコーダの信号を取り込めるようにしても良い。
搭載したカメラ10,20からの画像情報で溶接部909をVT検査するが、CADデータも生成するようにして、溶接ビードの形状、傷があればその場所や大きさなどをCADデータとして自動的に記録するようにして良い。また、カメラで撮像した画像データを検査記録として残すようなシステムにしても良い。
クローラ式VT装置本体21Bは、ケーブルKで処理装置100に接続されて、クローラの操作制御信号やカメラやセンサの信号をケーブルを介して通信する。この例では、ケーブル21Kを介するようにしたが、無線方式にしてクローラの機動性をより良くしても良い。また、クローラ21Bには、レーザの光の線21eを溶接線909とその周辺に当てられるようにラインマーカを搭載する。また、カメラ10,20によるVT検査の他に、UTセンサ21bをアーム機構21aで溶接線の周囲をなぞってUT検査できるようにしても良い。溶接線909の部位とその周辺が3次元のCADデータとして生成できるので、UT検査を行っている場所もCADデータと対応つけして記録することが容易にできるようになる。
検査プローブは、UTセンサに限らず、放射線検査(RT)のための線源を所定の位置にあわせるように制御しても良いし、ECTなどの検査プローブでも良い。UTセンサなどの検査プローブ21bの位置は、クローラの位置と姿勢が画像情報処理で分かっているので、アーム機構21aの関節角度などの情報よりクローラに対するアーム機構21aの先端のプローブ21bの位置を求めて、CADデータの座標系の位置と対応つけることができる。ここで、アーム機構21aは、1次元あるいは2次元のもっと単純なスキャン機構を搭載するようにしても良い。
実施例のバリエーションとしては、(b)の水中ROV、(c)の吊下式カメラ、(d)のクローラ式VT装置を例に上げて説明したが、検査や作業を行う装置としては、歩行して移動する人間型ロボットでも良いし、気球にセンサと推進装置を搭載した気球式移動ロボットでも良い。処理装置100は、画像情報を取り込み画像処理を行う部分は共通であるので、それぞれのロボットの操作駆動制御を行う部分は、ロボットごとに調整されたものである必要があるが、センサや画像情報を入力して3次元CADデータを生成したり、現在の位置情報を表示させたりする部分は共通なので、複数種類の検査装置のケーブル21Kを同じ処理装置に繋ぎかえて運用ができるようにして良い。
図117は、クローラ式VT検査装置21Bを例にして、プール底面溶接線909の周辺部の自動生成されたアズビルトの3次元CADデータの概念を示している。クローラ式VT検査装置21Bに搭載したカメラ10,20の画像イメージを図面の(A)と(B)に示す溶接線909の同じ部位が写るようにカメラの位置と向き、カメラの画角などは調整しておく。両方の画像データ(A),(B)は、処理装置100では同時刻に取り込むようにするので、トラッキング処理の前のステレオ計測処理においては、装置に照明を搭載していても見え方の違いは視点の違いのみである。また、溶接ビード909には、同じ金属色でビードのふくらみや模様で対応点をとると十分な数の特徴点が得られない場合もあるために、レーザマークの線22eが画像に写っていればその線が例えば赤色ならば非常にコントラスト良く、レーザマークの線は特徴点、特徴線分として抽出できるので、それでステレオ計測することにより溶接線ビードのより多くの形状データを取得するようにしても良い。図116の(d)の例では、1本のレーザマーカの線分21eが照射されている状態を示しているが、平行に何本もあるいは水平の他に垂直、斜めでも同時にマーカの線を複数を本照射して同時に複数箇所の断面形状をステレオ計測できるようにしても良い。但し、この場合は、もともと溶接線ビードにある傷や汚れのデータとは違うので、データとしては分けて管理するようにしておくのが良い。また、赤い線ということで、データの区別も容易に行うことが可能となる。また、マーカは、線ではなく、スポットの点で1点あるいは複数の点を同時に照射するようにしても良い。レーザマークの線22eは、溶接ビードの形状を詳細に記録することができる。溶接ビードの凸形状も重要な検査データにはなる。また、トラッキング処理を行う場合には、ビードのふくらみの輪郭線22bやビード表面の模様22cとか汚れ22aや傷がある場合には、それらを特徴点として検出してトラッキングを行うが、レーザマークの線22eを複数本同時に照射して断面形状をできるだけ密に取得するようにすれば、溶接線ビードの詳細な凸凹状態が3次元形状としての特徴部位になるので、ステレオ計測で3次元CADデータを生成するとビードの所定の範囲での3次元形状が得られるので、クローラが移動して別の視点から同じ部位が重なるようにしてレーザマークの線による3次元CADデータを生成するようにすれば、重ねて計測したデータの中には同じ特徴の凸凹部位が存在するので、その形状のマッチングをとることによってトラッキングをより安定に行うことができるようになる。
これらは、クローラに限らず、水中カメラや水中ROVの場合でも同じである。クローラの場合には、クローラの回転角度情報からも画像トラッキングを補間することができるので、連続してCADデータがトラッキングできない場合でもクローラ回転から推定してトラッキングできていない範囲の移動量を推定できるので、生成するCADデータは、連続的に一つの座標系(ワールド座標系Ow)に換算したものとして生成することができる。クローラ式VT検査装置21Bは、溶接線に沿って移動させるので、溶接線の周囲の3次元CADデータが生成され、そのCADデータの位置情報に対応付けて検査データが記録される。
それらのCADデータを、視点をいろいろ変えながらモニタ表示して溶接線の形状や傷、汚れの位置などを確認することができる。モニタ表示でCADデータを表示する仮想視点の位置を離して表示すると、多くから見たような状況が表示され、プール全体の溶接線22Bが表示される。この中より一部分を指定して拡大表示、すなわち、仮想視点の位置を近くにしてCADデータを表示すると、局部的な溶接ビードのふくらみ22dや模様22cや汚れ22aなどを拡大して確認することができるようになる。また、少し汚れた水中でステレオ計測すると、浮遊しているゴミを3D計測してしまう。この場合には、視点が変わると当該点は計測されないので、1回目のフラグが消えることはないので、後で、そのようなCADデータは消去するようにしても良いし、浮遊しているゴミはプールや原子炉容器の底面から浮いているので、浮遊しているゴミの座標位置を確認して、その位置が底面の表面から浮いている場合には浮遊ゴミと判断して生成された当該CADデータを消去するようにすることもできる。これは、浮遊ゴミを確実に消去することができるので有効な手法である。
図118は、クローラ式VT検査装置21Bのシステム構成ブロック図を例示している。クローラ式VT検査装置21Bの大きなブロックの中は、主要な構成機器として、左右のモータ23a,23bがドライバ23dに接続されていて、処理装置100の中の主制御ルーチン23eからの指令信号で駆動制御できるようになっている。主制御ルーチン23eからの指令信号の出力は、主制御ルーチン23eのプログラムから自動制御で出力されるようにしても良いし、ここでは、図に記載していないが、操作者が操作するジョイスティクなどの操作指令信号を主制御ルーチン23eを介して指令出力するようにしておくことでも良い。モータ23a,23bのそれぞれにはエンコーダが付いていて、その信号は、カウンターボードなどのインターフェースを介して主制御ルーチン23eに取り込み参照できるようになっている。また、クローラ走行車21Bには、左右のカメラ10,20の他に、加速度センサ30やジャイロセンサ40も搭載しており、カメラ10、20の画像情報は、キャプチャーボードなどのインターフェースを介して処理装置100の中の画像処理ルーチン23gへ取り込み、センサ30,40の情報は、A/Dボードなどのインターフェースを介して主制御ルーチン23eへ取り込むようにしている。本例では、センサ処理を主制御ルーチン23eの中に入れて画像処理ルーチン23gを分けたが、画像処理ルーチンの中へセンサ30,40の信号を直接取り込むようにしても良い。
画像処理ルーチン23gは、ステレオ計測やトラッキング処理などの処理を行わせ、生成されたCADデータは所定の記憶装置200に蓄積されるようにする。記憶装置は、生成時にはリアルタイム性のあるRAMメモリ上に生成させておき、生成作業が終了した時点でハードディスクなどに記録保管するようにすることで良い。そして、再度、同じ場所で運用する場合には、最初の段階でハードディスクからRAMメモリ上に以前に記録しておいたデータを読み出して再度追加で生成記録するようにしても良いし、生成データを比較分析するような場合には、あらたにデータを生成して、その結果と以前に収録したデータとを自動で比較して違う部分を出力、表示できるようにしても良い。また、主制御ルーチン23eへは、クローラVT装置21Bをどこからどこまでどのように移動させるかという計画内容をSTAR/ENDポイントと途中の移動計画ルートとして入力できるようになっており、主制御ルーチン23eは、センサ情報の処理結果や画像処理結果に基づいてその計画内容にそってクローラ走行車21Bが移動制御できるようにドライバ23dへ適切な制御指令を自動的に出力できるようにする。
主制御ルーチン23eからは、センサ情報で推定した現在の位置と姿勢情報を補助位置信号として出力して、その代わりに、主制御ルーチン23eは、画像処理ルーチン23gより画像処理して求めた現在の真の位置と姿勢情報を受け取る。ここで、主制御ルーチン23eと画像処理ルーチン23gは、汎用性と処理速度の観点から分けたが、一緒のプログラムにしてもかまうものではない。
処理装置100は、1台の計算機で実現することを想定しているが、処理速度を高速にするために、主制御ルーチン23eと画像処理ルーチン23gを別のCPUで実行させて供用メモリあるいは通信回線を利用して高速にデータの授受をできるようにしても良い。この構成でそれを実現するための主制御ルーチン23e及び画像処理ルーチン23gの基本的なフローチャートの例は、後述する。
また、このシステムは、アズビルトのCADデータを生成するが、あらかじめプール等の環境データとしてプールや部屋の大きさ、プール内や部屋の中の障害物や、検査対象の溶接線を3次元のCADデータとして登録しておき、ROVやクローラの現在位置を表示するときに全体環境の中でどこにいるか見やすくするために、あらかじめ登録しておいたプールや障害物、溶接線を重ねてCG表示できるようにしておくのが良い。
また、溶接線などの確認したい対象物のCG表示あるいは生画像表示のそばにCGで表現したスケールを一緒に表示して、画面を一目見ただけで、概略の対象物の大きさがすぐに分かるようにすると良い。対象物が平面にある傷であれば、傷の付いている平面に沿ってスケールやメジャーなどをCG表示する。平面が表示している視点によっては斜めに表示される場合でも、平面の特徴点のいくつかはすでに3次元のCADデータとして生成されていれば、実際にその平面にスケールやメジャーを沿わして撮影したときと同じような状況でCGのスケールやメジャーを面に沿って表示させることも可能である。また、対象物が曲面であっても、曲面の3次元CADデータに基づき曲面に沿って実際にスケールやメジャーを当てて撮影したような状態で表示させることも可能である。
そのようにすることによって、実際にスケールやメジャーを撮影対象物のそばにおいて一緒に撮影して通常の画像データとして記録するVT検査手法と違和感なく、3次元のVT検査データを自動的に生成させることも容易に行うことができる。勿論、現場撮影時には、スケールやメジャーを挿入して撮影作業を行う必要ないが、生成したVT記録には、CG表示されたスケールやメジャーが実際にそこに挿入して撮影されたかのように表示して確認することが可能となる。
図119は、プールと溶接線をあらかじめCADデータとして登録しておいたCADデータ22B(C)と画像処理で生成したアズビルトの溶接線のCADデータ22B(R)を重ねて表示したときのイメージを示している。プールの床面は、クローラ走行式検査装置21Bで、プールの壁面は、磁気式あるいは吸着式で壁を移動できるクローラ式検査装置で行っても良いが、水中ROV21Aなどの検査装置を用いてCADデータの生成を行った例である。これらのシステムは、アズビルトのCADデータを生成するので、あらかじめ登録してあるCADデータはおおまかな位置が特定できる目印となる部品のみを作成しておくことで十分である。あらかじめ登録してあるCADデータは、プール全体と全部の溶接線の部分が表示されるが、生成CADデータは、生成された部分のみが表示される。このように一緒に重ねて表示することによって、生成CADデータがまだ一部分しかない状況でも、全体の中のどの当たりを生成したCADデータであるかが一目でわかるようになる。
また、生成されたCADデータは、トラッキングによる誤差が累積されていくので、その場所でも局部的には精度良く生成されていても全体の環境の中の場所は累積したトラッキングの誤差によってあらかじめ登録したCADデータとはずれてくる。そのずれは、生成開始したスタートポイントから離れれば離れるほど大きくなる傾向があるが、運用中、定期的に、あるいは生成後のオフライン作業時に、例えばオペレータが生成されたCADデータの特徴部位をあらかじめ登録されているCADデータの特徴部位を指示するようにすれば、その点を合わせるようにして生成CADデータの全体を滑らかに補正する機能をもたせると良い。この補正は、最初のスタートポイントは、実際の場所と合わせてからスタートさせるので一致している条件である。また、途中、この点とこの点は同じであると教示した点が複数ある場合には、それらの点は一致するように他の部分をなめらかに繋がるように補正するように処理するのが良い。また、その他の教示された対応点のデータは、CADデータに登録しておき、教示後に引き続きあらたにCADデータ生成したり更新したりする処理を行う場合には、その補正処理は、自動的に行なわれるようにするのが良い。また、一致する点をオペレータが数点指示するのが容易に補正プログラムは作成できるが、CADデータの中の特徴ある形状の部位をあらかじめ登録してあるCADデータの形状や色情報などと同じ部位を生成CADデータの中よりマッチングにより位置を自動的に求めることで、その都度、オペレータが対応する点を指定入力操作しないでも自動的にトラッキングによる誤差を補正するようにしても良い。
また、あらかじめ登録しておくCADデータは、図面に基づくデータでも良いが、実測寸法が分かっていれば、実測寸法に基づくCADデータを作成しておくのが良い。これは、あらかじめ登録しておくデータは、部屋の大きさは主要な障害物の位置のみであるので、測定する寸法個所は少ないので、容易に対応できる。
一方、生成されるCADデータは、詳細なもので局部的には精度良いアズビルトのCADデータである。従って、全体の離れた部分の寸法のみを実際に実測するようにして入力したCADデータに生成CADデータをあわせるように補正すれば、生成CADデータは、より高精度なアズビルトの詳細なCADデータにすることができるようになる。
また、あらかじめ検査対象物のCADデータが用意されている場合には、検査平面の面の位置が概略特定できるので、ステレオ計測やトラッキング計測時に奥行き方向の精度が良くない部分と、あらかじめ用意されているCADデータの検査面の表面の傷などを検出しているという前提に基づいて奥行き方向の距離の検出を補正するようにすると、容易に奥行き方向の精度を向上させながら3D計測を行うようにすることができる。これは、曲面でも平面でも同様であるが、浅い傷の深さを検査する場合は別であるが、一般には傷や汚れの上下左右の位置を計測して記録する場合が多いので、奥行き方向は、あらかじめわかっている面の奥行き情報を利用して3DCADを生成すると、奥行き方向にも精度の良いCADデータを容易に生成することが可能となる。この奥行き方向の誤差は、対応点のマッチング誤差も大きく影響するので、既知の面上の点検を行う検査装置の場合には有効な処理手法となる。
図120〜図124を参照して、これらのシステムが有していると便利な専用ファイルの一例を説明する。ここでの例は、プール内を水中ROVを浮遊させて検査する場合の例で説明する。
図120は、主制御ルーチン23eへ指示を入力する移動軌跡データファイルの一例を示している。ファイルは、キャラクタエディタで編集できるファイルに記述するようにしておき、主制御ルーチンは、最初に当該ファイルの内容を読み取るようにする。ファイルへの記述情報の一例であるが、START点についてはその座標データと姿勢データをワールド座標系Owで記述する。
図121は、ワールド座標系OwとROV本体21Aのロボット座標系Orの関係を示している。STARTポイントは、ワールド座標系Owで記述されSTARTポイントにROV本体21Aがいる場合のスタートの姿勢(向き)をSTARTポイントにおくROVのロボット座標系Orの姿勢で表現した場合の例である。同様に、図120のファイルの中には、ENDポイント、途中のポイントは第Nポイントとしてその位置をワールド座標系で記述して、全てのそのポイントにおけるROV21Aのロボット座標系Orの向きも指定するようにする。移動軌跡は、直線、円や円弧などで、これもワールド座標系Owの中の線分として記述している。ポイントをCG表示する場合の色、線種なども指定できるようにしている。姿勢表示有無のフラグは、CG表示するときに各ポイントにおけるROVの目標姿勢を表示させるか否かのフラグである。また、各ポイントの停止異時間は、そのポイントにROVが到着してから次のポイントに向かって移動開始するまでの、その場所での停止時間を意味し、主制御ルーチン23eは、この場合、ホバリング制御を行うような制御になる。
また、直線や円弧の軌跡データには、始点と終点の近くでのその区間を移動する速度はいくらにするかという目標速度と、減速制御、加速制御の計画内容を記述できるようにしておき、この場合には、主制御ルーチン23eは、適切にROVをこの計画値どおりに移動させ、ポイント近くでは減速したり加速制御を行うように制御する。ENDポイントには、戻るか否かのフラグを設けて、戻るフラグがONの場合には、来た時と同じ軌跡ルートを同じように戻るような制御を行うようにする。
また、ポイントや軌跡データの内容をオペレータに分かるようにCG表示する場合、どういうポイントか、どういう軌跡か、注釈を入れたい場合もあるので、文字列とワールド座標系でその文字列を表示したいポイントを記述しておけば、CG表示するときに当該位置に自動的に注釈が表示されるようにする。STARTポイントやENDポイントの他、第1点検ポイント、第2点検ポイントなど表示させる。この注釈は、CG表示の仮想視点を変えた場合も常にモニタに文字が普通に表示されるようにする。また、文字の大きさも適切に見やすい大きさに固定でも良いし、状況に応じて自動的に設定されるようにしても良い。また、CG表示するときには、あらかじめ登録してあるCADデータも必要に応じて表示したり消したりできるようにする。ワールド座標系Owがどこにあるかも表示しておくのが、後で、座標データをモニタ表示して確認できるようにしたときなどに便利である。
図122は、ROVなどのロボットの制御ロジックを登録しておくファイルの例を示している。このファイルも、同様に、キャラクタファイルでエディタで容易に修正でき、実行時には、主制御ルーチン23eは最初に読み取り、読み取ったときに、当該ファイルに記述された内容に相当する内容に制御プログラムの一部が置き換わるようにしておく。すなわち、このファイルから実際の制御プログラムに変換するプログラムを最初のファイル読み込み時に実行して制御プログラムの一部をその時点で作成して組み込むようにする。それによって、ロボットの制御ロジックを試行錯誤で変更して試してみたい場合とか、別のROVを製作してそれに適した制御プログラムを作成しなければならないような場合に、その都度、C言語などを用いて、プログラムの専門家が制御プログラムを書き換えなくとも容易に誰でも制御ロジックを必要なときに変更できるようになる。ここでの例では、記述するルールを簡単に決めておくことによって、最初に実行する変換プログラムも簡単なものですむようになる。ここでは、約束ごととして、入力データは、X軸のずれ量はδX、Y軸のずれ量はδY、Z軸のずれ量はδZ、各軸の回転のズレ量はδα,δβ,δγと記述する。ここでのずれ量とは、ROV21Aの現在位置Orと計画ルート上の現在の目標位置Oriとのずれ量である。現在の目標位置Oriは図25のファイルから読み込んだ移動軌跡データに基づいて求めるようにするが、時間軸は、実際の制御時間は遅れる場合や予定より早くなる場合があるので、注意を要する。
適切な処理の例としては、まず、ROVの現在の位置から移動軌跡ルートへの垂線の足を下ろして移動計画軌跡ルートへの最短ポイント(P)を求めて、そこの場所での本来の計画移動速度を求めて、所定の時間後には最短ポイント(P)からどれだけ進んでいるべきかを求めて、その進んでいるべきポイントを次ぎに向かうべき目標位置ポイントOriと考える。このように、現在ROVがいる位置に基づいて一番近い場所での目標軌跡に合わせるようにするので、滑らかな誘導制御が可能となる。目標位置Oriは、その場所に目標とするロボット座標系を相当するので、位置情報の他に、ROVの目標姿勢情報、更にはその位置でどちらの方向へどれだけの速度で移動していなければならないかというダイナミックは、速度の目標値を定義してそれとのズレ量を制御するようにしても良い。
また、出力データは、ROVのスクリューやジェット噴射の制御量、あるいはクローラであれば左右のモータの回転制御量を最終的には必要とするが、ここでは、処理装置100を汎用的なものとするため、ここからの出力データは、ROVの座標系Orに対する制御情報としてX軸の制御量Vx(目標速度指令値)、Y軸方向の制御量Vy(目標速度指令値)、Z軸方向の制御量Vz(目標速度指令値)、と各軸回りの回転制御量Vα(目標回転角速度指令)、Vβ(目標回転角速度指令)、Vγ(目標回転角速度指令)としたが、速度指令値ではなく、所定時間をあらかじめ決めておき、その所定時間内での目標移動量あるいは目標回転角度量で出力するようにしても良い。
その他、記述できる記号としては、数字の0〜9と()と四則演算子、sin、cos、tan、平方根のSQRなどを設けておく。また、変数として、D1〜D20の20個を定義して、=演算子で途中の計算結果を一時的に格納しておくことなどもできるようにしておいて良い。ここで、一例であるが、X軸方向の速度制御指令Vxは、X軸方向のずれ量に係数の2.5という数値を掛けた量にするという記述であれば、Vx=−δX*(2.5)と記述しておけば、実際に制御量としては、ずれ量δXに係数2.5で比例しておおきな制御量−Vxが出力されるようにする。一般に、空間を移動しているROVの制御は、X,Y,Z方向の位置とROV座標系のX軸回り、Y軸回り、Z軸回りの角度を制御することで、ROVの位置と姿勢を制御することができるので、処理装置100は、これらの6つの制御指令を出力するように製作しておく。一般的なROVの姿勢制御指令として出力される制御量は、実際のスクリューやモータの回転制御に変換する必要があるが、その部分は、ROVの有する駆動軸の数や3次元空間上を移動する自由があるとか、床面を常に移動するという条件で駆動軸数は6軸より少ない場合もあるので、ROV特有の制御指令の変換が必要になる。これは、ROV特有の変換処理になることから、ROVに搭載するドライバ23dの中に制御指令の変換プログラムを持たせるようにする。あるいは、この変換プログラムは、処理装置100とドライバ23dの間に専用ユニットとしてあらたに制御指令の変換ユニットを設けても良いし、処理装置100の中の主制御ルーチンの中に別のプログラムの形で込みこむようにしても良い。プログラムの形で組み込む場合は、別の種類のROVを接続して使用する場合には、別の制御量の変換プログラムはROV特有の各種プログラムをあらかじめ用意しておいて良いが、その都度、別のプログラムを使用するようにする。ROVの種類を選択すると自動的に適切なプログラムが選択されるようにしておくのが良い。
図123は、ワールド座標系OwとROV座標系Orの概念とプール26aなどの基本環境のあらかじめ登録しておくCADデータの概念を示している。環境データとしては、プール内の主要な障害物の主要な部分のみを登録しておくことで良い。
図124は、基本環境データやROV自体の形状データの定義ファイルの一例を示している。ROVの形状データは、実際に使用するROVに合わせて最初に読み込むようにする。また、環境CADデータも実際にこれから運転するプラントの点検場所の環境データを最初に読み込むようにする。環境CADデータは、ワールド座標系Ow上での座標で直線や球、直方体、円や円弧などの基本図形を使って定義できるようにしておく。ROVの形状データは、ロボット座標系Or上での座標で同様に基本図形の定義ができるようにしておく。文字列は、環境データの注釈として表示する場所と一緒に記述できるようにしている例である。
次に、図125〜図128を用いて主制御ルーチン23eと画像処理ルーチン23gの基本的フローチャートの一例を説明する。ここでは、クローラ移動式VT装置の場合の例で説明する。
図125と図126は、主制御ルーチン23eの基本フローチャートである。スタートしたならば、処理30aで、SYSTEM¥移動軌跡データ¥(タスク)¥(名前)ファイルより、ROVのSTARTポイント、ENDポイント、途中の軌跡データを読み込む。次に、処理30bで、SYSTEM¥基本環境データ¥(タスク)¥(名前)ファイルより、基本環境データのCADデータ、SYSTEM¥ROVデータ¥(タスク)¥(名前)ファイルより、ROVの形状データを読み込む。そして、処理30cで、SYSTEM¥制御プログラム¥(タスク)¥(名前)ファイルより、ROVの制御プログラムを読み込む。ここが最初の処理になるが、最初は、初期のROVの実際の位置と姿勢はSTARTポイントの位置と姿勢とに合わせておくようにする。これをやらないで済むように、生成したCADデータと環境CADデータの特徴部分のマッチングを行い、精度良く一致するまでは自分がどこにいるかわからない状態であるが、それまでは周囲の環境データを生成しながら衝突しないような制御のみを行い、まずは、現在の自分の位置を探す処理を行うようにしても良い。
次の処理30dでは、処理装置100の画面モニタに基本環境データのCADデータとROVの現在の位置と姿勢を任意の視点からCG表示する。次に、処理30eで、クローラ走行車の左右のエンコーダの信号をカウンタボードより読み込む処理を行う。次に、処理30fで、加速度センサ、ジャイロセンサのセンサ信号をA/Dボードより読み込む処理を行う。ここで注意することは、各軸方向に複数、しかも複数種類のセンサを搭載している場合には、ROV21Bのある時刻の状態を適切に認識するためには、同時あるいは同時として良いぐらいわずかの時間のずれ以内で読み取る方が良い。次に、処理30fで、左右のエンコーダの信号や、加速度センサ30、ジャイロセンサ40の信号より、ROV21Bの推定現在位置と姿勢を更新して画像処理ルーチン23gへ引き渡す処理を行う。
次に、処理31aで、画像処理ルーチン23gからROVの真の現在位置と姿勢を受け取り、ROVの現在位置と姿勢データを更新する。次に、処理31bで、ROVの現在位置と姿勢データと移動軌跡データに基づく計画位置と姿勢との偏差を求める。次に、処理31cで、ROVの現在位置姿勢と計画位置姿勢との偏差と制御プログラムに基づきROVの制御データを求めてD/Aボードからクローラの左右のモータのドライバへ制御指令信号を出力する。その後、プログラムは処理30dへ戻り、前述の処理を繰り返すように処理する。
図127と図128は、画像処理ルーチン23gの基本的フローチャートを示している。スタートしたら、処理30aで、左右のカメラ10,20の画像情報をキャプチャボードより読み込む処理を行う。ここで、左右のカメラの情報は、同時に読み込む必要がある。時間にずれが生じると、ROVは動いているので、ステレオ計測の誤差に影響するので注意を要する。
次に、処理32bで、左右のカメラ10,20の画像情報をあらかじめ校正時に求めておいたパラメータでひずみ補正する。次に、処理32cで、左右のカメラ10,20の画像情報の中の特徴点(線分)を抽出して、ステレオ計測により3次元の点座標(線分)に変換する。このとき、左右のカメラ10,20の位置と姿勢の関係は、あらかじめ精度良く求めておきステレオ計測の計算式に反映しておくのが良い。次に、処理32dで、左右のカメラ10,20の画像情報より特徴点(線分)の左右の色情報をCADデータとして記録する。また、3次元の点座標(線分)データに対応付けして画像データを記録する。
次に処理32eで、前回ステレオ計測した3次元CADデータがある場合には、少なくとも3点のトラッキングする対応点を決めて、前回計測した座標系に今回計測した3次元CADデータを変換する処理を実施する。
次に、処理32fで、既生成CADデータの中に同じ点(線分)データがあるか否か確認し、ある場合には、CADデータの精度が向上しているか否かを判別する。精度としては、画像のひずみによる誤差、ステレオ計測の2台のカメラ10,20の位置と姿勢関係の座標変換計算式の精度による誤差、計測点とカメラの距離による誤差(近いほどステレオ計測精度は良くなり遠方ほど精度は悪くなる。)、それからトラッキングによる座標変換により生じる誤差〔(図67の(e)のように計測点の中より最も安定度(対応点の一致度)が良く、かつ、計測精度の良い3点を一致するようにして座標変換計算式を求める(前の視点で計測された3点と後の視点で計測された3点を合わせる場合でも、3点を合わせるようにしても1点をあわせた場合に他の2点は誤差があるのでなかなか一致しないので、3点それぞれをそれなりに一致するようにする2つの視点の座標系の位置関係を求めるようになる)ので、その座標変換計算式により、後の視点で計測された新たな点群を前の座標系に変換していく場合に生じる誤差)、撮像系がピンぼけなどが生じる撮影条件がある場合には、ピンボケなどによる計測誤差(これはピントが合っている条件で計測された点の測定精度は高く、ピントがボケている条件で撮影した場合、精度は悪くなる)などを総合的に考慮して更新するか、否かを判断するようにする。また、ステレオ計測時の対応点の一致度(図44の点P4の誤差半径r)の誤差もあるので、それも考慮する。この対応点の一致度の誤差は、輪郭線の特徴点の場合は大きな誤差になり、鋭角な角の輪郭の場合は小さくなり、模様などの実際線を構成する特徴点の場合は精度が最も良くなるが、単純に一定の閾値でCADデータにする対象点から除くと生成される環境の多くは輪郭線であり、また、円筒や曲面などの輪郭線の誤差は大きくなるが、それらの輪郭線も重要な環境情報である。従って、他の誤差とこの誤差は区別して、この誤差の大きさは輪郭線か実際線かの属性を表す指標として管理するようにするようにしても良い。
次に処理32gで、精度が向上している点データについては、生成CADデータの更新処理を行う。合わせて線分CADデータの更新処理を実施する。次に、処理32hで、精度が向上している点データに関係する面データがある場合には、面データの更新処理を行う処理を実施する。次に、処理33aで、点(線分)データに対応する画像データがより良くなる(所属する面により正対した方向、より近い、より画像の中心にあるなどの指標で良くなる)場合、画像データの更新処理を実行する。
次に、処理33b〜33fでは、ROVの移動量が過去計測した位置から所定の移動量に達した場合で、少なくとも3点以上の対応点がある場合に実行して、ステレオ計測よりもより精度良く3D計測を行うようにするものである。この場合には、現在の視点位置から3D計測に適したある一定の範囲エリア内で計測した過去の2次元の特徴点データは、この処理を行う場合は、消去しないで記録しておくことが必要である。記録情報の選択手段としては、一旦大きく移動して離れた場合でも再度同じ場所に戻ることも想定されるので、空間の所定のブロックに区切ってそれぞれのブロックを撮影する代表的な視点の方向(例えば、上下左右にすれば6方向、更にこまかく45°方向きざみで定義するようにしても良い。)に一番近い代表シーンのみを記録しておくようにすればデータ量の増加を抑制できる。勿論、データの記録容量から自動的に過去に撮影したシーンのデータは消去するようにしても良い。
具体的な処理の流れは、図128のように、処理33bで、ROVの移動量が過去計測した位置から所定の移動量に達した場合で、少なくとも3点以上の対応点がある場合には、その対応点に基づき座標変換計算式を求めて、その座標関係にある2つの画像情報により再度ステレオ計測する(途中の微小移動トラッキングをパスした大きな動きのトラッキング処理に相当する。)。処理33cでは、求めた3次元CADデータは初期計測した座標系に今回計測した3次元CADデータを変換して、次の処理33dでは、既生成CADデータの中に同じ点(線分)データがあるか否か確認して、ある場合にはCADデータの精度が向上しているか否かを判別する。ここで判別する場合は、前述のように、考えられる誤差を総合的に判断して更新するか否かを判断するようにする。ここでの計測点とカメラの距離による誤差は、ステレオ計測の場合は、近いほどステレオ計測精度が良くなり、遠方ほど精度が悪くなると先に述べたが、トラッキングにより視点が大きく変わった場合にあらためて計測する場合は、同じ距離でも視点の間隔が広くなればその分精度は良くなる。次に、処理33eでは、精度が向上している点データについては、生成CADデータの更新処理を行う。合わせて線分CADデータの更新処理を行う。次に、処理33fでは、精度が向上している点データに関係する面データがある場合には、面データの更新処理を行う。そして、処理33gで、トラッキングにより求めた左右のカメラの現在の位置姿勢情報をROVの真の現在の位置姿勢情報として主制御ルーチンへ引き渡す処理を行って、図127の処理32aの処理から繰り返す処理を実行する。この処理33gは、処理ブロック33A(処理33b〜処理33f)を実行しない場合でも実行するようにする。
以上のようにすれば、移動しながら自分の位置を認識して、環境の3次元CADデータを自動的に生成しながら、検査結果データを3次元CADデータの部位に対応させながら自動的に記録(VT検査の場合には生成した3次元CADデータそのものが検査記録データとなる)し、また、自動的に計画ルートにそって自動で移動制御させることもできて、過去の検査結果データとの比較も同じ部位で検査結果データの対応付けがされているので容易に比較でき、確認したい個所の検査結果のトレンドも確認することが容易になる移動式検査装置を得ることができる。各種プラント設備やさまざまな設備、機材、財産をある時点で3次元のCADデータに記録保存しておき、時間が経過してから再度同じ場所の3次元CADデータを生成して比較してみれば、過去になかった傷や汚れを容易に発見するようなことも可能となる。勿論、比較して違う部分をマッチング処理により自動的に抽出するようにして良い。
また、処理速度の高速化により移動する物体も瞬時に計測してCADデータが生成できれば、CADデータに時刻データをもたせることで、環境の中で動く物体もその詳細な動きを3次元のCADデータとして生成記録できるようになるので、世の中の現象や、職人の技、貴重な芸術芸を連続に動く3次元のCADデータとして記録保管してライブラリ化して後世に残していくことも可能となる。
図129〜図136は、本発明の第21〜第24の手段の基本的構成を例示している。
図129は、監視サービス提供システムの基本的なシステム構成を示している。町や街路路、公園などの公共施設、あるいは私有地、屋内でも良いが、高分解能TVカメラなどのセンサと通信機能を有する端末34b(1),43b(2)などを密に設置して、ユーザーが携帯電話34cなどを用いて申し込めば、各端末34b(1),43b(2)などからの情報を電話会社34eなどのネット回線34fを経由して総合監視センター34gへ送られてきた端末のセンサ情報より、申込者を監視サービスするシステムである。この監視サービスのシステムに前述の視覚情報処理システムを適用することによって、総合監視センターでユーザーをモニタで確認して随時監視員が付いてユーザを追跡するようなことをしないでも、最初にユーザーのCADデータを特定し、後は画像処理のトラッキング処理でユーザーの位置を自動的に追跡させることも容易となる。端末の撮影エリアがラップするように隣り合う端末を設置するようにすれば、一つの端末の視野からユーザーが外れるときには隣の端末の視野に入る位置関係になるので、ユーザーを見失わないようにトラッキング処理を複数の端末に沿って連続的に行わせることが容易にできるようになる。勿論、携帯電話のGPS機能でユーザーの位置が分かり、更に画像認識で特定できれば、最初のユーザー特定も自動で行うようにしても良い。完全自動ではなくとも、GPSで分かった概略位置を表示してその中からユーザーをオペレータが特性できるようにしても良い。また、この場合のトラッキング処理とは、端末が撮影した画像情報を処理して、前述した図68の方法で特徴点、線分を抽出して、図53で説明した2次元の画像マッチング処理で、ユーザーの特徴点、線分をマッチング処理により追跡するようにしても良いし、複数の端末を常にユーザーを撮影できる位置関係に設置して、少なくとも2台の端末の画像を用いてユーザーの特徴点、線分を3次元のCADデータに変換して、3次元のCADデータのマッチング処理により追跡するようにしても良いし、視覚情報処理システムで説明した探索機能を用いて、2次元画像上での探索処理で追跡するようにしても良いし、3次元の探索処理でユーザーの3次元CADデータを常に探索しながら追跡するようにしても良い。
この場合、ユーザーは人間であることから、首、両腕、両足は、所定の範囲動くので、図112で説明したCADの結合条件なども使用して探索するようにすると良い。最初にユーザーを特定したときにユーザーの服装、身なりを最初に計測した3次元CADデータ(形状と模様の色情報)で参照ファイルに登録しておくようにすることで、万一、連続処理のトラッキングで見失った場合にも、3次元のCADデータ探索で自動的に探索して追跡を自動で行うことも可能となる。また、その時にユーザーが見につけている物品にあらたなCADデータの結合条件を簡単に定義できるようにしても良い。このようなシステムにおいて、ユーザーからの申し込みがない場合にも各端末に記録装置を設けておき、後日、ユーザーからの申し込みがあった場合には、過去に時刻データと対応付けて記録しておいた監視データの必要個所を各端末から任意に取り出せるようにした監視サービスの拡張システムである。この場合の端末の例は、別途説明する。時刻は、端末に電波時計を組み込んで正確な時間を参照できるようにして所定の時間間隔で監視画像を記録できるようにしておいても良い。このように、各端末ごとに記録しておけば、総合監視センターに膨大なデータ量を記録する装置を設置することなく、全ての場所の過去の記録データを蓄積しておくことが容易にできる。記録しておける時間は、端末の性能によるが、24時間とか1週間とか1ヶ月以上なども想定する。万一、不審者34dにより事件が発生した場合、ユーザーが誰も監視サービスを申し込んでいない場合でも、後日、事件が発覚して、警察などで捜査を行う場合にも、事件発生場所の事件発生時刻前後の監視記録データを総合監視センター34gから任意に取り出せるようにすれば、捜査に必要な情報を確実に容易に得られるようになる。
また、申込者が監視サービスを申し込んでセンター34gで申し込み者を確認して監視サービスを開始した場合には、監視センター34gから申込者の携帯電話34cへ信号を送り、監視サービスが始まった場合には、監視サービス中であることがわかるような目印、例えば、ランプ34iを点滅させるようにする。このようにすることによって、不審者34dにも監視サービス中であることが知らしめることができるので、事件を未然に防止することができるようになる。ランプ34iは、申し込み者の目立つ場所にさりげなく付けられるように、ブローチやイヤリングや簪などに付けられるようにすると良い。また、本当に監視サービスを受けていることを不審者34dに認識させるために、ランプの発光タイミング、発光強度、発光色などが、端末34b(1),34b(2)側に設けたランプ34zと同期して光るようにしても良い。発光制御は、センター34gあるいは監視システムがコントロールするので、監視サービスを受けていない人が容易に監視ランプの発光状態を真似するようなことはできなくなるので、不審者34dが申込者のランプ34cが端末34zと同じように発光していることを確認すれば、本当に監視サービスを受けていることを認識して事件発生をより抑制することが可能となる。
知らしめる方法の別の手段としては、端末にレーザ照射装置を搭載して申込者の方向へ照射するようにしても良い。トラッキングにより申込者の現在いる場所は、3次元座標で認識されているので、その方向にレーザーで○を書いたり模様を書いたり、申込者の頭上に目立つ印を表示することで、より分かりやすく、容易に真似のできない方法になる。模擬の監視ランプを真似することが大変であれば、本監視サービスを申し込む方が安いという料金関係にしておくことによって、不審者が監視サービスを受けていることを疑わないようになる。
また、図129の(b)は、総合監視センター34gと各端末34bのデータの受け渡し方法を示したものである。基本的には特開平10-227400号公報の遠隔監視システムのような方法を適用して端末の数が多くなる場合の無線周波数の割り付け問題は近くの端末どうしの中継機能を設けることにより、少ない割り付け周波数で広域のセンサネットワークを形成する。(b)では、申し込み者の形態電話34cは電話回線を直接使用するが、端末のデータ通信は、専用回線を設ける。遠隔地の電話会社34eまで全て端末の中継で行うと、データの中継回数が多くなるために通信時間がかかることから、中継伝送グループはある程度の領域に限定して、長距離無線装置34kをところどころに設置することにより、中継による時間ロスをなくして、しかも広域のセンサ端末ネットワークが構築できる。長距離無線装置34kには、携帯電話を利用するようにしても良い。センサ端末間の伝送ルートもシリーズにしなくとも良く、網目状の無線ネットワークになるようにして良い。網目状にすることで、1台の端末が故障した場合でも端末自身に診断機能があれば、故障した端末を他の端末が認識して別のルートを経由してデータ伝送することも可能となる。この(b)の場合は、監視スタート信号はセンター34gから電話会社34e経由して直接申込者の形態電話34cに送られて携帯電話34cからランプ34iへ発光制御されるようにする場合の例である。
また、図129の(c)は、各々の中継し合う端末34b(0)〜(3)のデータを携帯電話34cの最寄の端末34b(1)が通信を行うようにして、端末からのセンサデータを送信やセンタから端末への指令信号を形態電話34cを経由して行うようにしても良い。また、(b)の方式と(c)の方式の両方を使えるように設備計画しても良い。
図130は、図129の(a)の総合監視センターの具体的なハード構成の基本的な例を示している。電話会社34eとネット34fの構成機器は、通常の電話回線とインターネットの回線が利用できるように考慮する。勿論、専用の回線を用意することでも良いが、構成機器は通常の電話回線とインターネットの回線、LAN回線と同じ構成で実現できる。図130は、総合監視センターの基本ハード構成で電話回線の端末にPC端末が接続されているものである。
n台は、監視サービスを同時に行える最大回線の数だけ用意する。各PCは、同じプログラムを動作させれば良いので合理的である。統計データなどを自動で集計する場合は、各PC端末をLANで接続して蓄積データや監視サービス履歴を集計、参照、利用できるようにしても良い。
図131は、PC端末で操作させる監視サービスの基本的なプログラムを例示している。まず、処理34(e1)aで電話回線への呼び出しある場合は、次の処理34(e1)bで電話をかけたユーザーのアカウント情報を記録する。次に、処理34(e1)cでユーザーとセンター員の音声回線ONして直接ユーザーとセンター員が会話してサービスの依頼とユーザーを特定するようにする。ユーザー特定は、具体的には、次の処理で行う。センター員がユーザーから現在の場所を聞き、地図情報などからもっとも適切端末を選びそれを指定する。プログラムは、処理34(e1)dで、センター員が指定した端末を別の電話回線あるいはユーザーがかけている携帯電話に端末との通信機能がある場合はユーザがかけている電話回線経由で呼び出し、端末にセンター員が指定する方向の映像(画像情報)を送信させるコマンドを送信し、処理34(e1)fで、端末から返信されてくる映像データをPCモニタの所定のウィンドウへ表示する。センター員はユーザーを端末から送られてくる映像で確認するため任意の端末の任意の方向の映像を繰り返し要求するようにしてユーザーを探す。最初は広角画像で広い範囲で探して、ユーザーと思われる人が特定されたらならばズームして拡大表示してユーザーを確認する。ユーザーと電話回線で話をしながら確認作業を行っているので、ユーザーが手を上げたり端末の方を見るなどの動作を会話で離しながらその内容を確認するので、ユーザーを間違いなく、正しく特定できるようになる。センター員がユーザーを確認したならば、画面上でユーザー近傍を指定すれば、プログラム側では、処理34(e1)gで、表示ウィンドウにユーザを特定する座標指定入力があるかどうかを判別し、入力がある場合には、処理34(e1)hで人をあらかじめ複数の方向(端末の設置位置からみる場合にありうる方向)から撮影した代表的な人の2次元の参照CADデータを複数読み込み、画像データを線画にしてから2次元のマッチング処理で画像の中の人を検出して、指定される座標に一番近い人を特定して対応する位置に認識マーク(例えば、人を包含する矩形など)を表示するとともに、その人のCADデータの生成を開始するようにする。座標が指定された段階からその位置が視野に入る他の端末からの映像も利用して3D計測しながらCADデータの生成と探索を開始するようにしても良い。センター員は、その状態を確認してOKであればOKと入力すると、プログラム側は、処理34(e1)iで認識結果に対してOKとの入力がセンター員からあるかどうかを判別して処理を分岐する。
OK入力あれば、処理34(e2)aでユーザーがかけている携帯電話の端末へ監視サービス開始との指令を電話回線を経由して送信する。この指令で、ユーザーの携帯電話に接続されているサービスON状態表示機能がONする。また、ユーザー申請で、一度電話を切っても再度電話してサービスを終了するまでは、監視サービスを継続するようにした場合は、電話を切ってもサービスON状態表示機能ONは継続するようにすることでも良い。
次に、処理34(e2)bで引き続き画面の中から人を検出して、特定された人(ユーザー)を前回特定位置に近い人を再度特定、あるいは生成した3次元のCADデータから前回特定した人と同じ人であることを3次元CADのマッチング処理により判別して再特定して、その人周辺の映像と周辺の人の映像を表示するとともに記録に残すようにする。そして、処理34(e2)cで、特定された人(ユーザー)を再特定できなかった場合は、アラームを出力してセンター員に知らせ、監視サービス中断をユーザーへ送信するようにする。そして、判別処理34(e2)dで、特定された人(ユーザー)を再特定できていない場合は、処理34(e1)dへ戻ってユーザーの再特定を行うようにする。
特定された人(ユーザー)を再特定できている場合は、次の処理34(e2)eで、特定された人(ユーザー)の現在位置情報より、その位置が画像情報の中央になるように、必要な端末を選択して、各端末の撮影する方向を計算して、その画像情報を送信するように、各端末へ別の電話回線あるいはユーザーがかけている携帯電話に端末との通信機能がある場合はユーザがかけている電話回線経由でコマンドを送信するようにして、処理34(e2)fで、センター員からユーザー(あるいはユーザーとその周辺の人)へ知らせる入力があった場合は、端末へユーザーの携帯電話あるいはユーザー周辺の端末へ知らせる指令と知らせるデータ(音声データなど)を送信する。
また、周囲の人から不審者を不審者のデータべースより認識した場合には、自動で送信するようにする。そして、サービスの終了まで処理34(e2)bからの処理を繰り返して監視サービスを継続する。サービス終了時には、プログラムは、処理34(e2)hで、電話をかけたユーザーのアカウント情報を記録して終了する。これは、ユーザーの追跡処理を自動で行うようにした場合の例である。勿論、各端末にセンター員を一人配置するようにすれば、すべて人がマニュアルでユーザーを追跡するようにしても良いし、本例でマニュアル設定している部分を自動で処理するようにしても良い。自動化されれば、センター員の負担は低減されるとともに見失う危険性も少なくなる。また、自動化の継続効率が良くなれば、複数の端末を複数のセンター員で効率良く運用することも可能となる。例えば、10000台のPC端末を10人のセンター員で運用することも可能となる。また、総合監視センターは、全国に1箇所に設けるのではなく、各地域ごとに分散して管轄するように構成しても良い。また、ここで説明した監視センターのPC端末と各現場に設置される端末の機能分担は、一つの例にすぎない。
この例では、画像情報をセンターのPCに送信してからCADデータの生成や探索処理などにより人や特定の人物を特定するようなシステム構成を説明したが、各端末に視覚情報処理装置を搭載して、各端末の中で2次元のCADデータの生成から周囲の他の端末と2次元のCADデータの送受信をお互いに行い、複数の端末が連携して3D計測して3次元のCADデータを生成する処理機能を現場に設置された端末側もたせて、センターと送受信するデータは、2次元あるいは3次元のCADデータと代表的な画像シーンのみにすることでデータの伝送量を少なくするようなシステム構成にしても良い。また、このようにすれば、端末で即座に処理ができるので、CADデータの生成や探索処理も迅速に行うことができるようになる。
また、監視端末を設置すると、監視端末のない場所での犯罪が増える危険性があるので、量産化により監視端末の製造コストを下げて、公共的な場所、私的な場所を含めた多くの場所に設置できるようにするのが良い。また、覆面などで後で人物を特定できなくして犯罪に及ぶケースも増えると予想されるので、逃げても端末のネットワークからは逃れられないように多くの端末を設置するようにするのが良い。また、不審者を特定したならば、その不審者を自動的に追跡するようにしても良い。その場合、万一、不審者を見失った場合には、見失った場所周辺の端末全体に不審者の探索指令が自動で配信されるようにして、どこかで少しでも視野に入れば不審者を探索できるようにしても良い。見失った時からの経過時間とともに使用する端末の探索エリアを自動的に所定の比率で拡大するようにしても良い。この場合は、特別な処置として公共の場、私的な場に設置したすべての端末をその目的に使用できるようにしても良い。
このような使用方法も想定されるため、各端末にCADデータの生成や探索機能を搭載するようにすることは勿論であるが、同時に複数の命令に対する処理もできるように、常に全方向の画像情報を取り込むようにしてタイムシアリング処理で複数の違う方向を対象に対して違うコマンドに対する処理ができるようにすると良い。
また、凶悪犯罪が増える場合には、音声でユーザへ危険を知らせるだけでなく、各端末にペイント弾を不審者へ向けて発射できるような設備と組み合わせて運用するようにしても良い。端末にレーザを設置して監視サービス状態を弱いレーザスポットを照射して周囲に知らせるようにする設備を利用して、凶悪犯による危険が迫った場合には、レーザビームを絞るようにして不審者へ威嚇照射できるようにしても良い。このときには、PC端末から別の電話回線を利用して警察機関へ緊急で通知ができるシステム構成にして、非常時には警察機関の運用に切り替えて、警察機関のPC端末から操作できるようにして、警察による不審者への静止,威嚇操作が迅速に切り替えられるようにしても良い。レーザーや威嚇弾を撃つ場合は、各端末にレーザーなどの照射する方向を設定するカメラのパンチルト機構のようなものを設けて、それを遠隔手動操作あるいは自動制御できるように構成する。通常の端末の画像情報を広範囲にスキャンするために、ミラースキャンで得るような構成の端末を利用する場合は、そのミラースキャンをレーザの照射方向を設定する機構と兼用するようにしても良い。勿論、端末とは別に専用のレーザーや威嚇弾を撃つ設備を数台の端末に1台程度の割合で設置するようにしても良い。また、レーザーや威嚇弾を撃つ場合は、不審者の手や足の部位を3D−CADデータより認識して、求めた不審者の手や足の位置を検出してレーザーや威嚇弾を撃つ方向を自動的に設定するようにしても良い。操作者がマニュアル操作で威嚇射撃を行う場合でも、誤って不審者の致命傷となる個所へ照準が設定される場合には、自動的に致命傷となる部位を避けた個所に自動的に補正する安全上のインターロックを設けるようにしても良い。本発明の視覚情報処理装置を適用することにより、不審者の頭部、体、手足をそれぞれの部品の位置と姿勢とそれら部品の結合状態(身体全体の姿勢状態)も含めて検出できるようになるので、不審者の致命的な部位を避けて照準を合わせることも容易に実現可能なものとなる。
図133は、端末に画像データ蓄積機能がある場合の監視センタからその情報を引き出すときに使用するPC端末のプログラムの基本的な構成を例示している。
処理34(f)aでは、センター員が指定した端末を電話回線で呼び出し、端末にセンター員が指定する時刻(何月何日の何時から何時まで)の指定の方向の映像(画像情報)を送信させるコマンドを端末へ送信する。次に、処理34(f)bで、送られてきた映像をPCの端末に表示する。ここで、指定があれば、人あるいは特定の人を検出してその人とその周辺のみを表示、あるいは、人の位置に対応する位置に認識マーク(例えば、人を包含する矩形など)を表示したり、指定した端末の方向を撮影する他の端末の画像データも利用して人の3DCADデータを生成しながら表示したりもする。そして、処理34(f)cで、探したい人あるいは探した人を真似た人をあらかじめ撮影した画像情報から生成した3次元CADデータの入力がある場合には、それとのマッチング処理を行い、マッチング度の高い人の映像部分のみを、マッチング度とともに表示するようにする。
図135は、このような監視サービスに適した端末の例であるが、CCDカメラ35bとレンズ35aとを組み合わせた小型カメラ35Aをコネクタ35Cで端末本体35e側に複数設けたソケット35dに設置できる構成にしている。小型カメラ35Aには、指向性マイク35mを取り付けて、音声も監視、記録できるようにして良い。勿論、ここでは図示しないが、端末には、スピーカを設けて、センターから不審者や周囲の人に必要に応じて注意などを喚起できるようにしても良い。スピーカは、申込者の携帯電話より専用拡声器を申込者が身につけて携帯からの音声信号を拡声器から皆で聞くことができるようにしても良い。このようにすることにより、万一、申込者が不審者に狙われるようなことになっても、万一、危険な場所に近づくような場合にもセンターから呼び止めることができるようになる。
この例では、端末35eのソケット35dは、球状に四方八方に小型カメラ35Aを設置できるように均一に全方向に設けてある。このようにしておけば、端末を設置するときに、必要な方向のみに小型カメラ35Aを複数設置することが容易に可能になる。この例は、球状の表面にカメラ35Aを設置できるようにした例であるが、単純に開板の前面と背面の2箇所にカメラ35Aを取り付けられるようにしても良いし、三角柱や三角錐、四角柱や四角錐、多角柱や多角錐などの表面に取り付けられるようにしても良い。そのようにしておけば、例えば、ビルの壁に端末を設置する場合、ビルの壁側は監視する必要がないため、小型カメラ35Aは片側にたくさん設置して反対側には設置しないようにして、合理的に必要なセンサのみを実装した端末を、設置する場所に応じて組み立てることが可能となる。また、公園の真中にポールを建てて端末を設置する場合には、360度全周方向に小型カメラ35Aを実装するようにする。このような構成とすることで、安価な小型CCDを複数組み合わせて、広範囲を高分解能で撮影できる撮像センサ付きの端末を安価に得ることができるようになる。小型カメラ35Aを設置した後にドーム型のカバー35fを溝35gに嵌めるようにして取り付ければ、端末の組み立ては容易に完成する。また、故障した場合もカバー35fを外して、故障した個所のみの小型カメラ35を交換すれば良いし、端末の設置場所を変えるような場合とか、小型カメラ35Aの配置変更や増減する場合も容易に対応が可能となる。
図136は、図135の端末のブロック線図を示している。各小型カメラ35A(1),35A(2)…は、各ソケット35d(1),35d(2),35d(3),35d(4),35d(5)…のどの位置にも接続できるようにする。また、各ソケットからの配線は、センサデータ制御回路36aで実際に接続されている小型カメラ35Aを認識して、そことセンサ信号処理LSI36bとのデータ伝送制御を行うようにする。データ伝送制御は、センサ信号処理LSI36bが次に行う信号処理の内容に基づいてどの小型カメラ35Aからのデータを取り込むかなどの切り替え指令信号をセンサデータ制御回路36aに指示するようにする。センサ信号処理LSI36bでは、申込者を認識して画像トラッキングするとともに、画像情報内で差分処理をして変化が生じた場合のみ、変化部周辺の画像情報を圧縮して画像データ記録装置36dへ時刻データとともに記録するように動作させる。
マイコン36cは、時刻を管理するとともに、申込者のトラッキング指令や定期的に画像を記録する条件などの動作条件を無線通信装置36eを経由してセンター34gからの指令に基づきセンサ信号処理LSI36bに出力するとともに、センター34gや他の端末34bからの指令に対する応答を返信するとともに、無線通信装置36eを経由して入ってくる近くからの端末からの情報を認識して必要な中継機能をみずから、あるいは、センサ信号処理LSI36bを使って実行する。中継処理を行う場合には、画像データ記録装置36dに中継する画像情報も一時記録するようにして良い。また、センサ信号処理LSI36bがトラッキング制御や画像記録や中継機能を全部行うと、処理速度的に厳しい場合には、トラッキング処理専用のセンサ信号処理LSIと画像記録専用のセンサ信号処理LSIと中継処理専用のセンサ信号処理LSIとをマイコン36cにそれぞれ接続して並列処理できる構成にしても良い。また、信号処理は、マイクの音声を分析してその方向を求める機能をもたせても良いし、画像データ記録時には、当該画像の方向のマイクの音声データを記録するようにして良い。マイクがあれば、指向性マイクで方向のトラッキングをしたり、音のある方を画像処理して3次元CADデータを生成したり、音のある方を画像記録するようなこともできるようになる。また、カメラ、マイク以外の赤外線センサーや電磁波センサ、超音波などのセンサを搭載してそれらの信号監視や信号記録もできるようにして良い。
以上のように、本発明の監視サービスによれば、不審者に狙われることのない、また、事件を未然に防げて、また、万一、事件になっても、警察の捜査時間を短くして、少ない警察官で安全な社会を築くことができるようになる。
また、自律移動型ロボットがいろいろな場所で動く社会になった場合には、ロボットのユーザやそのロボットの製造メーカは、安全に対する責任が生じるので、このような監視システムで自律移動ロボットを監視するようにして、万一、危険な状況になった場合には、ロボットユーザに連絡して、速やかに、ロボットを専用回線で停止させるようにすることも可能となる。また、あらかじめ、専用の緊急停止回線のコマンドなどをロボット製造メーカと監視サービス会社とで決めておけば、当該ロボットのIDを指定して、端末より直接に、ロボットの通常制御とは独立した停止制御回路へコマンドを送信できるようにすることができる。IDで対象ロボットを識別するようにすれば、近くに複数のロボットが動いている場合でも危険な対象ロボットのみを停止させることができる。また、本サービスを自動車を運転するユーザに提供する場合は、自動車をトラッキングして監視サービスを行い、他の自動車と衝突しそうになる場合とか、自動車が危険な状態で運転されようとした場合には、自動車の運転手にその旨を事前に伝えられるようにしても良いし、また、緊急性を要する状況の場合には、端末から自動車の制御装置にブレーキ信号を直接送信できるようにしても良い。自動車の場合は、通常は状況を認識して運転者へガイダンスするのみとするが、ブレーキなどの安全サイドの制御は、運転者が遅れた場合には直接実行できるようにすることでも良い。
また、本監視サービスの端末を設置する場合は、少なくとも1台は互いの端末が監視対象の視野に入るように設置することによって、端末自体へ危害が及ぶ場合にもその状況を監視して抑制することが可能となる。また、センターからの各端末へのコマンドに、探索したい物体のいろいろな視点から撮影した画像データあるいは2次元のCADデータあるいは3次元のCADデータを転送して、端末側で、いろいろな視点から見た場合の2次元のCADデータを生成するようにして、撮影される画像情報の中より探索してマッチング度の高い対象物体が探索された場合には、その情報をセンターへ応答するような機能を設けて、監視サービスエリア全体の監視、探索にも利用できるようにしても良い。勿論、これらの処理は、タイムシアリングで他のコマンドに対する応答処理と並行してできるようにしておいても良い。
図134は、図136(a)のマイコン36cの基本処理のフローチャートを示している。これも一例である。マイコン36の動作は、まず、処理34(g)aで、センサ信号処理LSIへ現在の映像を画像データ記録装置へ現在の時刻とともに記録する指令を出力する。次に、処理34(g)bで、無線通信装置から送られてくるコマンドを読み取り、コマンドに対応する処理を行う。具体的な例としては、(1)データ転送コマンドの場合には、近くの端末から送られてくるデータを取り込んで、次の所定の端末宛データとしてそのまま送信出力する。(2)画像出力コマンドの場合には、指定された時刻の指定された方向の画像情報を無線通信装置へ出力する指令をセンサ信号処理LSIへ出力する。(3)送信相手端末から正常受信応答が所定時間内にない場合は、同じデータを再送信する。複数回続く場合には、次の経由ルートを選択して送信する。(4)下流の端末の異常がわかったならセンターへ送信する。送信データには、最終送信先(センターか特定端末)の他、経由ルートが複数ある場合は、途中経由する端末をあらかじめ決められたルールに従って指定するようにする。
次に、判別処理34(g)cで、送信相手から正常受信応答がどうしても得られないとか、自己診断センサある場合に異常を検出した場合は、処理34(g)dでマイコンにランプ等が接続あればそれを点灯する等状態表示アラームを出力して終了する。異常がなければ処理34(g)aから繰り返し実行するように動作させれば良い。
図136(b)は、センサ信号処理LSIの基本的なフローチャートを例示している。センサ信号処理LSI36bは、マイコンからの指令に応じて指令内容に応じた処理を行う。具体的には、(1)画像記録コマンドの場合は、センサデータ制御回路へカメラ端末切り替え指令を与えて指定カメラの画像データを取り込み、画像データ記録装置へ時刻データとともに記録する。カメラ端末が複数ある場合は、切り替えながらすべてのカメラ端末からの画像データを記録する。画像データ記録装置の容量を超える場合は、古いデータの上から上書きする。また、検索しやすいインデックスなども一緒に記録するようにする。(2)画像出力コマンドの場合には、指定された時刻の指定された方向の画像データを記録装置の中から検索して読み取り、無線通信装置へ送信相手先情報などとともに送信データとして出力する。(3)CADデータ生成機能がある場合には、2次元の線分CADデータを生成して画像データ記録装置へ記録する。他の端末からの2次元の線分CADデータを受信した場合は、端末の位置関係より3D計測して3次元のCADデータを生成して記録する。この動作処理36(b)aを繰り返し実施する機構を組み込むようにする。
図137は、本発明の第18の手段の基本的な構成の一例を示すブロック図である。図137(a)は、人間型のロボットを示すが、本発明は、人間型ロボットに限るものではなく、どのようなタイプのロボットに適用しても良い。
この例では、通信システム37kを介して、ロボット(a)側と固定制御部(b),(c)側に分けた構成としている。特に、仮想ダイナミックモデルによるリアルタイム制御を行う制御システム37wの部分を(c)と置いたが、(b)と(c)は固定制御部であり、1台の計算機システムとしても良い。音声解析システム37n、画像解析システム37o、行動指令分析システム37uなどのブロックは、ソフトウエアのプログラムのブロックを示しているが、機能ブロック、すなわち、プログラムはいろいろな構成にできるので、必ずしもこの例とおりである必要はない。
この中の画像解析システム37oは、先に説明した視覚情報制御装置100に相当する機能をこのシステムの中にプログラムで組み込んだものに相当する。勿論、制御部(b),(c)の全体をロボット(a)に搭載する場合には、これらのプログラムもLSI化して高速化と小型軽量化を図る。
通信システム37kは、多くのセンサ信号、各アクチュエータへの制御指令信号の大容量の高速な無線通信システムであり、ロボット側にデータの送信と受信を行う移動局を搭載し、固定側制御部の計算機システムには、データの入出力を行う固定局を設ける。ロボットの頭部には、小型軽量のステレオセンサヘッド37cを有している。また、ロボットの動力源37bは、バッテリーで外部からの充電システムを有している。また、ロボットの手37jは、人間と同じ5本指であるが、通常のほとんどの作業では、5本の指全部を繊細に動かす必要がないので、そのうち3本(親指、人差し指、中指)は、繊細な制御ができる指にして機構と制御系の簡略化を図っても良い。ロボットの首、胴体、腕、足の各関節には、サーボモータがあり、関節角度の指令信号を入力するとその関節角度にサーボ制御できるようになっている。目標角度の更新周期は、10msec程度を目安として、サーボ制御の部分で2msec以下に滑らかな目標値に補間しながら制御することでサーボ制御の安定化を図る。また、ロボットには、各関節角度をサーボモータのエンコーダより得る他に各部位に働く外力に対する反力を各部位の力センサ37g、また、胴体あるいは各部位の加速度を検出する各加速度センサ37i、また、姿勢(傾き)を検出するセンサ37h、必要に応じてジャイロセンサを搭載しても良い。力センサ37gの信号も取り込むようにするので、ロボット本体に外乱としての力が作用した場合には、その状態も取り込むことができるようにする。また、各部位の診断センサ37eを設けて、各センサ、各モータ等のアクチュエータが正常に機能していることを常にチェックできるようにする。
自己診断システム37rは、それらの診断センサの信号を総合的に判断してロボットの異常な部分とその程度を判断して、必要であれば音声出力システム37qに出力して異常であることを外部に知らせるようにする。
また、行動計画システム37vは、現在のロボットの異常個所を考慮して目的遂行のための最適な行動ステップを計画するようにする。例えば、右腕が故障している場合には、左腕のみで作業を行う作業計画を立てるようにする。
また、眼球視点制御システム37pは、眼球レンズ系ドライバ37dでステレオセンサヘッドの眼球を駆動制御する。ステレオセンサヘッド37cの2台のカメラは、ロボットの首を上下左右に動かすことで2台一緒に動くが、それぞれのカメラも人間の眼球と同じように上下左右に独立に動かせるようにする。ロボットの首を動かさなくても、眼球の移動でカメラの向きを変えられるようにする。このとき、それぞれのカメラの向きを決める上下左右の回転角度は、眼球のドライブモータのエンコーダなどの信号で検出できるようにして、画像解析システム37oへ画像情報と一緒に入力するようにする。眼球制御としては、眼球の上下左右の動作の他にレンズ系を駆動してズーム、フォーカス、アイリスを制御するようにしても良い。この場合、少なくとも、ズーム動作状況の情報は、ズーム駆動系37dより画像解析システム37oへ入力するようにするのが良い。ステレオ計測の場合は、2台のカメラの位置と姿勢の関係は正確である必要があるので、眼球レンズ系ドライバにより駆動させたセンサ信号で、眼球のおおまかな現在位置は画像解析システム37oへ入力されて既知の情報として使えるが、より精度良く2台のカメラの対応関係、すなわち、座標変換の計算式を精度良く求めるために、画像解析システム37oは、実際線の安定な特徴点をそれまでに生成したCADデータの中より選び対応する3点あるいは8点を用いてより精度良くステレオ計測の2台のカメラの位置関係を眼球が動作するごとに求めるようにする。ズームを駆動制御する場合には、ズーム比についても精度良く校正するようにする。
また、この例は、無線通信システム37kを介しているが、搭載できるようになれば、ロボットに搭載しても良い。
音響解析システム37nは、命令を言葉で聞いて指令を認識して、その指令に対応するロボットの行動計画を行動指令分析システム37uと行動計画システム37vが生成するが、行動計画が作れなかった場合には、指令実行可否応答を音声出力システム37qからロボットの口の位置に設けたスピーカより音声で出力する。音響解析システム37nは、言語抽出機能の他に、音を聞いて、水の流れる音とか、金属音とか、何の音かを識別する機能をもたせて、画像解析システム37oと連携しながら環境認識できるようにしても良いし、ロボットの左右の耳には、指向性マイクを取り付けて、ロボットの首の動作状況より音源の位置の方向を探索して、音源とロボットの位置関係を推定する自己位置同定機能や音源の方向へ移動するための情報を求める聴覚誘導機能をもたせても良い。また、ステレオセンサヘッド37cからの画像データは、画像解析システム37oで環境認識、自分の位置の認識を行い、それらのCADデータは、データベース37tの中に記録して、随時更新するようにする。画像処理は、音響解析処理と連携しながら動作するようにして良い。
また、ロボットからのセンサ信号、音声解析システム37nが検出した情報、画像解析システム37oが解析した情報は、全てデータベース37tへ入力、リアルタイムで更新されるようにして、他のシステムもリアルタイムで最新の情報を参照できるようにするのが良い。
行動指令分析システム37uは、人間の言葉である言語指令をロボットの動作命令に対応付けて変換処理を実行する。言葉による指令は、「この箱を隣の部屋の机の隣まで持っていって。」という命令とすると、まず、「この箱」というのは、最初に命令を出すマスタ(人間)を認識している必要はあるが、音響解析システム37nと画像解析システム37oが連携しながら、マスタが「この」と言ったときにマスタの手が指し示した先にある物体(箱)を認識して、「この箱」=3次元CADデータの中の物体ID=Cと解析する。この前には、あらかじめ環境の中より箱を一つの物体として認識している必要あるが、これは、あらかじめ箱の3DCADデータを生成登録しておき、3次元の探索指令で最初に生成された環境の中からマッチング度の高い候補として探索して環境から切り分けて物体ID=Cとしておくか、マスタより「これ」と指定されたらば、その先の位置を中心にあらかじめ登録してある認識可能な物体ファイルとの参照マッチングを行い、その指示されたときに、物体ID=Cと置き換えるようにしても良い。
次ぎに、「隣の部屋」というのは、CADデータの環境データの上で部屋の概念は認識されている必要があり、また、「隣の」という言葉も、「現在の場所の左右の並びで次にあるもの」という意味の形容詞であることを認識している必要がある。その上で、その言葉を聞けば、現在いる部屋がROOM1であるので、環境データ上、この隣にある部屋は、ROOM2しかなければ、その部屋を「隣の部屋」と認識するようにする。候補の部屋が複数ある場合には、音声出力システムを使用して、指令が特定できるまでマスタに確認するようにして良い。「机の隣」も同じようにCADデータ上の座標Gの位置であることを認識する。机もあらかじめ机のIDとして環境CADデータから分離されていれば、同じように探索して座標を特定することができる。
また、まずは、隣の部屋ROOM2まで移動した後に、机を探索して、見つけたときに環境から切り離して、机ID=DESKと登録を行ってから行うようにしても良い。隣は机の隣で、箱の置けるスペースのある床面を第1候補場所を考えて、その位置座標を設定する。このようにすれば、現在位置Pから物体ID=Cを持って、座標Gまで持っていく、というロボットで制御可能な命令に置き換えることができる。
また、「持っていって。」という言葉は、ロボットの腕を動作させて対象物体を掴み、目的地まで移動して、対象物体を目的に置くという、一連の動作をすることの命令に相当するということはあらかじめ登録しておき、人間のことばからロボットの動作に直結する命令に変換可能なようにしておく必要はある。
ここで、いろいろな、言葉と動作の対応付けは登録していて良いが、登録してない言葉は理解できないので、実行できませんと回答するようにしても良いし、言葉の意味をその時点で質問してロボットが学習できるようにしても良い。学習するということは、このときに、あらたな人間の言葉とロボットの動作命令を対応付けることである。学習の動作命令以外に物体の名前なども登録できるようにしても良い。形容詞は、言葉で学習させることは複雑な処理が必要になるので、できるだけ最初に定義しておくのが良い。そして、行動計画システム37vへは、ロボットが実行可能な命令(人間の言葉ではない命令)、例えば、腕を動かして座標Bにある物体(ID=C)を掴み、ロボット本体(Body)は掴んだまま座標Gへ移動し、座標Gにある机ID=DESKの隣にある床面に、物体ID=Cを置く、という命令を出力する。
行動計画システム37vは、行動指令分析システム37uから入力されるおおまかな指令をロボットの動作駆動系の構成、仕様、性能、及び現在のロボットの位置と姿勢情報と現在ロボットの居る場所の最新の環境条件のもとに、更にブレイクした行動ステップに分割して行動計画をたてる。具体的には、隣の部屋ROOMへ移動するまでの移動計画ルートを生成して、途中にドアをあればそれを開け・閉めするステップを計画し、途中に堰などがあればそれを飛び越えるステップも計画する。これらは、地図データとして3次元のCADデータを参照しながら計画するようにする。
姿勢と力の制御計画システム37xは、行動計画システム37vから入力される各ステップ毎に、姿勢と力の制御計画をたてて、具体的な各関節角度の指令データにまでブレイクする。その場合、良く使用する基本的な動作パターン(所定の単純な基本的なロボットの動きを時系列の各関節角度指令値で記述したデータ)を複数種類用意しておき、その複数用意された各種基本動作パターンから選択して組み合わせるようにして一連の動作指令信号の最初の計画案を作成するようにしても良い。そのブレイクした指令データが実行不可能なものの場合には、その結果が行動計画システム37vへフィードバックされて、再度、行動計画をやり直す。
ロボットとして実行可能(関節としては動作可能なレベルという判断)な動作指令である場合には、その結果が制御予測シミュレーション37yに入力され、現在のロボットの環境データ、ロボットの姿勢データ、ロボットの位置データ、ロボットへの外乱として作用する外力や自重やロボット動作による反力に相当する各部の力センサのデータ、ロボットの動作データ(速度や加速度で各部位ごとのデータ)は、データベース37のデータを使ってシミュレーションを行い、その結果が十分制御計画どおりである場合には、各関節角度を決定部37zで決定して各関節のサーボ制御部37fへ出力する。シミュレーションの結果が十分でない場合には、再度姿勢と力の制御計画をやり直し、場合によっては、行動計画システムからやり直してシミュレーションで計画どおりに動作できることが確認できてからロボットへ制御指令信号を出力する。
最初はロボットの動作を定義した基本パターンから初めて、シミュレーション結果を参照しながら、そのパターンを複数用意した中の候補パターンの中より組み替えたり、基本パターンのデータを少しづつ修正するようにするので、むやみにデータを変更しても最適な解を見つけるのに時間がかかるので、あらかじめ、シミュレーション結果が収束するような修正規則(ルール)もその動作パターンごとに用意して組み込んでおくのが良い。シミュレーションは、ダイナミックシミュレーションで、例えば、37y(1),37y(2),37y(3)のように、荷物をもって堰を飛び越えるような場合の動的安定性、制御可能性を評価するようにする。勿論、飛んでいる途中でもロボットの首や眼球を動かして、着地地点周辺の3D計測を行い、常に最新のロボットの現在位置を計測するようにして良い。
また、ロボットが、例えば、壁を押すような仕事をする場合には、姿勢と力の制御計画システム37xは、壁にどのような力を与えるかの計画、例えば、横軸に時間をとって、縦軸に壁への押し付け力をとって、時間とともにどのように壁に力を与えるかを、その目的に対応させて具体的に計画する。そして、制御予測シミュレーションシステム37yは、3次元CADデータでロボットと壁の位置関係や壁の物理的な特性データ(硬さに相当するばね定数とか、その壁が抑えられて裏側の構造物の剛性データ、その壁は動くようなものか否か、動く場合にはどのような特性で動くのかなどのデータもあらかじめ環境データとして記録されていれば、その情報を参照して、姿勢と力の制御計画システム37xが生成したロボットの関節角度指令に基づきロボットをシミュレーション動作させる。そして、計画した目標どおりに、時間に対する壁への押し付け力を目標どおりに与えられるかをシミュレーションで確認して、その結果に基づき、関節角度指令を十分計画どおりの力を壁に与えられない場合には、変更して再度シミュレーションを行い、より計画どおりの力を壁に与えることのできる関節角度指令信号を生成する。このときに、何かロボットに外力が発生した場合には、ロボットの力センサでロボットに作用する外力も検出されるので、その外力も作用している条件でシミュレーションすることにより、外乱に耐えて計画どおりの動作をさせるような動作指令信号を生成することができる。ここでの関節角度指令信号とは、行動計画システム37vでブレイクした各ステップの行動を実行する一連の動作軌跡指令信号である。シミュレーションする単位は、特に制御がむずかしい部分や、実行間際の動作指令に相当する部分で、より細かく区分けした所定の時間から所定の時間までの関節動作角度指令軌跡とすることでも良い。また、実行直前の動作指令のシミュレーションを高速に実施しながら、少し先の動作シミュレーションを複数同時に実行できるようにしても良い。
シミュレーション処理などは、無線通信を介してロボットの制御装置をロボットに搭載しないようにすれば、スーパーコンピュータなどで高速に実行させるようにすることができる。小型軽量で高速なコンピュータを用いてシミュレーションを実行するようにすれば、制御部(b),(c)をロボットに搭載するようにしても良い。どのような構成でも、このようにすれば、リアルタイムで環境の3次元CADデータを生成して、リアルタイムでその中のロボットの位置と姿勢と動きの状態も検出した上で、動的に安定な制御するための適切な制御指令を実際の環境と同じ条件でシミュレーションを行い求めることができる。ロボットが飛び跳ねて空中を飛んでいる瞬間にも、どういう姿勢で、どういう外乱を受けながら、どういう速度、加速度で飛んでいるかがセンサで検出されているので、どのように腕を振ったり、胴体をひねればどのように空中でロボットの姿勢が変わるかも、事前に、シミュレーションで確認できるので、計画どおりの姿勢で安全に着地するための最もそのときの状態に適したロボットの空中での動作指令を出力することもでき、ロボットを飛んだり跳ねたりさせるダイナミックな制御動作も安定に制御することができるようになる。また、空中でロボットの胴体や腕や足をどのように動かせば、どのようにロボットの姿勢を空中で修正できるかという基本動作パターンもあらかじめ用意しておき、その中から選択できるようにしても良い。また、ロボットが堰を飛んで跨ぎ越すような動作を行っている途中に、足を堰に引っ掛けてしまったような場合にも、堰から足には外力が作用するので、その力は足の各アクチュエータのトルク(サーボモータの電流)とか、足の構造部材に取り付けた力センサによって、その大きさと方向が検出できるようにしておくことにより、その外力もシミュレーション結果へ反映することで、補正前の制御データでは転倒してしまうことが、シミュレーション結果で事前に分かるので、それを回避する動作パターンデータの修正を実際のロボットが転倒す前に行うことも可能となる。足を引っ掛けるとか、肩をどこかにぶつけるとかといった良く起こりうる外乱要因に対しては、あらかじめそのような状況が発生した場合に、外力の傾向からどのような外乱かを早期に認識できるように、また、どのような外乱かを認識することできたらば、そこから立ち直るための基本的な制御パターンをあらかじめデータベースに登録しておき、早い時間に立ち直るための動作データの修正処理が収束できるようにしても良い。また、外乱が大きい場合には、シミュレーションを行って所定の時間内、例えば、10msec以内とかに満足できる動作指令信号が得られない場合には、その時点で最善と判断できる指令信号を出力するようにする。
次の10msec後に出力する時間までに再度シミュレーションを行うようにする。10msecというサイクル時間は、サーボ系が安定できる2msecのサイクルに高速化できればそれに越したことはないが、目標指令値を10msecで出力するようにして、センサ入力は、2msecの高速サイクルで取り込めるようにしてロボットの状態をより正確に詳細に捉えて、より適切な動作指令信号を生成できるようにしても良い。ロボット全体の姿勢制御の他に机の上で部品を組み立てたり分解する場合にも、視覚情報処理で部品と指の3次元CADデータを生成、その位置と姿勢を探索しながら、また、指先に作用する反力を検出しながら、物体を所定の姿勢にハンドリングしたり、物体に所定の荷重を作用させるように、姿勢制御や力制御のシミュレーションを行いながら、腕と指先のロボットへの最適な制御信号を出力するようにする。
また、ロボットが走ったり、飛んだりする場合には、ロボットの手の指の動きはロボットの姿勢制御への影響が小さいので、指のシミュレーションモデルは省略したモデルでシミュレーションを行い、また、一方、机の上の物体を持って、組み立てたり、分解する場合には、腕と指のシミュレーションの部分を高速に精度良くシミュレーションを行うようにして、その状況に応じて適切なシミュレーションモデルを切り替えて使用するようにすると良い。
また、視覚情報処理装置で認識した物体を持った場合とか、指で掴んだ場合には、あらかじめ、物体IDごとにシミュレーションへ組み込む場合のシミュレーションモデルの条件を用意しておき、その物体のモデルをシミュレーションの中に組み込むようにしても良い。物体の質量、自由度構成などは、あらかじめ物体IDのデータとして用意しておき、ロボットのモデルとの結合場所の詳細な位置と結合条件(しっかり把持とか、軽く把持などの条件)は、物体を掴んだときの把持条件は視覚情報処理で認識した物体とロボットの手の位置関係より設定して、掴み方の結合条件は行動計画内容から設定するようにする。また、ロボットに作用する力の制御では、ロボットの安定性を十分確保しながら動作させるような場合には、ロボットの基本的な動きを制御する中で、ロボットの足に作用する反力を検出して、その反力が所定の計画どおりに変化するようにロボットの最適な姿勢制御をシミュレーションしながら決定するようにしても良い。
また、この手段は、人間型ロボットへの適用だけではなく、鳥や魚のロボット、自動車や2輪車、飛行機などの制御へ適用しても良い。自動車であれば、自動車Bodyの速度、加速度の他、車輪のシャフトやホイールの回転数や反力を検出して、現在移動している環境とその中の自動車の位置と姿勢は視覚情報処理装置で検出して、目標とする自動車の移動軌跡と、障害物への衝突を避けながら、かつ車の安定度に相当する車輪の目標反力を計画どおりになるようにシミュレーションを行いながら制御するような自動車の制御装置として適用しても良い。飛行したり、浮遊するロボットなどでも、視覚情報処理装置によって環境と環境の中のロボットの位置と姿勢条件をリアルタイムで検出して、また、反力としては、Bodyに作用する流体の抵抗や翼やプロペラ、スクリューなどに作用する力でり、それらをリアルタイムで所定の計画どおりになるようにシミュレーションしながら制御すれば、ロボット自体の強度的、パワー的な限界も考慮した、安定で、最適な制御指令を出力することの制御装置を得ることができるようになる。
また、視覚情報処理装置の中のデータベースあるいは別のデータベースでも良いが、状況を認識した結果の情報を現在の環境情報として登録しておき、現在の環境情報を参照するときに、そのデータベースが利用できるようにしても良い。例えば、別のロボットAあるいは人間Bが物体Cを持っているという状況をロボットAあるいは人間Bを認識特定し、物体Cを認識特定して、物体CがロボットAあるいは人間Bが持っているという状況をその位置関係やロボットAや人間Bの腕の部品を認識してそれと物体Cとの位置関係で持っていると認識(勿論、あらかじめ、「持っている」ということは手と物体が2箇所以上で接触していて、それらの接触位置は当該物体をそれらの点で支持した場合に安定に支えられる位置である場合というように定義されており、その状態を調べることで持っているか否かの判別ができるようにしておく。また、その定義のデータベースは認識可能な動作に対して全て用意しておくようにする。)した場合には、(1)何時(認識した時刻データ)、(2)どこで(認識したロボットAあるいは人間Bの場所)、(3)どうであったかという状況(ロボットAあるいは人間Bは物体Cを持っていた)というような内容を状況認識結果としてデータベースに登録しておけば、指令情報で、例えば、「赤い箱を持ったロボットAのそばまで行くように。」と言われた場合には、当該データベースを探索して赤い箱(物体C)を持っているロボットAのデータがあれば過去に赤い箱を持ったロボットAを何時頃にどこで認識したかという状況がわかるので、まずは、その場所周辺でロボットAを探索するように行動計画を立てるようなことも可能となる。データベースにない場合には、その指令を受けてから赤い箱を持ったロボットAを探索するように行動計画を立てるが、探索した場合には、その状況をデータベースに登録しておくことにより、次回からは今回認識したときの状況データも参照しながら、行動計画を立てることもできるようになる。
図138〜図148は、図137における(a)(b)(c)の主要回路部の基本的な処理フォローチャートを例示している。
図138は、音響解析システムの基本的な処理フローチャートである。処理は、処理37(f1)aで、ロボット本体(a)の左右のマイクからの音声データを読み込む。途切れることなく連続処理する場合は、内蔵メモリに音声データを所定時間格納しながら、先に格納してある音声データについて処理を行うようにする。
次に、処理37(f1)bで、音声データに人の言葉が含まれている場合には人の言葉を音声信号のパターンマッチングなどにより抽出して単語に分解して、主語、述語にわけて、あらかじめ登録してある言葉(名詞、動詞、形容詞、副詞など)からロボットに対する命令を組み立てて、行動指令分析システムへ出力する。
そして、処理37(f1)cで、音声データに鳥の鳴き声とか、水の音とか、金属をたたく音とか、あらかじめ登録してある特長ある音の信号が含まれている場合には、音声信号のパターンマッチングなどにより抽出して、音の聞こえてくる方向を左右のマイクの向きとマイクの指向性特性より求めて、認識した音の種類と音のデータと聞こえる方向を現在の位置と時刻データとともにデータベースの環境データの一部として記録更新するとともに音の聞こえてくる方向とその種類を画像解析システムへ出力する。人の声も記録する。現在位置は、データベースの中の自己位置データを参照してロボット本体の位置、ロボットの頭部の位置、向きの情報を取得する。また、音の方向、種類を識別するときには、画像解析システムから送られる現在撮影している方向あるいは周囲にある物体で認識できた物体の種類とその位置情報を利用して認識精度を高めるようにする。
次に、処理37(f1)dで、行動計画システムから指令がある場合は、指定された音源の現在の方向と音の大きさと、過去のマイクの位置と向きで検出した同じ音源の方向と音の大きさから音源に対するロボット本体の位置を特定して、データベースの中の自己位置パラメータの音響解析システムで検出した情報として書き込み更新する。
そして、処理37(f1)eで、行動計画システムから指令がある場合は、指定された音源の方向へロボット本体を誘導する場合のすすむべき方向をデータベースの中の検出パラメータの中に書き込む(更新する)。これらの処理を繰り返し実行するようにする。
図139および図140は、画像解析システムの基本的な処理フローチャートを示している。処理37(f2)aで、まず、ロボット本体(a)の左右のカメラ(眼球)からの画像データを読み込む。途切れることなく連続処理する場合は、内蔵メモリに画像データを所定時間格納しながら、先に格納してある画像データについて処理を行うようにする。
次に、処理37(f2)bで、左右の画像データから2枚の2次元の線画CADデータを生成して、ステレオ計測による3D計測を行い3次元のCADデータを生成しながら、トラッキング処理を行い、トラッキングによる3D計測も行いながら、3次元のCADデータを更新しながら、あらかじめ登録してある各種物体のCADデータのマッチング処理によりマッチングした部分はその部分のCADデータを一つの物体の種類(物体ID)として認識して、3次元のCADデータを生成し、生成した3次元のCADデータ、2次元のCADデータ、画像データなどを生成時刻データとともにデータベースの環境データの一部として記録更新する。ロボット本体の腕や手や足、ロボットが把持している物体なども各部品ごとのCADデータをあらかじめ登録しておき、ひとつの物体IDとして認識して、その位置と姿勢情報も環境データに含めて記録更新する。また、現在位置は、データベースの中の自己位置データを参照してロボット本体の位置、ロボットの頭部位置、向きの情報を取得する。また、動作のより高速な頭部中のカメラ(眼球)の向きとズーム状態、焦点状態、アイリス状態の情報は眼球レンズ系ドライバより直接データを受け取り参照するようにする。また、画像のトラッキングが途切れて、現在位置を探索する場合には音響解析システムから送られる音源位置の方向等の情報の他、データベースに記録されている環境データ、過去の自己位置データ等の情報も利用してトラッキングが再開できるように現在位置の特定(同定)を行うようにする。
次に、処理37(f2)cで、3D計測を行うときに得られるカメラの現在の位置と向き情報とカメラ(眼球)の向き情報より、頭部の位置と向きを求めて、データベースの検出パラメータの中のロボットの各関節角度情報を参照して、頭部の位置と向きからロボット本体のBodyの現在の位置と方向と姿勢を求めて、データベースの中の自己位置データの一部の情報として、ロボット本体のBodyの現在の位置と方向と姿勢情報を記録更新する。ロボット本体の腕や手や足や持っているものを物体IDとして既に3次元のCADデータとして認識されている場合には、現在のその位置と姿勢情報も参照してロボット本体のBodyの現在の位置と方向と姿勢情報をより精度良くなるように補正するようにする。
次に、処理37(f3)aで、画像データに文字が含まれている場合には、文字のパターンマッチングなどにより抽出して単語に分解して、主語、述語にわけて、あらかじめ登録してある言葉(名詞、動詞、形容詞、副詞など)を文字の表示ある物体の種類(物体ID)とともに音響解析システムへ出力する。
次に、処理37(f3)bで、行動計画システムから指令(視覚誘導の指令)がある場合は、指定されたロボット本体の部品(頭部のカメラ(眼球)の向き等も含む)の物体IDあるいはロボット本体が把持あるいは腕あるいは足あるいはBodyで保持している物体IDを、指定された方向あるいは指定された目標移動軌跡に沿って移動させる場合、その物体の誘導すべき方向、距離などの情報をデータベースの検出パラメータの中に書き込む(更新する)。誘導すべき情報は、ロボット本体の各部の部品の動作制御すべき、方向、大きさの情報にして書き込むようにしても良い。
次に、処理37(f3)cで、行動計画システムからの視覚誘導の指令を実行するために、あるいは、行動計画システムから環境CADデータの生成方向の指定がありその指令を実行するために必要な頭部の位置と向きを、頭部のカメラの現在の位置と向きと、CADデータを生成したい位置と方向から求めて、データベースの検出パラメータの中に書き込む(更新する)。必要な頭部の位置と向きの情報はロボット本体の各部の部品の動作制御すべき、方向、大きさの情報にして書き込むようにしても良い。
次に、処理37(f3)dで、行動計画システムからの視覚誘導の指令を実行するために、あるいは、行動計画システムから環境CADデータの生成方向の指定がありその指令を実行するために必要なカメラ(眼球)の向きを、カメラの現在の位置と向きと、CADデータを生成したい位置と方向から求めて、眼球視点制御システムへ動作指令信号を出力する。また、対象物体の色境界線分をより抽出し易くするためのカメラのズーム状態、焦点状態、アイリス状態を色境界線分の抽出状況より求めて、眼球視点制御システムへ動作指令信号として出力する。このような処理を繰り返し実行するように処理する。
図141は、眼球視点制御システムの基本的な処理フローチャートを示している。まず、処理37(f4)aで、画像解析システムから指令がある場合は、その指令に基づきカメラ(眼球)の方向、ズーム状態、焦点状態、アイリス状態の動作指令信号を眼球レンズ系ドライバへ出力する。眼球レンズ系ドライバは、ロボットの左右のカメラの向きとレンズ系を指令信号に基づき駆動制御して、カメラの向きとレンズ系の現在位置状態をカメラのセンサ情報として取り込みフィードバック制御を行うとともに、画像解析システムへ直接現在の状態として出力する。
次に、判別処理37(f4)bで、画像解析システムからカメラ(眼球)の向き、或いはカメラのズーム制御の指令があるかどうか判別して、Yesの場合には処理37(f4)aへ戻り,繰り返し実行するようにする。Noの場合は,処理37(f4)cへ進む。
処理37(f4)cで、行動計画システムから指令がある場合は、その指令に基づきカメラ(眼球)の方向、カメラのズーム制御の指令を眼球レンズ系ドライバへ出力する。
処理37(f4)dで、行動計画システムから指令に基づき眼球レンズ系ドライバへ出力した情報を画像解析システムへ出力する。画像解析システムは、この情報をデータベースの検出パラメータへ記録更新ずるようにする。このようにして繰り返し処理するようにする。
図142は、音声出力システムの基本的な処理フローチャートを示している。処理は、処理37(f5)aで、行動計画システムから指令がある場合は、指令に付属するあらかじめ登録してある言葉(名詞、動詞、形容詞、副詞など)で構成されている文章を受け取り、ロボットのスピーカへその言葉に対応する音声データとして出力する。行動計画システムからの言葉は、指令された命令は実行できない旨とその理由や行動計画を実行するために周囲に協力を得る必要がある場合の呼びかけなどを出力するようにする。言葉に対応する音声データの種類は、音響解析システムで有している言葉の種類と基本的には同じとする。
そして、処理37(f5)bで、自己診断システムから指令がある場合は、自己診断システムから出力された異常の内容に対応する音声データをロボットのスピーカへ出力する。これらの処理を繰り返し実行する処理機能とする。
図143は、自己診断システムの基本的な処理フローチャートを示している。処理は、処理37(f6)aで、ロボットの各部の自己診断用センサ(各アクチュエータおよびそのドライバの温度センサ、電流センサなど)の情報を取り込む。
処理37(f6)bで、ロボットの各部の自己診断用センサ(温度センサ、電流センサなど)からの検出信号より、各部の正常、異常を閾値以上か、閾値以下かから判別する。異常と判別する条件は、あらかじめ閾値を設定しておくようにする。
次に、処理37(f6)cで、判別の結果、行動計画システムへ知らせるべき重要な異常が発生した場合には、行動計画システムへその結果を出力する。行動計画システムへ知らせるべき重要な異常の種類とそのレベルは、あらかじめ設定しておくようにする。
次に、処理37(f6)dで、判別の結果、音声で周囲へ知らせるべき重要な異常が発生した場合には、音声出力システムへその結果を出力する。周囲へ知らせるべき重要な異常の種類とそのレベルは、あらかじめ設定しておくようにする。
次に、処理37(f6)eで、行動計画システムから指令がある場合は、その指令に基づき指定箇所の診断をより詳しく正確に行い、行動計画システムへその結果を出力する。これらの処理を繰り返し実行するようにする。
図144は、行動指令分析システムの基本的な処理フローチャートを示している。処理は、処理37(f7)aで音声解析システムから入力される人間の言葉による指令情報を言葉(名詞、動詞、形容詞、副詞など)で構成されている主語、述語として読み込む。
次に、処理37(f7)bで、名詞はあらかじめ登録してある物体IDに置き換え、動詞と形容詞と副詞などもあらかじめ登録してある言葉IDに置き換え、人の言葉からロボットがあらかじめ登録されている認識可能な対応するIDに変換する。
次に、処理37(f7)cで、主語と述語から、あらかじめ登録してある命令パターン(例えば、例(1)物体IDを持てとか、例(2)物体IDを副詞ID(ゆっくりとか早くに相当するID)で、副詞ID(場所を表す物体IDの上へ、あるいは下)へ、動詞ID(移動)せよとか、例(3)物体ID(右手)を副詞ID(上、あるいは下)へ、動詞ID(上げよ)など)に対応させて、ロボットが実行可能な命令に置き換え、行動計画システムへ出力する。登録パターンに当てはまらない指令情報の場合は、「命令が理解できません。別の言葉で指令してください。」と行動計画システム経由で音声出力システムへ出力するようにする。これらの処理を繰り返し実行するようにする。
図145は、行動計画システムの基本的な処理フローチャートを示している。処理は、処理37(f8)aで、行動指令分析システムから、あらかじめ登録してある命令パターン(例えば、例としては、(1)物体IDを持てとか、例(2)物体IDを副詞ID(ゆっくりとか早くに相当するID)で、副詞ID(場所を表す物体IDの上へ、あるいは下)へ、動詞ID(移動)せよとか、例(3)物体ID(右手)を副詞ID(上、あるいは下)へ、動詞ID(上げよ)など)に基づく指令情報を読み込む。
次に、処理37(f8)bで、名詞はあらかじめ登録してある物体IDに置き換え、動詞と形容詞と副詞などもあらかじめ登録してある言葉IDに置き換え、人の言葉からロボットがあらかじめ登録されている認識可能な対応するIDに変換する。
次に、処理37(f8)cで、指令情報を実行するためにあらかじめ用意しておくルールに基づき移動速度(速く、ゆっくりは実際の移動速度へ)、移動量、移動座標、移動ルートなどを具体化する。具体化するに当たっては、データベースの中の環境データ、自己位置データで現在ロボットのいる場所の環境やロボットの姿勢や動作状態などを参照してルールに従った適切な数値で具体化する。
次に、処理37(f8)dで、具体化された指令情報をあらかじめ用意されているロボットの最小動作単位(行動ステップ)に分割して、行動ステップごとの動作条件を具体的に設定して、1ステップづつその指令を順番に姿勢&力制御計画へ出力する。姿勢&力制御計画からNG信号がある場合は、当該計画の見直しを行い再出力する。行動ステップの例は、右手で物体IDを強さAでつかむ、左手で物体IDを強さAでつかむ、つかみながら腕をAからBへ速度Cで動かす、ロボットの向きをAからBへ速度Cで変える、座標AからBまで速度Cで移動する、物体を持ちながら座標AからBまで速度Cで移動する、物体Aの上に速度Bで右足を移動して乗せる、階段ID=Aの位置Bから位置Cまで速度Dで上る、ロボットの姿勢をAからBへ速度Cで変える、物体Aを速度Bでまたぎ座標Cへ姿勢Dで移動する、壁Aを力Bで押す、等などである。また、具体化するに当たっては、データベースの中の環境データ、自己位置データで現在ロボットのいる場所の環境やロボットの姿勢や動作状態などを参照してルールに従った適切な数値で具体化する。
次に、処理37(f8)eで、指令情報が実行できなくなった場合や行動計画を実行するために周囲に協力を得る必要がある場合は、発生する言葉による文章を生成して音声出力システムへ出力する。音響解析システム、画像解析システム、眼球視点制御システムへ計画を実行するために必要な要求がある場合は、その指令信号を出力する。これらの処理を繰り返し実行するようにする。
図146は、姿勢&力制御計画の基本的な処理フローチャートを示している。処理は、処理37(f9)aで行動計画システムから、ロボットの最小動作単位である行動ステップを具体的な速度、移動量などの動作条件とともに読み込む。行動ステップの例は、右手で物体IDを強さAでつかむ、左手で物体IDを強さAでつかむ、つかみながら腕をAからBへ速度Cで動かす、ロボットの向きをAからBへ速度Cで変える、座標AからBまで速度Cで移動する、物体を持ちながら座標AからBまで速度Cで移動する、物体Aの上に速度Bで右足を移動して乗せる、階段ID=Aの位置Bから位置Cまで速度Dで上る、ロボットの姿勢をAからBへ速度Cで変える、物体Aを速度Bでまたぎ座標Cへ姿勢Dで移動する、壁Aを力Bで押す、等などである。
次に、処理37(f9)bで、データベースの中の環境データ、自己位置データの現在ロボットのいる場所の環境やロボットの姿勢や動作状態などを参照して、現在のロボットの姿勢から行動ステップを実行するための、ロボットの各関節の動作指令パターン(各関節の時系列の角度指令値(θri(t)t=0〜n)を生成する。制御予測シミュレーションからNG信号がある場合は、当該動作指令パターンの見直しを行い再出力する。行動計画システムからの指令内容が変わらない場合もデータベースの中の環境データ、自己位置データの現在ロボットのいる場所の環境やロボットの姿勢や動作状態などは逐次更新されるので、常に現在の位置からの最新の各関節の動作指令パターンを生成して出力する。動作指令パターンを生成する場合、あらかじめルールを登録しておき、そのルール(初期の生成ルールから制御結果のデータベースの更新結果を参照して改良するルールを含む)に従って生成する。歩く動作やまたぐ動作や階段を昇降する基本動作パターンが歩幅や階段のステップ仕様をパラメータにデータや生成プログラムが用意されている場合は、それを使用して初期の位置、姿勢と終了時の位置、姿勢が繋がるように補正して動作指令パターンを生成する。手先や足先に現在位置から目標位置まで途中の経由ポイントを指定して動作パターンを生成するのは、一般産業用ロボットのティーチング処理から動作指令信号を生成するプログラムを用意しておき、それを使用して動作指令パターンを生成する。また、力(反力)を所定の値に制御するための動作指令パターンを生成する場合には、データベースのロボットで押す相手の物体の固さや弾性特性を参照しながら、ロボットの接触ポイントの反力が生じる接触ポイントの押す物体のない場合の移動量を動作させるための動作指令パターンを生成する。また、NG見直しを行う場合は、フィードバックされる参照データも参照してあらかじめ用意された所定のルールに従って見直すようにする。
次に、処理37(f9)cで、行動ステップが実行できなくなった場合は、その理由情報とともに行動計画システムへNG信号とともに出力する。これらの処理を繰り返し実行するようにする。
図147は、制御予測シミュレーションの基本的な処理フローチャートを示している。処理は、処理37(f10)aで、データベースの自己位置データよりロボットの現在位置、姿勢、その他の条件を読み込みシミュレーションモデルの初期条件を設定する。
次に、処理37(f10)bでデータベースの環境データより3次元のCADデータを読み込みシミュレーションモデルに環境条件を設定する。
次に、処理37(f10)cで、姿勢&力制御計画より、ロボットの各関節の動作指令パターン(各関節の時系列の角度指令値(θri(t)t=0〜n)を読む込む。ロボットの状況、環境の状況に応じて変更ある場合があるので、毎回最新の動作指令パターンを読み込むようにする。
次に、処理37(f10)dで、ロボットの各関節の動作指令パターンの各関節の時系列の角度指令値θri(t)t=0とシミュレーションモデルの初期姿勢が合っていることを確認し、許容範囲内の場合は、シミュレーションモデルの初期条件を合わせる。許容できない場合は、姿勢&力制御計画へNG信号と初期姿勢不一致のエラーコードとともに返信する。
次に、処理37(f10)eで、ロボットのシミュレーションモデルへロボットの各関節の動作指令パターンとして各関節の時系列の角度指令値(θri(t)t=0〜n)を入力して、ダイナミックなシミュレーションを実行する。シミュレーション結果は、途中のロボットの各部品の動作軌跡を記録してシミュレーション評価時に参照できるようにする。行動ステップが長いため、途中で当面のシミュレーションの評価(ダイナミックな安定性や安全性)が十分可能な動作シミュレーションが行われる場合には、t=0〜nの最後まで行わないで中断して良い。
次に、処理37(f10)fで、シミュレーション結果を評価(ダイナミックな安定性や安全性や目的の達成度を評価)して、行動ステップの目的を所定のレベル以上で達成できない場合は、姿勢&力制御計画へNG信号と補足情報を返信する。評価結果がOKの場合は、各関節角度θriの決定回路へOKを出力する。これらの処理を繰り返し実行するようにする。
図148は、各間接角度の決定の基本的な処理フローチャートを示している。処理は、処理37(f11)aで、制御予測シミュレーションから評価結果OKの指令がある場合には、ロボットの各関節の動作指令パターン(各関節の時系列の角度指令値(θri(t)t=0〜n)の各関節の次の角度指令値θri(t)のt=1のデータを読み込み、各関節軸のサーボ制御の回路へ出力する。各関節軸のサーボ制御の回路は、各角度指令値に基づきモータを駆動制御する。モータからはエンコーダなどのモータの現在位置情報を入力してフィードバック制御に利用するとともにデータベースの検出パラメータに各関節の現在角度情報、動作速度情報などを記録更新する。この処理を繰り返し実行するようにする。
以上に述べてきた基本的な処理フローで、実際に人の命令に従って自律的に作業を実施できるロボットが実現可能となる。これはあくまでも一例を示しているので、各機能ブロックを実現するブロックの分担の仕方や機能の詳細な内容は、いろいろなバリエーションが考えられるので、目的とするロボットの機能、性能に応じて最も合理的な構成とすれば良い。また、この例は人間型のロボットを例にしているが、馬や牛、自動車や飛行機や、番犬などにも人の言葉での命令を理解できるようにして作業を自立的に実行できるようにしても良い。このようにして実現するロボットと人や動物との違いは、人や動物は作業中に自分自身に異常が生じた場合には、自己の安全を確保するために行動するようになるが、ロボットの場合は、ロボットが故障しても修理できるので、自己保護の優先順番を低く設定することでプログラムで、命令の実行を、あるいは周囲に対する安全確保を最優先にして、行動計画を実行させることができるようになる。
以上のように、本発明によれば、アズビルト3D−CADデータをリアルタイムで自動生成可能とし、また、CADデータの探索機能と組み合わせて、ロボット等の各種自動機械の視覚誘導制御装置として、また、ナビゲーションシステム、移動検査装置、監視サービスシステムなどとして適用可能な視覚情報処理装置及びその応用システムを得ることができる。
本発明の視覚情報処理装置における基本構成を示すブロック図である。 本発明の視覚情報処理装置における別の基本構成を示すブロック図である。 本発明を実現する画像情報処理装置の処理の基本的な流れを示すフローチャートである。 図3に示した処理(1)の内容を例示する図面である。 図3に示した処理(2)の内容を例示する図面である。 図3に示した処理(3)の内容を例示する図面である。 図3に示した処理(4)の内容を例示する図面である。 図3に示した処理(5)の内容を例示する図面である。 CADデータとして生成される浮遊線分の活用の概念を示す図である。 円筒や球体のCADデータとして生成される浮遊線分の活用の概念を示す図である。 特殊曲面のCADデータとしての定義の一例を示す図である。 本発明のCADデータを更新する場合の実施の形態を示す概念図である。 本発明の第2の手段の実施の形態を示す概念図である。 本発明の色情報を用いて輪郭を抽出する概念図である。 本発明の第10の手段の実施の形態を示すブロック図である。 本発明の第10の手段の他の実施の形態を示すブロック図である。 本発明の第10の手段の更に他の実施の形態を示すブロック図である。 本発明の第10の手段の更に他の実施の形態を示すブロック図である。 本発明の第10の手段〜第11の手段をロボット制御専用の視覚情報処理装置として実施する場合の視覚情報処理装置の処理の実施の形態を示すフローチャートである。 本発明の第11の手段の実施の形態を説明する概念図である。 本発明の第11の手段の実施の形態を説明する概念図である。 本発明の第11の手段の実施の形態を説明する概念図である。 本発明の第11の手段の実施の形態を説明する概念図である。 本発明の第11の手段の実施の形態を説明する概念図である。 本発明の第11の手段の実施の形態を説明する概念図である。 本発明の第12の手段の実施の形態を説明する概念図である。 本発明の第11の手段の実施の形態を説明する概念図である。 本発明の第11の手段の実施の形態である視覚情報処理装置のブロック図である。 本発明の第11の手段の実施の形態を説明する概念図である。 本発明の第11の手段の他の実施の形態を説明する概念図である。 本発明の第1の手段〜第3の手段および第10の手段、第11の手段の実施の形態である視覚情報処理装置のブロック図である。 図31に示した実施の形態における視覚誘導チップが実行するメイン処理のフローチャートである。 図31に示した実施の形態における視覚誘導チップが実行するメイン処理のフローチャートである。 図33に示した処理(2)における3D座標計算,CADデータ生成処理の詳細なフローチャートである。 図34に示した処理(4)と処理(9)の3D−CAD生成処理における追加生成処理の詳細なフローチャートである。 図34に示した処理(4)と処理(9)の3D−CAD生成処理における点データ更新処理の詳細なフローチャートである。 図34に示した処理(4)と処理(9)の3D−CAD生成処理における線分データの更新および追加処理の詳細なフローチャートである。 図34に示した処理(4)と処理(9)の3D−CAD生成処理における面データの更新および追加処理の詳細なフローチャートである。 図35〜図38に示した3D−CADデータ生成処理におけるデータ更新の概念図である。 図35〜図38に示した3D−CADデータ生成処理における新規なデータの生成と更新の概念を一般的な図形の生成と更新の概念に当てはめて描いた図である。 2台のカメラによるステレオ計測による基本的な実施例の概念を示す図面である。 特徴点の対応点が存在する線分を求める方法を説明する図面である。 ステレオ計測の処理の方法の一例を示す図面である。 ステレオ計測の処理の方法の一例で、P4周辺を拡大した図面である。 撮影距離と分解能に関わる誤差P4(r1)と輪郭線ゆえの誤差半径P4(r2)の概念を示す図面である。 撮影距離と撮像装置の分解能、撮像装置の撮影関係(間隔)に関わる誤差球P4(r2)の概念を示す図面である。 視点O1,O2の2台の撮像装置からステレオカメラで最初に生成されるポイントP4の誤差形状P4(δ)を示している。 移動した視点O1,O2の2台の撮像装置からステレオカメラで最初に生成されるポイントP4の誤差形状P4(δ)を示している。 誤差半径δRの球がPC点からP4を結ぶ方向にP4を中心にδLの長さの間にあるように近似して誤差を表現する概念を示す図面である。 O1座標系におけるO2座標系の位置と姿勢を決定するトラッキングの手法について説明する図面である。 単眼カメラシステムの場合で最初に3点の既知のポイントが必要にとなる場合の手法の一例を説明する図面である。 ステレオ計測の場合で2次元画像上で色情報、その他のルールを使って対応する特徴点候補を絞り込む方法について説明する図面である。 2次元画像上で色境界線分の色情報などを用いてトラッキングを行う場合の対応点候補の絞込みの方法の一例を説明する図面である。 2次元画像上で色境界線分の色情報などを用いてトラッキングを行う場合の対応点候補の絞込みの方法の一例を説明する図面である。 ある画像の色境界線分を抽出した結果得られた線分の一部分を示している。 色の面の抽出方法の例をいくつか説明する図面である。 同じ模様が一つの画像イメージの中に複数存在する場合の対応面、対応線分、対応点の絞込みの方法の一例を説明する図面である。 撮像装置から入力された画像情報を2次元のCADデータに変換したイメージを示す図面である。 マッチング方法の概念を説明する図面である。 マッチング方法の概念を説明する図面である。 マッチング方法の概念を説明する図面である。 マッチング方法の概念を説明する図面である。 マッチング方法における判別ロジックの例を説明する図面である。 マッチング処理を3次元に拡張した場合の例を示す図面である。 実際に対応する特徴点のデータが存在しない場合の絞り込みの例を説明する図面である。 ベクトルマッチング手法を探索機能に用いる場合の例を示す図面である。 トラッキングによる座標変換時の誤差の考え方について説明する図面である。 本発明の第7の手段の基本的な一例を示す図面である。 本発明の第7の手段の基本的な一例を示すものであり、変曲点から色境界線分の作成方法の一例を示す図面である。 図68の手法を適用して特徴点と線分を抽出した場合と他の手法の場合を比較して説明する図面である。 本発明の第8の手段の基本的な一例を示す図面である。 本発明の第9の手段の基本的な一例を示す図面である。 本発明の視覚情報処理装置の基本的なアプリケーションの構成と視覚情報処理装置に対する基本コマンドと拡張コマンドを示す図面である。 図73における視覚誘導チップの機能ブロック図である。 図73における視覚誘導チップの機能ブロック図である。 図73における視覚誘導チップの機能ブロック図である。 図73における視覚誘導チップの機能ブロック図である。 図73における視覚誘導チップの機能ブロック図である。 図73における視覚誘導チップの機能ブロック図である。 図73における視覚誘導チップの機能ブロック図である。 図73における視覚誘導チップの機能ブロック図である。 図73における視覚誘導チップの機能ブロック図である。 図73における視覚誘導チップの機能ブロック図である。 図73における視覚誘導チップの機能ブロック図である。 図73における視覚誘導チップの機能ブロック図である。 図73における視覚誘導チップの機能ブロック図である。 図73における視覚誘導チップの機能ブロック図である。 図73における視覚誘導チップの機能ブロック図である。 図73における視覚誘導チップの機能ブロック図である。 図73における視覚誘導チップの機能ブロック図である。 図73における視覚誘導チップの機能ブロック図である。 図73における視覚誘導チップの動作タイミングチャートである。 図73における視覚誘導チップの動作タイミングチャートである。 図73における視覚誘導チップの動作タイミングチャートである。 図73における視覚誘導チップの動作タイミングチャートである。 図73における視覚誘導チップの動作タイミングチャートである。 図73における視覚誘導チップの動作タイミングチャートである。 図73における視覚誘導チップの動作タイミングチャートである。 図73における視覚誘導チップの動作タイミングチャートである。 図73における視覚誘導チップの機能ブロック図における基本的な処理フローチャートである。 図73における視覚誘導チップの機能ブロック図における基本的な処理フローチャートである。 図73における視覚誘導チップの機能ブロック図における基本的な処理フローチャートである。 図73における視覚誘導チップの機能ブロック図における基本的な処理フローチャートである。 図73における視覚誘導チップの機能ブロック図における基本的な処理フローチャートである。 図73における視覚誘導チップの機能ブロック図における基本的な処理フローチャートである。 図73における視覚誘導チップの機能ブロック図における基本的な処理フローチャートである。 図73における視覚誘導チップの機能ブロック図における基本的な処理フローチャートである。 図73における視覚誘導チップの機能ブロック図における基本的な処理フローチャートである。 図73における視覚誘導チップの機能ブロック図における基本的な処理フローチャートである。 図73における視覚誘導チップの機能ブロック図における基本的な処理フローチャートである。 図73における視覚誘導チップの機能ブロック図における基本的な処理フローチャートである。 CADデータの結合関係をデータで記述する場合の一例を示す図面である。 可動のある撮影対象の例として携帯電話機のようなものの例を示した図面である。 図113の代表的な形状を示す図面である。 移動している2つの物体の概念を示す図面である。 本発明の第16および第17の手段の基本的な例で、原子力発電プラントを例にした場合の各種検査装置に適用した場合の数例を示す図面である。 クローラ式VT検査装置を例にして、プール底面溶接線周辺部の自動生成されたアズビルトの3次元CADデータの概念を示す図面である。 クローラ式VT検査装置の一例を示すシステム構成ブロック図である。 プールと溶接線をあらかじめCADデータとして登録しておいたCADデータと画像処理で生成したアズビルトの溶接線のCADデータを重ねて表示したときのイメージを示す図面である。 主制御ルーチンへ指示を入力する移動軌跡データファイルの一例を示す図面である。 ワールド座標系とROV本体のロボット座標系の関係を示す図面である。 ROVなどのロボットの制御ロジックを登録しておくファイルの例を示す図面である。 ワールド座標系とROV座標系の概念とプールなどの基本環境をあらかじめ登録しておくCADデータの概念を示す図面である。 基本環境データやROV自体の形状データの定義ファイルの一例を示す図面である。 主制御ルーチンの基本的な処理のフローチャートである。 主制御ルーチンの基本的な処理のフローチャートである。 画像処理ルーチンの基本的な処理のフローチャートである。 画像処理ルーチンの基本的な処理のフローチャートである。 本発明の第21〜第24の手段の基本的な一例を示す監視サービス提供システムの概念図である。 図129の(a)の総合監視センターの具体的なハード構成の基本的な例を示すブロック図である。 PC端末で操作させる監視サービスの基本的なプログラムを例示するフローチャートである。 PC端末で操作させる監視サービスの基本的なプログラムを例示するフローチャートである。 PC端末で操作させる監視サービスの基本的なプログラムを例示するフローチャートである。 PC端末で操作させる監視サービスの基本的なプログラムを例示するフローチャートである。 監視サービスに適した端末の一例を説明する図面である。 図135の端末の機能ブロック図である。 本発明の第18の手段の基本的な一例である人間型ロボットを示す機能ブロック図である。 図137に示した人間型ロボットの主要回路部が実行する処理のフローチャートである。 図137に示した人間型ロボットの主要回路部が実行する処理のフローチャートである。 図137に示した人間型ロボットの主要回路部が実行する処理のフローチャートである。 図137に示した人間型ロボットの主要回路部が実行する処理のフローチャートである。 図137に示した人間型ロボットの主要回路部が実行する処理のフローチャートである。 図137に示した人間型ロボットの主要回路部が実行する処理のフローチャートである。 図137に示した人間型ロボットの主要回路部が実行する処理のフローチャートである。 図137に示した人間型ロボットの主要回路部が実行する処理のフローチャートである。 図137に示した人間型ロボットの主要回路部が実行する処理のフローチャートである。 図137に示した人間型ロボットの主要回路部が実行する処理のフローチャートである。 図137に示した人間型ロボットの主要回路部が実行する処理のフローチャートである。
符号の説明
10、10a、10b…撮像装置、O1、O2…撮像装置の視点、30…加速度センサ、40…ジャイロセンサ、100…視覚情報処理装置(処理装置)、200…記憶装置、300…別のCPU等、400…ドライバ、401…アクチュエータ、21r…原子炉、21A…水中ROV、21B…クローラ走行式VT装置、21a…アーム機構、21C…吊下式カメラ、21e…レーザなどのマーカ線、23e…主制御ルーチン、23g…画像処理ルーチン、Ow…ワールド座標系、Or…ロボット座標系、34b…監視サービスシステムの端末、901…環境内の物体(撮影対象)、909…撮影対象としての溶接線、34c…監視サービスを受ける申込者の携帯電話、34d…不審者、35b…小型CCD、35m…小型指向性マイク、36a…センサデータ制御回路、36b…センサ信号処理LSI、36c…マイコン、36d…画像データ記録装置、36e…無線通信装置、37y…制御予測シミュレーション部。

Claims (25)

  1. 移動可能な撮像装置で物体を撮影して得た画像情報を入力して前記物体のCADデータを生成する画像情報処理装置と、生成したCADデータを記憶する記憶装置を備えた視覚情報処理装置において、
    前記画像情報処理装置は、生成した新生CADデータが既に生成されている既成CADデータの更新対象となるかどうかを判別する更新対象判別処理機能と、更新対象となる既成CADデータと新生CADデータの精度を比較するCADデータ精度比較処理機能と、新生CADデータの精度が更新対象となる既成CADデータの精度よりも高いときには該既成CADデータを新生CADデータで更新するCADデータ更新処理機能を備え、
    新生CADデータを生成する機能は、同時刻に取り込んだ複数の撮像装置の画像情報内の特徴点の対応付けを画像情報の特徴部位から行いステレオ計測して、ステレオ計測された点の中で安定な少なくとも3点をトラッキング追従させることにより撮像装置の移動による画像情報内の対応点を関係付けするようにして3次元の座標データを求める方法を実行することによって実現することを特徴とする視覚情報処理装置。
  2. 移動可能な撮像装置で物体を撮影して得た画像情報を入力して前記物体のCADデータを生成する画像情報処理装置と、生成したCADデータを記憶する記憶装置を備えた視覚情報処理装置において、
    前記画像情報処理装置は、CADデータの輪郭線と実際の線を区別するようにし、CADデータを生成する機能は、同時刻に取り込んだ複数の撮像装置の画像情報内の特徴点の対応付けを画像情報の特徴部位から行いステレオ計測して、ステレオ計測された点の中で安定な少なくとも3点をトラッキング追従させることにより撮像装置の移動による画像情報内の対応点を関係付けするようにして3次元の座標データを求める方法を実行することによって実現することを特徴とする視覚情報処理装置。
  3. 移動可能な撮像装置で物体を撮影して得た画像情報を入力して前記物体のCADデータを生成する画像情報処理装置と、生成したCADデータを記憶する記憶装置を備えた視覚情報処理装置において、
    前記画像情報処理装置は、CADデータに該CADデータを生成した時間に関する情報をもたせるように構成し、CADデータを生成する機能は、同時刻に取り込んだ複数の撮像装置の画像情報内の特徴点の対応付けを画像情報の特徴部位から行いステレオ計測して、ステレオ計測された点の中で安定な少なくとも3点をトラッキング追従させることにより撮像装置の移動による画像情報内の対応点を関係付けするようにして3次元の座標データを求める方法を実行することによって実現することを特徴とする視覚情報処理装置。
  4. 移動する物体により画像情報内の特徴点位置が変化する、あるいは撮像装置が移動するために画像情報内の特徴点位置が変化する、あるいは複数の撮像装置で撮影することにより各撮像装置から得られる画像情報内での特徴点の位置が変化する特徴点の対応付けを行う対応点の探索は、撮像装置から得られる画像情報を特徴点を結ぶ色境界線分から構成される2次元のCADデータに変換して、色境界線分が区分する少なくとも背景領域を除く領域内の特徴部位の類似度を比較して高いものを対応点候補として絞り込むようにしたことを特徴とする視覚情報処理装置。
  5. 請求項4において、比較する特徴部位の類似度は、対応点候補から引いた他の特徴点までのベクトルの類似度、あるいはベクトルの類似度とベクトル先端の特徴点の有する色情報の類似度を用い類似度が高いものを対応点として絞り込む方法と組み合わせるようにしたことを特徴とする視覚情報処理装置。
  6. 請求項4または5において、色境界線分の抽出は、輝度信号などの画像情報の変曲点の繋がりを色境界線分として行うようにしたことを特徴とする視覚画像処理装置。
  7. 移動可能な撮像装置で物体を撮影して得た画像情報を入力して前記物体のCADデータを生成する画像情報処理装置と、生成したCADデータを記憶する記憶装置を備えた視覚情報処理装置において、
    前記画像情報処理装置は、生成した新生CADデータが既に生成されている既成CADデータの更新対象となるかどうかを判別する更新対象判別処理機能と、更新対象となる既成CADデータと新生CADデータの精度を比較するCADデータ精度比較処理機能と、新生CADデータの精度が更新対象となる既成CADデータの精度よりも高いときには該既成CADデータを新生CADデータで更新するCADデータ更新処理機能を備え、
    撮像装置から得られる画像情報を直接にあるいは間接的に取り込んで該画像情報内の特徴点を抽出する方法は、特徴点として線分の特徴点と、閉ループ図形の特徴点の両方を特徴点として抽出するようにしたことを特徴とする視覚情報処理装置。
  8. 移動可能な撮像装置で物体を撮影して得た画像情報を入力して前記物体のCADデータを生成する画像情報処理装置と、生成したCADデータを記憶する記憶装置を備えた視覚情報処理装置において、
    前記画像情報処理装置は、生成した新生CADデータが既に生成されている既成CADデータの更新対象となるかどうかを判別する更新対象判別処理機能と、更新対象となる既成CADデータと新生CADデータの精度を比較するCADデータ精度比較処理機能と、新生CADデータの精度が更新対象となる既成CADデータの精度よりも高いときには該既成CADデータを新生CADデータで更新するCADデータ更新処理機能を備え、
    CADデータに対応付けて撮像装置のカメラの撮影位置と画像情報(テクスチャ情報)を記録するようにしたことを特徴とする視覚情報処理装置。
  9. 移動可能な撮像装置で物体を撮影して得た画像情報を入力して前記物体のCADデータを生成する画像情報処理装置と、生成したCADデータを記憶する記憶装置を備えた視覚情報処理装置において、
    前記画像情報処理装置は、生成した新生CADデータが既に生成されている既成CADデータの更新対象となるかどうかを判別する更新対象判別処理機能と、更新対象となる既成CADデータと新生CADデータの精度を比較するCADデータ精度比較処理機能と、新生CADデータの精度が更新対象となる既成CADデータの精度よりも高いときには該既成CADデータを新生CADデータで更新するCADデータ更新処理機能を備え、
    移動する撮像装置の位置または姿勢あるいはその両方を求める機能と、求めた位置情報または姿勢情報あるいはその両方を出力する機能を有することを特徴とする視覚情報処理装置。
  10. 請求項1〜9の1項において、前記画像情報処理装置は、CADデータの探索指令信号を入力とし、その指令信号に基づきCADデータを探索する探索機能と、探索したCADデータの情報を出力する機能を有することを特徴とする視覚情報処理装置。
  11. 請求項10において、3次元CADデータを生成する範囲を指定する指令情報の入力インターフェースを有することを特徴とする視覚情報処理装置。
  12. 請求項10または11において、CADデータの探索指令情報に2次元の探索指令を有することを特徴とする視覚情報処理装置。
  13. 請求項10〜12の1項において、探索機能は、探索する2次元あるいは3次元のCADデータの対応点候補から引いた他の特徴点までのベクトルの類似度、あるいはベクトルの類似度とベクトル先端の特徴点の有する色情報の類似度を用い類似度が高いものを対応点として絞り込む方法と組み合わせて実現するようにしたことを特徴とする視覚情報処理装置。
  14. 請求項10〜13の1項において、あらかじめ少なくとも3次元CADデータの部品形状と各部品との結合条件をデータベースとして設けておき、探索時に当該データベースの情報より部品の結合条件の所定の規則に従って部品の結合条件を変えて探索CADデータを生成して探索することを特徴とする視覚情報処理装置。
  15. 請求項10〜14の1項において、探索した物体に対する判断機能とその判断機能を使用するための指令情報を入力するインターフェースと判断結果の情報を出力するインターフェースを有することを特徴とする視覚情報処理装置。
  16. 移動検査装置において、
    移動環境の3次元データをあらかじめ有する、あるいは移動しながら移動環境の3次元データを生成する手段と、移動する検査装置の位置または姿勢あるいはその両方を求める機能手段と、3次元CADデータの中の撮像装置の位置情報より特定する検査対象部位に相当する3次元CADデータの部位と対応付けして検査結果のデータを記録する機能手段を備えたことを特徴とする移動検査装置。
  17. 請求項16において、あらかじめ移動検査装置の計画移動経路を設定する機能と、あらかじめ設定した計画移動経路と実際の移動経路の誤差を3次元CADデータの中での撮像装置の位置情報より求める機能とその誤差を小さくするように移動検査装置の移動制御をおこなうためのルールを設定する機能とその移動制御のルールに基づき移動検査装置の移動制御を実行する制御部を設けたことを特徴とする移動検査装置。
  18. 撮像装置の画像情報を入力とし入力画像を処理して移動空間に存在する物体のCADデータを生成する視覚情報処理装置を備え、ロボットの動作する環境の3次元CADデータを生成してCADデータの中のロボットの現在位置を特定する手段と、ロボットからの各種センサ信号よりロボットの現在の姿勢、動作状態を特定する手段と、前記ロボットの動作する環境の3次元CADデータと前記CADデータの中のロボットの現在位置と前記ロボットの現在の姿勢、動作状態をロボットのシミュレーションモデルへ反映する手段と、ロボットの動作をシミュレーションする手段と、そのシミュレーション手段に移動計画に基づくロボットの動作指令信号を入力する手段と、シミュレーション結果が所定の評価レベルになったか否かを判断する手段と、シミュレーション結果が所定の評価レベルに至らなかった場合にシミュレーション結果に基づきロボットへの動作指令信号を修正する手段とを設けて、所定の条件において最も評価レベルが良好なロボットへの動作指令信号をロボットへ出力するようにしたことを特徴とするロボットの制御装置。
  19. 請求項18に記載した制御装置を備えたことを特徴とするロボット。
  20. 請求項1〜17の1項に記載した視覚情報処理装置を備えたことを特徴とするマニピュレータ,移動ロボット,文字読み取り装置,物体認識装置,計測装置,CADデータ生成装置,ナビゲーション装置,検査装置,ピッキング装置,自律制御型ロボット,監視装置,自動車,船,飛行機などのシステム。
  21. 1つまたは複数の端末から送られてくる情報を情報処理センタで統括監視する監視サービス提供システムにおいて、
    ユーザからのリクエストにより監視対象ユーザを探索し、監視中は監視対象ユーザを追跡し、視対象監ユーザおよびその周辺を連続して監視するようにしたことを特徴とする監視サービス提供システム。
  22. 1台あるいは複数の端末から送られてくる情報をセンタで統括監視する監視サービス提供システムにおいて、
    各端末には所定の期間の所定の情報を時刻と対応つけて記録しておく機能を設け、ユーザーからのリクエストにより所定の端末の所定の時刻の記録データを取り出せるようにしたことを特徴とする監視サービス提供スシステム。
  23. 前記請求項21または22において、監視中はユーザ周辺の人に監視サービス中であることを知らせる状態表現手段を設けることを特徴とした監視サービス提供システム。
  24. 前記請求項21〜23の1項において、監視中にユーザへ知らせる状況が発生した場合にはユーザあるいはユーザとその周辺の人にその情報を提供する手段を設けたことを特徴とする監視サービス提供システム。
  25. センサ情報を取得するための端末装置において、あらかじめ複数箇所にセンサの設置ポートを設けておき、端末を組み立てるときに1セットあるいは複数セットのセンサを所定の個所の設置ポートに接続できる構成とすることを特徴としたセンサ情報を取得するための端末装置。
JP2004181135A 2004-06-18 2004-06-18 視覚情報処理装置および適用システム Pending JP2006003263A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004181135A JP2006003263A (ja) 2004-06-18 2004-06-18 視覚情報処理装置および適用システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004181135A JP2006003263A (ja) 2004-06-18 2004-06-18 視覚情報処理装置および適用システム

Publications (1)

Publication Number Publication Date
JP2006003263A true JP2006003263A (ja) 2006-01-05

Family

ID=35771768

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004181135A Pending JP2006003263A (ja) 2004-06-18 2004-06-18 視覚情報処理装置および適用システム

Country Status (1)

Country Link
JP (1) JP2006003263A (ja)

Cited By (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007190641A (ja) * 2006-01-19 2007-08-02 Advanced Telecommunication Research Institute International コミュニケーションロボット
JP2007212430A (ja) * 2006-08-07 2007-08-23 Kurabo Ind Ltd 写真測量装置及び写真測量システム
JP2007327938A (ja) * 2006-05-10 2007-12-20 Topcon Corp 画像処理装置及びその処理方法
JP2008004078A (ja) * 2006-06-20 2008-01-10 Samsung Electronics Co Ltd 移動ロボットの格子マップ作成方法及び装置及び媒体とこれを利用した領域分離方法及び装置及び媒体
JP2008089314A (ja) * 2006-09-29 2008-04-17 Topcon Corp 位置測定装置及びその方法
JP2008160381A (ja) * 2006-12-22 2008-07-10 Fujifilm Corp ファイル生成方法および装置並びに立体画像の表示制御方法および装置
JP2008241491A (ja) * 2007-03-28 2008-10-09 Hitachi Ltd 3次元計測装置
JPWO2007138987A1 (ja) * 2006-05-25 2009-10-08 豪洋 石崎 作業ロボット
JP2009270915A (ja) * 2008-05-07 2009-11-19 Kagawa Univ 3次元形状の計測方法および装置
JP2010069542A (ja) * 2008-09-16 2010-04-02 Ihi Corp バラ積みピッキング装置におけるワークピッキング方法
JP2011008737A (ja) * 2009-06-29 2011-01-13 Fujitsu Ltd プリント基板パターン設計用データ生成装置およびプリント基板パターン設計用データ生成プログラム
JP2012064046A (ja) * 2010-09-16 2012-03-29 Toshiba Corp 車両検出装置
JP2012185752A (ja) * 2011-03-07 2012-09-27 Seiko Epson Corp ロボット装置、位置姿勢検出装置、位置姿勢検出プログラム、および位置姿勢検出方法
KR101297255B1 (ko) * 2011-09-07 2013-08-19 엘지전자 주식회사 이동 로봇, 및 이동 로봇의 원격 제어 시스템 및 방법
KR20140057155A (ko) * 2012-11-02 2014-05-12 쥬키 가부시키가이샤 전자 부품 실장 장치 및 실장 부품 검사 방법
JP2014124735A (ja) * 2012-12-27 2014-07-07 Seiko Epson Corp ロボット制御方法、ロボット制御装置、プログラム、及びロボット
JP2014516816A (ja) * 2011-06-13 2014-07-17 マイクロソフト コーポレーション モバイルロボットによる移動対象物のトラッキング及びフォローイング
JP2014228879A (ja) * 2013-05-17 2014-12-08 国立大学法人 東京大学 3次元情報取得方法及び3次元情報取得装置
JP2015521419A (ja) * 2012-05-09 2015-07-27 エヌカム テクノロジーズ リミテッドNcam Technologies Limited コンピュータ生成された3次元オブジェクトとフィルムカメラからの映像フィードとをリアルタイムに混合または合成するシステム
JP2015165420A (ja) * 2013-05-31 2015-09-17 パナソニックIpマネジメント株式会社 モデリング装置、3次元モデル生成装置、モデリング方法、プログラム、レイアウトシミュレータ
JP2016006451A (ja) * 2014-06-20 2016-01-14 セイコーエプソン株式会社 マイクロレンズアレイ基板、電気光学装置、および電子機器
JP2016042217A (ja) * 2014-08-13 2016-03-31 株式会社ニコン 電子装置
JP2016078184A (ja) * 2014-10-17 2016-05-16 ファナック株式会社 ロボットの干渉領域設定装置
JP2016158186A (ja) * 2015-02-26 2016-09-01 カシオ計算機株式会社 撮像装置、撮像方法、撮像プログラム
US9582000B2 (en) 2011-09-07 2017-02-28 Lg Electronics Inc. Robot cleaner, and system and method for remotely controlling the same
JP2018041437A (ja) * 2016-07-13 2018-03-15 ザ・ボーイング・カンパニーThe Boeing Company 航空機構築プロセスの改善されたステレオ投影ビデオを生成するためのシステムおよび方法
CN109543252A (zh) * 2018-11-05 2019-03-29 中国航空工业集团公司西安飞机设计研究所 一种基于鸟撞的系统安全性评估方法
KR20190041033A (ko) * 2011-06-01 2019-04-19 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 서비스의 2차 위치에서의 작업의 재생 기법
JP2019193974A (ja) * 2019-06-11 2019-11-07 ファナック株式会社 ロボットシステムおよびロボット制御方法
US10585766B2 (en) 2011-06-06 2020-03-10 Microsoft Technology Licensing, Llc Automatic configuration of a recovery service
KR20200064947A (ko) * 2018-11-29 2020-06-08 (주)코어센스 광학식 위치 트래킹 시스템 기반의 위치 추적 장치 및 그 방법
JP2020520308A (ja) * 2017-04-21 2020-07-09 深▲せん▼前海達闥雲端智能科技有限公司Cloudminds (Shenzhen) Robotics Systems Co., Ltd. ロボット制御方法、ロボット装置及びロボット機器
WO2020179178A1 (ja) * 2019-03-01 2020-09-10 株式会社川口金属加工 異形形鋼の直角断面形状の測定方法
JP2020185631A (ja) * 2019-05-13 2020-11-19 日立Geニュークリア・エナジー株式会社 シミュレーション装置、および、シミュレーションプログラム
WO2021044473A1 (ja) * 2019-09-02 2021-03-11 ヤマハ発動機株式会社 多関節ロボットアーム制御装置及び多関節ロボットアーム装置
JP2021177135A (ja) * 2020-05-07 2021-11-11 株式会社トヨタマップマスター 情報処理装置、情報処理方法及び情報処理プログラム
JP2021177136A (ja) * 2020-05-07 2021-11-11 株式会社トヨタマップマスター 情報処理装置、情報処理方法及び情報処理プログラム
WO2021261242A1 (ja) * 2020-06-23 2021-12-30 株式会社Preferred Networks 情報処理装置
WO2022024464A1 (ja) * 2020-07-29 2022-02-03 富士通株式会社 検査プログラム、情報処理装置及び検査方法
CN114378825A (zh) * 2022-01-21 2022-04-22 四川长虹智能制造技术有限公司 一种多相机视觉定位方法、系统及电子设备
CN114394418A (zh) * 2021-12-30 2022-04-26 无锡中车时代智能装备有限公司 制造转子铜排的智能控制方法及设备
CN114593697A (zh) * 2020-12-03 2022-06-07 汉达精密电子(昆山)有限公司 一种检测产品缝隙和平面度的装置
JPWO2022130476A1 (ja) * 2020-12-15 2022-06-23
CN114734444A (zh) * 2022-04-27 2022-07-12 博众精工科技股份有限公司 一种目标定位方法、装置、电子设备及存储介质
JPWO2022201314A1 (ja) * 2021-03-23 2022-09-29
CN115439625A (zh) * 2022-11-08 2022-12-06 成都云中楼阁科技有限公司 建筑草图辅助绘制方法、装置、存储介质及绘制设备
US20230045897A1 (en) * 2021-08-03 2023-02-16 Subaru Corporation Object recognition apparatus and non-transitory recording medium
CN116297531A (zh) * 2023-05-22 2023-06-23 中科慧远视觉技术(北京)有限公司 机器视觉检测方法、系统、介质及设备
CN116451479A (zh) * 2023-04-19 2023-07-18 中策橡胶集团股份有限公司 一种快速生成轮胎二维几何模型网格的方法、应用和计算机程序产品
JP2023120995A (ja) * 2022-02-18 2023-08-30 大和ハウス工業株式会社 設計支援システム及び設計支援プログラム
WO2024057870A1 (ja) * 2022-09-12 2024-03-21 パナソニックIpマネジメント株式会社 移動ロボット、サーバ、移動ロボット制御システム及び移動ロボット制御方法
US20240227195A9 (en) * 2022-10-19 2024-07-11 Toyota Jidosha Kabushiki Kaisha Robot operation system, robot operation method, and program
US12211266B2 (en) 2020-08-18 2025-01-28 Samsung Electronics Co., Ltd. Method for obtaining position information using image and electronic device supporting the same
CN119526432A (zh) * 2025-01-23 2025-02-28 深圳市欣茂鑫实业有限公司 一种用于机械爪的治具抓取系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05324836A (ja) * 1992-05-19 1993-12-10 Fujitsu Ltd パターンマッチング方法
JP2000113193A (ja) * 1998-10-08 2000-04-21 Minolta Co Ltd 多視点3次元データの合成方法および記録媒体
JP2000341721A (ja) * 1999-03-25 2000-12-08 Mr System Kenkyusho:Kk 奥行き画像計測装置、視差画像計測装置、複合現実感提示システム、奥行き画像計測方法、複合現実感提示方法、およびプログラムの記憶媒体
JP2001143104A (ja) * 1999-11-18 2001-05-25 Asia Air Survey Co Ltd 建物の3次元データ更新方法
JP2002331835A (ja) * 2001-05-09 2002-11-19 Honda Motor Co Ltd 直射光防眩装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05324836A (ja) * 1992-05-19 1993-12-10 Fujitsu Ltd パターンマッチング方法
JP2000113193A (ja) * 1998-10-08 2000-04-21 Minolta Co Ltd 多視点3次元データの合成方法および記録媒体
JP2000341721A (ja) * 1999-03-25 2000-12-08 Mr System Kenkyusho:Kk 奥行き画像計測装置、視差画像計測装置、複合現実感提示システム、奥行き画像計測方法、複合現実感提示方法、およびプログラムの記憶媒体
JP2001143104A (ja) * 1999-11-18 2001-05-25 Asia Air Survey Co Ltd 建物の3次元データ更新方法
JP2002331835A (ja) * 2001-05-09 2002-11-19 Honda Motor Co Ltd 直射光防眩装置

Cited By (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007190641A (ja) * 2006-01-19 2007-08-02 Advanced Telecommunication Research Institute International コミュニケーションロボット
JP2007327938A (ja) * 2006-05-10 2007-12-20 Topcon Corp 画像処理装置及びその処理方法
US8930025B2 (en) 2006-05-25 2015-01-06 Takehiro Ishizaki Work robot
JPWO2007138987A1 (ja) * 2006-05-25 2009-10-08 豪洋 石崎 作業ロボット
US8060254B2 (en) 2006-06-20 2011-11-15 Samsung Electronics Co., Ltd. Method, apparatus, and medium for building grid map in mobile robot and method, apparatus, and medium for cell decomposition that uses grid map
JP2008004078A (ja) * 2006-06-20 2008-01-10 Samsung Electronics Co Ltd 移動ロボットの格子マップ作成方法及び装置及び媒体とこれを利用した領域分離方法及び装置及び媒体
JP2007212430A (ja) * 2006-08-07 2007-08-23 Kurabo Ind Ltd 写真測量装置及び写真測量システム
JP2008089314A (ja) * 2006-09-29 2008-04-17 Topcon Corp 位置測定装置及びその方法
JP2008160381A (ja) * 2006-12-22 2008-07-10 Fujifilm Corp ファイル生成方法および装置並びに立体画像の表示制御方法および装置
JP2008241491A (ja) * 2007-03-28 2008-10-09 Hitachi Ltd 3次元計測装置
JP2009270915A (ja) * 2008-05-07 2009-11-19 Kagawa Univ 3次元形状の計測方法および装置
JP2010069542A (ja) * 2008-09-16 2010-04-02 Ihi Corp バラ積みピッキング装置におけるワークピッキング方法
JP2011008737A (ja) * 2009-06-29 2011-01-13 Fujitsu Ltd プリント基板パターン設計用データ生成装置およびプリント基板パターン設計用データ生成プログラム
JP2012064046A (ja) * 2010-09-16 2012-03-29 Toshiba Corp 車両検出装置
JP2012185752A (ja) * 2011-03-07 2012-09-27 Seiko Epson Corp ロボット装置、位置姿勢検出装置、位置姿勢検出プログラム、および位置姿勢検出方法
KR102047216B1 (ko) 2011-06-01 2019-11-20 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 서비스의 2차 위치에서의 작업의 재생 기법
KR20190041033A (ko) * 2011-06-01 2019-04-19 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 서비스의 2차 위치에서의 작업의 재생 기법
US10585766B2 (en) 2011-06-06 2020-03-10 Microsoft Technology Licensing, Llc Automatic configuration of a recovery service
US11176008B2 (en) 2011-06-06 2021-11-16 Microsoft Technology Licensing, Llc Automatic configuration of a recovery service
JP2014516816A (ja) * 2011-06-13 2014-07-17 マイクロソフト コーポレーション モバイルロボットによる移動対象物のトラッキング及びフォローイング
KR101297255B1 (ko) * 2011-09-07 2013-08-19 엘지전자 주식회사 이동 로봇, 및 이동 로봇의 원격 제어 시스템 및 방법
US9582000B2 (en) 2011-09-07 2017-02-28 Lg Electronics Inc. Robot cleaner, and system and method for remotely controlling the same
US12217375B2 (en) 2012-05-09 2025-02-04 Ncam Technologies Limited System for mixing or compositing in real-time, computer generated 3D objects and a video feed from a film camera
JP2015521419A (ja) * 2012-05-09 2015-07-27 エヌカム テクノロジーズ リミテッドNcam Technologies Limited コンピュータ生成された3次元オブジェクトとフィルムカメラからの映像フィードとをリアルタイムに混合または合成するシステム
US11182960B2 (en) 2012-05-09 2021-11-23 Ncam Technologies Limited System for mixing or compositing in real-time, computer generated 3D objects and a video feed from a film camera
US11721076B2 (en) 2012-05-09 2023-08-08 Ncam Technologies Limited System for mixing or compositing in real-time, computer generated 3D objects and a video feed from a film camera
US9600936B2 (en) 2012-05-09 2017-03-21 Ncam Technologies Limited System for mixing or compositing in real-time, computer generated 3D objects and a video feed from a film camera
KR102114718B1 (ko) 2012-11-02 2020-05-25 쥬키 가부시키가이샤 전자 부품 실장 장치 및 실장 부품 검사 방법
KR20140057155A (ko) * 2012-11-02 2014-05-12 쥬키 가부시키가이샤 전자 부품 실장 장치 및 실장 부품 검사 방법
JP2014124735A (ja) * 2012-12-27 2014-07-07 Seiko Epson Corp ロボット制御方法、ロボット制御装置、プログラム、及びロボット
JP2014228879A (ja) * 2013-05-17 2014-12-08 国立大学法人 東京大学 3次元情報取得方法及び3次元情報取得装置
JP2015165420A (ja) * 2013-05-31 2015-09-17 パナソニックIpマネジメント株式会社 モデリング装置、3次元モデル生成装置、モデリング方法、プログラム、レイアウトシミュレータ
JP2016006451A (ja) * 2014-06-20 2016-01-14 セイコーエプソン株式会社 マイクロレンズアレイ基板、電気光学装置、および電子機器
JP2016042217A (ja) * 2014-08-13 2016-03-31 株式会社ニコン 電子装置
DE102015013161B4 (de) 2014-10-17 2018-04-19 Fanuc Corporation Vorrichtung zum Einstellen eines Interferenzbereichs eines Roboters
US9584796B2 (en) 2014-10-17 2017-02-28 Fanuc Corporation Apparatus for setting interference region of robot
JP2016078184A (ja) * 2014-10-17 2016-05-16 ファナック株式会社 ロボットの干渉領域設定装置
JP2016158186A (ja) * 2015-02-26 2016-09-01 カシオ計算機株式会社 撮像装置、撮像方法、撮像プログラム
JP2018041437A (ja) * 2016-07-13 2018-03-15 ザ・ボーイング・カンパニーThe Boeing Company 航空機構築プロセスの改善されたステレオ投影ビデオを生成するためのシステムおよび方法
JP2020520308A (ja) * 2017-04-21 2020-07-09 深▲せん▼前海達闥雲端智能科技有限公司Cloudminds (Shenzhen) Robotics Systems Co., Ltd. ロボット制御方法、ロボット装置及びロボット機器
US11325255B2 (en) 2017-04-21 2022-05-10 Cloudminds Robotics Co., Ltd. Method for controlling robot and robot device
CN109543252A (zh) * 2018-11-05 2019-03-29 中国航空工业集团公司西安飞机设计研究所 一种基于鸟撞的系统安全性评估方法
CN109543252B (zh) * 2018-11-05 2022-11-22 中国航空工业集团公司西安飞机设计研究所 一种基于鸟撞的系统安全性评估方法
KR20200064947A (ko) * 2018-11-29 2020-06-08 (주)코어센스 광학식 위치 트래킹 시스템 기반의 위치 추적 장치 및 그 방법
KR102188480B1 (ko) * 2018-11-29 2020-12-08 (주)코어센스 광학식 위치 트래킹 시스템 기반의 위치 추적 장치 및 그 방법
WO2020179178A1 (ja) * 2019-03-01 2020-09-10 株式会社川口金属加工 異形形鋼の直角断面形状の測定方法
JP2020185631A (ja) * 2019-05-13 2020-11-19 日立Geニュークリア・エナジー株式会社 シミュレーション装置、および、シミュレーションプログラム
JP7223630B2 (ja) 2019-05-13 2023-02-16 日立Geニュークリア・エナジー株式会社 シミュレーション装置、および、シミュレーションプログラム
JP2019193974A (ja) * 2019-06-11 2019-11-07 ファナック株式会社 ロボットシステムおよびロボット制御方法
WO2021044473A1 (ja) * 2019-09-02 2021-03-11 ヤマハ発動機株式会社 多関節ロボットアーム制御装置及び多関節ロボットアーム装置
JP7417465B2 (ja) 2020-05-07 2024-01-18 株式会社トヨタマップマスター 情報処理装置、情報処理方法及び情報処理プログラム
JP2021177135A (ja) * 2020-05-07 2021-11-11 株式会社トヨタマップマスター 情報処理装置、情報処理方法及び情報処理プログラム
JP7417466B2 (ja) 2020-05-07 2024-01-18 株式会社トヨタマップマスター 情報処理装置、情報処理方法及び情報処理プログラム
JP2021177136A (ja) * 2020-05-07 2021-11-11 株式会社トヨタマップマスター 情報処理装置、情報処理方法及び情報処理プログラム
WO2021261242A1 (ja) * 2020-06-23 2021-12-30 株式会社Preferred Networks 情報処理装置
WO2022024464A1 (ja) * 2020-07-29 2022-02-03 富士通株式会社 検査プログラム、情報処理装置及び検査方法
US12211266B2 (en) 2020-08-18 2025-01-28 Samsung Electronics Co., Ltd. Method for obtaining position information using image and electronic device supporting the same
CN114593697B (zh) * 2020-12-03 2023-07-11 汉达精密电子(昆山)有限公司 一种检测产品缝隙和平面度的装置
CN114593697A (zh) * 2020-12-03 2022-06-07 汉达精密电子(昆山)有限公司 一种检测产品缝隙和平面度的装置
JPWO2022130476A1 (ja) * 2020-12-15 2022-06-23
WO2022201314A1 (ja) * 2021-03-23 2022-09-29 日本電気株式会社 情報処理装置、修正システム、情報処理方法及び非一時的なコンピュータ可読媒体
JPWO2022201314A1 (ja) * 2021-03-23 2022-09-29
US20230045897A1 (en) * 2021-08-03 2023-02-16 Subaru Corporation Object recognition apparatus and non-transitory recording medium
US12233861B2 (en) * 2021-08-03 2025-02-25 Subaru Corporation Object recognition apparatus and non-transitory recording medium
CN114394418B (zh) * 2021-12-30 2024-02-02 无锡中车时代智能装备研究院有限公司 制造转子铜排的智能控制方法及设备
CN114394418A (zh) * 2021-12-30 2022-04-26 无锡中车时代智能装备有限公司 制造转子铜排的智能控制方法及设备
CN114378825B (zh) * 2022-01-21 2023-05-12 四川长虹智能制造技术有限公司 一种多相机视觉定位方法、系统及电子设备
CN114378825A (zh) * 2022-01-21 2022-04-22 四川长虹智能制造技术有限公司 一种多相机视觉定位方法、系统及电子设备
JP7764273B2 (ja) 2022-02-18 2025-11-05 大和ハウス工業株式会社 設計支援システム及び設計支援プログラム
JP2023120995A (ja) * 2022-02-18 2023-08-30 大和ハウス工業株式会社 設計支援システム及び設計支援プログラム
CN114734444A (zh) * 2022-04-27 2022-07-12 博众精工科技股份有限公司 一种目标定位方法、装置、电子设备及存储介质
CN114734444B (zh) * 2022-04-27 2023-06-27 博众精工科技股份有限公司 一种目标定位方法、装置、电子设备及存储介质
WO2024057870A1 (ja) * 2022-09-12 2024-03-21 パナソニックIpマネジメント株式会社 移動ロボット、サーバ、移動ロボット制御システム及び移動ロボット制御方法
US20240227195A9 (en) * 2022-10-19 2024-07-11 Toyota Jidosha Kabushiki Kaisha Robot operation system, robot operation method, and program
US12459130B2 (en) * 2022-10-19 2025-11-04 Toyota Jidosha Kabushiki Kaisha Robot operation system, robot operation method, and program
CN115439625A (zh) * 2022-11-08 2022-12-06 成都云中楼阁科技有限公司 建筑草图辅助绘制方法、装置、存储介质及绘制设备
CN116451479A (zh) * 2023-04-19 2023-07-18 中策橡胶集团股份有限公司 一种快速生成轮胎二维几何模型网格的方法、应用和计算机程序产品
CN116297531B (zh) * 2023-05-22 2023-08-01 中科慧远视觉技术(北京)有限公司 机器视觉检测方法、系统、介质及设备
CN116297531A (zh) * 2023-05-22 2023-06-23 中科慧远视觉技术(北京)有限公司 机器视觉检测方法、系统、介质及设备
CN119526432A (zh) * 2025-01-23 2025-02-28 深圳市欣茂鑫实业有限公司 一种用于机械爪的治具抓取系统
CN119526432B (zh) * 2025-01-23 2025-04-11 深圳市欣茂鑫实业有限公司 一种用于机械爪的治具抓取系统

Similar Documents

Publication Publication Date Title
JP2006003263A (ja) 視覚情報処理装置および適用システム
CN111897332B (zh) 一种语义智能变电站机器人仿人巡视作业方法及系统
Walker et al. Virtual, augmented, and mixed reality for human-robot interaction: A survey and virtual design element taxonomy
CN111968262B (zh) 一种语义智能变电站巡视作业机器人导航系统及方法
CN111958592B (zh) 一种变电站巡检机器人图像语义分析系统及方法
US9522471B2 (en) Virtual safety cages for robotic devices
Prats et al. Reconfigurable AUV for intervention missions: a case study on underwater object recovery
CN115299245B (zh) 一种智能水果采摘机器人的控制方法及控制系统
Bordeux et al. An efficient and flexible perception pipeline for autonomous agents
JP6571305B2 (ja) 画像ベースの位置決定
WO2015180021A1 (zh) 剪枝机器人系统
CN114527763B (zh) 基于目标检测和slam构图的智能巡检系统及方法
Petrlik et al. UAVs beneath the surface: Cooperative autonomy for subterranean search and rescue in DARPA SubT
JP3965686B2 (ja) 視覚情報処理装置および適用システム
JP2007098567A (ja) 自律制御型ロボットおよびその制御装置
CN110298854A (zh) 基于在线自适应与单目视觉的飞行蛇形臂协同定位方法
JP4624000B2 (ja) 複合人工知能装置
Nickerson et al. The ARK project: Autonomous mobile robots for known industrial environments
WO2025071664A1 (en) Dynamic performance of actions by a mobile robot based on sensor data and a site model
JP7467206B2 (ja) 映像管理支援システムおよび映像管理支援方法
CN114756033B (zh) 一种用于井下透水的机器人沿管线巡检方法
Saveliev et al. Method of autonomous survey of power lines using a multi-rotor UAV
CN114820595B (zh) 四足机器人协同无人机检测区域损伤的方法及相关组件
JP2007048306A (ja) 視覚情報処理装置および適用システム
Franchi et al. Underwater robotics competitions: The European Robotics League emergency robots experience with FeelHippo AUV

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060526

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080407

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090217

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090623