(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-07-26
(54)【発明の名称】修復タスクのためのガイド付きコンテキストアテンションマップ
(51)【国際特許分類】
G06T 7/00 20170101AFI20240719BHJP
H04N 23/60 20230101ALI20240719BHJP
G06T 5/77 20240101ALI20240719BHJP
G06T 5/60 20240101ALI20240719BHJP
【FI】
G06T7/00 350B
H04N23/60 500
G06T5/77
G06T5/60
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024503458
(86)(22)【出願日】2021-07-19
(85)【翻訳文提出日】2024-03-05
(86)【国際出願番号】 US2021042150
(87)【国際公開番号】W WO2023003528
(87)【国際公開日】2023-01-26
(81)【指定国・地域】
(71)【出願人】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】金沢 倫次
(72)【発明者】
【氏名】クフィル・アバーマン
(72)【発明者】
【氏名】ヤエル・プリチ・ケイナーン
(72)【発明者】
【氏名】ニール・ワドワ
【テーマコード(参考)】
5B057
5C122
5L096
【Fターム(参考)】
5B057BA23
5B057CA01
5B057CA08
5B057CA12
5B057CA16
5B057CB01
5B057CB08
5B057CB12
5B057CB16
5B057CD08
5B057CH16
5B057DA16
5B057DB02
5B057DB06
5B057DB09
5B057DC40
5C122DA04
5C122EA61
5C122FH10
5C122FH11
5C122FH12
5C122FH14
5C122FH18
5C122FK41
5C122GA01
5C122HA35
5C122HA46
5C122HA48
5C122HA88
5C122HB01
5C122HB05
5C122HB10
5L096AA02
5L096AA06
5L096CA04
5L096CA21
5L096DA01
5L096EA39
5L096GA10
5L096GA34
5L096GA40
5L096HA11
5L096KA04
(57)【要約】
データを拡張するためのシステムおよび方法は、より現実的かつ効率的なデータ拡張を行うために1つまたは複数の機械学習型モデルおよびコンテキストアテンションデータを活用することができる。たとえば、修復のためのシステムおよび方法は、予測コンテキストアテンションデータを生成するとともに予測コンテキストアテンションデータを取得されたコンテキストアテンションデータとブレンドして、1つまたは複数のオクルージョンを置換すべき画像を拡張するための置換データを決定するために、機械学習型モデルを活用することができる。取得されたコンテキストアテンションデータは、ユーザがガイドしたコンテキストアテンションを含むことができる。
【特許請求の範囲】
【請求項1】
修復モデルをトレーニングするためのコンピュータ実装方法であって、
1つまたは複数のプロセッサを備えるコンピューティングシステムによって入力画像およびグラウンドトゥルース画像を受信するステップであって、前記グラウンドトゥルース画像がシーンを描き、前記入力画像が、1つまたは複数のオクルージョンを有する前記シーンを描く、ステップと、
コンテキストアテンション出力を生成するためにコンテキストアテンションモデルを用いて前記グラウンドトゥルース画像を前記コンピューティングシステムによって処理するステップと、
予測画像を生成するために拡張モデルを用いて前記入力画像および前記コンテキストアテンション出力を前記コンピューティングシステムによって処理するステップと、
前記予測画像と前記グラウンドトゥルース画像との間の差分を評価する損失関数を前記コンピューティングシステムによって評価するステップと、
前記損失関数に少なくとも部分的に基づいて前記拡張モデルの1つまたは複数のパラメータを前記コンピューティングシステムによって調整するステップと
を備えるコンピュータ実装方法。
【請求項2】
前記拡張モデルが、予測モデル、ブレンドモデル、およびオクルージョンモデルを備え、前記拡張モデルを用いて前記入力画像および前記コンテキストアテンション出力を処理するステップが、
予測コンテキストアテンションデータを生成するために前記予測モデルを用いて前記入力画像を前記コンピューティングシステムによって処理するステップと、
ブレンドデータを生成するためにブレンドモデルを用いて前記予測コンテキストアテンションデータおよび前記コンテキストアテンション出力を前記コンピューティングシステムによって処理するステップと、
前記予測画像を生成するために前記ブレンドデータおよび前記入力画像を前記コンピューティングシステムによって処理するステップとを備える、
請求項1に記載のコンピュータ実装方法。
【請求項3】
前記ブレンドモデルが、前記予測コンテキストアテンションデータと前記コンテキストアテンション出力とをランダムにブレンドするようにトレーニングされる、請求項1または2に記載のコンピュータ実装方法。
【請求項4】
前記入力画像が、前記グラウンドトゥルース画像に1つまたは複数のオクルージョンを加えることによって生成される、請求項1から3のいずれか一項に記載のコンピュータ実装方法。
【請求項5】
前記コンテキストアテンションモデルが、畳み込みニューラルネットワークおよび1つまたは複数のコンテキストアテンションブロックを備える、請求項1から4のいずれか一項に記載のコンピュータ実装方法。
【請求項6】
トレーニングコンテキストアテンション出力を生成するために前記コンテキストアテンションモデルを用いて1つまたは複数のトレーニング画像を前記コンピューティングシステムによって処理するステップ、
トレーニング拡張画像を生成するために修復モデルを用いて前記トレーニングコンテキストアテンション出力を前記コンピューティングシステムによって処理するステップ、
前記トレーニング拡張画像と前記グラウンドトゥルース画像との間の差分を評価するトレーニング損失関数を前記コンピューティングシステムによって評価するステップ、および
前記トレーニング損失関数に少なくとも部分的に基づいて前記コンテキストアテンションモデルの1つまたは複数のコンテキストアテンションパラメータを前記コンピューティングシステムによって調整するステップによって、
前記コンテキストアテンションモデルがトレーニングされる、
請求項1から5のいずれか一項に記載のコンピュータ実装方法。
【請求項7】
前記入力画像の一部分の選択結果を記述する1つまたは複数の入力を前記コンピューティングシステムによって受信するステップをさらに備え、
前記予測画像が、前記1つまたは複数の入力に少なくとも部分的に基づいて生成される、
請求項1から6のいずれか一項に記載のコンピュータ実装方法。
【請求項8】
修復のためのコンピューティングシステムであって、前記コンピューティングシステムが、
1つまたは複数のプロセッサと、
命令を一括して記憶する1つまたは複数の非一時的コンピュータ可読媒体とを備え、前記命令が、前記1つまたは複数のプロセッサによって実行されたとき、前記コンピューティングシステムに動作を実行させ、前記動作が、
入力画像を取得することであって、前記入力画像が置換のための1つまたは複数のオブジェクトを備えることと、
1つまたは複数のユーザ入力を取得することであって、前記1つまたは複数のユーザ入力が1つまたは複数のコンテキストアテンション入力を備えることと、
拡張画像を生成するために拡張モデルを用いて前記入力画像および前記1つまたは複数のユーザ入力を処理することであって、前記拡張モデルが、グラウンドトゥルーストレーニングを介して、前記1つまたは複数のオブジェクトを置換するようにトレーニングされることと、
ユーザに前記拡張画像を提供することとを備える、
コンピューティングシステム。
【請求項9】
前記動作が、
1つまたは複数の第2のユーザ入力を取得することをさらに備え、前記1つまたは複数の第2のユーザ入力が、前記入力画像の一部分の選択結果を記述し、
前記拡張画像が、前記1つまたは複数の第2のユーザ入力に少なくとも部分的に基づいて生成される、
請求項8に記載のコンピューティングシステム。
【請求項10】
前記拡張モデルが、予測コンテキストアテンションデータとユーザ入力式のコンテキストアテンションデータとをブレンドするようにトレーニングされたブレンドモデルを備え、前記予測コンテキストアテンションデータが、前記入力画像に少なくとも部分的に基づいて生成され、前記ユーザ入力式のコンテキストアテンションデータが、前記1つまたは複数のユーザ入力に少なくとも部分的に基づく、請求項8または9に記載のコンピューティングシステム。
【請求項11】
前記予測コンテキストアテンションデータおよび前記ユーザ入力式のコンテキストアテンションデータが、ブレンディング重みに少なくとも部分的に基づいてブレンドされ、前記ブレンディング重みが、ユーザによって手作業で制御される、請求項10に記載のコンピューティングシステム。
【請求項12】
前記予測コンテキストアテンションデータおよび前記ユーザ入力式のコンテキストアテンションデータが、ブレンディング重みに少なくとも部分的に基づいてブレンドされ、前記ブレンディング重みが、前記グラウンドトゥルーストレーニング中に調整される、請求項10に記載のコンピューティングシステム。
【請求項13】
前記動作が、
前記ユーザに視覚インターフェースを提供するための表示のために前記入力画像を提供することをさらに備える、
請求項8から12のいずれか一項に記載のコンピューティングシステム。
【請求項14】
前記1つまたは複数のユーザ入力がタッチスクリーンディスプレイを用いて取得される、請求項8から13のいずれか一項に記載のコンピューティングシステム。
【請求項15】
前記動作が、
前記入力画像の上に重ね合わせられた、前記1つまたは複数のユーザ入力の描写を提供することをさらに備える、
請求項8から14のいずれか一項に記載のコンピューティングシステム。
【請求項16】
命令を一括して記憶する1つまたは複数の非一時的コンピュータ可読媒体であって、前記命令が、1つまたは複数のプロセッサによって実行されたとき、コンピューティングシステムに動作を実行させ、前記動作が、
ユーザから入力データを受信することであって、前記入力データが1つまたは複数の画像を備えることと、
コンテキストアテンションデータを取得することであって、前記コンテキストアテンションデータが、選択されたピクセルデータを備えることと、
予測コンテキストアテンションデータを生成するために予測モデルを用いて前記入力データを処理することと、
ブレンドデータを生成するためにブレンドモデルを用いて前記コンテキストアテンションデータおよび前記予測コンテキストアテンションデータを処理することと、
前記1つまたは複数の画像からの1つまたは複数のピクセルを置換するためにオクルージョンモデルを用いて前記入力データおよび前記ブレンドデータを処理することとを備える、
1つまたは複数の非一時的コンピュータ可読媒体。
【請求項17】
前記1つまたは複数の画像がビデオのフレームであり、前記オクルージョンモデルの出力が拡張ビデオ出力である、請求項16に記載の1つまたは複数の非一時的コンピュータ可読媒体。
【請求項18】
前記動作が、
レンダリングされた画像を生成するために前記1つまたは複数のピクセルを前記1つまたは複数の画像に戻して加えることをさらに備える、
請求項16または17に記載の1つまたは複数の非一時的コンピュータ可読媒体。
【請求項19】
前記コンテキストアテンションデータが平坦化入力テンソルを備える、請求項16から18のいずれか一項に記載の1つまたは複数の非一時的コンピュータ可読媒体。
【請求項20】
前記コンテキストアテンションデータが、ユーザによるラッソジェスチャー入力に少なくとも部分的に基づいて生成される、請求項16から19のいずれか一項に記載の1つまたは複数の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に、画像データを処理することに関する。より詳細には、本開示は、改善された修復のためにコンテキストアテンションをユーザガイドと組み合わせることができる、高品質画像修復のための機械学習型モデルに関する。
【背景技術】
【0002】
画像(たとえば、写真)および他の形態のデータは、しばしば、不要データを含む。一例として、不要データは、画像のノイズを低減するために画像を処理することから生じるアーティファクトに相当する場合がある。別の例として、不要データは、風景の前景の人間の姿をした人または家族写真の背景の知らない人に相当する場合がある。別の例として、不要データは、本来なら純粋な背景の目障りな物体に相当する場合がある。
【0003】
したがって、不要データは、描かれるシーンなどの画像の他の部分を邪魔するかまたは不明瞭にする物体に相当する場合がある。しかしながら、不要データを置換データ(たとえば、不要データによって邪魔されている画像の邪魔された部分を描く置換画像データ、「修復」とも呼ばれるプロセス)と置換することは、本質的に非決定論的である困難な問題である。言い方を変えれば、同じ画像から複数の可能な解が決定される場合があり、困難な問題をもたらす。
【0004】
いくつかの現在のシステムおよび方法は、ユーザが除去したいエリアを修復するために、コピーされるピクセルのソースロケーションをユーザが選択することを可能にする、「クローンツール」を含む。一方、機械学習およびコンピュータビジョンコミュニティによって書かれた論文において示唆される解決策は、コンテキストアテンションマップ、すなわち、機械学習を使用してピクセルのソースロケーションを予測しようとするコンポーネントを含む。しかしながら、両方の技法がそれら自体の欠陥を有する。
【発明の概要】
【課題を解決するための手段】
【0005】
本開示の実施形態の態様および利点が、以下の説明において部分的に記載され、または説明から知ることができ、または本実施形態の実践を通じて知ることができる。
【0006】
本開示の1つの例示的な態様は、修復モデルをトレーニングするためのコンピュータ実装方法を対象とする。方法は、1つまたは複数のプロセッサを含むコンピューティングシステムによって入力画像およびグラウンドトゥルース画像を受信することを含むことができる。いくつかの実装形態では、グラウンドトゥルース画像はシーンを描くことができ、入力画像は、1つまたは複数のオクルージョンを有するシーンを描くことができる。方法は、コンテキストアテンション出力を生成するためにコンテキストアテンションモデルを用いてグラウンドトゥルース画像をコンピューティングシステムによって処理することを含むことができる。方法は、予測画像を生成するために拡張モデルを用いて入力画像およびコンテキストアテンション出力をコンピューティングシステムによって処理することを含むことができる。方法は、予測画像とグラウンドトゥルース画像との間の差分を評価する損失関数をコンピューティングシステムによって評価することを含むことができる。いくつかの実装形態では、方法は、損失関数に少なくとも部分的に基づいて拡張モデルの1つまたは複数のパラメータをコンピューティングシステムによって調整することを含むことができる。
【0007】
いくつかの実装形態では、拡張モデルは、予測モデル、ブレンドモデル、およびオクルージョンモデルを含むことができる。方法は、予測コンテキストアテンションデータを生成するために予測モデルを用いて入力画像をコンピューティングシステムによって処理することと、ブレンドデータを生成するためにブレンドモデルを用いて予測コンテキストアテンションデータおよびコンテキストアテンション出力をコンピューティングシステムによって処理することと、予測画像を生成するためにブレンドデータおよび入力画像をコンピューティングシステムによって処理することとを含む、拡張モデルを用いて入力画像およびコンテキストアテンション出力を処理することを含むことができる。いくつかの実装形態では、ブレンドモデルは、予測コンテキストアテンションデータとコンテキストアテンション出力とをランダムにブレンドするようにトレーニングされ得る。入力画像は、グラウンドトゥルース画像に1つまたは複数のオクルージョンを加えることによって生成され得る。いくつかの実装形態では、コンテキストアテンションモデルは、畳み込みニューラルネットワークおよび1つまたは複数のコンテキストアテンションブロックを含むことができる。トレーニングコンテキストアテンション出力を生成するためにコンテキストアテンションモデルを用いて1つまたは複数のトレーニング画像をコンピューティングシステムによって処理すること、トレーニング拡張画像を生成するために修復モデルを用いてトレーニングコンテキストアテンション出力をコンピューティングシステムによって処理すること、トレーニング拡張画像とグラウンドトゥルース画像との間の差分を評価するトレーニング損失関数をコンピューティングシステムによって評価すること、およびトレーニング損失関数に少なくとも部分的に基づいてコンテキストアテンションモデルの1つまたは複数のコンテキストアテンションパラメータをコンピューティングシステムによって調整することによって、コンテキストアテンションモデルがトレーニングされ得る。いくつかの実装形態では、1つまたは複数のオクルージョンは、1人または複数の人間を含むことができる。方法は、入力画像の一部分の選択結果を記述する1つまたは複数の入力をコンピューティングシステムによって受信することを含むことができる。いくつかの実装形態では、予測画像は、1つまたは複数の入力に少なくとも部分的に基づいて生成され得る。
【0008】
本開示の別の例示的な態様は、修復のためのコンピューティングシステムを対象とする。コンピューティングシステムは、1つまたは複数のプロセッサと、命令を一括して記憶する1つまたは複数の非一時的コンピュータ可読媒体とを含むことができ、命令は、1つまたは複数のプロセッサによって実行されたとき、コンピューティングシステムに動作を実行させる。動作は、入力画像を取得することを含むことができる。いくつかの実装形態では、入力画像は、置換のための1つまたは複数のオブジェクトを含むことができる。動作は、1つまたは複数のユーザ入力を取得することを含むことができる。いくつかの実装形態では、1つまたは複数のユーザ入力は、1つまたは複数のコンテキストアテンション入力を含むことができる。動作は、拡張画像を生成するために拡張モデルを用いて入力画像および1つまたは複数のユーザ入力を処理することを含むことができる。いくつかの実装形態では、拡張モデルは、グラウンドトゥルーストレーニングを介して、1つまたは複数のオブジェクトを置換するようにトレーニングされ得る。動作は、ユーザに拡張画像を提供することを含むことができる。
【0009】
いくつかの実装形態では、動作は、1つまたは複数の第2のユーザ入力を取得することを含むことができ、1つまたは複数の第2のユーザ入力は、入力画像の一部分の選択結果を記述することができる。いくつかの実装形態では、拡張画像は、1つまたは複数の第2のユーザ入力に少なくとも部分的に基づいて生成され得る。拡張モデルは、予測コンテキストアテンションデータとユーザ入力式のコンテキストアテンションデータとをブレンドするようにトレーニングされたブレンドモデルを含むことができる。いくつかの実装形態では、予測コンテキストアテンションデータは、入力画像に少なくとも部分的に基づいて生成されることが可能であり、ユーザ入力式のコンテキストアテンションデータは、1つまたは複数のユーザ入力に少なくとも部分的に基づくことができる。予測コンテキストアテンションデータおよびユーザ入力式のコンテキストアテンションデータは、ブレンディング重みに少なくとも部分的に基づいてブレンドされることが可能であり、ブレンディング重みは、ユーザによって手作業で制御され得る。いくつかの実装形態では、予測コンテキストアテンションデータおよびユーザ入力式のコンテキストアテンションデータは、ブレンディング重みに少なくとも部分的に基づいてブレンドされることが可能であり、ブレンディング重みは、グラウンドトゥルーストレーニング中に調整され得る。コンピューティングシステムは、拡張画像を表示するための視覚ディスプレイを含むことができる。いくつかの実装形態では、動作は、ユーザに視覚インターフェースを提供するための表示のために入力画像を提供することを含むことができる。1つまたは複数のユーザ入力は、タッチスクリーンディスプレイを用いて取得され得る。動作は、入力画像の上に重ね合わせられた、1つまたは複数のユーザ入力の描写を提供することを含むことができる。
【0010】
本開示の別の例示的な態様は、命令を一括して記憶する1つまたは複数の非一時的コンピュータ可読媒体を対象とし、命令は、1つまたは複数のプロセッサによって実行されたとき、コンピューティングシステムに動作を実行させる。動作は、ユーザから入力データを受信することを含むことができる。いくつかの実装形態では、入力データは、1つまたは複数の画像を含むことができる。動作は、コンテキストアテンションデータを取得することを含むことができる。いくつかの実装形態では、コンテキストアテンションデータは、選択されたピクセルデータを含むことができる。動作は、予測コンテキストアテンションデータを生成するために予測モデルを用いて入力データを処理することを含むことができる。動作は、ブレンドデータを生成するためにブレンドモデルを用いてコンテキストアテンションデータおよび予測コンテキストアテンションデータを処理することを含むことができる。動作は、1つまたは複数の画像からの1つまたは複数のピクセルを置換するためにオクルージョンモデルを用いて入力データおよびブレンドデータを処理することを含むことができる。
【0011】
いくつかの実装形態では、1つまたは複数の画像は、ビデオのフレームであり得、オクルージョンモデルの出力は、拡張ビデオ出力であり得る。オクルージョンモデルは、知覚損失関数を用いてトレーニングされ得る。動作は、レンダリングされた画像を生成するために1つまたは複数のピクセルを1つまたは複数の画像に戻して加えることを含むことができる。いくつかの実装形態では、コンテキストアテンションデータは、平坦化入力テンソルを含むことができる。コンテキストアテンションデータは、ユーザによるラッソジェスチャー(lasso gesture)入力に少なくとも部分的に基づいて生成され得る。
【0012】
本開示の別の例示的な態様は、拡張モデルをトレーニングするためのコンピュータ実装方法を対象とする。方法は、1つまたは複数のプロセッサを含むコンピューティングシステムによって入力画像およびグラウンドトゥルース画像を受信することを含むことができる。いくつかの実装形態では、グラウンドトゥルース画像はシーンを描くことができ、入力画像は、1つまたは複数のオクルージョンを有するシーンを描くことができる。方法は、コンテキストアテンション出力を生成するためにコンテキストアテンションモデルを用いてグラウンドトゥルース画像をコンピューティングシステムによって処理することを含むことができる。方法は、予測画像を生成するために拡張モデルを用いて入力画像およびコンテキストアテンション出力をコンピューティングシステムによって処理することを含むことができる。方法は、予測画像とグラウンドトゥルース画像との間の差分を評価する損失関数をコンピューティングシステムによって評価することと、損失関数に少なくとも部分的に基づいて拡張モデルの1つまたは複数のパラメータをコンピューティングシステムによって調整することとを含むことができる。
【0013】
いくつかの実装形態では、拡張モデルは、予測モデル、ブレンドモデル、およびオクルージョンモデルを含むことができる。動作は、予測コンテキストアテンションデータを生成するために予測モデルを用いて入力画像をコンピューティングシステムによって処理することと、ブレンドデータを生成するためにブレンドモデルを用いて予測コンテキストアテンションデータおよびコンテキストアテンション出力をコンピューティングシステムによって処理することと、予測画像を生成するためにオクルージョンモデルを用いてブレンドデータおよび入力画像をコンピューティングシステムによって処理することとを含む、拡張モデルを用いて入力画像およびコンテキストアテンション出力を処理することを含むことができる。いくつかの実装形態では、ブレンドモデルは、予測コンテキストアテンションデータとコンテキストアテンション出力とをランダムにブレンドするようにトレーニングされ得る。オクルージョンモデルは、知覚損失関数を用いてトレーニングされ得る。入力画像は、グラウンドトゥルース画像に1つまたは複数のオクルージョンを加えることによって生成され得る。いくつかの実装形態では、コンテキストアテンションモデルは、畳み込みニューラルネットワークおよび1つまたは複数のコンテキストアテンションブロックを含むことができる。トレーニングコンテキストアテンション出力を生成するためにコンテキストアテンションモデルを用いて1つまたは複数のトレーニング画像をコンピューティングシステムによって処理すること、トレーニング拡張画像を生成するために修復モデルを用いてトレーニングコンテキストアテンション出力をコンピューティングシステムによって処理すること、トレーニング拡張画像とグラウンドトゥルース画像との間の差分を評価するトレーニング損失関数をコンピューティングシステムによって評価すること、およびトレーニング損失関数に少なくとも部分的に基づいてコンテキストアテンションモデルの1つまたは複数のコンテキストアテンションパラメータをコンピューティングシステムによって調整することによって、コンテキストアテンションモデルがトレーニングされ得る。いくつかの実装形態では、1つまたは複数のオクルージョンは、1人または複数の人間を含むことができる。
【0014】
いくつかの実装形態では、方法は、入力画像の一部分の選択結果を記述する1つまたは複数の入力をコンピューティングシステムによって受信することを含むことができ、予測画像は、1つまたは複数の入力に少なくとも部分的に基づいて生成され得る。
【0015】
本開示の別の例示的な態様は、コンピュータ実装方法を対象とする。方法は、入力画像を取得することを含むことができる。入力画像は、置換のための1つまたは複数のオブジェクトを含むことができる。方法は、1つまたは複数のコンテキストアテンション入力を取得することを含むことができる。方法は、拡張画像を生成するために拡張モデルを用いて入力画像および1つまたは複数のコンテキストアテンション入力を処理することを含むことができる。いくつかの実装形態では、拡張モデルは、グラウンドトゥルーストレーニングを介して、1つまたは複数のオブジェクトを置換するようにトレーニングされ得る。方法は、ユーザに拡張画像を提供することを含むことができる。
【0016】
いくつかの実装形態では、拡張モデルは、コンピュータ実装方法を使用してトレーニングされ得る。1つまたは複数のコンテキストアテンション入力はユーザ入力であり得る。1つまたは複数のユーザ入力は、タッチスクリーンディスプレイを用いて取得され得る。方法は、入力画像の上に重ね合わせられた、1つまたは複数のユーザ入力の描写を提供することを含むことができる。いくつかの実装形態では、コンテキストアテンションデータは、ユーザによるラッソジェスチャー入力に少なくとも部分的に基づいて生成され得る。方法は、1つまたは複数の第2のユーザ入力を取得することを含むことができる。いくつかの実装形態では、1つまたは複数の第2のユーザ入力は、入力画像の一部分の選択結果を記述することができ、拡張画像は、1つまたは複数の第2のユーザ入力に少なくとも部分的に基づいて生成され得る。拡張モデルは、予測コンテキストアテンションデータとユーザ入力式のコンテキストアテンションデータとをブレンドするようにトレーニングされたブレンドモデルを含むことができ、予測コンテキストアテンションデータは、入力画像に少なくとも部分的に基づいて生成されることが可能であり、ユーザ入力式のコンテキストアテンションデータは、1つまたは複数のユーザ入力に少なくとも部分的に基づくことができる。いくつかの実装形態では、予測コンテキストアテンションデータおよびユーザ入力式のコンテキストアテンションデータは、ブレンディング重みに少なくとも部分的に基づいてブレンドされることが可能であり、ブレンディング重みは、ユーザによって手作業で制御され得る。
【0017】
いくつかの実装形態では、予測コンテキストアテンションデータおよびユーザ入力式のコンテキストアテンションデータは、ブレンディング重みに少なくとも部分的に基づいてブレンドされることが可能であり、ブレンディング重みは、グラウンドトゥルーストレーニング中に調整され得る。方法は、ユーザに視覚インターフェースを提供するための表示のために入力画像を提供することを含むことができる。入力画像は、ビデオのフレームであり得、拡張モデルの出力は、拡張ビデオ出力であり得る。いくつかの実装形態では、コンテキストアテンション入力は、平坦化入力テンソルを含むことができる。
【0018】
いくつかの実装形態では、命令を一括して記憶する1つまたは複数の非一時的コンピュータ可読媒体であって、命令は、1つまたは複数のプロセッサによって実行されたとき、コンピュータ実装方法をコンピューティングシステムに実行させる。
【0019】
いくつかの実装形態では、コンピューティングシステムは、1つまたは複数のプロセッサと、命令を一括して記憶する1つまたは複数の非一時的コンピュータ可読媒体とを含むことができ、命令は、1つまたは複数のプロセッサによって実行されたとき、コンピュータ実装方法をコンピューティングシステムに実行させる。
【0020】
本開示の他の態様は、様々なシステム、装置、非一時的コンピュータ可読媒体、ユーザインターフェース、および電子デバイスを対象とする。
【0021】
本開示の様々な実施形態のこれらおよび他の特徴、態様、および利点は、以下の説明および添付の特許請求の範囲を参照すると、よりよく理解されよう。本明細書に組み込まれ本明細書の一部を構成する添付図面は、本開示の例示的な実施形態を示し、この説明と一緒に、関連する原理を説明するために役立つ。
【0022】
当業者を対象とする実施形態の詳細な説明が本明細書に記載され、本明細書は添付の図を参照する。
【図面の簡単な説明】
【0023】
【
図1A】本開示の例示的な実施形態による、画像拡張を実行する例示的なコンピューティングシステムのブロック図である。
【
図1B】本開示の例示的な実施形態による、画像拡張を実行する例示的なコンピューティングデバイスのブロック図である。
【
図1C】本開示の例示的な実施形態による、画像拡張を実行する例示的なコンピューティングデバイスのブロック図である。
【
図2】本開示の例示的な実施形態による、トレーニングする例示的な修復モデルのブロック図である。
【
図3】本開示の例示的な実施形態による、例示的なコンテキストアテンション修復モデルのブロック図である。
【
図4】本開示の例示的な実施形態による、ブレンディングを用いた例示的なコンテキストアテンション修復モデルのブロック図である。
【
図5】本開示の例示的な実施形態による、例示的なコンテキストアテンションマッピングのブロック図である。
【
図6】本開示の例示的な実施形態による、拡張モデルトレーニングを実行するための例示的な方法のフローチャート図である。
【
図7】本開示の例示的な実施形態による、コンテキストアテンションに基づいて画像の拡張を実行するための例示的な方法のフローチャート図である。
【
図8】本開示の例示的な実施形態による、画像の拡張を実行するための例示的な方法のフローチャート図である。
【
図9】本開示の例示的な実施形態による、例示的な修復プロセスの図である。
【
図10】本開示の例示的な実施形態による、例示的なコンテキストアテンション修復画像の図である。
【
図11】本開示の例示的な実施形態による、例示的なコンテキストアテンション修復画像の図である。
【
図12】本開示の例示的な実施形態による、例示的なブレンドされた修復結果の図である。
【発明を実施するための形態】
【0024】
複数の図にわたって繰り返される参照番号は、様々な実装形態において同じ特徴を識別することを意図する。
【0025】
概要
概して、本開示は修復のために機械学習型モデルを活用することを対象とする。画像は、しばしば、除去するかまたは予測ピクセルと置換することをユーザが希望する1つまたは複数のオクルージョンを有する場合がある。たとえば、ランドマークにおいて撮られた写真は、除去することをユーザが希望する標識、人間、および他の物体を含む場合がある。1つまたは複数の不要なオブジェクトを画像から除去するために、本明細書で開示するシステムおよび方法が活用され得る。システムおよび方法は、入力データおよびコンテキストアテンションデータを取得することができる。入力データは、クローン化または除去のための1つまたは複数のオブジェクトを有する1つまたは複数の画像を含むことができ、コンテキストアテンションデータは、除去すべきオブジェクトおよび/またはクローン化すべき画像のエリアを記述するデータを含むことができる。入力データおよびコンテキストアテンションデータは、次いで、拡張画像を生成するために拡張モデルによって処理され得る。拡張画像は、入力データの1つまたは複数の画像からの特徴を備えることができるが、除去のための1つまたは複数のオブジェクトの代わりに入力画像のクローン化された部分を含んでよい。
【0026】
本明細書で開示するシステムおよび方法は、邪魔されるデータを予測するとともにオクルージョンを予測データと置換して拡張データを生成するために、1つまたは複数の機械学習型モデルを活用することができる。いくつかの実装形態では、1つまたは複数の機械学習型モデルは、グラウンドトゥルーストレーニングを用いてトレーニングされ得る。修復モデルをトレーニングするためのシステムおよび方法は、入力データおよびグラウンドトゥルースデータを受信することを含むことができる。グラウンドトゥルースデータは邪魔されていないデータを含むことができ、入力データは、1つまたは複数のオクルージョンを有するデータを含んでよい。入力データは、グラウンドトゥルースデータにオクルージョンを加えることによって生成されてよい。グラウンドトゥルースデータは、コンテキストアテンション出力を生成するためにコンテキストアテンションモデルを用いて処理され得る。入力データおよびコンテキストアテンション出力は、次いで、予測データを生成するために拡張モデルを用いて処理され得る。予測データは、予測される置換データによって1つまたは複数のオクルージョンが置換された、データを含むことができる。予測データおよびグラウンドトゥルースデータは、次いで、損失関数を評価するために比較され得る。評価に基づいて、拡張モデルの1つまたは複数のパラメータが調整されてよい。プロセスは、邪魔されたデータを正確に修復するように拡張モデルをトレーニングするために反復的に繰り返されてよい。
【0027】
トレーニングされたモデルは、次いで、様々な修復タスクのために使用され得る。本明細書で開示するシステムおよび方法は、画像データ、オーディオデータ、および/または3次元点群データを含む、様々なデータタイプを拡張するために使用され得る。1つまたは複数の機械学習型モデルを用いて修復するためのシステムおよび方法は、入力データを取得することを含むことができ、入力データは除去のための1つまたは複数のオクルージョンを含む。システムおよび方法は、1つまたは複数のユーザ入力を取得することをさらに含むことができる。1つまたは複数のユーザ入力は、1つまたは複数のコンテキストアテンション入力を含むことができ、クローン化すべき入力データの部分の1つまたは複数の選択結果を含んでよい。入力データおよび1つまたは複数のユーザ入力は、拡張データを生成するために拡張モデルを用いて処理され得る。拡張データは、1つまたは複数のオクルージョンの代わりに置換データを含むことができる。システムおよび方法は、ユーザに拡張データを提供することをさらに含むことができる。
【0028】
いくつかの実装形態では、システムおよび方法は画像修復のために利用され得る。たとえば、ユーザは、不要な人間、ごみ、建物などを除去するために、画像中の1つまたは複数のオブジェクトを予測データと置換することを希望することがある。画像修復のためのシステムおよび方法の利用は、ユーザから入力データを受信することを含むことができ、入力データは1つまたは複数の画像を含む。コンテキストアテンションデータも取得され得る。コンテキストアテンションデータは、選択されたピクセルデータを含むことができ、選択されたピクセルデータは入力画像のピクセルを含む。入力データは、予測コンテキストアテンションデータを生成するために予測モデルを用いて処理され得る。予測コンテキストアテンションデータおよびコンテキストアテンションデータは、ブレンドデータを生成するためにブレンドモデルを用いて処理され得る。ブレンドデータおよび入力画像は、次いで、拡張画像を生成するためにオクルージョンモデルを用いて処理され得る。拡張画像は、1つまたは複数のオクルージョンが予測データと置換された、入力画像を含むことができる。
【0029】
機械学習型モデルをトレーニングすることは、入力データおよびグラウンドトゥルースデータを受信または取得することを伴うことができる。入力データおよびグラウンドトゥルースデータは、それぞれ、入力画像およびグラウンドトゥルース画像を含むことができる。グラウンドトゥルース画像はシーンを描くことができ、入力画像は、1つまたは複数のオクルージョンを有するシーンを描くことができる。いくつかの実装形態では、入力画像は、グラウンドトゥルース画像にオクルージョンを加えることによって生成され得る。1つまたは複数の機械学習型モデルをトレーニングすることは、複数のトレーニングセットを取得することを含むことができ、各トレーニングセットは入力データおよびグラウンドトゥルースデータを含む。代替および/または追加として、入力データおよびグラウンドトゥルースデータは、入力データのためのオーディオデータの一部分がグラウンドトゥルースデータと比較して邪魔されている、オーディオデータを含むことができる。オクルージョンは、人間、動物、建物、および/または画像キャプチャが作成したオクルージョンであり得る。いくつかの実装形態では、データはオーディオデータであり得、オクルージョンは、不規則音、機器が生成した雑音、白色雑音などであり得る。
【0030】
グラウンドトゥルースデータは、コンテキストアテンション出力を生成するためにコンテキストアテンションモデルを用いて処理され得る。コンテキストアテンションモデルは、1つまたは複数のコンテキストアテンションサブブロックを含むことができる。いくつかの実装形態では、コンテキストアテンションモデルは、フィードフォワード型の完全畳み込みニューラルネットワークを含むことができる。コンテキストアテンションモデルは、1つまたは複数のソフトマックスサブブロックを含むことができる。
【0031】
いくつかの実装形態では、コンテキストアテンションモデルは、トレーニングコンテキストアテンション出力を生成するためにコンテキストアテンションモデルを用いて1つまたは複数のトレーニング画像を処理することによってトレーニングされ得る。トレーニングコンテキストアテンション出力は、トレーニング拡張画像を生成するために修復モデルを用いて処理され得る。トレーニング拡張画像とグラウンドトゥルース画像との間の差分が、次いで、トレーニング損失関数を評価するために使用され得る。トレーニング損失関数評価は、次いで、コンテキストアテンションモデルの1つまたは複数のコンテキストアテンションパラメータを調整するために使用され得る。
【0032】
コンテキストアテンションデータは、コンテキストアテンションサブブロックおよび畳み込みニューラルネットワークを用いてグラウンドトゥルース画像を処理することによって生成されたグラウンドトゥルース画像データの一部分を含むことができる。代替および/または追加として、コンテキストアテンションデータは、クローン化すべき入力画像の部分の1つまたは複数の選択結果を備えるユーザ入力データを含むことができる。
【0033】
入力データおよびコンテキストアテンション出力は、予測データを生成するために拡張モデルを用いて処理され得る。予測データは、1つまたは複数のオクルージョンを予測された置換データと置換する、拡張画像データを含むことができる。
【0034】
いくつかの実装形態では、拡張モデルは、予測モデル、ブレンドモデル、およびオクルージョンモデルを含むことができる。予測モデルは、コンテキストアテンション予測を生成するために入力データを処理することができる。ブレンドモデルは、ブレンドデータを生成するために予測コンテキストアテンションデータおよびコンテキストアテンション出力を処理することができる。ブレンドデータは、次いで、クローン化されたデータによって置換されているオクルージョンオブジェクトを含む予測画像を生成するために、入力データを用いて処理され得る。
【0035】
ブレンドモデルは、予測コンテキストアテンションデータとコンテキスト出力データとをランダムにブレンドするようにトレーニングされ得る。コンテキストアテンションデータは、ユーザ入力に基づいて生成されるデータであり得るか、または1つもしくは複数のデータセットに基づいて自動的に生成されてもよい。
【0036】
予測データおよびグラウンドトゥルースデータは、次いで、損失関数を評価するために比較され得る。損失関数は知覚損失関数であってよい。代替として、損失関数は、Kullback-Leibler(KL)発散損失関数、VGG損失関数、またはGAN損失関数であってよい。損失関数は、次いで、拡張モデルの1つまたは複数のパラメータを調整するために使用され得る。いくつかの実装形態では、予測モデルおよびブレンドモデルのうちの少なくとも1つの、1つまたは複数のパラメータは、損失関数の評価に応答して調整されてよい。
【0037】
修復するために1つまたは複数の機械学習型モデルを利用するコンピューティングシステムは、1つまたは複数のプロセッサ、および命令を一括して記憶する1つまたは複数の非一時的コンピュータ可読媒体を含むことができ、命令は、1つまたは複数のプロセッサによって実行されたとき、コンピューティングシステムに動作を実行させる。動作は、修復のための方法を含むことができる。
【0038】
システムおよび方法は、入力データを取得することを含むことができる。入力データは、1つまたは複数の入力画像を含むことができる。入力画像は、除去のための1つまたは複数のオブジェクトを含むことができる。オブジェクトは、画像に描かれたシーンの1つまたは複数の部分を邪魔するオクルージョンであり得る。オクルージョンは、画像不完全性、画像にキャプチャされた不要な人間もしくは物体、および/または以前に配置されたオクルージョンを含むことができる。
【0039】
1つまたは複数のユーザ入力が、次いで、取得され得る。1つまたは複数のユーザ入力は、1つまたは複数のコンテキストアテンション入力を含むことができる。たとえば、いくつかの実装形態では、1つまたは複数のユーザ入力は、クローン化することをユーザが希望するピクセルを含む画像のオクルージョンまたは部分のうちの少なくとも1つの選択結果を含むことができる。
【0040】
いくつかの実装形態では、第1のユーザ入力は、置換のためのオクルージョンの1つまたは複数の選択結果を含むことができる。システムおよび方法は、次いで、1つまたは複数の第2のユーザ入力を取得することができる。1つまたは複数の第2のユーザ入力は、1つまたは複数のオクルージョンを置換するためにクローン化すべき入力データの部分の1つまたは複数の選択結果を含むことができる。
【0041】
入力データおよび1つまたは複数のユーザ入力は、拡張データを生成するために拡張モデルを用いて処理され得る。拡張モデルは、グラウンドトゥルーストレーニングを介して、1つまたは複数のオブジェクトを除去および置換するようにトレーニングされ得る。いくつかの実装形態では、拡張モデルは、予測されたコンテキストアテンション出力を生成し、予測されたコンテキストアテンション出力を入力データのユーザが選択した部分とブレンドし、ブレンドデータおよび入力データを用いて拡張データを生成する。ブレンディング重みは、ランダムに選ばれること、自動的に決定されること、または手作業で選択されることが可能である。いくつかの実装形態では、ブレンディング重みは、ユーザインターフェースへの1つまたは複数の入力を介して、ユーザによって手作業で調整されてよい。ブレンディング重みは、スライドスケール(slide-scale)機能を介して事前選択されることが可能であるかまたは選ばれてよく、その結果、ユーザは、ブレンディング重みに基づく様々な可能なオプションを見ることができる。代替および/または追加として、ブレンディング重みは機械学習されてよい。たとえば、いくつかの実装形態では、ブレンディング重みは、グラウンドトゥルーストレーニングに基づいて決定および調整されてよく、かつ/または強化トレーニングによって再トレーニングされてよい。ブレンディング重みは、以前のユーザ対話に基づいて調整されてよく、その結果、ブレンドモデルは、ユーザ選好に向かって仕立てられるように調整される。ブレンディングは、データを意味論的にブレンドすることを含むことができる。いくつかの実装形態では、ブレンディングは、アテンションプーリングを伴うことができる。
【0042】
拡張データは、次いで、ユーザに提供され得る。拡張データは、入力画像中の1つまたは複数のオブジェクトを置換するために入力画像の部分が予測データと置換される、拡張画像を含むことができる。拡張画像は、視覚ディスプレイを介して提供されることが可能であり、視覚ディスプレイはコンピューティングデバイスの一部である。いくつかの実装形態では、コンピューティングデバイスはモバイルコンピューティングデバイスであり得る。
【0043】
いくつかの実装形態では、本明細書で開示するシステムおよび方法は、モバイルコンピューティングデバイスに実装され得る。たとえば、入力データは、モバイルコンピューティングデバイスに記憶される1つまたは複数のセンサから取得され得る(たとえば、1つまたは複数の画像センサを用いて取得される画像データ、1つまたは複数のオーディオセンサを用いて取得されるオーディオデータなど)。1つまたは複数のユーザ入力は、タッチスクリーンディスプレイ上の1つまたは複数のタッチ入力であり得、拡張データは、モバイルコンピューティングデバイスの1つまたは複数の出力構成要素を介して提供され得る(たとえば、視覚ディスプレイ上に表示される拡張画像、1つまたは複数のスピーカーを介して再生される拡張オーディオなど)。
【0044】
いくつかの実装形態では、本明細書で開示するシステムおよび方法は、ユーザインターフェースを介して提供され得る。たとえば、ユーザインターフェースは、1つまたは複数の視覚インターフェース機能を含むことができる。より詳細には、入力データは、表示のために提供され得る画像を含むことができる。ユーザインターフェースは、次いで、置換のために選択すべき画像の1つまたは複数の部分をユーザが選択することを可能にすることができる。ユーザインターフェースはまた、1つまたは複数の以前に選択された部分を置換するためにクローン化すべき画像の1つまたは複数の部分をユーザが選択することを可能にしてよい。入力画像およびユーザ入力は、次いで、拡張画像を生成するために処理されることが可能であり、拡張画像は、次いで、視覚インターフェースを介した表示のために提供される。
【0045】
その上、いくつかの実装形態では、ユーザ入力が提供されると、入力画像の上に1つまたは複数の描写が表示されてよい。たとえば、除去のためのオクルージョンの選択に応答して、選択されたものの視覚フィードバックを提供するために、オクルージョンのシルエットが入力画像の上に重ね合わせられて表示されてよい。シルエットは、1つもしくは複数の色で着色されてよく、不透明もしくは部分的に透明であってよく、かつ/またはラベル付けされてよい。代替および/または追加として、ユーザ入力は、入力画像上で絵を描くことと同様に表示されてよく、その結果、第1のユーザ入力および/または第2のユーザ入力は、ペイントアプリケーションにおけるブラシツール応答と同様に表示されてよい。第1のユーザ入力および第2のユーザ入力は、異なる色またはスタイルで表示されてよい。
【0046】
いくつかの実装形態では、本明細書で開示するシステムおよび方法は、画像中でオブジェクトを移動させるために使用されることが可能であり、シーン全体にわたってオブジェクトが移動するビデオを生成するために使用されてよい。たとえば、ユーザは、セグメント化するとともに画像の異なる部分に移動させるべき1つまたは複数のオブジェクトを選択してよい。当初は1つまたは複数のオブジェクトを含む画像の部分が、次いで、本明細書で開示するシステムおよび方法を使用して修復され得る。これらのシステムおよび方法はまた、画像中のオブジェクトをサイズ変更するとともに画像の今では拡張された部分を修復するために使用され得る。
【0047】
1つまたは複数のオブジェクトまたはオクルージョンは、自動認識、ラッソジェスチャー、手作業のブラシ入力によって、または様々な他の選択技法を介して選択され得る。いくつかの実装形態では、ラッソジェスチャーは、物体認識プロセスによって支援され得る。自動認識は、画像の前景および背景を識別するように1つまたは複数の機械学習型モデルをトレーニングすることを伴うことができる。1つまたは複数の機械学習型モデルは、対象の人間または物体をさらに決定するようにトレーニングされてよい。1つまたは複数の機械学習型モデルはまた、除去のためにユーザがどのオブジェクトまたは特徴(たとえば、ごみ箱、ロゴ、画像または顔の不完全性など)を頻繁に選択するのかを、過去のユーザ対話から学習してよい。1つまたは複数の機械学習型モデルはまた、将来の入力画像中に維持するためにどの人間およびオブジェクトが許容できるのかを学習するようにトレーニングされてよい。
【0048】
いくつかの実装形態では、本明細書で開示するシステムおよび方法は、入力テンソルを平坦化すること、変換された入力を生成するためにコンテキストアテンション行列を用いて平坦化入力テンソルを処理することを含むことができ、変換された入力は、次いで、出力テンソルを生成するために平坦化解除され得る。
【0049】
コンテキストアテンションモデルおよび拡張モデルは、同時または別個にトレーニングされてよい。いくつかの実装形態では、コンテキストアテンションモデルは、拡張モデルをトレーニングする前にトレーニングされ得る。
【0050】
いくつかの実装形態では、拡張モデルは、拡張のための入力マスクターゲットを利用することができる。追加および/または代替として、本明細書で開示するシステムおよび方法は、画像修復タスクのために画像の部分をセグメント化するための画像セグメント化マスクを利用してよい。
【0051】
本開示のシステムおよび方法は、いくつかの技術的な効果および利点をもたらす。一例として、修復機械学習システムは、置換データの作成に対して完了された予測のパラメータを改善することによって算出性能を支援することができる。したがって、実行される修復は、以前の技法よりも高品質(たとえば、より正確)であり得、そのことは、コンピューティングシステムの性能の改善を表す。さらに、提案される手法は、いくつかの既存の技法によって必要とされる、評価されるべきそのような大きいスペクトルの予測を作成する必要をなくすことがある。多数の異なる予測を作成する必要をなくすことは、プロセッサ使用量、メモリ使用量、および/またはネットワーク帯域幅使用量などの、コンピューティングリソースの節約をもたらすことができる。グラウンドトゥルースデータの使用も、トレーニングからのいくつかの混乱を除去し、トレーニングをもっと効率的にさせ、それによって、コンピューティングリソースを節約する。トレーニングされたシステムは、利用されるコンピューティングリソースの量を、以前のシステムに対して低減してよい。
【0052】
機械学習の実装はまた、画像中の不要データのあらゆる発生を手作業で編集する必要をなくすので、もっと多くの効率が追加されてよい。システムはまた、コーダが、長々と引き延ばされたコードを書くこと、コードを実行すること、コードを改善すること、および継続的に性能を監視することに対する必要をなくしてよい。
【0053】
さらに、本明細書で説明するシステムおよび方法は、より高品質の入力画像をシステムに提供するために、システムへの入力として画像が使用される任意のプロセスで使用されてよい。可能な適用例の非限定的な例は、患者のX線画像またはスキャン画像などの医療画像、機械類の部材の画像が定期的に収集され、いつ部品が修理または交換を必要とする可能性があるのかを決定するために使用される、機械類の部材の状態を監視すること、および自律車両の周囲の、自律車両が収集する画像に基づいてその進路および速度に対して決定を行う自律車両を含む。
【0054】
本明細書で開示するシステムおよび方法の軽減された計算コストは、本明細書で開示するシステムおよび方法がモバイルコンピューティングデバイスを用いて使用されることを可能にして、ユーザの手の手のひらの中で画像修復が完了されることを可能にすることができる。
【0055】
ここで図を参照しながら、本開示の例示的な実施形態がさらに詳細に説明される。
【0056】
例示的なデバイスおよびシステム
図1Aは、本開示の例示的な実施形態による、データ拡張を実行する例示的なコンピューティングシステム100のブロック図を示す。システム100は、ネットワーク180を介して通信可能に結合されている、ユーザコンピューティングデバイス102、サーバコンピューティングシステム130、およびトレーニングコンピューティングシステム150を含む。
【0057】
ユーザコンピューティングデバイス102は、たとえば、パーソナルコンピューティングデバイス(たとえば、ラップトップまたはデスクトップ)、モバイルコンピューティングデバイス(たとえば、スマートフォンまたはタブレット)、ゲーム機もしくはゲームコントローラ、ウェアラブルコンピューティングデバイス、組込みコンピューティングデバイス、または任意の他のタイプのコンピューティングデバイスなどの、任意のタイプのコンピューティングデバイスであり得る。
【0058】
ユーザコンピューティングデバイス102は、1つまたは複数のプロセッサ112およびメモリ114を含む。1つまたは複数のプロセッサ112は、任意の好適な処理デバイス(たとえば、プロセッサコア、マイクロプロセッサ、ASIC、FPGA、コントローラ、マイクロコントローラなど)であり得、1つのプロセッサ、または動作可能に接続されている複数のプロセッサであり得る。メモリ114は、RAM、ROM、EEPROM、EPROM、フラッシュメモリデバイス、磁気ディスクなど、およびそれらの組合せなどの、1つまたは複数の非一時的コンピュータ可読記憶媒体を含むことができる。メモリ114は、データ116、およびユーザコンピューティングデバイス102に動作を実行させるようにプロセッサ112によって実行される命令118を記憶することができる。
【0059】
いくつかの実装形態では、ユーザコンピューティングデバイス102は、1つまたは複数の拡張モデル120を記憶することまたは含むことができる。たとえば、拡張モデル120は、非線形モデルおよび/または線形モデルを含むニューラルネットワーク(たとえば、ディープニューラルネットワーク)または他のタイプの機械学習型モデルなどの、様々な機械学習型モデルであり得るか、またはさもなければ様々な機械学習型モデルを含むことができる。ニューラルネットワークは、フィードフォワードニューラルネットワーク、回帰型ニューラルネットワーク(たとえば、長短期メモリ回帰型ニューラルネットワーク)、畳み込みニューラルネットワーク、または他の形態のニューラルネットワークを含むことができる。例示的な拡張モデル120が、
図2~
図5を参照しながら説明される。
【0060】
いくつかの実装形態では、1つまたは複数の拡張モデル120は、ネットワーク180を介してサーバコンピューティングシステム130から受信されること、ユーザコンピューティングデバイスメモリ114に記憶されること、次いで、1つまたは複数のプロセッサ112によって使用されるかまたはさもなければ実装されることが可能である。いくつかの実装形態では、ユーザコンピューティングデバイス102は、単一の拡張モデル120の複数の平行なインスタンスを実施すること(たとえば、オクルージョンの複数のインスタンスにわたって平行なデータ拡張を実行すること)ができる。
【0061】
より詳細には、本明細書で開示するシステムおよび方法は、入力データおよびコンテキストアテンションデータを取得することができ、それらは、次いで、拡張データを生成するために拡張モデルを用いて処理され得る(たとえば、1つまたは複数のオクルージョンを除去するために画像が拡張され得る)。拡張モデルは、グラウンドトゥルーストレーニングを用いてトレーニングされることが可能であり、予測モデルおよびブレンドモデルを含んでよい。予測モデルは、予測コンテキストアテンションデータを生成するために入力データを処理することができる。ブレンドモデルは、次いで、ブレンドデータを生成するために予測コンテキストアテンションデータおよび取得されたコンテキストアテンションデータを処理することができる。ブレンドデータおよび入力データは、次いで、1つまたは複数のオクルージョンの代わりに置換データを含む拡張データを生成するために、拡張モデルに含まれるオクルージョンモデルを用いて処理されてよい。
【0062】
追加または代替として、1つまたは複数の拡張モデル140は、クライアントサーバ関係に従ってユーザコンピューティングデバイス102と通信するサーバコンピューティングシステム130に含まれること、またはさもなければサーバコンピューティングシステム130によって記憶および実施されることが可能である。たとえば、拡張モデル140は、ウェブサービス(たとえば、修復サービス)の一部分としてサーバコンピューティングシステム130によって実施され得る。したがって、1つもしくは複数のモデル120が、ユーザコンピューティングデバイス102において記憶および実施されることが可能であり、かつ/または1つもしくは複数のモデル140が、サーバコンピューティングシステム130において記憶および実施されることが可能である。
【0063】
ユーザコンピューティングデバイス102はまた、ユーザ入力を受信する1つまたは複数のユーザ入力構成要素122を含むことができる。たとえば、ユーザ入力構成要素122は、ユーザ入力物体(たとえば、指またはスタイラス)のタッチに敏感な、タッチセンシティブ構成要素(たとえば、タッチセンシティブ表示スクリーンまたはタッチパッド)であり得る。タッチセンシティブ構成要素は、仮想キーボードを実装するのに役立つことができる。他の例示的なユーザ入力構成要素は、マイクロフォン、従来のキーボード、またはユーザがそれによってユーザ入力を提供できる他の手段を含む。
【0064】
サーバコンピューティングシステム130は、1つまたは複数のプロセッサ132およびメモリ134を含む。1つまたは複数のプロセッサ132は、任意の好適な処理デバイス(たとえば、プロセッサコア、マイクロプロセッサ、ASIC、FPGA、コントローラ、マイクロコントローラなど)であり得、1つのプロセッサ、または動作可能に接続されている複数のプロセッサであり得る。メモリ134は、RAM、ROM、EEPROM、EPROM、フラッシュメモリデバイス、磁気ディスクなど、およびそれらの組合せなどの、1つまたは複数の非一時的コンピュータ可読記憶媒体を含むことができる。メモリ134は、データ136、およびサーバコンピューティングシステム130に動作を実行させるようにプロセッサ132によって実行される命令138を記憶することができる。
【0065】
いくつかの実装形態では、サーバコンピューティングシステム130は、1つもしくは複数のサーバコンピューティングデバイスを含むか、またはさもなければ1つもしくは複数のサーバコンピューティングデバイスによって実装される。サーバコンピューティングシステム130が複数のサーバコンピューティングデバイスを含む事例では、そのようなサーバコンピューティングデバイスは、逐次コンピューティングアーキテクチャ、並列コンピューティングアーキテクチャ、またはそれらの何らかの組合せに従って動作することができる。
【0066】
上記で説明したように、サーバコンピューティングシステム130は、1つもしくは複数の機械学習型拡張モデル140を記憶すること、またはさもなければ、1つもしくは複数の機械学習型拡張モデル140を含むことができる。たとえば、モデル140は、様々な機械学習型モデルであり得るか、またはさもなければ様々な機械学習型モデルを含むことができる。例示的な機械学習型モデルは、ニューラルネットワークまたは他の多層非線形モデルを含む。例示的なニューラルネットワークは、フィードフォワードニューラルネットワーク、ディープニューラルネットワーク、回帰型ニューラルネットワーク、および畳み込みニューラルネットワークを含む。例示的なモデル140が、
図2~
図5を参照しながら説明される。
【0067】
ユーザコンピューティングデバイス102および/またはサーバコンピューティングシステム130は、ネットワーク180を介して通信可能に結合されているトレーニングコンピューティングシステム150との相互作用を介してモデル120および/または140をトレーニングすることができる。トレーニングコンピューティングシステム150は、サーバコンピューティングシステム130とは別個であり得るか、またはサーバコンピューティングシステム130の一部分であり得る。
【0068】
トレーニングコンピューティングシステム150は、1つまたは複数のプロセッサ152およびメモリ154を含む。1つまたは複数のプロセッサ152は、任意の好適な処理デバイス(たとえば、プロセッサコア、マイクロプロセッサ、ASIC、FPGA、コントローラ、マイクロコントローラなど)であり得、1つのプロセッサ、または動作可能に接続されている複数のプロセッサであり得る。メモリ154は、RAM、ROM、EEPROM、EPROM、フラッシュメモリデバイス、磁気ディスクなど、およびそれらの組合せなどの、1つまたは複数の非一時的コンピュータ可読記憶媒体を含むことができる。メモリ154は、データ156、およびトレーニングコンピューティングシステム150に動作を実行させるようにプロセッサ152によって実行される命令158を記憶することができる。いくつかの実装形態では、トレーニングコンピューティングシステム150は、1つもしくは複数のサーバコンピューティングデバイスを含むか、またはさもなければ1つもしくは複数のサーバコンピューティングデバイスによって実装される。
【0069】
トレーニングコンピューティングシステム150は、ユーザコンピューティングデバイス102および/またはサーバコンピューティングシステム130において記憶された機械学習型モデル120および/または140を、たとえば、誤差逆伝搬などの、様々なトレーニングまたは学習技法を使用してトレーニングする、モデル訓練器160を含むことができる。たとえば、損失関数は、(たとえば、損失関数の勾配に基づいて)モデルの1つまたは複数のパラメータを更新するために、モデルを通じて逆伝搬され得る。平均2乗誤差、尤度損失、交差エントロピー損失、ヒンジ損失、および/または様々な他の損失関数などの、様々な損失関数が使用され得る。ある回数のトレーニングイテレーションにわたってパラメータを反復的に更新するために勾配降下技法が使用され得る。
【0070】
いくつかの実装形態では、誤差逆伝搬を実行することは、時間を通じて短縮逆伝搬を実行することを含むことができる。モデル訓練器160は、トレーニングされているモデルの汎化能力を向上するために、いくつかの汎化技法(たとえば、重み減衰、ドロップアウトなど)を実行することができる。
【0071】
詳細には、モデル訓練器160は、トレーニングデータ162のセットに基づいて拡張モデル120および/または140をトレーニングすることができる。トレーニングデータ162は、たとえば、入力データおよびグラウンドトゥルースデータを含むトレーニングデータセットを含むことができる。いくつかの実装形態では、入力データは、グラウンドトゥルースデータに1つまたは複数のオクルージョンを加えることによって生成され得る。
【0072】
いくつかの実装形態では、ユーザが承諾を与えている場合、トレーニング例がユーザコンピューティングデバイス102によって提供され得る。したがって、そのような実装形態では、ユーザコンピューティングデバイス102に提供されるモデル120は、ユーザコンピューティングデバイス102から受信されるユーザ固有データに対してトレーニングコンピューティングシステム150によってトレーニングされ得る。いくつかの事例では、このプロセスは、モデルを個別化することと呼ばれる場合がある。
【0073】
モデル訓練器160は、所望の機能性を提供するために利用されるコンピュータ論理を含む。モデル訓練器160は、汎用プロセッサを制御するハードウェア、ファームウェア、および/またはソフトウェアで実装され得る。たとえば、いくつかの実装形態では、モデル訓練器160は、記憶デバイス上に記憶され、メモリにロードされ、かつ1つまたは複数のプロセッサによって実行される、プログラムファイルを含む。他の実装形態では、モデル訓練器160は、RAMハードディスクまたは光媒体もしくは磁気媒体などの有形コンピュータ可読記憶媒体に記憶されているコンピュータ実行可能命令の1つまたは複数のセットを含む。
【0074】
ネットワーク180は、ローカルエリアネットワーク(たとえば、イントラネット)、ワイドエリアネットワーク(たとえば、インターネット)、またはそれらの何らかの組合せなどの、任意のタイプの通信ネットワークであり得、任意の数の有線リンクまたはワイヤレスリンクを含むことができる。概して、ネットワーク180を介した通信は、多種多様な通信プロトコル(たとえば、TCP/IP、HTTP、SMTP、FTP)、符号化もしくはフォーマット(たとえば、HTML、XML)、および/または保護方式(たとえば、VPN、セキュアHTTP、SSL)を使用して、任意のタイプの有線および/またはワイヤレスの接続を介して搬送され得る。
【0075】
本明細書で説明する機械学習型モデルは、様々なタスク、適用例、および/または使用事例において使用され得る。
【0076】
いくつかの実装形態では、本開示の機械学習型モデルへの入力は、画像データであり得る。機械学習型モデルは、出力を生成するために画像データを処理することができる。一例として、機械学習型モデルは、画像セグメント化出力を生成するために画像データを処理することができる。別の例として、機械学習型モデルは、画像データ修正出力(たとえば、画像データの改変など)を生成するために画像データを処理することができる。別の例として、機械学習型モデルは、符号化画像データ出力(たとえば、画像データの符号化および/または圧縮された表現など)を生成するために画像データを処理することができる。別の例として、機械学習型モデルは、アップスケールされた画像データ出力を生成するために画像データを処理することができる。
【0077】
いくつかの実装形態では、本開示の機械学習型モデルへの入力は、音声データであり得る。機械学習型モデルは、出力を生成するために音声データを処理することができる。別の例として、機械学習型モデルは、潜在性埋め込み出力を生成するために音声データを処理することができる。別の例として、機械学習型モデルは、符号化音声出力(たとえば、音声データの符号化および/または圧縮された表現など)を生成するために音声データを処理することができる。別の例として、機械学習型モデルは、アップスケールされた音声出力(たとえば、入力音声データよりも品質が高い音声データなど)を生成するために音声データを処理することができる。別の例として、機械学習型モデルは、予測出力を生成するために音声データを処理することができる。
【0078】
いくつかの実装形態では、本開示の機械学習型モデルへの入力は、潜在性符号化データ(たとえば、入力の潜在性空間表現など)であり得る。機械学習型モデルは、出力を生成するために潜在性符号化データを処理することができる。一例として、機械学習型モデルは、認識出力を生成するために潜在性符号化データを処理することができる。別の例として、機械学習型モデルは、再構成出力を生成するために潜在性符号化データを処理することができる。別の例として、機械学習型モデルは、探索出力を生成するために潜在性符号化データを処理することができる。別の例として、機械学習型モデルは、再クラスタ化出力を生成するために潜在性符号化データを処理することができる。別の例として、機械学習型モデルは、予測出力を生成するために潜在性符号化データを処理することができる。
【0079】
いくつかの実装形態では、本開示の機械学習型モデルへの入力は、センサデータであり得る。機械学習型モデルは、出力を生成するためにセンサデータを処理することができる。一例として、機械学習型モデルは、認識出力を生成するためにセンサデータを処理することができる。別の例として、機械学習型モデルは、予測出力を生成するためにセンサデータを処理することができる。別の例として、機械学習型モデルは、セグメント化出力を生成するためにセンサデータを処理することができる。別の例として、機械学習型モデルは、セグメント化出力を生成するためにセンサデータを処理することができる。別の例として、機械学習型モデルは、視覚化出力を生成するためにセンサデータを処理することができる。別の例として、機械学習型モデルは、検出出力を生成するためにセンサデータを処理することができる。
【0080】
場合によっては、機械学習型モデルは、高信頼かつ/または効率的な送信または記憶(および/または、対応する復号)のために入力データを符号化することを含むタスクを実行するように構成され得る。たとえば、タスクは、オーディオ圧縮タスクであってよい。入力はオーディオデータを含んでよく、出力は圧縮オーディオデータを備えてよい。別の例では、入力は視覚データ(たとえば、1つまたは複数の画像またはビデオ)を含み、出力は圧縮視覚データを備え、タスクは視覚データ圧縮タスクである。別の例では、タスクは、入力データ(たとえば、入力オーディオまたは視覚データ)用の埋め込みを生成することを備えてよい。
【0081】
場合によっては、入力は視覚データを含み、タスクはコンピュータビジョンタスクである。場合によっては、入力は、1つまたは複数の画像用のピクセルデータを含み、タスクは画像処理タスクである。画像処理タスクは物体検出であってよく、ここで、画像処理出力は、1つまたは複数の画像の1つまたは複数の領域、および領域ごとに対象のオブジェクトを領域が描く可能性を識別する。別の例として、画像処理タスクは画像セグメント化であり得、ここで、画像処理出力は、1つまたは複数の画像中のピクセルごとにカテゴリーの所定のセットの中の各カテゴリーに対するそれぞれの可能性を規定する。たとえば、カテゴリーのセットは前景および背景であり得る。別の例として、カテゴリーのセットはオブジェクトクラスであり得る。別の例として、画像処理タスクは深度推定であり得、ここで、画像処理出力は、1つまたは複数の画像のピクセルごとにそれぞれの深度値を規定する。別の例として、画像処理タスクは動き推定であり得、ここで、ネットワーク入力は複数の画像を含み、画像処理出力は、入力画像のうちの1つのピクセルごとにネットワーク入力における画像間の、ピクセルにおいて描かれるシーンの動きを規定する。
【0082】
図1Aは、本開示を実施するために使用され得る1つの例示的なコンピューティングシステムを示す。他のコンピューティングシステムも使用され得る。たとえば、いくつかの実装形態では、ユーザコンピューティングデバイス102は、モデル訓練器160およびトレーニングデータセット162を含むことができる。そのような実装形態では、モデル120は、ユーザコンピューティングデバイス102において局所的にトレーニングされることと使用されることの両方が可能である。そのような実装形態のうちのいくつかでは、ユーザコンピューティングデバイス102は、ユーザ固有データに基づいてモデル120を個別化するためにモデル訓練器160を実装することができる。
【0083】
図1Bは、本開示の例示的な実施形態による、実行する例示的なコンピューティングデバイス10のブロック図を示す。コンピューティングデバイス10は、ユーザコンピューティングデバイスまたはサーバコンピューティングデバイスであり得る。
【0084】
コンピューティングデバイス10は、いくつかのアプリケーション(たとえば、アプリケーション1~N)を含む。各アプリケーションは、それ自体の機械学習ライブラリおよび機械学習型モデルを含む。たとえば、各アプリケーションは、機械学習型モデルを含むことができる。例示的なアプリケーションは、テキストメッセージングアプリケーション、電子メールアプリケーション、口述筆記アプリケーション、仮想キーボードアプリケーション、ブラウザアプリケーションなどを含む。
【0085】
図1Bに示すように、各アプリケーションは、たとえば、1つまたは複数のセンサ、コンテキストマネージャ、デバイス状態構成要素、および/または追加構成要素などの、コンピューティングデバイスのいくつかの他の構成要素と通信することができる。いくつかの実装形態では、各アプリケーションは、API(たとえば、パブリックAPI)を使用して各デバイス構成要素と通信することができる。いくつかの実装形態では、各アプリケーションによって使用されるAPIは、そのアプリケーションに特有である。
【0086】
図1Cは、本開示の例示的な実施形態による、実行する例示的なコンピューティングデバイス50のブロック図を示す。コンピューティングデバイス50は、ユーザコンピューティングデバイスまたはサーバコンピューティングデバイスであり得る。
【0087】
コンピューティングデバイス50は、いくつかのアプリケーション(たとえば、アプリケーション1~N)を含む。各アプリケーションは、中央インテリジェンスレイヤと通信している。例示的なアプリケーションは、テキストメッセージングアプリケーション、電子メールアプリケーション、口述筆記アプリケーション、仮想キーボードアプリケーション、ブラウザアプリケーションなどを含む。いくつかの実装形態では、各アプリケーションは、API(たとえば、すべてのアプリケーションにわたる共通API)を使用して中央インテリジェンスレイヤ(および、その中に記憶されるモデル)と通信することができる。
【0088】
中央インテリジェンスレイヤは、いくつかの機械学習型モデルを含む。たとえば、
図1Cに示すように、それぞれの機械学習型モデル(たとえば、モデル)が、アプリケーションごとに設けられること、および中央インテリジェンスレイヤによって管理されることが可能である。他の実装形態では、2つ以上のアプリケーションが単一の機械学習型モデルを共有することができる。たとえば、いくつかの実装形態では、中央インテリジェンスレイヤは、単一のモデル(たとえば、単一のモデル)をアプリケーションのすべてに提供することができる。いくつかの実装形態では、中央インテリジェンスレイヤは、コンピューティングデバイス50のオペレーティングシステム内に含まれるか、またはさもなければオペレーティングシステムによって実装される。
【0089】
中央インテリジェンスレイヤは、中央デバイスデータレイヤと通信することができる。中央デバイスデータレイヤは、コンピューティングデバイス50用のデータの集中型リポジトリであり得る。
図1Cに示すように、中央デバイスデータレイヤは、たとえば、1つまたは複数のセンサ、コンテキストマネージャ、デバイス状態構成要素、および/または追加構成要素などの、コンピューティングデバイスのいくつかの他の構成要素と通信することができる。いくつかの実装形態では、中央デバイスデータレイヤは、API(たとえば、プライベートAPI)を使用して各デバイス構成要素と通信することができる。
【0090】
例示的なモデル構成
図2は、本開示の例示的な実施形態による、トレーニングされている例示的な拡張モデル200のブロック図を示す。いくつかの実装形態では、拡張モデル200は、1つまたは複数のオクルージョンを有するシーンを描く1つまたは複数の画像を記述する入力データ202のセットを受信するようにトレーニングされ、入力データ202の受信の結果として、拡張された予測画像を含む出力データ226を提供する。したがって、いくつかの実装形態では、拡張モデル200は、画像中のオクルージョンを予測ピクセルと置換するように動作可能な画像拡張モデル210を含むことができる。
【0091】
その上、
図2に示す例示的な拡張モデル200システムは、拡張モデル210とコンテキストアテンションモデル220の両方のためのトレーニングフローを含む。拡張モデル210およびコンテキストアテンションモデル220は、同時または別個にトレーニングされ得る。いくつかの実装形態では、コンテキストアテンションモデル220は、拡張モデル210の前にトレーニングされ得る。
【0092】
拡張モデル210をトレーニングすることは、入力データ202およびグラウンドトゥルースデータ204を取得することを伴うことができる。入力データ202およびグラウンドトゥルースデータ204は各々、それぞれ、1つまたは複数の画像を含むことができる。グラウンドトゥルース画像はシーンを描いてよく、入力画像は、1つまたは複数のオクルージョンが加えられたシーンを描いてよい。グラウンドトゥルースデータ204は、機械学習を使用してコンテキストアテンションを推定するためにコンテキストアテンションモデル220によって処理され得る。コンテキストアテンションモデル220の出力は、コンテキストアテンション出力を含んでよい。入力データ202は、修復モデル212とともに拡張モデル210によって処理され得る。入力データ202は、予測コンテキストアテンションデータを生成するために予測モデル214によって処理されてよい。予測コンテキストアテンションデータおよびコンテキストアテンション出力は、次いで、データをランダムにブレンドしてブレンドデータを生成するためにブレンドモデル216を用いて処理され得る。ブレンドデータおよび入力202データは、次いで、予測データ226を生成するために処理され得る。予測データ226は、1つまたは複数のオクルージョンが予測ピクセルと置換された入力画像のシーンを描く、予測される画像を含むことができる。予測データ226およびグラウンドトゥルースデータ204は、次いで、損失関数228を評価するために使用され得る。拡張モデル210の1つまたは複数のパラメータは、損失関数228評価に応答して調整されてよい。1つまたは複数のパラメータは、予測モデル214、ブレンドモデル216、またはオクルージョンモデル212のうちの少なくとも1つの、1つまたは複数のパラメータであってよい。トレーニングされた拡張モデルは、次いで、ユーザガイドを伴うかまたは伴わない修復タスクのために使用され得る。
【0093】
コンテキストアテンションモデル220は、コンテキストアテンション出力を生成するためにグラウンドトゥルースデータ204を処理することによってトレーニングされ得る。コンテキストアテンション出力および入力データ202は、次いで、修復タスクにコンテキストアテンションマップを適用してトレーニング拡張データを生成するために修復モデル222を用いて処理され得る。トレーニング拡張データおよびグラウンドトゥルースデータ204は、トレーニングコンテキストアテンション損失関数224を評価するために比較され得る。評価に基づいて、コンテキストアテンションモデル220の1つまたは複数のパラメータが調整されてよい。いくつかの実装形態では、入力データ202、グラウンドトゥルースデータ204、およびトレーニング拡張データは各々、それぞれの画像を含んでよく、トレーニング拡張画像は、1つまたは複数のピクセルが、グラウンドトゥルース画像204に基づく予測データと置換された、入力画像を描く。
【0094】
図3は、本開示の例示的な実施形態による、例示的な拡張モデル300のブロック図を示す。いくつかの実装形態では、拡張モデル300は、置換することをユーザが希望する1つまたは複数のオブジェクトを有する入力RGB画像を記述する入力データ302のセットを受信するようにトレーニングされ、入力データ302の受信の結果として、1つまたは複数のオブジェクトが予測ピクセルと置換された拡張RGB画像を含む、出力データ310を提供する。したがって、いくつかの実装形態では、拡張モデル300は、修復タスクを完了するように動作可能な修復拡張モデル306を含むことができる。
【0095】
図3では、拡張モデル306は、ユーザがガイドしたコンテキストアテンションデータ304に少なくとも部分的に基づいて修復タスク308を実行することができる。たとえば、この実装形態では、拡張モデル306は、ユーザがガイドしたコンテキストアテンションデータ304の形態をなす、入力データ302および1つまたは複数のユーザ入力を受信することができ、拡張データ310を生成することができる。拡張モデルは、グラウンドトゥルーストレーニングを使用してトレーニングされ得る。いくつかの実装形態では、拡張データ310は、ユーザがガイドしたコンテキストアテンションデータ304に少なくとも部分的に基づいて生成された予測データを含むことができる。いくつかの実装形態では、入力データ302は、拡張データ310を生成するために複数のピクセルを置換することによって拡張されてよいRGB画像データを含んでよい。置換されているピクセルは、手作業で選択されてよく、または自動的に認識されてもよい。いくつかの実装形態では、複数のピクセルを置換するデータは、ユーザによって選択された1つまたは複数のピクセルを含んでよい。
【0096】
図4は、本開示の例示的な実施形態による、例示的な拡張モデル400のブロック図を示す。拡張モデル400は、拡張モデル400が予測コンテキストアテンションモデル414およびブレンドモデル416をさらに含むことを除いて、
図3の拡張モデル300と類似である。
【0097】
図4では、拡張モデル410は、入力データ402およびユーザ入力データ404を取得するように構成される。拡張モデル410は、修復タスクを実行するようにトレーニングされた1つまたは複数の機械学習型モデルを含むことができる。たとえば、
図4の拡張モデル410は、予測コンテキストアテンションデータ414を生成するための予測モデル414、予測コンテキストアテンションデータとユーザ入力データ404とをブレンドするためのブレンドモデル416、およびブレンドデータに基づいて入力データ402中のオクルージョンを置換するためのオクルージョンモデル412を含む。
【0098】
たとえば、拡張モデル410は、入力データ402およびユーザ入力データ404を取得してよい。入力データ402は、予測コンテキストアテンションデータを生成するために予測モデル414を用いて処理されてよい。予測コンテキストアテンションデータおよびユーザ入力データ404は、次いで、ブレンドデータを生成するためにブレンドモデル416とブレンドされ得る。ブレンドデータおよび入力データ402は、次いで、拡張データ420を生成するために、入力データ402中の1つまたは複数のオクルージョンを置換するためにオクルージョンモデル412を用いて処理されてよい。
【0099】
図5は、本開示の例示的な実施形態による、例示的なコンテキストアテンションモデル500のブロック図を示す。いくつかの実装形態では、コンテキストアテンションモデル500は、画像を記述する入力データ502のセットを受信するようにトレーニングされ、入力データ502の受信の結果として、コンテキストアテンション出力を記述する出力データ510を提供する。したがって、いくつかの実装形態では、コンテキストアテンションモデル500は、平坦化入力テンソル502を変換するように動作可能なコンテキストアテンション行列506を含むことができる。
【0100】
コンテキストアテンションモデル500は、コンテキストアテンションマッピングのために使用され得る。コンテキストアテンションマッピングは、入力テンソル502を受信することを含むことができる。入力テンソル502は、次いで、平坦化され得る(504)。平坦化入力テンソル504は、変換されたデータ508を生成するためにコンテキストアテンション行列506を用いて処理され得る。変換されたデータは、次いで、出力テンソル510を生成するために平坦化解除され得る。
【0101】
図9は、本開示の例示的な実施形態による、例示的な修復プロセス900の図を示す。第1の画像902は入力画像であり得る。入力画像はRGB画像であってよい。入力画像は、1つまたは複数のオクルージョンを含む場合がある。
【0102】
第2の画像904は、シーンを邪魔する人間910および飛行機912の認識を含む。飛行機912を描くピクセルを置換する際の使用のために、ソースピクセル908のセットが識別され得る。
【0103】
最後に、第3の画像906は、人間910を描くピクセルを置換するために選択されるソースピクセル914の表示を含む。置換は、次いで、予測コンテキストアテンションデータを、選択/識別されたソースピクセル912および914とブレンドすること、次いで、ブレンドデータおよび入力画像に基づいて拡張画像を生成することによって、完了されてよい。
【0104】
図10は、本開示の例示的な実施形態による、例示的な修復結果1000の図を示す。
【0105】
左上の画像1002は、例示的な入力画像を示す。入力画像は、右上の画像1004に修復画像を生成するために、ユーザがガイドした入力を伴わずに修復モデルを用いて処理され得る。修復画像は、1つまたは複数のオクルージョン(たとえば、人間)の代わりに置換ピクセルを含む。
【0106】
左下の画像1006は、入力画像の上に重ね合わせられた、ユーザ入力1010の描写とともに入力画像を描く。ユーザ入力1010は、ソースピクセルとして使用すべき入力画像の一部分のコンテキストアテンション入力選択結果を含むことができる。置換のためのターゲットピクセル1012は、自動的に認識されてよく、または手作業で選択されてもよい。いくつかの実装形態では、予測モデルは、予測コンテキストアテンションデータを生成するために入力画像を処理してよい。予測コンテキストアテンションデータおよびコンテキストアテンション入力は、ブレンドデータを生成するためにブレンドモデルを用いて処理され得る。ブレンドデータおよび入力画像は、次いで、右下1008に描かれた拡張画像を生成するために処理され得る。ユーザ入力1010に部分的に基づく拡張画像は、ユーザ入力を伴わずに生成される修復画像よりも正確な予測を提供してよい。
【0107】
図11は、本開示の例示的な実施形態による、例示的な修復結果1100の図を示す。第1の画像1102は入力画像であり得、置換すべき1つまたは複数のオクルージョンを含んでよい。たとえば、入力画像は、シーンから除去することをユーザが希望する1人または複数の人間を含む場合がある。1つまたは複数の機械学習型モデルは、保持すべき画像中の1つまたは複数のオブジェクト、および除去すべき1つまたは複数のオブジェクトを認識してよい。保持すべき1つまたは複数のオブジェクト1110は、第1の色で入力画像の一部分の上に重ね合わせられた描写を介して示されてよい。除去すべき1つまたは複数のオブジェクト1108は、第2の色で入力画像の一部分の上に重ね合わせられた描写を介して示されてよい。ユーザは、除去すべきオブジェクト1112を選択してよく、ソースピクセル1114として使用すべき画像の一部分を選択してよい。画像の上に重ね合わせられた1つまたは複数の描写を介して選択結果が示され得る。第2の画像1104は、ソースピクセル1114として使用すべき画像の一部分を示す描写を描く。選択されたソースピクセル1114および入力画像は、不要なオブジェクトが置換ピクセルと置換された出力画像1106を生成するために、拡張モデルを用いて処理されてよい。
【0108】
図12は、本開示の例示的な実施形態による、例示的な修復結果1200の図を示す。いくつかの実装形態では、入力画像1204は、視覚インターフェースの一部としての表示のために提供され得る。入力画像1204は、除去することをユーザが希望する1つまたは複数のオクルージョンを含む場合がある。オクルージョンは、手作業で選択され得るか、または1つもしくは複数の認識技法を使用して自動的に認識されてよい。視覚インターフェースは、入力画像の上に重ね合わせられた1つまたは複数の描写を使用して、認識されたオクルージョン1210を示すことができるオーバーレイインターフェース1202を提供してよい。ユーザは、ソースピクセル1208として使用すべき画像の一部分を選択するユーザ入力を提供するために視覚インターフェースと対話してよい。選択されたソースピクセル1208は、1つまたは複数の指標を用いて示され得る。
【0109】
画像修復のための拡張システムは、予測コンテキストアテンションデータを生成するために予測モデルを用いて入力画像1204を処理することができる。ユーザ入力に基づいて生成される予測コンテキストアテンションデータおよびコンテキストアテンションデータは、ブレンドデータを生成するためにブレンドモデルを用いて処理され得る。ブレンドデータおよび入力画像1204は、次いで、1つまたは複数のオクルージョンを描くために使用されるピクセルの代わりに置換ピクセルを含む拡張画像1206を生成するために、オクルージョンモデルを用いて処理され得る。ブレンドモデルのためのブレンディング重みは、手作業で選択されてよく、または1つもしくは複数のモデルのトレーニング中に自動的に決定されてもよい。
【0110】
本明細書で開示するシステムおよび方法は、データを拡張するための1つもしくは複数のオクルージョンモデルまたは1つもしくは複数の修復モデルを含むことができる。本明細書で開示する修復モデルおよび/またはオクルージョンモデルは、拡張データを生成するために、入力データおよびブレンドデータを処理するための条件付き変分オートエンコーダを含むことができる。
【0111】
本開示の態様によれば、置換データは、たとえば、条件付き変分オートエンコーダなどの、機械学習型モデルによって予測され得る。予測される置換データは、遮られていないデータに大部分は基づくことができる。
【0112】
詳細には、提案される修復システムは、画像の中に修復されてよい、予測される置換データをより良好に改善するために、機械学習技術を利用してよい。オクルージョンモデルおよび/または修復モデルのトレーニングは、グラウンドトゥルース画像、拡張画像、およびマスクを伴うことができる。グラウンドトゥルース画像は、不要データを有しない画像であり得る。入力画像は、不要データによって邪魔されている画像の一部分を有するグラウンドトゥルース画像であり得る(たとえば、拡張画像データを生成するためにグラウンドトゥルース画像データに不要データが加えられ得る)。マスク(たとえば、バイナリピクセルマスク)は、拡張画像データ内の不要データのロケーションおよび/またはサイズを示すことができる。マスクは、自動的に生成され得るか、または1つもしくは複数のユーザ入力に少なくとも部分的に基づいて生成されてもよい。
【0113】
一例として、提案される修復システムは、置換画像データの予測を実行するために機械学習型オートエンコーダモデルを利用することができる。オートエンコーダモデルは、たとえば、条件付き変分オートエンコーダであり得る。いくつかの実装形態では、オートエンコーダモデルは、符号化データを生成するために入力画像データを符号化するように構成されたエンコーダモデル、およびエンコーダによって生成された符号化データに基づいて置換データを予測するように構成されたデコーダモデルを含むことができる。
【0114】
いくつかの実装形態では、オクルージョンモデルのトレーニングは、グラウンドトゥルース画像データから入力画像データを生成することによって(たとえば、グラウンドトゥルース画像データに不要データを加えることによって)開始することができる。マスク(たとえば、バイナリピクセルマスク)は、拡張画像データ内の不要データのロケーションを示すことができる。
【0115】
次に、エンコーダの出力として、埋め込みと呼ばれることもある符号化データを生成するために、入力画像がマスクとともにエンコーダに入力され得る。いくつかの実装形態では、トレーニング中、グラウンドトゥルース画像およびマスクも、第2の異なるエンコーダを使用することによって符号化される。符号化グラウンドトゥルース画像は、予測候補を狭めるように復号の予測プロセスを支援するために使用されるべき、分布値または特徴ベクトルを作成するために使用され得る。いくつかの実装形態では、復号および予測する際にデコーダが埋め込みと特徴ベクトルの両方に依拠することを必要とするために(たとえば、デコーダモデルを汎化するために)、分布値がランダムな値で乗算され得る。
【0116】
マスクを用いて入力画像データから作り出され特徴ベクトルと組み合わせられた符号化データが、デコーダに入力され得る。デコーダは、置換画像を作成するためにデータを復号することができる。言い方を変えれば、デコーダは、グラウンドトゥルースデータを整合させるための試行の際に不要データを置換する、置換データを予測することができる。
【0117】
詳細には、画像が復号された後、任意の個数および/または組合せの異なる損失関数を使用して、グラウンドトゥルース画像に対して置換画像が評価され得る。使用され得る3つの例示的な損失関数は、L1損失関数、VGG損失関数、および敵対的損失関数を含む。評価の後、損失関数に基づいて(たとえば、エンコーダモデルおよび/またはデコーダモデルの)パラメータを更新するために、修正または更新ステップが実行され得る。トレーニングは、いくつかのグラウンドトゥルースおよび入力画像トレーニング例にわたって反復的に繰り返され得る。
【0118】
トレーニングが完了すると、システムは、マスクによって不要として識別される入力画像の部分に対する置換データを生成するように動作させられることが可能である。詳細には、推論時間において、いくつかの不要データを有する新たな入力画像が、入力画像内の不要データのロケーションおよび/またはサイズを識別するマスクと一緒に、トレーニングされるエンコーダモデルに提供され得る。エンコーダは、入力画像およびマスクに基づいて(たとえば、「埋め込み」と呼ばれることもある)符号化データを作り出すことができる。
【0119】
さらに、いくつかの実装形態では、(たとえば、いくつかの事例では、ゼロベクトルであってよい)条件付けベクトルが、入力データおよびマスクからエンコーダによって生成された埋め込みデータとともに含められ得る(たとえば、それに連結され得る)。ランダム化された特徴ベクトルを用いてシステムがトレーニングされ得るので、良好にトレーニングされたシステムは妥当な結果を生み出すことができる。システムは、不要データの代わりに置換データを作成するために、トレーニングされたパラメータを使用してよい。
【0120】
したがって、推論時間において、不要な画像データを有する画像データが、不要な画像データを識別するマスクと一緒にエンコーダに入力され得る。符号化画像データは、次いで、条件付けベクトルとともにデコーダに入力され得る。デコーダは、不要な画像データが除去されており(たとえば、不要な画像データによって以前に邪魔されたシーンの一部分を描く)置換データと置換されている、置換画像を出力することができる。
【0121】
不要データを予測される置換データと正確に置換する機械学習を用いて修復するための方法は、ピクチャまたはビデオからの不要な物体および人間の除去を可能にする。オーディオ波形データを含む他の形態の媒体において、同じ必要が見出され得る(たとえば、クリック、ヒスなどの、不要な雑音を除去することが望まれることがあり、または他のスピーカーもしくは背景雑音に対応するオーディオデータを除去することによって単一のスピーカーを隔離することが望まれることがある)。不要データは、残りのデータの特性に基づいて予測データと置換され得る。したがって、システムおよび方法は、シーンなどの視覚画像データに関して本明細書で説明されるが、不要データを置換するために置換データが予測される他のタイプまたはモダリティのデータ(たとえば、オーディオデータ、オーディオデータ/音像、テキストデータ、テキストイメージなど)にも適用され得る。さらに、画像データは、2次元画像データ(たとえば、写真)または3次元画像データ(たとえば、メッシュモデル、または、たとえば、ライダー点群などの、点群)を含むことができる。たとえば、点群の場合、マスクは点群中のどの点が不要であるのかを示してよい。より一般的には、様々な他のモダリティに対して、マスクはデータのどの部分が不要であるのかを示してよい。
【0122】
修復およびデータ置換が非決定論的であり得るので、置換データの作成のために必要とされる予測は困難であり得る。機械学習は、正しい置換データをより正確に予測するようにシステムをトレーニングするための1つの方法であり得る。トレーニングされた予測システムは、次いで、最も正確な置換データを作成するために利用され得る。グラウンドトゥルースデータおよび入力データを使用してトレーニングすることは、不要データによって何が邪魔されているのかをより正確に予測するようにシステムのパラメータをシステムが評価および修正することを可能にすることができる。トレーニングのためのグラウンドトゥルースデータの使用は、トレーニングプロセスが非決定論的ではないことを意味する。
【0123】
画像データから不要な画像データを除去するプロセスは、修復と呼ばれることがある。自動化された修復に対してますます精密かつ効率的な成果をもたらすために、システムまたはプロセスに機械学習型モデルが実装され得る。たとえば、いくつかの実装形態では、修復は、条件付き変分オートエンコーダの利用を通じて達成され得る。
【0124】
いくつかの実装形態では、システムまたは方法は、弁別構成要素との連携における高密度予測のために条件付き変分オートエンコーダを利用してよく、弁別構成要素は、画像データ全体を2つのエリア、すなわち、存在するエリアおよび消失したエリアに分離する。条件付き変分オートエンコーダは、変分オートエンコーダの埋め込み特徴ベクトルに加えてグラウンドトゥルース情報を使用してよい。条件付き変分オートエンコーダは、予測を支援するために、不要な画像データの外側の画像ピクセルを使用してよい。
【0125】
いくつかの実装形態では、グラウンドトゥルース画像データは、オクルージョンモデルおよび/または修復モデルをトレーニングするために利用されてよい。いくつかの実装形態では、トレーニングは、不要な画像データのサイズおよびロケーションを示すマスクとともにエンコーダを用いて入力画像データを取り入れること、埋め込みデータを出力すること、別のエンコーダによってマスクとともにグラウンドトゥルース画像を取り入れること、特徴ベクトルを出力すること、特徴ベクトルをランダム化すること、埋め込みデータおよびランダム化された特徴ベクトルをデコーダに入力すること、置換画像データを出力すること、グラウンドトゥルース画像に対して置換画像データを評価すること、ならびにグラウンドトゥルース画像データに対する置換画像データの評価に基づいて動作のパラメータを修正することを含む。
【0126】
いくつかの実装形態では、グラウンドトゥルースデータは、不要データを含まないデータであってよい。グラウンドトゥルースデータは、システムによって作成される置換データの理想的な成果であり得る。グラウンドトゥルースデータは、修復方法または修復システムの確度を決定するための有用なデータセットであり得る。
【0127】
いくつかの実装形態では、拡張データは不要データを含んでよい。いくつかの実装形態では、不要データは、グラウンドトゥルースデータを不明瞭にするデータであり得る。たとえば、画像がノイズ除去プロセスを受けた後に残される不要データ、またはピクチャの風景を不明瞭にしている人間。
【0128】
いくつかの実装形態では、拡張データは、作成されたデータセットであってよい。拡張データは、グラウンドトゥルースデータのセットの中に不要データを加えることによって作り出されてよい。たとえば、グラウンドトゥルース画像データのセットのいくつかのピクセルは、色染みまたは他のオブジェクトを加えることによって邪魔されてよい。色染みは不要データと見なされてよく、したがって、色染みまたは他のオブジェクトを除去および置換するために修復システムが使用され得る。
【0129】
いくつかの実装形態では、修復システムまたは修復方法にマスクが含められてよい。マスクは、不要データのサイズおよびロケーションのインジケータであってよい。マスクは、置換されることを何が必要とするのか、
およびどんなデータが所望のデータセットの一部であるのかを分離するために使用されてよい。いくつかの実装形態では、弁別トレーニングのために逆マスクが作成されてよい。
【0130】
いくつかの実装形態では、マスクはユーザによって手作業で作成され得る。いくつかの実装形態では、マスクは自動的に作成され得る。いくつかの実装形態では、マスクの自動化された作成が、機械学習型モデル(たとえば、セグメント化モデル)を用いてマスクを作成するようにトレーニングされたシステムによって行われてよい。
【0131】
いくつかの実装形態では、修復システムに対する規則をトレーニングおよび提供するために機械学習型モデルが利用されてよい。トレーニングおよび実装され得る機械学習型モデルの一例は、条件付き変分オートエンコーダであってよい。たとえば、システムは、上位変分エンコーダパイプラインおよび下位エンコーダパイプラインを有してよい。たとえば、上位パイプラインは、拡張データおよびマスクを符号化して埋め込みデータを作成するためのエンコーダを含んでよく、下位パイプラインは、グラウンドトゥルースデータを符号化して特徴ベクトルを作成するためのエンコーダを含んでよい。いくつかの実装形態では、上位パイプラインおよび下位パイプラインが集束してよい。特徴ベクトルのガイドを有する埋め込みデータは、デコーダに入力されると置換データを作り出してよい。
【0132】
いくつかの実装形態では、特徴ベクトルは分布値を含んでよい。分布値は、標準偏差値および平均値であってよい。いくつかの実装形態では、分布値は、置換データを予測するためにデコーダが特徴ベクトルのみに依拠しないことを保証するためにランダム化され得る。
【0133】
いくつかの実装形態では、条件付けベクトルはゼロベクトルであってよい。いくつかの実装形態では、ゼロベクトルは、類別された特徴ベクトルを用いたトレーニングに起因して妥当な予測データを提供してよい。
【0134】
いくつかの実装形態では、グラウンドトゥルースデータに対する置換データの評価は、損失関数によって定量化されてよい。損失関数は、個別にまたは任意の組合せで使用されてよい。たとえば、モデルの予測を評価するためにL1損失関数、VGG損失関数、および/または敵対的損失関数が組合せで使用されてよい。評価はまた、3つの損失関数のうちのいずれかを個別に用いて完了されてよい。いくつかの実装形態では、KL発散損失関数が、トレーニングを評価することを支援することができる。たとえば、KL発散損失関数は、第2の項を0に傾かせてよい。0に向かって傾くことは、システムの改善、およびシステムが最適化されることに、より近くなりつつあることを示してよい。
【0135】
いくつかの実装形態では、弁別器方法または弁別器システムは、2つのレベル、すなわち、セマンティックレベルおよびテクスチャレベルを伴う。セマンティックレベルは、全体としてのデータの理解に関係することができる。テクスチャレベルは、置換データの先鋭度を含む、予測データのより細かい部分に関係してよい。
【0136】
いくつかの実装形態では、修復システムおよび修復方法が3次元点群編集に適用されてよい。点群の1つまたは複数の点は不要データであってよく、除去または置換される必要があってよい。いくつかの実装形態では、3次元の点群のための修復システムまたは修復方法は、グラウンドトゥルース3次元点群、入力3次元点群、およびマスクを用いてトレーニングされてよい。入力3次元点群は、不要データの付加を伴うグラウンドトゥルース3次元点群であってよい。不要データは、場違いの点、不要な点、またはいくつかの他の形態の邪魔しているデータであってよい。マスクは、不要データのロケーションのインジケータであってよい。
【0137】
いくつかの実装形態では、低いオーディオ品質を有する受信音声セグメントのエリアの隙間を埋めるために、音声認識において修復システムおよび修復方法が適用されてよい。隙間が埋められた音声セグメントは、次いで、入力として音声認識システムに提供されてよい。音声認識システムに提供された音声セグメントのオーディオ品質を改善することは、音声認識プロセスのより高い確度につながってよく、かつ/またはオーディオ品質が低い音声セグメントとともに音声認識が使用されることを可能にしてよい。
【0138】
いくつかの実装形態では、白黒写真をカラー化するために修復システムおよび修復方法が適用されてよい。たとえば、いくつかの実装形態では、白黒写真のセットが手作業でまたはコンピュータ支援を用いてカラー化されてよい。たとえば、カラー化システムをトレーニングするために、手作業でカラー化された白黒写真のセットがグラウンドトゥルースデータとして修復システムに入力されてよく、元の白黒写真が拡張データの代わりに入力されてよい。カラー化システムは、トレーニングするためにこのデータサンプルを使用してよい。トレーニングが完了すると、システムは、以前にはカラー化されていない古い白黒写真から、カラー化された画像を作り出してよい。
【0139】
いくつかの実装形態では、修復システムは、ノイズを除去する変分オートエンコーダを置き換えてよく、またはそれと連携して使用されてもよい。たとえば、ノイズを除去する変分オートエンコーダは、データのセットからノイズを除去してよく、修復システムは、ノイズ除去プロセスの後に残された不要データを除去および置換してよい。
【0140】
いくつかの実装形態では、修復システムはウェブアプリケーションであってよい。いくつかの実装形態では、システムはオフラインのデスクトップアプリケーションであってよい。その上、システムはモバイルアプリケーションであり得る。いくつかの実装形態では、システムは、別のアプリケーションのためのアドオンまたは拡張であってよい。システムは、もっと大きいアプリケーションの内蔵機能であり得る。別の例では、システムは、サービスとして(たとえば、サービスレイヤとして、かつ/またはサーバコンピューティングデバイスによって)提供され得る。いくつかの実装形態では、自動化されたマスク作成は、修復システムと同じアプリケーションに内蔵され得る。
【0141】
いくつかの実装形態では、条件付き変分オートエンコーダは2つのオートエンコーダを含んでよい。グラウンドトゥルース画像データを符号化することによって特徴ベクトルを生成することによってトレーニングする際に、下位エンコーダだけが利用されてよい。特徴ベクトルは、条件付き変分オートエンコーダが特徴ベクトルのみに依拠しないことを必要とするために、KL発散損失関数によってペナルティが課されてよい。特徴ベクトルのランダム化は、依然としてデコーダ予測にとっての有用な情報を提供してよい。
【0142】
上位エンコーダは、入力画像データおよびマスクを符号化してよい。入力画像データは、オブジェクトまたは他の不要な画像データによって邪魔された、グラウンドトゥルース画像データであってよい。符号化された入力画像データおよびマスクは、下位エンコーダからの特徴ベクトルに加えられてよい。加えられたデータは、次いで、置換画像データを生成するために復号されてよい。その動作は連結として実施されてよい。
【0143】
いくつかの実装形態では、推論プロセスは、上位エンコーダを有するが下位エンコーダを含まない条件付き変分オートエンコーダを含んでよい。下位エンコーダは、たとえば、ゼロベクトルなどの、条件付けベクトルと置き換えられてよい。ゼロベクトルは、ランダム化された特徴ベクトルトレーニングに起因して妥当な画像データを作り出してよい。
【0144】
いくつかの実装形態では、上位エンコーダが予測データのための主要なソースであることから、システムまたは方法は大規模情報を含んでよい。いくつかの実装形態では、上位エンコーダおよびデコーダは、畳み込みニューラルネットワーク内でスキップ接続を有してよい。
【0145】
トレーニング中に敵対的損失を使用するいくつかの実装形態では、敵対的損失を生成するために使用される弁別器モデルは、2つのレベル、すなわち、テクスチャおよびセマンティックに分離されてよい。弁別器は、分離された2つのレイヤを有してよい。弁別器は、デコーダによって生成された置換画像データから現実の画像データを区別することを支援してよい。いくつかの実装形態では、入力画像解像度が変更されてよい。たとえば、入力画像解像度は、256ピクセル×256ピクセルから16ピクセル×16ピクセルに変更されてよい。16×16画像は、置換エリアのテクスチャに対処するための受容野であってよい。画像は、セグメント化された画像マスクの支援を用いて隔離されてよい。モデルのセマンティック成分は、画像データを全体として見てよい。したがって、予測される置換データは、弁別器のテクスチャ成分とセマンティック成分の両方によって支援されてよい。
【0146】
いくつかの実装形態では、弁別器モデルは、2つのテクスチャレベルネットワークおよびセマンティックレベルネットワークを含んでよい。第1のテクスチャレベルネットワークは、マスクによって示されるロケーションにおけるグラウンドトゥルース画像データの一部分を処理してよく、第1のテクスチャ弁別器出力を出力してよい。第2のテクスチャレベルネットワークは、マスクによって示されるロケーションにおける予測される画像データの一部分を処理してよく、第2のテクスチャ弁別器出力を出力してよい。セマンティックレベルネットワークは、共有ネットワークを含んでよい。いくつかの実装形態では、共有ネットワークは、セマンティック弁別器出力を生成するために、それらから除去された不要データを有するグラウンドトゥルース画像データを処理してよい。いくつかの実装形態では、セマンティックレベルネットワークは、弁別器処理のために逆マスクを利用してよい。セマンティックレベルネットワークは、第1のテクスチャ弁別器出力、第2のテクスチャ弁別器出力、およびセマンティック弁別器出力に基づいて弁別器出力を生成してよい。
【0147】
いくつかの実装形態では、修復問題は、可変のエンコーダパイプライン、二重符号化弁別トレーニング、および/または人間の知覚損失を使用することによって対処されてよい。システムまたは方法は、これらの機能を個別にまたは任意の組合せで実施してよい。可変の符号化パイプラインは、修復モデルをトレーニングするための入力としてグラウンドトゥルース画像データが使用されることを含んでよい。モデルは、予測される置換データのノイズの大きさを伴う潜在的な問題に対処するために、ノイズが変化するモデルを含んでよい。二重符号化弁別トレーニングは、隔離された不要な画像データのテクスチャレベルに最初に対処してよく、次いで、トレーニングする際にグラウンドトゥルースデータと予測データとを弁別するためにセマンティックレベルデータに対処してよい。いくつかの実装形態では、修復モデルは、予測ステップによって生成される任意の極値に対処するためにテクスチャ合成ステップをさらに含んでよい。
【0148】
例示的な方法
図6は、本開示の例示的な実施形態による、実行するための例示的な方法のフローチャート図を示す。
図6は、例示および説明の目的のために、特定の順序で実行されるステップを示すが、本開示の方法は、図示した順序または構成に特に限定されない。方法600の様々なステップは、本開示の範囲から逸脱することなく、様々な方法で省略されること、並べ替えられること、組み合わせられること、および/または適合されることが可能である。
【0149】
602において、コンピューティングシステムは、入力画像およびグラウンドトゥルース画像を受信することができる。入力画像は、グラウンドトゥルース画像に1つまたは複数のオクルージョンを加えることによって生成され得る。いくつかの実装形態では、グラウンドトゥルース画像はシーンを描くことができ、入力画像は、1つまたは複数のオクルージョンを有するシーンを描くことができる。1つまたは複数のオクルージョンは、シーンの一部分を邪魔する人間、動物、または物体を含む場合がある。
【0150】
604において、コンピューティングシステムは、コンテキストアテンション出力を生成するためにコンテキストアテンションモデルを用いてグラウンドトゥルース画像を処理することができる。コンテキストアテンションモデルは、畳み込みニューラルネットワークおよび1つまたは複数のコンテキストアテンションブロックを含むことができる。コンテキストアテンションモデルをトレーニングすることは、トレーニングコンテキストアテンション出力を生成するためにコンテキストアテンションモデルを用いて1つまたは複数のトレーニング画像を処理することを含むことができる。トレーニングコンテキストアテンション出力および入力画像は、次いで、トレーニング拡張画像を生成するために修復モデルを用いて処理され得る。トレーニング損失関数が、次いで、トレーニング拡張画像とグラウンドトゥルース画像との間の差分に基づいて評価され得る。1つまたは複数のコンテキストアテンションパラメータが、次いで、トレーニング損失関数に少なくとも部分的に基づいて調整され得る。
【0151】
606において、コンピューティングシステムは、予測画像を生成するために拡張モデルを用いて入力画像およびコンテキストアテンション出力を処理することができる。予測画像は、1つまたは複数のオクルージョンが予測ピクセルと置換された、入力画像の内容を含むことができる。拡張モデルは、予測モデルおよびブレンドモデルを含む複数のサブブロックを含んでよい。予測モデルは、予測コンテキストアテンションデータを生成するために入力画像を処理してよい。ブレンドモデルは、ブレンドデータを生成するために予測コンテキストアテンションデータおよびコンテキストアテンション出力を処理してよい。ブレンドモデルは、予測コンテキストアテンションデータとコンテキストアテンション出力とをランダムにブレンドするようにトレーニングされてよい。いくつかの実装形態では、拡張モデルは、予測画像を生成するためにブレンドデータおよび入力画像を処理するための、オクルージョンモデルを含んでよい。
【0152】
608において、コンピューティングシステムは、予測画像とグラウンドトゥルース画像との間の差分を評価する損失関数を評価することができる。損失関数は、知覚損失、GAN損失、VGG損失、および/またはKL発散損失を含むことができる。
【0153】
610において、コンピューティングシステムは、損失関数に少なくとも部分的に基づいて拡張モデルの1つまたは複数のパラメータを調整することができる。いくつかの実装形態では、1つまたは複数のパラメータは、予測モデル、ブレンドモデル、またはオクルージョンモデルのうちの少なくとも1つである。
【0154】
図7は、本開示の例示的な実施形態による、実行するための例示的な方法のフローチャート図を示す。
図7は、例示および説明の目的のために、特定の順序で実行されるステップを示すが、本開示の方法は、図示した順序または構成に特に限定されない。方法700の様々なステップは、本開示の範囲から逸脱することなく、様々な方法で省略されること、並べ替えられること、組み合わせられること、および/または適合されることが可能である。
【0155】
702において、コンピューティングシステムは、入力画像を取得することができる。入力画像は、置換のための1つまたは複数のオブジェクトを含むことができる。オブジェクトは、入力画像中の複数のピクセルを用いて描かれることが可能であり、物体認識技法によって認識されてよい。
【0156】
704において、コンピューティングシステムは、1つまたは複数のユーザ入力を取得することができる。1つまたは複数のユーザ入力は、1つまたは複数のコンテキストアテンション入力を含むことができる。1つまたは複数のユーザ入力は、入力画像の部分の1つまたは複数の選択結果を含むことができる。1つまたは複数のユーザ入力は、ラッソジェスチャー入力、ブラシジェスチャー、および/またはタップジェスチャーを含むことができる。いくつかの実装形態では、ユーザ入力は、置換すべき入力画像の一部分を選択するためのユーザ入力の第1のセット、および画像拡張のためにクローン化すべき画像の部分を選択するユーザ入力の第2のセットを含むことができる。
【0157】
706において、コンピューティングシステムは、拡張画像を生成するために拡張モデルを用いて入力画像および1つまたは複数のユーザ入力を処理することができる。拡張モデルは、グラウンドトゥルーストレーニングを用いてトレーニングされ得る。拡張画像は、1つまたは複数のオブジェクトが予測ピクセルと置換された、入力画像のシーンを含むことができる。拡張モデルは、予測コンテキストアテンションデータとユーザ入力式のコンテキストアテンションデータとをブレンドするようにトレーニングされたブレンドモデルを含むことができ、予測コンテキストアテンションデータは、入力画像に少なくとも部分的に基づいて生成されることが可能であり、ユーザ入力式のコンテキストアテンションデータは、1つまたは複数のユーザ入力に少なくとも部分的に基づくことができる。ブレンドモデル用のブレンディング重みは、ユーザによって手作業で選択されてよく、または自動的に決定されてもよい。
【0158】
708において、コンピューティングシステムは、ユーザに拡張画像を提供することができる。拡張画像は、ユーザコンピューティングデバイスへ送られてよく、かつ/またはユーザコンピューティングデバイスの視覚ディスプレイ上での表示のために提供されてよい。拡張画像は、視覚インターフェースの一部としての表示のために提供されてよい。いくつかの実装形態では、視覚インターフェースは、表示のために入力画像を提供してよく、ユーザインターフェースを介してユーザ入力を受信してよい(たとえば、視覚表示を提供しながら、タッチスクリーンディスプレイへの選択)。いくつかの実装形態では、1つまたは複数のユーザ入力の描写が、視覚インターフェースの一部として提供されてよく、その描写は、入力画像の上に重ね合わせられることが可能である。
【0159】
図8は、本開示の例示的な実施形態による、実行するための例示的な方法のフローチャート図を示す。
図8は、例示および説明の目的のために、特定の順序で実行されるステップを示すが、本開示の方法は、図示した順序または構成に特に限定されない。方法800の様々なステップは、本開示の範囲から逸脱することなく、様々な方法で省略されること、並べ替えられること、組み合わせられること、および/または適合されることが可能である。
【0160】
802において、コンピューティングシステムは、ユーザから入力データを受信することができる。入力データは、1つまたは複数の画像を含むことができる。いくつかの実装形態では、入力データは、オーディオデータを含むことができる。いくつかの実装形態では、1つまたは複数の画像は、ビデオのフレームであり得る。
【0161】
804において、コンピューティングシステムは、コンテキストアテンションデータを取得することができる。コンテキストアテンションデータは、選択されたピクセルデータを含むことができる。コンテキストアテンションデータは、平坦化入力テンソルを含んでよい。いくつかの実装形態では、コンテキストアテンションデータは、ユーザによるラッソジェスチャー入力に少なくとも部分的に基づいて生成され得る。
【0162】
806において、コンピューティングシステムは、予測コンテキストアテンションデータを生成するために予測モデルを用いて入力データを処理することができる。
【0163】
808において、コンピューティングシステムは、ブレンドデータを生成するためにブレンドモデルを用いてコンテキストアテンションデータおよび予測コンテキストアテンションデータを処理することができる。
【0164】
810において、コンピューティングシステムは、1つまたは複数の画像から1つまたは複数のオブジェクトを除去するためにオクルージョンモデルを用いて入力データおよびブレンドデータを処理することができる。いくつかの実装形態では、オクルージョンモデルの出力は、拡張ビデオ出力を含むことができる。いくつかの実装形態では、入力データおよびブレンドデータは、オーディオデータからオクルージョンを除去するために処理され得る。いくつかの実装形態では、オクルージョンモデルは、オクルージョンモデルを使用してトレーニングされ得る。
【0165】
コンピューティングシステムは、レンダリングされた画像を生成するために1つまたは複数のピクセルを1つまたは複数の画像に戻して加えてよい。
【0166】
追加の開示
本明細書で説明した技術は、サーバ、データベース、ソフトウェアアプリケーション、および他のコンピュータベースのシステム、ならびにそのようなシステムとの間で行われるアクションおよび送られる情報を参照する。コンピュータベースのシステムの固有のフレキシビリティは、構成要素の間でのタスクおよび機能性の多種多様な可能な構成、組合せ、および分割を可能にする。たとえば、本明細書で説明したプロセスは、単一のデバイスもしくは構成要素または組合せで働く複数のデバイスもしくは構成要素を使用して実施され得る。データベースおよびアプリケーションは、単一のシステム上で実装されること、または複数のシステムにわたって分散されることが可能である。分散構成要素は、連続的にまたは並行して動作することができる。
【0167】
本主題は、その様々な特定の例示的な実施形態に関して詳細に説明されているが、各例は、本開示の限定ではなく、説明として与えられる。当業者は、上記の理解に到達すると、そのような実施形態の改変、変形、および均等物を容易に作り出すことができる。したがって、本開示は、当業者には容易に明らかであることになるように、本主題へのそのような修正、変形、および/または追加を含めることを排除しない。たとえば、ある実施形態の一部として図示または説明した特徴は、またさらなる実施形態を生み出すために別の実施形態とともに使用され得る。したがって、本開示がそのような改変、変形、および均等物をカバーすることが意図される。
【符号の説明】
【0168】
10 コンピューティングデバイス
50 コンピューティングデバイス
100 コンピューティングシステム
102 ユーザコンピューティングデバイス
112 プロセッサ
114 メモリ
116 データ
118 命令
120 拡張モデル、機械学習型モデル
122 ユーザ入力構成要素
130 サーバコンピューティングシステム
132 プロセッサ
134 メモリ
136 データ
138 命令
140 拡張モデル、機械学習型拡張モデル
150 トレーニングコンピューティングシステム
152 プロセッサ
154 メモリ
156 データ
158 命令
160 モデル訓練器
162 トレーニングデータ、トレーニングデータセット
180 ネットワーク
200 拡張モデル
202 入力データ
204 グラウンドトゥルースデータ、グラウンドトゥルース画像
210 画像拡張モデル
212 修復モデル、オクルージョンモデル
214 予測モデル
216 ブレンドモデル
220 コンテキストアテンションモデル
222 修復モデル
224 トレーニングコンテキストアテンション損失関数
226 出力データ、予測データ
228 損失関数
300 拡張モデル
302 入力データ
304 コンテキストアテンションデータ
306 拡張モデル、修復拡張モデル
308 修復タスク
310 出力データ、拡張データ
400 拡張モデル
402 入力データ
404 ユーザ入力データ
410 拡張モデル
412 オクルージョンモデル
414 予測コンテキストアテンションモデル、予測コンテキストアテンションデータ、予測モデル
416 ブレンドモデル
420 拡張データ
500 コンテキストアテンションモデル
502 入力データ、平坦化入力テンソル、入力テンソル
504 平坦化入力テンソル
506 コンテキストアテンション行列
508 変換されたデータ
510 出力データ、出力テンソル
900 修復プロセス
902 第1の画像
904 第2の画像
906 第3の画像
908 ソースピクセル
910 人間
912 飛行機、ソースピクセル
914 ソースピクセル
1000 修復結果
1010 ユーザ入力
1012 ターゲットピクセル
1100 修復結果
1106 出力画像
1108 オブジェクト
1110 オブジェクト
1112 オブジェクト
1114 ソースピクセル
1200 修復結果
1202 オーバーレイインターフェース
1204 入力画像
1206 拡張画像
1208 ソースピクセル
1210 オクルージョン
【手続補正書】
【提出日】2024-03-05
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
修復モデルをトレーニングするためのコンピュータ実装方法であって、
1つまたは複数のプロセッサを備えるコンピューティングシステムによって入力画像およびグラウンドトゥルース画像を受信するステップであって、前記グラウンドトゥルース画像がシーンを描き、前記入力画像が、1つまたは複数のオクルージョンを有する前記シーンを描く、ステップと、
コンテキストアテンション出力を生成するためにコンテキストアテンションモデルを用いて前記グラウンドトゥルース画像を前記コンピューティングシステムによって処理するステップと、
予測画像を生成するために拡張モデルを用いて前記入力画像および前記コンテキストアテンション出力を前記コンピューティングシステムによって処理するステップと、
前記予測画像と前記グラウンドトゥルース画像との間の差分を評価する損失関数を前記コンピューティングシステムによって評価するステップと、
前記損失関数に少なくとも部分的に基づいて前記拡張モデルの1つまたは複数のパラメータを前記コンピューティングシステムによって調整するステップと
を備えるコンピュータ実装方法。
【請求項2】
前記拡張モデルが、予測モデル、ブレンドモデル、およびオクルージョンモデルを備え、前記拡張モデルを用いて前記入力画像および前記コンテキストアテンション出力を処理するステップが、
予測コンテキストアテンションデータを生成するために前記予測モデルを用いて前記入力画像を前記コンピューティングシステムによって処理するステップと、
ブレンドデータを生成するためにブレンドモデルを用いて前記予測コンテキストアテンションデータおよび前記コンテキストアテンション出力を前記コンピューティングシステムによって処理するステップと、
前記予測画像を生成するために前記ブレンドデータおよび前記入力画像を前記コンピューティングシステムによって処理するステップとを備える、
請求項1に記載のコンピュータ実装方法。
【請求項3】
前記ブレンドモデルが、前記予測コンテキストアテンションデータと前記コンテキストアテンション出力とをランダムにブレンドするようにトレーニングされる、請求項
2記載のコンピュータ実装方法。
【請求項4】
前記入力画像が、前記グラウンドトゥルース画像に1つまたは複数のオクルージョンを加えることによって生成される、請求項1から3のいずれか一項に記載のコンピュータ実装方法。
【請求項5】
前記コンテキストアテンションモデルが、畳み込みニューラルネットワークおよび1つまたは複数のコンテキストアテンションブロックを備える、請求項1から4のいずれか一項に記載のコンピュータ実装方法。
【請求項6】
トレーニングコンテキストアテンション出力を生成するために前記コンテキストアテンションモデルを用いて1つまたは複数のトレーニング画像を前記コンピューティングシステムによって処理するステップ、
トレーニング拡張画像を生成するために修復モデルを用いて前記トレーニングコンテキストアテンション出力を前記コンピューティングシステムによって処理するステップ、
前記トレーニング拡張画像と前記グラウンドトゥルース画像との間の差分を評価するトレーニング損失関数を前記コンピューティングシステムによって評価するステップ、および
前記トレーニング損失関数に少なくとも部分的に基づいて前記コンテキストアテンションモデルの1つまたは複数のコンテキストアテンションパラメータを前記コンピューティングシステムによって調整するステップによって、
前記コンテキストアテンションモデルがトレーニングされる、
請求項1から5のいずれか一項に記載のコンピュータ実装方法。
【請求項7】
前記入力画像の一部分の選択結果を記述する1つまたは複数の入力を前記コンピューティングシステムによって受信するステップをさらに備え、
前記予測画像が、前記1つまたは複数の入力に少なくとも部分的に基づいて生成される、
請求項1から6のいずれか一項に記載のコンピュータ実装方法。
【請求項8】
修復のためのコンピューティングシステムであって、前記コンピューティングシステムが、
1つまたは複数のプロセッサと、
命令を一括して記憶する1つまたは複数
のコンピュータ可読
記憶媒体とを備え、前記命令が、前記1つまたは複数のプロセッサによって実行されたとき、前記コンピューティングシステムに動作を実行させ、前記動作が、
入力画像を取得することであって、前記入力画像が置換のための1つまたは複数のオブジェクトを備えることと、
1つまたは複数のユーザ入力を取得することであって、前記1つまたは複数のユーザ入力が1つまたは複数のコンテキストアテンション入力を備えることと、
拡張画像を生成するために拡張モデルを用いて前記入力画像および前記1つまたは複数のユーザ入力を処理することであって、前記拡張モデルが、グラウンドトゥルーストレーニングを介して、前記1つまたは複数のオブジェクトを置換するようにトレーニングされることと、
ユーザに前記拡張画像を提供することとを備える、
コンピューティングシステム。
【請求項9】
前記動作が、
1つまたは複数の第2のユーザ入力を取得することをさらに備え、前記1つまたは複数の第2のユーザ入力が、前記入力画像の一部分の選択結果を記述し、
前記拡張画像が、前記1つまたは複数の第2のユーザ入力に少なくとも部分的に基づいて生成される、
請求項8に記載のコンピューティングシステム。
【請求項10】
前記拡張モデルが、予測コンテキストアテンションデータとユーザ入力式のコンテキストアテンションデータとをブレンドするようにトレーニングされたブレンドモデルを備え、前記予測コンテキストアテンションデータが、前記入力画像に少なくとも部分的に基づいて生成され、前記ユーザ入力式のコンテキストアテンションデータが、前記1つまたは複数のユーザ入力に少なくとも部分的に基づく、請求項8または9に記載のコンピューティングシステム。
【請求項11】
前記予測コンテキストアテンションデータおよび前記ユーザ入力式のコンテキストアテンションデータが、ブレンディング重みに少なくとも部分的に基づいてブレンドされ、前記ブレンディング重みが、ユーザによって手作業で制御される、請求項10に記載のコンピューティングシステム。
【請求項12】
前記予測コンテキストアテンションデータおよび前記ユーザ入力式のコンテキストアテンションデータが、ブレンディング重みに少なくとも部分的に基づいてブレンドされ、前記ブレンディング重みが、前記グラウンドトゥルーストレーニング中に調整される、請求項10に記載のコンピューティングシステム。
【請求項13】
前記動作が、
前記ユーザに視覚インターフェースを提供するための表示のために前記入力画像を提供することをさらに備える、
請求項8から12のいずれか一項に記載のコンピューティングシステム。
【請求項14】
前記1つまたは複数のユーザ入力がタッチスクリーンディスプレイを用いて取得される、請求項8から13のいずれか一項に記載のコンピューティングシステム。
【請求項15】
前記動作が、
前記入力画像の上に重ね合わせられた、前記1つまたは複数のユーザ入力の描写を提供することをさらに備える、
請求項8から14のいずれか一項に記載のコンピューティングシステム。
【請求項16】
命令を一括して記憶する1つまたは複数
のコンピュータ可読
記憶媒体であって、前記命令が、1つまたは複数のプロセッサによって実行されたとき、コンピューティングシステムに動作を実行させ、前記動作が、
ユーザから入力データを受信することであって、前記入力データが1つまたは複数の画像を備えることと、
コンテキストアテンションデータを取得することであって、前記コンテキストアテンションデータが、選択されたピクセルデータを備えることと、
予測コンテキストアテンションデータを生成するために予測モデルを用いて前記入力データを処理することと、
ブレンドデータを生成するためにブレンドモデルを用いて前記コンテキストアテンションデータおよび前記予測コンテキストアテンションデータを処理することと、
前記1つまたは複数の画像からの1つまたは複数のピクセルを置換するためにオクルージョンモデルを用いて前記入力データおよび前記ブレンドデータを処理することとを備える、
1つまたは複数のコンピュータ可読
記憶媒体。
【請求項17】
前記1つまたは複数の画像がビデオのフレームであり、前記オクルージョンモデルの出力が拡張ビデオ出力である、請求項16に記載の1つまたは複数
のコンピュータ可読
記憶媒体。
【請求項18】
前記動作が、
レンダリングされた画像を生成するために前記1つまたは複数のピクセルを前記1つまたは複数の画像に戻して加えることをさらに備える、
請求項16または17に記載の1つまたは複数
のコンピュータ可読
記憶媒体。
【請求項19】
前記コンテキストアテンションデータが平坦化入力テンソルを備える、請求項16から18のいずれか一項に記載の1つまたは複数
のコンピュータ可読
記憶媒体。
【請求項20】
前記コンテキストアテンションデータが、ユーザによるラッソジェスチャー入力に少なくとも部分的に基づいて生成される、請求項16から19のいずれか一項に記載の1つまたは複数
のコンピュータ可読
記憶媒体。
【国際調査報告】