(57)【特許請求の範囲】
【請求項１】
複数の線で構成され、前記線上で３種類以上の輝度または色が位置に応じて連続的に変化するパターンが投影された計測対象物体を撮像した画像を取得する取得手段と、
前記取得手段によって取得された画像から前記計測対象物体に投影されたパターンの線を検出する検出手段と、
前記検出手段によって検出された線、及び前記パターンを構成する線において連続的に変化する輝度または色の位置に基づいて、前記検出手段によって検出された線が前記パターンのどの線に対応するかを識別する識別手段と、
前記識別手段で識別された線の輝度または色の位置に基づいて、前記パターンが投影された計測対象物体の表面上の点の距離を算出する距離算出手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記識別手段は、前記検出手段によって検出された線上の点と、該点に基づくエピポーラ線と前記パターンにおける線との交点とを比較することによって前記検出手段によって検出された線が前記パターンのどの線に対応するかを識別することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記識別手段は、前記検出手段によって検出された線上の点と、該点に基づくエピポーラ線と前記パターンにおける線との交点とにおける、輝度または色の差分を算出することにより、前記検出手段によって検出された線が前記パターンのどの線に対応するかを識別することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記検出手段は、前記検出した線をさらに複数の線に分割して検出することを特徴とする請求項１〜３の何れか１項に記載の情報処理装置。
【請求項５】
前記検出手段は、前記検出した線を長さが所定値以下となるようにさらに分割して検出することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記検出手段は、前記検出した線、及び前記パターンを構成する線において連続的に変化する輝度または色の位置に基づいて、前記検出した線をさらに複数の線に分割して検出することを特徴とする請求項４に記載の情報処理装置。
【請求項７】
前記識別手段は、さらに前記検出手段によって検出された線の画像上での位置の順序と、前記パターンの線の位置の順序との整合に基づいて、前記検出手段によって検出された線が前記パターンのどの線に対応するかを識別することを特徴とする請求項１〜６の何れか１項に記載の情報処理装置。
【請求項８】
前記検出手段によって検出された線上の輝度または色と、前記検出された線の周囲の輝度または色とのコントラストに基づいて、前記距離算出手段によって算出された距離の値に含まれる誤差の大きさを示す値を算出する誤差算出手段をさらに備えることを特徴とする請求項１〜７の何れか１項に記載の情報処理装置。
【請求項９】
前記パターンを前記計測対象物体に投影する投影手段と、
前記投影手段から前記パターンが投影された計測対象物体を撮像する撮像手段と、を備え、
前記取得手段は、前記撮像手段から前記画像を取得することを特徴とする請求項１〜８の何れか１項に記載の情報処理装置。
【請求項１０】
複数の線で構成され、前記線上で３種類以上の輝度または色が位置に応じて連続的に変化するパターンが投影された計測対象物体を撮像した画像を取得する取得工程と、
前記取得工程において取得された画像から前記計測対象物体に投影されたパターンの線を検出する検出工程と、
前記検出工程において検出された線、及び前記パターンを構成する線において連続的に変化する輝度または色の位置に基づいて、前記検出工程において検出された線が前記パターンのどの線に対応するかを識別する識別工程と、
前記識別工程で識別された線の輝度または色の位置に基づいて、前記パターンが投影された計測対象物体の表面上の点の距離を算出する距離算出工程と、
を備えることを特徴とする情報処理方法。
【請求項１１】
複数の線で構成され、前記線上で３種類以上の輝度または色が位置に応じて連続的に変化するパターンが投影された計測対象物体を撮像した画像を取得する取得工程と、
前記取得工程において取得された画像から前記計測対象物体に投影されたパターンの線を検出する検出工程と、
前記検出工程において検出された線、及び前記パターンを構成する線において連続的に変化する輝度または色の位置に基づいて、前記検出工程において検出された線が前記パターンのどの線に対応するかを識別する識別工程と、
前記識別工程で識別された線の輝度または色の位置に基づいて、前記パターンが投影された計測対象物体の表面上の点の距離を算出する距離算出工程と、
をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、特に、三次元形状を計測するために用いて好適な情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
従来、動的シーンに対応した三次元形状の計測手法として、複数の平行線で構成した照明パターンを物体に投影する光切断法に基づく方法が知られている。以降、複数の平行線をマルチスリットと呼び、それぞれの線を計測線と呼ぶ。この手法では、物体上で観測される計測線が、投影したマルチスリットの何番目の計測線であるかを識別することにより、複数本の計測線上の距離を一度の撮影で計測することを可能にしている。ここで、計測線の番号の識別方法の一つとして、マルチスリットに何らかの特徴を加えたパターンを利用する方法がある。
【０００３】
特許文献１には、マルチスリットの計測線上に離散的に切れを加え、計測線を複数の線分で構成するパターンを利用する方法が開示されている。この方法によれば、各線分の両端の位置を手掛かりにして計測線を識別するとしている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１−２７４００７号公報
【非特許文献】
【０００５】
【非特許文献１】M, Kimura, "Projector Calibration using Arbitrary Planes and Calibrated Camera"Computer Vision and Pattern Recognition, CVPR, 2007.
【非特許文献２】R. Y. Tsai, "A versatile camera calibration technique for high-accuracy 3D machine vision metrology using off-the-shelf TV cameras and lenses" IEEE Journal of Robotics and Automation, vol.RA-3, no.4, 1987.
【非特許文献３】P. Felzenszwalb and D. Huttenlocher, "Efficient belief propagation for early vision," IJCV, vol.70, pp.41-54, 2006.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら特許文献１に記載の方法では、複雑な形状の物体に対して、線分の両端が観測できない場合があるため、ロバストに三次元形状を計測できない場合がある。
【０００７】
本発明は前述の問題点に鑑み、複雑な形状の物体の三次元形状をロバストに計測できる情報を得ることができるようにすることを目的としている。
【課題を解決するための手段】
【０００８】
本発明に係る情報処理装置は、複数の線で構成され、前記線上で３種類以上の輝度または色が位置に応じて連続的に変化するパターンが投影された計測対象物体を撮像した画像を取得する取得手段と、前記取得手段によって取得された画像から前記計測対象物体に投影されたパターンの線を検出する検出手段と、前記検出手段によって検出された線、及び前記パターンを構成する線において連続的に変化する輝度または色の位置に基づいて、前記検出手段によって検出された線が前記パターンのどの線に対応するかを識別する識別手段と、前記識別手段で識別された線の輝度または色の位置に基づいて、前記パターンが投影された計測対象物体の表面上の点の距離を算出する距離算出手段と、を備えることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、複雑な形状の物体に対して、ロバストに三次元形状を計測できる情報を得ることができる。
【図面の簡単な説明】
【００１０】
【図１】実施形態において、計測対象物体に投影するパターン及び輝度分布の例を示す図である。
【図２】実施形態に係る情報処理装置の機能構成例を示すブロック図である。
【図３】計測線を識別する処理手順の一例を示すフローチャートである。
【図４】計測線を識別する手順を説明するための図である。
【図５】第３の実施形態において、検出線を複数の検出線に分割する詳細な処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
［第１の実施形態］
以下、本実施形態では、複雑な形状の物体の三次元形状をロバストに計測する情報を得る方法について説明する。
【００１２】
本実施形態では、計測対象物体にマルチスリットに基づくパターンを投影し、パターンを観測することによって三次元計測を行う。図１（ａ）に示すように、本実施形態で利用するパターン１００はマルチスリットであって、それぞれの計測線１１０上の輝度の値が線上の位置に応じて変化する。パターン１００の計測線上の輝度値は図１（ｂ）に示すように、位置に応じて異なる輝度値を持つ。
【００１３】
画像上で観測される計測線（以降、検出線と呼ぶ）の識別は、注目する検出線上で変化する輝度値と、パターンの計測線上で変化する輝度値との類似度に基づいて、注目する検出線がパターンの何れの計測線によって投影された線であるかを計算する。本実施形態では、注目する検出線上の輝度値とパターンの計測線上の輝度値との差を、パターンの計測線の位置を変えて計算し、差が最も小さいパターンの計測線を注目する検出線の識別結果として計算する。
【００１４】
識別の手掛かりとするパターンの計測線上の輝度の変化は、画像上から検出した検出線が短い場合でも抽出可能であり、また、計測線の長さあたりの情報量が多いため、検出した検出線が短くてもロバストにパターンの計測線を識別する計算ができる。そのため、複雑な形状の物体に対して、ロバストに三次元形状を計測する情報を得ることできる。
【００１５】
図２は、本実施形態における情報処理装置２００の機能構成例を示すブロック図である。本実施形態に係る情報処理装置２００は投影装置３００及び撮像装置４００を外部に備え、パターン取得部２１０、画像取得部２２０、検出部２３０、識別部２４０、及び距離算出部２５０を内部に備えている。
【００１６】
投影装置３００は、パターン１００の像を光により投影するプロジェクタである。ここで、投影装置３００の焦点距離や主点位置、レンズ歪パラメータなどの内部パラメータ情報、及び撮像装置４００に対する投影装置３００の相対的な位置姿勢の情報は予め校正された状態にしておく。校正方法については公知の方法を用い、例えば非特許文献１に記載の方法で校正することができる。
【００１７】
撮像装置４００は、濃淡画像を生成するカメラである。ここで、撮像装置４００の焦点距離や主点位置、レンズ歪パラメータなどの内部パラメータ情報は予め校正された状態にしておく。校正方法については公知の方法を用い、例えば非特許文献２に記載の方法で校正することができる。
【００１８】
パターン取得部２１０は、投影装置３００から計測対象物体５００に投影するためのパターン１００の画像を取得する。取得するパターンは２次元の画像であり、図１に示すように、マルチスリットであって、それぞれの計測線１１０上の輝度値は、線上の位置に応じて決まり、線上の画素毎にＶ＋ΔＶで決まる輝度値を設定する。Ｖはユーザーが指定する固定値であり、ΔＶは所定の範囲［−ε〜ε］で発生させる一様乱数であり、εはユーザーが指定する固定値である。また、線上の輝度値は、線同士で線の輝度値の相関が低くなるように、線毎に異なる乱数が発生するように設定する。
【００１９】
画像取得部２２０は、パターン１００を投影した計測対象物体５００を撮像装置４００で撮像した画像を取得する。
検出部２３０は、画像取得部２２０で取得した画像上から、投影装置３００から投影したパターンの計測線に相当する線（検出線）を検出する。
識別部２４０は、検出部２３０で検出した検出線上で変化する輝度値と、パターン１００の計測線上で変化する輝度値との類似度に基づいて、検出線がパターン１００の何れの計測線によって投影された線であるかを識別する。
【００２０】
距離算出部２５０は、検出部２３０により検出した検出線上の点の位置と、識別部２４０で識別した計測線の位置と、に基づいて、撮像装置４００の光学中心から、画像上で検出した計測線上の点が投影された計測対象物体５００の表面までの距離を算出する。ここで、算出する距離は撮像装置４００の光軸方向の距離とする。
【００２１】
次に、本実施形態の処理手順について説明する。図３は、本実施形態において計測線を識別する処理手順の一例を示すフローチャートである。
（ステップＳ３０１）
パターン取得部２１０は、パターンの画像を取得する。パターンの画像は、外部装置から取得してもよく、不図示のメモリ等から取得してもよい。そして、パターン取得部２１０は、投影するパターンを投影装置３００に送る。これにより、投影装置３００は、計測対象物体５００にパターンを投影し、撮像装置４００は、パターンが投影された計測対象物体５００を撮像する。
（ステップＳ３０２）
画像取得部２２０は、パターンが投影された計測対象物体５００を撮像した画像を撮像装置４００から取得する。
【００２２】
（ステップＳ３０３）
検出部２３０は、画像取得部２２０で取得した画像上から、線（検出線）を検出する。具体的には、画像に対してソベルフィルタを適用して画像上の輝度値の極値（以降、検出点と呼ぶ）を検出した後、画素間で隣接する検出点をラベリングすることにより、隣接する検出点が並んだ線として算出する。そして、ラベリングした線を検出線として、以降、検出線毎に処理を行う。
【００２３】
（ステップＳ３０４）
識別部２４０は、検出部２３０で検出した検出線上で変化する輝度値の分布と、パターン１００の計測線上で変化する輝度値の分布との類似度に基づいて、検出線がパターン１００の何れの計測線によって投影された線であるかを識別する。
【００２４】
この識別方法について、図４を用いて説明する。図４（ａ）において、画像４０１はパターンの投影像を撮影した画像である。画像４０１上で計測対象物体７１０が観測され、さらに計測対象物体４１０上で検出線４２０が検出されている。また、図４（ｂ）におけるエピポーラ線４３０は、検出線上のある注目点に基づくパターン上のエピポーラ線を表す。
【００２５】
まず、検出部２３０で検出した複数の検出線から識別する検出線を１つ選択する。次に、選択した検出線上の輝度値とパターン取得部２１０で保持するパターン上の各計測線上の輝度値とのマッチング（比較）を行い、対応する計測線を算出する。
【００２６】
マッチングの方法は、まず、画像上の検出線上の点ｐiからパターン上のエピポーラ線４３０と各計測線ｋとの交点の輝度値Ｖ（ｐi，ｋ）を計算する。ここで、ｋはパターンの計測線番号を表す。また、ｉは画像上から検出した検出線上の点の番号を示し、ｉの範囲は１からＮである。検出線上の点ｐiはピクセル毎に等間隔に設定するものとし、Ｎは計測線の長さ、即ち検出線上の画素数とする。次に、点ｐiの輝度値Ｉ（ｐi）とパターン上の各計測線ｋにおける輝度値Ｖ（ｐi，ｋ）との差分を計算する。ここで、検出線上の全ての点ｐiについて、Ｉ（ｐi）とＶ（ｐi，ｋ）との差の総和Ｄ（ｋ）は、以下の式（１）を用いて計算することができる。
【００２７】
【数１】
0006570321.tif 000002
【００２８】
最後に、差の総和Ｄ（ｋ）を最小とするｋを計算することにより、画像上で選択した計測線がマッチングする計測線ｋを識別する。ここで、差の総和Ｄ（ｋ）を最小にするｋが、検出線に対応するパターンの計測線の番号であると判定する。以上の処理を、画像上で検出した全ての計測線に対して行うことにより、画像上で検出した計測線それぞれが対応する計測線ｋを識別する。
【００２９】
（ステップＳ３０５）
距離算出部２５０は、検出線上の点の位置と、識別部２４０で識別した計測線のパターン上での位置とに基づいて、撮像装置４００の光学中心から、画像上で観測される検出線が投影された計測対象物体５００の表面上までの距離を算出する。まず、検出部２３０で検出した検出線上の画素の位置と、識別した計測線番号から分かるパターン上での計測線の位置とに基づいて、光切断法の原理を使って計測線が投影された先の距離を計測する。以上の計測を画像から検出した計測線上の全ての画素の位置について行うことにより、計測対象物体５００表面の距離点群を算出する。
【００３０】
以上のように本実施形態によれば、計測線上の位置に応じて変化する輝度に基づいて計測線の識別を行う。識別の手掛かりとするパターンの計測線上の輝度の変化は、画像上から検出した検出線が短くても抽出可能であり、また、計測線の長さあたりの情報量が多いため、検出した検出線が短くてもロバストにパターンの計測線を識別することができる。そのため、複雑な形状の物体に対して、ロバストに三次元形状を計測する情報を得ることができる。
【００３１】
なお、本実施形態において、パターンの計測線上の輝度を位置に応じて変化させたが、パターン取得部２１０で取得するパターンの画像は、マルチスリットであって、各計測線上の色が線上の位置に応じて変化するものであってもよい。線上の輝度もしくは色の値は一様乱数で決めてもよいし、Ｍ系列に基づく疑似乱数で決めてもよい。また、輝度値と色の値とを両方変化させてもよいし、何れか一方だけ変化させてもよい。また、必ずしも画像として取得する必要はなく、パターン上での計測線の位置と計測線上の輝度もしくは色の情報が取得できてればよい。
【００３２】
また、投影装置３００は、２次元のパターンを投影するものであればどのような装置でもよい。例えば、２次元画像を投影する書画プロジェクタであってもよいし、光源とマスクパターンとを組み合わせた装置であってもよい。また、投影するパターンは輝度値が線上の位置に応じて変化する濃淡パターンでもよいし、色が線上の位置に応じて変化するカラーパターンでもよい。また、マスクパターンをセットする投影装置の場合には、パターンは物理的に投影装置にセットされるため、計測時にパターン取得部２１０からパターンを与える必要はない。この場合には、パターン取得部２１０を本実施形態における情報処理装置２００から取り除いた構成としてもよい。
【００３３】
また、画像取得部２２０で取得する画像は、２次元の画像であればどのような画像でもよい。例えば、投影するパターンが濃淡パターンである場合には濃淡画像でもよく、投影するパターンがカラーパターンである場合にはカラー画像でもよい。また、画像取得部２２０による画像の取得方法については、撮像装置４００から直接取得しても良いし、不図示のメモリ上に予め格納された状態で画像をメモリから取得するような構成であってもよい。
【００３４】
また、検出部２３０による計測線の検出方法に関しては、画像上から計測線を検出する方法であれば、どのような方法であってもよい。例えば、ソベルフィルタによって検出したエッジをラベリングすることによって計測線を検出してもよいし、所定の閾値で２値化した画像を細線化することによって検出してもよい。
【００３５】
また、識別部２４０における検出線の識別方法は、画像上で検出した検出線上で変化する輝度の分布と、パターンの計測線上で変化する輝度の分布との類似度が高い線を探索する方法であればどのような方法でもよい。本実施形態では、検出線上の輝度値とパターンの計測線上の輝度値との差に基づいて、検出線上の点の差の総和が最小となる計測線を計算した。一方、線上での輝度値の変化の差、即ち検出線上での輝度値の微分値とパターンの計測線上での輝度値の微分値との差に基づいて、検出線上の点の差の総和が最小となる計測線を計算してもよい。また、差の総和ではなく、差の二乗和を用いてもよい。また、計測線上の輝度値ではなく、色を変化させる場合には、画像上で検出した検出線上で変化する色と、パターンの計測線上で変化する色との類似度を計算し、類似度が高い計測線を識別するようにしてもよい。このとき、検出線とパターンの計測線との色の類似度は色の差でもよいし、色の変化の差でもよい。また、計測線上の輝度値と色の両方を変化させたパターンでも良い。この場合も同様に、画像上で検出した検出線と、パターンの計測線とについて、その線上の輝度値と色の差を計算し、差が小さい計測線を識別するようにしてもよい。
【００３６】
また、検出部２３０により検出した検出線上の点の位置と、識別部２４０で識別した計測線のパターン上での位置とに基づいて、三角測量によって距離を算出する方法であれば、どのような方法でもよい。また、距離を算出する点は、検出部２３０で検出した検出線上の点のうち、一部でもよいし、全部でもよい。
【００３７】
［第２の実施形態］
本実施形態では、複雑な形状の物体に対して、後述する検出線の誤接続が発生する場合であっても、ロバストに三次元形状を計測する情報を得る方法を説明する。
【００３８】
画像上で奥行きが不連続に変化する領域では、異なる番号の検出線が画像における見た目では繋がった状態で観測されることがあり、その場合、連続する１本の線として検出されてしまう可能性がある。以降、異なる番号の計測線が１本の線として検出される現象を検出線の誤接続と呼ぶ。検出線の誤接続が発生すると、検出線の識別を正確に行うことができなくなる。
【００３９】
そこで本実施形態では、分割後の長さが所定の閾値以下になるように１本の検出線を複数の検出線に分割し、分割した検出線毎に識別を行う。これにより、検出線の誤接続による影響を、検出線の一部に抑えることができるため、識別が失敗する検出線上の点数を減らすことができる。その結果、複雑な形状の物体に対して、よりロバストに三次元形状を計測する情報を得ることができる。
【００４０】
本実施形態では、第１の実施形態で説明した構成と比べて検出部２３０の機能が異なり、検出した検出線を複数の検出線に分割した状態で算出する機能を含む。それ以外の構成要素の機能は、第１の実施形態と同様であるため、説明は省略する。
【００４１】
次に、本実施形態の処理手順について説明する。本実施形態の処理手順は、第１の実施形態と比べて図３のステップＳ３０３の処理が異なる。それ以外の処理は、第１の実施形態と同様であるため、説明は省略する。以下、本実施形態における図３のステップＳ３０３の処理について説明する。
【００４２】
（ステップＳ３０３）
検出部２３０は、画像取得部２２０で取得した画像上から検出線を検出し、分割後の長さが所定閾値以下になるように検出線を複数の検出線に分割する。具体的にはまず、第１の実施形態と同様に画像上から検出線を検出する。次に、検出した複数の検出線から分割する検出線を１つ選択する。ここで、選択した検出線の長さをＭとした場合、Ｍは計測線上の点数を表す。次に、検出線が所定の閾値Ｌの長さに収まるように、選択した検出線を（Ｍ／Ｌ＋１）本で等間隔に分割する。（Ｍ／Ｌ＋１）の計算は、少数点以下を切り捨てとする。
【００４３】
以上のような検出線の分割を、画像上で検出した全ての検出線に対して行うことにより、画像上で検出した検出線をそれぞれ分割した状態で算出する。なお、図３のステップＳ３０４及びＳ３０５の処理では、分割後の検出線毎に処理を行う。
【００４４】
以上のように本実施形態によれば、分割後の長さが所定値以下になるように検出線を分割し、分割した検出線毎に識別を行うようにした。これにより、検出線の誤接続による影響を、元の検出線の一部に抑えることができるため、識別に失敗して誤った距離が出力される数を減らすことができる。その結果、複雑な形状の物体に対して、よりロバストに三次元形状を計測する情報を得ることができる。
【００４５】
なお、本実施形態において、検出線を分割する方法は、計測線の長さに基づいて、所定の閾値Ｌ以上の長さを持つ計測線を複数の計測線に分割する方法であればどのような方法でもよい。Ｌ以上の計測線を等間隔に分割してもよいし、不等間隔に分割してもよい。また、Ｌの値は、予め設定する固定値とする。
【００４６】
［第３の実施形態］
本実施形態では、複雑な形状の物体に対して、検出線の誤接続が発生する場合であっても、ロバストに三次元形状を計測する情報を得る方法を説明する。
【００４７】
第２の実施形態で説明したように、検出線の誤接続が発生すると、検出線の識別を正確に行うことができなくなる。本実施形態では、検出線上の輝度に基づいて、検出線の誤接続が発生する位置を特定し、その位置において検出線を分割する例について説明する。これにより、検出線の誤接続の影響を受けず、検出線の識別を行うことができる。その結果、複雑な形状の物体に対して、よりロバストに三次元形状を計測する情報を得ることができる。
【００４８】
本実施形態では、第１の実施形態で説明した構成と比べて検出部２３０の機能が異なり、検出した検出線を複数の検出線に分割した状態で算出する機能を含む。それ以外の構成要素の機能は、第１の実施形態と同様であるため、説明は省略する。
【００４９】
次に、本実施形態の処理手順について説明する。本実施形態の処理手順は、第１の実施形態と比べてステップＳ３０３の処理が異なる。それ以外の処理は、第１の実施形態と同様であるため、説明は省略する。以下、本実施形態におけるステップＳ３０３の処理について説明する。
【００５０】
（ステップＳ３０３）
検出部２３０は、画像取得部２２０で取得した画像上から検出線を検出し、検出した検出線上の輝度値に基づいて、検出した検出線を複数の検出線に分割する。ここで、本実施形態のステップＳ３０３の処理手順の詳細について、図５のフローチャートを用いて説明する。図５は、本実施形態における図３のステップＳ３０３の検出部２３０による詳細な処理手順の一例を示すフローチャートである。
【００５１】
（ステップＳ５０１）
まず、第１の実施形態におけるステップＳ３０３と同様の処理を行い、画像上から検出線を検出する。
（ステップＳ５０２）
検出した複数の検出線から検出線を１つ選択し、選択した線上の点の輝度値に基づいて、図３のステップＳ３０４と同様の処理によってパターンの計測線とのマッチングを行い、仮に対応する計測線ｋを識別する。
【００５２】
（ステップＳ５０３）
次に、選択した検出線上から、計測線ｋに属する領域を判定し、その領域を分離するように検出線を複数の検出線に分割する。これは、検出線に誤接続が発生する場合、選択した検出線のうち一部が計測線ｋに属するものではないため、計測線ｋに属さない部分を判定することにより、誤接続の除去を行うことを意味する。
【００５３】
具体的な処理としては、まず、選択した検出線上の各点ｐiの輝度値Ｉ（ｐi）と、識別した計測線ｋの線上の輝度値Ｖ（ｐi，ｋ）との差ｄ（ｐi，ｋ）をそれぞれ計算する。第１の実施形態と同様に、ｉは画像上から検出した検出線上の点の番号を示し、ｉの範囲は１からＮである。検出線上の点ｐiはピクセル毎に等間隔に設定するものとし、Ｎは計測線の長さ、即ち検出線上の画素数とする。
【００５４】
次に、選択した検出線上の各点ｐiのうち、差ｄ（ｐi，ｋ）が所定の閾値Ｔ以下となる検出線上の点を探索する。ここで、Ｔは予め設定する固定値とする。最後に、差ｄが閾値Ｔ以下となる点のうち、検出線上の順番ｉが連続する点のみを繋げ、その繋げた長さが最長となる点群を、計測線ｋに属する検出線上の点群として選出する。
【００５５】
以上の処理により、検出線上から選出した点群を分離するように検出線を複数の検出線に分割する。ただし、計測線ｋに属さないと判定された検出線の部分に誤接続がある場合もあるので、さらに以上の処理を繰り返してもよい。以上の処理を、画像上で検出した全ての検出線に対して行うことにより、画像上で検出した検出線をそれぞれ分割した状態で算出する。なお、図３のステップＳ３０４及びＳ３０５の処理では、分割後の検出線毎に処理を行う。
【００５６】
以上のように本実施形態によれば、検出線上の輝度に基づいて、検出線の誤接続が発生する位置を特定し、検出線の分割を行う。これにより、検出線の誤接続の影響を受けず、検出線の識別を行うことができる。その結果、複雑な形状の物体に対して、よりロバストに三次元形状を計測する情報を得ることができる。
【００５７】
なお、本実施形態において、選択した検出線上から計測線ｋに属する領域を判定する方法は、選択した検出線のうち計測線ｋと類似度が高い領域を判定する方法であればどのような方法でもよい。また、検出線上の輝度の差ではなく、検出線上での輝度の変化、即ち輝度の微分値の差に基づいて判定してもよい。さらに検出線上の輝度ではなく、色や色の変化に基づいて分割してもよい。
【００５８】
また、第２の実施形態における計測線の長さに基づいて、検出線を分割する方法と組み合わせてもよい。例えば、計測線の長さに基づいて分割した後、検出線上の輝度もしくは色に基づいて分割してもよいし、その逆の手順で分割しもよい。
【００５９】
［第４の実施形態］
本実施形態では、複数の検出線上の輝度と、検出線の位置の順序とに基づいて、計測線を識別することによって、ロバストに三次元形状を計測する情報を得る方法を説明する。
【００６０】
本実施形態では、検出線の位置の順序と、そこから識別する計測線の位置の順序とが整合するように制約を加えて、各検出線を識別する。これにより、検出線毎の輝度からそれぞれ識別する方法に比べ、識別の間違いがより少なくなる。その結果、複雑な形状の物体に対して、よりロバストに三次元形状を計測する情報を得ることができる。
【００６１】
本実施形態では、第１の実施形態で説明した構成と比べて識別部２４０の処理内容が異なり、以下に説明する手順で計測線を識別する。それ以外の構成要素の機能は、第１の実施形態と同様であるため、説明は省略する。
【００６２】
次に、本実施形態の処理手順について説明する。本実施形態の処理手順は、第１の実施形態と比べてステップＳ３０４の処理が異なる。それ以外の処理は第１の実施形態と同様であるため、説明は省略する。以下、本実施形態におけるステップＳ３０４の処理手順について説明する。
【００６３】
（ステップＳ３０４）
識別部２４０は、検出部２３０で検出した検出線上で変化する輝度値と、パターン１００の計測線上で変化する輝度値との類似度を計算する。そして、各検出線上から計算した類似度と、画像上での検出線の位置の順序とに基づいて、各検出線がパターン１００の何れの計測線によって投影された線であるかを識別する。
【００６４】
まず、第１の実施形態と同様に、各検出線について、検出線上の輝度と計測線ｋ上の輝度との差の総和Ｄ（ｋ）を、式（１）を用いて計算する。ここで、画像上の検出線のＩＤをｊとして、それぞれの差をＤｊ（ｋ）と表す。
【００６５】
次に、画像上での検出線の位置の順序を表すリンクを構築する。ここで、リンクとは、画像上で複数ある検出線のうち、注目する２つの検出線の順序を表す情報である。このリンクの構築は、各検出線の中心位置を基準に、検出線に交差する方向に向かって近傍にある計測線を探索することにより構築する。本実施形態では、ユーザーにより設定される所定の距離Ｒの範囲の中で探索し、最近傍にある検出線とリンクを構築する。なお、範囲内で隣接する検出線がない場合は、その部分ではリンクは構築しないようにする。
【００６６】
最後に、リンクを構築した検出線の位置の順序と、検出線から識別する計測線ｋの位置の順序とが整合するような制約を加えて、各検出線の計測線番号を識別する。具体的には、以下の式（２）の評価関数Ｅを最小化するように、各検出線ｊの計測線番号ｋjの組み合わせを計算する。
【００６７】
【数２】
0006570321.tif 000003
【００６８】
ここで、式（２）において、Ｐは画像上から検出した検出線の集合を表し、Ｑは検出線うち、リンクを構築した２対の検出線の集合を表す。また、ａ、ｂ、ｃは検出線のＩＤを表し、ｋa、ｋb、ｋcは、それぞれの検出線（ＩＤ＝ａ、ｂ、ｃ）について識別する計測線番号を表す。
【００６９】
式（２）は、各検出線からマッチングで求める輝度値の差の総和Ｄ（ｋ）に加え、リンクを構築した２対の検出線の計測線番号によって変化する関数Ｗを含む。関数Ｗはパターンの計測線番号ｋb、ｋcの位置の順序が、画像上の検出線ｂ、ｃの位置の順序と同じ場合に０、それ以外の場合に所定の値ｇとなる関数である。ｇはユーザーにより設定される固定値であり、ｇの値が大きいと、パターンの計測線の位置の順序と画像上の検出線の位置の順序との整合性を重視する。
【００７０】
次に、評価値Ｅを最小化する各検出線ｊに割り当てる計測線番号ｋjの組み合わせを計算する。評価関数Ｅを最小化する解（この場合、各検出線に割り当てる計測線番号の組み合わせ）の計算方法としては、本実施形態では、ＢＰ（Belief Propagation）を用いる。ＢＰの処理内容については、例えば非特許文献３に示す方法を用いる。
【００７１】
以上のように本実施形態によれば、検出線の位置の順序と、そこから識別する計測線の位置の順序とが整合するように制約を加えて、各検出線を識別する。これにより、検出線毎の輝度の変化のみからそれぞれ識別する方法に比べ、識別の間違いがより少なくなる。その結果、複雑な形状の物体に対して、よりロバストに三次元形状を計測する情報を得ることができる。
【００７２】
なお、本実施形態では、検出線の位置の順序と、そこから識別する計測線の位置の順序とで整合度するように制約を加えて、各検出線を識別する。最適化計算は、評価値Ｅを最小化する各検出線の計測線番号の組み合わせを計算する方法であればどのような方法でもよい。前述したＢＰ（Belief Propagation）を用いてもよいし、ＧＣ（Graph Cut）を用いてもよい。また、各検出線に対して、全ての掲出線番号の組み合わせについて評価値Ｅを計算し、最小となる計測線番号の組み合わせを計算してもよい。
【００７３】
また、第２又は第３の実施形態で説明した検出線の分割を行った後の検出線に対して本実施形態の識別を行ってもよい。この場合、検出線の位置の順序を表すリンクは、検出線に交差する方向以外に、検出線に沿う方向に探索してリンクを構築してもよい。
【００７４】
＜変形例＞
前述した各実施形態において、計測対象物体の距離値に加え、各計測線上の輝度もしくは色に基づいて、出力する距離値の誤差の大きさを推定するようにしてもよい。
各実施形態で説明したパターンは線上の輝度もしくは色を変化させているため、画像上で観測される検出線は、その線上の位置によって線上の点と背景（検出線周囲の画素値）とのコントラストが異なる。コントラストは、検出線の位置の検出精度に影響を与えるため、出力する距離の値に含まれる誤差の大きさが、検出線のコントラストによって変化することになる。そこで、距離値に加え、その距離値に含まれる誤差の大きさを出力する。
【００７５】
このような処理を行う構成として、図２に示した構成に加え、不図示の誤差算出部を含むようにする。以降、誤差算出部における誤差を示す値の算出方法について説明する。
誤差算出部は、検出線と背景とのコントラストに基づいて、距離算出部２５０で算出する距離値の誤差を算出する。距離値の誤差は以下の式（３）によって計算する。
【００７６】
【数３】
0006570321.tif 000004
【００７７】
ここで、Ｉは検出線上の画素と背景とのコントラストを表し、Ｓは計測線の画像上での幅を表す。また、Ａはユーザーが指定する固定値を表し、ｅは検出線上の画素から算出した距離値に含まれる誤差を示す値を表す。幅Ｓの値は、画像上で観測される検出線の太さを事前に固定値として与えてもよいし、画像上の検出線を２値化し、その太さを計算してもよい。式（３）による誤差の計算を、画像上から検出した検出線上の画素全てについて行う。これにより、情報処理装置２００は距離値に加え、誤差を示す情報を出力することになる。
【００７８】
以上のように、検出した検出線と背景とのコントラストに基づいて、それぞれの計測線上の点から算出する距離値の誤差を示す値を計算する。距離の算出に加え、距離に含まれる誤差を算出するため、三次元形状を計測する際に、誤差の小さい点を重視した処理が可能になる。例えば、誤差の値が閾値を超える値を利用しない処理や、重みを下げた処理を行うことができる。また、所定以上の誤差を持つ距離値を情報処理装置２００から出力しないように設定してもよい。
【００７９】
なお、誤差算出部における誤差の算出方法は、画像上で観測される検出線と背景とのコントラスト基づいて、コントラストが大きくなるほど誤差が小さくなる関数であればどのような関数でもよい。式（１）に示すように輝度に反比例して誤差が小さくなる関数でもよいし、輝度に応じて指数関数的に誤差が小さくなる関数でもよい。
【００８０】
＜各実施形態の効果＞
第１の実施形態では、計測線上の位置に応じて変化する輝度の分布に基づいて計測線の識別を行った。識別の手掛かりとするパターンの計測線上の輝度の変化は、画像上から検出した検出線が短くても抽出可能であり、また、計測線の長さあたりの情報量が多いため、検出した検出線が短くてもロバストにパターンの計測線を識別する計算ができる。そのため、複雑な形状の物体に対して、ロバストに三次元形状を計測する情報を得ることができる。
【００８１】
第２の実施形態では、分割後の長さが所定閾値以下になるように検出線を分割し、分割した検出線毎に識別を行う。これにより、検出線の誤接続による影響を、検出線の一部に抑えることができるため、識別が失敗して誤った距離が出力される数を減らすことができる。その結果、複雑な形状の物体に対して、よりロバストに三次元形状を計測する情報を得ることができる。
【００８２】
第３の実施形態では、検出線上の輝度に基づいて、検出線の誤接続が発生する位置を特定し、検出線の分割を行う。これにより、検出線の誤接続の影響を受けず、検出線の識別を行うことができる。その結果、複雑な形状の物体に対して、よりロバストに三次元形状を計測する情報を得ることができる。
【００８３】
第４の実施形態では、検出線の位置の順序と、そこから識別する計測線の位置の順序とが整合するように制約を加えて、各検出線を識別する。これにより、検出線毎の輝度の変化みからそれぞれ識別する方法に比べ、識別の間違いが少なくなる。その結果、複雑な形状の物体に対して、よりロバストに三次元形状を計測する情報を得ることができる。
【００８４】
＜定義＞
本実施形態において、パターン取得部２１０で取得するパターンは、マルチスリットであって、各計測線上の輝度及び色の少なくともいずれかの値が線上の位置に応じて変化するものであればどのようなパターンでもよい。線上の輝度もしくは色の値は一様乱数で決めてもよいし、Ｍ系列に基づく疑似乱数で決めてもよい。また、輝度及び色の値を両方変化させてもよいし、何れか一方だけ変化させてもよい。また、必ずしも画像として取得する必要はなく、パターン上での計測線の位置と計測線上の輝度もしくは色の情報が取得できてればよい。
【００８５】
また、画像取得部２２０で取得する画像は、２次元の画像であればどのような画像でもよい。例えば、濃淡画像でもよく、カラー画像でもよい。また、画像の取得方法については、撮像装置から直接取得してもよいし、外部装置などに一旦格納された画像を情報処理装置２００に入力する構成であってもよい。
【００８６】
また、検出部２３０における計測線の検出方法に関しては、画像上から線を検出する方法であれば、どのような方法であってもよい。例えば、ソベルフィルタによって検出したエッジをラベリングすることによって線を検出してもよいし、所定の閾値で２値化した画像を細線化することによって検出してもよい。また、第２及び第３の実施形態のように、検出した検出線を複数の検出線に分割してもよい。この場合、識別部２４０による識別と、距離算出部２５０による距離の算出は、分割した検出線毎に行う。分割方法は、分割後の長さが所定閾値以下になるように検出線を分割する方法でもよいし、検出線上の輝度に基づいて、検出線の誤接続が発生する位置を特定し、その位置に基づいて検出線の分割を行う方法でもよい。
【００８７】
また、識別部２４０の識別方法は、検出部２３０で検出した検出線上で変化する輝度値の分布とパターンの計測線上で変化する輝度値の分布との類似度に基づいて、検出線がパターンの何れの計測線に対応するかを識別する方法であればどのような方法でもよい。検出線上の輝度値とパターンの計測線上の輝度値との差に基づいて、検出線上の点の輝度値の差の総和が最小となる計測線を計算してもよい。また、線上での輝度値の変化の差、即ち検出線上での輝度値の微分値とパターンの計測線上での輝度値の微分値との差に基づいて、検出線上の点の微分値の差の総和が最小となる計測線を計算してもよい。また、差の総和ではなく、差の二乗和を用いてもよい。また、パターンの計測線上の輝度値ではなく、色を変化させる場合、画像上で検出した検出線上で変化する色と、パターンの計測線上で変化する色との類似度を計算し、類似度が高い計測線を識別する。検出線とパターンの計測線との色の分布の類似度は色の差でもよいし、色の変化の差でもよい。
【００８８】
また、距離算出部２５０の算出方法は、検出部２３０により検出した計測検出線上の点の位置と、識別部２４０で識別した計測線のパターン上での位置とに基づいて、撮像装置の光学中心から計測対象物体の表面までの距離を算出する。
【００８９】
［その他の実施形態］
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００９０】
２２０  画像取得部
２３０  検出部
２４０  識別部
２５０  距離算出部
【図１】
0006570321.tif 000005
【図２】
0006570321.tif 000006
【図３】
0006570321.tif 000007
【図４】
0006570321.tif 000008
【図５】
0006570321.tif 000009