IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ KDDI株式会社の特許一覧

特開2024-21748比較用画像生成装置、方法及びプログラム
<>
  • 特開-比較用画像生成装置、方法及びプログラム 図1
  • 特開-比較用画像生成装置、方法及びプログラム 図2
  • 特開-比較用画像生成装置、方法及びプログラム 図3
  • 特開-比較用画像生成装置、方法及びプログラム 図4
  • 特開-比較用画像生成装置、方法及びプログラム 図5
  • 特開-比較用画像生成装置、方法及びプログラム 図6
  • 特開-比較用画像生成装置、方法及びプログラム 図7
  • 特開-比較用画像生成装置、方法及びプログラム 図8
  • 特開-比較用画像生成装置、方法及びプログラム 図9
  • 特開-比較用画像生成装置、方法及びプログラム 図10
  • 特開-比較用画像生成装置、方法及びプログラム 図11
  • 特開-比較用画像生成装置、方法及びプログラム 図12
  • 特開-比較用画像生成装置、方法及びプログラム 図13
  • 特開-比較用画像生成装置、方法及びプログラム 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024021748
(43)【公開日】2024-02-16
(54)【発明の名称】比較用画像生成装置、方法及びプログラム
(51)【国際特許分類】
   G06T 7/70 20170101AFI20240208BHJP
