(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-21
(45)【発行日】2024-01-04
(54)【発明の名称】自律走行システムのためのNDT地図データの圧縮方法、装置およびコンピュータプログラム
(51)【国際特許分類】
G09B 29/00 20060101AFI20231222BHJP
G06T 17/05 20110101ALI20231222BHJP
【FI】
G09B29/00 Z
G06T17/05
(21)【出願番号】P 2022187490
(22)【出願日】2022-11-24
【審査請求日】2022-11-24
(31)【優先権主張番号】10-2022-0025712
(32)【優先日】2022-02-28
(33)【優先権主張国・地域又は機関】KR
(73)【特許権者】
【識別番号】521284440
【氏名又は名称】ライドフラックス インク
(74)【代理人】
【識別番号】100083138
【氏名又は名称】相田 伸二
(74)【代理人】
【識別番号】100189625
【氏名又は名称】鄭 元基
(74)【代理人】
【識別番号】100196139
【氏名又は名称】相田 京子
(74)【代理人】
【識別番号】100199004
【氏名又は名称】服部 洋
(72)【発明者】
【氏名】キム ジウン
(72)【発明者】
【氏名】ジョン ハウク
【審査官】田中 洋行
(56)【参考文献】
【文献】特開2009-055308(JP,A)
【文献】特開2003-023357(JP,A)
【文献】特開2017-191539(JP,A)
【文献】米国特許出願公開第2019/0242714(US,A1)
【文献】中国特許出願公開第103187978(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G09B 23/00-29/14
G06T 17/05
(57)【特許請求の範囲】
【請求項1】
コンピューティング装置によって遂行される、所定の地域に対する3次元ポイントクラウドを正規分布集合でモデリングすることによって生成されたNDT(Normal Distribution Transform)地図データの圧縮方法
であって、
前記NDT地図データの生成は、
前記所定の地域に対する3次元ポイントクラウドを格子化して複数の3次元格子空間を生成する段階;
前記生成された複数の3次元格子空間それぞれに含まれた3次元ポイントクラウドそれぞれを複数の正規分布にモデリングする段階;
前記生成された複数の3次元格子空間それぞれに対応する前記複数の正規分布それぞれに対する平均ベクトルを算出し、前記算出された平均ベクトルを利用して平均ベクトルデータを生成する段階;
前記生成された複数の3次元格子空間それぞれに対応する前記複数の正規分布それぞれに対する共分散行列を算出し、前記算出された共分散行列を利用して共分散行列データを生成する段階;および
前記生成された平均ベクトルデータおよび前記生成された共分散行列データを利用して前記所定の地域に対する前記NDT地図データを生成する段階、を含み、
前記生成された平均ベクトルデータは、
前記生成された複数の3次元格子空間それぞれの中心位置に対する中心ベクトルおよび前記中心位置からのオフセットベクトルを含み、
前記生成された共分散行列データは、
前記生成された複数の3次元格子空間それぞれに含まれたポイントの標準偏差および回転変換角度を含み、
前記NDT地図データの圧縮方法は、更に、
前記NDT地図データに含まれた
前記平均ベクトルデータを加工する段階;
前記NDT地図データに含まれた
前記共分散行列データを加工する段階;および
前記加工された平均ベクトルデータおよび前記加工された共分散行列データを利用して圧縮されたNDT地図データを生成する段階を
含み、
前記平均ベクトルデータを加工する段階は、
前記中心ベクトルの表現方式を変換する段階;
前記オフセットベクトルの表現方式を変換する段階;および
前記変換された中心ベクトルと前記変換されたオフセットベクトルを利用して圧縮された平均ベクトルデータを生成する段階を含み、
前記共分散行列データを加工する段階は、
前記標準偏差の表現方式を変換する段階;
前記回転変換角度の表現方式を変換する段階;および
前記変換された標準偏差および前記変換された回転変換角度を利用して圧縮された共分散行列データを生成する段階を含む、
自律走行システムのためのNDT地図データの圧縮方法。
【請求項2】
前記中心ベクトルの表現方式を変換する段階は、
前記中心ベクトルをツリー資料構造の形態に変換するものの、前記ツリー資料構造は一つ以上のノードを含み、前記一つ以上のノードが非線形的な階層構造を有するものである、段階を含む、請求項
1に記載の自律走行システムのためのNDT地図データの圧縮方法。
【請求項3】
前記オフセットベクトルの表現方式を変換する段階は、
前記生成された複数の3次元格子空間それぞれのいずれか一辺の長さを基準として第1基準範囲を設定する段階;および
前記生成された複数の3次元格子空間それぞれに対するオフセットベクトルの成分を前記設定された第1基準範囲内の値に変換する段階を含む、請求項
1記載の自律走行システムのためのNDT地図データの圧縮方法。
【請求項4】
前記標準偏差の表現方式を変換する段階は、
前記生成された複数の3次元格子空間内の対角線の長さを基準として第2基準範囲を設定する段階;および
前記生成された複数の3次元格子空間それぞれに対する標準偏差を前記設定された第2基準範囲内の値に変換する段階を含む、請求項
1に記載の自律走行システムのためのNDT地図データの圧縮方法。
【請求項5】
前記回転変換角度の表現方式を変換する段階は、
X軸、Y軸およびZ軸それぞれに対する基準回転範囲を設定する段階;および
前記回転変換
角度を前記設定された基準回転範囲内の値に変換する段階を含む、請求項
1に記載の自律走行システムのためのNDT地図データの圧縮方法。
【請求項6】
予め設定された整合性能に基づいて前記平均ベクトルデータおよび前記共分散行列データそれぞれに対する圧縮の程度を設定し、前記設定された圧縮の程度に応じて前記平均ベクトルデータおよび前記共分散行列データを加工するものの、同一の整合性能が設定される場合、前記共分散行列データの圧縮の程度が前記平均ベクトルデータの圧縮の程度より大きいか同一であるように設定されるものである、段階をさらに含む、請求項1に記載の自律走行システムのためのNDT地図データの圧縮方法。
【請求項7】
前記NDT地図データに含まれた複数の客体それぞれに対する頻度数を算出し、前記算出された頻度数に基づいて、前記NDT地図データ上に前記複数の客体それぞれに対応する領域に対する平均ベクトルデータおよび共分散行列データの圧縮の程度を設定する段階をさらに含む、請求項1に記載の自律走行システムのためのNDT地図データの圧縮方法。
【請求項8】
前記NDT地図データに含まれた複数の客体のうち互いに隣接した位置に配置される第1客体と第2客体が同一の属性を有する場合、前記第1客体と前記第2客体を一つのグループにグループ化する段階をさらに含み、
前記平均ベクトルデータを加工する段階は、
前記一つのグループに含まれた客体の平均ベクトルデータを結合して一つの平均ベクトルデータを生成し、生成された一つの平均ベクトルデータを加工する段階を含み、
前記共分散行列データを加工する段階は、
前記一つのグループに含まれた客体の共分散行列データを結合して一つの共分散行列データを生成し、生成された一つの共分散行列データを加工する段階を含む、請求項1に記載の自律走行システムのためのNDT地図データの圧縮方法。
【請求項9】
前記NDT地図データに含まれた複数の客体のうち事前に設定された位置関係を有する二つ以上の客体をグループ化する段階をさらに含み、
前記平均ベクトルデータを加工する段階は、
前記一つのグループに含まれた客体の平均ベクトルデータを結合して一つの平均ベクトルデータを生成し、生成された一つの平均ベクトルデータを加工する段階を含み、
前記共分散行列データを加工する段階は、
前記一つのグループに含まれた客体の共分散行列データを結合して一つの共分散行列データを生成し、生成された一つの共分散行列データを加工する段階を含む、請求項1に記載の自律走行システムのためのNDT地図データの圧縮方法。
【請求項10】
前記NDT地図データを予め学習された人工知能モデルの入力にして前記圧縮されたNDT地図データを抽出するものの、前記予め学習された人工知能モデルはエンコーダおよびデコーダを含み、複数の圧縮されたNDT地図データを学習データにして学習されたモデルである、段階を含む、請求項1に記載の自律走行システムのためのNDT地図データの圧縮方法。
【請求項11】
プロセッサ;
ネットワークインターフェース;
メモリ;および
前記メモリにロード(load)され、前記プロセッサに、
所定の地域に対する3次元ポイントクラウドを正規分布集合でモデリングすることによって生成されたNDT(Normal Distribution Transform)地図データの圧縮方法を実行させるためのコンピュータプログラム
を含み、
前記コンピュータプログラムは、
前記NDT地図データを生成するインストラクションを含み、該インストラクションは、
前記所定の地域に対する3次元ポイントクラウドを格子化して複数の3次元格子空間を生成するインストラクション;
前記生成された複数の3次元格子空間それぞれに含まれた3次元ポイントクラウドそれぞれを複数の正規分布にモデリングするインストラクション;
前記生成された複数の3次元格子空間それぞれに対応する前記複数の正規分布それぞれに対する平均ベクトルを算出し、前記算出された平均ベクトルを利用して平均ベクトルデータを生成するインストラクション;
前記生成された複数の3次元格子空間それぞれに対応する前記複数の正規分布それぞれに対する共分散行列を算出し、前記算出された共分散行列を利用して共分散行列データを生成するインストラクション;および
前記生成された平均ベクトルデータおよび前記生成された共分散行列データを利用して前記所定の地域に対する前記NDT地図データを生成するインストラクション、を含み、
前記生成された平均ベクトルデータは、
前記生成された複数の3次元格子空間それぞれの中心位置に対する中心ベクトルおよび前記中心位置からのオフセットベクトルを含み、
前記生成された共分散行列データは、
前記生成された複数の3次元格子空間それぞれに含まれたポイントの標準偏差および回転変換角度を含み、
前記コンピュータプログラムは更に、
前記NDT地図データに含まれた前記平均ベクトルデータを加工するインストラクション;
前記NDT地図データに含まれた前記共分散行列データを加工するインストラクション;および
前記加工された平均ベクトルデータおよび前記加工された共分散行列データを利用して圧縮されたNDT地図データを生成するインストラクションを含み、
前記平均ベクトルデータを加工するインストラクションは、
前記中心ベクトルの表現方式を変換するインストラクション;
前記オフセットベクトルの表現方式を変換するインストラクション;および
前記変換された中心ベクトルと前記変換されたオフセットベクトルを利用して圧縮された平均ベクトルデータを生成するインストラクションを含み、
前記共分散行列データを加工するインストラクションは、
前記標準偏差の表現方式を変換するインストラクション;
前記回転変換角度の表現方式を変換するインストラクション;および
前記変換された標準偏差および前記変換された回転変換角度を利用して圧縮された共分散行列データを生成するインストラクションを含む、
自律走行システムのためのNDT地図データの圧縮方法を遂行するコンピューティング装置。
【請求項12】
コンピューティング
装置に、所定の地域に対する3次元ポイントクラウドを正規分布集合でモデリングすることによって生成されたNDT(Normal Distribution Transform)地図データの圧縮手順を実行させるコンピュータプログラムであって、
該コンピュータプログラムは、前記コンピューティング装置に、
前記所定の地域に対する3次元ポイントクラウドを格子化して複数の3次元格子空間を生成する段階;
前記生成された複数の3次元格子空間それぞれに含まれた3次元ポイントクラウドそれぞれを複数の正規分布にモデリングする段階;
前記生成された複数の3次元格子空間それぞれに対応する前記複数の正規分布それぞれに対する平均ベクトルを算出し、前記算出された平均ベクトルを利用して平均ベクトルデータを生成する段階;
前記生成された複数の3次元格子空間それぞれに対応する前記複数の正規分布それぞれに対する共分散行列を算出し、前記算出された共分散行列を利用して共分散行列データを生成する段階;および
前記生成された平均ベクトルデータおよび前記生成された共分散行列データを利用して前記所定の地域に対する前記NDT地図データを生成する段階、を含むNDT地図データの生成段階を実行させ、
前記生成された平均ベクトルデータは、
前記生成された複数の3次元格子空間それぞれの中心位置に対する中心ベクトルおよび前記中心位置からのオフセットベクトルを含み、
前記生成された共分散行列データは、
前記生成された複数の3次元格子空間それぞれに含まれたポイントの標準偏差および回転変換角度を含み、
更に、前記コンピュータプログラムは、前記コンピューティング装置に、
前記NDT地図データに含まれた前記平均ベクトルデータを加工する段階;
前記NDT地図データに含まれた前記共分散行列データを加工する段階;および
前記加工された平均ベクトルデータおよび前記加工された共分散行列データを利用して圧縮されたNDT地図データを生成する段階を含む、地図データの圧縮段階を実行させるコンピュータプログラムであり、
前記平均ベクトルデータを加工する段階は、
前記中心ベクトルの表現方式を変換する段階;
前記オフセットベクトルの表現方式を変換する段階;および
前記変換された中心ベクトルと前記変換されたオフセットベクトルを利用して圧縮された平均ベクトルデータを生成する段階を含み、
前記共分散行列データを加工する段階は、
前記標準偏差の表現方式を変換する段階;
前記回転変換角度の表現方式を変換する段階;および
前記変換された標準偏差および前記変換された回転変換角度を利用して圧縮された共分散行列データを生成する段階を含む、
自律走行システムのためのNDT地図データの圧縮方法を実行させるためのコンピュータプログラム
【発明の詳細な説明】
【技術分野】
【0001】
本発明の多様な実施例は自律走行システムのためのNDT地図データの圧縮方法、装置およびコンピュータプログラムに関する。
【背景技術】
【0002】
車両を運転するユーザの便宜のために、各種センサと電子装置など(例:車両運転者補助システム(ADAS:Advanced Driver Assistance System)が備えられつつある趨勢であり、特に、運転者の介入なしに周辺環境を認識し、認識された周辺環境に応じて自ら与えられた目的地まで自動で走行する車両の自律走行システム(Autonomous driving System)に対する技術開発が活発に行われている。
ここで、自律走行車両は運転者の介入なしに周辺環境を認識し、認識された周辺環境に応じて自ら与えられた目的地まで自動で走行する自律走行システム機能を搭載した車両をいう。
運転者に介入なしに自律走行車両の走行動作を制御するためには、自律走行車両が自主的に理解できる地図が必要である。このように、「コンピュータが理解できる道路環境情報をデータベースの形態で予め保存しておいたもの」をデジタル地図と称し、特に自律走行用デジタル地図は単純ナビゲーション地図よりさらに詳しい情報を含んでいるという意味で「精密地図」「HD(High Definition)地図」「HAD(Highly Automated Driving)地図」と称する。
【0003】
従来には、このようなデジタル地図、精密地図として3次元ポイントクラウド(例:ライダ(Lidar)、レーダー(Radar)、深度カメラ(Depth camera)を通じて収集されたポイントクラウド)に基づいて生成された3次元ポイントクラウド地図を活用していたが、3次元ポイントクラウド地図のデータの大きさが過度に大きいため広範囲な領域に対する地図を活用し難いという問題がある。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明が解決しようとする課題は従来の問題点を解消するための目的で、所定の地域に対する3次元ポイントクラウドを正規分布集合でモデリングすることによって生成されたNDT地図データの表現方式を加工して圧縮されたNDT地図データを生成することによって、自律走行システムの走行領域の拡張性に対する制約を大幅に減らし、安定したリアルタイム動作が重要な自律走行の効率性を向上させ得る、自律走行システムのためのNDT地図データの圧縮方法、装置およびコンピュータプログラムを提供することである。
本発明が解決しようとする課題は以上で言及された課題に制限されず、言及されていないさらに他の課題は下記の記載から通常の技術者に明確に理解され得るであろう。
【課題を解決するための手段】
【0005】
前述した課題を解決するための本発明の一実施例に係る自律走行システムのためのNDT地図データの圧縮方法は、コンピューティング装置によって遂行される、所定の地域に対する3次元ポイントクラウドを正規分布集合でモデリングすることによって生成されたNDT(Normal Distribution Transform)地図データの圧縮方法において、前記NDT地図データに含まれた平均ベクトルデータを加工する段階、前記NDT地図データに含まれた共分散行列データを加工する段階および前記加工された平均ベクトルおよび前記加工された共分散行列を利用して圧縮されたNDT地図データを生成する段階を含むことができる。
【0006】
多様な実施例において、所定の地域に対する3次元ポイントクラウドを格子化して複数の3次元格子空間を生成する段階、前記生成された複数の3次元格子空間それぞれに含まれた3次元ポイントクラウドそれぞれを複数の正規分布にモデリングする段階、前記生成された複数の3次元格子空間それぞれに対応する前記複数の正規分布それぞれに対する平均ベクトルを算出し、前記算出された平均ベクトルを利用して平均ベクトルデータを生成する段階、前記生成された複数の3次元格子空間それぞれに対応する前記複数の正規分布それぞれに対する共分散行列を算出し、前記算出された共分散行列を利用して共分散行列データを生成する段階および前記生成された平均ベクトルデータおよび前記生成された共分散行列データを利用して前記所定の地域に対するNDT地図データを生成する段階をさらに含むことができる。
【0007】
多様な実施例において、前記生成された平均ベクトルデータは、前記生成された複数の3次元格子空間それぞれの中心位置に対する中心ベクトルおよびオフセットベクトルを含み、前記平均ベクトルデータを加工する段階は、前記中心ベクトルの表現方式を変換する段階、前記オフセットベクトルの表現方式を変換する段階および前記変換された中心ベクトルと前記変換されたオフセットベクトルの座標値を利用して圧縮された平均ベクトルデータを生成する段階を含むことができる。
多様な実施例において、前記中心ベクトルの表現方式を変換する段階は、前記中心ベクトルをツリー資料構造の形態に変換するものの、前記ツリー資料構造は一つ以上のノードを含み、前記一つ以上のノードが非線形的な階層構造を有するものである、段階を含むことができる。
【0008】
多様な実施例において、前記オフセットベクトルの表現方式を変換する段階は、前記生成された複数の3次元格子空間それぞれのいずれか一辺の長さを基準として第1基準範囲を設定する段階および前記生成された複数の3次元格子空間それぞれに対するオフセットベクトルの成分を前記設定された第1基準範囲内の値に変換する段階を含むことができる。
多様な実施例において、前記生成された共分散行列データは、前記生成された複数の3次元格子空間それぞれに含まれたポイントの標準偏差および回転変換角度を含み、前記共分散行列データを加工する段階は、前記標準偏差の表現方式を変換する段階、前記回転変換角度の表現方式を変換する段階および前記変換された標準偏差および前記変換された回転変換角度を利用して圧縮された共分散行列データを生成する段階を含むことができる。
多様な実施例において、前記標準偏差の表現方式を変換する段階は、前記生成された複数の3次元格子空間内の最も長い対角線の長さを基準として第2基準範囲を設定する段階および前記生成された複数の3次元格子空間それぞれに対する標準偏差を前記設定された第2基準範囲内の値に変換する段階を含むことができる。
【0009】
多様な実施例において、前記回転変換角度の表現方式を変換する段階は、X軸、Y軸およびZ軸それぞれに対する基準回転範囲を設定する段階および前記回転変換角度を前記設定された基準回転範囲内の値に変換する段階を含むことができる。
多様な実施例において、予め設定された整合性能に基づいて前記平均ベクトルデータおよび前記共分散行列データそれぞれに対する圧縮の程度を設定し、前記設定された圧縮の程度に応じて前記平均ベクトルデータおよび前記共分散行列データを加工するものの、同一の整合性能が設定される場合、前記共分散行列データの圧縮の程度が前記平均ベクトルデータの圧縮の程度より大きいか同一であるように設定されるものである、段階をさらに含むことができる。
【0010】
多様な実施例において、前記NDT地図データに含まれた複数の客体それぞれに対する頻度数を算出し、前記算出された頻度数に基づいて、前記NDT地図データ上に前記複数の客体それぞれに対応する領域に対する平均ベクトルデータおよび共分散行列データの圧縮の程度を設定する段階をさらに含むことができる。
【0011】
多様な実施例において、前記NDT地図データに含まれた複数の客体のうち互いに隣接した位置に配置される第1客体と第2客体が同一の属性を有する場合、前記第1客体と前記第2客体を一つのグループにグループ化する段階をさらに含み、前記平均ベクトルデータを加工する段階は、前記一つのグループに含まれた客体の平均ベクトルデータを結合して一つの平均ベクトルデータを生成し、生成された一つの平均ベクトルデータを加工する段階を含み、前記共分散行列データを加工する段階は、前記一つのグループに含まれた客体の共分散行列データを結合して一つの共分散行列データを生成し、生成された一つの共分散行列データを加工する段階を含むことができる。
【0012】
多様な実施例において、前記NDT地図データに含まれた複数の客体のうち事前に設定された位置関係を有する二つ以上の客体をグループ化する段階をさらに含み、前記平均ベクトルデータを加工する段階は、前記一つのグループに含まれた客体の平均ベクトルデータを結合して一つの平均ベクトルデータを生成し、生成された一つの平均ベクトルデータを加工する段階を含み、前記共分散行列データを加工する段階は、前記一つのグループに含まれた客体の共分散行列データを結合して一つの共分散行列データを生成し、生成された一つの共分散行列データを加工する段階を含むことができる。
【0013】
多様な実施例において、前記NDT地図データを予め学習された人工知能モデルの入力にして前記圧縮されたNDT地図データを抽出するものの、前記予め学習された人工知能モデルはエンコーダおよびデコーダを含み、複数の圧縮されたNDT地図データを学習データにして学習されたモデルである、段階を含むことができる。
【0014】
前述した課題を解決するための本発明の他の実施例に係る自律走行システムのためのNDT地図データの圧縮方法を遂行するコンピューティング装置は、プロセッサ、ネットワークインターフェース、メモリおよび前記メモリにロード(load)され、前記プロセッサによって実行されるコンピュータプログラムを含むものの、前記コンピュータプログラムは、所定の地域に対する3次元ポイントクラウドを正規分布集合でモデリングすることによって生成されたNDT(Normal Distribution Transform)地図データに含まれた平均ベクトルデータを加工するインストラクション(instruction)、前記NDT地図データに含まれた共分散行列データを加工するインストラクションおよび前記加工された平均ベクトルおよび前記加工された共分散行列を利用して圧縮されたNDT地図データを生成するインストラクションを含むことができる。
【0015】
前述した課題を解決するための本発明のさらに他の実施例に係るコンピュータプログラムは、コンピューティング装置と結合されて、所定の地域に対する3次元ポイントクラウドを正規分布集合でモデリングすることによって生成されたNDT(Normal Distribution Transform)地図データに含まれた平均ベクトルデータを加工する段階、前記NDT地図データに含まれた平均ベクトルデータを加工する段階、前記NDT地図データに含まれた共分散行列データを加工する段階および前記加工された平均ベクトルおよび前記加工された共分散行列を利用して圧縮されたNDT地図データを生成する段階を含むNDT地図データの圧縮方法を実行させるためにコンピューティング装置で読み取り可能な記録媒体に保存され得る。
本発明のその他の具体的な事項は詳細な説明および図面に含まれている。
【発明の効果】
【0016】
本発明の多様な実施例によると、所定の地域に対する3次元ポイントクラウドを正規分布集合でモデリングすることによって生成されたNDT地図データの表現方式を加工して圧縮されたNDT地図データを生成することによって、自律走行システムの走行領域の拡張性に対する制約を大幅に減らし、安定したリアルタイム動作が重要な自律走行の効率性を向上させ得るという利点がある。
本発明の効果は以上で言及された効果に制限されず、言及されていないさらに他の効果は下記の記載から通常の技術者に明確に理解され得るであろう。
【図面の簡単な説明】
【0017】
【
図1】本発明の一実施例に係る自律走行システムを図示した図面である。
【
図2】本発明の他の実施例に係る自律走行システムのためのNDT地図データの圧縮方法を遂行するコンピューティング装置のハードウェア構成図である。
【
図3】本発明のさらに他の実施例に係る自律走行システムのためのNDT地図データの圧縮方法のフローチャートである。
【
図4】多様な実施例において、平均ベクトルデータを加工する方法を説明するためのフローチャートである。
【
図5】多様な実施例において、共分散行列データを加工する方法を説明するためのフローチャートである。
【
図6】多様な実施例において、共分散行列データを楕円体(ellipsoid)で表現したものを例示的に図示した図面である。
【発明を実施するための形態】
【0018】
本発明の利点および特徴、そしてそれらを達成する方法は、添付される図面と共に詳細に後述されている実施例を参照すると明確となるであろう。しかし、本発明は以下で開示される実施例に制限されるものではなく、互いに異なる多様な形態で具現され得、ただし、本実施例は本発明の開示を完全なものとし、本発明が属する技術分野の通常の技術者に本発明の範疇を完全に知らせるために提供されるものであり、本発明は請求項の範疇によって定義されるのみである。
【0019】
本明細書で使われた用語は実施例を説明するためのものであり、本発明を制限しようとするものではない。本明細書で、単数型は文面で特に言及しない限り複数型も含む。明細書で使われる「含む(comprises)」および/または「含む(comprising)」は言及された構成要素の他に一つ以上の他の構成要素の存在または追加を排除しない。明細書全体に亘って同一の図面符号は同一の構成要素を指し示し、「および/または」は言及された構成要素のそれぞれおよび一つ以上のすべての組み合わせを含む。たとえ「第1」、「第2」等が多様な構成要素を叙述するために使われるが、これらの構成要素はこれらの用語によって制限されないことは言うまでもない。これらの用語は単に一つの構成要素を他の構成要素と区別するために使うものである。したがって、以下で言及される第1構成要素は本発明の技術的思想内で第2構成要素であってもよいことは言うまでもない。
【0020】
特に定義されない限り、本明細書で使われるすべての用語(技術および科学的用語を含む)は、本発明が属する技術分野の通常の技術者に共通して理解され得る意味で使われ得るであろう。また、一般的に使われる辞書に定義されている用語は、明白に特に定義されていない限り理想的にまたは過度に解釈されない。
【0021】
明細書で使われる「部」または「モジュール」という用語は、ソフトウェア、FPGAまたはASICのようなハードウェア構成要素を意味し、「部」または「モジュール」は何らかの役割を遂行する。しかし、「部」または「モジュール」はソフトウェアまたはハードウェアに限定される意味ではない。「部」または「モジュール」はアドレッシングできる保存媒体にあるように構成されてもよく、一つまたはそれ以上のプロセッサを再生させるように構成されてもよい。したがって、一例として「部」または「モジュール」はソフトウェア構成要素、客体指向ソフトウェア構成要素、クラス構成要素およびタスク構成要素のような構成要素と、プロセス、関数、属性、プロシーザー、サブルーチン、プログラムコードのセグメント、ドライバ、ファームウェア、マイクロコード、回路、データ、データベース、データ構造、テーブル、アレイおよび変数を含む。構成要素と「部」または「モジュール」内で提供される機能は、さらに小さい数の構成要素および「部」または「モジュール」で結合されるか追加的な構成要素と「部」または「モジュール」にさらに分離され得る。
【0022】
空間的に相対的な用語である「下(below)」、「下(beneath)」、「下部(lower)」、「上(above)」、「上部(upper)」等は、図面に図示されているように、一つの構成要素と他の構成要素との相関関係を容易に記述するために使われ得る。空間的に相対的な用語は図面に図示されている方向に加え、使用時または動作時の構成要素の互いに異なる方向を含む用語として理解されるべきである。例えば、図面に図示されている構成要素をひっくり返す場合、他の構成要素の「下(below)」または「下(beneath)」で記述された構成要素は、他の構成要素の「上(above)」に置かれ得る。したがって、例示的な用語である「下」は、下と上の方向をすべて含むことができる。構成要素は他の方向へも配向され得、これに伴い、空間的に相対的な用語は配向により解釈され得る。
本明細書で、コンピュータは少なくとも一つのプロセッサを含むすべての種類のハードウェア装置を意味するものであり、実施例により該当ハードウェア装置で動作するソフトウェア的な構成も包括する意味として理解され得る。例えば、コンピュータはスマートフォン、タブレットPC、デスクトップ、ノートパソコンおよび各装置で駆動されるユーザクライアントおよびアプリケーションをすべて含む意味として理解され得、また、これに制限されるものではない。
【0023】
以下、添付された図面を参照して本発明の実施例を詳細に説明する。
本明細書で説明される各段階はコンピュータによって遂行されるものとして説明されるが、各段階の主体はこれに制限されるものではなく、実施例により各段階の少なくとも一部が互いに異なる装置で遂行されてもよい。
従来のデジタル地図が有する問題を克服するために、NDT(Normal Distribution Transform)に基づいて3次元ポイントクラウドを正規分布集合でモデリングすることによって生成されるNDT地図データを使うことができる。しかし、自律走行システムの走行領域が非常に広い場合、それを表現した3次元ポイントクラウドのデータの大きさも非常に大きいため、これを利用して作ったNDT地図データの大きさも大きくならざるを得ないという限界が存在し得る。
【0024】
これは自律走行システムの走行領域拡張性に影響を及ぼす。自律走行システムの走行領域が拡張されるほどNDT地図データの大きさも大きくなるであろうし、過度に大きくなったNDT地図のデータの大きさは自律走行システムの走行領域を拡張するのに制限として作用するためである。
【0025】
このような問題点を解消するための目的で、走行領域拡張性を確保し、リアルタイムで動作する自律走行システムで効率的に使えるようにNDT地図データを効果的に圧縮できる自律走行システムのためのNDT地図データの圧縮方法、装置およびコンピュータプログラムを提案する。以下、
図1~6を参照して本発明の多様な実施例に係る自律走行システムのためのNDT地図データの圧縮方法、装置およびコンピュータプログラムについて説明することにする。
【0026】
図1は、本発明の一実施例に係る自律走行システムを図示した図面である。
図1を参照すると、本発明の一実施例に係る自律走行システムはコンピューティング装置100、ユーザ端末200、外部サーバー300およびネットワーク400を含むことができる。
【0027】
ここで、
図1に図示された自律走行システムは一実施例に従ったものであり、その構成要素が
図1に図示された実施例に限定されるものではなく、必要に応じて付加、変更または削除され得る。
【0028】
一実施例において、コンピューティング装置100は自律走行車両10の自律走行制御のための各種動作を遂行できる。
このために、まず、コンピューティング装置100は自律走行車両10の位置および姿勢を測定する動作または自律走行車両10の周辺環境を認識する動作を遂行できる。例えば、コンピューティング装置100は自律走行車両10の内部に備えられるセンサ(例:ライダセンサ、レーダーセンサ、カメラセンサなど)からセンサデータを収集することができ、収集されたセンサデータを活用して自律走行車両10の位置および姿勢を測定したり、自律走行車両10の周辺環境を認識することができる。
【0029】
また、コンピューティング装置100は自律走行車両10の自律走行制御のために、所定の地域に対するNDT(Normal Distribution Transform)地図データを生成および保存するものの、NDT地図データに含まれた正規分布集合を加工して圧縮されたNDT地図データを生成および保存すなわち、データの大きさが小さいNDT地図データを生成することによって、走行領域拡張性を確保し、リアルタイムで動作する自律走行システムで効率的に使用できるNDT地図データを生成することができる。これについては、以下で詳しく後述することにする。
【0030】
多様な実施例において、コンピューティング装置100はネットワーク400を通じてユーザ端末200と連結され得、センサデータを分析することによって測定された自律走行車両10の位置および姿勢、認識された自律走行車両10の周辺環境および生成されたNDT地図データなどの自律走行に関連した各種情報をユーザ端末200に提供することができる。
【0031】
ここで、ユーザ端末200は自律走行車両10の内部に備えられるインフォテインメントシステムであり得るが、これに限定されず、携帯性と移動性が保障される無線通信装置であって、自律走行車両10の内部に搭乗する搭乗者が所持できる携帯用端末であり得る。例えば、ユーザ端末200はナビゲーション、PCS(Personal Communication System)、GSM(Global System for Mobile communications)、PDC(Personal Digital Cellular)、PHS(Personal Handyphone System)、PDA(Personal Digital Assistant)、IMT(International Mobile Telecommunication)-2000、CDMA(Code Division Multiple Access)-2000、W-CDMA(W-Code Division Multiple Access)、Wibro(Wireless Broadband Internet)端末、スマートフォン(Smartphone)、スマートパッド(Smartpad)、タブレットPC(Tablet PC)などのようなすべての種類のハンドヘルド(Handheld)基盤の無線通信装置を含むことができるが、これに限定されない。
【0032】
また、ここで、ネットワーク400は複数の端末およびサーバーのようなそれぞれのノード相互間で情報交換が可能な連結構造を意味し得る。例えば、ネットワーク400は近距離通信網(LAN:Local Area Network)、広域通信網(WAN:Wide Area Network)、インターネット(WWW:World Wide Web)、有線と無線データ通信網、電話網、有線と無線テレビ通信網などを含むことができる。
また、ここで、無線データ通信網は3G、4G、5G、3GPP(3rd Generation Partnership Project)、5GPP(5th Generation Partnership Project)、LTE(Long Term Evolution)、WIMAX(World Interoperability for Microwave Access)、ワイファイ(Wi-Fi)、インターネット(Internet)、LAN(Local Area Network)、Wireless LAN(Wireless Local Area Network)、WAN(Wide Area Network)、PAN(Personal Area Network)、RF(Radio Frequency)、ブルートゥース(Bluetooth)ネットワーク、NFC(Near-Field Communication)ネットワーク、衛星放送ネットワーク、アナログ放送ネットワーク、DMB(Digital Multimedia Broadcasting)ネットワークなどを含むことができるが、これに限定されはしない。
【0033】
一実施例において、外部サーバー300はネットワーク400を通じてコンピューティング装置100と連結され得、コンピューティング装置100が自律走行システムのためのNDT地図データの圧縮方法を遂行するために必要な各種情報およびデータ(例:複数のポイントクラウド)を保存および管理したり、自律走行システムのためのNDT地図データの圧縮方法を遂行することによって生成される各種情報およびデータ(例:圧縮されたNDT地図データ)の提供を受けて保存および管理することができる。例えば、外部サーバー300はコンピューティング装置100の外部に別途に備えられる保存サーバーであり得るが、これに限定されない。以下、
図2を参照して自律走行システムのためのNDT地図データの圧縮方法を遂行するコンピューティング装置100のハードウェア構成について説明することにする。
【0034】
図2は、本発明の他の実施例に係る自律走行システムのためのNDT地図データの圧縮方法を遂行するコンピューティング装置のハードウェア構成図である。
図2を参照すると、本発明の他の実施例に係る自律走行システムのためのNDT地図データの圧縮方法を遂行するコンピューティング装置100は、一つ以上のプロセッサ110、プロセッサ110によって遂行されるコンピュータプログラム151をロード(Load)するメモリ120、バス130、通信インターフェース140およびコンピュータプログラム151を保存するストレージ150を含むことができる。ここで、
図2には本発明の実施例に関連する構成要素のみが図示されている。したがって、本発明が属した技術分野の通常の技術者であれば、
図2に図示された構成要素の他に他の汎用的な構成要素がさらに含まれ得ることが分かる。
【0035】
プロセッサ110はコンピューティング装置100の各構成の全般的な動作を制御する。プロセッサ110はCPU(Central Processing Unit)、MPU(Micro Processor Unit)、MCU(Micro Controller Unit)、GPU(Graphic Processing Unit)または本発明の技術分野に広く知られている任意の形態のプロセッサを含んで構成され得る。
また、プロセッサ110は本発明の実施例に係る方法を実行するための少なくとも一つのアプリケーションまたはプログラムに対する演算を遂行でき、コンピューティング装置100は一つ以上のプロセッサを具備することができる。
【0036】
多様な実施例において、プロセッサ110はプロセッサ110の内部で処理される信号(またはデータ)を一時的および/または永久的に保存するラム(RAM:Random Access Memory、図示されず)およびロム(ROM:Read-Only Memory、図示されず)をさらに含むことができる。また、プロセッサ110はグラフィック処理部、ラムおよびロムのうち少なくとも一つを含むシステムオンチップ(SoC:system on chip)形態で具現され得る。
【0037】
メモリ120は各種データ、命令および/または情報を保存する。メモリ120は本発明の多様な実施例に係る方法/動作を実行するためにストレージ150からコンピュータプログラム151をロードすることができる。メモリ120にコンピュータプログラム151がロードされると、プロセッサ110はコンピュータプログラム151を構成する一つ以上のインストラクションを実行することによって前記方法/動作を遂行できる。メモリ120はRAMのような揮発性メモリで具現され得るであろうが、本開示の技術的範囲はこれに限定されるものではない。
【0038】
バス130はコンピューティング装置100の構成要素間の通信機能を提供する。バス130はアドレスバス(address Bus)、データバス(Data Bus)および制御バス(Control Bus)などの多様な形態のバスで具現され得る。
通信インターフェース140はコンピューティング装置100の有線と無線インターネット通信を支援する。また、通信インターフェース140はインターネット通信以外の多様な通信方式を支援してもよい。このために、通信インターフェース140は本発明の技術分野に広く知られている通信モジュールを含んで構成され得る。いくつかの実施例において、通信インターフェース140は省略されてもよい。
【0039】
ストレージ150はコンピュータプログラム151を非臨時的に保存することができる。コンピューティング装置100を通じて自律走行システムのためのNDT地図データの圧縮プロセスを遂行する場合、ストレージ150は自律走行システムのためのNDT地図データの圧縮プロセスを提供するために必要な各種情報を保存することができる。
ストレージ150はROM(Read Only Memory)、EPROM(Erasable Programmable ROM)、EEPROM(Electrically Erasable Programmable ROM)、フラッシュメモリなどのような不揮発性メモリ、ハードディスク、着脱型ディスク、または本発明が属する技術分野で広く知られている任意の形態のコンピュータで読み取り可能な記録媒体を含んで構成され得る。
【0040】
コンピュータプログラム151はメモリ120にロードされる時、プロセッサ110に本発明の多様な実施例に係る方法/動作を遂行させるようにする一つ以上のインストラクションを含むことができる。すなわち、プロセッサ110は前記一つ以上のインストラクションを実行することによって、本発明の多様な実施例に係る前記方法/動作を遂行できる。
一実施例において、コンピュータプログラム151は所定の地域に対する3次元ポイントクラウドを正規分布集合でモデリングすることによって生成されたNDT(Normal Distribution Transform)地図データに含まれた平均ベクトルデータを加工する段階、NDT地図データに含まれた平均ベクトルデータを加工する段階、NDT地図データに含まれた共分散行列データを加工する段階および加工された平均ベクトルおよび加工された共分散行列を利用して圧縮されたNDT地図データを生成する段階を含むNDT地図データの圧縮方法を遂行するようにする一つ以上のインストラクションを含むことができる。
【0041】
本発明の実施例に関連して説明された方法またはアルゴリズムの段階はハードウェアで直接具現されるか、ハードウェアによって実行されるソフトウェアモジュールで具現されるか、またはこれらの結合によって具現され得る。ソフトウェアモジュールはRAM(Random Access Memory)、ROM(Read Only Memory)、EPROM(Erasable Programmable ROM)、EEPROM(Electrically Erasable Programmable ROM)、フラッシュメモリ(Flash Memory)、ハードディスク、着脱型ディスク、CD-ROM、または本発明が属する技術分野で広く知られている任意の形態のコンピュータ読み取り可能記録媒体に常駐してもよい。
【0042】
本発明の構成要素は、ハードウェアであるコンピュータと結合されて実行されるためにプログラム(またはアプリケーション)で具現されて媒体に保存され得る。本発明の構成要素はソフトウェアプログラミングまたはソフトウェア要素で実行され得、これと同様に、実施例はデータ構造、プロセス、ルーチンまたは他のプログラミング構成の組み合わせで具現される多様なアルゴリズムを含み、C、C++、ジャバ(Java)、アセンブラ(assembler)などのようなプログラミングまたはスクリプト言語で具現され得る。機能的な側面は一つ以上のプロセッサで実行されるアルゴリズムで具現され得る。以下、
図3~6を参照して、コンピューティング装置100が遂行する自律走行システムのためのNDT地図データの圧縮方法について説明することにする。
【0043】
図3は、本発明のさらに他の実施例に係る自律走行システムのためのNDT地図データの圧縮方法のフローチャートである。
図3を参照すると、S110段階で、コンピューティング装置100は所定の地域に対するNDT地図データを生成することができる。
多様な実施例において、コンピューティング装置100は所定の地域に対する3次元ポイントクラウドをNDT技術に基づいて正規分布集合でモデリングすることによってNDT地図データを生成することができる。
【0044】
より具体的には、まず、コンピューティング装置100は所定の地域内に位置するか、所定の地域内を走行する自律走行車両10に備えられたセンサ(例:ライダ、レーダーおよびカメラなど)を通じて測定された3次元ポイントクラウドを収集することができ、収集された3次元ポイントクラウドを格子化することによって複数の3次元格子空間を生成すなわち、3次元ポイントクラウドを所定の大きさの格子空間単位に分割することができる。
この時、複数の3次元格子空間は一実施例であって、同一大きさの正六面体の形状(例:10cm×10cm×10cmまたは2cm×2cm×2cmなど)を有することができるが、これに限定されない。多様な実施例として複数の3次元格子空間は直六面体の形状などを有することができる。
【0045】
以後、コンピューティング装置100は複数の3次元格子空間を正規分布集合でモデリングすることができる。
例えば、まず、コンピューティング装置100は複数の3次元格子空間それぞれを正規分布でモデリングすることによって、複数の3次元格子空間それぞれに対応する複数の正規分布を生成することができる。
以後、コンピューティング装置100は複数の正規分布それぞれの位置情報として、複数の正規分布それぞれに含まれたポイントの平均ベクトルを算出することができ、算出された平均ベクトルを利用して平均ベクトルデータを生成することができる。ここで、平均ベクトルは複数の3次元格子空間それぞれの中心位置に対する中心ベクトルと中心位置から離隔した程度を示すオフセットベクトルを含むことができるが、これに限定されない。
以後、コンピューティング装置100は複数の正規分布それぞれの形態および方向に関する情報として、複数の正規分布それぞれに含まれたポイントの共分散行列を算出し、算出された共分散行列を利用して共分散行列データを生成することができる。しかし、これに限定されない。
【0046】
以後、コンピューティング装置100は前記の過程により生成された平均ベクトルデータと共分散行列データを含むNDT地図データを生成することができる。
ここで、コンピューティング装置100は所定の地域に対するセンサデータを直接収集して所定の地域に対するNDT地図データを直接生成するものとして説明しているが、これに限定されず、外部の他のシステムを通じて予め生成されたNDT地図データの提供を受けてこれを利用する形態で具現されてもよい。
【0047】
S120段階で、コンピューティング装置100はS110段階を経て生成されたNDT地図データに含まれた平均ベクトルデータを加工することによって、圧縮された平均ベクトルデータを生成することができる。
ここで、平均ベクトルの場合、3次元ベクトルであって3個の値(μx、μy、μz)と表現されるが、複数の3次元格子空間それぞれの中心位置の座標値をcx、cyおよびczとすると、平均ベクトルは下記の数学式1のように表現が可能である。
【0048】
【0049】
ここで、iはx、yまたはz、μiは平均ベクトルのi軸成分値、ciは中心ベクトルのi軸成分値およびdiはオフセットベクトル(3次元格子空間の中心位置から外れた程度を示すベクトル)のi軸成分値を意味し得る。
【0050】
したがって、コンピューティング装置100は中心ベクトルとオフセットベクトルそれぞれを加工することによって、圧縮された平均ベクトルデータを生成することができる。
S130段階で、コンピューティング装置100はS110段階を経て生成されたNDT地図データに含まれた共分散行列データを加工することによって、圧縮された共分散行列データを生成することができる。
【0051】
ここで、各共分散行列データを一つの3次元楕円体に対応させて表現できるが、前記3次元楕円体は3個の軸方向に沿った長さと3個の回転変換角度で特定され得、共分散行列は対応する3次元楕円体の3個の長さ情報および3個の回転変換角度情報を含むことができる。ここで、楕円体の軸方向に沿った長さ情報は後述するように標準偏差を意味し得る。したがって、コンピューティング装置100は共分散行列データに対応する3次元楕円体の標準偏差と回転変換角度それぞれを加工することによって、最終的に圧縮された共分散行列データを生成することができる。
【0052】
また、ここで、
図3に図示された自律走行システムのためのNDT地図データの圧縮方法は、平均ベクトルデータに対する加工を遂行した後に共分散行列データに対する加工を遂行するものとして図示されているが、これは平均ベクトルデータを加工する過程と共分散行列データを加工する過程を区分するためのものに過ぎず、これに限定されず、共分散行列データに対する加工を先に遂行するか、平均ベクトルデータと共分散行列データに対する加工を同時に遂行することができる。以下、
図4~6を参照して、圧縮された平均ベクトルデータを生成する過程と圧縮された共分散行列データを生成する過程をより具体的に説明することにする。
【0053】
図4は、多様な実施例において、平均ベクトルデータを加工する方法を説明するためのフローチャートである。
図4を参照すると、S210段階で、コンピューティング装置100は平均ベクトルデータに含まれた中心ベクトルの表現方式を変換することができる。
【0054】
多様な実施例において、コンピューティング装置100は中心ベクトルをツリー資料構造の形態に変換することができる。ここで、ツリー資料構造は一つ以上のノードを含み、一つ以上のノードが非線形的な階層構造を有することを意味し得るが、これに限定されない。
一例として、コンピューティング装置100は中心ベクトルを八分木(octree)の形態に変換することができる。例えば、コンピューティング装置100は深さ(depth)がLである八分木を利用して中心ベクトル(x、y、z座標値)を表現することができる。
通常的に、自律走行システムの走行領域の環境は地下から空中まで物体が均一に分布しているのではなく、地下や空中などの大部分の空間は空いており、地上の部分に建物、道路および木などの地形地物が密集している形状を有する。したがって、3次元格子空間それぞれの中心位置を示す中心ベクトルを表現するにおいて、中心ベクトルの各成分(cx、cyおよびcz)をそれぞれ独立的に一定の大きさ(バイト)を有するデータ(例えば、実数)で表現せずにツリー資料構造(例:八分木)で表現することによって、より効率的な表現が可能であるという利点がある。
【0055】
ここで、ベクトルをツリー資料構造に変換する方法は多様な技術が公知になっており、このような公知技術のうちいずれか一つを選択的に適用できるところ、本明細書ではツリー資料構造に変換する具体的な方法について叙述/限定しない。
S220段階で、コンピューティング装置100はオフセットベクトルの表現方式を変換することができる。
【0056】
多様な実施例において、コンピューティング装置100は複数の3次元格子空間それぞれの一辺の長さを基準として第1基準範囲を設定することができ、複数の3次元格子空間それぞれに対するオフセットベクトルを第1基準範囲内の値に変換することができる。
ここで、平均ベクトルは複数の3次元格子空間それぞれに含まれたポイントを利用して算出されたものであるところ、平均ベクトルも3次元格子空間を外れることはできない。これを考慮して、コンピューティング装置100は3次元格子空間の長さを考慮して第1基準範囲を設定することができ、3次元格子空間の長さにより設定された第1基準範囲内の値にオフセットベクトルを変換することができる。例えば複数の3次元格子空間それぞれの一辺の長さがlである正六面体であれば、下記の数学式2が成立する。
【0057】
【0058】
ここで、d
iはオフセットベクトル(中心から外れた程度)のi軸成分値を意味し得る。
したがって、コンピューティング装置100は長さlに対するd
iの比率が限定された範囲内にあることを利用して、複数の3次元格子空間それぞれに対するオフセットベクトルの各成分を数学式2による範囲を対応させて、
範囲内の値に変換することができる。
一方、複数の3次元格子空間それぞれが直六面体であれば、下記の数学式3が成立する。
【0059】
【0060】
ここで、m
iは直六面体のi軸方向の長さ、d
iはオフセットベクトルのi軸成分値を意味し得る。したがって、コンピューティング装置100は3次元格子空間が長さがm
iである直六面体である場合にも正六面体である場合と同様に、長さm
iに対するd
iの比率が限定された範囲内にあることを利用して、複数の3次元格子空間それぞれに対するオフセットベクトルの各成分を数学式3による範囲を対応させて、
範囲内の値に変換することができる。
【0061】
3次元格子空間を区画する過程で格子空間の一辺の長さであるl(またはmi)がすでに獲得されているので、長さl(またはmi)に対するオフセットベクトルの比率のみを特定することによってオフセットベクトルを特定することができ、オフセットベクトルが数学式2または数学式3による範囲内の値であるので、前記比率が-1/2~1/2の有限な範囲内の値を有することを利用して小さいデータを利用して信頼可能な圧縮を遂行できる。例えば、前記の方法によりオフセットベクトルの比率を1バイト(28)で表現する場合、1/256%の誤差内でdiを表現することができる。
【0062】
S230段階で、コンピューティング装置100はS210段階を経て加工された平均ベクトルデータの中心位置座標値とS220段階を経て加工されたオフセットベクトルを利用して圧縮された平均ベクトルデータを生成することができる。
通常的に3次元平均ベクトルは3個の実数(Real number)で表現され、各実数を単精度(single-precision)浮動小数点で表現すると実数当たり4バイトで表現されるところ、3次元平均ベクトルを表現するためには総12バイトが必要である。
【0063】
それに反して、前記のように、深さがLである八分木を利用して中心ベクトルの表現方式を変換する場合、中心ベクトルを表現するのに必要なデータの大きさは、最善の場合は3次元格子空間当たり約1/7バイト(byte)のみが必要であり、最悪の場合でも3次元格子空間当たり約L-ceil(log8n)+(1+1/7)バイトのみが必要であるという点で、中心ベクトルを効果的に圧縮させることができるという利点がある。
【0064】
また、複数の3次元格子空間に対するオフセットベクトルを表現するにおいて、オフセットベクトルに対する正確な実数値を表現するために数バイトを使わずに、第1基準範囲内の値を1バイトだけで表現できるという点で、0.5%未満(1/256%)の誤差でオフセットベクトルを効果的に圧縮させることができるという利点がある。
【0065】
図5は、多様な実施例において、共分散行列データを加工する方法を説明するためのフローチャートである。
図5を参照すると、S310段階で、コンピューティング装置100は標準偏差の表現方式を変換することができる。
多様な実施例において、コンピューティング装置100は複数の3次元格子空間内の最も長い対角線の長さを基準として第2基準範囲を設定することができ、複数の3次元格子空間それぞれに対する標準偏差を第2基準範囲内の値に変換することができる。
【0066】
ここで、標準偏差は複数の3次元格子空間それぞれに含まれたポイントを利用して算出されたものであるところ、標準偏差も3次元格子空間を外れることができず、3次元格子空間の最も長い対角線の半分の長さと同じであるか小さいということを必ず満足する。これを考慮して、コンピューティング装置100は3次元格子空間の最も長い対角線の半分の長さを利用して第2基準範囲を設定することができ、3次元格子空間の最も長い対角線の半分の長さにより設定された第2基準範囲内の値に標準偏差を変換することができる。
【0067】
一実施例において、共分散行列を楕円体(ellipsoid)で表現することになると、
図6に図示された通り、それぞれの軸の長さが3個の標準偏差で表現され、この楕円体を回転させることによって任意の方向の楕円体をすべて表現することができる。この時、楕円体の回転を通じて方向を任意に設定できるところ、下記の数学式4のような条件を設定してもすべての楕円体を表現するのに問題はない。
【0068】
【0069】
ここで、σ1は共分散行列を楕円体で表現した時に最も長い軸の標準偏差値、σ2は共分散行列を楕円体で表現した時に二番目に長い軸の標準偏差値およびσ3は共分散行列を楕円体で表現した時に最も短い軸の標準偏差値を意味し得る。
ここで、共分散行列は複数の3次元格子空間それぞれに含まれたポイントを利用して算出されたものであるところ、最も長い軸の標準偏差値であるσ1は3次元格子空間内の最も長い対角線の半分の長さと同じであるか小さいということを必ず満足することになる。したがって、一実施例として、複数の3次元格子空間それぞれの一辺の長さがlである正六面体であれば、下記の数学式5が成立する。
【0070】
【0071】
これを利用すればσ1、σ2およびσ3それぞれは下記の数学式6のように表現が可能であり、これは下記の数学式7を満足させる。
【0072】
【0073】
【0074】
したがって、コンピューティング装置100は、lは既知の値であるのでα、β、γを特定することによって標準偏差(σ1、σ2、σ3)を特定することができ、α、β、γが0~1の有限な範囲内の値を有することを利用して小さいデータを利用して信頼可能な圧縮を遂行できる。
【0075】
多様な実施例において、コンピューティング装置100は予め設定された整合性能に基づいて平均ベクトルデータおよび共分散行列データそれぞれに対する圧縮の程度を設定し、設定された圧縮の程度により平均ベクトルデータおよび共分散行列データを加工するものの、同一の整合性能が設定される場合、共分散行列データの圧縮の程度が平均ベクトルデータの圧縮の程度より大きいか同一であるように設定することができる。
NDT基盤の整合技術はSLAM分野で広く知られている技術の一つで、事前に制作されたNDT地図とリアルタイムセンサデータ(例えば、ライダーポイントクラウドデータ)を整合してNDT地図とセンサデータ間の類似度が最大である変換を探す技術を意味する。
ここで、整合(registration)は互いに異なる3次元ポイントクラウド(例えば、事前に取得されたポイントクラウドデータ)をマッチングさせて類似度を高める過程を意味し、整合性能は互いに異なる二つのデータ(例えば、互いに異なる3次元ポイントクラウド)間の類似度および/またはマッチング速度を意味し得る。
【0076】
NDT基盤の整合技術において、形態に対する値を示す標準偏差は回転変換角度や平均ベクトルに比べて整合性能に影響を比較的に少なく及ぼすところ、平均ベクトルや回転変換角度対比積極的な近似(圧縮)が可能である。したがって、コンピューティング装置100は同一の整合性能が要求されても、標準偏差に対して回転変換角度や平均ベクトル対比さらに積極的な近似を遂行できる。一例として、β、γは各4ビットを利用して1/16単位で表現することができ、αは(通常的に使われるlの値を基準として)1バイトを利用して1/256単位で表現することができる。
S320段階で、コンピューティング装置100は回転変換角度の表現方式を変換することができる。
【0077】
多様な実施例において、コンピューティング装置100はX軸、Y軸およびZ軸それぞれに対する基準回転範囲を設定することができ、回転変換角度を基準回転範囲内の値に変換することができる。一例として、X軸、Y軸およびZ軸は互いに直交する任意の軸であり得る。
複数の正規分布それぞれの回転変換角度は3個の値(θx、θy、θz)で表現されるが、x、y、z各軸に対する回転変換をRx、Ry、Rzとする時、一般的な回転変換は下記の数学式8のように表現され得、それぞれの回転範囲は下記の数学式9を満足することができる。
【0078】
【0079】
【0080】
したがって、コンピューティング装置100は方向に対する任意の実数値を表現することの代わりに、前記の数学式9のような有限な範囲内の値で必要な正確度により表現をすることができる。
S330段階で、コンピューティング装置100はS310段階を経て加工された共分散行列データの標準偏差とS320段階を経て加工された共分散行列データの回転変換角度を利用して圧縮された共分散行列データを生成することができる。
すなわち、共分散行列データは下記の数学式10のように標準偏差情報を含む行列(D)と回転変換角度情報を含む行列(Q)の掛け算で表現されるところ、行列(D)に含まれた標準偏差と行列(Q)に含まれた回転変換角度それぞれを圧縮することによって、結果的に共分散行列データを圧縮するのである。
【0081】
【0082】
ここで、Cは共分散行列データ、Qは回転変換角度情報を含む行列、Dは標準偏差情報を含む行列を意味し得る。
通常的に各3次元共分散行列データは3×3対称行列(symmetric matrix)であるので6個の実数で表現され、各実数を単精度(single-precision)浮動小数点で表現すると実数当たり4バイトで表現されるところ、3次元共分散行列データを表現するためには総24バイトが必要である。
【0083】
それに反して、前記のように、共分散行列データの標準偏差を正確な実数値を表現するために数バイトを使わずに、有限な範囲内で必要な正確度により第2基準範囲内の値でさらに少ないバイト、例えば総2バイト(例:α 1バイト、β、γそれぞれ4ビット)だけで表現することによって、標準偏差を効果的に圧縮させることができるという利点がある。
また、方向に対する任意の実数値を表現することの代わりに、有限な範囲内の値で必要な正確度により表現例えば、8ビットは256個の値を表現できるので180度を十分に表現できるところ、3個の値(θx、θy、θz)それぞれを例えば8ビット、7ビット、9ビットで表現することによって総3バイトだけで表現することによって、回転変換角度を効果的に圧縮させることができるという利点がある。ここで具体的数値は例示的なものであるので、本発明がこれに制限される必要はない。
【0084】
再び、
図3を参照すると、S140段階で、コンピューティング装置100はS120段階を経て平均ベクトルデータを加工することによって生成された圧縮された平均ベクトルデータとS130段階を経て共分散行列データを加工することによって生成された圧縮された共分散行列データを利用して圧縮されたNDT地図を生成することができる。
【0085】
すなわち、NDT地図データは正規分布の集合であり、各正規分布は3次元平均ベクトルおよび3×3共分散行列で定義され、3次元平均ベクトルは3個の実数、共分散行列は6個の実数で表現されることによって(単精度(single-precision)浮動小数点で表現することになると)総36バイトの大きさを有するのに反して、本発明の多様な実施例に係るNDT地図データの圧縮方法により生成される圧縮されたNDT地図データは、例えば約10バイトの大きさを有するという点で画期的にNDT地図データの大きさを減少させることができる。
【0086】
多様な実施例において、コンピューティング装置100はNDT地図データに含まれた複数の客体それぞれに対する頻度数を算出し、算出された頻度数に基づいてNDT地図データ上に複数の客体それぞれに対応する領域に対する平均ベクトルデータおよび共分散行列データの圧縮の程度を設定することができ、設定された圧縮の程度により平均ベクトルデータおよび共分散行列データそれぞれを加工することができる。
通常的に、自律走行システムで活用されるNDT地図データに含まれた正規分布は、任意の正規分布ではなく特定の傾向性を有する正規分布で構成され得る。例えば、NDT地図データに含まれた正規分布は、道路面を表現するものと建物、木などのように道路周辺の地形地物を表現するものが大多数を占める。
【0087】
共分散行列データの形態を中心に分析してみると、一般的に道路面や建物の表面の場合、主に平たい円板状の楕円体の形状を有し、木や電信柱などは非常に長いラクビーボールの形状の楕円体の形状を有し、その他の部分は多様な形状の楕円体の形状を有することが分かる。
【0088】
また、正規分布は複数の3次元格子空間それぞれに含まれたポイントを利用して得た結果であるので、平均ベクトルデータと共分散行列データ間の依存性(dependency)および共分散行列データの方向と形態の間の依存性が存在することが分かる。
すなわち、共分散行列データが特定値であるときに平均ベクトルデータが特定値を有することができないか、共分散行列データが特定値であるときに平均ベクトルデータが特定値を有するなどの不可能な組み合わせが存在することになる。
【0089】
これを考慮して、コンピューティング装置100は複数の3次元格子空間それぞれに対応する正規分布を離散化(discretization)して複数の客体それぞれに対する頻度数を統計的に算出し、算出した頻度数に基づいて頻度数が基準値以上である客体に対応する正規分布に対する圧縮の程度を高く設定することによって、頻繁に現れる正規分布をさらに積極的に圧縮してさらに少ない大きさのデータで表現されるようにし、頻度数が基準値未満である客体に対応する正規分布に対する圧縮の程度を相対的に低く設定することによって、比較的頻繁に現れない正規分布に対してはさらに大きい大きさのデータで表現されるようにすることができる。
【0090】
多様な実施例において、コンピューティング装置100はNDT地図データに含まれた複数の客体のうち互いに隣接した位置に配置される第1客体と第2客体が同一の属性を有する場合、第1客体と第2客体を一つのグループにグループ化することができ、一つのグループにグループ化された第1客体と第2客体に対する正規分布集合を統合して一つの平均ベクトルデータおよび一つの共分散行列データを生成することができ、生成された一つの平均ベクトルデータと一つの共分散行列データを加工することができる。
【0091】
通常的にNDT地図データに含まれた複数の正規分布のうち、互いに隣接した正規分布の間には依存性を有する場合が多い。例えば、道路面の上では隣り合った正規分布のほとんどが平たい円板状を有して均一に配置されており、木や電信柱の場合も柱を表現する並んでいるラクビーボールの形態の正規分布と底を表現する平たい円板の正規分布が互いに特定の位置関係を有して配置されている。したがって、コンピューティング装置100はこのような点を考慮して、同一の属性(例:の種類)または特定位置関係を有する正規分布を束ねて一つの客体として処理して加工することによって、より強力な圧縮を遂行できる。
多様な実施例において、コンピューティング装置100はNDT地図データを予め学習された人工知能モデルの入力にして圧縮されたNDT地図データを抽出することができる。
ここで、予め学習されたモデルはエンコーダおよびデコーダを含み、複数の圧縮されたNDT地図データを学習データにして学習されたモデル、例えば、オートエンコーダ(autoencoder)であり得るが、これに限定されない。
【0092】
オートエンコーダは与えられたデータを小さい次元のデータであるコード(code)に変換するエンコーダと、コードを利用して再び与えられたデータに復元するデコーダ(decoder)で構成されており、数多くの学習データを学習することによって最適なエンコーダ、デコーダ対を探すモデルすなわち、数多くの学習データを学習する過程を通じて自動的に統計的な性質すなわち、前述したような正規集合間の傾向性および/または依存性を利用して最適なエンコーディング技法を探すモデルである。
【0093】
したがって、コンピューティング装置100は複数の圧縮されたNDT地図データすなわち、正規分布または正規分布集合を設計した大きさのコードを学習データにして学習された人工知能モデルを通じてNDT地図データを加工することによって、最適なエンコーディング技法により圧縮されたNDT地図データを生成することができる。
【0094】
前述した自律走行システムのためのNDT地図データの圧縮方法は図面に図示されたフローチャートを参照して説明した。簡単な説明のために自律走行システムのためのNDT地図データの圧縮方法は一連のブロックで図示して説明したが、本発明は前記ブロックの順序に限定されず、いくつかのブロックは本明細書に図示され叙述されたものと異なる順序で遂行されるかまたは同時に遂行され得る。また、本明細書および図面に記載されていない新しいブロックが追加されたり、一部のブロックが削除または変更された状態で遂行され得る。
【0095】
以上、添付された図面を参照して本発明の実施例を説明したが、本発明が属する技術分野の通常の技術者は本発明がその技術的思想や必須の特徴を変更することなく他の具体的な形態で実施され得ることが理解できるであろう。したがって、以上で記述した実施例はすべての面で例示的なものであり、制限的ではないものと理解されるべきである。
【符号の説明】
【0096】
100:コンピューティング装置
200:ユーザ端末
300:外部サーバー
400:ネットワーク