(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0014】
以下、図面を参照しながら、発明を実施するための形態を説明する。
[1.構成]
図1に示す位置計測装置1は、複数の撮影画像を用いて撮影画像中の各点までの3次元距離を検出する装置である。
【0015】
位置計測装置1は、乗用車等の車両に搭載され、画像取得部10と処理部20とを備える。また、位置計測装置1は、車載ネットワーク3を介して、図示しない他の車載装置と接続されている。
【0016】
画像取得部10は、カメラアレイを構成する複数のカメラを備える。カメラアレイとは、カメラを格子状に並べて配置したものであり、車載カメラ等で用いられる2台のカメラを水平方向に並べて配置した平行ステレオカメラもその一種として挙げられる。以下では、平行ステレオカメラを構成する1対のカメラ11,12を備えるものとして説明する。なお、カメラの数は2つに限定されるものではなく、3つ以上であってもよい。各カメラ11,12は、フロントガラスを介して車両の進行方向に位置する同一の撮影領域を含む領域を撮影するように車室内に配置される。つまり、画像取得部10は、互いに異なる視点から同一の撮影領域を含むように同時に撮影された複数の画像を取得して、処理部20に供給するように構成されている。
【0017】
処理部20は、CPU21と、RAM、ROM、フラッシュメモリ等の半導体メモリ(以下、メモリ22)と、を有する周知のマイクロコンピュータを中心に構成される。処理部20の各種機能は、CPU21が非遷移的実体的記録媒体に格納されたプログラムを実行することにより実現される。この例では、メモリ22が、プログラムを格納した非遷移的実体的記録媒体に該当する。また、このプログラムの実行により、プログラムに対応する方法が実行される。なお、処理部20を構成するマイクロコンピュータの数は1つでも複数でもよい。
【0018】
処理部20は、CPU21がプログラムを実行することで実現される機能として、距離演算処理を少なくとも実現する。距離演算処理の詳細については後述する。なお、処理部20が機能を実現する手法はソフトウェアに限るものではなく、その一部又は全部の要素を、論理回路やアナログ回路等を組み合わせたハードウェアを用いて実現してもよい。
【0019】
[2.カメラモデル]
ここで、距離演算処理の前提となる非単焦点カメラモデルについて説明する。非単焦点カメラモデルは、カメラ前方に配置されたガラス等で光線が屈折する状況下においても、屈折後の光線の経路を正確に記述するためのモデルである。
【0020】
このカメラモデルでは、
図2に示すように、複数のカメラによる3次元点の2次元画像平面への投影を2枚の平面を用いて記述する。なお、
図2では、カメラが3台である場合を示す。但し、カメラは3台に限るものではなく2台以上であればよい。投影用の平面として、復元対象となる空間を挟み込むように配置された2枚の共通平面H
1,H
2を仮定し、各カメラの画像平面G
nから各共通平面H
jへの非線形写像をそれぞれ定義する。但し、n=1,2,3、j=1,2である。
【0021】
つまり、従来の非単焦点カメラモデルでは、投影用の2枚の平面をカメラ毎に個別に定義していたが、ここでは、各カメラに共通の2枚の共通平面H
1,H
2を定義している点が大きく異なる。この共通平面H
1,H
2を用いることにより、カメラ間の関係を規定する外部パラメータが不要となる。
【0022】
このような2枚の共通平面H
1,H
2として、ここでは、ワールド座標系において、奥行き方向を表すZ軸方向の座標が、Z=Z
1となる平面を共通平面H
1と、Z=Z
2となる平面を共通平面H
2とする。そして、共通平面H
j上の点X
jを(1)式で表すものとする。但し、x
1jは、ワールド座標系におけるX軸方向の座標(以下、水平座標)、x
2jは、同じくY軸方向の座標(以下、垂直座標)を表すものとする。
【0024】
カメラの画像平面G
n上の点である画像点Mから共通平面H
1,H
2への各投影点X
1,X
2への変換においては、固定値であるZjを無視して考えることができる。ここでは、画像平面G
n上の画像点M=(m
1,m
2)から各共通平面H
j上の水平座標x
1jまたは垂直座標x
2jへの非線形写像を、(2)式に示すように、K次多項式を用いて定義する。但し、m
1は画像平面G
n上の水平座標、m
2は画像平面G
n上の垂直座標である。a
klは、変換に用いる係数であり、これがカメラパラメータとなる。但し、a
klは、共通平面H
1の水平座標x
11および垂直座標x
21、共通平面H
2の水平座標x
12および垂直座標x
22のそれぞれについて個別に定義される。
【0026】
なお、この変換は、K次多項式による非線形変換と平面射影変換を組み合わせたものである。特にK=1の場合、上記変換は、平面射影変換と等しくなる。このような非線形K次多項式に平面射影変換を組み合わせることで、カメラの回転等を効果的に表現することができる。
【0027】
なお、カメラパラメータa
klの初期値は、実験等によって予め求められた値が設定され、以後、距離演算処理を実行する毎に更新される。初期値を求める際には、
図3に示すように、フロントガラス等の非線形歪要因に対して実際の使用時と同様の位置関係となるようにカメラ11,12を配置し、共通平面H
1,H
2に対応する位置に配置されたテストパターンPを、非線形歪要因越しに撮影する。なお、テストパターンPとしては、例えば、
図4に示すように、格子状のパターンが用いられる。そして、撮影結果から、各カメラ11,12の画像平面G
n上の対応点を検出し、その画像平面G
n上での対応点の位置、即ち(m
1,m
2)と、既知の値である共通平面H
1,H
2に配置されたテストパターン上での対応点の実際の位置、即ち(x
11,x
21)および(x
12,x
22)との関係から、上記(2)式を用いて、カメラパラメータa
klを求める。
【0028】
ここで、K=2の場合の変換式を行列形式にて表現したものを(3)式に示す。但し、この式は、共通平面H
1,H
2のいずれか一方への変換式である。ここででは、式を見易くするため、共通平面H
jを特定するパラメータであるjの表記を省略している。また、水平座標x
1への変換に用いるカメラパラメータをa
klで表し、垂直座標x
2への変換に用いるカメラパラメータをb
klで表している。
【0030】
[3.距離演算処理]
次に、処理部20のCPU21が実行する距離演算処理を、
図5のフローチャートを用いて説明する。本処理は、予め設定された一定周期で、繰り返し実行される。
【0031】
なお、メモリ22には、距離演算処理のプログラムの他、事前に実験的に求められたカメラパラメータa
klの初期値が少なくとも記憶されている。但し、カメラパラメータa
klは、カメラ毎にx
11,x
21,x
12,x
22を求めるため4組ずつ必要であり、二つのカメラ11,12を用いる本実施形態では合計8組のカメラパラメータが用意される。但し、(3)式の形式で考えた場合は、カメラ毎に、(x
1j,x
2j)を求めるためのカメラパラメータが2組ずつ必要であり、カメラが二つの場合は、合計4組のカメラパラメータが用意されることになる。
【0032】
本処理が起動すると、処理部20は、まずS110にて、画像取得部10を構成するカメラ11,12から、それぞれ同じタイミングで撮影した画像(以下、撮影画像)を取得する。
【0033】
S120では、各カメラ11,12の撮影画像から、同一の3次元位置を表す点であると推定される対応点を抽出する。なお、対応点の抽出には、例えば、各点における画像特徴量を求め、その特徴量が類似する点を対応点として抽出する等、公知の方法を用いることができる。以下では、抽出された対応点の数をW個とする。Wは正整数を表す。
【0034】
S130では、S120で抽出された対応点の一つを、復元対象点として選択する。
S140では、各カメラ11,12から得られた撮影画像のうち、いずれか一つを対象画像として選択する。
【0035】
S150では、メモリ22に記憶されたカメラパラメータa
klを用いて、(2)式に従い、
図6に示すように、対象画像の画像平面G
n上の復元対象点M=(m
1,m
2)から、各共通平面H
jへの投影点X
j=(x
1j,x
2j)をそれぞれ算出する。
【0036】
S160では、S150で求められた各共通平面H
1,H
2上の二つの投影点の3次元座標X
1=(x
11,x
21,Z
1)、X
2=(x
12,x
22,Z
2)から、両投影点X
1,X
2間を結ぶ3次元直線である逆投影光線Lを算出する。
【0037】
S170では、S130にて選択された復元対象点に対するS140〜S160の処理を、全てのカメラ11,12からの撮影画像について実施したか否かを判断する。全て処理済みであればS180に進み、未処理のものがあれば、S140に戻って、S140〜S150の処理を繰り返す。
【0038】
S180では、一つの復元対象点について、カメラ毎に算出された合計N本の逆投影光線Lを用いて、復元対象点Mの3次元位置を表す復元点RXを算出する。3次元位置は、測定誤差がなければ、N本の逆投影光線Lの交点に位置する。しかし、実際には測定誤差により交点が存在しない場合がある。従って、(4)式により、N本の逆投影光線Lとの2乗距離の和が最小となる3次元点を復元点RXとして求める。
【0040】
なお、
図6に示すように、n番目のカメラの画像平面G
nから共通平面H
jへの投影点をX
jn、投影点X
jnを通る逆投影光線L
nの向きを表す単位ベクトルである光線ベクトルをB
nとする。このとき3次元空間中の任意の復元候補点Xrと光線Lとの距離を計算するため、復元候補点Xrを光線L
nに投影することで得られるLX
nを(5)式により計算する。また、光線ベクトルB
nは(6)式で表される。そして、(4)式に示すような全てのカメラから得られる光線L
nとの距離を最小とする復元候補点Xrが、最終的に復元される3次元点である復元点RXとなる。
【0042】
S190では、S120で抽出した全ての対応点について、S130〜S180の処理を実施したか否かを判断する。全ての対応点について処理を実施済みであればS200に進み、未処理の対応点があればS130に戻って、S130〜S180の処理を繰り返す。
【0043】
S200では、S180で算出されたW個の復元点を復元点群{RX}、復元点群{RX}の算出に用いた8組のカメラパラメータをカメラパラメータ群{A}で表すものとして、これら復元点群{RX}およびカメラパラメータ群{A}の校正を行う。これと共に、校正されたカメラパラメータ群{A}により、メモリ22に記憶されたカメラパラメータを更新する。
【0044】
具体的には、まず、W個の復元点のそれぞれについて、再投影誤差E
wを算出する。但し、w=1,2,…,Wである。再投影誤差E
wは、
図6に示すように、w番目の復元点RXを、その算出に用いた光線ベクトルB
nに沿って各共通平面H
jに投影した点である再投影点R
jnを求め、(7)式を用いて算出する。つまり、カメラ毎かつ共通平面毎に求めた投影点X
jnと再投影点R
jnとの距離の総和を、再投影誤差E
wとしている。
【0046】
次に、(8)式に示すように、復元点群{RX}に属する全ての復元点についての再投影誤差Ewの総和を最小化するように、復元点群{RX}およびカメラパラメータ群{A}の値を調整する、いわゆるバンドル調整を行う。つまり、バンドル調整では、校正後のカメラパラメータ群{A}を用いて校正後の復元点群{RX}の再投影誤差Ewの総和を逐次求めることが行われるが、その具体的な手法は公知であるため、ここでは説明を省略する。
【0048】
S220では、S210で求められた校正された復元点群{RX}を用いて、画像中の各種物体までの3次元距離を表す距離情報を生成する。更に、この距離情報を、車載ネットワーク3を介して各車載装置に提供して本処理を終了する。
【0049】
[4.実験]
上述の位置計測装置1を用いて、3次元距離の測定を行った結果について説明する。
この実験では、
図3に示すように、2台のカメラ前方に非線形歪要因として車両のフロントガラスだけでなく、より複雑な屈折を発生させるため、フロントガラス前方にアクリル板を配置した。
【0050】
フロントガラス越しに撮影された画像の例を、
図7に示す。図示されているように、フロンとガラスによる光の屈折の影響により画像が歪んで観測される。特に周辺部で大きな歪が生じていることがわかる。アクリルガラスを加えた実験では、アクリルガラス越しに撮影された部位の画像には、更に大きな歪が生じたものとなる。
【0051】
実験では、併進台上にディスプレイを設置し、ディスプレイを共通平面H
1,H
2に相当する各位置に移動させてディスプレイ面上にテストパターンPを表示し、これをカメラに撮像させたものを復元対象として用いた。カメラパラメータを規定する多項式の次数を2とした場合の復元結果を
図8に示す。また、多項式の次数を3とした場合の復元結果を
図9に示す。
【0052】
図8、
図9には、上述の位置計測装置1に適用した手法(以下、本手法)により3次元復元を行った結果と、単焦点カメラモデルを使用する従来手法を用いて復元した結果と、真値と示す。本手法を用いることにより、2次多項式を用いた場合および3次多項式を用いた場合のいずれでも、従来手法よりも高い精度で3次元距離計測が実現されていることが確認できる。
【0053】
また、復元方法毎の平均復元誤差は、従来法の場合が4.30mm、本手法で2次元多項式を用いた場合が1.38mm、本手法で3次元多項式を用いた場合が1.18mmであった。つまり、多項式の次数を増加させることで、3次元距離計測の精度をより向上することが確認された。
【0054】
[5.効果]
以上詳述した本実施形態によれば、以下の効果が得られる。
(5a)本実施形態では、カメラモデルとして、非単焦点カメラモデルを利用しているため、撮影画像中に光線の屈折の影響が含まれる状況下においても、精度よく3次元距離計測を実現することができる。
【0055】
(5b)本実施形態では、非単焦点カメラモデルにおいて、復元空間を挟むように配置され、画像平面上の点を投影するために設定される二つの平面として、カメラ毎に異なる平面を定義するのではなく、全てのカメラに共通の平面H
1,H
2を定義している。これにより、全てのカメラの状態を、外部パラメータを用いることなく記述することができ、外部パラメータが必要な従来の非単焦点カメラモデルと比較して、カメラパラメータの数を削減することができる。
【0056】
(5c)本実施形態では、外部パラメータを用いる必要がないため、カメラパラメータの校正を簡略化することができ、校正の精度も向上させることができる。
(5d)本実施形態では、再投影誤差Ewが(7)式のように一意に定義されているため、復元点群{RX}およびカメラパラメータ群{A}の校正にバンドル調整を適用することができる。つまり、復元点群{RX}およびカメラパラメータ群{A}の校正を同時に実現することができるため、例えば、振動等でカメラの位置姿勢が変動したような場合でも、そのような変動を自動的に補正しながら3次元位置計測、ひいては3次元距離計測を継続して行うことができる。
【0057】
(5e)本実施形態では、画像平面G
nから共通平面H
jへの投影に使用する多項式の次数を増加させることで、より高い精度での3次元位置計測、ひいては3次元距離計測を実現することができる。例えば、3次多項式を用いた場合、行列形式では、(9)式のように表すことができる。
【0059】
[6.他の実施形態]
以上、本発明を実施するための形態について説明したが、本発明は上述の実施形態に限定されることなく、種々変形して実施することができる。
【0060】
(6a)上記実施形態では、カメラパラメータとして、(2)(3)式で定義されるもの、即ち、K次多項式による非線形変換と平面射影変換を組み合わせたものを用いたが、これに限定されるものではない。
【0061】
(6b)上記実施形態における1つの構成要素が有する複数の機能を、複数の構成要素によって実現したり、1つの構成要素が有する1つの機能を、複数の構成要素によって実現したりしてもよい。また、複数の構成要素が有する複数の機能を、1つの構成要素によって実現したり、複数の構成要素によって実現される1つの機能を、1つの構成要素によって実現したりしてもよい。また、上記実施形態の構成の一部を省略してもよい。また、上記実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加又は置換してもよい。なお、特許請求の範囲に記載の文言から特定される技術思想に含まれるあらゆる態様が本発明の実施形態である。
【0062】
(6c)本開示は、上述した位置計測装置の他、当該位置計測装置を構成要素とするシステム、当該位置計測装置としてコンピュータを機能させるためのプログラム、このプログラムを記録した半導体メモリ等の非遷移的実態的記録媒体、位置計測方法など、種々の形態で本発明を実現することもできる。