説明

画像処理プログラム及びこれを用いた路面状態計測システム

【課題】両眼立体視においてブロックマッチングの有する問題点を克服し、より精度が高い三次元距離を計測可能な画像処理プログラムを提供する。
【解決手段】左画像撮影手段から得られた左画像データと、右画像撮像手段から得られた右画像データとを用いて、左右の両画像データにおいて対応する画素の視差量を求めることで被写体の三次元距離データを演算可能にした画像処理プログラムであって、ブロックマッチングにより、左右両画像データについて夫々ブロック単位で概略視差量を演算する機能と、左右両画像データに含まれるエッジを夫々抽出する機能と、左右両画像データの対応するエッジを照合する際の探索範囲をブロックマッチングにより得られた概略視差量に基づいて設定する機能と、設定された探索範囲において、左右両画像データ間の対応するエッジを見つけることで、視差量を演算する機能と、をコンピュータに実行させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、両眼立体視により被写体の三次元距離データを求めるための画像処理プログラム及びこれを用いた路面状態計測システムに関するものである。
【背景技術】
【0002】
三次元距離を計測する技術としては、レーザーレーダを用いるものなどの能動的な手法と、ステレオ画像を利用した両眼立体視による受動的な手法が知られている。三次元距離の計測を行う場面として、例えば、路面の形状(わだち掘れやひび割れなど)を計測する場合に必要とされている。また、高速道路の橋脚の下面調査や法面の崖崩れ防止調査などにも必要とされている。レーザーによる手法で路面計測を行う場合、基本的には人手による計測作業となり、交通渋滞が発生するという問題がある。また、人手により計測装置を路面に沿って移動させる作業が必要であり、計測のために多大な時間を浪費するという問題もある。
【0003】
これに対して、車体にカメラを搭載して路面を撮影し、この撮影された画像データに基づいて行なう両眼立体視による手法は、装置が比較的簡素であるという点や自然光の下で計測できるという長所がある。また、路面計測の場合、車体を走行するだけで計測可能であり、交通渋滞の問題もなく、作業時間も短縮化できるという長所がある(特許文献1,2参照)。
【0004】
この両眼立体視の方法として、画像領域を小ブロックに分割し、小ブロック単位で左右画像間の相関を演算して対応点を求めるブロックマッチング手法が提案されている(例えば、非特許文献1)。ブロックマッチングは簡単な手法ではあるが、オクルージョン(隠蔽箇所)の検出が困難であるとか、被写体表面が模様のあるテクスチャーを持っていなければならないといった制約がある。
【0005】
【特許文献1】特許第3418328号
【特許文献2】特開平8−184422号公報
【非特許文献1】野口貴司、大友友一、“評価値制限法を用いたステレオマッチング”信学論(D−II)vol.J88−D−II,no.11,pp.1618−1627,Nov.2003
【発明の開示】
【発明が解決しようとする課題】
【0006】
本発明は上記実情に鑑みてなされたものであり、その課題は、両眼立体視においてブロックマッチングの有する問題点を克服し、より精度が高い三次元距離を計測可能な画像処理プログラム及びこれを用いた路面状態計測システムを提供することである。
【課題を解決するための手段】
【0007】
上記課題を解決するため本発明に係る画像処理プログラムは、
左画像撮影手段から得られた左画像データと、右画像撮像手段から得られた右画像データとを用いて、左右の両画像データにおいて対応する画素の視差量を求めることで被写体の三次元距離データを演算可能にした画像処理プログラムであって、
ブロックマッチングにより、左右両画像データについて夫々ブロック単位で概略視差量を演算する機能と、
左右両画像データに含まれるエッジを夫々抽出する機能と、
左右両画像データの対応するエッジを照合する際の探索範囲を前記ブロックマッチングにより得られた概略視差量に基づいて設定する機能と、
設定された探索範囲において、左右両画像データ間の対応するエッジを見つけることで、視差量を演算する機能と、をコンピュータに実行させることを特徴とするものである。
【0008】
かかる構成による画像処理プログラムの作用・効果について説明する。本発明は、ブロックマッチングによる手法とエッジ照合による手法を組み合わせた点に特徴がある。すなわち、ブロックマッチングによりブロック単位で概略の視差量を求めておき、この結果を踏まえて、エッジ照合により、精度の高い視差量を演算する。
【0009】
まず、ブロックマッチングでは左画像(あるいは右画像)を小ブロックに分割し、このブロックに対応するブロックを右画像(あるいは左画像)の中から探索する。ブロックマッチングは、左画像を基準とする場合と、右画像を基準とする場合の両方が行われる。対応するブロックが見つかれば、それらブロックの相対的位置関係から視差量が求まる。ただし、ここではブロック単位での探索であり、ここで求められる視差量は概略視差量である。次に、左右両画像データに含まれているエッジを抽出する。エッジ抽出は、左画像と右画像の夫々について行なう。エッジ抽出の方法は、特定の方法に限定されるものではなく、例えば、公知のフィルター演算による画像処理手法により行なうことができる。
【0010】
ここで各画像において抽出されるエッジの数が多大なものになると、左右両画像データのエッジ同士を照合するための処理時間が膨大なものになり効率が悪い。例えば、左画像の中から1つのエッジを選択し、これに対応するエッジを右画像から見つけるのに、右画像に含まれる全てのエッジと比較して対応関係を見つけるのは極めて効率が悪い。また、誤対応になる可能性も増加する。そこで、かかる場合において、右画像の全領域を探索するのではなく、探索範囲を限定して行なう。この探索範囲を設定するのに、ブロックマッチングにより求められた概略視差量に基づいて設定するようにしている。これにより、探索範囲を絞り込むことができ、無駄な照合処理をなくすことができ、処理時間を短縮化することができる。左右画像の対応するエッジを見つけ出すことで、より精度の高い視差量を求めることができる。その結果、両眼立体視においてブロックマッチングの有する問題点を克服し、より精度が高い三次元距離を計測可能な画像処理プログラムを提供することができる。なお、ブロックマッチングにおけるブロックの大きさについては、適宜定めることができるものである。
【0011】
本発明において、前記ブロックマッチングにより視差量を演算するに際し、
前記ブロック単位で視差量を演算した結果、左右両画像データにおいて対応すべき画素の視差量の差が所定範囲内にあるかどうかを判定する機能と、
この判定機能により視差量の差が所定範囲内にないと判定された画素に関して、補間処理により視差量を演算する機能と、を更にコンピュータに実行させることが好ましい。
【0012】
ブロックマッチングにおいてブロック単位で視差量を演算する場合に、得られた視差量が信頼性の高い数値であるかどうかを確認する必要がある。つまり、左画像を基準として行ったブロックマッチングと、右画像を基準として行ったブロックマッチングの結果が整合性が取れている必要がある。例えば、左画像を基準としたブロックマッチングにおいて、左画像における画素Aに対応する右画像の画素がBであるとする。一方、右画像を基準としたブロックマッチングで考えた場合、右画像の画素Bに対応する左画像の画素はAでなければならない。両者(の視差量)が一致すれば(あるいは視差量が所定の誤差範囲内であれば)整合性が取れていると考えられる。そこで対応すべき画素の視差量が所定範囲内にない場合は、誤対応であると扱い、視差量が求まらなかったものとして扱う。そして、この誤対応の画素に関しては、視差量について整合性を有すると見なされた画素の視差量の値を用いて、補間処理により視差量を演算して求める。これにより、誤対応を抑制してより信頼性の高い視差量を求めることができる。
【0013】
本発明において、左右両画像データに含まれるエッジを抽出するに際し、傾き別にエッジを抽出する機能と、
傾き別に対応するエッジを照合する機能と、を更にコンピュータに実行させることが好ましい。
【0014】
エッジどうしを比較する場合に、傾き別にエッジを抽出しておいて、傾き別にエッジの照合を行なうことで、あらゆる方向のエッジについて照合を行なうことができる。また、傾き別に照合を行なうので照合の精度を高めることができ、信頼性を更に高めることができる。
【0015】
本発明において、左右両画像データのうちの一方側のエッジを注目エッジとし、この注目エッジの前記探索範囲内にある他方側のエッジを比較エッジとした場合、注目エッジと探索範囲内の全ての比較エッジとの重なり度合いから対応度を求める機能と、
対応度が最も大きな比較エッジを対応エッジとして設定する機能と、を更にコンピュータに実行させることが好ましい。
【0016】
左右両画像データのエッジ同士を比較する場合は、一方の画像(例えば左画像)の中から、まず1つのエッジを注目エッジとして選択する。そして、他方側の画像(例えば右画像)の中に含まれるエッジ(通常は1つではなく、かなりの多数が存在することもありうる)と比較・照合する。複数の比較エッジからどれが対応するエッジであるのかを決める時に対応度という概念を使用する。対応度とは、エッジとエッジを重ねた場合の重なり度合いを示す指標である。例えば、重なった領域の画素数や画素数のエッジ全体に対する比率などに基づいて対応度を決めることができ、対応度が高いものほど対応するエッジである確率が高くなるといえる。比較エッジは探索範囲内のものに限られるため、高い確率で対応するエッジを正確に見つけ出すことができる。
【0017】
本発明において、エッジ以外の領域の視差量を補間演算により求める機能を更に備え、この機能として、
各画素の位置をバネの節点と仮定した場合に、隣接する画素間に掛けるバネのバネ定数を当該画素の画素情報に基づいて演算する機能と、
視差量が求まっている領域については、バネの節点の初期移動量を視差量に基づいて設定する機能と、
視差量が求まっていない領域については、バネの節点の初期移動量を所定値で設定する機能と、
隣接する画素間の視差量の差に基づいて、バネの釣り合いを演算する機能と、
釣り合い計算の結果、移動量が所定値よりも大きな節点に関してバネ定数を0に設定して移動量を再演算する機能と、を更にコンピュータに実行させることが好ましい。
【0018】
左右画像間の対応するエッジが見つかると、そのエッジを構成する画素については視差量が定まることになる。ただし、エッジ以外の領域については視差量が求められていない。そこで、対応エッジの探索で求まった視差量を用いて補間演算することで、エッジ以外の領域の視差量を求める。これを行なうために、本発明では、バネのアナロジーという概念を用いる。そこで、まず画素の位置をバネの節点と仮定して、各節点間にバネを掛ける。このバネのバネ定数は、バネが掛けられる画素の画素情報に基づいて演算される。画素の画素情報とは、その画素が持つ色情報や輝度情報のことである。ただし、色情報と輝度情報の両方を用いてもよいし、輝度情報のみからバネ定数を決めてもよい。
【0019】
次に、バネの節点の初期移動量を設定する。初期移動量は、エッジ照合やブロックマッチングの結果得られた視差量が設定される。初期移動量とバネ定数が定まったので、バネの釣り合い計算を行なうことができる。この結果、各画素における移動量(=視差量)が改めて演算される。なお、誤対応などにより視差量が求まっていない場合、初期移動量として適宜の所定値(できれば小さな数値)を設定すればよい。改めて視差量を演算すると、バネの応力が大きくなるような節点が出てくる。このような節点は、エッジのすぐ近傍に存在すると考えられるので、バネ定数を0に設定することが好ましい。エッジ領域では、視差量が大きく変化するのが普通であり、これをなだらかに変化するように補間処理をすることは好ましくない。そこで、バネ定数を0に設定し、再度移動量(視差量)を演算するようにする。これにより、エッジ以外の領域の画素について、精度よく補間処理により視差量を求めることができる。
【0020】
上記課題を解決するため本発明に係る路面状態計測システムは、
車体の幅方向に所定間隔をあけて搭載される左画像撮影用の第1のカメラ及び右画像撮影用の第2のカメラと、
車体の走行状態を検出する走行状態検出センサーと、
第1のカメラ及び第2のカメラから得られる左右両画像データを走行状態検出センサーから得られる信号に基づいて補正する画像補正手段と、
この補正された左右両画像データを画像処理して視差量データを演算する画像処理プログラムと、
この画像処理プログラムにより得られた視差量データに基づいて、路面の三次元位置情報を抽出し、路面状態を計測する路面状態計測手段と、を備えたことを特徴とするものである。
【0021】
車体の幅方向に第1のカメラと第2のカメラを搭載し、この2つのカメラから路面を撮影した左画像データと右画像データを夫々得ることができる。これら左右両画像データを用いて、上記画像処理プログラムにより視差量を求める。また、車体の走行状態を検出するための走行状態検出センサー(例えば、三次元ジャイロセンサーなど)が設けられている。車体を移動させながら画像データを取得する場合に、車体は常に同じ状態で走行しているわけではない。つまり、車体の移動速度は常に一定ではなく、振動などの影響や路面の傾斜状態(上り坂、下り坂など)の影響を受けている。このような走行状態の影響により、取得される画像データには歪み成分が含まれることになるので、これを取り除く必要がある。そこで、走行状態検出センサーから得られる信号に基づいて左右の画像データを補正することで、歪みのない正しい画像データを得ることができる。補正された左右両画像データを用いて、画像処理プログラムにより視差量データを求めることで、信頼性の高い路面の三次元位置情報を抽出することができる。また、この視差量データから、路面の状態(わだち掘れやひび割れなど)を計測することができる。
【0022】
本発明において、前記画像処理プログラムとして前述のブロックマッチング及びエッジ照合による画像処理プログラムが用いられることが好ましい。
【0023】
前述のように、エッジ照合による視差量データを精度よく求めることができ、わだち掘れやひび割れの深さを正確に把握することが可能であり、メンテナンス時期の適切な判断を行なえるようになる。
【0024】
本発明に係る路面状態計測手段は、前記三次元位置情報として、路面の横断データと縦断データを夫々取得する機能と、取得されたデータを基準データと比較させる機能とを、有することが好ましい。
【0025】
横断データとは、道路を横切る方向の断面形状を示すデータであり、縦断データは道路の進行方向における断面形状を示すデータである。これらのデータを基準データと比較することで、メンテナンスの必要性について判断することができる。基準データとしては、路面の初期状態のデータを用いることができ、例えば、初期状態からのズレの大きさに基づいてメンテナンスの必要性を判断することができる。
【0026】
本発明に係る路面状態計測システムは、既に述べたように、特許文献1,2などに開示されるシステムに比べると、車体を走行するだけで計測可能であり、交通渋滞の問題もなく、作業時間も短縮化できるという長所がある。また、撮影される画像データには含まれる歪み成分を正しい画像に補正することができる。そして、更に、上記システムにおいて使用される画像処理プログラムが、次の構成を備えていることが好ましい。
【0027】
まず、第1に、左画像撮影手段から得られた左画像データと、右画像撮像手段から得られた右画像データとを用いて、左右の両画像データにおいて対応する画素の視差量を求めることで被写体の三次元距離データを演算可能にした画像処理プログラムであって、
ブロックマッチングにより、左右両画像データについて夫々ブロック単位で概略視差量を演算する機能と、
左右両画像データに含まれるエッジを夫々抽出する機能と、
左右両画像データの対応するエッジを照合する際の探索範囲を前記ブロックマッチングにより得られた概略視差量に基づいて設定する機能と、
設定された探索範囲において、左右両画像データ間の対応するエッジを見つけることで、視差量を演算する機能と、をコンピュータに実行させるものであることが好ましい。
【0028】
更に前記画像処理プログラムが、
前記ブロックマッチングにより視差量を演算するに際し、
前記ブロック単位で視差量を演算した結果、左右両画像データにおいて対応すべき画素の視差量の差が所定範囲内にあるかどうかを判定する機能と、
この判定機能により視差量の差が所定範囲内にないと判定された画素に関して、補間処理により視差量を演算する機能と、を更にコンピュータに実行させるものであることが好ましい。
【0029】
更に、前記画像処理プログラムが、
左右両画像データに含まれるエッジを抽出するに際し、傾き別にエッジを抽出する機能と、
傾き別に対応するエッジを照合する機能と、を更にコンピュータに実行させることが好ましい。
【0030】
更に、前記画像処理プログラムが、
左右両画像データのうちの一方側のエッジを注目エッジとし、この注目エッジの前記探索範囲内にある他方側のエッジを比較エッジとした場合、注目エッジと探索範囲内の全ての比較エッジとの重なり度合いから対応度を求める機能と、
対応度が最も大きな比較エッジを対応エッジとして設定する機能と、を更にコンピュータに実行させるものであることが好ましい。
【0031】
更に、前記画像処理プログラムが、
エッジ以外の領域の視差量を補間演算により求める機能を更に備え、この機能として、
各画素の位置をバネの節点と仮定した場合に、隣接する画素間に掛けるバネのバネ定数を当該画素の画素情報に基づいて演算する機能と、
視差量が求まっている領域については、バネの節点の初期移動量を視差量に基づいて設定する機能と、
視差量が求まっていない領域については、バネの節点の初期移動量を所定値で設定する機能と、
隣接する画素間の視差量の差に基づいて、バネの釣り合いを演算する機能と、
釣り合い計算の結果、移動量が所定値よりも大きな節点に関してバネ定数を0に設定して移動量を再演算する機能と、を更にコンピュータに実行させるものであることが好ましい。
【0032】
更に、前記画像処理プログラムが、
前記路面状態計測手段は、前記三次元位置情報として、路面の横断データと縦断データを夫々取得する機能と、
取得されたデータを基準データと比較させる機能と、を有するものであることが好ましい。
【発明を実施するための最良の形態】
【0033】
本発明に係る画像処理プログラムの好適な実施形態を図面を用いて説明する。本発明に係る画像処理プログラムは、ステレオビジョンの原理により、被写体の三次元距離を計測する目的で使用されるものである。ここで、ステレオビジョンの原理を図1により説明する。
【0034】
<ステレオビジョンの原理>
ステレオビジョンでは、三角測量の原理により、被写体の三次元距離(三次元座標)を計測することができる。ステレオカメラを用いてステレオ画像を撮影する必要があり、図1において左眼から見た左画像データIと右目から見た右画像データとをIとを取得する。そして、図示のようにXYZ座標系を設定し、被写体上のある点Pの座標を(x,y,z)とする。この点Pの画像上における座標を夫々P(x,y)、P(x,y)とする。また、カメラの基線長をLとし、焦点距離をfとし、座標系の原点は基線長の中間位置に設定する。左右両眼におけるカメラ光軸は平行であるとし、左右両眼の画像は、同一平面上に形成されるものとする。この条件下において、各点における座標間には、次のような関係が成立する。
【0035】
x=0.5L(x+x)/(x−x
y=y×L/(x−x
z=f×L/(x−x
ここで(x−x)が左右画像間におけるずれ量であり、両眼の視差量と呼ばれるものである。これらの式から分かるように、Lとfは既知の値であるから、左右画像上の投影座標から、被写体上の特定の点の位置(座標)(x,y,z)を求めることができる。また、奥行きz座標については、視差量のみから演算することが可能である。
【0036】
この視差量を精度良く求めることができれば、被写体の三次元距離も精度よく計測することができる。そのためには、左画像(右画像)における特定の画素が右画像(左画像)のどの画素に対応するのかを精度よく検出する必要がある。本発明における処理手順によれば、画素の対応関係を正確に検出することができ、処理時間も短く効率がよいものとなっている。
【0037】
<処理手順の概略>
まず、処理手順の概略を図2のフローチャートにより説明する。図2にも示すように、大きく分けて3つのステップから構成されている。すなわち、ブロックマッチングによる対応点の探索範囲の決定(#01)、傾き別のエッジ照合による視差量の抽出(#02)、ばねのアナロジーによる視差量の計算(#03)である。ブロックマッチングを行なうことで、ステップ#02における探索範囲が決定される。ステップ#02においては、画像の多項式展開を用いて、傾き別のエッジを抽出し、傾き別にエッジの照合を行なう。ステップ#03においては、ばねを用いた視差量の補間演算が行なわれる。各ステップの詳細については、以下個別に説明していく。
【0038】
<ブロックマッチング>
まず最初にブロックマッチングによる左右画像の対応点の探索範囲の決定に関して説明する。左右の画像の対応点を探索する場合に、画像に含まれる特徴を抽出し、この特徴形状同士を対比することで対応点を探索することになる。一般的には、特徴形状としてエッジを抽出し、左右画像の対応するエッジを見つけ出すことで対応点を探索する。ただし、画像中に含まれるエッジは多数存在するため、可能な視差量の範囲ですべてのエッジに対する探索を行なうと、処理時間が膨大になってしまう。そこで、画像を所定のサイズの小ブロックに分割してブロックマッチングを行い、得られた視差量の近傍に限定してエッジの対応探索を行なうようにしている。これにより、処理時間の短縮化を図っている。
【0039】
以下、具体的な画像を例にあげてブロックマッチングを説明する。図3は、実際にカメラを使用して撮影されたステレオ画像を示しており、(a)が左画像(b)が右画像を夫々示している。この画像は、ペンタックス社製のデジタルカメラistDSに、ステレオアダプターを装着して撮影したものである。また、左右の画像は縦384画素×横256画素に縮小処理したものを示している。図3に示す画像は実際はカラー画像であるが、視差量の演算においては、図3に示す画像を(Y・Cr・Cb)色空間で表わした時のY成分(輝度情報)を用いて行なった。
【0040】
ブロックマッチングにおいて使用した小ブロックの大きさは32×32のサイズ(正方形)に設定した。ただし、小ブロックのサイズについては、これに限定されるものではなく、目的に応じて適宜のサイズとすることができる。
【0041】
図4は、ブロックマッチングにおける処理手順を概念的に説明する図である。まず、左画像データを(a)に示すように多数の小ブロックB11,B12,B13・・・に分割する。左画像のブロックB11について、右画像データ上にブロックCをx方向及びy方向に順番に走査させて、最も近似するブロックCを探索する。仮に、図4(b)の実線で示す位置のブロックCがブロックB11とが最も近似していると判定された場合、このブロックCの位置座標とブロックB11の位置座標との差が視差量となる。この視差量を上記の全ての小ブロックB11,B12,B13・・・に関して演算する。なお、以下の説明において、視差量はx方向におけるずれ量のみを指すものとして扱う。これは、前述のように奥行き位置は、x方向のずれによってのみ決まるからであり、重要であると考えられるからである。
【0042】
ブロックマッチングを行う場合、画像の全範囲について行う必要はなく、限定された範囲についてのみ走査を行なうことができる。つまり、左画像と右画像は、もともと類似した画像であり、左画像の左上のブロックB11と類似する右画像のブロックも左上近辺に存在すると考えられるからである。これにより、ブロックマッチングに要する処理時間を短縮化することができる。
【0043】
図4では、左画像を基準としてブロックマッチングを行なうことを説明したが、同じ処理を右画像を基準として行う。図5は、ブロックの対応関係を示す図である。左画像を基準としてブロックマッチングを行なった結果、図5(a)(b)のようなブロックの対応関係が得られたとすると、ブロックB11を構成する32×32画素の夫々がブロックCを構成する32×32画素の夫々に対応するものと仮定する。すなわち、ブロック単位で視差量を演算し、そのブロックに含まれる全画素に対して同じ視差量が付与される。この場合、ブロックB11内の視差量はブロック内の全画素について同じ数値となる。また、右画像を基準としてブロックマッチングを行なった結果、図5(c)(d)のような対応関係が得られたとすると、同様にブロックC11を構成する32×32画素の夫々がブロックBを構成する32×32画素の夫々に対応するものと仮定する。このように、視差量は左右の画像について別々に演算される。
【0044】
図6は、ブロックマッチングの結果得られた視差マップを示す図である。視差マップを表示する場合には、一般的にカラー表示が用いられ、赤は視差量が大きな領域、緑は視差量が中間の領域、青は視差量が小さな領域である。ただし、図示の都合上、白黒濃淡画像で表示している。カメラに近い領域(近距離被写体)ほど視差量が大きくなる。
【0045】
また、図6において、画像の四辺については、額縁状に白い領域が存在する。これは、画像の四辺については、対応するブロックが存在しないと考えられるため、ブロックマッチングの処理対象外としているためである。すなわち、四辺については、仮にブロックマッチングを行なったとしても、正確な視差量を得ることが期待できないため、最初から処理対象外としている。この処理対象外の領域は、周辺1ブロック分を基本としているが、左画像の左端領域IL1については、2ブロック分を処理対象外としている。これは、左画像は右画像に対して視差の関係で右方向に全体的にずれているからである。また、同じ理由により、右画像の右端領域IR1についても、処理対象から除外され白くなっている。
【0046】
次に、図6のように得られた視差マップに関し、整合性チェックを行なう。この整合性チェックについて、図7により説明する。例えば、左画像を基準としてブロックマッチングを行なった結果、左画像の画素GLに対応する右画像の画素がGRであると求められたとする。この場合、右画像を基準としてブロックマッチングを行うと、右画像の画素GRに対応する左画像の画素はGLであると求められなければならない。このような対応関係の正確さを確認するための処理が整合性チェックである。
【0047】
上記のような整合性チェックの結果、左画像の各画素についての視差量は、その画素が対応する右画像の画素の視差量と同じとなるべきところ、これらを比較して、所定範囲の誤差に入っていない場合は、誤対応であると判定する。このような誤対応は、特に、対応する画素が右画像に存在しない場合に発生する。誤対応と判定された画素については、白い領域に変換する。すなわち、図6のように得られた視差マップについて、整合性チェックを行い、誤対応と判定された部分は除外する処理を行う。この整合性チェックを行なった結果を図8に示す。なお、図8には、左画像のみを図示しているが、右画像についても同様に整合性チェックを行なうことができる。白抜き領域以外の領域には、視差量に応じた色が付与されており(ただし図示の都合上、白黒濃淡画像)、対応関係が正しい(正しい視差量)ものとして扱われる。
【0048】
次に、この白抜き領域が存在する視差マップについて、白抜き領域を補間する処理(四辺領域は、補外処理となる)を実行する。補間処理は、視差量が正しいとされた領域を膨張処理することにより行なうことができる。膨張処理による補間結果を図9に示す。これにより、画像を構成する全画素に対して視差量が付与された形になる。図9は、左画像に関する処理結果であるが、右画像に関しても同様の処理結果を得ることができる。この図9のように得られた結果にしたがって、以下のエッジに対する対応探索の範囲が決められる。
【0049】
<傾き別のエッジ抽出及び対応点の探索>
ブロックマッチングによる視差量では概略の結果しか得られないため、以下説明するエッジ抽出による対応点の探索により精度の高い視差量を求める。図10は、対応点の探索を行う時の概略の処理手順を示すフローチャートである。
【0050】
図3に示した画像の輝度値(Y値)について、各画素の近傍で下記(1)(2)式に示すHermite多項式Hm,n(x、y)に展開する。なお、(x、y)は各画素を原点とする直交座標であり、m,nは次数を示す。多項式展開は、左画像と右画像の夫々について行なわれる(#10)。
【数1】

【0051】
【数2】

【0052】
この多項式は、視覚的に表わした例が図11である。分かりやすくいえば、m=1,n=0の場合は、x方向の傾き(微分値)を抽出するためのフィルター演算であり、m=0,n=1の場合は、y方向の傾き(微分値)を抽出するためのフィルター演算を行なうことになる。以下の説明においても、m=1,n=0の場合と、m=0,n=1の場合とで演算を行なっている。
【0053】
展開係数を求めるフィルターのカーネルWm,n(x,y)は、次式(3)のようになる。
【数3】

【0054】
これにより、画像の輝度データf(i,j)は画素(i,j)の近傍で次式(4)のように展開される。
【数4】

【0055】
ここで、展開係数am,n(i,j)は、次式(5)により求められる。
【数5】

【0056】
左画像に関して、式(5)により表わされる多項式展開を行なった結果を図12に示す。図12(a)は、a1,0(x方向の傾き値)を表わし、(b)は、a0,1(y方向の傾き値)を示している。エッジが存在する箇所では、傾き値がほかに比べて大きく変化するため、結果としてエッジが抽出されることになる。右画像についての演算結果は図示していないが、同様に求めることができる。この図12においては、あらゆる方向のエッジが抽出されているため、これを傾き別のエッジとして抽出するため、以下のような演算を行なう。
【0057】
まず、各画素の近傍におけるエッジの方向(傾き)θは、次式(6)により演算される。

【数6】

【0058】
さらにエッジの強さを((a0,12+(a1,021/2で定義した場合、エッジの強さが16.0以上の画素で、なおかつ、360゜の方向を30゜間隔で分割した12方向のエッジの画素のうち、エッジを構成する領域が8画素以上であるものを真のエッジとして抽出する。従って、図12においては、上記の条件を満たさないエッジ(候補)も存在することになる。なお、エッジの強さを16.0以上とする点について、このしきい値の設定は、これに限定されるものではない。また、上記において8画素以上をエッジとしているが、何画素以上とするかについては、適宜決めることができる。以上のように、傾き別エッジの抽出を行う(#11)。
【0059】
図13は、エッジの強さを演算した結果を示す図であり、(a)は左画像のエッジ(b)は右画像のエッジを夫々示している。また、図14は傾き別のエッジを左画像と右画像の夫々について示した図である。傾きは、垂直方向を0゜とし、右回り(時計方向周り)の角度を示している。仮に、垂直に近い線分で角度が−15゜〜15゜に入る場合と165゜〜195゜に入る場合、これを白と黒で区別して−15゜〜15゜の図に表示している。すなわち、垂直に近いエッジで輝度が右から左に増加した場合と減少した場合を区別しているものである。
【0060】
次に、図14のように求められた傾き別エッジの情報を用いて、対応点探索を行なう。対応点の探索は、12方向の傾き別に行なう(#12)。図14の上側に左画像において抽出されたエッジ、下側に右画像において抽出されたエッジが示されており、上下の対応する傾きの画像を比較することで対応点の探索を行なう。すなわち、−15゜〜15゜の左画像と右画像とを対比し、次に15゜〜45゜の左画像と右画像とを対比し、以下同様に傾き別に対比する。
【0061】
また、対応点の探索を行う場合には、左画像から右画像への対応点探索と右画像から左画像への対応点探索とを別々に行なう。まず、具体的な対応点の探索手順を、左画像から右画像への対応点探索を例にあげて説明する。説明にあたり、エッジの領域特徴を表わす以下の記号を使用する。図15は、左画像のエッジと右画像のエッジを模式的に示す図である。
【0062】
1lは、領域(図15ではAで示している)の画素のうち、最も小さなx座標を表わす。x2lは、領域の画素のうち、最も大きなx座標を表わす。y1lは領域の画素のうち、最も小さなy座標を表わす。y2lは領域の画素のうち、最も大きなy座標を表わす。対応点探索を行なう場合、まず、左画像の中からエッジ領域を1つ取り出す。例えば、図15に示すエッジAを取り出す。右画像の中から、このエッジAと対応の可能性がある領域として、下記の条件式(7)を満足するエッジを取り出す。
【0063】
(条件式)
1l≦y2r+h y2l≧y1r−h ・・・(7)
なお、添字のl,rは夫々左画像側、右画像側であることを示している。また、hは左右画像の基線のずれの許容値を画素数で表わしたものである。ここで、基線hとは、カメラの位置ずれによるy方向のずれである。すなわち、ブロックマッチングにおいて視差量を求めた時のy方向のずれのことを指している。このような式(7)を設定したのは、この条件式を満たさないエッジは、比較をするまでもなく対応関係にないと考えられるからである。これにより、無駄な探索処理を省略し、効率よく対応点探索を行なうものである。
【0064】
更に、視差量dが、a≦d≦c の範囲内で、かつ、基線hのずれeが、−h≦e≦h となる画素数をカウントして、対応度を以下の式(8)により演算する。
【0065】
r(d,e)=val/number・・(8)
ここでa,cについては、次のように定める。すなわち、図15に示すエッジAの場合、エッジの左右上下の端で構成される四角形内部(斜線で示す)の画素群の視差量(x方向のずれ量)のうち、最小値と最大値に一定の幅を加えたものを探索範囲とする。ここで、視差量の最小値と最大値は、ブロックマッチングにより求められた結果(図9に示すもの)が利用される。すなわち、図15において対応する候補α、β、γ・・・を探索する場合に、ある程度候補を絞ることができるようにしている。また、基線h(y方向)のずれ量に関しても同様の扱いとしている。これにより、効率よく対応点探索を行い、誤判定が生じないようにしている。
【0066】
図16は、左画像のエッジAと右画像のエッジαとを重ねた状態を模式的に図示したものである。重なり部分を斜線で示している。前記条件を満たす重なり部分の画素数をカウントしvalとする。また、numberとは、上記の場合だと、エッジA自身の全画素数を表わす。すなわち、対応度は、注目されているエッジの全領域のうち、どの程度の割合が重なっているのかという度合いを表わすことになり、対応度が大きいほど対応するエッジの可能性が高いと推定できることになる。
【0067】
例えば、図15において、左画像のエッジAの探索対象となった右画像のエッジがα,β,γであるとすれば、このα,β,γのうち、対応度が最も大きいエッジを対応するエッジとして仮決定する。例えば、エッジAに対応するエッジはαであるという結果が得られた場合、このときの視差量がエッジAについての視差量であると決定される。なお、視差量については、エッジαとの重なり領域の大きさに関係なく、エッジAを構成する全画素に対して同じ視差量が設定される。以上のように、左画像についてエッジA,Bについての最も対応度の高い右画像のエッジが決まることで視差量も決まることになる。
【0068】
同じような処理を右画像を基準としても行う。以上のようなエッジに対する対応点探索の結果得られた視差マップを図17に示す。(a)は左画像に関する視差マップであり、(b)は右画像に関する視差マップである。なお、実際の視差マップは図6の場合と同様にカラー表示されるが、図示の都合上、白黒の濃淡画像で表わしている。
【0069】
次に、図17のように得られた視差マップについて、整合性チェックを行なう(#13)。この整合性チェックについては、次のような理由により行われる。例えば、左画像を基準としてエッジAに最も対応度が高いエッジがαであるとすれば、逆に右画像を基準としてエッジαに最も対応度の高いエッジはAであるという結果が出る必要がある。しかしながら、実際にはエッジαに最も対応度が高いエッジはBであるという結果が出る可能性もある。従って、このような矛盾した結果(誤対応)を排除するために整合性チェックを行なうものである。
【0070】
まず、左画像の方から整合性チェックを行なう。前述の対応度の演算を行なった結果として、対応度が最大となるエッジだけでなく対応度が2番目、3番目となるエッジに関しても演算結果を保持している。
【0071】
図18を具体例にあげて説明すると、左画像を基準とした場合、エッジAに関して右画像のエッジα,β,γとの対応度の演算結果が保存される。このとき、エッジα,β,γとの対応度の大きさの順番情報も合わせて保存される。エッジB,Cについても、エッジα,β,γとの対応度及びその大きさの順番情報が保存される。同様に右画像を基準とした場合に、エッジαに関して左画像のエッジA,B,Cとの対応度の演算結果及びその大きさの順番情報が保存される。同様に、エッジβ,γについても、エッジA,B,Cとの対応度及びその大きさの順番情報が保存される。
【0072】
そこで、まず左画像に含まれるエッジのうち、1つの注目するエッジを選択する。ここでは、図15のエッジAを選択したものとする。右画像のエッジα・β・γの夫々について対応度が求められており、その大きさはα>β>γの順番に大きいものとする。この対応関係に応じて、次のような対応度の更新を行なう。対応度が大きい順番に修正係数1.4,1.2,1.0を夫々割り当てる。なお、この係数値については、適宜決めることができるものである。
【0073】
次に、既に求められているエッジα・β・γのエッジAに対する対応度に対して夫々1.4,1.2,1.0を掛ける(図18参照)。図18の例では、エッジαを注目エッジとした場合、対応度はA>B>C、エッジβについては、対応度がA>B>C、エッジγについては、対応度がB>A>Cとなっているが、上記のような係数をかけることで、この大小の順番(対応順序)が変更されることもありうる。更新された対応度の順番情報が保存される。
【0074】
以上、左画像の注目エッジをAとして対応度の更新を行なったが、次に、左画像の注目エッジB及びCに関しても同様の処理を行う。これにより、右画像のエッジα・β・γの夫々についてB及びCに対する対応度が更新される。更新された対応度に基づいて、順番情報の更新が行なわれる。
【0075】
以上と同じ処理を右画像に関しても行う。これにより、左画像のエッジA,B,Cのエッジα・β・γに対する対応度が更新される。また、順番情報についても更新される。
【0076】
以上の処理を10回繰り返す。繰り返していく毎に、対応度の順番が更新されていき、収束していくものと考えられる。その結果、誤対応が低減し、正確な対応関係を付けることができる。繰り返し回数については、特に限定されるものではなく、適宜決めることができる。10回繰り返した結果得られた視差マップを図19に示す。整合性チェックを行なうことで、より精度(信頼性)の高い視差量を演算することができる。図19(a)は左画像の視差マップであり、(b)は右画像の視差マップである。
【0077】
<ばねによる視差量の補間>
次に、ばねを用いた視差量の補間演算について説明する。この補間演算の概略の処理手順は図20のフローチャートに示される。図19のように得られた視差マップは、エッジを中心として求められており、白い領域は視差量が求められていない領域である。従って、この白い領域についても視差量を求める必要があり、これを補間演算を行なうことで求める。処理手順は、大きく分けて図20に示すような4つのステップから構成されている。
【0078】
まず、画像を構成する全ての画素どうしをバネにより結合する。画像内における各画素に対応する位置がバネの結合位置とし、バネは各画素と上下左右の4方向の画素と結合しているものと扱う。そして、画素iと画素jとを結合するバネのバネ定数eijを次式(9)により定義する。
【0079】
ij=255.0−4.0(|Yij|+|Cr,ij|+|Cb,ij|)・・・(9)
ここで、Yij ,Cr,ij ,Cb,ijは夫々、画素iと画素jのY,Cr,Cb成分の差を示す。ただし、eij≧0とする。上記式により、バネ定数は0〜255(8ビット)の数値を取りうる。なお、バネ定数の定義としては、色差情報Cr,Cbを用いずに輝度情報Yのみで定義してもよい。図22は、上記式(9)により左画像のバネ定数を演算した結果を示す図である。図22(a)は、横方向のバネ定数を示す図であり、(b)は縦方向のバネ定数を示す図である。
【0080】
図15において色が黒い画素はバネ定数が小さく、白い画素はバネ定数が大きいことを表わしている。この図からも分かるように、エッジの部分でバネ定数が小さくなっていることが確認できる。視差が大きく変化するところはエッジ部分であるため、エッジで視差が大きく変化し、エッジでない部分は視差の変化が緩やかになるように解を求める(補間する)必要がある。従って、図15に示すバネ定数の演算結果を利用して適切な解を求めることができると考えられる。
【0081】
次に、バネの節点(画素の位置)の初期移動量を設定する必要があるが、エッジに対してはエッジの対応点探索結果、それ以外の画素については、ブロックマッチングの結果を利用する。エッジを構成する画素に関しては、図19のように得られた視差マップの視差量を初期移動量として設定する。図19では、エッジ以外の画素については視差量が求められていないため、図9に示すブロックマッチングにより得られた視差量が初期移動量として設定される。また、対応点が定まらなかったエッジに関しては、視差量の最小値(所定値)を設定している。視差量の最小値は適宜決めることができるが、バネの節点ができるだけ移動しない程度の小さな値が設定されるものである。
【0082】
次に、以下に説明する手順を繰り返して、バネの釣り合いを求める。釣り合い状態での画素の節点に加わる荷重は次式(10)で表わされる。
【数7】

ここで、fはi番目の画素に加わる荷重、jはi番目の画素とバネで結合している画素の番号(4つ存在する)、eijはi番目の画素とj番目の画素とを結合しているバネのバネ定数、d,dは夫々i番目の画素とj番目の画素の移動量である。
【0083】
次に、荷重fによりバネの移動量を次式(11)にしたがって更新する。
【0084】
=0.001f・・・(11)
なお、演算するに際しては、横方向の荷重のみを考え、移動量(=視差量)も横方向のみを演算した。また、移動量についてはエッジを構成する画素については固定(移動しないものと扱う)し、エッジ以外の画素に対してのみ演算を行なった。ただし、エッジの対応点探索で対応点の決まらなかったエッジに対しては、移動量の演算を行なっている。なお、式(11)に示す係数0.001は実験的に求めた数値であり、必ずしもこの値に限定されるものではない。
【0085】
式(10)(11)の計算を1000回繰り返して求めた移動量(視差量)の演算結果(視差マップ)を図23に示す。図23(a)は左画像についての演算結果であり(b)は右画像についての演算結果である。この図において、白く表示されている領域は、応力が一定以上の値を示す画素である。
【0086】
次に、図23の釣り合い計算の結果において、応力が大きいエッジの画素に関してバネを切断する処理を行う。図23の例では、エッジを構成する画素で、f>32.0を満足する画素に接続された4つのバネの全てを切断する。すなわち、エッジの領域では本来、視差量が大きく変化するはずであるため、エッジの近傍で視差量が徐々に変化するような演算結果が得られることのないようにする必要がある。そのために、上記のごとく、バネを切断し、正しい視差量に補間されるようにする。バネを切断して、釣り合いの再計算を行なった結果を図24に示す。この図24からも分かるように、物体の輪郭部分(エッジ)で視差量が不連続に変化し、正しい視差量が得られていることが分かる。
【0087】
左画像の視差マップ上の(i,j)位置にある画素の視差量をd(i,j)とするとき、右画像の(i−d,j)の位置にある視差量d(i−d,j)が、
|d(i,j)−d(i−d,j)|≦1 ・・・(12)
を満足する時に整合性が保たれているとする。この数値は、本来は0になるべき数値であるが、誤差なども含めて上記の数値以内であれば整合性があるものと扱うことができる。図24において、上記式(12)で整合性チェックを行なった結果を図25に示す。図25(a)は左画像に関する演算結果を示し、(b)は右画像に関する演算結果を示す。整合性が保持されていない画素は、白抜きの領域となっている。この図からも、オクルージョンの部分や誤対応の部分が除かれていることが分かる。
【0088】
以上のように説明してきた処理手順により正しい視差量が求まっていることを確認するため、図25に示す視差マップを三次元空間に表示した結果が図26に示される。図26(a)は右上に視点を移動した場合を示し(b)は少し低い位置の左上に視点を移動した場合を示す。いずれも、奥行き方向の位置に従って移動量がずれた自然な画像が得られていることが分かる。
【0089】
以上のような周方向では、両眼立体視において左右の画像から傾き別のエッジを抽出し、各傾き別のエッジを照合して視差量を求めるようにしている。さらに、画素の輝度データの変化量をバネの強度で置き換えたバネのネットワークを用いて、エッジの視差量を補間する方式を採用している。これにより、誤対応が少なく精度の高い視差量を得ることができ、エッジ以外の画素の視差量についても精度良く求められるという利点がある。
【0090】
<機能ブロック図>
以上説明した画像処理プログラムの機能に関して、図27にブロック図により示す。プログラムの機能は大きく3つに分けることができる。すなわち、ブロックマッチングにより概略の視差量を演算する機能(S1)、ブロックマッチングの結果に基づいてエッジ探索を行なう機能(S2)、バネのアナロジーによりエッジ以外の領域について補間演算を行なう機能(S3)である。
【0091】
撮影手段10は、左画像撮像手段10Lと右画像撮像手段10Rとを備えている。撮像手段10は、ステレオカメラや通常のカメラにステレオアダプターを装着して構成される。もちろん、全く別々のカメラを2つ設けて左画像撮像手段10Lと右画像撮像手段10Rとしてもよい。
【0092】
左画像データ記憶手段11Lは、左画像撮像手段10Lにより撮影された左画像データを記憶する。右画像データ記憶手段11Rは、右画像撮像手段10Rにより撮影された右画像データを記憶する。記憶手段は、ハードディスク、半導体メモリなどにより構成される。
【0093】
まず、ブロックマッチングにより概略の視差量を演算する機能(S1)を説明する。ブロックマッチング手段12は、左画像データと右画像データを用いてブロックマッチングを行なう機能を提供する。ブロックの大きさを設定する機能も有する。ブロックマッチングの結果は視差マップ生成手段13に引き渡され、視差マップとして画面表示させる。整合性チェック手段14は、ブロックマッチングの結果の整合性をチェックする機能を提供する。整合性チェック手段14は、更に視差量判定手段14aと、膨張処理手段14bを備えている。視差量判定手段14aは、整合性チェックにおいて、視差量の大きさが所定値以下か否かについて判定する。膨張処理手段14bは、整合性チェックの結果、誤対応であると判定された領域や、ブロックマッチングで対応するブロックが見つからなかった領域については、膨張処理で視差量の補間処理を行う。
【0094】
次に、ブロックマッチングの結果に基づいてエッジ探索を行なう機能(S2)を説明する。エッジ抽出手段15は、エルミート多項式に基づいて画像中のエッジの抽出を行なう。なお、エッジ抽出の方法としては、他の公知の手法等を用いてもよい。傾き別エッジ抽出手段16は、傾き別のエッジを抽出する機能を提供する。傾き別の例として30゜のエリアごとにエッジを分類する例を説明したが、本発明としては、この数値に限定されるものではなく、適宜設定することができる。
【0095】
対応エッジ探索手段17は、左画像と右画像の対応するエッジを見つけ出す機能を提供する。エッジの探索は、左画像に含まれるエッジを注目エッジとして、右画像のエッジ群から対応エッジを探索する場合と、右画像に含まれるエッジを注目エッジとする場合とがある。エッジ探索範囲設定手段18は、エッジ探索を行う場合の探索範囲が設定される。この探索範囲は、ブロックマッチングの結果に基づいて設定されるものである。これにより、エッジ探索を行なう範囲を限定する。
【0096】
対応度演算手段19は、対応エッジ探索手段17により左右画像のエッジの照合を行なうときに対応度を演算する。対応度は、どの程度2つのエッジが類似しているかを表わす指標であり、対応度が大きいほど2つのエッジは類似する。エッジ照合を行った時の比較エッジと対応度のデータは、対応度データ保存手段20に保存される。
【0097】
エッジ抽出整合性チェック手段21は、抽出された対応エッジの整合性をチェックする機能を提供する。左画像を基準とした場合の対応エッジと、右画像を基準とした場合の対応エッジは、同じエッジ同士が対応していなければならない。対応関係に矛盾が生じる場合は誤対応が生じているものと扱う。
【0098】
次に、バネのアナロジーによる視差量の補間演算を行なう機能(S3)について説明する。バネ定数設定手段22は、画素を節点と見なして画素間に掛けるバネのバネ定数を設定する。初期移動量設定手段23は、各節点における初期移動量を設定する。初期移動量は、エッジ抽出の結果得られた移動量が初期設定される。
【0099】
バネ釣り合い演算手段24は、設定されたバネ定数と初期移動量に基づいてバネの釣り合い演算を行なう。釣り合い演算を行なった結果、応力が所定値以上の画素に関してはバネを切断する(バネ定数を0にする)処理を行う。移動量更新手段25は、バネを切断した後、再度移動量を演算する。
【0100】
<路面計測システムへの応用>
次に、本発明に係る画像処理プログラムを路面計測システムに利用した場合の構成例を説明する。路面の状態は時間の経過と共に劣化するため、適宜の時期にメンテナンスを行う必要がある。このメンテナンスを行なうべきか否かを判断するために、路面情報の計測が行われている。この路面の計測において、路面の凹凸情報を集める必要があり、本発明の画像処理プログラムを用いることで路面の凹凸(三次元情報)を得ることができる。
【0101】
まず、路面計測を行うために使用される車の構成を図28,図29により説明する。車の背面側の上部に、2台のカメラ1,2が所定間隔はなれた状態で搭載されている。カメラ1,2は、例えば、CCDラインセンサーにより構成される。カメラ1,2は、支持フレーム3に取り付け支持されており、この支持フレーム3の前方側には3軸ジャイロ4(走行状態検出手段に相当)が搭載されている。この3軸ジャイロ4は、車の走行状態を検出するために設けられる。なお、走行状態検出手段としては、上記のセンサーに限定されるものではなく、また、センサーも1種類だけでなく複数種類のものを使用してもよい。
【0102】
カメラ1,2で撮影された画像データを処理するために、3台のパソコン6が搭載されている。また、カメラ1,2やパソコン6を駆動するための電源及び発電機7も搭載される。車の背面下部には照明5が搭載されており、夜間における路面の計測も可能としている。
【0103】
図30は、カメラ1,2の撮影範囲を示す図である。R1は左側のカメラ1による撮影範囲を示し、R2は右側のカメラ2に夜撮影範囲を示す。撮影範囲R1,R2は、重なり領域を有しており、この領域の左右画像データから視差量を求めることで、路面の凹凸情報を求めることができる。寸法関係の具体例を説明すると、2つのカメラ1,2間の距離は1200mm、カメラの取り付け高さは路面から2500mm、2つのカメラ1,2の視野の重なり領域は、路面幅方向で5000mmである。これにより、1mm四方あたり1画素の設定になる。ただし、これらの数値は一例に過ぎないものである。
【0104】
画像処理プログラム35は、補正された左画像データと補正された右画像データを用いて、視差量の演算を行なう。画像処理プログラム35の具体的な機能については、既に図27などで説明してきたのと同じ機能のものを使用することができる。ただし、画像処理プログラムとしては、上記のものに限定されるものではなく、ステレオ画像を処理するための任意のプログラムを用いることができる。例えば、ブロックマッチングのみを行いエッジ処理を行わないプログラムを用いてもよいし、ブロックマッチングとエッジ処理を行い、バネのアナロジーを行わないプログラムを用いてもよい。
【0105】
図32は、実際に路面を撮影した画像を示し(a)は左画像(b)は右画像を夫々示す。図33は、図27などにより既に説明した画像処理プログラムを用い、これにより得られた視差量データに基づいて作成された三次元表示画像である。この三次元画像は左画像あるいは右画像からの視差量データに基づいて作成することができる。また、わだち掘れやひび割れなどの深さ・大きさを数値化することも可能である。これらを数値化することで、路面をメンテナンスすべきか否かについて判断することができる。わだち掘れの程度を検出するのであれば、既に述べたバネのアナロジーを用いた解析は行なわなくても良く、エッジ処理の結果からわだち掘れの判定をしてもよい。ひび割れの深さなど、詳細なデータが必要な場合は、バネのアナロジーを行った結果を利用するのが好ましい。
【0106】
<システムの機能ブロック図>
図31は、路面状態計測システムの機能を示すブロック図である。第1のカメラ1により撮影された左画像データは、左画像データ保存部31に保存される。第2のカメラ2により撮影された右画像データは、右画像データ保存部32に保存される。これら保存部31,32は、パソコン6に設けられたハードディスク等により構成される。左画像補正部33は、3軸ジャイロ4の出力信号に基づいて左画像データを補正し、右画像補正部34は、3軸ジャイロ4の出力信号に基づいて右画像データを補正する。これは、車の移動速度や車の振動状態により、取り込まれる画像データの画素間隔が伸びたり歪んだりするためであり、各補正部33,34によりこれらを補正して歪みのない状態の画像データを生成する。
【0107】
画像処理プログラム35は、路面状態計測手段としての機能も備えており、補正された歪みのない左右両画像データを用いて視差量を求めて、三次元距離データを計測することができる。
【0108】
路面状態を計測する際に、路面の横断データと縦断データを取得する。かかるデータは、視差量データに基づき作成することができる。横断データについては、例えば、所定距離毎(例えば、50cmごと、1mごと等)に作成することができる。これにより、メンテナンスが必要な範囲を確認することができる。縦断データについても同様である。縦断データについては路面の幅方向において何箇所データを取るかについても適宜決めることができる。
【0109】
図34は、縦断データの作成例を示すものであり、図35は横断データの作成例を示すものである。また、夫々の横断データと縦断データに対して基準データを重ねて表示している。図35においては、路面の勾配の大きさを強調した状態で図示している。
【0110】
以上のように、本発明に係る画像処理プログラムを用いて、視差量データを求めることで、信頼性の高い路面の三次元位置情報を抽出することができる。また、この視差量データから、路面の状態(わだち掘れやひび割れの深さなど)を計測することができる。
【0111】
また、レーザーによる検出に比べて車を移動しながら画像を取得するものであるから、人手による作業が軽減され、効率よくデータの取得を行うことができる。また、取得したデータを短時間で効率よく分析することができ、ライフサイクルコストの計画に活用することができる。更に、画像データや計測データをデータベース化することにより、コストパフォーマンスの高い社会資本整備計画の策定ができるとともにトレーサビリティとしての活用ができる。得られたデータは、電子データであり統一性・正確性・保存性に優れている。
【0112】
<別実施形態>
本発明に係る画像処理プログラムは、路面計測以外の目的にも使用することができる。
【図面の簡単な説明】
【0113】
【図1】ステレオビジョンの原理を説明する図
【図2】処理手順の概略を示すフローチャート
【図3】撮影されたステレオ画像の例を示す図
【図4】ブロックマッチングを概念的に説明する図
【図5】ブロックの対応関係を説明する図
【図6】ブロックマッチングの結果得られた視差マップを示す図
【図7】整合性チェックを説明する図
【図8】整合性チェックを行なった結果の視差マップを示す図
【図9】図8に示す視差マップに対して補間処理を行なった結果を示す図
【図10】対応点の探索を行う時の概略の処理手順を示すフローチャート
【図11】エルミート多項式(演算用フィルター)を視覚的に表わした図
【図12】多項式展開フィルターによる演算結果を示す図
【図13】エッジの強さを演算した結果を示す図
【図14】傾き別のエッジを示す図
【図15】エッジの形状を模式的に示す図
【図16】エッジを重ねた状態を模式的に示す図
【図17】エッジに対する対応点探索の結果得られた視差マップを示す図
【図18】整合性チェックの手順を示す図
【図19】整合性チェックの結果得られた視差マップを示す図
【図20】ばねを用いた視差量の補間演算の手順を示すフローチャート
【図21】画素同士をバネで結合する場合のモデルを示す図
【図22】バネ定数の演算結果を示す図
【図23】節点の移動量を演算結果を示す図
【図24】バネを切断して節点の移動量の再計算を行った結果を示す図
【図25】図24について整合性チェックを行なった結果を示す図
【図26】図25の視差マップを三次元空間に表示した状態を示す図
【図27】ブロック図
【図28】路面計測システムに使用する車の構成を示す側面図
【図29】路面計測システムに使用する車の構成を示す背面図
【図30】カメラの視野範囲を示す図
【図31】路面状態計測システムの機能を示すブロック図
【図32】路面を撮影した左右画像を示す図
【図33】路面の三次元形状を表示した画面を示す図
【図34】路面の縦断データの作成例を示す図
【図35】路面の横断データの作成例を示す図
【符号の説明】
【0114】
1,2 カメラ
10 撮像手段
10L 左画像撮像手段
10R 右画像撮像手段
11L 左画像データ記憶手段
11R 右画像データ記憶手段
12 ブロックマッチング手段
13 視差マップ生成手段
14 整合性チェック手段
15 エッジ抽出手段
16 傾き別エッジ抽出手段
17 対応エッジ探索手段
18 エッジ探索範囲設定手段
19 対応度演算手段
20 対応度データ保存手段
21 エッジ抽出整合性チェック手段
22 バネ定数設定手段
23 初期移動量設定手段
24 バネ釣り合い演算手段
25 移動量更新手段

【特許請求の範囲】
【請求項1】
左画像撮影手段から得られた左画像データと、右画像撮像手段から得られた右画像データとを用いて、左右の両画像データにおいて対応する画素の視差量を求めることで被写体の三次元距離データを演算可能にした画像処理プログラムであって、
ブロックマッチングにより、左右両画像データについて夫々ブロック単位で概略視差量を演算する機能と、
左右両画像データに含まれるエッジを夫々抽出する機能と、
左右両画像データの対応するエッジを照合する際の探索範囲を前記ブロックマッチングにより得られた概略視差量に基づいて設定する機能と、
設定された探索範囲において、左右両画像データ間の対応するエッジを見つけることで、視差量を演算する機能と、をコンピュータに実行させることを特徴とする画像処理プログラム。
【請求項2】
前記ブロックマッチングにより視差量を演算するに際し、
前記ブロック単位で視差量を演算した結果、左右両画像データにおいて対応すべき画素の視差量の差が所定範囲内にあるかどうかを判定する機能と、
この判定機能により視差量の差が所定範囲内にないと判定された画素に関して、補間処理により視差量を演算する機能と、を更にコンピュータに実行させる請求項1に記載の画像処理プログラム。
【請求項3】
左右両画像データに含まれるエッジを抽出するに際し、傾き別にエッジを抽出する機能と、
傾き別に対応するエッジを照合する機能と、を更にコンピュータに実行させる請求項1又は2に記載の画像処理プログラム。
【請求項4】
左右両画像データのうちの一方側のエッジを注目エッジとし、この注目エッジの前記探索範囲内にある他方側のエッジを比較エッジとした場合、注目エッジと探索範囲内の全ての比較エッジとの重なり度合いから対応度を求める機能と、
対応度が最も大きな比較エッジを対応エッジとして設定する機能と、を更にコンピュータに実行させる請求項1〜3のいずれか1項に記載の画像処理プログラム。
【請求項5】
エッジ以外の領域の視差量を補間演算により求める機能を更に備え、この機能として、
各画素の位置をバネの節点と仮定した場合に、隣接する画素間に掛けるバネのバネ定数を当該画素の画素情報に基づいて演算する機能と、
視差量が求まっている領域については、バネの節点の初期移動量を視差量に基づいて設定する機能と、
視差量が求まっていない領域については、バネの節点の初期移動量を所定値で設定する機能と、
隣接する画素間の視差量の差に基づいて、バネの釣り合いを演算する機能と、
釣り合い計算の結果、移動量が所定値よりも大きな節点に関してバネ定数を0に設定して移動量を再演算する機能と、を更にコンピュータに実行させる請求項1〜4のいずれか1項に記載の画像処理プログラム。
【請求項6】
車体の幅方向に所定間隔をあけて搭載される左画像撮影用の第1のカメラ及び右画像撮影用の第2のカメラと、
車体の走行状態を検出する走行状態検出センサーと、
第1のカメラ及び第2のカメラから得られる左右両画像データを走行状態検出センサーから得られる信号に基づいて補正する画像補正手段と、
この補正された左右両画像データを画像処理して視差量データを演算する画像処理プログラムと、
この画像処理プログラムにより得られた視差量データに基づいて、路面の三次元位置情報を抽出し、路面状態を計測する路面状態計測手段と、を備えた路面状態計測システム。
【請求項7】
前記画像処理プログラムとして請求項1〜5のいずれか1項に記載の画像処理プログラムが用いられることを特徴とする請求項6に記載の路面状態計測システム。
【請求項8】
前記路面状態計測手段は、前記三次元位置情報として、路面の横断データと縦断データを夫々取得する機能と、
取得されたデータを基準データと比較させる機能と、を有することを特徴とする請求項6又は7に記載の路面状態計測システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図35】
image rotate


【公開番号】特開2008−82870(P2008−82870A)
【公開日】平成20年4月10日(2008.4.10)
【国際特許分類】
【出願番号】特願2006−262902(P2006−262902)
【出願日】平成18年9月27日(2006.9.27)
【新規性喪失の例外の表示】特許法第30条第1項適用申請有り 2006年7月19日 社団法人 電子情報通信学会発行の「画像の認識・理解シンポジウム(MIRU2006)論文集」に発表
【出願人】(503420833)学校法人大阪工大摂南大学 (62)
【出願人】(506326235)有限会社テクノジャパン (1)
【Fターム(参考)】