(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025023718
(43)【公開日】2025-02-17
(54)【発明の名称】情報処理装置、情報処理方法、及びプログラム
(51)【国際特許分類】
H04N 23/60 20230101AFI20250207BHJP
G06T 19/00 20110101ALI20250207BHJP
G06N 20/00 20190101ALI20250207BHJP
【FI】
H04N23/60 500
G06T19/00
G06N20/00
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2023128099
(22)【出願日】2023-08-04
(71)【出願人】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】110002044
【氏名又は名称】弁理士法人ブライタス
(72)【発明者】
【氏名】中野 学
【テーマコード(参考)】
5B050
5C122
【Fターム(参考)】
5B050BA09
5B050DA04
5B050DA05
5B050DA07
5B050EA04
5B050FA05
5B050FA10
5C122DA13
5C122EA06
5C122FA06
5C122FH11
5C122FH14
5C122HA13
5C122HA35
5C122HA46
5C122HA48
5C122HA88
5C122HB01
(57)【要約】
【課題】 カメラ位置を精度よく算出することにある。
【解決手段】 情報処理装置は、カメラによってシーンがカメラ位置からの撮影により得られたクエリ画像についてのカメラ位置と、前シーンについての三次元情報に基づいて、カメラ位置からの撮影に対応する投影画像と、深度画像を生成する画像生成部と、
クエリ画像及び投影画像間の対応関係と、深度画像に基づき、カメラ位置を修正するカメラ位置修正部と、を有する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
カメラによってシーンがカメラ位置からの撮影により得られたクエリ画像についての前記カメラ位置と、前シーンについての三次元情報に基づいて、前記カメラ位置からの撮影に対応する投影画像と、深度画像を生成する画像生成手段と、
前記クエリ画像及び前記投影画像間の対応関係と、前記深度画像に基づき、前記カメラ位置を修正するカメラ位置修正手段と、
を有する情報処理装置。
【請求項2】
前記投影画像と前記深度画像とを用いて、深度画像修正処理により、前記深度画像の誤差を修正する深度画像修正手段を、さらに、有する、
請求項1に記載の情報処理装置。
【請求項3】
前記深度画像修正処理は、
前記投影画像と前記深度画像を入力すると、ノイズを除去した前記修正した深度画像、又は、前記修正した深度画像と投影画像の両方、を出力する機械学習モデルである、
請求項2に記載の情報処理装置。
【請求項4】
前記機械学習モデルは、
深度画像と投影画像にノイズを加えた訓練データを入力して修正された深度画像を取得し、
前記修正された深度画像を、前記カメラ位置修正手段に入力し、ノイズを含まないカメラ位置の修正値を出力の訓練データとして機械学習をする、
請求項3に記載の情報処理装置。
【請求項5】
前記クエリ画像に含まれる第一の画像特徴点と、前記投影画像に含まれる第二の画像特徴点とを検出し、前記第一の画像特徴点と前記第二の画像特徴点とが互いに対応する第一の対応点を検出する検出手段を、さらに、有する、
請求項1に記載の情報処理装置。
【請求項6】
前記カメラ位置修正手段は、
前記修正した深度画像と、前記第一の画像特徴点と前記第二の画像特徴点とが互いに対応する第一の対応点とを用いて、前記クエリ画像と前記投影画像との間の第二の対応点を取得し、
前記第二の対応点を用いて、PnP(Perspective-n-point)問題を解く処理により、修正値を算出し、
前記修正値が、あらかじめ設定した閾値より大きい場合、前記修正値を、前記カメラ位置初期値、又は、現在のカメラ位置に加算し、
前記修正値が、前記閾値以下である場合、修正後のカメラ位置を採用する、
請求項1に記載の情報処理装置。
【請求項7】
前記三次元情報は、前記シーンの非線形陰関数を用いた三次元を表す情報である、
請求項1から4のいずれか一つに記載の情報処理装置。
【請求項8】
情報処理装置が、
カメラによってシーンがカメラ位置からの撮影により得られたクエリ画像についての前記カメラ位置と、前シーンについての三次元情報に基づいて、前記カメラ位置からの撮影に対応する投影画像と、深度画像を生成し、
前記クエリ画像及び前記投影画像間の対応関係と、前記深度画像に基づき、前記カメラ位置を修正する、
情報処理方法。
【請求項9】
コンピュータに、
カメラによってシーンがカメラ位置からの撮影により得られたクエリ画像についての前記カメラ位置と、前シーンについての三次元情報に基づいて、前記カメラ位置からの撮影に対応する投影画像と、深度画像を生成させ、
前記クエリ画像及び前記投影画像間の対応関係と、前記深度画像に基づき、前記カメラ位置を修正させる、
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、カメラの位置を推定する情報処理装置、情報処理方法、及びプログラムに関する。
【背景技術】
【0002】
ロボットの自己位置推定、被写体の三次元解析を行うためには、画像からカメラの三次元情報を推定する技術がある。その技術によれば、カメラの内部パラメータ(例えば、焦点距離、レンズ歪など)と、撮影シーンを構成する三次元座標とがともに既知である場合、カメラの回転行列と並進ベクトルを推定できる。なお、以降において、カメラの回転行列と並進ベクトルを合わせて単にカメラ位置と呼ぶ。
【0003】
画像からカメラ位置を推定する一つの方法としてPnP(Perspective-n-point)問題を解くことが挙げられる。PnP問題を解くためには、まず、事前に3D(3 Dimension)スキャナを用いてシーンの3D点群を取得する。次に、カメラでシーンを撮影した画像から特徴点を算出し、対応する3D点(2D-3D対応点)を決定する。最後に、与えられた複数の2D-3D対応点を用いてPnP問題を解き、カメラ位置を推定する。特許文献1には、PnP問題の大域的最適解を得る方法が記載されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
従来のカメラ位置推定方法では、照明条件が変化したり、3D点に大きな誤差が含まれたりする場合、カメラ位置を安定して精度よく推定することが困難である。なお、特許文献1の方法では、精度よくカメラ位置を推定できないことがある。
【0006】
本開示の目的の一例は、カメラ位置を精度よく算出することにある。
【課題を解決するための手段】
【0007】
上記目的を達成するため、本開示の一側面における情報処理装置は、
カメラによってシーンがカメラ位置からの撮影により得られたクエリ画像についての前記カメラ位置と、前シーンについての三次元情報に基づいて、前記カメラ位置からの撮影に対応する投影画像と、深度画像を生成する画像生成部と、
前記クエリ画像及び前記投影画像間の対応関係と、前記深度画像に基づき、前記カメラ位置を修正するカメラ位置修正部と、
を有することを特徴とする。
【0008】
また、上記目的を達成するため、本開示の一側面における情報処理方法は、
情報処理装置が、
カメラによってシーンがカメラ位置からの撮影により得られたクエリ画像についての前記カメラ位置と、前シーンについての三次元情報に基づいて、前記カメラ位置からの撮影に対応する投影画像と、深度画像を生成し、
前記クエリ画像及び前記投影画像間の対応関係と、前記深度画像に基づき、前記カメラ位置を修正する、
ことを特徴とする。
【0009】
さらに、上記目的を達成するため、本開示の一側面におけるプログラムは、
コンピュータに、
カメラによってシーンがカメラ位置からの撮影により得られたクエリ画像についての前記カメラ位置と、前シーンについての三次元情報に基づいて、前記カメラ位置からの撮影に対応する投影画像と、深度画像を生成させ、
前記クエリ画像及び前記投影画像間の対応関係と、前記深度画像に基づき、前記カメラ位置を修正させる、
ことを特徴とする。
【発明の効果】
【0010】
本開示によれば、カメラ位置を精度よく算出することができる。
【図面の簡単な説明】
【0011】
【
図1】
図1は、情報処理装置の一例を説明するための図である。
【
図2】
図2は、情報処理装置を有するシステムの一例を説明するための図である。
【
図3】
図3は、深度画像修正モデルの学習時の一例について説明をするための図である。
【
図4】
図4は、情報処理装置の動作の一例を説明するための図である。
【
図5】
図5は、変形例1の説明をするための図である。
【
図6】
図6は、実施形態、変形例1における情報処理装置を実現するコンピュータの一例を説明するための図である。
【発明を実施するための形態】
【0012】
以下、図面を参照して実施形態について説明する。なお、以下で説明する図面において、同一の機能又は対応する機能を有する要素には同一の符号を付し、その繰り返しの説明は省略することもある。
(実施形態)
図1を用いて情報処理装置の構成について説明する。
図1は、情報処理装置の一例を説明するための図である。
【0013】
[装置構成]
図1に示す情報処理装置は、カメラ位置(回転行列と並進ベクトル)を精度よく算出する装置である。また、
図1に示すように、情報処理装置10は、画像生成部11と、カメラ位置修正部12とを有する。
【0014】
画像生成部11は、カメラによってシーンがカメラ位置からの撮影により得られたクエリ画像についてのカメラ位置と、前シーンについての三次元情報に基づいて、カメラ位置からの撮影に対応する投影画像と、深度画像を生成する。
【0015】
カメラ位置は、カメラの内部パラメータ(例えば、焦点距離、レンズ歪など)と、シーンを構成する三次元座標とを用いて推定した、カメラの回転行列と並進ベクトルとを表す情報である。
【0016】
クエリ画像は、カメラによりシーンを撮影することによって取得される画像で、カメラ位置を推定するために用いる入力画像である。入力画像は、RGB値で表現されたカラー画像でもよいし、輝度値のみで表されたグレースケール画像でもよい。
【0017】
三次元情報は、例えば、陰関数三次元情報などである。陰関数三次元情報は、例えば、NeRF(Neural Radiance Fields)やSRN(Scene Representation Network)のような非線形陰関数を用いた三次元を表す情報である。また、三次元情報は、シーンの三次元形状情報に加えて、クエリ画像と同じ色表現(RGB又はグレースケール)を合わせ持っている。
【0018】
カメラ位置修正部12は、クエリ画像及び投影画像間の対応関係と、深度画像に基づき、カメラ位置を修正する。
【0019】
このように、実施形態においては、修正した深度画像と第一の対応点とを用いて、カメラ位置を修正するので、カメラ位置を精度よく算出することができる。
【0020】
[システム構成]
図2を用いて、情報処理装置10の構成をより具体的に説明する。
図2は、情報処理装置を有するシステムの一例を説明するための図である。
【0021】
図2に示すように、実施形態におけるシステム100は、情報処理装置10と、カメラ20と、記憶装置30とを有する。情報処理装置10は、カメラ(撮像装置)20と、記憶装置30と、入力装置40と、出力装置50とがネットワークにより電気的に接続されている。
【0022】
ネットワークは、例えば、インターネット、LAN(Local Area Network)、専用回線、電話回線、企業内ネットワーク、移動体通信網、ブルートゥース(登録商標)、Wi-Fi(Wireless Fidelity)(登録商標)などの通信回線を用いて構築された一般的なネットワークである。
【0023】
情報処理装置10は、例えば、CPU(Central Processing Unit)、又はFPGA(Field-Programmable Gate Array)などのプログラマブルなデバイス、又はGPU(Graphics Processing Unit)、又はそれらのうちのいずれか一つ以上を搭載した回路、サーバコンピュータ、パーソナルコンピュータ、モバイル端末などの情報処理装置である。
【0024】
カメラ20は、時系列に撮像した画像を情報処理装置10に出力する。カメラ20は、例えば、単眼カメラ(例えば、広角カメラ、魚眼カメラ、全天球カメラなど)、複眼カメラ(例えば、ステレオカメラ、マルチカメラなど)、RGB-Dカメラ(例えば、深度カメラ、ToFカメラなど)などが考えられる。なお、カメラ20は、情報処理装置10に設けてもよい。
【0025】
記憶装置30は、データベース、サーバコンピュータ、メモリを有する回路などである。
図2の例では、記憶装置30は情報処理装置10の外部に設けているが、情報処理装置10の内部に設けてもよい。
【0026】
入力装置40は、例えば、タッチパネル、マウス、キーボードなどの装置(ユーザインタフェース)。なお、入力装置40は、情報処理装置10に設けてもよい。
【0027】
出力装置50は、出力可能な形式に変換された、後述する出力情報を取得し、その出力情報に基づいて、生成した画像及び音声などを出力する。出力装置50は、例えば、液晶、有機EL(Electro Luminescence)、CRT(Cathode Ray Tube)を用いた画像表示装置などである。さらに、画像表示装置は、スピーカなどの音声出力装置などを備えていてもよい。なお、出力装置50は、プリンタなどの印刷装置でもよい。なお、出力装置50は、情報処理装置10に設けてもよい。
【0028】
情報処理装置について詳細に説明する。
情報処理装置10は、画像生成部11と、カメラ位置修正部12と、深度画像修正部13と、検出部14と、出力情報生成部15とを有する。
【0029】
画像生成部11は、クエリ画像のカメラ位置の初期状態を表すカメラ位置初期値と、カメラが撮像したシーンの三次元情報とを用いて、カメラ位置に基づいて三次元情報を画像平面へ投影し、投影画像と深度画像を生成する。
【0030】
カメラ位置初期値は、例えば、ランダムな回転行列と並進ベクトル、又はシーンの三次元座標系の原点でもよい。
【0031】
また、できるだけ精度よくカメラ位置を自動で得るために、例えば、VLAD(Locally Aggregated Descriptor)、BoW(Bag of word)などの既存の手法を用いてもよい。
【0032】
投影画像は、入力されたカメラ位置に基づき、三次元情報をカメラの画像平面へ投影した画像である。なお、投影画像は、クエリ画像と同じ色表現を有している。
【0033】
深度画像は、画像の各ピクセルにカメラを原点とする座標系における奥行き(デプス)値を有する画像である。なお、奥行き値をそのまま有してもよいし、奥行き値の逆数を有してもよい。
【0034】
具体的には、画像生成部11は、まず、記憶装置30から、カメラ位置を推定するためのクエリ画像のカメラ位置初期値と、カメラが撮像したシーンについての三次元情報とを取得する。次に、画像生成部11は、カメラ位置初期値と三次元情報とを用いて、カメラ位置に基づいて三次元情報を画像平面に投影して、投影画像と深度画像を生成する。
【0035】
深度画像修正部13は、投影画像と深度画像とを用いて、深度画像修正処理により、深度画像の誤差を修正する。
【0036】
具体的には、深度画像修正部13は、まず、投影画像と深度画像とを取得する。次に、深度画像修正部13は、投影画像と深度画像とを用いて、深度画像修正処理により、深度画像に含まれる誤差を修正する。
【0037】
誤差は、生成された深度画像に生じる不正確な深度値のことであり、いわゆるアーティファクトとも呼ばれる。
【0038】
深度画像修正処理は、投影画像に基づいて深度画像を修正する処理である。具体的には、深度画像修正処理は、例えば、ニューラルネットワークを用いた、深度画像に含まれる誤差を修正する深度画像修正モデルを用いて、深度画像を修正する処理である。
【0039】
なお、深度画像修正処理は、ニューラルネットワークを用いた処理に限定されず、サポートベクターマシンや、ランダムフォレストなどの機械学習手法であってもよい。また、深度画像を修正する処理は、機械学習手法には限定されず、修正ルールに従って修正する処理であってもよい。
【0040】
深度画像修正モデルは、生成した投影画像と深度画像を入力すると、ノイズを除去した投影画像と深度画像の両方、又は、深度画像を出力する機械学習モデルである。
【0041】
図3を用いて、深度画像修正モデルの学習について説明する。
図3は、深度画像修正モデルの学習の一例について説明をするための図である。
【0042】
図3の例では、学習においては、まず、記憶装置30から、過去にカメラ20で撮像した様々なシーンを取得する。次に、コンピュータグラフィックスを用いて、シーンそれぞれにノイズを付加する。
【0043】
ノイズは、カメラのセンサノイズ分布が既知であればその分布に基づくランダム値であり、未知の場合はガウス分布に基づくランダム値により代替される。
【0044】
次に、投影画像と深度画像それぞれにノイズを付加した複数の真値ペアを生成して訓練データとする。次に、投影画像と深度画像からノイズを除去する深度画像修正モデルに、生成した複数の訓練データを入力し、教師あり学習を実行する。
【0045】
なお、コンピュータグラフィックスを用いなくてもよい。例えば、様々なシーンそれぞれについてNeRFを用いて学習した複数の投影画像と深度画像とを生成し、シーンそれぞれに対応する投影画像と深度画像の正解ペアを生成してもよい。
【0046】
検出部14は、クエリ画像に含まれる第一の画像特徴点と、投影画像に含まれる第二の画像特徴点とを検出し、第一の画像特徴点と第二の画像特徴点とが互いに対応する第一の対応点(2D-2D対応点)を検出する。
【0047】
2D-2D対応点は、マッチングした、第一の画像特徴点と第二の画像特徴点の組を表す情報である。2D-2D対応点を取得する方法としては、例えば、SIFT(Scale Invariant Feature Transform)、SuperPointなどの、照明変動に頑健な手法を利用する。
【0048】
なお、2D-2D対応点は、ユーザが手動で指定してもよい。また、RANSAC(Random Sample Consensus)といった誤対応点の除去を受け付ける方法で取得してもよい。
【0049】
具体的には、検出部14は、まず、クエリ画像と投影画像とを取得する。次に、検出部14は、クエリ画像に含まれる第一の画像特徴点と、投影画像に含まれる第二の画像特徴点とを検出する。次に、検出部14は、検出した第一の画像特徴点と第二の画像特徴点とが互いに対応する2D-2D対応点(第一の対応点)を検出する。
【0050】
カメラ位置修正部12は、まず、修正された深度画像と2D-2D対応点(第一の対応点)とを取得する。次に、カメラ位置修正部12は、修正された深度画像と2D-2D対応点とを用いて、カメラ位置修正処理により、カメラ位置を修正するための修正値を算出する。
【0051】
カメラ位置修正処理では、まず、修正した深度画像と2D-2D対応点(第一の対応点)とを用いて、クエリ画像と投影画像との間の2D-3D対応点(第二の対応点)を取得する。具体的には、投影画像の画素それぞれと、修正した深度画像の画素それぞれの奥行き値とを対応付ける。すなわち、クエリ画像と投影画像との間の2D-3D対応点が得られる。
【0052】
次に、2D-3D対応点(第二の対応点)を用いて、PnP(Perspective-n-point)問題を解く処理により、修正値を算出する。具体的には、既存のPnP問題の解法を用いて、投影画像を原点とするカメラ座標系におけるクエリ画像のカメラ位置を算出する。ここで、算出したカメラ位置は、投影画像からクエリ画像へのカメラ位置の差分(修正値)に等価である。したがって、修正値(差分)が小さい場合、回転行列の差分は単位行列へ近づき、並進ベクトルの差分はゼロベクトルへと近づく。
【0053】
次に、修正値が、あらかじめ設定した閾値より大きい場合、カメラ位置修正部12は、修正値を用いてカメラ位置を修正する。具体的には、カメラ位置修正部12は、修正値を、カメラ位置初期値、又は、現在のカメラ位置に加算する。
【0054】
次に、カメラ位置修正部12は、修正したカメラ位置を画像生成部11に出力する。対して、修正値が閾値以下である場合、修正後のカメラ位置を採用する。すなわち、修正値が、閾値以下になるまで処理を繰り返す。
【0055】
出力情報生成部15は、例えば、クエリ画像、投影画像、深度画像、カメラ位置の三次元空間表示を一つ以上組み合わせて、出力装置50に表示するための出力情報を生成する。その後、出力情報生成部15は、出力情報を出力装置50に出力する。ただし、出力情報生成部15は、情報処理装置10に設けなくてもよい。
【0056】
[装置動作]
次に、実施形態における情報処理装置の動作について
図4を用いて説明する。
図4は、情報処理装置の動作の一例を説明するための図である。以下の説明においては、適宜図を参照する。また、実施形態では情報処理装置を動作させることによって、情報処理方法が実施される。よって、実施形態における情報処理方法の説明は、以下の情報処理装置の動作説明に代える。
【0057】
図4に示すように、まず、推定するクエリ画像のカメラ位置の初期状態を表すカメラ位置初期値と、カメラが撮像したシーンの三次元情報とを用いて、カメラ位置に基づいて三次元情報を画像平面へ投影し、投影画像と深度画像を生成する(ステップA1)。
【0058】
次いで、深度画像修正部13は、投影画像と深度画像とを用いて、深度画像修正処理により、深度画像の誤差を修正する(ステップA2)。
【0059】
次いで、検出部14は、クエリ画像に含まれる第一の画像特徴点と、投影画像に含まれる第二の画像特徴点とを検出し、第一の画像特徴点と第二の画像特徴点とが互いに対応する2D-2D対応点(第一の対応点)を検出する(ステップA3)。なお、上述したステップA2とステップA3の処理順は逆でもよい。
【0060】
次に、カメラ位置修正部12は、修正した深度画像と第一の対応点とを用いてクエリ画像と投影画像との間の2D-3D対応点(第二の対応点)を取得する(ステップA4)。
【0061】
次に、カメラ位置修正部12は、2D-3D対応点を用いて、PnP問題を解く処理により修正値を算出する(ステップA5)。
【0062】
次に、カメラ位置修正部12は、修正値が閾値より大きいか否かを判定する(ステップA6)。修正値が閾値より大きい場合(ステップA6:Yes)、修正値を用いてカメラ位置を修正する(ステップA7)。
【0063】
具体的には、ステップA7において、カメラ位置修正部12は、修正値を、カメラ位置初期値、又は、現在のカメラ位置に加算する。そして、修正したカメラ位置を用いて、再度、ステップA1から処理を実行する。
【0064】
対して、修正値が閾値以下である場合(ステップA6:No)、修正したカメラ位置を採用して、処理を終了する。その後、出力情報生成部15は、出力情報を生成し、出力装置50に出力する(ステップA8)。
【0065】
[実施形態の効果]
以上のように実施形態によれば、修正した深度画像と2D-2D対応点とを用いて、カメラ位置を修正するので、カメラ位置を精度よく算出することができる。また、画像からのカメラ位置推定の用途に好適である。
【0066】
(変形例1)
変形例1について
図5を用いて説明する。
図5は、変形例1の説明をするための図である。上述した深度画像修正部13の深度画像修正モデルは、ニューラルネットワークを用いた、教師あり学習により構築したが、変形例1では、深度画像修正モデルを、ニューラルネットワークを用いた、深度画像の真値を必要としない学習により構築する。
【0067】
変形例1の深度画像修正モデルは、生成した投影画像と深度画像を入力すると、ノイズを除去した投影画像と深度画像の両方、又は、深度画像を出力する機械学習モデルである。
【0068】
図5の例では、深度画像と投影画像にノイズを加えたデータを入力の訓練データを入力し、カメラ位置修正部12のカメラ位置の修正値を出力の訓練データとして機械学習してもよい。すなわち、カメラ位置の真値と、推定値の差分を誤差逆伝搬法により学習する。これにより、修正された深度画像は暗黙的に学習されることになる。
【0069】
変形例1によれば、深度画像の真値を事前に生成する必要がなくなるため、コンピュータグラフィックスによるシミュレーションだけでなくRGB-Dセンサにより撮影された実データをも学習に利用できる。
【0070】
[プログラム]
実施形態におけるプログラムは、コンピュータに、
図4に示すステップA1からA8を実行させるプログラムであればよい。このプログラムをコンピュータにインストールし、実行することによって、実施形態における情報処理装置と情報処理方法とを実現することができる。この場合、コンピュータのプロセッサは、画像生成部11、カメラ位置修正部12、深度画像修正部13、検出部14、出力情報生成部15として機能し、処理を行なう。
【0071】
また、実施形態におけるプログラムは、複数のコンピュータによって構築されたコンピュータシステムによって実行されてもよい。この場合は、例えば、各コンピュータが、それぞれ、画像生成部11、カメラ位置修正部12、深度画像修正部13、検出部14、出力情報生成部15のいずれかとして機能してもよい。
【0072】
[物理構成]
ここで、実施形態、変形例1におけるプログラムを実行することによって、情報処理装置を実現するコンピュータについて
図6を用いて説明する。
図6は、実施形態、変形例1における情報処理装置を実現するコンピュータの一例を説明するための図である。
【0073】
図6に示すように、コンピュータ110は、CPU(Central Processing Unit)111と、メインメモリ112と、記憶装置113と、入力インターフェイス114と、表示コントローラ115と、データリーダ/ライタ116と、通信インターフェイス117とを備える。これらの各部は、バス121を介して、互いにデータ通信可能に接続される。なお、コンピュータ110は、CPU111に加えて、又はCPU111に代えて、GPU、又はFPGAを備えていてもよい。
【0074】
CPU111は、記憶装置113に格納された、コード群で構成された実施形態、変形例1におけるプログラムをメインメモリ112に展開し、各コードを所定順序で実行することにより、各種の演算を実施する。メインメモリ112は、典型的には、DRAM(Dynamic Random Access Memory)などの揮発性の記憶装置である。
【0075】
また、実施形態、変形例1におけるプログラムは、コンピュータ読み取り可能な記録媒体120に格納された状態で提供される。なお、実施形態におけるプログラムは、通信インターフェイス117を介して接続されたインターネット上で流通するものであってもよい。
【0076】
また、記憶装置113の具体例としては、ハードディスクドライブの他、フラッシュメモリなどの半導体記憶装置があげられる。入力インターフェイス114は、CPU111と、キーボード及びマウスといった入力機器118との間のデータ伝送を仲介する。表示コントローラ115は、ディスプレイ装置119と接続され、ディスプレイ装置119での表示を制御する。
【0077】
データリーダ/ライタ116は、CPU111と記録媒体120との間のデータ伝送を仲介し、記録媒体120からのプログラムの読み出し、及びコンピュータ110における処理結果の記録媒体120への書き込みを実行する。通信インターフェイス117は、CPU111と、他のコンピュータとの間のデータ伝送を仲介する。
【0078】
また、記録媒体120の具体例としては、CF(Compact Flash(登録商標))及びSD(Secure Digital)などの汎用的な半導体記憶デバイス、フレキシブルディスク(Flexible Disk)などの磁気記録媒体、又はCD-ROM(Compact Disk Read Only Memory)などの光学記録媒体があげられる。
【0079】
なお、実施形態、変形例1における情報処理装置10は、プログラムがインストールされたコンピュータではなく、各部に対応したハードウェア、例えば、電子回路を用いることによっても実現可能である。さらに、情報処理装置10は、一部がプログラムで実現され、残りの部分がハードウェアで実現されていてもよい。実施形態、変形例1において、コンピュータは、
図6に示すコンピュータに限定されることはない。
【0080】
[付記]
以上の実施形態、変形例1に関し、更に以下の付記を開示する。上述した実施形態の一部又は全部は、以下に記載する(付記1)から(付記21)により表現することができるが、以下の記載に限定されるものではない。
【0081】
(付記1)
カメラによってシーンがカメラ位置からの撮影により得られたクエリ画像についての前記カメラ位置と、前シーンについての三次元情報に基づいて、前記カメラ位置からの撮影に対応する投影画像と、深度画像を生成する画像生成部と、
前記クエリ画像及び前記投影画像間の対応関係と、前記深度画像に基づき、前記カメラ位置を修正するカメラ位置修正部と、
を有する情報処理装置。
【0082】
(付記2)
前記投影画像と前記深度画像とを用いて、深度画像修正処理により、前記深度画像の誤差を修正する深度画像修正部を、さらに、有する、
付記1に記載の情報処理装置。
【0083】
(付記3)
前記深度画像修正処理は、
前記投影画像と前記深度画像を入力すると、ノイズを除去した前記修正した深度画像、又は、前記修正した深度画像と投影画像の両方、を出力する機械学習モデルである、
付記2に記載の情報処理装置。
【0084】
(付記4)
前記機械学習モデルは、
深度画像と投影画像にノイズを加えた訓練データを入力して修正された深度画像を取得し、
前記修正された深度画像を、前記カメラ位置修正部に入力し、ノイズを含まないカメラ位置の修正値を出力の訓練データとして機械学習をする、
付記3に記載の情報処理装置。
【0085】
(付記5)
前記クエリ画像に含まれる第一の画像特徴点と、前記投影画像に含まれる第二の画像特徴点とを検出し、前記第一の画像特徴点と前記第二の画像特徴点とが互いに対応する第一の対応点を検出する検出部を、さらに、有する、
付記1に記載の情報処理装置。
【0086】
(付記6)
前記カメラ位置修正手段は、
前記修正した深度画像と、前記第一の画像特徴点と前記第二の画像特徴点とが互いに対応する第一の対応点とを用いて、前記クエリ画像と前記投影画像との間の第二の対応点を取得し、
前記第二の対応点を用いて、PnP(Perspective-n-point)問題を解く処理により、前記修正値を算出し、
前記修正値が、あらかじめ設定した閾値より大きい場合、前記修正値を、前記カメラ位置初期値、又は、現在のカメラ位置に加算し、
前記修正値が、前記閾値以下である場合、修正後のカメラ位置を採用する、
付記1に記載の情報処理装置。
【0087】
(付記7)
前記三次元情報は、前記シーンの非線形陰関数を用いた三次元を表す情報である、
付記1から4のいずれか一つに記載の情報処理装置。
【0088】
(付記8)
情報処理装置が、
カメラによってシーンがカメラ位置からの撮影により得られたクエリ画像についての前記カメラ位置と、前シーンについての三次元情報に基づいて、前記カメラ位置からの撮影に対応する投影画像と、深度画像を生成し、
前記クエリ画像及び前記投影画像間の対応関係と、前記深度画像に基づき、前記カメラ位置を修正する、
情報処理方法。
【0089】
(付記9)
前記情報処理装置が、
さらに、前記投影画像と前記深度画像とを用いて、深度画像修正処理により、前記深度画像の誤差を修正する、
付記8に記載の情報処理方法。
【0090】
(付記10)
前記深度画像修正処理は、
前記投影画像と前記深度画像を入力すると、ノイズを除去した前記修正した深度画像、又は、前記修正した深度画像と投影画像の両方、を出力する機械学習モデルである、
付記9に記載の情報処理方法。
【0091】
(付記11)
前記機械学習モデルは、
深度画像と投影画像にノイズを加えた訓練データを入力して修正された深度画像を取得し、
前記修正された深度画像を、前記カメラ位置修正部に入力し、ノイズを含まないカメラ位置の修正値を出力の訓練データとして機械学習をする、
付記10に記載の情報処理方法。
【0092】
(付記12)
前記情報処理装置が、
さらに、前記クエリ画像に含まれる第一の画像特徴点と、前記投影画像に含まれる第二の画像特徴点とを検出し、前記第一の画像特徴点と前記第二の画像特徴点とが互いに対応する第一の対応点を検出する、
付記8に記載の情報処理方法。
【0093】
(付記13)
前記情報処理装置が、
さらに、前記修正した深度画像と、前記第一の画像特徴点と前記第二の画像特徴点とが互いに対応する第一の対応点とを用いて、前記クエリ画像と前記投影画像との間の第二の対応点を取得し、
前記第二の対応点を用いて、PnP(Perspective-n-point)問題を解く処理により、修正値を算出し、
前記修正値が、あらかじめ設定した閾値より大きい場合、前記修正値を、前記カメラ位置初期値、又は、現在のカメラ位置に加算し、
前記修正値が、前記閾値以下である場合、修正後のカメラ位置を採用する、
付記8に記載の情報処理方法。
【0094】
(付記14)
前記三次元情報は、前記シーンの非線形陰関数を用いた三次元を表す情報である、
付記8から11のいずれか一つに記載の情報処理方法。
【0095】
(付記15)
コンピュータに、
カメラによってシーンがカメラ位置からの撮影により得られたクエリ画像についての前記カメラ位置と、前シーンについての三次元情報に基づいて、前記カメラ位置からの撮影に対応する投影画像と、深度画像を生成させ、
前記クエリ画像及び前記投影画像間の対応関係と、前記深度画像に基づき、前記カメラ位置を修正させる、
プログラム。
【0096】
(付記16)
前記プログラムが、前記コンピュータに、
前記投影画像と前記深度画像とを用いて、深度画像修正処理により、前記深度画像の誤差を修正させる、
付記15に記載のプログラム。
【0097】
(付記17)
前記深度画像修正処理は、
前記投影画像と前記深度画像を入力すると、ノイズを除去した前記修正した深度画像、又は、前記修正した深度画像と投影画像の両方、を出力する機械学習モデルである、
付記16に記載のプログラム。
【0098】
(付記18)
前記機械学習モデルは、
深度画像と投影画像にノイズを加えた訓練データを入力して修正された深度画像を取得し、
前記修正された深度画像を、前記カメラ位置修正部に入力し、ノイズを含まないカメラ位置の修正値を出力の訓練データとして機械学習をする、
付記17に記載のプログラム。
【0099】
(付記19)
前記プログラムが、前記コンピュータに、
前記クエリ画像に含まれる第一の画像特徴点と、前記投影画像に含まれる第二の画像特徴点とを検出させ、前記第一の画像特徴点と前記第二の画像特徴点とが互いに対応する第一の対応点を検出させる、
付記15に記載のプログラム。
【0100】
(付記20)
前記プログラムが、前記コンピュータに、
前記修正した深度画像と、前記第一の画像特徴点と前記第二の画像特徴点とが互いに対応する第一の対応点とを用いて、前記クエリ画像と前記投影画像との間の第二の対応点を取得させ、
前記第二の対応点を用いて、PnP(Perspective-n-point)問題を解く処理により、修正値を算出させ、
前記修正値が、あらかじめ設定した閾値より大きい場合、前記修正値を、前記カメラ位置初期値、又は、現在のカメラ位置に加算させ、
前記修正値が、前記閾値以下である場合、修正後のカメラ位置を採用させる、
付記15に記載のプログラム。
【0101】
(付記21)
前記三次元情報は、前記シーンの非線形陰関数を用いた三次元を表す情報である、
付記15から18のいずれか一つに記載のプログラム。
【0102】
以上、実施形態、変形例1を参照して発明を説明したが、発明は上述した実施形態、変形例1に限定されるものではない。発明の構成や詳細には、発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【産業上の利用可能性】
【0103】
上述した記載によれば、カメラ位置を精度よく算出することにある。また、カメラ位置の算出が必要な分野において有用である。
【符号の説明】
【0104】
10 情報処理装置
11 画像生成部
12 カメラ位置修正部
13 深度画像修正部
14 検出部
15 出力情報生成部
20 カメラ
30 記憶装置
40 入力装置
50 出力装置
110 コンピュータ
111 CPU
112 メインメモリ
113 記憶装置
114 入力インターフェイス
115 表示コントローラ
116 データリーダ/ライタ
117 通信インターフェイス
118 入力機器
119 ディスプレイ装置
120 記録媒体
121 バス