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

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

▶ グーグル インコーポレイテッドの特許一覧

特表2024-536252計算効率が改善された画像処理のためのカスケード式多重解像度機械学習
<>
  • 特表-計算効率が改善された画像処理のためのカスケード式多重解像度機械学習 図1
  • 特表-計算効率が改善された画像処理のためのカスケード式多重解像度機械学習 図2
  • 特表-計算効率が改善された画像処理のためのカスケード式多重解像度機械学習 図3A
  • 特表-計算効率が改善された画像処理のためのカスケード式多重解像度機械学習 図3B
  • 特表-計算効率が改善された画像処理のためのカスケード式多重解像度機械学習 図3C
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-10-04
(54)【発明の名称】計算効率が改善された画像処理のためのカスケード式多重解像度機械学習
(51)【国際特許分類】
   G06T 5/60 20240101AFI20240927BHJP
   G06T 7/00 20170101ALI20240927BHJP
【FI】
G06T5/60
G06T7/00 350B
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024519724
(86)(22)【出願日】2021-10-01
(85)【翻訳文提出日】2024-05-28
(86)【国際出願番号】 US2021053152
(87)【国際公開番号】W WO2023055390
(87)【国際公開日】2023-04-06
(81)【指定国・地域】
(71)【出願人】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】金沢 倫次
(72)【発明者】
【氏名】ニール・ワドワ
【テーマコード(参考)】
5B057
5L096
【Fターム(参考)】
5B057BA02
5B057CA08
5B057CA12
5B057CA16
5B057CB08
5B057CB12
5B057CB16
5B057CC03
5B057CD05
5B057CE03
5B057CE04
5B057CE05
5B057CE17
5L096DA01
5L096FA06
5L096HA11
5L096KA04
(57)【要約】
画像修正などの画像処理のためのシステムおよび方法が提供される。より詳細には、本開示の例示的な態様は、リソースが制約されたデバイス上で画像処理を実行するためのカスケード式多重解像度機械学習のためのシステムおよび方法を対象とする。
【特許請求の範囲】
【請求項1】
計算効率が改善された画像修正のためのコンピューティングシステムであって、前記コンピューティングシステムが、
1つまたは複数のプロセッサと、
命令を一括して記憶する1つまたは複数の非一時的コンピュータ可読媒体とを備え、前記命令が、前記1つまたは複数のプロセッサによって実行されたとき、前記コンピューティングシステムに動作を実行させ、前記動作が、
入力画像の下位解像度バージョンを取得することであって、前記入力画像の前記下位解像度バージョンが第1の解像度を有し、前記入力画像の前記下位解像度バージョンが、予測画像データを用いて修正されるべき1つまたは複数の画像要素を備えることと、
前記第1の解像度を有する拡張画像を生成するために第1の機械学習型モデルを用いて前記入力画像の前記下位解像度バージョンを処理することであって、前記拡張画像が、前記1つまたは複数の画像要素を置換する第1の予測画像データを備えることと、
前記拡張画像の部分を抽出することであって、前記拡張画像の前記部分が前記第1の予測画像データを備えることと、
アップスケールされた解像度を有するアップスケールされた画像部分を生成するために前記拡張画像の前記抽出された部分をアップスケールすることと、
改善された部分を生成するために、前記アップスケールされた画像部分を第2の機械学習型モデルを用いて処理することであって、前記改善された部分が、前記第1の予測画像データの少なくとも一部分を修正する第2の予測画像データを備えることと、
前記改善された部分、および前記入力画像の上位解像度バージョンに基づいて、出力画像を生成することであって、前記出力画像と前記入力画像の前記上位解像度バージョンの両方が、前記第1の解像度よりも大きい第2の解像度を有することと、
前記出力画像を出力として提供することとを備える、
コンピューティングシステム。
【請求項2】
前記入力画像の前記下位解像度バージョンを取得することが、前記入力画像の前記下位解像度バージョンを取得するために前記入力画像の前記上位解像度バージョンをダウンスケールすることを備える、請求項1に記載のコンピューティングシステム。
【請求項3】
前記拡張画像を生成するために前記第1の機械学習型モデルを用いて前記入力画像の前記下位解像度バージョンを処理することが、前記1つまたは複数の画像要素を修正する第1の修復画像データを有する前記拡張画像を生成するために、前記入力画像の前記下位解像度バージョン、および前記1つまたは複数の画像要素を識別するマスクを、第1の機械学習型修復モデルを用いて処理することを備え、
前記改善された部分を生成するために、前記アップスケールされた画像部分を前記第2の機械学習型モデルを用いて処理することが、前記第1の修復画像データの少なくとも一部分を修正する第2の修復画像データを有する前記改善された部分を生成するために、前記アップスケールされた画像部分を第2の機械学習型修復モデルを用いて処理することを備える、
請求項1から2のいずれか一項に記載のコンピューティングシステム。
【請求項4】
前記アップスケールされた解像度を有する前記アップスケールされた画像部分を生成するために前記拡張画像の前記抽出された部分をアップスケールすることが、前記アップスケールされた解像度が、前記入力画像の前記上位解像度バージョンの対応する部分の対応する解像度に整合するような、前記拡張画像の前記抽出された部分をアップスケールすることを備え、前記対応する部分が、前記拡張画像の前記抽出された部分に比例的に対応する、請求項1から3のいずれか一項に記載のコンピューティングシステム。
【請求項5】
前記改善された部分、および前記入力画像の前記上位解像度バージョンに基づいて、前記出力画像を生成することが、前記改善された部分を前記入力画像の前記上位解像度バージョンの中に挿入することを備える、請求項1から4のいずれか一項に記載のコンピューティングシステム。
【請求項6】
置換されるべき前記1つまたは複数の画像要素が、1つまたは複数のユーザ入力に基づいて指定されている1つまたは複数のユーザ指定の画像要素を備える、請求項1から5のいずれか一項に記載のコンピューティングシステム。
【請求項7】
置換されるべき前記1つまたは複数の画像要素が、1つまたは複数のコンピュータ指定の画像要素であり、前記1つまたは複数のコンピュータ指定の画像要素が、前記第1の機械学習型モデルまたは前記第2の機械学習型モデルのうちの少なくとも1つの、1つまたは複数の分類サブブロックを用いて前記入力画像を処理することによって指定される、請求項1から6のいずれか一項に記載のコンピューティングシステム。
【請求項8】
前記第1の予測画像データおよび前記第2の予測画像データが、前記1つまたは複数の画像要素の修復、ぼけ修正、復色、または平滑化のうちの1つまたは複数に対応する、請求項1から7のいずれか一項に記載のコンピューティングシステム。
【請求項9】
1つまたは複数のオブジェクトが複数のオブジェクトを備え、
前記拡張画像を生成するために前記第1の機械学習型モデルを用いて前記入力画像の前記下位解像度バージョンを前記処理することが1回実行され、
前記抽出すること、アップスケールすること、および前記アップスケールされた画像部分を前記第2の機械学習型モデルを用いて処理することが、前記複数のオブジェクトのうちのオブジェクトごとに別個に実行される、
請求項1から8のいずれか一項に記載のコンピューティングシステム。
【請求項10】
前記第1の機械学習型モデルから前記第2の機械学習型モデルに1つまたは複数の内部特徴ベクトルを受け渡すことをさらに備える、請求項1から9のいずれか一項に記載のコンピューティングシステム。
【請求項11】
前記拡張画像が、前記第1の機械学習型モデルによって出力される予測深度チャネルをさらに備える、請求項1から10のいずれか一項に記載のコンピューティングシステム。
【請求項12】
画像修正を実行するように機械学習モデルをトレーニングするためのコンピュータ実装方法であって、
入力画像の下位解像度バージョン、およびグラウンドトゥルース画像を、1つまたは複数のプロセッサを備えるコンピューティングシステムによって受信するステップであって、前記入力画像の前記下位解像度バージョンが第1の解像度を有し、前記グラウンドトゥルース画像が、前記第1の解像度よりも大きい第2の解像度を有し、前記入力画像の前記下位解像度バージョンが、前記グラウンドトゥルース画像の中に存在しない1つまたは複数の画像要素を備える、ステップと、
前記第1の解像度を有する拡張画像の下位解像度バージョンを生成するために第1の機械学習型モデルを用いて前記入力画像の前記下位解像度バージョンを前記コンピューティングシステムによって処理するステップであって、前記拡張画像の前記下位解像度バージョンが、前記1つまたは複数の画像要素を置換する第1の予測データを備える、ステップと、
前記第2の解像度を有する前記拡張画像の上位解像度バージョンを生成するために前記拡張画像の前記下位解像度バージョンを前記コンピューティングシステムによってアップスケールするステップと、
前記第2の解像度を有する予測画像を生成するために第2の機械学習型モデルを用いて前記拡張画像の前記上位解像度バージョンの少なくとも一部分を前記コンピューティングシステムによって処理するステップと、
前記予測画像と前記グラウンドトゥルース画像との間の差分を評価する損失関数を前記コンピューティングシステムによって評価するステップと、
前記損失関数に少なくとも部分的に基づいて前記第1の機械学習型モデルまたは前記第2の機械学習型モデルのうちの少なくとも1つの、1つまたは複数のパラメータを調整するステップと
を備える、コンピュータ実装方法。
【請求項13】
前記1つまたは複数の画像要素が、1つまたは複数のユーザ指定の画像要素であり、前記1つまたは複数のユーザ指定の画像要素が、1つまたは複数のユーザ入力に基づいて指定される、請求項12に記載のコンピュータ実装方法。
【請求項14】
前記1つまたは複数の画像要素が、1つまたは複数のコンピュータ指定の画像要素であり、前記1つまたは複数のコンピュータ指定の画像要素が、前記第1の機械学習型モデルまたは前記第2の機械学習型モデルのうちの少なくとも1つの、1つまたは複数の分類サブブロックを用いて前記入力画像を処理することによって指定される、請求項12に記載のコンピュータ実装方法。
【請求項15】
前記予測画像が、前記1つまたは複数の画像要素の修復、ぼけ修正、復色、または平滑化のうちの少なくとも1つに対応する、請求項12から14のいずれか一項に記載のコンピュータ実装方法。
【請求項16】
命令を一括して記憶する1つまたは複数の非一時的コンピュータ可読媒体であって、前記命令が、1つまたは複数のプロセッサによって実行されたとき、コンピューティングシステムに動作を実行させ、前記動作が、
入力画像の下位解像度バージョンを取得することであって、前記入力画像の前記下位解像度バージョンが第1の解像度を有することと、
前記第1の解像度を有する第1の予測画像を生成するために第1の機械学習型モデルを用いて前記入力画像の前記下位解像度バージョンを処理することであって、前記第1の予測画像が第1の予測画像データを備えることと、
前記第1の予測画像の部分を抽出することであって、前記第1の予測画像の前記部分が前記第1の予測画像データを備えることと、
アップスケールされた解像度を有するアップスケールされた画像部分を生成するために前記第1の予測画像の前記抽出された部分をアップスケールすることと、
第2の予測画像を生成するために、前記アップスケールされた画像部分を第2の機械学習型モデルを用いて処理することであって、前記第2の予測画像が、前記第1の予測画像データの少なくとも一部分を修正する第2の予測画像データを備えることとを備える、
非一時的コンピュータ可読媒体。
【請求項17】
前記第1の予測画像および前記第2の予測画像が、前記入力画像の中の認識されたエッジを示すエッジ認識画像を備える、請求項16に記載の1つまたは複数の非一時的コンピュータ可読媒体。
【請求項18】
前記第1の予測画像および前記第2の予測画像が、前記入力画像の中で検出された物体を示す物体検出画像を備える、請求項16に記載の1つまたは複数の非一時的コンピュータ可読媒体。
【請求項19】
前記第1の予測画像および前記第2の予測画像が、前記入力画像の中で検出されたヒューマンキーポイントを示すヒューマンキーポイント推定画像を備える、請求項16に記載の1つまたは複数の非一時的コンピュータ可読媒体。
【請求項20】
前記第1の予測画像および前記第2の予測画像が、前記入力画像の中の認識された顔を示す顔認識画像を備える、請求項16に記載の1つまたは複数の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に、画像修正などの画像処理に関する。より詳細には、本開示は、計算効率が改善された画像処理のためのカスケード式多重解像度機械学習のためのシステムおよび方法に関する。
【背景技術】
【0002】
画像処理は、改変された見た目を有するようにデジタルイメージの修正を含むことができる。例示的な画像修正は、平滑化、ぼかし、ぼけ修正、および/または多くの他の動作を含む。いくつかの画像修正は、元の画像データに対する置換として、新たな画像データが生成されイメージの中に挿入される、生成修正を含む。いくつかの例示的な生成修正は、「修復」と呼ばれる場合がある。
【0003】
画像処理はまた、イメージの特性を識別または決定するためのイメージの解析を含むことができる。たとえば、画像処理は、セマンティックセグメント化、物体検出、物体認識、エッジ検出、ヒューマンキーポイント推定、および/または様々な他の画像解析アルゴリズムもしくはタスクなどの技法を含むことができる。
【0004】
画像処理のための機械学習モデルの使用に関連する1つの主要な課題は、入力および出力画像解像度の制約である。詳細には、解像度が大きければ大きいほど、メモリ使用量およびレイテンシがより大きく増大する。したがって、かなりのサイズの任意の画像に対して画像処理を実行するために機械学習モデルを動作させることは、メモリ使用量、プロセッサ使用量などの、かなりの計算リソースを消費する。このことは、高解像度における機械学習モデルの使用を著しく困難にさせ、さらには少量のまたは限定された計算リソースしか有しないコンピューティングデバイス(たとえば、スマートフォン)上での「オンデバイス」のような、リソースが制約されたいくつかの環境において実現不可能にさせる。一例として、典型的な機械学習モデルの標準的な解像度は、スマートフォン上で動作するのにすでに極めて大きい512×512という範囲の中にあることがある。
【0005】
上記で説明した計算量的課題に対する1つの解決策は、下位解像度を有するイメージに対して機械学習モデルを動作させることである。このことは、消費されるリソースの量を温存または低減することができる。しかしながら、下位解像度での画像を処理することは、処理出力の品質を劣化させ、したがって、それ自体の欠点を有する。
【発明の概要】
【課題を解決するための手段】
【0006】
本開示の実施形態の態様および利点が、以下の説明において部分的に記載され、または説明から知ることができ、または本実施形態の実践を通じて知ることができる。
【0007】
本開示の1つの例示的な態様は、計算効率が改善された画像修正のためのコンピューティングシステムを対象とし、コンピューティングシステムは、1つまたは複数のプロセッサと、命令を一括して記憶する1つまたは複数の非一時的コンピュータ可読媒体とを含み、命令は、1つまたは複数のプロセッサによって実行されたとき、コンピューティングシステムに動作を実行させる。動作は、入力画像の下位解像度バージョンを取得することを含み、入力画像の下位解像度バージョンは第1の解像度を有し、入力画像の下位解像度バージョンは、予測画像データを用いて修正されるべき1つまたは複数の画像要素を備える。動作は、第1の解像度を有する拡張画像を生成するために第1の機械学習型モデルを用いて入力画像の下位解像度バージョンを処理することを含み、拡張画像は、1つまたは複数の画像要素を置換する第1の予測画像データを備える。動作は、拡張画像の部分を抽出することを含み、拡張画像の部分は第1の予測画像データを備える。動作は、アップスケールされた解像度を有するアップスケールされた画像部分を生成するために拡張画像の抽出された部分をアップスケールすることを含む。動作は、改善された部分を生成するために、アップスケールされた画像部分を第2の機械学習型モデルを用いて処理することを含み、改善された部分は、第1の予測画像データの少なくとも一部分を修正する第2の予測画像データを備える。動作は、改善された部分、および入力画像の上位解像度バージョンに基づいて、出力画像を生成することを含み、出力画像と入力画像の上位解像度バージョンの両方は、第1の解像度よりも大きい第2の解像度を有する。動作は、出力画像を出力として提供することを含む。
【0008】
本開示の別の例示的な態様は、画像修正を実行するように機械学習モデルをトレーニングするためのコンピュータ実装方法を対象とする。方法は、入力画像の下位解像度バージョン、およびグラウンドトゥルース画像を、1つまたは複数のプロセッサを備えるコンピューティングシステムによって受信することを含み、入力画像の下位解像度バージョンは第1の解像度を有し、グラウンドトゥルース画像は、第1の解像度よりも大きい第2の解像度を有し、入力画像の下位解像度バージョンは、グラウンドトゥルース画像の中に存在しない1つまたは複数の画像要素を備える。方法は、第1の解像度を有する拡張画像の下位解像度バージョンを生成するために第1の機械学習型モデルを用いて入力画像の下位解像度バージョンをコンピューティングシステムによって処理することを含み、拡張画像の下位解像度バージョンは、1つまたは複数の画像要素を置換する第1の予測データを備える。方法は、第2の解像度を有する拡張画像の上位解像度バージョンを生成するために拡張画像の下位解像度バージョンをコンピューティングシステムによってアップスケールすることを含む。方法は、第2の解像度を有する予測画像を生成するために第2の機械学習型モデルを用いて拡張画像の上位解像度バージョンの少なくとも一部分をコンピューティングシステムによって処理することを含む。方法は、予測画像とグラウンドトゥルース画像との間の差分を評価する損失関数をコンピューティングシステムによって評価することを含む。方法は、損失関数に少なくとも部分的に基づいて第1の機械学習型モデルまたは第2の機械学習型モデルのうちの少なくとも1つの、1つまたは複数のパラメータを調整することを含む。
【0009】
本開示の別の例示的な態様は、命令を一括して記憶する1つまたは複数の非一時的コンピュータ可読媒体を対象とし、命令は、1つまたは複数のプロセッサによって実行されたとき、コンピューティングシステムに動作を実行させる。動作は、入力画像の下位解像度バージョンを取得することを含み、入力画像の下位解像度バージョンは第1の解像度を有する。動作は、第1の解像度を有する第1の予測画像を生成するために第1の機械学習型モデルを用いて入力画像の下位解像度バージョンを処理することを含み、第1の予測画像は第1の予測画像データを備える。動作は、第1の予測画像の部分を抽出することを含み、第1の予測画像の部分は第1の予測画像データを備える。動作は、アップスケールされた解像度を有するアップスケールされた画像部分を生成するために第1の予測画像の抽出された部分をアップスケールすることを含む。動作は、第2の予測画像を生成するために、アップスケールされた画像部分を第2の機械学習型モデルを用いて処理することを含み、第2の予測画像は、第1の予測画像データの少なくとも一部分を修正する第2の予測画像データを備える。
【0010】
本開示の他の態様は、様々なシステム、装置、非一時的コンピュータ可読媒体、ユーザインターフェース、および電子デバイスを対象とする。
【0011】
本開示の様々な実施形態のこれらおよび他の特徴、態様、および利点は、以下の説明および添付の特許請求の範囲を参照すると、よりよく理解されよう。本明細書に組み込まれ本明細書の一部を構成する添付図面は、本開示の例示的な実施形態を示し、この説明と一緒に、関連する原理を説明するために役立つ。
【0012】
当業者を対象とする実施形態の詳細な説明が本明細書に記載され、本明細書は添付の図を参照する。
【図面の簡単な説明】
【0013】
図1】本開示の例示的な実施形態による、画像処理(たとえば、修復)のためにカスケード式多重解像度機械学習を使用するための例示的な技法のブロック図である。
図2】本開示の例示的な実施形態による、画像処理(たとえば、修復)のためにカスケード式多重解像度機械学習をトレーニングするための例示的な技法のブロック図である。
図3A】本開示の例示的な実施形態による、例示的なコンピューティングシステムのブロック図である。
図3B】本開示の例示的な実施形態による、例示的なコンピューティングデバイスのブロック図である。
図3C】本開示の例示的な実施形態による、例示的なコンピューティングデバイスのブロック図である。
【発明を実施するための形態】
【0014】
複数の図にわたって繰り返される参照番号は、様々な実装形態において同じ特徴を識別することを意図する。
【0015】
概要
概して、本開示は画像修正などの画像処理のためのシステムおよび方法を対象とする。より詳細には、本開示の例示的な態様は、リソースが制約されたデバイス上で画像処理を実行するためのカスケード式多重解像度機械学習のためのシステムおよび方法を対象とする。
【0016】
1つの例示的な手法では、画像処理システムは2つの機械学習構成要素を含む。詳細には、第1の機械学習モデルは、下位解像度での入力画像全体に対して画像処理(たとえば、修復などの画像修正)を実行することができる。第2の機械学習モデルは、上位解像度にアップスケールされている、第1のモデルの出力の1つまたは複数の選択されたサブセット(「クロップ」)のみに対して、画像処理(たとえば、修復などの画像修正)を実行することができる。
【0017】
そのような方法で、第1のモデルは、画像処理タスクにおける初期試行を実行するために、全体的な画像全体にわたって含まれるコンテキスト情報および/またはセマンティック情報を活用することができる。しかしながら、第1のモデルは下位解像度で動作するので、第1のモデルの計算量的な消耗は比較的小さい場合がある。
【0018】
次に、第2のモデルは、第1のモデルの出力の選択されたサブセットに対して、より詳細なもっと品質が高い画像処理を実行することができる。詳細には、第2のモデルは上位解像度で動作するので、第2のモデルの出力は、概して、第1のモデルの出力に比べてもっと高い品質および/またはもっと詳細である。しかしながら、第2のモデルは選択されたサブセットのみに対して動作するので、第2のモデルの計算量的な消耗は、(たとえば、上位解像度における入力の全体に対して第2のモデルを動作させることと比較して)より小さい低減されたレベルに保持され得る。
【0019】
いくつかの実装形態では、第2のモデルの出力は単独で使用され得る。他の実装形態では、第2のモデルの出力は、完全な上位解像度出力を作り出すために、元の上位解像度入力と結合され得る。他の実装形態では、第2のモデルの出力は、完全な上位解像度出力を生成するために、第1のモデルの出力のアップスケールされたバージョンと結合され得る。
【0020】
いくつかの実装形態では、第1のモデルと第2のモデルの両方は一緒にトレーニングされる。たとえば、第2のモデルの出力に基づいて損失が決定され得る。損失は、第2のモデルおよび/または第1のモデルをトレーニングするために、第2のモデルを通じて、次いで、第1のモデルを通じて、逆伝搬され得る。
【0021】
本開示のシステムおよび方法は、いくつかの技術的な効果および利点をもたらす。1つの例示的な技術的効果として、本開示のシステムおよび方法は、画像処理品質と計算リソース使用量との間の改善されたトレードオフをもたらす。たとえば、入力画像の高解像度クロップのみに対して画像処理を実行するシステムと比較して、提案されるシステムは改善された品質をもたらすことができる。なぜなら、多くの場合、高品質画像処理は、より小さいクロップ内に含まれる情報だけでなく、画像全体からのセマンティック情報へのアクセスを必要とするからである。したがって、第2のモデルを用いてクロップの上位解像度バージョンを処理する前に、第1のモデルを用いて画像全体の下位解像度バージョンを処理することによって、提案されるシステムは、許容できるレベルの計算リソース使用量をすべてが維持しながら、クロップされた部分だけでなく画像全体にわたって含まれるセマンティック情報へのアクセスを有することができる。同様に、(いくつかのコンピューティング環境において可能でないかまたは望ましくない場合がある)上位解像度で入力画像全体を処理するシステムと比較して、提案されるシステムは、プロセッサ使用量、メモリ使用量などの、計算リソースの節約を行うことができる。したがって、計算リソースが制約されたコンピューティング環境においてさえ、高品質画像処理結果が取得され得る。
【0022】
一例では、本明細書で説明するシステムは、カメラ適用例の一部として、またはカメラ適用例と協働して実施され得る。たとえば、カメラは画像をキャプチャすることができ、本明細書で説明するシステムおよび方法は、カメラ適用例の一部として、またはカメラ適用例のためのサービスとして、画像を処理する(たとえば、修正する)ために使用され得る。このことは、ユーザがキャプチャもしくはアップロードするかまたは別のやり方で入力として提供する画像をユーザが処理すること(たとえば、不要なオブジェクトをそこから除去するような修正すること)を可能にすることができる。
【0023】
ここで図を参照しながら、本開示の例示的な実施形態がさらに詳細に説明される。
【0024】
例示的な画像処理フロー
図1は、計算効率が改善された画像修正を実行するための例示的なフローを示す。特定の例として、画像修正タスクは、入力画像の選択された(たとえば、ユーザ選択された)要素が入力画像の周囲のエリアからの情報に基づいて「埋められる」、修復であってよい。このことは、たとえば、選択された欠陥、不具合などを「埋めること」によって、たとえば、画像を拡張するために使用されてよい。図1は画像修正(たとえば、修復)の例示的な画像処理タスクのコンテキストにおける例示的なフローを提供するが、開示する技術は他の画像処理タスクに適用され得る。
【0025】
図1に示すように、コンピューティングシステムは、入力画像の下位解像度バージョン16を取得することができる。入力画像の下位解像度バージョン16は第1の解像度を有することができる。入力画像の下位解像度バージョン16は、予測画像データを用いて修正されるべき1つまたは複数の画像要素を含むことができる。一例として、図1では、入力画像の下位解像度バージョン16は望ましくない画像要素14を含み、システムは、修復を介して画像要素14を置換しようとする。
【0026】
いくつかの実装形態では、コンピューティングシステムは、入力画像の上位解像度バージョン12をダウンスケールすることによって入力画像の下位解像度バージョン16を取得することができる。たとえば、入力画像の上位解像度バージョン12は、カメラシステムの撮像パイプラインから取得され、ユーザによってアップロードもしくは選択され、かつ/または入力画像がそれによって図示のプロセスを受けてよい様々な他の手段を介して取得される、入力画像の元のバージョンであり得る。
【0027】
さらに図1を参照すると、コンピューティングシステムは、第1の解像度を有する拡張画像22を生成するために第1の機械学習型モデル20を用いて入力画像の下位解像度バージョン16を処理することができる。拡張画像は、1つまたは複数の画像要素14を修正する第1の予測画像データを含むことができる。
【0028】
第1の機械学習型モデル20は、ニューラルネットワークなどの様々な形態の機械学習型モデルであり得る。一例では、第1の機械学習型モデル20は、畳み込みニューラルネットワークであり得る。一例では、第1の機械学習型モデル20は、セルフアテンションを使用するトランスフォーマモデルであり得る。一例では、第1の機械学習型モデル20は、エンコーダデコーダアーキテクチャを有することができる。
【0029】
いくつかの実装形態では、第1の機械学習型モデル20は、たとえば、1つまたは複数の画像要素14の修復、ぼけ修正、復色、または平滑化などの、画像修正タスクを実行することができる。
【0030】
したがって、いくつかの実装形態では、図1に示すように、拡張画像22を生成するために第1の機械学習型モデル20を用いて入力画像の下位解像度バージョン16を処理することは、1つまたは複数の画像要素を修正する第1の修復画像データを有する拡張画像22を生成するために、入力画像の下位解像度バージョン16、および1つまたは複数の画像要素14を識別するマスク18を、第1の機械学習型修復モデルを用いて処理することを含むことができる。
【0031】
いくつかの実装形態では、置換されるべき1つまたは複数の画像要素14は、1つまたは複数のユーザ入力(たとえば、グラフィカルユーザインターフェースへの入力)に基づいて指定されている1つまたは複数のユーザ指定の画像要素を含むことができる。代替または追加として、置換されるべき1つまたは複数の画像要素14は、1つまたは複数のコンピュータ指定の画像要素を含むことができる。たとえば、1つまたは複数のコンピュータ指定の画像要素は、第1の機械学習型モデル20または第2の機械学習型モデル28のうちの少なくとも1つの、1つまたは複数の分類サブブロックを用いて入力画像を処理することによってコンピュータ指定され得る。
【0032】
他の実装形態では、図1に示す例示的な画像修正タスクに加えて、またはその代替として、画像解析タスクが実行され得る。例として、いくつかの実装形態では、第1の機械学習型モデルの出力は、セマンティックセグメント化データ、物体検出データ、物体認識データ、顔認識データ、ヒューマンキーポイント検出データ、エッジ検出データ、および/または他の予測データなどの予測データを含む、第1の予測画像であり得る。
【0033】
さらに図1を参照すると、コンピューティングシステムは、拡張画像22の部分24を抽出することができる。抽出される部分は、1つまたは複数の画像要素14に対応する画像領域を備えてよく、したがって、1つまたは複数のユーザ入力および/またはマスク18によって指定される領域であってよい。拡張画像の部分24は、1つまたは複数の画像要素14を修正した第1の予測画像データを含むことができる。
【0034】
コンピューティングシステムは、アップスケールされた解像度を有するアップスケールされた画像部分26を生成するために拡張画像22の抽出された部分24をアップスケールすることができる。アップスケールすることは、アップサンプリングすること、および/または他の形態の、抽出された部分24の解像度を大きくすることを含むことができる。
【0035】
コンピューティングシステムは、改善された部分30を生成するために、アップスケールされた画像部分26を第2の機械学習型モデル28を用いて処理することができる。改善された部分30は、第1の予測画像データの少なくとも一部分を修正する第2の予測画像データを含むことができる。
【0036】
第2の機械学習型モデル20は、ニューラルネットワークなどの様々な形態の機械学習型モデルであり得る。一例では、第2の機械学習型モデル20は、畳み込みニューラルネットワークであり得る。一例では、第2の機械学習型モデル20は、セルフアテンションを使用するトランスフォーマモデルであり得る。一例では、第2の機械学習型モデル20は、エンコーダデコーダアーキテクチャを有することができる。
【0037】
いくつかの実装形態では、図1に示すように、改善された部分30を生成するために、アップスケールされた画像部分26を第2の機械学習型モデル28を用いて処理することは、第1の修復画像データの少なくとも一部分を修正する第2の修復画像データを有する改善された部分30を生成するために、アップスケールされた画像部分26を第2の機械学習型修復モデルを用いて処理することを含むことができる。
【0038】
しかしながら、他の実装形態では、図1に示す例示的な画像修正タスクに加えて、またはその代替として、画像解析タスクが実行され得る。例として、いくつかの実装形態では、第2の機械学習型モデルの出力は、セマンティックセグメント化データ、物体検出データ、物体認識データ、顔認識データ、ヒューマンキーポイント検出データ、エッジ検出データ、および/または他の予測データなどの予測データ(たとえば、改善された予測データ)を含む、第2の予測画像であり得る。
【0039】
さらに図1を参照すると、コンピューティングシステムは、改善された部分30、および入力画像の上位解像度バージョン12に基づいて、出力画像32を生成することができる。いくつかの実装形態では、出力画像32と入力画像の上位解像度バージョン12の両方が、第1の解像度よりも大きい第2の解像度を有する。
【0040】
いくつかの実装形態では、改善された部分30、および入力画像の上位解像度バージョン12に基づいて、出力画像32を生成することは、改善された部分30を入力画像の上位解像度バージョン12の中に(たとえば、対応するロケーションにおいて)挿入することを含むことができる。
【0041】
いくつかの実装形態では、アップスケールされた解像度を有するアップスケールされた画像部分26を生成するために拡張画像22の抽出された部分24をアップスケールすることは、アップスケールされた解像度が、入力画像の上位解像度バージョン12の対応する部分の対応する解像度に整合するような、拡張画像22の抽出された部分24をアップスケールすることを含むことができ、ここで、対応する部分は、拡張画像の抽出された部分24に比例的に対応する。そのような方法で、改善された部分30は、適切なサイズ/解像度を有する入力画像の上位解像度バージョン12の中に戻して挿入され得る。
【0042】
コンピューティングシステムは、出力画像32を出力として提供することができる。たとえば、画像を出力として提供することは、メモリの中に画像を記憶すること、画像を追加のデバイスへ送信すること、および/または画像を表示することを含むことができる。
【0043】
いくつかの実装形態では、入力画像は、修正、置換などされるべき複数の画像要素を含むことができる。そのような実装形態のうちのいくつかでは、コンピューティングシステムは、画像全体に対して1つの出力を生成するために1回だけ、第1の機械学習型モデルを用いて入力画像の下位解像度バージョン16を処理することができる。その後、コンピューティングシステムは、抽出すること、アップスケールすること、およびアップスケールされた画像部分を第2の機械学習型モデル28を用いて処理することを、複数の異なるオブジェクトのうちのオブジェクトごとに別個に実行することができる。そのような方法で、複数のオブジェクトクロップが並行して改善されることが可能であり、レイテンシを低減する。
【0044】
いくつかの実装形態では、コンピューティングシステムは、第1の機械学習型モデル20から第2の機械学習型モデル28に1つまたは複数の内部特徴ベクトルを受け渡すことができる。したがって、潜在性空間情報がモデル間で共有され得る。
【0045】
いくつかの実装形態では、拡張画像および/または他のモデル出力は、予測深度チャネルをさらに含むことができる(たとえば、第1の機械学習型モデル20および/または第2の機械学習型モデル28によって深度データも出力され得る)。
【0046】
例示的なトレーニングフロー
図2は、本開示の例示的な実施形態による、画像処理(たとえば、修復)のためにカスケード式多重解像度機械学習をトレーニングするための例示的な技法のブロック図を示す。
【0047】
図2に示すように、コンピューティングシステムは、入力画像の下位解像度バージョン216、およびグラウンドトゥルース画像202を受信することができる。入力画像の下位解像度バージョン216は第1の解像度を有することができ、グラウンドトゥルース画像202は、第1の解像度よりも大きい第2の解像度を有することができる。入力画像の下位解像度バージョン216は、グラウンドトゥルース画像202の中に存在しない1つまたは複数の画像要素214を含むことができる(たとえば、垂直線と水平線とのマーク)。
【0048】
いくつかの実装形態では、入力画像の下位解像度バージョン216は、入力画像の上位解像度バージョン212をダウンスケールすることによって取得され得る。いくつかの実装形態では、入力画像の上位解像度バージョン212は、1つまたは複数の画像要素214をグラウンドトゥルース画像202に加えることによって取得され得る。
【0049】
さらに図2を参照すると、コンピューティングシステムは、第1の解像度を有する拡張画像の下位解像度バージョン222を生成するために第1の機械学習型モデル220を用いて入力画像の下位解像度バージョン216を処理することができる。拡張画像の下位解像度バージョン222は、1つまたは複数の画像要素214を置換する第1の予測データを含むことができる。
【0050】
いくつかの実装形態では、第1の機械学習型モデルへの入力としてマスク218も供給され得る。マスク218は、画像要素214のロケーションを示すことができる。
【0051】
いくつかの実装形態では、画像要素を置換することを修正することの代替または追加として、モデル220は、セマンティックセグメント化データ、物体検出データ、物体認識データ、ヒューマンキーポイント検出データ、顔認識データなどの、入力画像についての追加のデータを予測することができる。
【0052】
さらに図2を参照すると、コンピューティングシステムは、第2の解像度を有する拡張画像の上位解像度バージョン226を生成するために拡張画像の下位解像度バージョン222をアップスケールすることができる。
【0053】
コンピューティングシステムは、第2の解像度を有する予測画像230を生成するために第2の機械学習型モデル228を用いて拡張画像の上位解像度バージョン226の少なくとも一部分を処理することができる。
【0054】
コンピューティングシステムは、予測画像230とグラウンドトゥルース画像202との間の差分を評価する損失関数232を評価することができる。損失関数232の中に含まれ得る例示的な損失項は、視覚的な損失(たとえば、ピクセルレベルの損失)、VGG損失、GAN損失、および/または他の損失項を含むことができる。
【0055】
コンピューティングシステムは、損失関数に少なくとも部分的に基づいて第1の機械学習型モデル220または第2の機械学習型モデル228のうちの少なくとも1つの、1つまたは複数のパラメータを調整することができる。たとえば、損失関数232は、第2のモデル228および/または第1のモデル220をトレーニングするために、第2のモデル228を通じて、次いで、第1のモデル220を通じて、逆伝搬され得る。
【0056】
例示的なデバイスおよびシステム
図3Aは、本開示の例示的な実施形態による、例示的なコンピューティングシステム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が、図1および図2を参照しながら説明される。
【0060】
いくつかの実装形態では、1つまたは複数の機械学習型モデル120は、ネットワーク180を介してサーバコンピューティングシステム130から受信されること、ユーザコンピューティングデバイスメモリ114に記憶されること、次いで、1つまたは複数のプロセッサ112によって使用されるかまたはさもなければ実装されることが可能である。いくつかの実装形態では、ユーザコンピューティングデバイス102は、(たとえば、画像または画像要素の複数のインスタンスにわたって平行な画像処理を実行するために)単一の機械学習型モデル120の複数の平行なインスタンスを実施することができる。
【0061】
追加または代替として、1つまたは複数の機械学習型モデル140は、クライアントサーバ関係に従ってユーザコンピューティングデバイス102と通信するサーバコンピューティングシステム130の中に含まれること、またはさもなければそうしたサーバコンピューティングシステム130によって記憶および実施されることが可能である。たとえば、機械学習型モデル140は、ウェブサービス(たとえば、画像処理サービス)の一部分としてサーバコンピューティングシステム130によって実施され得る。したがって、1つもしくは複数のモデル120が、ユーザコンピューティングデバイス102において記憶および実施されることが可能であり、かつ/または1つもしくは複数のモデル140が、サーバコンピューティングシステム130において記憶および実施されることが可能である。
【0062】
ユーザコンピューティングデバイス102はまた、ユーザ入力を受信する1つまたは複数のユーザ入力構成要素122を含むことができる。たとえば、ユーザ入力構成要素122は、ユーザ入力物体(たとえば、指またはスタイラス)のタッチに敏感な、タッチセンシティブ構成要素(たとえば、タッチセンシティブ表示スクリーンまたはタッチパッド)であり得る。タッチセンシティブ構成要素は、仮想キーボードを実装するのに役立つことができる。他の例示的なユーザ入力構成要素は、マイクロフォン、従来のキーボード、またはユーザがそれによってユーザ入力を提供できる他の手段を含む。
【0063】
サーバコンピューティングシステム130は、1つまたは複数のプロセッサ132およびメモリ134を含む。1つまたは複数のプロセッサ132は、任意の好適な処理デバイス(たとえば、プロセッサコア、マイクロプロセッサ、ASIC、FPGA、コントローラ、マイクロコントローラなど)であり得、1つのプロセッサ、または動作可能に接続されている複数のプロセッサであり得る。メモリ134は、RAM、ROM、EEPROM、EPROM、フラッシュメモリデバイス、磁気ディスクなど、およびそれらの組合せなどの、1つまたは複数の非一時的コンピュータ可読記憶媒体を含むことができる。メモリ134は、データ136、およびサーバコンピューティングシステム130に動作を実行させるようにプロセッサ132によって実行される命令138を記憶することができる。
【0064】
いくつかの実装形態では、サーバコンピューティングシステム130は、1つもしくは複数のサーバコンピューティングデバイスを含むか、またはさもなければ1つもしくは複数のサーバコンピューティングデバイスによって実装される。サーバコンピューティングシステム130が複数のサーバコンピューティングデバイスを含む事例では、そのようなサーバコンピューティングデバイスは、逐次コンピューティングアーキテクチャ、並列コンピューティングアーキテクチャ、またはそれらの何らかの組合せに従って動作することができる。
【0065】
上記で説明したように、サーバコンピューティングシステム130は、1つもしくは複数の機械学習型モデル140を記憶すること、またはさもなければ、1つもしくは複数の機械学習型拡張モデル140を含むことができる。たとえば、モデル140は、様々な機械学習型モデルであり得るか、またはさもなければ様々な機械学習型モデルを含むことができる。例示的な機械学習型モデルは、ニューラルネットワークまたは他の多層非線形モデルを含む。例示的なニューラルネットワークは、フィードフォワードニューラルネットワーク、ディープニューラルネットワーク、回帰型ニューラルネットワーク、および畳み込みニューラルネットワークを含む。いくつかの例示的な機械学習型モデルは、セルフアテンションなどのアテンション機構を活用することができる。たとえば、いくつかの例示的な機械学習型モデルは、マルチヘッドセルフアテンションモデル(たとえば、トランスフォーマモデル)を含むことができる。例示的なモデル140が、図1および図2を参照しながら説明される。
【0066】
ユーザコンピューティングデバイス102および/またはサーバコンピューティングシステム130は、ネットワーク180を介して通信可能に結合されているトレーニングコンピューティングシステム150との相互作用を介してモデル120および/または140をトレーニングすることができる。トレーニングコンピューティングシステム150は、サーバコンピューティングシステム130とは別個であり得るか、またはサーバコンピューティングシステム130の一部分であり得る。
【0067】
トレーニングコンピューティングシステム150は、1つまたは複数のプロセッサ152およびメモリ154を含む。1つまたは複数のプロセッサ152は、任意の好適な処理デバイス(たとえば、プロセッサコア、マイクロプロセッサ、ASIC、FPGA、コントローラ、マイクロコントローラなど)であり得、1つのプロセッサ、または動作可能に接続されている複数のプロセッサであり得る。メモリ154は、RAM、ROM、EEPROM、EPROM、フラッシュメモリデバイス、磁気ディスクなど、およびそれらの組合せなどの、1つまたは複数の非一時的コンピュータ可読記憶媒体を含むことができる。メモリ154は、データ156、およびトレーニングコンピューティングシステム150に動作を実行させるようにプロセッサ152によって実行される命令158を記憶することができる。いくつかの実装形態では、トレーニングコンピューティングシステム150は、1つもしくは複数のサーバコンピューティングデバイスを含むか、またはさもなければ1つもしくは複数のサーバコンピューティングデバイスによって実装される。
【0068】
トレーニングコンピューティングシステム150は、ユーザコンピューティングデバイス102および/またはサーバコンピューティングシステム130において記憶された機械学習型モデル120および/または140を、たとえば、誤差逆伝搬などの、様々なトレーニングまたは学習技法を使用してトレーニングする、モデル訓練器160を含むことができる。たとえば、損失関数は、(たとえば、損失関数の勾配に基づいて)モデルの1つまたは複数のパラメータを更新するために、モデルを通じて逆伝搬され得る。平均2乗誤差、尤度損失、交差エントロピー損失、ヒンジ損失、および/または様々な他の損失関数などの、様々な損失関数が使用され得る。ある回数のトレーニングイテレーションにわたってパラメータを反復的に更新するために勾配降下技法が使用され得る。
【0069】
いくつかの実装形態では、誤差逆伝搬を実行することは、時間を通じて短縮逆伝搬を実行することを含むことができる。モデル訓練器160は、トレーニングされているモデルの汎化能力を向上するために、いくつかの汎化技法(たとえば、重み減衰、ドロップアウトなど)を実行することができる。
【0070】
詳細には、モデル訓練器160は、トレーニングデータ162のセットに基づいて機械学習型モデル120および/または140をトレーニングすることができる。いくつかの実装形態では、ユーザが承諾を与えている場合、トレーニング例がユーザコンピューティングデバイス102によって提供され得る。したがって、そのような実装形態では、ユーザコンピューティングデバイス102に提供されるモデル120は、ユーザコンピューティングデバイス102から受信されるユーザ固有データに対してトレーニングコンピューティングシステム150によってトレーニングされ得る。いくつかの事例では、このプロセスは、モデルを個別化することと呼ばれる場合がある。
【0071】
モデル訓練器160は、所望の機能性を提供するために利用されるコンピュータ論理を含む。モデル訓練器160は、汎用プロセッサを制御するハードウェア、ファームウェア、および/またはソフトウェアで実装され得る。たとえば、いくつかの実装形態では、モデル訓練器160は、記憶デバイス上に記憶され、メモリにロードされ、かつ1つまたは複数のプロセッサによって実行される、プログラムファイルを含む。他の実装形態では、モデル訓練器160は、RAMハードディスクまたは光媒体もしくは磁気媒体などの有形コンピュータ可読記憶媒体に記憶されているコンピュータ実行可能命令の1つまたは複数のセットを含む。
【0072】
ネットワーク180は、ローカルエリアネットワーク(たとえば、イントラネット)、ワイドエリアネットワーク(たとえば、インターネット)、またはそれらの何らかの組合せなどの、任意のタイプの通信ネットワークであり得、任意の数の有線リンクまたはワイヤレスリンクを含むことができる。概して、ネットワーク180を介した通信は、多種多様な通信プロトコル(たとえば、TCP/IP、HTTP、SMTP、FTP)、符号化もしくはフォーマット(たとえば、HTML、XML)、および/または保護方式(たとえば、VPN、セキュアHTTP、SSL)を使用して、任意のタイプの有線および/またはワイヤレスの接続を介して搬送され得る。
【0073】
いくつかの実装形態では、本開示の機械学習型モデルへの入力は、複数のピクセルを含むピクセルデータを備える画像データであり得る。機械学習型モデルは、出力を生成するためにピクセルデータを処理することができる。一例として、機械学習型モデルは、修正および/または拡張された画像を生成するために画像データを処理することができる。別の例として、機械学習型モデルは、画像認識出力(たとえば、画像データの認識、画像データの潜在性埋込み、画像データの符号化表現、画像データのハッシュなど)を生成するために画像データを処理することができる。別の例として、機械学習型モデルは、画像セグメント化出力を生成するために画像データを処理することができる。別の例として、機械学習型モデルは、画像分類出力を生成するために画像データを処理することができる。別の例として、機械学習型モデルは、画像データ修正出力(たとえば、画像データの改変など)を生成するために画像データを処理することができる。別の例として、機械学習型モデルは、符号化画像データ出力(たとえば、画像データの符号化および/または圧縮された表現など)を生成するために画像データを処理することができる。別の例として、機械学習型モデルは、アップスケールされた画像データ出力を生成するために画像データを処理することができる。別の例として、機械学習型モデルは、予測出力を生成するために画像データを処理することができる。
【0074】
場合によっては、入力は視覚データを含み、タスクはコンピュータビジョンタスクである。場合によっては、入力は、1つまたは複数の画像用のピクセルデータを含み、タスクは画像処理タスクである。たとえば、画像処理タスクは、出力がスコアのセットであり、各スコアが、異なるオブジェクトクラスに対応し、オブジェクトクラスに属するオブジェクトを1つまたは複数の画像が示す可能性を表す、画像分類であり得る。画像処理タスクは物体検出であってよく、ここで、画像処理出力は、1つまたは複数の画像の1つまたは複数の領域、および領域ごとに対象のオブジェクトを領域が描く可能性を識別する。別の例として、画像処理タスクは画像セグメント化であり得、ここで、画像処理出力は、1つまたは複数の画像中のピクセルごとにカテゴリーの所定のセットの中の各カテゴリーに対するそれぞれの可能性を規定する。たとえば、カテゴリーのセットは前景および背景であり得る。別の例として、カテゴリーのセットはオブジェクトクラスであり得る。別の例として、画像処理タスクは深度推定であり得、ここで、画像処理出力は、1つまたは複数の画像のピクセルごとにそれぞれの深度値を規定する。別の例として、画像処理タスクは動き推定であり得、ここで、ネットワーク入力は複数の画像を含み、画像処理出力は、入力画像のうちの1つのピクセルごとにネットワーク入力における画像間の、ピクセルにおいて描かれるシーンの動きを規定する。
【0075】
図3Aは、本開示を実施するために使用され得る1つの例示的なコンピューティングシステムを示す。他のコンピューティングシステムも使用され得る。たとえば、いくつかの実装形態では、ユーザコンピューティングデバイス102は、モデル訓練器160およびトレーニングデータセット162を含むことができる。そのような実装形態では、モデル120は、ユーザコンピューティングデバイス102において局所的にトレーニングされることと使用されることの両方が可能である。そのような実装形態のうちのいくつかでは、ユーザコンピューティングデバイス102は、ユーザ固有データに基づいてモデル120を個別化するためにモデル訓練器160を実装することができる。
【0076】
図3Bは、本開示の例示的な実施形態による、実行する例示的なコンピューティングデバイス10のブロック図を示す。コンピューティングデバイス10は、ユーザコンピューティングデバイスまたはサーバコンピューティングデバイスであり得る。
【0077】
コンピューティングデバイス10は、いくつかのアプリケーション(たとえば、アプリケーション1~N)を含む。各アプリケーションは、それ自体の機械学習ライブラリおよび機械学習型モデルを含む。たとえば、各アプリケーションは、機械学習型モデルを含むことができる。例示的なアプリケーションは、テキストメッセージングアプリケーション、電子メールアプリケーション、口述筆記アプリケーション、仮想キーボードアプリケーション、ブラウザアプリケーションなどを含む。
【0078】
図3Bに示すように、各アプリケーションは、たとえば、1つまたは複数のセンサ、コンテキストマネージャ、デバイス状態構成要素、および/または追加構成要素などの、コンピューティングデバイスのいくつかの他の構成要素と通信することができる。いくつかの実装形態では、各アプリケーションは、API(たとえば、パブリックAPI)を使用して各デバイス構成要素と通信することができる。いくつかの実装形態では、各アプリケーションによって使用されるAPIは、そのアプリケーションに特有である。
【0079】
図3Cは、本開示の例示的な実施形態による、実行する例示的なコンピューティングデバイス50のブロック図を示す。コンピューティングデバイス50は、ユーザコンピューティングデバイスまたはサーバコンピューティングデバイスであり得る。
【0080】
コンピューティングデバイス50は、いくつかのアプリケーション(たとえば、アプリケーション1~N)を含む。各アプリケーションは、中央インテリジェンスレイヤと通信している。例示的なアプリケーションは、テキストメッセージングアプリケーション、電子メールアプリケーション、口述筆記アプリケーション、仮想キーボードアプリケーション、ブラウザアプリケーションなどを含む。いくつかの実装形態では、各アプリケーションは、API(たとえば、すべてのアプリケーションにわたる共通API)を使用して中央インテリジェンスレイヤ(および、その中に記憶されるモデル)と通信することができる。
【0081】
中央インテリジェンスレイヤは、いくつかの機械学習型モデルを含む。たとえば、図3Cに示すように、それぞれの機械学習型モデルが、アプリケーションごとに設けられること、および中央インテリジェンスレイヤによって管理されることが可能である。他の実装形態では、2つ以上のアプリケーションが単一の機械学習型モデルを共有することができる。たとえば、いくつかの実装形態では、中央インテリジェンスレイヤは、単一のモデルをアプリケーションのすべてに提供することができる。いくつかの実装形態では、中央インテリジェンスレイヤは、コンピューティングデバイス50のオペレーティングシステム内に含まれるか、またはさもなければオペレーティングシステムによって実装される。
【0082】
中央インテリジェンスレイヤは、中央デバイスデータレイヤと通信することができる。中央デバイスデータレイヤは、コンピューティングデバイス50用のデータの集中型リポジトリであり得る。図3Cに示すように、中央デバイスデータレイヤは、たとえば、1つまたは複数のセンサ、コンテキストマネージャ、デバイス状態構成要素、および/または追加構成要素などの、コンピューティングデバイスのいくつかの他の構成要素と通信することができる。いくつかの実装形態では、中央デバイスデータレイヤは、API(たとえば、プライベートAPI)を使用して各デバイス構成要素と通信することができる。
【0083】
追加の開示
本明細書で説明した技術は、サーバ、データベース、ソフトウェアアプリケーション、および他のコンピュータベースのシステム、ならびにそのようなシステムとの間で行われるアクションおよび送られる情報を参照する。コンピュータベースのシステムの固有のフレキシビリティは、構成要素の間でのタスクおよび機能性の多種多様な可能な構成、組合せ、および分割を可能にする。たとえば、本明細書で説明したプロセスは、単一のデバイスもしくは構成要素または組合せで働く複数のデバイスもしくは構成要素を使用して実施され得る。データベースおよびアプリケーションは、単一のシステム上で実装されること、または複数のシステムにわたって分散されることが可能である。分散構成要素は、連続的にまたは並行して動作することができる。
【0084】
本主題は、その様々な特定の例示的な実施形態に関して詳細に説明されているが、各例は、本開示の限定ではなく、説明として与えられる。当業者は、上記の理解に到達すると、そのような実施形態の改変、変形、および均等物を容易に作り出すことができる。したがって、本開示は、当業者には容易に明らかであることになるように、本主題へのそのような修正、変形、および/または追加を含めることを排除しない。たとえば、ある実施形態の一部として図示または説明した特徴は、またさらなる実施形態を生み出すために別の実施形態とともに使用され得る。したがって、本開示がそのような改変、変形、および均等物をカバーすることが意図される。
【符号の説明】
【0085】
10 コンピューティングデバイス
12 入力画像の上位解像度バージョン
14 画像要素
16 入力画像の下位解像度バージョン
18 マスク
20 第1の機械学習型モデル
22 拡張画像
24 拡張画像の部分
26 アップスケールされた画像部分
28 第2の機械学習型モデル
30 改善された部分
32 出力画像
50 コンピューティングデバイス
100 コンピューティングシステム
102 ユーザコンピューティングデバイス
112 プロセッサ
114 メモリ
116 データ
118 命令
120 モデル、機械学習型モデル
122 ユーザ入力構成要素
130 サーバコンピューティングシステム
132 プロセッサ
134 メモリ
136 データ
138 命令
140 モデル、機械学習型拡張モデル
150 トレーニングコンピューティングシステム
152 プロセッサ
154 メモリ
156 データ
158 命令
160 モデル訓練器
162 トレーニングデータ、トレーニングデータセット
180 ネットワーク
202 グラウンドトゥルース画像
212 入力画像の上位解像度バージョン
214 画像要素
216 入力画像の下位解像度バージョン
218 マスク
220 第1の機械学習型モデル
222 拡張画像の下位解像度バージョン
226 拡張画像の上位解像度バージョン
228 第2の機械学習型モデル
230 予測画像
232 損失関数
図1
図2
図3A
図3B
図3C
【国際調査報告】