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

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

▶ ソニー株式会社の特許一覧

特開2025-62369情報処理装置、情報処理方法、及びプログラム
<>
  • 特開-情報処理装置、情報処理方法、及びプログラム 図1
  • 特開-情報処理装置、情報処理方法、及びプログラム 図2
  • 特開-情報処理装置、情報処理方法、及びプログラム 図3
  • 特開-情報処理装置、情報処理方法、及びプログラム 図4
  • 特開-情報処理装置、情報処理方法、及びプログラム 図5
  • 特開-情報処理装置、情報処理方法、及びプログラム 図6
  • 特開-情報処理装置、情報処理方法、及びプログラム 図7
  • 特開-情報処理装置、情報処理方法、及びプログラム 図8
  • 特開-情報処理装置、情報処理方法、及びプログラム 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025062369
(43)【公開日】2025-04-14
(54)【発明の名称】情報処理装置、情報処理方法、及びプログラム
(51)【国際特許分類】
   G06T 7/80 20170101AFI20250407BHJP
【FI】
G06T7/80
【審査請求】未請求
【請求項の数】14
【出願形態】OL
(21)【出願番号】P 2023171381
(22)【出願日】2023-10-02
(71)【出願人】
【識別番号】000002185
【氏名又は名称】ソニーグループ株式会社
(74)【代理人】
【識別番号】100140958
【弁理士】
【氏名又は名称】伊藤 学
(74)【代理人】
【識別番号】100137888
【弁理士】
【氏名又は名称】大山 夏子
(74)【代理人】
【識別番号】100154036
【弁理士】
【氏名又は名称】久保 貴弘
(72)【発明者】
【氏名】大石 圭
(72)【発明者】
【氏名】周藤 泰広
(72)【発明者】
【氏名】山崎 寿夫
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096AA09
5L096EA14
5L096FA09
5L096GA08
(57)【要約】
【課題】環境を撮像するカメラの補正をより容易に行う。
【解決手段】3Dスキャナで測定した環境の三次元データと、前記環境を撮像するカメラのカメラパラメータとに基づいて、前記カメラで撮像されたカメラ画像に対応するレンダリング画像を生成するレンダリング部と、前記カメラ画像と、前記レンダリング画像との差分を抽出し、前記差分がより小さくなるように前記カメラパラメータを更新するカメラパラメータ推定部と、を備える、情報処理装置。
【選択図】図2
【特許請求の範囲】
【請求項1】
3Dスキャナで測定した環境の三次元データと、前記環境を撮像するカメラのカメラパラメータとに基づいて、前記カメラで撮像されたカメラ画像に対応するレンダリング画像を生成するレンダリング部と、
前記カメラ画像と、前記レンダリング画像との差分を抽出し、前記差分がより小さくなるように前記カメラパラメータを更新するカメラパラメータ推定部と、
を備える、情報処理装置。
【請求項2】
前記レンダリング部及び前記カメラパラメータ推定部は、前記差分が閾値以下になるまで前記レンダリング画像の生成と、前記カメラパラメータの更新とを繰り返し実行する、請求項1に記載の情報処理装置。
【請求項3】
前記カメラパラメータは、前記カメラの位置を表す外部パラメータと、前記カメラ画像と前記環境との対応関係を示す内部パラメータとを含む、請求項1に記載の情報処理装置。
【請求項4】
前記外部パラメータの初期値は、前記カメラ画像と、前記外部パラメータの暫定値を用いて生成された前記レンダリング画像との特徴点マッチングにて抽出されたマッチング点を用いて推定される、請求項3に記載の情報処理装置。
【請求項5】
前記カメラは、オブジェクトの位置を検出可能なセンサが搭載された機器に搭載され、
前記外部パラメータの前記暫定値は、前記センサの位置に基づいて決定される、請求項4に記載の情報処理装置。
【請求項6】
前記機器は、移動体である、請求項5に記載の情報処理装置。
【請求項7】
前記センサの位置を含むセンサパラメータを推定するセンサパラメータ推定部をさらに備える、請求項5に記載の情報処理装置。
【請求項8】
前記センサパラメータ推定部は、前記三次元データと、前記センサで取得した前記環境のポイントクラウドデータとの位置合わせを行うことで、前記センサパラメータを推定する、請求項7に記載の情報処理装置。
【請求項9】
前記センサパラメータ推定部は、複数段階に分けて前記位置合わせを行う、請求項8に記載の情報処理装置。
【請求項10】
前記環境は、少なくとも三方向以上が面で閉ざされた静止環境である、請求項1に記載の情報処理装置。
【請求項11】
前記環境の面には、所定のテクスチャが投影される、請求項10に記載の情報処理装置。
【請求項12】
前記テクスチャには、各々を識別可能な二次元マーカが含まれる、請求項11に記載の情報処理装置。
【請求項13】
3Dスキャナで測定した環境の三次元データと、前記環境を撮像するカメラのカメラパラメータとに基づいて、前記カメラで撮像されたカメラ画像に対応するレンダリング画像を生成することと、
前記カメラ画像と、前記レンダリング画像との差分を抽出し、前記差分がより小さくなるように前記カメラパラメータを更新することと、
を含む、コンピュータによる情報処理方法。
【請求項14】
コンピュータを、
3Dスキャナで測定した環境の三次元データと、前記環境を撮像するカメラのカメラパラメータとに基づいて、前記カメラで撮像されたカメラ画像に対応するレンダリング画像を生成するレンダリング部と、
前記カメラ画像と、前記レンダリング画像との差分を抽出し、前記差分がより小さくなるように前記カメラパラメータを更新するカメラパラメータ推定部と、
として機能させるための、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理装置、情報処理方法、及びプログラムに関する。
【背景技術】
【0002】
近年、LiDAR(Light Detection And Ranging)などのオブジェクトの位置を検出可能なセンサと、オブジェクトを撮像するカメラとを用いて周辺環境をセンシングする技術の開発が進んでいる。例えば、自動車では、LiDARと、カメラとを用いて環境をセンシングすることで、自動車を自動運転させる技術の開発が盛んに行われている。
【0003】
このような周辺環境をセンシングする技術では、センサにてセンシングされたデータと、カメラにて撮像された画像データとを適切に統合することが重要となる。具体的には、センサとカメラとの間の位置補正、及びカメラの内部パラメータの補正を行い、センサにてセンシングされたデータと、カメラにて撮像された画像データとを一体化することが重要となる。
【0004】
例えば、下記の特許文献1には、対象物を撮像可能なカメラ、及びレーザを用いて対象物の位置を検出可能なセンサの各々をキャリブレーションするためのマーカボードを用意することが記載されている。特許文献1に記載された技術では、複数の位置に設置されたマーカボードを同一の移動体に取り付けられたカメラ及びセンサによって検出することで、カメラとセンサとの間の位置補正を行うことができる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2021-38939号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかし、特許文献1に記載された技術は、専用のマーカボードを用意する必要があるため、一般のユーザが行うことは困難であった。特に、カメラは、他のカメラ又はセンサとの間の位置補正に加えて、内部パラメータの補正も行う必要があるため、カメラの補正をより容易に行うことが可能な技術が求められていた。
【0007】
そこで、本開示では、環境を撮像するカメラの補正をより容易に行うことが可能な、新規かつ改良された情報処理装置、情報処理方法、及びプログラムを提案する。
【課題を解決するための手段】
【0008】
本開示によれば、3Dスキャナで測定した環境の三次元データと、前記環境を撮像するカメラのカメラパラメータとに基づいて、前記カメラで撮像されたカメラ画像に対応するレンダリング画像を生成するレンダリング部と、前記カメラ画像と、前記レンダリング画像との差分を抽出し、前記差分がより小さくなるように前記カメラパラメータを更新するカメラパラメータ推定部と、を備える、情報処理装置が提供される。
【0009】
また、本開示によれば、3Dスキャナで測定した環境の三次元データと、前記環境を撮像するカメラのカメラパラメータとに基づいて、前記カメラで撮像されたカメラ画像に対応するレンダリング画像を生成することと、前記カメラ画像と、前記レンダリング画像との差分を抽出し、前記差分がより小さくなるように前記カメラパラメータを更新することと、を含む、コンピュータによる情報処理方法が提供される。
【0010】
さらに、本開示によれば、コンピュータを、3Dスキャナで測定した環境の三次元データと、前記環境を撮像するカメラのカメラパラメータとに基づいて、前記カメラで撮像されたカメラ画像に対応するレンダリング画像を生成するレンダリング部と、前記カメラ画像と、前記レンダリング画像との差分を抽出し、前記差分がより小さくなるように前記カメラパラメータを更新するカメラパラメータ推定部と、として機能させるための、プログラムが提供される。
【図面の簡単な説明】
【0011】
図1】本開示の一実施形態に係る情報処理装置が実現する機能を説明する説明図である。
図2】同実施形態に係る情報処理装置の機能構成を示すブロック図である。
図3】センサパラメータ推定部にて実行される動作の流れを示すフローチャート図である。
図4】カメラパラメータ推定部にて実行される前段の処理の流れを示すフローチャート図である。
図5】カメラパラメータ推定部にて実行される後段の処理の流れを示すフローチャート図である。
図6】第1の変形例を説明する説明図である。
図7】第2の変形例を説明する説明図である。
図8】第3の変形例に係るカメラパラメータ推定部にて実行される前段の処理の流れを示すフローチャート図である。
図9】同実施形態に係る情報処理装置のハードウエア構成例を示すブロック図である。
【発明を実施するための形態】
【0012】
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【0013】
なお、説明は以下の順序で行うものとする。
1.概要
2.構成例
3.変形例
4.ハードウエア構成例
【0014】
<1.概要>
まず、図1を参照して、本開示の一実施形態に係る情報処理装置の概要について説明する。図1は、本実施形態に係る情報処理装置が実現する機能を説明する説明図である。
【0015】
図1に示すように、3Dスキャナ400で三次元データを測定した静止環境SEに、センサ200、及びカメラ300が搭載された移動体10が配置される。本実施形態に係る情報処理装置は、3Dスキャナ400で測定された静止環境SEの三次元データに基づいて、上記のセンサ200及びカメラ300を補正する。
【0016】
ここで、センサ200の補正とは、センサ200の位置(センサパラメータ)を補正することを表す。また、カメラ300の補正とは、カメラ300の位置(外部パラメータ)を補正すること、及びカメラ300の焦点距離、中心位置、及び歪みなどによる画像への影響(内部パラメータ)を補正することを示す。外部パラメータ及び内部パラメータは、併せてカメラパラメータとも称される。
【0017】
3Dスキャナ400は、静止環境SEの三次元データを360°に亘って測定することが可能な三次元測定機である。具体的には、3Dスキャナ400は、静止環境SEのデプスと、反射強度又はカラーとを360°に亘って測定することが可能なレーザスキャナであってもよい。3Dスキャナ400は、静止環境SEの三次元データとして、カラー又は反射強度を記録した三次元ポイントクラウド又は三次元メッシュを取得することができる。
【0018】
静止環境SEは、動体が存在しない静的な環境である。具体的には、静止環境SEは、移動体10に搭載されたセンサ200、及びカメラ300の各々について、少なくとも三方向以上が面で閉ざされた屋内環境であってもよい。このような場合、本実施形態に係る情報処理装置は、センサ200、及びカメラ300の補正をより高精度に行うことが可能である。例えば、静止環境SEは、ガレージ内などの屋内環境であってもよい。
【0019】
移動体10は、少なくとも1つ以上のセンサ200と、少なくとも1つ以上のカメラ300とが搭載される機器である。移動体10は、例えば、カメラ300で撮像された画像データ、及びセンサ200でセンシングされたポイントクラウドデータに基づいて周囲環境及び自己位置を推定することで、自動運転を行うことができる。
【0020】
センサ200は、レーザ、ミリ波、又は超音波を照射することで静止環境SEに存在するオブジェクトの位置を示す三次元ポイントクラウドデータを取得することが可能なセンサである。センサ200は、例えば、LiDAR、ミリ波レーダー、又は超音波センサであってもよい。また、センサ200は、移動体10に複数搭載されてもよい。
【0021】
カメラ300は、静止環境SEの画像を撮像することが可能な撮像装置である。カメラ300は、例えば、RGBカメラ、モノクロカメラ、又はステレオカメラであってもよい。カメラ300は、移動体10に複数搭載されてもよい。
【0022】
移動体10の周囲環境、及び自己位置をより高精度で推定するためには、カメラ300で撮像された画像データ、及びセンサ200でセンシングされたポイントクラウドデータを統合することが重要となる。例えば、移動体10は、カメラ300で撮像された画像データを用いたVisual-SLAM(Simultaneous Localization and Mapping)、及びセンサ200でセンシングされたポイントクラウドデータを用いたLiDAR-SLAMを組み合わせることで、より高精度で周囲環境、及び自己位置を推定することが可能である。
【0023】
本実施形態に係る情報処理装置は、静止環境SEを3Dスキャナ400で測定した三次元データを用いることで、センサ200及びカメラ300の補正をより容易に行うことができる。具体的には、情報処理装置は、静止環境SEを3Dスキャナ400で測定した三次元データを用いることで、カメラ300とセンサ200との間の位置(すなわち、センサパラメータ、及びカメラ300の外部パラメータ)、及びカメラ300の焦点距離、中心位置、並びに歪みなどによる画像への影響(すなわち、カメラ300の内部パラメータ)をより容易に補正することができる。
【0024】
これによれば、移動体10は、カメラ300で撮像された画像データ、及びセンサ200でセンシングされたポイントクラウドデータを高精度で統合することで、周囲環境の推定、及び移動体10の自己位置をより高精度に推定することが可能である。
【0025】
<2.構成例>
次に、図2図5を参照して、本実施形態に係る情報処理装置の構成例について説明する。図2は、本実施形態に係る情報処理装置100の機能構成を示すブロック図である。図3は、センサパラメータ推定部110にて実行される動作の流れを示すフローチャート図である。図4は、カメラパラメータ推定部130にて実行される前段の処理の流れを示すフローチャート図である。図5は、カメラパラメータ推定部130にて実行される後段の処理の流れを示すフローチャート図である。
【0026】
図2に示すように、本実施形態に係る情報処理装置100は、センサパラメータ推定部110と、レンダリング部120と、カメラパラメータ推定部130とを備える。情報処理装置100には、移動体10に搭載された複数のセンサ200から静止環境SEのポイントクラウドデータがそれぞれ入力され、移動体10に搭載された複数のカメラ300から静止環境SEの画像データがそれぞれ入力されるものとする。また、情報処理装置100には、3Dスキャナ400から静止環境SEの三次元データが入力される。
【0027】
(センサパラメータ推定部110)
図3を参照して、センサパラメータ推定部110について説明する。
【0028】
センサパラメータ推定部110は、センサ200でそれぞれ取得された静止環境SEのポイントクラウドデータと、3Dスキャナ400で取得された静止環境SEの三次元データとに基づいて、センサ200の位置を推定する。センサパラメータ推定部110は、3Dスキャナ400で測定された静止環境SEの三次元データと、センサ200で取得された静止環境SEのポイントクラウドデータとをレジストレーション(位置合わせ)することで、センサ200の各々の位置を推定してもよい。
【0029】
例えば、センサパラメータ推定部110は、3Dスキャナ400の三次元データと、センサ200のポイントクラウドデータとのレジストレーションによって、センサ200の座標系から3Dスキャナ400を基準とする環境座標系への変換を推定してもよい。センサ200の座標系は、センサ200の位置を基準としている。そのため、センサパラメータ推定部110は、センサ200の座標系から環境座標系への変換を推定することで、環境座標系を基準としてセンサ200の各々の間の位置関係を特定することができる。なお、センサ200の座標系から環境座標系への変換は、例えば、回転及び移動を含む4×4の位置姿勢行列で表現される。
【0030】
詳細には、図3に示すように、センサパラメータ推定部110は、まず、ポイントクラウドマッチングによるレジストレーションを行う(S101)。これにより、センサパラメータ推定部110は、センサ200の座標系から環境座標系への変換を大まかに推定することができる。
【0031】
ステップS101の処理では、センサパラメータ推定部110は、まず、計算量削減のために、3Dスキャナ400で測定された三次元ポイントクラウドと、センサ200で取得された三次元ポイントクラウドとを所定のグリッドサイズにリサンプリングする。次に、センサパラメータ推定部110は、リサンプリングされたそれぞれの三次元ポイントクラウドの特徴量を算出する。例えば、センサパラメータ推定部110は、三次元ポイントクラウドの特徴量として、点群特徴量FPFH(Fast Point Feature Histogram)、又はDNN(Deep Neural Network)特徴量SpinNetを算出してもよい。
【0032】
続いて、センサパラメータ推定部110は、リサンプリングされたそれぞれの三次元ポイントクラウドの間で、算出した特徴量を用いて各点のL2ノルムを計算し、計算されたL2ノルムが最も小さい点をマッチング点と決定する。さらに、センサパラメータ推定部110は、マッチング点に含まれる外れ値を除外するために、RANSAC(RANdom SAmple Consensus)アルゴルズムなどによるロバスト推定を行う。これにより、センサパラメータ推定部110は、センサ200の座標系から環境座標系への変換を大まかに推定することができる。
【0033】
例えば、センサパラメータ推定部110は、まず、センサ200のマッチング点からランダムに4点程度を取得し、取得したマッチング点をマッチング先の3Dスキャナ400のマッチング点に投影するための位置姿勢行列を計算する。次に、センサパラメータ推定部110は、計算した位置姿勢行列を用いてすべてのマッチング点を投影し、マッチング先のマッチング点との距離の差が閾値以下の点の数を計測する。センサパラメータ推定部110は、上記のマッチング点の取得及び投影を複数回繰り返し、閾値以下の点の数が最も多い場合のマッチング点の組み合わせを抽出する。このとき抽出されたマッチング点の組み合わせは、外れ値が除去されたマッチング点の組み合わせとなっている。そこで、センサパラメータ推定部110は、抽出されたマッチング点の組み合わせを用いて、センサ200のマッチング点を3Dスキャナ400のマッチング点に投影したときに誤差が最も小さくなる位置姿勢行列を算出する。算出された位置姿勢行列が大まかに推定されたセンサ200の座標系から環境座標系への変換となる。
【0034】
次に、図3に示すように、センサパラメータ推定部110は、ICP(Iterative Closest Point)アルゴリズムによるレジストレーションによって、ステップS101の処理にて大まかに推定された変換の位置姿勢行列をより詳細に推定する(S103)。
【0035】
ステップS103の処理では、センサパラメータ推定部110は、リサンプリングされる前の三次元ポイントクラウドを用いてICPアルゴリズムを行うことによって、ステップS101で算出した変換の位置姿勢行列をより高精度に推定する。具体的には、センサパラメータ推定部110は、センサ200の三次元ポイントクラウドの各点から3Dスキャナ400の三次元ポイントクラウドの最近傍の点を探索して対応付け、対応付けた点の差を最小化させる位置姿勢行列を算出する。算出された位置姿勢行列がより詳細に推定されたセンサ200の座標系から環境座標系への変換となる。ステップS101の処理にて変換の位置姿勢行列を大まかに推定しておくことにより、ステップS103の処理での変換の位置姿勢行列の算出をより早く収束させることができる。
【0036】
その後、センサパラメータ推定部110は、移動体10に搭載されたセンサ200の各々について上記のステップS101及びS103の処理を実行する。
【0037】
続いて、図3に示すように、センサパラメータ推定部110は、センサ200の各々の座標系から環境座標系への変換を用いることで、移動体10に対するセンサ200の各々の位置を推定することができる(S105)。
【0038】
例えば、移動体10の設計上の車両中心位置から0番目のセンサ200の位置への変換L0を基準として用いることで、車両中心位置からn番目のセンサ200の位置への変換Lnは、以下の数式1で表される。これにより、センサパラメータ推定部110は、移動体10の設計上の車両中心位置を基準として、センサ200の各々の位置を推定することができる。
【0039】
【数1】
【0040】
(レンダリング部120、カメラパラメータ推定部130)
図4及び図5を参照して、レンダリング部120、及びカメラパラメータ推定部130について説明する。
【0041】
カメラパラメータ推定部130は、カメラ300でそれぞれ取得された静止環境SEの画像データと、3Dスキャナ400で取得された静止環境SEの三次元データとに基づいて、カメラ300のカメラパラメータ(すなわち、カメラ300の位置、及びカメラ300の内部パラメータ)を推定する。具体的には、カメラパラメータ推定部130は、3Dスキャナ400で取得された静止環境SEの三次元データに基づいてレンダリングされたレンダリング画像と、カメラ300で取得された静止環境SEのカメラ画像とを比較することで、カメラパラメータを推定してもよい。
【0042】
カメラ画像との比較に用いられるレンダリング画像は、レンダリング部120にて生成される。具体的には、レンダリング部120は、暫定的に設定したカメラパラメータを参照することで、3Dスキャナ400の三次元データに基づいて、カメラ300で取得されたカメラ画像に対応するレンダリング画像を生成してもよい。
【0043】
具体的には、レンダリング部120は、まず、カメラパラメータとして、センサパラメータ推定部110の結果から推定したカメラ300の位置、及びカメラ300の内部パラメータの設計値等を参照してレンダリング画像を生成する。これにより、カメラパラメータ推定部130は、生成したレンダリング画像と、カメラ画像とを比較することで、暫定的に設定したカメラパラメータよりも誤差の少ないカメラパラメータを推定することができる。したがって、レンダリング部120は、推定されたカメラパラメータを参照して、再度、レンダリング画像を生成することで、カメラ画像との差がより小さくなったレンダリング画像を生成することができる。レンダリング部120及びカメラパラメータ推定部130は、上記のレンダリング画像の生成、及びカメラパラメータの推定を繰り返すことで、より誤差が少ないカメラパラメータを推定することができる。
【0044】
詳細には、図4に示すように、カメラパラメータ推定部130は、まず、レンダリング部120にてカメラ画像に対応したレンダリング画像を生成する際に用いられるカメラパラメータの暫定値を設定する(S201)。
【0045】
具体的には、カメラパラメータ推定部130は、カメラ300の焦点距離、中心位置、及び歪みなどの内部パラメータとして、カタログ上の設計値、過去の補正の実績値、又は同等品の補正の実績値などを設定する。また、カメラパラメータ推定部130は、センサパラメータ推定部110の結果を用いることで、環境座標系からカメラ300の座標系への変換を算出する。環境座標系からカメラ300の座標系への変換は、センサパラメータ推定部110にて推定された0番目のセンサ200の座標系から環境座標系への変換L0、車両中心位置からカメラ300の位置への変換、及び0番目のセンサ200の位置から車両中心位置への変換L0を用いて、以下の数式2で表される。
【0046】
【数2】
【0047】
次に、レンダリング部120は、上記のカメラパラメータの暫定値を用いて、3Dスキャナ400で測定された三次元データからカメラ300にて撮像されたカメラ画像に対応するレンダリング画像を生成する(S203)。
【0048】
続いて、カメラパラメータ推定部130は、カメラ300にて撮像されたカメラ画像と、生成されたレンダリング画像との間で特徴点マッチングを行う(S205)。例えば、カメラパラメータ推定部130は、SIFT(Scale-Invariant Feature Transform)などの古典的なアルゴリズム、又はLoFTR(Detector-Free Local Feature Matching with Transformers)などのDNNを用いた特徴点マッチングアルゴリズムを用いて、カメラ画像と、レンダリング画像との間で特徴点マッチングを行ってもよい。ただし、カメラ300の歪みが大きい場合には、DNNを用いた特徴点マッチングアルゴリズムを用いた方がより良好な結果を得ることが可能である。
【0049】
次に、カメラパラメータ推定部130は、特徴点マッチングによるマッチング点の三次元位置をレンダリング画像から取得する(S207)。具体的には、カメラパラメータ推定部130は、レンダリング画像におけるマッチング点のピクセルのレイ(光線)と、レンダリング画像の生成に用いられた三次元ポイントクラウド又は三次元メッシュとの交点を計算することで、マッチング点の三次元位置を取得することができる。
【0050】
続いて、カメラパラメータ推定部130は、マッチング点の三次元位置を用いて、環境座標系からカメラ300の座標系への変換を推定する(S209)。具体的には、カメラパラメータ推定部130は、マッチング点に含まれる外れ値を除外するために、RANSAC(RANdom SAmple Consensus)アルゴルズムなどによるロバスト推定を行う。これにより、カメラパラメータ推定部130は、環境座標系からカメラ300の座標系への変換を大まかに推定することができる。
【0051】
例えば、カメラパラメータ推定部130は、まず、マッチング点からランダムに4点程度を取得し、取得したマッチング点の三次元位置をカメラ画像に投影するための位置姿勢行列を計算する。次に、カメラパラメータ推定部130は、計算した位置姿勢行列を用いてすべてのマッチング点をカメラ画像に投影し、投影したマッチング点の再投影誤差が閾値以下の点の数を計測する。カメラパラメータ推定部130は、上記のマッチング点の取得及び投影を複数回繰り返し、閾値以下の点の数が最も多い場合のマッチング点の組み合わせを抽出する。このとき抽出されたマッチング点の組み合わせは、外れ値が除去されたマッチング点の組み合わせとなっている。そこで、カメラパラメータ推定部130は、抽出されたマッチング点の組み合わせを用いて、再投影誤差が最小になるようにPnP(Perspective-n-Point)問題を解くことで、環境座標系からカメラ300の座標系への変換を大まかに推定することができる。
【0052】
上記で推定された環境座標系からカメラ300の座標系への変換は、大まかな推定である。そのため、レンダリング部120、及びカメラパラメータ推定部130は、推定された環境座標系からカメラ300の座標系への変換を用いて、レンダリング画像の生成、及びカメラパラメータの推定を再度行う。このとき、カメラパラメータ推定部130は、カメラ画像と、レンダリング画像との画像の差分を検出することで、特徴点検出時の誤差を含めずにカメラパラメータを推定することができる。なお、カメラ300の焦点距離、中心位置、及び歪みなどの内部パラメータが既知である場合、カメラパラメータ推定部130は、これらの内部パラメータを推定の対象から外してもよい。
【0053】
詳細には、図5に示すように、レンダリング部120は、図4に示す処理で推定されたカメラ300の位置を用いて、3Dスキャナ400で測定された三次元データからカメラ300にて撮像されたカメラ画像に対応するレンダリング画像を生成する(S211)。具体的には、レンダリング部120は、図4に示す処理で推定された環境座標系からカメラ300の座標系への変換と、カメラ300の内部パラメータとを用いて、3Dスキャナ400で測定された三次元データからカメラ300にて撮像されたカメラ画像に対応するレンダリング画像を生成する。
【0054】
次に、カメラパラメータ推定部130は、カメラ300にて撮像されたカメラ画像と、ステップS211で生成したレンダリング画像との差分L(D(image),D(redearing_image)を検出する(S213)。Lは、L1ノルム、L2ノルム、又はGeman-McClure関数などのロバストな誤差関数である。Dは、画像の正規化、又は勾配を用いたディスクリプタ(例えば、Robust 3D Tracking with Descriptor Fieldsなど)などの画像の変換関数である。ただし、3Dスキャナ400で測定された三次元データがカラーではなく反射強度を測定したデータである場合、カメラパラメータ推定部130は、DNNを用いたディスクリプタ(Deep Lucas-Kanade Homography for Multimodal Image Alignment)を用いることで、カメラ画像と、レンダリング画像との差分Lをより良好に収束させることができる。
【0055】
続いて、カメラパラメータ推定部130は、検出された差分Lが最小になるようにカメラ300のカメラパラメータを更新する(S215)。これにより、カメラパラメータ推定部130は、ステップS211の処理でレンダリング画像の生成に用いたカメラパラメータよりも誤差が少ないカメラパラメータを推定することができる。
【0056】
なお、カメラパラメータ推定部130は、ガウシアンピラミッドを作成することで、低解像度の画像から高解像度の画像へ段階的にカメラパラメータを推定することも可能である。具体的には、カメラパラメータ推定部130は、レンダリング画像及びカメラ画像にブラーをかけることで、解像度を1/2に低減した画像、及び解像度を1/4に低減した画像をそれぞれ生成してもよい。カメラパラメータ推定部130は、1/4の解像度の画像、1/2の解像度の画像、及びブラー前の画像の順にカメラパラメータを推定することにより、カメラパラメータの推定のロバスト性をより高めることができる。
【0057】
ここで、カメラパラメータ推定部130は、ステップS215の処理が終了した際に、終了条件を満たしたか否かを判断する(S217)。終了条件とは、例えば、検出された差分Lが閾値以下になること、又はステップS211~S215の処理の繰り返し実行回数であるイタレーション数が所定回数に達したことなどである。
【0058】
終了条件が満たされていない場合(S217/No)、レンダリング部120及びカメラパラメータ推定部130は、ステップS211~S215の処理を繰り返し実行することで、レンダリング画像の生成、及びカメラパラメータの更新を繰り返す。
【0059】
一方、終了条件が満たされた場合(S217/Yes)、カメラパラメータ推定部130は、ステップS211~S215の処理の繰り返しを終了させ、差分Lが最小となるカメラパラメータを推定結果として取得する(S219)。
【0060】
上記の処理では、環境座標系からカメラ300の座標系への変換が推定される。そのため、カメラパラメータ推定部130は、センサパラメータ推定部110と同様に、移動体10上に基準を設定することで、移動体10に対するカメラ300の各々の位置を推定することができる(S221)。
【0061】
例えば、移動体10の設計上の車両中心位置から0番目のセンサ200の位置への変換L0を基準として用いることで、車両中心位置からn番目のカメラ300への位置の変換は、以下の数式3で表される。これにより、カメラパラメータ推定部130は、移動体10の設計上の車両中心位置を基準として、カメラ300の各々の位置を推定することができる。
【0062】
【数3】
【0063】
以上の処理によれば、情報処理装置100は、移動体10の設計上の車両中心位置などを基準として、移動体10に搭載されたセンサ200、及びカメラ300の位置を推定することができる。また、情報処理装置100は、カメラ300の焦点距離、中心位置、及び歪みなどの内部パラメータを設計値からより高精度に推定することが可能である。
【0064】
これによれば、移動体10は、カメラ300で撮像された画像データ、及びセンサ200でセンシングされたポイントクラウドデータを統合して扱うことが可能となるため、SLAM等によってより高精度で周囲環境、及び自己位置を推定することが可能である。
【0065】
<3.変形例>
(3.1.第1の変形例)
図6は、第1の変形例を説明する説明図である。例えば、静止環境SEが地下駐車場、又は簡素なガレージなどである場合、静止環境SEに目印となるテクスチャが十分に存在しない可能性があり得る。
【0066】
このような場合、図6に示すように、プロジェクタ500によって静止環境SEの壁面等にテクスチャTxが投影されてもよい。テクスチャTxは、例えば、同一のパターンが存在しない非周期的なパターンである。情報処理装置100は、静止環境SEにテクスチャTxが投影されることで、3Dスキャナ400にて測定した三次元データから生成したレンダリング画像と、カメラ300にて撮像されたカメラ画像との差分をより容易に検出することが可能である。
【0067】
なお、テクスチャTxは、3Dスキャナ400及びカメラ300によるデータの取得時にのみ投影されていればよく、常に投影されていなくともよい。テクスチャTxが投影された静止環境SEを3Dスキャナ400にて測定した三次元データ、及びテクスチャTxが投影された静止環境SEをカメラ300にて撮像した画像データは、プロジェクタ500の位置、及び静止環境SEが変わらない限り連続して使用することが可能である。
【0068】
(3.2.第2の変形例)
図7は、第2の変形例を説明する説明図である。例えば、情報処理装置100は、カメラ単体に対して適用することも可能である。
【0069】
具体的には、図7に示すように、第2の変形例では、情報処理装置100がカメラ300aのカメラパラメータを推定する場合、補正用オブジェクトSEaが用意される。補正用オブジェクトSEaは、カメラ300aが撮像する静止環境を提供する物体である。補正用オブジェクトSEaは、例えば、カメラ300aの撮像範囲の大半を覆うような内部空間を有する半球、多角錐、又は直方体などであってもよい。このような補正用オブジェクトSEaは、例えば、3Dプリンタなどで製造することが可能である。
【0070】
補正用オブジェクトSEaの内部空間には、テクスチャが貼られており、テクスチャが貼られた内部空間を3Dスキャナ400で測定することで、補正用オブジェクトSEaの内部空間の三次元データが測定される。また、テクスチャが貼られた内部空間をカメラ300aで撮像することで、補正用オブジェクトSEaの内部空間の画像データが取得される。情報処理装置100は、補正用オブジェクトSEaの内部空間の三次元データから内部空間のレンダリング画像を生成し、生成したレンダリング画像を補正用オブジェクトSEaの内部空間のカメラ画像と比較することで、カメラ300aのカメラパラメータを推定することができる。
【0071】
カメラ300aのカメラパラメータの推定のために情報処理装置100で実行される処理は、図4及び図5を参照して説明したとおりである。ただし、カメラ300aで撮像されたn枚のカメラ画像と、対応するn個のレンダリング画像との差分を検出する場合、差分Lは、n個の画像の差分の合計となる。
【0072】
(3.3.第3の変形例)
図8は、第3の変形例に係るカメラパラメータ推定部130にて実行される前段の処理の流れを示すフローチャート図である。例えば、静止環境SEのテクスチャに各々を識別可能な二次元マーカが埋め込まれる場合、情報処理装置100は、検出した二次元マーカを用いてカメラ300の内部パラメータの初期値を推定することが可能である。
【0073】
例えば、カメラ300の内部パラメータの初期値となり得る適切なカタログ上の設計値、過去の補正の実績値、又は同等品の補正の実績値などがない場合、カメラ300の内部パラメータの初期値が設定されないことがあり得る。このような場合、図5に示すカメラパラメータ推定部130の後段の処理でカメラパラメータの推定が安定せず収束しないことがあり得る。
【0074】
第3の変形例では、カメラパラメータ推定部130は、静止環境SEのテクスチャに埋め込まれた二次元マーカを用いることで、カメラ300の内部パラメータの初期値を推定することが可能である。静止環境SEのテクスチャに埋め込まれる二次元マーカとしては、例えば、OpenCV(登録商標)のArUcoマーカなどを例示することができる。
【0075】
具体的には、図8に示すように、まず、カメラパラメータ推定部130は、カメラ300のカメラ画像から二次元マーカのコーナーの二次元座標を検出する(S301)。
【0076】
次に、カメラパラメータ推定部130は、二次元座標を検出した二次元マーカのコーナーの三次元座標を取得する(S303)。例えば、レンダリング部120は、3Dスキャナ400で測定された三次元ポイントクラウド又は三次元メッシュから、二次元座標を検出した二次元マーカが含まれるレンダリング画像を生成する。カメラパラメータ推定部130は、生成されたレンダリング画像の二次元マーカのコーナーの二次元座標のレイ(光線)と、レンダリング画像の生成に用いられた三次元ポイントクラウド又は三次元メッシュとの交点を計算することで、二次元マーカのコーナーの三次元位置を取得することができる。
【0077】
続いて、カメラパラメータ推定部130は、三次元位置を取得した二次元マーカのコーナーをカメラ画像に投影した際の再投影誤差を最小化させることで、カメラ300の内部パラメータを含むカメラパラメータを推定する(S305)。
【0078】
このとき、カメラパラメータ推定部130は、カメラ300の内部パラメータのすべてを推定してもよいが、推定する内部パラメータの数を減らすことで、内部パラメータの推定をより安定化させることが可能である。例えば、カメラパラメータ推定部130は、カメラ300の中心位置をカメラ画像の画像中心と同じとすることで、カメラ300の中心位置を推定から外すことが可能である。また、カメラパラメータ推定部130は、カメラ300の縦方向の焦点距離と横方向の焦点距離とが同じであるとすることで、推定するパラメータを1つ減らすことが可能である。さらに、カメラパラメータ推定部130は、カメラ300の歪みを表すパラメータの数を1~2程度まで減らすことで推定を安定化させることが可能である。
【0079】
レンダリング部120及びカメラパラメータ推定部130は、推定されたカメラ300の内部パラメータを含むカメラパラメータを初期値として図5に示す後段の処理を実行することで、同様に、カメラ300のカメラパラメータを高精度で推定することができる。
【0080】
<4.ハードウエア構成例>
さらに、図9を参照して、本実施形態に係る情報処理装置100のハードウエア構成について説明する。図9は、本実施形態に係る情報処理装置100のハードウエア構成例を示すブロック図である。
【0081】
本実施形態に係る情報処理装置100の機能は、ソフトウェアと、以下で説明するハードウエアとの協働によって実現され得る。センサパラメータ推定部110、レンダリング部120、及びカメラパラメータ推定部130の機能は、例えば、CPU901により実行されてもよい。
【0082】
図9に示すように、情報処理装置100は、CPU(Central Processing Unit)901、ROM(Read Only Memory)902、及びRAM(Random Access Memory)903を含む。
【0083】
また、情報処理装置100は、ホストバス904a、ブリッジ904、外部バス904b、インタフェース905、入力装置906、出力装置907、ストレージ装置908、ドライブ909、接続ポート910、又は通信装置911をさらに含んでもよい。情報処理装置100は、CPU901に替えて、又はCPU901と共に、DSP(Digital Signal Processor)、又はASIC(Application Specific Integrated Circuit)などの処理回路を有してもよい。
【0084】
CPU901は、演算処理装置、又は制御装置として機能し、ROM902、RAM903、ストレージ装置908、又はドライブ909に装着されたリムーバブル記録媒体に記録された各種プログラムに従って、情報処理装置100内の動作を制御する。ROM902は、CPU901が使用するプログラム、及び演算パラメータなどを記憶する。RAM903は、CPU901の実行において使用するプログラム、及びその実行の際に使用するパラメータなどを一時的に記憶する。
【0085】
CPU901、ROM902、及びRAM903は、高速なデータ伝送が可能なホストバス904aにより相互に接続される。ホストバス904aは、ブリッジ904を介して、PCI(Peripheral Component Interconnect/Interface)バスなどの外部バス904bに接続され、外部バス904bは、インタフェース905を介して種々の構成要素と接続される。
【0086】
入力装置906は、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチ、又はレバーなどのユーザからの入力を受け付ける装置である。なお、入力装置906は、ユーザの音声を検出するマイクロフォンなどであってもよい。入力装置906は、例えば、赤外線、又はその他の電波を利用したリモートコントロール装置であってもよく、情報処理装置100の操作に対応した外部接続機器であってもよい。
【0087】
入力装置906は、ユーザが入力した情報に基づいて生成した入力信号をCPU901に出力する入力制御回路をさらに含む。ユーザは、入力装置906を操作することによって、情報処理装置100に対して各種データの入力、又は処理動作の指示を行うことができる。
【0088】
出力装置907は、情報処理装置100にて取得又は生成された情報をユーザに対して視覚的、又は聴覚的に提示することが可能な装置である。出力装置907は、例えば、LCD(Liquid Crystal Display)、PDP(Plasma Display Panel)、OLED(Organic Light Emitting Diode)ディスプレイ、ホログラム、若しくはプロジェクタなどの表示装置、スピーカ若しくはヘッドホンなどの音出力装置、又はプリンタ装置などの印刷装置であってもよい。出力装置907は、情報処理装置100の処理により得られた情報をテキスト若しくは画像などの映像、又は音声若しくは音響などの音として出力することができる。
【0089】
ストレージ装置908は、情報処理装置100の記憶部の一例として構成されたデータ格納装置である。ストレージ装置908は、例えば、HDD(Hard Disk Drive)などの磁気記憶デバイス、半導体記憶デバイス、光記憶デバイス、又は光磁気記憶デバイスなどにより構成されてもよい。ストレージ装置908は、CPU901が実行するプログラム、各種データ、又は外部から取得した各種データなどを格納することができる。
【0090】
ドライブ909は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブル記録媒体の読み取り又は書き込み装置であり、情報処理装置100に内蔵、又は外付けされる。例えば、ドライブ909は、装着されているリムーバブル記録媒体に記録されている情報を読み出してRAM903に出力することができる。また、ドライブ909は、装着されているリムーバブル記録媒体に記録を書き込むことができる。
【0091】
接続ポート910は、外部接続機器を情報処理装置100に直接接続するためのポートである。接続ポート910は、例えば、USB(Universal Serial Bus)ポート、IEEE1394ポート、又はSCSI(Small Computer System Interface)ポートなどであってもよい。また、接続ポート910は、RS-232Cポート、光オーディオ端子、又はHDMI(登録商標)(High-Definition Multimedia Interface)ポートなどであってもよい。接続ポート910は、外部接続機器と接続されることで、情報処理装置100と外部接続機器との間で各種データの送受信を行うことができる。
【0092】
通信装置911は、例えば、通信ネットワーク920に接続するための通信デバイスなどで構成された通信インタフェースである。通信装置911は、例えば、有線若しくは無線LAN(Local Area Network)、Wi-Fi(登録商標)、Bluetooth(登録商標)、又はWUSB(Wireless USB)用の通信カードなどであってもよい。また、通信装置911は、光通信用のルータ、ADSL(Asymmetric Digital Subscriber Line)用のルータ、又は各種通信用のモデムなどであってもよい。
【0093】
通信装置911は、例えば、インターネット、又は他の通信機器との間で、TCP/IPなどの所定のプロトコルを用いて信号などを送受信することができる。また、通信装置911に接続される通信ネットワーク920は、有線又は無線によって接続されたネットワークであり、例えば、インターネット通信網、家庭内LAN、赤外線通信網、ラジオ波通信網、又は衛星通信網などであってもよい。
【0094】
なお、コンピュータに内蔵されるCPU901、ROM902、及びRAM903などのハードウエアに上記の情報処理装置100と同等の機能を発揮させるためのプログラムも作成可能である。また、該プログラムを記録したコンピュータに読み取り可能な記録媒体も提供可能である。
【0095】
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
【0096】
また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果とともに、または上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏しうる。
【0097】
なお、以下のような構成も本開示の技術的範囲に属する。
(1)
3Dスキャナで測定した環境の三次元データと、前記環境を撮像するカメラのカメラパラメータとに基づいて、前記カメラで撮像されたカメラ画像に対応するレンダリング画像を生成するレンダリング部と、
前記カメラ画像と、前記レンダリング画像との差分を抽出し、前記差分がより小さくなるように前記カメラパラメータを更新するカメラパラメータ推定部と、
を備える、情報処理装置。
(2)
前記レンダリング部及び前記カメラパラメータ推定部は、前記差分が閾値以下になるまで前記レンダリング画像の生成と、前記カメラパラメータの更新とを繰り返し実行する、前記(1)に記載の情報処理装置。
(3)
前記カメラパラメータは、前記カメラの位置を表す外部パラメータと、前記カメラ画像と前記環境との対応関係を示す内部パラメータとを含む、前記(1)又は(2)に記載の情報処理装置。
(4)
前記外部パラメータの初期値は、前記カメラ画像と、前記外部パラメータの暫定値を用いて生成された前記レンダリング画像との特徴点マッチングにて抽出されたマッチング点を用いて推定される、前記(3)に記載の情報処理装置。
(5)
前記カメラは、オブジェクトの位置を検出可能なセンサが搭載された機器に搭載され、
前記外部パラメータの前記暫定値は、前記センサの位置に基づいて決定される、前記(4)に記載の情報処理装置。
(6)
前記機器は、移動体である、前記(5)に記載の情報処理装置。
(7)
前記センサの位置を含むセンサパラメータを推定するセンサパラメータ推定部をさらに備える、前記(5)又は(6)に記載の情報処理装置。
(8)
前記センサパラメータ推定部は、前記三次元データと、前記センサで取得した前記環境のポイントクラウドデータとの位置合わせを行うことで、前記センサパラメータを推定する、前記(7)に記載の情報処理装置。
(9)
前記センサパラメータ推定部は、複数段階に分けて前記位置合わせを行う、前記(8)に記載の情報処理装置。
(10)
前記環境は、少なくとも三方向以上が面で閉ざされた静止環境である、前記(1)~(9)のいずれか一項に記載の情報処理装置。
(11)
前記環境の面には、所定のテクスチャが投影される、前記(10)に記載の情報処理装置。
(12)
前記テクスチャには、各々を識別可能な二次元マーカが含まれる、前記(11)に記載の情報処理装置。
(13)
3Dスキャナで測定した環境の三次元データと、前記環境を撮像するカメラのカメラパラメータとに基づいて、前記カメラで撮像されたカメラ画像に対応するレンダリング画像を生成することと、
前記カメラ画像と、前記レンダリング画像との差分を抽出し、前記差分がより小さくなるように前記カメラパラメータを更新することと、
を含む、コンピュータによる情報処理方法。
(14)
コンピュータを、
3Dスキャナで測定した環境の三次元データと、前記環境を撮像するカメラのカメラパラメータとに基づいて、前記カメラで撮像されたカメラ画像に対応するレンダリング画像を生成するレンダリング部と、
前記カメラ画像と、前記レンダリング画像との差分を抽出し、前記差分がより小さくなるように前記カメラパラメータを更新するカメラパラメータ推定部と、
として機能させるための、プログラム。
【符号の説明】
【0098】
10 移動体
100 情報処理装置
110 センサパラメータ推定部
120 レンダリング部
130 カメラパラメータ推定部
200 センサ
300 カメラ
400 3Dスキャナ
500 プロジェクタ
SE 静止環境
Tx テクスチャ

図1
図2
図3
図4
図5
図6
図7
図8
図9