以下、本発明の実施形態について図面を用いて説明する。なお、各実施形態において同一の符号を付された構成は、特に言及しない限り、各実施形態において同様の機能を有するので、その説明を省略する。
[実施形態1]
図1は、実施形態1の物体検知装置1のハードウェア構成を示す図である。
物体検知装置1は、車両に搭載され、車両の周囲を監視する装置である。物体検知装置1は、車両の周囲に存在する物体を検知する装置である。物体検知装置1は、CANバス107を介して車両制御ユニット102に接続される。
物体検知装置1は、LiDAR101と、記憶装置103と、CPU104と、メモリ105と、CAN_I/F106とを備える。
LiDAR101は、車両から周囲に向けて一又は複数のレーザ光を放射し、その反射光を受光して、レーザ光の反射位置までの距離、方向及び反射強度等のデータを取得する。このデータは、点群データに変換される。LiDAR101を用いた物体検知装置1は、カメラを用いた場合とは異なり、周囲の明るさに依存せずに点群データを取得することが可能であり、昼夜や天候に関係なく物体を検知することができる。LiDAR101は、イーサネット108を介してCPU104に接続され、取得されたデータをCPU104へ送信する。この接続におけるプロトコルは、UDP(User Datagram Protocol)を用いるのが一般的である。
記憶装置103は、地図情報や自動運転に必要なデータを記憶する。記憶装置103は、LiDAR101のキャリブレーションパラメータの値を記憶することも可能である。
CPU104は、LiDAR101により取得されたデータを点群データに変換し、点群データに基づいて、車両の周囲に存在する物体を検知する物体検知処理を行う。CPU104は、処理過程で必要となるデータや処理結果をメモリ105に記憶させる。例えば、CPU104は、LiDAR101により取得されたデータから変換された点群データをメモリ105へ送信し、例えば、図4に示すデータ構造に対応したバッファに記憶させる。CPU104は、処理結果が、CANバス107を介して車両制御ユニット102へ送信されるよう、CAN_I/F106を制御する。CPU104は、車両制御ユニット102にて作成された車両の進行方向や速度等のデッドレコニング情報を、CAN_I/F106を介して取得する。
車両制御ユニット102は、車両の進行方向や速度を制御するECU等によって構成される。車両制御ユニット102は、CPU104による物体検知処理の処理結果を取り込んで、車両の走行制御を行う。車両制御ユニット102は、車両の進行方向や速度のデッドレコニング情報を作成し、CANバス107及びCAN_I/F106を介して、CPU104へ送信する。
図2は、図1に示す物体検知装置1の機能的構成を示す図である。
物体検知装置1は、点群取得部201と、物体検知部204と、信頼度判定部205と、点群DB208とを備える。
点群取得部201は、車両の周囲を走査するセンサであるLiDAR101の走査結果に応じて、車両の周囲に存在する物体の点群データを取得する。点群取得部201は、信頼度判定部205の判定結果に基づいてLiDAR101の走査範囲と照射密度とを制御する点群取得制御部202と、LiDAR101の走査結果から点群データを取得する点群位置計算部203とを備える。照射密度とは、LiDAR101から放射されたレーザ光の物体に対する照射点の単位体積当たりの個数である。照射密度が増加するほど、点群データに含まれる個々の3次元点の単位体積当たりの個数である点群密度も増加する。照射密度が増加するほど、照射点同士の間隔は短くなり、3次元点同士の間隔である点群間隔も短くなる。点群位置計算部203は、LiDAR101により取得されたレーザ光の反射位置までの距離及び方向等のデータを、3次元座標等を有する3次元点に変換することによって、点群データを取得する。点群位置計算部203は、取得された点群データを、点群DB208及び物体検知部204へ送信する。
点群DB208は、点群取得部201の点群位置計算部203から送信された点群データを記憶する。物体検知部204は、点群取得部201により取得された点群データに基づいて周囲の物体を検知する。具体的には、物体検知部204は、点群取得部201の点群位置計算部203から送信された点群データに含まれる3次元座標に従って、物体の位置や種別を検知する。
信頼度判定部205は、物体検知部204の検知結果における信頼度を判定する。具体的には、信頼度判定部205は、物体検知部204において検知の対象となった物体(以下、「検知物体」とも称する)の信頼度を、予め定められた物体の種別毎に計算し、計算された信頼度に応じて検知物体の種別を判定する。信頼度とは、各検知物体に対して、物体の種別を確定できるか否かを数値化した指標である。信頼度の数値範囲は、0.0より大きく1.0以下である。信頼度が高いほど、物体の種別が確定され易い。
信頼度判定部205は、検知物体の各パラメータのスコアを用いて信頼度を計算し、計算された信頼度に応じて検知物体の種別を判定するスコア計算部206と、検知物体の移動を追跡する物体追跡部207とを備える。パラメータとは、検知物体の種別を確定する際に着目される物体の属性を表す指標である。パラメータは、例えば、物体の奥行き、幅及高さ等の物体のサイズや、物体の速度等である。パラメータは、物体の種別毎に取り得る範囲が異なる。スコア計算部206には、パラメータと、種別毎のパラメータの取り得る範囲とが予め定められている。本実施形態では、物体のサイズを定める物体の奥行き、幅及高さのそれぞれを、パラメータとする。スコアは、検知物体のパラメータが、種別毎のパラメータの取り得る範囲に対して、どの程度適合しているかを数値化した指標である。スコア計算部206は、検知物体のパラメータの当該範囲との適合性を数値化したスコアを、種別毎に計算する。本実施形態では、スコア計算部206は、検知物体のサイズの当該範囲との適合性を数値化したスコアを、種別毎に計算する。すなわち、スコア計算部206は、検知物体の奥行き、幅及び高さのそれぞれの当該範囲との適合性を数値化したスコアを、種別毎に計算する。スコアの数値範囲は、0.0より大きく1.0以下である。スコアが高いほど、検知物体のパラメータが、当該範囲に適合し易い。
スコア計算部206は、計算された検知物体の奥行き、幅及び高さの各スコアを用いて、種別毎に信頼度を計算する。スコア計算部206は、計算された種別毎の信頼度に応じて検知物体の種別を判定する。具体的には、スコア計算部206は、或る種別における信頼度が第1基準値(例えば0.3)より小さい場合には、この或る種別を検知物体の種別として否定する。また、スコア計算部206は、或る種別における信頼度が第2基準値(例えば0.6)以上である場合には、この或る種別を検知物体の種別として確定する。また、スコア計算部206は、或る種別における信頼度が第1基準値以上第2基準値より小さい場合、この或る種別を検知物体の種別として否定も確定もせず、検知物体の種別が不明であると判定する。第1基準値及び第2基準値は、0.0以上1.0以下の範囲内において予め定められた値である。第2基準値は、第1基準値よりも大きい。スコア計算部206は、検知物体の種別の判定結果を、点群取得部201及び物体検知部204へ送信する。
図3は、図2に示す物体検知装置1において使用される座標系を示す図である。
本実施形態では、物体検知装置1が搭載された自車両301の位置を原点とした直交座標系が使用される。本実施形態では、自車両301の進行方向に沿った座標軸をx軸とし、自車両301の前進方向をx軸の正方向とする。本実施形態では、自車両301の車幅方向に沿った座標軸をy軸とし、自車両301の進行方向に向かって右から左へ向かう方向をy軸の正方向とする。本実施形態では、路面に垂直な座標軸(重力方向に沿った座標軸)をz軸とし、路面から離隔する方向(反重力方向)をz軸の正方向とする。
図4は、図2に示す点群DB208に記憶されたデータのデータ構造を説明する図である。
点群DB208に記憶されたデータは、点群データ402の個数を示す点群数401と、それぞれの点群データ402とから構成される。点群DB208に記憶されたデータは、点群データ402を、点群数401だけ羅列した構造を有する。それぞれの点群データ402は、個々の3次元点のx座標403、y座標404、z座標405及び反射強度406を含む。x座標403、y座標404及びz座標405は、図3の座標系に従っている。
図5は、図2に示すLiDAR101の走査モードに関する状態遷移図である。
LiDAR101は、通常モード501と、絞り込みモード502とによって、自車両301の周囲を走査することができる。通常モード501は、LiDAR101の走査範囲をLiDAR101の仕様のうちで最大とし、LiDAR101の照射密度をLiDAR101の仕様のうちで最小とするモードである。絞り込みモード502は、LiDAR101の走査範囲を通常モード501よりも縮小させ、LiDAR101の照射密度を通常モード501よりも増加させたモードである。絞り込みモード502は、LiDAR101の走査範囲をLiDAR101の仕様のうちで最小とし、LiDAR101の照射密度をLiDAR101の仕様のうちで最大とするモードであってもよい。物体検知装置1は、LiDAR101が通常モード501により走査することによって広範囲の物体を検知することが可能であり、LiDAR101が絞り込みモード502により走査することによって特定の物体について詳細に検知することが可能である。
LiDAR101は、通常モード501によって走査した結果、検知物体の中に要注意物体がない場合、そのまま通常モード501を維持する。LiDAR101は、通常モード501によって走査した結果、検知物体の中に要注意物体がある場合、絞り込みモード502に遷移する。要注意物体とは、信頼度が低く、物体の種別が不明と信頼度判定部205によって判定された検知物体のことである。要注意物体は、信頼度判定部205によって要注意物体リスト503に登録される。要注意物体リスト503は、絞り込みモード502によって再走査するべき検知物体の情報が記憶されたリストである。要注意物体リスト503は、メモリ105に実装され、要注意物体を構成する点群データを保持するように構成される。
絞り込みモード502によって再走査された要注意物体の信頼度が高く、物体の種別が信頼度判定部205によって確定された場合、LiDAR101は、通常モード501に遷移する。種別が確定された要注意物体は、信頼度判定部205によって要注意物体リスト503から除外される。また、LiDAR101は、通常モード501から絞り込みモード502に遷移してから所定時間経過した場合、タイムアウトになったとして通常モード501に遷移する。
すなわち、物体検知装置1では、点群取得部201が、通常モード501によってLiDAR101に走査させ、走査結果に応じて点群データを取得する。物体検知装置1では、物体検知部204が、取得された点群データに基づいて物体を検知する。物体検知装置1では、信頼度判定部205が、物体検知部204の検知結果における信頼度が高い(第2基準値以上)場合、検知物体の種別を確定する。物体検知装置1では、信頼度判定部205が、当該信頼度が低い(第1基準値以上第2基準値より小さい)場合、検知物体を要注意物体リスト503に登録する。物体検知装置1では、点群取得部201が、要注意物体リスト503に登録された検知物体を、絞り込みモード502によってLiDAR101に再走査させ、再走査結果に応じて点群データを再取得する。物体検知装置1では、物体検知部204が、再取得された点群データに基づいて当該検知物体を再検知する。物体検知装置1では、信頼度判定部205が、物体検知部204の再検知結果における信頼度を判定する。物体検知装置1では、信頼度判定部205が、再検知結果における信頼度が高い(第2基準値以上)検知物体を要注意物体リスト503から除外する。そして、物体検知装置1では、点群取得部201が、新たな物体を、通常モード501によってLiDAR101に走査させ、走査結果に応じて点群データを取得する。
図6は、図5に示す要注意物体リスト503のデータ構造を説明する図である。
要注意物体リスト503は、要注意物体の個数を示す物体数601と、要注意物体の詳細情報を示す物体情報602とから構成される。要注意物体リスト503は、物体情報602を物体数601だけ羅列した構造を有する。物体情報602は、要注意物体の位置座標を示す物体座標603と、要注意物体を構成する点群データ605の個数を示す点群数604と、要注意物体を構成するそれぞれの点群データ605とから構成される。物体座標603は、x座標606、y座標607及びz座標608を含む。それぞれの点群データ605は、個々の3次元点のx座標609,y座標610、z座標611及び反射強度612を含む。
図7は、図2に示す物体検知装置1が行う処理の流れを示すフローチャートである。
ステップS701において、物体検知装置1は、LiDAR101の走査モードを通常モード501に設定する。
ステップS702において、物体検知装置1は、自車両の現時点の車速、限界舵角、及び、予測される走行方向に基づいて、自車両の周囲に要注意領域を設定する。要注意領域は、LiDAR101の走査範囲のうちで特に物体検知装置1が注意するべき監視領域のことである。要注意領域内に位置する物体は、要注意物体として、要注意物体リストに登録される可能性がある物体である。すなわち、要注意領域内に位置する物体は、要注意物体として、絞り込みモードによって再走査される可能性がある物体である。要注意領域の設定については、図8を用いて後述する。要注意領域の設定後、物体検知装置1は、LiDAR101を通常モードにて走査させ、自車両301の周囲に存在する物体の点群データを取得する。
ステップS703において、物体検知装置1は、取得された点群データに基づいて物体を検知する物体検知処理を行う。物体検知処理のアルゴリズムとしては、占有グリッドマップ(Occupancy Grid Map:OGM)等の様々なアルゴリズムを採用することができる。本実施形態の物体検知装置1は、占有グリッドマップを用いて物体検知処理を行う。物体検知処理については、図10を用いて後述する。
ステップS703の後、物体検知装置1は、ループL71へ移行する。ループL71において、物体検知装置1は、ステップS703において検知の対象となった検知物体の個数だけ、ステップS704~ステップS706を行う。
ステップS704において、物体検知装置1は、検知物体が要注意領域内に位置するか否かを判定する。物体検知装置1は、検知物体が要注意領域内に位置しない場合、別の検知物体に対してループL71を行う。物体検知装置1は、検知物体が要注意領域内に位置する場合、ステップS705へ移行する。
ステップS705において、物体検知装置1は、検知物体の種別が不明であると判定されたか否かを判定する。物体検知装置1は、検知物体の種別が不明であると判定されなかった場合、別の検知物体に対してループL71を行う。物体検知装置1は、検知物体の種別が不明であると判定された場合、ステップS706へ移行する。
ステップS706において、物体検知装置1は、種別が不明であると判定された検知物体を、要注意物体として要注意物体リストに登録する。
ステップS706の後、物体検知装置1は、別の検知物体に対してループL71を行う。物体検知装置1は、検知物体の個数だけループL71を行った後、ループL71を抜けてステップS707へ移行する。
ステップS707において、物体検知装置1は、要注意物体リストに要注意物体が登録されているか否かを判定する。物体検知装置1は、要注意物体リストに要注意物体が登録されていない場合、ステップS701へ移行する。物体検知装置1は、要注意物体リストに要注意物体が登録されている場合、ステップS708へ移行する。
ステップS708において、物体検知装置1は、LiDAR101の走査モードを絞り込みモード502に設定する。
ステップS708の後、物体検知装置1は、ループL72へ移行する。ループL72において、物体検知装置1は、要注意物体の個数だけ、すなわち、要注意物体リストに要注意物体として登録された検知物体の個数だけ、ステップS709~ステップS712を行う。
ステップS709において、物体検知装置1は、LiDAR101の走査範囲を要注意物体の物体座標に合わせて設定する。物体検知装置1は、LiDAR101を絞り込みモードによって走査させ、要注意物体の点群データを再取得する。絞り込みモードによるLiDAR101の走査範囲の設定については、図9(a)及び図9(b)を用いて後述する。
ステップS710において、物体検知装置1は、再取得された点群データに基づいて、物体検知処理を行う。ステップS710の物体検知処理のアルゴリズムは、ステップS703の物体検知処理のアルゴリズムと同様である。物体検知装置1は、ステップS703と同様の処理を行う。
ステップS711において、物体検知装置1は、要注意物体の種別が不明であると判定されたか否かを判定する。物体検知装置1は、要注意物体の種別が不明であると判定された場合、別の要注意物体に対してループL72を行う。物体検知装置1は、要注意物体の種別が不明であると判定されなかった場合、ステップS712へ移行する。
ステップS712において、物体検知装置1は、種別が不明であると判定されなかった要注意物体を、要注意物体リストから除外する。
ステップS712の後、物体検知装置1は、別の要注意物体に対してループL72を行う。物体検知装置1は、要注意物体の個数だけループL72を行った後、ループL72を抜けてステップS713へ移行する。
ステップS713において、物体検知装置1は、タイムアウトか否かを判定する。物体検知装置1は、ステップS708において絞り込みモードに設定されて所定時間経過した場合、タイムアウトになったと判定する。物体検知装置1は、タイムアウトになっていない場合、ステップS707へ移行する。物体検知装置1は、タイムアウトになった場合、ステップS701へ移行する。
図8は、図7に示す要注意領域801を説明する図である。図9(a)は、図8に示す状況から、先行車両802が絞り込みモードの走査対象となった場合を説明する図である。図9(b)は、図8に示す状況から、他の先行車両803が絞り込みモードの走査対象となった場合を説明する図である。
要注意領域801は、自車両301の現時点の車速、限界舵角、及び、予測される走行方向302に基づいて設定される。限界舵角とは、車両の転倒が生じない最大舵角である。限界舵角の力学的な理論値は、例えば、和田他「ジョイスティック式自動車運転装置による操舵制御に関する検討」(計測自動制御学会論文集 Vol.49, No.4, 417/424, 2013)に記載されている。この文献には、車速が高くなるほど限界舵角が小さくなるという知見が記載されている。限界舵角は、805に示すように変化する。物体検知装置1は、自車両301の車速と限界舵角との関係を示すテーブル等を、記憶装置103又はメモリ105に予め記憶しておく。
物体検知装置1は、車速と限界舵角との関係を示すテーブルを参照する等によって、自車両301の現時点の車速に対応する限界舵角を特定する。ここで、限界舵角をθとし、LiDAR101の測距可能な最長距離をdとする。物体検知装置1は、自車両301を中心とし半径をdとし中心角を2θとする扇形の領域であって、自車両301の予測される走行方向302である進行方向前方に広がる領域を、要注意領域801に設定する。
図8の例では、自車両301の先行車両802及び先行車両803は要注意領域801の内側に位置するが、先行車両804は要注意領域801の外側に位置する。物体検知装置1は、先行車両802及び先行車両803の種別が不明と判定された場合、先行車両802及び先行車両803を要注意物体として要注意物体リストに登録し、絞り込みモードによって再走査する。物体検知装置1は、先行車両804の種別が不明と判定された場合であっても、先行車両804を要注意物体リストに登録せず、絞り込みモードによって再走査しない。すなわち、要注意領域801の内側に位置する先行車両802及び先行車両803は、絞り込みモードの走査対象になり得るが、要注意領域801の外側に位置する先行車両804は、絞り込みモードの走査対象にならない。
図9(a)は、先行車両802が絞り込みモードの走査対象になった場合を示している。この場合、物体検知装置1は、絞り込みモードによるLiDAR101の走査範囲901を、先行車両802の物体座標に合わせて設定する。物体検知装置1は、設定された走査範囲901においてLiDAR101を走査させ、先行車両802の点群データを取得する。図9(b)は、先行車両803が絞り込みモードの走査対象になった場合を示している。この場合、物体検知装置1は、絞り込みモードによるLiDAR101の走査範囲902を、先行車両803の物体座標に合わせて設定する。物体検知装置1は、設定された走査範囲902においてLiDAR101を走査させ、先行車両803の点群データを取得する。
図10は、図7のステップS703及びステップS710に示す物体検知処理の流れを示すフローチャートである。
ステップS1001において、物体検知装置1は、全点群データを、占有グリッドマップを構成する2次元の各グリッドに格納する。物体検知装置1において、LiDAR101の機種に依存しない処理フローによって物体検知機能を実装するためには、LiDAR101の機種に依存しない座標系が必要となるので、占有グリッドマップを用いることが有効である。グリッドの大きさは、検知対象の物体の大きさに応じて任意に決定され得る。
ステップS1002において、物体検知装置1は、点群データを路面と物体に分類する。具体的には、物体検知装置1は、占有グリッドマップにおいて路面を推定し、推定された路面を構成する点群データを確定する。物体検知装置1は、路面を構成する点群データ以外の点群データから物体を構成する点群データを確定する。これにより、物体検知装置1は、点群データを路面と物体に分類することができる。なお、物体検知装置1は、路面及び物体の何れを構成するかが不明な点群データについては、不明と判定する。路面推定及び点群データの分類に係る処理の詳細については、図13を用いて後述する。
ステップS1003において、物体検知装置1は、物体に分類された点群データをグルーピングする。具体的には、物体検知装置1は、ステップS1002において物体に分類された点群データにおいて、互いの位置が所定距離以内に配置された近接する点群データ同士をグルーピングし、グループを作成する。グループは、検知物体を表す。グルーピングに係る処理の詳細については、図14を用いて後述する。
ステップS1003の後、物体検知装置1は、ループL101へ移行する。ループL101において、物体検知装置1は、ステップS1003においてグルーピングにより作成されたグループの個数だけ、ステップS1004~ステップS1006を行う。
ステップS1004において、物体検知装置1は、グループのパラメータを特定する。グループのパラメータは、グループの奥行き、幅及び高さである。グループのパラメータには、グループの位置座標が含まれていてもよい。グループのパラメータは、検知物体のパラメータを表す。グループのパラメータの特定に係る処理の詳細については、図16を用いて後述する。
ステップS1005において、物体検知装置1は、グループのパラメータに基づいて検知物体の種別毎の信頼度を計算する。信頼度の計算に係る処理については、図17を用いて後述する。
ステップS1006において、物体検知装置1は、計算された種別毎の信頼度に基づいて検知物体の種別を判定する。上記のように、物体検知装置1は、或る種別における信頼度が第1基準値(例えば0.3)より小さい場合には、この或る種別を検知物体の種別として否定する。また、スコア計算部206は、或る種別における信頼度が第2基準値(例えば0.6)以上である場合には、この或る種別を検知物体の種別として確定する。また、スコア計算部206は、或る種別における信頼度が第1基準値以上第2基準値より小さい場合、この或る種別を検知物体の種別として否定も確定もせず、検知物体の種別が不明であると判定する。
ステップS1006の後、物体検知装置1は、別のグループに対してループL101を行う。物体検知装置1は、グループの個数だけループL101を行った後、ループL101を抜けて、図10に示す処理を終了する。
図11は、図10に示す物体検知処理に用いられる占有グリッドマップを説明する図である。
占有グリッドマップ1101は、図3と同様に、自車両の進行方向に沿った方向をXインデックスとし、自車両の車幅方向に沿った方向をYインデックスとする座標系を有する。占有グリッドマップ1101は、各グリッドが予め定められた互いに同一のサイズを有する。各グリッドは、点群データ1104を含むデータを保持する。各グリッドが保持するデータは、図11に示すように、グループの識別情報であるグループID1102と、グループを構成する点群データ1104の個数を示す点群数1103と、グループを構成するそれぞれの点群データ1104とから構成される。それぞれの点群データ1104は、個々の3次元点のx座標1105、y座標1106、z座標1107、反射強度1108及び分類1109を含む。分類1109は、点群データが物体に分類されるか、路面に分類されるか、分類が不明かを示す。
図12は、図10に示す物体検知処理において作成されるグループのデータ構造を説明する図である。
図10のステップS1003において作成されるグループのデータは、グループデータ1202の個数を示すグループ数1201と、それぞれのグループデータ1202とから構成される。それぞれのグループデータ1202は、グループID1203と、グループのパラメータである奥行き1204、幅1205及び高さ1206と、グループを構成するグリッドの個数を示す構成グリッド数1207と、グループを構成する個々のグリッドの座標を示すグリッド座標1208とを含む。それぞれのグリッド座標1208は、Xインデックス1209と、Yインデックス1210とを含む。
図13は、図10のステップS1002に示す路面推定及び点群データの分類に係る処理の流れを示すフローチャートである。
ステップS1301において、物体検知装置1は、占有グリッドマップを所定領域毎に複数の領域に分割する。占有グリッドマップ全体が示す路面は、必ずしも1つの平面によって構成されるわけではないので、幾つかの平面の組み合わせによって表現されることが適切である。物体検知装置1は、占有グリッドマップを複数の領域に分割し、局所的な特徴の組み合わせによって路面を推定する。本実施形態では、占有グリッドマップを所定領域毎に分割して得られた複数の領域のそれぞれを、「分割領域」とも称する。
ステップS1301の後、物体検知装置1は、ループL131へ移行する。ループL131において、物体検知装置1は、ステップS1301によって分割された複数の領域の個数を示す分割領域数だけ、ステップS1302、ステップS1303及びループL132を行う。
ステップS1302において、物体検知装置1は、処理対象の分割領域において路面候補となる点群データを抽出する。例えば、物体検知装置1は、処理対象の分割領域内の各グリッドに保持された点群データのz座標が、当該分割領域よりも自車両に近い分割領域の路面高さの±10cmの範囲内である場合、当該点群データを、路面候補となる点群データであるとして抽出する。但し、処理対象の分割領域が自車両に最も近接する分割領域のときには、物体検知装置1は、処理対象の分割領域内の各グリッドに保持された点群データのz座標が、自車両のz座標(原点のz座標)の±10cmの範囲内である場合に、当該点群データを、路面候補となる点群データであるとして抽出する。
ステップS1303において、物体検知装置1は、抽出された点群データに、ロバスト推定の1つであるRANSAC(Random Sample Consensus)を適用し、路面パラメータを算出する。例えば、路面を平面とみなすと、点群データのz座標は、次の式(1)のように表すことができる。
z=ax+by+c・・・(1)
物体検知装置1は、RANSACを用いて式(1)の係数a、b及びcの値を算出する。路面パラメータとは、式(1)の係数a、b及びcのことである。なお、物体検知装置1は、抽出された点群データに対して、RANSACではなく最小二乗法を適用したり、RANSACと最小二乗法とを組み合わせて適用したりしてもよい。
ステップS1303の後、物体検知装置1は、処理対象の分割領域内の全点群データを路面や物体に分類するべく、ループL132へ移行する。ループL132において、物体検知装置1は、処理対象の分割領域内の各グリッドの個数だけ、ループL133を行う。ループL133において、物体検知装置1は、各グリッドに保持された点群データの個数である点群数だけ、ステップS1304~ステップS1309を行う。
ステップS1304において、物体検知装置1は、処理対象の分割領域内のグリッドに保持された点群データのz座標(例えば図11のz座標1107)を取得する。
ステップS1305において、物体検知装置1は、ステップS1304においてz座標が取得された点群データのx座標,y座標によって示される路面高さを算出する。具体的には、物体検知装置1は、上記のステップS1303において算出された係数a、b及びc(路面パラメータ)から、次の式(2)を用いて路面高さを算出する。
路面高さ=a×(x座標)+b×(y座標)+c・・・(2)
ステップS1306において、物体検知装置1は、ステップS1304において取得されたz座標と、ステップS1305において算出された路面高さとを比較する。物体検知装置1は、取得されたz座標が、路面高さ以上であり、且つ、路面高さ+5cmより小さい範囲にある場合、ステップS1307へ移行する。物体検知装置1は、取得されたz座標が、路面高さ+5cm以上である場合、ステップS1308へ移行する。物体検知装置1は、取得されたz座標が、路面高さより小さい場合、ステップS1309へ移行する。
ステップS1307において、物体検知装置1は、ステップS1304においてz座標が取得された点群データの分類が路面であると判定する。
ステップS1308において、物体検知装置1は、ステップS1304においてz座標が取得された点群データの分類が物体であると判定する。
ステップS1309において、物体検知装置1は、ステップS1304においてz座標が取得された点群データの分類が不明であると判定する。
ステップS1307、ステップS1308又はステップS1309の後、物体検知装置1は、処理対象の分割領域内のグリッドに保持された別の点群データに対してループL133を行う。物体検知装置1は、当該グリッドに保持された点群データの個数だけループL133を行った後、ループL133を抜けて、当該分割領域内の別のグリッドに対してループL132を行う。物体検知装置1は、当該分割領域内のグリッドの個数だけループL132を行った後、ループL132を抜けて、別の分割領域に対してループL131を行う。物体検知装置1は、分割領域数だけループL131を行った後、ループL131を抜けて、図13に示す処理を終了する。
図14は、図10のステップS1003に示すグルーピングに係る処理の流れを示すフローチャートである。
物体検知装置1は、占有グリッドマップのグリッドの個数だけ、ステップS1401~ステップS1408を行うループL141を行う。
ステップS1401において、物体検知装置1は、処理対象のグリッドに点群データが保持されているか否かを判定する。物体検知装置1は、当該グリッドに点群データが保持されていない場合、別のグリッドに対してループL141を行う。物体検知装置1は、当該グリッドに点群データが保持されている場合、ステップS1402へ移行する。
ステップS1402において、物体検知装置1は、処理対象のグリッドを中心として探索領域を設定する。探索領域とは、同じグループを構成するグリッドを探索するために占有グリッドマップに設定される領域である。探索領域のサイズは、予め定められたサイズとする。
ステップS1402の後、物体検知装置1は、探索領域内において物体に分類される点群データを抽出しグループとしてまとめるべく、ループL142へ移行する。ループL142において、物体検知装置1は、設定された探索領域内のグリッドの個数だけ、ステップS1403及びステップS1404を行う。
ステップS1403において、物体検知装置1は、設定された探索領域内のグリッドに保持された点群データの分類が物体か否かを判定する。物体検知装置1は、当該点群データの分類が物体でない場合、当該探索領域内の別のグリッドに対してループL142を行う。物体検知装置1は、当該点群データの分類が物体である場合、ステップS1404へ移行する。
ステップS1404において、物体検知装置1は、ステップS1403において分類が物体であると判定された点群データを保持するグリッドを、設定された探索領域が属するグループに追加する。
ステップS1404の後、物体検知装置1は、設定された探索領域内の別のグリッドに対してループL142を行う。物体検知装置1は、当該探索領域内のグリッドの個数だけループL142を行った後、ループL142を抜けてループL143へ移行する。物体検知装置1は、設定された探索領域内のグループにグループIDを設定するべく、ループL143を行う。ループL143において、物体検知装置1は、当該探索領域内のグリッドの個数だけ、ステップS1405及びステップS1406を行う。
ステップS1405において、物体検知装置1は、設定された探索領域内のグリッドにグループIDが設定されているか否かを判定する。物体検知装置1は、当該グリッドにグループIDが設定されていない場合、当該探索領域内の別のグリッドに対してループL143を行う。物体検知装置1は、当該グリッドにグループIDが設定されている場合、ステップS1406へ移行する。
ステップS1406において、物体検知装置1は、当該グリッドに既に設定されたグループIDをそのまま設定する。
ステップS1406の後、物体検知装置1は、設定された探索領域内の別のグリッドに対してループL143を行う。物体検知装置1は、当該探索領域内のグリッドの個数だけループL143を行った後、ループL143を抜けてステップS1407へ移行する。
ステップS1407において、物体検知装置1は、設定された探索領域が属するグループにグループIDが設定されているか否かを判定する。物体検知装置1は、当該グループにグループIDが設定されている場合、占有グリッドマップの別のグリッドに対してループL141を行う。物体検知装置1は、当該グループにグループIDが設定されていない場合、ステップS1408へ移行する。
ステップS1408において、物体検知装置1は、グループIDを新規発行し、設定された探索領域が属するグループに対して、新規発行したグループIDを設定する。
ステップS1408の後、物体検知装置1は、占有グリッドマップの別のグリッドに対してループL141を行う。物体検知装置1は、当該グリッドの個数だけループL141を行った後、ループL141を抜けて、図14に示す処理を終了する。
図15(a)は、図14の処理を説明する図であって、物体検知装置1が探索領域1501を初めて設定した場合におけるグルーピングの状況を示す図である。図15(b)は、図15(a)から処理が進行した場合におけるグルーピングの状況を示す図である。
図15(a)及び図15(b)において、黒色又は灰色のグリッドは、物体に分類された点群データを保持するグリッドである。黒色のグリッドは、グループIDが設定されたグリッドを示し、灰色のグリッドは、グループIDが設定されていないグリッドを示す。
図15(a)の例では、物体検知装置1は、グリッド1504を中心として探索領域1501を設定している。物体検知装置1は、グリッド1504、グリッド1505及びグリッド1506を含む探索領域1501内の黒色のグリッドについて、同じグループとしてグループIDを設定する。その後、物体検知装置1は、図15(a)の状況から探索領域1501を1グリッドずつ移動させてグルーピングを行い、図15(b)に示すように、グリッド1506を中心として探索領域1501を設定した状況になったとする。
図15(b)の例では、探索領域1501内のグリッド1504、グリッド1505及びグリッド1506については、同じグループとして既にグループIDが設定されている。探索領域1501内のグリッド1502及びグリッド1503については、グループが決まっておらず、グループIDが設定されていない。物体検知装置1は、図15(b)のような状況になった場合、探索領域1501内のグリッド1504、グリッド1505及びグリッド1506については、既に設定されたグループIDをそのまま設定する。物体検知装置1は、探索領域1501内のグリッド1502及びグリッド1503については、グリッド1504等により構成されるグループに追加され、グリッド1504等に設定されているグループIDが設定されることとなる。
図16は、図10のステップS1004に示すグループのパラメータの特定に係る処理の流れを示すフローチャートである。図16に示す処理は、1つのグループのパラメータを特定するために行われる処理である。
ステップS1601において、物体検知装置1は、グループを構成するグリッドに対して主成分分析を行う。すなわち、物体検知装置1は、グリッドの分布傾向を分析して、グループの方向を適切に表現し得る主成分軸を特定する。具体的には、物体検知装置1は、当該主成分軸として第1主成分軸及び第2主成分軸を特定し、占有グリッドマップ1101の座標系を構成するXインデックス及びYインデックスに対する第1主成分軸及び第2主成分軸の角度を算出する。
ステップS1602において、物体検知装置1は、Xインデックス及びYインデックスに対する主成分軸の角度が算出できたか否かを判定する。物体検知装置1は、当該角度が算出できなかった場合、図16に示す処理を終了する。物体検知装置1は、当該角度が算出できた場合、ステップS1603へ移行する。
ステップS1603において、物体検知装置1は、第1主成分軸の長さに対する第2主成分軸の長さの比率を計算する。第1主成分軸は第2主成分軸よりも長い。第1主成分軸及び第2主成分軸は、グリッドを囲む楕円の長軸及び短軸に相当すると考えることができる。物体検知装置1は、長軸(第1主成分軸)の長さに対する短軸(第2主成分軸)の長さの比率を計算する。当該比率の数値範囲は、0.0より大きく1.0以下である。当該比率が小さいほど、ステップS1601において算出された角度の信頼性が高い。
ステップS1604において、物体検知装置1は、第1主成分軸の長さに対する第2主成分軸の長さの比率を、予め定められた閾値と比較する。当該閾値は、ステップS1601において算出された角度の信頼性が確保される値である。物体検知装置1は、当該比率が、当該閾値より大きく1.0以下である場合、ステップS1606へ移行する。物体検知装置1は、当該比率が、0.0より大きく当該閾値以下である場合、ステップS1605へ移行する。
ステップS1605において、物体検知装置1は、ステップS1601において算出された角度にて矩形をグリッドにフィッティングする。フィッティングされた矩形の角度は、当該矩形の方向を特定する。フィッティングされた矩形の長辺の長さ及び短辺の長さは、当該矩形のサイズを特定する。フィッティングされた矩形の長辺の長さ及び短辺の長さは、長軸(第1主成分軸)の長さ及び短軸(第2主成分軸)の長さに相当する。ステップS1605の後、物体検知装置1は、ステップS1607へ移行する。
ステップS1606において、物体検知装置1は、ステップS1601において算出された角度の±20degの範囲にて回転させながら矩形をグリッドにフィッティングする。この際、物体検知装置1は、矩形内に含まれるグリッドの個数が最大となる回転角にてフィッティングする。この方法は、SBRF(Search Based Rectangle Fitting)と称する方法である。なお、矩形の回転角度範囲は、ステップS1601において算出された角度の±20degの範囲に必ずしも限定されず、任意に定めることができる。
ステップS1607において、物体検知装置1は、フィッティングされた矩形の方向とサイズに従って、グループの奥行き及び幅を特定する。具体的には、物体検知装置1は、フィッティングされた矩形の長辺及び短辺のうち、自車両の進行方向と成す角度が小さい方をグループの奥行きと特定し、他方をグループの幅と特定する。
ステップS1608において、物体検知装置1は、フィッティングされた矩形内のグリッドが保持する点群データの最大高さを特定し、当該最大高さをグループの高さと特定する。ステップS1608の後、物体検知装置1は、図16に示す処理を終了する。
図17は、図10のステップS1005に示す信頼度の計算に係る処理の流れを示すフローチャートである。図17に示す処理は、1つのグループが表す検知物体の種別毎の信頼度を計算するために行われる処理である。
物体検知装置1は、信頼度の計算対象として予め定められた物体の種別の個数だけ、ステップS1701~ステップS1703を行うループL171を行う。
ステップS1701において、物体検知装置1は、グループのパラメータである奥行き、幅及び高さのそれぞれのスコアを計算する。すなわち、物体検知装置1は、当該グループが表す検知物体のパラメータである奥行き、幅及び高さのそれぞれのスコアを計算する。スコアの計算方法及び計算例については、図18~図20を用いて後述する。
ステップS1702において、物体検知装置1は、グループのパラメータである奥行き、幅及び高さのそれぞれのスコアを掛け合わせる。すなわち、物体検知装置1は、当該グループが表す検知物体のパラメータである奥行き、幅及び高さのそれぞれのスコアを掛け合わせる。これにより、奥行き、幅及び高さのそれぞれのスコアの積が算出される。
ステップS1703において、物体検知装置1は、ステップS1702の算出結果を信頼度に置き換える。ステップS1703において求められた信頼度は、グループが表す検知物体の種別が、処理対象の種別にどの程度適合しているかを示している。信頼度の計算例については、図19及び図20を用いて後述する。
ステップS1703の後、物体検知装置1は、別の種別に対してループL171を行う。物体検知装置1は、種別数だけループL171を行った後、ループL171を抜けて、図17に示す処理を終了する。
図18~図20を用いて、スコア及び信頼度の計算方法について説明する。
図18は、図17のステップS1701に示すスコアの計算方法を説明する図である。図19は、図18を用いたスコア及び信頼度の計算例を説明する図である。図20は、図19とは異なるスコア及び信頼度の他の計算例を説明する図である。
図18には、検知物体のパラメータである奥行き、幅及び高さのそれぞれのスコアを計算するための第1閾値1801~第4閾値1804が、予め定められた物体の種別毎に記載されている。図18には、物体の種別として、歩行者、二輪車、四輪車、トラックの4つが予め定められている例が示されているが、この4つの種別に限定されない。
物体検知装置1は、検知物体のパラメータが、第1閾値1801より小さい、又は、第4閾値1804より大きい場合、当該パラメータのスコアを実質0.0(例えば0.01)とする。例えば、物体検知装置1は、検知物体の奥行きが0.1mであった場合、第1閾値1801である0.3mより小さいので、物体検知装置1は、スコアを実質0(例えば0.01)とする。スコアを0.0ではなく実質0.0とする理由は、奥行き、幅及び高さのそれぞれのスコアの積を信頼度とするからである。
物体検知装置1は、検知物体のパラメータが、第2閾値1802以上第3閾値1803以下の範囲内にある場合、当該パラメータのスコアを1.0とする。第2閾値1802以上第3閾値1803以下の範囲は、検知物体のパラメータが取り得る範囲を示している。
物体検知装置1は、検知物体のパラメータが、第1閾値1801以上第2閾値1802より小さい範囲内にある場合、当該パラメータの値に応じてスコアを算出する。具体的には、物体検知装置1は、この場合のスコアを、次の式(3)を用いて算出する。
スコア=(パラメータの値-第1閾値1801)/(第2閾値1802-第1閾値1801)・・・(3)
すなわち、物体検知装置1は、この場合のスコアを、パラメータの値及び第1閾値1801の差分と、第2閾値1802及び第1閾値1801の差分との比例計算によって算出する。スコアは、0.0~1.0の間で変動する。
同様に、物体検知装置1は、検知物体のパラメータが、第3閾値1803より大きく第4閾値1804以下の範囲内にある場合、当該パラメータの値に応じてスコアを算出する。具体的には、物体検知装置1は、この場合のスコアを、次の式(4)を用いて算出する。
スコア=(パラメータの値-第3閾値1803)/(第4閾値1804-第3閾値1803)・・・(4)
すなわち、物体検知装置1は、この場合のスコアを、パラメータの値及び第3閾値1803の差分と、第4閾値1804及び第3閾値1803の差分との比例計算によって算出する。スコアは、0.0~1.0の間で変動する。
図19には、検知物体が先行車両1901である例が示されている。図19の例では、検知物体である先行車両1901のパラメータの1つである幅の値が1.6mであり、当該パラメータの1つである奥行きの値が3.2mであり、当該パラメータの1つである高さの値が1.6mであるとする。このとき、物体検知装置1は、検知物体である先行車両1901のパラメータである奥行き、幅及び高さのそれぞれのスコアを、種別毎に計算する。
例えば、パラメータの1つである幅の値が1.6mであると、物体検知装置1は、幅の値1.6mが、歩行者の種別については第4閾値1804(0.6m)より大きいので、幅のスコアを0.01とする。物体検知装置1は、幅の値1.6mが、二輪車の種別については第4閾値1804(1.3m)より大きいので、幅のスコアを0.01とする。物体検知装置1は、幅の値1.6mが、四輪車の種別については第2閾値1802(1.5m)以上第3閾値1803(2.0m)以下の範囲内にあるので、幅のスコアを1.0とする。物体検知装置1は、幅の値1.6mが、トラックの種別については第1閾値1801(1.4m)以上第2閾値1802(1.7m)より小さい範囲内にあるので、上記の式(3)を用いてスコアを算出する。すなわち、(1.6-1.4)/(1.7―1.4)=0.67を、スコアとする。
物体検知装置1は、他のパラメータである奥行き及び高さについても、幅のパラメータと同様にスコアを計算する。結果的に、図19に示すようなスコアが得られる。
スコアの計算後、物体検知装置1は、奥行き、幅及び高さのそれぞれのスコアを掛け合わせることによって、種別毎の信頼度を計算する。例えば、物体検知装置1は、歩行者の種別については、幅のスコアが0.01であり、奥行きのスコアが0.01であり、高さのスコアが1.0であるので、0.01×0.01×1.0=0.0001を信頼度とする。物体検知装置1は、二輪車の種別については、0.01×0.01×1.0=0.0001を信頼度とする。物体検知装置1は、四輪車の種別については、1.0×1.0×1.0=1.0を信頼度とする。物体検知装置1は、トラックの種別については、0.67×1.0×0.01=0.0067を信頼度とする。
信頼度の計算後、物体検知装置1は、検知物体の種別を判定する。図19の例では、信頼度の第1基準値1902が0.3であり、第2基準値1903が0.6である。物体検知装置1は、歩行者の種別については信頼度(0.0001)が第1基準値1902(0.3)より小さいので、検知物体の種別として歩行者を否定と判定する。物体検知装置1は、二輪車の種別については信頼度(0.0001)が第1基準値1902(0.3)より小さいので、検知物体の種別として二輪車を否定と判定する。物体検知装置1は、トラックの種別については信頼度(0.0067)が第1基準値1902(0.3)より小さいので、検知物体の種別としてトラックを否定と判定する。物体検知装置1は、四輪車の種別については信頼度(1.0)が第2基準値1903(0.6)以上であるので、検知物体の種別として四輪車を確定と判定する。結果的に、図19の例では、物体検知装置1は、検知物体の種別として四輪車だけを確定と判定し、他の全ての種別を否定と判定したので、検知物体の種別を四輪車に確定する。
図20には、検知物体が先行車両2001である例が示されている。図20に示すようなスコア及び信頼度が計算された場合、物体検知装置1は、検知物体の種別として四輪車を不明と判定し、他の種別を全て否定と判定する。この場合、物体検知装置1は、検知物体の種別を四輪車と確定することができないので、当該検知物体を要注意物体リストに登録し、絞り込みモードによる再走査の対象とする。
以上のように、実施形態1の物体検知装置1は、車両の周囲を走査するセンサであるLiDAR101の走査結果に応じて周囲に存在する物体の点群データを取得する点群取得部201と、点群データに基づいて物体を検知する物体検知部204とを備える。加えて、実施形態1の物体検知装置1は、物体検知部204の検知結果における信頼度を判定する信頼度判定部205を備える。点群取得部201は、信頼度に基づいてLiDAR101の走査範囲及び照射密度を制御する。
これにより、実施形態1の物体検知装置1は、照射密度を増加させて走査する物体を、適切に取捨選択することができるので、検知精度を確保しつつ効率性を向上させることができる。実施形態1の物体検知装置1は、物体との衝突リスクを効率的に抑えることが可能になり、安全な自動運転に寄与することができる。
更に、実施形態1の物体検知装置1は、LiDAR101が、通常モードと絞り込みモードとによって走査可能である。信頼度判定部205は、信頼度が高い場合には検知物体の種別を確定し、信頼度が低い場合には検知物体を要注意物体リストに登録する。そして、点群取得部201は、要注意物体リストに登録された検知物体を絞り込みモードによってLiDAR101に再走査させ、点群データを再取得する。物体検知部204は、再取得された点群データに基づいて検知物体を再検知する。信頼度判定部205は、物体検知部204の再検知結果における信頼度を判定する。
これにより、実施形態1の物体検知装置1は、広範囲の物体を検知可能な通常モードと、特定の物体を詳細に検知可能な絞り込みモードとによって走査することができ、車両の周囲の状況に応じて走査モードを切り替えることができる。特に、実施形態1の物体検知装置1は、遠方の物体や小さい物体のような検知結果の信頼度が低くなり易い物体にだけ、絞り込みモードによって走査することができる。実施形態1の物体検知装置1は、信頼度が低くなり易い物体であっても検知精度を確保することができると共に、信頼度が高い物体に対してまで過剰に照射密度を増加させることも無い。よって、実施形態1の物体検知装置1は、検知精度を確保しつつ効率性を更に向上させることができる。
更に、実施形態1の物体検知装置1は、信頼度判定部205が、再検知結果における信頼度が高い場合、検知物体を要注意物体リストから除外する。点群取得部201は、検知物体とは異なる新たな物体を、通常モードによってLiDAR101に走査させ、点群データを新たに取得する。
これにより、実施形態1の物体検知装置1は、再検知結果において信頼度が高くなった検知物体を絞り込みモードの走査対象から除外することができると共に、未知の物体が出現してもいち早く検知することができる。よって、実施形態1の物体検知装置1は、検知精度を確保しつつ効率性を更に向上させることができる。
更に、実施形態1の物体検知装置1において、信頼度判定部205には、物体の属性を表す指標であるパラメータと、種別毎のパラメータの取り得る範囲とが予め定められている。信頼度判定部205は、検知物体のパラメータの上記範囲との適合性を数値化したスコアを計算し、スコアを用いて信頼度を計算する。
これにより、実施形態1の物体検知装置1は、絞り込みモードによる走査を行うか否かを判定する根拠となる信頼度を定量的に評価することができるので、検知精度を確保しつつ効率性を更に向上させることができる。
[スコアの計算方法の変形例]
図21~図23を用いて、図18~図20とは異なるスコアの計算方法について説明する。
図21(a)は、通常モードによって1つの物体を走査した場合であって、検知物体のパラメータの推定値の範囲における下限値を説明する図である。図21(b)は、図21(a)に示す場合であって、検知物体のパラメータの推定値の範囲における上限値を説明する図である。図21(c)は、通常モードによって2つの物体を走査した場合であって、物体検知装置1が1つの物体として検知する場合を説明する図である。図22は、スコアの計算方法の変形例を説明する図である。
図21(a)及び図21(b)は、検知物体のパラメータの1つである幅が1.2mの1つの物体を、点群間隔が0.3mの通常モードによって走査した場合を示している。図21(c)では、互いの間隔が0.25mであり互いの幅の合計が1.2mである2つの物体を、点群間隔が0.3mの通常モードによって走査した場合を示している。図21(a)~図21(c)において、白丸は検知物体の点群を示し、黒丸は検知物体から外れた点群を示し、灰色は物体検知装置1が推定する検知物体の幅を示している。
スコアを計算するにあたり、物体検知装置1は、走査結果から検知物体のパラメータとして推定される数値である推定値の範囲を算出する。物体検知装置1は、パラメータの推定値の範囲と、パラメータのスコアが1.0の範囲との重複率を算出する。物体検知装置1は、重複率に基づいてスコアを計算する。
パラメータのスコアが1.0の範囲は、図18に示した第2閾値1802以上第3閾値1803以下の範囲である。重複率は、パラメータの推定値の範囲とパラメータのスコアが1.0の範囲との和集合(OR)の範囲、及び、パラメータの推定値の範囲とパラメータのスコアが1.0の範囲との交差集合(AND)の範囲を用いて算出される。具体的には、物体検知装置1は、重複率を、次の式(5)を用いて算出する。
重複率=(交差集合の上限値-交差集合の下限値)/(和集合の上限値-和集合の下限値)・・・(5)
すなわち、物体検知装置1は、重複率を、和集合の範囲の上限値と下限値との差分と、交差集合の範囲の上限値と下限値との差分との比例計算によって算出する。重複率の数値範囲は、0.0以上1.0以下である。
物体検知装置1は、重複率が第1所定値2201(例えば0.2)より小さい場合には、スコアを0.0とする。物体検知装置1は、重複率が第2所定値2202(例えば0.8)以上である場合には、スコアを1.0とする。物体検知装置1は、重複率が第1所定値2201(例えば0.2)以上第2所定値2202(例えば0.8)より小さい場合には、当該重複率の値に応じてスコアを計算する。具体的には、物体検知装置1は、この場合のスコアを、次の式(6)を用いて算出する。
スコア=(重複率の値-第1所定値2201)/(第2所定値2202-第1所定値2201)・・・(6)
すなわち、物体検知装置1は、この場合のスコアを、重複率の値及び第1所定値2201の差分と、第2所定値2202及び第1所定値2201の差分との比例計算によって算出する。スコアは、0.0~1.0の間で変動する。
図21(a)及び図21(b)の例では、検知物体のパラメータの1つである幅の両端部の間には、0.3mの点群間隔が4つ存在する。物体検知装置1は、幅の推定値の範囲における下限値を、図21(a)に示すように、0.3m×4=1.2mと推定する。物体検知装置1は、幅の推定値の範囲における上限値を、図21(b)に示すように、0.3m×(4+2)=1.8mと推定する。すなわち、図21(a)及び図21(b)の例では、物体検知装置1は、幅の推定値の範囲を、1.2m以上1.8mより小さい範囲と算出する。図22では、四輪車の種別における幅のスコアが1.0の範囲が示されている。四輪車の種別における幅のスコアが1.0の範囲は、図18に示した第2閾値1802以上第3閾値1803以下の範囲を参照すると、1.5m以上2.0m以下である。図22の例では、和集合の範囲は、1.2m以上2.0m以下の範囲である。交差集合の範囲は、1.5m以上1.8mより小さい範囲である。よって、重複率は、上記の式(5)を用いて、(1.8m-1.5m)/(2.0m-1.2m)=0.375と算出される。0.375という重複率は、第1所定値2201(0.2)以上第2所定値2202(0.8)より小さい。よって、スコアは、上記の式(6)を用いて、(0.375-0.2)/(0.8-0.2)=0.29と算出される。図21(a)及び図21(b)の例では、物体検知装置1は、検知物体の幅が少なくとも四輪車の幅の条件を満たしていないと評価する。
物体検知装置1は、他の種別についても同様に重複率及びスコアを計算する。物体検知装置1は、他のパラメータである奥行き及び高さについても、幅のパラメータと同様に重複率及びスコアを計算する。そして、物体検知装置1は、検知物体のパラメータである奥行き、幅及び高さのそれぞれのスコアを種別毎に掛け合わせて、信頼度を種別毎に計算する。その結果、物体検知装置1は、検知物体の種別が確定できなければ、絞り込みモードによって再走査することになる。
図23(a)は、絞り込みモードによって図21(a)に示す物体を再走査した場合であって、検知物体のパラメータの推定値の範囲における下限値を説明する図である。図23(b)は、図23(a)に示す場合であって、検知物体のパラメータの推定値の範囲における上限値を説明する図である。図23(c)は、絞り込みモードによって図21(c)に示す物体を再走査した場合であって、物体検知装置1が別々の物体として検知する場合を説明する図である。
図23(a)及び図23(b)は、図21(a)及び図21(b)に示す物体を、点群間隔が0.2mの絞り込みモードによって再走査した場合を示している。図23(c)では、図21(c)に示す物体を、点群間隔が0.2mの絞り込みモードによって再走査した場合を示している。
図23(a)及び図23(b)の例では、検知物体のパラメータの1つである幅の両端部の間には、0.2mの点群間隔が8つ存在する。物体検知装置1は、幅の推定値の範囲における下限値を、図23(a)に示すように、0.2m×8=1.6mと推定する。物体検知装置1は、幅の推定値の範囲における上限値を、図23(b)に示すように、0.2m×(8+2)=2.0mと推定する。すなわち、図23(a)及び図23(b)の例では、物体検知装置1は、幅の推定値の範囲を、1.6m以上2.0mより小さい範囲と算出する。また、四輪車の種別における幅のスコアが1.0の範囲は、1.5m以上2.0m以下である。図23(a)及び図23(b)の例では、和集合の範囲は、1.5m以上2.0m以下の範囲である。交差集合の範囲は、1.6m以上2.0mより小さい範囲である。よって、重複率は、上記の式(5)を用いて、(2.0-1.6)/(2.0-1.5)=0.8と算出される。0.8という重複率は、第2所定値2202(0.8)以上である。物体検知装置1は、スコアを1.0とする。図23(a)及び図23(b)の例では、物体検知装置1は、検知物体の幅が少なくとも四輪車の幅の条件を満たしていると評価する。
また、物体検知装置1は、図21(c)に示すように、2つの物体の間隔(0.25m)が、点群間隔(0.3m)より短い場合には、当該2つの物体を1つの検知物体と検知してしまう。物体検知装置1は、図23(c)に示すように、2つの物体の間隔(0.25m)が、点群間隔(0.2m)より長い場合には、当該2つの物体を別々の検知物体として検知することができる。
以上のように、物体検知装置1は、絞り込みモードによる走査を行うか否かを判定する根拠となる信頼度を定量的に評価するスコアを上記の重複率を用いて計算することができる。よって、物体検知装置1は、図18~図20に示した方法よりも、信頼度を更に正確に評価することができるので、検知精度を確保しつつ効率性を更に向上させることができる。
[実施形態2]
図24及び図25を用いて、実施形態2の物体検知装置1について説明する。実施形態2の説明において、実施形態1と同様の構成及び動作については、説明を省略する。
図24は、実施形態2の物体検知装置1における検知物体の例を示す図である。
実施形態1では、図19に示すように、物体検知装置1が先行車両1901をその後方から検知した場合について説明した。実施形態2では、交差点において横方向から進入する車両2401のように、物体検知装置1が車両2401をその側方から検知した場合について説明する。
図24の例では、検知物体である車両2401のパラメータの1つである幅の値が1.6mであり、当該パラメータの1つである奥行きの値が3.2mであり、当該パラメータの1つである高さの値が1.6mであるとする。このとき、物体検知装置1が、車両2401を先行車両とみなして奥行き、幅及び高さのそれぞれのスコアを計算すると、スコア及び信頼度の計算結果並びに種別の判定結果、図24に示すような結果となる。すなわち、物体検知装置1は、車両2401を先行車両とみなすと、スコア及び信頼度は全種別において低くなり、全種別が否定と判定されるので、検知物体の種別を確定することができない。
実施形態2の物体検知装置1では、検知物体の種別が確定できない等のように信頼度が低い場合、信頼度判定部205が、当該検知物体を要注意物体リストに登録する前に、当該検知物体のパラメータである奥行きと幅とを入れ替えてそれぞれのスコアを再計算する。実施形態2の信頼度判定部205は、再計算されたスコアを用いて信頼度を再計算する。図24の例では、奥行きと幅とを入れ替えると、検知物体の各パラメータの値が図19と同じになるので、検知物体の種別が四輪車と確定され得る。なお、再計算された信頼度が低く、検知物体の種別が不明と判定された場合、実施形態2の信頼度判定部205は、実施形態1と同様に、当該検知物体を要注意物体リストに登録する。
図25は、実施形態2の物体検知装置1によって行われる信頼度の計算に係る処理の流れを示すフローチャートである。図25に示す処理は、実施形態1における図17に示す処理に対応する。
実施形態2の物体検知装置1は、図17に示すループL171と同様の処理を行う。物体検知装置1は、予め定められた種別数だけループL171を行った後、ループL171を抜けて、ステップS2501へ移行する。
ステップS2501において、物体検知装置1は、グループが表す検知物体の種別として確定できる種別があるか否かを判定する。物体検知装置1は、確定できる種別がある場合、図25に示す処理を終了する。物体検知装置1は、確定できる種別がない場合、ループL251に移行する。ループL251において、物体検知装置1は、ループL171と同じ種別数だけ、ステップS2502~ステップS2504を行う。
ステップS2502において、物体検知装置1は、グループが表す検知物体の奥行きと幅とを入れ替えてそれぞれのスコアを再計算する。
ステップS2503において、物体検知装置1は、奥行きと幅とを入れ替えて再計算されたスコアを掛け合わせる。
ステップS2504において、物体検知装置1は、ステップS2503の算出結果を信頼度に置き換える。
ステップS2504の後、物体検知装置1は、別の種別に対してループL251を行う。物体検知装置1は、種別数だけループL251を行った後、ループL251を抜けて、図25に示す処理を終了する。
以上のように、実施形態2の物体検知装置1では、信頼度が低い場合、信頼度判定部205は、検知物体を要注意物体リストに登録する前に、検知物体のパラメータである奥行きと幅とを入れ替えてそれぞれのスコアを再計算する。実施形態2の信頼度判定部205は、再計算されたスコアを用いて信頼度を再計算し、再計算された信頼度が低い場合、検知物体を要注意物体リストに登録する。
これにより、実施形態2の物体検知装置1は、交差点において横方向から進入する車両のように、車両を側方から検知した場合についても、その種別を適切に判定することができる。よって、実施形態2の物体検知装置1は、周囲の様々な状況に柔軟に対応して精度良く物体を検知することができ、実施形態1よりも検知精度を向上させることができる。
[実施形態3]
図26を用いて、実施形態3の物体検知装置1について説明する。実施形態3の説明において、実施形態1と同様の構成及び動作については、説明を省略する。
実施形態1では、検知物体の種別が不明と判定された場合、当該検知物体を要注意物体リストに登録する。実施形態3では、検知物体の種別の判定結果だけなく、検知物体の速度に着目する。具体的には、実施形態3の物体検知装置1では、信頼度が低く、検知物体の種別が不明と判定された場合、信頼度判定部205が、当該検知物体を要注意物体リストに登録する前に、当該検知物体の速度の分散値を計算する。実施形態3の信頼度判定部205は、計算された分散値が閾値より大きい場合、当該検知物体を要注意物体リストに登録する。
実施形態3の信頼度判定部205は、検知物体の移動を追跡する物体追跡部207によって、検知物体の速度及び移動方向を計算することができる。物体追跡部207は、検知物体の現在位置と前回位置とを比較することによって、検知物体の速度及び移動方向を計算する。物体追跡部207は、検知物体の現在位置の周辺において、前回処理時に検知物体が検知された位置を探索し、最適な位置を抽出することによって、検知物体の前回位置を特定することができる。
図26は、実施形態3の物体検知装置1が行う処理の流れを示すフローチャートである。図26に示す処理は、実施形態1における図7に示すループL71に対応する。
図26に示すループL71において、実施形態3の物体検知装置1は、図7に示すループL71と同様に、ステップS704~ステップS706を行う。但し、実施形態3の物体検知装置1は、図26に示すループL71において、ステップS705とステップS706との間に、ステップS2601~ステップS2606を行う。すなわち、実施形態3の物体検知装置1は、ステップS705において検知物体の種別が不明と判定された場合、ステップS2601へ移行する。
ステップS2601において、物体検知装置1は、検知物体の前回位置を特定する。物体検知装置1は、上記のように、検知物体の現在位置の周辺において前回処理時に検知物体が検知された位置を探索することによって、検知物体の前回位置を特定する。
ステップS2602において、物体検知装置1は、ステップS2601において検知物体の前回位置が特定されたか否かを判定する。物体検知装置1は、検知物体の前回位置が特定されなかった場合、別の検知物体に対してループL71を行う。物体検知装置1は、検知物体の前回位置が特定された場合、ステップS2603へ移行する。
ステップS2603において、物体検知装置1は、検知物体の現在位置と前回位置とを比較することによって、検知物体の速度及び移動方向を計算する。
ステップS2604において、物体検知装置1は、検知物体の検知回数が閾値Aより大きいか否かを判定する。閾値Aは、速度の分散を計算した際の計算結果が、統計的な信頼性を欠くような検知回数の上限値である。物体検知装置1は、検知物体の検知回数が閾値A以下の場合、別の検知物体に対してループL71を行う。物体検知装置1は、検知物体の検知回数が閾値Aより大きい場合、ステップS2605へ移行する。
ステップS2605において、物体検知装置1は、検知物体の速度の分散を計算する。
ステップS2606において、物体検知装置1は、計算された速度の分散値が閾値Bより大きいか否かを判定する。閾値Bは、検知物体が速度安定性を有すると判断可能な分散値の上限値である。すなわち、検知物体の速度が急激に変化する場合には、当該検知物体の速度の分散値は、閾値Bより大きくなる。物体検知装置1は、速度の分散値が閾値B以下の場合、別の検知物体に対してループL71を行う。物体検知装置1は、速度の分散値が閾値Bより大きい場合、ステップS706へ移行し、当該検知物体を要注意リストに登録する。
ステップS706の後、物体検知装置1は、別の検知物体に対してループL71を行う。物体検知装置1は、検知物体数だけループL71を行った後、ループL71を抜けて、図26に示す処理を終了する。
以上のように、実施形態3の物体検知装置1では、信頼度が低く、検知物体の種別が不明と判定された場合、信頼度判定部205が、当該検知物体を要注意物体リストに登録する前に、当該検知物体の速度の分散値を計算する。実施形態3の信頼度判定部205は、計算された分散値が閾値より大きい場合、当該検知物体を要注意物体リストに登録する。
これにより、実施形態3の物体検知装置1では、種別が不明な検知物体のように信頼度が低い検知物体の中でも、速度が急激に変化する検知物体を優先的に絞り込みモードによって走査することができる。よって、実施形態3の物体検知装置1は、周囲の様々な状況に柔軟に対応することができ、実施形態1よりも効率性を向上させることができる。
なお、図26において、実施形態3の物体検知装置1は、ステップS2601~ステップS2605を、ステップS705とステップS706との間に行う。実施形態3の物体検知装置1は、これに限定されず、ステップS2601~ステップS2605を、ステップS705と並行して行ってもよい。具体的には、実施形態3の物体検知装置1は、ステップS704において検知物体が要注意領域内に位置すると判定した場合、ステップS705及びステップS2601のそれぞれに移行する。そして、実施形態3の物体検知装置1は、ステップS705において検知物体の種別が不明と判定された場合にステップS706へ移行すると共に、ステップS2606において速度の分散値が閾値Bより大きい場合にステップS706へ移行する。これにより、実施形態3の物体検知装置1は、検知物体の種別が不明であると判定される場合、又は、検知物体の速度の分散値が閾値Bより大きい場合に、当該検知物体を絞り込みモードによって走査することができる。
なお、上記の実施形態では、物体検知装置1が、車両の周囲を走査するセンサとして、レーザ光を放射するLiDAR101を備える例を説明した。物体検知装置1は、これに限定されず、車両の周囲を走査するセンサとして、電磁波や音波を放射するセンサを備えていてもよい。
[その他]
なお、本発明は上記の実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、上記の実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えることが可能であり、また、ある実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路にて設計する等によりハードウェアによって実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアによって実現してもよい。各機能を実現するプログラム、テープ、ファイル等の情報は、メモリや、ハードディスク、SSD(solid state drive)等の記録装置、又は、ICカード、SDカード、DVD等の記録媒体に置くことができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。