(57)【要約】      （修正有）【課題】高Ｓ／Ｎ比領域と低Ｓ／Ｎ比領域とを精度よく判別することができる測定プログラム、測定装置および測定方法を提供する。【解決手段】測定プログラムは、コンピュータに、参照パターンが照射された対象物からの反射光から取得された対象物画像と、参照画像とからそれぞれ抽出したブロック同士をマッチングし、当該マッチングの評価関数に基づいて対象物画像における各画素の画素ずれ量を算出する処理と、対象物画像において画素ずれ量に基づいて、対象物画像の画素をグループ化し、各グループにおける各画素の評価関数を平均化する処理と、各グループにおける画素の面積と平均化された評価関数とを用いて、各グループを分別する処理と、を実行させる。【選択図】図８
2019109092.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
参照パターンが照射された対象物からの反射光から取得された対象物画像と、参照画像とからそれぞれ抽出したブロック同士をマッチングし、当該マッチングの評価関数に基づいて前記対象物画像における各画素の画素ずれ量を算出する処理と、
前記対象物画像において画素ずれ量に基づいて、前記対象物画像の画素をグループ化し、各グループにおける各画素の前記評価関数を平均化する処理と、
前記各グループにおける画素の面積と平均化された前記評価関数とを用いて、前記各グループを分別する処理と、を実行させることを特徴とする測定プログラム。
【請求項２】
前記対象物画像において画素ずれ量の差が閾値以下となる画素をグループ化することを特徴とする請求項１記載の測定プログラム。
【請求項３】
前記分別する処理において、面積が閾値以上となるグループを高Ｓ／Ｎ比領域に分別することを特徴とする請求項１または２に記載の測定プログラム。
【請求項４】
前記分別する処理において、平均化された前記評価関数が閾値以下となるグループを高Ｓ／Ｎ比領域に分別することを特徴とする請求項１〜３のいずれか一項に記載の測定プログラム。
【請求項５】
前記分別する処理において、面積が閾値未満で平均化された前記評価関数が閾値を上回るグループを低Ｓ／Ｎ比領域に分別することを特徴とする請求項３または４に記載の測定プログラム。
【請求項６】
前記コンピュータに、前記高Ｓ／Ｎ比領域の各画素位置の画素ずれ量から、前記参照パターンの発光位置または前記対象物画像の撮影位置と前記対象物との距離を算出する処理を実行させることを特徴とする請求項３〜５のいずれか一項に記載の測定プログラム。
【請求項７】
前記分別する処理において、前記低Ｓ／Ｎ比領域について、面積が閾値以上であるものについては誤検出領域に分別し、面積が当該閾値未満のものについてはノイズ領域に分別し、
前記コンピュータに、前記高Ｓ／Ｎ比領域の各画素位置の画素ずれ量から、前記参照パターンの発光位置または前記対象物画像の撮影位置と前記対象物との距離を算出する処理を実行させ、
前記距離を算出する処理において、前記ノイズ領域の画素ずれ量を周辺の画素位置の画素ずれ量で補間し、前記距離の算出に用いることを特徴とする請求項５記載の測定プログラム。
【請求項８】
参照パターンが照射された対象物からの反射光から取得された対象物画像と、参照画像とからそれぞれ抽出したブロック同士をマッチングし、当該マッチングの評価関数に基づいて前記対象物画像における各画素の画素ずれ量を算出する画素ずれ算出部と、
前記対象物画像において画素ずれ量に基づいて、前記対象物画像の画素をグループ化し、各グループにおける各画素の前記評価関数を平均化するグループ化部と、
前記各グループにおける画素の面積と平均化された前記評価関数とを用いて、前記各グループを分別する分別部と、を備えることを特徴とする測定装置。
【請求項９】
画素ずれ算出部が、参照パターンが照射された対象物からの反射光から取得された対象物画像と、参照画像とからそれぞれ抽出したブロック同士をマッチングし、当該マッチングの評価関数に基づいて前記対象物画像における各画素の画素ずれ量を算出し、
グループ化部が、前記対象物画像において画素ずれ量に基づいて、前記対象物画像の画素をグループ化し、各グループにおける各画素の前記評価関数を平均化し、
分別部が、前記各グループにおける画素の面積と平均化された前記評価関数とを用いて、前記各グループを分別する、ことを特徴とする測定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、測定プログラム、測定装置および測定方法に関する。
【背景技術】
【０００２】
カメラで取得した画像を基に、対象物までの距離を測定する技術が開示されている（例えば、特許文献１，２参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−６５６３４号公報
【特許文献２】特開平１０−２８５５８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
例えば、三角測量などで距離を算出するために、照射した参照パターンと受光したパターンとのブロックマッチングを行い、視差に基づく画素ずれ量を検出することで距離を測定することができる。Ｓ／Ｎ比改善のためには、ブロックマッチングにおけるブロックを拡大することが有効である。しかしながら、この場合、Ｓ／Ｎ比が高い領域もＳ／Ｎ比が低い領域に分別されるおそれがある。
【０００５】
１つの側面では、本発明は、高Ｓ／Ｎ比領域と低Ｓ／Ｎ比領域とを精度よく分別することができる測定プログラム、測定装置および測定方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
１つの態様では、測定プログラムは、コンピュータに、参照パターンが照射された対象物からの反射光から取得された対象物画像と、参照画像とからそれぞれ抽出したブロック同士をマッチングし、当該マッチングの評価関数に基づいて前記対象物画像における各画素の画素ずれ量を算出する処理と、前記対象物画像において画素ずれ量に基づいて、前記対象物画像の画素をグループ化し、各グループにおける各画素の前記評価関数を平均化する処理と、前記各グループにおける画素の面積と平均化された前記評価関数とを用いて、前記各グループを分別する処理と、を実行させる。
【発明の効果】
【０００７】
高Ｓ／Ｎ比領域と低Ｓ／Ｎ比領域とを精度よく分別することができる。
【図面の簡単な説明】
【０００８】
【図１】（ａ）および（ｂ）は距離測定技術の概略を表す図である。
【図２】（ａ）はＩＲカメラが取得するＩＲ輝度画像を例示する図であり、（ｂ）〜（ｄ）は所定の画素位置における評価関数の算出結果を例示する図である。
【図３】（ａ）〜（ｅ）は高Ｓ／Ｎ比領域が低Ｓ／Ｎ比領域に分別される例を表す図である。
【図４】（ａ）〜（ｄ）は分別精度向上の原理を例示する図である。
【図５】（ａ）〜（ｄ）は分別精度向上の原理を例示する図である。
【図６】距離測定装置のハードウェア構成を例示するブロック図である。
【図７】距離測定装置の機能ブロック図である。
【図８】距離測定装置の動作を表すフローチャートを例示する図である。
【図９】距離測定の対象物およびマッチング対象のブロックについて例示する図である。
【図１０】距離測定の対象物およびマッチング対象のブロックについて例示する図である。
【図１１】距離測定の対象物およびマッチング対象のブロックについて例示する図である。
【図１２】（ａ）〜（ｄ）は輝度差に応じた重み付けを例示する図である。
【図１３】（ａ）および（ｂ）は輝度差に応じた重み付けを例示する図である。
【図１４】グループ化について例示する図である。
【図１５】グループ化のフローチャートを例示する図である。
【図１６】（ａ）〜（ｃ）はグループ化について例示する図である。
【図１７】グループ化について例示する図である。
【発明を実施するための形態】
【０００９】
実施例の説明に先立って、三角測量を用いた距離測定について説明する。
【００１０】
図１（ａ）および図１（ｂ）で例示するように、例えば、距離測定技術において、測定装置に備わる発光装置２０１が赤外線（ＩＲ）の参照パターンを対象物に照射し、測定装置に備わるＩＲカメラ２０２が対象物から反射した光を受光することで、対象物画像を取得する。
【００１１】
測定装置と対象物との距離が変化すると、三角測量の原理により、対象物画像と参照画像との間で画素ずれが生じる。参照画像とは、ＩＲカメラ２０２のセンサ面に平行で発光装置２０１からの距離が規定値に定められた平面に対して参照パターンが照射された場合にＩＲカメラ２０２が予め得ておいた画像のことである。対象物画像と参照画像との間で同じ大きさのブロック同士のマッチングを行って画素ずれ量を検出することで、測定装置と対象物との距離を測定することができる。画素ずれ量は、ブロックマッチングにより、対象物画像と参照画像とで同じパターンを探索することで検出することができる。例えば、約１４画素ずれの位置でのドットパターンが近い場合、画素ずれ量は１４画素と算出することができる。
【００１２】
ブロックマッチングを行うには、注目画素に対し、ある程度の範囲の領域が必要となる。しかしながら、反射光が弱くＳ／Ｎ比が低い領域などは、周辺の領域に対して画素ずれ検出精度が不十分であり、ノイズを含む微小なノイズ領域となる。ノイズ領域は、微小であるため、周辺の情報から補間することが好ましい。
【００１３】
一方、Ｓ／Ｎ比が低い領域において、さらに反射光が弱い領域や、テカリなどで乱反射が起こる領域や、オクリュージョン領域（影の領域）では、距離を正確に検出できずかつ比較的面積が大きい誤検出領域が生じる。誤検出領域は高Ｓ／Ｎ比領域と区別するために、例えば距離０と設定しておくことが好ましい。
【００１４】
図２（ａ）は、ＩＲカメラ２０２が取得するＩＲ輝度画像を例示する図である。図２（ａ）では、椅子が撮像されている。ブロックマッチングにおいては、対象物を撮影したＩＲ輝度画像の画素位置ごとに、参照画像に対して横方向に画素をずらしながら、ブロックマッチングの評価関数が算出される。評価関数が小さい(信頼度が高い)値をとる画素ずれが算出されると、当該画素ずれから距離を算出することができる。
【００１５】
評価関数として、例えば、マッチングの両対象の輝度値分布の類似度を表す概念を用いることができる。本実施例においては、一例として、差分二乗和（ＳＳＤ）、差分絶対和（ＳＡＤ）、相関係数正規化（ＮＣＣ）等の、輝度値分布の類似度が高いと小さい値となる評価関数を用いる。参照画像から抜き出したパターン輝度値に対して画素位置をずらしながら、ＩＲ輝度画像から抜き出したパターンにおいて、両者の評価関数が一番低くなるところ（信頼性が高いところ）が探索される。差分二乗和や差分絶対和では、輝度値の明るさの影響を受けるので、正規化したＮＣＣの方が精度は高くなる。しかしながら、ＮＣＣを用いると、計算量は増える。そこで、ＩＲ輝度値を微分し、その微分値のＳＳＤやＳＡＤをとってもよい。微分することで、輝度値の明るさの影響を軽減できる。
【００１６】
図２（ｂ）〜図２（ｄ）は、所定の画素位置における評価関数の算出結果を例示する図である。図２（ｂ）〜図２（ｄ）において、横軸は対象とする画素位置における画素ずれ量を示し、縦軸は当該画素ずれ量に対する評価関数を示す。図２（ｂ）は、図２（ａ）の背もたれ部分２０３の所定の画素位置における結果である。図２（ｂ）の背もたれ部分２０３がＩＲカメラ２０２のセンサ面に略平行であれば、背もたれ部分２０３とＩＲカメラ２０２との距離は略一定となる。それにより、Ｓ／Ｎ比が十分に高くなる。したがって、図２（ｂ）で例示するように、評価関数に明確な差が現れ、画素ずれ量を明確に判別できるようになる。
【００１７】
図２（ｃ）は、Ｓ／Ｎ比が低く、ノイズが現れているノイズ領域の所定の画素位置における結果である。図２（ｃ）は、一例として、図２（ａ）の座面部分２０４の所定の画素位置における結果である。座面部分２０４は、ＩＲカメラ２０２のセンサ面に対して角度を有していることから、座面部分２０４とＩＲカメラ２０２との距離は、位置に応じて変化する。それにより、ノイズが現れ、Ｓ／Ｎ比が十分に大きくならない。したがって、図２（ｃ）で例示するように、評価関数の差が小さくなり、画素ずれ量の検出精度が低下する。
【００１８】
図２（ｄ）は、Ｓ／Ｎ比が低く、オクリュージョン領域（影）や、テカリ等の影響で反射光が戻ってこない誤検出領域の所定の画素位置における結果である。図２（ｄ）は、一例として、反射光が戻ってこない領域の結果である。図２（ｄ）で例示するように、誤検出領域では、評価関数が画素ずれ量に対してランダムな値となり得る。その結果、画素ずれ量の特定が難しくなる。
【００１９】
ノイズ領域や誤検出領域などの低Ｓ／Ｎ比領域では、ブロックマッチングを行えば、検索範囲内での評価関数が一番小さい値から画素ずれ量を算出することはできる。しかしながら、検出精度が高くないため、画素位置によりばらばらなランダム値として算出される。その結果、誤検出が生じてしまう。
【００２０】
ブロックマッチングにおいて低Ｓ／Ｎ比領域を検出するため、ブロックを拡大することが考えられる。例えば、縦方向に広げたブロックおよび横方向に広げたブロックの両方を用いることが考えられる。または、ブロックの範囲を拡大し、輝度の情報などに応じて重みを可変とすることが考えられる。これらの手法を用いることで、低Ｓ／Ｎ比領域の検出精度を改善することができる。しかしながら、この場合、高Ｓ／Ｎ比領域も低Ｓ／Ｎ比領域に分別されるおそれがある。
【００２１】
図３（ａ）は、Ｓ／Ｎ比が高い高Ｓ／Ｎ比領域αと、Ｓ／Ｎ比が低い低Ｓ／Ｎ比領域βとが隣接する場合を例示する図である。図３（ｂ）は、画素ずれ量が近い画素位置領域のグループを同じ濃さの模様で表示した図である。図３（ｂ）で例示するように、高Ｓ／Ｎ比領域αは、各画素位置における画素ずれ量が互いに近い値となるため、同じ濃さの模様で表示されている。一方、低Ｓ／Ｎ比領域βでは、画素ずれ量はランダムとなるため、異なる濃さの複数のグループが混在している。
【００２２】
異なる濃さの複数のグループが混在している領域については、画素ずれ量が互いに異なる小さい領域が密集していることを検出することで、低Ｓ／Ｎ比領域に分別することができる。したがって、図３（ｃ）で例示するように、高Ｓ／Ｎ比領域αと低Ｓ／Ｎ比領域βとが隣接していても、両者を分別することができる。なお、図３（ｃ）では、白の領域が高Ｓ／Ｎ比領域として分別された領域であり、黒の領域が低Ｓ／Ｎ比領域として分別された領域である。
【００２３】
しかしながら、ブロックマッチングのブロックを拡大すると、図３（ｄ）で例示するように、低Ｓ／Ｎ比領域βにおける各グループの面積も大きくなってしまう。例えば、ランダム値の各グループの大きさと、高Ｓ／Ｎ比領域αの大きさとが近くなってしまう。この場合、ランダム値の各グループと、高Ｓ／Ｎ比領域αとを分別することが困難となる。例えば、図３（ｅ）で例示するように、高Ｓ／Ｎ比領域αも低Ｓ／Ｎ比領域であると分別されてしまうおそれがある。
【００２４】
そこで、以下の実施例では、ブロックマッチングのブロックを拡大しても、高Ｓ／Ｎ比領域と低Ｓ／Ｎ比領域との分別を高精度に行うことができる測定装置、測定方法および測定プログラムについて説明する。
【実施例１】
【００２５】
まず、高Ｓ／Ｎ比領域と低Ｓ／Ｎ比領域との分別精度向上の原理について説明する。各画素について、画素ずれ量（画素ずれ量から算出される距離）が近いものをグループ化する。次に、各グループの面積と、各グループ内での対象物の特性の情報と、を用いて、各グループが高Ｓ／Ｎ比領域であるか低Ｓ／Ｎ比領域であるかを分別する。対象物の特性の情報として、ブロックマッチング時における評価関数の信頼性を用いる。上記グループ化されたグループ内で評価関数の信頼性が高いほど（評価関数が低いほど）、高Ｓ／Ｎ比領域であると分別することができる。
【００２６】
図４（ａ）は、Ｓ／Ｎ比が高い高Ｓ／Ｎ比領域αと、Ｓ／Ｎ比が低い低Ｓ／Ｎ比領域βとが隣接する場合を例示する図である。図４（ｂ）は、ブロックマッチングのブロックを拡大した場合において、画素ずれ量が近い画素位置領域のグループを同じ濃さの模様で表示した図である。図４（ｂ）で例示するように、高Ｓ／Ｎ比領域αは、各画素位置における画素ずれ量が互いに近い値となるため、同じ濃さの模様で表示されている。一方、低Ｓ／Ｎ比領域βでは、画素ずれ量はランダムとなるため、異なる濃さの複数のグループが混在している。ただし、ブロックマッチングのブロックを拡大したことで、各グループの面積も大きくなっている。
【００２７】
図４（ｃ）は、各グループの信頼性を例示する図である。図４（ｃ）において、模様が薄いほど信頼性が高い（評価関数が小さい）ことを意味する。この結果に対して、面積が第１閾値以上となるグループを高Ｓ／Ｎ比領域と分別する。面積が第１閾値未満のグループであっても、信頼性が高く評価関数が第２閾値以下となるグループについては、高Ｓ／Ｎ比領域に分別する。面積が第１閾値未満のグループであって、信頼性が低く評価関数が第２閾値を上回るグループについては、低Ｓ／Ｎ比領域に分別する。低Ｓ／Ｎ比領域と判定されたグループのうち、面積が第１閾値よりも小さい第３閾値以上であるものについては誤検出領域に分別する。低Ｓ／Ｎ比領域と判定されたグループのうち、面積が第３閾値未満のものについては、ノイズ領域に分別する。
【００２８】
図４（ｄ）は、分別結果を例示する図である。図４（ｄ）の例では、高Ｓ／Ｎ比領域αは、高Ｓ／Ｎ比領域であると正しく分別されている。また、低Ｓ／Ｎ比領域βは、各グループの面積が大きかったため、低Ｓ／Ｎ比領域であると正しく分別されている。
【００２９】
続いて、高Ｓ／Ｎ比領域と低Ｓ／Ｎ比領域との分別精度向上の原理について、より具体的な例について説明する。まず、図５（ａ）で例示するように、高Ｓ／Ｎ比領域αと、低Ｓ／Ｎ比領域βとが隣接する場合を例示する図である。低Ｓ／Ｎ比領域βでは、Ｓ／Ｎ比が低いため、画素ずれ位置の特定が困難である。高Ｓ／Ｎ比領域αでは、Ｓ／Ｎ比が高いため、画素ずれ位置を特定しやすくなっている。しかしながら、高Ｓ／Ｎ比領域αにおいても、低Ｓ／Ｎ比領域βに近い境界領域γでは、信頼性が低下して評価関数が比較的大きくなり、画素位置ごとの評価関数だけでは境界領域γを明確に分別することは困難である。
【００３０】
そこで、画素ずれ量が近いグループで評価関数の値を平均化することで、評価関数の境界を明確に区別することができる。境界領域γでは、画素ずれ量を算出する評価関数が最小となる評価値は、画素位置ごとにばらつきが大きくなる。特に、Ｓ／Ｎ比の改善のため、ブロックマッチングのブロックを拡大した場合には境界領域γで影響を受けやすく、境界領域γの各画素位置では評価関数は比較的大きい（直接の値としての信頼度は低い）。そのため、各画素位置の評価関数単独で、境界領域γを分別することは困難である。そこで、Ｓ／Ｎ比が良い領域と比較して、評価関数単独の値は多少大きい（直接の値としての信頼度が低い）条件においても画素ずれ値の検出精度は向上していることに着目することができる。
【００３１】
具体的には、図５（ｂ）で例示するように、画素ずれ量が近い画素をグループ化する。図５（ｂ）は、各画素位置の画素ずれ量をハッチの濃淡で表している。図５（ｂ）において、それぞれの「〇」は画素位置を表している。実線で囲んだ領域は、画素ずれが近いグループである。図５（ｃ）は、各画素位置の評価関数を模様の濃淡で表している。
【００３２】
次に、図５（ｄ）で例示するように、各グループ内の各画素位置の評価関数を平均化する。単純な相加平均を用いてもよいが、重み付け平均などを行ってもよい。この平均化処理によって、高Ｓ／Ｎ比領域と低Ｓ／Ｎ比領域との分別精度を向上させることができる。高Ｓ／Ｎ比領域のグループ内では、評価関数が低い画素位置および評価関数があまり低くない画素位置も含まれている。したがって、平均化処理によって比較的信頼性は上がるが、低Ｓ／Ｎ比領域のグループの評価関数はあまり低くないため、平均処理によっても評価関数はあまり低くならない（信頼度が低いまま）。したがって、分別が可能となる。
【００３３】
以下、本実施例に係る距離測定装置１００の具体的な構成およびその動作について説明する。図６は、距離測定装置１００のハードウェア構成を例示するブロック図である。図６で例示するように、距離測定装置１００は、ＣＰＵ１０１、ＲＡＭ１０２、記憶装置１０３、表示装置１０４、発光装置１０５、撮影装置１０６などを備える。これらの各機器は、バスなどによって接続されている。
【００３４】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１は、中央演算処理装置である。ＣＰＵ１０１は、１以上のコアを含む。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０２は、ＣＰＵ１０１が実行するプログラム、ＣＰＵ１０１が処理するデータなどを一時的に記憶する揮発性メモリである。記憶装置１０３は、不揮発性記憶装置である。記憶装置１０３として、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリなどのソリッド・ステート・ドライブ（ＳＳＤ）、ハードディスクドライブに駆動されるハードディスクなどを用いることができる。表示装置１０４は、液晶ディスプレイ、エレクトロルミネッセンスパネル等であり、距離測定の結果などを表示する。発光装置１０５は、距離測定の対象物に対して参照パターンを照射する装置であり、例えば、赤外線照射装置である。参照パターンは、一例としてランダムなドットパターンなどである。撮影装置１０６は、対象物からの反射光を受光することで画像を生成する装置であり、例えば、ＩＲカメラである。
【００３５】
図７は、距離測定装置１００の機能ブロック図である。図７で例示するように、ＣＰＵ１０１が距離測定プログラムを実行することによって、距離測定装置１００内に、画素ずれ算出部１０、グループ化部２０、第１分別部３０、第２分別部４０、距離算出部５０などが実現される。これらの各機能は、専用の回路などのハードウェアで実現されてもよい。
【００３６】
図８は、距離測定装置１００の動作を表すフローチャートを例示する図である。以下、距離測定装置１００の動作について説明する。まず、画素ずれ算出部１０は、対象物画像の各画素位置の画素ずれ量を算出する（ステップＳ１）。具体的には、画素ずれ算出部１０は、撮影装置１０６から対象物画像を取得する。次に、画素ずれ算出部１０は、対象物画像において、対象画素位置を含むブロックを抽出する。次に、画素ずれ算出部１０は、データベースなどに格納されている参照画像を取得する。本実施例においては、参照画像とは、撮影装置１０６のセンサ面に平行で発光装置１０５からの距離が規定値に定められた平面に対して参照パターンが照射された場合に撮影装置１０６が予め得ておいた画像のことである。次に、画素ずれ算出部１０は、参照画像において、ブロックに対応する範囲を参照ブロックとして抽出する。次に、画素ずれ算出部１０は、ブロックと参照ブロックとに対して、評価関数を算出する。評価関数として、例えば、マッチングの両対象の輝度値分布の類似度を表す概念を用いることができる。本実施例においては、一例として、差分二乗和、差分絶対和、相関係数正規化等の、輝度値分布の類似度が高いと小さい値となる評価関数を用いる。次に、画素ずれ算出部１０は、上述の動作の繰り返しにおいて、算出された評価関数の最小値を算出する。画素ずれ算出部１０は、算出された最小値から得られる画素ずれ量を算出する。以上の動作が対象画素位置を含む探索範囲（参照画像においてブロックを含む所定範囲）の全てにおいて繰り返される。画素ずれ算出部１０は、最後に算出された最小値から画素ずれ量を検出する。
【００３７】
例えば、画素ずれ算出部１０は、ブロックマッチングにおけるブロックを交差する２方向に拡大することで、Ｓ／Ｎ比の改善を図る。図９は、距離測定の対象物６０およびマッチング対象のブロック７０について例示する図である。図９で例示するように、対象物６０は、例えば、発光装置１０５の光軸に垂直で撮影装置１０６のセンサ面に対して平行な平行面６１と、当該センサ面に非平行な非平行面６２とを備えている。図９の例では、撮影装置１０６のセンサ面をなす互いに直交する軸をＸ軸およびＹ軸とする。Ｘ軸は、発光装置１０５と撮影装置１０６とを結ぶ線の方向である。Ｚ軸は、Ｘ軸およびＹ軸と直交する軸である。図９の例では、Ｚ軸は、撮影装置１０６と対象物６０との距離方向を表している。
【００３８】
図９で例示するように、非平行面６２では、ＸＹ平面における画素ずれ量がドットごとに変動する。図９の例では、ドットのＸ軸方向（以下、横方向とも称する）の画素ずれ量は、Ｙ軸方向（以下、縦方向とも称する）の位置に応じて異なっている。一方で、パターンマッチングには、マッチング対象のブロック７０がある程度の大きさの領域を有していることが好ましい。しかしながら、ブロックサイズが大きいと、受光パターンの画素ずれ量にバラツキが生じて特定することができず、マッチング精度が劣化する。
【００３９】
ブロック７０を縦方向に狭くする場合、画素ずれ量のばらつきが抑制されて縦方向の分解能は上がるが、唯一無二のランダムな受光パターンの位置を識別するには、ある程度のブロックサイズが必要である。したがって、ブロック７０を縦方向に狭くしてブロックを小さくすると、マッチング精度が悪化するおそれがある。そこで、ブロックサイズを確保するため、ブロック７０を縦方向に狭くするとともに横方向に広げた横長ブロック７１を用いる。この場合、縦方向の分解能が上がることから、非平行面６２の距離変化に対しては対応することができる。しかしながら、横方向の分解能が悪くなる。例えば、図１０で例示するように、Ｘ軸の端部では対象物６０が存在せずに反射光が戻ってこない領域も横長ブロック７１の範囲に含まれてしまう。
【００４０】
そこで、図１１で例示するように、横長ブロック７１および縦長ブロック７２を互いに重複させて両方でマッチング処理を行い、良好な結果が得られる方のブロックを用いたマッチング結果を採用する。この場合、図１１で例示するように、いずれか一方の方向において対象物６０が存在せずに反射光が戻ってこない領域が含まれていても、画素ずれ量を検出することができる。
【００４１】
または、画素ずれ算出部１０は、ブロックマッチングにおけるブロックを拡大するとともに、輝度値の差分に応じた重み付けを行う。図１２（ａ）は、ブロック７０を例示する図である。図１２（ａ）の例では、Ｙ軸方向の中心領域Ｃに部品が位置し、Ｙ軸方向の上部領域Ｕと下部領域Ｌとに平行面６１が位置している。図１２（ａ）で例示するように、平行面６１と部品の位置が異なっていることから、平行面６１と部品とが重なるブロック７０において、平行面６１と部品との間で、ドットのＸ軸方向の画素ずれ量が異なっている。なお、パターンマッチングには、マッチング対象のブロック７０がある程度の大きさの領域を有していることが好ましい。しかしながら、ブロックサイズが大きいと、図１２（ａ）のブロック７０のように平行面６１と部品とで画素ずれ量が異なることから、画素ずれ量にバラツキが生じて特定することができず、マッチング精度が劣化する。特に、部品からの反射光の輝度値が平行面６１からの反射光の輝度値よりも低い場合には、当該マッチング精度の劣化が顕著となる。
【００４２】
そこで、画素ずれ算出部１０は、評価関数の算出に際して、輝度差に応じて各画素の重みを変更する。例えば、画素ずれ算出部１０は、評価関数の算出に際して、輝度差が大きい画素の情報の重みを小さくする。まず、図１２（ｂ）で例示するように、部品が黒っぽい色を有していることで、中心領域Ｃの輝度が閾値未満に低くなっているものとする。図１２（ｂ）の網掛け部分は、輝度が低いことを表している。網掛けが無い部分は、輝度が高いことを表している。図１２（ｃ）、図１２（ｄ）、図１３（ａ）および図１３（ｂ）でも同様である。この場合において、ブロック７０の中心画素位置ｐの輝度値をＪ（ｐ）とし、中心領域Ｃの画素位置ｑａの輝度値をＪ（ｑａ）とし、上部領域Ｕの画素位置ｑｂの輝度値をＪ（ｑｂ）とする。中心画素位置ｐおよび画素位置ｑａが位置する中心領域Ｃの輝度は低くなるため、輝度差｛Ｊ（ｑａ）−Ｊ（ｐ）｝は小さくなる。一方、上部領域Ｕの輝度は高くなることから、輝度差｛Ｊ（ｑｂ）−Ｊ（ｐ）｝は大きくなる。この輝度差が大きい画素の重みを、当該輝度差に応じて小さくする。例えば、輝度差が大きいほど、重みをより小さくする。
【００４３】
図１２（ｃ）の例では、上部領域Ｕおよび下部領域Ｌに部品が位置し、中心領域Ｃに平行面６１が位置している。それにより、中心領域Ｃの輝度が高く、上部領域Ｕおよび下部領域Ｌの輝度が低くなっている。この場合、本来であれば輝度が高い中心領域Ｃの情報のみを用いたいため、輝度差が大きい場合に重みを小さくしたい。しかしながら、輝度が大きい中心領域Ｃでは輝度のバラツキが大きくなるため、輝度差｛Ｊ（ｑａ）−Ｊ（ｐ）｝がマイナスになる場合には、重みを緩めることが好ましい。例えば、中心領域Ｃの輝度が閾値以上である場合、図１２（ｂ）の場合と比較して、輝度差に応じて重みを小さくする度合を小さくする。
【００４４】
次に、もともと輝度値が高い領域では、輝度値のバラツキが大きくなっている。例えば、平行面６１の領域では、輝度値のバラツキが大きくなるものの、いずれの位置においても輝度値が高くなる。この場合には、輝度差が大きくなる画素の重みを小さくしない。図１２（ｄ）は、ブロック７０に部品が重なっていない場合を例示する図である。図１２（ｄ）の例では、ブロック７０のいずれの領域においても輝度値のバラツキが大きいため、輝度差｛Ｊ（ｑａ）−Ｊ（ｐ）｝および輝度差｛Ｊ（ｑｂ）−Ｊ（ｐ）｝の両方とも大きくなる場合がある。しかしながら、中心画素位置ｐの輝度値Ｊ（ｐ）、画素位置ｑａの輝度値Ｊ（ｑａ）および画素位置ｑｂの輝度値Ｊ（ｑｂ）のいずれも高い値になる。そこで、この場合には、輝度差が大きい画素について重みを小さくしない。例えば、中心画素位置ｐ、画素位置ｑａおよび画素位置ｑｂのいずれにおいても輝度が閾値以上であれば、画素位置ｑａおよび画素位置ｑｂのいずれの重みを小さくしない。
【００４５】
また、画素ずれ算出部１０は、評価関数の算出に際して、空間位置差（距離）に応じて重みを変更する。中心画素位置ｐと画素位置ｑａとの距離を｜｜ｐ−ｑａ｜｜とする。中心画素位置ｐと画素位置ｑｂとの距離を｜｜ｐ−ｑｂ｜｜とする。例えば、画素ずれ算出部１０は、中心画素位置ｐに近い画素位置ｑａよりも、中心画素位置ｐから遠い画素位置ｑｂの重みを小さくするように設定されている。すなわち、画素ずれ算出部１０は、中心画素位置ｐとの空間位置差が大きい画素ほど、重みを小さくするように設定されている。
【００４６】
この場合において、中心画素位置ｐの輝度値Ｊ（ｐ）が低い場合はＳＮ比が低いため、中心画素位置ｐよりもより距離（空間位置差）が大きい画素の情報を用いることが好ましい。そこで、画素ずれ算出部１０は、空間位置差が大きい画素の重みを大きくしてもよい。例えば、図１３（ａ）で例示するように、ブロック７０の全体の輝度が低い場合には、ブロック７０の中心画素位置ｐやブロック７０の全体が明るい場合と比較して、中心画素位置ｐから遠い画素位置ｑｂの重みも大きくする。例えば、中心画素位置ｐ、画素位置ｑａおよび画素位置ｑｂのいずれにおいても輝度が閾値未満であれば、画素位置ｑａおよび画素位置ｑｂのいずれの重みを大きくする。なお、図１３（ｂ）で例示するように、中心領域の周りが明るい場合は、輝度差により重みを小さくできるので、輝度差による重みと併用することが好ましい。
【００４７】
画素ずれ算出部１０は、各画素位置の画素ずれ量および各画素位置の評価関数をグループ化部２０に渡す。
【００４８】
再度図８を参照し、次に、グループ化部２０は、グループ番号をゼロに初期化する（ステップＳ２）。次に、グループ化部２０は、対象物画像の各画素位置の画素ずれ量が関連付けられた画素ずれマップにおいて、注目画素と周辺画素との差分絶対値が閾値以下であるか否かを判定する（ステップＳ３）。具体的には、グループ化部２０は、図１４で例示するように、注目画素と、その周辺の８画素のいずれかとの差分絶対値が閾値未満であるか否かを判定する。図１４の例では、｜１３−１０｜＝３が閾値以下であるか否かを判定する。
【００４９】
ステップＳ３において「Ｎｏ」と判定された場合、以下のステップＳ４は実行されない。ステップＳ３において「Ｙｅｓ」と判定された場合、グループ化部２０は、注目画素と周辺画素のグループ番号によって場合分けし、グループ番号付け替えと、要素数および評価関数の和を算出する（ステップＳ４）。具体的には、図１５で例示するように、グループ化部２０は、注目画素のグループ番号がゼロであるか否かを判定する（ステップＳ１１）。ステップＳ１１で「Ｙｅｓ」と判定された場合、グループ化部２０は、周辺画素のグループ番号がゼロであるか否かを判定する（ステップＳ１２）。
【００５０】
ステップＳ１２で「Ｙｅｓ」と判定された場合、グループ化部２０は、処理１を行う。例えば、図１６（ａ）で例示するように、注目画素のグループ番号がゼロで、周辺画素のグループ番号もゼロであれば、番号を１増やして両者のグループ番号を１にする。この場合の要素数は２である。
【００５１】
ステップＳ１２で「Ｎｏ」と判定された場合、グループ化部２０は、処理２を行う。図１６（ｂ）で例示するように、注目画素のグループ番号がゼロで、周辺画素のグループ番号がゼロ以外であれば、注目画素のグループ番号を当該周辺画素のグループ番号に合わせる。したがって、両者のグループ番号を２にする。この場合、要素数を１増やす。
【００５２】
ステップＳ１１で「Ｎｏ」と判定された場合、グループ化部２０は、周辺画素のグループ番号がゼロであるか否かを判定する（ステップＳ１３）。ステップＳ１３で「Ｙｅｓ」と判定された場合、グループ化部２０は、処理３を行う。図１６（ｃ）で例示するように、注目画素のグループ番号がゼロ以外で、周辺画素のグループ番号がゼロであれば、当該周辺画素のグループ番号を注目画素のグループ番号に合わせる。したがって、両者のグループ番号を２にする。この場合、要素数を１増やす。
【００５３】
ステップＳ１３で「Ｎｏ」と判定された場合、グループ化部２０は、注目画素のグループ番号が周辺画素のグループ番号と異なるか否かを判定する（ステップＳ１４）。ステップＳ１４で「Ｙｅｓ」と判定された場合、グループ化部２０は、処理４を行う。図１７で例示するように、注目画素のグループ番号がゼロ以外で、周辺画素のグループ番号と異なっている場合、それぞれのグループの要素数を比較する。次に、要素数の小さいグループ番号を、要素数の大きいグループ番号とする。次に、要素数の小さいグループの要素数をプラスする。なお、ステップＳ１４で「Ｎｏ」と判定された場合、処理１〜処理４は行われない。
【００５４】
グループ化部２０は、ステップＳ３およびステップＳ４を、注目画素の８個の周辺画素に対して繰り返す。さらに、グループ化部２０は、当該繰り返しを、対象画像の縦横全画素に対して繰り返す。
【００５５】
次に、グループ化部２０は、グループ化されていない領域（要素数＝１）に、グループ番号を付す（ステップＳ５）。次に、グループ化部２０は、グループごとの要素数と、評価関数の和とから、平均値を算出する（ステップＳ６）。具体的には、グループ化部２０は、（評価関数の和）／（要素数）を算出する。
【００５６】
次に、第１分別部３０は、各グループが高Ｓ／Ｎ比領域であるか低Ｓ／Ｎ比領域であるかを分別する（ステップＳ７）。具体的には、第１分別部３０は、注目グループの面積が第１閾値以上であれば、当該グループを高Ｓ／Ｎ比領域に分別する。また、第１分別部３０は、注目グループの面積が第１閾値未満であっても、信頼性が高く評価関数が第２閾値以下となる場合には高Ｓ／Ｎ比領域に分別する。第１分別部３０は、それ以外のグループに対しては、低Ｓ／Ｎ比領域に分別する。
【００５７】
次に、第２分別部４０は、各低Ｓ／Ｎ比領域が誤検出領域であるかノイズ領域であるかを分別する（ステップＳ８）。具体的には、第２分別部４０は、面積が第１閾値よりも小さい第３閾値以上となる低Ｓ／Ｎ比領域を、誤検出領域に分別し、面積が第３閾値未満となる低Ｓ／Ｎ比領域を、ノイズ領域として分別する。
【００５８】
なお、第２分別部４０は、低Ｓ／Ｎ比領域に対して、膨張処理および収縮処理を行ったうえで、低Ｓ／Ｎ比領域の面積が上記閾値以上であるか否かを判定してもよい。この場合、低Ｓ／Ｎ比領域の分別精度が向上する。
【００５９】
次に、距離算出部５０は、高Ｓ／Ｎ比領域の各画素位置の画素ずれ量を距離に換算する（ステップＳ９）。例えば、三角測量を用いることができる。距離算出部５０は、画素ずれ量を、参照パターンの発光位置または対象物画像の撮影位置と対象物との距離に換算する。距離算出部５０は、ノイズ領域の画素ずれ量については、周囲の画素位置の画素ずれ量から補間する。距離算出部５０は、誤検出領域については、距離を算出しない。または、距離算出部５０は、誤検出領域については、距離をゼロなどにする。以上の処理により、対象物６０の各部と撮影装置１０６との距離を求めることができるとともに、対象物６０の形状を求めることができる。
【００６０】
本実施例によれば、参照パターンが照射された対象物からの反射光から取得された対象物画像と、参照画像とからそれぞれ抽出したブロック同士をマッチングし、当該マッチングの評価関数に基づいて対象物画像における各画素の画素ずれ量が算出される。対象物画像において画素ずれ量に基づいて画素がグループ化され、各グループにおける各画素の評価関数が平均化される。各グループにおける面積と平均化された評価関数とを用いて、各グループが分別される。それにより、各グループを高Ｓ／Ｎ比領域と低Ｓ／Ｎ比領域とに精度よく分別することができる。その結果、参照パターンの発光位置または対象物画像の撮影位置と対象物との距離の算出精度が向上する。
【００６１】
面積が閾値以上となるグループを高Ｓ／Ｎ比領域に分別することができる。評価関数の平均値が閾値以下となるグループを高Ｓ／Ｎ比領域に分別することができる。面積が閾値未満で評価関数の平均値が閾値を上回るグループを低Ｓ／Ｎ比領域に分別することができる。低Ｓ／Ｎ比領域について、面積が閾値以上であるものについては誤検出領域に分別し、面積が当該閾値未満のものについてはノイズ領域に分別することができる。
【００６２】
上記例において、画素ずれ算出部１０が、参照パターンが照射された対象物からの反射光から取得された対象物画像と、参照画像とからそれぞれ抽出したブロック同士をマッチングし、当該マッチングの評価関数に基づいて前記対象物画像における各画素の画素ずれ量を算出する画素ずれ算出部の一例として機能する。グループ化部２０が、前記対象物画像において画素ずれ量に基づいて、前記対象物画像の画素をグループ化し、各グループにおける各画素の前記評価関数を平均化するグループ化部の一例として機能する。第１分別部３０が、前記各グループにおける画素の面積と平均化された前記評価関数とを用いて、前記各グループを分別する分別部の一例として機能する。距離算出部５０が、高Ｓ／Ｎ比領域の各画素位置の画素ずれ量から、前記参照パターンの発光位置または前記対象物画像の撮影位置と前記対象物との距離を算出する距離算出部の一例として機能する。
【００６３】
以上、本発明の実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【００６４】
なお、以上の説明に関して更に以下の付記を開示する。
（付記１）
コンピュータに、
参照パターンが照射された対象物からの反射光から取得された対象物画像と、参照画像とからそれぞれ抽出したブロック同士をマッチングし、当該マッチングの評価関数に基づいて前記対象物画像における各画素の画素ずれ量を算出する処理と、
前記対象物画像において画素ずれ量に基づいて、前記対象物画像の画素をグループ化し、各グループにおける各画素の前記評価関数を平均化する処理と、
前記各グループにおける画素の面積と平均化された前記評価関数とを用いて、前記各グループを分別する処理と、を実行させることを特徴とする測定プログラム。
（付記２）
前記対象物画像において画素ずれ量の差が閾値以下となる画素をグループ化することを特徴とする付記１記載の測定プログラム。
（付記３）
前記分別する処理において、面積が閾値以上となるグループを高Ｓ／Ｎ比領域に分別することを特徴とする付記１または２に記載の測定プログラム。
（付記４）
前記分別する処理において、平均化された前記評価関数が閾値以下となるグループを高Ｓ／Ｎ比領域に分別することを特徴とする付記１〜３のいずれか一項に記載の測定プログラム。
（付記５）
前記分別する処理において、面積が閾値未満で平均化された前記評価関数が閾値を上回るグループを低Ｓ／Ｎ比領域に分別することを特徴とする付記３または４に記載の測定プログラム。
（付記６）
前記コンピュータに、前記高Ｓ／Ｎ比領域の各画素位置の画素ずれ量から、前記参照パターンの発光位置または前記対象物画像の撮影位置と前記対象物との距離を算出する処理を実行させることを特徴とする付記３〜５のいずれか一項に記載の測定プログラム。
（付記７）
前記分別する処理において、前記低Ｓ／Ｎ比領域について、面積が閾値以上であるものについては誤検出領域に分別し、面積が当該閾値未満のものについてはノイズ領域に分別し、
前記コンピュータに、前記高Ｓ／Ｎ比領域の各画素位置の画素ずれ量から、前記参照パターンの発光位置または前記対象物画像の撮影位置と前記対象物との距離を算出する処理を実行させ、
前記距離を算出する処理において、前記ノイズ領域の画素ずれ量を周辺の画素位置の画素ずれ量で補間し、前記距離の算出に用いることを特徴とする付記５記載の測定プログラム。
（付記８）
参照パターンが照射された対象物からの反射光から取得された対象物画像と、参照画像とからそれぞれ抽出したブロック同士をマッチングし、当該マッチングの評価関数に基づいて前記対象物画像における各画素の画素ずれ量を算出する画素ずれ算出部と、
前記対象物画像において画素ずれ量に基づいて、前記対象物画像の画素をグループ化し、各グループにおける各画素の前記評価関数を平均化するグループ化部と、
前記各グループにおける画素の面積と平均化された前記評価関数とを用いて、前記各グループを分別する分別部と、を備えることを特徴とする測定装置。
（付記９）
前記グループ化部は、前記対象物画像において画素ずれ量の差が閾値以下となる画素をグループ化することを特徴とする付記８記載の測定装置。
（付記１０）
前記分別部は、面積が閾値以上となるグループを高Ｓ／Ｎ比領域に分別することを特徴とする付記８または９に記載の測定装置。
（付記１１）
前記分別部は、平均化された前記評価関数が閾値以下となるグループを高Ｓ／Ｎ比領域に分別することを特徴とする付記８〜１０のいずれか一項に記載の測定装置。
（付記１２）
前記分別部は、面積が閾値未満で平均化された前記評価関数が閾値を上回るグループを低Ｓ／Ｎ比領域に分別することを特徴とする付記１０または１１に記載の測定装置。
（付記１３）
前記高Ｓ／Ｎ比領域の各画素位置の画素ずれ量から、前記参照パターンの発光位置または前記対象物画像の撮影位置と前記対象物との距離を算出する距離算出部を備えることを特徴とする付記１０〜１２のいずれか一項に記載の測定装置。
（付記１４）
前記分別部は、前記低Ｓ／Ｎ比領域について、面積が閾値以上であるものについては誤検出領域に分別し、面積が当該閾値未満のものについてはノイズ領域に分別し、
前記高Ｓ／Ｎ比領域の各画素位置の画素ずれ量から、前記参照パターンの発光位置または前記対象物画像の撮影位置と前記対象物との距離を算出する距離算出部を備え、
前記距離算出部は、前記ノイズ領域の画素ずれ量を周辺の画素位置の画素ずれ量で補間し、前記距離の算出に用いることを特徴とする付記１２記載の測定装置。
（付記１５）
画素ずれ算出部が、参照パターンが照射された対象物からの反射光から取得された対象物画像と、参照画像とからそれぞれ抽出したブロック同士をマッチングし、当該マッチングの評価関数に基づいて前記対象物画像における各画素の画素ずれ量を算出し、
グループ化部が、前記対象物画像において画素ずれ量に基づいて、前記対象物画像の画素をグループ化し、各グループにおける各画素の前記評価関数を平均化し、
分別部が、前記各グループにおける画素の面積と平均化された前記評価関数とを用いて、前記各グループを分別する、ことを特徴とする測定方法。
（付記１６）
前記対象物画像において画素ずれ量の差が閾値以下となる画素をグループ化することを特徴とする付記１５記載の測定方法。
（付記１７）
前記分別部は、面積が閾値以上となるグループを高Ｓ／Ｎ比領域に分別することを特徴とする付記１５または１６に記載の測定方法。
（付記１８）
前記分別部は、平均化された前記評価関数が閾値以下となるグループを高Ｓ／Ｎ比領域に分別することを特徴とする付記１５〜１７のいずれか一項に記載の測定方法。
（付記１９）
前記分別部は、面積が閾値未満で平均化された前記評価関数が閾値を上回るグループを低Ｓ／Ｎ比領域に分別することを特徴とする付記１７または１８に記載の測定方法。
（付記２０）
前記高Ｓ／Ｎ比領域の各画素位置の画素ずれ量から、前記参照パターンの発光位置または前記対象物画像の撮影位置と前記対象物との距離を算出する距離算出部を備えることを特徴とする付記１７〜１９のいずれか一項に記載の測定方法。
（付記２１）
前記分別部は、前記低Ｓ／Ｎ比領域について、面積が閾値以上であるものについては誤検出領域に分別し、面積が当該閾値未満のものについてはノイズ領域に分別し、
距離算出部が、前記高Ｓ／Ｎ比領域の各画素位置の画素ずれ量から、前記参照パターンの発光位置または前記対象物画像の撮影位置と前記対象物との距離を算出し、
前記距離算出部は、前記ノイズ領域の画素ずれ量を周辺の画素位置の画素ずれ量で補間し、前記距離の算出に用いることを特徴とする付記１９記載の測定方法。
【符号の説明】
【００６５】
１０  画素ずれ算出部
２０  グループ化部
３０  第１分別部
４０  第２分別部
５０  距離算出部
６０  対象物
７０  ブロック
１００  距離測定装置
【図１】
2019109092.tif 000003
【図２】
2019109092.tif 000004
【図３】
2019109092.tif 000005
【図４】
2019109092.tif 000006
【図５】
2019109092.tif 000007
【図６】
2019109092.tif 000008
【図７】
2019109092.tif 000009
【図８】
2019109092.tif 000010
【図９】
2019109092.tif 000011
【図１０】
2019109092.tif 000012
【図１１】
2019109092.tif 000013
【図１２】
2019109092.tif 000014
【図１３】
2019109092.tif 000015
【図１４】
2019109092.tif 000016
【図１５】
2019109092.tif 000017
【図１６】
2019109092.tif 000018
【図１７】
2019109092.tif 000019