【解決手段】複数のカメラ映像を入力とし、車両情報部と、空間生成部と、画像変換部と、カメラ情報部とを備え、車両情報部から取得した走行状況の情報に応じて、空間生成部がカメラで撮影可能な範囲の周囲空間を生成し、画像変換部がカメラの画像に基づく画像を作成して、生成された空間に投射する。また、画像変換部はカメラ情報部が設定した仮想カメラ位置から見た複数のカメラの画像の合成画像を、仮想カメラの位置或いは画像合成時のブレンド率を変化させながら作成する。
被写体を撮影するための複数のカメラと、当該の複数のカメラが撮影した映像を合成する映像合成装置と、当該の映像合成装置が合成して生成した画像を表示するモニタとを有する映像表示システムであって、
前記映像合成装置は、
前記映像表示システムを搭載した車両に係る車両情報を供給され当該の車両情報に基づいて3次元空間上に前記映像合成装置が生成する合成映像の視点を定め当該の視点に応じた空間を生成する空間生成部と、
当該の空間生成部が生成した空間に応じて前記複数のカメラが撮像した映像を合成した合成画像を生成する画像変換部と、
当該の画像変換部が生成した前記合成画像を2次元で表示するようエンコードして前記モニタに供給するエンコード部と、
前記映像合成装置の動作を制御する制御部
を有することを特徴とする映像表示システム。
被写体を撮影するための複数のカメラと、当該の複数のカメラが撮影した映像を合成する映像合成装置と、当該の映像合成装置が合成して生成した画像を表示するモニタとを有する映像表示システムにおける映像合成方法であって、
前記映像表示システムを搭載した車両に係る車両情報を供給され当該の車両情報に基づいて3次元空間上に前記映像合成装置が生成する合成映像の視点を定め、
当該の視点に応じた空間を生成し、
当該の空間に応じて前記複数のカメラが撮像した映像を合成した合成画像を生成し、
当該の合成画像を2次元で表示するようエンコードし、
エンコードされた合成画像を表示する
ことを特徴とする映像合成方法。
【発明を実施するための形態】
【0015】
以下、実施例について図面を参照しながら説明する。
図1は、本実施例における映像合成装置と映像表示システムを示すブロック図であって、映像合成装置100と、これに対して、被写体を撮像するための複数(n個)のカメラ101と画像を表示するためのモニタ111が接続された映像システムを示す。
【0016】
映像合成装置100では、CPU(Central Control Unit)108が全体の動作を制御する。この動作制御に応じて、例えば、車両情報104が有する情報を利用して、自車周辺の仮想的な立体空間を空間生成部105が形成する。画像変換部106は、カメラ101から、図示を省略する入力部を介して映像合成装置100に入力される画像をデコード部102にてデコードした画像を、空間生成部105が形成した立体空間上にマッピングする。また、画像変換部106は、カメラ情報部107が設定した仮想カメラ位置(仮想視点の位置)と角度(仮想視点からの仮想的な視線方向)から見た場合の画像を作成して、エンコード部110を介してモニタ111に出力する。
【0017】
この際に、バス103を介してメモリ部109と接続された画像変換部106は、出力される映像データに対して、後記するような変形処理などを施す。この変形処理は映像を3次元的に処理するが、エンコード部110は3次元的に処理された映像を、モニタ111で2次元的に表示できるようエンコードして、モニタ111に出力する。
なお、以下ではCPU108を制御部とも呼ぶ。
【0018】
車両情報104は、CAN(Controller Area Network)やFlexRayなどを介して得られる車体制御情報などであり、車両の進行方向、ハンドルの角度、或いは車速などの情報を有する。空間生成部105は、車両情報や知識ベースの情報に基づいて自車周辺の立体空間を推測して、空間情報を生成する。さらに空間生成部105は、走行中の速度情報や進行方向情報を参照して道路と推定される平面の範囲(例えば自車周辺の半径Dmの円周内を範囲とする)と、当該の平面以外の空間をどのような形で形成するのかを決定し、平面や球などの組合せで3次元空間上にオブジェクトを配置する。このオブジェクトは自車周辺の空間の形を表している。
【0019】
画像変換部106は、空間生成部105が配置した3次元オブジェクト面に、車に搭載したカメラ101が撮影した画像を貼り付け、これを仮想的な視点から見た場合の合成画像に変換する。これにより、映像合成装置100は、2次元のカメラ画像から擬似的な3次元空間を作り出すことができる。実際には、オブジェクト面に貼り付けられた画像は、視点が異なれば異なる画像としてユーザに見えるようにするため、3次元空間上に仮想的に配置した仮想カメラ位置から見た画像を計算して貼り付けることになる。
【0020】
カメラ情報部107は、車に搭載したそれぞれのカメラ101の3次元空間座標系の位置情報(座標情報)、角度情報、レンズの歪係数、焦点距離、或いはセンサの有効画素サイズ等の情報を有する。画像変換部106が、画像の歪補正、幾何変換などの画像変換を行う際に当該の情報を用いてもよい。カメラ情報部107は、自車のある位置を基準(原点)として、座標情報(Xi、Yi、Zi)と各軸に対する角度情報(αi、βi、γi)を有している(0≦i≦n)。
【0021】
歪係数に関しては、カメラ画像中心からの距離に応じた歪の度合いを示す係数や、レンズの入射角と被写体の長さの関係を示す情報などを有している。後記するように、本実施例においてはカメラ101に魚眼レンズを用いることがある。魚眼レンズの周辺部は中心部と比較して歪が大きいため、これを補正する際に前記歪係数が必要となる。
さらに、カメラ情報部107は、空間生成部105が形成した3次元空間において、仮想的に設定した位置のカメラから見た画像を生成するために、仮想カメラの座標(Xv、Yv、Zv)の情報と各軸に対する角度(αv、βv、γv)の情報も有する。
【0022】
画像変換部106は、デコード部102でデコードされたカメラ101のカメラ映像に対して、画像処理を行う。カメラ情報部107から供給されたレンズ歪係数の情報に基づきレンズ歪の画像補正処理を行い、さらに空間生成部105が生成したオブジェクト面に、カメラ撮影画像を行列変換で座標変換して変形した画像を張り付ける処理、以下で述べるようなカメラ画像の繋ぎ目近辺の画像のブレンド合成処理などを行う。
本実施例は、車両の周囲の擬似3次元画像の生成に関して記載しているが、車両に限らず複数の監視カメラの撮影画像に関して、擬似3次元画像を作成する場合にも適用できる。
【0023】
図2は、本実施例における撮影カメラ映像の画素を仮想カメラから見た画素に座標変換する処理を説明する図である。
図2では、実際の車載カメラ101で撮影された画像201の画素を、カメラ101に対するカメラ座標系Xp、Yp、Zpにおける点P(xp,yp,zp)と表している。なお、ここではカメラ座標系に関して、例えばカメラに対する奥行方向をZ、撮像した画像の水平方向をX、垂直方向をYと表している。この点Pは、空間内で共通に用いられるWorld座標系Xw、Yw、Zwにおける点W(xw,yw,zw)に相当する。このWorld座標系の点Wを、ある仮想の位置に配置した仮想カメラ202から撮影した場合の画像203の画素は、仮想カメラ202に対するカメラ座標系Xv、Yv、Zvの点V(xv,yv,zv)に相当する。つまり、ある仮想の位置から見た画像を生成するために、次のような座標変換を行う。
【0024】
実際のカメラ101に対するカメラ座標系の点PとWorld座標の点Wの関係は、4×4の透視投影変換行列Mpを用い、(式1)により示される。
【0026】
また、仮想カメラ202に対するカメラ座標系の点VとWorld座標系の点Wの関係は、透視投影変換行列Mvを用い、(式2)により示される。
【0028】
但し、Mp、Mvは(式3)に示すように、3×3の回転行列Rと、3×1の平行移動行列Tを含んでいる。
【0030】
(式1)と(式2)を用いると、実カメラ座標系の点Pと仮想カメラ座標の点Vの関係が(式4)で求められ、生成したい仮想カメラの画素値を、実際のカメラで撮影した画素値から計算して求めることができる。
【0032】
World座標系上のカメラの設置位置と設置角度と、カメラの内部パラメータである焦点距離やセンサの有効画素サイズ等の情報を用いて、MvとMpの逆行列を掛け合わせた4×4の行列を算出する。これらの式を用いて画像変換部106は、実際のカメラ101の画像を、ある位置に配置した仮想カメラから見た画像に変換する。
【0033】
以下で述べる実施例においては、複数の実際のカメラを用いる場合がある。しかし、
図2で示すような、実際のカメラ101が1個だけである場合も、本発明の範疇にある。カメラ101に例えば魚眼レンズを使用すると、目的によっては1個のカメラで充分な画角をカバーできる。例えば、
図2乃至
図7、
図16A乃至
図18Cに係る実施例は、カメラが1個である場合にも適用される。
【0034】
図3Aは、本実施例における車両周辺に設定される空間の第1の見取り図であり、車両前方中央付近(Xc,Yc,Zc)の位置にカメラ301を各軸に対する角度(α,β,γ)に設置されている車両300が道路303の上にある場合を示す。車両300の前方に立体物302があり、その木よりも遠くに仮想的な球の曲面304が配置されている。
【0035】
図3Bは、
図3Aの車両周辺に設定される空間を仮想カメラ305から見た図である。
なお、以下では実際のカメラに対しては301、仮想カメラに対しては305の符号を付すが、前者は
図1及び
図2の101、後者は
図2の202と同様であって良い。
カメラ301が撮影した映像は、
図3Bが示すように前記した空間生成部105が生成した空間上に投影される。カメラ301と立体物302とを結ぶ直線上に、いびつに変形した立体物302が投影されてしまう。道路(地面)303などの平らなものは、車両周囲の投影面を広げることで、遠近感が生成され普段見慣れた距離感の空間を形成できるが、立体物302がある場合には、それが投影面の中の平面303の部分にテクスチャとして貼り付けられ、立体感が失われてしまう。
【0036】
図4Aは、本実施例における車両周辺に設定される空間の第2の見取り図であり、
図3Aと同様に設定した空間で、車両300の前方に仮想的な球の曲面304が配置されているが、
図3Aよりも曲面304は立体物302の近くに配置されている。車両300と立体物302の距離は
図3Aと同様とする。
【0037】
図4Bは、
図4Aの車両周辺に設定される空間を仮想カメラ305から見た図である。この場合には、立体物302のなかで投影面の中の平面303の部分に貼り付けられる面積は少なく、
図3Aで示した場合よりも立体物302が自然に見える。
図3A乃至
図4Bで示したように、設定する投影面の中の平面303の広さに応じて、車両周囲の距離感や、立体物の見え方が大きく変わってくる。つまり、自車周辺に存在するものの距離感を正確に見たい場合には、設定する領域を広くするなどの工夫が可能である。このように、周囲のオブジェクト空間を再現し、そのオブジェクト表面に撮影画像をテクスチャとしてマッピングすることにより、2次元の画像を組合せて、周囲全体の擬似的な3次元空間を形成することができる。
【0038】
本例では、計算量削減のために、単純な平面と球面で空間を表現しているが、画像の特徴量を利用して、特徴量による統計的なクラスタリング処理を行うことで、地面(道路)と建物、壁、ガードレール、空など空間的な位置関係を考慮して空間上にオブジェクトを配置して、そこに映像を合成しても良く、これにより、周囲の正確な3次元空間が形成可能となる。
【0039】
図5は、本実施例における車両情報に応じて投影面の形状を変形し視点を変化させて撮影画像を投影するための動作フロー図である。以下、Sを付したステップ番号に応じて動作フローを説明する。S500で動作フローが開始される。
S501では、空間生成部105はCPU108の指示に応じて、CANやFlexRayのネットワークなどを介して、車両の進行方向、ハンドルの角度、或いは車速などの車両情報104を取得する。ここで取得する情報の入手経路は限定されることなく、カーナビやスマートフォンなどの情報端末が独自に取得したGPS情報を元にした車速情報を利用し、或いは車内に設置したカメラからハンドル角度を算出するなど様々な入手方法が考えられる。
図5の例は、車速を利用した動作シーケンス例であり、車速に応じて、設定する車両周辺の空間情報と仮想カメラの位置を変化させる例を記載している。
【0040】
図6は、本実施例における走行状況による仮想カメラの位置と角度を示す見取り図である。仮想カメラ305は、車両300の進行方向に対して、車両300を例えば角度A(前側)から角度G(後側)の間のいずれかの角度(方向)と、例えば+α2から−α2の間のいずれかの位置(距離)に、例えば車速に応じて設定される。仮想カメラ305の位置と角度は、
図6に示す例に限定されないことはもちろんである。
【0041】
図5に戻って説明を続ける。S502において、空間生成部105はプリセットする空間として、道路を想定した平面オブジェクトと、あるWorld座標の点を中心とした自車を包むある半径の球のオブジェクトを作成する。画像変換部106は、その平面と球のオブジェクトの組合せを、空間内のある位置と角度から見るように設定された仮想カメラの位置を読み込む。
【0042】
S503において、CPU108は現在の車速Vを所定の車速V
0と比較する。現在の車速VがV
0よりも小さい場合には(S503のNo)、S504において、画像変換部106は空間生成部105がS502で作成したプリセット空間を利用して、そこに読み込んだ仮想カメラ視点での画像を投影する。車速がV
0よりも大きい場合には(S503のYes)、ある速度の関数であるf(V
0)で算出される半径Rを求め、S505において、画像変換部106は空間生成部105がS502で作成したプリセットの平面と、球の半径を速度V
0に関連したRに変更したオブジェクトを作成する。
【0043】
S506では、画像変換部106は車速によって決まる仮想カメラの位置と角度を算出する。即ち、
図6における仮想カメラの位置が、例えば+α2から−α2の間のいずれかに設定され、角度が例えばAからGの間のいずれかに設定される。S507では、画像変換部106は空間生成部105がS505で作成した平面オブジェクトと球オブジェクトに、画像変換部106がS506で算出した仮想カメラ位置から見た2次元画像に変換し、モニタ111に表示することで擬似的な3次元空間を2次元表示で表現する。
【0044】
S504又はS507における処理を終了した後は、例えば、所定の時間が経過した後に再度S501からのフローを行うと良い。或いは、車速、走行方向が変化するといった状況の変化をトリガにして再度S501からのフローを行っても良い。後者の場合、所定の時間ごとに状況の変化の有無を検出すると良い。
【0045】
速度の関数f(V
0)は、頻繁に走行する一般の道路を参考に道路の直進性や幅などから、速度と平面の関係を最適な関数で設定する。例えば、車速が速い場合には、近くに立体物は少なく、近くの立体物の距離感や対象物を視認する必要性は低くなる。このため、車両周辺に平面を広く設定する必要がなく、
図4Aで示すように、球面を車両に近づけてカメラ映像を投影する。これにより、カメラで撮影した映像に近い映像が作成した空間にマッピングされ、近くよりも遠くを視認し易くなる。球面の半径は、例えばf(V)=α/Vのような式で表され、車速Vの上昇とともに減少する。また低速で走行している場合には、一般的な道路情報から作成したS502のプリセットの平面のサイズとなり、平坦と推定される道路は、作成した平面に張りつけられ、自車の周辺に遠近感のある自然な距離感の映像が作成される。
【0046】
図6に関する説明を再度行う。
図6においては車両300を側面方向から描いており、ある円弧上における位置と角度を変えながら、仮想カメラ305を移動させている。車両300が停止状態の場合は、円弧上の点Dに仮想カメラを配置し、前方に走り出すと速度に応じてD→E→F→Gと円弧上に仮想カメラを移動させる。これにより、停止時は自車を真上から見て、自車周辺に歩行者や障害物がないかを確認でき、前方に走り始めると、速度が速くなる程前方が広い範囲で見える画像となるように、後方斜め後ろの位置からの仮想カメラ305の位置と角度を設定できる。自車が後方に走り始めると、速度に応じてD→C→B→Aと円弧上に仮想カメラを移動させる。これにより、速度が速くなる程後方の画像が見えるようになる。
【0047】
また、ある方向に仮想カメラ305を固定した場合に、車速に応じて仮想カメラの高さを変化させることも効果がある。自車が後方にバックしている際に、角度Bに設定された仮想カメラ305の法線方向の高さを速度に応じて変化させる。ある速度ではα0の高さとし、速度が速くなるにつれ、+α1、+α2と変化させ、より高い位置から広い範囲の画像を見られるように設定する。ある速度以下で低速走行している場合には、速度が遅くなるにつれて、−α1、−α2と変化させ、自車周辺の詳細の画像を表示させる。後に
図7に示すように、速度に応じた仮想カメラの位置と角度の設定テーブルを持っていても良く、テーブル化しておくことで、計算量を減らすことができるメリットがある。
【0048】
本例では自車を側面方向から見た例で記載しているが、3次元空間を表す3軸で同様に仮想カメラの位置と角度を変化しても良い。また、自車の速度による仮想カメラ位置の変化を示しているが、カメラで撮像した画像を認識して、他車の速度を検出して他車の速度に応じて仮想カメラの位置を変化させても良い。例えば、隣を走行中の他車が自車よりも高速で走行中であれば、他車の速度に合わせて円弧上のカメラの位置を変化させる。
【0049】
図7は、本実施例における速度に応じた仮想カメラの位置と角度の設定テーブルの図を示す。
例えば、進行方向が前方であり速度Sn(km/h)以上で走行中であれば、前方の画像を見られるように、
図6のFの位置で、さらに広範囲な領域を見られるように自車から離れた位置+α2に仮想カメラを設定する。運転者の好みや習熟度に合わせてこのような設定リストを作成しても良い。これらにより、走行状況に応じて、最適な仮想カメラ位置からの画像を提供することができる。本実施例においては、実際のカメラが1個、又は複数個のいずれであっても、状況に応じて仮想カメラの視点を変更できることを、一つの特徴としている。
【0050】
図8は、本実施例における画像を投影するオブジェクトの配置を示す図である。
先の
図3A乃至
図4Bは、例えば道路を表す平面のオブジェクトと、World座標のある点を中心とした自車を囲む大きな1つの球オブジェクトの組み合わせで、周囲の3次元空間を形成した例を示した。
図8は、自車の前後左右に4つのカメラ301a乃至301dを設置した際に、例えば道路を表す平面のオブジェクト802と、カメラ毎に球面のオブジェクトを有する3次元空間801a乃至801dを形成する例を示す。例えば、カメラ301aが自車の前方を撮影するように配置され、カメラ301bが自車の後方を撮影するように配置され、カメラ301cが自車の左方を撮影するように配置され、カメラ301dが自車の右方を撮影するように配置されているとする。車に搭載される複数のカメラ301a乃至301dは別々の位置に配置されるため、道路までの高さ或いは角度が異なり、画像の縮尺率もカメラ毎に異なる。それらをある1点を中心とした1つの球面オブジェクトに投影すると、各カメラ位置と角度に応じて画像を調整した上で投影する必要があり、計算が複雑になってしまう。これに対して
図8においては、カメラ毎に最適な球面オブジェクト801a乃至801dを設定し、各カメラ画像を各カメラ301a乃至301dに対応した球面オブジェクト801a乃至801dに投影することで、歪の少ない画像表現を可能としている。
【0051】
図9は、本実施例における
図8の空間を真上から見た図である。
各カメラ301a乃至301dに対して設定された球面オブジェクト801a乃至801dは、道路を想定した平面と接する部分で切り取られ、平面の形状は上下左右に少し膨らんだ形となる(実線)。膨らんだ形を1つの球面オブジェクト803(破線)で表現した場合に発生する歪を矢印で示している。例えば矢印の間隔が球面オブジェクト801bと球面オブジェクト803とで異なる分だけ歪を発生する。即ち、同じ大きさの物体であっても、カメラ301a(301b)と301c(301d)のいずれで撮像されたかに応じて、異なる大きさで球面オブジェクト803に投影される。
【0052】
これは車体の大きさにも関係し、1つの球面オブジェクト803で3次元空間を形成した場合には、前後方向により大きい歪が生じることを示している。このように、車体の形状によっては、1つの球面オブジェクト803で3次元空間を表現することが難しい場合がある。このため、各カメラ301a乃至301dに対して最適な球面オブジェクトを有するような3次元空間形成が有効な場合がある。この場合、実際のカメラ及び仮想カメラの各々から平面に垂線を下ろした際の位置の違いを考慮しながら、図中の矢印の方向が球面オブジェクト803の球面上の点に至るように補正する。これにより、1つの球面オブジェクト803で画像の歪の少ない3次元空間を表現できる。
【0053】
図10は、本実施例において車両の進行方向とハンドル角に応じて仮想カメラの位置を変更する場合を説明する図である。
1001は平面と球で形成された3次元空間である。自車300のCPU108が前進方向で右にハンドルを切っているという情報1002を、車両情報104より取得した際には、自車の右前の周辺がより良く見えるように、前方の仮想カメラが自車300の前方右側の道路を向くように、仮想カメラ305aを配置する。また、自車が後進方向で右にハンドルを切っているという情報1003を、車両情報104より取得した際には、自車の左後ろの周辺がより見えるように、仮想カメラが自車300の後方左側の道路を向くように、仮想カメラ305dを配置する。ここで仮想カメラ305aと305dに対して別の符号を付したが、仮想カメラ、或いは実際のカメラが同時に2個存在する必要はなく、1個の位置と角度を変化させながら使用しても良い。
【0054】
これにより、例えば、自車300がこれらから進む右斜め前方向に歩行者1004が居た場合には、仮想カメラ305aで見た画像の方が、歩行者、或いは危険な事象の発見をし易くなるメリットがある。このように、車速のみでなく、進行方向とハンドル角を利用して仮想カメラの位置や角度を変更することも可能である。このために、
図7で示したリストにハンドル角の情報を付け加えて保持しても良い。
【0055】
図11は、本実施例において平面と球面に複数のカメラ画像を座標変換して投射する領域を示す図である。
3次元空間としては、平面オブジェクト802と球面オブジェクト801で構成されており、仮想カメラ305から見た映像が投影される。
図11では4個の実際のカメラ301a乃至301dが存在するが、それぞれのカメラの画像は同様に投影されるので、カメラ301aの画像の投影に関して説明する。カメラ301aの画像は、平面802と球面801内部の太線で囲まれた801eの領域に投影される。同様にカメラ301bの画像は、平面802と球面801内部の801fの領域に投影され、カメラ301cの画像は平面802と球面801内部の801gの領域に投影され、カメラ301dの画像は平面802と球面801内部の801hの領域に投影される。801eと801gとが重なる領域801eg(斜め斜線領域)と、801eと801hとが領域の重なる部分801eh(斜め斜線領域)は、複数のカメラが同じ場所を撮影している領域となる。つまり、この領域が隣り合う2つのカメラ映像を合成(ブレンド)する領域となる。
【0056】
801egの領域を例にすると、この合成する領域に関し、平面802と球面801が交わる面にできる円の中心点1101を中心に、図中のAからBに向けて図中の角度(方位角)θに応じてブレンド率を変更することを考える。Aに近い部分は、カメラ301cに近い部分であるので、カメラ301cの画像のブレンド率を高め、Bに近い部分は、カメラ301aに近い部分であるので、カメラ301aの画像のブレンド率を高めるように、ブレンド率を変化させる。
【0057】
つまり、801egの領域においては、Aと中心点1101とを結ぶ球面上の線における画素は、カメラ301cで撮影された画像を100%利用し、Bと中心点1101を結ぶ球面上の線における画素は、カメラ301aで撮影された画像を100%利用し、AとBの間の中点と中心点1101を結ぶ球面上の線における画素は、カメラ301aとカメラ301cの画素を50%ずつ利用して合成する。領域801ehに関しても、カメラ301aとカメラ301dの画像を同様に合成する。図中の領域801fgについてはカメラ301bと301cの、領域801fhについてはカメラ301bと301dの画像を同様に合成する。これにより、4つのカメラ301a乃至301dの画像を滑らかに繋ぐことができ、自車の全周囲を表現できる。
【0058】
本例では、実際のカメラの位置から撮影される範囲が決まるため、合成する領域も一意に決まるので、合成する領域の境界領域は一定である。一方で、合成する領域の境界領域を動的に変化させて合成させても良い。具体的には、画像変換部106が画像認識機能を有し、各カメラ画像の画像特徴量を算出する。隣り合うカメラ画像の重なり合う部分で、双方とも画像特徴量が少ない場所を合成する領域の境界領域とする。画像特徴量が多い場所を境界領域にするとエッジ等が当該の場所に発生して、合成した際の境界が目立つので、これを防止することができる。画像上であまり特徴のない空や均一に塗られた壁などが映っている領域を境界にすることで、当該の境界を目立たせなくすることが可能である。
【0059】
この考え方を利用すると、前方の画像を作成する場合は、車サイド両端の延長線上に合成する際の境界を設けることが効果的な場合がある。つまり、自車は前方に走行中であることから、車前方には道路か空が広がっている可能性があるため、その画像には画像特徴量が少ない可能性がある。その場所を合成する際の境界にすることで、境界のエッジが目立たないように合成することができる。ここで、画像特徴量としては、Sobelやラプラシアンなどの輪郭抽出などの一般的なエッジ抽出手法やSIFT(Scale-Invariant Feature Transform)やHOG(Histograms of Oriented Gradients)などによる画像の特徴量抽出手法などを利用する。
【0060】
構成要素を簡素化するためには、実際のカメラの数は少ない方が望ましい。このためにカメラのレンズは魚眼レンズとし、一台のカメラがカバーする画角を広くする方法がある。しかし、魚眼レンズを使用しても車両周辺の全画角をカバーするには、例えば
図11で示すように複数台のカメラが必要となる。
図11においては、複数台のカメラがカバーする画角に重なり合う部分がある時に、複数台のカメラの画像を利用して、当該の部分の画像を歪が低減されるように合成して生成することに、一つの特徴がある。
【0061】
図12Aと
図12Bは、
図11のブレンド領域のブレンド率の第1及び第2の例を示す図である。
図12Aは、線形でブレンド率を変化させる例を示す。
図11の801egの領域に関して、θ=θmax、即ち
図11のAでは、カメラ301cは点線で示すようにブレンド率1.0、カメラ301aは実線で示すようにブレンド率を0.0とし、θに応じて線形に変化し、中心角度θmax/2を境界に、大小関係が逆転していくようにブレンド率を変化させる。
図12Bは、ガウシアンカーブに近い形でブレンド率を変化させる例を示す。ガウシアンカーブに近い形の方が、より近いカメラのブレンド率を高くできる効果がある。
【0062】
本例では、θmax/2の地点で折り返すようなブレンド率のグラフになっているが、折り返す地点を左右にずらしても良い。カメラの設置位置によっては、重なる領域でどちらかのカメラの歪みが少なくきれいに見える場合があるので、その場合には、歪みが少ない方のカメラのブレンド率が全体として高くなるように、折り返し点をずらすとより高画質の画像が実現できる。
【0063】
図13Aは、本実施例における実際のカメラと仮想カメラの配置例を示す見取り図であり、仮想カメラ305の光軸方向が
図11のブレンド領域801ehの方向を向く場合を示している。
図13Bは、
図13Aの実際のカメラと仮想カメラの法線方向を示す図である。この場合、
図13Aのブレンド領域801ehに関しては、カメラ301aの光軸方向よりもカメラ301dの光軸方向が仮想カメラ305の光軸方向に近いので、カメラ301dの画像を優先的に使った方が画像は自然に見えることとなる。つまり、ブレンド領域801ehに表示する画像を合成する際に、先の
図12A及び
図12Bで示したようにブレンド率をブレンド領域の中央で50%とするよりも、カメラ301dの画像をより優先的に使うように合成する方がより自然な画像を作ることができる。
【0064】
図13Cは、
図13Aにおける仮想カメラの角度に応じたブレンド領域のブレンド率を示す図である。カメラ301aの画像とカメラ301dの画像のブレンド率が50%になる位置を、仮想カメラの光軸方向と各カメラの光軸方向とに基づいて決定する。例えば、
図13Cの関数F(θ1,θ2)は、
図13Bに示す、仮想カメラの光軸方向に対応する方位角とカメラ301aの光軸方向に対応する方位角θ1と、仮想カメラの光軸方向に対応する方位角とカメラ301dの光軸方向に対応する方位角θ2とを変数とする関数である。
【0065】
つまり、本実施例では、実際に搭載されているカメラの光軸方向の角度と、仮想カメラの光軸方向の角度に応じて、ブレンドする領域のブレンド方法を変更する。これにより、ブレンド領域を実際のカメラで、仮想カメラから見てより自然に見える画像を多く利用したブレンドが可能になり、ブレンド領域の高画質化が期待できる。これにより、
図13Aに配置した人物1004は、カメラ301dで撮影された画像がより多く使われ、より自然な画像がブレンドされるため、ドライバーによる歩行者発見や危険発見を早めることができる。
【0066】
なお、本実施例における、ブレンド率を変化させる方法は
図13Cの例に限られない。例えば、ブレンド率の変化の別の例として、
図13Dの例を説明する。
図13Dの例は、
図13Cと同様にカメラ301aとカメラ301dの映像の重なる領域を対象とし、方位角θを基準とするものである。
図13Dの例では、ブレンド率が0.5となる方位角θ_mに加えて、方位角θ_lおよびθ_hが設定されている。ここで、方位角θ_lまたはθ_hの位置よりも一方のカメラの光軸に対応する方位角に近い領域では、他方のカメラの映像のブレンド率を0とする。ここで、
図13Dの例では、ブレンド率が0.5となる方位角θ_mのみならず、一方のカメラの映像のブレンド率が0となる方位角θ_lおよびθ_hを、いずれも
図13Bのθ1,θ2の関数とする。これにより、仮想カメラの光軸方向と各カメラの光軸方向とに基づいて、各カメラの映像のブレンドの優先度を変更設定できるうえ、各カメラの映像が合成映像に影響する範囲についてもあわせて変更することが可能となる。例えば、仮想カメラの光軸方向に対応する方位角が、カメラ301dの光軸方向に対応する方位角よりもカメラ301aの光軸方向に対応する方位角に近い場合に、方位角θ_m、方位角θ_lおよびθ_hがいずれも矢印Aの方向にシフトするような関数を用いればよい。これにより、仮想カメラの光軸方向に近い光軸方向を有するカメラ301aの画像が優先的にブレンドされる。逆に、仮想カメラの光軸方向に対応する方位角が、カメラ301aの光軸方向に対応する方位角よりもカメラ301dの光軸方向に対応する方位角に近い場合には、方位角θ_m、方位角θ_lおよびθ_hがいずれも矢印Dの方向にシフトするような関数を用いればよい。
【0067】
また、本実施例のブレンド率の変化の別の例として、
図13Eの例を用いてもよい。
図13Eの例は、
図13Dの例から、方位角θ_lと方位角θ_hの間のブレンド率の変化を直線的ではなく曲線的にしたものである。その他の部分は、仮想カメラの光軸方向に対応する方位角に応じた関数の設定方法も含めて
図13Dと同様であるため、詳細な説明は省略する。
【0068】
また、上述の
図13A乃至Eの例では、ブレンド率の変更を、平面802に平行な2つの直線がなす角である方位角を基準に行っていた。これに替えてまたはこれに加えて、ブレンド率の変更を、平面802に垂直な平面に平行な2つの直線がなす角である仰角を基準に行なってもいい。
【0069】
具体的な例を
図13Fを用いて説明する。
図13Fは、車両1300を左側面から見た図である。車両1300には、光軸の方位角が前方方向であるカメラが2台設置されている。それぞれカメラ1301、カメラ1302である。ここで、カメラ1301の光軸の仰角はα1であり、カメラ1302の光軸の仰角はα2である。α2はα1よりも大きく、カメラ1302はカメラ1301よりも水平方向に近い光軸を有している。すなわち、
図8、9、11における前方方向のカメラ301aが2台になり、それぞれのカメラの光軸が、異なる仰角で車両に取り付けられていることとなる。
【0070】
図13Fの例では、仮想カメラが、仮想カメラ1310の位置にありその光軸の仰角βがβ1であるときと、仮想カメラ1311の位置にありその光軸の仰角βがβ2であるときの2例が示されている。仰角β1は、仰角α2よりも仰角α1に近く、仰角β2は、仰角α1よりも仰角α2に近い関係にある。
【0071】
例えば、
図7に示すように、車両速度に応じて仮想カメラの光軸の角度をより水平に近づくように変化させる場合に、
図13Fの例では、仮想カメラが仮想カメラ1310の位置から仮想カメラ1311の位置に変化する。この際、仮想カメラの光軸の仰角は、カメラ1301の光軸の仰角α1よりもカメラ1302の光軸の仰角α2に近づくため、カメラ1301の映像とカメラ1302の映像が重なる領域のブレンド処理において、カメラ1302の映像のブレンド率を優先する方向に変化させればよい。具体的なブレンド率の変化の方法は
図13A乃至Eで説明した方位角基準のブレンド率の変化の処理を垂直方向に置き換えれば実現できる。よって、詳細な説明は省略する。
【0072】
なお、
図13A乃至Eで説明した方位角基準のブレンド率の変化処理と、
図13Fで説明した仰角基準のブレンド率の変化処理を組合せて、仮想カメラの光軸に対応する方位角、仰角の両者が変化した場合のブレンド率を方位角方向及び仰角方向の両者について変化させてもよい。
【0073】
図14は、本実施例においてセンサを接続した場合の映像合成装置と映像表示システムを示すブロック図である。
構成は、
図1とほぼ同様であるが、通常車両に搭載される以外の様々なセンサ1400を搭載した点が異なる。センサ1400としては、レーダを使って広い範囲の方位とその距離情報を測定できるセンサ、ステレオカメラ、ミリ波や超音波、ソナーなどを使用して自車と周囲の物体との距離を測定し、或いは物体の存在を検出するセンサが考えられる。レーダを使って周囲の3次元空間形状を変形させる例を
図15に示す。
【0074】
図15は、本実施例において例えば距離センサで自車周辺の立体物までの距離を検出して形成した空間を示す図である。
自車300の周辺の立体物をレーダで検出し、当該のレーダを搭載したセンサ1500から立体物N(例えば1501a乃至1501d)までの距離をL(例えばL1乃至L4)とする。センサ1500を中心とした半径Rの範囲を展開した平面を考える。先に
図3Bで示した場合では、設定した平面上に立体物が存在すると、立体物の一部が平面に張り付いてしまう。
【0075】
このため、一番近い立体物までの距離をRとして、これより遠い位置の画像を球面オブジェクトに貼り付けることが考えられる。
図15では、4つの立体物1501a乃至1501dがセンサ1500で検出でき、それぞれの立体物までの距離L1〜L4の最小値であるL4を半径Rとする平面オブジェクト1506を地面とする。これにより、立体物1501a乃至1501dは周囲に配置された球面上に貼り付けられ、地面に貼り付けられた場合に発生するような違和感のない画像を得られるというメリットがある。
【0076】
また、平面オブジェクト1506のように、立体物と半径Rの誤差が所定値よりも小さい範囲で半径Rを決めても良い。この場合、一部の立体物は設定した平面に貼り付けられ違和感のある画像になるが、多くの立体物は地面から立ち上がるような画像となり、全般的には違和感の少ない立体画像が作成可能である。本例では半径Rを算出する手法を記載しているが、レーダにより正確な周囲の立体情報が取れれば、その立体情報を元に3次元空間を生成し、そこにカメラ画像を投影することにより、より現実に近い立体画像が作成可能である。
【0077】
図16A乃至
図16Dは、本実施例において視点変換される前後の画像及び画像中の画素の対応を説明するための図である。
図16Aは、本実施例における車両周辺に設定される空間の第3の見取り図である。
図16Bは、本実施例において
図16Aのカメラ301が撮像した画像を示す図である。
図16Cは、本実施例において
図16Bの画像を仮想カメラ305から見るよう視点変換した画像を示す図である。
【0078】
前記したように、3次元的にオブジェクト空間を設定し、撮影画像をテクスチャとしてマッピングすることにより視点変換を実現することができる。しかし、
図1の画像合成装置100の空間生成部105及び画像変換部106が、画像を3次元的なオブジェクト空間にテクスチャマッピングすることができない場合には、画像の視点変換用に入力画像と出力画像との座標対応を表すテーブルデータを事前に作成し、2次元のテクスチャマッピングにて視点変換を行う方法がある。
【0079】
図16Dは、本実施例における入力画像と出力画像との座標対応を表すテーブルデータの一例を示す図であり、
図16Bに示す変換前画像を入力画像とし、
図16Cに示す変換後画像を出力画像として、それぞれの画像中の座標の対応点を示したテーブルデータの例である。
図16Dでは、
図16Bにおける座標(u
in,n,v
in,n)の画素の色情報が
図16Cにおける座標(u
out,n,v
out,n)の画素の色情報に対応していることを示している。例えば
図16Bにおける画素1601Aの色情報が、
図16Cにおける画素1601Bにマッピングされることを示している。
【0080】
この座標対応のテーブルデータは、入力画像の全画素もしくは出力画像の全画素を網羅するだけのデータ数を持たせても良いし、離散的な対応点を持たせてその間の画素の色情報を適切な補間処理方法にて求めても良い。この場合の適切な補間処理方法としては、バイリニア法やバイキュービック法など一般的な補間手法が挙げられる。
【0081】
図17A乃至
図17Dは、対応点を離散的に有する場合を説明するための図である。
図17Aは、本実施例においてカメラ301が撮像した画像を示す図であり、先の
図16Bと同様であるが、×印が離散的なサンプリング点を示している。
図17Aは、入力画像中の画素を等間隔でサンプリングする例を示す。
図17Bは、本実施例において
図17Aの画像を仮想カメラ305から見るよう視点変換した画像を示す図であり、先の
図16Cと同様であるが、
図17Aにおけるサンプリング点の視点変換後の位置が×印で示されている。
なお、
図17Aにおけるサンプリング点のうち1701で示す一点は、
図17Bにおいて1702で示す一点に変換されている。
【0082】
図17Cは、本実施例においてカメラ301が撮像した画像を示す図であり、先の
図17Aと同様であるが、×印で示す離散的なサンプリング点が
図17Aとは異なる例を示している。
図17Cは、入力画像中の画素を画像の輪郭をはじめとする特徴点でサンプリングする例を示す。
図17Dは、本実施例において
図17Cの画像を仮想カメラ305から見るよう視点変換した画像を示す図であり、先の
図17Bと同様であるが、サンプリング点の視点変換後の位置が異なっている。
図17Cにおけるサンプリング点のうち1703で示す一点は、
図17Dにおいて1704で示す一点、即ち画像の輪郭をはじめとする特徴点に変換されている。
【0083】
3次元状のオブジェクト空間にテクスチャマッピングできないような画像合成装置においては、仮想カメラもしくは3次元状のオブジェクト形状を動的に変える場合、事前に座標対応点のテーブルデータを複数作成し、これを切り替えることにより表示映像を変更することができる。
【0084】
図18A乃至
図18Cは、本実施例において仮想カメラの位置が異なる場合を説明するための図である。
図18Aは、本実施例において仮想カメラ305が
図6のEに位置する時の視点変換後の画像を示す。
図18Bは、本実施例において仮想カメラ305が
図6のDに位置する時の視点変換後の画像を示す。
なお、
図18A及び
図18Bの画像は、
図17Aで示した画像を基に変換されているものとする。
【0085】
図18Cは、本実施例における視点変換する前後の画像の座標対応点を示すテーブルデータであり、図中Inputは
図17Aにおける変換前画像中の各サンプリング点、図中Output_ViewEは
図18Aにおける変換後画像中の各サンプリング点、図中Output_ViewDは
図18Bにおける変換後画像中の各サンプリング点に対応している。即ち、仮想カメラ305の位置に応じて異なるテーブルデータを有している。
図6において、仮想カメラ305の位置はEの時とDの時とでは離れているため、仮想カメラの位置に応じてテーブルデータを切り替えて映像表示させると、視点の移動が不連続になって、表示される画像が連続的に切り替わらない問題がある。
【0086】
そこで本実施例では、仮想カメラ位置もしくは3次元上のオブジェクト形状を変化させ、座標対応点のテーブルデータの間を離散的に作成した時、間のテーブルデータを線形補間演算によって求める。
図18Aにおける視点Eと
図18Bにおける視点Dを、w:(1−w)で内分する視点のテーブルデータ(u
out_w,n,v
out_w,n)は、
図18Cにおける(u
out_E,n,v
out_E,n)及び(u
out_D,n,v
out_D,n)を用いて、次のように求められる。
【0088】
離散的に作成されたテーブルデータに対し、内分する点を十分に設けて補間演算によりテーブルデータを求めることにより、連続的な画像の切り替えを実現することができる。
本発明における画像の合成方法に関しては、画像の特徴が抽出された位置の画素毎にブレンド率を算出しても良いし、重畳エリアで同じブレンド率を利用して合成しても良い。このように様々な変更を加えた実施例が考えられるが、いずれも本発明の範疇にある。