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

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

▶ 馭勢科技(北京)有限公司の特許一覧

特許7096274自己位置推定と環境マップ作成を同時に行う方法及び装置
<>
  • 特許-自己位置推定と環境マップ作成を同時に行う方法及び装置 図1
  • 特許-自己位置推定と環境マップ作成を同時に行う方法及び装置 図2
  • 特許-自己位置推定と環境マップ作成を同時に行う方法及び装置 図3
  • 特許-自己位置推定と環境マップ作成を同時に行う方法及び装置 図4
  • 特許-自己位置推定と環境マップ作成を同時に行う方法及び装置 図5
  • 特許-自己位置推定と環境マップ作成を同時に行う方法及び装置 図6
  • 特許-自己位置推定と環境マップ作成を同時に行う方法及び装置 図7
  • 特許-自己位置推定と環境マップ作成を同時に行う方法及び装置 図8
  • 特許-自己位置推定と環境マップ作成を同時に行う方法及び装置 図9
  • 特許-自己位置推定と環境マップ作成を同時に行う方法及び装置 図10
  • 特許-自己位置推定と環境マップ作成を同時に行う方法及び装置 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-06-27
(45)【発行日】2022-07-05
(54)【発明の名称】自己位置推定と環境マップ作成を同時に行う方法及び装置
(51)【国際特許分類】
   G06T 7/579 20170101AFI20220628BHJP
   G06T 7/593 20170101ALI20220628BHJP
   G05D 1/02 20200101ALN20220628BHJP
