(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024074254
(43)【公開日】2024-05-30
(54)【発明の名称】カメラ姿勢を推定する装置及び方法
(51)【国際特許分類】
G06T 7/20 20170101AFI20240523BHJP
G06T 7/00 20170101ALI20240523BHJP
G01C 21/28 20060101ALI20240523BHJP
【FI】
G06T7/20 100
G06T7/00 350C
G06T7/00 650B
G01C21/28
【審査請求】未請求
【請求項の数】19
【出願形態】OL
(21)【出願番号】P 2023189000
(22)【出願日】2023-11-06
(31)【優先権主張番号】10-2022-0155458
(32)【優先日】2022-11-18
(33)【優先権主張国・地域又は機関】KR
(71)【出願人】
【識別番号】390019839
【氏名又は名称】三星電子株式会社
【氏名又は名称原語表記】Samsung Electronics Co.,Ltd.
【住所又は居所原語表記】129,Samsung-ro,Yeongtong-gu,Suwon-si,Gyeonggi-do,Republic of Korea
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】張 鐵▲ふん▼
(72)【発明者】
【氏名】具 滋厚
(72)【発明者】
【氏名】池 大▲ひょん▼
【テーマコード(参考)】
2F129
5L096
【Fターム(参考)】
2F129AA03
2F129BB03
2F129BB18
2F129BB32
2F129BB50
5L096AA06
5L096BA04
5L096BA05
5L096CA04
5L096CA05
5L096FA03
5L096FA09
5L096FA12
5L096FA13
5L096FA32
5L096FA66
5L096FA67
5L096FA69
5L096HA11
5L096KA04
(57)【要約】
【課題】カメラ姿勢を推定する装置及び方法が開示される。
【解決手段】電子装置の動作方法は、同じカメラで異なる各時点に撮影された単眼映像を取得する動作、ニューラルネットワークに基づいて映像が撮影された時点の間の時間間隔に対応するカメラの位置変化を推定する動作と、カメラの推定された位置変化及び前記映像に基づいてカメラの位置及び/又は方向を推定する動作とを含む。
【選択図】
図3
【特許請求の範囲】
【請求項1】
電子装置であって、
1つ以上のプロセッサと、
前記1つ以上のプロセッサによって実行可能な命令語を含むメモリと、
を含み、
前記命令語が前記1つ以上のプロセッサで実行されると、前記1つ以上のプロセッサは、
同じカメラで2つの時点それぞれで撮影された2つの単一映像を取得し、
ニューラルネットワークに基づいて前記2つの時点間の時間間隔で発生した前記カメラの位置変化を推定し、
前記カメラの位置変化及び前記2つの単一映像に基づいて前記カメラの位置及び/又は方向を推定する、電子装置。
【請求項2】
前記1つ以上のプロセッサは、
前記2つの単一映像の特徴点間の特徴点マッチングに基づいて、前記カメラの姿勢変化量を初期推定した結果と、前記カメラの位置変化に基づいたSLAM(simultaneous localization and mapping)動作を行うことで前記カメラの位置及び/又は方向を推定する、請求項1に記載の電子装置。
【請求項3】
前記1つ以上のプロセッサは、前記カメラの推定された姿勢変化量に対する初期推定結果のスケールを調整することによって前記カメラの位置及び/又は方向を推定する、請求項1に記載の電子装置。
【請求項4】
前記姿勢変化量に対する初期推定結果は、
現在映像とそれぞれの以前映像との間の時間間隔に対する前記カメラの姿勢変化量を含み、
前記現在映像は前記2つの単一映像のうち1つであり、前記2つの単一映像のうちの他の1つは前記以前映像のうち1つであり、
前記カメラの推定された位置変化は、前記現在映像と前記各以前映像との間の前記カメラの推定された位置変化を含み、
前記1つ以上のプロセッサは、前記姿勢変化量と前記カメラの推定された位置変化との間の誤差が最小になるよう、前記初期推定結果のスケールを調整することで前記カメラの位置及び/又は方向を推定する、請求項3に記載の電子装置。
【請求項5】
前記カメラの前記位置変化に基づいた前記カメラの位置及び/又は方向を推定する動作はSLAM動作におけるスケール曖昧性を減少させる、請求項1に記載の電子装置。
【請求項6】
前記SLAM動作は、単眼映像を処理する単眼ビジュアルSLAM(monocular visual SLAM)に基づいて実行される、請求項5に記載の電子装置。
【請求項7】
前記ニューラルネットワークは、
基準カメラと、
基準位置を検出する基準位置センサ及び/又は基準慣性センサと、
を含む基準装置で収集された基準映像及び前記基準映像が撮影された時点間の各時間間隔に対する前記基準カメラの基準位置変化に基づいてトレーニングされる、請求項1に記載の電子装置。
【請求項8】
前記基準映像は、前記基準カメラで異なる各基準時点に撮影された映像であり、
前記基準位置変化は、各基準時点で前記基準位置センサ及び/又は前記基準慣性センサによって検出された値により決定される、請求項7に記載の電子装置。
【請求項9】
当該電子装置は、自律走行車両、知能型車両、走行補助システムが搭載されている車両、ADAS(Advanced Driver Assistance Systems)を支援する車両、カメラが搭載されているスマートフォン、ウェアラブル機器及びロボットのうちの1つであるか、いずれか1つに含まれる、請求項1に記載の電子装置。
【請求項10】
電子装置の動作方法であって、
同じカメラで異なる各時点に撮影された単眼の映像を取得する動作と、
ニューラルネットワークに基づいて、前記映像が撮影された時点間の時間間隔に対応する前記カメラの位置変化を推定する動作と、
前記カメラの推定された位置変化及び前記映像に基づいて前記カメラの位置及び/又は方向を推定する動作と、
を含む、電子装置の動作方法。
【請求項11】
前記カメラの位置及び/又は方向を推定する動作は、前記映像間の特徴点マッチングに基づいて前記カメラの姿勢変化量を初期推定した結果と、前記カメラの位置変化に基づいたSLAM動作を行うことで前記カメラの位置及び/又は方向を推定する、請求項10に記載の電子装置の動作方法。
【請求項12】
前記カメラの姿勢変化量を初期推定した結果は、
現在映像とそれぞれの以前映像との間の時間間隔に対する前記カメラの姿勢変化量を含み、
前記現在映像は前記映像のうちの1つであり、前記映像のうち他の1つは前記以前映像のうちの1つであり、
前記カメラの推定された位置変化は、前記現在映像と前記各以前映像との間に前記カメラの推定位置変化を含み、
前記カメラの位置及び/又は方向を推定する動作は、前記姿勢変化量と前記カメラの前記推定された位置変化との間の誤差が最小になるよう、前記初期推定した結果のスケールを調整することによって前記カメラの位置及び/又は方向を推定する、請求項11に記載の電子装置の動作方法。
【請求項13】
前記カメラの位置及び/又は方向を推定する動作は、前記カメラの姿勢変化量に対する初期推定結果のスケールを前記カメラの位置変化に応じて調整することによって実行される、請求項10に記載の電子装置の動作方法。
【請求項14】
前記カメラの位置及び/又は方向を推定する動作は、前記映像間の特徴点マッチングに基づいたSLAM動作におけるスケール曖昧性を減少させる、請求項10に記載の電子装置の動作方法。
【請求項15】
前記SLAM動作は、前記カメラに該当する単一カメラに基づいた単眼ビジュアルSLAMに基づいて実行される、請求項14に記載の電子装置の動作方法。
【請求項16】
前記ニューラルネットワークは、
基準カメラと、
基準位置を検出する基準位置センサ及び/又は基準慣性センサと、
を含む、基準装置で収集された基準映像及び前記基準映像が撮影された時点間の各時間間隔に対する前記基準カメラの基準位置変化に基づいてトレーニングされる、請求項10に記載の電子装置の動作方法。
【請求項17】
前記基準映像は、前記基準カメラで異なる各基準時点に撮影された映像であり、
前記基準位置変化は、各基準時点で前記基準位置センサ及び/又は前記基準慣性センサによって検出された値により決定される、請求項16に記載の電子装置の動作方法。
【請求項18】
前記位置変化は距離を含む、請求項10に記載の電子装置の動作方法。
【請求項19】
請求項10~請求項18のいずれか一項に記載の方法を実行するコンピュータプログラムを格納するコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
以下の開示は、カメラ姿勢を推定する装置及び方法に関する。
【背景技術】
【0002】
SLAM(simultaneous localization and mapping)アルゴリズムは、測位及びマッピングを同時に行いながら位置及び方向を推定することができる。SLAMで測位に関する要素技術に該当するVIO(visual inertial odometry)は、カメラ、慣性センサ(inertial measurement unit、IMU)などを用いて位置、速度、及び方向などを推定し得る。
【発明の概要】
【発明が解決しようとする課題】
【0003】
単一カメラを用いたカメラ姿勢推定は、スケール曖昧性(scale ambiguity)を解決するために、多くの演算量及びGT(グラウンドトゥルース、ground truth)を取得し難いニューラルネットワークアルゴリズムを用いて、リアルタイムにオンライン動作が難しくて、スケール曖昧性を解決するための追加的なセンサが求められている。
【0004】
本文書に開示されている様々な実施形態によれば、2つの単一映像(single images)が撮影された時点間のカメラの位置変化を推定し、推定された位置変化に基づいてスケール曖昧性を効果的に解決することができる。
【課題を解決するための手段】
【0005】
一実施形態に係る電子装置は、1つ以上のプロセッサと、前記1つ以上のプロセッサによって実行可能な命令語を含むメモリとを含み、前記命令語が前記1つ以上のプロセッサで実行されれば、前記1つ以上のプロセッサは同じカメラで2つの時点それぞれで撮影された2つの単一映像を取得し、ニューラルネットワークに基づいて前記2つの時点間の時間間隔で発生した前記カメラの位置変化を推定し、前記カメラの位置変化及び前記2つの映像に基づいて前記カメラの位置及び/又は方向を推定する。
【0006】
前記1つ以上のプロセッサは、前記2つの単一映像の特徴点間の特徴点マッチングに基づいて、前記カメラの姿勢変化量を初期推定した結果と、前記カメラの位置変化に基づいたSLAM(simultaneous localization and mapping)動作を行うことで前記カメラの位置及び/又は方向を推定することができる。
【0007】
前記1つ以上のプロセッサは、前記カメラの推定された姿勢変化量に対する初期推定結果のスケールを調整することによって前記カメラの位置及び/又は方向を推定することができる。
【0008】
前記姿勢変化量に対する初期推定結果は、現在映像とそれぞれの以前映像との間の時間間隔に対する前記カメラの姿勢変化量を含み、前記現在映像は前記2つの単一映像のうち1つであり、前記2つの単一映像のうちの他の1つは前記以前映像のうち1つであり、前記カメラの推定された位置変化は、前記現在映像と前記各以前映像との間の前記カメラの推定された位置変化を含み、前記1つ以上のプロセッサは、前記姿勢変化量と前記カメラの推定された位置変化との間の誤差が最小になるよう、前記初期推定結果のスケールを調整することで前記カメラの位置及び/又は方向を推定することができる。
【0009】
前記カメラの前記位置変化に基づいた前記カメラの位置及び/又は方向を推定する動作はSLAM動作におけるスケール曖昧性を減少させ得る。
【0010】
前記SLAM動作は、単眼映像を処理する単眼ビジュアルSLAM(monocular visual SLAM)に基づいて実行されることができる。
【0011】
前記ニューラルネットワークは、基準カメラと、基準位置を検出する基準位置センサ及び/又は基準慣性センサとを含む基準装置で収集された基準映像及び前記基準映像が撮影された時点間の各時間間隔に対する前記基準カメラの基準位置変化に基づいてトレーニングされることができる。
【0012】
前記基準映像は、前記基準カメラで異なる各基準時点に撮影された映像であり、前記基準位置変化は、各基準時点で前記基準位置センサ及び/又は前記基準慣性センサによって検出された値により決定されることができる。
【0013】
前記電子装置は、自律走行車両、知能型車両、走行補助システムが搭載されている車両、ADAS(Advanced Driver Assistance Systems)を支援する車両、カメラが搭載されているスマートフォン、ウェアラブル機器及びロボットのうちの1つであるか、いずれか1つに含まれることができる。
【0014】
一実施形態に係る電子装置の動作方法は、同じカメラで異なる各時点に撮影された単眼映像を取得する動作と、ニューラルネットワークに基づいて、前記映像が撮影された時点間の時間間隔に対応する前記カメラの位置変化を推定する動作と、前記カメラの推定された位置変化及び前記映像に基づいて前記カメラの位置及び/又は方向を推定する動作とを含む。
【0015】
前記位置変化は距離を含むことができる。
【発明の効果】
【0016】
様々な実施形態によれば、2つの時点間の時間間隔の間に発生したカメラの位置変化を推定し、カメラの位置変化及び2つの映像に基づいてカメラの位置及び/又は方向を推定することで、高い正確度でカメラ姿勢を推定することができる。
【0017】
様々な実施形態によれば、カメラの位置変化を推定するニューラルネットワークの学習のためのGTは、カメラ、GPS(全地球測位システム、global positioning system)、IMU(慣性測定ユニット、inertial measurement unit)のうちの1つ以上が装着されている装置で同時に収集された映像及び位置変化に応じて容易に確保できるため、ニューラルネットワークの学習が容易になる。該当ニューラルネットワークは、相対的に軽いモデルで学習可能であるため、リアルタイムにオンライン動作を容易に実現することができる。
【図面の簡単な説明】
【0018】
【
図1】一実施形態に係る電子装置を説明するための図である。
【
図2】一実施形態に係る単眼ビジュアルSLAMを用いたスケール曖昧性を説明するための図である。
【
図3】一実施形態に係るカメラ姿勢推定に対する一般的なデータの流れを示す図である。
【
図4A】一実施形態に係るカメラ姿勢推定に対するシステムを示す図である。
【
図4B】一実施形態に係るイメージシーケンスに対するカメラ姿勢推定を示す。
【
図4C】他の一実施形態に係るイメージシーケンスに対するカメラ姿勢推定を示す。
【
図5】他の一実施形態に係る電子装置を説明するための図である。
【
図6】一実施形態に係る電子装置の動作方法を示す図である。
【発明を実施するための形態】
【0019】
実施形態に対する特定な構造的又は機能的な説明は単なる例示のための目的として開示されたものであって、様々な形態に変更されることができる。したがって、実施形態は特定な開示形態に限定されるものではなく、本明細書の範囲は技術的な思想に含まれる変更、均等物ないし代替物を含む。
【0020】
この文書において、「A又はB」、「A及びBの少なくとも1つ」、「A又はBのうち少なくとも1つ」、「A、B、又はC」、「A、B、及びCのいずれか1つ又は2つ以上の組み合わせ」のような各フレーズは、そのフレーズのうち該当するフレーズに共に羅列された項目のいずれか1つ、又はその可能な組み合わせを含むことができる。第1又は第2などの用語を複数の構成要素を説明するために用いることがあるが、このような用語は1つの構成要素を他の構成要素から区別する目的としてのみ解釈されなければならない。例えば、第1構成要素は第2構成要素と命名することができ、同様に、第2構成要素は第1構成要素にも命名することができる。
【0021】
いずれかの構成要素が他の構成要素に「連結」されているか「接続」されていると言及されたときには、その他の構成要素に直接的に連結されているか又は接続されているが、中間に他の構成要素が存在し得るものと理解されなければならない。
【0022】
単数の表現は、文脈上、明白に異なる意味をもたない限り複数の表現を含む。本明細書において、「含む」又は「有する」等の用語は、明細書上に記載した特徴、数字、ステップ、動作、構成要素、部品又はこれらを組み合わせたものが存在することを示すものであって、1つ又はそれ以上の他の特徴や数字、ステップ、動作、構成要素、部品、又はこれを組み合わせたものなどの存在又は付加の可能性を予め排除しないものとして理解しなければならない。
【0023】
異なるように定義されない限り、技術的又は科学的な用語を含んで、ここで用いる全ての用語は、本実施形態が属する技術分野で通常の知識を有する者によって一般的に理解されるものと同じ意味を有する。一般的に用いられる予め定義された用語は、関連技術の文脈上で有する意味と一致する意味を有するものと解釈されなければならず、本明細書で明白に定義しない限り、理想的又は過度に形式的な意味として解釈されることはない。
【0024】
以下、添付する図面を参照しながら実施形態を詳細に説明する。図面を参照して説明する際に、図面符号に関わらず同じ構成要素は同じ参照符号を付与し、これに対する重複する説明は省略する。
【0025】
図1は、一実施形態に係る電子装置を説明するための図である。
【0026】
図1を参照すると、車両100は、道路や線路上を走る全ての形態の移動手段を含んでもよい。車両100は、例えば、自動車、原動機の自転車などを含み、自動車は、乗用車、貨物車、二輪自動車などの様々な形態を含んでもよい。車両100は、自律走行車両、知能型車両、走行補助システムが搭載されている車両、及びADAS(Advanced Driver Assistance Systems)を支援する車両などであってもよい。本明細書で車両100は、電子装置110が装着されている車両を称する。
【0027】
電子装置110は、メモリ111、プロセッサ113、及びカメラ115を含む。
【0028】
電子装置110は、カメラ115において、異なる時点で取得された映像に基づいてカメラ115の姿勢(pose)、言い換えれば、(例えば、車両100に対する任意の基準フレームにおける)位置及び/又は方向を推定することができる。電子装置110は、映像に基づいてカメラ115の位置変化を推定し、推定されたカメラ115の位置変化と映像との間の特徴点マッチングに基づいたSLAM動作を行うことで、カメラ115の位置及び/又は方向を推定することができる。カメラ115の位置及び/又は方向を推定する動作については、
図3及び
図4を参照して詳細に説明する。
【0029】
カメラ115が車両100に配置される実施形態において、カメラ115の位置及び/又は方向が推定されれば、車両100の位置及び/又は方向も決定されてもよい。推定された車両100の位置及び/又は方向は、車両100の制御や車両100に搭乗したユーザに提供される様々なサービスに活用されるが、前述した例に限定されない。
【0030】
メモリ111は、コンピュータで読み出し可能な命令語を含んでもよい。プロセッサ113は、メモリ111に格納されている命令語がプロセッサ113で実行されることにより、以後に説明する動作を行うことができる。メモリ111は、揮発性メモリ又は不揮発性メモリであってもよい。
【0031】
プロセッサ113は、命令語、あるいはプログラムを実行したり、電子装置110を制御する装置として、例えば、CPU(中央処理ユニット、Central Processing Unit)及び/又はGPU(グラフィック処理ユニット、Graphic Processing Unit)などを含んでもよい。プロセッサ113は、同じカメラで異なる時点に撮影された映像を取得し、ニューラルネットワークに基づいて映像が撮影された2時点間のカメラの位置変化を推定し、カメラの位置変化及び映像に基づいてカメラの位置及び/又は方向を推定する。本明細書で説明の便宜のために「プロセッサ」を単数形として記載するが、「プロセッサ」は、可能な様々な類型の1つ以上のプロセッサを示してもよく、全体的に同一のプロセッサを意味しない場合もある。また、「プロセッサ」の使用は、本明細書に開示された装置が1つであることを意味しない。本明細書の説明は、それぞれ1つ以上のプロセッサを有する様々な実施形態について説明する。
【0032】
カメラ115は、車両100の前方又は走行方向の場面を撮影して映像を出力する。カメラ115で撮影された映像は、プロセッサ113に伝達される。
【0033】
図1の例として、カメラ115が電子装置110に含まれていると示したが、実施形態はこれに限定されず、電子装置110が外部のカメラから映像を受信してキャリブレーションを行う場合も本明細書の説明が同様に適用され得る。また、
図1の例として、電子装置110が車両100に搭載されていると示しているが、実施形態はこれに限らず、車両100に搭載されているカメラ115で撮影された映像が車両100の外部の電子装置110に伝達され、カメラ115の位置及び方向推定、車両100の位置及び方向を推定することができる。この場合、電子装置110は、携帯電話、スマートフォン、タブレット、ラップトップ、パーソナルコンピュータ、遠隔サーバなど、多様なコンピューティングデバイスであるか、多様なコンピューティングデバイスに具現され得る。
【0034】
図2は、一実施形態に係る単眼ビジュアルSLAMによるスケール曖昧性を説明するための図である。
【0035】
図2を参照すると、電子装置は、単眼ビジュアルSLAM(monocular visual SLAM)に基づいて単一カメラで異なる時点に撮影された映像間の特徴点マッチングを行って、その結果に基づいてカメラの位置及び/方向を推定することができる。
【0036】
ビジュアルSLAMは、カメラを介して取得した映像に基づいて、カメラが以前に取得した映像に比べて位置及び/又は方向がどのように変化したかを3次元上で推定する測位及びマッピングを行う方式で、単眼ビジュアルSLAMは、他のセンサを利用することなく単一カメラを活用するビジュアルSLAMを示す。「単眼カメラ」は、SLAMと共に使用するために一回に単一映像をキャプチャーする単一センサを示す。両眼カメラ(binocular camera)、多重センサカメラ(multi-sensor cameras)などは一回に1つのセンサ又は映像のみを利用することで使用されてもよい。単眼ビジュアルSLAMは、単一カメラで撮影された映像それぞれで特徴点を抽出してもよい。特徴点は、映像において色や明るさ変化が明確な地点、例えば、コーナー及び線分の終わり点で抽出されてもよいが、前述した例に限定されない。2つの時点(time point)あるいはそれ以上の時点で撮影された映像の特徴点をマッチングすることにより対応特徴点などを探し得るが、この情報を用いてカメラの位置及び/又は方向が推定され得る。
【0037】
但し、単一カメラを活用する単眼ビジュアルSLAMの場合、映像の特徴点が正確にマッチングされてもスケール因子(scale factor)によりカメラの位置及び/又は方向が異なるように推定されることがある。
図2に例示的に示した第1仮想ケース210及び第2仮想ケース240のように、2つの映像間の完全に同じ特徴点のマッチング結果があっても、特徴点までの実際の距離(例えば、テプス(depth))により2つの映像が撮影された時間の間のカメラの移動距離がd
1とd
2のように相違するよう算出され、これをスケール曖昧性という。第1仮想ケース210で、第1カメラ位置220は第1時点のカメラ位置を示し、第2カメラ位置230は第2時点のカメラ位置を示す。同様に、第2仮想ケース240で、第3カメラ位置250は第3時点のカメラ位置を示し、第4カメラ位置260は第4時点のカメラ位置を示す。両方のケース全てが2つの映像間の特徴がマッチングされ得るが、互いに異なるカメラ位置が全て単眼SLAMモデルによって潜在的に予測される。まとめると、単眼ビジュアルSLAMは、2つの特徴がマッチングされる映像のキャプチャーの間で単一カメラの動きを正確に予測することができない。
【0038】
カメラの正確な移動距離の推定を妨害するスケール曖昧性は、異なる時点に撮影された映像に基づいて該当映像が撮影された2つの時点間のカメラ位置変化をニューラルネットワークを介して推定することによって解決され、これについては
図3及び
図4Aを参照して詳細に説明する。
【0039】
図3及び
図4A~
図4Cは、一実施形態に係るカメラの位置及び/又は方向を推定する動作を説明するための図である。
【0040】
図3を参照すると、カメラの位置及び/又は方向を推定するための動作が示されている。
【0041】
動作310において、電子装置は、同じカメラで異なる各時点に撮影された映像を取得する。電子装置は、異なる各時点でキャプチャーされた2つ以上の映像を単一カメラから取得してもよい。例えば、映像は、以前フレーム映像及び現在フレーム映像であるか、以前キーフレーム映像、現在キーフレーム映像であってもよいが、異なる時点に撮影された映像であれば、制限されずに適用できる。
【0042】
動作320において、電子装置は、取得した映像それぞれから特徴点を抽出し、1つの映像内の特徴点を他の映像内の特徴点とマッチングさせる。
【0043】
動作330において、電子装置は、取得された映像が入力されるニューラルネットワークを介して映像が撮影された2つの時点間のカメラ位置変化(例えば、2つの時点間のカメラ移動距離)を推定する。カメラの位置変化を推定するニューラルネットワークは(ディープラーニングを介してスケール曖昧性を解決する単眼ビジュアルSLAMモデルに比べて)相対的に軽いモデルであるため、リアルタイムにオンラインで動作することができ、さらに相対的にニューラルネットワークに対する学習データを容易に取得できる。基準カメラと基準位置センサ及び/又は基準慣性センサを含む基準装置で生成された基準映像と該当基準映像が撮影された2つの基準時点間の基準カメラの基準位置変化が学習データとして容易に収集されることができる。ここで、基準カメラ、基準位置センサ、基準慣性センサ、基準装置、基準映像、基準カメラ、基準位置変化は、ニューラルネットワークの学習データを生成するためのもので、基準装置によって生成された学習データで学習されたニューラルネットワークを用いた電子装置のランタイム時に活用されるカメラ、位置センサ、慣性センサ、電子装置、映像、カメラ、位置変化とは区別される。例えば、基準位置センサはGPSセンサを含み、基準慣性センサはIMU(inertial measurement unit)センサを含むが、前述した例に限定されることはない。基準映像は、基準カメラで異なる時点に撮影された映像であり、基準位置変化は、2つの基準時点で基準位置センサ及び/又は基準慣性センサによって検出された値により決定されてもよい。基準映像にマッチングされる基準位置変化を基準位置センサ及び/又は基準慣性センサを介して相対的に安くて容易に確保できるため、該当ニューラルネットワークを実現するために要求されるコストが低減される。
【0044】
動作340において、電子装置は、特徴点のマッチング結果とカメラの位置変化に基づいて、カメラの位置及び/又は方向を推定する。電子装置は、特徴点のマッチング結果とカメラの位置変化に基づいたSLAM動作を行うことができる。電子装置は、カメラの位置変化に応じて特徴点のマッチング結果のスケールを調整することで、カメラの位置及び方向を推定できる。電子装置は、映像間の特徴点マッチングに基づいたSLAM動作で発生するスケール曖昧性をカメラの位置変化に基づいて除去又は減少することで、カメラの位置及び方向を高い精度で推定することができる。
【0045】
図4Aを参照すると、カメラの位置及び/又は方向を推定するためのSLAMモデル410とSLAMフレームワーク420が示されている。
【0046】
異なる時点に撮影された映像(例えば、以前フレーム映像It-1及び現在フレーム映像It)がSLAMモデル410に入力されてもよい。SLAMモデル410は、ニューラルネットワークモデルとして、例えば、エンコーダ411、位置変化推定モデル415、デコーダ417を含む。エンコーダ411は、入力された映像に畳み込み動作を行って映像の大きさを減らしながらチャネル数が大きくなった特徴413を抽出するモデルとして、例えば、CNN(畳み込みニューラルネットワーク、convolution neural network)、ResNet、PoseNet、EfficientNetなどを含んでもよい。エンコーダ411で抽出された特徴413は、エンコーダ411に入力された映像よりも低い解像度を有する。位置変化推定モデル415は、ディープラーニングモデル(deep learning model)として、エンコーダ411で抽出された特徴413に基づいて映像が撮影された2つの時点間のカメラ位置変化Stを推定する。先に説明したように、位置変化推定モデル415は、基準カメラと基準位置センサ及び/又は基準慣性センサを含む基準装置で共に収集された基準映像及び基準映像が撮影された2つの基準時点間の基準カメラの基準位置変化に基づいてトレーニングされてもよい。基準装置において、基準映像と基準位置変化を同時に収集できるため、位置変化推定モデル415の学習データを容易に収集することができる。デコーダ417は、エンコーダ411で抽出された特徴413の大きさを増加させるアップサンプリング(up-sampling)を介して映像の解像度に類似又は同一の特徴マップ(例えば、以前特徴マップFt-1、現在特徴マップFt)を出力する。各特徴マップはエンコーダ411に入力された映像の解像度のNチャネル特徴マップであって、特徴点とディスクリプタ(descriptor)を含んでもよい。ディスクリプタは、特徴点に関する情報(例えば、色、形態、尖っている程度など)を含んでもよい。
【0047】
SLAMフレームワーク420は、デコーダ417から出力された特徴マップを互いにマッチングし、マッチング結果に基づいてカメラの姿勢変化量を初期推定し、初期推定結果のスケールをカメラの位置変化Stに基づいて調整し、調整された結果に基づいたマッピングを行うことができ、先の動作を繰り返す。このような動作を通じて最終的にカメラの位置及び/又は方向Ptが決定される。例えば、姿勢変化量は、位置及び/又は方向の変化量を示すものとして、ベクトルのように表現されてもよい。Ptは、カメラの位置(例えば、x、y、z)及び/又は方向(例えば、ロール(roll)、ピッチ(pitch)、ヨー(yaw))を含んでもよい。
【0048】
SLAMフレームワーク420で初期推定結果のスケールをカメラの位置変化S
tに基づいて調整する動作については、
図4B及び
図4Cを参照して詳細に説明する。
【0049】
図4Bを参照すると、カメラの姿勢変化量に対する初期推定結果のスケールをカメラの位置変化に応じて調整する一例が示されている。ここで、カメラの姿勢変化量に対する初期推定は、
図4AのSLAMフレームワーク420で行われ、カメラの位置変化は、
図4Aの位置変化推定モデル415で推定される。
【0050】
第1時点430において、現在フレームはi番目のフレームであり、以前フレームはi-1番目のフレームである。
【0051】
電子装置は、現在フレームと以前フレームに基づいて2つの時点間のカメラ姿勢変化量を推定する。2つの時点間のカメラ姿勢変化量の推定は、各フレームに対応する特徴ポイント間のマッチング結果に基づいて実行される。カメラ姿勢変化量は、以前時点に比べて現在時点でカメラの位置や方向がどれほど変化したかを示す。カメラ姿勢変化量の初期推定結果からカメラの位置変化量は、先に説明したスケール曖昧性によって不正確である。
【0052】
電子装置は、位置変化推定モデルに基づいて現在フレームと以前フレームからカメラの位置変化を推定することができる。
【0053】
電子装置は、カメラ姿勢変化量に対する初期推定結果のスケールをカメラの位置変化に応じて調整することができる。例えば、電子装置は、カメラ姿勢変化量の初期推定結果から、カメラの位置変化量が位置変化推定モデルで推定されたカメラの位置変化と同一になるよう初期推定結果のスケールを調整し得る。
【0054】
第1時点430の次の時点である第2時点440において、現在フレームはi+1番目のフレームであり、以前フレームはi番目のフレームである。第2時点440において、先で説明した動作が同様に実行され得るため、より詳細な説明は省略する。
【0055】
図4Cを参照すると、カメラの姿勢変化量に対する初期推定結果のスケールをカメラの位置変化に応じて調整する他の一例が示されている。
図4Bでは、1つの以前フレームに対してカメラの位置変化が推定され、姿勢変化量のスケールが調整されている一方、
図4Cでは、複数の以前フレームに対してカメラの位置変化が推定され、姿勢変化量のスケールが調整され得る。複数の以前フレームを介してより多くのカメラの動きを考慮して姿勢変化量のスケール調整の正確度を向上させることができる。特定のフレームに対するカメラの位置変化推定に誤差が発生しても、姿勢変化量のスケール調整の正確度に対する誤差影響を効率よく低下させ得る。
【0056】
ここで、カメラの姿勢変化量に対する初期推定は、
図4Aに示すSLAMフレームワーク420で実行され、カメラの位置変化は、
図4Aに示す位置変化推定モデル415で推定される。
【0057】
第1時点450において、現在フレームはi番目のフレームであり、複数の以前フレームはi-5、i-4、i-3、i-2、i-1番目のフレームであってもよい。
【0058】
電子装置は、隣接する2つのフレームに基づいて2つの時点間のカメラ姿勢変化量を推定し得る。例えば、電子装置は、i-5番目のフレームとi-4番目のフレームに基づいて2つの時点間のカメラ姿勢変化量を推定し、i-4番目のフレームとi-3番目のフレームに基づいて2つの時点間のカメラ姿勢変化量を推定してもよい。残りの隣接フレームに対するカメラ姿勢変化量推定も同様に行われる。
【0059】
電子装置は、隣接する2つのフレームに基づいたカメラ姿勢変化量を用いて、複数の以前フレームそれぞれと現在フレームとの間のカメラ姿勢変化量を決定することができる。例えば、i-2番目のフレームと現在フレームとの間のカメラ姿勢変化量は、i-2番目のフレームとi-1番目のフレームとの間のカメラ姿勢変化量、及びi-1番目のフレームとi番目のフレームとの間のカメラ姿勢変化量を加えることにより決定される。また、i-3番目のフレームと現在フレームとの間のカメラ姿勢変化量は、i-3番目のフレームとi-2番目のフレームとの間のカメラ姿勢変化量、i-2番目のフレームとi-1番目のフレームとの間のカメラ姿勢変化量、及びi-1番目のフレームとi番目のフレームとの間のカメラ姿勢変化量を加えることにより決定されてもよい。残りの以前フレームそれぞれと現在フレームとの間のカメラ姿勢変化量も同様に決定される。
【0060】
電子装置は、位置変化推定モデルに基づいて複数の以前フレームそれぞれと現在フレームからカメラの位置変化を推定し得る。例えば、電子装置は、i-5番目のフレームと現在フレームからカメラの位置変化を推定し、i-4番目のフレームと現在フレームからカメラの位置変化を推定してもよい。残りの以前フレームそれぞれに対するカメラの位置変化推定も同様に行われる。
【0061】
電子装置は、複数の以前フレームそれぞれと現在フレームとの間のカメラ姿勢変化量の初期推定結果から位置変化量と位置変化との間の誤差が最小になるよう、カメラ姿勢変化量に対する初期推定結果のスケールを調整し得る。例えば、i-5番目のフレームと現在フレームとの間の初期推定結果の位置変化量と位置変化との間の誤差、i-4番目のフレームと現在フレームとの間の初期推定結果の位置変化量と位置変化との間の誤差、i-3番目のフレームと現在フレームとの間の初期推定結果の位置変化量と位置変化との間の誤差、i-2番目のフレームと現在フレームとの間の初期推定結果の位置変化量と位置変化との間の誤差、及びi-1番目のフレームと現在フレームとの間の初期推定結果の位置変化量と位置変化との間の誤差の平均が最小になるよう、カメラ姿勢変化量に対する初期推定結果のスケールが調整される。
【0062】
図4Cでは、説明の便宜のために複数の以前フレームが直前5個の以前フレームに示されているが、さらに少ないか又はより多くの以前フレームが使用されてもよい。例えば、複数の以前フレームは2つ以上の以前フレーム、2つ以上のキーフレーム、互いに隣接していない2つ以上の以前フレーム又はこれらの組み合せであってもよい。
【0063】
第1時点450の次の時点である第2時点460において、現在フレームはi+1番目のフレームであり、複数の以前フレームはi-4、i-3、i-2、i-1、i番目のフレームであってもよい。
【0064】
電子装置は、隣接するi番目のフレームとi+1番目のフレームに基づいてカメラ姿勢変化量をさらに推定することで、隣接する2つのフレームに基づいて2つの時点間のカメラ姿勢変化量を推定することができる。i-4番目のフレームとi-3番目のフレームに基づいたカメラ姿勢変化量のような残りの隣接する2つのフレームに基づいたカメラ姿勢変化量は、第1時点450ですでに推定されたため、推定された値がそのまま活用されることで重複演算の実行を効率よく防止することができる。残りの動作については、第1時点450で説明した事項が同様に適用され得るため、より詳細な説明は省略する。
【0065】
図5は、他の一実施形態に係る電子装置を説明するための図である。
【0066】
図5を参照すると、カメラ511の装着されたスマートフォン500が例示的に示されている。
図1は、車両を基準にして説明したが、これに制限されず、カメラ511が装着されている電子装置であれば、制限されることなく本明細書の説明が適用され得る。
【0067】
スマートフォン500は、カメラ511、プロセッサ513、及びメモリ515を含む。カメラ511は、スマートフォン500に配置されている点で、カメラ511の位置及び/又は方向が推定されれば、スマートフォン500の位置及び/又は方向も決定され得る。メモリ515は、コンピュータで読み出し可能な命令語を格納する揮発性メモリ又は不揮発性メモリであってもよい。プロセッサ513は、メモリ515に格納された命令語がプロセッサ513で実行されることにより、先に説明した動作を行うことができる。プロセッサ513は、カメラ511で異なる時点に撮影された映像を取得し、ニューラルネットワークに基づいて映像が撮影された2つの時点間のカメラ511の位置変化を推定し、カメラ511の位置変化及び映像に基づいてカメラ511の位置及び/又は方向を推定し得る。
【0068】
図5は、スマートフォン500が例示的に示されているが、電子装置に対する実施形態はこれに制限されず、例えば、スマートフォン、タブレット、電子ブック装置、又はラップトップのような様々なコンピューティング装置、スマートワォッチ、スマートメガネ、HMD(ヘッドマウントディスプレイ、Head-Mounted Display)、又は、スマート衣類のような様々なウェアラブル機器、スマート自動車、IoT(モノのインターネット、Internet of Things)機器、WAD(歩行支援装置、Walking Assist Device)、ドローン、又は、ロボットにも前述の説明が制限されることなく適用され得る。
【0069】
図6は、一実施形態に係る電子装置の動作方法を示す図である。
【0070】
以下の実施形態において、各動作は順に実行されてもよいが、必ずしも順に実行されなくてもよい。例えば、各動作の順が変更されてもよく、少なくとも2つの動作が並列的に実行されてもよい。動作610~動作630は、電子装置の少なくとも1つの構成要素(例えば、プロセッサ)によって実行されてもよい。
【0071】
動作610において、電子装置は、同じカメラで異なる時点に撮影された映像を取得する。
【0072】
動作620において、電子装置は、ニューラルネットワークに基づいて、映像が撮影された2つの時点間のカメラ位置変化を推定する。ニューラルネットワークは、基準カメラと基準位置センサ及び/又は基準慣性センサを含む基準装置で共に収集された基準映像及び基準映像が撮影された2つの基準時点間の基準カメラの基準位置変化に基づいてトレーニングされてもよい。基準映像は、基準カメラで異なる時点に撮影された映像であってもよい。基準位置変化は、2つの基準時点で基準位置センサ及び/又は基準慣性センサによって検出された値により決定されてもよい。
【0073】
動作630において、電子装置は、カメラの位置変化及び映像に基づいてカメラの位置及び/又は方向を推定する。電子装置は、映像間の特徴点マッチングを行った結果とカメラの位置変化に基づいたSLAM動作を行うことで、カメラの位置及び/又は方向を推定し得る。電子装置は、カメラの位置変化に応じて映像間の特徴点のマッチング結果のスケールを調整することでカメラの位置及び/又は方向を推定し得る。電子装置は、映像間の特徴点マッチングに基づいたSLAM動作で発生するスケール曖昧性をカメラの位置変化に基づいて除去又は減少させることで、カメラの位置及び/又は方向を推定し得る。SLAM動作は、カメラに該当する単一カメラに基づいた単眼ビジュアルSLAMに基づいて実行されてもよい。
【0074】
図6に示された各動作には、
図1~
図5を参照して前述した事項がそのまま適用されるため、より詳細な説明は省略する。
【0075】
【0076】
図7を参照すると、一実施形態に係る電子装置700は、メモリ710及びプロセッサ720を含む。メモリ710及びプロセッサ720は、バス(bus)、PCIe(Peripheral Component Interconnect Express)及び/又はNoC(Network on a Chip)などを介して通信してもよい。
【0077】
メモリ710は、コンピュータで読み出し可能な命令語を含んでもよい。プロセッサ720は、メモリ710に格納された命令語がプロセッサ720で実行されることにより、先に言及された動作を行ってもよい。メモリ710は、揮発性メモリ又は不揮発性メモリであってもよい。
【0078】
プロセッサ720は、命令語、あるいはプログラムを実行したり、電子装置700を制御する装置として、例えば、CPU(Central Processing Unit)及び/又はGPU(Graphic Processing Unit)を含んでもよい。プロセッサ720は、同じカメラで異なる時点に撮影された映像を取得し、ニューラルネットワークに基づいて映像が撮影された2つの時点間のカメラ位置変化を推定し、カメラの位置変化及び映像に基づいてカメラの位置及び/又は方向を推定する。
【0079】
以上で説明された実施形態は、ハードウェア構成要素、ソフトウェア構成要素、又はハードウェア構成要素及びソフトウェア構成要素の組み合せで具現される。例えば、本実施形態で説明した装置及び構成要素は、例えば、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ(digital signal processor)、マイクロコンピュータ、FPA(field programmable array)、PLU(programmable logic unit)、マイクロプロセッサー、又は命令(instruction)を実行して応答する異なる装置のように、1つ以上の汎用コンピュータ又は特殊目的コンピュータを用いて具現される。処理装置は、オペレーティングシステム(OS)及びオペレーティングシステム上で実行される1つ以上のソフトウェアアプリケーションを実行する。また、処理装置は、ソフトウェアの実行に応答してデータをアクセス、格納、操作、処理、及び生成する。理解の便宜のために、処理装置は1つが使用されるものとして説明する場合もあるが、当技術分野で通常の知識を有する者は、処理装置が複数の処理要素(processing element)及び/又は複数類型の処理要素を含むことが把握する。例えば、処理装置は、複数のプロセッサ又は1つのプロセッサ及び1つのコントローラを含む。また、並列プロセッサ(parallel processor)のような、他の処理構成も可能である。
【0080】
ソフトウェアは、コンピュータプログラム、コード、命令、又はそのうちの1つ以上の組合せを含み、希望の通りに動作するよう処理装置を構成したり、独立的又は結合的に処理装置を命令したりすることができる。ソフトウェア及び/又はデータは、処理装置によって解釈されたり処理装置に命令又はデータを提供するために、いずれかの類型の機械、構成要素、物理的装置、仮想装置、コンピュータ格納媒体又は装置、又は送信される信号波に永久的又は一時的に具体化することができる。ソフトウェアはネットワークに連結されたコンピュータシステム上に分散され、分散した方法で格納されたり実行され得る。ソフトウェア及びデータは1つ以上のコンピュータ読み取り可能な記録媒体に格納され得る。
【0081】
本実施形態による方法は、様々なコンピュータ手段を介して実施されるプログラム命令の形態で具現され、コンピュータ読み取り可能な記録媒体に記録される。記録媒体は、プログラム命令、データファイル、データ構造などを単独又は組み合せて含む。記録媒体及びプログラム命令は、本発明の目的のために特別に設計して構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知のものであり使用可能なものであってもよい。コンピュータ読み取り可能な記録媒体の例として、ハードディスク、フロッピー(登録商標)ディスク及び磁気テープのような磁気媒体、CD-ROM、DVDのような光記録媒体、フロプティカルディスクのような磁気-光媒体、及びROM、RAM、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置を含む。プログラム命令の例としては、コンパイラによって生成されるような機械語コードだけでなく、インタプリタなどを用いてコンピュータによって実行される高級言語コードを含む。
【0082】
上記で説明したハードウェア装置は、本発明に示す動作を実行するために1つ以上のソフトウェアモジュールとして作動するように構成してもよく、その逆も同様である。
【0083】
上述したように実施形態をたとえ限定された図面によって説明したが、当技術分野で通常の知識を有する者であれば、上記の説明に基づいて様々な技術的な修正及び変形を適用することができる。例えば、説明された技術が説明された方法と異なる順に実行され、及び/又は説明されたシステム、構造、装置、回路などの構成要素が説明された方法とは異なる形態に結合又は組み合わせられてもよく、他の構成要素又は均等物によって置き換え又は置換されたとしても適切な結果を達成することができる。
【0084】
したがって、他の具現、他の実施形態および特許請求の範囲と均等なものも後述する特許請求範囲の範囲に属する。