(57)【要約】【課題】物体の形状情報を用いてその物体の形状を検査する形状検査において、形状情報と一致しない不良部分を特定する。【解決手段】記憶部２１１は、物体の形状を表す複数の線分を含む形状情報２２１を記憶する。検出部２１２は、撮像装置が撮影した物体の画像から、複数の特徴線を検出する。生成部２１３は、複数の線分それぞれと複数の特徴線それぞれとを対応付けた複数の組み合わせを生成する。設定部２１４は、複数の線分それぞれを画像上に投影することで、複数の投影線を生成し、複数の組み合わせ各々に含まれる線分の投影線の位置と特徴線の位置との間の誤差の統計値に基づいて、誤差に対する閾値を設定する。分類部２１５は、閾値を用いて複数の組み合わせを分類する。【選択図】図２
2019158628.tif 000002
【特許請求の範囲】
【請求項１】
物体の形状を表す複数の線分を含む形状情報を記憶する記憶部と、
撮像装置が撮影した前記物体の画像から、複数の特徴線を検出する検出部と、
前記複数の線分それぞれと前記複数の特徴線それぞれとを対応付けた複数の組み合わせを生成する生成部と、
前記複数の線分それぞれを前記画像上に投影することで、複数の投影線を生成し、前記複数の組み合わせ各々に含まれる線分の投影線の位置と特徴線の位置との間の誤差の統計値に基づいて、前記誤差に対する閾値を設定する設定部と、
前記閾値を用いて前記複数の組み合わせを分類する分類部と、
を備えることを特徴とする検査装置。
【請求項２】
前記複数の組み合わせの一部又は全部を画面上に表示する表示部をさらに備え、
前記分類部は、前記複数の組み合わせのうち、前記閾値よりも大きな誤差を有する組み合わせを抽出し、抽出した組み合わせに含まれる線分と他の組み合わせに含まれる線分との間の連結状態に基づいて、前記抽出した組み合わせを前記物体の形状の不良部分に分類するか否かを決定し、
前記表示部は、前記物体の形状の不良部分に分類された組み合わせを強調表示することを特徴とする請求項１記載の検査装置。
【請求項３】
前記分類部は、前記複数の組み合わせのうち、前記抽出した組み合わせに含まれる第１特徴線の端点との距離が所定値よりも小さい端点を有する第２特徴線を含む組み合わせを、前記他の組み合わせとして選択し、前記抽出した組み合わせに含まれる第１線分の端点と前記他の組み合わせに含まれる第２線分の端点との距離が前記所定値よりも小さい場合、前記抽出した組み合わせを前記物体の形状の不良部分に分類することを特徴とする請求項２記載の検査装置。
【請求項４】
前記分類部は、前記複数の組み合わせのうち、前記抽出した組み合わせに含まれる第１線分の端点との距離が所定値よりも小さい端点を有する第２線分を含む組み合わせを、前記他の組み合わせとして選択し、前記抽出した組み合わせに含まれる第１特徴線の端点と前記他の組み合わせに含まれる第２特徴線の端点との距離が前記所定値よりも小さい場合、前記抽出した組み合わせを前記物体の形状の不良部分に分類することを特徴とする請求項２記載の検査装置。
【請求項５】
前記閾値を調整する調整部をさらに備え、
前記表示部は、前記調整部によって調整された閾値に応じて、前記物体の形状の不良部分に分類された組み合わせを強調表示することを特徴とする請求項２乃至４のいずれか１項に記載の検査装置。
【請求項６】
前記複数の組み合わせのうち表示対象の組み合わせを選択する選択部をさらに備え、
前記表示部は、前記表示対象の組み合わせを前記画面上に表示し、前記表示対象の組み合わせのうち、前記物体の形状の不良部分に分類された組み合わせを強調表示することを特徴とする請求項２乃至５のいずれか１項に記載の検査装置。
【請求項７】
前記抽出した組み合わせに含まれる線分の投影線を含む所定領域の画像を鮮鋭化する鮮鋭化部をさらに備え、
前記検出部は、前記鮮鋭化部によって鮮鋭化された前記所定領域の画像から、前記複数の特徴線以外の追加特徴線を検出し、
前記生成部は、前記複数の線分以外の追加線分と前記追加特徴線とを対応付けた追加の組み合わせを生成し、
前記分類部は、前記追加の組み合わせを前記他の組み合わせとして用いて、前記抽出した組み合わせを前記物体の形状の不良部分に分類するか否かを決定することを特徴とする請求項２乃至６のいずれか１項に記載の検査装置。
【請求項８】
前記検査装置は、３次元空間内における前記撮像装置の位置と姿勢とを推定する推定部をさらに備え、
前記形状情報は、前記複数の線分とは異なる所定数の線分をさらに含み、
前記検出部は、前記画像から、前記複数の特徴線とは異なる所定数の特徴線をさらに検出し、
前記生成部は、前記所定数の線分と前記複数の線分とを含む線分の集合に含まれる線分と、前記所定数の特徴線と前記複数の特徴線とを含む特徴線の集合に含まれる特徴線とを対応付けることで、線分と特徴線とを対応付けた組み合わせの集合を生成し、
前記推定部は、前記組み合わせの集合の中から、前記所定数の線分それぞれと前記所定数の特徴線それぞれとを対応付けた前記所定数の組み合わせを選択し、前記所定数の組み合わせを用いて、前記撮像装置の位置と姿勢とを推定し、
前記設定部は、前記撮像装置の位置と姿勢とを用いて、前記複数の線分それぞれを前記画像上に投影することで、前記複数の投影線を生成することを特徴とする請求項１乃至７のいずれか１項に記載の検査装置。
【請求項９】
前記推定部は、前記組み合わせの集合の中から選択する前記所定数の組み合わせを変更しながら、前記撮像装置の位置と姿勢とを繰り返し推定し、前記生成部は、前記推定部が選択した前記所定数の組み合わせを除いた残りの複数の組み合わせを繰り返し生成し、前記設定部は、前記生成部が生成した前記複数の組み合わせから前記誤差の統計値を繰り返し求め、求めた統計値の最小値を用いて前記閾値を設定することを特徴とする請求項８記載の検査装置。
【請求項１０】
コンピュータが、
撮像装置が撮影した物体の画像から、複数の特徴線を検出し、
前記物体の形状を表す形状情報に含まれる複数の線分それぞれと、前記複数の特徴線それぞれとを対応付けた、複数の組み合わせを生成し、
前記複数の線分それぞれを前記画像上に投影することで、複数の投影線を生成し、
前記複数の組み合わせ各々に含まれる投影線の位置と特徴線の位置との間の誤差の統計値に基づいて、前記誤差に対する閾値を設定し、
前記閾値を用いて前記複数の組み合わせを分類する、
ことを特徴とする検査方法。
【請求項１１】
撮像装置が撮影した物体の画像から、複数の特徴線を検出し、
前記物体の形状を表す形状情報に含まれる複数の線分それぞれと、前記複数の特徴線それぞれとを対応付けた、複数の組み合わせを生成し、
前記複数の線分それぞれを前記画像上に投影することで、複数の投影線を生成し、
前記複数の組み合わせ各々に含まれる投影線の位置と特徴線の位置との間の誤差の統計値に基づいて、前記誤差に対する閾値を設定し、
前記閾値を用いて前記複数の組み合わせを分類する、
処理をコンピュータに実行させるための検査プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検査装置、検査方法、及び検査プログラムに関する。
【背景技術】
【０００２】
近年、拡張現実（Augmented Reality，ＡＲ）技術を用いて画像を表示するシステムが普及してきている。ＡＲ技術の一例では、パーソナルコンピュータ（Personal Computer，ＰＣ）、携帯端末装置等に搭載したカメラを用いて物体が撮影され、物体の画像から３次元空間内におけるカメラの位置及び姿勢が推定される。そして、決定されたカメラの位置及び姿勢を基準にして、画像中の任意の位置にコンテンツ情報が重畳表示される。
【０００３】
製品を製造する現場において、製品の検査は、熟練作業者によって、専用の治具を用いて時間をかけて実施されることが多い。しかし、熟練作業者以外の作業者でも容易に検査を実施することができるようになれば、検査コストを削減することが可能になる。
【０００４】
撮像画像から抽出されたエッジ線と立体構造物のモデル画像に含まれる稜線とが重なるように、モデル画像を撮像画像に重畳する技術が知られている（例えば、特許文献１を参照）。物体の形状情報に含まれる候補線を画像上に投影した投影線と、画像から検出した特徴線とを対応付けた、所定数の組み合わせを用いて、撮像装置の位置を推定する技術も知られている（例えば、特許文献２を参照）。ワーク画像のエッジ位置とそのエッジ位置に対応するマスター画像上の位置との変位量を示す誤差の統計情報を、エッジ位置に沿って表示する技術も知られている（例えば、特許文献３を参照）。
【０００５】
カメラキャリブレーション、線分検出、立体の機械知覚、直線対応付けによる姿勢推定、コンピュータ・ビジョンのためのロバスト回帰法等の技術も知られている（例えば、非特許文献１〜非特許文献５を参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１７−９１０７８号公報
【特許文献２】特開２０１７−１８２３０２号公報
【特許文献３】特開２０１２−３２３４４号公報
【非特許文献】
【０００７】
【非特許文献１】Z. Zhang,“A Flexible New Technique for Camera Calibration”, IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol.22, No.11, pp.1330-1334, November 2000
【非特許文献２】R. G. Gioi et al.,“LSD: a Line Segment Detector”, Image Processing On Line, 2 (2012), pp.35-55, March 2012
【非特許文献３】L. G. Roberts,“Machine perception of three-dimensional solids”, MIT Lincoln Lab. Rep., TR3315, pp.1-82, May 1963
【非特許文献４】C. Xu et al.,“Pose Estimation from Line Correspondences: A Complete Analysis and a Series of Solutions”, IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol.39, No.6, pp.1209-1222, June 2017
【非特許文献５】P. Meer et al.,“Robust Regression Methods for Computer Vision: A Review”, International Journal of Computer Vision, Vol.6, Issue 1, pp.59-70, April 1991
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ＡＲ技術の応用として、現場で製造した製品の３次元形状を表すＣＡＤ（Computer-Aided Design）データを、その製品の画像に重畳表示することで、製造診断が行われることがある。しかし、製品のＣＡＤデータに含まれる３Ｄ線分を製品の画像上に投影した投影線の位置と、画像から検出した特徴線の位置との間のずれ量から、ＣＡＤデータが表す形状と一致しない製造不良部分を精度良く特定することは困難である。
【０００９】
なお、かかる問題は、ＣＡＤデータを用いて製品の製造診断を行う場合に限らず、他の形状情報を用いて物体の形状を検査する場合においても生ずるものである。
【００１０】
１つの側面において、本発明は、物体の形状情報を用いてその物体の形状を検査する形状検査において、形状情報と一致しない不良部分を特定することを目的とする。
【課題を解決するための手段】
【００１１】
１つの案では、検査装置は、記憶部、検出部、生成部、設定部、及び分類部を含む。記憶部は、物体の形状を表す複数の線分を含む形状情報を記憶する。検出部は、撮像装置が撮影した物体の画像から、複数の特徴線を検出する。
【００１２】
生成部は、複数の線分それぞれと複数の特徴線それぞれとを対応付けた複数の組み合わせを生成する。設定部は、複数の線分それぞれを画像上に投影することで、複数の投影線を生成し、複数の組み合わせ各々に含まれる線分の投影線の位置と特徴線の位置との間の誤差の統計値に基づいて、誤差に対する閾値を設定する。分類部は、閾値を用いて複数の組み合わせを分類する。
【発明の効果】
【００１３】
実施形態によれば、物体の形状情報を用いてその物体の形状を検査する形状検査において、形状情報と一致しない不良部分を特定することができる。
【図面の簡単な説明】
【００１４】
【図１】３Ｄ線分及び特徴線を示す図である。
【図２】検査装置の機能的構成図である。
【図３】画像処理のフローチャートである。
【図４】検査装置の第１の具体例を示す機能的構成図である。
【図５】ＣＡＤデータを示す図である。
【図６】画面上に表示された画像を示す図である。
【図７】面積に基づく誤差の計算方法を示す図である。
【図８】距離に基づく誤差の計算方法を示す図である。
【図９】投影線と特徴線との間の誤差を示す図である。
【図１０】物体の形状の不良部分を表す対応ペアを示す図である。
【図１１】誤った対応ペアを示す図である。
【図１２】画面上に表示された対応ペア集合を示す図である。
【図１３】閾値を調整するためのＧＵＩを示す図である。
【図１４】表示対象の対応ペアを選択するためのＧＵＩを示す図である。
【図１５Ａ】画像処理の第１の具体例を示すフローチャート（その１）である。
【図１５Ｂ】画像処理の第１の具体例を示すフローチャート（その２）である。
【図１６】検査装置の第２の具体例を示す機能的構成図である。
【図１７】投影線を含む所定領域を示す図である。
【図１８Ａ】画像処理の第２の具体例を示すフローチャート（その１）である。
【図１８Ｂ】画像処理の第２の具体例を示すフローチャート（その２）である。
【図１９】情報処理装置の構成図である。
【発明を実施するための形態】
【００１５】
以下、図面を参照しながら、実施形態を詳細に説明する。
製造診断では、単にＣＡＤデータを画像に重畳表示するだけでなく、ＣＡＤデータが表す形状と一致しない、製品の製造不良部分を強調表示したり、ＣＡＤデータが表す形状と製品の形状との間のずれ量を定量的に表示したりすることが望ましい。
【００１６】
そこで、特許文献２及び特許文献３の技術を組み合わせる方法が考えられる。この方法では、ＣＡＤデータに含まれる３Ｄ線分を製品の画像上に投影した投影線の位置と、画像から検出した特徴線の位置との間のずれ量が計算される。そして、ずれ量が事前に設定された閾値を超えている場合、その投影線及び特徴線が強調表示されるとともに、ずれ量が表示される。
【００１７】
しかしながら、ずれ量は、画像を撮影したカメラの位置及び姿勢の推定結果に応じて変化するため、製造不良の判定基準となる適切な閾値を事前に設定することは困難である。また、投影線と特徴線との対応付けが誤っている場合であっても、それらの間のずれ量が閾値を超えていれば、製造不良と判定されてしまう。
【００１８】
図１は、３Ｄ線分及び特徴線の例を示している。画面中央には、画像に写っている物体１０１が表示されており、物体１０１上には、物体１０１のＣＡＤデータに含まれる３Ｄ線分を画像上に投影した投影線が重畳表示されている。物体１０１上の太線は、物体１０１から検出された特徴線を表す。投影線及び特徴線の近くに表示された数字は、投影線の位置と特徴線の位置との間のずれ量を、単位をｍｍとする３次元空間内の距離に変換した値を表す。
【００１９】
例えば、投影線１１１と特徴線１２１との間のずれ量は２．６ｍｍであり、このずれ量は物体１０１の形状の不良部分を示している。しかし、この例では、ずれ量が０．０ｍｍ〜７．６ｍｍの範囲に分布しており、製造不良の判定基準となる閾値をどの値に設定すればよいかを決定するのは難しい。
【００２０】
一方、投影線１１２と特徴線１２２との間のずれ量は７．６ｍｍであり、このずれ量は、物体１０１の形状の不良部分ではなく、投影線１１２と特徴線１２２との対応付けが誤っていることを示している。例えば、閾値を１．０ｍｍに設定した場合、投影線１１１と特徴線１２１との組み合わせだけでなく、投影線１１２と特徴線１２２との組み合わせも不良部分と判定されてしまう。
【００２１】
このように、特許文献２及び特許文献３の技術を組み合わせる方法では、製品のＣＡＤデータが表す形状と一致しない製造不良部分を精度良く特定することが困難である。
【００２２】
図２は、実施形態の検査装置の機能的構成例を示している。図２の検査装置２０１は、記憶部２１１、検出部２１２、生成部２１３、設定部２１４、及び分類部２１５を含む。記憶部２１１は、物体の形状を表す複数の線分を含む形状情報２２１を記憶する。
【００２３】
図３は、図２の検査装置２０１が行う画像処理の例を示すフローチャートである。まず、検出部２１２は、撮像装置が撮影した物体の画像から、複数の特徴線を検出する（ステップ３０１）。
【００２４】
次に、生成部２１３は、形状情報２２１に含まれる複数の線分それぞれと複数の特徴線それぞれとを対応付けた複数の組み合わせを生成する（ステップ３０２）。
【００２５】
次に、設定部２１４は、複数の線分それぞれを画像上に投影することで、複数の投影線を生成する（ステップ３０３）。そして、設定部２１４は、複数の組み合わせ各々に含まれる投影線の位置と特徴線の位置との間の誤差の統計値に基づいて、誤差に対する閾値を設定する（ステップ３０４）。分類部２１５は、閾値を用いて複数の組み合わせを分類する（ステップ３０５）。
【００２６】
このような検査装置２０１によれば、物体の形状情報を用いてその物体の形状を検査する形状検査において、形状情報と一致しない不良部分を特定することができる。
【００２７】
図４は、図２の検査装置２０１の第１の具体例を示している。図４の検査装置４０１は、記憶部４１１、画像取得部４１２、特徴線検出部４１３、線分検出部４１４、パラメータ設定部４１５、生成部４１６、パラメータ計算部４１７、及び誤差計算部４１８を含む。さらに、検査装置４０１は、閾値設定部４１９、分類部４２０、表示部４２１、調整部４２２、及び選択部４２３を含む。
【００２８】
記憶部４１１、特徴線検出部４１３、生成部４１６、及び分類部４２０は、図２の記憶部２１１、検出部２１２、生成部２１３、及び分類部２１５にそれぞれ対応し、誤差計算部４１８及び閾値設定部４１９は、設定部２１４に対応する。パラメータ計算部４１７は、３次元空間内における撮像装置４０２の位置と姿勢とを推定する推定部として動作する。
【００２９】
検査装置４０１は、物体の形状情報を用いてその物体の形状を検査する形状検査において使用される。検査装置４０１は、タブレット、ノート型ＰＣ（Personal Computer）、スマートデバイス等の携帯端末装置であってもよく、デスクトップ型ＰＣ等の情報処理装置であってもよい。
【００３０】
記憶部４１１は、ＣＡＤデータ４３１を記憶している。ＣＡＤデータ４３１は、図２の形状情報２２１に対応し、物体の３次元形状を表す複数の頂点の頂点情報と、複数の線分の線分情報とを含む。頂点情報は、物体の各頂点の３次元座標を含み、線分情報は、各線分の両端の頂点を示す識別情報、又は各線分の両端の頂点の３次元座標を含む。ＣＡＤデータ４３１は、ＯＢＪ形式のデータであってもよい。
【００３１】
図５は、ＣＡＤデータ４３１の例を示している。図５のＣＡＤデータ４３１は、ＩＤ、始点、及び終点を含む。ＩＤは、線分の識別情報を表し、始点は、線分の一方の端点の３次元座標を表し、終点は、線分の他方の端点の３次元座標を表す。
【００３２】
撮像装置４０２は、例えば、ＣＣＤ（Charged-Coupled Device）、ＣＭＯＳ（Complementary Metal-Oxide-Semiconductor）等の撮像素子を有するカメラであり、ＣＡＤデータ４３１が表す物体の画像４３２を撮影する。画像取得部４１２は、撮像装置４０２から画像４３２を取得して、記憶部４１１に格納する。
【００３３】
特徴線検出部４１３は、エッジ検出処理を行って、画像４３２から複数のエッジ線を検出し、検出したエッジ線を特徴線４３３として記憶部４１１に格納する。特徴線検出部４１３は、例えば、非特許文献２の技術を用いて、画像４３２からエッジ線を検出することができる。線分検出部４１４は、ＣＡＤデータ４３１に含まれる複数の線分を検出し、検出した複数の線分を複数の３Ｄ線分４３４として記憶部４１１に格納する。
【００３４】
パラメータ設定部４１５は、３次元空間内における撮像装置４０２の初期位置及び初期姿勢を表す初期パラメータ４３５を設定する。まず、パラメータ設定部４１５は、ＣＡＤデータ４３１が表す物体を画像４３２上に投影して、画像４３２及び物体の形状を画面上に表示する。
【００３５】
図６は、画面上に表示された画像４３２及び物体の形状の例を示している。画面中央には、画像４３２に写っている物体１０１が表示されており、物体１０１上には、物体１０１から検出された特徴線４３３が表示されている。また、物体１０１の左下には、ＣＡＤデータ４３１から検出された３Ｄ線分４３４が投影されており、３Ｄ線分４３４の投影線を用いて、物体の形状６０１が表示されている。
【００３６】
ユーザは、形状６０１の位置及び姿勢が物体１０１と近似するように、画面上で形状６０１の位置及び姿勢を変更する操作を行う。画面上で形状６０１の位置及び姿勢を変更することで、画面に対する視点の位置及び姿勢が変化する。そこで、パラメータ設定部４１５は、ユーザが決定した形状６０１の位置及び姿勢に対応する視点の位置及び姿勢を、撮像装置４０２の初期位置及び初期姿勢として用いる。そして、パラメータ設定部４１５は、その初期位置及び初期姿勢を表すパラメータを、初期パラメータ４３５として記憶部４１１に格納する。
【００３７】
生成部４１６は、形状６０１に含まれる３Ｄ線分のうち、視点から観察されない３Ｄ線分（隠線）を除去する。生成部４１６は、例えば、非特許文献３の技術を用いて、隠線を除去することができる。
【００３８】
パラメータ設定部４１５は、先願である特願２０１７−１９５７８７号に記載された技術を用いて、初期パラメータ４３５を自動的に決定することも可能である。この技術によれば、３次元空間内における複数の視点それぞれから観察される物体の位置及び姿勢を表す姿勢情報と、観察される物体の視点画像と、その視点画像から抽出された特徴量とが、関連付けて記憶部に格納される。そして、撮像装置によって撮影された画像の特徴量と各視点画像の特徴量との間の類似度が計算され、最大の類似度を有する視点画像の姿勢情報が、物体の初期位置及び初期姿勢を表す姿勢情報に決定される。
【００３９】
初期パラメータ４３５が表す初期位置及び初期姿勢は、仮の位置及び姿勢であり、画像４３２を撮影したときの撮像装置４０２の位置及び姿勢と必ずしも一致しているとは限らない。
【００４０】
次に、ユーザは、画面上に表示されている、３Ｄ線分４３４の投影線及び特徴線４３３の中から、投影線と特徴線の組み合わせをｋ個（ｋは４以上の所定の整数）指定する。生成部４１６は、指定された投影線が表す３Ｄ線分と指定された特徴線との組み合わせ（対応ペア）を、初期対応ペアとして用いる。この場合、ｋ個の初期対応ペアが生成される。
【００４１】
生成部４１６は、別の先願である特願２０１６−１８７５１５号に記載された技術を用いて、初期対応ペアを自動的に決定することも可能である。この技術によれば、画像から検出された複数の特徴線の中から、所定の条件を満たす複数の特徴線が抽出される。次に、抽出された特徴線と隠線を除去した残りの３Ｄ線分とから、ｋ個の対応ペアが生成され、各対応ペアに含まれる３Ｄ線分の投影線の位置と特徴線の位置との間の誤差の総和が計算される。そして、ｋ個の対応ペアに含まれる３Ｄ線分と特徴線の組み合わせを変更しながら、誤差の総和が繰り返し計算され、誤差の総和が最小となるｋ個の対応ペアが、ｋ個の初期対応ペアに決定される。
【００４２】
パラメータ計算部４１７は、ｋ個の初期対応ペアを用いて、画像４３２を撮影したときの撮像装置４０２の位置及び姿勢を計算する。パラメータ計算部４１７は、例えば、非特許文献４の技術を用いて、ｋ個の初期対応ペアから、位置及び姿勢を表す３行３列の回転行列Ｒと並進ベクトルＴとを計算することができる。
【００４３】
生成部４１６は、パラメータ計算部４１７が計算した撮像装置４０２の位置及び姿勢を用いて、３Ｄ線分４３４を画像４３２上に投影することで、投影線を生成する。例えば、生成部４１６は、次式により、３Ｄ線分４３４を画像４３２上に投影することができる。
【００４４】
【数１】
2019158628.tif 000003
【００４５】
式（１）の（Ｘ，Ｙ，Ｚ）、Ａ、Ｒ、Ｔ、及び（ｕ，ｖ）の定義は、以下の通りである。
（Ｘ，Ｙ，Ｚ）：３Ｄ線分の端点の３次元座標
Ａ：撮像装置４０２の内部パラメータ
Ｒ：３行３列の回転行列
Ｔ：並進ベクトル
（ｕ，ｖ）：画像４３２上における投影線の端点の２次元座標
【００４６】
撮像装置４０２の内部パラメータＡは、例えば、非特許文献１の技術を用いて、事前に計測しておくことができる。
【００４７】
次に、生成部４１６は、生成した投影線の中から、初期対応ペアに対して追加する追加３Ｄ線分の投影線を選択し、特徴線４３３の中から、追加３Ｄ線分に対応付ける追加特徴線を選択し、追加３Ｄ線分と追加特徴線とを対応付けた追加対応ペアを生成する。そして、生成部４１６は、初期対応ペア及び追加対応ペアの集合を、対応ペア集合４３６として記憶部４１１に格納する。したがって、対応ペア集合４３６に含まれる対応ペアの個数Ｎは、ｋ＋１以上になる。
【００４８】
例えば、生成部４１６は、特許文献２の技術を用いて、投影線の長さが長い順に追加３Ｄ線分の投影線を選択し、選択した投影線に対して以下の条件を満たす特徴線を、追加特徴線として選択することができる。
（Ｃ１）投影線の中点と特徴線の中点との距離＜閾値
（Ｃ２）投影線と特徴線との成す角度＜閾値
【００４９】
追加特徴線の本数には上限を設けてもよい。また、物体の１つの辺から２本以上の特徴線が細切れで検出される可能性があるため、生成部４１６は、同一直線上に２本以上の特徴線が存在する場合、いずれか１本のみを追加特徴線として選択してもよい。さらに、生成部４１６は、所定値よりも短い特徴線を、追加特徴線の候補から除外してもよい。例えば、所定値としては、最も長い特徴線の長さの５％〜２０％の値を用いることができる。
【００５０】
次に、パラメータ計算部４１７は、対応ペア集合４３６に含まれるＮ個の対応ペアの中から、ｋ個の対応ペアを選択し、選択したｋ個の対応ペアを用いて、撮像装置４０２の位置及び姿勢を計算する。そして、パラメータ計算部４１７は、計算した位置及び姿勢を表すパラメータを、パラメータ４３７として記憶部４１１に格納する。例えば、パラメータ４３７としては、式（１）のＲ及びＴを用いることができる。
【００５１】
パラメータ計算部４１７は、ｋ個の対応ペアの選択を変更しながら、パラメータ４３７を計算する処理を複数回繰り返す。誤差計算部４１８は、パラメータ４３７が計算される度に、そのパラメータ４３７が表すＲ及びＴを用いて、対応ペア集合４３６内の残りのＮ−ｋ個の対応ペアに含まれる３Ｄ線分を、画像４３２上に投影することで、Ｎ−ｋ本の投影線を生成する。
【００５２】
次に、誤差計算部４１８は、生成した投影線の位置とその対応ペアに含まれる特徴線の位置との間の誤差を計算し、Ｎ−ｋ個の対応ペアそれぞれの誤差の統計値４３８を計算して、記憶部４１１に格納する。誤差の統計値４３８としては、中央値、平均値、最小値等を用いることができる。
【００５３】
図７は、投影線と特徴線との間の領域の面積に基づく誤差の計算方法の例を示している。Ｎ−ｋ個の対応ペアのうちｉ番目（ｉ＝１〜Ｎ−ｋ）の対応ペアに含まれる３Ｄ線分の投影線が線分７０１であり、特徴線が線分７０２である場合、線分７０１の両端と線分７０２の両端とをそれぞれ結ぶ線分７０３及び線分７０４を定義することができる。この場合、線分７０１〜線分７０４によって囲まれた領域の面積Ａｉを、投影線の位置と特徴線の位置との間の誤差Ｅｉとして用いることができる。
【００５４】
Ｅｉ＝Ａｉ      （２）
【００５５】
面積Ａｉが小さいほど、誤差Ｅｉは小さくなり、線分７０１が線分７０２に重なっている場合、誤差Ｅｉは０になる。
【００５６】
図８は、投影線と特徴線との間の距離に基づく誤差の計算方法の例を示している。線分７０２の両端から線分７０１上へ下ろした垂線８０１及び垂線８０２の長さを、それぞれ、Ｌｉ１及びＬｉ２とする。この場合、Ｌｉ１及びＬｉ２の和を、誤差Ｅｉとして用いることができる。
【００５７】
Ｅｉ＝Ｌｉ１＋Ｌｉ２      （３）
【００５８】
Ｌｉ１及びＬｉ２が短いほど、誤差Ｅｉは小さくなり、線分７０１が線分７０２に重なっている場合、誤差Ｅｉは０になる。
【００５９】
誤差計算部４１８は、それぞれのパラメータ４３７を用いて計算した統計値４３８の最小値を求める。閾値設定部４１９は、統計値４３８の最小値を用いて、誤差に対する閾値４３９を計算し、記憶部４１１に格納する。例えば、統計値４３８としてＮ−ｋ個の誤差の中央値ｍｅｄを用いた場合、閾値設定部４１９は、非特許文献５の技術を用いて、次式により標準偏差σから閾値ＴＨを計算し、閾値ＴＨを閾値４３９として用いることができる。
【００６０】
ＴＨ＝２．５＊σ      （４）
σ＝Ｃ＊｛１＋（５／（Ｎ−ｋ））｝＊（ｍｅｄ）１／２      （５）
Ｃ＝１．４８２６      （６）
【００６１】
図９は、図１に示した投影線と特徴線との間の誤差の例を示している。この例では、Ｎ＝１２、ｋ＝４であり、横軸はｉ番目（ｉ＝１〜８）の対応ペアを表し、縦軸はｉ番目の対応ペアの誤差Ｅｉを表す。
【００６２】
１番目〜６番目の対応ペアは、３Ｄ線分と特徴線とが正しく対応付けられた、物体１０１の良好な形状の対応ペアを表し、それらの誤差は全体的に類似した値になる。一方、７番目の対応ペアは、形状の不良部分である投影線１１１の３Ｄ線分と特徴線１２１との対応ペアを表し、その誤差は、１番目〜６番目の対応ペアと比較して突出した値になる。また、８番目の対応ペアは、誤って対応付けられた投影線１１２の３Ｄ線分と特徴線１２２との対応ペアを表し、その誤差は、７番目の対応ペアの誤差よりもはるかに大きい。
【００６３】
破線９０１は、式（４）〜式（６）を用いて計算された閾値ＴＨを表す。この場合、ＴＨ＝１３．２であり、１番目〜６番目の対応ペアの誤差はＴＨよりも小さく、７番目及び８番目の対応ペアの誤差はＴＨよりも大きい。このように、式（４）の閾値ＴＨを用いることで、誤差の外れ値の影響を抑えて、良好な形状の対応ペアと不良部分の対応ペアとを区別することが可能になる。
【００６４】
次に、分類部４２０は、統計値４３８の最小値を計算する際に用いられたパラメータ４３７を選択し、選択したパラメータ４３７を用いて、対応ペア集合４３６に含まれる３Ｄ線分を、画像４３２上に再度投影することで、投影線を生成する。そして、分類部４２０は、生成した投影線の位置とその対応ペアに含まれる特徴線の位置との間の誤差を計算し、閾値４３９よりも小さな誤差を有する対応ペアを、正しく対応付けられた対応ペア（正しい対応ペア）に分類する。
【００６５】
一方、閾値４３９よりも大きな誤差を有する対応ペアの中には、物体の形状の不良部分を表す対応ペアだけでなく、誤って対応付けられた対応ペア（誤った対応ペア）が含まれている可能性がある。この場合、閾値４３９よりも大きな誤差を有する対応ペアの中から誤った対応ペアを除外して、不良部分の対応ペアのみを抽出することが望ましい。
【００６６】
そこで、分類部４２０は、対応ペア集合４３６から、閾値４３９よりも大きな誤差を有する対応ペアを、判定対象の対応ペアとして抽出する。そして、分類部４２０は、判定対象の対応ペアに含まれる３Ｄ線分と他の対応ペアに含まれる３Ｄ線分との間の連結状態に基づいて、判定対象の対応ペアを物体の形状の不良部分に分類するか否かを決定する。例えば、分類部４２０は、以下のような判定基準に基づいて、判定対象の対応ペアを不良部分に分類するか否かを決定することができる。
【００６７】
（Ｐ１）分類部４２０は、判定対象の対応ペアに含まれる特徴線の端点との距離が所定値よりも小さい端点を有する特徴線を含む対応ペアを、他の対応ペアとして選択する。そして、分類部４２０は、判定対象の対応ペアに含まれる３Ｄ線分の端点と他の対応ペアに含まれる３Ｄ線分の端点との距離が所定値よりも小さい場合、判定対象の対応ペアを不良部分に分類する。また、分類部４２０は、それらの３Ｄ線分の端点間の距離が所定値よりも大きい場合、判定対象の対応ペアを誤った対応ペアに分類する。
【００６８】
（Ｐ２）分類部４２０は、判定対象の対応ペアに含まれる３Ｄ線分の端点との距離が所定値よりも小さい端点を有する３Ｄ線分を含む対応ペアを、他の対応ペアとして選択する。そして、分類部４２０は、判定対象の対応ペアに含まれる特徴線の端点と他の対応ペアに含まれる特徴線の端点との距離が所定値よりも小さい場合、判定対象の対応ペアを不良部分に分類する。また、分類部４２０は、それらの特徴線の端点間の距離が所定値よりも大きい場合、判定対象の対応ペアを誤った対応ペアに分類する。
【００６９】
（Ｐ１）の判定基準によれば、判定対象の対応ペアの特徴線の近くに他の対応ペアの特徴線が存在する場合、判定対象の対応ペアが不良部分の対応ペア又は誤った対応ペアのいずれであるかを容易に判定することができる。
【００７０】
（Ｐ２）の判定基準によれば、判定対象の対応ペアの特徴線の近くに他の対応ペアの特徴線が存在しない場合であっても、判定対象の対応ペアが不良部分の対応ペア又は誤った対応ペアのいずれであるかを容易に判定することができる。
【００７１】
分類部４２０は、（Ｐ１）又は（Ｐ２）のいずれか一方の判定基準に従って判定対象の対応ペアを分類してもよく、両方の判定基準を併用して判定対象の対応ペアを分類してもよい。以下では、２本の３Ｄ線分の端点間の距離が所定値よりも小さい場合、それらの３Ｄ線分同士が連結していると記すことがある。同様に、２本の特徴線の端点間の距離が所定値よりも小さい場合、それらの特徴線同士が連結していると記すことがある。
【００７２】
表示部４２１は、対応ペア集合４３６の一部又は全部を画面上に表示し、各対応ペアの３Ｄ線分と特徴線との間のずれ量を表示する。例えば、表示部４２１は、対応ペア集合４３６から誤った対応ペアを除外して、正しい対応ペアと不良部分の対応ペアのみを表示し、そのうち不良部分の対応ペアを強調表示する。
【００７３】
これにより、ユーザは、ＣＡＤデータ４３１が表す形状と一致しない、物体の形状の不良部分を容易に確認することができ、形状の不一致の度合いを定量的に把握することができる。また、誤った対応ペアが表示されないため、形状検査の作業が効率化される。
【００７４】
図１０は、物体の形状の不良部分を表す対応ペアの例を示している。図１０（ａ）は、図１の投影線１１１の３Ｄ線分と特徴線１２１との対応ペアを示しており、図１０（ｂ）は、特徴線１２１を含む複数の特徴線を示している。
【００７５】
図１０（ｃ）は、図１０（ａ）の対応ペアを判定対象とした場合の他の対応ペアを示している。投影線１００１〜投影線１００４は、投影線１１１の３Ｄ線分と連結している３Ｄ線分の投影線である。特徴線１０１１は、投影線１００１の３Ｄ線分を含む対応ペアの特徴線であり、特徴線１０１２は、投影線１００２の３Ｄ線分を含む対応ペアの特徴線である。
【００７６】
例えば、（Ｐ２）の判定基準を用いた場合、判定対象の対応ペアに含まれる３Ｄ線分と連結している３Ｄ線分を含む対応ペアが、他の対応ペアとして選択される。したがって、特徴線１０１１を含む対応ペアと、特徴線１０１２を含む対応ペアとが、他の対応ペアとして選択される。そして、判定対象の対応ペアに含まれる特徴線１２１が、特徴線１０１１及び特徴線１０１２と連結しているため、判定対象の対応ペアは、不良部分に分類される。
【００７７】
図１１は、誤った対応ペアの例を示している。図１１（ａ）は、図１の投影線１１２の３Ｄ線分と特徴線１２２との対応ペアを示しており、図１１（ｂ）は、特徴線１２２を含む複数の特徴線を示している。
【００７８】
図１１（ｃ）は、図１１（ａ）の対応ペアを判定対象とした場合の他の対応ペアを示している。特徴線１１０１は、特徴線１２２と連結している特徴線であり、投影線１１１１は、特徴線１１０１を含む対応ペアの３Ｄ線分の投影線である。
【００７９】
例えば、（Ｐ１）の判定基準を用いた場合、判定対象の対応ペアに含まれる特徴線と連結している特徴線を含む対応ペアが、他の対応ペアとして選択される。したがって、特徴線１１０１を含む対応ペアが、他の対応ペアとして選択される。そして、判定対象の対応ペアに含まれる３Ｄ線分が、他の対応ペアに含まれる３Ｄ線分と連結していないため、判定対象の対応ペアは、誤った対応ペアに分類される。
【００８０】
（Ｐ１）及び（Ｐ２）の判定基準を併用する場合、分類部４２０は、例えば、以下のような分類処理により、判定対象の対応ペアを不良部分の対応ペア又は誤った対応ペアに分類することができる。
／／  判定対象の対応ペアの周りの連結状態の判定
ｆｏｒ  すべての判定対象の対応ペア
ＴＰ＝判定対象の対応ペア
ｆｌａｇ＝ＯＮ
ｆｏｒ  ＴＰの３Ｄ線分に連結しているすべての３Ｄ線分
ｉｆ  ｛ＴＰの３Ｄ線分に連結している３Ｄ線分｝を含む対応ペアＯＰが存在
ｉｆ  ＯＰの特徴線とＴＰの特徴線とが連結していない
ｆｌａｇ＝ＯＦＦ
ｅｎｄ
ｅｎｄ
ｅｎｄ
ｆｏｒ  ＴＰの特徴線に連結しているすべての特徴線
ｉｆ  ｛ＴＰの特徴線に連結している特徴線｝を含む対応ペアＯＰが存在
ｉｆ  ＯＰの３Ｄ線分とＴＰの３Ｄ線分とが連結していない
ｆｌａｇ＝ＯＦＦ
ｅｎｄ
ｅｎｄ
ｅｎｄ
／／  誤った対応ペア又は不良部分の判定
ｉｆ  ｆｌａｇ＝＝ＯＦＦ
ＴＰ＝誤った対応ペア
ｅｌｓｅ
ＴＰ＝不良部分の対応ペア
ｅｎｄ
ｅｎｄ
【００８１】
上記分類処理において、ＯＰの特徴線の端点とＴＰの特徴線の端点との距離が閾値Ｄ以下である場合、ＯＰの特徴線とＴＰの特徴線とが連結していると判定される。一方、距離が閾値Ｄよりも大きい場合、ＯＰの特徴線とＴＰの特徴線とが連結していないと判定される。
【００８２】
また、ＯＰの３Ｄ線分を表す投影線の端点と、ＴＰの３Ｄ線分を表す投影線の端点との距離が、閾値Ｄ以下である場合、ＯＰの３Ｄ線分とＴＰの３Ｄ線分とが連結していると判定される。一方、距離が閾値Ｄよりも大きい場合、ＯＰの３Ｄ線分とＴＰの３Ｄ線分とが連結していないと判定される。例えば、閾値Ｄとしては、１画素〜１０画素の範囲の値を用いることができる。閾値Ｄは、数画素であってもよい。
【００８３】
図１２は、画面上に表示された対応ペア集合４３６の例を示している。この例では、図１に示した３Ｄ線分と特徴線の対応ペアのうち、正しい対応ペアと不良部分の対応ペアとが物体１０１の画像上に重畳表示されている。
【００８４】
例えば、表示部４２１は、正しい対応ペアの投影線及び特徴線を青で表示し、不良部分の対応ペアの投影線１１１及び特徴線１２１を赤で表示することで、不良部分の対応ペアを強調表示することができる。表示部４２１は、投影線及び特徴線の色を変更する代わりに、太さ、線種等を変更することで、不良部分の対応ペアを強調表示してもよい。なお、誤った対応ペアに分類された投影線１１２及び特徴線１２２は、図１２の画面上に表示されていない。
【００８５】
図１と同様に、投影線及び特徴線の近くに表示された数字は、投影線の位置と特徴線の位置との間のずれ量を、単位をｍｍとする３次元空間内の距離に変換した値を表す。分類部４２０は、３次元空間内におけるずれ量Ｅｒｒ［ｍｍ］を、次式により計算することができる。
【００８６】
Ｅｒｒ＝（ＬＡ／ＬＢ）＊ｈ      （７）
【００８７】
式（７）のＬＡ［ｍｍ］は、対応ペアに含まれる３Ｄ線分の３次元空間内における長さを表し、ＬＢ［ｐｉｘｅｌ］は、その３Ｄ線分の投影線の長さを表す。ｈ［ｐｉｘｅｌ］は、画像４３２上で、対応ペアに含まれる特徴線の両端から投影線に対して下した垂線の長さの平均値を表す。
【００８８】
調整部４２２は、閾値４３９を調整し、表示部４２１は、調整部４２２によって調整された閾値４３９に応じて、不良部分の対応ペアを強調表示する。
【００８９】
図１３は、閾値４３９を調整するためのＧＵＩ（Graphical User Interface）の例を示している。ユーザは、スライダ１３０１をスライドさせることで、閾値設定部４１９が設定した閾値４３９を変更することができ、変更された閾値４３９は、ボックス１３０２内に表示される。
【００９０】
調整部４２２は、スライダ１３０１の位置に応じて閾値４３９を変更し、分類部４２０は、変更された閾値４３９を用いて、対応ペア集合４３６の対応ペアを再度分類する。そして、表示部４２１は、分類結果に従って、画面上の対応ペアの表示を変更する。
【００９１】
調整部４２２を設けることで、ユーザは、閾値設定部４１９が設定した閾値４３９を微調整しながら、不良部分の対応ペアが変化するか否かを確認することができる。
【００９２】
選択部４２３は、対応ペア集合４３６から表示対象の対応ペアを選択する。表示部４２１は、表示対象の対応ペアを画面上に表示し、表示対象の対応ペアのうち不良部分の対応ペアを強調表示する。
【００９３】
図１４は、表示対象の対応ペアを選択するためのＧＵＩの例を示している。リストボックス１４０１内には、対応ペアの識別情報であるＩＤとずれ量Ｅｒｒとを含む項目のリストが表示されている。ユーザは、リストボックス１４０１内の各チェックボックスをチェックすることで、表示対象の対応ペアを指定することができる。また、ユーザは、全選択のチェックボックス１４０２をチェックすることで、すべての対応ペアを表示対象に指定することもできる。
【００９４】
選択部４２３を設けることで、ユーザは、表示対象の対応ペアを絞り込んで画面上に表示させることができるため、不良部分の確認が容易になる。
【００９５】
図４の検査装置４０１によれば、物体の形状を表す３Ｄ線分の投影線と、その物体の画像から検出された特徴線との間の誤差の統計値に基づいて、誤差に対する閾値が動的に設定される。設定された閾値は、個々の物体の形状を反映した閾値であるため、この閾値を用いて対応ペアを分類することで、ＣＡＤデータと一致しない不良部分を精度良く特定することができる。また、ユーザの目視確認では見落とす可能性のある不良部分も抽出され、その不良部分のずれ量が定量的に表示されるため、検査結果を容易に保存することが可能になる。
【００９６】
図１５Ａ及び図１５Ｂは、図４の検査装置４０１が行う画像処理の第１の具体例を示すフローチャートである。まず、画像取得部４１２は、撮像装置４０２から画像４３２を取得し（ステップ１５０１）、特徴線検出部４１３は、画像４３２から複数の特徴線４３３を検出する（ステップ１５０２）。
【００９７】
また、線分検出部４１４は、ＣＡＤデータ３３１から複数の３Ｄ線分４３４を検出し（ステップ１５０３）、パラメータ設定部４１５は、撮像装置４０２の初期位置及び初期姿勢を表す初期パラメータ４３５を設定する（ステップ１５０４）。
【００９８】
次に、生成部４１６は、３Ｄ線分４３４から隠線を除去し、残りの３Ｄ線分からｋ個の初期対応ペアを生成し（ステップ１５０５）、パラメータ計算部４１７は、ｋ個の初期対応ペアを用いて、撮像装置４０２の位置及び姿勢を計算する（ステップ１５０６）。
【００９９】
次に、生成部４１６は、撮像装置４０２の位置及び姿勢を用いて、１個以上の追加対応ペアを生成し、初期対応ペア及び追加対応ペアを含む対応ペア集合４３６を生成する（ステップ１５０７）。
【０１００】
次に、パラメータ計算部４１７は、対応ペア集合４３６に含まれるＮ個の対応ペアの中から、ｋ個の対応ペアをランダムに選択し、選択したｋ個の対応ペアを用いて、パラメータ４３７を計算する（ステップ１５０８）。
【０１０１】
次に、誤差計算部４１８は、パラメータ４３７を用いて、対応ペア集合４３６内の残りのＮ−ｋ個の対応ペアに含まれる３Ｄ線分を、画像４３２上に投影することで、Ｎ−ｋ本の投影線を生成する（ステップ１５０９）。そして、誤差計算部４１８は、投影線の位置と特徴線の位置との間の誤差を計算し、Ｎ−ｋ個の誤差の統計値４３８を計算する（ステップ１５１０）。
【０１０２】
次に、パラメータ計算部４１７は、パラメータ４３７の計算を所定回数行ったか否かをチェックする（ステップ１５１１）。所定回数としては、例えば、次式により計算される回数Ｍを用いることができる。
【０１０３】
Ｍ＝ｌｏｇ（１−ｐ）／ｌｏｇ（１−（１−ｅ）ｋ）      （８）
【０１０４】
式（８）のｅは、対応ペア集合４３６に含まれる、不良部分の対応ペア及び誤った対応ペアの割合を表し、ｐは、その割合がｅとなる確率を表す。例えば、ｋ＝４、ｅ＝０．３、ｐ＝０．９９である場合、Ｍは１７回となる。
【０１０５】
パラメータ４３７の計算を所定回数行っていない場合（ステップ１５１１，ＮＯ）、検査装置４０１は、ｋ個の対応ペアの選択を変更して、ステップ１５０８以降の処理を繰り返す。
【０１０６】
パラメータ４３７の計算を所定回数行った場合（ステップ１５１１，ＹＥＳ）、誤差計算部４１８は、統計値４３８の最小値を求める（ステップ１５１２）。そして、閾値設定部４１９は、統計値４３８の最小値を用いて閾値４３９を計算する（ステップ１５１３）。
【０１０７】
次に、分類部４２０は、統計値４３８の最小値を計算する際に用いられたパラメータ４３７を選択し、選択したパラメータ４３７を用いて、対応ペア集合４３６に含まれる３Ｄ線分を画像４３２上に投影することで、投影線を生成する（ステップ１５１４）。そして、分類部４２０は、投影線の位置と特徴線の位置との間の誤差を閾値４３９と比較することで、対応ペアを分類し（ステップ１５１５）、誤った対応ペアを表示対象から除外する（ステップ１５１６）。
【０１０８】
次に、表示部４２１は、正しい対応ペアと不良部分の対応ペアを画面上に表示し、各対応ペアの３Ｄ線分と特徴線との間のずれ量を表示する（ステップ１５１７）。
【０１０９】
図１５の画像処理によれば、対応ペア集合４３６から選択したｋ個の対応ペアを用いて、撮像装置４０２の位置及び姿勢を推定し、推定した位置及び姿勢を用いて、残りのＮ−ｋ個の対応ペアの誤差を計算することができる。したがって、Ｎがｋよりも十分に大きい場合、対応ペア集合４３６に含まれるほとんどの対応ペアの誤差を評価して、閾値４３９を決定することが可能になる。
【０１１０】
また、ｋ個の対応ペアの選択を変更して、誤差の統計値４３８を求める処理を繰り返し、統計値４３８の最小値を用いて閾値４３９を決定することで、閾値４３９に対する誤差の外れ値の影響を抑えることができ、閾値４３９の精度が向上する。したがって、良好な形状の対応ペアと不良部分の対応ペアとを精度良く区別することが可能になる。
【０１１１】
なお、ステップ１５１１において、検査装置４０１は、パラメータ４３７の計算を所定回数行った場合に繰り返し処理を打ち切る代わりに、処理開始から所定時間が経過した場合に繰り返し処理を打ち切ってもよい。
【０１１２】
また、計算時間に余裕がある場合、ｋ個の対応ペアをランダムに選択するのではなく、対応ペア集合４３６に含まれるｋ個の対応ペアのすべての組み合わせについて、ステップ１５０８〜ステップ１５１０の処理を繰り返してもよい。この場合、ｋ個の対応ペアの順序を考慮して、ＮＰｋ通りの組み合わせを生成してもよく、３Ｄ線分の投影線が長い順にＮ個の対応ペアを事前にソートしておき、ソート後のＮ個の対応ペアからＮＣｋ通りの組み合わせを生成してもよい。
【０１１３】
ｋ個の対応ペアをランダムに選択して誤差の統計値４３８を計算し、繰り返し処理を所定回数で打ち切った場合、処理時間は短くなるが、ｋ個の対応ペアの選択結果に応じて、統計値４３８の最小値が変化する可能性がある。一方、すべての組み合わせについて誤差の統計値４３８を計算する場合、処理時間がある程度長くなっても、同じ画像４３２に対して毎回同じ最小値が得られるため、安定した分類結果を得ることができる。
【０１１４】
さらに、対応ペアの個数に対する閾値Ｎｐを設定しておき、Ｎ＜Ｎｐである場合、ｋ個の対応ペアのすべての組み合わせについて処理を繰り返し、Ｎ≧Ｎｐである場合、繰り返し処理を所定回数で打ち切るようにしてもよい。
【０１１５】
図１６は、図２の検査装置２０１の第２の具体例を示している。図１６の検査装置１６０１は、図４の検査装置４０１に鮮鋭化部１６１１を追加した構成を有する。
【０１１６】
鮮鋭化部１６１１は、分類部４２０が抽出した判定対象の対応ペアに含まれる３Ｄ線分の投影線を選択し、選択した投影線を含む所定領域の画像を鮮鋭化する。例えば、鮮鋭化部１６１１は、所定領域の画像に対して、アンシャープマスキングのフィルタ処理を適用することで、その画像を鮮鋭化することができる。環境光の影響等によって、画像４３２から部分的に特徴線が検出されなかった場合であっても、その部分の画像を鮮鋭化することで、特徴線が検出される可能性が高くなる。
【０１１７】
特徴線検出部４１３は、鮮鋭化された所定領域の画像に対して、再度、エッジ検出処理を行って、所定領域から特徴線を検出する。これにより、対応ペア集合４３６に対して追加する追加特徴線が検出される。
【０１１８】
生成部４１６は、対応ペア集合４３６に対して追加する追加３Ｄ線分と、追加特徴線とを対応付けることで、新たな追加対応ペアを生成する。そして、分類部４２０は、生成部４１６が生成した追加対応ペアを他の対応ペアとして用いて、再度、分類処理を行う。
【０１１９】
図１７は、投影線を含む所定領域の例を示している。矩形領域１７０１は、投影線１１１を含む所定領域を表し、矩形領域１７０２は、投影線１１２を含む所定領域を表す。矩形領域１７０１の水平方向の辺は、投影線１１１の端点から垂直方向に所定距離だけ離れており、矩形領域１７０１の垂直方向の辺は、投影線１１１の端点から水平方向に所定距離だけ離れている。所定距離としては、例えば、数十画素程度の値を用いることができる。
【０１２０】
同様に、矩形領域１７０２の水平方向の辺は、投影線１１２の端点から垂直方向に所定距離だけ離れており、矩形領域１７０２の垂直方向の辺は、投影線１１２の端点から水平方向に所定距離だけ離れている。
【０１２１】
鮮鋭化部１６１１を設けることで、特徴線が検出されなかった領域から新たに特徴線を検出して、新たな追加対応ペアを生成することが可能になる。新たな追加対応ペアを他の対応ペアとして用いて分類処理を行うことで、連結状態に基づく判定処理の判定対象が増加し、誤った対応ペアの抽出精度が向上する。
【０１２２】
また、図１５Ａのステップ１５０７において、追加特徴線の本数に上限が設けられており、所定値よりも短い特徴線が追加特徴線の候補から除外されている場合であっても、そのような特徴線を新たに追加して、画面上に表示することが可能になる。
【０１２３】
図１８Ａ及び図１８Ｂは、図１６の検査装置１６０１が行う画像処理の第２の具体例を示すフローチャートである。ステップ１８０１〜ステップ１８１３及びステップ１８１５〜ステップ１８１８の処理は、図１５のステップ１５０１〜ステップ１５１７の処理と同様である。
【０１２４】
ステップ１８１４において、検査装置１６０１は、追加対応ペアを生成する。まず、鮮鋭化部１６１１は、判定対象の対応ペアに含まれる３Ｄ線分の投影線を含む所定領域の画像を鮮鋭化する。そして、特徴線検出部４１３は、鮮鋭化された所定領域の画像から特徴線を検出する。
【０１２５】
次に、生成部４１６は、ステップ１８０７の処理と同様にして、所定領域に対する１個以上の追加対応ペアを生成し、対応ペア集合４３６に追加する。そして、検査装置１６０１は、追加対応ペアが追加された対応ペア集合４３６を用いて、ステップ１８１５以降の処理を行う。
【０１２６】
図２、図４、及び図１６の検査装置の構成は一例に過ぎず、検査装置の用途又は条件に応じて一部の構成要素を省略又は変更してもよい。例えば、図４及び図１６の検査装置において、事前に画像４３２が記憶部４１１に格納されている場合は、画像取得部４１２を省略することができる。ＣＡＤデータ４３１の代わりに、物体の形状を表す他の形状情報を用いてもよい。
【０１２７】
図４及び図１６の検査装置において、外部の装置が対応ペア集合４３６を表示する場合は、表示部４２１を省略することができる。閾値４３９を調整する必要がない場合は、調整部４２２を省略することができ、表示対象の対応ペアを選択する必要がない場合は、選択部４２３を省略することができる。
【０１２８】
図３、図１５Ａ、図１５Ｂ、図１８Ａ、及び図１８Ｂのフローチャートは一例に過ぎず、検査装置の構成又は条件に応じて一部の処理を省略又は変更してもよい。例えば、事前に画像４３２が記憶部４１１に格納されている場合は、図１５Ａのステップ１５０１及び図１８Ａのステップ１８０１の処理を省略することができる。
【０１２９】
図１の投影線及び特徴線、図５のＣＡＤデータ、図６の３Ｄ線分及び特徴線は一例に過ぎず、ＣＡＤデータ、３Ｄ線分、投影線、及び特徴線は、撮影対象の物体、検査装置の構成又は条件に応じて変化する。
【０１３０】
図７及び図８の誤差の計算方法は一例に過ぎず、検査装置の構成又は条件に応じて別の計算方法を用いてもよい。図９の誤差は一例に過ぎず、投影線と特徴線との間の誤差は、撮影対象の物体、検査装置の構成又は条件に応じて変化する。
【０１３１】
図１０の不良部分を表す対応ペア、図１１の誤った対応ペア、及び図１２の対応ペア集合は一例に過ぎず、対応ペアは、撮影対象の物体、検査装置の構成又は条件に応じて変化する。
【０１３２】
図１３及び図１４のＧＵＩは一例に過ぎず、検査装置の構成又は条件に応じて別のＧＵＩを用いてもよい。図１７の所定領域は一例に過ぎず、検査装置の構成又は条件に応じて別の形状又は別の大きさの所定領域を用いてもよい。
【０１３３】
式（１）〜式（８）の計算式は一例に過ぎず、検査装置の構成又は条件に応じて別の計算式を用いてもよい。
【０１３４】
図１９は、図２、図４、及び図１６の検査装置として用いられる情報処理装置（コンピュータ）の構成例を示している。図１９の情報処理装置は、ＣＰＵ（Central Processing Unit）１９０１、メモリ１９０２、入力装置１９０３、出力装置１９０４、補助記憶装置１９０５、媒体駆動装置１９０６、及びネットワーク接続装置１９０７を含む。これらの構成要素はバス１９０８により互いに接続されている。図４及び図１６の撮像装置４０２は、バス１９０８に接続されていてもよい。
【０１３５】
メモリ１９０２は、例えば、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、フラッシュメモリ等の半導体メモリであり、処理に用いられるプログラム及びデータを格納する。メモリ１９０２は、図２の記憶部２１１、又は図４及び図１６の記憶部４１１として用いることができる。
【０１３６】
ＣＰＵ１９０１（プロセッサ）は、例えば、メモリ１９０２を利用してプログラムを実行することにより、図２の検出部２１２、生成部２１３、設定部２１４、及び分類部２１５として動作する。
【０１３７】
ＣＰＵ１９０１は、メモリ１９０２を利用してプログラムを実行することにより、図４及び図１６の画像取得部４１２、特徴線検出部４１３、線分検出部４１４、及びパラメータ設定部４１５としても動作する。ＣＰＵ１９０１は、メモリ１９０２を利用してプログラムを実行することにより、生成部４１６、パラメータ計算部４１７、誤差計算部４１８、閾値設定部４１９、分類部４２０、調整部４２２、及び選択部４２３としても動作する。
【０１３８】
ＣＰＵ１９０１は、メモリ１９０２を利用してプログラムを実行することにより、図１６の鮮鋭化部１６１１としても動作する。
【０１３９】
入力装置１９０３は、例えば、キーボード、ポインティングデバイス等であり、オペレータ又はユーザからの指示又は情報の入力に用いられる。出力装置１９０４は、例えば、表示装置、プリンタ、スピーカ等であり、オペレータ又はユーザへの問い合わせ又は指示、及び処理結果の出力に用いられる。処理結果は、分類された対応ペアを表す投影線及び特徴線であってもよい。出力装置１９０４は、図４及び図１６の表示部４２１として用いることができる。
【０１４０】
補助記憶装置１９０５は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク装置、テープ装置等である。補助記憶装置１９０５は、ハードディスクドライブ又はフラッシュメモリであってもよい。情報処理装置は、補助記憶装置１９０５にプログラム及びデータを格納しておき、それらをメモリ１９０２にロードして使用することができる。補助記憶装置１９０５は、図２の記憶部２１１、又は図４及び図１６の記憶部４１１として用いることができる。
【０１４１】
媒体駆動装置１９０６は、可搬型記録媒体１９０９を駆動し、その記録内容にアクセスする。可搬型記録媒体１９０９は、メモリデバイス、フレキシブルディスク、光ディスク、光磁気ディスク等である。可搬型記録媒体１９０９は、ＣＤ−ＲＯＭ（Compact Disk Read Only Memory）、ＤＶＤ（Digital Versatile Disk）、ＵＳＢ（Universal Serial Bus）メモリ等であってもよい。オペレータ又はユーザは、この可搬型記録媒体１９０９にプログラム及びデータを格納しておき、それらをメモリ１９０２にロードして使用することができる。
【０１４２】
このように、画像処理に用いられるプログラム及びデータを格納するコンピュータ読み取り可能な記録媒体は、メモリ１９０２、補助記憶装置１９０５、又は可搬型記録媒体１９０９のような、物理的な（非一時的な）記録媒体である。
【０１４３】
ネットワーク接続装置１９０７は、ＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）等の通信ネットワークに接続され、通信に伴うデータ変換を行う通信インタフェース回路である。情報処理装置は、プログラム及びデータを外部の装置からネットワーク接続装置１９０７を介して受信し、それらをメモリ１９０２にロードして使用することができる。
【０１４４】
なお、情報処理装置が図１９のすべての構成要素を含む必要はなく、用途又は条件に応じて一部の構成要素を省略することも可能である。例えば、可搬型記録媒体１９０９又は通信ネットワークを使用しない場合は、媒体駆動装置１９０６又はネットワーク接続装置１９０７を省略してもよい。
【０１４５】
開示の実施形態とその利点について詳しく説明したが、当業者は、特許請求の範囲に明確に記載した本発明の範囲から逸脱することなく、様々な変更、追加、省略をすることができるであろう。
【０１４６】
図１乃至図１９を参照しながら説明した実施形態に関し、さらに以下の付記を開示する。
（付記１）
物体の形状を表す複数の線分を含む形状情報を記憶する記憶部と、
撮像装置が撮影した前記物体の画像から、複数の特徴線を検出する検出部と、
前記複数の線分それぞれと前記複数の特徴線それぞれとを対応付けた複数の組み合わせを生成する生成部と、
前記複数の線分それぞれを前記画像上に投影することで、複数の投影線を生成し、前記複数の組み合わせ各々に含まれる線分の投影線の位置と特徴線の位置との間の誤差の統計値に基づいて、前記誤差に対する閾値を設定する設定部と、
前記閾値を用いて前記複数の組み合わせを分類する分類部と、
を備えることを特徴とする検査装置。
（付記２）
前記複数の組み合わせの一部又は全部を画面上に表示する表示部をさらに備え、
前記分類部は、前記複数の組み合わせのうち、前記閾値よりも大きな誤差を有する組み合わせを抽出し、抽出した組み合わせに含まれる線分と他の組み合わせに含まれる線分との間の連結状態に基づいて、前記抽出した組み合わせを前記物体の形状の不良部分に分類するか否かを決定し、
前記表示部は、前記物体の形状の不良部分に分類された組み合わせを強調表示することを特徴とする付記１記載の検査装置。
（付記３）
前記分類部は、前記複数の組み合わせのうち、前記抽出した組み合わせに含まれる第１特徴線の端点との距離が所定値よりも小さい端点を有する第２特徴線を含む組み合わせを、前記他の組み合わせとして選択し、前記抽出した組み合わせに含まれる第１線分の端点と前記他の組み合わせに含まれる第２線分の端点との距離が前記所定値よりも小さい場合、前記抽出した組み合わせを前記物体の形状の不良部分に分類することを特徴とする付記２記載の検査装置。
（付記４）
前記分類部は、前記第１線分の端点と前記第２線分の端点との距離が前記所定値よりも大きい場合、前記抽出した組み合わせを、誤った組み合わせに分類することを特徴とすることを特徴とする付記３記載の検査装置。
（付記５）
前記分類部は、前記複数の組み合わせのうち、前記抽出した組み合わせに含まれる第１線分の端点との距離が所定値よりも小さい端点を有する第２線分を含む組み合わせを、前記他の組み合わせとして選択し、前記抽出した組み合わせに含まれる第１特徴線の端点と前記他の組み合わせに含まれる第２特徴線の端点との距離が前記所定値よりも小さい場合、前記抽出した組み合わせを前記物体の形状の不良部分に分類することを特徴とする付記２記載の検査装置。
（付記６）
前記分類部は、前記第１特徴線の端点と前記第２特徴線の端点との距離が前記所定値よりも大きい場合、前記抽出した組み合わせを、誤った組み合わせに分類することを特徴とする付記５記載の検査装置。
（付記７）
前記閾値を調整する調整部をさらに備え、
前記表示部は、前記調整部によって調整された閾値に応じて、前記物体の形状の不良部分に分類された組み合わせを強調表示することを特徴とする付記２乃至６のいずれか１項に記載の検査装置。
（付記８）
前記複数の組み合わせのうち表示対象の組み合わせを選択する選択部をさらに備え、
前記表示部は、前記表示対象の組み合わせを前記画面上に表示し、前記表示対象の組み合わせのうち、前記物体の形状の不良部分に分類された組み合わせを強調表示することを特徴とする付記２乃至７のいずれか１項に記載の検査装置。
（付記９）
前記抽出した組み合わせに含まれる線分の投影線を含む所定領域の画像を鮮鋭化する鮮鋭化部をさらに備え、
前記検出部は、前記鮮鋭化部によって鮮鋭化された前記所定領域の画像から、前記複数の特徴線以外の追加特徴線を検出し、
前記生成部は、前記複数の線分以外の追加線分と前記追加特徴線とを対応付けた追加の組み合わせを生成し、
前記分類部は、前記追加の組み合わせを前記他の組み合わせとして用いて、前記抽出した組み合わせを前記物体の形状の不良部分に分類するか否かを決定することを特徴とする付記２乃至８のいずれか１項に記載の検査装置。
（付記１０）
前記分類部は、前記複数の組み合わせのうち、前記閾値よりも小さな誤差を有する組み合わせを、正しい組み合わせに分類することを特徴とする付記１乃至９のいずれか１項に記載の検査装置。
（付記１１）
前記検査装置は、３次元空間内における前記撮像装置の位置と姿勢とを推定する推定部をさらに備え、
前記形状情報は、前記複数の線分とは異なる所定数の線分をさらに含み、
前記検出部は、前記画像から、前記複数の特徴線とは異なる所定数の特徴線をさらに検出し、
前記生成部は、前記所定数の線分と前記複数の線分とを含む線分の集合に含まれる線分と、前記所定数の特徴線と前記複数の特徴線とを含む特徴線の集合に含まれる特徴線とを対応付けることで、線分と特徴線とを対応付けた組み合わせの集合を生成し、
前記推定部は、前記組み合わせの集合の中から、前記所定数の線分それぞれと前記所定数の特徴線それぞれとを対応付けた前記所定数の組み合わせを選択し、前記所定数の組み合わせを用いて、前記撮像装置の位置と姿勢とを推定し、
前記設定部は、前記撮像装置の位置と姿勢とを用いて、前記複数の線分それぞれを前記画像上に投影することで、前記複数の投影線を生成することを特徴とする付記１乃至１０のいずれか１項に記載の検査装置。
（付記１２）
前記推定部は、前記組み合わせの集合の中から選択する前記所定数の組み合わせを変更しながら、前記撮像装置の位置と姿勢とを繰り返し推定し、前記生成部は、前記推定部が選択した前記所定数の組み合わせを除いた残りの複数の組み合わせを繰り返し生成し、前記設定部は、前記生成部が生成した前記複数の組み合わせから前記誤差の統計値を繰り返し求め、求めた統計値の最小値を用いて前記閾値を設定することを特徴とする付記１１記載の検査装置。
（付記１３）
前記誤差の統計値は、前記複数の組み合わせ各々に含まれる線分の投影線の位置と特徴線の位置との間の誤差の中央値であることを特徴とする付記１乃至１２のいずれか１項に記載の検査装置。
（付記１４）
コンピュータが、
撮像装置が撮影した物体の画像から、複数の特徴線を検出し、
前記物体の形状を表す形状情報に含まれる複数の線分それぞれと、前記複数の特徴線それぞれとを対応付けた、複数の組み合わせを生成し、
前記複数の線分それぞれを前記画像上に投影することで、複数の投影線を生成し、
前記複数の組み合わせ各々に含まれる投影線の位置と特徴線の位置との間の誤差の統計値に基づいて、前記誤差に対する閾値を設定し、
前記閾値を用いて前記複数の組み合わせを分類する、
ことを特徴とする検査方法。
（付記１５）
撮像装置が撮影した物体の画像から、複数の特徴線を検出し、
前記物体の形状を表す形状情報に含まれる複数の線分それぞれと、前記複数の特徴線それぞれとを対応付けた、複数の組み合わせを生成し、
前記複数の線分それぞれを前記画像上に投影することで、複数の投影線を生成し、
前記複数の組み合わせ各々に含まれる投影線の位置と特徴線の位置との間の誤差の統計値に基づいて、前記誤差に対する閾値を設定し、
前記閾値を用いて前記複数の組み合わせを分類する、
処理をコンピュータに実行させるための検査プログラム。
【符号の説明】
【０１４７】
１０１  物体
１１１、１１２、１００１〜１００４、１１１１  投影線
１２１、１２２、１０１１、１０１２、１１０１  特徴線
２０１、４０１、１６０１  検査装置
２１１、４１１  記憶部
２１２  検出部
２１３、４１６  生成部
２１４  設定部
２１５、４２０  分類部
２２１  形状情報
４０２  撮像装置
４１２  画像取得部
４１３  特徴線検出部
４１４  線分検出部
４１５  パラメータ設定部
４１７  パラメータ計算部
４１８  誤差計算部
４１９  閾値設定部
４２１  表示部
４２２  調整部
４２３  選択部
４３１  ＣＡＤデータ
４３２  画像
４３３  特徴線
４３４  ３Ｄ線分
４３５  初期パラメータ
４３６  対応ペア集合
４３７  パラメータ
４３８  統計値
４３９  閾値
６０１  形状
７０１〜７０４  線分
８０１、８０２  垂線
９０１  破線
１３０１  スライダ
１３０２  ボックス
１４０１  リストボックス
１４０２  チェックボックス
１６１１  鮮鋭化部
１７０１、１７０２  矩形領域
１９０１  ＣＰＵ
１９０２  メモリ
１９０３  入力装置
１９０４  出力装置
１９０５  補助記憶装置
１９０６  媒体駆動装置
１９０７  ネットワーク接続装置
１９０８  バス
１９０９  可搬型記録媒体
【図１】
2019158628.tif 000004
【図２】
2019158628.tif 000005
【図３】
2019158628.tif 000006
【図４】
2019158628.tif 000007
【図５】
2019158628.tif 000008
【図６】
2019158628.tif 000009
【図７】
2019158628.tif 000010
【図８】
2019158628.tif 000011
【図９】
2019158628.tif 000012
【図１０】
2019158628.tif 000013
【図１１】
2019158628.tif 000014
【図１２】
2019158628.tif 000015
【図１３】
2019158628.tif 000016
【図１４】
2019158628.tif 000017
【図１５Ａ】
2019158628.tif 000018
【図１５Ｂ】
2019158628.tif 000019
【図１６】
2019158628.tif 000020
【図１７】
2019158628.tif 000021
【図１８Ａ】
2019158628.tif 000022
【図１８Ｂ】
2019158628.tif 000023
【図１９】
2019158628.tif 000024