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

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

▶ KDDI株式会社の特許一覧

<>
  • 特許-点群処理システム、方法及びプログラム 図1
  • 特許-点群処理システム、方法及びプログラム 図2
  • 特許-点群処理システム、方法及びプログラム 図3
  • 特許-点群処理システム、方法及びプログラム 図4
  • 特許-点群処理システム、方法及びプログラム 図5
  • 特許-点群処理システム、方法及びプログラム 図6
  • 特許-点群処理システム、方法及びプログラム 図7
  • 特許-点群処理システム、方法及びプログラム 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-06-05
(45)【発行日】2023-06-13
(54)【発明の名称】点群処理システム、方法及びプログラム
(51)【国際特許分類】
   G06T 7/70 20170101AFI20230606BHJP
   G01B 11/00 20060101ALI20230606BHJP
【FI】
G06T7/70 Z
G01B11/00 H
【請求項の数】 11
(21)【出願番号】P 2020074106
(22)【出願日】2020-04-17
(65)【公開番号】P2021170299
(43)【公開日】2021-10-28
【審査請求日】2022-06-07
(73)【特許権者】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】100092772
【弁理士】
【氏名又は名称】阪本 清孝
(74)【代理人】
【識別番号】100119688
【弁理士】
【氏名又は名称】田邉 壽二
(72)【発明者】
【氏名】小森田 賢史
(72)【発明者】
【氏名】田坂 和之
【審査官】佐田 宏史
(56)【参考文献】
【文献】国際公開第2019/242418(WO,A1)
【文献】加藤 裕也、外2名,“画像変換による全天球カメラ映像のLSD-SLAMへの適用と点群合成”,映像情報メディア学会技術報告,日本,(一社)映像情報メディア学会,2019年06月06日,Vol.43, No.16,pp.77-78
【文献】Gerardo Carrera et al.,"SLAM-Based Automatic Extrinsic Calibration of a Multi-Camera Rig",2011 IEEE International Conference on Robotics and Automation,米国,IEEE,2011年05月09日,pp.2652-2659
【文献】竹内 音、外4名,“全方位バレットタイム映像の生成提示システム”,情報処理学会研究報告,日本,情報処理学会,2018年01月11日,Vol.2018-CVIM-210, No.40,pp.1-8
【文献】堀 磨伊也、外2名,“複数の任意経路で撮影された全方位画像群からのステレオ画像生成”,FIT2007 第6回情報科学技術フォーラム 一般講演論文集 第3分冊,日本,社団法人情報処理学会、社団法人電子情報通信学会 ,2007年08月22日,pp.171-174
【文献】Michael Kaess et al.,"Visual SLAM with a Multi-Camera Rig",GVU Center Technical Reports,米国,Georgia Institute of Technology,2006年03月20日,pp.1-10,https://smartech.gatech.edu/handle/1853/8726?show=full
(58)【調査した分野】(Int.Cl.,DB名)
G06T 1/00,7/00-7/90
G06V 10/00-10/98
G01B 11/00-11/30
(57)【特許請求の範囲】
【請求項1】
環境中を移動して位置及び回転を変化させながら撮影された各フレーム画像を、複数の視野範囲に分割した分割画像を得る分割部と、
各フレーム画像より特徴点を抽出して、異なるフレーム画像間において特徴点のマッチングを行い、
位置及び回転が未推定のフレーム画像が前記分割された分割画像の各々について、位置及び回転が推定済のフレーム画像との間での前記マッチングされた結果を用いて、当該分割画像の各々が位置を共有するという条件を課して、当該分割画像の各々の位置及び回転を推定する推定部と、を備え
前記複数の視野範囲は、基準画像及び当該基準画像から所定回転して設定される1つ以上の関連画像に対応するものとして設定されており、
前記分割部では基準画像及び関連画像として分割画像を得ており、
前記推定部では、基準画像及び関連画像が共有する位置と、基準画像を基準とした関連画像の回転と、を前記マッチングされた結果を用いて最適化したものとして、基準画像及び関連画像の位置及び回転を推定し、
前記推定部では、少なくとも、基準画像及び関連画像の特徴点のうち前記マッチングがなされたものの3次元世界座標と基準画像及び関連画像の位置及び回転とを、バンドル調整によって最適化することにより、基準画像及び関連画像の位置及び回転を推定し、
前記推定部では、前記バンドル調整によって前記最適化する際に、
基準画像の位置の初期値として、前記位置及び回転が推定済のフレーム画像との間での前記マッチングされた結果により推定される基準画像及び関連画像の位置の平均(P avg )を採用し、
基準画像の回転の初期値として、前記位置及び回転が推定済のフレーム画像との間での前記マッチングされた結果により推定される基準画像の回転(Q 0 )と、当該推定される関連画像の回転(Q j )を基準画像における回転に変換したもの((invR j )・Q j )と、の平均(Q avg )を採用することを特徴とする点群処理システム。
【請求項2】
環境中を移動して位置及び回転を変化させながら撮影された各フレーム画像を、複数の視野範囲に分割した分割画像を得る分割部と、
各フレーム画像より特徴点を抽出して、異なるフレーム画像間において特徴点のマッチングを行い、
位置及び回転が未推定のフレーム画像が前記分割された分割画像の各々について、位置及び回転が推定済のフレーム画像との間での前記マッチングされた結果を用いて、当該分割画像の各々が位置を共有するという条件を課して、当該分割画像の各々の位置及び回転を推定する推定部と、を備え
前記複数の視野範囲は、基準画像及び当該基準画像から所定回転して設定される1つ以上の関連画像に対応するものとして設定されており、
前記分割部では基準画像及び関連画像として分割画像を得ており、
前記推定部では、基準画像及び関連画像が共有する位置と、基準画像を基準とした関連画像の回転と、を前記マッチングされた結果を用いて最適化したものとして、基準画像及び関連画像の位置及び回転を推定し、
前記推定部では、少なくとも、基準画像及び関連画像の特徴点のうち前記マッチングがなされたものの3次元世界座標と基準画像及び関連画像の位置及び回転とを、バンドル調整によって最適化することにより、基準画像及び関連画像の位置及び回転を推定し、
前記推定部では、前記バンドル調整によって前記最適化する際に、
基準画像及び関連画像における共通位置(P avg )と、基準画像の回転(Q avg )と、前記基準画像の回転(Q avg )に対する相対的回転(R j )であって関連画像の回転(Q j =R j ・Q avg )を指定する相対的回転(R j )と、を変数とすることを特徴とする点群処理システム。
【請求項3】
環境中を移動して位置及び回転を変化させながら撮影された各フレーム画像を、複数の視野範囲に分割した分割画像を得る分割部と、
各フレーム画像より特徴点を抽出して、異なるフレーム画像間において特徴点のマッチングを行い、
位置及び回転が未推定のフレーム画像が前記分割された分割画像の各々について、位置及び回転が推定済のフレーム画像との間での前記マッチングされた結果を用いて、当該分割画像の各々が位置を共有するという条件を課して、当該分割画像の各々の位置及び回転を推定する推定部と、を備え
前記推定部では、位置及び回転が未推定のフレーム画像が前記分割された分割画像の各々について、位置及び回転が推定済のフレーム画像との間での前記マッチングされた結果を用いて、位置を初期値として推定し、分割画像のうち、当該初期値として推定された位置が外れ値に該当すると判定されるものを、位置及び回転の推定対象から除外することを特徴とする点群処理システム。
【請求項4】
環境中を移動して位置及び回転を変化させながら撮影された各フレーム画像を、複数の視野範囲に分割した分割画像を得る分割部と、
各フレーム画像より特徴点を抽出して、異なるフレーム画像間において特徴点のマッチングを行い、
位置及び回転が未推定のフレーム画像が前記分割された分割画像の各々について、位置及び回転が推定済のフレーム画像との間での前記マッチングされた結果を用いて、当該分割画像の各々が位置を共有するという条件を課して、当該分割画像の各々の位置及び回転を推定する推定部と、を備え
前記推定部では、位置及び回転が未推定のフレーム画像が前記分割された分割画像の各々について、位置及び回転が推定済のフレーム画像との間での前記マッチングされた結果を用いて、分割画像のうち、当該マッチングした特徴点の個数が少ないと判定されるものを、位置及び回転の推定対象から除外することを特徴とする点群処理システム。
【請求項5】
各フレーム画像は、広角画像として構成されていることを特徴とする請求項1ないし4のいずれかに記載の点群処理システム。
【請求項6】
各フレーム画像は、魚眼画像として構成されており、
前記分割部は、当該魚眼画像として構成されるフレーム画像にカメラ視点からの中心射影方式を適用することにより、複数の視野範囲に分割した分割画像を透視投影モデルの画像として生成することを特徴とする請求項1ないし5のいずれかに記載の点群処理システム。
【請求項7】
環境中を移動して位置及び回転を変化させながら撮影された各フレーム画像を、複数の視野範囲に分割した分割画像を得る分割段階と、
各フレーム画像より特徴点を抽出して、異なるフレーム画像間において特徴点のマッチングを行い、
位置及び回転が未推定のフレーム画像が前記分割された分割画像の各々について、位置及び回転が推定済のフレーム画像との間での前記マッチングされた結果を用いて、当該分割画像の各々が位置を共有するという条件を課して、当該分割画像の各々の位置及び回転を推定する推定段階と、を備え
前記複数の視野範囲は、基準画像及び当該基準画像から所定回転して設定される1つ以上の関連画像に対応するものとして設定されており、
前記分割段階では基準画像及び関連画像として分割画像を得ており、
前記推定段階では、基準画像及び関連画像が共有する位置と、基準画像を基準とした関連画像の回転と、を前記マッチングされた結果を用いて最適化したものとして、基準画像及び関連画像の位置及び回転を推定し、
前記推定段階では、少なくとも、基準画像及び関連画像の特徴点のうち前記マッチングがなされたものの3次元世界座標と基準画像及び関連画像の位置及び回転とを、バンドル調整によって最適化することにより、基準画像及び関連画像の位置及び回転を推定し、
前記推定段階では、前記バンドル調整によって前記最適化する際に、
基準画像の位置の初期値として、前記位置及び回転が推定済のフレーム画像との間での前記マッチングされた結果により推定される基準画像及び関連画像の位置の平均(P avg )を採用し、
基準画像の回転の初期値として、前記位置及び回転が推定済のフレーム画像との間での前記マッチングされた結果により推定される基準画像の回転(Q 0 )と、当該推定される関連画像の回転(Q j )を基準画像における回転に変換したもの((invR j )・Q j )と、の平均(Q avg )を採用することを特徴とするコンピュータによって実行される点群処理方法。
【請求項8】
環境中を移動して位置及び回転を変化させながら撮影された各フレーム画像を、複数の視野範囲に分割した分割画像を得る分割段階と、
各フレーム画像より特徴点を抽出して、異なるフレーム画像間において特徴点のマッチングを行い、
位置及び回転が未推定のフレーム画像が前記分割された分割画像の各々について、位置及び回転が推定済のフレーム画像との間での前記マッチングされた結果を用いて、当該分割画像の各々が位置を共有するという条件を課して、当該分割画像の各々の位置及び回転を推定する推定段階と、を備え
前記複数の視野範囲は、基準画像及び当該基準画像から所定回転して設定される1つ以上の関連画像に対応するものとして設定されており、
前記分割段階では基準画像及び関連画像として分割画像を得ており、
前記推定段階では、基準画像及び関連画像が共有する位置と、基準画像を基準とした関連画像の回転と、を前記マッチングされた結果を用いて最適化したものとして、基準画像及び関連画像の位置及び回転を推定し、
前記推定段階では、少なくとも、基準画像及び関連画像の特徴点のうち前記マッチングがなされたものの3次元世界座標と基準画像及び関連画像の位置及び回転とを、バンドル調整によって最適化することにより、基準画像及び関連画像の位置及び回転を推定し、
前記推定段階では、前記バンドル調整によって前記最適化する際に、
基準画像及び関連画像における共通位置(P avg )と、基準画像の回転(Q avg )と、前記基準画像の回転(Q avg )に対する相対的回転(R j )であって関連画像の回転(Q j =R j ・Q avg )を指定する相対的回転(R j )と、を変数とすることを特徴とするコンピュータによって実行される点群処理方法。
【請求項9】
環境中を移動して位置及び回転を変化させながら撮影された各フレーム画像を、複数の視野範囲に分割した分割画像を得る分割段階と、
各フレーム画像より特徴点を抽出して、異なるフレーム画像間において特徴点のマッチングを行い、
位置及び回転が未推定のフレーム画像が前記分割された分割画像の各々について、位置及び回転が推定済のフレーム画像との間での前記マッチングされた結果を用いて、当該分割画像の各々が位置を共有するという条件を課して、当該分割画像の各々の位置及び回転を推定する推定段階と、を備え
前記推定段階では、位置及び回転が未推定のフレーム画像が前記分割された分割画像の各々について、位置及び回転が推定済のフレーム画像との間での前記マッチングされた結果を用いて、位置を初期値として推定し、分割画像のうち、当該初期値として推定された位置が外れ値に該当すると判定されるものを、位置及び回転の推定対象から除外することを特徴とするコンピュータによって実行される点群処理方法。
【請求項10】
環境中を移動して位置及び回転を変化させながら撮影された各フレーム画像を、複数の視野範囲に分割した分割画像を得る分割段階と、
各フレーム画像より特徴点を抽出して、異なるフレーム画像間において特徴点のマッチングを行い、
位置及び回転が未推定のフレーム画像が前記分割された分割画像の各々について、位置及び回転が推定済のフレーム画像との間での前記マッチングされた結果を用いて、当該分割画像の各々が位置を共有するという条件を課して、当該分割画像の各々の位置及び回転を推定する推定段階と、を備え
前記推定段階では、位置及び回転が未推定のフレーム画像が前記分割された分割画像の各々について、位置及び回転が推定済のフレーム画像との間での前記マッチングされた結果を用いて、分割画像のうち、当該マッチングした特徴点の個数が少ないと判定されるものを、位置及び回転の推定対象から除外することを特徴とするコンピュータによって実行される点群処理方法。
【請求項11】
コンピュータを請求項1ないしのいずれかに記載の点群処理システムとして機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、効果的にスケールドリフトに対処することのできる点群処理装置、方法及びプログラムに関する。
【背景技術】
【0002】
SLAM(Simultaneous Localization and Mapping, 自己位置推定とマップ作成の同時実行)やSfM(Structure from Motion)を用いて3次元点群構築等を行うことができ、関連技術として種々の従来手法が存在する。
【0003】
非特許文献1では、全天周画像を用いたSLAMが開示され、広い画角の画像を使うほどSLAMの結果が安定するとされる。非特許文献2では、複数のカメラの情報を連携させて点群地図を生成している。非特許文献3では、全天周画像においてランドマーク部分を複数に分割して中心射影に変換し、比較している。
【0004】
特許文献1(「カメラ姿勢推定装置・プログラム」)では、画像の位置推定に信頼度を設け、誤差が最小になるようにカメラのポーズを推定する。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2011-118724号公報
【非特許文献】
【0006】
【文献】" OpenVSLAM: A Versatile Visual SLAM Framework"、ACM Multimedia 2019 Open Source Software Competition, https://arxiv.org/abs/1910.01122,
【文献】"Collaborative monocular SLAM with multiple Micro Aerial Vehicles" 、 2013 IEEE/RSJ International Conference on Intelligent Robots and Systems
【文献】"City-scale landmark identification on mobile devices"、 CVPR 2011
【発明の概要】
【発明が解決しようとする課題】
【0007】
SLAMやSfMによる点群構築においては、スケールドリフトが発生して精度が低下することが課題であるが、以上のような従来技術においてはこのスケールドリフトに効果的に対処することができなかった。スケールドリフトとは、SLAMやSfMを行う際に徐々にスケールが小さくなったり、大きくなってしまう現象であり、計算上の誤差が累積して起こりやすく、不可避な現象である。スケールドリフトは画像の視野が狭く、特徴点が不十分な場合に、計算に用いられる領域が偏ることによって起こりやすい。
【0008】
非特許文献1では、広い画角の画像を使うことでSLAMの結果を安定させるが、満遍なく特徴量が分布していることが前提であり、この前提が成立せず、偏りが大きい場合にはスケールドリフトを起こしてしまう。また広い画角を直接使うと、画像特徴量のゆがみが大きく、他の画像とのマッチング性能が低下してしまう。加え、広い画角の場合、通常の写真と類似するのは一部だけになるため、類似画像の検索性能も低下する。
【0009】
非特許文献2のように、複数のカメラの情報を連携させて点群地図を生成する方法もあるが、カメラを増設して画像量を増やすことにより、処理量が増えてしまう。ここで、複数のカメラを固定して測定しても、それぞれの位置がバラバラに出てしまい、地図の生成が安定しない。またカメラの位置は、完全に固定することは不可能であり、経時でずれるためキャリブレーションが難しい。
【0010】
非特許文献3では全天周画像から比較用に特定の場所を切り出しているが、あくまでクエリ画像の場所を絞り込むために使用されており、点群構築における位置計算を対象としたものではないため、非特許文献3でもスケールドリフトには対処できない。
【0011】
特許文献1の手法においても、1枚の画像で特徴量の分布が偏る場合にはスケールドリフトが発生し、位置の推定精度が下がってしまう。
【0012】
上記従来技術の課題に鑑み、本発明は、効果的にスケールドリフトに対処することのできる点群処理装置、方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0013】
上記目的を達成するため、本発明は点群処理システムであって、環境中を移動して位置及び回転を変化させながら撮影された各フレーム画像を、複数の視野範囲に分割した分割画像を得る分割部と、各フレーム画像より特徴点を抽出して、異なるフレーム画像間において特徴点のマッチングを行い、位置及び回転が未推定のフレーム画像が前記分割された分割画像の各々について、位置及び回転が推定済のフレーム画像との間での前記マッチングされた結果を用いて、当該分割画像の各々が位置を共有するという条件を課して、当該分割画像の各々の位置及び回転を推定する推定部と、を備えることを特徴とする。また、当該点群処理システムに対応する方法及びプログラムであることを特徴とする。
【発明の効果】
【0014】
本発明によれば、画像を複数の視野範囲に分割した分割画像を用いて、各分割画像が位置を共有する条件のもとで分割画像の各々の位置及び回転を推定することにより、単一の画像全体で位置及び回転を推定する場合と比べて効果的にスケールドリフトの影響を抑制することが可能となる。
【図面の簡単な説明】
【0015】
図1】一実施形態に係る点群処理システムの構成図である。
図2】一実施形態に係る点群処理システムの機能ブロック図である。
図3】一実施形態に係る点群処理システムの動作のフローチャートである。
図4】フレーム画像が全天球画像として構成される場合に、分割部で適用する視野範囲の分割の例を示す図である。
図5】フレーム画像が全天周画像として構成される場合に、分割部で適用する視野範囲の分割の例を示す図である。
図6】分割部が分割した視野範囲において、透視投影モデル(ピンホールカメラ)により歪みのない通常の画像として基準画像I0及び関連画像Iiを生成することと、対応する回転初期値Riを取得する処理を説明するための図である。
図7】本実施形態の効果を対比例と共に模式的に示す図である。
図8】一般的なコンピュータ装置におけるハードウェア構成の例を示す図である。
【発明を実施するための形態】
【0016】
図1は、一実施形態に係る点群処理システムの構成図であり、点群処理システム10はインターネット等のネットワークNWを介して相互に通信可能とされる端末1及びサーバ2を備える。端末1は、スマートフォン等のモバイルデバイス又は車載装置等として構成することができる移動体であり、点群処理システム10において処理する対象となる点群を、映像として撮影する等によって端末1の周辺環境から取得するものである。一実施形態では点群処理システム10には端末1のみが含まれサーバ2が含まれない構成により、端末1が単独で点群に関する処理を行うようにしてもよい。一実施形態では点群処理システム10は端末1及びサーバ2を含み、端末1及びサーバ2で処理を分担しながら点群に関する処理を担うようにしてもよい。
【0017】
図2は、一実施形態に係る点群処理システム10の機能ブロック図である。点群処理システム10は、映像取得部11、分割部12及び推定部13を備え、推定部13はさらにマッチング部31、位置回転推定部32、外れ値除外部33及び最適推定部34を備える。点群処理システム10は、端末1の周辺環境の点群を処理するものであり、当該周辺環境を撮影した映像を取得するのが映像取得部11であるため、端末1には少なくとも映像取得部11がカメラ(位置姿勢の推定対象となるカメラ)として設置されることで備わっていればよい。分割部12及び推定部13の全部又は一部は、端末1又はサーバ2のいずれかに備わっていればよい。
【0018】
図3は、一実施形態に係る点群処理システム10の動作のフローチャートである。図のフローチャートの動作は、リアルタイムの各時刻t(t=1,2,3,…)において端末1の周辺環境を撮影したフレーム画像F(t)を取得し、この画像F(t)を1つ以上の過去時刻の画像F(t-k)(k≧1)と照合する(位置姿勢が推定済の過去時刻の画像と未推定の現時刻の画像から抽出される点群同士を照合する)ことにより、現時刻tにおける端末1の位置姿勢(後述する位置Pi=Pi(t)及び回転Qi=Qi(t))を推定結果として出力するものである。
【0019】
以下、図3の各ステップを説明しながら、図2の各機能ブロックの処理内容に関して説明する。
【0020】
ステップS1では、端末1に設置されたカメラとして構成される映像取得部11が撮影を行うことにより、端末1が存在する環境(端末1の周辺にあるフィールド等)を現時刻tにおいて撮影したフレーム画像F(t)を取得して分割部12へと出力してから、ステップS2へと進む。
【0021】
映像取得部11のカメラは魚眼レンズ等を備えることにより、広角の撮影を行うことが可能なものとして構成されることが好ましい。当該撮影されるフレーム画像F(t)は例えば、全天球画像(全球のエリアを撮影した画像)又は全天周画像(半球のエリアを撮影した画像)であってよい。
【0022】
ステップS2では分割部12が、ステップS1で得たフレーム画像F(t)を複数の視野範囲に分割することにより、1つの基準画像I0及び1つ以上の関連画像Ii(1≦i≦N-1, N≧2)を得て、且つ、各関連画像Iiに対応する回転初期値Ri(1≦i≦N-1)を求め、これら得られた基準画像I0並びに関連画像Ii及び対応する回転初期値Riを推定部13へと出力してから、ステップS3へと進む。
【0023】
フレーム画像F(t)は、透視射影、円周魚眼、正距円筒図法などの射影画像で、広範囲をカバーするために、1枚以上の画像(魚眼画像等)によって表現したものとして構成されている。分割部12では、魚眼画像等として構成されるフレーム画像F(t)における視野範囲を所定の複数の視野範囲(部分的に重複があってもよい)に分割し、所定の射影方式を適用することにより、透視投影モデル(ピンホールカメラ)により当該視野範囲を通常の画像(魚眼画像等のように歪んでいない通常の画像)として表現したものとして、基準画像I0及び関連画像Iiを生成する。
【0024】
図4及び図5はそれぞれ、フレーム画像が全天球画像及び全天周画像として構成される場合に、分割部12で適用する視野範囲の分割の例を示す図である。図4及び図5において共に、紙面奥行方向が3次元空間における垂直下方向、紙面手前方向が垂直上方向を想定している。図4は、前方側の魚眼レンズFLが捉える水平前方範囲180°を、相互に重複を許容した3つの視野範囲f1,f2,f3に分割し、後方側の魚眼レンズBLが捉える水平後方範囲180°を、相互に重複を許容した3つの視野範囲f4,f5,f6に分割することにより、全天球を表す2枚(前方側及び後方側の2枚)の円周魚眼画像を、重複を許容した6つの視野範囲f1~f6に分割する例を示している。図5は、水平上方側の半球エリア(例えば地面上方の半球エリア)を撮影するように構成された全天周を表す円周魚眼画像において、水平方向の360°の視野範囲を、重複を許容してf11,f12,f13,f14,f15,f16の6つの視野範囲に分割する例を示している。なお、図4では2つの魚眼レンズFL,BLは水平前方及び後方に面しているのに対し、図5では1つの魚眼レンズが垂直上方に面している。
【0025】
なお、ステップS2において分割部12がフレーム画像F(t)を複数の視野範囲に分割する仕方は、時刻tによらない所定の分割方式を予め設定しておけばよい。
【0026】
図6は、分割部12が分割した視野範囲において、適切な画角(例えば対角90度程度)の透視投影モデル(ピンホールカメラ)により歪みのない(または歪みが少ないと判定できる)通常の画像として基準画像I0及び関連画像Iiを生成することと、対応する回転初期値Riを取得する処理を説明するための図である。
【0027】
図6では例EX1に、基準画像I0及び関連画像Iiに対応する視野範囲S0及びSiが、カメラ視点Cを中心とする球面SP上に示されている。視野範囲S0及びSiにはそれぞれ、球面SP上における当該範囲の位置を示す回転R0及びRi(それぞれ回転行列として与えることができる)を定めることができるので、これらを回転初期値とすればよい。特に、基準画像I0の視野範囲S0の回転R0を基準として、(つまり、回転R0は無回転であるものとして、)相対的な回転として、1つ以上の関連画像Iiの視野範囲Siに対応する回転Riを初期値として設定すればよい。例EX1においては、回転方向を表す矢印として、回転Riが回転R0を基準として定まることが模式的に示されている。(従って、分割部12がフレーム画像F(t)を複数の視野範囲に分割する所定の分割方式に応じた固定値として、回転初期値Riも定まることとなる。)
【0028】
図6の例EX1,EX2に模式的に示される通り、透視投影モデル(ピンホールカメラ)により歪みのない(又は少ないと判定できる)適切な画角(例えば対角90度程度)の通常の画像として基準画像I0及び関連画像Iiを生成するには、次のようにすればよい。例EX1に示される魚眼画像F1を球面SPに射影する(なお、F1を射影したのがF2である)ことにより、球面SP上における視野範囲S0及びSiに存在するものとして、球面画像S0及びSi(説明の便宜上、視野範囲と球面画像とに同一の符号を用いる)を得ることができる。そして、例EX2に示されるように、カメラ視点Cを中心とする中心射影の平面I0及びIiに球面画像S0及びSiを射影することにより、通常の画像としての基準画像I0及び関連画像Ii(説明の便宜上、射影のための画像平面と射影された結果得られる画像とに同一の符号を用いる)を得ることができる。
【0029】
なお、射影方式には円周魚眼など様々なものが存在し、図6の例EX1に示される方式とは異なるものとして、例EX3に180度の円周魚眼の例も示す。分割部12ではフレーム画像F(t)に適用されている個別の射影方式に応じた手法により、基準画像I0及び関連画像Iiを生成し、且つ、回転初期値Riを取得することができる。なお、すでにステップS6でRiが最適化計算されている場合は、その値を回転初期値Riとして利用するようにしてよい。(例えば、初期時刻t=1では、ステップS6の最適化計算は一度も行われていないため、射影方式に応じた所定の回転初期値Ri(t=1)を利用し、それよりも後の時刻t≧2では、例えば直前時刻t-1でのステップS6で最適化計算されている値Ri (t-1)を、当該時刻tでの回転初期値として利用してよい。)
【0030】
図3の各ステップの説明に戻り、ステップS3では、位置姿勢が未推定である現時刻tの画像(フレーム画像F(t)よりステップS2で得られた基準画像I0及び関連画像Ii)と、位置姿勢が推定済である過去時刻t-k(k≧1)の画像(フレーム画像F(t-k)より過去時刻t-kに関してステップS2で得られた基準画像I0及び関連画像Ii)との間でマッチング部31が特徴点マッチングを行ってから、ステップS4へと進む。
【0031】
上記の通り、マッチング部31による特徴点マッチングは、歪みのない(又は少ない)基準画像I0及び関連画像Iiに関して、現時刻tと過去時刻t-kとの間において実施され、現時刻tの画像に対する1つ以上の過去画像におけるマッチング結果が保存される。当該マッチング結果は、後述するステップS4における位置回転推定部32の処理と、ステップS5における外れ値除外部33の処理と、ステップS6における最適推定部34の処理と、において参照して利用される。
【0032】
マッチング部31では、基準画像I0及び関連画像Iiから特徴点及び特徴量(SIFT特徴など)を抽出したうえで、特徴点及び特徴量によるマッチングを行えばよい。例えば、現時刻tの各特徴点に対してある1つの過去時刻t-kの全ての特徴点との間でマッチングするものを、特徴量の類似度が最大となるものとしてマッチング結果を得るようにしてよい。この最大類似度が閾値判定で小さいと判定された場合には、マッチング結果を該当なしとしてもよい。
【0033】
ステップS4では、位置回転推定部32が、現時刻tの基準画像I0及び関連画像Iiについて、その位置Pi及び回転Qi(0≦i≦N-1、i=0の場合は基準画像I0の位置及び回転、i≧1の場合は関連画像Iiの位置及び回転)を推定してから、ステップS5へと進む。(なお、当該推定する回転Qiは、別の変数表記を割り当てていることからも明確なように、ステップS2で各関連画像Iiについて求めた回転初期値Riとは別のものである。)
【0034】
位置回転推定部32では、ステップS3で求まっているマッチング結果(すなわち、現時刻tの画像が構成する点群と過去時刻t-kの画像が構成する点群とのマッチング結果)を利用して、エピポーラ幾何やバンドル調整といった任意の既存手法を用いることにより、一般的なSfM等においてなされているのと同様にして、各画像の位置Pi及び回転Qiを推定することができる。(以下に説明するように、過去時刻t-kの画像に関しては、基準画像I0及び関連画像Iiについて、その位置姿勢(位置及び回転)が過去時刻t-kのステップS6において推定済み(ステップS5で除外されなかった画像に関して推定済み)である。従って、ステップS4では位置及び回転が推定済の過去時刻の画像との間で照合を行うことにより、現時刻tの各画像の位置Pi及び回転Qiを推定することができる。)
【0035】
ステップS5では、外れ値除外部33が、ステップS3で求まっているマッチング結果と、ステップS4で求まっている現時刻tの基準画像I0及び関連画像Iiについての位置Pi及び回転Qiと、を用いて、現時刻tの基準画像I0及び関連画像Iiのうち、外れ値に相当する画像を判定し、当該判定される画像を、次のステップS6での最適推定部34による処理対象から除外して、ステップS6へと進む。(なお、ステップS5において除外判定がなされなかった場合は、除外する画像は発生しない。)
【0036】
外れ値除外部33では以下の(1)又は(2)に該当する画像を除外すべきものとして判定し、除外する。
【0037】
(1) 各画像Ii(0≦i≦N-1、i=0の場合は基準画像I0、i≧1の場合は関連画像Ii)について、当該N枚全体での平均位置Pavgを計算する。平均位置Pavgは、例えば相加平均ΣPi/Nや各位置Pi=(xi,yi,zi)の中央値などとして計算すればよい。当該平均位置Pavgからの乖離が大きいものを差分の絶対値|Pi-Pavg|に対する閾値判定により判定し、乖離が大きいと判定された画像を除外対象とする。
【0038】
(2) ステップS3で求まっているマッチング結果において、当該画像におけるマッチングした特徴点の個数が閾値判定で少ないと判定される画像を、除外対象とする。
【0039】
以下、説明のため、ステップS5により除外されなかった残りの画像を表すインデクス集合をU(U⊂{0,1,2,…,N-1})とし、除外されずに残った画像をIj(j∈U)と表記する。ステップS5による除外により、次のステップS6で得られる最終的な位置及び回転の推定精度を向上させることができる。
【0040】
ステップS6では、最適推定部34が、ステップS5で除外されずに残った各画像Ij(j∈U)について、以下の手順1~4により、最適化されたものとしてその位置及び回転を推定し、点群処理システム10からの出力とし、ステップS1へと戻る。当該戻ったステップS1では次の現時刻t+1について同様の処理が継続して実行される。
【0041】
(手順1) 各画像Ij(j∈U)の回転Qj(ステップS4で求まっている)に対し、回転初期値Rj(ステップS2で求まっている)の回転逆行列invRj(=Rj -1)を乗じた(invRj)・Qj (j∈U)の集合U内での平均値(相加平均)を計算する。この平均値をQavgとする。なお、基準画像I0(j=0)に関して、R0が無回転であることから、(invR0)・Q0 =Q0である。
【0042】
(手順2) 平均位置Pavg(ステップS5により除外されなかった残りの画像に基づく位置の平均)及び平均回転Qavg(手順1で求まっている)を、基準画像I0の位置及び回転であるものとして設定(以降のバンドル調整のための初期値として設定)する。(なお、基準画像I0がステップS5で外れ値として除外されている場合であっても、当該ステップS6の最適化計算は行われ、この設定を行う。この設定は、基準画像I0自身のみに対する設定ではなく、基準画像I0以外の画像についても設定の前提となるためである。)
【0043】
(手順3) 変数をPavg,Qavg,Rj(j∈U, j≧1)としたバンドル調整による、非線形最小化問題を解く。当該解くにはCeresなどの一般的な手法やライブラリ等を利用してよい。この際、関連画像の位置をPj=Pavg、回転Qj=Rj・Qavgとして計算する。この時の変数は、Pavg、Rj、Qavg(j∈U, j≧1)であり、バンドル調整によって基準画像I0との相対回転Rj(j≧1)も調整が行われる。なおR0は無回転固定であり最適化計算対象外となる。
【0044】
(手順4) 上記手順3で解いた結果として、最適化されたPavg,Qavg,Rj(j∈U, j≧1)が算出されるので、関連画像の位置Pj=Pavg、回転Qj=Rj・Qavg(0≦k≦N-1)として最終的な推定結果を得る。ここで、前述の通り、R0は無回転固定であり最適化計算対象外であるため、回転Q0=Qavgとなる。
【0045】
以上のように、ステップS6では最適推定部34が現時刻tでの各画像Ij(j∈U)に対して、各画像Ij(j∈U)においてステップS3でマッチングした特徴点の3次元世界座標の位置と、各画像Ij(j∈U)のカメラ位置及び向き(画像の位置及び回転)とを未知パラメータとして、既存手法であるバンドル調整により、特徴点の3次元世界座標を各画像平面座標に再投影した際の誤差を最小化するように、これら未知パラメータを推定する。この際、本実施形態のバンドル調整においては、各画像Ij(j∈U)のカメラ位置及び向きに関して、自由に変動させるのではなく、手順3で説明したような制約のもとで変動させて再投影誤差を最小化するものを算出することにより、手順4のように最終的な推定結果を得ることができる。また、本実施形態のバンドル調整においては、手順1,2において、手順3の変数の初期値を設定することで、安定的に計算を行うことができる。
【0046】
なお、ステップS6での最適推定部34によるバンドル調整は、現時刻tのみでの各画像Ij=Ij(t)(j∈U=U(t))に対してではなく、1つ以上の過去時刻t-k(k≧1)における各画像Ij=Ij(t-k)(j∈U=U(t-k))も追加したうえで、行うようにしてもよい。(この場合、1つ以上の過去時刻t-k(k≧1)における各画像Ij(j∈U)についても同様の制約(手順3)を課して最適化することにより、1つ以上の過去時刻t-k(k≧1)における各画像Ij(j∈U)のカメラの位置及び向きも再度、最適化して更新された値が得られることとなる。)
【0047】
なお、ステップS6ではさらに、定期的に(例えば所定フレーム間隔ごとに)位置及び回転が決まった全画像(現時刻tまでの全画像)を対象として、バンドル調整を行うことで、既に推定されている位置及び回転をさらに最適化するようにしてもよい。
【0048】
以上の図3のフローにより、スケールドリフトを効果的に抑制して、最適推定部34により位置及び回転を推定することができる。特に、最適推定部34においては広角画像を複数の視野範囲に分割したものとしての基準画像I0及び関連画像Iiを利用する(特に、その位置(最終的にPavgとして推定される位置)が基準画像I0及び関連画像Iiにおいて共有され(同一位置を有し)、且つ、回転のみが相互に異なっているという条件を課して利用する)ことで、画像の広い範囲に渡って偏りなく特徴点を利用することにより、スケールドリフトを効果的に抑制することが可能である。図3では例としてリアルタイムの測位を行う場合に関して説明したが、この測位結果に基づき地図作成を行う場合にも本実施形態は適用可能である。(地図生成の場合、画像の位置を推定した後に、周囲の点群を地図として保存する動作を追加すればよい。)また、測位はリアルタイムではなくオフラインで行うようにしてもよい。(図3のフローを映像の各時刻t通りの順番ではなく、任意の順番に変更して実施してもよい。)
【0049】
図7は本実施形態の効果を対比例と共に模式的に示す図である。例EX11は対比例として、本来同じ位置となるべきものが、それぞれの画角でまとまり、別の位置として誤推定されてしまっている。例EX12は本実施形態の適用例であり、一つの場所から扇状に画像位置が計算されていることが分かる。また計算時間短縮の効果も得られる。なお、図6において、扇状の形状は、錐体として、推定した位置及び回転を表す(錐体の底面の四角形の開き具合が画角に相当する)ものである。例EX11及び例EX12では共通の6つの軌跡が存在するが、例EX11においては位置が異なる軌跡を描いている3本と、バラバラとなって線に見えない1本と、さらに位置が分からなかった2本と、の6本が存在し、例EX12においては、この6本分がきれいに扇状に重なり1本に見えている。(例EX12で2本分が見えるのは、1本の軌跡が1周していることによるものである。)例EX12では、安定した位置計算によってスケールドリフトの影響が低減されているのに対し、例EX11では、スケールドリフトの影響により、等間隔となるはずの位置計算が、等間隔ではなく徐々に狭まったり広がったりする挙動となっている。
【0050】
図8は、一般的なコンピュータ装置70におけるハードウェア構成の例を示す図である。点群処理システム10における端末1及びサーバ2はそれぞれ、このような構成を有する1台以上のコンピュータ装置70として実現可能である。なお、2台以上のコンピュータ装置70で点群処理システム10を実現する場合、ネットワーク経由で処理に必要な情報の送受を行うようにしてよい。コンピュータ装置70は、所定命令を実行するCPU(中央演算装置)71、CPU71の実行命令の一部又は全部をCPU71に代わって又はCPU71と連携して実行する専用プロセッサとしてのGPU(グラフィックス演算装置)72、CPU71(及びGPU72)にワークエリアを提供する主記憶装置としてのRAM73、補助記憶装置としてのROM74、通信インタフェース75、ディスプレイ76、マウス、キーボード、タッチパネル等によりユーザ入力を受け付ける入力インタフェース77、映像取得部11を構成するカメラ78と、これらの間でデータを授受するためのバスBSと、を備える。
【0051】
点群処理システム10における端末1及びサーバ2の各機能部は、各部の機能に対応する所定のプログラムをROM74から読み込んで実行するCPU71及び/又はGPU72によって実現することができる。なお、CPU71及びGPU72は共に、演算装置(プロセッサ)の一種である。ここで、表示関連の処理が行われる場合にはさらに、ディスプレイ76が連動して動作し、データ送受信に関する通信関連の処理が行われる場合にはさらに通信インタフェース75が連動して動作する。点群処理システム10による推定結果等はディスプレイ76で表示して出力してよい。
【符号の説明】
【0052】
10…点群処理システム、1…端末、2…サーバ
11…映像取得部、12…分割部、13…推定部、31…マッチング部、32…位置回転推定部、33…外れ値除外部、34…最適推定部
図1
図2
図3
図4
図5
図6
図7
図8