(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-02-14
(45)【発行日】2025-02-25
(54)【発明の名称】マッチング装置、マッチング方法、及びプログラム
(51)【国際特許分類】
G06T 7/00 20170101AFI20250217BHJP
【FI】
G06T7/00 300
(21)【出願番号】P 2021048130
(22)【出願日】2021-03-23
【審査請求日】2024-01-25
【新規性喪失の例外の表示】特許法第30条第2項適用 令和3年2月17日 DEIM2021 第13回データ工学と情報マネジメントに関するフォーラム(第19回日本データベース学会年次大会) 予稿集 データ工学研究専門委員会、日本データベース学会、データベースシステム研究会(Web公開URL:https://cms.deim-forum.org/deim2021/program/)にて発表
【新規性喪失の例外の表示】特許法第30条第2項適用 令和3年3月1日(会期:令和3年3月1日~3月3日) DEIM2021 第13回データ工学と情報マネジメントに関するフォーラム(第19回日本データベース学会年次大会) データ工学研究専門委員会、日本データベース学会、データベースシステム研究会(オンラインミーティングアプリケーションWebExによるオンライン開催)にて発表
(73)【特許権者】
【識別番号】000102728
【氏名又は名称】株式会社NTTデータグループ
(74)【代理人】
【識別番号】110001634
【氏名又は名称】弁理士法人志賀国際特許事務所
(72)【発明者】
【氏名】司 南
(72)【発明者】
【氏名】西村 拓哉
【審査官】伊知地 和之
(56)【参考文献】
【文献】特開2015-155903(JP,A)
【文献】米国特許出願公開第2020/0372285(US,A1)
【文献】特開2019-121019(JP,A)
【文献】特開2019-114280(JP,A)
【文献】特表2018-504710(JP,A)
【文献】原 祥尭,自己位置推定・地図生成(SLAM)の全体像,NIKKEI Robotics,第10号,日本,日経BP社,2016年04月10日,pp.14~16
(58)【調査した分野】(Int.Cl.,DB名)
G05D 1/00 - 1/87
G06T 1/00
G06T 7/00 - 7/90
G06T 11/60 - 13/80
G06T 17/05
G06T 19/00 - 19/20
G06V 10/00 - 20/90
G06V 30/418
G06V 40/16
G06V 40/20
CSDB(日本国特許庁)
(57)【特許請求の範囲】
【請求項1】
検出部が検出した検出データに基づいて、位置推定と地図作成とを同時に行うSLAM(Simultaneous Localization and Mapping)技術を利用して、地物及び当該地物の位置を検出する検出処理を複数回実行する地物検出処理部と、
前記地物検出処理部が検出した前記複数回分の前記地物の検出位置を、クラスタリングによりクラスタ分けし、各クラスタの代表位置を検出地物の推定位置として推定する位置推定処理部と、
前記位置推定処理部が推定した前記検出地物の推定位置に基づいて、前記検出地物と、予め生成されている地図データ内の地物とをマッチングするマッチング処理部と
を備え
、
前記マッチング処理部は、
ハンガリー法により、対応する前記検出地物の推定位置と前記地図データ内の地物の位置との距離の総合コストが最小となるように、前記検出地物と、前記地図データ内の地物とをマッチングする
ことを特徴とするマッチング装置。
【請求項2】
前記マッチング処理部は、
前記検出地物のうちから選択した2つの検出地物と、前記地図データ内の地物のうちから選択した2つの地物との位置関係が一致するように、前記検出地物の座標系と前記地図データ内の地物の座標系とを共通化し、前記検出地物のうちの各地物と各前記地図データ内の地物のうちの各地物とをハッシュテーブルにマッピングして、2つの前記ハッシュテーブルが最も類似している前記2つの検出地物と前記2つの地物との組に対応する前記座標系に、前記検出地物及び前記地図データ内の地物を変換して、前記検出地物の推定位置及び前記地図データ内の地物の位置を変換する変換処理と、
前記変換処理により変換した前記検出地物の推定位置及び前記地図データ内の地物の位置に基づいて、ハンガリー法により、対応する前記検出地物の推定位置と前記地図データ内の地物の位置との距離の総合コストが最小となるように、前記検出地物と、前記地図データ内の地物とをマッチングするマッチング処理と
を実行することを特徴とする請求項1に記載のマッチング装置。
【請求項3】
前記クラスタの代表位置が、前記クラスタの重心位置である
ことを特徴とする請求項1
又は請求項
2に記載のマッチング装置。
【請求項4】
地物検出処理部が、検出部が検出した検出データに基づいて、位置推定と地図作成とを同時に行うSLAM(Simultaneous Localization and Mapping)技術を利用して、地物及び当該地物の位置を検出する検出処理を複数回実行する地物検出ステップと、
位置推定処理部が、前記地物検出ステップによって検出された前記複数回分の前記地物の検出位置を、クラスタリングによりクラスタ分けし、各クラスタの代表位置を検出地物の推定位置として推定する位置推定ステップと、
マッチング処理部が、前記位置推定ステップによって推定された前記検出地物の推定位置に基づいて、前記検出地物と、予め生成されている地図データ内の地物とをマッチングするマッチングステップと
を含
み、
前記マッチングステップにおいて、前記マッチング処理部が、ハンガリー法により、対応する前記検出地物の推定位置と前記地図データ内の地物の位置との距離の総合コストが最小となるように、前記検出地物と、前記地図データ内の地物とをマッチングする
ことを特徴とするマッチング方法。
【請求項5】
コンピュータに、
検出部が検出した検出データに基づいて、位置推定と地図作成とを同時に行うSLAM(Simultaneous Localization and Mapping)技術を利用して、地物及び当該地物の位置を検出する検出処理を複数回実行する地物検出ステップと、
前記地物検出ステップによって検出された前記複数回分の前記地物の検出位置を、クラスタリングによりクラスタ分けし、各クラスタの代表位置を検出地物の推定位置として推定する位置推定ステップと、
前記位置推定ステップによって推定された前記検出地物の推定位置に基づいて、前記検出地物と、予め生成されている地図データ内の地物とをマッチングするマッチングステップと
を実行させ
、
前記マッチングステップにおいて、ハンガリー法により、対応する前記検出地物の推定位置と前記地図データ内の地物の位置との距離の総合コストが最小となるように、前記検出地物と、前記地図データ内の地物とをマッチングする処理を
実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マッチング装置、マッチング方法、及びプログラムに関する。
【背景技術】
【0002】
近年、撮像画像などから位置推定と地図作成とを同時に行うSLAM(Simultaneous Localization and Mapping)技術が知られている。また、SLAM技術を利用して、検出した物体(例えば、地物など)と、地図データ内の物体とのマッチングを行う技術が提案されている(例えば、特許文献1を参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、SLAM技術を用いた地物位置の検出では、検出誤差やノイズによる地物の位置ズレ、地物が検出できない、或いは、重複して地物が検出されるなどが発生することがある。そのため、上述したような従来のマッチング技術では、検出した地物と、地図データ内の地物とを一対一でマッチングさせることが困難であった。
【0005】
本発明は、上記問題を解決すべくなされたもので、その目的は、検出した地物と、地図データ内の地物とを一対一に適切にマッチングすることができるマッチング装置、マッチング方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【0006】
上記問題を解決するために、本発明の一態様は、検出部が検出した検出データに基づいて、位置推定と地図作成とを同時に行うSLAM(Simultaneous Localization and Mapping)技術を利用して、地物及び当該地物の位置を検出する検出処理を複数回実行する地物検出処理部と、前記地物検出処理部が検出した前記複数回分の前記地物の検出位置を、クラスタリングによりクラスタ分けし、各クラスタの代表位置を検出地物の推定位置として推定する位置推定処理部と、前記位置推定処理部が推定した前記検出地物の推定位置に基づいて、前記検出地物と、予め生成されている地図データ内の地物とをマッチングするマッチング処理部とを備え、前記マッチング処理部は、ハンガリー法により、対応する前記検出地物の推定位置と前記地図データ内の地物の位置との距離の総合コストが最小となるように、前記検出地物と、前記地図データ内の地物とをマッチングすることを特徴とするマッチング装置である。
【0008】
また、本発明の一態様は、上記のマッチング装置において、前記マッチング処理部は、前記検出地物のうちから選択した2つの検出地物と、前記地図データ内の地物のうちから選択した2つの地物との位置関係が一致するように、前記検出地物の座標系と前記地図データ内の地物の座標系とを共通化し、前記検出地物のうちの各地物と各前記地図データ内の地物のうちの各地物とをハッシュテーブルにマッピングして、2つの前記ハッシュテーブルが最も類似している前記2つの検出地物と前記2つの地物との組に対応する前記座標系に、前記検出地物及び前記地図データ内の地物を変換して、前記検出地物の推定位置及び前記地図データ内の地物の位置を変換する変換処理と、前記変換処理により変換した前記検出地物の推定位置及び前記地図データ内の地物の位置に基づいて、ハンガリー法により、対応する前記検出地物の推定位置と前記地図データ内の地物の位置との距離の総合コストが最小となるように、前記検出地物と、前記地図データ内の地物とをマッチングするマッチング処理とを実行する。
【0009】
また、本発明の一態様は、上記のマッチング装置において、前記クラスタの代表位置が、前記クラスタの重心位置であることを特徴とする。
【0010】
また、本発明の一態様は、地物検出処理部が、検出部が検出した検出データに基づいて、位置推定と地図作成とを同時に行うSLAM(Simultaneous Localization and Mapping)技術を利用して、地物及び当該地物の位置を検出する検出処理を複数回実行する地物検出ステップと、位置推定処理部が、前記地物検出ステップによって検出された前記複数回分の前記地物の検出位置を、クラスタリングによりクラスタ分けし、各クラスタの代表位置を検出地物の推定位置として推定する位置推定ステップと、マッチング処理部が、前記位置推定ステップによって推定された前記検出地物の推定位置に基づいて、前記検出地物と、予め生成されている地図データ内の地物とをマッチングするマッチングステップとを含み、前記マッチングステップにおいて、前記マッチング処理部が、ハンガリー法により、対応する前記検出地物の推定位置と前記地図データ内の地物の位置との距離の総合コストが最小となるように、前記検出地物と、前記地図データ内の地物とをマッチングすることを特徴とするマッチング方法である。
【0011】
また、本発明の一態様は、コンピュータに、検出部が検出した検出データに基づいて、位置推定と地図作成とを同時に行うSLAM(Simultaneous Localization and Mapping)技術を利用して、地物及び当該地物の位置を検出する検出処理を複数回実行する地物検出ステップと、前記地物検出ステップによって検出された前記複数回分の前記地物の検出位置を、クラスタリングによりクラスタ分けし、各クラスタの代表位置を検出地物の推定位置として推定する位置推定ステップと、前記位置推定ステップによって推定された前記検出地物の推定位置に基づいて、前記検出地物と、予め生成されている地図データ内の地物とをマッチングするマッチングステップとを実行させ、前記マッチングステップにおいて、ハンガリー法により、対応する前記検出地物の推定位置と前記地図データ内の地物の位置との距離の総合コストが最小となるように、前記検出地物と、前記地図データ内の地物とをマッチングする処理を実行させるためのプログラムである。
【発明の効果】
【0012】
本発明によれば、検出した地物と、地図データ内の地物とを一対一に適切にマッチングすることができる。
【図面の簡単な説明】
【0013】
【
図1】本実施形態によるマッチング装置の一例を示すブロック図である。
【
図2】本実施形態における地物の位置推定処理の一例を説明する図である。
【
図3】本実施形態におけるハッシュテーブルを用いた地物位置の変換処理の一例を説明する図である。
【
図4】本実施形態におけるハンガリー法によるマッチング処理の一例を説明する図である。
【
図5】本実施形態によるマッチング装置の動作の一例を示すフローチャートである。
【
図6】本実施形態によるマッチング装置の地物検出処理の一例を示すフローチャートである。
【
図7】本実施形態によるマッチング装置の地物の位置推定処理の一例を示すフローチャートである。
【
図8】本実施形態によるマッチング装置のマッチング処理の一例を示すフローチャートである。
【
図9】本実施形態によるマッチング装置のマッチング結果の一例を示す図である。
【発明を実施するための形態】
【0014】
以下、本発明の一実施形態によるマッチング装置、及びマッチング方法について、図面を参照して説明する。
【0015】
図1は、本実施形態によるマッチング装置1の一例を示すブロック図である。
図1に示すマッチング装置1は、SLAM(Simultaneous Localization and Mapping)技術を利用して、例えば、電柱などの地物を検出し、地図データ内(地図データベース内)の地物との一対一の対応を取るマッチングを行う装置である。マッチング装置1は、例えば、車両などの移動体に搭載されており、移動しながら検出部20が検出した検出データに基づいて、電柱などの地物を検出し、地図データ内(地図データベース内)の地物とのマッチングを行う。
【0016】
図1に示すように、マッチング装置1は、入力部11と、表示部12と、検出部20と、記憶部30と、制御部40とを備える。
入力部11は、例えば、キーボードやマウスなどの入力デバイスであり、利用者の操作に応じて、各種入力情報を受け付ける。入力部11は、マッチング装置1を操作する際に使用される。
【0017】
表示部12は、例えば、液晶ディスプレイなどの表示装置であり、マッチング装置1が出力する各種情報を表示する。表示部12は、例えば、各種設定の設定画像、メニュー画像、地図データや検出地物、及びマッチング結果などを表示する。
【0018】
検出部20は、例えば、カメラ、LIDAR(Light Detection and Ranging、Laser Imaging Detection and Ranging)、レーダ装置、測域センサなどである。検出部20は、SLAM技術により位置推定と地図作成とを同時に行う際の入力データとなる検出データを検出する。検出部20は、検出した検出データを制御部40に出力する。
【0019】
記憶部30は、マッチング装置1が利用する各種情報を記憶する。記憶部30は、検出データ記憶部31と、地図データ記憶部32と、検出地物記憶部33と、クラスタ記憶部34と、重心位置記憶部35と、ハッシュテーブル記憶部36と、変換位置記憶部37と、マッチング結果記憶部38とを備える。
【0020】
検出データ記憶部31は、例えば、カメラが撮像した撮像画像データや、LIDARが検出した検出データなど、検出部20が検出した検出データを記憶する。検出データ記憶部31は、SLAM技術により地物及び地物の位置を検出する処理の複数回分(例えば、10回分や20回分)の検出データを記憶する。
【0021】
地図データ記憶部32は、予め計測されている地物を含む地図データを記憶する。地図データ記憶部32は、例えば、地図データベースである。
検出地物記憶部33は、後述する地物検出処理部41が検出した検出地物の情報を記憶する。検出地物記憶部33は、検出地物の識別情報(例えば、ラベル情報など)と、検出地物の位置座標とを対応付けて記憶する。なお、検出地物記憶部33は、例えば、1つの検出地物に対して、複数回分の検出地物の情報を記憶する。
【0022】
クラスタ記憶部34は、後述する位置推定処理部42が実行するクラスタリング処理の結果を記憶する。
重心位置記憶部35は、各クラスタの重心位置を、検出地物の推定位置として記憶する。クラスタ記憶部34は、例えば、検出地物の識別情報と、クラスタの重心の位置座標とを対応付けて記憶する。
【0023】
ハッシュテーブル記憶部36は、後述する変換処理に利用する地物をマッピングしたハッシュテーブルを記憶する。
変換位置記憶部37は、後述する変換処理により変換された検出位置情報、及び変換された地図データの位置情報とを記憶する。変換位置記憶部37は、検出地物の位置関係と、地図データの地物の位置関係とを、形状、向き、及び大きさが大まかに一致するように変換したそれぞれの位置情報を記憶する。
【0024】
マッチング結果記憶部38は、マッチング装置1が実行したマッチング処理の結果を記憶する。マッチング結果記憶部38は、検出地物の識別情報と、地図データの地物の識別情報とを対応付けて記憶する。なお、本実施形態のマッチングは、検出地物と地図データの地物とを一対一にマッチングする(対応付ける)。
【0025】
制御部40は、例えば、CPU(Central Processing Unit)を含み、マッチング装置1を統括的に制御する。制御部40は、検出地物と地図データの地物とのマッチングを行う各種処理を実行する。制御部40は、検出部20が検出した検出データを、検出データ記憶部31に記憶させる。なお、制御部40は、地物検出処理を行う複数回分の検出データ(同一の場所で検出された複数回分の検出データ)を検出部20から取得して、検出データ記憶部31に記憶させる。
また、制御部40は、地物検出処理部41と、位置推定処理部42と、マッチング処理部43とを備える。
【0026】
地物検出処理部41は、検出部20が検出した検出データに基づいて、位置推定と地図作成とを同時に行うSLAM技術を利用して、地物及び当該地物の位置を検出する検出処理を複数回実行する。地物検出処理部41は、検出データ記憶部31が記憶する検出データ取得して、地物及び当該地物の位置を検出する検出処理を繰り返し実行する。地物検出処理部41は、同一の場所に対する複数回分の検出データに対して実行する。地物検出処理部41は、地物検出処理により検出した複数回分の検出地物及び位置情報(検出位置)を、検出地物記憶部33に記憶させる。
【0027】
位置推定処理部42は、地物検出処理部41が検出した複数回分の地物の検出位置を、クラスタリングによりクラスタ分けし、各クラスタの代表位置を検出地物の推定位置として推定する。位置推定処理部42は、検出地物記憶部33が記憶する検出地物を取得し、例えば、DBSCAN(Density-Based Spatial Clustering of Applications with Noise)、K-means法(K平均法)、GMM(混合ガウスモデル:Gaussian Mixture Model)法などのクラスタリング手法で検出物体の推定位置をクラスタリングする。位置推定処理部42は、クラスタリング処理の結果をクラスタ記憶部34に記憶させる。
【0028】
また、位置推定処理部42は、各クラスタの重心を代表位置として算出し、算出した各クラスタの重心を各検出物体の推定位置とする。位置推定処理部42は、クラスタ記憶部34が記憶する各クラスタに含まれる検出地物を取得し、重心を算出する。ここで、
図2を参照して、本実施形態による地物検出処理の詳細について説明する。
【0029】
図2は、本実施形態における地物の位置推定処理の一例を説明する図である。
図2(a)は、位置推定処理部42が、複数回分の検出地物をクラスタリングした結果を示している。
図2(a)において、白丸のマークは、複数回分の検出地物を示している。また、クラスタCL1~クラスタCL4は、クラスタリング処理の結果を示している。また、黒丸のマークは、各クラスタ(クラスタCL1~クラスタCL4のそれぞれ)の重心を示している。
【0030】
位置推定処理部42は、クラスタリングにより、クラスタCL1~クラスタCL4を生成する。位置推定処理部42は、クラスタCL1~クラスタCL4をクラスタ記憶部34に記憶させる。また、位置推定処理部42は、クラスタCL1~クラスタCL4を生成した後、クラスタCL1~クラスタCL4のそれぞれの重心を算出する。例えば、重心G1は、クラスタCL1の重心を示し、重心G2は、クラスタCL2の重心を示している。また、重心G3は、クラスタCL3の重心を示し、重心G4は、クラスタCL4の重心を示している。
【0031】
位置推定処理部42は、
図2(b)に示すように、重心G1~重心G4のそれぞれを検出物体の推定位置と推定する。位置推定処理部42は、
図2(b)に示すような検出物体の推定位置の推定結果を、重心位置記憶部35に記憶させる。なお、重心位置記憶部35が記憶する検出物体の推定位置の集合は、検出物体の推定位置の地図データに相当する。
【0032】
図1の説明に戻り、マッチング処理部43は、位置推定処理部42が推定した検出地物の推定位置に基づいて、検出地物と、予め生成されている地図データ内の地物とをマッチングする。マッチング処理部43は、検出地物の推定位置及び地図データ内の地物の位置を変換する変換処理と、変換した検出地物の推定位置及び地図データ内の地物の位置に基づいて、ハンガリー法により検出地物と地図データ内の地物とをマッチングするマッチング処理とを実行する。マッチング処理部43は、変換処理部431と、ハンガリー法処理部432とを備える。
【0033】
変換処理部431は、ハッシュテーブル(例えば、Geometric Hashing法)を用いて、検出地物の推定位置及び地図データ内の地物の位置を変換する変換処理を実行する。ここで、
図3を参照して、変換処理部431によるハッシュテーブルを用いた検出地物の推定位置及び地図データ内の地物の位置を変換する変換処理について説明する。
【0034】
図3は、本実施形態におけるハッシュテーブルを用いた地物位置の変換処理の一例を説明する図である。
図3(a)は、地図データ記憶部32が記憶する地図データを示している。また、
図3(d)は、重心位置記憶部35が記憶する検出地物の地図を示している。変換処理部431は、地図データ記憶部32が記憶する地図データの地物のうちから2つの地物を選択して、
図3(b)に示すような共通座標系に変換する。ここで、変換処理部431は、選択した2つの地物の位置座標が、(0,0)と(1,0)になるように、拡大、縮小、回転を行い、全ての地物の位置を共通座標系に変換する。
図3(b)に示す例では、検出地物“4”と、検出地物“1”とが選択された例である。
【0035】
また、一方で、変換処理部431は、重心位置記憶部35が記憶する検出地物のうちから2つの検出地物を選択して、
図3(e)に示すような共通座標系に変換する。ここで、変換処理部431は、選択した2つの検出地物の位置座標が、(0,0)と(1,0)になるように、拡大、縮小、回転を行い、全ての検出地物の位置を共通座標系に変換する。
図3(e)に示す例では、検出地物“4”と、検出地物“1”とが選択された例である。
【0036】
このように、変換処理部431は、重心位置記憶部35が記憶する検出地物のうちから選択した2つの検出地物と、地図データ記憶部32が記憶する地図データ内の地物のうちから選択した2つの地物との位置関係が一致するように、検出地物の座標系と地図データ内の地物の座標系とを共通化する。すなわち、変換処理部431は、2つの検出地物と、地図データの2つの地物との位置関係が一致するように、拡大、縮小、及び回転を行って、2つの地物以外の地物を含む全ての検出地物及び地図データ内の地物を、共通座標系に変換する。
【0037】
また、変換処理部431は、共通座標系に変換した検出地物及び地図データ内の地物を、ハッシュテーブルにマッピングする。ここで、ハッシュテーブルは、メッシュ状に分割されたテーブルであり、各メッシュは、共通座標系の位置に対応している。変換処理部431は、例えば、
図3(b)に示す共通座標系に変換された地物を、
図3(c)に示すように、ハッシュテーブルにマッピングする。変換処理部431は、
図3(c)に示すようなハッシュテーブルの生成を、選択する2つの地物を変更して繰り返し実行する。なお、変換処理部431は、検出地物又は地図データに地物のうちから2つの地物が選択する順列の全てが選択されるまで、繰り返し実行する。変換処理部431は、地図データ記憶部32が記憶する地図データの地物のうちの2つを選択する順列の全てについて、ハッシュテーブルを生成する。
【0038】
また、変換処理部431は、例えば、
図3(e)に示す共通座標系に変換された検出地物を、
図3(f)に示すように、ハッシュテーブルにマッピングする。変換処理部431は、
図3(f)に示すようなハッシュテーブルの生成を、選択する2つの検出地物を変更して繰り返し実行する。変換処理部431は、重心位置記憶部35が記憶する検出地物のうちの2つを選択する順列の全てについて、ハッシュテーブルを生成する。
なお、変換処理部431は、生成した地図データの地物のハッシュテーブル、及び検出地物のハッシュテーブルを、ハッシュテーブル記憶部36に記憶させる。
【0039】
変換処理部431は、生成した検出地物のハッシュテーブルと、地図データの地物のハッシュテーブルとを比較して、最も類似している組を抽出する。具体的に、変換処理部431は、ハッシュテーブルのうち、地物があるメッシュの位置が一致する場合に、1票を投票し、投票数が最も多い組を選択する。変換処理部431は、選択した検出地物のハッシュテーブルと地図データの地物のハッシュテーブルとのそれぞれに対応する地図データを変換位置記憶部37に記憶させる。
【0040】
このように、変換処理部431は、2つのハッシュテーブルが最も類似している2つの検出地物と2つの地物との組に対応する座標系に、検出地物及び地図データ内の地物を変換して、検出地物の推定位置及び地図データ内の地物の位置を変換する。
【0041】
再び、
図1の説明に戻り、ハンガリー法処理部432は、ハンガリー法により、対応する検出地物の推定位置と地図データ内の地物の位置との距離の総合コストが最小となるように、検出地物と、地図データ内の地物とをマッチングするマッチング処理を実行する。ここで、
図4を参照して、ハンガリー法によるマッチング処理について説明する。
【0042】
図4は、本実施形態におけるハンガリー法によるマッチング処理の一例を説明する図である。
図4に示すように、ハンガリー法処理部432は、変換位置記憶部37が記憶する変換された検出地物の位置及び地図データの地物の位置との距離をコストとして総当たりで算出し、距離の総合コストが最小となる検出地物と地図データの地物との組を対応付けする。ハンガリー法処理部432は、この総合コストが最小となる検出地物と地図データの地物との対応関係を、マッチング処理の結果として、マッチング結果記憶部38に記憶させる。
【0043】
次に、図面を参照して、本実施形態によるマッチング装置1の動作について説明する。
図5は、本実施形態によるマッチング装置1の動作の一例を示すフローチャートである。
【0044】
図5に示すように、マッチング装置1の制御部40は、複数回分の検出データを取得する(ステップS101)。制御部40は、SLAM技術を利用した地物検出処理を実行するための複数回分の検出データを検出部20から取得する。制御部40は、取得した数回分の検出データを検出データ記憶部31に記憶させる。
【0045】
次に、制御部40の地物検出処理部41は、検出データに基づく地物検出処理を複数回分行う(ステップS102)。地物検出処理部41は、検出データ記憶部31が記憶する検出データを取得して、当該検出データに基づく地物及び地物の位置を検出する地物検出処理を実行する。地物検出処理部41は、検出データを変えて、同一の地物に対する検出処理を、複数回実行する。地物検出処理部41は、複数回分の地物の検出結果を、検出地物記憶部33に記憶させる。なお、地物検出処理の詳細については、
図6を参照して後述する。
【0046】
次に、制御部40の位置推定処理部42は、クラスタリング手法による位置推定処理を実行する(ステップS103)。位置推定処理部42は、検出地物記憶部33が記憶する複数回分の検出地物をクラスタリングにより、クラスタ分け(グループ分け)し、各クラスタの重心位置を検出地物の推定位置に決定する。位置推定処理部42は、決定した検出地物の推定位置を、重心位置記憶部35に記憶させる。なお、位置推定処理の詳細については、
図7を参照して後述する。
【0047】
次に、制御部40のマッチング処理部43は、地図データの地物と、検出地物とのマッチング処理を実行する(ステップS104)。マッチング処理部43は、地図データ記憶部32が記憶する地図データの地物と、重心位置記憶部35に記憶する検出地物とを一対一でマッチングさせるマッチング処理を実行する。マッチング処理部43は、マッチング処理の結果を、マッチング結果記憶部38に記憶させる。なお、マッチング処理の詳細については、
図8を参照して後述する。ステップS104の処理後に、制御部40は、処理を終了する。
【0048】
なお、
図5に示すステップS102の処理が、地物検出ステップの処理に対応し、ステップS103の処理が、位置推定ステップの処理に対応する。また、S104の処理が、マッチングステップの処理に対応する。
【0049】
次に、
図6を参照して、上述した
図5に示すステップS102の処理の詳細について説明する。
図6は、本実施形態によるマッチング装置1の地物検出処理の一例を示すフローチャートである。
【0050】
図6に示すように、マッチング装置1の地物検出処理部41は、まず、繰り返し回数Nに“1”を設定する(ステップS201)。
【0051】
次に、地物検出処理部41は、N回目の検出データをセグメンテーションする(ステップS202)。地物検出処理部41は、N回目の検出データ(例えば、撮像画像データなど)を、検出データ記憶部31から取得し、例えば、画像セグメンテーション(セマンティックセグメンテーション)を実行する。これにより、地物検出処理部41は、検出データから地物を検出し、ラベル付けする。
【0052】
次に、地物検出処理部41は、SLAMにより検出地物の位置を推定する(ステップS203)。地物検出処理部41は、SLAM技術を利用して、N回目の検出データから検出地物の位置を推定する。
【0053】
次に、地物検出処理部41は、検出地物の推定位置の座標(SLAM座標系)を算出する(ステップS204)。地物検出処理部41は、検出地物の推定位置の座標を、検出部20を中心としたSLAM座標系に変換する。
【0054】
次に、地物検出処理部41は、検出地物の推定位置(GPS座標系)の地図を生成する(ステップS205)。地物検出処理部41は、検出地物の推定位置を、GPS座標系(世界座標系)に変換して、検出地物が推定位置に記入された地図データを生成する。地物検出処理部41は、生成した検出地物の地図データ(検出地物の位置)を、検出地物記憶部33に記憶させる。
【0055】
次に、地物検出処理部41は、N回目の検出データが、複数回分の最後の検出データであるか否かを判定する(ステップS206)。地物検出処理部41は、N回目の検出データが、最後の検出データである場合(ステップS206:YES)に、地物検出処理を終了する。また、地物検出処理部41は、N回目の検出データが、最後の検出データでない場合(ステップS206:NO)に、処理をステップS207に進める。
【0056】
ステップS207において、地物検出処理部41は、繰り返し回数Nに“N+1”を代入して、繰り返し回数Nを更新して、処理をステップS202に戻す。これにより、地物検出処理部41は、ステップS202からステップS206までの処理を、複数回繰り返す。
【0057】
次に、
図7を参照して、上述した
図5に示すステップS103の処理の詳細について説明する。
図7は、本実施形態によるマッチング装置1の位置推定処理の一例を示すフローチャートである。
【0058】
図7に示すように、マッチング装置1の位置推定処理部42は、まず、複数回分の検出地物の位置をクラスタリングする(ステップS301)。位置推定処理部42は、例えば、DBSCAN、K-means法、GMM法などのクラスタリング手法を用いて、検出地物記憶部33が記憶する検出地物を、例えば、
図2(a)に示すように、クラスタ分けする。
【0059】
次に、位置推定処理部42は、各クラスタの重心を算出して、各地物の推定位置とする(ステップS302)。位置推定処理部42は、例えば、
図2(a)に示す黒丸のマークのような、重心(
図2の重心G1~重心G4を参照)を算出し、当該重心を、検出地物の推定位置とする。
【0060】
次に、位置推定処理部42は、検出地物の推定位置の地図を生成する(ステップS303)。位置推定処理部42は、例えば、
図2(b)に示すような地図を生成し、重心位置記憶部35に記憶させる。ステップS303の処理後に、位置推定処理部42は、位置推定処理を終了する。
【0061】
次に、
図8を参照して、上述した
図5に示すステップS104の処理の詳細について説明する。
図8は、本実施形態によるマッチング装置1のマッチング処理の一例を示すフローチャートである。
【0062】
図8に示すように、マッチング装置1のマッチング処理部43は、まず、地図データの地物のうちの2つの地物を選択する(ステップS401)。マッチング処理部43の変換処理部431は、地図データ記憶部32が記憶する、例えば、
図3(a)に示すような地図データの地物のうちから、2つの地物を選択する。
【0063】
次に、変換処理部431は、2つの地物の位置関係を基準に各地物を共通座標系に変換する(ステップS402)。変換処理部431は、例えば、
図3(b)に示すように、選択した2つの地物(“4”、“1”)を座標(0,0)と座標(1,0)とに配置するように、拡大、縮小、回転して、各地物を共通座標系に変換する。
【0064】
次に、変換処理部431は、共通座標系の各地物の位置をハッシュテーブルにマッピングする(ステップS403)。変換処理部431は、例えば、
図3(c)に示すように、各地物の位置をハッシュテーブルにマッピングする。
【0065】
次に、変換処理部431は、次の2つの地物があるか否かを判定する(ステップS404)。変換処理部431は、地図データの地物のうちから2つの地物を選ぶ順列において、次の2つの地物があるか否かを判定する。変換処理部431は、次の2つの地物がある場合(ステップS404:YES)に、処理をステップS401に戻して、次の2つの地物について、ステップS401からステップS404までの処理を同様に実行する。また、変換処理部431は、次の2つの地物がない場合(ステップS404:NO)に、処理をステップS405に進める。
【0066】
ステップS405において、変換処理部431は、検出地物のうちの2つの検出地物を選択する。変換処理部431は、重心位置記憶部35が記憶する、例えば、
図3(d)に示すような検出地物のうちから、2つの検出地物を選択する。
【0067】
次に、変換処理部431は、2つの検出地物の位置関係を基準に各検出地物を共通座標系に変換する(ステップS406)。変換処理部431は、例えば、
図3(e)に示すように、選択した2つの検出地物(“a”、“b”)を座標(0,0)と座標(1,0)とに配置するように、拡大、縮小、回転して、各検出地物を共通座標系に変換する。
【0068】
次に、変換処理部431は、共通座標系の各検出地物の位置をハッシュテーブルにマッピングする(ステップS407)。変換処理部431は、例えば、
図3(f)に示すように、各検出地物の位置をハッシュテーブルにマッピングする。
【0069】
次に、変換処理部431は、次の2つの検出地物があるか否かを判定する(ステップS408)。変換処理部431は、重心位置記憶部35が記憶する検出地物のうちから2つの検出地物を選ぶ順列において、次の2つの検出地物があるか否かを判定する。変換処理部431は、次の2つの検出地物がある場合(ステップS408:YES)に、処理をステップS405に戻して、次の2つの検出地物について、ステップS405からステップS408までの処理を同様に実行する。また、変換処理部431は、次の2つの検出地物がない場合(ステップS408:NO)に、処理をステップS409に進める。
【0070】
ステップS409において、変換処理部431は、同一メッシュの地物が最も多いハッシュテーブルの組を抽出する。変換処理部431は、地図データの地物のハッシュテーブルと、検出地物のハッシュテーブルとを比較し、最も類似しているハッシュテーブルの組を抽出する。
【0071】
次に、変換処理部431は、抽出したハッシュテーブルの組に対応する共通座標系に検出地物及び地図データの地物を変換する(ステップS410)。変換処理部431は、抽出したハッシュテーブルの組に対応する、
図3(e)及び
図3(b)に示すような共通座標系の地図データを変換位置情報として生成する。変換処理部431は、生成した検出地物及び地図データの地物に対応する変換位置情報を、変換位置記憶部37に記憶させる。
【0072】
次に、変換処理部431は、ハンガリー法で距離の総合コストが最小となる地図データの地物と検出地物とをマッチングする(ステップS411)。変換処理部431は、上述した
図4において説明したような距離の総合コストを算出して、総合コストが最小になる地図データの地物と検出地物とを一対一に対応付ける処理を実行する。変換処理部431は、マッチング処理の結果を、マッチング結果記憶部38に記憶させる。ステップS411の処理後に、変換処理部431は、マッチング処理を終了する。
【0073】
なお、上述した
図8において、ステップS401からステップS410までの処理が、変換処理に対応し、ステップS411の処理が、ハンガリー法によるマッチング処理に対応する。
【0074】
図9は、本実施形態によるマッチング装置1のマッチング結果の一例を示す図である。
図9に示す例は、本実施形態によるマッチング装置1が、地物である電柱のマッチングを行った場合の一例を示している。
【0075】
図9(a)は、地図データの電柱を示す地図であり、
図9(b)は、検出された電柱(検出地物の電柱)を示している。
図9に示すように、本実施形態によるマッチング装置1では、地図データ内の電柱と、検出した電柱とを、一対一にマッチングすることが可能である。
図9に示すように、地図データ内の電柱と、検出した電柱とを、一対一にマッチングすることで、例えば、電柱の故障などを検出するシステムに利用できる。
【0076】
以上説明したように、本実施形態によるマッチング装置1は、地物検出処理部41と、位置推定処理部42と、マッチング処理部43とを備える。地物検出処理部41は、検出部20が検出した検出データに基づいて、位置推定と地図作成とを同時に行うSLAM技術を利用して、地物及び当該地物の位置を検出する検出処理を複数回実行する。位置推定処理部42は、地物検出処理部41が検出した複数回分の地物の検出位置を、クラスタリングによりクラスタ分けし、各クラスタの代表位置を検出地物の推定位置として推定する。マッチング処理部43は、位置推定処理部42が推定した検出地物の推定位置に基づいて、検出地物と、予め生成されている地図データ内の地物とをマッチングする。
【0077】
これにより、本実施形態によるマッチング装置1は、複数回検出した検出地物をクラスタリングによりクラスタ分けし、各クラスタの代表位置を検出地物の推定位置として推定するため、検出誤差やノイズによる地物の位置ズレ、地物が検出できない、或いは、重複して地物が検出されるなどの影響を除去することができる。そのため、本実施形態によるマッチング装置1は、検出した地物と、地図データ内の地物とを一対一に適切にマッチングすることができる。
【0078】
また、本実施形態では、マッチング処理部43は、ハンガリー法により、対応する検出地物の推定位置と地図データ内の地物の位置との距離の総合コストが最小となるように、検出地物と、地図データ内の地物とをマッチングする。
これにより、本実施形態によるマッチング装置1は、ハンガリー法により、より簡単に、検出した地物と、地図データ内の地物とを一対一にマッチングすることができる。
【0079】
また、本実施形態では、マッチング処理部43は、変換処理と、マッチング処理とを実行する。マッチング処理部43は、変換処理において、検出地物のうちから選択した2つの検出地物と、地図データ内の地物のうちから選択した2つの地物との位置関係が一致するように、検出地物の座標系と地図データ内の地物の座標系とを共通化する。そして、マッチング処理部43は、変換処理において、検出地物のうちの各地物と各地図データ内の地物のうちの各地物とをハッシュテーブルにマッピングして、2つのハッシュテーブルが最も類似している2つの検出地物と2つの地物との組に対応する座標系に、検出地物及び地図データ内の地物を変換して、検出地物の推定位置及び地図データ内の地物の位置を変換する。マッチング処理部43は、マッチング処理において、変換処理により変換した検出地物の推定位置及び地図データ内の地物の位置に基づいて、ハンガリー法により、対応する検出地物の推定位置と地図データ内の地物の位置との距離の総合コストが最小となるように、検出地物と、地図データ内の地物とをマッチングする。
【0080】
これにより、本実施形態によるマッチング装置1は、変換処理により、地図データの地物の集合の形状と、検出地物の集合の形状とが一致するように、拡大、縮小、回転して、検出地物の推定位置及び地図データ内の地物の位置を変換するため、さらに、一対一の対応付けを行い易くなる。そして、本実施形態によるマッチング装置1は、さらにハンガリー法により、より簡単に、検出した地物と、地図データ内の地物とを一対一にマッチングすることができる。これらのことから、本実施形態によるマッチング装置1は、検出した地物と、地図データ内の地物とを、さらに適切に一対一にマッチングすることができる。
【0081】
本実施形態では、クラスタの代表位置が、クラスタの重心位置である。
これにより、本実施形態によるマッチング装置1は、クラスタの重心を算出するという簡易な手法により、適切なクラスタの代表位置を抽出することができ、検出した地物と、地図データ内の地物とを、一対一に適切にマッチングすることができる。
【0082】
また、本実施形態によるマッチング方法は、地物検出ステップと、位置推定ステップと、マッチングステップとを含む。地物検出ステップにおいて、地物検出処理部41が、検出部20が検出した検出データに基づいて、位置推定と地図作成とを同時に行うSLAM技術を利用して、地物及び当該地物の位置を検出する検出処理を複数回実行する。位置推定ステップにおいて、位置推定処理部42が、地物検出ステップによって検出された複数回分の地物の検出位置を、クラスタリングによりクラスタ分けし、各クラスタの代表位置を検出地物の推定位置として推定する。マッチングステップにおいて、マッチング処理部43が、位置推定ステップによって推定された検出地物の推定位置に基づいて、検出地物と、予め生成されている地図データ内の地物とをマッチングする。
【0083】
これにより、本実施形態によるマッチング方法は、上述したマッチング装置1と同様の効果を奏し、検出した地物と、地図データ内の地物とを一対一に適切にマッチングすることができる。
【0084】
なお、本発明は、上記の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で変更可能である。
例えば、上記の実施形態において、マッチング処理部43が、ハッシュテーブルを用いた変換処理を行う変換処理部431を備える例を説明したが、これに限定されるものではない。マッチング処理部43は、変換処理部431を備えずに、重心位置記憶部35が記憶する検出地物を、そのままマッチングに用いてもよい。
【0085】
また、上記の実施形態において、マッチング処理部43が、マッチング処理として、ハンガリー法を用いる例を説明したが、これに限定されるものではなく、一対一のマッチングに適切な手法であれば、他の手法を用いるようにしてもよい。
【0086】
また、上記の実施形態において、マッチング装置1が、検出部20を備える例を説明したが、これに限定されるものではなく、マッチング装置1が、外部から検出データを取得するようにしてもよい。
【0087】
また、上記の実施形態において、クラスタの代表位置として、重心位置を算出する例を説明したが、これに限定されるものではなく、例えば、クラスタにおける各座標の中央値を代表位置としてもよいし、他の代表位置を用いてもよい。
【0088】
また、上記の実施形態において、制御部40及び記憶部30の一部をマッチング装置1の外部に備えるようにしてもよい。
【0089】
なお、上述したマッチング装置1が備える各構成は、内部に、コンピュータシステムを有している。そして、上述したマッチング装置1が備える各構成の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより上述したマッチング装置1が備える各構成における処理を行ってもよい。ここで、「記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行する」とは、コンピュータシステムにプログラムをインストールすることを含む。ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、インターネットやWAN、LAN、専用回線等の通信回線を含むネットワークを介して接続された複数のコンピュータ装置を含んでもよい。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。このように、プログラムを記憶した記録媒体は、CD-ROM等の非一過性の記録媒体であってもよい。
【0090】
また、記録媒体には、当該プログラムを配信するために配信サーバからアクセス可能な内部又は外部に設けられた記録媒体も含まれる。なお、プログラムを複数に分割し、それぞれ異なるタイミングでダウンロードした後にマッチング装置1が備える各構成で合体される構成や、分割されたプログラムのそれぞれを配信する配信サーバが異なっていてもよい。さらに「コンピュータ読み取り可能な記録媒体」とは、ネットワークを介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、上述した機能の一部を実現するためのものであってもよい。さらに、上述した機能をコンピュータシステムに既に記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
【0091】
また、上述した機能の一部又は全部を、LSI(Large Scale Integration)等の集積回路として実現してもよい。上述した各機能は個別にプロセッサ化してもよいし、一部、又は全部を集積してプロセッサ化してもよい。また、集積回路化の手法はLSIに限らず専用回路、又は汎用プロセッサで実現してもよい。また、半導体技術の進歩によりLSIに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いてもよい。
【符号の説明】
【0092】
1 マッチング装置
11 入力部
12 表示部
20 検出部
30 記憶部
31 検出データ記憶部
32 地図データ記憶部
33 検出地物記憶部
34 クラスタ記憶部
35 重心位置記憶部
36 ハッシュテーブル記憶部
37 変換位置記憶部
38 マッチング結果記憶部
40 制御部
41 地物検出処理部
42 位置推定処理部
43 マッチング処理部
431 変換処理部
432 ハンガリー法処理部