(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024177821
(43)【公開日】2024-12-24
(54)【発明の名称】プログラム、情報処理装置及び情報処理方法
(51)【国際特許分類】
G06T 7/33 20170101AFI20241217BHJP
G06T 7/70 20170101ALI20241217BHJP
G06T 7/00 20170101ALI20241217BHJP
G06T 7/55 20170101ALI20241217BHJP
【FI】
G06T7/33
G06T7/70 Z
G06T7/00 350C
G06T7/55
【審査請求】未請求
【請求項の数】13
【出願形態】OL
(21)【出願番号】P 2023096168
(22)【出願日】2023-06-12
(71)【出願人】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】川崎 敦史
(72)【発明者】
【氏名】渡辺 友樹
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096AA06
5L096CA04
5L096DA02
5L096FA09
5L096FA33
5L096FA52
5L096FA69
5L096HA11
5L096KA04
(57)【要約】
【課題】カメラの位置姿勢、及び、画像特徴の3次元情報の少なくとも一方の算出に掛かる計算コストの削減を、精度を維持したまま行う。
【解決手段】実施形態のプログラムは、コンピュータを、対応関係取得部と選別部と算出部として機能させる。対応関係取得部は、カメラにより撮像された複数の画像から複数の画像特徴を算出し、前記複数の画像特徴の対応関係を取得する。選別部は、複数の前記対応関係を、対応関係の有効性と、前記有効性が有効性閾値よりも低い対応関係が削除される場合に前記複数の画像のうち少なくともいずれか1つの画像に及ぼす影響と、に基づいて選別する。算出部は、前記複数の対応関係から選別された対応関係から、前記カメラの位置姿勢、及び、前記画像特徴の3次元情報の少なくとも一方を算出する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
コンピュータを、
カメラにより撮像された複数の画像から複数の画像特徴を算出し、前記複数の画像特徴の対応関係を取得する対応関係取得部と、
複数の前記対応関係を、対応関係の有効性と、前記有効性が有効性閾値よりも低い対応関係が削除される場合に前記複数の画像のうち少なくともいずれか1つの画像に及ぼす影響と、に基づいて選別する選別部と、
前記複数の対応関係から選別された対応関係から、前記カメラの位置姿勢、及び、前記画像特徴の3次元情報の少なくとも一方を算出する算出部、
として機能させるためのプログラム。
【請求項2】
前記コンピュータを、
前記カメラの撮影位置の初期値、及び、前記カメラの姿勢の初期値の少なくとも一方を取得する初期値取得部として更に機能させ、
前記算出部は、前記カメラの撮影位置の初期値、及び、前記カメラの姿勢の初期値の少なくとも一方に更に基づいて、前記カメラの位置姿勢、及び、前記画像特徴の3次元情報の少なくとも一方を算出する、
請求項1に記載のプログラム。
【請求項3】
前記対応関係の有効性は、前記対応関係にある2つの画像特徴が示す位置の間の移動量が、より大きいことであり、
前記有効性閾値は、所定の移動量を示し、
前記選別部は、前記対応関係にある2つの画像特徴が示す位置の間の移動量が、より大きい対応関係を削除しないように、前記複数の対応関係を選別する、
請求項1又は2に記載のプログラム。
【請求項4】
前記対応関係の有効性は、前記対応関係がある画像特徴を含む画像の数が、より多いことであり、
前記有効性閾値は、所定の画像数を示し、
前記選別部は、前記対応関係がある画像特徴を含む画像の数が、より多い対応関係を削除しないように、前記複数の対応関係を選別する、
請求項1又は2に記載のプログラム。
【請求項5】
前記対応関係の有効性は、前記対応関係にある画像特徴の類似度が、より高いことであり、
前記有効性閾値は、所定の類似度を示し、
前記選別部は、前記対応関係にある画像特徴の類似度が、より高い対応関係を削除しないように、前記複数の対応関係を選別する、
請求項1又は2に記載のプログラム。
【請求項6】
前記対応関係取得部は、前記対応関係の信頼度を算出するニューラルネットワークを用いて、前記信頼度を更に取得し、
前記対応関係の有効性は、前記信頼度が、より高いことであり、
前記有効性閾値は、所定の信頼度を示し、
前記選別部は、前記対応関係の信頼度が、より高い対応関係を削除しないように、前記複数の対応関係を選別する、
請求項1又は2に記載のプログラム。
【請求項7】
前記複数の画像のうち少なくともいずれか1つの画像に及ぼす影響は、前記画像毎に分布する画像特徴の位置のばらつきであり、
前記選別部は、前記有効性が前記有効性閾値よりも低い対応関係が削除される場合に、前記画像特徴の位置のばらつきを評価する評価値が、影響閾値よりも小さくならないように、前記複数の対応関係を選別する、
請求項1又は2に記載のプログラム。
【請求項8】
前記複数の画像のうち少なくともいずれか1つの画像に及ぼす影響は、前記複数の画像における前記対応関係の総数であり、
前記選別部は、前記有効性が前記有効性閾値よりも低い対応関係が削除される場合に、前記複数の画像における前記対応関係の総数が、影響閾値よりも小さくならないように、前記複数の対応関係を選別する、
請求項1又は2に記載のプログラム。
【請求項9】
前記選別部は、前記対応関係の総数が、所定の総数に近づくまで、前記有効性閾値を変化させ、前記有効性が前記有効性閾値よりも低い対応関係が削除される場合に、前記複数の画像における前記対応関係の総数が、前記影響閾値よりも小さくならないように、前記複数の対応関係を選別する、
請求項8に記載のプログラム。
【請求項10】
前記複数の画像のうち少なくともいずれか1つの画像に及ぼす影響は、前記画像毎に含まれる前記画像特徴の総数であり、
前記選別部は、前記有効性が前記有効性閾値よりも低い対応関係が削除される場合に、前記画像特徴の総数が、影響閾値よりも小さくならないように、前記複数の対応関係を選別する、
請求項1又は2に記載のプログラム。
【請求項11】
前記選別部は、前記画像毎に含まれる前記画像特徴の総数が、所定の総数に近づくまで、前記有効性閾値を変化させ、前記有効性が前記有効性閾値よりも低い対応関係が削除される場合に、前記画像毎に含まれる前記画像特徴の総数が、前記影響閾値よりも小さくならないように、前記複数の対応関係を選別する、
請求項10に記載のプログラム。
【請求項12】
カメラにより撮像された複数の画像から複数の画像特徴を算出し、前記複数の画像特徴の対応関係を取得する対応関係取得部と、
複数の前記対応関係を、対応関係の有効性と、前記有効性が有効性閾値よりも低い対応関係が削除される場合に前記複数の画像のうち少なくともいずれか1つの画像に及ぼす影響と、に基づいて選別する選別部と、
前記複数の対応関係から選別された対応関係から、前記カメラの位置姿勢、及び、前記画像特徴の3次元情報の少なくとも一方を算出する算出部と、
を備える情報処理装置。
【請求項13】
情報処理装置が、カメラにより撮像された複数の画像から複数の画像特徴を算出し、前記複数の画像特徴の対応関係を取得するステップと、
前記情報処理装置が、複数の前記対応関係を、対応関係の有効性と、前記有効性が有効性閾値よりも低い対応関係が削除される場合に前記複数の画像のうち少なくともいずれか1つの画像に及ぼす影響と、に基づいて選別するステップと、
前記情報処理装置が、前記複数の対応関係から選別された対応関係から、前記カメラの位置姿勢、及び、前記画像特徴の3次元情報の少なくとも一方を算出するステップと、
を含む情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態はプログラム、情報処理装置及び情報処理方法に関する。
【背景技術】
【0002】
カメラを用いて自己位置推定と、周辺環境の3次元計測とを同時に行う技術として、Simultaneous Localization and Mapping(SLAM)やStructure from Motion(SfM)が着目されている。カメラは屋内でも使えることや、比較的安価かつ手軽に使えることから、カメラを用いた技術の応用が期待されている。例えば、インフラの保守点検・巡視等における撮影位置・対象位置の計測、事故映像における自車の動き推定、及び、文化遺産の保護を目的とした文化財のデジタルアーカイブなどへの応用が挙げられる。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来の技術では、カメラの位置姿勢、及び、画像特徴の3次元情報の少なくとも一方の算出に掛かる計算コストの削減を、精度を維持したまま行うことが難しかった。
【課題を解決するための手段】
【0005】
実施形態のプログラムは、コンピュータを、対応関係取得部と選別部と算出部として機能させる。対応関係取得部は、カメラにより撮像された複数の画像から複数の画像特徴を算出し、前記複数の画像特徴の対応関係を取得する。選別部は、複数の前記対応関係を、対応関係の有効性と、前記有効性が有効性閾値よりも低い対応関係が削除される場合に前記複数の画像のうち少なくともいずれか1つの画像に及ぼす影響と、に基づいて選別する。算出部は、前記複数の対応関係から選別された対応関係から、前記カメラの位置姿勢、及び、前記画像特徴の3次元情報の少なくとも一方を算出する。
【図面の簡単な説明】
【0006】
【
図1】実施形態の情報処理装置の機能構成の例を示す図。
【
図2A】実施形態の画像特徴の移動量の例1を示す図。
【
図2B】実施形態の画像特徴の移動量の例2を示す図。
【
図3】実施形態の対応関係にある画像特徴を含む画像の数を説明するための図。
【
図4A】実施形態の画像特徴の分布の例1を示す図。
【
図4B】実施形態の画像特徴の分布の例2を示す図。
【
図5A】SLAMにおける画像特徴の対応付けについて説明するための図。
【
図5B】SfMにおける画像特徴の対応付けについて説明するための図。
【
図6】実施形態の選別部の処理例を示すフローチャート。
【
図7】実施形態の変形例1の選別部の処理例を示すフローチャート。
【
図8】実施形態の変形例2の情報処理装置の機能構成の例を示す図。
【
図9】実施形態の情報処理装置のハードウェア構成の例を示す図。
【発明を実施するための形態】
【0007】
以下に添付図面を参照して、プログラム、情報処理装置及び情報処理方法の実施形態を詳細に説明する。
【0008】
はじめに、SLAMとSfMとの違いについて説明する。一般的にSLAMは、自動運転等のリアルタイム処理が必要なアプリケーションに用いられ、連続した画像シーケンスを入力として逐次的に位置推定等を行う。処理精度よりも処理速度を重視するため、カメラの位置姿勢、及び、カメラの周辺環境の最適化の実行時に範囲を絞る等の工夫が施されている。
【0009】
一方、SfMはオフライン処理を前提としており、入力は連続した画像シーケンスに限定されず画像群すべてを使い、精度を重視した最適化が行われる。
【0010】
保守点検・巡視等における撮影位置・対象位置の計測や、事故映像における自車の動き推定等での活用には、リアルタイム処理を必要としないので精度を重視したSfMが適している。一方で、画像群すべてを使うSfMでも処理時間を高速化することで、サーバーの使用料の削減やアプリケーションを使うユーザーの待ち時間軽減といった効果があり、SfMにおける高速化の技術が求められている。
【0011】
SfMにおける一般的な処理フローとして、画像群からの特徴点検出、特徴点の対応付けによる対応点作成、カメラ位置姿勢の初期値推定、対応点の3次元点の初期値推定、推定されたカメラ位置姿勢・3次元点の最適化処理がある。最適化処理は、3次元点をカメラの位置姿勢で画像上に再投影したときの再投影誤差を最小化するBundle Adjustmentで行われることが多い。
【0012】
一般的に、処理フローのうち、最適化処理にかかる処理時間が最も大きく、対応点数が多いほど推定変数が増える。そのため、対応点数を減らすことで高速化を行えるが、対応点数を無作為に減らしても精度が下がってしまう問題がある。例えば、特徴点の検出数を減らしたり、対応点における対応付いた画像枚数の下限を大きくしたりすることで、対応点数を減らすことができるが、精度を維持するための最適なパラメータはシーンによって異なるため、一意に決めることが難しい。
【0013】
以下、2枚以上のカメラ画像に含まれる画像特徴(例えば、特徴点等)の対応関係を選別し、選別された対応関係に基づき、カメラの位置姿勢、及び、画像特徴の3次元情報の少なくとも一方の算出を行う実施形態について説明する。
【0014】
[機能構成の例]
図1は実施形態の情報処理装置1の機能構成の例を示す図である。実施形態の情報処理装置1は、対応関係取得部11、選別部12及び算出部13を備える。
【0015】
対応関係取得部11は、2枚以上のカメラ画像上の画像特徴の対応関係を取得する。具体的には、対応関係取得部11は、カメラ画像上の特徴的な領域を指す画像特徴を算出し、2枚以上のカメラ画像上の画像特徴から、同一箇所を示す画像特徴の対応付けを行う。ここで、画像特徴は、点形状(特徴点)でもよいし線形状でも良い。画像特徴は画像の輝度勾配などから算出される。
【0016】
画像特徴の算出には、SIFT(Scaled Invariance Feature Transform)、SURF(Speed-Upped Robust Feature)、及び、AKAZE(Accelerated KAZE)などの特徴点検出アルゴリズムが用いられても良いし、ディープニューラルネットワークが用いられても良い。
【0017】
画像特徴の対応付けは、画像特徴が特徴記述子によって数値化された特徴量の類似度(一致度)から行われても良いし、画像特徴の周辺領域における画素の類似度から算出されても良い。特徴記述子の算出にも、SIFT、SURF及びAKAZEなどの特徴点検出アルゴリズムが用いられても良いし、ディープニューラルネットワークが用いられても良い。
【0018】
特徴量の類似度は、例えば、N次元の特徴量間のL1ノルム、L2ノルム、ハミング距離、及び、コサイン類似度などから算出される。周辺領域の画素の類似度の場合は、例えば、SSD(Sum of Squared Difference)、SAD(Sum of Absolute Difference)、及び、正規化相互相関などから算出される。
【0019】
対応関係取得部11は、上述の類似度が予め定められた閾値以上となるとき、同一箇所を示す複数の画像上の画像特徴を対応付け、複数の画像特徴の対応関係として、情報処理装置1の記憶装置に記憶する。画像特徴の対応付けは、2枚の画像間に限られず、2枚以上の画像に対して行われる。すなわち、対応関係取得部11によって、2枚以上の画像上の画像特徴が対応付けられた対応関係が得られる。
【0020】
選別部12は、対応関係取得部11で得られた対応関係から、カメラの位置姿勢及び画像特徴の3次元情報の少なくとも一方の算出に有効な対応関係を選別する。選別部12が、位置姿勢や3次元情報の精度維持に不要な対応関係のみを削減することで、SfMにおけるBundle Adjustment等の最適化処理の推定パラメータ数を減らすことができ、処理時間を削減できる。
【0021】
ここで、画像特徴が特徴点である場合の推定パラメータは、カメラの位置姿勢と対応点ごとの3次元点であり、対応関係を減らすことが3次元点を減らすことになり、直接的に推定パラメータを削減することになる。一方、精度維持に必要な対応関係は残しているため、位置姿勢や3次元情報の精度は維持できる。
【0022】
以降では、有効な対応関係を選別する方法を述べる。
【0023】
一般的に、SfMにおける位置姿勢の推定精度に寄与する有効な対応関係として、例えば、以下の5つが挙げられる。
・対応関係における画像上の画像特徴の移動量がより大きい。
・他の画像の画像特徴と対応関係がある画像特徴を含む画像の数がより多い。
・対応関係の対応付けの類似度(一致度)がより高い。
・他の画像の画像特徴と対応関係がある画像特徴が画像内でより広範囲に分布している。
・対応関係の信頼度がより高い。
【0024】
対応関係の有効性を評価する上記5つの指標の例について順番に説明する。
【0025】
まず、対応関係における画像上の画像特徴の移動量とは、同一の箇所を示す画像上の特徴が、異なる画像間で画像上を移動した量(対応関係にある2つの画像特徴が示す位置の間の移動量)を指す。画像特徴が、特徴点の場合は、一般的にフローと呼ばれる。
【0026】
図2Aは、実施形態の画像特徴の移動量の例1を示す図である。
図2Bは実施形態の画像特徴の移動量の例2を示す図である。
図2A及び2Bの例は、画像特徴が特徴点により表されている場合を示す。
【0027】
例えば、
図2Aの対応関係101aは、2枚の異なる画像で対応する特徴点(同一箇所を示す特徴点)から得られる。同様に、
図2Bの対応関係101bは、2枚の異なる画像で対応する特徴点(同一箇所を示す特徴点)から得られる。
【0028】
2枚の異なる画像で対応する特徴点の位置が離れているほど、移動量を示すフローが大きくなる。
図2A及び2Bの例では、例えば、対応関係101aにおける画像上の画像特徴の移動量は、対応関係101bにおける画像上の画像特徴の移動量よりも大きい。
【0029】
なお、
図2A及び2Bは、2枚の画像間のフローの例だが、特徴点の対応付けが2枚以上の画像で行われる場合、例えば、対応付けの中で観測された時間が最も早い画像上の特徴の位置と、最も遅い画像上の特徴の位置との差分で、フローを計算する方法が用いられてもよい。
【0030】
また例えば、特徴点の対応付けが2枚以上の画像で行われる場合、画像上の特徴点のx座標の最大値と最小値との差分と、画像上の特徴点のy座標の最大値と最小値との差分とを算出し、差分がより大きい特徴点間のフローを計算する方法が用いられてもよい。
【0031】
SfMにおいて、カメラの位置姿勢や、画像特徴の3次元情報(カメラの周辺環境の3次元情報)は、対象の見え方の変化により推定される。そのため、画像特徴の画像上の移動量(例えば、特徴点のフロー)の大きさは、カメラの位置姿勢や、画像特徴の3次元情報推定に重要な指標である。
【0032】
例えば、選別部12は、対応関係にある2つの画像特徴が示す位置の間の移動量が、より大きい対応関係を削除しないように、複数の対応関係を選別する。
【0033】
次に、他の画像の画像特徴と対応関係がある画像特徴を含む画像の数とは、同一の箇所が、異なる画像内の画像特徴として観測されることによって得られた、同一の箇所を示す画像特徴に対応付けられた画像の枚数を指す。
【0034】
図3は実施形態の対応関係にある画像特徴100a及び100bを含む画像の数を説明するための図である。
図3の例は、画像特徴100a及び100bが特徴点である場合を示す。また、
図3の例は、自動車などの移動体に搭載されたカメラ10によって、移動中に、画像が撮像される場合を示す。画像特徴100aは、カメラ10によって撮像された2枚の画像に含まれている。一方、画像特徴100bは、カメラ10によって撮像された6枚の画像に含まれている。
【0035】
図3の例では、画像特徴100bを含む画像の数は、画像特徴100aを含む画像の数よりも多いので、画像特徴100bの対応関係は、画像特徴100aの対応関係よりも有効である。
【0036】
SfMにおいては、複数の画像で観測されている箇所が多いほど、カメラ10の位置姿勢においてスケールドリフト等の蓄積誤差を軽減することができるため、同一の箇所を示す画像特徴に対応付けられた画像の枚数は重要な指標である。
【0037】
例えば、選別部12は、対応関係がある画像特徴を含む画像の数が、より多い対応関係を削除しないように、複数の対応関係を選別する。
【0038】
次に、対応付けの類似度(一致度)とは、対応関係取得部11で算出された対応付けの類似度を指す。対応付けられた画像特徴の類似度が高いほど、誤った対応づけが少なくなり、カメラ10の位置姿勢の推定精度が高くなるため、対応付けの類似度は重要な指標である。
【0039】
例えば、選別部12は、対応関係にある画像特徴の類似度が、より高い対応関係を削除しないように、複数の対応関係を選別する。
【0040】
次に、画像特徴の分布とは、1枚の画像上における画像特徴の分布を指す。
【0041】
図4Aは実施形態の画像特徴の分布の例1を示す図である。
図4Bは実施形態の画像特徴の分布の例2を示す図である。
図4A及び4Bの例は、画像特徴が特徴点である場合を示す。
図4Bの画像に含まれる画像特徴の位置は、画像内の左側に偏っている。一方、
図4Aの画像に含まれる画像特徴は、
図4Bの画像に含まれる画像特徴よりも、ばらつきが大きく、画像内で広く分布している。
【0042】
他の画像の画像特徴と対応関係がある画像特徴が画像内でより広範囲に分布しているほど、対象の見え方の変化が多様になり、カメラ10の位置姿勢の推定精度が高くなるため、画像特徴の分布は重要な指標である。
【0043】
例えば、選別部12は、有効性が有効性閾値よりも低い対応関係が削除される場合に、画像内の画像特徴の位置のばらつきを評価する評価値が、影響閾値よりも小さくならないように、複数の対応関係を選別する。
【0044】
次に、対応関係の信頼度とは、対応関係を入力とし、当該対応関係の信頼度を出力するニューラルネットワークによって算出される。対応関係の信頼度は、対応関係の有効性を示す直接的な指標である。対応関係の信頼度は、カメラ10の位置姿勢の推定精度が高くなる対応関係ほど、高くなるように出力されるため、対応関係の信頼度は重要な指標である。
【0045】
例えば、対応関係取得部11が、対応関係の信頼度を算出するニューラルネットワークを用いて、信頼度を更に取得する。そして、選別部が、対応関係の信頼度が、より高い対応関係を削除しないように、複数の対応関係を選別する。
【0046】
以上に挙げた5つの指標が大きい対応関係は、位置姿勢や周辺の3次元情報の算出に有効だが、単純に各指標が大きい対応関係、または小さい対応関係だけを選別することはできない。それは、シーンによって得られる対応関係の特性が異なるためである。画像特徴の数がより多いシーンでは、例えば、上記5つの指標のいずれかに当てはまる有効な対応関係を残し、残りの対応関係は削除しても問題ない。しかし、画像特徴の数がより少ないシーンほど、対応関係の数の確保がより重要となるため、上記5つの指標のいずれにも当てはまらない対応関係も残す必要がある。
【0047】
そのため、選別部12は、シーン全体(複数の画像のうち少なくともいずれか1つの画像)への影響も考慮して、対応関係の選別を行う。つまり、ある対応関係が有効か否かを選別する際に、選別に係る対応関係に対応付いたカメラ画像以外のカメラ画像への影響も考慮することを行う。具体的には、選別部12は、選別に係る対応関係における上記の有効な対応関係を評価する5つの指標の値だけではなく、シーン全体における影響を評価する別の指標の値も考慮して、選別を行う。
【0048】
なお、シーン全体の対応関係を考慮して、対応関係を選別することは、オフライン処理を前提としたSfMでしかできず、逐次処理を前提とするSLAMではできない。
【0049】
図5AはSLAMにおける画像特徴の対応付けについて説明するための図である。
図5BはSfMにおける画像特徴の対応付けについて説明するための図である。
【0050】
図5Aに示すように、SLAMでは未来の時刻の画像情報はわからないため、画像特徴の検出や対応付けがされて間もない対応関係は、対応づいた画像の数が少なかったり、画像上の特徴の移動量が小さかったりする。しかし、未来の時刻の画像において、これらの画像特徴が、キーポイント(重要な画像特徴)などの推定に、重要な対応付けとなる可能性がある、そのため、SLAMでは、シーン全体における影響を評価する別の指標の値も考慮して、画像特徴の選別を行うことは難しい。
【0051】
一方、SfMの場合、オフライン処理を前提としており、
図5Bに示すように、予め、カメラ10の位置姿勢、及び、画像特徴の3次元情報の少なくとも一方の算出に掛かる計算コストの最適化が行われるシーン全体の対応関係が既知である。そのため、シーン全体における影響を評価する別の指標の値も考慮して、画像特徴の選別が可能になる。
【0052】
図5A及び5Bに示すように、SLAMでは、本実施形態による高速化ができず、SfMで適用できる点が、本実施形態と、既存のSLAMにおける高速化等のアルゴリズムとの違う点である。
【0053】
シーン全体も考慮して各指標に基づいた選別を行うにあたり、各指標の閾値をシーンごとに算出する方法が考えられる。例えば、全対応関係における各指標の平均やパーセンタイルに基づいて閾値(有効性閾値)を決定する方法などが考えられる。選別部12は、有効性閾値以上の対応関係を、カメラの位置姿勢や周辺環境の3次元情報の算出に有効な対応関係として選別する(削除せずに残す)。
【0054】
また、選別を行うにあたり、カメラ10の位置姿勢や、画像特徴の3次元情報(周辺環境の3次元情報)の算出精度を維持するために、シーン全体への影響を考慮するための判定処理が行われる。
【0055】
例えば、複数の画像のうち少なくともいずれか1つの画像に及ぼす影響として、画像毎に分布する画像特徴の位置のばらつきがある。選別部12は、有効性が有効性閾値よりも低い対応関係が削除される場合に、画像特徴の位置のばらつきを評価する評価値が、影響閾値よりも小さくならないように、複数の対応関係を選別する。
【0056】
また例えば、シーン全体を考慮するための判定処理として、対応関係の総数、及び、1枚の画像内の画像特徴の総数の少なくとも一方を、予め設定された閾値によって判定する処理が行われる。
【0057】
ここで、対応関係の総数は、いずれかの対応関係によって他の画像の画像特徴と対応付けられた画像特徴の組(同一箇所を示す画像特徴の組)の数に等しい。1つの対応関係に対応する画像特徴の組には、異なる2枚以上の画像において、同一箇所を示す画像特徴が含まれる。
【0058】
対応関係が1つ削除されると、この1つの対応関係に対応する画像特徴の組も削除される。画像特徴の組に含まれる画像特徴の数は、2枚の画像間の画像特徴の対応関係であれば2個であり、n枚の画像間の画像特徴の対応関係であればn個である。
【0059】
対応関係の総数が少ないほど、または1枚の画像上の画像特徴の数が少ないほど、カメラ10の位置姿勢や、画像特徴の3次元情報(周辺環境の3次元情報)の算出精度を維持することが困難になる。そのため、例えば下記
図6のフローチャートに従って、実施形態の選別部12の処理が行われる。
【0060】
図6は実施形態の選別部12の処理例を示すフローチャートである。はじめに、選別部12は、処理対象の対応関係を1つ選択し、当該対応関係の有効性を評価する指標が閾値(有効性閾値)以上であるか否かを判定する(ステップS1)。例えば、有効性を評価する指標には、上記の5つの有効性を評価する指標の例のうち、いずれか1つ以上が使用される。
【0061】
指標が閾値以上である場合(ステップS1,Yes)、選別部12は、未処理の対応関係の中から、処理対象の対応関係を新たに選択し、ステップS1の処理を実行する。
【0062】
指標が閾値未満である場合(ステップS1,No)、選別部12は、処理対象の対応関係が削除されると、シーン全体(複数の画像)のうち、画像内の画像特徴の数が閾値以下になる画像が存在するか否かを判定する(ステップS2)。
【0063】
画像内の画像特徴の数が閾値以下になる画像が存在する場合(ステップS2,Yes)、選別部12は、未処理の対応関係の中から、処理対象の対応関係を新たに選択し、ステップS1の処理に戻る。すなわち、選別部12は、有効性が有効性閾値よりも低い対応関係が削除される場合に、画像内の画像特徴の総数が、影響閾値よりも小さくならないように、複数の対応関係を選別する。
【0064】
画像内の画像特徴の数が閾値以下になる画像が存在しない場合(ステップS2,No)、選別部12は、処理対象の対応関係が削除されると、対応関係の総数が閾値以下になるか否かを判定する(ステップS3)。
【0065】
対応関係の総数が閾値以下になる場合(ステップS3,Yes)、選別部12は、未処理の対応関係の中から、処理対象の対応関係を新たに選択し、ステップS1の処理に戻る。すなわち、選別部12は、有効性が有効性閾値よりも低い対応関係が削除される場合に、複数の画像における対応関係の総数が、影響閾値よりも小さくならないように、複数の対応関係を選別する。
【0066】
対応関係の総数が閾値以下にならない場合(ステップS3,No)、選別部12は、処理対象の対応関係を削除し、未処理の対応関係の中から、処理対象の対応関係を新たに選択し、ステップS1の処理に戻る。
【0067】
全ての対応関係についての処理が終わると、
図6のフローチャートによる選別処理は終了する。
【0068】
以上が、選別部12の説明である。
【0069】
図1に戻り、算出部13は、選別部12により選別された対応関係から、カメラ10の位置姿勢及び画像特徴の3次元情報の少なくとも一方を算出する。具体的には、まず、算出部13は、選別された対応関係の情報から基本行列を算出し、カメラ10の位置姿勢の初期値を算出する。
【0070】
次に、算出部13は、カメラ10の位置姿勢の初期値と、対応関係とから、画像特徴の3次元情報(周辺環境の3次元情報)の初期値を三角測量により算出する。最後に、算出部13は、3次元情報の初期値を、カメラ10の位置姿勢に基づき画像上に再投影し、再投影誤差を最小化するBundle Adjustmentで、カメラ10の位置姿勢と周辺環境の3次元情報とを最適化する。
【0071】
このとき、算出部13は、シーン全体を1回のBundle Adjustmentで最適化しても良いし、最適化される画像を逐次的に増やしてもよい。例えば、最適化される画像を逐次的に増やしながら、一連の処理を繰り返す方法が考えられる。具体的には、算出部13は、部分的に最適化を行った後、最適化後の3次元情報と対応関係とからPnP(Perspective-n-Point)問題を解くことでカメラ10の位置姿勢の初期値を算出してもよい。そして、算出部13は、その初期値と対応関係とを用いた三角測量により周辺環境の3次元情報を増やしたあと、再びBundle Adjustmentで最適化を行ってもよい。
【0072】
以上説明したように、実施形態では、対応関係取得部11が、カメラ10により撮像された複数の画像から複数の画像特徴を算出し、複数の画像特徴の対応関係を取得する。選別部12が、複数の対応関係を、対応関係の有効性と、有効性が有効性閾値よりも低い対応関係が削除される場合に複数の画像のうち少なくともいずれか1つの画像に及ぼす影響と、に基づいて選別する。そして、算出部13が、複数の対応関係から選別された対応関係から、カメラ10の位置姿勢、及び、画像特徴の3次元情報の少なくとも一方を算出する。
【0073】
これにより実施形態によれば、カメラ10の位置姿勢、及び、画像特徴の3次元情報の少なくとも一方の算出に掛かる計算コストの削減を、精度を維持したまま行うことができる。例えば、選別部102によって選別された対応関係を用いることによって、算出部13における最適化処理を高速化することができる。また、選別部12は、シーン全体(複数の画像のうち少なくともいずれか1つの画像)への影響も考慮して、対応関係の選別を行うので、カメラ10の位置姿勢、及び、画像特徴の3次元情報の少なくとも一方の算出に係る精度を維持することができる。
【0074】
(実施形態の変形例1)
次に実施形態の変形例1について説明する。変形例1の説明では、実施形態と同様の説明については省略し、実施形態と異なる箇所について説明する。変形例1では、対応関係の有効性を評価する指標の閾値を、繰り返し処理によって、適応的に算出する方法について説明する。
【0075】
変形例1では、はじめに、対応関係の総数の下限の閾値または、1枚の画像上の画像特徴の数の下限の閾値が予め定義される。
【0076】
次に、実施形態で説明した有効性を評価する5つの指標のいずれか1つ以上の指標について、下限となる閾値の初期値が定義される。
【0077】
以降、繰り返し処理による閾値算出方法を、
図7のフローチャートに沿って説明する。
【0078】
図7は実施形態の変形例1の選別部12の処理例を示すフローチャートである。
図7の例では、有効な対応関係の選別の指標として、画像上の特徴の移動量、及び、対応関係に対応づいた画像数を用いるが、対応関係の有効性を評価する1つ以上の任意の指標の組み合わせが用いられてもよい。
【0079】
はじめに、選別部12は、処理対象の対応関係を1つ選択し、当該対応関係に対応づいた画像数(対応関係を有する画像特徴を含む画像の数)が閾値以上であるか否かを判定する(ステップS11)。
【0080】
対応関係に対応づいた画像数が閾値以上である場合(ステップS11,Yes)、選別部12は、未処理の対応関係の中から、処理対象の対応関係を新たに選択し、ステップS11の処理を実行する。
【0081】
対応関係に対応づいた画像数が閾値未満である場合(ステップS11,No)、選別部12は、処理対象の対応関係における画像特徴の画像上の移動量が閾値以上であるか否かを判定する(ステップS12)。
【0082】
画像特徴の画像上の移動量が閾値以上である場合(ステップS12,Yes)、選別部12は、未処理の対応関係の中から、処理対象の対応関係を新たに選択し、ステップS11の処理を実行する。
【0083】
すなわち、ステップS11またはS12でYesとなる対応関係は、選別部12によってカメラ10の位置姿勢、及び、画像特徴の3次元情報の少なくとも一方の算出に有効な対応関係と判定され、情報処理装置1の記憶装置に保持される。
【0084】
画像特徴の画像上の移動量が閾値未満である場合(ステップS12,No)、選別部12は、処理対象の対応関係が削除されると、シーン全体(複数の画像)のうち、画像内の画像特徴の数が閾値以下になる画像が存在するか否かを判定する(ステップS13)。
【0085】
画像内の画像特徴の数が閾値以下になる画像が存在する場合(ステップS13,Yes)、処理対象の対応関係を削除すると、カメラ10の位置姿勢、及び、画像特徴の3次元情報の少なくとも一方の算出処理に不利になるため、この対応関係は削除しない。選別部12は、未処理の対応関係の中から、処理対象の対応関係を新たに選択し、ステップS11の処理に戻る。
【0086】
画像内の画像特徴の数が閾値以下になる画像が存在しない場合(ステップS13,No)、選別部12は、処理対象の対応関係が削除されると、対応関係の総数が閾値以下になるか否かを判定する(ステップS14)。
【0087】
対応関係の総数が閾値以下になる場合(ステップS14,Yes)、対応関係をこれ以上削除できないため、選別処理は終了する。
【0088】
対応関係の総数が閾値以下にならない場合(ステップS14,No)、選別部12は、カメラ10の位置姿勢、及び、画像特徴の3次元情報の少なくとも一方の算出処理への影響が軽微であるため、処理対象の対応関係を削除する。そして、選別部12は、未処理の対応関係の中から、処理対象の対応関係を新たに選択し、ステップS11の処理に戻る。
【0089】
全ての対応関係についての処理が終わると、選別部12は、ステップS11で使用される画像数の閾値を増やし(ステップS16)、ステップS12で使用される移動量の閾値を増やす(ステップS17)。
【0090】
以上の処理を既定の回数(N回)繰り返すことで、対応関係の有効性を評価する指標の閾値を適応的に算出できる。
【0091】
以上、説明したように、変形例1では、例えば、選別部12は、画像毎に含まれる画像特徴の総数が、所定の総数に近づくまで、有効性閾値(
図7の例では、画像数の閾値、及び、移動量の閾値)を変化させる。そして、選別部12は、有効性が有効性閾値よりも低い対応関係が削除される場合に、画像毎に含まれる画像特徴の総数が、影響閾値よりも小さくならないように、複数の対応関係を選別する。
【0092】
また例えば、選別部12は、対応関係の総数が、所定の総数に近づくまで、有効性閾値(
図7の例では、画像数の閾値、及び、移動量の閾値)を変化させる。そして、選別部12は、有効性が有効性閾値よりも低い対応関係が削除される場合に、複数の画像における対応関係の総数が、影響閾値よりも小さくならないように、複数の対応関係を選別する。
【0093】
これにより変形例1によれば、カメラ10の位置姿勢、及び、画像特徴の3次元情報の少なくとも一方の算出に必要な1枚の画像上の特徴数と、対応関係の総数とを維持しながら、不要な対応関係を順番に除去できる。
【0094】
(実施形態の変形例2)
次に実施形態の変形例2について説明する。変形例2の説明では、実施形態と同様の説明については省略し、実施形態と異なる箇所について説明する。変形例2では、カメラ10の位置姿勢の初期値を取得する初期値取得部を更に備える場合について説明する。
【0095】
[機能構成の例]
図8は実施形態の変形例2の情報処理装置1-2の機能構成の例を示す図である。変形例2の情報処理装置1-2は、対応関係取得部11、選別部12、算出部13及び初期値取得部14を備える。対応関係取得部11及び選別部12の説明は、実施形態と同様なので省略する。
【0096】
初期値取得部14は、カメラ10の撮影位置の初期値、及び、カメラ10の姿勢の初期値の少なくとも一方を含む位置姿勢情報を取得する。具体的には、初期値取得部14は、画像特徴の対応関係以外の情報から得られるカメラ10の位置姿勢情報を取得する。
【0097】
例えば、初期値取得部14は、カメラ画像を入力とするニューラルネットワークで推定されたカメラ10の位置姿勢情報を取得する。また例えば、初期値取得部14は、GPS(Global Positioning System)で推定されたカメラ10の位置姿勢情報を取得する。また例えば、ホイールエンコーダーなどカメラ以外のセンサ情報から得られる位置姿勢情報を取得してもよい。また例えば、初期値取得部14は、これら複数の位置姿勢情報の平均値又は中央値などによって、複数の位置姿勢情報が統合された位置姿勢情報を取得してもよい。
【0098】
算出部13は、選別部12により選別された対応関係と、初期値取得部14により取得されたカメラ10の位置姿勢情報に含まれる初期値とから、カメラ10の位置姿勢、及び、画像特徴の3次元情報の少なくとも一方を算出する。具体的には、まず、算出部13は、カメラ10の位置姿勢の初期値と、対応関係とから、周辺環境の3次元情報の初期値を、三角測量により算出する。次に、算出部13は、3次元情報の初期値をカメラの位置姿勢で画像上に再投影し、再投影誤差を最小化するBundle Adjustmentで、カメラの位置姿勢と周辺環境の3次元情報を最適化する。
【0099】
このとき、算出部13は、シーン全体を1回のBundle Adjustmentで最適化しても良いし、最適化される画像を逐次的に増やしてもよい。例えば、最適化される画像を逐次的に増やしながら、一連の処理を繰り返す方法が考えられる。具体的には、算出部13は、部分的に最適化を行った後、初期値取得部14で得られたカメラ10の位置姿勢の初期値、または、最適化後の3次元情報と対応関係とからPnP問題を解くことで算出されたカメラ10の位置姿勢の初期値を用いて、最適化されるカメラ10の位置姿勢を追加する。さらに、算出部13は、その初期値と対応関係とが用いられた三角測量により周辺環境の3次元情報を増やす。その後、算出部13は、再びBundle Adjustmentで最適化を行うといった一連の処理を繰り返す。
【0100】
最後に、実施形態の情報処理装置1のハードウェア構成の例について説明する。
【0101】
[ハードウェア構成の例]
図9は実施形態の情報処理装置1のハードウェア構成の例を示す図である。情報処理装置1は、プロセッサ201、主記憶装置202、補助記憶装置203、表示装置204、入力装置205及び通信装置206を備える。プロセッサ201、主記憶装置202、補助記憶装置203、表示装置204、入力装置205及び通信装置206は、バス210を介して接続されている。
【0102】
なお、情報処理装置1は、上記構成の一部が備えられていなくてもよい。例えば、情報処理装置1が、外部の装置の入力機能及び表示機能を利用可能な場合、情報処理装置1に表示装置204及び入力装置205が備えられていなくてもよい。
【0103】
プロセッサ201は、補助記憶装置203から主記憶装置202に読み出されたプログラムを実行する。主記憶装置202は、ROM(Read Only Memory)及びRAM(Random Access Memory)等のメモリである。補助記憶装置203は、HDD(Hard Disk Drive)及びメモリカード等である。
【0104】
表示装置204は、例えば液晶ディスプレイ等である。入力装置205は、情報処理装置1を操作するためのインタフェースである。なお、表示装置204及び入力装置205は、表示機能と入力機能とを有するタッチパネル等により実現されていてもよい。通信装置206は、他の装置と通信するためのインタフェースである。
【0105】
例えば、情報処理装置1で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルで、メモリカード、ハードディスク、CD-RW、CD-ROM、CD-R、DVD-RAM及びDVD-R等のコンピュータで読み取り可能な記憶媒体に記録されてコンピュータ・プログラム・プロダクトとして提供される。
【0106】
また例えば、情報処理装置1で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。
【0107】
また例えば、情報処理装置1で実行されるプログラムをダウンロードさせずにインターネット等のネットワーク経由で提供するように構成してもよい。具体的には、例えばASP(Application Service Provider)型のクラウドサービスによって構成してもよい。
【0108】
また例えば、情報処理装置1のプログラムを、ROM等に予め組み込んで提供するように構成してもよい。
【0109】
情報処理装置1で実行されるプログラムは、上述の機能構成のうち、プログラムによっても実現可能な機能を含むモジュール構成となっている。当該各機能は、実際のハードウェアとしては、プロセッサ201が記憶媒体からプログラムを読み出して実行することにより、上記各機能ブロックが主記憶装置202上にロードされる。すなわち上記各機能ブロックは主記憶装置202上に生成される。
【0110】
なお上述した各機能の一部又は全部をソフトウェアにより実現せずに、IC(Integrated Circuit)等のハードウェアにより実現してもよい。
【0111】
また複数のプロセッサ201を用いて各機能を実現してもよく、その場合、各プロセッサ201は、各機能のうち1つを実現してもよいし、各機能のうち2つ以上を実現してもよい。
【0112】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0113】
1 情報処理装置
11 対応関係取得部
12 選別部
13 算出部
14 初期値取得部
201 プロセッサ
202 主記憶装置
203 補助記憶装置
204 表示装置
205 入力装置
206 通信装置
210 バス