(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-11
(45)【発行日】2023-10-19
(54)【発明の名称】ポーズ情報を取得する方法及び装置
(51)【国際特許分類】
G06T 7/70 20170101AFI20231012BHJP
【FI】
G06T7/70 Z
(21)【出願番号】P 2019114797
(22)【出願日】2019-06-20
【審査請求日】2022-02-21
(31)【優先権主張番号】10-2018-0116785
(32)【優先日】2018-10-01
(33)【優先権主張国・地域又は機関】KR
(73)【特許権者】
【識別番号】390019839
【氏名又は名称】三星電子株式会社
【氏名又は名称原語表記】Samsung Electronics Co.,Ltd.
【住所又は居所原語表記】129,Samsung-ro,Yeongtong-gu,Suwon-si,Gyeonggi-do,Republic of Korea
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100091214
【氏名又は名称】大貫 進介
(72)【発明者】
【氏名】鄭 暉龍
(72)【発明者】
【氏名】姜 ▲ちょる▼友
(72)【発明者】
【氏名】文 惠媛
(72)【発明者】
【氏名】鄭 景夫
(72)【発明者】
【氏名】洪 性勳
【審査官】伊知地 和之
(56)【参考文献】
【文献】米国特許出願公開第2015/0235378(US,A1)
【文献】特開2013-225245(JP,A)
【文献】特開2017-060091(JP,A)
【文献】国際公開第2013/111229(WO,A1)
【文献】特開2018-004420(JP,A)
【文献】特開2014-175996(JP,A)
【文献】国際公開第2015/029934(WO,A1)
【文献】特開2018-147095(JP,A)
【文献】特開2011-009893(JP,A)
【文献】国際公開第2005/010817(WO,A1)
【文献】国際公開第2006/035755(WO,A1)
【文献】荒木望 et al.,Unscented Kalman Filterによるステレオカメラのパラメータ推定,[online],2007年,https://www.jstage.jst.go.jp/article/kikaic1979/73/726/73_726_495/_article/-char/ja/
【文献】J. S. Goddard et al.,Pose and motion estimation using dual quaternion-based extended Kalman filtering,[online],1998年03月06日,https://www.spiedigitallibrary.org/conference-proceedings-of-spie/3313/1/Pose-and-motion-estimation-using-dual-quaternion-based-extended-Kalman/10.1117/12.302453.full?SSO=1
【文献】Fernando Herranz et al.,Camera pose estimation using particle filters,[online],2011年11月10日,https://ieeexplore.ieee.org/document/6071919
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/70
(57)【特許請求の範囲】
【請求項1】
第1センサで撮影された複数のフレームから第1頂点を選択するステップと、
第2センサで検出された動き情報に基づいて、前記フレーム間の回転情報を推定するステップと、
前記第1頂点のうち、動的オブジェクトに該当する第2頂点を除いた残りの頂点である第3頂点に基づいて、前記推定された回転情報を補正するステップと、
前記第3頂点及び前記補正された回転情報に基づいて、前記フレーム間の移動情報を取得するステップと、
前記補正された回転情報及び前記移動情報を出力するステップと、
を含
み、前記第1頂点を選択するステップは、フレームに含まれるピクセルの強度に基づいて、複数のクラスに対応する候補頂点を決定し、決定された候補頂点の中から前記第1頂点を選択するステップを含む、ポーズ情報を取得する方法。
【請求項2】
前記回転情報を推定するステップは、
前記動き情報に基づいて、前記複数のフレームに対応する自体運動の状態を推定するステップと、
前記推定された状態に基づいて、前記フレーム間の回転情報を推定するステップと、
を含む、請求項1に記載のポーズ情報を取得する方法。
【請求項3】
前記状態を推定するステップは、第1視点の状態と第2視点の動き情報に基づいて、第2視点の状態を推定するステップを含む、請求項2に記載のポーズ情報を取得する方法。
【請求項4】
前記自体運動の状態は、前記回転情報を推定するための第1状態及び前記移動情報を推定するための第2状態を含む、請求項2に記載のポーズ情報を取得する方法。
【請求項5】
前記フレーム間の回転情報を推定するステップは、カルマンフィルタ、拡張されたカルマンフィルタ、繰り返し拡張されたカルマンフィルタ、無香料カルマンフィルタ、及び粒子フィルタのいずれか1つを用いて前記フレーム間の回転情報を推定するステップを含む、請求項1ないし4のうちの何れか一項に記載のポーズ情報を取得する方法。
【請求項6】
前記第2頂点は、前記回転情報に基づいて識別される、請求項1ないし5のうちの何れか一項に記載のポーズ情報を取得する方法。
【請求項7】
前記推定された回転情報を補正するステップは、
前記推定された回転情報に基づいて、前記第1頂点のうち動的オブジェクトに該当する第2頂点を除去するステップと、
前記第3頂点に基づいて、前記フレーム間の回転情報を推定するステップと、
前記第3頂点に基づいて推定された回転情報を用いて、前記動き情報に基づいて推定された回転情報を補正するステップと、
を含む、請求項1ないし6のうちの何れか一項に記載のポーズ情報を取得する方法。
【請求項8】
前記フレームは、第1視点で撮影された第1フレーム及び第2視点で撮影された第2フレームを含み、
前記第2頂点を除去するステップは、
前記第1視点で推定された第1回転情報と、前記第2視点で推定された第2回転情報間の回転変化量を算出するステップと、
前記回転変化量に基づいて前記第1頂点のうち動的オブジェクトに該当する第2頂点を除去するステップと、
を含む、請求項7に記載のポーズ情報を取得する方法。
【請求項9】
前記第3頂点に基づいて前記回転情報を推定するステップは、前記第3頂点に対してPNP関数、ガウス・ニュートン最適化(Gauss Newton optimization)関数、及びレーベンバーグ・マーカート最適化(levenberg marquardt optimization)関数のいずれか1つを適用して前記回転情報を推定するステップを含む、請求項7に記載のポーズ情報を取得する方法。
【請求項10】
前記推定された回転情報を補正するステップは、前記第3頂点に基づいて推定された回転情報と前記動き情報に基づいて推定された回転情報の間の差に基づいて、前記フレームのうち少なくとも1つに対応する自体運動の状態を更新するステップを含む、請求項7に記載のポーズ情報を取得する方法。
【請求項11】
前記移動情報を出力するステップは、前記補正された回転情報に基づいて、前記第3頂点が属するフレーム間の強度差に関するエネルギー関数が決定された目標値よりも小さくなるように前記移動情報を決定するステップを含む、請求項1ないし10のうちの何れか一項に記載のポーズ情報を取得する方法。
【請求項12】
前記エネルギー関数は、ガウス・ニュートン最適化関数、及びレーベンバーグ・マーカート最適化関数のいずれか1つを含む、請求項11に記載のポーズ情報を取得する方法。
【請求項13】
前記第1頂点を選択するステップは、
前記複数のフレームを分割するブロックごとに前記第1頂点を選択するステップと、
前記複数のフレームに含まれたクラスごとに前記第1頂点を選択するステップと、
のうち少なくとも1つを含む、請求項1ないし12のうちの何れか一項に記載のポーズ情報を取得する方法。
【請求項14】
前記ブロックごとに前記第1頂点を選択するステップは、
前記フレームそれぞれを一定の大きさのブロックに均等に分割するステップと、
前記均等に分割されたブロックそれぞれから前記第1頂点を選択するステップと、
を含む、請求項13に記載のポーズ情報を取得する方法。
【請求項15】
前記クラスごとに前記第1頂点を選択するステップは、
前記フレームそれぞれに含まれたピクセルの強度傾斜度の大きさ、方向、及び前記ピクセルと周辺ピクセルとの強度関係のうち少なくとも1つに基づいて複数のクラスに対応する候補頂点を決定するステップと、
前記複数のクラスそれぞれに含まれた候補頂点から前記第1頂点を選択するステップと、
を含む、請求項13に記載のポーズ情報を取得する方法。
【請求項16】
前記第1頂点を選択するステップは、
前記フレームそれぞれの中心にある頂点に第1加重値を与えるステップと、
前記フレームそれぞれの中心から外郭に行くほど次第に前記頂点に前記第1加重値に比べて少ない第2加重値を与えるステップと、
前記第1加重値及び前記第2加重値に基づいて、前記頂点のうち前記第1頂点を選択するステップと、
を含む、請求項1ないし12のうちの何れか一項に記載のポーズ情報を取得する方法。
【請求項17】
請求項1ないし請求項16のいずれか一項に記載の方法をコンピュータに実行させるコンピュータプログラム。
【請求項18】
ポーズ情報を出力装置であって、
複数のフレームを撮影する第1センサと、
動き情報を検出する第2センサと、
少なくとも1つのプロセッサと、
を含み、前記プロセッサは、
前記複数のフレームから第1頂点を選択し、
前記動き情報に基づいて前記フレーム間の回転情報を推定し、
前記第1頂点のうち、動的オブジェクトに該当する第2頂点を除いた残りの頂点である第3頂点に基づいて前記推定された回転情報を補正し、
前記第3頂点及び前記補正された回転情報に基づいて前記フレーム間の移動情報を算出
し、
前記プロセッサは、前記複数のフレームから第1頂点を選択する場合に、フレームに含まれるピクセルの強度に基づいて、複数のクラスに対応する候補頂点を決定し、決定された候補頂点の中から前記第1頂点を選択する、ポーズ情報を出力する装置。
【請求項19】
前記プロセッサは、
前記動き情報に基づいて、前記複数のフレームに対応する自体運動の状態を推定し、
前記推定された状態に基づいて、前記フレーム間の回転情報を推定する、請求項18に記載のポーズ情報を出力する装置。
【請求項20】
前記プロセッサは、
前記推定された回転情報に基づいて、前記第1頂点のうち動的オブジェクトに該当する第2頂点を除去し、
前記第1頂点のうち前記第2頂点を除いた第3頂点に基づいて、前記フレーム間の回転情報を推定し、
前記第3頂点に基づいて推定された回転情報を用いて、前記動き情報に基づいて推定された回転情報を補正する、請求項18に記載のポーズ情報を出力する装置。
【請求項21】
前記プロセッサは、前記補正された回転情報に基づいて、前記第3頂点が属するフレーム間の強度差に関するエネルギー関数が決定された目標値よりも小さくなるように前記移動情報を決定する、請求項18に記載のポーズ情報を出力する装置。
【請求項22】
前記フレームそれぞれは車両前方の走行映像を含む、請求項18に記載のポーズ情報を出力する装置。
【請求項23】
ポーズ検出装置であって、
映像フレームをキャプチャーする第1センサと、
動き情報を検出する第2センサと、
ヘッドアップディスプレイ(HUD)と、
プロセッサと、
を含み、前記プロセッサは、
前記映像フレームから第1頂点を選択し、前記動き情報に基づいて前記映像フレーム間の回転情報を推定し、
前記第1頂点のうち、動的オブジェクトに該当する第2頂点を除いた残りの頂点である第3頂点に基づいて前記推定された回転情報を補正し、
前記第3頂点と前記補正された回転情報に基づいて前記映像フレーム間の変換情報を取得し、
前記補正された回転情報及び前記変換情報に基づいて、前記ヘッドアップディスプレイ上に仮想オブジェクトをレンダリング
し、
前記プロセッサは、前記映像フレームから第1頂点を選択する場合に、映像フレームに含まれるピクセルの強度に基づいて、複数のクラスに対応する候補頂点を決定し、決定された候補頂点の中から前記第1頂点を選択する、ポーズ検出装置。
【請求項24】
前記映像フレーム、前記動き情報、前記回転情報、前記補正された回転情報、前記変換情報、並びに実行されるとき前記回転情報及び前記変換情報のうち任意の1つ又は任意の組合せを決定するようにプロセッサを指図する命令語を保存するメモリをさらに含む、請求項23に記載のポーズ検出装置。
【発明の詳細な説明】
【技術分野】
【0001】
実施形態は、視覚的慣性距離計(Visual Inertial Odometry;VIO)基盤のポーズ情報を取得する方法及び装置に関する。
【背景技術】
【0002】
映像に基づいた測位方法には、例えば、SfM(Structure from Motion)、SLAM(Simultaneous Localization and Mapping)、VO(Visual Odometry)などのように様々な方法が存在する。このような測位方法は、ホモグラフィを用いて映像を撮影したカメラの位置及び撮影された映像における各ピクセルの深度値を算出して測位を行う。ホモグラフィは、カメラで撮影した連続的な一連の映像のピクセル間の相関関係を示す。しかし、このような測位方法では、動的オブジェクトの動きを追跡することで発生するトラッキング損失及び/又はトラッキング性能の低下による正確度の減少が発生する虞がある。それだけではなく、映像から特徴点を選択するとき外れ値(Outlier)になる領域、言い換えれば、動的オブジェクトに対応する領域を繰り返し選択及び/又は除去するために多くのリソースが費やされる。
【先行技術文献】
【特許文献】
【0003】
【文献】米国特許出願公開第2003/0218672号明細書
【発明の概要】
【発明が解決しようとする課題】
【0004】
一実施形態の目的は、カメラが撮影した映像情報と慣性測位装置(例えば、IMUセンサ)が検出した動き情報とをともに活用することで、カメラの動き(静的オブジェクトの動き)と動的オブジェクトの動きとを区分してポーズ情報をより正確に算出することにある。
【0005】
一実施形態の目的は、慣性測位装置は、映像とは関係がなく動き情報を提供するため、動き情報を映像情報と結合することで、ポーズ情報の正確度及び演算速度を向上させることにある。
【0006】
一実施形態の目的は、6自由度ポーズ情報のうち、回転情報(VIO’s Rotation)を取得する過程と移動情報(VIO’s Translation)を取得する過程とを分離して行うことで、回転情報の正確度を向上させることにある。
【0007】
一実施形態の目的は、回転情報の算出時にIMUセンサで検出された動き情報をフィルタを介して受信し、フィルタを介して伝えられる動き情報(に基づいて推定された回転情報)を映像情報によって推定された回転情報を補正するために利用することで、回転情報の正確度を向上させることにある。
【課題を解決するための手段】
【0008】
一側面によれば、ポーズ情報を取得する方法は、第1センサで撮影された複数のフレームから第1頂点を選択するステップと、第2センサで検出された動き情報に基づいて、前記フレーム間の回転情報を推定するステップと、前記第1頂点のうち、動的オブジェクトに該当する第2頂点を除いた残りの頂点である第3頂点に基づいて、前記推定された回転情報を補正するステップと、前記第3頂点及び前記補正された回転情報に基づいて、前記フレーム間の移動情報を取得するステップと、前記補正された回転情報及び前記移動情報を出力するステップとを含む。
【0009】
前記回転情報を推定するステップは、前記動き情報に基づいて、前記複数のフレームに対応する自体運動の状態を推定するステップと、前記推定された状態に基づいて、前記フレーム間の回転情報を推定するステップとを含み得る。
【0010】
前記状態を推定するステップは、第1視点の状態と第2視点の動き情報に基づいて、第2視点の状態を推定するステップを含み得る。
【0011】
前記自体運動の状態は、前記回転情報を推定するための第1状態及び前記移動情報を推定するための第2状態を含み得る。
【0012】
前記フレーム間の回転情報を推定するステップは、カルマンフィルタ、拡張されたカルマンフィルタ、繰り返し拡張されたカルマンフィルタ、無香料カルマンフィルタ、及び粒子フィルタのいずれか1つを用いて前記フレーム間の回転情報を推定するステップを含み得る。
【0013】
前記第2頂点は、前記回転情報に基づいて識別され得る。
【0014】
前記推定された回転情報を補正するステップは、前記推定された回転情報に基づいて、前記第1頂点のうち動的オブジェクトに該当する第2頂点を除去するステップと、前記第3頂点に基づいて、前記フレーム間の回転情報を推定するステップと、前記第3頂点に基づいて推定された回転情報を用いて、前記動き情報に基づいて推定された回転情報を補正するステップとを含み得る。
【0015】
前記フレームは、第1視点で撮影された第1フレーム及び第2視点で撮影された第2フレームを含み、前記第2頂点を除去するステップは、前記第1視点で推定された第1回転情報と、前記第2視点で推定された第2回転情報間の回転変化量を算出するステップと、前記回転変化量に基づいて前記第1頂点のうち動的オブジェクトに該当する第2頂点を除去するステップとを含み得る。
【0016】
前記第3頂点に基づいて前記回転情報を推定するステップは、前記第3頂点に対してPNP関数、ガウス・ニュートン最適化(Gauss Newton optimization)関数、及びレーベンバーグ・マーカート最適化(levenberg marquardt optimization)関数のいずれか1つを適用して前記回転情報を推定するステップを含み得る。
【0017】
前記推定された回転情報を補正するステップは、前記第3頂点に基づいて推定された回転情報と前記動き情報に基づいて推定された回転情報の間の差に基づいて、前記フレームのうち少なくとも1つに対応する自体運動の状態を更新するステップを含み得る。
【0018】
前記移動情報を出力するステップは、前記補正された回転情報に基づいて、前記第3頂点が属するフレーム間の強度差に関するエネルギー関数が決定された目標値よりも小さくなるように前記移動情報を決定するステップを含み得る。
【0019】
電気エネルギー関数は、ガウス・ニュートン最適化関数、及びレーベンバーグ・マーカート最適化関数のいずれか1つを含み得る。
【0020】
前記第1頂点を選択するステップは、前記複数のフレームを分割するブロックごとに前記第1頂点を選択するステップと、前記複数のフレームに含まれたクラスごとに前記第1頂点を選択するステップと、のうち少なくとも1つを含み得る。
【0021】
前記ブロックごとに前記第1頂点を選択するステップは、前記フレームそれぞれを一定の大きさのブロックに均等に分割するステップと、前記均等に分割されたブロックそれぞれから前記第1頂点を選択するステップとを含み得る。
【0022】
前記クラスごとに前記第1頂点を選択するステップは、前記フレームそれぞれに含まれたピクセルの強度傾斜度の大きさ、方向、及び前記ピクセルと周辺ピクセルとの強度関係のうち少なくとも1つに基づいて複数のクラスに対応する候補頂点を決定するステップと、前記複数のクラスそれぞれに含まれた候補頂点から前記第1頂点を選択するステップとを含み得る。
【0023】
前記第1頂点を選択するステップは、前記フレームそれぞれの中心にある頂点に第1加重値を与えるステップと、前記フレームそれぞれの中心から外郭に行くほど次第に前記頂点に前記第1加重値に比べて少ない第2加重値を与えるステップと、前記第1加重値及び前記第2加重値に基づいて、前記頂点のうち前記第1頂点を選択するステップとを含み得る。
【0024】
一実施形態によると、ポーズ情報を出力する装置は、複数のフレームを撮影する第1センサと、動き情報を検出する第2センサと、前記複数のフレームから第1頂点を選択し、前記動き情報に基づいて前記フレーム間の回転情報を推定し、前記第1頂点のうち、動的オブジェクトに該当する第2頂点を除いた残りの頂点である第3頂点に基づいて前記推定された回転情報を補正し、前記第3頂点及び前記補正された回転情報に基づいて前記フレーム間の移動情報を算出する、少なくとも1つのプロセッサを含む。
【0025】
前記プロセッサは、前記動き情報に基づいて、前記複数のフレームに対応する自体運動の状態を推定し、前記推定された状態に基づいて、前記フレーム間の回転情報を推定し得る。
【0026】
前記プロセッサは、前記推定された回転情報に基づいて、前記第1頂点のうち動的オブジェクトに該当する第2頂点を除去し、前記第1頂点のうち前記第2頂点を除いた第3頂点に基づいて、前記フレーム間の回転情報を推定し、前記第3頂点に基づいて推定された回転情報を用いて、前記動き情報に基づいて推定された回転情報を補正し得る。
【0027】
前記プロセッサは、前記補正された回転情報に基づいて、前記第3頂点が属するフレーム間の強度差に関するエネルギー関数が決定された目標値よりも小さくなるように前記移動情報を決定し得る。
【0028】
前記フレームそれぞれは車両前方の走行映像を含み得る。
【0029】
一実施形態によると、ポーズ検出装置は、映像フレームをキャプチャーする第1センサと、動き情報を検出する第2センサと、ヘッドアップディスプレイ(HUD)と、前記映像フレームから第1頂点を選択し、前記動き情報に基づいて前記映像フレーム間の回転情報を推定し、前記第1頂点のうち、動的オブジェクトに該当する第2頂点を除いた残りの頂点である第3頂点に基づいて前記推定された回転情報を補正し、前記第3頂点と前記補正された回転情報に基づいて前記映像フレーム間の変換情報を取得し、前記補正された回転情報及び前記変換情報に基づいて、前記ヘッドアップディスプレイ上に仮想オブジェクトをレンダリングするプロセッサを含む。
【0030】
ポーズ検出装置は、前記映像フレーム、前記動き情報、前記回転情報、前記補正された回転情報、前記変換情報、及び実行されるとき前記回転情報及び前記変換情報のうち任意の1つ又は任意の組合せを決定するようにプロセッサを構成する命令語を含むメモリをさらに含み得る。
【発明の効果】
【0031】
一側面によれば、カメラが撮影した映像情報と慣性測位装置(例えば、IMUセンサ)が検出した動き情報をともに活用することで、カメラの動き(静的オブジェクトの動き)と動的オブジェクトの動きとを区分してポーズ情報をより正確に算出することができる。
【0032】
一側面によれば、慣性測位装置は、映像とは関係がなく動き情報を提供するため、動き情報を映像情報と結合することで、ポーズ情報の正確度及び演算速度を向上させることができる。
【0033】
一側面によれば、6自由度ポーズ情報のうち回転情報(VIO’s Rotation)を取得する過程と移動情報(VIO’s Translation)を取得する過程を分離して行うことで、回転情報の正確度を向上させることができる。
【0034】
一側面によれば、回転情報の算出時にIMUセンサで検出された動き情報をフィルタを介して受信し、フィルタを介して伝えられる動き情報(に基づいて推定された回転情報)を映像情報によって推定された回転情報を補正するために利用することで、回転情報の正確度を向上させることができる。
【図面の簡単な説明】
【0035】
【
図1】一実施形態に係るポーズ情報を出力する過程を説明するための図である。
【
図2】一実施形態に係るポーズ情報を取得する方法を示したフローチャートである。
【
図3】一実施形態によりフレーム間の回転情報を推定する方法を示したフローチャートである。
【
図4A】実施形態によりフレーム間の回転情報を推定する方法を説明するための図である。
【
図4B】実施形態によりフレーム間の回転情報を推定する方法を説明するための図である。
【
図5A】実施形態により推定された回転情報を補正する方法を説明するための図である。
【
図5B】実施形態により推定された回転情報を補正する方法を説明するための図である。
【
図6】一実施形態によりフレーム間の移動情報を算出する方法を説明するための図である。
【
図7】一実施形態により複数のフレームから第1頂点を選択する方法を説明するための図である。
【
図8A】一実施形態により複数のフレームから第1頂点を選択する方法を説明するための図である。
【
図8B】一実施形態により複数のフレームから第1頂点を選択する方法を説明するための図である。
【
図8C】一実施形態により複数のフレームから第1頂点を選択する方法を説明するための図である。
【
図8D】一実施形態により複数のフレームから第1頂点を選択する方法を説明するための図である。
【
図9】他の実施形態に係るポーズ情報を取得する方法を示したフローチャートである。
【
図10】一実施形態係るポーズ情報を出力する装置のブロック図である。
【発明を実施するための形態】
【0036】
下記で説明する実施形態は様々な変更が加えられることができる。特許出願の範囲がこのような実施形態によって制限も限定もされることはない。各図面に提示された同じ参照符号は同じ部材を示す。
【0037】
本明細書で開示されている特定の構造的又は機能的な説明は単に実施形態を説明するための目的として例示されたものであり、実施形態は様々な異なる形態で実施され、本明細書に説明された実施形態に限定されることはない。
【0038】
本明細書で用いた用語は、単に特定の実施形態を説明するために用いられるものであって、本発明を限定しようとする意図はない。単数の表現は、文脈上、明白に異なる意味をもたない限り複数の表現を含む。本明細書において、「含む」又は「有する」等の用語は明細書上に記載した特徴、数字、ステップ、動作、構成要素、部品又はこれらを組み合わせたものが存在することを示すものであって、1つ又はそれ以上の他の特徴や数字、ステップ、動作、構成要素、部品、又はこれを組み合わせたものなどの存在又は付加の可能性を予め排除しないものとして理解しなければならない。
【0039】
異なる定義がされない限り、技術的であるか又は科学的な用語を含むここで用いる全ての用語は、本実施形態が属する技術分野で通常の知識を有する者によって一般的に理解されるものと同じ意味を有する。一般的に用いられる予め定義された用語は、関連技術の文脈上で有する意味と一致する意味を有するものと解釈すべきであって、本明細書で明白に定義しない限り、理想的又は過度に形式的な意味として解釈されることはない。
【0040】
また、添付図面を参照して説明することにおいて、図面符号に関係なく同じ構成要素は同じ参照符号を付与し、これに対する重複する説明は省略する。実施形態の説明において関連する公知技術に対する具体的な説明が実施形態の要旨を不要に曖昧にすると判断される場合、その詳細な説明は省略する。
【0041】
図1は、一実施形態に係る出力装置がポーズ情報を出力する過程を説明するための図である。
図1を参照すると、一実施形態により視覚的慣性距離計(Visual Inertial Odometry;VIO)基盤のポーズ情報を出力する装置(以下、「出力装置」)100の構成及び動作が示されている。ポーズ情報は、出力装置の回転に関する回転情報、出力装置の移動に関する移動情報、又はその組合せを含み得る。
【0042】
一般的に、視覚距離計(Visual Odometry)は、視覚的機能を用いてポーズ情報を推定する。しかし、映像内の動的オブジェクトが存在する場合、ポーズ情報を正確に推定できない。カメラで撮影された映像情報のみを用いて、カメラが動いているか、そうでなければ、周辺オブジェクトが動いているかを区分することは困難であるためである。また、視覚距離計を用いて突然の動きを推定することは困難である。これに対して、IMU(Inertial Measurement Unit)センサのような慣性測定装置は、突然の動きを円満に検出する一方、誤差が累積される特性に起因して、長い時間間隔での動きを持続的に検出することには適していない。
【0043】
したがって、一実施形態では、カメラが撮影した映像情報と慣性測定装置が検出した動き情報をともに活用することで、カメラの動き(又は、カメラの動きによる映像内の静的オブジェクトの動き)と動的オブジェクトの動きを区分してポーズ情報をより正確に算出できる。慣性測定装置は、映像に関わらず動き情報を提供することができるため、一実施形態では、動き情報と映像情報を全て利用することによりポーズ情報の正確度及び演算速度を向上させることができる。
【0044】
一実施形態に係る出力装置100は、第1センサ110、第2センサ120、フィルタ140、頂点選択部130、回転情報取得部150、及び移動情報取得部160を含む。ここで、フィルタ140、頂点選択部130、回転情報取得部150、及び移動情報取得部160の動作は、出力装置100のプロセッサによって実行される。より具体的に、プロセッサは、例えば、次の
図10に示すプロセッサ1030であり得る。
【0045】
出力装置100は、視覚的慣性距離計(VIO)基盤で映像フレーム間の6自由度(6-Degree of Freedom(DOF))ポーズの変化量を算出することでポーズ情報を出力する。ここで、6自由度ポーズは、3次元の移動情報(translation;T)と3次元の回転情報(orientation;R)を含む。移動情報Tは位置変化(例えば、並進運動)として理解され、回転情報Rはオリエンテーション変化(例えば、回転運動)として理解される。
【0046】
第1センサ110は、複数の映像フレームを撮影する。第1センサ110は、例えば、カメラ、イメージセンサ又はビジョンセンサである。第1センサ110は、例えば、車両のウインドシールド、ダッシュボード、バックミラーなどのように車両の様々な位置に配置される。第1センサ110は、車両前方の走行映像を撮影する。第1センサ110は、例えば、第1視点で第1フレームを撮影し、第n視点で他のフレームを撮影する。
【0047】
本明細書で説明された車両は、例えば、自動車、トラック、トラクター、スクーター、バイク、サイクル、水陸両用自動車、雪上車、ボート、公共交通車両、バス、モノレール、列車、トラム、自律又は自動運転車両、無人車、電気自動車(EV)、ハイブリッドカー、スマート移動装置、又は無人航空機の1つ以上などのような運送、伝達、又は通信の任意のモードを示す。一例として、スマート移動装置は、例えば、電気輪、電気キックボード及び電気自転車のような移動性装置を含む。例えば、車両には、動力装置のある車両(例えば、耕うん機又はバイク)、自転車、又は、手車のように動力及び非動力車両が含まれる。
【0048】
本明細書で説明された車両の他に、ここで説明された方法及び装置は、例えば、スマートフォン、歩行補助装置、着用可能装置、セキュリティー装置、ロボット、移動端末、及び様々なIoT(Internet of Things)装置に含まれる。
【0049】
第2センサ120は、動き情報を検出する。第2センサ120は、単数であってもよく、複数であってもよい。第2センサ120は、例えば、IMUセンサ、GPS(Global Positioning System)センサ、OBDなどを含む。第2センサ120は第1視点で第1動き情報を検出し、第2視点で第2動き情報を検出し、第n視点で第3動き情報を検出する。
【0050】
頂点選択部130は、第1センサ110で撮影された複数のフレームからポーズ情報の算出のために使用される領域を選択する。例えば、頂点選択部130は、フレームから視覚的慣性距離計(VIO)の算出領域に該当する頂点(例えば、第1頂点)を選択する。
【0051】
頂点選択部130は、様々な方式に基づいて頂点を選択する。頂点選択部130は、例えば、複数のフレームの領域で均等に頂点を選択する。又は、頂点選択部130は、例えば、ブロブ(blob)、エッジ(edge)、コーナー(corner)などのように複数のフレームに含まれた様々なクラスごとに頂点を選択する。その他にも、頂点選択部130は、複数のフレームを撮影するカメラのレンズによって歪曲された映像を復元するとき発生する誤差により、映像の中心で縁(外郭)に行くほど次第に映像の中心に比べて少ない数の頂点を選択する。頂点選択部130の動作について、次の
図7ないし
図8を参照して具体的に説明する。
【0052】
フィルタ140は、第2センサ120で検出された動き情報に基づいて、複数のフレームに対応する自体運動の状態を推定する。自体運動は、環境内装置の3次元モーションであって、例えば、出力装置の回転モーション及び移動モーションを含む。フィルタ140は、例えば、観測値又は観察された値である動き情報に基づいて自体運動の状態を推定する。フィルタ140は、推定された状態に基づいて自体運動に関する情報を出力する。例えば、フィルタ140は、推定した状態に基づいて、フレーム間の回転情報Rinitialを推定する。フィルタ140は、回転情報Rinitialを回転情報取得部150に送信する。
【0053】
ここで、第1センサ110が複数の映像フレームを撮影する視点と第2センサ120が動き情報を検出する視点との間には同期が合わない場合もある。例えば、第1センサ110が複数のフレームを撮影する視点間の間隔が第2センサ120が動き情報を検出する視点間の間隔に比べて時間が長いこともある。
【0054】
フィルタ140は、第2センサ120が動き情報を検出した複数の視点のうち、第1センサ110が複数のフレームを撮影した視点に対応する一部の視点を選択し、選択された視点間の回転情報を推定及び送信する。
【0055】
フィルタ140は、第2センサ120で検出された動き情報に基づいて、例えば、速度、IMUバイアス(例えば、角速度、加速度)、絶対位置などを推定する。ここで、動き情報は、例えば、IMUセンサのジャイロスコープによって検出されるピッチ(Pitch)、ロール(Roll)ヨー(Yaw)の3軸回転情報と加速度センサによって検出される3次元空間で前後、上下、左右の3軸への移動情報、GPS位置、OBDホイールオドメーター(wheel odometry)、操向角情報、姿勢情報などを含む。フィルタ140の動作については、下記の
図4A及び
図4Bを参照してより具体的に説明する。
【0056】
回転情報取得部150は、フィルタ140から回転情報Rinitialを受信する。例えば、回転情報取得部150は、回転情報Rinitialを用いて頂点選択部130で選択された第1頂点から外れ値に該当する第2頂点を除く。例えば、回転情報取得部150は、第1頂点から第2頂点を除いた残りである第3頂点に基づいて回転情報Restimateを推定する。例えば、回転情報取得部150は、推定された回転情報Restimateをフィルタ140に送信する。ここで、外れ値に該当する第2頂点は、動的オブジェクトに該当する頂点であり得る。
【0057】
以下、「第1頂点」は、第1センサ110によって撮影された複数のフレーム内のポーズ情報の算出のための領域から選択された頂点である。「第2頂点」は、第1頂点のうち動的オブジェクトに該当する頂点、言い換えれば、複数のフレームに含まれた静的オブジェクトの動きを把握するために除去されなければならない頂点である。第2頂点は、一実施形態でポーズ情報の算出のために排除されなければならない点で「外れ値(Outlier)」のように呼んでもよい。「第3頂点」は、第1頂点から第2頂点を除去して残った残りの頂点、言い換えれば、静的オブジェクトに該当する頂点である。第3頂点は「インライヤー(Inlier)」と呼んでもよい。
【0058】
回転情報取得部150は、外れ値除去過程153及び回転情報評価過程156を行う。
【0059】
外れ値除去153で、回転情報取得部150はフィルタ140から受信した、動き情報に基づいて推定された回転情報Rinitialに基づいて、第1頂点のうち外れ値(動的オブジェクトに該当する第2頂点)を除去する。
【0060】
また、回転情報評価156で、回転情報取得部150は、外れ値除去153により伝えられた第3頂点に基づいて、フレーム間の回転情報Restimateを推定する。例えば、視覚情報に基づいて回転情報を評価(又は、推定)するために、回転情報取得部150は、映像内頂点のピクセル強度を直接的に使用する方法を用いることができる。一実施形態において、映像内頂点のピクセル強度を直接使用する方法について例を挙げて説明するが、説明された例示的な実施形態の思想及び範囲を逸脱することなく、例えば、映像から抽出された特徴を使用するよう、視覚情報に基づいて回転情報を評価(又は、推定)する他の方法が使用されてもよい。
【0061】
回転情報取得部150は、第3頂点に基づいて推定された回転情報R
estimateをフィルタ140に伝達する。回転情報取得部150の動作については、下記の
図5Bを参照してより具体的に説明する。
【0062】
フィルタ140は、回転情報取得部150から回転情報Restimateを受信する。フィルタ140は回転情報Restimateを用いて回転情報Rinitialを補正し、最終的な回転情報R*を出力する。例えば、回転情報取得部150から第3頂点に基づいて推定された回転情報Restimateを受信したフィルタ140は、回転情報Restimateと動き情報に基づいて推定された回転情報Rinitialの間の差に基づいて自体運動の状態を更新する。フィルタ140は、更新された状態に基づいて最終的な回転情報R*を出力する。回転情報は、クォータニオン(quaternion)又はマトリックスなどの形態に表現される。
【0063】
実施形態によると、第2センサ120に基づいて回転情報R
initialを推定するフィルタ140の動作と、第1センサ110に基づいて回転情報R
estimateを推定する回転情報取得部150の動作とが互いに区分される。したがって、
図1に示された例は、慣性情報の処理と視覚情報の処理が互いに緩く結合された(loosely-coupled)システムの特性を提供する。
【0064】
また、実施形態によると、回転情報R
initialに基づいて回転情報R
estimateの推定のための頂点を選択し、回転情報R
estimateに基づいて回転情報R
initialを補正することで、最終回転情報R*が出力される。したがって、
図1に示された例は、慣性情報の処理と視覚情報の処理が互いに密着結合されたシステムの特性を提供する。
【0065】
その結果、実施形態は、互いに緩く結合されたシステムの長所と互いに密着結合されたシステム両方の長所を全て含む技術を提供できる。例えば、第1センサ110の映像フレームだけで除去し難い動的オブジェクト領域の第2頂点をフィルタ140を介して統合された第2センサ120の状態情報を用いて除去することにより、演算速度が改善される。また、視覚情報基盤の推定結果が慣性情報基盤のフィルタにフィードバックされ、推定の正確度が改善される。
【0066】
移動情報取得部160は、移動情報の変化量を算出する。移動情報取得部160は、第3頂点及びフィルタで最終的に補正された回転情報R*に基づいて、フレーム間の移動情報T*を算出する。移動情報取得部160の動作について、次の
図6を参照してより具体的に説明する。
【0067】
出力装置100は、回転情報R*及び移動情報T*を出力する。
【0068】
実施形態は、スマート車両などの拡張現実ナビゲーションシステムで仮想オブジェクトのためのポーズ情報を提供したり、自律走行車両のステアリングを助けるための視覚情報を生成したり、又は、車両の走行のための様々な制御情報を提供するために活用される。また、実施形態は、車両内走行補助又は完全自律走行のために設けられたHUD(Head Up Display)などの知能システムを含む機器に視覚情報を提供し、安全かつ快適な走行のために使用される。実施形態は、例えば、自律走行自動車、知能型自動車、スマートフォン、及びモバイル機器などに適用され得る。
【0069】
図2は、一実施形態に係るポーズ情報を取得する方法を示したフローチャートである。
図2に示す動作は、
図2に示された順序及び方式で実行されることができるが、説明された例示的な実施形態の思想及び範囲を逸脱することなく、一部動作の順序が変更されたり、一部の動作が省略されてもよい。
図2に示された多くの動作が並列的又は同時に実行されてもよい。
図2に示す1つ以上のブロック及び前記ブロックの組合せは、特定の機能を行う特殊目的のハードウェア基盤コンピュータ、又は、特殊目的のハードウェア及びコンピュータ命令の組合せによって実現される。次の
図2の説明に加えて、
図1に示す説明も
図2に適用でき、参照によって結合されてもよい。したがって、前記の説明はここで繰り返すことはない。
【0070】
図2を参照すると、一実施形態に係るポーズ情報を出力する装置(以下、「出力装置」)は、第1センサで撮影された複数のフレームから第1頂点を選択する(S210)。出力装置が第1頂点を選択する方法については、次の
図7~
図8を参照して具体的に説明する。
【0071】
出力装置は、第2センサで検出された動き情報に基づいて、フレーム間の回転情報を推定する(S220)。出力装置は、例えば、カルマンフィルタ(Kalman Filter)、拡張されたカルマンフィルタ(Extended Kalman Filter)、繰り返し拡張されたカルマンフィルタ(Iterated Extended Kalman Filter)、無香料カルマンフィルタ(Unscented Kalman Filter)及び粒子フィルタ(Particle Filter)などを用いてフレーム間の回転情報を推定する。出力装置が自体運動の状態に基づいて、フレーム間の回転情報を推定する方法については、次の
図3~
図4を参照して具体的に説明する。
【0072】
出力装置は、第1頂点のうち動的オブジェクトに該当する第2頂点を除いた残りの頂点である第3頂点に基づいて、推定された回転情報を補正する(S230)。出力装置が推定された回転情報を補正する方法については、次の
図5を参照して具体的に説明する。
【0073】
出力装置は、第3頂点及び補正された回転情報に基づいて、フレーム間の移動情報を算出する(S240)。出力装置は、補正された回転情報に基づいて、第3頂点が属するフレーム間の強度差に関するエネルギー関数が目標値よりも小さくなるよう移動情報を決定する。エネルギー関数は、複数の関数、例えば、非線型関数を地域的に線形関数に近似して解を求めるガウス・ニュートン最適化(Gauss Newton optimization)関数、及び初期の解が与えられれば初期の解から始めて繰り返し最適化された解を求めるレーベンバーグ・マーカート最適化(levenberg marquardt optimization)関数などを含む。ガウス・ニュートン最適化は、関数の傾斜と曲率を共に考慮しながら解を求める。出力装置が移動情報を算出する過程については、次の
図6を参照して具体的に説明する。
【0074】
出力装置は、ステップS230で補正された回転情報、及びステップS240で算出された移動情報を出力する(S250)。
【0075】
図3は、一実施形態によりフレーム間の回転情報を推定する方法を示したフローチャートである。
図3に示す動作は、
図3に示された順序及び方式で実行され得るが、説明された例示的な実施形態の思想及び範囲を逸脱することなく、一部動作の順序が変更されたり、一部動作が省略されてもよい。
図3に示された多くの動作が並列的又は同時に実行されてもよい。
図3に示す1つ以上のブロック及び前記ブロックの組合せは、特定の機能を行う特殊目的のハードウェア基盤コンピュータ、又は、特殊目的のハードウェア及びコンピュータ命令の組合せによって実現される。次の
図3の説明に加えて、
図1乃至2の説明も
図3に適用でき、参照によって結合されてもよい。したがって、前記説明はここで繰り返すことはない。
【0076】
図3を参照すると、一実施形態に係る出力装置は、動き情報に基づいて、複数のフレームに対応する自体運動の状態を推定する(S310)。出力装置は、例えば、第1視点の状態と第2視点の動き情報に基づいて、第2視点の状態を推定する。第2視点は現在の視点に該当し、第1視点は以前の視点に該当する。一実施形態によれば、自体運動の状態は、例えば、回転情報を推定するための第1状態及び移動情報を推定するための第2状態を含む。この場合、第1状態に応じて回転情報が推定され、第2状態に応じて移動情報が推定される。
【0077】
出力装置は、ステップS310で推定された状態に基づいて、フレーム間の回転情報を推定する(S320)。一実施形態に係る出力装置のフィルタ140が自体運動の状態を推定し、フレーム間の回転情報を推定する方法については、次の
図4A及び
図4Bを参照して具体的に説明する。
【0078】
図4Aは、一実施形態によりフレーム間の回転情報を推定する方法を説明するための図である。
図4Aを参照すると、複数のフレームに対応してフィルタ140が推定した自体運動の状態State
i-1、State
i、State
i’が示されている。
【0079】
フィルタ140は、センサ入力Iiに基づいて、フレームに対応する自体運動の状態を推定する。ここで、センサ入力Iiは、前述した第2センサで検出された動き情報に該当する。
【0080】
フィルタ140は、i-1視点の状態Statei-1とi視点の動き情報Iiに基づいて、i視点の状態Stateiを推定する。フィルタ140は、推定された状態i-1視点の状態Statei-1、i視点の状態Stateiに基づいて、フレーム間の回転情報Rinitialを「推定(Estimate)」する。一実施形態によれば、回転情報Rinitialはi-1視点の状態Statei-1の出力値とi視点の状態Stateiの出力値の間の回転変化量ΔRに算出される。この場合、i-1視点の状態Statei-1は、第1センサ110によって第1フレームが撮影された視点に対応し、i視点の状態Stateiは、第1センサ110によって第2フレームが撮影された視点に対応する。
【0081】
フィルタ140は、回転情報取得部150から第3頂点に基づいて推定された回転情報Restimateを受信する。ここで、第3頂点に基づいて推定された回転情報Restimateは、回転情報Rinitialを補正するために用いてもよい。回転情報Restimateは、例えば、i-1視点で撮影された第1フレームとi視点で撮影された第2フレーム間の回転変化量ΔRに該当する。
【0082】
フィルタ140は、回転情報Restimateを用いて回転情報Rinitialを「補正(Correct)」し、最終的な回転情報R*を出力する。より具体的に、フィルタ140は、第3頂点に基づいて推定された回転情報Restimateと動き情報に基づいて推定された回転情報Rinitialの間の差に基づいて、i視点の自体運動の状態Stateiを状態Statei’に更新する。フィルタ140は、更新された状態Statei’に基づいて最終的な回転情報R*を出力する。例えば、最終回転情報R*は、状態Statei-1の出力値Oi-1と状態Statei’の出力値Oi’の間の回転変化量ΔRに算出される。
【0083】
図4Bは、一実施形態に係るカルマンフィルタで回転情報を推定する方法を説明するための図である。
図4Bを参照すると、カルマンフィルタでフレーム間の回転情報R
initialを「推定(Estimate)」する推定過程410、及び回転情報R
initialを「補正(Correct)」する補正過程430が示されている。一実施形態では、説明の便宜のためにフィルタ140の一実施に該当するカルマンフィルタの動作について説明するが、必ずこれに限定されることはない。カルマンフィルタの他にも、例えば、粒子フィルタなどのように様々なフィルタが記述された例示的な実施形態の思想及び範囲を逸脱することなく使用されてもよい。
【0084】
推定過程410で、カルマンフィルタ(以下、「フィルタ」)の動作は次の通りである。
【0085】
フィルタは、以前状態x^
k-1と現在入力ukに基づいて、現在状態x^-
kを決定する。フィルタは、誤差の共分散(error covariance)値P-
kも共に算出する。推定過程410で、現在状態x^-
kに基づいて出力値
【0086】
【数1】
が決定されるが、フィルタで推定される状態は、隠れ値であるため状態を直接的に補正することが難しい。
【0087】
フィルタは、補正過程430により、観測値zkと推定過程410の出力値
【0088】
【数2】
との差に基づいて状態を補正する。ここで、状態が補正される程度は、誤差の共分散P
-
kに基づいたカルマン利益K
kにより決定される。誤差の共分散P
-
kもカルマン利益K
kによってP
kに更新される。
【0089】
前述した過程について、
図1に示された出力装置の例示に適用すれば次の通りである。
【0090】
例えば、IMUセンサは、動き情報に該当する角速度wと加速度aを検出する。ここで、フィルタの自体運動の状態には、回転情報Rinitialを推定するためのr状態と、移動情報Tinitialを推定するためのt状態とが別々に存在する。
【0091】
第1視点で、IMUセンサから動き情報w1、a1が検出されれば、フィルタは、動き情報w1、a1に基づいてr状態とt状態を更新する。フィルタは、動き情報w1、a1に基づいてr0状態とt0状態をr1状態とt1状態に更新する。
【0092】
第2視点で、IMUセンサから動き情報w2、a2が検出されれば、フィルタは動き情報w2、a2に基づいてr1状態とt1状態をr2状態とt2状態に更新する。
【0093】
同じ方式で、第n視点でIMUセンサから動き情報wn、anが検出されれば、フィルタは、動き情報wn、anに基づいてrn-1状態とt
n-1状態をrn状態とtn状態に更新する。IMUセンサの動作が開始する初期視点(第0視点)に回転情報Rと移動情報Tは、初期化(例えば、0に設定)される。一実施形態では、各視点で推定された回転情報間の変化量及び移動情報間の変化量を用いるため、初期化値は以後の動作に影響を及ぼさない場合がある。
【0094】
また、カメラは、第1視点で第1フレームを撮影し、第n視点で第2フレームを撮影するものと仮定する。この場合、フィルタは、第1視点でr1状態による出力値O1と第n視点でrn状態による出力値Onの間のO変化量を算出し、Rinitialを出力する。
【0095】
出力装置は、Rinitialを用いて映像情報から動的オブジェクトに該当する外れ値を除去し、外れ値が除去された頂点(第3頂点)に対してPNP関数を適用してRestimateを算出する。Restimateは、フィルタの観測値にフィードバックされる。
【0096】
出力装置は、第n視点のr状態を補正することによって、第n視点で推定された出力On=O1+Rinitialのように表現される。また、Zn=O1+Restimateのように表現される。
【0097】
したがって、第n視点のr状態を補正するために、観測値Znと出力値Onの間の差を用いてもよい。ここで、Zn-On=Restimate-Rinitialであるため、出力装置は、この値(Restimate-Rinitial)を用いてr状態を補正する。ここで、補正されたr状態に応じて出力値On’が決定される。
【0098】
図5Aは、一実施形態により推定された回転情報を補正する方法を示したフローチャートである。
図5Aに示す動作は、
図5Aに示された順序及び方式で実行されるが、説明された例示的な実施形態の思想及び範囲を逸脱することなく、一部動作の順序が変更されたり、一部動作が省略されてもよい。
図5Aに示された多くの動作が並列的に又は同時に実行されてもよい。
図5Aに示す1つ以上のブロック及び前記ブロックの組合せは、特定機能を行う特殊目的のハードウェア基盤コンピュータ、又は、特殊目的のハードウェア及びコンピュータ命令の組合せによって実現される。次の
図5Aの説明に加えて、
図1ないし
図4Bの説明についても
図5Aに適用でき、参照によって結合されてもよい。したがって、前記説明はここで繰り返すことはない。
【0099】
図5Aを参照すると、出力装置は、推定された回転情報に基づいて、第1頂点のうち動的オブジェクトに該当する第2頂点を除去する(S510)。出力装置は、第1視点と第2視点との間の回転情報R
initialを推定する。出力装置は、回転情報
initialに基づいて第1頂点のうち動的オブジェクトに該当する第2頂点を除去する。
【0100】
出力装置は、第3頂点に基づいて、フレーム間の回転情報Restimateを推定する(S520)。第3頂点は、第1頂点のうち第2頂点を除いた残りの頂点であり得る。出力装置は、第3頂点に対して、例えば、PNP関数、ガウス・ニュートン最適化関数、及びレーベンバーグ・マーカート最適化関数などを適用して回転情報Restimateを推定する。
【0101】
出力装置は、第3頂点に基づいて推定された回転情報Restimateを用いて、動き情報に基づいて推定された回転情報Rinitialを補正する(S530)。出力装置は、第3頂点に基づいて推定された回転情報estimateと、動き情報に基づいて推定された回転情報Rinitialの間の差に基づいて、フレームのうち少なくとも1つに対応する自体運動の状態を更新し得る。出力装置は、更新された自体運動の状態に応じて最終回転情報R*を推定する。
【0102】
図5Bは、一実施形態により推定された回転情報を補正する方法を説明するための図である。
図5Bを参照すると、回転情報を補正するための頂点選択部130、フィルタ140、及び回転情報取得部150間の動作が示されている。
【0103】
例えば、回転情報取得部150は、頂点選択部130から第1頂点を受信し、フィルタ140から回転情報Rinitialを受信する。例えば、回転情報取得部150は、第1頂点と回転情報Rinitialに基づいて外れ値除去過程153及び回転情報評価過程156を行う。
【0104】
例えば、外れ値除去過程153で、回転情報取得部150は、フィルタ140から受信した、動き情報に基づいて推定された回転情報Rinitialに基づいて、第1頂点のうち外れ値を除去する。外れ値除去過程153の実行によって、第1頂点のうち外れ値が除去された第3頂点が取得される。
【0105】
一実施形態によれば、回転情報取得部150は、フィルタ140から移動情報Tinitialをさらに受信する。例えば、回転情報取得部150は、回転情報Rinitialと移動情報Tinitialに基づいて、フレームそれぞれに含まれた頂点のマッチング関係を取得し得る。マッチング関係は、回転情報評価過程156で活用される。
【0106】
回転情報評価過程156で、回転情報取得部150は、外れ値除去153によって伝えられた第3頂点に基づいてフレーム間の回転情報を推定する。
【0107】
回転情報取得部150は、第3頂点に基づいて回転情報Rinitialの補正のための回転情報Restimateをフィルタ140に送信する。回転情報取得部150は、第3頂点に基づいて推定された回転情報Restimateが動き情報に基づいて推定された回転情報Rinitialとどれ程差があるか、又は、どれ程の誤差を有するかによって回転情報を評価する。
【0108】
回転情報取得部150は、第3頂点に基づいて推定された回転情報Restimateをフィルタ140に伝達する。フィルタ140は、回転情報Restimateを用いて回転情報Rinitialを補正して最終的な回転情報R*を出力し得る。
【0109】
図6は、一実施形態によりフレーム間の移動情報を算出する方法を説明するための図である。
図6を参照すると、移動情報を算出するためのフィルタ140、回転情報取得部150、及び移動情報取得部160間の動作が示されている。
【0110】
移動情報取得部160は、フレーム間の移動情報、言い換えれば、移動情報の変化量を算出する。移動情報取得部160は、回転情報取得部150から受信した第3頂点及びフィルタ140で最終的に補正された回転情報R*に基づいて、フレーム間の移動情報T*を算出する。
【0111】
移動情報取得部160は、回転情報R*に基づいて第3頂点が属するフレーム間の強度差に関するエネルギー関数が決定された目標値よりも小さくなるよう移動情報を決定する。ここで、エネルギー関数は、「光度計エラー関数(photometric error function)」とも呼ばれてもよい。エネルギー関数は、例えば、ガウス・ニュートン最適化関数、及びレーベンバーグ・マーカート最適化関数のいずれか1つであり得る。
【0112】
図7は、一実施形態によりフレームから第1頂点を選択する過程を説明するための図である。
【0113】
図7に示す動作は、
図7に示された順序及び方式で実行されるが、説明された例示的な実施形態の思想及び範囲を逸脱することなく、一部動作の順序が変更されたり、一部動作が省略されてもよい。
図7に示された多くの動作が並列的又は同時に実行されてもよい。
図7に示す1つ以上のブロック及び前記ブロックの組合せは、特定機能を行う特殊目的のハードウェア基盤コンピュータ、又は、特殊目的のハードウェア及びコンピュータ命令の組合せによって実現される。次の
図2に示す説明に加えて、
図1ないし
図6の説明についても
図7に適用でき、参照によって結合されてもよい。したがって、前記説明はここで繰り返すことはない。
【0114】
図7を参照すると、一実施形態に係る頂点選択部130がバケット(Bucketing)方法710、候補選択(Candidate Selection)方法720、細心な選択(Careful Selection)方法730、及び放射型加重値(Radial Weighting)方法740により第1頂点を選択する過程が示されている。一実施形態の一実施として、頂点選択部130が前述した4種類の選択方法を順次行って第1頂点を選択することについて説明するが、必ずこれに限定されることはない。前述した4種類の選択方法は必要に応じて、選択方法のうち一部の方法のみが使用されてもよく、また、順次的な遂行順序が
図7と異なってもよい。また、前述した4種類の選択方法は、実現形態により互いに結合されたり区分されてもよい。
【0115】
頂点選択部130がバケット方法710によって、複数のフレームの領域を一定の大きさのブロックに均等に分割し、各ブロックから均等に頂点を選択する。頂点選択部は、候補選択方法720により、ブロブ、エッジ、コーナーなどのようなクラスごとに頂点を選択してもよい。頂点選択部130は、細心な選択方法730により、ブロック及びクラスごとに頂点が均等に選択されるようにする。
【0116】
最後に、頂点選択部130は、フレームを撮影するカメラのレンズによる映像の歪曲を復元する過程で発生する誤差を勘案して頂点を選択し得る。頂点選択部130は、放射型加重値方法740により、各ブロックごと及び各クラスごとに均等に選択された頂点のうち、映像の中心にある頂点に大きい加重値を与え、中心から郊外にある頂点には小さい加重値を与えることで、映像の中心にある頂点が多く選択されるようにする。
【0117】
バケット方法710、候補選択方法720、細心な選択方法730、及び放射型加重値方法740による具体的な動作については、次の
図8A~
図8Dを参照して具体的に説明する。
【0118】
図8は、実施形態によりフレームから第1頂点を選択する方法を説明するための図である。
【0119】
図8Aを参照すると、バケット(Bucketing)方法によって第1頂点を選択する方法が示されている。バケット方法は、フレーム810の各領域で第1頂点を均等に選択することで、視覚的慣性距離計(VIO)の性能向上に役に立つ方法である。一実施形態に係る出力装置は、例えば、フレーム810それぞれをフレーム820のように一定の大きさのブロック(又は、バケット(bucket))に均等に分割し得る。出力装置は、均等に分割されたブロックそれぞれから決定した数以上の第1頂点を選択する。
【0120】
図8Bを参照すると、候補選択(Candidate Selection)方法によって第1頂点を選択する方法が示されている。一実施形態に係る出力装置は、例えば、フレームそれぞれに含まれたピクセルの強度傾斜度の大きさ、方向、及びピクセルと周辺ピクセルとの強度関係のうち少なくとも1つに基づいて、複数のクラスに対応する候補頂点を決定する。ここで、複数のクラスは、例えば、コーナー、ブロブ、エッジなどを含む。ここで、ピクセルの強度傾斜度の大きさが大きいほど良い頂点に該当する。出力装置は、複数のクラスそれぞれに含まれた候補頂点から第1頂点を選択する。出力装置は、例えば、該当ピクセルの強度傾斜度の方向と周辺ピクセルの強度との関係を考慮して、フレーム830のようにコーナー、ブロブ、エッジなどの様々なクラスの候補頂点から第1頂点を選択し得る。
【0121】
図8Cを参照すると、細心な選択(Careful Selection)方法によって第1頂点を選択する方法が示されている。細心な選択方法は、上記で
図8Bを参照して候補選択により選択された候補頂点を視覚的慣性距離計(VIO)の性能を最適化できる方向として、さらに選別した方法である。
【0122】
一実施形態に係る出力装置は、第1頂点の選別時に複数のフレームを分割するブロックごと及びフレームに含まれたクラスごとに候補頂点のうち第1頂点を選択する。ここで、出力装置は、フレームの全ての領域及び全てのクラスで均等に第1頂点が選択されるよう、相対的に選択された頂点の個数の低いブロックに優先権を与える。また、出力装置は、該当ブロック内でも相対的に少なく選択されたクラスに該当する頂点を優先的に選択する。
【0123】
図8Dを参照すると、放射型加重値(Radial Weighting)方法によって第1頂点を選択する方法が示されている。一般的に、映像をレンズによるバレル歪曲(barrel distortion)を除去する歪曲の除去過程を経た後、視覚的慣性距離計(VIO)で用いられる。ここで、歪曲の除去過程は、近似アルゴリズムによって実行されるため、映像の縁に行くほど誤差が大きくなる。したがって、映像の縁に行くほど相対的に少ない個数の頂点を使用することで、時間慣性距離計の性能を向上させることができる。
【0124】
放射型加重値方法は、前述した過程により選択された第1頂点が映像の中心から遠く位置するほど、少ない数が選択されるように調整する方法である。
【0125】
出力装置は、複数のフレーム850それぞれの中心にある頂点に第1加重値を与える。出力装置は、フレームそれぞれの中心から外郭に行くほど、次第に頂点に第1加重値に比べて少ない第2加重値を与える。例えば、第1加重値が0.8又は0.9であれば、第2加重値は0.7よりも小さい値を有する。出力装置は、第1加重値及び第2加重値に基づいて、頂点のうち第1頂点を選択する。出力装置は、第2加重値が付与された頂点と比較してさらに高い第1加重値が割り当てられた頂点をさらに多く選択し得る。
【0126】
図9は、他の実施形態に係るポーズ情報を取得する方法を示したフローチャートである。
図9に示す動作は、
図9に示された順序及び方式で実行されるが、説明された例示的な実施形態の思想及び範囲を逸脱することなく、一部動作の順序が変更されたり、一部動作が省略されてもよい。
図9に示された多くの動作が並列的又は同時に実行されてもよい。
図9に示す1つ以上のブロック及び前記ブロックの組合せは、特定機能を行う特殊目的のハードウェア基盤コンピュータ、又は、特殊目的のハードウェア及びコンピュータ命令の組合せによって実現される。次の
図9の説明に加えて、
図1ないし
図8Aの説明についても
図9に適用でき、参照によって結合れてもよい。したがって、前記説明はここで繰り返すことはない。
【0127】
図9を参照すると、一実施形態に係る出力装置は、第1センサで撮影された映像を検索する(S910)。例えば、カメラがモノカメラ(Mono camera)である場合、出力装置は、単一ビューポイントに該当する映像を取得する。カメラがステレオカメラの場合、出力装置は、左側と右側のビューポイントに該当する映像を取得する。出力装置は、ステップS910で検索した映像から第1頂点を選択する(S920)。
【0128】
出力装置は、第2センサで検出された動き情報に基づいて、フィルタの6自由度ポーズ変化量を推定する(S930)。出力装置は、ステップS930で推定したポーズ変化量に基づいて第1頂点のうち、動的オブジェクトに該当する第2頂点、言い換えれば、外れ値を除去する(S940)。
【0129】
出力装置は、第1頂点のうち第2頂点を除いた第3頂点、言い換えれば、インライヤーに基づいて現在フレームの回転情報を評価して回転情報を算出する(S950)。出力装置は、ステップS950で算出した回転情報に基づいて、フィルタの状態を更新する(S960)。ここで、フィルタの状態は、現在フレームに対応する自体運動の状態に該当する。
【0130】
出力装置は、ステップS960で更新された状態値を用いてフィルタの回転情報を推定する(S970)。出力装置は、フィルタの回転情報に基づいて視覚距離計の移動情報を評価(又は、推定)する(S980)。出力装置は、インライヤーを対象に予め推定された回転情報を用いて、移動情報を推定する。
【0131】
図10は、一実施形態係るポーズ情報を出力する装置のブロック図である。
図10を参照すると、一実施形態に係る出力装置1000は、第1センサ1013及び第2センサ1016を含むセンサ1010及びプロセッサ1030を含む。出力装置1000は、メモリ1050、通信インターフェース1070、及びディスプレイ1090をさらに含む。センサ1010、プロセッサ1030、メモリ1050、通信インターフェース1070、及びディスプレイ1090は、通信バス1005を介して通信する。
【0132】
第1センサ1013は、例えば、イメージセンサ、又は、ビジョンセンサであってもよい。第1センサ1013は、例えば、車両の走行映像に該当する複数のフレームを撮影する。第2センサ1016は、動き情報を検出する。第2センサ1016は、例えば、加速度センサ、ジャイロセンサ、GPS(Global Positioning System)センサ、IMUセンサ、レーダー(Radar)、ライダー(Lidar)などを含む。第2センサ1016は、例えば、GPS座標、位置、姿勢などのような測位情報の他にも、速度、加速度、角速度、走行方向、車両のハンドルステアリング角度、及び車両の速度などの検出情報を検出する。
【0133】
プロセッサ1030は、
図1~
図9を参照して前述した動作を行う。
【0134】
メモリ1050は、第1センサ1013で撮影された複数のフレーム及び/又は第2センサ1016で検出された動き情報を格納する。また、メモリ1050は、プロセッサ1030によって推定された回転情報、補正された回転情報及び移動情報を格納する。メモリ1050は、上述したプロセッサ1030での処理過程で生成される様々な情報を格納する。その他にも、メモリ1050は、各種のデータとプログラムなどを格納する。メモリ1050は、揮発性メモリ又は不揮発性メモリを含む。メモリ1050は、ハードディスクなどのような大容量格納媒体を備えて各種データを格納する。メモリ1050に対する具体的な内容は以下で説明する。
【0135】
出力装置1000は、通信インターフェース1070を介してフレーム及び/又は動き情報を含む様々なセンサの検出情報を取得する。実施形態により、通信インターフェース1070は、出力装置1000の外部に存在する他のセンサから検出情報を受信する。
【0136】
プロセッサ1030は、通信インターフェース1070及び/又はディスプレイ装置1090を介して補正された回転情報及び/又は移動情報を出力したり、又は、補正された回転情報及び/又は移動情報に基づいて仮想オブジェクトをディスプレイ装置1090に表示することで、拡張現実サービスを提供する。プロセッサ1030は、補正された回転情報及び/又は移動情報に基づいて仮想オブジェクトをディスプレイ装置1090上にレンダリングしてもよく、撮影されたフレームと共に表示してもよい。
【0137】
プロセッサ1030は、目的とする動作を実行させるための物理的な構造を有する回路を有するハードウェアで具現されたデータ処理装置であり得る。例えば、目的とする動作は、プログラムに含まれたコード又は命令を含む。例えば、ハードウェアで具現されたデータ処理装置は、マイクロプロセッサー、中央処理装置、プロセッサコア、マルチ・コアプロセッサ、マルチプロセッサ、ASIC(Application-Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)を含む。
【0138】
プロセッサ1030はプログラムを実行し、出力装置1000を制御する。プロセッサ1030によって実行されるプログラムコードは、メモリ1050に格納される。プロセッサ1030に対する具体的な内容は以下で説明する。
【0139】
ディスプレイ1090は、プロセッサ1030によって決定された車両の補正された回転情報及び/又は移動情報を表示する。ディスプレイ1090は、補正された回転情報及び/又は車両の移動情報に基づいてディスプレイ1090上に仮想オブジェクトを表示する。一実施形態に係るディスプレイ1090は、ユーザインターフェースをレンダリングし、/又はユーザ入力を受信する能力を提供する1つ以上のハードウェア構成要素を含む物理的構造である。例えば、車両の補正された位置は、ヘッドアップディスプレイ(HUD)装置を用いてウインドシールドガラス又は車両の個別画面に表示されたり、拡張現実ヘッドアップディスプレイ(AR HUD)に表示される。一例として、出力装置1000は、車両の電子制御ユニット(electronic control unit;ECU)又は車両制御ユニット(vehicle control unit;VCU)に位置把握情報を送信する。電子制御ユニット又は車両制御ユニットは、車両のディスプレイ装置1350に位置把握情報を表示する。ただし、車両の補正された位置の表示は前述した例に限定されず、車両内の他の計器盤、車両インフォテインメントシステム、スクリーン又は車両のディスプレイパネルがディスプレイ機能を行うことができる。
【0140】
例えば、スマートフォン、及びメガネ式ディスプレイ(eye glass display;EGD)などのように出力装置1000に動作可能に接続された他のディスプレイが、前述した例示的な実施形態の思想及び範囲を逸脱することなく使用され得る。出力装置1000は、例えば、前述したポーズ情報を取得する方法を行う装置として、例えば、車両であってもよく、ナビゲーション、スマートフォンなどのようなユーザ装置であってもよい。
【0141】
出力装置100、出力装置1000、フィルタ140、ポイント選択器130、回転情報取得部、VIO回転取得部150、移動情報取得部、VIO移動取得部160、装置、ユニット、モジュール、装置及びここで説明された異なる構成要素はハードウェア構成要素によって実現され得る。
【0142】
実施形態に係る方法は、様々なコンピュータ手段を介して実施されるプログラム命令の形態で具現され、コンピュータ読み取り可能な記録媒体に記録される。記録媒体は、プログラム命令、データファイル、データ構造などを単独又は組み合せて含む。記録媒体及びプログラム命令は、本発明の目的のために特別に設計して構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知のものであり使用可能なものであってもよい。コンピュータ読み取り可能な記録媒体の例としては、ハードディスク、フロッピー(登録商標)ディスク及び磁気テープのような磁気媒体、CD-ROM、DYIJDのような光記録媒体、フロプティカルディスクのような磁気-光媒体、及びROM、RAM、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置を含む。プログラム命令の例としては、コンパイラによって生成されるような機械語コードだけでなく、インタプリタなどを用いてコンピュータによって実行される高級言語コードを含む。ハードウェア装置は、本発明に示す動作を実行するために1つ以上のソフトウェアモジュールとして作動するように構成してもよく、その逆も同様である。
【0143】
上述したように実施形態をたとえ限定された図面によって説明したが、当技術分野で通常の知識を有する者であれば、上記の説明に基づいて様々な技術的な修正及び変形を適用することができる。例えば、説明された技術が説明された方法と異なる順で実行されるし、及び/又は説明されたシステム、構造、装置、回路などの構成要素が説明された方法と異なる形態で結合又は組み合わせられてもよいし、他の構成要素又は均等物によって置き換え又は置換されたとしても適切な結果を達成することができる。
【0144】
したがって、本発明の範囲は、開示された実施形態に限定されて定められるものではなく、特許請求の範囲及び特許請求の範囲と均等なものなどによって定められるものである。
【符号の説明】
【0145】
1000:出力装置
1010:センサ
1013:第1センサ
1016:第2センサ
1030:プロセッサ
1050:メモリ
1070:通信インターフェース
1090:ディスプレイ