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

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

▶ オムロン株式会社の特許一覧

特許7452698画像間の空間的関係をラベリングする強化学習モデル
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-11
(45)【発行日】2024-03-19
(54)【発明の名称】画像間の空間的関係をラベリングする強化学習モデル
(51)【国際特許分類】
   G06T 7/00 20170101AFI20240312BHJP
【FI】
G06T7/00 350C
【請求項の数】 20
(21)【出願番号】P 2022562851
(86)(22)【出願日】2021-03-26
(65)【公表番号】
(43)【公表日】2023-05-26
(86)【国際出願番号】 JP2021013027
(87)【国際公開番号】W WO2021220688
(87)【国際公開日】2021-11-04
【審査請求日】2022-10-14
(31)【優先権主張番号】16/861,124
(32)【優先日】2020-04-28
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】100145403
【弁理士】
【氏名又は名称】山尾 憲人
(74)【代理人】
【識別番号】100189555
【弁理士】
【氏名又は名称】徳山 英浩
(74)【代理人】
【識別番号】100101454
【弁理士】
【氏名又は名称】山田 卓二
(72)【発明者】
【氏名】谷合 竜典
【審査官】山田 辰美
(56)【参考文献】
【文献】米国特許出願公開第2020/0050893(US,A1)
【文献】米国特許出願公開第2017/0262995(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00-7/90
(57)【特許請求の範囲】
【請求項1】
第1の画像のラベリングマップを受信し、
強化学習モデルを訓練する
プロセッサを含み、
前記ラベリングマップは、前記第1の画像に含まれる第1の関心領域と、第2の画像に含まれる第2の関心領域との間の空間的な関係を示し、
前記強化学習モデルは、少なくとも、前記ラベリングマップ、前記第1の画像、および前記第2の画像に基づいて、第1の画像に対し、更新されたラベリングマップを生成する
コンピューティングシステム。
【請求項2】
前記訓練された強化学習モデルは、複数の訓練画像を用いて訓練され、
各前記複数の訓練画像について前記訓練された強化学習モデルを訓練するとき、前記プロセッサは、
エージェントモジュールにおいて、1つまたは複数のエージェントパラメータを有するポリシー関数を、候補ラベリングマップ、前記訓練画像、および前記複数の訓練画像のうちの追加の訓練画像に適用することによって、少なくとも部分的に前記訓練画像と関連付けられる前記候補ラベリングマップの候補ラベリング更新アクションを決定し、
評価モジュールにおいて、前記候補ラベリングマップの評価メトリック値を決定し、
環境モジュールにおいて、
少なくとも前記候補ラベリングマップおよび前記候補ラベリング更新アクションに基づいて、更新された候補ラベリングマップを決定し、
前記候補ラベリング更新アクションおよび前記評価メトリック値に基づいて、報酬値を決定し、
更新モジュールにおいて、少なくとも、前記候補ラベリングマップ、前記候補ラベリング更新アクション、前記更新された候補ラベリングマップ、および前記報酬値の少なくとも一部に基づいて、前記エージェントモジュールの1つまたは複数のエージェントパラメータを変更する
請求項1に記載のコンピューティングシステム。
【請求項3】
前記候補ラベリングマップは、前記訓練画像の訓練関心領域と、追加の訓練画像の追加の訓練関心領域との候補空間的関係を含む
請求項2に記載のコンピューティングシステム。
【請求項4】
前記評価モジュールにおいて、前記プロセッサは、さらに、
手動で生成されたラベリングマップを受信し、
少なくとも、部分的に前記候補ラベリングマップと前記手動で生成されたラベリングマップとの差に基づいて、前記評価メトリック値を決定する
請求項2に記載のコンピューティングシステム。
【請求項5】
前記更新モジュールにおいて、前記プロセッサは、さらに、
前記複数の訓練画像に対応する複数のパラメータ更新サイクルにわたり、それらのパラメータ更新サイクルの前記環境モジュールにおいて決定された、前記それぞれの報酬値に基づいて、予測累積報酬値を決定し、
現在のパラメータ更新サイクルにおいて、前記予測累積報酬値を増加させる1つまたは複数のパラメータのそれぞれのパラメータ値を選択する
請求項2に記載のコンピューティングシステム。
【請求項6】
前記ラベリングマップは、それぞれ第1の画像の第1の関心領域と、第2の画像の第2の関心領域とに含まれる画素との間の複数のオプティカルフロー値のオプティカルフローマップである
請求項1に記載のコンピューティングシステム。
【請求項7】
前記ラベリングマップは、それぞれ、前記第1の画像の前記第1の関心領域および前記第2の画像の前記第2の関心領域に含まれる画素の複数の画素の位置の差の視差マップである
請求項1に記載のコンピューティングシステム。
【請求項8】
前記ラベリングマップは、それぞれ、前記第1の画像の前記第1の関心領域および前記第2の画像の前記第2の関心領域に含まれる複数の画素の空間的深度値の深度マップである
請求項1に記載のコンピューティングシステム。
【請求項9】
前記プロセッサは、さらに、
1つまたは複数の畳み込み層において、第1の関心領域の第1の特徴マップと、第2の関心領域の第2の特徴マップを生成する
請求項1に記載のコンピューティングシステム。
【請求項10】
前記第1の関心領域および前記第2の関心領域は、それぞれ、複数の空間的に隣接する画素を含む
請求項1に記載のコンピューティングシステム。
【請求項11】
前記プロセッサは、さらに、
複数のラベリングマップ更新サイクルにわたり、前記訓練された強化学習モデルにおいて、前記更新されたラベリングマップを、反復的に更新する、
請求項1に記載のコンピューティングシステム。
【請求項12】
前記訓練された強化学習モデルは、マルチエージェント強化学習モデルである
請求項1に記載のコンピューティングシステム。
【請求項13】
コンピューティングシステムで用いられる方法であって、
第1の画像のラベリングマップを受信し、
前記ラベリングマップは、前記第1の画像に含まれる第1の関心領域と、第2の画像に含まれる第2の関心領域との間の空間的な関係を示し、
訓練された強化学習モデルにおいて、少なくとも、前記ラベリングマップ、前記第1の画像、および前記第2の画像に基づいて、第1の画像に対し、更新されたラベリングマップを生成する
方法。
【請求項14】
さらに、少なくとも、
エージェントモジュールにおいて、1つまたは複数のエージェントパラメータを有するポリシー関数を、候補ラベリングマップ、訓練画像、および複数の訓練画像のうちの追加の訓練画像に適用することによって、少なくとも部分的に前記訓練画像と関連付けられる前記候補ラベリングマップの候補ラベリング更新アクションを決定し、
評価モジュールにおいて、前記候補ラベリングマップの評価メトリック値を決定し、
環境モジュールにおいて、
少なくとも前記候補ラベリングマップおよび前記候補ラベリング更新アクションに基づいて更新された候補ラベリングマップを決定し、
前記候補ラベリング更新アクションおよび前記評価メトリック値に基づいて、報酬値を決定し、
更新モジュールにおいて、少なくとも、前記候補ラベリングマップ、前記候補ラベリング更新アクション、前記更新された候補ラベリングマップ、および前記報酬値の少なくとも一部に基づいて、前記エージェントモジュールの1つまたは複数のエージェントパラメータを変更する、
ことにより、前記複数の訓練画像により複数の訓練された機械学習モデルを訓練する
請求項13に記載の方法。
【請求項15】
さらに、前記評価モジュールにおいて、手動で生成されたラベリングマップを受信し、
少なくとも、部分的に前記候補ラベリングマップと前記手動で生成されたラベリングマップとの差に基づいて、前記評価メトリック値を決定する
請求項14に記載の方法。
【請求項16】
さらに、前記更新モジュールにおいて、
前記複数の訓練画像に対応する複数のパラメータ更新サイクルにわたり、それらのパラメータ更新サイクルの前記環境モジュールにおいて決定された、それぞれの報酬値に基づいて、予測累積報酬値を決定し、
現在のパラメータ更新サイクルにおいて、前記予測累積報酬値を増加させる1つまたは複数のパラメータのそれぞれのパラメータ値を選択する
請求項14に記載の方法。
【請求項17】
前記ラベリングマップは、それぞれ第1の画像の第1の関心領域と、第2の画像の第2の関心領域とに含まれる画素との間の複数のオプティカルフロー値のオプティカルフローマップである
請求項13に記載の方法。
【請求項18】
前記ラベリングマップは、それぞれ、前記第1の画像の前記第1の関心領域および前記第2の画像の前記第2の関心領域に含まれる画素の複数の画素の位置の差の視差マップである
請求項13に記載の方法。
【請求項19】
前記ラベリングマップは、それぞれ、前記第1の画像の前記第1の関心領域および前記第2の画像の前記第2の関心領域に含まれる複数の画素の空間的深度値の深度マップである
請求項13に記載の方法。
【請求項20】
コンピューティングシステムは、1つまたは複数のプロセッサを含み、
複数の訓練画像を用いて、少なくとも前記訓練画像の一部により、訓練された強化学習モデルを生成し、
エージェントモジュールにおいて、1つまたは複数のエージェントパラメータを有するポリシー関数を、候補ラベリングマップ、前記訓練画像、および前記複数の訓練画像のうちの追加の訓練画像に適用することによって、少なくとも部分的に前記訓練画像と関連付けられる前記候補ラベリングマップの候補ラベリング更新アクションを決定し、
評価モジュールにおいて、前記候補ラベリングマップの評価メトリック値を決定し、
環境モジュールにおいて、
少なくとも前記候補ラベリングマップおよび前記候補ラベリング更新アクションに基づいて、更新された候補ラベリングマップを決定し、
前記候補ラベリング更新アクションおよび前記評価メトリック値に基づいて、報酬値を決定し、
更新モジュールにおいて、少なくとも、前記候補ラベリングマップ、前記候補ラベリング更新アクション、前記更新された候補ラベリングマップ、および前記報酬値の少なくとも一部に基づいて、前記エージェントモジュールの1つまたは複数のエージェントパラメータを変更し、
実行時において、
第1の画像のラベリングマップを受信し、
前記ラベリングマップは、第1の画像に含まれる第1の関心領域と、第2の画像に含まれる第2の関心領域との空間的関係を示し、
前記ラベリングマップは、オプティカルフローマップ、視差マップまたは、深度マップであって、
更新された強化学習モデルにおいて、少なくとも、前記ラベリングマップ、前記第1の画像、および前記第2の画像に基づいて、前記第1の画像の更新されたラベリングマップを生成する
コンピューティングシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像間の空間的関係をラベリングする強化学習モデルに関する。
【背景技術】
【0002】
コンピュータシステムが画像を解釈し、その内容を理解できるようにするコンピュータビジョン技術が開発された。たとえば、画像間の空間的関係を推定する技術が開発された。一例として、2つの時点で撮影された2つの画像から検出された特徴間のオプティカルフローを推定する技術が開発された。別の例として、シーンの両眼または多視点立体画像のペア間の差に基づいて深度を決定する技術が開発された。これらの技術は、異なる画像内の画素間の対応を推定するアルゴリズムを採用する。ただし、画素間の対応を推定すると、特に網羅的またはランダム化された検索方法が採用されている場合、かなりの計算時間とリソースが消費される。したがって、対応推定の効率を改善して、これらのタイプのコンピュータビジョン操作を実行する際の全体的な計算コストを削減するという技術的な課題が存在する。
【発明の概要】
【0003】
本開示の一態様によれば、第1の画像のラベリングマップを受信するプロセッサを含むコンピューティングシステムが提供される。ラベリングマップは、第1の画像に含まれる第1の関心領域と第2の画像に含まれる第2の関心領域との間の空間的関係を示し得る。訓練された強化学習モデルにおいて、プロセッサは、さらに、少なくともラベリングマップ、第1の画像、および第2の画像に基づいて、第1の画像の更新されたラベリングマップを生成し得る。
【0004】
この概要は、詳細な説明でさらに以下に説明される概念の選択を簡略化された形式で紹介するために提供される。この概要は、特許請求された主題の主要な特徴または本質的な特徴を特定することを意図したものではなく、特許請求された主題の範囲を制限するために使用されることを意図したものでもない。さらに、特許請求される主題は、本開示のいずれかの部分に記載された欠点のいずれかまたはすべてを解決する実装に限定されない。
【図面の簡単な説明】
【0005】
図1図1は、本開示の一実施形態に係る、画像ストリームの入力画像のペア間の空間的関係を推定し、それらの空間的関係を更新されたラベリングマップに記録するため、実行時に訓練された強化学習モデルを実行するプロセッサを含むコンピューティング システムの一例を概略的に示す。
図2図2は、図1のコンピューティングシステムの訓練された強化学習モデルで使用される畳み込みニューラルネットワークの一例を概略的に示す。
図3図3は、オプティカルフロー処理のために、図1のコンピューティングシステムによって処理され得る画像ストリームの第1の例を概略的に示す。
図4図4は、両眼または多視点立体画像化のために、図1のコンピューティングシステムによって処理され得る画像ストリームの第2の例を概略的に示す。
図5図5は、図1の実施形態による、訓練された強化学習モデルを訓練および生成する訓練時のプロセッサを概略的に示す。
図6図6は、図5の例に示されるように訓練された強化学習モデルを生成するときに発生し得る第1のパラメータ更新サイクルおよび第2のパラメータ更新サイクルを示す。
図7図7は、図1の実施形態に係る、複数のラベリングマップ更新サイクルを示す。
図8図8は、図1の実施形態に係る、プロセッサの視差マップの実行時ラベリング更新アクションの生成時のデータフローの一例を示す。
図9図9は、図1の実施形態に係る、プロセッサのオプティカルフローマップの実行時ラベリング更新アクションを生成する際のデータフローの一例を示す。
図10A図10Aは、図1の実施形態に係る、第1のカメラ、第2のカメラ、および第3のカメラが同じ物理的環境を同時に撮像する撮像構成の一例を示す。
図10B図10Bは、プロセッサが、図10Aの第1のカメラ、第2のカメラ、および第3のカメラから受信したそれぞれの画像を少なくとも部分的に使用することによる深度マップの実行時ラベリング更新アクションを生成する際のデータフローの一例を示す。
図11A図11Aは、図1の実施形態に係る、視差マップの一例を示す。
図11B図11Bは、図1の実施形態に係る、オプティカルフローマップの一例を示す。
図11C図11Cは、図1の実施形態に係る、第1の深度マップの例および第2の深度マップの例を示す。
図12A図12Aは、図1の実施形態に係る、更新されたラベリングマップを生成するためにコンピューティングシステムと共に使用する方法のフローチャートの一例を示す。
図12B図12Bは、訓練された強化学習モデルを生成し得る図12Aの方法の追加のステップを示す。
図12C図12Cは、図12Bの方法を実行するときに実施形態で実行され得る追加のステップを示す。
図12D図12Dは、図12Bの方法を実行するときに実施形態で実行され得る追加のステップを示す。
図13図1のコンピューティングシステムが実施され得るコンピューティング環境の概略図の一例を示す。
【発明を実施するための形態】
【0006】
上記の課題に対処するために、図1に概略的に示すように、コンピューティングシステム10が提供される。オプティカルフロー、視差、および深さなど、一組の画像の空間的関係を決定する従来のアプローチは、一般に、その解を決定論的アルゴリズムに依存するが、コンピューティングシステム10は、機械学習に基づく、アプローチ、特に強化学習に基づくアプローチを採用する。このアプローチでは、機械学習モデルを訓練して、通常は一組の画像間の画素単位で空間的な関係を予測する。空間的関係の画素ごとの予測は、以下で説明するように、強化学習手法を使用して更新および最適化されるラベリングマップに格納される。このようなアプローチを採用することにより、画像間の対応推定を計算する効率を改善できると考えられる。
【0007】
画素対応を検索する従来の方法には、徹底的な検索の実行、事前定義されたラベルのサブセットの検索の実行、現在割り当てられているラベルをランダムにかき乱し、画素の新しいラベルをテストして、新しいラベルがより正確に一致するかどうかを判断することにより、候補ラベルを生成する。ただし、これらの以前の方法は、多くの場合、計算効率が悪い。これに対し、本アプローチは強化学習を利用し、これを活用することで、例えば、異なる時間スケールに調整された注意メカニズムを提供し得る。これには、よりインテリジェントな結果として、より計算効率の高い画素対応の検索が可能になるという潜在的な利点がある。
【0008】
Lucas-Kanadeなどの他の既存のラベル付け方法は、割り当てられたラベルを時間の経過とともに段階的に更新することが含まれる。これらの既存の方法は、例えば、勾配降下法を使用し得る。しかし、これらの方法は、反復間のラベリング精度の短期的な改善のみを考慮しており、したがって、局所的な最適値に陥る可能性がある。これに対し、以下で論じるシステムおよび方法は、より長い複数のスケールの時間間隔を考慮し、それによってラベリング精度の改善を達成できる。
【0009】
コンピューティングシステム10は、プログラム命令を実行するプロセッサ12を含み得る。さらに、コンピューティングシステム10は、プロセッサ12によって実行可能な命令を格納し得るメモリ14を含み得る。メモリ14は、揮発性ストレージおよび/または不揮発性ストレージを含み得る。メモリ14が不揮発性記憶デバイスを含む場合、メモリ14は、プログラム命令に加えて他のデータをさらに格納し得る。いくつかの実施形態では、コンピューティングシステム10は、キーボード、マウス、タッチスクリーン、トラックパッド、マイクロフォン、光センサ、加速度計、または何らかの他のタイプの入力デバイス16などの1つまたは複数のそれぞれの入力デバイス16を含み得る。コンピューティングシステム10はまた、ディスプレイ、スピーカ、触覚フィードバックデバイス、または何らかの他のタイプの出力デバイス18など、1つまたは複数のそれぞれの出力デバイス18を含み得る。
【0010】
いくつかの実施形態では、コンピューティングシステム10の機能は、通信可能に結合された複数の物理コンピューティングデバイスにわたって分散され得る。例えば、コンピューティングシステム10は、ネットワークを介して1つまたは複数のクライアントコンピューティングデバイスと通信するように構成された1つまたは複数のサーバーコンピューティングデバイスを含み得る。いくつかの実施形態では、コンピューティングシステム10は、データセンターに配置された、通信可能に結合された複数のサーバーコンピューティングデバイスを含み得る。
【0011】
プロセッサ12は、以下で論じる技術を少なくとも第1の画像20および第2の画像30に適用し得る。例えば、第1の画像20および第2の画像30は、ビデオにおける連続フレームであり得る。別の例として、第1の画像20および第2の画像30は、異なる位置に配置されたそれぞれのカメラによって撮影された同じ3次元環境の画像であり得る。したがって、第1の画像20および第2の画像30は、異なる視点から撮影され得る。第1の画像20および第2の画像30はそれぞれ、それぞれの色値を有するそれぞれの複数の画素を含み得る。いくつかの実施形態では、以下に説明する技法を3つ以上の画像に適用し得る。
【0012】
第1の画像20および第2の画像30は、それぞれ、第1の関心領域22および第2の関心領域32を含み得る。第1の関心領域22および第2の関心領域32は、それぞれ複数の空間的に隣接した画素を含み得る。いくつかの実施形態では、第1の関心領域22および/または第2の関心領域32は画像全体であり得る。あるいは、第1の関心領域22および/または第2の関心領域32は、画像に含まれる複数の画素のサブセットであり得る。そのような実施形態では、第1の関心領域22および/または第2の関心領域32は、手動またはプログラムによる画像セグメンテーションを介して選択され得る。1つの特定のアプローチでは、図2に示されるように、関心領域ROIは、訓練された強化学習モデル50の畳み込みニューラルネットワーク(CNN)内の1つまたは複数の畳み込み層の配置によって選択され得る。例えば、第1の畳み込み層内のノードは、画素の3x3グリッドからの入力、および第2の畳み込み層のノードは、第1の畳み込み層の9つのノードから入力を受信し得、それによって、入力画像の画素の9x9グリッドで畳み込みを実行する。このように、強化学習モデル50の畳み込み層内のノードのトポロジーは、関心領域を定義し得る。関心領域を含む一例の9×9画素グリッドが図2に示されるが、画像全体が、畳み込み層内の様々なノードによって同時に並行して処理される複数の関心領域から構成されることを理解されたい。畳み込み層の出力は、2次元の特徴ベクトルである。さらに、いくつかの実施形態では、畳み込み層によって形成されたニューラルネットワークは、画像内のコーナー、エッジなどの視覚的特徴を認識するように事前訓練され得る。
【0013】
図1に戻ると、プロセッサ12は、第1の画像20のラベリングマップ40を受信し得る。一連の一組の画像の第1の一組の画像において、ラベリングマップ40は初期値状態に設定され得る。初期値状態は、ランダムに選択され、ゼロまたはその他の所定の値に設定されるなどである。図1の処理ループを通過するたびに、ラベリングマップ40の値が更新される。ラベリングマップ40は、第1の画像20に含まれる第1の関心領域22と第2の画像30に含まれる第2の関心領域32との間の空間的関係を示し得る。いくつかの実施形態では、ラベリングマップ40は、第1の画像20の第1の関心領域22および画像の第2の関心領域32にそれぞれ含まれる画素間の複数のオプティカルフロー値45のオプティカルフローマップ44であり得る。オプティカルフローマップ44は、第1の画像20と第2の画像30が、たとえば時間t0とt1で撮影されたビデオの連続フレームである実施形態で使用され得る。そのような実施形態では、各オプティカルフロー値45は、t0でキャプチャされた第1の関心領域22に含まれる画素と、t1でキャプチャされた第2の関心領域32に含まれる対応する画素との間の2次元変位ベクトルであり得る。画素間の対応は、例えば畳み込みニューラルネットワーク層を用いて、画素および場合によっては周囲の画素によって表される視覚的特徴を識別することによって決定され得る。畳み込みニューラルネットワーク層を使用してt0でキャプチャされた最初の画像でそのような特徴のポイントオブクラウドを決定し、最初の画像でポイントクラウドを構成する特徴がt1でキャプチャされた2番目の画像で移動した場所を追跡することにより、画素単位のオプティカルフローベクトルフィールドは、2つの画像間で決定し得る。オプティカルフローを決定するための従来のアプローチには、たとえば、ルーカスカナデ法やホーンシュンク法などの決定論的アルゴリズムの使用が含まれる。そのような決定論的アルゴリズムとは対照的に、ここで開示される実施形態は、強化学習を使用してモデル50を訓練し、第2の画像を第1の画像に修正する変換Tを計算し、次いで、修正された第2の画像と第1の画像との間のミスアライメントを最小限に抑える。図3は、オプティカルフロー画像処理で使用される画像ストリームの例を示す。処理中、一組の入力画像の第1および第2の画像は、一連の画像を進むローリングウィンドウによって選択されることが理解されよう。したがって、第1および第2の画像は、図1の処理ループを通る第1のパスの一組の入力画像を含み得、第2および第3の画像は、処理ループを通る第2のパスの一組の入力画像を含み得る。
【0014】
あるいは、図1に戻ると、ラベリングマップ40は、第1の画像20の第1の関心領域22および第2の関心領域にそれぞれ含まれる画素間の複数の画素視差値47の視差マップ46であり得る。オプティカル フローの例における第1および第2の画像は通常、異なる時点でキャプチャされ、この例における第1および第2の画像は通常、同じ(またはほぼ同じ)時間にキャプチャされるが、静止シーンの場合、必ずしもそうではない。視差マップ46は、例えば、第1の画像20および第2の画像30が異なる視点から典型的には同時に撮影された同じ3次元シーンの画像である立体視構成において使用され得る。視差マップ内の各画素には、第1の画像内のその画素と、同じ視覚的特徴を含む、または含まれる2番目の画像内の対応する画素との間の距離を示す値が割り当てられる。この値は、黒(ゼロ視差/ゼロ強度)から白(最大視差/最大強度)までの範囲の画素強度として視覚化し得る。画像化されたシーンの前景にあるオブジェクトは、立体画像化システム内の各カメラ(たとえば、右カメラ、左カメラ)の異なるカメラ姿勢の視差効果により、視差が大きくなる傾向があり、したがって視覚的により明るい強度で表されるが、遠くにあるオブジェクトはより低い視差を持つ傾向があるため、より暗い強度で表される。換言すると、第1の関心領域22内の各画素について、視差マップ46は、その画素の強度値を介して、その画素と第2の関心領域内の対応する画素との間の画素位置の差(すなわち、視差)を示し得る。視差マップを使用して、例えば、深さ=ベースライン×焦点/視差の関係を使用することによって、画像内の画素の深さを決定できることが理解されよう。
【0015】
図1に続き、さらに別の代替として、ラベリングマップ40は、第1の画像20の第1の関心領域22および第2の画像30の第2の関心領域32にそれぞれ含まれる画素の複数の空間的深度値49の深度マップ48であり得る。画素の空間的深度値49は、その画素について計算されたスカラー深度座標値であり得る。いくつかの実施形態では、深度マップ48は、第1の画像20と第2の画像30の両方に基づいて計算し得る。深度マップ48は、例えば、同じ三次元シーンの3つ以上の画像が3つ以上のそれぞれの画像センサからプロセッサ12で受信される実施形態で使用され得る。そのような実施形態では、プロセッサ12は、一組の画像に対応する複数のラベリングマップ48を受信し得る。図4は、上述の両眼または多視点立体撮像で使用するための例示的な入力ストリームを示す。この例では、共通の瞬間に撮影された3枚(またはそれ以上)の画像の一組またはタプルを入力画像とする。
【0016】
図1に戻り、第1の画像20、第2の画像30、およびラベリングマップ40を受け取ることに続いて、プロセッサ12はさらに、少なくともラベリングマップ40、第1の画像20、および第2の画像30に基づいて第1の画像20の更新されたラベリングマップ60を生成し得る。更新されたラベリングマップ60は、訓練された強化学習モデル50で生成され得る。更新されたラベリングマップ60は、例えば、訓練された強化学習モデル50が後述するようにエピソード内で循環する際に、第1の関心領域22および第2の関心領域32についてラベリングマップ40が示す空間的関係をより正確に反映するように学習済み強化学習モデル50によって更新されたラベリングマップのバージョンであってもよい。訓練された強化学習モデル50は、以下でさらに説明するように、エージェントモジュール110および環境モジュール130を含む。エージェントモジュール110は、いくつかの形態をとることができ、通常、それぞれが入力層、1つまたは複数の隠れ層、および出力層を有する1つまたは複数のニューラルネットワークを含む1つまたは複数のニューロンを含み得る。入力層、出力層、および1つまたは複数の隠れ層のそれぞれは、それぞれのニューロン重みによって他の層のニューロンに接続された。重み自体は、訓練中に勾配降下バックプロパゲーションまたはその他の手法によって計算し得る。
【0017】
図1では、一例として、エージェントモジュール110は、視差マップ更新エージェントとして構成されて示される。視差マップ更新エージェントは、図8で詳細に示され、右画像IR (参照画像)、左画像IL、および現在の学習マップLtの3つの入力チャネルを含む。同様に、訓練された特徴抽出CNNは、左右の画像のそれぞれを入力とし、たとえば、各画素位置で識別される視覚的特徴の2次元配列であり得る、それぞれの特徴ベクトルFLおよびFRを生成する。特徴ベクトルFRは、現在のラベリングマップLtを使用してFRに変換を実行することにより、FLで修正され(つまり、各ベクトル内の特徴の画素単位の位置が対応付けられます)、これにより、修正された特徴ベクトルF'Rが生成される。別のCNNが学習マップLtを入力として受け取り、特徴ベクトルFLtを生成する。3つの特徴ベクトルは連結され、第4のCNNへの入力として供給され、第4のCNNはアクションベクトルを出力し、環境モジュール130の遷移モジュール131に渡され、現在のラベリングマップLtに対してアクションを実行して、ここで、更新されたラベリングマップ60と称するLt+1を生成する。視差マップ更新エージェントの追加の詳細は、図8に関連して以下で説明される。あるいは、エージェントモジュール110は、図9に示されるようなオプティカルフローマップ更新エージェント、図10Aおよび図10Cに示されるマルチステレオビュー深度マップ更新エージェント、または、他のタイプの空間的関係マップ更新エージェント、として構成されて得る。
【0018】
訓練された強化学習モデル50に使用され得る強化学習モデルの例示的なタイプは、ディープQネットワーク(DQN)、非同期アクタークリティック(A2C)、非同期アドバンテージアクタークリティック(A3C)、近接ポリシー最適化(PPO)を含む。他の強化学習モデルの種類、または上記の種類の組み合わせを、訓練された強化学習モデル50として代替的に使用し得る。
【0019】
更新されたラベリングマップ60が生成された後、プロセッサ12は、更新されたラベリングマップ60を出力するようにさらに構成され得る。この出力は、別のソフトウェアプログラムによって、または1つ以上の出力デバイス18を介して使用されるメモリロケーションにあり得る。出力は通常、強化学習エピソードの終了後など、処理の適切なタイミングで発生する。通常、強化学習エピソード内の各段階で、更新されたラベリングマップ60は、図示されるように、次の処理ループのために現在のラベリングマップ40に設定される。エピソードが終了すると、更新されたラベリングマップ60が出力され得る。出力の例として、更新されたラベリングマップ60の出力は、たとえば、参照入力画像の各画素の深度、視差、またはオプティカルフローの値を計算するための処理において更新されたラベリングマップ60を処理に利用する下流のソフトウェアプログラムに、典型的にはメモリロケーションでのストレージを介して送信されるファイルまたはデータ構造であり得る。ダウンストリームソフトウェアプログラムは、カメラからのリアルタイム画像を分析するように構成された、または保存された画像を分析するように構成されたコンピュータビジョンプログラムであり得る。追加または代替として、プロセッサ12は、更新されたラベリングマップ60のグラフィカル表現を生成し、グラフィカルユーザインターフェース(GUI)上に表示するためにグラフィカル表現を出力するように構成され得る。さらに、コンピューティングシステム10が1つまたは複数のサーバーコンピューティングデバイスを含む実施形態では、プロセッサ12は、更新されたラベリングマップを1つまたは複数のクライアントコンピューティングデバイスおよび/または他のサーバーコンピューティングデバイスに伝達し得る。
【0020】
プロセッサ12は、図6に示されるように、訓練された強化学習モデル50を訓練し得る。訓練された強化学習モデル50は、複数の訓練画像104を使用して訓練され得る。各訓練画像104は、1つ以上のそれぞれの訓練関心領域105を有し得、訓練された強化学習モデル50を訓練する前に、手動またはプログラムによって識別され得る。訓練された強化学習モデル50を訓練するとき、複数の訓練画像104のそれぞれについて、プロセッサ12は、エージェントモジュール110に訓練画像104を入力するように構成され得る。エージェントモジュール110は、第1の訓練画像104の1つまたは複数の訓練関心領域105と追加の訓練画像106の1つまたは複数の対応する追加の訓練画像との間の候補空間的関係を示す候補ラベリングマップ102を受信するようにさらに構成され得る。例えば、候補ラベリングマップ102は、オプティカルフローマップ、視差マップ、深度マップのいずれかであり得る。
【0021】
エージェントモジュール110において、プロセッサ12は、訓練画像104に関連付けられた候補ラベリングマップ102の候補ラベリング更新アクション118を決定するようにさらに構成され得る。候補ラベリング更新アクション118は、候補ラベリングマップ102に対する変更であり得る。プロセッサ12は、1つまたは複数のエージェントパラメータ114を有するポリシー関数112を候補ラベリングマップ102、訓練画像104、および追加の訓練画像108に適用することによって、候補ラベリング更新アクション118を少なくとも部分的に決定するように構成され得る。ポリシー関数112は、訓練される過程にある機械学習モデルに含まれるニューロンの層構造およびニューロン重みを符号化し得る。
【0022】
評価モジュール120において、プロセッサ12は、候補ラベリングマップ102の評価メトリック値122を決定するようにさらに構成され得る。訓練画像104および/または追加の訓練画像106は、評価メトリック値122を決定する際、評価モジュール120への入力としてさらに使用され得る。例えば、候補ラベリングマップ102が視差マップである場合、評価メトリック値122は、以下の式によって与えられ得る。
【数1】
この式において、Eは評価メトリック値122であり、Ltは現在の候補ラベリングマップ102であり、ILおよびIRはそれぞれ左画像および右画像の画素値の配列を含む画像であり、pは候補関心領域105の中に含まれる画素である。IR'は、候補ラベリングマップLtを右画像IRに適用して、右画像IR内の特徴の位置を、左画像ILのそれらの特徴の対応する位置と位置合わせて、変換または修正された右画像である。
【0023】
候補ラベリングマップが視差マップではなく深度マップである実施形態では、画素視差値の代わりに深度値を用いて上記の式を使用し得る。深度マップが生成されると、視差マップを深度マップに個別に変換するダウンストリーム処理の必要性がなくなる。候補ラベリングマップがオプティカルフローマップである実施形態では、画素視差値の代わりにオプティカルフローベクトルと共に上記式を使用し得る。
【0024】
いくつかの実施形態では、評価モジュール120において、プロセッサ12は、さらに手動で生成されたラベリングマップ124を受信するように構成され得る。プロセッサ12は、さらに、少なくとも、候補ラベリングマップ102と手動で生成されたラベリングマップ124との差の一部に基づいて評価メトリック値122を決定するように構成され得る。例えば、評価メトリック値122について以下の方程式を使用し得る。
【数2】
この式において、L*は、手動で生成されたラベリングマップ124である。上記式におけるLtおよびL*の値は、ラベリングマップが視差マップである場合の視差値、またはラベリングマップが深度マップである場合の深度値であり得る。ラベリングマップがオプティカルフローマップである場合、LtおよびL*の値はオプティカルフローベクトルであり得る。
【0025】
評価メトリック値122の上記式はそれぞれ、候補ラベリングマップ102のそれぞれの誤差量を示す。他の実施形態では、上記の2つの例以外の評価メトリック値122の式を使用し得る。
【0026】
プロセッサ12は、環境モジュール130において、少なくとも候補ラベリングマップ102および候補ラベリング更新アクション118に基づいて、更新された候補ラベリングマップ132を決定するようにさらに構成され得る。プロセッサ12は、候補ラベリング更新アクション118を候補ラベリングマップ102に適用することによってこの決定を行い得る。例えば、候補ラベリングマップ102および候補ラベリング更新アクション118が共に行列として示される実施形態では、プロセッサ12は、候補ラベリング更新アクション118を候補ラベリングマップ102に追加するように、または候補ラベリング更新アクション118または候補ラベリングマップ102とともに他の操作を実行するように構成され得る。あるいは、プロセッサ12は、候補ラベリング更新アクション118を候補ラベリングマップ102で乗算して、更新された候補ラベリングマップ132を取得するように構成され得る。
【0027】
他の実施形態では、プロセッサ12は、代替的に、候補ラベリングマップ102を参照せずに、更新された候補ラベリングマップ132を決定し得る。例えば、ポリシー関数112が連続して視差をa=p(x)として出力し、p(x)=CNN(x)+xが現在の視差マップ46とCNNで推定された残差マップ(residual map)との和であるとき、プロセッサ12は、環境モジュール130で候補ラベリングマップを使用せずに、aを決定し得る。
【0028】
環境モジュール130において、プロセッサ12は、さらに、候補ラベリング更新アクション118および評価メトリック値122に基づいて報酬値134を決定し得る。例えば、報酬値134は、候補ラベリングマップ102の評価メトリック値122と更新された候補ラベリングマップ132に対して計算された更新された評価メトリック値の差に等しくなり得る。更新された評価メトリック値は、例えば、評価メトリック値122を計算するために使用されたのと同じ方程式を使用して計算し得る。
【0029】
更新モジュール140において、プロセッサ12は、候補ラベリングマップ102、候補ラベリング更新アクション118、更新された候補ラベリングマップ、および報酬値134に少なくとも部分的に基づいて、エージェントモジュール110の1つまたは複数のエージェントパラメータ114を変更し得る。したがって、訓練画像104、候補ラベリングマップ102、候補ラベリング更新アクション118、更新された候補ラベリングマップ132、および報酬値134ごとに、経験のタプルを形成し得る、ポリシー関数112によって示されるニューロンの重みが、更新される。
【0030】
いくつかの実施形態では、プロセッサ12は、さらに、予測累積報酬値152を決定し得る。図6は、候補ラベリングマップ102A、訓練画像104A、および追加の訓練画像106Aに基づいてエージェントモジュール110Aが更新される第1のパラメータ更新サイクル150Aを示す。図6の例では、エージェントモジュール110Aはポリシー関数112Aを有する。エージェントモジュール110Aにおいて、プロセッサ12は、訓練画像104A、追加の訓練画像106A、および候補ラベリングマップ102Aをポリシー関数112Aに入力することによって候補ラベリング更新アクション118Aを生成する。さらに、評価モジュール120において、プロセッサ12は、少なくとも候補ラベリングマップ102Aに基づいて評価メトリック値122Aを決定する。候補ラベリング更新アクション118Aおよび評価メトリック値122Aに基づいて、プロセッサ12は、さらに、報酬値134Aを決定する。さらに、環境モジュール130において、プロセッサ12は、更新された候補ラベリングマップ132Aを決定し得る。
【0031】
更新モジュール140において、プロセッサ12は、各報酬値134を合計することによって、予測累積報酬値152Aを追跡し得る。更新モジュールにおいて、プロセッサ12は、さらに、予測累積報酬値152Aに少なくとも部分的に基づいてポリシー関数112Aを更新する1つまたは複数の更新されたエージェントパラメータ114を決定し得る。図5を参照して上述したように、1つまたは複数の更新されたエージェントパラメータ114Aは、候補ラベリングマップ102A、候補ラベリング更新アクション118A、および更新された候補ラベリングマップ132Aにさらに基づくことができる。
【0032】
図6は、さらに、第2のパラメータ更新サイクル150Bを示す。第2のパラメータ更新サイクル150Bは、第1のパラメータ更新サイクル150Aで使用されたものとは異なる訓練画像104B、追加の訓練画像106B、および候補ラベリングマップ102Bを使用して実行される。第2のパラメータ更新サイクル150Bで使用されるエージェントモジュール110Bは、ポリシー関数112Bに含まれる第1のパラメータ更新サイクル150A中に生成された更新されたエージェントパラメータ114Aを有する。エージェントモジュール110Bは、訓練画像104B、追加の訓練画像106B、および候補ラベリングマップ102Bに基づいて、候補ラベリング更新アクション118Bを生成し得る。さらに、評価モジュール120において、プロセッサ12は、少なくとも候補ラベリングマップ102Bに基づいて評価メトリック値122Bを生成し得る。候補ラベリング更新アクション118Bおよび評価メトリック値122Bに基づいて、プロセッサ12は、報酬値134Bを決定し得る。さらに、環境モジュール130において、プロセッサ12は、更新された候補ラベリングマップ132Bを決定し得る。
【0033】
更新モジュール140において、プロセッサ12は、さらに、第1のパラメータ更新サイクル150Aからの予測累積報酬値152Aに報酬値134Bを加算することによって、予測累積報酬値152Bを決定し得る。更新モジュール140において、プロセッサ12は、さらに、ポリシー関数112Bを更新するために使用され得、1つまたは複数の更新されたエージェントパラメー114Bを生成し得る。したがって、複数の訓練画像104に対応する複数のパラメータ更新サイクル150A、150Bにわたって、プロセッサ12は、それらのパラメータ更新サイクル150A、150Bにおいて環境モジュール130で決定されたそれぞれの報酬値134に基づいて、予測累積報酬値152を決定し得る。いくつかの実施形態では、プロセッサ12は、現在のパラメータ更新サイクル150 A、150Bにおいて予測累積報酬値152を増加させる1つまたは複数のエージェントパラメータ114のそれぞれのパラメータ値を選択し得る。これにより、プロセッサ12は、エージェントモジュール110が次第に正確に更新された候補ラベリングマップ132を生成することを可能にするエージェントモジュール110のエージェントパラメータ114を選択し得る。訓練が完了したとき(例えば、複数の訓練画像104の各訓練画像104についてパラメータ更新サイクルが実行されたとき)、エージェントモジュール110は、訓練された強化学習モデル50として使用され得る。
【0034】
図5に戻り、訓練された強化学習モデル50は、複数のエージェントモデル110を含むマルチエージェント強化学習モデルであり得る。訓練された強化学習モデル50がマルチエージェント強化学習モデルである実施形態では、プロセッサは、複数の訓練画像104を使用して各エージェントモジュール110を訓練し得る。各エージェントモジュール110は、異なるポリシー関数112を有し得る。いくつかの実施形態では、複数のエージェントモデル110は、分散学習を介して別個のコンピューティングデバイスで訓練され得る。以下でさらに詳細に説明するように、実行時に、プロセッサ12は、エージェントモデル110を順次適用してラベリングマップ40を更新し得る。
【0035】
いくつかの実施形態では、図7に示されるように、プロセッサ12は、複数のラベリングマップ更新サイクルにわたって、訓練された強化学習モデル50で更新されたラベリングマップ60を反復的に更新するようにさらに構成され得る。図7に示される第1のラベリングマップ更新サイクル70Aでは、第1の画像20、第2の画像30、およびラベリングマップ40が訓練された強化学習モデル50に入力される。これらの入力から、訓練された強化学習モデルは、第1の更新されたラベリングマップ60Aを生成する。第2のラベリングマップ更新サイクル70Bでは、第1の画像20、第2の画像30、および第1の更新されたラベリングマップ60 Aが、訓練された強化学習モデル50の入力として使用され、第2の更新されたラベリングマップ60Bを生成する。第3のラベリングマップ更新サイクル70Cでは、第1の画像20、第2の画像30、および第2の更新されたラベリングマップ60Bが、訓練された強化学習モデル50の入力として使用され、第3の更新されたラベリングマップ60Cを生成する。1つまたは複数の追加のラベリングマップ更新サイクルも実行し得る。ラベリングマップ40を繰り返し更新することにより、プロセッサ12は、所与の強化学習エピソードについて最終的に更新されたラベリングマップ60の精度を高め得る。いくつかの実施形態では、プロセッサ12は、異なるポリシー関数112を有する複数の異なるエージェントモデル110を使用して、対応するラベリングマップ更新サイクルでラベリングマップ40を更新し得る。このサイクルは、処理中の一連の画像の入力画像のペアまたはタプルごとに繰り返される。
【0036】
図8は、プロセッサ12がラベリングマップ40を更新し得る実行時ラベリング更新アクション218を生成するときのデータフロー200の一例を示す。図8の例では、ラベリングマップ40は視差マップ246である。視差マップ246は、両眼視構成において、左カメラによって撮影された左参照画像202と右カメラによって撮影された右参照画像204との間の複数の画素座標差を示す。図8の例では、プロセッサ12は、第1の関心領域22の第1の特徴マップ220および第2の関心領域32の第2の特徴マップ222を1つまたは複数の畳み込み層で生成する。図8の例では、第1の関心領域22は左参照画像202全体であり、第2の関心領域32は右参照画像204全体である。第1の特徴マップ220は、第1のCNNの複数の第1の畳み込み層210で生成され、第2の特徴マップ222は、第2のCNNの複数の第2の畳み込み層212で生成される。第1の特徴マップ220は、複数の画素を含む1つまたは複数の特徴を示し得、さらに、左参照画像202内のこれらの特徴のそれぞれの位置を示し得る。1つまたは複数の特徴は、例えば、エッジ、コーナー、またはテクスチャ要素であり得、通常、必ずしもスケール不変ではない。
【0037】
第2の特徴マップ222は、1つまたは複数の第2の畳み込み層212で少なくとも部分的に生成され得る。第2の特徴マップ222を生成することは、視差マップ246を使用して、1つまたは複数の第2の畳み込み層212の出力を変換することをさらに含み得る。この変換は、1つまたは複数の第2の畳み込み層212で検出された右参照画像204内の1つまたは複数の特徴の1つまたは複数のそれぞれの位置を、1つまたは複数の第1の畳み込み層210で検出された左参照画像202内の1つまたは複数の特徴の1つまたは複数のそれぞれの位置にマッピングする線形変換であり得る。
【0038】
プロセッサ12は、第3のCNNの1つまたは複数の第3の畳み込み層214で視差マップ246の視差特徴マップ224を生成し得る。例えば、視差特徴マップ224は、左参照画像202または右参照画像204の1つまたは複数の閉じられた領域を示し得る。視差特徴マップ224は、追加的または代替的に、境界固守情報(boundary adherence information)、滑らかさまたはノイズのレベル、または視差マップ246から抽出された特徴情報を示しうる。第1の特徴マップ220、第2の特徴マップ222、および視差特徴マップ224に基づいて、プロセッサ12は、連結特徴マップ(concatenated feature map)230を生成し得る。連結特徴マップ230は、第1の特徴マップ220、第2の特徴マップ222、および視差特徴マップ224に含まれる特徴のそれぞれを示し得る。
【0039】
第4のCNNの複数の第4の畳み込み層232において、プロセッサ12は、連結された特徴マップ230から実行時ラベリング更新アクション218を生成し得る。実行時ラベリング更新アクション218は、いくつかの実施形態において、ラベリングマップ40と同じ出力変数空間を有する関数であり得る。他の実施形態では、実行時ラベリング更新アクション218は、カテゴリ変数値を出力するように構成され得る。例えば、第1の関心領域22に含まれる各画素について、実行時ラベリング更新アクション218は、セット{0、1、2}から選択された値を出力し得る。この例では、0は画素の視差値を一定に保持する命令であり得、1は画素の視差値を1増やす命令であり得、2は画素の視差値から1を減算する命令であり得る。他の実施形態では、実行時ラベリング更新アクション218の出力として、他のカテゴリ変数を使用し得る。いくつかの実施形態では、複数の連続変数またはカテゴリ変数の連結、またはそれらのいくつかの組み合わせは、実行時ラベリング更新アクション218の出力であり得る。
【0040】
図9は、ラベリングマップ40がオプティカルフローマップ344である場合に、プロセッサ12が実行時ラベリング更新アクション318を生成するデータフロー300の別の例を示す。図9の一例は、ビデオの連続するフレームである第1のフレーム画像302および第2のフレーム画像304である。図8の例のように、第1のCNNの第1の畳み込み層310で第1のフレーム画像302から第1の特徴マップ320を生成し得る。さらに、第2のフレーム画像304を第2のCNNの第2の畳み込み層312に入力し得、第2の畳み込み層312の出力をオプティカルフローマップ344で変換して、第2の特徴マップ322を生成し得る。オプティカルフロー特徴マップ324は、また、第3のCNNの1つまたは複数の第3の畳み込み層314でオプティカルフローマップ344から生成し得る。プロセッサ12は、さらに、第1の特徴マップ320、第2の特徴マップ322、およびこれらの特徴マップのそれぞれに示された特徴を含むオプティカルフロー特徴マップ324から、連結された特徴マップ330を生成し得る。次に、プロセッサ12は、連結された特徴マップ330を第4のCNNの1つまたは複数の第4の畳み込み層332に入力して、実行時ラベリング更新アクション318を生成し得る。
【0041】
図10Aは、第1のカメラ16A、第2のカメラ16B、および第3のカメラ16Cが、異なる視点から同じ物理環境450を同時に撮像する撮像構成400の一例を示す。第1のカメラ16Aは第1の画像402をプロセッサ12に出力し、第2のカメラ16Bは第2の画像404をプロセッサ12に出力し、第3のカメラ16Cは第3の画像406をプロセッサに出力し得る。第1のカメラ16A、第2のカメラ16B、および第3のカメラ16Cのそれぞれは、RGBカメラ、赤外線カメラ、深度カメラ、または任意の他の適切なタイプのカメラであり得る。
【0042】
プロセッサ12はさらに、第1のカメラ16Aに対する第2のカメラ16Bの位置および向きを示す第1の姿勢行列403と、第1のカメラ16Aに対する第3のカメラ16Cの位置および向きを示す第2の姿勢行列405とを決定し得る。いくつかの実施形態では、カメラのそれぞれの位置および向きは、カメラに近接して配置された1つまたは複数のそれぞれの追加のセンサから受信したデータに基づいて決定され得る。例えば、1つまたは複数の追加のセンサは、ジャイロスコープ、加速度計、全地球測位センサ、磁場センサ、または何らかの他のタイプの位置または方向センサのうちの1つまたは複数を含み得る。
【0043】
追加または代替として、プロセッサ12は、画像で検出された1つまたは複数の特徴に基づいて、第1の姿勢行列403および/または第2の姿勢行列405を生成し得る。そのような実施形態では、第1の姿勢行列403および/または第2の姿勢行列405は、ラベリングマップ40に基づいて推定され得る。プロセッサ12が複数の更新サイクルにわたってラベリングマップ40を反復的に更新する実施形態では、プロセッサ12は、第1の姿勢行列403および/または第2の姿勢行列405の推定値を更新し得る。
【0044】
以下でさらに詳細に論じるように、プロセッサ12は、更新されたラベリングマップ60を生成するときに、第1の画像402、第2の画像404、第3の画像406、第1の姿勢行列403、および第2の姿勢行列405を入力として使用し得る。さらに、プロセッサ12は、さらに、入力としてカメラパラメータ行列408を使用し得る。カメラパラメータ行列408は、焦点距離、スキュー係数、および主点を含む、カメラの1つまたは複数の固有の特性を示し得る。図10Aの一例では、第1のカメラ16A、第2のカメラ16B、および第3のカメラ16Cは、同じカメラパラメータ行列408によって表される、実質的に同じ固有の特性を有する。他の実施形態では、各カメラは、対応するカメラパラメータ行列408を有し得る。
【0045】
図10Bは、プロセッサ12が、図10Aの第1の画像402、第2の画像404、および第3の画像406に示される物理環境450に位置する1つまたは複数のオブジェクトの複数の深度値を示す深度マップ448の実行時ラベリング更新アクション418を生成するときのデータフロー440の一例を示す。第1のCNNの1つまたは複数の第1の畳み込み層410で、プロセッサ12は、さらに、第1の画像402の第1の特徴マップ420を生成するように構成され得る。プロセッサ12は、第2の画像404、第1の姿勢行列403、およびのカメラパラメータ行列408を、第2のCNNの1つまたは複数の第2の畳み込み層412のための入力として使用し得る。プロセッサ12はさらに、1つまたは複数の第2の畳み込み層412の出力を深度マップ448で変換して、第2の特徴マップ422を生成し得る。同様に、プロセッサ12は、さらに、第3の画像406、第2の姿勢行列405、およびカメラパラメータ行列408を、第3のCNNの1つまたは複数の第3の畳み込み層414の入力として使用し得る。プロセッサ12はさらに、深度マップ448を用いて1つまたは複数の第3の畳み込み層414の出力を変換して、第3の特徴マップ424を生成し得る。プロセッサ12はさらに、第4のCNNの1つまたは複数の畳み込み層146で深度特徴マップ426を生成する。第1の特徴マップ420、第2の特徴マップ422、第3の特徴マップ424、および深度特徴マップ426から、プロセッサ12はさらに、特徴マップで示される各特徴を含む連結された特徴マップ430を生成するように構成され得る。次いで、連結された特徴マップ430は、第5のCNNの1つまたは複数の第5の畳み込み層432に入力され得、そこでプロセッサ12は、実行時ラベリング更新アクション418を生成し得る。
【0046】
図11Aは、それぞれ左画像および右画像である第1の画像20および第2の画像30の視差マップ240の一例を示す。例えば、第1の画像20および第2の画像30は、図8の左参照画像202および右参照画像204であり得る。図11Aの視差マップ240の一例では、第1の画像20は、左画像の第1の特徴244Aおよび左画像の第2の特徴246Aを含む。同様に、第2の画像30は、右画像の第1の特徴244Bおよび右画像の第2の特徴246Bを含む。図11Aの例における各特徴は、複数の画素を含む。視差マップ240は、左画像の第1の特徴244Aと右画像の第1の特徴244Bとの間の第1の空間的関係242Aを示し、図11Aで、左画像の第1の特徴244Aに含まれる画素から右画像では、第1の特徴に含まれる対応する画素を指す複数のベクトルとして示される。さらに、視差マップ240は、左画像の第2の特徴246 Aと右画像の第2の特徴246Bとの間の第2の空間的関係242Bを示す。図11Aの例では、第1の空間的関係242Aおよび第2の空間的関係242Bは、それぞれの特徴の左方向へのシフトである。第1の空間的関係242Aおよび第2の空間的関係242Bは、それぞれ、画像ペアの右画像および左画像のそれぞれにおける対応する画素間のユークリッド距離を表すユークリッド距離値(すなわち、描かれたベクトルのスカラー値)である。これらのユークリッド距離値は、たとえば、暗い強度値は視差が小さいことを示し、明るい値は視差が大きいことを示すように、対応する画素単位の強度値によって視覚的に表現し得る。
【0047】
図11Bは、それぞれビデオの第1のフレームおよびビデオの第2のフレームである第1の画像20および第2の画像30のオプティカルフローマップ340の一例を示す。例えば、第1の画像20及び第2の画像30は、図3に示す第1のフレーム画像302及び第2のフレーム画像304であり得る。図11Bのオプティカルフローマップ340の一例では、第1の画像20は、第1のフレームの第1の特徴344Aおよび第2のフレームの第1の特徴346Aを含む。第2の画像30は、第2のフレームの第1の特徴344Bおよび第2のフレームの第2の特徴346Bを含む。オプティカルフローマップ340の一例は、第1フレームの第1の特徴344Aと第2フレームの第1の特徴344Bとの間の第1の空間的関係342Aと、第1フレームの第2の特徴346Aと第2フレームの第2の特徴346Bとの間の第2の空間的関係342Bを示す。第1の空間的関係342Aおよび第2の空間的関係342Bはそれぞれ、第1の画像20内の画素と第2の画像30内の対応する画素との間の複数のオプティカルフローベクトルを含み得る。
【0048】
図11Cは、第1の画像402および第2の画像404に対する第1の深度マップ440Aと、第1の画像402および第3の画像406に対する第2の深度マップ440Bとを示す。第1の深度マップ440Aは、各画素に対するそれぞれの深度値を示し得、第1の画像402に対する第2の画像404内のそれらの画素のそれぞれの変位に基づいて計算され得る。同様に、第2の深度マップ440Bは、第3の画像400に含まれる画素のそれぞれの深度値を示し得、第1の画像402に対する第3の画像406内のそれらの画素のそれぞれの変位に基づいて計算され得る。第1の画像402は、第1の画像の第1の特徴444Aおよび第1の画像の第2の特徴446Aを含み、第2の画像404は、第2の画像の第1の特徴444Bおよび第2の画像の第2の特徴446Bを含み、第3の画像406は、第3の画像の第1の特徴444Cおよび第2の画像446 Cを含む。第1の深度マップ440Aは、第1の画像の第1の特徴444Aと第2の画像の第1の特徴444Bとの間の第1の空間的関係442A、および第1の画像の第2の特徴446Aと第2の画像の第2の特徴446Bとの間の第2の空間的関係442Bを示す。さらに、第2の深度マップ440Bは、第1の画像の第1の特徴444Aと第3の画像の第1の特徴444Cとの間の第3の空間的関係442C、および第1の画像の第2の特徴446 Aと第3の画像の第2の特徴446Cとの間の第4の空間的関係442Dを示す。これらの空間的関係のそれぞれは、第1の画像のそれぞれの画素と、第2または第3の画像の対応する画素との間の位置の差を示す。
【0049】
図12Aは、実施形態に係る、コンピューティングシステムで使用する方法500のフローチャートの一例を示す。方法500が実行されるコンピューティングシステムは、図1のコンピューティングシステム10であり得る。ステップ502で、方法500は、第1の画像のラベリングマップを受信することを含み得る。ラベリングマップは、第1の画像に含まれる第1の関心領域と第2の画像に含まれる第2の関心領域との間の空間的関係を示し得る。第1の関心領域および第2の関心領域はそれぞれ、それぞれ複数の空間的に隣接する画素を含み得る。第1の関心領域および第2の関心領域は、それぞれ、第1の画像および第2の画像の全部または一部であり得る。いくつかの実施形態では、ラベリングマップは、第1の画像の第1の関心領域および第2の画像の第2の関心領域にそれぞれ含まれる画素間の複数のオプティカルフロー値のオプティカルフローマップであり得る。他の実施形態では、ラベリングマップは、第1の画像の第1関心領域および第2の画像の第2関心領域にそれぞれ含まれる画素間の複数の画素の位置の視差の視差マップであり得る。他の実施形態では、ラベリングマップは、第1の画像の第1関心領域および第2の画像の第2関心領域にそれぞれ含まれる画素の複数の空間的深度値の深度マップであり得る。
【0050】
ステップ504で、方法500は、少なくともラベリングマップ、第1の画像、および第2の画像に基づいて、第1の画像の更新されたラベリングマップを生成することをさらに含み得る。更新されたラベリングマップは、訓練された強化学習モデルで生成される。更新されたラベル付けマップを生成するために使用し得る強化学習モデルのタイプの例には、Deep Q-Networks (DQN)、Asynchronous Actor-Critic (A2 C)、Asynchronous Advantage Actor-Critic (A3 C)、およびProximal Policy Optimization (PPO)が含まれる。他の強化学習技術を追加または代替として使用し得る。
【0051】
いくつかの実施形態では、ステップ506で、方法500は、さらに、複数のラベリングマップ更新サイクルにわたって、訓練された強化学習モデルで更新されたラベリングマップを反復的に更新することを含み得る。第1に続く各ラベリングマップ更新サイクルにおいて、前のラベリングマップ更新サイクルからの更新されたラベリングマップは、第1の画像および第2の画像とともに、訓練された強化学習モデルで入力として使用され得る。したがって、更新されたラベリングマップは、強化学習エピソード内の複数のラベリングマップ更新サイクルにわたってより正確になり得る。いくつかの実施形態では、訓練された強化学習モデルは、複数のエージェントモジュールを含むマルチエージェント強化学習モデルであり得る。そのような実施形態では、ラベリングマップ更新サイクルのうちの1つまたは複数を、複数のエージェントモジュールの異なるエージェントモジュールで実行し得る。
【0052】
図12Bは、訓練された機械学習アルゴリズムを複数の訓練画像で訓練するために、ステップ502の前に実行され得る方法500の追加のステップを示す。図12Bに示されるステップは、図12 Dを参照して後述するように、複数のパラメータ更新サイクルにわたってエージェントモジュールのパラメータを反復的に更新するために、複数の訓練画像に含まれる各訓練画像に対して実行され得る。ステップ508で、方法500はさらに、訓練画像に関連付けられた候補ラベリングマップの候補ラベリング更新アクションを決定することを含み得る。ステップ508は、エージェントモジュールで実行し得る。候補ラベリング更新アクションは、少なくとも部分的に、候補ラベリングマップ、訓練画像、および複数の訓練画像の追加の訓練画像に1つまたは複数のエージェントパラメータを使用してポリシー関数を適用することによって決定され得る。
【0053】
ステップ510において、方法500は、候補ラベリングマップの評価メトリック値を決定することをさらに含み得る。ステップ510は、評価モジュールで実行し得る。たとえば、グラウンドトゥルースのラベリングが利用可能な場合、評価メトリックは、深さ(候補ラベリングマップが深度マップの場合)または視差(候補ラベリングマップが視差マップの場合)の推定値とグラウンドトゥルース値の差であり得る。一方、グラウンドトゥルースのラベリングが利用できない場合、評価メトリックは、たとえば、2つのラベリングマップ間の画素強度の差または値の差、つまり、いわゆる一貫性損失(consistency loss)であり得る。より具体的には、ラベリングマップが視差マップである場合、評価メトリック値は、視差マップに示される画素視差値とグラウンドトゥルースの対応する画素の画素視差値との間の画素視差差の絶対値の総和であり得る。別の例として、グラウンドトゥルースラベリングが利用可能であり、ラベリングマップが深度マップである場合、評価メトリック値は、深度マップで示されるそれぞれの深度値と深度値との間の画素深度差の絶対値の和であり得る。別の例として、ラベリングマップがオプティカルフローマップである場合、評価メトリックは、オプティカルフローマップで示されるオプティカルフロー値と、グラウンドトゥルースオプティカルフローマップの対応する画素について示されるオプティカルフロー値との間のオプティカルフロー差分ベクトルの絶対値の和であり得る。例えばグラウンドトゥルースラベリングが利用できない場合など、上述のように、画素強度差または一貫性損失などの他の評価メトリックを他の実施形態で代替的に使用し得る。
【0054】
ステップ512において、方法500は、環境モジュールにおいて、少なくとも候補ラベリングマップおよび候補ラベリング更新アクションに基づいて、更新された候補ラベリングマップを決定することをさらに含み得る。ステップ512は、候補ラベリング更新アクションを候補ラベリングマップに適用することを含み得る。例えば、候補ラベリング更新アクションは、候補ラベリングマップに追加される行列であり得る。あるいは、候補ラベリング更新アクションは、更新された候補ラベリングマップを取得するために候補ラベリングマップを乗じた行列であり得る。他の実施形態では、更新された候補ラベリングマップは、候補ラベリングマップを参照することなく、候補ラベリング更新アクションに基づいて決定され得る。
【0055】
ステップ514において、方法500は、さらに、環境モジュールにおいて、候補ラベリング更新アクションおよび評価メトリック値に基づいて報酬値を決定することを含み得る。いくつかの実施形態では、報酬値を決定することは、更新された候補ラベリングマップの更新された評価メトリック値を決定することを含み得る。そのような実施形態では、報酬値は、例えば、更新された評価メトリック値と評価メトリック値との間の差に等しくてもよい。したがって、そのような実施形態では、報酬は、候補ラベリングマップが更新されたときに発生するエラーの減少の尺度であり得る。報酬値を計算する他の方法を代替え的に使用し得る。
【0056】
ステップ516で、方法500はさらに、候補ラベリングマップ、候補ラベリング更新アクション、更新された候補ラベリングマップ、および報酬値に少なくとも部分的に基づいて、エージェントモジュールの1つまたは複数のエージェントパラメータを変更することを含み得る。この変更は、更新モジュールで実行し得る。1つまたは複数のエージェントパラメータを変更することは、エージェントモジュールに含まれる1つまたは複数のそれぞれのニューロンの1つまたは複数のニューロン重みを変更することを含み得る。
【0057】
図12Cは、図12Bに示されるように訓練された機械学習モデルを訓練するときにいくつかの実施形態で実行され得る方法500の追加のステップを示す。ステップ518において、方法500は、さらに、評価モジュールにおいて、手動で生成されたラベリングマップを受信することを含み得る。手動で生成されたラベリングマップは、訓練中に更新された候補ラベリングマップと比較されるグラウンドトゥルースラベリングマップとして使用し得る。ステップ520において、方法500は、さらに、候補ラベリングマップと手動で生成されたラベリングマップとの間の差に少なくとも部分的に基づいて評価メトリック値を決定することを含み得る。ステップ520は、ステップ510の一部として評価モジュールで実行されてもよい。
【0058】
図12Dは、方法500が複数のパラメータ更新サイクルをループする実施形態で実行され得る方法500の追加のステップを示す。ステップ522で、方法500はさらに、複数の訓練画像に対応する複数のパラメータ更新サイクルにわたって予測累積報酬値を決定することを含み得る。予測累積報酬値は、それらのパラメータ更新サイクルにおいて環境モジュールで決定されたそれぞれの報酬値に基づいて決定され得る。したがって、訓練された強化学習モデルを訓練する過程で、予測累積報酬値を追跡し得る。ステップ524で、方法500は、現在のパラメータ更新サイクルにおいて予測累積報酬値を増加させる1つまたは複数のエージェントパラメータのそれぞれのパラメータ値を選択することをさらに含み得る。ステップ524は、更新モジュールでステップ516を実行するときに実行できる。
【0059】
コンピュータビジョンにおける画素対応を決定するという技術的課題に対処するために上述の強化学習技術を適用する際に、異なる時間スケールに合わせた注意メカニズムを組み込むことができる。このように、短期、中期、および長期の時間スケールでのみ観察される特徴は、独立して評価され、上記の強化学習アルゴリズムを介して肯定的な結果が達成されたときに報酬を得る。したがって、画素対応のよりインテリジェントで計算効率の高い検索を実現し得ることが想定される。
【0060】
いくつかの実施形態では、ここで記載の方法およびプロセスは、1つまたは複数のコンピューティングデバイスのコンピューティングシステムに関連付けることができる。特に、そのような方法およびプロセスは、コンピュータアプリケーションプログラムまたはサービス、アプリケーションプログラミングインターフェース(API)、ライブラリ、および/または他のコンピュータプログラム製品として実装され得る。
【0061】
図13は、上述の方法およびプロセスのうちの1つまたは複数を実施できるコンピューティングシステム600の非限定的な実施形態を概略的に示す。コンピューティングシステム600は簡略化された形で示されている。コンピューティングシステム600は、上記で説明し、図1に示したコンピューティングシステム10を具現化し得る。コンピューティングシステム600は、1つまたは複数のパーソナルコンピュータ、サーバコンピュータ、タブレットコンピュータ、ホームエンタテイメントコンピュータ、ネットワークコンピューティングデバイス、ゲームデバイス、モバイルコンピューティングデバイス、モバイル通信デバイス(たとえば、スマートフォン)、および/またはその他のコンピューティングデバイス、およびスマートウォッチやヘッドマウント拡張現実デバイスなどのウェアラブルコンピューティングデバイスのうちの1つまたは複数の態様をとり得る。
【0062】
コンピューティングシステム600は、ロジックプロセッサ602、揮発性メモリ604、および不揮発性記憶デバイス606を含む。コンピューティングシステム600は、表示サブシステム608、入力サブシステム610、通信サブシステム612、および/または図13に示されていない他のコンポーネントを任意に含み得る。
【0063】
論理プロセッサ602は、命令を実行する1つまたは複数の物理デバイスを含む。例えば、論理プロセッサは、1つまたは複数のアプリケーション、プログラム、ルーチン、ライブラリ、オブジェクト、コンポーネント、データ構造、または他の論理構造の一部である命令を実行するように構成され得る。このような命令は、タスクの実行、データ型の実装、1つまたは複数のコンポーネントの状態の変換、技術的な効果の達成、またはその他の方法で目的の結果に到達するために実装され得る。
【0064】
論理プロセッサは、ソフトウェア命令を実行する1つまたは複数の物理プロセッサ(ハードウェア)を含み得る。追加的または代替的に、論理プロセッサは、ハードウェア実装論理またはファームウェア命令を実行する1つまたは複数のハードウェア論理回路またはファームウェアデバイスを含み得る。論理プロセッサ602のプロセッサは、シングルコアまたはマルチコアであり得、そこで実行される命令は、順次、並列、および/または分散処理のために構成され得る。論理プロセッサの個々の構成要素は、随意的に、協調処理のために遠隔に配置および/または構成され得る2つ以上の別個のデバイス間に分散され得る。ロジック プロセッサの側面は、クラウド コンピューティング構成で構成された、リモートでアクセス可能なネットワーク化されたコンピューティングデバイスによって仮想化および実行し得る。そのような場合、これらの仮想化された側面は、さまざまな異なるマシンの異なる物理ロジックプロセッサで実行されることが理解されよう。
【0065】
不揮発性記憶デバイス606は、論理プロセッサによって実行可能な命令を保持して、ここに記載の方法およびプロセスを実装する1つまたは複数の物理デバイスを含む。そのような方法およびプロセスが実施される場合、不揮発性記憶デバイス606の状態は、例えば、異なるデータを保持するために変換され得る。
【0066】
不揮発性記憶デバイス606は、取り外し可能および/または内蔵の物理装置を含み得る。不揮発性記憶デバイス606は、光メモリ(例えば、CD、DVD、HD-DVD、Blu-Rayディスク等)、半導体メモリ(例えば、ROM、EPROM、EEPROM、フラッシュメモリ等)、および/または磁気メモリ(例えば、ハードディスクドライブ、フロッピーディスクドライブ、テープドライブ、MRAM等)、または他の大容量記憶デバイス技術を含み得る。不揮発性記憶デバイス606は、不揮発性、動的、静的、読み取り/書き込み、読み取り専用、シーケンシャルアクセス、ロケーションアドレス可能、ファイルアドレス可能、および/またはコンテンツアドレス可能デバイスを含み得る。不揮発性記憶デバイス606は、不揮発性記憶デバイス606への電力が遮断された場合でも命令を保持することを理解されたい。
【0067】
揮発性メモリ604は、ランダムアクセスメモリを含む物理デバイスを含み得る。揮発性メモリ604は通常、ソフトウェア命令の処理中に情報を一時的に記憶するために論理プロセッサ602によって利用される。揮発性メモリ604への電力が遮断されると、揮発性メモリ604は通常、命令を格納し続けないことを理解されたい。
【0068】
論理プロセッサ602、揮発性メモリ604、および不揮発性記憶デバイス606の態様は、1つまたは複数のハードウェア論理構成要素に共に統合され得る。このようなハードウェアロジックコンポーネントは、フィールドプログラマブルゲートアレイ(FPGA)、プログラムおよびアプリケーション固有の集積回路(PASIC/ASIC)、プログラムおよびアプリケーション固有の標準製品(PSSP/ASSP)、システムオンチップ(SOC)、複雑なプログラマブルロジックデバイス(CPLD)等を含む。
【0069】
「モジュール」、「プログラム」、および「エンジン」という用語は、揮発性メモリの一部を使用して特定の機能を実行するためにプロセッサによってソフトウェアで一般的に実装されるコンピューティングシステム600の側面を説明するために使用されてもよく、この機能は、機能を実行するためにプロセッサを特別に構成する変換処理をともなう。したがって、モジュール、プログラム、またはエンジンは、揮発性メモリ604の一部を使用して、不揮発性記憶デバイス606によって保持された命令を実行する論理プロセッサ602を介してインスタンス化され得る。異なるモジュール、プログラム、および/またはエンジンが、同じアプリケーション、サービス、コードブロック、オブジェクト、ルーチン、API、関数等にからインスタンス化されてもよいことが理解されるであろう。同様に、同じモジュール、プロブラム、および/またはエンジンが、異なるアプリケーション、サービス、コードブロック、オブジェクト、ライブラリ、ルーチン、API、関数などからインスタンス化され得る。「モジュール」、「プログラム」、および「エンジン」という用語は、実行可能ファイル、データ ファイル、ライブラリ、ドライバ、スクリプト、データベースレコードなどの個々またはグループを包含し得る。
【0070】
含まれる場合、表示サブシステム608は、不揮発性記憶デバイス606によって保持されるデータの視覚的表現を提示するために使用され得る。視覚的表現は、グラフィカルユーザインターフェース(GUI)の形態をとり得る。ここで説明する方法およびプロセスが、不揮発性記憶デバイスによって保持されるデータを変更し、したがって不揮発性記憶デバイスの状態を変換すると、表示サブシステム608の状態も同様に変換されて、基礎となるデータの変化を視覚的に表し得る。表示サブシステム608は、事実上あらゆるタイプの技術を利用する1つまたは複数の表示装置を含み得る。そのような表示装置は、共有筐体内の論理プロセッサ602、揮発性メモリ604、および/または不揮発性記憶デバイス606と組み合わせることができ、またはそのような表示装置は周辺表示装置とし得る。
【0071】
含まれる場合、入力サブシステム610は、キーボード、マウス、タッチスクリーン、またはゲームコントローラなどの1つまたは複数のユーザ入力デバイスを備えるか、それらとインタフェース接続し得る。いくつかの実施形態では、入力サブシステムは、選択された自然ユーザ入力(NUI)コンポーネントを含むか、またはそれとインタフェース接続し得る。このようなコンポーネントは、統合または周辺機器とでき、入力アクションの変換および/または処理は、オンボードまたはオフボードで処理し得る。例示的なNUI構成要素は、スピーチおよび/または音声認識のためのマイクロフォンを、マシンビジョンおよび/またはジェスチャ認識用の赤外線、カラー、立体、および/または深度カメラを、モーション検出および/または意図認識のためのヘッドトラッカー、アイトラッカー、加速度計、および/またはジャイロスコープを、脳活動を評価するための電場センシングコンポーネントを、および/またはその他の適切なセンサを含みうる。
【0072】
含まれる場合、通信サブシステム612は、ここで説明される様々なコンピューティングデバイスを互いに、および他のデバイスと通信可能に結合し得る。通信サブシステム612は、1つまたは複数の異なる通信プロトコルと互換性のある有線および/または無線通信デバイスを含み得る。非限定的な例として、通信サブシステムは、無線電話ネットワーク、またはHDMIからWi-Fi接続などの有線または無線のローカルまたは広域ネットワークを介した通信のために構成され得る。いくつかの実施形態では、通信サブシステムは、コンピューティングシステム600が、インターネットなどのネットワークを介して他のデバイスとの間でメッセージを送信および/または受信し得る。
【0073】
以下の段落は、本開示のいくつかの態様を説明する。本開示の一態様によれば、第1の画像のラベリングマップを受信するプロセッサを含むコンピューティングシステムが提供される。ラベリングマップは、第1の画像に含まれる第1の関心領域と第2の画像に含まれる第2の関心領域との間の空間的関係を示し得る。訓練された強化学習モデルにおいて、プロセッサは、さらに、少なくともラベリングマップ、第1の画像、および第2の画像に基づいて、第1の画像の更新されたラベリングマップを生成し得る。
【0074】
この態様によれば、訓練された強化学習モデルは、複数の訓練画像を使用して訓練され得る。訓練された強化学習モデルを訓練するとき、複数の訓練画像のそれぞれについて、プロセッサは、エージェントモジュールにおいて、1つまたは複数のエージェントパラメータを有するポリシー関数を、候補ラベリングマップ、訓練画像、および複数の訓練画像の追加の訓練画像に、適用することにより、少なくとも部分的に訓練画像に関連付けられた候補ラベリングマップの候補ラベリング更新アクションを決定し得る。プロセッサは、評価モジュールにおいて、候補ラベリングマップの評価メトリック値を決定するようにさらに構成され得る。プロセッサは、環境モジュールにおいて、少なくとも候補ラベリングマップおよび候補ラベリング更新アクションに基づいて、更新された候補ラベリングマップを決定し得る。環境モジュールにおいて、プロセッサは、さらに、候補ラベリング更新アクションおよび評価メトリック値に基づいて報酬値を決定し得る。プロセッサは、さらに、更新モジュールにおいて、候補ラベリングマップ、候補ラベリング更新アクション、更新された候補ラベリングマップ、および報酬値に少なくとも部分的に基づいて、エージェントモジュールの1つまたは複数のエージェントパラメータを変更し得る。
【0075】
この態様によれば、候補ラベリングマップは、訓練画像の訓練関心領域と追加の訓練画像の追加の訓練関心領域との間の候補空間的関係を示し得る。
【0076】
この態様によれば、評価モジュールにおいて、プロセッサは、手動で生成されたラベリングマップを受信し、候補ラベリングマップと手動で生成されたラベリングマップとの間の差に少なくとも部分的に基づいて評価メトリック値を決定するようにさらに構成され得る。
【0077】
この態様によれば、更新モジュールにおいて、プロセッサは、複数の訓練画像に対応する複数のパラメータ更新サイクルにわたって、環境モジュールにおいて、それらのパラメータ更新サイクルで決定されたそれぞれの報酬値に基づいて予測累積報酬値を決定するようにさらに構成され得る。プロセッサは、現在のパラメータ更新サイクルにおいて予測累積報酬値を増加させる1つまたは複数のエージェントパラメータのそれぞれのパラメータ値を選択するようにさらに構成され得る。
【0078】
この態様によれば、ラベリングマップは、第1の画像の第1関心領域および第2の画像の第2関心領域にそれぞれ含まれる画素間の複数のオプティカルフロー値のオプティカルフローマップであり得る。
【0079】
この態様によれば、ラベリングマップは、第1の画像の第1関心領域および第2の画像の第2関心領域にそれぞれ含まれる画素間の複数の画素位置視差の視差マップであり得る。
【0080】
この態様によれば、ラベリングマップは、第1の画像の第1関心領域および第2の画像の第2関心領域にそれぞれ含まれる画素の複数の空間的深度値の深度マップであり得る。
【0081】
この態様によれば、プロセッサは、さらに、第1の関心領域の第1の特徴マップおよび第2の関心領域の第2の特徴マップを1つまたは複数の畳み込み層で生成し得る。
【0082】
この態様によれば、第1の関心領域および第2の関心領域はそれぞれ、それぞれ複数の空間的に隣接する画素を含み得る。
【0083】
この態様によれば、プロセッサは、複数のラベリングマップ更新サイクルにわたって、訓練された強化学習モデルで更新されたラベリングマップを反復的に更新し得る。
【0084】
この態様によれば、訓練された強化学習モデルは、マルチエージェント強化学習モデルであり得る。
【0085】
本開示の別の態様によれば、コンピューティングシステムで使用するための方法が提供される。この方法は、第1の画像のラベリングマップを受信することを含むことができ、ラベリングマップは、第1の画像に含まれる第1の関心領域と第2の画像に含まれる第2の関心領域との間の空間的関係を示す。この方法は、さらに、訓練された強化学習モデルにおいて、少なくともラベリングマップ、第1の画像、および第2の画像に基づいて、第1の画像の更新されたラベリングマップを生成し得る。
【0086】
この態様によれば、方法は、さらに、エージェントモジュールにおいて、1つまたは複数のエージェントパラメータを有するポリシー関数を候補ラベリングマップ、訓練画像、及び複数の訓練画像の追加の訓練画像に適用することによって、少なくとも部分的に、訓練画像に関連付けられた候補ラベリングマップの候補ラベリング更新アクションを決定することによって、複数の訓練画像で訓練済み機械学習モデルを訓練することを更に含み得る。訓練された機械学習モデルを訓練することは、評価モジュールにおいて、候補ラベリングマップの評価メトリック値を決定することをさらに含み得る。訓練された機械学習モデルを訓練することは、環境モジュールにおいて、少なくとも候補ラベリングマップおよび候補ラベリング更新アクションに基づいて更新された候補ラベリングマップを決定することをさらに含み得る。訓練された機械学習モデルを訓練することは、環境モジュールにおいて、候補ラベリング更新アクションおよび評価メトリック値に基づいて報酬値を決定することをさらに含み得る。訓練された機械学習モデルを訓練することは、さらに、更新モジュールにおいて、候補ラベリングマップ、候補ラベリング更新アクション、更新された候補ラベリングマップ、および報酬値に少なくとも部分的に基づいて、エージェントモジュールの1つ以上のパラメータを変更することを含み得る。
【0087】
この態様によれば、方法は、評価モジュールにおいて、手動で生成されたラベリングマップを受信し、候補ラベリングマップと手動で生成されたラベリングマップとの間の差に少なくとも部分的に基づいて評価メトリック値を決定することをさらに含み得る。
【0088】
この態様によれば、方法は、更新モジュールにおいて、複数の訓練画像に対応する複数のパラメータ更新サイクルにわたって、環境モジュールにおいて決定されたそれぞれの報酬値に基づいて予測累積報酬値を決定することをさらに含み得る。方法は、現在のパラメータ更新サイクルにおいて予測累積報酬値を増加させる1つまたは複数のエージェントパラメータのそれぞれのパラメータ値を選択することをさらに含み得る。
【0089】
この態様によれば、ラベリングマップは、第1の画像の第1関心領域および第2の画像の第2関心領域にそれぞれ含まれる画素間の複数のオプティカルフロー値のオプティカルフローマップであり得る。
【0090】
この態様によれば、ラベリングマップは、第1の画像の第1関心領域および第2の画像の第2関心領域にそれぞれ含まれる画素間の複数の画素位置視差の視差マップであり得る。
【0091】
この態様によれば、ラベリングマップは、第1の画像の第1関心領域および第2の画像の第2関心領域にそれぞれ含まれる画素の複数の空間的深度値の深度マップであり得る。
【0092】
本開示の別の態様によれば、複数の訓練画像を使用して訓練強化学習モデルを生成する1つまたは複数のプロセッサを含むコンピューティングシステムが提供される。プロセッサは、訓練画像のそれぞれについて、エージェントモジュールにおいて、候補ラベリングマップ、訓練画像、および複数の訓練画像の追加の訓練画像に、1つまたは複数のエージェントパラメータを使用してポリシー関数を適用することによって、少なくとも部分的に訓練画像に関連付けられた候補ラベリングマップの候補ラベリング更新アクションをエージェントモジュールで決定することによって、少なくとも部分的に訓練された強化学習モデルを生成するように構成され得る。プロセッサは、評価モジュールにおいて、候補ラベリングマップの評価メトリック値を決定することによって、訓練された強化学習モデルを少なくとも部分的に生成するように構成され得る。プロセッサは、環境モジュールにおいて、少なくとも候補ラベリングマップおよび候補ラベリング更新アクションに基づいて更新された候補ラベリングマップを決定することによって、訓練された強化学習モデルを少なくとも部分的に生成するように構成され得る。プロセッサは、環境モジュールにおいて、候補ラベリング更新アクションおよび評価メトリック値に基づいて報酬値を決定することによって、訓練された強化学習モデルを少なくとも部分的に生成するように構成され得る。プロセッサは、更新モジュールにおいて、候補ラベリングマップ、候補ラベリング更新アクションに少なくとも部分的に基づいてエージェントモジュールの1つまたは複数のエージェントパラメータを変更することによって、少なくとも部分的に訓練された強化学習モデルを生成するように構成され得る。更新された候補ラベリングマップ、および報酬値。実行時に、プロセッサは、第1の画像のラベリングマップを受信し得る。ラベリングマップは、第1の画像に含まれる第1の関心領域と第2の画像に含まれる第2の関心領域との間の空間的関係を示し得る。ラベリングマップは、オプティカルフローマップ、視差マップ、または深度マップであり得る。訓練された強化学習モデルにおいて、プロセッサは、少なくともラベリングマップ、第1の画像、および第2の画像に基づいて、第1の画像の更新されたラベリングマップを生成するようにさらに構成され得る。
【0093】
ここに記載された構成および/または手法は本質的に例示的であり、これらの特定の実施形態または例は限定的な意味で考慮されるべきではないことが理解されるであろう。ここに記載の特定のルーチンまたは方法は、任意の数の処理戦略のうちの1つまたは複数を示し得る。したがって、図示および/または説明される様々な行為は、図示および/または説明される順序で、他の順序で、並行して、または省略されて実行され得る。同様に、上記の処理の順序は変更されてもよい。
【0094】
本開示の主題は、ここに開示される様々なプロセス、システムおよび構成、ならびに他の特徴、機能、行為、および/または特性のすべての新規かつ非自明な組み合わせおよび部分的組み合わせ、ならびに任意およびすべての等価物を含む。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10A
図10B
図11A
図11B
図11C
図12A
図12B
図12C
図12D
図13