以下、本発明の例示的な実施形態が開示される。以下に示される実施形態の構成、ならびに当該構成によってもたらされる作用、結果、および効果は、例である。本発明は、以下の実施形態に開示される構成以外によっても実現可能であるとともに、基本的な構成に基づく種々の効果や、派生的な効果のうち、少なくとも一つを得ることが可能である。
図1は、実施形態の特定領域検知装置を搭載可能な車両10の例を示す模式的な平面図である。車両10は、例えば、内燃機関(不図示のエンジン)を駆動源とする自動車(内燃機関自動車)であってもよいし、電動機(不図示のモータ)を駆動源とする自動車(電気自動車、燃料電池自動車等)であってもよいし、それらの双方を駆動源とする自動車(ハイブリッド自動車)であってもよい。また、車両10は、種々の変速装置を搭載することができるし、内燃機関や電動機を駆動するのに必要な種々の装置(システム、部品等)を搭載することができる。また、車両10における車輪12(前輪12F、後輪12R)の駆動に関わる装置の方式、個数、及び、レイアウト等は、種々に設定することができる。
図1に例示されるように、車両10には、複数の撮像部14として、例えば四つの撮像部14a~14dが設けられている。撮像部14は、例えば、CCD(Charge Coupled Device)やCIS(CMOS Image Sensor)等の撮像素子を内蔵するデジタルカメラである。撮像部14は、所定のフレームレートで動画データ(撮像画像データ)を出力することができる。撮像部14は、それぞれ、広角レンズまたは魚眼レンズを有し、水平方向には例えば140°~220°の範囲を撮影することができる。また、撮像部14の光軸は斜め下方に向けて設定されている場合もある。よって、撮像部14は、車両10が移動可能な路面や路面に付された指標(駐車区画を示す区画線、車線分離線や矢印等を含む)や物体(障害物として、例えば、歩行者、車両等)を含む車両10の外部の周辺環境を逐次撮影し、撮像画像データとして出力する。
撮像部14は、車両10の外周部に設けられている。撮像部14aは、例えば、車両10の後側、すなわち車両前後方向の後方側で車幅方向のほぼ中央の端部、例えばリヤバンパ10aの上方位置に設けられて、車両10の後端部(例えばリヤバンパ10a)を含む後方領域を撮像可能である。また、撮像部14bは、例えば、車両10の前側、すなわち車両前後方向の前方側で車幅方向のほぼ中央の端部、例えばフロントバンパ10bやフロントグリル等に設けられて、車両10の前端部(例えばフロントバンパ10b)を含む前方画像を撮像可能である。
また、撮像部14cは、例えば、車両10の右側の端部、例えば右側のドアミラー10cに設けられて、車両10の右側方を中心とする領域(例えば右前方から右後方の領域)を含む右側方画像を撮像可能である。撮像部14dは、例えば、車両10の左側の端部、例えば左側のドアミラー10dに設けられて、車両10の左側方を中心とする領域(例えば左前方から左後方の領域)を含む左側方画像を撮像可能である。
本実施形態の特定領域検知装置は、撮像部14で得られた撮像画像(以下、撮影画像ともいう。)に基づいて、演算処理を実行することで、特定領域の一例である駐車区画を検知することができる。
図2は、実施形態の特定領域検知装置を含む駐車支援システム100の構成の例示的なブロック図である。車両10の車室内には、表示装置16や、音声出力装置18が設けられている。表示装置16は、例えば、LCD(Liquid Crystal Display)や、OELD(Organic Electro-Luminescent Display)等である。音声出力装置18は、例えば、スピーカである。また、表示装置16は、例えば、タッチパネル等、透明な操作入力部20で覆われている。乗員(例えば、運転者)は、操作入力部20を介して表示装置16の表示画面に表示される画像を視認することができる。また、乗員は、表示装置16の表示画面に表示される画像に対応した位置で、手指等で操作入力部20を触れたり押したり動かしたりして操作することで、操作入力を実行することができる。これら表示装置16や、音声出力装置18、操作入力部20等は、例えば、車両10のダッシュボードの車幅方向すなわち左右方向の中央部に位置されたモニタ装置22に設けられている。モニタ装置22は、スイッチや、ダイヤル、ジョイスティック、押しボタン等の不図示の操作入力部を有することができる。モニタ装置22は、例えば、ナビゲーションシステムやオーディオシステムと兼用されうる。
また、図2に例示されるように、駐車支援システム100は、撮像部14(14a~14d)やモニタ装置22に加え、ECU24(Electronic Control Unit)を備える。駐車支援システム100では、ECU24やモニタ装置22は、電気通信回線としての車内ネットワーク26を介して電気的に接続されている。車内ネットワーク26は、例えば、CAN(Controller Area Network)として構成されている。ECU24は、車内ネットワーク26を通じて制御信号を送ることで、各種システムの制御を実行できる。例えば、駐車支援システム100では、ECU24や、モニタ装置22等の他、操舵システム28、舵角センサ30、ブレーキシステム32、駆動システム34、アクセルセンサ36、シフトセンサ38、車輪速センサ40等が車内ネットワーク26を介して電気的に接続されている。ECU24は、車内ネットワーク26を通じて制御信号を送ることで、操舵システム28、ブレーキシステム32、駆動システム34等を制御することができる。また、ECU24は、車内ネットワーク26を介して、トルクセンサ28a、ブレーキセンサ32a、舵角センサ30、アクセルセンサ36、シフトセンサ38、車輪速センサ40等の検出結果や、操作入力部20等の操作信号等を、受け取ることができる。
ECU24は、例えば、CPU24a(Central Processing Unit)、ROM24b(Read Only Memory)、RAM24c(Random Access Memory)、表示制御部24d、音声制御部24e、SSD24f(Solid State Drive、フラッシュメモリ)等を備えている。CPU24aは、各種の演算処理や制御を実行する。
CPU24aは、ROM24b等の不揮発性の記憶装置に記憶されたプログラムを読み出し、当該プログラムにしたがって演算処理を実行する。ROM24bは、各プログラム及びプログラムの実行に必要なパラメータ等を記憶する。RAM24cは、CPU24aでの演算で用いられる各種のデータを一時的に記憶する。また、表示制御部24dは、ECU24での演算処理のうち、主として、撮像部14で得られた画像データを用いた画像処理や、表示装置16で表示される画像データの合成等を実行する。また、音声制御部24eは、ECU24での演算処理のうち、主として、音声出力装置18で出力される音声データの処理を実行する。また、SSD24fは、書き換え可能な不揮発性の記憶部であって、ECU24の電源がOFFされた場合にあってもデータを記憶することができる。なお、CPU24aや、ROM24b、RAM24c等は、同一パッケージ内に集積されうる。また、ECU24は、CPU24aに替えて、DSP(Digital Signal Processor)等の他の論理演算プロセッサや論理回路等が用いられる構成であってもよい。また、SSD24fに替えてHDD(Hard Disk Drive)が設けられてもよいし、SSD24fやHDDは、ECU24とは別に設けられてもよい。
図1に例示されるように、車両10は、例えば、四輪自動車であり、左右二つの前輪12Fと、左右二つの後輪12Rとを有する。これら四つの車輪12は、いずれも転舵可能に構成されうる。図2に例示されるように、操舵システム28は、車両10の少なくとも二つの車輪12を操舵する。操舵システム28は、トルクセンサ28aとアクチュエータ28bとを有する。操舵システム28は、ECU24等によって電気的に制御されて、アクチュエータ28bを動作させる。操舵システム28は、例えば、電動パワーステアリングシステムや、SBW(Steer By Wire)システム等である。操舵システム28は、アクチュエータ28bによって操舵部(例えば、ステアリングホイール)にトルク、すなわちアシストトルクを付加して操舵力を補ったり、アクチュエータ28bによって車輪12を転舵したりする。この場合、アクチュエータ28bは、一つの車輪12を転舵してもよいし、複数の車輪12を転舵してもよい。また、トルクセンサ28aは、例えば、運転者が操舵部に与えるトルクを検出する。
舵角センサ30は、例えば、操舵部の操舵量を検出するセンサである。舵角センサ30は、例えば、ホール素子などを用いて構成される。ECU24は、運転者による操舵部の操舵量や、自動操舵時の各車輪12の操舵量等を、舵角センサ30から取得して各種制御を実行する。なお、舵角センサ30は、操舵部に含まれる回転部分の回転角度を検出する。
ブレーキシステム32は、例えば、ブレーキのロックを抑制するABS(Anti-lock Brake System)や、コーナリング時の車両10の横滑りを抑制する横滑り防止装置(ESC:Electronic Stability Control)、ブレーキ力を増強させる(ブレーキアシストを実行する)電動ブレーキシステム、BBW(Brake By Wire)等である。ブレーキシステム32は、アクチュエータ32bを介して、車輪12ひいては車両10に制動力を与える。また、ブレーキシステム32は、左右の車輪12の回転差などからブレーキのロックや、車輪12の空回り、横滑りの兆候等を検出して、各種制御を実行することができる。ブレーキセンサ32aは、例えば、制動操作部(例えば、ブレーキペダル)の可動部の位置を検出するセンサである。
駆動システム34は、駆動源としての内燃機関(エンジン)システムやモータシステムである。駆動システム34は、アクセルセンサ36により検出された運転者(利用者)の要求操作量(例えばアクセルペダルの踏み込み量)にしたがいエンジンの燃料噴射量や吸気量の制御やモータの出力値を制御する。また、利用者の操作に拘わらず、車両10の走行状態に応じて、操舵システム28やブレーキシステム32の制御と協働してエンジンやモータの出力値を制御しうる。車両10が自動走行モードで走行している場合も同様である。
アクセルセンサ36は、例えば、加速操作部(例えば、アクセルペダル)の可動部の位置を検出するセンサである。アクセルセンサ36は、可動部としてのアクセルペダルの位置を検出することができる。
シフトセンサ38は、例えば、変速操作部(例えば、シフトレバー)の可動部の位置を検出するセンサである。シフトセンサ38は、可動部としての、レバーや、アーム、ボタン等の位置を検出することができる。シフトセンサ38は、変位センサを含んでもよいし、スイッチとして構成されてもよい。ECU24は、シフトセンサ38の検出結果に基づいて、車両10が前進走行要求を受けているか、後退走行要求を受けているかの判定を行うことができる。
車輪速センサ40は、各車輪12に設けられ各車輪12の回転量や単位時間当たりの回転数を検出するセンサであり、検出した回転数を示す車輪速パルス数を検出値として出力する。車輪速センサ40は、例えば、ホール素子などを用いて構成されうる。ECU24は、車輪速センサ40から取得した検出値に基づき、車両10の車速や移動量などを演算し、各種制御を実行する。ECU24は、各車輪12の車輪速センサ40の検出値に基づいて車両10の車速を算出する場合、四輪のうち最も小さな検出値の車輪12の速度に基づき車両10の車速を決定し、各種制御を実行する。
なお、上述した各種センサやアクチュエータの構成や、配置、電気的な接続形態等は、例であって、種々に設定(変更)することができる。
ECU24は、例えば、撮像部14から取得した撮影画像に基づいて、駐車支援処理を実行したり、撮像画像データに基づいて生成した周辺画像や音声に関するデータをモニタ装置22へ送信したりする。
図3は、実施形態のCPU24a(特定領域検知装置)の構成の例示的なブロック図である。CPU24aは、例えば、撮影画像に基づいて、撮影領域における駐車区画を検知する。具体的には、CPU24aは、各モジュールとして、取得部241、推定部242、検知部243、表示制御部244、設定部245および算出部246を備える。なお、各モジュールは、CPU24aがROM24b等の記憶装置に記憶されたプログラムを読み出し、それを実行することで実現される。また、以下において、CPU24aが行う処理のうち、各部241~246以外が行う処理について説明する場合は、動作主体を「CPU24a」と表記する。
取得部241は、各構成から各種データを取得する。例えば、取得部241は、撮像部14から撮影画像を取得する。
推定部242は、学習用撮影画像を用いて撮影領域における所定数の点で定義される特定領域について学習することで作成された学習モデルを用いて、撮影画像から、複数の点と、所定の2つの点を結ぶ直線の方向を推定する。例えば、推定部242は、特定領域として4つの角の点で定義される四角形状の駐車区画について学習することで作成された学習モデルを用いて、撮影画像から、複数の点と、所定の2つの点を結ぶ直線の方向を推定する。
ここで、図4は、実施形態において、駐車区画を定義する4つの角の点の説明図である。本実施形態の学習モデルにおいて、一部に白線が描かれている四角形状の駐車区画は、4つの角の点P1~点P4で定義される。具体的には、駐車区画への車両進入方向を基準に、手前の左側の点が点P1で、手前の右側の点が点P2で、奥の右側の点が点P3で、奥の左側の点が点P4である。つまり、推定部242は、複数の点を推定する際に、複数の点それぞれを、駐車区画への車両進入方向を基準に所定回り方向に第1の点、第2の点、第3の点、第4の点の4つに分類して推定する。
上述の学習モデルは、例えば、深層学習(ディープラーニング)により作成することができる。深層学習では、この点P1~点P4で駐車区画を定義した教師データ(正解データ)を用いて学習を行う。その場合、例えば、パラメータを用いて関数を構築し、正解データについて損失を定義し、この損失を最小化することで学習を行う。
図3に戻って、例えば、推定部242は、点を推定する際、点をガウシアン分布として推定し、NMS(Non Maximum Suppression)による後処理を行うことが好ましい。これにより、点の推定の精度を上げることができる。
また、推定部242は、学習モデルを用いて、撮影画像から、点のほかに、所定の2つの点を結ぶ直線の方向(以下、単に「方向」ともいう。)を推定する。例えば、推定部242は、所定の2つの点を結ぶ直線の方向を推定する際に、同じ駐車区画に属すると推定される第1の点と第2の点を結ぶ直線の方向を推定する。なお、この場合、第1の点と第2の点の組み合わせは、点P1~点P4の2点のうち、対角点である点P1と点P3、点P2と点P4以外であればよく、具体的には、点P1と点P2、点P1と点P4、点P2と点P3、点P3と点P4の少なくともいずれかであればよい。ただし、点と方向の推定の手法は、上述の手法に限定されない。
検知部243の処理について、図5~図7を参照して説明する。図5は、実施形態における撮影画像の例を示す模式図である。図6は、実施形態において、コスト行列でコストとして用いる三角形の面積の算出方法の説明図である。図7は、実施形態における2部グラフとコスト行列の例を示す模式図である。
図5に示すように、推定部242によって、撮影画像(魚眼画像)において、各駐車区画の角の点として、点P1a、P2a、点P1b、P2b、点P4b、点P1c、P2c、点P3c、点P4c、点P1d、P2d、点P3d、点P4dが推定されたものとする。なお、実際には各駐車区画の角の点として存在している部分でも、車両等で隠れて見えていないものは対象とならない。そして、ここでは、一例として、1つの駐車区画を構成する点P1~点P4の4点のうち、すべてが見えていなくても、いずれか1点が見えている場合は、計算の対象とする。
そして、検知部243は、点同士のマッチングを行う(複数の点を駐車区画ごとに分類する)ため、点同士の対応を2部グラフとみなし、2部グラフの最適マッチング問題に帰着する。具体的には、検知部243は、方向に基づいて、複数の点についてマッチングを行い、複数の点を駐車区画ごとに分類することで、駐車区画を検知する。例えば、検知部243は、方向に基づいて、複数の点についてマッチングを行う際、複数の第1の点と複数の第2の点の2部グラフに対応するコスト行列を用いてコスト最小となる第1の点と第2の点の組み合わせを探索することで、複数の点を駐車区画ごとに分類する。検知部243は、その場合、所定の第1の点と所定の第2の点を選択したときに、所定の第1の点と、所定の第2の点と、所定の第1の点に関して推定された方向を示す直線に対して所定の第2の点から降ろした垂線と当該直線との交点と、の3点に基づいてコストを計算する。例えば、当該3点を頂点とする三角形の面積や、その三角形を2つ合わせた平行四辺形の面積をコストとして計算する。
また、最適マッチング問題を解くためにハンガリアン法を活用する。ハンガリアン法とは、いわゆる割当問題を解くための手法であり、行列について、各行の各要素からその行の最小値を引き、その後さらに各列の各要素からその列の最小値を引く、等の操作を行う周知のアルゴリズムである。ここでのハンガリアン法では、2部グラフに対応するコスト行列を作成し、コスト最小の組み合わせを探索する。つまり、検知部243は、コスト行列に対してハンガリアン法を適用してコスト最小となる第1の点と第2の点の組み合わせを探索する。
具体的には、図6に示すように、例えば、検知部243は、点P1b(所定の第1の点)と点P4c(所定の第2の点)を選択したときに、点P1bと、点P4cと、点P1bに関して推定された方向を示す直線(点P1bと点P4bを結ぶ直線)に対して点P4cから降ろした垂線と当該直線との交点Pzと、の3点を頂点とする三角形の面積をコストとして計算する。なお、この例の場合、計算効率を考慮し、点P4x(x=a、b、c、d、・・・)のうち、点P1bを基準にして点P1bと点P4bを結ぶ直線と所定角度(例えば20度)を有する直線L1、L2の内側の範囲に存在するものだけを対象とする。
図7(a)は、点P1~点P4のうち、点P1(点P1a~点P1d)と点P4(点P4a~点P4d)を選択した場合の2部グラフを示す。また、図7(b)は、その場合のコスト行列を示す。面積S1~S16は、上述の方法により算出する三角形の面積(コスト)である。
このようにして、点P1(点P1a~点P1d)と点P4(点P4a~点P4d)の組み合わせを探索すれば、適切な組み合わせを容易かつ高精度で得ることができる。なぜなら、同じ駐車区画に属する2点を選択したときに、上述の三角形の面積が小さくなるからである。
また、点P1と点P4だけでなく、同様に、点P2と点P3、および、点P1と点P2についても、上述の計算(マッチング)を行い、適切な組み合わせを得ることができる。
そして、検知部243は、点P1と点P4、点P2と点P3、および、点P1と点P2の組み合わせに関する最尤推定の後、例えば、点P1と点P2の組み合わせを基準にして、マッチング結果を統合することで、複数の点を駐車区画ごとに分類する。なお、統合されなかった点P1と点P4の組み合わせと点P2と点P3の組み合わせについては、推定結果から除外する。
図3に戻って、表示制御部244は、検知部243によって検知された駐車区画を表示装置16(表示部)に表示させる。ここで、図8は、実施形態における推奨駐車区画の表示例を示す模式図である。図8に示す推奨駐車区画PRは、例えば、駐車可能な駐車区画が複数ある場合の1つの駐車区画である。
図3に戻って、設定部245は、ユーザによって操作入力部20を用いた目標駐車区画の入力操作があった場合に、その目標駐車区画を設定する。
算出部246は、設定部245によって目標駐車区画の設定が行われた場合に、周知の移動経路算出技術を用いて、車両の現在位置から目標駐車区画までの移動経路を算出する。
次に、図9を参照して、実施形態の特定領域検知装置による全体処理について説明する。図9は、実施形態の特定領域検知装置による全体処理を示すフローチャートである。
まず、ステップS1において、取得部241は、撮像部14から撮影画像を取得する。次に、ステップS2において、CPU24aは、駐車可能な駐車区画を検知する。ここで、図10は、図9のステップS2の処理の詳細を示すフローチャートである。
ステップS21において、推定部242は、4つの角の点で定義される四角形状の駐車区画を推定するための学習モデルを用いて、撮影画像から、複数の点と、所定の2つの点を結ぶ直線の方向を推定する。
次に、ステップS22において、検知部243は、点同士のマッチングを行う(図6、図7)。これによって、ステップS23において、検知部243は、複数の点を駐車区画ごとに分類する。そして、ステップS24において、検知部243は、所定の基準に基づいて駐車可能な駐車区画を検知する。
図9に戻って、ステップS2の後、ステップS3において、CPU24aは、推定駐車区画を検知する。例えば、駐車可能な駐車区画が複数ある場合に、CPU24aは、所定の基準に基づいて1つの駐車区画を推定駐車区画として決定する。
次に、ステップS4において、表示制御部244は、ステップS3で決定した推定駐車区画を表示装置16に表示させる。
次に、ステップS5において、CPU24aは、ユーザによって操作入力部20を用いた目標駐車区画の入力操作があったか否かを判定し、Yesの場合はステップS6に進み、Noの場合はステップS3に戻る。
ステップS6において、設定部245は目標駐車区画を設定し、表示制御部244は目標駐車区画が設定された旨を表示装置16に表示させる。
次に、ステップS7において、算出部246は、周知の移動経路算出技術を用いて、車両の現在位置から目標駐車区画までの移動経路を算出する。
次に、ステップS8において、CPU24aは、駐車支援を実行する。例えば、CPU24aは、駐車支援として「完全自動駐車支援」を実行する場合、操舵システム28、ブレーキシステム32、駆動システム34等を制御して、移動経路に沿って車両10を移動させる。また、CPU24aは、駐車支援として「半自動駐車支援」や「誘導支援」を実行する場合、音声や表示により操作内容を運転者に報知して運転者が操作の一部または全てを実行することにより駐車動作が実現される。
このようにして、本実施形態の特定領域検知装置によれば、学習モデルを用いて撮影画像から複数の点と所定の2つの点を結ぶ直線の方向を推定してから、前記方向に基づいて複数の点を特定領域ごとに分類することで特定領域を高精度で検知することができる。
具体的には、特定領域として4つの角の点で定義される四角形状の駐車区画を高精度で推定することができる。なお、例えば、駐車区画を示す白線が不充分(小さい、途切れあり、かすれあり等)である場合、従来の白線を認識することで駐車区画を検知する技術では検知精度が大きく低下してしまう。しかし、本実施形態の特定領域検知装置によれば、学習モデルを用いて撮影画像から複数の点と前記方向を推定する手法により、そのような場合でも駐車区画の検知精度は低下しない。
また、例えば、従来技術で、駐車区画を検知する際に、その駐車区画の近傍の駐車車両を基準にする手法の場合、その基準となる駐車車両が存在しないと駐車区画を検知できない。しかし、本実施形態の特定領域検知装置によれば、学習モデルを用いて撮影画像から複数の点と前記方向を推定する手法により、駐車車両が無くても駐車区画を高精度で検知できる。
特に、駐車区画が遠距離の場合、従来技術では基準となる駐車車両の存在の有無にかかわらず駐車区画の検知精度が大きく低下するが、本実施形態の特定領域検知装置によれば、学習モデルを用いて撮影画像から複数の点と前記方向を推定する手法により、駐車区画の検知精度はほとんどあるいはまったく低下しない。
また、駐車区画を推定する場合に、上述の2部グラフとコスト行列を用いることで、容易かつ高精度に駐車区画を推定することができる。
また、コスト行列に対してハンガリアン法を適用することで、簡潔なアルゴリズムで高精度に駐車区画を推定することができる。
また、検知された駐車区画を表示させることで、運転者に対する駐車支援を行うことができる。
なお、本実施形態のCPU24aで実行される駐車支援処理のためのプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD-ROM、フレキシブルディスク(FD)、CD-R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。
さらに、駐車支援処理プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施形態で実行される駐車支援処理プログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
本発明の実施形態及び変形例を説明したが、これらの実施形態及び変形例は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
例えば、撮影画像に基づいて検知する特定領域は、駐車区画に限定されず、人や車両などであってもよい。その場合、検知対象を所定数の点で定義すればよい。
また、学習や推論で使用する撮影画像は、魚眼画像に限定されず、広角画像、通常画像、あるいは、複数の撮影画像を元に合成された俯瞰画像等であってもよい。
また、本実施形態では、学習モデルにおいて、駐車区画を、一部に白線が描かれている四角形状としたが、これに限定されない。例えば、駐車区画を、全部に白線が描かれている四角形状としてもよいし、あるいは、白線が無く2車両に挟まれている空間としてもよい。