【FI】
G06T7/579
G06T7/593
G05D1/02 K
【請求項の数】 20
(21)【出願番号】P 2019572827
(86)(22)【出願日】2018-12-28
(65)【公表番号】
(43)【公表日】2021-02-18
(86)【国際出願番号】 CN2018124786
(87)【国際公開番号】W WO2019233090
(87)【国際公開日】2019-12-12
【審査請求日】2020-06-03
(31)【優先権主張番号】201810578095.3
(32)【優先日】2018-06-07
(33)【優先権主張国・地域又は機関】CN
(31)【優先権主張番号】201811401646.5
(32)【優先日】2018-11-22
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】520003435
【氏名又は名称】馭勢科技(北京)有限公司
【氏名又は名称原語表記】UISEE TECHNOLOGIES (BEIJING) LTD.
【住所又は居所原語表記】Room 401, Building 2 NO. 85, Hongan Road, Fangshan District, Beijing 102402, China
(74)【代理人】
【識別番号】100146374
【弁理士】
【氏名又は名称】有馬 百子
(72)【発明者】
【氏名】王 亜慧
(72)【発明者】
【氏名】蔡 少駿
【審査官】藤原 敬利
(56)【参考文献】
【文献】特開2006-209770(JP,A)
【文献】特開2008-102620(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05D 1/00 - 1/12
G06T 1/00 - 1/40
G06T 3/00 - 9/40
H04N 7/18
(57)【特許請求の範囲】
【請求項1】
自己位置推定と環境マップ作成を同時に行う方法であって、
広視野カメラによって広視野画像を取得する広視野画像取得ステップと、
マルチ仮想ピンホールカメラモデルに基づいて、前記広視野画像に対応する歪み補正画像を取得する補正画像取得ステップと、
前記歪み補正画像に基づいて、前記広視野カメラの位置姿勢を決定し、マップを作成するマップ作成ステップと、を含み、
前記マルチ仮想ピンホールカメラモデルは、5つの異なる向きの仮想ピンホールカメラを含み、且つ前記5つの異なる向きの仮想ピンホールカメラのカメラ中心は前記広視野カメラのカメラ中心と重なり、
前記5つの仮想ピンホールカメラの向きは、前向き、上向き、下向き、左向き及び右向きであって、前記5つの仮想ピンホールカメラのイメージング平面であるサブ視野フレームは、キューブの5つの面の位置関係にあり、
前記広視野画像取得ステップは、第1時点に対応する現在の広視野フレームと、第2時点に対応する基準広視野フレームをそれぞれ取得し、
前記補正画像取得ステップは、前記基準広視野フレームを前記5つのイメージング平面に投影して5つのサブ視野フレームに分解することにより歪み補正画像を取得し、前記現在の広視野フレームを前記5つのイメージング平面に投影して5つのサブ視野フレームに分解することにより歪み補正画像を取得し、
前記マップ作成ステップは、前記仮想ピンホールカメラの向きが対応する前記基準広視野フレームの5つのサブ視野フレームと前記現在の広視野フレームの5つのサブ視野フレームをペアにして、フレーム間マッチングを行って特徴点を抽出し、マッチングする特徴点が最も多いサブ視野フレームペアを選択し、選択したサブ視野フレームペア間の相対位置姿勢を取得し、取得した相対位置姿勢を前記広視野カメラの位置姿勢とする
ことを特徴とする自己位置推定と環境マップ作成を同時に行う方法。
【請求項2】
前記広視野カメラは単眼広視野カメラであり、前記マップ作成ステップは、
前記マッチングする特徴点に基づいて初期マップを作成する初期マップ作成ステップを含むことを特徴とする請求項1に記載の自己位置推定と環境マップ作成を同時に行う方法。
【請求項3】
前記初期マップ作成ステップは、
前記第1時点に対応する歪み補正画像中の特徴点及び前記第1時点における前記広視野カメラのカメラ中心に基づいて、第1特徴点に対応する方向ベクトルを決定するステップと、
前記第2時点に対応する歪み補正画像中のマッチングする特徴点及び前記第2時点における前記広視野カメラのカメラ中心に基づいて、第2特徴点に対応する方向ベクトルを決定するステップと、
前記第1特徴点に対応する方向ベクトル及び前記第2特徴点に対応する方向ベクトルに三角測量を行い、前記特徴点に対応するマップ点を決定するステップと、
前記マップ点に基づいて初期マップを作成するステップと、を含むことを特徴とする請求項2に記載の自己位置推定と環境マップ作成を同時に行う方法。
【請求項4】
前記広視野カメラは単眼広視野カメラであり、前記マップ作成ステップは、グローバルバンドル最適化ステップを含み、前記グローバルバンドル最適化ステップは、
前記マップ中の各キー広視野フレームに対して、
前記キー広視野フレームに関連付けられた各マップ点をマルチ仮想ピンホールカメラモデルに投影し、前記マップ点の前記マルチ仮想ピンホールカメラモデルにおける再投影点を取得し、前記マップ点の前記マルチ仮想ピンホールカメラモデルにおける再投影点及び前記マップ点に対応する特徴点に基づいて、前記マップ点の再投影誤差を決定し、すべての前記キー広視野フレームに関連付けられたマップ点の再投影誤差に基づいて再投影誤差を決定するステップと、
前記再投影誤差に基づいて、前記キー広視野フレームの位置姿勢及び前記キー広視野フレームに関連付けられたすべてのマップ点の位置を更新するステップと、を含むことを特徴とする請求項1に記載の自己位置推定と環境マップ作成を同時に行う方法。
【請求項5】
前記広視野カメラは単眼広視野カメラであり、前記マップ作成ステップは、追跡ステップを含み、前記追跡ステップは、
前記現在の広視野フレームに関連付けられた各マップ点に対して、
前記マップ点をマルチ仮想ピンホールカメラモデルに投影し、前記マップ点の前記マルチ仮想ピンホールカメラモデルにおける再投影点を取得し、前記マップ点の前記マルチ仮想ピンホールカメラモデルにおける再投影点及び前記マップ点に対応する特徴点に基づいて、前記マップ点の再投影誤差を決定し、すべての前記現在の広視野フレームに関連付けられたマップ点の再投影誤差に基づいて再投影誤差を決定するステップと、
前記再投影誤差に基づいて、前記現在の広視野フレームの位置姿勢を更新するステップと、を含むことを特徴とする請求項1に記載の自己位置推定と環境マップ作成を同時に行う方法。
【請求項6】
前記広視野カメラは単眼広視野カメラであり、前記マップ作成ステップは、
前記現在の広視野フレーム及び前記基準広視野フレームの互いにマッチングする特徴点を決定するステップと、
前記現在の広視野フレームの特徴点及び現在の前記広視野カメラのカメラ中心に基づいて、第1特徴点に対応する方向ベクトルを決定するステップと、
前記基準広視野フレームのマッチングする特徴点及び前記基準広視野フレームに対応する前記広視野カメラのカメラ中心に基づいて、第2特徴点に対応する方向ベクトルを決定するステップと、
前記第1特徴点に対応する方向ベクトル及び前記第2特徴点に対応する方向ベクトルに三角測量を行い、前記特徴点に対応するマップ点を決定するステップと、
前記マップ点に基づいてマップを作成するステップと、を含むことを特徴とする請求項1に記載の自己位置推定と環境マップ作成を同時に行う方法。
【請求項7】
前記マップ作成ステップはローカルバンドル最適化ステップをさらに含み、前記ローカルバンドル最適化ステップは、
ローカルマップ中の各キー広視野フレームに対して、
前記キー広視野フレームに関連付けられた各マップ点をマルチ仮想ピンホールカメラモデルに投影し、前記マップ点の前記マルチ仮想ピンホールカメラモデルにおける再投影点を取得し、前記マップ点の前記マルチ仮想ピンホールカメラモデルにおける再投影点及び前記マップ点に対応する特徴点に基づいて、前記マップ点の再投影誤差を決定し、すべての前記キー広視野フレームに関連付けられたマップ点の再投影誤差に基づいて再投影誤差を決定するステップと、
前記再投影誤差に基づいて、前記キー広視野フレームの位置姿勢及び該キー広視野フレームに関連付けられたすべてのマップ点の位置を更新するステップと、を含むことを特徴とする請求項6に記載の自己位置推定と環境マップ作成を同時に行う方法。
【請求項8】
前記広視野カメラは双眼広視野カメラであり、
前記広視野画像取得ステップは、前記双眼広視野カメラによって左視野画像及び右視野画像を取得し、
前記補正画像取得ステップは、第1マルチ仮想ピンホールカメラモデルに基づいて、前記左視野画像に対応する左歪み補正画像を取得するステップと、第2マルチ仮想ピンホールカメラモデルに基づいて、前記右視野画像に対応する右歪み補正画像を取得するステップとを含み、
前記マップ作成ステップは、前記左歪み補正画像及び前記右歪み補正画像に基づいて、前記双眼広視野カメラの位置姿勢を決定し、マップを作成し、
前記第1マルチ仮想ピンホールカメラモデルは5つの異なる向きの仮想ピンホールカメラを含み、且つ前記5つの異なる向きの仮想ピンホールカメラのカメラ中心は前記双眼広視野カメラの左側カメラのカメラ中心と重なり、
前記第2マルチ仮想ピンホールカメラモデルは5つの異なる向きの仮想ピンホールカメラを含み、且つ前記5つの異なる向きの仮想ピンホールカメラのカメラ中心は前記双眼広視野カメラの右側カメラのカメラ中心と重なることを特徴とする請求項1に記載の自己位置推定と環境マップ作成を同時に行う方法。
【請求項9】
前記マップ作成ステップは、初期化ステップを含み、前記初期化ステップは、
前記左歪み補正画像と前記右歪み補正画像の互いにマッチングする特徴点を決定する特徴点決定ステップと、
前記互いにマッチングする特徴点に基づいて初期マップを作成する初期マップ作成ステップと、を含むことを特徴とする請求項8に記載の自己位置推定と環境マップ作成を同時に行う方法。
【請求項10】
前記特徴点決定ステップは、
前記右歪み補正画像における前記左歪み補正画像中の特徴点に対応する極線を決定するステップと、
前記極線上で前記左歪み補正画像中の特徴点にマッチングする特徴点を検索するステップと、を含み、
前記極線は多線分折れ線であることを特徴とする請求項9に記載の自己位置推定と環境マップ作成を同時に行う方法。
【請求項11】
前記初期マップ作成ステップは、
前記左歪み補正画像中の特徴点及び前記双眼広視野カメラの左側カメラのカメラ中心に基づいて、第1特徴点に対応する方向ベクトルを決定するステップと、
前記右歪み補正画像中のマッチングする特徴点及び前記双眼広視野カメラの右側カメラのカメラ中心に基づいて、第2特徴点に対応する方向ベクトルを決定するステップと、
前記双眼広視野カメラの基線に基づいて、前記第1特徴点に対応する方向ベクトル及び前記第2特徴点に対応する方向ベクトルに三角測量を行い、前記特徴点に対応するマップ点を決定するステップと、
前記マップ点に基づいて初期マップを作成するステップと、を含むことを特徴とする請求項9に記載の自己位置推定と環境マップ作成を同時に行う方法。
【請求項12】
前記マップ作成ステップは、グローバルバンドル最適化ステップを含み、前記グローバルバンドル最適化ステップは、
前記マップ中の各キー双眼画像フレームに対して、
前記キー双眼画像フレームに関連付けられたマップ点を第1マルチ仮想ピンホールカメラモデルに投影し、前記マップ点の前記第1マルチ仮想ピンホールカメラモデルにおける再投影点を取得し、前記マップ点の前記第1マルチ仮想ピンホールカメラモデルにおける再投影点及び前記マップ点に対応する特徴点に基づいて、前記マップ点の再投影誤差を決定し、すべての前記キー双眼画像フレームに関連付けられたマップ点の再投影誤差に基づいて左再投影誤差を決定するステップ、又は
前記キー双眼画像フレームに関連付けられたマップ点を第2マルチ仮想ピンホールカメラモデルに投影し、前記マップ点の前記第2マルチ仮想ピンホールカメラモデルにおける再投影点を取得し、前記マップ点の前記第2マルチ仮想ピンホールカメラモデルにおける再投影点及び前記マップ点に対応する特徴点に基づいて、前記マップ点の再投影誤差を決定し、すべての前記キー双眼画像フレームに関連付けられたマップ点の再投影誤差に基づいて右再投影誤差を決定するステップと、
前記左再投影誤差、前記右再投影誤差又は前記左再投影誤差と前記右再投影誤差との和に基づいて、前記キー双眼画像フレームの位置姿勢及び前記キー双眼画像フレームに関連付けられたすべてのマップ点の位置を更新するステップと、を含むことを特徴とする請求項8に記載の自己位置推定と環境マップ作成を同時に行う方法。
【請求項13】
前記マップ作成ステップは、追跡ステップを含み、前記追跡ステップは、
現在の双眼画像フレームに関連付けられた各マップ点に対して、
前記マップ点を第1マルチ仮想ピンホールカメラモデルに投影し、前記マップ点の前記第1マルチ仮想ピンホールカメラモデルにおける再投影点を取得し前記マップ点の前記第1マルチ仮想ピンホールカメラモデルにおける再投影点及び前記マップ点に対応する特徴点に基づいて、前記マップ点の再投影誤差を決定し、すべての前記現在の双眼画像フレームに関連付けられたマップ点の再投影誤差に基づいて左再投影誤差を決定するステップ、又は
前記マップ点を第2マルチ仮想ピンホールカメラモデルに投影し、前記マップ点の前記第2マルチ仮想ピンホールカメラモデルにおける再投影点を取得し、前記マップ点の前記第2マルチ仮想ピンホールカメラモデルにおける再投影点及び前記マップ点に対応する特徴点に基づいて、前記マップ点の再投影誤差を決定し、すべての前記現在の双眼画像フレームに関連付けられたマップ点の再投影誤差に基づいて右再投影誤差を決定するステップと、
前記左再投影誤差、前記右再投影誤差又は前記左再投影誤差と前記右再投影誤差との和に基づいて、前記現在の双眼画像フレームの位置姿勢を更新するステップと、を含むことを特徴とする請求項8に記載の自己位置推定と環境マップ作成を同時に行う方法。
【請求項14】
前記マップ作成ステップは、
現在の左歪み補正画像と現在の右歪み補正画像の互いにマッチングする特徴点を決定するステップと、
前記現在の左歪み補正画像の特徴点及び現在の前記双眼広視野カメラの左側カメラのカメラ中心に基づいて、第1特徴点に対応する方向ベクトルを決定するステップと、
前記現在の右歪み補正画像の特徴点及び現在の前記双眼広視野カメラの右側カメラのカメラ中心に基づいて、第2特徴点に対応する方向ベクトルを決定するステップと、
前記第1特徴点に対応する方向ベクトル及び前記第2特徴点に対応する方向ベクトルに三角測量を行い、前記特徴点に対応するマップ点を決定するステップと、
前記マップ点に基づいてマップを作成するステップと、を含むことを特徴とする請求項8に記載の自己位置推定と環境マップ作成を同時に行う方法。
【請求項15】
前記マップ作成ステップはローカルバンドル最適化ステップをさらに含み、前記ローカルバンドル最適化ステップは、
ローカルマップ中の各キー双眼画像フレームに対して、
前記キー双眼画像フレームに関連付けられたマップ点を第1マルチ仮想ピンホールカメラモデルに投影し、前記マップ点の前記第1マルチ仮想ピンホールカメラモデルにおける再投影点を取得し、前記マップ点の前記第1マルチ仮想ピンホールカメラモデルにおける再投影点及び前記マップ点に対応する特徴点に基づいて、前記マップ点の再投影誤差を決定し、すべての前記キー双眼画像フレームに関連付けられたマップ点の再投影誤差に基づいて左再投影誤差を決定するステップ、又は
前記キー双眼画像フレームに関連付けられたマップ点を第2マルチ仮想ピンホールカメラモデルに投影し、前記マップ点の前記第2マルチ仮想ピンホールカメラモデルにおける再投影点を取得し、前記マップ点の前記第2マルチ仮想ピンホールカメラモデルにおける再投影点及び前記マップ点に対応する特徴点に基づいて、前記マップ点の再投影誤差を決定し、すべての前記キー双眼画像フレームに関連付けられたマップ点の再投影誤差に基づいて右再投影誤差を決定するステップと、
前記左再投影誤差、前記右再投影誤差又は前記左再投影誤差と前記右再投影誤差との和に基づいて、前記キー双眼画像フレームの位置姿勢及び前記キー双眼画像フレームに関連付けられたすべてのマップ点の位置を更新するステップと、を含むことを特徴とする請求項14に記載の自己位置推定と環境マップ作成を同時に行う方法。
【請求項16】
前記マップ作成ステップは、閉ループ検出処理ステップを含み、前記閉ループ検出処理ステップは、
現在の広視野フレームがキー広視野フレームである場合、マップデータベース中の前記現在の広視野フレームと類似する閉ループ広視野フレームを決定するステップと、
前記現在の広視野フレームと前記閉ループ広視野フレームとの互いにマッチングする特徴点を決定するステップと、
前記現在の広視野フレーム中のマッチングする各特徴点に対し、該特徴点に関連付けられたマップ点を、前記閉ループ広視野フレームに対応するマルチ仮想ピンホールカメラモデルの座標系に変換し、さらに前記マルチ仮想ピンホールカメラモデルのイメージング平面に投影し、該マップ点の前記閉ループ広視野フレームにおける再投影点を取得し、該再投影点及び前記閉ループ広視野フレーム中のマッチングする特徴点に基づいて第1再投影誤差を決定するステップと、
前記現在の広視野フレーム中のすべてのマッチングする特徴点の第1再投影誤差に基づいて第1累計再投影誤差を決定するステップと、
前記閉ループ広視野フレーム中のマッチングする各特徴点に対して、該特徴点に関連付けられたマップ点を、前記現在の広視野フレームに対応するマルチ仮想ピンホールカメラモデルの座標系に変換し、さらに前記マルチ仮想ピンホールカメラモデルのイメージング平面に投影し、該マップ点の前記現在の広視野フレームにおける再投影点を取得し、該再投影点及び前記現在の広視野フレーム中のマッチングする特徴点に基づいて第2再投影誤差を決定するステップと、
前記閉ループ広視野フレーム中のすべてのマッチングする特徴点の第2再投影誤差に基づいて第2累計再投影誤差を決定するステップと、
前記第1累計再投影誤差及び前記第2累計再投影誤差を利用して、マップ中の前記現在の広視野フレームとは共通視野関係を有するキー広視野フレーム及びそれに関連付けられたマップ点を補正するステップと、を含むことを特徴とする請求項1に記載の自己位置推定と環境マップ作成を同時に行う方法。
【請求項17】
自己位置推定と環境マップ作成を同時に行う装置であって、
一組命令を記憶する少なくとも1つの記憶デバイスと、
前記少なくとも1つの記憶デバイスと通信する少なくとも1つのプロセッサと、を備え、前記一組命令を実行する時、前記少なくとも1つのプロセッサは、前記自己位置推定と環境マップ作成を同時に行う装置に、
広視野カメラによって広視野画像を取得する広視野画像取得ステップと、
マルチ仮想ピンホールカメラモデルに基づいて、前記広視野画像に対応する歪み補正画像を取得する補正画像取得ステップと、
前記歪み補正画像に基づいて、前記広視野カメラの位置姿勢を決定し、マップを作成するマップ作成ステップと、を実行させ、
前記マルチ仮想ピンホールカメラモデルは、5つの異なる向きの仮想ピンホールカメラを含み、且つ前記5つの異なる向きの仮想ピンホールカメラのカメラ中心は前記広視野カメラのカメラ中心と重なり、
前記5つの仮想ピンホールカメラの向きは、前向き、上向き、下向き、左向き及び右向きであって、前記5つの仮想ピンホールカメラのイメージング平面であるサブ視野フレームは、キューブの5つの面の位置関係にあり、
前記広視野画像取得ステップは、第1時点に対応する現在の広視野フレームと、第2時点に対応する基準広視野フレームをそれぞれ取得し、
前記補正画像取得ステップは、前記基準広視野フレームを前記5つのイメージング平面に投影して5つのサブ視野フレームに分解することにより歪補正画像を取得し、前記現在の広視野フレームを前記5つのイメージング平面に投影して5つのサブ視野フレームに分解することにより歪み補正画像を取得し、
前記マップ作成ステップは、前記仮想ピンホールカメラの向きが対応する前記基準広視野フレームの5つのサブ視野フレームと前記現在の広視野フレームの5つのサブ視野フレームをペアにして、フレーム間マッチングを行って特徴点を抽出し、マッチングする特徴点が最も多いサブ視野フレームペアを選択し、選択したサブ視野フレームペア間の相対位置姿勢を取得し、取得した相対位置姿勢を前記広視野カメラの位置姿勢とする
ことを特徴とする自己位置推定と環境マップ作成を同時に行う装置。
【請求項18】
前記広視野カメラは単眼広視野カメラであり、前記マップ作成ステップは、前記マッチングする特徴点に基づいて初期マップを作成する初期マップ作成ステップを含むことを特徴とする請求項17に記載の自己位置推定と環境マップ作成を同時に行う装置。
【請求項19】
コンピュータに、
広視野カメラによって広視野画像を取得する広視野画像取得ステップと、
マルチ仮想ピンホールカメラモデルに基づいて、前記広視野画像に対応する歪み補正画像を取得する補正画像取得ステップと、
前記歪み補正画像に基づいて、前記広視野カメラの位置姿勢を決定し、マップを作成するマップ作成ステップと、を実行させるプログラムであって、
前記マルチ仮想ピンホールカメラモデルは、5つの異なる向きの仮想ピンホールカメラを含み、且つ前記5つの異なる向きの仮想ピンホールカメラのカメラ中心は前記広視野カメラのカメラ中心と重なり、
前記5つの仮想ピンホールカメラの向きは、前向き、上向き、下向き、左向き及び右向きであって、前記5つの仮想ピンホールカメラのイメージング平面であるサブ視野フレームは、キューブの5つの面の位置関係にあり、
前記広視野画像取得ステップは、第1時点に対応する現在の広視野フレームと、第2時点に対応する基準広視野フレームをそれぞれ取得し、
前記補正画像取得ステップは、前記基準広視野フレームを前記5つのイメージング平面に投影して5つのサブ視野フレームに分解することにより歪み補正画像を取得し、前記現在の広視野フレームを前記5つのイメージング平面に投影して5つのサブ視野フレームに分解することにより歪み補正画像を取得し、
前記マップ作成ステップは、前記仮想ピンホールカメラの向きが対応する前記基準広視野フレームの5つのサブ視野フレームと前記現在の広視野フレームの5つのサブ視野フレームをペアにして、フレーム間マッチングを行って特徴点を抽出し、マッチングする特徴点が最も多いサブ視野フレームペアを選択し、選択したサブ視野フレームペア間の相対位置姿勢を取得し、取得した相対位置姿勢を前記広視野カメラの位置姿勢とする
ことを特徴とするプログラム。
【請求項20】
コンピュータに、
広視野カメラによって広視野画像を取得する広視野画像取得ステップと、
マルチ仮想ピンホールカメラモデルに基づいて、前記広視野画像に対応する歪み補正画像を取得する補正画像取得ステップと、
前記歪み補正画像に基づいて、前記広視野カメラの位置姿勢を決定し、マップを作成するマップ作成ステップと、を実行させるプログラムを記録したコンピュータ読み取り可能な記憶媒体であって、
前記マルチ仮想ピンホールカメラモデルは、5つの異なる向きの仮想ピンホールカメラを含み、且つ前記5つの異なる向きの仮想ピンホールカメラのカメラ中心は前記広視野カメラのカメラ中心と重なり、
前記5つの仮想ピンホールカメラの向きは、前向き、上向き、下向き、左向き及び右向きであって、前記5つの仮想ピンホールカメラのイメージング平面であるサブ視野フレームは、キューブの5つの面の位置関係にあり、
前記広視野画像取得ステップは、第1時点に対応する現在の広視野フレームと、第2時点に対応する基準広視野フレームをそれぞれ取得し、
前記補正画像取得ステップは、前記基準広視野フレームを前記5つのイメージング平面に投影して5つのサブ視野フレームに分解することにより歪み補正画像を取得し、前記現在の広視野フレームを前記5つのイメージング平面に投影して5つのサブ視野フレームに分解することにより歪み補正画像を取得し、
前記マップ作成ステップは、前記仮想ピンホールカメラの向きが対応する前記基準広視野フレームの5つのサブ視野フレームと前記現在の広視野フレームの5つのサブ視野フレームをペアにして、フレーム間マッチングを行って特徴点を抽出し、マッチングする特徴点が最も多いサブ視野フレームペアを選択し、選択したサブ視野フレームペア間の相対位置姿勢を取得し、取得した相対位置姿勢を前記広視野カメラの位置姿勢とする
ことを特徴とするプログラムを記録したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は自己位置推定と環境マップ作成を同時に行う分野に関し、特に広視野カメラに基づいて自己位置推定と環境マップ作成を同時に行う分野に関する。
【背景技術】
【0002】
自己位置推定と環境マップ作成を同時に行うこと(Simultaneous Localization And Mapping、SLAMと略称する)はロボットの動きをリアルタイムに追跡しながら周囲環境マップを作成して位置推定やナビゲーション等の目標を実現する技術である。
【0003】
従来のSLAMに使用されているカメラは透視カメラ(perspective camera)であり、又はピンホールカメラ(pinhole camera)と呼ばれる。カメラの画角(Field-of-View)が限られるため、取得された画像に存在する共通特徴は不十分であり、SLAMアルゴリズムによる追跡が無効になる恐れがある。従来のSLAMに使用されているピンホールカメラに比べて、広視野カメラは画角がより大きいため、広く研究され、注目されている。
従来の広視野画像に基づくSLAMの技術案は主として2種類がある。
【0004】
一方は、まず、広視野カメラによって取得された広視野画像に対して従来の歪み補正方法を用いて歪み補正処理を行い、さらに歪み補正後の画像を普通画像として従来のSLAM技術を用いて自己位置推定と環境マップ作成を同時に行うことである。このような技術案は簡単であるが、従来の歪み補正方法は多くの画角の損失を招き、広視野カメラの広角を十分に活用できない。
【0005】
他方は、広視野カメライメージングモデルに基づいて、歪み補正されていない広視野画像に直接SLAM処理を行うことである。すなわち、歪み補正されていない広視野画像から直接特徴を抽出して処理する。このような技術案は、抽出された特徴が画像歪みの影響を受けることが可能性があり、且つ複雑な広視野カメライメージングモデルによって最適化が非常に複雑になるため、システムの性能を損なってしまう。
【0006】
従って、画像歪みの影響を回避しながら、広視野カメラのすべての視野を保持するとともに、被写界深度の検出、自己位置推定、環境マップ作成を同時に行うことができる新たなSLAM技術が望まれている。
【発明の概要】
【0007】
このアプリケーションの目的は、位置決めとマッピングを同時に行う方法を提供することです。この方法では、マルチバーチャルピンホールカメラモデルに基づいて、広視野カメラで取得した広視野画像を削除し、歪みのない画像に基づいて同時の位置決めとマッピングを実行できます。
【0008】
このアプリケーションは、一方で提供します 自己位置推定と環境マップ作成を同時に行う方法であって、 広視野カメラによって広視野画像を取得するステップと、 マルチ仮想ピンホールカメラモデルに基づいて、前記広視野画像に対応する歪み補正画像を取得するステップと、 前記歪み補正画像に基づいて、前記広視野カメラの位置姿勢を決定し、マップを作成するステップと、を含み、前記マルチ仮想ピンホールカメラモデルは少なくとも2つの異なる向きの仮想ピンホールカメラを含み、且つ前記少なくとも2つの異なる向きの仮想ピンホールカメラのカメラ中心は前記広視野カメラのカメラ中心と重なることを特徴とする自己位置推定と環境マップ作成を同時に行う方法。
【0009】
いくつかの実施形態では、前記広視野カメラは単眼広視野カメラであり、前記歪み補正画像に基づいて、前記広視野カメラの位置姿勢を決定し、マップを作成する前記ことは、初期化ステップを含み、前記初期化ステップは、 第1時点に対応する歪み補正画像及び第2時点に対応する歪み補正画像を取得するステップと、 前記第1時点に対応する歪み補正画像と前記第2時点に対応する歪み補正画像の互いにマッチングする特徴点を決定するステップと、 前記互いにマッチングする特徴点に基づいて初期マップを作成するステップと。
【0010】
いくつかの実施形態では、前記互いにマッチングする特徴点に基づいて初期マップを作成する前記ことは、 前記第1時点に対応する歪み補正画像中の特徴点及び前記第1時点における前記広視野カメラのカメラ中心に基づいて、第1特徴点に対応する方向ベクトルを決定するステップと、 前記第2時点に対応する歪み補正画像中のマッチングする特徴点及び前記第2時点における前記広視野カメラのカメラ中心に基づいて、第2特徴点に対応する方向ベクトルを決定するステップと、 前記第1特徴点に対応する方向ベクトル及び前記第2特徴点に対応する方向ベクトルに三角測量を行い、前記特徴点に対応するマップ点を決定するステップと、 前記マップ点に基づいて初期マップを作成するステップと。
【0011】
いくつかの実施形態では、 前記広視野カメラは単眼広視野カメラであり、前記歪み補正画像に基づいて、前記広視野カメラの位置姿勢を決定し、マップを作成する前記ことは、グローバルバンドル最適化ステップを含み、前記グローバルバンドル最適化ステップは、 前記マップ中の各キー広視野フレームに対して、 前記キー広視野フレームに関連付けられた各マップ点をマルチ仮想ピンホールカメラモデルに投影し、前記マップ点の前記マルチ仮想ピンホールカメラモデルにおける再投影点を取得し、前記マップ点の前記マルチ仮想ピンホールカメラモデルにおける再投影点及び前記マップ点に対応する特徴点に基づいて、前記マップ点の再投影誤差を決定し、すべての前記キー広視野フレームに関連付けられたマップ点の再投影誤差に基づいて再投影誤差を決定するステップと、前記再投影誤差に基づいて、前記キー広視野フレームの位置姿勢及び前記キー広視野フレームに関連付けられたすべてのマップ点の位置を更新するステップと。
【0012】
いくつかの実施形態では、前記広視野カメラは単眼広視野カメラであり、前記歪み補正画像に基づいて、前記広視野カメラの位置姿勢を決定し、マップを作成する前記ことは、追跡ステップを含み、前記追跡ステップは、 現在の広視野フレームに関連付けられた各マップ点に対して、 前記マップ点をマルチ仮想ピンホールカメラモデルに投影し、前記マップ点の前記マルチ仮想ピンホールカメラモデルにおける再投影点を取得し、前記マップ点の前記マルチ仮想ピンホールカメラモデルにおける再投影点及び前記マップ点に対応する特徴点に基づいて、前記マップ点の再投影誤差を決定し、すべての前記現在の広視野フレームに関連付けられたマップ点の再投影誤差に基づいて再投影誤差を決定するステップと、 前記再投影誤差に基づいて、前記現在の広視野フレームの位置姿勢を更新するステップと。
【0013】
いくつかの実施形態では、前記広視野カメラは単眼広視野カメラであり、前記歪み補正画像に基づいて、前記広視野カメラの位置姿勢を決定し、マップを作成する前記ことは、マップ作成ステップを含み、前記マップ作成ステップは、 現在の広視野フレーム及びその基準フレームの互いにマッチングする特徴点を決定するステップと、前記現在の広視野フレームの特徴点及び現在の前記広視野カメラのカメラ中心に基づいて、第1特徴点に対応する方向ベクトルを決定するステップと、前記基準フレームのマッチングする特徴点及び前記基準フレームに対応する前記広視野カメラのカメラ中心に基づいて、第2特徴点に対応する方向ベクトルを決定するステップと、前記第1特徴点に対応する方向ベクトル及び前記第2特徴点に対応する方向ベクトルに三角測量を行い、前記特徴点に対応するマップ点を決定するステップと、前記マップ点に基づいてマップを作成するステップと。
【0014】
いくつかの実施形態では、前記マップ作成ステップはローカルバンドル最適化ステップをさらに含み、前記ローカルバンドル最適化ステップは、 ローカルマップ中の各キー広視野フレームに対して、前記キー広視野フレームに関連付けられた各マップ点をマルチ仮想ピンホールカメラモデルに投影し、前記マップ点の前記マルチ仮想ピンホールカメラモデルにおける再投影点を取得し、前記マップ点の前記マルチ仮想ピンホールカメラモデルにおける再投影点及び前記マップ点に対応する特徴点に基づいて、前記マップ点の再投影誤差を決定し、すべての前記キー広視野フレームに関連付けられたマップ点の再投影誤差に基づいて再投影誤差を決定するステップと、前記再投影誤差に基づいて、前記キー広視野フレームの位置姿勢及び該キー広視野フレームに関連付けられたすべてのマップ点の位置を更新するステップと。
【0015】
いくつかの実施形態では、前記広視野カメラは双眼広視野カメラであり、 前記双眼広視野カメラによって左視野画像及び右視野画像を取得するステップと、第1マルチ仮想ピンホールカメラモデルに基づいて、前記左視野画像に対応する左歪み補正画像を取得するステップと、第2マルチ仮想ピンホールカメラモデルに基づいて、前記右視野画像に対応する右歪み補正画像を取得するステップと、前記左歪み補正画像及び前記右歪み補正画像に基づいて、前記双眼広視野カメラの位置姿勢を決定し、マップを作成するステップと、を含み、前記第1マルチ仮想ピンホールカメラモデルは少なくとも2つの異なる向きの仮想ピンホールカメラを含み、且つ前記少なくとも2つの異なる向きの仮想ピンホールカメラのカメラ中心は前記双眼広視野カメラの左側カメラのカメラ中心と重なり、前記第2マルチ仮想ピンホールカメラモデルは少なくとも2つの異なる向きの仮想ピンホールカメラを含み、且つ前記少なくとも2つの異なる向きの仮想ピンホールカメラのカメラ中心は前記双眼広視野カメラの右側カメラのカメラ中心。
【0016】
いくつかの実施形態では、前記左歪み補正画像及び前記右歪み補正画像に基づいて、前記双眼広視野カメラの位置姿勢を決定し、マップを作成する前記ことは、初期化ステップを含み、前記初期化ステップは、前記左歪み補正画像と前記右歪み補正画像の互いにマッチングする特徴点を決定するステップと、前記互いにマッチングする特徴点に基づいて初期マップを作成するステップと。
【0017】
いくつかの実施形態では、前記左歪み補正画像と前記右歪み補正画像の互いにマッチングする特徴点を決定する前記ことは、前記右歪み補正画像における前記左歪み補正画像中の特徴点に対応する極線を決定するステップと、前記極線上で前記左歪み補正画像中の特徴点にマッチングする特徴点を検索するステップと、を含み。
【0018】
いくつかの実施形態では、前記互いにマッチングする特徴点に基づいて初期マップを作成する前記ことは、前記左歪み補正画像中の特徴点及び前記双眼広視野カメラの左側カメラのカメラ中心に基づいて、第1特徴点に対応する方向ベクトルを決定するステップと、前記右歪み補正画像中のマッチングする特徴点及び前記双眼広視野カメラの右側カメラのカメラ中心に基づいて、第2特徴点に対応する方向ベクトルを決定するステップと、 前記双眼広視野カメラの基線に基づいて、前記第1特徴点に対応する方向ベクトル及び前記第2特徴点に対応する方向ベクトルに三角測量を行い、前記特徴点に対応するマップ点を決定するステップと、前記マップ点に基づいて初期マップを作成するステップと。
【0019】
いくつかの実施形態では、前記左歪み補正画像及び前記右歪み補正画像に基づいて、前記双眼広視野カメラの位置姿勢を決定し、マップを作成する前記ことは、グローバルバンドル最適化ステップを含み、前記グローバルバンドル最適化ステップは、前記マップ中の各キー双眼画像フレームに対して、前記キー双眼画像フレームに関連付けられたマップ点を第1マルチ仮想ピンホールカメラモデルに投影し、前記マップ点の前記第1マルチ仮想ピンホールカメラモデルにおける再投影点を取得し、前記マップ点の前記第1マルチ仮想ピンホールカメラモデルにおける再投影点及び前記マップ点に対応する特徴点に基づいて、前記マップ点の再投影誤差を決定し、すべての前記キー双眼画像フレームに関連付けられたマップ点の再投影誤差に基づいて左再投影誤差を決定するステップ、又は前記キー双眼画像フレームに関連付けられたマップ点を第2マルチ仮想ピンホールカメラモデルに投影し、前記マップ点の前記第2マルチ仮想ピンホールカメラモデルにおける再投影点を取得し、前記マップ点の前記第2マルチ仮想ピンホールカメラモデルにおける再投影点及び前記マップ点に対応する特徴点に基づいて、前記マップ点の再投影誤差を決定し、すべての前記キー双眼画像フレームに関連付けられたマップ点の再投影誤差に基づいて右再投影誤差を決定するステップと、前記左再投影誤差、前記右再投影誤差又は前記左再投影誤差と前記右再投影誤差との和に基づいて、前記キー双眼画像フレームの位置姿勢及び前記キー双眼画像フレームに関連付けられたすべてのマップ点の位置を更新するステップと。
【0020】
いくつかの実施形態では、前記左歪み補正画像及び前記右歪み補正画像に基づいて、前記双眼広視野カメラの位置姿勢を決定し、マップを作成する前記ことは、追跡ステップを含み、前記追跡ステップは、現在の双眼画像フレームに関連付けられた各マップ点に対して、前記マップ点を第1マルチ仮想ピンホールカメラモデルに投影し、前記マップ点の前記第1マルチ仮想ピンホールカメラモデルにおける再投影点を取得し前記マップ点の前記第1マルチ仮想ピンホールカメラモデルにおける再投影点及び前記マップ点に対応する特徴点に基づいて、前記マップ点の再投影誤差を決定し、すべての前記現在の双眼画像フレームに関連付けられたマップ点の再投影誤差に基づいて左再投影誤差を決定するステップ、又は 前記マップ点を第2マルチ仮想ピンホールカメラモデルに投影し、前記マップ点の前記第2マルチ仮想ピンホールカメラモデルにおける再投影点を取得し、前記マップ点の前記第2マルチ仮想ピンホールカメラモデルにおける再投影点及び前記マップ点に対応する特徴点に基づいて、前記マップ点の再投影誤差を決定し、すべての前記現在の双眼画像フレームに関連付けられたマップ点の再投影誤差に基づいて右再投影誤差を決定するステップと、 前記左再投影誤差、前記右再投影誤差又は前記左再投影誤差と前記右再投影誤差との和に基づいて、前記現在の双眼画像フレームの位置姿勢を更新するステップと。
【0021】
いくつかの実施形態では、前記左歪み補正画像及び前記右歪み補正画像に基づいて、前記双眼広視野カメラの位置姿勢を決定し、マップを作成する前記ことは、マップ作成ステップを含み、前記マップ作成ステップは、 現在の左歪み補正画像と現在の右歪み補正画像の互いにマッチングする特徴点を決定するステップと、 前記現在の左歪み補正画像の特徴点及び現在の前記双眼広視野カメラの左側カメラのカメラ中心に基づいて、第1特徴点に対応する方向ベクトルを決定するステップと、前記現在の右歪み補正画像の特徴点及び現在の前記双眼広視野カメラの右側カメラのカメラ中心に基づいて、第2特徴点に対応する方向ベクトルを決定するステップと、前記第1特徴点に対応する方向ベクトル及び前記第2特徴点に対応する方向ベクトルに三角測量を行い、前記特徴点に対応するマップ点を決定するステップと、前記マップ点に基づいてマップを作成するステップと。
【0022】
いくつかの実施形態では、 前記マップ作成ステップはローカルバンドル最適化ステップをさらに含み、前記ローカルバンドル最適化ステップは、 ローカルマップ中の各キー双眼画像フレームに対して、前記キー双眼画像フレームに関連付けられたマップ点を第1マルチ仮想ピンホールカメラモデルに投影し、前記マップ点の前記第1マルチ仮想ピンホールカメラモデルにおける再投影点を取得し、前記マップ点の前記第1マルチ仮想ピンホールカメラモデルにおける再投影点及び前記マップ点に対応する特徴点に基づいて、前記マップ点の再投影誤差を決定し、すべての前記キー双眼画像フレームに関連付けられたマップ点の再投影誤差に基づいて左再投影誤差を決定するステップ、又は 前記キー双眼画像フレームに関連付けられたマップ点を第2マルチ仮想ピンホールカメラモデルに投影し、前記マップ点の前記第2マルチ仮想ピンホールカメラモデルにおける再投影点を取得し、前記マップ点の前記第2マルチ仮想ピンホールカメラモデルにおける再投影点及び前記マップ点に対応する特徴点に基づいて、前記マップ点の再投影誤差を決定し、すべての前記キー双眼画像フレームに関連付けられたマップ点の再投影誤差に基づいて右再投影誤差を決定するステップと、前記左再投影誤差、前記右再投影誤差又は前記左再投影誤差と前記右再投影誤差との和に基づいて、前記キー双眼画像フレームの位置姿勢及び前記キー双眼画像フレームに関連付けられたすべてのマップ点の位置を更新するステップと。
【0023】
いくつかの実施形態では、前記歪み補正画像に基づいて、前記広視野カメラの位置姿勢を決定し、マップを作成する前記ことは、閉ループ検出処理ステップを含み、前記閉ループ検出処理ステップは、現在の広視野フレームがキー広視野フレームである場合、マップデータベース中の前記現在の広視野フレームと類似する閉ループ広視野フレームを決定するステップと、前記現在の広視野フレームと前記閉ループ広視野フレームとの互いにマッチングする特徴点を決定するステップと、前記現在の広視野フレーム中のマッチングする各特徴点に対し、該特徴点に関連付けられたマップ点を、前記閉ループ広視野フレームに対応するマルチ仮想ピンホールカメラモデルの座標系に変換し、さらに前記マルチ仮想ピンホールカメラモデルのイメージング平面に投影し、該マップ点の前記閉ループ広視野フレームにおける再投影点を取得し、該再投影点及び前記閉ループ広視野フレーム中のマッチングする特徴点に基づいて第1再投影誤差を決定するステップと、前記現在の広視野フレーム中のすべてのマッチングする特徴点の第1再投影誤差に基づいて第1累計再投影誤差を決定するステップと、 前記閉ループ広視野フレーム中のマッチングする各特徴点に対して、該特徴点に関連付けられたマップ点を、前記現在の広視野フレームに対応するマルチ仮想ピンホールカメラモデルの座標系に変換し、さらに前記マルチ仮想ピンホールカメラモデルのイメージング平面に投影し、該マップ点の前記現在の広視野フレームにおける再投影点を取得し、該再投影点及び前記現在の広視野フレーム中のマッチングする特徴点に基づいて第2再投影誤差を決定するステップと、前記閉ループ広視野フレーム中のすべてのマッチングする特徴点の第2再投影誤差に基づいて第2累計再投影誤差を決定するステップと、前記第1累計再投影誤差及び前記第2累計再投影誤差を利用して、マップ中の前記現在の広視野フレームとは共通視野関係を有するキー広視野フレーム及びそれに関連付けられたマップ点を補正するステップと。
いくつかの実施形態では、前記少なくとも2つの異なる向きは、キューブの前向き、上向き、下向き、左向き又は右向きを。
【0024】
このアプリケーションは、一方で提供します 自己位置推定と環境マップ作成を同時に行う装置であって、一組命令を含む少なくとも1つの記憶デバイスと、前記少なくとも1つの記憶デバイスと通信する少なくとも1つのプロセッサと、を備え、前記一組命令を実行する時、前記少なくとも1つのプロセッサは、前記自己位置推定と環境マップ作成を同時に行う装置に、広視野カメラによって広視野画像を取得するステップと、マルチ仮想ピンホールカメラモデルに基づいて、前記広視野画像に対応する歪み補正画像を取得するステップと、前記歪み補正画像に基づいて、前記広視野カメラの位置姿勢を決定し、マップを作成するステップと、を実行させ、 前記マルチ仮想ピンホールカメラモデルは少なくとも2つの異なる向きの仮想ピンホールカメラを含み、且つ前記少なくとも2つの異なる向きの仮想ピンホールカメラのカメラ中心は前記広視野カメラのカメラ中心と重なる自己位置推定と環境マップ作成を同時に行う装置。
【0025】
本発明における追加の特徴は、以下の説明において部分的に説明されるであろう。この説明により、以下の図面および実施形態に記載された内容が当業者に明らかになるであろう。本発明における発明のポイントは、以下で議論される詳細な実施例に記載される方法、手段、およびそれらの組み合わせを実施または使用することにより完全に説明され得る。
【図面の簡単な説明】
【0026】
以下の図面は、本発明において開示される例示的な実施形態を詳細に説明する。図面のいくつかの図において、同じ参照番号は同様の構造を示している。当業者は、これらの実施形態は非限定的な例示的実施形態であり、図面は例示および説明の目的のためだけであり、本開示の範囲を限定することを意図しないことを理解するであろう。本発明における本発明の意図も満たされる。図面は縮尺通りに描かれていないことを理解されたい。
図1】は、本発明のいくつかの実施例による自己位置推定と環境マップ作成を同時に行うシステムを示す。
図2】は、本発明のいくつかの実施例による自己位置推定と環境マップ作成を同時に行う方法のフローチャートを示す。
図3】は、本発明のいくつかの実施例による2つの向きを含むマルチ仮想ピンホールカメラモデルを示す。
図4】は、本発明のいくつかの実施例による5つの向きを含むマルチ仮想ピンホールカメラモデルを示す。
図5】は、本発明のいくつかの実施例によるマルチ仮想ピンホールカメラモデルに基づいて歪み補正を行う模式図である。
【0027】
図6】は、本発明のいくつかの実施例による原単眼魚眼画像、従来の歪み補正後の単眼魚眼画像及び本開示の方法による歪み補正後の単眼魚眼画像を示す。
図7】は、本発明のいくつかの実施例による原双眼魚眼画像及び従来の歪み補正後の双眼魚眼画像を示す。
図8】は、本発明のいくつかの実施例によるカメラの位置姿勢特定及びマップ作成のフローチャートを示す。
図9】は、本発明のいくつかの実施形態による、単眼の広視野カメラによって構築されたマップポイントの概略図を示す。
図10】は、本発明のいくつかの実施例による双眼広視野カメラの極線検索の模式図である。
図11】は、本発明のいくつかの実施例による双眼広視野カメラのマップ点作成の模式図である。
【発明を実施するための形態】
【0028】
以下の説明は、当業者がこのアプリケーションでコンテンツを作成および使用できるようにするために、このアプリケーションの特定のアプリケーションシナリオおよび要件を提供する。開示された実施形態に対する様々な修正は、当業者には明らかであり、本明細書で定義された一般原理は、本開示の精神および範囲から逸脱することなく他の実施形態に適用できる。アプリケーション。したがって、本開示は、例示された実施形態に限定されず、特許請求の範囲と一致する最も広い範囲である。
【0029】
本明細書で使用される用語は、特定の例示的な実施形態のみを説明するためのものであり、限定するものではない。例えば、本明細書で使用されるように、文脈がそうではないことを明確に示さない限り、単数形「a」、「an」および「the」は複数形を含み得る。この仕様で使用される「含む」、「含む」、および/または「含む」という用語は、関連する整数、ステップ、操作、要素、および/またはコンポーネントが存在することを意味しますが、1つ以上の他の機能を除外するものではありません、整数、ステップ、操作、要素、コンポーネント、および/またはその他の機能、整数、ステップ、操作、要素、コンポーネントをシステム/メソッドに追加できます。
【0030】
以下の説明を考慮すると、本開示のこれらおよび他の特徴、ならびに構造の関連要素の動作および機能、ならびに構成要素の組み合わせおよび製造の経済性を大幅に改善することができる。図面を参照すると、そのすべてが本開示の一部を形成する。ただし、図面は説明と説明のみを目的としており、開示の制限の定義を意図したものではないことを明確に理解する必要があります。
【0031】
本開示で使用されるフローチャートは、本開示のいくつかの実施形態によるシステムによって実施される動作を示す。フローチャートの動作は順不同で実装できることを明確に理解する必要があります。代わりに、操作を逆順または同時に実行できます。さらに、1つ以上の他のアクションをフローチャートに追加できます。フローチャートから1つ以上のアクションを削除できます。
【0032】
本開示の一態様は自己位置推定と環境マップ作成を同時に行う方法に関する。具体的には、該方法は、マルチ仮想ピンホールカメラモデルに基づいて、広視野カメラによって取得された広視野画像を歪み補正して歪み補正画像を取得するステップと、歪み補正画像に基づいて広視野カメラの位置姿勢を決定し、マップを作成するステップと、を含む。前記マルチ仮想ピンホールカメラモデルは少なくとも2つの異なる向きの仮想ピンホールカメラを含み、且つ前記少なくとも2つの異なる向きの仮想ピンホールカメラのカメラ中心は前記広視野カメラのカメラ中心と重なる。
図1は本発明のいくつかの実施例による自己位置推定と環境マップ作成を同時に行うシステムを示す。
【0033】
自己位置推定と環境マップ作成を同時に行うシステム100は広視野画像を取得し、自己位置推定と環境マップ作成を同時に行う方法を実行することができる。前記自己位置推定と環境マップ作成を同時に行う方法は図2図11についての説明を参照すればよい。
【0034】
図示するように、自己位置推定と環境マップ作成を同時に行うシステム100は広視野カメラ101、及び自己位置推定と環境マップ作成を同時に行う装置102を備える。前記広視野カメラ101と自己位置推定と環境マップ作成を同時に行う装置102は一体として装着されてもよく、個別装着されてもよい。本開示の発明についての説明の便宜上、本開示の広視野カメラは魚眼カメラを例とする。
【0035】
広視野カメラ101は被写体の魚眼画像を取得する。いくつかの実施例では、広視野カメラ101は魚眼カメラ、反射屈折カメラ、パノラマカメラであってもよい。いくつかの実施例では、広視野カメラ101は単眼広視野カメラ、双眼広視野カメラ又は多眼広視野カメラであってもよい。
【0036】
例として、広視野カメラ101は単眼魚眼カメラ及び双眼魚眼カメラを含む。双眼魚眼カメラの左側カメラは左眼と呼ばれ、双眼魚眼カメラの右側カメラは右眼と呼ばれる。左眼によって取得された画像は左魚眼画像(左視野画像)と呼ばれ、右眼によって取得された画像は右魚眼画像(右視野画像)と呼ばれる。
【0037】
自己位置推定と環境マップ作成を同時に行う装置102は自己位置推定と環境マップ作成を同時に行う方法を実行できる例示的なコンピューティング装置である。
【0038】
位置決めおよびマッピングのためのデバイス102は、データ通信を促進するためにCOMポート150を含むことができる。同時に位置決めおよびマッピングするためのデバイス102は、コンピュータ命令を実行するための1つまたは複数のプロセッサの形態のプロセッサ120をさらに含むことができる。コンピュータ命令には、たとえば、本明細書で説明する特定の機能を実行するルーチン、プログラム、オブジェクト、コンポーネント、データ構造、手順、モジュール、および機能を含めることができます。例えば、プロセッサ120は、複数の仮想ピンホールカメラモデルに基づいて魚眼画像の歪んだ画像を決定してもよい。別の例として、プロセッサ120は、広視野カメラ101の姿勢を決定し、歪んだ画像に基づいて地図を構築してもよい。
【0039】
いくつかの実施形態では、プロセッサ120は、マイクロコントローラ、マイクロプロセッサ、縮小命令セットコンピュータ(RISC)、特定用途向け集積回路(ASIC)、特定用途向けなどの1つ以上のハードウェアプロセッサを含み得る。命令セットプロセッサ(ASIP)、中央処理装置(CPU)、グラフィック処理装置(GPU)、物理処理装置(PPU)、マイクロコントローラユニット、デジタルシグナルプロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA) )、アドバンストRISCマシン(ARM)、プログラマブルロジックデバイス(PLD)、1つ以上の機能を実行できる回路またはプロセッサなど、またはそれらの組み合わせ。
【0040】
いくつかの実施形態では、同時位置決めおよびマッピングのためのデバイス102は、内部通信バス110、プログラムストレージ、および異なる形式のデータストレージ(例えば、ディスク170、読み取り専用メモリ(ROM)130、またはランダムアクセス)を含み得る。メモリ(RAM)140)。同時位置決めおよびマッピングのためのデバイス102は、ROM 130、RAM 140、および/またはプロセッサ120によって実行される他のタイプの非一時的記憶媒体に格納されたプログラム命令も含み得る。本発明の方法および/またはプロセスは、プログラム命令として実装されてもよい。同時位置決めおよびマッピングのためのデバイス102はまた、コンピュータと他のコンポーネント(例えば、ユーザーインターフェース要素)との間の入力/出力をサポートするI / Oコンポーネント160を含む。位置決めとマッピングを同時に行うデバイス102は、ネットワーク通信を通じてプログラミングとデータを受信することもできます。
【0041】
例示のみを目的として、本発明における同時の位置決めおよびマッピングのために、デバイス102には1つのプロセッサのみが記載されている。しかしながら、本発明における同時測位およびマッピングのためのデバイス102は複数のプロセッサを含むこともできることに留意すべきであり、したがって、本発明に開示される動作および/または方法ステップは、本開示に記載される1つのプロセッサによって実行され得る、複数のプロセッサが共同で実行することもできます。例えば、本発明における位置決めおよびマッピングのためのデバイス102のプロセッサ120がステップAおよびBを実行する場合、ステップAおよびBは、情報処理における2つの異なるプロセッサによって結合または分離され得ることを理解されたい。実行(たとえば、第1プロセッサがステップAを実行し、第2プロセッサがステップBを実行するか、第1プロセッサと第2プロセッサがステップAとBを一緒に実行します)。
【0042】
図2は本発明のいくつかの実施例による自己位置推定と環境マップ作成を同時に行う方法のフローチャートを示す。プロセス200は自己位置推定と環境マップ作成を同時に行う装置102中の非一時的な記憶媒体における)一組命令として実施できる。自己位置推定と環境マップ作成を同時に行う装置102は該一組命令を実行し且つプロセス200のステップを対応付けて実行する。
【0043】
以下に提示される例示されたプロセス200の動作は、例示的であり、限定的ではないことが意図される。いくつかの実施形態では、プロセス200は、説明されていない1つ以上の追加の動作を追加し、および/または本明細書で説明された1つ以上の動作を削除することができる。さらに、図2に示され、以下で説明される動作の順序は、これに対する制限ではない。
210では、自己位置推定と環境マップ作成を同時に行う装置102は広視野カメラ101によって広視野画像を取得することができる。
【0044】
広視野カメラ101が単眼広視野カメラである場合、単眼広視野カメラが広視野画像を取得し、広視野カメラ101が双眼広視野カメラである場合、双眼広視野カメラが、左視野画像及び右視野画像を含む広視野画像を取得する。
【0045】
220では、自己位置推定と環境マップ作成を同時に行う装置102はマルチ仮想ピンホールカメラモデルに基づいて、前記広視野画像に対応する歪み補正画像を取得することができる。
【0046】
広視野カメラ101が単眼広視野カメラである場合、自己位置推定と環境マップ作成を同時に行う装置102はマルチ仮想ピンホールカメラモデルに基づいて、前記広視野画像に対応する歪み補正画像を取得することができる。
【0047】
上記マルチ仮想ピンホールカメラモデルは少なくとも2つの異なる向きの仮想ピンホールカメラを含み、且つ前記少なくとも2つの異なる向きの仮想ピンホールカメラのカメラ中心は前記単眼広視野カメラのカメラ中心と重なる。
【0048】
広視野カメラ101が双眼広視野カメラである場合、自己位置推定と環境マップ作成を同時に行う装置102は第1マルチ仮想ピンホールカメラモデルに基づいて、前記左視野画像に対応する左歪み補正画像を取得し、第2マルチ仮想ピンホールカメラモデルに基づいて、前記右視野画像に対応する右歪み補正画像を取得する。前記第1マルチ仮想ピンホールカメラモデルと前記第2マルチ仮想ピンホールカメラモデルは同じであってもよく、異なってもよい。
【0049】
上記第1マルチ仮想ピンホールカメラモデルは少なくとも2つの異なる向きの仮想ピンホールカメラを含み、前記少なくとも2つの異なる向きの仮想ピンホールカメラのカメラ中心は広視野カメラ101の左眼のカメラ中心と重なるようにしてもよく、上記第2マルチ仮想ピンホールカメラモデルは少なくとも2つの異なる向きの仮想ピンホールカメラを含み、前記少なくとも2つの異なる向きの仮想ピンホールカメラのカメラ中心は広視野カメラ101の右眼のカメラ中心と重なるようにしてもよい。
【0050】
例として、図3は本発明のいくつかの実施例による2つの向きを含むマルチ仮想ピンホールカメラモデルを示す。2つの仮想ピンホールカメラの向きは90°の夾角をなし、且つカメラ中心は広視野カメラのカメラ中心とC点で重なる。
【0051】
例として、図4は本発明のいくつかの実施例による5つの向きを含むマルチ仮想ピンホールカメラモデルを示す。図示するように、該マルチ仮想ピンホールカメラモデルはキューブの前向き、上向き、下向き、左向き及び右向きの計5つの向きの仮想ピンホールカメラを含む。5つの仮想ピンホールカメラのカメラ中心は広視野カメラのカメラ中心とC点で重なる。このとき、上記歪み補正方法は、キューブマップに基づく歪み補正方法(cubemap-based undistortion method)(以下、Cube又はキューブモデルと略称する)と呼ばれる。
【0052】
具体的には、自己位置推定と環境マップ作成を同時に行う装置102は広視野画像(又は左視野画像、右視野画像)をマルチ仮想ピンホールカメラモデル(又は第1マルチ仮想ピンホールカメラモデル、第2マルチ仮想ピンホールカメラモデル)に投影し、少なくとも2つの異なる向きの仮想ピンホールカメラの投影図を取得し、前記少なくとも2つの異なる向きの仮想ピンホールカメラの投影図を展開すると、前記左魚眼画像に対応する歪み補正画像を取得することができる。
【0053】
図5に示すように、本発明のいくつかの実施例によるマルチ仮想ピンホールカメラモデルに基づいて歪み補正を行う模式図である。以下、第1マルチ仮想ピンホールカメラモデル及び左視野画像を例とする。
【0054】
点Aは双眼広視野カメラの左眼のカメラ中心、点B、点C及び点Dは左視野画像中の例示的な画素である。第1マルチ仮想ピンホールカメラ510はキューブモデルであり、5つの向きの仮想ピンホールカメラを含み、それぞれキューブの前向き、上向き、下向き、左向き及び右向きである。前記5つの向きの仮想ピンホールカメラのカメラ中心は点Aで重なる。
【0055】
図示するように、左視野画像を第1マルチ仮想ピンホールカメラモデル510の5つの異なる向きの仮想ピンホールカメラのイメージング平面に投影する。それに対応して、5つの異なる向きの投影図を取得する。前記5つの異なる向きの投影図を展開すると、左歪み補正画像を取得する。
【0056】
図6に示すように、本発明のいくつかの実施例による原単眼魚眼画像、従来の歪み補正後の単眼魚眼画像及び本開示の方法による歪み補正後の単眼魚眼画像を示す。
【0057】
図610は単眼魚眼カメラによって取得された広視野画像である。図示からわかるように、該広視野画像は普通のカメラによって取得された画像よりも広視野があるが、全画像に空間の歪みが存在し、画像の中心から離れるほご、歪みが大きい。
【0058】
図620は従来の歪み補正方法によって該広視野画像に対して歪み補正処理を行って取得された歪み補正画像である。普通のカメラによって取得された画像の画角は一般には約80°であるが、図620の画角は100°である。普通のカメラによって取得された画像の画角よりも拡大したが、歪み補正処理前の画像に比べて多くの画角が損失してしまう。従って、広視野画像を含むすべての画角のマップを作成できない。
【0059】
図630は本発明の一実施例による5つの向きのマルチ仮想ピンホールカメラモデル基づく歪み補正後に展開された広視野歪み補正画像であり、すなわち、キューブモデルによって取得された歪み補正画像である。図示するように、図630は広視野画像のすべての画角を保持する。該広視野歪み補正画像に基づいてSLAMを行うことによって、元のすべての画角コンテンツを含むマップを作成できる。
図7は本発明のいくつかの実施例による原双眼魚眼画像及び従来の歪み補正後の双眼魚眼画像を示す。
【0060】
図示するように、画像701及び画像702はそれぞれ広視野カメラ101によって実世界で取得された原左魚眼画像及び右魚眼画像である。画像703及び画像704はそれぞれ従来の歪み補正後の左歪み補正画像及び右歪み補正画像である。
【0061】
キューブモデルによって処理された左歪み補正画像及び右歪み補正画像(図示せず)との比較として、画像601及び画像602から従来の歪み補正方法によって取得された単一画像は、画像の縦方向と横方向の画角がともに100°だけである。以上からわかるように、広視野カメラ101によって取得された広視野画像に対し、本発明に係る歪み補正方法は広視野を保持するとともに、画像歪みを効果的に防止することができる。
【0062】
230では、自己位置推定と環境マップ作成を同時に行う装置102は前記歪み補正画像に基づいて、前記広視野カメラの位置姿勢を決定し、マップを作成する。
【0063】
いくつかの実施例では、単眼広視野カメラの場合、自己位置推定と環境マップ作成を同時に行う装置102は歪み補正画像の特徴点を抽出し、抽出された特徴点に基づいて対応する広視野フレームを作成し、次に前記広視野フレームに基づいて、単眼広視野カメラの位置姿勢を決定し、マップを作成することができる。
【0064】
好ましくは、広視野歪み補正画像の特徴点、すなわち、広視野歪み補正画像のキーポイント及び記述子を抽出することによって、広視野歪み補正画像の特徴点に基づいて、カメラの動きの位置姿勢を追跡し、マップを作成する。好ましくは、キーポイント及び記述子を計算せずに、直接広視野歪み補正画像中の画素輝度情報に基づいてカメラの動きの位置姿勢を推定し、マップを作成する。
【0065】
上記マルチ仮想ピンホールカメラモデルに基づく歪み補正方法によって取得された広視野歪み補正画像は原広視野画像のすべての画角を保持する。それにより、広視野画像間の豊富な共有特徴に基づいて自己位置推定と環境マップ作成を同時に行うことができ、より効率的な自己位置推定及びより正確なマップを取得できる。それと同時に、上記方法によって、さらに広視野カメラの複雑な投影モデルによるシステムの計算コストの増加を回避できる。
【0066】
いくつかの実施例では、双眼広視野カメラの場合、自己位置推定と環境マップ作成を同時に行う装置102は左歪み補正画像及び右歪み補正画像の特徴点を抽出し、抽出された特徴点に基づいて対応する双眼画像フレームを作成し、次に、前記双眼画像フレームに基づいて双眼広視野カメラの位置姿勢を決定し、マップを作成することができる。
【0067】
広視野フレーム(又は双眼画像フレーム)に歪み補正画像(又は左歪み補正画像、右歪み補正画像)中のすべての特徴点の情報が含まれるため、それによって広視野カメラ101の動きの位置姿勢を追跡し、マップを作成することができる。
【0068】
例として、自己位置推定と環境マップ作成を同時に行う装置102は上記歪み補正画像(又は左歪み補正画像、右歪み補正画像)を拡大縮小し、該歪み補正画像(又は左歪み補正画像、右歪み補正画像)に対応する画像ピラミッド(Image Pyramid)を取得する。該画像ピラミッドの各スケール画像からコーナーを抽出し記述子を計算する。画像の特徴点が前記コーナー及び記述子で構成される。前記コーナーは、画像中の認識度が高くて代表性がある領域であり、特徴点の画像における位置情報を示すためのものである。記述子はベクトルで示してもよく、コーナーの周囲画素の情報を記述するためのものである。記述子は、外観が類似する特徴点に、類似する記述子を付与するように設計されてもよい。
【0069】
歪み補正画像(又は左歪み補正画像、右歪み補正画像)に対してその特徴点を抽出し、抽出された特徴点に基づいて対応する広視野フレーム(又は双眼画像フレーム)を作成する。該広視野フレーム(又は双眼画像フレーム)は対応する歪み補正画像(又は左歪み補正画像、右歪み補正画像)中のすべての特徴点を含む。広視野フレーム(又は双眼画像フレーム)の作成完了後、該広視野フレーム(又は双眼画像フレーム)に対応する歪み補正画像(又は左歪み補正画像、右歪み補正画像)の画素データを破棄し、それにより保存領域を節約し、システムの電力消費量を低減させる。
ステップ230についての更なる説明は図8及びその関連説明を参照すればよい。
【0070】
なお、広視野カメラ101が双眼広視野カメラであ場合、双眼広視野カメラの左眼と右眼の光軸は平行ではない可能性がある。従って、プロセス200は、広視野カメラ101の左眼と右眼の光軸を平行にするステップをさらに含んでもよい。例えば、自己位置推定と環境マップ作成を同時に行う装置102は双眼カメラ補正プログラムによって双眼魚眼カメラの左眼と右眼の仮想光軸を平行に調整することができる。
【0071】
図8は本発明のいくつかの実施例によるカメラの位置姿勢特定及びマップ作成のフローチャートを示す。プロセス230は自己位置推定と環境マップ作成を同時に行う装置102中の非一時的な記憶媒体における一組命令として実施されてもよい。自己位置推定と環境マップ作成を同時に行う装置102は該一組命令を実行し、それに対応してプロセス200のステップを実行することができる。
【0072】
以下、説明されるプロセス230の操作は単に説明を目的とし、限定的なものではない。いくつかの実施例では、プロセス230は実現時、説明されていない1つ又は複数の操作を追加し、及び/又はここで説明される1つ又は複数の操作を削除することができる。また、図8に示される後述される操作の順序を限定しない。
【0073】
810では、自己位置推定と環境マップ作成を同時に行う装置102は初期化ステップを実行することができ、前記初期化ステップでは、初期マップを作成することができる。
【0074】
単眼広視野カメラの場合、自己位置推定と環境マップ作成を同時に行う装置102は2つの異なる時点における歪み補正画像(又は広視野フレーム)を取得し、前記2つの異なる時点における歪み補正画像(又は広視野フレーム)の互いにマッチングする特徴点を決定し、前記互いにマッチングする特徴点に基づいて初期マップを作成することができる。
【0075】
例として、自己位置推定と環境マップ作成を同時に行う装置102は第1時点に対応する歪み補正画像(又は広視野フレーム)と第2時点に対応する歪み補正画像(又は広視野フレーム)を取得し、前記第1時点に対応する歪み補正画像(又は広視野フレーム)と前記第2時点に対応する歪み補正画像(又は広視野フレーム)の互いにマッチングする特徴点を決定し、前記互いにマッチングする特徴点に基づいて初期マップを作成することができる。
【0076】
いくつかの実施例では、第1時点に対応する広視野フレームと第2時点に対応する広視野フレームは現在の広視野フレームと基準広視野フレームであってもよい。前記現在の広視野フレームと基準広視野フレームは連続フレームであってもよく、それらの間に1つ又は複数の間隔フレームがあってもよい。初期化をスムーズに行うことを確保するように、現在の広視野フレームと基準広視野フレームの間に所定の視差を必要とする。
【0077】
いくつかの実施例では、自己位置推定と環境マップ作成を同時に行う装置102はマルチ仮想ピンホールカメラモデル(例えば、図4に示されるマルチ仮想ピンホールカメラモデル)に基づいて、第1時点に対応する歪み補正画像(又は広視野フレーム)と第2時点に対応する歪み補正画像(又は広視野フレーム)を、それぞれ各仮想ピンホールカメラに対応するサブ視野フレームに分解することができる。それにより各仮想ピンホールカメラに、それに対応する2つのサブ視野フレームを取得し、これら2つのサブ視野フレームはそれぞれ第1時点に対応する歪み補正画像(又は広視野フレーム)及び第2時点に対応する歪み補正画像(又は広視野フレーム)の由来である。これら2つのサブ視野フレームに対してフレーム間マッチングを行うことで、互いにマッチングする特徴点を決定する。
【0078】
いくつかの実施例では、互いにマッチングする特徴点に基づいて初期マップを作成することは、前記第1時点に対応する歪み補正画像中の特徴点及び前記第1時点における前記広視野カメラのカメラ中心に基づいて、第1特徴点に対応する方向ベクトルを決定するステップと、前記第2時点に対応する歪み補正画像中のマッチングする特徴点及び前記第2時点における前記広視野カメラのカメラ中心に基づいて、第2特徴点に対応する方向ベクトルを決定するステップと、前記第1特徴点に対応する方向ベクトル及び前記第2特徴点に対応する方向ベクトルに三角測量を行い、前記特徴点に対応するマップ点を決定するステップと、前記マップ点に基づいて初期マップを作成するステップと、を含む。
【0079】
具体的には、自己位置推定と環境マップ作成を同時に行う装置102は基準広視野フレームF1を該マルチ仮想ピンホールカメラモデルに基づいて、それぞれ各仮想ピンホールカメラに対応するサブ視野フレームF11、F12、F13、F14及びF15に分解し、現在の広視野フレームF2も該マルチ仮想ピンホールカメラモデルに基づいて、それぞれ各仮想ピンホールカメラに対応するサブ視野フレームF21、F22、F23、F24及びF25に分解する。ここで、サブ視野フレームF11及びF21は前向きの仮想ピンホールカメラに対応し、サブ視野フレームF12及びF22は上向きの仮想ピンホールカメラに対応し、サブ視野フレームF13及びF23は下向きの仮想ピンホールカメラに対応し、サブ視野フレームF14及びF24は左向きの仮想ピンホールカメラに対応し、サブ視野フレームF15及びF25は右向きの仮想ピンホールカメラに対応する。サブ視野フレームF11及びF21、F12及びF22、F13及びF23、F14及びF24、並びにF15及びF25に対してフレーム間マッチングを行うことで、現在の広視野フレームと基準広視野フレームの互いにマッチングする特徴点を決定するここで、サブ視野フレームのマッチングは2つの視野フレームの互いにマッチングする特徴点を決定し、さらに方向ベクトルに基づいて三角測量を行うことで新たなマップ点を作成する
以下、サブ視野フレームF11及びF21を例にフレーム間マッチングを説明する。
【0080】
まず、サブ視野フレームF11及びF21の特徴点をマッチングし、マッチングする特徴点ペアの数が初期化閾値以上であるか否かを検出し、初期化閾値未満であると、初期化が失敗する。マッチングする特徴点ペアの数が初期化閾値を超える場合、例えば、ランダムサンプルコンセンサスアルゴリズム(Random Sample Consensus、RANSACと略称する)を用いて、マッチングする特徴点ペアの方向ベクトルに基づいて、2つのフレーム間のエッセンシャル(Essential)行列を計算する。初期化閾値は初期マップを作成することに必要な最小限の特徴点ペアの数を示し、直接デフォルト値、例えば100を使用してもよく、ユーザーによって予め設定されてもよい。
【0081】
次に、エッセンシャル行列を分解して現在の広視野フレームと基準広視野フレームとの相対位置姿勢を取得し、前記相対位置姿勢は位置姿勢行列で示され得る。現在の広視野フレームと基準広視野フレームとの相対位置姿勢に基づいて、マッチングする特徴点ペアに三角測量を行い、該特徴点ペアに対応するマップ点の三次元座標、すなわちマップ点の位置を取得する。
【0082】
図9に示すように、O1点はサブ視野フレームF11に対応する仮想ピンホールカメラのカメラ中心、O2点はサブ視野フレームF12に対応する仮想ピンホールカメラのカメラ中心、p1とp2はマッチングする特徴点である。ベクトルO1p1の方向とベクトルO2p2の方向によって、マップ点の三次元座標、すなわちP点の位置を決定できる。SLAMでは、ノイズの影響によって、ベクトルO1p1とベクトルO2p2が交差しない可能性があり、この場合、例えば、最小二乗法で誤差を最小にするP点の座標を求める。O1とO2の間の距離は三角測量の誤差に大きな影響を与える。距離が小さすぎ、つまり、カメラのシフトが小さすぎる場合、P点で観測される角度誤差は大きな深度誤差につながる。一方、距離が大きすぎる場合、シーンの重畳部分が大幅に減少し、特徴マッチングが困難になる。従って、現在の広視野フレームと基準広視野フレームの間に所定の視差を必要とする。選択された2つの広視野フレームがこの要件を満たさないと、初期化が失敗し、これら2つの広視野フレームを破棄し、再初期化を行う。
【0083】
最後に、上記三角測量に基づいてマップ点の三次元座標を取得し初期マップ点を作成する。該三次元座標をマップ点の座標とし、該三次元座標に対応する特徴点の記述子をマップ点の記述子とする。
【0084】
双眼広視野カメラの場合、自己位置推定と環境マップ作成を同時に行う装置102は上記単眼広視野カメラの初期化ステップを実行してもよく、同一時点における左歪み補正画像と右歪み補正画像の互いにマッチングする特徴点に基づいて初期マップを作成してもよい。
【0085】
例として、自己位置推定と環境マップ作成を同時に行う装置102は左歪み補正画像と右歪み補正画像の互いにマッチングする特徴点を決定し、前記互いにマッチングする特徴点に基づいて初期マップを作成することができる。
【0086】
いくつかの実施例では、自己位置推定と環境マップ作成を同時に行う装置102は、右歪み補正画像における左歪み補正画像中の特徴点に対応する極線を決定し、次に、前記極線上で前記左歪み補正画像中の特徴点にマッチングする特徴点を検索することができる。前記極線は多線分折れ線である。
【0087】
図10に示すように、本発明のいくつかの実施例による双眼広視野カメラの極線検索の模式図である。左歪み補正画像1010に極線1001を有し、右歪み補正画像1020に極線1002を有する。左歪み補正画像1010の特徴点にマッチングする特徴点は必ず極線1002にある。一方、右歪み補正画像1020の特徴点にマッチングする特徴点は極線1001にある。従って、極線検索によって、左歪み補正画像と右歪み補正画像の互いにマッチングする特徴点を素早くに見つけることができる。
図示するように、極線1001と極線1002は3線分折れ線であり、2本の傾斜した線分及び1本の水平線分を含む。
【0088】
図示するように、左歪み補正画像1010と右歪み補正画像1020はそれぞれ左魚眼画像と右魚眼画像のすべての画角を保持する。左歪み補正画像1010と右歪み補正画像1020に基づいて自己位置推定と環境マップ作成を同時に行うことによって、元のすべての画角コンテンツを含むマップを作成することができる。
【0089】
いくつかの実施例では、上記した前記互いにマッチングする特徴点に基づいてマップを作成することは、まず、左歪み補正画像中の特徴点及び広視野カメラ101の左眼のカメラ中心に基づいて、第1特徴点に対応する方向ベクトルを決定し、次に、右歪み補正画像中のマッチングする特徴点及び広視野カメラ101の右眼のカメラ中心に基づいて、第2特徴点に対応する方向ベクトルを決定し、さらに、前記双眼魚眼カメラの基線に基づいて、前記第1特徴点に対応する方向ベクトル及び前記第2特徴点に対応する方向ベクトルに三角測量を行い、前記特徴点に対応するマップ点を決定し、最後に、前記マップ点に基づいてマップを作成するステップを含む。
【0090】
図11に示すように、本発明のいくつかの実施例による双眼広視野カメラのマップ点作成の模式図である。以下、広視野カメラ101の前方のマップ点を例とする。
【0091】
点O1は広視野カメラ101の左眼のカメラ中心であり、左歪み補正画像中の特徴点と点O1を結んで第1特徴点に対応する方向ベクトルを取得する。点O2は広視野カメラ101の右眼のカメラ中心であり、右歪み補正画像中のマッチングする特徴点と点O2を結んで第2特徴点に対応する方向ベクトルを取得する。いくつかの実施例では、第1特徴点に対応する方向ベクトル及び第2特徴点に対応する方向ベクトルは単位化後のベクトルである。
【0092】
前記第1特徴点に対応する方向ベクトルと前記第2特徴点に対応する方向ベクトルが点Eで交差し、それぞれ線分O1Eと線分O2Eを取得する。点O1と点O2を結んで線分O1O2を取得し、線分O1O2の長さがb(すなわち、広視野カメラ101の基線)である。線分O1O2と線分O1Eと線分O2Eとが三角形を形成する。前記三角形を解いて、線分O1Eの長さをd1、線分O2Eの長さをd2、O1O2と線分O1Eとの夾角をα1、O1O2と線分O2Eとの夾角を と取得しα2、さらに特徴点に対応するマップ点Eの座標を取得する。さらに、広視野カメラ101の現在の位置姿勢に合わせて、マップ点Eを広視野カメラ101の座標系から世界座標系に変換する。次に、世界座標系中の点Eの位置に基づいてマップを作成する。
【0093】
具体的には、自己位置推定と環境マップ作成を同時に行う装置102は以下の式に基づいて三角測量を行う。まず正弦・余弦定理に基づいて式(1)、(2)及び(3)を取得する。
【0094】
いくつかの実施例では、単眼広視野カメラと双眼広視野カメラによって新たに作成されたマップ点に対して、さらに関連付け処理を行う必要がある。1つのマップ点は複数のキー広視野フレームによって観測でき、このマップ点を観測したキー広視野フレームをこのマップ点に関連付けると同時に、このマップ点に関連付けられたキー広視野フレーム上の特徴点、すなわち、このマップ点を取得するように測量に適用できる特徴点を記録する。上記初期化によって取得されたマップ点に対して、初期化によって作成された2つのキー広視野フレームを関連付ける必要があると同時に、該マップ点に関連付けられたこれらの2つのキー広視野フレーム上の特徴点を記録する。
作成された初期マップは、上記2つのキー広視野フレーム及び上記初期マップ点、並びにそれらの関連付け関係の情報を含む。
【0095】
いくつかの実施例では、初期化ステップは、マッチングする特徴点ペアの数が初期化閾値を超える場合、上記2つのキー広視野フレームに基づいて、単語の袋(Bag of Word)モデルに基づくベクトルを作成し、前記単語の袋モデルに基づくベクトルをマップデータベースに追加するステップをさらに含む。単語の袋モデルにおいて、各種の画像特徴に基づいてクラスタリングする。例えば、目、鼻、耳、口、各種の特徴のエッジ及び角等は異なる特徴クラスである。10000クラスがあるとすると、各々の広視野フレームに対して、含まれるクラスを分析し、有りは1で示され、無しは0で示される。この場合、この広視野フレームは1つの10000次元のベクトルで表現できる。異なる広視野フレームに対して、それらの単語の袋モデルに基づくベクトルを比較してそれらの類似度を判断できる。前記マップデータベースはキー広視野フレームに基づいて作成された単語の袋モデルに基づくベクトルを格納するために用いられる。
【0096】
820では、自己位置推定と環境マップ作成を同時に行う装置102はグローバルバンドル最適化ステップを実行することができる。グローバルバンドル最適化は、SLAMによって現在作成されているマップ(以下、現在のマップと略称する)中のすべてのキー広視野フレーム(又はキー双眼画像フレーム)及びすべてのマップ点を最適化する。例えば、ステップ810で作成された初期マップに対してグローバルバンドル最適化を行うことは、上記2つのキー広視野フレーム及びマップ点のみを有するマップに対してグローバルバンドル最適化を行うことである。なお、初期マップを除き、マップ作成中の任意の時点において、該時点における現在のマップに対して該グローバルバンドル最適化を実行してもよい。バンドル最適化は、マップ中のキー広視野フレーム(又はキー双眼画像フレーム)の位置姿勢及びマップ点の位置を微調整し、SLAMによって作成されたマップ中のマップ点のキー広視野フレーム(又はキー双眼画像フレーム)における再投影誤差を最小化し、それにより作成されたマップを最適化することを目的とする。
【0097】
単眼広視野カメラの場合、自己位置推定と環境マップ作成を同時に行う装置102はマップ中のキー広視野フレームに関連付けられた各マップ点をマルチ仮想ピンホールカメラモデルに投影し、各マップ点の前記マルチ仮想ピンホールカメラモデルにおける再投影点を取得し、各マップ点の前記マルチ仮想ピンホールカメラモデルにおける再投影点及び該マップ点に対応する特徴点に基づいて、各マップ点の再投影誤差を決定し、すべての前記キー広視野フレームに関連付けられたマップ点の再投影誤差に基づいて再投影誤差を決定し、前記再投影誤差に基づいて、前記キー広視野フレームの位置姿勢及び前記キー広視野フレームに関連付けられたすべてのマップ点の位置を更新する。
【0098】
なお、本発明では、フレームの位置姿勢(例えば、キー広視野フレームの位置姿勢)は広視野カメラ101が該フレームを取得する時点における広視野カメラ101の動きの位置姿勢であり、簡潔にするために、フレームの位置姿勢と呼ぶ。
【0099】
図4に示される5つの向きのマルチ仮想ピンホールカメラモデルを例に、該マルチ仮想ピンホールカメラモデルに基づいて、マップ点を対応する仮想ピンホールカメラの座標系に変換し、例えば、該マップ点に対応する仮想ピンホールカメラは前向きの仮想ピンホールカメラであり、さらに該前向きの仮想ピンホールカメラのイメージング平面に投影して該マップ点の再投影点を取得する。ここで使用されるマルチ仮想ピンホールカメラモデルがステップ220で広視野画像歪み補正処理に使用されるマルチ仮想ピンホールカメラモデルと同じであるため、該イメージング平面は前向きの仮想ピンホールカメラに分解される該キー広視野フレームのサブ視野フレームに対応する。該再投影点は、該サブ視野フレームの位置姿勢に基づく該マップ点の観測値として理解され得る。該マップ点に関連付けられた該キー広視野フレーム上の特徴点(すなわち、三角測量によって該マップ点の根拠となる特徴点を取得する)及び該マップ点の再投影点に基づいて該マップ点の再投影誤差を決定する。SLAMによって作成されたマップに誤差がなくて理想的な場合、再投影誤差が0である。しかし、現実条件において測量誤差等の誤差が不可避的に発生するため、再投影誤差を完全に無くすことができず、SLAMは該再投影誤差を最小化することによって、作成されたマップを最適化する。
【0100】
双眼広視野カメラの場合、自己位置推定と環境マップ作成を同時に行う装置102はマップ中のキー双眼画像フレームに関連付けられた各マップ点を第1マルチ仮想ピンホールカメラモデルに投影し、前記マップ点の前記第1マルチ仮想ピンホールカメラモデルにおける再投影点を取得し、前記マップ点の前記第1マルチ仮想ピンホールカメラモデルにおける再投影点及び前記マップ点に対応する特徴点に基づいて、前記マップ点の再投影誤差を決定し、すべての前記キー双眼画像フレームに関連付けられたマップ点の再投影誤差に基づいて左再投影誤差を決定する。
【0101】
或いは、自己位置推定と環境マップ作成を同時に行う装置102は前記キー双眼画像フレームに関連付けられたマップ点を第2マルチ仮想ピンホールカメラモデルに投影し、前記マップ点の前記第2マルチ仮想ピンホールカメラモデルにおける再投影点を取得し、前記マップ点の前記第2マルチ仮想ピンホールカメラモデルにおける再投影点及び前記マップ点に対応する特徴点に基づいて、前記マップ点の再投影誤差を決定し、すべての前記キー双眼画像フレームに関連付けられたマップ点の再投影誤差に基づいて右再投影誤差を決定する。
【0102】
さらに、自己位置推定と環境マップ作成を同時に行う装置102は左再投影誤差、右再投影誤差又はそれらの和に基づいて、キー双眼画像フレームの位置姿勢及び前記キー双眼画像フレームに関連付けられたすべてのマップ点の位置を更新することができる。具体的には、単眼マップ点の場合、自己位置推定と環境マップ作成を同時に行う装置102は左再投影誤差又は右再投影誤差に基づいて、キー双眼画像フレームの位置姿勢及び双眼画像フレームに関連付けられたすべてのマップ点の位置を更新し、双眼マップ点の場合、自己位置推定と環境マップ作成を同時に行う装置102は左再投影誤差と右再投影誤差との和に基づいて、キー双眼画像フレームの位置姿勢及び双眼画像フレームに関連付けられたすべてのマップ点の位置を更新することができる。
【0103】
いくつかの実施例では、自己位置推定と環境マップ作成を同時に行う装置102は再投影誤差(例えば、左再投影誤差、右再投影誤差、左再投影誤差と右再投影誤差との和)に基づいて、損失関数を決定することができる。損失関数を取得した後、好ましくは、ガウスニュートン法(Gauss-Newton)、レーベンバーグ-マルカート法(Levenberg-Marquardt)等の勾配降下方法によって反復してキー広視野フレーム(又はキー双眼画像フレーム)の位置姿勢及びそれに関連付けられたマップ点の位置のそれぞれに対応する勾配を求め、それぞれに対応する勾配によってキー広視野フレーム(又はキー双眼画像フレーム)の位置姿勢及びそれに関連付けられたマップ点の位置を更新し、最終的に現在のマップを、再投影誤差が最小になる最適状態にする。
【0104】
上記バンドル最適化は広視野画像の歪み補正処理と同様なマルチ仮想ピンホールカメラモデルに基づいて、複雑な広視野カメラの投影モデルを複数の仮想ピンホールカメラ投影モデルに変換する。それにより広視野カメラの複雑な投影モデルによる複雑な最適化処理を回避し、それによりシステムの処理性能を向上させる。
【0105】
830では、自己位置推定と環境マップ作成を同時に行う装置102は追跡ステップを実行することができる。前記追跡ステップは現在の広視野フレーム(又は現在の双眼画像フレーム)におけるマップ点の再投影誤差を最小化することによって現在の広視野カメラの位置姿勢を最適化する。追跡ステップでは、現在の広視野カメラの位置姿勢のみを最適化し、ほかの時点における広視野カメラの位置姿勢及びマップ点の位置を維持する。ステップ830はマップ作成中の任意の時点において行われてもよく、例えば上記初期化ステップ810で作成された初期マップ又は上記グローバルバンドル最適化ステップ820で最適化されたマップに基づいて、SLAMは新たな広視野フレーム(又は双眼画像フレーム)によって広視野カメラの動きの位置姿勢を連続的に追跡する。
【0106】
単眼広視野カメラの場合、自己位置推定と環境マップ作成を同時に行う装置102は現在の広視野フレームに関連付けられた各マップ点をマルチ仮想ピンホールカメラモデルに投影し、前記マップ点の前記マルチ仮想ピンホールカメラモデルにおける再投影点を取得し、前記マップ点の前記マルチ仮想ピンホールカメラモデルにおける再投影点及び前記マップ点に対応する特徴点に基づいて、前記マップ点の再投影誤差を決定し、すべての前記現在の広視野フレームに関連付けられたマップ点の再投影誤差に基づいて再投影誤差を決定し、前記再投影誤差に基づいて、前記現在の広視野フレームの位置姿勢を更新する。
【0107】
いくつかの実施例では、自己位置推定と環境マップ作成を同時に行う装置102は以下の3つのサブステップを実行することによって追跡ステップを行うことができる。
追跡サブステップ1では、現在の広視野フレームの基準広視野フレームを決定する。
好ましくは、現在の広視野フレームの1つ前の広視野フレームを基準広視野フレームとして決定する。
【0108】
好ましくは、ローカルマップ中の、現在の広視野フレームとの共通視野程度が最も高いキー広視野フレームを基準広視野フレームとして選択する。現在のマップ中のキー広視野フレームの数がN(Nは2より大きい整数)未満の場合、ローカルマップは現在のマップ中のすべてのキー広視野フレーム及びすべてのマップ点を含む。Nは直接デフォルト値、例えば10を使用してもよく、ユーザーによって予め設定されてもよい。現在のマップが初期化によって取得されたマップであると、ローカルマップは現在のマップであり、初期の2つのキー広視野フレーム及びそれに関連付けられたマップ点を含む。現在のマップ中のキー広視野フレームの数がN以上の場合、ローカルマップは現在のマップ中の、現在の広視野フレームとの共通視野程度が最も高い少なくともN個のキー広視野フレーム及び前記少なくともN個のキー広視野フレームに関連付けられたマップ点を含む。
【0109】
好ましくは、ローカルマップ中の、現在の広視野フレームの1つ前の広視野フレームとの共通視野程度が最も高いキー広視野フレームを基準広視野フレームとして選択する。現在の広視野フレームとその1つ前の広視野フレームとの共通視野程度が一般的に高いため、後者に基づいて現在の広視野フレームの基準広視野フレームを選択できる。作成直後の現在の広視野フレームとの共通視野程度が最も高いキー広視野フレームに比べて、その1つ前の広視野フレームとの共通視野程度が最も高いキー広視野フレームのほうは選択しやすい。それにより、SLAM方法をスムーズに実現することに有利である。
【0110】
好ましくは、グローバルマッチングによって基準広視野フレームを決定する。まず、現在の広視野フレームに基づいて、単語の袋モデルに基づくベクトルを作成する。次に、該単語の袋モデルに基づくベクトルに基づいて、初期化ステップ810で作成されたマップデータベースを照会し、現在の広視野フレームにマッチングするキー広視野フレームを、基準広視野フレームとして取得する。
【0111】
一例では、現在の広視野フレームとその1つ前の広視野フレームとをマッチングし、マッチングする特徴点ペアを取得する。マッチングする特徴点ペアの数が追跡閾値より大きい場合、現在の広視野フレームの1つ前の広視野フレームを基準広視野フレームとして決定する。追跡閾値は広視野カメラの位置姿勢追跡に必要な最小限の特徴点ペアの数を示し、直接デフォルト値、例えば20を使用してもよく、ユーザーによって予め設定されてもよい。
【0112】
現在の広視野フレームとその1つ前の広視野フレームとのマッチングする特徴点ペアの数が追跡閾値以下である場合、ローカルマップ中の、現在の広視野フレーム又はその前1つの広視野フレームとの共通視野程度が最も高いキー広視野フレームを選択して、現在の広視野フレームと該キー広視野フレームとをマッチングし、マッチングする特徴点ペアを取得する。マッチングする特徴点ペアの数が追跡閾値より大きい場合、該キー広視野フレームを基準広視野フレームとして決定する。
【0113】
現在の広視野フレームと該キー広視野フレームとのマッチングする特徴点ペアの数が追跡閾値以下である場合、グローバルマッチングによって基準広視野フレームを決定する。具体的な決定プロセスは上述した通りであり、簡潔にするために、ここでは重複説明を省略する。
それにより、現在の広視野フレームの参照性がより高い基準広視野フレームを取得でき、SLAM追跡がさらに正確になり、マップ作成も効率的になる。
【0114】
追跡サブステップ2では、現在の広視野フレーム及び上記決定された基準広視野フレームによって、マルチ仮想ピンホールカメラモデルに基づいて現在の広視野フレームの位置姿勢を決定する。一例では、現在の広視野フレームと基準広視野フレームとの相対位置姿勢を決定することで、現在の広視野フレームの位置姿勢を決定する。
【0115】
マルチ仮想ピンホールカメラモデルに基づいて、現在の広視野フレームを、それぞれ各仮想ピンホールカメラに対応するサブ視野フレームに分解し、基準広視野フレームにも同様な操作を実行する。それにより、各仮想ピンホールカメラに、それに対応する2つのサブ視野フレームを取得する。それぞれ異なる仮想ピンホールカメラに対応するサブ視野フレームペアのうち、マッチングする特徴点ペアの数が最も多いサブ視野フレームペアを選択する。該サブ視野フレームペア中の2つのサブ視野フレームにフレーム間マッチングを行うことで、それらの相対位置姿勢を取得する。具体的なサブ視野フレームのフレーム間マッチングプロセスは初期化ステップ810におけるフレーム間マッチング処理と同じであるため、簡潔にするために、ここでは重複説明を省略する。
【0116】
各仮想ピンホールカメラのカメラ中心が広視野カメラのカメラ中心と重なるため、マルチ仮想ピンホールカメラモデル中の各仮想ピンホールカメラと広視野カメラとの間に一定の回転角度が存在する。各仮想ピンホールカメラの回転角度は1つの確定した回転行列に対応する。それにより、広視野フレームの位置姿勢行列は対応する回転行列でサブ視野フレームの位置姿勢行列に変換することができる。一方、サブ視野フレームの位置姿勢行列も対応する回転行列で広視野フレームの位置姿勢行列に変換できる。
【0117】
上記技術案はマルチ仮想ピンホールカメラモデルによって、複雑な広視野カメラ投影モデルに基づく位置姿勢取得を、シンプルな仮想ピンホールカメラ投影モデルに基づく位置姿勢取得に変換することで、広視野SLAMのアルゴリズムを大幅に簡略化し、性能を大幅に向上させる。
追跡サブステップ3では、上記追跡サブステップ2で取得された現在の広視野フレームの位置姿勢を更新する。
【0118】
現在の広視野フレームと基準広視野フレームとのマッチングする特徴点ペアによって、基準広視野フレーム中のマッチングする各特徴点に対して、マルチ仮想ピンホールカメラモデルに基づいて、該特徴点に関連付けられたマップ点を、現在の広視野フレームの、対応する仮想ピンホールカメラの座標系に変換する。次に、該マップ点を該仮想ピンホールカメラのイメージング平面に投影して、該マップ点の現在の広視野フレームにおける再投影点を取得する。
【0119】
一例では、現在の広視野フレームと基準広視野フレームとの間に大きな視差がある。図4に示される5つの向きのマルチ仮想ピンホールカメラモデルに基づいて処理を行う。基準広視野フレーム中の特定のマッチングする特徴点が左向きの仮想ピンホールカメラのイメージング平面上にある。該特徴点に関連付けられたマップ点をマルチ仮想ピンホールカメラモデルに基づいて変換した後、現在の広視野フレームの前向きの仮想ピンホールカメラの座標系に対応付ける。現在の広視野フレームの前向きの仮想ピンホールカメラのイメージング平面上で該マップ点の再投影点を取得する。なお、基準広視野フレームの位置姿勢でマルチ仮想ピンホールカメラモデル中の左向きの仮想ピンホールカメラによって該マップ点を観察でき、現在の広視野フレームの位置姿勢でマルチ仮想ピンホールカメラモデル中の前向きの仮想ピンホールカメラによって該マップ点を観察できる。
【0120】
該再投影点と現在の広視野フレーム中のマッチングする特徴点に基づいて、該マップ点の再投影誤差を決定する。基準広視野フレーム中のすべてのマッチングする特徴点に関連付けられたマップ点の再投影誤差に基づいて、現在の広視野フレームの位置姿勢を更新する。本ステップにおける再投影誤差計算及び再投影誤差に基づいて現在の広視野フレームの位置姿勢を更新する処理はステップ820におけるグローバルバンドル最適化の処理方法と同じであるため、簡潔にするために、ここでは重複説明を省略する。
【0121】
現在の広視野フレームの位置姿勢をさらに最適化して更新することで、現在の広視野フレームの位置姿勢の信頼度を向上させ、追跡誤差を減少させる。それによりSLAM追跡がさらに正確になり、マップ作成がさらに効率的になる。
【0122】
双眼広視野カメラの場合、自己位置推定と環境マップ作成を同時に行う装置102は現在の双眼画像フレームに関連付けられた各マップ点を第1マルチ仮想ピンホールカメラモデルに投影し、前記マップ点の前記第1マルチ仮想ピンホールカメラモデルにおける再投影点を取得でき、前記マップ点の前記第1マルチ仮想ピンホールカメラモデルにおける再投影点及び前記マップ点に対応する特徴点に基づいて、前記マップ点の再投影誤差を決定し、すべての前記現在の双眼画像フレームに関連付けられたマップ点の再投影誤差に基づいて左再投影誤差を決定することができる。
【0123】
或いは、自己位置推定と環境マップ作成を同時に行う装置102は前記マップ点を第2マルチ仮想ピンホールカメラモデルに投影し、前記マップ点の前記第2マルチ仮想ピンホールカメラモデルにおける再投影点を取得でき、前記マップ点の前記第2マルチ仮想ピンホールカメラモデルにおける再投影点及び前記マップ点に対応する特徴点に基づいて、前記マップ点の再投影誤差を決定し、すべての前記現在の双眼画像フレームに関連付けられたマップ点の再投影誤差に基づいて右再投影誤差を決定することができる。
【0124】
さらに、自己位置推定と環境マップ作成を同時に行う装置102は左再投影誤差、右再投影誤差又はそれらの和に基づいて、現在の双眼画像フレームの位置姿勢を更新することができる。例えば、単眼マップ点の場合、自己位置推定と環境マップ作成を同時に行う装置102は左再投影誤差又は右再投影誤差に基づいて、現在の双眼画像フレームの位置姿勢を更新でき、双眼マップ点の場合、自己位置推定と環境マップ作成を同時に行う装置102は左再投影誤差と右再投影誤差との和に基づいて、現在の双眼画像フレームの位置姿勢を更新することができる。
【0125】
具体的には、自己位置推定と環境マップ作成を同時に行う装置102は左再投影誤差、右再投影誤差、又は左再投影誤差と右再投影誤差との和を求めて広視野カメラ101の位置姿勢増分を決定し、次に、事前情報に合わせて、広視野カメラ101の現在の位置姿勢を決定することができる。
【0126】
いくつかの実施例では、上記事前情報は前1つのフレーム広視野カメラ101の位置姿勢、又は1つ前のフレーム広視野カメラ101の位置姿勢と1つ前のフレーム位置姿勢増分との和であってもよい。前記1つ前のフレーム位置姿勢増分は2つ前のフレーム広視野カメラ101の位置姿勢に対する1つ前のフレーム広視野カメラ101の位置姿勢の位置姿勢増分である。
【0127】
いくつかの実施例では、自己位置推定と環境マップ作成を同時に行う装置102は以下の複数の式によって左投影誤差及び/又は右投影誤差を計算し、位置姿勢増分を求める。式(7)は以下の通りである。
【0128】
【0129】
式中、P2はマルチ仮想ピンホールカメラモデルの座標系におけるマップ点Pの投影点、P1は前記マルチ仮想ピンホールカメラモデルの1つの面の座標系における点P2の投影点を示す。
従って、チェーンルールによってuからカメラ位置姿勢までのヤコビ行列を導出できる。式(9)に示される。
【0130】
広視野カメラ101に対して、自己位置推定と環境マップ作成を同時に行う装置102は式(7)、(8)、(9)及び(10)に基づいて広視野カメラ101の左再投影誤差を決定し、広視野カメラ101の位置姿勢を決定することができる。
【0131】
なお、同様な原理に基づいて、自己位置推定と環境マップ作成を同時に行う装置102は広視野カメラ101の右再投影誤差を決定し、次に、前記右再投影誤差又は左再投影誤差と右再投影誤差との和に基づいて、広視野カメラ101の位置姿勢を決定することができる。
【0132】
【0133】
840では、自己位置推定と環境マップ作成を同時に行う装置102はマップ作成ステップ(又はマップ更新ステップと呼ばれる)を実行することができる。マップ作成ステップでは、現在のマップをもとに、広視野カメラの動きに伴ってマップを拡張する。換言すれば、マップ作成ステップでは、新たなマップ点を現在のマップに挿入する。好ましくは、マップ作成ステップ840は追跡ステップ830の後に行われ、現在の広視野フレーム(又は現在の双眼画像フレーム)に対して、追跡ステップ830でその位置姿勢を決定し、すなわち、現在の時点における広視野カメラの動きの位置姿勢を決定することができる。
【0134】
単眼広視野カメラの場合、自己位置推定と環境マップ作成を同時に行う装置102は現在の広視野フレーム及びその基準フレームの互いにマッチングする特徴点を決定し、前記現在の広視野フレームの特徴点及び現在の前記広視野カメラのカメラ中心に基づいて、第1特徴点に対応する方向ベクトルを決定でき、前記基準フレームのマッチングする特徴点及び前記基準フレームに対応する前記広視野カメラのカメラ中心に基づいて、第2特徴点に対応する方向ベクトルを決定し、前記第1特徴点に対応する方向ベクトル及び前記第2特徴点に対応する方向ベクトルに三角測量を行い、前記特徴点に対応するマップ点を決定し、前記マップ点に基づいてマップを作成する。
いくつかの実施例では、自己位置推定と環境マップ作成を同時に行う装置102は、3つのサブステップを実行してマップ作成ステップを行うことができる。
マップ作成サブステップ1では、現在の広視野フレームがキー広視野フレームであるか否かを決定する。
【0135】
広視野カメラが連続的に動いてデータを収集するため、取得された各広視野フレームにマップ更新操作を行うことは膨大な計算量をもたらす。従って、いくつかの重要な広視野フレームをキー広視野フレームとして選択し、さらにキー広視野フレームに基づいてマップ更新操作を行うようにしてもよい。キー広視野フレームの決定は任意の公知技術の又は将来開発される技術を採用できる。例えば、初期キー広視野フレームに基づいて、10個の広視野フレームごとに1個をキー広視野フレームとして選択する。すなわち、11番目、21番目、31番目…をキー広視野フレームとして選択する。また、例えば、1つ前のキー広視野フレームとは適切な視差を有する広視野フレームをキー広視野フレームとして選択する。
【0136】
現在の広視野フレームがキー広視野フレームである場合、マップ更新サブステップ2に進み、現在の広視野フレームに基づいてマップ更新処理を行う。現在の広視野フレームがキー広視野フレームではない場合、マップ更新サブステップ3に進み、現在の広視野フレームにマップ点関連付け処理を行う。
マップ作成サブステップ2では、現在の広視野フレームがキー広視野フレームである場合、現在の広視野フレームに基づいてマップ更新処理を行う。
【0137】
ローカルマップ中の各キー広視野フレームに対して、マルチ仮想ピンホールカメラモデルに基づいて、該キー広視野フレームを、それぞれ各仮想ピンホールカメラに対応するサブ視野フレームに分解し、現在の広視野フレームにも同様な操作を実行する。それにより各仮想ピンホールカメラに、それに対応する2つのサブ視野フレームを取得し、該2つのサブ視野フレームにフレーム間マッチングを行うことで新たなマップ点を作成する。
【0138】
好ましくは、該2つのサブ視野フレームにフレーム間マッチングを行う過程では、単語の袋モデルに基づくベクトルを用いて特徴点間のマッチングを速める。単語の袋モデルによってマッチングする特徴点ペアに対して、さらにエピポーラ拘束を満たすか否かを検出する。エピポーラ拘束を満たす特徴点ペアに対して、該特徴点ペアに基づく三角測量によって新たなマップ点の三次元座標点を取得する。
【0139】
ここで、サブ視野フレームのフレーム間マッチング処理及び特徴点ペアに基づく三角測量によって新たなマップ点の三次元座標点を取得するプロセスは、初期化ステップ810中の対応する処理と同じであるため、簡潔にするために、ここでは重複説明を省略する。
【0140】
新たなマップ点を作成した後、現在の広視野フレームの位置姿勢に基づいて該新たなマップ点を世界座標系中のマップ点に変換して現在のマップに挿入し、現在の広視野フレームを現在のマップに挿入する。一般には、初期化においてマップを作成するための1番目のキー広視野フレームの座標系を世界座標系とする。その後、新たなマップ点に対して、カメラ座標系と世界座標系との変換を行う必要がある。
当業者であれば、現在のマップは新たなマップ点及び新たなキー広視野フレームを絶えず挿入されることで徐々に拡張し完備になることを理解できる。
【0141】
好ましくは、現在の広視野フレームに基づいて新たな単語の袋モデルに基づくベクトルを作成し、前記新たな単語の袋モデルに基づくベクトルを上記マップデータベースに追加する。マップデータベースに基づいて、単語の袋モデルに基づくベクトルによって特徴点間のマッチングを速め、それによりSLAM追跡及びマップ作成の効率を向上させる。
マップ作成サブステップ3では、現在の広視野フレームがキー広視野フレームではない場合、現在の広視野フレームにマップ点関連付け処理を行う。
【0142】
ローカルマップ中の各マップ点に対して、現在の広視野フレームの位置姿勢によって、マルチ仮想ピンホールカメラモデルに基づいて、該マップ点を、現在の広視野フレームの、対応する仮想ピンホールカメラの座標系に変換する。さらに該マップ点を該仮想ピンホールカメラのイメージング平面に投影して、該マップ点の現在の広視野フレームにおける再投影点を取得する。投影が失敗する場合、現在の広視野フレームの位置姿勢で該マップ点を観測できない。投影が成功する場合、現在の広視野フレームの位置姿勢で該マップ点を観測でき、該マップ点の再投影点を取得する。現在の広視野フレームのすべての特徴点のうち、該再投影点付近の特徴点から該マップ点と最もマッチングする特徴点を選択して該マップ点に関連付ける。なお、このステップによって、現在の広視野フレームと該現在の広視野フレームの位置姿勢で観測できるマップ点とが関連付けられる。このように、次の広視野フレームの処理時、該現在の広視野フレームは次の広視野フレームの1つ前の広視野フレームとして追跡処理に用いられる。それによりSLAM追跡がさらにスムーズになり、位置推定精度がさらに高くなり、作成されたマップがさらに正確になる。
【0143】
双眼広視野カメラの場合、自己位置推定と環境マップ作成を同時に行う装置102は上記単眼広視野カメラのマップ作成ステップを実行してもよく、同一時点における左歪み補正画像と右歪み補正画像の互いにマッチングする特徴点に基づいてマップを作成してもよい。
【0144】
後者の場合、自己位置推定と環境マップ作成を同時に行う装置102は現在の左歪み補正画像と現在の右歪み補正画像の互いにマッチングする特徴点を決定することができ、前記現在の左歪み補正画像の特徴点及び現在の前記双眼広視野カメラの左側カメラのカメラ中心に基づいて、第1特徴点に対応する方向ベクトルを決定し、前記現在の右歪み補正画像の特徴点及び現在の前記双眼広視野カメラの右側カメラのカメラ中心に基づいて、第2特徴点に対応する方向ベクトルを決定し、前記第1特徴点に対応する方向ベクトル及び前記第2特徴点に対応する方向ベクトルに三角測量を行い、前記特徴点に対応するマップ点を決定し、前記マップ点に基づいてマップを作成する。
【0145】
いくつかの実施例では、双眼広視野カメラの場合、自己位置推定と環境マップ作成を同時に行う装置102は初期化ステップ810における関連説明を参照して上記第1特徴点に対応する方向ベクトル及び第2特徴点に対応する方向ベクトルを決定し、三角測量を行うことができる。
【0146】
現在の広視野フレーム(又は現在の双眼画像フレーム)がキー広視野フレーム(又はキー双眼画像フレーム)である場合、マップ作成ステップ840はローカルバンドル最適化をさらに含んでもよい。ローカルバンドル最適化は、ローカルマップ中のキー広視野フレーム(又はキー双眼画像フレーム)の位置姿勢及びマップ点の位置を微調整し、ローカルマップ中のマップ点のキー広視野フレーム(又はキー双眼画像フレーム)における再投影誤差を最小化し、それにより作成されたマップを最適化することを目的とする。
単眼広視野カメラの場合、ローカルマップ中の各キー広視野フレームに対するバンドル最適化処理は以下の通りである。
【0147】
該キー広視野フレームに関連付けられた各マップ点に対して、前記マルチ仮想ピンホールカメラモデルに基づいて、該マップ点を対応する仮想ピンホールカメラの座標系に変換し、さらに該仮想ピンホールカメラのイメージング平面に投影して、該マップ点の再投影点を取得する。且つ該マップ点に関連付けられた特徴点及び該マップ点の再投影点に基づいて該マップ点の再投影誤差を決定する。該キー広視野フレームに関連付けられたすべてのマップ点の再投影誤差に基づいて、該キー広視野フレームの位置姿勢及び該キー広視野フレームに関連付けられたすべてのマップ点の位置を更新する。本ステップのバンドル最適化処理プロセスは上記グローバルバンドル最適化ステップ820の処理プロセスと同じであるため、簡潔にするために、ここでは重複説明を省略する。
双眼広視野カメラの場合、ローカルマップ中の各キー双眼画像フレームに対するバンドル最適化処理は以下の通りである。
【0148】
前記キー双眼画像フレームに関連付けられたマップ点を第1マルチ仮想ピンホールカメラモデルに投影し、前記マップ点の前記第1マルチ仮想ピンホールカメラモデルにおける再投影点を取得し、前記マップ点の前記第1マルチ仮想ピンホールカメラモデルにおける再投影点及び前記マップ点に対応する特徴点に基づいて、前記マップ点の再投影誤差を決定し、すべての前記キー双眼画像フレームに関連付けられたマップ点の再投影誤差に基づいて左再投影誤差を決定する。
【0149】
或いは、前記キー双眼画像フレームに関連付けられたマップ点を第2マルチ仮想ピンホールカメラモデルに投影し、前記マップ点の前記第2マルチ仮想ピンホールカメラモデルにおける再投影点を取得し、前記マップ点の前記第2マルチ仮想ピンホールカメラモデルにおける再投影点及び前記マップ点に対応する特徴点に基づいて、前記マップ点の再投影誤差を決定し、すべての前記キー双眼画像フレームに関連付けられたマップ点の再投影誤差に基づいて右再投影誤差を決定する。
【0150】
さらに、前記左再投影誤差、前記右再投影誤差又は前記左再投影誤差と前記右再投影誤差との和に基づいて、前記キー双眼画像フレームの位置姿勢及び前記キー双眼画像フレームに関連付けられたすべてのマップ点の位置を更新する。
【0151】
850では、自己位置推定と環境マップ作成を同時に行う装置102は閉ループ検出処理ステップを実行することができる。単眼広視野カメラ及び双眼広視野カメラの閉ループ検出処理ステップは同じであってもよく、以下、単眼広視野カメラの閉ループ検出処理を例とする。
【0152】
現在の広視野フレームがキー広視野フレームである場合、単語の袋モデルに基づくベクトルによって、現在のマップデータベース中の、現在の広視野フレームと類似する閉ループ広視野フレームを検出する。
【0153】
該閉ループ広視野フレームと現在の広視野フレームのマッチングする特徴点ペアを決定する。好ましくは、単語の袋モデルに基づくベクトルを用いて特徴点間のマッチングを速める。
【0154】
該閉ループ広視野フレームと現在の広視野フレームのマッチングする特徴点ペアに基づいて、相似変換演算子(Sim3Solver)及びRANSACアルゴリズムによって該閉ループ広視野フレームと現在の広視野フレームの間の相似変換行列を計算する。
【0155】
現在の広視野フレーム中のマッチングする各特徴点に対して、マルチ仮想ピンホールカメラモデルに基づいて、該特徴点に関連付けられたマップ点を該閉ループ広視野フレームの、対応する仮想ピンホールカメラの座標系に変換する。さらに該マップ点を該仮想ピンホールカメラのイメージング平面に投影して、該マップ点の該閉ループ広視野フレームにおける再投影点を取得する。該再投影点及び該閉ループ広視野フレーム中のマッチングする特徴点に基づいて、第1再投影誤差を決定する。現在の広視野フレーム中のすべてのマッチングする特徴点の第1再投影誤差に基づいて第1累計再投影誤差を決定する。
【0156】
該閉ループ広視野フレーム中のマッチングする各特徴点に対して、マルチ仮想ピンホールカメラモデルに基づいて、該特徴点に関連付けられたマップ点を現在の広視野フレームの、対応する仮想ピンホールカメラの座標系に変換する。さらに該仮想ピンホールカメラのイメージング平面に投影して、該マップ点の現在の広視野フレームにおける再投影点を取得する。該再投影点及び現在の広視野フレーム中のマッチングする特徴点に基づいて第2再投影誤差を決定する。該閉ループ広視野フレーム中のすべてのマッチングする特徴点の第2再投影誤差に基づいて第2累計再投影誤差を決定する。
前記第1累計再投影誤差及び前記第2累計再投影誤差に基づいて損失関数を決定する。損失を最小化することによって上記相似変換行列を最適化する。
【0157】
閉ループプロセスで累計された誤差をなくすために、現在のマップ中の、現在の広視野フレームとは共通視野関係を有するキー広視野フレーム及びそれに関連付けられたマップ点を補正する必要がある。まず、現在の広視野フレームとは共通視野関係を有するキー広視野フレームを取得する。2つの広視野フレームで観察される共通マップ点の数が共通視野関係閾値より大きいと、これら2つの広視野フレームは共通視野関係を有する。共通視野関係閾値は、2つのキー広視野フレームが共通視野関係を有することを判断することに必要な最小限の共通マップ点の数を示し、直接デフォルト値、例えば20を使用してもよく、ユーザーによって予め設定されてもよい。次に、上記相似変換行列によってこれらのキー広視野フレームの位置姿勢及びこれらのキー広視野フレームに関連付けられたマップ点の位置を補正する。ここまで、閉ループ検出処理が完了する。
【0158】
広視野カメラの動きに伴って、追跡によって計算される広視野カメラの位置姿勢及び三角測量によって取得されるマップ点の位置はともに誤差が生じる。ローカルバンドル最適化又はグローバルバンドル最適化によって最適化を行うとしても、累積誤差が生じる。上記閉ループ検出処理によって、累計誤差を効果的になくし、それによりSLAMで作成されたマップがさらに正確になる。
【0159】
好ましくは、閉ループ検出処理はポーズグラフ最適化(pose-graph optimization)によって現在のマップ中のすべてのキー広視野フレームの位置姿勢及びすべてのマップ点の位置をさらに最適化するステップをさらに含む。好ましくは、閉ループ検出処理は冗長なキーフレーム及びマップ点を検索して削除するステップをさらに含み、それによりシステムの保存領域を節約するとともに、冗長な計算操作を回避する。
【0160】
上記実施例のステップ810~850はマルチ仮想ピンホールカメラモデルに基づく広視野SLAMのステップ230の実施形態を提供した。なお、ステップ220で取得された歪み補正画像に基づいて、任意の公知の又は将来開発される広視野SLAM方法を採用できる。例えば、上記マルチ仮想ピンホールカメラモデルに基づいて再投影誤差計算を行う最適化更新処理のかわりに、単位方向ベクトル誤差計算に基づいて最適化更新処理を行うようにしてもよい。前記単位方向ベクトルに基づく誤差計算は、マップ点に対応する単位方向ベクトルと該マップ点に関連付けられた特徴点に対応する単位方向ベクトルとの差を最小化することで、最終的な最適化目標を達成する。前記最適化される目標損失は単位方向ベクトル間の距離、又は単位ベクトル間の夾角、又はベクトル誤差を記述するほかの指標であってもよい。
【0161】
最後に、このアプリケーションで言及されている「左」と「右」、たとえば「左目」、「右目」、「左魚眼画像」、「右魚眼画像」、「左歪み補正画像」、「右のゆがんだ画像」、「左の再投影エラー」、「右の再投影エラー」は説明のみを目的としており、このアプリケーションの保護範囲を制限するものではありません。
【0162】
要約すると、この詳細な開示を読んだ後、当業者は、前述の詳細な開示が例としてのみ提示されてもよく、限定的ではないことを理解することができる。ここでは明示的に述べていないが、当業者は、本発明が実施形態に対する様々な合理的な変更、改善、および修正を網羅することを意図していることを理解することができる。これらの変更、改善、および修正は、本開示によって示唆されることを意図しており、本開示の例示的な実施形態の精神および範囲内にある。
【0163】
さらに、本発明の特定の用語は、本開示の実施形態を説明するために使用されてきた。例えば、「一実施形態」、「実施形態」、および/または「いくつかの実施形態」は、実施形態に関連して説明される特定の特徴、構造、または特性を本開示の少なくとも1つの実施形態に含めることができることを意味する。したがって、本明細書の様々な部分における「実施形態」または「一実施形態」または「代替実施形態」への2つ以上の言及は、必ずしもすべて同じ実施形態を指すとは限らないことを強調および理解できる。さらに、特定の特徴、構造、または特性は、本開示の1つまたは複数の実施形態において適切に組み合わされてもよい。
【0164】
本開示の実施形態の前述の説明において、特徴の理解を助けるために、本開示を単純化する目的で、本発明は、単一の実施形態、図面、またはその説明において様々な特徴を時々組み合わせることが理解されるべきである。あるいは、本発明は、本発明の複数の実施形態において様々な特徴を分散させる。しかし、これは、これらの特徴の組み合わせが必要であることを言うものではなく、当業者は、本発明を読むときにこれらの特徴のいくつかを別個の実施形態として抽出する可能性が高い。すなわち、本発明の実施形態は、複数の二次実施形態の統合として理解することもできる。各二次実施形態の内容が、以前に開示された単一の実施形態のすべての特徴よりも少ないことも事実である。
【0165】
いくつかの実施形態では、本発明の特定の実施形態を説明および請求するために使用される量または特性を表す数字は、用語「約」、「およそ」または「実質的に」によって変更される場合がある。たとえば、特に明記しない限り、「約」、「およそ」、または「実質的に」とは、説明する値が±20%変化することを意味する場合があります。したがって、いくつかの実施形態では、記載された説明および添付の特許請求の範囲に記載された数値パラメータは、特定の実施形態によって得られることが求められる所望の特性に応じて変わり得る近似値である。一部の実施形態では、数値パラメータは、報告された有効桁数に基づいて、一般的な丸め手法を適用することにより解釈されるべきである。本発明に記載されているいくつかの実施形態は、広範囲の数値範囲およびパラメータを概算しているが、特定の例は、可能な限り正確な数値を列挙している。
【0166】
各特許、特許出願、特許出願の公開、および記事、書籍、説明書、出版物、文書、記事など、本明細書で引用された他の資料は、参照により本明細書に組み込まれ得る。関連する検察文書の履歴、この文書と矛盾または矛盾する可能性のあるもの、またはクレームの最も広い範囲に制限的な影響を与える可能性のある同一の検察文書を除く、すべての目的の内容全体歴史。現在または今後、このドキュメントに関連付けられます。たとえば、このドキュメントに含まれる資料のいずれかに関連する説明、定義、および/または用語の使用に矛盾または矛盾がある場合、用語が優先されます。
【0167】
最後に、本明細書に開示された本発明の実施形態は、本発明の実施形態の原理の例示であることを理解されたい。他の修正された実施形態も本発明の範囲内である。したがって、本発明で開示される実施形態は単なる例であり、限定するものではない。当業者は、本発明の実施形態に従って本発明で本発明を実施するための代替構成をとることができる。したがって、本発明の実施形態は、どの実施形態が本発明で正確に説明されるかに限定されない。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11