(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-01-16
(45)【発行日】2023-01-24
(54)【発明の名称】路面検出装置および路面検出プログラム
(51)【国際特許分類】
B60W 40/06 20120101AFI20230117BHJP
G01B 11/245 20060101ALI20230117BHJP
G01C 7/04 20060101ALI20230117BHJP
G06T 7/00 20170101ALI20230117BHJP
【FI】
B60W40/06
G01B11/245 H
G01C7/04
G06T7/00 650A
(21)【出願番号】P 2018227342
(22)【出願日】2018-12-04
【審査請求日】2021-11-10
(73)【特許権者】
【識別番号】000000011
【氏名又は名称】株式会社アイシン
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】荻野 淳人
(72)【発明者】
【氏名】橋本 介誠
【審査官】小関 峰夫
(56)【参考文献】
【文献】特開2005-217883(JP,A)
【文献】特開2006-53754(JP,A)
【文献】特開2011-129048(JP,A)
【文献】特開2012-123750(JP,A)
【文献】特開2018-31753(JP,A)
【文献】国際公開第2013/027628(WO,A1)
【文献】国際公開第2014/132680(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
B60R 1/00
B60W 30/00-50/16
G01B 11/245
G01C 7/04
G06T 1/00-19/20
G08G 1/16
H04N 7/18
(57)【特許請求の範囲】
【請求項1】
車両が走行する路面を含む撮像領域を撮像するステレオカメラから出力された撮像画像データを取得する画像取得部と、
前記撮像画像データに基づいて、前記ステレオカメラの視点での前記路面の表面形状を含む前記撮像領域の3次元モデルを生成する3次元モデル生成部と、
前記3次元モデルから平面を推定し、前記平面の法線ベクトルの向き及び前記ステレオカメラに対する前記平面の高さ位置を、前記路面の法線ベクトルの向きの正解値および前記ステレオカメラに対する前記路面の高さ位置の正解値にそれぞれ整合させるように前記3次元モデルを補正する補正部と、を備える、
路面検出装置。
【請求項2】
前記補正部は、
平面の法線ベクトルの向きを前記路面の法線ベクトルの向きの正解値に整合させた後、前記ステレオカメラに対する前記平面の高さ位置を前記ステレオカメラに対する前記路面の高さ位置の正解値に整合させるように前記3次元モデルの全体を補正する、
請求項1に記載の路面検出装置。
【請求項3】
前記補正部は、
前記路面の法線ベクトルの向きの正解値および前記ステレオカメラに対する前記路面の高さ位置の正解値を、前記ステレオカメラのキャリブレーション時に決定された値に基づいて取得する、
請求項2に記載の路面検出装置。
【請求項4】
コンピュータに、
車両が走行する路面を含む撮像領域を撮像するステレオカメラから出力された撮像画像データを取得する画像取得ステップと、
前記撮像画像データに基づいて、前記ステレオカメラの視点での前記路面の表面形状を含む前記撮像領域の3次元モデルを生成する3次元モデル生成ステップと、
前記3次元モデルから平面を推定し、前記平面の法線ベクトルの向き及び前記ステレオカメラに対する前記平面の高さ位置を、前記路面の法線ベクトルの向きの正解値および前記ステレオカメラに対する前記路面の高さ位置の正解値にそれぞれ整合させるように前記3次元モデルを補正する補正ステップと、を実行させるための、
路面検出プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、路面検出装置に関する。
【背景技術】
【0002】
従来、車両が走行する路面を含む撮像領域を撮像するステレオカメラ等の撮像部から出力された撮像画像データに基づいて、撮像部に対する路面の高さ位置などといった路面の状態を検出する技術が知られている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記のような従来の技術では、車両の揺れに伴う撮像部の揺れを考慮していない。撮像部の揺れが発生すると、実際には平坦な路面が、撮像画像データ上では凹凸が存在する路面として検出されるので、路面の検出精度が悪くなることがある。
【課題を解決するための手段】
【0005】
本発明の実施形態にかかる路面検出装置は、一例として、車両が走行する路面を含む撮像領域を撮像するステレオカメラから出力された撮像画像データを取得する画像取得部と、前記撮像画像データに基づいて、前記ステレオカメラの視点での前記路面の表面形状を含む前記撮像領域の3次元モデルを生成する3次元モデル生成部と、前記3次元モデルから平面を推定し、前記平面の法線ベクトルの向き及び前記ステレオカメラに対する前記平面の高さ位置を、前記路面の法線ベクトルの向きの正解値および前記ステレオカメラに対する前記路面の高さ位置の正解値にそれぞれ整合させるように前記3次元モデルを補正する補正部と、を備える。
【0006】
よって、一例としては、路面の検出精度の悪化を抑制することができる。
【0007】
前記補正部は、さらに、平面の法線ベクトルの向きを前記路面の法線ベクトルの向きの正解値に整合させた後、前記ステレオカメラに対する前記平面の高さ位置を前記ステレオカメラに対する前記路面の高さ位置の正解値に整合させるように前記3次元モデルの全体を補正する。
【0008】
よって、一例としては、補正を簡単に実行することができる。
【0009】
前記補正部は、さらに、前記路面の法線ベクトルの向きの正解値および前記ステレオカメラに対する前記路面の高さ位置の正解値を、前記ステレオカメラのキャリブレーション時に決定された値に基づいて取得する。
【0010】
よって、一例としては、正解値を容易に取得することができる。
【0011】
本発明の実施形態にかかる路面検出プログラムは、コンピュータに、車両が走行する路面を含む撮像領域を撮像するステレオカメラから出力された撮像画像データを取得する画像取得ステップと、前記撮像画像データに基づいて、前記ステレオカメラの視点での前記路面の表面形状を含む前記撮像領域の3次元モデルを生成する3次元モデル生成ステップと、前記3次元モデルから平面を推定し、前記平面の法線ベクトルの向き及び前記ステレオカメラに対する前記平面の高さ位置を、前記路面の法線ベクトルの向きの正解値および前記ステレオカメラに対する前記路面の高さ位置の正解値にそれぞれ整合させるように前記3次元モデルを補正する補正ステップと、を実行させる。
【0012】
よって、一例としては、路面の検出精度の悪化を抑制することができる。
【図面の簡単な説明】
【0013】
【
図1】
図1は、実施形態にかかる路面検出装置を搭載する車両の車室の一部が透視された状態の一例を示す斜視図である。
【
図2】
図2は、実施形態にかかる路面検出装置を搭載する車両の一例を示す平面図である。
【
図3】
図3は、実施形態にかかるECUの構成およびその周辺構成の一例を示すブロック図である。
【
図4】
図4は、実施形態にかかるECUで実現されるソフトウェア構成を例示した図である。
【
図5】
図5は、実施形態にかかるECUの路面検出機能の概要について説明する図である。
【
図6】
図6は、実施形態にかかるECUの路面検出機能の詳細について説明する図である。
【
図7】
図7は、実施形態にかかるECUの路面検出機能の詳細について説明する図である。
【
図8】
図8は、実施形態にかかるECUの路面検出機能の詳細について説明する図である。
【
図9】
図9は、実施形態にかかるECUの路面検出処理の手順の一例を示すフロー図である。
【
図10】
図10は、実施形態にかかるECUと比較例にかかる構成とによる平坦な路面の検出結果である。
【発明を実施するための形態】
【0014】
以下、本発明の例示的な実施形態が開示される。以下に示される実施形態の構成、ならびに当該構成によってもたらされる作用、結果、および効果は、一例である。本発明は、以下の実施形態に開示される構成以外によっても実現可能であるとともに、基本的な構成に基づく種々の効果や、派生的な効果のうち、少なくとも1つを得ることが可能である。
【0015】
[実施形態]
実施形態の構成について、
図1~
図10を用いて説明する。
【0016】
(車両の構成)
図1は、実施形態にかかる路面検出装置を搭載する車両1の車室2aの一部が透視された状態の一例を示す斜視図である。
図2は、実施形態にかかる路面検出装置を搭載する車両1の一例を示す平面図である。
【0017】
実施形態の車両1は、例えば、不図示の内燃機関を駆動源とする自動車、すなわち内燃機関自動車であってもよいし、不図示の電動機を駆動源とする自動車、すなわち電気自動車や燃料電池自動車等であってもよいし、それらの双方を駆動源とするハイブリッド自動車であってもよいし、他の駆動源を備えた自動車であってもよい。また、車両1は、種々の変速装置を搭載することができ、内燃機関や電動機を駆動するのに必要な種々の装置、例えばシステムや部品等を搭載することができる。また、車両1における車輪3の駆動に関わる装置の方式や、数、レイアウト等は、種々に設定することができる。
【0018】
図1に示すように、車体2は、不図示の乗員が乗車する車室2aを構成している。車室2a内には、乗員としての運転者の座席2bに臨む状態で、操舵部4、加速操作部5、制動操作部6、変速操作部7等が設けられている。操舵部4は、例えば、ダッシュボード24から突出したステアリングホイールである。加速操作部5は、例えば、運転者の足下に位置されたアクセルペダルである。制動操作部6は、例えば、運転者の足下に位置されたブレーキペダルである。変速操作部7は、例えば、センターコンソールから突出したシフトレバーである。なお、操舵部4、加速操作部5、制動操作部6、変速操作部7等は、これらには限定されない。
【0019】
また、車室2a内には、表示装置8、および音声出力装置9が設けられている。音声出力装置9は、例えば、スピーカである。表示装置8は、例えば、LCD(Liquid Crystal Display)、OELD(Organic Electroluminescent Display)等である。表示装置8は、例えば、タッチパネル等、透明な操作入力部10で覆われている。乗員は、操作入力部10を介して表示装置8の表示画面に表示される画像を視認することができる。また、乗員は、表示装置8の表示画面に表示される画像に対応した位置で、手指等で操作入力部10を触れたり押したり動かしたりして操作することで、操作入力を実行することができる。これらの表示装置8、音声出力装置9、操作入力部10等は、例えば、ダッシュボード24の車幅方向、すなわち左右方向の中央部に位置されたモニタ装置11に設けられている。モニタ装置11は、スイッチ、ダイヤル、ジョイスティック、押しボタン等の不図示の操作入力部を有することができる。また、モニタ装置11とは異なる車室2a内の他の位置に不図示の音声出力装置を設けることができる。またさらに、モニタ装置11の音声出力装置9と他の音声出力装置から、音声を出力することができる。なお、モニタ装置11は、例えば、ナビゲーションシステムやオーディオシステムと兼用されうる。
【0020】
図1、
図2に示すように、車両1は、例えば、四輪自動車であり、左右二つの前輪3Fと、左右二つの後輪3Rとを有する。これら4つの車輪3は、いずれも転舵可能に構成されうる。
【0021】
また、車体2には、複数の撮像部15として、例えば4つの撮像部15a~15dが設けられている。撮像部15は、例えば、CCD(Charge Coupled Device)やCIS(CMOS Image Sensor)等の撮像素子を内蔵するデジタル式のステレオカメラである。ステレオカメラは複数台のカメラで物体を同時に撮影し、各カメラで得られた物体の画像上での位置の違い、つまり、視差から、その物体の位置や立体的な形状を検出する。これにより、画像に含まれる路面等の形状情報を3次元情報として取得することができる。
【0022】
撮像部15は、所定のフレームレートで撮像画像データを出力することができる。撮像画像データは動画データであってもよい。撮像部15は、それぞれ、広角レンズまたは魚眼レンズを有し、水平方向には例えば140°以上220°以下の範囲を撮影することができる。また、撮像部15の光軸は斜め下方に向けて設定されている場合もある。これにより、撮像部15は、車両1が移動可能な路面や物体を含む車両1の外部の周辺の環境を逐次撮影し、撮像画像データとして出力する。ここで、物体は、車両1の走行時等に障害物となり得る岩、樹木、人間、自転車、他の車両等である。
【0023】
撮像部15aは、例えば、車体2の後側の端部2eに位置され、リアハッチのドア2hのリアウインドウの下方の壁部に設けられている。撮像部15bは、例えば、車体2の右側の端部2fに位置され、右側のドアミラー2gに設けられている。撮像部15cは、例えば、車体2の前側、すなわち車両前後方向の前方側の端部2cに位置され、フロントバンパやフロントグリル等に設けられている。撮像部15dは、例えば、車体2の左側の端部2dに位置され、左側のドアミラー2gに設けられている。
【0024】
(ECUのハードウェア構成)
次に、
図3を用いて、実施形態のECU(Electronic Control Unit)14、及びECU14の周辺構成について説明する。
図3は、実施形態にかかるECU14の構成およびその周辺構成を示すブロック図である。
【0025】
図3に示すように、路面検出装置としてのECU14の他、モニタ装置11、操舵システム13、ブレーキシステム18、舵角センサ19、アクセルセンサ20、シフトセンサ21、車輪速センサ22等は、電気通信回線としての車内ネットワーク23を介して電気的に接続されている。車内ネットワーク23は、例えば、CAN(Controller Area Network)として構成されている。
【0026】
ECU14は、車内ネットワーク23を通じて制御信号を送ることで、操舵システム13、ブレーキシステム18等を制御することができる。また、ECU14は、車内ネットワーク23を介して、トルクセンサ13b、ブレーキセンサ18b、舵角センサ19、アクセルセンサ20、シフトセンサ21、車輪速センサ22等の検出結果や、操作入力部10等の操作信号等を、受け取ることができる。
【0027】
また、ECU14は、複数の撮像部15で得られた画像データに基づいて演算処理や画像処理を実行し、より広い視野角の画像を生成したり、車両1を上方から見た仮想的な俯瞰画像を生成したりすることができる。
【0028】
ECU14は、例えば、CPU(Central Processing Unit)14a、ROM(Read Only Memory)14b、RAM(Random Access Memory)14c、表示制御部14d、音声制御部14e、フラッシュメモリ等であるSSD(Solid State Drive)14f等を有している。
【0029】
CPU14aは、例えば、表示装置8で表示される画像に関連した画像処理や、車両1の目標位置の決定、車両1の移動経路の演算、物体との干渉の有無の判断、車両1の自動制御、自動制御の解除等の、各種の演算処理および制御を実行することができる。CPU14aは、ROM14b等の不揮発性の記憶装置にインストールされ記憶されたプログラムを読み出し、当該プログラムにしたがって演算処理を実行することができる。かかるプログラムには、ECU14において路面検出処理を実現するためのコンピュータプログラムである路面検出プログラムが含まれる。
【0030】
RAM14cは、CPU14aでの演算で用いられる各種のデータを一時的に記憶する。
【0031】
表示制御部14dは、ECU14での演算処理のうち、主として、撮像部15で得られた画像データを用いた画像処理や、表示装置8で表示される画像データの合成等を実行する。
【0032】
音声制御部14eは、ECU14での演算処理のうち、主として、音声出力装置9で出力される音声データの処理を実行する。
【0033】
SSD14fは、書き換え可能な不揮発性の記憶部であって、ECU14の電源がオフされた場合にあってもデータを記憶することができる。
【0034】
なお、CPU14aや、ROM14b、RAM14c等は、同一パッケージ内に集積されうる。また、ECU14は、CPU14aに代えて、DSP(Digital Signal Processor)等の他の論理演算プロセッサや論理回路等が用いられる構成であってもよい。また、SSD14fに代えてHDD(Hard Disk Drive)が設けられてもよいし、SSD14fやHDDは、ECU14とは別に設けられてもよい。
【0035】
操舵システム13は、アクチュエータ13aと、トルクセンサ13bとを有し、少なくとも二つの車輪3を操舵する。すなわち、操舵システム13は、ECU14等によって電気的に制御されて、アクチュエータ13aを動作させる。操舵システム13は、例えば、電動パワーステアリングシステムや、SBW(Steer by Wire)システム等である。操舵システム13は、アクチュエータ13aによって操舵部4にトルク、すなわちアシストトルクを付加して操舵力を補ったり、アクチュエータ13aによって車輪3を転舵したりする。この場合、アクチュエータ13aは、一つの車輪3を転舵してもよいし、複数の車輪3を転舵してもよい。また、トルクセンサ13bは、例えば、運転者が操舵部4に与えるトルクを検出する。
【0036】
ブレーキシステム18は、例えば、ブレーキのロックを抑制するABS(Anti-lock Brake System)や、コーナリング時の車両1の横滑りを抑制する横滑り防止装置(ESC:Electronic Stability Control)、ブレーキ力を増強させブレーキアシストを実行する電動ブレーキシステム、BBW(Brake by Wire)等である。ブレーキシステム18は、アクチュエータ18aを介して、車輪3ひいては車両1に制動力を与える。また、ブレーキシステム18は、左右の車輪3の回転差などからブレーキのロックや、車輪3の空回り、横滑りの兆候等を検出して、各種制御を実行することができる。ブレーキセンサ18bは、例えば、制動操作部6の可動部の位置を検出するセンサである。ブレーキセンサ18bは、可動部としてのブレーキペダルの位置を検出することができる。ブレーキセンサ18bは、変位センサを含む。
【0037】
舵角センサ19は、例えば、ステアリングホイール等の操舵部4の操舵量を検出するセンサである。舵角センサ19は、例えば、ホール素子などを用いて構成される。ECU14は、運転者による操舵部4の操舵量や、自動操舵時の各車輪3の操舵量等を、舵角センサ19から取得して各種制御を実行する。なお、舵角センサ19は、操舵部4に含まれる回転部分の回転角度を検出する。舵角センサ19は、角度センサの一例である。
【0038】
アクセルセンサ20は、例えば、加速操作部5の可動部の位置を検出するセンサである。アクセルセンサ20は、可動部としてのアクセルペダルの位置を検出することができる。アクセルセンサ20は、変位センサを含む。
【0039】
シフトセンサ21は、例えば、変速操作部7の可動部の位置を検出するセンサである。シフトセンサ21は、可動部としての、レバーや、アーム、ボタン等の位置を検出することができる。シフトセンサ21は、変位センサを含んでもよいし、スイッチとして構成されてもよい。
【0040】
車輪速センサ22は、車輪3の回転量や単位時間当たりの回転数を検出するセンサである。車輪速センサ22は、検出した回転数を示す車輪速パルス数をセンサ値として出力する。車輪速センサ22は、例えば、ホール素子などを用いて構成されうる。ECU14は、車輪速センサ22から取得したセンサ値に基づいて車両1の移動量などを演算し、各種制御を実行する。なお、車輪速センサ22は、ブレーキシステム18に設けられている場合もある。その場合、ECU14は、車輪速センサ22の検出結果を、ブレーキシステム18を介して取得する。
【0041】
なお、上述した各種センサやアクチュエータの構成や、配置、電気的な接続形態等は、一例であって、種々に設定および変更することができる。
【0042】
(ECUのソフトウェア構成)
次に、
図4を用いて、実施形態のECU14の機能を示すソフトウェア構成について説明する。
図4は、実施形態にかかるECU14で実現されるソフトウェア構成を例示した図である。
図4に示される機能は、ソフトウェアとハードウェアとの協働によって実現される。すなわち、
図4に示される例において、ECU14の路面検出装置としての機能は、CPU14aがROM14bなどに記憶された路面検出プログラムを読み出して実行した結果として実現される。
【0043】
図4に示すように、路面検出装置としてのECU14は、画像取得部401、3次元モデル生成部402、補正部403、および記憶部404を備える。上述のCPU14aは、プログラムにしたがって処理を実行することにより、画像取得部401、3次元モデル生成部402、および補正部403等として機能する。RAM14cやROM14bなどは記憶部404として機能する。なお、上記各部の機能の少なくとも一部は、ハードウェアによって実現されてもよい。
【0044】
画像取得部401は、車両1の周辺領域を撮像する複数の撮像部15から複数の撮像画像データを取得する。撮像部15の撮像領域には車両1が走行する路面が含まれ、撮像画像データには路面の表面形状等が含まれる。
【0045】
3次元モデル生成部402は、画像取得部401が取得した撮像画像データから3次元モデルを生成する。3次元モデルは、車両1が走行する路面を含む路面の表面形状等の路面状態に応じて複数の点が3次元に配置された3次元点群である。
【0046】
補正部403は、3次元モデル生成部402が生成した3次元モデルの傾きを補正する。3次元モデルは、車体2の向き等の車両1の状態を基準に生成される。このため、車両1が傾いている場合であっても、路面等の状況を正しく反映した状態となるよう補正部403が補正する。
【0047】
記憶部404には、各部の演算処理で用いられるデータや、演算処理の結果のデータ等が記憶される。また、記憶部404には、車両1の工場出荷の際などに撮像部15等に対して行われるキャリブレーションデータが記憶される。
【0048】
(ECUの機能例)
次に、
図5を用いて、実施形態のECU14の機能例について説明する。
図5は、実施形態にかかるECU14の路面検出機能の概要について説明する図である。
【0049】
前提として、車両1の工場出荷の際などには、撮像画像が正しく得られるよう撮像部15に対してキャリブレーションが行われる。キャリブレーションは、たとえば光軸補正などを含んでいる。このキャリブレーションにより、撮像部15の視点を基準として、路面に対して垂直な法線ベクトルと、路面の高さ位置とが決定される。ECU14による路面検出においては、撮像部15の視点を基準とする路面の法線ベクトル及び路面の高さ位置が正解値として用いられる。このような正解値に基づき、撮像部15による撮像画像データから、路面等の所定点までの距離および所定点の高さを適正に算出することができる。
【0050】
つまり、例えば、
図5(a)に示すように、主に車両1前方の撮像部15cで撮像された撮像画像データに基づき路面の状態が検出される。例えば、撮像部15cで撮像された撮像画像データのうち、車両1に最も近い路面の所定点P1~P3までの距離および高さに基づく路面状態は、その時点で車両1が位置している路面、つまり、車両1の真下の路面の状態と見做される。ここでは、車両1に対して平行で平坦な路面が検出される。
【0051】
また、撮像部15cで撮像された撮像画像データのうち、車両1からやや離れた路面の所定点P4~P6までの距離および高さに基づき、車両1のやや前方の路面の状態が検出される。ここでは、車両1が位置している路面に対して平行で平坦な路面が検出される。
【0052】
また例えば、
図5(b)に示すように、路面の所定点P4~P6までの距離および高さに基づき、車両1が位置する平坦な路面のやや前方に、所定高さの物体Tが検出される。
【0053】
また例えば、
図5(c)に示すように、路面の所定点P4~P6までの距離および高さに基づき、車両1が位置する平坦な路面のやや前方に、上り坂等の傾斜路が検出される。
【0054】
また例えば、
図5(d)に示すように、下り坂等の傾斜路に車両1が位置しているときは、路面の所定点P1~P3までの距離および高さに基づき、車両1に対して平行で平坦な路面が検出される。また、路面の所定点P4~P6までの距離および高さに基づき、車両1が位置している路面に対して平行で平坦な路面が検出される。つまり、重力方向に対する路面の傾斜とは関係なく、車両1の現在位置の路面が車両1に対して平行であるものとして路面の状態の検出が行われる。
【0055】
このように、実施形態のECU14は、キャリブレーションにより決定された路面の法線ベクトルVcの向きを正解値、つまり、路面の法線ベクトルVrの向いているべき方向として用いる。すなわち、今回、検出された路面に対して垂直な法線ベクトルVrの向きが、正解値である法線ベクトルVcの向きと一致しているものと推定する。また、キャリブレーションにより決定された路面の高さ位置Hcを正解値、つまり、路面のあるべき高さとして用い、高さ位置Hcと一致しない高さを持ったものを検出する。上記の例のように、高さ位置Hcと一致しない高さを持ったものとは、例えば、路面に落ちている小石等の物体または路面自体の凹凸等である。
図5(c)の例のように、車両1が位置する路面とは異なる傾斜を持った他の路面の場合もある。
【0056】
なお、路面状態の検出に用いられる路面の情報は、上述の所定点P1~P6に限られない。ECU14は、例えば撮像部15cが撮像可能な範囲の全域に亘って路面の情報を取得し、路面の状態を特定する。
【0057】
次に、
図6~
図8を用いて、実施形態のECU14の機能の更に詳細について説明する。
図6~
図8は、実施形態にかかるECU14の路面検出機能の詳細について説明する図である。ECU14による以下の処理は、主に車両1前方の撮像部15cにより撮像された撮像画像データに基づき行われる。上述のように、撮像画像データは、ECU14の画像取得部401により取得される。
【0058】
まずは、路面に対して車両1が平行な姿勢を保っているときの様子について説明する。
【0059】
図6(a)に示すように、3次元モデル生成部402は、画像取得部401が取得した撮像画像データに基づき3次元モデルMを生成する。3次元モデルMでは、路面、路面自体が有する凹凸、および路面上の物体等の各種対象物が、車両1から各種対象物までの距離および各種対象物の高さに応じて、3次元に配置された複数の点に変換されている。
【0060】
補正部403は、3次元モデル生成部402が生成した3次元モデルMから路面の位置および向きを推定する。路面の位置および向きは、路面が凹凸及び他の物体等を含まない理想的な平坦性を有する平面であるものとして推定される。このような平面は、例えばRANSAC等のロバスト推定を用いて決定することができる。ロバスト推定では、得られた観測値が外れ値を含む場合に、その外れ値を除外して観測対象の法則性を推定する。すなわち、ここでは、3次元モデルMが含む凹凸及び他の物体等を示す点Px、Py、Pzを除外し、3次元モデルMにおける各位置および各向きの平坦性を推定することにより、所定の位置で所定の方向を向いた平面が得られる。
【0061】
図6(b)に示すように、補正部403は、上記のように推定された平面Rに垂直な法線ベクトルVrを算出する。また、補正部403は、平面Rの法線ベクトルVrの向きと、キャリブレーションにより決定された正解値としての法線ベクトルVcの向きとを一致させたうえで、キャリブレーションにより決定された正解値としての高さ位置Hcを基準に、3次元モデルMに含まれる3次元点群全体の高さ位置を補正する。補正された3次元モデルMにおいては、外れ値として除外された点Px、Py、Pzが高さ位置Hcとは一致せず、路面において所定高さを有する凹凸として示される。
【0062】
図6(b)においては、平面Rの法線ベクトルVrの向きと正解値としての法線ベクトルVcの向きとは一致しており、補正部403によるこのような補正は不要に思われる。しかし、
図6の例は、あくまで理想的な例である。車両1には、路面の凹凸等の影響を受けて常に揺れが生じる可能性があり、法線ベクトルVcに対する平面Rの法線ベクトルVrの傾きは常に変化しうる。
【0063】
そこで、車両1に揺れが生じたときの様子について説明する。
【0064】
図7は、路上の物体に車両1が乗り上げた様子を示している。このとき、実際に傾いているのは車両1の方であるが、撮像部15が撮像した撮像画像データ上では、車両1に対して右側の路面がせり上がり、左側の路面が落ち込んだ状態となるはずである。
【0065】
図7(a)に示すように、3次元モデル生成部402は、画像取得部401が取得した撮像画像データに基づき3次元モデルMを生成する。
【0066】
図7(b)に示すように、補正部403は、3次元モデル生成部402が生成した3次元モデルMから平面Rの位置および向きを推定する。そして、補正部403は、推定された平面Rの法線ベクトルVrを算出する。
図7(b)に示す例では、平面Rの法線ベクトルVrと正解値としての法線ベクトルVcとは一致していない。
【0067】
図8(a)に示すように、補正部403は、平面Rの法線ベクトルVrと正解値としての法線ベクトルVcとが一致するよう、平面Rの法線ベクトルVrの傾きを補正する。換言すれば、補正部403は、車両1の前後左右の軸に対して平面Rが平行になる向きに、平面Rの法線ベクトルVrをオフセット処理する。
【0068】
図8(b)に示すように、補正部403は、正解値としての高さ位置Hcに平面Rの高さ位置を合わせる。このとき、3次元モデルMに含まれる3次元点群全体の高さ位置を補正する。換言すれば、3次元点群全体の高さ位置が撮像部15cを視点とする高さ位置に補正される。
【0069】
これにより、3次元点群のうち平面Rに含まれる点は、車両1に対して平行な仮想の路面と高さ位置Hcにおいて重なり合うこととなる。また、3次元点群のうち路面の凹凸及び他の物体等を示す点Px、Py、Pzは、仮想の路面とは重なり合わず、所定高さを有する凹凸として示される。
【0070】
(ECUによる路面検出処理の例)
次に、
図9を用いて、実施形態のECU14による路面検出処理の例について説明する。
図9は、実施形態にかかるECU14の路面検出処理の手順の一例を示すフロー図である。
【0071】
図9に示すように、ECU14の画像取得部401は、撮像部15が撮像した撮像画像データを取得する(ステップS101)。以下に述べる路面状態の検出においては、主に車両1前方に設置された撮像部15cが撮像した撮像画像データが用いられる。撮像画像データは、好ましくは動画データである。
【0072】
3次元モデル生成部402は、主に撮像部15cが撮像した撮像画像データから3次元に複数の点が配置された3次元モデルMを生成する(ステップS102)。3次元モデルMは、路面自体の凹凸および路面上の物体等を含む路面の凹凸状態を含む。
【0073】
補正部403は、生成された3次元モデルMから平面Rの位置および向きを特定する(S103)。つまり、補正部403は、3次元モデルMからロバスト推定等の演算により所定の位置および向きを有する平面Rを推定する。推定された平面Rは凹凸状態を示すデータを含まない。
【0074】
補正部403は、特定された平面Rに対する法線ベクトルVrを算出する(ステップS104)。
【0075】
補正部403は、平面Rの法線ベクトルVrの傾きを補正する(ステップS105)。具体的には、補正部403は、必要に応じて平面Rの法線ベクトルVrを所定角度傾けて、平面Rの法線ベクトルVrを正解値としての法線ベクトルVcに対して垂直な向きとなるよう補正する。
【0076】
補正部403は、3次元モデルM全体の高さ位置を補正する(ステップS106)。つまり、補正部403は、正解値としての高さ位置Hcに基づき、3次元モデルM全体の高さ位置を補正する。3次元モデルM全体の高さ位置は、3次元モデルMに含まれる3次元点群の全ての位置を、平面Rに含まれる3次元点群の移動距離に応じた距離、相対的に移動させることで補正される。
【0077】
補正部403のステップS103~S106までの処理により、法線ベクトルを基準として、車両1に対して平面Rが水平となるよう3次元モデルが補正される。これにより、3次元点群の中から平面Rを示すものと推定された点が仮想の路面の高さ位置Hcと重なり合い、それ以外の点が所定高さを有する路面の凹凸として判別される。路面において所定の高さを有する凹凸は、路面自体の凹凸、路面上の物体、車両1が位置する路面と異なる傾斜を持った傾斜路等の他の路面であり得る。
【0078】
以上により、実施形態のECU14による路面検出処理が終了する。
【0079】
(比較例)
例えば、比較例として、上述した実施形態のような補正を実施しない構成を想定する。このような比較例では、車両が移動している際には、路面状況や運転者の操作によって、車両が上下左右に揺れ動いてしまう。ステレオカメラの視点では、路面が常時揺れ動いていることとなり、路面の所定位置における高さの検出精度が悪化してしまう。瞬間的な車両の揺れにより、存在しない凹凸等があたかも存在するかのように検知されてしまう場合もある。
【0080】
実施形態のECU14は、3次元モデルから演算により求められる平面Rを推定し、法線ベクトルVc及び高さ位置Hcを正解値として、推定された平面Rの法線ベクトルVrの向き及び平面Rの高さ位置がこれらに一致するよう3次元モデルMを補正する。これにより、車両1の揺れの影響を抑制して路面の高さの検出精度を向上させることができる。
【0081】
図10は、実施形態にかかるECU14と比較例にかかる構成とによる平坦な路面の検出結果のグラフである。
図10のグラフの横軸は車両の進行方向を示し、縦軸は路面の凹凸を示している。路面をゼロ点とし、ゼロ点を挟んで上方向が凸(プラス)側であり、下方向が凹(マイナス)側である。
【0082】
図10に示すように、3次元モデルの補正を行わない比較例の構成では、平坦な路面を車両が走行しているにもかかわらず、2つの大きな凸部が検知されている。それに対し、実施形態のECU14では、略平坦な路面状態が検出されている。
【0083】
実施形態のECU14は、このように、精度よく路面の凹凸の高さを検出することができる。このため、実施形態のECU14は、例えば、車両1の駐車支援システム及びサスペンション制御システム等に適用され得る。
【0084】
例えば、車両1の駐車支援システムにおいては、路面の凹凸の高さを正確に把握することで、所定経路を通る際の車両1の移動方向を正確に予測することができる。これにより、車両1をより確実に目標とする駐車スペースに誘導することができる。
【0085】
また、車両1のサスペンション制御システムにおいては、路面の凹凸の高さを正確に把握することで、所定経路を通る際の車両1の揺れを正確に予測することができる。これにより、より確実に車両1の揺れを抑制することができる。
【0086】
[その他の実施形態]
上述の実施形態のECU14で実行される路面検出プログラムは、インターネットなどのネットワーク経由で提供または配布されてもよい。すなわち、路面検出プログラムは、インターネットなどのネットワークに接続されたコンピュータ上に格納された状態で、ネットワーク経由でのダウンロードを受け付ける形で提供されてもよい。
【0087】
以上、本発明の実施形態を例示したが、上記実施形態および変形例はあくまで一例であって、発明の範囲を限定することは意図していない。上記実施形態や変形例は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、組み合わせ、変更を行うことができる。また、各実施形態や各変形例の構成や形状は、部分的に入れ替えて実施することも可能である。
【符号の説明】
【0088】
1…車両、8…表示装置、14…ECU、15…撮像部、401…画像取得部、402…3次元モデル生成部、403…補正部、404…記憶部、Hc…高さ位置、M…3次元モデル、R…平面、Vc,Vr…法線ベクトル。