(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-25
(45)【発行日】2024-11-05
(54)【発明の名称】3次元マップ推定装置および障害物検出装置
(51)【国際特許分類】
G01B 11/22 20060101AFI20241028BHJP
G06T 7/70 20170101ALI20241028BHJP
G08G 1/16 20060101ALI20241028BHJP
【FI】
G01B11/22 H
G06T7/70 Z
G08G1/16 C
(21)【出願番号】P 2021071762
(22)【出願日】2021-04-21
【審査請求日】2023-09-07
(73)【特許権者】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(73)【特許権者】
【識別番号】317011920
【氏名又は名称】東芝デバイス&ストレージ株式会社
(74)【代理人】
【識別番号】100111121
【氏名又は名称】原 拓実
(74)【代理人】
【識別番号】100200104
【氏名又は名称】渡邊 実
(72)【発明者】
【氏名】西山 学
【審査官】佐田 宏史
(56)【参考文献】
【文献】特開2016-197083(JP,A)
【文献】国際公開第2017/057054(WO,A1)
【文献】国際公開第2019/188391(WO,A1)
【文献】国際公開第2015/015542(WO,A1)
【文献】特表2015-501471(JP,A)
【文献】Danping Zou et al.,"CoSLAM: Collaborative Visual SLAM in Dynamic Environments",IEEE Transactions on Pattern Analysis and Machine Intelligence,米国,IEEE,2012年05月01日,Vol.35, No.2,pp.354-366
【文献】岩崎 亘典,“広範囲が高解像度に ドローン空撮画像から3D測量の研究”,Interface,日本,CQ出版株式会社,2020年04月01日,Vol.46, No.4,pp.130-139
(58)【調査した分野】(Int.Cl.,DB名)
G01B 11/00-11/30
G06T 1/00,7/00-7/90
G06V 10/00-10/98
G08G 1/16
(57)【特許請求の範囲】
【請求項1】
移動体に搭載された、複数の画像を撮影する複数の撮像装置のうち1つ以上の撮像装置を選択する第1選択部と、
前記第1選択部が選択した前記撮像装置の撮影画像に基づいて、前記撮像装置ごとに位置姿勢推定を行い、前記撮像装置ごとの第1位置姿勢推定結果を出力する第1位置姿勢推定部と、
前記複数の第1位置姿勢推定結果の類似度を求め、前記類似度を基に必要な前記第1位置姿勢推定結果を1つ以上選択する第2選択部と、
1つ以上の前記第1位置姿勢推定結果から、第2位置姿勢推定結果を出力する第2位置姿勢推定部と、
前記第2位置姿勢推定結果と前記画像から前記移動体の周囲の3次元マップを推定する3次元マップ推定部と、
を備える3次元マップ推定装置。
【請求項2】
前記第2選択部は、合計でN個(Nは自然数)の前記第1位置姿勢推定結果から、前記第1位置姿勢推定結果を1個以上、N-1個以下の数だけ選択する、
請求項1に記載の3次元マップ推定装置。
【請求項3】
前記移動体にはセンサがさらに搭載され、前記第1選択部には、前記センサが取得したセンサ情報がさらに入力される
請求項1又は2に記載の3次元マップ推定装置。
【請求項4】
前記第1選択部は、前記移動体の周囲の3次元マップを推定する第1のタイミングよりも前の前記第1位置姿勢推定結果と、前記移動体の移動方向と、前記移動体の移動速度と、を含む情報に基づいて前記撮像装置を選択する
請求項1乃至3いずれか1つに記載の3次元マップ推定装置。
【請求項5】
前記第1選択部は、前記移動体の周囲の3次元マップを推定する第1のタイミングよりも前に推定された前記3次元マップに基づいて前記撮像装置を選択する、
請求項1乃至3いずれか1つに記載の3次元マップ推定装置。
【請求項6】
前記第1選択部は、前記移動体の周囲に存在する他の移動体の位置情報に基づいて前記撮像装置を選択する
請求項1乃至3いずれか1つに記載の3次元マップ推定装置。
【請求項7】
前記第2位置姿勢推定部は入力された複数の前記第1位置姿勢推定結果の重み付き和により前記第2位置姿勢推定結果を出力する
請求項1乃至6いずれか1つに記載の3次元マップ推定装置。
【請求項8】
前記重み付き和の重み係数は、前記撮像装置の信頼度、または前記第1位置姿勢推定結果の信頼度によって決定される
請求項7に記載の3次元マップ推定装置。
【請求項9】
前記3次元マップ推定部は、前記画像と、前記第1位置姿勢推定結果と異なる時刻の画像間の特徴点を用いて、前記画像の3次元マップを推定することを特徴とする
請求項1乃至8いずれか1つに記載の3次元マップ推定装置。
【請求項10】
前記3次元マップ推定部は、前記第2位置姿勢推定結果と、前記第1選択部で選択されなかった前記撮像装置が取得した画像の特徴点と、を用いて3次元マップを推定することを特徴とする
請求項1乃至8いずれか1つに記載の3次元マップ推定装置。
【請求項11】
前記3次元マップ推定部は、前記第2位置姿勢推定結果と、前記第2選択部で選択されなかった記第1位置姿勢推定結果の算出に用いられた画像の特徴点と、を用いて3次元マップを推定することを特徴とする請求項1に記載の3次元マップ推定装置。
【請求項12】
前記3次元マップ推定部は距離情報を取得可能な外部センサ情報から、前記撮像装置が取得した画像の特徴点と前記移動体との距離を算出し、前記移動体の周囲の3次元マップを推定することを特徴とする
請求項1乃至8いずれか1つに記載の3次元マップ推定装置。
【請求項13】
請求項1乃至12いずれか1つに記載の3次元マップ推定装置で推定された3次元マップを利用して障害物を検出する障害物検出部を有する障害物検出装置。
【請求項14】
請求項9乃至12いずれか1つに記載の3次元マップ推定装置で推定された3次元マップの前記特徴点と、前記移動体との距離が閾値以下である場合に障害物を検出する障害物検出部を有する障害物検出装置。
【請求項15】
移動体の前後左右にそれぞれ少なくとも一つずつ搭載された、複数の画像を撮影する複数の撮像装置と、
前記撮像装置のうち1つ以上の撮像装置を選択する第1選択部と、
前記第1選択部が選択した前記撮像装置の撮影画像に基づいて、前記撮像装置ごとに位置姿勢推定を行い、前記撮像装置ごとの第1位置姿勢推定結果を出力する第1位置姿勢推定部と、
前記複数の撮像装置のうち一つの前記撮像装置の位置姿勢の変化を、他の前記撮像装置の位置姿勢の変化に変換する座標変換部と、
1つ以上の前記第1位置姿勢推定結果から、第2位置姿勢推定結果を出力する第2位置姿勢推定部と、
前記第2位置姿勢推定結果と前記画像から前記移動体の周囲の3次元マップを推定する3次元マップ推定部と、
を備え、
前記3次元マップ推定部は、前記第2位置姿勢推定結果と、前記第1選択部で選択されなかった前記撮像装置が取得した画像の特徴点と、を用いて3次元マップを推定することを特徴とする、
3次元マップ推定装置。
【請求項16】
移動体に搭載された、複数の画像を撮影する複数の撮像装置のうち1つ以上の撮像装置を選択する第1選択部と、
前記第1選択部が選択した前記撮像装置の撮影画像に基づいて、前記撮像装置ごとに位置姿勢推定を行い、前記撮像装置ごとの第1位置姿勢推定結果を出力する第1位置姿勢推定部と、
前記複数の撮像装置のうち第1の撮像装置の位置姿勢の変化を、前記第1の撮像装置とは視野の重複しない第2の撮像装置の位置姿勢の変化に変換する座標変換部と、
1つ以上の前記第1位置姿勢推定結果から、第2位置姿勢推定結果を出力する第2位置姿勢推定部と、
前記第2位置姿勢推定結果と前記画像から前記移動体の周囲の3次元マップを推定する3次元マップ推定部と、
を備え、
前記3次元マップ推定部は、前記第2位置姿勢推定結果と、前記第1選択部で選択されなかった前記撮像装置が取得した画像の特徴点と、を用いて3次元マップを推定することを特徴とする、
3次元マップ推定装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、3次元マップ推定装置および障害物検出装置に関する。
【背景技術】
【0002】
車両等に搭載したカメラを用いて車両等の位置姿勢を推定し、周辺の3次元マップを推定する技術がある。車両等の位置姿勢推定は、例えば、Visual SLAM(Simultaneous Localization And Mapping)が使用される。
【0003】
3次元マップの推定には位置姿勢推定の精度が重要である。しかし、カメラが搭載された車両等の動きやカメラに映っているものによって位置姿勢推定の精度が低くなることがある。また、カメラに映るものが遠方にある場合、物体の動きが小さいため、位置姿勢推定に多くのフレームを要することがある。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明が解決しようとする課題は、位置姿勢推定の精度が良い3次元マップ推定装置および障害物検出装置を提供することである。
【課題を解決するための手段】
【0006】
実施形態の3次元マップ推定装置は、第1選択部と、第1位置姿勢推定部と、第2選択部と、第2位置姿勢推定部と、3次元マップ推定部と、を備える。第1選択部は、移動体に搭載された、複数の画像を撮影する複数の撮像装置のうち1つ以上の撮像装置を選択する。第1位置姿勢推定部は、第1選択部が選択した撮像装置の撮影画像に基づいて、撮像装置ごとに位置姿勢推定を行い、撮像装置ごとの第1位置姿勢推定結果を出力する。第2選択部は、複数の第1位置姿勢推定結果の類似度を求め、類似度を基に必要な前記第1位置姿勢推定結果を1つ以上選択する。第2位置姿勢推定部は、1つ以上の第1位置姿勢推定結果から、第2位置姿勢推定結果を出力する。3次元マップ推定部は、第2位置姿勢推定結果と画像から移動体の周囲の3次元マップを推定する。
【図面の簡単な説明】
【0007】
【
図1】第1の実施形態に係る3次元マップ推定装置100、及び障害物検出装置200の機能を示すブロック図。
【
図2】車両1に取り付けられたカメラ10の配置について説明する上面図。
【
図3】第1の実施形態に係る3次元マップ推定装置100、及び障害物検出装置200の機能を示すフローチャート。
【
図4】Visual SLAMを用いた、時刻t1における位置姿勢を推定する方法を示す図。
【
図5】(a)障害物2のある環境の一例を示す図。(b)
図5(a)に示した環境下で車両1を走行させた時の、車両1の走行軌跡の一例を示す図。
【
図6】第1の実施形態に係る3次元マップ推定装置100、及び障害物検出装置200の実装例を示す図。
【発明を実施するための形態】
【0008】
以下、本発明の実施形態について、図面を参照しながら説明する。この説明に際し、全図にわたり、共通する部分には共通する符号を付す。なお、本実施形態は、本発明を限定するものではない。
【0009】
[第1の実施形態]
(3次元マップ推定装置100、及び障害物検出装置200の機能構成の例)
第1の実施形態に係る3次元マップ推定装置100、及び障害物検出装置200について、
図1を参照して説明する。
図1は、第1の実施形態に係る3次元マップ推定装置100、及び障害物検出装置200の機能を示すブロック図である。
【0010】
3次元マップ推定装置100は、自動車等の移動体の内外に搭載されたカメラ10、およびカメラ以外のセンサ20から移動体の周辺部の3次元マップを推定する。障害物検出装置200は、3次元マップ推定装置100で推定された3次元マップを基に、障害物2を検出する。3次元マップ推定装置100は、各カメラ10、およびセンサ20と接続された第1選択部30と、第1位置姿勢推定部40と、第2選択部50と、第2位置姿勢推定部60と、座標変換部70と、3次元マップ推定部80と、を有する。さらに、障害物検出装置200は、3次元マップ推定装置100に加え、障害物検出部82と、を有する。
【0011】
以下の説明においては、自動車(車両1)にカメラ10、およびカメラ以外のセンサ20が搭載されている場合について説明する。自動車に限らず、ロボット、ドローン等にカメラ10、およびカメラ以外のセンサ20を搭載し、周囲の3次元マップを推定し、障害物2を検出することが可能である。
【0012】
本明細書において、車両1の位置姿勢とは、例えば車両1の位置と向きである。位置とは取得デバイスの絶対的な位置であっても、ある特定の点を基準とする相対的な位置であってもよい。
【0013】
また、本明細書において、障害物2とは、ある基準点からの高さがある閾値よりも大きい物体である。例えば、この閾値は路面を基準点とし、路面に対して鉛直方向における、路面から車体の最も低い部分までの最短距離を元に設定する。この閾値を超えない物体については、車両1の走行中に車両1と衝突しない物体として障害物2の検出対象から除くことができる。なお、高さに限らず、路面水平方向の物体の大きさによって障害物2としてもよい。
【0014】
カメラ10は、
図2に示すように、車両1に複数備えられ、例えば、車両1の前後左右に設けられる。センサ20は、例えば、超音波センサ、レーザー距離センサ、速度センサ、角速度センサなどであり、車両1内外にそれぞれ設けられる。
【0015】
各カメラ10、及び各センサ20は、ある時刻tにおいて、それぞれ画像、及びセンサ情報を取得する。
【0016】
第1選択部30は、複数のカメラ10、及びセンサ20のうち、いずれのカメラ10、及びセンサ20を用いて車両1の位置姿勢推定を行うかを選択する。第1選択部30では、後述する選択方法によって位置姿勢推定精度が良くなるようなカメラ10、およびセンサ20を選択する。
【0017】
第1位置姿勢推定部40は、第1選択部30が選択したカメラ10の画像、及びセンサ20が取得したセンサ情報に基づいて、個々に位置姿勢を推定し、第1位置姿勢推定結果を求める。第1位置姿勢推定部40は、例えば、Visual SLAMの技術を用いて、第1選択部30が選択したカメラ10の画像、およびセンサ20の情報から車両1の位置姿勢を推定する。なお、本実施形態では、第1位置姿勢推定部40は、カメラ10及びセンサ20ごとに対応して設けられる。これは、後述する3次元マップ推定において、第2位置姿勢推定結果の精度をより向上させるためである。また
図1では、第1位置姿勢推定部40を各ブロックに分けて記述しているが、第1位置姿勢推定部40を一のブロックとして構成し、第1選択部30からの入力信号によって、各カメラ10に対応する位置姿勢推定を個別に行ってもよい。
【0018】
第2選択部50は、各第1位置姿勢推定部40で求められた複数の第1位置姿勢推定結果から、第1位置姿勢推定結果どうしの類似度を求める。第2選択部50は、類似度を基に、必要な第1位置姿勢推定結果を1つ以上選択する。例えば、類似度が相対的に外れている第1位置姿勢推定結果を除き、それ以外の第1位置姿勢推定結果を1つ以上選択する。
【0019】
第2位置姿勢推定部60は、第2選択部50が選択した1つ以上の第1位置姿勢推定結果の重み付き和により、車両1の第2位置姿勢推定結果を求める。
【0020】
座標変換部70は、あるカメラ10の動きを、他のカメラ10の動きに変換する。補正が必要な例として、第1選択部30、及び第2選択部50で選択されなかったカメラ10が取得した画像を後述する3次元マップ推定に用いる場合がある。第1選択部30、及び第2選択部50で選択されなかったカメラ10が取得した画像からは、第1位置姿勢推定結果または第2位置姿勢推定結果が求められないため、カメラ10の位置姿勢の変化を他のカメラ10の位置姿勢の変化から求める必要がある。ここで、車両1が旋回する時、旋回の中心が車両1の後輪軸中心付近に位置する。カメラ10はそれぞれ旋回中心からの距離が異なるため、旋回による動きの大きさが異なる。そのため、例えば車両1前方に設けられたカメラ10の位置姿勢の変化を車両1後方に設けられたカメラ10の位置姿勢の変化に変換する必要がある。カメラ10の位置姿勢の変化は回転を表す行列と並進(平行移動)を表すベクトルとで表現できる。座標変換部70ではあるカメラ10の回転行列、並進ベクトルに線形変換を行い、別のカメラ10の回転行列、並進ベクトルを求めることができる。
【0021】
3次元マップ推定部80は、車両1の第2位置姿勢推定結果と、カメラ10が取得した異なる時刻の画像間の特徴点とを用いて車両1周辺の3次元マップを推定する。3次元マップ推定部80は、カメラ10の動きと異なる時刻の画像における同一の特徴点の位置関係から三角測量の原理を用いて車両1と特徴点との距離を算出し、3次元マップを推定する。また、前述したように、3次元マップはカメラ10の画像の特徴点を用いて行うが、カメラ10の画像に特徴点が少ない場合や存在しない場合には3次元マップの密度が低下する。そのため、第1選択部30で選択されなかったカメラ10が取得した画像も3次元マップ推定部80に入力することで、利用する特徴点を増やす。これにより、密度の高い3次元マップが推定される。同様に、第2選択部50で選択されなかった(除外された)第1位置姿勢推定結果の算出に用いられた画像を用いて3次元マップを推定してもよい。3次元マップ推定部80は、距離情報を取得可能な外部センサ情報、例えば超音波センサ、レーザー距離センサが取得した外部センサ情報を入力し、車両1周囲の3次元マップを推定してもよい。
【0022】
障害物検出部82は、車両1の進行方向や速度といった走行情報と、3次元マップ推定部80で算出された3次元マップに基づき障害物2を検出する。この検出結果は、例えば、図示しない警報装置などに出力され、運転者へ障害物2の有無をアラートする。
【0023】
(3次元マップ推定装置100、及び障害物検出装置200の処理の例)
3次元マップ推定装置100、及び障害物検出装置200の処理の流れについて、
図3を参照して説明する。
図3は、第1の実施形態に係る3次元マップ推定装置100、及び障害物検出装置200の処理の流れを示すフローチャートである。
【0024】
<ステップS101>
ステップS101では、第1選択部30が、車両1の位置姿勢推定精度が良くなるような位置姿勢推定に使用するカメラ10、およびセンサ20を選択する。
【0025】
第1選択部30は、例えば、t2(第2のタイミング)に取得された画像と、時刻t2の時刻のあとの時刻t1(第1のタイミング)に取得された画像とを比較し、画像中の物体の移動変化量が適切なカメラ10、及びセンサ20を1つ以上選択する。
【0026】
一例として、車両1と周辺の障害物との位置関係に基づき、異なる時刻における画像間の物体の移動変化量が適切なカメラ10、及びセンサ20を選択する。第1選択部30は、時刻t2に取得された画像、及びセンサ情報に基づく3次元マップより取得された車両1周辺の障害物2と車両1との距離について、あらかじめ設けられた第1閾値と、第2閾値との間の距離にあるカメラ10を選択する。すなわち、障害物2と車両1との距離が大きすぎず、且つ小さすぎないカメラ10を選択する。
【0027】
また、車両1の速度(車速)に基づき、カメラ10、及びセンサ20を選択してもよい。
図2において、例えば車両1が左方向に旋回する場合、車両1の左側にあるカメラ10に映る障害物2aの異なる時刻における画像間の移動変化量は小さくなる。一方、車両1の前後のカメラ10に映る障害物2bの異なる時刻における画像間の移動変化量は大きくなる。この場合、車速に閾値をあらかじめ設定してもよい。第1選択部30は、車速が閾値以下の場合において、直進時は車両1左右に搭載されたカメラ10を選択し、旋回時は車両1前後に搭載されたカメラ10を選択するようにする。一方で、車速が閾値以上の場合には、車両1前後に搭載されたカメラ10を選択する。
【0028】
さらに、パターン認識で歩行者などの他の移動体を検出し、他の移動体が少ないカメラ10を選択してもよい。後述するVisual SLAMは、カメラ10の画像上の物体が静止していることを前提として位置姿勢推定、及び3次元マップ推定を行うため、視界内の移動体が少ない方がより精度が高いためである。
【0029】
また、カメラ10が初めて画像を取得した時刻t3の画像を用いて3次元マップを推定する場合、時刻t3に取得された画像、及びセンサ情報に基づく3次元マップが存在しない。そのため、第1選択部30は、前述した時刻t2での車速や角速度、他の移動体の有無に基づきカメラ10を選択する。
【0030】
<ステップS102>
ステップS102では、ステップS101において選択されたカメラ10の画像、及びセンサ20のセンサ情報に基づき、各第1位置姿勢推定部40が対応したカメラ10、およびセンサ20ごとに位置姿勢推定を行う。
【0031】
時刻t1における位置姿勢を推定する方法のうち、Visual SLAMを用いた手法について、
図4を参照して説明する。まず、第1位置姿勢推定部40は、第1選択部30で選択されたカメラ10から、時刻t2と、時刻t1の画像を取得する。次に、時刻t2と、時刻t1におけるそれぞれの画像について、2か所以上の特徴点群を抽出する。そして、時刻t1およびt2で抽出された特徴点群同士でマッチングを行い、t1とt2の特徴点の対応関係を求める。特徴点群同士のマッチングは、例えば特徴点周辺の画像パターンに対しNCC(Normalized Cross-Correlation)などを用いて算出された類似する値等を用いる。対応付けされた特徴点ペアの動きから、時刻t2からt1の車両1の位置姿勢の変化を推定する。
【0032】
第1位置姿勢推定結果は、車両1の時刻t2からt1の並進運動(3次元)、及び回転運動(3次元)から構成され、6次元の第1位置姿勢推定結果が求められる。
【0033】
<ステップS103>
ステップS103では、第1位置姿勢推定部40がステップS102において推定された6次元の第1位置姿勢推定結果を、第2選択部50に出力する。
【0034】
<ステップS104>
ステップS104では、第2選択部50が、ステップS103における出力結果を基に各カメラ10の第1位置姿勢推定結果どうしの類似度を求める。その後、求めた類似度を基に、第2選択部50は必要な第1位置姿勢推定結果を1つ以上選択する。例えば、相対的に外れている第1位置姿勢推定結果(外れ値)を除き、それ以外の第1位置姿勢推定結果を1つ以上選択する。
【0035】
類似度は、例えば、各カメラ10の並進運動を表す並進ベクトルの比較や、ベクトルどうしの内積を利用する。回転運動同士の類似度を定義し、それを利用してもよい。
【0036】
<ステップS105>
ステップS105では、ステップS104において第2選択部50が選択した1つ以上の第1位置姿勢推定結果を、第2位置姿勢推定部60に出力する。
【0037】
<ステップS106>
ステップS106では、第2位置姿勢推定部60が、ステップS105において出力された第1位置姿勢推定結果から第2位置姿勢推定結果を求め、座標変換部70に出力する。これにより、時刻t2からt1における車両1の位置姿勢の変化が推定される。
【0038】
第2位置姿勢推定結果は、各第1位置姿勢推定結果の重み付き和である。各第1位置姿勢推定結果にかかる重み係数は、例えば、第2位置姿勢推定部60で各第1位置姿勢推定結果の信頼度を算出し、信頼度に応じて決定してもよい。信頼度の一例として、3次元空間における特徴点の分布のばらつきの大きさがある。信頼度が大きいときは、特徴点の分布のばらつきの大きさが大きくなる。3次元空間における特徴点の分布のばらつきが小さい場合、特徴点のある一部分は後述するステップS108においてカメラ10と特徴点との距離の算出を正確に行うことができるが、カメラ10と他の部分にある特徴点との距離は正確に算出できないため、3次元マップ推定の精度が下がる。そのため、3次元空間における特徴点の分布のばらつきが大きい第1位置姿勢推定結果の信頼度を大きくする。また、マッチングが取れた特徴点ペアの数が多いほど信頼度を高くする、マッチングが取れた特徴点ペアの類似度の平均値が大きいほど信頼度を高くするなどの方法もある。
【0039】
<ステップS107>
ステップS107では、座標変換部70は、第2位置姿勢推定結果に対して座標変換を行うことで、カメラ10の各カメラ10の位置姿勢の変化を算出する。
【0040】
<ステップS108>
ステップS108では、ステップS107において算出された各カメラ10の位置姿勢の変化と、時刻t2およびt1における特徴点の対応関係とから特徴点の3次元座標を算出する。そして、座標値が算出された3次元点群を車両1周囲の3次元マップとして出力する。
【0041】
Visual SLAMを用いたカメラ10の周囲の3次元マップを推定する方法について、
図4を参照して説明する。ステップS102で抽出された時刻t2とt1のそれぞれの画像中の対応する特徴点aと、ステップS107で出力されたカメラ10の位置姿勢の変化を用いて、三角測量の原理から、特徴点aの3次元位置を推定する。
【0042】
さらに、3次元マップ推定部80は、第1選択部30、及び第2選択部50で選択されなかったカメラ10についても特徴点の対応関係を求め、ステップS107において算出された各カメラ10の位置姿勢の変化を用いて特徴点の3次元位置を推定する。
【0043】
<ステップS109>
ステップS109では、ステップS108において推定された1つ以上の3次元マップを障害物検出部82に出力する。
【0044】
また、車両1と特徴点との距離についての閾値を設定しておく。特徴点のうち、車両1との距離が閾値以下の値である場合には障害物2であると判定する。
【0045】
図5は、障害物2のある環境で、車両1を走行させた実験結果を示している。
図5(a)は障害物2のある環境の一例であり、
図5(b)は
図5(a)に示した環境下で鎖線Aの経路で車両1を走行させた時の、車両1の走行軌跡の一例を示している。
【0046】
図5(a)に示したような、複数の障害物2と1台の車両1が設けられている環境下で、車両1を走行させる。各時刻においてステップS101からステップS106を実行し、各時刻において出力された第2位置姿勢推定結果をグラフにプロットすると、
図5(b)のような車両1の走行軌跡が得られる。
図5において、車両1の進行方向をX方向、及びY方向とし、車両1の高さ方向をZ方向としている。なお、第2位置姿勢推定結果は3次元で出力されるが、
図5(b)に示した車両1の走行軌跡の1例では、Z方向の第2位置姿勢推定結果を省略して示している。また、
図5(b)において、車両1の出発位置を原点0として車両1の走行軌跡を示している。
【0047】
(第1の実施形態の効果)
第1の実施形態に係る3次元マップ推定装置100、及び障害物検出装置200には、車両1の位置姿勢推定に使用するカメラ10、及びセンサ20を選択する第1選択部30が設けられている。また、第1の実施形態に係る3次元マップ推定装置100、及び障害物検出装置200は、車両1の位置姿勢推定を行うために、カメラ10が取得した画像に加え、センサ20のセンサ情報を用いる。さらに、第1の実施形態に係る3次元マップ推定装置100、及び障害物検出装置200は、3次元マップを推定するために、第1選択部30、及び第2選択部50で選択されなかったカメラ10が取得した画像、及びセンサ20が取得したセンサ情報を用いて推定を行う。これにより、本実施形態は2つの効果を有する。
【0048】
1つめは、車両1の位置姿勢推定を安定かつ精度良くすることができる。第1選択部30では、異なる時刻における画像間の物体の移動変化量が適切なカメラ10、及びセンサ20を1つ以上選択する。異なる時刻における画像間の物体の移動変化量が1つのピクセルより小さい場合、位置姿勢推定精度が悪くなる。しかし、第1選択部30では、異なる時刻における画像間の物体の移動変化量が適切なカメラ10、およびセンサ20を選択しているため、車両1の位置姿勢推定精度が改善することが期待できる。
【0049】
2つ目は、3次元マップ推定ができない場面を減らすことができる。第1の実施形態に係る3次元マップ推定装置100、及び障害物検出装置200は、カメラ10に加えて、センサ20が取得したセンサ情報も利用して位置姿勢推定を行う。これにより、例えば、車両1が動き出した直後などカメラ10の画像を用いた位置姿勢推定が難しい場合にも、位置姿勢推定を行うことができる。3次元マップ推定は第2位置姿勢推定結果を利用するため、3次元マップ推定ができない場面を減らすことができる。
【0050】
さらに、第1の実施形態に係る3次元マップ推定装置100、及び障害物検出装置200は、第1選択部30において選択されなかったカメラ10、及びセンサ20が取得した画像、及びセンサ情報も用いて3次元マップの推定を行う。同様に、第2選択部50において選択されなかった位置姿勢推定結果の算出に用いられた画像も用いる。既に述べた通り、Visual SLAMを用いた3次元マップの推定は、第2位置姿勢推定結果とカメラ10が取得した画像上の特徴点から推定する。そのため、位置姿勢の変化の推定精度が低い場合、3次元マップの推定精度が低下する。第1の実施形態に係る3次元マップ推定装置100、及び障害物検出装置200は、精度良く位置姿勢の変化を算出できるカメラ10やセンサ20を選択し、それを元に3次元マップを推定するため、選択されなかったカメラ10であっても精度の高い3次元マップの推定を期待することができる。
【0051】
(3次元マップ推定装置100、及び障害物検出装置200の実装例)
図6は、第1の実施形態に係る3次元マップ推定装置100、及び障害物検出装置200のハードウェア実装の例を示すブロック図である。3次元マップ推定装置100の実装例を説明するが、3次元マップ推定装置100を障害物検出装置200に置き換え、障害物検出装置200においても同様に実装することができる。
【0052】
3次元マップ推定装置100は、プロセッサ91と、主記憶装置92と、補助記憶装置93と、ネットワークインタフェース94と、デバイスインタフェース95と、を備え、これらがバス96を介して接続され、実現できる。3次元マップ推定装置100は、それ自体が独立して起動できるコンピュータ装置であってもよいし、独立して起動するコンピュータ装置に組み込まれ、又は、接続されたアクセラレータであってもよい。
【0053】
なお、
図6の3次元マップ推定装置100は、各構成要素を一つ備えているが、同じ構成要素を複数備えていてもよい。また、1台の3次元マップ推定装置100が示されているが、ソフトウェアが複数のコンピュータ装置にインストールされて、当該複数のコンピュータ装置それぞれがソフトウェアの異なる一部の処理を実行してもよい。
【0054】
プロセッサ91は、3次元マップ推定装置100の制御装置および演算装置を含む処理回路として動作する電子回路である。プロセッサ91は、3次元マップ推定装置100の内部構成の各装置などから入力されたデータやプログラムに基づいて演算処理を行い、演算結果や制御信号を各装置などに出力する。具体的には、プロセッサ91は、3次元マップ推定装置100のOS(Operating System)や、アプリケーションなどを実行することにより、3次元マップ推定装置100を構成する各構成要素を制御する。プロセッサ91は、上記の処理を行うことができれば特に限られるものではない。3次元マップ推定装置100、及びその各構成要素は、プロセッサ91により実現される。
【0055】
主記憶装置92は、プロセッサ91が実行する命令および各種データなどを記憶する記憶装置であり、主記憶装置92に記憶された情報がプロセッサ91により直接読み出される。補助記憶装置93は、主記憶装置92以外の記憶装置である。なお、これらの記憶装置は、電子情報を格納可能な任意の電子部品を意味するものとし、メモリでもストレージでもよい。また、メモリには、揮発性メモリと、不揮発性メモリがあるが、いずれでもよい。3次元マップ推定装置100内において各種データを保存するためのメモリは、主記憶装置92または補助記憶装置93により実現されてもよい。例えば、記憶部は、この主記憶装置92又は補助記憶装置93に実装されていてもよい。別の例として、アクセラレータが3次元マップ推定装置100においてさらに備えられている場合には、記憶部は、当該アクセラレータに備えられているメモリ内に実装されていてもよい。
【0056】
ネットワークインタフェース94は、無線または有線により、通信ネットワーク98に接続するためのインタフェースである。ネットワークインタフェース94は、既存の通信規格に適合したものを用いればよい。ネットワークインタフェース94により、通信ネットワーク98を介して通信接続された外部装置99Aと情報のやり取りが行われてもよい。
【0057】
外部装置99Aは、例えば、ステレオカメラ、モーションキャプチャ、出力先デバイス、外部のセンサ、入力元デバイスなどが含まれる。また、外部装置99Aは、3次元マップ推定装置100の構成要素の一部の機能を有する装置でもよい。そして、3次元マップ推定装置100は、3次元マップ推定装置100の処理結果の一部を、クラウドサービスのように通信ネットワーク98を介して送受信してもよい。
【0058】
デバイスインタフェース95は、外部装置99Bと直接接続するUSB(Universal SerialBus)などのインタフェースである。外部装置99Bは、外部記憶媒体でもよいし、ストレージ装置でもよい。記憶部は、外部装置99Bにより実現されてもよい。
【0059】
外部装置99Bは出力装置でもよい。出力装置は、例えば、画像を表示するための表示装置でもよいし、音声などを出力する装置などでもよい。例えば、LCD(Liquid Crystal Display)、CRT(Cathode Ray Tube)、PDP(Plasma Display Panel)、スピーカなどがあるが、これらに限られるものではない。また、CANを介して制御される自動車の構成要素であってもよい。
【0060】
なお、外部装置99Bは入力装置でもよい。入力装置は、キーボード、マウス、タッチパネルなどのデバイスを備え、これらのデバイスにより入力された情報を3次元マップ推定装置100に与える。入力装置からの信号はプロセッサ91に出力される。
【0061】
このように、上記の全ての記載において、3次元マップ推定装置100、及び障害物検出装置200の少なくとも一部はハードウェアで構成されていてもよいし、ソフトウェアで構成され、ソフトウェアの情報処理によりCPU等が実施をしてもよい。ソフトウェアで構成される場合には、3次元マップ推定装置100、及び障害物検出装置200及びその少なくとも一部の機能を実現するプログラムをフレキシブルディスクやCD-ROM等の記憶媒体に収納しコンピュータに読み込ませて実行させるものであってもよい。記憶媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記憶媒体であってもよい。すなわち、ソフトウェアによる情報処理がハードウェア資源を用いて具体的に実装されるものであってもよい。さらに、ソフトウェアによる処理は、FPGA等の回路に実装され、ハードウェアが実行するものであってもよい。
【0062】
例えば、コンピュータが読み取り可能な記憶媒体に記憶された専用のソフトウェアをコンピュータが読み出すことにより、コンピュータを上記の実施形態の装置とすることができる。記憶媒体の種類は特に限定されるものではない。また、通信ネットワークを介してダウンロードされた専用のソフトウェアをコンピュータがインストールすることにより、コンピュータを上記の実施形態の装置とすることができる。こうして、ソフトウェアによる情報処理が、ハードウェア資源を用いて、具体的に実装される。
【0063】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0064】
1 車両
2、2a、2b 障害物
3 特徴点
10 カメラ
20 センサ
30 第1選択部
40 第1位置姿勢推定部
50 第2選択部
60 第2位置姿勢推定部
70 座標変換部
80 3次元マップ推定部
82 障害物検出部
91 プロセッサ
92 主記憶装置
93 補助記憶装置
94 ネットワークインタフェース
95 デバイスインタフェース
96 バス
98 通信ネットワーク
99A、99B 外部装置
100 3次元マップ推定装置
200 障害物検出装置