(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024061982
(43)【公開日】2024-05-09
(54)【発明の名称】自己位置推定装置、自己位置推定方法、および自己位置推定プログラム
(51)【国際特許分類】
G06T 7/00 20170101AFI20240430BHJP
G01C 21/28 20060101ALI20240430BHJP
【FI】
G06T7/00 650Z
G01C21/28
【審査請求】未請求
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2022169676
(22)【出願日】2022-10-24
(71)【出願人】
【識別番号】000004260
【氏名又は名称】株式会社デンソー
(71)【出願人】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(71)【出願人】
【識別番号】520124752
【氏名又は名称】株式会社ミライズテクノロジーズ
(74)【代理人】
【識別番号】110000028
【氏名又は名称】弁理士法人明成国際特許事務所
(72)【発明者】
【氏名】成重 篤志
(72)【発明者】
【氏名】佐々木 広器
【テーマコード(参考)】
2F129
5L096
【Fターム(参考)】
2F129AA03
2F129BB02
2F129BB15
2F129BB33
2F129BB51
2F129EE78
2F129GG17
5L096AA06
5L096BA04
5L096CA05
5L096DA02
5L096FA35
5L096FA67
5L096FA69
5L096GA51
5L096HA04
5L096JA11
5L096JA18
(57)【要約】
【課題】処理時間を短縮することが可能な自己位置推定装置、自己位置推定方法、および自己位置推定プログラムを提供する。
【解決手段】自己位置推定装置1は、移動体MCに搭載された複数のカメラで構成されるマルチカメラ20から出力された画像データを設定間隔毎に取得する画像データ取得部11と、画像データから特徴点を抽出する特徴点抽出部12と、各画像データ内の各特徴点の位置情報を記憶する記憶部13と、時系列毎に異なる画像データにおいて対応する特徴点同士の組であるフローを作成するフロー作成部14と、移動体の予測される運動に基づいて計算されたエピポーラ拘束を含む予め定められた制約条件を用いて、制約条件を満たすフローを正しいフローとして選別する選別部15と、選別部により選別された正しいフローの情報を用いて、移動体の位置および向きを算出する自己位置算出部16と、を備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
移動体(MC)の自己位置を推定する自己位置推定装置であって、
前記移動体に搭載された複数のカメラ(21,22,23,24)で構成されるマルチカメラ(20)から出力された画像データを設定間隔毎に取得する画像データ取得部(11)と、
前記画像データ取得部により取得された前記画像データから特徴点を抽出する特徴点抽出部(12)と、
前記各画像データ内の前記各特徴点の位置情報、を記憶する記憶部(13)と、
最新の画像データにおける特徴点である現特徴点と、過去の画像データにおける特徴点である前特徴点と、を対応付けて、時系列毎に異なる前記画像データにおいて対応する特徴点同士の組であるフローを作成するフロー作成部(14)と、
前記フロー作成部により作成された前記フローのうち、前記移動体の予測される運動に基づいて計算されたエピポーラ拘束を含む予め定められた制約条件を用いて、前記制約条件を満たす前記フローを正しいフローとして選別する選別部(15)と、
前記選別部により選別された前記正しいフローの情報を用いて、前記移動体の位置および向きを算出する自己位置算出部(16)と、
を備える、自己位置推定装置。
【請求項2】
前記制約条件は、予測した前記移動体の運動に基づいて計算されたエピポーラ線からの距離として予め定められた上限閾値を、前記フローの選別の指標として含み、
前記選別部は、作成された前記フローのうち、前記現特徴点の位置座標が、前記最新の画像データ内において前記エピポーラ線から前記上限閾値の範囲内にあるものを選別する、請求項1に記載の自己位置推定装置。
【請求項3】
前記制約条件は、時系列において連続する前記画像データにおける前記フローの長さであるフロー長の基準範囲を、前記フローの選別の指標として含み、
前記選別部は、作成された前記フローのうち、前記フロー長が前記基準範囲内にあるものを選別する、請求項1または請求項2に記載の自己位置推定装置。
【請求項4】
前記フロー長の前記基準範囲は、前記複数のカメラごとに個別に設定される、請求項3に記載の自己位置推定装置。
【請求項5】
前記フロー長の前記基準範囲は、前記移動体の移動状態に応じて設定される、請求項3に記載の自己位置推定装置。
【請求項6】
前記フロー長の前記基準範囲は、前記フロー長の統計を用いて設定される、請求項3に記載の自己位置推定装置。
【請求項7】
前記フロー長の前記基準範囲は、前記フロー長の度数分布における最頻値を基準に設定される請求項6に記載の自己位置推定装置。
【請求項8】
前記フロー長の前記基準範囲は、前記フロー長の度数分布における平均値を基準に設定される請求項6に記載の自己位置推定装置。
【請求項9】
前記フロー長の前記基準範囲は、前記フロー長の度数分布における中央値を基準に設定される請求項6に記載の自己位置推定装置。
【請求項10】
前記選別部は、前記正しいフローとして選別した数が、予め定められた基準より少ない場合には、前記正しいフローの数が前記基準以上となるまで、従前に用いられた前記制約条件から変更された制約条件を用いて再度前記フローの選別を実行する、請求項1または請求項2に記載の自己位置推定装置。
【請求項11】
自己位置推定装置を用いて、移動体(MC)の自己位置を推定する自己位置推定方法であって、
前記自己位置推定装置は、画像データ取得部(11)と、特徴点抽出部(12)と、記憶部(13)と、フロー作成部(14)と、選別部(15)と、自己位置算出部(16)と、を備え、
前記画像データ取得部により、前記移動体に搭載された複数のカメラ(21,22,23,24)で構成されるマルチカメラ(20)から出力された画像データを設定間隔毎に取得する工程と、
前記特徴点抽出部により、前記画像データ取得部により取得された前記画像データから特徴点を抽出する工程と、
前記記憶部により、前記各画像データ内の前記各特徴点の位置情報を記憶する工程と、
前記フロー作成部により、最新の画像データにおける特徴点である現特徴点と、過去の画像データにおける特徴点である前特徴点と、を対応付けて、時系列毎に異なる前記画像データにおいて対応する特徴点同士の組であるフローを作成する工程と、
前記選別部により、前記フロー作成部により作成された前記フローのうち、前記移動体の予測される運動に基づいて計算されたエピポーラ拘束を含む予め定められた制約条件を用いて、前記制約条件を満たす前記フローを正しいフローとして選別する工程と、
前記自己位置算出部により、前記選別部により選別された前記正しいフローの情報を用いて、前記移動体の位置および向きを算出する工程と、
を備える、自己位置推定方法。
【請求項12】
移動体(MC)の自己位置を推定する自己位置推定プログラムであって、
前記移動体に搭載された複数のカメラ(21,22,23,24)で構成されるマルチカメラ(20)から出力された画像データを設定間隔毎に取得する機能と、
前記画像データから特徴点を抽出する機能と、
前記各画像データ内の前記各特徴点の位置情報、を記憶する機能と、
最新の画像データにおける特徴点である現特徴点と、過去の画像データにおける特徴点である前特徴点と、を対応付けて、時系列毎に異なる前記画像データにおいて対応する特徴点同士の組であるフローを作成する機能と、
作成された前記フローのうち、前記移動体の予測される運動に基づいて計算されたエピポーラ拘束を含む予め定められた制約条件を用いて、前記制約条件を満たす前記フローを正しいフローとして選別する機能と、
選別された前記正しいフローの情報を用いて、前記移動体の位置および向きを算出する機能と、
をコンピュータに実現させる、自己位置推定プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、自己位置推定装置、自己位置推定方法、および自己位置推定プログラムに関する。
【背景技術】
【0002】
従来、例えば特許文献1に示すように、SLAM(Simultaneous Localization And Mapping)を用いて自己の位置を推定する方法が知られている。SLAMは、カメラやセンサを搭載した移動体によって、GPSなどの衛星システムに依存せずに、自己位置の推定と3次元地図である環境地図の作成とを同時に実行する技術である。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、上記従来技術においては、3次元地図の作成を行うため、自己位置推定に要する処理量が多く処理時間が長いという問題があった。本開示は、上記のような点に鑑みて創作されたものであり、その目的は、処理時間を短縮することが可能な自己位置推定装置、自己位置推定方法、および自己位置推定プログラムを提供することにある。
【課題を解決するための手段】
【0005】
本開示は、以下の形態として実現することが可能である。
【0006】
本開示の一形態によれば、自己位置推定装置が提供される。この自己位置推定装置は、移動体(MC)の自己位置を推定する自己位置推定装置であって、前記移動体に搭載された複数のカメラ(21,22,23,24)で構成されるマルチカメラ(20)から出力された画像データを設定間隔毎に取得する画像データ取得部(11)と、前記画像データ取得部により取得された前記画像データから特徴点を抽出する特徴点抽出部(12)と、前記各画像データ内の前記各特徴点の位置情報、を記憶する記憶部(13)と、最新の画像データにおける特徴点である現特徴点と、過去の画像データにおける特徴点である前特徴点と、を対応付けて、時系列毎に異なる前記画像データにおいて対応する特徴点同士の組であるフローを作成するフロー作成部(14)と、前記フロー作成部により作成された前記フローのうち、前記移動体の予測される運動に基づいて計算されたエピポーラ拘束を含む予め定められた制約条件を用いて、前記制約条件を満たす前記フローを正しいフローとして選別する選別部(15)と、前記選別部により選別された前記正しいフローの情報を用いて、前記移動体の位置および向きを算出する自己位置算出部(16)と、を備える。
【0007】
この形態の自己位置推定装置によれば、画像データ取得部により取得されたマルチカメラから出力された画像データを用いて、3次元マップを作成することなく車両の自己位置を推定できる。そして、選別部により、エピポーラ拘束を含む予め定められた制約条件を用いて、制約条件を満たすフローを正しいフローとして選別する。このように制約条件を用いることで、最新の画像データ内の適切な現特徴点を特定する際に、適切な探索範囲を限定することができるため、現特徴点の予測が可能となり探索処理時間を少なくできる。以上により、自己位置推定装置における自己位置推定の処理時間を短縮できる。
【図面の簡単な説明】
【0008】
【
図1】第1実施形態の自己位置推定装置の概略的なシステム構成を示すブロック図である。
【
図2】自己位置推定装置が搭載される車両を示す平面図である。
【
図3】現在フレームの特徴点リストを得る手順を示すフローチャートである。
【
図5】車両の運動情報を動的に示し、各カメラの位置変化を示す図である。
【
図6】フロー長の統計分布を示すヒストグラムである。
【
図7】フロー長の統計分布を示すヒストグラムである。
【
図8】フロー長の統計分布を示すヒストグラムである。
【
図9】フロー長の統計分布を示すヒストグラムである。
【
図10】車両の運動情報を動的に示し、各カメラの位置変化を示す図である。
【
図11】フロー長の統計分布を示すヒストグラムである。
【
図12】フロー長の統計分布を示すヒストグラムである。
【
図13】フロー長の統計分布を示すヒストグラムである。
【
図14】フロー長の統計分布を示すヒストグラムである。
【
図15】任意の現在フレームの一例を示しており、フレーム内に特徴点およびフローを図示した図である。
【
図16】任意の現在フレームの一例を示しており、フレーム内に特徴点およびフローを図示した図である。
【発明を実施するための形態】
【0009】
以下、実施形態について、
図1~
図16に基づいて説明する。
A.第1実施形態:
A1.自己位置推定装置1の構成:
第1実施形態の自己位置推定装置1の構成について、
図1、
図2を参照しつつ説明する。第1実施形態の自己位置推定装置1は、移動体としての自動運転車両MC(以下、単に「車両MC」という)に搭載され、車両MCの自己位置を推定する。車両MCは、自己位置推定装置1により推定された自己位置に基づいて自動運転による移動を行うことができる。なお、「自己位置」とは、移動体の位置および向きを含むものであり、位置姿勢を意味する。
【0010】
図1に示すように、車両MCは、自己位置推定装置1のほか、車両制御部10と、カメラ20と、を備える。車両制御部10は、車両MCの制御を行う機能部であり、車両制御部10には、カメラ20が電気的に接続されており、カメラ20によって撮像された画像データ(以下、「フレーム」ともいう。)が通知される。その他、車両制御部10には、図示しないGNSS(Global Navigation Satellite System)センサ等が電気的に接続されている。
【0011】
図2に示すように、カメラ20は、前カメラ21と、後カメラ22と、右カメラ23と、左カメラ24と、の合計4つのカメラを有した複眼のマルチカメラとして構成されている。前カメラ21は、車両MCの前方における周辺画像を取得する。後カメラ22は、車両MCの後方における周辺画像を取得する。
【0012】
右カメラ23は、車両MCの進行方向に見たときの右方における周辺画像を取得する。左カメラ24は、車両MCの進行方向に見たとき左方における周辺画像を取得する。以下、各カメラ21,22,23,24を特に区別しないときは、単に「カメラ20」という。カメラ20は、魚眼を代表する広角カメラであり、4つのカメラの合計の画角は360度の視野をカバーする。
【0013】
再び、
図1を参照する。本実施形態の自己位置推定装置1は、車両MCの車両制御部10と電気的に接続されている。具体的には、本実施形態の自己位置推定装置1は、車両MCのOBD2(On Board Diagnostics 2)に接続されているため、自己位置推定装置1は、車両制御部10から車両MCの各種の情報の受信が可能である。
【0014】
なお、自己位置推定装置1と車両MCとの接続はこれに限られず、例えば、無線通信による接続を用いてもよい。また、自己位置推定装置1と車両MCとは接続されておらず、自己位置推定装置1が、カメラ20を別途備えてもよい。本実施形態では、OBD2から自己位置推定装置1へ電力が供給されるが、これに限られず、自己位置推定装置1は別途バッテリーを備えてもよく、車両MCのシガーソケットから自己位置推定装置1の電力を供給してもよい。
【0015】
自己位置推定装置1は、画像データ取得部11と、特徴点抽出部12と、記憶部13と、フロー作成部14と、選別部15と、自己位置算出部16と、の各機能モジュールを備える。自己位置推定装置1は、CPUと、ROMやRAMなどのメモリと、を備える周知のコンピュータとして構成されている。各機能モジュール11~16は、メモリに記憶されたプログラムをCPUによって実行することで実現される。
【0016】
画像データ取得部11は、車両MCの周辺環境の画像データを取得する。具体的には、画像データ取得部11は、上記カメラ20から出力された画像データを設定間隔毎に車両MCから取得する工程を実行する。
【0017】
特徴点抽出部12は、画像取得部11により取得された画像データから特徴点を抽出する工程を実行する。特徴点は、例えば、エッジ、コーナー、色分布などを含む。特徴点抽出の手法は、ORB,SIFT,SURFを代表するインダイレクト法であってもよいし、DSO(Direct Sparse Odometry)を代表するダイレクト法であってもよい。
【0018】
記憶部13は、各画像データ内の各特徴点の位置情報として3次元位置座標を記憶する工程を実行する。その他、記憶部13は、車両MCの自己位置推定の一連の処理において用いられる各種データや、演算結果を記憶する。
【0019】
フロー作成部14は、撮影された時間毎に異なる画像データにおいて対応する特徴点同士の組であるフローを作成する工程を実行する。フロー作成部14は、フローの作成に際して、記憶部13に記憶された過去の画像データにおける特徴点である前特徴点と、最新の画像データにおける特徴点である現特徴点と、の対応付けを行う。具体的には、最新より一つ前の過去の画像データにおける前特徴点と、現特徴点との対応付けが、フレーム毎に実行される。
【0020】
選別部15は、予め定められた制約条件を用いて、フロー作成部14により作成されたフローのうち、上記制約条件を満たすフローを正しいフローとして選別する工程を実行する。制約条件は、車両MCの予測される運動に基づいて計算されたエピポーラ拘束を含む。なお、制約条件の詳細については、後述する自己位置推定方法において、制御フローチャートと併せて詳細に説明する。
【0021】
自己位置算出部16は、選別部15により選別されたフローの情報を用いて、車両MCの位置および向きを算出する工程を実行する。算出された車両MCの位置および向き、すなわち位置姿勢が、車両MCの現在位置の推定結果となる。ここで、自己位置算出に際しては、SLAM処理を用いる。SLAMとは、Simultaneous Localization And Mappingの頭字語であり、自己位置推定と環境地図作成とを同時に行う手法のことである。なお、本実施形態では、3次元マップとしての環境地図の作成は行わず、カメラ20からの画像のみを用いて車両MCの位置推定を行う。
【0022】
A2.自己位置推定方法:
次に、上記自己位置推定装置1による自己位置推定方法について説明する。
図3は、現在(すなわち最新)の自己位置算出に用いるための、現在フレームの特徴点リストを得る手順を示すフローチャートである。「現在フレーム」は最新のフレームであり、以下、「前回フレーム」とは、現在フレームより一つ前のフレームであり、「前々回フレーム」とは、前回フレームよりもさらに一つ前のフレームである。「前回フレーム」および「前々回フレーム」は、いずれも過去の画像データに相当する。
【0023】
特徴点リストには、上記フローの情報が含まれる。
図3に示す処理は、上記自己位置推定装置1により、設定間隔毎に繰り返し実行される。ここでの設定間隔は、カメラ20による撮影の設定間隔と同じである。
【0024】
図3に示すように、S101において、車両MCの角度変化量および移動量の前回推定値が読み込まれる。「前回推定値」は、前々回フレームと前回フレーム間における車両MCの角度変化量および移動量であり、事前に計算されて記憶部13に記憶されている。次に、S102において、S101において読み込んだ前回推定値を用いて、等速運動を前提として、前回フレームと現在フレームとの間の基本行列が作成される。基本行列は、エピポーラ拘束を数式で表すときに、用いられる行列である。
【0025】
次に、S103において、エピポーラ線が作成される。エピポーラ線は、S102において作成された基本行列と、現在フレームにおける特徴点の3次元座標およびカメラ20の焦点距離と、前回フレームにおける特徴点の3次元座標およびカメラ20の焦点距離と、を用いて公知の方法により作成される。
【0026】
そして、S104において、エピポーラ拘束による上限閾値と、フロー長の基準範囲が決定される。このS104の処理は、選別部15により実行される。なお、S104の処理は、選別部15に限らず、他の機能部が実行してもよい。なお、「フロー長」とは、前特徴点と、前特徴点と対応する現特徴点と、を結んだ一つのフローの長さである。「フロー長」は、時系列において連続する画像データ間におけるフローの長さであり、換言すると、1フレーム間のフローの長さのことをいう。S104において決定される、エピポーラ拘束による上限閾値と、フロー長の基準範囲を、併せて「制約条件」という。また、エピポーラ拘束による上限閾値を満たすとの制約条件を「第1条件」とし、フロー長の基準範囲を満たすとの制約条件を「第2条件」とする。
【0027】
S104において制約条件が決定された後は、S105において、制約条件による判定が行われる。すなわち、上述の第1条件および第2条件を満たすか否かが判定される。具体的には、現特徴点の座標が、エピポーラ線からの所定距離の上限閾値内にあり、かつ、現特徴点と前特徴点とを結んだフロー長が、基準範囲内にあれば、制約条件を満たすと判定する。なお、第1条件と第2条件のうち、いずれか一つでも満たさない場合には、制約条件を満たさないと判定する。この判定は、フレーム内の全ての特徴点に対して実行される。なお、S104,S105における、制約条件の決定および判定についての詳細は、後述する。
【0028】
次に、S106において、制約条件を満たす特徴点が「特徴点リスト」に追加される。「特徴点リスト」とは、本制御ルーチンの終了後に、自己位置推定の算出に用いられる特徴点およびフローの情報をまとめて格納するリストである。次に、S107において、特徴点リストに追加されたフローの数が基準以上であるか否かが判断される。フローの数の基準値は、適切な自己位置推定の算出に際して必要とされる数として、事前の試験により予め定められる。そして、S107において、フローの数が基準以上である場合には(S107:Yes)、S109に進み、特徴点リストが出力される。ここで出力される特徴点リストは、制約条件を満たさない特徴点およびフローの情報が間引きされたものである。S109の処理の後、本処理ルーチンは終了する。その後、出力された特徴点リストの情報を用いて、例えば2点法等により、自己位置推定が行われる。
【0029】
一方、S107において、特徴点リストに追加されたフローの数が基準以上ではない場合には(S107:No)、S108に進み、制約条件が緩和される。フローの数があまりに少なく基準より少ない場合には、現在の自己位置推定の算出が行えないため、もしくは、精度が著しく低下するため、制約条件を緩和することで、特徴点リストのフローの数を増やすためである。
【0030】
「制約条件を緩和する」とは、具体的には、エピポーラ線からの所定距離の上限閾値を大きくする、または、フロー長の基準範囲を大きくすることである。制約条件が緩和された後は、再びS105における判定処理に戻り、以下、S107においてフローの数が基準以上となるまで、S108、S105、S106の処理が繰り返される。
【0031】
A3.制約条件の詳細:
次に、上記S104,S105における、制約条件の決定および判定に関する詳細について説明する。まず、エピポーラ拘束による上限閾値について
図4を用いて説明する。
図4は、エピポーラ拘束を説明するための図であり、3次元空間を異なる位置のカメラから撮影した幾何を示す図である。
図4において、点e
Lおよび点e
Rは、エピポール(Epipole)であり、一方のカメラから他方のカメラが写る位置のことである。また、エピポーラ線Eは、「カメラO
Lから見てX
Lに物体が写っている」とき、「カメラO
Rから見てどこに物体が写るか」の候補となる線である。
【0032】
図4に示すように、X
Pにある物体は、前回フレームにおけるカメラO
Lから見るとX
Lに写り、現在フレームにおけるカメラO
Rから見るとX
Rに写る。「カメラO
Lから見てX
Lに物体が写っている」ことしか分かっていない時点では、カメラO
Rでその物体が写る(X
Rがある)位置は、「エピポーラ線E上のどこか」に限定される。このことをエピポーラ拘束(Epipolar Constraint)と呼ぶ。
【0033】
従来の3次元マップを作成する手法の場合には、2枚のフレームから、Xpの奥行き方向におけるおおまかな位置が分かるため、現在フレーム内で特徴点を探す際の探索範囲を、比較的小さい範囲に2次元的に定めることができる。しかし、本実施形態では、3次元マップを持たないため、O
LとX
Lを結ぶ直線であるX線の延長上にあることは分かるものの、X線上における奥行き方向の位置が不明である。すなわち、
図4において、X
2やX
1やX
0にあるかも知れない。また、X
Rの近くにあることは分かるが、エピポーラ線Eの近傍といっても、特徴点の探索範囲は広く、定まらない。
【0034】
そこで、本実施形態では、現在フレーム内で現特徴点を探す際において、エピポーラ線Eから所定の距離以内の範囲を探索範囲Sとする。言い換えると、探索範囲Sは、現在フレーム内においてエピポーラ線Eから両側に所定距離をとった2本の平行な直線L1,L2に挟まれた領域である。「エピポーラ線Eからの距離」は、
図4において、2次元平面としての現在フレーム内における、エピポーラ線Eと直線L1,L2との1次元距離である。つまり、S104では、作成されたエピポーラ線と、予め設定された距離とに基づいて、エピポーラ拘束による上限閾値、すなわち上記探索範囲Sが決定される。
【0035】
そして、S105において、選別部15は、作成されたフローのうち、現在フレーム内の現特徴点の位置座標が、探索範囲S内にあるものを正しいフローとして選別する。エピポーラ拘束による上限閾値、すなわち、エピポーラ線Eからの所定距離を、フローの選別の指標としている。なお、距離の上限閾値は、探索処理時間や、特徴点の位置精度等を鑑みて、事前の試験データにより探索範囲Sがあまり広くなりすぎない程度に予め適宜設定される。
【0036】
次に、フロー長の基準範囲の決定について、
図5~
図14を参照して説明する。
図5は、車両MCの運動情報を動的に示し、各カメラ21,22,23,24の位置変化を示す図であり、任意の環境における左折時の形態を示している。
図6~
図9は、フロー長の度数分布を示すヒストグラムである。
図6は、前カメラ21により取得されたデータに基づいたヒストグラムであり、
図7は、後カメラ22により取得されたデータに基づいたヒストグラムである。
図8は、右カメラ23により取得されたデータに基づいたヒストグラムであり、
図9は、左カメラ24により取得されたデータに基づいたヒストグラムである。
図6~
図9において、横軸にフロー長を取り、縦軸に出現値を取っている。なお、フロー長の目盛は、フロー長の大小を見るためのデータ処理上の便宜上の単位のない数値である。以下、後述する
図11~
図14についても同様である。
【0037】
図5~
図9に示すように、車両MCが左折するとき、各カメラ21,22,23,24により取得されるフロー長のヒストグラムはそれぞれ異なる。
図6に示すように、前カメラ21によるヒストグラムでは、フロー長が30の出現値が約90であり突出して大きく、次にフロー長が40の出現値が約60であり大きく、その他は小さくなっている。
図7に示すように、後カメラ22によるヒストグラムでは、フロー長が30の出現値が60であり突出して大きく、フロー長が20,40,50の出現値が20近傍であり、フロー長が30の出現値に対して半数以下である。
【0038】
また、
図8に示すように、右カメラ23によるヒストグラムでは、フロー長が50および60の出現値が突出して大きい。
図9に示すように、左カメラ24によるヒストグラムでは、フロー長が10~40と大きくなるにつれて出現値も大きくなり、フロー長が40の出現値が60であり最も大きい。一方、フロー長が50,60の出現値は10以下であり小さくなっている。
【0039】
以上のように、各カメラ21~24において、フロー長の統計分布の系統はそれぞれ異なっていることが分かった。また、出現値の大きいフロー、すなわち長いフローを用いて推定を行った方が、精度が良くなることが分かった。そこで、本実施形態では、これらの性質を利用し、フロー長の基準範囲を、各カメラ21~24において適宜設定する。また、フロー長の基準範囲を、右折や左折等の運転状況に応じて設定する。なお、右折や左折等の運転状況は、「移動体の移動状態」の一例に相当する。
【0040】
本実施形態では、例えば、前カメラ21については(
図6参照)、フロー長の基準範囲を、最頻値である30,40近傍の「25~45」とする。後カメラ22については(
図7参照)、フロー長の基準範囲を、最頻値である30近傍の「25~35」とする。右カメラ23については(
図8参照)、フロー長の基準範囲を、最頻値である50,60近傍の「45~60」とする。
【0041】
すなわち、前カメラ21および後カメラ22における左折時のフロー長の基準範囲は、フロー長の最頻値を基準に設定される。「最頻値を基準に」とは、上記例示のように最頻値を中央値として、経験則に基づく任意の幅を上下にとる形態であってもよいし、最頻値から上または下のみに予め試験により定めた値をとる形態であってもよい。つまり、「最頻値」を指標として、基準範囲を設定する任意の形態のことを意味する。以下、「平均値を基準に」についても同義である。
【0042】
左カメラ24については(
図9参照)、フロー長の基準範囲を、平均値である40近傍の「25~45」とする。つまり、左カメラ24におけるフロー長の基準範囲は、フロー長の平均値を基準に設定される。基準範囲として、最頻値を指標とするか、平均値を指標とするかについては、ヒストグラムの形態に応じてカメラ21,22,23,24ごとに適宜選択できる。また、最頻値や平均値からどのくらいの幅を許容範囲とするかは、事前の試験データ等から予め設定される。よって、上記基準範囲の具体的数値については適宜変更可能である。
【0043】
以下、右折時の一例についても説明する。
図10は、車両MCの運動情報を動的に示し、各カメラ21,22,23,24の位置変化を示す図であり、任意の環境における右折時の形態を示している。
図11~
図14は、フロー長の統計分布を示すヒストグラムである。
図11は、前カメラ21により取得されたデータに基づいたヒストグラムであり、
図12は、後カメラ22により取得されたデータに基づいたヒストグラムである。
図13は、右カメラ23により取得されたデータに基づいたヒストグラムであり、
図14は、左カメラ24により取得されたデータに基づいたヒストグラムである。
【0044】
図6~
図14を適宜比較すると分かるように、各カメラ21~24に写る物体の見え方は、右折時と左折時においては異なるため、当然、フロー長のヒストグラムはそれぞれ異なる。
図11に示すように、右折時の前カメラ21によるヒストグラムでは、出現値が50以下と小さいものが分散している。ヒストグラムがこのような形態の場合には、最頻値を取るよりも、平均値を取る方が好ましい。この場合、例えば、前カメラ21については、フロー長の基準範囲を、平均値である20近傍の「15~25」とする。
【0045】
一方、
図12に示すように、後カメラ22によるヒストグラムでは、フロー長が20の出現値が約260であり極めて突出して大きく、その他は小さくなっている。ヒストグラムがこのような形態の場合には、フロー長の基準範囲を、最頻値である20近傍の「15~25」とするのが好ましい。同様にして、
図13、
図14に示すように、右カメラ23および左カメラ24によるヒストグラムでは、フロー長の基準範囲を、例えば平均値近傍に決定するのが好ましい。
【0046】
以上のように、現在フレームにおける、各カメラ21~24によるヒストグラムを取得し、自己位置推定に際して、随時、フロー長の基準範囲を決定する。S105において、選別部15は、作成されたフローのうち、現在フレームと前回フレーム間のフロー長が、基準範囲内にあるものを正しいフローとして選別する。すなわち、フロー長の統計であるヒストグラムから得た基準範囲を、フローの選別の指標としている。上記フロー分布は、車両MCの移動速度および旋回方向に応じて変化する。なお、一般に、上記基準範囲は、車両MCの移動速度が大きいほど大きくなる。また、車両MCの旋回方向と逆に設けられたカメラにおける値の方が大きくなる傾向がある。
【0047】
図15、
図16は、任意の現在フレームの一例を示しており、フレーム内に特徴点およびフローを図示した図である。
図15は、左折中の前カメラ21により得られたフレームを示している。
図16は、左折中の右カメラ23により得られたフレームを示している。各図において、複数の白い丸で示すのは現特徴点Cであり、特徴点から引き出された黒色の線で示すのは誤フローFeであり、特徴点から引き出されたグレーの線で示すのは正フローFcである。「誤フロー」とは、S105における制約条件による判定により、制約条件を満たさないと判定されたフローである。「正フロー」とは、S105における制約条件による判定により、制約条件を満たすと判定されたフローである。
【0048】
このように、正フローFcと誤フローFeとでは相違がある。第1実施形態では、抽出された現特徴点を用いて引いたフローの全てを自己位置推定に用いるのではなく、
図15、
図16に示される正フローFcの情報を用いて、車両MCの自己位置推定が算出される。
【0049】
[効果]
(1)上記第1実施形態の自己位置推定装置1によれば、センサ等によらず、マルチカメラとしてのカメラ20によって撮影した画像のみから、3次元マップを作成することなく車両MCの自己位置を推定できる。このため、自己位置推定装置1における処理時間を短縮できる。また、3次元マップを作成しないため、自己位置推定装置1におけるメモリリソースを削減できる。
【0050】
(2)また、上記第1実施形態の自己位置推定装置1では、3次元マップを作成しないため、画像に対する奥行き方向の情報を現在フレームに反映させることができない。しかし、上記第1実施形態の自己位置推定装置1では、特徴点があると予想される範囲を、エピポーラ線からの所定距離として設定しており、エピポーラ線を基準とする2次元的な予測範囲を探索範囲Sとして設定できるため、特徴点の存在する範囲の予測ができ、探索処理時間を短縮することができる。
【0051】
(3)上記第1実施形態の自己位置推定装置1によれば、車両MCの予測される運動に基づいて計算されたエピポーラ線からの所定距離として予め定められた上限閾値を、フローの選別の指標として含んでいる。そして、選別部15により、作成されたフローのうち、現特徴点の位置座標が、エピポーラ線からの所定距離として予め定められた上限閾値の範囲内にあるものが、正しいフローとして選別される。このため、車両MCの自己位置推定の精度を向上させることができる。
【0052】
(4)さらに、上記第1実施形態の自己位置推定装置1によれば、フロー長の統計としてのヒストグラムから得た基準範囲を、フローの選別の指標として含んでいる。そして、選別部15により、作成されたフローのうち、フロー長が基準範囲内にあるものが、正しいフローとして選別される。このため、車両MCの自己位置推定の精度を向上させることができる。
【0053】
また、上記第1実施形態では、第1条件と第2条件を共に満たすフローのみ正しいフローとして選別し、自己位置推定に用いるため、さらに車両MCの自己位置推定の精度を向上させることができる。
【0054】
(5)上記第1実施形態の自己位置推定装置1によれば、第2条件は、前後左右の各カメラ21~24において取得されたデータに基づくヒストグラムの形態によって、各カメラ21~24において適宜個別に決定される。すなわち、ヒストグラムの形態から、最頻値近傍や平均値近傍など、適切な基準範囲が決定される。このため、より正確にフローの抽出を行うことができる。
【0055】
(6)上記第1実施形態の自己位置推定装置1によれば、S102において、等速運動を前提として基本行列を作成しているため、基本行列の算出を容易に行うことができる。
【0056】
(7)上記第1実施形態の自己位置推定装置1によれば、制約条件の判定(S105)を行ったのちに、判定条件をクリアしたフローの数が基準より少ない場合には(S107)、従前の制約条件を緩和して再度判定するようにしている(S108)。このため、自己位置推定に用いるフローの数が過度に少なくなることを回避できる。
【0057】
B.他の実施形態:
(B1)上記第1実施形態の自己位置推定装置1は、車両MCに搭載されるものとしたが、その他、船舶やドローン、自律移動型ロボットなどの物体や、人等の移動体に搭載されていてもよい。
【0058】
(B2)上記第1実施形態の自己位置推定装置1において、カメラ20は、前後左右の4つのカメラで構成したが、2つ以上の複眼カメラであればよい。
【0059】
(B3)上記第1実施形態の自己位置推定装置1では、S102において、等速運動を前提として、前回フレームと現在フレームとの間の基本行列を作成したが、動作の予想は、前回計算値の利用の他、車両MCのCANデータからのステアリング情報等を用いてもよい。
【0060】
(B4)上記第1実施形態の自己位置推定装置1では、フロー長の基準範囲の決定に際して、ヒストグラム中の最頻値または平均値を利用したが、中央値を利用してもよい。例えば、統計において、フロー長が著しく大きく外れたものが存在するような場合には、平均値ではなく、中央値を適用するなど、適宜対応できる。
【0061】
(B5)本開示に記載の自己位置推定装置1及びそれら手法は、コンピュータプログラムにより具体化された一つ乃至は複数の機能を実行するようにプログラムされたプロセッサ及びメモリを構成することによって提供された専用コンピュータにより、実現されてもよい。あるいは、本開示に記載の自己位置推定装置1及びそれら手法は、一つ以上の専用ハードウェア論理回路によってプロセッサを構成することによって提供された専用コンピュータにより実現されてもよい。もしくは、本開示に記載の自己位置推定装置1及びそれら手法は、一つ乃至は複数の機能を実行するようにプログラムされたプロセッサ及びメモリと一つ以上のハードウェア論理回路によって構成されたプロセッサとの組合わせにより構成された一つ以上の専用コンピュータにより実現されてもよい。また、コンピュータプログラム(自己位置推定プログラム)は、コンピュータにより実行されるインストラクションとして、コンピュータ読み取り可能な非遷移有形記録媒体に記憶されていてもよい。
【0062】
本開示は、上述の実施形態に限られるものではなく、その趣旨を逸脱しない範囲において種々の構成で実現することができる。例えば、発明の概要の欄に記載した形態中の技術的特徴に対応する各実施形態中の技術的特徴は、上述の課題の一部又は全部を解決するために、あるいは、上述の効果の一部又は全部を達成するために、適宜、差し替えや、組み合わせを行うことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。
【符号の説明】
【0063】
1…自己位置推定装置、10…車両制御部、11…画像データ取得部、12…特徴点抽出部、13…記憶部、14…フロー作成部、15…選別部、16…自己位置算出部、20…カメラ、21…前カメラ、22…後カメラ、23…右カメラ、24…左カメラ、MC…車両