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

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

▶ キヤノン株式会社の特許一覧

<>
  • 特許-情報処理装置およびその制御方法 図1
  • 特許-情報処理装置およびその制御方法 図2
  • 特許-情報処理装置およびその制御方法 図3
  • 特許-情報処理装置およびその制御方法 図4
  • 特許-情報処理装置およびその制御方法 図5
  • 特許-情報処理装置およびその制御方法 図6
  • 特許-情報処理装置およびその制御方法 図7
  • 特許-情報処理装置およびその制御方法 図8
  • 特許-情報処理装置およびその制御方法 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-16
(45)【発行日】2024-04-24
(54)【発明の名称】情報処理装置およびその制御方法
(51)【国際特許分類】
   G06T 7/55 20170101AFI20240417BHJP
   G09B 29/00 20060101ALI20240417BHJP
【FI】
G06T7/55
G09B29/00 Z
【請求項の数】 23
(21)【出願番号】P 2020113194
(22)【出願日】2020-06-30
(65)【公開番号】P2022011818
(43)【公開日】2022-01-17
【審査請求日】2023-06-06
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】冨岡 誠
【審査官】真木 健彦
(56)【参考文献】
【文献】特表2019-500602(JP,A)
【文献】国際公開第2019/049421(WO,A1)
【文献】国際公開第2004/113836(WO,A1)
【文献】特開2019-125116(JP,A)
【文献】山崎 俊太郎,一人称ビジョンシステムのための自己位置推定法,電子情報通信学会技術研究報告 Vol.110 No.28,日本,社団法人電子情報通信学会,2010年05月06日,IE2010-27,PRMU2010-15,MI2010-15(2010-5),P.73-78
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/55
G06T 7/70
G06T 7/80
G06T 7/00
G06T 17/05
G09B 29/00
(57)【特許請求の範囲】
【請求項1】
三次元空間を第1のカメラにより撮影して得られる第1の画像を取得する画像取得手段と、
前記三次元空間を前記第1のカメラとは異なる第2のカメラにより撮影して得られる第2の画像を第2の変換情報により幾何変換して得られる第2の変換画像に基づいて生成された地図情報を取得する地図情報取得手段と、
前記第1の画像を第1の変換情報により幾何変換して第1の変換画像を生成する画像変換手段と、
前記地図情報と前記第1の変換画像とを照合する照合手段と、
を有し、
前記第1の変換情報および前記第2の変換情報は、前記三次元空間と前記第1の変換画像との幾何対応関係と前記三次元空間と前記第2の変換画像との幾何対応関係とが共通の幾何対応関係となるように設定される
ことを特徴とする情報処理装置。
【請求項2】
前記第1の変換情報は前記第1のカメラのカメラパラメータを含み、前記第2の変換情報は前記第2のカメラのカメラパラメータを含む
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記第2の変換情報は、前記第2のカメラにより撮影された画像に対する画角、画像中心の調整または歪み補正の少なくとも何れか一つを行う変換情報である
ことを特徴とする請求項1または2に記載の情報処理装置。
【請求項4】
前記共通の幾何対応関係と前記第1のカメラのカメラパラメータとに基づいて前記第1の変換情報を生成する変換情報生成手段をさらに有する
ことを特徴とする請求項1乃至3の何れか1項に記載の情報処理装置。
【請求項5】
前記第1の画像および前記第2の画像は、デプスマップを含む
ことを特徴とする請求項1乃至4の何れか1項に記載の情報処理装置。
【請求項6】
前記共通の幾何対応関係を示す共通パラメータを生成するパラメータ生成手段をさらに有する
ことを特徴とする請求項1乃至5の何れか1項に記載の情報処理装置。
【請求項7】
前記パラメータ生成手段は、前記第2のカメラのカメラパラメータまたは前記第2のカメラにより撮影された画像の歪みおよびバイアスを補正した画像におけるカメラパラメータの何れか一つを選択する
ことを特徴とする請求項6に記載の情報処理装置。
【請求項8】
前記パラメータ生成手段は、前記第1の変換画像に含まれる前記第1のカメラによる撮像領域量または変換画像の画質の高さを表す度合の少なくとも一方に基づいて前記共通パラメータを生成する
ことを特徴とする請求項6に記載の情報処理装置。
【請求項9】
前記パラメータ生成手段は、ユーザにより指定されたカメラパラメータに基づいて前記共通パラメータを生成する
ことを特徴とする請求項6に記載の情報処理装置。
【請求項10】
前記パラメータ生成手段は、前記第1のカメラによる撮影範囲と前記第2のカメラによる撮影範囲とに基づいて前記共通パラメータを生成する
ことを特徴とする請求項6に記載の情報処理装置。
【請求項11】
前記パラメータ生成手段は、前記第1の変換画像の範囲が前記第1のカメラによる撮影範囲と前記第2のカメラによる撮影範囲との両方に含まれるように前記共通パラメータを生成する
ことを特徴とする請求項10に記載の情報処理装置。
【請求項12】
前記第1の変換画像に基づいて前記地図情報を更新する地図情報更新手段をさらに有する
ことを特徴とする請求項1乃至11の何れか1項に記載の情報処理装置。
【請求項13】
前記第1のカメラの光学特性は、前記第2のカメラの光学特性と異なる
ことを特徴とする請求項1乃至12の何れか1項に記載の情報処理装置。
【請求項14】
前記第1の変換情報および前記第2の変換情報は、前記共通パラメータの初期値に基づいて設定される
ことを特徴とする請求項6に記載の情報処理装置。
【請求項15】
前記共通パラメータは、前記第1の画像と前記第2の画像との共通領域を最大化するパラメータである
ことを特徴とする請求項6に記載の情報処理装置。
【請求項16】
前記第2の変換情報を取得する変換情報取得手段をさらに有し、
前記画像変換手段は、前記第2の変換情報に基づいて前記第1の変換画像を生成する
ことを特徴とする請求項1乃至15の何れか1項に記載の情報処理装置。
【請求項17】
三次元空間を第1のカメラにより撮影して得られる第1の画像を取得する画像取得手段と、
前記三次元空間を前記第1のカメラとは異なる第2のカメラにより撮影して得られる第2の画像を第2の変換情報により幾何変換して得られる第2の変換画像に基づいて生成された地図情報を取得する地図情報取得手段と、
前記第1の画像の特徴点と、該第1の画像の特徴点の座標を第1の変換情報により幾何変換して得られる変換座標における前記地図情報とを照合する照合手段と、
を有し、
前記第1の変換情報および前記第2の変換情報は、前記三次元空間と前記第1の画像を前記第1の変換情報により変換した第1の変換画像との幾何対応関係と前記三次元空間と前記第2の変換画像との幾何対応関係とが共通の幾何対応関係となるように設定される
ことを特徴とする情報処理装置。
【請求項18】
前記三次元空間を第3のカメラにより撮影して得られる第3の画像を第3の変換情報により幾何変換して得られる第3の変換画像に基づいて生成された第2の地図情報を取得する第2の地図情報取得手段と、
前記第2の地図情報を前記地図情報と共通の幾何対応関係となるよう変換し変換地図情報を生成する地図情報変換手段と、
をさらに有する
ことを特徴とする請求項1乃至17の何れか1項に記載の情報処理装置。
【請求項19】
前記地図情報と前記変換地図情報とを単一の地図情報に合成する合成手段をさらに有する
ことを特徴とする請求項18に記載の情報処理装置。
【請求項20】
前記照合手段は、前記照合により前記第1のカメラの位置姿勢を算出する
ことを特徴とする請求項1乃至19の何れか1項に記載の情報処理装置。
【請求項21】
三次元空間を撮影する第1のカメラと接続される情報処理装置の制御方法であって、
前記第1のカメラにより得られる第1の画像を取得する画像取得工程と、
前記三次元空間を前記第1のカメラとは異なる第2のカメラにより撮影して得られる第2の画像を第2の変換情報により幾何変換して得られる第2の変換画像に基づいて生成された地図情報を取得する地図情報取得工程と、
前記第1の画像を第1の変換情報により幾何変換して第1の変換画像を生成する画像変換工程と、
前記地図情報と前記第1の変換画像とを照合する照合工程と、
を含み、
前記第1の変換情報および前記第2の変換情報は、前記三次元空間と前記第1の変換画像との幾何対応関係と前記三次元空間と前記第2の変換画像との幾何対応関係とが共通の幾何対応関係となるように設定される
ことを特徴とする制御方法。
【請求項22】
三次元空間を撮影する第1のカメラと接続される情報処理装置の制御方法であって、
前記第1のカメラにより得られる第1の画像を取得する画像取得工程と、
前記三次元空間を前記第1のカメラとは異なる第2のカメラにより撮影して得られる第2の画像を第2の変換情報により幾何変換して得られる第2の変換画像に基づいて生成された地図情報を取得する地図情報取得工程と、
前記第1の画像の特徴点と、該第1の画像の特徴点の座標を第1の変換情報により幾何変換して得られる変換座標における前記地図情報とを照合する照合工程と、
を含み、
前記第1の変換情報および前記第2の変換情報は、前記三次元空間と前記第1の画像を前記第1の変換情報により変換した第1の変換画像との幾何対応関係と前記三次元空間と前記第2の変換画像との幾何対応関係とが共通の幾何対応関係となるように設定される
ことを特徴とする制御方法。
【請求項23】
コンピュータを、請求項1乃至20の何れか1項に記載の情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、センサにより得られた情報に基づき生成される地図情報を効率的に共有する技術に関するものである。
【背景技術】
【0002】
画像情報に基づくカメラの位置及び姿勢の計測は、複合現実感/拡張現実感における現実空間と仮想物体の位置合わせや、ロボットや自動車の自己位置推定、物体や空間の三次元モデリングなど様々な目的で利用される。位置姿勢推定には、画像情報から検出した2次元の位置情報を持つ特徴群と、それらから復元した3次元位置情報を含む地図を用いる。
【0003】
特許文献1では、複数のユーザが活動するグローバル地図と、1人のユーザが保持するカメラを含む端末装置で生成したローカル地図との相対位置を算出し、グローバル地図を更新する方法が開示されている。この方法では、グローバル地図とローカル地図に共通して含まれる物体の特徴量に基づいて、ローカル地図とグローバル地図とに含まれる共通の特徴群の三次元位置情報が一致するように、相対位置を算出している。
【先行技術文献】
【特許文献】
【0004】
【文献】特許第5471626号
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1に記載の技術では、地図の作成に使用するカメラと作成した地図を利用するカメラとが異なる場合、カメラで撮影した画像と地図との照合や位置姿勢算出の精度や安定性が低下するという課題がある。また、安定した精度で地図を作成するためにはカメラ毎に地図を作成しなければならず、地図作成に手間がかかるという課題がある。
【0006】
本発明は、このような問題に鑑みてなされたものであり、センサにより得られた情報に基づき生成される地図情報を効率的に共有する技術を提供することを目的としている。
【課題を解決するための手段】
【0007】
上述の問題点を解決するため、本発明に係る情報処理装置は以下の構成を備える。すなわち、情報処理装置は、
三次元空間を第1のカメラにより撮影して得られる第1の画像を取得する画像取得手段と、
前記三次元空間を前記第1のカメラとは異なる第2のカメラにより撮影して得られる第2の画像を第2の変換情報により幾何変換して得られる第2の変換画像に基づいて生成された地図情報を取得する地図情報取得手段と、
前記第1の画像を第1の変換情報により幾何変換して第1の変換画像を生成する画像変換手段と、
前記地図情報と前記第1の変換画像とを照合する照合手段と、
を有し、
前記第1の変換情報および前記第2の変換情報は、前記三次元空間と前記第1の変換画像との幾何対応関係と前記三次元空間と前記第2の変換画像との幾何対応関係とが共通の幾何対応関係となるように設定される。
【発明の効果】
【0008】
本発明によれば、センサにより得られた情報に基づき生成される地図情報を効率的に共有する技術を提供することができる。
【図面の簡単な説明】
【0009】
図1】システムにおける処理の概念を説明する図である。
図2】情報処理装置の機能構成を示す図である。
図3】情報処理装置のハードウェア構成を示す図である。
図4】情報処理装置の動作を説明するフローチャートである。
図5】共通パラメータを生成するためのGUIの一例を示す図である。
図6】共通パラメータ自動生成の概念を示す図である。
図7】情報処理装置の動作を説明するフローチャートである(第3実施形態)。
図8】情報処理装置の機能構成を示す図である(第5実施形態)。
図9】情報処理装置の動作を説明するフローチャートである(第5実施形態)。
【発明を実施するための形態】
【0010】
以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
【0011】
(第1実施形態)
本発明に係る情報処理装置の第1実施形態として、カメラから入力される画像と地図情報とをマッチングし、カメラの位置姿勢を算出する情報処理装置について述べる。例えば、算出した位置姿勢は移動体の制御に用いられることになる。なお、位置姿勢を入力し移動体を制御する方法については公知であるため説明は省略する。
【0012】
<システムの動作概要>
第1実施形態においては、カメラ2で撮像した画像を用いて作成した地図情報を用いて、カメラ2とは異なるカメラ1の位置姿勢を算出する。特に、カメラ毎に地図を作成する手間を削減し、高い精度で、安定して位置姿勢を算出する。
【0013】
図1は、システムにおける処理の概念を説明する図である。上述したように、カメラ2で撮像した画像を用いて作成した地図情報を、カメラ1の位置姿勢算出に用いる。ここで、地図情報は、カメラ2で撮影された画像を幾何変換して得られる変換画像に基づきあらかじめ作成されている。カメラの位置姿勢推定は、地図に含まれる特徴点の三次元位置を、カメラパラメータに基づいて画像上に投影し、投影した点と、画像から検出した特徴点の二次元位置との距離を最小化するように算出する。ここでは、投影時のカメラパラメータと画像の関係を「カメラパラメータで表される画像」と呼ぶ。ここで、カメラ1、カメラ2は、特性の差異により、撮像する画像の歪みや焦点距離を含むカメラパラメータがそれぞれ異なる。
【0014】
画像からの位置姿勢を高精度に行うためには、一般に、カメラ毎に異なる歪み補正済みカメラパラメータで表される画像を生成する。例えば、文献1(Z. Zhang, "A flexible new technique for camera calibration", TPAMI, 2000)(以降ではZhangと呼ぶ)のようなカメラキャリブレーションを事前に行う。しかし、カメラ毎に異なる歪み補正済みパラメータで画像を補正するために、地図情報に含まれる三次元位置情報を投影処理すると、カメラ1とカメラ2で異なる2次元位置に投影されることになる。このため、特徴点マッチングや位置姿勢算出の精度が低下する(地図情報や投影処理については後述する)。
【0015】
そこで、第1実施形態では、各々のカメラ毎に歪みを取り除いた画像を生成する代わりに、共通するカメラパラメータとなるように画像を生成(変換)し、地図情報を共通したカメラパラメータで投影処理する。これにより精度高く特徴点マッチングや位置姿勢算出ができる。
【0016】
ここでは、地図情報とは、画像から検出した画像特徴情報、画像特徴が検出された画像を撮影したカメラの位置姿勢情報(以降では画像の位置姿勢と呼ぶ)、および画像特徴の三次元位置情報を保持するデータのことである。画像特徴情報とは、画像特徴の特徴量および画像上での二次元座標(u,v)のことである。画像特徴とは、画像中の角など幾何学的な構造を指し示す特徴点として検出する。位置姿勢情報とは、現実空間中に規定された世界座標における、カメラの位置を表す3個のパラメータ及びカメラの姿勢(向き)を表す3個のパラメータを合わせた6個のパラメータのことである。なお、6個のパラメータを、回転行列として3×3行列で表すこともある。回転表現については相互変換方法が公知であるため説明を省略する。また、画像特徴(特徴点)の三次元位置情報とは、世界座標上の三次元座標(X,Y,Z)のことである。
【0017】
カメラの位置姿勢算出では、まずカメラ1が撮像したモノクロ画像から検出した特徴点と、地図情報に含まれる特徴点とをマッチングする。次に、マッチングした特徴点の3次元座標と、検出した特徴点の画像上での二次元位置の対応関係から、PNP問題(Perspective-n-Point Problem)を解くことでカメラ1の位置姿勢を算出する。PNP問題を解くとは、数式(1)に示す誤差関数を最小化するカメラの位置姿勢を求めることである。
【0018】
【数1】
【0019】
dist()は、二つの2次元座標の距離の二乗距離を求める関数である。u1 =(u1 ,v1 )はカメラ1の歪み補正後の画像の特徴点の二次元座標である。歪み補正とは、レンズ光学系特有の撮像画像における幾何学的歪みを取り除くことである。具体的には、カメラ1で撮影した画像からレンズ歪み補正済み画像を生成し、当該歪み補正済み画像上で検出した、特徴点の検出二次元座標(u1)を算出する。画像の歪みに用いるカメラの歪みパラメータは、例えばradial-tangentialモデルの歪みパラメータを事前のカメラキャリブレーションによって求める。
【0020】
カメラキャリブレーションでは、Zhangの方法を用いて、カメラ1のカメラパラメータc1と、カメラ1の歪み補正済みカメラパラメータc1 を生成する。c1は、焦点距離fx1,fy1、画像中心座標cx1,cy1、歪みパラメータk11,k21,k31,p11,p21を含む。c1 は、焦点距離fx1 ,fy1 、画像中心座標cx1 ,cy1 を含み、歪みパラメータは0(ゼロ)である。ここでは、カメラモデルはピンホールカメラモデルを用いる方法について説明する。
【0021】
u=(u,v)は、特徴点の三次元座標を投影した点である。カメラ1の位置T=(tx,ty,tz)、姿勢である3×3の回転行列R、歪み補正済みカメラパラメータc1 を用いて数式(2)のように表される。
【0022】
【数2】
【0023】
M()は世界座標系上の三次元座標を、カメラ座標系の座標Xc=(Xc,Yc,Zc)に変換する関数であり、数式(3)のように定義する。
【0024】
【数3】
【0025】
τ()は三次元座標を2次元の正規化座標x=(x,y)へ投影する投影処理関数であり、数式(4)のように定義する。
【0026】
【数4】
【0027】
π()は、正規化座標から画像座標への変換を表す関数であり、数式(5)のように定義する。
【0028】
【数5】
【0029】
また、さらに複数の時刻で観測した画像に対して各時刻のカメラ位置姿勢と特徴点の三次元座標を数式(2)を最小化する地図最適化(バンドル調整)も合わせて行うことで、より精度よく位置姿勢を算出することができる。
【0030】
上述のように、Zhangの方法では、カメラの仕様や個体差によるカメラパラメータの差異により歪み補正済みカメラパラメータがカメラ毎に異なる。このため、同じ空間を撮影したとしても、歪み補正済み画像がカメラ毎に異なる。言い換えれば、カメラ2の歪み補正済みカメラパラメータc2 を用いて作成した地図を、カメラ1の歪み補正済みカメラパラメータc1 を用いて位置姿勢算出すると、位置姿勢精度が低下する。
【0031】
そこで、第1実施形態では、カメラの仕様や個体差があったとしても、カメラが同じ位置にあれば、空間中の物体が、カメラ2の歪み補正画像とカメラ1の変換画像とで同じ位置に写るように画像をあらかじめ変換する。それにより、カメラ個体差の影響を受けずに位置姿勢を算出する。
【0032】
ここで、共通パラメータc を、地図情報に含まれる三次元空間を二次元配列に投影する、すなわち異なるカメラの画像に三次元の特徴点を投影した時に、画像上で同一の位置に投影されるカメラパラメータと定義する。このとき、共通パラメータc は、焦点距離fx ,fy 、画像中心座標cx ,cy を含み、歪みパラメータは0である。そして、共通パラメータの下で同一の幾何対応関係となるよう変換された画像を「共通パラメータで表される変換画像」または単に変換画像と呼ぶ。
【0033】
本実施形態では、共通パラメータをカメラ2の歪み補正済みカメラパラメータc2 とする(すなわち、c=c2 )。なお、c2 は、焦点距離fx2 ,fy2 、画像中心座標cx2 ,cy2 を含み、歪みパラメータは0である。そして、カメラ1で撮像した画像を共通パラメータ(すなわちカメラ2の歪み補正済みカメラパラメータ)で表されるように変換する。
【0034】
本実施形態においては、地図情報は、事前にカメラ2の入力画像を用いて作成してあり、図3を参照して後述する外部メモリ24に格納済みであるとする。なお、地図情報は、画像からカメラの位置姿勢と特徴点の三次元位置(すなわち地図情報)を作成するSLAM(Simultaneous Localization And Mapping)技術を用いることで作成する。例えば、文献2(R. Mur-Artal et al., "ORB-SLAM: a Versatile and Accurate Monocular SLAM System", T-RO, 2015)(以降ではRaulと呼ぶ)に記載の方法で作成しておく。
【0035】
<装置構成>
図2は、第1実施形態に係る情報処理装置100の機能構成を示す図である。上述したように、情報処理装置100は、センサ10であるカメラから入力された画像に基づいて位置姿勢を算出し、移動体の制御するために、移動体制御部(不図示)に位置姿勢を出力する。
【0036】
共通パラメータ生成部11は、共通パラメータを生成する。なお、パラメータ入力部(不図示)から共通パラメータを入力するよう構成してもよい。上述したように、本実施形態における共通パラメータとは地図保持部17が保持する地図情報を作成したカメラ2の歪み補正済みカメラパラメータc2 であり、c=c2 である。すなわち、地図情報は、カメラ2が撮影した画像に対し歪み補正のみがなされた補正画像に基づいて作成されている。ただし、カメラ2が撮影した画像に対する画角、画像中心の調整または歪み補正の少なくとも何れか一つがなされた補正画像に基づいて作成されていればよい。
【0037】
パラメータ保持部12は、共通パラメータ生成部11が生成した共通パラメータと、カメラ1のカメラパラメータc1を保持する。カメラパラメータはパラメータ入力部(不図示)から入力される。共通パラメータは、変換情報生成部13および地図照合部18に出力される。
【0038】
変換情報生成部13は、カメラ1から入力される入力画像を、共通パラメータで表される変換画像に変換するためのルックアップテーブル(以降ではリマップテーブルと呼ぶ)を生成する。リマップテーブルは、パラメータ保持部12が入力する共通パラメータとカメラ1のカメラパラメータとを用いて生成される。リマップテーブルとは、ある画像の画素が、別の画像のどの画素に対応するかを示した二次元配列のデータ構造のことである。生成したリマップテーブルを変換情報保持部14に出力する。変換情報保持部14は、変換情報生成部13が生成したリマップテーブルを保持する。リマップテーブルは変換部16に出力される。
【0039】
入力部15は、センサ10であるカメラ1と接続されており、カメラ1が撮像した画像を時系列(例えば毎秒60フレーム)で画像取得し、変換部16に出力する。ここでは、センサ10は、モノクロ画像を取得するとする。変換部16は、入力部15が入力した画像を、変換情報保持部14から入力されたリマップテーブルを用いて幾何変換(画像変換)する。幾何変換により得られた変換画像は地図照合部18に出力される。
【0040】
地図保持部17は、共通パラメータを用いて事前に作成した地図情報を外部メモリ24よりロードし保持する。保持した地図情報を地図照合部18に出力する。地図照合部18は、地図保持部17からの地図情報取得を行い、変換部16が入力した変換画像と、地図保持部17から取得した地図情報とを照合して、センサ10の位置姿勢を算出する。算出した位置姿勢は移動体制御部(不図示)に出力される。
【0041】
図3は、情報処理装置100のハードウェア構成を示す図である。CPU21は、システムバス29に接続された各種デバイスの制御を行う。ROM22は、BIOSのプログラムやブートプログラムを記憶する。RAM23は、CPU21の主記憶装置として使用される。外部メモリ24は、情報処理装置100が処理するプログラムを格納する。
【0042】
入力部25はキーボードやマウスなど情報等の入力に係る処理を行う。表示部26はCPU21からの指示に従って演算結果を表示装置に出力する。なお、表示装置は液晶表示装置やプロジェクタ、LEDインジケーターなど、種類は問わない。通信インターフェイス27は、ネットワークを介して情報通信を行うものである。インターフェイス規格は、イーサネットなどのネットワーク通信規格でもよい。また、USBなどのシリアル通信、無線通信等種類は問わない。なお、情報処理装置100が算出した位置姿勢情報は、通信インターフェイス27を介して移動体制御部(不図示)に出力される。I/O28は、センサ10から画像を入力する。
【0043】
<装置の動作>
図4は、情報処理装置100の動作を説明するフローチャートである。
【0044】
ステップS11では、情報処理装置100は、システムの初期化を行う。すなわち、外部メモリ24からプログラムを読み込み、情報処理装置100を動作可能な状態にする。また、必要に応じて外部メモリ24から地図情報やカメラパラメータをRAM23に読み込む。
【0045】
ステップS12では、共通パラメータ生成部11は、パラメータ入力部(不図示)を介して共通パラメータおよびカメラ1のカメラパラメータを取得する。そして、取得した共通パラメータをパラメータ保持部12に出力する。
【0046】
ステップS13では、変換情報生成部13は、カメラ1の入力画像から共通パラメータで表される変換画像を生成するための変換情報(すなわちリマップテーブル)を生成する。具体的には、パラメータ保持部12が保持する共通パラメータとカメラ1のカメラパラメータc1を用いて、リマップテーブルを生成する。
【0047】
カメラ1の入力画像の画像座標ud =(ud ,vd )と、変換後の画像u=(u,v)とは、数式(6)で表すことができる。
【0048】
【数6】
【0049】
π()-1は画像座標から正規化座標への変換関数であり、数式(7)で表す。
【0050】
【数7】
【0051】
d()はレンズ歪みモデルであり、歪みあり(入力画像)の正規化座標x`=(x`,y`)と、歪み無しの画像の正規化座標x=(x,y)との関係を表す関数であり、数式(8)で表す。
【0052】
【数8】
【0053】
π()は正規化座標から共通パラメータで表される変換画像への画像座標との変換関数であり、数式(9)で表す。
【0054】
【数9】
【0055】
数式(6)は変換後の各画素の座標uに対する入力画像の画像座標を表している。ここでは、リマップテーブルは、変換後の各画素に対する歪み補正前の座標を格納した二次元配列として作成しておく。作成したリマップテーブルは、変換情報保持部14が保持する。
【0056】
ステップS14では、入力部15は、センサ10であるカメラ1が撮像した画像を入力する。そして入力された画像を、変換部16に出力する。
【0057】
ステップS15では、変換部16は、リマップテーブルを用いて入力画像を共通パラメータで表される変換画像に変換する。具体的には、リマップテーブルの各要素が指定する座標に基づいて、バイリニア補間で画素値を決め、変換画像の各画素に画素値を格納し、変換画像を生成する。なお、リマップテーブルにおいて、ある画素が画像外の座標を指し示す場合には、当該画素を黒(輝度0)とする。その後、変換画像を、地図照合部18に出力する。
【0058】
ステップS16では、地図照合部18は、地図保持部17が保持する地図と、変換部16が入力した共通パラメータで表される変換画像とを用いてセンサ10の位置姿勢を算出する。例えば、地図を用いた位置姿勢算出にRaulの方法を用いる。ただし、カメラ1の入力画像の代わりに変換画像を入力し、位置姿勢算出で用いるカメラパラメータに共通パラメータを用いる。
【0059】
ステップS17では、情報処理装置100は、システムを終了するか否かの判断を行う。例えば、移動体(不図示)が目的に到着した場合に、システムを終了するコマンドが移動体制御部(不図示)から入力される。終了コマンドが入力された場合にはシステムを終了する。そうでなければステップS14に戻り、センサ情報の変換および地図照合を継続する。
【0060】
<効果>
以上説明したとおり第1実施形態によれば、カメラ1の画像を共通パラメータで表される変換画像にあらかじめ変換してから地図との照合を行う。このとき、地図を作成したカメラ2の歪み補正済みパラメータを共通パラメータとして用いる。このようにすることで、地図を作成したカメラと位置姿勢算出で用いるカメラが異なる場合であっても、画像と地図との照合や位置姿勢算出を、高精度で安定して行うことが可能となる。また、カメラ毎に地図を作成するという手間もなくなる。
【0061】
さらに、共通パラメータで表せられる画像への変換は、従来の歪み補正における画像補正処理(リマップ)におけるリマップテーブルを変えるだけで実現可能である。そのため、地図照合における処理時間の増加させることなく実現することができる。
【0062】
<変形例>
上述の説明では、センサ10(カメラ1)はモノクロ画像を取得するモノクロカメラであるとした。しかし、センサ10としては、モノクロカメラに限定されず、カラーカメラ、ステレオカメラ、奥行カメラなどを用いることも可能である。すなわち、三次元空間を射影して得られる二次元配列情報を取得するものであれば何でもよい。なお、奥行カメラとはカメラの各画素がセンサからの奥行(デプス)値を格納したデプスマップを取得するカメラである。また、センサ10は三次元空間を射影して二次元配列に格納する構成の三次元LiDARでもよい。センサは単眼でもよいしステレオやさらに複数のカメラを備えるようにしてもよい。
【0063】
また、地図情報とは、画像から検出した画像特徴情報、画像特徴が検出された画像を撮影したカメラ2の位置姿勢情報、および画像特徴の三次元位置情報を保持するデータであるとした。しかし、地図情報のデータ構造はこれに限らず、三次元空間の位置を表す座標を持つ特徴と、それを二次元空間に射影した二次元空間の位置を表す特徴を保持する構成であればよい。三次元空間の位置を表す特徴としては、特徴点のようなある一点の三次元座表を保持するだけでなく、法線も持つNP(Normal Point Data)でもよい。また、空間中の物体との境界位置を表すSDF(Signed Distance Function)やTSDF(Truncated Signed Distance Function)でもよい。さらに三次元の線分でもよい。また、二次元空間の位置を表す特徴は、本実施形態で延べた特徴点に限らず、エッジでもよし、明暗の分布情報でもよい。
【0064】
さらに、カメラモデルとしてピンホールカメラモデルを用いるとしたが、他のモデルを用いてもよい。三次元空間をある平面や球面、超関数面といった所定の面に射影するモデルであれば足りる。例えば、omnidirectionalカメラモデルやdouble sphereカメラモデル、extended unifiedカメラモデルを用いることができる。さらに、Equirecutangularカメラモデルを用いることができる。なお、カメラモデルが変われば共通パラメータもカメラモデルにあった形式に変わる。
【0065】
また、歪みモデルとしてradial-tangentialモデルを用いて説明した。ただし、これに限るものではなく、歪み前と歪み補正後の画像の画素の対応関係が取得できるモデルであれば何でもよく、equidistantモデルやfovモデルを用いてもよい。また、歪み補正前と補正後の画素対応を求める方法としてZhangの方法について述べたが、対応関係が求まればこれに限らない。例えばequidistantモデルの場合には、文献3(C. Hughes et al., "Equidistant Fish-Eye Calibration and Rectification by Vanishing Point Extraction", TPAMI, 2010)に記載の方法でもよい。
【0066】
さらに、変換部16はリマップテーブルとバイリニア補間により画素値を決めていた。しかしながら、共通パラメータで表される変換画像の各画素値を決められる方法であれば、ニアレストネイバー法や、トリリニア補間など任意の補間処理が利用可能である。また、リマップテーブルが指定する画素が画像範囲外は黒(輝度値0)としていたが、別の特定の値でもよいし、最も近い画像範囲内の輝度値としてもよい。
【0067】
また、共通パラメータをカメラ2の補正済みカメラパラメータとした。これに限らず、共通パラメータは異なるカメラで共通(同一)のパラメータであればよい。例えば、カメラ1の補正済みカメラパラメータとカメラ2の補正済みカメラパラメータの平均値や重み付き平均を共通パラメータにしてもよい。なお、共通パラメータは厳密にいえばカメラ毎に完全に一致したパラメータでなくともとい。例えば、異なるカメラで作成した地図情報を用いた地図照合の精度や安定度合いが、共通パラメータを用いない場合より向上するような変換パラメータであればよい。例えば、小数点の所定桁数以下が異なっていても許容できる。
【0068】
さらに、システムに共通パラメータを入力できる方法であれば共通パラメータ生成部11を取り除いた構成であってもよい。このような場合には、例えばROM12に共通パラメータをあらかじめ格納しておき、パラメータ保持部12が共通パラメータを取得できる構成であればよい。
【0069】
また、変換情報(リマップテーブル)をあらかじめ生成しておき、パラメータ入力部(不図示)を用いて変換情報保持部14に変換情報を入力する構成としてもよい。この場合、共通パラメータ生成部11、パラメータ保持部12、変換情報生成部13を取り除いた構成とすることができる。
【0070】
さらに、地図保持部17に保持された地図情報を更新する構成としてもよい。地図情報更新では、SLAM(Simultaneous Localization And Mapping)技術を用いて、地図情報を更新および追加する。このとき、ステップS16で述べたように、上述の変換画像を用い、位置姿勢算出や三次元復元(地図作成)で用いるカメラパラメータに共通パラメータを用いることで、更新された地図情報も共通パラメータで表される地図情報となる。そのため、作成した地図情報をカメラ1以外の他のカメラで好適に利用できるようになる。
【0071】
また、変換情報としてリマップテーブルを用いる方法について述べたが、カメラで取得した画像を共通パラメータで表される変換画像に変換できる方法であればこれに限らない。例えば、カメラで取得した画像を共通パラメータで表すことができるようにあらかじめ学習したCNN(Convolutional Neural Network)を用いることもできる。例えば、このようなCNNは、文献4(M. Jaderberg et al., "Spatial Transformer Networks", NIPS, 2015)に記載の方法を用いて生成する。
【0072】
さらに、地図照合部18が算出した位置姿勢を、移動体の制御に用いる方法について説明したが、他の位置姿勢を用いる装置に応用できる。例えば、MRやARといった仮想物体を現実画像に合成して提示するための位置姿勢推定装置としても利用できる。また、バーチャル空間を移動するVRにおける現在位置姿勢を、現実空間の位置姿勢を基に入力する装置としても利用できる。ロボットハンドの先端位置を計測する装置として用いれば、カメラを交換した場合に、地図を再作成せずともロボットハンドの先端位置を算出できるようになる。
【0073】
また、地図照合部18は、地図情報を基にカメラの位置姿勢を算出する構成を説明した。地図照合は、位置姿勢算出に限らず、地図と入力画像とをマッチングする構成であればよい。すなわち地図照合として、例えば地図中の画像と入力画像との類似具合を算出してもよいし、地図と入力画像の背景差分による環境変化や物体の配置の変化を検知するように実装してもよい。画像に写る被写体(例えば、人や物)の検出や識別に用いるよう実装してもよい。
【0074】
さらに、地図照合(位置姿勢推定)や地図作成はRaulの方法を用いると述べたが、これに限定されない。地図情報に含まれる三次元の特徴と画像に含まれる二次元の特徴とを対応付けて位置姿勢推定するような方法であればよい。
【0075】
また、カメラの外部パラメータ(すなわち取付け位置)が異なる場合における取り付け位置差異の吸収にも第1実施形態の構成を用いることができる。例えば、変換部は、取り付け位置が異なるカメラの画像を生成するように画像を変換する。具体的には、RGB画像から奥行値を推定し、画像の各画素の三次元点をあらかじめ算出しておいたカメラの取り付け位置オフセットの位置に投影し画像を生成する。このようにすることで、例えば、ある移動体に取り付けたカメラにより取得された画像に基づいて作成した地図を、車高の異なる別の移動体に取り付けたカメラで利用するといった場合に精度向上が図れる。なお、RGB画像から奥行値の推定には、例えば、文献5(I. Laina et al., "Deeper Depth Prediction with Fully Convolutional Residual Networks", 3DV, 2016)に記載の方法により生成(学習)したCNNを用いるとよい。取り付け位置の差異を吸収する画像の生成方法は上述の方法に限定されず、任意視点画像生成技術を用いて生成してよい。入力画像から別視点の画像を生成するように学習したCNNを用いてもよい。例えば、文献6(H. Dhamo et al., "Object-Driven Multi-Layer Scene Decomposition From a Single Image", ICCV, 2019)(以降Dhamoと呼ぶ)の方法を適用する。
【0076】
(第2実施形態)
第2実施形態では、ユーザが指定した設定パラメータ(例えば画角と画像サイズ)となるように共通パラメータを生成する形態について説明する。なお、第2実施形態における装置の構成は、第1実施形態(図2図3)と同様であるため説明は省略する。また、装置の動作についても第1実施形態(図4)と同様であり、ステップS12の詳細動作が異なる。
【0077】
すなわち、共通パラメータを生成したあと、当該共通パラメータを用いて地図情報を作成する。具体的には、Raulの方法において、カメラ2が撮像する画像を入力するのではなく、カメラ2が撮像する画像を共通パラメータで表される変換画像を入力する。また、位置姿勢算出や特徴点の投影、三次元復元や地図最適化で用いるカメラパラメータに共通パラメータを用いる。
【0078】
<ユーザ入力用のグラフィカルユーザインタフェース(GUI)>
上述したように、第2実施形態では、ユーザから設定パラメータの指定を受け付け、当該設定パラメータに適合する共通パラメータを生成する。設定パラメータの指定は、例えば、表示部26に表示されるGUIを介して受け付ける。
【0079】
図5は、共通パラメータを生成するためのGUI200の一例を示す図である。ここでは、入力部25および表示部26はタッチパネルディスプレイとして構成されていることを想定する。そして、GUI200は、共通パラメータで表される変換画像の画角、画像サイズの入力を受け付ける。
【0080】
GUI部品210は、共通パラメータで表される変換画像の垂直方向の画角(FOV)を指定するスライドバーである。スライドバーを左右に指で移動させることで、画角を設定することができる。表示部211は、設定した画角値を提示する表示ウィンドウである。GUI部品220は、共通パラメータで表される変換画像の横サイズを指定するスライドバーである。スライドバーを左右に指で移動させることで、横サイズを設定することができる。表示部221は、設定した横サイズを提示する表示ウィンドウである。GUI部品230は、共通パラメータで表される変換画像の縦サイズを指定するスライドバーである。スライドバーを左右に指で移動させることで、縦サイズを設定することができる。表示部231は、設定した縦サイズを提示する表示ウィンドウである。
【0081】
表示画像240は、カメラ1が撮像することにより得られた変換前の画像である。表示部品241は、ユーザが入力した設定パラメータを用いて画像を変換した場合に切り取られる画像範囲を示す枠である。表示画像250は、ユーザが入力した設定パラメータに基づいて、変換部16が変換した画像である。表示部品241と表示画像250は、ユーザが設定パラメータを入力するごとに更新される。
【0082】
上述のように、ユーザが入力するのは共通パラメータで表される変換画像のサイズ(w,h)と垂直画角(FOV)である。ユーザは共通パラメータを入力する場合には、表示画像240、表示部品241を見ながら以下のような手順でパラメータを設定する。
【0083】
まず、位置姿勢算出に用いる画像サイズをVGAサイズなど適当なものに設定する。次に、入力画像に写る領域を最大限利用する(すなわち入力画像の欠けを減少させる)場合には、FOV値を減少させる。また、入力画像より広い範囲の画像を使用する(画像の欠けを許容し入力画像のより多くの画素を利用する)場合には、FOV値を増大させる。ユーザは、入力されたFOV値に応じて更新された表示部品241と表示画像250を確認し、適切なFOV値を決定する。さらに、変換画像に含まれる縦横各々の領域を調整する場合には、画像サイズ値を調整(例えば、横方向に画角を広げるにはw値を増大させる)する。
【0084】
<共通パラメータの生成>
上述の通り、第2実施形態では、ステップS12における共通パラメータ生成の詳細動作が異なる。ステップS12で共通パラメータを生成しステップS13まで実施した後に、生成した共通パラメータで表される地図をロードする。そして、ステップS14以降の地図照合(すなわちカメラ1の位置姿勢算出)を行う。
【0085】
ステップS12では、共通パラメータ生成部11は、ユーザからの設定パラメータの入力を受け付ける。ユーザがGUI200を用いて所定の数値の入力を完了したら、共通パラメータを生成する。すなわち、入力された設定パラメータから、共通パラメータc (焦点距離fx ,fy 、画像中心cx ,cy )を生成する。具体的には数式(10)~(13)で計算する。
【0086】
【数10】
【0087】
【数11】
【0088】
【数12】
【0089】
【数13】
【0090】
このようにして生成した共通パラメータを用いて、変換部16が入力画像を変換し、地図照合部18がセンサ10の位置姿勢を算出する。
【0091】
<効果>
以上説明したとおり第2実施形態によれば、ユーザは、変換後の画像を見ながら共通パラメータを設定することが出来る。例えば、カメラ1の入力画像に写る領域を最大限利用できる共通パラメータを設定したり、広角範囲を処理できる共通パラメータにしたりすることができ、ユーザの目的に応じた共通パラメータを設定することができるようになる。
【0092】
<変形例>
上述の説明では、ユーザが入力した画像のサイズ(w,h)と垂直画角(FOV)に基づいて共通パラメータを生成したが、ユーザが入力する設定パラメータは上記に限定されない。すなわち、共通パラメータを一意に生成できる設定パラメータであれば何でもよい。例えば、垂直画角の代わりに水平画角を入力する構成としてもよい。さらに、共通パラメータc に含まれるパラメータ(すなわち、焦点距離および画像中心座標)を直接入力する構成としてもよい。さらに、GUI200において、表示画像240や表示部品241の変形を行うユーザ操作を受け付けるなど、インタラクティブな入力方法を利用してもよい。
【0093】
また、カメラモデルを選択できるようにしてもよい。具体的には、カメラモデルを表示し、ユーザがモデルを選択後、そのモデルに適合した設定パラメータの入力を求める構成とする。例えば、omnidirectionalカメラモデルであればMirror typeパラメータεの入力を受け付ける構成とする。
【0094】
さらに、上述の説明では、GUI200の表示画像240および表示画像250においては撮影画像を表示していたが、共通パラメータで変換後の画角がわかる表示であれば足りる。例えば、グリッド線画像を用いて表示範囲を示すように構成してもよい。また、カメラ1の画像のみ表示するのではなく、地図情報を作成・利用するカメラ毎に画像を提示する構成でもよい。さらに、GUI200において表示画像240、表示部品241、表示画像250を配置せず(すなわち画像を提示せず)パラメータのみ入力する構成でもよい。
【0095】
また、入力部25および表示部26としてタッチパネルディスプレイを用いていたが、設定パラメータ(もしくは共通パラメータそのもの)を入力することができれば足りる。例えば、入力部25はマウスやキーボードを用いてもよく、表示部26は液晶ディスプレイや7セグメントLEDといった表示デバイスでもよい。また、画面上に複数のパラメータ候補を提示して選択を受け付ける構成としてもよい。
【0096】
さらに、共通パラメータで表される地図情報を作成(更新)する構成を含めてもよい。その場合、地図照合部18は、例えばSLAMを用いて地図を作成(更新)する。そして、ステップS16において、地図照合部18は、共通パラメータで表される変換画像を用いてRaulの方法で位置姿勢と地図情報を生成する。ステップS17の後に、作成した地図情報を外部メモリ24に保存する。
【0097】
(第3実施形態)
第3実施形態では、複数のカメラパラメータから共通パラメータを自動生成する形態について説明する。なお、以下の説明では、カメラが撮像する画素情報量を最大限利用できるような共通パラメータを生成する場合を想定する。すなわち、画像を共通パラメータで表される変換画像に変換するときに画像領域外となる領域を最小にする。なお、第3実施形態における装置の構成は、第1実施形態(図2図3)と同様であるため説明は省略する。また、装置の動作についても第1実施形態(図4)と同様であり、ステップS12の詳細動作が異なる。
【0098】
<共通パラメータの自動生成>
図6は、共通パラメータ自動生成の概念を示す図である。図6では、変換画像、カメラ1、カメラ2それぞれの画像領域が示されており、図面の左から右に進むにつれて共通パラメータが調整されていることを示している。
【0099】
具体的には、初期状態(最も左)では、変換画像の画像領域(実線)内に、カメラ1の撮影範囲である画像領域(点線)外およびカメラ2の撮影範囲である画像領域(一点鎖線)外が含まれている。一方、最終状態(最も右)では、変換画像の画像領域(実線)内に、カメラ1の画像領域(点線)外およびカメラ2の画像領域(一点鎖線)外が含まれていない。
【0100】
上述の通り、第3実施形態では、ステップS12における共通パラメータ生成の詳細動作が異なる。ステップS12では、共通パラメータ生成部11は、カメラ1とカメラ2それぞれカメラパラメータに基づいて共通パラメータを繰り返し計算で求める。具体的には、カメラ1とカメラ2の撮像領域のうち共通パラメータで表される変換画像の領域外となる領域を最小化する(すなわちカメラ1とカメラ2の共通画像領域を最大化する)ような共通パラメータを求める。以下では図6および図7を参照して共通パラメータの生成動作(S12)の詳細を説明する。
【0101】
図7は、第3実施形態における情報処理装置の動作を説明するフローチャートである。上述したように、図7は共通パラメータの生成動作(S12)の詳細を示している。
【0102】
ステップS310では、共通パラメータ生成部11は、共通パラメータの初期値を設定する。例えば、カメラ2のカメラパラメータからZhangの方法でカメラ2の歪み補正済みパラメータを算出し初期値として設定する。
【0103】
ステップS311では、共通パラメータ生成部11は、変換画像にすべての画像領域(カメラ1とカメラ2の両方)が含まれているかどうか判定する。具体的には、ステップS13で述べた方法でリマップテーブルを作成し、リマップテーブルが指し示す座標がすべて画像内に含まれるか否かを判定する。含まれていればステップS312に、含まれていなければステップS313に進む。
【0104】
ステップS312では、共通パラメータ生成部11は、fx ,fy を所定値Δだけ増加させる。一方、ステップS313では、共通パラメータ生成部11は、fx ,fy を所定値Δだけ減少させる。すなわち、S312およびS313では、共通パラメータで表される焦点距離値を調整する。そして、ステップS314では、共通パラメータ生成部11は、Δを所定値ε(<1.0)積算する。
【0105】
ステップS315では、共通パラメータ生成部11は、積算された所定値Δが所定の閾値γより小さいか否かを判定する。小さい場合は処理を終了する。小さくない場合はS311に戻り処理を繰り返す。
【0106】
<効果>
以上説明したとおり第3実施形態によれば、各々のカメラの画素を最大限利用できる画角となる共通パラメータを生成することができる。それにより、異なるカメラで作成した地図を利用する場合においても、安定して、高い精度で位置姿勢を算出できるようになる。
【0107】
<変形例>
上述の説明では、共通パラメータの焦点距離を調節したが、地図の照合性能が向上する方法であれば、調節するのは共通パラメータの焦点距離に限定されない。例えば、画像中心座標(cx2 ,cy2 )を調節してもよい。また、変換画像の画像サイズを調整してもよい。カメラモデルが異なる場合は、各カメラモデルの各々のパラメータを調整してもよい。
【0108】
また、各々のカメラの画素を最大限利用できる最大画角となるような共通パラメータの焦点距離値を算出していたが、他の方法を用いることも可能である。例えば、リマップ時に入力画像中に参照しない画素が減るように、各カメラの画像のすべての領域が変換画像に含まれるように共通パラメータを算出してもよい。また、変換画像中の1画素が占める画角の平均値や中央値が、各カメラの各画素が占める画角の平均値や中央値と一致するようにしてもよい。さらに、変換画像の画質が高くなるように共通パラメータを算出してもよい。すなわち、いくつかの共通パラメータ候補を用いて変換した変換画像のPSNRやMSE、SSIMなど画質評価値が高くなる共通パラメータを選択するようにしてよい。
【0109】
さらに、複数生成した共通パラメータで地図との照合を実際に行った場合の性能を比較し、性能が高いパラメータを選択するような構成でもよい。地図との照合精度とは、例えば、位置姿勢算出精度であり、特徴点検出数や特徴点のマッチング個数を利用することができる。
【0110】
(第4実施形態)
第4実施形態では、共通パラメータによる変換画像を生成しない形態について説明する。すなわち、第1~第3実施形態では、カメラの入力画像から変換画像を生成していたが、第4実施形態では、変換画像に相当する入力画像上の画素を、地図照合の際の画像参照時に参照する。
【0111】
<装置構成>
第4実施形態における装置の構成は、第1実施形態(図2)から変換部16を取り除いた構成である。また、入力部15から入力画像が地図照合部18に入力され、変換情報保持部14から変換情報が地図照合部18に入力する点が第1実施形態と異なる。
【0112】
<装置の動作>
第4実施形態における装置の動作についても第1実施形態(図4)からステップS15を取り除いたものとなる。また、ステップS14では、入力部15が入力画像を地図照合部18に入力する点が異なり、ステップS16では、地図照合部1が入力画像と地図保持部17が保持する地図とを照合する点で異なる。
【0113】
より具体的には、ステップS16では、地図照合部18は、入力画像から特徴点を検出する。次に、検出した特徴点の二次元座標を変換情報であるリマップテーブルを用いて共通パラメータで表される変換座標に変換する。この時、リマップテーブルは2次元配列の離散的な画素対応を表しているため、検出特徴点座標はバイリニア補間により中間座標を補間する。そして、変換された特徴点座標と地図保持部17が保持する地図とを照合し、センサ10の位置姿勢を算出する。
【0114】
<効果>
以上説明したとおり第4実施形態によれば、画像を変換するのではなく、画像から検出した特徴点の二次元座標を共通パラメータで表される変換画像で検出された二次元座標に変換する。このようにすることで、変換した画像を保持するメモリを削減しつつ、異なるカメラで作成した地図を利用して位置姿勢を算出することができるようになる。
【0115】
<変形例>
上述の説明では、変換情報とはリマップテーブルであった。これに限らず、変換情報は、地図照合に用いる要素を共通パラメータで表される幾何空間に変換できるものであれば良い。例えば、数式(6)の逆変換により入力画像から検出した特徴点座標を直接共通パラメータで表される二次元幾何空間の二次元座標に変換することもできる。このようにすることで、リマップテーブルにおける補間が必要ないためより高精度に二次元座標を変換することができる。
【0116】
また、検出した特徴点だけでなく周囲の局所領域(例えば周囲15ピクセル:以降では局所パッチと呼ぶ)を含めて、変換情報を用いて変換してもよい。そして、変換した局所パッチを用いて算出した特徴量を用いて地図との特徴点マッチングを行ってもよい。このようにすることで、特徴量を算出するためのパッチがカメラ間で共通する(すなわち共通パラメータで表される)ため、より高い精度で特徴点マッチングを行うことができるようになる。
【0117】
(第5実施形態)
第5実施形態では、共通パラメータを用いずに作成された地図情報を、当該地図情報の作成に利用したカメラと異なるカメラで用いることを可能とする形態について述べる。具体的には、第1~第4実施形態で述べた共通パラメータを用いて作成された地図情報同様に利用可能とすべく地図情報を変換する。
【0118】
<装置構成>
図8は、第5実施形態に係る情報処理装置500の機能構成を示す図である。情報処理装置500は、地図変換部51、共通パラメータ生成部11、パラメータ保持部12、変換情報生成部13、変換情報保持部14、地図保持部17を含む。情報処理装置100と同一の参照符号を付した構成についてはほぼ同様の機能を有する。ただし、変換情報保持部14が変換情報を地図変換部51に出力すること、地図変換部51が変換情報を用いて地図情報変換を行う点が異なる。
【0119】
<装置の動作>
図9は、第5実施形態における情報処理装置500の動作を説明するフローチャートである。ステップS11及びステップS12は第1実施形態と同様のため説明を省略する。ステップS13では、変換情報生成部13は、変換情報(リマップテーブル)を生成する。ここでは、地図を作成したカメラ2の歪み補正済みパラメータで表される画像座標から共通パラメータで表される変換画像座標に変換するリマップテーブルを生成する。
【0120】
ステップS21では、地図変換部51は、変換情報を用いて地図情報を共通パラメータで表される形式に変換し変換地図情報を生成する。より詳細には、リマップテーブルを参照して、地図情報(カメラ2の歪み補正済みパラメータで表される地図情報)における特徴点の二次元座標を、共通パラメータで表される変換画像上で検出される二次元座標に変換する。このとき、二次元座標の算出には第4実施形態で述べた補間を用いることができる。
【0121】
ステップS22では、地図変換部51は、変換により得られた変換地図情報を地図保持部17に保存する。
【0122】
<効果>
以上説明したとおり第5実施形態によれば、共通パラメータを用いずに作成した地図情報に含まれる特徴点の二次元座標を、共通パラメータで表される変換画像座標に変換する。このようにすることで、共通パラメータを用いずに作成された地図情報を、他のカメラでも用いることができるようになる。すなわち、第1~第4実施形態と同様に、カメラ毎に地図を再作成する手間や、共通パラメータ変更時の地図再作成の手間を減らすことができる
<変形例>
上述の説明では、地図情報に含まれる特徴点の二次元座標を、共通パラメータで表される変換画像上で検出される二次元座標に変換した。ただし、地図情報に、画像や特徴点周りのパッチといったカメラパラメータに紐づく情報が保持されている場合、画像や特徴点周りのパッチも合わせて変換してもよい。このようにすることで、マップと入力画像との特徴点マッチングや、位置姿勢計測精度が向上する。
【0123】
また、1つの地図情報を共通パラメータで表されるように変換するだけでなく、複数の地図情報を共通パラメータで表されるように変換し合成する構成としてもよい。複数の地図情報は、それぞれ異なるカメラパラメータに基づき生成されたものであってもよい。地図の合成とは、二つの地図同士を位置合わせし、ひとつの地図情報にまとめ上げることである。地図の合成では、各々の地図に含まれる特徴点同士をマッチングし、マッチングした特徴点が同一座標となるように残りの地図要素の座標を変換する。このような構成とすることで、広大な領域(三次元空間)を複数のカメラで分担して並列に撮影・作成し合成することができ、地図作成時間を短縮することができるようになる。また、これに加えて複数の視点から同様に観測されている冗長な特徴点をRaulの方法により除去することで、地図の容量を削減することも可能である。
【0124】
さらに、単一の装置に実装する構成について説明したが、サーバクライアントシステムとして構成してもよい。例えば、地図合成をサーバに実装し、地図作成を複数の移動ロボットのような複数のクライアントに実装する。個々のクライアントは個別のローカルな地図を作成・更新し、サーバに送信する。サーバは、受信した個々の地図を、上述した方法で合成し、グローバルな地図を更新する。また、サーバは、グローバルな地図の一部分をクライアントに送信し、クライアントは受信したローカルな地図を用いて位置姿勢や地図更新を行う。
【0125】
また、共通パラメータで表される地図情報に変換し保存する代わりに、変換した地図情報をそのまま地図照合に用いる構成としてもよい。つまり、地図照合部18が地図を利用するときに、利用時に参照する地図情報の要素のみ変換し、利用することもできる。すなわち、地図情報の変換は、地図情報すべてを変換してもよいし、照合に利用する情報のみ選択的に変換してもよい。また、地図保持部17は、共通パラメータを用いずに作成した複数の地図情報を保持する構成としてもよい。このときには、それぞれの地図を地図照合部18が利用するときに、必要に応じて共通パラメータとなるように地図を変換しつつ利用する。
【0126】
(第1~第5実施形態における効果のまとめ)
第1実施形態によれば、カメラ1の画像を共通パラメータで表される変換画像にあらかじめ変換してから地図との照合を行う。このとき、地図を作成したカメラ2の歪み補正済みパラメータを共通パラメータとして用いる。このようにすることで、地図を作成したカメラと位置姿勢算出で用いるカメラが異なる場合であっても、画像と地図との照合や位置姿勢算出を、高精度で安定して行うことが可能となる。また、カメラ毎に地図を作成するという手間もなくなる。さらに、共通パラメータで表せられる画像への変換は、従来の歪み補正における画像補正処理(リマップ)におけるリマップテーブルを変えるだけで実現可能である。そのため、地図照合における処理時間の増加させることなく実現することができる。
【0127】
第2実施形態によれば、ユーザは、変換後の画像を見ながら共通パラメータを設定することが出来る。例えば、カメラ1の入力画像に写る領域を最大限利用できる共通パラメータを設定したり、広角範囲を処理できる共通パラメータにしたりすることができ、ユーザの目的に応じた共通パラメータを設定することができるようになる。
【0128】
第3実施形態によれば、各々のカメラの画素を最大限利用できる画角となる共通パラメータを生成することができる。それにより、異なるカメラで作成した地図を利用する場合においても、安定して、高い精度で位置姿勢を算出できるようになる。
【0129】
第4実施形態によれば、画像を変換するのではなく、画像から検出した特徴点の二次元座標を共通パラメータで表される変換画像で検出された二次元座標に変換する。このようにすることで、変換した画像を保持するメモリを削減しつつ、異なるカメラで作成した地図を利用して位置姿勢を算出することができるようになる。
【0130】
第5実施形態によれば、共通パラメータを用いずに作成した地図情報に含まれる特徴点の二次元座標を、共通パラメータで表される変換画像座標に変換する。このようにすることで、共通パラメータを用いずに作成された地図情報を、他のカメラでも用いることができるようになる。すなわち、第1~第4実施形態と同様に、カメラ毎に地図を再作成する手間や、共通パラメータ変更時の地図再作成の手間を減らすことができる。
【0131】
(第1~第5実施形態における各構成要素のまとめ)
共通パラメータ生成部は、三次元空間を二次元配列に投影した時に、同じ対応関係となるようになるような共通パラメータを生成する。センサにカメラを用い、カメラモデルにピンホールカメラモデルを用いる場合には、共通パラメータc は、焦点距離(fx ,fy )および、画像中心座標(cx ,cy )で表される。
【0132】
共通パラメータは、異なるカメラを用いたときにも三次元/二次元の対応関係が同じ対応関係になればよい。そのため、地図を作成したカメラの歪み補正済みパラメータを用いてもよいし、ユーザが入力した値から生成してもよい。さらに、複数のカメラパラメータから地図照合精度が向上するようなパラメータを生成してもよい。
【0133】
パラメータ保持部は、共通パラメータ生成部が生成したパラメータを保持する。必要に応じて、パラメータを変換情報生成部や地図照合部に出力する。
【0134】
変換情報生成部は、共通パラメータを用いて、入力画像を共通パラメータで表される変換画像に変換する変換情報を生成する。変換情報は入力画像と共通パラメータで表される変換画像の対応関係がわかればよく、変換式(例えば数式(6))や、リマップテーブルなど種別は問わない。
【0135】
変換情報保持部は、変換情報生成部が生成した変換情報を保持する。また、必要に応じて変換情報を変換部に出力する。
【0136】
入力部は、センサで取得したセンサ情報を入力し、変換部に出力する。センサとは、三次元空間を撮像して二次元配列に格納するものであればよい。モノクロカメラやカラーカメラ、ステレオカメラ、奥行カメラなど任意のカメラが利用可能である。また、三次元空間を射影して二次元配列に格納する構成の三次元LiDARでもよい。センサは単眼でもよいしステレオやさらに複数のセンサを備えるように構成してもよい。
【0137】
変換部は、入力部が入力するセンサ情報を、共通パラメータで表されるよう変換するものであればよい。センサ情報で画像を用いる場合には、リマップテーブルを参照して画像を変換してよい。また、画像から検出した特徴点の二次元座標を共通パラメータで表される変換画像の二次元座標に変換してもよい。
【0138】
地図保持部は、入力部が入力するセンサ情報と異なるセンサで作成した地図情報を保持する。地図情報とは、三次元位置情報を持つ特徴と二次元位置情報として表される特徴を含む。センサ情報として画像を用いる場合は、地図情報は、画像から検出した画像特徴情報、画像特徴が検出された画像を撮影したカメラの位置姿勢情報、および画像特徴の三次元位置情報を保持する。しかし、地図情報のデータ構造はこれに限らず、三次元空間の位置を表す座標を持つ特徴と、それを二次元空間に射影した二次元空間の位置を表す特徴を保持する構成であればよい。三次元空間の位置を表す特徴としては、特徴点のようなある一点の三次元座表を保持するだけでなく、法線も持つNP(Normal Point Data)でもよい。また、空間中の物体との境界位置を表すSDF(Signed Distance Function)やTSDF(Truncated Signed Distance Function)でもよい。さらに三次元の線分でもよい。また、二次元空間の位置を表す特徴は、本実施形態で延べた特徴点に限らず、エッジでもよし、明暗の分布情報でもよい。
【0139】
地図照合部は、変換部が変換したセンサ情報と地図情報とを照合する。照合処理は、位置姿勢算出でもよいし、地図との特徴点マッチングでもよい。位置姿勢算出では、SLAM技術を用いてもよい。また、地図との照合に限らず、地図情報を共通のパラメータで表されるように変換する地図変換部として構成してもよい。さらに、複数の地図を共通のパラメータで表されるようにし合成する地図合成部として構成してもよい。
【0140】
(その他の実施例)
第1~第5実施形態においては、地図情報を作成するカメラ2と、その地図情報を利用して位置姿勢を算出するカメラ1の2つのカメラ間で地図情報を共通して利用する方法について述べた。しかし、地図情報を利用するカメラは2つに限定されるものではなく、さらに多くのカメラで地図情報を利用してよい。また、共通パラメータも、それら複数のカメラに対して適当なパラメータを生成できる。
【0141】
例えば、第1実施形態で、複数のカメラのうちどれか1つの歪み補正済みパラメータを選択して共通パラメータとして用いればよい。第2実施形態で説明したGUI200の表示部品241で、複数のカメラの画像の共通領域を提示してもよい。また、表示画像250でそれぞれのカメラの変換画像を提示してもよい。その場合、ユーザは、複数のカメラの画像を基に共通パラメータを決める。また、第3実施形態において、図4のステップS311で、3番目以降のカメラでも変換画像が画像領域に含まれるかを順次判定し、共通パラメータを生成する。
【0142】
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【0143】
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
【符号の説明】
【0144】
1 情報処理装置; 11 共通パラメータ生成部; 12 パラメータ保持部; 13 変換情報生成部; 14 変換情報保持部; 15 入力部; 16 変換部; 17 地図保持部; 18 地図照合部
図1
図2
図3
図4
図5
図6
図7
図8
図9