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

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

▶ 42ドット・インコーポレイテッドの特許一覧

特開2024-19147ボリュメトリックフィーチャを用いて深度マップを生成する装置及び方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024019147
(43)【公開日】2024-02-08
(54)【発明の名称】ボリュメトリックフィーチャを用いて深度マップを生成する装置及び方法
(51)【国際特許分類】
   G06T 7/579 20170101AFI20240201BHJP
【FI】
G06T7/579
【審査請求】有
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2023123527
(22)【出願日】2023-07-28
(31)【優先権主張番号】10-2022-0094995
(32)【優先日】2022-07-29
(33)【優先権主張国・地域又は機関】KR
(31)【優先権主張番号】10-2022-0095016
(32)【優先日】2022-07-29
(33)【優先権主張国・地域又は機関】KR
(71)【出願人】
【識別番号】523045180
【氏名又は名称】42ドット・インコーポレイテッド
【氏名又は名称原語表記】42dot Inc.
(74)【代理人】
【識別番号】100145403
【弁理士】
【氏名又は名称】山尾 憲人
(74)【代理人】
【識別番号】100135703
【弁理士】
【氏名又は名称】岡部 英隆
(74)【代理人】
【識別番号】100227927
【弁理士】
【氏名又は名称】中村 拓
(72)【発明者】
【氏名】チョン,ソンギュン
(72)【発明者】
【氏名】キム,ジョンヒ
(72)【発明者】
【氏名】グエン,フォック ティエン
(72)【発明者】
【氏名】ホ,ジュンファ
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096AA06
5L096AA09
5L096CA05
5L096DA01
5L096FA66
5L096HA11
5L096KA04
(57)【要約】      (修正有)
【課題】ボリュメトリックフィーチャを用いて深度マップを生成する装置及び方法を提供する。
【解決手段】単眼カメラを用いて深度マップを生成する方法は、サラウンドビュー画像に含まれる基本画像をエンコード及び後処理して基本画像の単一フィーチャマップを生成し、単一フィーチャマップを深度情報と共にエンコードし、その後エンコード結果を3次元空間に投影することにより、ボリュメトリックフィーチャを生成する。深度デコーダを用いてボリュメトリックフィーチャをデコードすることにより、サラウンドビュー画像の深度マップを生成する。
【選択図】図11
【特許請求の範囲】
【請求項1】
ボリュメトリックフィーチャを用いて深度マップを生成する方法において、
1つ以上の単眼カメラによりサラウンドビュー画像を取得するステップと、
前記サラウンドビュー画像に含まれる基本画像をエンコードして多重スケール(multi-scale)画像フィーチャを生成するステップと、
前記多重スケール画像フィーチャのそれぞれを所定の解像度を基準にリサイズ(resize)及び連結(concatenate)して、前記基本画像の単一フィーチャマップを生成するステップと、
前記単一フィーチャマップを深度情報(depth information)と共にエンコードし、その後エンコード結果を3次元空間に投影することにより、ボリュメトリックフィーチャ(volumetric feature)を生成するステップと、
深度デコーダを用いて前記ボリュメトリックフィーチャをデコードすることにより、前記サラウンドビュー画像の深度マップを生成するステップとを含む、方法。
【請求項2】
前記ボリュメトリックフィーチャを生成するステップは、
前記単一フィーチャマップを前記深度情報と連結(concatenate)してエンコードし、その後エンコード結果を3次元空間に投影することにより、3次元ボリュメトリック空間上のローカル3次元フィーチャを抽出するステップと、
前記ローカル3次元フィーチャを用いて前記ボリュメトリックフィーチャを生成するステップとを含む、請求項1に記載の方法。
【請求項3】
前記ボリュメトリックフィーチャを生成するステップは、
ボリュメトリックエンコーダに前記ローカル3次元フィーチャを入力してボリュメトリックフィーチャを生成するステップを含む、請求項2に記載の方法。
【請求項4】
前記ボリュメトリックエンコーダは、複数の多層パーセプトロン(Multi-Layer Perceptron)で構成され、
前記ボリュメトリックフィーチャを生成するステップは、
前記3次元ボリュメトリック空間上のボクセル別に重なりが発生したか否かによって異なる多層パーセプトロンにボクセルを割り当てるステップと、
前記異なる多層パーセプトロンからのエンコード結果を融合(fuse)して前記ボリュメトリックフィーチャを生成するステップとを含む、請求項3に記載の方法。
【請求項5】
前記深度マップを生成するステップは、
前記1つ以上の単眼カメラの内部パラメータ(intrinsic parameter)及び外部パラメータ(extrinsic parameter)に基づいて、前記ボリュメトリックフィーチャを前記所定の解像度を有する投影された画像フィーチャに変換するステップと、
深度デコーダを用いて前記投影された画像フィーチャをデコードすることにより、前記サラウンドビュー画像の深度マップを生成するステップとを含む、請求項1に記載の方法。
【請求項6】
前記方法は、
前記ボリュメトリックフィーチャを前記所定の解像度を有する投影された画像フィーチャに変換するための投影行列(projection matrix)を決定するステップと、
要求されるビュー(desired view)に合う投影行列を用いて、前記深度マップを変調するステップとをさらに含む、請求項5に記載の方法。
【請求項7】
単眼カメラを用いて深度マップを生成する装置において、
少なくとも1つのプログラムが格納されたメモリと、
前記少なくとも1つのプログラムを実行するプロセッサとを含み、
前記プロセッサは、
1つ以上の単眼カメラによりサラウンドビュー画像を取得し、
前記サラウンドビュー画像に含まれる基本画像をエンコードして多重スケール(multi-scale)画像フィーチャを生成し、
前記多重スケール画像フィーチャのそれぞれを所定の解像度を基準にリサイズ(resize)及び連結(concatenate)して、前記基本画像の単一フィーチャマップを生成し、
前記単一フィーチャマップを深度情報(depth information)と共にエンコードし、その後エンコード結果を3次元空間に投影することにより、ボリュメトリックフィーチャ(volumetric feature)を生成し、
深度デコーダを用いて前記ボリュメトリックフィーチャをデコードすることにより、前記サラウンドビュー画像の深度マップを生成するものである、装置。
【請求項8】
請求項1に記載の方法をコンピュータで実行するためのプログラムを記録したコンピュータで読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ボリュメトリックフィーチャを用いて深度マップを生成する装置及び方法に関する。
【背景技術】
【0002】
ロボットビジョン(robot vision)、ヒューマンコンピュータインタフェース(human computer interface)、インテリジェントビジュアルサーベイランス(intelligent visual surveillance)、3D画像取得(3D image acquisition)などのように、様々な分野で用いられる3D深度情報の推定方法について活発な研究が行われている。特に、自律走行(autonomous driving)システムにおいて、収集された画像データ上で検出されたオブジェクトと車両との距離を始めとして様々な走行環境を認知して判断することにより車両を制御するために、正確性の高い深度推定に関する研究が求められている。
【0003】
深度情報を推定する方法は、赤外線、超音波、レーザ、光の散乱特性などの信号を用いる方式と、画像を分析する方式がある。赤外線、超音波を用いて距離を推定する方式は、オブジェクトの状態によって反射して戻る信号が影響を受けることがあるという欠点がある。レーザなどの信号を用いることは、正確度が高いが、高価な追加装置を用いなければならないという欠点がある。
【0004】
一方、カメラを用いて深度情報を推定することは、別の追加装置を必要としない。また、深度情報は、ステレオカメラを用いた視差(disparity)計算に基づいて生成することができるが、正確な深度推定のために2台のカメラに対する精密な補正(calibration)作業が必要であり、視差計算に多くの時間がかかるという問題がある。よって、単眼カメラにより深度情報を正確に推定する方法に関する研究の必要性が高まっている。
【0005】
前述した背景技術は、発明者が本発明の導出のために保有していたか、又は本発明の導出過程で習得した技術情報であって、必ずしも本発明の出願前に一般公衆に公開された公知技術であるとはいえない。
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明は、ボリュメトリックフィーチャを用いて深度マップを生成する装置及び方法を提供する。本発明が解決しようとする課題は、以上で述べられている課題に限定されず、述べられていない本発明の他の課題及び利点は、以下の説明により理解され、本発明の実施形態によりさらに明らかに理解されるであろう。また、本発明が解決しようとする課題及び利点は、特許請求の範囲に示される手段及びその組み合わせにより実現できることが理解されるであろう。
【課題を解決するための手段】
【0007】
上述した技術的課題を解決するための技術的手段として、本開示の第1態様は、ボリュメトリックフィーチャを用いて深度マップを生成する方法において、1つ以上の単眼カメラによりサラウンドビュー画像を取得するステップと、前記サラウンドビュー画像に含まれる基本画像をエンコードして多重スケール(multi-scale)画像フィーチャを生成するステップと、前記多重スケール画像フィーチャのそれぞれを所定の解像度を基準にリサイズ(resize)及び連結(concatenate)して、前記基本画像の単一フィーチャマップを生成するステップと、前記単一フィーチャマップを深度情報(depth information)と共にエンコードし、その後エンコード結果を3次元空間に投影することにより、ボリュメトリックフィーチャ(volumetric feature)を生成するステップと、深度デコーダを用いて前記ボリュメトリックフィーチャをデコードすることにより、前記サラウンドビュー画像の深度マップを生成するステップとを含む、方法を提供することができる。
【0008】
本開示の第2態様は、ボリュメトリックフィーチャを用いて深度マップを生成する装置において、少なくとも1つのプログラムが格納されたメモリと、前記少なくとも1つのプログラムを実行するプロセッサとを含み、前記プロセッサは、1つ以上の単眼カメラによりサラウンドビュー画像を取得し、前記サラウンドビュー画像に含まれる基本画像をエンコードして多重スケール(multi-scale)画像フィーチャを生成し、前記多重スケール画像フィーチャのそれぞれを所定の解像度を基準にリサイズ(resize)及び連結(concatenate)して、前記基本画像の単一フィーチャマップを生成し、前記単一フィーチャマップを深度情報(depth information)と共にエンコードし、その後エンコード結果を3次元空間に投影することにより、ボリュメトリックフィーチャ(volumetric feature)を生成し、深度デコーダを用いて前記ボリュメトリックフィーチャをデコードすることにより、前記サラウンドビュー画像の深度マップを生成するものである、装置を提供することができる。
【0009】
本開示の第3態様は、ボリュメトリックフィーチャを用いて単眼カメラのポーズ情報を取得する方法において、1つ以上の単眼カメラによりサラウンドビュー画像を取得するステップと、前記サラウンドビュー画像に含まれる基本画像をエンコードして多重スケール(multi-scale)画像フィーチャを生成するステップと、前記多重スケール画像フィーチャのそれぞれを所定の解像度を基準にリサイズ(resize)及び連結(concatenate)して、前記基本画像の単一フィーチャマップを生成するステップと、前記単一フィーチャマップをエンコードし、その後エンコード結果を3次元空間に投影することにより、ボリュメトリックフィーチャ(volumetric feature)を生成するステップと、ポーズデコーダを用いて前記ボリュメトリックフィーチャをデコードすることにより、次の時点での単眼カメラのポーズ情報を一括取得するステップとを含む、方法を提供することができる。
【0010】
また、前記単眼カメラのポーズ情報を一括取得するステップは、ポーズデコーダを用いて前記ボリュメトリックフィーチャをデコードすることにより、基準単眼カメラにおける現在の時点のカメラポーズと次の時点のカメラポーズ間の変化量を示す標準カメラモーション(canonical camera motion)を取得するステップと、前記基準単眼カメラと他の単眼カメラとの間の外部パラメータ関係及び前記標準カメラモーションに基づいて、前記次の時点での前記他の単眼カメラのポーズ情報を一括取得するステップとを含む、方法を提供することができる。
【0011】
さらに、前記標準カメラモーションを取得するステップは、前記ボリュメトリックフィーチャを鳥瞰図(BEV)フィーチャに平面化(flatten)するステップと、前記ポーズデコーダを用いて前記鳥瞰図フィーチャをデコードするステップとを含む、方法を提供することができる。
【0012】
さらに、前記方法は、深度デコーダを用いて前記ボリュメトリックフィーチャをデコードすることにより、前記サラウンドビュー画像の深度マップを生成するステップをさらに含む、方法を提供することができる。
【0013】
さらに、前記方法は、前記サラウンドビュー画像をニューラルネットワークの入力データとして用い、前記深度マップ及び前記標準カメラモーションを出力データとして用いることにより、前記ニューラルネットワークを学習させるステップをさらに含む、方法を提供することができる。
【0014】
さらに、前記ニューラルネットワークは、画像再構成損失(image reconstruction loss)及び深度合成損失(depth synthesis loss)を最小限に抑える方向に学習されるものである、方法を提供することができる。
【0015】
さらに、前記画像再構成損失は、時間的(temporal)損失、空間的(spatio)損失及び時空間的(spatio-temporal)損失を含むものである、方法を提供することができる。
【0016】
さらに、前記深度合成損失は、深度一貫性(consistency)損失を含むものである、方法を提供することができる。
【0017】
本開示の第4態様は、単眼カメラを用いて深度マップを生成する装置において、少なくとも1つのプログラムが格納されたメモリと、前記少なくとも1つのプログラムを実行するプロセッサとを含み、前記プロセッサは、1つ以上の単眼カメラによりサラウンドビュー画像を取得し、前記サラウンドビュー画像に含まれる基本画像をエンコードして多重スケール(multi-scale)画像フィーチャを生成し、前記多重スケール画像フィーチャのそれぞれを所定の解像度を基準にリサイズ(resize)及び連結(concatenate)して、前記基本画像の単一フィーチャマップを生成し、前記単一フィーチャマップを深度情報(depth information)と共にエンコードし、その後エンコード結果を3次元空間に投影することにより、ボリュメトリックフィーチャ(volumetric feature)を生成し、前記ボリュメトリックフィーチャに基づいて次の時点での単眼カメラのポーズ情報を一括取得するものである、装置を提供することができる。
【0018】
本開示の第5態様は、第1態様又は第3態様による方法をコンピュータで実行するためのプログラムを記録したコンピュータで読み取り可能な記録媒体を提供することができる。
【0019】
それら以外にも、本発明を実現するための他の方法、他のシステム、及び前記方法を実行するためのコンピュータプログラムが格納されたコンピュータで読み取り可能な記録媒体をさらに提供することができる。
【0020】
上記以外の他の態様、特徴、利点は、添付の図面、特許請求の範囲、及び以下の発明の詳細な説明から明らかになるであろう。
【発明の効果】
【0021】
前述した本開示の課題解決手段によれば、本開示においては、実際に撮影された画像ではなくカメラポーズを任意に変調する場合も、スムーズな深度マップを生成することができる。
【図面の簡単な説明】
【0022】
図1】一実施形態による自律走行方式を説明するための図である。
図2】一実施形態による自律走行方式を説明するための図である。
図3】一実施形態による自律走行方式を説明するための図である。
図4A】一実施形態によるサラウンドビュー画像を取得する方法を説明するための例示図である。
図4B】一実施形態によるサラウンドビュー画像を取得する方法を説明するための例示図である。
図5】一実施形態による画像エンコーダを用いてサラウンドビュー画像の単一フィーチャマップを生成する方法を説明するための図である。
図6A】一実施形態による単一フィーチャマップを用いてボリュメトリックフィーチャを生成する方法を説明するための例示図である。
図6B】一実施形態による単一フィーチャマップを用いてボリュメトリックフィーチャを生成する方法を説明するための例示図である。
図6C】一実施形態による単一フィーチャマップを用いてボリュメトリックフィーチャを生成する方法を説明するための例示図である。
図7】一実施形態によるサラウンドビュー画像の深度マップを生成する方法を説明するための例示図である。
図8A】一実施形態による任意の回転ビューに応じた深度マップを取得する方法を説明するための例示図である。
図8B】一実施形態による任意の回転ビューに応じた深度マップを取得する方法を説明するための例示図である。
図8C】一実施形態による任意の回転ビューに応じた深度マップを取得する方法を説明するための例示図である。
図8D】一実施形態による任意の回転ビューに応じた深度マップを取得する方法を説明するための例示図である。
図8E】一実施形態による任意の回転ビューに応じた深度マップを取得する方法を説明するための例示図である。
図9】一実施形態による標準モーションの予測を行う方法を説明するための例示図である。
図10】一実施形態による自己教師あり学習を用いたニューラルネットワークを説明するための例示図である。
図11】一実施形態による単眼カメラを用いて深度マップを生成する方法を説明するためのフローチャートである。
図12】一実施形態による深度マップ生成装置のブロック図である。
【発明を実施するための形態】
【0023】
本発明の利点及び特徴、並びにそれらを達成する方法は、添付の図面と共に詳細に説明される実施形態を参照することによって明らかになるであろう。しかし、本発明は、以下に提示される実施形態に限定されるものではなく、異なる様々な形態で実現することができ、本発明の思想及び技術範囲に含まれる全ての変換、均等物乃至代替物を含むものと理解されるべきである。以下に提示される実施形態は、本発明の開示を完全にし、本発明の属する技術の分野における通常の知識を有する者に発明の範疇を完全に理解させるために提供されるものである。本発明を説明するにあたり、関連する公知技術についての具体的な説明が本発明の要旨を不明にすると判断される場合、その詳細な説明を省略する。
【0024】
本出願で用いられる用語は、単に特定の実施形態を説明するために用いられるものであり、本発明の限定を意図するものではない。単数の表現は、文脈上明らかに他の意味を表さない限り、複数の表現を含む。本出願において、「含む」や「有する」などの用語は、明細書に記載された特徴、数字、ステップ、動作、構成要素、部品、又はそれらの組み合わせが存在することを指定するものであり、1つ又はそれ以上の他の特徴、数字、ステップ、動作、構成要素、部品、又はそれらの組み合わせの存在や追加の可能性を予め排除するものではないと理解されるべきである。
【0025】
本開示の一部の実施形態は、機能ブロック構成及び様々な処理ステップで示すことができる。そのような機能ブロックの一部又は全部は、特定の機能を実行する様々な数のハードウェア及び/又はソフトウェア構成で実現することができる。 例えば、本開示の機能ブロックは、1つ以上のマイクロプロセッサにより実現するか、又は所定の機能のための回路構成により実現することができる。また、例えば、本開示の機能ブロックは、様々なプログラミング又はスクリプト言語で実現することができる。機能ブロックは、1つ以上のプロセッサで実行されるアルゴリズムで実現することができる。 さらに、本開示は、電子的な環境設定、信号処理及び/又はデータ処理などのために従来技術を採用することができる。「メカニズム」、「要素」、「手段」、「構成」などの用語は広く用いることができ、機械的及び物理的な構成に限定されるものではない。
【0026】
なお、図面に示す構成要素間の連結線又は連結部材は、機能的連結及び/又は物理的連結もしくは回路接続を例示的に示すものに過ぎない。実際の装置では、代替可能又は追加の様々な機能的連結、物理的連結又は回路接続により構成要素間の連結を示すことができる。
【0027】
以下、「車両」とは、自動車、バス、バイク、キックボード又はトラックのように、機関を有して人や物を移動させるために用いられるあらゆる種類の運送手段を意味し得る。
【0028】
以下、添付図面を参照して本開示を詳細に説明する。
【0029】
図1図3は一実施形態による自律走行方式を説明するための図である。
【0030】
図1を参照すると、本発明の一実施形態による自律走行装置は、車両に装着されて自律走行車両10を実現することができる。自律走行車両10に装着される自律走行装置は、周辺の状況情報を収集するための様々なセンサを含んでもよい。一例として、自律走行装置は、自律走行車両10の前面に装着されたイメージセンサ及び/又はイベントセンサにより、前方を運行中の先行車両20の動きを検知することができる。自律走行装置は、自律走行車両10の前方はもとより、隣の車路を運行中の他の走行車両30や、自律走行車両10周辺の歩行者などを検知するためのセンサをさらに含んでもよい。
【0031】
自律走行車両周辺の状況情報を収集するためのセンサの少なくとも1つは、図1に示すように、所定の画角(FoV)を有してもよい。一例として、自律走行車両10の前面に装着されたセンサが図1に示すような画角(FoV)を有する場合、センサの中央で検出される情報が相対的に高い重要度を有することができる。これは、センサの中央で検出される情報に、先行車両20の動きに対応する情報のほとんどが含まれているからである。
【0032】
自律走行装置は、自律走行車両10のセンサが収集した情報をリアルタイムで処理して自律走行車両10の動きを制御する一方、センサが収集した情報の少なくとも一部はメモリ装置に保存することができる。
【0033】
図2を参照すると、自律走行装置40は、センサ部41、プロセッサ46、メモリシステム47、車体制御モジュール48などを含んでもよい。センサ部41は、複数のセンサ42~45を含み、複数のセンサ42~45は、イメージセンサ、イベントセンサ、照度センサ、GPS装置、加速度センサなどを含んでもよい。
【0034】
センサ42~45が収集したデータは、プロセッサ46に伝達されてもよい。プロセッサ46は、センサ42~45が収集したデータをメモリシステム47に保存し、センサ42~45が収集したデータに基づいて車体制御モジュール48を制御して車両の動きを決定することができる。メモリシステム47は、2つ以上のメモリ装置と、メモリ装置を制御するためのシステムコントローラとを含んでもよい。メモリ装置のそれぞれは、1つの半導体チップとして提供されてもよい。
【0035】
メモリシステム47のシステムコントローラの他に、メモリシステム47に含まれるメモリ装置のそれぞれは、メモリコントローラを含んでもよく、メモリコントローラは、ニューラルネットワークなどの人工知能(AI)演算回路を含んでもよい。メモリコントローラは、センサ42~45又はプロセッサ46から受信したデータに所定の重みを付けて演算データを生成し、演算データをメモリチップに保存することができる。
【0036】
図3は自律走行装置が搭載された自律走行車両のセンサが取得した画像データの例を示す図である。図3を参照すると、画像データ50は、自律走行車両の前面に装着されたセンサが取得したデータであり得る。よって、画像データ50には、自律走行車両の前面部51、自律走行車両と同じ車路の先行車両52、自律走行車両周辺の走行車両53、背景54、車線55、56などが含まれ得る。
【0037】
図3に示す実施形態による画像データ50において、自律走行車両の前面部51と背景54が示される領域のデータは、自律走行車両の運行に影響を及ぼす可能性がほとんどないデータであり得る。つまり、自律走行車両の前面部51と背景54は、相対的に低い重要度を有するデータとしてみなされ得る。
【0038】
それに対して、先行車両52との距離、走行車両53の車路変更の動きなどは、自律走行車両の安全な運行において非常に重要な要素であり得る。よって、画像データ50において、先行車両52や走行車両53などが含まれる領域のデータは、自律走行車両の運行において相対的に高い重要度を有し得る。
【0039】
自律走行装置のメモリ装置は、センサから受信した画像データ50の領域毎に異なる重みを与えて保存することができる。一例として、先行車両52や走行車両53などが含まれる領域のデータには高い重みを与え、自律走行車両の前面部51と背景54が示される領域のデータには低い重みを与えてもよい。
【0040】
図4A及び図4Bは一実施形態によるサラウンドビュー画像を取得する方法を説明するための例示図である。
【0041】
深度マップを生成する装置(以下、「深度マップ生成装置」という)は、1つ以上の単眼カメラにより、車両が走行中の道路の画像を取得することができる。
【0042】
1つ以上のカメラは、車両に設置される際に、車両の全方向の画像を撮影するようにそれぞれ異なる方向に配向されて設置されてもよい。1つ以上のカメラのそれぞれは、内部パラメータ(intrinsic parameters)及び外部パラメータ(extrinsic parameters)を有する。
【0043】
内部パラメータには、焦点距離(focal length)、主点(principal point)及び非対称係数(skew coefficient)などが含まれ得る。外部パラメータは、カメラ座標系とワールド座標系との間の変換関係を説明するパラメータであって、外部パラメータには、2つの座標系間の回転(rotation)及び平行移動(translation)変換情報が含まれ得る。
【0044】
図4Aを参照すると、車両400には6台のカメラが設置され、それぞれ車両400の前方(front)、後方(rear)、右側前方(front-right)、右側後方(rear-right)、左側前方(front-left)及び左側後方(rear-left)を撮影するように設置されてもよい。
【0045】
車両400に設置された各カメラで取得された画像はIで示され得、例えば、図4Aにおいて設置された各カメラはI、I、...Iで示され得る。
【0046】
図4A図4Bとを比較すると、図4Aには時点tで各カメラにより撮影された6つの画像が示され、各画像は
で示され得る。また、図4Bには時点t以降の時点t+1で各カメラにより撮影された6つの画像が示され、各画像は
で示され得る。
【0047】
以下、上述のように車両400に設置された1つ以上の単眼カメラにより所定の時点で撮影された複数の基本画像で構成された画像セットを「サラウンドビュー画像」と呼ぶことにする。
【0048】
図5は一実施形態による画像エンコーダを用いてサラウンドビュー画像の単一フィーチャマップを生成する方法を説明するための図である。
【0049】
深度マップ生成装置は、画像エンコーダ(image encoder)500を含んでもよい。画像エンコーダ500は、サラウンドビュー画像に含まれる複数の基本画像を入力データとして用いることができる。
【0050】
画像エンコーダ500は、基本画像の多重スケール(multi-scale)画像フィーチャ510を生成することができる。また、画像エンコーダ500は、多重スケール画像フィーチャ510を所定の解像度を基準にリサイズ(resize)してから互いに連結(concatenate)して、基本画像の単一フィーチャマップ520を生成することができる。
【0051】
具体的には、図5を参照すると、画像エンコーダ500は、CNN(convolution neural network)を用いて基本画像の解像度を1/2ずつ下げて多重スケール画像フィーチャ510を生成することができる。例えば、画像エンコーダ500は、多重スケール画像フィーチャ510を生成するために、ResNet18を用いて、基本画像(H×W解像度)に対して1/2、1/4、1/8、1/16解像度の多重スケール画像フィーチャ510を生成することができる。また、画像エンコーダ500は、「H/8×W/8」を基準解像度に設定し、多重スケール画像フィーチャ510をアップサンプリング(up-sampling)して「H/8×W/8」を基準にリサイズしてから互いに連結して単一フィーチャマップ520を生成することができる。
【0052】
すなわち、深度マップ生成装置は、上述の方法により、画像エンコーダ500を用いて、サラウンドビュー画像に含まれる複数の基本画像Iのそれぞれの単一フィーチャマップFを生成することができる。例えば、深度マップ生成装置は、サラウンドビュー画像に含まれる複数の基本画像I、I、...Iのそれぞれの単一フィーチャマップF、F、...Fを生成することができる。
【0053】
図6A図6Cは一実施形態による単一フィーチャマップを用いてボリュメトリックフィーチャを生成する方法を説明するための例示図である。
【0054】
深度マップ生成装置は、単一フィーチャマップを深度情報(depth information)と共にエンコードし、その後エンコード結果を3次元空間に投影することにより、ボリュメトリックフィーチャ(volumetric feature)を生成することができる。
【0055】
図6Aを参照すると、所定のカメラにより撮影された基本画像Iから生成された単一フィーチャマップFに対して、深度マップ生成装置は、ピクセルpから所定のカメラの中心までの光線(ray)に沿ってボクセルセット(set of voxels)を選択し、単一フィーチャマップにピクセルを割り当てたF(p)を設定することができる。深度マップ生成装置は、所定のカメラの内部パラメータ及び外部パラメータを用いたバックワードワーピング(backward-warping)などのマッピング関数でそれを実現することができる。
【0056】
各ピクセルpの単一フィーチャマップF(p)610には、F(p)610ピクセルの光線に沿った(along)高レベル情報(high-level information)が含まれるので、図6Bを参照すると、深度マップ生成装置は、F(p)610をボクセル座標の深度情報620と連結(concatenate)してエンコードすることができる。また、深度マップ生成装置は、エンコード結果を3次元空間に投影することにより、各ボクセル座標(x,y,z)のローカル3次元フィーチャを抽出することができる。
【0057】
一方、サラウンドビュー画像を撮影する複数のカメラのビューにおける空間的重なり(overlap)が発生することにより、3次元ボリュメトリック空間上の一部のボクセルが複数の単一フィーチャマップに関連付けられ得る。
【0058】
図6Bを参照すると、3次元ボリュメトリック空間上の一部のボクセルは重なりが発生しているのに対して、他のボクセルは重なりが発生していないことを確認することができる。
【0059】
深度マップ生成装置は、ローカル3次元フィーチャをボリュメトリックエンコーダに入力してボリュメトリックフィーチャを生成することができる。一実施形態において、深度マップ生成装置は、ボクセル別に重なりが発生したか否かによって異なる多層パーセプトロン(Multi-Layer Perceptron;MLP)にボクセルを割り当てることができる。
【0060】
図6Cを参照すると、ローカル3次元フィーチャがボリュメトリックエンコーダに入力された後、重なりが発生しているボクセルと、重なりが発生していないボクセルとが異なるMLPに割り当てられることを確認することができる。
【0061】
深度マップ生成装置は、異なるMLPにボクセルが割り当てられてエンコードされた結果を全体的に融合(fuse)してボリュメトリックフィーチャ640を生成することができる。本開示においては、ボクセル別に重なりが発生したか否かによって異なるMLPにボクセルを割り当ててエンコードした後、その結果を融合してボリュメトリックフィーチャ640を生成することにより、ボリュメトリックフィーチャ640の各ボクセルは3Dジオメトリに関連する高次元フィーチャをエンコードすることができる。
【0062】
図7は一実施形態によるサラウンドビュー画像の深度マップを生成する方法を説明するための例示図である。
【0063】
深度マップ生成装置は、車両に設置された1つ以上のカメラの内部パラメータ及び外部パラメータに基づいて、図6Cにおいて生成されたボリュメトリックフィーチャを所定の解像度を有する投影された画像フィーチャに変換することができる。ここで、内部パラメータには、焦点距離(focal length)、主点(principal point)及び非対称係数(skew coefficient)などが含まれ得る。外部パラメータは、カメラ座標系とワールド座標系との間の変換関係を説明するパラメータであって、外部パラメータには、2つの座標系間の回転(rotation)及び平行移動(translation)変換情報が含まれ得る。
【0064】
また、深度マップ生成装置は、深度デコーダ(depth decoder)を用いて投影された画像フィーチャをデコードすることにより、サラウンドビュー画像の深度マップを生成することができる。
【0065】
具体的には、図7を参照すると、深度マップ生成装置は、ボリュメトリックフィーチャ710に対してカメラ別の内部パラメータK及び外部パラメータEを適用して所定の解像度「H/8×W/8」を有する投影された画像フィーチャ730
を生成することができる。例えば、深度マップ生成装置は、ボリュメトリックフィーチャ710Vに対してカメラ別の外部パラメータE、E、...Eを適用して投影された画像フィーチャ730
を生成することができる。
【0066】
深度マップ生成装置は、深度デコーダ740を用いて解像度「H/8×W/8」を有する投影された画像フィーチャ730
をデコードすることにより、解像度「H×W」の深度マップを生成することができる。例えば、深度マップ生成装置は、解像度「H/8×W/8」を有する投影された画像フィーチャ730
をアップサンプリングして、深度マップD、D、...Dを生成することができる。
【0067】
深度デコーダ740は、アップサンプリングのための3つの畳み込み層及び深度出力のための1つの畳み込み層から構成されてもよいが、それに限定されるものではない。
【0068】
本開示においては、図5図7において上述した方法により、図4aのサラウンドビュー画像として取得された各6つのカメラ別の画像I、I、...I図7の深度マップD、D、...Dに変換することができる。
【0069】
図8A図8Eは一実施形態による任意の回転ビューに応じた深度マップを取得する方法を説明するための例示図である。
【0070】
図7において上述したように、深度マップ生成装置は、車両に設置された1つ以上のカメラの外部パラメータに基づいて、ボリュメトリックフィーチャを所定の解像度を有する投影された画像フィーチャに変換することができる。
【0071】
本開示は、その過程で一般性を失わず、カメラポーズをそのまま維持する代わりに、所望のビューに対する標準座標系(canonical coordinate)からの投影行列(projection matrix)を用いて、ボリュメトリックフィーチャを投影された画像フィーチャに変換することができる。特に、本開示は、標準モーション(canonical motion)と所望のカメラポーズとの積で変調(modulate)することにより新たなカメラポーズを得ることができる。すなわち、深度マップ生成装置は、ボリュメトリックフィーチャを所定の解像度を有する投影された画像フィーチャに変換するための投影行列を決定し、要求されるビュー(desired view)に合う投影行列を用いて深度マップを変調することができる。
【0072】
また、カメラビューにおいて空間的重なりが共通のボリュメトリックフィーチャを共有するので、本開示においては、一貫したメトリックスケール深度マップ(metric scaled depth maps)を予測することができる。
【0073】
本開示による方法は、任意の焦点距離だけでなく、ヨー(yaw)/ロール(roll)/ピッチ(pitch)角度を変化させることにより、スムーズな深度マップを生成することができる。すなわち、本開示においては、実際に撮影された画像ではなくカメラポーズを任意に変調する場合も、スムーズな深度マップを生成することができる。
【0074】
図8Aは車両に設置された3台のカメラから取得された画像であって、それぞれ車両の左側前方(front-left)、前方(front)及び右側前方(front-right)を撮影した画像である。
【0075】
図8Bは本開示による方法でカメラの焦点をx1、x1/2、x1/3の倍率で変調して取得した深度マップであり、図8Cは本開示による方法で左側前方及び右側前方の画像を基準にヨー角度(yaw angle)を変調したビュー補間(view-interpolation)深度マップであり、図8Dは本開示による方法で前方画像のロール角度(roll angle)を±10゜変調した深度マップであり、図8Eは本開示による方法で前方画像のピッチ角度(pitch angle)を±3゜変調した深度マップである。
【0076】
図9は一実施形態による標準モーションの予測を行う方法を説明するための例示図である。
【0077】
深度マップ生成装置は、図6Cにおいて生成されたボリュメトリックフィーチャを鳥瞰図(BEV)フィーチャに平面化(flatten)することができる。また、深度マップ生成装置は、ポーズデコーダを用いて鳥瞰図フィーチャをデコードすることにより、基準単眼カメラにおける現在の時点のカメラポーズと次の時点のカメラポーズ間の変化量を示す標準カメラモーション(canonical camera motion)を取得することができる。ここで、「モーション」とは、基準単眼カメラにおける現在の時点のポーズと次の時点のポーズ間の変化量を意味する。深度マップ生成装置は、基準単眼カメラと他の単眼カメラとの間の外部パラメータ関係及び標準カメラモーションに基づいて、次の時点での他の単眼カメラのポーズ情報を一括取得することができる。
【0078】
具体的には、図9を参照すると、深度マップ生成装置は、ボリュメトリックフィーチャ910
のZ軸をチャネル次元Cで崩壊させ(collapse)(すなわち、3Dテンソル
でリシェーピングし)、2D畳み込みを適用することにより、平面化された鳥瞰図フィーチャ920FBEV(すなわち、
)を生成することができる。
【0079】
また、深度マップ生成装置は、ポーズデコーダ930を用いて標準カメラモーション
を取得することができる。標準カメラモーション
は、基準単眼カメラ(例えば、前方単眼カメラ)における現在の時点tのカメラポーズと次の時点t+1のカメラポーズ間の変化量を示す。
【0080】
深度マップ生成装置は、基準単眼カメラと他の単眼カメラとの間の外部パラメータ関係及び標準カメラモーションに基づいて、次の時点での他の単眼カメラのポーズ情報を一括取得することができる。それは下記数式1のように表される。下記数式1において、Eとは、基準単眼カメラの外部パラメータを意味する。
【0081】
【数1】
【0082】
図9を参照すると、車両に設置された単眼カメラが計N個である場合、深度マップ生成装置は、上記数式1により、基準単眼カメラ以外の他の単眼カメラの次の時点t+1でのポーズ情報
を一括取得することができる。
【0083】
一方、前方カメラ以外に、他の方向に配向された単眼カメラも、基準単眼カメラに設定することができる。
【0084】
図10は一実施形態による自己教師あり学習を用いたニューラルネットワークを説明するための例示図である。
【0085】
深度マップ生成装置は、自己教師あり学習(self-supervised learning)を用いてニューラルネットワークを学習させることができる。深度マップ生成装置は、サラウンドビュー画像をニューラルネットワークの入力データとして用い、深度マップ及び標準カメラモーションを出力データとして用いることにより、ニューラルネットワークを学習させることができる。
【0086】
一実施形態において、ニューラルネットワークは、下記数式2による画像再構成損失(image reconstruction loss)
及び深度合成損失(depth synthesis loss)
を最小限に抑える方向に学習され得る。
【0087】
【数2】
また、画像再構成損失は、下記数式3による時間的(temporal)損失L、空間的(spatio)損失LSP及び時空間的(spatio-temporal)損失LSP_tを含み得る。一方、下記数式3において、Lsmoothとは、smoothness lossを意味する。
【0088】
【数3】
【0089】
また、深度合成損失は、下記数式4による深度一貫性(consistency)損失Lcоnsを含み得る。深度一貫性損失Lcоnsは、新たなビューで合成された深度と知られている各カメラビューiでの深度との間の深度差に対するペナルティを示す。
【0090】
【数4】
【0091】
図11は一実施形態による単眼カメラを用いて深度マップを生成する方法を説明するためのフローチャートである。
【0092】
図11を参照すると、ステップ1110において、プロセッサは、1つ以上の単眼カメラによりサラウンドビュー画像を取得することができる。
【0093】
ステップ1120において、プロセッサは、サラウンドビュー画像に含まれる基本画像をエンコードして多重スケール(multi-scale)画像フィーチャを生成することができる。
【0094】
ステップ1130において、プロセッサは、多重スケール画像フィーチャのそれぞれを所定の解像度を基準にリサイズ(resize)及び連結(concatenate)して、基本画像の単一フィーチャマップを生成することができる。
【0095】
ステップ1140において、プロセッサは、単一フィーチャマップを深度情報(depth information)と共にエンコードし、その後エンコード結果を3次元空間に投影することにより、ボリュメトリックフィーチャ(volumetric feature)を生成することができる。
【0096】
一実施形態において、プロセッサは、単一フィーチャマップを前記深度情報と連結(concatenate)してエンコードし、その後エンコード結果を3次元空間に投影することにより、3次元ボリュメトリック空間上のローカル3次元フィーチャを抽出することができる。また、プロセッサは、ローカル3次元フィーチャを用いて前記ボリュメトリックフィーチャを生成することができる。
【0097】
一実施形態において、プロセッサは、ボリュメトリックエンコーダにローカル3次元フィーチャを入力してボリュメトリックフィーチャを生成することができる。
【0098】
一実施形態において、ボリュメトリックエンコーダは、複数の多層パーセプトロン(Multi-Layer Perceptron)で構成されてもよい。プロセッサは、3次元ボリュメトリック空間上のボクセル別に重なりが発生したか否かによって異なる多層パーセプトロンにボクセルを割り当てることができる。プロセッサは、異なる多層パーセプトロンからのエンコード結果を融合(fuse)してボリュメトリックフィーチャを生成することができる。
【0099】
ステップ1150において、プロセッサは、深度デコーダを用いてボリュメトリックフィーチャをデコードすることにより、サラウンドビュー画像の深度マップを生成することができる。
【0100】
一実施形態において、プロセッサは、1つ以上の単眼カメラの内部パラメータ(intrinsic parameter)及び外部パラメータ(extrinsic parameter)に基づいて、ボリュメトリックフィーチャを前記所定の解像度を有する投影された画像フィーチャに変換することができる。プロセッサは、深度デコーダを用いて投影された画像フィーチャをデコードすることにより、サラウンドビュー画像の深度マップを生成することができる。
【0101】
一実施形態において、プロセッサは、ボリュメトリックフィーチャを所定の解像度を有する投影された画像フィーチャに変換するための投影行列(projection matrix)を決定することができる。プロセッサは、要求されるビュー(desired view)に合う投影行列を用いて、深度マップを変調することができる。
【0102】
一実施形態において、プロセッサは、ボリュメトリックフィーチャを鳥瞰図(BEV)フィーチャに平面化(flatten)することができる。プロセッサは、ポーズデコーダを用いて鳥瞰図フィーチャをデコードすることにより、基準単眼カメラにおける現在の時点のカメラポーズと次の時点のカメラポーズ間の変化量を示す標準カメラモーション(canonical camera motion)を取得することができる。プロセッサは、基準単眼カメラと他の単眼カメラとの間の外部パラメータ関係及び標準カメラモーションに基づいて、次の時点での前記他の単眼カメラのポーズ情報を一括取得することができる。
【0103】
一実施形態において、プロセッサは、サラウンドビュー画像をニューラルネットワークの入力データとして用い、深度マップ及び標準カメラモーションを出力データとして用いることにより、前記ニューラルネットワークを学習させることができる。
【0104】
ニューラルネットワークは、画像再構成損失(image reconstruction loss)及び深度合成損失(depth synthesis loss)を最小限に抑える方向に学習され得る。画像再構成損失は、時間的(temporal)損失、空間的(spatio)損失及び時空間的(spatio-temporal)損失を含み得る。深度合成損失は、深度一貫性(consistency)損失を含み得る。
【0105】
図12は一実施形態による深度マップ生成装置のブロック図である。
【0106】
図12を参照すると、深度マップ生成装置1200は、通信部1210、プロセッサ1220及びDB1230を含んでもよい。図12の深度マップ生成装置1200には、実施形態に関連する構成要素のみ示されている。よって、図12に示す構成要素に加えて他の汎用の構成要素をさらに含み得ることは、当該技術分野における通常の知識を有する者であれば理解するであろう。
【0107】
通信部1210は、外部サーバ又は外部装置との有線/無線通信を可能にする1つ以上の構成要素を含んでもよい。例えば、通信部1210は、近距離通信部(図示せず)、移動通信部(図示せず)及び放送受信部(図示せず)の少なくとも1つを含んでもよい。
【0108】
DB1230は、深度マップ生成装置1200内で処理される各種データを保存するハードウェアであって、プロセッサ1220の処理及び制御のためのプログラムを保存することができる。
【0109】
DB1230は、DRAM(dynamic random access memory)、SRAM(static random access memory)などのRAM(random access memory)、ROM(read-only memory)、EEPROM(electrically erasable programmable read-only memory)、CD-ROM、ブルーレイ又は他の光ディスクストレージ、HDD(hard disk drive)、SSD(solid state drive)、又はフラッシュメモリを含む。
【0110】
プロセッサ1220は、深度マップ生成装置1200の全般的な動作を制御する。例えば、プロセッサ1220は、DB1230に保存されたプログラムを実行することにより、入力部(図示せず)、ディスプレイ(図示せず)、通信部1210、DB1230などを全般的に制御することができる。プロセッサ1220は、DB1230に保存されたプログラムを実行することにより、深度マップ生成装置1200の動作を制御することができる。
【0111】
プロセッサ1220は、図1図11において上述した深度マップ生成装置1200の動作の少なくとも一部を制御することができる。深度マップ生成装置1200及び自律走行装置40は、同じ装置であってもよく、各装置で行われる少なくとも一部の動作が同じであってもよい。
【0112】
プロセッサ1220は、ASICs(application specific integrated circuits)、DSPs(digital signal processors)、DSPDs(digital signal processing devices)、PLDs(programmable logic devices)、FPGAs(field programmable gate arrays)、コントローラ(controllers)、マイクロコントローラ(micro-controllers)、マイクロプロセッサ(microprocessors)、その他の機能の実行のための電気ユニットの少なくとも1つを用いて実現することができる。
【0113】
一実施形態において、深度マップ生成装置1200は、移動性を有する電子デバイスであり得る。例えば、深度マップ生成装置1200は、スマートフォン、タブレットPC、PC、スマートテレビ、PDA(personal digital assistant)、ラップトップ、メディアプレーヤ、ナビゲーション、カメラ付きデバイス、及びその他のモバイル電子デバイスで実現することができる。また、深度マップ生成装置1200は、通信機能及びデータ処理機能を備えた時計、メガネ、ヘッドバンド、指輪などのウェアラブルデバイスで実現することができる。
【0114】
他の実施形態において、深度マップ生成装置1200は、車両に組み込まれる電子デバイスであり得る。例えば、深度マップ生成装置1200は、製造過程後にチューニング(tuning)により車両に挿入される電子デバイスであり得る。
【0115】
さらに他の実施形態において、深度マップ生成装置1200は、車両の外部に位置するサーバであり得る。サーバは、ネットワークを介して通信を行って命令、コード、ファイル、コンテンツ、サービスなどを提供するコンピュータ装置又は複数のコンピュータ装置で実現されてもよい。サーバは、車両に搭載された装置から深度マップの生成のために必要なデータを受信し、受信したデータに基づいて深度マップを生成することができる。
【0116】
さらに他の実施形態において、深度マップ生成装置1200で実行されるプロセスは、移動性を有する電子デバイス、車両に組み込まれる電子デバイス、及び車両の外部に位置するサーバの少なくとも一部により実行することができる。
【0117】
本発明による実施形態は、コンピュータ上で様々な構成要素により実行できるコンピュータプログラムの形態で実現することができ、このようなコンピュータプログラムは、コンピュータで読み取り可能な媒体に記録することができる。ここで、媒体には、ハードディスク、フロッピーディスク、磁気テープなどの磁気媒体、CD-ROM、DVDなどの光記録媒体、フロプティカルディスク(floptical disk)などの光磁気記録媒体(magneto-optical medium)、ROM、RAM、フラッシュメモリなどのプログラム命令を記憶して実行するように特別に構成されたハードウェア装置が含まれる。
【0118】
一方、前記コンピュータプログラムは、本発明のために特別に設計及び構成されたものであってもよく、コンピュータソフトウェア分野の当業者に公知されて使用可能なものであってもよい。 コンピュータプログラムの例には、コンパイラにより生成されるような機械語コードだけでなく、インタプリタなどを用いてコンピュータにより実行される高級言語コードも含まれる。
【0119】
一実施形態によれば、本開示の様々な実施形態による方法は、コンピュータプログラム製品(computer program product)に含めて提供することができる。コンピュータプログラム製品は、商品として販売者と購入者との間で取引されるようにすることができる。コンピュータプログラム製品は、機器で読み取り可能な記憶媒体(例えば、compact disc read only memory(CD-ROM))の形態で配布するか、又はアプリケーションストア(例えば、プレイストアTM)を介して、もしくは2つのユーザ装置間で直接、オンラインで配布(例えば、ダウンロード又はアップロード)することができる。オンライン配布の場合、コンピュータプログラム製品の少なくとも一部は、メーカーのサーバ、アプリケーションストアのサーバ、又は中継サーバのメモリなどの機器で読み取り可能な記憶媒体に少なくとも一時的に記憶されるか、一時的に生成されるようにすることができる。
【0120】
本発明による方法を構成するステップに関して、明白な順序の記載又はそれに反する記載がなければ、上記ステップは適切な順序で行うことができる。本発明は、必ずしも上記ステップの記載順序に限定されるものではない。本発明における全ての例又は例示的な用語(例えば、など)の使用は、単に本発明を詳細に説明するためのものであり、特許請求の範囲により限定されない限り、上記例又は例示的な用語により本発明の範囲が限定されるわけではない。また、当業者は、様々な修正、組み合わせ及び変更が加えられた特許請求の範囲又はその均等物の範疇内で設計条件及び要因に応じて構成できることを理解するであろう。
【0121】
よって、本発明の思想は、上述した実施形態に限定されて定められてはならず、添付の特許請求の範囲だけでなく、その特許請求の範囲と均等な又はそれから等価的に変更された全ての範囲は、本発明の思想の範疇に属するといえる。
図1
図2
図3
図4A
図4B
図5
図6A
図6B
図6C
図7
図8A
図8B
図8C
図8D
図8E
図9
図10
図11
図12