以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
なお、説明は以下の順序で行うものとする。
1.概略構成
2.自己位置推定に関する検討
3.技術的特徴
3.1.基本原理
3.2.機能構成
3.3.処理
3.4.変形例
4.ハードウェア構成
5.むすび
<<1.概略構成>>
まず、図1を参照して、本開示の一実施形態に係る情報処理システムの概略的なシステム構成の一例について説明する。図1は、本実施形態に係る情報処理システム概略的なシステム構成の一例を示した図である。
図1に示すように、本実施形態に係る情報処理システム1は、実空間上における位置や姿勢の推定の対象となる移動体300と、情報処理装置100とを含む。情報処理装置100と移動体300とは、例えば、所定のネットワークN1を介して互いに情報を送受信可能に構成されている。なお、情報処理装置100と移動体300とを接続するネットワークN1の種別は特に限定されない。具体的な一例として、当該ネットワークN1は、LTE、Wi−Fi(登録商標)等の規格に基づくネットワークのような、所謂無線のネットワークにより構成されていてもよい。また、当該ネットワークN1は、インターネット、専用線、LAN(Local Area Network)、または、WAN(Wide Area Network)等により構成されていてもよい。また、当該ネットワークN1は、複数のネットワークを含んでもよく、少なくとも一部が有線のネットワークとして構成されていてもよい。
移動体300は、前述したように、実空間上における位置や姿勢の推定の対象となる物体に相当する。移動体300の具体的な一例として、メガネ型のウェアラブルデバイスのようにユーザに装着されて使用される装置や、車両やドローン等のような移動体等が挙げられる。
移動体300は、所謂自己位置推定の技術に基づき、当該移動体300の実空間上における位置や姿勢の推定に利用する情報を取得するための各種デバイスを備える。例えば、図1に示すように、本実施形態に係る移動体300は、メイン撮像部303と、サブ撮像部305とを備える。図1において、参照符号L1は、メイン撮像部303の光軸を模式的に示している。また、参照符号L2は、サブ撮像部305の光軸を模式的に示している。また、参照符号301は、移動体300の筐体を模式的に示している。即ち、本実施形態に係る情報処理システム1においては、メイン撮像部303及びサブ撮像部305は、互いに異なる光軸を有するように、筐体301に保持される。なお、メイン撮像部303及びサブ撮像部305は、筐体301に対して互い異なる方向を撮像可能となるように当該筐体301に保持されるとより好ましい。換言すると、メイン撮像部303及びサブ撮像部305は、互いに実空間上の異なる領域を撮像可能となるように当該筐体301に保持されるとより好ましい。
移動体300は、メイン撮像部303及びサブ撮像部305それぞれにより撮像された画像(即ち、実空間のシーンが撮像された画像)を、ネットワークN1を介して情報処理装置100に送信する。
情報処理装置100は、例えば、サーバ等として構成され得る。情報処理装置100は、メイン撮像部303及びサブ撮像部305それぞれにより撮像された画像を、移動体300からネットワークN1を介して取得し、取得した当該画像に基づき当該移動体300の実空間上における位置や姿勢を推定する。具体的な一例として、情報処理装置100は、所謂自己位置推定の技術に基づき、移動体300の実空間上における位置や姿勢を推定する。より具体的には、情報処理装置100は、取得した画像に対して画像解析を施すことで当該画像から特徴点や特徴量を抽出する。そして、情報処理装置100は、当該特徴点や当該特徴量の抽出結果を、実空間上における位置や姿勢に応じて過去に取得された特徴点や特徴量と比較することで、移動体300の実空間上における位置や姿勢を推定する。なお、情報処理装置100の動作の詳細については別途後述する。
以上、図1を参照して、本開示の一実施形態に係る情報処理システムの概略的なシステム構成の一例について説明した。なお、上述した構成はあくまで一例であり、本実施形態に係る情報処理システム1のシステム構成は、必ずしも図1に示す例のみには限定されない。具体的な一例として、移動体300と情報処理装置100とが一体的に構成されていてもよい。
<<2.自己位置推定に関する検討>>
続いて、本実施形態に係る情報処理システムの特徴をよりわかりやすくするために、自己位置推定の手法の一例と、当該推定結果のローカライズと、について概要について説明したうえで、本実施形態に係る情報処理システムの課題について整理する。
まず、撮像部により撮像された画像を入力とする自己位置推定の概要について説明する。画像を入力とする自己位置推定においては、例えば、撮像部により撮像された画像からの特徴点の抽出や、当該特徴点における特徴量の抽出が行われる。そして、当該特徴点や当該特徴量の抽出結果と、実空間上における位置や姿勢に応じて過去に取得された特徴点や特徴量に関する情報(例えば、データベースに蓄積された情報)と、を2次元的または3次元的に比較することで、撮像部の実空間上における位置や姿勢が推定される。また、当該推定には、例えば、RANSAC(Random sample consensus)フレームワークを用いたPNPアルゴリズム等が利用されてもよい。
なお、以降では、撮像部等のような対象となる物体の実空間上における位置や姿勢を示す情報を、「姿勢パラメータ」とも称する。具体的には、姿勢パラメータは、位置の3自由度を示す情報と、回転の3自由度を示す情報と、の計6自由度を示す情報により表現することが可能である。なお、位置の3自由度を示す情報としては、例えば、縦、横、及び高さをx、y、zの座標系で表した情報が挙げられる。また、回転の3自由度を示す情報としては、ロール、ピッチ、及びヨー等の回転角を、φ、θ、ψ等の回転座標系で表した情報や、回転行列等のような物体の回転や姿勢を表す情報(パラメータ)等が挙げられる。
上述したような自己位置推定の技術は、例えば、車両等のような移動体の自律走行、UAV(unmanned aerial vehicle)やMAV(micro aerial vehicle)等のような所謂ドローンの自律飛行、ロボットの自律行動、AR(Augmented Reality)やVR(Virtual Reality)における仮想情報の提示等のような、様々な分野での応用が期待されている。
次いで、図2を参照して、自己位置推定を利用した技術の一例として、SLAM(simultaneous localization and mapping)と称される技術について説明する。
SLAMとは、カメラ等のような撮像部、各種センサ、エンコーダ等を利用することにより、自己位置推定と環境地図の作成とを並行して行う技術である。より具体的な一例として、SLAM(特に、Visual SLAM)では、撮像部により撮像された動画像に基づき、撮像されたシーン(または、被写体)の3次元形状を逐次的に復元する。そして、撮像されたシーンの復元結果を、撮像部の位置及び姿勢の検出結果と関連付けることで、周囲の環境の地図の作成と、当該環境における撮像部(ひいては、移動体300)の位置及び姿勢の推定とが行われる。なお、撮像部の位置及び姿勢については、例えば、当該撮像部が保持された筐体(例えば、移動体300の筐体)に加速度センサや角速度センサ等の各種センサを設けることで、当該センサの検出結果に基づき相対的な変化を示す情報として推定することが可能である。もちろん、撮像部の位置及び姿勢を推定可能であれば、その方法は、必ずしも加速度センサや角速度センサ等の各種センサの検知結果に基づく方法のみには限定されない。
例えば、図2は、自己位置推定の手法の一例について説明するための説明図であり、SLAMによる撮像部の実空間上における位置や姿勢の推定結果の一例を示している。図2において、参照符号C10〜C15で示したマーカは、撮像部(ひいては、移動体300)の実空間上における位置及び姿勢の時系列に沿った変化を模式的に示している。即ち、図2に示す例では、撮像部の位置及び姿勢が、マーカC10〜C15の順に、時系列に沿って順次遷移した場合について示している。また、参照符号D10〜D15で示したマーカは、SLAMに基づく撮像部の実空間上における位置及び姿勢の推定結果を模式的に示しており、マーカC10〜C15にそれぞれ対応している。具体的な一例として、マーカD11は、撮像部の位置及び姿勢がマーカC11で示した状態における、当該撮像部の位置及び姿勢の推定結果を示している。
SLAMにおいては、所望のタイミングで撮像部の位置及び姿勢が実空間上の絶対位置として推定されれば、以降における当該撮像部の位置及び姿勢については、例えば、各種センサの検出結果に基づき相対的な変化を示す情報を逐次取得することで推定することが可能である。具体的な一例として、図2に示す例の場合には、撮像部の位置及び姿勢の推定結果D10が実空間上の絶対位置として推定されれば、推定結果D11〜D15については、当該推定結果D10とを基点として、各種センサの検出結果に基づく撮像部の実空間上における位置及び姿勢の相対的な変化を示す情報を利用することで推定することが可能である。
一方で、SLAM等のように、撮像部の位置及び姿勢の相対的な変化を逐次取得することで、実空間上における撮像部の位置及び姿勢(即ち、絶対位置)を間接的に推定するような手法においては、所謂ローカライズと呼ばれる処理が重要となる。なお、本開示において、ローカライズとは、例えば、撮像部により撮像された画像に基づく自己位置推定により、当該撮像部の実空間上の位置や姿勢を絶対位置として推定(または再推定)する処理を示している。
以下に、図3及び図4を参照して、ローカライズの概要について説明する。図3及び図4は、ローカライズの概要について説明するための説明図である。
例えば、図3は、撮像部の位置や姿勢の相対的な変化のトラッキングに失敗した場合の一例を示している。具体的には、図3に示す例では、マーカC12とマーカC13との間のタイミングにおいて、撮像部の位置や姿勢の相対的な変化の検出に失敗し、マーカC13以降において、当該撮像部の位置や姿勢のトラッキングが困難となった状態を示している。例えば、参照符号D20〜D22で示したマーカは、SLAMに基づく撮像部の実空間上における位置及び姿勢の推定結果を模式的に示しており、マーカC10〜C12にそれぞれ対応している。即ち、図3に示す例では、マーカC12とマーカC13と間における、撮像部の位置や姿勢の相対的な変化が不明となり、マーカC13以降において、当該撮像部の実空間上における位置や姿勢の推定が実質的に困難となる。
このような場合には、例えば、ローカライズにより、撮像部の実空間上における位置や姿勢(即ち、姿勢パラメータ)の推定を改めて行うことで、当該撮像部の位置や姿勢のトラッキングを再開することが可能となる。例えば、図3に示す例では、マーカC15に対応するタイミングにおいてローカライズ処理が行われ、撮像部の実空間上における位置や姿勢が絶対位置として再度推定されている。参照符号D25で示したマーカは、当該ローカライズ処理に基づく撮像部の実空間上における位置及び姿勢の再推定の結果を模式的に示している。即ち、図3に示す例においては、マーカC15に対応するタイミングにおける推定結果D25を利用することで、当該マーカC15以降において、撮像部の位置や姿勢のトラッキングを再開することが可能となる。
また、図4は、撮像部の位置や姿勢の相対的な変化の推定結果と、実際の撮像部の位置や姿勢の相対的な変化と、の間に誤差が生じた場合の一例を示している。具体的には、図4に示す例では、マーカC11〜C14それぞれに対応するタイミングにおいて、撮像部の位置や姿勢の相対的な変化の推定結果と、実際の撮像部の位置や姿勢の相対的な変化と、の間に誤差が生じている。このように各タイミングで生じた誤差は、累積誤差として逐次蓄積されることとなる。このような特性から、撮像部の位置や姿勢の相対的な変化のトラッキングが継続される限り、累積誤差が比例して増大する傾向にある。例えば、参照符号D30〜D34で示したマーカは、SLAMに基づく撮像部の実空間上における位置及び姿勢の推定結果を模式的に示しており、マーカC10〜C14にそれぞれ対応している。即ち、図4に示す例では、蓄積誤差の増大に伴い、マーカC14に対応するタイミングにおいて、撮像部の実空間上における位置及び姿勢の推定結果D34と、当該撮像部の実際の実空間上における位置及び姿勢(即ち、マーカC14が示す位置及び姿勢)と、の間の誤差がより大きくなっている。
このような場合においても、例えば、ローカライズにより、撮像部の実空間上における位置や姿勢(即ち、姿勢パラメータ)の推定を改めて行うことで、蓄積された累積誤差を解消することが可能となる。例えば、図4に示す例では、マーカC15に対応するタイミングにおいて、ローカライズ処理が行われ、撮像部の実空間上における位置や姿勢が絶対位置として再度推定されている。参照符号D35で示したマーカは、当該ローカライズ処理に基づく撮像部の実空間上における位置及び姿勢の再推定の結果を模式的に示している。即ち、図4に示す例においては、マーカC15に対応するタイミングにおける推定結果D35により、マーカC11〜C14間で蓄積された累積誤差を解消することが可能となる。
一方で、ローカライズ処理のように、撮像部により撮像された画像に基づく自己位置推定により、当該撮像部の実空間上における位置や姿勢を絶対位置として推定(または再推定)する場合においても、当該推定結果に誤差が生じる場合がある。
例えば、実空間上における位置や姿勢が互いに異なる場合においても、視覚的に類似するシーンが撮像部により画像として撮像される場合がある。より具体的な一例として、床、舗装道路、天井、及び建物の壁面等に相当する部分が被写体として撮像される状況下では、所定のパターンが繰り返し出現するようなシーンが画像として撮像される場合がある。このような繰り返しパターンが出現するシーンが撮像される状況下では、実空間上における位置や姿勢が互いに異なる場合においても、視覚的に類似するシーンが撮像される場合がある。また、繰り返しパターンが出現するシーンに限らず、実空間上における位置や姿勢が互いに異なる状況下において、視覚的に類似するシーンが画像として撮像される場合がある。このような場合には、自己位置推定の精度が低下し、ひいては、対象となる物体(例えば、撮像部や当該撮像部が保持された移動体)の実空間上における位置や姿勢が誤って推定されるような状況も想定される。
このような視覚的に類似するシーンが撮像されるような状況下においても、各シーンが撮像された実空間上の位置や姿勢が空間的に大きく離間している場合には、例えば、RFタグやGPS(Global Positioning System)等のような他の検出手段を利用することで、姿勢パラメータの誤推定を防止することが可能である。しかしながら、床、舗装道路、天井、及び建物の壁面等においては、繰り返しパターンが比較的狭い空間に集中している場合があり、このような場合には、RFタグやGPS等を利用したとしても、姿勢パラメータの誤推定を検出する(即ち、姿勢パラメータの誤推定を防止する)ことが困難である。
また、他の方法として、デプスセンサ等を利用した物体の形状のマッチングにより、姿勢パラメータの推定結果の妥当性を判定することで、当該姿勢パラメータの誤推定を防止することが可能な場合もある。しかしながら、繰り返しパターンは2次元的な模様等によるものに限らず、例えば、3次元的な形状等によるものも想定され得る。このように、3次元的な形状の繰り返しパターンが出現するような状況下では、デプスセンサ等を利用した物体の形状のマッチングを行ったとしても、姿勢パラメータの妥当性を判定する(即ち、姿勢パラメータの誤推定を防止する)ことが困難である。
このような状況を鑑み、本時開示では、撮像部や、当該撮像部が保持された移動体等のような、対象となる物体の実空間上における位置や姿勢(即ち、姿勢パラメータ)の推定に係る精度をより向上させ、ひいては、当該位置や当該姿勢の誤推定を防止することが可能な技術の一例について提案する。
<<3.技術的特徴>>
以下に、本開示の一実施形態に係る情報処理システムの技術的特徴について説明する。
<3.1.基本原理>
まず、本実施形態に係る情報処理システムにおける、対象となる物体(例えば、移動体)の姿勢パラメータの推定に係る処理(換言すると、自己位置推定に係る処理)の基本原理について以下に説明する。
図1を参照して説明したように、本実施形態に係る情報処理システム1においては、姿勢パラメータの推定の対象となる物体(即ち、移動体300)に対して、複数の撮像部(即ち、メイン撮像部303及びサブ撮像部305)が、互いに異なる光軸(即ち、光軸L1及びL2)を有するように保持される。このとき、メイン撮像部303とサブ撮像部305との間の相対的な位置関係については、例えば、オフセット情報としてあらかじめ算出しておくことで既知の情報として扱うことが可能である。
なお、メイン撮像部303とサブ撮像部305とのそれぞれは、実空間の画像を撮像することが可能であれば、その構成は特に限定されない。具体的な一例として、メイン撮像部303とサブ撮像部305とのそれぞれは、単眼カメラとして構成されていてもよいし、ステレオカメラとして構成されていてもよい。また、メイン撮像部303とサブ撮像部305とが異なる構成を有していてもよい。なお、以降の説明では、本実施形態に係る情報処理システム1の技術的特徴をよりわかりやすくするために、メイン撮像部303及びサブ撮像部305は同様の構成を有するものとする。
(登録処理)
まず、図5を参照して、ローカライズ等における姿勢パラメータの推定時に、撮像部により撮像された画像から抽出された特徴量との比較対象となるデータを登録する処理の一例について説明する。図5は、本実施形態に係る情報処理システムにおける姿勢パラメータの推定に利用するデータを登録する処理の一例について説明するための説明図である。なお、図5において、参照符号Piは、実空間上において形状、色彩、及び明暗等のような視覚的に識別可能な特徴を示す部分に相当し、以降では「ランドマーク」とも称する。即ち、ランドマークPiは、撮像部により撮像された画像中から特徴点として抽出される部分に相当する。
図5に示すように、登録処理時には、登録対象となる空間(即ち、実空間)中において、移動体300を移動させながら、SLAM等により当該移動体300の自己位置推定が行われる。例えば、図5において、参照符号Kn−1、Kn、Kn+1のそれぞれは、移動体300の実空間上における位置及び姿勢の時系列に沿った変化を模式的に示している。即ち、図5に示す例では、移動体300の位置及び姿勢が、Kn−1、Kn、Kn+1の順に、時系列に沿って順次変化した場合について示している。
また、移動体300の自己位置推定とあわせて、各位置及び姿勢に応じて、移動体300に保持された撮像部により、当該移動体300の周囲の空間(即ち、実空間)の画像が撮像される。そして、撮像された画像に対して画像解析処理が施されることで、当該画像中に撮像されたランドマークPiの実空間上における位置が推定(算出)される。なお、このとき、ステレオカメラや測距センサ等を利用したデプスセンシングの結果が、ランドマークPiの実空間上における位置の推定に利用されてもよい。
なお、前述したように、本実施形態に係る情報処理システム1においては、移動体300に対してメイン撮像部303とサブ撮像部305とが保持されている。そのため、移動体300の自己位置推定とあわせて、メイン撮像部303及びサブ撮像部305それぞれにより撮像された画像に基づき、当該画像中に撮像された各ランドマークPiの実空間上における位置が推定(算出)される。
また、メイン撮像部303及びサブ撮像部305それぞれにより撮像された画像に基づき、当該画像中に撮像された各ランドマークPiそれぞれについて、当該各ランドマークPiを含む当該画像中の部分領域(即ち、ランドマークPiの近傍の領域)の局所特徴量が抽出(算出)される。
ここで、図6を参照して、メイン撮像部303及びサブ撮像部305それぞれにより撮像された画像に基づき、当該画像中に撮像されたランドマークPiの近傍の領域の局所特徴量の抽出に係る処理について説明する。図6は、メイン撮像部303及びサブ撮像部305それぞれにより撮像された画像から取得される情報の一例について説明するための説明図である。なお、以降の説明においては、メイン撮像部303に撮像された画像を「メイン画像」とも称し、サブ撮像部305により撮像された画像を「サブ画像」とも称する。
図6において、参照符号Piは、画像中に撮像されたランドマークを示している。また、参照符号Qiは、画像中におけるランドマークPi近傍の部分領域に相当する。即ち、部分領域Qiは、ランドマークPiごとに、画像中において当該ランドマークPiを含む部分領域として設定される。
具体的には、本実施形態に係る情報処理システム1では、撮像されたメイン画像及びサブ画像それぞれに対して画像解析処理が施されることで、各画像から、当該画像中に撮像されたランドマークPiが特徴点として抽出される。そして、当該特徴点それぞれに対して所定の広さの部分領域Qiが設定され、設定された部分領域Qiそれぞれについて、当該部分領域Qi中の特徴量(例えば、形状、色彩、及び明暗等のような特徴)が局所特徴量として抽出される。なお、後述する姿勢パラメータの推定部101と検証部103とで異なる局所特徴量を使用する場合には、例えば、ひとつの特徴点(即ち、ランドマーク)に対し、複数の局所特徴量が抽出されてもよい。
以上のようにして、移動体300を移動させながら、当該移動体300の自己位置推定、メイン画像及びサブ画像それぞれに撮像されたランドマークPiの実空間上における位置の推定、及び、各ランドマークPiに対応する局所特徴量の抽出のそれぞれが逐次行われる。そして、移動体300の位置及び姿勢ごとに推定または算出される各情報が一連のデータとして関連付けられて、所定の記憶領域(例えば、データベース等)にキーフレームとして登録(記録)される。
例えば、図7は、キーフレームとして登録される情報の一例を示した図である。具体的には、図7に示す例では、メイン撮像部303に対応する情報と、サブ撮像部305に対応する情報と、がキーフレームとして登録される。
メイン撮像部303に対応する情報には、例えば、当該メイン撮像部303の位置及び姿勢(即ち、姿勢パラメータ)の推定結果と、メイン画像に撮像されたランドマークPiの実空間上における位置の推定結果と、各ランドマークPiに対応する局所特徴量の抽出結果と、が含まれる。メイン撮像部303の姿勢パラメータについては、例えば、移動体300の自己位置推定の結果として取得される。また、メイン画像中に複数のランドマークPiが撮像される場合がある。そのため、各ランドマークPiについて、当該ランドマークPiの実空間上における位置の推定結果と、当該ランドマークPiに対応する局所特徴量の抽出結果と、が登録されることとなる。
サブ撮像部305に対応する情報には、例えば、サブ画像に撮像されたランドマークPiの実空間上における位置の推定結果と、各ランドマークPiに対応する局所特徴量の抽出結果と、が含まれる。なお、サブ撮像部305の実空間上に位置及び姿勢については、メイン撮像部303の位置及び姿勢の推定結果と、当該メイン撮像部303と当該サブ撮像部305との間の相対的な位置関係と、に基づき算出することが可能である。また、メイン撮像部303とサブ撮像部305との間の相対的な位置関係については、前述したように、オフセット情報としてあらかじめ算出しておくことで、既知の情報として取り扱うことが可能である。
このように、キーフレームとして、メイン撮像部303(ひいては、移動体300)の位置及び姿勢ごとに、メイン画像及びサブ画像それぞれに撮像されたランドマークPiの実空間上における位置の推定結果と、各ランドマークPiに対応する局所特徴量の抽出結果と、が登録されることとなる。以上のようにしてキーフレームとして登録された各情報は、ローカライズ等における姿勢パラメータの推定時に、撮像部により撮像された画像から抽出された特徴量との比較対象となるデータとして利用されることとなる。
(ローカライズ処理)
続いて、本実施形態に係る情報処理システム1におけるローカライズ等における姿勢パラメータの推定に係る処理について説明する。なお、以降の説明では、便宜上、ローカライズ等の契機においてメイン撮像部303及びサブ撮像部305により撮像される各画像(即ち、メイン画像及びサブ画像)を「クエリ画像」とも称し、キーフレームとしてあらかじめ登録された情報(換言すると、過去に取得された情報)の取得元となる各画像を「キーフレーム画像」とも称する。また、本説明では、図1に示した情報処理装置100が、ローカライズ等における姿勢パラメータの推定に係る処理を実行するものとする。
本実施形態に係る情報処理システム1では、まず、情報処理装置100は、メイン画像について、クエリ画像とキーフレーム画像との間で、当該各画像から抽出される局所特徴量のマッチングを行うことで、メイン撮像部303(ひいては、移動体300)の姿勢パラメータの推定を行う。
例えば、図8は、姿勢パラメータの推定に係る処理の概要について説明するための説明図であり、クエリ画像及びキーフレーム画像それぞれからの特徴点の抽出結果と、当該特徴点に対応する部分領域Qiの設定結果と、の一例を示している。
具体的には、図8は、クエリ画像とキーフレーム画像との間で、メイン撮像部303(ひいては、移動体300)の位置及び姿勢(即ち、姿勢パラメータ)が略一致している場合の一例を示している。このような場合には、クエリ画像の少なくとも一部には、キーフレーム画像の少なくとも一部に撮像されたランドマークPiと実質的に同じランドマークPiが撮像されることとなる。例えば、図8に示す例では、クエリ画像及びキーフレーム画像間において破線により互いに対応付けられた部分領域Qiに対応するランドマークPiは、実空間上における同じ位置を示しており、このとき対応する部分領域Qi間の局所特徴量は略一致することとなる。
このような特性を利用し、情報処理装置100は、クエリ画像が撮像されたときのメイン撮像部303(ひいては、移動体300)の姿勢パラメータを推定する。具体的には、情報処理装置100は、クエリ画像から抽出される特徴量に関する情報(即ち、ランドマークPiに関する情報や、当該ランドマークPiに対応する局所特徴量に関する情報)と略一致する情報を含むキーフレームを検索する。そして、情報処理装置100は、検索されたキーフレームに含まれるメイン撮像部303の姿勢パラメータに基づいて、クエリ画像が撮像されたときのメイン撮像部303の姿勢パラメータを推定する。なお、クエリ画像とキーフレーム画像との間での局所特徴量のマッチングに伴う姿勢パラメータの推定に係る処理のより詳細については別途後述する。
一方で、前述したように、実空間上における位置や姿勢が互いに異なる場合においても、視覚的に類似するシーンが画像として撮像される場合がある。このような場合においては、メイン撮像部303の姿勢パラメータの推定に係る精度が低下し、ひいては、当該姿勢パラメータが誤って推定される場合もある。このような状況を鑑み、本実施形態に係る情報処理システム1では、サブ撮像部305により撮像されたサブ画像を利用することで、姿勢パラメータの推定に係る精度をより向上させ、当該姿勢パラメータの誤推定を防止する。
例えば、図9〜図12は、本実施形態に係る情報処理システム1における姿勢パラメータの推定に係る処理の基本原理について説明するための説明図である。
図9に示す例では、クエリ画像とキーフレーム画像とが互いに異なる位置で撮像された場合において、メイン画像として相互に類似するシーンが撮像された場合の一例を示している。このような状況下では、各メイン画像から抽出される特徴量が略一致し、当該メイン画像による推定のみでは、メイン撮像部303の姿勢パラメータが誤って推定される場合もある。
一方で、サブ撮像部305は、メイン撮像部303とは異なる光軸を有するように保持されており、当該メイン撮像部303とは異なるシーン(換言すると、実空間上の異なる領域)を撮像することとなる。そのため、図9に示すように、クエリ画像及びキーフレーム画像として撮像されたメイン画像間が相互に類似するような状況下においても、クエリ画像及びキーフレーム画像として撮像されたサブ画像間については非類似となる場合がある。
以上のような特性を利用し、本実施形態に係る情報処理システム1では、メイン画像に基づくメイン撮像部303(ひいては、移動体300)の姿勢パラメータの推定結果を、対応するサブ画像を利用することで検証する。具体的には、図10に示すように、クエリ画像及びキーフレーム画像として撮像されたサブ画像それぞれから抽出される特徴量のマッチングを行うことで、メイン画像に基づく姿勢パラメータの推定結果の確からしさを検証する。
なお、以降の説明では、便宜上、キーフレーム画像として撮像されるメイン画像及びサブ画像を明示的に区別するために、当該メイン画像を「キーフレームメイン画像」とも称し、当該サブ画像を「キーフレームサブ画像」とも称する。同様に、クエリ画像として撮像されるメイン画像及びサブ画像を明示的に区別するために、当該メイン画像を「クエリメイン画像」とも称し、当該サブ画像を「クエリサブ画像」とも称する。
例えば、図11は、本実施形態に係る情報処理システム1における、姿勢パラメータの推定結果の検証に係る処理の概要について説明するための説明図である。具体的には、クエリ画像とキーフレーム画像とのそれぞれが撮像されたときの姿勢パラメータが略一致する場合には、キーフレームサブ画像及びクエリサブ画像間についても各画像から抽出される局所特徴量が略一致することとなる。即ち、このような場合には、クエリサブ画像の少なくとも一部には、キーフレームサブ画像の少なくとも一部に撮像されたランドマークPiと実質的に同じランドマークPiが撮像されることとなる。
そのため、情報処理装置100は、まず、キーフレームとして記録された、キーフレームサブ画像中から抽出されたランドマークPiに関する情報と、クエリメイン画像とキーフレームメイン画像とによって推定された姿勢パラメータと、に基づき、当該ランドマークPiそれぞれを、クエリサブ画像に投影する。次いで、情報処理装置100は、各ランドマークPiが投影されたクエリサブ画像中の点それぞれについて、当該点を含む部分領域の局所特徴量を抽出(算出)する。例えば、図11において、参照符号Riで示された領域は、ランドマークPiが投影された点を含む部分領域を示している。そして、情報処理装置100は、クエリサブ画像中に投影された点それぞれについて算出した局所特徴量(即ち、各部分領域Riの局所特徴量)と、キーフレームとして記録された当該点の投影元となるランドマークPiに対応する局所特徴量(即ち、各部分領域Qiの局所特徴量)と、の間でマッチングを行う。そして、情報処理装置100は、当該マッチングの結果に基づき、インライアとなる点の数が閾値以上であれば、メイン画像に基づく姿勢パラメータの推定結果(即ち、ローカライズの結果)は正しいものと判定する。
以上をまとめると、情報処理装置100は、サブ撮像部305により撮像されるサブ画像から抽出される特徴量と、キーフレームとして登録された情報に含まれるサブ画像から抽出された特徴量と、を比較することで移動体300の位置及び姿勢を推定する。即ち、図12に示すように、情報処理装置100は、キーフレームサブ画像及びクエリサブ画像間においてそれぞれから抽出される特徴量が略一致する場合に、移動体300の位置及び姿勢の推定結果(即ち、推定カメラ位置)が、当該移動体300の実際の位置及び姿勢(即ち、真のカメラ位置)と略一致するものと認識する。
以上のような構成により、本実施形態に係る情報処理システム1においては、移動体300の実空間上における位置や姿勢(即ち、姿勢パラメータ)の推定に係る精度をより向上させることが可能となり、ひいては、当該位置や当該姿勢の誤推定を防止することが可能となる。
以上、図5〜図12を参照して、本実施形態に係る情報処理システムにおける、対象となる物体(例えば、移動体)の姿勢パラメータの推定(換言すると、自己位置推定)に係る処理の基本原理について以下に説明した。
<3.2.機能構成>
続いて、図13を参照して、本実施形態に係る情報処理システム1の機能構成の一例について、特に、ローカライズ等における姿勢パラメータの推定に係る機能に着目して説明する。図13は、本実施形態に係る情報処理システム1の機能構成の一例を示したブロック図である。なお、本説明においては、情報処理システム1は、図1に示すようなシステム構成を有し、移動体300の位置や姿勢を推定するものとする。
図13に示すように、本実施形態に係る情報処理システム1は、情報処理装置100と、移動体300と、記憶部150とを含む。なお、図13に示す情報処理装置100及び移動体300は、図1に示す情報処理装置100及び移動体300に対応している。即ち、移動体300は、メイン撮像部303と、サブ撮像部305とを含む。なお、メイン撮像部303及びサブ撮像部305については前述したため、詳細な説明は省略する。
記憶部150は、各種データを、一時的または恒常的に記憶するための記憶領域である。例えば、記憶部150には、前述した登録処理により取得されたキーフレームそれぞれに対応するデータが記憶されてもよい。また、記憶部150は、記憶された各種データをそれぞれ個別に読み出し可能に構成されている。記憶部150は、例えば、データベースとして構成されていてもよい。
次いで、情報処理装置100の構成について説明する。図13に示すように、情報処理装置100は、推定部101と、検証部103とを含む。
推定部101は、移動体300に保持されたメイン撮像部303により撮像された画像(即ち、メイン画像)を、当該移動体300(または、当該メイン撮像部303)から取得する。なお、当該画像が、クエリメイン画像に相当する。
推定部101は、取得したクエリメイン画像に対して画像解析を施すことで、当該クエリメイン画像に撮像されたランドマークPiに対応する位置を特徴点として抽出する。なお、特徴点の抽出を行うためのアルゴリズムとしては、例えば、Harris corner detector、FAST corner detector、及びDifference of Gaussian等が挙げられる。
次いで、推定部101は、クエリメイン画像から抽出した特徴点それぞれについて、当該特徴点を含む所定の広さの部分領域Qiを設定し、当該部分領域Qiにおける局所特徴量を抽出(算出)したうえで、当該局所特徴量の抽出結果を当該部分領域Qiに関連付ける。なお、局所特徴量の抽出を行うためのアルゴリズムとしては、例えば、SIFT、BRISK、及びORB等が挙げられる。
次いで、推定部101は、クエリメイン画像から抽出した特徴量(即ち、各ランドマークPiについて設定された部分領域Qiそれぞれ対応する局所特徴量)と類似する情報が、キーフレームメイン画像の情報として含まれるキーフレームを、記憶部150に記憶されたキーフレームの中から検索して抽出する。
より具体的な一例として、推定部101は、クエリメイン画像から抽出した局所特徴量のそれぞれと、各キーフレームに含まれるキーフレームメイン画像から抽出された局所特徴量のそれぞれと、の間でマッチングを行う。そして、推定部101は、局所特徴量の類似度が閾値以上を示すペアをカウントしてスコアとし、当該スコアの算出結果に基づきキーフレームを抽出してもよい。また、他の一例として、推定部101は、局所特徴量から作成されるBag of Words特徴量の類似度をスコアとすることで、当該スコアの算出結果に基づきキーフレームを抽出してもよい。
そして、推定部101は、クエリメイン画像から抽出した特徴量と、抽出した各キーフレームにキーフレームメイン画像の情報として含まれる特徴量と、の間でマッチングを行うことで、メイン撮像部303(ひいては、移動体300)の姿勢パラメータを推定する。なお、各キーフレームに対して、2次元的な特徴量情報と、その特徴量に対応するランドマーク情報が保存されている。そのため、クエリメイン画像から得られる2次元的な特徴量と、キーフレームが持つ2次元的な特徴量と、をマッチングすることで、クエリメイン画像の2次元的な特徴量と、キーフレームが持つ3次元情報としてのランドマークと、のマッチング(即ち、2D−3Dマッチング)を行うことが可能となる。なお、2D−3Dマッチングにより姿勢パラメータを推定する手法としては、例えば、RANSACフレームワークを用いたPNPアルゴリズムに基づく手法が挙げられる。
また、推定部101は、記憶部150に記憶されたキーフレームの中から、クエリメイン画像から抽出した特徴量との類似度がより高い情報を含む上位N個(Nは任意の自然数)のキーフレームを抽出してもよい。N個のキーフレームが姿勢パラメータの推定に利用される場合には、N個の推定結果が得られることとなる。なお、複数の推定結果が得られた場合においても、後述する検証部103による検証により、最も確からしい推定結果を選択することも可能である。
そして、推定部101は、メイン撮像部303の姿勢パラメータの推定結果を検証部103に出力する。なお、記憶部150に記憶された全てのキーフレームについてマッチング行われたうえで、なお姿勢パラメータの推定に失敗した場合には、後述する検証部103による検証は行われず、姿勢パラメータの推定の失敗を示す情報が出力されることとなる。
検証部103は、移動体300に保持されたサブ撮像部305により撮像された画像(即ち、サブ画像)を、当該移動体300(または、当該サブ撮像部305)から取得する。なお、当該画像が、クエリサブ画像に相当する。また、検証部103は、メイン撮像部303の姿勢パラメータの推定結果を推定部101から取得する。そして、検証部103は、取得した当該姿勢パラメータの推定結果の確からしさを、取得したクエリサブ画像を利用して検証する。以下に、当該検証に係る処理の一例について、より詳細に説明する。
まず、検証部103は、取得した姿勢パラメータの推定結果に対応するキーフレームに含まれる、キーフレームサブ画像から抽出されたランドマークPiに関する情報と、取得した姿勢パラメータと、に基づき、当該ランドマークPiそれぞれを取得したクエリサブ画像に投影する。なお、以降では、クエリサブ画像に対して、キーフレームサブ画像から抽出されたランドマークPiが投影された点を「投影点」とも称する。
次いで、検証部103は、クエリサブ画像中の投影点それぞれについて、当該投影点を含む部分領域Riの局所特徴量を抽出(算出)する。また、検証部103は、クエリサブ画像中の投影点それぞれについて算出した局所特徴量と、姿勢パラメータの推定結果に対応するキーフレームに含まれる、当該投影点の投影元となるランドマークPiに対応する局所特徴量と、の類似度を算出する。そして、検証部103は、各ランドマークPiが投影されたクエリサブ画像中の各投影点のうち、局所特徴量の類似度が閾値以上のものをインライアとしてカウントする。なお、当該処理に用いられる特徴量及び類似度としては、例えば、画像の輝度そのものを特徴量とするSADスコアやNCCスコア等が挙げられる。
また、このとき検証部103は、メイン撮像部303の姿勢パラメータの推定結果に応じて、クエリサブ画像及びキーフレームサブ画像のうち少なくともいずれかの変形を想定して、対応する画像の特徴量(即ち、各部の局所特徴量)を補正してもよい。この場合には、検証部103は、補正後の特徴量に基づき上記類似度を算出してもよい。
そして、検証部103は、各投影点に対応する類似度の算出結果に応じてカウントされたインライア数が閾値以上となった場合に、対応する姿勢パラメータの推定結果が妥当であると判定する。そして、検証部103は、姿勢パラメータの推定結果が妥当であると判定した場合には、当該推定結果を所定の出力先に出力する。
なお、姿勢パラメータの推定結果が複数取得されている場合には、検証部103は、例えば、推定結果の信頼度のより高いものを選択して上記検証に係る処理を実行してもよい。また、他の一例として、検証部103は、複数の推定結果それぞれに対して上記検証に係る処理を実行し、最も確からしい推定結果を、メイン撮像部303の姿勢パラメータの推定結果として出力してもよい。
なお、上述した本実施形態に係る情報処理システム1の機能構成はあくまで一例であり、上述した各構成の機能が実現されれば、情報処理システム1の機能構成は必ずしも図13に示す例には限定されない。具体的な一例として、情報処理装置100、記憶部150、及び移動体300のうち少なくとも2以上が一体的に構成されていてもよい。また、情報処理装置100に含まれる各構成のうち、一部の構成が当該情報処理装置100とは異なる他の装置に設けられていてもよい。また、情報処理装置100の各機能が、複数の装置が連携することで実現されてもよい。
また、上述した例では、キーフレーム画像から抽出された特徴量に関する情報(例えば、ランドマークPiに関する情報や、当該ランドマークPiに対応する局所特徴量に関する情報)がキーフレームとしてあらかじめ登録される例について説明したが、キーフレームとして登録される情報は、必ずしも上述した例には限定されない。具体的な一例として、キーフレーム画像自体がキーフレームとして登録されてもよい。この場合には、上記特徴量については、例えば、姿勢パラメータの推定時や、当該推定結果の検証時に、キーフレームとして登録されたキーフレーム画像(即ち、キーフレームメイン画像やキーフレームサブ画像)から抽出されてもよい。クエリ画像とキーフレーム画像との間のマッチング時に、当該クエリ画像及び当該キーフレーム画像の少なくともいずれかが、メイン撮像部303の姿勢パラメータの推定結果に応じて変形されてもよい。
以上、図13を参照して、本実施形態に係る情報処理システム1の機能構成の一例について、特に、ローカライズ等における姿勢パラメータの推定に係る機能に着目して説明した。
<3.3.処理>
続いて、図14〜図16を参照して、本実施形態に係る情報処理システム1の一連の処理の流れの一例について、特に、ローカライズ等における姿勢パラメータの推定に係る機能に着目して説明する。図14〜図16は、本実施形態に係る情報処理システム1の一連の処理の流れの一例を示したフローチャートである。
まず、図14を参照して、姿勢パラメータの推定に係る一連の処理の流れを概略レベルで説明する。
図14に示すように、情報処理装置100(推定部101)は、移動体300に保持されたメイン撮像部303により撮像された画像(即ち、クエリメイン画像)を、当該移動体300から取得する。そして、情報処理装置100は、取得したクエリメイン画像から特徴量を抽出し、抽出した特徴量を、所定の記憶領域(記憶部150)に記憶されたキーフレームに含まれる当該特徴量に関する情報と比較することで、移動体300の姿勢パラメータを推定する(S110)。
次いで、情報処理装置100(検証部103)は、移動体300の姿勢パラメータの推定に成功した場合には(S131、YES)、当該推定結果の検証を行う。具体的には、情報処理装置100(検証部103)は、移動体300に保持されたサブ撮像部305により撮像された画像(即ち、クエリサブ画像)を、当該移動体300から取得する。そして、情報処理装置100は、取得したクエリサブ画像から特徴量を抽出し、抽出した特徴量を、移動体300の姿勢パラメータの推定結果に対応するキーフレームに含まれる当該特徴量に関する情報と比較することで、当該推定結果の確からしさ検証する(S120)。
そして、情報処理装置100は、上記検証結果に基づき、移動体300の姿勢パラメータの推定結果を、所定の出力先に出力する(S133)。
なお、情報処理装置100は、参照符号S110で示した処理において移動体300の姿勢パラメータの推定に失敗した場合には(S131、NO)、参照符号S120で示した検証に係る処理を実行せずに、姿勢パラメータの推定の失敗を示す情報を出力する(S133)。
以上、図14を参照して、姿勢パラメータの推定に係る一連の処理の流れを概略レベルで説明した。
続いて、図14において参照符号S110で示した、姿勢パラメータを推定に係る処理の一例について、図15を参照して説明する。
まず、情報処理装置100(推定部101)は、取得したクエリメイン画像に対して画像解析を施すことで、当該クエリメイン画像に撮像されたランドマークPiに対応する位置を特徴点として抽出する(S111)。
次いで、情報処理装置100(推定部101)は、クエリメイン画像から抽出した特徴点それぞれについて、当該特徴点を含む部分領域Qiを設定し、当該部分領域Qiにおける局所特徴量を抽出(算出)したうえで、当該局所特徴量の抽出結果を当該部分領域Qiに関連付ける(S113)。
次いで、情報処理装置100(推定部101)は、クエリメイン画像から抽出した特徴量と類似する情報が、キーフレームメイン画像の情報として含まれるキーフレームを、記憶部150に記憶されたキーフレームの中から検索して抽出する(S115)。
そして、情報処理装置100(推定部101)は、クエリメイン画像から抽出した特徴量と、抽出した各キーフレームにキーフレームメイン画像の情報として含まれる特徴量と、の間でマッチングを行うことで、移動体300の姿勢パラメータを推定する(S117)。
以上、図15を参照して、姿勢パラメータを推定に係る処理の一例について説明した。
続いて、図14において参照符号S120で示した、姿勢パラメータの推定結果の検証に係る処理の一例について、図16を参照して説明する。
まず、情報処理装置100(検証部103)は、姿勢パラメータの推定結果に対応するキーフレームに含まれる、キーフレームサブ画像から抽出されたランドマークPiに関する情報と、姿勢パラメータの推定結果と、に基づき、当該ランドマークPiそれぞれを取得したクエリサブ画像に投影する(S121)。
次いで、情報処理装置100(検証部103)は、クエリサブ画像中の投影点それぞれについて、当該投影点を含む部分領域の局所特徴量を抽出(算出)する。また、情報処理装置100は、クエリサブ画像中の投影点それぞれについて算出した局所特徴量と、姿勢パラメータの推定結果に対応するキーフレームに含まれる、当該投影点の投影元となるランドマークPiに対応する局所特徴量と、の類似度を算出する(S123)。
次いで、情報処理装置100(検証部103)は、各ランドマークPiが投影されたクエリサブ画像中の各投影点のうち、局所特徴量の類似度が閾値以上のものをインライアとしてカウントする(S125)。
そして、情報処理装置100(検証部103)は、各投影点に対応する類似度の算出結果に応じてカウントされたインライア数が閾値以上となった場合に、対応する姿勢パラメータの推定結果が妥当であると判定する(S127)。
以上、図15を参照して、姿勢パラメータの推定結果の検証に係る処理の一例について説明した。
<3.4.変形例>
続いて、本実施形態に係る情報処理システム1の変形例について説明する。
(変形例1:姿勢パラメータの推定結果の検証に係る処理の一例)
まず、変形例1として、姿勢パラメータの推定結果の検証に係る処理の一例について説明する。前述した例では、情報処理装置100は、クエリサブ画像から抽出された特徴量と、あらかじめキーフレームとして登録された特徴量(即ち、キーフレームサブ画像から抽出された特徴量)と、のマッチングにより、姿勢パラメータの推定結果の確からしさを検証していた。一方で、サブ撮像部305により撮像されたサブ画像に基づき姿勢パラメータの推定結果の確からしさを検証することが可能であれば、その方法は特に限定されない。
具体的な一例として、情報処理装置100は、クエリサブ画像とキーフレームサブ画像との間で、各画像の大域的な特徴量を相互に比較することで、姿勢パラメータの推定結果の確からしさを検証してもよい。具体的には、情報処理装置100は、例えば、クエリサブ画像及びキーフレームサブ画像それぞれから、Bag of Words特徴量やカラーヒストグラム特徴量等を大域的な特徴量として抽出する。そして、情報処理装置100は、各画像から抽出した特徴量の類似度が閾値を上回った場合に、姿勢パラメータの推定結果が妥当であると判断してもよい。
また、他の一例として、情報処理装置100は、所謂機械学習に応じて生成された判別器を、姿勢パラメータの推定結果の検証に利用してもよい。この場合には、例えば、キーフレームとして登録された各撮像部の位置及び姿勢(即ち、姿勢パラメータ)ごとに、当該位置及び当該姿勢の近傍で観測される画像(即ち、キーフレーム画像)をポジティブデータとし、観測されるべきではない画像をネガティブデータとして判別器の学習を行う。そして、当該判別器を撮像部の位置及び姿勢と関連付けて所定の記憶領域(例えば、記憶部150)に記録する。また、姿勢パラメータの推定結果の検証を行う場合には、情報処理装置100は、姿勢パラメータの推定結果と略一致する位置及び姿勢に関連付けられた判別器を検索し、サブ撮像部305により撮像されたクエリサブ画像を当該判別機に入力すればよい。
以上、変形例1として、姿勢パラメータの推定結果の検証に係る処理の一例について説明した。
(変形例2:メイン撮像部が複数設定されている場合の制御の一例)
続いて、変形例2として、図17を参照して、メイン撮像部303が複数設定されている場合における、移動体300の姿勢パラメータの推定に係る制御の一例について説明する。図17は、変形例2に係る情報処理システム1の一連の処理の流れの一例を示したフローチャートであり、特に、ローカライズ等における姿勢パラメータの推定結果の検証に係る処理の一例について示している。
図17に示すように、情報処理装置100は、移動体300に保持された複数のメイン撮像部303のうちいずれかを選択し、選択した当該メイン撮像部303により撮像された画像(即ち、クエリメイン画像)を、当該移動体300から取得する。そして、情報処理装置100は、取得したクエリメイン画像に基づき、移動体300の姿勢パラメータを推定する(S210)。なお、移動体300の姿勢パラメータの推定に係る処理については、図15を参照して前述した処理と同様のため、詳細な説明は省略する。
次いで、情報処理装置100は、移動体300の姿勢パラメータの推定に成功した場合には(S231、YES)、当該推定結果の検証を行う(S220)。なお、移動体300の姿勢パラメータの推定結果の検証に係る処理については、図16を参照して前述した処理と同様のため、詳細な説明は省略する。
そして、情報処理装置100は、移動体300の姿勢パラメータの推定結果が妥当と判定した場合には(S233,YES)、当該推定結果を所定の出力先に出力する(S239)。
一方で、情報処理装置100は、移動体300の姿勢パラメータの推定結果が妥当ではないと判定した場合には(S233、NO)、姿勢パラメータの推定に利用していない他のメイン撮像部303が選択可能か否かを確認する(S235)。他のメイン撮像部303が選択可能な場合には(S235、YES)、情報処理装置100は、他のメイン撮像部303を新たに選択し(S237)、姿勢パラメータの推定に係る処理(S210)から再度実行する。また、他のメイン撮像部303を選択することが困難な場合には(S235,NO)、情報処理装置100は、姿勢パラメータの推定の失敗を示す情報を出力する(S239)。
また、情報処理装置100は、参照符号S210で示した処理において移動体300の姿勢パラメータの推定に失敗した場合においても(S231、NO)、姿勢パラメータの推定に利用していない他のメイン撮像部303が選択可能か否かを確認する(S235)。そして、他のメイン撮像部303が選択可能な場合には(S235、YES)、情報処理装置100は、他のメイン撮像部303を新たに選択し(S237)、姿勢パラメータの推定に係る処理(S210)から再度実行する。また、他のメイン撮像部303を選択することが困難な場合には(S235,NO)、情報処理装置100は、姿勢パラメータの推定の失敗を示す情報を出力する(S239)。
以上のように、情報処理装置100は、移動体300の姿勢パラメータの推定結果として妥当な結果が得られない場合には、姿勢パラメータの推定に利用するメイン撮像部303を逐次切り替えて、当該姿勢パラメータを再度推定する。このような制御により、情報処理装置100は、一部のメイン撮像部303を利用した姿勢パラメータの推定に失敗した場合においても、他のメイン撮像部303を利用して姿勢パラメータを再度推定することが可能となる。そのため、変形例2に係る情報処理システムに依れば、姿勢パラメータの推定に失敗する確率をより低減することが可能となる。
また、変形例2に係る情報処理システムに依れば、移動体300の姿勢パラメータの推定に、必ずしも全てのメイン撮像部303が利用されるとは限らない。そのため、常に複数のメイン撮像部303全てを姿勢パラメータの推定に利用する場合に比べて、当該推定に係る処理負荷を低減することが可能となる。
以上、変形例2として、図17を参照して、メイン撮像部303が複数設定されている場合における、移動体300の姿勢パラメータの推定に係る制御の一例について説明した。
(変形例3:サブ撮像部が複数設定されている場合の制御の一例)
続いて、サブ撮像部305が複数設定されている場合における、移動体300の姿勢パラメータの推定結果の検証に係る制御の一例について説明する。
この場合には、情報処理装置100は、例えば、姿勢パラメータの推定結果に対応するキーフレームに含まれる情報と、姿勢パラメータの推定結果と、に基づき、キーフレームサブ画像から抽出されたランドマークPiを、複数のサブ撮像部305により撮像されたクエリサブ画像それぞれに投影する。次いで、情報処理装置100は、複数のクエリサブ画像それぞれについて、各投影点に対するインライア判定を行い、インライア数に応じて姿勢パラメータの推定結果の妥当性の判定を行う。そして、情報処理装置100は、上記複数のクエリサブ画像のうち、姿勢パラメータの推定結果が妥当と判定されたクエリサブ画像の数が閾値以上の場合に、当該姿勢パラメータの推定結果を所定の出力先に出力すればよい。
以上、サブ撮像部305が複数設定されている場合における、移動体300の姿勢パラメータの推定結果の検証に係る制御の一例について説明した。
(変形例4:メイン撮像部及びサブ撮像部の役割を切り替えて利用する制御の一例)
続いて、変形例4として、図18を参照して、姿勢パラメータの推定結果や当該推定結果に応じて、メイン撮像部303及びサブ撮像部305の役割を選択的に切り替えて利用する場合の制御の一例について説明する。図18は、変形例4に係る情報処理システム1の一連の処理の流れの一例を示したフローチャートであり、特に、ローカライズ等における姿勢パラメータの推定結果の検証に係る処理の一例について示している。
なお、図18に示す例では、変形例2に係る情報処理システムと同様に、メイン撮像部303が複数設定されている場合について示している。即ち、図18において、参照符号S310、S320、及びS331〜S337で示された処理は、図17において、参照符号S210、S220、及びS231〜S237で示された処理と同様である。そのため、以降では、主に、参照符号S339、S341、及びS343で示された処理に着目して説明し、その他の処理については詳細な説明は省略する。
情報処理装置100は、姿勢パラメータの推定に失敗した場合(S331、NO)や、当該姿勢パラメータの推定結果が妥当ではないと判定した場合(S333、NO)には、姿勢パラメータの推定に利用していない他のメイン撮像部303が選択可能か否かを確認する(S335)。そして、他のメイン撮像部303を選択することが困難な場合には(S335、NO)、情報処理装置100は、メイン撮像部303とサブ撮像部305とを切り替え可能か否か(即ち、メイン撮像部303及びサブ撮像部305の役割を入れ替えることが可能か否か)を判定する(S339)。
メイン撮像部303とサブ撮像部305とを切り替え可能な場合には(S339、YES)、情報処理装置100は、従前にサブ撮像部305として設定されていた撮像部を、新たなメイン撮像部303として選択(設定)する。また、情報処理装置100は、従前にメイン撮像部303として設定されていた撮像部を、新たなサブ撮像部305として選択(設定)する(S341)。そして、情報処理装置100は、姿勢パラメータの推定に係る処理(S310)から再度実行する。
なお、メイン撮像部303とサブ撮像部305とを切り替えが困難な場合には(S339、NO)、情報処理装置100は、姿勢パラメータの推定の失敗を示す情報を出力する(S343)。
以上、変形例4として、図18を参照して、姿勢パラメータの推定結果や当該推定結果に応じて、メイン撮像部303及びサブ撮像部305の役割を選択的に切り替えて利用する場合の制御の一例について説明した。
(変形例5:自己位置推定の手法の一例)
続いて、変形例5として、自己位置推定の手法の一例として、各撮像部により撮像された画像それぞれについて当該画像にユニークな特徴に基づくスコアを算出し当該スコアを利用して自己位置推定を行う場合の一例について説明する。なお、以降では、上記スコアを「ユニークネススコア」とも称する。また、本説明では、変形例5に係る情報処理システムの特徴をよりわかりやすくするために、キーフレーム画像自体がキーフレームとして所定の記憶領域に記録されるものとして説明する。
まず、ユニークネススコアの算出に係る処理について説明する。情報処理装置100は、キーフレームとして登録された一連のキーフレーム画像(即ち、キーフレームメイン画像及びキーフレームサブ画像)それぞれについて、ユニークネススコアをあらかじめ算出しておく。ユニークネススコアは、各画像がその他画像に対してどれだけユニークな画像特徴を有するかを示すスコアである。
例えば、互いに異なる画像iと画像jとの類似度をS_ij、画像iのユニークネススコアをU_iとした場合に、類似度S_ij及びユニークネススコアU_iは、以下に(式1)及び(式2)として示す式で表される。
上記(式1)及び(式2)において、変数I_i及びI_jは、画像i及び画像jそれぞれの特徴量を示している。また、Similarity関数は、入力される情報(画像の特徴量)間の類似度を算出する関数に相当する。なお、画像間の類似度については、例えば、画像全体の特徴を表すBag of Words等のようなグローバル特徴量に基づき算出されてもよい。また、他の一例として、2つの画像間において局所特徴量のマッチングを行い、インライア数をカウントすることで、当該2つの画像間の類似度が算出されてもよい。
続いて、上記ユニークネススコアを利用した自己位置推定の一例について説明する。例えば、情報処理装置100は、各撮像部(例えば、メイン撮像部303及びサブ撮像部305)により撮像されたクエリ画像に類似する画像を、キーフレームとして登録されたキーフレーム画像から検索する。次いで、情報処理装置100は、各クエリ画像について検索されたキーフレーム画像のうち、より高いユニークネススコアを有するキーフレーム画像を特定する。そして、情報処理装置100は、特定した当該キーフレーム画像に対応するクエリ画像をクエリメイン画像として設定し、他のクエリ画像をクエリサブ画像として設定したうえで、姿勢パラメータの推定や、当該姿勢パラメータの推定結果の検証を行う。
以上のような制御により、変形例5に係る情報処理システムに依れば、よりユニークな特徴を有することが期待される画像を利用して自己位置推定を行うことが可能となり、当該自己位置推定の精度をより向上させることも可能となる。また、変形例5に係る情報処理システムに依れば、上述したような特性から、例えば、繰り返しパターンが撮像された画像のように類似するシーンが撮像された可能性のある画像が自己位置推定に利用される事態の発生を防止することも可能となる。
以上、変形例5として、自己位置推定の手法の一例として、各撮像部により撮像された画像それぞれについて当該画像にユニークな特徴に基づくスコアを算出し当該スコアを利用して自己位置推定を行う場合の一例について説明した。
(変形例6:サブ撮像部の選択に係る制御の一例)
続いて、変形例6として、サブ撮像部305が複数設定されている場合において、姿勢パラメータの推定結果の検証に利用するサブ撮像部305の選択に係る制御の一例について説明する。なお、変形例6では、移動体300が車両として構成されており、車両に搭載された撮像部を利用することで、当該車両の実空間上における位置や姿勢(即ち、姿勢パラメータ)を推定する場合の一例について説明する。
例えば、都市部などの比較的視界の閉じた環境においては、車両の進行方向に向いた撮像部よりも、当該進行方向から左右に90度回転した方向(即ち、車両の左右方向)に向いた撮像部の方が、当該車両の移動に伴い撮像されるシーンの変化が大きい。即ち、車両の姿勢パラメータの変化量に対して画像として撮像されるシーンの変化量が、車両の進行方向に向いた撮像部に比べて、当該車両の左右方向を向いた撮像部の方がより大きくなることが予想される。そのため、例えば、車両に搭載された複数の撮像部のうち、当該車両の左右方向に向いた各撮像部を、メイン撮像部303及びサブ撮像部305として利用してもよい。具体的には、車両の左右方向のうち一方を向いた撮像部をメイン撮像部303として設定し、他方を向いた撮像部(即ち、メイン撮像部303と反対方向を向いた撮像部)をサブ撮像部305として設定するとよい。
以上のような制御により、変形例6に係る情報処理システム1に依れば、例えば、移動体300が車両として構成されているような状況下において、当該移動体300の姿勢パラメータの推定に係る精度や、当該推定結果の検証に係る精度をより向上させることが可能となる。
以上、変形例6として、サブ撮像部305が複数設定されている場合において、姿勢パラメータの推定結果の検証に利用するサブ撮像部305の選択に係る制御の一例について説明した。
(変形例7:サブ撮像部の選択に係る制御の一例)
続いて、変形例7として、図19を参照して、サブ撮像部305が複数設定されている場合において、姿勢パラメータの推定結果の検証に利用するサブ撮像部305の選択に係る制御の一例について説明する。図19は、変形例7に係る情報処理システムの概要について説明するための説明図である。
撮像部により撮像された画像を利用した自己位置推定においては、データベース等に登録されている画像と、推定時に取得される画像と、の間においてある程度の共通視野が必要であり、一般的に共通視野が広いほど推定結果がロバストとなる。これは、サブ撮像部305を利用した姿勢パラメータの推定結果の検証にもあてはまる。本変形例では、このような状況を鑑みた、サブ撮像部305の選択方法の一例について説明する。なお、本実施形態では、前述したキーフレーム画像が、上記データベース等に登録されている画像に相当し、前述したクエリ画像が、上記推定時に取得される画像に相当する。また、図13を参照して説明した記憶部150が、上記データベース等に相当する。
前述したように、本開示の一実施形態に係る情報処理システム1では、メイン撮像部303により撮像されたメイン画像に基づき、当該メイン撮像部303(ひいては、移動体300)の姿勢パラメータの推定を行う。また、移動体300に保持される各撮像部の相対的な位置関係についてキャリブレーションが行われていれば、当該姿勢パラメータの推定結果に基づき、メイン撮像部303以外の他の撮像部(例えば、サブ撮像部305)の姿勢パラメータを推定(算出)することも可能である。
そこで、本変形例では、情報処理装置100は、複数のサブ撮像部305それぞれについて、キーフレームとして登録されている情報に基づく当該サブ撮像部305の姿勢を示す情報と、姿勢パラメータの推定の対象となっている当該サブ撮像部305の姿勢を示す情報と、を比較する。なお、以降の説明では、サブ撮像部305等の物体の姿勢を示す情報を、「回転パラメータ」とも称する。そして、情報処理装置100は、当該比較結果に基づき、複数のサブ撮像部305のうち、対応する回転パラメータから算出される撮像部の光軸方向ベクトルと、キーフレームとして登録されている情報に基づいて算出される撮像部の光軸方向ベクトルと、の角度差がより近い値を示すサブ撮像部305を選択する。
例えば、図19において、左側の図はキーフレームとして登録されている情報に応じた移動体300の姿勢を模式的に示している。また、右側の図は、姿勢パラメータの推定の対象となる移動体300の実際の姿勢を模式的に示している。なお、図19に示す例では、移動体300の筐体301に対して、メイン撮像部303と、複数のサブ撮像部305a及び305bと、が保持されている。また、メイン撮像部303、サブ撮像部305a、及びサブ撮像部305bのそれぞれは、移動体300を基準として互いに異なる方向を撮像するように保持されている。即ち、互いに異なる方向を撮像するように、撮像部の光軸方向ベクトルが設定されている。例えば、図19において、「main」として示した方向は、メイン撮像部303が画像を撮像する方向を示している。また、「sub1」として示した方向は、サブ撮像部305aが画像を撮像する方向を示している。また、「sub2」として示した方向は、サブ撮像部305bが画像を撮像する方向を示している。
即ち、図19に示す例の場合には、情報処理装置100は、サブ撮像部305a及び305bそれぞれについて、キーフレームとして登録されている情報に基づく当該撮像部の回転パラメータから算出される撮像部の光軸方向ベクトルと、姿勢パラメータの推定結果に応じて算出される当該撮像部の回転パラメータから算出される撮像部の光軸方向ベクトルと、の比較を行う。そして、情報処理装置100は、サブ撮像部305a及び305bとのうち、上記比較結果に応じて、姿勢パラメータの推定結果に応じた上記撮像部の光軸方向ベクトルと、キーフレームとして登録されている情報に基づく上記撮像部の光軸方向ベクトルと、の角度差がより近いサブ撮像部305を選択する。
例えば、図19に示す例では、サブ撮像部305aについては、キーフレームとして登録されている情報が示す撮像方向sub1が、移動体300の実際の姿勢に応じた撮像方向sub1と異なる。そのため、図19に示す例では、サブ撮像部305aについては、キーフレーム画像として撮像されたシーンとは異なるシーンが、クエリ画像として撮像されることとなる。そのため、サブ撮像部305aについては、キーフレーム画像とクエリ画像との間における共通視野がより狭くなる傾向にあり、ひいては、共通視野を有しない可能性もある。
これに対して、サブ撮像部305bについては、キーフレームとして登録されている情報が示す撮像方向sub2が、移動体300の実際の姿勢に応じた撮像方向sub2と略等しい。そのため、図19に示す例では、サブ撮像部305bについては、当該サブ撮像部305bの光軸を軸とした回転方向の違いを除けば、キーフレーム画像として撮像されたシーンと類似するシーンが、クエリ画像として撮像されることとなる。そのため、サブ撮像部305bについては、キーフレーム画像とクエリ画像との間における共通視野が、サブ撮像部305aの場合に比べてより広くなる。
即ち、図19に示す例では、情報処理装置100は、サブ撮像部305a及び305bのうち、キーフレーム画像とクエリ画像との間における共通視野がより広いサブ撮像部305bを選択することとなる。
特に、移動体300の回転に伴う各撮像部の視野の変化は、当該移動体300の並進に伴う当該撮像部の視野の変化に比べてより大きい傾向にある。そのため、変形例7に係る情報処理システムでは、このような特性を利用し、上述したように撮像方向(即ち、撮像部の光軸方向ベクトル)の比較により、キーフレーム画像とクエリ画像との間で共通視野がより広いサブ撮像部305を選択している。
以上のような制御により、変形例7に係る情報処理システム1に依れば、情報処理装置100は、複数のサブ撮像部305のうち、キーフレーム画像とクエリ画像との間で共通視野のより広い(即ち、視野の変化のより小さい)サブ撮像部305を選択することが可能となる。そのため、変形例7に係る情報処理システム1に依れば、移動体300の姿勢パラメータの推定結果の検証に係る精度をより向上させることが可能となる。
以上、変形例7として、図19を参照して、サブ撮像部305が複数設定されている場合において、姿勢パラメータの推定結果の検証に利用するサブ撮像部305の選択に係る制御の一例について説明した。
<<4.ハードウェア構成>>
続いて、図20を参照しながら、前述した情報処理装置100のように、本開示の一実施形態に係る情報処理システムを構成する情報処理装置のハードウェア構成の一例について、詳細に説明する。図20は、本開示の一実施形態に係る情報処理システムを構成する情報処理装置のハードウェア構成の一構成例を示す機能ブロック図である。
本実施形態に係る情報処理システムを構成する情報処理装置900は、主に、CPU901と、ROM902と、RAM903と、を備える。また、情報処理装置900は、更に、ホストバス907と、ブリッジ909と、外部バス911と、インタフェース913と、入力装置915と、出力装置917と、ストレージ装置919と、ドライブ921と、接続ポート923と、通信装置925とを備える。
CPU901は、演算処理装置及び制御装置として機能し、ROM902、RAM903、ストレージ装置919又はリムーバブル記録媒体927に記録された各種プログラムに従って、情報処理装置900内の動作全般又はその一部を制御する。ROM902は、CPU901が使用するプログラムや演算パラメータ等を記憶する。RAM903は、CPU901が使用するプログラムや、プログラムの実行において適宜変化するパラメータ等を一次記憶する。これらはCPUバス等の内部バスにより構成されるホストバス907により相互に接続されている。例えば、図13に示す推定部101及び検証部103は、CPU901により構成され得る。
ホストバス907は、ブリッジ909を介して、PCI(Peripheral Component Interconnect/Interface)バスなどの外部バス911に接続されている。また、外部バス911には、インタフェース913を介して、入力装置915、出力装置917、ストレージ装置919、ドライブ921、接続ポート923及び通信装置925が接続される。
入力装置915は、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチ、レバー及びペダル等、ユーザが操作する操作手段である。また、入力装置915は、例えば、赤外線やその他の電波を利用したリモートコントロール手段(いわゆる、リモコン)であってもよいし、情報処理装置900の操作に対応した携帯電話やPDA等の外部接続機器929であってもよい。さらに、入力装置915は、例えば、上記の操作手段を用いてユーザにより入力された情報に基づいて入力信号を生成し、CPU901に出力する入力制御回路などから構成されている。情報処理装置900のユーザは、この入力装置915を操作することにより、情報処理装置900に対して各種のデータを入力したり処理動作を指示したりすることができる。
出力装置917は、取得した情報をユーザに対して視覚的又は聴覚的に通知することが可能な装置で構成される。このような装置として、CRTディスプレイ装置、液晶ディスプレイ装置、プラズマディスプレイ装置、ELディスプレイ装置及びランプ等の表示装置や、スピーカ及びヘッドホン等の音声出力装置や、プリンタ装置等がある。出力装置917は、例えば、情報処理装置900が行った各種処理により得られた結果を出力する。具体的には、表示装置は、情報処理装置900が行った各種処理により得られた結果を、テキスト又はイメージで表示する。他方、音声出力装置は、再生された音声データや音響データ等からなるオーディオ信号をアナログ信号に変換して出力する。
ストレージ装置919は、情報処理装置900の記憶部の一例として構成されたデータ格納用の装置である。ストレージ装置919は、例えば、HDD(Hard Disk Drive)等の磁気記憶部デバイス、半導体記憶デバイス、光記憶デバイス又は光磁気記憶デバイス等により構成される。このストレージ装置919は、CPU901が実行するプログラムや各種データ等を格納する。例えば、図13に示す記憶部150は、ストレージ装置919により構成され得る。
ドライブ921は、記録媒体用リーダライタであり、情報処理装置900に内蔵、あるいは外付けされる。ドライブ921は、装着されている磁気ディスク、光ディスク、光磁気ディスク又は半導体メモリ等のリムーバブル記録媒体927に記録されている情報を読み出して、RAM903に出力する。また、ドライブ921は、装着されている磁気ディスク、光ディスク、光磁気ディスク又は半導体メモリ等のリムーバブル記録媒体927に記録を書き込むことも可能である。リムーバブル記録媒体927は、例えば、DVDメディア、HD−DVDメディア又はBlu−ray(登録商標)メディア等である。また、リムーバブル記録媒体927は、コンパクトフラッシュ(登録商標)(CF:CompactFlash)、フラッシュメモリ又はSDメモリカード(Secure Digital memory card)等であってもよい。また、リムーバブル記録媒体927は、例えば、非接触型ICチップを搭載したICカード(Integrated Circuit card)又は電子機器等であってもよい。
接続ポート923は、情報処理装置900に直接接続するためのポートである。接続ポート923の一例として、USB(Universal Serial Bus)ポート、IEEE1394ポート、SCSI(Small Computer System Interface)ポート等がある。接続ポート923の別の例として、RS−232Cポート、光オーディオ端子、HDMI(登録商標)(High−Definition Multimedia Interface)ポート等がある。この接続ポート923に外部接続機器929を接続することで、情報処理装置900は、外部接続機器929から直接各種のデータを取得したり、外部接続機器929に各種のデータを提供したりする。
通信装置925は、例えば、通信網(ネットワーク)931に接続するための通信デバイス等で構成された通信インタフェースである。通信装置925は、例えば、有線若しくは無線LAN(Local Area Network)、Bluetooth(登録商標)又はWUSB(Wireless USB)用の通信カード等である。また、通信装置925は、光通信用のルータ、ADSL(Asymmetric Digital Subscriber Line)用のルータ又は各種通信用のモデム等であってもよい。この通信装置925は、例えば、インターネットや他の通信機器との間で、例えばTCP/IP等の所定のプロトコルに則して信号等を送受信することができる。また、通信装置925に接続される通信網931は、有線又は無線によって接続されたネットワーク等により構成され、例えば、インターネット、家庭内LAN、赤外線通信、ラジオ波通信又は衛星通信等であってもよい。
以上、本開示の実施形態に係る情報処理システムを構成する情報処理装置900の機能を実現可能なハードウェア構成の一例を示した。上記の各構成要素は、汎用的な部材を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用するハードウェア構成を変更することが可能である。なお、図20では図示しないが、情報処理システムを構成する情報処理装置900に対応する各種の構成を当然備える。
なお、上述のような本実施形態に係る情報処理システムを構成する情報処理装置900の各機能を実現するためのコンピュータプログラムを作製し、パーソナルコンピュータ等に実装することが可能である。また、このようなコンピュータプログラムが格納された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリなどである。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信してもよい。また、当該コンピュータプログラムを実行させるコンピュータの数は特に限定されない。例えば、当該コンピュータプログラムを、複数のコンピュータ(例えば、複数のサーバ等)が互いに連携して実行してもよい。
<<5.むすび>>
以上説明したように、本実施形態に係る情報処理システム1では、姿勢パラメータの推定の対象となる移動体300の筐体301には、メイン撮像部303及びサブ撮像部305が、互いに異なる光軸を有するように保持される。このような構成の基で、情報処理装置100は、メイン撮像部303により撮像されたメイン画像に基づき、移動体300の実空間上における位置や姿勢(即ち、姿勢パラメータ)を推定する。また、情報処理装置100は、サブ撮像部305により撮像されたサブ画像に基づき、上記移動体300の位置や姿勢の推定結果の確からしさを検証する。
以上のような構成により、本実施形態に係る情報処理システム1に依れば、移動体300の実空間上における位置や姿勢の推定に係る精度をより向上させることが可能となり、ひいては、当該位置や当該姿勢の誤推定を防止することが可能となる。
なお、メイン撮像部303が、「第1の撮像部」の一例に相当し、当該メイン撮像部303により撮像されたメイン画像が、「第1の画像」の一例に相当する。また、サブ撮像部305が、「第2の撮像部」の一例に相当し、当該サブ撮像部305により撮像されたサブ画像が、「第2の画像」の一例に相当する。
また、上述した実施形態や各変形例については、適宜組み合わせて利用することも可能である。具体的な一例として、メイン撮像部303及びサブ撮像部305のそれぞれが複数設定されている場合には、変形例2及び3それぞれで説明した技術を組み合わせて利用することも可能である。
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果とともに、または上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏しうる。
なお、以下のような構成も本開示の技術的範囲に属する。
(1)
所定の筐体に保持された複数の撮像部のうち第1の撮像部により撮像された第1の画像に基づき、前記筐体の実空間上における位置及び姿勢のうち少なくともいずれかを推定する推定部と、
前記複数の撮像部のうち前記第1の撮像部とは光軸が異なる第2の撮像部により撮像された第2の画像に基づき、前記推定結果の確からしさを検証する検証部と、
を備える、情報処理装置。
(2)
前記検証部は、前記第2の画像から抽出される第1の特徴量と、前記筐体の実空間上における位置及び姿勢のうち少なくともいずれかに関連付けてあらかじめ記録された第2の特徴量と、を比較することで、前記推定結果の確からしさを検証する、前記(1)に記載の情報処理装置。
(3)
前記第2の特徴量は、前記筐体の実空間上における位置及び姿勢のうち少なくともいずれかに応じて、前記第2の撮像部により撮像される前記第2の画像に基づき取得される、前記(2)に記載の情報処理装置。
(4)
前記検証部は、前記推定結果の検証に利用する前記第2の画像から前記第1の特徴量として抽出される1以上の特徴点それぞれに対応する特徴量と、前記第2の特徴量として記録された1以上の特徴点それぞれに対応する特徴量と、を比較することで、前記推定結果の確からしさを検証する、前記(3)に記載の情報処理装置。
(5)
前記検証部は、前記推定結果の検証に利用する前記第2の画像から前記第1の特徴量として抽出される前記特徴点を含む部分領域の特徴量と、前記第2の特徴量として記録された前記特徴点を含む部分領域の特徴量と、を比較することで、前記推定結果の確からしさを検証する、前記(4)に記載の情報処理装置。
(6)
前記検証部は、前記推定結果の検証に利用する前記第2の画像から前記第1の特徴量として抽出される1以上の前記特徴点それぞれについて、当該特徴点を含む前記部分領域と、前記第2の特徴量として記録された1以上の前記特徴点のうち対応する前記特徴点を含む前記部分領域と、間の類似度を算出し、当該類似度の算出結果が閾値以上となる前記特徴点の数に応じて、前記推定結果の確からしさを検証する、前記(5)に記載の情報処理装置。
(7)
前記複数の撮像部のうち、2以上の撮像部が前記第2の撮像部の候補として設定されており、
前記第2の特徴量は、抽出元となる前記第2の画像が撮像されたときの前記第2の撮像部の実空間上の姿勢に応じたパラメータと関連付けられており、
前記推定部は、前記第1の画像に基づき、複数の前記第2の撮像部の候補それぞれの前記パラメータを取得し、
前記検証部は、複数の前記第2の撮像部の候補それぞれについて取得された前記パラメータと、前記第2の特徴量に関連付けられた前記パラメータと、に基づき、少なくとも一部の当該候補を選択し、選択した当該候補により撮像された前記第2の画像に基づき、前記推定結果の確からしさを検証する、
前記(3)〜(6)のいずれか一項に記載の情報処理装置。
(8)
前記検証部は、前記筐体の実空間上における位置及び姿勢のうち少なくともいずれかごとに前記第2の撮像部により撮像された前記第2の画像に基づく機械学習に応じて生成された判別器により、前記推定結果の確からしさを検証する、前記(1)に記載の情報処理装置。
(9)
前記検証部は、前記推定結果の検証に利用する前記第2の画像と、過去に撮像された前記第2の画像と、の間の類似度に応じて、当該推定結果の確からしさを検証する、前記(1)に記載の情報処理装置。
(10)
前記複数の撮像部のうち、2以上の撮像部が前記第2の撮像部として設定されており、
前記検証部は、2以上の前記第2の撮像部それぞれにより撮像された前記第2の画像に基づき、前記推定結果の確からしさを検証する、
前記(1)〜(9)のいずれか一項に記載の情報処理装置。
(11)
前記推定部は、前記検証結果に応じて、前記複数の撮像部から新たな第1の撮像部を選択し、当該新たな第1の撮像部により撮像された新たな第1の画像に基づき、前記筐体の実空間上における位置及び姿勢のうち少なくともいずれかを再度推定する、前記(1)〜(10)のいずれか一項に記載の情報処理装置。
(12)
前記推定部は、前記検証結果に応じて、前記複数の撮像部のうち第1の撮像部の候補として設定された2以上の撮像部の中から、前記新たな第1の撮像部を選択する、前記(11)に記載の情報処理装置。
(13)
前記推定部は、前記検証結果に応じて、前記第2の撮像部を前記新たな第1の撮像部として選択し、
前記検証部は、当該選択前の前記第1の撮像部を新たな第2の撮像部として選択し、当該新たな第2の撮像部により撮像された新たな第2の画像に基づき、前記新たな第1の画像に基づく前記推定結果を検証する、
前記(11)に記載の情報処理装置。
(14)
前記筐体は、移動体の筐体であり、
前記推定部は、前記移動体の進行方向とは異なる方向を撮像する前記第1の撮像部により撮像された前記第1の画像に基づき、前記筐体の実空間上における位置及び姿勢のうち少なくともいずれかを推定する
前記(1)〜(13)のいずれか一項に記載の情報処理装置。
(15)
前記検証部は、前記第1の撮像部とは反対の方向を撮像する前記第2の撮像部により撮像された前記第2の画像に基づき、前記推定結果の確からしさを検証する、前記(1)〜(14)のいずれか一項に記載の情報処理装置。
(16)
コンピュータが、
所定の筐体に保持された複数の撮像部のうち第1の撮像部により撮像された第1の画像に基づき、前記筐体の実空間上における位置及び姿勢のうち少なくともいずれかを推定することと、
前記複数の撮像部のうち前記第1の撮像部とは光軸が異なる第2の撮像部により撮像された第2の画像に基づき、前記推定結果の確からしさを検証することと、
を含む、情報処理方法。
(17)
コンピュータに、
所定の筐体に保持された複数の撮像部のうち第1の撮像部により撮像された第1の画像に基づき、前記筐体の実空間上における位置及び姿勢のうち少なくともいずれかを推定することと、
前記複数の撮像部のうち前記第1の撮像部とは光軸が異なる第2の撮像部により撮像された第2の画像に基づき、前記推定結果の確からしさを検証することと、
を実行させる、プログラム。