(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-10-27
(45)【発行日】2022-11-07
(54)【発明の名称】カメラ自己校正ネットワーク
(51)【国際特許分類】
G06T 7/70 20170101AFI20221028BHJP
G06T 7/00 20170101ALI20221028BHJP
H04N 5/232 20060101ALI20221028BHJP
【FI】
G06T7/70 Z
G06T7/00 350C
H04N5/232 290
(21)【出願番号】P 2021530272
(86)(22)【出願日】2020-01-10
(86)【国際出願番号】 US2020013012
(87)【国際公開番号】W WO2020150077
(87)【国際公開日】2020-07-23
【審査請求日】2021-05-27
(32)【優先日】2019-01-18
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-07-26
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-01-07
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】504080663
【氏名又は名称】エヌイーシー ラボラトリーズ アメリカ インク
【氏名又は名称原語表記】NEC Laboratories America, Inc.
(74)【代理人】
【識別番号】100123788
【氏名又は名称】宮崎 昭夫
(74)【代理人】
【識別番号】100127454
【氏名又は名称】緒方 雅昭
(72)【発明者】
【氏名】トラン、 クオック-フイ
(72)【発明者】
【氏名】ズオン、 ビンビン
(72)【発明者】
【氏名】ジ、 パン
(72)【発明者】
【氏名】チャンドラカー、 マンモハン
【審査官】千葉 久博
(56)【参考文献】
【文献】特開2018-191275(JP,A)
【文献】特開2017-112602(JP,A)
【文献】特開2017-40549(JP,A)
【文献】特表2014-529389(JP,A)
【文献】米国特許出願公開第2018/0336704(US,A1)
【文献】米国特許出願公開第2018/0330521(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/70
G06T 7/00
H04N 5/232
(57)【特許請求の範囲】
【請求項1】
少なくとも1つの実際の未校正画像を受信することと、
カメラ自己校正ネットワークを使用して、前記少なくとも1つの実際の未校正画像に対応する複数の予測カメラパラメータを推定することと、
前記少なくとも1つの実際の未校正画像および前記複数の予測カメラパラメータの少なくとも1つを使用して、少なくとも1つの校正画像を決定することと、
トレーニング段階中に、前記複数の予測カメラパラメータ間の依存順序を活用するための深層教師(deep supervision)を実施して、前記依存順序に従って複数の層にわたってカメラパラメータを予測し、該カメラパラメータが前記カメラ自己校正ネットワークをトレーニングするための教師信号として使用されることと、
を含む、カメラ自己校正のための方法。
【請求項2】
トレーニング段階中に、少なくとも1つのトレーニング校正画像と、前記少なくとも1つのトレーニング校正画像に対応する少なくとも1つのトレーニングカメラパラメータとを受信することと、
前記少なくとも1つのトレーニング校正画像と前記少なくとも1つのトレーニングカメラパラメータとを使用して、少なくとも1つの合成されたカメラパラメータと、前記少なくとも1つの合成されたカメラパラメータに対応する少なくとも1つの合成された未校正画像とを生成することと、をさらに含む、請求項1に記載の方法。
【請求項3】
前記少なくとも1つの合成された未校正画像を入力データとして、前記少なくとも1つの合成されたカメラパラメータを監視信号として使用して、前記カメラ自己校正ネットワークをトレーニングすることを、さらに含む、請求項2に記載の方法。
【請求項4】
前記少なくとも1つの予測カメラパラメータを推定することは、主点推定、焦点距離推定、および半径方向歪み推定の少なくとも1つを行うこと、を含む、請求項1に記載の方法。
【請求項5】
前記深層教師を実施することは、
半径方向歪み推定と焦点距離推定との中間タスクとして主点推定に基づいて
深層教師を実施すること、をさらに含み、主点推定のための学習された特徴が、半径方向歪み推定に使用され、画像外観が、半径方向歪みと焦点距離の合成効果に基づいて決定される、請求項1に記載の方法。
【請求項6】
前記少なくとも1つの校正画像に基づいて校正されたビデオを決定することと、SLAM(simultaneous localization and mapping)に基づいて、前記校正されたビデオにおいて観察される、カメラの軌跡およびシーン構造を推定することと、をさらに含む、請求項1に記載の方法。
【請求項7】
前記少なくとも1つの校正画像に基づいてSFM(structure from motion)を使用して、少なくとも1つのカメラポーズとシーン構造を推定すること、をさらに含む、請求項1に記載の方法。
【請求項8】
前記少なくとも1つの実際の未校正画像および前記少なくとも1つの予測カメラパラメータを使用して前記少なくとも1つの校正画像を決定することは、
修正プロセスを介して前記少なくとも1つの実際の未校正画像と前記少なくとも1つの予測カメラパラメータとを処理して、前記少なくとも1つの校正画像を決定すること、をさらに含む、請求項1に記載の方法。
【請求項9】
残差ネットワークをベースとし使用し、少なくとも1つの畳み込み層、および少なくとも1つのバッチ正規化層を追加して、前記カメラ自己校正ネットワークを実装すること、をさらに含む、請求項1に記載の方法。
【請求項10】
メモリデバイスに動作可能に結合されたプロセッサデバイスを有し、該プロセッサデバイスは、
少なくとも1つの実際の未校正画像を受信し、
カメラ自己校正ネットワークを使用して、前記少なくとも1つの実際の未校正画像に対応する複数の予測カメラパラメータを推定し、
前記少なくとも1つの実際の未校正画像と少なくとも1つの予測カメラパラメータを使用して、少なくとも1つの校正画像を決定
し、
トレーニング段階中に、前記複数の予測カメラパラメータ間の依存順序を活用するための深層教師(deep supervision)を実施して、前記依存順序に従って複数の層にわたってカメラパラメータを予測し、該カメラパラメータが前記カメラ自己校正ネットワークをトレーニングするための教師信号として使用されるように構成されている、カメラ自己校正のためのコンピュータシステム。
【請求項11】
前記プロセッサデバイスは、
トレーニング段階中に、少なくとも1つのトレーニング校正画像と、前記少なくとも1つのトレーニング校正画像に対応する少なくとも1つのトレーニングカメラパラメータとを受信し、
前記少なくとも1つのトレーニング校正画像と前記少なくとも1つのトレーニングカメラパラメータとを使用して、少なくとも1つの合成されたカメラパラメータと、前記少なくとも1つの合成されたカメラパラメータに対応する少なくとも1つの合成された未校正画像とを生成するように、さらに構成されている、請求項10に記載のシステム。
【請求項12】
前記プロセッサデバイスは、前記少なくとも1つの合成された未校正画像を入力データとして、前記少なくとも1つの合成されたカメラパラメータを教師信号として使用して、前記カメラ自己校正ネットワークをトレーニングするようにさらに構成されている、請求項11に記載のシステムシステム。
【請求項13】
前記少なくとも1つの予測カメラパラメータを推定する場合、前記プロセッサデバイスは、主点推定、焦点距離推定、半径方向歪み推定の少なくとも一つを行うように、さらに構成されている、請求項10に記載のシステム。
【請求項14】
前記深層教師を実施する場合、前記プロセッサデバイスは、半径方向歪み推定と焦点距離推定との中間タスクとして主点推定に基づいて
深層教師を実施するようにさらに構成され、主点推定のための学習された特徴が、半径方向歪み推定に使用され、画像外観が、半径方向歪みと焦点距離の合成効果に基づいて決定される、請求項10に記載のシステム。
【請求項15】
前記プロセッサデバイスは、
前記少なくとも1つの校正画像に基づいて校正されたビデオを決定し、
SLAM(simultaneous localization and mapping)に基づいて、前記校正されたビデオにおいて観察される、カメラの軌跡およびシーン構造を推定するように、さらに構成されている、請求項10に記載のシステム。
【請求項16】
前記プロセッサデバイスは、前記少なくとも1つの校正画像に基づいてSFM(structure from motion)を使用して、少なくとも1つのカメラポーズとシーン構造を推定するように、さらに構成されている、請求項10に記載のシステム。
【請求項17】
前記少なくとも1つの実際の未校正画像および前記少なくとも1つの予測カメラパラメータを使用して前記少なくとも1つの校正画像を決定する場合、前記プロセッサデバイスは、修正プロセスを介して前記少なくとも1つの実際の未校正画像と前記少なくとも1つの予測カメラパラメータとを処理して、前記少なくとも1つの校正画像を決定するように、さらに構成されている、請求項10に記載のシステム。
【請求項18】
前記プロセッサデバイスは、残差ネットワークをベースとして使用し、少なくとも1つの畳み込み層、および少なくとも1つのバッチ正規化層を追加して、前記カメラ自己校正ネットワークを実施するように、さらに構成されている、請求項10に記載のシステム。
【請求項19】
カメラ自己校正を実施するための方法をコンピューティングデバイスに実行させるためのプログラムであって、前記方法は、
少なくとも1つの実際の未校正画像を受信することと、
カメラ自己校正ネットワークを使用して、前記少なくとも1つの実際の未校正画像に対応する複数の予測カメラパラメータを推定することと、
前記少なくとも1つの実際の未校正画像および前記複数の予測カメラパラメータの少なくとも1つを使用して、少なくとも1つの校正画像を決定することと、
トレーニング段階中に、前記複数の予測カメラパラメータ間の依存順序を活用するための深層教師(deep supervision)を実施して、前記依存順序に従って複数の層にわたってカメラパラメータを予測し、該カメラパラメータが前記カメラ自己校正ネットワークをトレーニングするための教師信号として使用されることと、
を含む
プログラム。
【請求項20】
前記方法は、
トレーニング段階中に、少なくとも1つのトレーニング校正画像と、前記少なくとも1つのトレーニング校正画像に対応する少なくとも1つのトレーニングカメラパラメータとを受信することと、
前記少なくとも1つのトレーニング校正画像と前記少なくとも1つのトレーニングカメラパラメータとを使用して、少なくとも1つの合成されたカメラパラメータと、前記少なくとも1つの合成されたカメラパラメータに対応する少なくとも1つの合成された未校正画像とを生成することと、をさらに含む、請求項19に記載の
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願情報
本出願は、2019年1月18日に出願された米国仮特許出願第62/793,948号、2019年7月26日に出願された米国仮特許出願第62/878,819号、および2020年1月7日に出願された米国実用特許出願第16/736,451号の優先権を主張し、その全体が参照により本明細書に組み込まれる。
【0002】
本発明は、深層学習に関し、より詳細には、カメラ自己校正のために深層学習を適用することに関する。
【背景技術】
【0003】
深層学習は、人工ニューラルネットワークに基づく機械学習方法である。深層学習アーキテクチャは、コンピュータビジョン、音声認識(speech recognition)、自然言語処理、音声認識(audio recognition)、ソーシャルネットワークフィルタリング、機械翻訳、バイオインフォマティクス、創薬、医療画像解析、材料検査およびボードゲームプログラムなどを含む分野に適用することができる。深層学習は、教師あり、半教師あり、または教師なしとすることができる。
【発明の概要】
【0004】
本発明の一態様によれば、カメラ自己校正のための方法が提供される。この方法は、実際の未校正画像を受信し、カメラ自己校正ネットワークを用いて、実際の未校正画像に対応する複数の予測カメラパラメータを推定することを含む。深い教師(deep supervision)は、複数の予測カメラパラメータ間の依存順序に基づいて実行され、依存順序に従って複数の層にわたって教師信号を配置する。この方法はまた、実際の未校正画像及び予測カメラパラメータを用いて校正画像を決定することを含む。
【0005】
本発明の別の態様によれば、カメラ自己校正のためのシステムが提供される。このシステムは、メモリデバイスに動作可能に結合されたプロセッサデバイスを含み、プロセッサデバイスは、実際の未校正画像を受信し、カメラ自己校正ネットワークを使用して、実際の未校正画像に対応する複数の予測カメラパラメータを推定するように構成される。深い教師は、複数の予測カメラパラメータ間の依存順序に基づいて実行され、依存順序に従って複数の層にわたって教師信号を配置する。プロセッサデバイスはまた、実際の未校正画像及び予測されたカメラパラメータを用いて校正画像を決定する。
【0006】
これらおよび他の特徴および利点は、添付の図面に関連して読まれるべき、その例示的な実施形態の以下の詳細な説明から明らかになるであろう。
【図面の簡単な説明】
【0007】
本開示は、以下の図面を参照して、好ましい実施形態の以下の説明において詳細を提供する。
【0008】
【
図1】
図1は、本発明の一実施形態によるニューラルネットワークの一般化された図である。
【0009】
【
図2】
図2は、本発明の一実施形態による人工ニューラルネットワーク(ANN)アーキテクチャの図である。
【0010】
【
図3】
図3は、本発明の一実施形態による、単一の未校正画像からカメラパラメータを推定するための畳み込みニューラルネットワーク(CNN)アーキテクチャを示すブロック図である。
【0011】
【
図4】
図4は、本発明の一実施形態による、カメラ自己校正ネットワークの詳細なアーキテクチャを示すブロック図である。
【0012】
【
図5】
図5は、本発明の一実施形態による、カメラ自己校正を未校正のSLAM(Simultaneous Localization and Mapping)に適用するためのシステムを示すブロック図である。
【0013】
【
図6】
図6は、本発明の一実施形態による、カメラ自己校正を未校正のSFM(structure from motion)に適用するためのシステムを示すブロック図である。
【0014】
【
図7】
図7は、本発明の一実施形態による、フォワードモーション下での2眼視の半径方向歪みの自己校正(two-view radial distortion self-calibration)における縮退を示すブロック図である。
【0015】
【
図8】
図8は、本発明の一実施形態による、カメラ自己校正を実施するための方法を示すフロー図である。
【発明を実施するための形態】
【0016】
本発明の実施形態によれば、カメラ自己校正のためのシステムおよび方法が提供される。本システムおよび方法は、単一の未校正画像からカメラ固有パラメータ(例えば、焦点距離、投影中心)だけでなく、半径方向歪みパラメータを推定するための畳み込みニューラルネットワーク(CNN)アーキテクチャを実施する。本システムおよび方法は、予測パラメータ間の依存性を利用するために深い教師(deep supervision)を適用し、正則化とより高い精度をもたらす。加えて、カメラ自己校正ネットワークの応用は、校正されていない画像/ビデオを用いて、SLAM(Simultaneous Localization and Mapping)およびSFM(structure from motion)のために実行できる。
【0017】
一実施形態では、トレーニング段階の間、一組の校正された画像及び対応するカメラパラメータが、合成されたカメラパラメータ及び合成された未校正画像を生成するために使用される。次いで、未校正画像を入力データとして使用し、一方、カメラパラメータを、提案したカメラ自己校正ネットワークをトレーニングするための教師信号として使用する。テスト段階では、単一の実際の未校正画像がネットワークに入力され、ネットワークは入力画像に対応するカメラパラメータを予測する。最後に、未校正画像と推定されたカメラパラメータを調整モジュールに送り、校正された画像を生成する。
【0018】
本明細書に記載する実施形態は、完全にハードウェアであってもよく、完全にソフトウェアであってもよく、または、ハードウェアおよびソフトウェア要素の両方を含むものであってもよい。好ましい実施形態では、本発明は、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むがこれらに限定されないソフトウェアで実施される。
【0019】
実施形態は、コンピュータまたは任意の命令実行システムによって、またはそれに関連して使用するプログラムコードを提供する、コンピュータ使用可能またはコンピュータ読み取り可能媒体からアクセス可能なコンピュータプログラム製品を含むことができる。コンピュータ使用可能媒体またはコンピュータ可読媒体は、命令実行システム、装置、またはデバイスによって、またはそれに関連して使用するためのプログラムを格納、通信、伝搬、または搬送する任意の装置を含むことができる。媒体は、磁気、光学、電子、電磁気、赤外線、または半導体システム(または装置またはデバイス)、または伝搬媒体とすることができる。媒体は、半導体または固体メモリ、磁気テープ、リムーバブルコンピュータディスケット、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、リジッド磁気ディスクおよび光ディスクなどのコンピュータ読み取り可能な記憶媒体を含むことができる。
【0020】
各コンピュータプログラムは、本明細書に記載する手順を実行するために、記憶媒体または装置がコンピュータによって読み取られるときに、コンピュータの動作を構成し制御するために、汎用または特殊目的のプログラム可能コンピュータによって読み取り可能な、機械読み取り可能な記憶媒体または装置(例えば、プログラムメモリまたは磁気ディスク)に実体的に記憶することができる。本発明のシステムはまた、コンピュータプログラムで構成された、コンピュータ読み取り可能な記憶媒体で実施されるものと考えることができ、その場合、そのように構成された記憶媒体は、コンピュータを特定の所定の方法で動作させて、本明細書に記載する機能を実行させる。
【0021】
プログラムコードを記憶および/または実行するのに適したデータ処理システムは、システムバスを介してメモリ要素に直接的または間接的に結合された少なくとも1つのプロセッサを含んでもよい。メモリ要素は、プログラムコードの実際の実行中に使用されるローカルメモリ、バルクストレージ、および実行中にバルクストレージからコードが検索される回数を減らすために少なくともいくつかのプログラムコードの一時記憶を提供するキャッシュメモリを含むことができる。入力/出力またはI/Oデバイス(キーボード、ディスプレイ、ポインティングデバイスなどを含むが、これらに限定されない)は、直接または介在するI/Oコントローラを介してシステムに結合され得る。
【0022】
介在する専用ネットワークまたは公衆ネットワークを介して、データ処理システムを他のデータ処理システムあるいはリモートプリンタまたはストレージデバイスに結合できるようにするために、ネットワークアダプタをシステムに結合することもできる。モデム、ケーブルモデム、およびイーサネットカードは、現在使用可能なネットワークアダプタのタイプの一例に過ぎない。
【0023】
ここで図面を参照すると、同じ番号は同じまたは類似の要素を表す。最初に
図1を参照すると、
図1には、例示的な実施形態によるニューラルネットワークの一般化された図が示されている。
【0024】
人工ニューラルネットワーク(ANN)とは、脳などの生体神経系に刺激される情報処理システムである。ANNの重要な要素は、情報処理システムの構造であり、これは、特定の問題を解決するために並列に動作する多くの高度に相互結合された処理要素(「ニューロン」と呼ばれる)を含む。ANNはさらに、ニューロン間に存在する重みの調整を含む学習を用いて、使用中にトレーニングされる。ANNは、そのような学習プロセスを介して、パターン認識またはデータ分類などの特定の用途向けに構成される。
【0025】
ANNは、複雑または不正確なデータから意味を導出する能力を示し、パターンを抽出し、人間または他のコンピュータベースのシステムによって検出するには複雑すぎる傾向を検出するために使用することができる。ニューラルネットワークの構造は、一般に、1つまたは複数の「隠れた」ニューロン104に情報を提供する入力ニューロン102を有する。入力ニューロン102と隠れニューロン104との間の結合108は重み付けされ、そして、これらの重み付けされた入力は、層間の重み付けされた結合108で、隠れニューロン104内の何らかの関数に従って隠れニューロン104によって処理される。隠れニューロン104、ならびに異なる関数を実行するニューロンの任意の数の層が存在し得る。畳み込みニューラルネットワーク、最大出力ネットワーク等のような異なるニューラルネットワーク構造も存在する。最後に、出力ニューロン106のセットは、最後の隠れニューロン104のセットからの重み付けされた入力を受け入れ、処理する。
【0026】
これは、情報が入力ニューロン102から出力ニューロン106に伝搬する「フィードフォワード」計算を表す。トレーニングデータ(または、場合によっては、テストデータ)は、校正された画像、カメラパラメータ、および校正されていない画像(例えば、データベースに記憶されている)を含むことができる。トレーニングデータは、
図2~
図7に関して以下に説明するように、単一画像自己校正のために使用することができる。例えば、トレーニング又はテストデータは、オリジナルカメラにアクセスすることなくインターネットからダウンロードされる画像又はビデオを含むことができ、或いは、カメラパラメータは、振動、熱的/機械的衝撃、又はズーム効果のような異なる原因により変更される。そのような場合、1つ以上の未校正画像からカメラパラメータを計算するカメラ自己校正(カメラ自動校正)が好ましい。実施例は、例えば、未知の焦点距離、投影中心、及び半径方向歪みを有する単一の未校正画像からのカメラ自己校正に対する畳み込みニューラルネットワーク(CNN)ベースのアプローチを実施する。
【0027】
フィードフォワード計算が完了すると、出力は、トレーニングデータから利用可能な所望の出力と比較される。トレーニングデータに対する誤差は、「フィードバック」計算で処理され、隠れニューロン104および入力ニューロン102は、出力ニューロン106から後方に伝播する誤差に関する情報を受け取る。一旦、逆方向誤差伝播が完了すると、重み付けされた結合108が受信された誤差を考慮するように更新されて、重み付け更新が実行される。これは、単に1つの種類のANNを表す。
【0028】
図2を参照すると、人工ニューラルネットワーク(ANN)アーキテクチャ200が示されている。本アーキテクチャは、純粋に例示的なものであり、代わりに他のアーキテクチャまたはタイプのニューラルネットワークを使用することができることを理解されたい。本明細書に記載したANNの実施形態は、高レベルの一般性でニューラルネットワーク計算の一般原理を示すことを意図して含んでおり、いかなる形でも限定するものと解釈されるべきではない。
【0029】
さらに、以下に記載されるニューロンの層およびそれらを結合する重みは、一般的な様式で記載され、任意の適切な程度またはタイプの相互結合性を有する任意のタイプのニューラルネットワーク層によって置き換えられ得る。例えば、層は、畳み込み層、プーリング層、全結合層、ソフトマックス層、または任意の他の適切なタイプのニューラルネットワーク層を含むことができる。さらに、必要に応じて層を追加または除去することができ、相互結合のより複雑な形態のために重みを省略することができる。
【0030】
フィードフォワード動作中、1組の入力ニューロン202はそれぞれ、重み204のそれぞれの行に並列に入力信号を供給する。本明細書に記載されたハードウェアの実施形態では、重み204はそれぞれ、重み付けされた出力が重み204からそれぞれの隠れニューロン206に渡され、隠れニューロン206への重み付けされた入力を表すように、それぞれの設定可能な値を有する。ソフトウェアの実施形態では、重み204は、単に、関連する信号に対して乗算される係数値として表すことができる。各重みからの信号は列ごとに加算され、隠れニューロン206に流れる。
【0031】
隠れニューロン206は、重み204のアレイからの信号を使用して、何らかの計算を実行する。次に、隠れニューロン206は、それ自体の信号を別の重み204のアレイに出力する。このアレイは同じ方法で実行し、重み204の列がそれぞれの隠れニューロン206から信号を受け取り、行方向に加算し、出力ニューロン208に供給される重み付けされた信号出力を生成する。
【0032】
アレイおよび隠れニューロン206の追加の層を介在させることによって、任意の数のこれらの段階を実施できることを理解されたい。また、いくつかのニューロンは、アレイに一定の出力を提供する定常ニューロン209であってもよいことに留意すべきである。定常ニューロン209は、入力ニューロン202および/または隠れニューロン206の間に存在することができ、フィードフォワード動作中にのみ使用される。
【0033】
バックプロパゲーションの間、出力ニューロン208は、重み204のアレイを横切って戻る信号を提供する。出力層は、生成されたネットワーク応答をトレーニングデータと比較し、誤差を計算する。誤差信号を誤差値に比例させることができる。この実施例では、重み204の行は、それぞれの出力ニューロン208から並列に信号を受け取り、列ごとに加算して出力を生成して隠れニューロン206に入力を提供する。隠れニューロン206は、重量付けされたフィードバック信号をそのフィードフォワード計算の導関数と結合し、フィードバック信号を重量204のそれぞれの列に出力する前に誤差値を記憶する。このバックプロパゲーションは、すべての隠れニューロン206および入力ニューロン202が誤差値を記憶するまで、ネットワーク200全体を通って進行する。
【0034】
重み更新中、記憶された誤差値は、重み204の設定可能な値を更新するために使用される。このようにして、重み204は、ニューラルネットワーク200をその工程における誤差に適応させるようにトレーニングすることができる。3つの動作モード、すなわち、フィードフォワード、バックプロパゲーション、および重み更新は、互いに重複しないことに留意されたい。
【0035】
畳み込みニューラルネットワーク(CNN)は、少なくとも1つの畳み込み層を有するANNのサブクラスである。CNNは、入力層および出力層、ならびに複数の隠れ層からなる。CNNの隠れ層は、畳み込み層、正規化線形ユニット(RELU:Rectified Linear Unit)層(例えば活性化関数)、プーリング層、全結合層および正規化層から成る。畳み込み層は、入力に畳み込み演算を適用し、その結果を次の層に渡す。畳み込みは、視覚刺激に対する個々のニューロンの応答をエミュレートする。
【0036】
CNNは、視覚画像の分析に適用することができる。CNNは、ローカル情報(例えば、画像内の隣接画素又はテキスト内の周囲の単語)を取り込み、モデルの複雑さを低減することができる(例えば、より速いトレーニング、より少ないサンプルの必要性、及びオーバーフィッティングの機会の低減を可能にする)。
【0037】
CNNは、最小限の前処理しか必要としないように設計された多層パーセプトロンのバリエーションを使用する。CNNは、その重みの共有構造と並進不変性(translation invariance)特性に基づいて、シフト不変(shift invariant)または位置不変(space invariant)の人工ニューラルネットワーク(SIANN)としても知られている。CNNは、画像および動画認識、レコメンダシステム、画像分類、医用画像解析、および自然言語処理における用途に使用することができる。
【0038】
CNNは、
図3~
図7に関して以下に説明するように、単一の未校正画像からカメラパラメータを推定するためのCNNアーキテクチャに組み込むことができる。例えば、CNNは、SFM/SLAMシステムのための入力として使用される画像を生成するために使用することができる。
【0039】
次に、
図3を参照すると、実施例による、単一の未校正画像からカメラパラメータを推定するためのCNNアーキテクチャを示すブロック図が示されている。
【0040】
図3に示すように、アーキテクチャ300は、単一の未校正画像から(代替的に、他の)カメラ固有パラメータ(例えば、焦点距離、投影中心)と同様に、半径方向歪みパラメータを推定するためのCNNアーキテクチャを含む。アーキテクチャ300は、予測パラメータ間の依存性を利用する深い教師を適用するように実装することができ、これにより、正規化が改善され、精度が向上する。さらに、アーキテクチャ300は、カメラ自己校正ネットワークを、未校正の画像/ビデオを用いて、SFM(Structure from Motion)およびSLAM(Simultaneous Localization and Mapping)に適用することができる。
【0041】
SFMおよびSLAMなどのコンピュータビジョンプロセスは、ピンホールカメラモデル(3次元座標内の点と理想的なピンホールカメラ内の画像座標内の点との間の数学的関係を記述する)を想定し、焦点距離、主点、および半径方向歪みを含む既知のカメラパラメータで撮影された入力画像またはビデオを必要とする。カメラキャリブレーションは、カメラパラメータを推定するプロセスである。アーキテクチャ300は、コンピュータビジョンアプリケーションでカメラが展開される前に、キャリブレーションオブジェクト(例えば、チェッカーボード)または特別なシーン構造(例えば、ベイズ推論による単一画像からのコンパス方向)が利用できない場合に、カメラキャリブレーションを実施することができる。例えば、アーキテクチャ300は、オリジナルカメラにアクセスすることなくインターネットから画像またはビデオがダウンロードされる場合、または振動、熱的/機械的衝撃、またはズーム効果などの異なる原因によってカメラパラメータが変更された場合に実施することができる。そのような場合、1つ以上の未校正画像からカメラパラメータを計算するカメラ自己校正(カメラ自動校正)が好ましい。本発明は、例えば未知の焦点距離、投影中心、および半径方向歪みを有する単一の未校正画像からのカメラ自己校正に対する畳み込みニューラルネットワーク(CNN)ベースのアプローチを提案する。さらに、アーキテクチャ300は、未校正のSFMおよび未校正のSLAMを対象とするアプリケーションにおいて実施することができる。
【0042】
本明細書に記載されたシステムおよび方法は、異なるタスク間の関係を活用し、優れた性能を達成するために、深い教師を使用する。単一画像自己校正のためのプロセスとは対照的に、本明細書に記載されたシステムおよび方法は、画像において利用可能なすべての特徴を利用し、シーン構造上の仮定を一切行わない。結果は、最初に入力画像内の線/曲線特徴を抽出し、次いで、カメラパラメータを推定するためにそれらに頼ることに依存しない。システムおよび方法は、線/曲線特徴を適切に検出することにも、シーン構造に関する基礎となる仮定を満たすことにも依存しない。
【0043】
アーキテクチャ300は、(いくつかのSFM/SLAMシステムとは対照的に)既知のカメラパラメータを有する入力画像/ビデオを仮定することなく、未校正の画像/ビデオを処理するように実現することができる。アーキテクチャ300は、例えば、重大な半径方向歪みが存在するなどの困難な場合に、最初にカメラの自己校正(半径方向歪み補正を含む)を行い、次に校正された画像/ビデオ上のSFM/SLAMシステムなどの再構成方法を使用するといった2段階アプローチで処理を適用することができる。
【0044】
図3に示すように、アーキテクチャ300は、カメラ自己校正に対するCNNベースのアプローチを実装する。トレーニング段階305の間、一組の校正画像310及び対応するカメラパラメータ315が、合成されたカメラパラメータ330及び合成された未校正画像325を生成するために使用される。次いで、未校正画像325は、(カメラ自己校正ネットワーク340のための)入力データとして使用され、次いで、カメラパラメータ330が、カメラ自己校正ネットワーク340をトレーニングするための教師信号として使用される。テスト段階350では、単一の実際の未校正画像355がカメラ自己校正ネットワーク340に入力され、入力画像355に対応する(推定された)カメラパラメータ360を予測する。未校正画像355および推定カメラパラメータ360は、校正画像370を生成するために、修正モジュール365に送られる。
【0045】
図4は、実施形態による、カメラ自己校正ネットワーク340の詳細アーキテクチャ400を示すブロック図である。
【0046】
図4に示すように、(例えば、カメラ自己校正ネットワーク340の)アーキテクチャ400は、未校正画像405(トレーニング305中の合成された未校正画像325、またはテスト350中の実際の未校正画像355など)を受け取る。例えば、アーキテクチャ400は、ネットワークトレーニング中に深い教師を行う。最後の層のみですべてのパラメータを予測する(すべての教師を配置する)従来のマルチタスク教師(multi-task supervision)とは対照的に、深い教師は、予測されたパラメータ間の依存性順序を利用し、その依存性順序に従って複数の層にわたってパラメータを予測する(教師を配置する)。カメラ自己校正のために、(1)既知の主点が半径方向歪みを推定するための必須条件であることが明らかであること、(2)画像外観は半径方向歪みと焦点距離の合成効果に影響されること、を知ることで、システムが以下の順、すなわち、(1)第一分岐における主点及び(2)第二分岐における焦点距離と半径方向歪みの両方の順で、パラメータを予測できる(教師を配置できる)。したがって、例示的な実施形態によれば、アーキテクチャ400は、基本モデルとして残差ネットワーク(例えば、ResNet-34)415を使用し、(例えば、いくつか、少数、等々の)隠れ層(例えば、層410(Conv, 512, 3x3)、層420(Conv, 256, 3x3)、層430(Conv, 128, 3x3)、層440(Conv, 64, 3x3)、層450(Conv, 32, 3x3)及び層460(Conv, 2, 3x3))、バッチ正規化層425、及び、主点推定470(例えば、cx、cy)、焦点距離(f)推定、及び半径方向歪み(λ)推定480のタスク用のReLU活性化層435を追加する。アーキテクチャ400は、タスク間の依存性を活用するための深い教師を使用(例えば、use, employ, implement等)することができる。例えば、例示的な実施形態では、主点推定470は、半径方向歪み推定および焦点距離推定480のための中間タスクであり、これは、正則化の向上およびより高い精度につながる。
【0047】
深い教師は、複数の予測カメラパラメータ間の依存順序を利用し、その依存順序に従って複数の層にわたってカメラパラメータを予測する(教師信号を配置する)。(1)既知の主点が半径方向歪みを推定するための必須条件であることが明らかであること、(2)画像外観は半径方向歪みと焦点距離の合成効果の影響を受けることから、半径方向歪み推定と焦点距離推定の中間タスクとして、深い教師を主点推定に基づいて実行できる。
【0048】
図5は、レジ的な実施形態による、未校正SLAMへのカメラ自己校正の適用のためのシステム500を示すブロック図である。
【0049】
図5に示すように、カメラ自己校正は、未校正のSLAMに適用することができる。入力ビデオは、校正されていない連続画像フレームのセットである(未校正ビデオ505)。次いで、各フレームは、対応する校正されたフレーム(およびそれに対応して校正されたビデオ520)を生成するカメラ自己校正(構成要素)510、例えば、
図3のシステム300にそれぞれ渡され、。次いで、校正されたフレーム(校正ビデオ520)は、ビデオ内で観察されるカメラ軌跡およびシーン構造を推定するために、SLAMモジュール530に送られる。システム500は、復元されたカメラ経路およびシーンマップ540を出力する。
【0050】
図6は、例示的な実施形態による、未校正SFMへのカメラ自己校正の適用のためのシステム600を示すブロック図である。
【0051】
図6に示すように、カメラ自己校正は、未校正のSFMに適用することができる。システム600は、カメラまたは画像/ビデオ処理装置内のモジュールとして実装することができる。インターネット画像検索から得られるような未校正画像の順序付けされていないセットは、入力として使用することができる(未校正画像605)。次いで、各未校正画像605は、対応する校正画像620を生成するカメラ自己校正(構成要素)610、例えば、
図3のシステム300に別々に渡される。次いで、校正画像620は、画像内に観察されるカメラ姿勢およびシーン構造を推定するSFMモジュール630に送られる。その後、システム600は、回復されたカメラ姿勢およびシーン構造640を出力することができる。
【0052】
図7は、本発明による、フォワードモーション下での2眼視の半径方向歪みの自己校正(two-view radial distortion self-calibration)における縮退を示すブロック
図700である。
【0053】
図7に示すように、例示的な実施形態は、フォワードモーション下での2眼視の半径方向歪みの自己校正における縮退に適用することができる。半径方向歪みとシーン構造の有効な組み合わせは無数にあり、半径方向歪みがゼロの特別な場合も含む。
【0054】
正規化された像平面上の歪んだ点(720、725)の2D座標を
【数1】
と表し、対応する歪んでいない点(710,715)を
【数2】
と表し、θは半径方向歪みであり、
【数3】
は、S
dをS
uにスケーリングする歪み補正関数(undistortion function)である。
【数4】
の具体的な形態は、使用されている半径方向歪みモデルに依存する。例えば、1つのパラメータを持つ分割モデル(division model)の場合は
【数5】
を持つことができ、1つのパラメータを持つ多項式モデル(polynomial model)の場合は
【数6】
を持つことができる。どちらのモデルでも、λは1D半径方向歪みパラメータであり、
【数7】
は主点705からの距離である。例示的な実施形態は、以下の分析のために、一般的な形態
【数8】
を使用することができる。
【0055】
例示的な実施形態は、例えば、光軸に沿った純粋な並進カメラモーションが、2D対応およびそれらの深さにどのように関連するかという、フォワードモーション下での2眼視幾何学的関係を定式化する。3DポイントSの例で、2つのカメラ座標でそれぞれ、
【数9】
及び
【数10】
として表す。フォワードモーション下で、
【数11】
でS
2=S
1-Tと決定できる。一般性を失わずに、グローバルスケールの曖昧さを取り除くために、システムはt
Z=1を固定する。上記の関係を像面に投影すると、システムは、
【数12】
を取得し、ここで、
【数13】
及び
【数14】
はそれぞれS
1とS
2の2D投影である(たとえば、
【数15】
は2D対応である)。観測された歪み点
【数16】
及び
【数17】
に関して上記を表すと、次式が得られる。
【0056】
【0057】
ここで、θ
1とθ
2は、それぞれ2つの画像の半径方向歪みパラメータを表す(θ
1はθ
2とは異なる場合があることに留意する)。式(1)は、半径方向歪みとシーン構造を推定するために利用可能なすべての情報を表す。しかしながら、正しい半径方向歪みと点深さ(point depth)は、上式からは決定できない。システムは、式(1)が依然として成り立つように、
【数19】
で示されるグラウンドトゥルース半径方向歪みを偽の半径方向歪み
【数20】
で置き換えることができ、それぞれの2D対応に対するグラウンドトゥルース点深さZ
1を次の偽の深さZ
1'で置き換えることができる。
【0058】
【0059】
具体的には、システムは、
【数22】
を偽の半径方向歪みとして設定し、式(1)が依然として成り立つように式(2)に従って計算された破損深さ(corrupted depth)Z
1'を使用することができる。この特殊解は、例えば、
【数23】
及び
【数24】
などのピンホールカメラモデルに対応する。実際、この特別なケースは、より直感的に推論することができる。式(1)は、
図7に示されるように、すべての2D点が主点705から放射される2D線に沿って移動することを示す。このパターンは、ピンホールカメラモデルと全く同じであり、フォワードモーションを認識する唯一の手がかりである。
【0060】
直観的には、例えば
【数25】
と
【数26】
の間、又は
【数27】
と
【数28】
の間の半径方向歪みのみによって誘発される2D点の動きは、例えば
【数29】
と
【数30】
との間のフォワードモーションのみによって誘発される2D点の動きと同じ方向に沿っている(
図7参照)。したがって、半径方向歪みは、2D点変位の大きさにのみ影響するが、フォワードモーションの場合にはそれらの方向には影響しない。さらに、そのような半径方向歪みは、深さにおける適切な破損(corruption)で補償され、その結果、再投影誤差に関して、画像観測、例えば、2D対応を正確に説明する、破損したシーン構造は、依然として回復され得る。
【0061】
したがって、本システムは、純粋なフォワードモーションの場合には、2眼視の半径方向歪み己校正は、縮退していると判断する。特に、半径方向歪みがゼロの特別な場合を含む、半径方向歪みとシーン構造の有効な組合せが無数に存在する。
【0062】
図8は、本発明による、カメラ自己校正を実施するための方法800を示すフロー図である。
【0063】
ブロック810において、システム300は、校正された画像およびカメラパラメータを受信する。例えば、トレーニング段階の間、システム300は、合成されたカメラパラメータと合成された未校正画像を生成するために使用される一組の校正された画像及び対応するカメラパラメータを受け入れることができる。カメラパラメータには、焦点距離、投影中心、および半径方向歪みなどを含めることができる。
【0064】
ブロック820において、システム300は、合成された未校正画像及び合成されたカメラパラメータを生成する。
【0065】
ブロック830において、システム300は、合成された未校正画像および合成されたカメラパラメータを使用して、カメラ自己校正ネットワークをトレーニングする。未校正画像は、入力データとして使用され、一方、カメラパラメータは、カメラ自己校正ネットワーク340をトレーニングするための教師信号として使用される。
【0066】
ブロック840において、システム300は、実際の未校正画像を受信する。
【0067】
ブロック850において、システム300は、実際の未校正画像のカメラパラメータを予測する(例えば、推定する)。システム300は、カメラ自己校正ネットワーク340を使用してカメラパラメータを予測する。システム300は、半径方向歪み推定と焦点距離推定のための中間タスクとして、主点推定に基づく深い教師を実装できる。主点を推定するための学習した特徴が半径方向ひずみの推定に用いられ、画像外観が半径方向ひずみと焦点距離の合成効果に基づいて決定される。
【0068】
ブロック860において、システム300は、実際の未校正画像および推定カメラパラメータを使用して校正画像を生成する。
【0069】
本明細書で使用されるように、用語「ハードウェアプロセッササブシステム」または「ハードウェアプロセッサ」は、1つ以上の特定のタスクを実行するために協働するプロセッサ、メモリ、ソフトウェア、またはそれらの組み合わせを指すことができる。有用な実施形態では、ハードウェアプロセッササブシステムは、1つまたは複数のデータ処理要素(例えば、論理回路、処理回路、命令実行デバイスなど)を含むことができる。1つまたは複数のデータ処理要素は、中央処理装置、グラフィックス処理装置、および/または別個のプロセッサまたはコンピューティング要素ベースのコントローラ(たとえば、論理ゲートなど)に含めることができる。ハードウェアプロセッササブシステムは、1つ以上のオンボードメモリ(例えば、キャッシュ、専用メモリアレイ、読み出し専用メモリなど)を含むことができる。いくつかの実施形態では、ハードウェアプロセッササブシステムは、オンボードまたはオフボードにすることができるか、またはハードウェアプロセッササブシステム(例えば、ROM、RAM、ベーシックインプット/アウトプットシステム(BIOS)など)によって使用するために専用にすることができる1つ以上のメモリを含むことができる。
【0070】
いくつかのる実施形態では、ハードウェアプロセッササブシステムは、1つ以上のソフトウェア要素を含むことができ、実行することができる。1つ以上のソフトウェア要素は、特定の結果を達成するために、オペレーティングシステムおよび/または1つ以上のアプリケーションおよび/または特定のコードを含むことができる。
【0071】
他の実施形態では、ハードウェアプロセッササブシステムは、指定された結果を達成するために1つ以上の電子処理機能を実行する専用の特別な回路を含むことができる。そのような回路は、1つ以上の特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、および/またはプログラマブルロジックアレイ(PLA)を含むことができる。
【0072】
本明細書における本発明の「一実施形態(one embodiment)」または「一実施形態(a embodiment)」への言及、ならびにその他の変形は、実施形態に関連して説明された特定の特徴、構造、特性などが本発明の少なくとも1つの実施形態に含まれることを意味し、したがって、本明細書全体を通して様々な場所に現れる「一実施形態において(in one embodiment)」または「一実施形態において(in an embodiment)」という語句の出現、ならびに任意の他の変形は、必ずしもすべて同じ実施形態を参照しているわけではない。しかしながら、本明細書で提供される本発明の教示を前提として、1つまたは複数の実施形態の特徴を組み合わせることができることを理解されたい。
【0073】
例えば、「A/B」、「Aおよび/またはB」および「AおよびBの少なくとも1つ」の場合における、「/」、「および/または」、および「少なくとも1つ」の使用は、第1のリストされたオプション(A)のみの選択、または第2のリストされたオプション(B)のみの選択、または両方のオプション(AおよびB)の選択を包含することが意図されることを理解されたい。さらなる例として、「A、B、および/またはC」および「A、B、およびCの少なくとも1つ」の場合において、このようなフレーズは、第1のリストされたオプション(A)のみの選択、または第2のリストされたオプション(B)のみの選択、または第3のリストされたオプション(C)のみの選択、または第1および第2のリストされたオプション(AおよびB)のみの選択、または第1および第3のリストされたオプション(AおよびC)のみの選択、または第2および第3のリストされたオプション(BおよびC)のみの選択、または3つすべてのオプション(AおよびBおよびC)の選択を包含することが意図されることを理解されたい。これは、リストされたアイテムの数だけ拡張することができる。
【0074】
上記は、あらゆる点で例示的(illustrative)かつ典型的(exemplary)であるが、限定的ではないと理解されるべきであり、本明細書に開示される本発明の範囲は、詳細な説明からではなく、むしろ特許法によって許容される全範囲に従って解釈されるような特許請求の範囲から決定されるべきである。本明細書に示され、記載された実施形態は、本発明の例示にすぎず、当業者は、本発明の範囲および精神から逸脱することなく、様々な修正を実施することができることを理解されたい。当業者は、本発明の範囲および精神から逸脱することなく、様々な他の特徴の組み合わせを実施することができる。このように、本発明の態様を、特許法によって要求される詳細および特殊性と共に説明してきたが、特許証によって保護されることが請求され、望まれるものは、添付の特許請求の範囲に記載されている。