(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-04-28
(45)【発行日】2025-05-09
(54)【発明の名称】物体認識装置および物体認識方法
(51)【国際特許分類】
G01S 17/931 20200101AFI20250430BHJP
【FI】
G01S17/931
(21)【出願番号】P 2021038982
(22)【出願日】2021-03-11
【審査請求日】2023-12-11
(73)【特許権者】
【識別番号】000004260
【氏名又は名称】株式会社デンソー
(74)【代理人】
【識別番号】110000028
【氏名又は名称】弁理士法人明成国際特許事務所
(72)【発明者】
【氏名】秋山 啓子
(72)【発明者】
【氏名】▲高▼棹 大輔
【審査官】佐藤 宙子
(56)【参考文献】
【文献】特開2012-173230(JP,A)
【文献】特開2010-027016(JP,A)
【文献】特開平03-228184(JP,A)
【文献】特開2018-040642(JP,A)
【文献】特開2016-148880(JP,A)
【文献】特開2007-114057(JP,A)
【文献】特許第7310658(JP,B2)
(58)【調査した分野】(Int.Cl.,DB名)
G01S 7/00- 7/64
G01S 13/00-17/95
G08G 1/16
(57)【特許請求の範囲】
【請求項1】
物体認識装置(10)であって、
前記物体認識装置の周囲に存在する物体(Ob1、Ob2、Ob3、Ob4)を表す複数の検出点(KP)により構成される検出点群を取得する検出点群取得部(22)と、
前記検出点群から前記物体の輪郭点(RP)を抽出して輪郭点群を取得する輪郭点群取得部(23)と、
前記輪郭点群から代表点(DP)を抽出することにより代表点群を取得する代表点群取得部(24)と、
前記代表点群から選択された3点を第1点(P1)、第2点(P2)および第3点(P3)とし、前記第1点と前記第2点とのベクトルである第1ベクトル(V1)と、前記第2点と前記第3点とのベクトルである第2ベクトル(V2)との間の角度であるベクトル間角度(θ)を用いて、前記輪郭点群に逆凸形状(ITs)が含まれるか否かを判定する逆凸判定部(25)と、
前記逆凸形状が含まれると判定された場合に、
前記検出点群を前記物体認識装置の周囲に存在する前記物体のうちの直線状の物体である壁を表す
第1検出点群
(G1)と、前記壁とは異なる物体であって前記壁に近接して存在している異なる物体を表す
第2検出点群
(G2)と、に分離する物体認識部(26)と、
を備える、物体認識装置。
【請求項2】
請求項1に記載の物体認識装置であって、
前記代表点群取得部は、
前記輪郭点群に含まれる複数の前記輪郭点を順次基準点(SP)に設定し、前記基準点から予め定められた距離(d1)以上の前記輪郭点を前記代表点として順次抽出して前記代表点群を取得する、
物体認識装置。
【請求項3】
請求項2に記載の物体認識装置であって、
前記代表点群取得部は、前記基準点から前記予め定められた距離以上の点であって、前記ベクトル間角度が最大となる点を前記代表点として抽出する、
物体認識装置。
【請求項4】
請求項2から請求項3までのいずれか一項に記載の物体認識装置であって、
前記逆凸判定部は、
前記代表点群に含まれる複数の前記代表点を順次前記第1点に設定して前記ベクトル間角度を算出し、
各前記ベクトル間角度のうち、予め定められた角度以上であるベクトル間角度が検出された場合に、前記逆凸形状が含まれると判定する、
物体認識装置。
【請求項5】
請求項2から請求項4までのいずれか一項に記載の物体認識装置であって、
各前記第2点を逆凸中心点として複数の前記逆凸中心点により構成される逆凸中心点群を用いて、前記検出点群を前記
第1検出点群(G1)と、前記
第2検出点群(G2)とに分離するための分離直線を決定する分離直線決定部(27)を、さらに備える、
物体認識装置。
【請求項6】
請求項5に記載の物体認識装置であって、
前記分離直線決定部は、
前記逆凸中心点群から順次2点を選択し、
選択された前記2点を通る直線と、前記各逆凸中心点との残差の和を算出し、
前記残差の和を求めるために用いた点数で、前記残差の和を除した残差平均値が最も小さな前記直線を前記分離直線として決定する、
物体認識装置。
【請求項7】
物体認識装置が実行する物体認識方法であって、
前記物体認識装置の周囲に存在する物体(Ob1、Ob2、Ob3、Ob4)を表す複数の検出点(KP)により構成される検出点群を取得する工程と、
前記検出点群から前記物体の輪郭点(RP)を抽出して輪郭点群を取得する工程と、
前記輪郭点群から代表点(DP)を抽出することにより代表点群を取得する工程と、
前記代表点群から選択された3点を第1点(P1)、第2点(P2)および第3点(P3)とし、前記第1点と前記第2点とのベクトルである第1ベクトル(V1)と、前記第2点と前記第3点とのベクトルである第2ベクトル(V2)との間の角度であるベクトル間角度(θ)を用いて、前記輪郭点群に逆凸形状(ITs)が含まれるか否かを判定する工程と、
前記逆凸形状が含まれると判定された場合に、
前記検出点群を前記物体認識装置の周囲に存在する前記物体のうちの直線状の物体である壁を表す
第1検出点群
(G1)と、前記壁とは異なる物体であって前記壁に近接して存在している異なる物体を表す
第2検出点群
(G2)と、に分離する工程と、
を有する、物体認識方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、物体を認識する技術に関する。
【背景技術】
【0002】
車両に搭載されているライダー(LiDAR)等の検出結果を利用して、車両の周囲に存在する物体を認識する物体認識装置が知られている。例えば、特許文献1には、クラスタを作成する際の閾値を動的に変化させてクラスタの候補を複数作成し、作成されたクラスタの候補と、過去に作成されたクラスタとを比較して、形状が最も近い組合せとなるクラスタを一つの物体として認識する技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1に記載の技術は、過去に作成されたクラスタの履歴が必要になる。このため、初回の検出タイミングにおいては、クラスタの履歴が存在しないので、物体の検出精度が低下するおそれがある。したがって、物体認識装置において、互いに近接して存在する複数の物体を精度よく区分する技術が望まれる。
【課題を解決するための手段】
【0005】
本開示の一実施形態によれば、物体認識装置(10)が提供される。この物体認識装置は、前記物体認識装置の周囲に存在する物体(Ob1、Ob2、Ob3、Ob4)を表す複数の検出点(KP)により構成される検出点群を取得する検出点群取得部(22)と、前記検出点群から前記物体の輪郭点(RP)を抽出して輪郭点群を取得する輪郭点群取得部(23)と、前記輪郭点群から代表点(DP)を抽出することにより代表点群を取得する代表点群取得部(24)と、前記代表点群から選択された3点を第1点(P1)、第2点(P2)および第3点(P3)とし、前記第1点と前記第2点とのベクトルである第1ベクトル(V1)と、前記第2点と前記第3点とのベクトルである第2ベクトル(V2)との間の角度であるベクトル間角度(θ)を用いて、前記輪郭点群に逆凸形状(ITs)が含まれるか否かを判定する逆凸判定部(25)と、前記逆凸形状が含まれると判定された場合に、前記検出点群を前記物体認識装置の周囲に存在する前記物体のうちの直線状の物体である壁を表す第1検出点群(G1)と、前記壁とは異なる物体であって前記壁に近接して存在している異なる物体を表す第2検出点群(G2)と、に分離する物体認識部(26)と、を備える。
【0006】
この形態の物体認識装置によれば、代表点群から選択された3点を第1点、第2点および第3点とし、第1点と第2点とのベクトルである第1ベクトルと、第2点と第3点とのベクトルである第2ベクトルとのベクトル間角度を用いて、輪郭点群に逆凸形状が含まれるか否かを判定し、逆凸形状が含まれると判定された場合に、直線状の物体と、直線状の物体とは異なる物体とが互いに近接して存在していると認識するので、互いに近接して存在する複数の物体を精度よく区分できる。
【0007】
本開示は、種々の形態で実現することも可能である。例えば、物体認識方法、測距装置、測距方法、これらの装置や方法を実現するためのコンピュータプログラム、かかるコンピュータプログラムを記憶した記憶媒体等の形態で実現することができる。
【図面の簡単な説明】
【0008】
【
図1】本開示の一実施形態としての物体認識装置を搭載した車両の概略構成を示す説明図。
【
図2】物体認識装置の機能的構成を示すブロック図。
【
図3】物体認識処理が実行される場面の一例を模式的に示す説明図。
【
図6】物体認識処理の処理手順を示すフローチャート。
【
図7】輪郭点群が取得される様子を模式的に示す説明図。
【
図8】代表点の取得方法の一例を模式的に示す説明図。
【
図9】代表点の取得方法の他の一例を模式的に示す説明図。
【
図10】代表点群取得処理の処理手順を示すフローチャート。
【
図11】代表点群が取得される様子を模式的に示す説明図。
【
図12】逆凸判定処理の処理手順を示すフローチャート。
【
図13】逆凸判定処理が実行される様子を模式的に示す説明図。
【
図15】分離直線決定処理の処理手順を示すフローチャート。
【
図16】分離直線決定処理が実行される様子を模式的に示す説明図。
【
図17】代表点の取得方法の他の一例を模式的に示す説明図。
【発明を実施するための形態】
【0009】
A1.実施形態:
以下、物体認識装置および物体認識方法について説明する。
図1に示すように、本実施形態の物体認識装置10は、車両100に搭載され、車両100の前方の周囲に存在する物体、例えば、他の車両や歩行者や建物等を検出する。本実施形態では、物体認識装置10は、LiDAR(Light Detection And Ranging)により構成されている。物体認識装置10は、照射光Lzを照射して、物体からの反射光を受光する。
図1では、照射光Lzの射出中心位置を原点とし、車両100の前方方向をY軸とし、原点を通り車両100の幅方向左から右の方向をX軸とし、原点を通り鉛直情報をZ軸として表している。
【0010】
照射光Lzは、Z軸方向に縦長の光であり、1回の照射により、縦長の所定範囲Arに照射される。また、照射光Lzは、水平方向に対して一次元走査により所定の測定範囲MR全体に照射される。照射光Lzは、測定範囲MRにおいて物体認識装置10の分解能に応じた角度で照射される。
【0011】
物体認識装置10は、測定範囲MRにおいて照射光Lzの反射光によって特定される物体を表す複数の検出点から構成される検出点群を取得する。検出点は、反射光によって特定される物体の少なくとも一部が存在し得る位置を示す点である。また、物体認識装置10は、照射光Lzを照射してから反射光を受光するまでの時間、すなわち、光の飛行時間TOF(Time of Flight)を測定することで、物体までの距離を検出する。物体認識装置10は、取得した検出点群に対してクラスタリングを行って、検出点群を複数のクラスタに分類することにより、物体を区分する。
【0012】
図2に示すように、物体認識装置10は、CPU20と、メモリ30と、入出力インターフェース11とを備える。CPU20、メモリ30、および入出力インターフェース11は、バス15を介して双方向に通信可能に接続されている。メモリ30は、ROM、RAM、およびEEPROMを含む。入出力インターフェース11には、発光制御部41および受光制御部51がそれぞれ制御信号線を介して接続されている。発光制御部41に対しては発光制御信号が送信され、受光制御部51に対しては受光制御信号が送信され、受光制御部51からは入射光強度信号が受信される。
【0013】
発光制御部41は、入出力インターフェース11を介して制御部21から入力される発光制御信号に応じたタイミングで照射光Lzを照射するよう発光素子42を駆動する。発光素子42は、例えば、赤外レーザダイオードであり、照射光Lzとして赤外レーザ光を出射する。発光素子42は1つでもよく複数であってもよい。
【0014】
受光制御部51は、入出力インターフェース11を介して制御部21から物体検出のための受光処理を指示する受光制御信号が入力され、受光素子52に入射された入射光量または入射光強度を示す入射光強度信号を出力する。受光素子52は、平板状の光センサに複数の画素が縦横方向に配列された構成を有し、例えば、SPAD(Single Photon Avalanche Diode)、その他のフォトダイオードにより構成される。受光制御部51は、受光素子52に入射された入射光量または入射光強度に応じて発生する電流を電圧に変換し、例えば、輝度値や明度を示す画素値を入射光強度信号として制御部21へ出力する。
【0015】
CPU20は、メモリ30に記憶されたプログラムを展開して実行することにより、制御部21、検出点群取得部22、輪郭点群取得部23、代表点群取得部24、逆凸判定部25、物体認識部26、および分離直線決定部27として機能する。
【0016】
制御部21は、物体認識装置10全体の動作を制御する。
【0017】
検出点群取得部22は、入射光強度信号により示される画素値から、物体の1または複数の代表位置を示す検出点または検出点群を取得する。検出点は、3次元座標(X、Y、Z)として取得される。なお、検出点は、3次元座標に代えて、2次元座標(X、Y)で表されてもよい。輪郭点群取得部23は、検出点群から物体の輪郭点を抽出して、複数の輪郭点により構成される輪郭点群を取得する。代表点群取得部24は、輪郭点群から代表点を抽出して、複数の代表点から構成される代表点群を取得する。逆凸判定部25は、代表点群から3点を選択し、これらの3点を結ぶベクトルが逆凸形状であるか否かを判定する。逆凸形状については、後述する。物体認識部26は、検出点群に対してクラスタリング処理を行って、複数の検出点から一の物体を認識する。分離直線決定部27は、検出点群を、一の物体を構成する検出点群と、他の物体を構成する検出点群とに分離するための直線(以下、「分離直線」と呼ぶ)を決定する。
【0018】
A2.物体認識処理:
本実施形態では、
図3に示す走行シーンにおいて物体認識処理が実行されているとして、物体認識処理の処理手順を説明する。
図3に示すように、車両100は、道路RDを前方方向に走行している。道路RDには、直線状の壁Ob1が設置された歩道RSが設けられており、壁Ob1沿いに歩行者Ob3が前方方向に歩いている。歩道RSには、樹木Ob2およびOb4が植えられている。物体認識装置10では、後述の物体認識処理が実行されており、車両100の前方方向の周囲に存在する物体Ob1、Ob2、Ob3およびOb4が検出され得る。
【0019】
図4には、
図3に示す走行シーンにおいて取得され得る検出点群CL1を鉛直上方(+Z方向)から鳥瞰したときの一例を模式的に示している。
図4では、歩行者Ob3の近傍を拡大して示している。また、
図4では、説明の便宜上、歩行者Ob3を示す検出点KPにハッチングを付している。検出点群CL1は、第1検出点群G1と、第2検出点群G2とにより構成されている。第1検出点群G1は、壁Ob1および樹木Ob2に相当する検出点KPの集合であり、第2検出点群G2は、歩行者Ob3に相当する検出点KPの集合である。
【0020】
図3に示すように、壁Ob1および歩行者Ob3は、互いに近接して存在している。歩行者Ob3が壁Ob1とは異なる物体であると認識するためには、第2検出点群G2を、第1検出点群G1から精度よく分離する必要がある。ここで、本開示の発明者らは、例えば、壁と人といった、直線状の物体と、他の物体とが互いに近接して存在する場合、検出点群を鳥瞰したときに輪郭線に逆凸形状ITsが含まれることを見出した。具体的には、
図4に示すように、検出点群CL1の輪郭線RLにおける第1検出点群と第2検出点群G2との境界近傍には、車両100の進行方向において物体認識装置10から離れる方向側に突出する凸部を有する逆凸形状ITsが表れている。本開示の発明者らは、このような逆凸形状ITsは、複数の物体の検出点が複合している、すなわち、複数の物体が近接して存在している場合にのみ検出されることを見出した。
【0021】
図5には、単一の物体Ob5およびOb6がそれぞれ単独で存在している場合における検出点群CL2およびCL3を示している。物体Ob5を表す検出点群CL2には、物体認識装置10側に突出する凸部を有する凸形状Tsが表れている。物体Ob6を表す検出点群CL3においても同様に、物体認識装置10側に突出する凸部を有する凸形状Tsが表れている。
図4と
図5とを比較して理解できるように、凸形状Tsと逆凸形状ITsとは、凸の屈曲部の突出の向きが異なっている。凸の屈曲部は、逆凸形状ITsでは物体認識装置10から遠ざかる方向に突出しており、凸形状Tsでは物体認識装置10側に突出している。
【0022】
そこで、本実施形態の物体認識処理では、検出点群から逆凸形状ITsを検出することにより、近接する物体の境界を特定して、物体ごとの検出点群にそれぞれ分離することとしている。詳細な説明は後述するが、逆凸形状ITsを検出する際、樹木Ob2およびOb4のように検出点群の輪郭の形状がガタガタしている物体の影響を受けないようにしている。なお、以下の説明では、
図3に示すように、直線状の物体としてY軸に平行な壁Ob1を用いるが、本実施形態の物体認識処理は、
図5に示す物体Ob6のように、直線状の物体が物体認識装置10に対して交差して存在している場合においても適用可能である。
【0023】
図6に示す物体認識処理は、車両100の制御システムの始動時から停止時まで、または、スタートスイッチがオンされてからオフされるまで、所定の時間間隔、例えば、100ミリ秒から200ミリ秒の範囲の任意の時間にて繰り返し実行される。検出点群取得部22は、検出点群を取得する(ステップS10)。輪郭点群取得部23は、検出点群から物体の輪郭点を抽出して輪郭点群を取得する(ステップS20)。
【0024】
図7には、検出点群から輪郭点群を取得する様子を示している。
図7では、鉛直上方(+Z方向)から検出点群を鳥瞰したときの一例を示している。ステップS20では、輪郭点群取得部23は、各水平方向における所定の角度範囲ごとに検知距離が最も短い検出点KPを輪郭点RPとして抽出する。
【0025】
図6に示すように、代表点群取得部24は、輪郭点群から代表点を抽出して代表点群を取得する(ステップS30)。具体的には、代表点群取得部24は、輪郭点群から予め定められた条件にしたがって検出点KPを間引くことによって、代表点群を取得する。換言すると、代表点群は、輪郭点群のうち、予め定められた条件に合致する検出点KPが抽出されることによって構成される。本実施形態では、輪郭点間の距離が予め定められた距離以上となる輪郭点が代表点として取得される。
【0026】
図8には、上述の予め定められた距離として所定の基準値よりも大きな距離が設定されている場合における代表点群を取得する様子を示している。
図9には、上述の予め定められた距離として所定の基準値よりも小さな距離が設定されている場合における代表点群を取得する様子を示している。
図8に示すように、予め定められた距離が比較的大きい場合、代表点DPを順次結んで得られる輪郭線RL1がなめらかである。したがって、例えば、位置PS1およびPS2において逆凸形状ITsが検出されておらず、本来検出すべき逆凸形状ITsを検出できないという問題がある。これに対して、
図9に示すように、予め定められた距離が比較的小さい場合には、代表点DPを順次結んで得られる輪郭線RL2が、却ってガタガタになる。このため、例えば、位置PS3およびPS4において逆凸形状ITsが誤って検出されてしまうという問題がある。そこで、本実施形態では、後述するように、輪郭点を1点ずつずらしながら代表点を抽出して、逆凸形状ITsを精度よく検出している。
【0027】
図10に示すように、代表点群取得部24は、基準点を設定する(ステップS305)。具体的には、代表点群取得部24は、輪郭点群を構成する各輪郭点を予め定められた順番に1点ずつ基準点として設定する。例えば、代表点群取得部24は、輪郭点群において-Y方向の端点に相当する輪郭点RPから+Y方向に向かって順番に基準点を設定する。
【0028】
代表点群取得部24は、基準点から予め定められた距離以上の輪郭点RPを代表点DPとして取得する(ステップS310)。具体的には、代表点群取得部24は、輪郭点群に含まれる全ての輪郭点RPに対して、基準点から予め定められた距離以上の点を順次代表点として特定し、複数の代表点の集合である代表点群を取得する。
【0029】
代表点群取得部24は、輪郭点群を構成する全ての輪郭点RPを基準点に設定したか否かを判定する(ステップS315)。全ての輪郭点RPを基準点に設定していないと判定された場合(ステップS315:NO)、代表点群取得部24は、上述のステップS305を実行して、現在基準点に設定されている輪郭点RPに隣接する輪郭点RPを基準点に設定する。上述のステップS315において全ての輪郭点RPを基準点に設定したと判定された場合(ステップS315:YES)、代表点群取得処理は終了する。
【0030】
図11には、代表点群を抽出する様子を示している。代表点群1は輪郭点rp1を基準点SPとした場合に取得される代表点群であり、代表点群2は輪郭点rp1に隣接する輪郭点rp2を基準点SPとした場合に取得される代表点群であり、代表点群3は輪郭点rp2に隣接する輪郭点rp3を基準点SPとした場合に取得される代表点群である。
【0031】
代表点群1に示すように、ステップS310では、まず、代表点群取得部24は、基準点SPである輪郭点rp1から予め定められた距離 以上の輪郭点を代表点Dp11として抽出する。本実施形態において「予め定められた距離d1」は、例えば、2メートルである。なお、距離d1は、2メートルに代えて、0.5メートルから5メートルの範囲の任意の距離としてもよい。次に、代表点群取得部24は、直前に抽出された代表点Dp11から距離d1以上の輪郭点を代表点Dp12として抽出する。同様にして、代表点群取得部24は、直前に抽出された代表点から距離d1以上の輪郭点を順次代表点Dp13およびDp14として抽出する。
【0032】
代表点群2に示すように、上述のステップS305において輪郭点rp2が基準点SPに設定されて上述のステップS310が実行されると、代表点群取得部24は、基準点SPである輪郭点rp2から距離d1以上の輪郭点を代表点Dp21として抽出する。そして、直前に抽出された代表点Dp21から距離d1以上の輪郭点が順次代表点Dp22、Dp23およびDp24として抽出する。
【0033】
代表点群3においても同様に、基準点SPである輪郭点rp3から距離d1以上の輪郭点が代表点Dp31として抽出され、代表点Dp31から距離d1以上の輪郭点が順次代表点Dp31、Dp32およびDp33して抽出される。なお、代表点として抽出された輪郭点、例えば、代表点群1では、代表点Dp11が基準点SPに設定される場合、抽出され得る代表点の組み合わせは、過去に抽出された代表点群と同じになる。このため、代表点群取得部24は、
図10に示す、ステップS305の実行後であってステップS310の実行前に、抽出され得る代表点の組み合わせが、前回までに抽出された代表点群と同じになるか否かを判定し、組み合わせが同じになると判定された場合には、ステップS310を省略してもよい。
【0034】
図6に示すように、逆凸判定部25は、逆凸判定を行う(ステップS40)。
【0035】
図12に示すように、逆凸判定部25は、代表点群の端点を始点に設定する(ステップS405)。逆凸判定部25は、代表点3点を選択する(ステップS410)。逆凸判定部25は、ベクトル間角度を算出する(ステップS415)。具体的には、
図14に示すように、逆凸判定部25は、第1点P1と第2点P2とのベクトルである第1ベクトルV1と、第2点P2と第3点P3とのベクトルである第2ベクトルV2との間の角度(以下、「ベクトル間角度」と呼ぶ)θを、下記式(1)を用いて算出する。
【0036】
【0037】
図12に示すように、逆凸判定部25は、逆凸の向きであるか否かを判定する(ステップS420)。具体的には、逆凸判定部25は、算出されたベクトル間角度の符号を用いて、第1ベクトルV1および第2ベクトルV2が逆凸形状ITsを構成するか否かを判定する。より具体的には、まず、逆凸判定部25は、第1ベクトルV1と、第2点P2と物体認識装置10とのベクトルである第3ベクトルV3との間の角度(以下、「基準ベクトル間角度」と呼ぶ)θrefを、下記式(2)を用いて算出する。
【0038】
【0039】
次に、逆凸判定部25は、ベクトル間角度θの符号と、基準ベクトル間角度θrefの符号とが同じであるか否かを判定する。両符号が同じである場合、逆凸判定部25は、逆凸の向きであると判定し(ステップS420:YES)、逆凸レベルをカウントアップする(ステップS425)。本実施形態において、「逆凸レベル」とは、代表点群が逆凸形状ITsを含んでいることの確からしさを示す度合いを意味する。逆凸判定部25は、上述のステップS410において選択された3点P1、P2およびP3を逆凸候補点としてメモリ30に記憶する(ステップS430)。逆凸判定部25は、ベクトル間角度θが確定閾値以上であるか否かを判定する(ステップS435)。本実施形態において、確定閾値は、例えば、60度である。ベクトル間角度θが確定閾値以上であると判定された場合(ステップS435:YES)、逆凸判定部25は、逆凸確定フラグをTRUEに設定する(ステップS440)。逆凸判定部25は、上述のステップS410において選択された3点P1、P2およびP3を逆凸点としてメモリ30に記憶する(ステップS445)。
【0040】
逆凸判定部25は、代表点群において全ての代表点を始点に設定したか否かを判定する(ステップS450)。全ての代表点を始点に設定していないと判定された場合(ステップS450:NO)、逆凸判定部25は、位相をずらす(ステップS475)。具体的には、逆凸判定部25は、上述のステップS410において代表点3点を選択する際に始点となる第1点P1を、第1点P1に隣接する代表点に設定する。その後、上述のステップS410からステップS475が実行される。
【0041】
上述のステップS420においてベクトル間角度θの符号と基準ベクトル間角度θrefの符号とが同じでない場合、逆凸判定部25は、逆凸の向きではないと判定し(ステップS420:NO)、逆凸判定部25は、逆凸レベルをカウントダウンする(ステップS455)。逆凸判定部25は、逆凸レベルが逆凸レベル下限値より小さいか否かを判定する(ステップS460)。逆凸レベルが逆凸レベル下限値以上であると判定された場合(ステップS460:NO)、上述のステップS475が実行される。他方、逆凸レベルが逆凸レベル下限値より小さいと判定された場合(ステップS460:YES)、逆凸判定部25は、逆凸確定フラグをFALSEに設定する(ステップS465)。逆凸判定部25は、逆凸点をリセットする(ステップS470)。具体的には、逆凸判定部25は、上述のステップS445においてメモリ30に記憶された逆凸点を消去する。ステップS470の実行後、上述のステップS450が実行される。上述のステップS450において全ての代表点を始点に設定したと判定された場合(ステップS450:YES)、逆凸判定処理は終了する。
【0042】
図13に示す位相1は、端点である代表点P1が始点に設定されて、代表点P1から所定距離d1以上の代表点P2が第2点に選択され、第2点P2から所定距離d1以上の代表点P3が第3点に選択されている。第1点P1と第2点P2とを結ぶ第1ベクトルV1と、第2点P2と第3点P3とを結ぶ第2ベクトルV2とのベクトル間角度として角度θが算出されている。位相2は、位相1の始点に隣接する代表点が始点に設定され、3点P1、P2およびP3が選択されている。位相2においては、位相1と比べて、逆凸の向きが反対方向となっている。このため、逆凸レベルがカウントダウンされる。位相3は、始点がさらに+Y方向に1つ移動し、3点P1、P2およびP3が選択されている。位相3では、逆凸の向きに変化したものの、ベクトル間角度θは、確定閾値よりも小さい。このため、位相3で選択された3点P1、P2およびP3は、逆凸候補点として記憶される。位相4では、ベクトル間角度θが逆凸方向により大きくなっている。このため、逆凸レベルがカウントアップされて、選択された3点P1、P2およびP3が逆凸候補点として記憶される。位相5では、位相4に比べて、ベクトル間角度θが逆凸方向により大きくなり、確定閾値以上となっている。このため、選択された3点P1、P2およびP3が逆凸点として記憶される。その後、始点の位置を1点ずつ移動されて、ベクトル間角度θの算出、逆凸の向きの判定およびベクトル間角度θの判定が実行される。
【0043】
図6に示すように、逆凸判定部25は、逆凸形状ITsが検出されたか否かを判定する(ステップS50)。逆凸形状ITsが検出されたと判定された場合(ステップS50:YES)、分離直線決定部27は、分離直線を決定する(ステップS60)。具体的には、分離直線決定部27は、逆凸判定処理において位相をずらしていくことによって得られた逆凸点を用いて分離直線を決定する。より具体的には、分離直線決定部27は、逆凸点の中心点である第2点P2により構成される逆凸中心点群を用いて分離直線を決定する。
【0044】
図15に示すように、分離直線決定部27は、逆凸中心点群から2点を選択する(ステップS605)。具体的には、分離直線決定部27は、逆凸中心点群を構成する各逆凸中心点を所定の順番に2点選択する。以降の説明では、ステップS605において選択された2点を「選択点」とも呼ぶ。
【0045】
図16には、分離直線決定処理が実行される様子を示している。
図16では、説明の便宜上、逆凸中心点群は、点C1、C2、C3、C4、C5、C6、C7、C8、C9、C10、C11およびC12により構成されているとする。
図16の左側は、点C1およびC2が選択点である場合を示し、
図12の中央は、点C1およびC3が選択点である場合を示し、
図12の右側は、点C1およびC4が選択点である場合を示している。
【0046】
図15に示すように、分離直線決定部27は、上述のステップS605において選択された2点を通る直線を算出する(ステップS610)。
図16に示す例では、直線SL1、直線SL2および直線SL3が算出される。
【0047】
図15に示すように、分離直線決定部27は、各逆凸中心点の残差を算出する(ステップS615)。具体的には、分離直線決定部27は、ステップS610において算出された直線を示す回帰式と、各逆凸中心点C1、C2、C3、C4、C5、C6、C7、C8、C9、C10、C11およびC12との差を算出する。分離直線決定部27は、すべての残差が閾値以下であるか否かを判定する(ステップS620)。具体的には、分離直線決定部27は、各残差がいずれも閾値以下であるか否かを判定する。閾値は、例えば、1メートルである。
【0048】
すべての残差が閾値以下であると判定された場合(ステップS620:YES)、分離直線決定部27は、各残差の和と、残差の和を求めるのに用いた点数(残差和点数)を算出する(ステップS625)。上述のステップS620において少なくとも1つ以上の残差が閾値より大きいと判定された場合(ステップS620:NO)、分離直線決定部27は、残差が閾値以上となる残差を除いて各残差の和と、残差の和を求めるのに用いた点数(残差和点数)を算出する(ステップS630)。具体的には、分離直線決定部27は、各直線SL1、SL2およびSL3から大きく離れた逆凸中心点(以下、「外れ点」とも呼ぶ)を除いた上で、残りの逆凸中心点の残差の和と、残差和点数を算出する。
【0049】
図16に示すように、直線SL1では、点C11が外れ点に該当し、直線SL2では、点C9が外れ点に該当し、直線SL3では、点C9が外れ点に該当する。ステップS630では、これらの外れ点を除いた上で、各直線SL1、SL2およびSL3において残差の和が算出される。したがって、例えば、
図16の左側に示す例では、点C1、C2、C3、C4、C5、C6、C7、C8、C9、C10およびC12の各残差の和が算出される。一般的な最小二乗法においては、外れ点の影響を受けて回帰直線が大きく変動することがあるため、外れ点を除外することにより、分離直線を精度よく決定することができる。
【0050】
図15に示すように、ステップS625の実行後、または、ステップS630の実行後、分離直線決定部27は、逆凸中心点群における全ての点の組み合わせを選択点として選択したか否かを判定する(ステップS635)。全ての点の組み合わせを選択していないと判定された場合(ステップS635:NO)、上述のステップS605が実行される。他方、全ての点の組み合わせを選択したと判定された場合(ステップS635:YES)、分離直線決定部27は、残差の和を残差和点数で割ることにより求めた残差平均値が最も小さい直線を分離直線として決定する(ステップS640)。
図16に示す例では、直線SL3における残差平均値は、直線SL1における残差平均値よりも小さく、また、直線SL2における残差平均値よりも小さいため、直線SL3が分離直線に決定される。ステップS640の実行後、分離直線決定処理は終了し、
図6に示すステップS70が実行される。
【0051】
図6に示すように、物体認識部26は、検出点群を分離する(ステップS70)。具体的には、物体認識部26は、分離直線SLから予め定められた距離以上離れた検出点群を別の物体として認識する。予め定められた距離は、例えば、0.3メートルである。ステップS70の実行後、または、上述のステップS50において逆凸形状ITsが検出されていないと判定された場合(ステップS50:NO)、物体認識処理は終了する。
【0052】
以上の構成を有する本実施形態の物体認識装置10によれば、代表点群から選択された3点を第1点P1、第2点P2および第3点P3とし、第1点P1と第2点P2とのベクトルである第1ベクトルV1と、第2点P2と第3点P3とのベクトルである第2ベクトルV2とのベクトル間角度θを用いて、輪郭点群に逆凸形状ITsが含まれるか否かを判定し、逆凸形状ITsが含まれると判定された場合に、直線状の物体Ob1と、直線状の物体とは異なる物体Ob3とが互いに近接して存在していると認識するので、互いに近接して存在する複数の物体を精度よく区分できる。
【0053】
代表点群取得部24は、輪郭点群に含まれる複数の輪郭点RPを順次基準点SPに設定し、基準点SPから予め定められた距離d1以上の輪郭点を代表点として順次抽出して代表点群を取得するので、逆凸形状ITsの未検出および誤検出の発生を抑制できる。逆凸判定部25は、代表点群に含まれる複数の代表点を順次第1点P1に設定してベクトル間角度θを算出し、各ベクトル間角度θのうち、予め定められた角度以上であるベクトル間角度が検出された場合に、逆凸形状ITsが含まれると判定するので、逆凸形状ITsを容易に、かつ、精度よく検出できる。分離直線決定部27は、逆凸中心点群、すなわち、逆凸形状ITsにおける凸部を構成する点を用いて分離直線を決定するので、代表点群における全ての点を用いて分離直線を決定する構成に比べて、分離直線を精度よく決定できる。分離直線決定部27は、逆凸中心点群から順次2点を選択し、選択された2点を通る直線SL1、SL2およびSL3と、各逆凸中心点との残差の和を算出し、残差の和が最も小さな直線を分離直線として決定するので、一般的な最小二乗法を用いて分離直線を決定する構成に比べて、分離直線を精度よく決定できる。
【0054】
B.他の実施形態:
(1)上記実施形態において、代表点群取得部24は、基準点SPから距離d1以上の点が複数存在する場合に、ベクトル間角度θが最大となる点を代表点として抽出してもよい。
【0055】
図17では、代表点Dp41およびDp42が抽出された後、次の代表点を探索する状況を示している。まず、代表点群取得部24は、ベクトル間角度θが最大となる点を探索する。具体的には、代表点Dp41と代表点Dp42とを結ぶベクトルV1と、代表点Dp42と代表点の候補点とを結ぶベクトルとの角度が凸方向に最大とる輪郭点を探索する。例えば、第1候補点K1の場合、ベクトルV1と、代表点Dp42と第1候補点K1とを結ぶベクトルV4との角度は逆凸方向に大きくない。これに対して、第2候補点K2の場合には、ベクトルV1と、代表点Dp42と第2候補点K2とを結ぶベクトルV5との角度は逆凸方向に大きい。このため、代表点群取得部24は、第2候補点K2を代表点として抽出する。なお、このとき、代表点Dp42により近い輪郭点を代表点とすると、逆凸判定の精度が低下するおそれがあるため、代表点Dp42と候補点K1およびK2との距離が所定距離d1以上である必要がある。このような構成によれば、代表点Dp42から予め定められた距離d1以上の点を代表点に抽出する構成に比べて、代表点を精度よく抽出できるとともに、逆凸判定の精度の低下を抑制できる。
【0056】
(2)上記各実施形態において、逆凸中心点群のうち、残差が閾値より小さい逆凸中心点のみを用いて分離直線を決定していたが、逆凸中心点群の全ての逆凸中心点を用いて分離直線を決定してもよい。また、計算コストを低減するために最小二乗法を用いて分離直線が決定されても良い。
【0057】
(3)上記各実施形態において、物体認識装置10は、分離直線決定部27を省略してもよい。また、物体認識装置10は、入出力インターフェース11を介して発光制御部41および受光制御部51と接続されていた。すなわち、物体認識装置10と、照射光Lzの発光および受光とが別体として構成されていたが、物体認識装置10が、発光制御部41、受光制御部51,発光素子42、および受光素子52を備えていてもよい。
【0058】
本開示に記載の制御部等の各部及びその手法は、コンピュータプログラムにより具体化された一つ乃至は複数の機能を実行するようにプログラムされたプロセッサ及びメモリを構成することによって提供された専用コンピュータにより、実現されてもよい。あるいは、本開示に記載の制御部等の各部及びその手法は、一つ以上の専用ハードウエア論理回路によってプロセッサを構成することによって提供された専用コンピュータにより、実現されてもよい。もしくは、本開示に記載の制御部及びその手法は、一つ乃至は複数の機能を実行するようにプログラムされたプロセッサ及びメモリと一つ以上のハードウエア論理回路によって構成されたプロセッサとの組合せにより構成された一つ以上の専用コンピュータにより、実現されてもよい。また、コンピュータプログラムは、コンピュータにより実行されるインストラクションとして、コンピュータ読み取り可能な非遷移有形記録媒体に記憶されていてもよい。
【0059】
本開示は、上述の実施形態に限られるものではなく、その趣旨を逸脱しない範囲において種々の構成で実現することができる。例えば、発明の概要の欄に記載した各形態中の技術的特徴に対応する実施形態中の技術的特徴は、上述の課題の一部又は全部を解決するために、あるいは、上述の効果の一部又は全部を達成するために、適宜、差し替えや、組み合わせを行うことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。
【符号の説明】
【0060】
10…物体認識装置、22…検出点群取得部、23…輪郭点群取得部、24…代表点群取得部、25…逆凸判定部、26…物体認識部、DP…代表点、ITs…逆凸形状、KP…検出点、Ob1,Ob2,Ob3,Ob4…物体、P1…第1点、P2…第2点、P3…第3点、RP…輪郭点、V1…第1ベクトル、V2…第2ベクトル、θ…ベクトル間角度