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

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

▶ KDDI株式会社の特許一覧

特許7590162カメラ姿勢推定装置、学習方法及びプログラム
<>
  • 特許-カメラ姿勢推定装置、学習方法及びプログラム 図1
  • 特許-カメラ姿勢推定装置、学習方法及びプログラム 図2
  • 特許-カメラ姿勢推定装置、学習方法及びプログラム 図3
  • 特許-カメラ姿勢推定装置、学習方法及びプログラム 図4
  • 特許-カメラ姿勢推定装置、学習方法及びプログラム 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-18
(45)【発行日】2024-11-26
(54)【発明の名称】カメラ姿勢推定装置、学習方法及びプログラム
(51)【国際特許分類】
   G06T 7/70 20170101AFI20241119BHJP
   G06T 7/00 20170101ALI20241119BHJP
【FI】
G06T7/70 Z
G06T7/00 350B
【請求項の数】 12
(21)【出願番号】P 2020188644
(22)【出願日】2020-11-12
(65)【公開番号】P2022077694
(43)【公開日】2022-05-24
【審査請求日】2023-03-07
【前置審査】
(73)【特許権者】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】100092772
【弁理士】
【氏名又は名称】阪本 清孝
(74)【代理人】
【識別番号】100119688
【弁理士】
【氏名又は名称】田邉 壽二
(72)【発明者】
【氏名】松▲崎▼ 康平
【審査官】▲柳▼谷 侑
(56)【参考文献】
【文献】特開2019-021291(JP,A)
【文献】特開2014-164483(JP,A)
【文献】特開2017-059049(JP,A)
【文献】中国特許出願公開第111899174(CN,A)
【文献】特開2020-126590(JP,A)
【文献】特開2020-181059(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/70
G06T 7/00
(57)【特許請求の範囲】
【請求項1】
同一オブジェクトを異なるカメラ配置において撮影または計測した第1データ及び第2データより、3次元テンソルで与えられることで空間特徴を表すものとしてそれぞれ第1特徴及び第2特徴を抽出する特徴抽出部と、
前記第1特徴に高次元化変換を適用してオブジェクトの3次元形状及び姿勢を少なくとも表す4次元テンソルとして第1変換特徴を得るとともに、前記第2特徴に高次元化変換及び予め用意されている複数の姿勢変換を適用して姿勢変換ごとのオブジェクトの3次元形状及び姿勢を少なくとも表す4次元テンソルとして第2変換特徴を得る特徴変換部と、
前記姿勢変換ごとの第2変換特徴より、前記第1変換特徴に類似すると判定されるものを探索することにより、当該判定された第2変換特徴に対応する姿勢変換を、前記第1データ及び前記第2データのカメラ間の相対姿勢に該当するものとして得る変換探索部と、を備えることを特徴とするカメラ姿勢推定装置。
【請求項2】
同一オブジェクトを異なるカメラ配置において撮影または計測した第1データ及び第2データより、空間特徴を表すものとしてそれぞれ第1特徴及び第2特徴を抽出する特徴抽出部と、
前記第1特徴に高次元化変換を適用して第1変換特徴を得るとともに、前記第2特徴に高次元化変換及び複数の姿勢変換を適用して姿勢変換ごとの第2変換特徴を得る特徴変換部と、
前記姿勢変換ごとの第2変換特徴より、前記第1変換特徴に類似すると判定されるものを探索することにより、当該判定された第2変換特徴に対応する姿勢変換を、前記第1データ及び前記第2データのカメラ間の相対姿勢に該当するものとして得る変換探索部と、を備え、
前記特徴変換部は、前記第1特徴及び前記第2特徴が3次元テンソルとして与えられている場合に前記高次元化変換を行うものであり、前記第1特徴及び前記第2特徴が4次元テンソルとして与えられている場合には、既に高次元化されているものとして、前記高次元化変換を行うことを省略することを特徴とするカメラ姿勢推定装置。
【請求項3】
同一オブジェクトを異なるカメラ配置において撮影または計測した第1データ及び第2データより、空間特徴を表すものとしてそれぞれ第1特徴及び第2特徴を抽出する特徴抽出部と、
前記第1特徴に高次元化変換を適用して第1変換特徴を得るとともに、前記第2特徴に高次元化変換及び複数の姿勢変換を適用して姿勢変換ごとの第2変換特徴を得る特徴変換部と、
前記姿勢変換ごとの第2変換特徴より、前記第1変換特徴に類似すると判定されるものを探索することにより、当該判定された第2変換特徴に対応する姿勢変換を、前記第1データ及び前記第2データのカメラ間の相対姿勢に該当するものとして得る変換探索部と、を備え、
前記第1変換特徴と、前記変換探索部において前記第1変換特徴に類似すると判定された第2変換特徴とより、前記第1データ及び第2データにおけるオブジェクトの形状としてそれぞれ第1形状及び第2形状を推定する形状推定部をさらに備えることを特徴とするカメラ姿勢推定装置。
【請求項4】
前記変換探索部は、類似度の高い上位の複数の第2変換特徴を探索し、
前記形状推定部は、1つの第1形状に対して、複数の第2形状の中から最も類似しているものを探索し、当該1つの第1形状が前記第1データに含まれるオブジェクトの形状であり、当該最も類似している1つの第2形状が前記第2データに含まれるオブジェクトの形状であるものとして出力することを特徴とする請求項3に記載のカメラ姿勢推定装置。
【請求項5】
同一オブジェクトを異なるカメラ配置において撮影または計測した第1データ及び第2データより、空間特徴を表すものとしてそれぞれ第1特徴及び第2特徴を抽出する特徴抽出部と、
前記第1特徴に高次元化変換を適用して第1変換特徴を得るとともに、前記第2特徴に高次元化変換及び複数の姿勢変換を適用して姿勢変換ごとの第2変換特徴を得る特徴変換部と、
前記姿勢変換ごとの第2変換特徴より、前記第1変換特徴に類似すると判定されるものを探索することにより、当該判定された第2変換特徴に対応する姿勢変換を、前記第1データ及び前記第2データのカメラ間の相対姿勢に該当するものとして得る変換探索部と、を備え、
前記特徴変換部は、前記第1データ及び前記第2データが画像として与えられている場合に前記高次元化変換を行うものであり、前記第1データ及び前記第2データが3次元点群またはボクセルとして与えられている場合には、既に高次元化されているものとして、前記高次元化変換を行うことを省略することを特徴とするカメラ姿勢推定装置。
【請求項6】
前記複数の姿勢変換の各々は、3次元空間での回転及び/又は並進を表すパラメータとして与えられることを特徴とする請求項1ないし5のいずれかに記載のカメラ姿勢推定装置。
【請求項7】
前記変換探索部では、形状の観点で、前記類似すると判定されるものを探索することを特徴とする請求項1ないし6のいずれかに記載のカメラ姿勢推定装置。
【請求項8】
請求項1に記載のカメラ姿勢推定装置における特徴抽出部が用いるパラメータを学習する学習方法であって、
学習用の第1データ及び第2データに対して、前記特徴抽出部により抽出を行うことで3次元テンソルとして第1特徴及び第2特徴を得て、
当該第1特徴及び第2特徴に対して、前記特徴変換部により高次元化変換を適用してオブジェクトの3次元形状及び姿勢を少なくとも表す4次元テンソルとして第1変換特徴及び予め用意されている複数の姿勢変換ごとのオブジェクトの3次元形状及び姿勢を少なくとも表す4次元テンソルとして第2変換特徴を得て、
当該第1変換特徴及び姿勢変換ごとの第2変換特徴に対して、前記変換探索部により探索を行うことで前記第1データ及び前記第2データのカメラ間の相対姿勢を得て、
当該得られた相対姿勢と真値として与えられる相対姿勢との誤差を用いて、前記特徴抽出部が用いるパラメータを学習することを特徴とする学習方法。
【請求項9】
請求項1ないし7のいずれかに記載のカメラ姿勢推定装置における特徴抽出部が用いるパラメータを学習する学習方法であって、
学習用の第1データ及び第2データに対して、前記特徴抽出部により抽出を行うことで第1特徴及び第2特徴を得て、
当該第1特徴及び第2特徴に対して、前記特徴変換部により高次元化変換を適用して第1変換特徴及び姿勢変換ごとの第2変換特徴を得て、
当該第1変換特徴及び姿勢変換ごとの第2変換特徴に対して、前記変換探索部により探索を行うことで前記第1データ及び前記第2データのカメラ間の相対姿勢を得て、
前記得られた相対姿勢を第2特徴に適用した第2変換特徴と、前記第1変換特徴と、の第1誤差と、
前記第1誤差を前記第1データ及び第2データを入れ替えて求めた第2誤差と、を用いて前記特徴抽出部が用いるパラメータを学習することを特徴とする学習方法。
【請求項10】
請求項3または4に記載のカメラ姿勢推定装置における形状推定部が用いるパラメータを学習する学習方法であって、
学習用の第1データ及び第2データに対して、前記特徴抽出部により抽出を行うことで第1特徴及び第2特徴を得て、
当該第1特徴及び第2特徴に対して、前記特徴変換部により高次元化変換を適用して第1変換特徴及び姿勢変換ごとの第2変換特徴を得て、
当該第1変換特徴及び姿勢変換ごとの第2変換特徴に対して、前記変換探索部により探索を行うことで前記第1変換特徴に類似すると判定される第2変換特徴を得て、
当該第1変換特徴及び類似すると判定される第2変換特徴に対して、前記形状推定部による形状を推定して第1形状及び第2形状を得て、
当該得られた第1形状及び第2形状と真値として与えられる第1形状及び第2形状との誤差を用いて、前記形状推定部が用いるパラメータを学習することを特徴とする学習方法。
【請求項11】
前記変換探索部は前記探索した際に、前記類似すると判定された第2変換特徴に対応する姿勢変換を、前記第1データ及び前記第2データのカメラ間の相対姿勢に該当するものとして得ており、
前記得られた第1形状及び第2形状と真値として与えられる第1形状及び第2形状との誤差を用いることに代えて、
前記得られた第1形状と、前記第2形状に前記相対姿勢の変換を適用した形状と、の第1誤差と、
前記第1誤差を前記第1データ及び第2データを入れ替えて求めた第2誤差と、を用いて前記形状推定部が用いるパラメータを学習することを特徴とする請求項10に記載の学習方法。
【請求項12】
コンピュータを請求項1ないし7のいずれかに記載のカメラ姿勢推定装置として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、カメラ間の相対姿勢を推定するカメラ姿勢推定装置、学習方法及びプログラムに関する。
【背景技術】
【0002】
カメラ間の相対姿勢の推定は、Structure from Motion (SfM) やSimultaneous Localization and Mapping(SLAM)のような多くのコンピュータビジョンアプリケーションにおける重要な課題である。この課題に対しては一般に、2枚の画像から抽出される局所特徴を用いてカメラ間の相対姿勢を推定する方法が利用される(例えば特許文献1)。この方法では、対応する特徴点を用いて姿勢の推定と3次元形状の推定を同時に行なう。すなわち、基礎行列や基本行列という3次元空間におけるカメラの姿勢変換を表す行列の仮説を構築し、対応する特徴点がこの仮説から定められるエピポーラ拘束に従うか否かを検証する。この仮説と検証の処理を複数回行なうことによって、最も妥当な仮説を選択する。そして、選択された仮説、すなわち基礎行列または基本行列を分解することにより、カメラ間の相対姿勢を得ることができる。
【0003】
近年では、深層学習を用いて単一の画像からカメラの相対姿勢の推定と3次元形状の推定を同時に行う方法が提案されている。例えば非特許文献1では、単一の画像を入力として畳み込みニューラルネットワーク(CNN; Convolutional Neural Network)を用いて特徴を抽出し、その特徴からカメラ姿勢の推定と3次元形状の推定を行なう手法が提案されている。この手法では、この2つの推定に関してマルチタスク学習を行なうことによって、両方の推定精度を向上させる。ここでのカメラ姿勢とは、学習時に定義される標準的なカメラ姿勢(例えば椅子を正面から撮影するカメラ姿勢)に対する、相対的なカメラ姿勢である。この手法では、2枚の画像から個別にカメラ姿勢を推定した後に、それらの相対姿勢を計算することによって、カメラ間の相対姿勢を得ることができる。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2019-021291号公報
【非特許文献】
【0005】
【文献】Sun, Xingyuan、 et al. "Pix3d: Dataset and methods for single-image 3d shape modeling." Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2018.
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、以上のような従来技術は、カメラ間の相対姿勢推定を精度よく行うことに関して課題を有するものであった。
【0007】
特許文献1の方法では、特徴点を正しく対応付けることが難しい場合には、カメラ間の相対姿勢の推定が困難になる。例えば、カメラの姿勢変換が大きい場合には特徴点の対応付けの誤りが増加し、結果としてカメラ間の相対姿勢の推定誤差が大きくなる。また、2枚の画像において見えの重複がない場合(例えば同一物体を反対方向から撮影する場合)には、正しく対応する特徴点自体が存在しないため、カメラ間の相対姿勢を推定することができない。
【0008】
非特許文献1の方法では、カメラ姿勢を個別に推定することはできるが、直接的に相対姿勢を求めることができない。すなわち、学習を行なう際に、2枚の画像から推定された3次元形状の類似性を活用できておらず、相対姿勢推定の精度改善の余地を残している。
【0009】
上記従来技術の課題に鑑み、本発明は、精度よくカメラ間の相対姿勢推定を行うことのできるカメラ姿勢推定装置及びプログラム並びに当該装置のパラメータの学習方法を提供することを目的とする。
【課題を解決するための手段】
【0010】
上記目的を達成するため、本発明はカメラ姿勢推定装置であって、同一オブジェクトを異なるカメラ配置において撮影または計測した第1データ及び第2データより、空間特徴を表すものとしてそれぞれ第1特徴及び第2特徴を抽出する特徴抽出部と、前記第1特徴に高次元化変換を適用して第1変換特徴を得るとともに、前記第2特徴に高次元化変換及び複数の姿勢変換を適用して姿勢変換ごとの第2変換特徴を得る特徴変換部と、前記姿勢変換ごとの第2変換特徴より、前記第1変換特徴に類似すると判定されるものを探索することにより、当該判定された第2変換特徴に対応する姿勢変換を、前記第1データ及び前記第2データのカメラ間の相対姿勢に該当するものとして得る変換探索部と、を備えること、またはコンピュータを当該カメラ姿勢推定装置として機能させるプログラムであることを第1の特徴とする。また、学習方法であって、前記カメラ姿勢推定装置によって学習用の第1データ及び第2データに対して当該得られた相対姿勢と真値として与えられる相対姿勢との誤差を用いて、前記特徴抽出部が用いるパラメータを学習することを特徴とする。
【0011】
また、前記カメラ姿勢推定装置がさらに、前記第1変換特徴と、前記変換探索部において前記第1変換特徴に類似すると判定された第2変換特徴とより、前記第1データ及び第2データにおけるオブジェクトの形状としてそれぞれ第1形状及び第2形状を推定する形状推定部を備えること、またはコンピュータを当該カメラ姿勢推定装置として機能させるプログラムであることを第2の特徴とする。また、学習方法であって、前記カメラ姿勢推定装置によって学習用の第1データ及び第2データに対して当該得られた第1形状及び第2形状と真値として与えられる第1形状及び第2形状との誤差を用いて、前記形状推定部が用いるパラメータを学習することを特徴とする。
【発明の効果】
【0012】
前記第1の特徴のカメラ姿勢推定装置またはプログラムによれば、高次元化した変換特徴を介して相対姿勢を推定することにより、精度よくカメラ姿勢を推定することができる。前記第1の特徴の学習方法によれば、この際の前段側処理としての特徴抽出処理のパラメータを学習することができる。
【0013】
前記第2の特徴のカメラ姿勢推定装置またはプログラムによれば、高次元化した変換特徴を介して相対姿勢を推定することにより、精度よくカメラ姿勢を推定すると共に、形状推定を行うことができる。前記第2の特徴の学習方法によれば、当該形状推定処理のパラメータを学習することができる。
【図面の簡単な説明】
【0014】
図1】一実施形態に係るカメラ姿勢推定装置及び学習装置の機能ブロック図である。
図2】一実施形態に係るカメラ姿勢推定装置及び学習装置の動作のフローチャートである。
図3図1の構成に対する別の実施形態として形状推定部を省略した構成のカメラ姿勢推定装置及び学習装置を示す図である。
図4】特徴変換部による高次元化変換の模式例を示す図である。
図5】一般的なコンピュータにおけるハードウェア構成例を示す図である。
【発明を実施するための形態】
【0015】
図1は、一実施形態に係るカメラ姿勢推定装置及び学習装置の機能ブロック図である。図示されるように、カメラ姿勢推定装置10は、特徴抽出部1、変換生成部2、特徴変換部3、変換探索部4及び形状推定部5を備える。学習装置20は、カメラ姿勢推定装置10にさらに学習部6が備わるものとして構成される。
【0016】
図2は、一実施形態に係るカメラ姿勢推定装置10及び学習装置20の動作のフローチャートである。ステップS1では、学習装置20が多数の学習用データとしての第1データD1及び第2データD2のペア(D1,D2)k(kは個別の学習データペアの識別子であり、k=1,2,3,…)を読み込んで学習を行うことにより、カメラ姿勢推定装置10のパラメータ(詳細には、カメラ姿勢推定装置10のうち、それぞれが一実施形態では深層学習ネットワークとして構成されている特徴抽出部1及び形状推定部5のパラメータ)を学習してから、ステップS2へと進む。ステップS2では、ステップS1で学習したパラメータが設定されたカメラ姿勢推定装置10が、第1データD1及び第2データD2のペア(D1,D2)を読み込み、推論処理として、当該データペア(D1,D2)の相対姿勢を推定し、図2のフローを終了する。ステップS2ではカメラ姿勢推定装置10による推論処理としてさらに、当該データペア(D1,D2)に対応する形状(SH1,SH2)を推定してもよい。
【0017】
以上の図2のフローの全体的な枠組み自体は、既存技術の深層学習等の機械学習一般において行われているのと同様の、学習データを用いて学習処理(ステップS1)を行うことでネットワークのパラメータを求めてから当該学習されたパラメータで推論処理(ステップS2)を行うものであり、学習方法としても深層学習における既存手法の誤差逆伝播法などを用いることができる。
【0018】
ステップS1の学習の際に誤差を求めるための順伝播の際のカメラ姿勢推定装置10の処理(誤差評価と誤差逆伝播によるパラメータ更新は学習部6において行う)と、ステップS2の推論の際のカメラ姿勢推定装置10の処理とは共通である。(ただし、前者は学習途中のパラメータを利用し、後者は学習済みのパラメータを利用する。)学習時及び推論時において当該共通のカメラ姿勢推定装置10の処理の概要(その詳細に関しては後述)は以下の通りである。
【0019】
特徴抽出部1は(学習用データあるいは推論用データとして)入力される第1及び第2データのペア(D1,D2)のそれぞれより特徴を抽出し、第1の特徴F1及び第2の特徴F2を得てこれを特徴変換部3へと出力する。変換生成部2は、複数の変換Ti(i=1,2,…,N)(Nは当該複数の変換Tiの総数)を生成して、特徴変換部3へと出力する。
【0020】
なお、変換生成部2で生成される複数の変換Ti(i=1,2,…,N)とは、カメラ姿勢推定装置10において入力データペア(D1,D2)間の相対姿勢を推定する際の、正解として推定される相対姿勢についての候補を予め網羅的に用意しておくものである。正解となる相対姿勢に対応する変換Tiを探索する処理は、後段側の変換探索部4において行われる。(既に述べた通り、学習時と推論時とのカメラ姿勢推定装置10の処理は共通であるため、変換探索部4において正解となる相対姿勢に対応する変換Tiを探索する処理は、学習時及び推論時のいずれにおいても行われる。)
【0021】
特徴変換部3は、特徴抽出部1から得られた特徴データペア(F1,F2)についてそれぞれ高次元化する特徴変換を行い、変換された特徴を変換探索部4へと出力する。この際、特徴データペア(F1,F2)の一方である第1の特徴F1については、高次元化する特徴変換のみを行うことで、第1の変換特徴T1を得て変換探索部4へと出力する。一方、特徴データペア(F1,F2)のもう一方である第2の特徴F2については、第1の特徴F1に対して適用したのと同様の高次元化する特徴変換に加えてさらに、変換生成部2で候補として生成された複数の変換Ti(i=1,2,…,N)をそれぞれ適用し、複数(N個)の第2の変換特徴T2i(i=1,2,…,N)を変換探索部4へと出力する。
【0022】
すなわち、特徴変換部3における高次元化する特徴変換を関数high()として表記し、同様に、変換生成部2で得た複数の変換Ti(i=1,2,…,N)を適用することをそれぞれ関数Ti()として表記すると、特徴変換部3の処理は形式的には以下の式(1)と、式(2a)または(2b)として表現することができる。
T1=high(F1) …(1)
T2i=high(Ti(F2)) …(2a)
T2i=Ti(high(F2)) …(2b)
【0023】
上記の式(2a)または(2b)として示されるように、特徴変換部3では第2の特徴F2から変換Ti(相対姿勢に対応する変換Ti)を適用した高次元化された変換特徴T2iを得る際に、式(2a)に示されるように変換Tiを適用してから高次元化変換を行ってもよいし、逆に、式(2b)に示されるように高次元化変換を行ってから変換Tiを適用してもよい。
【0024】
変換探索部4では、特徴変換部3で得た第1の変換特徴T1が、特徴変換部3で得た複数(N個)の第2の変換特徴T2i(i=1,2,…,N)のいずれに類似しているかを探索することで、第1の変換特徴T1と類似すると判定された第2の変換特徴(インデクスi=jの特徴が類似判定されたものとしてT2jとする)を得る。変換探索部4では、当該類似すると判定された第2の変換特徴T2j(1つのみではなく、j=i1,i2,…として複数が類似判定されてもよい)に対応する変換Tj(変換生成部2で候補として生成されたもの)が、入力データペア(D1,D2)間の相対姿勢を表しているものとして、相対姿勢の推定結果を得ることができる。
【0025】
変換探索部4では、上記の相対姿勢推定結果を出力するほか、特徴変換部3から得た第1の変換特徴T1をそのまま形状推定部5へと出力し、また、特徴変換部3から得て類似判定がなされた第2の変換特徴T2j(複数あってもよい)を形状推定部5へと出力する。
【0026】
形状推定部5は、変換探索部4から得た第1の変換特徴T1と第2の変換特徴T2j(複数あってもよい)よりそれぞれ形状推定(元の入力データD1,D2において撮影等がされているオブジェクトの形状推定)を行い、推定結果としての第1の形状SH1及び第2の形状SH2j(複数あってもよい)を出力する。
【0027】
なお、形状推定部5では、学習時においては第1の形状SH1及び第2の形状SH2jを後段側の学習部6へと出力し、推論時においてはカメラ姿勢推定装置10での推定結果として(変換探索部4における相対姿勢の推定結果に対する追加的な推定結果として)出力することができる。カメラ姿勢推定装置10の用途に応じて推論時は変換探索部4までの処理のみを行うようにし、形状推定部5の処理を省略するようにしてもよい。(図1の構成では、学習時は形状推定部5の処理は省略されない。なお、後述する図4の構成では形状推定部5自体が省略される。)
【0028】
学習部6(学習時のみ利用される)は、形状推定部5で得た第1の形状SH1及び第2の形状SH2jよりこれらの間の誤差を評価し、誤差逆伝播法により当該評価誤差に基づくパラメータ更新を形状推定部5及び特徴抽出部1に対して行う。この際、ミニバッチ学習等の任意の既存手法を利用してよい。なお、順伝播時は推論時と同様に以下の式(3)の順序で処理を行い、逆伝播時はこの逆(且つ、変換探索部4をスキップして)以下の式(4)の順序で処理(誤差の逆伝播とこれによる形状推定部5及び特徴抽出部1のパラメータ更新)を行うようにすればよい。なお、逆伝播時も、当該誤差に対応するペア入力を順伝播時と同様に利用すればよい。
(D1,D2)→[特徴抽出部1]→(F1,F2)→[特徴変換部3]→(T1,T2i)
→[変換探索部4]→(T1,T2j)→[形状推定部5]→(SH1,SH2j)
(相対姿勢,SH1,SH2j)→[学習部6]→(誤差) …(3)
(誤差)→[形状推定部5]→(T1,T2j)→[特徴変換部3(逆変換)]→(F1,F2)
(F1,F2)→[特徴抽出部1] …(4)
【0029】
なお、カメラ姿勢推定装置10はその全体として深層学習ネットワークを利用するものであるが、このうち、学習対象となるパラメータが設定されているのは特徴抽出部1及び形状推定部5のみである。変換生成部2は正解候補を列挙したものとしての変換Tiのパラメータを生成するものであり、特徴変換部3は固定的な変換処理(学習の逆伝播の際はこの逆変換処理となるが、順伝播時に既に計算済みであって特徴変換部3の前後でのデータが参照可能であるため、実際に逆変換処理を新たに行うことは不要となる)を行うものであり、変換探索部4は探索処理を行うものであり、これら各部2,3,4は学習対象となるパラメータが設定されていない。
【0030】
別の実施形態として、カメラ姿勢推定装置10及び学習装置20において、形状推定部5を省略した構成(図3)も可能である。この図3の構成の場合、図1に示される構成からの変更点として、変換探索部4での出力(相対姿勢と変換特徴T1,T2j)を学習部6において受け取るようにすればよい。そして、順伝播及び逆伝播の際は前述の式(3),(4)に代えて、以下の式(5),(6)のような流れで計算を行うようにすればよい。
(D1,D2)→[特徴抽出部1]→(F1,F2)→[特徴変換部3]→(T1,T2i)
(T1,T2i)→[変換探索部4]→(相対姿勢,T1,T2j)
(相対姿勢,T1,T2j)→[学習部6]→(誤差) …(5)
(誤差,相対姿勢,T1,T2j)→[特徴変換部3(逆変換)]→(F1,F2)
(F1,F2)→[特徴抽出部1] …(6)
なお、式(6)の特徴変換部3での逆変換は、式(4)と同様に、実際は順伝播時に計算済みみであるため、新たに逆変換を行う必要はない。
【0031】
以上、図1の各部の処理の概略を説明した。以下ではこの詳細についてそれぞれ説明する。
【0032】
[特徴抽出部1]
特徴抽出部1では、入力データD1及びD2から特徴(空間特徴)を抽出して特徴データF1及びF2を得る。
【0033】
本発明の一実施形態においては、入力データとして画像が与えられる。この場合、任意のCNNモデルを用いて、3次元(W×H×C)のテンソルで表される特徴(W×Hでの各チャネルにおける2次元空間特徴)を抽出する。ここで、W、H、Cはそれぞれテンソルの幅、高さ、チャネル数である。
【0034】
また、本発明の一実施形態においては、入力データは3次元点群やボクセルであっても良い。3次元点群は深度センサを搭載したカメラから計測することができ、ボクセルは3次元点群を変換することで取得できる。入力データが3次元点群の場合、初めにボクセルに変換する。そして、ボクセルから任意の3D CNNモデルを用いて4次元(W×H×D×C)のテンソルで表される特徴(W×H×Dでの各チャネルにおける3次元空間特徴)を抽出する。ここで、Dはテンソルの奥行きである。
【0035】
なお、上記のいずれの形式で2つの入力データD1,D2(学習用及び推論用)を用意する場合であっても、(カメラ姿勢推定装置10においてデータD1,D2よりこれらの間の相対姿勢が推定されるように、)この2つの入力データD1,D2は同一オブジェクトを2つの異なるカメラ姿勢(偶然同じ姿勢となることがあってもよい)において撮影や計測等したものとして用意しておけばよい。なお、同一オブジェクトを前面から撮影等したものとして第1のデータD1を用意し、これとは真逆の背面から撮影等したものとして第2のデータD2を用意した場合、例えばデータD1,D2が画像とすると、同一オブジェクトであっても全く共通面が撮影されていない状態となることがありうるが、本実施形態のカメラ姿勢推定装置10ではこのような状態のデータD1,D2に対しても、オブジェクトの3次元的な情報を利用して相対姿勢を推定することが可能である。
【0036】
[変換生成部2]
変換生成部2では、カメラ姿勢の変換パラメータとして、複数の変換Ti(i=1,2,…,N)の各々を生成する。カメラ姿勢を変換するパラメータは、3次元空間での回転を表すロール角、ピッチ角、ヨー角、および x,y,z方向への平行移動の全てもしくは一部のみで構成することができるが、回転及び並進を表す他の形式のデータとしてパラメータを与えるようにしてもよい。
【0037】
本発明の一実施形態においては、様々なカメラの相対姿勢を表すカメラ姿勢の変換パラメータを網羅的に生成する。具体的には、パラメータの要素毎に指定された範囲から値をサンプリングし、それらを組み合わせることによって変換パラメータ生成する。一例を挙げれば、ロール角については、[0°,360°]の範囲において10°間隔で角度をサンプリングする。他の要素についても同様にサンプリングする。サンプリングされた値は全てを用いてもよいし、一部のみを用いてもよい。
【0038】
例えば、学習時及び推論時において、入力データD1,D2間の相対姿勢が一定範囲内に収まるものであることが既知である場合には、当該一定範囲内のみにおいてパラメータを生成してよい。
【0039】
また、本発明の一実施形態においては、学習時及び推論時において、特徴抽出部1で抽出された特徴F1,F2を用いて、標準的なカメラ姿勢に対する相対的なカメラ姿勢を回帰によって求める。そして、入力データD1とD2の間の相対姿勢を当該特徴F1,F2間の回帰によって求め、回帰での姿勢推定は、例えば以下の非特許文献2のRPNetFCと呼ばれる既存手法を用いてよい。それを生成された変換パラメータとみなしてもよい。(この実施形態は、回帰により相対姿勢の真値を1つに求めるものであるため、カメラ姿勢推定装置10において推論処理として相対姿勢を推定する用途ではなく、形状推定部5での形状推定の用途に利用するようにしてもよいし、推論処理として相対姿勢を推定するための学習時の真値として用いるようにしてもよい。)
[非特許文献2] En, S., Lechervy, A., & Jurie, F. (2018). Rpnet: An end-to-end network for relative camera pose estimation. In Proceedings of the European Conference on Computer Vision (ECCV) (pp. 0-0).
【0040】
また、本発明の一実施形態においては、学習時において、入力データD1とD2に対応するカメラの相対姿勢の真値を、生成された変換パラメータとみなして、変換探索部4での探索処理を省略するようにしてもよい。
【0041】
[特徴変換部3]
特徴変換部3では、特徴抽出部1で抽出された特徴F1,F2を前述の式(1)及び(2a)または(2b)のように変換する。
【0042】
画像から抽出された3次元 (W×H×C)のテンソルが与えられた場合、例えば以下の非特許文献3に記載の方法(unprojection) によって、4次元(W×H×D×C)のテンソルに変換する。図4は、特徴変換部3による高次元化変換の模式例として、単純化のために2次元(W×C)のテンソルt2dを3次元(W×H×C)のテンソルt3dへ変換する際の概要を、ある1つのチャネルCに関するものとして示す。この方法では、初めに任意の位置に仮想的なカメラCamを設置する。そして、カメラCamの正面に、2次元のテンソルt2dにおける幅方向から成る1次元格子を、その奥に2次元格子をそれぞれ配置する。カメラCamから出る光線(図2中では3つの光線L1,L2,L3を例示している)は、1次元格子(2次元テンソルt2d)を通った後に、2次元格子(3次元テンソルt3d)を通る。この時、2次元格子には、同一の光線が通った1次元格子の特徴を割り当てる。3次元のテンソルを4次元のテンソルに変換する場合であっても、同様の処理によって実現可能である。すなわち、3次元格子に、同一の光線が通った2次元格子の特徴を割り当てる。
【0043】
□[非特許文献3] Kar, Abhishek, Christian Hane, and Jitendra Malik. "Learning a multi-view stereo machine. " Advances in neural information processing systems. 2017.
【0044】
この3次元格子によって表される特徴は、物体の3次元形状を表す特徴であるため、仮想カメラの相対姿勢は実世界におけるカメラの相対姿勢に対応する。従って、入力データD1,D2を取得したカメラの相対姿勢を、2つの仮想カメラで再現した場合、得られる2つの特徴は類似すると考えられる。ここでは、特徴F1,F2に対して、様々な相対姿勢を持つ2つの仮想カメラを用いてunprojection(逆投影)(あるいはback projectionとも呼ばれる)を行なう。(なお一般に、投影は低次元化変換であり、この逆としての逆投影は高次元化変換となる。)具体的には、はじめに3次元格子を、その中心が原点に位置するように配置する。そして、特徴F1に対しては、3次元格子の正面(例えば奥行方向を表すの軸の負の1点)に仮想カメラを設置し、unprojectionを行なう。この時のカメラの姿勢をp1とする。もう一方の特徴F2に対しては、姿勢p1を基準として様々な姿勢変換Ti(i=1,2,…,N)を行った仮想カメラを用いて、unprojectionを行なう。(すなわち、前述の式(2a)のようにする。)この姿勢変換では、変換生成部2で生成された変換Ti(i=1,2,…,N)を適用する。
【0045】
あるいは、3次元(W×H×C)のテンソルを4次元(W×H×D×C)のテンソルに変換した後に、例えば非特許文献4に記載の方法(Rigid-body transformation:剛体変換)によって、4次元のテンソルに姿勢変換を施してもよい。すなわち、特徴F1,F2に対しては、共に姿勢p1を用いて4次元のテンソルに変換する。そして、特徴F2から得られる4次元テンソルに対してのみ、変換生成部2で生成された変換を適用する。具体的には、4次元のテンソルを各格子の内部にC次元のベクトルが格納された3次元格子とみなす。
【0046】
そして、仮想カメラが原点に位置するとみなし、その仮想カメラの正面(例えば奥行方向を表すの軸上の正の1点)にこの3次元格子を配置する。この時の3次元格子をG1とする。次に、格子G1の3次元座標に対して変換生成部2で生成された変換を用いて姿勢変換を行い、これをG2とする。そして、G1の各格子に、位置が一致するG2の各格子に格納されたC次元の特徴を割り当て、これをG3とする。ここで、G1の格子とG2の格子は完全には位置が一致しないことが考えられるため、最近傍補間法やTrilinear補間法(トライリニア補間法)を用いて割り当てる。G1の格子と位置が一致するG2の格子が存在しない場合は、全ての要素を0とするC次元のベクトルを割り当てる。このG3によって表される4次元のテンソルを、姿勢変換されたテンソルとする。(すなわち、前述の式(2b)のようにする。)
【0047】
[非特許文献4] Nguyen-Phuoc, Thu, et al. "Hologan: Unsupervised learning of 3d representations from natural images." Proceedings of the IEEE
International Conference on Computer Vision. 2019.
【0048】
また、入力データD1,D2が画像ではなく3次元点群やボクセルである場合には、既に3次元空間特徴の情報として入力データD1,D2が得られているため、特徴変換部3によって特徴F1,F2を高次元化変換する処理を省略し、特徴抽出部1で得られた4次元のテンソル(既に3次元空間特徴として得られている特徴F1,F2)に姿勢変換を施してもよい。ここでも同様に、F2から得られる4次元テンソルに対してのみ、変換生成部3で生成された変換を適用する。すなわちこの場合、特徴変換部3の処理は、前述の式(1),(2a),(2b)において高次元化変換high()を恒等変換に読み替えた処理として表現されるものとなり、式(2a),(2b)は同一のものとなる。
【0049】
[変換探索部4]
変換探索部4では、変換生成部2で生成された変換パラメータTi(i=1,2,…,N)の中から、特徴変換部3で変換された特徴を類似させるものを探索して、入力データD1,D2間の相対姿勢の推定結果を得る。
【0050】
既に述べた通り、入力データD1から得られる特徴は一つ(変換特徴T1のみ)であるが、入力データD2からは変換生成部2で生成された変換の個数Nの変換特徴T2i(i=1,2,…,N)が得られる。そのため、入力データD1から得られる変換特徴T1と入力データD2から得られる変換特徴T2i(i=1,2,…,N)の誤差を計算し、入力データD2から得られる変換特徴T2i(i=1,2,…,N)の中から誤差の小さいk個(誤差の小さい側(すなわち、類似度が高い側)の上位のk個、k≧1)を選択し、探索結果T2jとして出力する。あるいは、誤差が閾値判定で小さいと判定されたk個を探索結果T2jとして出力してもよい。入力データD1から得られる変換特徴T1はそのまま出力する。
【0051】
ここで、誤差の尺度は例えばユークリッド距離であるが、それ以外の尺度を用いてもよい。また、本発明の一実施形態においては、探索の効率化のために粗密探索法を用いてもよい。すなわち、始めに粗い間隔でサンプリングされた変換パラメータに対応する変換特徴に対してのみ上記の探索を行う。その後、得られた特徴に対応する変換パラメータを基準として密な感覚でサンプリングされた変換パラメータに対応する変換特徴に対して上記の探索を行う。
【0052】
[形状推定部5]
形状推定部5では、変換探索部4で探索された第2の変換特徴T2j(及びそのまま出力された第1の変換特徴T1)を用いて物体の3次元形状を推定する。
【0053】
3次元形状は、例えばボクセルや3次元点群として表現してもよいし、それらを用いて仮想カメラから推定されるデプス画像やシルエット画像として表現してもよい。入力データD2に対応する第2の変換特徴T2jが複数ある場合(例えば、k≧2として変換探索部4で上位k個の類似特徴を探索した場合)、それらの全てに対して3次元形状を推定してもよい。そして、入力データD1,D2に対応する3次元形状SH1,SH2jの間で形状の誤差を計算し、最も誤差の少ない1つを(複数の第2の形状SH2jの中から)選択して出力(推論時の出力あるいは学習時の学習部6への出力)としてもよい。また、別の実施形態では、学習時及び推論時において、最も誤差の少ない1つに限定せず、3次元形状SH1,SH2jの全てと各々の誤差とを出力するようにしてもよい。
【0054】
誤差最小となる1つを出力する実施形態を適用する際は、推論時の出力は、第1の入力データD1に対応する形状(データD1内に含まれるオブジェクトの形状)が3次元形状SH1であり、第2の入力データD2に対応する形状(データD2内に含まれるオブジェクトの形状)が最も誤差が少ない1つの3次元形状SH2jであるものとして出力してよい。
【0055】
ここで、形状の誤差の尺度としては、例えばボクセルの場合には二値交差エントロピー、3次元点群の場合にはChamfer distance(Chamfer 距離)、デプス画像やシルエット画像の場合には画素値の平均二乗誤差を利用してもよいし、他の尺度を用いてもよい。
【0056】
[学習部6]
学習部6では、ニューラルネットワークのモデルパラメータを学習する。どのように誤差を評価し、どのような構成のネットワーク(図1図3)を学習するかによって種々の実施形態が可能である。(なお、学習部6では誤差を評価するが、図1図3においては便宜上、誤差を評価するために参照するデータの流れのうち一部の実施形態の一部のみ(実施形態によっては全部)が描かれている。例えば特徴F1,F2等を用いて学習部6により誤差を評価する実施形態もあるが、このように特徴F1,F2等を学習部6に対して入力させる流れは、図面の煩雑化を防止する観点から、描くのを省略している。)
【0057】
例えば、手法LAとして、図1及び式(3),(4)の構成における教師あり学習の枠組みにより、各入力データD1,D2に対応する3次元形状の真値が与えられる場合、形状推定部5で推定した3次元形状SH1,SH2jと真値SH1真値,SH2真値の間で誤差e(SH1,SH1真値), e(SH2,SH2真値)を計算することで、形状推定部5のみのパラメータ、または、形状推定部5と特徴抽出部1との両方のパラメータ、または、特徴抽出部1のみのパラメータを学習するようにしてもよい。(eは誤差関数であり、以下同様とする。)
【0058】
また例えば、手法LBとして、図3及び式(5),(6)の構成における教師あり学習の枠組みにより、入力データD1,D2間の相対姿勢の真値が与えられる場合、変換探索部3で探索された相対姿勢と真値の間で誤差e(相対姿勢, 真値)を計算することで、特徴抽出部3のパラメータを学習するようにしてもよい。相対姿勢の真値は例えば前述の回帰の手法で計算するようにしてよい。
【0059】
また例えば、手法LCとして、図3及び式(5),(6)の構成における教師なし学習の枠組みでも利用可能な評価手法(教師あり学習の枠組みにも組み合わせて利用可能)として、各入力データD1,D2に対する推定結果の整合性を測るために、特徴抽出部1で入力データD2から抽出された特徴F2を、変換探索部4で探索された相対姿勢(T2jaとする)を用いて変換して特徴T2ja (F2)とし、、特徴抽出部1で入力データD1から抽出された特徴F1との間で誤差e(T2ja (F2),F1)を計算することで、特徴抽出部1のパラメータを学習してもよい。またさらに、入力データD1とD2の関係を入れ替えた場合(相対姿勢T2jbが探索されたとする)の誤差e(T2jb (F1),F2)も計算することで、特徴抽出部1のパラメータを学習するようにしてよい。例えば、これらの和e(T2ja (F2),F1)+ e(T2jb (F1),F2)を誤差として、特徴抽出部1のパラメータを学習するようにしてよい。ここでは、変換探索部4で探索された相対姿勢を逆向きに変換(例えば相対姿勢を表す行列の逆行列を利用)することで、特徴変換部3の逆処理として変換特徴T1から特徴F1を得る処理及び変換特徴T2から特徴F2を得る処理を行うようにすればよい。(順伝播時に計算済みのものに関してはその結果を記憶しておき、当該逆変換を新たに行うことは省略してよい。)
【0060】
同様に、前述の手法LAにおいて上記データD1,D2の整合性を評価する手法を利用するようにしてもよく、入力データD2を入力として形状推定部5で推定された3次元形状SH2jを、変換探索部4で探索された相対姿勢を用いて変換し、入力データD1を入力として形状推定部5で推定された3次元形状SH1との間で誤差e(姿勢変換したSH2j, SH1)を計算する。また、入力データD1,D2の関係を入れ替えた場合の誤差e(姿勢変換したSH1j, SH2)も計算する。例えば、これらの和e(姿勢変換したSH2j, SH1)+ e(姿勢変換したSH1j, SH2)を誤差として、形状推定部5及び/又は特徴抽出部1のパラメータを学習するようにしてよい。ここで、形状SH1, SH2jはそのデータ上、位置情報(位置の分布として姿勢も表現される)も含んでおり、形状としては同じであっても位置(姿勢)が異なることがあるため、同一形状かつ同一姿勢を表す特徴間の距離が近く,同一形状で非同一姿勢を表す特徴間の距離が遠くなるような特徴空間を学習するために,Contrastive loss(対照損失)やTriplet loss(トリプレット損失)を計算すればよい。
【0061】
なお、教師あり・教師なし学習のいずれの枠組みの場合であっても、入力データペアD1,D2は同一オブジェクトを別のカメラ姿勢で撮影または計測等したものとして用意しておく。
【0062】
これらの全てまたは一部の重み付き和として損失関数を定義し、この損失関数を最小化するようにモデルを学習する。繰り返し学習してパラメータを更新する際に、用いる損失関数を切り替える(例えば周期的に切り替える)ようにしてもよい。例えば手法LB,LCは図3の構成での特徴抽出部1のパラメータを学習するものであるが、図1の構成の特徴抽出部1を学習する際に、手法LAに加えて、あるいは代えて、手法LB,LCを用いてもよい。
【0063】
以上、本発明の各実施形態によれば、物体の3次元形状と姿勢に関して識別的な特徴を抽出することができ、それを比較することによってカメラ間の相対姿勢を正しく推定することができる。
【0064】
以下、補足例や追加例などに関して説明する。
【0065】
(1) 以上では説明例として、学習時及び推論時において同一オブジェクトを異なるカメラ姿勢において撮影または計測した2つのデータD1,D2をペアで用いるものとしたが、同様の3つ以上のデータD1,D2,D3の組を用いてもよい。3つのデータ組を用いる場合であれば、3通りのペア(D1,D2), (D2,D3), (D3, D1)が可能であるため、この全て又は一部について、2つのデータペアの場合と同様にすればよく、誤差の算出に際しては当該データペアごとの誤差の総和などを用いてもよい。
【0066】
(2) 特徴抽出部1及び形状推定部5の各々は、CNN等の深層学習ネットワークで実現する場合を説明したが、学習の枠組みを用いて同様の処理を行うことが可能な任意の構成を用いてよく、例えば必ずしも深層ではないニューラルネットワークを用いてもよいし、その他の機械学習一般の手法を用いるようにしてもよい。
【0067】
(3) 図5は、一般的なコンピュータ装置70におけるハードウェア構成の例を示す図である。カメラ姿勢推定装置10及び学習装置20の各々は、このような構成を有する1台以上のコンピュータ装置70として実現可能である。なお、2台以上のコンピュータ装置70でカメラ姿勢推定装置10及び学習装置20の各々を実現する場合、ネットワーク経由で処理に必要な情報の送受を行うようにしてよい。コンピュータ装置70は、所定命令を実行するCPU(中央演算装置)71、CPU71の実行命令の一部又は全部をCPU71に代わって又はCPU71と連携して実行する専用プロセッサとしてのGPU(グラフィックス演算装置)72、CPU71(及びGPU72)にワークエリアを提供する主記憶装置としてのRAM73、補助記憶装置としてのROM74、通信インタフェース75、ディスプレイ76、マウス、キーボード、タッチパネル等によりユーザ入力を受け付ける入力インタフェース77、カメラ78と、これらの間でデータを授受するためのバスBSと、を備える。
【0068】
カメラ姿勢推定装置10及び学習装置20の各々の各機能部は、各部の機能に対応する所定のプログラムをROM74から読み込んで実行するCPU71及び/又はGPU72によって実現することができる。なお、CPU71及びGPU72は共に、演算装置(プロセッサ)の一種である。ここで、表示関連の処理が行われる場合にはさらに、ディスプレイ76が連動して動作し、データ送受信に関する通信関連の処理が行われる場合にはさらに通信インタフェース75が連動して動作する。カメラ姿勢推定装置10及び学習装置20の各々による処理結果等はディスプレイ76で表示して出力してよい。カメラ姿勢推定装置10及び学習装置20の各々への入力として用いる画像の全部又は一部をカメラ78で撮影して得るようにしてもよい。
【符号の説明】
【0069】
10…カメラ姿勢推定装置、20…学習装置
1…特徴抽出部、2…変換生成部、3…特徴変換部、4…変換探索部、5…形状推定部、6…学習部
図1
図2
図3
図4
図5