(57)【要約】【課題】測定領域内に配置された複数の物体に関する３次元データの中から、検出対象物体に関する３次元データを短い処理時間で抽出する。【解決手段】３次元画像処理装置は、プログラム処理により、３次元形状測定装置２０Ａから供給された３次元データの中から検出対象物体に関する３次元データのみを抽出する。この場合、測定領域内で検出対象物体の含まれる可能性のある領域を単位ブロックずつに分割して、前記分割された領域内で所定数以上の３次元データを含む単位ブロックを抽出する。次に、探索ブロックを単位ブロックを単位として順次移動させながら、探索ブロックに含まれかつ前記抽出した単位ブロックの数または分布を調べることにより、検出対象物体を包含する可能性のある探索ブロックの位置を抽出する。そして、前記位置にある探索ブロック中の３次元データが検出対象物体の形状に合致するかを判定して３次元データを抽出する。【選択図】  図１
2004333371.tif 000002
【特許請求の範囲】
【請求項１】
測定領域内に配置された複数の物体の３次元形状を表す３次元データの中から、検出対象物体の３次元形状を表す３次元データを抽出する３次元データ抽出方法において、
前記測定領域内で少なくとも検出対象物体の含まれる可能性のある領域を単位ブロックずつに分割し、
前記分割された領域内で所定数以上の３次元データを含む単位ブロックを抽出し、
検出対象物体の含まれる可能性のある領域内で、検出対象物体を包含し得るとともに複数の単位ブロックを包含する探索ブロックを単位ブロックを単位として順次移動させ、前記各移動ごとに、前記探索ブロックに含まれかつ前記抽出した単位ブロックの数または分布を調べることにより、検出対象物体を包含する可能性のある探索ブロックの位置を検出し、かつ
前記検出した位置の探索ブロック内に含まれる３次元データの中から、検出対象物体の形状に合致する３次元データを抽出するようにしたことを特徴とする３次元データ抽出方法。
【請求項２】
さらに、検出対象物体の特徴を、入力装置を用いて入力可能とした請求項１に記載の３次元データ抽出方法。
【請求項３】
さらに、前記３次元探索ブロックの大きさを検出対象物体の大きさに応じて設定するようにした請求項１または２に記載の３次元データ抽出方法。
【請求項４】
測定領域内に配置された複数の物体の３次元形状を表す３次元データの中から、検出対象物体の３次元形状を表す３次元データを抽出する３次元データ抽出装置において、
前記測定領域内で少なくとも検出対象物体の含まれる可能性のある領域を単位ブロックずつに分割する単位ブロック分割手段と、
前記分割された領域内で所定数以上の３次元データを含む単位ブロックを抽出する単位ブロック抽出手段と、
検出対象物体の含まれる可能性のある領域内で、検出対象物体を包含し得るとともに複数の単位ブロックを包含する探索ブロックを単位ブロックを単位として順次移動させ、前記各移動ごとに、前記探索ブロックに含まれかつ前記抽出した単位ブロックの数または分布を調べることにより、検出対象物体を包含する可能性のある探索ブロックの位置を検出する探索ブロック位置検出手段と、
前記検出した位置の探索ブロック内に含まれる３次元データの中から、検出対象物体の形状に合致する３次元データを抽出する３次元データ抽出手段と
を備えたことを特徴とする３次元データ抽出装置。
【請求項５】
さらに、検出対象物体の特徴を入力するための入力装置を備えた請求項４に記載の３次元データ抽出装置。
【請求項６】
さらに、前記３次元探索ブロックの大きさを検出対象物体の大きさに応じて設定する探索ブロック設定手段を設けるようにした請求項４または５に記載の３次元データ抽出装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、測定領域内に配置された複数の物体の３次元形状を表す３次元データの中から、検出対象物体の３次元形状を表す３次元データを抽出する３次元データ抽出方法および３次元データ抽出装置に関する。
【０００２】
【従来の技術】
従来から、３次元形状測定装置を用いて測定した測定領域内に位置する複数の物体の３次元形状を表す３次元データの中から、検出対象物体の３次元形状を表す３次元データを抽出することは行われていた（特許文献１参照）。この場合、測定によって得られた全ての３次元データを物体ごとの３次元データに分け、その後、前記分けた各３次元データが物体の特徴に合致するかを判定するようにしている。
【０００３】
【特許文献１】
特開平７−２４４７１４号公報
【０００４】
【発明が解決しようとする課題】
しかし、上記従来の方法では、全ての３次元データを物体ごとに分けることも、分けた各３次元データが物体の特徴に合致しているかを判定することも、多量の３次元データを処理しなければならないので、多大な処理時間を要するという問題がある。
【０００５】
【発明の概略】
本発明は上記問題に対処するためになされたもので、その目的は、短い処理時間で、測定領域内に配置された複数の物体の３次元形状を表す３次元データの中から、検出対象物体の３次元形状を表す３次元データを抽出する３次元データ抽出方法および３次元データ抽出装置を提供することにある。
【０００６】
前記目的を達成するために、本発明の特徴は、測定領域内で少なくとも検出対象物体の含まれる可能性のある領域を単位ブロックずつに分割し、前記分割された領域内で所定数以上の３次元データを含む単位ブロックを抽出し、検出対象物体の含まれる可能性のある領域内で、検出対象物体を包含し得るとともに複数の単位ブロックを包含する探索ブロックを単位ブロックを単位として順次移動させ、各移動ごとに、探索ブロックに含まれかつ前記抽出した単位ブロックの数または分布を調べることにより、検出対象物体を包含する可能性のある探索ブロックの位置を検出し、かつ前記検出した位置の探索ブロック内に含まれる３次元データの中から、検出対象物体の形状に合致する３次元データを抽出するようにしたことにある。
【０００７】
この場合、検出対象物体を包含する探索ブロックの位置の検出においては、例えば、探索ブロックに含まれかつ抽出した単位ブロックの数が所定数以上であることを条件に、探索ブロックの位置を検出することができる。また、前記条件に代えまたは加えて、単位ブロックの分布に基づいて探索ブロックの位置を検出してもよい。例えば、検出対象物体が球体の場合には３次元形状測定装置の方向から平面的に見たときの単位ブロックの各列ごとの数が所定範囲内になっていることを条件に探索ブロックの位置を検出する。検出対象物体が球体以外の場合には、探索ブロックの中央部の平面内に抽出した単位ブロックが所定数以上直線的に連続し、または所定数以上楕円状に存在し、探索ブロックの周辺の各面において、抽出された単位ブロックが所定数以下であることを条件に、探索ブロック位置を抽出する。
【０００８】
また、検出対象物が球体以外で平板の表面に底面を合わせて置かれている場合には、単位ブロックを平板の上面を底面として単位ブロックを並べるとともに積み上げる。そして、検出対象物体が、立方体、直方体などの多面体や円柱であれば、高さ方向の各平面内において抽出された単位ブロックが所定数以上の直線状または円状に存在し、探索ブロックの上面において、抽出された単位ブロックの数が所定の範囲内にあることを条件に、探索ブロック位置を抽出する。検出対象物が、角錐や円錐であれば、高さ方向の各平面内において抽出された単位ブロックが上方向に向けて徐々に減少し、探索ブロックの上面において抽出された単位ブロックの数が所定数以下であることを条件に探索ブロック位置を抽出する。
【０００９】
上記のように構成した本発明においては、まず、測定領域内で少なくとも検出対象物体の含まれる可能性のある領域を単位ブロックずつに分割して、この分割された領域内で所定数以上の３次元データを含む単位ブロックを抽出する。この処理においては、単に３次元データの存在を確認するとともにその数を検出するだけでよいので、処理が簡単である。そして、次の段階では、検出対象物体の含まれる可能性のある領域内で探索ブロックを順次移動させながら、探索ブロックに含まれかつ前記抽出した単位ブロックの数または分布を調べることにより、検出対象物体を包含する可能性のある探索ブロックの位置を検出する。この処理では、前記抽出した単位ブロックの存在、およびその数または分布を調べるだけであるので、この処理も簡単である。そして、最後の段階では、３次元データが検出対象物体の形状に合致するかを判定するが、前記位置の検出された探索ブロック内に含まれる３次元データのみに基づく判定でよいので、判定処理すべき３次元データが少なく、この処理も短時間で済む。このような処理の結果、本発明によれば、短い処理時間で、検出対象物体の３次元形状を表す３次元データを抽出することができるようになる。
【００１０】
また、本発明の他の特徴は、さらに、検出対象物体の特徴を入力装置を用いて入力可能としたことにある。これによれば、検出対象物体を容易に設定できるようになる。
【００１１】
また、本発明の他の特徴は、さらに、３次元探索ブロックの大きさを検出対象物体の大きさに応じて設定するようにしたことにある。これによれば、検出対象物体ごとに適切な大きさの３次元探索ブロックが設定されるので、処理すべき３次元データ量を適切に減少させることができ、処理時間をより的確に節約できるようになる。
【００１２】
【発明の実施の形態】
以下、本発明の一実施形態について図面を用いて説明する。図１は、本発明の適用される３次元画像システムの概略図である。
【００１３】
この３次元画像システムは、基台１０上に形成された測定対象空間に向けた３次元形状測定装置２０Ａを備えている。３次元形状測定装置２０Ａは、基台１０上に置かれ測定対象空間内に存在する複数の物体ＯＢの３次元表面形状を測定するもので、同測定結果を表す測定情報を出力する。
【００１４】
この３次元形状測定装置２０Ａとしては、物体ＯＢの３次元表面形状を測定するとともに同測定した３次元表面形状を表す信号を出力するものであれば、いかなる３次元形状測定装置をも利用できる。本実施形態においては、レーザ光を用いて３角測量法に従って物体の３次元表面形状を測定するものを簡単に紹介しておく。
【００１５】
この３次元形状測定装置においては、レーザ光源から物体に向けて出射されるレーザ光の進行方向にほぼ垂直な仮想平面を想定するとともに、同仮想平面上にて互いに直交するＸ軸方向およびＹ軸方向に沿って分割した多数の微小エリアを想定する。そして、３次元形状測定装置は、前記多数の微小エリアにレーザ光を順次照射し、物体からの反射光によって前記微小エリアが規定する物体表面までの距離をＺ軸方向距離として順次検出して、物体の表面を微小エリアずつに分割した各分割エリア位置を表すＸ，Ｙ，Ｚ座標に関する情報を得て、同３次元形状測定装置に面した物体表面の形状を測定するものである。
【００１６】
したがって、この３次元形状測定装置は、出射レーザ光の向きをＸ軸方向に変化させるＸ軸方向走査器と、出射レーザ光の向きをＹ軸方向に変化させるＹ軸方向走査器と、物体表面にて反射された反射レーザ光を受光して物体表面までの距離を検出する距離検出器とを備えている。Ｘ軸方向走査器およびＹ軸方向走査器としては、レーザ光源からの出射レーザ光の光路をＸ軸方向およびＹ軸方向に独立に変化させ得る機構であればよく、例えばレーザ光源自体をＸ軸方向およびＹ軸方向の軸線回りに電動モータによって回転させたり、出射レーザ光の光路に設けられてその方向を変更するガルバノミラーをＸ軸方向およびＹ軸方向の軸線回りに電動モータによって回転させる機構を利用できる。距離検出器としては、前記出射レーザ光の光路に追従して回転し、物体表面にて反射された反射レーザ光を集光する結像レンズおよび同集光したレーザ光を受光するＣＣＤなどの複数の受光素子を一列に配置させたラインセンサからなり、ラインセンサによる反射レーザ光の受光位置によって物体表面までの距離を検出する機構を利用できる。
【００１７】
したがって、このような３次元形状測定装置は、物体の表面を微小エリアずつに分割した各分割エリア位置を表すＸ，Ｙ，Ｚ座標に関する情報として、Ｘ軸方向走査器による出射レーザ光の基準方向に対するＸ軸方向への傾きθｘ、Ｙ軸方向走査器による出射レーザ光の基準方向に対するＹ軸方向への傾きθｙ、および距離検出器による物体表面までの距離Ｌｚとが、前記仮想したＸ軸方向およびＹ軸方向に沿って分割した多数の微小エリアごとに出力される。より具体的には、Ｘ軸およびＹ軸方向への傾きθｘ，θｙは、電動モータの基準位置からの回転角である。また、物体表面までの距離Ｌｚは、ラインセンサにおける反射レーザ光の受光位置である。
【００１８】
この３次元形状測定装置２０Ａには、コントローラ３１および３次元画像処理装置３２が接続されている。コントローラ３１は、キーボードからなる入力装置３３からの指示にしたがって、３次元形状測定装置２０Ａの作動を制御する。また、コントローラ３１は、入力装置３３からの指示にしたがって３次元画像処理装置３２の作動を制御するとともに、同入力装置３３にて入力されたデータを３次元画像処理装置３２に供給する。
【００１９】
３次元画像処理装置３２は、コンピュータ装置によって構成されて図２の検出対象物体表示プログラムの実行により、３次元形状測定装置２０Ａからの３次元形状に関する３次元データを入力して、測定対象空間内に位置する検出対象物体に関する３次元データのみを抽出するとともに、同抽出した３次元データを用いて３次元画像データを生成する。この３次元画像処理装置３２には、表示装置３４が接続されている。表示装置３４は、液晶ディスプレイ、プラズマディスプレイ、ＣＲＴディスプレイなどを備えており、３次元画像処理装置３２からの３次元画像データに基づいて測定対象空間内に位置する物体の３次元画像を表示する。
【００２０】
次に、上記のように構成した３次元画像システムの動作について説明する。基台１０上には、複数の物体ＯＢが置かれているものとする。この状態で、ユーザは、入力装置３３を操作して３次元形状測定装置２０Ａによる測定を指示すると、同指示はコントローラ３１に伝達されて、コントローラ３１は３次元形状測定装置２０Ａに対して３次元形状の測定を指示する。これにより、３次元形状測定装置２０Ａは、基台１０上の複数の物体ＯＢの３次元形状すなわち測定対象空間内に位置する全ての物体ＯＢの３次元表面形状を測定し始める。そして、３次元形状測定装置２０Ａは、複数の物体ＯＢの３次元形状を表す３次元データを生成して、同３次元データを３次元画像処理装置３２に出力する。すなわち、複数の物体ＯＢの表面を微小エリアずつに分割した各分割エリア位置を表すＸ，Ｙ，Ｚ座標に関する３次元データ（具体的には、傾きθｘ，θｙおよび距離Ｌｚ）を３次元画像処理装置３２に出力する。
【００２１】
３次元画像処理装置３２は、３次元形状測定装置２０Ａから出力された３次元データを入力する。この３次元データは、３次元形状測定装置２０Ａの特定位置を原点にしたＸ，Ｙ，Ｚ座標に関する３次元データであり、各座標軸は図１に示す方向に設定されている。なお、平板状の基台１０上に球体以外の形状の物体が基台１０の上面に底面を合わせて置かれている場合には、後述する処理をより高速で行えるようにするため、３次元画像処理装置３２にて前記入力した３次元データを基台１０の表面の特定位置を原点としたＸ’，Ｙ’，Ｚ’座標に関する３次元データに変換してもよい。なお、このＸ’，Ｙ’，Ｚ’座標は、図１に示す方向に設定されている。この変換は、基台１０の前記特定位置に対する３次元形状測定装置２０Ａの前記特定位置の相対位置を表す情報（既知の情報）を、座標軸の移動および回転に関する変換式に適用することにより行われる。なお、３次元形状測定装置２０Ａにおいて、前記３次元データの変換が行われている場合には、同変換を３次元画像処理装置３２にて行わなくてもよい。
【００２２】
次に、ユーザは入力装置３３を操作することにより検出対象物体の３次元形状を表す３次元データの抽出を３次元画像処理装置３２に指示する。この指示に応答して、３次元画像処理装置３２は図２のステップＳ１０にて検出対象物体表示プログラムの実行を開始する。
【００２３】
プログラムの実行開始後、３次元画像処理装置３２は、ステップＳ１２にて検出対象物体の特徴の入力処理を実行する。この入力処理においては、表示装置３４に検出対象物体の特徴を入力する旨を表示して、ユーザに検出対象物体の特徴の入力を促す。ユーザが入力装置３３を操作して検出対象物体の特徴を入力すると、同入力情報は３次元画像処理装置３２に供給される。
【００２４】
この場合、検出対象物体が球体であれば、形状が球体であることを表すデータと、直径を表すデータを入力する。立方体、直方体などの多面体であれば、形状が特定の多面体であることを表すデータと、辺の長さを表すデータ（立方体の場合には１辺の長さを表すデータ、直方体の場合には２辺または３辺の長さを表すデータ）を入力する。円柱および円錐であれば、形状が円柱または円錐であることを表すデータと、直径および高さを表すデータを入力する。角錐であれば、形状が特定の角錐であることを表すデータと、底面の１辺の長さおよび高さを表すデータを入力する。なお、以前に入力された検出対象物体の特徴をひきつづき利用する場合には、このステップＳ１２の処理をスキップさせるとよい。
【００２５】
次に、３次元画像処理装置３２は、ステップＳ１４にて、前記入力された検出対象物体の特徴を表すデータを用いて、単位ブロックおよび探索ブロックのサイズ設定処理を実行する。単位ブロックは、検出対象物体の存在位置を特定するために探索ブロックを移動させる最小のブロックであり、本実施形態では立方体に形成されているが、直方体などの他の形状でもよい。また、この単位ブロックのサイズは、検出対象物体の一部が存在することを確認可能である程度に小さく設定される。探索ブロックは、検出対象物体をその内部に包含する位置を特定するために利用されるもので、本実施形態では立方体に形成されているが、直方体などの他の形状でもよい。また、この探索ブロックのサイズは、検出対象物体の全てを包含できるとともに、なるべく小さく設定される。ただし、この検出対象物体を包含できるとは、検出対象物体の一部でも含む単位ブロックの全てを含むことを意味する。
【００２６】
この単位ブロックおよび探索ブロックの寸法について、具体例を挙げて説明しておく。例えば、検出対象物体が直径２５ｍｍの球体であれば、単位ブロックのサイズとして立方体の１辺の長さ４ｍｍが設定されるとともに、探索ブロックのサイズとして立方体の１辺の長さ３２ｍｍが設定される。これによれば、探索ブロックは８×８×８個の単位ブロックを含むこととなり、直径２５ｍｍのうちの２４ｍｍが６個の単位ブロックに完全に包含され、残りの１ｍｍが１個または２個の単位ブロックに含まれることになる。図３は、単位ブロックと探索ブロックとの関係を斜視図により示している。なお、検出対象物体が球体でない場合も同様であり、検出対象物体の特徴によっては単位ブロックおよび探索ブロックとして、直方体を利用した方が効率的である場合もある。
【００２７】
次に、３次元画像処理装置３２は、ステップＳ１６にて探索領域のブロック化処理を実行する。この探索領域のブロック化処理は、測定対象領域内で検出対象物体の含まれる可能性のある領域を単位ブロックで分割する処理である。基本的には、物体ＯＢに関する３次元データに基づき、測定対象空間内のうち３次元データが存在する空間を単位ブロックで立体的に分割する。分割は、前記Ｘ，Ｙ，Ｚ座標の各座標軸に沿って単位ブロックを並べていく方法で行う。図４は、図１の測定対象空間内に置かれた物体に関する３次元データに基づき、本処理を行った結果を示す２次元の概念図である。図４中、二点鎖線は測定対象空間の境界を示している。そして、分割後の各単位ブロックＢＬは、Ｘ，Ｙ，Ｚ方向の位置ｉ，ｊ，ｋを用いた座標（ｉ，ｊ，ｋ）によって表される。ただし、ｉ，ｊ，ｋの各値は整数である。
【００２８】
なお、３次元データを図１に示した基台１０の上面の特定位置を原点にしたＸ’，Ｙ’，Ｚ’座標に関する３次元データに変換した場合には、物体ＯＢに関する３次元データが存在する基台１０の上面を底面として単位ブロックを平面内にて並べるとともに、上方に単位ブロックを積んでいくように配置すればよい。そして、検出対象物体の高さを超える高さまで単位ブロックを配置すれば、物体ＯＢに関する３次元データが残っていても、それ以上の高さには単位ブロックを配置しなくてもよい。左右および前後方向においても、物体ＯＢに関する３次元データが存在しない位置には、単位ブロックを配置しなくてもよい。
【００２９】
次に、３次元画像処理装置３２は、ステップＳ１８にて、前記ステップＳ１６の処理によって分割した各単位ブロックごとに３次元データが所定個数以上あるかを調べる。そして、３次元データが所定個数以上ある単位ブロックを抽出する。図５（Ａ）〜（Ｃ）は、前述した検出対象物体を球体にした場合の例を採用して、抽出された単位ブロックを３次元形状測定装置２０Ａに視点をおいてＺ軸方向に見たときの概念図である。ただし、外枠は探索ブロックに対応しており、ハッチング部分が抽出された単位ブロックである。
【００３０】
次に、３次元画像処理装置３２は、ステップＳ２０にて、検出対象物体を含む可能性のある探索ブロック位置の検出処理を行う。この探索ブロック位置の検出処理においては、前記ステップＳ１６の処理により単位ブロックに分割した領域にて、前記ステップＳ１４の処理により設定した探索ブロックを単位ブロックを単位として、Ｘ軸、Ｙ軸およびＺ軸方向に順次移動させる。そして、各移動ごとに、移動後の探索ブロック内に含まれるとともに前記ステップＳ１８の処理によって抽出された単位ブロックの個数を計算する。前記単位ブロックの数が所定の範囲内であれば、該当する探索ブロック位置であるとして、同位置が検出される。図６の（Ａ）〜（Ｄ）は、この探索ブロックの移動の状態を２次元的に示す概念図である。
【００３１】
この場合、検出対象物体が球体であれば、３次元形状測定装置２０Ａと対向する側に位置して３次元データが得られる箇所と、３次元形状測定装置２０Ａと対向しない側に位置して３次元データが得られない箇所の割合は、ほぼ同じであるので、球体の直径が特定されれば、探索ブロック内に含まれる単位ブロックの数は設定される。その結果、図５（Ａ）に示す球体が検出対象物体であれば、図５（Ｂ）に示すような検出対象物体より直径の小さな球体を、単位ブロックの数が所定範囲外であるとして、除外することができる。
【００３２】
ただし、図５（Ｃ）に示すような検出対象物体より直径の大きな球体は、探索ブロックの位置によって抽出された単位ブロックの数が所定の範囲内になることがあるため、該当する探索ブロックの位置として検出される。また、検出対象物体が球体以外の場合には、３次元形状測定装置２０Ａと対向する側に位置して３次元データが得られる箇所と、３次元形状測定装置２０Ａと対向しない側に位置して３次元データが得られない箇所の割合は、物体の置かれ方により変化するため、探索ブロック内で抽出される単位ブロックの数が変化する。さらに、何種類かの形状の物体が置かれている場合には、検出対象物体の形状とは異なった形状の物体を、探索ブロック内に含まれる単位ブロックの数が所定の範囲内であるとして検出する可能性が高くなる。このため、３次元データを所定数以上含む単位ブロックの数に代えまたは加えて、同単位ブロックの分布に基づいて該当探索ブロック位置の抽出処理を行った方が検出対象外の物体を除外することができる。
【００３３】
例えば、検出対象物体が球体の場合には、図５のように探索ブロックを３次元形状測定装置２０Ａ側から見て（すなわち、Ｚ軸方向から見て）、Ｚ軸方向のいずれかの面で単位ブロックが抽出された箇所を、Ｘ，Ｙ軸の平面内で抽出された単位ブロックとして、Ｘ，Ｙ軸の平面の単位ブロック各列で抽出された数が設定数の範囲内であることを条件に、探索ブロック位置を検出すればよい。このようにすれば、図５（Ａ）が検出対象物体であれば、図５（Ｂ）（Ｃ）のような検出対象物体より直径の明らかに異なる球体は、Ｘ，Ｙ軸の平面の単位ブロック各列で抽出された数が設定数の範囲外であるとして除外することができる。
【００３４】
さらに、上記処理において検出された物体を、Ｘ，Ｙ軸の平面の単位ブロックにおける各列のＸ，Ｚ平面またはＹ，Ｚ平面内で抽出した単位ブロックが、円状に分布していることを条件にして追加の検出を行えば、円柱または円錐で直径が等しく、中心軸がＺ軸方向を向いているため検出されたものも除外することができる。また、検出対象物体が、球体以外の物体である場合には、探索ブロックの中央部の平面内に抽出した単位ブロックが所定数以上直線状または楕円状に連続して存在し、探索ブロックの周辺の各面において、抽出された単位ブロックが所定数以下であることを条件に、探索ブロック位置を抽出する。
【００３５】
なお、図１に示す基台１０の表面を底面として単位ブロックを平面内にて並べるとともに、上方に単位ブロックを積んでいくようにした場合には、検出対象物体が、立方体、直方体などの多面体や円柱であれば、高さ方向の各平面内において抽出された単位ブロックが所定数以上直線状または円状に存在し、探索ブロックの上面において、抽出された単位ブロックの数が所定の範囲内にあることを条件に、探索ブロック位置を抽出する。検出対象物が、角錐や円錐であれば、高さ方向の各平面内において抽出された単位ブロックが上方向に向けて徐々に減少し、探索ブロックの上面において抽出された単位ブロックの数が所定数以下であることを条件に探索ブロック位置を抽出する。
【００３６】
次に、３次元画像処理装置３２は、ステップＳ２２にて、前記ステップＳ２０の処理によって検出した位置の探索ブロック内に含まれる３次元データが、検出対象物体の形状に合致するか否かを判定し、合致すると判定したとき探索ブロック内の３次元データを抽出する３次元データ抽出処理を行う。
【００３７】
例えば、検出対象物体が球体であれば、該当する探索ブロック内の全ての３次元データ（Ｘ，Ｙ，Ｚ座標値）を、球体を表す式である下記数１の左辺のｘ，ｙ，ｚにそれぞれ代入し、最小２乗法を用いて未知数ａ，ｂ，ｃ，ｄを計算する。この場合、ａ，ｂ，ｃは、３次元データにより表された球体中心のＸ，Ｙ，Ｚ座標値をそれぞれ表し、ｄは球体の半径を表す。次に、前記該当する探索ブロック内の各３次元データ（Ｘ，Ｙ，Ｚ座標値）ごとに、同３次元データ（Ｘ，Ｙ，Ｚ座標値）と前記計算した値ａ，ｂ，ｃを下記数１に代入して、各３次元データごとに値ｄ（球体中心からの距離）を計算する。そして、前記計算した値ｄ（球の半径）と前記ステップＳ１２で入力した直径の半値（半径）との差が所定の判別値以内であり、かつ各３次元データの球体中心からの距離の偏差が所定の判別値以内であれば、前記探索ブロック内の３次元データは合致するとして、同３次元データを抽出する。一方、前記差または偏差が所定の判別値以内でなければ、前記探索ブロック内の３次元データは合致しないとして、同３次元データを抽出しない。
【００３８】
【数１】
（ｘ−ａ）  ２＋（ｙ−ｂ）  ２＋（ｚ−ｃ）２−ｄ２＝０
【００３９】
次に、検出対象物体が、立方体、直方体などの多面体、または角錐である場合について説明する。この場合、検出対象物体の１つの平面に関する３次元データの抽出のために、３次元形状測定装置２０Ａに最も近い点を表す３次元データとその付近の点を表す３次元データ（Ｘ，Ｙ，Ｚ座標値）を、平面の式である下記数２の左辺のｘ，ｙ，ｚにそれぞれ代入し、最小２乗法を用いて未知数ａ，ｂ，ｃ，ｄを計算する。次に、この計算した未知数ａ，ｂ，ｃ，ｄを用いた下記数２によって表された平面と、前記代入した各３次元データとを用いて、各３次元データにより表された点から前記平面までの距離をそれぞれ計算する。そして、前記計算した全ての距離が所定の判別値以内であれば、これらの全ての３次元データを含む平面を定義する。一方、前記計算した全ての距離が所定の判別値以内でなければ、前記平面の計算に利用した３次元データとは異なる位置にある点およびその近傍の点をそれぞれ表す複数の３次元データを用いて、前記と同様な平面の定義に関する処理を行う。これらの処理を平面が定義されるまで繰り返し行う。なお、前記計算した全ての距離が所定の判別値以内でなくても、判別値以内でない距離が極めて少数であれば、判別値以内でない距離に関する３次元データを除いて平面を定義するようにしてもよい。
【００４０】
【数２】
ａ・ｘ＋ｂ・ｙ＋ｃ・ｚ＋ｄ＝０
【００４１】
そして、平面が定義されれば、該当する探索ブロック内の他の３次元データによって表された点と前記数２によって表された平面までの距離を計算して、この距離が所定の判別値以内の点に関する３次元データを前記平面内にあるものとして取得する。次に、前記平面を定義するために利用した３次元データおよび同平面内にあるものとして取得された点に関する３次元データの中から、平面の周辺に対応する３次元データを取得して、同取得した３次元データを用いて平面の１辺の長さを計算する。そして、この計算した１辺の長さと、前記ステップＳ１２の処理時に検出対象物体の特徴として入力した１辺の長さとの差を計算して、この計算した差が所定の判別値以内であれば、前記探索ブロック内の３次元データは合致する可能性があると判定して、後述する他の平面の定義を行う。一方、前記差が所定の判別値以内でなければ、前記探索ブロック内の３次元データは合致しないとして、同３次元データを破棄する。この場合、該当探索ブロック内には、検出対象物体の３次元形状を表す３次元データが存在しないことになる。
【００４２】
前記のようにして可能性があると判定した場合には、該当する探索ブロック内の取得されていない３次元データに関しても、他の平面に関する３次元データの取得のために、前記のような平面に関する３次元データの取得処理を実行する。この他の平面に関しては、最初の平面とのなす角度（例えば、立方体または直方体の隣り合う２面間であれば９０度）と、前記定義した平面の周辺に対応する３次元データとを用いて平面を定義して、同定義した平面に属する点を表す３次元データを取得する。そして、取得した３次元データの中から、前記と同様に、平面の周辺に対応する３次元データを取得して、同取得した３次元データを用いて平面の１辺の長さを計算する。そして、この計算した１辺の長さと前記ステップＳ１２の処理時に検出対象物体の特徴として入力した１辺の長さとの差を計算して、この計算した差が所定の判別値以内であれば、前記探索ブロック内の３次元データは合致すると判定する。
【００４３】
なお、検出対象物体の３次元形状を表す３次元データの１回目の取得に関しては、検出対象物体が立方体または直方体で基台１０の上面に裏面を合わせて置かれている場合には、３次元形状測定装置２０Ａに最も近い点を含み、基台１０の上面に平行な平面の式を定義し、この式に該当する探索ブロック内の全ての３次元データを適用して、前記平面よりの距離が判別値以内にある３次元データを取得するようにしてもよい。
【００４４】
さらに、類似の３次元形状の物体が多数あるときは、定義した平面の式より、平面と平面が交わる角度（物体が基台１０の上面に裏面を合わせて置かれているときには、基台１０の上面と平面が交わる角度を加えてもよい）を計算し、この角度と検出対象物体の特徴によって定まる角度との差が判別値以内であるかを、検出対象物体に関する３次元データを取得するための判定条件に加えるとよい。
【００４５】
次に、検出対象物体が、円柱または円錐である場合について説明する。この場合、該当する探索ブロック内に円柱または円錐の中心線に垂直な平面をいくつか想定し、同各平面ごとに平面内に属する点を表す３次元データを前記平面の座標データに変換した後、円の式である下記数３に適用して、最小２乗法により前記数３の未知数ａ，ｂ，ｄを計算する。
【００４６】
円柱の中心線に垂直な平面は、円柱内の平面である箇所（上面または底面）の３次元データを、立方体、直方体などの多面体の場合と同様な方法で抽出し、抽出した３次元データを含む平面を定義して、この平面に平行な面を想定すればよい。また、円錐の中心線に垂直な平面は、抽出された単位ブロックの数が減少する方向にほぼ平行で単位ブロックが最も減少した箇所を含み、かつＺ軸方向（３次元形状測定装置２０Ａの方向）にほぼ平行な平面と、この平面と平行な平面を定義し、この面内において、単位ブロックの数が減少する方向とは逆方向で３次元データが途切れる点または３次元データが角度を形成する点（すなわち、円錐の底面の円周上にある点）を抽出し、この点を含む平面を定義して、この平面に平行な面を想定すればよい。なお、円柱または円錐が基台１０の上面に底面を合わせて置かれている場合には、上記のような処理は必要なく、基台１０の上面に平行な平面を想定すればよい。
【００４７】
【数３】
（ｘ−ａ）  ２＋（ｙ−ｂ）  ２−ｄ２＝０
【００４８】
次に、前記各平面内にあった全ての３次元データによって表された点と、前記計算した値ａ，ｂとを用いて、前記全ての３次元データに対応した点から前記数３によって定義される円の中心（値ａ，ｂによって定義される）までの距離をそれぞれ計算する。そして、この計算した全ての距離の偏差を計算し、検出対象物体が円柱の場合には前記計算した値ｄと、前記ステップＳ１２で入力した直径の半値（半径）との差が所定の判別値以内であり、かつ前記偏差が所定の判別値以内であるとき、円が定義され、探索ブロック内の３次元データは合致する可能性があると判定される。また、検出対象物体が円錐の場合には、前記計算した値ｄが前記ステップＳ１２で入力した直径の半値（半径）以下であり、かつ前記偏差が所定の判別値以内であるとき、円が定義され、探索ブロック内の３次元データは合致する可能性があると判定される。一方、前記計算した値ｄおよび偏差が所定の判別値以内でなければ、前記探索ブロック内の３次元データは合致しないとして同３次元データを破棄する。この場合、該当する探索ブロック内には、検出対象物体の３次元形状を表す３次元データが存在しないことになる。
【００４９】
また、円柱の場合には、各平面における円の中心の座標を、各平面の式により３次元データに変換し、この３次元データを含む直線を定義し、この直線を含み、Ｚ軸方向（３次元形状測定装置２０Ａの方向）にほぼ平行な平面を定義する。この平面内に含まれる３次元データから、先に抽出した円柱の平面箇所（上面または底面）に含まれる３次元データを除き、残りの直線状になっている３次元データから長さ（すなわち、円柱の高さ）を計算する。この計算した高さと、前記ステップＳ１２の処理時に検出対象物体の特徴として入力した高さの差を計算して、この計算した差が所定の判別値以内であれば、前記探索ブロック内の３次元データは合致すると判定する。なお、円柱が基台１０の上面に底面を合わせて置かれている場合には、高さを計算するために、上記のような処理は必要なく、基台１０の上面の３次元データを含む平面の式と前記定義した円柱の上面の３次元データを含む平面の式とから、２つの平面の間隔を計算すればよい。
【００５０】
また、円錐の場合には、前記想定した複数の平面から１つの平面を任意に選定し、その他の各平面ごとに、計算で求められた値ｄ（円の半径）と前記選定された平面における値ｄ（円の半径）の差を、前記選定された平面からの距離で除算した値を計算し、各平面ごとの前記値と、前記ステップＳ１２の処理時に入力した直径の半値（半径）を同入力した高さで除算した値との差が所定の判別値以内であれば、前記探索ブロック内の３次元データは合致する可能性があると判定し、後述する高さによる判別を行う。計算した差が所定の判別値以内でなければ、前記探索ブロック内の３次元データは合致しないとして同３次元データを破棄する。この場合、該当探索ブロック内には、検出対象物体の３次元形状を表す３次元データが存在しないことになる。
【００５１】
円錐の高さは、前記想定した平面の中の任意の２平面における値ｄ（円の半径）と前記２平面の間隔より円錐の頂点から前記２平面までの距離が計算されるので、この距離に前記２平面と前記で定義した円錐の底面の間隔を加算すれば求めることができる。求めた高さと、前記ステップＳ１２の処理時に検出対象物体の特徴として入力した高さとの差を計算して、この計算した差が所定の判別値以内であれば、前記探索ブロック内の３次元データは合致すると判定する。なお、円錐が基台１０の上面に底面を合わせて置かれている場合には、高さを計算するために、円錐の底面の代わりに基台１０の上面を用いればよい。
【００５２】
前記ステップＳ２２の３次元データの抽出処理後、３次元画像処理装置３４は、ステップＳ２４にて前記抽出した３次元データを用いて検出対象物体の形状を表す３次元画像データを生成して表示装置３４に出力する。そして、ステップＳ２６にてこの検出対象物体表示プログラムの実行を終了する。表示装置３４は、前記入力した画像データにより表された画像を表示するので、検出対象物体の３次元画像が表示装置３４に表示される。
【００５３】
上記作動説明からも理解できるとおり、上記実施形態によれば、検出対象物体表示プログラムの実行により、３次元形状測定装置２０Ａを用いて測定した測定領域内に位置する複数の物体ＯＢの形状を表す３次元データの中から、特定の検出対象物体の形状を表す３次元データが抽出される。
【００５４】
そして、このプログラムにおいては、上記ステップＳ１６，Ｓ１８の処理により、測定領域内で少なくとも検出対象物体の含まれる可能性のある領域が単位ブロックずつに分割されて、単位ブロックの大きさずつに分割された領域内で所定数以上の３次元データを含む単位ブロックが抽出される。また、上記ステップＳ２０の処理により、検出対象物体の含まれる可能性のある領域内で探索ブロックが順次移動しながら、探索ブロックに含まれかつ前記抽出した単位ブロックの数または分布を調べることにより、検出対象物体を包含する可能性のある探索ブロックの位置が検出される。そして、上記ステップＳ２２の処理により、３次元データが検出対象物体の形状に合致するかが判定される。その結果、上記実施形態によれば、処理すべきデータ量を少なくすることができ、短い処理時間で、検出対象物体の３次元形状を表す３次元データを抽出することができるようになる。
【００５５】
また、上記ステップＳ１２の処理により、検出対象物体の特徴を入力装置３３を用いて任意に入力可能としたので、検出対象物体を容易に設定できるようになる。さらに、上記ステップＳ１４の処理により、３次元探索ブロックの大きさが検出対象物体の大きさに応じて自動的かつ適切に設定されるので、処理すべき３次元データ量を適切に減少させることができ、処理時間をより的確に節約できるようになる。
【００５６】
以上、本発明の一実施形態について説明したが、本発明の実施にあたっては、上記実施形態に限定されるものではなく、本発明の目的を逸脱しない限りにおいて種々の変形も可能である。
【００５７】
例えば、上記実施形態においては、図２のステップＳ１２，Ｓ１４において、検出対象物体の特徴、単位ブロックおよび探索ブロックのサイズを設定するようにした。しかし、これに代えて、予め設定されている検出対象物体の特徴、単位ブロックおよび探索ブロックのサイズをそのまま利用する場合には、これらのステップＳ１２，Ｓ１４の処理は不要である。
【００５８】
また、上記ステップＳ１６の探索領域のブロック化処理においては、物体ＯＢの存在しない連続領域、すなわち物体ＯＢに関する３次元データの含まれない連続領域を単位ブロックによる分割領域外とした。しかし、測定対象領域全体に渡って物体ＯＢが存在しているような場合には、測定対象領域の全領域に渡って単位ブロックによる分割を行うようにしてもよい。
【００５９】
また、上記実施形態においては、１つの３次元形状測定装置２０Ａを用いて全ての物体ＯＢを同時に３次元測定して、同３次元測定によって得られた３次元データの中から検出対象物体に関する３次元データを単に抽出する３次元形状測定システムに本発明を適用した。しかし、本発明は、図７に示すように複数の３次元形状測定装置２０Ａ，２０Ｂ，２０Ｃを用いた多視点形状測定において、各視点での３次元データを同一の座標系の３次元データに変換する変換パラメータを計算するために適用すると有効である。
【００６０】
すなわち、複数の３次元形状測定装置２０Ａ，２０Ｂ，２０Ｃによりそれぞれ測定した複数の物体ＯＢに関する複数組の３次元データを取得し、各組ごとに、同一の検出対象物体に関する３次元データを取出すとともに、同取出した３次元データに基づいて検出対象物体の特定点を表す３次元データを計算し、同計算した各特定点を表す３次元データを同一の基準座標系に変換するための変換パラメータを計算する。そして、この計算した変換パラメータを用いて、３次元形状測定装置２０Ａ，２０Ｂ，２０Ｃにより取得した各３次元データを前記基準座標系の３次元データに変換すれば、多視点による３次元測定結果を１つの基準座標系として扱うことができるようになる。
【００６１】
また、上記実施形態においては、基台１０上の載置した物体ＯＢに対して３次元測定する３次元形状測定システムに本発明を適用した例について説明した。しかし、これに代えて、本発明を、生産ライン、検査ラインなどの各種ライン上を次々に移動する物体の立体形状を次々に測定するようにした３次元形状測定にも適用できる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係る３次元形状測定システムの概略図である。
【図２】図１の３次元画像処理装置によって実行される検出対象物体表示プログラムのフローチャートである。
【図３】検出対象物体、単位ブロックおよび探索ブロックを立体的に示す概念図である。
【図４】探索領域を２次元的に示す概念図である。
【図５】（Ａ）〜（Ｃ）は、探索ブロックと抽出された単位ブロックの関係を２次元的に示す概念図である。
【図６】（Ａ）〜（Ｄ）は、探索領域内における探索ブロックの移動を２次元的に示す概念図である。
【図７】本発明の他の実施形態に係る３次元形状測定システムの概略図である。
【符号の説明】
１０…基台、２０Ａ，２０Ｂ，２０Ｃ…３次元形状測定装置、３１…コントローラ、３２…３次元画像処理装置、３３…入力装置、３４…表示装置、ＯＢ…物体。
【図１】
2004333371.tif 000003
【図２】
2004333371.tif 000004
【図３】
2004333371.tif 000005
【図４】
2004333371.tif 000006
【図５】
2004333371.tif 000007
【図６】
2004333371.tif 000008
【図７】
2004333371.tif 000009