(57)【要約】      （修正有）【課題】路面モデルの精度を高めることができる路面検出装置を提供する。【解決手段】路面検出装置１は、距離画像に基づいて路面モデルを生成する路面モデル生成部２１と、距離画像に基づいて、距離画像に含まれる複数の画像点のうち、その画像点に対応する３次元座標点が、路面モデルが示す路面に対応する面よりも下に位置する画像点の数を求め、その画像点の数が所定数より大きい第１の条件を満たすかどうかを判定し、第１の条件を含む１または複数の条件を満たした場合に、路面モデル生成部が生成した路面モデルの全部または一部を無効にする検証処理部２２とを備える。【選択図】図１
2020077102.tif 000002
【特許請求の範囲】
【請求項１】
距離画像に基づいて路面モデルを生成する路面モデル生成部と、
前記距離画像に基づいて、前記距離画像に含まれる複数の画像点のうち、その画像点に対応する３次元座標点が、前記路面モデルが示す路面に対応する面よりも下に位置する画像点の数を求め、その画像点の数が所定数より大きい第１の条件を満たすかどうかを判定し、前記第１の条件を含む１または複数の条件を満たした場合に、前記路面モデル生成部が生成した前記路面モデルの全部または一部を無効にする検証処理部と
を備えた路面検出装置。
【請求項２】
前記路面モデルは、傾斜路面モデルを含み、
前記検証処理部は、前記路面モデル生成部が生成した前記路面モデルのうちの前記傾斜路面モデルを無効にする
請求項１に記載の路面検出装置。
【請求項３】
前記路面モデルは、傾斜路面モデルを含み、
前記検証処理部は、さらに、前記距離画像に基づいて傾斜路面幅を求め、その傾斜路面幅が所定の幅より狭い第２の条件を満たすかどうかを判定し、
前記１または複数の条件は、前記第２の条件を含む
請求項１または請求項２に記載の路面検出装置。
【請求項４】
前記路面モデルは、傾斜路面モデルを含み、
前記検証処理部は、さらに、前記傾斜路面モデルが示す傾斜勾配を求め、その傾斜勾配が所定の勾配よりも大きい第３の条件を満たすかどうかを判定し、
前記１または複数の条件は、前記第３の条件を含む
請求項１から請求項３のいずれか一項に記載の路面検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、車両が走行している走行路の路面を検出する路面検出装置に関する。
【背景技術】
【０００２】
自動車等の車両では、しばしば走行している走行路の路面が検出され、検出された路面についての情報に基づいて、例えば走行制御が行われる。特許文献１には、距離画像に基づいて、走行路の路面を特定する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１０−１４３６５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
このような車両では、走行路の路面を示す路面モデルが生成される。この路面モデルは、精度が高いことが望まれており、さらなる精度の向上が期待されている。
【０００５】
路面モデルの精度を高めることができる路面検出装置を提供することが望ましい。
【課題を解決するための手段】
【０００６】
本開示の一実施の形態に係る路面検出装置は、路面モデル生成部と、検証処理部とを備える。路面モデル生成部は、距離画像に基づいて路面モデルを生成するように構成される。検証処理部は、距離画像に基づいて、距離画像に含まれる複数の画像点のうち、その画像点に対応する３次元座標点が、路面モデルが示す路面に対応する面よりも下に位置する画像点の数を求め、その画像点の数が所定数より大きい第１の条件を満たすかどうかを判定する第１の処理を行い、第１の条件を含む１または複数の条件を満たした場合に、路面モデル生成部が生成した路面モデルの全部または一部を無効にするように構成される。
【発明の効果】
【０００７】
本開示の一実施の形態に係る路面検出装置によれば、路面モデルの精度を高めることができる。
【図面の簡単な説明】
【０００８】
【図１】本開示の一実施の形態に係る路面検出装置の一構成例を表すブロック図である。
【図２Ａ】図１に示した路面モデル生成部の一動作例を表すフローチャートである。
【図２Ｂ】図１に示した路面モデル生成部の一動作例を表す他のフローチャートである。
【図３】図１に示した路面モデル生成部の一動作例を表す説明図である。
【図４】図１に示した路面モデル生成部が生成するヒストグラムの一例を表す説明図である。
【図５】図１に示した路面モデル生成部の一動作例を表す他の説明図である。
【図６】図１に示した路面モデル生成部の一動作例を表す他の説明図である。
【図７】図１に示した路面モデル生成部の一動作例を表す他の説明図である。
【図８】図１に示した路面モデル生成部の一動作例を表す他の説明図である。
【図９】図１に示した路面モデル生成部の一動作例を表す他の説明図である。
【図１０】図１に示した路面モデル生成部の一動作例を表す他の説明図である。
【図１１】図１に示した路面モデル生成部が生成した路面モデルの一例を表す説明図である。
【図１２】図１に示した検証処理部の一動作例を表す説明図である。
【図１３】図１に示した検証処理部の一動作例を表すフローチャートである。
【図１４】図１に示した検証処理部における背景点カウント処理の一例を表すフローチャートである。
【図１５】図１に示した検証処理部の一動作例を表す他の説明図である。
【図１６】図１に示した検証処理部の一動作例を表す他の説明図である。
【図１７】図１に示した検証処理部の一動作例を表す他の説明図である。
【図１８】図１に示した検証処理部における傾斜幅算出処理の一例を表すフローチャートである。
【図１９】図１に示した検証処理部の一動作例を表す他の説明図である。
【発明を実施するための形態】
【０００９】
以下、本開示の実施の形態について、図面を参照して詳細に説明する。
【００１０】
＜実施の形態＞
［構成例］
図１は、一実施の形態に係る路面検出装置（路面検出装置１）の一構成例を表すものである。路面検出装置１は、メインカメラ１１Ｍと、サブカメラ１１Ｓと、画像処理部１２と、車速センサ１３と、ヨーレートセンサ１４と、舵角センサ１５と、処理部２０とを備えている。路面検出装置１は、自動車等の車両１０に搭載される。
【００１１】
メインカメラ１１Ｍおよびサブカメラ１１Ｓは、車両１０の前方を撮像することにより、互いに視差を有する一組の視差画像（メイン画像ＰＭおよびサブ画像ＰＳ）を生成する、いわゆるステレオカメラである。メインカメラ１１Ｍおよびサブカメラ１１Ｓは、この例では、車両１０のルームミラーの近傍において、車両１０の幅方向に所定距離だけ離間して配置される。車両１０の幅方向において、メインカメラ１１Ｍは例えば運転席に近い位置に配置され、サブカメラ１１Ｓは例えば助手席に近い位置に配置される。メインカメラ１１Ｍおよびサブカメラ１１Ｓは、所定のフレームレートで、互いに同期して撮像動作を行う。これにより、メインカメラ１１Ｍはメイン画像ＰＭを生成し、サブカメラ１１Ｓはサブ画像ＰＳを生成するようになっている。
【００１２】
画像処理部１２は、メインカメラ１１Ｍから供給されたメイン画像ＰＭ、およびサブカメラ１１Ｓから供給されたサブ画像ＰＳに基づいて、ステレオマッチング処理やフィルタリング処理などを含む所定の画像処理を行うことにより、距離画像ＰＺを生成するように構成される。距離画像ＰＺは、各画素Ｐと、３次元の実空間における点（座標点）の座標ｘ，ｙ，ｚとが、互いに対応づけられた画像である。ここで、座標ｘ，ｙ，ｚは、この例では、メインカメラ１１Ｍが配置された位置とサブカメラ１１Ｓが配置された位置との中間位置の下方における路面上の点を原点として表した座標であり、座標ｘは、車両１０の車幅方向における座標であり、座標ｙは車両１０の車高方向における座標であり、座標ｚは車長方向における座標である。そして、画像処理部１２は、生成した距離画像ＰＺを、この距離画像ＰＺを生成する際に使用したメイン画像ＰＭとともに、処理部２０に供給するようになっている。
【００１３】
車速センサ１３は、車両１０の走行速度を検出するように構成される。ヨーレートセンサ１４は、車両１０のヨーレートを検出するように構成される。舵角センサ１５は、車両１０におけるステアリングホイールの舵角を検出するように構成される。
【００１４】
処理部２０は、画像処理部１２から供給された距離画像ＰＺ、メイン画像ＰＭ、および車速センサ１３、ヨーレートセンサ１４、舵角センサ１５の検出結果に基づいて、路面モデルＭを生成し、生成した路面モデルＭに基づいて、例えば車両１０の走行制御を行うように構成される。処理部２０は、例えば、プログラムを実行するＣＰＵ（Central Processing Unit）、処理データを一時的に記憶するＲＡＭ（Random Access Memory）、プログラムを記憶するＲＯＭ（Read Only Memory）などにより構成される。処理部２０は、路面モデル生成部２１と、検証処理部２２とを有している。
【００１５】
路面モデル生成部２１は、距離画像ＰＺ、メイン画像ＰＭ、および車速センサ１３、ヨーレートセンサ１４、舵角センサ１５の検出結果に基づいて、所定の処理を行うことにより、路面モデルＭを生成するように構成される。
【００１６】
検証処理部２２は、路面モデル生成部２１が生成した路面モデルＭを検証するように構成される。例えば、車両１０の前方にキャリアカーが走行している場合には、路面モデル生成部２１は、このキャリアカーの車両後部の傾斜に基づいて、道路が坂道であると誤判断し、誤った路面モデルＭを生成するおそれがある。そこで、検証処理部２２は、距離画像ＰＺに基づいて、この路面モデルＭを検証する。そして、検証処理部２２は、路面モデルＭがこの誤判断により生成されたと判定した場合には、路面モデル生成部２１が生成した路面モデルＭの全部または一部を無効にするようになっている。
【００１７】
ここで、路面モデル生成部２１は、本開示における「路面モデル生成部」の一具体例に対応する。検証処理部２２は、本開示における「検証処理部」の一具体例に対応する。
【００１８】
［動作および作用］
続いて、本実施の形態の路面検出装置１の動作および作用について説明する。
【００１９】
（全体動作概要）
まず、図１を参照して、路面検出装置１の全体動作概要を説明する。メインカメラ１１Ｍおよびサブカメラ１１Ｓは、車両１０の前方を撮像することにより、互いに視差を有するメイン画像ＰＭおよびサブ画像ＰＳを生成する。画像処理部１２は、メイン画像ＰＭおよびサブ画像ＰＳに基づいて、ステレオマッチング処理やフィルタリング処理などを含む所定の画像処理を行うことにより、距離画像ＰＺを生成し、生成した距離画像ＰＺを、この距離画像ＰＺを生成する際に使用したメイン画像ＰＭとともに処理部２０に供給する。車速センサ１３は車両１０の走行速度を検出し、ヨーレートセンサ１４は車両１０のヨーレートを検出し、舵角センサ１５は車両１０におけるステアリングホイールの舵角を検出する。処理部２０の路面モデル生成部２１は、距離画像ＰＺ、メイン画像ＰＭ、および車速センサ１３、ヨーレートセンサ１４、舵角センサ１５の検出結果に基づいて、所定の処理を行うことにより、路面モデルＭを生成する。検証処理部２２は、距離画像ＰＺに基づいて、路面モデル生成部２１が生成した路面モデルＭを検証する。そして、検証処理部２２は、路面モデルＭが誤判断により生成されたと判定した場合には、路面モデル生成部２１が生成した路面モデルＭの全部または一部を無効にする。
【００２０】
（詳細動作）
路面検出装置１では、路面モデル生成部２１が路面モデルＭを生成し、検証処理部２２が、路面モデル生成部２１が生成した路面モデルＭを検証する。以下に、これらの動作について詳細に説明する。
【００２１】
（路面モデル生成部２１の詳細動作）
図２Ａ，２Ｂは、路面モデル生成部２１の一動作例を表すものである。路面モデル生成部２１は、距離画像ＰＺにおける各水平ラインＨＬに対応する、実空間における代表距離を求めることによりデータマップＭＡＰを生成し、生成したデータマップＭＡＰに基づいて路面モデルＭを生成する。以下に、この動作について詳細に説明する。
【００２２】
まず、路面モデル生成部２１は、距離画像ＰＺにおいて演算対象領域ＲＡを設定する（ステップＳ１０１）。
【００２３】
図３は、演算対象領域ＲＡの一例を表すものである。この例では、車両１０は、片側３車線の道路を走行している。路面モデル生成部２１は、車速センサ１３、ヨーレートセンサ１４、および舵角センサ１５の検出結果に基づいて、車両１０が今後進行すると推定される進行経路９９を算出するとともに、例えばメイン画像ＰＭに基づいて、車線を区画する区画線１００Ｌ，１００Ｒを検出する。そして、路面モデル生成部２１は、算出した進行経路９９を含み、２つの区画線１００Ｌ，１００Ｒにより挟まれた領域を、演算対象領域ＲＡとして設定する。
【００２４】
次に、路面モデル生成部２１は、距離画像ＰＺにおいて水平ラインＨＬを選択する（ステップＳ１０２）。具体的には、路面モデル生成部２１は、ステップＳ１０１において演算対象領域ＲＡを選択した直後では、距離画像ＰＺにおける一番下の水平ラインＨＬ0を選択する。そして、路面モデル生成部２１は、ステップＳ１１２から戻りこのステップＳ１０２の動作を行う度に、距離画像ＰＺにおいて下から上に向かって、水平ラインＨＬ1，ＨＬ2，ＨＬ3，…のように、水平ラインＨＬを１ライン単位で順次選択する。
【００２５】
次に、路面モデル生成部２１は、選択された水平ラインＨＬに属する画素Ｐに対応する、実空間における座標点の座標ｚに基づいて、距離についてのヒストグラムＨを生成する（ステップＳ１０３）。具体的には、路面モデル生成部２１は、選択した水平ラインＨＬに属する複数の画素Ｐのうち、演算対象領域ＲＡに属し、かつ、その画素Ｐに対応する実空間における座標点の座標ｙが、前回生成された路面モデルＭに基づいて推定された路面の位置から所定の範囲内にあるような複数の画素Ｐを特定する。そして、路面モデル生成部２１は、この特定された複数の画素Ｐのそれぞれに対応する、実空間における座標点の座標ｚに基づいて、ヒストグラムＨを生成する。
【００２６】
図４は、あるｊ番目の水平ラインＨＬjに属する画素Ｐに基づいて生成されたヒストグラムＨjの一例を表すものである。横軸は座標ｚの値を示し、縦軸は頻度を示す。この例では、座標値ｚjにおいて、頻度が一番高くなっている。
【００２７】
次に、路面モデル生成部２１は、ステップＳ１０３において生成したヒストグラムＨに基づいて、代表距離を求める（ステップＳ１０４）。この例では、路面モデル生成部２１は、図４に示したように、ヒストグラムＨjにおいて、頻度が一番高い座標値ｚjを、ｊ番目の水平ラインＨＬjにおける代表距離として求める。
【００２８】
次に、路面モデル生成部２１は、ステップＳ１０４において求めた代表距離を、データマップＭＡＰが示すｚ−ｊ平面に、距離点Ｄとしてプロットする（ステップＳ１０５）。
【００２９】
図５は、データマップＭＡＰの一例を表すものである。データマップＭＡＰが示すｚ−ｊ平面には、０番目の水平ラインＨＬ0の代表距離を示す距離点Ｄ0（ｚ０，０）、１番目の水平ラインＨＬ1の代表距離を示す距離点Ｄ1（ｚ1，１）、２番目の水平ラインＨＬ2の代表距離を示す距離点Ｄ2（ｚ2，２）を含む複数の距離点Ｄがプロットされている。これらの距離点Ｄは、この例では、ほぼ一直線上に配置されている。
【００３０】
次に、路面モデル生成部２１は、データマップＭＡＰの連続性を評価する（ステップＳ１０６）。
【００３１】
図６は、データマップＭＡＰの一例を表すものである。データマップＭＡＰでは、図５に示したように、水平ラインＨＬjの番目の数ｊ（縦軸）が大きくなるほど、代表距離（横軸）が長くなることが望まれる。すなわち、図３において、水平ラインＨＬが上に進むほど、その水平ラインＨＬに属する画素Ｐに対応する実空間における座標点は、車両１０から離れるからである。しかしながら、例えば、画像処理部１２がステレオマッチング処理を行う際に、ミスマッチが生じた場合には、図６に示したように、後にプロットされた距離点Ｄjnewが示す代表距離ｚjnewが、先にプロットされた距離点Ｄjoldが示す代表距離ｚjoldと同じか、あるいは代表距離ｚjoldよりも短くなる場合があり得る。このような場合には、路面モデル生成部２１は、連続性がないと判断する。
【００３２】
ステップＳ１０６において、連続性があると判断した場合（ステップＳ１０６において“Ｙ”）には、路面モデル生成部２１は、後述する最小二乗法による演算の準備として、準備演算を行う（ステップＳ１０７）。具体的には、路面モデル生成部２１は、後述するステップＳ１１３〜Ｓ１１７において、最小二乗法による演算処理を行うことにより、データマップＭＡＰを、式（１）に示す一次関数（近似直線）で近似する。
【数１】
2020077102.tif 000003
最小二乗法では、この式（１）におけるパラメータａ，ｂは、以下の式で表される。
【数２】
2020077102.tif 000004
そこで、路面モデル生成部２１は、この最小二乗法による演算の準備として、このステップＳ１０７において、式（２）で使用するΣｚ、Σｊ、Σｚ2、およびΣ（ｚ・ｊ）を算出する。具体的には、路面モデル生成部２１は、直前のΣｚ、Σｊ、Σｚ2、およびΣ（ｚ・ｊ）に、ステップＳ１０５においてプロットした距離点Ｄについてのｚ、ｊ、ｚ2、（ｚ・ｊ）を加算することにより、Σｚ、Σｊ、Σｚ2、およびΣ（ｚ・ｊ）を更新する。そして、ステップＳ１１２に進む。
【００３３】
ステップＳ１０６において、連続性がないと判断した場合（ステップＳ１０６において“Ｎ”）には、路面モデル生成部２１は、ステップＳ１０５においてデータマップＭＡＰにプロットした距離点Ｄを削除する（ステップＳ１０８）。具体的には、例えば図６の例では、路面モデル生成部２１は、距離点Ｄjnewを削除する。図６では、最終的に削除された距離点Ｄjnewを白い丸で示している。
【００３４】
次に、路面モデル生成部２１は、所定回数続けて距離点Ｄを削除したかどうかを確認する（ステップＳ１０９）。所定回数続けて距離点Ｄを削除していない場合（ステップＳ１０９において“Ｎ”）には、ステップＳ１１２に進む。また、所定回数続けて距離点Ｄを削除した場合（ステップＳ１０９において“Ｙ”）には、続けて削除した複数の距離点Ｄの一つ前の距離点Ｄを削除する（ステップＳ１１０）。これにより、以下に説明するように、例えば最初の距離点Ｄ0が異常である場合において、不具合が生じないようにすることができる。
【００３５】
図７は、所定回数続けて距離点Ｄを削除した場合の一例を表すものである。この例では、画像処理部１２がステレオマッチング処理を行う際に、ミスマッチが生じたことにより、最初の距離点Ｄ0が示す代表距離ｚ0が大きい値になっている。この例では、その後に、画像処理部１２が正常にステレオマッチング処理を行い、路面モデル生成部２１が距離点Ｄ1〜Ｄ4を生成している。しかしながら、これらの距離点Ｄ1〜Ｄ4が示す代表距離ｚ1，ｚ2，ｚ3，ｚ4はいずれも代表距離ｚ0よりも短いので、路面モデル生成部２１は、連続性がないと判断し（ステップＳ１０６において“Ｎ”）、距離点Ｄ1〜Ｄ4を削除する（ステップＳ１０８）。すなわち、最初の距離点Ｄ0が異常であるにもかかわらず、路面モデル生成部２１は、距離点Ｄ1〜Ｄ4を削除する。このように、路面モデル生成部２１は、所定回数（この例では４回）続けて距離点Ｄを削除した場合に、続けて削除した複数の距離点Ｄ（この例では距離点Ｄ1〜Ｄ4）の一つ前の距離点Ｄ（この例では距離点Ｄ0）は異常な距離点Ｄであると判断して、この距離点Ｄを削除する。これにより、路面モデル生成部２１では、続けて削除した複数の距離点Ｄより後の距離点Ｄ（この例では距離点Ｄ5以降）が続けて削除されないようにすることができる。図７では、最終的に削除された距離点Ｄを白い丸で示している。
【００３６】
次に、路面モデル生成部２１は、準備演算の結果を修正する（ステップＳ１１１）。具体的には、ステップＳ１０７において算出したΣｚ、Σｊ、Σｚ2、およびΣ（ｚ・ｊ）には、ステップＳ１１０において削除した距離点Ｄ（この例では距離点Ｄ0）についての数値が含まれている。よって、路面モデル生成部２１は、Σｚ、Σｊ、Σｚ2、およびΣ（ｚ・ｊ）から、ステップＳ１１０において削除した距離点Ｄについてのｚ、ｊ、ｚ2、（ｚ・ｊ）を減算することにより、準備演算の結果を修正する。
【００３７】
次に、路面モデル生成部２１は、距離画像ＰＺにおける全ての水平ラインＨＬを選択したかどうかを確認する（ステップＳ１１２）。まだ全ての水平ラインＨＬを選択していない場合（ステップＳ１１２において“Ｎ”）には、ステップＳ１０２に戻り、全ての水平ラインＨＬを選択するまで、これらのステップＳ１０２〜Ｓ１１２を繰り返す。
【００３８】
図８は、このようにして生成されたデータマップＭＡＰの一例を表すものである。この例では、データマップＭＡＰは、複数の距離点Ｄ（距離点Ｄ0〜ＤN）が示す線が、途中で折れ曲がっている。このデータマップＭＡＰにおいて、部分１０１は、この例では平坦な道路に対応し、部分１０２は、傾斜している道路に対応する。すなわち、この例では、車両１０の進行方向の前方に上り坂がある。路面モデル生成部２１は、この例では、以下に示すように、この複数の距離点Ｄの配列を、最小二乗法を用いて、２つの近似直線Ｌ1，Ｌ2により表現する。
【００３９】
まず、路面モデル生成部２１は、距離点Ｄ0〜ＤNを、距離点ＤN-2と距離点ＤN-1の間に境界Ｂを設定することにより、２つのグループＧ１，Ｇ２に分ける（ステップＳ１１３）。グループＧ1は、境界Ｂよりも車両１０に近い距離点Ｄを含み、グループＧ2は、境界Ｂよりも車両１０から遠い距離点Ｄを含む。路面モデル生成部２１は、まず、ステップＳ１０７において行った準備演算の最終結果（Σｚ、Σｊ、Σｚ2、およびΣ（ｚ・ｊ））から、２つの距離点ＤN-1，ＤNについてのｚ、ｊ、ｚ2、（ｚ・ｊ）をそれぞれ減算することにより、グループＧ1に属する距離点Ｄ（距離点Ｄ0〜ＤN-2）についてのΣｚ、Σｊ、Σｚ2、およびΣ（ｚ・ｊ）を求める。また、路面モデル生成部２１は、２つの距離点ＤN-1，ＤNについてのｚ、ｊ、ｚ2、（ｚ・ｊ）をそれぞれ加算することにより、グループＧ2に属する距離点Ｄ（距離点ＤN-1，ＤN）についてのΣｚ、Σｊ、Σｚ2、およびΣ（ｚ・ｊ）を求める。
【００４０】
次に、路面モデル生成部２１は、最小二乗法を用いて、グループＧ1，Ｇ2についての近似直線Ｌ1，Ｌ2を求める（ステップＳ１１４）。
【００４１】
具体的には、路面モデル生成部２１は、グループＧ1に属する距離点ＤについてのΣｚ、Σｊ、Σｚ2、およびΣ（ｚ・ｊ）を式（２）に代入することにより、パラメータａ，ｂを求める。このようにして求めたパラメータａ，ｂは、グループＧ1に係る近似直線Ｌ1におけるパラメータａ1，ｂ1である。これにより、路面モデル生成部２１は、近似直線Ｌ1の式（ｊ＝ａ1×ｚ＋ｂ1）を得る。
【００４２】
同様に、路面モデル生成部２１は、グループＧ2に属する距離点ＤについてのΣｚ、Σｊ、Σｚ2、およびΣ（ｚ・ｊ）を式（２）に代入することにより、パラメータａ，ｂを求める。このようにして求めたパラメータａ，ｂは、グループＧ2に係る近似直線Ｌ2におけるパラメータａ2，ｂ2である。これにより、路面モデル生成部２１は、近似直線Ｌ2の式（ｊ＝ａ2×ｚ＋ｂ2）を得る。
【００４３】
図９は、距離点ＤN-2と距離点ＤN-1の間に境界Ｂを設定した場合における、近似直線Ｌ1，Ｌ2の一例を表すものである。この例では、特に、グループＧ1についての近似直線Ｌ1が、グループＧ1に属する複数の距離点Ｄからずれている。
【００４４】
次に、路面モデル生成部２１は、グループＧ1，Ｇ2についての分散値Ａ1，Ａ2を求める（ステップＳ１１５）。具体的には、路面モデル生成部２１は、以下の式を用いて、グループＧ1に含まれるｎ1個の距離点Ｄについての分散値Ａ1を求めるとともに、グループＧ2に含まれるｎ2個の距離点Ｄについての分散値Ａ2を求める。
【数３】
2020077102.tif 000005
分散値Ａ1は、グループＧ1に属する距離点Ｄと近似直線Ｌ1との一致度合いを示し、分散値Ａ1が小さいほど、グループＧ1に属する距離点Ｄと近似直線Ｌ1とが一致していることを示す。同様に、分散値Ａ2は、グループＧ2に属する距離点Ｄと近似直線Ｌ2との一致度合いを示し、分散値Ａ2が小さいほど、グループＧ2に属する距離点Ｄと近似直線Ｌ2とが一致していることを示す。そして、路面モデル生成部２１は、境界Ｂの位置、パラメータａ1，ｂ1，ａ2，ｂ2、および分散値Ａ1，Ａ2を対応づけて一旦記憶する。
【００４５】
次に、路面モデル生成部２１は、境界Ｂが、距離点Ｄ1と距離点Ｄ2の間に設定されているかどうかを確認する（ステップＳ１１６）。
【００４６】
ステップＳ１１６において、境界Ｂが、まだ距離点Ｄ1と距離点Ｄ2の間に設定されていない場合（ステップＳ１１６において“Ｎ”）には、路面モデル生成部２１は、グループＧ1に属する距離点Ｄの数ｎ1が一つ減少し、グループＧ2に属する距離点Ｄの数ｎ2が１つ増加するように、境界Ｂを移動する（ステップＳ１１７）。これにより、１つの距離点Ｄが、グループＧ1からグループＧ2に移動する。そして、路面モデル生成部２１は、グループＧ1に属する距離点ＤについてのΣｚ、Σｊ、Σｚ2、およびΣ（ｚ・ｊ）から、移動した距離点Ｄについてのｚ、ｊ、ｚ2、（ｚ・ｊ）をそれぞれ減算することにより、グループＧ1に属する距離点ＤについてのΣｚ、Σｊ、Σｚ2、およびΣ（ｚ・ｊ）を更新する。同様に、路面モデル生成部２１は、グループＧ2に属する距離点ＤについてのΣｚ、Σｊ、Σｚ2、およびΣ（ｚ・ｊ）に、移動した距離点Ｄについてのｚ、ｊ、ｚ2、（ｚ・ｊ）をそれぞれ加算することにより、グループＧ2に属する距離点ＤについてのΣｚ、Σｊ、Σｚ2、およびΣ（ｚ・ｊ）を更新する。そして、ステップＳ１１４に戻る。このようにして、路面モデル生成部２１は、境界Ｂを移動させつつ、パラメータａ1，ｂ1，ａ2，ｂ2、および分散値Ａ1，Ａ2を求める。
【００４７】
そして、ステップＳ１１６において、境界Ｂが、距離点Ｄ1と距離点Ｄ2の間に設定された場合（ステップＳ１１６において“Ｙ”）には、路面モデル生成部２１は、ステップＳ１１３〜Ｓ１１７において算出した、境界Ｂを様々な位置に設定したときのパラメータａ1，ｂ1，ａ2，ｂ2、および分散値Ａ1，Ａ2に基づいて、２つの近似直線Ｌ1，Ｌ2を決定する（ステップＳ１１８）。具体的には、路面モデル生成部２１は、例えば、境界Ｂを様々な位置に設定したときの分散値Ａ1と分散値Ａ2の和が最小になるような境界Ｂの位置を特定し、その境界Ｂの位置に対応づけられたパラメータａ1，ｂ1に基づいて近似直線Ｌ1を決定し、その境界Ｂの位置に対応づけられたパラメータａ2，ｂ2に基づいて近似直線Ｌ2を決定する。
【００４８】
図１０は、ステップＳ１１８において決定した２つの近似直線Ｌ1，Ｌ2の一例を表すものである。図１０に示したように、路面モデル生成部２１は、この例では、距離点Ｄの配列を、２つの近似直線Ｌ1，Ｌ2により表現することができる。なお、この２つの近似直線Ｌ1，Ｌ2の結合部分Ｃについては、例えば、近似直線Ｌ1および近似直線Ｌ2を接線とする緩和曲線により表現してもよい。
【００４９】
そして、路面モデル生成部２１は、２つの近似直線Ｌ1，Ｌ2を実空間に座標変換することにより、路面モデルＭを生成する（ステップＳ１１９）。
【００５０】
図１１は、路面モデルＭの一例を表すものである。この例では、路面モデルＭは、路面モデルＭ1と、路面モデルＭ2とを含んでいる。路面モデルＭ1は、車両１０に近い場所におけるモデルであり、近似直線Ｌ1を実空間に座標変換することにより得られる。路面モデルＭ2は、車両１０から遠い場所におけるモデルであり、近似直線Ｌ2を実空間に座標変換することにより得られる。この例では、路面モデルＭ1は、平坦な道路に対応し、路面モデルＭ2は、勾配ＳＬで傾斜している道路に対応する。
【００５１】
以上で、このフローは終了する。このようにして、路面モデル生成部２１は、図１１に示した路面モデルＭを生成する。
【００５２】
（検証処理部２２の詳細動作）
次に、検証処理部２２の動作について詳細に説明する。
【００５３】
図１２は、メイン画像ＰＭの一例を表すものである。この例では、車両１０の前方にキャリアカー９が走行している。路面モデル生成部２１は、上述したように、路面モデルＭを生成する。この例では、路面モデル生成部２１は、このキャリアカー９の車両後部の傾斜に基づいて、道路が坂道であると誤判断し、誤った路面モデルＭを生成している。検証処理部２２は、距離画像ＰＺおよびメイン画像ＰＭに基づいて、この路面モデルＭを検証する。そして、検証処理部２２は、路面モデルＭがこの誤判断により生成されたと判定した場合には、路面モデル生成部２１が生成した路面モデルＭの全部または一部を無効にする。
【００５４】
図１３は、検証処理部２２の一動作例を表すものである。検証処理部２２は、３つの条件を満たした場合に、路面モデル生成部２１が生成した路面モデルＭの全部または一部を無効にする。以下に、この動作について詳細に説明する。
【００５５】
まず、検証処理部２２は、距離画像ＰＺに基づいて、背景点カウント処理を行う（ステップＳ２０１）。
【００５６】
図１４は、背景点カウント処理の一例を表すものである。まず、検証処理部２２は、距離画像ＰＺにおいて、演算対象領域ＲＢを設定する（ステップＳ２１１）。
【００５７】
図１５は、検証処理部２２が演算対象領域ＲＢを設定する動作の一例を表すものである。この例では、路面モデル生成部２１は、このキャリアカー９の車両後部の傾斜に基づいて、道路が坂道であると誤判断し、誤った路面モデルＭを生成している。検証処理部２２は、この路面モデルＭを用いて算出された、車両１０が今後進行すると推定される進行経路９９を中心とする所定の幅（例えば１０ｍ）の領域を、演算対象領域ＲＢとして設定する。
【００５８】
次に、検証処理部２２は、演算対象領域ＲＢにおいて画素Ｐを選択する（ステップＳ２１２）。具体的には、検証処理部２２は、例えば、演算対象領域ＲＢにおける左下から順に、画素Ｐを順次選択する。
【００５９】
次に、検証処理部２２は、選択された画素Ｐが背景点に該当するかどうかを確認する（ステップＳ２１３）。ここで、背景点は、演算対象領域ＲＢにおける複数の画素Ｐのうち、対応する実空間における座標点が、路面モデルＭが示す路面に対応する面よりも下に位置するような画素Ｐである。すなわち、図１５において、キャリアカー９に対応する領域の左の領域１０３や、キャリアカー９に対応する領域の右の領域１０４では、実空間における座標点は、路面モデルＭが示す路面よりも下に位置する。検証処理部２２は、後述するように、このような画素Ｐの数をカウントすることにより、路面モデルＭを検証する。
【００６０】
図１６は、画素Ｐが背景点に該当するかどうかの判断基準の一例を表すものである。検証処理部２２は、路面モデルＭに含まれる路面モデルＭ1が示す路面Ｓ1を下方向に所定量Δｙａだけ平行移動することにより面Ｓ11を設定するとともに、路面モデルＭに含まれる路面モデルＭ2が示す路面Ｓ2を下方向に所定量Δｙａだけ平行移動することにより面Ｓ21を設定する。所定量Δｙａは、路面モデルＭの精度や、画像処理部１２により算出された座標ｘ，ｙ，ｚの精度を考慮して、演算の便宜上設けられたマージンである。路面モデルＭや座標ｘ，ｙ，ｚの精度が十分に高い場合には、例えば、所定量Δｙａを０（ゼロ）にしてもよい。また、検証処理部２２は、メインカメラ１１Ｍおよびサブカメラ１１Ｓの光軸を含む、路面に平行な面Ｓ3を下方向に所定量Δｙｂだけ平行移動することにより面Ｓ31を算出する。そして、検証処理部２２は、選択された画素Ｐに対応する実空間における座標点が、面Ｓ11および面Ｓ21により構成される合成面と面Ｓ31との間（図１６における斜線部）に位置するかどうかを確認することにより、この画素Ｐが背景点であるかどうかを確認する。なお、この例では、演算の便宜上、面Ｓ31を設けるようにしたが、これに限定されるものではなく、例えば、面Ｓ31を設けず、座標点が、面Ｓ11，Ｓ21により構成される合成面よりも下に位置するかどうかを確認してもよい。
【００６１】
検証処理部２２は、選択された画素Ｐが背景点に該当する場合（ステップＳ２１３において“Ｙ”）には、カウント値ＣＮＴをインクリメントする（ステップＳ２１４）。
【００６２】
そして、検証処理部２２は、演算対象領域ＲＢにおける全ての画素Ｐを選択したかどうかを確認する（ステップＳ２１５）。まだ全ての画素Ｐを選択していない場合（ステップＳ２１５において“Ｎ”）には、ステップＳ２１２に戻り、全ての画素Ｐを選択するまで、これらのステップＳ２１２〜Ｓ２１５を繰り返す。
【００６３】
図１７は、背景点の一例を表すものである。図１７では、背景点に対応する画素Ｐを四角形で示している。なお、この図では、説明の便宜上、画素Ｐを大きく描いている。この例では、キャリアカー９に対応する領域の左右の領域において、複数の画素Ｐが背景点に該当すると判断される。
【００６４】
このようにして、背景点カウント処理は終了する。カウント値ＣＮＴの最終的な値が、この距離画像ＰＺに基づいて得られた背景点の数である。
【００６５】
次に、図１３に示したように、検証処理部２２は、背景点の数がしきい値Ｎth1以上であるかどうかを確認する（ステップＳ２０２）。背景点の数がしきい値Ｎth1以上ではない場合（ステップＳ２０２において“Ｎ”）には、検証処理部２２は、この路面モデルＭは正しいと判断し、このフローは終了する。
【００６６】
ステップＳ２０２において、背景点の数がしきい値Ｎth1以上である場合（ステップＳ２０２において“Ｙ”）には、検証処理部２２は、距離画像ＰＺに基づいて、傾斜幅算出処理を行う（ステップＳ２０３）。
【００６７】
図１８は、傾斜幅算出処理の一例を表すものである。まず、検証処理部２２は、距離画像ＰＺにおいて水平ラインＨＬを選択する（ステップＳ２２１）。具体的には、検証処理部２２は、距離画像ＰＺにおいて下から上に向かって、水平ラインＨＬを１ライン単位で順次選択する。
【００６８】
次に、検証処理部２２は、選択された水平ラインＨＬに属する画素Ｐに対応する、実空間における座標点の座標ｚに基づいて、傾斜幅Ｗ１を算出する（ステップＳ２２２）。
【００６９】
図１９は、検証処理部２２が傾斜幅Ｗを算出する処理の一例を表すものである。検証処理部２２は、選択した水平ラインＨＬに属する複数の画素Ｐのうち、演算対象領域ＲＢに属する画素Ｐに対応する、実空間における座標点の座標ｚに基づいて、傾斜幅Ｗ１を算出する。すなわち、キャリアカー９に対応する領域では座標ｚの値が小さく、キャリアカー９に対応する領域の左右の領域では座標ｚの値が大きいので、検証処理部２２は、例えば、座標ｚが所定のしきい値よりも小さい画素Ｐを特定することにより、キャリアカー９の幅を把握することができる。そして、検証処理部２２は、特定された画素Ｐに対応する実空間における座標点の座標ｘに基づいて、傾斜幅Ｗ１を算出することができる。
【００７０】
そして、検証処理部２２は、全ての水平ラインＨＬを選択したかどうかを確認する（ステップＳ２２３）。まだ全ての水平ラインＨＬを選択していない場合（ステップＳ２２３において“Ｎ”）には、ステップＳ２２１に戻り、全ての水平ラインＨＬを選択するまで、これらのステップＳ２２１〜Ｓ２２３を繰り返す。
【００７１】
そして、全ての水平ラインＨＬを選択した場合（ステップＳ２２３において“Ｙ”）には、検証処理部２２は、例えば、ステップＳ２２３において算出した複数の傾斜幅Ｗ１の平均値を求めることにより、傾斜幅Ｗを算出する（ステップＳ２２４）。
【００７２】
このようにして、傾斜幅算出処理は終了する。なお、この例では、ステップＳ２２１において、一番下の水平ラインＨＬ0から順に水平ラインＨＬを選択したが、これに限定されるものではなく、検証処理部２２は、例えば、図１０に示した２つの近似直線Ｌ1，Ｌ2の結合部分Ｃに対応する水平ラインＨＬから順に水平ラインＨＬを選択してもよい。また、この例では、ステップＳ２２３において、全ての水平ラインＨＬを選択するまで、これらのステップＳ２２１〜Ｓ２２３を繰り返すようにしたが、これに限定されるものではなく、検証処理部２２は、例えば、座標ｚの値の差が小さくなった場合には、水平ラインＨＬがキャリアカー９に対応する領域から外れたと判断し、ステップＳ２２４に進んでもよい。
【００７３】
次に、図１３に示したように、検証処理部２２は、傾斜幅Ｗがしきい値Ｎth2未満であるかどうかを確認する（ステップＳ２０４）。このしきい値Ｎth2は、例えば５ｍに設定することができる。傾斜幅Ｗがしきい値Ｎth2未満ではない場合（ステップＳ２０４において“Ｎ”）には、検証処理部２２は、この路面モデルＭは正しいと判断し、このフローは終了する。
【００７４】
ステップＳ２０４において、傾斜幅Ｗがしきい値Ｎth2未満である場合（ステップＳ２０４において“Ｙ”）には、検証処理部２２は、路面モデルＭに含まれる路面モデルＭ2が示す傾斜の勾配ＳＬがしきい値Ｎth3以上であるかどうかを確認する（ステップＳ２０５）。このしきい値Ｎth3は、例えば１０％に設定することができる。路面モデルＭ2が示す傾斜の勾配がしきい値Ｎth3以上ではない場合（ステップＳ２０５において“Ｎ”）には、検証処理部２２は、この路面モデルＭは正しいと判断し、このフローは終了する。
【００７５】
ステップＳ２０５において、傾斜の勾配がしきい値Ｎth3以上である場合（ステップＳ２０５において“Ｙ”）には、検証処理部２２は、路面モデル生成部２１が生成した路面モデルＭの全部または一部を無効にする（ステップＳ２０６）。具体的には、例えば、図１１に示したように、路面モデルＭが路面モデルＭ1，Ｍ2を含んでいる場合には、検証処理部２２は、路面モデル生成部２１が生成した路面モデルＭのうちの、傾斜している道路に対応する路面モデルＭ2のみを無効にする。また、例えば、路面モデルＭが、路面モデルＭ1を含んでおらず、路面モデルＭ2のみを含んでいる場合には、検証処理部２２は、路面モデル生成部２１が生成した路面モデルＭ自体を無効にする。
【００７６】
ここで、画素Ｐは、本開示における「画像点」の一具体例に対応する。路面モデルＭ2は、本開示における「傾斜路面モデル」の一具体例に対応する。傾斜幅Ｗは、本開示における「傾斜路面幅」の一具体例に対応する。勾配ＳＬは、本開示における「傾斜勾配」の一具体例に対応する。
【００７７】
このように、路面検出装置１では、背景点カウント処理において、距離画像ＰＺにおける複数の画素Ｐのうち、その画素Ｐに対応する実空間における座標点が、路面モデルＭが示す路面に対応する面（図１６における面Ｓ11，Ｓ21）よりも下に位置する画素Ｐの数を、背景点の数として求めるようにした。そして、路面検出装置１は、背景点の数がしきい値Ｎth1以上であるかどうかを確認するようにした。これにより、路面検出装置１では、例えば、車両１０の前方を走行するキャリアカー９の車両後部の傾斜に基づいて、誤った路面モデルＭを生成した場合でも、路面モデルＭが誤判断により生成されたと判定することができ、この誤った路面モデルＭの全部または一部を無効にすることができる。その結果、路面検出装置１では、路面モデルＭの精度を高めることができる。
【００７８】
仮に、誤った路面モデルＭが無効にされず、継続して使用される場合には、例えば、この路面モデルＭに基づいて車両１０の走行制御が行われてしまう。また、キャリアカー９が先行車両として認識されていた場合において、あるタイミングで、そのキャリアカー９が坂として認識された場合には、先行車両が消滅したと判断されるので、例えば緊急ブレーキや追従走行などの運転支援が行われなくなるおそれがある。
【００７９】
一方、路面検出装置１では、誤った路面モデルＭが生成された場合には、この路面モデルＭの全部または一部を無効にすることができるので、誤った路面モデルＭに基づいて車両１０の走行制御が行われるおそれを低減することができる。また、路面検出装置１では、キャリアカー９が坂として認識されることにより、先行車両が消滅したと判断された場合でも、その後、路面モデルＭの全部または一部を無効にすることにより、キャリアカー９を先行車両として認識するようになるので、運転支援を維持することができる。
【００８０】
また、路面検出装置１は、さらに、傾斜幅Ｗがしきい値Ｎth2未満であるかどうかを確認するとともに、傾斜の勾配がしきい値Ｎth3以上であるかどうかを確認するようにした。これにより、路面検出装置１では、路面モデルＭが誤判断により生成されたと判定する際の判定精度を高めることができる。
【００８１】
［効果］
以上のように本実施の形態では、背景点カウント処理において、距離画像における複数の画素のうち、その画素に対応する実空間における座標点が、路面モデルが示す路面に対応する面よりも下に位置する画素の数を、背景点の数として求め、その背景点の数がしきい値Ｎth1以上であるかどうかを確認するようにした。これにより、誤った路面モデルＭの全部または一部を無効にすることができるので、路面モデルの精度を高めることができる。
【００８２】
本実施の形態では、さらに、傾斜幅がしきい値Ｎth2未満であるかどうかを確認するとともに、傾斜の勾配がしきい値Ｎth3以上であるかどうかを確認するようにしたので、路面モデルが誤判断により生成されたと判定する際の判定精度を高めることができる。
【００８３】
［変形例１］
上記実施の形態では、図１３に示したように、ステップＳ２０２において、背景点の数をしきい値Ｎth1と比較し、ステップＳ２０４において、傾斜幅Ｗをしきい値Ｎth2と比較し、ステップＳ２０５において、傾斜の勾配としきい値Ｎth3とを比較したが、この順番に限定されるものではなく、どのような順番であってもよい。また、このように３つの処理を順番に行う例に限定されるものではなく、３つの処理を並列に行ってもよい。
【００８４】
［変形例２］
上記実施の形態では、図１３に示したように、ステップＳ２０４において、傾斜幅Ｗがしきい値Ｎth2未満であるかどうかを確認したが、これに限定されるものではなく、これに代えて、例えばステップＳ２０３，Ｓ２０４を省いてもよい。同様に、ステップＳ２０５において、傾斜の勾配がしきい値Ｎth3以上であるかどうかを確認したが、これに限定されるものではなく、これに代えて、例えば、ステップＳ２０５を省いてもよい。
【００８５】
［変形例３］
上記実施の形態では、背景点カウント処理において、画素Ｐを単位として背景点の数をカウントしたが、これに限定されるものではない。これに変えて、例えば、複数の画素Ｐを単位として背景点の数をカウントしてもよい。
【００８６】
次に、検証処理部２２は、演算対象領域ＲＢにおいて画素Ｐを選択する（ステップＳ２１２）。具体的には、検証処理部２２は、例えば、演算対象領域ＲＢにおける左下から順に、画素Ｐを順次選択する。
【００８７】
次に、検証処理部２２は、選択された画素Ｐが背景点に該当するかどうかを確認する（ステップＳ２１３）。ここで、背景点は、演算対象領域ＲＢにおける複数の画素Ｐのうち、対応する実空間における座標点が、路面モデルＭが示す路面に対応する面よりも下に位置するような画素Ｐである。すなわち、図１５において、キャリアカー９に対応する領域の左の領域１０３や、キャリアカー９に対応する領域の右の領域１０４では、実空間における座標点は、路面モデルＭが示す路面よりも下に位置する。検証処理部２２は、後述するように、このような画素Ｐの数をカウントすることにより、路面モデルＭを検証する。
【００８８】
以上、いくつかの実施の形態および変形例を挙げて本技術を説明したが、本技術はこれらの実施の形態等には限定されず、種々の変形が可能である。
【００８９】
例えば、上記実施の形態では、図１２に示したように、１次関数を組み合わせることにより路面モデルＭを表現したが、これに限定されるものではなく、例えば、２次関数などの他の関数をも組み合わせることにより路面モデルＭを表現してもよいし、関数を用いずに複数の距離点Ｄを内挿することにより路面モデルＭを表現してもよい。
【００９０】
なお、本明細書中に記載された効果はあくまで例示であって限定されるものではなく、また、他の効果があってもよい。
【符号の説明】
【００９１】
１…路面検出装置、９…キャリアカー、１０…車両、１１Ｍ…メインカメラ、１１Ｓ…サブカメラ、１２…画像処理部、１３…車速センサ、１４…ヨーレートセンサ、１５…舵角センサ、２０…処理部、２１…路面モデル生成部、２２…検証処理部、Ａ1，Ａ2…分散値、Ｂ…境界、ＣＮＴ…カウント値、Ｄ，Ｄ0〜ＤN…距離点、Ｇ1，Ｇ2…グループ、Ｈ…ヒストグラム、ＨＬ，ＨＬ0〜ＨＬN…水平ライン、Ｌ1，Ｌ2…近似直線、Ｍ，Ｍ1，Ｍ2…路面モデル、Ｎth1，Ｎth2，Ｎth3…しきい値、Ｐ…画素、ＰＭ…メイン画像、ＰＳ…サブ画像、ＰＺ…距離画像、ＲＡ，ＲＢ…演算対象領域、ＳＬ…勾配、Ｗ，Ｗ１…傾斜幅。
【図１】
2020077102.tif 000006
【図２Ａ】
2020077102.tif 000007
【図２Ｂ】
2020077102.tif 000008
【図３】
2020077102.tif 000009
【図４】
2020077102.tif 000010
【図５】
2020077102.tif 000011
【図６】
2020077102.tif 000012
【図７】
2020077102.tif 000013
【図８】
2020077102.tif 000014
【図９】
2020077102.tif 000015
【図１０】
2020077102.tif 000016
【図１１】
2020077102.tif 000017
【図１２】
2020077102.tif 000018
【図１３】
2020077102.tif 000019
【図１４】
2020077102.tif 000020
【図１５】
2020077102.tif 000021
【図１６】
2020077102.tif 000022
【図１７】
2020077102.tif 000023
【図１８】
2020077102.tif 000024
【図１９】
2020077102.tif 000025