(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-17
(45)【発行日】2024-09-26
(54)【発明の名称】測位装置、推定方法、及びプログラム
(51)【国際特許分類】
G06T 7/70 20170101AFI20240918BHJP
G06T 7/20 20170101ALI20240918BHJP
【FI】
G06T7/70 Z
G06T7/20 100
(21)【出願番号】P 2022532367
(86)(22)【出願日】2021-04-28
(86)【国際出願番号】 JP2021017033
(87)【国際公開番号】W WO2021256103
(87)【国際公開日】2021-12-23
【審査請求日】2022-12-07
(31)【優先権主張番号】P 2020105747
(32)【優先日】2020-06-19
(33)【優先権主張国・地域又は機関】JP
【前置審査】
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100103894
【氏名又は名称】家入 健
(72)【発明者】
【氏名】甲斐 夏季
(72)【発明者】
【氏名】城島 貴弘
(72)【発明者】
【氏名】斎藤 英雄
(72)【発明者】
【氏名】山口 真弘
【審査官】宮島 潤
(56)【参考文献】
【文献】特開2020-21257(JP,A)
【文献】特表2016-536668(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00 - 7/90
G06V 10/00 - 20/90
G06V 30/418
G06V 40/16
G06V 40/20
G05D 1/00 - 1/87
(57)【特許請求の範囲】
【請求項1】
複数の撮像画像のそれぞれに含まれる特徴点の位置の差異に基づいて、撮像画像に写った対象の3次元形状を推定する画像処理技術を用いて作成された対象エリアの環境地図
と、前記環境地図を作成する際に、前記複数の撮像画像のそれぞれに含まれる特徴点と前記環境地図内の特徴点とが関連付けられた情報と、を前記環境地図を生成する装置から取得し、複数の前記撮像画像を撮像装置から取得する取得手段と、
入力画像に含まれる特徴量に基づいて定められた特徴ベクトルと複数の前記撮像画像に含まれる特徴量に基づいて定められた特徴ベクトルとを比較して得られた類似スコアに基づいて複数の前記撮像画像から類似画像を抽出する画像検索手段と、
前記入力画像の第1の特徴点群と、前記第1の特徴点群とマッチングされた前記類似画像の第2の特徴点群に関連付けられている前記環境地図内の第3の特徴点群とを用いて
PnP(Perspective n Point)問題を解くことによって、前記入力画像を撮像した撮像装置の位置及び姿勢を推定する推定手段と、
前記撮像装置の位置から、前記第3の特徴点群に含まれる点までの距離が閾値を超えている場合に当該点をノイズと判定し、ノイズとなる点を削除するノイズ除去手段と、を備える測位装置。
【請求項2】
前記画像検索手段は、
前記入力画像に含まれる特徴量に基づいて定められた特徴ベクトルと、それぞれの前記撮像画像に含まれる特徴量に基づいて定められた特徴ベクトルとを比較し、最も高い類似スコアを示す前記撮像画像を前記類似画像として抽出する、請求項1に記載の測位装置。
【請求項3】
前記画像検索手段は、
前記入力画像に含まれる特徴量に基づいて定められた特徴ベクトルと、それぞれの前記撮像画像に含まれる特徴量に基づいて定められた特徴ベクトルとを比較し、類似スコアが高い順に複数の前記撮像画像を前記類似画像として抽出する、請求項1に記載の測位装置。
【請求項4】
前記画像検索手段は、
前記入力画像の前記第1の特徴点群と、前記類似画像として抽出された複数の前記撮像画像の前記第2の特徴点群とをマッチングした際のマッチング数がマッチング数閾値を下回る場合、複数の前記撮像画像から抽出する前記類似画像の数を類似スコアが高い順に抽出された複数の前記撮像画像の数よりも増加させ、又は、マッチング数が前記マッチング数閾値以上の場合、複数の前記撮像画像から抽出する前記類似画像の数を類似スコアが高い順に抽出された複数の前記撮像画像の数よりも減少させる、請求項3に記載の測位装置。
【請求項5】
複数の撮像画像のそれぞれに含まれる特徴点の位置の差異に基づいて、撮像画像に写った対象の3次元形状を推定する画像処理技術を用いて作成された対象エリアの環境地図
と、前記環境地図を作成する際に、前記複数の撮像画像のそれぞれに含まれる特徴点と前記環境地図内の特徴点とが関連付けられた情報と、を前記環境地図を生成する装置から取得し、複数の前記撮像画像を撮像装置から取得し、
入力画像に含まれる特徴量に基づいて定められた特徴ベクトルと複数の前記撮像画像に含まれる特徴量に基づいて定められた特徴ベクトルとを比較して得られた類似スコアに基づいて複数の前記撮像画像から類似画像を抽出し、
前記入力画像の第1の特徴点群と、前記第1の特徴点群とマッチングされた前記類似画像の第2の特徴点群に関連付けられている前記環境地図内の第3の特徴点群とを用いて
PnP(Perspective n Point)問題を解くことによって、前記入力画像を撮像した撮像装置の位置及び姿勢を推定し、
前記撮像装置の位置から、前記第3の特徴点群に含まれる点までの距離が閾値を超えている場合に当該点をノイズと判定し、ノイズとなる点を削除する、推定方法。
【請求項6】
複数の撮像画像のそれぞれに含まれる特徴点の位置の差異に基づいて、撮像画像に写った対象の3次元形状を推定する画像処理技術を用いて作成された対象エリアの環境地図
と、前記環境地図を作成する際に、前記複数の撮像画像のそれぞれに含まれる特徴点と前記環境地図内の特徴点とが関連付けられた情報と、を前記環境地図を生成する装置から取得し、複数の前記撮像画像を撮像装置から取得し、
入力画像に含まれる特徴量に基づいて定められた特徴ベクトルと複数の前記撮像画像に含まれる特徴量に基づいて定められた特徴ベクトルとを比較して得られた類似スコアに基づいて複数の前記撮像画像から類似画像を抽出し、
前記入力画像の第1の特徴点群と、前記第1の特徴点群とマッチングされた前記類似画像の第2の特徴点群に関連付けられている前記環境地図内の第3の特徴点群とを用いて
PnP(Perspective n Point)問題を解くことによって、前記入力画像を撮像した撮像装置の位置及び姿勢を推定し、
前記撮像装置の位置から、前記第3の特徴点群に含まれる点までの距離が閾値を超えている場合に当該点をノイズと判定し、ノイズとなる点を削除する、ことをコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、測位装置、推定方法、及びプログラムに関する。
【背景技術】
【0002】
近年、ロボットが自律的に移動することを前提としたサービスが普及している。ロボットが自律的に移動するには、ロボットが、周囲の環境を認識し、自己の位置を高精度に推定することが必要となる。そこで、ロボットが撮影した映像から、周囲の環境の地図を作成し、自己位置の推定を同時に実行するVSLAM(Visual Simultaneous Localization and Mapping)が検討されている。
【0003】
一般的なVSLAMでは、ロボットに搭載されたカメラによって撮影された複数の映像(画像)において同一地点を特徴点として認識する。さらに、その特徴点の画像間における差異から、当該カメラの位置を推定し、推定結果から当該カメラの位置をロボットの位置として認識するということが行われる。このようなVSLAMでは、即時的な処理が必要とされるため、詳細な計算を実施する時間的な余裕がなく、実際のロボットの位置とVSLAMで推定した位置との間に誤差が生じ、この誤差は蓄積誤差として時間が経過する毎に蓄積され、より大きな誤差となる。そのため、蓄積誤差を持つVSLAMでのカメラ位置を補正するための仕組みとして、予め生成されたマップを併用した仕組みが用いられる。
【0004】
特許文献1には、連続するフレーム画像を用いてマップを構築する処理が開示されている。具体的には、特許文献1には、隣接する2つのフレーム画像同士における特徴点に対してマッチングを行い、現在のフレーム画像と直前のフレーム画像との相対姿勢を算出することが開示されている。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1においては、目標画像のROI(Region Of Interest)に含まれる特徴点と、マップを構築する際に用いられたフレーム画像のROIに含まれる特徴点とのマッチングを行うことが開示されている。さらに、特許文献1においては、目標画像とマップを構築する際に用いられたフレーム画像との相対姿勢を算出することが開示されている。しかし、目標画像と、フレーム画像との類似度が低い場合、特徴点のマッチングの誤りが発生し、相対姿勢の算出精度が低下するという問題がある。
【0007】
本開示の目的の1つは、特徴点のマッチングの誤りの割合を減少させ、相対姿勢の算出精度を向上させることができる測位装置、推定方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【0008】
本開示の第1の態様にかかる測位装置は、2次元画像に含まれる対象の3次元形状を推定する画像処理技術を用いて作成された対象エリアの環境地図と、前記環境地図を作成するために用いられた複数の撮像画像とを取得する取得部と、入力画像に含まれる特徴量に基づいて定められた特徴ベクトルと類似する特徴ベクトルを有する類似画像を複数の前記撮像画像から抽出する画像検索部と、前記入力画像の第1の特徴点群と、前記第1の特徴点群とマッチングされた前記類似画像の第2の特徴点群に対応する前記環境地図内の第3の特徴点群とを用いて、前記入力画像を撮像した撮像装置の位置及び姿勢を推定する推定部と、を備える。
【0009】
本開示の第2の態様にかかる推定方法は、2次元画像に含まれる対象の3次元形状を推定する画像処理技術を用いて作成された対象エリアの環境地図と、前記環境地図を作成するために用いられた複数の撮像画像とを取得し、入力画像に含まれる特徴量に基づいて定められた特徴ベクトルと類似する特徴ベクトルを有する類似画像を複数の前記撮像画像から抽出し、前記入力画像の第1の特徴点群と、前記第1の特徴点群とマッチングされた前記類似画像の第2の特徴点群に対応する前記環境地図内の第3の特徴点群とを用いて、前記入力画像を撮像した撮像装置の位置及び姿勢を推定する。
【0010】
本開示の第3の態様にかかるプログラムは、2次元画像に含まれる対象の3次元形状を推定する画像処理技術を用いて作成された対象エリアの環境地図と、前記環境地図を作成するために用いられた複数の撮像画像とを取得し、入力画像に含まれる特徴量に基づいて定められた特徴ベクトルと類似する特徴ベクトルを有する類似画像を複数の前記撮像画像から抽出し、前記入力画像の第1の特徴点群と、前記第1の特徴点群とマッチングされた前記類似画像の第2の特徴点群に対応する前記環境地図内の第3の特徴点群とを用いて、前記入力画像を撮像した撮像装置の位置及び姿勢を推定することをコンピュータに実行させる。
【発明の効果】
【0011】
本開示により、特徴点のマッチングの誤りの割合を減少させ、相対姿勢の算出精度を向上させることができる測位装置、推定方法、及びプログラムを提供することができる。
【図面の簡単な説明】
【0012】
【
図1】実施の形態1にかかる測位装置の構成図である。
【
図2】実施の形態2にかかるマップ生成装置の構成図である。
【
図3】実施の形態2にかかるマップ生成装置において実行される事前処理の流れを示す図である。
【
図4】実施の形態2にかかる測位装置の構成図である。
【
図5】実施の形態2にかかる測位装置において実行されるオンライン処理の流れを示す図である。
【
図6】実施の形態2にかかる測位装置において実行される補正処理の流れを示す図である。
【
図7】実施の形態3にかかる測位装置の構成図である。
【
図8】それぞれの実施の形態にかかる測位装置の構成図である。
【発明を実施するための形態】
【0013】
(実施の形態1)
以下、図面を参照して本開示の実施の形態について説明する。
図1を用いて実施の形態1にかかる測位装置10の構成例について説明する。測位装置10は、プロセッサがメモリに格納されたプログラムを実行することによって動作するコンピュータ装置であってもよい。測位装置10は、サーバ装置であってもよい。
【0014】
測位装置10は、取得部11、画像検索部12、及び推定部13を有している。取得部11、画像検索部12、及び推定部13は、プロセッサがメモリに格納されたプログラムを実行することによって処理が実行されるソフトウェアもしくはモジュールであってもよい。または、取得部11、画像検索部12、及び推定部13は、回路もしくはチップ等のハードウェアであってもよい。
【0015】
取得部11は、2次元画像に含まれる対象の3次元形状を推定する画像処理技術を用いて作成された対象エリアの環境地図と、環境地図を作成するために用いられた複数の撮像画像とを取得する。2次元画像に含まれる対象の3次元形状を推定する画像処理技術は、例えば、SfM(Structure from Motion)であってもよい。環境地図を取得するとは、環境地図を示すデータを取得することを意味し、撮像画像を取得するとは、撮像画像を示すデータを取得することを意味する。撮像画像は、以下の説明において、フレーム画像もしくは単にフレームとも称する。SfMにおいては、既に撮像された複数の撮像画像に現れた全ての特徴点を算出し、算出した全ての特徴点の中から、時間的に前後する複数の画像を対象として、マッチングする特徴点が推定される。さらに、SfMにおいては、各特徴点が現れた撮像画像における2次元平面上の位置の差異に基づいて、各撮像画像を撮影した撮像装置の3次元位置を推定する。撮像画像は、例えば、2次元画像であり、フレームと称されてもよい。推定された撮像装置の3次元位置を示す情報は、環境地図と称される。
【0016】
さらに、環境地図には、撮像画像に写った対象エリア内の対象物の3次元形状も示される。つまり、環境地図を生成することによって、撮像画像における2次元平面上の特徴点に対応する3次元空間上の特徴点が特定される。3次元空間上の特徴点は、環境地図内の特徴点と言い換えられてもよい。撮像画像は複数の特徴点を含む。複数の特徴点は、特徴点群と言い換えられてもよい。
【0017】
画像検索部12は、入力画像に含まれる特徴量に基づいて定められた特徴ベクトルと類似する特徴ベクトルを有する類似画像を複数の撮像画像から抽出する。入力画像は、位置及び姿勢の推定が要求される撮像装置において撮像された画像である。入力画像及び撮像画像に含まれる特徴量は、画像内の特徴を数値化した情報である。例えば、特徴量は、ORB(Oriented FAST and Rotated BRIEF)、HOG(Histogram of Oriented Gradient)もしくはSIFT(Scale-Invariant Feature Transform)等を用いて示されてもよい。特徴ベクトルは、特徴量のヒストグラムであってもよい。画像検索部12は、入力画像の特徴ベクトルと、撮像画像の特徴ベクトルとを比較し、最も高い類似スコアを示す特徴ベクトルを有する撮像画像を、類似画像として抽出してもよい。類似スコアの算出は、画像検索を行う際に用いられる一般的な手法が用いられるため、詳細な説明を省略する。類似スコアが高いほど、画像同士の類似度が高いとする。
【0018】
推定部13は、入力画像を撮像した撮像装置の位置及び姿勢を推定する。推定部13は、入力画像の特徴点群と、入力画像の特徴点群とマッチングされた類似画像の特徴点群に対応する環境地図内の特徴点群とを用いて、撮像装置の位置及び姿勢を推定する。
【0019】
以上説明したように、測位装置10は、環境地図を作成するためにSfMにおいて用いられた複数の撮像画像の中から、入力画像と類似する類似画像を抽出する。さらに、測位装置10は、入力画像と類似画像とを用いて、入力画像を撮像した撮像装置の位置及び姿勢を推定する。また、類似画像の抽出は、特徴量に基づいて定められた特徴ベクトルを比較することによって行われる。これにより、測位装置10は、入力画像を撮像した撮像装置の位置及び姿勢を推定する際に、入力画像との類似度が高い類似画像を用いることができる。その結果、入力画像と類似画像との間の特徴点のマッチング精度が向上し、測位装置10における相対姿勢の算出精度を向上させることができる。
【0020】
(実施の形態2)
図2を用いて実施の形態2にかかるマップ生成装置30の構成例について説明する。マップ生成装置30は、プロセッサがメモリに格納されたプログラムを実行することによって動作するコンピュータ装置である。マップ生成装置30は、サーバ装置であってもよい。マップ生成装置30は、事前処理を実行する装置である。事前処理は、VSLAMを用いたリアルタイムの位置推定を実行する前に、SfMを用いて環境地図を含むSfM関連情報を作成する処理である。事前処理は、マップ生成装置30単体の処理にて完結するため、オフライン処理と称されてもよい。以下においては、マップ生成装置30が事前処理を実行する例について説明するが、事前処理は、のちに説明する測位装置20において実行されてもよい。言い換えると、マップ生成装置30が、のちに説明する測位装置20と一体として用いられる場合、オフライン処理は、測位装置20において実行されてもよい。
【0021】
マップ生成装置30は、取得部31及びSfM実行部32を有する。取得部31及びSfM実行部32は、プロセッサがメモリに格納されたプログラムを実行することによって処理が実行されるソフトウェアもしくはモジュールであってもよい。または、取得部31及びSfM実行部32は、回路もしくはチップ等のハードウェアであってもよい。
【0022】
取得部31は、SfMに用いられる複数の撮像画像を取得する。撮像画像は、対象エリア内に存在する対象物が撮像された画像である。対象エリアは、例えば、ロボットもしくはAGV(Automatic Guided Vehicle)等が移動するエリアであってもよい。対象物は、例えば、人、動物、植物等であってもよく、建築物、壁等の構造物であってもよい。
【0023】
取得部31は、対象エリア内を撮像したカメラ等から、無線通信回線もしくは有線通信回線等のネットワーク(通信ネットワーク)を介して撮像画像を取得してもよい。もしくは、取得部31は、持ち運び可能な記録媒体等を介して、撮像画像を取得してもよい。もしくは、マップ生成装置30内にカメラが搭載されている場合、取得部31は、マップ生成装置30内のカメラにおいて撮像された撮像画像を受け取る。
【0024】
SfM実行部32は、複数の撮像画像を用いてSfMを実行する。SfM実行部32は、SfMを実行することによって、環境地図を含むSfM関連情報を作成する。SfM実行部32は、SfMにおいて複数の撮像画像の特徴点マッチング及び局所的かつ大域的バンドル調整を実行することによって、高精度な環境地図を作成する。
【0025】
環境地図は、対象エリアを撮像した撮像装置の位置及び姿勢と、対象エリア内の対象物の3次元形状とを示す3次元の地図である。環境地図は、深度マップ、深さマップ(デプス(depth)マップ)等と称されてもよい。さらに、SfM実行部32が、SfMを実行して環境地図を作成することによって、BoW(Bag of Words)データベース、2D-3Dペア情報、特徴点情報も併せて作成される(ここで、2Dは2次元を表し、3Dは3次元を表す)。SfM関連情報は、環境地図、BoWデータベース、2D-3Dペア情報、及び特徴点情報を含む情報である。
【0026】
BoWは、Bag of FeaturesもしくはBag of Keypoints等と言い換えられてもよい。BoWデータベースは、画像の類似度を算出する際に用いられる特徴ベクトルを管理するデータベースである。マップ生成装置30は、例えば、画像に含まれる複数の特徴量をクラスタリングし、それぞれの特徴量をクラスタに分割する。さらに、マップ生成装置30は、それぞれのクラスタに含まれる特徴量のうち代表特徴量のヒストグラムを特徴ベクトルとしてもよい。特徴量は、例えば、HOG特徴量もしくはSIFT特徴量等であってもよい。BoWデータベースは、SfMを実行する際に用いられた複数の撮像画像と、それぞれの撮像画像に関する特徴ベクトルとを関連付けて管理する。
【0027】
特徴点情報は、例えば、2次元画像内の特徴点が示す特徴量に関する情報であってもよい。例えば、特徴点情報は、HOG特徴量もしくはSIFT特徴量等を示す情報であってもよい。
【0028】
2D-3Dペア情報は、2次元画像内の特徴点と、2次元画像内の特徴点に対応する環境地図内の特徴点とを関連付けた(紐付けした)情報である。2次元画像内の特徴点を、例えば、2D点と称する。また、3次元空間における環境地図内の特徴点を、例えば、3D点と称する。2D-3Dペア情報は、2D点と、その2D点に対応する3D点とが関連付け(紐づけ)された、組み合わせを示す情報である。
【0029】
SfM関連情報は、さらに、環境地図を作成する際に用いられた複数の撮像画像を含む。つまり、SfM関連情報は、環境地図、BoWデータベース、2D-3Dペア情報、特徴点情報、及び環境地図を作成する際に用いられた複数の撮像画像、を含む。マップ生成装置30は、SfM関連情報を、測位装置20へ送信する。
【0030】
続いて、
図3を用いて、マップ生成装置30において実行される事前処理の流れについて説明する。はじめに、取得部31は、SfMにおいて用いられる複数の撮像画像を取得する(S11)。次に、SfM実行部32は、ステップS11において取得された撮像画像を用いたSfMを実行する(S12)。ここで、SfM実行部32は、SfMを実行することによって、環境地図を含むSfM関連情報を作成する(S13)。
【0031】
続いて、
図4を用いて実施の形態2にかかる測位装置20の構成例について説明する。測位装置20は、移動中のロボットもしくはAGV等のリアルタイムの位置及び姿勢を測定する。測位装置20は、移動中のロボットもしくはAGV等において撮像された画像をネットワークを介して取得し、取得した画像の解析処理を行う。そのため、測位装置20において実行される処理は、オンライン処理と称されてもよい。移動中のロボットもしくはAGV等において撮像された画像とは、移動中のロボットもしくはAGV等に搭載もしくは内蔵されているカメラにおいて撮像された画像と同様の意味である。
【0032】
測位装置20は、SfM関連情報取得部21、画像検索部22、マッチング部23、推定部24、画像取得部25、リアルタイム測位部26、及び補正部27を有している。SfM関連情報取得部21、画像検索部22、マッチング部23、推定部24、画像取得部25、リアルタイム測位部26、及び補正部27等の測位装置20の構成要素は、回路もしくはチップ等のハードウェアであってもよい。または、測位装置20の構成要素は、プロセッサがメモリに格納されたプログラムを実行することによって処理が実行されるソフトウェアもしくはモジュールであってもよい。
【0033】
SfM関連情報取得部21は、
図1の取得部11に相当する。画像検索部22は、
図2の画像検索部12に相当する。推定部24は、
図1の推定部13に相当する。
【0034】
画像取得部25は、AGVにおいて撮像された撮像画像を取得する。以下においては、主に、AGVにおいて撮像された撮像画像が用いられる例について説明される。しかし、以下の説明においては、AGVにおいて撮像された撮像画像が、ロボットもしくは他の自律的に移動する物体もしくはコンピュータ装置において撮像された撮像画像に置き換えられてもよい。移動中のAGVにおいて撮像された撮像画像は、移動中のAGVの位置及び姿勢を推定するために用いられる画像である。移動中のAGVにおいて撮像された撮像画像は、例えば、リアルタイム画像と称されてもよい。リアルタイム画像は、
図1において説明した入力画像に相当する。
【0035】
画像取得部25は、AGVから、ネットワークを介してリアルタイム画像を取得してもよい。画像取得部25は、定期的にリアルタイム画像を取得してもよく、不定期にリアルタイム画像を取得してもよい。例えば、画像取得部25は、AGVの移動速度が速い場合には、リアルタイム画像を取得する間隔を短くし、AGVの移動速度が遅い場合には、リアルタイム画像を取得する間隔を長くしてもよい。移動速度が速いかもしくは遅いかは、閾値となる速度よりも速いか遅いかに応じて決定されてもよい。AGVの移動速度は、例えば、AGVのGPS(Global Positioning System)情報(GNSS(Global Navigation Satellite System)情報)を取得し、取得したGPS情報に基づいて算出されてもよい。また、AGVが、自装置の移動速度に応じて、リアルタイム画像を測位装置20へ送信する間隔を定めてもよい。画像取得部25は、リアルタイム画像を画像検索部22へ出力する。
【0036】
SfM関連情報取得部21は、マップ生成装置30から送信されたSfM関連情報を受信する。SfM関連情報取得部21は、ネットワークを介してマップ生成装置30からSfM関連情報を受信してもよく、持ち運び可能な記録媒体等からSfM関連情報を取得してもよい。もしくは、SfM関連情報取得部21は、測位装置20内においてSfM関連情報が作成された場合、測位装置20内において作成されたSfM関連情報を取得してもよい。SfM関連情報取得部21は、SfM関連情報を画像検索部22へ出力する。
【0037】
画像検索部22は、画像取得部25から受け取ったリアルタイム画像に類似する画像を、SfM関連情報に含まれる複数の撮像画像の中から検索する。例えば、画像検索部22は、BoWデータベースに管理されているそれぞれの撮像画像の特徴ベクトルを用いて、リアルタイム画像に類似する画像を検索する。具体的には、画像検索部22は、リアルタイム画像の特徴ベクトルを算出する。さらに、画像検索部22は、リアルタイム画像の特徴ベクトルと、BoWデータベースに管理されているそれぞれの撮像画像の特徴ベクトルとを比較する。画像検索部22は、リアルタイム画像の特徴ベクトルと、BoWデータベースに管理されているそれぞれの特徴ベクトルとを比較して、画像同士の類似度を示す類似スコアを算出する。
【0038】
画像検索部22は、リアルタイム画像の特徴ベクトルと、それぞれの画像の特徴ベクトルとを比較した結果得られる類似スコアが高い順にN(Nは1以上の整数)枚の撮像画像を、リアルタイム画像に類似する画像としてSfM関連情報から抽出する。抽出する枚数は、予め定められていてもよい。もしくは、画像検索部22は、類似スコアの閾値を予め設定し、類似スコアがN位に入っている画像であっても、閾値以下の類似スコアを示す撮像画像については、抽出しなくてもよい。
【0039】
マッチング部23は、リアルタイム画像と、N枚の類似画像のそれぞれとを用いて特徴点マッチングを行う。例えば、マッチング部23は、特徴点情報に基づいて、リアルタイム画像内の2D点と、類似画像内の2D点とをマッチングしてもよい。ここで、マッチング部23は、SfM関連情報に含まれる2D-3Dペア情報を用いて、類似画像内のマッチングされた2D点に関連付けられている3D点を特定する。マッチング部23は、リアルタイム画像内の2D点と、リアルタイム画像内の2D点とマッチングされた類似画像内の2D点に関連付けられている3D点とのペア(以下、位置補正用2D-3Dペア、と称する)を作成する。マッチング部23は、N枚の類似画像それぞれに対して特徴点マッチングを行い、複数の位置補正用2D-3Dペアを作成する。
【0040】
ここで、リアルタイム画像と、N枚の類似画像との特徴点マッチングを行った際の合計のマッチング数が、閾値未満の場合、画像検索部22は、撮像画像を抽出する枚数であるNの値を大きくしてもよい。さらに、画像検索部22は、類似スコアの閾値を下げてもよい。また、合計マッチング数が閾値以上の場合、画像検索部22は、撮像画像を抽出する枚数であるNの値を小さくしてもよい。さらに、画像検索部22は、類似スコアの閾値を上げてもよい。合計マッチング数が少ないとは、抽出された類似画像の類似度が低いことを示すため、マッチング数を増加させるためにNの値を大きくし、抽出する類似画像の枚数を多くする。また、合計マッチング数が多いとは、抽出された類似画像の類似度が高いことを示すため、誤マッチングの数を減少させるためにNの値を小さくし、抽出する類似画像の枚数を少なくする。誤マッチングは、異なる対象物もしくは位置を示す特徴点同士をマッチングすることである。
【0041】
変更後の値N及び類似スコアの閾値は、新たなリアルタイム画像を取得した際に実行される、画像検索部22における類似画像の抽出処理に用いられる。
【0042】
推定部24は、複数の位置補正用2D-3Dペアを用いて、AGVの位置及び姿勢を推定する。例えば、推定部24は、複数の位置補正用2D-3Dペアを用いてPnP(Perspective n Point)問題を解くことによって、AGVの位置及び姿勢を推定する。さらに、推定部24は、ロバスト推定としてRANSAC(Random Sample Consensus)処理を行うことによって、AGVの位置及び姿勢の推定精度を向上させてもよい。
【0043】
リアルタイム測位部26は、画像取得部25において取得されたリアルタイム画像を用いてAGVの位置及び姿勢を測位もしくは推定する。リアルタイム測位部26は、例えば、リアルタイム画像を用いてVSLAMを実行することによって、AGVの位置及び姿勢を測位もしくは推定してもよい。
【0044】
補正部27は、リアルタイム測位部26において推定されたAGVの位置及び姿勢を、推定部24において推定されたAGVの位置及び姿勢を用いて補正する。具体的には、補正部27は、VSLAMを用いて推定されたAGVの位置と、実際のAGVの位置との間に生じる誤差を、推定部24において推定されたAGVの位置を用いて補正する。
【0045】
続いて、
図5を用いて実施の形態2にかかる測位装置20において実行されるオンライン処理の流れについて説明する。はじめに、画像取得部25は、AGVに搭載されたカメラにおいて撮像されたリアルタイム画像を、ネットワークを介して取得する(S21)。次に、リアルタイム測位部26は、ステップS21において取得されたリアルタイム画像を用いてVSLAMを実行する(S22)。リアルタイム測位部26は、VSLAMを実行することによって、リアルタイム画像を撮像したAGVの位置及び姿勢を推定する。
【0046】
次に、補正部27は、ステップS22において推定されたAGVの位置及び姿勢を、事前に作成された環境地図を用いて推定されたAGVの位置及び姿勢に基づいて、補正する(S23)。
【0047】
続いて、
図6を用いて、
図5のステップS23において実行される補正処理の詳細について説明する。はじめに、画像検索部22は、SfM関連情報取得部21からSfM関連情報を取得する(S31)。SfM関連情報は、環境地図、BoWデータベース、2D-3Dペア情報、特徴点情報、及び環境地図を作成する際に用いられた複数の撮像画像、を含む。
【0048】
次に、画像検索部22は、AGVにおいて撮像されたリアルタイム画像を取得する(S32)。次に、画像検索部22は、リアルタイム画像に類似する類似画像を、SfM関連情報に含まれる複数の撮像画像の中から抽出する(S33)。例えば、画像検索部22は、リアルタイム画像に関する特徴ベクトルと、BoWデータベースに管理されている撮像画像の特徴ベクトルとを比較し、類似スコアが高い順にN枚の撮像画像を類似画像として抽出する。
【0049】
次に、マッチング部23は、リアルタイム画像及び類似画像の特徴点情報を用いて、特徴点マッチングを行う(S34)。即ち、マッチング部23は、S34において以下の処理を行う。まず、マッチング部23は、リアルタイム画像内の2D点にマッチングする類似画像内の2D点を、特徴点情報を参照することによって特定する。次にマッチング部23は、当該リアルタイム画像内の2D点と、当該特定した類似画像内の2D点に対応する3D点とを関連付ける(紐づける)ことによって、位置補正用2D-3Dペアを作成する。
【0050】
次に、推定部24は、位置補正用2D-3Dペアを用いることによって、リアルタイム画像を撮像したAGVの位置及び姿勢を推定する(S35)。次に、補正部27は、VSLAMを用いて推定された位置と、実際のロボット等の位置との間に生じる誤差を、推定部24において推定されたAGVの位置を用いて補正する(S36)。
【0051】
以上説明したように、実施の形態2にかかる測位装置20は、リアルタイム画像に類似するN枚の類似画像を抽出する。これにより、マッチング部23は、リアルタイム画像と1枚の類似画像とをマッチングさせる場合と比較して、多くの位置補正用2D-3Dペアを作成することができる。推定部24は、多くの位置補正用2D-3Dペアを用いることによって、AGVの位置及び姿勢の推定精度を向上させることができる。
【0052】
リアルタイム画像と類似画像とをマッチングさせる場合、実際には異なる特徴点同士であるが、類似する特徴点同士をマッチングさせる誤マッチングを発生させることがある。誤マッチングの発生が多くなるにつれて、AGVの位置及び姿勢の推定精度も低下する。これに対して、リアルタイム画像と複数の類似画像とをマッチングさせることによって、マッチング数を増加させ、誤マッチングの割合を低下させることができる。その結果、誤マッチングが及ぼす位置及び姿勢の推定への影響を減少させることができる。
【0053】
(実施の形態3)
続いて、
図7を用いて実施の形態3にかかる測位装置40の構成例について説明する。測位装置40は、
図4の測位装置20に、ノイズ除去部41が追加された構成である。以下の説明においては、測位装置40の構成のうち、
図4の測位装置20と同様の構成については詳細な説明を省略する。
【0054】
ノイズ除去部41は、マッチング部23において作成された複数の位置補正用2D-3Dペアのうち、ノイズと推定される3D点を含む位置補正用2D-3Dペアを除去する。具体的には、ノイズ除去部41は、(i-1)番目(iは2以上の整数)のリアルタイム画像に基づいて推定されたAGVの位置と、i番目のリアルタイム画像に基づいて生成された位置補正用2D-3Dペアとを用いてノイズとなる3D点を推定する。
【0055】
ノイズ除去部41は、(i-1)番目のリアルタイム画像に基づいて推定されたAGVの位置から、i番目のリアルタイム画像に基づいて生成された位置補正用2D-3Dペアに含まれる3D点までの距離情報を用いた統計処理を行う。ノイズ除去部41は、統計処理においてノイズとみなされる3D点を特定する。統計処理は、例えば、平均及び分散を用いた閾値判定もしくはスミルノフ検定等が用いられてもよい。
【0056】
より具体的には、XYZ空間(即ち、X軸、Y軸およびZ軸からなる3次元座標空間)における、AGVの位置と3D点の位置との間の距離が閾値を超えている場合、その3D点にはノイズが含まれると判定してもよい。または、ノイズ除去部41は、係るXYZ空間において、AGVの位置と3D点との間のX成分、Y成分、及びZ成分のそれぞれについて距離を求め、X成分、Y成分、及びZ成分のいずれかが閾値を超えている場合、当該3D点にはノイズが含まれると判定してもよい。X成分、Y成分、及びZ成分のそれぞれについて距離とは、AGVの位置を示すX成分、Y成分、及びZ成分と、3D点の位置を示すX成分、Y成分、及びZ成分との差分であってもよい。
【0057】
または、ノイズ除去部41は、係るXYZ空間において、AGVの位置及び3D点を、XY平面、YZ平面、及びXZ平面に投影し、それぞれの平面に投影されたAGVの位置と3D点との間の距離を求めてもよい。この場合、ノイズ除去部41は、XY平面、YZ平面、及びXZ平面のいずれかにおける距離が閾値を超えている場合、3D点にはノイズが含まれると判定してもよい。
【0058】
XYZ空間における閾値は、例えば、マッチング部23において作成されたすべての位置補正用2D-3Dペアに含まれる3D点と、AGVの位置との間の距離Dの平均をμとし、距離Dの分散をVとした場合に、μ+α√(V)としてもよい。αは、係数である。√(V)は、ルートVを示している。X成分、Y成分、及びZ成分のそれぞれについての閾値、並びに、それぞれの平面における閾値についても、XYZ空間における閾値と同様に定められてもよい。
【0059】
ノイズ除去部41は、XYZ空間上の距離、X成分、Y成分、及びZ成分のそれぞれについての距離、並びに、それぞれの平面上の距離の少なくとも1つの距離と、閾値とを算出し、ノイズの有無を判定してもよい。
【0060】
また、i番目のリアルタイム画像に基づいて生成された位置補正用2D-3Dペアに含まれる3D点とAGVとの間の距離Diを用いてDi+1によって定められる3D点が、ノイズに相当するか否かを判定してもよい。例えば、Di+1とDiとの差が、予め定められた値を超える場合に、Di+1によって定められる3D点がノイズに相当すると判定してもよい。
【0061】
推定部24は、マッチング部23において作成された複数の位置補正用2D-3Dペアから、ノイズと推定される3D点を含む位置補正用2D-3Dペアが除去された残りの位置補正用2D-3Dペアを用いて、移動するAGVの位置及び姿勢を推定する。
【0062】
以上説明したように、測位装置40は、マッチング部23において作成された複数の位置補正用2D-3Dペアから、ノイズと推定される3D点を含む位置補正用2D-3Dペアを削除する。ノイズと推定される3D点を含む位置補正用2D-3Dペアを用いて推定されたAGVの位置を用いて、リアルタイム測位部26において推定されたAGVの位置を補正した場合、正しい位置へ補正するための補正精度が低下することとなる。一方、測位装置40は、ノイズと推定される3D点を含む位置補正用2D-3Dペアを削除し、のこりの位置補正用2D-3Dペアを用いて推定されたAGVの位置を用いてリアルタイム測位部26において推定されたAGVの位置を補正する。これにより、リアルタイム測位部26において推定されたAGVの位置を正しい位置へ補正するための補正精度を向上させることができる。
【0063】
また、ノイズ除去部41は、上述した3D点のノイズの推定のほかに、例えば、3D点を撮像画像に再投影した際の再投影誤差が閾値を超えているか否かに応じて、3D点がノイズか否かを判定してもよい。
【0064】
図8は、測位装置10、測位装置20、及び測位装置40(以下、測位装置10等と称する)の構成例を示すブロック図である。
図8を参照すると、測位装置10等は、ネットワークインタフェース1201、プロセッサ1202、及びメモリ1203を含む。ネットワークインタフェース1201は、ネットワークノード(e.g., eNB、MME、P-GW、)と通信するために使用される。ネットワークインタフェース1201は、例えば、IEEE 802.3 seriesに準拠したネットワークインタフェースカード(NIC)を含んでもよい。ここで、eNBはevolved Node B、MMEはMobility Management Entity、P-GWはPacket Data Network Gatewayを表す。IEEEは、Institute of Electrical and Electronics Engineersを表す。
【0065】
プロセッサ1202は、メモリ1203からソフトウェア(コンピュータプログラム)を読み出して実行することで、上述の実施形態においてフローチャートを用いて説明された測位装置10等の処理を行う。プロセッサ1202は、例えば、マイクロプロセッサ、MPU、又はCPUであってもよい。プロセッサ1202は、複数のプロセッサを含んでもよい。
【0066】
メモリ1203は、揮発性メモリ及び不揮発性メモリの組み合わせによって構成される。メモリ1203は、プロセッサ1202から離れて配置されたストレージを含んでもよい。この場合、プロセッサ1202は、図示されていないI/O(Input/Output)インタフェースを介してメモリ1203にアクセスしてもよい。
【0067】
図8の例では、メモリ1203は、ソフトウェアモジュール群を格納するために使用される。プロセッサ1202は、これらのソフトウェアモジュール群をメモリ1203から読み出して実行することで、上述の実施形態において説明された測位装置10等の処理を行うことができる。
【0068】
図8を用いて説明したように、上述の実施形態における測位装置10等が有するプロセッサの各々は、図面を用いて説明されたアルゴリズムをコンピュータに行わせるための命令群を含む1又は複数のプログラムを実行する。
【0069】
上述の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD-ROM(Read Only Memory)、CD-R、CD-R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【0070】
なお、本開示は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【0071】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
2次元画像に含まれる対象の3次元形状を推定する画像処理技術を用いて作成された対象エリアの環境地図と、前記環境地図を作成するために用いられた複数の撮像画像とを取得する取得部と、
入力画像に含まれる特徴量に基づいて定められた特徴ベクトルと類似する特徴ベクトルを有する類似画像を複数の前記撮像画像から抽出する画像検索部と、
前記入力画像の第1の特徴点群と、前記第1の特徴点群とマッチングされた前記類似画像の第2の特徴点群に対応する前記環境地図内の第3の特徴点群とを用いて、前記入力画像を撮像した撮像装置の位置及び姿勢を推定する推定部と、を備える測位装置。
(付記2)
前記画像検索部は、
前記入力画像に含まれる特徴量に基づいて定められた特徴ベクトルと、それぞれの前記撮像画像に含まれる特徴量に基づいて定められた特徴ベクトルとを比較し、最も高い類似スコアを示す前記撮像画像を前記類似画像として前記環境地図から抽出する、付記1に記載の測位装置。
(付記3)
前記画像検索部は、
前記入力画像に含まれる特徴量に基づいて定められた特徴ベクトルと、それぞれの前記撮像画像に含まれる特徴量に基づいて定められた特徴ベクトルとを比較し、類似スコアが高い順に複数の前記撮像画像を前記類似画像として抽出する、付記1又は2のいずれか1項に記載の測位装置。
(付記4)
前記画像検索部は、
前記入力画像の前記第1の特徴点群と、前記類似画像として抽出された複数の前記撮像画像の前記第2の特徴点群とをマッチングした際のマッチング数がマッチング数閾値を下回る場合、複数の前記撮像画像から抽出する前記類似画像の数を増加させ、マッチング数が前記マッチング数閾値を上回る場合、複数の前記撮像画像から抽出する前記類似画像の数を減少させる、付記3に記載の測位装置。
(付記5)
前記画像検索部は、
スコア閾値よりも高い類似スコアを示す複数の前記撮像画像を前記類似画像として抽出する、付記3または4に記載の測位装置。
(付記6)
前記画像検索部は、
前記入力画像の前記第1の特徴点群と、前記類似画像として抽出された複数の前記撮像画像の前記第2の特徴点群とをマッチングした際のマッチング数がマッチング数閾値を下回る場合、前記スコア閾値を小さくし、マッチング数が前記マッチング数閾値を上回る場合、前記スコア閾値を大きくする、付記5に記載の測位装置。
(付記7)
前記撮像装置の位置から、前記第3の特徴点群に含まれるそれぞれの点までの距離情報に基づいて、ノイズとなる点を削除するノイズ除去部をさらに備える、付記1乃至6のいずれか1項に記載の測位装置。
(付記8)
前記入力画像を用いて前記撮像装置の位置及び姿勢を測位するリアルタイム測位部と、
前記リアルタイム測位部において測位された前記撮像装置の位置及び姿勢を、前記推定部において推定された前記撮像装置の位置及び姿勢を用いて補正する補正部と、をさらに備える、付記1乃至7のいずれか1項に記載の測位装置。
(付記9)
2次元画像に含まれる対象の3次元形状を推定する画像処理技術を用いて作成された対象エリアの環境地図と、前記環境地図を作成するために用いられた複数の撮像画像とを取得し、
入力画像に含まれる特徴量に基づいて定められた特徴ベクトルと類似する特徴ベクトルを有する類似画像を複数の前記撮像画像から抽出し、
前記入力画像の第1の特徴点群と、前記第1の特徴点群とマッチングされた前記類似画像の第2の特徴点群に対応する前記環境地図内の第3の特徴点群とを用いて、前記入力画像を撮像した撮像装置の位置及び姿勢を推定する、推定方法。
(付記10)
前記類似画像を抽出する際に、
前記入力画像に含まれる特徴量に基づいて定められた特徴ベクトルと、それぞれの前記撮像画像に含まれる特徴量に基づいて定められた特徴ベクトルとを比較し、類似スコアが高い順に複数の前記撮像画像を前記類似画像として抽出する、付記9に記載の推定方法。
(付記11)
前記撮像装置の位置及び姿勢を推定する際に、
前記撮像装置の位置から、前記第3の特徴点群に含まれるそれぞれの点までの距離情報に基づいて、ノイズとなる点を削除する、付記9または10に記載の推定方法。
(付記12)
2次元画像に含まれる対象の3次元形状を推定する画像処理技術を用いて作成された対象エリアの環境地図と、前記環境地図を作成するために用いられた複数の撮像画像とを取得し、
入力画像に含まれる特徴量に基づいて定められた特徴ベクトルと類似する特徴ベクトルを有する類似画像を複数の前記撮像画像から抽出し、
前記入力画像の第1の特徴点群と、前記第1の特徴点群とマッチングされた前記類似画像の第2の特徴点群に対応する前記環境地図内の第3の特徴点群とを用いて、前記入力画像を撮像した撮像装置の位置及び姿勢を推定することをコンピュータに実行させるプログラム。
(付記13)
前記類似画像を抽出する際に、
前記入力画像に含まれる特徴量に基づいて定められた特徴ベクトルと、それぞれの前記撮像画像に含まれる特徴量に基づいて定められた特徴ベクトルとを比較し、類似スコアが高い順に複数の前記撮像画像を前記類似画像として抽出することをコンピュータに実行させる、付記12に記載のプログラム。
(付記14)
前記撮像装置の位置及び姿勢を推定する際に、
前記撮像装置の位置から、前記第3の特徴点群に含まれるそれぞれの点までの距離情報に基づいて、ノイズとなる点を削除することをコンピュータに実行させる、付記12または13に記載のプログラム。
【0072】
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記によって限定されるものではない。本願発明の構成や詳細には、発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【0073】
この出願は、2020年6月19日に出願された日本出願特願2020-105747を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【0074】
10 測位装置
11 取得部
12 画像検索部
13 推定部
20 測位装置
21 SfM関連情報取得部
22 画像検索部
23 マッチング部
24 推定部
25 画像取得部
26 リアルタイム測位部
27 補正部
30 マップ生成装置
31 取得部
32 SfM実行部
40 測位装置
41 ノイズ除去部