(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022190173
(43)【公開日】2022-12-22
(54)【発明の名称】位置推定装置
(51)【国際特許分類】
G06T 7/70 20170101AFI20221215BHJP
G06T 7/00 20170101ALI20221215BHJP
【FI】
G06T7/70 A
G06T7/00 350C
【審査請求】有
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022178423
(22)【出願日】2022-11-07
(62)【分割の表示】P 2019162615の分割
【原出願日】2019-09-06
(71)【出願人】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(71)【出願人】
【識別番号】317011920
【氏名又は名称】東芝デバイス&ストレージ株式会社
(74)【代理人】
【識別番号】100120031
【弁理士】
【氏名又は名称】宮嶋 学
(74)【代理人】
【識別番号】100107582
【弁理士】
【氏名又は名称】関根 毅
(74)【代理人】
【識別番号】100118843
【弁理士】
【氏名又は名称】赤岡 明
(74)【代理人】
【識別番号】100202429
【弁理士】
【氏名又は名称】石原 信人
(72)【発明者】
【氏名】大木 豊
(72)【発明者】
【氏名】西山 学
(57)【要約】
【課題】リソースに対応した安定性の高い推定を実現する。
【解決手段】位置推定装置は、信頼度算出部と、選択部と、自己位置推定部と、を備える。信頼度算出部は、複数の入力画像を撮影する複数のデバイスについて、位置推定に対する信頼度を算出する。選択部は、前記信頼度に基づいて、前記複数のデバイスのうち、位置推定に使用する画像を撮影するデバイスを選択する。自己位置推定部は、前記選択部が選択したデバイスが撮影した画像に基づいて、自己の位置推定を行う。
【選択図】
図1
【特許請求の範囲】
【請求項1】
複数のデバイスにより取得された複数の入力画像に基づいて、自己の位置推定を行う、自己位置推定部と、
前記複数の入力画像について、前記自己位置推定部が推定した自己位置に対する信頼度を算出する、信頼度算出部と、
前記自己位置推定部が推定した自己位置を、前記信頼度に基づいて結合する、結合部と、
を備える位置推定装置。
【請求項2】
前記信頼度算出部は、前記複数の入力画像のうち、異なる演算で算出された複数の自己位置の推定結果に対する自己検証に基づいて前記信頼度を算出する、
請求項1に記載の位置推定装置。
【請求項3】
前記信頼度算出部は、前記複数の入力画像のうち、異なるタイミングで取得されたフレームの画像におけるスケール率に基づいて前記信頼度を算出する、
請求項1又は請求項2に記載の位置推定装置。
【請求項4】
前記信頼度算出部はさらに、前記複数のデバイスにより取得された前記複数の入力画像におけるオブジェクトの検出結果に基づいて、前記複数のデバイスのそれぞれに関する信頼度を算出し、
前記結合部はさらに、前記複数のデバイスのそれぞれに関する信頼度に基づいて、前記自己位置推定部が推定した自己位置を結合する、
請求項1から請求項3のいずれかに記載の位置推定装置。
【請求項5】
前記信頼度算出部はさらに、前記複数のデバイスにより取得された前記複数の入力画像における特徴点の3次元空間におけるばらつきに基づいて、前記複数のデバイスのそれぞれに関する信頼度を算出し、
前記結合部はさらに、前記複数のデバイスのそれぞれに関する信頼度に基づいて、前記自己位置推定部が推定した自己位置を結合する、
請求項1から請求項4のいずれかに記載の位置推定装置。
【請求項6】
前記信頼度算出部は、前記3次元空間における深度を、学習済みの畳み込みニューラルネットワークを用いて推定する、
請求項5に記載の位置推定装置。
【請求項7】
前記信頼度算出部はさらに、前記複数のデバイスの移動方向に基づいて、前記複数のデバイスのそれぞれに関する信頼度を算出し、
前記結合部はさらに、前記複数のデバイスのそれぞれに関する信頼度に基づいて、前記自己位置推定部が推定した自己位置を結合する、
請求項1から請求項6のいずれかに記載の位置推定装置。
【請求項8】
前記信頼度算出部はさらに、前記複数のデバイスの位置情報に基づいて、前記複数のデバイスのそれぞれに関する信頼度を算出し、
前記結合部はさらに、前記複数のデバイスのそれぞれに関する信頼度に基づいて、前記自己位置推定部が推定した自己位置を結合する、
請求項1から請求項7のいずれかに記載の位置推定装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、位置姿勢推定装置に関する。
【背景技術】
【0002】
車両等の周辺に搭載されたカメラを用いたVisual SLAM(Simultaneous Localization And Mapping)による自己位置推定技術が広く研究されている。複数のカメラが搭載されている場合、限られたリソース環境での全てのカメラにおいて自己位置を推定するのは困難である。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
そこで、本発明の実施形態は、リソースに対応した安定性の高い推定をする位置推定装置を提供する。
【課題を解決するための手段】
【0005】
一実施形態によれば、位置推定装置は、信頼度算出部と、選択部と、自己位置推定部と、を備える。信頼度算出部は、複数の入力画像を撮影する複数のデバイスについて、位置推定に対する信頼度を算出する。選択部は、前記信頼度に基づいて、前記複数のデバイスのうち、位置推定に使用する画像を撮影するデバイスを選択する。自己位置推定部は、前記選択部が選択したデバイスが撮影した画像に基づいて、自己の位置推定を行う。
【図面の簡単な説明】
【0006】
【
図1】一実施形態に係る位置推定装置の機能を示すブロック図。
【
図2】一実施形態に係る位置推定装置の処理を示すフローチャート。
【
図3】一実施形態に係る位置推定装置の機能を示すブロック図。
【
図4】一実施形態に係る位置推定装置の処理を示すフローチャート。
【
図5】一実施形態に係る位置推定装置の実装例を示す図。
【発明を実施するための形態】
【0007】
図面を参照して、実施形態について説明する。以下の説明においては、自動車の車両についての自己位置推定について説明するが、これには限られない。例えば、ロボット、ドローン等の自動車ではない他のデバイスに複数のカメラを搭載する場合、当該装置に同様の自己位置推定装置を搭載し、自己位置を推定することが可能である。なお、本明細書等において、自己位置とは、この車両等の位置のことを意味する。
【0008】
(第1実施形態)
図1は、第1実施形態に係る位置推定装置の機能を示すブロック図である。位置推定装置1は、外部又は内部に備えられているカメラ2から画像を取得し、自己位置を推定する。位置推定装置1は、各カメラ2に接続される信頼度算出部10と、選択部12と、自己位置推定部14と、出力部16と、を備える。
【0009】
信頼度算出部10は、画像を入力するデバイスである各カメラ2からの入力の信頼度を算出する。信頼度は、カメラ2ごとに算出されるものであり、自己位置推定を実行するタイミングにおいて変化する。
【0010】
選択部12は、いずれのカメラ2を用いて自己位置推定を実行するかを選択する。この選択部12は、各カメラ2に対応する信頼度算出部10と接続され、信頼度算出部10が出力した信頼度に基づいて、自己位置推定に用いるカメラ2を選択する。例えば、信頼度の高いカメラ2から入力された画像を自己位置推定に用いるように選択する。
【0011】
自己位置推定部14は、選択部12が選択したカメラ2に基づいて、自己位置を推定する。自己位置推定部14は、例えば、SLAM、SfM(Structure from Motion)の技術を用いて、選択部12が選択したカメラ2の画像から自己位置を推定する。この技術に関する詳細については、省略する。なお、入力画像に基づいて自己位置を推定するものであれば、上記の技術に限られず本実施形態は適用可能である。この場合、信頼度算出部10は、適用する技術に対する各カメラ2の信頼度を算出し、選択部12は、適用する技術に基づいて、適切なカメラを選択する。
【0012】
出力部16は、自己位置推定部14が推定した自己位置を外部へと出力する。
【0013】
カメラ2は、車両に複数備えられる。例えば、車両の前後左右それぞれの領域における画像を取得するために、車両の前面、後面、左右側面のそれぞれに備えられる。なお、数は、4には限られず、4より少なくても多くても、複数のカメラが備えられていれば同様に自己位置推定を実行することが可能である。
【0014】
位置推定装置1は、必要に応じて図示しない記憶部を備えていてもよい。位置推定装置1のソフトウェアによる情報処理がハードウェア資源を用いて具体的に実行される場合には、記憶部に当該ソフトウェアの動作を記載したプログラム、実行ファイル等が格納されてもよい。また、例えば、記憶部に現フレームの画像データ及び現フレームよりも前のフレームに係る画像データ、又は、自己位置推定に必要なパラメータ、カメラパラメータ等、自己位置推定に必要となる各種データが格納されていてもよい。この記憶部はまた、位置推定装置1の内部に備えられるには限られず、バス等で接続された位置推定装置1の外部に備えられていてもよい。
【0015】
信頼度算出部10の信頼度算出について、詳しく説明する。
【0016】
(第1例)
信頼度算出部10は、各カメラ2により撮影された入力画像において特徴点を抽出し、当該特徴点の3次元空間における分布のばらつきに基づいて信頼度を算出してもよい。取得した特徴点の3次元空間における分布のばらつきが小さいと、自己の位置計算における誤差が大きくなるためである。
【0017】
3次元空間分布において、特徴点の水平軸と鉛直軸については、特徴点の画像における位置を計測することにより取得できる。一方で、3次元空間分布の深度、すなわち、カメラ2の撮像系の光軸方向の距離は、例えば、単眼深度推定を用いて推定する。単眼深度推定は、例えば、CNN(畳み込みニューラルネットワーク:Convolutional Neural Network)をはじめとする機械学習により学習済みのニューラルネットワークモデルにより実行される。この機械学習の訓練には、例えば、撮影された画像において深度情報が既知の特徴点を教師データとし、撮影された画像が入力されると、特徴点の深度が推定されるように学習される。
【0018】
特徴点の3次元空間分布のばらつきが大きいカメラ2の信頼度が高くなるように、信頼度の算出方法を設定する。この結果、選択部12により、ばらつきの大きいカメラ2が選択される。
【0019】
この際、推定された3次元空間分布において、極端に近い深度が発生しているものについては、選択されないように信頼度を他のカメラ2よりも低くしてもよい。自己位置測定は、ある程度の数、例えば、所定数の特徴点との距離に基づいて行われる。例えば、同一オブジェクトに対して多数の特徴点が検出されると、当該オブジェクトとの相対的な距離は正確に測定できるかもしれないが、他の特徴点との距離が正確に測定できないことには、自己位置計測の精度が下がるためである。これは、特徴点の抽出を、所定数に限定している場合等に問題となり得る。もっとも、特徴点の抽出において、このような同一オブジェクトに対する特徴点の検出数を限定するようにしてもよい。
【0020】
このように、特徴点の3次元空間分布のばらつきが大きいカメラ2の信頼度を高く算出し、当該カメラ2から入力された画像を自己位置推定に用いる画像として選択することより、様々な深度の特徴点においてSLAM、SfM等のアルゴリズムを適用することが可能となる。この結果、自己が移動している場合において、様々な深度の特徴点に基づいて、入力画像の3次元再構成をすることが可能となるので、精度のよい自己位置推定を行うことができる。
【0021】
(第2例)
信頼度算出部10は、各カメラ2により撮影された入力画像において、オブジェクトの検出結果に基づいて信頼度を算出してもよい。オブジェクトの検出は、一般的なオブジェクト検出手法を用いてもよい。オブジェクト検出として、例えば、CNNをはじめとする機械学習により訓練されたニューラルネットワークモデルにより実行してもよい。
【0022】
オブジェクト検出の結果、例えば、1つのオブジェクトが画面で2/3を占めている場合には、当該画像を取得したカメラ2は、オブジェクトに近接していると判断し、このようなカメラ2を選択しないように、信頼度算出部10は、信頼度を他のカメラ2よりも低く算出する。この結果、選択部12により、当該カメラが自己位置推定に用いられる確率を下げることが可能となる。
【0023】
信頼度算出部10は、その他、オブジェクトの個数、画像内にあるオブジェクトのカメラ2からのそれぞれの距離等に基づいて、自己位置推定に用いやすい画像を出力するカメラ2が選択されるように信頼度を算出してもよい。
【0024】
(第3例)
信頼度算出部10は、カメラ2が搭載されているデバイス(例えば、車両)の移動方向に基づいて信頼度を算出してもよい。通常、カメラ2は、車両にその設置位置、撮像方向が固定されるように設置される。すなわち、車両に対して所定の範囲を撮影しつつ、車両と同じ方向へと移動することとなる。
【0025】
この場合、車両の移動方向と同じ方向を撮像した画像においては、特徴点は、車両から遠い方から近い方へと移動し、撮像領域外へと消える。このことから、車両の移動方向を撮影するカメラ2で撮影した画像において特徴点を取得しても、車両の速度によっては、自己位置推定を行う十分な時間、当該特徴点が撮像できるか否かが不明である。一方、車両の移動と逆の方向を撮像した画像においては、特徴点は車両の近い方から遠い方へと移動し、消失点へと消える。このことから、車両の移動方向と逆方向を撮影するカメラ2で撮影した画像においては、カメラ2から近い点で取得された特徴点が自己位置推定を行う十分な時間、撮影され続けることが可能となる。
【0026】
上記をより具体的に説明する。例えば、SfMによれば、複数フレームにおける特徴点から3次元測量の原理により特徴点の3次元情報を推定し、2次元座標と3次元座標との対応関係とから、最適化アルゴリズムを用いて自己位置を推定する。この後のフレームについては、3次元座標が既知である2次元座標をトラッキングすることにより、自己位置と3次元座標を更新していく。
【0027】
一般的に3次元測量の原理においては、遠方の点を推定する精度は、より近い点の推定よりも精度が悪い。車両の移動方向と同じ方向を撮像した画像においては、特徴点は車両の遠い方から、近い方へと移動するため、3次元位置推定の精度が悪い遠方の点を利用して自己位置推定を実行し続ける。これに対して、車両の移動方向と逆方向を撮影する場合、特徴点は、車両の近い方から遠い方へと移動していくため、より早い段階において3次元位置推定精度のよい特徴点を用いて自己位置推定を行い、この推定結果を後のフレームに反映することができる。このため、車両の移動方向と逆方向を撮影するカメラによる推定は、移動方向を撮影するカメラによる推定よりも、精度が良くなる。
【0028】
また、車両においては、前方よりも後方の方が旋回時の画像変化が緩やかであるため、車両の移動と逆方向のカメラの画像を用いることは、特徴点の誤マッチングを抑制することができるという利点もある。
【0029】
このため、信頼度算出部10は、例えば、車両の移動と逆側を撮影するように設置されているカメラ2の信頼度を、車両の移動と同じ側を撮影するように設置されているカメラ2の信頼度よりも高く算出する。このように車両の移動と逆側のカメラの信頼度を高く算出することにより、特徴点を元にした精度のよいマッチングを可能とする。
【0030】
この場合、信頼度算出部10は、例えば、CAN(Controller Area Network)等を介して、シフトレバーの切り替え情報等を取得してもよい。シフトレバーの切り替え情報を取得することにより、現在の移動方向を取得することが可能となる。また、過去に推定した自己位置の情報を用いてもよい。信頼度算出部10は、過去に推定した自己位置の推移した方向を移動方向として取得することもできる。
【0031】
上記のように、前後方向だけではなく、旋回方向に基づいて信頼度を算出してもよい。信頼度算出部10は、例えば、CAN等を介してステアリングの回転情報、又は、車軸のヨーレートセンサ等から取得し、旋回している状態を取得する。旋回している場合には、車両の後方を撮影しているカメラ2の信頼度を高く算出してもよい。
【0032】
(第4例)
信頼度算出部10は、カメラ2が搭載されているデバイスの位置情報に基づいて信頼度を算出してもよい。一般的には、道路の状況は短期間においてはそれほど大きく変化するものではない。このことから、車両の位置、すなわち、どの道路のどのあたりにいるか、という大体の情報から、例えば、多くの種類の特徴点を数多く取得できるカメラ2を自己位置推定に用いるカメラとして選択し、より詳細な自己位置情報の推定を行ってもよい。
【0033】
例えば、ある道路を走行中の車両が、過去に同じ道路を走行したことがある場合には、過去の信頼度に基づいてカメラ2を選択してもよい。このように、過去の信頼度の情報を、記憶部に格納しておくことにより、同じ場所を走行している場合には、同じカメラ2が選択されるように、信頼度算出部10は信頼度を算出してもよい。この情報は、地図データに紐付けられていてもよい。
【0034】
さらに、同じ場所を走行しているときに、第1例から第3例等の手法により得られた信頼度の情報を蓄積することで精度を高めてもよい。例えば、各カメラの信頼度について、蓄積された情報の平均値を本例における信頼度としてもよい。別の例では、時間軸にて現在に近いほど重みを重くした加重平均等を本例における信頼度としてもよい。このように、何度も同じ場所を走行する場合に、その情報を蓄積することにより精度をさらに向上してもよい。
【0035】
自己位置情報は、例えば、GPS(Global Positioning System)、その他のナビゲーションシステムを用いて観測される。また、情報を取得するのは、自デバイス(自車両)には限られず、複数台の他の車両の情報を用いてもよい。他の車両の情報を用いる場合には、これらの車両から得られた信頼度に基づいた統計量を算出してもよい。これらの情報は、インターネット等を介してクラウド等のサーバに格納され、任意のタイミングで位置推定装置1が格納された情報を取得するものであってもよい。
【0036】
具体例として、車両においてGPSを用いて自己位置情報を取得する。この自己位置情報に基づいて、記憶部に記憶されている過去の自車両又は他車両の各カメラ2の信頼度算出方法に基づいて、自車両の現在の各カメラ2の信頼度を算出する。そして、算出された信頼度に基づいて選択部12が選択し、自己位置推定を実行する。
【0037】
このように、自己位置情報と、過去の信頼度の情報とを紐付けて信頼度を算出してカメラを選択することにより、現在の情報だけではなく、よりロバストな自己位置推定を実行することが可能となる。
【0038】
上記において、第1例から第4例を示したが、これらは必ずしも別個に実行されるものではない。例えば、これら4つの信頼度算出のうち、複数を組み合わせて用いてもよい。複数を組み合わせる場合には、信頼度算出部10は、組み合わせ方についても算出方法が設定されていてもよい。
【0039】
例えば、4つ全ての信頼度算出結果を用いる場合には、全体の信頼度として、α×(特徴点の3次元ばらつきの信頼度)+β×(オブジェクト検出結果の信頼度)+γ×(進行方向の信頼度)+δ×(自己位置情報の信頼度)として、α~δを適切に決定して各カメラ2の全体の信頼度として算出してもよい。その後、この全体の信頼度に基づいて、選択部12によりカメラ2を選択してもよい。上記の式は、飽くまで一例として示したものであり、組み合わせの信頼度の算出方法は、これに限られず、適切に信頼度が算出できるものであればよい。
【0040】
図2は、本実施形態に係る位置推定装置1の処理の流れを示すフローチャートである。この
図2を用いて位置推定装置1の処理について説明する。
【0041】
まず、信頼度算出部10は、複数のカメラ2の信頼度を算出する(S100)。信頼度の算出は、例えば、上記の第1例から第4例の少なくとも1つに基づいてもよい。これには限られず、他の手法により信頼度を算出してもよい。信頼度算出部10は、上記の第1例から第4例を用いて1フレーム分の画像から信頼度を算出してもよいし、現在から過去にわたって所定数分のフレーム情報の統計量を信頼度として算出してもよい。
【0042】
次に、選択部12は、信頼度算出部10が算出した信頼度に基づいて、自己位置推定を行う画像を出力するセンサを選択する(S102)。上記の例においては、センサは、カメラ2のうちいずれかのものである。
【0043】
選択部12は、信頼度によって、選択可能なセンサがあるか否かを判断する(S104)。例えば、所定のしきい値を設定しておき、信頼度算出部10が算出した信頼度の中に当該しきい値を超えるものがある場合には、選択するセンサがあると判断し、そのセンサの中から適切なセンサ(例えば、信頼度が最大となるセンサ)を選択する。信頼度算出部10が算出した信頼度の中に当該しきい値を超えるものがない場合には、適切なセンサがないと判断する。なお、信頼度が最大であるとしたが、これに限られるものではなく、より適切な別の判断をしてもよい。
【0044】
選択できるセンサが存在し、あるセンサが選択された場合(S104:YES)、選択部12により選択されたセンサを用いて自己位置推定を実行する(S106)。計算リソースによっては、1つのセンサではなく、全てのセンサのうち複数のセンサを選択してもよい。自己位置推定後、出力部16が推定結果を出力(S108)して、処理を終了する。出力は、車両の運転に関わるように、車両の制御系に出力されてもよいし、運転者が見る表示部、例えば、ナビゲーションシステムの画面上に反映されてもよい。別の例として、全てのセンサの信頼度が所定のしきい値を超えなかった場合、前フレームに選択されたセンサを再度選択して、S106からの処理を実行してもよい。このようにすることにより、推定を停止することなく続行することも可能である。
【0045】
選択できるセンサが存在しない場合(S104:NO)、出力部16がエラーを出力して(S110)、処理を終了する。このエラーは、通常の起動時に表示されてもよいし、工場出荷時やメンテナンス時にのみ表示させるようにしてもよい。エラーは、例えば、自己位置推定ができなかった旨には限られず、各センサの信頼度に関する情報等であってもよい。
【0046】
また、図面に破線で示されているように、S104及びS110の処理は、本実施形態に必須のものではなく、任意に適用可能である。すなわち、S104及びS110の処理は、本実施形態に係る位置推定装置1に実装されていなくてもよく、必要に応じて実装されるものであってもよい。さらに、出力は、表示部に表示されるとしたが、これには限られず、スピーカ等のデバイスから音を発生させてもよいし、任意のデバイスを振動させてもよい。
【0047】
以上のように、本実施形態によれば、センサが複数台装置に搭載されている場合に、センサのうち自己位置推定の実行に適切なものを選択することにより、複数台のセンサを用いた場合に推定される情報と同程度の精度及び安定性を担保しつつ、計算リソースに対応した計算コストで自己位置推定を実行することが可能となる。
【0048】
(第2実施形態)
前述の第1実施形態においては、カメラ2ごとに信頼度を算出した後に、選択部12により自己位置推定に用いられるカメラ2が選択されたが、本実施形態では、位置推定装置1は、カメラ2ごとに自己位置推定部を備える。
【0049】
図3は、本実施形態に係る位置推定装置1の機能を示すブロック図である。位置推定装置1は、複数のカメラ2のそれぞれに対して、信頼度算出部10と、自己位置推定部30と、を備え、さらに、結合部32と、出力部16と、を備える。前述の実施形態の説明における符号と同じ符号が付与されている箇所は、前述の実施形態と同様の機能を有するものであり、詳細な説明は省略する。以下、信頼度算出部10の動作を、自己位置推定部30の動作と併せて例を挙げて説明する。
【0050】
なお、自己位置推定部30がカメラ2ごとに備えられるとしたが、1つの自己位置推定部30が逐次的に、それぞれのカメラ2からのデータを処理し、信頼度算出部10へと出力してもよい。
【0051】
(第5例)
自己位置推定部30は、各カメラ2からの出力に基づいて、自己位置の推定を行う。自己位置の推定は、例えば、SLAMの手法を用いてもよい。自己位置推定部30は、例えば、SLAMの手法を用いて、車両の並進量xを推定する。一方で、SLAMで推定された直進方向とヨー角に基づいて、車両の並進量x'を推定する。このxとx'を比較することにより、信頼度算出部10が信頼度を算出してもよい。信頼度算出部10は、このように、同じカメラ2において撮影された画像から異なる演算により算出された自己位置の推定結果に対して、Self-Validation(自己検証)の手法を用いることにより信頼度を算出する。
【0052】
上記では、車両の並進量xを用いたが、SLAMの手法を用いて車両の鉛直方向への移動量yを推定してもよい。この場合、SLAMで推定された直進方向とピッチ角に基づいて、車両の鉛直方向への移動量y'を推定する。このyとy'を比較することにより、信頼度算出部10が信頼度を算出しても良い。
【0053】
(第6例)
単眼カメラを用いたSLAMにおいては、単体では推定した並進運動の絶対スケールを知ることは困難である。例えば、複眼であれば、それぞれのカメラにおけるカメラパラメータ等を用いることにより、2つのカメラにおいて共通して取得した複数の特徴点を比較することにより、絶対的なスケールを算出することができる。一方で、単眼の場合には、複数の特徴点を検出したとしても、比較対象とする絶対的な距離が存在しないため、特徴点の動きからだけでは絶対スケールを算出することが困難であるためである。
【0054】
そこで、連続的に撮影されているフレームにおいて、単眼SLAMで推定した並進運動のノルムを車速センサにより検出された車速、又は、IMU(慣性計測装置:Inertial Measurement Unit)、GNSS(衛星測位システム:Global Navigation Satellite System)等を用いて算出した移動量と比較することによりスケールを算出する。
【0055】
車速を用いる場合には、例えば、1フレーム間の移動距離を車速から算出し、SLAM、SfM等の結果と比較することにより、スケールを決定することが可能である。この場合、正しいスケールの値を1とすることも可能である。そこで、フレーム間におけるこのスケールの安定性を信頼度とすることができる。例えば、信頼度として、スケールが1から所定値以上離れた場合に信頼度を低くしてもよい。これには限られず、スケールが1から離れる度合いにより信頼度を連続的な値として算出してもよい。
【0056】
推定が安定している場合には、上記のスケールは、1を示す。SLAMに用いるオブジェクトがカメラに近すぎる等、推定が不安定になると、スケールのぶれが大きくなる。そこで、このスケール値を用いることにより、信頼度を算出することが可能となる。このスケール値は、例えば、時系列で連続したフレームにおいて継続的に算出してもよい。継続的に算出した場合には、算出されたスケール値の分散等の統計量に基づいて、信頼度を算出してもよい。このように、信頼度算出部10は、同じカメラ2において撮影された画像において異なるタイミングで取得されたフレームの画像においてスケール率を算出し、このスケール率に基づいて信頼度を算出する。
【0057】
信頼度算出部10が、上記の各例又はその他の方法を用いて信頼度を算出した後、結合部32は、出力された信頼度及び各カメラ2により撮影された画像に基づいて、自己位置推定部30が推定した自己位置を結合する。結合は、例えば、信頼度に基づいて各カメラ2から出力された画像に基づいて位置推定結果を結合する。
【0058】
結合は、例えば、信頼度が所定のしきい値を超えたものに対する自己位置推定結果の平均値としてもよいし、各自己位置推定結果を信頼度に基づいて重み付け平均を取ってもよいし、これら以外の方法であってもよい。上記は、あるカメラ2の撮影した画像からの自己位置推定の結果だけを算出された信頼度に基づいて用いること、すなわち、結合部32が前述の実施形態における選択部12と同様の機能を果たすことを含む概念であることに留意されたい。
【0059】
また、第5例と第6例の自己位置推定結果の双方を用いてもよい。この場合、カメラ2ごとに第5例と第6例の自己位置推定結果に基づいて、1つの推定結果を出力し、これをカメラ2にわたって結合してもよい。別の方法としては、カメラ2ごとに第5例と第6例の自己位置推定結果を出力し、結合部32は、各カメラ2に対する2つの推定結果を全てまとめて、結合してもよい。
【0060】
図4は、本実施形態に係る位置推定装置1の処理の流れを示すフローチャートである。この
図4を用いて位置推定装置1の処理について説明する。
【0061】
まず、複数のセンサ(カメラ2)から入力された画像を用いて、自己位置推定部30は、自己位置推定を実行する(S200)。自己位置推定は、例えば、SLAM、SfM等の手法を用いてもよいし、速度センサの出力値を用いてもよい。この他、車軸に搭載されているヨーレートセンサ等を用いてもよい。センサからの入力は、CANを介して受信してもよい。
【0062】
次に、自己位置推定部30が推定した自己位置に基づいて、信頼度算出部10は、各センサの信頼度を算出する(S202)。
【0063】
次に、結合部32は、算出された信頼度に基づいて、1以上のセンサからの画像に対する自己位置推定結果を結合するか否かを判断する(S204)。
【0064】
1以上のセンサからの画像に対する自己位置推定結果を結合する場合(S204:YES)、結合部32は、信頼度に基づいて、各センサに対する自己位置推定結果を結合する(S206)。位置推定装置1は、結合部32が結合した自己位置推定結果を出力して、処理を終了する。
【0065】
一方、各センサに対する信頼度が十分大きくない、例えば、所定のしきい値を全てが下回る場合、結合部32は、自己位置推定結果を結合しないと判断してもよい(S204:NO)。この場合、位自己置推定が精度よくできなかったことをエラー出力として出力部16を介して出力する(S210)。
【0066】
以上のように、本実施形態によれば、各センサにおいて取得された自己位置推定結果を用いた信頼度により、自己位置推定結果を結合することにより、より精度及び安定性の高い自己位置推定を行うことが可能となる。また、本実施形態は、センサが単眼カメラである場合にも容易に適用することが可能となるので、計算リソースに合わせて単純な計算で自己位置推定が可能であり、計算コストを削減することができる。
【0067】
図5は、各実施形態における位置推定装置1のハードウェア実装の例を示すブロック図である。位置推定装置1は、プロセッサ71と、主記憶装置72と、補助記憶装置73と、ネットワークインタフェース74と、デバイスインタフェース75と、を備え、これらがバス76を介して接続されたデバイス7として実現できる。デバイス7は、それ自体が独立して起動できるコンピュータ装置であってもよいし、独立して起動するコンピュータ装置に組み込まれ、又は、接続されたアクセラレータであってもよい。
【0068】
なお、
図5のデバイス7は、各構成要素を一つ備えているが、同じ構成要素を複数備えていてもよい。また、1台のデバイス7が示されているが、ソフトウェアが複数のコンピュータ装置にインストールされて、当該複数のコンピュータ装置それぞれがソフトウェアの異なる一部の処理を実行してもよい。
【0069】
プロセッサ71は、デバイスの制御装置および演算装置を含む処理回路として動作する電子回路である。プロセッサ71は、デバイス7の内部構成の各装置などから入力されたデータやプログラムに基づいて演算処理を行い、演算結果や制御信号を各装置などに出力する。具体的には、プロセッサ71は、デバイス7のOS(Operating System)や、アプリケーションなどを実行することにより、デバイス7を構成する各構成要素を制御する。プロセッサ71は、上記の処理を行うことができれば特に限られるものではない。位置推定装置1及びその各構成要素は、プロセッサ71により実現される。
【0070】
主記憶装置72は、プロセッサ71が実行する命令および各種データなどを記憶する記憶装置であり、主記憶装置72に記憶された情報がプロセッサ71により直接読み出される。補助記憶装置73は、主記憶装置72以外の記憶装置である。なお、これらの記憶装置は、電子情報を格納可能な任意の電子部品を意味するものとし、メモリでもストレージでもよい。また、メモリには、揮発性メモリと、不揮発性メモリがあるが、いずれでもよい。位置推定装置1内において各種データを保存するためのメモリは、主記憶装置72または補助記憶装置73により実現されてもよい。例えば、記憶部230は、この主記憶装置72又は補助記憶装置73に実装されていてもよい。別の例として、アクセラレータがデバイス7においてさらに備えられている場合には、記憶部230は、当該アクセラレータに備えられているメモリ内に実装されていてもよい。
【0071】
ネットワークインタフェース74は、無線または有線により、通信ネットワーク8に接続するためのインタフェースである。ネットワークインタフェース74は、既存の通信規格に適合したものを用いればよい。ネットワークインタフェース74により、通信ネットワーク8を介して通信接続された外部装置9Aと情報のやり取りが行われてもよい。
【0072】
外部装置9Aは、例えば、ステレオカメラ、モーションキャプチャ、出力先デバイス、外部のセンサ、入力元デバイスなどが含まれる。また、外部装置9Aは、位置推定装置1の構成要素の一部の機能を有する装置でもよい。そして、デバイス7は、位置推定装置1の処理結果の一部を、クラウドサービスのように通信ネットワーク8を介して送受信してもよい。
【0073】
デバイスインタフェース75は、外部装置9Bと直接接続するUSB(Universal Serial Bus)などのインタフェースである。外部装置9Bは、外部記憶媒体でもよいし、ストレージ装置でもよい。記憶部230は、外部装置9Bにより実現されてもよい。
【0074】
外部装置9Bは出力装置でもよい。出力装置は、例えば、画像を表示するための表示装置でもよいし、音声などを出力する装置などでもよい。例えば、LCD(Liquid Crystal Display)、CRT(Cathode Ray Tube)、PDP(Plasma Display Panel)、スピーカなどがあるが、これらに限られるものではない。また、CANを介して制御される自動車の構成要素であってもよい。
【0075】
なお、外部装置9Bは入力装置でもよい。入力装置は、キーボード、マウス、タッチパネルなどのデバイスを備え、これらのデバイスにより入力された情報をデバイス7に与える。入力装置からの信号はプロセッサ71に出力される。
【0076】
このように、上記の全ての記載において、位置推定装置1の少なくとも一部はハードウェアで構成されていてもよいし、ソフトウェアで構成され、ソフトウェアの情報処理によりCPU等が実施をしてもよい。ソフトウェアで構成される場合には、位置推定装置1及びその少なくとも一部の機能を実現するプログラムをフレキシブルディスクやCD-ROM等の記憶媒体に収納し、コンピュータに読み込ませて実行させるものであってもよい。記憶媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記憶媒体であってもよい。すなわち、ソフトウェアによる情報処理がハードウェア資源を用いて具体的に実装されるものであってもよい。さらに、ソフトウェアによる処理は、FPGA等の回路に実装され、ハードウェアが実行するものであってもよい。
【0077】
例えば、コンピュータが読み取り可能な記憶媒体に記憶された専用のソフトウェアをコンピュータが読み出すことにより、コンピュータを上記の実施形態の装置とすることができる。記憶媒体の種類は特に限定されるものではない。また、通信ネットワークを介してダウンロードされた専用のソフトウェアをコンピュータがインストールすることにより、コンピュータを上記の実施形態の装置とすることができる。こうして、ソフトウェアによる情報処理が、ハードウェア資源を用いて、具体的に実装される。
【0078】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として例示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【0079】
例えば、明細書中の記載において、以下、以上、より小さい、より大きい等の記載は、それぞれ、より小さい、より大きい、以下、以上等と書き換えてもよい。
【0080】
(付記)
前述の全ての実施形態は、以下のような形態としてもまとめることができる。
【0081】
(1)
位置推定装置は、
複数の入力画像を撮影する複数のデバイスについて、位置推定に対する信頼度を算出する、信頼度算出部と、
前記信頼度に基づいて、前記複数のデバイスのうち、位置推定に使用する画像を撮影するデバイスを選択する、選択部と、
前記選択部が選択したデバイスが撮影した画像に基づいて、自己の位置推定を行う、自己位置推定部と、
を備える。
【0082】
(2)
(1)において、前記信頼度算出部は、前記入力画像における特徴点の3次元空間におけるばらつきに基づいて前記信頼度を算出してもよい。
【0083】
(3)
(2)において、前記信頼度算出部は、前記3次元空間における深度を、学習済みの畳み込みニューラルネットワークを用いて推定してもよい。
【0084】
(4)
(1)~(3)において、前記信頼度算出部は、前記入力画像におけるオブジェクトの検出結果に基づいて前記信頼度を算出してもよい。
【0085】
(5)
(1)~(4)において、前記信頼度算出部は、前記入力画像を撮影したデバイスの移動方向に基づいて前記信頼度を算出してもよい。
【0086】
(6)
(1)~(5)において、前記信頼度算出部は、前記入力画像を撮影したデバイスの位置情報に基づいて前記信頼度を算出してもよい。
【0087】
(7)
また、位置推定装置は、
複数の入力画像に基づいて、自己の位置推定を行う、自己位置推定部と、
前記複数の入力画像について、前記自己位置推定部が推定した自己位置に対する信頼度を算出する、信頼度算出部と、
前記自己位置推定部が推定した自己位置を、前記信頼度に基づいて結合する、結合部と、
を備える。
【0088】
(8)
(7)において、前記信頼度算出部は、前記複数の入力画像のうち、異なる演算で算出された複数の自己位置の推定結果に対する自己検証に基づいて前記信頼度を算出してもよい。
【0089】
(9)
(1)~(8)において、前記信頼度算出部は、前記複数の入力画像のうち、異なるタイミングで取得されたフレームの画像におけるスケール率に基づいて前記信頼度を算出してもよい。
【0090】
(10)
(1)~(9)において、前記信頼度算出部が算出した前記信頼度を表示する、信頼度表示部、をさらに備えてもよい。
【0091】
(11)
(1)~(10)において、前記複数の入力画像を撮影したデバイスのそれぞれについて前記信頼度算出部が算出した前記信頼度を記憶する、記憶部、
をさらに備えてもよく、
前記記憶部に記憶された前記信頼度に基づいて前記自己の位置推定を行ってもよい。
【0092】
(12)
(1)~(11)において、前記信頼度算出部が算出した前記信頼度が所定信頼度よりも低い場合に、いずれの前記複数の入力画像についても前記信頼度が低い旨を出力する、エラー出力部、をさらに備えてもよい。
【符号の説明】
【0093】
1:位置推定装置、
10:信頼度算出部、12:選択部、14:自己位置推定部、16:出力部、
2:カメラ、
30:自己位置推定部、32:結合部