(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024178047
(43)【公開日】2024-12-24
(54)【発明の名称】システム及び方法
(51)【国際特許分類】
G01S 17/89 20200101AFI20241217BHJP
【FI】
G01S17/89
【審査請求】有
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2023096545
(22)【出願日】2023-06-12
(71)【出願人】
【識別番号】523224350
【氏名又は名称】バイトム株式会社
(74)【代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】アラスデア アンドリュー ロバートソン ハンター
(72)【発明者】
【氏名】ナサニエル チョン ミン バートレット
(72)【発明者】
【氏名】チャン グァンロク
【テーマコード(参考)】
5J084
【Fターム(参考)】
5J084AA05
5J084AA10
5J084AA13
5J084AB01
5J084AB07
5J084AB16
5J084AC02
5J084AC07
5J084AD01
5J084BA03
5J084BA49
5J084EA27
(57)【要約】 (修正有)
【課題】検出対象を検出、または監視対象エリアを監視するために用いられる3Dマップの生成
【解決手段】LiDARを搭載する搭載部と、前記搭載部を回転させるモータと、3Dマップを生成すべく、前記モータを用いて前記搭載部を回転させながら前記LiDARによって測定された測定結果を取得する取得部とを備える、システム、及び、コンピュータによって実行される方法であって、3Dマップを生成すべく、LiDARを搭載する搭載部を回転させるモータを用いて前記搭載部を回転させながら前記LiDARによって測定された測定結果を取得する取得段階を備える、方法を提供する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
LiDAR(Light Detection And Ranging)を搭載する搭載部と、
前記搭載部を回転させるモータと、
3Dマップを生成すべく、前記モータを用いて前記搭載部を回転させながら前記LiDARによって測定された測定結果を取得する取得部と
を備える、システム。
【請求項2】
前記測定結果に基づいて、前記3Dマップを生成する生成部をさらに備える、請求項1に記載のシステム。
【請求項3】
前記生成部によって生成された前記3Dマップに基づいて、予め定められた検出対象を検出する検出部をさらに備える、請求項2に記載のシステム。
【請求項4】
前記検出部は、前記生成部によって生成された前記3Dマップと前記検出対象が含まれていない状態の3Dマップとを位置合わせすることにより、前記生成部によって生成された前記3Dマップ内の複数の第1点のそれぞれと前記検出対象が含まれていない状態の前記3Dマップ内の複数の第2点のそれぞれとを対応付けて、前記複数の第1点のうちの第1点から当該第1点に対応付けられている第2点までのマップ空間上の距離が予め定められた第1距離閾値より長いターゲット点を検出することによって、前記検出対象を検出する、請求項3に記載のシステム。
【請求項5】
前記検出部は、検出した複数の前記ターゲット点のそれぞれについて、一のターゲット点までの前記マップ空間上の距離が予め定められた第2距離閾値より短い他のターゲット点の数が予め定められた第1ターゲット点数閾値より多い場合に前記一のターゲット点をコア点に分類し、前記他のターゲット点の数が前記第1ターゲット点数閾値より少なく、且つ、コア点が前記他のターゲット点に含まれる場合に前記一のターゲット点を境界点に分類し、前記他のターゲット点の数が前記第1ターゲット点数閾値より少なく、且つ、コア点が前記他のターゲット点に含まれない場合に前記一のターゲット点をノイズ点に分類し、検出した前記複数のターゲット点をクラスタリングし、クラスタリングの結果、一のクラスタに属するとクラスタリングされたターゲット点の数が予め定められた第2ターゲット点数閾値より多い場合に、前記一のクラスタに対応するエリアに前記検出対象が存在すると判定する、請求項4に記載のシステム。
【請求項6】
前記検出部は、前記一のクラスタの形状及びサイズにさらに基づいて、前記一のクラスタに対応する前記エリアに前記検出対象が存在するか否かを判定する、請求項5に記載のシステム。
【請求項7】
前記生成部によって生成された前記3Dマップの前記マップ空間における水平面を、前記検出対象のサイズに基づいてグリッドセルサイズが定められた複数のグリッドセルに分割する分割部
をさらに備え、
前記検出部は、前記複数のグリッドセルのうち、前記マップ空間における垂直方向に存在する前記ターゲット点の数が予め定められた第3ターゲット点数閾値より多いグリッドセルに対応するエリアに前記検出対象が存在すると判定する、
請求項4に記載のシステム。
【請求項8】
前記生成部によって生成された前記3Dマップに対して、前記システムのユーザによって指定されたゾーンを設定するゾーン設定部をさらに備える、請求項2に記載のシステム。
【請求項9】
前記生成部によって生成された前記3Dマップに基づいて、予め定められた検出対象が前記ゾーン設定部によって設定された前記ゾーンに対応するエリアに存在することを検出する検出部と、
前記検出部による検出結果に基づいて、前記ゾーン設定部によって設定された前記ゾーンに対応する前記エリアを監視する監視部と
をさらに備える、請求項8に記載のシステム。
【請求項10】
前記LiDARをさらに備える、請求項1から9のいずれか一項に記載のシステム。
【請求項11】
コンピュータによって実行される方法であって、
3Dマップを生成すべく、LiDARを搭載する搭載部を回転させるモータを用いて前記搭載部を回転させながら前記LiDARによって測定された測定結果を取得する取得段階
を備える、方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、システム及び方法に関する。
【背景技術】
【0002】
特許文献1には、車両に搭載されたLiDAR(Light Detection And Ranging)が記載されている。
[先行技術文献]
[特許文献]
[特許文献1]特開2019-156261号公報
【発明の概要】
【0003】
本発明の一実施態様によれば、システムが提供される。前記システムは、LiDARを搭載する搭載部を備えてよい。前記システムは、前記搭載部を回転させるモータを備えてよい。前記システムは、3Dマップを生成すべく、前記モータを用いて前記搭載部を回転させながら前記LiDARによって測定された測定結果を取得する取得部を備えてよい。
【0004】
前記システムは、前記測定結果に基づいて、前記3Dマップを生成する生成部をさらに備えてよい。
【0005】
前記いずれかのシステムは、前記生成部によって生成された前記3Dマップに基づいて、予め定められた検出対象を検出する検出部をさらに備えてよい。
【0006】
前記いずれかのシステムにおいて、前記検出部は、前記生成部によって生成された前記3Dマップと前記検出対象が含まれていない状態の3Dマップとを位置合わせすることにより、前記生成部によって生成された前記3Dマップ内の複数の第1点のそれぞれと前記検出対象が含まれていない状態の前記3Dマップ内の複数の第2点のそれぞれとを対応付けて、前記複数の第1点のうちの第1点から当該第1点に対応付けられている第2点までのマップ空間上の距離が予め定められた第1距離閾値より長いターゲット点を検出することによって、前記検出対象を検出してよい。
【0007】
前記いずれかのシステムにおいて、前記検出部は、検出した複数の前記ターゲット点のそれぞれについて、一のターゲット点までの前記マップ空間上の距離が予め定められた第2距離閾値より短い他のターゲット点の数が予め定められた第1ターゲット点数閾値より多い場合に前記一のターゲット点をコア点に分類し、前記他のターゲット点の数が前記第1ターゲット点数閾値より少なく、且つ、コア点が前記他のターゲット点に含まれる場合に前記一のターゲット点を境界点に分類し、前記他のターゲット点の数が前記第1ターゲット点数閾値より少なく、且つ、コア点が前記他のターゲット点に含まれない場合に前記一のターゲット点をノイズ点に分類し、検出した前記複数のターゲット点をクラスタリングし、クラスタリングの結果、一のクラスタに属するとクラスタリングされたターゲット点の数が予め定められた第2ターゲット点数閾値より多い場合に、前記一のクラスタに対応するエリアに前記検出対象が存在すると判定してよい。
【0008】
前記いずれかのシステムにおいて、前記検出部は、前記一のクラスタの形状及びサイズにさらに基づいて、前記一のクラスタに対応する前記エリアに前記検出対象が存在するか否かを判定してよい。
【0009】
前記いずれかのシステムは、前記生成部によって生成された前記3Dマップの前記マップ空間における水平面を、前記検出対象のサイズに基づいてグリッドセルサイズが定められた複数のグリッドセルに分割する分割部をさらに備えてよく、前記検出部は、前記複数のグリッドセルのうち、前記マップ空間における垂直方向に存在する前記ターゲット点の数が予め定められた第3ターゲット点数閾値より多いグリッドセルに対応するエリアに前記検出対象が存在すると判定してよい。
【0010】
前記いずれかのシステムは、前記生成部によって生成された前記3Dマップに対して、前記システムのユーザによって指定されたゾーンを設定するゾーン設定部をさらに備えてよい。
【0011】
前記いずれかのシステムは、前記生成部によって生成された前記3Dマップに基づいて、予め定められた検出対象が前記ゾーン設定部によって設定された前記ゾーンに対応するエリアに存在することを検出する検出部と、前記検出部による検出結果に基づいて、前記ゾーン設定部によって設定された前記ゾーンに対応する前記エリアを監視する監視部とをさらに備えてよい。
【0012】
前記いずれかのシステムは、前記LiDARをさらに備えてよい。
【0013】
本発明の一実施態様によれば、コンピュータによって実行される方法が提供される。前記方法は、3Dマップを生成すべく、LiDARを搭載する搭載部を回転させるモータを用いて前記搭載部を回転させながら前記LiDARによって測定された測定結果を取得する取得段階を備えてよい。
【0014】
尚、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【0015】
【
図2】回転式LiDAR100のハードウェア構成の一例を概略的に示す。
【
図3】回転式LiDAR100の機能構成の一例を概略的に示す。
【
図4】情報処理装置200の機能構成の一例を概略的に示す。
【
図5】情報処理装置200が検出3Dマップと背景3Dマップとを位置合わせする一例を説明するための説明図である。
【
図6】情報処理装置200がノーマルモードで検出対象を検出する一例を説明するための説明図である。
【
図7】情報処理装置200が密集モードで検出対象を検出する一例を説明するための説明図である。
【
図8】システム10の処理の流れの一例を説明するための説明図である。
【
図9】システム10の処理の流れの他の一例を説明するための説明図である。
【
図10】システム10の処理の流れの他の一例を説明するための説明図である。
【
図11】回転式LiDAR100又は情報処理装置200として機能するコンピュータ1200のハードウェア構成の一例を概略的に示す。
【発明を実施するための形態】
【0016】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0017】
図1は、システム10の一例を概略的に示す。システム10は、回転式LiDAR100を備えてよい。
図1では、システム10が1つの回転式LiDAR100を備える一例が示されているが、システム10は、複数の回転式LiDAR100を備えてもよい。システム10は、情報処理装置200を備えてよい。システム10は、センサ300を備えてよい。
【0018】
システム10は、例えば、回転式LiDAR100を用いて3Dマップを生成するサービスを提供する。システム10は、例えば、回転式LiDAR100を用いて、検出対象を検出するサービスを提供する。システム10は、例えば、回転式LiDAR100を用いて、予め定められた監視対象エリアを監視するサービスを提供する。システム10は、例えば、車両やロボットの移動をサポートするサービスを提供する。
【0019】
回転式LiDAR100は、LiDARを回転させながらLiDARからレーザ光を出力し、当該レーザ光の反射光に基づいて当該レーザ光の出力位置と当該レーザ光を反射したポイントとの間の距離を測定する。回転式LiDAR100は、例えば、レーザ光を出力した出力時刻から当該ポイントで反射された当該レーザ光の反射光を受光した受光時刻までの時間をt[s]とし、当該レーザ光の伝搬速度をc[m/s]とした場合、当該レーザ光の出力位置と当該レーザ光を反射した当該ポイントとの間の距離x[m]が、x[m]=1/2×t[s]×c[m/s]であると測定する。
【0020】
回転式LiDAR100は、例えば、LiDARを予め定められた角度だけ回転させることによって、回転式LiDAR100の周辺をスキャンする。回転式LiDAR100は、例えば、LiDARを360度回転させることによって、回転式LiDAR100の周囲をスキャンする。
【0021】
回転式LiDAR100は、LiDARを360度より多く回転させることによって、回転式LiDAR100の周囲をスキャンしてもよい。回転式LiDAR100は、例えば、LiDARを720度回転させることによって、回転式LiDAR100の周囲をスキャンする。回転式LiDAR100は、例えば、LiDARを1080度回転させることによって、回転式LiDAR100の周囲をスキャンする。
【0022】
回転式LiDAR100は、LiDARを360度より少なく回転させることによって、回転式LiDAR100の周辺をスキャンしてもよい。回転式LiDAR100は、例えば、LiDARを180度回転させることによって、回転式LiDAR100の周辺をスキャンする。回転式LiDAR100は、例えば、LiDARを90度回転させることによって、回転式LiDAR100の周辺をスキャンする。
【0023】
回転式LiDAR100は、例えば、LiDARが回転している間に、LiDARからレーザ光を連続的に出力することによって、回転式LiDAR100の周辺をスキャンする。回転式LiDAR100は、例えば、LiDARが回転している間に、予め定められた角度間隔でLiDARからレーザ光を出力することによって、回転式LiDAR100の周辺をスキャンする。回転式LiDAR100は、LiDARが回転している間に、予め定められた時間間隔でLiDARからレーザ光を出力することによって、回転式LiDAR100の周辺をスキャンしてもよい。
【0024】
回転式LiDAR100は、例えば、3Dマップを生成すべく、測定結果を取得する。3Dマップは、例えば、検出対象が含まれていない状態の3Dマップ(「背景3Dマップ」と記載する場合がある)を含む。3Dマップは、例えば、検出対象が含まれ得る状態の3Dマップ(「検出3Dマップ」と記載する場合がある)を含む。
【0025】
3Dマップは、例えば、検出対象を検出するために用いられる。3Dマップは、例えば、監視対象エリアを監視するために用いられる。3Dマップは、車両やロボットを誘導するために用いられてもよい。
【0026】
回転式LiDAR100は、例えば、情報処理装置200と通信する。回転式LiDAR100は、例えば、ネットワーク20を介して、情報処理装置200と通信する。
【0027】
ネットワーク20は、例えば、LAN(Local Area Network)を含む。LANは、例えば、Wi-Fi(登録商標)等の規格に準拠した無線LANを含む。LANは、イーサネット(登録商標)等の規格に準拠した有線LANを含んでもよい。ネットワーク20は、移動体通信ネットワークを含んでよい。ネットワーク20は、インターネットを含んでよい。
【0028】
回転式LiDAR100は、例えば、測定結果を情報処理装置200に送信する。回転式LiDAR100は、例えば、周囲をスキャンしている間に、測定結果を情報処理装置200に送信する。回転式LiDAR100は、周囲のスキャンが完了したことに応じて、測定結果をまとめて情報処理装置200に送信してもよい。
【0029】
情報処理装置200は、各種処理を実行する。情報処理装置200は、例えば、3Dマップの生成処理を実行する。
【0030】
情報処理装置200は、例えば、回転式LiDAR100からネットワーク20を介して受信した測定結果に基づいて、3Dマップを生成する。情報処理装置200は、センサ300からネットワーク20を介してセンサ300によって検出されたセンサデータにさらに基づいて、3Dマップを生成してもよい。
【0031】
センサ300は、例えば、カメラを含む。センサ300は、例えば、測距センサを含む。センサ300は、その他の任意のセンサを含んでもよい。
【0032】
情報処理装置200は、例えば、背景3Dマップを生成する。情報処理装置200は、例えば、回転式LiDAR100がLiDAR110を360度回転させたときの測定結果を回転式LiDAR100から受信し、測定結果に基づいて背景3Dマップを作成する。
【0033】
情報処理装置200は、例えば、検出3Dマップを生成する。情報処理装置200は、例えば、回転式LiDAR100がLiDAR110を180回転させた毎の測定結果を回転式LiDAR100から受信し、回転式LiDAR100がLiDAR110を180回転させた毎の測定結果を結合し、結合後の測定結果に基づいて検出3Dマップを作成する。
【0034】
情報処理装置200は、例えば、検出対象の検出処理を実行する。例えば、情報処理装置200は、検出3Dマップと背景3Dマップとを位置合わせすることにより、検出3Dマップの複数の点Pdのそれぞれと背景3Dマップの複数の点Pbのそれぞれとを対応付ける。次に、情報処理装置200は、検出3Dマップの複数の点Pdのそれぞれについて、点Pdから当該点Pdに対応付けられている点Pbまでのマップ空間上の距離dが予め定められた距離閾値δより長いか否かを判定する。情報処理装置200は、dがδより長い点Pdを検出3Dマップに維持する。一方で、情報処理装置200は、dがδより短い点Pdを検出3Dマップから削除する。すなわち、情報処理装置200は、dがδより短い点Pdを検出3Dマップからフィルタリングする。
【0035】
情報処理装置200は、フィルタリングされた検出3Dマップに基づいて、検出対象を検出する。情報処理装置200は、例えば、検出対象を検出するためのアルゴリズムを実行することによって、検出対象を検出する。検出対象を検出するためのアルゴリズムについては、詳細を後述する。
【0036】
情報処理装置200は、例えば、監視対象エリアの監視処理を実行する。情報処理装置200は、例えば、検出処理によって検出された検出対象の位置が監視対象エリアに含まれるか否かを監視することによって、監視対象エリアを監視する。
【0037】
従来の固定式LiDARは、出力可能なレーザ光の照射角が約30度~約50度の範囲に限定されている。したがって、固定式LiDARを用いて、全方位等のような広角エリアの3Dマップの生成処理と、広角エリア内の検出対象の検出処理又は広角エリアの監視処理とを同時に実行する場合、複数台の固定式LiDARが必要不可欠となる。また、広角エリアをカバーできる単一の固定式LiDARを用いて高密度な3Dマップを生成する場合、伝搬距離が約20~30mのレーザ光源を用いらなければならない。
【0038】
これに対して、本実施形態に係るシステム10によれば、回転式LiDAR100を用いて、モータでLiDARを回転させながら3Dマップを生成するために必要な測定結果を取得する。これにより、本実施形態に係るシステム10は、1つのLiDARのみを用いて、広角エリアの3Dマップの生成処理と、広角エリア内の検出対象の検出処理又は広角エリアの監視処理とを同時に実行できる。さらに、回転式LiDAR100は、モータでLiDARを回転させることでLiDARから出力されるレーザ光の出力位置を変更可能であるので、伝搬距離が約200mのレーザ光源を用いて、固定式LiDARを用いて高密度な3Dマップを生成した場合と同レベルの密度の3Dマップを生成できる。これにより、本実施形態に係るシステム10は、より遠くに位置する検出対象を高精度に検出することや、より遠くに位置する監視対象エリアを高精度に監視することを実現できる。
【0039】
図2は、回転式LiDAR100のハードウェア構成の一例を概略的に示す。回転式LiDAR100は、LiDAR110、搭載部120、及び筐体150を備えてよい。
【0040】
LiDAR110は、レーザ光を出力する出力部115を有する。出力部115は、例えば、赤外線領域の波長のレーザ光を出力するレーザ光源を含む。出力部115は、例えば、可視光領域の波長のレーザ光を出力するレーザ光源を含む。出力部115は、紫外線領域の波長のレーザ光を出力するレーザ光源を含んでもよい。
【0041】
出力部115は、例えば、16本のレーザ光源を含む。出力部115は、例えば、32本のレーザ光源を含む。出力部115は、例えば、64本のレーザ光源を含む。出力部115は、例えば、128本のレーザ光源を含む。
【0042】
搭載部120は、LiDAR110を搭載する。搭載部120は、例えば、モータからの動力エネルギーによって、LiDAR110を搭載した状態で回転する。搭載部120は、例えば、スリップリングを介してモータに接続されている。
【0043】
搭載部120は、例えば、
図2に示されているxyz座標系のz軸を中心に回転する。搭載部120は、例えば、z軸を中心に時計回りに回転する。搭載部120は、例えば、z軸を中心に反時計回りに回転する。
【0044】
搭載部120は、例えば、z軸を中心に一定の角速度で回転する。回転式LiDAR100は、モータを用いて搭載部120を一定の角速度で回転させることによって、慣性計測装置(Inertial Motion Unit:IMU)を用いることなく、出力部115がレーザ光を出力したときの搭載部120の回転角を特定できる。
【0045】
筐体150は、各種装置を収容する。筐体150は、例えば、モータを収容する。筐体150は、例えば、回転式LiDAR100の通信部として機能する回路基板を収容する。筐体150は、例えば、回転式LiDAR100のLiDAR110やモータを制御する制御部として機能するミニコンピュータ基板を収容する。
【0046】
図3は、回転式LiDAR100の機能構成の一例を概略的に示す。回転式LiDAR100は、制御部102、取得部104、生成部106、通信部108、LiDAR110、搭載部120、及びモータ130を備える。尚、回転式LiDAR100がこれらの全ての構成を含むことは必須とは限らない。
【0047】
制御部102は、制御対象を制御する。制御部102は、例えば、搭載部120を回転させるモータ130を制御する。制御部102は、例えば、搭載部120の回転角を制御すべく、モータ130を制御する。制御部102は、例えば、搭載部120の回転速度を制御すべく、モータ130を制御する。モータ130は、搭載部120の回転方向を制御すべく、モータ130を制御してもよい。
【0048】
制御部102は、LiDAR110を制御する。制御部102は、例えば、LiDAR110が出力するレーザ光の出力パワーを制御する。制御部102は、LiDAR110が出力するレーザ光の出力タイミングを制御してもよい。
【0049】
取得部104は、LiDAR110によって測定された測定結果を取得する。取得部104は、例えば、3Dマップを生成すべく、モータ130を用いて搭載部120を回転させながらLiDAR110によって測定された測定結果を取得する。
【0050】
測定結果は、例えば、出力部115がレーザ光を出力した出力位置と当該レーザ光を反射したポイントとの間の測定距離を含む。測定結果は、例えば、当該レーザ光が当該ポイントで反射されたときの反射光の受光強度を含む。測定結果は、例えば、当該レーザが当該出力位置で当該レーザ光を出力したときのモータ130の回転量を含む。
【0051】
生成部106は、3Dマップを生成する。生成部106は、例えば、背景3Dマップを生成する。生成部106は、例えば、検出3Dマップを生成する。
【0052】
生成部106は、例えば、取得部104によって取得された測定結果に基づいて、3Dマップを生成する。生成部106は、例えば、出力部115がレーザ光を出力した出力位置に、当該出力位置と当該レーザ光を反射したポイントとの間の測定距離を対応付けることによって、3Dマップを生成する。
【0053】
通信部108は、情報処理装置200と通信する。通信部108は、例えば、ネットワーク20を介して、情報処理装置200と通信する。
【0054】
通信部108は、例えば、取得部104によって取得された測定結果を情報処理装置200に送信する。通信部108は、例えば、LiDAR110が周囲をスキャンしている間に、取得部104によって取得された測定結果を情報処理装置200に送信する。通信部108は、LiDAR110による周囲のスキャンが完了したことに応じて、取得部104によって取得された測定結果をまとめて情報処理装置200に送信してもよい。通信部108は、生成部106によって生成された3Dマップを情報処理装置200に送信してもよい。
【0055】
図4は、情報処理装置200の機能構成の一例を概略的に示す。情報処理装置200は、記憶部250、取得部252、生成部254、ゾーン設定部256、検出モード設定部257、分割部258、検出部260、監視部262、表示制御部264、及び表示部270を備える。尚、情報処理装置200がこれらの全ての構成を含むことは必須とは限らない。
【0056】
記憶部250は、各種情報を記憶する。記憶部250は、例えば、3Dマップを用いて検出する検出対象を示す検出対象情報を記憶する。検出対象は、例えば、人である。検出対象は、例えば、動物である。検出対象は、例えば、車である。検出対象は、例えば、自転車である。検出対象は、木や石等の自然物である。検出対象は、その他の任意の物体であってよい。記憶部250は、例えば、3Dマップを用いて監視する監視対象エリアを示す監視対象エリア情報を記憶する。監視対象エリアは、例えば、イベント会場である。監視対象エリアは、例えば、住宅街である。監視対象エリアは、その他の任意のエリアであってもよい。記憶部250は、センサ300の設置位置を示す設置位置情報を記憶してもよい。
【0057】
取得部252は、各種情報を取得する。取得部252は、例えば、ネットワーク20を介して、外部装置と通信することによって、各種情報を取得する。取得部252は、情報処理装置200が備える入力部を介して情報処理装置200のユーザからの入力を受け付けることによって、各種情報を取得してもよい。情報処理装置200のユーザは、例えば、3Dマップが生成されるエリアを管理する管理者である。情報処理装置200のユーザは、その他の任意のユーザであってもよい。情報処理装置200のユーザは、システム10のユーザの一例であってよい。取得部252は、取得した各種情報を記憶部250に記憶する。
【0058】
取得部252は、例えば、回転式LiDAR100から各種情報を取得する。取得部252は、1台の回転式LiDAR100から各種情報を取得する。取得部252は、複数台の回転式LiDAR100から各種情報を取得してもよい。
【0059】
取得部252は、例えば、3Dマップを生成すべく、モータ130を用いて搭載部120を回転させながらLiDAR110によって測定された測定結果を取得する。取得部252は、3Dマップを取得してもよい。
【0060】
取得部252は、例えば、センサ300からセンサデータを取得する。取得部252は、例えば、カメラから画像データを取得する。取得部252は、測距センサから測定距離データを取得してもよい。測定距離データによって示される測定距離は、測距センサから出力されたビームの出力位置と当該ビームを反射したポイントとの間の距離である。
【0061】
生成部254は、3Dマップを生成する。生成部254は、例えば、背景3Dマップを生成する。生成部254は、例えば、検出3Dマップを生成する。生成部254は、生成した3Dマップを記憶部250に記憶してよい。
【0062】
生成部254は、例えば、記憶部250に記憶されている測定結果に基づいて、3Dマップを生成する。生成部254は、出力部115がレーザ光を出力した出力位置に、当該出力位置と当該レーザ光を反射したポイントとの間の測定距離を対応付けることによって、3Dマップを生成する。
【0063】
測定結果が、当該出力位置から出力された当該レーザ光が当該ポイントで反射されたときの反射光を受光した受光強度を含む場合、生成部254は、当該受光強度に応じて、当該ポイントに対応するピクセルを色分けしてもよい。これにより、情報処理装置200は、ユーザが各ポイントの受信強度を把握し易い3Dマップを生成できる。
【0064】
生成部254は、例えば、複数台の回転式LiDAR100によって測定された測定結果に基づいて、3Dマップを生成する。この場合、各回転式LiDAR100によって測定された測定結果を結合することによって、1つの3Dマップを生成する。これにより、情報処理装置200は、より広範で高密度な3Dマップを生成できる。
【0065】
生成部254は、記憶部250に記憶されているセンサデータにさらに基づいて、3Dマップを生成してもよい。生成部254は、例えば、画像データにさらに基づいて、3Dマップを生成する。生成部254は、例えば、画像データと3Dマップとを結合する。これにより、情報処理装置200は、より現実世界に即した3Dマップを生成することができる。
【0066】
生成部254は、測定距離データにさらに基づいて、3Dマップを生成してもよい。2生成部254は、例えば、測定距離データを用いて、回転式LiDAR100によって測定距離が測定されていないポイントの測定距離を補填する。これにより、情報処理装置200は、より一層高密度な3Dマップを生成することができる。
【0067】
ゾーン設定部256は、記憶部250に記憶されている3Dマップに対してゾーンを設定する。ゾーン設定部256は、例えば、3Dマップに対して複数のゾーンを設定する。ゾーン設定部256は、3Dマップに対して設定されたゾーンを示すゾーン情報を記憶部250に記憶してよい。
【0068】
ゾーン設定部256は、例えば、3Dマップに対して三次元のゾーンを設定する。ゾーン設定部256は、3Dマップに対して二次元のゾーンを設定してもよい。
【0069】
ゾーン設定部256は、例えば、生成部254によって生成された3Dマップに対してゾーンを設定する。ゾーン設定部256は、例えば、生成部106によって生成された3Dマップに対してゾーンを設定する。
【0070】
ゾーン設定部256は、例えば、背景3Dマップに対してゾーンを設定する。ゾーン設定部256は、例えば、検出3Dマップに対してゾーンを設定する。
【0071】
ゾーン設定部256は、例えば、情報処理装置200のユーザによって指定されることによって、3Dマップに対してゾーンを設定する。情報処理装置200のユーザは、例えば、情報処理装置200が備える入力部を用いてクリック操作を実行することによって、3Dマップに対してゾーンを設定する。これにより、情報処理装置200は、単純なクリック操作で3Dマップに対してゾーンを設定することができるので、3Dマップに対してゾーンを設定する際の情報処理装置200のユーザの負担を軽減できる。
【0072】
ゾーン設定部256は、例えば、3Dマップ対して、任意の形状のゾーンを設定する。ゾーン設定部256は、例えば、3Dマップに対して三次元のゾーンを設定する場合、三角錐、四角錘、その他の多角錘、三角柱、四角柱、その他の多角柱、円錐、円柱、楕円体、球体等の形状のゾーンを設定する。ゾーン設定部256は、例えば、3Dマップに対して二次元のゾーンを設定する場合、三角形、四角形、その他の多角形、楕円、円等の形状のゾーンを設定する。
【0073】
ゾーン設定部256は、例えば、3Dマップに対して、情報処理装置200のユーザの所望する形状のゾーンを設定する。ゾーン設定部256は、例えば、情報処理装置200のユーザが検出対象を検出したいエリアの形状のゾーンを設定する。ゾーン設定部256は、例えば、情報処理装置200のユーザが監視したいエリアの形状のゾーンを設定する。
【0074】
従来のシステムでは、3Dマップに対して丸や四角等の単純な形状のゾーンしか設定することができなかった。これに対して、情報処理装置200は、より複雑な形状のゾーンを設定することができる。これにより、情報処理装置200は、3Dマップに対して、情報処理装置200のユーザの好みにより沿った形状にゾーンを設定できる。また、情報処理装置200は、高密度な3Dマップに対してゾーンを設定するので、監視カメラでは実現できない誤差が約3cm程度の精度でゾーンを設定できる。
【0075】
ゾーン設定部256は、3Dマップに対して複数のゾーンが設定された場合、ゾーン毎に色分けされるように、各ゾーンに対して色を設定してもよい。これにより、情報処理装置200は、情報処理装置200のユーザがより各ゾーンを把握し易いように複数のゾーンを設定できる。
【0076】
検出モード設定部257は、3Dマップに含まれ得る検出対象を検出する検出モードを設定する。検出モード設定部257は、例えば、3Dマップに対して設定されたゾーン毎に検出モードを設定してもよい。検出モード設定部257は、例えば、情報処理装置200のユーザによって指定されることによって、検出モードを設定する。
【0077】
検出モードは、例えば、ノーマルモードを含む。検出モードは、例えば、密集モードを含む。情報処理装置200がノーマルモードで検出対象を検出する場合の具体的な処理、及び、情報処理装置200が密集モードで検出対象を検出する場合の具体的な処理のそれぞれについては、詳細を後述する。
【0078】
分割部258は、記憶部250に記憶されている検出3Dマップを分割する。分割部258は、例えば、検出3Dマップのマップ空間における水平面を、記憶部250に記憶されている検出対象情報によって示される検出対象のサイズに基づいてグリッドセルサイズが定められた複数のグリッドセルに分割する。分割部258は、例えば、検出3Dマップのマップ空間における水平面を、n×nのグリッドセルサイズの複数のグリッドセルに分割する。
【0079】
検出部260は、予め定められた検出対象を検出する。検出部260は、例えば、記憶部250に記憶されている検出対象情報によって示される検出対象を検出する。検出部260は、検出結果を記憶部250に記憶してよい。
【0080】
検出部260は、例えば、記憶部250に記憶されている検出3Dマップに対応するエリアに存在する検出対象を検出する。検出部260は、検出3Dマップのうちの、記憶部250に記憶されているゾーン情報によって示されるゾーンに対応するエリアに存在する検出対象を検出する。
【0081】
検出部260は、例えば、生成部254によって生成された3Dマップに基づいて、検出対象を検出する。検出部260は、例えば、生成部106によって生成された3Dマップに基づいて、検出対象を検出する。
【0082】
ここで、検出部260がノーマルモードで検出対象を検出する場合の処理と検出部260が密集モードで検出対象を検出する場合の処理との間で共通する部分について説明する。
【0083】
検出部260は、例えば、背景3Dマップ及び検出3Dマップに基づいて、検出対象を検出する。検出部260は、例えば、検出対象を検出すべく、検出3Dマップと背景3Dマップとを位置合わせすることによって、検出3Dマップの複数の点Pdのそれぞれと背景3Dマップの複数の点Pbのそれぞれとを対応付ける。
【0084】
検出部260は、例えば、ICP(Iterative Closest Point)アルゴリズムを実行することによって、検出3Dマップと背景3Dマップとを位置合わせする。例えば、検出部260は、ICPアルゴリズムを実行する前に、RANSAC(Random Sample Consensus)アルゴリズムを実行することによって、検出3Dマップと背景3Dマップとを大まかに位置合わせをする。その後、検出部260は、ICPアルゴリズムを実行することによって、検出3Dマップと背景3Dマップとを精密に位置合わせする。検出部260は、RANSACアルゴリズムを実行することなくICPアルゴリズムを実行することによって、検出3Dマップと背景3Dマップとを位置合わせしてもよい。
【0085】
検出部260は、例えば、予め定められた時間間隔で、ICPアルゴリズムを実行する。検出部260は、例えば、5~10分の時間間隔で、ICPアルゴリズムを実行する。これにより、情報処理装置200は、回転式LiDAR100に搭載されているモータ130の回転速度のブレに起因する検出3Dマップと背景3Dマップとの位置合わせのズレを修正できる。
【0086】
検出3Dマップの複数の点Pdのそれぞれと背景3Dマップの複数の点Pbのそれぞれとが対応付けられた後、検出部260は、複数の点Pdのうちの点Pdから当該点Pdに対応付けられている点Pbまでのマップ空間上の距離dが距離閾値δより長いか否か判定する。検出部260は、dがδより長いと判定した場合、当該点Pdをターゲット点Ptとして検出することによって、検出対象を検出する。一方で、検出部260は、dがδより短いと判定した場合、検出3Dマップから当該点Pdを削除する。
【0087】
情報処理装置200は、dがδより短い検出3Dマップの点Pdを、背景3Dマップと差異がないとして検出3Dマップからフィルタリングすることにより、検出対象が存在し得るエリアに対応する点Ptのみを抽出する。その後、情報処理装置200は、抽出した点Ptに基づいて、検出対象を検出する。これにより、情報処理装置200は、GPUを用いることなく検出対象を高速に検出できるので、低コストで検出対象を高速に検出できる。
【0088】
次に、検出部260がノーマルモードで検出対象を検出する場合に特有の処理について説明する。検出部260は、例えば、検出した複数の点Ptをクラスタリングし、クラスタリングの結果に基づいて、検出対象を検出する。検出部260は、例えば、クラスタリングの結果、一のクラスタに属するとクラスタリングされた点Ptの数が予め定められたターゲット点数閾値Ntより多い場合に、当該一のクラスタに対応するエリアに検出対象が存在すると判定する。一方で、検出部260は、クラスタリングの結果、一のクラスタに属するとクラスタリングされた点Ptの数がNtより少ない場合に、当該一のクラスタに対応するエリアに検出対象が存在しないと判定する。この場合、検出部260は、当該一のクラスタをノイズと見なし、当該一のクラスタを削除してよい。尚、Ntは、検出対象に応じて設定されてよい。
【0089】
検出部260は、当該一のクラスタの形状及びサイズにさらに基づいて、当該一のクラスタに対応するエリアに検出対象が存在するか否かを判定してもよい。検出部260は、例えば、点Ptの数がNtより多い一のクラスタにおいて、当該一のクラスタの形状及びサイズと検出対象の形状及びサイズとの間の類似度が予め定められた類似度閾値より高い場合に、当該一のクラスタに対応するエリアに検出対象が存在すると判定する。一方で、検出部260は、点Ptの数がNtより多い一のクラスタにおいて、当該一のクラスタの形状及びサイズと検出対象の形状及びサイズとの間の類似度が類似度閾値より低い場合に、当該一のクラスタに対応するエリアに検出対象が存在しないと判定する。
【0090】
検出部260は、例えば、クラスタリングアルゴリズムを実行して、検出した複数の点Ptをクラスタリングする。検出部260は、例えば、DBSCAN(Density-Based Spatial Clustering of Applications with Noise)アルゴリズムを実行して、複数の点Ptをクラスタリングする。
【0091】
検出部260は、例えば、複数の点Ptを分類することによって、複数の点Ptをクラスタリングする。検出部260は、例えば、検出した複数の点Ptのそれぞれについて、一のターゲット点P'tまでのマップ空間上の距離が予め定められた距離閾値εより短い他のターゲット点P''tの数が予め定められた第1ターゲット点数閾値Ncより多い場合にP'tをコア点Pcに分類し、点P''tの数がNcより少なく、且つ、コア点Pcが点P''tに含まれる場合に点P'tを境界点Peに分類し、点P''tの数がNcより少なく、且つ、コア点Pcが点P''tに含まれない場合に点P'tをノイズ点Pnに分類する。検出部260は、複数の点Ptを分類することなく、複数のPtをクラスタリングしてもよい。
【0092】
情報処理装置200は、ノーマルモードで検出対象を検出することによって、深層学習ベースの方法では検出対象を検出する場合ではピクセルの密度が低過ぎるような、遠方のエリアに存在する検出対象を検出できる。また、情報処理装置200は、ノーマルモードで検出対象を検出することによって、ノイズに対するロバスト性を高めることができ、検出対象をより正確に検出できる。
【0093】
次に、検出部260が密集モードで検出対象を検出する場合に特有の処理について、説明する。検出部260は、例えば、分割部258によって分割された複数のグリッドセルに基づいて、検出対象を検出する。検出部260は、例えば、グリッド占有アルゴリズムを実行して、検出対象を検出する。
【0094】
検出部260は、例えば、複数のグリッドセルのうち、マップ空間における垂直方向に存在する点Ptの数が予め定められたターゲット点数閾値Ngより多いグリッドセルに対応するエリアに検出対象が存在すると判定する。一方で、検出部260は、複数のグリッドセルのうち、マップ空間における垂直方向に存在する点Ptの数がNgより少ないグリッドセルに対応するエリアに検出対象が存在しないと判定する。この場合、検出部260は、当該グリッドセルのマップ空間における垂直方向に存在する点Ptをノイズと見なし、当該点Ptを削除してよい。尚、Ngは、検出対象に応じて設定されてよい。
【0095】
グリッドセルのマップ空間における垂直方向に存在する点Ptは、例えば、マップ空間においてグリッドセルの上方に存在する点Ptを含む。グリッドセルのマップ空間における垂直方向に存在する点Ptは、例えば、マップ空間においてグリッドセル上に存在する点Ptを含む。グリッドセルのマップ空間における垂直方向に存在する点Ptは、例えば、マップ空間においてグリッドセルの下方に存在する点Ptを含む。
【0096】
情報処理装置200は、密集モードで検出対象を検出することによって、検出対象あたりのピクセル数が少ない、検出対象が密集した遠方のエリアに存在する検出対象を効率的に且つ正確に検出できる。
【0097】
検出部260は、ノーマルモード又は密集モードで検出3Dマップに対応するエリアに複数の検出対象が存在することを検出した場合、検出3Dマップに対応するエリアに存在する検出対象の数をカウントしてもよい。検出部260は、ノーマルモード又は密集モードでゾーンに対応するエリアに複数の検出対象が存在することを検出した場合、ゾーンに対応するエリアに存在する検出対象の数をカウントしてもよい。
【0098】
監視部262は、監視対象エリアを監視する。監視部262は、例えば、記憶部250に記憶されている監視対象エリア情報によって示される監視対象エリアを監視する。監視部262は、監視結果を記憶部250に記憶してよい。
【0099】
監視対象エリアは、例えば、記憶部250に検出3Dマップに対応するエリアである。監視対象エリアは、検出3Dマップのうちの、記憶部250に記憶されているゾーン情報によって示されるゾーンに対応するエリアである。
【0100】
監視部262は、例えば、検出部260による検出結果に基づいて、監視対象エリアを監視する。監視部262は、例えば、検出部260によって検出された検出対象の位置が監視対象エリアに含まれるか否かを監視する。これにより、情報処理装置200は、監視対象エリアが立入禁止エリアや危険エリア等である場合に、3Dマップを用いて検出対象が監視対象エリアに侵入したか否かを監視できる。
【0101】
監視部262は、例えば、監視対象エリアに存在する検出対象の数を監視する。監視部262は、例えば、監視対象エリアに存在する検出対象の数が予め定められた数より多い場合、監視対象エリアが混雑状態であると判定する。これにより、情報処理装置200は、3Dマップを用いて監視対象エリアの混雑状況を監視できる。
【0102】
表示制御部264、表示部270の表示を制御する。表示制御部264は、例えば、記憶部250に記憶されている各種情報に基づいて、表示部270の表示を制御する。表示部270は、表示制御部264による制御に従って、各種情報を表示してよい。
【0103】
表示制御部264は、例えば、背景3Dマップを表示するように、表示部270の表示を制御する。表示制御部264は、例えば、ゾーン情報によって示されるゾーンが重畳表示された状態で背景3Dマップを表示するように、表示部270の表示を制御する。表示制御部264は、例えば、複数のゾーンが背景3Dマップに重畳表示される場合、ゾーン毎に色分けされた状態で背景3Dマップを表示するように、表示部270の表示を制御する。表示制御部264は、例えば、測定結果に含まれる受光強度に応じて各ピクセルが色分けされた状態で背景3Dマップを表示するように、表示部270の表示を制御する。
【0104】
表示制御部264は、例えば、検出3Dマップを表示するように、表示部270の表示を表示する。表示制御部264は、例えば、ゾーン情報によって示されるゾーンが重畳表示された状態で検出3Dマップを表示するように、表示部270の表示を制御する。表示制御部264は、例えば、複数のゾーンが検出3Dマップに重畳表示される場合、ゾーン毎に色分けされた状態で検出3Dマップを表示するように、表示部270の表示を制御する。表示制御部264は、例えば、測定結果に含まれる受光強度に応じて各ピクセルが色分けされた状態で検出3Dマップを表示するように、表示部270の表示を制御する。表示部270は、例えば、検出3Dマップが複数のグリッドセルに分割された状態で検出3Dマップを表示するように、表示部270の表示を制御する。
【0105】
表示制御部264は、例えば、検出部260による検出結果が重畳表示された状態で検出3Dマップを表示するように、表示部270の表示を制御する。表示制御部264は、例えば、検出3Dマップにおける検出対象の占有領域を包含する境界ボックスが重畳表示された状態で検出3Dマップを表示するように、表示部270の表示を制御する。
【0106】
図5は、情報処理装置200が検出3Dマップと背景3Dマップとを位置合わせする一例を説明するための説明図である。ここでは、情報処理装置200がICPアルゴリズムを実行することによって検出3Dマップと背景3Dマップとを位置合わせする場合の一例を主に説明する。尚、
図5における「〇」は、背景3Dマップの点P
bであり、「▽」は検出3Dマップの点P
dであるものとする。
【0107】
図5の(A)は、情報処理装置200が、検出3Dマップの複数の点P
dのそれぞれを、背景3Dマップの複数の点P
bのいずれかにマッチングする処理(「処理1」と記載する場合がある)の一例を説明するための説明図である。ここでは、検出部260がRANSACアルゴリズムを実行することによって、検出3Dマップと背景3Dマップとを事前に位置合わせしているものとして、説明を続ける。
【0108】
検出部260は、例えば、点P
dからのマップ空間上の距離が最も短い点P
bを特定することによって、点P
dを点P
bにマッチングする。検出部260は、例えば、最近傍点探索を実行することによって、点P
dからのマップ空間上の距離が最も短い点P
bを特定する。検出部260は、例えば、最近傍点探索を実行するにあたり、背景3Dマップの複数の点P
bからk-d木を構築し、構築したk-d木を用いて最近傍探索を実行する。
図5の(A)に示される一例において、検出部260が、点P
d1を点P
b1にマッチングし、点P
d2を点P
b3にマッチングし、点P
d3を点P
b3にマッチングし、点P
d4を点P
b4にマッチングし、点P
d5を点P
b4にマッチングし、且つ、点P
d6を点P
b6にマッチングしたものとして、説明を続ける。
【0109】
図5の(B)は、情報処理装置200が、検出3Dマップを背景3Dマップに位置合わせするための位置合わせ行列を決定する処理(「処理2」と記載する場合がある)の一例を説明するための説明図である。ここでは、検出部260が、
図5の(A)に示された処理1におけるマッチング結果から、位置合わせ行列を決定する一例を主に説明する。
【0110】
検出部260は、検出3Dマップの複数の点P
dのそれぞれについて、点P
dの当該点P
dにマッチングされた点P
bに対するマップ空間における位置の誤差を決定し、当該位置の誤差の総和が最小となるように、位置合わせ行列を決定する。位置合わせ行列は、例えば、回転行列を含む。位置合わせ行列は、例えば、並行移動行列を含む。
図5の(B)に示される一例において、検出部260は、
図5の(A)に示された処理1におけるマッチング結果に基づいて、点P
d1の点P
b1に対するマップ空間における位置の誤差e
1、点P
d2の点P
b3に対するマップ空間における位置の誤差e
2、点P
d3の点P
b3に対するマップ空間における位置の誤差e
3、点P
d4の点P
b4に対するマップ空間における位置の誤差e
4、点P
d5の点P
b4に対するマップ空間における位置の誤差e
5、及び点P
d6の点P
b6に対するマップ空間における位置の誤差e
6の総和e
total=e
1+e
2+e
3+e
4+e
5+e
6が最小となるように、位置合わせ行列を決定する。
【0111】
図5の(C)は、情報処理装置200が、検出3Dマップと背景3Dマップとの間の位置関係が予め定められた終了条件を満たしているか否かを判定する処理(「処理3」と記載する場合がある)の一例を説明するための説明図である。ここでは、検出部260が、
図5の(B)に示された処理2によって決定された位置合わせ行列を用いて検出3Dマップを背景3Dマップに位置合わせしているものとして、説明を続ける。
【0112】
検出部260は、検出3Dマップと背景3Dマップとの間の位置関係が終了条件を満たしていると判定した場合、検出3Dマップと背景3Dマップとを位置合わせする処理を終了させてよい。これにより、検出部260は、検出3Dマップ内の複数の点Pdのそれぞれと背景3Dマップ内の複数の点Pbのそれぞれとを対応付ける処理を完了させる。一方で、検出部260は、検出3Dマップと背景3Dマップとの間の位置関係が終了条件を満たしていないと判定した場合、処理1を再度実行してよい。この場合、検出部260は、検出3Dマップと背景3Dマップとの間の位置関係が終了条件を満たしていると判定するまで、処理1から処理3を繰り返し実行する。
【0113】
終了条件は、例えば、検出3Dマップが背景3Dマップに位置合わせされた後の検出3Dマップの点P
dのそれぞれと、背景3Dマップの点P
bのそれぞれのとのマップ空間における位置の誤差の総和が、予め定められ誤差閾値より小さいことである。検出部260は、例えば、最近傍点探索を実行することによって、検出3Dマップが背景3Dマップに位置合わせされた後の検出3Dマップの点P
dからのマップ空間上の距離が最も短い点P
bを特定することによって、当該点P
dを点P
bにマッチングする。
図5の(C)に示される一例において、検出部260は、点P
d1を点P
b1にマッチングし、点P
d2を点P
b2にマッチングし、点P
d3を点P
b3にマッチングし、点P
d4を点P
b4にマッチングし、点P
d5を点P
b5にマッチングし、且つ、点P
d6を点P
b6にマッチングしてよい。その後、検出部260は、点P
d1の点P
b1に対するマップ空間における位置の誤差e'
1、点P
d2の点P
b2に対するマップ空間における位置の誤差e'
2、点P
d3の点P
b3に対するマップ空間における位置の誤差e'
3、点P
d4の点P
b4に対するマップ空間における位置の誤差e'
4、点P
d5の点P
b5に対するマップ空間における位置の誤差e'
5、及び点P
d6の点P
b6に対するマップ空間における位置の誤差e'
6の総和e'
total=e'
1+e'
2+e'
3+e'
4+e'
5+e'
6が誤差閾値より小さい場合、検出3Dマップと背景3Dマップとの間の位置関係が終了条件を満たしていると判定してよい。
【0114】
図6は、情報処理装置200がノーマルモードで検出対象を検出する一例を説明するための説明図である。ここでは、情報処理装置200がDBSCANアルゴリズムを実行することによって、複数の点P
tから検出対象を検出する一例を主に説明する。尚、
図6における「□」は、ターゲット点であるものとする。
【0115】
図6の(A)は、検出部260が、一のターゲット点までのマップ空間上の距離がεより短い他のターゲット点を検出する一例を説明するための説明図である。ここでは、検出部260は、点P
t1までのマップ空間上の距離がεより短い他のターゲット点を検出するものとする。尚、点P
t1は、検出部260による複数の点P
tの分類処理の開始点であるものとして、説明を続ける。
【0116】
図6の(A)に示される一例において、検出部260は、点P
t1までのマップ空間上の距離がεより短い他のターゲット点として、点P
t2、点P
t3及び点P
t4を検出する。その後、検出部260は、点P
t1に対応する他のターゲット点の数がN
cより多いか否かを判定する。
図6に示される一例では、N
c=2であるものとして、説明を続ける。
【0117】
図6の(A)に示される一例において、点P
t1に対応する他のターゲット点の数が点P
t2、点P
t3及び点P
t4の計3個>N
cであるので、検出部260は、点P
t1をコア点P
c1に分類する。そして、検出部260は、コア点P
c1がクラスタ1に属すると決定する。
【0118】
図6の(B)は、検出部260が、一のターゲット点までのマップ空間上の距離がεより短い他のターゲット点を検出する他の一例を説明するための説明図である。ここでは、検出部260は、点P
t2までのマップ空間上の距離がεより短い他のターゲット点と、点P
t4までのマップ空間上の距離がεより短い他のターゲット点とをそれぞれ検出するものとする。
【0119】
図6の(B)に示される一例において、検出部260は、点P
t2までのマップ空間上の距離がεより短い他のターゲット点として、点P
t1、点P
t3及び点P
t5を検出する。その後、検出部260は、点P
t2に対応する他のターゲット点の数がN
cより多いか否かを判定する。
図6の(B)に示される一例において、点P
t2に対応する他のターゲット点の数が点P
t1、点P
t3及び点P
t5の計3個>N
cであるので、検出部260は、点P
t2をコア点P
c2に分類する。そして、検出部260は、コア点P
c2がクラスタ1に属すると決定する。
【0120】
また、
図6の(B)に示される一例において、検出部260は、点P
t4までのマップ空間上の距離がεより短い他のターゲット点として、点P
t1及び点P
t6を検出する。その後、検出部260は、点P
t4に対応する他のターゲット点の数がN
cより多いか否かを判定する。
図6の(B)に示される一例において、点P
t4に対応する他のターゲット点の数が点P
t1及び点P
t6の計2個=N
cであり、且つ、コア点P
c1が点P
t4に対応する他のターゲット点に含まれるので、検出部260は、点P
t4を境界点P
e4に分類する。そして、検出部260は、境界点P
e4がクラスタ1に属すると決定する。
【0121】
図6の(C)は、検出部260が、一のターゲット点までのマップ空間上の距離がεより短い他のターゲット点を検出する他の一例を説明するための説明図である。ここでは、検出部260は、点P
t6までのマップ空間上の距離がεより短い他のターゲット点と、点P
t7までのマップ空間上の距離がεより短い他のターゲット点とをそれぞれ検出するものとする。
【0122】
図6の(C)に示される一例において、検出部260は、点P
t6までのマップ空間上の距離がεより短い他のターゲット点として、点P
t4を検出する。その後、検出部260は、点P
t6に対応する他のターゲット点の数がN
cより多いか否かを判定する。
図6の(C)に示される一例において、点P
t6に対応する他のターゲット点の数が点P
t4の計1個<N
cであり、且つ、コア点が点P
t6に対応する他のターゲット点に含まれないので、検出部260は、点P
t6をノイズ点P
n6に分類する。そして、検出部260は、ノイズ点P
n6を検出3Dマップから削除する。
【0123】
また、
図6の(C)に示される一例において、検出部260は、点P
t7までのマップ空間上の距離がεより短い他のターゲット点が存在しないので、点P
t7をノイズ点P
n7に分類する。そして、検出部260は、ノイズ点P
n7を検出3Dマップから削除する。一のターゲット点までのマップ空間上の距離がεより短い他のターゲット点の数が0である場合は、当該他のターゲット点の数がN
cより少なく、且つ、コア点が他のターゲット点に含まれない場合の一例であってよい。
【0124】
検出部260は、分類対象の点P
tがなくなるまで、分類処理を実行してよい。その後、検出部260は、複数の点P
tのクラスタリングの結果に基づいて、検出対象を検出する。
図6に示される一例において、検出部260は、クラスタ1に属するとクラスタリングされた点P
tの数がN
tより多い場合に、クラスタ1に対応するエリアに検出対象が存在すると判定する。
【0125】
尚、一のターゲット点までのマップ空間上の距離がεより短い他のターゲット点の数=Ncである場合に、検出部260が当該一のターゲット点をコア点Pcに分類しない処理を、当該一のターゲット点までのマップ空間上の距離がεより短い他のターゲット点の数=Ncである場合に、検出部260が当該一のターゲット点をコア点Pcに分類する処理に置き換えてもよい。
【0126】
図7は、情報処理装置200が密集モードで検出対象を検出する一例を説明するための説明図である。ここでは、情報処理装置200がグリッド占有アルゴリズムを実行することによって、複数の点P
tから検出対象を検出する一例を主に説明する。尚、
図7における「□」は、点P
tであるものとする。
【0127】
図7において、マップ空間がXYZ座標系で表されている。ここでは、分割部258が、検出3Dマップのマップ空間におけるZ=0のXY面を、検出対象のサイズに基づいてグリッドセルサイズが定められた複数のグリッドセルに分割したものとして、説明を続ける。
【0128】
検出部260は、分割部258によって分割された複数のグリッドセルに基づいて、検出対象を検出する。検出部260は、例えば、分割部258によって分割された複数のグリッドセルのうち、マップ空間におけるZ軸方向に存在する点Ptの数がNgより多いグリッドセルに対応するエリアに検出対象が存在すると判定する。
【0129】
図7に示される一例において、検出部260は、グリッドセル1のZ軸方向に存在する点P
tの数がN
gより多いので、グリッドセル1に対応するエリアに検出対象が存在すると判定する。一方で、
図7に示される一例において、検出部260は、グリッドセル2のZ軸方向に存在する点P
tの数がN
gより少ないので、グリッドセル2に対応するエリアに検出対象が存在しないと判定する。この場合、検出部260は、グリッドセル2のZ軸方向に存在する点P
tをノイズと見なし、当該点P
tを削除してよい。
【0130】
図8は、システム10の処理の流れの一例を説明するための説明図である。ここでは、情報処理装置200が検出対象を検出するための初期設定を実行する場合の処理の流れの一例を主に説明する。
【0131】
ステップ(ステップをSと省略して記載する場合がある。)102において、取得部252は、回転式LiDAR100から、ネットワーク20を介して、回転式LiDAR100によって測定された測定結果を取得する。生成部254は、取得部252が取得した測定結果に基づいて、背景3Dマップを生成する。
【0132】
S104において、ゾーン設定部256は、S102で生成部254によって生成された背景3Dマップに対して、複数のゾーンを設定する。S106において、生成部254はS102で生成した背景3Dマップを記憶部250に記憶し、ゾーン設定部256はS104で設定した複数のゾーンを示すゾーン情報を記憶部250に記憶する。
【0133】
S108において、表示制御部264は、S104でゾーン設定部256によって設定された複数のゾーンが重畳表示された状態で、S102で生成部254によって生成された背景3Dマップを表示するように、表示部270の表示を制御する。表示部270は、表示制御部264による制御に従って、複数のゾーンが重畳表示された状態の背景3Dマップを表示する。
【0134】
図9は、システム10の処理の流れの他の一例を説明するための説明図である。ここでは、情報処理装置200がノーマルモードで検出対象を検出する場合の処理の流れの一例を主に説明する。
【0135】
S202において、取得部252は、回転式LiDAR100から、ネットワーク20を介して、回転式LiDAR100によって測定された測定結果を取得する。生成部254は、取得部252が取得した測定結果に基づいて、検出3Dマップを生成する。検出部260は、記憶部250に記憶されている背景3Dマップと、生成部254によって生成された検出3Dマップとを比較することによって、検出3Dマップをフィルタリングする。
【0136】
S204において、検出部260は、S202でフィルタリングした検出3Dマップに対してクラスタリングアルゴリズムを実行して、各ゾーンに対応するエリアに存在する検出対象を検出する。S206において、検出部260は、各ゾーンに対応するエリアに存在する検出対象の数を含む検出結果を記憶部250に記憶する。
【0137】
S208において、表示制御部264は、S204で検出部260によって検出された検出対象の占有領域を包含する境界ボックスが重畳表示された状態で、S202で生成部254によって生成された検出3Dマップを表示するように、表示部270の表示を制御する。表示部270は、表示制御部264による制御に従って、境界ボックスが重畳表示された状態の検出3Dマップを表示する。
【0138】
図10は、システム10の処理の流れの他の一例を説明するための説明図である。ここでは、情報処理装置200が密集モードで検出対象を検出する場合の処理の流れの一例を主に説明する。
【0139】
S302において、取得部252は、回転式LiDAR100から、ネットワーク20を介して、回転式LiDAR100によって測定された測定結果を取得する。生成部254は、取得部252が取得した測定結果に基づいて、検出3Dマップを生成する。検出部260は、記憶部250に記憶されている背景3Dマップと、生成部254によって生成された検出3Dマップとを比較することによって、検出3Dマップをフィルタリングする。
【0140】
S304において、検出部260は、S202でフィルタリングした検出3Dマップに対してグリッド占有アルゴリズムを実行して、各ゾーンに対応するエリアに存在する検出対象を検出する。S306において、検出部260は、各ゾーンに対応するエリアに存在する検出対象の数を含む検出結果を記憶部250に記憶する。
【0141】
S308において、表示制御部264は、S304で検出部260によって検出された検出対象の占有領域を包含する境界ボックスが重畳表示された状態で、S302で生成部254によって生成された検出3Dマップを表示するように、表示部270の表示を制御する。表示部270は、表示制御部264による制御に従って、境界ボックスが重畳表示された状態の検出3Dマップを表示する。
【0142】
図11は、回転式LiDAR100又は情報処理装置200として機能するコンピュータ1200のハードウェア構成の一例を概略的に示す。コンピュータ1200にインストールされたプログラムは、コンピュータ1200を、上記実施形態に係る装置の1又は複数の「部」として機能させ、又はコンピュータ1200に、上記実施形態に係る装置に関連付けられるオペレーション又は当該1又は複数の「部」を実行させることができ、及び/又はコンピュータ1200に、上記実施形態に係るプロセス又は当該プロセスの段階を実行させることができる。そのようなプログラムは、コンピュータ1200に、本明細書に記載のフローチャート及びブロック図のブロックのうちのいくつか又はすべてに関連付けられた特定のオペレーションを実行させるべく、CPU1212によって実行されてよい。
【0143】
本実施形態によるコンピュータ1200は、CPU1212、RAM1214、及びグラフィックコントローラ1216を含み、それらはホストコントローラ1210によって相互に接続されている。コンピュータ1200はまた、通信インタフェース1222、記憶装置1224、DVDドライブ1226、及びICカードドライブのような入出力ユニットを含み、それらは入出力コントローラ1220を介してホストコントローラ1210に接続されている。DVDドライブ1226は、DVD-ROMドライブ及びDVD-RAMドライブ等であってよい。記憶装置1224は、ハードディスクドライブ及びソリッドステートドライブ等であってよい。コンピュータ1200はまた、ROM1230及びキーボード1242のようなレガシの入出力ユニットを含み、それらは入出力チップ1240を介して入出力コントローラ1220に接続されている。
【0144】
CPU1212は、ROM1230及びRAM1214内に格納されたプログラムに従い動作し、それにより各ユニットを制御する。グラフィックコントローラ1216は、RAM1214内に提供されるフレームバッファ等又はそれ自体の中に、CPU1212によって生成されるイメージデータを取得し、イメージデータがディスプレイデバイス1218上に表示されるようにする。
【0145】
通信インタフェース1222は、ネットワークを介して他の電子デバイスと通信する。記憶装置1224は、コンピュータ1200内のCPU1212によって使用されるプログラム及びデータを格納する。DVDドライブ1226は、プログラム又はデータをDVD-ROM1227等から読み取り、記憶装置1224に提供する。ICカードドライブは、プログラム及びデータをICカードから読み取り、及び/又はプログラム及びデータをICカードに書き込む。
【0146】
ROM1230はその中に、アクティブ化時にコンピュータ1200によって実行されるブートプログラム等、及び/又はコンピュータ1200のハードウェアに依存するプログラムを格納する。入出力チップ1240はまた、様々な入出力ユニットをUSBポート、パラレルポート、シリアルポート、キーボードポート、マウスポート等を介して、入出力コントローラ1220に接続してよい。
【0147】
プログラムは、DVD-ROM1227又はICカードのようなコンピュータ可読記憶媒体によって提供される。プログラムは、コンピュータ可読記憶媒体から読み取られ、コンピュータ可読記憶媒体の例でもある記憶装置1224、RAM1214、又はROM1230にインストールされ、CPU1212によって実行される。これらのプログラム内に記述される情報処理は、コンピュータ1200に読み取られ、プログラムと、上記様々なタイプのハードウェアリソースとの間の連携をもたらす。装置又は方法が、コンピュータ1200の使用に従い情報のオペレーション又は処理を実現することによって構成されてよい。
【0148】
例えば、通信がコンピュータ1200及び外部デバイス間で実行される場合、CPU1212は、RAM1214にロードされた通信プログラムを実行し、通信プログラムに記述された処理に基づいて、通信インタフェース1222に対し、通信処理を命令してよい。通信インタフェース1222は、CPU1212の制御の下、RAM1214、記憶装置1224、DVD-ROM1227、又はICカードのような記録媒体内に提供される送信バッファ領域に格納された送信データを読み取り、読み取られた送信データをネットワークに送信し、又はネットワークから受信した受信データを記録媒体上に提供される受信バッファ領域等に書き込む。
【0149】
また、CPU1212は、記憶装置1224、DVDドライブ1226(DVD-ROM1227)、ICカード等のような外部記録媒体に格納されたファイル又はデータベースの全部又は必要な部分がRAM1214に読み取られるようにし、RAM1214上のデータに対し様々なタイプの処理を実行してよい。CPU1212は次に、処理されたデータを外部記録媒体にライトバックしてよい。
【0150】
様々なタイプのプログラム、データ、テーブル、及びデータベースのような様々なタイプの情報が記録媒体に格納され、情報処理を受けてよい。CPU1212は、RAM1214から読み取られたデータに対し、本開示の随所に記載され、プログラムの命令シーケンスによって指定される様々なタイプのオペレーション、情報処理、条件判断、条件分岐、無条件分岐、情報の検索/置換等を含む、様々なタイプの処理を実行してよく、結果をRAM1214に対しライトバックする。また、CPU1212は、記録媒体内のファイル、データベース等における情報を検索してよい。例えば、各々が第2の属性の属性値に関連付けられた第1の属性の属性値を有する複数のエントリが記録媒体内に格納される場合、CPU1212は、当該複数のエントリの中から、第1の属性の属性値が指定されている条件に一致するエントリを検索し、当該エントリ内に格納された第2の属性の属性値を読み取り、それにより予め定められた条件を満たす第1の属性に関連付けられた第2の属性の属性値を取得してよい。
【0151】
上で説明したプログラム又はソフトウェアモジュールは、コンピュータ1200上又はコンピュータ1200近傍のコンピュータ可読記憶媒体に格納されてよい。また、専用通信ネットワーク又はインターネットに接続されたサーバシステム内に提供されるハードディスク又はRAMのような記録媒体が、コンピュータ可読記憶媒体として使用可能であり、それによりプログラムを、ネットワークを介してコンピュータ1200に提供する。
【0152】
本実施形態におけるフローチャート及びブロック図におけるブロックは、オペレーションが実行されるプロセスの段階又はオペレーションを実行する役割を持つ装置の「部」を表わしてよい。特定の段階及び「部」が、専用回路、コンピュータ可読記憶媒体上に格納されるコンピュータ可読命令と共に供給されるプログラマブル回路、及び/又はコンピュータ可読記憶媒体上に格納されるコンピュータ可読命令と共に供給されるプロセッサによって実装されてよい。専用回路は、デジタル及び/又はアナログハードウェア回路を含んでよく、集積回路(IC)及び/又はディスクリート回路を含んでよい。プログラマブル回路は、例えば、フィールドプログラマブルゲートアレイ(FPGA)、及びプログラマブルロジックアレイ(PLA)等のような、論理積、論理和、排他的論理和、否定論理積、否定論理和、及び他の論理演算、フリップフロップ、レジスタ、並びにメモリエレメントを含む、再構成可能なハードウェア回路を含んでよい。
【0153】
コンピュータ可読記憶媒体は、適切なデバイスによって実行される命令を格納可能な任意の有形なデバイスを含んでよく、その結果、そこに格納される命令を有するコンピュータ可読記憶媒体は、フローチャート又はブロック図で指定されたオペレーションを実行するための手段を作成すべく実行され得る命令を含む、製品を備えることになる。コンピュータ可読記憶媒体の例としては、電子記憶媒体、磁気記憶媒体、光記憶媒体、電磁記憶媒体、半導体記憶媒体等が含まれてよい。コンピュータ可読記憶媒体のより具体的な例としては、フロッピー(登録商標)ディスク、ディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROM又はフラッシュメモリ)、電気的消去可能プログラマブルリードオンリメモリ(EEPROM)、静的ランダムアクセスメモリ(SRAM)、コンパクトディスクリードオンリメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、ブルーレイ(登録商標)ディスク、メモリスティック、集積回路カード等が含まれてよい。
【0154】
コンピュータ可読命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、又はSmalltalk(登録商標)、JAVA(登録商標)、C++等のようなオブジェクト指向プログラミング言語、及び「C」プログラミング言語又は同様のプログラミング言語のような従来の手続型プログラミング言語を含む、1又は複数のプログラミング言語の任意の組み合わせで記述されたソースコード又はオブジェクトコードのいずれかを含んでよい。
【0155】
コンピュータ可読命令は、汎用コンピュータ、特殊目的のコンピュータ、若しくは他のプログラム可能なデータ処理装置のプロセッサ、又はプログラマブル回路が、フローチャート又はブロック図で指定されたオペレーションを実行するための手段を生成するために当該コンピュータ可読命令を実行すべく、ローカルに又はローカルエリアネットワーク(LAN)、インターネット等のようなワイドエリアネットワーク(WAN)を介して、汎用コンピュータ、特殊目的のコンピュータ、若しくは他のプログラム可能なデータ処理装置のプロセッサ、又はプログラマブル回路に提供されてよい。プロセッサの例としては、コンピュータプロセッサ、処理ユニット、マイクロプロセッサ、デジタル信号プロセッサ、コントローラ、マイクロコントローラ等を含む。
【0156】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更又は改良を加えることが可能であることが当業者に明らかである。そのような変更又は改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【0157】
特許請求の範囲、明細書、及び図面中において示した装置、システム、プログラム、及び方法における動作、手順、ステップ、及び段階などの各処理の実行順序は、特段「より前に」、「先立って」などと明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、及び図面中の動作フローに関して、便宜上「まず、」、「次に、」などを用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【0158】
10 システム、20 ネットワーク、100 回転式LiDAR、102 制御部、104 取得部、106 生成部、108 通信部、110 LiDAR、115 出力部、120 搭載部、130 モータ、150 筐体、200 情報処理装置、250 記憶部、252 取得部、254 生成部、256 ゾーン設定部、257 検出モード設定部、258 分割部、260 検出部、262 監視部、264 表示制御部、270 表示部、300 センサ、1200 コンピュータ、1210 ホストコントローラ、1212 CPU、1214 RAM、1216 グラフィックコントローラ、1218 ディスプレイデバイス、1220 入出力コントローラ、1222 通信インタフェース、1224 記憶装置、1226 DVDドライブ、1227 DVD-ROM、1230 ROM、1240 入出力チップ、1242 キーボード