(57)【要約】【課題】  高精度に距離測定を行うことができる距離測定装置、距離測定方法および距離測定プログラムを提供する。【解決手段】  距離測定装置は、対象物に参照パターンを照射する発光装置と、前記対象物からの反射光から対象物画像を取得する撮影装置と、長さ方向が異なる少なくとも２つのブロックを前記対象物画像および参照画像のそれぞれから抽出し、長さ方向が対応するブロック同士をマッチングするマッチング部と、前記マッチング部のマッチング結果に基づいて、前記対象物画像と前記参照画像との画素ずれ量を検出する検出部と、前記画素ずれ量から、前記発光装置または前記撮影装置と前記対象物との距離を算出する距離算出部と、を備える。【選択図】  図５
2018112527.tif 000002
【特許請求の範囲】
【請求項１】
対象物に参照パターンを照射する発光装置と、
前記対象物からの反射光から対象物画像を取得する撮影装置と、
長さ方向が異なる少なくとも２つのブロックを前記対象物画像および参照画像のそれぞれから抽出し、長さ方向が対応するブロック同士をマッチングするマッチング部と、
前記マッチング部のマッチング結果に基づいて、前記対象物画像と前記参照画像との画素ずれ量を検出する検出部と、
前記画素ずれ量から、前記発光装置または前記撮影装置と前記対象物との距離を算出する距離算出部と、を備えることを特徴とする距離測定装置。
【請求項２】
前記検出部は、前記対応するブロック同士のマッチング結果のいずれかを選択し、選択したマッチング結果から前記画素ずれ量を検出することを特徴とする請求項１記載の距離測定装置。
【請求項３】
前記検出部は、第１方向に長さ方向を有するブロックでのマッチング結果から当該第１方向における画素ずれの差分和を検出し、第２方向に長さ方向を有するブロックでのマッチング結果から当該第２方向における画素ずれの差分和を検出し、小さい方の差分和に基づいて前記画素ずれ量を検出することを特徴とする請求項１記載の距離測定装置。
【請求項４】
前記検出部は、前記第１方向において対象画素位置に対して画素ずれの差分和の絶対値を算出し、前記第２方向において対象画素位置に対して画素ずれの差分和の絶対値を算出し、小さい方の絶対値に基づいて前記画素ずれ量を検出することを特徴とする請求項３記載の距離測定装置。
【請求項５】
前記マッチング部は、輝度値または輝度値を３値化したものを用いてマッチングを行うことを特徴とする請求項１〜４のいずれか一項に記載の距離測定装置。
【請求項６】
前記長さ方向が異なる２つのブロックは、互いに直交する方向に長さ方向を有することを特徴とする請求項１〜５のいずれか一項に記載の距離測定装置。
【請求項７】
前記長さ方向が異なる少なくとも２つのブロックは、長さ方向が異なる３つのブロックであることを特徴とする請求項１〜６のいずれか一項に記載の距離測定装置。
【請求項８】
発光装置により、対象物に参照パターンを照射し、
撮影装置により、前記対象物からの反射光から対象物画像を取得し、
長さ方向が異なる少なくとも２つのブロックを前記対象物画像および参照画像のそれぞれから抽出し、長さ方向が対応するブロック同士をマッチング部がマッチングし、
前記マッチング部のマッチング結果に基づいて、前記対象物画像と前記参照画像との画素ずれ量を検出部が検出し、
前記画素ずれ量から、前記発光装置または前記撮影装置と前記対象物との距離を距離算出部が算出する、ことを特徴とする距離測定方法。
【請求項９】
コンピュータに、
参照画像と、発光装置が対象物に参照パターンを照射することで前記対象物からの反射光から撮影装置が取得した対象物画像とから、長さ方向が異なる少なくとも２つのブロックをそれぞれ抽出し、長さ方向が対応するブロック同士をマッチングする処理と、
前記マッチングの結果に基づいて、前記対象物画像と前記参照画像との画素ずれ量を検出する処理と、
前記画素ずれ量から、前記発光装置または前記撮影装置と前記対象物との距離を算出する処理と、を実行させることを特徴とする距離測定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、距離測定装置、距離測定方法および距離測定プログラムに関する。
【背景技術】
【０００２】
カメラで取得した画像を基に、対象物までの距離を測定する技術が望まれている。そこで、例えば、複数のカメラを用いてステレオマッチングする技術が開示されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−９８８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記技術では、複数のカメラが取得した対象物の複数の画像同士を比較することから、斜面等の影響が小さくなる。一方、対象物からの反射光から得られる画像と、予め定めておいた参照画像との比較を行うマッチングにおいては、対象物からの反射光に、斜面等が及ぼす影響が大きくなってしまう。それにより、正確な距離測定を行うことが困難である。
【０００５】
１つの側面では、本発明は、高精度に距離測定を行うことができる距離測定装置、距離測定方法および距離測定プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
１つの態様では、距離測定装置は、対象物に参照パターンを照射する発光装置と、前記対象物からの反射光から対象物画像を取得する撮影装置と、長さ方向が異なる少なくとも２つのブロックを前記対象物画像および参照画像のそれぞれから抽出し、長さ方向が対応するブロック同士をマッチングするマッチング部と、前記マッチング部のマッチング結果に基づいて、前記対象物画像と前記参照画像との画素ずれ量を検出する検出部と、前記画素ずれ量から、前記発光装置または前記撮影装置と前記対象物との距離を算出する距離算出部と、を備える。
【発明の効果】
【０００７】
高精度に距離測定を行うことができる。
【図面の簡単な説明】
【０００８】
【図１】（ａ）および（ｂ）は距離測定技術の概略を表す図である。
【図２】距離測定技術の概略を表す図である。
【図３】距離測定技術の概略を表す図である。
【図４】距離測定装置のハードウェア構成を例示するブロック図である。
【図５】距離測定装置の機能ブロック図である。
【図６】距離測定の対象物およびマッチング対象のブロックについて例示する図である。
【図７】マッチングを例示する図である。
【図８】マッチングを例示する図である。
【図９】（ａ）〜（ｃ）は画素ずれ量の検出結果を例示する図である。
【図１０】（ａ）〜（ｄ）は画素ずれ量の検出結果を例示する図である。
【図１１】各機能の動作を表すフローチャートを例示する図である。
【図１２】各機能の動作を表すフローチャートを例示する図である。
【図１３】（ａ）は実施例１の手法で算出された距離の分布を例示する図であり、（ｂ）は変形例の手法で算出された距離の分布を例示する図である。
【図１４】実施例２に係る距離測定装置の機能ブロック図である。
【図１５】実施例３に係る距離測定装置の機能ブロック図である。
【図１６】実施例３に係る処理を例示する図である。
【図１７】探索範囲について例示する図である。
【図１８】探索範囲について例示する図である。
【図１９】（ａ）は実施例４に係る距離測定装置の機能ブロック図であり、（ｂ）は探索範囲を例示する図である。
【発明を実施するための形態】
【０００９】
実施例の説明に先立って、三角測量を用いた距離測定について説明する。
【００１０】
図１（ａ）および図１（ｂ）で例示するように、例えば、距離測定技術において、測定装置に備わる発光装置２０１が赤外線（ＩＲ）の参照パターンを対象物に照射し、測定装置に備わるＩＲカメラ２０２が対象物から反射した光を受光することで、対象物画像を取得する。
【００１１】
測定装置と対象物との距離が変化すると、三角測量の原理により、対象物画像と参照画像との間で画素ずれ量が変化する。参照画像とは、ＩＲカメラ２０２のセンサ面に平行で発光装置２０１からの距離が規定値に定められた平面に対して参照パターンが照射された場合にＩＲカメラ２０２が予め得ておいた画像のことである。対象物画像と参照画像との間で同じ大きさのブロック同士のマッチングを行って画素ずれ量を検出することで、測定装置と対象物との距離を測定することができる。画素ずれ量は、ブロックマッチングにより、対象物画像と参照画像とで同じパターンを探索することで検出することができる。
【００１２】
通常のステレオマッチングでは、視差がある２個のカメラの画像同士を比較しているため、概略形状が同じものを探索していることになる。これに対して、参照パターンの反射光を受光する方式では、参照画像は平面を表しているが、対象物が平面であるとは限らない。例えば、図２で例示するように、発光装置２０１の光軸に垂直でＩＲカメラ２０２のセンサ面に対して平行な平行面２０３においては、ある程度の大きさの領域では概略距離は同じとなる。しかしながら、ＩＲカメラ２０２のセンサ面に対して非平行の非平行面２０４においては、ある程度の大きさの領域で距離が大きく変化する。したがって、ＩＲカメラ２０２のセンサ面に対して非平行な対象物においては、対象物画像におけるパターンの位置が距離に応じてずれることになる。その結果、マッチング精度が劣化する。
【００１３】
次に、マッチング精度の劣化について詳細に説明する。図３は、参照画像と対象物画像との画素ずれについて説明するための図である。本来は位置を特定するために、唯一無二のランダムパターンであるが、説明の簡略化のために、格子点状の円形パターンを示している（その後の図６等も同様）。図３の例では、参照パターンは、格子点状に円形パターン（ドットパターン）を含んでいる。図３で例示するように、平行面２０３が当該平行を維持したまま移動したとする。この場合、平行面２０３からの反射によって得られる受光パターン２０５の配置が平行にずれるため、各円形パターンの画素ずれ量は略同じである。したがって、マッチング精度の劣化が抑制される。これに対して、非平行面２０４がＩＲカメラ２０２のセンサ面と非平行に移動したとする。この場合、非平行面２０４からの反射によって得られる対象物画像２０６における円形パターンの画素ずれ量が変動してしまう。すなわち、各円形パターンの画素ずれ量が異なるようになる。マッチングにはある程度の大きさの領域を用いることが好ましいが、当該領域で画素ずれ量にバラツキが生じて正確な画素ずれ量を検出できないため、マッチング精度が劣化してしまう。
【００１４】
ここで、参照パターンの反射光を受光する方式における課題について整理する。まず、複数のカメラを用いるステレオマッチングでは、対象物の２枚の画像そのものを比較するため、カメラのセンサ面に対して非平行の斜面における影響度合いは低くなる。これに対して、参照パターンの反射光を受光して画素ずれ量を検出することで距離を測定する方式においては、対象物がカメラのセンサ面に対して非平行の場合に、マッチング領域内で距離のずれが生じる。その結果、パターンの位置がマッチング領域内でずれてしまうため、画素ずれ量の検出精度が低下し、マッチング精度が劣り、正確な距離を算出できないおそれがある。
【００１５】
そこで、以下の実施例では、画素ずれ量の検出精度を向上させることで高精度に距離測定を行うことができる距離測定装置、距離測定方法および距離測定プログラムについて説明する。
【実施例１】
【００１６】
図４は、距離測定装置１００のハードウェア構成を例示するブロック図である。図４で例示するように、距離測定装置１００は、ＣＰＵ１０１、ＲＡＭ１０２、記憶装置１０３、表示装置１０４、発光装置１０５、撮影装置１０６などを備える。これらの各機器は、バスなどによって接続されている。
【００１７】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１は、中央演算処理装置である。ＣＰＵ１０１は、１以上のコアを含む。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０２は、ＣＰＵ１０１が実行するプログラム、ＣＰＵ１０１が処理するデータなどを一時的に記憶する揮発性メモリである。記憶装置１０３は、不揮発性記憶装置である。記憶装置１０３として、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリなどのソリッド・ステート・ドライブ（ＳＳＤ）、ハードディスクドライブに駆動されるハードディスクなどを用いることができる。表示装置１０４は、液晶ディスプレイ、エレクトロルミネッセンスパネル等であり、距離測定の結果などを表示する。発光装置１０５は、距離測定の対象物に対して参照パターンを照射する装置であり、例えば、赤外線照射装置である。参照パターンは、一例としてランダムなドットパターンなどである。撮影装置１０６は、対象物からの反射光を受光することで画像を生成する装置であり、例えば、ＩＲカメラである。
【００１８】
図５は、距離測定装置１００の機能ブロック図である。図５で例示するように、ＣＰＵ１０１が距離測定プログラムを実行することによって、距離測定装置１００内に第１ブロック抽出部１０ａ、第２ブロック抽出部１０ｂ、第１評価関数算出部２０ａ、第２評価関数算出部２０ｂ、第１最小値算出部３０ａ、第２最小値算出部３０ｂ、画素検出部４０、距離算出部５０などが実現される。これらの各機能は、専用の回路などのハードウェアで実現されてもよい。
【００１９】
図６は、距離測定の対象物６０およびマッチング対象のブロック７０について例示する図である。図６で例示するように、対象物６０は、例えば、発光装置１０５の光軸に垂直で撮影装置１０６のセンサ面に対して平行な平行面６１と、当該センサ面に非平行な非平行面６２とを備えている。図６の例では、撮影装置１０６のセンサ面をなす互いに直交する軸をＸ軸およびＹ軸とする。Ｘ軸は、発光装置１０５と撮影装置１０６とを結ぶ線の方向である。Ｚ軸は、Ｘ軸およびＹ軸と直交する軸である。図６の例では、Ｚ軸は、撮影装置１０６と対象物６０との距離方向を表している。
【００２０】
図６で例示するように、非平行面６２では、ＸＹ平面における画素ずれ量がドットごとに変動する。図６の例では、ドットのＸ軸方向（以下、横方向とも称する）の画素ずれ量は、Ｙ軸方向（以下、縦方向とも称する）の位置に応じて異なっている。一方で、パターンマッチングには、マッチング対象のブロック７０がある程度の大きさの領域有していることが好ましい。しかしながら、ブロックサイズが大きいと、受光パターンの画素ずれ量にバラツキが生じて特定することができず、マッチング精度が劣化する。
【００２１】
ブロック７０を縦方向に狭くする場合、画素ずれ量のばらつきが抑制されて縦方向の分解能は上がるが、唯一無二のランダムな受光パターンの位置を識別するには、ある程度のブロックサイズが必要である。したがって、ブロック７０を縦方向に狭くしてブロックを小さくすると、マッチング精度が悪化するおそれがある。そこで、ブロックサイズを確保するため、ブロック７０を縦方向に狭くするとともに横方向に広げた横長ブロック７１を用いる。この場合、縦方向の分解能が上がることから、非平行面６２の距離変化に対しては対応することができる。しかしながら、横方向の分解能が悪くなる。例えば、図７で例示するように、Ｘ軸の端部では対象物６０が存在せずに反射光が戻ってこない領域も横長ブロック７１の範囲に含まれてしまう。
【００２２】
そこで、本実施例においては、図８で例示するように、横長ブロック７１および縦長ブロック７２を互いに重複させて両方でマッチング処理を行い、良好な結果が得られる方のブロックを用いたマッチング結果を採用する。この場合、図８で例示するように、いずれか一方の方向において対象物６０が存在せずに反射光が戻ってこない領域が含まれていても、画素ずれ量を検出することができる。
【００２３】
図９（ａ）〜図９（ｃ）は、画素ずれ量の検出結果を例示する図である。図９（ａ）〜図９（ｃ）において、距離測定の対象物６０が対象物画像として取得されている。横軸および縦軸は、各画素位置（ピクセル）を表している。周辺の画素ずれ量との差異が大きくなければドットが現れず、周辺の画素ずれ量との差異が大きいとドットが現れる。すなわち、画素ずれ量にバラツキが生じなければドットが現れず、画素ずれ量にバラツキが生じるとドットが現れる。マッチング精度を向上させるためには画素ずれ量にバラツキが生じていないことが好ましいため、ドットが現れていないことが好ましい。
【００２４】
図９（ａ）は、１６ピクセル（Ｘ軸）×１６ピクセル（Ｙ軸）のブロックを用いてパターンマッチングした結果である。図９（ａ）で例示するように、縦方向および横方向が同じサイズのブロックを用いた場合には、非平行面６２において画素ずれ量にバラツキが生じている。これに対して、図９（ｂ）で例示するように、１６ピクセル（Ｘ軸）×８ピクセル（Ｙ軸）縦方向に狭くしたブロックを用いてパターンマッチングした場合には、画素ずれ量のバラツキが小さくなっていることがわかる。次に、図９（ｃ）で例示するように、２４ピクセル（Ｘ軸）×８ピクセル（Ｙ軸）のように横方向に長くした横長ブロックを用いてパターンマッチングした場合には、画素ずれ量のバラツキがさらに小さくなっていることがわかる。したがって、非平行面６２に対して、マッチング精度が向上したことがわかる。これは、パターンマッチングに必要なブロックサイズを用いたからである。一方で、対象物６０の横方向の端部において画素ずれ量のバラツキが大きくなっている。
【００２５】
図１０（ｃ）は、８ピクセル（Ｘ軸）×２４ピクセル（Ｙ軸）の縦長ブロックを用いてパターンマッチングした結果である。図１０（ｃ）で例示するように、縦長のブロックを用いると、非平行面６２では画素ずれ量のバラツキが大きくなったものの、対象物６０の横方向の端部において画素ずれ量のバラツキが小さくなっている。なお、図１０（ａ）は図９（ａ）と同じ図であり、図１０（ｂ）は図９（ｃ）と同じ図である。横長ブロックを用いた結果（図９（ｃ））と、縦長ブロックを用いた結果（図１０（ｃ））の画素ずれ量のバラツキが少ない部分を組み合わせれば、非平行面６２の画素ずれ量の精度向上と、横方向の分解能とを両立することができる。図１０（ｄ）は、両者の類似度を評価関数とすることで、非平行面６２の画素ずれ量の精度向上と、横方向の分解能とを両立した結果である。
【００２６】
続いて、図５の各機能の動作について、図５および図１１を参照しつつ説明する。図１１は、図５の各機能の動作を表すフローチャートを例示する図である。まず、第１ブロック抽出部１０ａおよび第２ブロック抽出部１０ｂは、撮影装置１０６から対象物画像を取得する。次に、第１ブロック抽出部１０ａは、対象物画像の対象画素位置を含む横長ブロックの範囲を抽出する。第２ブロック抽出部１０ｂは、対象物画像の対象画素位置を含む縦長ブロックの範囲を抽出する（ステップＳ１）。例えば、横長ブロックとして２４ピクセル（Ｘ軸）×８ピクセル（Ｙ軸）のブロックを用い、縦長ブロックとして８ピクセル（Ｘ軸）×２４ピクセル（Ｙ軸）のブロックを用いる。
【００２７】
次に、第１ブロック抽出部１０ａおよび第２ブロック抽出部１０ｂは、データベースなどに格納されている参照画像を取得する。本実施例においては、参照画像とは、撮影装置１０６のセンサ面に平行で発光装置１０５からの距離が規定値に定められた平面に対して参照パターンが照射された場合に撮影装置１０６が予め得ておいた画像のことである。次に、第１ブロック抽出部１０ａは、参照画像においてステップＳ１で着目した対象画素位置でステップＳ１と同じ横長ブロックの範囲を抽出する。また、第２ブロック抽出部１０ｂは、参照画像においてステップＳ１で着目した対象画素位置でステップＳ１と同じ縦長ブロックの範囲を抽出する（ステップＳ２）。
【００２８】
次に、第１評価関数算出部２０ａは、ステップＳ１で抽出した横長ブロックと、ステップＳ２で抽出した横長ブロックとに対して、第１評価関数を算出する。また、第２評価関数算出部２０ｂは、ステップＳ１で抽出した縦長ブロックと、ステップＳ２で抽出した縦長ブロックとに対して、第２評価関数を算出する（ステップＳ３）。評価関数として、例えば、マッチングの両対象の輝度値分布の類似度を表す概念を用いることができる。本実施例においては、一例として、差分二乗和、差分絶対和、相関係数正規化等の、輝度値分布の類似度が高いと小さい値となる評価関数を用いる。
【００２９】
次に、第１最小値算出部３０ａは、ステップＳ２〜ステップＳ４の繰り返しにおいて、第１評価関数算出部２０ａが算出した評価関数の最小値を算出する。第２最小値算出部３０ｂは、ステップＳ２〜ステップＳ４の繰り返しにおいて、第２評価関数算出部２０ｂが算出した評価関数の最小値を算出する。画素検出部４０は、第１最小値算出部３０ａが算出した最小値から得られる画素ずれ量を算出し、第２最小値算出部３０ｂが算出した最小値から得られる画素ずれ量を算出する（ステップＳ４）。ステップＳ２〜ステップＳ４は、ステップＳ１で着目した対象画素位置を含む探索範囲（参照画像において横長ブロックおよび縦長ブロックを含む所定範囲）の全てにおいて繰り返される。
【００３０】
探索範囲の全てにおいてステップＳ２〜ステップＳ４が繰り返された後、画素検出部４０は、最後に実行されたステップＳ４において算出された２つの画素ずれ量のうち、小さい方を選択する（ステップＳ５）。
【００３１】
次に、距離算出部５０は、ステップＳ５で選択された画素ずれ量を距離に換算する（ステップＳ６）。例えば、三角測量を用いることができる。ステップＳ１〜ステップＳ６は、全ての画素を対象として繰り返される。全ての画素に対して距離を求めることで、対象物６０の各部と撮影装置１０６との距離を求めることができるとともに、対象物６０の形状を求めることができる。
【００３２】
本実施例によれば、対象物画像および参照画像から抽出した横長ブロック同士および縦長ブロック同士をマッチングし、いずれかのマッチング結果のうち類似度が高くなる方が選択される。それにより、縦方向および横方向の分解能と、対象物６０の端部におけるマッチング精度とを両立させることができる。その結果、画素ずれ量の検出精度が向上し、高精度に距離測定を行うことができる。
【００３３】
（変形例１−１）
対象物画像において、輝度が低い領域が縦方向に狭い場合、縦長のブロックではより輝度の高い周辺領域の影響が大きくなる。したがって、横長ブロックで算出した結果より、縦長ブロックで算出した結果の影響が大きくなるおそれがある。この場合、縦長ブロックのマッチング結果が誤って選択されるおそれがある。すなわち、対象物画像において、反射率が低くて輝度値が低く（ＳＮが良好ではなく）、細い領域に対しては、良好なマッチング精度を実現することが困難である。そこで、変形例１−１では、より高いマッチング精度が得られる例について説明する。
【００３４】
本変形例における図５の各機能の動作について、図５および図１２を参照しつつ説明する。図１２は、図５の各機能の動作を表すフローチャートを例示する図である。ステップＳ１１〜ステップＳ１４は、図１１のステップＳ１〜ステップＳ４と同様である。
【００３５】
探索範囲の全てにおいてステップＳ１２〜ステップＳ１４が繰り返された後、画素検出部４０は、最後に実行されたステップＳ１４において、第１最小値算出部３０ａが算出した最小値から得られる画素ずれ量から横方向の差分ずれ（差分和）を算出する。また、画素検出部４０は、最後に実行されたステップＳ１４において、第２最小値算出部３０ｂが算出した最小値から得られる画素ずれ量から縦方向の差分ずれ（差分和）を算出する（ステップＳ１５）。横方向の差分ずれが小さいことは、横方向に画素ずれ量が概略同じであることを意味する。縦方向の差分ずれが小さいことは、縦方向に画素ずれ量が概略同じであることを意味する。
【００３６】
例えば、横方向の差分ずれは下記式（１）を用いて算出することができ、縦方向の差分ずれは下記式（２）を用いて算出することができる。下記式において、ｐｘｙは、対象画素位置における画素ずれ量を表す。ｐｉｙは、対象画素位置の横方向の位置（ｉ）での画素ずれ量を表す。ｐｘｊは、対象画素位置の縦方向の位置（ｊ）での画素ずれ量を表す。なお、畳み込み用の差分フィルタとして、［１  １  １  １  １  −１０  １  １  １  １  １］／１０のような行列を用いてもよい。
【数１】
2018112527.tif 000003
【数２】
2018112527.tif 000004
【００３７】
次に、画素検出部４０は、ステップＳ１５で算出された差分ずれ量のうち小さい方の画素ずれ量を選択する（ステップＳ１６）。次に、距離算出部５０は、ステップＳ１６で選択された画素ずれ量を距離に換算する（ステップＳ１７）。例えば、三角測量を用いることができる。ステップＳ１１〜ステップＳ１７は、全ての画素を対象として繰り返される。全ての画素に対して距離を求めることで、対象物６０の各部と撮影装置１０６との距離を求めることができるとともに、対象物６０の形状を求めることができる。
【００３８】
図１３（ａ）は、実施例１の手法で算出された距離の分布を例示する図である。図１３（ａ）において、同じ模様の領域は、同一距離範囲として検出された領域である。実施例１の手法により、距離分布にバラツキが生じていないことがわかる。図１３（ｂ）は、本変形例の手法で算出された距離の分布を例示する図である。図１３（ｂ）において、同じ模様の領域は、同一距離範囲として検出された領域である。図１３（ｂ）で例示するように、本変形例の手法により、距離範囲の境界が平滑化されている。これは、反射率が低くて輝度値が低く細い領域に対しても、良好なマッチング精度を実現することができているからである。
【００３９】
本変形例によれば、差分ずれを取得することで、当該差分ずれの方向に画素ずれ量が概略同じであるか否かを検出することができる。この差分ずれが小さくなるようにマッチング結果が選択されることから、画素ずれ量の検出精度がさらに向上し、高精度に距離測定を行うことができる。
【００４０】
上記各例において、横方向（Ｘ軸方向）に長いブロックと、縦方向（Ｙ軸方向）に長いブロックとを用いたがそれに限られない。撮影装置１０６のセンサ面に平行な平面において長さ方向が異なる２つのブロックを用いることで、画素ずれ量の検出精度を向上させることができる。
【実施例２】
【００４１】
実施例１および変形例１−１では、長さ方向が互いに異なる２つのブロックを用いたが、長さ方向が互いに異なる３つ以上のブロックを用いてもよい。実施例２では、横方向（Ｘ軸方向）に長いブロックと、縦方向（Ｙ軸方向）に長いブロックと、斜め方向に長いブロックとを用いる例について説明する。
【００４２】
図１４は、実施例２に係る距離測定装置１００ａの機能ブロック図である。図５と異なる点は、第３ブロック抽出部１０ｃ、第３評価関数算出部２０ｃ、第３最小値算出部３０ｃがさらに備わっている点である。これらの各機能は、ＣＰＵ１０１が距離測定プログラムを実行することによって実現される。または、これらの各機能は、専用の回路などのハードウェアで実現されてもよい。
【００４３】
第３ブロック抽出部１０ｃは、撮影装置１０６が取得した対象物画像を取得し、対象物画像の対象画素位置を含み斜め方向に長いブロックの範囲を抽出する。例えば、縦方向２ブロックが、横方向に１ブロック進むにつれて縦方向に１ブロックずれるような範囲を、斜め方向に長いブロックの範囲とすることができる。
【００４４】
次に、第３ブロック抽出部１０ｃは、データベースなどに格納されている参照画像を取得し、参照画像において、対象画素位置で、斜め方向に長い同じブロックの範囲を抽出する。次に、第３評価関数算出部２０ｃは、対象物画像から抽出した斜め方向に長いブロックと、参照画像から抽出した斜め方向に長いブロックとに対して、第３評価関数を算出する。次に、第３最小値算出部３０ｃは、探索範囲の全てにおいて算出された第３評価関数の最小値を算出する。画素検出部４０は、探索範囲の全てにおいて、第１最小値算出部３０ａが算出した最小値から得られる画素ずれ量を算出し、第２最小値算出部３０ｂが算出した最小値から得られる画素ずれ量を算出し、第３最小値算出部３０ｃが算出した最小値から得られる画素ずれ量を算出する。画素検出部４０は、第１最小値算出部３０ａが算出した最小値から得られる画素ずれ量と、第２最小値算出部３０ｂが算出した最小値から得られる画素ずれ量と、第３最小値算出部３０ｃが算出した最小値とから、最小のものを選択する。
【００４５】
次に、距離算出部５０は、画素検出部４０によって選択された画素ずれ量を距離に換算する。例えば、三角測量を用いることができる。以上の処理が、全ての画素を対象として繰り返される。全ての画素に対して距離を求めることで、対象物６０の各部と撮影装置１０６との距離を求めることができるとともに、対象物６０の形状を求めることができる。
【００４６】
本実施例によれば、対象物画像および参照画像から抽出した３方向に長いブロック同士をマッチングし、いずれかのマッチング結果のうち類似度が高くなる結果が選択される。それにより、３方向の分解能と、対象物６０の端部におけるマッチング精度とを両立させることができる。その結果、画素ずれ量の検出精度が向上し、高精度に距離測定を行うことができる。
【実施例３】
【００４７】
上述した評価関数として挙げた差分二乗和、差分絶対値和等は、輝度の大きさに応じたずれが大きくなる。相関係数正規化については、処理量が多くなる。そこで、輝度の大きさに応じたずれを抑制するために、隣接画素の輝度差分を算出し、当該差分がプラスの閾値よりも大きい場合に１、マイナスの閾値よりも小さい場合に−１、それ以外を０とすることで、３値化してもよい。これにより、輝度の絶対値の影響を抑制することができる。隣接差分は、Ｘ軸方向の差分、Ｙ軸方向の差分、あるいは両者の平均などとすることができる。なお、差分を算出する前に、ローパスフィルタなどでノイズを低減してもよい。
【００４８】
図１５は、実施例３に係る距離測定装置１００ｂの機能ブロック図である。図５と異なる点は、第１微分処理部６０ａおよび第２微分処理部６０ｂがさらに備わっている点である。これらの各機能は、ＣＰＵ１０１が距離測定プログラムを実行することによって実現される。または、これらの各機能は、専用の回路などのハードウェアで実現されてもよい。
【００４９】
例えば、隣接差分のフィルタとして、下記式（３）のようなＸ軸方向の隣接差分を算出するための行列を適用することができる。
【数３】
2018112527.tif 000005
また、隣接差分のフィルタとして、下記式（４）のようなＹ軸方向の隣接差分を算出するための行列を適用することができる。
【数４】
2018112527.tif 000006
また、隣接差分のフィルタとして、下記式（５）または下記式（６）のような斜め方向の隣接差分を算出するための行列を適用することができる。
【数５】
2018112527.tif 000007
【数６】
2018112527.tif 000008
【００５０】
例えば、図１６（ａ）のように、上記式（５）および上記式（６）のいずれか一方を用いて、対象物画像を畳み込む。それにより、対象物画像を３値化することができる。例えば、図１６（ｂ）のように、第１微分処理部６０ａは、ローパスフィルタでノイズが除去された対象物画像を上記式（５）で３値化したものを、対象物画像として、第１評価関数算出部２０ａに入力する。第２微分処理部６０ｂは、ローパスフィルタでノイズが除去された参照画像を上記式（５）で３値化したものを、３値化参照画像として、第１評価関数算出部２０ａに入力する。また、第１微分処理部６０ａは、対象物画像を上記式（６）で３値化したものを、対象物画像として、第２評価関数算出部２０ｂに入力する、第２微分処理部６０ｂは、参照画像を上記式（６）で３値化したものを、３値化参照画像として、第２評価関数算出部２０ｂに入力する。その後の処理は、実施例１と同様である。
【００５１】
なお、第１評価関数算出部２０ａは、図１７で例示するように、対象物画像の対象位置で抽出されたブロックと、３値化参照画像の探索範囲において抽出されたブロックとの差分絶対値を算出し、ブロック全体の和を評価関数としてもよい。第１最小値算出部３０ａは、３値化参照画像の探索範囲内での評価関数が最小となる画素ずれ量を算出する。横長ブロックを用いる場合には、探索範囲は、横長ブロックを横方向に延長した範囲となる。光軸ずれが生じる場合などにおいては、縦方向に延長した範囲を探索範囲に付加してもよい。縦長ブロックを用いる場合には、探索範囲を、縦長ブロックを縦方向に延長した範囲とし、光軸ずれが生じる場合などにおいては横方向に延長した範囲を探索範囲に付加してもよい。
【００５２】
本実施例によれば、対象物画像および参照画像を３値化することで、輝度の大きさに起因する評価関数のずれを抑制することができる。また、３値化により、値の種類が低減されることから、処理量が低減される。
【００５３】
（変形例）
図１７の例では、参照画像の探索範囲内での評価関数が最小となる画素ずれを画素位置ごとに算出しているが、それに限られない。例えば、図１８で例示するように、３値化参照画像を１画素ごとシフトし、画素ずれの差分絶対値和を評価関数として算出し、シフト前の最小評価関数よりも最小となる画素位置において、画素ずれシフトと最小評価関数とを順次入れ替えることで、全シフト後（探索範囲内）に全画素位置で評価関数が最小となる画素ずれを算出してもよい。ここでの評価関数の例として、斜め方向の微分３値化に対し、３値化参照画像をシフトし、差分絶対値をとり、斜め方向の２種類の平均をとってもよい。この平均に対して、横長ブロックおよび縦長ブロックの畳み込み（総和）をそれぞれとり、最小の方を評価関数としてもよい。
【実施例４】
【００５４】
図１９（ａ）は、実施例４に係る距離測定装置１００ｃの機能ブロック図である。図１９（ａ）で例示するように、図１５と異なる点は、第１ブロック抽出部１０ａおよび第２ブロック抽出部１０ｂの代わりにブロック抽出部１０が備わり、第１評価関数算出部２０ａおよび第２評価関数算出部２０ｂの代わりに評価関数算出部２０が備わり、第１最小値算出部３０ａおよび第２最小値算出部３０ｂの代わりに最小値算出部３０が備わる点である。
【００５５】
図１９（ｂ）で例示するように、ブロック抽出部１０は、対象物画像の対象画素位置で、横長ブロックと縦長ブロックとで重複する正方ブロックを抽出する。また、ブロック抽出部１０は、参照画像において、対象画素位置に対して探索範囲内の画素位置での同じ正方のブロックを抽出する。評価関数算出部２０は、対象物画像の正方ブロックと参照画像の正方ブロックとの差分絶対値和を評価関数として算出する。最小値算出部３０は、当該正方ブロックの縦方向ブロック数よりも少ないブロック数で横方向に探索範囲を広げ、例えば横方向１列の和を算出する。また、最小値算出部３０は、当該正方ブロックの横方向ブロック数よりも少ないブロック数で縦方向に探索範囲を広げ、例えば縦方向１列の和を算出する。最小値算出部３０は、両者の最小の評価関数を算出する。画素検出部４０は、両者の最小の評価関数となる画素ずれ量を算出する。距離算出部５０は、得られた画素ずれ量から、三角測量により距離を算出する。本実施例によれば、探索範囲を広げる場合の処理量が低減される。
【００５６】
上記各例において、発光装置１０５が、対象物に参照パターンを照射する発光装置の一例として機能する。撮影装置１０６が、前記対象物からの反射光から対象物画像を取得する撮影装置の一例として機能する。第１ブロック抽出部１０ａ、第２ブロック抽出部１０ｂ、第３ブロック抽出部１０ｃ、ブロック抽出部１０、第１評価関数算出部２０ａ、第２評価関数算出部２０ｂ、第３評価関数算出部２０ｃ、評価関数算出部２０が、長さ方向が異なる少なくとも２つのブロックを前記対象物画像および参照画像のそれぞれから抽出し、長さ方向が対応するブロック同士をマッチングするマッチング部の一例として機能する。画素検出部４０が、前記マッチング部のマッチング結果に基づいて、前記対象物画像と前記参照画像との画素ずれ量を検出する検出部の一例として機能する。距離算出部５０が、前記画素ずれ量から、前記発光装置または前記撮影装置と前記対象物との距離を算出する距離算出部の一例として機能する。
【００５７】
以上、本発明の実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００５８】
１０ａ  第１ブロック抽出部
１０ｂ  第２ブロック抽出部
２０ａ  第１評価関数算出部
２０ｂ  第２評価関数算出部
３０ａ  第１最小値算出部
３０ｂ  第２最小値算出部
４０  画素検出部
５０  距離算出部
１００  距離測定装置
【図１】
2018112527.tif 000009
【図２】
2018112527.tif 000010
【図３】
2018112527.tif 000011
【図４】
2018112527.tif 000012
【図５】
2018112527.tif 000013
【図６】
2018112527.tif 000014
【図７】
2018112527.tif 000015
【図８】
2018112527.tif 000016
【図９】
2018112527.tif 000017
【図１０】
2018112527.tif 000018
【図１１】
2018112527.tif 000019
【図１２】
2018112527.tif 000020
【図１３】
2018112527.tif 000021
【図１４】
2018112527.tif 000022
【図１５】
2018112527.tif 000023
【図１６】
2018112527.tif 000024
【図１７】
2018112527.tif 000025
【図１８】
2018112527.tif 000026
【図１９】
2018112527.tif 000027