本発明の好適な実施形態では、情報処理装置は、所定方向に出射した光の反射光を受光して得られた点群情報を取得する取得手段と、前記点群情報が示す計測点群から、車両外部に設けられる複数の反射部材を表す反射部材点を検出する反射部材点検出手段と、前記反射部材点の周囲に存在する周囲点を検出する周囲点検出手段と、前記反射部材点と前記周囲点とが形成する、前記計測点群におけるセグメントを、前記所定方向に存在する前記車両として検出する車両検出手段と、を有する。このように、情報処理装置は、車両に備えられた反射部材を検出することで、車両を好適に検出することができる。
上記情報処理装置の一態様では、前記反射部材点検出手段は、反射強度が第1閾値より大きい計測点の対と、当該対の間に反射強度が第2閾値未満となる所定個数の計測点とが、地面に対し水平方向に連続して存在する計測点列として前記計測点群内に存在する場合、前記対を前記反射部材点として検出する。この態様により、情報処理装置は、対となって設けられた反射部材の計測点である反射部材点を好適に検出することができる。
上記情報処理装置の他の一態様では、前記反射部材点検出手段は、他の計測点より反射強度が所定の比率以上大きい計測点の対と、当該対の反射強度より所定の比率以上小さい当該対の間の所定個数の計測点とが、地面に対し水平方向に連続して存在する計測点列として前記計測点群内に存在する場合、前記対を前記反射部材点として検出する。この態様によっても、情報処理装置は、対となって設けられた反射部材の計測点である反射部材点を好適に検出することができる。
上記情報処理装置の他の一態様では、前記反射部材点検出手段は、前記計測点列が示す奥行方向の距離に基づき、前記所定個数を決定する。この態様により、情報処理装置は、反射部材点を検出するために好適な所定個数を適切に定めることができる。好適な例では、前記反射部材点検出手段は、前記計測点列が示す奥行方向の距離が第1距離より長い場合と、前記計測点列が示す距離が前記第1距離以下の場合とで、前記所定個数の範囲を異ならせるとよい。
上記情報処理装置の他の一態様では、前記反射部材点検出手段は、前記対の幅、前記対の奥行方向の距離差、又は前記対の地面からの高さの少なくとも一方に基づき、前記対が前記反射部材点であるか否かの判定を行う。この態様により、情報処理装置は、車両の反射部材の設置位置の特徴を勘案し、より高精度に反射部材点を検出することができる。
上記情報処理装置の他の一態様では、前記反射部材点検出手段は、奥行方向の距離が第2距離以上であって、反射強度が第1閾値より大きい計測点が地面に対し水平方向に連続する場合、当該計測点を前記反射部材点の候補から除外する。この態様により、情報処理装置は、反射率が高い標識などを反射部材として誤検出するのを好適に防ぐことができる。
上記情報処理装置の他の一態様では、前記反射部材点検出手段は、前処理時刻での前記車両の検出結果に基づき、現処理時刻での反射部材点を検出する。この態様により、情報処理装置は、前処理時刻での検出結果に基づき、反射部材点を好適に検出し、反射部材点の検出漏れを好適に防ぐことができる。
上記情報処理装置の他の一態様では、前記反射部材点検出手段は、前記前処理時刻と前記現処理時刻とでの計測された奥行方向の距離差が所定距離差以内となり、かつ、前記前処理時刻において前記車両として検出された走査位置に対応する計測点を、前記反射部材点として検出する。この態様により、情報処理装置は、前処理時刻での検出結果に基づき、反射部材点を的確に検出することができる。
上記情報処理装置の他の一態様では、前記取得手段は、前記点群情報として、計測点の各々について、ノイズに該当しない有効点であるか否かのフラグが付された点群情報を取得し、前記反射部材点検出手段は、前記有効点ではないことを示すフラグが付された計測点を前記反射部材点の候補から除外する。この態様により、情報処理装置は、ノイズを反射部材点として検出するのを好適に抑制することができる。
上記情報処理装置の他の一態様では、前記周囲点検出手段は、前記反射部材点の周囲に存在し、前記反射部材点との奥行方向の距離差が所定距離差以内となる計測点を、前記周囲点として検出する。この態様により、情報処理装置は、反射部材点と同一物体と推定される周囲の計測点を周囲点として好適に検出することができる。
上記情報処理装置の他の一態様では、前記車両検出手段は、前記反射部材点と、前記周囲点とに基づき形成された直方体内の計測点を、前記セグメントの一部とみなす。この態様により、情報処理装置は、車両の全体を表す計測点群をセグメントとして好適に検出することができる。
上記情報処理装置の他の一態様では、前記複数の反射部材は、車両外部のうち前部、側部、又は後部に設けられている。情報処理装置は、前部、側部、又は後部に反射部材が設けられている車両を好適に検出することができる。
本発明の他の好適な実施形態では、情報処理装置が実行する制御方法であって、車両の前方を含む方向に出射した光の反射光を受光して得られた点群情報を取得する取得工程と、前記点群情報が示す計測点群から、複数の反射部材を表す反射部材点を検出する反射部材点検出工程と、前記反射部材点の周囲に存在する周囲点を検出する周囲点検出工程と、前記反射部材点と前記周囲点とが形成する、前記計測点群におけるセグメントを、前記車両に先行する前方車両として検出する前方車両検出工程と、を有する。情報処理装置は、この制御方法を実行することで、前方車両を好適に検出することができる。
本発明の他の好適な実施形態では、プログラムは、車両の前方を含む方向に出射した光の反射光を受光して得られた点群情報を取得する取得手段と、前記点群情報が示す計測点群から、複数の反射部材を表す反射部材点を検出する反射部材点検出手段と、前記反射部材点の周囲に存在する周囲点を検出する周囲点検出手段と、前記反射部材点と前記周囲点とが形成する、前記計測点群におけるセグメントを、前記車両に先行する前方車両として検出する前方車両検出手段としてコンピュータを機能させる。コンピュータは、このプログラムを実行することで、前方車両を好適に検出することができる。好適には、上記プログラムは、記憶媒体に記憶される。
以下、図面を参照して本発明の好適な実施例について説明する。
<第1実施例>
(1)装置構成
図1は、本実施例に係るライダ100の概略構成を示す。ライダ100は、自動運転などの運転支援を行う車両に搭載される。ライダ100は、水平方向および垂直方向の所定の角度範囲に対してレーザ光(「照射光」とも呼ぶ。)を照射し、当該照射光が物体に反射されて戻った光(「反射光」とも呼ぶ。)を受光することで、ライダ100から物体までの距離を離散的に測定し、当該物体の3次元位置を示す点群情報を生成する。ライダ100は、少なくとも、搭載された車両の前方方向を測定範囲に含むように設置されている。
図1に示すように、ライダ100は、主に、送信部1と、受信部2と、ビームスプリッタ3と、スキャナ5と、ピエゾセンサ6と、制御部7と、メモリ8と、を有する。
送信部1は、パルス状の照射光をビームスプリッタ3に向けて出射する光源である。送信部1は、例えば、赤外線レーザ発光素子を含む。送信部1は、制御部7から供給される駆動信号「Sg1」に基づき駆動する。
受信部2は、例えばアバランシェフォトダイオード(Avalanche PhotoDiode)であり、受光した光量に対応する検出信号「Sg2」を生成し、生成した検出信号Sg2を制御部7へ供給する。
ビームスプリッタ3は、送信部1から射出されるパルス状の照射光を透過する。また、ビームスプリッタ3は、スキャナ5によって反射された反射光を、受信部2に向けて反射する。
スキャナ5は、例えば静電駆動方式のミラー(MEMSミラー)であり、制御部7から供給される駆動信号「Sg3」に基づき、傾き(即ち光走査の角度)が所定の範囲内で変化する。そして、スキャナ5は、ビームスプリッタ3を透過した照射光をライダ100の外部へ向けて反射すると共に、ライダ100の外部から入射する反射光をビームスプリッタ3へ向けて反射する。また、ライダ100の計測範囲内において照射光が照射される点を「計測点」とも呼ぶ。
また、スキャナ5には、ピエゾセンサ6が設けられている。ピエゾセンサ6は、スキャナ5のミラー部を支持するトーションバーの応力により生じる歪みを検出する。ピエゾセンサ6は、生成した検出信号「Sg4」を、制御部7へ供給する。検出信号Sg4は、スキャナ5の向きの検出に用いられる。
メモリ8は、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリなどの各種の揮発性メモリ及び不揮発性メモリにより構成される。メモリ8は、制御部7が所定の処理を実行するために必要なプログラムを記憶する。また、メモリ8は、制御部7により参照される各種パラメータを記憶する。また、メモリ8には、制御部7により生成された最新の所定フレーム数分の点群情報が記憶される。
制御部7は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)などの各種プロセッサを含む。制御部7は、メモリ8に記憶されたプログラムを実行することで、所定の処理を実行する。制御部7は、プログラムを実行するコンピュータの一例である。なお、制御部7は、プログラムによるソフトウェアで実現することに限ることなく、ハードウェア、ファームウェア、及びソフトウェアのうちのいずれかの組合せ等により実現されてもよい。また、制御部7は、FPGA(field-programmable gate array)又はマイクロコントローラ等の、ユーザがプログラミング可能な集積回路であってもよく、ASSP(Application Specific Standard Produce)、ASIC(Application Specific Integrated Circuit)等であってもよい。
制御部7は、機能的には、送信駆動ブロック70と、スキャナ駆動ブロック71と、点群情報生成ブロック72と、点群情報処理ブロック73と、を有する。
送信駆動ブロック70は、送信部1を駆動する駆動信号Sg1を出力する。駆動信号Sg1は、送信部1に含まれるレーザ発光素子の発光時間と、当該レーザ発光素子の発光強度を制御するための情報を含む。送信駆動ブロック70は、駆動信号Sg1に基づき、送信部1に含まれるレーザ発光素子の発光強度を制御する。
スキャナ駆動ブロック71は、スキャナ5を駆動するための駆動信号Sg3を出力する。この駆動信号Sg3は、スキャナ5の共振周波数に対応する水平駆動信号と、垂直走査するための垂直駆動信号と、を含む。また、スキャナ駆動ブロック71は、ピエゾセンサ6から出力される検出信号Sg4を監視することで、スキャナ5の走査角度(すなわち照射光の射出方向)を検出する。
点群情報生成ブロック72は、受信部2から供給される検出信号Sg2に基づき、ライダ100を基準点として、照射光が照射された物体までの距離と方向とを計測点毎に示した点群情報を生成する。この場合、点群情報生成ブロック72は、照射光を射出してから受信部2が反射光を検出するまでの時間を、光の飛行時間(Time of Flight)として算出する。そして、点群情報生成ブロック72は、算出した飛行時間に応じた距離と、受信部2が受信した反射光に対応する照射光の照射方向とを計測点毎に示す点群情報を生成し、生成した点群情報を点群情報処理ブロック73に供給する。以後では、全計測点に対する1回分の走査により得られる点群情報を、1フレーム分の点群情報とする。点群情報生成ブロック72は、「取得手段」の一例である。
ここで、点群情報は、計測点を画素とし、各計測点が示す距離を画素値とする画像とみなすことができる。この場合、各計測点は、縦方向の並びにおいて仰俯角における照射光の照射方向が異なり、横方向の並びにおいて水平角における照射光の照射方向が異なる。以後では、画像の横方向(即ち水平方向)を「Y座標軸」、画像の縦方向(即ち高さ方向)を「Z座標軸」、画素値が示す距離(即ち奥行方向のライダ100からの距離)を「X座標軸」としてXYZ座標系を定義する。以後では、XYZ座標系は、ライダ100の位置を原点とする3次元座標系であるものとする。また、点群情報は、画素ごとに受光強度(即ち、各計測点の受光強度)の情報を含んでいる。
なお、点群情報生成ブロック72は、点群情報において物体を誤検知することで生成されたデータ(所謂誤警報データ)を好適に除去した点群情報を生成してもよい。以後では、実在する物体を検知することで生成されたデータに対応する計測点を「有効点」とも呼ぶ。この場合、点群情報には、有効点であるか否かを計測点毎に示すフラグ情報がさらに含まれる。
点群情報処理ブロック73は、点群情報生成ブロック72から供給される点群情報に基づき、ライダ100が搭載される車両に先行する前方車両を構成する計測点の塊(「前方車両セグメント」とも呼ぶ。)を検出する。本実施例では、点群情報処理ブロック73は、車両の左右後方に対となって設けられるリフレクタを表す計測点(「リフレクタ点」とも呼ぶ。)の検出結果に基づき、前方車両セグメントを検出する。この場合、点群情報処理ブロック73は、前方車両セグメントであるか否か等を計測点毎に示したフラグ情報を、点群情報に付加する。また、点群情報処理ブロック73は、フレーム毎の点群情報を、フレーム毎の処理時刻を示す時刻情報と関連付けてメモリ8に記憶する。点群情報処理ブロック73の処理の詳細については後述する。点群情報処理ブロック73は、「反射部材点検出手段」、「周囲点検出手段」及び「前方車両検出手段」の一例である。また、リフレクタは、「反射部材」の一例であり、リフレクタ点は、「反射部材点」の一例である。
なお、メモリ8に記憶された点群情報は、例えば、車両の自動運転などの運転支援を制御する装置(「運転支援装置」とも呼ぶ。)に出力されてもよい。この場合、運転支援装置は、例えば、車両のECU(Electronic Control Unit)であってもよく、車両と電気的に接続したカーナビゲーション機器などの車載装置であってもよい。
(2)前方車両検出処理の概要
次に、制御部7が実行する前方車両検出処理の概要について説明する。
図2は、前方車両検出処理の手順を示すフローチャートの一例である。点群情報処理ブロック73は、図2に示す処理を、繰り返し実行する。
まず、点群情報生成ブロック72は、検出信号Sg2に基づき、点群情報を生成する(ステップS11)。この場合、点群情報生成ブロック72は、ライダ100の走査対象範囲における1回分の走査により生成された検出信号Sg2に基づき、現処理時刻に対応するフレーム(「現フレーム」とも呼ぶ。)の点群情報を生成する。
次に、点群情報処理ブロック73は、ステップS11で生成された点群情報に基づき、点群情報が示す計測点群からリフレクタ点に該当する計測点を検出する処理であるリフレクタ点検出処理を実行する(ステップS12)。リフレクタ点検出処理の詳細な処理フローについては、図3を参照して後述する。なお、点群情報に有効点であるか否かを計測点毎に示すフラグ情報がさらに含まれる場合、点群情報処理ブロック73は、有効点のみを、リフレクタ点として検出する。言い換えると、点群情報処理ブロック73は、有効点ではないことを示すフラグが付された計測点を、リフレクタ点の候補から除外する。これにより、ノイズ点をリフレクタ点として誤検出することを好適に抑制する。
次に、点群情報処理ブロック73は、ステップS12で検出されたリフレクタ点の周囲に存在し、リフレクタ点と同一物体(即ち前方車両)を表す計測点(「リフレクタ周囲点」とも呼ぶ。)を検出する処理である周囲点検出処理を実行する(ステップS13)。周囲点検出処理の詳細な処理フローについては、図8を参照して後述する。
次に、点群情報処理ブロック73は、ステップS12で検出されたリフレクタ点と、ステップS13で検出されたリフレクタ周囲点とに基づき、前方車両を構成する計測点の塊となる前方車両セグメントを生成する処理であるセグメント化処理を実行する(ステップS14)。セグメント化処理の詳細な処理フローについては、図9及び図10を参照して後述する。そして、制御部7は、説明した図2に示されるフローチャートの処理を、走査周期(即ちフレームの生成周期)に従い繰り返し実行する。
制御部7は、図2に示されるフローチャートの処理を実行することで、前方を走行する遠方車両に対する計測点の数が少ない場合であっても、前方車両を好適に検出することができる。また、前方車両が黒色などの反射率が低い色であることにより、当該前方車両の計測点の数が少ない場合であっても、前方車両を好適に検出することができる。
(3)リフレクタ点検出処理
次に、リフレクタ点検出処理の詳細について説明する。概略的には、点群情報処理ブロック73は、前方車両が遠距離に存在することを前提としたリフレクタの検出条件である遠距離検出条件、又は、前方車両が近距離に存在することを前提としたリフレクタの検出条件である近距離検出条件のいずれかを満たす高反射強度の計測点の対を、リフレクタ点とみなす。また、点群情報処理ブロック73は、1つ前の処理時刻に対応するフレーム(「前フレーム」とも呼ぶ。)でのリフレクタ点の検出結果に基づき、リフレクタ点の検出を行うことで、リフレクタ点の検出漏れを防ぐ。前フレームでのリフレクタ点の検出結果に基づくリフレクタの検出条件を「過去検出条件」とも呼ぶ。
(3-1)処理フロー
図3は、図2のステップS12において点群情報処理ブロック73が実行するリフレクタ点検出処理の詳細を示すフローチャートの一例である。このフローチャートでは、点群情報処理ブロック73は、現フレームの点群情報が示す各計測点に対し、前方車両の候補点であるか否かを示すフラグ(「前方車両フラグFv」とも呼ぶ。)を設け、リフレクタ点とみなした計測点の前方車両フラグFvを「有効」(ここでは「1」)に設定する。一方、点群情報処理ブロック73は、リフレクタ点でないとみなされる計測点(「非リフレクタ点」とも呼ぶ。)の前方車両フラグFvを「無効」(ここでは「0」)に設定する。
まず、点群情報処理ブロック73は、対象となる現処理時刻のフレームに対応する点群情報が示す全計測点の前方車両フラグFvを0(即ち無効)にセットする(ステップS101)。
次に、前方車両フラグFvを0にセットした全計測点の各々について、ステップS102~ステップS110により構成されるループAを実行する。以後では、各回のループにおいて処理対象となる計測点を「注目点」とも呼ぶ。
まず、点群情報処理ブロック73は、注目点と同一走査線上に存在する少なくとも1つの計測点との対(ペア)が遠距離検出条件を満たす関係にあるか否か判定する(ステップS102)。この場合、点群情報処理ブロック73は、注目点を含む上記の対について、遠距離検出条件として定めた反射強度、X座標、Y座標、及びZ座標に関する条件を満たすか否か判定する。遠距離検出条件の具体例については、図4(A)~(D)等を参照して後述する。
そして、点群情報処理ブロック73は、注目点を含む上記の対が遠距離検出条件を満たすと判定した場合(ステップS102;Yes)、注目点を含む上記の対をリフレクタ点とみなし、これらの前方車両フラグFvを「1」にセットする(ステップS103)。なお、点群情報処理ブロック73は、ノイズ除去処理が行われている場合には、現フレームでの注目点Piが有効点である場合に限り、現フレームでの注目点Piの前方車両フラグFvを1に設定する。以下のステップS107及びステップS110でも同様である。
一方、点群情報処理ブロック73は、遠距離検出条件を満たすような注目点を含む上記の対が存在しないと判定した場合(ステップS102;No)、注目点と同一走査線上に存在する少なくとも1つの計測点との対が遠距離非検出条件を満たすか否か判定する(ステップS104)。ここで、遠距離非検出条件は、前方車両のリフレクタ以外の高反射部材(例えば標識等)の計測点をリフレクタ点として誤検出するのを防ぐために設けられた条件であり、詳細については、図5を参照して説明する。
そして、点群情報処理ブロック73は、遠距離非検出条件を満たすような注目点を含む上記の対が存在すると判定した場合(ステップS104;Yes)、注目点を含む上記の対を非リフレクタ点とみなし、これらの計測点の前方車両フラグFvを「0」にセットする(ステップS105)。
一方、点群情報処理ブロック73は、遠距離非検出条件を満たすような注目点を含む上記の対が存在しないと判定した場合(ステップS104;No)、注目点と同一走査線上に存在する少なくとも1つの計測点との対が近距離検出条件を満たすか否か判定する(ステップS106)。この場合、点群情報処理ブロック73は、注目点を含む上記の対について、近距離検出条件として定めた反射強度、X座標、Y座標、及びZ座標に関する条件を満たすか否か判定する。近距離検出条件の具体例については、図6(A)~(K)等を参照して説明する。
そして、点群情報処理ブロック73は、近距離検出条件を満たすような注目点を含む上記の対が存在すると判定した場合(ステップS106;Yes)、注目点を含む上記の対をリフレクタ点とみなし、これらの前方車両フラグFvを「1」にセットする(ステップS107)。
一方、点群情報処理ブロック73は、近距離検出条件を満たすような注目点を含む上記の対が存在しないと判定した場合(ステップS106;No)、注目点が過去検出条件を満たすか否か判定する(ステップS108)。この場合、点群情報処理ブロック73は、点群情報処理ブロック73がメモリ8に記憶した前フレームの点群情報を参照し、注目点がリフレクタ点とみなすことができる条件に該当するか否か判定する。過去検出条件の詳細については、図7(A)、(B)を参照して説明する。
そして、点群情報処理ブロック73は、注目点が過去検出条件を満たすと判定した場合(ステップS109;Yes)、さらに注目点の周囲点が過去検出条件を満たすか否か判定する(ステップS109)。この場合、点群情報処理ブロック73は、点群情報を画像とみなした場合に注目点と縦及び横の位置の差が所定画素数内となる計測点を周囲点とみなし、周囲点が過去検出条件を満たすか否か判定する。そして、点群情報処理ブロック73は、周囲点が過去検出条件を満たすと判定した場合(ステップS109;Yes)、注目点及び周囲点をリフレクタ点とみなし、これらの計測点の前方車両フラグFvを1にセットする(ステップS110)。
一方、注目点が過去検出条件を満たさない場合(ステップS108;No)、又は、注目点の周囲点が過去検出条件を満たさない場合(ステップS109;No)、点群情報処理ブロック73は、ステップS110を実行することなく、注目点の前方車両フラグFvを0にしたまま現在の注目点に対するループAの処理を終了する。
(3-2)遠距離検出条件
点群情報処理ブロック73は、遠距離検出条件として、反射強度、X座標、Y座標、及びZ座標に関する条件を満たすか否か判定する。
まず、反射強度に関する条件について説明する。この場合、点群情報処理ブロック73は、注目点の反射強度が第1閾値より大きく、かつ、注目点と同一走査線に連続して存在する計測点(「計測点列」とも呼ぶ。)が所定の条件を満たすか否か判定する。
図4(A)~(D)は、反射強度に関する遠距離検出条件を満たす計測点列の例を示す。ここでは、反射強度が第1閾値より大きい計測点(「高反射計測点」とも呼ぶ。)を、ハッチングした円により示し、反射強度が第2閾値未満となる計測点(「低反射計測点」とも呼ぶ。)を、ハッチングなしの円により示している。また、横の線は走査線(スキャンライン)を示している。上記の第1閾値は、第2閾値よりも大きい値に設定され、例えば第1閾値は第2閾値の2倍~4倍の値に設定される。
図4(A)~(D)に示されるように、反射強度に関する遠距離検出条件を満たす計測点列は、注目点を含む高反射計測点の対と、当該対の間に1~4個の低反射計測点とを含んでいる。遠距離検出条件では、前方車両が遠距離に存在することを前提としたリフレクタ点の検出条件であるため、高反射計測点の対の間に存在する低反射計測点の数の範囲が後述する近距離検出条件の場合と比べて少ない数の範囲となるように設定されている。上記の低反射計測点の数の範囲については、例えば実験等に基づき予め定められ、メモリ8に記憶されている。遠距離検出条件を満たすために高反射計測点の対の間に存在すべき低反射計測点の数は、「所定個数」の一例である。
次に、遠距離検出条件を満たすためのX座標に関する条件について説明する。点群情報処理ブロック73は、対象の計測点列が示す奥行方向の距離(即ちX座標値)が第1距離(例えば30m)より長いことを、遠距離検出条件を満たすための必要条件として定める。上記の第1距離は、対象の計測点列が遠距離に存在する物体の点列であるか否かを判定するための閾値であり、予めメモリ8に記憶されている。この第1距離は、ライダ100の種類毎に異なってもよい。なお、点群情報処理ブロック73は、注目点が示す距離を、計測点列が示す奥行方向の距離とみなしてもよく、計測点列を構成する計測点の各々が示す距離の平均値などの代表値を、計測点列が示す奥行方向の距離とみなしてもよい。
次に、遠距離検出条件を満たすためのY座標に関する条件について説明する。リフレクタの間隔は車両の幅以下であることを考慮し、点群情報処理ブロック73は、計測点列が示すY座標方向における幅が所定距離(例えば2.5m)未満であることを、遠距離検出条件を満たすための必要条件として定める。上述の所定距離は、想定され得る車幅を勘案して予め設定される。
次に、遠距離検出条件を満たすためのZ座標に関する条件について説明する。点群情報処理ブロック73は、リフレクタは車高よりも低い位置に存在することを勘案し、地面を基準とした計測点列が示す高さが所定距離(例えば、1.5m)以内であることを、遠距離検出条件を満たすための必要条件として定める。上述の所定距離は、想定され得る車高を勘案して予め設定される。なお、この場合、地面の位置情報は、地面を計測した点群情報に基づき推定されてもよく、点群情報以外の情報(例えば地図情報等)に基づき取得されてもよい。
また、好適には、点群情報処理ブロック73は、リフレクタ点とみなす高反射計測点の対の奥行き差(即ちX座標値の差)が所定距離(例えば1m)以内であることを、遠距離検出条件を満たすための必要条件としてさらに定めてもよい。なお、上述した各種の条件の判定に必要な閾値(所定距離等)の情報は、予めメモリ8に記憶されている。
点群情報処理ブロック73は、上述した各種の条件を満たした場合に、遠距離検出条件が満たされたと判定し、対象となる高反射計測点の対をリフレクタ点とみなす。これにより、遠距離に存在する前方車両のリフレクタ点を高精度に検出することができる。
(3-3)遠距離非検出条件
点群情報処理ブロック73は、遠距離を示す高反射計測点が連続する場合、これらの高反射計測点を非リフレクタ点とみなす。
図5は、遠距離非検出条件を満たす場合の計測点列を示す。図5に示すように、この場合、高反射計測点が同一走査線(スキャンライン)上に連続している。また、この計測点列は、奥行方向において第2距離(例えば35m)より遠い位置を示している。上述の第2距離は、X座標に関する遠距離非検出条件の判定に用いる閾値であり、予めメモリ8に記憶されている。この場合、点群情報処理ブロック73は、高反射計測点が同一走査線上に連続し、かつ、上述の所定距離より遠い位置を示すと判定し、これらの高反射計測点を、非リフレクタ点として検出する。
このようにすることで、点群情報処理ブロック73は、遠方に存在する標識などの高反射物体の計測点を、リフレクタ点の候補から好適に除外することができる。
(3-4)近距離検出条件
点群情報処理ブロック73は、近距離検出条件として、反射強度、X座標、Y座標、及びZ座標に関する条件を満たすか否か判定する。
まず、反射強度に関する条件について説明する。この場合、点群情報処理ブロック73は、注目点の反射強度が第1閾値より大きく、かつ、注目点と同一走査線に連続して存在する計測点列が所定の条件を満たすか否か判定する。
図6(A)~(K)は、反射強度に関する近距離検出条件を満たす計測点列の例を示す。ここでは、反射強度が第1閾値より大きい高反射計測点を、ハッチングした円により示し、反射強度が第2閾値未満となる低反射計測点を、ハッチングなしの円により示している。また、横の線は走査線(スキャンライン)を示している。
図6(A)~(K)に示されるように、反射強度に関する近距離検出条件を満たす計測点列は、注目点を含む高反射計測点の対と、当該対の間に2~12個の低反射計測点とを含んでいる。近距離検出条件では、前方車両が近距離に存在することを前提としたリフレクタ点の検出条件であるため、高反射計測点の対の間に存在する低反射計測点の数の範囲が前述した遠距離検出条件の場合と比べて多い場合を含んでいる。上記の低反射計測点の数については、例えば実験等に基づき予め定められ、メモリ8に記憶されている。近距離検出条件を満たすために高反射計測点の対の間に存在すべき低反射計測点の数は、「所定個数」の一例である。
次に、近距離検出条件を満たすためのX座標に関する条件について説明する。点群情報処理ブロック73は、対象の計測点列が示す奥行方向の距離が第1距離(例えば30m)以下であることを、近距離検出条件を満たすための必要条件として設定する。次に、近距離検出条件を満たすためのY座標に関する条件について説明する。リフレクタの間隔は車両の幅以下であることを考慮し、点群情報処理ブロック73は、計測点列が示すY座標方向における幅が所定距離(例えば2.5m)未満であることを、近距離検出条件を満たすための必要条件として定める。次に、近距離検出条件を満たすためのZ座標に関する条件について説明する。点群情報処理ブロック73は、リフレクタは車高よりも低い位置に存在することを勘案し、地面を基準とした計測点列が示す高さが所定距離(例えば、1.5m)以内であることを、近距離検出条件を満たすための必要条件として定める。
また、好適には、点群情報処理ブロック73は、リフレクタ点とみなす高反射計測点の対の奥行き差(即ちX座標の差)が所定距離(例えば0.95m)以内であることを、近距離検出条件の必要条件として定めてもよい。なお、上述した各種の条件の判定に必要な所定距離の情報は、予めメモリ8に記憶されている。
点群情報処理ブロック73は、上述した各種の条件を満たした場合に、近距離検出条件が満たされたと判定し、高反射計測点の対をリフレクタ点とみなす。これにより、近距離に存在する前方車両のリフレクタ点を高精度に検出することができる。また、一般的な車両検出処理では検出困難な反射率が低い黒色などを有する前方車両に対しても、点群情報処理ブロック73は、リフレクタ点を好適に検出することができる。
(3-5)過去検出条件
遠距離検出条件及び近距離検出条件の両方に該当しなかったリフレクタ点を検出するための条件である過去検出条件について具体的に説明する。
この場合、第1のケースでは、点群情報処理ブロック73は、前フレームでの注目点の前方車両フラグFvが1であり、かつ、前フレームと現フレームとでの注目点での測距された距離(即ちX座標値)の差が所定距離差(「距離差dDth」とも呼ぶ。)未満である場合、当該注目点を現フレームにおいてもリフレクタ点であるとみなす。上記の距離差dDthは、例えば、1フレーム分の時間間隔において生じ得る、前方車両の測距距離の変動値等に設定され、メモリ8に予め記憶されている。
図7(A)は、現フレームにおける注目点「Pi」とその周囲の計測点を仮想的な走査面上に示した図である。図7(B)は、前フレームにおける注目点Piとその周囲の計測点を仮想的な走査面上に示した図である。ここで、現フレームでの注目点Piの距離(即ち測距距離)は「x1」であり、前フレームでの注目点Piの距離は「x2」であるものとする。
この場合、点群情報処理ブロック73は、前フレームでの注目点Piの前方車両フラグFvが1であり、かつ、距離x1と距離x2との差の絶対値が距離差dDth未満である場合に、現フレームでの注目点Piの前方車両フラグFvを1に設定する。なお、点群情報処理ブロック73は、ノイズ除去処理が行われている場合には、現フレームでの注目点Piが有効点である場合に限り、現フレームでの注目点Piの前方車両フラグFvを1に設定するとよい。以下に述べる各ケースにおいても同様である。
また、点群情報処理ブロック73は、現フレームでの注目点Piの周囲点についても同様に、前フレームでの注目点Piの前方車両フラグFvが1であり、前フレームでの注目点Piとの距離差が距離差dDth未満である場合に、当該周囲点の前方車両フラグFvを1に設定する。この具体例(第2のケース~第15のケース)について、図7(A)及び図7(B)を引き続き参照して説明する。
第2のケースでは、点群情報処理ブロック73は、前フレームにおいて注目点の前方車両フラグFvが1であり、かつ、前フレームの注目点Piと現フレームの計測点P7(注目点Piの左隣り)とでの距離の差が距離差dDth未満である場合、現フレームの計測点P7の前方車両フラグFvを1に設定する。第3のケースでは、点群情報処理ブロック73は、前フレームにおいて注目点の前方車両フラグFvが1であり、かつ、前フレームの注目点Piと現フレームの計測点P6(注目点Piの2個左隣り)とでの距離の差が距離差dDth未満である場合、現フレームの計測点P6の前方車両フラグFvを1に設定する。第4のケースでは、点群情報処理ブロック73は、前フレームにおいて注目点の前方車両フラグFvが1であり、かつ、前フレームの注目点Piと現フレームの計測点P8(注目点Piの右隣り)とでの距離の差が距離差dDth未満である場合、現フレームの計測点P8の前方車両フラグFvを1に設定する。第5のケースでは、点群情報処理ブロック73は、前フレームにおいて注目点の前方車両フラグFvが1であり、かつ、前フレームの注目点Piと現フレームの計測点P9(注目点Piの2個右隣り)とでの距離の差が距離差dDth未満である場合、現フレームの計測点P9の前方車両フラグFvを1に設定する。第6のケースでは、点群情報処理ブロック73は、前フレームにおいて注目点の前方車両フラグFvが1であり、かつ、前フレームの注目点Piと現フレームの計測点P12(注目点Piの真下)とでの距離の差が距離差dDth未満である場合、現フレームの計測点P12の前方車両フラグFvを1に設定する。第7のケースでは、点群情報処理ブロック73は、前フレームにおいて注目点の前方車両フラグFvが1であり、かつ、前フレームの注目点Piと現フレームの計測点P11(注目点Piの左下)とでの距離の差が距離差dDth未満である場合、現フレームの計測点P11の前方車両フラグFvを1に設定する。
第8のケースでは、点群情報処理ブロック73は、前フレームにおいて注目点の前方車両フラグFvが1であり、かつ、前フレームの注目点Piと現フレームの計測点P10(注目点Piの下の2個左)とでの距離の差が距離差dDth未満である場合、現フレームの計測点P10の前方車両フラグFvを1に設定する。第9のケースでは、点群情報処理ブロック73は、前フレームにおいて注目点の前方車両フラグFvが1であり、かつ、前フレームの注目点Piと現フレームの計測点P13(注目点Piの右下)とでの距離の差が距離差dDth未満である場合、現フレームの計測点P13の前方車両フラグFvを1に設定する。第10のケースでは、点群情報処理ブロック73は、前フレームにおいて注目点の前方車両フラグFvが1であり、かつ、前フレームの注目点Piと現フレームの計測点P14(注目点Piの下の2個右)とでの距離の差が距離差dDth未満である場合、現フレームの計測点P14の前方車両フラグFvを1に設定する。第11のケースでは、点群情報処理ブロック73は、前フレームにおいて注目点の前方車両フラグFvが1であり、かつ、前フレームの注目点Piと現フレームの計測点P3(注目点Piの真上)とでの距離の差が距離差dDth未満である場合、現フレームの計測点P3の前方車両フラグFvを1に設定する。第12のケースでは、点群情報処理ブロック73は、前フレームにおいて注目点の前方車両フラグFvが1であり、かつ、前フレームの注目点Piと現フレームの計測点P2(注目点Piの左上)とでの距離の差が距離差dDth未満である場合、現フレームの計測点P2の前方車両フラグFvを1に設定する。第13のケースでは、点群情報処理ブロック73は、前フレームにおいて注目点の前方車両フラグFvが1であり、かつ、前フレームの注目点Piと現フレームの計測点P1(注目点Piの上の2個左)とでの距離の差が距離差dDth未満である場合、現フレームの計測点P1の前方車両フラグFvを1に設定する。第14のケースでは、点群情報処理ブロック73は、前フレームにおいて注目点の前方車両フラグFvが1であり、かつ、前フレームの注目点Piと現フレームの計測点P4(注目点Piの右上)とでの距離の差が距離差dDth未満である場合、現フレームの計測点P4の前方車両フラグFvを1に設定する。第15のケースでは、点群情報処理ブロック73は、前フレームにおいて注目点の前方車両フラグFvが1であり、かつ、前フレームの注目点Piと現フレームの計測点P5(注目点Piの上の2個右)とでの距離の差が距離差dDth未満である場合、現フレームの計測点P5の前方車両フラグFvを1に設定する。
このように、過去検出条件を設けることで、点群情報処理ブロック73は、遠距離検出条件及び近距離検出条件の両方に該当しなかったリフレクタ点を好適に検出することができる。
(4)周囲点検出処理
次に、周囲点検出処理の詳細について説明する。概略的には、点群情報処理ブロック73は、リフレクタ点の周囲に存在し、リフレクタ点と同一物体(即ち前方車両)を表す計測点を、リフレクタ周囲点として検出する。
図8は、図2のステップS13において点群情報処理ブロック73が実行する周囲点検出処理の手順を示すフローチャートの一例である。このフローチャートでは、概略的には、点群情報処理ブロック73は、前方車両フラグFvが1に設定された計測点の周囲点のうち、後述する周囲点非検出条件を満たさず、かつ、周囲点検出条件を満たす計測点をリフレクタ周囲点とみなし、その前方車両フラグFvを1に設定する。
まず、点群情報処理ブロック73は、現フレームの全計測点の各々について順次注目点とみなし、ステップS201と、後述のループCとにより構成されるループBを実行する。
まず、点群情報処理ブロック73は、注目点の前方車両フラグFvが1であるか否か判定する(ステップS201)。そして、点群情報処理ブロック73は、注目点の前方車両フラグFvが1であると判定した場合(ステップS201;Yes)、ステップS202~ステップS205により構成されるループCを実行する。一方、点群情報処理ブロック73は、注目点の前方車両フラグFvが1ではない(即ち0である)と判定した場合(ステップS201;No)、ループBに関する現在の注目点への処理を終了する。
次に、ループCでは、点群情報処理ブロック73は、注目点の周囲に存在する計測点である周囲点の各々に対して以下に述べる処理を実行する。ここで、周囲点となる計測点は、例えば、探索範囲を指定するパラメータに依存して定まる。例えば、探索範囲を指定するパラメータ(「探索範囲パラメータ」とも呼ぶ。)が「2」の場合、図7(A)に示す計測点P1~P14が注目点Piに対する周囲点として定まる。また、探索範囲パラメータが「1」の場合、図7(A)に示す計測点P2~P4、P7、P8、P11~P13が注目点Piに対する周囲点として定まる。
まず、点群情報処理ブロック73は、対象の周囲点が周囲点非検出条件を満たすか否か判定する(ステップS202)。ここで、周囲点非検出条件は、前方車両を構成する計測点として明らかに不適な計測点を除外するための条件である。周囲点非検出条件は、例えば、
(a)対象の周囲点が、同一の走査線上において連続して高反射計測点に該当
(b)対象の周囲点の距離が第1距離未満、かつ、地面点に該当
のいずれかが少なくとも満たされた場合に満たされたと判定される条件である。そして、点群情報処理ブロック73は、周囲点非検出条件が満たされたと判定した場合(ステップS202;Yes)、対象の周囲点の前方車両フラグFvを0にセットする(ステップS203)。
一方、点群情報処理ブロック73は、周囲点非検出条件が満たされないと判定した場合(ステップS202;No)、対象の周囲点について周囲点検出条件が満たされるか否か判定する(ステップS204)。ここで、周囲点検出条件は、例えば、
(a)注目点とのX座標値の差(距離差)が所定差(例えば1.0m)以内
(b)注目点とのY座標値の差が所定差(例えば1.5m)以内
(c)地面との高さの差(Z座標値の差)が所定差(例えば1.5m)以内
の全てが満たされた場合に満たされたと判定される条件である。なお、点群情報に有効点であるか否かを計測点毎に示すフラグ情報がさらに含まれる場合、点群情報処理ブロック73は、対象の周囲点が有効点であることを、周囲点検出条件を満たす必要条件としてもよい。周囲点非検出条件及び周囲点検出条件の判定に用いる閾値(所定距離差等)は、例えば、予めメモリ8に記憶されている。
そして、点群情報処理ブロック73は、対象の周囲点が周囲点検出条件を満たすと判定した場合(ステップS204;Yes)、対象の周囲点をリフレクタ周囲点とみなし、その前方車両フラグFvを1にセットする(ステップS205)。一方、点群情報処理ブロック73は、対象の周囲点が周囲点検出条件を満たさないと判定した場合(ステップS204;No)、対象の周囲点に対するループCに関する処理を終了する。
そして、ループBの終了後、点群情報処理ブロック73は、現フレームの全計測点の各々を順次注目点とみなし、ループDを開始する。ループDは、ステップS206とステップS207とを含んでいる。
まず、点群情報処理ブロック73は、注目点について、前方車両フラグFvが1であって、かつ、10mより手前(即ちX座標値が10m未満)、かつ、地面から10cm未満の高さに存在するか否か判定する(ステップS206)。そして、点群情報処理ブロック73は、注目点について、前方車両フラグFvが1であって、かつ、10mより手前(即ちX座標値が10m未満)、かつ、地面から10cm未満の高さに存在すると判定した場合(ステップS206;Yes)、当該注目点の前方車両フラグFvを0にセットする(ステップS207)。これにより、点群情報処理ブロック73は、明らかに前方車両を構成しない注目点の前方車両フラグFvを0にセットすることができる。一方、注目点について、前方車両フラグFvが1ではない、10mより手前(即ちX座標値が10m未満)に存在しない、又は、地面から10cm未満の高さに存在しない場合(ステップS206;No)、点群情報処理ブロック73は、対象の注目点に対するループDの処理を終了する。
このように、点群情報処理ブロック73は、周囲点検出処理を実行することで、リフレクタ点の周囲に存在し、リフレクタ点と同一物体と推定される計測点をリフレクタ周囲点として検出し、その前方車両フラグFvを1に設定することができる。
(5)セグメント化処理
次に、セグメント化処理の詳細について説明する。概略的には、点群情報処理ブロック73は、前方車両フラグFvが1となる計測点の塊に基づき、前方車両セグメントを生成する。
図9及び図10は、図2のステップS14において点群情報処理ブロック73が実行するセグメント化処理の手順を示すフローチャートの一例である。このフローチャートでは、前方車両セグメントの識別番号を示す前方車両セグメントラベルLvを定義する。なお、前方車両セグメントに該当しない計測点の前方車両セグメントラベルLvは0に設定される。そして、点群情報処理ブロック73は、前方車両フラグFvが1となる塊の統合及び拡張などを行うことで、前方車両毎の計測点群の塊に対して同一の前方車両セグメントラベルLvを付与する。
まず、点群情報処理ブロック73は、現フレームの全計測点の前方車両セグメントラベルLvを0(即ち初期値)にセットする(ステップS301)。そして、点群情報処理ブロック73は、現フレームの全計測点の各々を順次注目点とみなし、ループEを実行する。ループEは、ステップS302~ステップS305を含んでいる。
まず、点群情報処理ブロック73は、注目点の前方車両フラグFvが1、かつ、前方車両セグメントラベルLvが0であるか否か判定する(ステップS302)。そして、点群情報処理ブロック73は、注目点の前方車両フラグFvが1、かつ、前方車両セグメントラベルLvが0である場合(ステップS302;Yes)、注目点の前方車両セグメントラベルLvに新規ラベル値をセットする(ステップS303)。この場合、例えば、前方車両セグメントラベルLvには、未使用の通し番号が付与される。
次に、点群情報処理ブロック73は、横のスキャン番号(即ち走査線上の走査位置)と奥行き(即ち測距距離)が離れていない計測点が存在するか否か判定する(ステップS304)。そして、点群情報処理ブロック73は、横のスキャン番号と奥行きが離れていない計測点が存在する場合(ステップS304;Yes)、該当する計測点の前方車両セグメントラベルLvを、注目点の前方車両セグメントラベルLvと同一値にセットする(ステップS305)。この場合、点群情報処理ブロック73は、例えば、注目点として処理されていない計測点のうち、横方向のスキャン番号の差が所定値(例えば1)以内であって、奥行きが所定距離差(例えば1.0m)以内となる計測点の前方車両セグメントラベルLvを、現在の注目点の前方車両セグメントラベルLvと同一値にセットする。これにより、点群情報処理ブロック73は、前方車両フラグFvが1となる縦の塊に対して、同一の前方車両セグメントラベルLvを好適に付与する。
点群情報処理ブロック73は、ループEの実行完了後、前方車両セグメントラベルLv毎(前方車両セグメントラベルLvが0の場合を除く、以下同じ。)の計測点群について、3次元座標値の最大値、最小値及び平均値を算出する(ステップS306)。この場合、点群情報処理ブロック73は、前方車両セグメントラベルLvが0以外で同一となる計測点群の各々について、X座標、Y座標、Z座標の夫々の最大値、最小値、平均値を算出する。
次に、点群情報処理ブロック73は、前方車両セグメントラベルLv毎の計測点群のうち、XYZ座標系での距離が近い組み合わせが存在するか否か判定する(ステップS307)。そして、点群情報処理ブロック73は、距離が近い前方車両セグメントラベルLv毎の計測点群の組み合わせが存在する場合(ステップS307;Yes)、当該組み合わせの計測点群を統合して同一の前方車両セグメントラベルLvに設定する(ステップS308)。例えば、点群情報処理ブロック73は、前方車両セグメントラベルLv毎の計測点群の任意のペアに対し、XYZ座標の平均値の差分和を算出する。そして、点群情報処理ブロック73は、算出した差分和が所定の閾値未満となるペアが存在する場合、当該ペアの計測点群の各々の前方車両セグメントラベルLvを、同一値にセットする。点群情報処理ブロック73は、この処理を、前方車両セグメントラベルLv毎の計測点群のペアの全組み合わせに対して実行する。その後、点群情報処理ブロック73は、さらに、ステップS313の準備として、前方車両セグメントラベルLvが同一となる計測点群について、X座標、Y座標、Z座標の夫々の最大値、最小値を算出する。一方、点群情報処理ブロック73は、距離が近い前方車両セグメントラベルLv毎の計測点群の組み合わせが存在しない場合(ステップS307;No)、ステップS309へ処理を進める。
次に、点群情報処理ブロック73は、前方車両検出処理以外の処理において現フレームに対して既に検出されたセグメント(「既存セグメント」とも呼ぶ。)が存在するか否か判定する(ステップS309)。例えば、前方車両検出処理の前に、一般的な障害物検出が行われ、検出された物体の塊をなす計測点群ごとにセグメントを識別するラベル(「セグメントラベルLs」とも呼ぶ。)が各計測点に付与されたとする。この場合、点群情報処理ブロック73は、セグメントラベルLsを参照し、既存セグメントが存在するか否か判定する。なお、障害物検出処理を前方車両検出処理の前に行う処理例については、第2実施例において詳しく説明する。
そして、点群情報処理ブロック73は、既存セグメントが存在する場合(ステップS309;Yes)、既存セグメントと重複しない前方車両セグメントラベルLv毎の計測点群を、新たなセグメントとして認識する(ステップS310)。この場合、新たなセグメントとして認識されたセグメントは、前方車両セグメントのうち、既存セグメントに該当せず、かつ、リフレクタ点に基づき検出した前方車両セグメントに該当する。なお、一部の前方車両を表す前方車両セグメントは、事前の障害物検出処理等において検出された既存セグメントに含まれる。一方、既存セグメントが存在しない場合(ステップS309;No)、点群情報処理ブロック73は、前方車両セグメントラベルLv毎の各計測点群を、夫々、セグメント(詳しくは、前方車両セグメント)として認識する(ステップS311)。
次に、点群情報処理ブロック73は、現フレームの全計測点の各々を順次注目点とみなし、ステップS312及びステップS313から構成されるループHを実行する。まず、点群情報処理ブロック73は、注目点の前方車両フラグFvが1であるか否か判定する(ステップS312)。そして、点群情報処理ブロック73は、前方車両フラグFvが1である場合(ステップS312;Yes)、現在の注目点に関する処理を終了する。
一方、点群情報処理ブロック73は、前方車両フラグFvが0である場合(ステップS312;No)、ステップS313を実行する。この場合、点群情報処理ブロック73は、ステップS310又はステップS311においてセグメントとして認識されたセグメント毎の計測点群のX座標値、Y座標値、Z座標値の最小値と最大値との間に存在する計測点の前方車両フラグFvを1にセットする(ステップS313)。言い換えると、点群情報処理ブロック73は、セグメントとして認識されたセグメント毎に、XYZ座標系において計測点群を含む最小の直方体(ここでは、各辺がXYZのいずれかの座標軸と平行であるものとする)を仮想的に設定する。そして、点群情報処理ブロック73は、セグメント毎の計測点群により形成された直方体内に存在する計測点の前方車両フラグFvを、1にセットする。これにより、点群情報処理ブロック73は、リフレクタ点に近接しない前方車両の計測点についても、好適に前方車両フラグFvを1にセットすることができる。この場合、好適には、点群情報処理ブロック73は、ノイズに該当しない計測点(即ち有効点)であって、地面点ではない計測点に限り、前方車両フラグFvを1にセットするとよい。
以上説明したように、第1実施例に係るライダ100の制御部7は、本発明における情報処理装置として機能し、取得手段として機能する点群情報生成ブロック72と、反射部材点検出手段、周囲点検出手段及び前方車両検出手段として機能する点群情報処理ブロック73とを有する。点群情報生成ブロック72は、所定方向に出射した光の反射光を受光して得られた点群情報を取得する。点群情報処理ブロック73は、点群情報が示す計測点群から、車両外部に設けられる複数のリフレクタを表すリフレクタ点を検出する。また、点群情報処理ブロック73は、リフレクタ点の周囲に存在するリフレクタ周囲点を検出する。そして、点群情報処理ブロック73は、リフレクタ点とリフレクタ周囲点とが形成する前方車両セグメントを、所定方向に存在する車両として検出する。これにより、ライダ100は、一般的な物体検出では検出が困難な遠方の前方車両や反射率が低い色を有する前方車両についても、好適に検出することができる。
<第2実施例>
第2実施例では、ライダ100は、第1実施例において説明した前方車両検出処理を処理の一部として含む物体識別処理を実行する。第2実施例に係るライダ100の構成については、図1と同様のため、その説明を省略する。
図11は、第2実施例における物体識別処理の手順を示すフローチャートの一例である。
まず、ライダ100の制御部7の点群情報生成ブロック72は、点群情報の生成処理を行う(ステップS1)。この場合、点群情報生成ブロック72は、図2のステップS11と同一処理を行い、点群情報を生成する。
次に、点群情報生成ブロック72は、ステップS1で生成された点群情報に対してノイズ除去処理を行う(ステップS2)。この場合、点群情報生成ブロック72は、物体を誤検知することで生成されたノイズ発生点を検出し、ノイズ発生点以外の計測点を有効点として指定するフラグ情報を、点群情報に付加する。
次に、点群情報処理ブロック73は、ステップS2でノイズ除去処理が行われた後の点群情報に基づき、障害物(即ち地面以外の物体)及び地面を検出する処理である障害物・地面検出処理を行う(ステップS3)。この場合、点群情報処理ブロック73は、障害物又は地面に該当する有効点を検出する処理を行う。
そして、点群情報処理ブロック73は、ステップS3において障害物を構成する点として検出した計測点を、物体毎のセグメントに分ける処理であるセグメント生成処理を実行する(ステップS4)。この場合、点群情報処理ブロック73は、例えば、生成したセグメント毎に通し番号などの識別番号を割り当て、該当するセグメントの識別番号を計測点毎に示したセグメントラベルLsを、点群情報にさらに付加する。
そして、点群情報処理ブロック73は、前方車両検出処理を実行する(ステップS5)。第2実施例における前方車両検出処理については、図12を参照して詳細に説明する。
その後、点群情報処理ブロック73は、セグメント毎の物体の識別を行う処理である物体識別処理を実行する(ステップS6)。この場合、点群情報処理ブロック73は、セグメント毎の物体を、セグメント毎の形状などに基づき、識別する処理を行う。
図12は、第2実施例における前方車両検出処理の手順を示すフローチャートの一例である。まず、点群情報処理ブロック73は、図2に示されるステップS12のリフレクタ点検出処理、ステップS13の周囲点検出処理、ステップS14のセグメント化処理を、第1実施例と同様に実行する。その後、点群情報処理ブロック73は、セグメントを統合する処理であるセグメント統合処理を実行する(ステップS15)。さらに、点群情報処理ブロック73は、後処理を実行する(ステップS16)。
図13は、図12のステップS15において点群情報処理ブロック73が実行するセグメント統合処理の手順を示すフローチャートの一例である。このフローチャートでは、前方車両検出処理において新たに認識されたセグメント(図10のステップS310及びステップS311参照)については、セグメントラベルLsが初期値の0に設定されているものとする。
まず、点群情報処理ブロック73は、現フレームの全計測点の各々を順次注目点に設定し、ステップS401~ステップS405により構成される以下のループJを実行する。
まず、点群情報処理ブロック73は、注目点の前方車両フラグFvが1であるか否か判定する(ステップS401)。そして、注目点の前方車両フラグFvが1ではない場合(ステップS401;No)、点群情報処理ブロック73は、対象の注目点に関するループJの処理を終了する。一方、注目点の前方車両フラグFvが1である場合(ステップS401;Yes)、注目点のセグメントラベルLsがいずれのセグメントにも属していないことを示す初期値(即ち0)であるか否か判定する(ステップS402)。そしてセグメントラベルLsが0ではない場合(ステップS402;No)、点群情報処理ブロック73は、対象の注目点に関するループJの処理を終了する。
一方、セグメントラベルLsが0である場合(ステップS402;Yes)、点群情報処理ブロック73は、注目点との距離が近く(例えば例えば3次元距離が所定距離差以内)、かつ、セグメントラベルLsが0でない計測点が探索範囲内に存在するか否か判定する(ステップS403)。なお、探索範囲は、例えば、周囲点を定める場合と同様に、メモリ8に記憶された探索範囲パラメータに基づき定められる。そして、点群情報処理ブロック73は、セグメントラベルLsが0でない計測点が探索範囲内に存在しない場合(ステップS403;No)、現在の注目点に対するループJの処理を終了する。
一方、距離が近く、かつ、セグメントラベルLsが0でない計測点が探索範囲内に存在する場合(ステップS403;Yes)、点群情報処理ブロック73は、当該計測点のセグメントラベルLsと同一値となるように、注目点のセグメントラベルLsをセットする(ステップS404)。そして、点群情報処理ブロック73は、注目点と同一の前方車両セグメントラベルLvが割り当てられた計測点のセグメントラベルLsを、注目点のセグメントラベルLsと同一値にセットする(ステップS405)。これにより、点群情報処理ブロック73は、既存セグメント(即ち、ステップS4で生成されたセグメント)と、前方車両検出処理で新たに検出された前方車両セグメントとの距離が近い場合に、これらを同一のセグメントとして好適に統合する。なお、点群情報処理ブロック73は、注目点と測距距離が所定距離差以内となる計測点のセグメントラベルLsについてのみ、注目点のセグメントラベルLsと同一値にセットしてもよい。
次に、点群情報処理ブロック73は、現フレームの全計測点の各々について、順次注目点とみなし、ステップS406~ステップS408により構成されるループKを実行する。
まず、点群情報処理ブロック73は、注目点の前方車両フラグFvが1であり、かつ、セグメントラベルLsが0であるか否か判定する(ステップS406)。そして、点群情報処理ブロック73は、注目点の前方車両フラグFvが0である場合、又はセグメントラベルLsが0以外である場合(ステップS406;No)、現在の注目点に関するループKの処理を終了する。
一方、点群情報処理ブロック73は、注目点の前方車両フラグFvが1であり、かつ、セグメントラベルLsが0である場合(ステップS406;Yes)、注目点に新規のセグメントラベルLsをセットする(ステップS407)。この場合、点群情報処理ブロック73は、注目点は、既存セグメントとは異なるセグメントを構成すると判断し、注目点に対して未使用のセグメントラベルLsを割り当てる。そして、点群情報処理ブロック73は、注目点と同じ前方車両セグメントラベルLvが割り当てられた計測点のセグメントラベルLsを、注目点のセグメントラベルLsと同一値にセットする(ステップS408)。
図13に示されるセグメント統合処理によれば、点群情報処理ブロック73は、既存セグメントと前方車両検出処理で新たに検出された前方車両セグメントとの距離が近い場合に、これらを同一のセグメントとして好適に統合することができる。
図14は、図12のステップS16において点群情報処理ブロック73が実行する後処理の手順を示すフローチャートの一例である。
まず、点群情報処理ブロック73は、セグメントラベルLsにより特定される各セグメントのX座標値、Y座標値、Z座標値の最大値、最小値、平均値等を算出する(ステップS501)。そして、点群情報処理ブロック73は、X座標値の最大値と最小値の差に相当するX長、又は、Y座標値の最大値と最小値の差に相当するY長が所定の閾値より大きいセグメントが存在するか否か判定する(ステップS502)。この閾値は、例えば、検出すべき障害物(前方車両を含む)の想定される横幅の長さの最大値に相当する値であり、メモリ8に予め記憶される。
そして、点群情報処理ブロック73は、X長又はY長が所定の閾値より大きいセグメントが存在する場合(ステップS502;Yes)、該当するセグメントを構成する各計測点の現フレーム及び前フレームの前方車両フラグFvを0にセットする(ステップS503)。一方、点群情報処理ブロック73は、X長又はY長が所定の閾値より大きいセグメントが存在しない場合(ステップS502;No)、ステップS504へ処理を進める。
次に、点群情報処理ブロック73は、ステップS504において、前方車両セグメントが存在するか否か判定する(ステップS504)。この場合、例えば、点群情報処理ブロック73は、前方車両セグメントラベルLvが0以外に設定された計測点を含むセグメントが存在する場合、前方車両セグメントが存在すると判定する。そして、点群情報処理ブロック73は、前方車両セグメントが存在する場合(ステップS504;Yes)、幅が閾値より大きい前方車両セグメントが存在するか否か判定する(ステップS505)。この場合、点群情報処理ブロック73は、例えば、前方車両セグメントのY座標の最小値と最大値の差が、想定され得る車幅に相当する閾値より大きいか否か判定する。そして、点群情報処理ブロック73は、幅が閾値より大きい前方車両セグメントが存在する場合(ステップS505;Yes)、該当する前方車両セグメントについて、端に位置する計測点をノイズデータとみなす(ステップS506)。例えば、点群情報処理ブロック73は、前方車両セグメントのY座標の最小値と最大値を構成する計測点をノイズデータとみなす処理を、前方車両セグメントのY座標の最小値と最大値の差が閾値以下になるまで継続する。これにより、前方車両セグメントに付加されたノイズデータを好適に除去することができる。一方、点群情報処理ブロック73は、幅が閾値以下の場合(ステップS505;No)、ステップS507へ処理を進める。
次に、点群情報処理ブロック73は、10mより手前(即ちX座標値が10m未満)に存在し、かつ、セグメントを構成する計測点の総点数が5個未満のセグメントが存在するか否か判定する(ステップS507)。なお、ここでの「5個」及び「10m」は、一例であり、夫々異なる値に設定されてもよい。そして、点群情報処理ブロック73は、10mより手前に存在し、かつ、セグメントを構成する計測点の総点数が5個未満のセグメントが存在する場合(ステップS507;Yes)、対象のセグメントを構成する各計測点の現フレーム及び前フレームの前方車両フラグFvを0にセットする(ステップS508)。これにより、点群情報処理ブロック73は、セグメントと判定されたノイズデータの塊を好適に除去することができる。一方、点群情報処理ブロック73は、セグメントを構成する計測点の総点数が5個未満のセグメントが存在しない場合(ステップS507;No)、ステップS509へ処理を進める。
次に、点群情報処理ブロック73は、セグメントを構成する計測点の総点数が2個未満のセグメントが存在するか否か判定する(ステップS509)。そして、セグメントを構成する計測点の総点数が2個未満のセグメントが存在する場合(ステップS507;Yes)、点群情報処理ブロック73は、対象のセグメントを構成する各計測点の現フレーム及び前フレームの前方車両フラグFvを0にセットする(ステップS510)。これにより、点群情報処理ブロック73は、明らかにノイズと推定されるセグメントを好適に除去することができる。なお、ステップS509の「2個」は、一例であり、異なる値に設定されてもよい。一方、点群情報処理ブロック73は、セグメントを構成する計測点の総点数が2個未満のセグメントが存在しない場合(ステップS509;No)、ループLへ処理を進める。
次に、点群情報処理ブロック73は、現フレームの全計測点の各々について順次注目点とみなし、ステップS511及びステップS512から構成されるループLの処理を開始する。まず、点群情報処理ブロック73は、前方車両フラグFvが1であるか否か判定する(ステップS511)。そして、点群情報処理ブロック73は、前方車両フラグFvが1である場合(ステップS511;Yes)、注目点のXYZ座標値を、時刻情報及び前方車両フラグFvと対応付けてメモリ8に保持する(ステップS512)。一方、点群情報処理ブロック73は、前方車両フラグFvが0である場合(ステップS511;No)、現在の注目点に関するループLの処理を終了する。
第2実施例によれば、ライダ100は、障害物検出処理では検出が困難な遠方の前方車両や反射率が低い色を有する前方車両についても、前方車両検出処理において好適に検出することができる。
<変形例>
次に、第1実施例及び第2実施例に好適に適用可能な各変形例について説明する。以下の変形例は、任意に組み合わせて上記の第1実施例又は第2実施例に適用してもよい。
(第1変形例)
ライダ100の構成は、図1に示す構成に限定されない。例えば、制御部7の点群情報処理ブロック73及び点群情報処理ブロック73に相当する機能を、ライダ100とは別の装置が有してもよい。
図15は、第1変形例に係るライダシステムの構成図である。ライダシステムは、ライダ100Xと、情報処理装置200とを有する。この場合、ライダ100Xは、点群情報生成ブロック72が生成する点群情報を情報処理装置200へ供給する。
情報処理装置200は、制御部7Aと、メモリ8とを有する。メモリ8には、制御部7Aが処理を実行するために必要な情報が記憶されている。制御部7Aは、機能的には、点群情報取得ブロック72Aと、点群情報処理ブロック73とを有する。点群情報取得ブロック72Aは、ライダ100Xの点群情報生成ブロック72が生成する点群情報を受信し、受信した点群情報を点群情報処理ブロック73に供給する。点群情報処理ブロック73は、点群情報取得ブロック72Aから供給される点群情報に対し、第1実施例又は第2実施例の点群情報処理ブロック73と同一の処理を実行する。
なお、情報処理装置200は、運転支援装置により実現されてもよい。また、前方車両検出処理等において必要なパラメータの情報は、情報処理装置200が参照可能なメモリを有する他の装置により記憶されてもよい。本変形例の構成によれば、情報処理装置200は、ライダ100Xが生成する点群情報に基づき、遠方に存在する前方車両や反射率が低い色を有する前方車両を好適に検出することができる。
(第2変形例)
ライダ100は、車両に搭載される態様に限らず、所定の場所において固定されていてもよい。
図16(A)、(B)は、固定されたライダ100が車両を検出する例を表す図である。図16(A)は、駐車場などにおいて、後方に1組のリフレクタ10Aが設けられた遠方に存在する遠方車両11Aを検出する状態を表し、図16(B)は、駐車場などにおいて、後方に1組のリフレクタ10Bが設けられた黒色車両11Bを検出する状態を表している。
この場合においても、ライダ100は、第1実施例又は第2実施例に基づく処理を実行することで、遠方車両11Aの各々に設けられたリフレクタ10Aに基づき、遠方に存在する遠方車両11Aを検出する。同様に、ライダ100は、第1実施例又は第2実施例に基づく処理を実行することで、黒色車両11Bの各々に設けられたリフレクタ10Bに基づき、反射率が低い黒色車両11Bについても検出する。
このように、ライダ100は、車両に設けられる必要はなく、かつ、前方車両の検出処理に限らず任意の車両検出の処理に用いられてもよい。
(第3変形例)
ライダ100は、自車両の前方以外の任意の方向を検出範囲とするように設置されてもよい。
図17は、第3変形例におけるライダ100が搭載された車両周辺の俯瞰図を示す。図17では、ライダ100は、車両の後方を検出範囲とするように車両後方に設けられている。この場合、ライダ100の検出範囲には、1組のリフレクタ10Cが後方に設けられた車両11Cが存在している。即ち、この場合、ライダ100を搭載する車両と車両11Cとの少なくとも一方が移動することでこれらの車両が相対的に接近することにより、車両11Cのリフレクタ10Cがライダ100の検出範囲内に存在している。
この場合においても、ライダ100は、第1実施例又は第2実施例に基づく処理を実行することで、車両11Cの各々に設けられたリフレクタ10Cに基づき、後方に存在する車両11Cを好適に検出することができる。
このように、ライダ100は、車両の前方方向を検出する必要はなく、任意の方向に存在する車両検出の処理に用いられてもよい。
(第4変形例)
リフレクタ点検出処理において、点群情報処理ブロック73は、同一走査線上に存在するか否かによらず、地面に対して水平方向に所定の条件を満たして存在する計測点の対を、リフレクタ点として検出してもよい。
図18(A)、(B)は、図4(A)~(D)の計測点列の例に加えて、本変形例において新たに遠距離検出条件を満たすと判定される計測点列の例を示す。
図18(A)、(B)では、隣接する走査線上に、夫々リフレクタ点の候補である高反射計測点が1個ずつ存在する。これらの場合であっても、点群情報処理ブロック73は、遠距離検出条件を満たすと判定する。
ここで、本変形例について補足説明する。ライダ100の設置条件(傾きを含む)及び検出車両の傾きの影響により、リフレクタの組が地面(道路又は駐車場等)に対して水平方向に存在するものの、同一走査線上にリフレクタ点が存在しない場合がある。以上を勘案し、本変形例では、図18(A)、(B)に示すような同一走査線上ではない計測点列についても遠距離検出条件を満たす例として追加する。これにより、ライダ100は、ライダ100の傾きや検出車両の傾きに影響を受けることなく、好適にリフレクタ点を検出することができる。なお、近距離検出条件及び遠距離非検出条件についても同様に、点群情報処理ブロック73は、同一走査線上にリフレクタの組が存在しない場合を考慮した条件となるように設定する。
(第5変形例)
リフレクタ点検出処理において、点群情報処理ブロック73は、高反射計測点及び低反射計測点を選定する場合に、閾値(第1閾値及び第2閾値)を用いて選定を行う代わりに、反射強度の相対値による選定を行ってもよい。
一例として、図4(A)に示す3個の計測点に対する高反射計測点の判定処理について説明する。ここでは、左の計測点の反射強度を「Intensity1」、中央の計測点の反射強度を「Intensity2」、右の計測点の反射強度を「Intensity3」とする。この場合、例えば、点群情報処理ブロック73は、
Intensity1 > (Intensity2 × 3)
Intensity3 > (Intensity2 × 3)
を満たした場合(即ち中央の計測点よりも反射強度が3倍より大きい比率の場合)に、左の計測点と右の計測点が中央の計測点に対して相対的に反射強度値が大きいと判定し、これらの計測点をリフレクタ点の候補である高反射計測点とみなす。なお、上記の右辺の式における比率に関するパラメータ「3」は一例であり、実際には事前に定められた適合値に設定される。このように、点群情報処理ブロック73は、隣接する計測点同士の反射強度の比率に基づいて、高反射計測点及びそれ以外の低反射強度点を好適に選定することができる。
(第6変形例)
ライダ100がリフレクタ点として検出する対象となるリフレクタは、車両の後部に設けられたリフレクタに限られず、後方以外(例えば側部又は前部)に複数設けられたリフレクタに対するリフレクタ点を検出対象としてもよい。この場合、ライダ100は、側部等に複数のリフレクタが設けられた大型車両等を好適に検出することができる。
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。すなわち、本願発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。また、引用した上記の特許文献等の各開示は、本書に引用をもって繰り込むものとする。