以下、本発明の実施形態について、図面を参照して詳細に説明する。なお、各図における表現は理解しやすいように誇張して記載しており、実際とは異なる場合がある。
〔実施形態1〕
図1は、本発明の実施形態1に係る計測装置1の概略構成を示す機能ブロック図である。本実施形態に係る計測装置1は、撮像した画像に含まれる計測点(対象点)の三次元上の位置を算出でき、当該計測点の三次元上の位置に基づいて算出可能な長さ、面積などを計測する装置である。「計測点の三次元上の位置」とは、実空間上の三次元位置(座標)のことを示す。
計測装置1は、図1に示すように、撮像部10、撮像部11、および撮像部12と、入力部20と、画像処理部30と、表示部40と、を備える。
撮像部10、撮像部11、および撮像部12は、ステレオ方式によって画像を撮像する機能を備えている。各撮像部はそれぞれ、図示しないレンズモジュールなどの光学系と、CCD(Charge Coupled Device)やCMOS(Complementary Metal Oxide Semiconductor)などのイメージセンサを備えている。また、各撮像部はそれぞれ、アナログ信号処理部やA/D(Analog/Digital)変換部などをさらに備え、イメージセンサからの信号を画像として出力する。
また、各撮像部の配置について、図2を用いて説明する。図2は、本発明の実施形態1における各撮像部の三次元上の配置を示す図である。各撮像部は、図2に示すように撮像部10を基準としてX軸方向(水平方向)に光軸が略平行となるように配置されている。各撮像部は少なくとも一部の共通する領域(以下、共通領域と称する)を撮像できるように配置され、図2では各撮像部が少なくとも被写体aが存在する領域を共通領域として撮像している様子が示されている。また、図2に示すZ軸は、撮像部10の光軸と一致し、また、撮像部10から被写体に向かう方向を表している。Y軸はX軸およびZ軸に直交する方向(図2における下方向)である。
以下の説明では、撮像部10を、計測の基準である基準撮像部、撮像部11、撮像部12をそれぞれ参照撮像部1、参照撮像部2と称する。また、基準撮像部によって撮像された画像を基準画像、参照撮像部1、参照撮像部2によって撮像された画像をそれぞれ参照画像1、参照画像2と称する。
なお、本実施形態では、例として、各撮像部が同一の構成を備える場合について説明する。しかしながら、ステレオ方式によって各撮像部が共通領域を撮像し、各撮像部によって撮像された各画像において、画素間の対応を取ることが可能であれば、解像度や画角などが異なる撮像部を用いても構わない。
また、各撮像部は外部トリガなどによって同期して、同時に撮像することができるものとする。ただし、計測対象が動かない静止物体の場合には、各撮像部が厳密に同期されていなくてもよい。
入力部20は、ユーザの入力を受け付け、受け付けた入力を示す入力情報を出力する。入力部20は、例えば、マウスやキーボードなどの入力装置によって実現可能である。また、入力部20が受け付ける入力の例として、後述する表示部40が表示した画像上において、計測点をユーザが指定する旨の入力が挙げられる。なお、入力部20は、表示部40に組み込まれたタッチパネルなどであっても構わない。入力部20がタッチパネルの場合、表示部40を抵抗膜方式や静電容量方式などといった一般的なタッチパネルとすることによって、表示部40と入力部20とを1つの装置として実現することができる。これにより、ユーザは表示部40に表示された画像にタッチすることにより、計測点を指定するなどの操作が可能となる。
画像処理部30は、CPU(Central Processing Unit)などのプロセッサや、RAM(Random Access Memory)などの主記憶装置などを備え、記憶装置に格納されたプログラムを実行して処理を行う処理装置である。また、画像処理部30は、FPGA(Field Programmable Gate Array)などのプログラム可能な集積回路、または画像処理部30で行われる各処理を実行する集積回路を備えるハードウェアで実現してもよい。画像処理部30は、図1に示すように、計測点指定部31、被写体分析部(画像選択部)32、視差値算出部33、位置情報算出部34、および計測値算出部(計測部)35として機能する。
計測点指定部31は、入力部20が出力した入力情報に基づいて計測点を指定する。計測点指定部31は、指定した計測点を示す計測点情報を出力する。
被写体分析部32は、各撮像部が出力した画像と、計測点指定部31が出力した計測点情報とに基づいて、計測点の状態(計測点の位置に写された被写体の情報)を分析する。なお、計測点の状態の具体例としては、計測装置1(計測装置1の基準撮像部)から計測点の位置に写された被写体までの実空間における距離や、計測点の位置に写された被写体の、画像上でのエッジの方向などが挙げられる。そして、被写体分析部32は、分析結果に応じて参照画像を選択する。
視差値算出部33は、被写体分析部32が選択した参照画像と基準画像とを参照し、参照画像における計測点の位置と、基準画像における計測点の位置とのずれ量、すなわち視差値を算出する。
位置情報算出部34は、視差値算出部33が算出した視差値に基づいて、計測点の三次元上の位置を示す三次元位置情報を算出する。
計測値算出部35は、位置情報算出部34が算出した三次元位置情報に基づいて、計測点に関する計測を行う。
画像処理部30は、計測値算出部35が計測した結果を示す計測結果を、表示部40に出力して表示する。また、画像処理部30は、表示部40に計測結果を出力して表示するとともに、または、表示部40に計測結果を出力して表示する代わりに、外部装置、記憶装置などに計測結果を出力する構成であってもよい。
表示部40は、例えば、液晶素子や有機EL(Electro Luminescence)などを画素とする表示ディスプレイである。なお、計測装置1は、表示部40を備えない構成であってもよい。具体的には、表示部40は、テレビジョンディスプレイやPC(Personal Computer)用モニタ、或いは、スマートフォンやタブレット端末等の携帯端末のディスプレイといった表示デバイスであってもよい。また、表示部40は、上述したように、入力部20が組み込まれたタッチパネルディスプレイであってもよい。
(計測装置1の処理手順)
続いて、図3を用いて計測装置1の処理手順(計測方法)を説明する。図3は、本発明の実施形態1に係る計測装置1の処理の流れを示すフローチャートである。
まず、計測装置1は、撮像部10、撮像部11、および撮像部12がそれぞれ撮像した画像を取得する(ステップS101)。計測装置1は、撮像部10、撮像部11、および撮像部12がそれぞれ撮像した画像のうち、撮像部10が撮像した基準画像を、表示部40に表示する(ステップS102)。ユーザは表示部40に表示された基準画像を確認しながら、マウス等の入力部20を用いて基準画像上で計測点を指定する。入力部20は、計測点を指定する旨の入力を受け付けると、当該入力を示す入力情報を出力する。計測点指定部31は、入力部20が出力した入力情報に基づいて計測点を指定し、当該計測点を示す計測点情報を被写体分析部32に出力する(ステップS103)。なお、計測点指定部31が出力する計測点情報は、計測点の二次元上の位置を示す情報であり、より具体的には、基準画像上の二次元位置(座標)のことを示す。
次に、計測点指定部31は、計測点の指定が終わったか否かを判定する(ステップS104)。計測点指定部31は、計測点の指定が終わっていないと判定した場合(ステップS104:NO)、さらに他の計測点を指定するためにステップS103に戻る。
一方、計測点指定部31が、計測点の指定は終わったと判定した場合(ステップS104:YES)、被写体分析部32は、計測点における被写体の状態を分析する(ステップS105)。そして、被写体分析部32は、分析結果に基づいて参照画像を選択する(ステップS106:画像選択ステップ)。
視差値算出部33は、被写体分析部32が選択した参照画像と基準画像とを参照し、計測点における視差値を算出する(ステップS107)。位置情報算出部34は、視差値算出部33が算出した視差値に基づいて、計測点の三次元上の位置を示す三次元位置情報を算出する(ステップS108:位置情報算出ステップ)。計測値算出部35は、位置情報算出部34が算出した三次元位置情報に基づいて、計測点間の長さ等の計測を行う(ステップS109)。
最後に、画像処理部30は、計測値算出部35が計測した結果を示す計測結果を、表示部40や外部装置へと出力する(ステップS110)。計測結果は、例えば、表示部40に表示した画像に重畳して表示されたり、外部装置に出力されたりする。以上の処理手順によって本実施形態に係る計測装置1は計測処理を行う。
続いて、各処理ステップの処理内容の詳細を説明する。
(ステップS104 計測点の指定が終わったか否かの判定)
計測点指定部31は、入力部20が出力した入力情報に応じて、計測点の指定が終了したか否かを確認する。例えば、入力部20がマウスであって、左クリックを、計測点を指定する旨の入力、右クリックを、計測点の指定を終了する旨の入力とした場合について説明する。この場合、計測点指定部31が取得した入力情報が右クリックされたことを示す場合、計測点指定部31は、計測点の指定が終了したと判定する。また、表示部40に計測点指定終了のアイコンを表示し、当該アイコンを、マウスを用いて選択する、或いは、キーボードによるキー操作によって、指定終了を指示する、といった構成であってもよい。
なお、ステップS104の処理は、ステップS108とステップS109の間や、ステップS110の後、などといったタイミングにおいて実行される構成であってもよい。
例えば、ステップS104の処理を、ステップS108とステップS109の間に行う場合、ステップS103において計測点が指定される度に、計測装置1は、ステップS105からステップS108までの処理を実行して三次元位置情報を算出する。その後、計測点指定部31は、ステップS104において、計測点の指定が終わったか否かを判定する。計測点指定部31が、計測点の指定は終わったと判定した場合、計測装置1は、ステップS109以降の処理を行う。
このようにすることで、計測装置1は、ユーザが次の計測点を指定するまでの間、指定された計測点の三次元位置情報を算出することができる。すなわち、計測装置1は、ユーザからの入力を待っている間に処理を行うので、効率的な計測処理が可能となる。
また、ステップS110の後にステップS104の処理を行う場合、計測装置1は、ステップS103において計測点が指定される度に、ステップS105からステップS110までの処理を実行して計測結果を出力する。
このとき、計測装置1は、出力する計測結果が、最初に指定された計測点のみに関する計測結果である場合、ステップS108において算出された三次元位置情報をそのまま出力してもよい。また、計測装置1は、出力する計測結果が、2番目に指定された計測点に関する計測結果である場合、ステップS109において2点間の距離を算出して出力してもよい。さらに、計測装置1は、出力する計測結果が3番目以降に指定された計測点に関する計測結果である場合、ステップS109において、指定された全ての計測点で囲まれる平面の面積や、指定された全ての計測点間の距離などを算出して出力してもよい。なお、ステップS109において実行される計測処理の詳細については、後述する。
このようにすることで、計測装置1は、ユーザが次の計測点を指定するまでの間に、前に指定された計測点の三次元情報を算出し、さらに指定された計測点の数に応じて計測処理を行う。したがって、ユーザは、計測点を指定する度に指定した計測点とその数に応じた計測結果を確認することができるので、計測装置1はユーザの利便性を向上させることができる。
(ステップS105 被写体の状態を分析)
まず、本実施形態における被写体分析部32は、計測点における被写体の状態を分析するために、基線長が短い組み合わせである撮像部10および撮像部11によってそれぞれ撮像された基準画像および参照画像1を参照して、計測点における視差値をステレオ方式によって算出する。そして、被写体分析部32は、算出した視差値に基づいて被写体の状態を分析する。
ここで、ステレオ方式について説明する。ステレオ方式では、まず、2つの撮像部を光軸が略平行となるように並べ、2つの撮像部で少なくとも一部の共通領域を撮像する。次に、得られた2つの画像間で画素の対応関係を求めて視差値を算出し、視差値を基に距離を算出するものである。ここで、2つの画像において画素の対応関係を求めることをステレオマッチングと呼ぶ。
ステレオマッチングでは、2つの画像のどちらか一方を基準画像に設定し、もう一方を参照画像に設定する。基準画像上における任意の注目画素について、参照画像上を走査することによって対応する画素を探索する。対応する画素を探索する走査方向は、2つの撮像部が配置されている方向と同一である。より具体的には、2つの撮像部が左右水平方向に配置されている場合、走査方向も水平方向である。また、2つの撮像部が上下垂直方向に配置されている場合、走査方向も垂直方向である。
対応画素の探索は、注目画素を中心としたブロック単位で行われ、ブロック内の画素値の絶対値差分の総和をとるSAD(Sum of Absolute Difference)を計算し、SADの値が最小となるブロックを決定することで行われる。なお、SADによる計算手法以外に、SSD(Sum of Squared Difference)やグラフカット、DP(Dynamic Programming)マッチングといった計算手法を用いることも可能である。基準画像上の注目画素の位置と参照画像上の対応画素の位置との差分が視差値である。そのため、注目画素の位置を変化させながらステレオマッチングを繰り返すことによって、基準画像の各画素における視差値を算出できる。ただし、ステレオマッチングによって視差値を算出できるのは、共通領域に含まれる画素についてのみである。また、視差値と、当該視差値に基づいて算出される距離とは、式(1)によって相互に変換が可能である。
ここで、Dは視差値、Zは撮像部から被写体までの距離、fは撮像部の焦点距離、Bは2つの撮像部間の基線長、pは撮像部のもつイメージセンサのピクセルピッチである。
また、視差値と撮像部から被写体までの距離との相関について、図4を用いて説明する。図4は、ステレオ方式によって算出される視差値と撮像部から被写体までの距離との相関を示すグラフである。図4に示すグラフでは、横軸が撮像部から被写体までの距離、縦軸が視差値を表している。図4に示すように、距離と視差値とは反比例の関係であり、距離が近いほど視差値が大きく、距離が遠いほど視差値が小さくなる。同じ被写体を異なる距離から撮像した場合、距離が近いほど画像上の被写体の画素数が増えるため、より細かく視差値を算出可能となり視差分解能は高くなる。一般に、視差値は1画素精度などで離散的に算出されるため、式(1)で変換される距離も離散値となり、この離散値の間隔を距離分解能と呼ぶ。つまり、視差の分解能が高いほど、距離の分解能も高くなるので、ステレオ方式によって被写体までの距離を求める場合には、近距離の被写体ほどより高い分解能で距離を求めることができる。
また、基線長が長いほど視差値が大きくなるため、基線長が長いほど高い分解能で視差値を算出して距離を求めることができる。つまり、近距離の被写体ほど、また、基線長が長いほど、高い分解能で高精度に距離を算出することできる。ただし、撮像部の焦点距離が固定の場合、基線長が長くなると2つの撮像部によって撮影できる共通領域が狭くなり、近距離側の領域が計測範囲外となってしまう。また、基線長が長くなればステレオマッチングにおける走査範囲が広くなり、距離が近い被写体ほどステレオマッチングの処理量が増加するという特徴がある。
上記のステレオ方式により算出された視差値に基づき、被写体分析部32は、計測点における被写体の状態を分析する。本実施形態の被写体分析部32が行う分析とは、計測点における視差値と、予め設定しておいた視差閾値との大小関係を比較することであり、この結果を分析結果として出力する。
視差閾値の設定方法および被写体分析部32の分析方法について図5および図6を参照して以下に説明する。図5は、図2に示した各撮像部の位置関係を真上から俯瞰した(Y軸のマイナスからプラスの方向に見た)図である。図5では、各撮像部は、被写体bおよび被写体cを撮像している。Z軸は撮像部10の光軸方向であり、Z座標の値は、撮像部10から被写体までのZ軸方向における距離を示している。
また、図5には、撮像部10と撮像部11の基線長B1、撮像部10と撮像部12の基線長B2、距離閾値ZTH、撮像部10から計測点PbまでのZ軸方向における距離Zb、撮像部10から計測点PcまでのZ軸方向における距離Zcが示されている。距離閾値ZTH、距離Zb、距離Zcを、式(1)に基づいて視差値に変換すると、それぞれ視差閾値DTH、視差値Db、視差値Dcで表わされる。
ここで、距離閾値ZTHとは、想定される計測対象被写体の撮像部からの距離や、必要とされる計測精度に応じて設定される値である。上述したように、設定した距離閾値ZTHを、式(1)に基づいて視差値に変換することによって、視差閾値DTHを求めることができる。距離閾値の設定方法として、撮影条件によってあらかじめ設定したり、キーボードなどの入力装置を用いてユーザが手動で設定したりする方法が挙げられる。なお、視差閾値は、距離閾値を設定してから変換するのではなく、距離と視差分解能との関係などに基づいて視差閾値DTHを設定するようにしてもよい。
また、距離誤差について、図6を用いて詳細に説明する。図6は、本発明の実施形態1に係る計測装置1において、ステレオ方式によって算出される撮像部から被写体までの距離と、距離誤差と、撮像部の基線長との関係を示すグラフである。図6では、横軸がステレオ方式によって算出される撮像部から被写体までの距離、縦軸が距離誤差である。ここで、距離誤差とは、実際の距離と、算出された距離との誤差を表す値である。上述の通り、ステレオ方式では、距離が近いほど距離分解能が高くなるため、距離が近いほど距離誤差は小さくなる。
また、図6に示す曲線RB1は、基線長が基線長B1のときの距離と距離誤差との関係、曲線RB2は、基線長が基線長B2のときの距離と距離誤差との関係を表している。曲線RB1および曲線RB2から分かるように、基線長が長いほど、距離誤差は小さくなる。例えば、距離閾値ZTHを図6に示すように設定した場合、基線長B1のときの距離誤差はZETHとなる。これは、基線長B1のとき、距離ZTHまで距離誤差ZETHの精度で、撮像部から被写体までの距離を算出できることを表している。また、基線長B2のとき、距離誤差ZETHの精度で、撮像部から距離Z2の被写体まで計測可能であることを表している。
被写体分析部32は、以上の方法によって設定された視差閾値DTHと、算出された計測点における視差値とを比較して、その大小関係を分析結果とする。後段のステップS106では、この大小関係に応じて最終的な視差値の算出に用いる参照画像を決定する。例えば、図5に示す位置関係の場合、計測点Pbの分析結果は、「計測点Pbにおける視差値Dbは、視差閾値DTH以上」である。また、計測点Pcの分析結果は、「計測点Pcの視差値Dcは、視差閾値DTH未満」となる。
なお、被写体分析部32は、上記の分析を距離に基づいて行ってもよく、算出された計測点の視差値を変換した距離と、上記のように設定した距離閾値ZTHとの大小関係を比較し、分析結果とする構成であってもよい。
なお、ステレオ方式によって算出される距離と距離誤差との関係は、使用する撮像部の焦点距離や画角、解像度、イメージセンサのピクセルピッチ、撮像部間の基線長などによって変化する。したがって、目標の精度となるようにハードウェア構成を決定してから距離閾値ZTHを設定したり、或いは、決められたハードウェア構成に応じた目標精度の範囲で距離閾値ZTHを設定したりすることが好ましい。
なお、ステップS105では、まず被写体分析部32において視差値を算出したが、このときの視差値の算出は視差値算出部33が行うようにしてもよい。この場合、まず、視差値算出部33が、基線長が短い組み合わせである撮像部10と撮像部11とによって撮像された基準画像および参照画像1に基づいて視差値を算出し、その結果を被写体分析部32に入力するようにすればよい。
(ステップS106 参照画像を選択)
被写体分析部32は、ステップS105における分析結果に応じて最終的な視差値の算出に用いる参照画像を選択する。
ステップS105における分析結果が、「計測点における視差値は、視差閾値以上」である場合、被写体分析部32は、参照画像1、すなわち、基線長が短い撮像部によって撮像された画像を選択する。一方、ステップS105における分析結果が、「計測点における視差値は、視差閾値未満」である場合、被写体分析部32は、参照画像2、すなわち、基線長が長い撮像部によって撮像された画像を選択する。このように選択された参照画像と、基準画像とに基づいて、後段のステップS107において視差値が算出される。
なお、上述したように、ステップS105における分析結果は、算出された計測点の視差値から変換した距離と、距離閾値ZTHとの大小関係であってもよい。この構成において、ステップS105における分析結果が、「算出された計測点における視差値を変換した距離は、距離閾値未満」である場合、被写体分析部32は、参照画像1、すなわち、基線長が短い撮像部によって撮像された画像を選択する。一方、ステップS105における分析結果が、「算出された計測点における視差値を変換した距離は、距離閾値以上」である場合、被写体分析部32は、参照画像2、すなわち、基線長が長い撮像部によって撮像された画像を選択する。
(ステップS107 視差値を算出)
視差値算出部33は、ステップS106において選択された参照画像と基準画像とを参照し、ステレオ方式によって視差値を算出する。
図5に示す例の場合、計測点Pbは基準画像と参照画像1に基づいて視差値が算出され、計測点Pcは基準画像と参照画像2に基づいて視差値が算出される。つまり、計測点Pbは、距離閾値ZTHよりも近い距離にある被写体b上に設定された計測点なので、基線長の短い撮像部の組合せによって視差値が算出される。一方、計測点Pcは、距離閾値ZTHよりも遠い距離にある被写体c上に設定された計測点であるので、基線長の長い撮像部の組合せによって視差値が算出される。
このように、計測装置1は、撮像部から被写体までの距離に応じて、視差値を算出するために用いる参照画像を変更するので、撮像部から被写体までの距離に関わらず、高精度に視差値を算出することが可能となる。また、距離が近い被写体上の計測点のステレオマッチングにおいて、探索範囲が小さくなるので処理量を低減させることができる。
上記のステップS105からステップS107までの処理によって、計測装置1は、計測点毎に、撮像部から被写体までの距離に応じて参照画像を選択し、選択した参照画像を参照して視差値を算出し、後段の位置情報算出部34へと出力する。
なお、ステップS106において、参照画像1が選択された場合、ステップS107では、視差値を算出する処理を行わずに、ステップS105において算出済みの視差値を最終的な値としてもよい。
また、ステップS105では、被写体分析部32は、視差値を算出する分解能を1画素で算出し、ステップS107では、視差値算出部33は、1画素以下の分解能で視差値を算出する構成であってもよい。この構成は、最終的な視差値を1画素以下の分解能で算出する場合でも、ステップS106における処理量を低減できるため好適である。
さらに、ステップS107において視差値算出部33が視差値を算出する際、ステップ105において算出された視差値に基づいて探索範囲を設定してもよい。この構成は、視差値を算出する処理量を低減できるので、好適である。例えば、ステップS106において、被写体分析部32が参照画像1を選択した場合、視差値算出部33は、ステップ105において算出された視差値に基づいて、1画素以下の精度で視差値を算出する。一方、ステップS106において、被写体分析部32が参照画像2を選択した場合、視差値算出部33は、ステップ105において算出された視差値と、基線長B1および基線長B2の比に基づいた視差値に基づいて探索範囲を設定し、1画素以下の精度で視差値を算出する。
(ステップS108 三次元位置情報の算出)
位置情報算出部34は、計測点指定部31が出力した計測点情報と、視差値算出部33が出力した視差値とに基づいて、計測点の三次元位置情報を算出する。位置情報算出部34が計測点の三次元位置情報を算出する方法について、詳しく説明する。
ある計測点P1の視差値をDP1、基準画像の二次元座標系における計測点P1の画素位置を示す二次元位置情報を(uP1,vP1)としたとき、三次元位置情報(XP1,YP1,ZP1)は式(2)、(3)、(4)によって算出される。
ここで、ucおよびvcはそれぞれ、基準画像の水平方向の中心画素位置と垂直方向の中心画素位置を表す。また、fは撮像部の焦点距離、Bは2つの撮像部間の基線長、pはイメージセンサのピクセルピッチを表す。なお、式(4)は式(1)と同様の式である。
上記のようにして、位置情報算出部34は計測点の三次元位置情報を算出し、後段の計測値算出部35に出力する。
(ステップS109 計測処理)
計測値算出部35は、位置情報算出部34によって算出された三次元位置情報に基づいて、2つの計測点間の長さや、複数の計測点を通りそれらの点で囲まれる平面の面積などを算出する。上述したように、計測値算出部35が算出する計測値の種類は長さや面積に限られず、入力された計測点の三次元位置情報に基づいて算出可能であれば、どのような値であっても構わない。例えば、計測値算出部35は、2つの計測点を通る直線と、当該2つの計測点と異なる他の計測点との距離を算出したり、直線と直線の成す角度や位置関係を算出したり、計測点群から近似平面を求め、近似平面と当該計測点群に含まれない他の計測点との距離を算出したりする構成であってもよい。これらは、三次元空間における点と点の関係など、公知の技術を用いて算出可能であり、詳細な説明は割愛する。
計測値算出部35が算出する計測値の種類は、ユーザが入力部20を用いて選択する構成であってもよい。例えば、表示部40に計測値算出部35が算出する計測値の種類を示すアイコンやリストを表示し、ユーザに、表示部40を確認させながらマウスやタッチパネルを用いて選択させる構成が挙げられる。また、計測値算出部35が算出する計測値の種類を、キーボードなどの入力装置を用いてユーザに選択させる構成であっても構わない。
ユーザに計測値の種類を選択させるタイミングは、ステップS103における計測点の指定時であってもよいし、ステップS104における、計測点の指定を終了するか否かを判定した後でもよい。しかしながら、ユーザに計測値の種類を選択させるタイミングは、計測点の指定以降であれば、いずれのタイミングにおいても選択可能な構成が望ましい。この構成により、例えば、ユーザが複数の計測点を指定した後、計測値算出部35が算出する計測値の種類をユーザが切り替えることができるので、所望の計測値をユーザに提示することが可能となり、好適である。
また、ステップS104の説明において述べたように、計測装置1は、計測点の数に応じて自動的に種類を判別して計測値を算出するようにしてもよい。例えば、計測装置1は、計測点が1点のときには、指定された計測点の三次元位置情報を提示し、計測点が2点のときには、指定された2点間の距離を算出して出力する。さらに計測装置1は、計測点が3点のときには、指定された3点を通りそれらの点で囲まれる平面の面積を算出して出力する。このようにすることで、計測装置1は、ユーザに計測値の種類の選択を強いることなく、計測点を指定するだけで計測結果が出力されるので、利便性を向上させることが可能になる。
(ステップS110 結果出力)
画像処理部30は、ステップS109において算出された計測結果を表示部40や外部装置へと出力する。
計測値算出部35が計測した計測結果を表示部40に出力する場合、表示部40に表示されている基準画像上に計測結果を重畳表示する。例えば、表示部40に表示されている計測点の付近に、撮像部から当該計測点までの距離を重畳表示したり、2点の計測点を結ぶ線分とその長さを重畳表示したり、3点の計測点を通りそれらの点で囲まれる平面とその面積を重畳表示したりする構成が挙げられる。このとき、画像処理部30は、計測結果ごとに色や線の太さなどを変化させて重畳表示することにより、計測点と計測結果との対応を分かり易く表示することも可能である。
また、画像処理部30が表示部40に計測値を表示している期間に計測値の種類が変更された場合、重畳表示する計測値を切り替えたり、さらに追加で変更後の計測値を重畳表示したりする構成であってもよい。この構成により、計測装置1は、指定された計測点に関する様々な計測結果を、ユーザに容易に確認させることが可能になる。さらに、指定された計測点が所望の位置とずれていた場合、或いは、計測値が所望の値と異なる場合などにおいても、計測装置1は、新たに計測点を指定することにより、新たな計測点に関する計測結果をユーザに提示できるため、ユーザの利便性を向上させることが可能になる。
また、画像処理部30は、計測結果を、フラッシュメモリやハードディスクなどによって構成される記憶装置に出力して保存したり、外部装置に出力したりする構成であってもよい。
このように、本実施形態に係る計測装置1は、ステレオ方式によって画像を撮像する少なくとも3つの撮像部がそれぞれ撮像した画像に共通して含まれる領域内に設定された計測点の状態に応じて、上記少なくとも3つの撮像部がそれぞれ撮像した画像のうち、2枚の画像(1枚の基準画像および1枚の参照画像)を選択する。そして、計測装置1は、選択した2枚の画像を参照し、計測点の三次元上の位置を示す三次元位置情報を算出する。そのため、計測装置1は、計測点の状態に応じて、三次元位置を算出するために参照する画像を変更するので、従来に比べて高い精度で計測点に関する計測を行うことが可能となる。
また、計測装置1は、撮像部から計測点の位置に写された被写体までの実空間上の距離を計測点の状態として、上記距離が所定の値(距離閾値)以上である場合、基準画像と、基準画像を撮像した撮像部との間の距離、すなわち、基線長が長いほうの撮像部が撮像した画像を更に選択する。一方、計測装置1は、上記距離が所定の値(距離閾値)未満である場合、基準画像と、基準画像を撮像した撮像部との間の距離、すなわち、基線長が短いほうの撮像部が撮像した画像を更に選択する。そのため、計測装置1は、撮像部から計測点までの実空間上の距離が所定の値以上である場合、計測点の三次元位置を算出する際に誤差が小さくなるように、基線長の長い撮像部の組み合わせによって撮像された画像を選択する。そのため、計測装置1は、撮像部から計測点までの実空間上の距離に関わらず、従来に比べて高い精度で計測点に関する計測をすることができる。
また、計測装置1は、撮像した画像の補間処理や小数精度の推定処理などといった余計な処理を行うことなく、計測点の三次元位置を算出することができるので、従来に比べて処理量が削減され、高速に処理を行うことができる。
また、計測装置1は、撮像部から被写体までの距離が異なる複数の計測点に関する計測であっても、高い精度による計測結果をユーザに提供することができる。
さらに、計測装置1は、指定された計測点に関する計測結果をユーザに提示した後であっても、新たに計測点を指定することにより、当該新たな計測点に関する計測結果を、ユーザに提示することができる。そのため、計測装置1は、計測点と計測結果とを対応させてユーザに提示できるので、ユーザの利便性を向上させることができる。また、計測装置1は、計測値の種類に応じて計測結果を切り替えて表示することができるので、ユーザの利便性を向上させることができる。
なお、計測装置1において、撮像部、入力部20、計測点指定部31、計測値算出部35、および表示部40を備えない計測装置であっても、本実施形態に係る計測装置1と同様、高い精度で計測点に関する計測をすることができる。この場合、当該計測装置は、基準画像、参照画像1、および参照画像2をそれぞれ示す画像情報を取得する。そして、当該画像情報に、当該画像情報が示す画像を撮像した撮像部の情報(基線長など)を含めることにより、高い精度で計測点に関する計測をすることができる。
また、当該計測装置は、予め3台の撮像部がそれぞれ撮像した画像を示す画像情報を、フラッシュメモリなどの記憶装置に記憶し、当該記憶装置から画像情報を取得する構成であってもよい。
また、当該計測装置は、画像情報を、IEEE802.11やIEEE802.15.1等の無線通信規格、或いは、USB(Universal Serial Bus)3.0やIEEE802.3等の有線通信規格による通信を介して取得する構成であってもよい。この構成により、当該計測装置は、予め撮像された画像を用いた計測を行うことができる。
なお、本実施形態では、撮像部10を基準撮像部として設定したが、基準撮像部は他の撮像部であっても構わない。例えば、撮像部12を基準撮像部として設定してもよく、この場合、計測装置1は、撮像部10および撮像部11が撮像した画像をそれぞれ、参照画像2、参照画像1として、上記と同様の処理を行う構成であってもよい。なお、この場合、基準撮像部に対する参照撮像部の配置方向が逆になるため、ステレオマッチングにおける走査方向も逆になる。
また、計測装置1は、撮像部11を基準撮像部として設定してもよい。この場合、基線長が短い組合せである撮像部によって撮像された画像を参照画像1、基線長が長い組合せである撮像部によって撮像された画像を参照画像2とする。この場合、ステレオマッチングにおける走査方向が左右で反対になる。
また、計測装置1が3台の撮像部を備え、基準撮像部と2台の参照撮像部とのそれぞれの基線長が固定されている場合、3台の撮像部のうち、中央の撮像部を基準撮像部とするよりも、左右どちらかの端にある撮像部を基準撮像部として設定する構成が好ましい。この場合、3台の撮像部が配置された計測装置1の全体の幅を小さくすることができる。したがって、計測装置1のサイズを小さくしたい場合には、撮像部10または撮像部12を基準撮像部とすることが望ましい。
〔変形例1〕
本実施形態に係る計測装置1は3台の撮像部を備えていたが、4台以上の撮像部を備える構成であってもよい。本変形例では、4台の撮像部を備える計測装置1aについて説明する。計測装置1aは、図1に示すブロック図にさらに撮像部を追加し、各撮像部が取得する画像を視差値算出部33に入力する構成とする。
本変形例に係る計測装置1aが備える撮像部の位置関係について、図7を用いて説明する。図7は、本発明の変形例1における4台の撮像部の位置関係を真上から俯瞰した(Y軸のマイナスからプラスの方向に見た)図である。計測装置1aでは、図7に示すように各撮像部が配置されており、撮像部10によって撮像された画像を基準画像、撮像部11、撮像部12、および撮像部13によって撮像された画像をそれぞれ参照画像1、参照画像2、および参照画像3とする。ここで、撮像部13は、撮像部12の外側に配置されているので、各基線長はB1<B2<B3の大小関係となる。
この構成における撮像部から被写体までの距離と距離誤差の関係について、図8を用いて説明する。図8は、本発明の変形例1に係る計測装置1aにおいて、ステレオ方式によって算出される撮像部から被写体までの距離と、距離誤差と、撮像部の基線長との関係を示すグラフである。ここで、図8における曲線RB1、曲線RB2、および曲線RB3はそれぞれ、基線長がB1、B2、およびB3のときの撮像部から被写体までの距離と距離誤差の関係を示している。
上述したステップS105の説明と同様、距離閾値ZTH1を設定すると、このときの基線長B1の場合の距離誤差はZETH12となる。また、基線長B2および基線長B3において、距離誤差が距離誤差ZETH12となる距離はそれぞれ、Z2とZ3である。ここで、Z2を距離閾値ZTH2とすると、図7に示すように、2つの位置において距離閾値を設定することができる。
この場合、上述したステップS105において、被写体分析部32は、この距離閾値を視差閾値に変換して、計測点における視差値と2つの視差閾値との大小関係を比較する。そして、被写体分析部32は、比較した結果に応じて、ステップS106において参照画像を選択する。図7に示す構成の場合、被写体分析部32は、距離ZTH1までの近距離の被写体は参照画像1、距離ZTH1から距離ZTH2までの中距離の被写体は参照画像2、距離ZTH2から距離Z3までの遠距離の被写体は参照画像3を選択する。そして、ステップS107において、視差値算出部33は、基準画像と選択された参照画像とから視差値を算出する。
このように、本変形例に係る計測装置1aは、備える撮像部の数が増えることにより、より細かく距離閾値を設定することができるため、より高い精度で計測点に関する計測を行うことができる。
〔実施形態2〕
以下に、本発明の第2の実施形態について説明する。本実施形態に係る計測装置2では、被写体分析部32は、計測点における被写体のエッジの向きを、計測点の状態として分析する。本実施形態に係る計測装置2は、図1に示した計測装置1の機能ブロック図と同様の構成であるため、各部の詳細な説明は省略する。
(各撮像部の配置)
本実施形態における各撮像部の配置について、図9を用いて説明する。図9は、本発明の実施形態2における各撮像部の三次元上の配置を示す図である。各撮像部の配置は、図9に示すように、L字配置である。より具体的には、撮像部11は、撮像部10を基準としてX軸上の右方向に配置されている。また、撮像部12は、撮像部10を基準としてY軸上の上方向に配置されている。また、撮像部10と撮像部11の基線長は基線長B1aであり、撮像部10と撮像部12との基線長は基線長B2aである。各基線長の長さは測距精度が等しくなるように設定されている。
なお、以下の説明では撮像部10を基準撮像部、撮像部11および撮像部12をそれぞれ参照撮像部1および参照撮像部2と称する。また、撮像部10、撮像部11、および撮像部12が撮像する画像をそれぞれ基準画像、参照画像1、および参照画像2と称する。
(計測装置2の処理手順)
続いて、計測装置2の処理手順について説明する。計測装置2は、図3に示すフローチャートに従って処理を実行するが、ステップS105およびステップS106における詳細な処理は、上述した説明と異なる。そのため、ステップS105およびステップS106の詳細な処理について、以下に説明する。
(ステップS105 被写体の状態の分析)
本実施形態におけるステップS105では、まず、被写体分析部32は、入力された基準画像に含まれる計測点付近の領域に対してエッジ検出処理を行う。
被写体分析部32が実行するエッジ検出処理について、図10を用いて以下に説明する。図10は、本発明の実施形態2における被写体分析部32が実行するエッジ検出処理を示す図である。また、図10の(a)は、基準撮像部が被写体dを撮像した基準画像Aである。また、図10の(a)には、ユーザが指定し、被写体d上に設定された計測点P2および計測点P3と、エッジを検出する範囲であるエッジ検出範囲KP2およびエッジ検出範囲KP3とが示されている。さらに、図10の(a)には、紙面の下方向に破線の矢印で画像上のY軸、紙面の右方向に破線の矢印で画像上のX軸が示されている。
被写体分析部32は、まず、計測点P2および計測点P3の位置情報から、各計測点の周囲にエッジ検出範囲KP2およびエッジ検出範囲KP3を設定する。エッジ検出範囲は計測点を中心として、所定の画素数の範囲に設定される。例えば、エッジ検出範囲の横幅を基準画像Aの水平解像度の10分の1、エッジ検出範囲の高さを基準画像Aの垂直解像度の10分の1として、エッジ検出範囲の横幅と高さを設定する構成が挙げられる。なお、エッジ検出範囲の設定は、被写体のエッジが十分に範囲内に含まれるように設定される構成であれば、どのように設定しても構わない。
次に、被写体分析部32は、各計測点のエッジ検出範囲内において、エッジ検出処理を実行する。エッジ検出処理は、例えば、ラプラシアン(Laplacian)フィルタ、ソーベル(Sobel)フィルタ、キャニー(Canny)フィルタなどの各種エッジ検出フィルタを用いたフィルタ処理で行われる。これらのエッジ検出手法は公知の技術であるので詳細な説明は割愛する。
エッジ検出範囲KP2の拡大画像と、エッジ検出処理後のエッジ検出画像とを、図10の(b)に示す。また、エッジ検出範囲KP3の拡大画像と、エッジ検出処理後のエッジ検出画像とを、図10の(c)に示す。図10の(b)および図10の(c)に示すように、エッジ検出画像では、検出された被写体dのエッジ部分が白く、それ以外の平坦部分が黒く示されている。例えば、エッジ検出画像を8ビットのグレースケール画像とする場合には、エッジ強度が強い部分ほど画素値255に近い値となり、平坦な部分は画素値0に近い値として得られる。
このように、被写体分析部32はエッジ検出処理を行い、計測点毎にエッジ検出画像を生成する。次に被写体分析部32は、生成したエッジ検出画像に基づいて、計測点における被写体の状態を分析する。上述したように、本実施形態では、被写体分析部32は、計測点における被写体のエッジの向きを計測点の状態として分析するため、分析されたエッジの向きを示すエッジ情報を分析結果とする。
(エッジの向きの分析)
ここで、図10の(a)に示すY軸方向を垂直方向、X軸方向を水平方向とし、計測点における被写体のエッジが続く方向を、エッジの向きとする。この場合、図10の(a)に示す基準画像Aでは、計測点P2におけるエッジの向きは垂直方向であり、計測点P3におけるエッジの向きは水平方向である。このエッジの向きを以下の方法によって分析する。
被写体分析部32は、エッジ検出画像上における計測点の左右および上下それぞれの画素値を読取り、その変動の大きさに基づいてエッジの向きを決定する。例えば、ある計測点の基準画像上の画素位置を(u,v)とすると、左右方向の評価値H(u,v)は式(5)、上下方向の評価値V(u,v)は式(6)によって算出される。
ここで、rは画素の読取り範囲を表し、I(u,v)は画素位置(u,v)におけるエッジ画像の画素値を表す。また、rは、エッジ検出範囲の高さ未満かつ横幅未満の値であり、十分に被写体のエッジ範囲が含まれる画素数で設定される。被写体分析部32は、式(5)および式(6)を用いて算出した評価値の大小関係を比較することによって、エッジの向きを決定する。具体的には、被写体分析部32は、左右方向の評価値H(u,v)が大きければエッジの向きは垂直方向であり、上下方向の評価値V(u,v)が大きければエッジの向きは水平方向であるとする。
例えば、図10の(b)に示すエッジ検出画像の場合、計測点P2では、左右方向の画素値の変動が大きいため、左右方向の評価値が大きくなる。したがって、計測点P2のエッジの向きは垂直と判定される。また、図10の(c)に示すエッジ検出画像の場合、計測点P3では、上下方向の画素値の変動が大きいため、上下方向の評価値が大きくなる。したがって、計測点P3のエッジの向きは水平と判定される。
なお、被写体分析部32は、エッジが斜め方向の場合、上記と同様の式によって評価することにより、エッジの向きを水平または垂直の何れかに決定する構成であってもよい。この構成により、被写体分析部32は、エッジの向きが斜め方向であっても、水平および垂直の何れに近いのかを判定できる。
なお、エッジの向きの評価値算出方法は式(5)および式(6)に限られず、エッジの向きが水平および垂直の何れであるか、或いは、水平および垂直の何れに近いのかを判定できれば、どのような評価値の算出方法であっても構わない。
なお、エッジ検出画像におけるエッジ強度の表れ方は、エッジ検出の手法によって差異があるため、手法に合わせて最適な評価値の算出方法を決めることが望ましい。例えば、被写体分析部32は、ソーベルフィルタを用いてエッジ検出処理を行う場合、フィルタの係数によって検出し易いエッジの方向がある。そこで、被写体分析部32は、ソーベルフィルタを用いる場合、上記のエッジ検出時に、水平方向のエッジを検出するソーベルフィルタと、垂直方向のエッジを検出するソーベルフィルタとのそれぞれによるエッジ検出処理を行う。そして、被写体分析部32は、左右方向の評価値は水平方向のエッジ画像から算出し、上下方向の評価値は垂直方向のエッジ画像で算出して、これらの評価値を比較すればよい。
(ステップS106 参照画像選択)
本実施形態におけるステップS106では、第1の実施形態におけるステップS106と同様に、被写体分析部32は、ステップS105における分析結果に基づいて参照画像を選択する。より具体的には、ステップS105の分析結果が「計測点におけるエッジの向きは垂直方向」であった場合、被写体分析部32は、参照画像1、すなわち、水平方向に配置された撮像部の組合せの画像を選択する。また、ステップS105の分析結果が「計測点におけるエッジの向きは水平方向」であった場合、被写体分析部32は、参照画像2、すなわち、垂直方向に配置された撮像部の組合せの画像を選択する。
(ステレオ方式の課題)
ステレオ方式では、2台の撮像部を配置した方向に平行に存在する特徴点は、視差値の算出精度が低下するという課題がある。これは、基準画像上の特徴点と似た点が、参照画像上の走査方向のライン上に複数存在することによって、誤った対応点を検出してしまうためである。例えば、水平方向に撮像部を配置した場合における、水平方向に延びるエッジの特徴点などがこれに該当する。そこで、本実施形態では、被写体のエッジ方向と撮像部の配置関係を考慮して、水平方向のエッジの場合は垂直方向の配置の撮像部を用い、垂直方向のエッジの場合は水平方向の配置の撮像部を用いて視差値を算出することより、上記課題を解決することができる。
そのため、視差値算出部33は、図10の(a)に示す基準画像Aの場合、計測点P2におけるエッジの向きは垂直方向なので、水平方向に配置されている撮像部(撮像部10および撮像部11)によって撮像された基準画像および参照画像1に基づいて視差値を算出する。また、計測点P3におけるエッジの向きは水平方向なので、視差値算出部33は、垂直方向に配置されている撮像部(撮像部10および撮像部12)によって撮像された基準画像および参照画像2に基づいて視差値を算出する。
このように、本実施形態に係る計測装置2は、計測点における被写体のエッジの向きに応じて、参照する画像を選択する。そのため、計測装置2は、ステレオ方式において、誤った対応点を検出するという問題を解決することができるため、計測点に関する計測を、従来に比べて高い精度で行うことができる。
なお、撮像部の配置は図9に示した配置に限られない。例えば、撮像部11を撮像部10の左側に配置してもよいし、撮像部12を撮像部10の下側に配置してもよい。配置位置を変更した場合はステレオマッチングの走査方向を変更することにより、上記と同様の方法を用いて処理が可能である。
また、上記の説明では、2つの基線長B1aおよび基線長B2aの長さを、測距精度が等しくなるように設定したが、測距精度が異なるように各撮像部を配置してもよい。この場合、計測点における被写体のエッジ方向が異なると測距精度も異なってしまう。そのため、例えば、測距精度が低い組み合わせの撮像部によって撮像された画像を選択する場合であっても、目標精度を達成できるようにハードウェア構成や基線長を設定する必要がある。
また、本実施形態においても、計測装置2における撮像部、入力部20、計測点指定部31、計測値算出部35、および表示部40を備えない計測装置であっても、本実施形態に係る計測装置2と同様、高い精度で計測点に関する計測をすることができる。
〔変形例2〕
本実施形態に係る計測装置2は3台の撮像部を備えていたが、4台以上の撮像部を備える構成であってもよい。本変形例では、4台の撮像部を備える計測装置2aについて説明する。計測装置2aは、図1に示すブロック図にさらに撮像部を追加し、各撮像部が取得する画像を視差値算出部33に入力する構成とする。
本変形例に係る計測装置2aが備える撮像部の位置関係について、図11を用いて説明する。図11は、本発明の変形例2における各撮像部の三次元上の配置を示す図である。計測装置2aでは、図11に示すように、撮像部10と撮像部13とが右斜め方向になるように配置されている。そのため、ステレオマッチングの走査方向を、撮像部の配置方向と同じ右斜め上方向にして、視差値算出部33は斜め方向の視差値を算出する。
なお、視差値算出部33が撮像部10および撮像部13で撮像された画像から視差値を算出するとき、撮像部の配置方向と同じ右斜め上方向の被写体エッジの視差算出精度は低くなる一方、右斜め下方向の被写体エッジの視差算出精度が高くなる。このように、斜め方向に配置された撮像部を用いる場合、ステップS105において、被写体分析部32は被写体のエッジ方向を水平方向、垂直方向、斜め方向の3つで判定する構成にする。被写体分析部32は、右斜め上方向の評価値S1(u,v)を下記の式(7)によって算出することができる。また、被写体分析部32は、右斜め下方向の評価値S2(u,v)を下記の式(8)によって算出することができる。
なお、上記の評価値算出式では、画像の二次元座標系の各軸方向は、図10の(a)に示したように、Y軸は紙面の下方向、X軸は紙面の右方向として表している。
図11に示すように各撮像部を配置した場合、被写体分析部32は、式(5)、式(6)、および式(7)の組合せによって算出された各評価値の大小関係を比較して、エッジ方向を判定する。ステップS106において、被写体分析部32は3パターンのエッジ方向に応じて参照画像を選択して、視差値算出部33は、ステップS107において視差値を算出する。例えば、斜め方向の評価値が最も大きくなれば、撮像部13が撮像した参照画像3が選択され、基準画像と参照画像3とに基づいて視差値が算出される。
このように、本変形例に係る計測装置2aは、4台以上の撮像部を備え、かつ、斜め方向に配置された撮像部を備える。この構成により、計測装置2aは、斜め方向のエッジを持つ被写体に設定された計測点であっても、高い精度で計測点に関する計測をすることができる。
なお、撮像部の台数や配置方向は、計測対象の被写体のエッジの向きの傾向や、目標とする計測精度、計測装置のサイズ等を考慮して決定することが望ましい。
〔実施形態3〕
以下に、本発明の第3の実施形態について説明する。本実施形態に係る計測装置3では、被写体分析部32は、撮像部から計測点における被写体までの距離と、計測点における被写体のエッジの向きとの両方を、計測点における被写体の状態として分析する。
計測装置3は、図1に示した計測装置1の機能ブロック図に加えて、撮像部13と撮像部14とをさらに備え、5台の撮像部を用いる構成である。各撮像部で取得される画像は被写体分析部32に入力される。
(各撮像部の配置)
5台の撮像部の配置について、図12を用いて説明する。図12は、本発明の実施形態3における各撮像部の三次元上の配置を示す図である。5台の撮像部はそれぞれ、計測装置1が備える撮像部と同様の構成のものを用いるが、各撮像部の配置は、図12に示すようにL字型に配置する。
図12に示す配置関係は、図2に示した撮像部10、撮像部11、および撮像部12の配置に加えて、さらにY軸上に撮像部13および撮像部14を配置したものである。計測装置3では、撮像部10を基準撮像部、撮像部11、撮像部12、撮像部13、および撮像部14をそれぞれ参照撮像部1、参照撮像部2、参照撮像部3、および参照撮像部4と称する。また、基準撮像部によって撮像された画像を基準画像、参照撮像部1、参照撮像部2、参照撮像部3、および参照撮像部4によって撮像された画像を、それぞれ参照画像1、参照画像2、参照画像3、および参照画像4と称する。また、基準撮像部と各参照撮像部との基線長はそれぞれ、図12に示すように、B1b、B2b、B3b、B4bで表され、B1b<B2b、B3b<B4bの大小関係となっている。また、基線長B1bの組合せの測距精度と基線長B3bの組合せの測距精度が等しく、基線長B2bの組合せの測距精度と基線長B4bの組合せの測距精度が等しくなるように、各基線長が設定されている。
本実施形態における被写体分析部32は、実施形態1におけるステップS105の処理と、実施形態2におけるステップS105の処理の両方を行うことによって、撮像部から被写体までの距離と、エッジ情報の両方を用いて被写体の状態分析を行う。
(計測装置3の処理手順)
続いて、計測装置3の処理手順を説明する。計測装置3は、図3に示すフローチャートに従って処理を実行するが、ステップS105およびステップS106における詳細な処理は、上述した説明と異なる。そのため、ステップS105およびステップS106の詳細な処理について、以下に説明する。
(ステップS105 被写体の状態の分析)
本実施形態におけるステップS105では、まず、被写体分析部32は、実施形態1におけるステップS105の処理を実行する。より具体的には、被写体分析部32は、基線長が最も短い組み合わせの撮像部によって撮像された基準画像および参照画像を参照し、計測点指定部31によって設定された計測点における視差値をステレオ方式によって算出する。
例えば、被写体分析部32は、図12に示す例では、基線長が最も短い組み合わせである撮像部10および撮像部11(または、撮像部10および撮像部13)がそれぞれ撮像した基準画像および参照画像1(または、基準画像および参照画像3)を参照し、計測点における視差値を算出する。そして、被写体分析部32は、算出した視差値と視差閾値との大小関係を比較し、撮像部から被写体までの距離に関する分析結果1を取得する。
次に、被写体分析部32は、実施形態2におけるステップS105の処理を実行する。より具体的には、被写体分析部32は、エッジ検出処理を行い、計測点における被写体のエッジの向きを検出する。そして、被写体分析部32は、検出したエッジの向きを示す分析結果2を取得する。
(ステップS106 参照画像選択)
本実施形態におけるステップS106では、上述の実施形態におけるステップS106と同様に、被写体分析部32は、ステップS105における分析結果に基づいて参照画像を選択する。ここで、ステップS105では、被写体分析部32は、分析結果1および分析結果2を取得している。そのため、分析結果1および分析結果2に基づいて参照画像を選択する。
より具体的には、まず、被写体分析部32は、分析結果1に基づいて、撮像部の組み合わせを選択する。例えば、分析結果1が、「計測点における視差値は視差閾値以上」であった場合は、被写体分析部32は、「基線長が短い撮像部の組み合わせ」を選択する。一方、分析結果1が、「計測点における視差値は視差閾値未満」であった場合は、被写体分析部32は、「基線長が長い撮像部の組み合わせ」を選択する。被写体分析部32が分析結果1に基づいて選択した結果を選択結果1と称する。
次に、被写体分析部32は、分析結果2に基づいて、撮像部の配置方向を選択する。例えば、分析結果2が、「計測点におけるエッジの向きは垂直方向」であった場合、被写体分析部32は、「水平方向」を選択する。一方、分析結果2が、「計測点におけるエッジの向きは水平方向」であった場合、被写体分析部32は、「垂直方向」を選択する。被写体分析部32が分析結果2に基づいて選択した結果を選択結果2と称する。
最後に、被写体分析部32は、選択結果1および選択結果2に基づいて参照画像を選択する。例えば、選択結果1が「基線長が短い撮像部の組み合わせ」であり、選択結果2が「水平方向」であった場合、被写体分析部32は、撮像部11によって撮像された参照画像2を選択する。また、選択結果1が「基線長が短い撮像部の組み合わせ」であり、選択結果2が「垂直方向」であった場合、被写体分析部32は、撮像部13によって撮像された参照画像3を選択する。このように、被写体分析部32は、選択結果1および選択結果2の組み合わせに応じて、4つの参照画像から1つの参照画像を選択する。
このように、本実施形態に係る計測装置3は、撮像部から計測点における被写体までの距離と、計測点における被写体のエッジ方向に応じて、参照画像を選択する。そのため、計測装置3は、計測点における被写体までの撮像部からの距離、および、計測点における被写体のエッジ方向に関わらず、計測点に関する計測を高精度に行うことができる。
なお、本実施形態の計測装置3では、図12に示す各撮像部の配置について説明したが、これに限られるものではない。計測装置3では、撮像部の配置方向を左右反対、或いは、上下反対にしてもよいし、第2の実施形態と同様に斜め方向に配置しても構わない。そして、計測装置3は、配置方向の変更に応じてステレオマッチングの走査方向を変更すればよい。なお、斜め方向に撮像部を配置する場合、計測装置3は、実施形態2において説明した方法と同様の処理することによって、計測点における被写体が斜め方向のエッジを持つ場合であっても、視差値の算出精度を向上させることが可能となる。
また、本実施形態の計測装置3は5台の撮像部を備えていたが、計測装置3は6台以上の撮像部を備える構成であってもよい。計測装置3が備える撮像部が増えた場合であっても、上述した実施形態において説明した方法を用いて、計測点の位置を算出し、計測することが可能である。計測装置3が備える撮像部を増やすことにより、撮像部から被写体までの距離によって変化する距離精度のばらつきをさらに低減させることが可能となる。また、計測装置3は、斜め方向に配置された撮像部を増やすことによって、斜め方向における視差値の算出精度を向上させることができる。
〔ソフトウェアによる実現例〕
計測装置(計測装置1、計測装置1a、計測装置2、計測装置2a、および計測装置3)の制御ブロック(特に画像処理部30)は、集積回路(Integrated Circuit)等に形成された論理回路(ハードウェア)によって実現してもよいし、CPU(Central Processing Unit)を用いてソフトウェアによって実現してもよい。
後者の場合、上記計測装置は、各機能を実現するソフトウェアであるプログラムの命令を実行するCPU、上記プログラムおよび各種データがコンピュータ(またはCPU)で読み取り可能に記録されたROM(Read Only Memory)または記憶装置(これらを「記録媒体」と称する)、上記プログラムを展開するRAM(Random Access Memory)などを備えている。そして、コンピュータ(またはCPU)が上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。なお、本発明は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
〔まとめ〕
本発明の態様1に係る計測装置(1、1a、2、2a、3)は、ステレオ方式によって画像を撮像する少なくとも3つの撮像部(撮像部10、撮像部11、撮像部12、撮像部13、撮像部14)がそれぞれ撮像した画像に共通して含まれる領域内に設定された対象点(計測点)の状態に応じて、上記少なくとも3つの撮像部がそれぞれ撮像した画像のうち、2枚の画像を選択する画像選択部(被写体分析部32)と、上記画像選択部が選択した2枚の画像を参照することによって、上記対象点の三次元上の位置を示す位置情報を算出する位置情報算出部(位置情報算出部34)と、を備える。
上記の構成によれば、当該計測装置は、計測点の状態に応じて、三次元位置を算出するために参照する画像を変更するので、従来に比べて高い精度で計測点に関する計測をすることができる。
本発明の態様2に係る計測装置において、上記態様1における上記画像選択部は、上記撮像部から上記対象点までの実空間上の距離に応じて、上記少なくとも3つの撮像部がそれぞれ撮像した画像のうち、2枚の画像を選択してもよい。
上記の構成によれば、当該計測装置は、撮像部から計測点までの実空間上の距離に関わらず、従来に比べて高い精度で計測点に関する計測をすることができる。
本発明の態様3に係る計測装置は、上記態様2において、上記画像選択部は、上記少なくとも3つの撮像部のうち何れかの撮像部が撮像した画像を基準画像として選択し、当該基準画像を撮像した撮像部から上記対象点の位置に写された被写体までの実空間における距離が、所定の値以上である場合、当該基準画像を撮像した撮像部以外の撮像部のうち、当該基準画像を撮像した撮像部との間の距離が長いほうの撮像部が撮像した画像を参照画像として選択し、上記実空間における距離が所定の値未満である場合、当該基準画像を撮像した撮像部以外の撮像部のうち、当該基準画像を撮像した撮像部との間の距離が短いほうの撮像部が撮像した画像を参照画像として選択してもよい。
上記の構成によれば、撮像部から計測点までの実空間上の距離が遠い場合、基線長の長い撮像部によって撮像された画像を参照し、撮像部から計測点までの実空間上の距離が近い場合、基線長の短い撮像部によって撮像された画像を参照する。そのため、撮像部から計測点までの実空間上の距離に関わらず、従来に比べて高い精度で計測点に関する計測をすることができる。
本発明の態様4に係る計測装置において、上記態様1〜3の何れかにおける上記画像選択部は、上記対象点の位置に写された被写体のエッジ方向に応じて、上記少なくとも3つの撮像部がそれぞれ撮像した画像のうち、2枚の画像を選択してもよい。
上記の構成によれば、当該計測装置は、ステレオ方式における誤った対応点の検出を抑制できるため、計測点に関する計測を、従来に比べて高い精度で行うことができる。
本発明の態様5に係る計測装置において、上記態様4における上記画像選択部は、上記エッジ方向とは異なる方向に沿って配置された少なくとも2つの撮像部によって撮像された画像を選択してもよい。
上記の構成によれば、ステレオ方式における誤った対応点の検出を抑制できるため、計測点に関する計測を、従来に比べて高い精度で行うことができる。
本発明の態様6に係る計測装置は、上記態様1〜5の何れかにおいて、上記少なくとも3つの撮像部と、上記位置情報算出部が算出した位置情報を参照して、上記対象点に関する計測を行う計測部(計測値算出部35)と、をさらに備えてもよい。
上記の構成によれば、上記態様1に係る計測装置を実現することができる。
本発明の態様7に係る計測方法は、ステレオ方式によって画像を撮像する少なくとも3つの撮像部がそれぞれ撮像した画像に共通して含まれる領域内に設定された対象点の状態に応じて、上記少なくとも3つの撮像部がそれぞれ撮像した画像のうち、2枚の画像を選択する画像選択ステップと、上記画像選択ステップにおいて選択された2枚の画像を参照することによって、上記対象点の三次元上の位置を示す位置情報を算出する位置情報算出ステップと、を含む。
上記の構成によれば、当該計測方法は、上記態様1に係る計測装置と同様の効果を奏する。
本発明の各態様に係る計測装置は、コンピュータによって実現してもよく、この場合には、コンピュータを上記計測装置が備える各部(ソフトウェア要素)として動作させることにより上記計測装置をコンピュータにて実現させる計測装置の制御プログラム、およびそれを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に入る。
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。さらに、各実施形態にそれぞれ開示された技術的手段を組み合わせることにより、新しい技術的特徴を形成することができる。