(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-30
(45)【発行日】2024-09-09
(54)【発明の名称】推定装置、方法及びプログラム
(51)【国際特許分類】
G06T 7/70 20170101AFI20240902BHJP
G06T 7/00 20170101ALI20240902BHJP
【FI】
G06T7/70 Z
G06T7/00 350B
(21)【出願番号】P 2021142611
(22)【出願日】2021-09-01
【審査請求日】2023-03-13
(73)【特許権者】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(74)【代理人】
【識別番号】110001737
【氏名又は名称】弁理士法人スズエ国際特許事務所
(72)【発明者】
【氏名】西澤 直樹
(72)【発明者】
【氏名】関 晃仁
(72)【発明者】
【氏名】三島 直
【審査官】長谷川 素直
(56)【参考文献】
【文献】特開2019-011971(JP,A)
【文献】特開2019-049457(JP,A)
【文献】特開2020-148483(JP,A)
【文献】特開2015-207090(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00
G06V 10/82
(57)【特許請求の範囲】
【請求項1】
移動体に設置された撮像装置によって連続的に撮像された同一の被写体を含む第1及び第2画像を取得する第1取得手段と、
前記取得された第1画像に含まれる前記被写体までの第1距離及び当該第1距離の不確かさを取得する第2取得手段と、
前記取得された第1距離の不確かさに基づいて、前記取得された第1距離の中から有用な第2距離を抽出する抽出手段と、
前記取得された第1及び第2画像と、前記抽出された第2距離とに基づいて、当該第2画像が前記撮像装置によって撮像された際の前記移動体の位置姿勢を推定する推定手段と
を具備
し、
前記第2取得手段は、
前記第1画像中の被写体に生じるぼけを示すぼけ値及び当該ぼけ値の不確かさを、前記被写体までの第1距離に関する距離情報及び当該距離情報の不確かさとして取得する第3取得手段と、
前記ぼけ値を当該ぼけ値に対応する第1距離に変換し、前記ぼけ値の不確かさを当該ぼけ値に対応する第1距離の不確かさに変換する変換手段と
を含む
推定装置。
【請求項2】
前記ぼけ値及び当該ぼけ値の不確かさは、前記撮像装置の光学系の収差の影響を受けた画像に生じる、当該画像に含まれる被写体までの距離に応じて非線形に変化するぼけを学習することによって生成された統計モデルに前記第1画像が入力されることによって、当該統計モデルから出力される請求項
1記載の推定装置。
【請求項3】
移動体に設置された撮像装置によって連続的に撮像された同一の被写体を含む第1及び第2画像を取得する第1取得手段と、
前記取得された第1画像に含まれる前記被写体までの第1距離及び当該第1距離の不確かさを取得する第2取得手段と、
前記取得された第1距離の不確かさに基づいて、前記取得された第1距離の中から有用な第2距離を抽出する抽出手段と、
前記取得された第1及び第2画像と、前記抽出された第2距離とに基づいて、当該第2画像が前記撮像装置によって撮像された際の前記移動体の位置姿勢を推定する推定手段と
を具備し、
前記第2取得手段は、
前記被写体からの反射波及び当該反射波の強度を、前記被写体まで第1距離に関する距離情報及び当該距離情報の不確かさとして取得する第3取得手段と、
前記反射波を当該反射波に対応する前記被写体までの第1距離に変換し、当該反射波の強度を当該反射波から算出された第1距離の不確かさに変換する変換手段と
を含む
推定装置。
【請求項4】
移動体に設置された撮像装置によって連続的に撮像された同一の被写体を含む第1及び第2画像を取得する第1取得手段と、
前記取得された第1画像に含まれる前記被写体までの第1距離及び当該第1距離の不確かさを取得する第2取得手段と、
前記取得された第1距離の不確かさに基づいて、前記取得された第1距離の中から有用な第2距離を抽出する抽出手段と、
前記取得された第1及び第2画像と、前記抽出された第2距離とに基づいて、当該第2画像が前記撮像装置によって撮像された際の前記移動体の位置姿勢を推定する推定手段と
を具備し、
前記第2取得手段は、
少なくとも2つの撮像装置によって複数の視点から撮像された被写体を含む画像における視差及び当該視差の不確かさを、前記被写体までの第1距離に関する距離情報及び当該距離情報の不確かさとして取得する第3取得手段と、
前記視差を当該視差に対応する第1距離に変換し、前記視差の不確かさを当該視差に対応する第1距離の不確かさに変換する変換手段と
を含む
推定装置。
【請求項5】
前記抽出手段は、前記第1距離の不確かさと、前記第1距離、前記距離情報、前記距離情報の不確かさ及び前記第1画像の輝度のうちの少なくとも1つとに基づいて前記第2距離を抽出する請求項
1~
4のいずれか一項に記載の推定装置。
【請求項6】
前記抽出手段は、前記不確かさが予め定められた値未満である第1距離を第2距離として抽出する請求項1~
5のいずれか一項に記載の推定装置。
【請求項7】
前記推定手段は、前記第1画像から複数の第1特徴点を検出し、前記第2画像から複数の第2特徴点を検出し、
前記第2取得手段は、前記第1特徴点毎に前記被写体までの第1距離の及び当該第1距離の不確かさを取得し、
前記抽出手段は、前記取得された第1距離の不確かさに基づいて、前記第1特徴点毎に取得された第1距離の中から有用な第2距離を抽出し、
前記推定手段は、前記抽出された第2距離に基づいて実スケールに基づく前記第1特徴点の3次元座標を計算し、当該3次元座標が計算された第1特徴点と前記第2画像から検出された第2特徴点とを対応づけることによって実スケールに基づく前記移動体の位置姿勢を推定する
請求項1~
6のいずれか一項に記載の推定装置。
【請求項8】
移動体に設置された撮像装置によって連続的に撮像された同一の被写体を含む第1及び第2画像を取得する第1取得手段と、
前記取得された第1及び第2画像から複数の特徴点を検出し、当該第1及び第2画像から検出された複数の特徴点を対応づけることによって当該第2画像が前記撮像装置によって撮像された際のスケールが不定な前記移動体の位置姿勢を推定する推定手段と、
前記取得された第2画像に含まれる前記被写体までの第1距離及び当該第1距離の不確かさを取得する第2取得手段と、
前記取得された第1距離の不確かさに基づいて、前記取得された第1距離の中から有用な第2距離を抽出する抽出手段と、
前記抽出された第2距離に基づいて、前記推定されたスケールが不定な前記移動体の位置姿勢を実スケールに基づく前記移動体の位置姿勢に補正する補正手段と
を具備
し、
前記第2取得手段は、
前記第2画像中の被写体に生じるぼけを示すぼけ値及び当該ぼけ値の不確かさを、前記被写体までの第1距離に関する距離情報及び当該距離情報の不確かさとして取得する第3取得手段と、
前記ぼけ値を当該ぼけ値に対応する第1距離に変換し、前記ぼけ値の不確かさを当該ぼけ値に対応する第1距離の不確かさに変換する変換手段と
を含む
推定装置。
【請求項9】
前記ぼけ値及び当該ぼけ値の不確かさは、前記撮像装置の光学系の収差の影響を受けた画像に生じる、当該画像に含まれる被写体までの距離に応じて非線形に変化するぼけを学習することによって生成された統計モデルに前記第2画像が入力されることによって、当該統計モデルから出力される請求項
8記載の推定装置。
【請求項10】
移動体に設置された撮像装置によって連続的に撮像された同一の被写体を含む第1及び第2画像を取得する第1取得手段と、
前記取得された第1及び第2画像から複数の特徴点を検出し、当該第1及び第2画像から検出された複数の特徴点を対応づけることによって当該第2画像が前記撮像装置によって撮像された際のスケールが不定な前記移動体の位置姿勢を推定する推定手段と、
前記取得された第2画像に含まれる前記被写体までの第1距離及び当該第1距離の不確かさを取得する第2取得手段と、
前記取得された第1距離の不確かさに基づいて、前記取得された第1距離の中から有用な第2距離を抽出する抽出手段と、
前記抽出された第2距離に基づいて、前記推定されたスケールが不定な前記移動体の位置姿勢を実スケールに基づく前記移動体の位置姿勢に補正する補正手段と
を具備し、
前記第2取得手段は、
前記被写体からの反射波及び当該反射波の強度を、前記被写体まで第1距離に関する距離情報及び当該距離情報の不確かさとして取得する第3取得手段と、
前記反射波を当該反射波に対応する前記被写体までの第1距離に変換し、当該反射波の強度を当該反射波から算出された第1距離の不確かさに変換する変換手段と
を含む
推定装置。
【請求項11】
移動体に設置された撮像装置によって連続的に撮像された同一の被写体を含む第1及び第2画像を取得する第1取得手段と、
前記取得された第1及び第2画像から複数の特徴点を検出し、当該第1及び第2画像から検出された複数の特徴点を対応づけることによって当該第2画像が前記撮像装置によって撮像された際のスケールが不定な前記移動体の位置姿勢を推定する推定手段と、
前記取得された第2画像に含まれる前記被写体までの第1距離及び当該第1距離の不確かさを取得する第2取得手段と、
前記取得された第1距離の不確かさに基づいて、前記取得された第1距離の中から有用な第2距離を抽出する抽出手段と、
前記抽出された第2距離に基づいて、前記推定されたスケールが不定な前記移動体の位置姿勢を実スケールに基づく前記移動体の位置姿勢に補正する補正手段と
を具備し、
前記第2取得手段は、
少なくとも2つの撮像装置によって複数の視点から撮像された被写体を含む画像における視差及び当該視差の不確かさを、前記被写体までの第1距離に関する距離情報及び当該距離情報の不確かさとして取得する第3取得手段と、
前記視差を当該視差に対応する第1距離に変換し、前記視差の不確かさを当該視差に対応する第1距離の不確かさに変換する変換手段と
を含む
推定装置。
【請求項12】
前記抽出手段は、前記第1距離の不確かさと、前記第1距離、前記距離情報、前記距離情報の不確かさ及び前記第1画像の輝度のうちの少なくとも1つとに基づいて前記第2距離を抽出する請求項
8~
11のいずれか一項に記載の推定装置。
【請求項13】
前記抽出手段は、前記不確かさが予め定められた値未満である第1距離を第2距離として抽出する請求項
8~
12のいずれか一項に記載の推定装置。
【請求項14】
移動体に設置された撮像装置によって連続的に撮像された同一の被写体を含む第1及び第2画像を取得するステップと、
前記取得された第1画像に含まれる前記被写体までの第1距離及び当該第1距離の不確かさを取得するステップと、
前記取得された第1距離の不確かさに基づいて、前記取得された第1距離の中から有用な第2距離を抽出するステップと、
前記取得された第1及び第2画像と、前記抽出された第2距離とに基づいて、当該第2画像が前記撮像装置によって撮像された際の前記移動体の位置姿勢を推定するステップと
を具備
し、
前記第1距離及び当該第1距離の不確かさを取得するステップは、
前記第1画像中の被写体に生じるぼけを示すぼけ値及び当該ぼけ値の不確かさを、前記被写体までの第1距離に関する距離情報及び当該距離情報の不確かさとして取得するステップと、
前記ぼけ値を当該ぼけ値に対応する第1距離に変換し、前記ぼけ値の不確かさを当該ぼけ値に対応する第1距離の不確かさに変換するステップと
を含む
方法。
【請求項15】
前記ぼけ値及び当該ぼけ値の不確かさは、前記撮像装置の光学系の収差の影響を受けた画像に生じる、当該画像に含まれる被写体までの距離に応じて非線形に変化するぼけを学習することによって生成された統計モデルに前記第1画像が入力されることによって、当該統計モデルから出力される請求項
14記載の方法。
【請求項16】
移動体に設置された撮像装置によって連続的に撮像された同一の被写体を含む第1及び第2画像を取得するステップと、
前記取得された第1画像に含まれる前記被写体までの第1距離及び当該第1距離の不確かさを取得するステップと、
前記取得された第1距離の不確かさに基づいて、前記取得された第1距離の中から有用な第2距離を抽出するステップと、
前記取得された第1及び第2画像と、前記抽出された第2距離とに基づいて、当該第2画像が前記撮像装置によって撮像された際の前記移動体の位置姿勢を推定するステップと
を具備し、
前記第1距離及び当該第1距離の不確かさを取得するステップは、
前記被写体からの反射波及び当該反射波の強度を、前記被写体まで第1距離に関する距離情報及び当該距離情報の不確かさとして取得するステップと、
前記反射波を当該反射波に対応する前記被写体までの第1距離に変換し、当該反射波の強度を当該反射波から算出された第1距離の不確かさに変換するステップと
を含む
方法。
【請求項17】
移動体に設置された撮像装置によって連続的に撮像された同一の被写体を含む第1及び第2画像を取得するステップと、
前記取得された第1画像に含まれる前記被写体までの第1距離及び当該第1距離の不確かさを取得するステップと、
前記取得された第1距離の不確かさに基づいて、前記取得された第1距離の中から有用な第2距離を抽出するステップと、
前記取得された第1及び第2画像と、前記抽出された第2距離とに基づいて、当該第2画像が前記撮像装置によって撮像された際の前記移動体の位置姿勢を推定するステップと
を具備し、
前記第1距離及び当該第1距離の不確かさを取得するステップは、
少なくとも2つの撮像装置によって複数の視点から撮像された被写体を含む画像における視差及び当該視差の不確かさを、前記被写体までの第1距離に関する距離情報及び当該距離情報の不確かさとして取得するステップと、
前記視差を当該視差に対応する第1距離に変換し、前記視差の不確かさを当該視差に対応する第1距離の不確かさに変換するステップと
を含む
方法。
【請求項18】
前記抽出するステップは、前記第1距離の不確かさと、前記第1距離、前記距離情報、前記距離情報の不確かさ及び前記第1画像の輝度のうちの少なくとも1つとに基づいて前記第2距離を抽出するステップを含む請求項
14~
17のいずれか一項に記載の方法。
【請求項19】
前記抽出するステップは、前記不確かさが予め定められた値未満である第1距離を第2距離として抽出するステップを含む請求項
14~
18のいずれか一項に記載の方法。
【請求項20】
前記推定するステップは、前記第1画像から複数の第1特徴点を検出し、前記第2画像から複数の第2特徴点を検出するステップを含み、
前記第1距離及び当該第1距離の不確かさを取得するステップは、前記第1特徴点毎に前記被写体までの第1距離の及び当該第1距離の不確かさを取得するステップを含み、
前記抽出するステップは、前記取得された第1距離の不確かさに基づいて、前記第1特徴点毎に取得された第1距離の中から有用な第2距離を抽出するステップを含み、
前記推定するステップは、前記抽出された第2距離に基づいて実スケールに基づく前記第1特徴点の3次元座標を計算し、当該3次元座標が計算された第1特徴点と前記第2画像から検出された第2特徴点とを対応づけることによって実スケールに基づく前記移動体の位置姿勢を推定するステップを含む
請求項
14~
19のいずれか一項に記載の方法。
【請求項21】
移動体に設置された撮像装置によって連続的に撮像された同一の被写体を含む第1及び第2画像を取得するステップと、
前記取得された第1及び第2画像から複数の特徴点を検出し、当該第1及び第2画像から検出された複数の特徴点を対応づけることによって当該第2画像が前記撮像装置によって撮像された際のスケールが不定な前記移動体の位置姿勢を推定するステップと、
前記取得された第2画像に含まれる前記被写体までの第1距離及び当該第1距離の不確かさを取得するステップと、
前記取得された第1距離の不確かさに基づいて、前記取得された第1距離の中から有用な第2距離を抽出するステップと、
前記抽出された第2距離に基づいて、前記推定されたスケールが不定な前記移動体の位置姿勢を実スケールに基づく前記移動体の位置姿勢に補正するステップと
を具備
し、
前記第1距離及び当該第1距離の不確かさを取得するステップは、
前記第2画像中の被写体に生じるぼけを示すぼけ値及び当該ぼけ値の不確かさを、前記被写体までの第1距離に関する距離情報及び当該距離情報の不確かさとして取得するステップと、
前記ぼけ値を当該ぼけ値に対応する第1距離に変換し、前記ぼけ値の不確かさを当該ぼけ値に対応する第1距離の不確かさに変換するステップと
を含む
方法。
【請求項22】
推定装置のコンピュータによって実行されるプログラムであって、
前記コンピュータに、
移動体に設置された撮像装置によって連続的に撮像された同一の被写体を含む第1及び第2画像を取得するステップと、
前記取得された第1画像に含まれる前記被写体までの第1距離及び当該第1距離の不確かさを取得するステップと、
前記取得された第1距離の不確かさに基づいて、前記取得された第1距離の中から有用な第2距離を抽出するステップと、
前記取得された第1及び第2画像と、前記抽出された第2距離とに基づいて、当該第2画像が前記撮像装置によって撮像された際の前記移動体の位置姿勢を推定するステップと
を実行させ
、
前記第1距離及び当該第1距離の不確かさを取得するステップは、
前記第1画像中の被写体に生じるぼけを示すぼけ値及び当該ぼけ値の不確かさを、前記被写体までの第1距離に関する距離情報及び当該距離情報の不確かさとして取得するステップと、
前記ぼけ値を当該ぼけ値に対応する第1距離に変換し、前記ぼけ値の不確かさを当該ぼけ値に対応する第1距離の不確かさに変換するステップと
を含む
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、推定装置、方法及びプログラムに関する。
【背景技術】
【0002】
近年、例えば自動車及びロボットのような移動体に設置された撮像装置(例えば、カメラ)によって撮像された画像に基づいて、当該移動体の位置姿勢の推定及び当該移動体の周辺の3次元地図の作成を同時に行うSLAM(Simultaneous Localization and Mapping)と称される技術が知られている。
【0003】
しかしながら、特に単眼の撮像装置によって撮像された画像を用いるSLAMでは、推定される移動体の位置姿勢(及び作成される3次元地図)に関するスケールが不定であるため、処理を実行する度に誤差が蓄積していくスケールドリフトが生じる。
【0004】
このようなスケールドリフトによる影響を軽減するためには、例えば移動体から上記した画像に含まれる被写体までの実スケールに基づく距離を取得し、当該推定された距離を利用して移動体の位置姿勢を推定することが有用であるが、当該実スケールに基づく距離の精度が低い場合には、当該移動体の位置姿勢の推定精度が低下する。
【先行技術文献】
【特許文献】
【0005】
【非特許文献】
【0006】
【文献】Mur-Artal, Raul, and Juan D. Tardos. "Orb-slam2: An open-source slam system for monocular, stereo, and rgb-d cameras." IEEE Transactions on Robotics 33.5 (2017): 1255-1262.
【発明の概要】
【発明が解決しようとする課題】
【0007】
そこで、本発明が解決しようとする課題は、移動体の位置姿勢を高い精度で推定することが可能な推定装置、方法及びプログラムを提供することにある。
【課題を解決するための手段】
【0008】
実施形態に係る推定装置は、第1取得手段と、第2取得手段と、抽出手段と、推定手段とを具備する。前記第1取得手段は、移動体に設置された撮像装置によって連続的に撮像された同一の被写体を含む第1及び第2画像を取得する。前記第2取得手段は、前記取得された第1画像に含まれる前記被写体までの第1距離及び当該第1距離の不確かさを取得する。前記抽出手段は、前記取得された第1距離の不確かさに基づいて、前記取得された第1距離の中から有用な第2距離を抽出する。前記推定手段は、前記取得された第1及び第2画像と、前記抽出された第2距離とに基づいて、当該第2画像が前記撮像装置によって撮像された際の前記移動体の位置姿勢を推定する。前記第2取得手段は、前記第1画像中の被写体に生じるぼけを示すぼけ値及び当該ぼけ値の不確かさを、前記被写体までの第1距離に関する距離情報及び当該距離情報の不確かさとして取得する第3取得手段と、前記ぼけ値を当該ぼけ値に対応する第1距離に変換し、前記ぼけ値の不確かさを当該ぼけ値に対応する第1距離の不確かさに変換する変換手段とを含む。
【図面の簡単な説明】
【0009】
【
図1】第1実施形態における推定システムの構成の一例を示す図。
【
図2】撮像装置のハードウェア構成の一例を示す図。
【
図3】推定装置のハードウェア構成の一例を示す図。
【
図4】統計モデルの概要について説明するための図。
【
図5】単レンズを用いた場合における被写体までの距離と色収差により画像に生じるぼけとの関係性を示す図。
【
図6】色消しレンズを用いた場合における被写体までの距離と色収差により画像に生じるぼけとの関係性を示す図。
【
図7】撮像装置の光学系に備えられている絞り機構の開口部の大きさとPSF形状との関係性を示す図。
【
図8】各チャンネルの画像に生じるPSF形状の一例を示す図。
【
図9】各チャンネルの画像に生じるPSF形状の別の例を示す図。
【
図10】PSF形状の非線形性と絞り機構の開口部の形状との関係を表す図。
【
図11】画像からぼけを推定する第1方式を説明するための図。
【
図12】第1方式において統計モデルに入力される情報の一例を示す図。
【
図13】画像からぼけを推定する第2方式を説明するための図。
【
図14】第2方式において統計モデル入力される情報の一例を示す図。
【
図15】画像からぼけを推定する第3方式を説明するための図。
【
図16】画像に生じるぼけと当該画像に含まれる被写体までの距離との相関について具体的に説明するための図。
【
図17】統計モデルの学習処理の一例を説明するための図。
【
図18】統計モデルの学習処理の処理手順の一例を示すフローチャート。
【
図19】移動体の位置姿勢を推定する際の推定装置の処理手順の一例を示す図フローチャート。
【
図20】透視投影モデルに基づいたぼけ値と距離との関係を示す図。
【
図21】ぼけ値と当該ぼけ値に対応する距離との関係とともに当該距離と距離の不確かさとの関係を示す図。
【
図22】第2実施形態における初期化処理の一例を示すフローチャート。
【
図23】本実施形態における追跡処理の一例を示すフローチャート。
【発明を実施するための形態】
【0010】
以下、図面を参照して、各実施形態について説明する。
(第1実施形態)
まず、第1実施形態について説明する。
図1は、本実施形態における推定システムの構成の一例を示す。
図1に示すように、推定システム1は、撮像装置2及び推定装置3を備える。
【0011】
撮像装置2は、移動体(図示せず)に設置された単眼のカメラであり、例えば当該移動体が移動する間に連続的に複数の画像(以下、時系列画像と表記)を撮像する。
【0012】
なお、本実施形態における移動体としては、例えば自動車、ロボットまたはドローンのような無人航空機(飛行体)等が想定されるが、自律的に移動するものであれば他の移動体であってもよい。
【0013】
推定装置3は、撮像装置2によって撮像された時系列画像から当該撮像装置2が設置されている移動体の位置姿勢を推定する。なお、本実施形態における移動体の位置姿勢とは、例えば起点となる位置からの当該移動体の位置及び姿勢(つまり、移動体の移動距離及び向き)に相当する。
【0014】
推定装置3は、撮像装置2と通信可能に接続されており、画像取得部31、距離取得部32、抽出部33及び推定部34を含む。
【0015】
画像取得部31は、撮像装置2によって撮像された時系列画像を取得する。なお、上記したように時系列画像は例えば移動体が移動している間に連続的に撮像されるため、当該時系列画像のうちの時系列的に近い少なくとも2つの画像には同一の被写体が含まれているものとする。
【0016】
距離取得部32は、画像取得部31によって取得された時系列画像の中から1つの画像(以下、第1画像と表記)を取得し、当該第1画像に含まれる被写体までの距離及び当該距離の不確かさを取得する。なお、本実施形態においては、撮像装置2のレンズ開口面を含む平面と3次元空間中の点で表される被写体との間の距離を、被写体までの距離または単に距離と称する。この距離は長さの次元を有するスカラー量であり、実スケールに基づいている場合には例えばメートル等の長さの単位を伴う数値で表現される。
【0017】
ここで、距離取得部32は、被写体までの距離及び距離の不確かさを撮像装置2によって撮像された画像から取得するために用いられる統計モデルを予め保持しているものとする。この統計モデルは、後述する撮像装置2の光学系の収差の影響を受けた画像に生じる、当該画像に含まれる被写体までの距離に応じて非線形に変化するぼけを学習することによって生成されており、画像が入力されることによって、当該画像中の被写体に生じるぼけを示すぼけ値を推定するとともに、当該ぼけ値の不確かさ(不確実性の度合い)を算出する(つまり、ぼけ値及び当該ぼけ値の不確かさを出力する)ように構築されている。
【0018】
なお、上記した統計モデルは、例えばニューラルネットワークまたはランダムフォレスト等の既知の様々な機械学習のアルゴリズムを適用して生成されることができるものとする。また、本実施形態において適用可能なニューラルネットワークには、例えば畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)、全結合ニューラルネットワーク及び再帰型ニューラルネットワーク等が含まれていてもよい。
【0019】
このような統計モデルによれば、距離取得部32は、例えば第1画像を当該統計モデルに入力することによって当該統計モデルから出力されるぼけ値及び当該ぼけ値の不確かさを取得することができる。
【0020】
ここで、詳細については後述するが、統計モデルから出力されるぼけ値によって示されるぼけは当該ぼけが生じている被写体までの距離に関する物理的な手掛かりであるため、距離取得部32は、取得されたぼけ値を、当該ぼけ値に対応する距離(被写体までの距離)に変換する。また、距離取得部32は、取得されたぼけ値の不確かさを、当該ぼけ値に対応する距離の不確かさに変換する。これにより、距離取得部32は、第1画像に含まれる被写体までの距離及び当該距離の不確かさを取得する。
【0021】
抽出部33は、距離取得部32によって取得された距離の不確かさに基づいて、当該距離取得部32によって取得された距離の中から有用な距離を抽出する。
【0022】
推定部34は、上記した第1画像及び当該第1画像と時系列的に近い画像(以下、第2画像と表記)と、抽出部33によって抽出された有用な距離に基づいて、当該第2画像が撮像装置2によって撮像された際の移動体の位置姿勢を推定する。なお、第1画像が撮像された際の移動体の位置姿勢と第2画像が撮像された際の移動体の位置姿勢とは異なるが、第2画像は、第1画像と同一の被写体が含まれている画像であるものとする。
【0023】
すなわち、本実施形態に係る推定装置3は、撮像装置2(単眼のカメラ)によって撮像された時系列画像から、統計モデルを用いて当該画像中の被写体に生じるぼけを示すぼけ値及び当該ぼけ値の不確かさを取得し、当該ぼけ値及び当該ぼけ値の不確かさから変換された距離及び距離の不確かさに基づいて抽出された有用な距離を利用して、実スケールに基づく移動体の位置姿勢を推定する構成を有する。
【0024】
なお、
図1においては、推定システム1が別個の装置である撮像装置2及び推定装置3を備えるものとして説明したが、当該撮像装置2及び推定装置3は一体の装置として構成されていてもよい。更に、本実施形態における推定システム1は各種電子機器等に内蔵される組込みシステムとして実現されていても構わない。
【0025】
図2は、撮像装置2のハードウェア構成の一例を示す。
図2に示すように、撮像装置2は、レンズ201、イメージセンサ202、不揮発性メモリ203及び通信デバイス204を備える。なお、レンズ201及び202は、撮像装置2の光学系(単眼カメラ)に相当する。
【0026】
レンズ201には、被写体で反射した光が入射する。レンズ201に入射した光は、レンズ201を透過する。レンズ201を透過した光は、イメージセンサ202に到達し、当該イメージセンサ202によって受光(検出)される。イメージセンサ202は、受光した光を電気信号に変換(光電変換)することによって、複数の画素から構成される画像を生成する。
【0027】
なお、イメージセンサ202は、例えばCCD(Charge Coupled Device)イメージセンサ及びCMOS(Complementary Metal Oxide Semiconductor)イメージセンサ等により実現される。イメージセンサ202は、例えば赤色(R)の波長帯域の光を検出する第1センサ(Rセンサ)、緑色(G)の波長帯域の光を検出する第2センサ(Gセンサ)及び青色(B)の波長帯域の光を検出する第3センサ(Bセンサ)を含む。イメージセンサ202は、このような第1~第3センサにより対応する波長帯域の光を受光して、各波長帯域(色成分)に対応するセンサ画像(R画像、G画像及びB画像)を生成することができる。すなわち、撮像装置2によって撮像される画像はカラー画像(RGB画像)であり、当該画像はR画像、G画像及びB画像から構成される。
【0028】
なお、本実施形態においてはイメージセンサ202が第1~第3センサを含むものとして説明するが、イメージセンサ202は、第1~第3センサのうちの少なくとも1つを含むように構成されていればよい。また、イメージセンサ202は、第1~第3センサに代えて、例えばモノクロ画像を生成するためのセンサを含むように構成されていてもよい。
【0029】
本実施形態においてレンズ201を透過した光に基づいて生成された画像(つまり、撮像装置2によって撮像された画像)は、光学系(に含まれるレンズ201)の収差の影響を受けた画像であり、当該収差により生じるぼけを含む。なお、画像に生じるぼけの詳細については後述する。
【0030】
図2においては示されていないが、撮像装置2(の光学系)は、例えばレンズ201の位置を調整することによりピント位置を制御するためのピント調整機構(レンズ駆動回路)及び撮像装置2の光学系に取り込まれる光の量(入光量)を調節するための開口部を有する絞り機構(絞り制御回路)等を更に備えている。
【0031】
不揮発性メモリ203は、上記した撮像装置2によって撮像された画像等を記憶するための記憶媒体である。
【0032】
通信デバイス204は、有線通信または無線通信を実行するように構成されたデバイスである。通信デバイス204は、ネットワークを介して外部機器との通信等を実行する。この外部機器には、推定装置3が含まれる。この場合、撮像装置2は、通信デバイス204を介して、当該撮像装置2によって撮像された画像を推定装置3に送信する。
【0033】
図3は、推定装置3のハードウェア構成の一例を示す。
図3に示すように、推定装置3は、CPU301、不揮発性メモリ302、RAM303及び通信デバイス304等を備える。
【0034】
CPU301は、推定装置3内の様々なコンポーネントの動作を制御するためのプロセッサである。CPU301は、単一のプロセッサであってもよいし、複数のプロセッサで構成されていてもよい。CPU301は、不揮発性メモリ302からRAM303にロードされる様々なプログラムを実行する。これらプログラムは、オペレーティングシステム(OS)や様々なアプリケーションプログラムを含む。アプリケーションプログラムは、上記した移動体の位置姿勢を推定するための推定プログラムを含む。
【0035】
不揮発性メモリ302は、補助記憶装置として用いられる記憶媒体である。RAM303は、主記憶装置として用いられる記憶媒体である。
図3においては不揮発性メモリ302及びRAM303のみが示されているが、推定装置3は、例えばHDD(Hard Disk Drive)及びSSD(Solid State Drive)等の他の記憶装置を備えていてもよい。
【0036】
なお、本実施形態において、
図1に示す画像取得部31、距離取得部32、抽出部33及び推定部34の一部または全ては、CPU301(つまり、推定装置3のコンピュータ)に上記した推定プログラムを実行させること、すなわち、ソフトウェアによって実現されるものとする。この推定プログラムは、コンピュータ読み取り可能な記憶媒体に格納して頒布されてもよいし、ネットワークを通じて推定装置3にダウンロードされてもよい。なお、これらの各部31~34の一部または全ては、IC(Integrated Circuit)等のハードウェアによって実現されてもよいし、ソフトウェア及びハードウェアの組み合わせによって実現されてもよい。
【0037】
通信デバイス304は、有線通信または無線通信を実行するよう構成されたデバイスである。通信デバイス304は、ネットワークを介した外部機器との通信等を実行する。この外部機器には、撮像装置2が含まれる。この場合、推定装置3は、通信デバイス304を介して、撮像装置2によって撮像された画像を当該撮像装置2から受信する。
【0038】
ここで、本実施形態においては上記したように画像を入力した統計モデルから出力されるぼけ値及び当該ぼけ値の不確かさ(から変換される距離及び当該距離の不確かさ)を利用して移動体の位置姿勢を推定するが、当該統計モデルについて以下に説明する。
【0039】
まず、
図4を参照して、上記した統計モデルの概要について説明する。本実施形態においては、上記した光学系(レンズ201)の収差の影響を受けた画像が撮像装置2(イメージセンサ202)によって生成され、当該画像が統計モデルに入力される。
【0040】
本実施形態における統計モデルによれば、上記したように入力された画像に含まれる被写体までの距離に応じて当該画像に生じるぼけを示すぼけ値(ぼけ情報)が推定され、当該ぼけ値が出力される。
【0041】
更に、本実施形態における統計モデルによれば、上記したように画像に生じるぼけを示すぼけ値の不確かさが算出され、当該不確かさが出力される。この場合、統計モデルは、例えばベイズ推論を用いることにより予測値(ぼけ値)の不確かさを算出するように学習しているものとする。また、統計モデルは、バリアンス(予測値のばらつき誤差)を使用してぼけ値の不確かさを算出するように学習していてもよい。本実施形態において統計モデルによって算出されるぼけ値の不確かさは、例えば0以上の実数によって表され、値が大きいほど当該ぼけ値の不確実性が高いことを表すものとする。なお、ぼけ値の不確かさの算出手法は、特定の手法に限定されず、既知の様々な手法を適用することができる。
【0042】
ここで、本実施形態において撮像装置2によって撮像された画像には、上記したように当該撮像装置2の光学系の収差(レンズ収差)に起因するぼけが生じている。以下、撮像装置2によって撮像された画像に生じるぼけについて説明する。まず、撮像装置2の光学系の収差に起因するぼけのうち、色収差について説明する。
【0043】
図5は、被写体までの距離と色収差により画像に生じるぼけとの関係性について示している。以下の説明では、撮像装置2においてピントが合う位置をピント位置と称する。
【0044】
収差のあるレンズ201を透過する際の光の屈折率は波長帯域毎に異なるため、例えば被写体の位置がピント位置からずれているような場合には、各波長帯域の光が1点に集まらず異なった点に到達する。これが画像上で色収差(ぼけ)として現れる。
【0045】
図5の上段は、撮像装置2(イメージセンサ202)に対する被写体の位置がピント位置よりも遠い(つまり、被写体の位置がピント位置よりも奥にある)場合を示している。
【0046】
この場合、赤色の波長帯域の光401に関しては、イメージセンサ202(第1センサ)において比較的小さいぼけbRを含む画像が生成される。一方、青色の波長帯域の光402に関しては、イメージセンサ(第3センサ)において比較的大きいぼけbBを含む画像が生成される。なお、緑色の波長帯域の光403に関しては、ぼけbRとぼけbBとの中間の大きさのぼけを含む画像が生成される。したがって、このような被写体の位置がピント位置よりも遠い状態で撮像された画像においては、当該画像中の被写体の外側に青色のぼけが観察される。
【0047】
一方、
図5の下段は、撮像装置2(イメージセンサ202)に対する被写体の位置がピント位置よりも近い(つまり、被写体の位置がピント位置よりも手前にある)場合を示している。
【0048】
この場合、赤色の波長帯域の光401に関しては、イメージセンサ202(第1センサ)において比較的大きいぼけbRを含む画像が生成される。一方、青色の波長帯域の光402に関しては、イメージセンサ202(第3センサ)において比較的小さいぼけbBを含む画像が生成される。なお、緑色の波長帯域の光403に関しては、ぼけbRとぼけbBとの中間の大きさのぼけを含む画像が生成される。したがって、このような被写体の位置がピント位置よりも近い状態で撮像された画像においては、当該画像中の被写体の外側に赤色のぼけが観察される。
【0049】
ここで、
図5はレンズ201が単純な単レンズの例を示しているが、一般的に、撮像装置2においては、例えば色収差補正が施されたレンズ(以下、色消しレンズと表記)が用いられる場合がある。なお、色消しレンズとは、低分散の凸レンズと高分散の凹レンズとを組み合わせたレンズであり、色収差を補正するレンズとして最もレンズ枚数が少ないレンズである。
【0050】
図6は、レンズ201として上記した色消しレンズを用いた場合における被写体までの距離と色収差により画像に生じるぼけとの関係性を示している。色消しレンズにおいては青色の波長と赤色の波長の焦点位置を揃える設計がされているが、色収差は完全には除去することができない。このため、被写体の位置がピント位置よりも遠い場合には
図6の上段に示すように緑色のぼけが発生し、被写体の位置がピント位置よりも近い場合には
図6の下段に示すように紫色のぼけが発生する。
【0051】
なお、
図5及び
図6の中段は、撮像装置2(イメージセンサ202)に対する被写体の位置とピント位置とが一致している場合を示している。この場合には、イメージセンサ202(第1~第3センサ)においてぼけの少ない画像が生成される。
【0052】
ここで、撮像装置2の光学系には上記したように絞り機構が備えられているが、当該撮像装置2によって撮像された画像に生じるぼけの形状は、当該絞り機構の開口部の大きさによっても異なる。なお、ぼけの形状は、PSF(Point Spread Function)形状と称され、点光源が撮像されたときに生じる光の拡散分布を示している。
【0053】
図7の上段は、焦点距離が50mmのレンズを用いた撮像装置2(の光学系)においてピント位置を1500mm、F値(絞り)をF1.8とした場合に当該撮像装置2によって撮像された画像の中央部に生じるPSF形状を、被写体の位置が撮像装置2から近い順に左から示している。
図7の下段は、焦点距離が50mmのレンズを用いた撮像装置2(の光学系)においてピント位置を1500mm、F値(絞り)をF4とした場合に当該撮像装置2によって撮像された画像の中央部に生じるPSF形状を、被写体の位置が撮像装置2から近い順に左から示している。なお、
図7の上段及び下段の中央は、被写体の位置がピント位置と一致している場合のPSF形状を示している。
【0054】
図7の上段及び下段の対応する位置に示されているPSF形状は撮像装置2に対する被写体の位置が同一である場合のPSF形状であるが、当該被写体の位置が同一である場合であっても、上段のPSF形状(F値をF1.8として撮像した画像に生じるPSF形状)と下段のPSF形状(F値をF4として撮像した画像に生じるPSF形状)とでは形状が異なっている。
【0055】
更に、
図7の最も左側のPSF形状と最も右側のPSF形状に示すように、例えば被写体の位置からピント位置までの距離が同程度である場合であっても、当該被写体の位置がピント位置よりも近い場合と当該被写体の位置がピント位置よりも遠い場合とで、PSF形状が異なっている。
【0056】
なお、上記したように絞り機構の開口部の大きさや撮像装置2に対する被写体の位置に応じてPSF形状が異なる現象は、各チャンネル(RGB画像、R画像、G画像及びB画像)においても同様に生じる。
図8は、焦点距離が50mmのレンズを用いた撮像装置2においてピント位置を1500mm、F値をF1.8とした場合に当該撮像装置2によって撮像された各チャンネルの画像に生じるPSF形状を、被写体の位置がピント位置よりも近い(手前にある)場合と被写体の位置がピント位置よりも遠い(奥にある)場合とに分けて示している。
図9は、焦点距離50mmのレンズを用いた撮像装置2においてピント位置を1500mm、F値をF4とした場合に当該撮像装置2によって撮像された各チャンネルの画像に生じるPSF形状を、被写体の位置がピント位置よりも近い場合と被写体の位置がピント位置より遠い場合とに分けて示している。
【0057】
上記したように本実施形態において用いられる統計モデルは画像に含まれる被写体までの距離に応じて非線形に変化するぼけを学習することによって生成されるが、当該非線形に変換するぼけには、上記した
図5及び
図6において説明した撮像装置2の光学系の色収差により生じるぼけ及び
図7~
図9において説明した撮像装置2の光学系に取り込まれる光の量を調節する絞り機構の開口部の大きさ(つまり、F値)に応じて生じるぼけ等が含まれる。
【0058】
なお、PSF形状は、絞り機構の開口部の形状によっても異なる。ここで、
図10は、PSF形状の非線形性(非対称性)と絞り機構の開口部の形状との関係を表している。上記したPSF形状の非線形性は、絞り機構の開口部の形状が円以外の場合に生じやすい。特に、PSF形状の非線形性は、開口部の形状が奇数角形、或いはイメージセンサ202の水平または垂直軸に対して非対称に配置された偶数角形の場合により生じやすい。
【0059】
なお、ここでは詳しい説明を省略するが、PSF形状は更に位置依存性を有する。すなわち、本実施形態における非線形に変化するぼけには、撮像装置2によって撮像された画像中の位置に応じて変化するぼけ等が含まれていてもよい。
【0060】
本実施形態に係る推定装置3(推定システム1)においては、上記した画像に生じるぼけ(色、サイズ及び形状)が被写体までの距離に関する物理的な手掛かりとなる点に着目して生成された統計モデルを用いて、当該画像に生じるぼけを示すぼけ値が推定(予測)される。なお、本実施形態において統計モデルによって推定される(つまり、当該統計モデルから出力される)ぼけ値とは、画像に生じるぼけの色、サイズ及び形状を含むぼけ量を表すスカラー量である。
【0061】
以下、本実施形態において統計モデルによって画像からぼけ(を示すぼけ値)を推定する方式の一例について説明する。ここでは、第1~第3方式について説明する。
【0062】
まず、
図11を参照して、第1方式について説明する。第1方式においては、画像501から局所領域(画像パッチ)501aが抽出される。
【0063】
この場合、例えば画像501の全領域をマトリクス状に分割し、当該分割後の部分領域を局所領域501aとして順次抽出するようにしてもよいし、画像501を認識して、被写体(像)が検出された領域を網羅するように局所領域501aを抽出するようにしてもよい。また、局所領域501aは、他の局所領域501aとの間で一部がオーバーラップしていてもよい。
【0064】
次に、抽出された局所領域501a毎に、当該局所領域501aに関する情報(画像501の情報)が統計モデルに入力されることによって、当該局所領域501a中の被写体までの距離に応じて生じるぼけを示すぼけ値が推定される。
【0065】
このように局所領域501aに関する情報が入力された統計モデルは、当該局所領域501aを構成する画素毎にぼけ値502を推定する。
【0066】
ここで、例えば特定の画素が第1局所領域501a及び第2局所領域501aの両方に属する(つまり、第1局所領域501a及び第2局所領域501aの間で当該画素を含む領域がオーバーラップしている)場合、当該画素が第1局所領域501aに属するものとして推定されたぼけ値と、当該画素が第2局所領域501aに属するものとして推定されたぼけ値とでは異なる場合がある。
【0067】
このため、例えば上記したように一部がオーバーラップする複数の局所領域501aが抽出されている場合、当該複数の局所領域501aがオーバーラップしている領域を構成する画素のぼけ値は、例えば当該オーバーラップしている一方の局所領域501aの一部の領域(画素)について推定されたぼけ値と他方の局所領域501aの一部の領域(画素)について推定されたぼけ値との平均値としてもよい。また、一部がオーバーラップする3以上の局所領域501aの一部の領域毎に推定されたぼけ値による多数決で決定されてもよい。
【0068】
図12は、上記した第1方式において統計モデルに入力される局所領域501aに関する情報の一例を示す。
【0069】
図12に示すように、統計モデルには、画像501から抽出された局所領域501aの勾配データが入力される。局所領域501aの勾配データは、画像501に含まれるR画像、G画像及びB画像の各々から生成され、R画像の勾配データ、G画像の勾配データ及びB画像の勾配データを含む。
【0070】
なお、勾配データは、各画素と当該画素に隣接する画素との画素値の差分(差分値)を示す。例えば、局所領域501aがn画素(X軸方向)×m画素(Y軸方向)の矩形領域として抽出される場合、当該局所領域501a内の各画素について算出した例えば右隣の画素との差分値をn行×m列のマトリクス状に配置した勾配データが生成される。
【0071】
統計モデルは、R画像の勾配データと、G画像の勾配データと、B画像の勾配データとを用いて、当該各画像に生じているぼけを示すぼけ値を推定する。
図12においてはR画像、G画像及びB画像の各々の勾配データが統計モデルに入力される場合について示しているが、画像501(RGB画像)の勾配データが統計モデルに入力される構成であってもよい。
【0072】
次に、
図13を参照して、第2方式について説明する。第2方式においては、第1方式における局所領域501aに関する情報として、当該局所領域(画像パッチ)501a毎の勾配データ及び画像501における当該局所領域501aの位置情報が統計モデルに入力される。
【0073】
位置情報501bは、例えば局所領域501aの中心点を示すものであってもよいし、左上辺等の予め定められた一辺を示すものであってもよい。また、位置情報501bとして、局所領域501aを構成する画素それぞれの画像501上での位置情報を用いてもよい。
【0074】
上記したように位置情報501bを更に統計モデルに入力することで、例えばレンズ201の中心部を透過する光によって結像された被写体像のぼけと、当該レンズ201の端部を透過する光によって結像された被写体像のぼけとの間の差異を考慮したぼけ値502を推定することができる。
【0075】
つまり、この第2方式によれば、画像上の位置との相関に基づいて画像501からぼけ値を推定することができる。
【0076】
図14は、上記した第2方式において統計モデルに入力される局所領域501aに関する情報の一例を示す。
【0077】
例えばn画素(X軸方向)×m画素(Y軸方向)の矩形領域が局所領域501aとして抽出される場合、当該局所領域501aの例えば中心点に対応する画像501上のX座標値(X座標データ)と、当該局所領域501aの例えば中心点に対応する画像501上のY座標値(Y座標データ)とが取得される。
【0078】
第2方式においては、このように取得されたX座標データ及びY座標データが、上記したR画像、G画像及びB画像の勾配データとともに、統計モデルに入力される。
【0079】
更に、
図15を参照して、第3方式について説明する。第3方式においては、上記した第1方式及び第2方式のような画像501からの局所領域501aの抽出は行われない。第3方式においては、例えば画像501の全領域に関する情報(R画像、G画像及びB画像の勾配データ)が統計モデルに入力される。
【0080】
局所領域501a毎にぼけ値502を推定する第1方式及び第2方式と比較して、第3方式は、統計モデルによる推定の不確実性(不確かさ)が高くなる可能性があるが、当該推定にかかる処理の負荷を軽減することができる。
【0081】
以下の説明においては、上記した第1~第3方式において統計モデルに入力される情報を、便宜的に画像に関する情報と称する。
【0082】
ここでは画素毎にぼけ値が推定されるものとして説明したが、当該ぼけ値は、少なくとも1つの画素を含む所定の領域毎に推定されても構わない。
【0083】
また、上記したように統計モデルにおいて画素毎にぼけ値が推定される(つまり、画素毎にぼけ値が出力される)場合、当該統計モデルは、上記した不確かさについても同様に画素毎に算出(出力)するものとする。
【0084】
以下、
図16を参照して、本実施形態における画像に生じるぼけと当該画像に含まれる被写体までの距離との相関について具体的に説明する。
【0085】
図16においては、被写体がピント位置よりも近い(手前にある)場合に生じるぼけのサイズをX軸上においてマイナスの値で示し、被写体がピント位置よりも遠い(奥にある)場合に生じるぼけのサイズをX軸上においてプラスの値で示している。つまり、
図16においては、ぼけの色及びサイズを正負の値で示している。
【0086】
図16においては、被写体の位置がピント位置よりも近い場合及び被写体の位置がピント位置よりも遠い場合のいずれの場合においても、被写体がピント位置から離れるほど、ぼけのサイズ(ピクセル)の絶対値が大きくなることが示されている。
【0087】
図16に示す例では、画像を撮像した光学系におけるピント位置が約1500mmである場合を想定している。この場合、例えば約-4.8ピクセルのぼけは光学系(つまり、撮像装置2)から約1000mmの距離に対応し、0ピクセルのぼけは光学系から1500mmの距離に対応し、第4.8ピクセルのぼけは光学系から約750mmの距離に対応する。
【0088】
ここでは、便宜的に、ぼけのサイズ(ピクセル)をX軸上に示す場合について説明したが、上記した
図7~
図9において説明したように、画像に生じるぼけの形状(PSF形状)についても、当該被写体がピント位置よりも近い場合と当該被写体がピント位置よりも遠い場合とで異なる。このため、
図16においてX軸上に示す値(つまり、ぼけ値)は、実際には当該ぼけの形状(PSF形状)を反映した値である。
【0089】
上記した被写体までの距離とぼけの色、サイズ及び形状とは例えば
図16の線分d1によって示されるような相関(1対1に対応する関係)があるため、距離を推定することと、ぼけの色、サイズ及び形状(を示すぼけ値)を推定することとは同義である。
【0090】
なお、例えば統計モデルに直接的に距離を推定させる構成も考えられるが、統計モデルにぼけ値を推定させる構成の方が、光学系におけるピント位置を変更したような場合であっても同一の統計モデルを用いることが可能であり、汎用性が高いといえる。
【0091】
ここで、上記した統計モデルは、画像中の被写体に生じるぼけ(被写体までの距離に応じて非線形に変化するぼけ)を学習する処理(学習処理)を実行することによって生成される。以下、この統計モデルを生成するための学習処理(以下、単に統計モデルの学習処理と表記)について簡単に説明する。
【0092】
まず、
図17を参照して、統計モデルの学習処理の一例について説明する。ここでは、撮像装置2によって撮像された画像を用いた統計モデルの学習処理について説明するが、当該統計モデルの学習処理は、例えば撮像装置2の光学系と同様の光学系を有する他のデバイス(カメラ等)によって撮像された画像を用いて行われてもよい。以下の説明では、統計モデルの学習処理に用いる画像を、便宜的に学習用画像と称する。
【0093】
上記した
図11を参照して説明した第1方式、
図13を参照して説明した第2方式、
図15を参照して説明した第3方式のいずれの方式を用いる場合においても、統計モデルの学習処理は、基本的に、学習用画像に関する情報を統計モデルに入力し、当該統計モデルによって推定されたぼけ値と正解値との誤差を当該統計モデルにフィードバックすることによって行われる。なお、フィードバックとは、誤差が減少するように統計モデルのパラメータ(例えば、重み係数)を更新することをいう。
【0094】
上記した画像からぼけ値を推定する方式として第1方式が適用される場合には、統計モデルの学習処理時においても、学習用画像から抽出された局所領域(画像パッチ)毎に、当該局所領域に関する情報(勾配データ)が統計モデルに入力され、当該統計モデルによって各局所領域内の各画素のぼけ値が推定される。このように推定されたぼけ値と正解値とが比較されることによって得られる誤差が、統計モデルにフィードバックされる。
【0095】
同様に、画像からぼけ値を推定する方式として第2方式が適用される場合には、統計モデルの学習処理時においても、学習用画像から抽出された局所領域(画像パッチ)毎に、当該局所領域に関する情報として勾配データ及び位置情報が統計モデルに入力され、当該統計モデルによって各局所領域内の各画素のぼけ値が推定される。このように推定されたぼけ値と正解値とが比較されることによって得られる誤差が、統計モデルにフィードバックされる。
【0096】
また、画像から距離を推定する方式として第3方式が適用される場合には、統計モデルの学習処理時においても、学習用画像の全領域に関する情報(勾配データ)が一括して統計モデルに入力され、当該統計モデルによって当該学習用画像内の各画素のぼけ値が推定される。このように推定されたぼけ値と正解値とが比較されることによって得られる誤差が、統計モデルにフィードバックされる。
【0097】
なお、上記したように学習用画像に関する情報が統計モデルに入力された場合には、上記した
図4において説明した場合と同様に、ぼけ値の不確かさが算出されるものとする。この場合の統計モデルの学習処理においては、ぼけ値と正解値との誤差を不確かさの二乗で除算した誤差をフィードバックするものとする。この場合、不確かさを無限大とした際には誤差がゼロとなるため、不確かさの二乗をペナルティとして誤差に加算するものとする。
【0098】
上記した統計モデルの学習処理によれば、不確かさで補正された誤差が減少するように統計モデルのパラメータ(例えば、重み係数)が更新される。
【0099】
ここで、例えば統計モデルにより推定されたぼけ値と正解値との誤差がない一方で、不確かさが高い場合、当該ぼけ値は偶然に推定された可能性があると推測することができる。この場合には、ぼけ値(正解値)の学習が不足していることを認識することができる。
【0100】
このように統計モデルにより算出される不確かさを用いた場合には、学習の偏りを減少させることも可能である。
【0101】
なお、本実施形態における統計モデルは、例えばピント位置を固定した状態で撮像装置2から被写体までの距離を変化させながら撮像された学習用画像(つまり、被写体までの距離が既知な学習用画像)を用いた学習処理が繰り返し実行されることによって生成される。また、1つのピント位置についての学習処理が完了した場合には、他のピント位置についても同様に学習処理を実行することによって、より精度の高い統計モデルを生成することができる。
【0102】
なお、本実施形態における統計モデルの学習時に用いられる正解値は、上記したように学習用画像が撮像された際の被写体までの実際の距離から変換されたぼけ値(つまり、当該実際の距離に対応するぼけの色、サイズ、及び形状を示すぼけ値)であるものとする。
【0103】
次に、
図18のフローチャートを参照して、統計モデルの学習処理の処理手順の一例について説明する。なお、
図18に示す処理は、例えば推定装置3において実行されてもよいし、他の装置等において実行されてもよい。
【0104】
まず、予め用意された学習用画像に関する情報が統計モデルに入力される(ステップS1)。この学習用画像は、例えば撮像装置2に備えられるレンズ201を透過した光に基づいてイメージセンサ202によって生成された画像であって、撮像装置2の光学系(レンズ201)の収差の影響を受けた画像である。具体的には、学習用画像には、上記した被写体までの距離に応じて非線形に変化するぼけが生じている。
【0105】
なお、統計モデルの学習処理においては、推定装置3において取得(推定)可能な距離の下限値(手前)から上限値(奥)まで極力細かい粒度の各距離で被写体を撮像した学習用画像が予め用意されているものとする。また、学習用画像としては、被写体が異なる様々な画像を用意しておくことが好ましい。
【0106】
なお、画像からぼけ値を推定する方式として上記した第1方式が適用される場合には、学習用画像に関する情報として、当該学習用画像の局所領域毎に、R画像、G画像及びB画像の勾配データが統計モデルに入力される。
【0107】
画像からぼけ値を推定する方式として上記した第2方式が適用される場合には、学習用画像に関する情報として、当該学習用画像の局所領域毎に、R画像、G画像及びB画像の勾配データと当該局所領域の学習用画像上における位置情報とが統計モデルに入力される。
【0108】
画像からぼけ値を推定する方式として上記した第3方式が適用される場合には、学習用画像に関する情報として、当該学習用画像の全領域分のR画像、G画像及びB画像の勾配データが統計モデルに入力される。
【0109】
なお、本実施形態においてはR画像、G画像及びB画像の勾配データが統計モデルに入力されるものとして説明するが、画像に生じるぼけの形状(PSF形状)の観点からぼけ値を推定する場合には、R画像、G画像及びB画像の勾配データのうちの少なくとも1つの勾配データが統計モデルに入力されればよい。一方、色収差により撮像画像に生じるぼけの色及びサイズの観点からぼけ値を推定する場合には、R画像、G画像及びB画像の勾配データのうちの少なくとも2つの勾配データが統計モデルに入力されればよい。
【0110】
統計モデルに対して学習用画像に関する情報が入力されると、当該統計モデルによって、ぼけ値が推定される(ステップS2)。
【0111】
また、ステップS2の処理が実行されると、統計モデルは、当該ステップS2において推定されたぼけ値に対する不確かさを算出する(ステップS3)。
【0112】
ステップS2において推定されたぼけ値は、学習用画像の撮像時に得られている正解値と比較される(ステップS4)。
【0113】
ステップS4における比較結果(誤差)は、ステップS3において算出された不確かさを用いて補正され、統計モデルにフィードバックされる(ステップS5)。これにより、統計モデルにおいては、誤差が減少するようにパラメータが更新される(つまり、被写体までの距離に応じて学習用画像に生じているぼけが学習される)。
【0114】
上記した
図18に示す処理が学習用画像毎に繰り返し実行されることによって、推定精度の高い統計モデルが生成される。このように生成された統計モデルが、推定装置3(距離取得部32)に保持される。
【0115】
次に、
図19のフローチャートを参照して、移動体の位置姿勢を推定する際の推定装置3の処理手順の一例について説明する。
【0116】
本実施形態において移動体に設置されている撮像装置2は当該移動体が移動する間に連続的に複数の画像を撮像するが、推定装置3に含まれる画像取得部31は、当該撮像装置2によって連続的に撮像された複数の画像を時系列画像として取得する。
【0117】
画像取得部31は、上記したように取得された時系列画像に含まれる第1画像を取得する(ステップS11)。このステップS11において取得される第1画像は、例えば移動体が移動する3次元空間における起点となる位置から撮像装置2によって撮像された画像(例えば、移動体が移動を開始した際に最初に撮像された画像等)であるものとする。
【0118】
なお、第1画像は、例えばR画像、G画像及びB画像から構成される(つまり、RGBの3チャンネルで構成される)カラー画像であるが、ベイヤ配列画像等であってもよい。また、第1画像は、モノクロ画像(グレースケールの1チャンネルの画像)であってもよい。
【0119】
ステップS11の処理が実行されると、推定部34は、当該ステップS11において取得された第1画像から複数の特徴点(特徴点群)を検出する(ステップS12)。このステップS12において検出される特徴点には、第1画像における局所的な特徴量(例えば、輝度差等)に基づいて検出される当該第1画像上の(被写体の)エッジ及びコーナー等が含まれる。特徴点を検出するための特徴量としては、例えばORB等を用いることができる。以下、ステップS12において第1画像から検出された特徴点を、便宜的に第1画像の特徴点と称する。
【0120】
次に、距離取得部32は、当該距離取得部32に保持されている統計モデルを用いて、第1画像に含まれる被写体までの距離及び当該距離の不確かさを取得する(ステップS13)。
【0121】
ステップS13においては、上記した
図18に示すステップS1~S3の処理に相当する処理が実行される。すなわち、ステップS13において、距離取得部32は、第1画像に関する情報が統計モデルに入力されることによって当該統計モデルから出力されるぼけ値及び当該ぼけ値の不確かさを取得する。
【0122】
なお、第1画像に関する情報が統計モデルに入力された場合には当該第1画像を構成する画素毎にぼけ値及び当該ぼけ値の不確かさが出力されるが、ステップS13においては、第1画像の特徴点の各々の座標(第1画像上のX座標及びY座標)に基づいて、当該特徴点に対応する画素(特徴点画素)について統計モデルから出力されたぼけ値及び当該ぼけ値の不確かさ(以下、特徴点のぼけ値及び不確かさと表記)が取得されればよい。
【0123】
また、ここでは統計モデルが第1画像を構成する画素毎にぼけ値及び当該ぼけ値の不確かさを出力するものとして説明したが、当該統計モデルは、例えば当該画素毎に推定されたぼけ値が当該画素の画素値として割り当てられたぼけ値画像と、当該画素毎に算出されたぼけ値の不確かさが当該画素の画素値として割り当てられた不確かさ画像とを出力するように構築されていてもよい。このような場合であっても、距離取得部32は、当該ぼけ値画像及び不確かさ画像上の特徴点画素の画素値を、当該特徴点のぼけ値及び不確かさとして取得することができる。
【0124】
ここで、上記した
図16において説明したようにぼけ値は当該ぼけ値によって示されるぼけが生じている被写体までの距離と1対1で対応している。このため、距離取得部32は、ステップS13において取得されたぼけ値及び当該ぼけ値の不確かさを、当該ぼけ値に対応する距離及び当該距離の不確かさに変換する(ステップS14)。
【0125】
まず、ステップS14においてぼけ値を当該ぼけ値に対応する距離に変換する処理について説明する。
図20は透視投影モデルに基づいたぼけ値と距離との関係を示しているが、当該ぼけ値と被写体までの距離との関係は、以下の式(1)によって表すことができる。
【数1】
【0126】
すなわち、式(1)によれば、ぼけ値bは、画素(ピクセル)ピッチp、絞り値Fに基づく絞り機構の開口部の径(レンズ201の開口径)a、レンズ201とイメージセンサ202との距離v、当該レンズ201の焦点距離fを用いることによって、被写体のまでの距離uに変換されることができる。
【0127】
なお、上記したようにぼけ値から変換された距離(被写体までの距離)は、現実空間で用いられる長さの単位を伴うものであり、実スケールに基づいている。
【0128】
次に、ステップS14においてぼけ値の不確かさを当該ぼけ値に対応する距離の不確かさに変換する処理について説明する。
図21は、上記したぼけの色、サイズ及び形状を示すぼけ値と当該ぼけ値に対応する距離との関係とともに、当該当該距離と距離の不確かさとの関係を示している。
【0129】
ここで、
図21においては、ぼけ値の不確かさが固定されている場合を想定している。すなわち、
図21によれば、ぼけ値の不確かさが一定であるにもかかわらず、当該ぼけ値の不確かさに対応する距離の不確かさは、距離に応じて変化していることが示されている。
【0130】
具体的には、ぼけ値と距離との関係は非線形であることからぼけ値の不確かさと距離の不確かさとの関係も非線形となるが、当該距離の不確かさは、距離の二乗に対する依存性(距離の二乗に比例する関係)を有する。すなわち、ぼけ値の不確かさが等しい場合であっても、当該ぼけ値に対応する距離(当該ぼけ値から変換される距離)が大きいほど距離の不確かさは大きくなり、特に被写体までの距離が遠距離である場合における距離の不確かさ(推定誤差)が大きい。
【0131】
そこで、本実施形態においては、上記した関係性を考慮したぼけ値の不確かさと距離の不確かさとに関する近似式である以下の式(2)を用いて、ぼけ値の不確かさを距離の不確かさに変換するものとする。
【数2】
【0132】
上記した式(2)に示すように、ぼけ値の不確かさδbは、絞り値F、被写体までの距離u、レンズ201の焦点距離f、画素ピッチpを用いることによって、距離の不確かさδuに変換されることができる。この距離の不確かさδuは、距離uと同じ長さの次元(単位)の幅を有し、実スケールに基づいている。
【0133】
なお、上記した式(1)及び(2)において用いられる画素ピッチp、絞り機構の開口部の径a、レンズ201とイメージセンサ202との距離v、レンズの焦点距離f及び絞り値Fは、時系列画像が撮像される時点で予め求められているものとする。
【0134】
上記したステップS14の処理が実行されることによって、距離取得部32は、第1画像の特徴点毎の距離及び当該距離の不確かさを取得することができる。
【0135】
ここで、上記したステップS14においてぼけ値から変換された距離は移動体の位置姿勢を推定するために用いられるが、当該距離は当該移動体の位置姿勢の推定精度に影響を与えるため、不確かさが大きい距離は当該推定において有用であるとはいえない。
【0136】
このため、抽出部33は、ステップS14においてぼけ値の不確かさから変換された距離の不確かさによる閾値処理を実行する(ステップS15)。
【0137】
具体的には、抽出部33は、第1画像の特徴点毎の距離のうちの不確かさが閾値(予め定められた値)未満である距離を有用な距離として抽出する。なお、ステップS15においては、例えば不確かさが閾値以上である距離を不正値に置き換えるような処理が実行されても構わない。
【0138】
ステップS15の処理が実行されると、推定部34は、当該ステップS15の処理が実行されることによって抽出された第1画像の特徴点の距離(有用な距離)に基づいて、当該特徴点の3次元座標を計算する(ステップS16)。このステップS16においては、有用な距離(つまり、不正値ではない距離)と予め求められている撮像装置2の内部パラメータ(例えば、焦点距離等)とを用いて、当該有用な距離に対応する特徴点の座標(当該第1画像上のカメラ座標)を3次元座標に変換する処理が実行される。なお、ステップS16において計算される第1画像の特徴点の3次元座標は、移動体が移動する3次元空間における起点となる位置(つまり、第1画像が撮像された際の移動体の位置)を基準とした3次元位置を表す。また、この3次元座標は、実スケールに基づく距離(統計モデルから出力されたぼけ値から変換された距離)を用いて計算されるため、実スケールに基づいている。
【0139】
なお、上記したステップS11~S16の処理が実行された場合、ステップS12において検出された特徴点毎に、当該特徴点の情報が推定装置3の内部に保持されるものとする。この特徴点の情報には、当該特徴点の第1画面上の座標、当該特徴点の検出に用いられた特徴量、当該特徴点の距離(当該特徴点について統計モデルから出力されたぼけ値から変換された距離)及び当該特徴点の3次元座標等が含まれる。
【0140】
次に、画像取得部31は、上記した時系列画像に含まれる第2画像を取得する(ステップS17)。なお、ステップS17において取得される第2画像は、上記した第1画像と時系列的に最も近い画像(例えば、当該第1画像の次に撮像された画像)であるものとするが、例えば第1画像と同一の被写体(特徴点)を含むような画像であればよい。
【0141】
ステップS17の処理が実行されると、推定部34は、当該ステップS17において取得された第2画像から複数の特徴点(特徴点群)を検出する(ステップS18)。なお、このステップS18の処理は、上記したステップS12の処理に相当する処理であるため、ここではその詳しい説明を省略する。
【0142】
次に、推定部34は、例えば既に特徴点が検出されている画像の中で時系列的に最も近い画像(ここでは、ステップS11において取得された第1画像)を選択し、当該第1画像から検出された特徴点(第1画像の特徴点)と第2画像から検出された特徴点(第2画像の特徴点)との間の対応づけを行う。この場合、第1画像の特徴点のうちの上記したステップS16において3次元座標が計算された特徴点が第2画像の特徴点と対応づけられるものとする。この特徴点間の対応づけは、例えば上記した特徴量間の距離等を用いて行うことができるが、他の手法により行われてもよい。
【0143】
推定部34は、上記したように対応づけられた特徴点の複数の組を用いて、第2画像が撮像装置2によって撮像された際の移動体の位置姿勢を推定する(ステップS19)。なお、当該ステップS19において、移動体の位置姿勢は、例えば第2画像の特徴点(第1画像の特徴点と対応づけられた特徴点)の当該第2画像上のカメラ座標と、ステップS16において計算された第1画像の特徴点(第2画像の特徴点と対応づけられた特徴点)の3次元座標とに対するPnP(Perspective n-point)問題を解くことにより求めることができる。
【0144】
なお、ステップS19において用いられる第1画像の特徴点の3次元座標は上記したように実スケールに基づいているため、当該ステップS19において推定される移動体の位置姿勢は、実スケールに基づいている。上記したように第1画像が起点となる位置から撮像装置2によって撮像された画像であるものとすると、ステップS19において推定される移動体の位置姿勢は、当該起点となる位置を基準とした場合の第2画像が撮像装置2によって撮像された際の移動体の位置姿勢を実スケールに基づいて表すものである。
【0145】
ステップS19の処理が実行されると、第2画像に対して、上記したステップS13~S16の処理に相当するステップS20~S23の処理が実行される。
【0146】
なお、
図19に示すステップS16及びS23において計算される3次元座標は、SLAMと称される技術における3次元地図の作成に利用することができる。
【0147】
推定部34は、ステップS22の処理が実行されることによって抽出された第2画像の特徴点の距離(有用な距離)に基づいて、当該特徴点の3次元座標を計算する(ステップS23)。このステップS23においては、有用な距離(つまり、不正値ではない距離)と予め求められている撮像装置2の内部パラメータ(例えば、焦点距離等)と第2画像を撮影したときの移動体の位置姿勢とを用いて、当該有用な距離に対応する特徴点の座標(当該第2画像上のカメラ座標)を3次元座標に変換する処理が実行される。なお、ステップS23において計算される第2画像の特徴点の3次元座標は、移動体が移動する3次元空間における起点となる位置(つまり、第2画像が撮像された際の移動体の位置)を基準とした3次元位置を表す。また、この3次元座標は、実スケールに基づく距離(統計モデルから出力されたぼけ値から変換された距離)を用いて計算されるため、実スケールに基づいている。また、詳しい説明は省略するが、上記した第2画像についてステップS17~S23の処理が実行された場合、当該第2画像の特徴点の各々の情報が推定装置3の内部に保持される。
【0148】
ステップS23の処理が実行されると、時系列画像に含まれる全ての画像について処理が実行されたか否かが判定される(ステップS24)。
【0149】
時系列画像に含まれる全ての画像について処理が実行されていないと判定された場合(ステップS24のNO)、ステップS17に戻って処理が繰り返される。この場合、ステップS17においては上記した第2画像の次に撮像された画像が新たな第2画像として取得され、ステップS18以降の処理が実行される。また、この場合におけるステップS19においては、既に特徴点が検出されている画像(つまり、既に特徴点の3次元座標が計算されている画像)の中で時系列的に最も近い画像と、繰り返し実行されたステップS17において取得された新たな第2画像とに基づいて当該新たな第2画像が撮像装置2によって撮像された際の移動体の位置姿勢が推定されることになる。
【0150】
一方、時系列画像に含まれる全ての画像について処理が実行されたと判定された場合(ステップS24のYES)、
図19に示す処理は終了される。
【0151】
上記した
図19に示す処理によれば、連続的に撮像された時系列画像に含まれる各画像の撮像時における実スケールに基づく移動体の位置姿勢を推定することができる。
【0152】
なお、
図19においてはステップS13及びS20の処理が実行されるものとして説明したが、例えば時系列画像が予め撮像装置2によって撮像されて推定装置3の内部に保持されているような場合には、当該ステップS13及びS20の処理は、
図19の処理が実行される前の事前処理として予め実行されていてもよい。このような構成によれば、移動体の位置姿勢を推定する際の推定装置3の処理負荷を軽減することができる。
【0153】
また、
図19においては時系列画像に含まれる全ての画像について処理が実行されたと判定された場合に当該
図19に示す処理が終了されるものとして説明したが、当該
図19に示す処理は、例えば推定システム1の管理者等によって処理の終了が指示(命令)された場合に終了されてもよいし、予め定められたタイミングで終了されても構わない。
【0154】
上記したように本実施形態においては、移動体に設置された撮像装置2によって連続的に撮像された同一の被写体を含む第1及び第2画像(時系列画像)を取得し、当該取得された第1画像に含まれる被写体までの距離(第1距離)及び当該距離の不確かさを取得し、当該取得された距離の不確かさに基づいて当該距離の中から有用な距離(第2距離)を抽出し、当該第1及び第2画像と当該抽出された有用な距離(に基づいて計算される3次元座標)とに基づいて、第2画像が撮像装置2によって撮像された際の移動体の位置姿勢を推定する。
【0155】
本実施形態においては、このような構成により、移動体の位置姿勢を高い精度で推定することができる。
【0156】
具体的には、本実施形態においては、上記した
図19に示す処理が実行されることにより、時系列画像(連続的に撮像された複数の画像)に基づいて例えば当該時系列画像の最初の画像の撮像時の移動体の位置姿勢を基準とした世界座標系に基づく各画像の撮像時における移動体(撮像装置2)の位置姿勢を推定するが、当該移動体の位置姿勢は、画像中の被写体に応じて生じるぼけを示すぼけ値から変換された距離を用いて推定されるため、現実空間で用いられる長さの単位を伴うという観点から実スケールに基づいている。なお、画像中の被写体に応じて生じるぼけを示すぼけ値は、撮像装置2の光学系の収差の影響を受けた画像に生じる、当該画像に含まれる被写体までの距離に応じて非線形に変化するぼけを学習することによって生成された統計モデルを用いて取得される。
【0157】
更に、本実施形態においては、上記した移動体の位置姿勢をぼけ値から変換された距離から抽出された有用な距離(つまり、距離空間における精度が高い距離)を用いて推定する構成であるため、当該推定される移動体の位置姿勢の精度を向上させることができる。
【0158】
また、本実施形態においては、第1画像から検出された特徴点(第1特徴点)毎に被写体までの距離及び当該距離の不確かさを取得し、当該特徴点毎に取得された距離の中から抽出された有用な距離に基づいて実スケールに基づく当該特徴点の3次元座標を計算し、当該3次元座標が計算された特徴点と第2画像から検出された特徴点(第2特徴点)とを対応づけることによって実スケールに基づく位置姿勢を推定する。
【0159】
本実施形態においては、このように特徴点の3次元座標を距離(ぼけ値から変換された距離)から直接計算するため、例えば基本行列推定や三角測量等で他の画像を参照することなく、1つの画像から3次元座標を得る(つまり、3次元地図を作成する)ことができる。なお、3次元地図のスケールが不定である場合には、当該3次元地図を用いて移動体の移動経路を生成するような用途への応用が困難であるが、本実施形態においては、精度の高い実スケールに基づく3次元座標(3次元地図)を得ることができるため、当該用途への応用が可能である。
【0160】
すなわち、本実施形態においては、例えば時系列画像に含まれる画像の数が少ない場合であっても、高速かつロバストに3次元座標を計算し、移動体の位置姿勢を高精度で推定することができる。
【0161】
なお、本実施形態においては、ぼけ値の不確かさから変換された距離の不確かさに基づいて抽出された距離(に基づいて計算された3次元座標)を用いて移動体の位置姿勢を推定するものとして説明したが、例えばぼけ値の不確かさに基づいて抽出されたぼけ値から変換された距離を用いて移動体の位置姿勢を推定する構成も考えられる。
【0162】
しかしながら、上記したようにぼけの不確かさが等しい場合であっても距離が大きいほど距離の不確かさが大きくなる(距離の不確かさは距離の二乗に比例する)ため、本実施形態においては、ぼけ値の不確かさから変換された距離の不確かさに基づいて有用な距離を抽出する。
【0163】
本実施形態においては、このような構成により、例えばぼけ値の不確かさが閾値未満であるが、距離の不確かさが閾値以上となるような距離(当該ぼけ値に対応する距離)が移動体の位置姿勢の推定に用いられることによって当該推定精度が低下することを回避することが可能となる。
【0164】
ところで、本実施形態においては、統計モデルを用いて被写体までの距離及び当該距離の不確かさを取得するものとして説明したが、当該距離及び当該距離の不確かさは、他の手法により取得されてもよい。以下、被写体までの距離及び当該距離の不確かさの取得に関する本実施形態の変形例として、第1及び第2変形例を説明する。
【0165】
まず、第1変形例について説明する。第1変形例においては、LiDAR(Light Detection And Ranging)のような距離センサ(以下、単にLiDARと表記)を用いて被写体までの距離及び当該距離の不確かさを取得するものとする。なお、LiDARは、例えば被写体に照射されたレーザー光の当該被写体からの反射波を受信して、当該反射波に基づいて当該被写体までの距離を測定するために用いられるセンサをいう。
【0166】
この場合、距離取得部32は、撮像装置2によって画像が撮像されると同時に、LiDARによって受信された反射波及び当該反射波の強度(レーザー反射強度)を取得する。この場合、距離取得部32は、取得された反射波を被写体までの距離に変換するとともに、当該反射波の強度を当該距離の不確かさに変換する。なお、反射波の強度と当該反射波の強度から変換される不確かさとの対応関係は、例えば予め用意されたテーブルにおいて保持(定義)されていればよい。このようなテーブルにおいては、例えば反射波の強度が低い場合には不確かさが大きくなり、反射波の強度が高い場合には不確かさが小さくなるような対応関係が保持されていればよい。
【0167】
ここでは、距離取得部32が反射波を被写体までの距離に変換するものとして説明したが、距離取得部32は、当該反射波から変換された距離(つまり、反射波に基づいて測定された距離)をLiDARから取得する構成であってもよい。
【0168】
なお、LiDARを用いて被写体までの距離及び当該距離の不確かさを取得する以外の処理については、上記した本実施形態と同様であるため、ここではその詳しい説明を省略する。
【0169】
ここではレーザー光を照射するLiDARを用いるものとして説明したが、レーザー光以外の電磁波を照射することによって被写体までの距離を測定するような距離センサが用いられても構わない。
【0170】
また、上記した第1変形例において、LiDARは、推定システム1(推定装置3)の一部であってもよいし、推定システム1(推定装置3)の外部に設けられていてもよい。
【0171】
次に、第2変形例について説明する。第2変形例においては、例えば撮像装置2を含む複数の撮像装置を用いて被写体までの距離及び当該距離の不確かさを取得するものとする。なお、第2変形例において用いられる複数の撮像装置間の相対的な位置姿勢(つまり、実スケールに基づく複数の撮像装置間の距離と向きの関係)は既知であるものとする。
【0172】
この場合、距離取得部32は、複数の撮像装置によって(つまり、複数の視点から)同時に撮像された少なくとも2つの画像(以下、ステレオ画像と表記)を取得する。距離取得部32は、取得されたステレオ画像に基づいて、当該ステレオ画像に含まれる1つの画像を構成する画素毎に当該ステレオ画像における視差及び当該視差の不確かさを取得する。なお、このステレオ画像における視差は、例えばエピポーラ幾何に基づくステレオ対応点探索によって取得される。また、第2変形例において、距離取得部32は、例えばステレオ対応点探索において用いられるマッチングの類似度と視差の不確かさ(精度)との対応関係を保持するテーブルを予め保持しているものとする。距離取得部32は、このようなテーブルを参照することにより、上記したマッチングの類似度から視差の不確かさを取得することができる。
【0173】
距離取得部32は、取得されたステレオ画像における視差と被写体までの距離との理論的な関係に基づいて、当該被写体までの距離を計算する。また、視差の不確かさは、上記した式(2)のような予め用意された近似式により、距離の不確かさに変換されるものとする。
【0174】
なお、複数の撮像装置を用いて被写体までの距離及び当該距離の不確かさを取得する以外の処理については、上記した本実施形態と同様であるため、ここではその詳しい説明を省略する。
【0175】
ここでは複数の撮像装置が撮像装置2を含むものとして説明したが、第2変形例は、例えば当該撮像装置2とは別個の複眼のカメラを用いて被写体までの距離及び当該距離の不確かさを取得するような構成であってもよい。この場合における複眼のカメラは、推定システム1(推定装置3)の一部であってもよいし、推定システム1(推定装置3)の外部に設けられていてもよい。
【0176】
上記したように本実施形態においては画像に含まれる被写体までの距離及び当該距離の不確かさが取得される構成であればよく、本実施形態は、上記した統計モデルを用いて距離及び当該距離の不確かさを取得する構成に限られない。
【0177】
なお、本実施形態においては上記した不確かさが閾値未満である距離を有用な距離として抽出するものとして説明したが、当該有用な距離は、距離の不確かさ以外の情報を用いて抽出されてもよい。
【0178】
具体的には、有用な距離は、例えば距離に基づいて抽出されてもよい。この場合、上記したように距離が大きいほど距離の不確かさが大きくなるという観点に基づき、距離が閾値未満である距離を有用な距離として抽出する構成とすることができる。
【0179】
また、例えば本実施形態において説明したぼけ値、第1変形例において説明した反射波及び第2変形例において説明した視差はそれぞれ被写体までの距離に関する情報(以下、距離情報と表記)であるということができ、本実施形態において説明したぼけ値の不確かさ、第1変形例において説明した反射波の強度及び第2変形例において説明した視差の不確かさはそれぞれ当該距離情報の不確かさということができるが、有用な距離は、当該距離情報または当該距離情報の不確かさに基づいて抽出されてもよい。この場合、例えばぼけ値(ぼけのサイズ)や当該ぼけ値の不確かさが閾値未満である距離(当該ぼけ値から変換された距離)を有用な距離として抽出するような構成とすることができる。
【0180】
更に、上記したように特徴点は輝度差等に基づいて検出されることから、適切な特徴点の距離を有用な距離として抽出するために、当該輝度に基づいて有用な距離を抽出するような構成としてもよい。
【0181】
上記したように本実施形態においては、距離の不確かさと、距離、距離情報、距離情報の不確かさ及び輝度(情報)のうちの少なくとも1つとに基づいて有用な距離を抽出する構成であってもよい。
【0182】
(第2実施形態)
次に、第2実施形態について説明する。なお、本実施形態においては、前述した第1実施形態と同様の部分についての説明を省略し、当該第1実施形態と異なる部分について主に説明する。また、本実施形態に係る推定システム(撮像装置及び推定装置)の構成については、前述した第1実施形態と同様であるため、適宜、
図1~
図3を用いて説明する。
【0183】
本実施形態は、撮像装置2(単眼のカメラ)によって撮像された時系列画像に含まれる少なくとも2つの画像と当該2つの画像の各々から検出された特徴点とを用いた単眼SLAM処理が実行されることによって推定されるスケールが不定な移動体の位置姿勢を、有用な距離を用いて補正(スケール補正)する点で、前述した第1実施形態とは異なる。
【0184】
以下、本実施形態に係る推定装置の動作について説明する。なお、本実施形態に係る推定装置3は、撮像装置2によって撮像される時系列画像(連続的に撮像される複数の画像)のうちの2つの画像について初期化処理を実行した後に、例えば当該画像の後に撮像された画像について追跡処理を繰り返し実行するように動作する。
【0185】
図22のフローチャートを参照して、上記した初期化処理の一例について説明する。前述した第1実施形態と同様に、移動体に設置されている撮像装置2は当該移動体が移動する間に連続的に複数の画像を撮像するが、推定装置3に含まれる画像取得部31は、当該撮像装置2によって連続的に撮像された複数の画像を時系列画像として取得する。
【0186】
画像取得部31は、上記したように取得された時系列画像に含まれる第1及び第2画像を取得する(ステップS31)。なお、第1及び第2画像は、例えば時系列画像の中で時系列的に最も近い2つの画像である。ここでは、例えば第1画像が時系列画像の最初の画像であり、第2画像が時系列的に当該第1画像の次に撮像された画像である場合を想定している。
【0187】
ステップS31の処理が実行されると、推定部34は、当該ステップS31において取得された第1及び第2画像の各々から複数の特徴点(特徴点群)を検出する(ステップS32)。なお、このステップS32の処理は、前述した
図19に示すステップS12の処理に相当する処理であるため、ここではその詳しい説明を省略する。
【0188】
次に、推定部34は、ステップS32において検出された第1及び第2画像の特徴点間の対応づけを行うことによって(つまり、特徴点の対応関係に基づいて)第2画像が撮像装置2によって撮像された際の移動体の位置姿勢及び当該第2画像の特徴点の3次元座標を推定する(ステップS33)。このステップS33の処理は、例えば対応づけられた特徴点の座標(第1及び第2画像上のカメラ座標)の組に基づく基本行列(8点アルゴリズムによる基本行列推定)等を用いて実行される。
【0189】
このステップS33においては例えば第1画像が撮像された際の移動体の位置姿勢を基準とした場合の第2画像が撮像された際の移動体の位置姿勢が推定されるが、当該ステップS33の処理は上記した単眼SLAM処理に相当する。すなわち、ステップS33において推定された移動体の位置姿勢は、現実空間における単位に基づいておらず、スケールが不定である。ステップS33において推定される3次元座標についても同様である。
【0190】
ステップS33の処理が実行されると、
図19に示すステップS20~S23の処理に相当するステップS34~S37の処理が実行される。
【0191】
次に、推定部34は、ステップS33において推定された第2画像の特徴点の3次元座標(スケール不定)とステップS37において計算された第2画像の特徴点の3次元座標(実スケール)とに基づいて、ステップS33において推定された移動体の位置姿勢のスケールを補正するためのパラメータ(以下、スケール補正パラメータと表記)を決定する(ステップS38)。このスケール補正パラメータは、ステップS33において推定されたスケールが不定な3次元座標に当該スケール補正のパラメータを乗算することによって得られる3次元座標と、ステップS37において計算された実スケールに基づく3次元座標との誤差が最小化するように決定される。
【0192】
推定部34は、上記したステップS38において決定されたスケール補正パラメータをステップS33において推定された移動体の位置(スケール不定)に対して乗算することによって、当該移動体の位置姿勢を実スケールに基づく移動体の位置姿勢に補正する(ステップS39)。
【0193】
上記した初期化処理が実行された場合、第2画像の特徴点の各々の情報は、推定装置3の内部に保持される。
【0194】
なお、
図22においては、便宜的に、ステップS31~S37の処理が順に実行されるものとして説明したが、例えばステップS33の処理は、ステップS34~S37の処理と並列に実行されてもよいし、当該ステップS37の処理とステップS38の処理との間に実行されてもよい。
【0195】
次に、
図23のフローチャートを参照して、上記した追跡処理の一例について説明する。推定装置3に含まれる画像取得部31は、撮像装置2によって撮像された時系列画像に含まれる第3画像を取得する(ステップS41)。なお、第3画像は、上記した初期化処理における第2画像と時系列的に最も近い画像であり、例えば第2画像の次に撮像された画像である。
【0196】
ステップS41の処理が実行されると、推定部34は、当該ステップS41において取得された第3画像から複数の特徴点(特徴点群)を検出する(ステップS42)。なお、このステップS42の処理は、前述した
図19に示すステップS12の処理に相当する処理であるため、ここではその詳しい説明を省略する。
【0197】
次に、
図19に示すステップS19の処理に相当するステップS43の処理が実行される。なお、詳しい説明を省略するが、このステップS43においては、第3画像(の特徴点の当該第3画像上のカメラ座標)と当該第3画像と時系列的に最も近い第2画像(の特徴点の3次元座標)とを用いて、当該第3画像が撮像装置2によって撮像された際の実スケールに基づく移動体の位置姿勢が推定される。
【0198】
ステップS43の処理が実行されると、推定部34は、初期化処理において補正された第2画像が撮像された際の移動体の位置姿勢及び当該ステップS43において推定された第3画像が撮像された際の移動体の位置姿勢を用いて、三角測量の原理に基づき当該第3画像の特徴点の3次元座標(以下、第1の3次元座標と表記)を計算する(ステップS44)。このステップS44の処理は、例えば第2画像の特徴点と対応づけられていない(つまり、3次元座標が保持されていない)特徴点について実行されるものとする。なお、上記した第2画像が撮像された際の移動体の位置姿勢及び当該ステップS43において推定された第3画像が撮像された際の移動体の位置姿勢は実スケールに基づいているため、ステップS44において計算される第1の3次元座標は、実スケールに基づいている。
【0199】
ステップS44の処理が実行されると、第3画像に対して、前述した
図19に示すステップS20~S23の処理に相当するステップS45~S48の処理が実行される。以下の説明においては、ステップS48において計算された第3画像の特徴点の3次元座標を、便宜的に、第2の3次元座標と称する。
【0200】
ここで、上記したステップS43において推定された移動体の位置姿勢は実スケールに基づいているが、実際には推定誤差の影響があるため、時系列画像に含まれる画像毎に処理が繰り返し実行されることによって当該誤差が蓄積し、移動体の位置姿勢の推定精度が悪化する(つまり、スケールドリフトが生じる)可能性がある。なお、このような移動体の位置姿勢を用いてステップS44において計算される第1の3次元座標についても同様に誤差が生じる可能性がある。
【0201】
このため、推定部34は、上記した
図22に示すステップS38及びS39の処理に相当するステップS49及びS50の処理を実行する。
【0202】
すなわち、ステップS49においては、ステップS44において計算された第1の3次元座標とステップS48において計算された第2の3次元座標に基づいてスケール補正パラメータが決定される。このスケール補正パラメータは、ステップS44において計算された第1の3次元座標に当該スケール補正パラメータを乗算することによって得られる3次元座標と、ステップS48において計算された第2の3次元座標との誤差が最小化するように決定される。
【0203】
また、ステップS50においては、上記したステップS49において決定されたスケール補正パラメータをステップS43において推定された移動体の位置に対して乗算することによって、当該移動体の位置姿勢を補正する(ステップS50)。
【0204】
ステップS50の処理が実行された場合、前述した
図19に示すステップS24の処理に相当するステップS51の処理が実行される。
【0205】
なお、ステップS51において時系列画像に含まれる全ての画像について処理が実行されていないと判定された場合(ステップS51のNO)、ステップS41に戻って処理が繰り返される。なお、この場合に実行されるステップS41においては、例えば上記した第3画像の次に撮像された画像が新たな第3画像として取得され、ステップS42以降の処理が実行される。すなわち、
図23に示すステップS41~S50の処理は、時系列画像に含まれる画像毎に繰り返し実行される。
【0206】
上記した
図23に示す追跡処理によれば、連続的に撮像された時系列画像に含まれる各画像の撮像時における実スケールに基づく移動体の位置姿勢を推定することができる。
【0207】
なお、
図23においては、便宜的に、ステップS41~S51の処理が順に実行されるものとして説明したが、例えばステップS43及びS44の処理は、例えばステップS45~S48の処理と並列に実行されてもよいし、当該ステップS48の処理とステップS49の処理との間に実行されてもよい。
【0208】
上記したように本実施形態においては、移動体に設置された撮像装置2によって連続的に撮像された同一の被写体を含む第1及び第2画像を取得し、当該取得された第1及び第2画像から複数の特徴点を検出し、当該第1及び第2画像から検出された複数の特徴点を対応づけることによって当該第2画像が撮像装置2によって撮像された際のスケールが不定な移動体の位置姿勢を推定する。また、本実施形態においては、第2画像に含まれる被写体までの距離(第1距離)及び当該距離の不確かさを取得し、当該取得された距離の不確かさに基づいて、当該距離の中から有用な距離(第2距離)を抽出し、当該抽出された第2距離(に基づいて計算される3次元座標)に基づいて、上記したスケールが不定な移動体の位置姿勢を実スケールに基づく移動体の位置姿勢に補正する。
【0209】
本実施形態においては、このような構成により、連続的に撮像された時系列画像に基づいて、各画像の撮像時における実スケールに基づく移動体の位置姿勢を高い精度で推定することができる。
【0210】
また、本実施形態においては、上記した追跡処理においても有用な距離(3次元座標)に基づいて移動体の位置姿勢を逐次補正するため、上記したスケールドリフトを回避することができる。
【0211】
なお、本実施形態においては特徴点の対応関係に基づいてスケールが不定な移動体の位置姿勢及び当該特徴点の3次元座標が推定されるものとして説明したが、本実施形態は、スケール補正のために用いられる特徴点の3次元座標を得ることができる構成であれば、他の手法でスケールが不定な移動体の位置姿勢が推定されてもよい。
【0212】
また、本実施形態においては、上記した
図23に示すステップS41~S50の処理が時系列画像に含まれる画像毎に繰り返し実行されるものとして説明したが、スケールを補正するための処理(ステップS49及びS50の処理)は、全ての画像について実行する(つまり、毎フレーム行う)必要はなく、所定の画像についてのみ(つまり、所定のフレーム間隔毎に)実行されてもよい。このスケールを補正する処理が実行される間隔は、例えば移動体(撮像装置2)の移動量等に基づいて動的に変更(決定)されてもよい。
【0213】
更に、前述した第1実施形態において説明した第1及び第2変形例は、本実施形態に適用されても構わない。
【0214】
以上述べた少なくとも1つの実施形態によれば、移動体の位置姿勢を高い精度で推定することが可能な推定装置、方法及びプログラムを提供することができる。
【0215】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【0216】
1…推定システム、2…撮像装置、3…推定装置、31…画像取得部、32…距離取得部、33…抽出部、34…推定部、201…レンズ、202…イメージセンサ、203…不揮発性メモリ、204…通信デバイス、301…CPU、302…不揮発性メモリ、303…RAM、304…通信デバイス。