(57)【要約】    【課題】  アズビルト３Ｄ−ＣＡＤデータをリアルタイムで自動生成して利用することができる視覚情報処理装置及びその応用システムを提供する。    【解決手段】  移動可能な撮像装置の画像情報を入力とし、入力画像を処理して移動空間に存在する物体のＣＡＤデータを自動的に生成する機能と自動的に更新する機能を持たせる。また、ＣＡＤデータの探索指令信号を入力とし、その指令信号に基づきＣＡＤデータを探索する機能と、探索したＣＡＤデータの情報を出力する機能を持たせる。更に、その視覚情報処理装置をロボット制御装置などと組み合わせて自律制御型の各種自動機械を構成する。【選択図】  図１４１
2006003263.tif 000002
【特許請求の範囲】
【請求項１】
移動可能な撮像装置で物体を撮影して得た画像情報を入力して前記物体のＣＡＤデータを生成する画像情報処理装置と、生成したＣＡＤデータを記憶する記憶装置を備えた視覚情報処理装置において、
前記画像情報処理装置は、生成した新生ＣＡＤデータが既に生成されている既成ＣＡＤデータの更新対象となるかどうかを判別する更新対象判別処理機能と、更新対象となる既成ＣＡＤデータと新生ＣＡＤデータの精度を比較するＣＡＤデータ精度比較処理機能と、新生ＣＡＤデータの精度が更新対象となる既成ＣＡＤデータの精度よりも高いときには該既成ＣＡＤデータを新生ＣＡＤデータで更新するＣＡＤデータ更新処理機能を備え、
新生ＣＡＤデータを生成する機能は、同時刻に取り込んだ複数の撮像装置の画像情報内の特徴点の対応付けを画像情報の特徴部位から行いステレオ計測して、ステレオ計測された点の中で安定な少なくとも３点をトラッキング追従させることにより撮像装置の移動による画像情報内の対応点を関係付けするようにして３次元の座標データを求める方法を実行することによって実現することを特徴とする視覚情報処理装置。
【請求項２】
移動可能な撮像装置で物体を撮影して得た画像情報を入力して前記物体のＣＡＤデータを生成する画像情報処理装置と、生成したＣＡＤデータを記憶する記憶装置を備えた視覚情報処理装置において、
前記画像情報処理装置は、ＣＡＤデータの輪郭線と実際の線を区別するようにし、ＣＡＤデータを生成する機能は、同時刻に取り込んだ複数の撮像装置の画像情報内の特徴点の対応付けを画像情報の特徴部位から行いステレオ計測して、ステレオ計測された点の中で安定な少なくとも３点をトラッキング追従させることにより撮像装置の移動による画像情報内の対応点を関係付けするようにして３次元の座標データを求める方法を実行することによって実現することを特徴とする視覚情報処理装置。
【請求項３】
移動可能な撮像装置で物体を撮影して得た画像情報を入力して前記物体のＣＡＤデータを生成する画像情報処理装置と、生成したＣＡＤデータを記憶する記憶装置を備えた視覚情報処理装置において、
前記画像情報処理装置は、ＣＡＤデータに該ＣＡＤデータを生成した時間に関する情報をもたせるように構成し、ＣＡＤデータを生成する機能は、同時刻に取り込んだ複数の撮像装置の画像情報内の特徴点の対応付けを画像情報の特徴部位から行いステレオ計測して、ステレオ計測された点の中で安定な少なくとも３点をトラッキング追従させることにより撮像装置の移動による画像情報内の対応点を関係付けするようにして３次元の座標データを求める方法を実行することによって実現することを特徴とする視覚情報処理装置。
【請求項４】
移動する物体により画像情報内の特徴点位置が変化する、あるいは撮像装置が移動するために画像情報内の特徴点位置が変化する、あるいは複数の撮像装置で撮影することにより各撮像装置から得られる画像情報内での特徴点の位置が変化する特徴点の対応付けを行う対応点の探索は、撮像装置から得られる画像情報を特徴点を結ぶ色境界線分から構成される２次元のＣＡＤデータに変換して、色境界線分が区分する少なくとも背景領域を除く領域内の特徴部位の類似度を比較して高いものを対応点候補として絞り込むようにしたことを特徴とする視覚情報処理装置。
【請求項５】
請求項４において、比較する特徴部位の類似度は、対応点候補から引いた他の特徴点までのベクトルの類似度、あるいはベクトルの類似度とベクトル先端の特徴点の有する色情報の類似度を用い類似度が高いものを対応点として絞り込む方法と組み合わせるようにしたことを特徴とする視覚情報処理装置。
【請求項６】
請求項４または５において、色境界線分の抽出は、輝度信号などの画像情報の変曲点の繋がりを色境界線分として行うようにしたことを特徴とする視覚画像処理装置。
【請求項７】
移動可能な撮像装置で物体を撮影して得た画像情報を入力して前記物体のＣＡＤデータを生成する画像情報処理装置と、生成したＣＡＤデータを記憶する記憶装置を備えた視覚情報処理装置において、
前記画像情報処理装置は、生成した新生ＣＡＤデータが既に生成されている既成ＣＡＤデータの更新対象となるかどうかを判別する更新対象判別処理機能と、更新対象となる既成ＣＡＤデータと新生ＣＡＤデータの精度を比較するＣＡＤデータ精度比較処理機能と、新生ＣＡＤデータの精度が更新対象となる既成ＣＡＤデータの精度よりも高いときには該既成ＣＡＤデータを新生ＣＡＤデータで更新するＣＡＤデータ更新処理機能を備え、
撮像装置から得られる画像情報を直接にあるいは間接的に取り込んで該画像情報内の特徴点を抽出する方法は、特徴点として線分の特徴点と、閉ループ図形の特徴点の両方を特徴点として抽出するようにしたことを特徴とする視覚情報処理装置。
【請求項８】
移動可能な撮像装置で物体を撮影して得た画像情報を入力して前記物体のＣＡＤデータを生成する画像情報処理装置と、生成したＣＡＤデータを記憶する記憶装置を備えた視覚情報処理装置において、
前記画像情報処理装置は、生成した新生ＣＡＤデータが既に生成されている既成ＣＡＤデータの更新対象となるかどうかを判別する更新対象判別処理機能と、更新対象となる既成ＣＡＤデータと新生ＣＡＤデータの精度を比較するＣＡＤデータ精度比較処理機能と、新生ＣＡＤデータの精度が更新対象となる既成ＣＡＤデータの精度よりも高いときには該既成ＣＡＤデータを新生ＣＡＤデータで更新するＣＡＤデータ更新処理機能を備え、
ＣＡＤデータに対応付けて撮像装置のカメラの撮影位置と画像情報（テクスチャ情報）を記録するようにしたことを特徴とする視覚情報処理装置。
【請求項９】
移動可能な撮像装置で物体を撮影して得た画像情報を入力して前記物体のＣＡＤデータを生成する画像情報処理装置と、生成したＣＡＤデータを記憶する記憶装置を備えた視覚情報処理装置において、
前記画像情報処理装置は、生成した新生ＣＡＤデータが既に生成されている既成ＣＡＤデータの更新対象となるかどうかを判別する更新対象判別処理機能と、更新対象となる既成ＣＡＤデータと新生ＣＡＤデータの精度を比較するＣＡＤデータ精度比較処理機能と、新生ＣＡＤデータの精度が更新対象となる既成ＣＡＤデータの精度よりも高いときには該既成ＣＡＤデータを新生ＣＡＤデータで更新するＣＡＤデータ更新処理機能を備え、
移動する撮像装置の位置または姿勢あるいはその両方を求める機能と、求めた位置情報または姿勢情報あるいはその両方を出力する機能を有することを特徴とする視覚情報処理装置。
【請求項１０】
請求項１〜９の１項において、前記画像情報処理装置は、ＣＡＤデータの探索指令信号を入力とし、その指令信号に基づきＣＡＤデータを探索する探索機能と、探索したＣＡＤデータの情報を出力する機能を有することを特徴とする視覚情報処理装置。
【請求項１１】
請求項１０において、３次元ＣＡＤデータを生成する範囲を指定する指令情報の入力インターフェースを有することを特徴とする視覚情報処理装置。
【請求項１２】
請求項１０または１１において、ＣＡＤデータの探索指令情報に２次元の探索指令を有することを特徴とする視覚情報処理装置。
【請求項１３】
請求項１０〜１２の１項において、探索機能は、探索する２次元あるいは３次元のＣＡＤデータの対応点候補から引いた他の特徴点までのベクトルの類似度、あるいはベクトルの類似度とベクトル先端の特徴点の有する色情報の類似度を用い類似度が高いものを対応点として絞り込む方法と組み合わせて実現するようにしたことを特徴とする視覚情報処理装置。
【請求項１４】
請求項１０〜１３の１項において、あらかじめ少なくとも３次元ＣＡＤデータの部品形状と各部品との結合条件をデータベースとして設けておき、探索時に当該データベースの情報より部品の結合条件の所定の規則に従って部品の結合条件を変えて探索ＣＡＤデータを生成して探索することを特徴とする視覚情報処理装置。
【請求項１５】
請求項１０〜１４の１項において、探索した物体に対する判断機能とその判断機能を使用するための指令情報を入力するインターフェースと判断結果の情報を出力するインターフェースを有することを特徴とする視覚情報処理装置。
【請求項１６】
移動検査装置において、
移動環境の３次元データをあらかじめ有する、あるいは移動しながら移動環境の３次元データを生成する手段と、移動する検査装置の位置または姿勢あるいはその両方を求める機能手段と、３次元ＣＡＤデータの中の撮像装置の位置情報より特定する検査対象部位に相当する３次元ＣＡＤデータの部位と対応付けして検査結果のデータを記録する機能手段を備えたことを特徴とする移動検査装置。
【請求項１７】
請求項１６において、あらかじめ移動検査装置の計画移動経路を設定する機能と、あらかじめ設定した計画移動経路と実際の移動経路の誤差を３次元ＣＡＤデータの中での撮像装置の位置情報より求める機能とその誤差を小さくするように移動検査装置の移動制御をおこなうためのルールを設定する機能とその移動制御のルールに基づき移動検査装置の移動制御を実行する制御部を設けたことを特徴とする移動検査装置。
【請求項１８】
撮像装置の画像情報を入力とし入力画像を処理して移動空間に存在する物体のＣＡＤデータを生成する視覚情報処理装置を備え、ロボットの動作する環境の３次元ＣＡＤデータを生成してＣＡＤデータの中のロボットの現在位置を特定する手段と、ロボットからの各種センサ信号よりロボットの現在の姿勢、動作状態を特定する手段と、前記ロボットの動作する環境の３次元ＣＡＤデータと前記ＣＡＤデータの中のロボットの現在位置と前記ロボットの現在の姿勢、動作状態をロボットのシミュレーションモデルへ反映する手段と、ロボットの動作をシミュレーションする手段と、そのシミュレーション手段に移動計画に基づくロボットの動作指令信号を入力する手段と、シミュレーション結果が所定の評価レベルになったか否かを判断する手段と、シミュレーション結果が所定の評価レベルに至らなかった場合にシミュレーション結果に基づきロボットへの動作指令信号を修正する手段とを設けて、所定の条件において最も評価レベルが良好なロボットへの動作指令信号をロボットへ出力するようにしたことを特徴とするロボットの制御装置。
【請求項１９】
請求項１８に記載した制御装置を備えたことを特徴とするロボット。
【請求項２０】
請求項１〜１７の１項に記載した視覚情報処理装置を備えたことを特徴とするマニピュレータ，移動ロボット，文字読み取り装置，物体認識装置，計測装置，ＣＡＤデータ生成装置，ナビゲーション装置，検査装置，ピッキング装置，自律制御型ロボット，監視装置，自動車，船，飛行機などのシステム。
【請求項２１】
１つまたは複数の端末から送られてくる情報を情報処理センタで統括監視する監視サービス提供システムにおいて、
ユーザからのリクエストにより監視対象ユーザを探索し、監視中は監視対象ユーザを追跡し、視対象監ユーザおよびその周辺を連続して監視するようにしたことを特徴とする監視サービス提供システム。
【請求項２２】
１台あるいは複数の端末から送られてくる情報をセンタで統括監視する監視サービス提供システムにおいて、
各端末には所定の期間の所定の情報を時刻と対応つけて記録しておく機能を設け、ユーザーからのリクエストにより所定の端末の所定の時刻の記録データを取り出せるようにしたことを特徴とする監視サービス提供スシステム。
【請求項２３】
前記請求項２１または２２において、監視中はユーザ周辺の人に監視サービス中であることを知らせる状態表現手段を設けることを特徴とした監視サービス提供システム。
【請求項２４】
前記請求項２１〜２３の１項において、監視中にユーザへ知らせる状況が発生した場合にはユーザあるいはユーザとその周辺の人にその情報を提供する手段を設けたことを特徴とする監視サービス提供システム。
【請求項２５】
センサ情報を取得するための端末装置において、あらかじめ複数箇所にセンサの設置ポートを設けておき、端末を組み立てるときに１セットあるいは複数セットのセンサを所定の個所の設置ポートに接続できる構成とすることを特徴としたセンサ情報を取得するための端末装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、視覚情報処理装置と該視覚情報処理装置を適用したシステムに関するものである。特にアズビルトの３Ｄ−ＣＡＤデータの自動生成やロボット等自動機械の視覚誘導制御装置や移動検査装置、監視サービスシステムに好適な視覚情報処理装置である。
【背景技術】
【０００２】
撮像装置で撮影して得た画像情報に基づいて３Ｄ−ＣＡＤデータの生成手法としては、複数枚の写真から３次元の座標を求める手法がある。例えば、米国の３Ｄ  Ｃｏｎｓｔｒｕｃｔｉｏｎ  Ｃｏｍｐａｎｙで開発され、日本では（株）ケイ・ジー・ティーから販売されている３Ｄ  Ｂｕｉｌｄｅｒというソフトウェアなどがある。複数枚の写真間の対応する点をオペレータが一つ一つ入力すると、その点と撮影した撮像装置のカメラの位置と向きが３次元座標として計算され、対話形式でＣＡＤデータを作成したり、テクスチャマッピングを行なうことができる。
【０００３】
また、特開２００２−３２７４１号公報および特開２００２−３２７４２号公報には、初期画像で特徴点（ウィンドウ）を指定または特徴点位置設定データに基づき最初に特徴点を最初に設定すれば、連続的に入力される画像の中で特徴点を自動追跡させて、対応点をオペレータが一つ一つ入力しないで済むようにして、３次元座標を計算し、それらの点データを結んでテクスチャマッピングを行なうことができるシステムの概念が開示されている。
【０００４】
また、ステレオ計測の対応点探索の方法として、特公平８−１６９３０号公報には、画像の相関をとって相関係数、残差自乗和によってマッチングの良くない箇所の対応点をオペレータが入力するようにした方法が開示されている。
【０００５】
【特許文献１】特開２００２−３２７４１号公報
【特許文献２】特開２００２−３２７４２号公報
【特許文献３】特公平８−１６９３０号公報
【特許文献４】特開平０２−１３７０７２号公報
【０００６】
【非特許文献１】３D  Ｂｕｉｌｄｅｒ  （株）ケイ・ジー・ティーから販売されているソフトウェア
【非特許文献２】情報通信電子学会論文誌  Ｄ−II  Ｖｏｌ．Ｊ８０−Ｄ−II  Ｎｏ．５  ＰＰ．１１３６−１１４３、１９９７年５月
【非特許文献３】情報処理学会研究報告  コンピュータビジョンとイメージメディア、No. 131-022、2001年
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、複数枚の写真の中の対応する特徴点を正確に自動で探索させたり、オペレータが入力設定しないで済むようにしたり、テクスチャマッピングをしないで正確なＣＡＤデータを生成させることや、撮像装置の撮影カメラを積極的に移動させてＣＡＤデータをより正確に生成するようにすることや、ロボット等の制御にも利用できるように最初はそれなりの精度で生成させて撮影カメラを前後左右に近づけたり移動させることで精度を向上させていくことをリアルタイムで行なえるようにすることや、複数の撮影カメラを移動させて生成したＣＡＤデータを統合させることなどについては考えられていなかった。また、更にアズビルトのＣＡＤデータを生成した後あるいは生成しながら、任意のＣＡＤデータを探索させる機能と組み合わせて、ロボット等の自動機械の視覚誘導制御装置や自動車などのナビゲーションシステム、移動検査装置、監視サービスシステムなどに適用することや、自律制御型ロボットなどに適用することなども考えられていなかった。
【０００８】
本発明の目的は、アズビルト３Ｄ−ＣＡＤデータをリアルタイムで自動生成可能とし、また、ＣＡＤデータの探索機能と組み合わせて、ロボット等の各種自動機械の視覚誘導制御装置として、また、ナビゲーションシステム、移動検査装置、監視サービスシステムなどとして適用可能な視覚情報処理装置およびそのシステムを提供することにある。
【課題を解決するための手段】
【０００９】
発明者等は、前記目的を達成するための基本的な手段として、特願２００２−３６８１３４号の明細書および図面に記載したような視覚情報処理装置を開発した。本発明は、この基本的な手段を基礎として更なる手段を提案するものである。
【００１０】
第１の手段は、移動可能な撮像装置で物体を撮影して得た画像情報を入力して前記物体のＣＡＤデータを生成する画像情報処理装置と、生成したＣＡＤデータを記憶する記憶装置を備えた視覚情報処理装置において、前記画像情報処理装置に、生成した新生ＣＡＤデータが既に生成されている既成ＣＡＤデータの更新対象となるかどうかを判別する更新対象判別処理機能と、更新対象となる既成ＣＡＤデータと新生ＣＡＤデータの精度を比較するＣＡＤデータ精度比較処理機能と、新生ＣＡＤデータの精度が更新対象となる既成ＣＡＤデータの精度よりも高いときには該既成ＣＡＤデータを新生ＣＡＤデータで更新するＣＡＤデータ更新処理機能をもたせたことを特徴とする。
【００１１】
この第１の手段は、視覚情報処理装置において、移動可能な撮像装置によって得た画像情報を入力とし、入力画像を処理して移動空間に存在する物体のＣＡＤデータを生成する機能をもたせたので、移動空間に存在するいろいろな物体のＣＡＤデータを容易生成することが可能となる。
【００１２】
また、生成された新生ＣＡＤデータが既に生成されている既成ＣＡＤデータの更新対象となるか否かの更新対象判別処理機能と、新生ＣＡＤデータが既成ＣＡＤデータの更新対象となる場合には、新生ＣＡＤデータの精度と更新対象の以前に生成された既成ＣＡＤデータの精度を比較して精度が良くなる場合には該ＣＡＤデータを更新する機能ももたせたことによって、撮像装置が移動しながら物体に近づいて該物体のより詳細部の画像情報を得ることにより、物体のより詳細なＣＡＤデータを生成しながら更新することが可能となる。また、移動する撮像装置は、物体の上下左右および裏面の画像情報を入力することができるので、物体の正面だけの色や形状だけでなく、上下左右、更には裏面の色や形状までをＣＡＤデータとして生成することが可能となる。新生ＣＡＤデータが既成ＣＡＤデータの更新対象となるか否かの更新対象判別処理機能は、例えば、ＣＡＤデータの生成後に、同じ個所に以前に生成されたＣＡＤデータが存在しない場合には更新対象とせずにそのままＣＡＤデータを追加し、存在する場合には更新対象とするものである。新生ＣＡＤデータが既成ＣＡＤデータの更新対象となった場合には新生ＣＡＤデータの精度と更新対象の既成ＣＡＤデータの精度を比較し、精度が良くなる場合にはＣＡＤデータを更新することにより、毎回同じ部位のＣＡＤデータが生成されてもより精度が良くなる場合以外には更新されることはなく、より精度が良くなる場合には更新されるので、この処理を繰り返し行なうようにすることで、移動空間に存在する物体は、そのＣＡＤデータが更新されるたびにより精度が良くなり、最終的には精度の良いＣＡＤデータを得ることができるようになる。このように、ＣＡＤデータの精度が良くなる更新のみを行なうようになれば、ＣＡＤデータは、撮像装置が対象から離れている段階で撮影して得た画像情報からはそれなりの精度で生成されるが、撮像装置が対象の近くへ寄って撮影した画像情報によれば生成精度をそれなりに上げることができるようになる。
【００１３】
運用においても、ＣＡＤデータの精度が良くない場合には、例えば、遠方の対象に対する大雑把な位置決め制御にＣＡＤデータを利用することができるし、その後、近くに寄れば、精度の上がったＣＡＤデータを使用して更に精度の良い位置決め制御を行なうことが可能となるので、精度の良くない最初の段階からでもＣＡＤデータを連続的に有効に利用することが可能となる。
【００１４】
また、このようなＣＡＤデータの更新機能があれば、移動していない物体の同じ部位については、ＣＡＤデータが何度生成されても同じようなＣＡＤデータが沢山蓄積されることはなく、同じような物体が幾つも生成される場合は、移動物体が含まれる場合であるので、トラッキングなどで移動前後の対応が取れるようにすることにより、煙や湯気などの動く対象物体の動きとか、移動するスポットライトあるいは移動する影などの追従も、ＣＡＤデータが逐次更新されていくので、その更新履歴を参照することで、容易に行なうことが可能となる。
【００１５】
第２の手段は、前記第１の手段を適用して構成した視覚情報処理装置において、ＣＡＤデータは輪郭線と実際の線を区別するようにすることである。
【００１６】
このような第２の手段は、前記第１の手段を適用して構成した視覚情報処理装置において、ＣＡＤデータは、輪郭線と実際の線を区別するようにしていることから、物体の形状データを取り込む場合には輪郭線として検出された線もその物体の形状を示す線であるので、形状データとして蓄積しておくことができる。また、模様の線のように実際にそこに線が存在する場合の該線は、絶対的な位置の情報を有する形状データともなるし、その物体の模様を形成する模様の情報でもある。従って、生成されたＣＡＤデータで輪郭線と実際の線を区別して管理しておけば、形状データを取り扱いたい場合には、輪郭線と実際の線の両方を用いたより多くの情報を用いてより正確な形状を認識処理することが可能となる。
【００１７】
一方、パターンマッチングなどである模様を探索しようとする場合には、輪郭線のデータを一緒に取り扱うと模様にはない線が含まれてしまうので正しいマッチングがとれずに探索し難いが、そのような場合には、実際の線データのみを使用して探したい模様とのマッチングを行なえば、容易に模様を探索することができるようになる。それは、輪郭線と実際の線を区別して管理しておくので、必要な線の方だけを必要なときに効率良く使用することが可能となる。従って、模様のある物体と模様のない物体が混在する環境においても、ＣＡＤデータの生成と探索を効率的に行なうことができるようになる。また、スポットライトや影の輪郭線は、それがライトが当たっている面の輪郭や当たっていない影の輪郭と分かっている場合には輪郭線になるが、光源や光源からの光を遮る物体が移動しなければ撮像装置が移動しただけでは変化しないので模様として取り扱える両方の特徴をもつので、分かった時点で実際（模様）の線から輪郭線に区別内容を変更しても良いし、光源や遮る物体が動くことが分かっていてもＣＡＤデータを利用する時間の間隔では動かない場合には、影をパターンマッチングの模様にするケースを考慮して、影等の輪郭線は、他の輪郭線や実際の線とは区別して管理するようにしても良い。
【００１８】
また、輪郭線と実際の線との区別は、異なる複数の視点から撮像して得た画像情報から当該線分の位置、具体的には線分を構成する特徴点を計測するわけであるが、輪郭線の場合は、異なる複数の視点から撮影して抽出した当該輪郭線は厳密には対象物の違う部位を同じ輪郭線として３次元計測するので、ステレオ計測であれば対応する点が厳密にはずれる（ずれに相当する誤差を有する）ことになる。実際線の場合には、そのずれは極めて小さくなる。そこで、その対応点のずれの程度を求めて、ずれが所定の大きさ以上の場合は輪郭線として、未満の場合は実際の線と区別することでも良いが、その対応点のずれの程度をＣＡＤデータに持たせて、実際の線と輪郭線と線の種類で区別するかわりに、そのずれの程度で当該線分を区別するようにしても良い。
【００１９】
第３の手段は、前記第１〜第２の手段を選択的に適用して構成した視覚情報処理装置において、ＣＡＤデータに該ＣＡＤデータを生成した時間に関する情報をもたせるようにすることである。
【００２０】
このような第３の手段は、前記第１〜第２の手段を選択的に適用して構成した視覚情報処理装置において、ＣＡＤデータに生成された時間に関する情報をもたせるようにしているので、生成されたＣＡＤデータを参照したときに該ＣＡＤデータが生成された時刻を参照することができるようになる。従って、例えば、現在生成した同じ場所のＣＡＤデータと前に生成されていたＣＡＤデータを比較したときに、違いがあった場合には、現在の時刻と前のＣＡＤデータに登録されていた時刻とから何時間前からの状態から変化したかということを認識することが可能となる。ＣＡＤデータを生成しながら生成されているＣＡＤデータを参照する場合に、生成時刻がＣＡＤデータにあれば、どちらが先に生成されたＣＡＤデータかも確認することができる。
【００２１】
第４の手段は、前記第１〜３の手段を選択的に適用して構成した視覚情報処理装置において、移動可能な撮像装置からの画像情報を入力とし、入力した画像情報を処理して移動空間に存在する物体のＣＡＤデータを自動的に生成する機能を備え、このＣＡＤデータを自動生成する機能は、同時刻に取り込んだ複数の撮像装置の画像情報内の特徴点の対応付けを画像情報の特徴部位から行いステレオ計測して、ステレオ計測された点の中で安定な少なくとも３点をトラッキング追従させることにより撮像装置の移動による画像情報内の対応点を関係付けするようにして３次元の座標データを求める方法を実行することによって実現するようにしたことである。
【００２２】
第４の手段では、前記第１〜３の手段を選択的に適用して構成した視覚情報処理装置において、移動可能な撮像装置の画像情報を入力とし、入力した画像情報を処理して移動空間に存在する物体のＣＡＤデータを自動的に生成する機能を備え、このＣＡＤデータを自動生成する機能は、同時刻に取り込んだ複数の撮像装置の画像情報内の特徴点の対応付けを画像情報の特徴部位から行いステレオ計測して、ステレオ計測された点の中で安定な少なくとも３点をトラッキング追従させることにより撮像装置の移動による画像情報内の対応点を関係付けするようにして３次元の座標データを求める方法を実行することによって実現するようにしたので、まずステレオ計測によって最初に撮影した画像情報の中の特徴点の３次元位置の計測が容易にでき、一度にたくさんの特徴点の３次元位置の計測ができるので、その中からもっとも計測時の精度良い安定した３点が撮像装置が移動した次の時点で撮影した画像情報の中からトラッキング抽出することができれば、３点の３次元位置の既知データがあるので移動前のカメラ座標系と移動後のカメラ座標系の座標変換を行う計算式の全ての係数は既知となるので、移動後の画像情報で計測した移動後のカメラ座標系での全ての特徴点の３次元位置情報は容易に移動前のカメラ座標系の位置情報に変換することが容易に可能となる。また、少なくとも３点のトラッキングを行うときに２次元の画像情報の中で対応する点を探索することもできるが、対応点候補が複数残ってその中の一つをプログラムにより自動的に特定できないような場合にも移動後の位置での全特徴点の３次元位置を移動後のカメラ座標系でステレオ計測で求めることができるので、複数候補の対応点の中より３点を選択して座標変換を行う計算式の全て係数を求めてその変換計算式で移動後のカメラ座標系の全特徴点を移動前の座標系に変換したときに一致する特徴点の数が一番多い３点の組み合わせが正しい対応する３点であることを容易に判定することができるので、候補点全ての３点の選択組み合わせを確認することで正しい座標変換計算式を容易に得ることができるようになり、撮像装置が移動して新たに画像情報を取り込んでいくことを繰り返すことによって、３次元空間に存在する物体の３次元ＣＡＤデータを容易に生成することができるようになる。更に、同じ点と思われる特徴点を、再度、３次元計測した場合は、計測した条件に基づき計測精度がより向上する場合には当該特徴点の計測した位置情報を更新するようにすれば、撮像装置を移動して計測対象に近づくことによってより精度の良い３次元ＣＡＤデータを自動的に生成できるようになる。また、毎回撮像装置が移動するごとにステレオ計測で特徴点の３次元座標を計測する方法のみでも良いが、本手段を用いれば、以前に撮影した画像情報を残しておき、前述のトラッキングによって残しておいた画像情報を撮影した位置から十分離れた位置へ移動したときの撮像画像情報を用いてあらためて３次元計測を行うこともできるので、より計測精度を向上させることができる。この場合、撮像装置の位置がステレオ計測を行っている撮像装置間の間隔より十分広い間隔で再度３次元計測ができるので、計測精度を容易に向上させることができる。
【００２３】
第５の手段は、移動する物体により画像情報内の特徴点位置が変化する、あるいは撮像装置が移動するために画像情報内の特徴点位置が変化する、あるいは複数の撮像装置で撮影することにより各撮像装置から得られる画像情報内での特徴点の位置が変化する特徴点の対応付けを行う対応点の探索方法において、撮像装置から得られる画像情報を特徴点を結ぶ色境界線分から構成される２次元のＣＡＤデータに変換して、色境界線分が区分する少なくとも背景領域を除く領域内の特徴部位の類似度を比較して高いものを対応点候補として絞り込むようにしたことである。
【００２４】
この第５の手段では、移動する物体により画像情報内の特徴点位置が変化する、あるいは撮像装置が移動するために画像情報内の特徴点位置が変化する、あるいは複数の撮像装置で撮影することにより各撮像装置から得られる画像情報内での特徴点の位置が変化する特徴点の対応付けを行う対応点の探索方法において、撮像装置から得られる画像情報を特徴点を結ぶ色境界線分から構成される２次元のＣＡＤデータに変換して、色境界線分が区分する少なくとも背景領域を除く領域内の特徴部位の類似度を比較して高いものを対応点候補として絞り込むようにするので、撮影対象に対する撮像装置の位置や角度によって変形する背景を含む局部的２次元の画像情報を使用しないで十分な確度で対応点の探索を容易に行うことができるようになる。具体的にその容易さが実現される作用を説明する。２次元のＣＡＤデータの線分で構成される線画の局部的な特徴部位とは線分の特徴点の位置や線分が境界線として線を引いた両側の色情報や線分の繋がりの状態などである。位置に関しては、例えば移動するカメラの微小時間間隔で画像を取り込むようにした場合は、撮像装置の移動速度にも関係するが特徴点の移動範囲は前回撮影した特徴点の近くの微小領域内である。画像情報を取り込む周期が小さくなればなるほどその微小領域は小さくなるので対応点を探索する場合の候補点の数はより多く絞りこむことが可能となる。また、一方、ステレオ計測のように、あらかじめ撮影位置の異なる撮像装置の位置関係が既知の場合には、探索する対応点は必ず探索する相手側の特徴点の位置に関連する所定の直線上に存在するので、その直線上にある点を候補点として絞り込むことができる。そして更に、その候補点の中から特徴点が構成する線分の左右の色情報が一致するかどうかで対応点を更に絞り込むことができる。このとき、かならずしも両側の色情報が一致するという条件のみでふるいわけをするのではなく、片側でも一致すれば十分に対応点の候補となる。それは、当該線分が実際線である場合は両側の色情報が一致するが、当該線が輪郭線である場合には、どちらか一方は背景の色情報であるためにかならずしも一致しない。それは、背景の色情報は、その輪郭を撮影する角度によってその輪郭線の隣に見える背景が違ってくるためである。しかし、当該線分のかならず一方の側は輪郭を生成する手前の物体の色情報になるために、撮影する角度が変わっても対応する点の色情報は一致する。従って、両側の色情報が一致する場合にはそれは対応点候補となり、また、片側の色情報が一致する場合にも対応点候補となる。色情報は、１画素オーダーの局部的な領域で類似度を比較する場合には境界の反対側の色情報になるが、局部領域を数画素のオーダーにして処理を行う場合には、当該点から広がる境界線分が構成する微小領域ごとの相関をとって背景の微小領域を除く部分の微小領域の相関値の高い微小領域の存在する対応候補の点を対応点と判別するようにしても良い。以上のように、位置と両側あるいは境界線の微小領域の色情報で絞り込んだ対応点の候補点について、更に線分情報の繋がり情報、繋がっている線分の色情報が一致している場合には、それはより対応点の候補として絞り込めることになる。それでステレオ計測などのステレオ計測のように、あらかじめ撮影位置の異なる撮像装置の位置関係が既知の場合には、絞り込まれた対応点候補の中より３点の組み合わせを順次行って座標変換計算式の係数を求めて多くの特徴点が一致する３点の組み合わせが確実に正しい対応のとれた３点であるということから、正しい対応点を精度良く容易に得られるようになる。また、ここで、ステレオ計測で対応点が一致した場合でも錯覚で一致している場合もあるので、引き続き撮像装置が移動して異なる視点からステレオ計測しても同じように対応点として一致している場合にはそれは安定な点として識別管理するようにして次のトラッキングするときに用いる３点に優先的に選ぶようにするのが良い。
【００２５】
一方、ステレオ計測でなくトラッキングによる計測の場合には、サンプリング速度を早くして探索範囲を微小にすることによって対応点候補を絞り込むのが有効である。しかしながら、処理速度との関係でそれほど高速化が困難の場合には、同様にある範囲の位置情報、線分の両側の色情報、更には線分の繋がり情報や周囲との位置関係の類似性より絞り込んで、最終的には対応点候補の中より総合的な一致度の高いものから３点を選択して座標変換計算式の係数をもとめて他の対応候補のある全ての点を同じ座標系に変換したときに一致する対応点候補の数の多い３点が最も確実な対応点であると判別して処理を連続継続させる。また、ステレオ計測のトラッキングの場合には、対応点探索の前にステレオ計測により３次元の位置情報を求めてトラッキングの移動前後のカメラ座標系により計測した３次元の特徴点群の３次元ＣＡＤデータ上で特徴点群のマッチング性の一番高い座標変換計算式の係数を正しい変換係数とすることでトラッキングを精度良く継続させることが可能となる。このようにすれば容易に確実に対応点の探索を自動で行うことが可能となる。ここで、確からしい対応点が３点得られなかった場合は、同撮像装置といっしょに動くように加速度センサやジャイロセンサを設けてそれらのセンサの情報により特徴点のトラッキングができない期間の撮像装置の移動情報を得るようにして補間するようにするのが良い。
【００２６】
第６の手段は、前記第５の手段で比較する特徴部位の類似度は、対応点候補から引いた他の特徴点までのベクトルの類似度、あるいはベクトルの類似度とベクトル先端の特徴点の有する色情報の類似度を用いて類似度が高いものを対応点として絞り込む方法と組み合わせるようにすることである。
【００２７】
この第６の手段では、前記第５の手段で比較する特徴部位の類似度は、対応点候補から引いた他の特徴点までのベクトルの類似度、あるいはベクトルの類似度（同じ方向で同じ長さのベクトルの本数の大小）とベクトル先端の特徴点の有する色情報の類似度（上下左右の色情報の一致度）を用い類似度が高いものを対応点として絞り込む方法と組み合わせるようにするので、２次元のＣＡＤデータに置き換わった画像情報（データ）のマッチング処理を高速に行うことが可能となる。ここで、従来の２次元配列の画像情報どおしでマッチングする場合は、２次元の相関係数を求めたり、１回のマッチング計算に多くの時間を必要とするが、データ量は、ＣＡＤデータに置き換えられた時点で、２次元の画像情報量から特徴点の数だけに低減されており、それらのベクトルは、方向と距離の２つの数値を比較することでベクトルの類似度は求められるので、２次元の画像情報のマッチング計算と比較して簡単になる。また、ベクトルの方向と距離の他にベクトル先端の特徴点の色情報の類似度を比較する場合でも特徴点１点の周辺の色情報のみであり、１点の対応点候補から引くベクトルの本数が数十から数百本になったとしても２次元の画像での相関係数を求める計算量よりは少なくできるので、正確なマッチングをより早く容易に行うことができるようになる。この場合も、第５の手段で述べたように、背景と背景でない色境界線分の区分けする領域ごとのベクトルの類似度を比較するようにする。
【００２８】
第７の手段は、前記第５，６の手段の色境界線分の抽出方法は、輝度信号などの画像情報の変曲点の繋がりを色境界線分として行うようにしたことである。
【００２９】
この第７の手段では、前記第５，６の手段の色境界線分の抽出方法は、輝度信号などの画像情報の変曲点の繋がりを色境界線分として実行するようにするので、感度良く、また、安定に線分を抽出することができる。ここでの輝度信号とは、白黒画像の輝度信号は勿論であるが、明るさが距離情報に対応した輝度信号でも良いし、カラー画像情報の色情報（Ｒ，Ｇ，Ｂなど）の輝度信号でも良いし、Ｘ線ＣＴで物体内部の透過率を計測した輝度信号でも良い。色情報の場合のように複数の輝度情報を扱う場合には、同じ処理で得られる特徴点を合成して使用するようにする。変曲点は、左右の色情報の変化率が変わる部位であるために、照明条件が変わって全体的に明るさが変化しても、また、照明の明るさが連続的に変る条件においても撮影対象物に変曲点が生じるような部位が存在する個所には変曲点が生じるので、照明条件が多少変化しても、その影響を受けないで変曲点が生じるような部位が存在する個所は線分として安定に容易に検出できるようになる。また、感度は、撮影画像全体で一定感度にしても良いが、局部的に周囲の輝度情報に応じて変曲点を変曲点として検出する閾値を変化させて画面全体でどこでも最高の感度で検出できるようにして良い。また、処理速度の観点から、撮影画像情報の中の検出線分の本数が所定の数量程度になるように感度を自動調整するようにしても良い。そうすることによって、常に適当な量の線分（特徴点）が得られるのでトラッキングなどを安定して連続に行うことができ、かつ、線分の物量が処理速度以上に増えることも抑制することができる。特徴点の抽出は、安定に行なわれる必要があるので、抽出した変曲点は、照明のみでなく撮影視点によっても微妙に変化するので、安定化するために変曲点から線分を生成するときに最小二乗法などでフィッティリングさせて線分を生成させても良いし、線分を延長して延長した先の線分の交点を特徴点とするようにしても良い。また、生成する線分は、閉ループが生成されれば面データがたくさん定義できるので、２次元の撮影画像の色グループ化処理を行い撮影画像情報の全体をもれなく閉ループの色領域境界線分で区分けする処理を行い、その境界線分の分岐点や鋭角な曲がり点などを特徴点としても良いが、更に、その境界線分に変曲点から生成させた線分を対応させて境界線分を参考にして閉ループの線分をよりたくさん生成するようにしても良い。
【００３０】
第８の手段は、撮像装置から得られる画像情報を直接あるいは間接的に取り込んで該画像情報内の特徴点を抽出する方法において、特徴点として線分の特徴点と、閉ループ図形の特徴点の両方を特徴点として抽出するようにしたことである。
【００３１】
この第８の手段では、撮像装置から得られる画像情報を直接あるいは間接的に取り込んで該画像情報内の特徴点を抽出する方法において、特徴点として線分の特徴点と、閉ループ図形の特徴点の両方を特徴点として抽出するようにするので、閉ループを生成していない線分は、線分の端点や分岐点や鋭角の折曲がり点などが特徴点として抽出されて３次元座標の計測やトラッキングに使用されるだけではなく、閉ループ図形の境界線分であり、端点が存在しないで、かつ、分岐点もなく、かつ、鋭角の折曲がり点もないと特徴点を抽出することができないが、そういう場合には、基本図形の例えば中心とか、基本図形の向きなどを組み合わせて閉ループ図形の特徴点とすれば、閉ループ図形が混在する画像情報の中で数多くの特徴点を抽出して３次元座標の計測やトラッキングに使用することができるようになる。
【００３２】
また、線分の例えば端点などを特徴点として検出してトラッキングを続けている途中で線分が閉ループに繋がった場合には、閉ループの基本図形の特徴点（図心とか向きの情報など）に切り替えてトラッキングを継続して行うこともできるようになる。再度、また、途中で閉ループが切れた場合には、端点が現れるので端点を特徴点としたトラッキングに切り替えて継続トラッキングを行うことができるようになる。
【００３３】
第９の手段は、前記第１〜４の手段を選択的に適用して構成した視覚情報処理装置において、ＣＡＤデータに対応付けてカメラの撮影位置と画像情報を記録するようにしたことである。
【００３４】
この第９の手段では、前記第１〜４の手段を選択的に適用して構成した視覚情報処理装置において、ＣＡＤデータに対応付けてカメラの撮影位置と画像情報を記録するようにするので、抽出される線分データの数が少ない場合や閉ループを構成する線分データが定義する面データがたくさん生成されない場合でも撮影対象の色情報（テクスチャ情報）を利用してそれまで生成されたＣＡＤデータを表示したり、利用したりすることが容易にできるようになる。具体的には、線分データのＣＡＤデータをモニタ画面に表示する場合に、背景にその線分を計測したときのテクスチャ情報（具体的は２次元の画像情報）を重ねて表示すれば、十分な情報がＣＡＤデータに変換生成されていない場合でもモニタ画面を見る操作者にはＣＡＤデータの線分が画像上のどの線に相当するＣＡＤデータなのかが容易に分かるようになる。また、ＣＡＤデータのもつ３次元位置情報と画像情報の色情報を組み合わせてロボットの制御や検査結果データの編集などにプログラム上で使用することも可能となる。テクスチャである画像情報は、撮像装置の位置と対応付けて記録しているので、モニタ画面に表示するときに、表示するときの視点の位置に画像データを変換して表示すれば、違和感のない背景を表示させることができる。また、各線分データに対応する画像データが割り付けられるようにすれば、モニタ画面の視点の位置に一番近い位置で撮影したテクスチャ（画像情報）を表示に利用することができるようになる。基本的には面に対する法線方向から撮影した画像情報を記録するようにするが、まだ、面が生成されていない場合には、複数の線分から推定できる推定面に対する法線方向から撮影した画像情報を記録するようにする。何れの場合にも、全て法線方向から撮影した画像情報を記録できるわけではないので、撮像装置が移動しながら撮影を繰り返す中で、より法線方向に近い画像情報、より近くから撮影した画像情報が得られた場合には、古い画像情報を消去して新しい画像情報にテクスチャ情報も随時更新するようにして良い。
【００３５】
第１０の手段は、前記第１〜第９の手段を選択的に適用して構成した視覚情報処理装置および視覚情報処理システムにおいて、画像情報処理装置は、移動する撮像装置の位置または姿勢あるいはその両方の情報を求める機能と、求めた位置情報あるいは姿勢情報あるいはその両方を出力する機能を有するようにすることである。
【００３６】
このような第１０の手段は、前記第１〜第９の選択的に適用して構成した視覚情報処理装置および予めＣＡＤデータを有している視覚情報処理装置あるいはそれらの視覚情報処理装置を適用した視覚情報処理システムにおいて、画像情報処理装置は、移動する撮像装置の位置または姿勢あるいはその両方の情報を求める機能と、求めた位置情報または姿勢情報あるいはその両方を出力する機能を有するので、撮像装置の位置および姿勢情報を別のＣＰＵ等のアプリケーションシステム側で利用することが可能となる。ロボット等の自動機械の視覚誘導制御装置として適用する場合には、対象物体にアクセスするロボットハンドなどの先端に撮像装置を取り付けることで、この撮像装置とロボットハンドの相対取り付け位置関係は既知であることから、撮像装置の位置と姿勢がわかればロボットハンドの位置と姿勢がわかるようになり、生成したＣＡＤデータの移動空間で任意の目標地点までロボットハンドを誘導移動制御することが容易となる。
【００３７】
第１１の手段は、前記第１〜第１０の手段を選択的に適用して構成した視覚情報処理装置および予めＣＡＤデータを有している視覚情報処理装置あるいはそれらの視覚情報処理装置を適用した視覚情報処理システムにおいて、画像情報処理装置は、ＣＡＤデータの探索指令信号を入力とし、その指令信号に基づきＣＡＤデータを探索する機能と、探索したＣＡＤデータの情報を出力する機能を有するようにすることである。
【００３８】
このような第１１の手段は、前記第１〜第１０の手段を選択的に適用して構成した視覚情報処理装置および予めＣＡＤデータを有している視覚情報処理装置あるいはそれらの視覚情報処理装置を適用した視覚情報処理システムにおいて、画像情報処理装置は、ＣＡＤデータの探索指令信号を入力とし、その指令信号に基づきＣＡＤデータを探索する機能と、探索したＣＡＤデータの情報を出力する機能を有するので、別のＣＰＵ等のアプリケーションシステム側で必要とする情報、例えば、目標とする対象物体のＣＡＤデータを探索させ、探索した対象物体のＣＡＤデータの情報として、その位置と姿勢の情報を探索結果として得るようにすれば、アプリケーションシステム側で、例えばロボットハンドをその対象物体を掴むような位置と姿勢に誘導制御することが可能となる。更に、ロボットハンドのＣＡＤデータを定期的に探索させ、探索したロボットハンドのＣＡＤデータの情報として、その位置と姿勢を探索結果として得るようにすれば、その情報をロボットハンドの位置と姿勢のフィードバック制御へ利用することも可能となり、ロボットハンドのアーム部分の撓みとかロボットハンドのベースの位置ずれ等を補正した誘導制御を行なうことが可能となる。また、目標とする対象物体のＣＡＤデータの探索も定期的に行なうことにより、目標とする対象物体が移動している場合でも、リアルタイムに目標物体の位置と姿勢の情報が得られるので、アプリケーションシステムは移動する目標物体に対してもロボットハンドをアクセスさせて該目標物体を掴む動作を誘導制御することが可能となる。
【００３９】
第１２の手段は, 前記第１１の手段を有する視覚情報処理装置において、３次元ＣＡＤデータを生成する範囲を指定する指令情報の入力インターフェースを設けたことである。
【００４０】
この第１２の手段では, 前記第１１の手段を有する視覚情報処理装置において、３次元ＣＡＤデータを生成する範囲を指定する指令情報の入力インターフェースを設けるので、外部から範囲を指定する指令情報を入力することにより容易に３次元ＣＡＤデータを生成する範囲を必要な範囲のみに限定できる。従って、処理速度の高速化を図ることができるようになる。処理速度は抽出される特徴点（線分）の量にもよるが、処理範囲が入力画像全体の場合が最も処理時間はかかる。一方，処理範囲を限定、例えば、赤い動く物体の周囲のみを処理範囲に指定すれば、処理の範囲は画像全体の処理範囲より小さくできるので、その分処理の周期は高速化できるようになる。処理が高速化すれば撮像装置の移動速度が速くなってもより追従しやすくなる。範囲を指定するコマンドとしては、複数用意しておいて良い。例えば、２次元画像情報上で差分で変化の生じた部位を抽出してその周辺のみを処理の対象範囲とするとか、２次元画像情報上で動いているもの、あるいは具体的に早く動くもの、ゆっくり動くものを移動速度とともに指定して、検出した物体の周辺のみを処理の範囲とするとか、２次元画像情報上で反射で光るものを検出した場合にその周辺を処理の範囲とするとか、形、色、大きさを具体的に指定して該当する物体を２次元画像情報上で検出し、あるいは３次元ＣＡＤデータに変換した３次元ＣＡＤデータ上で検出するようにしてその周辺を処理の範囲とするとか、例えば指向性マイクで音などの概略方向が検出できる場合には、処理の範囲を直接座標で指定して指定された座標エリア内を処理の対象とできるようなコマンドを用意して良い。
【００４１】
第１３の手段は、前記第１１，１２の手段を選択的に適用して構成した視覚情報処理装置において、ＣＡＤデータの探索指令情報に２次元の探索指令と３次元の探索指令の少なくとも２種類の探索指令を設けたことである。
【００４２】
この第１３の手段では、前記第１１，１２の手段を選択的に適用して構成した視覚情報処理装置において、ＣＡＤデータの探索指令情報にマッチング精度は不十分でも処理速度の速い２次元の探索指令と処理の時間はかかるがマッチング精度の高い３次元の探索指令の少なくとも２種類の探索指令を設けたので、最初に２次元の探索指令で高速に探索候補を絞り込んでその後に３次元の探索指令でより精度良くマッチングを行い探索候補を絞り込むこが容易にできるようになるので、より高速に探索処理を行うことができるようになる。
【００４３】
第１４の手段は、前記第１１〜１３の手段の探索機能は、探索する２次元あるいは３次元のＣＡＤデータの対応点候補から引いた他の特徴点までのベクトルの類似度あるいはベクトルの類似度とベクトル先端の特徴点の有する色情報の類似度を用い類似度が高いものを対応点として絞り込む方法と組み合わせるようにすることである。
【００４４】
このような第１４の手段では、前記第１１〜１３の手段の探索機能で、探索する２次元あるいは３次元のＣＡＤデータの対応点候補から引いた他の特徴点までのベクトルの類似度あるいはベクトルの類似度（同じ方向で同じ長さのベクトルの本数の大小）とベクトル先端の特徴点の有する色情報の類似度（上下左右あるいは前後上下左右の色情報の一致度）を用い類似度が高いものを対応点として絞り込む方法と組み合わせるようにするので、２次元あるいは３次元のＣＡＤデータでのマッチング処理を高速に行うことが可能となる。ここで、従来の線画どおしでマッチングする場合などは、ポテンシャルマッチング法などを用いて高速に行う手段はあるが、１回のマッチング計算に多くの時間を必要とする。ここでのベクトルマッチングは、ベクトルは方向と距離の２つの数値を比較することでベクトルの類似度は求められるので、その他のマッチング手法の計算量と比較して簡単になる。また、ベクトルの方向と距離の他にベクトル先端の特徴点の色情報の類似度を比較することで、よりマッチング精度を上げることができる。また、特徴点１点の周辺の色情報のみであり、１点の対応点候補から引くベクトルの本数が数十から数百本になったとしても計算量はより少なくできるので、正確なマッチングをより早く容易に行うことができるようになる。
【００４５】
第１５の手段は、前記第１１〜１４の手段を選択的に適用して構成した視覚情報処理装置あるいはそれを適用したシステムにおいて、あらかじめ少なくとも３次元ＣＡＤデータの部品形状と各部品との結合条件をデータベースとして設けておき、探索時に当該データベースの情報より部品の結合条件の所定のルールに従って部品の結合条件を変えて探索ＣＡＤデータを生成して探索するようにしたことである。
【００４６】
この第１５の手段では、前記第１１〜１４の手段を選択的に適用して構成した視覚情報処理装置あるいはそれを適用したシステムにおいて、あらかじめ少なくとも３次元ＣＡＤデータの部品形状と各部品との結合条件をデータベースとして設けておき、探索時に当該データベースの情報より部品の結合条件の所定のルールに従って部品の結合条件を変えて探索ＣＡＤデータを生成して探索するようにしたので、人間の手足や顔、車のドアの開閉状態、携帯電話のアンテナの出し入れ状態、パワーショベルのバックホーの動作状態などで、探索しようとしている物体の形状がいろいろな形状に変わる物体においても、動きうる部品とその動き方のすべての組み合わせ状態を変化させて、現在撮影している画像情報に写っている形状とマッチング処理ができるので、いろいろな形状をとりうる物体の探索も容易に実現できるようになる。ここで、動く部品のすべての可動状態の組み合わせを微小量の可動変化で行うと組み合わせ数が多くなることから、大まかな動きで代表的な変形形状でマッチング探索を行い、候補を絞り込んだ後に可動部を微小量づつ変化させてよりマッチング精度を上げて更に候補を絞り込むようにして良い。あらかじめあらゆる部品の可動状態の参照モデルを用意しておく方法もあるが、可動状態を細かく変化させて多くの種類を用意しようとするとデータ量が多くなるが、マッチング時に生成するようにすることによってデータベースのデータ量を少なくでき、かつ多くの細かい可動状態の参照モデルによるマッチングを行うことができるようになる。また、部品の可動状態をいろいろと変えながらマッチング処理を行ってマッチング度が最も高くなる可動状態を探索することによって、探索対象物体の可動部の状態を特定することも可能となる。例えば、ドアの開閉度合いとか、人の顔であれば、口の開きぐあいなども探索処理の結果得ることが可能となる。
【００４７】
第１６の手段は、前記第１１〜１５の手段を選択的に適用して構成した視覚情報処理装置あるいはそれを適用したシステムにおいて、探索した物体に対する判断機能とその判断機能を使用するための指令情報を入力するインターフェースと判断結果の情報を出力するインターフェースを設けたことである。
【００４８】
このような第１６の手段では、前記第１１〜１５の手段を選択的に適用して構成した視覚情報処理装置あるいはそれを適用したシステムにおいて、探索した物体に対する判断機能とその判断機能を使用するための指令情報を入力するインターフェースと判断結果の情報を出力するインターフェースを設けているので、探索指令を出して探索結果を取得して探索結果を判定して再度探索指令を出して再探索させるという繰り返しの処理を視覚情報処理装置の中で行えるようにするので目的に合致する探索処理をより高速に行うことができるようになる。
【００４９】
第１７の手段は、移動検査装置において、少なくとも撮像装置と撮像装置からの画像情報を処理して３次元ＣＡＤデータを生成するとともに撮像装置の位置を求める機能を有する視覚情報処理装置あるいはあらかじめ３次元ＣＡＤデータを有して移動しながら３次元ＣＡＤデータの中での撮像装置の位置を求める機能を備えた視覚情報処理装置を設けて、３次元ＣＡＤデータの中の撮像装置の位置情報より特定する検査対象部位に相当する３次元ＣＡＤデータの部位と対応付けして検査結果のデータを記録するようにしたことである。
【００５０】
この第１７の手段では、移動検査装置において、少なくとも撮像装置と撮像装置からの画像情報を処理して３次元ＣＡＤデータを生成するとともに撮像装置の位置を求める機能を有する視覚情報処理装置あるいはあらかじめ３次元ＣＡＤデータを有して移動しながら３次元ＣＡＤデータの中での撮像装置の位置を求める機能を有する視覚情報処理装置を設けて、３次元ＣＡＤデータの中の撮像装置の位置情報より特定する検査対象部位に相当する３次元ＣＡＤデータの部位と対応付けして検査結果のデータを記録するようにしたので、後で検査結果を確認するときに確認したい検査対象部位の検査結果を容易に参照できるように、検査結果データを検査対象部位と対応付けして整理する手作業も不要にすることができる。また、繰り返し同じ箇所の検査を行う場合には、同じ場所の検査結果の変化を比較するとか、変化のトレンドも容易に確認することができるようになる。検査結果には時刻データも一緒に記録するようにして良い。
【００５１】
第１８の手段は、前記第１７の手段を用いた移動検査装置において、あらかじめ移動検査装置の計画移動経路を設定する機能と、あらかじめ設定した計画移動経路と実際の移動経路の誤差を３次元ＣＡＤデータの中での撮像装置の位置情報より求める機能と、その誤差を小さくするように移動検査装置の移動制御を行うためのルールを設定する機能と、その移動制御のルールに基づき移動検査装置の移動制御を実行する制御部をもたせたことである。
【００５２】
この第１８の手段では、前記第１７の手段を用いた移動検査装置において、あらかじめ移動検査装置の計画移動経路を設定する機能と、あらかじめ設定した計画移動経路と実際の移動経路の誤差を３次元ＣＡＤデータの中での撮像装置の位置情報より求める機能と、その誤差を小さくするように移動検査装置の移動制御をおこなうためのルールを設定する機能と、その移動制御のルールに基づき移動検査装置の移動制御を実行する機能をもたせるので、移動検査装置を操作者が操作することなく自動で必要な範囲の検査を行うことができるようになる。ここで、計画移動経路と実際の移動経路の誤差を小さくするように移動検査装置の移動制御をおこなうためのルールの設定を容易にできるようにしておけば、制御性能の改善も容易に行なうことができるようになる。
【００５３】
第１９の手段は、ロボットあるいいはロボットの制御装置において、撮像装置の画像情報を入力とし入力画像を処理して移動空間に存在する物体のＣＡＤデータを生成する視覚情報処理装置を適用して、ロボットの動作する環境の３次元ＣＡＤデータを生成してＣＡＤデータの中のロボットの現在位置を特定する手段と、ロボットからの各種センサ信号よりロボットの現在の姿勢、動作状態を特定する手段と、前記ロボットの動作する環境の３次元ＣＡＤデータと前記ＣＡＤデータの中のロボットの現在位置と前記ロボットの現在の姿勢、動作状態をロボットのシミュレーションモデルへ反映する手段と、ロボットの動作をシミュレーションする手段と、そのシミュレーション手段に移動計画に基づくロボットの動作指令信号を入力する手段と、シミュレーション結果が所定の評価レベルになったか否かを判断する手段と、シミュレーション結果が所定の評価レベルに至らなかった場合にシミュレーション結果に基づきロボットへの動作指令信号を修正する手段とを設けて、所定の条件において最も評価レベルが良好なロボットへの動作指令信号をロボットへ出力するようにすることである。
【００５４】
このような第１９の手段は、ロボットあるいいはロボットの制御装置において、撮像装置の画像情報を入力とし入力画像情報を処理して移動空間に存在する物体のＣＡＤデータを生成する視覚情報処理装置を適用して、ロボットの動作する環境の３次元ＣＡＤデータを生成してＣＡＤデータの中のロボットの現在位置を特定する手段と、ロボットからの各種センサ信号よりロボットの現在の姿勢、動作状態を特定する手段と、前記ロボットの動作する環境の３次元ＣＡＤデータと前記ＣＡＤデータの中のロボットの現在位置と前記ロボットの現在の姿勢、動作状態をロボットのシミュレーションモデルへ反映する手段と、ロボットの動作をシミュレーションする手段と、そのシミュレーション手段に移動計画に基づくロボットの動作指令信号を入力する手段と、シミュレーション結果が所定の評価レベルになったか否かを判断する手段と、シミュレーション結果が所定の評価レベルに至らなかった場合にシミュレーション結果に基づきロボットへの動作指令信号を修正する手段とを設けて、所定の条件において最も評価レベルが良好なロボットへの動作指令信号をロボットへ出力するようにするので、そしてこの処理は高速にリアルタイムで行うようにするので、ロボットが飛んだり跳ねたりするダイナミックな移動制御においても、ロボットが飛んでいる途中に腕を振ったり、胴をひねったならばどのように姿勢が変わるかもシミュレーションすることができて、着地するまでに計画する姿勢にもっていくための最適な動作もシミュレーション（ここでいうシミュレーションは物体に作用する力、反力を求めて、速度、加速度、変位を求めるダイナミックなシミュレーションを意味している）で求めることができるので、ロボットを常に計画どおりに制御できる動作指令信号を出力することができ、安定にダイナミックなロボットの制御を行うことが可能となる。このような処理を行うロボットの制御装置に、少なくとも前記第１〜１８の手段で述べたような視覚情報処理装置あるいは視覚情報処理システムを適用することで、ここで行うシミュレーションに用いるロボットの現在いる環境の３次元ＣＡＤデータはアズビルトのＣＡＤデータがリアルタイムに生成され、またその中のロボットの現在位置と姿勢情報についてもリアルタイムで得ることができるので、シミュレーション結果は現在いるロボットの実際の環境に基づき適切な制御データが得られ安定にリアルタイムの制御が実現可能となる。
【００５５】
第２０の手段は、マニピュレータ，移動ロボット，文字読み取り装置，物体認識装置，計測装置，ＣＡＤデータ生成装置，ナビゲーション装置，検査装置，ピッキング装置，自律制御型ロボット，監視装置，自動車，船，飛行機などのシステムに、前記第１〜第１９の手段を選択的に適用して構成した視覚情報処理装置あるいはそれを適用した視覚情報処理システムを適用することである。
【００５６】
このような第２０の手段は、特定部位の位置決めを行なうロボットあるいはマニピュレータにおいては、その制御装置に前記第１〜第１９の手段を選択的に適用して構成した視覚情報処理装置あるいはそれを適用した視覚情報処理システムを適用するので、例えば、遠隔操作ロボットなどでは、手先の自動位置決めを行なうシステムを容易に構築することができる。具体的には、例えば、手先に撮像装置を取り付けて該撮像装置の位置と姿勢情報を得れば、その情報に基づいて手先の位置を目標とする位置へ修正制御することが可能となる。また、手先がアクセスしようとする対象物体をＣＡＤデータから探索してその対象物体の位置と姿勢情報を得るようにすれば、撮像装置と対象物体の両方の位置と姿勢が分かるので、より正確に手先を対象物体にアクセスするように誘導制御することが可能となる。また、手先に撮像装置を付けられない場合には、手先を撮影する撮像装置を別に設けることで、その撮像装置の画像情報で手先のＣＡＤデータの探索を行って手先の位置と姿勢を直接に検出して制御に利用することも可能となる。
【００５７】
また、移動ロボットにおいては、前記第１〜第１９の手段を選択的に適用して構成した視覚情報処理装置あるいはそれを適用した視覚情報処理システムを適用しているので、移動ロボット自身の位置決め、姿勢制御を容易に行なうことができるようになる。例えば、移動ロボットに撮像装置を搭載すれば、撮像装置の位置と姿勢情報は移動ロボットの位置と姿勢の情報を示すことになるので、その情報に基づいて移動ロボットの位置や姿勢を制御することで、移動ロボットの位置決め制御，姿勢制御，誘導制御などを容易に行なうことができるようになる。水中を浮遊するＲＯＶ等に撮像装置を搭載して、この装置を適用すれば、水中深く位置していて、水面の上から水中のＲＯＶを直接見ることができなくとも、例えば、周囲環境のＣＡＤデータと撮像装置のその中での位置と姿勢を操作卓の表示装置に表示するようにすれば、水中ＲＯＶの遠隔操作を、その表示装置で位置と姿勢を確認しながら容易に行なうことができるようになる。また、ＣＡＤデータ上で任意の場所の正面に位置するように最終目標位置と姿勢を入力して自動的にその目標位置と姿勢に水中ＲＯＶがなるように制御すようにすれば、自動運転の制御システムも容易に構築することも可能となる。もちろん、飛行船や飛行機などに撮像装置を搭載して飛行ロボットの遠隔操作と自動制御に適用することもできる。
【００５８】
また、文字読み取り装置では、前記第１〜第１９の手段を選択的に適用して構成した視覚情報処理装置あるいはそれを適用した視覚情報処理システムを適用するので、例えば、３次元的に凹凸のある刻印文字などは単純に２次元の画像処理では読み取り難い文字についても３次元のＣＡＤデータのマッチング処理により所定の文字を認識し易くしたシステムを容易に構築することができる。また、時系列に変化する文字も時系列にデータを生成することができるので、例えば、電光掲示板で流れるように表示される文字とか風で揺らいでいる看板などのように予め移動パターンが分かってない移動する文字なども容易に読み取ることができるシステムを構築することが可能となる。
【００５９】
また、３次元の物体認識装置、計測装置、ＣＡＤデータ生成装置では、前記第１〜第１９の手段を選択的に適用して構成した視覚情報処理装置あるいはそれを適用した視覚情報処理システムを適用しているので、プラントなどの現場調査、車のデザイン設計、ＣＧのキャラクタなどに必要な３次元の物体認識装置、計測装置、ＣＡＤデータ生成装置等を容易に実現することが可能となる。すなわち、高精度の分解能の撮像装置を用いたシステムとしなくとも汎用的な撮像装置でも撮像装置を対象物体の近くに寄って撮影してＣＡＤデータを生成するようにすれば、近くに寄ればその分精度の良いＣＡＤデータを生成することができるので、汎用の撮像装置で撮影して得た画像情報に基づいて精度の良いＣＡＤデータを生成することができ、そのＣＡＤデータを参照できるシステムとすれば、精度の良い３Ｄ計測システムを汎用の撮像装置を用いて容易に構築することが可能となる。生成あるいは更新されたＣＡＤデータを取り出すときに、所定のＣＡＤデータのフォーマット、例えば、ＤＸＦのフォーマットなどへ変換するようにすれば、アズビルトで生成されたＣＡＤデータを、例えば、Ａｕｔｏ−ＣＡＤなどの汎用のＣＡＤシステムで容易に活用できるようになる。また、撮像装置を地面を走行する走行車と空を飛行する飛行体に搭載すれば、より正確な町並みの３次元地図を容易に作ることができるようになる。すなわち、地面を走行する走行車の視覚情報処理装置は、道路や家などを下から撮影した範囲の詳細なＣＡＤデータの生成を行なうが、家の屋根上とか地面に生えている木の上の方は下から見上げている撮影のしかたでは十分な画像情報が得ることができないので、上部のＣＡＤデータまで十分に生成することはできないが、空を飛行する飛行体から見下ろして撮影した画像情報で生成されたＣＡＤデータと統合することにより、下の方から上部まで生成漏れのない、正確な町並みの３次元地図を容易に作ることができるようになる。
【００６０】
また、ナビゲーション装置では、その処理装置に前記第１〜第１９の手段を適用して構成した視覚情報処理装置あるいはそれを適用した視覚情報処理システムを適用するので、ＧＰＳ不要のナビゲーション装置を容易に実現することが可能となる。すなわち、移動するナビゲーション装置に撮像装置を接続して、撮像装置で周囲の環境のＣＡＤデータを生成および更新しながら、撮像装置の位置と姿勢情報をリアルタイムで取り出すようにして、環境ＣＡＤデータと撮像装置の位置と姿勢情報を表示するようにすることで容易に現在位置を確認することができるシステムとなる。環境ＣＡＤデータは、予めある程度のＣＡＤデータとしてナビゲーゲーション装置にもたせておくようにしても良いし、例えば、２次元の地図情報のみをもたせておき、走行するに従って生成されていく３次元ＣＡＤデータの道や交差点付近の建物などから２次元の地図と３次元ＣＡＤデータを対応させるようにしても良い。予め作成しておくＣＡＤデータは、特徴的な建物などをオフラインで入力しておくようにしても良いし、予め自動車や飛行体で町並みのＣＡＤデータを本発明の視覚情報処理装置で生成および合成したものを使用するようにする方法でも良い。また、更に、移動してＣＡＤデータを生成している他のナビゲーション装置と生成したアズビルトのＣＡＤデータを互いに交換し合っても良いし、中央情報処理センタなどを介して複数のナビゲーション装置で生成したＣＡＤデータを授受することができるようにしても良い。撮像装置と移動体との取り付け関係が既知であり、その関係を事前に設定しておくことにより、撮像装置の位置と姿勢を表示する代わりに、移動体の位置と姿勢を表示するようにすることもできる。また、環境ＣＡＤデータの中の目的地が入力されれば、ＣＡＤデータの中の目的地と現在の移動体の位置から、どのような経路で目的地まで移動していくのが良いかなどのナビゲーションの表示は、ＧＰＳ搭載のナビゲーション装置と同じように構成して実行すれば良い。
【００６１】
また、検査装置では、前記第１〜第１９の手段を選択的に適用して構成した視覚情報処理装置あるいはそれを適用した視覚情報処理システムを適用しているので、容易に立体的な形状の検査装置を得ることができる。すなわち、例えば、マニピュレータなどの先端に撮像装置を設けて、この撮像装置でいろいろな角度から検査対象の部位を撮影するようにして検査対象のＣＡＤデータを生成するようにすれは、ＣＡＤデータは、３次元の凸凹状態を正確に再現しているので、例えば所定の場所に所定の部品がきちんと付いているかどうかなど、所定の部品の付いている位置と姿勢情報を取り出せるようにすれば、容易に自動検査装置を構築することが可能となる。撮像装置をマイクロスコープとすれば、生成された３次元のＣＡＤデータは、微細な３次元的な凸凹面になることから、例えば、ＣＤやＤＶＤなどの角度をいろいろ変えて見ないと見えない微細な傷なども容易に効率良く検査することができる検査装置を実現することできる。
【００６２】
また、ピッキング装置あるいはシステムでは、前記第１〜第１９の手段を選択的に適用して構成した視覚情報処理装置あるいはそれを適用した視覚情報処理システムを適用するので、通常の汎用の撮像装置を最低１台準備することで、容易にピッキングシステムを構築することが可能となる。すなわち、ハンドリングするマニピュレータの先端に通常の汎用的な撮像装置を取り付けて該撮像装置からの画像情報でワークＣＡＤデータを生成するように、最初にワークの周囲から撮影をすることで、ワークのアズビルトＣＡＤデータを生成することができる。ここで、撮像装置は、ワークの周囲に複数固定して画像情報の信号を切り替えるようにして該撮像装置をワーク周囲で動かした場合と同じような画像情報が得られるようにしても良い。ワークのアズビルトのＣＡＤデータが生成できた後には、ワークの中の一つの部品の形状を予め探索用ＣＡＤデータとして登録しておき、生成された部品が沢山積み上げられたワークのＣＡＤデータの中から一つ一つの部品の位置と姿勢情報を探索機能によって求めて一番外側にある部品から順番にハンドリング用のマニピュレータでピックするように、マニピュレータの制御装置に掴む対象の部品の位置と姿勢情報を与えて該マニピュレータの制御が行なわれるようにすれば、容易にピッキングシステムを構築することができる。特にマニピュレータの先端に撮像装置を付けた場合には、撮像装置をワークに接近させて該ワークを撮影してＣＡＤデータを精度良く生成することができるので、撮像装置は、高分解の特殊な撮像装置でなく汎用の一般的な撮像装置で撮影しても精度良いＣＡＤデータを生成することができる。ピッキングで部品を取り除いて部品の積み上げられたワークの形状が変わっても、ワークのＣＡＤデータが更新されるので、常にそのときの状態に応じてピッキング制御に対応することができる。
【００６３】
また、自律制御型ロボットでは、前記第１〜第１９の手段を適用して構成した視覚情報処理装置あるいはそれを適用した視覚情報処理システムを適用するので、自律制御型ロボットを容易に構築することが可能となる。すなわち、ロボットに撮像装置を付ければ、視覚情報処理装置を適用して環境のアズビルトＣＡＤデータを容易に生成することができ、その中にある撮像装置の位置と姿勢情報やロボット自身の位置と姿勢情報も容易に得ることができる。更に、環境の中の特定のＣＡＤデータを探索することもできるので、予め探索用に準備しているＣＡＤデータの有無、有る場合にはその位置と姿勢情報を得ることができるので、それが作業対象物体であれば作業対象物体の位置と姿勢と自分自身の位置と姿勢により、ロボット自身を作業対象物体に対してどのようにでも制御することが可能となる。例えば、特定の作業対象物体を探して持って帰ってくる作業内容を実行しようとする場合には、前記ナビゲーション機能を用いてロボットをナビゲーションが計画したとおりの経路に沿って移動させて作業対象物体を探索させ、作業対象物体が見つかった場合には、それに対して所定の位置と姿勢でロボット自身を接近させて、ロボットが有しているハンドリング機能で作業対象物体を掴んで、再度、ナビゲーション機能を使ってスタート地点まで戻る制御を容易に実現することができるようになる。途中に障害物があれば、環境のＣＡＤデータは、随時、生成および更新されているので、この障害物を障害物と認識することも容易に行なうことができるので、予め障害物を発見した場合の対処方法として、例えば障害物を避けて回避経路を探して進むプログラムを用意しておけば、途中に障害物があっても目的とする作業を計画どおりに自律的に実行させることが可能となる。ここで自律制御型ロボットと称するものは、自動車，無人搬送車，マニピュレータ，人間型ロボットの何れもでも良いが、ロボット自身が判断して動作制御する機能を有するロボットのことである。自律制御型ロボットは、基本的には、操作者の指令に従うようにプログラムして良いが、例えば、ペットロボットなどのような場合には、充電が必要な状態の場合には充電器へ向かって充電することを優先するようにプログラムし、必ずしも指令に従わないようにしても良い。また、番犬ロボットに適用する場合には、周囲の人物の不審な服装や不審な動きを認識して、不審者に対しては不審者を追いかけるようにプログラムしておくようなシステムの構築も容易に実現することが可能となる。
【００６４】
また、監視装置では前記第１〜第１９の手段を適用して構成した視覚情報処理装置あるいはそれを適用した視覚情報処理システムを適用するので、監視対象物を認識して、監視対象物ごとに必要な監視を容易に行わせることができる。例えば、赤ん坊の形状をあらかじめ登録しておけば、登録されている赤ん坊を探索したり、赤ん坊の位置を検出でき、赤ん坊が移動してもトラッキングしながら継続して赤ん坊を撮影する制御も容易にできるので、更に赤ん坊の泣いている表情、笑っている表情などを登録しておき、現在の表情がどの表情に近いかを検出することで、赤ん坊が笑っているか、泣いているかなどの状況も自動的に認識できるので、あらかじめ泣いたらばアラームで親に知らせるように設定しておけば、赤ん坊が泣いたら親に自動的に知らせるような監視システムも容易に構築することが可能となる。ここでは赤ん坊の表情の監視を例にとって説明したが、自然の状態、機器の運転状態、プラント状態、不審者の侵入監視など、ＣＡＤデータで形状を探索、マッチングさせることで、また、音声や温度センサ等他のセンサ情報とも組み合わせるようにしていろいろな監視システムを容易に実現可能となる。
【００６５】
また、自動車、船、飛行機などのシステムでは、前記第１〜第１９の手段を適用して構成した視覚情報処理装置あるいはそれを適用した視覚情報処理システムを適用するので、搭載した撮像装置で周囲環境のアズビルトＣＡＤデータを生成できるようになり、また、撮像装置の現在位置と現在の姿勢も、周囲環境のアズビルトＣＡＤデータを生成するときの３Ｄ計測、トラッキング処理を行う中で計算されるので、撮像装置を取り付けている自動車、船、飛行機などの移動する乗り物の位置と方向が検出されるので、らかじめ目的の移動ルートが設定されていれば、目的の移動ルートから現在位置のずれを計算して、自動車、船、飛行機などの移動する乗り物の位置と方向を目的の移動ルートに一致するように修正する制御を自動的に行うことができる、また、この時に移動する周囲、前方の人や車、船、飛行機、その他の物体もあらかじめ登録しておくことにより、近くにいる物体が何かが検出できるので、また、検出された物体に応じて、それを避けて迂回制御するか、止まるか、そのまま進むかなどの制御プログラムもあらかじめ用意しておけば、検出した物体に応じた適切な移動経路の修正，変更もしながら、目的とする移動ルートに合わせるように自動車、船、飛行機などの移動する乗り物を自動で運転制御させることも容易に実現可能となる。
【００６６】
第２１の手段は、１台あるいは複数の端末から送られてくる情報をセンタで統括監視する監視サービス提供システムにおいて、ユーザからのリクエストによりユーザを探索し、監視中はユーザを追跡して、ユーザおよびユーザの周辺を連続して監視するようにすることである。
【００６７】
このような第２１の手段は、１台あるいは複数の端末から送られてくる情報をセンタで統括監視する監視サービス提供システムにおいて、ユーザからのリクエストによりユーザを探索し、監視中はユーザを追跡して、ユーザおよびユーザの周辺を連続して監視するようにしているので、ユーザの安全を保証する監視サービスシステムを容易に構築することが可能となる。ここで、追跡は、手動装置で行っても良いし、画像処理等で自動追尾を行なうようにしても良い。また、自律制御型ロボットのユーザがロボットの監視用に本サービスを利用することでもできる。画像は、監視中、録画されるようにして後で参照できるようにしておくと良い。また、監視カメラなどが設置されていない場所や設置数の少ない場所を人が移動するような場合には、人が携帯用の小型カメラ付けて本サービスを受けられるようにすることもできる。また、監視サービス提供スシステムの処理装置に前記第１〜第１９の手段を選択的に適用して構成した視覚情報処理装置あるいはそれを適用した視覚情報処理システムすれば、３次元ＣＡＤデータに基づいてユーザの自動追跡が容易になる。また、周辺の状況を３次元ＣＡＤデータで見ることができるようになるので、より一層、的確に現場状況を確認することができるようになる。
【００６８】
第２２の手段は、１台あるいは複数の端末から送られてくる情報をセンタで統括監視する監視サービス提供システムにおいて、各端末には所定の期間の所定の情報を時刻と対応つけて記録しておく機能を設け、ユーザーからのリクエストにより所定の端末の所定の時刻の記録データを取り出せるようにしたことである。
【００６９】
このような第２２の手段では、１台あるいは複数の端末から送られてくる情報をセンタで統括監視する監視サービス提供システムにおいて、各端末には所定の期間の所定の情報を時刻と対応つけて記録しておく機能を設け、ユーザからのリクエストにより所定の端末の所定の時刻の記録データを取り出せるようにするので、ユーザからの監視サービス依頼が依頼されているときの監視サービス以外に監視サービスが依頼されていなかったときに事件が発生した場合においても過去の監視記録データを取り出すことから事件捜査に容易に利用できるようになるので、監視サービスを依頼しないで事件に巻き込まれたユーザに対してもサービスを提供できるようになる。
【００７０】
第２３の手段は、前記第２１，２２の手段を選択的に適用して構成した監視サービス提供システムにおいて、監視中はユーザ周辺の人に監視サービス中であることを知らせる状態表現手段を設けたことである。
【００７１】
この第２３の手段では、１台あるいは複数の端末から送られてくる情報をセンタで統括監視して、前記第２１，２２の手段を選択的に適用して構成した監視サービス提供システムにおいて、監視中はユーザ周辺の人に監視サービス中であることを知らせる状態表現手段を設けるので、不審者に襲われる前に不審者をけん制することができるようになる。
【００７２】
第２４の手段は、前記第２０〜２３の手段を選択的に適用して構成した監視サービス提供システムにおいて、監視中にユーザへ知らせる状況が発生した場合にはユーザあるいはユーザとその周辺の人にその情報を提供する手段を設けたことである。
【００７３】
この第２４の手段では、前記第２０〜２３の手段を選択的に適用して構成した監視サービス提供システムにおいて、監視中にユーザへ知らせる状況が発生した場合にはユーザあるいはユーザとその周辺の人にその情報を提供する手段を設けるので、不審者に襲われる前にユーザあるいはその周辺の人にその情報を知らせることができるので事件を未然に防ぐことができるようになる。
【００７４】
第２５の手段は、センサ情報を取得するための端末装置において、あらかじめ複数箇所にセンサの設置ポートを設けておき、端末を組み立てるときに１セットあるいは複数セットのセンサを所定の個所の設置ポートに接続できる構成としたことである。
【００７５】
この第２５の手段では、センサ情報を取得するための端末装置において、あらかじめ複数箇所にセンサの設置ポートを設けておき、端末を組み立てるときに１セットあるいは複数セットのセンサを所定の個所の設置ポートに接続できる構成とするので、センサを設置する場所に応じて必要な方向にのみセンサを組み込むことができるので必要最小限のセンサで必要な端末装置を組み立てることができるようになる。
【発明の効果】
【００７６】
本発明によれば、アズビルト３Ｄ−ＣＡＤデータをリアルタイムで自動生成可能とし、また、ＣＡＤデータの探索機能と組み合わせて、ロボット等の各種自動機械の視覚誘導制御装置として、また、ナビゲーションシステム、移動検査装置、監視サービスシステムなどとして適用可能な視覚情報処理装置およびそのシステムを提供することができる。
【発明を実施するための最良の形態】
【００７７】
本発明は、移動可能な撮像装置で物体を撮影して得た画像情報を入力して前記物体のＣＡＤデータを生成する画像情報処理装置と、生成したＣＡＤデータを記憶する記憶装置を備えた視覚情報処理装置において、前記画像情報処理装置には、生成した新生ＣＡＤデータが既に生成されている既成ＣＡＤデータの更新対象となるかどうかを判別する更新対象判別処理機能と、更新対象となる既成ＣＡＤデータと新生ＣＡＤデータの精度を比較するＣＡＤデータ精度比較処理機能と、新生ＣＡＤデータの精度が更新対象となる既成ＣＡＤデータの精度よりも高いときには該既成ＣＡＤデータを新生ＣＡＤデータで更新するＣＡＤデータ更新処理機能を設け、
新生ＣＡＤデータを生成する機能は、同時刻に取り込んだ複数の撮像装置の画像情報内の特徴点の対応付けを画像情報の特徴部位から行いステレオ計測して、ステレオ計測された点の中で安定な少なくとも３点をトラッキング追従させることにより撮像装置の移動による画像情報内の対応点を関係付けするようにして３次元の座標データを求める方法を実行することによって実現するように構成する。
【実施例１】
【００７８】
図１は、本発明の視覚情報処理装置における第１の手段の基本構成を示すブロック図である。
【００７９】
画像情報処理装置１００は、撮像装置１０によって得た画像情報を直に／または記録媒体を介して間接的に入力してＣＡＤデータを生成し、生成したＣＡＤデータを記憶装置２００に記憶させる。
【００８０】
撮像装置１０は、移動するＴＶカメラのような装置であり、ＣＡＤデータ化するあらゆる物体をいろいろな角度から撮影して画像情報を生成する。
【００８１】
画像情報処理装置１００は、撮像装置１０が撮影して生成した画像情報を直に／または間接的に入力して該画像情報に含まれるあらゆる物体の３次元ＣＤＡデータを生成して記憶装置２００に記憶させる。また、この画像情報処理装置１００は、必要に応じて、記憶装置２００に記憶している既成ＣＡＤデータを読み込み、新たに生成した新生ＣＡＤデータと精度を比較し、新生ＣＡＤデータの精度が既成ＣＡＤデータよりも高いときには記憶装置２００に記憶している既成ＣＡＤデータを新生ＣＡＤデータで更新する。撮像装置１０は、環境を自由に動き回ることができるので、環境にある物体に近寄ることや離れることもできる。撮像装置１０が対象物体に近くなれば精度良く物体を撮影することができるので、例えば、遠くでは１本の線に見えていた部分が近くに寄るとか、見る角度が変わることによって２本に見えることがあるので、画像情報処理装置１００は、先に生成した既成ＣＡＤデータをより詳細になるように、また、先に誤認識して生成した部分を修正するように更新するＣＡＤデータ更新機能を有する。
【００８２】
これによって、撮像装置１０をいろいろと動かして物体を詳細に撮影すればするほどより正確なＣＡＤデータを構築することができるようになる。また、いろいろな位置に動き回ることができる撮像装置１０であるので、物体の裏面も下面も上面も撮影して画像情報を生成することができるので、精度良いアズビルトのＣＡＤデータを容易に生成することができるようになる。
【００８３】
図２は、本発明の視覚情報処理装置における第１の手段の基本構成の他の例を示すブロック図である。
【００８４】
画像情報処理装置１００は、第１の撮像装置１０と第２の撮像装置２０によって撮影して得た２つの画像情報を直接または記録媒体を介在させて間接的に入力する。第１の撮像装置１０と第２の撮像装置２０は、ステレオ計測を行なうことができるように、所定の間隔をおいて固定する。この構成であれば、画像情報処理装置１００は、２台の撮像装置１０，２０から入力する２つの画像情報を用いてステレオ計測で物体までの距離情報を計測しながらＣＡＤデータを生成することが可能となる。その他は、図１に示した視覚情報処理装置の構成と同じ構成である。
【００８５】
次に、画像情報処理装置１００の内部構成について説明する。画像情報処理装置１００は、基本的には、演算処理装置と情報（演算）処理プログラムによって構成する。ここで、第１の手段は、図１に示すように単眼の撮像装置１０を使用して構成する場合であり、第１の手段の他の形態の構成段は、図２に示すように複眼（ステレオ）の撮像装置１０，２０を使用して構成する場合であるが、画像情報処理装置１００の基本的な情報処理の流れは同じになるので、ここでは、まず、単眼の場合の基本的な処理の流れを説明した後に、図３〜図８を用いて、複眼（ステレオ）の場合の処理を説明する。単眼の場合の処理は、複眼（ステレオ）でないとできない処理を省いたような処理となる。
【００８６】
単眼の場合の基本的な処理の流れでは、処理をスタートすると、撮像装置１０によって得た画像情報を取り込み、微分処理やノイズ除去などの処理を行い、線分を抽出して、例えば、その線分の始点と終点をトラッキングなどで追跡することにより、複数の違った視点から撮影した複数枚の画像情報間で始点と終点のように対応する点の明確な画像情報が得られるので、写真計測法でそれらの点の３次元座標を計算する。そして、その３次元の始点と終点を結ぶ線分を３次元のＣＡＤデータとして定義し、同じように複数の線分について定義していくことにより、空間にある物体のいろいろな部分の線分のＣＡＤデータを生成する。ここで、更に、撮像装置１０を移動させて対象物体に近寄せれば、撮像装置１０は対象物体をより大きく撮像することができるので、分解能、すなわち、精度が良くなる。それで引き続きＣＡＤデータの生成処理を繰り返して、以前に１本に見えていた線が２本に見えるようになったならば（ＣＡＤデータ更新対象判別機能およびＣＡＤデータ精度処理機能）、既成のＣＡＤデータにおける１本の線分を２本の線分に更新する（ＣＡＤデータ更新処理機能）。
【００８７】
このような機能により、撮像装置１０を移動させて対象物体をより詳しく観察（撮影）すればするほど、より精度の良いＣＡＤデータに置き換えていくことができる。
【００８８】
このようにすることで、トラッキングの途中で線分の一方の端点が見えなくなってしまって、所定の枚数の画像情報の中で対応点がとれない点が生じるとしても、それはそれでその点はまだ処理をしないで対応点のとれた十分な枚数が揃った点のみを処理して、それらの点で３次元のＣＡＤデータを生成していく処理を繰り返せば、撮像装置１０は移動を継続しているので、ＣＡＤデータの更新処理機能と組み合わせることにより、徐々に計測される点も増えてＣＡＤデータも増え、また、より詳しく更新されながらＣＡＤデータがより正確なものになっていく。
【００８９】
ここで、１度、２本に見えた線を２本の線分のＣＡＤデータにした後に、再度、撮像装置１０が物体から遠ざかって遠くから撮影するようになった場合には、再度、１本の線分に戻すような更新処理の仕方をしても良いが、１度、２本に見えるようになったものは、その後に１本になっても、２本が１本に見えているだけということで、ＣＡＤデータを１本には更新しない処理方法とすることが、ＣＡＤデータをより正確に作成するという目的の場合には適切である。この場合、例えば、３次元の座標を計算する場合のそのときのその計算結果の精度に関する情報を一緒に記憶しておくようにして、再度、同じ場所の同じあたりの点（先に計算されている点を中心に所定半径の球を考えてその中に入る点とかとして同じ場所か否かを判別しても良い。このとき、想定する半径は先に計算されている点の精度に応じて精度が良ければ小さく、精度が悪ければ大きく設定するようにしても良い。）が求められた場合には、今回求めた精度と前回求めた精度を比較して、精度の高い方を残すようにする処理方法にすると良い。
【００９０】
ＣＡＤデータの更新の概念は、別途、図面を参照して詳細に説明する。ここでは、更新する処理機能を設けることによって、従来、難しいとされていた対応点を確実に追跡する問題を完全に解決する手段を適用しなくとも、そのときそのときに生成できる点のみや生成できる線分のみを生成して、より、精度良く生成された場合には置き換えていく、すなわち、更新していくことにより、撮像装置１０を必要な精度のＣＡＤデータが十分に得られるように十分に移動することにより、使用目的に十分に対応することができる精度のＣＡＤデータを得ることができるようになる。
【００９１】
次に、図３〜図８を用いて、複眼（ステレオ）の場合の処理を説明する。複眼（ステレオ）の場合には、ステレオによる３次元の計測と、撮像装置１０，２０を移動させることによって、単眼の場合と同じように写真計測と組み合わせた場合の実施の形態を説明する。３次元（３Ｄ）座標を計測する手段、トラッキングの手段、何を特徴点としてトラッキングさせるかとか、ＣＡＤデータは３次元データのみ生成するようにするとか、２次元の各画像情報ベースで２次元のＣＡＤデータも併用するなどＣＡＤデータの生成の仕方にもいろいろ考えられるので、処理速度とか、メモリ容量を小さくするとか、その目的にあった適切な手法を適用しても良い。このように本発明の適用の仕方はいろいろあるが、ここではあくまでも、一実施の形態として説明する。
【００９２】
図３は、第１の手段を実現する画像情報処理装置１００における処理の基本的な流れを示すフローチャートである。
【００９３】
スタート１００ａは、電源ＯＮで処理がスタートするようにしても良いし、スタート釦などでスタートさせるようにしても良いが、処理の開始の部分である。スタート１００ａから処理が始まると、処理の流れとしては、まず、撮像装置１０，２０によって得た画像情報の取り込み処理１００ｂを行なう。取り込んだ画像情報は、記憶装置２００へ生画像情報として記憶しても良いし、画像情報処理装置１００内の画像専用メモリに記憶するようにしても良いが、次の処理に使えるようにしておくことが必要である。
【００９４】
次に、取り込んだ画像情報の微分処理やノイズ除去などの処理（１）１００ｃを行なう。
【００９５】
ここで、この処理（１）１００ｃの具体例を図４を参照して説明する。画像情報はステレオであるので２枚分ある。左の生画像情報（生画像）１０１ａに対して微分処理などを行なうことによって、処理画像情報１０１ｃのような線画像情報（線画像）を生成する。この処理は、微分処理でなくても良く、輪郭を抽出する処理を行なえば同じ結果が得られる。右の生画像情報（生画像）１０１ｂも同様に処理することにより、処理画像情報１０１ｄのような線画像情報（線画像）
に変換する。ここで、重要なことは、線分の始点，終点などをトラッキングで追従したりするので、照明の状態が少し変わったり、撮像装置１０，２０の視点が少し変わった程度で抽出される線分の長さとかが極端に変化しないような安定な処理結果が得られるように、微分処理を行なうパラメータとか、ノイズ除去のパラメータ、手法などを考慮することである。また、線分の端点が他の線分と接しているか否かもある閾値を用いて判定するような処理を行い、照明の条件などで線分が離れた状態で抽出されたような場合でもそれを付けるような補正をするようにすることが望ましい。但し、他の線分と接していると見做せない線分は、見做せる線分が抽出されるまで、そのままにする。何れも、撮像装置１０，２０の視点が多少変わっても同じように抽出されるようにするのが良い。
【００９６】
次の処理（２）１００ｄでは、線分にナンバリング処理をしたり、ステレオの場合には、左右の線分の対応付けを行なう。
【００９７】
ここで、この処理（２）１００ｄの詳細を図５を参照して説明する。抽出した線画像情報（線画像）の各線分に名前を付けて管理する。線理画像情報（線画像）１０２ａ，１０２ｂには、直方体の輪郭が各々抽出されている。この直方体を構成する各線分にＬ１からＬ９までの名前を付けて管理できるようにナンバリングを行なう。ナンバリングした各線分の線画像情報１０２ａ，１０２ｂ上での座標で、その始点，終点，線種，曲線の場合には該曲線の関数などを２次元画像データベースとして内部メモリまたは記憶装置２００へ記憶させて登録する。ここで、この２次元画像データベースの簡単なイメージを下記する。
【００９８】
【表１】
2006003263.tif 000003
これらのデータは、撮像装置１０，２０が移動して撮影シーンが変わったならば、シーン（２），（３）…と増やしていく。
【００９９】
左右の撮像装置１０，２０は、人の左右の目と同じ程度に近くに離れた状態に設置することにより、左右の画像情報は少しずれてはいるがほとんど似た画像情報となる（左右の相関性は非常に良い）ので、それを利用して左右の画像データの各々対応する線分や点の対応付けを行なう。対象物体が目前にあって左右の画像情報が極端に違う場合の処理は、部分的なマッチングと十分に同じと判断できる部分の点のみを対応付ける。対応がとれなかった点は、後に撮像装置１０，２０が移動した場合の時系列の画像情報で写真計測から求めれば良いので、ここで１００％の対応とれないからと言って処理ができなくなるものではない。求めた対応付けの関係は、左右の２次元画面データベースにも登録しておく。例えば、上記の例のように線分名称を同じにすることでも良い。線分名称をメモリのレコードＮｏ．として定義しても良いし、左右のデータを記憶装置２００内の物理的に別々のメモリへ記憶させて登録するようにしても良い。始点，終点の座標は、ここでは、画像メモリ上の番地になるので整数で良い。線種が直線の場合には、フィッティング関数の係数はなしで良い。曲線が２次曲線であれば、Ｙ＝ａＸ２＋ｂＸ＋ｃという関数でフィッティングさせる場合には、係数はａ，ｂ，ｃの３つとなる。線種が円や楕円の場合には、その関数に必要な係数を必要な数だけ登録する。点は、短い線分として始点と終点が一致している線分として定義して良い。
【０１００】
次の処理（３）１００ｅでは、ステレオ処理ができる複眼の場合には、この時点で各線分を３次元のデータに変換して３次元形状モデルを生成する。
【０１０１】
ここで、処理（３）１００ｅの詳細を図６を参照して説明する。既に処理（２）の段階において左右で対応の取れた線分データがＬ１〜Ｌ９として得られているので、複眼のステレオ計測にて、各線分の始点，終点の座標は、３次元空間での座標に計算して求めることができる。その３次元の座標を計算した結果に基づいて、この処理（３）では、３次元データベースを生成する。
【０１０２】
この３次元データベースの概念は、直方体の線分Ｌ１〜Ｌ９を３次元の線分データに変換することができ、また、各線分が繋がって閉ループを作れば、面Ｓ１，Ｓ２，Ｓ３を定義することができる形態である。また、何もない状態では、最初の平面（無限遠の無限平面と考えても良い。）Ｓ０を定義することができる。
【０１０３】
具体的には、左右の対応付けされた画像情報から３次元の線分Ｌ１〜Ｌ９の始点，終点，線種，線の関数を登録する。次に、３次元の線分で閉ループを形成している３次元の面Ｓ１〜Ｓ３の構成線分，面の種類，面の関数を登録する。背景は、取り敢えず、面Ｓ０として登録する（最初は、未だ背景面は定まらないので、データの中味はない状態である。）。
【０１０４】
この３次元データベースの簡単なイメージを下記する。
【０１０５】
【表２】
2006003263.tif 000004
上記の面データは、単純な平面データのみであるので、面を構成する線分名称をデータとしてもつだけでも良い。
【０１０６】
次の処理（４）１００ｆにおいて、必要であれば、見えない部分のデータを生成する。これは、総てのデータを円筒，球，円錐，直方体などの基本図形と見做してＣＡＤデータを生成する場合には有効である。但し、必ずしもそうする必要はない。
【０１０７】
この処理（４）１００ｆの詳細を図７を参照して説明する。
【０１０８】
最初の撮影で得た画像情報に基づいて生成した３次元の平面群から基本図形の一部を構成していると推定することができる面群を探索する。見つからないときには、この処理をパスする。平面Ｓ１，Ｓ２，Ｓ３が基本図形の一部を構成していると推定したときには、その座標データに基づいて、基本図形に置き換えると、どの基本図形に一番近いかを判別する。そして、平面Ｓ１，Ｓ２，Ｓ３が直方体の一部であると判別すれば、見えてない面を推定平面ＳＳ４，ＳＳ５，ＳＳ６として生成する。このとき、見えていない部分の線分データも推定線分ＳＬ１０，ＳＬ１１，ＳＬ１２として生成する。更に、構成面はＳ１，Ｓ２，Ｓ３，ＳＳ４，ＳＳ５，ＳＳ６である推定ソリッドデータＳＶ１を定義する。そして、これらのデータを３次元データベースに登録する。
【０１０９】
このようにステレオ処理を併用すると、撮像装置１０，２０が動き出す前からＣＡＤデータを、一部に推定部分はあるものの、直ぐに、例えば、マニピュレータのハンドリングなどにおいて対象物体に向けてアームを移動させるための制御情報（物体検索情報）として利用できる状態にすることができる。
【０１１０】
ここで、推定データは、推定データであることが分かるように管理しておき、例えば、物体の裏側に回り込んで該裏側の部分を撮影した画像情報に基づき該裏側の部分のＣＡＤデータを生成したときには、推定ＣＡＤデータは推定でないＣＡＤデータに置き換えるようにする。
【０１１１】
以上のように、図３に示したフローチャートにおける処理（１）１００ｃ，処理（２）１００ｄ，処理（３）１００ｅ，処理（４）１００ｆで必要な部分の処理を行なうようにして２次元画面データベースと３次元データベースへの登録と、撮像装置１０，２０からの画像情報の取り込みとを繰り返しながら行なうことにより、撮像装置１０，２０が動き出せば、多くの２次元画像データ（シーン）が蓄積される。そして、処理１００ｇにおいて２次元画面データの溜り具合を監視し、ある程度溜まった段階で処理（５）１００ｈの写真計測で座標を求めるようにすれば良い。
【０１１２】
処理（５）１００ｈの詳細を図８を参照して説明する。左右の撮像装置１０，２０の何れかの生画像情報と考えて良いが、生画像情報１０５ａの物体も視点が変わると生画像情報１０５ｃ，生画像情報１０５ｅのように見え方も変わる。
【０１１３】
ここで、右側は３次元データベースに登録されているデータに基づく線画像情報の概念で、線画像情報１０５ｂ，１０５ｄ，１０５ｆのように、撮像装置１０（２０）の視点の角度によっては見えないことから推定により生成している推定線分ＳＬ１０，ＳＬ１２の線分は、画像情報１０５ｄの段階では見えないので推定のレベルであるが、画像情報１０５ｆの段階では実際に撮影された画像情報では見えるようになることから該画像情報に基づいてこれらの線分を直に生成することができるようになるので、推定線分ＳＬ１０は線分Ｌ１０へ、推定線分ＳＬ１２は線分Ｌ１２に確定することができる。また、このように違う視点から撮影した画像情報に基づく２次元画像データが増えると写真計測を適用することができるので、各線分を定義している始点や終点のＸ，Ｙ，Ｚの空間座標は、ステレオ計測で求めておいた座標値から写真計測で求める座標の方がより精度良く求められる部分は座標データを書き換えてＣＡＤデータの精度上げるように更新するようにする。このとき、３次元データベースの各座標値がステレオ計測で求められた場合にはそのときの測定精度をデータベースへ記憶させておき、新たにステレオ計測でも写真計測でも同じ点を再計算した場合には、その手法でそのときの条件で計算される３次元座標値の精度を求め、前の座標値を計算したときの精度よりも良い場合には座標値とその精度データを更新するようにする。因みに、３次元の座標計算の精度は、離れた物体については、ステレオ計測よりも写真計測の方が良い場合がある。これによって、精度が向上する場合にはＣＡＤデータを自動的に更新することができるようになる。
【０１１４】
なお、図３における処理（１）１００ｃ〜処理（４）１００ｆを繰り返す場合の処理内容を以下に補足説明する。
（１）  最初は停止している撮像装置１０，２０もそのうちに移動する。撮像装置１０，２０の位置と姿勢の変化もこの中で計算して良い。
（２）  ２次元画面データが逐次追加されるので、途中の変化の少ないデータは削除してデータ量が爆発（メモリが不足）しないようにする。
（３）  同じ画面内に新たな線分や点が生じた場合には、２次元図面データベースへ新たに登録する。
（４）  同じ画面内の同じ線分や点は、移動しても同じ線分や点として追跡管理する。動画のトラッキングとしての対応付けをこの２次元画面データベースにて管理する。
（５）  同時に左右の画像の対応点にも誤りがないかどうかを、逐次、チェックして、誤りが発見された場合には、それに関わる部分の再計算を直ぐに行い、２次元画面データベースおよび３次元データベースを修正する。
（６）  新たに新しい線分や点が生じた場合には、処理（３）１００ｅ，処理（４）１００ｆにて３次元データベースに新たなモデルを追加生成する。
（７）  ２次元画面データが蓄積されてきたならば、処理（５）１００ｈも実施して、３次元データベースに新たなモデルを追加生成する。
【０１１５】
このように撮影シーンを画像処理して３次元座標を計算するときに、撮像装置１０，２０のレンズは、実用的には、広角レンズを使用して広範囲を撮影することにより、トラッキング追従している特徴点を見失う機会を少なくすると共に、短時間で広範囲の環境のＣＡＤデータを生成したり、検索できるようにすることが望ましいが、広角レンズを使用すると撮影して得た画像情報の周縁部分に歪みが発生して正確な３Ｄ計算を行なうことができなくなることがある。従って、広角レンズを使用するときには、歪みの少ない広角レンズを使用するようにする配慮や、レンズの歪みを画像処理で補正しながら３Ｄ計算を行なうようにする配慮が必要になる。
【０１１６】
画像情報の歪みは、レンズの屈折により発生するものであり、レンズの屈折率の関係から、画像情報の歪み特性は、レンズの特性として既知となるので、レンズの歪み特性に応じた補正を画像処理の前処理の段階で行なうことにより、補正後の歪みのない画像情報に基づいた３Ｄ計算が可能となる。このような処理を高速に行なうためには、ＬＳＩ回路のようなハードウェアによって行なうようにすると良い。また、ズームレンズを使用するときには、ズームの状態によってレンズの特性（補正パラメータ）が変わるので、ズーム状態を取り込んで補正処理を行なう補正回路とすることが望ましい。
【０１１７】
図９は、ＣＡＤデータとして生成される浮遊線分の活用の概念を示している。図９において、例えば、線分Ｌ１１，Ｌ１２，Ｌ１３は、直方体の各面に付いている線であり、それらの線分データの座標データは、直方体の平面の一部に含まれる座標であり、直方体の形状を示している。また、実際に線が描かれている場合には、模様データとしてその物体の特徴を示す線分データとしても活用することが可能である。
【０１１８】
従って、輪郭線を抽出したときに生じる平面を構成しない浮遊線分は、２次元画面データベースおよび３次元データベースに登録して管理する。各線分は、何れの面に付いているかも登録して管理する。これらの浮遊線分は、面データを作成するときに、面の中の線分の座標を参照することにより該面の形状を表現することができ、また、模様や傷などを参照データとして探索する場合には、マッチングするために必要なデータとなる。また、面データも何処かの面に付いている場合には、その関係を登録して管理する。
【０１１９】
図１０は、円筒や球体へ適用した場合の概念を示している。円筒には線分Ｌ７、球体には線分Ｌ８が付いている。これらは実際の線分データとして、円筒や球体の表面形状の一部を示しているデータとなる。
【０１２０】
図１０において、線分Ｌ１，Ｌ４，Ｌ５，Ｌ７は、曲線としてデータベースに登録する。面Ｓ２，Ｓ３は、実際には曲面であるが、この段階では不明である（平面かも知れない）。面Ｓ２，Ｓ３は、視点が変わると線分Ｌ２，Ｌ３，Ｌ５の位置が変わることから、線分Ｌ２，Ｌ３，Ｌ５は、曲面の境界線であることが分かり、基本図形の特徴から円柱および球体と推定定義するか、浮遊線分Ｌ７，Ｌ８の座標から曲面関数として推定定義する。
【０１２１】
図１１は、特殊曲面のＣＡＤデータとしての定義の一例を示している。例えば、木９００の茂っている葉などは、遠くから撮影した画像情報では一枚毎の形状が見えない。その場合は、例えば、輪郭線Ｌ１が作っている特殊面Ｓ１に線分Ｌ２，Ｌ３，Ｌ４，Ｌ５，Ｌ６が付いていると見做す。各線分は、３次元の座標値をもっているので、その線分が表面に付いている特殊曲面Ｓ１の形状は、それ線分データの付いている部分に表面があると考えることが可能となる。このような特殊面の定義の概念を用いれば、皺のある布や着物の複雑な曲面とか、砂山などの表面を定義することが可能となる。
【０１２２】
具体的には、葉の茂った木９００では、輪郭線Ｌ１，Ｌ７は、はっきりと抽出することができるが、頂点などがないので形状を定義し難いことから、輪郭線Ｌ１，Ｌ７が形成している曲面Ｓ１，Ｓ２を定義して、この曲面Ｓ１，Ｓ２上に浮遊線分Ｌ２，Ｌ３，Ｌ４，Ｌ５，Ｌ６，Ｌ８，Ｌ９，Ｌ１０，Ｌ１１などが存在するとして該曲面上に定義する。風で葉が揺れたり、光の具合で浮遊線分の位置や形状が変わったり、消えたりするが、その瞬間のデータを正と見做せばそれで良い。このような大雑把な表現で良いと考える理由は、遠くの物体のデータは、精度を必要とする制御に直接利用することはない、ことにある。マニピュレータで葉を掴むようなハンドリング制御では、手先が葉に近づけば、撮像装置１０，２０も同様に葉に近づいて葉の一枚一枚の詳細な画像情報が得られることから、ＣＡＤデータも相応して詳細になって必要な精度が得られるようになるからである。
【０１２３】
ソリッドデータとしても、同様に、浮遊線分Ｌ２，Ｌ３，Ｌ４，Ｌ５，Ｌ６，Ｌ８，Ｌ９，Ｌ１０，Ｌ１１などが存在する曲面からなる物体として定義することができる。このソリッドデータは、この程度の大きさのこのような形状の木として調べるときに利用することができる。曲面は、可能であれば、浮遊線分の座標データよりそれらの点を含む曲面の関数で表現した方が処理を機械化し易い場合もある。
【０１２４】
このような特殊曲面は、布，着物，かばん，タオルなどのように皺のある複雑な曲面の物体、人の指，腕，服など、砂山，遠くの山，カーテンなどの背景のような物体においても同様な表現となる。
【０１２５】
図１２は、本発明の第１の手段においてＣＡＤデータを更新する場合の実施の形態を示したものである。
【０１２６】
（Ａ）は、物体を該物体から遠く離れて位置する撮像装置１０，２０によって撮影したときの生画像情報であり、近くへ寄って撮影すると（Ｂ）のようになる。この物体は、例えば、机のようなものである。
【０１２７】
この物体を遠くから撮影して得た生画像情報（Ａ）に基づいてＣＡＤデータを生成すると、（ａ）に示すように、線分Ｌ１〜Ｌ９からなる直方体が生成される。そこで、撮像装置１０，２０を物体の近くに寄せて撮影して得た生画像情報（Ｂ）に基づいてＣＡＤデータを生成すると、（ｂ）に示すようなデータを生成することになる。この場合には、新たな線分Ｌ１０，Ｌ１１，Ｌ１２，Ｌ１３，Ｌ１４が生成して追加されると共に線分Ｌ１〜Ｌ９の始点と終点の座標データも近くで計測しているのでより精度の良い座標データに更新される。
【０１２８】
具体的には、物体を遠くから撮影して得た生画像情報に基づいて生成される１本の輪郭線は、近づいて撮影して得た生画像情報によれば、分解能が向上することから、２本の輪郭線となることがあり、より正確な形状データとなる場合がある。
【０１２９】
ここでは、２次元画面データベースの更新で説明するが、同様に、関連する総ての３次元データベースも更新するものとする。
【０１３０】
物体から遠く離れた位置で該物体を撮影して得た生画像情報に基づいて生成した線分Ｌ１，Ｌ２，Ｌ３，Ｌ５は、それぞれ１本であるが、近寄った位置で撮影して得た生画像情報に基づいて生成した線分は、それぞれが２本になる。線分Ｌ１，Ｌ２，Ｌ３，Ｌ５は、削除しないで、一番近い線分のより正確なデータとして、新しく求められる座標値に更新する。近い線分がないときには、削除して新たに生成し直す。新たな線分Ｌ１０，Ｌ１１，Ｌ１２，Ｌ１３，Ｌ１４は、新たにナンバリングして追加登録する。
【０１３１】
このように、ＣＡＤデータの生成のみでなく更新も自動的に行なうようにすれば、移動可能な撮像装置１０，２０により撮影して得られる生画像情報に基づくＣＡＤデータの生成は、撮像装置１０，２０が移動すれば移動するほど精度が良くなる。また、最初の段階でもそれなりの精度でＣＡＤデータを生成することができるので、ロボットの制御などに早い段階からこのＣＡＤデータを利用することができるようになる。
【０１３２】
図１３は、第２の手段の実施の形態を示す概念図である。ここでは、撮像装置１０，２０が対象物である円柱状の物体（円柱）９０１の周りを回るように移動しながら撮影して得た画像情報に基づいてＣＡＤデータを生成することを考える。また、円柱９０１は、表面に「Ａ」という文字１０１Ａが描かれている物体とする。
【０１３３】
このような状態では、撮像装置１０，２０は、円柱９０１の側面のラインおよび上面あるいは下面の円板の淵が楕円に見える。しかし、それらの線は総てが輪郭線であり、そこに実際の線が存在するわけではない。そこで、３次元ＣＡＤデータを生成していくときには、円柱９０１の淵の画像情報を密に取り込みながら周囲を回って沢山の輪郭線を検出してデータを生成していくと、３次元データベース２００Ｇには、円柱９０２のようなワイヤーフレームのＣＡＤデータが生成される。
【０１３４】
また、円柱９０１の表面に描かれた文字「Ａ」を構成する線分は、そこに実際に存在する線分である実際の線である。それは、例えば、ＣＡＤデータの中では文字「Ａ」９０２Ａを構成する線分データとして生成される。このような輪郭線と実際の線は、ＣＡＤデータを利用するときに使い分けると、ＣＡＤデータを効率良く使うことができる。例えば、輪郭線の線分データは実際には存在しない線であるので、文字「Ａ」の線分データを探すような場合には邪魔になる。また、円柱という形状データを参照したい場合には、多くの輪郭線も用いることでより詳細な形状に関するデータが得られるので、データを生成する上でこれは実際の線であるということが確定した段階で実際の線と定義するようにしてＣＡＤデータを生成する。この事例の場合には、撮像装置１０，２０が移動すると、円柱９０１の側面の輪郭線は、撮像装置１０，２０が移動しても見える場所が変わらないのに対して、文字「Ａ」は、撮像装置１０，２０が移動すると見える場所が変わる。３次元のデータに変換した後に撮像装置１０，２０の移動前後における線分の位置を比較すると、移動前の輪郭線の線分は、移動後の位置には線分として見えない。しかしながら、実際の線である文字Ａは、撮像装置１０，２０が移動しても同じ場所に存在する特徴から、「Ａ」という文字を構成する線分は実際の線分であることを識別することができる。また、円柱９０１のような側面の輪郭線の場合、複眼の撮像装置１０，２０で見ている輪郭の位置は若干ずれた場所になるが、ステレオ計測でその輪郭線を生成する場合にはそれは誤差として影響するので、輪郭線というものはそういう誤差も含んでいるものであるということを区別していれば、利用するときに注意することも容易である。
【０１３５】
以下に、３次元データベースの概念の一例を示す。以下のように線種の中で区別するようにする一つの方法を示す。線分Ｌ１は、実際の線であることを示し、線分Ｌ２は、輪郭線であることを示している。
【０１３６】
【表３】
2006003263.tif 000005
次に、第２の手段の他の実施の形態を説明する。直方体の基本図形をソリッドデータＳＶ１として生成する方法を図７を参照して説明したが、撮像装置が移動し、ＣＡＤデータを更新するようにしたシステムでは、撮像装置が遠くから物体を見たときには直方体であっても、近くに寄って見たときには、例えば、サイコロのように直方体の角に丸みがある場合には、それを直方体として定義しておくことが適切ではなくなってくる。また、大きな建物を遠くから見ると直方体に見えるが、近くに寄ればドアがあり、中に入ると最初に直方体と見えていた建物は壁のような平面で囲まれた物体になる。更に、壁に近くに寄って見ると、厚みのある複数の平面の偏平な直方体となるようになることから、このようなシステムの場合には、必ずしもソリッドモデルにまで落とし込む必要はない。そこで、必要最小限のデータ構成を考えると、点と線と面まで上げられるので、必要最小限の面データまでを生成して更新していくシステムとするのが処理速度の観点などから有利である。
【０１３７】
次に、第２の手段の他の実施の形態を説明する。既に説明したデータベースは、線データを関数表現する形態と面データも関数表現するような形態であるが、面データを関数で表現することは、処理の複雑さとデータメモリ節約効率から考えると、節約の効果が少ない。そこで、少なくとも線データまでを関数表現することでデータ量を大幅に低減することを提案する。例えば、通常の環境を対象にして処理を行なうと莫大な数の線分が抽出される。それらの線分の形を、例えば、総て直線で表現しようとすると、円や複雑に曲がった形状の線分は、線分上に沢山の点を定義し、それらの点の間を直線の線分で繋いで円や曲がった形状を表現するようにしなければならず、多くの点データも必要となるので、莫大なメモリ容量が必要となる。そこで、曲線を関数で定義して、フィッティングさせる適切な係数（上記データ例のａ１、ｂ１…）で表現するようにすることによって、データ量を大幅に縮小することが可能となる。
第２の手段の他の実施の形態を説明する。この実施の形態は、生成および更新するＣＡＤデータにおける少なくとも面データに色情報をもたせるというものである。その概念を示すと以下のようになる。
【０１３８】
【表４】
2006003263.tif 000006
勿論、赤，青…という表現ではなく、色コードで微妙な中間色まで区別できるようにしても良い。このように、ＣＡＤデータに色情報があれば、赤いものを探すというような場合には赤い色情報をもつＣＡＤデータのみを探せば良いので、ＣＡＤデータを取り扱うときの効率が良くなる。また、色情報で色の変わるところを境界線の線分データとして積極的に定義すれば、より多くの形状を示す線分データも得られるし、色の分布状態をより詳細に定義することも可能となる。
【０１３９】
図１４は、色情報を用いて輪郭を抽出する概念を例示している。参照符号１１０ａは、生の画像情報とする。各メッシュの小さな枠が１画素に相当する部分である。そこに画像情報として、いろいろな色の面と線分などがあるという状況を示している。
【０１４０】
この画像データ上で２次元の画像データベースを作成することを考えると、例えば、各画素についてその周りの画素の色を自分の画素と比較しながら画面全体を処理し、色が変化する画素の部分に境界線を定義するようにすると、参照符号１１０ｂに示すような結果が得られる。それを更にシンボリックに定義すると、面データ１１０ｃ，１１０ｆ，１１０ｉは、それぞれの閉ループの中の色が定義されて面データには色情報も定義される。その他、境界部分には輪郭線データ１１０ｅや線のみの場合には面１１０ｆの中に線データ１１０ｄ、また、単独に線データ１１０ｈなども定義される。ここでの輪郭線１１０ｅは、色違いの境界線を示しているので、ペイントされた模様であれば、これは実際の線として定義して良い。ここでは画面の淵の部分には仮想点１１０ｊを定義して、面データ１１０ｉを定義することができるようにしている。これらの図の概念は、２次元の画像データベースの概念であり、２次元の画像データベースでも線分データ以外に面データを定義するやり方をとっても良いし、面データの定義は３次元データベースでのみ行なうようにしても良い。
【０１４１】
ここで、図１４の処理の手順を補足説明する。
【０１４２】
隣り合う画素の色や輝度を比較して、大きく変化している場合には輪郭と判断する。同様に周囲を探索していくと、閉ループの輪郭ができる。それを輪郭の線データ（境界なら無色）と閉ループの面データとして登録する。領域（面積）のないものは線データとして登録する。
【０１４３】
次に、第２の手段の他の実施の形態を説明する。ＣＡＤデータの例を以下に示す。
【０１４４】
【表５】
2006003263.tif 000007
ここでは、最大の明るさを１００として、背景面Ｓ０は５０の明るさ、赤い面Ｓ１は２０の明るさ、青い面Ｓ２の明るさは１００と例示している。このように定義しておくことによって、例えば、面Ｓ２が青ランプで光る面である場合には、その明るさデータ１００を見れば、その青ランプは点灯していると判断させるような使い方をすることができるようになる。ここで、ＣＡＤデータを生成するときに、撮像装置１０，２０によって得た画像情報の当該面の輝度値を参照してその情報をＣＡＤデータに登録すれば、ＣＡＤデータに明るさの情報を追加することが可能である。
【０１４５】
次に、第３の手段の実施の形態を説明する。ＣＡＤデータの例を以下に示す。
【０１４６】
【表６】
2006003263.tif 000008
以上の例では、面データＳ１，Ｓ２は、時刻13:15に生成されたデータと時刻13:20に生成されたデータの２種類が存在する部分を示している。このように、そのデータを生成した時刻データを登録しておくようにすることで、例えば、面データＳ２は、明るさが１００から２０に変わったので青のランプが消えた、ということを容易に認識することができるようになる。前の時刻に生成されたＣＡＤデータと違いのあるものは残しておくようにすれば、同じＣＡＤデータを調べることで変化の状態や履歴も認識させることが可能となる。また、このようにしてデータを追加していくとメモリ容量が足りなくなるので、例えば、重複するデータは、生成した時刻から１時間とか１０分とかの所定の時間を経過した後には自動的に消去するようにプラグラムすることで、メモリ容量が爆発することを防ぐことができる。それは、例えば、ＣＡＤデータの時刻を常に確認するようにして、所定の時間が経過したものは消去するようにすれば、自動消去処理が可能である。
【０１４７】
図１５，図１６，図１７，図１８は、第１０手段〜第１１の手段の実施の形態を示すブロック図である。
【０１４８】
図１５は、画像情報処理装置１００に別のＣＰＵ等３００を接続し、画像情報処理装置１００の中でその都度計算されている撮像装置１０，２０、すなわちカメラの位置と姿勢情報を別のＣＰＵ３００で取り出せるように構成した装置である。ここでは、例えば、カメラの位置と姿勢情報を定周期で画像情報処理装置１００から出力させることにより、ＣＰＵ３００において、その周期でカメラの位置と姿勢情報を得ることができる。このように構成することによって、ＣＰＵ３００を使用して構成するアプリケーションシステムにおいて、カメラの位置と姿勢情報を利用することができるようになる。例えば、ロボットアームの制御のシステムであれば、ロボットアームの制御をＣＰＵ３００が行なっているような場合には、カメラをロボットアームの先端に取り付けておくことによって、ＣＰＵ３００は、ロボットアームの先端の位置と姿勢情報を得ることができ、その結果を制御へ応用することができるようになる。
【０１４９】
図１６は、アプリケーションシステムのＣＰＵ３００がカメラの位置と姿勢情報を得るために該ＣＰＵ３００から画像情報処理装置１００へ指令信号を入力するように構成し、その応答としてカメラの位置と姿勢情報を画像情報処理装置１００から取得するように構成した装置である。従って、画像情報処理装置１００は、ＣＰＵ３００が必要とするときにのみカメラの位置と姿勢情報を出力してＣＰＵ３００に与えることができるようになる。
【０１５０】
図１７は、アプリケーションシステムのＣＰＵ３００から画像情報処理装置１００へＣＡＤデータの探索指令信号も入力できるように構成し、その応答として、画像情報処理装置１００が探索したＣＡＤデータの情報（形状でも良いし、位置と姿勢情報でも良い。）をＣＰＵ３００が取得できるように構成した装置である。これによって、ＣＰＵ３００側では、制御したいものの位置や姿勢情報と制御するときに必要となる相手側の位置や姿勢情報の両方を容易に得ることができるようになるので、制御にその情報を利用することができるようになる。
【０１５１】
図１８は、ＣＰＵ３００から探索指令信号だけではなく、カメラの位置と姿勢情報を出力させる指令信号の両方を出力して、画像情報処理装置１００から検索結果やカメラの位置や姿勢情報を取得するように構成した装置である。このように構成した装置では、例えば、コップなどをアームで把持するように構成するときには、カメラをアームの先端に設け、アームで把持しようとするコップのＣＡＤデータを画像情報処理装置１００に探索させて該コップの位置と姿勢情報をＣＡＤデータの探索結果で得ることができるように構成し、ロボットハンドの先端の位置と姿勢情報はカメラの位置と姿勢情報として得て制御に利用することができる。カメラの位置と姿勢情報は、ＣＡＤデータを生成するときに計算される情報であることから改めて計算処理するための別の時間を要しないので短時間に得られるメリットがある。勿論、対象のコップの位置と姿勢をＣＡＤデータで探索して、更に、ロボットハンドもハンドの形状データより探索して該ハンドの位置と姿勢情報を得るように構成することもできる。
【０１５２】
図１９は、第１０の手段〜第１１の手段をロボット制御専用の視覚情報処理装置として実施する場合の画像情報処理装置１００の処理の実施の形態を示すフローチャートである。
【０１５３】
画像情報処理装置１００の処理は、先ず、スタート１２３ａから入り、アプリケーションシステムにおけるＣＰＵ３００などからのコマンド入力処理１２３ｂを行なう。ここで、ＣＡＤデータ探索というコマンドの場合には、どのようなＣＡＤデータかという情報も入力する。
【０１５４】
次に、画像情報処理に移り、先ず、画像情報の取込処理１２３ｃを行なう。引き続き、３次元計測と３Ｄ−ＣＡＤデータの生成処理とカメラの位置と姿勢計算処理１２３ｄを行なう。そして、ＣＡＤデータの探索処理１２３ｅを行なう。
【０１５５】
そして、カメラと探索したＣＡＤデータの位置と姿勢情報をＣＰＵ３００へ出力する処理１２３ｆを実行する。
【０１５６】
その後は、コマンド入力処理１２３ｂからの繰り返し処理となるようにする。この繰り返しサイクルが数１０ｍｓｅｃとかの高速で行なわれるようにすることで、ロボット等をリアルタイムで制御するＣＰＵ３００は、ロボットの制御に利用する情報を容易に取得することができるようになる。
【０１５７】
具体的には、図１９にも示しているように、ロボットハンド部に設けたカメラ１２３ｇと環境の中にある物体の１つで、例えば、円柱１２３ｈの位置と姿勢情報がリアルタイムに分かるようになることから、円柱１２３ｈを把持するためにロボットハンドを誘導する制御などを容易に実現することが可能となる。
【０１５８】
図２０および図２１を参照して、第１１の手段の他の実施の形態を説明する。
【０１５９】
図２０は、交通信号機やビルのある街の道路を車が走っている情景であり、その中のＨＩＴＡＣＨＩビル９０４の看板を探索する場合の例を説明する。
【０１６０】
ＣＡＤデータの探索の方法としては、基本図形をもとにその基本図形に近いものを探索する方法を採用する。この場合、看板のサイズが分かっていれば、基本図形としては、所定の寸法の長方体を参照ＣＡＤデータ９０４ａとして用意し、生成されたＣＡＤデータの中からそれに近いものを探すようにする。そうすることによって、ＨＩＴＡＣＨＩビル９０４の看板を容易に探索することができる。
【０１６１】
また、図２１に示す例は、基本図形だけでは限られた形状しか探索できないことから、予め、生成されたＣＡＤデータの中から一部分を取り出しておき、それを探索用の参照ＣＡＤデータ９０４ｂとして入力するものである。この場合は、生成されたＣＡＤデータそのものであるので精度良くマッチングする部分が必ずあることから、より確実且つ正確に探索することができるようになる。また、基本図形にないどんな形状のＣＡＤデータのかたまりの一部分でも探索することができるようになる。
【０１６２】
ここで、探索データを予め読み出しておく方法としては、第１１の手段の一例であるが、例えば、任意のサイズに変更可能な直方体を生成されたＣＡＤデータの中に表示して、その直方体のエリアの中をＣＡＤデータを探索用のＣＡＤデータとして読み出す方法がある。この方法によれば、必要な部分を簡単に取り出せるようになる。そのエリア９０４Ａは、ＨＩＴＡＣＨＩビル９０４を包むような大きさで指定すれば、看板部を含む探索用ＣＡＤデータを読み出すことが可能となる。このデータで探索すれば、看板の文字データも探索するときの特徴情報になるので、より確実に目的とする探索対象を探し出すことが可能となる。勿論、いろいろな場所を読み出しておけば、必要なときに、直ぐに、その場所を探索して確認できるようなシステムも構築することができるようになる。エリアは、直方体でなくても任意の大きさに設定できる球体でも良い。球体であれば姿勢まで指定しないで済むので、操作が容易になる。
【０１６３】
また、第１１の手段で、最初に基本図形で看板を探索した後にその看板を含む大き目のエリアを探索用ＣＡＤデータとして読み出す方法である。この方法であれば、最初は基本図形だけで探索することができ、次には、看板の文字も含めたその看板の部分を探索用に利用することができるようにすることができる。勿論、基本図形でない場合も、似たような場所を探して、似たような場所の周辺を探索用ＣＡＤデータとして読み取るようにすれば、ずばりその場所を探索するのに適した探索用ＣＡＤデータを得ることができる。
【０１６４】
このように第１１の手段を用いれば、最初は基本図形程度しかなくても、徐々に似ているような場所を探して新たな探索用ＣＡＤデータにすることができるので、容易に探索用ＣＡＤデータ集を作ることも可能となる。
【０１６５】
第１１の手段で、基本図形で探索する場合に、例えば、看板の直方体のサイズが不明の場合には、縦に長い直方体を示すような概略の縦横長さの比を指定するようにしてその比に近い直方体の物体を複数探索させる手法である。この手法は、形状が同じであれば、サイズは大きいものから小さいものまで探索したい、という場合に効果的である。バルブとか配管などのように、同じ形状でいろいろなサイズがあるものなどを探索するときには便利である。また、人のような形でも子供から大人まで探索するときのように、マッチング程度をある程度許容することで、同じ探索用データをサイズフリーで指示することで大小のある程度似たものを探索することができるようになる。探索用データも大きさの数だけもっている必要がないのでメモリの節約にもなる。
【０１６６】
図２２を参照して、第１１の手段の他の実施の形態を説明する。撮像装置１０は、撮影対象の物体９０５と共に部屋９０５ａの中に入り、物体９０５を上下左右のいろいろな角度から撮影して画像情報を生成してＣＡＤデータを生成させる。この場合の撮影対象の物体９０５は花である。
【０１６７】
一般の環境にある花は、いろいろなものの陰になったりするので、花の全体形状のＣＡＤデータを生成するのは難しいが、この手法を用いることで撮影対象の物体９０５の正確なＣＡＤデータ９０５ｃを容易に得ることができるようになる。また、専用の部屋９０５ａとしてその中には他の物体が存在しないようにすれば、どのような角度から対象物体９０５を撮影しても他の物体が混入するようなことはない。部屋９０５ａの内装は、床も壁も天井も真っ白とか、青とかにしておいても良いし、また、グリッドなどのメッシュを部屋の床，壁，天井に引いておき、ＣＡＤデータ生成時にそのグリッドを利用するようにしても良い。
【０１６８】
図２３，図２４，図２５および図２６を参照して、第１１の手段の実施の形態を説明する。この図２３〜図２６は、図１９を参照して説明した基本処理における参照ＣＡＤデータの探索処理１２３ｅの一例を説明するためのものである。
【０１６９】
図２３は、探索例の条件を整理したものである。現在の撮像装置（カメラ）の画像情報（映像）には４つの直方体が写っており、そのうちの３つの直方体は３段重ねになっている。そして、ＣＡＤデータはある程度行なわれており、同じような環境のＣＡＤデータは既に生成されているものとする。具体的には、各直方体に相当するソリッドデータＳＶ１，ＳＶ２，ＳＶ３，Ｖ４が生成されており、平面Ｓ０にソリッドＳＶ１，Ｖ４が付いているデータが生成されているとする。この状態で、探索したい参照ＣＡＤデータは、２段重ねの長方体の積み木である。
【０１７０】
図２４を参照して探索処理１２３ｅにおける処理（１）の例を説明する。この処理は、探索用ＣＡＤデータ（参照ＣＡＤデータ）の特徴量を計算する処理である。特徴量とは、ＣＡＤデータによってはいろいろ考えられるが、ここでは、体積、細長比、頂点，線分，面の構成員数、凸凹の数、基本形状の数（直方体２個とか）、線分，面の特徴（曲面の場合の関数）、色情報などである。これらの計算処理は、新しい探索用ＣＡＤデータが入力されたときに１回だけ行なう。
【０１７１】
図２５を参照して探索処理１２３ｅにおける処理（２）の例を説明する。具体的には、現在見えている視野の中に入っているＣＡＤデータの中から処理（１）で抽出した特徴量と同じ特徴量を有するＣＡＤデータを探索する処理である。
【０１７２】
この例では、４つの直方体のデータがあるので、各々４つの直方体（候補１〜候補４）と、積み重なっている直方体では２つづつの組み合せが２種類（候補５と候補６）と、更に３段重ねの組み合せ（候補７）の合計７つの候補となることから、この７つの候補の特徴量と探索したい参照ＣＡＤデータの特徴量を比較すれば、候補５が最も一致するということになる。基本図形で探索できるような単純な環境であれば、基本形状が最も近似する候補のＣＡＤデータが探索結果であるので、その結果として、この候補のＣＡＤデータの中心の位置と姿勢情報を出力するようにすれば良い。これは、図１９の基本的な探索処理１２３ｅにおいて１回で全部実施するようにしても良いし、何回かに分けて実施するようにしても良い。すなわち、ＣＡＤデータの生成サイクルの１０回に１回の程度で探索結果を出力するようにしても良いし、１回毎に出力するようにしても良い。
【０１７３】
図２６は、環境が基本図形のみでない場合などに特に有効な処理方法であり、探索処理１２３ｅにおける処理（２）で最も近似する候補を１つ、場合によっては複数選択した後に参照ＣＡＤデータと候補ＣＡＤデータのパターンマッチングを行って、更に適切な候補を探索する処理（３）である。
【０１７４】
この例は、３Ｄポテンシャルマッチング法であり、最も近似する候補の最も確からしい位置，姿勢に参照ＣＡＤデータをおいて最終マッチングを行なう。そして、マッチング度が所定値以上であれば、探索対象の物体であるとして特定し、未満の場合には、否として探索を継続する。
【０１７５】
マッチング処理では、既に２次元処理で方法が確立しているパターンポテンシャルマッチング法を３次元に拡張したり、固有値空間マッチング法などを用いることによって探索速度を高速化することが可能となる。ここで、ポテンシャルマッチング法は、特開平０２−１３７０７２号公報などに記載されている２次元ポテンシャルマッチングの処理を３次元の処理に拡張する使い方をする。固有値空間マッチング法は、文献で１９９７年５月情報通信電子学会論文誌Ｄ−II  Ｖｏｌ．Ｊ８０−Ｄ−II  Ｎｏ．５  ＰＰ．１１３６−１１４３に記述されている手法などを応用する。何れの場合でも、最初に特徴量で候補を絞り込んで最終的な確定のために各種のマッチング法を用いる方法が良い。ここで用いるマッチング法は、上述のものに限定されるものではない。高速に高精度でマッチングできる手法と組み合わせて行なうようなマッチング手法でも良い。また、複数のマッチング手法を組み合わせて使用する方法でも良い。
【０１７６】
ここで、探索用ＣＡＤデータは、３次元でも良いし、２次元でも良い。２次元のＣＡＤデータとは、模様や絵や看板の文字などである。すなわち、それらは、１つの面データの中にいろいろな面データと線分データが付いているようなＣＡＤデータで与えられる。面には色情報が付いていても良い。そのような探索用ＣＡＤデータは、２次元で与えても探索する対象は３次元のＣＡＤデータの空間となるので、２次元のプレートの最もマッチングする部分を３次元空間の中から探索することになる。その場合、２次元のプレートは、向きや姿勢をいろいろな方向に変えてマッチングする場所を探索することになる。また、３次元の探索用ＣＡＤデータの場合と同じように、スケールファクタは可変にして同じプレート、すなわち模様やマークで、大きいものから小さなものまで探索できるようにすると良い。
【０１７７】
ここで、マッチング探索について補足説明する。生成される環境のＣＡＤデータや入力される探索用ＣＡＤデータは、そのデータ量を少なくするために、線データは、始点と終点と線種、線の関数パラメータなどで表現され、面データは、構成する線分の名称などで表現されるが、探索の時点では、マッチングを行なう部分に関しては、線分であれば線上の複数の点データに、面データであればその面を構成する複数の点データに変換して、点データ同士のマッチング処理、すなわち、相関をとる処理を行なうようにすれば良い。色情報をもっていた面データから置き換えられる点データには色情報ももたせて、色情報も考慮したマッチングとする。マッチング処理が終わったならば、置き換えた点データは消去可能である。その都度、点データに置き換えることで、通常もっていなければならないＣＡＤデータとしてのデータ量を少なくすることができる。
【０１７８】
また、点に置き換える場合の密度であるが、マッチング精度に応じて適切に変えるようにすると良い。基本的には、等ピッチ，等間隔で置き換えるが、複雑な形状、複雑な色模様の個所の密度を濃くし、単純な形状、単純な模様の色データの個所は粗くするようにすると良い。また、ソリッドのＣＡＤデータで管理、入出力するようにしている場合には、ソリッドデータもそのソリッド内空間に点データを一定密度で、あるいは、密と粗い部分を設けるなりして点データに置き換えて点データ同士のマッチングにすると良い。点データに置き換えることで、汎用的なマッチング処理を共通的に使用することができるようになる。なお、ここでは、点データに置き換える方法を説明したが、関数ベースでのマッチングができればそれでも良い。
【０１７９】
図２７を参照して第１１の手段の他の実施の形態を説明する。膨大で広範囲に生成したＣＡＤデータの中から参照ＣＡＤデータを探索する場合には、探索速度を高速にするために、ＣＡＤデータが生成される空間全体をブロック番地に区切り、区切番地を指定して探索範囲を絞り込むようにすると良い。
【０１８０】
図２７は、空間を同じ大きさのブロックに分断して探索する概念を示している。その中に撮像装置１０であるカメラが存在しており、カメラ１０は視野１０Ｖの範囲を撮影している状況を示している。
【０１８１】
探索する場合には、カメラ１０で見えている範囲を検索させる方法と、見えてない範囲を検索させる方法がある。勿論、ＣＡＤデータを生成している中で検索させる方法もあるし、生成されたＣＡＤデータを使ってオフラインで検索処理のみを実施する方法もある。何れの方法においても、全エリアを検索するのは大変な時間がかかるので、例えば、対象空間が日本全国であって、現在の対象エリアが東京であれば、東京のブロック番地のみを探索対象にする方法で絞り込むようにする。
【０１８２】
また、第１１の手段の他の実施の形態は、カメラ１０の向きの方向のブロックを探索するようにするものである。すなわち、カメラ１０の視野１０Ｖの中に入っているブロックを探索の対象とするものである。ここで、生成するＣＡＤデータは、生成時にブロック番地で区分けして管理するようにしていくことにより、ブロックを指定すれば対象ＣＡＤデータも自動的に絞り込めるようにすることができる。ブロックを指定して処理を行なえば、探索を効率良く行なうことができる。
【０１８３】
図２８は、第１１の手段の他の実施の形態である視覚情報処理装置のブロック図である。この視覚情報処理装置は、画像情報処理装置１００に、Ｉ／Ｆとして、別のＣＰＵ３００からの探索指令信号を入力する２つの系統と、探索結果を出力する２つの系統を設けた構成である。勿論、３つ以上でも良いし、１台のＣＰＵ３００ではなく複数台のＣＰＵ３００と接続されるように構成しても良い。
【０１８４】
このように、画像情報処理装置１００に複数のＩ／Ｆを設けることにより、画像情報処理装置１００の処理速度を上げてもＣＰＵ３００とのデータ受け渡し速度が遅くてシステムの処理能力向上が制限されるような事態となるのを回避することができる。ＣＡＤデータは、沢山の点や線分データから構成されている場合もあるし、探索によって沢山の候補データが探索され、また、それらの位置と姿勢情報以外に色とか形状の情報も読み出す場合には多くの時間がかかる。従って、画像情報処理装置１００に複数のＩ／Ｆの出入り口を設けることにより、多くのＣＡＤデータの探索処理を効率良く行なうことができるようになる。
【０１８５】
図２９および図３０を参照して、第１１の手段の他の実施の形態を説明する。
【０１８６】
図２９は、生成されたＣＡＤデータの概念を示している。実際には細かな線分や面データの集合からなるＣＡＤデータであるが、ここでは、予め探索用ＣＡＤデータがひとかたまりのものとして登録されているものとする。それらは、具体的には、机，花瓶，花，コップである。
【０１８７】
そこで、部屋の中のＣＡＤデータを生成したときに同じようなＣＡＤデータのかたまりが存在しているので、予め探索用にその物体のみで生成していたＣＡＤデータを使って探索させる。例えば、花のデータを使って探索させると花９０５を構成する線分や面データのかたまりが探索されるので、それをＩＤ＝１と定義する。ＩＤ＝１は、処理の中では花である。次に、花瓶９０６ａを探索させるとその部分のデータが探索されるので、それをＩＤ＝２と定義する。同様に、カップ９０６ｂのデータ部分はＩＤ＝３と定義し、机９０７のデータを使って探索させると机と思われる線分と面データのかたまりが探索されるので、それをＩＤ＝４と定義する。このＩＤを登録するときには、それを構成する線分や面のＣＡＤデータはグルーピングするようにする。ＩＤを定義したＣＡＤデータには、そのＩＤの代表点の位置とかたまりとしての物体の姿勢情報を登録するようにしても良い。このようにマッチングした部分をかたまりとし定義して管理しておけば、次に探索するような場合には、ＩＤを指定して探索するような使い方ができるようになり、便利である。
【０１８８】
予め用意しておいた探索用ＣＡＤデータとマッチングしなかった部分９０８のかたまりがあるとすると、そのかたまりの部分が未認識の物体ということになる。そのような場合には、応用システムは、カメラを未確認物体９０８の周囲で上下左右に動かして該未認識物体９０８を撮影してＣＡＤデータを更に精度良く生成するようにすると良い。そして、その未確認物体９０８の部分にそれまで取られていない新たなＩＤ番号を付けて管理するようにすれば、未確認物体があってもそれを良く観察して詳しいＣＡＤデータを生成して新たな物体として認識させることができるようになる。ここで、ＩＤが付けられるということは、システムがその物体をＩＤの番号で認識しているということである。
【０１８９】
ＩＤには、種類と個々の番号をもたせるようにすると良い。例えば、コップが２つある場合にはＩＤ＝（３の１）が１つ目、ＩＤ＝（３の２）が２つ目というように管理すると良い。種類と個別番号を付けて管理するということである。
【０１９０】
第１１の手段では、そのＩＤに人間の言葉を対応付けるようにしても良い。この場合のＣＡＤデータの概念を以下に示す。
【０１９１】
【表７】
2006003263.tif 000009
このように、ＩＤ＝１は、人間の言葉で「花」であることを対応させておくことにより、「花」を探索させることが可能となり、システムと人間とのＩ／Ｆを、操作（指示）し易いものに構築することができる。また、探索を行なうときに、例えば、「カップ（ＩＤ＝３）とか花瓶（ＩＤ＝２）は、机（ＩＤ＝４）の上にある場合が多い。」という知識があれば、探索時には、先ずは机（ＩＤ＝４）のＣＡＤデータの上に付いているＣＡＤデータを対象に探索するようにすることができる。このように範囲を特定して探索することで探索効率を上げることが可能となる。
【０１９２】
図３０は、知識データを入力するための実施の形態を示しており、図３０を参照して説明した探索において、未認識の物体９０８のＣＡＤデータのかたまりが生じた場合には、システムは、人間に「この物体はなんですか？」という問いを出力し、人間がそれはＩＤ＝５と定義することを入力しているときのＬＣＤの表示画面を例示している。
【０１９３】
このときに、知識データも一緒に入力するようにすると、入力漏れがなくなるシステムを構築することができる。また、知識データは、人間の言葉で入力するようにすれば、入力し易くなる。例えば、ＩＤ＝５＝「小包」と入力した後に、知識１＝「小包」は「机」の「上にある」と入力すれば、必要なデータベースが自動的に作られるようにする。先に、総てのＩＤの言葉が登録されていれば、知識データベースは、人間の言葉からＩＤ番号に置き換えてＩＤ番号を所定の場所に記憶させるようにすることができる。また、ここで、「上にある」という言葉も何か他の記号に置き換えて記憶させるようにしても良いが、「上にある」ということは、その次にくるＩＤの物体の上（空間的に高い位置）のＣＡＤデータを探索することである、ということが対応付いているように探索のプログラムが記述されていることが前提になる。
【０１９４】
まとめて探索用ＣＡＤデータを登録して各々ＩＤを登録する場合を考慮して、知識データもオフラインで予め別ファイルで製作しておき、知識データを一括してシステムに読み込ませるようにする手段であり、効率良く知識データの登録が可能となる。
【０１９５】
なお、ＣＡＤデータのデータベースの概念は、前述した実施の形態では、単純にデータをレコードＮｏ．毎に羅列するように記述しているが、実際にシステムを実現する場合には、検索し易いデータベースにして、いろいろなデータにアクセスする時間を短くして、最終的には視覚情報処理装置あるいはそのシステムの処理速度を上げてリアルタイム性を向上するように工夫するのが良い。
【０１９６】
第１１の手段の他の実施の形態を図２９を参照して説明する。元々、図２９の個々のＣＡＤデータのかたまりは、実際には、生成された線分データや面データが複雑にしかも不完全に集合したものである。また、そのデータの数も多いので、探索してマッチング度がある程度一致した場合には、その部分を基本図形あるいは基本図形の集合体で定義された基本図形で置き換える。このようにして置き換え可能な総てのＣＡＤデータを基本図形に置き換えれば、データ量は大幅に削減することが可能となる。
【０１９７】
次に、図３１を参照して第１〜３の手段および第１０，第１１の手段の他の実施の形態を説明する。この実施の形態は、本発明を実施する場合に適した視覚情報処理装置の基本的な製品形態の１つである。
【０１９８】
この実施の形態では、画像情報処理装置１００は、前述したような画像情報処理機能を実現する手段（演算処理装置）をＬＳＩ化した視覚誘導チップとして構成し、撮像装置１０，２０は、２つのＣＣＤカメラを使用し、記憶装置２００は、スマートカード，メモリスティック，ＩＣカード，ハードディスクなどのメモリを単独または組み合わせて使用し、別のＣＰＵ３００は、ロボット制御装置などのアプリケーション側のＣＰＵを使用し、拡張用として、加速度センサ３０やジャイロセンサ４０を用意する。
【０１９９】
画像情報処理装置１００である視覚誘導チップには、画像情報や指令（コマンド）や探索用のＣＡＤデータやセンサ信号などを入力する入力Ｉ／Ｆと、指令に対する応答や撮像装置１０，２０や検索ＣＡＤデータの位置や姿勢情報を出力する出力Ｉ／Ｆと、記憶装置２００を接続するメモリ用Ｉ／Ｆなどを設ける。
【０２００】
そして、この視覚誘導チップ（画像情報処理装置）１００は、アプリケーション側のＣＰＵ３００からの指令に従って、ＣＣＤカメラ（撮像装置）１０，２０から出力される生画像情報や加速度センサ３０とジャイロセンサ４０から出力されるセンサ信号を取り込んでＣＡＤデータを生成し、参照ＣＡＤデータを探索する画像情報処理を実行し、探索結果をアプリケーション側のＣＰＵ３００に報告し、生成したＣＡＤデータを記憶装置２００に記憶させる処理を実行する。
【０２０１】
ここで、画像情報処理装置１００の機能を実現する視覚誘導チップは、ＣＡＤデータ生成と更新機能のハードチップ部とＣＡＤデータの探索機能のハードチップ部を分けるようにしても良い。その場合は、記憶装置２００へのＩ／Ｆは、ＣＡＤデータ生成と更新機能のハードチップ部とＣＡＤデータ探索機能のハードチップ部の両方に設け、同時に記憶装置２００を読み書きしないように制御する。このような視覚誘導チップの構成とすれば、ＣＡＤデータ生成と更新機能のみを必要とするアプリケーションには当該ハードチップ部だけを使用すれば良く、ＣＡＤデータの探索機能が必要な場合に当該ハードチップ部を使用すれば良くなるので、合理的なアプリケーションシステムを経済的に構築することができるようになる。
【０２０２】
次に、図３２〜図４０を参照して、図３１に示した実施の形態の視覚誘導チップ（画像情報処理装置）１００が実行する具体的な画像情報処理（ＣＡＤデータの生成と更新機能）を詳細に説明する。
【０２０３】
図３２および図３３は、視覚誘導チップ１００が実行するメイン処理のフローチャートである。ここでは、アプリケーション側のＣＰＵ３００からのコマンドとして、必要最小限の最も単純な４つのコマンドを用意した場合の例で説明する。そのコマンドは、コマンド＝０が原点リセットでデータエリアをクリアするもの、コマンド＝１がカメラ位置リクエスト、コマンド＝２が探索指令、コマンド＝３がデータ登録（ファイリング）の機能を有するものとする。
【０２０４】
システムの電源投入後のリセット信号で視覚誘導チップ１００のメイン処理がスタートする。最初に処理（１）で撮像装置（カメラ）の現在の位置と姿勢データ（Ｘc,Ｙc,Ｚc,αc,βc,γc）をゼロリセットして、ワールド座標系を定義する。ワールド座標系は、ここでは、電源投入リセットスタート時のカメラ座標系をワールド座標系として定義する。そして、生成したＣＡＤデータを記憶させるメモリ２００のデータ記憶エリアをゼロクリアする。
【０２０５】
次の処理（２）では、アプリケーション側のＣＰＵ３００からのコマンド入力を読み取る。ここでは、各コマンドを０，１，２，３の４種を番号で区別するようにした。
【０２０６】
その次の処理（３）では、コマンド＝０かどうかを判定し、Ｙｅｓの場合には処理（４）のコマンド＝０に相当する処理の原点リセットを行ない、処理（５）でアプリケーション側のＣＰＵ３００へ原点リセット完了の応答を出力する処理を実行する。
【０２０７】
前記処理（３）でコマンド＝０でない場合は、処理（６）へジャンプする。この処理（６）では、コマンド＝１か否かを判別し、Ｙｅｓの場合には、処理（７）において撮像装置１０，２０の現在位置と姿勢情報をアプリケーション側のＣＰＵ３００へ出力する応答処理を実行する。
【０２０８】
処理（６）でコマンド＝１でない場合は、処理（８）へジャンプする。処理（８）では、コマンド＝３か否かを判別し、Ｙｅｓの場合には、処理（９）において、現在までに生成したＣＡＤデータをファイル名を付けてメモリ２００の生成ＣＡＤデータ記憶エリアとは別の記憶エリアに登録する。そして、処理（１０）でデータ登録完了をアプリケーション側のＣＰＵ３００へ応答出力する処理を実行する。
【０２０９】
処理（８）でコマンド＝３でない場合は、処理（１１）へジャンプする。処理（１１）は、撮像装置１０，２０からの生画像情報の取り込みである。撮像装置１０と撮像装置２０によって得た生画像情報（１），（２）を視覚誘導チップ１００へ取り込む。撮像装置２０が接続されていない場合には単眼の処理となり、接続されている場合にはステレオ処理も可能とする。
【０２１０】
次の処理（１２）では、３Ｄ座標計算，ＣＡＤデータの生成処理を行なう。この処理（１２）の詳細は、別途、図３４を参照して後述する。
【０２１１】
次の処理（１３）では、コマンド＝２か否かを判別し、Ｙｅｓの場合には、処理（１４）において３Ｄ−ＣＡＤデータの探索処理を実行する。
【０２１２】
そして、処理（１５）において、探索できたか否かを判別して、Ｙｅｓの場合には、処理（１６）で探索結果として、候補数、各候補物体の座標姿勢データ、候補と決めた時のマッチング度などをアプリケーション側のＣＰＵ３００へ応答出力する処理を実行し、処理（２）へ戻る。
【０２１３】
また、処理（１３）の判別でコマンド＝２でない場合と処理（１５）で探索できなかった場合には、そこから処理（２）へ戻る。
【０２１４】
このような処理を視覚誘導チップ１００で実行できるようにすることにより、さまざまなアプリケーションの実現が容易になる。
【０２１５】
図３４は、図３３に示した視覚誘導チップ１００のメイン処理における処理（１２）である３Ｄ座標計算，ＣＡＤデータ生成処理の詳細なフローチャートである。
【０２１６】
この処理では、処理（１）において、ステレオか単眼かの判別を行い、ステレオの場合には、処理（２）へ分岐する。
【０２１７】
処理（２）では、ステレオ視の左右の画像データで対応する特徴点を複数抽出する。
【０２１８】
処理（３）では、抽出した左右の画像データの対応する特徴点を３Ｄ座標へ変換する。
【０２１９】
そして、処理（４）において、３Ｄ−ＣＡＤデータの生成処理を行なう。ステレオ視で３Ｄ座標を計算する手法は一般的であるので、ここでは詳細な説明を省略するが、３Ｄ座標が計算された後の処理（４）の詳細は、別途、図３５〜図３８を参照して後述する。その後、単眼の場合と合流して処理（５）を実行する。
【０２２０】
処理（５）は、処理（１）の判別で単眼の場合に分岐する処理である。ステレオの場合は、処理（２）〜（４）を実行した後にこの処理（５）に合流する。この処理（５）では、取り込み画像データの特徴点あるいは特徴物体を複数抽出する。
【０２２１】
次に処理（６）において、前回の取り込み画像データの特徴点と対応付けのできた特徴点は、前回のものと同じ名前を付け、新しい特徴点は新しい名前を付けて、今回の取り込み画像データを一時記憶する。処理（５），（６）は、特徴点のトラッキング処理の部分である。ステレオの場合には、少なくとも左右の何れか一方の画像情報について処理を行えば良い。
【０２２２】
次に、処理（７）では、このトラッキングしながら蓄えた画像データが複数枚そろったか否かを識別する。
【０２２３】
処理（７）でＹｅｓの場合は、処理（８）の写真計測での３Ｄ座標計算を実行する。具体的には、対応する複数の特徴点を３Ｄ座標へ変換する。このとき、各画像を撮影したカメラの位置や姿勢情報も計算されるので、その情報も一時記憶する。最新の取り込み画像のカメラ位置と姿勢情報は、変数Ｘc,Ｙc,Ｚc,αc,βc,γcにセットする。
【０２２４】
そして、処理（９）において、３Ｄ−ＣＡＤデータ生成処理を実行しＲＥＴＵＲＮで戻る。処理（９）は、処理（４）と同じである。
【０２２５】
処理（７）の判別で複数枚の画像データがそろわない場合には、そのままＲＥＴＵＲＮで戻る。写真計測に必要な画像データ枚数は、最小２枚であるが、更に多くの枚数を用いて写真計測するようにすると良い。３Ｄ座標計算に当たっては、スタート後、最初の取り込み画像を撮影したカメラ座標系をワールド座標系として３Ｄ座標を計算する。
【０２２６】
図３５〜図３８は、図３４に示した処理における処理（４）と処理（９）の３Ｄ−ＣＡＤデータ生成処理の詳細なフローチャートである。ここでは、最も基本となる第１の手段における更新機能の詳細も説明する。
【０２２７】
この処理に入ったならば、処理（１）で３Ｄ座標に変換されたＭ（ＭＡＸ）個の特徴点Ｑ１〜ＱＭ（ＭＡＸ）が、既に生成されているＮ個のＣＡＤデータの特徴点Ｐ１〜ＰＮと既に生成されているＬ本のＣＡＤデータの線分Ｌ１〜ＬＬに対して十分に離れた位置にある特徴点か否かを判別する。そして、十分に離れている特徴点がＭ個あった場合には、そのＭ個の特徴点を既に生成されているＣＡＤデータに追加する。すなわち、Ｎ個のＣＡＤデータにＭ個の点を追加する処理を行なう。ここで、十分に離れているか否かの判別は、Ｑ点とＰ点の距離あるいはＱ点とＬ線分との最短距離が、Ｑ点が計算されたときの可能性のある最大誤差とＰ点あるいはＬ線分のＱ点に近い点（ＬＰ点）の計算されたときの可能性のある最大誤差の和を比較して、それよりも離れている場合には、その近いＰ点あるいはＬＰ点から十分に離れた新たな点であると判別するようにした。このように判別すれば、同じ特徴点を別の特徴点と誤って判別することはなくなる。ここでは、単純に可能性のある最大誤差を想定するとしたが、厳密には、発生する誤差は方向によって異なるので、方向と誤差の大きさも考慮して判別することにより、より正確な判別ができるのでそのようにすると良い。この処理（１）は、生成されたＣＡＤデータが既に生成されているＣＡＤデータの更新対象となるか否かの判別処理であり、更新対象でないＭ個の特徴点が新たに追加されたものである。残りのＭ（ＭＡＸ）−Ｍ個の特徴点が更新対象の特徴点となり、次の処理（２）以降で更新処理を行なう。
【０２２８】
処理（２）では、既存点Ｐ点や線分から十分に離れていなく接近している特徴点を改めて次の処理のためにＱ１〜ＱＭに再定義する。ここでのＭ個は、前述のＭ（ＭＡＸ）−Ｍ個とした。
【０２２９】
次の処理（３）では、処理（２）でＱ１〜ＱＭと再定義した特徴点に近い以前に生成されているＫＮ個のＰ点とＬＰ点をＫＰ１〜ＫＰ（ＮＫ）に定義する。ここで、一つのＰ点に近いＱ点は、複数ある場合もあることから、必ずしもＭ＝ＫＮとはならないので、別々の個数として定義している。このとき、互いに近いＱ点とＫＰ点の関係は、既にわかっているので、どの特徴点がどの特徴点に近いかを互いに関連付けておくと後の処理がより簡単になるので注記してある。
【０２３０】
図３６に示した処理（４）〜処理（１５）までの処理（Ａ）は、点データの更新処理である。
【０２３１】
処理（４）ではｉ＝１と設定して、処理（１４）でｉ＝ＫＮとなるまで処理（１５）でｉ＝ｉ＋１としながら次の処理（５）以降の処理を繰り返す。すなわち、ＫＮ個の点ＫＰ１〜ＫＰ（ＫＮ）について同じ処理を行なうようにしている。
【０２３２】
処理（５）では、ＫＰｉに近い既存の点Ｑ１〜ＱＭ点の中よりＫＭ個の特徴点をＫＱ１〜ＫＱ（ＫＭ）とし、処理（６）では、ＴＥＮ＝０，ｊ＝１として処理（１２）でｊがＫＭになるまで処理（１３）でｊ＝ｊ＋１としてＫＱ１〜ＫＱ（ＫＭ）の総ての組み合せをチェックする。
【０２３３】
処理（７）では、ＫＰｉとＫＱｊの計算されたときの精度を比較し、ＫＱｊの精度がＵＰ（向上）している場合には、処理（１０）あるいは処理（１１）で更新処理を行なうようにし、精度がＵＰしていない場合には、処理（１２）へジャンプする。
【０２３４】
精度がＵＰしている場合には、同じＫＰｉ点について、最初の処理の場合には、処理（１０）でＫＰｉの座標を単純にＫＱｊの座標に更新する。同じＫＰｉの特徴点に対して、２回目以降は、処理（１１）にて分割更新の処理を行なうようにする。これは、以前にはＫＰｉという１つの特徴点を２つ以上に分割することになるので、最初に存在するＫＰｉ点以外にＰ点を追加して定義する。そのため、Ｎ＝Ｎ＋１の処理もここで行なうようにした。
【０２３５】
処理（９）でＫＰｉが線分上の点（ＬＰ点）であったか否かを判別ロジックに入れているのは、線分上の特徴点であれば処理（１０）の座標値の更新はなく、処理（１１）で新たな特徴点を追加して分割更新させることが必要となるためである。
【０２３６】
以上の処理を総てのＫＰｉ点について行なえば点データの更新処理が行なわれることとなる。
【０２３７】
図３７に示した処理（１６）〜処理（２７）までの処理（Ｂ）は、線分データの更新と追加の処理である。
【０２３８】
最初の処理（１６）では、線分データの更新を行なうに当たって対象範囲の総ての点データを拾い上げる処理を行なう。すなわち、３Ｄ座標へ変換するときに参照した画像データの視野中の総ての点データを抽出してＫＮ個のＫＰ１〜ＫＰ（ＫＮ）点として定義する。ここでは、前の処理で追加されたＰ点や座標の値が更新されたＰ点も含まれる。
【０２３９】
次に、処理（１７）でｉ＝１と設定し、処理（２６）でｉ＝ＫＮとなるまで処理（２７）でｉ＝ｉ＋１としながら処理（１８）以降の処理を繰り返す。すなわち、対象となる総ての点データ，ＫＮ個の点ＫＰ１〜ＫＰ（ＫＮ）について、同じ処理を行なうようにしている。
【０２４０】
処理（１８）ではｊ＝ｉ＋１として処理（２４）でｊ＝ＫＮになるまで処理（２５）でｊ＝ｊ＋１としてＫＰ（ｉ＋１）〜ＫＰ（ＫＮ）の総ての組み合せをチェックする。同じ組み合せは２回処理しないで済むように、ｊはｉ＋１からＫＮまでとしている。
【０２４１】
処理（１９）では、点ＫＰｉとＫＰｊを結ぶ線分データが既に存在するか否かで次の処理を処理（２０）と処理（２２）に分ける。
【０２４２】
線分データが既にある場合には、処理（２０）において点ＫＰｉかＫＰｊの何れが更新あるいは追加されたものか否かを調べ、何れも更新も追加もされたものでない場合には、線分の更新処理は行わないで処理（２４）へジャンプする。これは、線分の始点と終点の何れにも変化がなかったということから、途中の線分上も見直しするような変化はなかったと判断して処理を省略するものである。もちろん、始点と終点に変化がなくても途中の線分がより良く撮像されている場合もあるので、処理（２０）を設けないで、総て処理（２１）へ進むようにしても良い。
【０２４３】
処理（２１）は、線分の更新を行なう処理であり、輪郭抽出などで線画になった画像データを参照しながら、ＫＰｉ点とＫＰｊ点を結ぶ線分データの見直しを行なう処理である。３Ｄ座標で計算されたＫＰｉ点とＫＰｊ点は、それを計算するときに用いた２次元の画像データ上の点として、どこの点であるかは対応が付いているので、画像データ中のＫＰｉ点とＫＰｊ点を結ぶ線分を抽出してその線分データを３次元の線分のデータ、すなわち、ＫＰｉ点とＫＰｊ点を結ぶ３次元の点列データ、あるいは、ＫＰｉ点とＫＰｊ点を結ぶ３次元の直線あるいは曲線の関数などを求めて線分データの見直し、再定義を行なう。ここで、処理（２０）でＫＰｉ点かＫＰｊ点の何れかが追加あるいは更新されたという場合には、始点，終点となる点の精度がＵＰしたということであるので、線分データも見直せば精度はアップすることを期待した処理としている。また、既に存在する線分データが直線であっても、精度条件が良くなった場合に見直すことで、直線へのフィッティングに無理がある場合には、その時点で直線の線分データから曲線の線分データに変更すると良い。
【０２４４】
一方、ＫＰｉ点とＫＰｊ点を結ぶ線分データがない場合には、処理（２２）へ進んで、線画などになった画像データを参照して、ＫＰｉ点とＫＰｊ点を結ぶ線分が存在するか否かを判別して、結ぶ線分が存在しない場合には、処理（２４）へジャンプする。
【０２４５】
結ぶ線分が存在する場合には、処理（２３）で線分データの追加処理を行なう。すなわち、画像データ中のＫＰｉ点とＫＰｊ点を結ぶ線分を抽出し、その線分データを３次元の線分のデータ、すなわち、ＫＰｉ点とＫＰｊ点を結ぶ３次元の点列データ、あるいは、ＫＰｉ点とＫＰｊ点を結ぶ３次元の直線あるいは曲線の関数などを求めて線分データを新たに定義する。
【０２４６】
以上の処理をＫＰ１〜ＫＰ（ＫＮ）点の総ての組み合せについて行なえば線分データの更新処理が行なわれることとなる。ここで、処理（２１），処理（２３）に引き続いて、面データの更新も直ぐに行なうようにしても良いが、この実施の形態では、次の処理でまとめて面データの更新を行なうようにしている。
【０２４７】
図３８に示した処理（２８）〜処理（４０）までの処理（Ｃ）は、面データの更新と追加の処理である。
【０２４８】
最初の処理（２８）では、面データの更新を行なうに当たって、前回の処理で更新された線分データの総てを拾い上げる処理を行なう。すなわち、前記処理（Ｂ）の処理の中で更新あるいは追加された線分データの総てをＫＮ個の線分データとしてＫＬ１〜ＫＬ（ＫＮ）と設定する。
【０２４９】
次に、処理（２９）でｉ＝１と設定して、処理（３９）でｉ＝ＫＮとなるまで処理（４０）でｉ＝ｉ＋１しながら処理（３０）以降の処理を繰り返す。
【０２５０】
処理（３０）では、線分データＫＬｉを成分とする面データを総て抽出してＫＭ個の面データとしてＫＳ１〜ＫＳ（ＫＭ）と設定する。ここで抽出対象となる面データは、総てである。総ての面データの中から、更新あるいは追加された線分データＫＬｉを成分とする総ての面データを抽出する。具体的な抽出の方法としては、線分データＫＬｉに繋がる線分データをＣＡＤデータ上で探索し、更に、その線分に繋がる線分というように線分データを探索して最初の線分データＫＬｉに戻るルート、すなわち、線分データが作る閉ループを面として総て抽出する処理を実行する。
【０２５１】
処理（３１）でｊ＝１とし、処理（３７）でｊ＝ＫＭになるまで処理（３８）でｊ＝＋１にして処理（３２）以降の処理を繰り返し、抽出された総ての面データＫＳ１〜ＫＳ（ＭＫ）について同じ処理を繰り返す。
【０２５２】
処理（３２）では、面データＫＳｊに相当する面データが既にＣＡＤデータとして定義されているか否かを判断する。通常、同じ線分の繋がりで構成される、いわゆる面の裏と表に関しては同じ面の裏と表としてＣＡＤデータを管理しても良いが、ここでは、将来より詳細な形状に表は表で裏は裏で分割生成されていくことなどを考慮して、裏と表は別の閉ループ（別の面データ）として抽出するのが良い。処理（３０）では新たに追加，更新した線分データにかかわる総ての面データ（閉ループの線分データの繋がり）を抽出するので、既に面データが定義されている面データも抽出されるし、今まで定義されていなかった新たな面データも抽出される。そこで、処理（３２）では、抽出された面データＫＳｊが既に面データとして定義されているものか、今まで定義されてなく今回初めて面データとして抽出されたもの、すなわち、新たに線分データが追加あるいは更新されたことにより、線分データの新しく定義される閉ループが生じたものか否を判別している。ここでの判別は、面ＫＳｊとその近くに存在する総ての以前に生成されている面データとを比較して、その面を構成する線分レベルでその線分の想定される最大誤差と当該面ＫＳｊを構成する線分の想定される最大誤差を考慮して、その誤差内で一致しているか否かで判別するようにする。その面を構成する線分の繋がり関係のみで単純に比較すると、１本の線分がその途中で分かれた２本の線分に更新されている場合には、面としては同じ面を示しているが、構成する線分はより詳細に分割定義されているために、同じ面とは判別できなくなってしまう場合がある。また、１つの面がその面を分割する新たな線分データが生成されたことにより分割される場合もあるので、面データＫＳｊの全部あるいは一部が既存の面データの全部あるいは一部に一致する場合を含めて、既にある面と一致するか否かを判別するようにする。そのために、誤差内で重なる同じ面データがあるか否かにて判断するようにする。その判別の結果、既に面データがある場合には、処理（３３）の更新の処理へ進み、当該の面データＫＳｊに相当する面データが以前に作成されているＣＡＤデータの中になかった場合には、処理（３５）で新たな面データ（線分の繋がり閉ループ）の追加、登録を行なう処理へ進む。
【０２５３】
処理（３３）の面データの更新においては、既に点データや線分データは更新されているので、それらの更新内容を参照しながら面データを構成する線分データの見直しを行なうようにしても良いが、更新前の面データが構成する更新前の点データや線分データも参照できるようにしておくことでも良い。面の更新を行なう場合には、面データＫＳｊに一致する既存の面データがあることが前提となるが、面データＫＳｊと既存の面データとが誤差範囲内で全体が一致している場合には、各線分データをより精度良く生成された新しい線分データに置き換えて定義し直せば良い。また、面データＫＳｊが既存の面データより小さく、既存の面データの一部と一致している場合には、一致している部分の面データを新たに定義し直すと共に残りの部分をもう１つの面データとして定義して分割する処理を行なう。また、面データＫＳｊが既存の面データと一致する部分もあるが、既存の面データより大きな部分がある場合には、その面データＫＳｊについては更新処理を行わないようにする。これは、抽出された面データの中には大きな閉ループを抽出するケースが含まれるために生じるが、その中に小さな閉ループの面も抽出されているために、小さい面データの場合に更新処理を行なえば当該部分の面データは更新されるので良いものとする。ＣＡＤデータは、より精度良くなる場合に更新されるようにするので、小さな閉ループが大きく統合されるような処理を行なわないようにする。
【０２５４】
処理（３３）で面データを構成する線分の更新を行なった後に面データの属性を更新するが、処理（３４）にて面データの属性を更新するに十分な画像情報があるか否かを確認し、ない場合には処理（３７）へジャンプする。更新可能な画像情報がある場合には処理（３６）へジャンプする。
【０２５５】
処理（３５）は、面データＫＳｊと重なる以前に生成された面データはない場合であるので、面データＫＳｊを新たな面データとしてＣＡＤデータに追加定義する。ここでの定義は、面データを構成する線分データの定義である。
【０２５６】
そして、その次に、処理（３６）において、面データの属性を定義する。面データの属性は、画像データを参照する。元々、２次元の画像データより３Ｄ座標に変換して面データまで定義しているので、３Ｄ座標の点データと線分データにより構成される３Ｄの面データは、２次元の画像情報の中のどの点に対応しているかの対応が取れているため、その面と対応する部位の色、明るさなどの面データの属性を画像情報から読み取って面データの属性データとして登録する。処理（３４）からジャンプしてきた場合には、面データの更新であるので、元々定義されていた面データの属性を見直し更新するものとする。元々処理（３３）で更新されたことを前提に考えると、面の輪郭の線分データはより精度良く更新されていることから、今回の画像情報は、より正しい当該面の色、明るさを表していると考えて、処理（３４）では、単純に当該面の画像情報の中の面積の大小や明るさで判断、すなわち輪郭は精度良く更新されたが、極端に斜めから見た場合とか、面は陰になって輪郭のみはっきりと見えているようなシーンであるか否かのみを判断するようにしても良いが、撮影時のカメラとその面を結ぶ線がその面の法線により近い場合、すなわち、その面をより正面から見ている条件の場合に更新するように、より厳密に判定させるようにしても良い。また、面の属性として透過率や反射率を定義するようにした場合には、その面の中に映り込んでいる奥の物体や反射して写っている物体の明るさをそれら物体との位置関係などの情報も用いて透過率や反射率に換算してから求めるため、必ずしも最初の処理で定義する必要はない。例えば、透過して見える物体があった場合に、その物体を直接見たときのその物体の面データの明るさと、その面を通して見たときの明るさと互いの距離関係などが総て求められたときに、その面の透過率を推定計算することができるようになるので、そのときに更新することができるようにしておくと良い。
【０２５７】
以上の処理をＫＳ１〜ＫＳ（ＫＭ）の総てＫＬｉの線分に係わる面データに対して行い、更に更新，追加のあった総ての線分データＫＬ１〜ＫＬ（ＫＮ）に対して行なうようにする。
【０２５８】
図３９は、図３５〜図３８を参照して説明した３Ｄ−ＣＡＤデータ生成処理において特に点データ，線分データが更新されるときの概念を示している。
【０２５９】
ステップ（１）に示す図は、更新前のＣＡＤデータの概念であり、点Ｐ１と点Ｐ２を結ぶ線分Ｌ１というデータである。点Ｐ１，Ｐ２の周囲の点線の円は、それぞれの点が３Ｄ計測されたときに想定される最大誤差の円であり、３Ｄ上では球として誤差円があると見做す。線分Ｌ１には、各々の線分上の誤差円、３Ｄ上では最大誤差を半径とする球が定義されるが、それを線分Ｌ１上の総ての点で考えると、その球の包絡面と見做すことができる。それが線分Ｌ１の周囲にある点線の部分である。線分Ｌ１の途中の誤差半径の大きさは、ここでは、線分Ｌ１の端部のＰ１，Ｐ２の場所での誤差半径より推定して比例で求めた大きさとしている。
【０２６０】
ステップ（２）は、新たに求められた３Ｄ変換された点Ｑ１〜Ｑ４を更新前のＣＡＤデータの上に重ねて描いた概念を示している。点Ｑ１〜Ｑ４にもそれぞれの点が計算されたときの誤差を半径とする球を点線で描いている。点Ｑ１とＱ３は、その誤差半径を考慮すると、点Ｐ１の誤差半径の中に存在している可能性がある。すなわち、更新前にＰ１であった点がＱ１である可能性もあり、Ｑ３である可能性もある。同様に、点Ｑ２は、点Ｐ２である可能性があり、点Ｑ４は、線分Ｌ１上の点ＬＰ１である可能性があると見ることができる。
【０２６１】
ここで、この発明における更新処理を説明すると、ステップ（３）では、同じである可能性のある更新前の点データと新たに計算された点データの各々が計算されたときに想定される最大誤差の何れが大きいかを比較（ここでは、誤差を半径とする球の何れが小さいかを比較）して、小さい場合には、より精度良く計測されていると見做せるので、点データの更新を行なうようにする。ステップ（３）は、その更新の概念を示している。すなわち、点Ｐ１の誤差円と点Ｑ１の誤差円を比べると、点Ｑ１の誤差円の方が小さいので、点Ｑ１の座標値を点Ｐ１の点データに入れ替える。同様に、点Ｑ３の誤差円も点Ｐ１の誤差より小さいので置き換えるが、既に点Ｐ１の座標値は点Ｑ１の座標値に更新されているので、ここでは、新たな点Ｐ３を定義して点Ｑ３の座標を入れる。これは、更新前の点Ｐ１が更新後は点Ｐ１と点Ｐ３に分割されたことを意味する。同様に、点Ｐ２は、点Ｑ２の方が誤差半径が小さいので、この点Ｐ２の座標が点Ｑ２の座標に置き換えられることにより更新される。同様に、点ＬＰ１の誤差半径と点Ｑ４の誤差半径も点Ｑ４の方が小さいので、点Ｑ４の座標を点ＬＰ１の座標とするが、ＬＰ１という点は、線分Ｌ１上の仮想の点であることから、ＣＡＤデータとしては新たに点Ｐ４を定義してその座標に点Ｑ４の座標値を入れて更新処理を行なうようにする。
【０２６２】
その結果、ステップ（４）に示すように、更新後のＣＡＤデータとして、点データは、Ｐ１，Ｐ２，Ｐ３，Ｐ４が更新されている。また、線分更新としても、ステップ（１）に示されている更新前のＣＡＤデータの点Ｐ１と点Ｐ２を結ぶＬ１という線分データは、点Ｐ２と点Ｐ４を結ぶ線分Ｌ２と点Ｐ４と点Ｐ１を結ぶ線分Ｌ３と点Ｐ４と点Ｐ３を結ぶ線分Ｌ１という線分データに更新されており、これらの処理は、図３５〜図３８に示した処理を実行することにより実現する。
【０２６３】
図４０は、図３５〜図３８を参照して説明した３Ｄ−ＣＡＤデータ生成処理の中の新規なデータの生成と更新の概念を一般的な図形の生成と更新の概念に当てはめて描いた図である。
【０２６４】
（１）は、点Ｐ１と点Ｐ２を結ぶ線分Ｌ１が初めは線分の長さが１ｍであったものが、次の計測により点Ｐ１と点Ｐ２の位置がより精度良く更新された結果、線分Ｌ１の長さも０．９７ｍに更新される概念を示している。これは、精度ＵＰによる更新の処理である。
【０２６５】
（２）は、線分Ｌ１が生成されている状態で更に線分Ｋ２が見えて追加生成された状況を示している。これは、初めは物の陰になっていて見えなかった線分Ｌ２が、撮像装置１０，２０が移動して線分Ｌ２が見えるようになり、新たに点Ｐ３，Ｐ４が生成され、線分Ｌ２も生成された状況を示している。これは、新たな線分の生成という概念に該当する。
【０２６６】
（３）は、容器の側面などの線分Ｌ１が見えていてＣＡＤデータにも線分Ｌ１が生成されているが、撮像装置１０，２０が物体を近くから撮像することによって新たな線分が見え、その線分が矩形Ｓ１を構成して最初の線分Ｌ１に付いている状況を示している。この場合、矩形Ｓ１の線分は、今まで見えてなかったものが見えるようになって新たに追加生成されたものであるので、生成の概念に該当するが、矩形Ｓ１の線分Ｌ１と接している部位は、データとしては、線分Ｌ１が線分Ｌ１と線分Ｌ２と線分Ｌ３に分断されるので、線分Ｌ１については、更新されるという概念になる。
【０２６７】
（４）では、初めは線分Ｌ１が生成されているが、近くで見ると、点Ｐ１は点Ｐ１と点Ｐ３に分割して見え、点Ｐ２は点Ｐ２と点Ｐ４に分割して見えてきて、線分Ｌ１は線分Ｌ１と線分Ｌ２に分割生成されるので、この場合には精度もＵＰすることから、分割の更新の概念となる。
【０２６８】
最後の（５）では、最初は側面が線分Ｌ１，Ｌ２，Ｌ３，Ｌ４からなる容器の側面のようなものに矩形Ｓ１のようなものと線分Ｌ５が付いている状況であるが、この場合も、撮像装置１０，２０が物体に近づいて詳しく撮影すると、矩形Ｓ１の左の１辺は矩形Ｓ２という形状であり、線分Ｌ５も矩形Ｓ３になる。この場合にも更新処理となる。
【０２６９】
これら（１）〜（５）のケースが代表的な例であるが、図３５〜図３８に示した処理フローに基づいて３Ｄ−ＣＡＤデータの生成処理を行なうと、このような生成と更新が行なわれることになる。
【０２７０】
図４１〜５０を参照して本発明の第４，第５および第６の手段の基本的な実施の形態を説明する。
【０２７１】
図４１は、２台のカメラによるステレオ計測による基本的な実施の形態の概念を示しており、撮影対象９０１を撮像装置１０，２０の２台のカメラで撮影する所謂ステレオ計測の構成である。２台の撮像装置１０，２０は、お互いの位置と姿勢が既知の関係で固定されており、移動する場合には一緒に移動する。撮像装置１０から得られる画像情報のイメージが（Ａ）であり、撮像装置２０から得られる画像情報のイメージが（Ｂ）である。（Ａ）と（Ｂ）は、画像情報を取り込んだ視覚情報処理装置の画像メモリーの概念でとらえて良い。
【０２７２】
ここで、画像情報処理としては、まず、撮像装置１０，２０からの画像情報の中の特徴点と線分を抽出を抽出する。線分は、特徴点を結ぶ線となる。この線分を抽出する処理は、２次元の画像データを微分処理した後に細線化処理する方法などさまざまな手法が考えられるが、できるだけ照明条件や撮影する方向に左右されないで、多少それらの条件が変っても同じように撮影対象９０１の特徴部位を抽出できる安定な手法を採用するのが良い。
【０２７３】
今、画像イメージ（Ａ）の中に特徴点１ａ，１ｃ，１ｅが抽出されていて、また、線分としてはそれらの特徴点を結ぶ線分１ｂ，１ｄが抽出されているとする。ここで、抽出する特徴点，線分は、白黒画像であれば輝度情報、カラー画像であれば色情報（Ｒ、Ｇ、Ｂの輝度信号）の変化する境界線を抽出するのが良い。ここでは、白黒、カラーの区別なくそれらの情報を色情報と言うこととする。そのように抽出された線分は、その線分の両側の色の境界を示しているので、それぞれの抽出された特徴点あるいは線分あるいはその両方（特長点と線分）に色情報をもたせて特徴点，線分のデータとして管理するようにする。
【０２７４】
この実施例の画像イメージ（Ａ）の中の抽出線分では、線分１ｂ，１ｄの右側は色１、線分１ｂ，１ｄの左側は色２であり、その境界線として線分１ｂ，１ｄが抽出された状況を示している。それぞれの線分には左右の色情報（色１，色２）をもたせて管理する。画像イメージ（Ａ）の中には、他にもたくさんの特徴点，線分が抽出されていて良いが、今は、ここで説明した抽出線分に着目して説明する。これはステレオ計測の手法になるが、画像イメージ（Ａ）で抽出された特徴点１ａについて、その点１ａに対応する画像イメージ（Ｂ）の中の点を探索する必要があるが、２台の撮像装置１０，２０のお互いの位置関係が分かっているので、画像１ａに対応する画像イメージ（Ｂ）の中の点は、理論的には、所定の線分１ｆの上に存在することとなる。実際にはいろいろな誤差要因があるので、線分１ｆの線上というよりは所定の幅を持たせた線分１ｈと線分１ｇで挟む領域内に存在すると考える。
【０２７５】
特徴点１ａの対応点が存在する線分を求める方法を図４２を参照して説明する。撮像装置１０の撮像面（図４１の画像イメージ（Ａ）に相当する面と考えて良い。）を、視点Ｏ１を定義する座標系のＸＹ平面、撮像装置２０の撮像面（図４１の画像イメージ（Ｂ）に相当する面と考えて良い。）とすれば、視点Ｏ２の座標系のＸＹ平面上の点Ｐ１が、図４１の画像イメージ（Ａ）の中の特徴点１ａとすると、３次元空間の中の実際の点Ｐ１は、視点Ｏ２と視点Ｏ２を定義する座標系のＸＹ平面上のＰ１点を結ぶ線分上に存在することになり、その線分は、視点Ｏ１を定義する座標系のＸＹ平面上の線分Ｐ０Ｐ３の線上に存在するように撮影される。線分Ｐ０Ｐ３を求める方法は、例えば、視点Ｏ１を定義する座標系のＸＹ平面と視点Ｏ１，視点Ｏ２，点Ｏ２を定義する座標系のＸＹ平面上のＰ１点の３点が作る平面の交線を求めることで容易に求まる。ここでの実際の探索範囲は、撮像装置に撮影されている範囲になるので線分Ｐ０Ｐ３の上で探索すれば良い。
【０２７６】
図４１を参照する説明に戻る。画像イメージ（Ｂ）の中で画像イメージ（Ａ）の中の特徴点１ａに対応する点を画像イメージ（Ｂ）の中で線分１ｈと１ｇの間にある点を全て探索すると、画像イメージ（Ｂ）の中の（ａ），（ｂ），（ｃ），（ｄ），（ｅ），（ｆ）の６点が対応候補点として存在している状況を示している。ここで、特徴点は、必ず線分として抽出するようにするために、線分に繋がらない１点の特徴点は処理の対象としないノイズ除去処理を処理の中に入れると良い。それぞれの対応候補点は、その点に繋がる線分を構成しているとする。
【０２７７】
次の処理としては、この候補６点の中から特徴点１ａに対応する点を見つけることになるが、その手順を以下に説明する。図４１の画像イメージ（Ｃ）は、画像イメージ（Ｂ）で探索した６つの特徴点のそれぞれに画像イメージ（Ａ）の特徴点１ａをそれぞれ重ねて表示した画像イメージである。実際の処理としては、この段階では、画像データは特徴点や線分に置き換えられているので、ＣＡＤデータどおしのマッチング処理になる。
【０２７８】
マッチングの最初の処理としては、特徴点の上下左右の色情報の一致度あるいは線分の左右の一致度になる。
【０２７９】
それぞれの色マッチングの例を図４１の（Ｄ）を参照して説明する。画像イメージ（Ｂ）の候補点として探索されたそれぞれに特徴点１ａを重ねて調べる。図４１の（Ｄ）の（ａ）の例で説明すると、特徴点１ａを候補点１ｎに合わせる。今、対応点を調べたい特徴点１ａの線分の左右の色は、右側が色１で左側が色２である。また、図４１の（Ｄ）の（ａ）で重ねる候補点側の線分の各両側の色は、色３，色５，色４である。候補点側は３本の線分が繋がっており、色情報はそれぞれの線分が境界となるので、この場合は、３つの領域の色情報がある。ここで、色１と色３、色２と色５の一致度が高ければ、特徴点１ａの対応点は１ｎと分かる。このとき、実際の線である場合は、左右の色は一致して非常に安定な点ということになるが、片側のみが一致する場合も候補点となる。左右の色が一致度が少し劣るが似ている部位より、片側が非常に一致している方がより確からしい場合がある。それは、一方の色が背景である場合である。
【０２８０】
詳細は後述するが、ここでは、少なくともどちらかが非常に一致する組み合わせを見つけて対応点候補の６個の中より更に候補数を絞り込む。処理としては、色の一致度に閾値を設けておき、両側が一致しない場合は対応点候補から除く処理、片側が一致する場合は輪郭線である可能性のある候補として残す。両側が一致する場合には実際線の可能性がある候補として残す処理となる。ここで、可能性があるという表現を用いたのは、このシーンだけからの判断はまだできないからである。実際には撮像装置は移動して視点を変えながら同じ点を計測する機会が生じるので、いろいろな視点から撮影した画像情報で常に実際線と推定される場合には実際線である可能性がより高くなる。しかし、たとえあるシーンで実際線である可能性があると判断される場合でもたまたま背景が同じように写っているだけである可能性があり、そのような場合には、視点を変えて同じ点をみたときに輪郭線であると判断される場合もある。処理としては、そのように判断されたときに実際線候補から輪郭線候補にデータを書き換えすれば良い。
【０２８１】
図４１を参照する説明に戻すが、色情報のマッチングの段階で候補数が１つになればそれ以上の絞込みは不要である。実際には、画像情報のひずみを精度良く補正して、また、ステレオ計測の２台の位置関係を精度良く求めることにより線分１ｈと１ｇの幅は狭くすることができので、線上にある対応点候補の段階で効率良く絞り込むことが可能となる。
【０２８２】
次の色情報を用いたマッチングでまだ複数の対応点候補が残った場合には、他のマッチングも行う。マッチング手法としてはいろいろ考えられるが、例えば、図４１の（Ｄ）の（ａ）で説明すると、線分１ｂに対応する線分は線分１ｎ１ｑ、線分１ｎ１ｓ、線分１ｎ１ｒが候補になる。勿論、図４１の（Ｄ）の（ｂ），（ｃ），（ｄ），（ｅ）にも１本づつ、（ｆ）には２本対応候補となる線分が存在する。まずは、左右の色情報は左右とも異なれば候補からは除くが、まだ、複数残る場合が考えられるので、（ａ）で簡単な方法を説明すると、線分１ｂを線分１ｎ１ｑへ対応させる場合の回転角δα１、線分１ｂを線分１ｎ１ｓへ対応させる場合の回転角δα２、線分１ｂを線分１ｎ１ｒへ対応させる場合の回転角δα３を求めて、所定のありうる回転角度以下を候補点に絞るとか、更に、特徴点１ａ以外の他の特徴点についても同様な絞込みを行ったときに、同じ傾向の多い回転角度のグループを候補点に絞り込むような方法もある。
【０２８３】
また、もっとも精度の良いマッチング方法の例を、図４１の（Ｄ）の（ｆ）を参照して説明する。図４１（Ｄ）の（ｆ）では、画像イメージ（Ｂ）の対応点候補１ｉに特徴点１ａを重ね、次に画像シーン（Ａ）の点１ｃを画像シーン（Ｂ）の点１ｊに合わせるように変換する変換係数を求め、同じ変換係数を用いて他の点１ｅも変換して画像イメージ（Ｂ）の上に写像する。もっと、線分が複雑に繋がっている場合には、全部の線分を同じ変換式で写像する。そして、その写像結果と画像イメージ（Ｂ）で抽出された線分、この場合には、線分１ｉ１ｊ、線分１ｊ１ｋ、線分１ｋ１ｍとのマッチングをとり一致度によって１ｉを対応点候補として残すか、除くかを判別するようにする。写像した線分と抽出した線分の長さが同じでない場合は、どちらの線分でも余分に長い部分は除いてマッチング度を求める。それは、撮影する方向が違った影響で、一方では境界線分が抽出されるが、もう片方の撮影の方向からは境界線分が抽出できない場合もあるためである。線分と線分のマッチング度を求める方法にもいろいろあるが、例えば、もう一度同じ太さの２次元の画像データの線分に戻して相関係数を求めるようにしても良い。
【０２８４】
ここで、簡単な方法の一つを図４１の（Ｄ）の（ｆ）を参照して説明する。対応点候補１ｉへ特徴点１ａを重ねて、線分１ｂを画像イメージ（Ｂ）の中の線分１ｉ１ｊに重ねる変換係数を求める。変換係数は、位置は完全に点１ａと点１ｉを一致させて次に点１ｃを点１ｊに合わせるための回転角度で考えても良いし、回転角度とスケースファクタ（倍率）の組み合わせで考えても良い。あるいは、別の手法としては、画像イメージ（Ａ）を透明のガラス板にたとえて、その面に線分１ｂ、線分１ｄが書いてあるとして、そのガラス板を画像イメージ（Ｂ）の上に重ねて線分１ｂが線分１ｉ１ｊと一致するようにガラス板を前後左右に傾けたり時計回りあるいは反時計回りに回転させたり、あるいは大きさが変るように近づけたり離したりしたときの、傾ける角度，回転角度，離す距離、それから前後左右に移動した距離などを変換係数とする。この場合に、同じ変換係数で変換することは、同じガラス上に記載してある線分１ｄは同じ変換がされていると考える。その線分１ｄの写像が線分１ｊ１ｋとどれだけ一致しているかでマッチング度を評価する。そのような方法でも何らかのルールに従って写像した後にその評価をすることになるが、マッチング度の指標としては２次元画像データに変換しての相関係数でも良いし、図４１の（Ｄ）の（ｆ）で説明すれば、線分１ｄの写像を線分１ｊ１ｋに合わせるための長さの偏差δｒと角度の偏差δθを求めてそれらの偏差が小さいほどマッチング度は高いと処理しても良い。ここで、δｒは使用しないでδθのみで行っても良い。また、線分が複雑に何本も繋がっていてマッチングさせる両方の線分が同じように複雑で複数本ある場合には、次に、特徴点１ｅの写像点を点１ｋに合わせてその先に繋がる線分がある場合には同じようにδｒ、δθを求めて、その先も同じように合わせながら偏差量のδｒとδθを求めていき、全体のδｒの和、δθの和の大小でマッチング度として良い。また、途中で分岐している場合も同じように考えられるマッチングの組み合わせで合わせていき、一致度の一番高い対応線分を求めるようにする。
【０２８５】
変換係数を求めるときには、最初に１本の線分１ｂを合わせるように変換係数を求めても良いが、かならずしも点１ｃが点１ｊに対応しているとは限らないので、繋がっている線分の全体が一番一致するように変換する変換係数を求めるようにする方が良い。
【０２８６】
以上で特徴点１ａの対応点候補は相当絞りこまれる。ここで注意が必要なことは、例えば、特徴点１ａの対応点候補が１ｎと分かっても、必ずしも点１ｃの対応点が点１ｑとは限らないので、同じ処理を画像イメージ（Ａ）の中の他の特徴点１ｃ，１ｅ，その他にも点がたくさんあれば、全ての点について行うようにする。その結果、更に複数候補が残っている場合には、複数候補が存在しないで一致度の高い特徴点の変換係数の傾向と複数候補残っているそれぞれの変換係数の傾向を比較して傾向の一致度合いより更に絞り込むようにすると良い。
【０２８７】
対応点候補の絞込み方法は、その他にもいろいろなマッチング手法が考えられるが、優先度を付けてそれぞれのルールに基づいて対応点候補を絞り込むようにする。それで、最後にどうしても複数候補残る場合も考えられるが、それはそれで、次のように処理をすれば問題ない。それは、このシーンではその特徴点は３次元の点に変換しないでパスすることである。後で、撮像装置１０，２０が移動して撮影する視点が変ると、複数候補残っている特徴点についても１つの候補に絞り込めるようになる。
【０２８８】
また、複数候補残る特徴点は、本当は対応点ではないのに誤って３次元変換してしまう点の撮影対象によっても生じる場合がある。それは、実際にその時の撮影位置からはそのように見える位置関係が存在するわけであり、画像情報処理システムとしても人間と同じように錯覚点を検出してしまうことがある。この対応としては、１箇所の視点でたとえ安定に対応付けされて計測した点についてもまだ安定な実際線を構成する点と判断するのではなく、次に視点が移動して別のシーンで同じ点を計測して複数回にわたって安定に対応点が存在して計測される特徴点，線分がより実際線で存在する特徴点，線分である可能性が高くなるので、そのような視点を変えて安定に計測できた回数などを指標に実際線である可能性を指標として管理するようにするのが良い。
【０２８９】
これらのことは、撮像装置を移動させながら３次元ＣＡＤデータを生成して、追加生成したり、より近くから撮影して精度が高くなる場合にはＣＡＤデータを更新する機能があれば、撮影対象９０１をいろいろな角度から、また、より近づいたりしてＣＡＤデータの精度高くしていく、第１〜第３の手段を適用することによってより有効に実現することができるものになる。
【０２９０】
次に、ステレオ計測の処理の方法の一例を図４３〜図４９を参照して説明する。ここで、図４３は、ステレオ計測を行う２台の撮像装置１０，２０のそれぞれのＯ１視点座標系とＯ２視点座標系と見る。２台の撮像装置の位置関係は、最初に精度良く求めておくということを説明したが、その一手法として、あらかじめ複数の対応点、ここでは３点Ｐ１，Ｐ２，Ｐ３を例に説明するが、Ｏ１視点座標系からみた点とＯ２座標系からみた点の対応関係をあらかじめ操作者が指定してその条件よりＯ１視点座標系とＯ２視点座標系の座標変換の関係式を求める。ある程度既知の位置関係の条件を使用して関係式を精度良く求めるようにしても良いし、３点ではなく少なくとも８点の対応点を操作者が指定すれば、位置関係がまったくわからない状態でも関係式を求めることができる。８ポイント法については、情報処理学会研究報告コンピュータビジョンとイメージメディア、No. 131-022、2001年、「幾何学的拘束による共分散行列の更新について」、などの文献があるので、ここでの詳細な説明は省略する。何れの手法を用いても、指定した対応点、例えばＰ１，Ｐ２，Ｐ３の点は、その点が対応するように関係式を求めるのでＯ１視点座標系とＯ２視点座標系のそれぞれで完全に一致するように対応がとれている。このようにしてあらかじめ求めておいた関係式より、例えばその関係式を求めるときに用いなかった点Ｐ４をステレオ計測で求める場合を考えると、点Ｐ１，Ｐ２，Ｐ３は、それぞれＯ１視点からの延長戦とＯ２視点からの延長線は交わる関係にあるが、点Ｐ４については、必ずしも交わらない。これは、いろいろな誤差要因があるからである。
【０２９１】
図４４は、図４３におけるＰ４周辺を拡大した図であるが、線分Ｌ１と線分Ｌ２の交点は誤差によって存在しない。この場合の求め方は両方の線分に接する球を考えてその球の径が最も小さくなる球を求めてその球の中心点をＰ４の座標として求める。そして、その球の例えば半径ｒをそのＰ４点の誤差の半径と考える。
【０２９２】
図４４において、Ｐ４の球は、線分Ｌ２とＰ４atＬ２で接して、線分Ｌ１とはＰ４ａｔＬ１で接している状態を示している。ここで誤差半径ｒは、画像のひずみの影響やステレオ計測する２台のカメラの位置関係を示す座標変換の計算式の精度に起因する部分もあるが、それらは画像ひずみを画像処理する前に補正するようにしたり、カメラの位置関係を示す座標変換の計算式の精度は精度良く行うことにより限りなくゼロに近づけることができる。その他の誤差としては、カメラの分解能があるが、それは撮影対象９０１と撮像装置１０，２０の距離と２台の位置関係からさけがたい計測誤差として生じる。更に、その他の誤差として、これは本発明での重要なポイントの一つになるが、対応点の対応精度に影響する誤差が含まれる。実際に撮影対象にペイントがしてある境界線を見ているような場合には、それは顕微鏡撮影などを行わない通常運用においては極めて安定な実際線となるが、物体の輪郭を検出した線分の場合にはどうしても撮影方向が変ったことによってもっともマッチングする対応点候補を選択した場合においても厳密には同じ撮影対象の部位を見ていないので、本当の対応点からは少しずれてそのズレがこの誤差半径ｒになって生じる。画像ひずみの誤差とステレオ計測の座標変換の誤差を１画素以内に十分小さくして撮影距離と分解能に関わる誤差は撮像装置の仕様とＰ４点の概略距離情報から決まるのでそれを差し引いた分が輪郭線ゆえの誤差半径となる。この誤差も球体や円筒面を計測する場合は大きくなり、鋭角な辺からなる直方体などの辺の誤差は小さくなるので、この誤差を当該点の安定度の指標として管理するようにする。輪郭線と実際線の区別も、その誤差半径でどちらの線に属するかの程度を表現するようにしても良い。そして、ＣＡＤデータを更新するか否かの判断は、撮影距離と分解能に関わる誤差が小さくなることと共にこの安定度が良くなったかどうかも含めて総合的に判断するようにするのが良い。更に、後述するトラッキングを行うようにして更に計測座標をもとの座標系に変換する場合にも変換誤差が加算されるので、それらの総合的な判断で更新するか否かを判断するようにするのが良い。トラッキングを行う場合には、少なくとも３点の対応点が必要になるが、その３点を選ぶ場合にもこの安定度の良い３点を選ぶようにすればトラッキングによる座標変換による誤差も小さく抑えることが可能となる。
【０２９３】
ちなみに、ステレオ計測では、誤差半径ｒが小さい点は、より安定な点ということができ、そういう点をトラッキング時の３点に選ぶようにする。鋭角な輪郭線の点は、誤差半径ｒがより小さく、実際線の点の場合は、誤差半径は一番小さくなる。
【０２９４】
また、図４５には、撮影距離と分解能に関わる誤差Ｐ４（ｒ１）と輪郭線ゆえの誤差半径Ｐ４（ｒ２）の概念を示す。図４４のＰ４ａｔＬ１の点とＰ４ａｔＬ２の点には撮影距離と撮像装置の分解能、撮像装置の撮影関係（間隔）に関わる誤差があり、それを半径ｒ２の球Ｐ４（ｒ２）で表すと、その２つの球Ｐ４（ｒ２）の中心に、輪郭線ゆえの誤差半径ｒ１の球Ｐ４（ｒ１）で表現する。この場合、誤差が小さくなる場合はＣＡＤデータを更新するわけであるが、処理を簡単にするために、球Ｐ４（ｒ１）と２つの球Ｐ４（ｒ２）を包絡する球Ｐ４（ｒ３）を考えて、あらたに計測された点の球Ｐ４（ｒ３）が、現在の球Ｐ４（ｒ３）の中にあってより小さくなる場合には、その点のＣＡＤデータを更新するようにしても良い。
【０２９５】
また、図４６に示すように、撮影距離と撮像装置の分解能、撮像装置の撮影関係（間隔）に関わる誤差球Ｐ４（ｒ２）は、ステレオ計測の場合のように撮像装置の間隔が狭く遠くを撮影する場合には、撮影方向に対して上下左右の誤差よりも奥行き方向の誤差の方が大きくなるので、それを球で表現すると処理は簡単になるが、精度の厳密性に欠けるので、視点Ｏ１、Ｏ２から引いた１画素に相当する円錐あるいは角錐の交わる部分の形状Ｐ４（δ）を誤差として管理するようにしても良い。この場合には、撮像装置が移動して視点Ｏ１，Ｏ２の位置が変わって、先に奥行き方向を計測していた部分が上下あるいは左右方向の向きで計測することできるようになったり、トラッキングして更に視点Ｏ１，Ｏ２の間隔が広がってより精度良く計測された場合があるので有効である。誤差の形状Ｐ４（δ）の形が全体として小さくなるのではなく、向きや方向によって一部分は更新して、前回計測部分が精度高い方向は前回の計測部分の誤差を用いて、全体として、例えば、誤差形状の体積や最長部位が小さくなる場合は、そのような前回と今回の誤差形状の組み合わせで更新してあらたな誤差形状として変形させながら管理するようにして良い。例えば、先に計測した奥行き方向の誤差が横から計測したことにより小さくなる場合は、先に計測した奥行き方向の誤差は新たに計測した左右の誤差になるように小さくして、先に左右方向で精度良く計測していた方向は、今度は奥行き方向になるので、その方向については前回の誤差形状を使って更新しないようにすることになる。このように、最初に生成される誤差の形状は、Ｐ４（δ）のような形状であるが、更新処理によりその形状を精度が良くなる部分ごとに小さくしていくことにより、誤差を形状として更新しながら厳密にＣＡＤデータの更新を行うようにしても良い。
【０２９６】
図４７は、視点Ｏ１，Ｏ２の２台の撮像装置からステレオカメラで最初に生成されるポイントＰ４の誤差形状Ｐ４（δ）を示している。奥行き方向の誤差は大きいために、外接円を書くとＰ４（ｒ２）の球になる。
【０２９７】
次に、ステレオカメラである視点Ｏ１，Ｏ２が移動して、図４８のように、同じポイントＰ４を計測すると、視点Ｏ１，Ｏ２からポイントＰ４までの撮影距離も近くなっているので、上下左右の誤差の広がりも小さくなるが、図４７の誤差形状Ｐ４（δ）を斜めから撮影することになるので、前回の奥行き方向で精度の良くない方向を今回は上下左右方向の精度で測定できるので前回の誤差形状Ｐ４（δ）は更に小さい誤差形状Ｐ４’（δ）にして管理することができる。外接円もＰ４’（ｒ２）と小さくなる。新たな誤差形状を求めるときには、現在の誤差形状と新たに計測されたときの誤差形状を重ねて重なる部分を抽出するようにしても良い。重なる部分が前回の誤差形状全部になる場合は、今回計測誤差が大きいので当該点の計測座標値は更新しない。一方、新たに計測した誤差形状が全部含まれる場合は、新たに計測した計測座標値に更新する。また、一部重なる部分が前回と今回の誤差形状のそれぞれにある場合は、重なる部分を新たな誤差形状に更新する。その場合、計測座標値も更新するが、更新の方法としては新たに求めた誤差形状の中心（立体図形の密度を均一とした場合の重心など）を当該点計測座標値として更新するようにしても良い。この場合には、最初に計測する段階から計測座標値は誤差形状の中心の座標値を使うようにして良い。このように厳密に誤差形状を求めながら計測したポイントの誤差の大きさをその方向も考慮した形状で管理する場合には、更に輪郭線ゆえの誤差やトラッキングなどにより生じる誤差もその方向性を考慮した厳密な形状で管理するようにしても良い。また、ある程度、誤差形状に方向による依存がなくなった場合には簡略化のために球にして管理して、方向性に大きさ差が生じた場合に誤差形状で再度管理するようにしても良い。また、方向性を有する誤差も直方体や楕円球のような基本図形におきかえて処理をある程度簡略化するようにしても良い。
【０２９８】
基本図形として、図４９に示すように、誤差半径δＲの球がＰＣ点からＰ４を結ぶ方向にＰ４を中心にδＬの長さの間にあるように近似して誤差を表現するようにすれば、３Ｄ点Ｐ４に付属させるべき形状誤差に関する情報は、半径δＲ、長さδＬ、Ｐｃ点の座標ｘ，ｙ，ｚの５つの変数で表現することができるので計算効率などを考慮しても合理的である。Ｐ４点の座標の更新にともなって、この誤差形状を更新する場合には、複雑な形状としないで、球の半径とその球が並ぶ長さに近似して、半径δＲ、長さδＬ、Ｐｃ点の座標ｘ，ｙ，ｚの５つの変数を更新するようにすれば良い。勿論、近似の時には近似した誤差形状が厳密な誤差形状より小さすぎることのないように半径δＲ、長さδＬを決めるようにする。
【０２９９】
次に、図４３を参照して撮像装置が移動して視点が変る場合の処理の方法の一例を説明する。図４３は、Ｏ１視点座標系は、撮像装置１０，２０の何れか１台の撮像装置の座標系を示しており、この位置から撮像装置がＯ２視点の位置に移動した状況を示しているものとする。ここで、撮像装置は、仮に左側の撮像装置１０であると考える。左側の撮像装置１０がＯ１視点にあるときに２台のカメラで先に説明した方法等を用いてステレオ計測すれば撮影対象の中の特徴点はＯ１視点座標系の３次元の点座標として計測されている。実際には、たくさんの特徴点が計測されるが、その中より対応点が一致して、計測の条件が良く、最も安定で、最も精度高く計測された点の中から３点を選ぶようにする。また、３点を選ぶ場合に精度が良いからと言って距離の近い３点を選ぶのもあとの変換精度が悪くなるので、適度に離れている点で安定で精度良く測定された点を選ぶようにする。計測できた特徴点が３点しかない場合はその３点を選択するしかないが、少なくとも３点が計測されてＯ２視点から撮影した場合もその３点が移っていれば画像情報によるトラッキングは継続できる。逆にいうと、３点得られない場合は画像情報によるトラッキングはできなくなるので、その場合には、再度、少なくとも対応する３点が移る状態になるまで待つか、別のセンサとして加速度センサやジャイロセンサ、磁気センサなどを撮像装置に取り付けておき、画像情報によりトラッキングできないときのカメラ位置を補間するようにしても良い。最初に抽出した３点以上の画像イメージ上の特徴点情報を消去しないで記録保存しておくようにすれば、途中は画像情報によるトラッキングができなくとも撮像装置が再度以前に撮影した近くに戻ってきた場合には、保存しておいた以前の画像イメージ上の特徴点情報を利用してそこからのトラッキング処理を再開継続するようにしても良い。
【０３００】
基本的なトラッキングの処理の例を説明すると、Ｏ１視点でステレオ計測された点Ｐ１，Ｐ２，Ｐ３が２次元の画像イメージ上で高速処理で見失わないようにトラッキングすれば撮像装置１０ａがＯ２視点の位置に移動してきた場合に点Ｐ１，Ｐ２，Ｐ３はステレオ計測によって、Ｏ２視点座標系の座標データとして求めることができる。２つの座標系で対応する３点Ｐ１，Ｐ２，Ｐ３のそれぞれの座標系での３次元座標が求まっているので、Ｏ１視点座標系とＯ２視点座標系の座標変換の関係式を求めれば、２次元画像イメージ上でトラッキングできなかった、あるいは、新たに撮像装置の視野に入ってきた、例えば点Ｐ４についてみれば、ステレオ計測でＯ２視点座標系の座標は求まり、それをＯ２視点座標系からＯ２視点座標系の座標値に変換することができる。このようにして、トラッキングを続けていき、少なくとも安定な３点のトラッキングができれば、全ての計測点は、最初のスタート時の同じ座標系に変換した３次元のＣＡＤデータが得られるようになる。
【０３０１】
次に、図５０を用いて単眼のカメラシステムの場合でも複眼のステレオカメラシステムの場合でも同じであるが、カメラの最初の視点Ｏ１座標系で既知の３点が存在する場合の同じカメラの移動後の視点Ｏ２座標系が未知の場合のＯ１座標系とＯ２座標系の座標変換の計算式を求める方法、すなわち、Ｏ１座標系におけるＯ２座標系の位置と姿勢を決定するトラッキングの手法について説明する。ここでの条件は、Ｏ１座標系でのＰ１，Ｐ２，Ｐ３の３次元座標が既知で２次元画像イメージ上の連続処理によって、Ｏ１視点位置のカメラの画像に写っている点Ｐ１，Ｐ２，Ｐ３とＯ２視点の位置のカメラの画像イメージに写っている点Ｐ１，Ｐ２，Ｐ３とは対応がとれているという条件である。
【０３０２】
Ｏ１座標系とＯ２座標系の座標変換の計算式の定数が未知であるので、それを未知の変数に置き換え、Ｏ１視点座標系にＯ２視点座標系の全ての点を置き換えて考える。視点Ｏ１と視点Ｏ１座標系のｘｙ平面（２次元のが画像に対応する平面）上の点Ｐ１を結ぶ線分の延長線と視点Ｏ２と視点Ｏ２座標系のｘｙ平面（２次元のが画像に対応する平面）上の点Ｐ１を結ぶ線分の延長線とがＯ１座標系の３次元空間の点Ｐ１で交わるという条件、視点Ｏ１と視点Ｏ１座標系のｘｙ平面（２次元のが画像に対応する平面）上の点Ｐ２を結ぶ線分の延長線と視点Ｏ２と視点Ｏ２座標系のｘｙ平面（２次元のが画像に対応する平面）上の点Ｐ２を結ぶ線分の延長線とがＯ１座標系の３次元空間の点Ｐ２で交わるという条件、視点Ｏ１と視点Ｏ１座標系のｘｙ平面（２次元のが画像に対応する平面）上の点Ｐ３を結ぶ線分の延長線と視点Ｏ２と視点Ｏ２座標系のｘｙ平面（２次元のが画像に対応する平面）上の点Ｐ３を結ぶ線分の延長線とがＯ１座標系の３次元空間の点Ｐ３で交わるという条件からの連立方程式を解くことによって、最初に未知と置いたＯ１座標系とＯ２座標系の座標変換の計算式の定数は求めることができる。これによって、Ｏ１座標系とＯ２座標系の位置関係が求まるので、ステレオ計測システムであれば、Ｏ２座標系で計測できた他の３次元点データをＯ１座標系の３次元点データに変換できる。また、ステレオ計測システムにおいても左右のカメラの間隔が狭いために遠方をステレオ計測する場合の測定精度は良くならないことから、ステレオカメラシステムの左右のカメラのどちらか、あるいは両方を少なくとも３点の対応する点をトラッキング処理によって得られれば、ここで説明した方法で離れた２箇所のカメラ位置の関係が求まるので、その条件を使って、すなわち、カメラが大きく移動する前の位置で撮影したときに抽出した特徴点とカメラがそれから十分離れた位置に移動してきた現在撮影した画像情報内で抽出した対応する特徴点候補を用いて、あらためてステレオ計測することによって、左右のカメラでステレオ計測する場合より遠方の撮影対象の計測精度のより良いＣＡＤデータを得ることができる。また、単眼システムの場合には、常に、カメラが十分移動してから、最初のカメラ位置の画像情報と離れた位置のカメラからの画像情報から、３ポイントの対応する点より座標変換の計算式を求め、そのカメラ間の位置関係の情報を参照して、前述したステレオ計測と同じような手法で３次元のＣＡＤデータを生成することができる。
【０３０３】
ここで、単眼カメラシステムの場合は、最初に３点の既知のポイントが必要になるが、その場合の手法を図５１を参照して説明する。
【０３０４】
撮像装置１０は、最初は基準となるベースに設置する。このとき、撮像装置１０をベースに何回着脱しても精度良く再現するように、ベース側と撮像装置側に印籠などの金具を取り付けておくのが良い。そして、ベースとの相対位置関係が頑強に変化しない関係でスタート時に視野に入るようにマーク６ａを設置するようにする。基準マーク６ａは、図に示すように十字でも何でも良いが、少なくとも３点、この場合は、例えば、基準マーク６ａの角の３点Ｐ１，Ｐ２，Ｐ３のベースに撮像装置１０を置いたときにカメラ座標系で精度良くその座標を求めておき、その座標値を使って、３ポイント法によるトラッキングと３Ｄ計測、ＣＡＤデータを生成をスタートさせるようにすることも可能となる。毎回、同じベースからスタートさせることになる。これは、点検検査装置などに適用する場合は、定期的に同じ個所を点検するような運用が行われるので、あらかじめ基準ベースと基準マークを設置しておくとか、基準ベースと基準マークが一体になったカメラスタンド治具をもって現場に入って現場にマーキングしておいた場所にそのカメラスタンド治具を設置して運用するようにしても良い。常設が難しい場合には、有効な手段である。現場マーキングの場所に設置する精度が多少悪くても、生成されるＣＡＤデータが相対的に前回実施時とずれるだけであるので、検査作業としての運用上はその程度の設置のしかたで十分である。
【０３０５】
また、単眼システムにおいて、基準マークを用いない方法もあるので、その方法に関連する内容をここで説明する。
【０３０６】
前述した８ポイント法は、対応する点が８ポイント以上について２次元画像イメージ上でトラッキングできれば、対応する８ポイントを用いて離れた撮像装置の視点座標系の座標変換の計算式が決まるものであるので、８ポイント法を用いれば、単眼システムでも、最初に基準マークを撮影しないでもスタートできるシステムを構築することができる。８ポイント法を用いる場合は、安定な８ポイントをいかに選択するかという点が重要になるので、処理としては、複数の対応点が２次元画像処理でトラッキングできている場合にはそれらの複数のトラッキングできた点群から８ポイントを選び、その８ポイントで座標変換の計算式を求め、その計算式で８ポイント以外の他の点を変換したときに精度良く一致する点の数を指標として、他の８ポイントの組み合わせ全ての場合において同じようにその指標を求めて、もっとも精度良く一致する他の点がたくさん生じる場合の計算式を求めるときに使った８ポイントが最も安定で精度良く対応のとれている点とうことで、その８ポイントで求めた座標変換の計算式を使うようにする。このようにして、常にトラッキングしながら、８ポイント法で計測していく方法もあるが、８ポイントの組み合わせの数だけ計算式を求めて、評価を繰り返す必要があるために、計算速度を十分早くして適用するか、あるいは、最初のみ８ポイント法で計測して、安定な３ポイントが求まった場合には、前述の３ポイント法に切り替えて動作するようにシステムを構築しても良い。この場合は、処理速度との関係で、撮像装置を最初はゆっくり動かすように運用で工夫することでも良い。
【０３０７】
画面上で常に対応点を８ポイント確保するためには、画像イメージの中の視野を大きく変化させると対応する８ポイントが得られなくなったり画面の片側のみに集中（片側に集中すると座標変換の計算式の精度に影響する場合もある）したりするので、３ポイントの方が対応点を確保しやすというメリットもあるので３ポイント法に切り替えるようにする方が良い。
【０３０８】
なお、ステレオ計測でも単眼システムでも同様であるが、少なくとも３ポイントのトラッキングができていれば画像処理によりトラッキングが継続できるが、安定なポイントが２ポイント以下になってしまった場合には、加速度センサやジャイロセンサなどの信号でカメラ移動位置を補間するようにしても良い。再開する場合には、ステレオカメラシステムの場合には、最初から３次元の点を計測できるので、途中、センサで補間しない場合でも、計測した３次元の点群データで過去に計測していた点群とのマッチングをとることによって見失った撮像装置を位置を見つけて、継続再開するようにもできる。そのとき、加速度センサやジャイロセンサにより、見失っていた期間の撮像装置の移動情報があれば、概略の位置が推定できるので、ＣＡＤデータで精度良くマッチングするにしても効率良くマッチング処理して現在の位置を精度良く見つけて再開しやすくなる。単眼システムの場合には、３ポイントを見失ったあとに再開する場合には、再度、８ポイント法から始めるようにする必要がある。
【０３０９】
次に、図５２を参照してステレオ計測の場合において、２次元画像情報上で色情報、その他のルールを使って対応する特徴点候補を絞り込む方法について説明する。図５２において、（ａ）と（ｂ）は、ステレオ計測している左右の画像イメージである。（ｂ）の特徴点７ａは、（ａ）の画像イメージの直線Ｌ１上にその対応点候補７ａとして存在する。ここで、特徴点７ａとその対応点候補７ａの回りの色情報で対応点候補が間違いないか否かを判断するが、この場合は、特徴点７ａと対応点候補７ａの色情報が良く一致しているので対応点候補として使用する。万一、画像イメージ（ａ）の外にもっと適切な対応点が存在する場合も考えられるが、その場合は、撮像装置が移動して別の視点から計測したときに特徴点７ａに対応する点が再度別の視点からも計測できたことを確認してから正規のＣＡＤデータにすることによって、このような錯覚点は容易に削除することができる。
【０３１０】
具体的には、最初の１回の計測の段階では計測されれた点データに１回目というフラグを設けておき、別の視点から、場合によっては、３つの視点から厳しく判定するようにしても良いが、２回以上計測できた場合にそのフラグをリセットするようにする。もちろん、１回計測のみの点も確認表示することはできるようにして良いが、データ上は区別して管理するようにする。その上で対応点のずれによる計測誤差が大きいものは、輪郭線として、誤差がほとんどないものは、実際線として区別して管理する。輪郭線も実際線もいろいろな視点から撮影して計測を繰り返すことによって、最初は実際線と思われた安定な点も良く見たら輪郭線だったということもあるので、輪郭線と実際線を０か１で区別するのではなく、対応点のずれによる計測誤差の大きさでランク付けするようにしても良い。実際線も違った視点で数多く対応点の誤差が少なく計測されれば、実際線として安定な線分である可能性が高くなるので、こういう計測回数などの情報も点データとして管理するようにするのが良い。そして、トラッキングなどで使用する点は、できるだけ安定な実際線が良いので、そういう線、特徴点を容易に見分けることができるような実際線か輪郭線かの識別管理を行うようにするのが良い。
【０３１１】
図５２の（ｃ），（ｄ）は、同じ左右の画像イメージであるが、撮影対象に１個の直方体が追加されたシーンの例である。画像イメージ（ｄ）の中の特徴点７ｂに対応する画像イメージ（ｃ）の中の特徴点候補はＬ２線上に存在して対応点候補７ｂがある。ここで、特徴点７ｂと対応点候補７ｂの周辺の色情報を比較すると、色１と色２は違うが点７ｂから繋がっている色の境界線分は３本あるが、３本とも両側の色が異なる線分はないので、十分対応点候補と考えて良い。
【０３１２】
次に、図７の（ｅ）と（ｆ）の場合であるが、この場合は、画像イメージ（ｆ）の特徴点７ｃに対応する画像イメージ（ｅ）の中の点は、線分Ｌ３上に対応点候補７ｃ、７ｄの２点が存在する。このような場合の処理も、まずは、同様に点から繋がる線分の左右の色情報を比較する。この場合で比較すると、（ｆ）の特徴点７ｃからは線分７ｉ，７ｊ，７ｋの３本が繋がっていて、（ｅ）の対応点候補７ｃからは線分７ｇ、７ｈが、対応点候補７ｄからは線分７ｅ、７ｆが繋がっている。色情報を比較する場合は、点に繋がっている色境界線分の点に向かって右と左を比較して、右が右どうし、左が左どうしで一致するか否かを見るようにする。そうすると、線分７ｋと線分７ｈが両側一致、線分７ｊと線分７ｇが片側一致、線分７ｉと線分７ｅが片側一致している。線分７ｉと線分７ｇや線分７ｆと７ｋも片側の色が一致しているが、これらについては、それそれの線分を重ね合わせようとするときの回転しなければならない角度が大きいので、通常のステレオ計測で考えられない所定の回転角度以上は除くような処理も入れて良い。その上で判断するようにしたとしても、２つの対応点候補７ｃ，７ｄには、それぞれ少なくとも片側の色情報が非常に一致する線分が繋がっているのでそちらも対応点候補となり、絞り込まずにここでこれらの点は絞り込めないため処理を行わないようにして良い。この場合は、次に撮像装置が移動して別の視点から計測することで、対応点が本当に存在する場合には、そのときに計測できるようにすれば良い。また、更に絞り込む処理として、対応点候補７ｃと７ｄでの線分の色情報比較結果で対応点候補７ｄは線分１本であるが、対応点候補７ｃは線分７ｈと７ｇの２本が対応する色境界線分になっているので、その線分の数を判別の指標にして、この場合は対応点候補を７ｃに絞り込むようにしても良い。この対応点候補７ｃの場合には、ここでは候補として残ってステレオ計測して３次元の点のＣＡＤデータに変換することはできるが、実際には存在しない錯覚点であるため、次に撮像装置が移動して同様に計測されるまでは１回目のフラグが消えない状態でこのような点であることは識別することができる。計測した点周辺で別の視点から計測しているはずなのに、１回計測した点が存在しない場合には当該の点データは消去するようにしても良い。
【０３１３】
実際には、完全な対応点判別を行なおうとすると、いろいろな判別を行い、処理時間も長くなるので、簡略化した判別処理を行なってもよい。また、対応点探索で１００％間違いないように処理するのは処理時間もかかり非常に大変になるので、間違った対応点で３Ｄ計測を行なってしまうと３次元の空間に実際には存在しない誤った３次元の点データが生成されるが、それを視点が移動する間に継続して同じ場所に同じ点が生成されるかをチェックすることによって、誤った対応点で計測した３Ｄ点であることを判別できるので、その関係を利用して、誤った対応点でステレオ計測してしまった３Ｄ計測点をキャンセルするような処理を入れても良い。
【０３１４】
また、判別の別の方法として、ステレオ計測を行なった左右の画像の対応点を左右それぞれの２次元の画像内でトラッキングを行い別の視点位置から再度同じ対応点どうしでステレオ計測をしようとすると、例えば、図５２（ｅ）のＬ３などの右画像の対応点による左画像上の線分Ｌ３の上に左の画像の対応点が乗らなくなり、線分Ｌ３から離れる関係になって、ステレオ計測できる対応点ではないということが視点が変わることによって判別することができるようになるので、その関係を利用して、誤った対応点でステレオ計測してしまった３Ｄ計測点をキャンセルするような処理としても良い。
【０３１５】
ここでは、境界線分の色情報の比較を行っているが、感度を落として抽出される線分の量を少なくしたような場合には、マクロ的な手法もるので説明しておく。それは、線分に左右の色情報をもたせて比較するかわりに、色境界線分は特徴点に放射状にあつまるので、少し大きなエリアを想定して２次元の画像のマッチング（相関性）をとる方法でも良い。この場合、特徴点から放射状に広がるので領域は扇形あるいは三角形や四角形になる。半径はあらかじめ所定の微小領域として決めておけば良い。但し、対応する扇の放射線分の開き角度は対応候補の色境界線分の開き角度と異なるので、同じ形状になるように変形処理を行って同じ形、大きさにしてから扇や三角、微小四角領域などで２次元の相関マッチングを行うようにする。
【０３１６】
次に、図５３〜図６６を用いて、２次元画像上で色境界線分の色情報などを用いてトラッキングを行う場合の対応点候補の絞込みの方法の一例を説明する。
【０３１７】
図５３の（Ａ）は同じカメラの移動前の画像イメージ、（Ｂ）は移動後の画像イメージを示している。ここでは、画像イメージ（Ａ）の中の特徴点８ｃに着目してその対応点候補を画像イメージ（Ｂ）の中より探索して絞り込むものである。特徴点８ｃには色境界線分８ｂと８ｄが繋がっている。今、画像イメージ（Ａ）を撮影してから、所定の時間間隔で画像イメージ（Ｂ）を撮影したとすると、その時間間隔の間に撮像装置が移動することによって特徴点８ｃの対応点候補の移動量が推定される。処理速度の関係から決まる撮影の時間間隔と撮像装置のその応用システム上での最大移動速度、回転速度などを考慮すれば、ある所定の時間内に画像イメージ内で移動する量は推定できるので、その移動量の内側を対応点候補の探索範囲と考える。この実施例では、特徴点８ｃの周囲に半径ｄ／２の円を考えてその中で探索するようにしても良いし、領域は円ではなく１辺の長さがｄの正方形としても良い。長さｄが撮像装置の移動速度と処理速度を考慮して決める探索範囲の大きさである。当然のことであるが、処理速度を上げれば上げるほど探索領域は小さくすることができるので、処理速度は可能な限り早くするのが良い。また、特殊な場合は微小領域が大きくなって、最大は画面エリア全体の中から対応点候補を絞り込む場合においてもここで説明する方法で実施することができる。
【０３１８】
ここでは、画像イメージ（Ｂ）の中の探索領域内には特徴点候補の点として３点８ｆ，８ｇ，８ｈが存在している場合の例を示している。領域内の候補を探索したらば、次の処理としては、色境界線分の両側の色情報が少なくとも片側が精度良く一致するものを対応点候補として残すようにする。これは、ステレオ計測の場合は線上から候補を探索した代わりにトラッキングでは微小エリア内から探索するところが違うが、その後の対応点候補を絞込み処理は、基本的には同じ方法を適用することができる。
【０３１９】
図５３の（ａ）では、対応点候補８ｆに特徴点８ｃを重ね合わせて、それらの点に結ばれる色境界線分どうしの左右の色情報を比較する。この場合は、対応点候補８ｆに繋がる線分は３本で特徴点８ｃに繋がる線分は２本であるが、繋がる線分の本数はこの視点からの撮影で必ずしも対応点でも同じ色境界線分が抽出されるとは限らないので、ここでの処理では、あまり気にする必要はない。
【０３２０】
同様に、（ｂ）では、対応点候補８ｈに特徴点８ｃを重ね合わせて、そこから繋がる色境界線線分の両側の色を比較する。
【０３２１】
同様に、（ｃ）では、対応点候補８ｇに特徴点８ｃを重ね合わせて、そこから繋がる色境界線分の両側の色情報を比較する。そして、左右の色情報の少なくとも片側が精度良く同じ色で一致した場合にはその線分は対応線分候補する。そして次の絞込み処理を行う。
【０３２２】
次の処理は、ステレオ計測の場合にも適用すると同じであるが、１本の色境界線分を合わせるときにその線分に繋がる他の点の同じ変換結果がどれ程ずれるかという指標で絞り込むようにしても良い。図５４の（ａ）の特徴点８ａを対応点候補９ｂに合わせて線分８ａ８ｃを線分９ｂ９ｃに合わせるようにする変換式を求めて同じ変換を線分８ｃ８ｅについて行ったときにその写像線分と線分９ｃ９ｄとの一致度をδθの回転量の誤差とδｒの長さの誤差などの指標で行うものである。
【０３２３】
図５４の（ｂ）は、特徴点８ａを対応点９ｆに合わせるようにして、同様に線分８ａ８ｃを線分９ｆ９ｇに合わせるように変形させたときに、線分８ｃ８ｅの写像と線分９ｇ９ｈとの一致度をδθの回転量の誤差とδｒの長さの誤差を求めようとする例である。この指標の大小で絞込み、次の絞込み処理としては形の一致度として更に繋がる線分のマッチング性の高いものを選ぶようにする。それから、トラッキングの場合には回転も大きくなるが、全体が基本的には同じように変形されるので、全体の傾向の一致度を変換式が似ているか否かで大きく違うものは除くように処理する。特にマッチング度の高い変換式に近い変換式を有する対応点候補は対応点候補として残すように処理する。
【０３２４】
このように、絞込みを行う方法はいろいろ考えられるが、あらかじめルール（処理の内容と優先度）を決めておき、絞り込めるまで絞込みを行うようにすれば良い。そして、最後にどうしても絞り込めないで複数候補が残った場合には、トラッキングの場合には、次のように処理することも可能である。それは複数残った場合でも、その他に良く一致する３点の対応点が見付かっている場合には、その３点を用いてトラッキング行えば良い。３点以上ある場合には、複数の対応点候補の中より３点を選んでその３点の座標変換の計算式を求めて３点以外の他の点をその計算式を使って写像させて精度良く一致する点の数を指標として、その指標の一番良くなる３点を使ってトラッキングするようにするが、このときに、１点の特徴点の対応点候補が絞り込めないで複数残った場合は、その点は更に複数残った対応点候補も３点の組み合わせ選択の中に含めて指標を調べてみるようにしても良い。特に、これは、抽出される特徴点が少ないような場合には全体として対応点候補も少ないときなどは１点の対応点を絞り込めない中に本当の精度の良い対応点が存在する場合もあるので有効な処理になる。
【０３２５】
また、図５５〜図５７を用いて、色境界線分の色情報のみではなく、色境界線分の構成する面の色情報も積極的に利用して対応点候補あるいは対応面候補の絞込みを行う方法の一実施例を説明する。このような絞込みの方法はステレオ計測の場合は線分上で、トラッキング探索の場合は推定エリア内での探索になるが、同じように適用できる手法である。また、色境界線分のみでの絞込みでは、線分の抽出感度を下げて大きな変化点のみを抽出して対応点探索を行うマクロ的マッチングと線分の抽出感度を上げて微妙な色境界線を抽出してその線分の対応点を絞り込もうとするミクロ的マッチングを組み合わせて処理を行うことも考えられるが、ここで説明する手法は、例えば、同じような模様が複数存在する撮影対象の中でどの模様が別の視点から撮影された画像の中の対応する模様かの対応付けをしたいような場合にも有効な手法であり、マクロ的マッチングには面の色情報マッチングを行い、ミクロ的マッチングに色境界線分のマッチングを行うようにした場合の一実施例である。この手法の場合は色境界線分は面データを構成するとともに、色境界線分が閉ループ、すなわち、面を構成しないような場合も、全ての色境界線分は面データを構成するか、あるいは面データに付いているという関係を利用してＣＡＤデータを管理するようにすることで、どの線分はどの面に付いている線分かが処理の中でいつでも参照できるようになるので、面によるマクロ的マッチングから線分によるミクロ的マッチングへ、マクロ的絞り込み情報を有効に利用してミクロ的マッチングの処理へ繋げることも容易に行えるようになる。
【０３２６】
図５５は、ある画像の色境界線分を抽出した結果得られた線分の一部分を示している。多数の特徴点を色境界線分が抽出されている。例えば、点９ｉ，点９ｊは特徴点であり、線分９ｉ９ｊは色境界線分の一つである。
【０３２７】
ここで、図５５の線分の抽出方法は、後で図６８を用いて詳細は説明するが、最も正確に感度良く色境界線分の抽出できる色の変曲点を抽出するような手法を用いる。これは、ミクロマッチングはより高精度で対応点を求めるので、それに使用する線分はより正確に抽出されたものが良いからである。但し、この手法で行うと、感度、精度が良いために、閉ループを構成しない線分も抽出される。端点９ｐ，９ｑと間の部分は色がグラディエーションのように徐々に変化しているような部分で色の変曲点として抽出されていない状況である。面によるマクロマッチングを行うためには面を抽出する必要がある。
【０３２８】
図５６の（ａ）〜（ｄ）は、色の面の抽出方法の例をいくつか説明する図である。図５６の（ａ）の例は、閉ループになっていない色線分の端点９ｐと端点９ｑの例えば輝度レベルの平均値の輝度レベルの等高線を抽出する方法によって閉ループである面９Ａを抽出した例である。端点９ｐと端点９ｑの輝度と平均輝度が一致しない場合は、等高線からは端点９ｐと端点９ｑを通らない閉ループである面９Ａが抽出される。
【０３２９】
また、図５６の（ｂ）は、色境界線分９ｎ９ｐの色境界の輝度値で等高線を抽出する方法で閉ループである面９Ａを抽出した例である。この場合、面９Ａの等高線は、色境界線分９ｎ９ｐに一致している例である。しかし、その他の厳密に抽出した色境界線分と閉ループにはなるが厳密性の劣る等高線として抽出した別の色境界線分は一致していないという例である。
【０３３０】
図５６の（ｃ）の例は、厳密に抽出した色境界線をそのまま生かして閉ループになっていない端点９ｐ，９ｑを結ぶように処理する場合の一例である。端点９ｐと９ｑをむずぶ線分９ｎ９ｐは、厳密に抽出された色境界線分とは区別するために、閉ループ化のための仮想線分として種類を区別して線分データは管理するようにする。閉ループを生成するためにどのように仮想線分を結ぶかはいろいろな方法があるが、ここでは、一例を説明する。どのように閉ループが構成できるかの組み合わせはたくさんあるので、それぞれの特徴点から近くの特徴点を結んで良いかどうかを判定しながら適切な仮想線分を得るようにする。例えば、特徴点９ｍ，９ｎを結んでも閉ループは生成できるが、この場合、例えば、仮想線分９ｍ９ｎの左右の法線方向を調べて最も近い境界線分に至るまでの平均色を左右で求めて、左右の平均色が似ている場合は同じ色の平面内に仮想線分９ｍ９ｎを結ぼうとしていることがわかるので、その場合には仮想線分９ｍ９ｎは結ばないようにするなどの方法である。そのようにして、いろいろな組み合わせを行い、最も左右の平均色が違う部分を仮想線分として引くようにすると、同じ色の閉ループ内に仮想境界線分を引かないようにすることができる。この手法であれば、厳密な色境界線分と面データの境界線分は一致するようにして全てのエリアを面データに区切ることも可能となる。
【０３３１】
図５６の（ｄ）は、別の例で、単純に同じような色の部分を所定の輝度レベルで等高線を引いて面を抽出するようにした例である。厳密な色境界線分と面データの境界線分は一致しない。この場合、厳密に抽出した色境界線分は、全てどれかの面の中に存在しているので、その関係を使って、最初に面でのマクロマッチングにより同じ色、同じ形の面を選択するようにして対応面絞込みを行った後、対応する面の中という限られたエリアの中でミクロマッチングにより厳密に抽出された色境界線分の対応線分、対応点の絞込みを行えるようにすることができる。これは、厳密な色境界線を抽出して精度の高い視覚情報処理システムを得たい場合の一手法であるが、勿論、より、単純な視覚情報処理システムとしては、厳密に抽出した色境界線分は用いないで、全ての線分を色境界の等高線で抽出して閉ループの面を構成する線分のみで処理をするようにすることでも良い。この場合は、生成される３次元ＣＡＤデータの精度もそれなりのものとなる。
【０３３２】
次に、図５７の（ａ）〜（ｆ）を用いて、同じ模様が一つの画像イメージの中に複数存在する場合の対応面、対応線分、対応点の絞込みの方法の一例を説明する。
【０３３３】
図５７の（ａ）は、ある視点から撮影した画像情報の色境界の閉ループを抽出した画像イメージの中の一部分を示す。抽出方法は、ここでは、先に説明した図５６の（ｃ）の方法で厳密な色境界線分を利用して閉ループの面データを生成した状態を示す。図５７の（ｃ）は、視点を少し移動して同様な処理を行った画像イメージの対応する部分を示すが、画像イメージは、視点が少し移動したため斜めから見たように変形している状況を示している。
【０３３４】
ここで、最初の処理結果（ａ）の色境界特徴線分、特徴点の対応点が処理結果（ｃ）の中から探索して対応候補を絞り込む場合を考える。ここれは、マクロマッチングとして、面９Ａの対応面を探索する場合で説明する。まず、ステップ１では、処理結果（ａ）の中の面９Ａの図形データを変形処理させながら処理結果（ｃ）の図形データである面９Ａ，９Ｂ，９Ｃ，…，９Ｌ，…の全ての面とのマッチングをとって一番マッチングの高いもの、他の面のマッチングにおける変形処理の係数で同じ傾向にあるか否かなどで絞り込むと、処理結果（ｃ）の中の面９Ａと面９Ｇが同じ程度に非常に良くマッチングするというマッチング結果が得られる。ここでの変形処理とは、図形を透明の平面ガラスの上に置いて、そのガラス板を持って、前後左右に傾けたり、遠ざけたり近づけたり、あるいは、回転させたりして一致するようにする処理であり、通常の座標変換処理でｘ，ｙ，ｚの平行移動量とα，β，γの方向余弦の６つのパラメータを調整することに相当するものである。これらの係数の傾向を見る場合には、傾向は、撮影距離の大小によって異なるので同じ近傍であれば同じ傾向にあり、また、距離に応じた係数の変化傾向はあるが、撮影画像全体で同じ係数になるとは限らないので注意を要する。また、処理を簡略化するために、変形度合いの少ない場合、すなわち、２つの撮影視点の変化がわずかな場合には、対応点探索の精度が多少低下するために対応点の得られる数は減る場合もあるが、省略する方法を用いても良い。このステップ１では、処理結果（ｃ）の面９Ａと９Ｇの２つの対応面候補が得られる。これは、複数の同じような模様が並んでいるようなシーンを撮影するような場合は、２つに限らず、複数個の対応面候補が残る。
【０３３５】
そこで、次の処理として、ステップ２を実行する。ステップ１では、処理結果（ａ）の面９Ａのみでマッチング処理を行ったが、ここでは、処理結果（ａ）の面９Ａの境界周辺に存在する面まで含めた面でのマッチング処理を行う。この例の場合は、処理結果（ａ）の面９Ａの周囲には、面９Ｂ、面９Ｃ、面９Ｄの３つがあるので、それぞれ、１面づつを組み合せて、マッチング処理を行うようにする。
【０３３６】
具体的には、図５７の（ｄ），（ｅ），（ｆ）に示すように、それぞれ変形処理を行ってマッチング処理を行う。その結果、変形処理（ｄ），（ｆ）は、処理結果（ａ）の中にも同じ模様構成になっているため一致度が高くなるが、変形処理（ｅ）の結果では、処理結果（ｃ）の面９Ａ側ではマッチング度が高くなるが、面９Ｇ側では、処理結果（ａ）の面９Ｃと処理結果（ｃ）の面９Ｊとは違う色、形状の面であるために、マッチング度が低くなり、その結果、処理結果（ａ）の中で２つ残っていた対応面候補の面９Ａと面９Ｇのうち、面９Ａの方がよりそれらしいということで絞り込むことが可能となる。但し、ここで注意を要することは、変形処理（ｄ）と変形処理（ｆ）ではマッチングしているので、厳密には、面９Ｇもまだ対応面候補である可能性がある。それは、面９Ａと面９Ｃの境界線分が背景との輪郭線である場合は対応する面でも一致しない場合があるからである。そういうことから、処理としては、周囲の面を一つづく組み合わせて変形処理を行った結果、一つでもマッチング度の高い結果がある場合にはまだ対応点候補として残しておき、次の処理として、一致したものは、更に周囲の隣接面を加えて同じような処理を組み合わせる面を増やしていきながら行うようにする。同じ模様が密集している場合には、一つの面（ここでは面９Ａ）の回りの面をどんどん組み合わせて広い複数面どおしのマッチング処理を行うようにする。そして、画像シーンの末端に違う模様が存在すれば、そこまで含めたマッチング処理に拡大していけば、マッチングする対応面候補とそうではないものを絞り込むことが可能となる。但し、撮影した画像シーン内の全てが同じ模様のパターンで埋まっているような場合は、この手法を適用しても対応面を絞り込むことはできない。これは理論的に絞り込めない画像情報ということになるので、そのような場合には、処理をしないようにして良い。このようにして、複数同じ模様が存在する場合でもその同じでない範囲まで広げたマクロマッチングで対応面を絞り込むことが可能となる。対応面が絞り込めたらば、その面に付いている線分どおしのミクロマッチング処理をその対応する面内で行うことによって、詳細部分を抽出している厳密な色境界線分、閉ループになっていない色境界線分についても対応線分、対応点を絞り込みすることが可能となる。ここで、線分が面に付いているというデータの管理上の概念は、本手法などを用いて３次元ＣＡＤデータを生成したり、より精度が良くなった場合に更新したりする場合には、処理対象の面や線分のデータを容易に参照できるようにするために有効な手法である。
【０３３７】
最初のＣＡＤデータが生成される前の最初には、背景という仮想面を定義して、何か生成された線分データや面データは、その背景という仮想面に付いているという考え方からデータを管理していくようにする。そして、線分は、閉ループになればそれは面データになるので、この面データも背景という仮想面に付いている面データとして管理する。更に、その面の中の線分が閉ループになり面データが生成された場合には、背景という仮想面データについている面データにその面は付いているということになる。このように、一番背景の仮想面データを頂点として、その下に線分データや面データが存在して、各面データの下には同様に線分データや面データが存在するというツリー状のデータ管理を行うことで、参照したい処理対象のＣＡＤデータを容易に参照できる。ここで、マクロマッチングのために引いた仮想線分は仮想線分として、また、仮想線分によって閉ループとなった面データはその段階ではまだ仮想面データであるので、実際の線分データや面データとは区別して管理するようにして、実際にモニタ表示する場合には仮想線分や仮想面は表示しないようにするのが、実際の情景に対応したＣＡＤデータになる。但し、形状データとしては、仮想線分や仮想面の処理の上で有効に使用できる場合は使用すれば良いので、どちらのデータも管理するが、区別して管理するようにするのが良い。また、本手法のように、仮想線分や仮想面データを生成して、各画像シーンの写る物体の全てが閉ループの図形になって表現するようにした場合には、厳密な色境界線分のみで処理すると閉ループでない線分から閉ループ図形に変化し、また、再度閉ループでない線分に変化するような場合の処理（詳細は図    １４を用いて後述する処理）のようなことは行わないようにしても良い。このときに各面データが面を構成する線分だけではマッチングなどの処理速度が遅くなる場合もあるので、高速化のために、各閉ループ図形の図心、面積、最大の縦横長さ、週長さ、凹凸の方向ベクトルなどを求めるようにして、閉ループ基本図形のマッチング照合を短時間に行えるようにしても良い。
【０３３８】
このようにマクロマッチングとミクロマッチングを行うようにするのが良いのであるが、感度を上げてミクロマッチング用の色境界線分を抽出しても微妙な線分を抽出しているのでわずかに視点が動くとミクロマッチングの段階でもマッチングがとれない場合もある。それは、視点変化の影響（ノイズ）の方が検出したい色境界線分より大きいということによる。そういう場合には、レーザー光を投射したりして、形状の微妙な凸凹を安定な色境界線を積極的に作って検出するようにしても良い。マクロマッチングは、感度を下げて、すなわち、厳密性を犠牲にしてラフに行う処理に相当するので処理速度も速くできることから、感度をリモートで変更（例えば、視覚情報処理装置へのコマンド指令などで変更、マッチングもマクロかミクロかをコマンドで指令できるようにしても良い。）できるようにしておくことにより、通常は、ラフなマクロマッチングにより粗いＣＡＤデータを生成しておき、必要なときに必要な個所の感度を上げてミクロマッチングによる詳細なＣＡＤデータを生成するようにしても良い。マクロマッチングとミクロマッチングの順番は逆に行っても良い。すなわち、最初からマクロマッチングを必ず行うようにするのではなく、最初にミクロマッチングで複数候補が絞れ込めない場合にマクロマッチングにより絞り込むようにしてマクロマッチング不要時の処理速度の高速化を図るようにしても良い。
【０３３９】
また、図５８〜図６６を用いて、別の手法のマクロマッチングの方法として、周囲の特徴点との関係を利用して絞り込みを行う基本的な方法の例を説明する。このような絞込みの方法は、ステレオ計測の場合は線分上で、トラッキング探索の場合は推定エリア内での探索で同じように適用できることは勿論であるが、その他にも、探索時に用いるＣＡＤデータに変換した後の２次元模様や３次元形状のパターンマッチングで相関性の高い対象部分を見つけるときにも適用可能な手法である。
【０３４０】
図５８は、撮像装置から入力された画像情報を２次元のＣＡＤデータに変換したイメージを示す。ここでは、理解を容易にするために、極めて単純な画像情報を処理したイメージで説明する。画像情報の全体は、閉ループのそれぞれの色情報を有した図形９Ｍ，９Ｎ，９Ｐ，９Ｑ，９Ｒ，９Ｓ，９Ｔ，９Ｕの８つに色境界線分によって分割処理されている。ここでは、厳密な色境界線分のみによって閉ループ図形が生成されているが、勿論、仮想線分や仮想面を定義しても良い。また、画像情報のフレーム枠の部分については、実際にその外側にある面の色境界線分はまだ不明であるため、仮想線分を用いて仮想面を定義してある。例えば、面９Ｍは、線分Ｌ１，Ｌ２，Ｌ３，Ｌ４から構成されるが、その中の点９ｒ，９ｓ，９ｕは、画像情報のフレーム枠上にある仮想点であり、線分Ｌ１，Ｌ２，Ｌ３，Ｌ４ともに両端点の少なくとも片側が仮想点のため、まだ、この段階では仮想線分であり、面９Ｍも仮想面である。面９Ｑ，９Ｒ，９Ｓ，９Ｔ，９Ｕは、閉ループ図形に仮想線分が使われていなければ、画像フレームの中に全て入っているので、実際の面データとして生成されている部分である。ＣＡＤのデータとしては、面９Ｎに面９Ｑ，９Ｒ，９Ｓ，９Ｕと線分Ｌ７が付いているというように管理する。また、面９Ｔは面９Ｓに付いており、線分Ｌ８は面９Ｔに付いているということになる。また、これから、各特長点を３次元計測して、それに繋がる線分や線分が構成する面として３次元ＣＡＤデータを生成した場合にもこの関係は基本的に同じであるが、３次元の場合には、先に述べたように、最初に背景という仮想面が一番後にあると考える。このようなデータ構成をとることで、花や草木や着物などの柔らかでしわのあるような物体のＣＡＤデータの表現も容易になる。また、３次元データの場合に注意を要することは、線分や面データが所定の面に付いているかどうかというのは、それらのデータが有する位置情報などから判断するとか、３次元の空間にある面に当該線分、面が付いているか否かを判断する処理が必要になる。２次元ＣＡＤデータでは、後にある面の手前にある線分や面データがその画像の中では付いているように見えるだけである場合もあるため、２次元ＣＡＤデータ上で付いているという関係であったものが、必ずしも３次元データ上でも付いている関係にあるとは限らないので、３次元データを生成していくときにはその関係は調べるようにするのが良い。２次元のデータでは、処理の便宜上、付いているというデータ構成をとって良いということである。２次元データでは、必ずしも、そのようなデータ管理をする必要はない。３次元データの場合には、処理が広大な３次元空間であることから、処理対象を絞り込みやすくするために、そのようなデータの構成をとった方が効率的に処理ができるということである。
【０３４１】
次に、この画像処理結果のイメージ（図５８）で撮像装置の視点が変わって別の視点から同じように同じ部分を撮影して、いわいるステレオ計測やトラッキングを行う場合に、同じような処理を新たに撮像装置から入力された画像についても行うようにする。ここで、対応する色境界線分や特徴点を絞り込む別の方法について説明する。ここでは、図５８に示す画像イメージの特徴点９ｖの対応点を視点の変わった別の画像イメージの中から探索する。別の画像イメージも視点は変わるが、視野には同じような画像イメージ（図５８）と同じような範囲が入っているものとする。そうすると、ミクロマッチングで特徴点９ｖに繋がる色境界線分Ｌ５，Ｌ６だけでマッチングを行うと同じよな模様が同じシーンの中に複数あるので、別の特徴点９ｗ，９ｘも同じような特徴があって、ミクロマッチングだけでは絞り込むことが困難となる。そこで、マクロ的に離れた位置の特徴点情報も積極的に用いてマクロ的なマッチングを行うが、その効率的な手法として、他の特徴点の方向と長さを有するベクトルとその先にある特徴点の有する色情報を用いてマッチングをする場合の一手法を説明する。
【０３４２】
図５９（ａ）は、対応点を探索したい特徴点９ｖの色境界線分Ｌ５、線分Ｌ６が作る領域の狭い方について、近傍の特徴点までのベクトルＶ１，Ｖ２，Ｖ３を引いた概念を示す。このベクトルを視点の変化に対応する前述の形状変形処理（ｂ）を行って、新しい視点で撮影した画像の処理結果（ｃ）の中の対応点候補の全てにつても同様にベクトルを引いて、そのベクトルとその先にある特徴点の色情報の一致度より絞り込みを行う。変形処理は、簡略化するときには省略する方法を用いても良い。
【０３４３】
図６０と図６１は、新しい視点で撮影した画像情報の処理結果（図５９（ｃ））の中の対応点候補としてミクロマッチングでは絞込みできなかった特長点９ｗ，９ｘについて、同様にベクトルを引いた概念を示す。ここで、図６０の場合は、面９Ｓに付いている面９Ｔや線分Ｌ８があるため、それらを構成する特徴点へのベクトルＶ１〜Ｖ６の多数が引かれる。この段階で図５９（ａ）のベクトルＶ１とＶ３は、図６０のベクトルＶ１，Ｖ６と一致するが、図５９（ａ）のベクトルＶ２に相当する方向には、図６０のベクトルＶ２〜Ｖ５が存在するので、点９ｗは対応点でない可能性が高いことが分かる。
【０３４４】
また、図６２は、特徴点９ｖからの色境界線分Ｌ５，Ｌ６が作る広い側の領域についても、同様にベクトルを引いて、また、視点の変わった後の画像情報で対応点候補９ｖ，９ｗ，９ｘの各々から同様にベクトルを引いた概念を示す。このようにベクトルを引いて比較すると、対応点候補９ｖは、対応点候補９ｗ，９ｘより引いたベクトルが一致することより、真に対応する特徴点を絞り込むことが可能となる。
【０３４５】
以下に、ベクトルの具体的なデータ比較の一例を示す。簡単のために、ベクトル４本とベクトル６本の比較で説明する。各々、ベクトルの方向、長さ、先の特徴点の色情報から構成する。方向は基準線分（例えば、特徴点９ｖであれば線分Ｌ５や線分Ｌ６）からのベクトルの時計周りの角度などで表現して良い。
【０３４６】
＜対応点を探したい特徴点Ｐのベクトルデータの一例＞
ベクトル  方向      長さ    先の特徴点の色情報
ＰＶ１      角度１    距離１  縦境界線で左色Ｌ１、右色Ｒ１
ＰＶ２      角度２    距離２  横境界線で左色Ｌ２、右色Ｒ２
ＰＶ３      角度３    距離３  縦境界線で左色Ｌ３、右色Ｒ３
ＰＶ４      角度４    距離４  横境界線で左色Ｌ４、右色Ｒ４
＜１対応点候補Ｑのベクトルデータの一例＞
ベクトル  方向      長さ    先の特徴点の色情報
ＱＶ１      角度１    距離１  縦境界線で左色Ｌ１、右色Ｒ１
ＱＶ２      角度２    距離２  横境界線で左色Ｌ２、右色Ｒ２
ＱＶ３      角度３    距離３  縦境界線で左色Ｌ３、右色Ｒ３
ＱＶ４      角度４    距離４  横境界線で左色Ｌ４、右色Ｒ４
ＱＶ５      角度５    距離５  縦境界線で左色Ｌ５、右色Ｒ５
ＱＶ６      角度６    距離６  横境界線で左色Ｌ６、右色Ｒ６
ここで、特徴点Ｐから引いたベクトルはＰＶ１〜ＰＶ４の４本あって、対応点候補Ｑから引いたベクトルはＱＶ１〜ＱＶ６の６本であるが、本数はその撮影時に安定に特徴点が抽出されるか否かの相違が生じるので、対応点であってもベクトルの本数は一致しない。この例では、例えば、ベクトルＰＶ２とＱＶ２、ベクトルＰＶ４とベクトルＱＶ５が非常に良く一致しているという結果になる場合もあるが、それでも十分に対応点候補になりうる。それは、一致するベクトルの本数もどちらかで特徴点は抽出されて、どちらかでは抽出されていない場合もあるので、引いたベクトルの全部が一致するか否かで判別するのではなく、その中に先の特徴点の色情報までが一致するベクトルが何本あるかという情報で、他の候補点との相対的な比較で、どちらがより一致度が高いかで絞り込みを行うようにするのが良い。また、この処理において、比較は、対応点を探索したい特徴点９ｖに繋がる色境界線Ｌ５，Ｌ６の作る領域ごとに行う。比較結果は、別の視点で初めて視野に入った背景との境界線分（輪郭線）である可能性もあるので、必ずしも全ての領域で一致するとは限らないので、領域ごとに比較して、一致する、あるいは、一致度の高い領域が多くあるものを対応点候補して絞り込むようにする。この例では、色境界線分Ｌ５，Ｌ６が２本であるため、特徴点９ｖ回り３６０度を２つに分割する領域でそれぞれベクトルを引いて一致度を調べるが、色境界線分が３本であれば領域も３つになるように、色境界線分の数に応じて多数の領域に分割して調べることになる。１本の色境界線分の端点の場合は、３６０度の範囲の１領域で調べる。また、この例では、その領域の中でベクトルを引く場合にベクトルが他の色境界線分に届く場合はそれ以上先の特徴点までは引かないようにした例であるが、ベクトルの一致度傾向の高い領域の有無を調べるようにするので他の色境界線分の向こう側にある特徴点までベクトルを引くようにして比較するようにしても良い。
【０３４７】
ここで、図６３の（ａ）〜（ｅ）を参照して、判別ロジックの例を説明する。図６３の（ａ），（ｂ），（ｃ）は、図５８の面９Ｒ，９Ｓ，９Ｕのように、同じような形の形状を有する対応点候補のそれぞれにベクトルを引いて絞り込む場合の領域を図示したものである。いずれも、角度の狭い方が領域（１）で角度の大きな方が領域（２）になる。この例では、領域は２つの場合であるが、３つ、４つになる場合もある。また、処理を簡略化するために、色境界線を水平と垂直の方向で検出する場合、その検出された方向に領域を分割するようにしても良い。水平と垂直の両方に色境界線が抽出される場合は４つの領域になる。この簡略方式は、視点の変化に回転成分が含まれていないステレオ計測時の対応点探索時などには有効である。また、領域は必ずしもはっきり抽出できないような場合もあるので、ベクトルの一致度を一方向回りに順番に調べて一致するベクトルの割合の大きな領域と小さな領域の境目を後から領域と見なして処理をするようにしても良い。この方法は、視点の変化に回転成分の生じるトラッキング時の対応点探索時などには有効である。
【０３４８】
ここで、領域（１）と領域（２）について、その領域内のベクトルの一致頻度が他と比較して十分高い場合に○、そうではない場合を×として判別する場合の一例を図６３の（ｄ）と（ｅ）に示す。（ｄ）は、対応点候補（ａ）は領域（１）と領域（２）で一致度が高く、対応点候補（ｃ）の領域（１）の一致度が高い結果となっている例であるが、このような場合には対応点候補（ｂ）は除けるが、対応点候補（ａ）と対応点候補（ｃ）は、この結果だけからは絞り込むことはできない。対応点候補（ｃ）は領域（２）側が背景でたまたま一致度が低かった可能性があるためである。勿論、対応点候補（ｃ）が領域（１）と領域（２）の両方で×であれば、対応点候補（ａ）は領域（１）と（２）の両方が○であり、絞り込むことができる。また、（ｄ）は、対応点候補（ａ）の領域（１）のみが○であるが、このように領域の一つでも○があって、他には○がなければ、対応点候補として絞込み可能となる。２つ以上の対応点候補に少なくとも一つ以上の領域に○がある場合には、そのマッチング処理だけでは対応点候補を一つに絞り込むことはまだできないという結果になる。そのような場合には、ベクトルが一致すると判別する角度と長さの許容誤差範囲を狭くしたり、ベクトル先端の色情報の許容範囲を小さくしたり、また、ベクトルを引く範囲を色境界線を越えては引かないように引く領域を限定したり、変形処理のマッチング精度を上げるようにすることで、より、精度良く対応点候補を絞り込むようにしても良い。また、ベクトルを引く本数は最初から多数引いて比較処理しないでも、最初は所定の距離以内に存在する特徴点に絞ってベクトルを引くようにして処理速度の高速化を測るようにして良い。その結果、絞込みが十分できない場合は、ベクトルを引く特徴点を更に広いエリアに広げて、より、遠くの特徴点の情報も用いてベクトルを引いて比較するようにしても良い。また、ここでの例では、ベクトルは他の特徴点までベクトルを引いているが、ここでの特徴点とは線分の端点や分岐点や線分の途中の大きな屈曲頂点などであるので、線分として分割されるデータとしては始点と終点の点のみであるが、ベクトルマッチングを行う場合に、線分の始点と終点の途中に存在する点に対してもベクトルを引いてマッチングさせるようにしても良い。これは、例えば、線分の本数が少ない場合には、線分の端点などの特徴点のみを使用してベクトルマッチングを行うと比較するベクトルの本数も少ないために対応点候補を絞り込むのがむずかしいような場合にも線分の途中の点までのベクトルはその線分の方向、形に対応したベクトルになるので、その線分の方向、形のマッチング度により対応点候補を絞り込めるようにもできる。更に、一方、線分の本数が多く、一箇所に線分が複雑に混み合っているような場合には、線分の途中の点までベクトルを引くと似たようなベクトルが多数存在して、逆に対応点候補を絞り込みずらくなる場合もあるので、ベクトルマッチングの方法として、特徴点までのベクトルで行って、絞り込めない場合は線分の途中の点も使用したベクトルマッチングを行って絞り込む、あるいは、この逆の手順にしても良いが、特徴点のみのベクトルマッチングと線分の途中の点までのベク��ルも含めてベクトルマッチングを行う方法の両方を用いるようにして対応点候補を絞り込むようにしても良い。また、マッチング絞込みの手法として、ステレオ計測の場合もトラッキングの場合も両方に適用して良いが、最初に色境界線分を抽出するときは感度を低くしてはっきりとした色境界線分のみを抽出してマッチングによる対応点候補の絞込みを行い、次に色境界線分の感度を上げてより多くの色境界線分を抽出してマッチング処理を行う、２回目以降に行う場合は既にマッチング処理で対応点が明確になっている色境界線分は除いて新たに抽出された線分で対応点候補の絞込みを行うようにする。また、２回目以降のマッチング処理では、最初に求めた対応点の関係を積極的に活用して現在処理中の対応点候補の絞込みを行うようにしても良い。最初から感度を高くして多くの色境界線分を抽出すると、隣接した部分に多くの色境界線分が抽出されるので、対応点候補を絞り込むのが容易でなくなるのと、マッチング処理の組み合わせ回数も多くなるので処理時間も多くかかる。そこで、ここで説明した手順で何回かに分けて色境界線分を抽出するようにすることで、多くの色境界線分を精度良く、しかも効率良く対応点候補を絞り込むことが可能となる。
【０３４９】
また、図６３の（ｆ）のように、２つの図形（ａ）と（ｂ）が背景（Ｚ）の手前にあるような場合でも、両方が共通の面（Ａ）に付いているような場合には共通の面（Ａ）の特徴点までベクトルを引くようにすることで、図形（ａ）と（ｂ）のベクトルは違う部分が生じるのでベクトルマッチングで区別してそれぞれが対応点候補であっても絞り込むことは可能である。
【０３５０】
また、図６３の（ｇ）のように、共通面がないような場合にも、図形（ａ）と（ｂ）の相対位置関係が変わらない場合にはそれぞれの図形（ａ）と（ｂ）にベクトルを引くことによって、識別して絞り込むことは可能である。但し、図６３の（ｇ）で図形（ａ）と（ｂ）が互いに独立して背景（Ｚ）の手前で移動するようなものの場合には、２箇所の視点からの画像を同時に撮影するステレオ計測時の対応点探索は可能であるが、トラッキング時の対応点探索には適用の限界がある。そのような場合にはステレオ計測して求めた３次元位置情報の変化のドレンドなどから対応点を対応付けする方法と組み合わせるようなことも必要となる。このようなベクトルマッチング手法を用いれば、特長点９ｖの対応点でミクロマッチングだけでは絞り込めない対応点候補９ｖ，９ｗ，９ｘの中から対応点候補９ｖを絞り込むことが容易に可能となる。本手法は、２次元でＣＧ変換された特徴点の座標や色情報で処理を行うのみなので、局部的な微小領域の画像データやＣＧでも面データとしてマッチング処理を行うより簡単でより高速化が可能な手法である。
【０３５１】
また、図６４の（ａ），（ｂ）は、本手法を３次元に拡張した場合の例を示している。図６４の（ａ）は、あるときに生成した３次元の点データとして、点Ｐ１〜点Ｐ８が生成されていて、線分Ｐ１Ｐ３なども３次元データとして生成されている概念を示している。図６４の（ｂ）は、別の時間に新たに同じ部位のＣＡＤデータを生成した場合の同様の概念を示している。ここでは、今回、生成したＣＡＤデータ（ａ）の点Ｐ１に対応する点を別の時刻に生成されたＣＡＤデータ（こ）の中より探索するのに適用した場合の一例である。これは、ＣＡＤデータの探索機能や２次元の画像トラッキングで見失って、再度、トラキングを継続する場合の位置合わせ処理などに適用可能である。
【０３５２】
まず、点Ｐ１から周囲に所定の距離以内に存在する点までのベクトルを引く。同様に別の時刻に生成されたＣＡＤデータでは点Ｐ１の候補となる点全てにおいて、同じように所定の距離以内に存在する点までのベクトルを引く。（ｂ）は、点Ｐ３からベクトルを引いた場合の例を示す。（ａ）の点Ｐ１からのベクトルと（ｂ）の点Ｐ３からのベクトルを比較すると一致しないことから、点Ｐ３は点Ｐ１の滞欧点候補ではないことがすぐに分かる。同様に、（ｂ）においては、他の点についても、ベクトルを同様に引いて調べると、真の対応点候補である点Ｐ１からベクトルを引いた時に非常に一致するので、点Ｐ１の対応点候補を絞り込むことができる。同様にして、３点の対応点を見つければＣＡＤデータ全体の対応がとれることになり、本手法はこのような場合にも有効に適用できる。
【０３５３】
前述した例は、点Ｐ１〜Ｐ８が実際に存在する色境界線から抽出した特徴点の場合であるので、一致する対応点がそのままの処理で見付かる場合の例であるが、実際に対応する特徴点のデータが存在しない場合の例を、図６５の（ａ）〜（ｆ）を参照して説明する。
【０３５４】
図６５の（ａ）と（ｂ）は、溶接線ビードのようなものに赤のレーザ光線を照射して溶接線の特徴ある実際の色境界線分の特徴点９ｙ，９ｚなどがＣＡＤデータとして生成されている他に、レーザ光線により生成された輪郭線分ＲｅｄＬ１〜ＲｅｄＬ３とＲｅｄＬ４〜ＲｅｄＬ６のＣＡＤデータがある概念を示している。（ａ）と（ｂ）の違いは、同じ溶接ビードの部分のＣＡＤデータを生成したが、その時に照射したレーザ光線の位置や向きが異なるために、レーザ光線によって生成された形状を示す仮想線分の線分データ、その線分を構成する点データは、図（ａ）と（ｂ）とでは対応しない場合を例にとって説明する。実際のビードの模様として検出された色境界線分は同じ位置に生成されるが、生成される線分の数が非常に少ないので、それだけでは形状によるマッチング処理ができないことから、レーザ光線により生成した仮想線分のデータも使ってマッチング処理を行う場合の例である。
【０３５５】
図６５の（ｃ）と（ｄ）に示すように、レーザ光線ＲｅｄＬ２よって生成された線分の点ＲｅｄＰ１，ＲｅｄＰ２，ＲｅｄＰ３は、レーザ光線ＲｅｄＬ５よって生成された線分の点ＲｅｄＰ４，ＲｅｄＰ５，ＲｅｄＰ６とは対応していないので、そのままの状態で、例えば、（ｃ）で特徴点９ｚからベクトルＶ１，Ｖ２，Ｖ３，Ｖ４を引いても、（ｄ）で同様に特徴点９ｚからベクトルＶ１，Ｖ２，Ｖ３を引いても、もともとレーザ光線によって生成した仮想点は対応する点でないため、対応する点の場合もそこから引いたベクトルは同じようにならない。すなわち、対応する点を絞り込みずらい。
【０３５６】
そのような場合には、（ｅ）、（ｆ）に示すようにも、ともとある仮想点の間に途中を滑らかに補間するような（ｅ）の仮想点Ｄｐ１（ｘ），Ｄｐ２（ｘ），Ｄｐ３（ｘ）…と（ｆ）の仮想点Ｄｐ１（ｙ），Ｄｐ２（ｙ），Ｄｐ３（ｙ）を作って、特徴点９ｚからベクトルを引き、ベクトルの一致度を調べるようにする。このようにすることで、対応点が存在しない場合にも全体の形状情報から対応点を探索、絞り込むことができる。このような３次元のベクトルの処理においても、ベクトルの先の特徴点の色情報やそれに繋がる線分情報などを利用して、より正確に絞り込むようにして良い。
【０３５７】
また、図６６の（ａ）〜（ｅ）は、本ベクトルマッチング手法を探索機能に用いる場合の例を示すものである。探索を行う場合の前提としては、２つ考えられる。それは、探索対象はある場所が既知で動かない場合と、探索対象は既知でもそれがどこに存在するか未知であるとか、あるいは、探索対象が移動する（位置と姿勢が変化する）ものである場合である。
【０３５８】
図６６の（ａ）と（ｂ）を参照して、探索対象はある場所が既知で動かない場合の基本的な探索方法を説明する。（ａ）は、既知の探索対象９０１とその存在する既知の環境周辺の３次元ＣＡＤデータの概念を示している。探索対象９０１およびその他のＣＡＤデータは、ワールド座標系Ｏ１の中でどの位置にどのように存在しているかが、あらかじめＣＡＤデータとして用意されているものとする。そのＣＡＤデータが本発明の手法であらかじめ撮像装置を移動しながらＣＡＤデータを生成したものであっても良いし、別の手段で生成されたものでも良い。そこで、探索時に、実際に撮像装置１０からの画像情報が得られてその処理を行うことで２次元のＣＡＤデータを生成したり、ステレオ計測やトラッキング計測を行うことにより３次元のＣＡＤデータを生成させることもできるが、ここでは、探索を効率良く行うために撮影した画像データから生成した２次元のＣＡＤデータ（色境界線などを抽出した特徴点や色境界線分やそれらが構成する面などのＣＡＤデータ）と２次元の状態でマッチングを行う場合の手法を説明する。
【０３５９】
具体的には、現在の撮像装置１０の位置と姿勢がワールド座標系Ｏ１で分かっていれば、その位置から探索対象９０１を撮影した場合の見え方は３次元のＣＡＤデータより生成できる。図６６の（ａ）は、３次元のＣＡＤデータの概念であるが、３次元のＣＡＤデータの中に撮像装置１０を想定して、その場合に撮像装置１０に結像される３次元のＣＡＤデータを生成すれば（ｂ）に示すような参照すべき２次元のＣＡＤデータが得られる。この場合、対象物９０１は移動しないものであらかじめその環境の中での位置と姿勢が固定であるので、参照ＣＡＤデータは、対象９０１とその他の環境ＣＡＤデータの両方を２次元へ投影して生成する。ここで、参照ＣＡＤデータである（ｂ）の中の例えば点Ｐ１に相当する撮影画像情報内の対応する点を探索する場合は、先に述べたように参照ＣＡＤデータのＰ１点から引いたベクトルと撮影して得られた画像情報に対して同じような２次元のＣＡＤデータを生成して得られる場面内の全ての特徴点から同様にベクトルを引いて、点Ｐ１の有する各領域においてベクトルの一致する領域のある特徴点を抽出して探索するようにすれば、３次元のマッチングよりも高速に２次元のベクトルマッチングで探索を行わせることが可能となる。
【０３６０】
探索対象９０１が動く場合とか、ワールド座標系Ｏ１の中での位置と姿勢が未知の場合の基本的な探索手法を図６６の（ｃ）〜（ｅ）を参照して説明する。この場合は、探索対象のみの３次元ＣＡＤデータを用いて、２次元の参照ＣＡＤデータを生成する。（ｃ）は、物体９０１のみの３次元のＣＡＤデータであり、それを未知の３次元環境で探索する２次元のマッチング処理を行う場合には、物体９０１をいくつかの基本的な形状の見え方の違う方向から見たときに撮像装置の撮像面に投影される２次元のＣＡＤデータを視点の数だけ生成するか、あらかじめ２次元のＣＡＤデータとして用意しておくようにする。図６６の（ｃ）の例では、撮像装置の位置は撮像装置１０（１），１０（２），１０（３）の３つの位置と姿勢で、各々そこから撮影面へ投影される２次元のＣＡＤデータを生成した状況を（ｄ），（ｅ），（ｆ）に示している。ここでは、代表的な３つの見え方の異なる２次元のＣＡＤデータを示したが、他にも別の視点から撮影する場合の見え方で多数の参照ＣＡＤデータを生成したら、あらかじめ用意しておくようにしても良い。あらかじめ持っているデータとして３次元のＣＡＤデータにしておけば、必要なときに必要な２次元のＣＡＤデータを生成させることができる。また、３次元のＣＡＤデータであれば、初めは代表的な視点から見た大まかな見え方の違いで概略の見ている方向の絞込みを行ってから、次にはその方向からでも微妙に異なる視点から見た２次元のＣＡＤデータを生成するようにして、それを繰り返すことによりマッチング精度を上げていくようにすることも可能となる。ＣＡＤデータとしては、３次元のＣＡＤデータとある視点から見た２次元のＣＡＤデータの両方を持たせておき、２次元のＣＡＤデータを生成する時間を省略して概略探索できるようなシステムにしても良い。対象物が移動したり位置が未知の場合には、探索対象物体９０１のみのＣＡＤデータから探索する。実際に撮影した画像情報から２次元のＣＡＤデータを生成したものは、探索対象が写っていた場合にもその他の環境のＣＡＤデータもあり、特徴点は関係ないものも沢山存在する可能性あるが、同様な手法で全ての特徴点からベクトルを引いて比較するようにすれば、実際に探索対象が写っていた場合には当該部位の特徴点から引いたベクトルが参照ＣＡＤデータの点から引いたベクトルと一致する場合があるので、それを探索するようにする。
【０３６１】
このようにして探索を行う場合でも２次元のＣＡＤデータどおしのマッチング処理となれば、同様に探索したい対応点からベクトルを引いて、入力画像情報の中の各特徴点から引いたベクトルが一致する点を絞り込んで見つけることができるが、この場合は、用意した複数の２次元のＣＡＤデータのどの見え方にあるかが未知であるため、用意した２次元の参照ＣＡＤデータ全てについて同じような処理を行い、視点の違いも絞り込むようにする。具体的には、この例のように３枚の２次元の参照ＣＡＤデータ（ｄ），（ｅ），（ｆ）が用意されている場合には、（ｄ）の中の見えている点全ての対応点の探索を行い、（ｅ）と（ｆ）でも同様に行い、３枚の２次元の参照ＣＡＤデータの現在撮影した画像情報から生成した２次元ＣＡＤデータとのマッチング度の高い参照ＣＡＤデータを選択するようにする。勿論、探索対象が全然写っていない場合もあるので、所定の閾値以上でマッチングする場合に３枚の参照ＣＡＤデータの中より一番マッチングするものを選択するようにする。そして、ある程度、マッチングするようになったらば、視点を微妙に変えて２次元の参照ＣＡＤデータを生成するようにして、より、精度良く探索対象を探索するようにする。また、参照２次元ＣＡＤデータを生成する場合に、現在の撮像装置と探索対象との位置関係（例えば、道路の反対側から道路沿いにある物体を探索するような場合とか、橋の上にある物体とか概略距離情報が絞り込める場合など）、概略の撮影距離が既知であれば、それを考慮して２次元のＣＡＤデータを生成するようにしても良いし、向きが物体によっては決まってくるような場合（例えば置いてある状態は安定な姿勢しかとり得ないものとか）には、あらかじめ向きも絞り込んで参照ＣＡＤデータを生成するようにして、２次元の参照ＣＡＤデータの枚数をできるだけ少なくして探索速度を上げるようにしても良い。
【０３６２】
また、２次元あるいは３次元のマッチングするときに、あらかじめＣＡＤデータのグルーピングを行っておき、特定のグループのみを探索対象のＣＡＤデータとして探索速度アップ、マッチング精度の向上を図るようにしても良い。具体的には、例えば、青や黄色の模様を背景とした本の表紙などに黒の文字の「ＡＢＣ」が印刷されているような対象物体のＣＡＤデータを生成して、その中から文字の「ＡＢＣ」を探索するような場合には、背景の模様のＣＡＤデータと文字「ＡＢＣ」のＣＡＤデータがそれぞれ生成されるが、そのときに、どちらも、本の輪郭線の構成する閉ループの面に付いている線分であるが、探索したいものが黒の文字「ＡＢＣ」であるから、まずは、黒の色境界線に関わる線分データあるいは黒の閉ループの面データを抽出して一つのグループＡにしておき、背景の青と黄色の模様を構成する色境界線分データあるいは青系、黄色系の閉ループ面データのグループＢに分けて、マッチング探索処理は、グループＡの黒の文字に関係するＣＡＤデータの中から探索マッチングをとるようにすることで、より高速に精度良くマッチングできるようになる。
【０３６３】
勿論、本の文字を探索するために各種タイトル候補の文字データとマッチングをとって当該本のタイトルを認識させる場合にタイトルの文字の色グループに絞り込みマッチング処理を行う場合でも、たくさんの本の中から黒の文字のタイトル「ＡＢＣ」とある本を複数候補の本の中からタイトル部分をグループ化してマッチング探索する場合でも、同様に、色グループによる探索対象の絞込みは有効である。また、色によるグルーピングの他、線分の長さや面の大きさ、線分の直線、曲線、円弧などの形状、面の形などでもあらかじめ探索対象の特徴に応じて有効であればあらかじめグルーピング化を行い探索対象を絞り込んでから探索処理を行う方が、探索マッチングの処理はいろいろな方向、大きさなどを変えながらマッチングを行い一番マッチング度の大きなものを絞り込むため、処理によってはマッチング処理に時間がかかるので、最初にグルーピング化でマッチング対象の候補数を絞り込むことは探索時間の短縮に効果的である。また、最初にグループの特徴で絞込みを行っているので、その中でのマッチング度の高い候補を見つけるということは、別のグループの似ている候補をグルーピング化の段階でマッチング対象から排除できるので、マッチング精度も良くなる。
【０３６４】
次に、図６７を参照してトラッキングによる座標変換時の誤差の考え方について説明する。図６７の（ａ）は、撮影対象９０１を視点Ｏ１から視点Ｏ２までトラッキングしてきて、単眼のカメラシステムでも良いが、ステレオカメラシステムでもその場所で十分離れた状態での３Ｄ計測を実施したとところとしても良い。（ｂ）は、次のシーケンスになって、視点Ｏ２から視点Ｏ３になった状況、（ｃ）は、視点Ｏ３から視点Ｏ４になった状況を示している。ここで、（ｄ）は、それぞれの視点Ｏ２，Ｏ３が重なるようにしてＣＡＤデータを同じ座標系に変換した状況を示している。この場合は、トラッキングによる座標変換の誤差がＣＡＤデータに含まれる。
【０３６５】
図６７の（ｅ）は、視点ではなく、ＣＡＤデータの方を合わせるようにした場合の例を示している。この場合は、視点の位置、すなわち、撮像装置の位置と姿勢の情報にトラッキングの座標変換による誤差が含まれるようになる。ＣＡＤデータを生成する応用システムの場合には、ＣＡＤデータ側に誤差のらない（ｅ）の方法を用いるのが良い。この場合、計測されるそのシーケンスでのＣＡＤデータとの相対位置関係で撮像装置の位置は求まっているので、最初のＯ１座標系からの絶対位置誤差は大きくなっても、現在の撮影対象に対する撮像装置の位置は精度良く求まっているので、障害物を回避しての移動制御や、対応物にアクセスするようなナビゲーションや自律制御に適用するに当たっては問題とはならない。また、両方ＣＡＤデータもそれなりに合わせて、撮像装置の視点位置情報もそれなりにあわせるように変換する方法もある。それらは適用するシステムに応じてもっとも適したものを選定するようにすれば良い。
【０３６６】
図６８〜図７０は、本発明の第７の手段の実施例の基本的な構成を示している。
【０３６７】
図６８において、Ｘ軸は画像データの水平座標であり、Ｂ軸は輝度値を示している。白黒画像であれば明るさであるが、カラー画像であればＲ，Ｇ，Ｂのそれぞれの輝度値と考えても良いし、カラー画像でも明るさの輝度値で処理する場合もあるので、そういう輝度値と考える。距離画像の得られる撮像装置の場合には、距離情報に対応した輝度値として適用する。ここで、Ｘ軸上のＩ１，Ｉ２，Ｉ３，Ｉ４は、画素のアドレスを示し、Ｘ１，Ｘ２，Ｘ３，Ｘ４，Ｘ５はＸ軸上の座標値（カメラ座標系におけるＸ座標の値に相当する座標値）を示す。それぞれの輝度値が１１ａ，１１ｂ，１１ｃ，１１ｄである。撮影対象の実際の輝度分布は、１１ｆの実線のようになっているが、有限の画素を有する撮像装置で撮影しているために、センサ情報として得られる値は、各アドレスでの輝度値になる。ここで、輝度値が変化するということは、明るさや色情報が変わっていることであるので、その変曲点を見つけて、その左右の色情報をその変曲点の情報にもたせるようにする。変曲点の位置を推定する手法はいろいろあるが、最も簡単な方法は、輝度１１ａから輝度１１ｂへの変化量から輝度１１ｂから輝度１１ｃへの変化量の増加になっており、次に輝度１１ｂから輝度１１ｃへの変化量から、輝度１１ｃから輝度１１ｄへの変化量は減少したので変化量の増減の傾向が反転する場所が、この例では画素アドレスＩ２とＩ３の間が変曲点１１ｅとして抽出するようにすれば良い。更に、精度良く変曲点の位置を求める方法としては、前述のように変曲点が見付かったらば、その前後の４点の輝度値を用いて、例えば、３次曲線に最小二乗法などでフィッティングさせてその３次曲線の変曲点を求めるようにして、より本当の変曲店１１ｇに近い位置を検出するようにしても良い。そして、抽出した変曲点の左右の色情報は検出した変曲点の左右の隣の変曲点までの色の平均色にしても良いし、隣の変曲点との中間当たりの点の色を色情報としても良い。平均化するときには変曲点近くの色情報は、変化している過程の色であるために除くようにしても良い。あるいは、あまり隣の変曲点を気にしないで単純に変曲点の左右の色情報をもたせるようにしても良い。変曲点は、色情報の変化する境界を示すので平均化した色にはそれなりの意味があるが、ごく近傍の原色を使う場合は差は小さくなる可能性はあるが色マッチングは原色で厳密に行えるというメリットがある。以上のような処理を水平画素以外に垂直画素でも行うようにする。また、斜め４５度方向に画像を回転させてから再度水平方向の処理も加えて実施するようにすれば斜めの線分をより感度良く抽出できるようになる。
【０３６８】
次に、このように抽出した変曲点から色境界線分の作成方法の一例を図６９を参照して説明する。図６９の（ａ），（ｂ）は、画像データで４×４の画素のイメージを記載している。ここでは、色情報は２色で、色１の画素と色２の画素があるものとする。ここで、図６８の手法で変曲点を求めてその画素の１辺の両端１２ａ，１１ｂなどの点を結ぶようにする方法である。
【０３６９】
図６９の（ｂ）は、変曲点として抽出された画素の１辺の中央に点１２ｃなどを定義してその点を結ぶようにする方法である。
【０３７０】
（ａ）の方法は、画素に忠実である。検査装置などは（ａ）の方法が好適である。（ｂ）の方法は、線分を滑らかに結ぶような感じになる。
【０３７１】
次に、このように線分を抽出しても画素レベルから抽出しているので画素の単位でのギザギザ特性が残っていたりするのでそれらを取り除く処理を行うようにしても良い。
【０３７２】
図６９の（ｃ）は、直線の途中にある点は省略できるので、線分のＣＡＤデータとしては途中の点を省略するようにして良い。また、（ｄ）の例のように、所定の長さの直線の後に９０度方向が変って１画素の長さの直線があって、次に逆方向に９０度方向が変って最初と同じ長さの線分が繋がっている場合には、９０度方向転換する部分の点は省略して直接結ぶようにしても良い。（ｅ）の例は、同じ処理を１画素単位でジグザグしている部分を省略できる。また、（ｆ）の例は、照明条件などにより必ずしも十分に線分が抽出されない場所では、直線と推定される線分は、そこに最小２乗法などでフィッティングさせた直線を定義して、そういう直線どうしの交点をあらたな特徴点をして定義するような処理を盛り込んでも良い。この場合には、このようにして求めた特徴点の誤差は、その点を作った直線を求めた計測点の誤差と直線でフィッティングしている誤差があるので、それらの誤差を推定して点データの誤差として管理して、そういうことも考慮した誤差が大きくなるか小さくなるかでそういう点の更新をするか否かを判別するようにする。
【０３７３】
また、直線ではない曲線と推定される線分では、抽出された特徴点を直線で結ぶのではなく、滑らかなＢスプラインなどの曲線でむすぶようにしても良い。また、図６８で説明した特徴点、特徴線分の抽出方法は、精度良く境界部位を抽出できるが、精度が画素レベルで良いために、図６９の（ｆ）のように直線部が直線としてきれいに抽出されない場合がある。また、円弧が円弧としてきれいに抽出されない場合がある。また、一般の環境にある物体の輪郭や色境界には直線や円弧や滑らかな曲線が多く存在する。そこで、図６８の手法で特徴点、特徴線分を抽出することと、画像の２値化処理などのもう少し精度は劣っても直線や円弧などをそれなりに抽出しやすい処理を同じ画像について行い、２値化処理などで抽出した図形の輪郭を直線や円弧、滑らかな曲線で近似して、それらの直線や円弧、滑らかな曲線に近い、図６８の手法で抽出した特徴点、特徴線分について対応付けを行い、図６９の（ｆ）の直線でフィッティングさせたような手法で、図６８の手法で抽出した特徴点、特徴線分群にフィッティングさせ、より精度の良い直線や円弧、滑らかな曲線を新たに定義して、それらの直線や円弧、滑らかな曲線を３Ｄ計測に使用するようにしても良い。
【０３７４】
図７０を参照して、図６８を参照して説明した手法を適用して特徴点と線分を抽出した場合と他の手法の場合を比較して説明する。
【０３７５】
図７０の（ａ）は、撮影対象の画像の上に図６８で説明した手法で抽出した特徴点と色境界線分を重ねて表示している。画像イメージ（Ａ）は、特にＡ部を拡大して大きく表示したものである。撮影対象は、水中の溶接線のビードである。ここでは、輝度の変曲点を感度良く抽出するようにしたので、溶接線のビードの凸凹の微小な影とか、照明のスポットの輪郭線とか、ビードの横の汚れなどが抽出されている。この方法の特徴は、（ｄ）に示すように、照明が当たって輝度分布に一様な傾斜が生じている中でゴミやわずかな凸凹などで一様な輝度分布の傾向の変化部を抽出して、左右の色情報は、傾斜している輝度の平均的な色情報としてもたせることが容易にできる。また、（ｅ）の輝度部分のように、輝度の変化が緩やかな場合にもその変曲点の中間位置を抽出するようにすれば、色境界線の位置を実際より近く精度良く検出することができる。撮影対象が実際にそういう輝度部分をしている場合もあるが、実際の撮影対象の色境界がはっきりしている場合でも撮像装置のピントがボケているような場合には（ｅ）の輝度分布のようになるので、そういう場合にも有効な手法でる。
【０３７６】
図７０の（ｂ）は、同じ撮影画像を単純に輝度値のレベルで分けて境界線を抽出したものである。この方法であると、境界線は必ず閉ループになる点は良いが実際の特徴点が特徴点として抽出されていないで、どちらかというと照明の分布が抽出されている。（ｆ）の輝度分布のような局部的にわずかな変化部は抽出できない。また、（ｇ）の輝度の分布ように輝度の変化がなだらかな部位は、変曲している中央とは違った場所が抽出されてしまう。
【０３７７】
図７０の（ｃ）は、同じような所定の範囲内（ΔＲＧＢ）の色を平均色を求めて同じグループにして、そのグループの境界線を色境界線として抽出した場合である。これは、色の変化する境界部位がΔＲＧＢ以内であれば（ｈ）のように色境界線が比較的精度良く検出でき、しかも境界線は閉ループになるというメリットはある。境界線が閉ループになると面が定義できて、面には色情報も正確に付けられるので、アプリケーションによってはこの手法が有効な場合もある。この方法の場合、輝度の変化量がΔＲＧＢより小さいと境界が検出されない。色境界線の抽出位置のズレは、そのあとの対応点探索精度、更に３Ｄ計測した点の精度にも影響する。
【０３７８】
これらの方法の中でもっとも精度良くしかも感度を上げて色境界線を検出できるのは、図６８を参照して説明した変曲点を求める方法である。また、特にＶＴ（目視）検査装置に適用する場合には、正確にＣＡＤデータを生成することができる図６８の手法が良い。この手法を用いれば、精度良く、また、感度良くＣＡＤデータを生成できるようになる。変曲点を抽出する感度は、輝度の増加量の増減をノイズと識別する閾値などになるが、感度は、画面全体で一定で処理をしても良いし、局部的な輝度分布の状態より局部的な閾値値を局部的な部位ごとに変えて画面全体に対して全て最良の感度で処理を行わせるようにしても良い。また、処理速度の観点から、常に同じ程度の処理対象の線分が生成されるように処理エリア内の線分の本数が所定の本数程度におさまるように感度を自動調整するようにしても良い。自動調整の一つの方法は、微小領域内の処理で生成された線分の本数をカウントして全体エリア内の本数を推定し、多すぎる場合は感度を落として、少ない場合には感度を上げてこの処理を数回繰り返すことで適切な感度に設定するようにすれば良い。
図７１は、本発明における第８の手段の基本的構成を示している。図７１は、特徴点をトラッキングしている状況を示している。
【０３７９】
最初は、線分１４ａ、線分１４ｂ、線分１４ｃの３本の線分が検出されてそれらの線分の端点が特徴点となっている。これらの特徴点をトラッキングしている段階で線分が良く抽出されると３本の線分が１本の閉ループの線分１４ｄになってしまった場合の処理の方法を説明する。
【０３８０】
通常、線分の特徴点は、線分の端点や分岐点や鋭角な角の点や直線から曲線に変る部分の点であるが、線分が曲線でなめらかで線分上に特徴となる点がない場合にはトラッキング継続が困難となってしまう。第８の手段は、そのような場合にもトラッキングを継続できるようにするもので、特徴点のある線分から特徴点のない閉ループの線分に変ったときに特徴点の組替えを行うようにする。図７１に示す例では、閉ループの線分１４ｄに変ったときに、その閉ループの線分１４ｄの閉ループの図形の中心１４ｅと閉ループ図形の方向性の特徴として、この場合には方向１４ｆと方向１４ｇの方向に例えば凸状になっているという方向の情報である。方向１４ｈと１４ｇは、中心１４ｅからのベクトルとして定義する。長さは、中心１４ｅから境界線までの長さにしても良い。処理としては、このような閉ループの線分に変った場合には、当然、線分１４ａ，１４ｂ，１４ｃは検出されないはずであるから、以降の処理は、線分１４ａ，１４ｂ，１４ｃの代わりに閉ループの基本図形の形、中心位置、特徴ある形状部位の方向の情報などを特徴として閉ループの図形をトラッキングするようにする。そして、後で、再度、閉ループが閉ループでなくなった場合には、線分の特徴点のトラッキングに再度もどるような処理を行う。この例では、閉ループ１４ｄは、次には線分１４ｈと１４ｉになったという状況を示している。このときには、閉ループの図形は存在しなくなっているので、その対応する図形での処理は止めて、あらたに検出された線分の特徴点をトラッキングするような処理とすることで、閉ループになる場合も継続してトラッキングできるようになる。
【０３８１】
図７２は、本発明の第９の手段の基本的構成を例示している。図７２は、撮影対象９０１を単眼あるいはステレオのどちらでも良いが、撮影しながらＣＡＤデータを生成したときに線分Ｌ１，Ｌ２が計測されてワールド座標系Ｏ１（単純に撮像装置を動かし始めた最初のカメラ座標系と考えても良いし、そこと基準となるワールド座標系との関係が分かっていて変換されたワールド座標系と考えても良い。）で求められている。ここで、計測されたＣＡＤデータは、線分Ｌ１，Ｌ２のみであるので、閉ループにならないために面データはまだ定義されていない。面データが定義されていないので、面データとしての色情報もない状態である。このような状態で計測したＣＡＤデータをモニタに表示して確認しても実際の撮影対象９０１（例えば地面に立っているタンクのようなもの）と計測された線分Ｌ１，Ｌ２の関係がわからない。この第９の手段では、線分Ｌ１，Ｌ２を計測したときに、撮影した撮像装置の位置と姿勢とそのときの画像データを対応付けて記録しておくようにする。
【０３８２】
図７２の（ｃ）には、線分Ｌ１，Ｌ２のＣＡＤデータに画像データＧ１，Ｇ２を対応させて記録している概念を、画像データＧ１，Ｇ２には画像ファイル名「画像００１．ＪＰＧ」などとその画像を撮影したときの撮像装置のＯ１座標系での位置ｘ，ｙ，ｚ、更にｘ，ｙ，ｚ軸回りの回転角度のα，β，γを画像Ｎｏ．と対応させて記録しているデータの概念を示している。このように記録しておけば、ＣＡＤデータを表示するときに、このデータよりＣＡＤデータＬ１，Ｌ２の背景にそのＣＡＤデータを計測したときの撮影画像を容易に表示できるようになる。
【０３８３】
図７２の（ｄ）は、そのように対応する画像を背景に表示しているモニタ画面のイメージを示している。線分Ｌ１，Ｌ２の背景に画像データＧ１が表示されている。この場合、完全に線分Ｌ１，Ｌ２が背景の画像と対応するようにするため画像データの対応情報の中に撮像装置の位置と姿勢の情報があるので、自動でＣＡＤデータをモニタへ表示させるときの視点の位置を撮像装置が撮影したときに視点の位置に合わせて表示するようにすればＣＡＤデータと背景は一致する。この状態で、画面を拡大したり詳細に確認することで、計測された線分Ｌ１，Ｌ２が何に対応するものかが容易に確認できるようになる。また、３次元情報をもっている線分Ｌ１，Ｌ２は、良く形を確認するために、視点の向きを変更したり、より近くで拡大して表示させたい場合があるが、そのような場合には背景と対応しなくなるので、スイッチひとつで対応する状態に戻せる表示装置にしておいても良い。また、視点が多少変わった場合に、線分が付いている背景の写真の部位をＣＡＤデータの位置として背景画像を変形させて表示するようにしても良い。また、ＣＡＤデータの線分がもっとたくさんある場合には、表示視点を変えたりしていると、どれかのＣＡＤデータがモニタの中央にくるので、そのような場合には、現在モニタの中央にあるＣＡＤデータに対応する背景の画像データに自動的に切り替るように表示する。複数候補のある場合には、最も現在ＣＡＤデータを表示している視点に最も近い背景画像データを自動的に選択切り替えて重ねて表示するようにしても良い。また、ステレオカメラ方式の場合は、対象物によっては、特に、近かい距離で光る物体を撮影するような場合は、視点のわずかな違いで反射している状況の見え方が大きく変わる場合もあるので、そのような場合には、左右両方の画像を左右のそれぞれのカメラの撮影位置に対応つけて記録しておくようにしても良い。
【０３８４】
また、ＣＡＤデータの線分Ｌ１，Ｌ２の両側には色情報があるので、その色をある程度モニタ上で見やすいエリアで線分Ｌ１，Ｌ２の両側にＣＡＤデータとして表示するようにしても良い。この場合は、線分データ、背景画像データが少ない場合でもそれなりに線分周辺の色情報を確認できるようになる。勿論、背景に画像を表示して線分の両側にはＣＡＤの色情報を表示するようにして良い。線分の両側に表示する色情報の表示エリアは、表示したときに隣合う線分が密に存在する場合には小さくして、周辺に他の線分の表示がないような場合には大きく表示するように、自動で表示エリアの大きさが調整されるようにしても良い。
【０３８５】
勿論、閉ループの面が生成されている場合には、面に画像を貼り付けるようにしても良い。特に色境界線の抽出感度を低くする場合には、色境界線分として抽出されない部分を画像のテクスチャとして貼り付けて面の色情報として管理する場合に有効である。この場合、当該面のより法線方向から撮影した画像に更新するようにしても良いし、見る角度で見え方が異なる場合は、一つの面に見る向きに応じた複数の画像を貼り付けるようにしても良い。閉ループが生成されない部分は、最初に生成される仮想背景に画像を貼り付けるようにしても良い。
図７３〜１１５は、本発明における第１１〜１５の手段の基本的構成を例示している。
【０３８６】
図７３は、本視覚情報処理装置の基本的なアプリケーションの構成と視覚情報処理装置に対する基本コマンドと拡張コマンドを示している。視覚情報処理装置１００は、カメラなどの撮像装置１０からのビデオ信号を入力としてアプリケーション側の制御装置３００と連携するが、連携するＩ／Ｆとしては、アプリケーション側の制御装置３００から視覚情報処理装置１００へコマンド指令を出して、その結果が応答として視覚情報処理装置１００からアプリケーション側の制御装置３００へ返すというのが基本概念である。アプリケーション側の制御装置３００には、各種センサ３０やアクチュエータ４０１を駆動制御するドライバ４００などが接続される。勿論、この他にもいろいろなデバイスが接続されるようにして良い。視覚情報処理装置１００には、ＣＡＤデータなどを記録するメモリ２００が接続される。これらは一つの例であり、これに類似した他の構成にしても良い。
【０３８７】
ここで、アプリケーション側の制御装置３００から視覚情報処理装置１００への基本コマンドとしては、原点リセットでＣＡＤデータをクリアする機能、カメラの３次元位置情報を取り出すためのカメラ位置リクエスト、生成したＣＡＤデータの探索を行う探索コマンド、生成したＣＡＤデータをファイルに登録するファイル登録機能であるが、アプリケーション側の視覚情報処理に対する高速処理化に対応するた各種拡張コマンドを準備する。
【０３８８】
以下、それらの拡張コマンドを例を説明する。
【０３８９】
拡張コマンド１〜４は、ＣＡＤデータを生成する場合に生成させる領域を指定するコマンドの一例である。領域の指定方法によって、ここでは４つの方法の例を述べる。
【０３９０】
拡張コマンド１の領域指定方法は、ワールド座標系におけるＸ，Ｙ，Ｚの位置座標とそこを中心とする領域の大きさを指定する方法で、ここでは、半径を指定して球状の領域を指定するものである。領域は直方体や円柱でも良いが、この例では球にした。このコマンドに対する画像処理上の処理は、基本コマンドだけでは、常に画面全体の処理をしているので処理時間がかかるので、カメラを早く動かしたい、例えば、ロボットを早く動かしたいような場合には、より視覚情報処理のスピードを高めたい場合があるが、そのような場合に有効な手法である。コマンドと一緒に送られてくる指定領域は、Ｘ，Ｙ，Ｚの３次元座標とカメラの現在位置情報からカメラに写っている２次元の画像データ上でＸ，Ｙ，Ｚのポイントがどこかが分かる。また、エリアの大きさも実際の大きさが半径ｒの球が２次元の画像上で半径がいくらの円になるかも位置関係から求めることができるので、その円の内側領域のみ３次元のＣＡＤデータを生成するようにする。勿論、トラッキングを行うための対応点を見失うわけにはいかないので、トラッキング処理は、画面全体で行うようにする。少なくともＣＡＤデータを生成する処理エリアが小さくなれば、処理の速度はその分早くなるので、早く動かしたいアプリケーションには有効なコマンドとなる。また、生成されるＣＡＤデータ量が少なくなれば、探索する処理時間も早くすることができるようになる。勿論、座標Ｘ，Ｙ，Ｚは、その都度頻繁に変えて指定して良い。また、このようにＣＡＤデータの生成領域を限定した上でＣＡＤデータの探索を行わせるようにしても良い。また、ＣＡＤデータの探索する範囲も同じように指定領域で限定するようにしても良い。これらの処理は、例えば、２足歩行ロボットが階段を下りるような場合には、足元の階段のエッジの部分のみが３Ｄ計測されてＣＡＤデータが生成されて、階段のエッジの参照ＣＡＤデータで階段のエッジの位置を検出して次ぎに足を出す位置制御に利用するのに有効な機能となる。ロボットが次に足を出そうとする位置は、制御計画上予想されているので、その予想位置より領域を指定するようにすれば良い。また、カメラと一緒に指向性マイクを搭載した首振り機構などを有するロボットの場合は、指向性マイクの音声処理で探索しようとする対象の音が特定できるような場合には、指向性マイクの特性を利用して最初に概略の方向が分かればその方向を指定してＣＡＤデータを生成して、探索したい対象を探索するような使用方法もある。この場合には、Ｘ，Ｙ，Ｚ座標と領域の大きさではなく、方向と領域の大きさを指定するようにするコマンドを用意するようにして良い。
【０３９１】
また、拡張コマンド２の領域指定は、２次元の画像の中で指定された速度（ゆっくり動くもの、あるいは高速で動くものなど）の例えば速度の範囲で指定して２次元の画像内でその速度で移動しているものを２次元の差分２値化処理などで変化部位を抽出して、その変化部位の２次元の画像内での移動速度を求めて、指定された程度で移動する物体が２次元の画像内に生じた場合にその移動している物体周辺の３次元のＣＡＤデータの生成を行うようにするコマンドの例である。２次元の対象処理エリアは、既に２次元の差分２値化処理で移動する物体を検出したエリアがそのまま３ＤＣＡＤデータの生成処理エリアとなる。このコマンドも動くものを高速に探索したい場合に処理エリアを限定することで有効なコマンドとなる。また、この機能を使用して、カメラを固定しておき、対象物を回転テーブルの上にのせて回転させながらＣＡＤデータを生成するようにすれば、実際の物体の参照ＣＡＤデータを何もない部屋の中に入れて生成しないでも、背景にいろいろな物が存在する部屋の中でも回転テーブルに乗って移動している物体周辺のみのＣＡＤデータを生成することもできるので、そのように利用しても良い。
【０３９２】
ＣＡＤデータの拡張コマンド３の領域指定は、２次元の画像内で例えば光る部分を２次元の画像処理で検出して指定された輝度レベルで光っている物体があればその物体の周辺を処理するようにするコマンドである。これも探索したいものが光る物体であると分かっている場合などに有効である。あるいは、光っている背景の中で光っていない物体を探索するような場合にも有効である。
【０３９３】
拡張コマンド４の領域指定は、２次元の画像内で特定の形、色、大きさの物体を２次元の画像処理で求めて、指定された形、色、大きさにほぼ一致する物体が２次元の画像上で検出された場合に、その検出した物体周辺を処理の対象とするコマンドである。これは、形状を探索対象の３次元ＣＡＤデータでのマッチングの前に２次元のある特定方向から見たときの形、色、大きさなどで探索するので、高速処理で探索した物体を探索できるようになる。大きさなどは撮影距離に影響するので、現在のカメラの位置と探索したい領域との位置関係よりある程度推定して指定するようにする必要はある。２次元で探索する場合は、代表的な見る方向によっていくつかの違った形があるので、方向を違えた複数の２次元の参照データを一緒に指示するようにしても良い。処理としては、２次元の画像上で複数種類のマッチングを行うようにすれば良い。これも２次元の探索機能で概略候補を見つけてから、詳細な対象物の位置と姿勢を３次元の探索機能で探索するようにするので、トータルの探索時間はより高速化することができるようになる。一般に、撮影距離が離れている場合の遠方の画像は、左右のステレオ画像で大きな違いは生じないので、遠方は２次元の探索機能で高速に処理して、対象物体の近くにきたときには、左右の画像の違いも大きくなって２次元探索を行うと誤認識する恐れもあることから、カメラによる計測精度も良くなるので、探索も３次元の探索コマンドで精度良く対象物を探索するようにするのが良い。また、２次元の探索にするか、３次元の探索にするかも、探索物体が近くか、遠方かで、自動的に切り替るようにしても良い。また、拡張コマンド１〜４で処理エリアを３次元の所定の場所周辺を指定するかわりに、処理の簡略化のため、２次元のカメラによる画像情報から得られる方向の情報のみを指定して、指定した方向のものは手前から遠方まで、あるいは、手前と遠方の距離の範囲を概略指定するような方法で、基本的には、方向を指定するようにしても良い。
【０３９４】
拡張コマンド５，６は、探索機能として、もっと汎用的に２次元の探索コマンド、３次元の探索コマンドを用意しておき、先に２次元の探索コマンドで探索指令を出している場合には、次ぎに３次元探索処理を行うときには先の２次元の探索結果をもとにそれまでの２次元の探索データを引き継いで対応する３次元の詳細な探索を行うようにする。２次元の処理で候補として探索されたデータが３次元の探索を始めるときの探索候補の物体としてそれらのデータが引き継がれて３次元の探索処理を行うようにしたものである。また、２次元の探索機能としては、３次元ＣＡＤデータの中に探索対象の物体が分かっている場合に、また、それをカメラがどの位置から撮影することで当該対象を発見したいかというその位置候補が１個所あるいは複数箇所ある場合には、それらの候補位置から探索対象物体を撮影した場合にどのように撮影されるかという２次元の特徴点と特徴線からなる２次元の画像イメージを生成して、その画像イメージと実際に撮影した画像の特徴点と特徴線からなる画像をマッチング処理して２次元の探索処理や位置決め制御（ずれ量を検出して応答として回答する）のためのマッチングを行うようにしても良い。
【０３９５】
また、ステレオなどの複数の撮像装置で２次元の探索コマンドを実行させる場合、少しずつ視点の異なる撮像装置の全ての画像情報を処理して２次元の探索処理を行うようにしても良いが、例えば、２眼のステレオの撮像装置の場合に、通常は左の撮像装置の画像情報を処理するようにしておき、左の撮像装置の画像に探索対象物が入っていない場合とか、手前に対象物を遮るものが写って対象物が写らなくなった場合には右のカメラの画像情報に切り替るなど、複数の撮像装置を自動的に切り替えるようにして、画像処理プロセッサを撮像装置の台数分平行して駆動しないで単純な構成で複数台の撮像装置の画像を用いて２次元の探索コマンドの画像処理が行われるようにしても良い。
【０３９６】
２次元あるいは３次元の探索処理を行う場合に、探索する対象物が見る方向によって形が異なることは当然あるが、見る方向が同じでも対象物が変形するものである場合は見え方も変化する。そのような場合には、最初から全ての場合の変形を考慮して２次元あるいは３次元の参照ＣＡＤデータを用意するのは大変であるので、変形する結合条件を参照ＣＡＤデータとしてもたせておくようにする。
【０３９７】
その例を図１１２〜１１４を参照して説明する。図１１２は、ＣＡＤデータの結合関係をデータで記述する場合の一例を示しており、可動する各部品Ｐａｒｔ１とＰａｒｔ２の基本位置関係、動作軸（直動か回転か）、動作範囲を記述したものである。図１１３は、可動のある撮影対象の例として携帯電話機のようなもので、部品１８ａは、アンテナで本体の部品１８ｂに結合しており、その結合条件は、所定の基本位置関係からｚ方向にＺ１〜Ｚ２の範囲で伸び縮みして、本体１８ｂと本体１８ｃは、ｘ軸回りにθ１〜θ２回転するようになっている。このような参照データのものを探索する場合には、まずは最初に代表的な形状を選ぶ。それは、２次元探索する場合の視点を選ぶ場合もそうであるが、代表的な特徴ある視点を選ぶようにする。形状が変化するものについては、変形するパターンの中より代表的なパターンをいくつか絞り込む。この携帯電話機の場合は、図１１４の（ａ），（ｂ），（ｃ）が代表的な形状である。これは、普段、その対象物がそのような形をしている場合が多いという知識データより参照ＣＡＤデータを生成するようにする。知識データは、ロボットに学習機能を設けて自動的に入力、記録されるようにしても良いが、まずは、人があらかじめ入力しておく方法もある。図１１４の（ａ），（ｂ），（ｃ）の３つのパターンが生成された場合、いきなり、３つの３次元ＣＡＤデータでの探索指令を出すのではなく、まずは、２次元の探索処理を行うようにする。それは、図１１４の３つのパターンに対してそれぞれ体表的な形に見える方向をいくつか選択して、そのいくつかの視点から見た場合の２次元の参照ＣＡＤデータを生成する。画像データにして画像データレベルでのマッチング探索できるようにしても良いし、２次元で抽出した２次元のＣＡＤデータ（この場合、２値化したような形状データも２次元のＣＡＤデータと称している。）を２次元の参照ＣＡＤデータのマッチングをとるようにして良い。ＣＡＤデータどおしのマッチングは全体の大きさを合わせてから行うようにする。部品の可動状態を考慮した２次元のマッチングは、基本的シルエットのマッチングで代表的な輪郭形状のマッチングになるので２次元の図形マッチングになる。更に、ＣＡＤデータの表面にマークが付いていたり、模様の色情報も有したＣＡＤデータになる場合には、先に説明した色境界線分を抽出して、境界線分色情報の比較や線分の繋がりなど対応点を求める手段と同じ処理方法も取り込んで、模様などのマッチング処理をするようにして良い。ここでのマッチングは、代表的な形、代表的な視点かから見た複数参照パターンのマッチングになるので、概略のマッチングになる。概略であるのでマッチング度もそれほど高くはないか、そういう中でマッチング度が高かったものを探索候補物体として絞り込むようにする。そして、絞り込まれた候補物体に対して、次の段階で視点の位置、変形する量を少しずつ変えながら、よりマッチング度の高くなる視点の方向、変形の条件を探索しておくようにする。最終的には、３次元の探索マッチングコマンドで精度良く対象物体の位置と姿勢、可動部を有する物体の可動状態を求めることができる。
【０３９８】
最初は概略のマッチングで、しかも２次元のマッチング機能を利用すれば、全体の探索時間をより高速にすることができるようになる。ここで、２次元の参照図形を生成する機能や大きさを推定する機能などは、その全部を視覚情報処理装置内に設けても良いし、アプリケーション側の制御装置側に一部の機能をもたせるようにしても良いし、アプリケーションとして構築しやすい機能分担を考えて良い。また、部品が動きうる可能性のあるもの、例えば、回転するタイヤなどは、止まっているタイヤの模様と回転しているときに普通のカメラ撮影して画像データとして撮影される模様は異なるので、そのような物体であることをあらかじめＣＡＤデータの結合条件か或いは別のデータとして登録しておき、探索時に参照して、模様が一致しない場合でも形が一致していれば回転中のタイヤであることが認識できるようにしても良い。また、タイヤのように丸くなく、四角の物体が回転する場合は回転したときの回転形状を回転する軸の情報より生成してマッチングするようにしても良い。
【０３９９】
拡張コマンド７は、より処理の高速化を図るために判断機能も視覚情報処理装置内に設けるようにした場合の例で、一つの例で対象物体ＩＤ１と対象物体ＩＤ２が衝突するか否か、衝突するとした場合に、衝突までの時間を予想する機能を設ける場合のコマンドの例である。
【０４００】
図１１５は、物体２０ａ１と物体２０ｂ１の移動の概念を示している。移動する物体２０ａ１は、ある時間後には１０ａ２の位置に、同様に物体２０ｂ１は物体２０ｂ２の位置に、更に同じ時間後には２０ａ３と２０ｂ３の位置に移動した場合の例である。ここで、それぞれの３次元座標内での物体２０ａ１の移動方向とその大きさは、ベクトルδａ１，δａ２と変化しているので、次の所定の時間までの動きを予測すると、更にδａ３だけ移動することが予測できる。物体２０ｂ１の移動方向とその大きさについてもベクトルδｂ１，δｂ２と変化しているので、次の所定の時間までの動きを予測すると、更にδｂ３だけ移動することが予測できる。この予想から、２つの物体が衝突するか否かをチェックするようにする。また、更にその先の移動方向をその延長上で推定するようにすれば、衝突するまでの時間を推定することもできる。
【０４０１】
図１１５の（Ｇ）は、２つの物体の動きを２次元画像上で示したものである。この場合の処理も高速化するために、２次元上の処理で判断するようなコマンドを用意しておき、２次元画像上で判断させるようにしても良い。３次元の移動軌跡であるベクトルδａ１，δａ２などは、２次元画像上の移動軌跡ベクトルδａＸＹ１，δａＸＹ２と対応する量であるので、厳密な衝突判断はできなくとも、少なくとも２次元の画像上で衝突しなければ、すきまが、まだ、あいている間は衝突しないと２次元処理の段階でも概略判断させることが可能である。また、先に３次元上で衝突予想位置を求めてその位置を２次元画像上に移して考えたときに、現在の画像上の対象物が衝突予定位置に来たかどうかでより精度良く判断できるようになるし、衝突するまでの時間をより精度良く予測することが２次元の画像上で高速処理でできるようになる。また、３次元と２次元の関係をあらかじめ確認して、３次元と対応する２次元での条件を設定（例えば、この物体の２次元画像のこの部位とこの部位の間にあれば衝突しないことなど。）を３次元データであらかじめ確認できるようにしておき、その関係を２次元の画像データ上で対応させて、監視するときには２次元の画像上で高速に監視して、何かロボットなどの制御信号にフィードバックするようにしても良い。
【０４０２】
また、拡張コマンドとしては、コマンド指令後、撮像装置（ロボット自身）の絶対位置と姿勢情報のかわりに変位量と姿勢の変化量、あるいは、認識した物体ＩＤの移動量と姿勢の変化量などを応答出力されるようにしたり、あるいは、変化量に所定の閾値を設定してそれを超えるような場合にはその旨の応答出力されるようにしても良い。このように、これらの拡張コマンドは、アプリケーション側の制御装置３００の使いやすいコマンドを用意するようにして良い。
【０４０３】
以上のように、これらの拡張コマンドを設ければ、高速にＣＡＤデータの生成や探索がより容易にできるようになる。また、参照ＣＡＤデータを生成したときに電子タグシステムのデータと対応するようにＣＡＤデータを作成しておき、実際に探索する場合には、タグシステムの情報を利用してＣＡＤデータを管理したり、対象物体を探索するようにしても良い。押して変形、叩いて音を聞いて対象物の種別を認識するようにし、また、あらかじめ物体に関するデータを用意（あるいは学習するように）して、例えば、金属であれば叩くと高い音がする、ゴムであれば押すと変形して反力が検出される、水であれば変形して反力は検出されない、などの知識情報も活用して、ロボットのアクティブな動作も活用して、撮影対象の未知の物体が金属であるか、ゴムのようなものであるか、水のようなものであるか調べるような使い方もできるようにしておくと良い。また、探索した物体にＩＣタグが付いている場合には、ＩＣタグにあらかじめその物体の物理的な特性を書き込んでおき、それを読み取った情報を生成したＣＡＤデータの中に取り入れられるよういしても良い。また、一つの物体に目的を別にした複数のＩＣタグが装着される場合、例えば、本環境認識システムのためにＩＣタグを取り付けると先に別の目的に取り付けられていたＩＣタグとダブル場合もあるが、そのような場合には、後から取り付けるタグ情報の中に同じ物体に既に張られているＩＣタグの認識番号を書き込んでおき、そういう別のタグが付いている物体であるということや、別のタグが持っている情報を必要に応じて利用できるようにしても良い。
【０４０４】
また、拡張コマンドに、人や動物やロボットを認識したその次ぎに使用するコマンドとして、アイコンタクトの有無を検出させるようなコマンドを用意しても良い。処理としては、認識した人や動物やロボットの参照ＣＡＤデータと個々の部品結合データなどより、認識対応の目あるいはカメラの位置と部品ＣＡＤデータを探索して、その視線方向が自分の現在いる方向か否かで、認識対象がこちらを見ているか否かを判断するようにする。また、輝度レベルが設定レベル以上の明るさの何かが光ったなら、あるいは所定の色の物体が何か視野の中に入ったなら、すかさず、その位置を３次元計測して計測結果の座標（Ｘ，Ｙ，Ｚ）をコマンドの応答結果として出力するような拡張コマンドを用意しておくことで、危険物を探索して発見した場合には、とにかくその方向からロボット自身の見を守るような動作を直ぐ取れるようにしても良い。このような処理を視覚情報処理装置１００側で単一コマンドでクローズして結果がでるまで任せることができれば、主制御装置３００の処理の負担と結果と指令のやりとりの煩雑さを不要にすることができる。
【０４０５】
また、拡張コマンドとして、周囲に障害物などがない場合には、ＣＡＤデータの生成を粗く行うようにして、周囲に特に近くに障害物がある場合（これは座標を指定しても良いし、視覚情報側で障害物を認識させてから処理をさせても良い）は、詳細にＣＡＤデータを生成するように切り替えるコマンドを用意しておけば、例えば、ロボットが移動中、周囲に障害物のない広いところを移動中にはラフに広範囲のＣＡＤデータを生成させ、障害物の近くをゆっくり移動するような場合には、常に障害物の衝突防止検出を行いながら障害物周辺の位置検出を精度良く行うようにする使い方も容易にできるようになる。
【０４０６】
拡張コマンドに干渉チェックというコマンドを用意して、干渉チェックする対象物体、ロボットであればロボット自体の形状データとその時その時の各関節の角度情報などを指令データをして入力して、周囲環境と干渉チャックを行わせ、衝突する恐れのある場合には、応答として、アラーム信号と衝突部位（自分のどこと環境のどこが衝突するか）、現在のクリアランス量、現在のまま動くと衝突するまでの時間などを返すようにしても良い。そのときに、干渉チェックをよりしやすい方向へロボットの位置や撮像装置の向きや位置を誘導するためのロボットへ干渉チェックをより良く行うための望ましいロボットの制御データ（これは、ロボットの位置、姿勢、撮像装置の位置や向きなどの大まかなデータなどで実際にロボットを制御するための具体的な制御指令ロボットの制御装置などが生成してロボットを実際に制御するように機能分担することで良い。）を応答情報の一部として出力するようにしても良い。
【０４０７】
また、探索機能関連の各種コマンドについても、より探索しやすい方向に撮像装置を移動要求に関わる情報として、望ましいロボットの制御データを出力するようにして、物の影で探索したい場所が見えない場合とか、光が反射して探索したい場所が見えない場合とか、もっと詳しく詳細に探索するために近づく必要がある場合などロボット制御装置と連携しながら効率良く探索できるようにしても良い。また、ロボットの手先に撮像装置を搭載するような場合や、あらかじめロボットの手先や足先の参照形状データを指定して、あるいはロボットが工具を持っている場合には工具の参照形状データを指定して、それと作業の目的（例えば、撮像装置自身や、足先、手先の到達目標を指定するとか、手先を環境の物体ＩＤの座標Ｘ，Ｙ，Ｚで正対させるとか、指定した認識対象の物体ＩＤを常に撮像装置画面内入れるように追従させるとか、指定した物体ＩＤを指定した物体ＩＤの後に所定の位置関係で追従させるなど）を指定して、その目的を達成するためのロボットの制御誘導情報を出力するようにしても良い。
【０４０８】
視覚情報処理装置は、ロボットの形状データと環境のデータをアクセスできる構成になるので、応答としては、撮像装置あるいは物体ＩＤの座標系でＸ，Ｙ，Ｚの方向、Ｘ，Ｙ，Ｚ軸周りの回転方向の速度指令で誘導制御指令情報として応答するようにしても良いし、ロボット側の動作関節構造が分かっていれば、各動作軸の制御信号にまで指令情報を分解して各関節の制御データを直接に生成できる機能を持たせることで、ロボットの制御系を合理的に構成することも可能となる。
【０４０９】
また、２次元及び３次元の各種参照データベースを充実させておけば、例えば、路上で走っている車を認識して特定できれば、その車の運転席の位置情報もデータにあればそれを参照して運転席周辺のＣＡＤデータの生成や２次元あるいは３次元のマッチング処理を行わせるようにして、例えば、典型的な男女の参照データを複数用意しておけば、それらとのマッチングで運転しているのは男か女かの認識が可能となり、更に、個人の参考データを用意しておき、より詳細なマッチング処理を行わせることで、運転しているのは誰かというところまで認識させるような制御をロボットにも容易に行わせることが可能となる。
【０４１０】
また、遭難者を上空から探索するような場合は、あらかじめ遭難者の参照データを容易していないような場合には、例えば、遭難者と背格好が同じような人に協力してもらい、考えられるいろいろな状況姿勢での２次元及び３次元の参照データを生成しておき、遭難者を探索するようなこともできる。これは、ロボットでなくても、車や飛行船やヘリコプターに撮像装置を搭載して移動しながら探索するような運用方法を用いても良い。探査時に赤外線カメラやＸ線ＣＴなどの別のセンサと組み合わせて、それらのセンサで検知された部位に相当する場所、あるいは方向を精度良く探索するように連動させても良い。
【０４１１】
また、距離の計測に３次元のレーザ計測あるいは距離画像と可視画像を得られるＣＣＤなどを応用した２次元の距離センサなどと組み合わせてステレオ計測の代りに３次元計測をしてトラッキングや形状探索を行うようにしても良い。
【０４１２】
また、ＣＡＤデータベースに各種認識ＩＤの形状情報に対応付けて、その名称や重量や各種情報を対応させてデータを管理するようにして良く、例えば、鳥であれば鳥の種類、大きさ（これは成長に伴う大きさ）ごとに代表的な形状データを登録したらば、それらのデータごとに鳥の鳴き声の音声データ（時系列の音声信号の一定時間のサンプル記録など）を登録しておき、視覚情報処理装置に音声認識機能も付加して、現在撮像装置で撮影探索認識している対象の物体（鳥）が何の種類か形状データのみでは特定しずらいような場合に、その時にマイクなどからの別のセンサで取得した鳥の鳴き声の音声データを取得して、その音声の所定時間サンプリングした時系列データを参照データとして入力すれば、その音声データもデータベースの中の音声情報とマッチングを行い、現在認識中の鳥の種類の特定処理に併用して、より精度良く物体の認識ができるようにしても良い。
【０４１３】
また、拡張コマンドとして、１回特定の対象物体を認識したならば、その物体ＩＤを指定して、物体ＩＤが移動するような場合にも継続認識させて３次元空間上位置と姿勢を連続して応答させるコマンドを設けるようにしても良い。移動する物体が撮像装置の視野から外れたり、手前の障害物の後ろを移動して継続した認識処理が途切れるような場合についても、図１１５で説明したように、それまでの動きを予測して継続して探索すべき場所を視覚情報処理側で自動的に推定して認識処理を行うようにさせても良い。それでも見失った場合には、その結果を応答する。
【０４１４】
また、拡張コマンドとして、探索範囲と２次元あるいは３次元の参照ＣＡＤデータを指定して、同じような形状物体、模様などの数を数えて、数えた数を応答させるようにしても良い。
【０４１５】
また、過去に１回認識してＩＤが特定されているものは、ＣＡＤデータあるいはそれに対応する各種データなどの代りにＩＤを指定するようにして、物体に付けた特定の名前（番号）であるＩＤによって参照するべきデータを視覚情報処理側で自動的に参照できるようにしても良い。また、あらかじめ、何を検出するか決めておき、検出範囲とその検出する内容をコマンドで指定して、その検出結果を応答されるようにしても良い。例えば、水道の蛇口の場所を指定して、蛇口から水が出ているか否か、コンセントの場所を指定して、コンセントにプラグが差し込まれているか否かを検出させらり、ランプや信号等であれば、その位置を概略して、ランプや信号が付いているか否か、何色か、などを応答するようにしても良い。
【０４１６】
このように、拡張コマンドとしては、ＡＩ的な処理を含めた、アプリケーション側であれば有効なコマンドをあらかじめ決めて、各種用意しておくようにしても良い。また、典型的な動作パターン（動き）のデータベースに登録しておき、認識対象の動きがデータベースに登録してある動きと同じか否かを判別することによって、認識対象が何の動作をしているかという、あらかじめデータベースに登録してある動作の種類（例えば、人間が歩いている動作、万歳をしている動作、屈伸運動をしている動作など）を応答出力できるようにしても良い。動作の参照パターンデータとしては、時刻データ付きの３次元ＣＡＤデータで表現して、時間軸のスケールはその動作パターンごとに登録されている所定の範囲内で可変で合わせるようにして、時系列のＣＡＤデータの動作パターンの相関性、具体的には、１シーンごとのマッチングをとって、姿勢のマッチング度とその変化する姿勢の時系列順番のマッチング度より、参照パターンデータの中に現在撮影している画像情報の中の認識対象の動きが所定の閾値以上に一致する場合には、当該参照パターンの動作をしていると判断するようにしても良いし、動作パターンを全て時系列の３次元ＣＡＤデータで記述しないで、動きの特徴、傾向（例えば、手の動きの大きさ、早さ、位置など）の時系列の特徴量の変化パターンで記述しておき、撮影画像の認識対象物の時系列の当該特徴量を抽出比較してどの参照パターンの動作をしていると判断するようにしても良い。このときデータベースは、３次元の動きの特徴量を登録しておき、マッチング処理を行うときには、認識対象と撮像装置の位置関係より参照データを２次元画像上での特徴量の変化パターンを求めて２次元の処理で特徴量の変化パターンのマッチングを高速に行うようにしても良い。また、コマンドしては、探索対象物を特定しないで、撮像装置から入力される画像情報に対して、データベースに登録されている参照ＣＡＤデータとのマッチング処理を自動で行わせて、マッチング度が高い結果となった参照画像を物体ＩＤをその時点で応答するようなコマンドを用意しても良い。認識した物体のＩＤ出力は複数であっても良いし、ＩＤと一緒にその位置と姿勢情報も出力するようにしても良い。また、多くの参照データをデータベースに登録しておく方法として、一緒に存在する可能性のあるデータを関連付けして、また、どういう場所にあるかという場所の情報とも関連付けをしておくことによって、現在、撮像装置が撮影している場所の情報からマッチング処理を行う参照データの数を絞り込んで、より効率良く処理を行わせることも可能となる。
【０４１７】
図７４〜図９１は、本発明における第１〜１５の手段をＬＳＩ回路あるいはＬＳＩを組み合わせた基板の回路などで実施する場合の基本的なブロック図を例示している。図９２〜図９９は、そのときのタイミングチャートの一例を示し、図１００〜１１１は、各回路の動作を説明する基本処理フローチャートを例示している。これらの例は、あくまでも一例であり、盛り込む機能の内容、回路の組み合わせ方法、タイミングの取り方などはいろいろ考えられるので、目的に応じて、また、回路の規模、開発費用などの制約条件を考慮して変形するようにすると良い。
【０４１８】
図７４は、撮像装置１０，２０からの画像情報（映像信号）をＡ／Ｄ変換回路１５（ａ）０，１５（ａ）３３により、それぞれの画像メモリへ取り込み、水平特徴点抽出回路１６（ａ）１，２と１６（ａ）２１，２２、垂直特徴点抽出回路１６（ａ）３，４と１６（ａ）２３，２４で色境界線分の特徴点を抽出して、線分生成（１）〜（４）１６（ａ）５〜８と線分生成（１）〜（４）１６（ａ）２５〜２８でそれぞれ２次元のＣＡＤデータの線分を生成して、線分統合（１）〜（４）１６（ａ）９〜１２と線分統合（１）〜（４）１６（ａ）２９〜３２で各々の左右の撮像装置１０，２０で撮影した画像情報の線分を統合して各々のメモリへ格納する処理を行う。各処理回路は、動作速度を速くするために、水平および垂直の特徴点抽出回路は２つづつ、線分生成、線分統合はそれぞれ４つづつパラに処理できるように構成してある。処理速度に応じてパラに処理する回路数は計画するようにして良い。線分生成を画面の中のエリアごとに分割してパラの処理で高速に実施するようにしたので、各エリアをまたいで結ばれる線分が存在することから、その領域をまたがって繋がっている線分を同線分として繋げる処理を線分統合（１）〜（４）の回路の中で実行するようにする。
【０４１９】
また、ステレオ計測の前処理として、点抽出（１）〜（ｎ）１６（ａ）１２〜１４は、右画像の線分データメモリから対称点を抽出する。例えば、線分の始点と終点の点データを抽出して、その点データを２Ｄ点メモリへ書き込む。
【０４２０】
次に、Ｓ候補（１）〜（ｎ）の回路１６（ａ）１５〜１７は、ステレオの対応点候補を左画像の線分データメモリから抽出する。ステレオ計測では、１本の線上に対応点は存在するので、その線上にある左画像の中の候補点を抽出するようにする。
【０４２１】
対応探索（１）〜（ｎ）の回路１６（ａ）１８〜２０は、対応点候補の絞込みをベクトルのマッチング処理などを利用して行う。絞り込んだ結果、対応点候補が一つに絞り込まれた場合は、左右の点をＳ対応点メモリへ出力する。ここで、対応探索（１）〜（ｎ）の処理は、他の処理よりも時間がかかるため、パラに処理できる回路をｎ個用意するが、ｎ個は十分多くするのが良い。
【０４２２】
メモリ転送（１）１６（ａ）１０は、トラッキングフラグメモリの内容を確認して、転送するフラグがＯＮしていた場合には（左画像の）線分統合メモリの内容をＴ計測（左画像の）線分統合メモリへ転送する。これは、トラッキングによる３Ｄ計測を行うために左の画像の処理結果を一時記憶しておくための処理である。トラッキングフラグメモリは、最初と、トラッキングを見失って再開する場合やトラッキングによる計測を実施した後に転送ＯＮのフラグになるようにする。メモリ転送（１）１６（ａ）１１は、トラッキングを行うために毎回左画像の線分統合データを前（左画像の）線分統合メモリへ一時記憶しておくための処理である。
【０４２３】
Ｓ対応点メモリ（１）〜（４）へ書き込まれた左右の対応点のデータは、次の図７５の（Ａ）から３Ｄ計測（１）〜（４）の回路１６（ｂ）１〜４で読み込まれてステレオ計測され、その結果は３Ｄ点メモリ（１）〜（４）へ書き込まれる。次に、３Ｄ線生成（１）〜（４）の回路１６（ｂ）５〜８で３Ｄ計測した点に繋がる線分についても３Ｄ計測して３次元の線分のＣＡＤデータを生成して３Ｄ線メモリ（１）〜（４）へ書き込む。また、ここでも、処理を高速化するために、４つの同じ回路をパラに動作させるので、それぞれで生成した線分が繋がっている場合もあるのでその境界部分の処理を行い繋がる３Ｄ線分は２本の線分を１本に統合する処理を３Ｄ線統合（１）の回路１６（ｂ）９で行い、統合された３Ｄ線分を３Ｄ線分統合メモリへ出力する。ここで出力する３Ｄ線分統合メモリは左カメラの座標系における３Ｄ線分データである。
【０４２４】
図７６は、トラッキング処理の回路の部分を示している。前（左画像の）線分統合メモリから始点や終点、分岐点や鋭角な点の色境界線分の特徴となる点の抽出を、ステレオ計測の場合と同じように、点抽出（１）〜（ｎ）の回路１６（ｃ）１〜３で行い、２Ｄ点メモリ（１）〜（４）へ出力する。次に、Ｔ候補（１）〜（ｎ）の回路１６（ｃ）４〜６で（左画像の）線分統合メモリの中からトラッキングの対応点候補を抽出する。次に、対応探索（１）〜（ｎ）の回路１６（ｃ）７〜９で候補点の絞込みをベクトルマッチング処理などを利用して行い、対応点候補をＴ対応点メモリ（１）〜（４）へ書き込み出力する。ここでも、対応探索（１）〜（ｎ）の処理は、ステレオ計測の場合と同じ処理回路が利用できるが、同様に時間がかかるのでパラに処理をする回路数ｎは十分多くするのが良い。
【０４２５】
次に、図７７の入力（Ｂ）からトラッキングの対応点候補を読み込み、移動量計算（１）〜（４）の回路１６（ｄ）１〜４で移動量を計算して移動量メモリ（１）〜（４）へ書き込み、最終的には安定度評価の回路６（ｄ）５で一番正しいと思われるトラッキングの対応点３点を選んで、その３点による移動量を決定移動量として決定して決定移動量メモリへ書き込む。決定できなかった場合は、トラッキングを見失ったことになるのでＴ継続フラグメモリへＮＧを書き込む。トラッキングが継続している場合は、Ｔ継続フラグメモリへ継続中のフラグを書き込む。ここでの安定度評価では、候補移動量で３Ｄ計測された３Ｄ点を前回の座標系へ変換したときに多くの３Ｄ点が一致する移動量をより正しい移動量として選択するようにする。
【０４２６】
次に、図７８では、３Ｄ線分統合メモリ（左カメラ座標系）に求められた３Ｄ線分データをトラッキングによる座標変換の回路１６（ｅ）１で３Ｄ線分統合メモリ（トラッキング開始時のワールド座標系）に変換する。次に、計測された点の誤差の大きさ、誤差の形状を考慮して、新たに計測された点、線分データは追加して、誤差が小さくなるものは更新する処理を更新処理１６（ｅ）２で行い、トラッキング開始時のワールド座標系で表現された連続トラッキング中の３Ｄ線分全体の統合メモリへ書き込むようにする。次に、更に最初のトラッキングが途中で途切れて再開している場合は、トラッキングが途切れたときの一番最初のワールド座標系へ変換するための座標変換を回路１６（ｅ）３で行い、その変換した点、線分データを最初のワールド座標系で表現された３Ｄ線分全体の統合メモリへ書き込む。同じ点が存在する場合には、ここでも総合的な精度の良い、誤差形状の小さな点に更新するようにしたり、この変換で生じる誤差を加算するなどの処理も行うようにする。ワールド座標変換１６（ｅ）３は、トラッキングで現在位置を見失っている状態では変換できないので、３Ｄ決定フラグメモリを参照して３Ｄ決定移動量メモリに座標変換行列が決定されていない場合には処理を行わないようにする。
【０４２７】
図７９，図８０は、トラッキングを見失った場合に、対応する変換行列を決定するための処理を行う回路ブロックを示している。３Ｄ点（１）〜（ｎ）の回路１６（ｆ）１〜（３）は、３Ｄ線分全体の最初のワールド座標系における線分データの中から３Ｄ点を抽出する。抽出する基準は、見失った場所近傍でその後のトラッキングによる移動量を考慮して移動している可能性のある範囲を特定して、その中の３Ｄ点を抽出するようにする。次に、Ｗ候補（１）〜（ｎ）の回路１６（ｆ）４〜６では、抽出した３Ｄ点に対応するトラキング再開後に生成される３Ｄ線分データの中の３Ｄ点を抽出する。抽出する基準は、見失ってから移動した量に対応する範囲に存在する３Ｄ点を候補として抽出する。次に、３Ｄ探索（１）〜（ｎ）の回路１６（ｆ）７〜９で、それぞれ対応する点を３次元のベクトルマッチングなどの手法を用いて候補を絞り込む。
【０４２８】
次に、３Ｄ移動量計算（１）〜（４）の回路１６（ｇ）１〜４は、絞り込んだ対応点候補の組み合わせを分担してそれらの対応が正しいとした場合の移動量を計算して３Ｄ移動量メモリへ出力する。そして、最後に、対応度評価１６（ｇ）５の回路で総合的に多くの点がより精度良く一致する組み合わせを決定して決定した移動量（座標変換係数）３Ｄ決定移動量メモリへ書き込む。また、３Ｄ決定移動フラグメモリへ決定したフラグを書き込む。３Ｄ点の中から候補点を見つける処理では、見失ってからの時間が長くなればなるほど、その後に移動する移動量も大きくなるので、候補となる点の数が多くなる。点の数が処理能力をオーバーするような場合もありうるので、そういう場合には、処理をいくつかのエリアブロックに分割して何回かに分けて処理するようにしても良い。また、最初にＣＡＤデータを生成して見失ってからその後生成したＣＡＤデータが多くなり、最初の見失う前に生成したＣＡＤデータの量が少ないような場合で、所定の長い時間最初の位置を再特定できない場合も生じるが、そのような場合は、最初に見失う前に生成したＣＡＤデータに繋げることをあきらめて、後に生成を再開したワールド座標系を最初の座標系とするような処理にしても良い。その場合、以前に生成されたＣＡＤデータは破棄するようにしても良いし、いつか繋がることもあることを期待して残しておくようにすることでも良い。
【０４２９】
図８１は、本回路全体の外部との入出力Ｉ／Ｆの回路ブロックを示している。コマンド入力回路１６（ｈ）１は、外部のマイコン等の処理装置３００からのコマンド指令を入出力Ｉ／Ｆ部から入力してコマンド格納メモリへコマンドの内容を格納する。付属データ入力の回路１６（ｈ）２は、同様に、コマンドに付属する指令を実行するときに必要な情報を読み取りコマンド付属データ格納メモリへ書き込む。カメラ位置出力の回路１６（ｈ）３は、本視覚情報処理装置１００が３D計測やトラッキングを行うことにより求まるカメラの現在位置と姿勢の情報をカメラの現在位置、姿勢が格納されているメモリから読み出してマイコン等の装置３００へ読み取れるように入出力Ｉ／Ｆ部へ出力する。探索結果出力の回路１６（ｈ）４は、同様に、探索などのコマンドを実行したときの結果を格納されているメモリから読み出して入出力Ｉ／Ｆ部へ出力する。２Ｄ−ＣＡＤデータ入出力の回路１（ｈ）５は、大量のデータを扱える外部メモリ２００と入出力Ｉ／Ｆ部を介して外部メモリ２００から探索用２Ｄ参照ＣＡＤデータを読み込んだり、逆に外部メモリ２００へ後で探索用２Ｄ参照ＣＡＤデータとして使用可能な２ＤＣＡＤデータや探索等の処理結果としての２Ｄ−ＣＡＤデータを出力する。また、３Ｄ−ＣＡＤデータ入出力の回路１（ｈ）６は、同様に、大量のデータを扱える外部メモリ２００と入出力Ｉ／Ｆ部を介して外部メモリ２００から探索用３Ｄ参照ＣＡＤデータを読み込んだり、逆に外部メモリ２００へ後で探索用３Ｄ参照ＣＡＤデータとして使用可能な３ＤＣＡＤデータや探索等の処理結果としての３Ｄ−ＣＡＤデータを出力できるようにする。
【０４３０】
図８２は、トラッキング計測判定の回路１６（ｉ）１の周辺回路を示している。トラッキング計測判定の回路１６（ｉ）１は、Ｔ継続フラグメモリからトラッキングが継続されているかの状態を読み取り、また、決定移動量メモリからは、トラッキングによるカメラの移動量を読み取り、その移動量が３Ｄ計測に適した移動量に達した場合にはトラッキング計測可能と判断してトラッキング計測を実行させるタイミングを決める。トラキングによる３Ｄ計測は現在の（左画像）の線分統合データとトラッキング計測のために前に記憶しておいたＴ計測（左画像の）線分統合データを使用して、ステレオ計測と同じように、処理回路は図８３の点抽出（１）〜（ｎ）の回路１６（ｊ）１〜３、Ｓ候補（１）〜（ｎ）の回路１６（ｊ）４〜６、対応探索（１）〜（ｎ）の回路１６（ｊ）７〜９、図８４の３Ｄ計測（１）〜（４）の回路１６（ｋ）１〜４、３Ｄ線分生成（１）〜（４）の回路１６（ｋ）５〜８、３Ｄ線分統合回路１６（ｋ）９で３Ｄ線分統合データを生成して、図８５のトラッキングによる座標変換の回路１６（ｌ）１でトラッキング開始時からの移動量の座標変換を行い、更新処理１６（ｌ）２、ワールド座標変換１６（ｌ）３で最初のワールド座標系における３Ｄ線分統合データを更新するようにする。このトラッキングによる計測処理を行うと、計測精度は、カメラの間隔を広くしてステレオ計測するのと同じ効果で向上するが、タイミング的にはシリーズになるので、その分、画像情報を取り込むサイクルタイムが長くなるので、設ける場合には、ステレオ計測の実施タイミングの代わりにトラッキングによる計測を同じタイミングで実施するようにしてサイクルタイムが長くならないような工夫も行うようにしても良い。また、必ずしも、この機能は盛り込まなくても、ステレオ計測のみでも、視点の位置が変わったときに誤差形状を更新させて、精度の悪い奥行き方向の精度を別の角度からのステレオ計測で補うことも可能なので、適用システムによっては十分使用可能なものとなるので省略するようにしても良い。
【０４３１】
図８６，図８７は、３Ｄ探索の処理回路のブロック図を示している。３Ｄ点（１）〜（ｎ）の回路１６（ｍ）１〜３は、探索用３Ｄ参照ＣＡＤデータの中なら始点、終点、鋭角な頂点、分岐点などの３Ｄの特徴点を抽出する。Ｗ候補（１）〜（ｎ）の回路は、生成された３Ｄ−ＣＡＤデータを格納している最初のワールド座標系の３Ｄ線分全体の統合データの中から対応候補を抽出する。抽出する基準は、コマンドおよびコマンド付属データでエリアを特定する指令があればそのエリアの中から抽出するようにする。特に特定するエリア指定がコマンドで与えられない場合には、現在のカメラの位置とカメラの向きから視野に入る方向のエリアの中の３Ｄ点を抽出するようにする。３Ｄ探索（１）〜（ｎ）の回路１６（ｍ）７は、抽出した生成ＣＡＤデータの３Ｄ点と参照ＣＡＤデータの３Ｄ点の対応点候補を求めてＷ対応点メモリ（１）〜（４）へ書き込む。
【０４３２】
３Ｄ類似度計算の回路１６（ｎ）１〜４は、３Ｄ点の対応点候補の組み合わせのすべてを分担してパラに３Ｄ類似度を計算して類似度の計算結果を３Ｄ類似度メモリ（１）〜（４）へ書き込む。そして、類似度評価の回路１６（ｎ）５で最終的に対応点候補の中で最も類似度の高い組み合わせを決定する。類似度が十分一致する候補が見つかった場合には、一致度の高い順番にＣＡＤデータ転送回路１６（ｎ）６に指令して探索などの処理結果の３Ｄ−ＣＡＤデータ格納メモリへ格納する。その結果、候補がいくつ見つかったとか、それぞれのマッチング度などは探索などの処理結果メモリへ出力する。
【０４３３】
図８８，図８９は、２次元の探索コマンドを実行する回路のブロック図を示している。点抽出（１）〜（ｎ）の回路１６（ｏ）１〜３は、探索用２Ｄ参照ＣＡＤデータの中から始点、終点、鋭角な頂点、分岐点などの２Ｄの特徴点を抽出する。探索候補（１）〜（ｎ）の回路１０（ｏ）４〜６は、左画像の現在の線分統合データの中から対応候補を抽出する。抽出する基準は、コマンドおよびコマンド付属データで方向やエリアを特定する指令があればその方向やエリアの中から抽出するようにする。特に特定する方向やエリア指定がコマンドで与えられない場合には、現在の左画像の線分統合データ全部の中から抽出するようにする。対応探索（１）〜（ｎ）の回路１６（ｏ）７〜９は、抽出した左画像の２Ｄ点と参照ＣＡＤデータの２Ｄ点の対応点候補を求めて探索対応点メモリ（１）〜（４）へ書き込む。
【０４３４】
２Ｄ類似度計算の回路１６（ｐ）１〜４は、２Ｄ点の対応点候補の組み合わせのすべてを分担してパラに２Ｄ類似度を計算して類似度の計算結果を２Ｄ類似度メモリ（１）〜（４）へ書き込む。そして、類似度評価の回路１６（ｐ）５で最終的に対応点候補の中で最も類似度の高い組み合わせを決定する。類似度が十分一致する候補が見つかった場合には、一致度の高い順番にＣＡＤデータ転送回路１６（ｐ）６に指令して探索などの処理結果の２Ｄ−ＣＡＤデータ格納メモリへ格納する。その結果、候補がいくつ見つかったとか、それぞれのマッチング度などは探索などの処理結果メモリへ出力する。
【０４３５】
図９０，図９１は、探索用２Ｄ参照ＣＡＤデータを生成する回路ブロックを示している。３Ｄ線分の２Ｄ投影の回路１６（ｑ）１は、現在までに生成した３Ｄ−ＣＡＤデータの中からコマンド指令に基づく方向から見たときの２Ｄ参照ＣＡＤデータを生成して探索用２Ｄ参照ＣＡＤデータ格納メモリへ書き込む。作成する参照ＣＡＤデータは、複数の視点から見た２Ｄ参照ＣＡＤデータの場合もある。このコマンドは、すでに生成したＣＡＤデータに対して再度探索、位置決めなどを行いたいような場合に使用する。
【０４３６】
３Ｄ線分の２Ｄ投影の回路１６（ｒ）１は、与えられた探索用３Ｄ参照ＣＡＤデータの中からコマンド指令に基づく方向から見たときの２Ｄ参照ＣＡＤデータを生成して探索用２Ｄ参照ＣＡＤデータ格納メモリへ書き込む。作成する参照ＣＡＤデータは、複数の視点から見た２Ｄ参照ＣＡＤデータの場合もある。このコマンドは、指定された参照ＣＡＤデータの物体を探索する場合に３Ｄマッチングよりより高速に２Ｄマッチングで探索したい場合に使用する。
【０４３７】
図９２〜図９９は、前述の各ブロック回路の動作タイミングを示している。
【０４３８】
図９２のＡ／Ｄの回路１６（ａ）０とＡ／Ｄの回路１６（ａ）３３と図９６のコマンド入力１６（ｈ）１，２から始まって、各ブロック回路は所定のタイミングで順番に動作して、最後は、図９６のカメラ位置出力１６（ｈ）３と探索結果出力１６（ｈ）４となり、以下、同じ順番の動作を繰り返すものである。図９８には、最初のワールド座標系の３Ｄ線分全体の統合メモリの使用状態を、図９９には左画像の線分統合メモリの使用状態を示してあるが、各回路ブロックは同時に同じメモリにアクセスすることができないので、メモリへのアクセスが重ならないようにタイミングを取るとともに全体のサイクル、すなわち、Ａ／Ｄの回路１６（ａ）０とＡ／Ｄの回路１６（ａ）３３が画像情報を取り込んでから次の画像情報を取り込むまでのサイクルはできるだけ短くなるように工夫する。また、使用するメモリのデータは、当該ブロックの回路が動作する前に更新されているように全体のタイミングの順番を決める。ここで示している１回の動作タイミングの時間の長さは、同じ間隔で図示したが、実際の処理時間から実時間の長さは変わってくる。全体的に効率良く処理が高速に実行されるように、この例では、回路のパラの処理を４個とかｎ個として説明しているが、実際の処理時間の関係で適切な平行処理回路の数を決めるようにする。
図１００〜図１１１は、主要な処理回路ブロックの基本的な処理フローチャートを示している。図１００は、１６（ａ）１の水平特徴点抽出(1)の基本フローチャートを示す。図９２の水平特徴点抽出（１）１６（ａ）１のタイミングチャートの起動タイミングでスタートして、まず、処理１６（ｔ１）ａでコマンド格納メモリと付属データ格納メモリを参照して、ＣＡＤデータ生成エリアの指定で方向の指定があれば、処理方向から画像上の処理エリア（IX1〜IX2、IY1〜IY2）を特定する。
【０４３９】
次に、処理１６（ｔ１）ｂで処理エリア内の水平１本の輝度（カラーの場合はRBG輝度）データを画像データから読み込み、次に、処理１６（ｔ１）ｃで水平１本の輝度情報を端部から順番に調べて、変曲点（傾きの変化が上向に急変する点から次の下向きに急変する点までの中間位置、あるいは傾きの変化が下向に急変する点から次の上向きに急変する点までの中間位置）の位置を求めて、画像メモリ上のアドレス座標で点メモリ(1)〜(4)へ順番に格納する。
【０４４０】
次に、判別処理１６（ｔ１）ｄで水平１本の反対の端部まで処理は終了したかどうかを判別して、Ｎｏ．の場合は処理１６（ｔ１）ｃから繰り返す。
【０４４１】
更に、処理１６（ｔ１）ｅで水平輝度データは縦方向の処理エリアIY1〜IY2のすべて終了したかどうかを判別し、Ｎｏの場合は処理１６（ｔ１）ｂから繰り返す。そしてすべての範囲を終了したらば終了する機能を回路に組み込む。
【０４４２】
図１０１は、処理ブロック１６（ａ）１８の対応探索(1)の基本フローチャートを示す。処理１６（ｔ２）ａで候補点メモリ（１）から最初の右画像から抽出した点P（ｉ）とそれに対応する左画像の中から先に抽出された対応点候補の点KP1〜KPnを読み込み、次に、処理１６（ｔ２）ｂで点P（ｉ）の右画像周辺のベクトルを色境界線で区切られた領域ごとに求める。ここでは、ベクトル先端の色情報も含めて求める。また、ベクトルは、点抽出時に求めてメモリへ格納しておき候補点メモリ（１）から読み出すだけにしておいても良い。
【０４４３】
次に、処理１６（ｔ２）ｃで対応点候補の点KPｊの左画像での周辺のベクトル（先端の色情報も含む）を色境界線で区切られた領域ごとに求める。そして、処理１６（ｔ２）ｄで点P（ｉ）のベクトルと対応点候補の点KPｊのベクトルを色境界線で区切られた領域ごとに比較してマッチング度を求める。そして、判別処理１６（ｔ２）ｅで対応点候補KPｊは１〜ｎ個すべての組み合わせが終わったかどうかを判別し、Ｎｏの場合は処理１６（ｔ２）ｃから繰り返す。Ｙｅｓの場合は、処理１６（ｔ２）ｆで点P（ｉ）に対する対応点候補KP１〜ｎの中から１領域内のベクトルマッチング度が高く、２番目の候補点のマッチング度よりも所定以上にマッチング度が高い点のある場合は、ステレオ計測の対応点ＰｏｆＬ（ｉ），ＰｏｆＲ（ｉ）の組合わせとしてＳ対応点メモリ(1)へ書き込む。
【０４４４】
そして、判別処理１６（ｔ２）ｇで抽出点Ｐ（ｉ）はすべて終了したかどうか判別し、Ｎｏの場合は、処理１６（ｔ２）ａから繰り返すようにしてすべての抽出点Ｐ（ｉ）について処理して終了する機能を回路に組み込む。
【０４４５】
図１０２は、１６（ｂ）５の３Ｄ線生成（１）の基本フローチャートを示す。まず、処理１６（ｔ３）ａでコマンド格納メモリと付属データ格納メモリを参照して、ＣＡＤデータ生成エリアの指定で方向の奥行き指定があれば、奥行きから３Ｄ線分生成の処理エリア（距離範囲）を特定する。次に、処理１６（ｔ３）ｂで３Ｄ点メモリ（１）から３次元計測された点３ＤＰ（ｉ）と左右の画像の対応点情報ＰｏｆＬ（ｉ）、ＰｏｆＲ（ｉ）を読み取る。そして、次の判別処理１６（ｔ３）ｃで３次元の点３ＤＰ（ｉ）の奥行きは指定の生成エリア内の３Ｄ点かどうか判別するようにし、Ｎｏの場合には、次の処理１６（ｔ３）ｄと処理１６（ｔ３）ｅはパスするようにする。Ｙｅｓの場合は、処理１６（ｔ３）ｄで右の画像の対応点情報ＰｏｆＲ（ｉ）に繋がる線分上の点に対応する左の画像の対応点情報ＰｏｆＬ（ｉ）に繋がる線分上の点を対応度をチェックしながら探し、対応する点が存在する場合にはその点もステレオ計測による３Ｄ点を求めて、最初の３Ｄ点３ＤＰ（ｉ）に繋がる線分データとして３Ｄ線メモリ（１）へ書き込む。そして、処理右の画像の対応点情報ＰｏｆＲ（ｉ）に繋がる線分上の点に対応する左の画像の対応点情報ＰｏｆＬ（ｉ）に繋がる線分上の点を対応度をチェックしながら探し、対応する点が存在する場合には、その点もステレオ計測による３Ｄ点を求めて、最初の３Ｄ点３ＤＰ（ｉ）に繋がる線分データとして３Ｄ線メモリ（１）へ書き込んで、３Ｄ線メモリには３Ｄ線を構成する点を３Ｄ計測した左画像の視点Ｏ１のワールド座標での座標とその視点から見たときに色境界線分の特徴点として抽出した左右の色情報も一緒に３Ｄ線メモリ（１）の点情報に付属する情報として書き込む。ここで、ＣＡＤデータ生成時刻を以降の処理で参照する場合には、点情報に付属する情報として撮像装置が撮影した時刻データも付属情報として書き込むようにする。
【０４４６】
そして、判別処理１６（ｔ３）ｆで３Ｄメモリ（１）内の３Ｄ計測された点３ＤＰ（ｉ）はすべて処理したかどうかを判別し、Ｎｏの場合は処理１６（ｔ３）ｂから繰り返す。そして、３Ｄメモリ（１）内の３Ｄ計測された点３ＤＰ（ｉ）がすべて処理したならば終了する機能を回路に組み込む。
【０４４７】
図１０３は、１６（ｄ）１の移動量計算（１）の基本フローチャートを示す。まず、処理１６（ｔ４）ａでＴ対応点メモリ（１）の中から前（左画像の）線分から抽出された点ＰｏｆＢＬ（ｉ）ｉ＝１〜ｎと、それに対応する（左画像の）線分から絞り込まれたトラッキング対応点候補ＫＰｏｆＬ（ｉ、ｊ）ｊ＝１〜ｍと、トラッキング対応点候補を対応探索で絞り込むときのマッチング度に関わる情報を読み込む。次に、処理１６（ｔ４）ｂで前（左画像の）線分から抽出された点ＰｏｆＢＬ（ｉ）ｉ＝１〜ｎと、それに対応する（左画像の）線分から絞り込まれたトラッキング対応点候補ＫＰｏｆＬ（ｉ、ｊ）ｊ＝１〜ｍの組み合わせｎ×ｍ個の中から３個を選択する組み合わせ総数の所定の順番の１番目から総数の１／４（４はパラに処理する回路の数）番目の組み合わせの中の１つの組み合わせＳ１（ＰｏｆＢＬ（ｉ）とＫＰｏｆＬ（ｉ、ｊ）の中の１個）、Ｓ２（ＰｏｆＢＬ（ｉ）とＫＰｏｆＬ（ｉ、ｊ）の中の１個）、Ｓ３（ＰｏｆＢＬ（ｉ）とＫＰｏｆＬ（ｉ、ｊ）の中の１個）を次の処理データにセットする。
【０４４８】
そして、処理１６（ｔ４）ｃで前（左画像の）線分から抽出された点ＰｏｆＢＬ（ｉ）ｉ＝１〜ｎの３Ｄ計測されたトラッキング開始時のワールド座標系での３次元座標データを読み込む。そして、処理１６（ｔ４）ｄで前（左画像の）線分から抽出された３点、それに対応する（左画像の）線分から絞り込まれたトラッキング対応点候補の３点と点ＰｏｆＢＬ（ｉ）ｉ＝１〜ｎの３Ｄ計測されたトラッキング開始時のワールド座標系での３次元座標データを用いて撮像装置１０ａの移動量（座標変換係数）を計算して、移動量メモリへ組み合わせ情報Ｓ１，Ｓ２，Ｓ３とともに移動量を書き込む。
【０４４９】
次に、判別処理１６（ｔ４）ｅで組合総数の１／４（４はパラに処理する回路の数）のすべて計算終了したかどうかを判別し、Ｎｏの場合は処理１６（ｔ４）ｂから繰り返し、すべての計算が終了したならば終了する機能を回路に組み込む。
【０４５０】
図１０４は、１６（ｄ）５の安定度評価の基本フローチャートを示す。まず、処理１６（ｔ５）ａで移動量メモリ（１）〜（４）から前（左画像の）線分から抽出された点ＰｏｆＢＬ（ｉ）ｉ＝１〜ｎと、それに対応する（左画像の）線分から絞り込まれたトラッキング対応点候補ＫＰｏｆＬ（ｉ、ｊ）ｊ＝１〜ｍの組み合わせｎ×ｍ個の中から３個を選択する組み合わせと、その組み合わせの３点を選択した場合の移動量の計算結果を読み込む。
【０４５１】
次に、処理１６（ｔ５）ｂで３Ｄ線分統合メモリ（左カメラ座標系）から３Ｄ点の座標データを読み込み、すべての移動量（座標変換係数）で座標変換を行い、３Ｄ線分統合メモリ（トラッキング開始時のワールド座標系）の中にある点と所定の精度以上で一致ずる３Ｄ点の数を求め、一致する３Ｄ点の数の多い移動量候補を絞り込む。次に、処理１６（ｔ５）ｃで絞り込まれた移動量候補の中から、更に、前処理で一致している３Ｄ点の一致度の最も良い移動量候補を決定移動量として決定移動量メモリへ書き込む。
【０４５２】
そして、処理１６（ｔ５）ｄで決定移動量が決定した場合は、Ｔ継続フラグメモリへ「継続中のフラグ」を書き込み、一致する点が少なく、あるいは、一番を絞り込めなかった場合にはＴ継続フラグメモリへ「継続断のフラグ」を書き込み終了する機能を回路に組み込む。
【０４５３】
図１０５は、ブロック１６（ｍ）７の３Ｄ探索（１）基本フローチャートを示す。まず、処理１６（ｔ６）ａで３Ｄ補点メモリ（１）から探索用３Ｄ参照ＣＡＤデータ格納メモリから抽出された点ＰｏｆＲｆＣＡＤ（ｉ）と、それに対応する３Ｄ線分全体の統合メモリ（最初のワールド座標系）から抽出された３Ｄ対応点候補ＫＰｏＣＡＤ（ｉ、ｊ）ｊ＝１〜ｍを読み込む。探索用３Ｄ参照ＣＡＤデータが複数個ある場合は、その種類ごとに分けて以降の計算も行うようにする。
【０４５４】
次に、処理１６（ｔ６）ｂで点ＰｏｆＲｆＣＡＤ（ｉ）の周辺の点へのベクトルをベクトル先端の色情報も含めて求める。３Ｄ領域毎に求めても良い。また、３Ｄ点抽出時に求めて３Ｄ候補点メモリ（１）から読み出すだけにしておいても良い。
【０４５５】
次に、処理１６（ｔ６）ｃで３Ｄ対応点候補ＫＰｏＣＡＤ（ｉ、ｊ）ｊ＝１〜ｍの周辺の点へのベクトル（先端の色情報も含む）をｊ＝１〜ｍのそれぞれについて求める。３Ｄ領域毎に求めても良い。次に、処理１６（ｔ６）ｄで点ＰｏｆＲｆＣＡＤ（ｉ）から引いたベクトルと３Ｄ対応点候補ＫＰｏＣＡＤ（ｉ，ｊ）ｊ＝１〜ｍから引いたベクトルの先端の色情報を含めて比較してマッチング度を求める。３Ｄ領域毎に比較しても良い。色情報を比較する場合には、色情報を登録したときの視点の位置情報から色境界線分の左右の方向を考慮してマッチングさせる。
【０４５６】
次に、処理１６（ｔ６）ｅでベクトルマッチング度が高く、２番目の候補点よりも所定以上にマッチング度が高い点のある場合は、対応点としてマッチング度の高い点ＰｏｆＲｆＣＡＤ（ｉ）と３Ｄ対応点候補ＫＰｏＣＡＤ（ｉ、ｊ）ｊ＝１〜ｍから絞り込んだ点Ｍ個をＷ対応点メモリ（１）〜（４）へ書き込む。そして、判別処理１６（ｔ６）ｆで抽出された点ＰｏｆＲｆＣＡＤ（ｉ）のｉ＝１〜ｎのすべて終了したかどうかを判別し、Ｎｏの場合は処理１６（ｔ６）ａから繰り返す。そして抽出された点ＰｏｆＲｆＣＡＤ（ｉ）のｉ＝１〜ｎのすべて終了したならば終了する機能を回路に組み込む。
【０４５７】
図１０６は、ブロック１６（ｎ）１の３Ｄ類似度計算（１）の基本フローチャートを示す。まず、処理１６（ｔ７）ａＷ対応点メモリ（１）から探索用３Ｄ参照ＣＡＤデータ格納メモリから抽出された点ＰｏｆＲｆＣＡＤ（ｉ）ｉ＝１〜Ｎと、それぞれの点に対応する３Ｄ線分全体の統合メモリ（最初のワールド座標系）の中の３Ｄ対応点（複数個）を読み込む。複数個の員数は、総数の１／４（４はパラに処理する回路の数）とする。また、探索用３Ｄ参照ＣＡＤデータが複数個ある場合は、その種類ごとに分けて以降の計算も行うようにする。
【０４５８】
次に、処理１６（ｔ７）ｂで点ＰｏｆＲｆＣＡＤ（ｋ）から他の点ＰｏｆＲｆＣＡＤ（ｉ）ｉ＝１〜Ｎ（除くｋ）へのベクトルを先端の点の色情報も含めて求める。ここで、ｋは、ｋ＝１〜Ｎの中から点ＰｏｆＲｆＣＡＤ（ｋ）に対応する３Ｄ線分全体の統合メモリ（最初のワールド座標系）の中の対応点の存在するものを選ぶようにする。
【０４５９】
次に、処理１６（ｔ７）ｃで３Ｄ対応点の中の点ＰｏｆＲｆＣＡＤ（ｋ）に対応する点から他の点ＰｏｆＲｆＣＡＤ（ｉ）ｉ＝１〜Ｎ（ｋを除く）に対応する点へのベクトルを先端の点の色情報も含めて求める。複数組求める。次に、処理１６（ｔ７）ｄで点ＰｏｆＲｆＣＡＤ（ｋ）からのベクトル群と点ＰｏｆＲｆＣＡＤ（ｋ）に対応する点からのベクトル群のマッチング度を複数組求めてマッチング度などの計算結果を３Ｄ類似度メモリへ書き込む。また、３Ｄ対応点候補ＫＰｏＣＡＤ（ｉ，ｊ）を求めるときにスケールファクタを考慮している場合は、同様に、そのときのスケールファクタを考慮してマッチング度を求めようにする。
【０４６０】
次に、判別処理１６（ｔ７）ｅでｋ＝１〜Ｎのすべてを終了したかどうか、あるいは、探索は十分かどうか、を判別するようにし、Ｎｏの場合は１６（ｔ７）ｂから繰り返すようにして、すべてが終了したならば終了する機能を回路に盛り込む。
【０４６１】
図１０７は、ブロック１６（ｎ）５の類似度評価の基本フローチャートを示す。まず、処理１６（ｔ８）ａでコマンド格納メモリからコマンド、コマンド付属データ格納メモリからコマンド付属データを読み込む。次に、処理１６（ｔ８）ｂで３Ｄ類似度メモリ（１）〜（４）から探索用３Ｄ参照ＣＡＤデータ格納メモリから抽出された点ＰｏｆＲｆＣＡＤ（ｉ）ｉ＝１〜Ｎと、それに対応する３Ｄ線分全体の統合メモリ（最初のワールド座標系）の中の３Ｄ対応点の組とそのときの３Ｄ類似度計算結果を読み込む。また、探索用３Ｄ参照ＣＡＤデータが複数個ある場合はその種類ごとに分けて以降の計算も行うようにする。
【０４６２】
次に、処理１６（ｔ８）ｃで３Ｄ類似度計算結果より、類似度が高い順番にコマンド付属データで員数が指定ある場合には、その員数以内を順番に３Ｄ線分全体の統合メモリ（最初のワールド座標系）の中の対応する点にかかわるＣＡＤデータを転送する指令をＣＡＤデータ転送回路へ指令して探索等の処理結果の3D-CADデータ格納メモリへ転送させる。そして、処理１６（ｔ８）ｄで類似度が高い順番に３Ｄ線分全体の統合メモリ（最初のワールド座標系）の中の３Ｄ対応点の組の座標データより、探索用３Ｄ参照ＣＡＤデータの基準座標系の最初のワールド座標系の中での位置と向きを計算して探索等の処理結果格納メモリへ書き込む。
【０４６３】
そして、判別処理１６（ｔ８）ｅでコマンドにその他の判断処理などの指令が含まれているかどうかを判別し、Ｎｏの場合は、次の処理１６（ｔ８）ｆは行わないようにして、Ｙｅｓの場合は、処理１６（ｔ８）ｆでその他のコマンドに含まれる指令の内容を処理を実行してその結果を探索等の処理結果格納メモリへ書き込むようにする。また、ここで例をあげると、探索したCADデータID1と探索したCADデータID２の衝突有無を判断する指令の場合には、探索したCADデータID1と探索したCADデータID２の距離を求めてその距離が所定の距離（コマンド付属データで与えられている場合にはその値を使用する）以下の場合は、「衝突危険性あり」を、以上の場合は「衝突危険性なし」を探索等の処理結果格納メモリへ書き込むような処理となる。そして、終了する機能を回路に盛り込む。
【０４６４】
図１０８は、ブロック１６（０）７の対応探索（１）基本フローチャートを示す。まず、処理１６（ｔ９）ａでは候補点メモリ（１）から探索用２Ｄ参照ＣＡＤデータ格納メモリから抽出された点ＰｏｆＲｆＣＡＤ（ｉ）と、それに対応する（左画像の）線分統合メモリから抽出された対応点候補ＫＰｏＬ（ｉ、ｊ）ｊ＝１〜ｍを読み込む。探索用２Ｄ参照ＣＡＤデータが複数個ある場合は、その種類ごとに分けて以降の計算も行うようにする。
【０４６５】
次に、処理１６（ｔ９）ｂで点ＰｏｆＲｆＣＡＤ（ｉ）の周辺の点へのベクトルをベクトル先端の色情報も含めて求める（色境界領域毎に求めても良い。）。２Ｄ点抽出時に求めて候補点メモリ（１）から読み出すだけにしておいても良い。
【０４６６】
次に、処理１６（ｔ９）ｃで対応点候補ＫＰｏＣＡＤ（ｉ、ｊ）ｊ＝１〜ｍの周辺の点へのベクトル（先端の色情報も含む）をｊ＝１〜ｍのそれぞれについて求める。色境界線分で分けられる領域毎に求めても良い。次に、処理１６（ｔ９）ｄで点ＰｏｆＲｆＣＡＤ（ｉ）から引いたベクトルと対応点候補ＫＰｏＣＡＤ（ｉ，ｊ）ｊ＝１〜ｍから引いたベクトルの先端の色情報を含めて比較してマッチング度を求める。領域毎に比較しても良い。
【０４６７】
次に、処理１６（ｔ９）ｅでベクトルマッチング度が高く、２番目の候補点よりも所定以上にマッチング度が高い点がある場合は、対応点としてマッチング度の高い点ＰｏｆＲｆＣＡＤ（ｉ）と対応点候補ＫＰｏＣＡＤ（ｉ、ｊ）ｊ＝１〜ｍから絞り込んだ点Ｍ個を対応点メモリ（１）〜（４）へ書き込む。そして、判別処理１６（ｔ９）ｆで抽出された点ＰｏｆＲｆＣＡＤ（ｉ）のｉ＝１〜ｎのすべてを終了したかどうかを判別し、Ｎｏの場合は処理１６（ｔ９）ａから繰り返すようにして、抽出された点ＰｏｆＲｆＣＡＤ（ｉ）のｉ＝１〜ｎのすべてを終了したならば終了する機能を回路に盛り込む。
【０４６８】
図１０９は、ブロック１６（ｐ）１の２Ｄ類似度計算（１）の基本フローチャートを示す。まず、処理１６（ｔ１０）ａで探対応点メモリ（１）から探索用２Ｄ参照ＣＡＤデータ格納メモリから抽出された点ＰｏｆＲｆＣＡＤ（ｉ）ｉ＝１〜Ｎと、それぞれの点に対応する（左画像の）線分統合メモリの中の対応点（複数個）を読み込む。複数個の員数は総数の１／４（４はパラに処理する回路の数）とする。また、探索用２Ｄ参照ＣＡＤデータが複数個ある場合は、その種類ごとに分けて以降の計算も行うようにする。
【０４６９】
次に、処理１６（ｔ１０）ｂで点ＰｏｆＲｆＣＡＤ（ｋ）から他の点ＰｏｆＲｆＣＡＤ（ｉ）ｉ＝１〜Ｎ（ｋを除く）へのベクトルを先端の点の色情報も含めて求める。ｋは、ｋ＝１〜Ｎの中から点ＰｏｆＲｆＣＡＤ（ｋ）に対応する（左画像の）線分統合メモリの中の対応点の存在するものを選ぶようにする。次に、処理１６（ｔ１０）ｃで点ＰｏｆＲｆＣＡＤ（ｋ）に対応する（左画像の）線分統合メモリの中の対応点から他の点ＰｏｆＲｆＣＡＤ（ｉ）ｉ＝２〜Ｎに対応する点へのベクトルを先端の点の色情報も含めて求める。複数組求める。
【０４７０】
次に、処理１６（ｔ１０）ｄで点ＰｏｆＲｆＣＡＤ（ｋ）からのベクトル郡と点ＰｏｆＲｆＣＡＤ（ｋ）に対応する点からのベクトル郡のマッチング度を複数組求めてマッチング度などの計算結果を２Ｄ類似度メモリへ書き込む。２Ｄ対応点候補ＫＰｏＣＡＤ（ｉ，ｊ）を求めるときにスケールファクタを考慮している場合は、同様に、そのときのスケールファクタを考慮してマッチング度を求める。
【０４７１】
そして、判別処理１６（ｔ１０）ｅでｋ＝１〜Ｎのすべてを終了したかどうか、あるいは、探索は十分かどうか、を判別し、Ｎｏの場合は処理１６（ｔ１０）ｂから繰り返し行うようにし、すべてが終了したならば終了する機能を回路に盛り込む。
【０４７２】
図１１０は、ブロック１６（ｐ）５の類似度評価の基本フローチャートを示す。まず、処理１６（ｔ１１）ａでコマンド格納メモリからコマンド、コマンド付属データ格納メモリからコマンド付属データを読む込む。
【０４７３】
次に、処理１６（ｔ１１）ｂで２Ｄ類似度メモリ（１）〜（４）から探索用２Ｄ参照ＣＡＤデータ格納メモリから抽出された点ＰｏｆＲｆＣＡＤ（ｉ）ｉ＝１〜Ｎと、それに対応する（左画像の）線分統合メモリの中の対応点の組とそのときの類似度計算結果を読み込む。探索用２Ｄ参照ＣＡＤデータが複数個ある場合は、その種類ごとに分けて以降の計算も行うようにする。
【０４７４】
次に処理１６（ｔ１１）ｃで２Ｄ類似度計算結果より、類似度が高い順番に、コマンド付属データで員数が指定ある場合にはその員数以内を順番に３Ｄ線分全体の統合メモリ（最初のワールド座標系）の中の（左画像の）線分統合メモリの中の対応点に対応する点にかかわるＣＡＤデータを転送する指令をＣＡＤデータ転送回路へ指令して探索等の処理結果の3D-CADデータ格納メモリへ転送させる。
【０４７５】
そして、次の処理１６（ｔ１１）ｄで類似度が高い順番に（左画像の）線分統合メモリの中の対応点の組の対応する３Ｄ線分全体の統合メモリ（最初のワールド座標系）の中の点の組の座標データより、探索用２Ｄ参照ＣＡＤデータの基準座標系の最初のワールド座標系の中での位置と向きを計算して探索等の処理結果格納メモリへ書き込む。
【０４７６】
そして、判別処理１６（ｔ１１）ｅでコマンドにその他の判断処理などの指令が含まれているかどうかを判別し、ＮＯの場合は、次の処理１６（ｔ１１）ｆは行わないようにパスして、Ｙｅｓの場合は、処理１６（ｔ１１）ｆでその他のコマンドに含まれる指令の内容を処理を実行してその結果を探索等の処理結果格納メモリへ書き込む。例としては、探索したCADデータID1と探索したCADデータID２の衝突有無を判断する指令の場合には、探索したCADデータID1と探索したCADデータID２の距離を求めてその距離が所定の距離（コマンド付属データで与えられている場合にはその値を使用する）以下の場合は「衝突危険性あり」を、以上の場合は「衝突危険性なし」を探索等の処理結果格納メモリへ書き込むなどとなる。そして、終了する機能を回路に組み込む。
【０４７７】
図１１１は、ブロック１６（ｒ）１の３Ｄ線分の２Ｄ投影の基本フローチャートを示す。まず処理１６（ｔ１２）ａでコマンド格納メモリからコマンド、コマンド付属データ格納メモリからコマンド付属データを読む込む。
【０４７８】
次に、処理１６（ｔ１２）ｂで探索用３Ｄ参照ＣＡＤデータ格納メモリから３Ｄ−ＣＡＤデータを読み込む。３D−ＣＡＤデータが複数の部品（ID１〜ＩＤｎ）から構成されている場合は、部品ごとにデータを管理する。また、各部品（ID１〜ＩＤｎ）の結合条件がある場合は、それらの条件も読み込む。
【０４７９】
次に、１６（ｔ１２）ｃでコマンドおよびコマンド付属データで生成条件に限定する範囲の条件がある場合には、その範囲の中で、限定条件のない場合には、参照ＣＡＤデータの全方向からの全結合条件の各移動量の組合せによる複数部品の各種組み合わせ条件のすべての種類の２D投影ＣＡＤデータを生成して、その観察方向、結合条件の各移動量の組合せによる複数部品の各種組み合わせ条件の種類ごとに探索用２D参照ＣＡＤデータ格納メモリへ書き込む。観察方向の分割数、結合条件の移動量は、コマンド付属データで指定があればその値を使用して、ない場合はデフォルトと設定してある所定の値を使用する。また、１回に探索用２D参照ＣＡＤデータ格納メモリへ書き込むデータ量は、あらかじめ処理能力から決まる所定のデータ量以下の量ごとに、数回のサイクルに分けて全部のデータを書き込むようにする。そして、終了する機能を回路に組み込む。
【０４８０】
以上、主な処理機能の基本的な流れを説明したが、これはあくまでも一例であり、いろいろな機能の組み合わせ、分担の方法はあるので、目的や盛り込む機能の大小に応じて全体として合理的な回路を設計するようにする。
【０４８１】
図１１６〜図１２８は、本発明の第１６〜１７の手段の基本的構成を例示している。
【０４８２】
図１１６は、原子力発電プラントを例にした場合の各種検査装置に適用した場合の数例を示す。勿論、ここで上げた例以外のあらゆる検査ロボットあるいは監視点検ロボット、その他の作業ロボットに適用して良いし、原子力発電プラントに限らず、その他の原子力施設、火力プラント、水力プラント、化学プラント、海洋プラント、宇宙基地、公共施設、病院、家庭内のあらゆる分野の検査、作業ロボットに適用して良いものである。
【０４８３】
図１１６の（ａ）は、原子力発電プラントにおける原子炉２１ｒの中の各種機器の検査に検査装置を適用する概念を示している。原子炉２１ｒの中には、核燃料、制御棒の他、シュラウド等の炉内構造物のいろいろな機器が設置され、また、原子炉２１ｒの胴体は、それ自体が複数枚の板を加工して溶接で接合された構造であり、胴板や底部には、配管部材と繋がる各種管台が溶接で取り付けられている。また、各種炉内構造物にも溶接構造物がある。それらの溶接線の健全性確認は重要であり、原子力発電プラントでは、定期的にそれら溶接線の検査が行われている。検査は、目視検査（ＶＴ検査）や超音波によるＵＴ検査なども行われる。原子炉２１ｒの中を検査する場合には、原子力発電プラントを止めてから、原子炉上部の蓋を開放して、取り出せる内部構造物は取り出して、必要に応じて燃料なども取り出した上で、蓋を開放した上から原子炉内へ検査装置２１Ａ，２１Ｃを投入して検査する。検査装置２１Ａや検査装置２１Ｃは、ＴＶカメラなどの撮像装置や超音波センサを搭載してケーブル２１Ｋでそれらの信号を処理する処理装置１００へ接続されている。原子炉内は、高い放射線のある環境であるので、原子炉２１ｒの中は水が張られており、これらの検査作業は、全て水中にて遠隔操作で行われる。
【０４８４】
図１１６の（ｂ）は、（ａ）に示した検査装置２１Ａの構成を示したものであり、水中を浮遊しながら移動する水中ＲＯＶ型の検査装置の一例を示している。水中ＲＯＶには、スクリューを回転させて推進する方式や水を噴射するジェット方式などがあるが、いずれの場合においても、水中ＲＯＶは、前後に、上下左右に、また、左右の回転などの姿勢制御を複数のスクリューの回転制御や複数のジェット噴射の制御にて遠隔で制御できるようになっている。水中ＲＯＶ本体２１Ａには、本例の場合は、２台の右のカメラ２０と左のカメラ１０が組み込まれてステレオ画像情報を得ることができるようになっている。また、必要に応じて、照明も水中ＲＯＶに搭載する。照明については、画像認識からは外部照明を準備する方が、水中ＲＯＶ２１Ａが移動するような場合にも撮影対象、ここでは原子炉底部の管台の溶接部９０９が撮影対象になるが、撮影対象に対する照明条件は変わらない方が安定な画像が得られるので、より処理性能は良くなる。それでも、スペース的に外部に照明を置けないような場所では、搭載した照明で画像処理を行うようになるが、前述した図６８のような特徴点抽出方法を用いることによって、また、十分対応する対応点のみを抽出して３次元のＣＡＤデータに変換することにより、照明を搭載している場合でも、画像情報を処理して３次元のＣＡＤデータを生成しながら、水中ＲＯＶ２１Ａの自分自身の位置を検出するようにすることは可能となる。また、移動照明の影響を少なくするために移動照明で局部的により明るくして十分強力な固定照明で全体を明るくする両方を組み合わせた照明方法を用いても良い。
【０４８５】
操作者が水中ＲＯＶ本体２１Ａを遠隔操縦する環境は、操作者から直視できない遠隔地で同じような複数の管台が林立している環境であるため、カメラの画像情報を見ただけでは水中ＲＯＶの現在位置を操作者が認識するのが非常にむずかしい。また、検査を行なっている場合も、どこの検査を行っているかの対応をとるのがむづかしいが、本発明の視覚情報処理装置を適用すれば、撮像装置の位置をトラッキングで管理しながら検出することができるので、撮像装置の位置情報から水中ＲＯＶ２１Ａの位置と姿勢情報を求めてその結果を操作部の処理装置１００のモニタに表示すれば、現在の位置と姿勢を操作者が容易に確認することができるようになる。
【０４８６】
また、水中ＲＯＶ２１Ａの位置と姿勢情報より、センサでどこを検査しているかが分かるので、検査結果データも検査している場所に対応付けして自動的に記録させるようなことも容易にできるようになる。また、水中ＲＯＶ本体２１Ａには、画像情報によるトラッキングが途切れた場合に水中ＲＯＶ２１Ａの位置情報を補間するために加速度センサやジャイロセンサを搭載してそのセンサ信号も処理するようにしても良い。また、通常の照明以外に、１本あるいは複数本の光の線を撮影対象に当てるためのレーザー等のマーカ２１ｅを搭載するようにしても良い。マーカ２１ｅによる光の線は、例えば赤色レーザ光であれば、撮影対象の溶接部の色や通常の照明とも違った色になるので、水中ＲＯＶ２１Ａ本体の形状は、円筒状で角はできるだけ丸みを付けて、上部にケーブル２１Ｋの出口を設ける。
【０４８７】
推進装置は、スクリューやジェットの噴射口によって上下と周囲にできる表面の凸凹ができるだけ少なくなるように複数設けている。これは、原子炉下部で制御棒駆動機構などの管台溶接部を点検するような場合には、原子炉２１ｒの上部から水中ＲＯＶ２１Ａを投入して一番底までいろいろな炉内構造物の間を通して遠隔制御で移動させる必要があり、途中、燃料を抜いた空間の狭いスペースから下部の燃料サポート部の更に下に潜る必要があるので、突起物があると引っかかって移動制御がむづかしくなることと、万一、推進装置が故障したような場合でもケーブルを引っ張ることで水中ＲＯＶ本体を回収することができるように表面はなるべく滑らかな構造とすることで、非常時の回収性も考慮したものである。
【０４８８】
複数の噴射を制御することで、水中ＲＯＶ本体２１Ａの前進、後退、その場回転、上昇、下降の移動と姿勢制御が可能となる。形状が円筒であるので、姿勢のチルト制御を行うようにするよりも、カメラ１０，２０を水中ＲＯＶ本体２１Ａの内部でチルト動作させるようにした方が良い。
【０４８９】
ジェット推進の場合は、操作するフロアなどに大きなポンプを準備して圧力を高めた流体をケーブル２１Ｋの中にホースも組み込んで高い推進エネルギーを外部のポンプから得られるようにすれば、水中ＲＯＶ本体２１Ａにはポンプを搭載しないで済み、小型の電磁弁を噴射ノズルの員数のみ搭載するか、複数本のホースでポンプ側で噴射制御するようにもできるので、水中ＲＯＶ本体を小型軽量にすることができる。水中ＲＯＶ本体２１Ａは、ケーブルＫで遠隔地にある操作部に相当する処理装置１００に接続される。
【０４９０】
処理装置１００は、カメラなどのセンサの信号を処理して点検結果を記録する機能の他に、水中ＲＯＶ本体２１Ａを遠隔手動操作、あるいは自動制御できるように構成する。手動操作は処理装置１００の画面のマウススイッチで操作できるようにしても良いし、ジョイステックなどの操作スイッチを別に設けるようにしても良い。
【０４９１】
図１１６の（ｃ）は、（ａ）の原子炉内の底部を除く部位で上から水中カメラ１０を投入してカメラから出ているケーブル２１Ｋで単純にカメラ１０を吊って操作者あるいは機械が上部フロアの気中で取扱う検査カメラに適用する場合の例を示している。操作者がケーブル２１Ｋを緩ませたり、引っ張ったりすることでカメラ１０を上下方向に移動させることができ、また、ケーブル２１Ｋを操作者が持って移動すればカメラ１０も同じ方向に移動する。カメラ１０には照明２１ｓを一緒に取り付けてあり、全体を吊下式カメラ本体２１Ｃと称することとする。勿論、簡単な推進機構やガイド機構や吸着して壁面を移動する機構などを吊下式カメラ本体２１Ｃに設けても良い。カメラ１０は、２台にしてステレオカメラ方式にしても良い。また、レーザスポット線を撮影対象部位に照射するようにしても良い。また、カメラ以外の超音波センサ（ＵＴセンサ）を搭載してガイド機構や吸着機構で炉内の壁や構造物に対して所定の姿勢でアクセスできるようにして炉壁や構造物の肉厚を測定したり、ＵＴセンサで内部の欠陥を検査するようにしても良い。
【０４９２】
吊下式カメラ本体２１Ｃのカメラ１０やその他のジャイロ等のセンサを搭載している場合には、それらの信号情報が処理装置１００へ入力されて、処理装置１００の中の画像情報処理の機能でカメラ信号の画像情報を処理して、カメラの現在位置をモニタ表示しながら、検査結果（画像データやＵＴ検査データなど）を、画像情報を処理して生成した３次元のＣＡＤデータの部位情報に対応させて自動で検査データが記録されるようにして良い。画像データを処理して３次元のＣＡＤデータを生成すれば、万一、欠陥部位があっても、その欠陥をＣＡＤデータとして生成するので、そのＣＡＤデータは３次元の位置情報をもっているので、処理装置のモニタに表示して欠陥の形や大きさや、その欠陥が原子炉設備のどこの位置にあるかなどの情報を容易に確認することができるようになる。吊下式カメラ本体２１Ｃには、複数のレーザの線２１ｅを撮影対象に照射できるマーカを搭載するようにしても良い。
【０４９３】
図１１６の（ｄ）は、原子力発電プラントの原子炉とは別に燃料を一時的に保管するために水を張ったプール等のライニングの溶接線などを検査するためのクローラ式検査装置へ適用した場合の一例を示している。プール等の壁面や底面には鋼製のライニングが施工されており、ライニングは、板材を溶接で接合してプール内の水が漏れないようになっている。そのライニングの溶接線を検査する場合の検査装置としては、壁面は、（ｂ）や（ｃ）で説明した水中ＲＯＶ２１Ａや吊下式カメラ本体２１Ｃを使用して検査することができるが、プール底部のライニングの溶接線９０９は、クローラ式ＶＴ装置２１Ｂを用いるのが、安定に高速に移動できるので検査効率が良い。クローラ式ＶＴ装置２１Ｂは、左右のクローラを制御することで前進、後退、その場旋回できる走行機構に左右の２台のカメラ１０，２０が搭載されている。燃料を保管するラックの下に入って溶接線を検査するために、必要であれば、照明も搭載する。また、画像トラッキングを補間する加速度センサやジャイロセンサを搭載しても良いし、左右のクローラの回転数を検出するエンコーダなどのセンサを搭載して回転角度を積算することで画像トラッキングを補正する情報にすることでも良い。クローラ式の代わりに車輪走行方式でも良いし、独立して床面と接触してすべりを少なくしたエンコーダの信号を取り込めるようにしても良い。
【０４９４】
搭載したカメラ１０，２０からの画像情報で溶接部９０９をＶＴ検査するが、ＣＡＤデータも生成するようにして、溶接ビードの形状、傷があればその場所や大きさなどをＣＡＤデータとして自動的に記録するようにして良い。また、カメラで撮像した画像データを検査記録として残すようなシステムにしても良い。
【０４９５】
クローラ式ＶＴ装置本体２１Ｂは、ケーブルＫで処理装置１００に接続されて、クローラの操作制御信号やカメラやセンサの信号をケーブルを介して通信する。この例では、ケーブル２１Ｋを介するようにしたが、無線方式にしてクローラの機動性をより良くしても良い。また、クローラ２１Ｂには、レーザの光の線２１ｅを溶接線９０９とその周辺に当てられるようにラインマーカを搭載する。また、カメラ１０，２０によるＶＴ検査の他に、ＵＴセンサ２１ｂをアーム機構２１ａで溶接線の周囲をなぞってＵＴ検査できるようにしても良い。溶接線９０９の部位とその周辺が３次元のＣＡＤデータとして生成できるので、ＵＴ検査を行っている場所もＣＡＤデータと対応つけして記録することが容易にできるようになる。
【０４９６】
検査プローブは、ＵＴセンサに限らず、放射線検査（ＲＴ）のための線源を所定の位置にあわせるように制御しても良いし、ＥＣＴなどの検査プローブでも良い。ＵＴセンサなどの検査プローブ２１ｂの位置は、クローラの位置と姿勢が画像情報処理で分かっているので、アーム機構２１ａの関節角度などの情報よりクローラに対するアーム機構２１ａの先端のプローブ２１ｂの位置を求めて、ＣＡＤデータの座標系の位置と対応つけることができる。ここで、アーム機構２１ａは、１次元あるいは２次元のもっと単純なスキャン機構を搭載するようにしても良い。
【０４９７】
実施例のバリエーションとしては、（ｂ）の水中ＲＯＶ、（ｃ）の吊下式カメラ、（ｄ）のクローラ式ＶＴ装置を例に上げて説明したが、検査や作業を行う装置としては、歩行して移動する人間型ロボットでも良いし、気球にセンサと推進装置を搭載した気球式移動ロボットでも良い。処理装置１００は、画像情報を取り込み画像処理を行う部分は共通であるので、それぞれのロボットの操作駆動制御を行う部分は、ロボットごとに調整されたものである必要があるが、センサや画像情報を入力して３次元ＣＡＤデータを生成したり、現在の位置情報を表示させたりする部分は共通なので、複数種類の検査装置のケーブル２１Ｋを同じ処理装置に繋ぎかえて運用ができるようにして良い。
【０４９８】
図１１７は、クローラ式ＶＴ検査装置２１Ｂを例にして、プール底面溶接線９０９の周辺部の自動生成されたアズビルトの３次元ＣＡＤデータの概念を示している。クローラ式ＶＴ検査装置２１Ｂに搭載したカメラ１０，２０の画像イメージを図面の（Ａ）と（Ｂ）に示す溶接線９０９の同じ部位が写るようにカメラの位置と向き、カメラの画角などは調整しておく。両方の画像データ（Ａ），（Ｂ）は、処理装置１００では同時刻に取り込むようにするので、トラッキング処理の前のステレオ計測処理においては、装置に照明を搭載していても見え方の違いは視点の違いのみである。また、溶接ビード９０９には、同じ金属色でビードのふくらみや模様で対応点をとると十分な数の特徴点が得られない場合もあるために、レーザマークの線２２ｅが画像に写っていればその線が例えば赤色ならば非常にコントラスト良く、レーザマークの線は特徴点、特徴線分として抽出できるので、それでステレオ計測することにより溶接線ビードのより多くの形状データを取得するようにしても良い。図１１６の（ｄ）の例では、１本のレーザマーカの線分２１ｅが照射されている状態を示しているが、平行に何本もあるいは水平の他に垂直、斜めでも同時にマーカの線を複数を本照射して同時に複数箇所の断面形状をステレオ計測できるようにしても良い。但し、この場合は、もともと溶接線ビードにある傷や汚れのデータとは違うので、データとしては分けて管理するようにしておくのが良い。また、赤い線ということで、データの区別も容易に行うことが可能となる。また、マーカは、線ではなく、スポットの点で１点あるいは複数の点を同時に照射するようにしても良い。レーザマークの線２２ｅは、溶接ビードの形状を詳細に記録することができる。溶接ビードの凸形状も重要な検査データにはなる。また、トラッキング処理を行う場合には、ビードのふくらみの輪郭線２２ｂやビード表面の模様２２ｃとか汚れ２２ａや傷がある場合には、それらを特徴点として検出してトラッキングを行うが、レーザマークの線２２ｅを複数本同時に照射して断面形状をできるだけ密に取得するようにすれば、溶接線ビードの詳細な凸凹状態が３次元形状としての特徴部位になるので、ステレオ計測で３次元ＣＡＤデータを生成するとビードの所定の範囲での３次元形状が得られるので、クローラが移動して別の視点から同じ部位が重なるようにしてレーザマークの線による３次元ＣＡＤデータを生成するようにすれば、重ねて計測したデータの中には同じ特徴の凸凹部位が存在するので、その形状のマッチングをとることによってトラッキングをより安定に行うことができるようになる。
【０４９９】
これらは、クローラに限らず、水中カメラや水中ＲＯＶの場合でも同じである。クローラの場合には、クローラの回転角度情報からも画像トラッキングを補間することができるので、連続してＣＡＤデータがトラッキングできない場合でもクローラ回転から推定してトラッキングできていない範囲の移動量を推定できるので、生成するＣＡＤデータは、連続的に一つの座標系（ワールド座標系Ｏｗ）に換算したものとして生成することができる。クローラ式ＶＴ検査装置２１Ｂは、溶接線に沿って移動させるので、溶接線の周囲の３次元ＣＡＤデータが生成され、そのＣＡＤデータの位置情報に対応付けて検査データが記録される。
【０５００】
それらのＣＡＤデータを、視点をいろいろ変えながらモニタ表示して溶接線の形状や傷、汚れの位置などを確認することができる。モニタ表示でＣＡＤデータを表示する仮想視点の位置を離して表示すると、多くから見たような状況が表示され、プール全体の溶接線２２Ｂが表示される。この中より一部分を指定して拡大表示、すなわち、仮想視点の位置を近くにしてＣＡＤデータを表示すると、局部的な溶接ビードのふくらみ２２ｄや模様２２ｃや汚れ２２ａなどを拡大して確認することができるようになる。また、少し汚れた水中でステレオ計測すると、浮遊しているゴミを３Ｄ計測してしまう。この場合には、視点が変わると当該点は計測されないので、１回目のフラグが消えることはないので、後で、そのようなＣＡＤデータは消去するようにしても良いし、浮遊しているゴミはプールや原子炉容器の底面から浮いているので、浮遊しているゴミの座標位置を確認して、その位置が底面の表面から浮いている場合には浮遊ゴミと判断して生成された当該ＣＡＤデータを消去するようにすることもできる。これは、浮遊ゴミを確実に消去することができるので有効な手法である。
【０５０１】
図１１８は、クローラ式ＶＴ検査装置２１Ｂのシステム構成ブロック図を例示している。クローラ式ＶＴ検査装置２１Ｂの大きなブロックの中は、主要な構成機器として、左右のモータ２３ａ，２３ｂがドライバ２３ｄに接続されていて、処理装置１００の中の主制御ルーチン２３ｅからの指令信号で駆動制御できるようになっている。主制御ルーチン２３ｅからの指令信号の出力は、主制御ルーチン２３ｅのプログラムから自動制御で出力されるようにしても良いし、ここでは、図に記載していないが、操作者が操作するジョイスティクなどの操作指令信号を主制御ルーチン２３ｅを介して指令出力するようにしておくことでも良い。モータ２３ａ，２３ｂのそれぞれにはエンコーダが付いていて、その信号は、カウンターボードなどのインターフェースを介して主制御ルーチン２３ｅに取り込み参照できるようになっている。また、クローラ走行車２１Ｂには、左右のカメラ１０，２０の他に、加速度センサ３０やジャイロセンサ４０も搭載しており、カメラ１０、２０の画像情報は、キャプチャーボードなどのインターフェースを介して処理装置１００の中の画像処理ルーチン２３ｇへ取り込み、センサ３０，４０の情報は、Ａ／Ｄボードなどのインターフェースを介して主制御ルーチン２３ｅへ取り込むようにしている。本例では、センサ処理を主制御ルーチン２３ｅの中に入れて画像処理ルーチン２３ｇを分けたが、画像処理ルーチンの中へセンサ３０，４０の信号を直接取り込むようにしても良い。
【０５０２】
画像処理ルーチン２３ｇは、ステレオ計測やトラッキング処理などの処理を行わせ、生成されたＣＡＤデータは所定の記憶装置２００に蓄積されるようにする。記憶装置は、生成時にはリアルタイム性のあるＲＡＭメモリ上に生成させておき、生成作業が終了した時点でハードディスクなどに記録保管するようにすることで良い。そして、再度、同じ場所で運用する場合には、最初の段階でハードディスクからＲＡＭメモリ上に以前に記録しておいたデータを読み出して再度追加で生成記録するようにしても良いし、生成データを比較分析するような場合には、あらたにデータを生成して、その結果と以前に収録したデータとを自動で比較して違う部分を出力、表示できるようにしても良い。また、主制御ルーチン２３ｅへは、クローラＶＴ装置２１Ｂをどこからどこまでどのように移動させるかという計画内容をＳＴＡＲ／ＥＮＤポイントと途中の移動計画ルートとして入力できるようになっており、主制御ルーチン２３ｅは、センサ情報の処理結果や画像処理結果に基づいてその計画内容にそってクローラ走行車２１Ｂが移動制御できるようにドライバ２３ｄへ適切な制御指令を自動的に出力できるようにする。
【０５０３】
主制御ルーチン２３ｅからは、センサ情報で推定した現在の位置と姿勢情報を補助位置信号として出力して、その代わりに、主制御ルーチン２３ｅは、画像処理ルーチン２３ｇより画像処理して求めた現在の真の位置と姿勢情報を受け取る。ここで、主制御ルーチン２３ｅと画像処理ルーチン２３ｇは、汎用性と処理速度の観点から分けたが、一緒のプログラムにしてもかまうものではない。
【０５０４】
処理装置１００は、１台の計算機で実現することを想定しているが、処理速度を高速にするために、主制御ルーチン２３ｅと画像処理ルーチン２３ｇを別のＣＰＵで実行させて供用メモリあるいは通信回線を利用して高速にデータの授受をできるようにしても良い。この構成でそれを実現するための主制御ルーチン２３ｅ及び画像処理ルーチン２３ｇの基本的なフローチャートの例は、後述する。
【０５０５】
また、このシステムは、アズビルトのＣＡＤデータを生成するが、あらかじめプール等の環境データとしてプールや部屋の大きさ、プール内や部屋の中の障害物や、検査対象の溶接線を３次元のＣＡＤデータとして登録しておき、ＲＯＶやクローラの現在位置を表示するときに全体環境の中でどこにいるか見やすくするために、あらかじめ登録しておいたプールや障害物、溶接線を重ねてＣＧ表示できるようにしておくのが良い。
【０５０６】
また、溶接線などの確認したい対象物のＣＧ表示あるいは生画像表示のそばにＣＧで表現したスケールを一緒に表示して、画面を一目見ただけで、概略の対象物の大きさがすぐに分かるようにすると良い。対象物が平面にある傷であれば、傷の付いている平面に沿ってスケールやメジャーなどをＣＧ表示する。平面が表示している視点によっては斜めに表示される場合でも、平面の特徴点のいくつかはすでに３次元のＣＡＤデータとして生成されていれば、実際にその平面にスケールやメジャーを沿わして撮影したときと同じような状況でＣＧのスケールやメジャーを面に沿って表示させることも可能である。また、対象物が曲面であっても、曲面の３次元ＣＡＤデータに基づき曲面に沿って実際にスケールやメジャーを当てて撮影したような状態で表示させることも可能である。
【０５０７】
そのようにすることによって、実際にスケールやメジャーを撮影対象物のそばにおいて一緒に撮影して通常の画像データとして記録するＶＴ検査手法と違和感なく、３次元のＶＴ検査データを自動的に生成させることも容易に行うことができる。勿論、現場撮影時には、スケールやメジャーを挿入して撮影作業を行う必要ないが、生成したＶＴ記録には、ＣＧ表示されたスケールやメジャーが実際にそこに挿入して撮影されたかのように表示して確認することが可能となる。
【０５０８】
図１１９は、プールと溶接線をあらかじめＣＡＤデータとして登録しておいたＣＡＤデータ２２Ｂ（Ｃ）と画像処理で生成したアズビルトの溶接線のＣＡＤデータ２２Ｂ（Ｒ）を重ねて表示したときのイメージを示している。プールの床面は、クローラ走行式検査装置２１Ｂで、プールの壁面は、磁気式あるいは吸着式で壁を移動できるクローラ式検査装置で行っても良いが、水中ＲＯＶ２１Ａなどの検査装置を用いてＣＡＤデータの生成を行った例である。これらのシステムは、アズビルトのＣＡＤデータを生成するので、あらかじめ登録してあるＣＡＤデータはおおまかな位置が特定できる目印となる部品のみを作成しておくことで十分である。あらかじめ登録してあるＣＡＤデータは、プール全体と全部の溶接線の部分が表示されるが、生成ＣＡＤデータは、生成された部分のみが表示される。このように一緒に重ねて表示することによって、生成ＣＡＤデータがまだ一部分しかない状況でも、全体の中のどの当たりを生成したＣＡＤデータであるかが一目でわかるようになる。
【０５０９】
また、生成されたＣＡＤデータは、トラッキングによる誤差が累積されていくので、その場所でも局部的には精度良く生成されていても全体の環境の中の場所は累積したトラッキングの誤差によってあらかじめ登録したＣＡＤデータとはずれてくる。そのずれは、生成開始したスタートポイントから離れれば離れるほど大きくなる傾向があるが、運用中、定期的に、あるいは生成後のオフライン作業時に、例えばオペレータが生成されたＣＡＤデータの特徴部位をあらかじめ登録されているＣＡＤデータの特徴部位を指示するようにすれば、その点を合わせるようにして生成ＣＡＤデータの全体を滑らかに補正する機能をもたせると良い。この補正は、最初のスタートポイントは、実際の場所と合わせてからスタートさせるので一致している条件である。また、途中、この点とこの点は同じであると教示した点が複数ある場合には、それらの点は一致するように他の部分をなめらかに繋がるように補正するように処理するのが良い。また、その他の教示された対応点のデータは、ＣＡＤデータに登録しておき、教示後に引き続きあらたにＣＡＤデータ生成したり更新したりする処理を行う場合には、その補正処理は、自動的に行なわれるようにするのが良い。また、一致する点をオペレータが数点指示するのが容易に補正プログラムは作成できるが、ＣＡＤデータの中の特徴ある形状の部位をあらかじめ登録してあるＣＡＤデータの形状や色情報などと同じ部位を生成ＣＡＤデータの中よりマッチングにより位置を自動的に求めることで、その都度、オペレータが対応する点を指定入力操作しないでも自動的にトラッキングによる誤差を補正するようにしても良い。
【０５１０】
また、あらかじめ登録しておくＣＡＤデータは、図面に基づくデータでも良いが、実測寸法が分かっていれば、実測寸法に基づくＣＡＤデータを作成しておくのが良い。これは、あらかじめ登録しておくデータは、部屋の大きさは主要な障害物の位置のみであるので、測定する寸法個所は少ないので、容易に対応できる。
【０５１１】
一方、生成されるＣＡＤデータは、詳細なもので局部的には精度良いアズビルトのＣＡＤデータである。従って、全体の離れた部分の寸法のみを実際に実測するようにして入力したＣＡＤデータに生成ＣＡＤデータをあわせるように補正すれば、生成ＣＡＤデータは、より高精度なアズビルトの詳細なＣＡＤデータにすることができるようになる。
【０５１２】
また、あらかじめ検査対象物のＣＡＤデータが用意されている場合には、検査平面の面の位置が概略特定できるので、ステレオ計測やトラッキング計測時に奥行き方向の精度が良くない部分と、あらかじめ用意されているＣＡＤデータの検査面の表面の傷などを検出しているという前提に基づいて奥行き方向の距離の検出を補正するようにすると、容易に奥行き方向の精度を向上させながら３Ｄ計測を行うようにすることができる。これは、曲面でも平面でも同様であるが、浅い傷の深さを検査する場合は別であるが、一般には傷や汚れの上下左右の位置を計測して記録する場合が多いので、奥行き方向は、あらかじめわかっている面の奥行き情報を利用して３ＤＣＡＤを生成すると、奥行き方向にも精度の良いＣＡＤデータを容易に生成することが可能となる。この奥行き方向の誤差は、対応点のマッチング誤差も大きく影響するので、既知の面上の点検を行う検査装置の場合には有効な処理手法となる。
【０５１３】
図１２０〜図１２４を参照して、これらのシステムが有していると便利な専用ファイルの一例を説明する。ここでの例は、プール内を水中ＲＯＶを浮遊させて検査する場合の例で説明する。
【０５１４】
図１２０は、主制御ルーチン２３ｅへ指示を入力する移動軌跡データファイルの一例を示している。ファイルは、キャラクタエディタで編集できるファイルに記述するようにしておき、主制御ルーチンは、最初に当該ファイルの内容を読み取るようにする。ファイルへの記述情報の一例であるが、ＳＴＡＲＴ点についてはその座標データと姿勢データをワールド座標系Ｏｗで記述する。
【０５１５】
図１２１は、ワールド座標系ＯｗとＲＯＶ本体２１Ａのロボット座標系Ｏｒの関係を示している。ＳＴＡＲＴポイントは、ワールド座標系Ｏｗで記述されＳＴＡＲＴポイントにＲＯＶ本体２１Ａがいる場合のスタートの姿勢（向き）をＳＴＡＲＴポイントにおくＲＯＶのロボット座標系Ｏｒの姿勢で表現した場合の例である。同様に、図１２０のファイルの中には、ＥＮＤポイント、途中のポイントは第Ｎポイントとしてその位置をワールド座標系で記述して、全てのそのポイントにおけるＲＯＶ２１Ａのロボット座標系Ｏｒの向きも指定するようにする。移動軌跡は、直線、円や円弧などで、これもワールド座標系Ｏｗの中の線分として記述している。ポイントをＣＧ表示する場合の色、線種なども指定できるようにしている。姿勢表示有無のフラグは、ＣＧ表示するときに各ポイントにおけるＲＯＶの目標姿勢を表示させるか否かのフラグである。また、各ポイントの停止異時間は、そのポイントにＲＯＶが到着してから次のポイントに向かって移動開始するまでの、その場所での停止時間を意味し、主制御ルーチン２３ｅは、この場合、ホバリング制御を行うような制御になる。
【０５１６】
また、直線や円弧の軌跡データには、始点と終点の近くでのその区間を移動する速度はいくらにするかという目標速度と、減速制御、加速制御の計画内容を記述できるようにしておき、この場合には、主制御ルーチン２３ｅは、適切にＲＯＶをこの計画値どおりに移動させ、ポイント近くでは減速したり加速制御を行うように制御する。ＥＮＤポイントには、戻るか否かのフラグを設けて、戻るフラグがＯＮの場合には、来た時と同じ軌跡ルートを同じように戻るような制御を行うようにする。
【０５１７】
また、ポイントや軌跡データの内容をオペレータに分かるようにＣＧ表示する場合、どういうポイントか、どういう軌跡か、注釈を入れたい場合もあるので、文字列とワールド座標系でその文字列を表示したいポイントを記述しておけば、ＣＧ表示するときに当該位置に自動的に注釈が表示されるようにする。ＳＴＡＲＴポイントやＥＮＤポイントの他、第１点検ポイント、第２点検ポイントなど表示させる。この注釈は、ＣＧ表示の仮想視点を変えた場合も常にモニタに文字が普通に表示されるようにする。また、文字の大きさも適切に見やすい大きさに固定でも良いし、状況に応じて自動的に設定されるようにしても良い。また、ＣＧ表示するときには、あらかじめ登録してあるＣＡＤデータも必要に応じて表示したり消したりできるようにする。ワールド座標系Ｏｗがどこにあるかも表示しておくのが、後で、座標データをモニタ表示して確認できるようにしたときなどに便利である。
【０５１８】
図１２２は、ＲＯＶなどのロボットの制御ロジックを登録しておくファイルの例を示している。このファイルも、同様に、キャラクタファイルでエディタで容易に修正でき、実行時には、主制御ルーチン２３ｅは最初に読み取り、読み取ったときに、当該ファイルに記述された内容に相当する内容に制御プログラムの一部が置き換わるようにしておく。すなわち、このファイルから実際の制御プログラムに変換するプログラムを最初のファイル読み込み時に実行して制御プログラムの一部をその時点で作成して組み込むようにする。それによって、ロボットの制御ロジックを試行錯誤で変更して試してみたい場合とか、別のＲＯＶを製作してそれに適した制御プログラムを作成しなければならないような場合に、その都度、Ｃ言語などを用いて、プログラムの専門家が制御プログラムを書き換えなくとも容易に誰でも制御ロジックを必要なときに変更できるようになる。ここでの例では、記述するルールを簡単に決めておくことによって、最初に実行する変換プログラムも簡単なものですむようになる。ここでは、約束ごととして、入力データは、Ｘ軸のずれ量はδＸ、Ｙ軸のずれ量はδＹ、Ｚ軸のずれ量はδＺ、各軸の回転のズレ量はδα，δβ，δγと記述する。ここでのずれ量とは、ＲＯＶ２１Ａの現在位置Ｏｒと計画ルート上の現在の目標位置Ｏｒｉとのずれ量である。現在の目標位置Ｏｒｉは図２５のファイルから読み込んだ移動軌跡データに基づいて求めるようにするが、時間軸は、実際の制御時間は遅れる場合や予定より早くなる場合があるので、注意を要する。
【０５１９】
適切な処理の例としては、まず、ＲＯＶの現在の位置から移動軌跡ルートへの垂線の足を下ろして移動計画軌跡ルートへの最短ポイント（Ｐ）を求めて、そこの場所での本来の計画移動速度を求めて、所定の時間後には最短ポイント（Ｐ）からどれだけ進んでいるべきかを求めて、その進んでいるべきポイントを次ぎに向かうべき目標位置ポイントＯｒｉと考える。このように、現在ＲＯＶがいる位置に基づいて一番近い場所での目標軌跡に合わせるようにするので、滑らかな誘導制御が可能となる。目標位置Ｏｒｉは、その場所に目標とするロボット座標系を相当するので、位置情報の他に、ＲＯＶの目標姿勢情報、更にはその位置でどちらの方向へどれだけの速度で移動していなければならないかというダイナミックは、速度の目標値を定義してそれとのズレ量を制御するようにしても良い。
【０５２０】
また、出力データは、ＲＯＶのスクリューやジェット噴射の制御量、あるいはクローラであれば左右のモータの回転制御量を最終的には必要とするが、ここでは、処理装置１００を汎用的なものとするため、ここからの出力データは、ＲＯＶの座標系Ｏｒに対する制御情報としてＸ軸の制御量Ｖｘ（目標速度指令値）、Ｙ軸方向の制御量Ｖｙ（目標速度指令値）、Ｚ軸方向の制御量Ｖｚ（目標速度指令値）、と各軸回りの回転制御量Ｖα（目標回転角速度指令）、Ｖβ（目標回転角速度指令）、Ｖγ（目標回転角速度指令）としたが、速度指令値ではなく、所定時間をあらかじめ決めておき、その所定時間内での目標移動量あるいは目標回転角度量で出力するようにしても良い。
【０５２１】
その他、記述できる記号としては、数字の０〜９と()と四則演算子、ｓｉｎ、ｃｏｓ、ｔａｎ、平方根のＳＱＲなどを設けておく。また、変数として、Ｄ１〜Ｄ２０の２０個を定義して、＝演算子で途中の計算結果を一時的に格納しておくことなどもできるようにしておいて良い。ここで、一例であるが、Ｘ軸方向の速度制御指令Ｖｘは、Ｘ軸方向のずれ量に係数の２．５という数値を掛けた量にするという記述であれば、Ｖｘ＝−δＸ＊（２．５）と記述しておけば、実際に制御量としては、ずれ量δＸに係数２．５で比例しておおきな制御量−Ｖｘが出力されるようにする。一般に、空間を移動しているＲＯＶの制御は、Ｘ，Ｙ，Ｚ方向の位置とＲＯＶ座標系のＸ軸回り、Ｙ軸回り、Ｚ軸回りの角度を制御することで、ＲＯＶの位置と姿勢を制御することができるので、処理装置１００は、これらの６つの制御指令を出力するように製作しておく。一般的なＲＯＶの姿勢制御指令として出力される制御量は、実際のスクリューやモータの回転制御に変換する必要があるが、その部分は、ＲＯＶの有する駆動軸の数や３次元空間上を移動する自由があるとか、床面を常に移動するという条件で駆動軸数は６軸より少ない場合もあるので、ＲＯＶ特有の制御指令の変換が必要になる。これは、ＲＯＶ特有の変換処理になることから、ＲＯＶに搭載するドライバ２３ｄの中に制御指令の変換プログラムを持たせるようにする。あるいは、この変換プログラムは、処理装置１００とドライバ２３ｄの間に専用ユニットとしてあらたに制御指令の変換ユニットを設けても良いし、処理装置１００の中の主制御ルーチンの中に別のプログラムの形で込みこむようにしても良い。プログラムの形で組み込む場合は、別の種類のＲＯＶを接続して使用する場合には、別の制御量の変換プログラムはＲＯＶ特有の各種プログラムをあらかじめ用意しておいて良いが、その都度、別のプログラムを使用するようにする。ＲＯＶの種類を選択すると自動的に適切なプログラムが選択されるようにしておくのが良い。
【０５２２】
図１２３は、ワールド座標系ＯｗとＲＯＶ座標系Ｏｒの概念とプール２６ａなどの基本環境のあらかじめ登録しておくＣＡＤデータの概念を示している。環境データとしては、プール内の主要な障害物の主要な部分のみを登録しておくことで良い。
【０５２３】
図１２４は、基本環境データやＲＯＶ自体の形状データの定義ファイルの一例を示している。ＲＯＶの形状データは、実際に使用するＲＯＶに合わせて最初に読み込むようにする。また、環境ＣＡＤデータも実際にこれから運転するプラントの点検場所の環境データを最初に読み込むようにする。環境ＣＡＤデータは、ワールド座標系Ｏｗ上での座標で直線や球、直方体、円や円弧などの基本図形を使って定義できるようにしておく。ＲＯＶの形状データは、ロボット座標系Ｏｒ上での座標で同様に基本図形の定義ができるようにしておく。文字列は、環境データの注釈として表示する場所と一緒に記述できるようにしている例である。
【０５２４】
次に、図１２５〜図１２８を用いて主制御ルーチン２３ｅと画像処理ルーチン２３ｇの基本的フローチャートの一例を説明する。ここでは、クローラ移動式ＶＴ装置の場合の例で説明する。
【０５２５】
図１２５と図１２６は、主制御ルーチン２３ｅの基本フローチャートである。スタートしたならば、処理３０ａで、SYSTEM￥移動軌跡データ￥（タスク）￥（名前）ファイルより、ＲＯＶのSTARTポイント、ENDポイント、途中の軌跡データを読み込む。次に、処理３０ｂで、SYSTEM￥基本環境データ￥（タスク）￥（名前）ファイルより、基本環境データのＣＡＤデータ、SYSTEM￥ＲＯＶデータ￥（タスク）￥（名前）ファイルより、ＲＯＶの形状データを読み込む。そして、処理３０ｃで、SYSTEM￥制御プログラム￥（タスク）￥（名前）ファイルより、ＲＯＶの制御プログラムを読み込む。ここが最初の処理になるが、最初は、初期のＲＯＶの実際の位置と姿勢はSTARTポイントの位置と姿勢とに合わせておくようにする。これをやらないで済むように、生成したＣＡＤデータと環境ＣＡＤデータの特徴部分のマッチングを行い、精度良く一致するまでは自分がどこにいるかわからない状態であるが、それまでは周囲の環境データを生成しながら衝突しないような制御のみを行い、まずは、現在の自分の位置を探す処理を行うようにしても良い。
【０５２６】
次の処理３０ｄでは、処理装置１００の画面モニタに基本環境データのＣＡＤデータとＲＯＶの現在の位置と姿勢を任意の視点からＣＧ表示する。次に、処理３０ｅで、クローラ走行車の左右のエンコーダの信号をカウンタボードより読み込む処理を行う。次に、処理３０ｆで、加速度センサ、ジャイロセンサのセンサ信号をＡ／Ｄボードより読み込む処理を行う。ここで注意することは、各軸方向に複数、しかも複数種類のセンサを搭載している場合には、ＲＯＶ２１Ｂのある時刻の状態を適切に認識するためには、同時あるいは同時として良いぐらいわずかの時間のずれ以内で読み取る方が良い。次に、処理３０ｆで、左右のエンコーダの信号や、加速度センサ３０、ジャイロセンサ４０の信号より、ＲＯＶ２１Ｂの推定現在位置と姿勢を更新して画像処理ルーチン２３ｇへ引き渡す処理を行う。
【０５２７】
次に、処理３１ａで、画像処理ルーチン２３ｇからＲＯＶの真の現在位置と姿勢を受け取り、ＲＯＶの現在位置と姿勢データを更新する。次に、処理３１ｂで、ＲＯＶの現在位置と姿勢データと移動軌跡データに基づく計画位置と姿勢との偏差を求める。次に、処理３１ｃで、ＲＯＶの現在位置姿勢と計画位置姿勢との偏差と制御プログラムに基づきＲＯＶの制御データを求めてＤ／Ａボードからクローラの左右のモータのドライバへ制御指令信号を出力する。その後、プログラムは処理３０ｄへ戻り、前述の処理を繰り返すように処理する。
【０５２８】
図１２７と図１２８は、画像処理ルーチン２３ｇの基本的フローチャートを示している。スタートしたら、処理３０ａで、左右のカメラ１０，２０の画像情報をキャプチャボードより読み込む処理を行う。ここで、左右のカメラの情報は、同時に読み込む必要がある。時間にずれが生じると、ＲＯＶは動いているので、ステレオ計測の誤差に影響するので注意を要する。
【０５２９】
次に、処理３２ｂで、左右のカメラ１０，２０の画像情報をあらかじめ校正時に求めておいたパラメータでひずみ補正する。次に、処理３２ｃで、左右のカメラ１０，２０の画像情報の中の特徴点（線分）を抽出して、ステレオ計測により３次元の点座標（線分）に変換する。このとき、左右のカメラ１０，２０の位置と姿勢の関係は、あらかじめ精度良く求めておきステレオ計測の計算式に反映しておくのが良い。次に、処理３２ｄで、左右のカメラ１０，２０の画像情報より特徴点（線分）の左右の色情報をＣＡＤデータとして記録する。また、３次元の点座標（線分）データに対応付けして画像データを記録する。
【０５３０】
次に処理３２ｅで、前回ステレオ計測した３次元ＣＡＤデータがある場合には、少なくとも３点のトラッキングする対応点を決めて、前回計測した座標系に今回計測した３次元ＣＡＤデータを変換する処理を実施する。
【０５３１】
次に、処理３２ｆで、既生成ＣＡＤデータの中に同じ点（線分）データがあるか否か確認し、ある場合には、ＣＡＤデータの精度が向上しているか否かを判別する。精度としては、画像のひずみによる誤差、ステレオ計測の２台のカメラ１０，２０の位置と姿勢関係の座標変換計算式の精度による誤差、計測点とカメラの距離による誤差（近いほどステレオ計測精度は良くなり遠方ほど精度は悪くなる。）、それからトラッキングによる座標変換により生じる誤差〔（図６７の（ｅ）のように計測点の中より最も安定度（対応点の一致度）が良く、かつ、計測精度の良い３点を一致するようにして座標変換計算式を求める（前の視点で計測された３点と後の視点で計測された３点を合わせる場合でも、３点を合わせるようにしても１点をあわせた場合に他の２点は誤差があるのでなかなか一致しないので、３点それぞれをそれなりに一致するようにする２つの視点の座標系の位置関係を求めるようになる）ので、その座標変換計算式により、後の視点で計測された新たな点群を前の座標系に変換していく場合に生じる誤差）、撮像系がピンぼけなどが生じる撮影条件がある場合には、ピンボケなどによる計測誤差（これはピントが合っている条件で計測された点の測定精度は高く、ピントがボケている条件で撮影した場合、精度は悪くなる）などを総合的に考慮して更新するか、否かを判断するようにする。また、ステレオ計測時の対応点の一致度（図４４の点Ｐ４の誤差半径ｒ）の誤差もあるので、それも考慮する。この対応点の一致度の誤差は、輪郭線の特徴点の場合は大きな誤差になり、鋭角な角の輪郭の場合は小さくなり、模様などの実際線を構成する特徴点の場合は精度が最も良くなるが、単純に一定の閾値でＣＡＤデータにする対象点から除くと生成される環境の多くは輪郭線であり、また、円筒や曲面などの輪郭線の誤差は大きくなるが、それらの輪郭線も重要な環境情報である。従って、他の誤差とこの誤差は区別して、この誤差の大きさは輪郭線か実際線かの属性を表す指標として管理するようにするようにしても良い。
【０５３２】
次に処理３２ｇで、精度が向上している点データについては、生成ＣＡＤデータの更新処理を行う。合わせて線分ＣＡＤデータの更新処理を実施する。次に、処理３２ｈで、精度が向上している点データに関係する面データがある場合には、面データの更新処理を行う処理を実施する。次に、処理３３ａで、点（線分）データに対応する画像データがより良くなる（所属する面により正対した方向、より近い、より画像の中心にあるなどの指標で良くなる）場合、画像データの更新処理を実行する。
【０５３３】
次に、処理３３ｂ〜３３ｆでは、ＲＯＶの移動量が過去計測した位置から所定の移動量に達した場合で、少なくとも３点以上の対応点がある場合に実行して、ステレオ計測よりもより精度良く３Ｄ計測を行うようにするものである。この場合には、現在の視点位置から３Ｄ計測に適したある一定の範囲エリア内で計測した過去の２次元の特徴点データは、この処理を行う場合は、消去しないで記録しておくことが必要である。記録情報の選択手段としては、一旦大きく移動して離れた場合でも再度同じ場所に戻ることも想定されるので、空間の所定のブロックに区切ってそれぞれのブロックを撮影する代表的な視点の方向（例えば、上下左右にすれば６方向、更にこまかく４５°方向きざみで定義するようにしても良い。）に一番近い代表シーンのみを記録しておくようにすればデータ量の増加を抑制できる。勿論、データの記録容量から自動的に過去に撮影したシーンのデータは消去するようにしても良い。
【０５３４】
具体的な処理の流れは、図１２８のように、処理３３ｂで、ＲＯＶの移動量が過去計測した位置から所定の移動量に達した場合で、少なくとも３点以上の対応点がある場合には、その対応点に基づき座標変換計算式を求めて、その座標関係にある２つの画像情報により再度ステレオ計測する（途中の微小移動トラッキングをパスした大きな動きのトラッキング処理に相当する。）。処理３３ｃでは、求めた３次元ＣＡＤデータは初期計測した座標系に今回計測した３次元ＣＡＤデータを変換して、次の処理３３ｄでは、既生成ＣＡＤデータの中に同じ点（線分）データがあるか否か確認して、ある場合にはＣＡＤデータの精度が向上しているか否かを判別する。ここで判別する場合は、前述のように、考えられる誤差を総合的に判断して更新するか否かを判断するようにする。ここでの計測点とカメラの距離による誤差は、ステレオ計測の場合は、近いほどステレオ計測精度が良くなり、遠方ほど精度が悪くなると先に述べたが、トラッキングにより視点が大きく変わった場合にあらためて計測する場合は、同じ距離でも視点の間隔が広くなればその分精度は良くなる。次に、処理３３ｅでは、精度が向上している点データについては、生成ＣＡＤデータの更新処理を行う。合わせて線分ＣＡＤデータの更新処理を行う。次に、処理３３ｆでは、精度が向上している点データに関係する面データがある場合には、面データの更新処理を行う。そして、処理３３ｇで、トラッキングにより求めた左右のカメラの現在の位置姿勢情報をＲＯＶの真の現在の位置姿勢情報として主制御ルーチンへ引き渡す処理を行って、図１２７の処理３２ａの処理から繰り返す処理を実行する。この処理３３ｇは、処理ブロック３３Ａ（処理３３ｂ〜処理３３ｆ）を実行しない場合でも実行するようにする。
【０５３５】
以上のようにすれば、移動しながら自分の位置を認識して、環境の３次元ＣＡＤデータを自動的に生成しながら、検査結果データを３次元ＣＡＤデータの部位に対応させながら自動的に記録（ＶＴ検査の場合には生成した３次元ＣＡＤデータそのものが検査記録データとなる）し、また、自動的に計画ルートにそって自動で移動制御させることもできて、過去の検査結果データとの比較も同じ部位で検査結果データの対応付けがされているので容易に比較でき、確認したい個所の検査結果のトレンドも確認することが容易になる移動式検査装置を得ることができる。各種プラント設備やさまざまな設備、機材、財産をある時点で３次元のＣＡＤデータに記録保存しておき、時間が経過してから再度同じ場所の３次元ＣＡＤデータを生成して比較してみれば、過去になかった傷や汚れを容易に発見するようなことも可能となる。勿論、比較して違う部分をマッチング処理により自動的に抽出するようにして良い。
【０５３６】
また、処理速度の高速化により移動する物体も瞬時に計測してＣＡＤデータが生成できれば、ＣＡＤデータに時刻データをもたせることで、環境の中で動く物体もその詳細な動きを３次元のＣＡＤデータとして生成記録できるようになるので、世の中の現象や、職人の技、貴重な芸術芸を連続に動く３次元のＣＡＤデータとして記録保管してライブラリ化して後世に残していくことも可能となる。
【０５３７】
図１２９〜図１３６は、本発明の第２１〜第２４の手段の基本的構成を例示している。
【０５３８】
図１２９は、監視サービス提供システムの基本的なシステム構成を示している。町や街路路、公園などの公共施設、あるいは私有地、屋内でも良いが、高分解能ＴＶカメラなどのセンサと通信機能を有する端末３４ｂ（１），４３ｂ（２）などを密に設置して、ユーザーが携帯電話３４ｃなどを用いて申し込めば、各端末３４ｂ（１），４３ｂ（２）などからの情報を電話会社３４ｅなどのネット回線３４ｆを経由して総合監視センター３４ｇへ送られてきた端末のセンサ情報より、申込者を監視サービスするシステムである。この監視サービスのシステムに前述の視覚情報処理システムを適用することによって、総合監視センターでユーザーをモニタで確認して随時監視員が付いてユーザを追跡するようなことをしないでも、最初にユーザーのＣＡＤデータを特定し、後は画像処理のトラッキング処理でユーザーの位置を自動的に追跡させることも容易となる。端末の撮影エリアがラップするように隣り合う端末を設置するようにすれば、一つの端末の視野からユーザーが外れるときには隣の端末の視野に入る位置関係になるので、ユーザーを見失わないようにトラッキング処理を複数の端末に沿って連続的に行わせることが容易にできるようになる。勿論、携帯電話のＧＰＳ機能でユーザーの位置が分かり、更に画像認識で特定できれば、最初のユーザー特定も自動で行うようにしても良い。完全自動ではなくとも、ＧＰＳで分かった概略位置を表示してその中からユーザーをオペレータが特性できるようにしても良い。また、この場合のトラッキング処理とは、端末が撮影した画像情報を処理して、前述した図６８の方法で特徴点、線分を抽出して、図５３で説明した２次元の画像マッチング処理で、ユーザーの特徴点、線分をマッチング処理により追跡するようにしても良いし、複数の端末を常にユーザーを撮影できる位置関係に設置して、少なくとも２台の端末の画像を用いてユーザーの特徴点、線分を３次元のＣＡＤデータに変換して、３次元のＣＡＤデータのマッチング処理により追跡するようにしても良いし、視覚情報処理システムで説明した探索機能を用いて、２次元画像上での探索処理で追跡するようにしても良いし、３次元の探索処理でユーザーの３次元ＣＡＤデータを常に探索しながら追跡するようにしても良い。
【０５３９】
この場合、ユーザーは人間であることから、首、両腕、両足は、所定の範囲動くので、図１１２で説明したＣＡＤの結合条件なども使用して探索するようにすると良い。最初にユーザーを特定したときにユーザーの服装、身なりを最初に計測した３次元ＣＡＤデータ（形状と模様の色情報）で参照ファイルに登録しておくようにすることで、万一、連続処理のトラッキングで見失った場合にも、３次元のＣＡＤデータ探索で自動的に探索して追跡を自動で行うことも可能となる。また、その時にユーザーが見につけている物品にあらたなＣＡＤデータの結合条件を簡単に定義できるようにしても良い。このようなシステムにおいて、ユーザーからの申し込みがない場合にも各端末に記録装置を設けておき、後日、ユーザーからの申し込みがあった場合には、過去に時刻データと対応付けて記録しておいた監視データの必要個所を各端末から任意に取り出せるようにした監視サービスの拡張システムである。この場合の端末の例は、別途説明する。時刻は、端末に電波時計を組み込んで正確な時間を参照できるようにして所定の時間間隔で監視画像を記録できるようにしておいても良い。このように、各端末ごとに記録しておけば、総合監視センターに膨大なデータ量を記録する装置を設置することなく、全ての場所の過去の記録データを蓄積しておくことが容易にできる。記録しておける時間は、端末の性能によるが、２４時間とか１週間とか１ヶ月以上なども想定する。万一、不審者３４ｄにより事件が発生した場合、ユーザーが誰も監視サービスを申し込んでいない場合でも、後日、事件が発覚して、警察などで捜査を行う場合にも、事件発生場所の事件発生時刻前後の監視記録データを総合監視センター３４ｇから任意に取り出せるようにすれば、捜査に必要な情報を確実に容易に得られるようになる。
【０５４０】
また、申込者が監視サービスを申し込んでセンター３４ｇで申し込み者を確認して監視サービスを開始した場合には、監視センター３４ｇから申込者の携帯電話３４ｃへ信号を送り、監視サービスが始まった場合には、監視サービス中であることがわかるような目印、例えば、ランプ３４ｉを点滅させるようにする。このようにすることによって、不審者３４ｄにも監視サービス中であることが知らしめることができるので、事件を未然に防止することができるようになる。ランプ３４ｉは、申し込み者の目立つ場所にさりげなく付けられるように、ブローチやイヤリングや簪などに付けられるようにすると良い。また、本当に監視サービスを受けていることを不審者３４ｄに認識させるために、ランプの発光タイミング、発光強度、発光色などが、端末３４ｂ（１），３４ｂ（２）側に設けたランプ３４ｚと同期して光るようにしても良い。発光制御は、センター３４ｇあるいは監視システムがコントロールするので、監視サービスを受けていない人が容易に監視ランプの発光状態を真似するようなことはできなくなるので、不審者３４ｄが申込者のランプ３４ｃが端末３４ｚと同じように発光していることを確認すれば、本当に監視サービスを受けていることを認識して事件発生をより抑制することが可能となる。
【０５４１】
知らしめる方法の別の手段としては、端末にレーザ照射装置を搭載して申込者の方向へ照射するようにしても良い。トラッキングにより申込者の現在いる場所は、３次元座標で認識されているので、その方向にレーザーで○を書いたり模様を書いたり、申込者の頭上に目立つ印を表示することで、より分かりやすく、容易に真似のできない方法になる。模擬の監視ランプを真似することが大変であれば、本監視サービスを申し込む方が安いという料金関係にしておくことによって、不審者が監視サービスを受けていることを疑わないようになる。
【０５４２】
また、図１２９の（ｂ）は、総合監視センター３４ｇと各端末３４ｂのデータの受け渡し方法を示したものである。基本的には特開平10-227400号公報の遠隔監視システムのような方法を適用して端末の数が多くなる場合の無線周波数の割り付け問題は近くの端末どうしの中継機能を設けることにより、少ない割り付け周波数で広域のセンサネットワークを形成する。（ｂ）では、申し込み者の形態電話３４ｃは電話回線を直接使用するが、端末のデータ通信は、専用回線を設ける。遠隔地の電話会社３４ｅまで全て端末の中継で行うと、データの中継回数が多くなるために通信時間がかかることから、中継伝送グループはある程度の領域に限定して、長距離無線装置３４ｋをところどころに設置することにより、中継による時間ロスをなくして、しかも広域のセンサ端末ネットワークが構築できる。長距離無線装置３４ｋには、携帯電話を利用するようにしても良い。センサ端末間の伝送ルートもシリーズにしなくとも良く、網目状の無線ネットワークになるようにして良い。網目状にすることで、１台の端末が故障した場合でも端末自身に診断機能があれば、故障した端末を他の端末が認識して別のルートを経由してデータ伝送することも可能となる。この（ｂ）の場合は、監視スタート信号はセンター３４ｇから電話会社３４ｅ経由して直接申込者の形態電話３４ｃに送られて携帯電話３４ｃからランプ３４ｉへ発光制御されるようにする場合の例である。
【０５４３】
また、図１２９の（ｃ）は、各々の中継し合う端末３４ｂ（０）〜（３）のデータを携帯電話３４ｃの最寄の端末３４ｂ（１）が通信を行うようにして、端末からのセンサデータを送信やセンタから端末への指令信号を形態電話３４ｃを経由して行うようにしても良い。また、（ｂ）の方式と（ｃ）の方式の両方を使えるように設備計画しても良い。
【０５４４】
図１３０は、図１２９の（ａ）の総合監視センターの具体的なハード構成の基本的な例を示している。電話会社３４ｅとネット３４ｆの構成機器は、通常の電話回線とインターネットの回線が利用できるように考慮する。勿論、専用の回線を用意することでも良いが、構成機器は通常の電話回線とインターネットの回線、ＬＡＮ回線と同じ構成で実現できる。図１３０は、総合監視センターの基本ハード構成で電話回線の端末にＰＣ端末が接続されているものである。
【０５４５】
ｎ台は、監視サービスを同時に行える最大回線の数だけ用意する。各ＰＣは、同じプログラムを動作させれば良いので合理的である。統計データなどを自動で集計する場合は、各ＰＣ端末をＬＡＮで接続して蓄積データや監視サービス履歴を集計、参照、利用できるようにしても良い。
【０５４６】
図１３１は、ＰＣ端末で操作させる監視サービスの基本的なプログラムを例示している。まず、処理３４（ｅ１）ａで電話回線への呼び出しある場合は、次の処理３４（ｅ１）ｂで電話をかけたユーザーのアカウント情報を記録する。次に、処理３４（ｅ１）ｃでユーザーとセンター員の音声回線ＯＮして直接ユーザーとセンター員が会話してサービスの依頼とユーザーを特定するようにする。ユーザー特定は、具体的には、次の処理で行う。センター員がユーザーから現在の場所を聞き、地図情報などからもっとも適切端末を選びそれを指定する。プログラムは、処理３４（ｅ１）ｄで、センター員が指定した端末を別の電話回線あるいはユーザーがかけている携帯電話に端末との通信機能がある場合はユーザがかけている電話回線経由で呼び出し、端末にセンター員が指定する方向の映像（画像情報）を送信させるコマンドを送信し、処理３４（ｅ１）ｆで、端末から返信されてくる映像データをＰＣモニタの所定のウィンドウへ表示する。センター員はユーザーを端末から送られてくる映像で確認するため任意の端末の任意の方向の映像を繰り返し要求するようにしてユーザーを探す。最初は広角画像で広い範囲で探して、ユーザーと思われる人が特定されたらならばズームして拡大表示してユーザーを確認する。ユーザーと電話回線で話をしながら確認作業を行っているので、ユーザーが手を上げたり端末の方を見るなどの動作を会話で離しながらその内容を確認するので、ユーザーを間違いなく、正しく特定できるようになる。センター員がユーザーを確認したならば、画面上でユーザー近傍を指定すれば、プログラム側では、処理３４（ｅ１）ｇで、表示ウィンドウにユーザを特定する座標指定入力があるかどうかを判別し、入力がある場合には、処理３４（ｅ１）ｈで人をあらかじめ複数の方向（端末の設置位置からみる場合にありうる方向）から撮影した代表的な人の２次元の参照ＣＡＤデータを複数読み込み、画像データを線画にしてから２次元のマッチング処理で画像の中の人を検出して、指定される座標に一番近い人を特定して対応する位置に認識マーク（例えば、人を包含する矩形など）を表示するとともに、その人のＣＡＤデータの生成を開始するようにする。座標が指定された段階からその位置が視野に入る他の端末からの映像も利用して３Ｄ計測しながらＣＡＤデータの生成と探索を開始するようにしても良い。センター員は、その状態を確認してＯＫであればＯＫと入力すると、プログラム側は、処理３４（ｅ１）ｉで認識結果に対してＯＫとの入力がセンター員からあるかどうかを判別して処理を分岐する。
【０５４７】
ＯＫ入力あれば、処理３４（ｅ２）ａでユーザーがかけている携帯電話の端末へ監視サービス開始との指令を電話回線を経由して送信する。この指令で、ユーザーの携帯電話に接続されているサービスＯＮ状態表示機能がＯＮする。また、ユーザー申請で、一度電話を切っても再度電話してサービスを終了するまでは、監視サービスを継続するようにした場合は、電話を切ってもサービスＯＮ状態表示機能ＯＮは継続するようにすることでも良い。
【０５４８】
次に、処理３４（ｅ２）ｂで引き続き画面の中から人を検出して、特定された人（ユーザー）を前回特定位置に近い人を再度特定、あるいは生成した３次元のＣＡＤデータから前回特定した人と同じ人であることを３次元ＣＡＤのマッチング処理により判別して再特定して、その人周辺の映像と周辺の人の映像を表示するとともに記録に残すようにする。そして、処理３４（ｅ２）ｃで、特定された人（ユーザー）を再特定できなかった場合は、アラームを出力してセンター員に知らせ、監視サービス中断をユーザーへ送信するようにする。そして、判別処理３４（ｅ２）ｄで、特定された人（ユーザー）を再特定できていない場合は、処理３４（ｅ１）ｄへ戻ってユーザーの再特定を行うようにする。
【０５４９】
特定された人（ユーザー）を再特定できている場合は、次の処理３４（ｅ２）ｅで、特定された人（ユーザー）の現在位置情報より、その位置が画像情報の中央になるように、必要な端末を選択して、各端末の撮影する方向を計算して、その画像情報を送信するように、各端末へ別の電話回線あるいはユーザーがかけている携帯電話に端末との通信機能がある場合はユーザがかけている電話回線経由でコマンドを送信するようにして、処理３４（ｅ２）ｆで、センター員からユーザー（あるいはユーザーとその周辺の人）へ知らせる入力があった場合は、端末へユーザーの携帯電話あるいはユーザー周辺の端末へ知らせる指令と知らせるデータ（音声データなど）を送信する。
【０５５０】
また、周囲の人から不審者を不審者のデータべースより認識した場合には、自動で送信するようにする。そして、サービスの終了まで処理３４（ｅ２）ｂからの処理を繰り返して監視サービスを継続する。サービス終了時には、プログラムは、処理３４（ｅ２）ｈで、電話をかけたユーザーのアカウント情報を記録して終了する。これは、ユーザーの追跡処理を自動で行うようにした場合の例である。勿論、各端末にセンター員を一人配置するようにすれば、すべて人がマニュアルでユーザーを追跡するようにしても良いし、本例でマニュアル設定している部分を自動で処理するようにしても良い。自動化されれば、センター員の負担は低減されるとともに見失う危険性も少なくなる。また、自動化の継続効率が良くなれば、複数の端末を複数のセンター員で効率良く運用することも可能となる。例えば、１００００台のＰＣ端末を１０人のセンター員で運用することも可能となる。また、総合監視センターは、全国に１箇所に設けるのではなく、各地域ごとに分散して管轄するように構成しても良い。また、ここで説明した監視センターのＰＣ端末と各現場に設置される端末の機能分担は、一つの例にすぎない。
【０５５１】
この例では、画像情報をセンターのＰＣに送信してからＣＡＤデータの生成や探索処理などにより人や特定の人物を特定するようなシステム構成を説明したが、各端末に視覚情報処理装置を搭載して、各端末の中で２次元のＣＡＤデータの生成から周囲の他の端末と２次元のＣＡＤデータの送受信をお互いに行い、複数の端末が連携して３Ｄ計測して３次元のＣＡＤデータを生成する処理機能を現場に設置された端末側もたせて、センターと送受信するデータは、２次元あるいは３次元のＣＡＤデータと代表的な画像シーンのみにすることでデータの伝送量を少なくするようなシステム構成にしても良い。また、このようにすれば、端末で即座に処理ができるので、ＣＡＤデータの生成や探索処理も迅速に行うことができるようになる。
【０５５２】
また、監視端末を設置すると、監視端末のない場所での犯罪が増える危険性があるので、量産化により監視端末の製造コストを下げて、公共的な場所、私的な場所を含めた多くの場所に設置できるようにするのが良い。また、覆面などで後で人物を特定できなくして犯罪に及ぶケースも増えると予想されるので、逃げても端末のネットワークからは逃れられないように多くの端末を設置するようにするのが良い。また、不審者を特定したならば、その不審者を自動的に追跡するようにしても良い。その場合、万一、不審者を見失った場合には、見失った場所周辺の端末全体に不審者の探索指令が自動で配信されるようにして、どこかで少しでも視野に入れば不審者を探索できるようにしても良い。見失った時からの経過時間とともに使用する端末の探索エリアを自動的に所定の比率で拡大するようにしても良い。この場合は、特別な処置として公共の場、私的な場に設置したすべての端末をその目的に使用できるようにしても良い。
【０５５３】
このような使用方法も想定されるため、各端末にＣＡＤデータの生成や探索機能を搭載するようにすることは勿論であるが、同時に複数の命令に対する処理もできるように、常に全方向の画像情報を取り込むようにしてタイムシアリング処理で複数の違う方向を対象に対して違うコマンドに対する処理ができるようにすると良い。
【０５５４】
また、凶悪犯罪が増える場合には、音声でユーザへ危険を知らせるだけでなく、各端末にペイント弾を不審者へ向けて発射できるような設備と組み合わせて運用するようにしても良い。端末にレーザを設置して監視サービス状態を弱いレーザスポットを照射して周囲に知らせるようにする設備を利用して、凶悪犯による危険が迫った場合には、レーザビームを絞るようにして不審者へ威嚇照射できるようにしても良い。このときには、ＰＣ端末から別の電話回線を利用して警察機関へ緊急で通知ができるシステム構成にして、非常時には警察機関の運用に切り替えて、警察機関のＰＣ端末から操作できるようにして、警察による不審者への静止，威嚇操作が迅速に切り替えられるようにしても良い。レーザーや威嚇弾を撃つ場合は、各端末にレーザーなどの照射する方向を設定するカメラのパンチルト機構のようなものを設けて、それを遠隔手動操作あるいは自動制御できるように構成する。通常の端末の画像情報を広範囲にスキャンするために、ミラースキャンで得るような構成の端末を利用する場合は、そのミラースキャンをレーザの照射方向を設定する機構と兼用するようにしても良い。勿論、端末とは別に専用のレーザーや威嚇弾を撃つ設備を数台の端末に１台程度の割合で設置するようにしても良い。また、レーザーや威嚇弾を撃つ場合は、不審者の手や足の部位を３Ｄ−ＣＡＤデータより認識して、求めた不審者の手や足の位置を検出してレーザーや威嚇弾を撃つ方向を自動的に設定するようにしても良い。操作者がマニュアル操作で威嚇射撃を行う場合でも、誤って不審者の致命傷となる個所へ照準が設定される場合には、自動的に致命傷となる部位を避けた個所に自動的に補正する安全上のインターロックを設けるようにしても良い。本発明の視覚情報処理装置を適用することにより、不審者の頭部、体、手足をそれぞれの部品の位置と姿勢とそれら部品の結合状態（身体全体の姿勢状態）も含めて検出できるようになるので、不審者の致命的な部位を避けて照準を合わせることも容易に実現可能なものとなる。
【０５５５】
図１３３は、端末に画像データ蓄積機能がある場合の監視センタからその情報を引き出すときに使用するＰＣ端末のプログラムの基本的な構成を例示している。
【０５５６】
処理３４（ｆ）ａでは、センター員が指定した端末を電話回線で呼び出し、端末にセンター員が指定する時刻（何月何日の何時から何時まで）の指定の方向の映像（画像情報）を送信させるコマンドを端末へ送信する。次に、処理３４（ｆ）ｂで、送られてきた映像をＰＣの端末に表示する。ここで、指定があれば、人あるいは特定の人を検出してその人とその周辺のみを表示、あるいは、人の位置に対応する位置に認識マーク（例えば、人を包含する矩形など）を表示したり、指定した端末の方向を撮影する他の端末の画像データも利用して人の３ＤＣＡＤデータを生成しながら表示したりもする。そして、処理３４（ｆ）ｃで、探したい人あるいは探した人を真似た人をあらかじめ撮影した画像情報から生成した３次元ＣＡＤデータの入力がある場合には、それとのマッチング処理を行い、マッチング度の高い人の映像部分のみを、マッチング度とともに表示するようにする。
【０５５７】
図１３５は、このような監視サービスに適した端末の例であるが、ＣＣＤカメラ３５ｂとレンズ３５ａとを組み合わせた小型カメラ３５Ａをコネクタ３５Ｃで端末本体３５ｅ側に複数設けたソケット３５ｄに設置できる構成にしている。小型カメラ３５Ａには、指向性マイク３５ｍを取り付けて、音声も監視、記録できるようにして良い。勿論、ここでは図示しないが、端末には、スピーカを設けて、センターから不審者や周囲の人に必要に応じて注意などを喚起できるようにしても良い。スピーカは、申込者の携帯電話より専用拡声器を申込者が身につけて携帯からの音声信号を拡声器から皆で聞くことができるようにしても良い。このようにすることにより、万一、申込者が不審者に狙われるようなことになっても、万一、危険な場所に近づくような場合にもセンターから呼び止めることができるようになる。
【０５５８】
この例では、端末３５ｅのソケット３５ｄは、球状に四方八方に小型カメラ３５Ａを設置できるように均一に全方向に設けてある。このようにしておけば、端末を設置するときに、必要な方向のみに小型カメラ３５Ａを複数設置することが容易に可能になる。この例は、球状の表面にカメラ３５Ａを設置できるようにした例であるが、単純に開板の前面と背面の２箇所にカメラ３５Ａを取り付けられるようにしても良いし、三角柱や三角錐、四角柱や四角錐、多角柱や多角錐などの表面に取り付けられるようにしても良い。そのようにしておけば、例えば、ビルの壁に端末を設置する場合、ビルの壁側は監視する必要がないため、小型カメラ３５Ａは片側にたくさん設置して反対側には設置しないようにして、合理的に必要なセンサのみを実装した端末を、設置する場所に応じて組み立てることが可能となる。また、公園の真中にポールを建てて端末を設置する場合には、３６０度全周方向に小型カメラ３５Ａを実装するようにする。このような構成とすることで、安価な小型ＣＣＤを複数組み合わせて、広範囲を高分解能で撮影できる撮像センサ付きの端末を安価に得ることができるようになる。小型カメラ３５Ａを設置した後にドーム型のカバー３５ｆを溝３５ｇに嵌めるようにして取り付ければ、端末の組み立ては容易に完成する。また、故障した場合もカバー３５ｆを外して、故障した個所のみの小型カメラ３５を交換すれば良いし、端末の設置場所を変えるような場合とか、小型カメラ３５Ａの配置変更や増減する場合も容易に対応が可能となる。
【０５５９】
図１３６は、図１３５の端末のブロック線図を示している。各小型カメラ３５Ａ（１），３５Ａ（２）…は、各ソケット３５ｄ（１），３５ｄ（２），３５ｄ（３），３５ｄ（４），３５ｄ（５）…のどの位置にも接続できるようにする。また、各ソケットからの配線は、センサデータ制御回路３６ａで実際に接続されている小型カメラ３５Ａを認識して、そことセンサ信号処理ＬＳＩ３６ｂとのデータ伝送制御を行うようにする。データ伝送制御は、センサ信号処理ＬＳＩ３６ｂが次に行う信号処理の内容に基づいてどの小型カメラ３５Ａからのデータを取り込むかなどの切り替え指令信号をセンサデータ制御回路３６ａに指示するようにする。センサ信号処理ＬＳＩ３６ｂでは、申込者を認識して画像トラッキングするとともに、画像情報内で差分処理をして変化が生じた場合のみ、変化部周辺の画像情報を圧縮して画像データ記録装置３６ｄへ時刻データとともに記録するように動作させる。
【０５６０】
マイコン３６ｃは、時刻を管理するとともに、申込者のトラッキング指令や定期的に画像を記録する条件などの動作条件を無線通信装置３６ｅを経由してセンター３４ｇからの指令に基づきセンサ信号処理ＬＳＩ３６ｂに出力するとともに、センター３４ｇや他の端末３４ｂからの指令に対する応答を返信するとともに、無線通信装置３６ｅを経由して入ってくる近くからの端末からの情報を認識して必要な中継機能をみずから、あるいは、センサ信号処理ＬＳＩ３６ｂを使って実行する。中継処理を行う場合には、画像データ記録装置３６ｄに中継する画像情報も一時記録するようにして良い。また、センサ信号処理ＬＳＩ３６ｂがトラッキング制御や画像記録や中継機能を全部行うと、処理速度的に厳しい場合には、トラッキング処理専用のセンサ信号処理ＬＳＩと画像記録専用のセンサ信号処理ＬＳＩと中継処理専用のセンサ信号処理ＬＳＩとをマイコン３６ｃにそれぞれ接続して並列処理できる構成にしても良い。また、信号処理は、マイクの音声を分析してその方向を求める機能をもたせても良いし、画像データ記録時には、当該画像の方向のマイクの音声データを記録するようにして良い。マイクがあれば、指向性マイクで方向のトラッキングをしたり、音のある方を画像処理して３次元ＣＡＤデータを生成したり、音のある方を画像記録するようなこともできるようになる。また、カメラ、マイク以外の赤外線センサーや電磁波センサ、超音波などのセンサを搭載してそれらの信号監視や信号記録もできるようにして良い。
【０５６１】
以上のように、本発明の監視サービスによれば、不審者に狙われることのない、また、事件を未然に防げて、また、万一、事件になっても、警察の捜査時間を短くして、少ない警察官で安全な社会を築くことができるようになる。
【０５６２】
また、自律移動型ロボットがいろいろな場所で動く社会になった場合には、ロボットのユーザやそのロボットの製造メーカは、安全に対する責任が生じるので、このような監視システムで自律移動ロボットを監視するようにして、万一、危険な状況になった場合には、ロボットユーザに連絡して、速やかに、ロボットを専用回線で停止させるようにすることも可能となる。また、あらかじめ、専用の緊急停止回線のコマンドなどをロボット製造メーカと監視サービス会社とで決めておけば、当該ロボットのＩＤを指定して、端末より直接に、ロボットの通常制御とは独立した停止制御回路へコマンドを送信できるようにすることができる。ＩＤで対象ロボットを識別するようにすれば、近くに複数のロボットが動いている場合でも危険な対象ロボットのみを停止させることができる。また、本サービスを自動車を運転するユーザに提供する場合は、自動車をトラッキングして監視サービスを行い、他の自動車と衝突しそうになる場合とか、自動車が危険な状態で運転されようとした場合には、自動車の運転手にその旨を事前に伝えられるようにしても良いし、また、緊急性を要する状況の場合には、端末から自動車の制御装置にブレーキ信号を直接送信できるようにしても良い。自動車の場合は、通常は状況を認識して運転者へガイダンスするのみとするが、ブレーキなどの安全サイドの制御は、運転者が遅れた場合には直接実行できるようにすることでも良い。
【０５６３】
また、本監視サービスの端末を設置する場合は、少なくとも１台は互いの端末が監視対象の視野に入るように設置することによって、端末自体へ危害が及ぶ場合にもその状況を監視して抑制することが可能となる。また、センターからの各端末へのコマンドに、探索したい物体のいろいろな視点から撮影した画像データあるいは２次元のＣＡＤデータあるいは３次元のＣＡＤデータを転送して、端末側で、いろいろな視点から見た場合の２次元のＣＡＤデータを生成するようにして、撮影される画像情報の中より探索してマッチング度の高い対象物体が探索された場合には、その情報をセンターへ応答するような機能を設けて、監視サービスエリア全体の監視、探索にも利用できるようにしても良い。勿論、これらの処理は、タイムシアリングで他のコマンドに対する応答処理と並行してできるようにしておいても良い。
【０５６４】
図１３４は、図１３６（ａ）のマイコン３６ｃの基本処理のフローチャートを示している。これも一例である。マイコン３６の動作は、まず、処理３４（ｇ）ａで、センサ信号処理ＬＳＩへ現在の映像を画像データ記録装置へ現在の時刻とともに記録する指令を出力する。次に、処理３４（ｇ）ｂで、無線通信装置から送られてくるコマンドを読み取り、コマンドに対応する処理を行う。具体的な例としては、（１）データ転送コマンドの場合には、近くの端末から送られてくるデータを取り込んで、次の所定の端末宛データとしてそのまま送信出力する。（２）画像出力コマンドの場合には、指定された時刻の指定された方向の画像情報を無線通信装置へ出力する指令をセンサ信号処理ＬＳＩへ出力する。（３）送信相手端末から正常受信応答が所定時間内にない場合は、同じデータを再送信する。複数回続く場合には、次の経由ルートを選択して送信する。（４）下流の端末の異常がわかったならセンターへ送信する。送信データには、最終送信先（センターか特定端末）の他、経由ルートが複数ある場合は、途中経由する端末をあらかじめ決められたルールに従って指定するようにする。
【０５６５】
次に、判別処理３４（ｇ）ｃで、送信相手から正常受信応答がどうしても得られないとか、自己診断センサある場合に異常を検出した場合は、処理３４（ｇ）ｄでマイコンにランプ等が接続あればそれを点灯する等状態表示アラームを出力して終了する。異常がなければ処理３４（ｇ）ａから繰り返し実行するように動作させれば良い。
【０５６６】
図１３６（ｂ）は、センサ信号処理LSIの基本的なフローチャートを例示している。センサ信号処理LSI３６ｂは、マイコンからの指令に応じて指令内容に応じた処理を行う。具体的には、（１）画像記録コマンドの場合は、センサデータ制御回路へカメラ端末切り替え指令を与えて指定カメラの画像データを取り込み、画像データ記録装置へ時刻データとともに記録する。カメラ端末が複数ある場合は、切り替えながらすべてのカメラ端末からの画像データを記録する。画像データ記録装置の容量を超える場合は、古いデータの上から上書きする。また、検索しやすいインデックスなども一緒に記録するようにする。（２）画像出力コマンドの場合には、指定された時刻の指定された方向の画像データを記録装置の中から検索して読み取り、無線通信装置へ送信相手先情報などとともに送信データとして出力する。（３）ＣＡＤデータ生成機能がある場合には、２次元の線分ＣＡＤデータを生成して画像データ記録装置へ記録する。他の端末からの２次元の線分ＣＡＤデータを受信した場合は、端末の位置関係より３Ｄ計測して３次元のＣＡＤデータを生成して記録する。この動作処理３６（ｂ）ａを繰り返し実施する機構を組み込むようにする。
【０５６７】
図１３７は、本発明の第１８の手段の基本的な構成の一例を示すブロック図である。図１３７（ａ）は、人間型のロボットを示すが、本発明は、人間型ロボットに限るものではなく、どのようなタイプのロボットに適用しても良い。
【０５６８】
この例では、通信システム３７ｋを介して、ロボット（ａ）側と固定制御部（ｂ），（ｃ）側に分けた構成としている。特に、仮想ダイナミックモデルによるリアルタイム制御を行う制御システム３７ｗの部分を（ｃ）と置いたが、（ｂ）と（ｃ）は固定制御部であり、１台の計算機システムとしても良い。音声解析システム３７ｎ、画像解析システム３７ｏ、行動指令分析システム３７ｕなどのブロックは、ソフトウエアのプログラムのブロックを示しているが、機能ブロック、すなわち、プログラムはいろいろな構成にできるので、必ずしもこの例とおりである必要はない。
【０５６９】
この中の画像解析システム３７ｏは、先に説明した視覚情報制御装置１００に相当する機能をこのシステムの中にプログラムで組み込んだものに相当する。勿論、制御部（ｂ），（ｃ）の全体をロボット（ａ）に搭載する場合には、これらのプログラムもＬＳＩ化して高速化と小型軽量化を図る。
【０５７０】
通信システム３７ｋは、多くのセンサ信号、各アクチュエータへの制御指令信号の大容量の高速な無線通信システムであり、ロボット側にデータの送信と受信を行う移動局を搭載し、固定側制御部の計算機システムには、データの入出力を行う固定局を設ける。ロボットの頭部には、小型軽量のステレオセンサヘッド３７ｃを有している。また、ロボットの動力源３７ｂは、バッテリーで外部からの充電システムを有している。また、ロボットの手３７ｊは、人間と同じ５本指であるが、通常のほとんどの作業では、５本の指全部を繊細に動かす必要がないので、そのうち３本（親指、人差し指、中指）は、繊細な制御ができる指にして機構と制御系の簡略化を図っても良い。ロボットの首、胴体、腕、足の各関節には、サーボモータがあり、関節角度の指令信号を入力するとその関節角度にサーボ制御できるようになっている。目標角度の更新周期は、１０ｍｓｅｃ程度を目安として、サーボ制御の部分で２ｍｓｅｃ以下に滑らかな目標値に補間しながら制御することでサーボ制御の安定化を図る。また、ロボットには、各関節角度をサーボモータのエンコーダより得る他に各部位に働く外力に対する反力を各部位の力センサ３７ｇ、また、胴体あるいは各部位の加速度を検出する各加速度センサ３７ｉ、また、姿勢（傾き）を検出するセンサ３７ｈ、必要に応じてジャイロセンサを搭載しても良い。力センサ３７ｇの信号も取り込むようにするので、ロボット本体に外乱としての力が作用した場合には、その状態も取り込むことができるようにする。また、各部位の診断センサ３７ｅを設けて、各センサ、各モータ等のアクチュエータが正常に機能していることを常にチェックできるようにする。
【０５７１】
自己診断システム３７ｒは、それらの診断センサの信号を総合的に判断してロボットの異常な部分とその程度を判断して、必要であれば音声出力システム３７ｑに出力して異常であることを外部に知らせるようにする。
【０５７２】
また、行動計画システム３７ｖは、現在のロボットの異常個所を考慮して目的遂行のための最適な行動ステップを計画するようにする。例えば、右腕が故障している場合には、左腕のみで作業を行う作業計画を立てるようにする。
【０５７３】
また、眼球視点制御システム３７ｐは、眼球レンズ系ドライバ３７ｄでステレオセンサヘッドの眼球を駆動制御する。ステレオセンサヘッド３７ｃの２台のカメラは、ロボットの首を上下左右に動かすことで２台一緒に動くが、それぞれのカメラも人間の眼球と同じように上下左右に独立に動かせるようにする。ロボットの首を動かさなくても、眼球の移動でカメラの向きを変えられるようにする。このとき、それぞれのカメラの向きを決める上下左右の回転角度は、眼球のドライブモータのエンコーダなどの信号で検出できるようにして、画像解析システム３７ｏへ画像情報と一緒に入力するようにする。眼球制御としては、眼球の上下左右の動作の他にレンズ系を駆動してズーム、フォーカス、アイリスを制御するようにしても良い。この場合、少なくとも、ズーム動作状況の情報は、ズーム駆動系３７ｄより画像解析システム３７ｏへ入力するようにするのが良い。ステレオ計測の場合は、２台のカメラの位置と姿勢の関係は正確である必要があるので、眼球レンズ系ドライバにより駆動させたセンサ信号で、眼球のおおまかな現在位置は画像解析システム３７ｏへ入力されて既知の情報として使えるが、より精度良く２台のカメラの対応関係、すなわち、座標変換の計算式を精度良く求めるために、画像解析システム３７ｏは、実際線の安定な特徴点をそれまでに生成したＣＡＤデータの中より選び対応する３点あるいは８点を用いてより精度良くステレオ計測の２台のカメラの位置関係を眼球が動作するごとに求めるようにする。ズームを駆動制御する場合には、ズーム比についても精度良く校正するようにする。
【０５７４】
また、この例は、無線通信システム３７ｋを介しているが、搭載できるようになれば、ロボットに搭載しても良い。
【０５７５】
音響解析システム３７ｎは、命令を言葉で聞いて指令を認識して、その指令に対応するロボットの行動計画を行動指令分析システム３７ｕと行動計画システム３７ｖが生成するが、行動計画が作れなかった場合には、指令実行可否応答を音声出力システム３７ｑからロボットの口の位置に設けたスピーカより音声で出力する。音響解析システム３７ｎは、言語抽出機能の他に、音を聞いて、水の流れる音とか、金属音とか、何の音かを識別する機能をもたせて、画像解析システム３７ｏと連携しながら環境認識できるようにしても良いし、ロボットの左右の耳には、指向性マイクを取り付けて、ロボットの首の動作状況より音源の位置の方向を探索して、音源とロボットの位置関係を推定する自己位置同定機能や音源の方向へ移動するための情報を求める聴覚誘導機能をもたせても良い。また、ステレオセンサヘッド３７ｃからの画像データは、画像解析システム３７ｏで環境認識、自分の位置の認識を行い、それらのＣＡＤデータは、データベース３７ｔの中に記録して、随時更新するようにする。画像処理は、音響解析処理と連携しながら動作するようにして良い。
【０５７６】
また、ロボットからのセンサ信号、音声解析システム３７ｎが検出した情報、画像解析システム３７ｏが解析した情報は、全てデータベース３７ｔへ入力、リアルタイムで更新されるようにして、他のシステムもリアルタイムで最新の情報を参照できるようにするのが良い。
【０５７７】
行動指令分析システム３７ｕは、人間の言葉である言語指令をロボットの動作命令に対応付けて変換処理を実行する。言葉による指令は、「この箱を隣の部屋の机の隣まで持っていって。」という命令とすると、まず、「この箱」というのは、最初に命令を出すマスタ（人間）を認識している必要はあるが、音響解析システム３７ｎと画像解析システム３７ｏが連携しながら、マスタが「この」と言ったときにマスタの手が指し示した先にある物体（箱）を認識して、「この箱」＝３次元ＣＡＤデータの中の物体ＩＤ＝Ｃと解析する。この前には、あらかじめ環境の中より箱を一つの物体として認識している必要あるが、これは、あらかじめ箱の３ＤＣＡＤデータを生成登録しておき、３次元の探索指令で最初に生成された環境の中からマッチング度の高い候補として探索して環境から切り分けて物体ＩＤ＝Ｃとしておくか、マスタより「これ」と指定されたらば、その先の位置を中心にあらかじめ登録してある認識可能な物体ファイルとの参照マッチングを行い、その指示されたときに、物体ＩＤ＝Ｃと置き換えるようにしても良い。
【０５７８】
次ぎに、「隣の部屋」というのは、ＣＡＤデータの環境データの上で部屋の概念は認識されている必要があり、また、「隣の」という言葉も、「現在の場所の左右の並びで次にあるもの」という意味の形容詞であることを認識している必要がある。その上で、その言葉を聞けば、現在いる部屋がＲＯＯＭ１であるので、環境データ上、この隣にある部屋は、ＲＯＯＭ２しかなければ、その部屋を「隣の部屋」と認識するようにする。候補の部屋が複数ある場合には、音声出力システムを使用して、指令が特定できるまでマスタに確認するようにして良い。「机の隣」も同じようにＣＡＤデータ上の座標Ｇの位置であることを認識する。机もあらかじめ机のＩＤとして環境ＣＡＤデータから分離されていれば、同じように探索して座標を特定することができる。
【０５７９】
また、まずは、隣の部屋ＲＯＯＭ２まで移動した後に、机を探索して、見つけたときに環境から切り離して、机ＩＤ＝ＤＥＳＫと登録を行ってから行うようにしても良い。隣は机の隣で、箱の置けるスペースのある床面を第１候補場所を考えて、その位置座標を設定する。このようにすれば、現在位置Ｐから物体ＩＤ＝Ｃを持って、座標Ｇまで持っていく、というロボットで制御可能な命令に置き換えることができる。
【０５８０】
また、「持っていって。」という言葉は、ロボットの腕を動作させて対象物体を掴み、目的地まで移動して、対象物体を目的に置くという、一連の動作をすることの命令に相当するということはあらかじめ登録しておき、人間のことばからロボットの動作に直結する命令に変換可能なようにしておく必要はある。
【０５８１】
ここで、いろいろな、言葉と動作の対応付けは登録していて良いが、登録してない言葉は理解できないので、実行できませんと回答するようにしても良いし、言葉の意味をその時点で質問してロボットが学習できるようにしても良い。学習するということは、このときに、あらたな人間の言葉とロボットの動作命令を対応付けることである。学習の動作命令以外に物体の名前なども登録できるようにしても良い。形容詞は、言葉で学習させることは複雑な処理が必要になるので、できるだけ最初に定義しておくのが良い。そして、行動計画システム３７ｖへは、ロボットが実行可能な命令（人間の言葉ではない命令）、例えば、腕を動かして座標Ｂにある物体（ＩＤ＝Ｃ）を掴み、ロボット本体（Ｂｏｄｙ）は掴んだまま座標Ｇへ移動し、座標Ｇにある机ＩＤ＝ＤＥＳＫの隣にある床面に、物体ＩＤ＝Ｃを置く、という命令を出力する。
【０５８２】
行動計画システム３７ｖは、行動指令分析システム３７ｕから入力されるおおまかな指令をロボットの動作駆動系の構成、仕様、性能、及び現在のロボットの位置と姿勢情報と現在ロボットの居る場所の最新の環境条件のもとに、更にブレイクした行動ステップに分割して行動計画をたてる。具体的には、隣の部屋ＲＯＯＭへ移動するまでの移動計画ルートを生成して、途中にドアをあればそれを開け・閉めするステップを計画し、途中に堰などがあればそれを飛び越えるステップも計画する。これらは、地図データとして３次元のＣＡＤデータを参照しながら計画するようにする。
【０５８３】
姿勢と力の制御計画システム３７ｘは、行動計画システム３７ｖから入力される各ステップ毎に、姿勢と力の制御計画をたてて、具体的な各関節角度の指令データにまでブレイクする。その場合、良く使用する基本的な動作パターン（所定の単純な基本的なロボットの動きを時系列の各関節角度指令値で記述したデータ）を複数種類用意しておき、その複数用意された各種基本動作パターンから選択して組み合わせるようにして一連の動作指令信号の最初の計画案を作成するようにしても良い。そのブレイクした指令データが実行不可能なものの場合には、その結果が行動計画システム３７ｖへフィードバックされて、再度、行動計画をやり直す。
【０５８４】
ロボットとして実行可能（関節としては動作可能なレベルという判断）な動作指令である場合には、その結果が制御予測シミュレーション３７ｙに入力され、現在のロボットの環境データ、ロボットの姿勢データ、ロボットの位置データ、ロボットへの外乱として作用する外力や自重やロボット動作による反力に相当する各部の力センサのデータ、ロボットの動作データ（速度や加速度で各部位ごとのデータ）は、データベース３７のデータを使ってシミュレーションを行い、その結果が十分制御計画どおりである場合には、各関節角度を決定部３７ｚで決定して各関節のサーボ制御部３７ｆへ出力する。シミュレーションの結果が十分でない場合には、再度姿勢と力の制御計画をやり直し、場合によっては、行動計画システムからやり直してシミュレーションで計画どおりに動作できることが確認できてからロボットへ制御指令信号を出力する。
【０５８５】
最初はロボットの動作を定義した基本パターンから初めて、シミュレーション結果を参照しながら、そのパターンを複数用意した中の候補パターンの中より組み替えたり、基本パターンのデータを少しづつ修正するようにするので、むやみにデータを変更しても最適な解を見つけるのに時間がかかるので、あらかじめ、シミュレーション結果が収束するような修正規則（ルール）もその動作パターンごとに用意して組み込んでおくのが良い。シミュレーションは、ダイナミックシミュレーションで、例えば、３７ｙ（１），３７ｙ（２），３７ｙ（３）のように、荷物をもって堰を飛び越えるような場合の動的安定性、制御可能性を評価するようにする。勿論、飛んでいる途中でもロボットの首や眼球を動かして、着地地点周辺の３Ｄ計測を行い、常に最新のロボットの現在位置を計測するようにして良い。
【０５８６】
また、ロボットが、例えば、壁を押すような仕事をする場合には、姿勢と力の制御計画システム３７ｘは、壁にどのような力を与えるかの計画、例えば、横軸に時間をとって、縦軸に壁への押し付け力をとって、時間とともにどのように壁に力を与えるかを、その目的に対応させて具体的に計画する。そして、制御予測シミュレーションシステム３７ｙは、３次元ＣＡＤデータでロボットと壁の位置関係や壁の物理的な特性データ（硬さに相当するばね定数とか、その壁が抑えられて裏側の構造物の剛性データ、その壁は動くようなものか否か、動く場合にはどのような特性で動くのかなどのデータもあらかじめ環境データとして記録されていれば、その情報を参照して、姿勢と力の制御計画システム３７ｘが生成したロボットの関節角度指令に基づきロボットをシミュレーション動作させる。そして、計画した目標どおりに、時間に対する壁への押し付け力を目標どおりに与えられるかをシミュレーションで確認して、その結果に基づき、関節角度指令を十分計画どおりの力を壁に与えられない場合には、変更して再度シミュレーションを行い、より計画どおりの力を壁に与えることのできる関節角度指令信号を生成する。このときに、何かロボットに外力が発生した場合には、ロボットの力センサでロボットに作用する外力も検出されるので、その外力も作用している条件でシミュレーションすることにより、外乱に耐えて計画どおりの動作をさせるような動作指令信号を生成することができる。ここでの関節角度指令信号とは、行動計画システム３７ｖでブレイクした各ステップの行動を実行する一連の動作軌跡指令信号である。シミュレーションする単位は、特に制御がむずかしい部分や、実行間際の動作指令に相当する部分で、より細かく区分けした所定の時間から所定の時間までの関節動作角度指令軌跡とすることでも良い。また、実行直前の動作指令のシミュレーションを高速に実施しながら、少し先の動作シミュレーションを複数同時に実行できるようにしても良い。
【０５８７】
シミュレーション処理などは、無線通信を介してロボットの制御装置をロボットに搭載しないようにすれば、スーパーコンピュータなどで高速に実行させるようにすることができる。小型軽量で高速なコンピュータを用いてシミュレーションを実行するようにすれば、制御部（ｂ），（ｃ）をロボットに搭載するようにしても良い。どのような構成でも、このようにすれば、リアルタイムで環境の３次元ＣＡＤデータを生成して、リアルタイムでその中のロボットの位置と姿勢と動きの状態も検出した上で、動的に安定な制御するための適切な制御指令を実際の環境と同じ条件でシミュレーションを行い求めることができる。ロボットが飛び跳ねて空中を飛んでいる瞬間にも、どういう姿勢で、どういう外乱を受けながら、どういう速度、加速度で飛んでいるかがセンサで検出されているので、どのように腕を振ったり、胴体をひねればどのように空中でロボットの姿勢が変わるかも、事前に、シミュレーションで確認できるので、計画どおりの姿勢で安全に着地するための最もそのときの状態に適したロボットの空中での動作指令を出力することもでき、ロボットを飛んだり跳ねたりさせるダイナミックな制御動作も安定に制御することができるようになる。また、空中でロボットの胴体や腕や足をどのように動かせば、どのようにロボットの姿勢を空中で修正できるかという基本動作パターンもあらかじめ用意しておき、その中から選択できるようにしても良い。また、ロボットが堰を飛んで跨ぎ越すような動作を行っている途中に、足を堰に引っ掛けてしまったような場合にも、堰から足には外力が作用するので、その力は足の各アクチュエータのトルク（サーボモータの電流）とか、足の構造部材に取り付けた力センサによって、その大きさと方向が検出できるようにしておくことにより、その外力もシミュレーション結果へ反映することで、補正前の制御データでは転倒してしまうことが、シミュレーション結果で事前に分かるので、それを回避する動作パターンデータの修正を実際のロボットが転倒す前に行うことも可能となる。足を引っ掛けるとか、肩をどこかにぶつけるとかといった良く起こりうる外乱要因に対しては、あらかじめそのような状況が発生した場合に、外力の傾向からどのような外乱かを早期に認識できるように、また、どのような外乱かを認識することできたらば、そこから立ち直るための基本的な制御パターンをあらかじめデータベースに登録しておき、早い時間に立ち直るための動作データの修正処理が収束できるようにしても良い。また、外乱が大きい場合には、シミュレーションを行って所定の時間内、例えば、１０ｍｓｅｃ以内とかに満足できる動作指令信号が得られない場合には、その時点で最善と判断できる指令信号を出力するようにする。
【０５８８】
次の１０ｍｓｅｃ後に出力する時間までに再度シミュレーションを行うようにする。１０ｍｓｅｃというサイクル時間は、サーボ系が安定できる２ｍｓｅｃのサイクルに高速化できればそれに越したことはないが、目標指令値を１０ｍｓｅｃで出力するようにして、センサ入力は、２ｍｓｅｃの高速サイクルで取り込めるようにしてロボットの状態をより正確に詳細に捉えて、より適切な動作指令信号を生成できるようにしても良い。ロボット全体の姿勢制御の他に机の上で部品を組み立てたり分解する場合にも、視覚情報処理で部品と指の３次元ＣＡＤデータを生成、その位置と姿勢を探索しながら、また、指先に作用する反力を検出しながら、物体を所定の姿勢にハンドリングしたり、物体に所定の荷重を作用させるように、姿勢制御や力制御のシミュレーションを行いながら、腕と指先のロボットへの最適な制御信号を出力するようにする。
【０５８９】
また、ロボットが走ったり、飛んだりする場合には、ロボットの手の指の動きはロボットの姿勢制御への影響が小さいので、指のシミュレーションモデルは省略したモデルでシミュレーションを行い、また、一方、机の上の物体を持って、組み立てたり、分解する場合には、腕と指のシミュレーションの部分を高速に精度良くシミュレーションを行うようにして、その状況に応じて適切なシミュレーションモデルを切り替えて使用するようにすると良い。
【０５９０】
また、視覚情報処理装置で認識した物体を持った場合とか、指で掴んだ場合には、あらかじめ、物体ＩＤごとにシミュレーションへ組み込む場合のシミュレーションモデルの条件を用意しておき、その物体のモデルをシミュレーションの中に組み込むようにしても良い。物体の質量、自由度構成などは、あらかじめ物体ＩＤのデータとして用意しておき、ロボットのモデルとの結合場所の詳細な位置と結合条件（しっかり把持とか、軽く把持などの条件）は、物体を掴んだときの把持条件は視覚情報処理で認識した物体とロボットの手の位置関係より設定して、掴み方の結合条件は行動計画内容から設定するようにする。また、ロボットに作用する力の制御では、ロボットの安定性を十分確保しながら動作させるような場合には、ロボットの基本的な動きを制御する中で、ロボットの足に作用する反力を検出して、その反力が所定の計画どおりに変化するようにロボットの最適な姿勢制御をシミュレーションしながら決定するようにしても良い。
【０５９１】
また、この手段は、人間型ロボットへの適用だけではなく、鳥や魚のロボット、自動車や２輪車、飛行機などの制御へ適用しても良い。自動車であれば、自動車Ｂｏｄｙの速度、加速度の他、車輪のシャフトやホイールの回転数や反力を検出して、現在移動している環境とその中の自動車の位置と姿勢は視覚情報処理装置で検出して、目標とする自動車の移動軌跡と、障害物への衝突を避けながら、かつ車の安定度に相当する車輪の目標反力を計画どおりになるようにシミュレーションを行いながら制御するような自動車の制御装置として適用しても良い。飛行したり、浮遊するロボットなどでも、視覚情報処理装置によって環境と環境の中のロボットの位置と姿勢条件をリアルタイムで検出して、また、反力としては、Ｂｏｄｙに作用する流体の抵抗や翼やプロペラ、スクリューなどに作用する力でり、それらをリアルタイムで所定の計画どおりになるようにシミュレーションしながら制御すれば、ロボット自体の強度的、パワー的な限界も考慮した、安定で、最適な制御指令を出力することの制御装置を得ることができるようになる。
【０５９２】
また、視覚情報処理装置の中のデータベースあるいは別のデータベースでも良いが、状況を認識した結果の情報を現在の環境情報として登録しておき、現在の環境情報を参照するときに、そのデータベースが利用できるようにしても良い。例えば、別のロボットＡあるいは人間Ｂが物体Ｃを持っているという状況をロボットＡあるいは人間Ｂを認識特定し、物体Ｃを認識特定して、物体ＣがロボットＡあるいは人間Ｂが持っているという状況をその位置関係やロボットＡや人間Ｂの腕の部品を認識してそれと物体Ｃとの位置関係で持っていると認識（勿論、あらかじめ、「持っている」ということは手と物体が２箇所以上で接触していて、それらの接触位置は当該物体をそれらの点で支持した場合に安定に支えられる位置である場合というように定義されており、その状態を調べることで持っているか否かの判別ができるようにしておく。また、その定義のデータベースは認識可能な動作に対して全て用意しておくようにする。）した場合には、（１）何時（認識した時刻データ）、（２）どこで（認識したロボットＡあるいは人間Ｂの場所）、（３）どうであったかという状況（ロボットＡあるいは人間Ｂは物体Ｃを持っていた）というような内容を状況認識結果としてデータベースに登録しておけば、指令情報で、例えば、「赤い箱を持ったロボットＡのそばまで行くように。」と言われた場合には、当該データベースを探索して赤い箱（物体Ｃ）を持っているロボットＡのデータがあれば過去に赤い箱を持ったロボットＡを何時頃にどこで認識したかという状況がわかるので、まずは、その場所周辺でロボットＡを探索するように行動計画を立てるようなことも可能となる。データベースにない場合には、その指令を受けてから赤い箱を持ったロボットＡを探索するように行動計画を立てるが、探索した場合には、その状況をデータベースに登録しておくことにより、次回からは今回認識したときの状況データも参照しながら、行動計画を立てることもできるようになる。
【０５９３】
図１３８〜図１４８は、図１３７における（ａ）（ｂ）（ｃ）の主要回路部の基本的な処理フォローチャートを例示している。
【０５９４】
図１３８は、音響解析システムの基本的な処理フローチャートである。処理は、処理３７（ｆ１）ａで、ロボット本体（ａ）の左右のマイクからの音声データを読み込む。途切れることなく連続処理する場合は、内蔵メモリに音声データを所定時間格納しながら、先に格納してある音声データについて処理を行うようにする。
【０５９５】
次に、処理３７（ｆ１）ｂで、音声データに人の言葉が含まれている場合には人の言葉を音声信号のパターンマッチングなどにより抽出して単語に分解して、主語、述語にわけて、あらかじめ登録してある言葉（名詞、動詞、形容詞、副詞など）からロボットに対する命令を組み立てて、行動指令分析システムへ出力する。
【０５９６】
そして、処理３７（ｆ１）ｃで、音声データに鳥の鳴き声とか、水の音とか、金属をたたく音とか、あらかじめ登録してある特長ある音の信号が含まれている場合には、音声信号のパターンマッチングなどにより抽出して、音の聞こえてくる方向を左右のマイクの向きとマイクの指向性特性より求めて、認識した音の種類と音のデータと聞こえる方向を現在の位置と時刻データとともにデータベースの環境データの一部として記録更新するとともに音の聞こえてくる方向とその種類を画像解析システムへ出力する。人の声も記録する。現在位置は、データベースの中の自己位置データを参照してロボット本体の位置、ロボットの頭部の位置、向きの情報を取得する。また、音の方向、種類を識別するときには、画像解析システムから送られる現在撮影している方向あるいは周囲にある物体で認識できた物体の種類とその位置情報を利用して認識精度を高めるようにする。
【０５９７】
次に、処理３７（ｆ１）ｄで、行動計画システムから指令がある場合は、指定された音源の現在の方向と音の大きさと、過去のマイクの位置と向きで検出した同じ音源の方向と音の大きさから音源に対するロボット本体の位置を特定して、データベースの中の自己位置パラメータの音響解析システムで検出した情報として書き込み更新する。
【０５９８】
そして、処理３７（ｆ１）ｅで、行動計画システムから指令がある場合は、指定された音源の方向へロボット本体を誘導する場合のすすむべき方向をデータベースの中の検出パラメータの中に書き込む（更新する）。これらの処理を繰り返し実行するようにする。
【０５９９】
図１３９および図１４０は、画像解析システムの基本的な処理フローチャートを示している。処理３７（ｆ２）ａで、まず、ロボット本体（ａ）の左右のカメラ（眼球）からの画像データを読み込む。途切れることなく連続処理する場合は、内蔵メモリに画像データを所定時間格納しながら、先に格納してある画像データについて処理を行うようにする。
【０６００】
次に、処理３７（ｆ２）ｂで、左右の画像データから２枚の２次元の線画ＣＡＤデータを生成して、ステレオ計測による３Ｄ計測を行い３次元のＣＡＤデータを生成しながら、トラッキング処理を行い、トラッキングによる３D計測も行いながら、３次元のＣＡＤデータを更新しながら、あらかじめ登録してある各種物体のCADデータのマッチング処理によりマッチングした部分はその部分のCADデータを一つの物体の種類（物体ID）として認識して、３次元のＣＡＤデータを生成し、生成した３次元のCADデータ、２次元のCADデータ、画像データなどを生成時刻データとともにデータベースの環境データの一部として記録更新する。ロボット本体の腕や手や足、ロボットが把持している物体なども各部品ごとのCADデータをあらかじめ登録しておき、ひとつの物体IDとして認識して、その位置と姿勢情報も環境データに含めて記録更新する。また、現在位置は、データベースの中の自己位置データを参照してロボット本体の位置、ロボットの頭部位置、向きの情報を取得する。また、動作のより高速な頭部中のカメラ（眼球）の向きとズーム状態、焦点状態、アイリス状態の情報は眼球レンズ系ドライバより直接データを受け取り参照するようにする。また、画像のトラッキングが途切れて、現在位置を探索する場合には音響解析システムから送られる音源位置の方向等の情報の他、データベースに記録されている環境データ、過去の自己位置データ等の情報も利用してトラッキングが再開できるように現在位置の特定（同定）を行うようにする。
【０６０１】
次に、処理３７（ｆ２）ｃで、３D計測を行うときに得られるカメラの現在の位置と向き情報とカメラ（眼球）の向き情報より、頭部の位置と向きを求めて、データベースの検出パラメータの中のロボットの各関節角度情報を参照して、頭部の位置と向きからロボット本体のＢｏｄｙの現在の位置と方向と姿勢を求めて、データベースの中の自己位置データの一部の情報として、ロボット本体のＢｏｄｙの現在の位置と方向と姿勢情報を記録更新する。ロボット本体の腕や手や足や持っているものを物体IDとして既に３次元のCADデータとして認識されている場合には、現在のその位置と姿勢情報も参照してロボット本体のＢｏｄｙの現在の位置と方向と姿勢情報をより精度良くなるように補正するようにする。
【０６０２】
次に、処理３７（ｆ３）ａで、画像データに文字が含まれている場合には、文字のパターンマッチングなどにより抽出して単語に分解して、主語、述語にわけて、あらかじめ登録してある言葉（名詞、動詞、形容詞、副詞など）を文字の表示ある物体の種類（物体ＩＤ）とともに音響解析システムへ出力する。
【０６０３】
次に、処理３７（ｆ３）ｂで、行動計画システムから指令（視覚誘導の指令）がある場合は、指定されたロボット本体の部品（頭部のカメラ（眼球）の向き等も含む）の物体IDあるいはロボット本体が把持あるいは腕あるいは足あるいはBodyで保持している物体IDを、指定された方向あるいは指定された目標移動軌跡に沿って移動させる場合、その物体の誘導すべき方向、距離などの情報をデータベースの検出パラメータの中に書き込む（更新する）。誘導すべき情報は、ロボット本体の各部の部品の動作制御すべき、方向、大きさの情報にして書き込むようにしても良い。
【０６０４】
次に、処理３７（ｆ３）ｃで、行動計画システムからの視覚誘導の指令を実行するために、あるいは、行動計画システムから環境ＣＡＤデータの生成方向の指定がありその指令を実行するために必要な頭部の位置と向きを、頭部のカメラの現在の位置と向きと、ＣＡＤデータを生成したい位置と方向から求めて、データベースの検出パラメータの中に書き込む（更新する）。必要な頭部の位置と向きの情報はロボット本体の各部の部品の動作制御すべき、方向、大きさの情報にして書き込むようにしても良い。
【０６０５】
次に、処理３７（ｆ３）ｄで、行動計画システムからの視覚誘導の指令を実行するために、あるいは、行動計画システムから環境ＣＡＤデータの生成方向の指定がありその指令を実行するために必要なカメラ（眼球）の向きを、カメラの現在の位置と向きと、ＣＡＤデータを生成したい位置と方向から求めて、眼球視点制御システムへ動作指令信号を出力する。また、対象物体の色境界線分をより抽出し易くするためのカメラのズーム状態、焦点状態、アイリス状態を色境界線分の抽出状況より求めて、眼球視点制御システムへ動作指令信号として出力する。このような処理を繰り返し実行するように処理する。
【０６０６】
図１４１は、眼球視点制御システムの基本的な処理フローチャートを示している。まず、処理３７（ｆ４）ａで、画像解析システムから指令がある場合は、その指令に基づきカメラ（眼球）の方向、ズーム状態、焦点状態、アイリス状態の動作指令信号を眼球レンズ系ドライバへ出力する。眼球レンズ系ドライバは、ロボットの左右のカメラの向きとレンズ系を指令信号に基づき駆動制御して、カメラの向きとレンズ系の現在位置状態をカメラのセンサ情報として取り込みフィードバック制御を行うとともに、画像解析システムへ直接現在の状態として出力する。
【０６０７】
次に、判別処理３７（ｆ４）ｂで、画像解析システムからカメラ（眼球）の向き、或いはカメラのズーム制御の指令があるかどうか判別して、Ｙｅｓの場合には処理３７（ｆ４）ａへ戻り，繰り返し実行するようにする。Ｎｏの場合は，処理３７（ｆ４）ｃへ進む。
【０６０８】
処理３７（ｆ４）ｃで、行動計画システムから指令がある場合は、その指令に基づきカメラ（眼球）の方向、カメラのズーム制御の指令を眼球レンズ系ドライバへ出力する。
【０６０９】
処理３７（ｆ４）ｄで、行動計画システムから指令に基づき眼球レンズ系ドライバへ出力した情報を画像解析システムへ出力する。画像解析システムは、この情報をデータベースの検出パラメータへ記録更新ずるようにする。このようにして繰り返し処理するようにする。
【０６１０】
図１４２は、音声出力システムの基本的な処理フローチャートを示している。処理は、処理３７（ｆ５）ａで、行動計画システムから指令がある場合は、指令に付属するあらかじめ登録してある言葉（名詞、動詞、形容詞、副詞など）で構成されている文章を受け取り、ロボットのスピーカへその言葉に対応する音声データとして出力する。行動計画システムからの言葉は、指令された命令は実行できない旨とその理由や行動計画を実行するために周囲に協力を得る必要がある場合の呼びかけなどを出力するようにする。言葉に対応する音声データの種類は、音響解析システムで有している言葉の種類と基本的には同じとする。
【０６１１】
そして、処理３７（ｆ５）ｂで、自己診断システムから指令がある場合は、自己診断システムから出力された異常の内容に対応する音声データをロボットのスピーカへ出力する。これらの処理を繰り返し実行する処理機能とする。
【０６１２】
図１４３は、自己診断システムの基本的な処理フローチャートを示している。処理は、処理３７（ｆ６）ａで、ロボットの各部の自己診断用センサ（各アクチュエータおよびそのドライバの温度センサ、電流センサなど）の情報を取り込む。
【０６１３】
処理３７（ｆ６）ｂで、ロボットの各部の自己診断用センサ（温度センサ、電流センサなど）からの検出信号より、各部の正常、異常を閾値以上か、閾値以下かから判別する。異常と判別する条件は、あらかじめ閾値を設定しておくようにする。
【０６１４】
次に、処理３７（ｆ６）ｃで、判別の結果、行動計画システムへ知らせるべき重要な異常が発生した場合には、行動計画システムへその結果を出力する。行動計画システムへ知らせるべき重要な異常の種類とそのレベルは、あらかじめ設定しておくようにする。
【０６１５】
次に、処理３７（ｆ６）ｄで、判別の結果、音声で周囲へ知らせるべき重要な異常が発生した場合には、音声出力システムへその結果を出力する。周囲へ知らせるべき重要な異常の種類とそのレベルは、あらかじめ設定しておくようにする。
【０６１６】
次に、処理３７（ｆ６）ｅで、行動計画システムから指令がある場合は、その指令に基づき指定箇所の診断をより詳しく正確に行い、行動計画システムへその結果を出力する。これらの処理を繰り返し実行するようにする。
【０６１７】
図１４４は、行動指令分析システムの基本的な処理フローチャートを示している。処理は、処理３７（ｆ７）ａで音声解析システムから入力される人間の言葉による指令情報を言葉（名詞、動詞、形容詞、副詞など）で構成されている主語、述語として読み込む。
【０６１８】
次に、処理３７（ｆ７）ｂで、名詞はあらかじめ登録してある物体IDに置き換え、動詞と形容詞と副詞などもあらかじめ登録してある言葉IDに置き換え、人の言葉からロボットがあらかじめ登録されている認識可能な対応するIDに変換する。
【０６１９】
次に、処理３７（ｆ７）ｃで、主語と述語から、あらかじめ登録してある命令パターン（例えば、例（１）物体IDを持てとか、例（２）物体IDを副詞ID（ゆっくりとか早くに相当するID）で、副詞ID（場所を表す物体IDの上へ、あるいは下）へ、動詞ID（移動）せよとか、例（３）物体ID（右手）を副詞ID（上、あるいは下）へ、動詞ID（上げよ）など）に対応させて、ロボットが実行可能な命令に置き換え、行動計画システムへ出力する。登録パターンに当てはまらない指令情報の場合は、「命令が理解できません。別の言葉で指令してください。」と行動計画システム経由で音声出力システムへ出力するようにする。これらの処理を繰り返し実行するようにする。
【０６２０】
図１４５は、行動計画システムの基本的な処理フローチャートを示している。処理は、処理３７（ｆ８）ａで、行動指令分析システムから、あらかじめ登録してある命令パターン（例えば、例としては、（１）物体IDを持てとか、例（２）物体IDを副詞ID（ゆっくりとか早くに相当するID）で、副詞ID（場所を表す物体IDの上へ、あるいは下）へ、動詞ID（移動）せよとか、例（３）物体ID（右手）を副詞ID（上、あるいは下）へ、動詞ID（上げよ）など）に基づく指令情報を読み込む。
【０６２１】
次に、処理３７（ｆ８）ｂで、名詞はあらかじめ登録してある物体IDに置き換え、動詞と形容詞と副詞などもあらかじめ登録してある言葉IDに置き換え、人の言葉からロボットがあらかじめ登録されている認識可能な対応するIDに変換する。
【０６２２】
次に、処理３７（ｆ８）ｃで、指令情報を実行するためにあらかじめ用意しておくルールに基づき移動速度（速く、ゆっくりは実際の移動速度へ）、移動量、移動座標、移動ルートなどを具体化する。具体化するに当たっては、データベースの中の環境データ、自己位置データで現在ロボットのいる場所の環境やロボットの姿勢や動作状態などを参照してルールに従った適切な数値で具体化する。
【０６２３】
次に、処理３７（ｆ８）ｄで、具体化された指令情報をあらかじめ用意されているロボットの最小動作単位（行動ステップ）に分割して、行動ステップごとの動作条件を具体的に設定して、１ステップづつその指令を順番に姿勢＆力制御計画へ出力する。姿勢＆力制御計画からNG信号がある場合は、当該計画の見直しを行い再出力する。行動ステップの例は、右手で物体IDを強さAでつかむ、左手で物体IDを強さAでつかむ、つかみながら腕をAからBへ速度Cで動かす、ロボットの向きをＡからBへ速度Cで変える、座標AからBまで速度Cで移動する、物体を持ちながら座標AからBまで速度Cで移動する、物体Aの上に速度Bで右足を移動して乗せる、階段ID＝Aの位置Bから位置Cまで速度Dで上る、ロボットの姿勢をAからBへ速度Cで変える、物体Aを速度Bでまたぎ座標Cへ姿勢Dで移動する、壁Aを力Bで押す、等などである。また、具体化するに当たっては、データベースの中の環境データ、自己位置データで現在ロボットのいる場所の環境やロボットの姿勢や動作状態などを参照してルールに従った適切な数値で具体化する。
【０６２４】
次に、処理３７（ｆ８）ｅで、指令情報が実行できなくなった場合や行動計画を実行するために周囲に協力を得る必要がある場合は、発生する言葉による文章を生成して音声出力システムへ出力する。音響解析システム、画像解析システム、眼球視点制御システムへ計画を実行するために必要な要求がある場合は、その指令信号を出力する。これらの処理を繰り返し実行するようにする。
【０６２５】
図１４６は、姿勢＆力制御計画の基本的な処理フローチャートを示している。処理は、処理３７（ｆ９）ａで行動計画システムから、ロボットの最小動作単位である行動ステップを具体的な速度、移動量などの動作条件とともに読み込む。行動ステップの例は、右手で物体IDを強さAでつかむ、左手で物体IDを強さAでつかむ、つかみながら腕をAからBへ速度Cで動かす、ロボットの向きをＡからBへ速度Cで変える、座標AからBまで速度Cで移動する、物体を持ちながら座標AからBまで速度Cで移動する、物体Aの上に速度Bで右足を移動して乗せる、階段ID＝Aの位置Bから位置Cまで速度Dで上る、ロボットの姿勢をAからBへ速度Cで変える、物体Aを速度Bでまたぎ座標Cへ姿勢Dで移動する、壁Aを力Bで押す、等などである。
【０６２６】
次に、処理３７（ｆ９）ｂで、データベースの中の環境データ、自己位置データの現在ロボットのいる場所の環境やロボットの姿勢や動作状態などを参照して、現在のロボットの姿勢から行動ステップを実行するための、ロボットの各関節の動作指令パターン（各関節の時系列の角度指令値（θｒｉ（ｔ）ｔ＝０〜ｎ）を生成する。制御予測シミュレーションからNG信号がある場合は、当該動作指令パターンの見直しを行い再出力する。行動計画システムからの指令内容が変わらない場合もデータベースの中の環境データ、自己位置データの現在ロボットのいる場所の環境やロボットの姿勢や動作状態などは逐次更新されるので、常に現在の位置からの最新の各関節の動作指令パターンを生成して出力する。動作指令パターンを生成する場合、あらかじめルールを登録しておき、そのルール（初期の生成ルールから制御結果のデータベースの更新結果を参照して改良するルールを含む）に従って生成する。歩く動作やまたぐ動作や階段を昇降する基本動作パターンが歩幅や階段のステップ仕様をパラメータにデータや生成プログラムが用意されている場合は、それを使用して初期の位置、姿勢と終了時の位置、姿勢が繋がるように補正して動作指令パターンを生成する。手先や足先に現在位置から目標位置まで途中の経由ポイントを指定して動作パターンを生成するのは、一般産業用ロボットのティーチング処理から動作指令信号を生成するプログラムを用意しておき、それを使用して動作指令パターンを生成する。また、力（反力）を所定の値に制御するための動作指令パターンを生成する場合には、データベースのロボットで押す相手の物体の固さや弾性特性を参照しながら、ロボットの接触ポイントの反力が生じる接触ポイントの押す物体のない場合の移動量を動作させるための動作指令パターンを生成する。また、ＮＧ見直しを行う場合は、フィードバックされる参照データも参照してあらかじめ用意された所定のルールに従って見直すようにする。
【０６２７】
次に、処理３７（ｆ９）ｃで、行動ステップが実行できなくなった場合は、その理由情報とともに行動計画システムへＮＧ信号とともに出力する。これらの処理を繰り返し実行するようにする。
【０６２８】
図１４７は、制御予測シミュレーションの基本的な処理フローチャートを示している。処理は、処理３７（ｆ１０）ａで、データベースの自己位置データよりロボットの現在位置、姿勢、その他の条件を読み込みシミュレーションモデルの初期条件を設定する。
【０６２９】
次に、処理３７（ｆ１０）ｂでデータベースの環境データより３次元のＣＡＤデータを読み込みシミュレーションモデルに環境条件を設定する。
【０６３０】
次に、処理３７（ｆ１０）ｃで、姿勢＆力制御計画より、ロボットの各関節の動作指令パターン（各関節の時系列の角度指令値（θｒｉ（ｔ）ｔ＝０〜ｎ）を読む込む。ロボットの状況、環境の状況に応じて変更ある場合があるので、毎回最新の動作指令パターンを読み込むようにする。
【０６３１】
次に、処理３７（ｆ１０）ｄで、ロボットの各関節の動作指令パターンの各関節の時系列の角度指令値θｒｉ（ｔ）ｔ＝０とシミュレーションモデルの初期姿勢が合っていることを確認し、許容範囲内の場合は、シミュレーションモデルの初期条件を合わせる。許容できない場合は、姿勢＆力制御計画へＮＧ信号と初期姿勢不一致のエラーコードとともに返信する。
【０６３２】
次に、処理３７（ｆ１０）ｅで、ロボットのシミュレーションモデルへロボットの各関節の動作指令パターンとして各関節の時系列の角度指令値（θｒｉ（ｔ）ｔ＝０〜ｎ）を入力して、ダイナミックなシミュレーションを実行する。シミュレーション結果は、途中のロボットの各部品の動作軌跡を記録してシミュレーション評価時に参照できるようにする。行動ステップが長いため、途中で当面のシミュレーションの評価（ダイナミックな安定性や安全性）が十分可能な動作シミュレーションが行われる場合には、ｔ＝０〜ｎの最後まで行わないで中断して良い。
【０６３３】
次に、処理３７（ｆ１０）ｆで、シミュレーション結果を評価（ダイナミックな安定性や安全性や目的の達成度を評価）して、行動ステップの目的を所定のレベル以上で達成できない場合は、姿勢＆力制御計画へＮＧ信号と補足情報を返信する。評価結果がＯＫの場合は、各関節角度θｒｉの決定回路へＯＫを出力する。これらの処理を繰り返し実行するようにする。
【０６３４】
図１４８は、各間接角度の決定の基本的な処理フローチャートを示している。処理は、処理３７（ｆ１１）ａで、制御予測シミュレーションから評価結果ＯＫの指令がある場合には、ロボットの各関節の動作指令パターン（各関節の時系列の角度指令値（θｒｉ（ｔ）ｔ＝０〜ｎ）の各関節の次の角度指令値θｒｉ（ｔ）のｔ＝１のデータを読み込み、各関節軸のサーボ制御の回路へ出力する。各関節軸のサーボ制御の回路は、各角度指令値に基づきモータを駆動制御する。モータからはエンコーダなどのモータの現在位置情報を入力してフィードバック制御に利用するとともにデータベースの検出パラメータに各関節の現在角度情報、動作速度情報などを記録更新する。この処理を繰り返し実行するようにする。
【０６３５】
以上に述べてきた基本的な処理フローで、実際に人の命令に従って自律的に作業を実施できるロボットが実現可能となる。これはあくまでも一例を示しているので、各機能ブロックを実現するブロックの分担の仕方や機能の詳細な内容は、いろいろなバリエーションが考えられるので、目的とするロボットの機能、性能に応じて最も合理的な構成とすれば良い。また、この例は人間型のロボットを例にしているが、馬や牛、自動車や飛行機や、番犬などにも人の言葉での命令を理解できるようにして作業を自立的に実行できるようにしても良い。このようにして実現するロボットと人や動物との違いは、人や動物は作業中に自分自身に異常が生じた場合には、自己の安全を確保するために行動するようになるが、ロボットの場合は、ロボットが故障しても修理できるので、自己保護の優先順番を低く設定することでプログラムで、命令の実行を、あるいは周囲に対する安全確保を最優先にして、行動計画を実行させることができるようになる。
【０６３６】
以上のように、本発明によれば、アズビルト３Ｄ−ＣＡＤデータをリアルタイムで自動生成可能とし、また、ＣＡＤデータの探索機能と組み合わせて、ロボット等の各種自動機械の視覚誘導制御装置として、また、ナビゲーションシステム、移動検査装置、監視サービスシステムなどとして適用可能な視覚情報処理装置及びその応用システムを得ることができる。
【図面の簡単な説明】
【０６３７】
【図１】本発明の視覚情報処理装置における基本構成を示すブロック図である。
【図２】本発明の視覚情報処理装置における別の基本構成を示すブロック図である。
【図３】本発明を実現する画像情報処理装置の処理の基本的な流れを示すフローチャートである。
【図４】図３に示した処理（１）の内容を例示する図面である。
【図５】図３に示した処理（２）の内容を例示する図面である。
【図６】図３に示した処理（３）の内容を例示する図面である。
【図７】図３に示した処理（４）の内容を例示する図面である。
【図８】図３に示した処理（５）の内容を例示する図面である。
【図９】ＣＡＤデータとして生成される浮遊線分の活用の概念を示す図である。
【図１０】円筒や球体のＣＡＤデータとして生成される浮遊線分の活用の概念を示す図である。
【図１１】特殊曲面のＣＡＤデータとしての定義の一例を示す図である。
【図１２】本発明のＣＡＤデータを更新する場合の実施の形態を示す概念図である。
【図１３】本発明の第２の手段の実施の形態を示す概念図である。
【図１４】本発明の色情報を用いて輪郭を抽出する概念図である。
【図１５】本発明の第１０の手段の実施の形態を示すブロック図である。
【図１６】本発明の第１０の手段の他の実施の形態を示すブロック図である。
【図１７】本発明の第１０の手段の更に他の実施の形態を示すブロック図である。
【図１８】本発明の第１０の手段の更に他の実施の形態を示すブロック図である。
【図１９】本発明の第１０の手段〜第１１の手段をロボット制御専用の視覚情報処理装置として実施する場合の視覚情報処理装置の処理の実施の形態を示すフローチャートである。
【図２０】本発明の第１１の手段の実施の形態を説明する概念図である。
【図２１】本発明の第１１の手段の実施の形態を説明する概念図である。
【図２２】本発明の第１１の手段の実施の形態を説明する概念図である。
【図２３】本発明の第１１の手段の実施の形態を説明する概念図である。
【図２４】本発明の第１１の手段の実施の形態を説明する概念図である。
【図２５】本発明の第１１の手段の実施の形態を説明する概念図である。
【図２６】本発明の第１２の手段の実施の形態を説明する概念図である。
【図２７】本発明の第１１の手段の実施の形態を説明する概念図である。
【図２８】本発明の第１１の手段の実施の形態である視覚情報処理装置のブロック図である。
【図２９】本発明の第１１の手段の実施の形態を説明する概念図である。
【図３０】本発明の第１１の手段の他の実施の形態を説明する概念図である。
【図３１】本発明の第１の手段〜第３の手段および第１０の手段、第１１の手段の実施の形態である視覚情報処理装置のブロック図である。
【図３２】図３１に示した実施の形態における視覚誘導チップが実行するメイン処理のフローチャートである。
【図３３】図３１に示した実施の形態における視覚誘導チップが実行するメイン処理のフローチャートである。
【図３４】図３３に示した処理（２）における３Ｄ座標計算，ＣＡＤデータ生成処理の詳細なフローチャートである。
【図３５】図３４に示した処理（４）と処理（９）の３Ｄ−ＣＡＤ生成処理における追加生成処理の詳細なフローチャートである。
【図３６】図３４に示した処理（４）と処理（９）の３Ｄ−ＣＡＤ生成処理における点データ更新処理の詳細なフローチャートである。
【図３７】図３４に示した処理（４）と処理（９）の３Ｄ−ＣＡＤ生成処理における線分データの更新および追加処理の詳細なフローチャートである。
【図３８】図３４に示した処理（４）と処理（９）の３Ｄ−ＣＡＤ生成処理における面データの更新および追加処理の詳細なフローチャートである。
【図３９】図３５〜図３８に示した３Ｄ−ＣＡＤデータ生成処理におけるデータ更新の概念図である。
【図４０】図３５〜図３８に示した３Ｄ−ＣＡＤデータ生成処理における新規なデータの生成と更新の概念を一般的な図形の生成と更新の概念に当てはめて描いた図である。
【図４１】２台のカメラによるステレオ計測による基本的な実施例の概念を示す図面である。
【図４２】特徴点の対応点が存在する線分を求める方法を説明する図面である。
【図４３】ステレオ計測の処理の方法の一例を示す図面である。
【図４４】ステレオ計測の処理の方法の一例で、Ｐ４周辺を拡大した図面である。
【図４５】撮影距離と分解能に関わる誤差Ｐ４（ｒ１）と輪郭線ゆえの誤差半径Ｐ４（ｒ２）の概念を示す図面である。
【図４６】撮影距離と撮像装置の分解能、撮像装置の撮影関係（間隔）に関わる誤差球Ｐ４（ｒ２）の概念を示す図面である。
【図４７】視点Ｏ１，Ｏ２の２台の撮像装置からステレオカメラで最初に生成されるポイントＰ４の誤差形状Ｐ４（δ）を示している。
【図４８】移動した視点Ｏ１，Ｏ２の２台の撮像装置からステレオカメラで最初に生成されるポイントＰ４の誤差形状Ｐ４（δ）を示している。
【図４９】誤差半径δＲの球がＰＣ点からＰ４を結ぶ方向にＰ４を中心にδＬの長さの間にあるように近似して誤差を表現する概念を示す図面である。
【図５０】Ｏ１座標系におけるＯ２座標系の位置と姿勢を決定するトラッキングの手法について説明する図面である。
【図５１】単眼カメラシステムの場合で最初に３点の既知のポイントが必要にとなる場合の手法の一例を説明する図面である。
【図５２】ステレオ計測の場合で２次元画像上で色情報、その他のルールを使って対応する特徴点候補を絞り込む方法について説明する図面である。
【図５３】２次元画像上で色境界線分の色情報などを用いてトラッキングを行う場合の対応点候補の絞込みの方法の一例を説明する図面である。
【図５４】２次元画像上で色境界線分の色情報などを用いてトラッキングを行う場合の対応点候補の絞込みの方法の一例を説明する図面である。
【図５５】ある画像の色境界線分を抽出した結果得られた線分の一部分を示している。
【図５６】色の面の抽出方法の例をいくつか説明する図面である。
【図５７】同じ模様が一つの画像イメージの中に複数存在する場合の対応面、対応線分、対応点の絞込みの方法の一例を説明する図面である。
【図５８】撮像装置から入力された画像情報を２次元のＣＡＤデータに変換したイメージを示す図面である。
【図５９】マッチング方法の概念を説明する図面である。
【図６０】マッチング方法の概念を説明する図面である。
【図６１】マッチング方法の概念を説明する図面である。
【図６２】マッチング方法の概念を説明する図面である。
【図６３】マッチング方法における判別ロジックの例を説明する図面である。
【図６４】マッチング処理を３次元に拡張した場合の例を示す図面である。
【図６５】実際に対応する特徴点のデータが存在しない場合の絞り込みの例を説明する図面である。
【図６６】ベクトルマッチング手法を探索機能に用いる場合の例を示す図面である。
【図６７】トラッキングによる座標変換時の誤差の考え方について説明する図面である。
【図６８】本発明の第７の手段の基本的な一例を示す図面である。
【図６９】本発明の第７の手段の基本的な一例を示すものであり、変曲点から色境界線分の作成方法の一例を示す図面である。
【図７０】図６８の手法を適用して特徴点と線分を抽出した場合と他の手法の場合を比較して説明する図面である。
【図７１】本発明の第８の手段の基本的な一例を示す図面である。
【図７２】本発明の第９の手段の基本的な一例を示す図面である。
【図７３】本発明の視覚情報処理装置の基本的なアプリケーションの構成と視覚情報処理装置に対する基本コマンドと拡張コマンドを示す図面である。
【図７４】図７３における視覚誘導チップの機能ブロック図である。
【図７５】図７３における視覚誘導チップの機能ブロック図である。
【図７６】図７３における視覚誘導チップの機能ブロック図である。
【図７７】図７３における視覚誘導チップの機能ブロック図である。
【図７８】図７３における視覚誘導チップの機能ブロック図である。
【図７９】図７３における視覚誘導チップの機能ブロック図である。
【図８０】図７３における視覚誘導チップの機能ブロック図である。
【図８１】図７３における視覚誘導チップの機能ブロック図である。
【図８２】図７３における視覚誘導チップの機能ブロック図である。
【図８３】図７３における視覚誘導チップの機能ブロック図である。
【図８４】図７３における視覚誘導チップの機能ブロック図である。
【図８５】図７３における視覚誘導チップの機能ブロック図である。
【図８６】図７３における視覚誘導チップの機能ブロック図である。
【図８７】図７３における視覚誘導チップの機能ブロック図である。
【図８８】図７３における視覚誘導チップの機能ブロック図である。
【図８９】図７３における視覚誘導チップの機能ブロック図である。
【図９０】図７３における視覚誘導チップの機能ブロック図である。
【図９１】図７３における視覚誘導チップの機能ブロック図である。
【図９２】図７３における視覚誘導チップの動作タイミングチャートである。
【図９３】図７３における視覚誘導チップの動作タイミングチャートである。
【図９４】図７３における視覚誘導チップの動作タイミングチャートである。
【図９５】図７３における視覚誘導チップの動作タイミングチャートである。
【図９６】図７３における視覚誘導チップの動作タイミングチャートである。
【図９７】図７３における視覚誘導チップの動作タイミングチャートである。
【図９８】図７３における視覚誘導チップの動作タイミングチャートである。
【図９９】図７３における視覚誘導チップの動作タイミングチャートである。
【図１００】図７３における視覚誘導チップの機能ブロック図における基本的な処理フローチャートである。
【図１０１】図７３における視覚誘導チップの機能ブロック図における基本的な処理フローチャートである。
【図１０２】図７３における視覚誘導チップの機能ブロック図における基本的な処理フローチャートである。
【図１０３】図７３における視覚誘導チップの機能ブロック図における基本的な処理フローチャートである。
【図１０４】図７３における視覚誘導チップの機能ブロック図における基本的な処理フローチャートである。
【図１０５】図７３における視覚誘導チップの機能ブロック図における基本的な処理フローチャートである。
【図１０６】図７３における視覚誘導チップの機能ブロック図における基本的な処理フローチャートである。
【図１０７】図７３における視覚誘導チップの機能ブロック図における基本的な処理フローチャートである。
【図１０８】図７３における視覚誘導チップの機能ブロック図における基本的な処理フローチャートである。
【図１０９】図７３における視覚誘導チップの機能ブロック図における基本的な処理フローチャートである。
【図１１０】図７３における視覚誘導チップの機能ブロック図における基本的な処理フローチャートである。
【図１１１】図７３における視覚誘導チップの機能ブロック図における基本的な処理フローチャートである。
【図１１２】ＣＡＤデータの結合関係をデータで記述する場合の一例を示す図面である。
【図１１３】可動のある撮影対象の例として携帯電話機のようなものの例を示した図面である。
【図１１４】図１１３の代表的な形状を示す図面である。
【図１１５】移動している２つの物体の概念を示す図面である。
【図１１６】本発明の第１６および第１７の手段の基本的な例で、原子力発電プラントを例にした場合の各種検査装置に適用した場合の数例を示す図面である。
【図１１７】クローラ式ＶＴ検査装置を例にして、プール底面溶接線周辺部の自動生成されたアズビルトの３次元ＣＡＤデータの概念を示す図面である。
【図１１８】クローラ式ＶＴ検査装置の一例を示すシステム構成ブロック図である。
【図１１９】プールと溶接線をあらかじめＣＡＤデータとして登録しておいたＣＡＤデータと画像処理で生成したアズビルトの溶接線のＣＡＤデータを重ねて表示したときのイメージを示す図面である。
【図１２０】主制御ルーチンへ指示を入力する移動軌跡データファイルの一例を示す図面である。
【図１２１】ワールド座標系とＲＯＶ本体のロボット座標系の関係を示す図面である。
【図１２２】ＲＯＶなどのロボットの制御ロジックを登録しておくファイルの例を示す図面である。
【図１２３】ワールド座標系とＲＯＶ座標系の概念とプールなどの基本環境をあらかじめ登録しておくＣＡＤデータの概念を示す図面である。
【図１２４】基本環境データやＲＯＶ自体の形状データの定義ファイルの一例を示す図面である。
【図１２５】主制御ルーチンの基本的な処理のフローチャートである。
【図１２６】主制御ルーチンの基本的な処理のフローチャートである。
【図１２７】画像処理ルーチンの基本的な処理のフローチャートである。
【図１２８】画像処理ルーチンの基本的な処理のフローチャートである。
【図１２９】本発明の第２１〜第２４の手段の基本的な一例を示す監視サービス提供システムの概念図である。
【図１３０】図１２９の（ａ）の総合監視センターの具体的なハード構成の基本的な例を示すブロック図である。
【図１３１】ＰＣ端末で操作させる監視サービスの基本的なプログラムを例示するフローチャートである。
【図１３２】ＰＣ端末で操作させる監視サービスの基本的なプログラムを例示するフローチャートである。
【図１３３】ＰＣ端末で操作させる監視サービスの基本的なプログラムを例示するフローチャートである。
【図１３４】ＰＣ端末で操作させる監視サービスの基本的なプログラムを例示するフローチャートである。
【図１３５】監視サービスに適した端末の一例を説明する図面である。
【図１３６】図１３５の端末の機能ブロック図である。
【図１３７】本発明の第１８の手段の基本的な一例である人間型ロボットを示す機能ブロック図である。
【図１３８】図１３７に示した人間型ロボットの主要回路部が実行する処理のフローチャートである。
【図１３９】図１３７に示した人間型ロボットの主要回路部が実行する処理のフローチャートである。
【図１４０】図１３７に示した人間型ロボットの主要回路部が実行する処理のフローチャートである。
【図１４１】図１３７に示した人間型ロボットの主要回路部が実行する処理のフローチャートである。
【図１４２】図１３７に示した人間型ロボットの主要回路部が実行する処理のフローチャートである。
【図１４３】図１３７に示した人間型ロボットの主要回路部が実行する処理のフローチャートである。
【図１４４】図１３７に示した人間型ロボットの主要回路部が実行する処理のフローチャートである。
【図１４５】図１３７に示した人間型ロボットの主要回路部が実行する処理のフローチャートである。
【図１４６】図１３７に示した人間型ロボットの主要回路部が実行する処理のフローチャートである。
【図１４７】図１３７に示した人間型ロボットの主要回路部が実行する処理のフローチャートである。
【図１４８】図１３７に示した人間型ロボットの主要回路部が実行する処理のフローチャートである。
【符号の説明】
【０６３８】
１０、１０ａ、１０ｂ…撮像装置、Ｏ１、Ｏ２…撮像装置の視点、３０…加速度センサ、４０…ジャイロセンサ、１００…視覚情報処理装置（処理装置）、２００…記憶装置、３００…別のＣＰＵ等、４００…ドライバ、４０１…アクチュエータ、２１ｒ…原子炉、２１Ａ…水中ＲＯＶ、２１Ｂ…クローラ走行式ＶＴ装置、２１ａ…アーム機構、２１Ｃ…吊下式カメラ、２１ｅ…レーザなどのマーカ線、２３ｅ…主制御ルーチン、２３ｇ…画像処理ルーチン、Ｏｗ…ワールド座標系、Ｏｒ…ロボット座標系、３４ｂ…監視サービスシステムの端末、９０１…環境内の物体（撮影対象）、９０９…撮影対象としての溶接線、３４ｃ…監視サービスを受ける申込者の携帯電話、３４ｄ…不審者、３５ｂ…小型ＣＣＤ、３５ｍ…小型指向性マイク、３６ａ…センサデータ制御回路、３６ｂ…センサ信号処理ＬＳＩ、３６ｃ…マイコン、３６ｄ…画像データ記録装置、３６ｅ…無線通信装置、３７ｙ…制御予測シミュレーション部。
【図１】
2006003263.tif 000010
【図２】
2006003263.tif 000011
【図３】
2006003263.tif 000012
【図４】
2006003263.tif 000013
【図５】
2006003263.tif 000014
【図６】
2006003263.tif 000015
【図７】
2006003263.tif 000016
【図８】
2006003263.tif 000017
【図９】
2006003263.tif 000018
【図１０】
2006003263.tif 000019
【図１１】
2006003263.tif 000020
【図１２】
2006003263.tif 000021
【図１３】
2006003263.tif 000022
【図１４】
2006003263.tif 000023
【図１５】
2006003263.tif 000024
【図１６】
2006003263.tif 000025
【図１７】
2006003263.tif 000026
【図１８】
2006003263.tif 000027
【図１９】
2006003263.tif 000028
【図２０】
2006003263.tif 000029
【図２１】
2006003263.tif 000030
【図２２】
2006003263.tif 000031
【図２３】
2006003263.tif 000032
【図２４】
2006003263.tif 000033
【図２５】
2006003263.tif 000034
【図２６】
2006003263.tif 000035
【図２７】
2006003263.tif 000036
【図２８】
2006003263.tif 000037
【図２９】
2006003263.tif 000038
【図３０】
2006003263.tif 000039
【図３１】
2006003263.tif 000040
【図３２】
2006003263.tif 000041
【図３３】
2006003263.tif 000042
【図３４】
2006003263.tif 000043
【図３５】
2006003263.tif 000044
【図３６】
2006003263.tif 000045
【図３７】
2006003263.tif 000046
【図３８】
2006003263.tif 000047
【図３９】
2006003263.tif 000048
【図４０】
2006003263.tif 000049
【図４１】
2006003263.tif 000050
【図４２】
2006003263.tif 000051
【図４３】
2006003263.tif 000052
【図４４】
2006003263.tif 000053
【図４５】
2006003263.tif 000054
【図４６】
2006003263.tif 000055
【図４７】
2006003263.tif 000056
【図４８】
2006003263.tif 000057
【図４９】
2006003263.tif 000058
【図５０】
2006003263.tif 000059
【図５１】
2006003263.tif 000060
【図５２】
2006003263.tif 000061
【図５３】
2006003263.tif 000062
【図５４】
2006003263.tif 000063
【図５５】
2006003263.tif 000064
【図５６】
2006003263.tif 000065
【図５７】
2006003263.tif 000066
【図５８】
2006003263.tif 000067
【図５９】
2006003263.tif 000068
【図６０】
2006003263.tif 000069
【図６１】
2006003263.tif 000070
【図６２】
2006003263.tif 000071
【図６３】
2006003263.tif 000072
【図６４】
2006003263.tif 000073
【図６５】
2006003263.tif 000074
【図６６】
2006003263.tif 000075
【図６７】
2006003263.tif 000076
【図６８】
2006003263.tif 000077
【図６９】
2006003263.tif 000078
【図７０】
2006003263.tif 000079
【図７１】
2006003263.tif 000080
【図７２】
2006003263.tif 000081
【図７３】
2006003263.tif 000082
【図７４】
2006003263.tif 000083
【図７５】
2006003263.tif 000084
【図７６】
2006003263.tif 000085
【図７７】
2006003263.tif 000086
【図７８】
2006003263.tif 000087
【図７９】
2006003263.tif 000088
【図８０】
2006003263.tif 000089
【図８１】
2006003263.tif 000090
【図８２】
2006003263.tif 000091
【図８３】
2006003263.tif 000092
【図８４】
2006003263.tif 000093
【図８５】
2006003263.tif 000094
【図８６】
2006003263.tif 000095
【図８７】
2006003263.tif 000096
【図８８】
2006003263.tif 000097
【図８９】
2006003263.tif 000098
【図９０】
2006003263.tif 000099
【図９１】
2006003263.tif 000100
【図９２】
2006003263.tif 000101
【図９３】
2006003263.tif 000102
【図９４】
2006003263.tif 000103
【図９５】
2006003263.tif 000104
【図９６】
2006003263.tif 000105
【図９７】
2006003263.tif 000106
【図９８】
2006003263.tif 000107
【図９９】
2006003263.tif 000108
【図１００】
2006003263.tif 000109
【図１０１】
2006003263.tif 000110
【図１０２】
2006003263.tif 000111
【図１０３】
2006003263.tif 000112
【図１０４】
2006003263.tif 000113
【図１０５】
2006003263.tif 000114
【図１０６】
2006003263.tif 000115
【図１０７】
2006003263.tif 000116
【図１０８】
2006003263.tif 000117
【図１０９】
2006003263.tif 000118
【図１１０】
2006003263.tif 000119
【図１１１】
2006003263.tif 000120
【図１１２】
2006003263.tif 000121
【図１１３】
2006003263.tif 000122
【図１１４】
2006003263.tif 000123
【図１１５】
2006003263.tif 000124
【図１１６】
2006003263.tif 000125
【図１１７】
2006003263.tif 000126
【図１１８】
2006003263.tif 000127
【図１１９】
2006003263.tif 000128
【図１２０】
2006003263.tif 000129
【図１２１】
2006003263.tif 000130
【図１２２】
2006003263.tif 000131
【図１２３】
2006003263.tif 000132
【図１２４】
2006003263.tif 000133
【図１２５】
2006003263.tif 000134
【図１２６】
2006003263.tif 000135
【図１２７】
2006003263.tif 000136
【図１２８】
2006003263.tif 000137
【図１２９】
2006003263.tif 000138
【図１３０】
2006003263.tif 000139
【図１３１】
2006003263.tif 000140
【図１３２】
2006003263.tif 000141
【図１３３】
2006003263.tif 000142
【図１３４】
2006003263.tif 000143
【図１３５】
2006003263.tif 000144
【図１３６】
2006003263.tif 000145
【図１３７】
2006003263.tif 000146
【図１３８】
2006003263.tif 000147
【図１３９】
2006003263.tif 000148
【図１４０】
2006003263.tif 000149
【図１４１】
2006003263.tif 000150
【図１４２】
2006003263.tif 000151
【図１４３】
2006003263.tif 000152
【図１４４】
2006003263.tif 000153
【図１４５】
2006003263.tif 000154
【図１４６】
2006003263.tif 000155
【図１４７】
2006003263.tif 000156
【図１４８】
2006003263.tif 000157