(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-08-17
(54)【発明の名称】半教師付きキーポイントベースモデル
(51)【国際特許分類】
G06N 3/0895 20230101AFI20230809BHJP
【FI】
G06N3/0895
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023506047
(86)(22)【出願日】2021-07-28
(85)【翻訳文提出日】2023-03-24
(86)【国際出願番号】 EP2021071202
(87)【国際公開番号】W WO2022023442
(87)【国際公開日】2022-02-03
(32)【優先日】2020-07-28
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】517030789
【氏名又は名称】ディープマインド テクノロジーズ リミテッド
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】メル・ヴェセリク
(72)【発明者】
【氏名】ジョナサン・カール・ショルツ
(72)【発明者】
【氏名】ジャン-バティスト・レグリ
(57)【要約】
ラベル付きトレーニングデータおよびラベルなしトレーニングデータを含むトレーニングデータセットを使用して、見えないオブジェクトのキーポイントを予測するようにニューラルネットワークをトレーニングするための方法について説明する。この方法は、複数のトレーニングサンプルを含むトレーニングデータセットを受信するステップであり、各トレーニングサンプルが、それぞれのシーンからの1つまたは複数のオブジェクトの同期画像のセットを含み、セット内の各画像が、異なる視点からそれぞれのカメラによって同期して撮影され、同期画像のセットのサブセットはグラウンドトゥルースキーポイントでラベル付けされ、セット内の残りの画像はラベル付けされていない、受信するステップと、複数のトレーニングサンプルの1つまたは複数のトレーニングサンプルの各々について、教師付き損失関数と教師なし損失関数の組合せである損失関数を最小化するためにニューラルネットワークのパラメータの現在値を更新することによって、トレーニングサンプル上でニューラルネットワークをトレーニングするステップとを含む。
【特許請求の範囲】
【請求項1】
ラベル付きトレーニングデータおよびラベルなしトレーニングデータを含むトレーニングデータセットを使用して、見えないオブジェクトのキーポイントを予測するようにニューラルネットワークをトレーニングするための方法であって、
複数のトレーニングサンプルを含む前記トレーニングデータセットを受信するステップであって、各トレーニングサンプルが、それぞれのシーンからの1つまたは複数のオブジェクトの同期画像のセットを含み、前記セット内の各画像が、異なる視点からそれぞれのカメラによって同期して撮影され、前記同期画像のセットのサブセットはグラウンドトゥルースキーポイントでラベル付けされ、前記セット内の残りの画像はラベル付けされていない、ステップと、
前記複数のトレーニングサンプル内の1つまたは複数のトレーニングサンプルの各々について、
損失関数を最小化するために前記ニューラルネットワークのパラメータの現在値を更新することによって、前記トレーニングサンプル上で前記ニューラルネットワークをトレーニングするステップと
を含み、
前記損失関数が、教師付き損失関数と教師なし損失関数との組合せであり、
前記教師付き損失関数が、前記ニューラルネットワークの前記パラメータの現在値に従って、前記グラウンドトゥルースキーポイントと、前記ラベル付き画像について前記ニューラルネットワークによって生成されたそれぞれの予測されたキーポイントとの間の差を最小化し、
前記教師なし損失関数が、前記パラメータの前記現在値に従って、同じシーンの異なる視点から撮影された前記ラベルなし画像について前記ニューラルネットワークによって生成されたそれぞれの予測されたキーポイントの間のマルチビューの不整合を最小化する、方法。
【請求項2】
前記シーン内の前記1つまたは複数のオブジェクトが動的オブジェクトである、請求項1に記載の方法。
【請求項3】
前記ニューラルネットワークが、(i)1つまたは複数のダウンサンプリング層、(ii)1つまたは複数の畳み込み層、(iii)1つまたは複数の残差層、(iv)1つまたは複数のアップサンプリング層、(v)空間argmax層、(vi)バイリニアアップサンプリング層、(vii)3D推定層、または(viii)ソフトマックス層のうちの1つまたは複数を含む、請求項1または2のいずれか一項に記載の方法。
【請求項4】
前記ニューラルネットワークが、入力画像を受信し、前記入力画像内の1つまたは複数のオブジェクトの複数の可能なキーポイントの各々について、前記可能なキーポイントにわたるそれぞれのヒートマップを生成するように構成されている、請求項1~3のいずれか一項に記載の方法。
【請求項5】
前記ニューラルネットワークが、前記それぞれのヒートマップを並列に生成するように構成されている、請求項4に記載の方法。
【請求項6】
可能なキーポイントにわたるヒートマップが、前記入力画像内の複数の位置の各々についてのそれぞれのスコアを含み、前記それぞれのスコアが、前記可能なキーポイントが前記位置にある可能性を表す、請求項5に記載の方法。
【請求項7】
前記損失関数が、前記パラメータを正規化するための追加のコンポーネントを含む、請求項1~6のいずれか一項に記載の方法。
【請求項8】
前記損失関数が、前記教師付き損失関数、前記教師なし損失関数、および前記追加のコンポーネントの重み付けされた組合せである、請求項7に記載の方法。
【請求項9】
前記方法が、前記トレーニングサンプル内の各ラベル付き画像について、および前記ラベル付き画像内の前記グラウンドトゥルースキーポイントの各々について、
前記ラベル付き画像内の前記グラウンドトゥルースキーポイントのそれぞれのグラウンドトゥルースヒートマップを構築するステップと、
前記パラメータの前記現在値を有する前記ニューラルネットワークを使用して、前記ラベル付き画像内の前記グラウンドトゥルースキーポイントのそれぞれの予測されたヒートマップを生成するステップと、
前記それぞれのグラウンドトゥルースヒートマップおよび前記それぞれの予測されたヒートマップのKullback-Leibler(KL)ダイバージェンスを計算するステップと
を含み、
前記教師付き損失関数が、前記計算されたKLダイバージェンスの組合せである、
請求項1~8のいずれか一項に記載の方法。
【請求項10】
前記方法が、前記トレーニングサンプル内の前記ラベルなし画像の各々について、
前記ラベルなし画像のそれぞれのブートストラップされたキーポイントを生成するステップであって、前記ブートストラップされたキーポイントが、前記ラベルなし画像のラベルとして扱われる、ステップと、
前記それぞれのブートストラップされたキーポイントの各々について、
前記ブートストラップされたキーポイントのそれぞれのブートストラップされたヒートマップを構築するステップと、
前記パラメータの前記現在値に従って、前記ニューラルネットワークを使用して、前記ブートストラップされたキーポイントのそれぞれの予測されたヒートマップを生成するステップと、
前記それぞれのブートストラップされたヒートマップおよび前記それぞれの予測されたヒートマップのKLダイバージェンスを計算するステップと
を含み、
前記教師なし損失関数が、前記計算されたKLダイバージェンスの組合せである、
請求項1~9のいずれか一項に記載の方法。
【請求項11】
前記ラベルなし画像内の前記それぞれのブートストラップされたキーポイントを生成するステップが、重み付き最小二乗最適化問題を解くステップを含む、請求項10に記載の方法。
【請求項12】
各KLダイバージェンスが、前記損失関数における関連する重要度係数によってさらに重み付けされる、請求項9または10に記載の方法。
【請求項13】
各KLダイバージェンスの前記関連する重要度係数が、前記それぞれの予測されたヒートマップの分散の関数である、請求項12に記載の方法。
【請求項14】
前記それぞれのシーン内の前記1つまたは複数のオブジェクトが、(i)1つまたは複数のロボットシステム、または(ii)前記1つまたは複数のロボットシステムが相互作用している環境における1つまたは複数のオブジェクトである、請求項1~13のいずれか一項に記載の方法。
【請求項15】
前記予測されたキーポイントが、前記1つまたは複数のロボットシステムを制御するために使用される、請求項14に記載の方法。
【請求項16】
前記1つまたは複数のロボットシステムを制御するステップが、強化学習技法を使用して制御ポリシーを学習するステップを含む、請求項15に記載の方法。
【請求項17】
1つまたは複数のコンピュータと、前記1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項1~16のいずれか一項に記載のそれぞれの方法の動作を実行させる命令を記憶した1つまたは複数の記憶デバイスとを備えるシステム。
【請求項18】
1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項1~16のいずれか一項に記載のそれぞれの方法の動作を実行させる命令を記憶した1つまたは複数のコンピュータ記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2020年7月28日に出願された米国仮特許出願第63/057,861号の非仮出願であり、その優先権を主張し、その内容全体が参照により本明細書に組み込まれる。
【0002】
本明細書は、機械学習モデルのトレーニングに関する。
【背景技術】
【0003】
機械学習モデルは、入力を受信し、受信した入力に基づいて、たとえば予測された出力などの出力を生成する。いくつかの機械学習モデルは、パラメトリックモデルであり、受信した入力およびモデルのパラメータの値に基づいて出力を生成する。
【0004】
一部の機械学習モデルは、受信した入力に対する出力を生成するために、複数のモデル層を使用するディープモデルである。たとえば、ディープニューラルネットワークは、出力層と、各々受信した入力に非線形変換を適用して出力を生成する1つまたは複数の隠れ層とを含むディープ機械学習モデルである。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】Kullback, S. and Leibler, R.A. (1951) On Information and Sufficiency. The Annals of Mathematical Statistics, 22, 79-86
【発明の概要】
【課題を解決するための手段】
【0006】
本明細書は、ラベル付きトレーニングデータおよびラベルなしトレーニングデータを含むトレーニングデータセットを使用して、見えないオブジェクトのキーポイントを予測するようにニューラルネットワークをトレーニングする、1つまたは複数の場所にある1つまたは複数のコンピュータ上にコンピュータプログラムとして実装されるシステムについて説明する。
【0007】
一態様によれば、ラベル付きトレーニングデータおよびラベルなしトレーニングデータを含むトレーニングデータセットを使用して、オブジェクトのキーポイントを予測するようにニューラルネットワークをトレーニングするための方法が提供される。この方法は、複数のトレーニングサンプルを含むトレーニングデータセットを受信するステップであり、各トレーニングサンプルが、それぞれのシーンからの1つまたは複数のオブジェクトの同期画像のセットを含み、セット内の各画像が、異なる視点からそれぞれのカメラによって同期して撮影され、同期画像のセットのサブセットはグラウンドトゥルースキーポイントでラベル付けされ、セット内の残りの画像はラベル付けされていない、受信するステップを含む。複数のトレーニングサンプル内の1つまたは複数のトレーニングサンプルの各々について、損失関数を最小化するためにニューラルネットワークのパラメータの現在値を更新することによって、トレーニングサンプル上でニューラルネットワークがトレーニングされる。損失関数は、教師付き損失関数と教師なし損失関数との組合せである。教師付き損失関数は、ニューラルネットワークのパラメータの現在値に従って、グラウンドトゥルースキーポイントと、ラベル付き画像についてニューラルネットワークによって生成されたそれぞれの予測されたキーポイントとの間の差を最小化する。教師なし損失関数は、パラメータの現在値に従って、同じシーンの異なる視点から撮影されたラベルなし画像についてニューラルネットワークによって生成されたそれぞれの予測されたキーポイント間のマルチビューの不整合を最小化する。
【0008】
キーポイントは、特定のタスクを実行するために検出することが有用な環境における任意の関心ポイントであり得る。たとえば、キーポイントは、オブジェクトまたはオブジェクトの動きを認識するために重要なオブジェクト上のポイントであり得る。キーポイントは、動いている動物の頭部、前足、胴体または尾部上のポイントであってもよい。別の例として、キーポイントは、ロボットの腕または脚の関節であってもよい。グラウンドトゥルースキーポイントでラベルが付けられたトレーニングデータセット内の画像は、キーポイントと見なされるべき初期ターゲットポイントをニューラルネットワークに提供する。特定のトレーニング方法は、キーポイントを予測するようにニューラルネットワークを効果的にトレーニングするために必要とされるラベル付きトレーニングデータの量を大幅に低減する。トレーニングデータセットは、いかなるラベル付き画像もなく、ラベルなし同期画像のセットのみを有するトレーニングサンプルを含んでいてもよい(空のセットもサブセットである)ことを諒解されよう。
【0009】
この方法は、異なる視点からの環境の画像を実質的に同時にキャプチャするために同期された複数のカメラを利用してもよく、または複数の異なる視点をキャプチャするように構成された単一のカメラを利用してもよい。1つまたは複数のカメラは、環境のビデオシーケンスをキャプチャするように構成され得、画像は、ビデオシーケンスのフレームに対応し得る。
【0010】
シーン内の1つまたは複数のオブジェクトは、動的オブジェクトであってもよい。たとえば、オブジェクトは、動いていてもよく、または相互作用したときに変形可能であってもよい。
【0011】
ニューラルネットワークは、(i)1つまたは複数のダウンサンプリング層、(ii)1つまたは複数の畳み込み層、(iii)1つまたは複数の残差層、(iv)1つまたは複数のアップサンプリング層、(v)空間argmax層、(vi)バイリニアアップサンプリング層、(vii)3D推定層、または(viii)ソフトマックス層のうちの1つまたは複数を含み得る。
【0012】
ニューラルネットワークは、シーンを描写する入力画像を受信し、入力画像を処理して出力を生成するように構成される。ニューラルネットワーク120の出力は、シーン内の1つまたは複数のオブジェクトの複数の異なる可能なキーポイントの各々についてのそれぞれのヒートマップを含む。ヒートマップは、並列に、すなわち、ニューラルネットワークを単一回通過することで生成することができる。所与の可能なキーポイントについてのヒートマップは、画像内の複数の位置の各々について、たとえば、画像内の各ピクセルについて、所与の可能なキーポイントがその位置にある可能性を表す、それぞれのスコアを含む。
【0013】
損失関数は、パラメータを正規化するための追加のコンポーネントを含み得る。
【0014】
損失関数は、教師付き損失関数、教師なし損失関数、および追加のコンポーネントの重み付けされた組合せであり得る。
【0015】
この方法は、トレーニングサンプル内の各ラベル付き画像について、およびラベル付き画像内のグラウンドトゥルースキーポイントの各々について、ラベル付き画像内のグラウンドトゥルースキーポイントのそれぞれのグラウンドトゥルースヒートマップを構築するステップと、パラメータの現在値を有するニューラルネットワークを使用して、ラベル付き画像内のグラウンドトゥルースキーポイントのそれぞれの予測されたヒートマップを生成するステップとをさらに含み得る。すなわち、グラウンドトゥルースキーポイントのそれぞれの予測されたヒートマップは、ニューラルネットワークを使用してラベル付き画像を処理することによって生成されたグラウンドトゥルースキーポイントに対応する予測されたヒートマップであってもよい。この方法は、それぞれのグラウンドトゥルースヒートマップおよびそれぞれの予測されたヒートマップのKullback-Leibler(KL)ダイバージェンスを計算するステップをさらに含み得る。教師付き損失関数は、計算されたKLダイバージェンスの組合せであり得る。たとえば、組合せは、ラベル付き画像内の各グラウンドトゥルースキーポイントについて、および各ラベル付き画像について計算されたKLダイバージェンスの組合せであってもよい。KLダイバージェンスは、トレーニングサンプル内のラベルなし画像について、ラベルなし画像が対応する視点のグラウンドトゥルースキーポイントの位置を導出することによっても計算され得る。この位置のグラウンドトゥルースヒートマップが構築され、グラウンドトゥルースヒートマップと予測されたヒートマップとの間のKLダイバージェンスが計算され得る。このようにしてラベルなし画像から計算されたKLダイバージェンスを、ラベル付き画像について計算されたKLダイバージェンスと組み合わせて、教師付き損失関数を提供することができる。
【0016】
この方法は、トレーニングサンプル内のラベルなし画像の各々について、ラベルなし画像のそれぞれのブートストラップされたキーポイントを生成するステップであり、ブートストラップされたキーポイントが、ラベルなし画像のラベルとして扱われる、生成するステップをさらに含み得る。この方法は、それぞれのブートストラップされたキーポイントの各々について、ブートストラップされたキーポイントのそれぞれのブートストラップされたヒートマップを構築するステップと、パラメータの現在値に従って、ニューラルネットワークを使用して、ブートストラップされたキーポイントのそれぞれの予測されたヒートマップを生成するステップと、それぞれのブートストラップされたヒートマップおよびそれぞれの予測されたヒートマップのKLダイバージェンスを計算するステップとをさらに含み得る。教師なし損失関数は、計算されたKLダイバージェンスの組合せであり得る。たとえば、ニューラルネットワークは、ラベルなし画像の各々について予測されたヒートマップを生成するために使用され得る。これらの予測されたヒートマップは、キーポイントの位置についての個々の推定値を提供する。ラベルなし画像は各々、同じシーンの異なる視点を提供するので、個々の推定値を組み合わせて、キーポイントの位置の最終推定値、すなわち、ブートストラップされたキーポイントを提供することができる。次いで、ブートストラップされたキーポイントをラベルとして使用することができる。ヒートマップは、ブートストラップされたキーポイントから、「グラウンドトゥルース」ヒートマップがグラウンドトゥルースキーポイントに対して構築される方法と同様の方法で構築され得る。元の予測されたヒートマップと「グラウンドトゥルース」ブートストラップされたキーポイントヒートマップとの間のKLダイバージェンスが計算され得る。このプロセスを、各キーポイントについて繰り返すことができ、各キーポイントについて計算されたKLダイバージェンスをさらに組み合わせて、教師なし損失を提供することができる。
【0017】
ラベルなし画像内のそれぞれのブートストラップされたキーポイントを生成するステップは、重み付き最小二乗最適化問題を解くステップを含み得る。たとえば、ブートストラップされたキーポイントの位置を提供するためのキーポイントの個々の推定値の組合せは、重み付き最小二乗最適化問題を解くことを含み得る。
【0018】
各KLダイバージェンスは、損失関数における関連する重要度係数によってさらに重み付けされ得る。各KLダイバージェンスの関連する重要度係数は、それぞれの予測されたヒートマップの分散の関数であり得る。
【0019】
それぞれのシーン内の1つまたは複数のオブジェクトは、(i)1つまたは複数のロボットシステム、または(ii)1つまたは複数のロボットシステムが相互作用している環境における1つまたは複数のオブジェクトであり得る。
【0020】
トレーニングデータセットは、ロボットシステムが自動化されたスクリプトアクションを実行している間に画像をキャプチャすることによって取得され得る。たとえば、ロボットシステムは、異なる位置におけるロボットおよび環境の画像キャプチャを提供するために、環境において様々な方向に移動するように構成され得る。別の例では、トレーニングデータセットは、タスクのデモンストレーションを提供するなど、人間のオペレータがロボットシステムを制御している場所の画像キャプチャに基づいて取得され得る。
【0021】
ニューラルネットワークによって生成された予測されたキーポイントは、ロボットシステムを制御するために使用され得る。たとえば、キーポイントは、ロボットシステムが操作すべき環境におけるオブジェクトに対応し得る。制御システムは、追跡されたキーポイント間の位置および関係とロボットシステムの状態とに基づいて、ロボットシステムにアクションを発行することができる。アクションは、たとえば、ロボットシステムの1つもしくは複数の関節または部品の位置、速度、または力/トルク/加速度、またはより高いレベルのコマンドを連鎖させることを含むことができる。
【0022】
1つまたは複数のロボットシステムを制御するステップは、強化学習技法を使用して制御ポリシーを学習するステップを含み得る。予測されたキーポイントは、生画像の代わりに、ロボットタスクの視覚的特徴として使用され得る。したがって、予測されたキーポイントは、強化学習システムがアクションを決定する環境の観察/特徴の一部を形成し得る。強化学習システムは、次いで、任意の強化学習技法に従ってタスクを実行するためのアクション選択ポリシーを学習することができる。システムは、環境の受信された観測結果、すなわち予測されたキーポイントに基づいて、ロボットシステムが実行するアクションを選択することができる。次いで、ロボットシステムは、アクションを実行することができる。アクションは、環境と相互作用して、新しい観測結果を生成し、これは、次に、新しいアクションを選択するために使用することができる。環境は、現実世界の環境であってもよく、または、トレーニングにおいて、環境は、現実世界の環境のシミュレーションであってもよい。このように、観測は、現実世界の環境に関し、選択されたアクションは、ロボットシステムによって実行されるアクションに関する。アクション選択ポリシーは、1つまたは複数のニューラルネットワークとして実装されてもよく、現実世界の環境を感知する1つまたは複数のセンサから観測結果を取得し、この場合、同期されたカメラ画像を取得し、予測されたキーポイントを生成し、ポリシー出力を使用して、タスクを実行するようにロボットエージェントを制御するアクションを選択することによって、現実世界の環境と対話しながらタスクを実行するようにロボットシステムを制御する。
【0023】
本明細書で説明される主題は、以下の利点のうちの1つまたは複数を実現するように、特定の実施形態において実施することができる。ニューラルネットワークをトレーニングするために少数のラベル付きサンプルにおける教師付き損失と組み合わせて新しい自己教師付き損失を使用することによって、説明されたトレーニング技法は、教師の量、すなわち、ニューラルネットワークのトレーニングデータ内に含まれるラベル付きサンプルの量を低減しながら、トレーニングされたニューラルネットワークが、入力画像内のキャプチャされた動的オブジェクトの3Dキーポイントのロバストな追跡を提供することを可能にする。
【0024】
具体的には、記載された技法は、あらかじめ定められたキーポイント(たとえば、人間の注釈)でラベル付けされた少量の画像データを使用し、異なる視点から複数のカメラによってキャプチャされたラベル付けされていないが同期されたマルチビュー画像データの大きなコーパスを使用して、マルチビュー3D一貫性を介した自己教師を行う。トレーニングに使用されるデータは、一般に、安価に取得できる(たとえば、RGBカメラ画像)。カメラが同期されている限り、シーン自体は動的であり得る。このようにして、トレーニングされたニューラルネットワークは、ビュー全体と、人間の注釈、すなわち、ラベル付き画像のラベルの両方と一致する、オブジェクト(見えないオブジェクト、すなわち、ニューラルネットワークをトレーニングするために使用される画像には現れないオブジェクトでさえも)のキーポイントを生成することができる。したがって、記載された技法は、アノテータの選好に基づいたロバストな検出器をもたらし、深度画像、3Dスキャン、または任意の他の事前にフレーム化されたモデル(たとえば、オブジェクトセグメンテーションまたは前景/背景検出)などの高品質データを必要とすることなく、キーポイントのロバストかつビュー非依存の追跡を可能にし、それによって、高品質データを取得するために必要とされる計算リソースを低減し、トレーニングシステムの複雑さを低減することができる。
【0025】
さらに、記載された技法は、豊富な背景を有する場合に不向きとなる画像空間再構成に依存しない。また、トレーニングされたニューラルネットワークによって検出されたキーポイントは、表面のポイントに結び付けられる必要はなく、すなわち、それらは、意味的および幾何学的に一貫性がある限り、内部オブジェクトであり得るか、または物理的位置に対応していなくてもよい。
【0026】
非構造化視覚表現とは異なり、キーポイントは、人間が理解でき、ロボットコントローラに実行可能な表現を提供する。動的オブジェクトの3Dキーポイントのロバストな追跡を提供することによって、記載された技法は、トレーニングされたニューラルネットワークを使用して制御されるロボットは、わずかな人間の労力で精度および一般化を必要とするタスクを実行することができる。複雑なフィードバックを必要とすることが多く、通常、ロボットエージェントをトレーニングするのに長い時間を要する強化学習タスク(具体的には、タスクが生の画像を処理することを必要とするとき)の場合、トレーニングされたニューラルネットワークによって生成されたキーポイントは、視覚シーンの良好な概要として機能することができ、生の画像から学習する必要性を回避するために、ロボットタスクの視覚的特徴として使用することができる。
【0027】
本明細書の主題の1つまたは複数の実施形態の詳細は、添付の図面および以下の説明に記載されている。主題の他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0028】
【
図1】例示的なニューネットワークシステムを示す図である。
【
図2】教師付き損失関数を決定するための例示的なプロセスのフロー図である。
【
図3】教師なし損失関数を決定するための例示的なプロセスのフロー図である。
【
図4】キーポイント予測ニューラルネットワークをトレーニングするための例示的なプロセスのフロー図である。
【
図5】キーポイント予測ニューラルネットワークの例示的なアーキテクチャを示す図である。
【発明を実施するための形態】
【0029】
様々な図面における同様の参照番号および名称は、同様の要素を示す。
【0030】
本明細書は、ラベル付きトレーニングデータおよびラベルなしトレーニングデータを含むトレーニングデータセットを使用して、見えないオブジェクトのキーポイントを予測するようにキーポイント予測ニューラルネットワークをトレーニングする、1つまたは複数の場所にある1つまたは複数のコンピュータ上にコンピュータプログラムとして実装されるシステムについて説明する。
【0031】
いくつかの実装形態では、オブジェクトは、人、動物、車両、またはロボットエージェントなどの動的オブジェクトとすることができる。オブジェクトのキーポイントは、オブジェクト上のポイント、たとえば、オブジェクトまたはオブジェクトの動きを認識するために重要なポイントである。たとえば、キーポイントは、動いている動物の頭部、前足、胴体または尾部上のポイントであってもよい。別の例として、キーポイントは、ロボットの腕または脚の関節であってもよい。いくつかの他の実装形態では、オブジェクトは、環境、たとえば、ロボットエージェントが相互作用している環境における静的オブジェクトであり得る。
【0032】
いくつかの実装形態では、トレーニングされたニューラルネットワークによって予測されたキーポイントは、たとえば、強化学習技法を使用して制御ポリシーを学習することによって、ロボットタスクを実行するようにロボットシステムを制御するために使用され得る。これらの実装形態では、予測されたキーポイントは、視覚シーンの良好な概要として機能することができ、生の画像から特徴を学習する必要性を回避するために、ロボットタスクの視覚的特徴として使用することができ、したがって、タスクを実行するためにロボットエージェントをトレーニングするための時間を低減する。たとえば、ロボットエージェントがソケットにオーディオプラグを挿入することを必要とするタスクが与えられると、トレーニングされたニューラルネットワークを使用して、プラグチップ、プラグベース、およびソケット位置であるキーポイントを予測することができる。別の例として、ロボットエージェントが環境をナビゲートすることを必要とするタスク(たとえば、自律車両が目的地に到達するために街路をナビゲートする)が与えられると、トレーニングされたニューラルネットワークを使用して、自律車両が歩行者および他の車両との衝突を回避し、目的地に安全に到達することができるように、街路上の歩行者および/または他の車両のキーポイントを予測することができる。これらの予測されたキーポイントは、ロボットエージェントが周囲環境をナビゲートし、高精度でタスクを迅速に完了させることを可能にする。
【0033】
図1は、例示的なニューネットワークシステムを示す。システム100は、以下に説明するシステム、コンポーネント、および技法を実装することができる1つまたは複数の場所にある1つまたは複数のコンピュータ上にコンピュータプログラムとして実装されるシステムの一例である。
【0034】
システム100は、キーポイント予測ニューラルネットワーク120をトレーニングするように構成されたトレーニングエンジン110を含む。トレーニングエンジン110は、1つまたは複数の場所にある1つまたは複数のコンピュータにインストールされた1つまたは複数のソフトウェアモジュールまたはコンポーネントとして実装され得る。
【0035】
キーポイント予測ニューラルネットワーク120は、複数のパラメータを有する。システム100は、ネットワーク120のパラメータの初期値を、たとえば、ゼロ、または適切な分布からサンプリングされたランダム値に初期化することができる。
【0036】
一般に、ニューラルネットワーク120は、シーンを描写する入力画像を受信し、入力画像を処理して出力を生成するように構成される。ニューラルネットワーク120の出力は、シーン内の1つまたは複数のオブジェクトの複数の異なる可能なキーポイントの各々についてのそれぞれのヒートマップを含む。ヒートマップは、並列に、すなわち、ニューラルネットワークを単一回通過することで生成することができる。所与の可能なキーポイントについてのヒートマップは、画像内の複数の位置(2D位置)の各々について、たとえば、画像内の各ピクセルについて、所与の可能なキーポイントがその位置にある可能性を表す、それぞれのスコアを含む。
【0037】
ニューラルネットワーク120は、(i)1つまたは複数のダウンサンプリング層、(ii)1つまたは複数の畳み込み層、(iii)1つまたは複数の残差層、(iv)1つまたは複数のアップサンプリング層、(v)空間argmax層、(vi)バイリニアアップサンプリング層、(vii)3D推定層、または(viii)ソフトマックス層のうちの1つまたは複数を含むことができる。
【0038】
キーポイント予測ニューラルネットワーク120の例示的なアーキテクチャ500が
図5に示されている。ネットワークへの入力は、シーンを描写する単一のカメラ画像502であり、ネットワークの出力534は、シーン内の1つまたは複数のオブジェクトの複数の異なる可能なキーポイントの各々についてのそれぞれのヒートマップを含む。
【0039】
ニューラルネットワークの例示的なアーキテクチャ500は、(i)第1の畳み込みダウンサンプリング層504、続いて(ii)第1の畳み込みニューラルネットワーク層508、続いて(iii)第2の畳み込みダウンサンプリング層510、続いて(iv)第2の畳み込みニューラルネットワーク層512、続いて(v)3つの残差ブロックのスタック(ブロック514、続いてブロック516、続いてブロック518を含む)、続いて(vi)第3の畳み込みニューラルネットワーク層520、続いて(vii)畳み込みアップサンプリング層522、続いて(viii)第4の畳み込みニューラルネットワーク層524、続いて(ix)バイリニアアップサンプリング層526、続いて(x)空間ソフトマックス層528を含む。
【0040】
アーキテクチャ500の層の各々は、それぞれの層入力を受信し、それぞれの層出力を生成する。第1の畳み込みダウンサンプリング層は、その層入力として入力画像502を受信するように構成される。各層の層出力は、アーキテクチャ500内の次の層、すなわち次の層または出力層への入力として使用される。アーキテクチャ500の各層は、ニューラルネットワークのパラメータの現在値に従って受信された入力から出力を生成する。
【0041】
いくつかの実装形態では、層は、複数の先行する層の出力を入力として受信することができる。たとえば、層526は、層524の出力と層504の出力の両方を入力として受信することができる。層522は、層520の出力と層510の出力の両方を入力として受信することができる。層524は、層522の出力と層508の出力の両方を入力として受信することができる。
【0042】
図1のシステム100は、3D推定層をさらに含むことができ、たとえば、3D推定層530は、異なるカメラ画像についてキーポイント予測ニューラルネットワークによって生成されたヒートマップを処理して、シーン内の1つまたは複数のオブジェクトの各可能なキーポイントの3D位置の推定値を含む出力532を生成するように構成される。
【0043】
図1に戻って、ニューラルネットワーク120をトレーニングするために、トレーニングエンジン110は、複数のトレーニングサンプルを含むトレーニングデータセット102を受信する。各トレーニングサンプルは、それぞれのシーンからの1つまたは複数のオブジェクトの同期画像のセットを含む。セット内の各画像は、同じシーンの異なる視点(またはビューポイント)からそれぞれのカメラによって同期して撮影される。各トレーニングサンプル内の同期画像のセットは、ラベル付き画像のサブセットおよびラベルなし画像のサブセットを含む。ラベル付き画像のサブセット内の各ラベル付き画像は、シーン内の1つまたは複数のオブジェクト上の重要なポイントを表すグラウンドトゥルースキーポイントでラベル付けされる。ラベルなし画像のサブセット内の各画像は、いかなるグラウンドトゥルースキーポイントでもラベル付けされていない。いくつかのトレーニングサンプルは、いかなるラベル付き画像も有いていない可能性があることを諒解されよう。
【0044】
複数のトレーニングサンプルの1つまたは複数のトレーニングサンプルの各々について、システム100は、損失関数116を最小化するためにニューラルネットワーク120のパラメータの現在値を更新することによって、トレーニングサンプル上でニューラルネットワーク120をトレーニングする。損失関数は、教師付き損失関数112と教師なし損失関数114との組合せである。
【0045】
Lsupとして示される教師付き損失関数112は、ニューラルネットワーク120のパラメータの現在値に従って、グラウンドトゥルースキーポイントと、ラベル付き画像についてニューラルネットワーク120によって生成されたそれぞれの予測されたキーポイントとの間の差を最小化する。
【0046】
たとえば、トレーニングサンプル内の各ラベル付き画像について、およびラベル付き画像内のグラウンドトゥルースキーポイントの各々について、トレーニングエンジン110は、ラベル付き画像内のグラウンドトゥルースキーポイントのそれぞれのグラウンドトゥルースヒートマップを構築する。トレーニングエンジン110は、ニューラルネットワーク120のパラメータの現在値を有するニューラルネットワーク120を使用して、ラベル付き画像内のグラウンドトゥルースキーポイントのそれぞれの予測されたヒートマップを生成する。トレーニングエンジン110は、それぞれのグラウンドトゥルースヒートマップおよびそれぞれの予測されたヒートマップのKullback-Leibler(KL)ダイバージェンスを計算する。教師付き損失関数は、計算されたKLダイバージェンスの組合せである。教師付き損失関数を決定するためのプロセスについて、
図2を参照してより詳細に説明する。
【0047】
Lunsupとして示される教師なし損失関数114は、ニューラルネットワーク120のパラメータの現在値に従って、同じシーンの異なる視点から撮影されたラベルなし画像についてニューラルネットワーク120によって生成されたそれぞれの予測されたキーポイント間のマルチビューの不整合を最小化する。したがって、教師なし損失関数114は、ラベルなし画像が、同じシーンの異なる視点から異なるカメラによって撮影され、したがって同じオブジェクトを描写するので、同じシーン内の1つまたは複数のオブジェクトについてニューラルネットワーク120によって生成された予測されたキーポイントが、ラベルなし画像にわたって一貫性があるように促す。
【0048】
たとえば、トレーニングサンプル内のラベルなし画像の各々について、トレーニングエンジン110は、ラベルなし画像のラベルとして扱われる、ラベルなし画像のそれぞれについてのブートストラップされたキーポイントを生成する。それぞれのブートストラップされたキーポイントの各々について、エンジン110は、ブートストラップされたキーポイントのそれぞれのブートストラップされたヒートマップを構築する。エンジン110は、パラメータの現在値に従って、ニューラルネットワーク120を使用して、ブートストラップされたキーポイントのそれぞれの予測されたヒートマップを生成する。エンジン110は、それぞれのブートストラップされたヒートマップおよびそれぞれの予測されたヒートマップのKLダイバージェンスを計算する。教師なし損失関数は、計算されたKLダイバージェンスの組合せである。教師なし損失関数114を決定するためのプロセスについて、
図3を参照してより詳細に説明する。
【0049】
いくつかの実装形態では、損失関数116は、ニューラルネットワーク120のパラメータを正規化するための追加のコンポーネントを含み得る。損失関数116は、教師付き損失関数、教師なし損失関数、および追加のコンポーネントの重み付けされた組合せとすることができる。たとえば、Ltotalとして示される損失関数116は、以下の形式をとることができる。
Ltotal=Lsup+αLunsup+λ||θnonbias||2
式中、α、λは、ハイパーパラメータまたは固定定数である重みであり、||θnonbias||2は、キーポイント予測ニューラルネットワーク120のすべての非バイアスパラメータに対するL2正則化である。
【0050】
トレーニングサンプルの1つまたは複数のラベル付き画像および1つまたは複数のラベルなし画像の各バッチについて、トレーニングエンジン110は、従来のニューラルネットワークトレーニング技法、たとえば、勾配降下ベースのトレーニング技法を使用して、損失関数116を最小化するために、ニューラルネットワーク120のパラメータの現在値を更新することによって、トレーニングサンプル上でニューラルネットワーク120をトレーニングする。特に、トレーニングエンジン110は、損失関数116の勾配の推定値を決定し、損失関数116の勾配の推定値を逆伝播して、ニューラルネットワーク120のパラメータの各々についてそれぞれの更新値を決定することができる。
【0051】
トレーニングエンジン110が、1つまたは複数のトレーニング例でニューラルネットワーク120をトレーニングした後、システム100は、パラメータの最終更新値を有するトレーニングされたキーポイント予測ニューラルネットワーク122を取得する。いくつかの実装形態では、システム100は、トレーニングされたキーポイント予測ニューラルネットワーク122を使用して新しい画像を処理して、新しい画像によって描写されるシーン内の1つまたは複数のオブジェクトのキーポイントを生成する。代替または追加として、システム100は、新しい画像によって描写されるシーン内の1つまたは複数のオブジェクトのキーポイントを生成するために、新しい画像を処理するように、トレーニングされたキーポイント予測ニューラルネットワーク122を使用する別のシステムに、トレーニングされたキーポイント予測ニューラルネットワーク122を提供することができる。これらの場合のいずれにおいても、生成されたキーポイントは、任意選択で、下流タスク、たとえば、上述の下流タスクのうちの1つを実行するために使用することができる。
【0052】
図2は、キーポイント予測ニューラルネットワークをトレーニングするための教師付き損失関数を決定するための例示的なプロセス200のフロー図である。便宜上、プロセス200は、1つまたは複数の場所に位置する1つまたは複数のコンピュータのシステムによって実行されるものとして説明する。たとえば、本明細書に従って適切にプログラムされた
図1のニューラルネットワークシステム100のようなニューラルネットワークシステムは、プロセス200を実行することができる。
【0053】
上述のように、各トレーニングサンプルは、ラベル付き画像のサブセットおよびラベルなし画像のサブセットを含む。各ラベル付き画像は、複数のK個のグラウンドトゥルースキーポイントでラベル付けされる。各グラウンドトゥルースキーポイントは、それぞれの2D位置座標に関連付けられる。
【0054】
各ラベル付き画像cについて、およびラベル付き画像c内の複数のK個のグラウンドトゥルースキーポイントの各グラウンドトゥルースキーポイントkについて、システムは、以下のようにステップ202~206を実行する。
【0055】
システムは、ラベル付き画像内のグラウンドトゥルースキーポイントのそれぞれのグラウンドトゥルースヒートマップを構築する(ステップ202)。特に、各グラウンドトゥルースキーポイントkについて、システムは、グラウンドトゥルースキーポイントの2D位置座標、およびカメラ較正に基づいて、グラウンドトゥルースキーポイントの3D位置座標xkを計算する。
【0056】
システムは、カメラcによって撮影されたラベル付き画像Icの画像平面上に3D位置座標xkを投影する。ラベル付き画像Icに逆投影されたキーポイントkの画像座標は、ick,jckと表すことができる。このシステムは、幅σを有する画像座標ick,jckを中心とするガウス画像を構築する。これにより、以下の形式を有するそれぞれのグラウンドトゥルースヒートマップHck(ij)が作成される。
Hck(ij)∝exp((-(ick-i)2-(ick-j)2)/(2σ2))
式中、iおよびjは、グラウンドトゥルースヒートマップにおける座標である。ガウス画像の幅および高さは、入力されたラベル付き画像cの寸法と一致する。幅σは、あらかじめ定められたハイパーパラメータである。
【0057】
システムは、ニューラルネットワークのパラメータの現在値を有するキーポイント予測ニューラルネットワークを使用して、ラベル付き画像内のグラウンドトゥルースキーポイントのそれぞれの予測されたヒートマップを生成する(ステップ204)。
【0058】
具体的には、fがキーポイント予測ニューラルネットワークを表し、θがキーポイント予測ニューラルネットワークのパラメータを表すとすると、システムは、以下のように、ラベル付き画像Icにおいてグラウンドトゥルースキーポイントkのそれぞれの予測されたヒートマップ(Pckとして示される)を生成する。
Pck=softmax(f(lc,θ)k
ここで、ソフトマックス演算は、各キーポイントおよびラベル付き画像について個別に実行される。同じパラメータ値を有する同じキーポイント予測ニューラルネットワークが、各ビューポイントに適用され、そのビューポイントから撮影されたラベル付き画像内のすべてのグラウンドトゥルースキーポイントのグラウンドトゥルースヒートマップを取得することに留意されたい。同じキーポイント予測ニューラルネットワークが各ビューポイントに適用され、一般にキーポイントの予測されたヒートマップが提供される。
【0059】
システムは、それぞれのグラウンドトゥルースヒートマップおよびそれぞれの予測されたヒートマップのKullback-Leibler(KL)ダイバージェンスを計算する(ステップ206)。それぞれのグラウンドトゥルースヒートマップおよびそれぞれの予測されたヒートマップのKLダイバージェンスを以下のように表すことができる。DKL(Hck||softmax(f(Ic,θ)k))
【0060】
KLダイバージェンスの詳細については、Kullback, S. and Leibler, R.A. (1951) On Information and Sufficiency. The Annals of Mathematical Statistics, 22, 79-86に記載されている。
【0061】
上記の方法は、トレーニングサンプルの残りのラベルなし画像も含むことができることを諒解されよう。グラウンドトゥルースキーポイントの計算された3D位置座標xkは、カメラ較正に基づいてラベルなし画像に逆投影され、ラベルなし画像ごとにグラウンドトゥルースヒートマップが構成され得る2D位置を与えることができる。次いで、KLダイバージェンスは、上記のように計算され、教師付き損失関数に含まれ得る。
【0062】
システムは、教師付き損失関数を決定するために、各ラベル付き画像内の各グラウンドトゥルースキーポイントについて計算されたKLダイバージェンスを組み合わせる(ステップ208)。たとえば、教師付き損失関数は、以下のように決定することができる。
【0063】
【0064】
いくつかの実装形態では、システムは、計算されたKLダイバージェンスの重み付けされた組合せを組み合わせて、教師付き損失関数を決定することができる。各KLダイバージェンスは、関連する重要度係数によって重み付けすることができる。各KLダイバージェンスの関連する重要度係数は、それぞれの予測されたヒートマップの分散の関数とすることができる。
【0065】
図3は、キーポイント予測ニューラルネットワークをトレーニングするための教師なし損失関数を決定するための例示的なプロセス300のフロー図である。便宜上、プロセス300は、1つまたは複数の場所に位置する1つまたは複数のコンピュータのシステムによって実行されるものとして説明する。たとえば、本明細書に従って適切にプログラムされた
図1のニューラルネットワークシステム100のようなニューラルネットワークシステムは、プロセス300を実行することができる。
【0066】
図1の説明で説明したように、各トレーニングサンプルは、ラベル付き画像のサブセットおよびラベルなし画像のサブセットを含む。
【0067】
システムは、トレーニングサンプル内のラベルなし画像のサブセットを使用して、教師なし損失関数を決定する。ラベルなし画像は、同じシーンの同時画像である。すなわち、ラベルなし画像の各々は、同じシーンの異なる視点(またはビューポイント)からそれぞれのカメラによって撮影され、ラベルなし画像のすべては、それぞれのカメラによって同時に撮影される。システムは、ラベルなし画像の各々について明示的なラベル(すなわち、グラウンドトゥルースキーポイント)を有していない。
【0068】
したがって、トレーニングサンプル内のラベルなし画像の各々について、システムは、ラベルなし画像についてのそれぞれのブートストラップされたキーポイントを生成する(ステップ302)。特に、システムは、シーンの1つ以上のオブジェクトのブートストラップされたキーポイントの各々の3D位置座標を推定する。ブートストラップされたキーポイントの各々の3D位置座標を推定するために、システムは、重み付けされた最小二乗最適化問題を解き、これについては、以下でより詳細に説明する。ブートストラップされたキーポイントは、ラベルなし画像のラベルとして扱われ、したがって、ニューラルネットワークは、3D的に整合性のある方法でそれ自体の予測から自己教師を行うことができる。
【0069】
それぞれのブートストラップされたキーポイントの各ブートストラップされたキーポイントkについて、システムは、以下のようにステップ304~308を実行する。
【0070】
システムは、ブートストラップされたキーポイントkについて、それぞれのブートストラップされたヒートマップを構築する(ステップ304)。
【0071】
システムは、カメラcによって撮影されたラベルなし画像Icの画像平面上に推定された3D位置座標
【0072】
【0073】
を投影する。ラベル付き画像Icに逆投影されたキーポイントkの画像座標は、ick,jckと表すことができる。システムは、ブートストラップされたキーポイントkのそれぞれのブートストラップされたヒートマップ
【0074】
【0075】
を、幅σを有する画像座標ick,jckを中心とするガウス画像として構築する。これにより、それぞれのブートストラップされたヒートマップ
【0076】
【0077】
が作成され、式中、iおよびjは、ブートストラップされたヒートマップにおける座標である。
【0078】
システムは、ニューラルネットワークのパラメータの現在値に従って、キーポイント予測ニューラルネットワークを使用して、ブートストラップされたキーポイントについてのそれぞれの予測されたヒートマップを生成する(ステップ306)。
【0079】
特に、システムは、ラベルなし画像Icにおいてブートストラップされたキーポイントkのそれぞれの予測されたヒートマップ(Pckとして示される)を以下のように生成する。
Pck=softmax(f(lc,θ)k
ここで、ソフトマックス演算は、各キーポイントおよびラベルなし画像について個別に実行される。ソフトマックス演算における合計は、ラベルなし画像Icの画像ピクセルにわたって行われ、すなわち、画像ピクセルは、異なる画像クラスとして扱われる。
【0080】
ステップ302に戻り、各ブートストラップされたキーポイントの3D位置座標を推定するために、システムは、画像位置に対応するPck((xmean,ymean)として示される)の平均を決定し、そこから、較正を介して方向を計算することができる。画像位置は、(xmean,ymean)によって定義されるラベルなし画像Ic内の位置である。方向は、Pckに基づいて計算された画像位置の方向に各カメラの光線を作成する(3D座標では、カメラを通って走る仮想線が存在すると想像すると、その線の向きは、方向と称され得、仮想線は、そのカメラの光線を表す)。
【0081】
たとえば、Pckの平均を決定するために、システムは、確率分布としてPckを使用して、画像インデックス(すなわち、画像クラス)における期待値を決定し得る。xおよびyにおける平均の画像位置を見つけるために、システムは、xmean=ΣiΣj(jPck[i,j])およびymean=ΣiΣj(iPck[i,j])を計算することができ、ここで、(i,j)は、画像Icにおける各ピクセルの座標を示す。
【0082】
すべてのキーポイントがシーン上にちょうど1回だけ現れると仮定すると、ブートストラップされたキーポイントkの3D位置推定(
【0083】
【0084】
として示される)は、これらの光線からポイントまでの距離の二乗和が最小化されるポイントとして定義され得る。これは、
【0085】
【0086】
の二次コストを定義し、したがって、解析的に解くことができる。特に、カメラcの位置がacとして示され、ブートストラップされたキーポイントkを通るカメラcからの光線の正規化された方向が
【0087】
【0088】
として示されると仮定すると、システムは、上記の重み付けされた最小二乗問題を解くことによって、推定された3D位置座標をもたらす以下の式を得ることができる。
【0089】
【0090】
【0091】
は、ラベル(すなわち、グラウンドトゥルースキーポイント)として扱われ、トレーニング中に逆伝播されない。
【0092】
ステップ306は、ステップ302の一部として実行されてもよいことを諒解されよう。
【0093】
システムは、それぞれのブートストラップされたヒートマップおよびそれぞれの予測されたヒートマップのKLダイバージェンスを計算する(ステップ308)。
【0094】
【0095】
システムは、教師なし損失関数を決定するために、各ラベルなし画像内の各ブートストラップされたキーポイントについて計算されたKLダイバージェンスを組み合わせる(ステップ310)。たとえば、教師なし損失関数は、Lunsupと表すことができ、以下のように決定することができる。
【0096】
【0097】
式中、
【0098】
【0099】
は、ブートストラップされたキーポイントの3D位置座標
【0100】
【0101】
から作成される。
【0102】
いくつかの実装形態では、たとえば、いくつかのキーポイントが視界から外れたり、または遮蔽されたりすることに起因して、すべてのカメラからのすべての予測を組み込むことが常に望ましいとは限らない。加えて、キーポイント上のヒートマップのより信頼性の高い予測を有するカメラビューの重みを高くすることが望ましい場合がある。したがって、いくつかの実装形態では、システムは、計算されたKLダイバージェンスの重み付けされた組合せに基づいて、教師なし損失関数を決定する。各KLダイバージェンスは、各予測されたヒートマップPckの重要度を表す関連する重要度係数によって重み付けすることができる(すなわち、より信頼性の高い予測を有するカメラビューに関連付けられた予測されたヒートマップがより重要である)。各KLダイバージェンスの関連する重要度係数は、それぞれの予測されたヒートマップの分散の関数とすることができる。たとえば、関連する重要度係数は、以下のように計算することができる。
【0103】
【0104】
式中、varckはそれぞれの予測されたヒートマップPckの分散であり、sigmはシグモイド関数であり、tanhは双曲線正接関数である。
【0105】
図4は、キーポイント予測ニューラルネットワークをトレーニングするための例示的なプロセスのフロー図である。便宜上、プロセス400は、1つまたは複数の場所に位置する1つまたは複数のコンピュータのシステムによって実行されるものとして説明する。たとえば、本明細書に従って適切にプログラムされた
図1のニューラルネットワークシステム100のようなニューラルネットワークシステムは、プロセス400を実行することができる。
【0106】
システムは、複数のトレーニングサンプルを含むトレーニングデータセットを受信する(ステップ402)。各トレーニングサンプルは、それぞれのシーンからの1つまたは複数のオブジェクトの同期画像のセットを含む。セット内の各画像は、異なる視点からそれぞれのカメラによって同期して撮影される。同期画像のセットのサブセットは、グラウンドトゥルースキーポイントでラベル付けされ、セット内の残りの画像はラベル付けされない。
【0107】
各トレーニングサンプルについて、システムは、損失関数を最小化するためにニューラルネットワークのパラメータの現在値を更新することによって、トレーニングサンプル上でニューラルネットワークをトレーニングする(ステップ404)。損失関数は、教師付き損失関数と教師なし損失関数との組合せである。教師付き損失関数は、ニューラルネットワークのパラメータの現在値に従って、グラウンドトゥルースキーポイントと、ラベル付き画像についてニューラルネットワークによって生成されたそれぞれの予測されたキーポイントとの間の差を最小化する。教師なし損失関数は、パラメータの現在値に従って、同じシーンの異なる視点から撮影されたラベルなし画像についてニューラルネットワークによって生成されたそれぞれの予測されたキーポイント間のマルチビューの不整合を最小化する。いくつかの実装形態では、損失関数は、パラメータを正規化するための追加のコンポーネントを含む。いくつかの実装形態では、損失関数は、教師付き損失関数、教師なし損失関数、および追加のコンポーネントの重み付けされた組合せである。
【0108】
特に、ニューラルネットワークをトレーニングするために、複数のトレーニングサンプルのうちの1つまたは複数のトレーニングサンプルの各々について、システムは、以下のようにステップ406および408を実行する。
【0109】
システムは、損失関数の勾配の推定値を決定する(ステップ406)。システムは、バッチ勾配降下法、確率勾配降下法、またはミニバッチ勾配降下法などの勾配降下法を使用することによって、損失関数の勾配の推定値を決定することができる。
【0110】
システムは、損失関数の勾配の推定値を逆伝播して、ニューラルネットワークのパラメータの各々についてそれぞれの更新値を決定する(ステップ408)。たとえば、システムは、損失関数の勾配の推定値を逆伝播して、Adaptive Moment Estimation(Adam)オプティマイザまたはRMSpropオプティマイザなどの勾配降下オプティマイザを使用して、パラメータの各々についてそれぞれの更新値を決定することができる。
【0111】
システムは、1つまたは複数の基準が満たされるまで、たとえば、ニューラルネットワークの所望の性能(たとえば、あらかじめ定められたレベルの精度)が達成されるまで、トレーニングのための計算バジェットに達するまで、またはニューラルネットワークがあらかじめ定められた数のトレーニングサンプルにおいてトレーニングされるまで、上記のトレーニングプロセスを繰り返すことができる。
【0112】
トレーニング後、システムは、パラメータの最終更新値を有するトレーニングされたキーポイント予測ニューラルネットワークを取得する。いくつかの実装形態では、システムは、トレーニングされたキーポイント予測ニューラルネットワークを使用して新しい画像を処理して、新しい画像によって描写されるシーン内の1つまたは複数のオブジェクトの予測されたキーポイントを生成する。代替または追加として、システムは、新しい画像によって描写されるシーン内の1つまたは複数のオブジェクトの予測されたキーポイントを生成するために、新しい画像を処理するように、トレーニングされたキーポイント予測ニューラルネットワークを使用する別のシステムに、トレーニングされたキーポイント予測ニューラルネットワークを提供することができる。
【0113】
本明細書は、システムおよびコンピュータプログラムコンポーネントに関して「構成された」という用語を使用する。1つまたは複数のコンピュータのシステムが特定の動作またはアクションを実行するように構成されるとは、システムが、動作中、システムに動作またはアクションを実行させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをインストールしていることを意味する。1つまたは複数のコンピュータプログラムが特定の動作またはアクションを実行するように構成されるとは、1つまたは複数のプログラムが、データ処理装置によって実行されると、装置に動作またはアクションを実行させる命令を含むことを意味する。
【0114】
本明細書に記載された主題および機能的動作の実施形態は、デジタル電子回路、有形に実施されたコンピュータソフトウェアまたはファームウェア、本明細書に開示される構造およびそれらの構造的均等物を含むコンピュータハードウェア、またはそれらの1つもしくは複数の組合せに実装することができる。本明細書に記載される主題の実施形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置によって実行される、またはデータ処理装置の動作を制御するための有形の非一時的記憶媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装することができる。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムまたはシリアルアクセスメモリデバイス、またはそれらの1つもしくは複数の組合せとすることができる。代替または追加として、プログラム命令は、人工的に生成された伝搬信号、たとえば、データ処理装置によって実行するための適切な受信機装置への送信のために情報を符号化するために生成された機械生成電気、光学、または電磁信号上で符号化することができる。
【0115】
「データ処理装置」という用語は、データ処理ハードウェアを指し、たとえば、プログラム可能プロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのあらゆる種類の装置、デバイスおよび機械を包含する。装置は、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)などの専用論理回路でもよく、またはそれをさらに含むことができる。装置は、任意選択で、ハードウェアに加えて、コンピュータプログラムの実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらの1つまたは複数の組合せを構成するコードを含むことができる。
【0116】
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、スクリプト、またはコードとも呼ばれる、または記述されることもあるコンピュータプログラムは、コンパイルもしくはインタープリタ型言語、宣言型言語もしくは手続き型言語を含む、任意の形式のプログラミング言語で記述することができ、それは、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境での使用に適した他のユニットとしてなど、あらゆる形式で展開できる。プログラムは、必ずしも必要はないが、ファイルシステム内のファイルに対応し得る。プログラムは、当該のプログラム専用の単一のファイル、または、たとえば、1つまたは複数のモジュール、サブプログラム、もしくはコードの一部を記憶するファイルなど、複数のコーディネートされたファイルに、たとえば、マークアップ言語文書に記憶された1つまたは複数のスクリプトなど、他のプログラムまたはデータを保持するファイルの一部に記憶することができる。コンピュータプログラムは、1つのコンピュータ上で、または1つのサイトに位置するか、もしくは複数のサイトに分散され、データ通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように配備することができる。
【0117】
本明細書では、「エンジン」という用語は、1つまたは複数の特定の機能を実行するようにプログラムされているソフトウェアベースのシステム、サブシステム、またはプロセスを指すために広く使用されている。一般に、エンジンは、1つまたは複数の場所にある1つまたは複数のコンピュータにインストールされた1つまたは複数のソフトウェアモジュールまたはコンポーネントとして実装される。いくつかの場合には、1つまたは複数のコンピュータが特定のエンジンに専用であり、他の場合には、複数のエンジンを、同じ1つまたは複数のコンピュータにインストールし、そこにおいて実行することができる。
【0118】
本明細書で記述されたプロセスおよび論理フローは、入力データ上で動作し、出力を生成することによって機能を実行するために、1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラム可能コンピュータによって実行することができる。プロセスおよび論理フローは、たとえばFPGAまたはASICなどの専用論理回路によって、または専用論理回路と1つまたは複数のプログラムされたコンピュータとの組合せによっても実行することができる。
【0119】
コンピュータプログラムの実行に適したコンピュータは、汎用マイクロプロセッサもしくは専用マイクロプロセッサ、もしくはその両方、または他の種類の中央処理ユニットに基づくことができる。一般に、中央処理ユニットは、読取り専用メモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受信する。コンピュータの必須要素は、命令を実施または実行するための中央処理ユニット、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。中央処理ユニットおよびメモリは、専用論理回路によって補うまたはそこに組み込むことができる。一般に、コンピュータは、たとえば磁気、光磁気ディスク、または光ディスクなど、データを記憶するための1つまたは複数の大容量記憶デバイスも含み、あるいは、1つまたは複数の大容量記憶デバイスからデータを受信する、それにデータを転送する、またはその両方のために動作可能に結合される。しかしながら、コンピュータはそのようなデバイスを有する必要はない。さらに、コンピュータは、別のデバイス、たとえば、ほんのいくつかの例を挙げれば、携帯電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、またはユニバーサルシリアルバス(USB)フラッシュドライブなどのポータブル記憶デバイス中に組み込むことができる。
【0120】
コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、一例として、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイスなどの半導体メモリデバイス、たとえば内部ハードディスクまたはリムーバブルディスクなどの磁気ディスク、光磁気ディスク、ならびにCD-ROMおよびDVD-ROMディスクを含むすべての形態の不揮発性メモリ、メディアおよびメモリデバイスを含む。
【0121】
ユーザとの対話を提供するために、本明細書に記載される主題の実施形態は、ユーザに情報を表示するための、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタなどのディスプレイデバイス、ならびにキーボードおよび、ユーザがコンピュータに入力を提供することができる、たとえば、マウスまたはトラックボールなどのポインティングデバイスを有するコンピュータ上に実装することができる。他の種類のデバイスを使用して、ユーザとの対話を提供することもでき、たとえば、ユーザに提供されるフィードバックは、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックなど、任意の形態の感覚フィードバックとすることができ、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形態で受信することができる。さらに、コンピュータは、たとえば、ウェブブラウザから受信された要求に応答して、ユーザのデバイス上のウェブブラウザにウェブページを送信することによってなど、ユーザによって使用されるデバイスとの間でドキュメントを送受信することによって、ユーザと対話することができる。また、コンピュータは、テキストメッセージまたは他の形態のメッセージをパーソナルデバイス、たとえば、メッセージングアプリケーションを実行しているスマートフォンに送信し、代わりに、ユーザから応答メッセージを受信することによって、ユーザと対話することができる。
【0122】
機械学習モデルを実装するためのデータ処理装置はまた、たとえば、機械学習のトレーニングまたは製作、すなわち推論、作業負荷の共通部分および計算集約的部分を処理するための専用ハードウェアアクセラレータユニットを含むことができる。
【0123】
機械学習モデルは、機械学習フレームワークたとえば、TensorFlowフレームワーク、Microsoft Cognitive Toolkitフレームワーク、Apache Singaフレームワーク、またはApache MXNetフレームワークを使用して実装および展開することができる。
【0124】
本明細書に記載される主題の実施形態は、たとえばデータサーバとしてのバックエンドコンポーネントを含む、またはアプリケーションサーバなどのミドルウェアコンポーネントを含む、またはたとえば、ユーザが本明細書に記載された主題の実装と対話することができる、グラフィカルユーザインタフェース、ウェブブラウザ、またはアプリを有するクライアントコンピュータなどのフロントエンドコンポーネントを含む、または1つもしくは複数のそのようなバックエンド、ミドルウェア、またはフロントエンドコンポーネントの任意の組合せを含むコンピューティングシステムにおいて実装することができる。システムのコンポーネントは、たとえば、通信ネットワークなど、任意の形式または媒体のデジタルデータ通信によって相互接続することができる。通信ネットワークの例には、ローカルエリアネットワーク(LAN)およびワイドエリアネットワーク(WAN)、たとえばインターネットがある。
【0125】
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントとサーバとは、一般に、互いに遠隔であり、典型的には、通信ネットワークを介して対話する。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行され、互いにクライアントサーバ関係を有するコンピュータプログラムによって生じる。いくつかの実施形態では、サーバは、たとえば、クライアントとして動作するデバイスと対話しているユーザにデータを表示し、ユーザからユーザ入力を受信するために、データ、たとえば、HTMLページをユーザデバイスに送信する。たとえば、ユーザ対話の結果など、ユーザデバイスにおいて生成されたデータは、デバイスからサーバにおいて受信することができる。
【0126】
本明細書は、多くの具体的な実施の詳細を含むが、これらは、いかなる発明の範囲または特許請求される可能性のある範囲に対する限定ではなく、むしろ特定の発明の特定の実施形態に固有であり得る特徴の説明として解釈されるものとする。別個の実施形態の文脈において本明細書で説明されるいくつかの特徴は、単一の実施形態において組み合わせて実装することもできる。逆に、単一の実施形態の文脈で記載されている様々な特徴は、複数の実施形態で別々にまたは任意の適切な部分組合せで実装することもできる。さらに、特徴は、いくつかの組合せで作用するものとして上述されており、当初はそのように請求されているが、いくつかの場合、請求された組合せからの1つまたは複数の特徴を、組合せから削除することができ、請求された組合せは、部分組合せ、または部分組合せの変形を対象とし得る。
【0127】
同様に、動作が図面に示され、特許請求の範囲に特定の順序で記載されているが、これは、そのような動作が、示された特定の順序で、または順番に実行されること、あるいは望ましい結果を達成するために、図示されたすべての動作が実行されることを必要とするものとして理解されないものとする。いくつかの状況では、マルチタスキングおよび並列処理が有利であり得る。さらに、上述した実施形態における様々なシステムモジュールおよびコンポーネントの分離は、すべての実施形態においてそのような分離を必要とするものと理解されないものとし、記述されたプログラムコンポーネントおよびシステムを、一般に、単一のソフトウェア製品に一緒に組み入れることができ、または複数のソフトウェア製品にパッケージ化することができることを理解されたい。
【0128】
主題の特定の実施形態が記載されている。他の実施形態は、以下の特許請求の範囲内にある。たとえば、特許請求の範囲に列挙されたアクションは、異なる順序で実行され、依然として望ましい結果を達成することができる。一例として、添付の図面に示されるプロセスは、望ましい結果を達成するために、示された特定の順序または逐次的な順序を必ずしも必要としない。いくつかの場合には、マルチタスキングおよび並列処理が有利であり得る。
【符号の説明】
【0129】
100 ニューラルネットワークシステム
102 トレーニングデータセット
110 トレーニングエンジン
112 教師付き損失関数
114 教師なし損失関数
116 損失関数
120 キーポイント予測ニューラルネットワーク
122 トレーニングされたキーポイント予測ニューラルネットワーク
200 プロセス
300 プロセス
400 プロセス
500 アーキテクチャ
502 カメラ画像
504 第1の畳み込みダウンサンプリング層、
508 第1の畳み込みニューラルネットワーク層
510 第2の畳み込みダウンサンプリング層
512 第2の畳み込みニューラルネットワーク層
514 ブロック
516 ブロック
518 ブロック
520 第3の畳み込みニューラルネットワーク層
522 畳み込みアップサンプリング層
524 第4の畳み込みニューラルネットワーク層
526 バイリニアアップサンプリング層
528 空間ソフトマックス層
530 3D推定層
534 出力
【国際調査報告】