(57)【特許請求の範囲】
【請求項１】
車両に搭載され、被写領域が一部重複する複数のカメラによりそれぞれ撮影されたカメラ画像を取得する取得部と、
平面の底面を有し、無限遠として大きい距離の半径を持つ半球である仮想投影面の該底面上で、前記取得される各カメラ画像のうちカメラの設置位置と角度とから求められる地平線より下の画像の各画素の位置を特定するとともに、前記仮想投影面の半球面上で、前記各カメラ画像のうち前記地平線より上の画像の各画素の位置を特定する第１の特定部と、
前記車両の位置を中心とする立体形状を有する立体投影面上で、前記仮想投影面上で特定した各カメラの画素の位置を特定する第２の特定部と、
所定の視点位置に基づいて前記立体投影面上で特定された各カメラの画素の位置に対応する表示用の画像フレーム上の位置をそれぞれ特定し、該特定した各位置に、対応するカメラの画素の値を描画する描画部と
を有することを特徴とする画像処理装置。
【請求項２】
前記車両の車輪の角度に基づいて算出したガイド線の位置を前記立体投影面上で特定する第３の特定部をさらに有し、
前記描画部は、前記立体投影面上で特定されたガイド線の位置に対応する画像フレーム上の位置をそれぞれ特定し、特定した各位置に基づいて、該ガイド線を描画することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記所定の視点位置は複数であって、該複数の所定の視点位置ごとに、前記立体投影面上で特定された前記ガイド線の位置と前記画像フレーム上の位置とを対応づけるテーブルをそれぞれ記憶するテーブル記憶部をさらに有し、
前記描画部は、前記所定の視点位置に対応する前記テーブルに基づいて、前記立体投影面上で特定されたガイド線の位置に対応する画像フレーム上の位置をそれぞれ特定し、特定した各位置に基づいて、該ガイド線を描画することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
コンピュータに、
車両に搭載され、被写領域が一部重複する複数のカメラによりそれぞれ撮影されたカメラ画像を取得し、
平面の底面を有し、無限遠として大きい距離の半径を持つ半球である仮想投影面の該底面上で、前記取得された各カメラ画像のうちカメラの設置位置と角度とから求められる地平線より下の画像の各画素の位置を特定するとともに、前記仮想投影面の半球面上で、前記各カメラ画像のうち前記地平線より上の画像の各画素の位置を特定し、
前記車両の位置を中心とする立体形状を有する立体投影面上で、前記仮想投影面上で特定した各カメラの画素の位置を特定し、
所定の視点位置に基づいて、前記立体投影面上で特定された各カメラの画素の位置に対応する画像フレーム上の位置をそれぞれ特定し、該特定した各位置に、対応するカメラの画素の値を描画する
処理を実行させることを特徴とする画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願の開示する技術は、画像処理装置および画像処理プログラムに関連する。
【背景技術】
【０００２】
従来、例えば、車両運転支援に寄与することを目的として、車両に取り付けられた複数のカメラで撮影された画像から、車両を仮想的な視点から見下ろした俯瞰画像を作成する技術がある。例えば、車両の周辺を撮影する複数の魚眼カメラから得られる複数の画像を正規化し、正規化画像を用いて、車両上方の仮想的な視点から車両の全周囲を俯瞰した俯瞰画像を作成する技術がある。また、例えば、自車両の周囲の映像を撮像する複数のカメラ装置によって撮像された映像に基づいて、自車両の真上から撮像した映像に視点変換した俯瞰映像を作成する技術がある。【０００３】
上述した俯瞰画像を作成する技術では、路面に相当する平面にカメラ映像を投影して、車両の全周囲を俯瞰した俯瞰画像を作成する。このため、例えば、図２７に示すように、車両から離れた位置では、画像が極端にひずんでしまう。図２７は、車両の全周囲を俯瞰した俯瞰画像の一例を示す図である。【０００４】
これに対して、車両の周囲に設けた複数台のカメラにより取得されたカメラ画像を合成することにより、仮想的な視点を任意に変更可能な全周囲画像を生成する技術が存在する。全周囲画像は、カメラ画像の投影面が立体であるため、カメラから離れた位置、すなわち車両から離れた位置にある対象物のひずみが、カメラ画像の投影面が平面である俯瞰画像よりも少ない。よって、全周囲画像であれば、車両から離れた位置を俯瞰画像よりも明確に確認できるので、車両運転支援により有益であるとも考えられる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−２５３８７２号公報
【特許文献２】特開２００９−２９８１７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、上述した全周囲画像では、複数台のカメラの画像を合成している。従って、複数のカメラで共通して撮影範囲になる領域、いわゆる重畳領域内で撮影された対象物は、複数のカメラ画像内に含まれることになる。カメラの設置位置は、例えば、車両の前後左右の４箇所であり、カメラ同士の設置位置間には数メートルの差がある。このカメラ設置位置間の差は、カメラ画像間で視差を発生させ、全周囲画像上の複数カメラの重畳領域で次のような問題が発生する。例えば、重畳領域について、２つのカメラの画像を合成したとすると、本当は１つの対象物が投影面上の複数個所に投影される結果２つに見えることになる。また、重畳領域について、２つのカメラ画像のどちらの画像を採用するかを、全周囲画像上のある線で決めたとすると、その線をまたいで存在する対象物、例えば、路面ペイントなどが、途切れた状態に見えることになる。【０００７】
開示の技術は、上記に鑑みてなされたものであって、カメラ画像間の視差の影響を低減させた全周囲画像を生成することが可能な画像処理装置および画像処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本願の開示する技術、例えば、画像処理装置は、一つの態様において、取得部と、第１の特定部と、第２の特定部と、描画部とを有する。取得部は、車両に搭載された複数のカメラによりそれぞれ撮影されたカメラ画像を取得する。なお、複数のカメラは、他のカメラとの間で被写領域が一部重複する。第１の投影部は、平面の底面を有し、無限遠として大きい距離の半径を持つ半球である仮想投影面の該底面上で、各カメラ画像のうちカメラの設置位置と角度とから求められる地平線より下の画像の各画素の位置を特定する。さらに、第１の投影部は、該仮想投影面の半球面上で、各カメラ画像のうち該地平線より上の画像の各画素の位置を特定する。第２の特定部は、該車両の位置を中心とする立体形状を有する立体投影面上で、該仮想投影面上で特定した各カメラの画素の位置を特定する。描画部は、所定の視点位置に基づいて該立体投影面上で特定された各カメラの画素の位置に対応する表示用の画像フレーム上の位置をそれぞれ特定し、該特定した各位置に、対応するカメラの画素の値を描画する。
【発明の効果】
【０００９】
本願の開示する技術の一つの態様によれば、車両に搭載されたカメラ間の視差の影響を低減させた全周囲画像を生成できる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施例１に係る画像処理装置の構成を示す機能ブロック図である。
【図２】図２は、実施例１におけるカメラの設置位置の一例を示す図である。
【図３】図３は、実施例１で用いる立体投影面の形状を示す図である。
【図４】図４は、実施例１で用いる仮想視点投影を説明するための図である。
【図５】図５は、実施例１におけるポリゴンの頂点座標と各カメラ画像座標との対応関係の算出方法の説明に用いる図である。
【図６】図６は、実施例１で用いるカメラパラメータの一例を示す図である。
【図７】図７は、実施例１で用いるカメラパラメータの一例を示す図である。
【図８】図８は、実施例１において取り扱うカメラ画像を示す図である。
【図９】図９は、記憶部１０Ｃに記憶される情報の一例を示す図である。
【図１０】図１０は、実施例１に係る画像処理装置による処理の流れを示す図である。
【図１１】図１１は、ガイド線が描画された全周囲画像が表示されるまでの概要を示す図である。
【図１２】図１２は、実施例２に係る画像処理装置の構成を示す機能ブロック図である。
【図１３】図１３は、実施例２で用いる２輪車モデルを示す図である。
【図１４】図１４は、実施例２におけるガイド線データの形式の一例を示す図である。
【図１５】図１５は、実施例２における立体投影面へのガイド線の写像を説明するための図である。
【図１６】図１６は、実施例２における３次元のガイド線データの形式の一例を示す図である。
【図１７】図１７は、実施例２に係る画像処理装置による処理の流れを示す図である。
【図１８】図１８は、実施例３に係る画像処理装置の構成を示す機能ブロック図である。
【図１９】図１９は、道路平面上の離散的な代表点の一例を示す図である。
【図２０】図２０は、実施例３における変換テーブルに記述されるデータ形式の一例を示す図である。
【図２１】図２１は、実施例４に係る画像処理装置の構成を示す機能ブロック図である。
【図２２】図２２は、画面座標系を説明するための図である。
【図２３】図２３は、実施例４における変換テーブルに記述されるデータ形式の一例を示す図である。
【図２４】図２４は、直接投影により対応関係を求める方法を説明するための図である。
【図２５】図２５は、直接投影により３次元のガイド線データを求める方法を説明するための図である。
【図２６】図２６は、画像処理プログラムを実行する電子機器の一例を示す図である。
【図２７】図２７は、車両の全周囲を俯瞰した俯瞰画像の一例を示す図である。
【発明を実施するための形態】
【００１１】
以下に、図面を参照しつつ、本願の開示する画像処理装置および画像処理プログラムの一実施形態について詳細に説明する。なお、本願の開示する画像処理装置および画像処理プログラムの一実施形態として後述する実施例により、本願が開示する技術が限定されるものではない。
【実施例１】
【００１２】
［画像処理装置の構成］
図１は、実施例１に係る画像処理装置の構成を示す機能ブロック図である。図１に示すように、カメラ１００Ｆ、１００Ｂ、１００Ｒ、１００Ｌ、ギアポジションセンサ２００、画像表示部３００および画像処理装置４００が車両１に搭載される。【００１３】
カメラ１００Ｆ、１００Ｂ、１００Ｒ、１００Ｌは、魚眼レンズなどの広角レンズを持つカメラであり、車両１の周辺映像を撮影するように車両１に所定の位置に設置される。なお、カメラ１００Ｆ、１００Ｂ、１００Ｒ、１００Ｌは、被写領域の一部が隣接するカメラとの間で重複するように車両１に設置され、カメラ全体で車両１の周囲３６０度の路面と路側の映像が撮影される。【００１４】
図２は、実施例１におけるカメラの設置位置の一例を示す図である。図２に示すように、カメラ１００Ｆは車両１の前方に設置され、カメラ１００Ｂは車両１の後方に設置され、カメラ１００Ｒは車両１の右側側面に設置され、カメラ１００Ｌは車両１に左側側面に設置される。カメラ１００Ｆ、１００Ｂ、１００Ｒ、１００Ｌは、撮影した画像を、信号線を介し、ＮＴＳＣなどの映像信号で後述する分割器２０Ａに送る。【００１５】
ギアポジションセンサ２００は車両１のギアポジションの情報を取得し、取得した情報を画像処理装置４００に送る。【００１６】
画像表示部３００は、ディスプレイやモニタなどの出力デバイスを有し、カメラ１００Ｆ、１００Ｂ、１００Ｒ、１００Ｌにより取得された各カメラ画像から作成される全周囲画像などを表示する。なお、画像表示部３００は、タッチパネルなどの入力デバイスを有し、ポインティングデバイス機能を実現してもよい。【００１７】
画像処理装置４００は、図１に示すように、テーブル生成部４１０および運転支援部４２０を有する。【００１８】
テーブル生成部４１０は、カメラ１００Ｆ、１００Ｂ、１００Ｒ、１００Ｌにより撮影された各カメラ画像を用いて、車両１の全周囲を表示した３次元の全周囲画像を描画するためのテーブルを生成する。図１に示すように、テーブル生成部４１０は、編集部１０Ａ、投影部１０Ｂおよび記憶部１０Ｃを有する。【００１９】
編集部１０Ａは、全周囲画像の生成に必要な立体投影面の形状を決定する。図３は、実施例１で用いる立体投影面の形状を示す図である。図３の３−１は、立体投影面を車両１の前方から見た場合の形状を表す。図３の３−２は、立体投影面を車両１の左側側面から見た場合の形状を表す。編集部１０Ａは、車両１の位置を中心として、車両周辺で道路平面に近似でき、かつ車両１から離れるにつれ勾配を増す、例えば、図３の３−１に示す（１）や３−２に示す（２）のような形状を有する立体曲面を立体投影面の形状として決定する。なお、編集部１０Ａは、立体投影面の形状を数式や多面体形状で定義しておくことができる。【００２０】
投影部１０Ｂは、カメラ配置データＤ１およびカメラ内部パラメータＤ２を用いて、カメラ１００Ｆ、１００Ｂ、１００Ｒ、１００Ｌにより撮影された各カメラ画像の各画素が立体投影面上のどの位置に射影されるのかを示す対応関係を算出する。なお、投影部１０Ｂは、第１の特定部および第２の特定部の一例である。【００２１】
例えば、投影部１０Ｂは、編集部１０Ａにより決定された立体投影面を多面体に分割する。そして、投影部１０Ｂは、仮想視点投影を用いて、この多面体を形成するポリゴンの頂点座標と、そのポリゴンの頂点座標の位置に射影される各カメラ画像上の画素の座標値とを対応付けることで対応関係を求める。ポリゴンの頂点座標は、車両座標系で定義される３次元の座標であり、各カメラ画像上の画素の座標値は画像座標系で定義される２次元の座標である。【００２２】
なお、車両座標系とは、車両１の進行方向をＹ軸、車両１の垂直上方をＺ軸、Ｙ−Ｚ軸と右手系をなす水平方向をＸ軸とした座標系である。なお、車両座標系の原点は、車両１の中心から道路平面に向かう法線と道路平面との交点に設定される。また、画像座標系とは、カメラ１００Ｆ、１００Ｂ、１００Ｒ、１００Ｌにより撮影された各カメラ画像から、後述する分割器２０Ａにより合成される４分割画像についての座標系である。【００２３】
以下、図４〜図８を参照しつつ、投影部１０Ｂによるポリゴンの頂点の座標と各カメラ画像の座標との対応関係を算出する方法について説明する。なお、各カメラ画像について同様の方法で対応関係を算出するので、以下では、ポリゴンの頂点の座標と、カメラ１００Ｂにより撮影されたカメラ画像の座標との対応関係を算出する方法を例に挙げて説明する。【００２４】
図４は、実施例１で用いる仮想視点投影を説明するための図である。図４の４−１は、Ｚ＞０で、無限遠として例えば十分に大きい距離の半径を持ち車両座標系の原点に中心を持つ半球と、道路平面とを組み合わせた形状を持つ仮想視点投影面を表す。十分に大きい距離は、カメラ間の距離を誤差とみなせる程度の大きな値であればよい。視差を発生させるカメラ間の距離である数ｍと比較して、十分大きい数値であれば有限の数値であってもよく、例えば１０ｋｍの距離をとることが考えられる。図４の４−２は、上述した図３に示す立体投影面を表す。図５は、実施例１におけるポリゴンの頂点座標と各カメラ画像座標との対応関係の算出方法の説明に用いる図である。図５の５−１はカメラ１００Ｂのカメラ座標系を表し、図５の５−２はカメラ１００Ｂにより撮影されたカメラ画像であるローカル画像を表し、図５の５−３はカメラ座標系の入射光ベクトルをローカル画像の画素位置に変換する式を表す。【００２５】
まず、投影部１０Ｂは、図４に示すように、車両１の周辺に全周囲画像を作成するための基準となる仮想視点Ｖｐを１点定める。続いて、投影部１０Ｂは、仮想視点Ｖｐの位置と、立体投影面４−２上のポリゴン頂点Ｐ１とを結ぶ線分を延長して、仮想視点投影面との交点Ｃ１を求める。同様に、投影部１０Ｂは、仮想視点Ｖｐの位置と、立体投影面４−２上のポリゴン頂点Ｐ２と結ぶ線分を延長して、仮想視点投影面との交点Ｃ２を求める。なお、図４に示すように、交点Ｃ１は仮想視点投影面の道路平面部分に位置し、交点Ｃ２は仮想視点投影面の半球部分に位置する。続いて、投影部１０Ｂは、例えば、図４に示すように、交点Ｃ１からカメラ１００Ｂに向かう車両座標系の入射光ベクトルＩ１、および交点Ｃ２からカメラ１００Ｂに向かう車両座標系の入射光ベクトルＩ２をそれぞれ求める。【００２６】
続いて、投影部１０Ｂは、車両座標系で求めたカメラ１００Ｂに向かう入射光ベクトル、例えば、図４に示すＩ１およびＩ２を、カメラ座標系の入射光ベクトル、例えば、図５に示すＩ１＊およびＩ２＊にそれぞれ変換する。以下に、入射光ベクトルの車両座標系からカメラ座標系への変換方法について説明する。【００２７】
図６および図７は、実施例１で用いるカメラパラメータの一例を示す図である。図６は、車両１を上方から鉛直に見下ろした状態を示す。また、図７は、車両１を左側側面からみた状態を示す。また、図６に示す６−１および図７に示す７−１は車両座標系を表す。また、図６に示すθＦ、θＢ、図７に示すψＦ、ψＢ、φＬは車両座標系におけるカメラの取り付け角度に由来する角度パラメータを表す。なお、図６および図７に示していないが、車両座標系におけるカメラの取り付け位置に由来する位置パラメータは、例えば、（Ｘ座標：ｘｗ，Ｙ座標：ｙｗ，Ｚ座標：ｚｗ）からなる３次元の座標で表される。なお、カメラの角度パラメータおよび位置パラメータは図１に示すカメラ配置データＤ１に対応する。【００２８】
例えば、投影部１０Ｂは、車両座標系で求められた交点Ｃ１の座標を、「Ｃ１＝（Ｃ１ｘ、Ｃ１ｙ、Ｃ１ｚ）」とする。そして、投影部１０Ｂは、以下の式（１）〜（９）を用いて、交点Ｃ１の座標「Ｃ１＝（Ｃ１ｘ、Ｃ１ｙ、Ｃ１ｚ）」に対応するカメラ座標系の位置Ｃ１＊の座標「Ｃ1＝（Ｃ１＊ｘ、Ｃ１＊ｙ、Ｃ１＊ｚ）」を求める。
【数１】
0005500255.tif 000002
【００２９】
【数２】
0005500255.tif 000003
【００３０】
【数３】
0005500255.tif 000004
【００３１】
【数４】
0005500255.tif 000005
【００３２】
【数５】
0005500255.tif 000006
【００３３】
【数６】
0005500255.tif 000007
【００３４】
【数７】
0005500255.tif 000008
【００３５】
【数８】
0005500255.tif 000009
【００３６】
【数９】
0005500255.tif 000010
【００３７】
同様にして、投影部１０Ｂは、車両座標系で求められた交点Ｃ２の座標を、例えば、「Ｃ２＝（Ｃ２ｘ、Ｃ２ｙ、Ｃ２ｚ）」とする。そして、投影部１０Ｂは、交点Ｃ２の座標に対応するカメラ座標系の位置Ｃ２＊の座標「Ｃ２＝（Ｃ２＊ｘ、Ｃ２＊ｙ、Ｃ２＊ｚ）」を求める。【００３８】
続いて、投影部１０Ｂは、カメラ座標系の位置Ｃ１＊を用いて、車両座標系で求めたカメラ１００Ｂに向かう入射光ベクトルＩ１を、カメラ座標系の入射光ベクトルＩ１＊に変換する。同様にして、投影部１０Ｂは、カメラ座標系の位置Ｃ２＊を用いて、車両座標系で求めたカメラ１００Ｂに向かう入射光ベクトルＩ２を、カメラ座標系の入射光ベクトルＩ２＊に変換する。【００３９】
続いて、投影部１０Ｂは、例えば、図５に示す５−３の写像「Ｔ」を用いて、カメラ座標系の入射光ベクトルＩ１＊から、カメラ１００Ｂにより撮影されたカメラ画像のローカル画素位置Ｑ１＊を求める。同様に、投影部１０Ｂは、写像「Ｔ」を用いて、カメラ座標系の入射光ベクトルＩ２＊から、カメラ１００Ｂにより撮影されたカメラ画像のローカル画素位置Ｑ２＊を求める。なお、写像「Ｔ」は、図１に示すカメラ内部パラメータ、例えば、レンズ歪みデータ等より一意に決定でき、あらかじめ入射光ベクトルに対するローカル画素位置のテーブルＴを作成しておくことなどで実現できる。【００４０】
続いて、投影部１０Ｂは、カメラ１００Ｂにより撮影されたカメラ画像のローカル画素位置Ｑ１＊およびＱ２＊に対応する画像座標系の位置Ｑ１およびＱ２をそれぞれ求める。図８は、実施例１において取り扱うカメラ画像を示す図である。図８に示すように、実施例１では、カメラ１００Ｆ、１００Ｂ、１００Ｒ、１００Ｌにより撮影された各カメラ画像から、後述する分割器２０Ａによって１枚の４分割画像が合成される。上述した画像座標系の位置Ｑ１およびＱ２は、この４分割画像に対応する画像座標系の画素の位置に相当する。投影部１０Ｂは、カメラ１００Ｂにより撮影されたカメラ画像のローカル画素位置Ｑ１＊に、カメラ１００Ｂに固有のオフセット量を加えることで、例えば、図８に示すように、ローカル画素位置Ｑ１＊に対応する画像座標系の位置Ｑ１を求める。同様に、投影部１０Ｂは、カメラ１００Ｂにより撮影されたカメラ画像のローカル画素位置Ｑ２＊に、カメラ１００Ｂに固有のオフセット量を加えることで、例えば、図８に示すように、ローカル画素位置Ｑ２＊に対応する画像座標系の位置Ｑ２を求める。【００４１】
なお、投影部１０Ｂは、上述してきた方法でポリゴンの頂点の座標と各カメラ画像の座標との対応関係を算出できるが、入射光ベクトルＩ１あるいはＩ２を撮影できるカメラが複数存在するときには複数の画像座標値を算出できることとなる。これは、各カメラの被写領域、言い換えれば、各カメラの撮像範囲にカメラ間で一部重複する範囲が設けられているために生じる。そこで、この場合には、該当の頂点を含むポリゴンに属する全ての頂点が同じカメラで撮影できるカメラを選択し、その画像座標値を用いるようにする。また、ポリゴンに属する全ての頂点が撮影できるカメラが複数存在するときは、よりローカル画像の座標系、つまり図５の５−２に示すようなローカル画素位置を定義する座標系の原点に近い位置となるポリゴンを選択し、その画像座標値を用いるようにする。【００４２】
投影部１０Ｂは、車両座標系における立体投影面上の各ポリゴンの頂点の座標値と、画像座標系における各カメラ画像の座標値との対応関係を記憶部１０Ｃに格納する。【００４３】
上述してきたようにして、投影部１０Ｂは、仮想視点投影を用いて、ポリゴンの頂点の座標と各カメラ画像の座標との対応関係を算出する。このように、仮想視点投影を用いて立体投影面上の座標値に対応する画像座標値を算出することで、異なるカメラ位置で撮影した映像を立体投影面に投影する際にカメラ間の視差の影響が軽減される。図４に示す入射光ベクトルＩ２は、交点Ｃ２が無限遠方とみなせる位置に存在するため、カメラ位置の差を考慮する必要性がなくなり、どのカメラでも同じ入射光ベクトルとして扱える。つまり、各カメラから無限遠方と見なせる交点Ｃ２までの距離に対して、各カメラ同士の距離は誤差とみなせる。従って、Ｃ２の位置にある被写体からの光は、どのカメラで撮影しても車両座標系では入射光ベクトルＩ２となり、かつ立体投影面ではＰ２の１点に射影されることになる。言い換えれば、どのカメラの映像であっても、車両座標系で入射光ベクトルＩ２となる画素はＰ２に射影される。このため、入射光ベクトルＩ２となる被写体が無限遠、もしくは十分に遠くに存在するならば、立体投影面上に投影された被写体はカメラ間の視差の影響が緩和されたものとなり、点Ｐ２に写像される。一方、Ｚ＝０である平面と、図４に示す交点Ｃ１で交差する入射光ベクトルＩ１は十分近い距離にあるためカメラごとに異なるベクトルとなる。すなわち、道路上のＣ１の位置にある被写体からの光は、カメラごとに異なる入射光ベクトルＩ１として記録される。しかし、各カメラからカメラごとの入射光ベクトルを逆方向に延長した先は常にＣ１の１点で交差し、かつ、立体投影面ではＰ１に射影される。このため、路面上に存在する被写体の映像はカメラ間の視差の影響なく点Ｐ１に写像される。車載のカメラから撮影された映像には、Ｚ＝０の位置に路面が映し出され、走行時には水平より上方に遠方の被写体が映し出されることが確率的に多くなる。よって、各カメラ画像を図４の４−１に示す無限円半球に投影することで、全体としては視差の影響が緩和された全周囲画像が合成される。【００４４】
記憶部１０Ｃは、投影部１０Ｂにより格納された立体投影面上の各ポリゴンの頂点の座標値と各カメラ画像の座標値との対応関係を記述した投影データテーブルを記憶する。記憶部１０Ｃは、立体投影面上の各ポリゴンに付与されるＩＤと、ポリゴンの各頂点に付与される各頂点ＩＤと、ポリゴン頂点座標値（Ｘ，Ｙ，Ｚ）と、画像座標値（Ｓ，Ｔ）とを対応付けて記憶する。図９は、記憶部１０Ｃに記憶される情報の一例を示す図である。例えば、図９に示すように、記憶部１０Ｃは、ポリゴンＩＤ「１」と、頂点ＩＤ「１」〜「４」と、ポリゴン頂点座標値「ｘ０，ｙ０，ｚ０」と、画像座標値「Ｓ０，Ｔ０」とを対応付けて記憶している。なお、記憶部１０Ｃは、例えば、ＲＡＭ（Random  Access  Memory）やフラッシュメモリ(flash  memory)などの半導体メモリ素子である。【００４５】
図１に戻り、運転支援部４２０について説明する。運転支援部４２０は、図１に示すように、分割器２０Ａと、フレームバッファ２０Ｂと、選択部２０Ｃと、描画部２０Ｄとを有する。【００４６】
分割器２０Ａは、カメラ１００Ｆ、１００Ｂ、１００Ｒ、１００Ｌにより撮影された各カメラ画像を取得し、図８に示すように、取得した画像から１枚の４分割画像に合成し、フレームバッファ２０Ｂに格納する。なお、分割器２０Ａは、取得部の一例である。フレームバッファ２０Ｂは、分割器２０Ａにより格納された４分割画像を蓄積する。【００４７】
選択部２０Ｃは、ギアポジションセンサ２００から取得したギアポジションの情報に基づいて、後述する描画部２０Ｄにて画像を描画させるときの視点位置を決定する。なお、選択部２０Ｃは、ギアポジションの情報ではなく、ハンドル切れ角や速度などの情報や、車両１に搭載された各種センサの情報から視点位置を動的に決定してもよいし、予め固定で指定しておいてもよい。【００４８】
描画部２０Ｄは、３Ｄコンピュータグラフィクス技術を用い、選択部２０Ｃにより決定された視点位置に基づいて、表示用の画像フレーム上の画素位置に、対応する４分割画像の画素値を描画することで全周囲画像を作成する。なお、描画部２０Ｄは、描画部の一例である。【００４９】
例えば、描画部２０Ｄは、テーブル生成部４１０の記憶部１０Ｃから投影データテーブルを取得する。続いて、描画部２０Ｄは、投影データテーブルに記述された投影データＤ３に基づいて、立体投影面のポリゴン形状に対して画像座標値を正規化したテクスチャ座標を設定する。続いて、描画部２０Ｄは、１秒あたり３０フレームで更新される各カメラ画像をビデオテクスチャとして用い、選択部２０Ｃにより決定された視点位置から、透視法投影もしくは並行投影でビデオテクスチャ付きのポリゴン描画を行なうことで全周囲画像を作成する。描画部２０Ｄは、標準的な３ＤグラフィクスＬＳＩによりハードウエアで実装することができ、標準的な３ＤグラフィクスライブラリであるＯｐｅｎＧＬなどによりソフトウエアとして実装することもできる。【００５０】
画像表示部３００は、描画部２０Ｄにより作成された全周囲画像を表示する。【００５１】
［画像処理装置による処理（実施例１）］
図１０は、実施例１に係る画像処理装置による処理の流れを示す図である。図１０に示すように、編集部１０Ａは、全周囲画像の生成に必要な立体投影面の形状を決定する（ステップＳ１０１）。続いて、投影部１０Ｂは、カメラ画像の投影処理を実行する（ステップＳ１０２）。なお、投影処理とは、上述したカメラ１００Ｆ、１００Ｂ、１００Ｒ、１００Ｌにより撮影された各カメラ画像の各画素が立体投影面上のどの位置に射影されるのかを示す対応関係を算出する処理に相当する。【００５２】
続いて、選択部２０Ｃは、ギアポジションセンサ２００から取得したギアポジションの情報に基づいて、後述する描画部２０Ｄにて画像を描画させるときの視点位置を決定する（ステップＳ１０３）。続いて、描画部２０Ｄは、決定された視点位置に基づいて全周囲画像の描画処理を実行する（ステップＳ１０４）。なお、この描画処理は、上述した表示用の画像フレーム上の画素位置に、対応する４分割画像の画素値を描画することで全周囲画像を作成する処理に相当する。【００５３】
続いて、画像表示部３００は、描画部２０Ｄによる描画結果、すなわち全周囲画像を表示し（ステップＳ１０５）、処理を終了する。【００５４】
なお、図１０に示すステップＳ１０１〜ステップＳ１０５の処理は、装置のオンライン時に任意のタイミングで実行でき、図１０に示すステップＳ１０１およびステップＳ１０２の処理については、装置のオフライン時に任意のタイミングで実行できる。【００５５】
［実施例１による効果］
上述してきたように、実施例１に係る画像処理装置４００は、仮想視点投影を用いて、各カメラ画像の各画素が立体投影面上のどの位置に射影されるのかを示す対応関係を算出し、この対応関係を用いて全周囲画像を作成する。よって、実施例１によれば、カメラ画像間の視差の影響を低減させた全周囲画像を生成できる。【００５６】
なお、上述してきた実施例１では、画像処理装置４００が有するテーブル生成部４１０が、各カメラ画像の各画素が立体投影面上のどの位置に射影されるのかを示す対応関係を算出し、図９に示すような投影データテーブルを生成する場合を説明した。しかしながら、画像処理装置４００は、テーブル生成部４１０を必ずしも有する必要はない。例えば、外部の情報処理装置などを用いて投影データテーブルを予め生成しておき、画像処理装置４００は、この情報処理装置により生成された投影データテーブルを用いて、全周囲画像を作成するようにすることもできる。
【実施例２】
【００５７】
ところで、車両運転支援の目的で、例えば、ユーザに提供される車両周辺を撮影した画像に運転操作を補助するためのガイド線を描画して提供する従来技術が多々存在する。しかし、これらの従来技術には、ガイド線を描画できる範囲が狭いという共通した問題がある。例えば、車両の周辺を撮影した俯瞰画像では、カメラ単体の視野を超える範囲にはガイド線が描画されない。また、車両周辺を撮影した従来の全周囲画像では、カメラ画像間の視差の影響から、車両周辺の様子が必ずしも鮮明な状態で映し出されていない場合がある。このため、従来技術では、車両と周辺物体等との相対関係をユーザが把握可能な限定された範囲にガイド線を描画していた。【００５８】
上述した実施例１では、カメラ画像間の視差の影響を低減させた全周囲画像を生成できるので、従来の全周囲画像よりも広範囲で車両周辺の様子を鮮明に映し出す全周囲画像をユーザに提供できる。このため、全周囲画像においてガイド線を描画できる範囲を拡大できる可能性が生まれる。そこで、以下の実施例２では、上述した実施例１において生成された全周囲画像にガイド線を重畳描画する場合の一実施形態について説明する。【００５９】
図１１は、ガイド線が描画された全周囲画像が表示されるまでの概要を示す図である。図１１に示す１１−（１）〜１１−（６）の順に処理が進行する。１１−（１）〜１１−（２）は上述の実施例１で説明した画像処理装置により実行され、１１−（３）〜１１−（６）は後述の実施例２で説明する画像処理装置により実行される。１１−（１）〜１１−（２）に示すように、立体投影面を用いて全周囲画像が描画される。続いて、１１−（３）〜１１−（４）に示すように、作成されたガイド線が立体投影面に投影される。そして、１１−（５）に示すように、（５）−１のような視点が決定されると、１１−（６）に示すように、ガイド線が描画された全周囲画像が表示される。【００６０】
［画像処理装置の構成（実施例２）］
図１２は、実施例２に係る画像処理装置の構成を示す機能ブロック図である。実施例２は、車輪角センサ５００が車両１に搭載される点が実施例１とは異なる。さらに、実施例２に係る画像処理装置４００は、運転支援部４２０が算出部２０Ｅおよび写像部２０Ｆを有する点が実施例１とは異なる。【００６１】
車輪角センサ５００は、車両１の車輪角θの情報を逐次取得し、取得した車輪角θの情報を算出部２０Ｅに送る。【００６２】
算出部２０Ｅは、車輪角センサ５００から送られる車輪角θの情報と車両ジオメトリをもとに２輪車モデルなどを用いて、車両１の予想進路に相当する予想軌跡線を計算し、予想軌跡線を含むガイド線の形状を決定する。図１３は、実施例２で用いる２輪車モデルを示す図である。図１３に示す１３−１は、車両１の旋回時における前輪回転軸を表す。図１３に示す１３−２は、車両１の直進時における前輪回転軸を表す。図１３に示すθは、車輪角を表す。図１３に示す１３−３は、車両１の後輪回転軸を表す。図１３に示す１３−４は、車両１の旋回中心を表す。図１３に示す１３−５は、車両１のホイールベースを表す。図１３に示す１３−６は、車両１の後輪のオフセットを表す。図１３に示す１３−７は、車両１の旋回時における回転半径を表す。図１３に示す１３−８は、車両１の後退時の予想軌跡線を表す。図１３に示す１３−９はガイド線を表す。なお、１３−５で表すホイールベースや１３−６で表す後輪オフセットなどが車両ジオメトリに相当する。【００６３】
図１３に示すように、算出部２０Ｅは、車両１の左右前輪の中間に車輪角θの車輪と左右後輪の中間の車輪とを有し、各車軸を延長した交点位置に車両の旋回中心が存在する仮想的な２輪車モデルを用いる。ここで、算出部２０Ｅは、車輪のすべりを無視し、２輪車モデルの２輪は車軸に対して垂直に移動することを前提条件として用いる。例えば、車両１の後退時であれば、予想軌跡算出部２０Ｅは、車両１の左右後端位置から旋回中心を中心とした円弧を描くことで、車両座標系での予想軌跡線を算出できる。【００６４】
例えば、図１３の１３−４で表す車両１の旋回中心の座標を「（Ｃｘ，Ｃｙ）」、図１３の１３−４で表す車両１の回転半径を「Ｒ」とすると、「（Ｃｘ，Ｃｙ）」および「Ｒ」は以下の式（１０）で表される。
【数１０】
0005500255.tif 000011
【００６５】
そして、予想軌跡算出部２０Ｅは、予想軌跡線を含むガイド線の形状を決定した後、ガイド線を直線に近似し、各直線の両端のＸ座標およびＹ座標でガイド線の形状を定義する。そして、予想軌跡算出部２０Ｅは、例えば、内部的に有するメモリなどに、ガイド線の形状を定義したガイド線データを格納する。【００６６】
なお、算出部２０Ｅは、車輪角センサ５００から送られる車輪角θの情報が変更されるたびに予想軌跡線を再計算し、予想軌跡線を含むガイド線の形状を改めて定義し、ガイド線データを更新する。例えば、算出部２０Ｅは、車輪角センサ５００から車輪角θの情報が送られてくると、車輪角θの情報に変更があるか否かを判定する。そして、判定の結果、車輪角θの情報に変更がある場合には、算出部２０Ｅは、予想軌跡線を再計算してガイド線の形状を再決定し、予想軌跡線を含むガイド線の形状を改めて定義し、ガイド線データを更新する。【００６７】
図１４は、実施例２におけるガイド線データの形式の一例を示す図である。図１４に示すように、予想軌跡算出部２０Ｅは、例えば、直線ＩＤ「１」と、頂点ＩＤ「１」および「２」と、座標値（ｘ１，ｙ１）とを対応付けたガイド線データを格納する。直線ＩＤとはガイド線を構成する直線に付与される識別子であり、頂点ＩＤとは直線の両端に付与される識別子であり、座標値（Ｘ，Ｙ）は直線の両端の座標値である。【００６８】
図１２に戻り、写像部２０Ｆについて説明する。写像部２０Ｆは、ガイド線データＤ５および投影面データＤ６を参照して、ガイド線を立体投影面に写像することにより、３次元のガイド線データであるガイド線データＤ７を生成する。なお、写像部２０Ｆは、第３の特定部の一例である。【００６９】
例えば、写像部２０Ｆは、ガイド線データＤ５に記述されたガイド線の頂点座標と、仮想視点投影の実施時に設定された仮想視点とを結んだ線分が、立体投影面と交わる交点の位置を求める。この交点の位置が立体投影面に写像されたガイド線の３次元の頂点位置となる。図１５は、実施例２における立体投影面へのガイド線の写像を説明するための図である。図１５に示す１５−１は、投影面データＤ６に対応する立体投影面を表す。図１５に示す１５−２は、路面平面上におけるガイド線の頂点位置を表す。なお、１５−２は、図４の４−１に示す仮想視点投影面の底面であっても構わない。図１５に示す１５−３は、立体投影面におけるガイド線の３次元の頂点位置を表す。写像部２０Ｆは、例えば、図１５に示すように、仮想視点投影の実施時に投影部１０Ｂにより設定された仮想視点位置Ｖｐと、ガイド線の頂点位置１５−２とを結ぶ線分が、立体投影面１５−１と交わる交点１５−３の位置を求める。そして、写像部２０Ｆは、この交点１５−３の３次元座標を求めることにより、３次元のガイド線データＤ７を生成する。写像部２０Ｆは、例えば、内部的に有するメモリなどに、３次元のガイド線データＤ７を格納する。【００７０】
図１６は、実施例２における３次元のガイド線データの形式の一例を示す図である。図１６に示すように、写像部２０Ｆは、例えば、直線ＩＤ「１」と、頂点ＩＤ「１」および「２」と、座標値（ｘ３，ｙ３，ｚ３）および（ｘ４，ｙ４，ｚ４）とを対応付けた３次元ガイド線データを格納する。【００７１】
なお、写像部２０Ｆは、算出部２０Ｅにより車輪角θの変更に応じてガイド線データが更新されるたびに、３次元ガイド線データを再生成する。【００７２】
図１２に戻り、描画部２０Ｄについて説明する。描画部２０Ｄは、ポリゴン描画を行って全周囲画像を作成した後、ガイド線データＤ７を参照して、ガイド線を３次元のラインとして重畳描画することによりガイド線付きの全周囲映像を作成する。【００７３】
なお、描画部２０Ｄは、写像部２０Ｆにより３次元のガイド線データＤ７が再生成されるたびに、全周囲画像に重畳されるガイド線を再描画する。【００７４】
［画像処理装置による処理（実施例２）］
図１７は、実施例２に係る画像処理装置による処理の流れを示す図である。実施例２に係る画像処理装置４００による処理は、図１７に示すステップＳ２０３、ステップＳ２０４、ステップＳ２０６、ステップＳ２０８の処理が実施例１とは異なる。【００７５】
すなわち、算出部２０Ｅは、車輪角センサ５００から送られる車輪角θの情報と車両ジオメトリをもとに２輪車モデルなどを用いて、車両１の予想進路に相当する予想軌跡線を計算し、予想軌跡線を含むガイド線の形状を決定する（ステップＳ２０３）。続いて、写像部２０Ｆは、ガイド線データＤ５および投影面データＤ６を参照して、ガイド線を立体投影面に写像することにより、３次元ガイド線データＤ７を生成する（ステップＳ２０４）。【００７６】
続いて、ステップＳ２０５において選択部２０Ｃにより視点位置が決定された後、描画部２０Ｄは、ガイド線を含む全周囲画像の描画処理を実行する（ステップＳ２０６）。この描画処理は、ガイド線データＤ７を参照して、ガイド線を３次元ラインとして重畳描画することによりガイド線付きの全周囲映像を作成する上述の処理に相当する。続いて、ステップＳ２０７において描画結果が表示された後、算出部２０Ｅは、車輪角θの情報に変更があるか否かを判定する（ステップＳ２０８）。判定の結果、車輪角θの情報に変更がある場合には（ステップＳ２０８，ＹＥＳ）、算出部２０Ｅは、上述したステップＳ２０３に戻り、予想軌跡線を再計算してガイド線の形状を再決定する。以後、上述したステップＳ２０４〜ステップＳ２０８の処理が実行される。一方、判定の結果、車輪角θの情報に変更がない場合には（ステップＳ２０８，ＮＯ）、算出部２０Ｅは、ステップＳ２０８の同判定を繰り返す。【００７７】
［実施例２による効果］
上述してきたように、実施例２に係る画像処理装置４００は、カメラ画像間の視差の影響を低減させた全周囲画像にガイド線を重畳描画した画像をユーザに提供する。このため、実施例２によれば、ガイド線を描画できる範囲を拡大でき、ユーザの運転支援により寄与する全周囲画像をユーザに提供できる。【００７８】
また、実施例２によれば、ユーザのステアリング操作に応じてガイド線の位置を更新し、位置が更新されたガイド線を重畳描画した全周囲画像をユーザに提供するので、ユーザの運転をリアルタイムに支援できる。例えば、実施例２では、全周囲映像と同じ仮想視点投影によりガイド線が立体投影面に写像される。このため、予測軌跡上にある道路の白線などがガイド線と重なって描画されることなり、ユーザはステアリング操作の結果、車両がどのような進路を通るのかを全周囲画像と重ね合わせて確認できる。
【実施例３】
【００７９】
上述した実施例２では、写像部２０Ｆが、算出部２０Ｅにより計算されたガイド線データＤ５を用いて、道路平面上のガイド線の位置を立体投影面上の３次元位置に写像し、３次元ガイド線データＤ７を計算により求める場合を説明した。しかしながら、この場合に限定されるものではない。例えば、道路平面上に設定した離散的な代表点の座標に対応する立体投影面上の３次元座標を記述したテーブルを予め作成しておく。そして、このテーブルを用いて、道路平面上のガイド線の位置に対応する立体投影面上の３次元位置を補間計算し、３次元ガイド線データを求めるようにしてもよい。【００８０】
［画像処理装置の構成（実施例３）］
図１８は、実施例３に係る画像処理装置の構成を示す機能ブロック図である。実施例３に係る画像処理装置４００は、テーブル生成部４１０が変換テーブル生成部１０Ｄを有する点が実施例２とは異なる。さらに、実施例３に係る画像処理装置４００は、運転支援部４２０が写像部２０Ｇを有する点が実施例２とは異なる。【００８１】
変換テーブル生成部１０Ｄは、あらかじめ道路平面上の離散的な代表点の座標に対応する立体投影面上の３次元座標を求めるためのテーブルを生成する。図１９は、道路平面上の離散的な代表点の一例を示す図である。図１９に示す１９−１は道路平面を表し、図１９に示す１９−２は道路平面上に設定した代表点を表す。変換テーブル生成部１０Ｄは、例えば、仮想視点投影を用いて、図１９の１９−２で表す各代表点に対応する立体投影面上の３次元座標を計算する。そして、変換テーブル生成部１０Ｄは、道路平面上の離散的な代表点の座標と、対応する立体投影面上の３次元座標とを対応付けた変換テーブルを生成し、内部的なメモリに格納する。【００８２】
図２０は、実施例３における変換テーブルに記述されるデータ形式の一例を示す図である。図２０に示すように、変換テーブル生成部１０Ｄは、道路平面上の離散的な代表点の座標と、対応する立体投影面上の３次元座標とを対応付けた変換テーブルを格納する。変換テーブル生成部１０Ｄは、例えば、代表点ＩＤ「１」と、道路平面上座標値（ｘ５，ｙ５）と、３次元座標値（ｘ６，ｙ６，ｚ６）とを対応付けた変換テーブルを格納する。代表点ＩＤは代表点に付与される識別子であり、道路平面上座標値は代表点の道路平面上の座標値であり、３次元座標値は代表点に対応する立体投影面上の３次元座標値である。【００８３】
図１８に戻り、写像部２０Ｇについて説明する。写像部２０Ｇは、変換テーブルを参照して、ガイド線データ５Ｄに含まれるガイド線の頂点座標に対応する立体投影面上の３次元座標を補間計算により求める。そして、写像部２０Ｇは、３次元ガイド線データＤ７を生成して格納する。【００８４】
そして、描画部２０Ｄは、３次元ガイド線データＤ７を参照した３次元座標変換処理をリアルタイムに行って、車両１の予測進路の変更に応じて３次元のガイド線を変換し、立体投影面の描画と同時に３次元のガイド線を描画する。【００８５】
実施例３によれば、道路平面上のガイド線の位置を立体投影面上の３次元位置に写像し、３次元ガイド線データＤ７を計算により求めるよりも、少ない処理負荷で３次元ガイド線データＤ７を求めることができる。【００８６】
なお、実施例３では、図１９に示すように、直交グリッドパターンを形成する直線の交点を代表点としたが、ガイド線を描画する範囲を網羅するものであればどのようなパターンでも採用することができる。また、図２０に示すように、道路平面上の離散的な代表点の座標と、対応する立体投影面上の３次元座標とを対応付けた変換テーブルを生成したが、それらが導出できるものであれば別のパラメータでテーブルを作成してもよい。
【実施例４】
【００８７】
上述した実施例３では、道路平面上に設定した離散的な代表点の座標に対応する立体投影面上の３次元座標を記述したテーブルを予め作成しておく場合を説明した。ここで、例えば、全周囲映像の描画処理において視点位置が既知で固定の場合には、立体投影面上の３次元座標値ではなく、道路平面上に設定した離散的な代表点の座標に対応する表示画面の画面座標値を記述したテーブルを予め作成しておく。そして、このテーブルを用いて、表示画面の画面座標値、すなわち、表示用の画像フレームの座標値を用いて全周囲映像にガイド線を描画するようにしてもよい。【００８８】
［画像処理装置の構成（実施例４）］
図２１は、実施例４に係る画像処理装置の構成を示す機能ブロック図である。実施例４に係る画像処理装置４００は、テーブル生成部４１０が変換テーブル生成部１０Ｅ、変換部１０Ｆおよびデータセット生成部１０Ｇを有する点が実施例３とは異なる。さらに、実施例４に係る画像処理装置４００は、運転支援部４２０が写像部２０Ｈおよび描画部２０Ｉを有する点が実施例３とは異なる。【００８９】
変換テーブル生成部１０Ｅは、道路平面上の座標に対応する表示画面の画面座標値を求めるためのテーブルを生成する。図２２は、画面座標系を説明するための図である。図２２に示すように、画面座標系は、全周囲映像を表示する表示下面の領域の左下を原点２２−１とし、水平方向にＸ軸、垂直方向にＹ軸をとった座標系である。変換テーブル生成部１０Ｅは、道路平面上の代表点の座標を立体投影面上の３次元座標に変換する。続いて、変換テーブル生成部１０Ｅは、３次元グラフィクス処理を用いて、視点データＤ４による視点位置で該当の３次元座標を画面座標系に投影し、３次元座標に対応する画面座標値を求める。そして、変換テーブル生成部１０Ｅは、道路平面上の座標値と、対応する表示画面の画面座標値とを対応付けた変換テーブルを生成して格納する。なお、変換テーブル生成部１０Ｅは、各視点データＤ４に対応する視点位置ごとに変換テーブルをそれぞれ生成する。【００９０】
図２３は、実施例４における変換テーブルに記述されるデータ形式の一例を示す図である。図２３に示すように、変換テーブル生成部１０Ｅは、道路平面上の座標と、対応する表示画面の画面座標とを対応付けた変換テーブルを格納する。変換テーブル生成部１０Ｅは、例えば、代表点ＩＤ「１」と、道路平面上座標値（ｘ７，ｙ７）と、画面座標値（ｘ８，ｙ８）とを対応付けた変換テーブルを格納する。【００９１】
変換部１０Ｆは、投影部１０Ｂにより生成された投影データを、視点データＤ４による視点位置で画面座標系に投影した投影データＤ９を生成する。ここで、変換部１０Ｆは、視点位置ごとに、投影部１０Ｂにより生成された投影データを画面座標系に投影した投影データを予め生成して、視点位置ごとの投影データを記述したテーブルを格納しておいてもよい。なお、変換部１０Ｆは、視点データＤ４による視点位置ごとに投影データＤ９をそれぞれ生成する。【００９２】
データセット生成部１０Ｇは、変換テーブル生成部１０Ｅにより生成された変換テーブルと、変換部１０Ｆにより生成された投影データＤ９とを合わせたデータセットＤ８を生成して格納する。なお、データセットＤ８は、テーブル記憶部に記憶されるテーブルの一例である。【００９３】
選択部２０Ｃは、決定した視点位置に対応する投影データＤ９をデータセットＤ８の中から取得して描画部２０Ｉに送る。さらに、選択部２０Ｃは、決定した視点位置に対応する変換テーブルを写像部２０Ｈに送る。【００９４】
写像部２０Ｈは、選択部２０Ｃから送られた変換テーブルを参照して、ガイド線データＤ５に含まれるガイド線の頂点座標に対応する画面座標値を求める。そして、写像部２０Ｈは、ガイド線の頂点座標に対応する画面座標値を含むガイド線データＤ１０を生成して格納する。【００９５】
描画部２０Ｉは、投影データＤ９およびガイド線データＤ１０を参照した画面座標変換処理をリアルタイムに行う。そして、車両１の予測進路の変更に応じて、投影データＤ９を用いて画面座標系における全周囲画像を描画した後、画面座標系におけるガイド線を重畳描画する。【００９６】
実施例４によれば、視点位置ごとにデータセットＤ８を生成するので、視点位置が既知であれば、迅速な全周囲画像の描画処理を実行できる。【００９７】
なお、図２３に示すように、道路平面上の座標と、対応する表示画面の画面座標とを対応付けた変換テーブルを生成したが、それらが導出できるものであれば別のパラメータでテーブルを作成してもよい。
【実施例５】
【００９８】
以下、本願の開示する画像処理装置および画像処理プログラムの他の実施形態を説明する。【００９９】
（１）直接投影による全周囲画像の描画
上述した実施例では、仮想視点投影により、立体投影面の位置と、この位置に射影される各カメラ画像上の位置と対応付けることにより対応関係を用いて、全周囲画像を作成する場合を説明した。ここで、例えば、仮想視点投影の代わりに、カメラの位置より立体投影面に直接に投影する直接投影により求めた対応関係を用いて、全周囲画像を作成することもできる。以下、図２４を用いて説明する。図２４の２４−１は立体投影面を表す。【０１００】
図２４は、直接投影により対応関係を求める方法を説明するための図である。例えば、上述した投影部１０Ｂは、図２４に示すように、立体投影面上のポリゴンの頂点Ｐ１およびＰ２から、カメラ１００Ｂへ向かうベクトルを入射光ベクトル「Ｉ１」および「Ｉ２」とする。続いて、上述した投影部１０Ｂは、これらの入射光ベクトルが射影されるカメラ１００Ｂの画像座標値「Ｑ１」および「Ｑ２」を、上述した実施例１と同様の方法で決定する。続いて、上述した投影部１０Ｂは、立体投影面上のポリゴンの頂点Ｐ１およびＰ２座標とカメラ１００Ｂの画像座標値とを対応付けた対応関係を求める。上述した投影部１０Ｂは、各カメラ画像について同様に処理を行い、例えば、図９に示すような対応関係を作成する。そして、上述した投影部１０Ｂは、この対応関係に基づいて全周囲画像を描画する。このように、直接投影により求めた対応関係を用いて全周囲画像を描画することで、車両周辺の道路平面に近似できる部分では、作成される画像にカメラ画像間の視差の影響の少ない全周囲画像を作成できる。なお、ここでの投影部１０Ｂは、画素位置特定部の一例である。【０１０１】
（２）直接投影によるガイド線の描画
また、上述した実施例では、図１５に示すような仮想視点投影を用いて、図１６に示すような３次元ガイド線データＤ７を作成し、この３次元ガイド線データＤ７を元にガイド線を描画する場合を説明した。ここで、例えば、直接投影によりガイド線を描画することもできる。以下、図２５を用いて説明する。図２５の２５−１は立体投影面を表す。【０１０２】
図２５は、直接投影により３次元のガイド線データを求める方法を説明するための図である。例えば、上述した写像部２０Ｆは、カメラ１００Ｂの撮像範囲内にガイド線を形成する線分の両頂点座標が含まれる場合には、図２５に示すように、この線分に含まれるガイド線の頂点と該当するカメラ１００Ｂの位置を結んだ線分を求める。続いて、上述した写像部２０Ｆは、図２５に示す線分と立体投影面２５−１とが交わる交点の位置に３次元ガイド線の頂点を写像することで、この交点の座標を求める。上述した写像部２０Ｆは、ガイド線の各頂点について写像を行い、例えば、図１６に示すような３次元ガイド線データを作成する。そして、上述した写像部２０Ｆは、３次元ガイド線データに基づいて、例えば、上述した（１）の方法で作成した全周囲画像にガイド線を重畳して描画する。このようにして、直接投影によりガイド線を描画することで、車両の全周囲を俯瞰した俯瞰画像にガイド線を描画するよりも、ユーザの運転支援に有益な広範囲にガイド線を描画できる。なお、ここでの写像部２０Ｆは、ガイド線位置特定部の一例である。【０１０３】
（３）装置構成等
例えば、図１に示した画像処理装置４００の機能ブロックの構成は概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。例えば、図１に示したテーブル生成部４１０と運転支援部４２０とを機能的または物理的に統合してもよい。このように、画像処理装置４００の機能ブロックの全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。【０１０４】
（４）画像処理プログラム
また、上述の実施例にて説明した画像処理装置４００により実行される各種の処理は、例えば、車両１に搭載されるＥＣＵ（Electronic  Control  Unit）に実装されたマイコンなどの電子機器で所定のプログラムを実行することによって実現することもできる。【０１０５】
そこで、以下では、図２６を用いて、上述の実施例にて説明した画像処理装置４００により実行される処理と同様の機能を実現する画像処理プログラムを実行する電子機器の一例を説明する。図２６は、画像処理プログラムを実行する電子機器の一例を示す図である。【０１０６】
図２６に示すように、画像処理装置４００により実行される各種処理を実現する電子機器６００は、各種演算処理を実行するＣＰＵ（Central  Processing  Unit）６１０を有する。また、図２６に示すように、電子機器６００は、カメラ画像を取得するためのカメラインターフェース６２０、ディスプレイとの間で各種データのやり取りを行うためのディスプレイインターフェース６３０を有する。また、図２６に示すように、電子機器６００は、カメラ画像を合成するハードウェアアクセラレータとして機能するグラフィックエンジン６４０を有する。【０１０７】
また、図２６に示すように、電子機器６００は、ＣＰＵ６１０により各種処理を実現するためのプログラムやデータ等を記憶するハードディスク装置６５０と、各種情報を一時記憶するＲＡＭ（Random  Access  Memory）などのメモリ６６０とを有する。そして、各装置６１０〜６６０は、バス６７０に接続される。【０１０８】
なお、ＣＰＵ６１０の代わりに、例えば、ＭＰＵ（Micro  Processing  Unit）などの電子回路、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ(Field  Programmable  Gate  Array)などの集積回路を用いることもできる。また、メモリ６６０の代わりに、フラッシュメモリ(flash  memory)などの半導体メモリ素子を用いることもできる。【０１０９】
ハードディスク装置６５０には、画像処理装置４００の機能と同様の機能を発揮する画像処理プログラム６５１および画像処理用データ６５２が記憶されている。なお、この画像処理プログラム６５１を適宜分散させて、ネットワークを介して通信可能に接続された他のコンピュータの記憶部に記憶させておくこともできる。【０１１０】
そして、ＣＰＵ６１０が、画像処理プログラム６５１をハードディスク装置６５０から読み出してＲＡＭ６６０に展開することにより、図２６に示すように、画像処理プログラム６５１は画像処理プロセス６６１として機能する。画像処理プロセス６６１は、ハードディスク装置６５０から読み出した画像処理用データ６５２等の各種データを適宜メモリ６６０上の自身に割当てられた領域に展開し、この展開した各種データに基づいて各種処理を実行する。【０１１１】
なお、画像処理プロセス６６１は、例えば、図１に示した画像処理装置４００のテーブル生成部４１０や運転支援部４２０にて実行される処理を含む。【０１１２】
なお、画像処理プログラム６５１については、必ずしも最初からハードディスク装置６５０に記憶させておく必要はない。例えば、電子機器６００が実装されたＥＣＵへ対応ドライブを接続可能なフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、電子機器６００がこれらから各プログラムを読み出して実行するようにしてもよい。【０１１３】
さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介して、電子機器６００が実装されたＥＣＵに接続される「他のコンピュータ（またはサーバ）」などに各プログラムを記憶させておく。そして、電子機器６００がこれらから各プログラムを読み出して実行するようにしてもよい。
【符号の説明】
【０１１４】
１  車両
１００Ｆ、１００Ｂ、１００Ｒ、１００Ｌ  カメラ
２００  ギアポジションセンサ
３００  画像表示部
４００  画像処理装置
４１０  テーブル生成部
４２０  運転支援部
５００  車輪角センサ
６００  電子機器
６１０  ＣＰＵ
６２０  カメラインターフェース
６３０  ディスプレイインターフェース
６４０  グラフィックエンジン
６５０  ハードディスク装置
６５１  画像処理プログラム
６５２  画像処理用データ
６６０  ＲＡＭ
６６１  画像処理プロセス
【図１】
0005500255.tif 000012
【図２】
0005500255.tif 000013
【図３】
0005500255.tif 000014
【図４】
0005500255.tif 000015
【図５】
0005500255.tif 000016
【図６】
0005500255.tif 000017
【図７】
0005500255.tif 000018
【図８】
0005500255.tif 000019
【図９】
0005500255.tif 000020
【図１０】
0005500255.tif 000021
【図１１】
0005500255.tif 000022
【図１２】
0005500255.tif 000023
【図１３】
0005500255.tif 000024
【図１４】
0005500255.tif 000025
【図１５】
0005500255.tif 000026
【図１６】
0005500255.tif 000027
【図１７】
0005500255.tif 000028
【図１８】
0005500255.tif 000029
【図１９】
0005500255.tif 000030
【図２０】
0005500255.tif 000031
【図２１】
0005500255.tif 000032
【図２２】
0005500255.tif 000033
【図２３】
0005500255.tif 000034
【図２４】
0005500255.tif 000035
【図２５】
0005500255.tif 000036
【図２６】
0005500255.tif 000037
【図２７】
0005500255.tif 000038