(57)【要約】【課題】ヨー角の精度の高い補正を実現する画像処理を実現する。【解決手段】画像処理装置は、基準線検出部と、視差算出部と、基準線補正部と、外部パラメータ算出部と、を備える。基準線検出部は、第１画像及び第２画像を含むステレオ画像について、前記第１画像の第１基準線及び第２基準線を検出する。視差算出部は、前記第１画像と、前記第２画像との間の視差を算出する。基準線補正部は、前記第２画像の第１基準線の位置を補正する。外部パラメータ算出部は、検出された前記第１画像における前記第１基準線と前記第２基準線との距離、及び、前記第１画像の前記第１基準線と前記第２画像の補正された前記第１基準線との視差、に基づいて、画像の補正に用いる外部パラメータを算出する。【選択図】図１
2020038101.tif 000002
【特許請求の範囲】
【請求項１】
第１画像及び第２画像を含むステレオ画像について、前記第１画像の第１基準線及び第２基準線を検出する、基準線検出部と、
前記第１画像と、前記第２画像との間の視差を算出する、視差算出部と、
前記第２画像の第１基準線の位置を補正する、基準線補正部と、
検出された前記第１画像における前記第１基準線と前記第２基準線との距離、及び、前記第１画像の前記第１基準線と前記第２画像の補正された前記第１基準線との視差、に基づいて、画像の補正に用いる外部パラメータを算出する、外部パラメータ算出部と、
を備える、画像処理装置。
【請求項２】
前記基準線補正部は、ホモグラフィ変換により前記第２画像の前記第１基準線の位置を補正する、請求項１に記載の画像処理装置。
【請求項３】
前記基準線補正部は、前記第２画像の補正した画像を生成することなく、前記第２画像の前記第１基準線の位置を補正する、請求項１又は請求項２に記載の画像処理装置。
【請求項４】
前記外部パラメータ算出部は、非線形最適化により、前記外部パラメータを算出する、請求項１乃至請求項３のいずれかに記載の画像処理装置。
【請求項５】
前記基準線検出部は、前記第２画像の前記第１基準線及び第２基準線を検出せずに、前記第１画像の前記第１基準線及び前記第２基準線を検出し、
前記基準線検出部により検出された前記第１画像の前記第１基準線と、前記視差算出部により算出された視差と、に基づいて、前記第２画像の前記第１基準線の位置を推定する、基準線推定部、をさらに備え、
前記基準線補正部は、前記第２画像の推定された前記第１基準線に基づいて、前記第２画像の前記第１基準線の位置を補正する、
請求項１乃至請求項４のいずれかに記載の画像処理装置。
【請求項６】
前記基準線推定部は、
前記第１画像の前記第１基準線に属する複数の点に対して、それぞれの点に対する前記視差算出部により算出された視差に基づいて、前記第２画像における対応する複数の点の位置を推定し、推定された複数の点に基づいて前記第２画像の前記第１基準線を推定する、
請求項５に記載の画像処理装置。
【請求項７】
前記基準線検出部は、前記第１画像の前記第１基準線及び前記第２基準線とともに、前記第２画像の前記第１基準線を検出し、
前記基準線補正部は、検出された前記第２画像の前記第１基準線の位置を補正する、
請求項１乃至請求項４のいずれかに記載の画像処理装置。
【請求項８】
前記外部パラメータ算出部により算出された前記外部パラメータに基づいて、前記第１画像及び前記第２画像を補正する、画像補正部、
をさらに備える請求項１乃至請求項７のいずれかに記載の画像処理装置。
【請求項９】
前記第１画像を取得する、第１カメラと、前記第２画像を取得する、第２カメラと、を備えるステレオカメラと、
前記第１カメラにより撮像された前記第１画像及び前記第２カメラにより撮像された前記第２画像に基づいて、前記外部パラメータを算出し、前記第１画像及び前記第２画像を補正する、請求項８に記載の画像処理装置と、
前記画像処理装置の出力に基づいて、運転を支援する情報を出力する、運転支援装置と、
を備える運転支援システム。
【請求項１０】
第１画像を取得する、第１カメラと、第２画像を取得する、第２カメラと、を備え、ステレオ画像を取得する、ステレオカメラと、
前記ステレオ画像のうち、少なくとも前記第１画像の第１基準線及び第２基準線を検出する、基準線検出部と、
前記第１画像と、前記第２画像との間の視差を算出する、視差算出部と、
前記第２画像の第１基準線の位置を補正する、基準線補正部と、
検出された前記第１画像における前記第１基準線と前記第２基準線との距離、及び、前記第１画像の前記第１基準線と前記第２画像の補正された前記第１基準線との視差、に基づいて、画像の補正用いる外部パラメータを算出する、外部パラメータ算出手段と、
前記外部パラメータに基づいて、画像の補正をする、画像補正部と、
補正された画像に基づいて、運転を支援する情報を出力する、運転支援部と、
を備える運転支援システム。
【請求項１１】
コンピュータを、
第１画像及び第２画像を含むステレオ画像のうち、少なくとも前記第１画像の第１基準線及び第２基準線を検出する、基準線検出手段、
前記第１画像と、前記第２画像との間の視差を算出する、視差算出手段、
前記第２画像の第１基準線の位置を補正する、基準線補正手段、
検出された前記第１画像における前記第１基準線と前記第２基準線との距離、及び、前記第１画像の前記第１基準線と前記第２画像の補正された前記第１基準線との視差、に基づいて、画像の補正に用いる外部パラメータを算出する、外部パラメータ算出手段、
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、画像処理装置、運転支援システム、画像処理方法及びプログラムに関する。
【背景技術】
【０００２】
ステレオカメラにより取得されたステレオ画像の対応する点に基づいて、カメラ同士の位置関係と各画像上の対応点の位置から、対象物の３次元位置を計測する技術は、広く知られている。この技術は、車載用のドライバーアシスタンスシステム、携帯機器、ゲーム機等の様々な分野で利用されている。このステレオカメラは、温度、振動又は経年劣化等により、光軸等がずれてしまうことがある。このようなズレを補正するための１手段として、画像のレクティフィケーション（平行化）がある。
【０００３】
それぞれのカメラで撮影された特徴点のｙ方向（カメラの撮像部同士が並んでいるｘ方向と交差する方向）のズレを検出することにより、レクティフィケーションを行う技術が広く知られている。ロール角とピッチ角については、変動があった場合に、ｙ成分のズレとして表れるため、レクティフィケーションは容易である。しかしながら、ｙ成分への影響が小さいヨー角の変動に対する影響は、このｙ成分のズレから検出することが困難であり、ノイズ等他の要因により誤差が大きくなる可能性が高い。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開２０１６／２０３９８９号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
そこで、本発明の実施形態は、ヨー角の精度の高い補正を実現する画像処理装置を提供する。
【課題を解決するための手段】
【０００６】
一実施形態によれば、画像処理装置は、基準線検出部と、視差算出部と、基準線補正部と、外部パラメータ算出部と、を備える。基準線検出部は、第１画像及び第２画像を含むステレオ画像について、前記第１画像の第１基準線及び第２基準線を検出する。視差算出部は、前記第１画像と、前記第２画像との間の視差を算出する。基準線補正部は、前記第２画像の第１基準線の位置を補正する。外部パラメータ算出部は、検出された前記第１画像における前記第１基準線と前記第２基準線との距離、及び、前記第１画像の前記第１基準線と前記第２画像の補正された前記第１基準線との前記視差、に基づいて、画像の補正に用いる外部パラメータを算出する。
【図面の簡単な説明】
【０００７】
【図１】一実施形態に係る運転支援システムの機能を示すブロック図。
【図２】一実施形態に係る画像処理装置の処理を示すフローチャート。
【図３】一実施形態に係る白線検出処理を示すフローチャート。
【図４】一実施形態に係る白線エッジ、視差、白線幅の一例を示す図。
【図５】一実施形態に係る運転支援システムの機能を示すブロック図。
【図６】一実施形態に係る画像処理装置の処理を示すフローチャート。
【図７】一実施形態に係る白線推定処理を示すフローチャート。
【図８】一実施形態に係る画像処理装置のハードウェア構成の一例を示す図。
【発明を実施するための形態】
【０００８】
以下、本発明の実施形態について、図面を参照しながら説明する。参照する図面において、同一部分又は同様な機能を有する部分には同一の符号又は類似の符号を付し、その繰り返しの説明は省略する場合がある。また、図面の寸法比率は説明の都合上実際の比率とは異なる場合や、構成の一部が図面から省略される場合がある。また、各ブロック図に示すデータの流れは、一例として示したものである。すなわち、以下に説明する実施形態において、この他のデータの流れがないことを示すものではなく、また、場合によっては、図示したデータの流れが必須の構成ではないこともある。
【０００９】
カメラのキャリブレーションに必要となるパラメータは、大きく分けて内部パラメータと外部パラメータの２つ存在する。内部パラメータは、レンズ等のカメラ固有の特性に関するパラメータであり、外部パラメータは、カメラの設置状態（位置、姿勢等）を示すパラメータである。以下に説明する実施形態は、主に外部パラメータであるヨー角の推定を行う画像処理装置に関するものである。
【００１０】
（第１実施形態）
図１は、第１実施形態に係る運転支援システム１の機能を示すブロック図である。運転支援システム１は、ステレオカメラ１０と、画像処理装置２０と、運転支援装置３０と、出力装置４０と、を備え、ステレオ画像により３次元情報を生成し、車両の運転を支援するシステムである。例えば、この運転支援システム１は、自動車に搭載される車載システムの一部を構成する。すなわち、ステレオカメラ１０、画像処理装置２０、運転支援装置３０、出力装置４０は、それぞれ自動車に搭載されていてもよい。
【００１１】
ステレオカメラ１０は、第１カメラ１００と、第２カメラ１０２と、を備える。これらのカメラは、例えば、ＣＣＤ（Charged Coupled Device）イメージセンサ、ＣＭＯＳ（Complementary Metal Oxide Semiconductor）イメージセンサ等を撮像素子として備える。第１カメラ１００は、第１画像を撮像し、第２カメラは、第２画像を撮像する。一例として、第１カメラ１００の撮像面に垂直な方向をｚ方向とし、２次元に並べられた撮像素子の鉛直方向に近い方向をｙ方向、それに垂直な撮像素子の方向、すなわち、水平方向に近い方向をｘ方向とする。一般的に第１カメラ１００と第２カメラ１０２は、水平方向に近い方向、すなわち、ｘ方向に、所定の距離をもって並べられる。例えば、これらのカメラは、自動車に搭載され、運転中及び停止中における道路等のステレオ画像を取得する。
【００１２】
実施形態の説明において、第１カメラ１００が取得した第１画像を基準として計算等を行うが、これには限られず、第２カメラ１０２が取得した第２画像を基準としてもよい。すなわち、第１カメラ１００と第２カメラ１０２とは対称な関係であり、基準となる画像は、設計その他の事由により適切に入れ替えることが可能である。
【００１３】
画像処理装置２０は、外部パラメータ取得部２００と、画像補正部２２０と、を少なくとも備え、ステレオカメラ１０で撮像された第１画像と第２画像とに対して画像処理を行う。この他、外部パラメータ取得部２００により取得されたパラメータに基づいた補正を行うか否かを判断する補正判断部、種々のフィルタリングを行うフィルタリング部、アフィン変換を行うアフィン変換部、画像ピラミッドを生成するピラミッド処理部、３次元画像の構成を行う３次元画像処理部等、システムに必要となる画像処理に関するモジュールが備えられていてもよい。また、種々のデータを格納する記憶部２３０を備えていてもよい。
【００１４】
外部パラメータ取得部２００は、上述した外部パラメータを取得し、出力する。画像補正部２２０は、外部パラメータ取得部２００が出力した外部パラメータに基づいて、ステレオ画像のキャリブレーション及び他の必要となる画像処理を行う。
【００１５】
外部パラメータ取得部２００は、白線検出部２０２と、視差算出部２０４と、白線補正部２０６と、外部パラメータ算出部２０８と、を備える。
【００１６】
白線検出部２０２は、入力された画像において、道路上に描かれている白線を検出する。白線検出は、例えば、画像をｘ方向にスキャンして、エッジを抽出し、当該エッジ付近での色の違いに基づいて白線を検出する。これに限られず、例えば、キャニーフィルタを用いたのちにハフ変換を用い、さらに、白線と認められるようにしきい値処理をする等、白線を検出できるものであればどのような手法によってもよい。
【００１７】
白線の検出とは、このように、画像において白線を構成する双方のエッジとなる線分、半直線、又は、直線を検出することを言う。すなわち、道路から白線へのエッジ、及び、白線から道路へのエッジの双方を検出する。検出された白線エッジのうち、処理に用いる直線を、画像処理装置２０が任意に選択することが可能である。以下の説明では、第１画像における画像左側に存在する白線の内側のエッジ（第１基準線）及び画像右側に存在する白線の内側のエッジ（第２基準線）の２直線、及び、第２画像における画像左側に存在する白線の内側のエッジ（第１基準線）を使用する。あくまで一例としてこれらの直線を選択するだけであり、白線のエッジのうち、他のエッジを使用しても同様に処理することが可能である。
【００１８】
視差算出部２０４は、第１画像及び第２画像の視差を算出する。視差は、例えば、双方の画像から特徴点を抽出し、当該特徴点同士のｘ座標の差を求めることにより算出される。視差算出部２０４は、注目している領域の視差を求める、例えば、白線が存在するであろうＲＯＩ（Region of Interest）をあらかじめ設定しておき当該領域内の視差を算出するものであってもよいし、画像全体の視差、すなわち、視差画像を生成するものであってもよい。これらには限られず、第１画像と第２画像における対応する白線エッジ同士、例えば、第１基準線同士の視差が算出できるものであればよい。別の例として、過去フレームの視差を記憶部２３０に記憶しておき、当該視差を用いてもよい。この場合、現フレームにおいて、最終的に補正された画像同士の視差を将来のフレームで使用できるように記憶部２３０に記憶してもよい。
【００１９】
白線補正部２０６は、検出された第１画像の白線等又は算出された第１画像と第２画像との間の視差等の情報から、第２画像の白線の位置を補正する。例えば、推定されるロール角、ピッチ角に関するパラメータを用いて示されるホモグラフィ行列を用いて、既に検出されている第２画像の白線についてホモグラフィ変換を実行することにより、第２画像の白線の位置を補正する。
【００２０】
外部パラメータ算出部２０８は、外部パラメータを算出する。特に、本実施形態においては、ヨー角を高い精度で算出する。外部パラメータ算出部２０８は、ヨー角だけではなく、ロール角、ピッチ角、及び、その他の外部パラメータを算出する。なお、外部パラメータの算出は、直接的にロール角、ピッチ角、ヨー角等を求めるものではなく、これらの外部パラメータを用いた画像の変換行列等を算出する過程であってもよい。さらには、変換行列ではなく、変換前後の画像のピクセルマッピングを表す変換テーブルを生成してもよい。この変換テーブルは、記憶部２３０に格納されてもよい。このように、外部パラメータ算出部２０８は、外部パラメータそのものではなく、当該外部パラメータによって生成される変換行列を算出するものであってもよい。
【００２１】
画像補正部２２０は、外部パラメータ算出部２０８が出力した外部パラメータに関するパラメータ、及び、ステレオカメラ１０により撮影された画像に基づいて、運転支援に必要となる画像補正を実行する。この画像補正は、例えば、外部パラメータに基づいたレクティフィケーション、レクティフィケーションされた画像を用いた第１画像及び第２画像のキャリブレーションを含んでもよい。また、外部パラメータ算出部２０８が出力した外部パラメータを用いて補正を行うか否かを判断する、補正判断部を備えていてもよい。
【００２２】
例えば、補正された画像を用いて、距離画像、物体認識画像等を出力する。これらの画像は、画像として構成されなくともよく、ピクセルに対して距離情報を羅列したデータであったり、物体を認識した領域を示すデータであったりしてもよい。すなわち、画像補正部が出力する結果は必ずしも画像データであるとは限られず、補正した画像から得られるデータであってもよい。
【００２３】
運転支援装置３０は、画像補正部２２０が出力したデータに基づいて、運転支援に必要となるデータを処理して、出力装置４０を介してドライバ、あるいは、ネットワークに接続されたサーバ等に出力する。また、別の例として、ドライブレコーダ等に補正した画像を出力してもよい。
【００２４】
出力装置４０は、運転支援装置３０により処理されたデータを出力するデバイスであり、例えば、ディスプレイ、タッチパネル、スピーカ、メモリ、ハードディスク、又は、ネットワークインタフェース、ＣＡＮ（Controller Area Network）との通信インタフェース等を備える。出力装置４０は、運転支援装置３０からの指令により、ディスプレイ、スピーカ等に支援情報を出力したり、メモリ、ハードディスク等へデータを格納したり、ネットワークを介してビッグデータにデータを提供したり、又は、ＣＡＮを介した自動車の制御等を行うための信号を出力したりする。
【００２５】
図２は、本実施形態に係る処理の流れを示すフローチャートである。このフローチャートを用いて、各構成の処理についてより詳しい説明をする。第１カメラ１００は、左側に設置され、左側の画像である第１画像を撮像し、第２カメラ１０２は、右側に設置され、右側の画像である第２画像を撮影するものとするが、これには限られず、左右の位置は逆であってもよい。
【００２６】
まず、白線検出部２０２は、第１カメラ１００及び第２カメラ１０２のそれぞれにより撮影された第１画像及び第２画像において、白線の検出を行う（Ｓ１００）。白線の検出は、例えば、各種フィルタ等を用いて実行される。
【００２７】
図３は、白線検出の処理の一例を示すフローチャートである。まず、キャニーフィルタ、ラプラシアンフィルタ等を用いてエッジ画像を作成する（Ｓ２００）。次に、エッジ画像に対して、ハフ変換等を適用し、線分を抽出する（Ｓ２０２）。次に、白線として有効なものを抽出する（Ｓ２０４）。白線として有効なものとは、例えば、１．しきい値以上の長さを有する、２．線分を延長した下端がある領域内に収まる、３．線分の傾きがしきい値以内のもの、であることに基づいて判定される。次に、消失点等の情報から白線を検出する（Ｓ２０６）。例えば、平行に近い白線であれば、白線を構成する２つのエッジと、画像の逆サイドにある対となる白線の２つのエッジの４つの線分の延長線が、消失点で交わる。このように、消失点を有するもの、又は、４つの直線が所定の範囲内の領域でそれぞれ交わるような場合に、当該線分群を白線のエッジとして検出する。
【００２８】
白線の検出はこれらには限られず、例えば、輝度に着目して白線のエッジであるという特徴点を抽出し、直線上にあるものを接続して検出してもよいし、又は、あらかじめ白線を抽出するように学習済みの機械学習モデルに画像を入力して白線を検出してもよい。
【００２９】
図２に戻り、白線の検出後、視差算出部２０４は、第１画像、第２画像間の視差を算出する（Ｓ１０２）。視差の算出は、一般的な手法を用いて実行される。視差算出部２０４は、例えば、領域ごとにＳＡＤ（Sum of Absolute Difference）、ＮＣＣ（Normalized Cross Correlation）等のテンプレートマッチング手法を用いることにより視差の算出を行う。
【００３０】
なお、視差の算出に、既に検出された白線を用いてもよいし、用いなくてもよい。例えば、第１画像及び第２画像の相互に対応する白線の式が求められている場合は、これらの白線の式を用いて視差を算出してもよい。一方で、白線の情報を用いない場合には、Ｓ１００とＳ１０２のステップは入れ替えることも可能である。また、図２においては、Ｓ１００とＳ１０２は、シーケンシャルに実行されるが、これには限られず、並列処理をしてもよい。
【００３１】
次に、白線補正部２０６は、第２画像の白線位置を補正する（Ｓ１０４）。白線位置の補正は、ホモグラフィ変換を用いて実行される。白線補正部２０６は、既に現在のフレームまでに求められているロール角、ピッチ角に関するパラメータに基づいてホモグラフィ行列を生成し、第２画像中の白線について、ホモグラフィ変換を行う。この場合、過去にさかのぼって所定数フレーム分のロール角、ピッチ角について、所定の統計処理を行い、現フレームの処理に用いてもよい。これらのデータは、記憶部２３０に蓄積しておき、必要となるタイミングで用いるようにしてもよい。
【００３２】
ロール角、ピッチ角に関するパラメータは、白線補正部２０６が算出してもよい。この場合、例えば、Ｈａｒｔｌｅｙ（"Theory and practice of projective rectification," International Journal of  Computer Vision, 1999, Vol. 35, pp. 115-127）、Ｆｕｓｉｅｌｌｏ（"Quasi-Euclidean uncalibrated epipolar rectification," 19th International Conference on Pattern recognition, 2008, pp. 1-4)、Ｄｉｖｅｒｄｉ（"Geometric calibration for mobile, stereo, autofucus cameras," IEEE Winter Conference on Applications of Computer Vision, 2016, pp. 1-8)の手法を用いて各パラメータを求め、ホモグラフィ行列を生成する。
【００３３】
第２画像中の白線のホモグラフィ変換は、例えば、左の白線エッジ（第１基準線）上に存在する点から任意に２点を抽出し、当該２点に対してホモグラフィ行列を適用して変換された点の座標を取得する。取得した点の座標から、左の白線のエッジの直線の式を算出する。このように、画像全体を変換するのではなく、直線上の点を変換することにより、少なくとも変換後の第１基準線の式を算出して第２画像の白線（第１基準線）の位置を補正する。すなわち、このステップにおいては、画像の出力は必須ではなく、２本の直線のうち少なくとも１本を示す式、又は、２本の直線のうち少なくとも１本の直線上の点（２点以上）の座標が出力されれば十分である。
【００３４】
次に、外部パラメータ算出部２０８は、外部パラメータに関するパラメータを算出する（Ｓ１０６）。外部パラメータ算出部２０８は、特に、ヨー角に関連するパラメータを算出する。
【００３５】
図４は、本実施形態に係る外部パラメータ算出の一例を説明するための図である。図４において第１画像は、第１カメラ１００から取得された画像であり、第２画像は、第２カメラ１０２から取得された画像に、白線位置補正を行った画像である。第２画像は、説明のため全ての対象が示されているが、上述したように、対象となる白線のエッジの直線の式だけがあれば以下の説明の処理を行うことが可能である。また、図中のＸｎ（ｎは整数）は、示している点のｘ成分を表す。
【００３６】
白線は、一般的に対同士で平行である。そこで、以下のように最適化を行うことにより外部パラメータの補正を行う。なお、平行であるとは、厳密に平行である必要は無い。
【００３７】
図に示すように、第１画像、第２画像において、白線のｙ方向は、ホモグラフィ変換により撮像面から同じ距離のものが同じｙ成分となるように補正されている。例えば、第１画像における左の白線エッジである第１基準線Ｌ１上の１点と、同じｙ成分における右の白線エッジである第２基準線Ｌ２上の１点との距離を白線幅Ｄ１とする。すなわち、同じｙ成分を有する第１基準線と第２基準線の各点同士の距離を白線幅とする。それぞれの点のｘ成分をＸ１、Ｘ２とすると、Ｄ１＝Ｘ２−Ｘ１として与えられる。また、左の点に対応する第２画像の点、すなわち、第１基準線Ｒ１上の点のｘ成分をＸ３とおくと、当該エッジ上の点における視差は、Ｘ１−Ｘ３として表される。同様に、左の白線エッジＬ１上の点を用いて、Ｄ２＝Ｘ５−Ｘ４、視差＝Ｘ４−Ｘ６と表される。さらに、任意の個数の左の白線エッジＬ１上の点に対して、白線幅と、視差とを算出する。この視差の算出は、上記の演算に基づいて視差算出部２０４が行ってもよい。
【００３８】
白線幅と、視差とを算出した後、以下の式を最適化することにより、ヨー角で表されるパラメータの非線形最適化手法を用いて最適化をすることができる。
【数１】
2020038101.tif 000003
【００３９】
より具体的には、［数１］で示された式を０に近づけるようにパラメータを最適化することにより、ヨー角の最適化が行われる。ここで、白線幅１、視差１は、あるｙ成分Ｙ１における白線幅と視差を示し、白線幅２、視差２は、異なるｙ成分Ｙ２における白線幅と視差を示す。例えば、Ｌ１上から１０点を選択する場合、これら１０点から２点を抽出する全ての組み合わせについて上式の｛｝２の計算をし、それらの和を求める。そして、上記の式で示される値が小さくなるようにヨー角のパラメータを最適化する。これは、消失点（白線幅＝０となる点）において、視差が０になるように最適化することを意味する。
【００４０】
外部パラメータ算出部２０８によりヨー角のパラメータが算出され、出力された後、画像処理装置２０は、その他の運転支援に必要となる画像処理を実行する。処理された画像は、運転支援装置３０へと出力され、運転支援装置３０により適切に処理されて出力装置４０を介してドライバ等のユーザへと出力され、又は、自動車を制御する信号として出力される。
【００４１】
なお、図４においては、第１基準線は、左側の白線エッジ、第２基準線は、右側の白線エッジとして説明しているがこれには限られない。第１基準線として、右側の白線エッジとしてもよい。第１基準線、第２基準線は、補正の基準となる直線であるので、いずれの基準となる直線を第１基準線、第２基準線としてもよい。
【００４２】
必要に応じて、算出した現フレームの外部パラメータを、次のフレーム以降に反映するために、記憶部２３０に格納してもよい。また、外部パラメータのみならず、白線エッジ上の点の情報、当該点に対応する白線幅、視差等の情報を記憶部２３０に記憶してもよい。これらの記憶したデータを用いて、次のフレーム以降の演算を行ってもよい。例えば、白線検出部２０２が白線検出をする場合に、当該点の周辺の領域からエッジを検出することにより、計算コスト、演算時間を削減することも可能である。視差についても同様であり、視差算出部２０４が視差を算出する場合に、既に得られている視差に基づいて第１画像と第２画像との解析を行うことにより、同様に、計算コスト等を削減することが可能となる。
【００４３】
記憶部２３０に外部パラメータを記憶し、次のフレーム以降に反映する場合、所定数の過去フレームにわたって当該外部パラメータの統計処理をしてもよい。統計処理をすることにより、統計的な誤差許容値を超えるような検出ミスや最適化ミスの影響を小さくすることが可能となる。統計処理とは、平均値、分散値、標準偏差値、共分散値等であるが、これらには限られず、メディアン、モード等であってもよいし、さらにその他の統計的に用いることのできる値であってもよい。例えば、これらの統計値を用いて、上述のＳ１０４の白線位置補正についてのパラメータを生成してもよい。
【００４４】
また、視差の算出は、Ｓ１０２のタイミングで行わなくてもよい。すなわち、図２において、Ｓ１０２のステップは、省略することが可能である。この場合、Ｓ１０６において、Ｓ１００において検出された第１画像の白線の位置と、Ｓ１０４において補正された第２画像の白線の位置とに基づいて視差を算出し、外部パラメータの算出を実行してもよい。このように、各ステップは、適宜当該ステップにおいて取得される情報が必要となるステップの前に移動することが可能である。
【００４５】
以上のように、本実施形態によれば、画像全体を補正するのではなく、白線の情報を補正して外部パラメータを算出することが可能となる。このように、白線の情報だけを補正することにより、計算コスト、メモリコストを抑制することが可能となり、さらには、例えば、運転支援においてリアルタイムに補正を行うことが可能となる。
【００４６】
より具体的には、ヨー角の正しい補正値を求めるには、レクティフィケーションされた画像を用いる必要があり、このためロール角、ピッチ角の補正値が必要となるが、ロール角とピッチ角の安定した補正には複数フレームを要することが多い。ロール角、ピッチ角算出後にヨー角の補正値を取得すると、レイテンシが長くなるため、これを回避するように、過去のフレームの画像をメモリに格納しておいて格納された情報からヨー角の補正が実行される。本実施形態によれば、このような過去のフレームの画像を格納しておく必要が無く、メモリの消費量を削減することが可能となる。また、ヨー角の推定にも複数フレームを要することが多く、この場合にはレイテンシがさらに増大する。本実施形態によれば、このようなヨー角の推定に関するレイテンシの増大を回避することも可能となる。
【００４７】
（第２実施形態）
前述した第１実施形態においては、第２画像において白線の検出を行うことが必要であったが、本実施形態においては、第２画像における白線の検出を行うことなく外部パラメータを算出しようとするものである。
【００４８】
図５は、本実施形態に係る運転支援システム１の機能を示すブロック図である。画像処理装置２０の外部パラメータ取得部２００は、白線推定部２１０をさらに備える。
【００４９】
白線推定部２１０は、白線検出部２０２が検出した第１画像の第１基準線、第２基準線と、視差算出部２０４が算出した視差から、第２画像の第１基準線を推定する。
【００５０】
図６は、本実施形態に係る画像処理装置２０の処理を示すフローチャートである。
【００５１】
まず、白線検出部２０２は、第１画像において白線を検出する（Ｓ３００）。次に、視差算出部２０４は、第１画像と第２画像との視差を算出する（Ｓ３０２）。前述の実施形態と同様に、これらの処理は、逆の順序で処理されるものであってもよいし、並行して処理されるものであってもよい。
【００５２】
次に、白線推定部２１０は、第１画像における白線エッジの検出結果と、視差と、に基づいて、第２画像における白線の推定を行う（Ｓ３０４）。例えば、図４に示す第１画像の第１基準線Ｌ１から、第２画像の第１基準線Ｒ１を推定する場合について説明する。
【００５３】
図７は、第２画像における白線の推定処理を示すフローチャートである。まず、白線検出部２０２が検出した第１画像の第１基準線を構成する点をいくつか抽出する（Ｓ４００）。この抽出は、例えば、画像の底辺から、ｙ方向に５ピクセルごとに抽出する。これには限られず、任意の方法で２以上の任意数の点を抽出するものであればよい。白線検出部２０２が、エッジにおける特徴点を抽出して白線を検出する、例えば、道路面と白線面との輝度差、微分値等に基づいて特徴点として抽出して白線を検出する場合には、当該特徴点そのものをこの任意数の点としてもよい。
【００５４】
次に、抽出された複数の点に対して、視差を用いて第２画像上における第１基準線上に存在する点を推定する（Ｓ４０２）。より具体的には、抽出された第１画像上の各点において、当該点における視差情報を用いて第２画像上における当該点に対応する点を算出することにより推定される。この推定は、算出された視差を用いて実行されるため、第２画像において直線上に推定されるとは限られない。
【００５５】
そこで、次に、推定された点について回帰分析等、例えば、最小二乗法を用いて白線エッジ、この場合、第１基準線Ｒ１の式を推定する（Ｓ４０４）。なお、この白線の推定は、前述した実施形態の白線の補正と同様に、推定した画像を生成する必要は無く、少なくとも第１基準線Ｒ１の式を算出すれば足りる。
【００５６】
白線推定部２１０は、上記のように、検出された第１画像の白線エッジの情報と、算出された第１画像、第２画像間の視差とに基づいて、第２画像の白線エッジ、少なくとも基準線のうち１本の情報を推定する。
【００５７】
図６に戻り、次に、白線補正部２０６は、第２画像の白線位置、例えば、少なくとも第１基準線Ｒ１を補正する（Ｓ３０６）。具体的には、前述の実施形態におけるＳ１０４と同様の処理を行う。そして、外部パラメータ算出部２０８は、外部パラメータを算出する（Ｓ３０８）。外部パラメータの算出は、前述の実施形態におけるＳ１０６と同様の処理を行う。
【００５８】
以上のように、本実施形態によれば、第２画像の白線検出を実行すること無く、かつ、前述の実施形態と同様に補正画像を生成することなく、外部パラメータ算出処理を実行することが可能となる。白線検出の処理は一般的には他の処理と比較してコストが高い処理となるため、本実施形態によれば、さらに計算コストを削減することが可能となる。
【００５９】
図８は、各実施形態における画像処理装置２０のハードウェア実装の例を示すブロック図である。画像処理装置２０は、プロセッサ７１と、主記憶装置７２と、補助記憶装置７３と、ネットワークインタフェース７４と、デバイスインタフェース７５と、を備え、これらがバス７６を介して接続されたデバイス７として実現できる。デバイス７は、それ自体が独立して起動できるコンピュータ装置であってもよいし、独立して起動するコンピュータ装置に組み込まれ、又は、接続されたアクセラレータであってもよい。
【００６０】
なお、図８のデバイス７は、各構成要素を一つ備えているが、同じ構成要素を複数備えていてもよい。また、１台のデバイス７が示されているが、ソフトウェアが複数のコンピュータ装置にインストールされて、当該複数のコンピュータ装置それぞれがソフトウェアの異なる一部の処理を実行してもよい。
【００６１】
プロセッサ７１は、デバイスの制御装置および演算装置を含む処理回路として動作する電子回路である。プロセッサ７１は、デバイス７の内部構成の各装置などから入力されたデータやプログラムに基づいて演算処理を行い、演算結果や制御信号を各装置などに出力する。具体的には、プロセッサ７１は、デバイス７のＯＳ（オペレーティングシステム）や、アプリケーションなどを実行することにより、デバイス７を構成する各構成要素を制御する。プロセッサ７１は、上記の処理を行うことができれば特に限られるものではない。画像処理装置２０及びその各構成要素は、プロセッサ７１により実現される。
【００６２】
主記憶装置７２は、プロセッサ７１が実行する命令および各種データなどを記憶する記憶装置であり、主記憶装置７２に記憶された情報がプロセッサ７１により直接読み出される。補助記憶装置７３は、主記憶装置７２以外の記憶装置である。なお、これらの記憶装置は、電子情報を格納可能な任意の電子部品を意味するものとし、メモリでもストレージでもよい。また、メモリには、揮発性メモリと、不揮発性メモリがあるが、いずれでもよい。画像処理装置２０内において各種データを保存するためのメモリは、主記憶装置７２または補助記憶装置７３により実現されてもよい。例えば、記憶部２３０は、この主記憶装置７２又は補助記憶装置７３に実装されていてもよい。別の例として、アクセラレータがデバイス７においてさらに備えられている場合には、記憶部２３０は、当該アクセラレータに備えられているメモリ内に実装されていてもよい。
【００６３】
ネットワークインタフェース７４は、無線または有線により、通信ネットワーク８に接続するためのインタフェースである。ネットワークインタフェース７４は、既存の通信規格に適合したものを用いればよい。ネットワークインタフェース７４により、通信ネットワーク８を介して通信接続された外部装置９Ａと情報のやり取りが行われてもよい。
【００６４】
外部装置９Ａは、例えば、ステレオカメラ、モーションキャプチャ、出力先デバイス、外部のセンサ、入力元デバイスなどが含まれる。また、外部装置９Ａは、画像処理装置２０の構成要素の一部の機能を有する装置でもよい。そして、デバイス７は、画像処理装置２０の処理結果の一部を、クラウドサービスのように通信ネットワーク８を介して送受信してもよい。
【００６５】
デバイスインタフェース７５は、外部装置９Ｂと直接接続するＵＳＢ（Universal Serial Bus）などのインタフェースである。外部装置９Ｂは、外部記憶媒体でもよいし、ストレージ装置でもよい。記憶部２３０は、外部装置９Ｂにより実現されてもよい。
【００６６】
外部装置９Ｂは出力装置でもよい。出力装置は、例えば、画像を表示するための表示装置でもよいし、音声などを出力する装置などでもよい。例えば、ＬＣＤ（Liquid Crystal Display）、ＣＲＴ（Cathode Ray Tube）、ＰＤＰ（Plasma Display Panel）、スピーカなどがあるが、これらに限られるものではない。また、ＣＡＮを介して制御される自動車の構成要素であってもよい。
【００６７】
なお、外部装置９Ｂは入力装置でもよい。入力装置は、キーボード、マウス、タッチパネルなどのデバイスを備え、これらのデバイスにより入力された情報をデバイス７に与える。入力装置からの信号はプロセッサ７１に出力される。
【００６８】
このように、上記の全ての記載において、画像処理装置２０の少なくとも一部はハードウェアで構成されていてもよいし、ソフトウェアで構成され、ソフトウェアの情報処理によりＣＰＵ等が実施をしてもよい。ソフトウェアで構成される場合には、画像処理装置２０及びその少なくとも一部の機能を実現するプログラムをフレキシブルディスクやＣＤ−ＲＯＭ等の記憶媒体に収納し、コンピュータに読み込ませて実行させるものであってもよい。記憶媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記憶媒体であってもよい。すなわち、ソフトウェアによる情報処理がハードウェア資源を用いて具体的に実装されるものであってもよい。さらに、ソフトウェアによる処理は、ＦＰＧＡ等の回路に実装され、ハードウェアが実行するものであってもよい。
【００６９】
例えば、コンピュータが読み取り可能な記憶媒体に記憶された専用のソフトウェアをコンピュータが読み出すことにより、コンピュータを上記の実施形態の装置とすることができる。記憶媒体の種類は特に限定されるものではない。また、通信ネットワークを介してダウンロードされた専用のソフトウェアをコンピュータがインストールすることにより、コンピュータを上記の実施形態の装置とすることができる。こうして、ソフトウェアによる情報処理が、ハードウェア資源を用いて、具体的に実装される。
【００７０】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として例示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【００７１】
例えば、前述した全ての実施形態においては、説明の簡単のため、検出した白線に基づいて視差及び当該白線同士の幅を取得したがこれには限られない。白線のかわりに、橙線、緑線、青線等他の色の線であってもよいし、縁石、ガードレール、道路脇の壁、道路上に設置されているキャッツアイ等、平行な直線状に構成されているものであればよい。さらに、第１画像及び第２画像において同一の線において視差を取得できるものであれば、白線同士の幅ではなく、縁石と白線の幅等、別のもの同士の存在する領域の幅を取得してもよい。このように、基準線として白線を用いないことも可能であり、この場合、白線検出部２０２は、基準線検出部であり、白線補正部２０６は、基準線補正部であり、白線推定部２１０は、基準線推定部となる。
【符号の説明】
【００７２】
１：運転支援システム、１０：ステレオカメラ、１００：第１カメラ、１０２：第２カメラ、２０：画像処理装置、２００：外部パラメータ取得部、２０２：白線検出部、２０４：視差算出部、２０６：白線補正部、２０８：外部パラメータ算出部、２１０：白線推定部、２２０：画像補正部、３０：運転支援装置、４０：出力装置
【図１】
2020038101.tif 000004
【図２】
2020038101.tif 000005
【図３】
2020038101.tif 000006
【図４】
2020038101.tif 000007
【図５】
2020038101.tif 000008
【図６】
2020038101.tif 000009
【図７】
2020038101.tif 000010
【図８】
2020038101.tif 000011