(58)【調査した分野】(Int.Cl.,DB名)
前記基準線補正部は、前記第2画像の補正した画像を生成することなく、前記第2画像の前記第1基準線の位置を補正する、請求項1又は請求項2に記載の画像処理装置。
【発明を実施するための形態】
【0008】
以下、本発明の実施形態について、図面を参照しながら説明する。参照する図面において、同一部分又は同様な機能を有する部分には同一の符号又は類似の符号を付し、その繰り返しの説明は省略する場合がある。また、図面の寸法比率は説明の都合上実際の比率とは異なる場合や、構成の一部が図面から省略される場合がある。また、各ブロック図に示すデータの流れは、一例として示したものである。すなわち、以下に説明する実施形態において、この他のデータの流れがないことを示すものではなく、また、場合によっては、図示したデータの流れが必須の構成ではないこともある。
【0009】
カメラのキャリブレーションに必要となるパラメータは、大きく分けて内部パラメータと外部パラメータの2つ存在する。内部パラメータは、レンズ等のカメラ固有の特性に関するパラメータであり、外部パラメータは、カメラの設置状態(位置、姿勢等)を示すパラメータである。以下に説明する実施形態は、主に外部パラメータであるヨー角の推定を行う画像処理装置に関するものである。
【0010】
(第1実施形態)
図1は、第1実施形態に係る運転支援システム1の機能を示すブロック図である。運転支援システム1は、ステレオカメラ10と、画像処理装置20と、運転支援装置30と、出力装置40と、を備え、ステレオ画像により3次元情報を生成し、車両の運転を支援するシステムである。例えば、この運転支援システム1は、自動車に搭載される車載システムの一部を構成する。すなわち、ステレオカメラ10、画像処理装置20、運転支援装置30、出力装置40は、それぞれ自動車に搭載されていてもよい。
【0011】
ステレオカメラ10は、第1カメラ100と、第2カメラ102と、を備える。これらのカメラは、例えば、CCD(Charged Coupled Device)イメージセンサ、CMOS(Complementary Metal Oxide Semiconductor)イメージセンサ等を撮像素子として備える。第1カメラ100は、第1画像を撮像し、第2カメラは、第2画像を撮像する。一例として、第1カメラ100の撮像面に垂直な方向をz方向とし、2次元に並べられた撮像素子の鉛直方向に近い方向をy方向、それに垂直な撮像素子の方向、すなわち、水平方向に近い方向をx方向とする。一般的に第1カメラ100と第2カメラ102は、水平方向に近い方向、すなわち、x方向に、所定の距離をもって並べられる。例えば、これらのカメラは、自動車に搭載され、運転中及び停止中における道路等のステレオ画像を取得する。
【0012】
実施形態の説明において、第1カメラ100が取得した第1画像を基準として計算等を行うが、これには限られず、第2カメラ102が取得した第2画像を基準としてもよい。すなわち、第1カメラ100と第2カメラ102とは対称な関係であり、基準となる画像は、設計その他の事由により適切に入れ替えることが可能である。
【0013】
画像処理装置20は、外部パラメータ取得部200と、画像補正部220と、を少なくとも備え、ステレオカメラ10で撮像された第1画像と第2画像とに対して画像処理を行う。この他、外部パラメータ取得部200により取得されたパラメータに基づいた補正を行うか否かを判断する補正判断部、種々のフィルタリングを行うフィルタリング部、アフィン変換を行うアフィン変換部、画像ピラミッドを生成するピラミッド処理部、3次元画像の構成を行う3次元画像処理部等、システムに必要となる画像処理に関するモジュールが備えられていてもよい。また、種々のデータを格納する記憶部230を備えていてもよい。
【0014】
外部パラメータ取得部200は、上述した外部パラメータを取得し、出力する。画像補正部220は、外部パラメータ取得部200が出力した外部パラメータに基づいて、ステレオ画像のキャリブレーション及び他の必要となる画像処理を行う。
【0015】
外部パラメータ取得部200は、白線検出部202と、視差算出部204と、白線補正部206と、外部パラメータ算出部208と、を備える。
【0016】
白線検出部202は、入力された画像において、道路上に描かれている白線を検出する。白線検出は、例えば、画像をx方向にスキャンして、エッジを抽出し、当該エッジ付近での色の違いに基づいて白線を検出する。これに限られず、例えば、キャニーフィルタを用いたのちにハフ変換を用い、さらに、白線と認められるようにしきい値処理をする等、白線を検出できるものであればどのような手法によってもよい。
【0017】
白線の検出とは、このように、画像において白線を構成する双方のエッジとなる線分、半直線、又は、直線を検出することを言う。すなわち、道路から白線へのエッジ、及び、白線から道路へのエッジの双方を検出する。検出された白線エッジのうち、処理に用いる直線を、画像処理装置20が任意に選択することが可能である。以下の説明では、第1画像における画像左側に存在する白線の内側のエッジ(第1基準線)及び画像右側に存在する白線の内側のエッジ(第2基準線)の2直線、及び、第2画像における画像左側に存在する白線の内側のエッジ(第1基準線)を使用する。あくまで一例としてこれらの直線を選択するだけであり、白線のエッジのうち、他のエッジを使用しても同様に処理することが可能である。
【0018】
視差算出部204は、第1画像及び第2画像の視差を算出する。視差は、例えば、双方の画像から特徴点を抽出し、当該特徴点同士のx座標の差を求めることにより算出される。視差算出部204は、注目している領域の視差を求める、例えば、白線が存在するであろうROI(Region of Interest)をあらかじめ設定しておき当該領域内の視差を算出するものであってもよいし、画像全体の視差、すなわち、視差画像を生成するものであってもよい。これらには限られず、第1画像と第2画像における対応する白線エッジ同士、例えば、第1基準線同士の視差が算出できるものであればよい。別の例として、過去フレームの視差を記憶部230に記憶しておき、当該視差を用いてもよい。この場合、現フレームにおいて、最終的に補正された画像同士の視差を将来のフレームで使用できるように記憶部230に記憶してもよい。
【0019】
白線補正部206は、検出された第1画像の白線等又は算出された第1画像と第2画像との間の視差等の情報から、第2画像の白線の位置を補正する。例えば、推定されるロール角、ピッチ角に関するパラメータを用いて示されるホモグラフィ行列を用いて、既に検出されている第2画像の白線についてホモグラフィ変換を実行することにより、第2画像の白線の位置を補正する。
【0020】
外部パラメータ算出部208は、外部パラメータを算出する。特に、本実施形態においては、ヨー角を高い精度で算出する。外部パラメータ算出部208は、ヨー角だけではなく、ロール角、ピッチ角、及び、その他の外部パラメータを算出する。なお、外部パラメータの算出は、直接的にロール角、ピッチ角、ヨー角等を求めるものではなく、これらの外部パラメータを用いた画像の変換行列等を算出する過程であってもよい。さらには、変換行列ではなく、変換前後の画像のピクセルマッピングを表す変換テーブルを生成してもよい。この変換テーブルは、記憶部230に格納されてもよい。このように、外部パラメータ算出部208は、外部パラメータそのものではなく、当該外部パラメータによって生成される変換行列を算出するものであってもよい。
【0021】
画像補正部220は、外部パラメータ算出部208が出力した外部パラメータに関するパラメータ、及び、ステレオカメラ10により撮影された画像に基づいて、運転支援に必要となる画像補正を実行する。この画像補正は、例えば、外部パラメータに基づいたレクティフィケーション、レクティフィケーションされた画像を用いた第1画像及び第2画像のキャリブレーションを含んでもよい。また、外部パラメータ算出部208が出力した外部パラメータを用いて補正を行うか否かを判断する、補正判断部を備えていてもよい。
【0022】
例えば、補正された画像を用いて、距離画像、物体認識画像等を出力する。これらの画像は、画像として構成されなくともよく、ピクセルに対して距離情報を羅列したデータであったり、物体を認識した領域を示すデータであったりしてもよい。すなわち、画像補正部が出力する結果は必ずしも画像データであるとは限られず、補正した画像から得られるデータであってもよい。
【0023】
運転支援装置30は、画像補正部220が出力したデータに基づいて、運転支援に必要となるデータを処理して、出力装置40を介してドライバ、あるいは、ネットワークに接続されたサーバ等に出力する。また、別の例として、ドライブレコーダ等に補正した画像を出力してもよい。
【0024】
出力装置40は、運転支援装置30により処理されたデータを出力するデバイスであり、例えば、ディスプレイ、タッチパネル、スピーカ、メモリ、ハードディスク、又は、ネットワークインタフェース、CAN(Controller Area Network)との通信インタフェース等を備える。出力装置40は、運転支援装置30からの指令により、ディスプレイ、スピーカ等に支援情報を出力したり、メモリ、ハードディスク等へデータを格納したり、ネットワークを介してビッグデータにデータを提供したり、又は、CANを介した自動車の制御等を行うための信号を出力したりする。
【0025】
図2は、本実施形態に係る処理の流れを示すフローチャートである。このフローチャートを用いて、各構成の処理についてより詳しい説明をする。第1カメラ100は、左側に設置され、左側の画像である第1画像を撮像し、第2カメラ102は、右側に設置され、右側の画像である第2画像を撮影するものとするが、これには限られず、左右の位置は逆であってもよい。
【0026】
まず、白線検出部202は、第1カメラ100及び第2カメラ102のそれぞれにより撮影された第1画像及び第2画像において、白線の検出を行う(S100)。白線の検出は、例えば、各種フィルタ等を用いて実行される。
【0027】
図3は、白線検出の処理の一例を示すフローチャートである。まず、キャニーフィルタ、ラプラシアンフィルタ等を用いてエッジ画像を作成する(S200)。次に、エッジ画像に対して、ハフ変換等を適用し、線分を抽出する(S202)。次に、白線として有効なものを抽出する(S204)。白線として有効なものとは、例えば、1.しきい値以上の長さを有する、2.線分を延長した下端がある領域内に収まる、3.線分の傾きがしきい値以内のもの、であることに基づいて判定される。次に、消失点等の情報から白線を検出する(S206)。例えば、平行に近い白線であれば、白線を構成する2つのエッジと、画像の逆サイドにある対となる白線の2つのエッジの4つの線分の延長線が、消失点で交わる。このように、消失点を有するもの、又は、4つの直線が所定の範囲内の領域でそれぞれ交わるような場合に、当該線分群を白線のエッジとして検出する。
【0028】
白線の検出はこれらには限られず、例えば、輝度に着目して白線のエッジであるという特徴点を抽出し、直線上にあるものを接続して検出してもよいし、又は、あらかじめ白線を抽出するように学習済みの機械学習モデルに画像を入力して白線を検出してもよい。
【0029】
図2に戻り、白線の検出後、視差算出部204は、第1画像、第2画像間の視差を算出する(S102)。視差の算出は、一般的な手法を用いて実行される。視差算出部204は、例えば、領域ごとにSAD(Sum of Absolute Difference)、NCC(Normalized Cross Correlation)等のテンプレートマッチング手法を用いることにより視差の算出を行う。
【0030】
なお、視差の算出に、既に検出された白線を用いてもよいし、用いなくてもよい。例えば、第1画像及び第2画像の相互に対応する白線の式が求められている場合は、これらの白線の式を用いて視差を算出してもよい。一方で、白線の情報を用いない場合には、S100とS102のステップは入れ替えることも可能である。また、
図2においては、S100とS102は、シーケンシャルに実行されるが、これには限られず、並列処理をしてもよい。
【0031】
次に、白線補正部206は、第2画像の白線位置を補正する(S104)。白線位置の補正は、ホモグラフィ変換を用いて実行される。白線補正部206は、既に現在のフレームまでに求められているロール角、ピッチ角に関するパラメータに基づいてホモグラフィ行列を生成し、第2画像中の白線について、ホモグラフィ変換を行う。この場合、過去にさかのぼって所定数フレーム分のロール角、ピッチ角について、所定の統計処理を行い、現フレームの処理に用いてもよい。これらのデータは、記憶部230に蓄積しておき、必要となるタイミングで用いるようにしてもよい。
【0032】
ロール角、ピッチ角に関するパラメータは、白線補正部206が算出してもよい。この場合、例えば、Hartley("Theory and practice of projective rectification," International Journal of Computer Vision, 1999, Vol. 35, pp. 115-127)、Fusiello("Quasi-Euclidean uncalibrated epipolar rectification," 19th International Conference on Pattern recognition, 2008, pp. 1-4)、Diverdi("Geometric calibration for mobile, stereo, autofucus cameras," IEEE Winter Conference on Applications of Computer Vision, 2016, pp. 1-8)の手法を用いて各パラメータを求め、ホモグラフィ行列を生成する。
【0033】
第2画像中の白線のホモグラフィ変換は、例えば、左の白線エッジ(第1基準線)上に存在する点から任意に2点を抽出し、当該2点に対してホモグラフィ行列を適用して変換された点の座標を取得する。取得した点の座標から、左の白線のエッジの直線の式を算出する。このように、画像全体を変換するのではなく、直線上の点を変換することにより、少なくとも変換後の第1基準線の式を算出して第2画像の白線(第1基準線)の位置を補正する。すなわち、このステップにおいては、画像の出力は必須ではなく、2本の直線のうち少なくとも1本を示す式、又は、2本の直線のうち少なくとも1本の直線上の点(2点以上)の座標が出力されれば十分である。
【0034】
次に、外部パラメータ算出部208は、外部パラメータに関するパラメータを算出する(S106)。外部パラメータ算出部208は、特に、ヨー角に関連するパラメータを算出する。
【0035】
図4は、本実施形態に係る外部パラメータ算出の一例を説明するための図である。
図4において第1画像は、第1カメラ100から取得された画像であり、第2画像は、第2カメラ102から取得された画像に、白線位置補正を行った画像である。第2画像は、説明のため全ての対象が示されているが、上述したように、対象となる白線のエッジの直線の式だけがあれば以下の説明の処理を行うことが可能である。また、図中のXn(nは整数)は、示している点のx成分を表す。
【0036】
白線は、一般的に対同士で平行である。そこで、以下のように最適化を行うことにより外部パラメータの補正を行う。なお、平行であるとは、厳密に平行である必要は無い。
【0037】
図に示すように、第1画像、第2画像において、白線のy方向は、ホモグラフィ変換により撮像面から同じ距離のものが同じy成分となるように補正されている。例えば、第1画像における左の白線エッジである第1基準線L1上の1点と、同じy成分における右の白線エッジである第2基準線L2上の1点との距離を白線幅D1とする。すなわち、同じy成分を有する第1基準線と第2基準線の各点同士の距離を白線幅とする。それぞれの点のx成分をX1、X2とすると、D1=X2−X1として与えられる。また、左の点に対応する第2画像の点、すなわち、第1基準線R1上の点のx成分をX3とおくと、当該エッジ上の点における視差は、X1−X3として表される。同様に、左の白線エッジL1上の点を用いて、D2=X5−X4、視差=X4−X6と表される。さらに、任意の個数の左の白線エッジL1上の点に対して、白線幅と、視差とを算出する。この視差の算出は、上記の演算に基づいて視差算出部204が行ってもよい。
【0038】
白線幅と、視差とを算出した後、以下の式を最適化することにより、ヨー角で表されるパラメータの非線形最適化手法を用いて最適化をすることができる。
【数1】
【0039】
より具体的には、[数1]で示された式を0に近づけるようにパラメータを最適化することにより、ヨー角の最適化が行われる。ここで、白線幅1、視差1は、あるy成分Y1における白線幅と視差を示し、白線幅2、視差2は、異なるy成分Y2における白線幅と視差を示す。例えば、L1上から10点を選択する場合、これら10点から2点を抽出する全ての組み合わせについて上式の{}
2の計算をし、それらの和を求める。そして、上記の式で示される値が小さくなるようにヨー角のパラメータを最適化する。これは、消失点(白線幅=0となる点)において、視差が0になるように最適化することを意味する。
【0040】
外部パラメータ算出部208によりヨー角のパラメータが算出され、出力された後、画像処理装置20は、その他の運転支援に必要となる画像処理を実行する。処理された画像は、運転支援装置30へと出力され、運転支援装置30により適切に処理されて出力装置40を介してドライバ等のユーザへと出力され、又は、自動車を制御する信号として出力される。
【0041】
なお、
図4においては、第1基準線は、左側の白線エッジ、第2基準線は、右側の白線エッジとして説明しているがこれには限られない。第1基準線として、右側の白線エッジとしてもよい。第1基準線、第2基準線は、補正の基準となる直線であるので、いずれの基準となる直線を第1基準線、第2基準線としてもよい。
【0042】
必要に応じて、算出した現フレームの外部パラメータを、次のフレーム以降に反映するために、記憶部230に格納してもよい。また、外部パラメータのみならず、白線エッジ上の点の情報、当該点に対応する白線幅、視差等の情報を記憶部230に記憶してもよい。これらの記憶したデータを用いて、次のフレーム以降の演算を行ってもよい。例えば、白線検出部202が白線検出をする場合に、当該点の周辺の領域からエッジを検出することにより、計算コスト、演算時間を削減することも可能である。視差についても同様であり、視差算出部204が視差を算出する場合に、既に得られている視差に基づいて第1画像と第2画像との解析を行うことにより、同様に、計算コスト等を削減することが可能となる。
【0043】
記憶部230に外部パラメータを記憶し、次のフレーム以降に反映する場合、所定数の過去フレームにわたって当該外部パラメータの統計処理をしてもよい。統計処理をすることにより、統計的な誤差許容値を超えるような検出ミスや最適化ミスの影響を小さくすることが可能となる。統計処理とは、平均値、分散値、標準偏差値、共分散値等であるが、これらには限られず、メディアン、モード等であってもよいし、さらにその他の統計的に用いることのできる値であってもよい。例えば、これらの統計値を用いて、上述のS104の白線位置補正についてのパラメータを生成してもよい。
【0044】
また、視差の算出は、S102のタイミングで行わなくてもよい。すなわち、
図2において、S102のステップは、省略することが可能である。この場合、S106において、S100において検出された第1画像の白線の位置と、S104において補正された第2画像の白線の位置とに基づいて視差を算出し、外部パラメータの算出を実行してもよい。このように、各ステップは、適宜当該ステップにおいて取得される情報が必要となるステップの前に移動することが可能である。
【0045】
以上のように、本実施形態によれば、画像全体を補正するのではなく、白線の情報を補正して外部パラメータを算出することが可能となる。このように、白線の情報だけを補正することにより、計算コスト、メモリコストを抑制することが可能となり、さらには、例えば、運転支援においてリアルタイムに補正を行うことが可能となる。
【0046】
より具体的には、ヨー角の正しい補正値を求めるには、レクティフィケーションされた画像を用いる必要があり、このためロール角、ピッチ角の補正値が必要となるが、ロール角とピッチ角の安定した補正には複数フレームを要することが多い。ロール角、ピッチ角算出後にヨー角の補正値を取得すると、レイテンシが長くなるため、これを回避するように、過去のフレームの画像をメモリに格納しておいて格納された情報からヨー角の補正が実行される。本実施形態によれば、このような過去のフレームの画像を格納しておく必要が無く、メモリの消費量を削減することが可能となる。また、ヨー角の推定にも複数フレームを要することが多く、この場合にはレイテンシがさらに増大する。本実施形態によれば、このようなヨー角の推定に関するレイテンシの増大を回避することも可能となる。
【0047】
(第2実施形態)
前述した第1実施形態においては、第2画像において白線の検出を行うことが必要であったが、本実施形態においては、第2画像における白線の検出を行うことなく外部パラメータを算出しようとするものである。
【0048】
図5は、本実施形態に係る運転支援システム1の機能を示すブロック図である。画像処理装置20の外部パラメータ取得部200は、白線推定部210をさらに備える。
【0049】
白線推定部210は、白線検出部202が検出した第1画像の第1基準線、第2基準線と、視差算出部204が算出した視差から、第2画像の第1基準線を推定する。
【0050】
図6は、本実施形態に係る画像処理装置20の処理を示すフローチャートである。
【0051】
まず、白線検出部202は、第1画像において白線を検出する(S300)。次に、視差算出部204は、第1画像と第2画像との視差を算出する(S302)。前述の実施形態と同様に、これらの処理は、逆の順序で処理されるものであってもよいし、並行して処理されるものであってもよい。
【0052】
次に、白線推定部210は、第1画像における白線エッジの検出結果と、視差と、に基づいて、第2画像における白線の推定を行う(S304)。例えば、
図4に示す第1画像の第1基準線L1から、第2画像の第1基準線R1を推定する場合について説明する。
【0053】
図7は、第2画像における白線の推定処理を示すフローチャートである。まず、白線検出部202が検出した第1画像の第1基準線を構成する点をいくつか抽出する(S400)。この抽出は、例えば、画像の底辺から、y方向に5ピクセルごとに抽出する。これには限られず、任意の方法で2以上の任意数の点を抽出するものであればよい。白線検出部202が、エッジにおける特徴点を抽出して白線を検出する、例えば、道路面と白線面との輝度差、微分値等に基づいて特徴点として抽出して白線を検出する場合には、当該特徴点そのものをこの任意数の点としてもよい。
【0054】
次に、抽出された複数の点に対して、視差を用いて第2画像上における第1基準線上に存在する点を推定する(S402)。より具体的には、抽出された第1画像上の各点において、当該点における視差情報を用いて第2画像上における当該点に対応する点を算出することにより推定される。この推定は、算出された視差を用いて実行されるため、第2画像において直線上に推定されるとは限られない。
【0055】
そこで、次に、推定された点について回帰分析等、例えば、最小二乗法を用いて白線エッジ、この場合、第1基準線R1の式を推定する(S404)。なお、この白線の推定は、前述した実施形態の白線の補正と同様に、推定した画像を生成する必要は無く、少なくとも第1基準線R1の式を算出すれば足りる。
【0056】
白線推定部210は、上記のように、検出された第1画像の白線エッジの情報と、算出された第1画像、第2画像間の視差とに基づいて、第2画像の白線エッジ、少なくとも基準線のうち1本の情報を推定する。
【0057】
図6に戻り、次に、白線補正部206は、第2画像の白線位置、例えば、少なくとも第1基準線R1を補正する(S306)。具体的には、前述の実施形態におけるS104と同様の処理を行う。そして、外部パラメータ算出部208は、外部パラメータを算出する(S308)。外部パラメータの算出は、前述の実施形態におけるS106と同様の処理を行う。
【0058】
以上のように、本実施形態によれば、第2画像の白線検出を実行すること無く、かつ、前述の実施形態と同様に補正画像を生成することなく、外部パラメータ算出処理を実行することが可能となる。白線検出の処理は一般的には他の処理と比較してコストが高い処理となるため、本実施形態によれば、さらに計算コストを削減することが可能となる。
【0059】
図8は、各実施形態における画像処理装置20のハードウェア実装の例を示すブロック図である。画像処理装置20は、プロセッサ71と、主記憶装置72と、補助記憶装置73と、ネットワークインタフェース74と、デバイスインタフェース75と、を備え、これらがバス76を介して接続されたデバイス7として実現できる。デバイス7は、それ自体が独立して起動できるコンピュータ装置であってもよいし、独立して起動するコンピュータ装置に組み込まれ、又は、接続されたアクセラレータであってもよい。
【0060】
なお、
図8のデバイス7は、各構成要素を一つ備えているが、同じ構成要素を複数備えていてもよい。また、1台のデバイス7が示されているが、ソフトウェアが複数のコンピュータ装置にインストールされて、当該複数のコンピュータ装置それぞれがソフトウェアの異なる一部の処理を実行してもよい。
【0061】
プロセッサ71は、デバイスの制御装置および演算装置を含む処理回路として動作する電子回路である。プロセッサ71は、デバイス7の内部構成の各装置などから入力されたデータやプログラムに基づいて演算処理を行い、演算結果や制御信号を各装置などに出力する。具体的には、プロセッサ71は、デバイス7のOS(オペレーティングシステム)や、アプリケーションなどを実行することにより、デバイス7を構成する各構成要素を制御する。プロセッサ71は、上記の処理を行うことができれば特に限られるものではない。画像処理装置20及びその各構成要素は、プロセッサ71により実現される。
【0062】
主記憶装置72は、プロセッサ71が実行する命令および各種データなどを記憶する記憶装置であり、主記憶装置72に記憶された情報がプロセッサ71により直接読み出される。補助記憶装置73は、主記憶装置72以外の記憶装置である。なお、これらの記憶装置は、電子情報を格納可能な任意の電子部品を意味するものとし、メモリでもストレージでもよい。また、メモリには、揮発性メモリと、不揮発性メモリがあるが、いずれでもよい。画像処理装置20内において各種データを保存するためのメモリは、主記憶装置72または補助記憶装置73により実現されてもよい。例えば、記憶部230は、この主記憶装置72又は補助記憶装置73に実装されていてもよい。別の例として、アクセラレータがデバイス7においてさらに備えられている場合には、記憶部230は、当該アクセラレータに備えられているメモリ内に実装されていてもよい。
【0063】
ネットワークインタフェース74は、無線または有線により、通信ネットワーク8に接続するためのインタフェースである。ネットワークインタフェース74は、既存の通信規格に適合したものを用いればよい。ネットワークインタフェース74により、通信ネットワーク8を介して通信接続された外部装置9Aと情報のやり取りが行われてもよい。
【0064】
外部装置9Aは、例えば、ステレオカメラ、モーションキャプチャ、出力先デバイス、外部のセンサ、入力元デバイスなどが含まれる。また、外部装置9Aは、画像処理装置20の構成要素の一部の機能を有する装置でもよい。そして、デバイス7は、画像処理装置20の処理結果の一部を、クラウドサービスのように通信ネットワーク8を介して送受信してもよい。
【0065】
デバイスインタフェース75は、外部装置9Bと直接接続するUSB(Universal Serial Bus)などのインタフェースである。外部装置9Bは、外部記憶媒体でもよいし、ストレージ装置でもよい。記憶部230は、外部装置9Bにより実現されてもよい。
【0066】
外部装置9Bは出力装置でもよい。出力装置は、例えば、画像を表示するための表示装置でもよいし、音声などを出力する装置などでもよい。例えば、LCD(Liquid Crystal Display)、CRT(Cathode Ray Tube)、PDP(Plasma Display Panel)、スピーカなどがあるが、これらに限られるものではない。また、CANを介して制御される自動車の構成要素であってもよい。
【0067】
なお、外部装置9Bは入力装置でもよい。入力装置は、キーボード、マウス、タッチパネルなどのデバイスを備え、これらのデバイスにより入力された情報をデバイス7に与える。入力装置からの信号はプロセッサ71に出力される。
【0068】
このように、上記の全ての記載において、画像処理装置20の少なくとも一部はハードウェアで構成されていてもよいし、ソフトウェアで構成され、ソフトウェアの情報処理によりCPU等が実施をしてもよい。ソフトウェアで構成される場合には、画像処理装置20及びその少なくとも一部の機能を実現するプログラムをフレキシブルディスクやCD−ROM等の記憶媒体に収納し、コンピュータに読み込ませて実行させるものであってもよい。記憶媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記憶媒体であってもよい。すなわち、ソフトウェアによる情報処理がハードウェア資源を用いて具体的に実装されるものであってもよい。さらに、ソフトウェアによる処理は、FPGA等の回路に実装され、ハードウェアが実行するものであってもよい。
【0069】
例えば、コンピュータが読み取り可能な記憶媒体に記憶された専用のソフトウェアをコンピュータが読み出すことにより、コンピュータを上記の実施形態の装置とすることができる。記憶媒体の種類は特に限定されるものではない。また、通信ネットワークを介してダウンロードされた専用のソフトウェアをコンピュータがインストールすることにより、コンピュータを上記の実施形態の装置とすることができる。こうして、ソフトウェアによる情報処理が、ハードウェア資源を用いて、具体的に実装される。
【0070】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として例示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【0071】
例えば、前述した全ての実施形態においては、説明の簡単のため、検出した白線に基づいて視差及び当該白線同士の幅を取得したがこれには限られない。白線のかわりに、橙線、緑線、青線等他の色の線であってもよいし、縁石、ガードレール、道路脇の壁、道路上に設置されているキャッツアイ等、平行な直線状に構成されているものであればよい。さらに、第1画像及び第2画像において同一の線において視差を取得できるものであれば、白線同士の幅ではなく、縁石と白線の幅等、別のもの同士の存在する領域の幅を取得してもよい。このように、基準線として白線を用いないことも可能であり、この場合、白線検出部202は、基準線検出部であり、白線補正部206は、基準線補正部であり、白線推定部210は、基準線推定部となる。