JP7221897B2 - 推定装置、移動体、推定方法及びプログラム - Google Patents
推定装置、移動体、推定方法及びプログラム Download PDFInfo
- Publication number
- JP7221897B2 JP7221897B2 JP2020035838A JP2020035838A JP7221897B2 JP 7221897 B2 JP7221897 B2 JP 7221897B2 JP 2020035838 A JP2020035838 A JP 2020035838A JP 2020035838 A JP2020035838 A JP 2020035838A JP 7221897 B2 JP7221897 B2 JP 7221897B2
- Authority
- JP
- Japan
- Prior art keywords
- query
- image
- imaging condition
- feature amount
- reference image
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 58
- 238000003384 imaging method Methods 0.000 claims description 187
- 238000004364 calculation method Methods 0.000 claims description 88
- 238000013528 artificial neural network Methods 0.000 claims description 30
- 230000006870 function Effects 0.000 claims description 20
- 238000001556 precipitation Methods 0.000 claims description 2
- 239000013598 vector Substances 0.000 description 46
- 238000012545 processing Methods 0.000 description 33
- 238000010586 diagram Methods 0.000 description 17
- 238000004891 communication Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 13
- 238000005259 measurement Methods 0.000 description 6
- 238000012935 Averaging Methods 0.000 description 3
- 239000004973 liquid crystal related substance Substances 0.000 description 3
- 230000033001 locomotion Effects 0.000 description 3
- 230000015654 memory Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012905 input function Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000007637 random forest analysis Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000036544 posture Effects 0.000 description 1
- 230000001932 seasonal effect Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/53—Querying
- G06F16/532—Query formulation, e.g. graphical querying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/58—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/583—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/58—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/587—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using geographical or spatial information, e.g. location
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
- G06T7/74—Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
- G06V10/75—Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/50—Context or environment of the image
- G06V20/56—Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30244—Camera pose
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Library & Information Science (AREA)
- Computing Systems (AREA)
- Multimedia (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Image Analysis (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
Description
本発明の実施形態は推定装置、移動体、推定方法及びプログラムに関する。
ある環境において撮影された画像(以降ではクエリ画像と呼ぶ)の撮影位置(自己位置)を、あらかじめ構築した環境を撮影した画像のデータベースを利用して推定する自己位置推定技術が従来から知られている。例えば、撮影位置が既知である画像のデータベースから、クエリ画像と類似した画像を検索し、検索された画像(以降では参照画像と呼ぶ)の撮影位置をクエリ画像の自己位置とする技術が存在する。また、クエリ画像と参照画像との間で画素単位での対応を求め、得られた対応関係を基に幾何学的な計算を行うことで撮影位置を高い精度で推定する技術が存在する。
Lepetit, V.;Moreno-Noguer,M.;Fua, P.(2009)."EPnP:An Accurate O(n) Solution to the PnP Problem". International Journal of Computer Vision.81 (2):155-166.
しかしながら、従来の技術では、外乱要因が多岐にわたる場合に自己位置推定の精度を高めることが難しいという課題があった。
実施形態の推定装置は、クエリ画像取得部とクエリ撮像条件取得部と参照画像取得部と参照撮像条件取得部と特徴量算出部と自己位置算出部とを備える。クエリ画像取得部は、第1の撮像装置により撮像された画像をクエリ画像として取得する。クエリ撮像条件取得部は、前記クエリ画像の撮像条件を示すクエリ撮像条件を取得する。参照画像取得部は、少なくとも1つの参照画像を取得する。参照撮像条件取得部は、前記参照画像の撮像条件を示す参照撮像条件を取得する。特徴量算出部は、前記参照撮像条件に基づいて、前記クエリ画像から前記クエリ画像の特徴量を示すクエリ特徴量を算出し、前記クエリ撮像条件に基づいて、前記参照画像から前記参照画像の特徴量を示す参照特徴量を算出する。自己位置算出部は、前記クエリ特徴量と前記参照特徴量とに基づいて、前記クエリ画像に前記参照画像を対応付け、前記クエリ画像に対応付けられた参照画像を撮像した第2の撮像装置の位置及び姿勢を利用して、前記第1の撮像装置の位置及び姿勢の少なくとも一方を示す自己位置を算出する。
以下に添付図面を参照して、推定装置、移動体、推定方法及びプログラムの実施形態を詳細に説明する。
(第1実施形態)
一般に画像の見た目は撮像条件によって変化する。例えば、屋外で画像を撮影した場合には、季節・日照・天候・降水・降雪などにより画像の見た目が変化する。屋内で画像を撮影した場合にも、外光の状態や、照明の点灯状態などによって、画像の見た目が変化する。なお、これらの見た目の変化は、明るさの変化にとどまるものではない。例えば、屋外では季節によって植物の葉の茂り具合や色合い、降雪の有無などが変化する。屋内においても、照明条件によって物体の影の形状や濃さが変化する。自己位置推定においては、クエリ画像の撮像条件と参照画像の撮像条件とが異なる場合には、同一の地物であっても画像上での見た目が異なってしまう。
一般に画像の見た目は撮像条件によって変化する。例えば、屋外で画像を撮影した場合には、季節・日照・天候・降水・降雪などにより画像の見た目が変化する。屋内で画像を撮影した場合にも、外光の状態や、照明の点灯状態などによって、画像の見た目が変化する。なお、これらの見た目の変化は、明るさの変化にとどまるものではない。例えば、屋外では季節によって植物の葉の茂り具合や色合い、降雪の有無などが変化する。屋内においても、照明条件によって物体の影の形状や濃さが変化する。自己位置推定においては、クエリ画像の撮像条件と参照画像の撮像条件とが異なる場合には、同一の地物であっても画像上での見た目が異なってしまう。
季節・日照・天候の変動など外乱要因が多岐にわたる場合には、外乱要因に影響されない特徴点は少なくなる。このような状況において、従来の技術では、自己位置推定に利用できる特徴点が少数に限られてしまう。そのため、自己位置推定の精度を高めることができないという課題があった。
第1実施形態では、上述の課題を解決する推定装置が移動体に搭載される場合について説明する。
[移動体の例]
図1は第1実施形態の移動体10の例を示す図である。
図1は第1実施形態の移動体10の例を示す図である。
移動体10は、推定装置20、出力部10A、カメラ10B、センサ10C、動力制御部10G及び動力部10Hを備える。
移動体10は任意でよい。移動体10は、例えば車両、台車及び移動ロボット等である。車両は、例えば自動二輪車、自動四輪車及び自転車等である。また、移動体10は、例えば人による運転操作を介して走行する移動体でもよいし、人による運転操作を介さずに自動的に走行(自律走行)可能な移動体でもよい。また、移動体10は、車両に限られず、移動体10自身が移動したり、人またはロボット等により持ち運びされたりすることが可能であれば、どのような装置であってもよい。例えば、移動体10は、船舶であってもよいし、ドローン等の飛行物体であってもよい。
推定装置20は、例えば専用又は汎用のコンピュータハードウェアにより実現される。推定装置20は、カメラ10B(移動体10)の位置及び姿勢の少なくとも一方を示す自己位置を推定する。
なお、推定装置20は、移動体10に搭載された形態に限定されない。推定装置20は、静止物に搭載されていてもよい。静止物は、例えば地面に固定された物等の移動不可能な物である。地面に固定された静止物は、例えばガードレール、ポール、駐車車両及び道路標識等である。また例えば、静止物は、地面に対して静止した状態の物である。また、推定装置20は、クラウドシステム上で処理を実行するクラウドサーバに搭載されていてもよい。
動力部10Hは、移動体10に搭載された駆動デバイスである。動力部10Hは、例えば、エンジン、モータ及び車輪等である。
動力制御部10Gは、動力部10Hを制御する。動力制御部10Gの制御によって動力部10Hが駆動する。
出力部10Aは情報を出力する。第1実施形態では、出力部10Aは、例えば推定装置20により推定された自己位置を示す推定結果情報を出力する。
出力部10Aは、例えば、推定結果情報を送信する通信機能、推定結果情報を表示する表示機能、及び、推定結果情報を示す音を出力する音出力機能等を備える。出力部10Aは、例えば通信部10D、ディスプレイ10E及びスピーカ10Fの少なくとも1つを備える。なお、第1実施形態では、出力部10Aは、通信部10D、ディスプレイ10E及びスピーカ10Fを備えた構成を例にして説明する。
通信部10Dは、推定結果情報を他の装置へ送信する。例えば、通信部10Dは、通信回線を介して推定結果情報を他の装置へ送信する。ディスプレイ10Eは、推定結果に関する情報を表示する。ディスプレイ10Eは、例えばLCD(Liquid Crystal Display)、投影装置及びライト等である。スピーカ10Fは、推定結果に関する情報を示す音を出力する。
第1実施形態では、カメラ10Bは単眼カメラである。なおカメラ10Bの数は任意でよい。カメラ10B、例えばステレオカメラ、デプスカメラ、全方位カメラ、魚眼カメラ及び赤外線カメラ等でもよい。また、撮像される画像はRGBの3チャネルで構成されたカラー画像であってもよく、グレースケールで表現された1チャネルのモノクロ画像であってもよい。カメラ10Bは、移動体10周辺の時系列の画像を撮像する。カメラ10Bは、例えば移動体10の周辺を時系列に撮像することにより、時系列の画像を撮像する。移動体10の周辺は、例えば当該移動体10から予め定められた範囲内の領域である。この範囲は、例えばカメラ10Bの撮像可能な範囲である。
第1実施形態では、カメラ10Bが、移動体10の前方を撮影方向として含むように設置されている場合を例にして説明する。すなわち、第1実施形態では、カメラ10Bは、移動体10の前方を時系列に撮像する。
センサ10Cは、測定情報を測定するセンサである。測定情報は、例えば移動体10の速度、並びに、移動体10のハンドルの舵角を含む。センサ10Cは、例えば慣性計測装置(IMU:Inertial Measurement Unit)、速度センサ及び舵角センサ等である。IMUは、移動体10の三軸加速度及び三軸角速度を含む測定情報を測定する。速度センサは、タイヤの回転量から速度を測定する。舵角センサは、移動体10のハンドルの舵角を測定する。
次に、第1実施形態の移動体10の機能構成の例について詳細に説明する。
[機能構成の例]
図2は第1実施形態の移動体10の機能構成の例を示す図である。
図2は第1実施形態の移動体10の機能構成の例を示す図である。
移動体10は、推定装置20、出力部10A、カメラ10B、センサ10C、動力制御部10G及び動力部10Hを備える。推定装置20は、処理部20A及び記憶部20Bを備える。出力部10Aは、通信部10D、ディスプレイ10E及びスピーカ10Fを備える。
処理部20A、記憶部20B、出力部10A、カメラ10B、センサ10C及び動力制御部10Gは、バス10Iを介して接続されている。動力部10Hは、動力制御部10Gに接続されている。
なお、出力部10A(通信部10D、ディスプレイ10E及びスピーカ10F)、カメラ10B、センサ10C、動力制御部10G及び記憶部20Bは、ネットワークを介して接続されていてもよい。接続に使用されるネットワークの通信方式は、有線方式であっても無線方式であってもよい。また、接続に使用されるネットワークは、有線方式と無線方式とを組み合わせることにより実現されていてもよい。
記憶部20Bは情報を記憶する。記憶部20Bは、例えば半導体メモリ素子、ハードディスク及び光ディスク等である。半導体メモリ素子は、例えばRAM(Random Access Memory)及びフラッシュメモリ等である。なお、記憶部20Bは、推定装置20の外部に設けられた記憶装置であってもよい。また、記憶部20Bは、記憶媒体であってもよい。具体的には、記憶媒体は、プログラムや各種情報を、LAN(Local Area Network)やインターネットなどを介してダウンロードして記憶または一時記憶したものであってもよい。また、記憶部20Bを、複数の記憶媒体から構成してもよい。
処理部20Aは、クエリ画像取得部21、クエリ撮像条件取得部22、参照画像取得部23、参照撮像条件取得部24、特徴量算出部25、及び、自己位置算出部26を備える。クエリ画像取得部21、クエリ撮像条件取得部22、参照画像取得部23、参照撮像条件取得部24、特徴量算出部25、及び、自己位置算出部26は、例えば1又は複数のプロセッサにより実現される。
処理部20Aは、例えばCPU(Central Processing Unit)等のプロセッサにプログラムを実行させること、すなわちソフトウェアにより実現されてもよい。また例えば、処理部20Aは、専用のIC(Integrated Circuit)等のプロセッサ、すなわちハードウェアにより実現されてもよい。また例えば、処理部20Aは、ソフトウェア及びハードウェアを併用することにより実現されてもよい。
なお、実施形態において用いられる「プロセッサ」の文言は、例えば、CPU、GPU(Graphical Processing Unit)、特定用途向け集積回路(Application Specific Integrated Circuit:ASIC)、及び、プログラマブル論理デバイスを含む。プログラマブル論理デバイスは、例えば単純プログラマブル論理デバイス(Simple Programmable Logic Device:SPLD)、複合プログラマブル論理デバイス(Complex Programmable Logic Device:CPLD)、及び、フィールドプログラマブルゲートアレイ(Field Programmable Gate Array:FPGA)等を含む。
プロセッサは、記憶部20Bに保存されたプログラムを読み出し実行することで、処理部20Aを実現する。なお、記憶部20Bにプログラムを保存する代わりに、プロセッサの回路内にプログラムを直接組み込むよう構成してもよい。この場合、プロセッサは回路内に組み込まれたプログラムを読み出し実行することで、処理部20Aを実現する。
次に、処理部20Aの各機能について説明する。
クエリ画像取得部21は、カメラ10B(第1の撮像装置)によって撮像されたクエリ画像を取得する。
クエリ撮像条件取得部22は、クエリ画像の撮像条件を示すクエリ撮像条件を取得する。クエリ撮像条件は、例えば撮像時の緯度、経度、日付、時刻、降水量及び降雪量の少なくとも1つを含む。
参照画像取得部23は、記憶部20B等の記憶装置から、少なくとも1つの参照画像を取得する。参照画像は、カメラ10Bによって撮像される風景等の被写体を含む画像である。また、参照画像は、当該参照画像を撮像したカメラ(第2の撮像装置)の位置及び姿勢が既知である画像である。参照画像を撮像したカメラの位置及び姿勢は、例えば当該参照画像に関連付けられて記憶部20Bに記憶されている。なお、参照画像を撮像したカメラと、クエリ画像を撮像したカメラ10Bとは同じでもよいし、異なっていてもよい。
参照撮像条件取得部24、参照画像の撮像条件を示す参照撮像条件を取得する。参照撮像条件の説明は、クエリ撮像条件と同様なので省略する。
特徴量算出部25は、参照撮像条件に基づいて、クエリ画像からクエリ画像の特徴量を示すクエリ特徴量を算出し、クエリ撮像条件に基づいて、参照画像から参照画像の特徴量を示す参照特徴量を算出する。
自己位置算出部26は、クエリ特徴量と参照特徴量とに基づいて、クエリ画像に参照画像を対応付け、クエリ画像に対応付けられた参照画像を撮像した第2の撮像装置の位置及び姿勢を利用して、カメラ10Bの位置及び姿勢の少なくとも一方を示す自己位置を算出する。
[推定方法の例]
図3は第1実施形態の推定方法の例を示すフローチャートである。はじめに、各ステップの処理の概要について説明する。
図3は第1実施形態の推定方法の例を示すフローチャートである。はじめに、各ステップの処理の概要について説明する。
まず、クエリ画像取得部21が、移動体10に搭載されたカメラ10Bから、クエリ画像を取得し、クエリ撮像条件取得部22が、クエリ撮像条件を取得する(ステップS101)。
次に、参照画像取得部23が、記憶部20B等の記憶装置から、少なくとも1つの参照画像を取得し、参照撮像条件取得部24が、参照撮像条件を取得する(ステップS102)。
次に、特徴量算出部25が、参照撮像条件に基づいて、クエリ画像からクエリ画像の特徴量を示すクエリ特徴量を算出し、クエリ撮像条件に基づいて、参照画像から参照画像の特徴量を示す参照特徴量を算出する(ステップS103)。
次に、自己位置算出部26が、クエリ特徴量と参照特徴量とを利用してクエリ画像と参照画像との類似度を算出し、算出された類似度を利用して、クエリ画像を撮影したカメラ10Bの位置及び姿勢の少なくとも一方を示す自己位置を算出する(ステップS104)。
次に、図3の各ステップの処理の詳細について説明する。
<ステップS101>
図4は第1実施形態のクエリ画像取得部21及びクエリ撮像条件取得部22の動作例を説明するための図である。クエリ画像取得部21は、移動体10に設置されたカメラ101Bからクエリ画像101を取得する。カメラ10Bは、移動体10における固定された位置から、固定された姿勢で、移動体10の周囲を撮像する。なお、カメラ10Bは、移動体10との相対的な姿勢が測定できれば、固定された姿勢でなくてもよい。
図4は第1実施形態のクエリ画像取得部21及びクエリ撮像条件取得部22の動作例を説明するための図である。クエリ画像取得部21は、移動体10に設置されたカメラ101Bからクエリ画像101を取得する。カメラ10Bは、移動体10における固定された位置から、固定された姿勢で、移動体10の周囲を撮像する。なお、カメラ10Bは、移動体10との相対的な姿勢が測定できれば、固定された姿勢でなくてもよい。
クエリ撮像条件取得部22は、クエリ画像101の撮像条件を示すクエリ撮像条件103を取得する。
クエリ撮像条件103は、クエリ画像101に対して学習器102を適用した際の学習器102の出力、若しくは学習器102の内部状態をクエリ撮像条件103として利用してもよい。学習器102としては、ニューラルネットワークやランダムフォレストを用いることができる。学習器102が用いられる場合、入力されたクエリ画像101のみを利用して、クエリ撮像条件103を取得することが可能になる。なお、参照撮像条件を取得する場合についても、クエリ撮像条件103を取得する場合と同様に、学習器102が用いられてもよい。
具体的には、学習器102は、例えばクエリ画像101を入力とし、クエリ撮像条件103を出力とするニューラルネットワークである。図4の例は、クエリ撮像条件103が、クエリ画像が撮像されたときの天候である場合を示す。なお、クエリ撮像条件103は、ニューラルネットワークの出力層の出力ではなく、ニューラルネットワークの中間層の出力から取得されてもよい。
なお、クエリ撮像条件103には、天候に限らず、クエリ画像101の見た目の変動に関連する任意の情報を含めることができる。例えば、撮影された場所が屋外であれば雲量・雨量・積雪量等をクエリ撮像条件103に含めてもよい。また、クエリ画像101が撮影された日時をクエリ撮像条件103に含めてもよい。また、緯度・経度によって同一時刻であっても太陽高度が変化し、画像の見た目が変化するため、緯度・経度をクエリ撮像条件103に含めてもよい。また、撮影された場所が屋内であれば、照明の点灯状況等をクエリ撮像条件103に含めてもよい。クエリ撮像条件103を表現する方法としては、連続値又はone-hotベクトルなどによる離散的なカテゴリのいずれも用いることができる。例えば、日時を表現する際には、特定時刻を起点とした時間を表す連続値をクエリ撮像条件103としてもよく、例えば朝・昼・夕・夜の4段階や、1時間ごとなどに離散化された時間をクエリ撮像条件103として用いてもよい。
学習器102は、例えばクエリ撮像条件103を推定するように学習されていてもよい。また例えば、学習器102として任意のタスクに対して学習されたネットワークの一部分を利用してもよい。具体的には、入力画像にエンコーダを適用して符号を算出し、さらに符号にデコーダを適用して入力画像を復元するようにオートエンコーダを学習し、エンコーダの部分を学習器102として利用してもよい。
なお、クエリ撮像条件103の取得方法は、ニューラルネットワークにより実現された学習器102を用いる取得方法に限られない。例えば、クエリ撮像条件103が天候の場合、クエリ画像の撮像時の気象データを利用して、クエリ撮像条件103を取得してもよい。
<ステップS102>
参照画像取得部23は、例えば参照画像と、当該参照画像を撮像した第2の撮像装置の位置及び姿勢とを関連付けて保持するデータベースが記憶された記憶部20Bから、参照画像と、その撮像位置(た第2の撮像装置の位置及び姿勢)を取得する。なお、第2の撮像装置の位置及び姿勢は、例えば全ての参照画像に共通な基準座標系のもとで表現される。具体的には、基準座標系の選び方として、緯度及び経度で表されるグローバルな座標系を使用してもよいし、特定の参照画像の撮像位置を原点とした座標系を使用してもよい。
参照画像取得部23は、例えば参照画像と、当該参照画像を撮像した第2の撮像装置の位置及び姿勢とを関連付けて保持するデータベースが記憶された記憶部20Bから、参照画像と、その撮像位置(た第2の撮像装置の位置及び姿勢)を取得する。なお、第2の撮像装置の位置及び姿勢は、例えば全ての参照画像に共通な基準座標系のもとで表現される。具体的には、基準座標系の選び方として、緯度及び経度で表されるグローバルな座標系を使用してもよいし、特定の参照画像の撮像位置を原点とした座標系を使用してもよい。
図5は第1実施形態の参照画像に関する情報を記憶するDB(DataBase)の例を説明するための図である。図5の例では、参照画像に関する情報を取得する移動体10-2が、カメラ10B-2、センサ10C-2及び記憶部20B-2を備える。
カメラ10B-2は、参照画像を取得する。センサ10C-2は、カメラ10B-2(第2の撮像装置)の位置及び姿勢を取得する。
記憶部20B-2は、参照画像に関する情報を記憶するDBを記憶する。DBでは、位置、姿勢、参照画像及び参照撮像条件が関連付けられて記憶される。位置及び姿勢は、参照画像を撮像した時のカメラ10B-2の位置及び姿勢を示す。参照画像は、カメラ10B-2により撮像された画像である。参照撮像条件は、参照画像の撮像条件(図5の例では天候)を示す。
ここで、センサ10C-2は、例えばGPS(Global Positioning System)、及び、GNSS(Global Navigation Satellite System)等の測位システムである。また例えば、センサ10C-2は、IMU(Inertial Measurement Unit)等の慣性センサである。
なお、図5では、三次元空間中での位置を三次元空間中の座標(x,y,z)で表現し、三次元空間中での姿勢を、三次元空間中での回転を表す四元数の組み合わせ(q_x,q_y,q_z,q_w)で表現している。しかしながら、位置及び姿勢の表現には、任意の自由度で表される位置及び姿勢の任意の表現方法が利用可能である。
例えば、床面での移動など、移動が平面上で行われると仮定できる場合には、並進に関する2自由度と、回転に関する1自由度を合わせた3自由度で、位置及び姿勢を表現することができる。また例えば、三次元空間中の姿勢を表現するために、四元数のかわりに、回転行列、回転軸と回転方向を表すベクトル、及び、オイラー角等が使用されてもよい。
また、データベースの別の構成方法として、カメラ10B-2により取得された複数の画像に、SfM(Structure from Motion)を適用することによって、それぞれの参照画像が撮像されたときのカメラ10B-2の位置及び姿勢を推定してもよい。また、データベースの別の構成方法として、移動体10-2を移動させながら参照画像を取得し、取得された参照画像にSLAM(Simultaneous Localization and Mapping)を適用することにより、参照画像を撮像したときのカメラ10B-2の位置及び姿勢が推定されてもよい。
参照画像取得部23は、データベース内の参照画像、位置及び姿勢の組の全てを取得してもよいし、データベース内の参照画像、位置及び姿勢の組の一部を取得してもよい。例えば、複数のフロアからなる建物内を撮像した参照画像のデータベースが存在するときに、データベース全体を自己位置推定に利用してもよい。参照画像取得部23は、移動ロボット等の移動体10が存在するフロア、及び、当該移動体10が存在する部屋等についての事前情報が得られる場合には、その事前情報に基づいて特定のフロア及び部屋等に近い参照画像、位置及び姿勢の組のみを取得してもよい。さらに、参照撮像条件取得部24は、データベースから、参照画像に関連付けられた参照撮像条件を取得する。
<ステップS103>
特徴量算出部25は、クエリ画像と参照撮像条件とからクエリ特徴量を算出し、参照画像とクエリ撮像条件とから参照特徴量を算出する。第1実施形態においては、クエリ画像と参照撮像条件とからクエリ特徴量を算出する処理と、参照画像とクエリ撮像条件とから参照特徴量を算出する処理として同一のニューラルネットワークを用いる。そのため、以降ではクエリ画像と参照撮像条件とからクエリ特徴量を算出する処理を説明し、参照画像とクエリ撮像条件とから参照特徴量を算出する処理の説明は省略する。
特徴量算出部25は、クエリ画像と参照撮像条件とからクエリ特徴量を算出し、参照画像とクエリ撮像条件とから参照特徴量を算出する。第1実施形態においては、クエリ画像と参照撮像条件とからクエリ特徴量を算出する処理と、参照画像とクエリ撮像条件とから参照特徴量を算出する処理として同一のニューラルネットワークを用いる。そのため、以降ではクエリ画像と参照撮像条件とからクエリ特徴量を算出する処理を説明し、参照画像とクエリ撮像条件とから参照特徴量を算出する処理の説明は省略する。
図6は第1実施形態の特徴量算出部の動作例を説明するための図である。特徴量算出部25は、クエリ画像101と、参照撮像条件104とをニューラルネットワーク105の入力として推論処理を行うことにより、クエリ特徴量106を得る。第1実施形態では、クエリ特徴量106は、クエリ画像101の画素と特徴ベクトル107との対応である。
なお、特徴量算出部25は、クエリ画像101の全ての画素に対して特徴ベクトル107を算出してもよいし、クエリ画像101の画素を一定の間隔で間引いたものに対して特徴ベクトル107を算出してもよい。また、特徴量算出部25は、コーナー検出などを用いて検出された離散的な特徴点に対応する画素に対して特徴ベクトル107を算出してもよい。
第1実施形態では、ニューラルネットワーク105はクエリ画像101を入力とするニューラルネットワーク105aと、参照撮像条件を入力とするニューラルネットワーク105bとを組み合わせて構成される。クエリ画像101を入力とするニューラルネットワーク105aの出力、若しくは、内部状態を表すパラメータは、参照撮像条件を入力とするニューラルネットワーク105bの出力によって変換される。第1実施形態では、変換として線形変換が用いられる。すなわち、ニューラルネットワーク105bの出力は、内部状態を表すパラメータを変換する線形変換の係数である。
なお、第1実施形態の特徴量算出部25の構成は、図6の方法に限定されるものではない。例えば、クエリ画像101を入力とするニューラルネットワーク105aの出力、若しくは、内部状態を表すパラメータを変換するときに、ニューラルネットワーク105bの出力によって定められる多項式、指数関数、対数関数、三角関数などの任意の組み合わせを用いることができる。例えば、ニューラルネットワーク105の別の構成方法として、クエリ画像101と参照撮像条件104とを入力とする任意のニューラルネットワークを用いることができる。また、特徴量算出部25は、クエリ画像101と参照撮像条件104とから、クエリ特徴量を出力する任意の処理を用いることができる。例えば、特徴量算出部25は、ランダムフォレストによって実現されてもよいし、サポートベクトル回帰によって実現されてもよい。
特徴量算出部25は、クエリ特徴量106の算出に参照撮像条件104を利用する。このような特徴量算出部25を学習させると、参照画像と共通した特徴をクエリ特徴量から抽出することができるようになる。そのため、撮像条件が多岐にわたり、すべての撮像条件に共通する特徴が少ないときにも、クエリ画像と参照画像との間で共通している多くの特徴を利用して自己位置推定を行うことができ、以降のステップS104で説明する自己位置推定の精度を高めることができる。
なお、特徴量算出部25を学習する第一の方法として、クエリ画像101と参照撮像条件104とから、新たな画像を出力する画像変換器を組み合わせることができる。例えば、クエリ特徴量106が、晴天のクエリ画像101と、雨天を表現する参照撮像条件104とを特徴量算出部25に入力することによって算出されているとする。このとき、クエリ特徴量106と、晴天を表す参照撮像条件104を画像変換器に入力したときに、クエリ画像101と同等の地物が写った晴天の画像を出力するように、特徴量算出部25と画像変換器を学習させる。また一方で、クエリ特徴量106と、雨天を表す参照撮像条件を画像変換器に入力したときに、クエリ画像101と同等の地物が写った雨天の画像が出力されるように、特徴量算出部25と画像変換器を学習させる。本画像変換器の学習には、教師あり学習や敵対的生成ネットワーク(GAN)を用いることができる。また、教師あり学習と敵対的生成ネットワークとを組み合わせて本画像変換器の学習をしてもよい。
また、特徴量算出部25を学習する第二の方法として、撮像条件が異なるクエリ画像101と参照画像とから、後述する方法により算出された第1の大域的類似度、もしくは局所的類似度を利用して推定された自己位置が真値と近づくように特徴量算出部25を更新してもよい。
また、特徴量算出部25を学習するときに、前述の第一の方法と、第二の方法とを組み合わせてもよい。組み合わせにあたって、例えば特徴量算出部25を第一の方法によって学習した後に、第二の方法を用いてさらに更新してもよい。また、損失関数を重みづけして足し合わせる等の方法により、第一の方法と第二の方法とを同時に適用して特徴量算出部25を学習してもよい。
さらに、参照撮像条件が、学習器102の出力として与えられる場合には、特徴量算出部25と、学習器102が同時に学習されてもよい。この場合には,特徴量算出部25のみを学習する場合と比べて、より多くのパラメータが更新されるため、自己位置推定の精度をより高めることが可能となる。
<ステップS104>
自己位置算出部26は、クエリ特徴量及び参照特徴量を比較して、画像全体の類似度を評価する第1の大域的類似度と、画素同士の類似度を評価する局所的類似度とをそれぞれ算出して自己位置を算出する。
自己位置算出部26は、クエリ特徴量及び参照特徴量を比較して、画像全体の類似度を評価する第1の大域的類似度と、画素同士の類似度を評価する局所的類似度とをそれぞれ算出して自己位置を算出する。
図7は第1実施形態の自己位置算出部26の動作例を示すフローチャートである。まず、自己位置算出部26は、クエリ画像101と参照画像との第1の大域的類似度を算出し、第1の大域的類似度が第1の画像比較閾値よりも高い参照画像を選択する(ステップS104a)。
次に、自己位置算出部26は、ステップS104aの処理で選択された参照画像に対して、局所的類似度を算出し、当該局所的類似度を利用してクエリ画像101の画素と対応している参照画像の画素を算出する(ステップS104b)。
次に、自己位置算出部26は、ステップS104bの処理で算出された画素の対応関係と、参照画像を撮像したカメラ10B-2(第2の撮像装置)の自己位置によって定められる幾何学的拘束条件(幾何学的な制約)とに基づいて、クエリ画像101を撮像したカメラ10B(第1の撮像装置)の自己位置を求める(ステップS104c)。
次に、図7の各ステップの処理の詳細について説明する。
<ステップS104a>
図8は第1実施形態の第1の大域的類似度の算出処理の例を示す図である。第1の大域的類似度は、クエリ画像101と参照画像との画像全体の類似度(同一の地物が写っている度合い)を示す。第1の大域的類似度は、以下のようにして算出することができる。まず、自己位置算出部26が、ニューラルネットワーク109(ベクトル算出器)を用いて、クエリ特徴量106から、クエリ画像101を表すベクトルである第1のクエリベクトルを算出する。同様に、自己位置算出部26が、ニューラルネットワーク109を用いて、参照特徴量108から、参照画像を表す第1の参照ベクトルを算出する。
図8は第1実施形態の第1の大域的類似度の算出処理の例を示す図である。第1の大域的類似度は、クエリ画像101と参照画像との画像全体の類似度(同一の地物が写っている度合い)を示す。第1の大域的類似度は、以下のようにして算出することができる。まず、自己位置算出部26が、ニューラルネットワーク109(ベクトル算出器)を用いて、クエリ特徴量106から、クエリ画像101を表すベクトルである第1のクエリベクトルを算出する。同様に、自己位置算出部26が、ニューラルネットワーク109を用いて、参照特徴量108から、参照画像を表す第1の参照ベクトルを算出する。
なお、クエリ特徴量106又は参照特徴量108を入力とし、第1のクエリベクトル又は第1の参照ベクトルを出力するニューラルネットワーク109は、ベクトル算出器の一例である。ベクトル算出器としては、クエリ特徴量106及び参照特徴量108からベクトルを算出する任意の演算を用いることができる。例えば、ベクトル算出器は、クエリ特徴量106(参照特徴量108)に含まれる画素毎の特徴ベクトル107に対する演算(平均、加算又は最大値をとる等)を行うことにより、第1のクエリベクトル(第1の参照ベクトル)を算出してもよい。
次に、自己位置算出部26は、第1のクエリベクトルと第1の参照ベクトルとを比較して第1の大域的類似度を算出する。比較の基準としては、例えばベクトル間のユークリッド距離が用いられる。なお、比較の基準として、マハラノビス距離、ベクトルの内積、及び、ベクトルのなす角などが用いられてもよい。
さらに、自己位置算出部26は、算出された第1の大域的類似度が、大きい参照画像を選択する。具体的には、自己位置算出部26は、第1の大域的類似度が大きい順に所定枚数を選択してもよいし、第1の大域的類似度があらかじめ設定された第1の画像比較閾値を超えている参照画像を選択してもよい。
<ステップS104b>
図9は第1実施形態の局所的類似度の算出処理の例を示す図である。自己位置算出部26は、クエリ画像101と、ステップS104aの処理により選択された参照画像との局所的類似度を算出する。
図9は第1実施形態の局所的類似度の算出処理の例を示す図である。自己位置算出部26は、クエリ画像101と、ステップS104aの処理により選択された参照画像との局所的類似度を算出する。
局所的類似度は、クエリ画像101の画素201と参照画像の画素202とが、同一の地物に対応しているかどうかを表す類似度である。第1実施形態では、自己位置算出部26が、クエリ特徴量106(クエリ画像101の画素201に対応する特徴ベクトル107)と、参照特徴量108(参照画像の画素202に対応する特徴ベクトル107)とを比較することにより算出する。ベクトルの比較には、ユークリッド距離、マハラノビス距離、ベクトルの内積、及び、ベクトルのなす角などが用いられてもよい。また、比較を行う前に、クエリ特徴量106及び参照特徴量108に対してニューラルネットワークなどの演算が適用されてもよい。
自己位置算出部26は、比較の結果、局所的類似度が、より高いクエリ特徴量106の画素201と、参照特徴量の画素202との組を、画素間対応110として取得する。第1実施形態では、自己位置算出部26は、局所的類似度が一定の閾値(画素比較閾値)より大きい画素201及び202の組を画素間対応110として取得する。また、変形例として、自己位置算出部26は、クエリ特徴量106が算出された画素201に対して、参照特徴量108の画素202のうち最も局所的類似度が高い画素202を画素間対応110として取得してもよい。また、参照特徴量108が算出された画素202に対して、クエリ特徴量106の画素201のうち最も局所的類似度が高い画素201を画素間対応110として取得してもよい。また、自己位置算出部26は、上述した基準のうち複数の方法で画素間対応110を算出し、複数の基準を同時に満たす画素間対応110のみを取得してもよいし、いずれか1つの基準を満たすものすべてを画素間対応110として取得してもよい。
また、変形例として、自己位置算出部26は、クエリ特徴量106と、参照特徴量108とから、画素間対応110を求める回帰モデルを利用して画素間対応110を取得してもよい。
<ステップS104c>
図10は第1実施形態の幾何学的拘束条件を利用した自己位置の算出処理の例を示す図である。第1実施形態では、自己位置算出部26は、クエリ特徴量106の画素201について、画素間対応110を用いて対応する参照特徴量108の画素202を求め、さらに当該参照特徴量108の画素202と対応している空間中の位置203を得る。なお、参照特徴量の画素202と空間中の位置203との関係を得る方法については後述する。自己位置算出部26は、この幾何学的関係に基づいて、空間中の位置203が、クエリ特徴量の画素116と一致する位置に投影されるようにクエリ画像101を撮像した際のカメラ10Bの位置又は姿勢の少なくとも一方を自己位置115として求める。
図10は第1実施形態の幾何学的拘束条件を利用した自己位置の算出処理の例を示す図である。第1実施形態では、自己位置算出部26は、クエリ特徴量106の画素201について、画素間対応110を用いて対応する参照特徴量108の画素202を求め、さらに当該参照特徴量108の画素202と対応している空間中の位置203を得る。なお、参照特徴量の画素202と空間中の位置203との関係を得る方法については後述する。自己位置算出部26は、この幾何学的関係に基づいて、空間中の位置203が、クエリ特徴量の画素116と一致する位置に投影されるようにクエリ画像101を撮像した際のカメラ10Bの位置又は姿勢の少なくとも一方を自己位置115として求める。
具体的には、自己位置算出部26は、例えば非特許文献1に記載の方法などを用いてPerspective-n-point問題を解くことで、クエリ画像101が撮影された際のカメラ10Bの自己位置115を算出する。また、自己位置算出部26は、SfMによって、クエリ画像101を撮像したカメラ10Bの自己位置115の推定と、空間中の位置203又は参照画像を撮像したカメラ10B-2の自己位置の更新と、を同時に行ってもよい。
また例えば、自己位置算出部26は、空間中の位置203の一部のみを利用してクエリ画像101を撮像した際のカメラ10Bの自己位置115を推定してもよい。また例えば、自己位置算出部26は、LMedS(Least Median of Squares)やRANSAC(Random Sample Consensus)などにより、画素間対応110の外れ値除去を行なってもよい。LMedSやRANSACなどを行うことによって、対応関係に外れ値が含まれる場合にも、ロバストに自己位置推定を行なうことができる。
ここで、参照特徴量の画素202と空間中の位置203との関係を得る方法について説明する。
第一の方法は、参照画像を取得する際に、参照画像の画素202と対応する空間中の位置203を取得しておくことである。例えば、RGB-Dカメラを用いることにより、参照画像と空間中の位置203を同時に計測できる。また、参照画像を取得する移動体10にLiDARなどの周辺の三次元構造を計測可能なセンサを搭載し、計測された三次元構造を参照画像の視点に投影することによって作成してもよい。また、参照画像と同一の物体が写っている複数の画像を組み合わせて、SfMや多視点ステレオ法を適用してもよい。また、ニューラルネットワークなどによって参照画像から三次元構造を推定してもよい。
第二の方法は、複数の参照画像を利用することである。複数の参照画像を利用する場合、それぞれの参照画像ごとにクエリ画像101の画素201と対応した点(画素202)を求めることができる。自己位置算出部26は、これらの点から三角測量を行うことで、空間内の点の位置203を決定することができる。第二の方法では、奥行きデータを参照画像と対応付けて持つ必要がなくなる。
なお、自己位置算出部26は、第一の方法及び第二の方法など、複数の方法の組み合わせによって空間内での点の位置203を決定してもよい。
なお、自己位置算出部26は、第1の大域的類似度及び局所的類似度のいずれか一方のみを用いてもよい。
自己位置算出部26は、クエリ特徴量106と参照特徴量108とに基づいて、クエリ画像101と参照画像との類似度を示す第1の大域的類似度を算出し、第1の大域的類似度が第1の画像比較閾値より大きい参照画像をクエリ画像101に対応付け、クエリ画像101に対応付けられた参照画像を撮像したカメラ10B-2(第2の撮像装置)の位置及び姿勢を利用して、自己位置115を算出してもよい。具体的には、例えば、自己位置算出部26は、第1の大域的類似度を用いて、クエリ画像101と類似した複数の参照画像を選択し、選択された参照画像が撮影された、それぞれの位置(姿勢)を平均することで、クエリ画像101の自己位置115を算出してもよい。位置を平均する処理には例えば相加平均を用いることができ、姿勢を平均する処理には四元数の球面補完や行列を用いた補完などを用いることができる。これにより、局所的類似度の計算が不要となるため、自己位置115の正確性は低下するものの、計算量を抑えることができる。
また例えば、自己位置算出部26は、局所的類似度のみを利用する構成としてもよい。すなわち、自己位置算出部26は、参照画像の画素202と、クエリ画像101の画素201との類似度を示す局所的類似度を、クエリ特徴量106と参照特徴量108とに基づいて算出し、局所的類似度が画素比較閾値より大きい参照画像の画素202をクエリ画像101の画素201に対応付け、対応付けられた画素201及び202から定まる幾何学的拘束条件を利用して、自己位置115を算出してもよい。この場合は、全ての参照画像に対してクエリ画像101との対応関係を求めるため計算量は大きくなるものの、参照画像の検索が不要となるという利点がある。
以上、説明したように、第1実施形態の推定装置20では、クエリ画像取得部21が、カメラ10B(第1の撮像装置)により撮像された画像をクエリ画像101として取得する。クエリ撮像条件取得部22が、クエリ画像101の撮像条件を示すクエリ撮像条件103を取得する。参照画像取得部23が、少なくとも1つの参照画像を取得する。参照撮像条件取得部24が、参照画像の撮像条件を示す参照撮像条件104を取得する。特徴量算出部25が、参照撮像条件104に基づいて、クエリ画像101からクエリ画像101の特徴量を示すクエリ特徴量106を算出し、クエリ撮像条件103に基づいて、参照画像から参照画像の特徴量を示す参照特徴量108を算出する。そして、自己位置算出部26が、クエリ特徴量106と参照特徴量108とに基づいて、クエリ画像101に参照画像を対応付け、クエリ画像101に対応付けられた参照画像を撮像したカメラ10B-2(第2の撮像装置)の位置及び姿勢を利用して、第1の撮像装置の位置及び姿勢の少なくとも一方を示す自己位置115を算出する。
これにより第1実施形態の推定装置20によれば、外乱要因が多岐にわたる場合であっても自己位置推定の精度を高めることができる。具体的には、クエリ画像101と参照画像とで共通する特徴量を利用して自己位置推定を行うことが可能となる。そのため、撮像条件が多岐にわたり、すべての撮像条件に共通する特徴量を利用することが困難なときにも、精度よく自己位置115を推定することが可能となる。
(第2実施形態)
次に第2実施形態について説明する。第2実施形態の説明では、第1実施形態と同様の説明については省略し、第1実施形態と異なる箇所について説明する。第2実施形態の推定装置20は、クエリ撮像条件103及び参照撮像条件に依存しない特徴量を利用して算出される第2の大域的類似度を組み合わせる点が、第1実施形態の推定装置20の場合と異なる。
次に第2実施形態について説明する。第2実施形態の説明では、第1実施形態と同様の説明については省略し、第1実施形態と異なる箇所について説明する。第2実施形態の推定装置20は、クエリ撮像条件103及び参照撮像条件に依存しない特徴量を利用して算出される第2の大域的類似度を組み合わせる点が、第1実施形態の推定装置20の場合と異なる。
[機能構成の例]
図11は第2実施形態の処理部20A-2の機能構成の例を示す図である。第2実施形態の処理部20A-2は、クエリ画像取得部21、クエリ撮像条件取得部22、参照画像取得部23、参照撮像条件取得部24、特徴量算出部25、自己位置算出部26及び第2の大域的類似度算出部27を備える。
図11は第2実施形態の処理部20A-2の機能構成の例を示す図である。第2実施形態の処理部20A-2は、クエリ画像取得部21、クエリ撮像条件取得部22、参照画像取得部23、参照撮像条件取得部24、特徴量算出部25、自己位置算出部26及び第2の大域的類似度算出部27を備える。
第2の大域的類似度算出部27は、クエリ撮像条件103と参照撮像条件104とに依存しない特徴量に基づいて定められるクエリ画像101と参照画像111との第2の大域的類似度を算出する。
第2実施形態では、自己位置算出部26は、例えば、第2の大域的類似度が第2の画像比較閾値よりも大きい参照画像を対象にして、第1の大域的類似度を算出し、第1の大域的類似度が第1の画像比較閾値より大きい参照画像をクエリ画像101に対応付け、クエリ画像101に対応付けられた参照画像を撮像したカメラ10B-2(第2の撮像装置)の位置及び姿勢を利用して、自己位置115を算出する。
[推定方法の例]
図12は第2実施形態の推定方法の例を示すフローチャートである。ステップS201及びS202の処理は、第1実施形態のステップS101及びS102の処理と同様なので説明を省略する。
図12は第2実施形態の推定方法の例を示すフローチャートである。ステップS201及びS202の処理は、第1実施形態のステップS101及びS102の処理と同様なので説明を省略する。
第2の大域的類似度算出部27は、クエリ画像101と参照画像とから、第2の大域的類似度を算出する(S203)。
次に、特徴量算出部25が、参照撮像条件に基づいて、クエリ画像からクエリ画像の特徴量を示すクエリ特徴量を算出し、クエリ撮像条件に基づいて、参照画像から参照画像の特徴量を示す参照特徴量を算出する(ステップS204)。ただし、第2実施形態では、特徴量算出部25は、第2の大域的類似度に基づいて参照画像を選択し、選択された参照画像について参照特徴量を算出することで、比較の対象とする参照画像を事前に絞り込む。
ステップS205の処理は、第1実施形態のステップS104の処理と同様なので説明を省略する。
次に、ステップS203及びS204の処理の詳細について説明する。
<ステップS203>
図13は第2実施形態の第2の大域的類似度の算出処理の例を示す図である。第2の大域的類似度算出部27は、クエリ画像101に対して、ニューラルネットワーク109-2(第2のベクトル算出器)を適用して、第2のクエリベクトルを算出する。同様に、第2の大域的類似度算出部27は、参照画像111に対して、ニューラルネットワーク109-2を適用して、第2の参照ベクトルを算出する。次に、第2の大域的類似度算出部27は、第2のクエリベクトルと第2の参照ベクトルとを比較することにより、第2の大域的類似度を算出する。
図13は第2実施形態の第2の大域的類似度の算出処理の例を示す図である。第2の大域的類似度算出部27は、クエリ画像101に対して、ニューラルネットワーク109-2(第2のベクトル算出器)を適用して、第2のクエリベクトルを算出する。同様に、第2の大域的類似度算出部27は、参照画像111に対して、ニューラルネットワーク109-2を適用して、第2の参照ベクトルを算出する。次に、第2の大域的類似度算出部27は、第2のクエリベクトルと第2の参照ベクトルとを比較することにより、第2の大域的類似度を算出する。
第2のベクトル算出器としては、クエリ画像101及び参照画像111からベクトルを算出する任意の演算を用いることができる。第2実施形態では、第2のベクトル算出器として、クエリ画像101又は参照画像111を入力とし、第2のクエリベクトル又は第2の参照ベクトルを算出するニューラルネットワーク109-2を用いる。このニューラルネットワーク109-2のパラメータとしては、画像検索や物体認識、自己符号化などのタスクによってあらかじめ学習されたパラメータを用いてもよい。
第2の大域的類似度は、第2のクエリベクトルと第2の参照ベクトルとを比較することによって算出される。比較の基準としてベクトル間のユークリッド距離が用いられる。なお、比較の基準として、マハラノビス距離、ベクトルの内積、及び、ベクトルのなす角などが用いられてもよい。
第2の参照ベクトルはクエリ撮像条件に依らないため、あらかじめ算出しておき、データベース(記憶部20B)に格納しておくことができる。そこで第2実施形態では、特徴量算出部25は、第2の大域的類似度に基づいて参照画像を選択し、第1の大域的類似度及び局所的類似度を評価する。これにより、データベースに含まれる参照画像すべてに対して第1の大域的類似度を計算する必要がなくなるため、計算量を低減することができる。
さらに検索を効率化するために、参照画像111から算出された第2の参照ベクトルについて、KD(K-Dimensional)木などの構造、及び、LSH(Locality Sensitive Hashing)などのハッシュをあらかじめ計算しておき、あらかじめ算出された第2の参照ベクトルから、クエリ画像101と類似した参照画像を選択するようにしてもよい。この場合には、参照画像111の検索をより高速に行うことができる。
<ステップS204>
特徴量算出部25は、参照画像取得部23によって取得された参照画像から、第2の大域的類似度が高い参照画像111を選択し、選択された画像のみについて参照特徴量を算出する。第2の大域的類似度が高い参照画像111を選択するときには、第2の大域的類似度が大きい順に所定枚数を選択してもよいし、第2の大域的類似度があらかじめ設定された第2の画像比較閾値を超えている参照画像を選択してもよい。
特徴量算出部25は、参照画像取得部23によって取得された参照画像から、第2の大域的類似度が高い参照画像111を選択し、選択された画像のみについて参照特徴量を算出する。第2の大域的類似度が高い参照画像111を選択するときには、第2の大域的類似度が大きい順に所定枚数を選択してもよいし、第2の大域的類似度があらかじめ設定された第2の画像比較閾値を超えている参照画像を選択してもよい。
なお、選択された参照画像から参照特徴量を算出する処理については、第1実施形態のステップS103の処理と同様のため説明を省略する。
以上、説明したように、第2実施形態の推定装置20によれば、第2の大域的類似度により参照特徴量を算出する参照画像111を絞り込むことができるため、データベースに含まれる参照画像の枚数が多い場合にも、高速に自己位置推定を行うことが可能となる。
第2実施形態によれば、第1実施形態と同様に、クエリ撮像条件103及び参照撮像条件104において共通して含まれている特徴量を利用して自己位置推定を行うことにより、自己位置推定の精度を高めることが可能となる。
最後に、第1及び第2実施形態の推定装置20のハードウェア構成の例について説明する。
[ハードウェア構成の例]
図14は第1及び第2実施形態の推定装置20のハードウェア構成の例を示す図である。推定装置20は、制御装置301、主記憶装置302、補助記憶装置303、表示装置304、入力装置305及び通信装置306を備える。制御装置301、主記憶装置302、補助記憶装置303、表示装置304、入力装置305及び通信装置306は、バス310を介して接続されている。
図14は第1及び第2実施形態の推定装置20のハードウェア構成の例を示す図である。推定装置20は、制御装置301、主記憶装置302、補助記憶装置303、表示装置304、入力装置305及び通信装置306を備える。制御装置301、主記憶装置302、補助記憶装置303、表示装置304、入力装置305及び通信装置306は、バス310を介して接続されている。
なお、表示装置304、入力装置305及び通信装置306は備えていなくてもよい。例えば、推定装置20が他の装置と接続される場合、当該他の装置の表示機能、入力機能及び通信機能を利用してもよい。
制御装置301は補助記憶装置303から主記憶装置302に読み出されたプログラムを実行する。制御装置301は、例えばCPU等の1以上のプロセッサである。主記憶装置302はROM(Read Only Memory)、及び、RAM等のメモリである。補助記憶装置303はメモリカード、及び、HDD(Hard Disk Drive)等である。
表示装置304は情報を表示する。表示装置304は、例えば液晶ディスプレイである。入力装置305は、情報の入力を受け付ける。入力装置305は、例えばハードウェアキー等である。なお表示装置304及び入力装置305は、表示機能と入力機能とを兼ねる液晶タッチパネル等でもよい。通信装置306は他の装置と通信する。
推定装置20で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD-ROM、メモリカード、CD-R、及び、DVD(Digital Versatile Disc)等のコンピュータで読み取り可能な記憶媒体に記憶されてコンピュータ・プログラム・プロダクトとして提供される。
また推定装置20で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また推定装置20が実行するプログラムを、ダウンロードさせずにインターネット等のネットワーク経由で提供するように構成してもよい。
また推定装置20で実行されるプログラムを、ROM等に予め組み込んで提供するように構成してもよい。
推定装置20で実行されるプログラムは、推定装置20の機能のうち、プログラムにより実現可能な機能を含むモジュール構成となっている。
プログラムにより実現される機能は、制御装置301が補助記憶装置303等の記憶媒体からプログラムを読み出して実行することにより、主記憶装置302にロードされる。すなわちプログラムにより実現される機能は、主記憶装置302上に生成される。
なお推定装置20の機能の一部を、IC等のハードウェアにより実現してもよい。ICは、例えば専用の処理を実行するプロセッサである。
また複数のプロセッサを用いて各機能を実現する場合、各プロセッサは、各機能のうち1つを実現してもよいし、各機能のうち2つ以上を実現してもよい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
10 移動体
10A 出力部
10B カメラ
10C センサ
10D 通信部
10E ディスプレイ
10F スピーカ
10G 動力制御部
10H 動力部
10I バス
20 推定装置
20A 処理部
20B 記憶部
21 クエリ画像取得部
22 クエリ撮像条件取得部
23 参照画像取得部
24 参照撮像条件取得部
25 特徴量算出部
26 自己位置算出部
27 第2の大域的類似度算出部
301 制御装置
302 主記憶装置
303 補助記憶装置
304 表示装置
305 入力装置
306 通信装置
310 バス
10A 出力部
10B カメラ
10C センサ
10D 通信部
10E ディスプレイ
10F スピーカ
10G 動力制御部
10H 動力部
10I バス
20 推定装置
20A 処理部
20B 記憶部
21 クエリ画像取得部
22 クエリ撮像条件取得部
23 参照画像取得部
24 参照撮像条件取得部
25 特徴量算出部
26 自己位置算出部
27 第2の大域的類似度算出部
301 制御装置
302 主記憶装置
303 補助記憶装置
304 表示装置
305 入力装置
306 通信装置
310 バス
Claims (11)
- 第1の撮像装置により撮像された画像をクエリ画像として取得するクエリ画像取得部と、
前記クエリ画像の撮像条件を示すクエリ撮像条件を取得するクエリ撮像条件取得部と、
少なくとも1つの参照画像を取得する参照画像取得部と、
前記参照画像の撮像条件を示す参照撮像条件を取得する参照撮像条件取得部と、
前記参照撮像条件に基づいて、前記クエリ画像から前記クエリ画像の特徴量を示すクエリ特徴量を算出し、前記クエリ撮像条件に基づいて、前記参照画像から前記参照画像の特徴量を示す参照特徴量を算出する特徴量算出部と、
前記クエリ特徴量と前記参照特徴量とに基づいて、前記クエリ画像に前記参照画像を対応付け、前記クエリ画像に対応付けられた参照画像を撮像した第2の撮像装置の位置及び姿勢を利用して、前記第1の撮像装置の位置及び姿勢の少なくとも一方を示す自己位置を算出する自己位置算出部と、
を備える推定装置。 - 前記自己位置算出部は、前記クエリ特徴量と前記参照特徴量とに基づいて、前記クエリ画像と前記参照画像との類似度を示す第1の大域的類似度を算出し、前記第1の大域的類似度が第1の画像比較閾値より大きい参照画像を前記クエリ画像に対応付け、前記クエリ画像に対応付けられた参照画像を撮像した第2の撮像装置の位置及び姿勢を利用して、前記自己位置を算出する、
請求項1に記載の推定装置。 - 前記クエリ撮像条件と前記参照撮像条件とに依存しない特徴量に基づいて定められる前記クエリ画像と前記参照画像との第2の大域的類似度を算出する第2の大域的類似度算出部を更に備え、
前記自己位置算出部は、前記第2の大域的類似度が第2の画像比較閾値よりも大きい参照画像を対象にして、前記第1の大域的類似度を算出し、前記第1の大域的類似度が前記第1の画像比較閾値より大きい参照画像を前記クエリ画像に対応付け、前記クエリ画像に対応付けられた参照画像を撮像した第2の撮像装置の位置及び姿勢を利用して、前記自己位置を算出する、
請求項2に記載の推定装置。 - 前記自己位置算出部は、前記参照画像の画素と、前記クエリ画像の画素との類似度を示す局所的類似度を、前記クエリ特徴量と前記参照特徴量とに基づいて算出し、前記局所的類似度が画素比較閾値より大きい参照画像の画素を前記クエリ画像の画素に対応付け、対応付けられた画素から定まる幾何学的拘束条件を利用して、前記自己位置を算出する、
請求項1乃至3のいずれか1項に記載の推定装置。 - 前記クエリ撮像条件及び前記参照撮像条件は、撮像時の緯度、経度、日付、時刻、降水量及び降雪量の少なくとも1つを含む、
請求項1乃至4のいずれか1項に記載の推定装置。 - 前記クエリ撮像条件及び前記参照撮像条件を推定する学習器を更に備え、
前記クエリ撮像条件取得部は、前記学習器から前記クエリ撮像条件を取得し、前記参照撮像条件取得部は、前記学習器から前記参照撮像条件を取得する、
請求項1乃至5のいずれか1項に記載の推定装置。 - 前記学習器は、第1のニューラルネットワークにより実現され、前記第1のニューラルネットワークの出力層の出力、または、前記第1のニューラルネットワークの中間層の出力によって、前記クエリ撮像条件及び前記参照撮像条件を推定する、
請求項6に記載の推定装置。 - 前記特徴量算出部は、第2のニューラルネットワークにより実現される、
請求項1乃至7のいずれか1項に記載の推定装置。 - クエリ画像を撮像する第1の撮像装置と、
前記第1の撮像装置から前記クエリ画像を取得するクエリ画像取得部と、
前記クエリ画像の撮像条件を示すクエリ撮像条件を取得するクエリ撮像条件取得部と、
少なくとも1つの参照画像を取得する参照画像取得部と、
前記参照画像の撮像条件を示す参照撮像条件を取得する参照撮像条件取得部と、
前記参照撮像条件に基づいて、前記クエリ画像から前記クエリ画像の特徴量を示すクエリ特徴量を算出し、前記クエリ撮像条件に基づいて、前記参照画像から前記参照画像の特徴量を示す参照特徴量を算出する特徴量算出部と、
前記クエリ特徴量と前記参照特徴量とに基づいて、前記クエリ画像に前記参照画像を対応付け、前記クエリ画像に対応付けられた参照画像を撮像した第2の撮像装置の位置及び姿勢を利用して、前記第1の撮像装置の位置及び姿勢の少なくとも一方を示す自己位置を算出する自己位置算出部と、
前記自己位置に基づいて動力部を制御する動力制御部と、
を備える移動体。 - 推定装置が、第1の撮像装置により撮像された画像をクエリ画像として取得するステップと、
前記推定装置が、前記クエリ画像の撮像条件を示すクエリ撮像条件を取得するステップと、
前記推定装置が、少なくとも1つの参照画像を取得するステップと、
前記推定装置が、前記参照画像の撮像条件を示す参照撮像条件を取得するステップと、
前記推定装置が、前記参照撮像条件に基づいて、前記クエリ画像から前記クエリ画像の特徴量を示すクエリ特徴量を算出し、前記クエリ撮像条件に基づいて、前記参照画像から前記参照画像の特徴量を示す参照特徴量を算出するステップと、
前記推定装置が、前記クエリ特徴量と前記参照特徴量とに基づいて、前記クエリ画像に前記参照画像を対応付け、前記クエリ画像に対応付けられた参照画像を撮像した第2の撮像装置の位置及び姿勢を利用して、前記第1の撮像装置の位置及び姿勢の少なくとも一方を示す自己位置を算出するステップと、
を含む推定方法。 - コンピュータを、
第1の撮像装置により撮像された画像をクエリ画像として取得するクエリ画像取得部と、
前記クエリ画像の撮像条件を示すクエリ撮像条件を取得するクエリ撮像条件取得部と、
少なくとも1つの参照画像を取得する参照画像取得部と、
前記参照画像の撮像条件を示す参照撮像条件を取得する参照撮像条件取得部と、
前記参照撮像条件に基づいて、前記クエリ画像から前記クエリ画像の特徴量を示すクエリ特徴量を算出し、前記クエリ撮像条件に基づいて、前記参照画像から前記参照画像の特徴量を示す参照特徴量を算出する特徴量算出部と、
前記クエリ特徴量と前記参照特徴量とに基づいて、前記クエリ画像に前記参照画像を対応付け、前記クエリ画像に対応付けられた参照画像を撮像した第2の撮像装置の位置及び姿勢を利用して、前記第1の撮像装置の位置及び姿勢の少なくとも一方を示す自己位置を算出する自己位置算出部、
として機能させるためのプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020035838A JP7221897B2 (ja) | 2020-03-03 | 2020-03-03 | 推定装置、移動体、推定方法及びプログラム |
US17/000,605 US11775577B2 (en) | 2020-03-03 | 2020-08-24 | Estimation device, movable body, estimation method, and computer program product |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020035838A JP7221897B2 (ja) | 2020-03-03 | 2020-03-03 | 推定装置、移動体、推定方法及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2021140317A JP2021140317A (ja) | 2021-09-16 |
JP7221897B2 true JP7221897B2 (ja) | 2023-02-14 |
Family
ID=77555937
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020035838A Active JP7221897B2 (ja) | 2020-03-03 | 2020-03-03 | 推定装置、移動体、推定方法及びプログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US11775577B2 (ja) |
JP (1) | JP7221897B2 (ja) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018028489A (ja) | 2016-08-18 | 2018-02-22 | トヨタ自動車株式会社 | 位置推定装置、位置推定方法 |
JP6343670B2 (ja) | 2014-07-30 | 2018-06-13 | 株式会社日立製作所 | 自律移動装置及び自己位置推定方法 |
WO2019082670A1 (ja) | 2017-10-25 | 2019-05-02 | ソニー株式会社 | 情報処理装置、情報処理方法、プログラム、及び、移動体 |
US20200401617A1 (en) | 2019-06-21 | 2020-12-24 | White Raven Ltd | Visual positioning system |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110044256B (zh) * | 2018-01-16 | 2022-02-08 | 爱信精机株式会社 | 自车位置估计装置 |
JP7131994B2 (ja) | 2018-07-04 | 2022-09-06 | 株式会社東芝 | 自己位置推定装置、自己位置推定方法、自己位置推定プログラム、学習装置、学習方法及び学習プログラム |
-
2020
- 2020-03-03 JP JP2020035838A patent/JP7221897B2/ja active Active
- 2020-08-24 US US17/000,605 patent/US11775577B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6343670B2 (ja) | 2014-07-30 | 2018-06-13 | 株式会社日立製作所 | 自律移動装置及び自己位置推定方法 |
JP2018028489A (ja) | 2016-08-18 | 2018-02-22 | トヨタ自動車株式会社 | 位置推定装置、位置推定方法 |
WO2019082670A1 (ja) | 2017-10-25 | 2019-05-02 | ソニー株式会社 | 情報処理装置、情報処理方法、プログラム、及び、移動体 |
US20200263994A1 (en) | 2017-10-25 | 2020-08-20 | Sony Corporation | Information processing apparatus, information processing method, program, and moving body |
US20200401617A1 (en) | 2019-06-21 | 2020-12-24 | White Raven Ltd | Visual positioning system |
Also Published As
Publication number | Publication date |
---|---|
JP2021140317A (ja) | 2021-09-16 |
US11775577B2 (en) | 2023-10-03 |
US20210279908A1 (en) | 2021-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10546387B2 (en) | Pose determination with semantic segmentation | |
US11436743B2 (en) | Systems and methods for semi-supervised depth estimation according to an arbitrary camera | |
CN112567201B (zh) | 距离测量方法以及设备 | |
JP7252943B2 (ja) | 航空機のための対象物検出及び回避 | |
US11462023B2 (en) | Systems and methods for 3D object detection | |
JP7204326B2 (ja) | 情報処理装置及びその制御方法及びプログラム、並びに、車両の運転支援システム | |
CN109059906B (zh) | 车辆定位方法、装置、电子设备、存储介质 | |
US10949712B2 (en) | Information processing method and information processing device | |
WO2020113423A1 (zh) | 目标场景三维重建方法、***及无人机 | |
JP2020085886A (ja) | 乗物、乗物測位システム、及び乗物測位方法 | |
Cappelle et al. | Virtual 3D city model for navigation in urban areas | |
JP7131994B2 (ja) | 自己位置推定装置、自己位置推定方法、自己位置推定プログラム、学習装置、学習方法及び学習プログラム | |
JP2019125116A (ja) | 情報処理装置、情報処理方法、およびプログラム | |
CN113916243A (zh) | 目标场景区域的车辆定位方法、装置、设备和存储介质 | |
US11010592B2 (en) | System and method for lifting 3D representations from monocular images | |
US11144818B2 (en) | Network architecture for ego-motion estimation | |
WO2022062480A1 (zh) | 移动设备的定位方法和定位装置 | |
JP2019102007A (ja) | 勾配推定装置、勾配推定方法、プログラムおよび制御システム | |
US11652972B2 (en) | Systems and methods for self-supervised depth estimation according to an arbitrary camera | |
US20220196432A1 (en) | System and method for determining location and orientation of an object in a space | |
US10991155B2 (en) | Landmark location reconstruction in autonomous machine applications | |
Cabrera-Ponce et al. | Aerial geo-localisation for mavs using posenet | |
JP7337617B2 (ja) | 推定装置、推定方法及びプログラム | |
KR102249381B1 (ko) | 3차원 영상 정보를 이용한 모바일 디바이스의 공간 정보 생성 시스템 및 방법 | |
US20220058817A1 (en) | System and method for generating a point cloud that includes surface normal information |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220224 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20230104 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230202 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 7221897 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |