(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0017】
以下、図面を参照しながら、発明を実施するための形態を説明する。
[1.構成]
図1に示す位置計測装置1は、複数の撮影画像を用いて撮影画像中の各点までの3次元距離を検出する装置である。
【0018】
位置計測装置1は、乗用車等の車両に搭載され、画像取得部10と処理部20とを備える。また、位置計測装置1は、車載ネットワーク3を介して、図示しない他の車載装置と接続されている。
【0019】
画像取得部10は、カメラアレイを構成する複数のカメラを備える。カメラアレイとは、カメラを格子状に並べて配置したものであり、車載カメラ等で用いられる2台のカメラを水平方向に並べて配置した平行ステレオカメラもその一種として挙げられる。以下では、平行ステレオカメラを構成する1対のカメラ11,12を備えるものとして説明する。なお、カメラの数は2つに限定されるものではなく、3つ以上であってもよい。各カメラ11,12は、フロントガラスを介して車両の進行方向に位置する同一の撮影領域を含む領域を撮影するように車室内に配置される。つまり、画像取得部10は、互いに異なる視点から同一の撮影領域を含むように同時に撮影された複数の画像を取得して、処理部20に供給するように構成されている。
【0020】
処理部20は、CPU21と、RAM、ROM、フラッシュメモリ等の半導体メモリ(以下、メモリ22)と、を有する周知のマイクロコンピュータを中心に構成される。処理部20の各種機能は、CPU21が非遷移的実体的記録媒体に格納されたプログラムを実行することにより実現される。この例では、メモリ22が、プログラムを格納した非遷移的実体的記録媒体に該当する。また、このプログラムの実行により、プログラムに対応する方法が実行される。なお、非遷移的実体的記録媒体とは、記録媒体のうちの電磁波を除く意味である。また、処理部20を構成するマイクロコンピュータの数は1つでも複数でもよい。
【0021】
処理部20は、CPU21がプログラムを実行することで実現される機能として、距離演算処理を少なくとも実現する。距離演算処理の詳細については後述する。なお、処理部20が機能を実現する手法はソフトウェアに限るものではなく、その一部又は全部の要素を、論理回路やアナログ回路等を組み合わせたハードウェアを用いて実現してもよい。
【0022】
[2.カメラモデル]
ここで、距離演算処理の前提となる非単焦点カメラモデルについて説明する。非単焦点カメラモデルは、カメラ前方に配置されたガラス等で光線が屈折する状況下においても、屈折後の光線の経路を正確に記述するためのモデルである。なお、カメラモデルは、カメラが撮影を行った時刻毎に個別に設定される。ここでは1つの時刻におけるカメラモデルについて説明する。
【0023】
このカメラモデルでは、
図2に示すように、複数のカメラによる3次元点の2次元画像平面への投影を2枚の平面を用いて記述する。なお、
図2では、カメラが3台である場合を示す。ただし、カメラは3台に限るものではなく2台以上であればよい。投影用の平面として、復元対象となる空間を挟み込むように配置された2枚の共通平面H
1,H
2を仮定し、各カメラの画像平面G
nから各共通平面H
jへの非線形写像をそれぞれ定義する。ただし、n=1,2,3、j=1,2である。
【0024】
つまり、従来の単焦点カメラモデルでは、投影用の2枚の平面をカメラ毎に個別に定義していたが、ここでは、各カメラに共通の2枚の共通平面H
1,H
2を定義している点が大きく異なる。この共通平面H
1,H
2を用いることにより、カメラ間の関係を規定する外部パラメータが不要となる。
【0025】
このような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軸方向の座標(以下、垂直座標)を表すものとする。
【0027】
カメラの画像平面G
n上の点である画像点Mから共通平面H
1,H
2への各投影点X
1,X
2への変換においては、固定値であるZ
jを無視して考えることができる。ここでは、画像平面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のそれぞれについて個別に定義される。
【0029】
なお、この変換は、K次多項式による非線形変換と平面射影変換を組み合わせたものである。特にK=1の場合、上記変換は、平面射影変換と等しくなる。このような非線形K次多項式に平面射影変換を組み合わせることで、カメラの回転等を効果的に表現することができる。
【0030】
なお、カメラパラメータ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を求める。
【0031】
ここで、K=2の場合の変換式を行列形式にて表現したものを(3)式に示す。ただし、この式は、共通平面H
1,H
2のいずれか一方への変換式である。ここででは、式を見易くするため、共通平面H
jを特定するパラメータであるjの表記を省略している。また、水平座標X
1への変換に用いるカメラパラメータをa
klで表し、垂直座標X
2への変換に用いるカメラパラメータをb
klで表している。
【0033】
[3.距離演算処理]
次に、処理部20のCPU21が実行する距離演算処理を、
図5のフローチャートを用いて説明する。本処理は、予め設定された一定周期で、繰り返し実行される。
【0034】
なお、メモリ22には、距離演算処理のプログラムの他、事前に実験的に求められたカメラパラメータa
klの初期値が少なくとも記憶されている。ただし、カメラパラメータa
klは、カメラ毎にx
11,x
21,x
12,x
22を求めるため4組ずつ必要であり、二つのカメラ11,12を用いる本実施形態では合計8組のカメラパラメータが用意される。ただし、(3)式の形式で考えた場合は、カメラ毎に、(x
1j,x
2j)を求めるためのカメラパラメータが2組ずつ必要であり、カメラが二つの場合は、合計4組のカメラパラメータが用意されることになる。
【0035】
本処理が起動すると、処理部20は、まずS110にて、画像取得部10を構成するカメラ11,12から、それぞれ同じタイミングで撮影した画像(以下、撮影画像)を取得する。この際、処理部20は、撮影画像をメモリ22に格納するとともに、メモリ22に過去に格納された撮像画像を取得する。本処理では、例えば、直前の7時刻分の撮影画像をメモリ22から取得し、最新の撮影画像を含めて合計8時刻分の撮影画像を用いて処理を行う。
【0036】
S120では、各時刻、各カメラ11,12の撮影画像から、同一の3次元位置を表す点であると推定される対応点を抽出する。なお、対応点の抽出には、例えば、各点における画像特徴量を求め、その特徴量が類似する点を対応点として抽出する等、公知の方法を用いることができる。以下では、抽出された対応点の数をW個とする。Wは正整数を表す。
【0037】
S130では、S120で抽出された対応点の一つを、復元対象点として選択する。
S140では、各時刻において、各カメラ11,12から得られた撮影画像のうち、いずれか一つを対象画像として選択する。
【0038】
S150では、メモリ22に記憶されたカメラパラメータa
klを用いて、(2)式に従い、
図6に示すように、対象画像の画像平面G
n上の復元対象点M=(m
1,m
2)から、各共通平面H
jへの投影点X
j=(x
1j,x
2j)をそれぞれ算出する。
【0039】
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を算出する。
【0040】
S170では、S130にて選択された復元対象点に対するS140〜S160の処理を、全てのカメラ11,12からの撮影画像について実施したか否かを判断する。全て処理済みであればS180に進み、未処理のものがあれば、S140に戻って、S140〜S150の処理を繰り返す。
【0041】
S180では、一つの復元対象点について、カメラ毎に算出された合計N本の逆投影光線Lを用いて、復元対象点Mの3次元位置を表す復元点RXを算出する。3次元位置は、測定誤差がなければ、N本の逆投影光線Lの交点に位置する。しかし、実際には測定誤差により交点が存在しない場合がある。従って、(4)式により、N本の逆投影光線Lとの2乗距離の和が最小となる3次元点を復元点RXとして求める。
【0043】
なお、
図6に示すように、n番目のカメラの画像平面G
nから共通平面H
jへの投影点をX
jn、投影点X
jnを通る逆投影光線L
nの向きを表す単位ベクトルである光線ベクトルをB
nとする。このとき3次元空間中の任意の復元候補点X
rと光線Lとの距離を計算するため、復元候補点X
rを光線L
nに投影することで得られるLX
nを(5)式により計算する。また、光線ベクトルB
nは(6)式で表される。そして、(4)式に示すような全てのカメラから得られる光線L
nとの距離を最小とする復元候補点X
rが、最終的に復元される3次元点である復元点RXとなる。
【0045】
S190では、S120で抽出した全ての対応点について、S130〜S180の処理を実施したか否かを判断する。全ての対応点について処理を実施済みであればS200に進み、未処理の対応点があればS130に戻って、S130〜S180の処理を繰り返す。
【0046】
S200では、S180で算出されたW個の復元点を復元点群{RX}、復元点群{RX}の算出に用いた8組のカメラパラメータをカメラパラメータ群{A}で表すものとして、これら復元点群{RX}およびカメラパラメータ群{A}の校正を行う。これと共に、S210で、校正されたカメラパラメータ群{A}により、メモリ22に記憶されたカメラパラメータを更新する。
【0047】
具体的には、まず、W個の復元点のそれぞれについて、再投影誤差E
wを算出する。ただし、w=1,2,…,Wである。再投影誤差E
wは、
図6に示すように、w番目の復元点RXを、その算出に用いた光線ベクトルB
nに沿って各共通平面H
jに投影した点である再投影点R
jnを求め、(7)式を用いて算出する。つまり、時刻T毎、カメラ毎、かつ共通平面毎に求めた投影点X
jntと再投影点R
jntとの距離の総和を、再投影誤差E
wとしている。再投影誤差E
wは、投影点と再投影点との距離を、異なる時刻において得られた全ての投影点について積分した値であり、複数の光線に対する2乗距離を示す距離項である。
【0049】
また、バンドル調整では、(8)式に示すように、カメラパラメータa
klが時系列に従って変化することを制限するパラメータ項R
wも考慮する。
【0051】
カメラパラメータa
klには、上記(3)式に示すように、mの次元が2次以上となる高次の項、およびmの次元が1または0となる低次の項が含まれる。(8)式での係数αは、カメラパラメータa
klの全ての項に同じ値を乗じる係数ではなく、高次の項に予め設定された係数を乗じ、低次の項には係数よりも重みづけが小さく設定された他の係数を乗じた値を用いるように設定される。特に、本実施形態では、例えば、高次の項にはα=10000を採用し、低次の項にはα=0を採用する。
【0052】
ここで、フロントガラス等の屈折媒体による非線形な歪みによるカメラパラメータの変化は高次の項に現れやすく、カメラの運動(移動や回転)によるカメラパラメータの変化は低次の項に現れやすい傾向がある。このため、本実施形態では、屈折媒体による非線形な歪みをより考慮し、また、カメラの運動による影響を軽減するために、高次の項に乗じる係数に対して、低次の項には重みづけが小さな係数を乗じる。
【0053】
次に、(9)式に示すように、復元点群{RX}に属する全ての復元点についての再投影誤差E
wの総和と、カメラパラメータの変化の大きさを示すパラメータ項R
wとの和であるコストを最小化するように、復元点群{RX}およびカメラパラメータ群{A}の値を調整する、いわゆるバンドル調整を行う。つまり、バンドル調整では、校正後のカメラパラメータ群{A}を用いて校正後のコストを逐次求めることが行われるが、その具体的な手法は公知であるため、ここでは説明を省略する。
【0055】
S220では、S210で求められた校正された復元点群{RX}を用いて、画像中の各種物体までの3次元距離を表す距離情報を生成する。さらに、この距離情報を、車載ネットワーク3を介して各車載装置に提供して本処理を終了する。
【0056】
[4.実験1]
上述の位置計測装置1を用いて、3次元距離の計測を行った結果について説明する。この実験では、処理に利用する異なる時刻における撮影画像の組数、つまり、撮影画像の時刻数を変化させて、真の3次元点に対する平均二乗誤差を計測した。
【0057】
図7に示すように、撮影画像の時刻数が増加するにつれて、誤差は減少に向かう傾向があることが分かる。特に、時刻数が1の場合よりも、時刻数が複数であれば、誤差が大幅に減少することが分かる。
【0058】
[5.実験2]
(8)式にて示す正則化項の係数αを変更させて、真の3次元点に対する平均二乗誤差を計測した。なお、本実験では、低次の項に対する係数はα=0とし、高次の項に対する係数を変動させる。
図8に示すように、高次の項の係数をα=0、つまり、正則化項が存在しない場合の誤差と比較して、高次の項のみに対する重みを大きくし、α=1000以上とすると、誤差が小さくなることが分かる。
【0059】
この結果から、運動するカメラにおいて連続する時刻ではカメラパラメータの高次の項が大きく変化しないという仮定が有効であることが示された。よって、カメラパラメータの高次の項の変動に対してコストを設定する上記の処理は意義があると言える。
【0060】
ただし、αの値を大きくしすぎると、相対的に再投影誤差E
wのウエイトが小さくなり、復元点の校正がされにくくなるため、αの値は誤差が小さくなる効果が得られる程度に小さいほうが好ましい。例えば、α=1000−50000程度の範囲内であるとよい。
【0061】
[6.効果]
以上詳述した本実施形態によれば、以下の効果が得られる。
(6a)上記実施形態の位置計測装置1において、処理部20は、S110で、複数の異なる時刻にて、互いに異なる視点から同一の撮影領域を含むように同時に撮影された複数組の画像を取得する。また、処理部20は、S120で、異なる時刻毎に、各組の画像のそれぞれから、同一の3次元位置を表す画像平面上の点である対応点を検出する。
【0062】
また、処理部20は、S150で、異なる時刻毎に検出された対応点のそれぞれを、予め設定されたカメラパラメータを用いて、複数の共通平面のそれぞれに投影した投影点を求める。なお、カメラパラメータは、異なる時刻毎に、各組の画像についての各画像平面とワールド座標系の奥行きが異なる位置に設定される複数の共通平面との全ての組み合わせについて、画像平面から共通平面への非線形写像を得るための対応関係を示す。
【0063】
また、処理部20は、S160〜S180で、一つの画像平面上の対応点から求められる複数の共通平面上の各投影点を結ぶ線を光線として、異なる時刻毎に複数の画像平面のそれぞれについて求められる複数の光線に対する2乗距離が最小となる点を、対応点の3次元位置を表す復元点として求める。
【0064】
このような構成によれば、投影用の平面をカメラ毎に設定する従来の単焦点カメラモデルとは異なり、カメラ間の関係を記述する外部パラメータが不要となるため、復元点の算出に必要なパラメータを削減することができる。さらには、カメラパラメータとして、従来技術の内部パラメータに相当するものだけを扱えばよいため、カメラパラメータの校正も簡略化することができ、その結果、復元点の算出精度も向上させることができる。
【0065】
また、複数の時刻での画像を用いて復元点を求めるので、単一の時刻での画像を用いて復元点を求める構成と比較して、より復元点の算出精度も向上させることができる。なお、2乗距離に限らず、絶対値距離等の任意の距離が最小となる点を求めてもよい。
【0066】
(6b)本実施形態では、カメラモデルとして、非単焦点カメラモデルを利用している。
このような構成によれば、撮影画像中に光線の屈折の影響が含まれる状況下においても、精度よく3次元距離計測を実現することができる。
【0067】
(6c)本実施形態では、非単焦点カメラモデルにおいて、復元空間を挟むように配置され、画像平面上の点を投影するために設定される二つの平面として、カメラ毎に異なる平面を定義するのではなく、全てのカメラに共通の平面H
1,H
2を定義している。
【0068】
このような構成によれば、全てのカメラの状態を、外部パラメータを用いることなく記述することができ、外部パラメータが必要な従来の単焦点カメラモデルと比較して、カメラパラメータの数を削減することができる。
【0069】
(6d)上記実施形態において、処理部20は、S210で、カメラパラメータを校正前のカメラパラメータとして、該校正前のカメラパラメータおよび復元点に対してバンドル調整を行い、校正前のカメラパラメータを該バンドル調整によって得られる校正された後のカメラパラメータに更新する。
【0070】
本実施形態では、再投影誤差E
wが(7)式のように一意に定義されているため、復元点群{RX}およびカメラパラメータ群{A}の校正にバンドル調整を適用することができる。つまり、復元点群{RX}およびカメラパラメータ群{A}の校正を同時に実現することができる。このため、例えば、振動等でカメラの位置姿勢が変動したような場合でも、そのような変動を自動的に補正しながら3次元位置計測、ひいては3次元距離計測を継続して行うことができる。
【0071】
(6e)上記実施形態において、処理部20は、S210で、バンドル調整に用いる評価関数として、校正前の復元点に関する投影点と、該投影点を通る光線に沿って、校正後の復元点を共通平面に投影した再投影点との距離を、異なる時刻において得られた全ての投影点について積分した値を用いる。
【0072】
このような構成によれば、評価関数として投影点と再投影点との距離を異なる時刻において得られた全ての投影点について積分した値を用いるので、異なる時刻において得られた全ての投影点を考慮して復元点を最適化することができる。
【0073】
(6f)上記実施形態において、処理部20は、S210で、バンドル調整に用いる評価関数として、複数の光線に対する2乗距離を示す距離項と、時刻の遷移に伴うカメラパラメータの変動を示すパラメータ項とをコストとして表現したコスト関数を用いる。
【0074】
このような構成によれば、評価関数としてコスト関数を用いるので、コストを最小化する距離項およびパラメータ項を探索する簡素な処理で復元点およびカメラパラメータを求めることができる。
【0075】
(6g)上記実施形態において、処理部20は、S210で、パラメータ項として、高次の項および低次の項を備え、高次の項に予め設定された係数を乗じ、提示の項には係数よりも重みづけが小さく設定された他の係数を乗じた値を用いるように構成される。
【0076】
ここで、フロントガラス等の屈折媒体による非線形な歪みは高次の項に現れやすく、カメラの運動(移動や回転)による変動は低次の項に現れやすい傾向があることが分かった。このため、本実施形態では、屈折媒体による非線形な歪みをより考慮するために、高次の項に乗じる係数に対して、低次の項には重みづけが小さな係数を乗じている。
【0077】
このような構成によれば、カメラの運動による影響を軽減しつつ非線形な歪みの変化を考慮して校正を行う構成とすることができる。
(6h)上記実施形態において、処理部20は、S220で、復元点から画像上の各点の3次元距離を求めるように構成される。
【0078】
このような構成によれば、復元点から画像上の各点の3次元距離を求めることができる。
[7.他の実施形態]
以上、本発明を実施するための形態について説明したが、本発明は上述の実施形態に限定されることなく、種々変形して実施することができる。
【0079】
(7a)上記実施形態では、カメラパラメータとして、(2)(3)式で定義されるもの、すなわち、K次多項式による非線形変換と平面射影変換を組み合わせたものを用いたが、これに限定されるものではない。
【0080】
(7b)上記実施形態では、バンドル調整に用いる評価関数を(9)式で定義したが、例えば、下記の(10)式を用いてもよい。
【0082】
(10)式は、未知点でのコストを示す項、基底点でのコストを示す項、および前述の正則化項のコストを示す項で構成される。
未知点は、SHIFT法等によって撮影画像で対応する点の画像座標、つまり対応点が分かっている点であって3次元位置が未知な点を示す。基底点は、未知点に対してレーザレーダ等を組み合わせることで3次元位置が既知となった点を示す。基底点は、多数存在し、かつ基底点同士の奥行きが異なっていることが望ましい。
【0083】
未知点でのコストは、復元点の位置が不明であるため、予め準備された規定値を用いるか、或いは状況に応じた近似値を用いるなど、任意の手法で求められる。基底点でのコストは上記実施形態と同様の手法が採用できる。
【0084】
(7c)上記実施形態における1つの構成要素が有する複数の機能を、複数の構成要素によって実現したり、1つの構成要素が有する1つの機能を、複数の構成要素によって実現したりしてもよい。また、複数の構成要素が有する複数の機能を、1つの構成要素によって実現したり、複数の構成要素によって実現される1つの機能を、1つの構成要素によって実現したりしてもよい。また、上記実施形態の構成の一部を省略してもよい。また、上記実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加又は置換してもよい。なお、特許請求の範囲に記載の文言から特定される技術思想に含まれるあらゆる態様が本発明の実施形態である。
【0085】
(7d)本開示は、上述した位置計測装置の他、当該位置計測装置を構成要素とするシステム、当該位置計測装置としてコンピュータを機能させるためのプログラム、このプログラムを記録した半導体メモリ等の非遷移的実態的記録媒体、位置計測方法など、種々の形態で本発明を実現することもできる。
【0086】
[8.実施形態の構成と本開示との対応関係]
上記実施形態において処理部20のCPU21が実行する処理のうちのS110の処理は本開示でいう画像取得部に相当し、S120の処理は本開示でいう対応検出部に相当する。また、上記実施形態においてS150の処理は本開示でいう投影点算出部に相当する。また、上記実施形態においてS160〜S180の処理は本開示でいう復元点算出部に相当し、S210の処理は本開示でいう校正部に相当する。また、上記実施形態においてS220の処理は本開示でいう距離算出部に相当する。