【FI】
G06T7/70 Z
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2022124813
(22)【出願日】2022-08-04
(71)【出願人】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】100092772
【弁理士】
【氏名又は名称】阪本 清孝
(74)【代理人】
【識別番号】100119688
【弁理士】
【氏名又は名称】田邉 壽二
(72)【発明者】
【氏名】花岡 洋平
(72)【発明者】
【氏名】小森田 賢史
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096AA06
5L096BA04
5L096BA18
5L096CA02
5L096DA01
5L096DA02
5L096EA15
5L096EA16
5L096EA39
5L096FA32
5L096FA66
5L096FA67
5L096FA69
5L096GA51
(57)【要約】
【課題】画像に基づくカメラの姿勢推定において用いるのに適した比較用画像を生成することのできる比較用画像生成装置を提供する。
【解決手段】三次元地図から1つ以上のカメラ位置姿勢において予めレンダリング等した画像から選択される初回の比較用画像集合と、クエリ画像との間で画像マッチングを行うことにより、クエリ画像の三次元地図におけるカメラ位置姿勢を初回のものとして推定し、初回の推定に続く推定を2回目以降の今回について繰り返すことにより、前回のものとして推定したカメラ位置姿勢に基づいて、三次元地図から1つ以上のカメラ位置姿勢において今回についてレンダリングを行って得られる今回の比較用画像集合と、クエリ画像との間で画像マッチングを行うことにより、そのカメラ位置姿勢を今回のものとして推定することを収束判定が得られるまで繰り返し、収束判定が得られた回で用いた比較用画像集合を出力する。
【選択図】図1
【特許請求の範囲】
【請求項1】
三次元地図から1つ以上のカメラ位置姿勢において予めレンダリングされた画像、及び/又は、前記三次元地図の対象となる実世界で1つ以上のカメラ位置姿勢において予め撮影されて得られている画像を含むリファレンス用画像集合から選択される初回の比較用画像集合と、クエリ画像との間で画像マッチングを行うことにより、前記クエリ画像の前記三次元地図におけるカメラ位置姿勢を初回のものとして推定し、
当該初回の推定に続く推定を2回目以降の今回について繰り返すことにより、
前回のものとして推定したカメラ位置姿勢に基づいて、前記三次元地図から1つ以上のカメラ位置姿勢において今回についてレンダリングを行って得られる今回の比較用画像集合と、前記クエリ画像との間で画像マッチングを行うことにより、前記クエリ画像の前記三次元地図におけるカメラ位置姿勢を今回のものとして推定することを収束判定が得られるまで繰り返し、
前記収束判定が得られた回で用いた比較用画像集合を出力することを特徴とする比較用画像生成装置。
【請求項2】
今回におけるものとして推定したカメラ位置姿勢における位置及び/又は姿勢の、前回のものとして推定したカメラ位置姿勢における位置及び/又は姿勢からの変化が少ないと判定される場合に、前記収束判定が得られたものとすることを特徴とする請求項1に記載の比較用画像生成装置。
【請求項3】
前記繰り返す際に、前回のものとして推定したカメラ位置姿勢と、前々回以前について推定したカメラ位置姿勢に変動を加えた調整カメラ位置姿勢と、を今回についてレンダリングを行うための前記1つ以上のカメラ位置姿勢として用いることを特徴とする請求項1に記載の比較用画像生成装置。
【請求項4】
前記調整カメラ位置姿勢を、前々回以前について推定したカメラ位置姿勢にランダムな変動を加えることで得ることを特徴とする請求項3に記載の比較用画像生成装置。
【請求項5】
前記調整カメラ位置姿勢を、前回のものとして推定したカメラ位置姿勢と、前々回のものとして推定したカメラ位置姿勢と、を用いて定めることを特徴とする請求項3に記載の比較用画像生成装置。
【請求項6】
前記調整カメラ位置姿勢を、前々回以前のものとして推定したカメラ位置姿勢を、その視野に写る前記三次元地図内の三次元オブジェクトの方向に移動させることによって定めることを特徴とする請求項3に記載の比較用画像生成装置。
【請求項7】
前記調整カメラ位置姿勢における位置を、前々回以前のものとして推定したカメラ位置姿勢における位置と、前々回以前の画像マッチングの際に前記三次元地図内においてインライアとしてマッチングされた位置と、を結ぶ直線上に設定することで前記三次元オブジェクトの方向に移動させ、前記調整カメラ位置姿勢を定めることを特徴とする請求項6に記載の比較用画像生成装置。
【請求項8】
前記インライアとしてマッチングされた複数の位置と、前々回以前のものとして推定したカメラ位置姿勢における位置と、の複数の重み付き中間位置の代表位置として、前記調整カメラ位置姿勢における位置を定めることを特徴とする請求項7に記載の比較用画像生成装置。
【請求項9】
前記インライアとしてマッチングされた複数の位置のうち、前々回以前のものとして推定したカメラ位置姿勢における位置に最も近い位置と、前々回以前のものとして推定したカメラ位置姿勢における位置と、の重み付き中間位置として、前記調整カメラ位置姿勢における位置を定めることを特徴とする請求項7に記載の比較用画像生成装置。
【請求項10】
三次元地図から1つ以上のカメラ位置姿勢において予めレンダリングされた画像、及び/又は、前記三次元地図の対象となる実世界で1つ以上のカメラ位置姿勢において予め撮影されて得られている画像を含むリファレンス用画像集合から選択される初回の比較用画像集合と、クエリ画像との間で画像マッチングを行うことにより、前記クエリ画像の前記三次元地図におけるカメラ位置姿勢を初回のものとして推定し、
当該初回の推定に続く推定を2回目以降の今回について繰り返すことにより、
前回のものとして推定したカメラ位置姿勢に基づいて、前記三次元地図から1つ以上のカメラ位置姿勢において今回についてレンダリングを行って得られる今回の比較用画像集合と、前記クエリ画像との間で画像マッチングを行うことにより、前記クエリ画像の前記三次元地図におけるカメラ位置姿勢を今回のものとして推定することを収束判定が得られるまで繰り返し、
前記収束判定が得られた回で用いた比較用画像集合を出力することを特徴とする比較用画像生成方法。
【請求項11】
コンピュータを請求項1ないし9のいずれかに記載の比較用画像生成装置として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像に基づくカメラの姿勢推定において用いるのに適した比較用画像を生成する比較用画像生成装置、方法及びプログラムに関する。
【背景技術】
【0002】
画像に基づくカメラの姿勢推定は、VPS(Visual Positioning System)と呼ばれ、ロボティクスや拡張現実など、様々な分野におけるコア技術として利用されている。特許文献1では、三次元点群地図と、後から撮影したクエリ画像をマッチングし、地図中におけるクエリ画像の姿勢を推定するVPSに関する技術が開示されている。特許文献2では、三次元点群地図の代わりに、汎用的な三次元メッシュ地図を用いてクエリ画像の姿勢を推定するために、三次元メッシュ地図におけるクエリ画像のおおよそのカメラ姿勢を推定し、推定したおおよそのカメラ姿勢をもとに三次元メッシュから二次元の比較用画像をレンダリングし、比較用画像とクエリ画像をマッチングする技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2021-174285号公報
【特許文献2】特願2022-063059号
【発明の概要】
【発明が解決しようとする課題】
【0004】
クエリ画像とデータベースに蓄積された画像を比較する際に、データベースから比較に適した画像を抽出する必要がある。しかしながら、画像の類似度から抽出する方法では、その精度が不十分であった。特許文献2では、さらに、GPS(全地球測位システム)情報や地磁気センサーを利用することも想定しているが、使用可能な場所が限られる。
【0005】
また、特許文献2において、GPS情報や地磁気センサーを利用し、比較用画像を三次元メッシュからレンダリングした場合であっても、GPSや地磁気センサーの情報には誤差が含まれるため、比較用画像をレンダリングするカメラ姿勢はおおよその値となり、クエリ画像比較に最適な画像ではない場合もある問題があった。
【0006】
前記従来技術の課題に鑑み、本発明は、画像に基づくカメラの姿勢推定において用いるのに適した比較用画像を生成することのできる比較用画像生成装置、方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するため、本発明は、比較用画像生成装置であって、三次元地図から1つ以上のカメラ位置姿勢において予めレンダリングされた画像、及び/又は、前記三次元地図の対象となる実世界で1つ以上のカメラ位置姿勢において予め撮影されて得られている画像を含むリファレンス用画像集合から選択される初回の比較用画像集合と、クエリ画像との間で画像マッチングを行うことにより、前記クエリ画像の前記三次元地図におけるカメラ位置姿勢を初回のものとして推定し、当該初回の推定に続く推定を2回目以降の今回について繰り返すことにより、前回のものとして推定したカメラ位置姿勢に基づいて、前記三次元地図から1つ以上のカメラ位置姿勢において今回についてレンダリングを行って得られる今回の比較用画像集合と、前記クエリ画像との間で画像マッチングを行うことにより、前記クエリ画像の前記三次元地図におけるカメラ位置姿勢を今回のものとして推定することを収束判定が得られるまで繰り返し、前記収束判定が得られた回で用いた比較用画像集合を出力することを特徴とする。また、この装置に対応する方法及びプログラムであることを特徴とする。
【発明の効果】
【0008】
本発明によれば、収束判定が得られるまで繰り返し処理でカメラ位置姿勢を更新して推定し、この際、このカメラ位置姿勢に基づいてレンダリングされた比較用画像集合を更新して利用することで、最終的にクエリ画像と比較すべき画像集合として適切なものを出力することができる。
【図面の簡単な説明】
【0009】
図1】実施形態に係る比較用画像生成装置の機能ブロック図である。
図2】実施形態に係る比較用画像生成装置の動作のフローチャートである
図3】三次元地図からの比較用画像のレンダリングを模式的に表した図である。
図4】複数の比較用画像のレンダリングを行うことで比較用画像集合が得られることの模式図である。
図5】画像マッチング部で得られた対応点ペアをもとに、推定カメラ姿勢を算出するまでの各処理を模式的に表した図である。
図6】三次元地図の三次元座標と比較用画像の二次元座標の対応点ペアを求める手法を模式的に示した図である。
図7】遮蔽発生状況と、これを考慮することによる調整カメラ姿勢の算出を模式的に示す図である。
図8】調整カメラ姿勢を出力に加える場合の、一連の処理フローを示す図である。
図9】調整カメラ姿勢と推定カメラ姿勢との関係の模式図である。
図10】式(1)~(4)の模式例として、調整カメラ姿勢の位置等を模式的に示す図である。
図11】式(1)~(4)においてパラメータαの設定により、調整カメラ姿勢の位置を様々に設定できることを模式的に示す図である。
図12】推定カメラ姿勢をランダムに変動させることで調整カメラ姿勢を得る手法の模式図である。
図13】今回と前回の推定カメラ姿勢の位置を模式的に示す図である。
図14】一般的なコンピュータ装置におけるハードウェア構成の例を示す図である。
【発明を実施するための形態】
【0010】
図1は、実施形態に係る、三次元地図との画像マッチングにおける最適な比較用画像生成装置10のブロック図である。比較用画像生成装置10は、初回比較用画像レンダリング部11と、初期比較用画像選択部12と、画像マッチング部13と、推定カメラ姿勢算出部14と、収束判定部15と、比較用画像レンダリング部16と、を備える。
【0011】
図2は、実施形態に係る比較用画像生成装置10の動作のフローチャートである。以下、図2の各ステップを説明しながら、図1の比較用画像生成装置10の各機能部の動作の詳細について説明する。
【0012】
なお、図2のフローに関して、ステップS3~S5,S51,S6の処理をステップS51での収束判定が成立するまで繰り返すという構造を取る。この繰り返し回数をN(N=1が初回で、繰り返しによりN=1,2,3,…と回数Nが増える)として参照し、図2のフローの説明における現在の繰り返し回数を任意のNとして、1つ前の過去のN-1回目や、1つ後の未来のN+1回目と区別して説明する。ここで、ステップS1,S2は、N=1の初回のみに属するステップとなる。
【0013】
(1)ステップS1…初回比較用画像レンダリング部11
ステップS1では、初回比較用画像レンダリング部11が、リファレンス画像のデータベース全体を構築する処理として多数のm枚の比較用画像集合PS={P(i)|i=1,2,…,m}(リファレンス画像集合PS)をレンダリングしてから、ステップS2へと進む。
【0014】
具体的に、初回比較用画像レンダリング部11は、入力データとして予め用意しておく三次元地図Mから、複数の比較用画像PSをレンダリングする。レンダリングされた比較用画像PSは、後述する初回比較用画像選択部12に出力され、クエリ画像との画像マッチングに利用される。
【0015】
図3に、三次元地図Mからの比較用画像P(i)のレンダリングを模式的に表した図を示す。比較用画像集合PSに属する比較用画像P(i)(i=1,2,…,m)の各々につき、三次元地図Mの世界座標における外部パラメータEX(i)(カメラの位置姿勢に対応)と、内部パラメータIN(i)とを与えることにより、三次元CG(コンピュータグラフィックス)における既存手法を用いて比較用画像P(i)の各々をレンダリングすることができる。なお、三次元地図Mには地図を構成する構造物について、例えばポリゴン頂点座標とポリゴンのテクスチャを用意しておくことで、当該レンダリングが可能となる。
【0016】
こうして、図4に示すように、比較用画像集合PSに属する全ての比較用画像P(i)についてそれぞれレンダリングを行うことで、複数m枚で構成される比較用画像集合PSを得ることができる。(なお、図4では模式例として、比較用画像集合PSの一部である比較用画像P(1)~P(13)を示している。)
【0017】
外部パラメータEX(i)で与えられるレンダリング位置は、クエリ画像Qが撮影されると想定される地表高や、構造物のない空間(実世界における道路などの空間)にランダムに決めてよい。(比較用画像集合PSと照合することでクエリ画像Qの位置姿勢が推定可能なように、三次元地図Mが定義されている空間範囲内において網羅的に、外部パラメータEX(i)の各々を設定しておけばよい。)内部パラメータIN(i)は、所定の設定の中からランダムに選んだものを用いてもよいし、クエリ画像Qの内部パラメータと同じものを全ての比較用画像P(i)(i=1,2,…,m)に対して用いるようにしてもよい。
【0018】
また、クエリ画像Qを撮影した際のGPS情報や地磁気センサーなどの情報を用いて、クエリ画像が撮影されたと想定される位置の周辺に複数回のレンダリングを行って比較用画像集合PSを得てもよい。
【0019】
また、比較用画像集合PSを構成するレンダリング画像の全部又は一部に関して、初回比較用画像レンダリング部11でレンダリングして生成したレンダリング画像を用いることに代えて、三次元地図Mの生成時に使用する実写真(三次元地図Mの作成される対象である街角等の実世界で撮影された実写真)を用いるようにしてもよい。また、リファレンス画像データベースとしての比較用画像集合PSについては、比較用画像検索装置10での内部処理として初回比較用画像レンダリング部11の処理を実行することに代えて、予め、三次元地図Mに対応する比較用画像集合PSを外部サーバ等で用意しておき、この外部サーバから比較用画像集合PSを比較用画像検索装置10で読み込む(初回比較用画像選択部12において読み込む)ようにすることで、初回比較用画像レンダリング部11の処理を省略するようにしてもよい。
【0020】
(2)ステップS2…初回比較用画像選択部12
ステップS2では、初回比較用画像選択部12が、N=1の初回用の比較用画像集合PS[1]を、初回比較用画像レンダリング部11で得た比較用画像集合PSから選択して、(すなわち、PS[1]⊂PSとなるものとして選択して、)ステップS3へと進む。
【0021】
具体的に、初回比較用画像選択部12は、初回比較用画像レンダリング部11でレンダリングした複数の比較用画像(比較用画像集合PS全体)の中から、後述する画像マッチング部13(N=1の初回)でのクエリ画像Qとの画像マッチングに適した比較用画像を選択して集合PS[1]を得る。選択した比較用画像は、N=1の初回の処理のために、後述する画像マッチング部13に出力する。ここで、選択する比較用画像は、1個のみ選択してもよいし、複数個を選択してもよい。
【0022】
(3)ステップS3…画像マッチング部13
ステップS3では、画像マッチング部13が、当該繰り返し回数Nに対応する比較用画像集合PS[N]とクエリ画像Qとを画像マッチングして対応点ペアを得てから、ステップS4へと進む。
【0023】
具体的に、画像マッチング部13は、N=1の初回においては初回比較用画像選択部12で選択された比較用画像集合PS[1]と、クエリ画像Qとを画像マッチングし、N≧2の2回目以降においては、後述する比較用画像レンダリング部16でN-1回目にレンダリングされた比較用画像集合PS[N](レンダリングはN-1回目で行われるが、これを用いたマッチングはN回目であるため、PS[N]と表記する)と、クエリ画像Qとを画像マッチングする。(なお、後述するように、比較用画像レンダリング部16は、最初の初回比較用画像レンダリング部11でのレンダリング(及び/又は実写真を取得すること)とは別途に、追加で新規のレンダリングを行うものである。)
【0024】
回数Nに応じてマッチング対象集合PS[N]が上記のように異なるが、画像マッチング処理自体は回数Nに依らず共通であり、クエリ画像Qの二次元座標と比較用画像P(i)∈PS[N]の二次元座標の対応点ペアを求める。得られた対応点ペアは、後述する推定カメラ姿勢算出部14に出力する。画像マッチングは、非特許文献1に記載の技術や、前掲の特許文献2に記載の技術を利用してもよい。
[非特許公報1] 「Wang, Qianqian, et al. "Learning feature descriptors using camera pose supervision." European Conference on Computer Vision. Springer, Cham, 2020.」
【0025】
なお、複数個の比較用画像が入力された場合は、1個のクエリ画像に対して、各比較用画像それぞれと画像マッチングを行い、その結果を後述の推定カメラ姿勢算出部14に出力する。例えば、5個の比較用画像がある場合、5回分の画像マッチングを行い、5回分の対応点ペアを後述の推定カメラ姿勢推定部14に出力する。ただし、画像マッチングを複数回行った結果得られた複数回分の対応点ペアを、1回分の結果として集約して、後述の推定カメラ姿勢推定部14に出力してもよい。
【0026】
(4)ステップS4…推定カメラ姿勢算出部14
ステップS4では、推定カメラ姿勢算出部14が、画像マッチング部13での結果(対応点ペア)からクエリ画像Qの推定カメラ姿勢を算出して、ステップS5へと進む。
【0027】
具体的に、推定カメラ姿勢算出部14は、画像マッチング部13で得られたクエリ画像PSと比較用画像P(i)∈PS[N]の対応点ペアをもとに、三次元地図Mの三次元座標とクエリ画像の二次元座標の対応点ペアを求め、これを用いてクエリ画像Qの推定カメラ姿勢を算出する。クエリ画像Qの推定カメラ姿勢は、まず三次元地図Mの三次元座標とクエリ画像の二次元座標の対応点ペアを算出し、その後、非特許文献2に記載の技術であるPnP(Perspective-n-Point)問題を解くことで求める。
[非特許文献2]:「Lepetit, Vincent, Francesc Moreno-Noguer, and Pascal Fua. "Epnp: An accurate o (n) solution to the pnp problem." International journal of computer vision 81.2 (2009): 155.」
【0028】
なお、レンダリングに関して説明した図3と同様に、当該N回目の推定カメラ姿勢を、三次元地図Mが定義される世界座標内におけるカメラの位置姿勢である外部パラメータEX[N]として推定することができる。
【0029】
ここで、次に図5でも説明するように、三次元地図の三次元座標とクエリ画像の二次元座標の対応点ペアは、比較用画像の二次元座標とクエリ画像の二次元座標の対応点ペアと、三次元地図の三次元座標と比較用画像の二次元座標の対応点ペアをもとに、比較用画像の二次元座標を経由して求めることができる。
【0030】
図5に、画像マッチング部13で得られた対応点ペアをもとに、推定カメラ姿勢を算出するまでの各処理p1~p4を模式的に表した図を示す。処理p1が画像マッチング部13の結果であり、この処理p1の結果(比較用画像P(i)の二次元座標とクエリ画像Qの二次元座標の対応点ペア)に対し、処理p2に示されるように、対応点ペアのうち比較用画像P(i)の二次元座標は、元の三次元地図Mを参照することで対応する三次元座標が定まる。従って、処理p1,p2の結果を照合して、処理p3に示されるように、対応点ペアのうちクエリ画像Qの二次元座標に対応する三次元座標が定まる。これにより、処理p4に示されるPnP問題を解くことで、クエリ画像Qのカメラ姿勢が推定できる。
【0031】
ここで、後述する図8内にも示されるように、推定カメラ姿勢算出部14では、画像マッチング部14から複数回分の画像マッチング結果が入力された場合、同数の複数の推定カメラ姿勢の算出を行って、比較用画像レンダリング部15へ出力すればよい。一方で、収束判定部16に対しては、複数の推定カメラ姿勢を出力するのではなく、これら複数の中から、収束判定を行うための単一の推定カメラ姿勢を選別したうえで出力する。(なお、画像マッチング部14で単一のマッチング結果のみが得られている場合は、推定カメラ姿勢も1つのみとなるので、収束判定部16へ出力するための1つを選別する処理は省略できる。)
【0032】
すなわち、前記画像マッチング部13から、複数回分の画像マッチングの結果が入力された場合は、その回数分の推定カメラ姿勢の算出を行い、より良いカメラ姿勢(最善と判定される1つのカメラ姿勢)を収束判定部16で収束判定に用いるための1つ推定カメラ姿勢として採用する。より良いカメラ姿勢の判定方法は、例えば、カメラ姿勢を推定した際に、非特許文献4(後述)に記載のRansac(ランダムサンプル投票)を適用し、算出したインライアの数が多い方としてもよい。
【0033】
こうして、推定カメラ姿勢算出部14では、当該N回目の結果として、収束判定部16へは1つの最善と判定された外部パラメータEX[N1]を、比較用画像レンダリング部15へは1つ以上の外部パラメータEX[N1], EX[N2],EX[N3],…を出力することができる。
【0034】
算出したクエリ画像Qの推定カメラ姿勢のうち、後述する比較用画像レンダリング部16に出力されたものは、次回で用いる比較用画像(次回のN+1回目用の比較用画像集合PS[N+1])をレンダリングするために利用される。
【0035】
なお、推定カメラ姿勢算出部14から収束判定部16あるいは比較用画像レンダリング部15にそれぞれ出力する、この1つ(単数)あるいは複数の推定カメラ姿勢について、添え字jにより単数あるいは複数のいずれにも該当するものとして、外部パラメータEX[Nj]として表記する。
【0036】
(5)ステップS5,S51,S52…収束判定部15
ステップS5では、収束判定部15が収束判定を行ってからステップS51へと進む。ステップS51では、ステップS5の判定結果が収束成立であればステップS52へ進み、収束不成立であればステップS6に進む。ステップS52では、比較用画像生成装置10における生成結果として比較用画像PS[N]を出力して、図2のフローを終了する。
【0037】
具体的に、収束判定部15では、推定カメラ姿勢算出部14で算出された(且つ、複数算出された場合は最善の1つとして選出された)推定カメラ姿勢に対して収束判定を行う。収束判定の結果、OK(収束した判定)の場合は、ステップS52において最新の比較用画像(画像集合PS[N])を出力する。NG(収束していない判定)の場合は、後述の比較用画像レンダリング部15に分岐する。(すなわち、ステップS51からステップS6へと進んで、比較用画像レンダリング部15の処理が行われる。)
【0038】
収束判定がNGとなった場合、後述の比較用画像レンダリング部16では、前記推定カメラ姿勢算出部14で(今回のN回目において)算出された推定カメラ姿勢をもとに、比較用画像のレンダリングを行い、(次回のN+1回目で利用するためのものとして、)再び前記画像マッチングに比較用画像(画像集合PS[N+1])が出力され、クエリ画像Qとの画像マッチングが行われる。このサイクルは、収束判定部15の判定結果がOKとなるまで繰り返される。
【0039】
収束判定は、最新(今回であるN回目)のクエリ画像Qの推定カメラ姿勢と、直前(前回であるN-1回目)のクエリ画像の推定カメラ姿勢を用いて行われるが、N=1回目の場合は、直前(N-1回目)の結果が存在しないため、必ずNGと判定され、後述の比較用画像レンダリング部16に分岐する。
【0040】
(6)ステップS6…比較用画像レンダリング部16
ステップS6では、比較用画像レンダリング部16が次のN+1回目の画像マッチング部13でクエリ画像Qとマッチングするための画像集合PS[N+1]をレンダリングしてから、ステップS3へ戻る。(当該ステップS6(N回目)からステップS3に戻った時点で、繰り返し回数が次のN+1回目に該当するものして更新されて、画像マッチング部13以降での処理が同様に繰り返して行われることとなる。)なお、比較用画像レンダリング部16の処理については、調整比較用画像を追加でレンダリングする場合について実施例として後述するが、調整比較用画像を追加せず、通常の比較用画像だけをレンダリングする場合は次の通りである。
【0041】
すなわち、比較用画像レンダリング部16では、当該N回目において推定カメラ姿勢算出部14で推定された1つあるいは複数の推定カメラ姿勢(前述の外部パラメータEX[Nj])においてそれぞれ三次元地図Mのレンダリングを行うことで、この推定カメラ姿勢の数と同数の(1つあるいは複数の)比較用画像P[Nj]∈PS[N+1]を得ることができる。(なお、レンダリング処理それ自体は、初回比較用画像レンダリング部11でのレンダリング処理と同様である。)なお、比較用画像に関して、当該N回目の処理においてj番目の外部パラメータEX[Nj]でレンダリングしたものであることを特に表す場合にはこのようにP[Nj]と表記し、それ以外の場合はiを比較用画像IDとして、単にP(i)と表記する。
【0042】
以上、図2の各ステップを説明しながら、図1の各機能ブロックについて説明した。以下ではさらに、図1の各機能ブロックの処理の実施例について説明する。
【0043】
(2)初回比較用画像選択部12での比較用画像集合PSの選択には、
(2-1)非特許文献3に記載のImage Retrievalの技術を利用してもよいし、
(2-2)前掲の非特許文献1に記載の技術や特許文献2に記載の技術で画像マッチングを行った際に、非特許文献4に記載のRansac(ランダムサンプル投票)を適用し、算出した外れ値(アウトライア)以外の値(インライア)の数が多い比較用画像を選択してもよいし、
(2-3)前掲の非特許文献1に記載の技術や特許文献2に記載の技術で画像マッチング行った後に、さらに非特許文献2の技術を用いてクエリ画像のカメラ姿勢を推定した際に、非特許文献4に記載のRansacを適用し、算出したインライアの数が多い比較用画像を選択してもよい。
[非特許文献3]:「Revaud, J., Almazan, J., Rezende, R. S., & Souza, C. R. D. (2019). Learning with average precision: Training image retrieval with a listwise loss. In Proceedings of the IEEE/CVF International Conference on Computer Vision (pp. 5107-5116)」
[非特許文献4]:「M. A. Fischler and R. C. Bolles, ``Random Sample Consensus: A Paradigm for Model Fitting with Applications to Image Analysis and Automated Cartography,'' Communications of the ACM 24(6):381-395 (1981)」
【0044】
(4)推定カメラ姿勢算出部14での三次元地図Mの三次元座標と比較用画像P(i)の二次元座標の対応点ペアを求める際には、
(4-1)図6に示すように、比較用画像P(i)のカメラ姿勢の位置Pos(i)(初回比較用画像レンダリング部11及び比較用画像レンダリング部16でのレンダリングの際の、並進成分及び回転成分で構成される外部パラメータEX(i)において並進成分として与えている)と、比較用画像P(i)の二次元座標とを結ぶ直線を延長した先で、三次元地図M(における構造物)と交差する点から求めてもよいし、
(4-2)画像マッチングに特許文献2に記載の手法を用いる場合は、比較用画像P(i)のカメラ姿勢をもとに、三次元地図の三次元座標を比較用画像上の二次元座標に変換することで求めてもよい。
【0045】
また、収束判定部15での収束判定がOKとなるまでの処理部間の繰り返しにおいて、図7に示すように、算出した推定カメラ姿勢が、クエリ画像Qに写っている構造物に対して、ほかの三次元オブジェクトによって遮蔽されて(隠れて)しまった場合は、推定カメラ姿勢の出力先である前記画像マッチング部13において、正しい画像マッチングができないことが想定される。これを回避するため、以下の処理を実施してもよい。
【0046】
なお、図7に示されるような遮蔽が発生していることについて、陽に(直接的に)検出するわけではなく、遮蔽が発生しうることも想定したものとして、以下の回避処理(回避可能性を高める処理)を行うことができる。(図7では、説明例として、N-1回目の推定姿勢が本来のクエリ画像Qの撮影状況に近く、N回目の推定姿勢では遮蔽発生により、本来のクエリ画像Qの撮影状況から乖離したものとしている。)
【0047】
(4-3) 遮蔽を回避するために、調整されたカメラ姿勢(以下、調整カメラ姿勢とし、元の推定カメラ姿勢が表す外部パラメータEX[Nj]に対して調整カメラ姿勢が表す外部パラメータをEXmod[Nj]と表記する)を算出し、比較用画像レンダリング部16に出力してもよい。この場合、推定カメラ姿勢算出部14で算出したクエリ画像Qの推定カメラ姿勢EX[Nj]に、調整カメラ姿勢EXmod[Nj]を加えた、例えば2種類のカメラ姿勢EX[Nj],EXmod[Nj]を比較用画像レンダリング部16に出力する。(これにより、推定カメラ姿勢と調整カメラ姿勢との少なくとも片方は遮蔽が発生しない状況とする可能性を、推定カメラ姿勢だけを用いる場合と比べて高めることができる。)なお、調整カメラ姿勢をもとに比較用画像レンダリング部16でレンダリングした画像を、調整比較用画像と呼ぶ。
【0048】
図7にも示されるように、N回目の推定カメラ姿勢EX[Nj]に対応するN回目の調整カメラ姿勢EXmod[Nj]は、直前のN-1回目の推定カメラ姿勢EX[N-1k]を種々の態様で変動させることで算出することができる。
【0049】
このように算出する理由は次の通りである。すなわち、N回目の推定カメラ姿勢EX[Nj]に、クエリ画像Qの本来の景色とは異なるオクルージョン(遮蔽)が発生していたとする場合を考えると、N回目の推定カメラ姿勢EX[Nj]を変動させたとしてもこのオクルージョンを回避できる可能性は低い。一方で、直前のN-1回目の推定カメラ姿勢EX[N-1k]にはオクルージョンが発生していない前提であれば、この推定カメラ姿勢EX[N-1k]を変動させた姿勢も、オクルージョンが発生していない可能性が高い。
【0050】
従って、本実施形態では、N回目の推定カメラ姿勢EX[Nj]に対応するN回目の調整カメラ姿勢EXmod[Nj]を、このN回目の推定カメラ姿勢EX[Nj]を変動させることにより算出するのではなく、直前のN-1回目の推定カメラ姿勢EX[N-1k]を変動させることによって算出する。
【0051】
このように算出することで、以下に例示される通り、N回目の調整カメラ姿勢は、直前のN-1回目の推定カメラ姿勢と同数だけ算出することができる。
前回2回目の推定カメラ姿勢が3個EX[21],EX[22],EX[23]あるとし、
今回3回目の推定カメラ姿勢が4個EX[31],EX[32],EX[33],EX[34]あるとすると、
今回3回目の調整カメラ姿勢は2回目の3個の推定カメラ姿勢をそれぞれ変動して
3個EXmod[31],EXmod[32],EXmod[33]として算出できる。
【0052】
なお、上記の例では前回の1つの推定カメラ姿勢を変動させて今回の1つの調整カメラ姿勢を得ることで、同数だけ算出しているが、前回の1つの推定カメラ姿勢を2種類以上
の手法で変動させて、2つ以上の調整カメラ姿勢を算出するようにしてもよい。例えば前回2回目の推定カメラ姿勢の1つEX[21]から2つの今回3回目の調整カメラ姿勢EXmod[311], EXmod[312]を得るようにしてもよい。
【0053】
調整カメラ姿勢を出力に加える場合の、一連の処理フローを図8に示すように、画像マッチング部13以降で処理する対象に、通常の比較用画像に加えて、調整比較用画像を追加するようにすればよい。すなわち、今回のN回目の処理において比較用画像レンダリング部15は、次回N+1回目の画像マッチング部13でクエリ画像Qとマッチングするための画像集合PS[N+1]をレンダリングするが、この画像集合PS[N+1]は以下のように構成される。
P[Nj],Pmod[Nj]∈PS[N+1]
P[Nj]はN回目の推定カメラ姿勢EX[Nj]でレンダリングした比較用画像
Pmod[Nj]はN回目の調整カメラ姿勢EXmod[Nj]でレンダリングした調整比較用画像
【0054】
換言すれば、次の関係がある。画像マッチング部13で今回N回目の画像マッチングを行う際には、(当該今回であるN回目の画像マッチング用途のために)前回N-1回にレンダリングされた画像集合PS[N]を利用し、この画像集合PS[N]は、前回の推定カメラ姿勢EX[N-1j]でレンダリングした比較用画像P[N-1j]と、これに対応する前回の調整カメラ姿勢EXmod[N-1j]でレンダリングした調整比較用画像Pmod[N-1j]とで構成されており、前回の調整カメラ姿勢EXmod[N-1j]は、前々回の推定カメラ姿勢EXmod[N-2k]を変動させることによって算出されている。
【0055】
ここで、前回の推定カメラ姿勢EX[N-1k]を変動させることによる今回の調整カメラ姿勢EXmod[Nj]の算出について、いくつかの実施例を示す。
【0056】
(4-3-1) 例えば、図9に示すように、前回N-1回目に算出した推定カメラ姿勢 EX[N-1k]を、視野に写る三次元オブジェクト(三次元地図Mの構成データ)の方向に移動させ、これを今回N回目の調整カメラ姿勢EXmod[Nj]としてもよい。なお、以下では、N+1回目の画像マッチングに用いる比較用画像/調整比較用画像をレンダリングするためのN回目の推定カメラ姿勢EX[Nj]や調整カメラ姿勢EXmod[Nj]を、適宜、推定カメラ姿勢[N]や調整カメラ姿勢[N]等と簡素化して表記することで説明する。
【0057】
当該移動させることで視野に写る三次元オブジェクトをもとに調整カメラ姿勢の位置を算出する方法について、いくつかの実施例を示す。(なお、調整カメラ姿勢[N]の向きについては、変動させる対象となる元の推定カメラ姿勢[N-1]の向きと同一としてよい。)
【0058】
(4-3-1-1)例えば、調整カメラ姿勢[N]の位置XAは、変動させる推定カメラ姿勢[N-1]を算出する際に得られた、K個の三次元オブジェクトの三次元座標のインライアの位置(XI1, XI2,…XIK)と、この推定カメラ姿勢[N-1]の位置XCとの、重み付き中間位置(XW1, XW2,…XWK)を
【0059】
【数1】
【0060】
として求め、M個の重み付き中間位置(XW1, XW2,…XWK)の代表位置の一例としての重心XA
【0061】
【数2】
【0062】
として、調整カメラ姿勢の座標XAを求めてもよい。(なお、K個は三次元オブジェクトの個数ではなく、インライアの個数である。)図10に、以上の式(1)~(4)の模式例として、調整カメラ姿勢[N]の位置XA、M個の三次元オブジェクトの三次元座標のインライアの位置(XI1, XI2,…XIK)、推定カメラ姿勢[N-1]の位置XC、重み付き中間位置(XW1, XW2,…XWK)とを模式的に示す。
【0063】
なお、式(1)~(4)において、αは位置を調整するパラメータであり、α>0(且つ、α≠1)の範囲で自由に設定してよい。例えば、0<α<1のとき、調整カメラ姿勢[N]の位置XAは、三次元オブジェクトと、推定カメラ姿勢[N-1]の間に位置する。このとき、αが0に近いほど、調整カメラ姿勢の位置XAは三次元オブジェクトに近づくし、αが1に近いほど、調整カメラ姿勢[N]の位置XAは推定カメラ姿勢[N-1]に近づく。また、α>1のとき、調整カメラ姿勢[N]の位置XAは、三次元オブジェクトから遠ざかる。図11に、αの値を変化させたときの、調整カメラ姿勢XAの位置を表した図を示す。(図11内では、矢印により、調整カメラ姿勢がαの値に応じて三次元オブジェクトに近づく/遠ざかる場合が示されている。)
【0064】
(4-3-1-2)例えば、調整カメラ姿勢の位置XA'は、変動させる元となる推定カメラ姿勢[N-1]を算出する際に得られた、M個の三次元オブジェクトの三次元座標のインライアの位置(XI1, XI2,…XIK)の中で、最もこの推定カメラ姿勢[N-1]の位置XCに近い三次元点XIr(以下、代表インライアと表記する)を式(5)のように求め、さらに式(6)のように、代表インライアの位置XIrと、推定カメラ姿勢[N-1]の位置XCの重み付き中間位置XA'として求めるようにしてもよい。
【0065】
【数3】
【0066】
ここで、βは位置を調整するパラメータであり、前記パラメータαの場合と同様に、β>0(且つ、β≠1)の範囲で自由に設定してよい。例えば、0<β<1のとき、調整カメラ姿勢の位置XA'は、三次元オブジェクトと、推定カメラ姿勢[N-1]の間に位置する。このとき、βが0に近いほど、調整カメラ姿勢[N]の位置XA'は三次元オブジェクトに近づくし、βが1に近いほど、調整カメラ姿勢[N]の位置XA'は推定カメラ姿勢[N-1]に近づく。また、β>1のとき、調整カメラ姿勢[N]の位置XA'は、三次元オブジェクトから遠ざかる。
【0067】
(4-3-2)例えば、図12に示すように、変動させる元となる推定カメラ姿勢[N-1]の周辺で、ランダムにカメラ姿勢を動かし、これらを調整カメラ姿勢[N]としてもよい。ランダムに動かす手法は、乱数εを発生されてこれに応じた姿勢変動(例えば180°逆向きに変動させてしまうといったように極端に大きく姿勢変動させるのではなく、ある程度の小さいと判定される範囲内での姿勢変動)を加えるような、所定の変換行列T(ε)等を用いればよい。調整カメラ姿勢は、1個生成してもよく、複数個生成してもよい。複数個生成した場合は、比較用画像レンダリング部16にすべて出力し、すべての調整カメラ姿勢における調整比較用画像をレンダリングする。前述の通り、レンダリングされた調整比較用画像は、画像マッチング部13に出力し、すべての調整比較用画像それぞれと、クエリ画像Qを画像マッチングし、その結果得られた対応点ペアを推定カメラ姿勢算出部14に出力すればよい。
【0068】
(4-3-3)例えば、今回の推定カメラ姿勢[N]と、前回の推定カメラ姿勢[N-1]の、重み付き中間位置を、調整カメラ姿勢[N]としてもよい。(この実施例ではすなわち、前回の推定カメラ姿勢[N-1]を変動させて調整カメラ姿勢[N]を得る際に、今回の推定カメラ姿勢[N]の情報も利用するようにしている。)調整カメラ姿勢[N]の位置XA''は、推定カメラ姿勢[N]の座標をXCNと、推定カメラ姿勢[N-1]の座標をXCN-1とし、以下の式(7)のように、XCNとXCN-1の重み付き中間位置を求めることで得ることができる。
【0069】
【数4】
【0070】
ここで、前記α,βと同様に、γは位置を調整するパラメータであり、(γ≠0,1とγ<1の範囲で)自由に設定してよい。例えば、0<γ<1のとき、調整カメラ姿勢の位置XA''は、推定カメラ姿勢[N]の位置XCNと、推定カメラ姿勢[N-1]の位置XCN-1の間に位置する。このとき、γが0に近いほど、調整カメラの位置XA''は、推定カメラ姿勢[N]の位置XCNに近づくし、γが1に近いほど、調整カメラの位置XA''は、推定カメラ姿勢[N-1]の位置XCN-1に近づく。(γ<0とすると、位置XCN-1から位置XCNの側に向けてさらに乖離する位置として、調整カメラの位置XA''を設定することもできるが、図7で説明したようなオクルージョン回避のための調整カメラ姿勢を得る観点からは、γを0に近いと判定される範囲の値とすることは好ましくない。)なお、調整カメラ姿勢[N]における姿勢(カメラ向き)も、位置と同様に、推定カメラ姿勢[N]と推定カメラ姿勢[N-1]の重み付け平均として求めてもよいし、前述の通り、推定カメラ姿勢[N-1]の姿勢を用いるようにしてもよい。
【0071】
(5)収束判定部15での収束判定について、種々の実施例を以下に説明する。
【0072】
(5-1)例えば、今回の推定カメラ姿勢[N]の位置と、前回の推定カメラ姿勢[N-1]の位置との距離が閾値以内であった場合、今回(N回目)において収束したと判定してもよい。閾値は、例えば1mなど自由に設定してよい。図13は、推定カメラ姿勢[N]の位置と、推定カメラ姿勢[N-1]の位置の関係を模式的に示した図である。
【0073】
(5-2)例えば、今回の推定カメラ姿勢[N]の回転(並進成分及び回転成分を含む外部パラメータとして表現される姿勢における回転成分)と、前回の推定カメラ姿勢[N-1]の回転との差分が閾値以内であった場合、収束したと判定してもよい。回転の差分は、推定カメラ姿勢[N]のクォータニオン表現における回転角θNと、推定カメラ姿勢[N-1]のクォータニオン表現における回転角θN-1の差分を計算してもよい。閾値は、例えば1°など自由に設定してよい。
【0074】
(5-3)例えば、(5-1)の方法で求めた推定カメラ姿勢[N]の位置と、推定カメラ姿勢[N-1]の位置との距離dlと、(5-2)の方法で求めた推定カメラ姿勢[N]の回転と、推定カメラ姿勢[N-1]の回転との差分dθを用いて、式(8)の加重平均Wが閾値以内であった場合、収束したと判定してもよい。
【0075】
【数5】
【0076】
ここで、wlおよびwθは、調整可能なパラメータであり、wlを大きくすれば、dlの影響が大きくなるため、より距離が小さい場合に収束しやすくなり、wθを大きくすれば、dθの影響が大きくなるため、より回転角の差分が小さい場合に収束しやすくなる。
【0077】
以上、本発明の各実施形態や実施例において、比較用画像のカメラ姿勢は、クエリ画像のカメラ姿勢に近い値であるほど、クエリ画像との比較に適した比較用画像をレンダリングすることができることを活用している。すなわち、比較用画像のレンダリングの際に、よりクエリ画像Qの本来のカメラ姿勢(真値)に近いカメラ姿勢(繰り返しにより真値に漸近的に近づいていくことが期待される)を用いてレンダリングを行うことができるため、クエリ画像との比較に最適な比較用画像を生成することができる。さらに例えば、GPSや地磁気センサーが利用できない場所においても、事前に用意した複数の候補の中から最適な比較用画像を選択することができる。
【0078】
以下、種々の補足例、代替例、追加例等について説明する。
【0079】
<1> 本実施形態の比較用画像生成装置10は、VPS等の要素技術として、GPS等を使用しない状況においても、ロボットの自己位置推定精度の向上に寄与することができる。これにより遠隔ロボットの利便性が向上され、遠隔の現場へと指導者等が移動することを必須とせず、ユーザ移動に必要となるエネルギー資源を節約することで二酸化炭素排出量を抑制できることから、国連が主導する持続可能な開発目標(SDGs)の目標13「気候変動とその影響に立ち向かうため、緊急対策を取る」に貢献することが可能となる。
【0080】
<2> 今回の調整カメラ姿勢[N]は、前回の推定カメラ姿勢[N-1]を種々の実施形態により変動させることで算出するものとした。図2のフローチャートにおいてN=1の初回の処理の際には、前回の推定カメラ姿勢[0]が存在しないため、調整カメラ姿勢[N]を利用する処理は、N≧2の2回目以降において実施すればよい。
【0081】
<3> 図7図8で説明した通り、今回の調整カメラ姿勢[N]をレンダリングのために追加利用するのは、今回の推定カメラ姿勢[N]にオクルージョンが発生している可能性を考慮したことによる。このため、今回とは別回としての前回の推定カメラ姿勢[N-1]を、今回の状況とは異なってオクルージョンが発生していないものとして、今回の調整カメラ姿勢[N]を算出するために変動させる対象として利用している。ここで、今回Nのオクルージョン発生可能性のもとで、オクルージョンが発生していないものとして利用しうるのは、最新の時点である今回とは別回であればよいので、前回N-1回に限らず、前回N-1以前の回の任意の組み合わせも利用できる。このため、K≧1として、今回の調整カメラ姿勢[N]を算出するために変動させる対象として、前回以前の推定カメラ姿勢[N-K]の任意の組み合わせを利用してもよい。
【0082】
例えば、今回の調整カメラ姿勢[N]を、前々回の推定カメラ姿勢[N-2]を変動させた姿勢と算出してもよい。また例えば、今回の調整カメラ姿勢[N]を、前回の推定カメラ姿勢[N-1]を変動させた姿勢と、前々回の推定カメラ姿勢[N-2]を変動させた姿勢と、の複数の姿勢として算出してもよい。ただし、図2のフローのステップS5,S51の収束性の観点からは、前回以前の推定カメラ姿勢[N-K]を用いるに際して、あまりKが大きいものを用いることは望ましくない。
【0083】
<4> 図14は、一般的なコンピュータ装置70におけるハードウェア構成の例を示す図である。比較用画像生成装置10は、このような構成を有する1台以上のコンピュータ装置70として実現可能である。なお、2台以上のコンピュータ装置70で比較用画像生成装置10を実現する場合、ネットワーク経由で処理に必要な情報の送受を行うようにしてよい。コンピュータ装置70は、所定命令を実行するCPU(中央演算装置)71、CPU71の実行命令の一部又は全部をCPU71に代わって又はCPU71と連携して実行する専用プロセッサとしてのGPU(グラフィックス演算装置)72、CPU71(及びGPU72)にワークエリアを提供する主記憶装置としてのRAM73、補助記憶装置としてのROM74、通信インタフェース75、ディスプレイ76、マウス、キーボード、タッチパネル等によりユーザ入力を受け付ける入力インタフェース77、カメラ78と、これらの間でデータを授受するためのバスBSと、を備える。
【0084】
比較用画像生成装置10の各機能部は、各部の機能に対応する所定のプログラムをROM74から読み込んで実行するCPU71及び/又はGPU72によって実現することができる。なお、CPU71及びGPU72は共に、演算装置(プロセッサ)の一種である。ここで、表示関連の処理が行われる場合にはさらに、ディスプレイ76が連動して動作し、データ送受信に関する通信関連の処理が行われる場合にはさらに通信インタフェース75が連動して動作する。比較用画像生成装置10による処理結果等はディスプレイ76で表示して出力してよい。
【符号の説明】
【0085】
10…比較用画像生成装置、11…初回比較用画像レンダリング部、12…初回比較用画像選択部、13…画像マッチング部、14…推定カメラ姿勢算出部、15…収束判定部、16…比較用画像レンダリング部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14