(57)【特許請求の範囲】
【請求項１】
1つまたは複数のコンピュータがNピクセル×Nピクセルの出力解像度を有する出力画像を生成する方法であって、前記出力画像の各ピクセルが、複数のカラーチャンネルの各々に関するそれぞれの色値を有し、前記方法が、
前記出力画像の低解像度バージョンを取得するステップと、
以下の動作、すなわち、
現在のK×Kの解像度を有する前記出力画像の現在のバージョンを取得する動作、および
2K×2Kの解像度を有する前記出力画像の更新されたバージョンを生成するために前記現在の解像度に固有である畳み込みニューラルネットワークの組を使用して前記出力画像の前記現在のバージョンを処理する動作
を繰り返し実行することによって前記出力解像度を有する前記出力画像を生成するために前記出力画像の前記低解像度バージョンをアップスケールするステップと
を含む、方法。
【請求項２】
前記低解像度バージョンを取得するステップが、
画像生成機械学習モデルを使用して前記低解像度バージョンを生成することを含む請求項1に記載の方法。
【請求項３】
前記画像生成機械学習モデルが、自己回帰画像生成機械学習モデルである請求項2に記載の方法。
【請求項４】
前記出力画像が、入力コンテキストを条件とし、
前記画像生成機械学習モデルが、前記入力コンテキストを条件として前記低解像度バージョンを生成するように構成される請求項2に記載の方法。
【請求項５】
畳み込みニューラルネットワークの各組の中の各畳み込みニューラルネットワークが、前記入力コンテキストを条件とする請求項4に記載の方法。
【請求項６】
前記現在の解像度に固有である畳み込みニューラルネットワークの前記組が、
前記出力画像の前記現在のバージョンを含む第1の入力を受け取り、前記出力画像のK×2Kバージョンからのピクセルの列を含む第1の出力画像を生成するように構成される第1の畳み込みニューラルネットワークと、
前記出力画像の前記K×2Kバージョンを含む第2の入力を受け取り、前記出力画像の2K×2Kバージョンからのピクセルの行を含む第2の出力画像を生成するように構成される第2の畳み込みニューラルネットワークと
を含む請求項1に記載の方法。
【請求項７】
前記出力画像の前記更新されたバージョンを生成するために前記現在の解像度に固有である畳み込みニューラルネットワークの前記組を使用して前記出力画像の前記現在のバージョンを処理することが、
前記第1の出力画像を生成するために前記第1の畳み込みニューラルネットワークを使用して前記出力画像の前記現在のバージョンを処理することと、
前記現在のバージョンおよび前記第1の出力画像をマージすることによって前記K×2Kバージョンを生成することと、
前記第2の出力画像を生成するために前記第2の畳み込みニューラルネットワークを使用して前記K×2Kバージョンを処理することと、
前記K×2Kバージョンおよび前記第2の出力画像をマージすることによって前記2K×2Kバージョンを生成することと
を含む請求項6に記載の方法。
【請求項８】
前記現在のバージョンおよび前記第1の出力画像をマージすることが、
前記現在のバージョンからのピクセルの列を前記第1の出力画像からのピクセルの列と互い違いにすることによって、前記現在の画像からのピクセルのK個の列および前記第1の出力画像からのピクセルのK個の列を含むK×2K画像を生成することを含む請求項7に記載の方法。
【請求項９】
前記K×2Kバージョンおよび前記第2の出力画像をマージすることが、
前記K×2Kバージョンからのピクセルの行を前記第2の出力画像からのピクセルの行と互い違いにすることによって、前記K×2KバージョンからのピクセルのK個の行および前記第2の出力画像からのピクセルのK個の行を含む2K×2K画像を生成することを含む請求項7に記載の方法。
【請求項１０】
前記複数のカラーチャンネルが、チャンネルの順序に従って順序付けられ、
前記第1の畳み込みニューラルネットワークが、前記カラーチャンネルの各々に関して、
(i)前記現在のバージョン、および(ii)前記チャンネルの順序で前記カラーチャンネルの前の任意のカラーチャンネルに関する前記第1の出力画像のピクセルのための色値を条件とし、かつ(iii)前記チャンネルの順序で前記カラーチャンネルの後にある任意のカラーチャンネルに関する前記第1の出力画像のピクセルのための色値を条件とせずに、前記第1の出力画像のピクセルのための前記カラーチャンネルに関する色値を生成するように構成され、
前記第2の畳み込みニューラルネットワークが、前記カラーチャンネルの各々に関して、
(i)前記K×2Kバージョン、および(ii)前記チャンネルの順序で前記カラーチャンネルの前の任意のカラーチャンネルに関する前記第2の出力画像のピクセルのための色値を条件とし、かつ(iii)前記チャンネルの順序で前記カラーチャンネルの後にある任意のカラーチャンネルに関する前記第2の出力画像のピクセルのための色値を条件とせずに、前記第2の出力画像のピクセルのための前記カラーチャンネルに関する色値を生成するように構成される請求項7に記載の方法。
【請求項１１】
前記第1の出力画像を生成するために前記第1の畳み込みニューラルネットワークを使用して前記現在のバージョンを処理することが、
前記現在のバージョンと、前記第1の出力画像を生成するために既に生成された前記第1の出力画像からの色値とを繰り返し処理することを含み、
前記第2の出力画像を生成するために前記第2の畳み込みニューラルネットワークを使用して前記K×2Kバージョンを処理することが、
前記K×2Kバージョンと、前記第2の出力画像を生成するために既に生成された前記第2の出力画像からの色値とを繰り返し処理することを含む請求項10に記載の方法。
【請求項１２】
前記現在の解像度に固有である畳み込みニューラルネットワークの前記組が、
前記出力画像の前記現在のバージョンを含む第1の入力を受け取り、前記出力画像の2K×Kバージョンからのピクセルの行を含む第1の出力画像を生成するように構成される第1の畳み込みニューラルネットワークと、
前記出力画像の前記2K×Kバージョンを含む第2の入力を受け取り、前記出力画像の2K×2Kバージョンからのピクセルの列を含む第2の出力画像を生成するように構成される第2の畳み込みニューラルネットワークと
を含む請求項1に記載の方法。
【請求項１３】
前記更新されたバージョンを生成するために前記現在の解像度に固有である畳み込みニューラルネットワークの前記組を使用して前記出力画像の前記現在のバージョンを処理することが、
前記第1の出力画像を生成するために前記第1の畳み込みニューラルネットワークを使用して前記現在のバージョンを処理することと、
前記現在のバージョンおよび前記第1の出力画像をマージすることによって前記2K×Kバージョンを生成することと、
前記第2の出力画像を生成するために前記第2の畳み込みニューラルネットワークを使用して前記2K×Kバージョンを処理することと、
前記2K×Kバージョンおよび前記第2の出力画像をマージすることによって前記2K×2Kバージョンを生成することと
を含む請求項12に記載の方法。
【請求項１４】
前記現在のバージョンおよび前記第1の出力画像をマージすることが、
前記現在のバージョンからのピクセルの行を前記第1の出力画像からのピクセルの行と互い違いにすることによって、前記現在の画像からのピクセルのK個の行および前記第1の出力画像からのピクセルのK個の行を含む2K×K画像を生成することを含む請求項13に記載の方法。
【請求項１５】
前記2K×Kバージョンおよび前記第2の出力画像をマージすることが、
前記2K×Kバージョンからのピクセルの列を前記第2の出力画像からのピクセルの列と互い違いにすることによって、前記2K×KバージョンからのピクセルのK個の列および前記第2の出力画像からのピクセルのK個の列を含む2K×2K画像を生成することを含む請求項13に記載の方法。
【請求項１６】
前記複数のカラーチャンネルが、チャンネルの順序に従って順序付けられ、
前記第1の畳み込みニューラルネットワークが、前記カラーチャンネルの各々に関して、
(i)前記現在のバージョン、および(ii)前記チャンネルの順序で前記カラーチャンネルの前の任意のカラーチャンネルに関する前記第1の出力画像のピクセルのための色値を条件とし、かつ(iii)前記チャンネルの順序で前記カラーチャンネルの後にある任意のカラーチャンネルに関する前記第1の出力画像のピクセルのための色値を条件とせずに、前記第1の出力画像のピクセルのための前記カラーチャンネルに関する色値を生成するように構成され、
前記第2の畳み込みニューラルネットワークが、前記カラーチャンネルの各々に関して、
(i)前記2K×Kバージョン、および(ii)前記チャンネルの順序で前記カラーチャンネルの前の任意のカラーチャンネルに関する前記第2の出力画像のピクセルのための色値を条件とし、(iii)前記チャンネルの順序で前記カラーチャンネルの後にある任意のカラーチャンネルに関する前記第2の出力画像のピクセルのための色値を条件とせずに、前記第2の出力画像のピクセルのための前記カラーチャンネルに関する色値を生成するように構成される請求項12に記載の方法。
【請求項１７】
前記第1の出力画像を生成するために前記第1の畳み込みニューラルネットワークを使用して前記現在のバージョンを処理することが、
前記現在のバージョンと、前記第1の出力画像を生成するために既に生成された前記第1の出力画像からの色値とを繰り返し処理することを含み、
前記第2の出力画像を生成するために前記第2の畳み込みニューラルネットワークを使用して前記2K×Kバージョンを処理することが、
前記2K×Kバージョンと、前記第2の出力画像を生成するために既に生成された前記第2の出力画像からの色値とを繰り返し処理することを含む請求項16に記載の方法。
【請求項１８】
1つまたは複数のコンピュータと、
前記1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、Nピクセル×Nピクセルの出力解像度を有する出力画像を生成するための動作を実行させる命令を記憶した1つまたは複数のストレージデバイスであって、
前記出力画像の各ピクセルが、複数のカラーチャンネルの各々に関するそれぞれの色値を有し、前記動作が、
前記出力画像の低解像度バージョンを取得するステップと、
以下の動作、すなわち、
現在のK×Kの解像度を有する前記出力画像の現在のバージョンを取得する動作、および
2K×2Kの解像度を有する前記出力画像の更新されたバージョンを生成するために前記現在の解像度に固有である畳み込みニューラルネットワークの組を使用して前記出力画像の前記現在のバージョンを処理する動作
を繰り返し実行することによって前記出力解像度を有する前記出力画像を生成するために前記出力画像の前記低解像度バージョンをアップスケールするステップと
を含む、ストレージデバイスと
を含むシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、2017年2月24日に出願した米国仮出願第62/463,538号の優先権を主張するものである。先の出願の開示は、本出願の開示の一部と考えられ、本出願の開示に参照により組み込まれる。
【０００２】
本明細書は、ニューラルネットワークを使用して画像を生成することに関する。
【背景技術】
【０００３】
ニューラルネットワークは、受け取られた入力に関する出力を予測するために非線形ユニットの1つまたは複数の層を使用する機械学習モデルである。一部のニューラルネットワークは、出力層に加えて1つまたは複数の隠れ層を含む。各隠れ層の出力は、ネットワーク内の次の層、すなわち、次の隠れ層または出力層への入力として使用される。ネットワークの各層は、パラメータのそれぞれの組の現在の値に従って、受け取られた入力から出力を生成する。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Van den Oordら、「Conditional Image Generation with PixelCNN Decoders」、https://arxiv.org/abs/1606.05328
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本明細書は、畳み込みニューラルネットワークの複数の組を使用して出力画像を生成するためのシステムおよび方法を説明する。
【課題を解決するための手段】
【０００６】
概して、本明細書において説明される対象の1つの革新的な態様は、Nピクセル×Nピクセルの出力解像度を有する出力画像を生成するためのコンピュータによって実施される方法であって、出力画像の各ピクセルが複数のカラーチャンネルの各々に関するそれぞれの色値を有する、方法に具現化され得る。方法は、出力画像の低解像度バージョンを取得するステップと、以下の動作、すなわち、現在のK×Kの解像度を有する出力画像の現在のバージョンを取得する動作、および2K×2Kの解像度を有する出力画像の更新されたバージョンを生成するために現在の解像度に固有である畳み込みニューラルネットワークの組を使用して出力画像の現在のバージョンを処理する動作を繰り返し実行することによって出力解像度を有する出力画像を生成するために出力画像の低解像度バージョンをアップスケールするステップとを含む。
【０００７】
上述のおよびその他の実施形態は、それぞれ任意で以下の特徴のうちの1つまたは複数を単独でまたは組み合わせて含み得る。
【０００８】
低解像度バージョンを取得するステップは、画像生成機械学習モデルを使用して低解像度バージョンを生成することを含む可能性がある。画像生成機械学習モデルは、自己回帰画像生成機械学習モデルである可能性がある。出力画像は、入力コンテキストを条件とする可能性があり、画像生成機械学習モデルは、入力コンテキストを条件として低解像度バージョンを生成するように構成される。畳み込みニューラルネットワークの各組の中の各畳み込みニューラルネットワークは、入力コンテキストを条件とする可能性がある。
【０００９】
現在の解像度に固有である畳み込みニューラルネットワークの組は、解像度を4倍にするために使用される2つ以上の畳み込みニューラルネットワーク(CNN)を含むCNNの組を含む可能性がある。現在の解像度に固有である畳み込みニューラルネットワークの組は、画像の現在のバージョンを含む第1の入力を受け取り、出力画像のK×2Kバージョンからのピクセルの列を含む第1の出力画像を生成するように構成される第1の畳み込みニューラルネットワークと、出力画像のK×2Kバージョンを含む第2の入力を受け取り、出力画像の2K×2Kバージョンからのピクセルの行を含む第2の出力画像を生成するように構成される第2の畳み込みニューラルネットワークとを含む可能性がある。
【００１０】
更新されたバージョンを生成するために現在の解像度に固有である畳み込みニューラルネットワークの組を使用して出力画像の現在のバージョンを処理する動作は、第1の出力画像を生成するために第1の畳み込みニューラルネットワークを使用して現在のバージョンを処理することと、現在のバージョンおよび第1の出力画像をマージすることによってK×2Kバージョンを生成することと、第2の出力画像を生成するために第2の畳み込みニューラルネットワークを使用してK×2Kバージョンを処理することと、K×2Kバージョンおよび第2の出力画像をマージすることによって2K×2Kバージョンを生成することとを含む可能性がある。
【００１１】
現在のバージョンおよび第1の出力画像をマージすることは、現在のバージョンからのピクセルの列を第1の出力画像からのピクセルの列と互い違いにすることによって現在の画像からのピクセルのK列および第1の出力画像からのピクセルのK列を含むK×2K画像を生成することを含む可能性がある。
【００１２】
K×2Kバージョンおよび第2の出力画像をマージすることは、K×2Kバージョンからのピクセルの行を第2の出力画像からのピクセルの行と互い違いにすることによってK×2KバージョンからのピクセルのK行および第2の出力画像からのピクセルのK行を含む2K×2K画像を生成することを含む可能性がある。
【００１３】
複数のカラーチャンネルは、チャンネルの順序に従って順序付けられ、第1の畳み込みニューラルネットワークは、カラーチャンネルの各々に関して、(i)現在のバージョン、および(ii)チャンネルの順序でそのカラーチャンネルの前の任意のカラーチャンネルに関する第1の出力画像のピクセルのための色値を条件とし、(iii)チャンネルの順序でそのカラーチャンネルの後にある任意のカラーチャンネルに関する第1の出力画像のピクセルのための色値を条件とせずに第1の出力画像のピクセルのためのカラーチャンネルに関する色値を生成するように構成される。第2の畳み込みニューラルネットワークは、カラーチャンネルの各々に関して、(i)K×2Kバージョン、および(ii)チャンネルの順序でそのカラーチャンネルの前の任意のカラーチャンネルに関する第2の出力画像のピクセルのための色値を条件とし、(iii)チャンネルの順序でそのカラーチャンネルの後にある任意のカラーチャンネルに関する第2の出力画像のピクセルのための色値を条件とせずに第2の出力画像のピクセルのためのカラーチャンネルに関する色値を生成するように構成される。
【００１４】
第1の出力画像を生成するために第1の畳み込みニューラルネットワークを使用して現在のバージョンを処理することは、現在のバージョンと、第1の出力画像を生成するために既に生成された第1の出力画像からの色値とを繰り返し処理することを含む可能性がある。第2の出力画像を生成するために第1の畳み込みニューラルネットワークを使用してK×2Kバージョンを処理することは、K×2Kバージョンと、第2の出力画像を生成するために既に生成された第2の出力画像からの色値とを繰り返し処理することを含む可能性がある。
【００１５】
現在の解像度に固有である畳み込みニューラルネットワークの組は、画像の現在のバージョンを含む第1の入力を受け取り、出力画像の2K×Kバージョンからのピクセルの行を含む第1の出力画像を生成するように構成される第1の畳み込みニューラルネットワークと、出力画像の2K×Kバージョンを含む第2の入力を受け取り、出力画像の2K×2Kバージョンからのピクセルの列を含む第2の出力画像を生成するように構成される第2の畳み込みニューラルネットワークとを含む可能性がある。
【００１６】
更新されたバージョンを生成するために現在の解像度に固有である畳み込みニューラルネットワークの組を使用して出力画像の現在のバージョンを処理する動作は、第1の出力画像を生成するために第1の畳み込みニューラルネットワークを使用して現在のバージョンを処理することと、現在のバージョンおよび第1の出力画像をマージすることによって2K×Kバージョンを生成することと、第2の出力画像を生成するために第2の畳み込みニューラルネットワークを使用して2K×Kバージョンを処理することと、2K×Kバージョンおよび第2の出力画像をマージすることによって2K×2Kバージョンを生成することとを含む可能性がある。
【００１７】
現在のバージョンおよび第1の出力画像をマージすることは、現在のバージョンからのピクセルの行を第1の出力画像からのピクセルの行と互い違いにすることによって現在の画像からのピクセルのK行および第1の出力画像からのピクセルのK行を含む2K×K画像を生成することを含む可能性がある。2K×Kバージョンおよび第2の出力画像をマージすることは、2K×Kバージョンからのピクセルの列を第2の出力画像からのピクセルの列と互い違いにすることによって2K×KバージョンからのピクセルのK列および第2の出力画像からのピクセルのK列を含む2K×2K画像を生成することを含む可能性がある。
【００１８】
複数のカラーチャンネルは、チャンネルの順序に従って順序付けられる可能性がある。第1の畳み込みニューラルネットワークは、カラーチャンネルの各々に関して、(i)現在のバージョン、および(ii)チャンネルの順序でそのカラーチャンネルの前の任意のカラーチャンネルに関する第1の出力画像のピクセルのための色値を条件とし、(iii)チャンネルの順序でそのカラーチャンネルの後にある任意のカラーチャンネルに関する第1の出力画像のピクセルのための色値を条件とせずに第1の出力画像のピクセルのためのカラーチャンネルに関する色値を生成するように構成される。第2の畳み込みニューラルネットワークは、カラーチャンネルの各々に関して、(i)2K×Kバージョン、および(ii)チャンネルの順序でそのカラーチャンネルの前の任意のカラーチャンネルに関する第2の出力画像のピクセルのための色値を条件とし、(iii)チャンネルの順序でそのカラーチャンネルの後にある任意のカラーチャンネルに関する第2の出力画像のピクセルのための色値を条件とせずに第2の出力画像のピクセルのためのカラーチャンネルに関する色値を生成するように構成される。
【００１９】
関連する態様においては、出力画像のより低解像度のバージョンから出力画像を生成する方法が、画像のより低解像度のバージョンから出力画像に関するピクセルの第1のグループを決定するステップ、出力画像のためのピクセルのそれぞれの後続のグループに関する一連の値を繰り返し生成するステップであって、ピクセルの各グループに関する値が、ピクセルグループに関する前に生成された値を条件とする、ステップと、ピクセルの各グループ内で並列的に、グループ内のピクセルの値を決定するステップとを含む。ピクセルのグループ内のピクセルの値は、出力画像を定義する。
【００２０】
一部の実装において、ピクセルは、空間的局所性を利用するためにグループ化される。したがって、ピクセルのグループは、出力画像の2つの隣接するピクセルが同じグループ内にないように配列される可能性がある。一部の実装において、ピクセルグループに関する値は、所望の出力画像を定義する可能性がある、コンテキスト情報を提供するベクトルなどの外部入力をさらに条件として繰り返し生成される可能性がある。
【００２１】
本明細書に記載の対象は、以下の利点のうちの1つまたは複数を実現するために特定の実施形態に実装され得る。既存の画像生成モデルが依拠するいくつかの空間的依存関係を断ち切ることによって、本明細書において説明される自己回帰画像生成機械学習モデルを使用して出力画像を生成するために必要とされる処理時間が、出力画像の品質の劣化をほとんどまたは全く起こすことなく大幅に削減され得る。さらに、システムによって使用される畳み込みニューラルネットワークの処理が訓練中に並列化され得るので、ネットワークは、リソースおよび時間効率の良い方法で引き続き訓練され得る。加えて、本明細書において説明される自己回帰画像生成機械学習モデルは、適切な密度モデル(density model)であり、つまり、画像が、一定の原則に基づく方法においてモデルから生成され得る。したがって、本明細書において説明される自己回帰モデルを実装するシステムは、モデルの下で実際の画像の確率を計算し、モデルを評価し、モデルをその他の既存の画像生成モデルと定量的に比較することができる。
【００２２】
本明細書の対象の1つまたは複数の実施形態の詳細が、添付の図面および以下の説明に記載されている。対象のその他の特徴、態様、および利点は、説明、図面、および請求項から明らかになるであろう。
【図面の簡単な説明】
【００２３】
【図１】画像生成システムの例のブロック図である。
【図２】例示的なピクセルのグループ化および順序付け規則のブロック図である。
【図３】出力画像の更新されたバージョンを生成するために出力画像の現在のバージョンを処理するための例示的なプロセスのブロック図である。
【図４】出力画像の更新されたバージョンを生成するために出力画像の現在のバージョンを処理するための例示的なプロセスの流れ図である。
【発明を実施するための形態】
【００２４】
様々な図面における同様の参照番号および参照指示は、同様の要素を示す。
【００２５】
図1は、画像生成システム100の例を示す。システム100は、以下で説明されるシステム、構成要素、および技術が実装され得る、1つまたは複数の場所の1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されたシステムの例である。概して、システム100は、自己回帰画像生成機械学習モデル102(以降、「自己回帰モデル102」と呼ばれる)を使用して出力画像110を生成するように構成される。自己回帰モデル102は、畳み込みニューラルネットワーク(CNN)の複数の組104を含む。
【００２６】
特に、出力画像110を生成するために、自己回帰モデル102は、まず、出力画像110の初期低解像度画像108を生成する。一部の実装において、自己回帰モデル102は、低解像度画像の組から初期低解像度画像108をランダムにサンプリングすることができる。
【００２７】
いくつかのその他の実装において、自己回帰モデル102は、入力コンテキスト106を条件として初期低解像度画像108を生成する。初期低解像度画像108を生成することは、通常の自己回帰モデル、たとえば、高品質の画像を生成するが、計算負荷が高いモデルを使用して実行され得る。通常の自己回帰モデルの例は、https://arxiv.org/abs/1606.05328に公開されたVan den Oordらの「Conditional Image Generation with PixelCNN Decoders」に記載されている。
【００２８】
概して、入力コンテキスト106は、出力画像のピクセルの色値に影響を与えるべき外部情報の表現、すなわち、テンソル、たとえば、ベクトル、行列、またはそれらよりも高次のテンソルである。場合によっては、外部情報は、テキストの記述であることが可能である。テキストの記述は、たとえば、出力画像内の物体を説明するキャプション、たとえば、「明るい緑色の頭、黄色いくちばし、およびオレンジ色の足を持った大きな茶色い鳥」であることが可能である。場合によっては、外部情報は、画像のセグメンテーションであることが可能である。画像のセグメンテーションは、出力画像内に大きな物体によってマスキングされた画像を含む可能性があり、つまり、出力画像内のフォアグラウンドのピクセルのみが含まれる。場合によっては、外部情報は、出力画像内の1つまたは複数の物体の位置または形状を明記するキーポイント(keypoint)を含む可能性がある。いくつかのその他の場合、外部情報は、1つまたは複数の前のビデオフレームを含む可能性がある。これらの場合、システム100は、画像復号デバイス、たとえば、モバイルデバイスまたは別の種類のユーザコンピュータに実装され、受け取られた符号化された画像または受け取られた符号化されたビデオフレームを復号するために使用され得る。
【００２９】
一部の実装においては、低解像度108を生成する代わりに、自己回帰モデル102は、低解像度バージョン108を、たとえば、別のシステムから入力として取得することができる。
【００３０】
出力画像110の低解像度画像108を生成または取得した後、自己回帰モデル102は、最終的な所望の出力解像度(たとえば、Nピクセル×Nピクセル)を有する出力画像110を生成するためにCNNの組104を使用して低解像度バージョン108をアップスケールする。たとえば、一部の実装において、初期低解像度画像108は、4ピクセル×4ピクセルの解像度を有し、出力画像110は、128ピクセル×128ピクセルの解像度を有する。概して、自己回帰モデル102は、「ピクセルの疎-密順序付け(coarse-to-fine ordering)」原則に従ってより高解像度の画像を生成することによって低解像度画像108をアップスケールする。それは、モデル102が前の解像度を条件として生成される、より高解像度の画像を連続的に生成することを意味する。
【００３１】
本明細書において説明されるようにより高解像度の画像を連続的に生成する自己回帰モデル102は、既存の画像生成モデルに優る複数の技術的利点を有する。
【００３２】
いくつかの以前の自己回帰画像生成モデルは、画像の結合分布をピクセル当たりの因子(per-pixel factor)に分解(factorize)する。特に、これらのモデルは、条件付分布の次の積として画像全体にわたってTピクセルの結合分布を計算し、式中、xtは、単一のピクセルである。
【００３３】
【数１】
0006848071.tif 000002
【００３４】
これらのモデルは、条件付分布の因果構造が原因で、推論がラスタ順に1ピクセルずつ(つまり、1行ずつおよびすべての行内で1ピクセルずつ)逐次進行することを要求する。これは、多数の必要とされる完全なネットワークの評価が原因で、完全な画像を生成するためにコストがかかる、つまり、大量の計算リソースを必要とするピクセル毎の完全なネットワークの評価を必要とする。
【００３５】
対照的に、この説明で示される自己回帰モデル102は、画像の結合分布をピクセルグループの因子(pixel groups factor)に分解することによって計算コストを削減し、訓練および推論を速める。この手法は、ピクセル当たりの因子をマージするための方法とみなされることが可能であり、したがって、既存の自己回帰画像生成モデルが依拠するいくつかの空間的依存関係を断ち切り、並列サンプリングを可能にする。結果として、出力画像を生成するために必要とされる処理時間が、出力画像の品質の劣化をほとんどまたは全く起こすことなく大幅に削減され得る。たとえば、自己回帰モデル102は、通常の自己回帰モデルのO(N)ではなくO(log N)の時間でNピクセルの画像を処理することを可能にし得る。
【００３６】
特に、(他の場所で述べられるN2ではなく)画像のNピクセルがそれぞれTピクセルのG個のグループに分けられると仮定して、自己回帰モデル102は、画像全体にわたってTピクセルの結合分布を対応するG個の因子の積として計算する。
【００３７】
【数２】
0006848071.tif 000003
【００３８】
式(2)は、グループの各々がTピクセルを含むと仮定するが、実際には、この数は、変わる可能性がある。
【００３９】
訓練中、システム100は、log P(x;θ)を最大化するために自己回帰モデル102のパラメータθの値を調整することによって訓練データセットに関して自己回帰モデル102を訓練する。結合分布がピクセルグループおよびスケールで分解するので、訓練は、効果的に並列化されることが可能であり、つまり、自己回帰モデル102の畳み込みニューラルネットワークの処理が、訓練中に並列化されることが可能である。したがって、モデル102の畳み込みニューラルネットワークは、リソースおよび時間効率の良い方法で訓練され得る。
【００４０】
訓練されると、自己回帰モデル102は、たとえば、以下の動作、すなわち、現在のK×Kの解像度を有する出力画像の現在のバージョン、すなわち、前の繰り返しからの画像のバージョンを取得することと、2K×2Kの解像度を有する出力画像の更新されたバージョンを生成するために現在の解像度に固有であるCNNの組ならびにあらかじめ定義されたグループ化および順序付け規則を使用して出力画像の現在のバージョンを処理することとを繰り返し実行することによって低解像度画像108をアップスケールする。上記の動作が、所望の解像度(たとえば、N×N)が得られるまで繰り返し実行される。
【００４１】
あらかじめ定義されたグループ化および順序付け規則は、各解像度における空間的局所性を利用するためにピクセルが所定の方法でどのようにしてグループ化されるかを規定し、つまり、画像の2つの隣接するピクセルは、同じグループ内にない。図2は、グループ間の自己回帰構造によって、画像が互いに共通のピクセルを含まないピクセルのグループに分割され、つまり、ピクセルの各グループがピクセルの前に生成されたグループを条件として連続的に生成され得る例示的なグループ化および順序付け規則を示す。
【００４２】
画像を所与のK×Kの解像度から2K×2Kの解像度にアップスケールするために、自己回帰モデル102は、所与の解像度に固有のCNNの組の中の第1のCNNおよびピクセルグループの組を使用して所与の解像度を有する現在のバージョンを処理する。ピクセルグループの組は、あらかじめ定義されたグループ化および順序付け規則に従って形成される。第1のCNNは、現在の画像に含まれる前のピクセルグループに基づいて新しいピクセルグループに対応する第1の出力画像を生成するように構成される。それから、自己回帰モデル102は、あらかじめ定義されたグループ化および順序付け規則に従って現在のバージョンおよび第1の出力画像をマージすることによって中間バージョン(たとえば、出力画像のK×2Kバージョンまたは2K×Kバージョン)を生成する。自己回帰モデル102は、同様にして第2の出力画像を生成するためにCNNの組の中の第2のCNNを使用して中間バージョンを処理する。自己回帰モデル102は、あらかじめ定義されたグループ化および順序付け規則に従って中間バージョンおよび第2の出力画像をマージすることによって2K×2Kバージョンを生成する。
【００４３】
一部の実装において、CNNによって生成されたより高解像度の画像(たとえば、それぞれの繰り返しの第1の出力画像および第2の出力画像)の各ピクセルは、複数のカラーチャンネルの組の中の各チャンネルに関するそれぞれの色値を有する。たとえば、カラーチャンネルの組は、{赤,緑,青}または{シアン,マゼンタ,イエロー,ブラック}を含む可能性がある。組の中のカラーチャンネルは、チャンネルの順序、たとえば、RGBの順序またはCMYKの順序に従って順序付けられる。第1のおよび第2の畳み込みネットワークは、第1の出力画像および第2の出力画像を生成するときにチャンネルの順序を考慮に入れる。第1の出力画像および第2の出力画像のピクセルのためのカラーチャンネルに関する色値を生成するためのプロセスは、図4を参照して下でより詳細に説明される。
【００４４】
一部の実装においては、自己回帰モデル102によって生成される初期低解像度画像108が入力コンテキスト106を条件とするとき、より高解像度の画像を生成するために使用されるCNNの各組は、入力コンテキスト106を条件とする。
【００４５】
出力画像の更新されたバージョンを生成するために出力画像の現在のバージョンを処理するためのプロセスは、図3を参照して下でより詳細に説明される。
【００４６】
説明に役立つ例として、初期低解像度が4×4であり、最終的な所望の出力解像度が128×128であるとき、モデル102は、4×4画像から8×8画像を生成するためにCNNの1つの組を使用し、8×8画像から16×16画像を生成するためにCNNの別の組を使用し、16×16画像から32×32画像を生成するためにCNNの別の組を使用し、32×32画像から64×64画像を生成するためにCNNの別の組を使用し、64×64画像から最終的な128×128画像を生成するためにCNNの別の組を使用する。
【００４７】
図2は、画像200に関する例示的なピクセルのグループ化および順序付け規則を示すブロック図である。
【００４８】
概して、画像200のピクセルは、画像200の2つの隣接するピクセルが同じグループ内にないようにしてグループ化され、したがって、隣接するピクセルが並列的に生成されることを可能にし、それは、訓練および推論中により高解像度の画像の生成を大幅に速める可能性がある。
【００４９】
この例において、画像200は、4ピクセル×4ピクセルの解像度を有する。画像200は、以下の規則を使用して共通のピクセルを含まないピクセルのグループに分割され得る。グループを作成するために、画像200は、2×2ブロックによってタイル化される。これらの2×2ブロックの角が、所与のスケールの4ピクセルグループ、すなわち、左上、右上、左下、および右下を形成する。特に、左上の角のピクセルは、グループ1ピクセル(202)を形成する。右上の角のピクセルは、グループ2ピクセル(204)を形成する。左下の角のピクセルは、グループ3ピクセル(206)を形成する。右下の角のピクセルは、グループ4ピクセル(208)を形成する。ピクセルの各グループは、式2の結合分布の因子に対応する。
【００５０】
所与のグループのピクセルは、1つまたは複数の前のグループのピクセルに依存する。明瞭にするために、図2は、すぐ隣の依存関係を示すために矢印を使用するが、前のグループのすべてのピクセルは、所与のグループのすべてのピクセルを予測する(つまり、生成する)ために使用され得る。たとえば、グループ2のすべてのピクセルが、グループ4のピクセルを予測するために使用され得る。一部の実装において、グループ1のピクセルは、より低解像度の画像に由来し得る。一部の実装において、グループ1のピクセルは、ビデオの前のフレームを所与として生成され得る。
【００５１】
画像200の2つの隣接するピクセルは同じグループ内にないが、各ブロック内とブロック間との両方のピクセルの一部のペアは、引き続き依存関係にあることが可能である。これらの追加的な依存関係は、局所的なテクスチャ(texture)を獲得し、境界のアーティファクトを防止することを可能にする。
【００５２】
図3は、出力画像の更新されたバージョン(2K×2K)を生成するために出力画像の現在のバージョン(K×K)を処理するための例示的なプロセスのブロック図である。便宜上、プロセス300は、1つまたは複数の場所に置かれた1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、本明細書に従って適切にプログラミングされた画像生成システム、たとえば、図1の画像生成システム100が、プロセス300を実行し得る。
【００５３】
システムは、出力画像の現在のバージョン306を取得する。現在のバージョン306は、現在のK×Kの解像度を有する。場合によっては、現在のバージョン306は、システムが自己回帰画像生成機械学習モデルを使用して生成する出力画像の初期低解像度画像(たとえば、図1の初期低解像度画像108)であることが可能である。一部のその他の場合、出力画像の現在の画像306は、プロセス300の前の繰り返し中に生成された画像であることが可能である。
【００５４】
システムは、第1の出力画像308を生成するために第1のCNN 302を使用して現在のバージョン306を処理する。第1のCNN 302は、出力画像の現在のバージョン306を受け取り、現在のバージョン306を条件として第1の出力画像308を生成するように構成される。第1の出力画像308は、現在のバージョンよりも高い解像度を有する出力画像の後続のバージョンを生成するためにシステムによって使用されるピクセルの列またはピクセルの行を含む。
【００５５】
一部の実装において、第1のCNN 302は、現在のバージョン306から第1の出力画像308を直接生成するように構成される。これらの実装において、第1のCNN 302は、1つまたは複数の残差ニューラルネットワーク層(residual neural network layer)を含む可能性がある。
【００５６】
一部のその他の実装において、第1のCNN 302は、1つまたは複数の残差ニューラルネットワーク層および1つまたは複数の畳み込みニューラルネットワーク層を含む可能性がある。1つまたは複数の残差ニューラルネットワーク層は、特徴マップを形成するために現在のバージョンの特徴を抽出し、特徴マップを、実装においては重なり合わない空間的に連続した特徴ブロック318に分ける。それから、1つまたは複数の畳み込みニューラルネットワーク層は、第1の出力画像308を形成するために並列的に(つまり、特徴ブロック318の各々に関するそれぞれのピクセル値および/または色値を生成することによって)これらのブロックを与える。これらのブロックを与えるために使用され得る例示的なCNNは、特徴マップブロックが供給される可能性があるシャドーPixelCNNである。シャドーPixelCNNは、より深いニューラルネットワークと比較してより速いサンプリングをもたらすことができる少ない数の層(たとえば、5未満)を有する標準PixelCNN (standard PixelCNN)である。
【００５７】
説明に役立つ例として、現在のバージョン306は、図2のグループ1ピクセルを形成した4つの左上の角のピクセルを含む可能性がある。第1のCNN 302は、グループ2ピクセル、すなわち、4つの右上の角のピクセルを含む第1の出力画像308を生成するためにグループ1ピクセルを使用する可能性がある。第1のCNN 302は、1つまたは複数の残差ニューラルネットワーク層を含む可能性がある。
【００５８】
システムは、第1の出力画像308をピクセルのK個の列310に分ける。それから、システムは、現在のバージョン306からのピクセルのK個の列を第1の出力画像308からのピクセルのK個の列310と互い違いにし、それらをマージしてK×2Kバージョン312を作成する。
【００５９】
システムは、第2の出力画像314を生成するために第2の畳み込みニューラルネットワーク304を使用してK×2Kバージョン312を処理する。第2のCNN 304は、K×2Kバージョン312を受け取り、出力画像の2K×2Kバージョンを生成するために使用されるピクセルの行を含む第2の出力画像を生成するように構成される。第2のCNN 304は、1つまたは複数の残差ニューラルネットワーク層を含む可能性がある。
【００６０】
システムは、K×2Kバージョン312および第2の出力画像314をマージすることによって更新された出力画像316 (すなわち、2K×2Kバージョン)を生成する。特に、システムは、K×2Kバージョンからのピクセルの行を第2の出力画像からのピクセルの行と互い違いにすることによってK×2Kバージョン312からのピクセルのK行および第2の出力画像314からのピクセルのK行を含む2K×2K画像316を生成する。
【００６１】
訓練中に、システムは、目的関数を最適化するようにCNNのパラメータθの値を調整することによってCNNのすべての組を訓練する(CNNの各組がプロセス300の繰り返しのために使用される)。所与の入力に関する出力画像のNピクセルがそれぞれTピクセルのG個のグループに分割されると仮定すると、システムは、log P(x;θ)を最大化するようにCNNを訓練し、P(x,θ)は、パラメータθの値を所与として出力画像全体にわたるTピクセルの結合分布を表す。上述のように、対応するG個の因子の積としての画像全体にわたるTピクセルの結合分布は、
【００６２】
【数３】
0006848071.tif 000004
【００６３】
である。
【００６４】
結合分布がピクセルグループおよびスケールで分解し、出力画像の2つの隣接するピクセルが同じグループ内にないようにして出力画像のピクセルがグループ化される可能性がある(つまり、同じグループのピクセルが互いに独立している)ので、CNNの訓練が、効果的に並列化され得る。特に、訓練時に、グループ内のピクセルのすべてに関する損失および勾配が、並列的に計算され得る。したがって、畳み込みニューラルネットワークは、リソースおよび時間効率の良い方法で訓練され得る。システムは、確率的勾配降下法または勾配降下法などの通常の訓練技術を使用してCNNを訓練することができる。
【００６５】
図4は、出力画像の更新されたバージョンを生成するために出力画像の現在のバージョンを処理するための例示的なプロセスの流れ図である。便宜上、プロセス400は、1つまたは複数の場所に置かれた1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、本明細書に従って適切にプログラミングされた画像生成システム、たとえば、図1の画像生成システム100が、プロセス400を実行し得る。
【００６６】
システムは、現在のK×Kの解像度を有する出力画像の現在のバージョンを取得する(ステップ402)。
【００６７】
システムは、第1の出力画像を生成するために第1のCNNを使用して現在のバージョンを処理する(ステップ404)。第1のCNNは、現在のバージョンのピクセルを条件として第1の出力画像を生成する。第1の出力画像は、現在のバージョンよりも高い解像度を有する出力画像の中間バージョンを生成するために使用されるピクセルの列またはピクセルの行を含む。
【００６８】
場合によっては、第1の出力画像の各ピクセルは、カラーチャンネルの組の中の各カラーチャンネル、たとえば、赤、緑、および青チャンネルに関するそれぞれの色値を有する可能性がある。組の中のカラーチャンネルは、チャンネルの順序、たとえば、RGBの順序に従って順序付けられる。これらの場合、第1のCNNは、チャンネルの順序によって定義されたカラーチャンネルの依存関係に基づいて第1の出力画像のピクセルのためのカラーチャンネルに関する色値を生成するように構成され、たとえば、緑が、赤に依存し、青が、赤および緑に依存する。特に、第1のCNNは、カラーチャンネルの各々に関して、(i)現在のバージョン、および(ii)チャンネルの順序でそのカラーチャンネルの前の任意のカラーチャンネルに関する第1の出力画像のピクセルのための色値を条件とし、(iii)チャンネルの順序でそのカラーチャンネルの後にある任意のカラーチャンネルに関する第1の出力画像のピクセルのための色値を条件とせずに第1の出力画像のピクセルのためのカラーチャンネルに関する色値を生成するように構成される。第1のCNNは、現在のバージョンと、第1の出力画像を生成するために既に生成された第1の出力画像からの色値とを繰り返し処理する。第1のCNNは、色の依存関係を獲得するためのチャンネル毎にマスクされた畳み込み(channel-wise masked convolution)を用いるCNNである。チャンネル毎にマスクされた畳み込みの数は、カラーチャンネルの組の中のカラーチャンネルの数に依存する。
【００６９】
たとえば、カラーチャンネルの組が3つのカラーチャンネルを有する場合、第1のCNNは、3つのカラーチャンネルを生成するために3つのチャンネル毎にマスクされた畳み込みを有する。この例において、第1のCNNは、第1のカラーチャンネルの値を生成するために出力画像の現在のバージョンを処理し、それから、第2のカラーチャンネルの値を生成するために現在のバージョンおよび第1のカラーチャンネルの値を処理し、そして、第3のカラーチャンネルの値を生成するために現在のバージョンおよび最初の2つのカラーチャンネルの値を処理する。
【００７０】
システムは、現在のバージョンおよび第1の出力画像をマージすることによって出力画像の中間バージョンを生成する(ステップ406)。
【００７１】
一部の実装において、出力画像の中間バージョンは、出力画像のK×2Kバージョンである。第1のCNNによって生成される第1の出力画像は、K×2Kバージョンを生成するために使用されるピクセルのK列を含む。システムは、現在のバージョンからのピクセルのK列を第1の出力画像からのピクセルK列と互い違いにすることによって現在のバージョンからのピクセルのK列および第1の出力画像からのピクセルのK列を含むK×2Kバージョンを生成する。
【００７２】
一部のその他の実装において、出力画像の中間バージョンは、出力画像の2K×Kバージョンである。これらの実装において、第1のCNNによって生成される第1の出力画像は、2K×Kバージョンを生成するために使用されるピクセルのK行を含む。システムは、現在のバージョンからのピクセルのK行を第1の出力画像からのピクセルのK行と互い違いにすることによって現在のバージョンからのピクセルのK行および第1の出力画像からのピクセルのK行を含む2K×Kバージョンを生成する。
【００７３】
システムは、第2の出力画像を生成するために第2のCNNを使用して中間バージョンを処理する(ステップ408)。
【００７４】
第2のCNNは、中間バージョンを条件として第2の出力画像を生成する。第2の出力画像は、出力画像の2K×2Kバージョンを生成するために使用されるピクセルの行またはピクセルの列を含む。
【００７５】
場合によっては、第2の出力画像の各ピクセルは、カラーチャンネルの上述の組の中の各カラーチャンネルに関するそれぞれの色値を有する可能性がある。第2のCNNは、カラーチャンネルの各々に関して、(i)中間バージョン、および(ii)チャンネルの順序でそのカラーチャンネルの前の任意のカラーチャンネルに関する第2の出力画像のピクセルのための色値を条件とし、(iii)チャンネルの順序でそのカラーチャンネルの後にある任意のカラーチャンネルに関する第2の出力画像のピクセルのための色値を条件とせずに第2の出力画像のピクセルのためのカラーチャンネルに関する色値を生成するように構成される。第2のCNNは、中間バージョンと、第2の出力画像を生成するために既に生成された第2の出力画像からの色値とを繰り返し処理する。第2のCNNは、色の依存関係を獲得するためのチャンネル毎にマスクされた畳み込みを用いるCNNである。チャンネル毎にマスクされた畳み込みの数は、カラーチャンネルの組の中のカラーチャンネルの数に依存する。たとえば、カラーチャンネルの組が3つのカラーチャンネルを有する場合、第2のCNNは、3つのカラーチャンネルを生成するために3つのチャンネル毎にマスクされた畳み込みを有する。
【００７６】
システムは、中間バージョンおよび第2の出力画像をマージすることによって2K×2Kの解像度を有する出力画像の更新されたバージョンを生成する(ステップ410)。
【００７７】
特に、出力画像の中間バージョンがK×2Kバージョンであるとき、システムは、K×2Kバージョンからのピクセルの行を第2の出力画像からのピクセルの行と互い違いにすることによって2K×2Kバージョンを生成する。
【００７８】
出力画像の中間バージョンが2K×Kバージョンであるとき、システムは、2K×Kバージョンからのピクセルの列を第2の出力画像からのピクセルの列と互い違いにすることによって2K×2Kバージョンを生成する。
【００７９】
本明細書は、用語「構成される」をシステムおよびコンピュータプログラムの構成要素に関連して使用する。1つまたは複数のコンピュータのシステムが特定の動作または行動を実行するように構成されることは、システムが、動作中にシステムに動作または行動を実行させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをそのシステム上にインストール済みであることを意味する。1つまたは複数のコンピュータプログラムが特定の動作または行動を実行するように構成されることは、1つまたは複数のプログラムが、データ処理装置によって実行されるときに装置に動作または行動を実行させる命令を含むことを意味する。
【００８０】
本明細書に記載の対象の実施形態および機能的動作は、本明細書で開示された構造およびそれらの構造的均等物を含むデジタル電子回路、有形で具現化されたコンピュータソフトウェアもしくはファームウェア、コンピュータハードウェア、またはそれらのうちの1つもしくは複数の組合せで実装されることが可能である。本明細書に記載の対象の実施形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置による実行のために、またはデータ処理装置の動作を制御するために有形の非一時的ストレージ媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装されることが可能である。コンピュータストレージ媒体は、機械可読ストレージデバイス、機械可読ストレージ基板、ランダムもしくはシリアルアクセスメモリデバイス、またはそれらのうちの1つもしくは複数の組合せであることが可能である。代替的にまたは追加的に、プログラム命令は、データ処理装置による実行のために好適なレシーバ装置に送信するために情報を符号化するように生成される人為的に生成された伝播信号、たとえば、機械によって生成された電気的信号、光学的信号、または電磁的信号上に符号化されることが可能である。
【００８１】
用語「データ処理装置」は、データ処理ハードウェアを指し、例として、1つのプログラミング可能なプロセッサ、1台のコンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのすべての種類の装置、デバイス、およびマシンを包含する。装置は、専用の論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC (特定用途向け集積回路)であることも可能であり、またはそのような専用の論理回路をさらに含むことも可能である。任意で、装置は、ハードウェアに加えて、コンピュータプログラムのための実行環境を作成するコード、たとえば、プロセッサのファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つもしくは複数の組合せを構成するコードを含むことが可能である。
【００８２】
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、スクリプト、またはコードと呼ばれるまたは記載される場合もあるコンピュータプログラムは、コンパイラ型言語もしくはインタープリタ型言語、または宣言型言語もしくは手続き型言語を含む任意の形態のプログラミング言語で記述されることが可能であり、独立型プログラムとしての形態、またはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境内での使用に適したその他のユニットとしての形態を含む任意の形態で配置されることが可能である。プログラムは、ファイルシステム内のファイルに対応してもよいが、必ずそうであるとは限らない。プログラムは、その他のプログラムもしくはデータを保持するファイルの一部、たとえば、マークアップ言語のドキュメントに記憶された1つもしくは複数のスクリプト、問題にしているプログラムに専用の単一のファイル、または複数の組織されたファイル、たとえば、1つもしくは複数のモジュール、サブプログラム、もしくはコードの一部を記憶するファイルに記憶され得る。コンピュータプログラムは、1台のコンピュータ上で、または1つの場所に置かれるか、もしくは複数の場所に分散され、データ通信ネットワークによって相互に接続される複数のコンピュータ上で実行されるように配置されることが可能である。
【００８３】
本明細書に記載のプロセスおよび論理フローは、入力データに対して演算を行い、出力を生成することによって機能を実行するための1つまたは複数のコンピュータプログラムを1つまたは複数のプログラミング可能なコンピュータが実行することによって実行されることが可能である。また、プロセスおよび論理フローは、専用の論理回路、たとえば、FPGAもしくはASICによって、または専用の論理回路と1つまたは複数のプログラミングされたコンピュータとの組合せによって実行されることが可能である。
【００８４】
コンピュータプログラムの実行に好適なコンピュータは、汎用マイクロプロセッサもしくは専用マイクロプロセッサもしくはそれら両方、または任意のその他の種類の中央演算処理装置に基づくことが可能である。概して、中央演算処理装置は、読み出し専用メモリ、またはランダムアクセスメモリ、またはそれら両方から命令およびデータを受け取る。コンピュータの必須の要素は、命令を遂行または実行するための中央演算処理装置、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。中央演算処理装置およびメモリは、専用の論理回路によって補完されるか、または専用の論理回路に組み込まれることが可能である。また、概してコンピュータは、データを記憶するための1つまたは複数の大容量ストレージデバイス、たとえば、磁気ディスク、光磁気ディスク、もしくは光ディスクを含むか、またはそれらの大容量ストレージデバイスからデータを受信するか、もしくはそれらの大容量ストレージデバイスにデータを転送するか、もしくはその両方を行うために動作可能なように結合される。しかし、コンピュータは、そのようなデバイスを有していなくてもよい。さらに、コンピュータは、別のデバイス、たとえば、ほんのいくつか例を挙げるとすれば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレイヤー、ゲームコンソール、全地球測位システム(GPS)レシーバ、またはポータブルストレージデバイス、たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブに組み込まれることが可能である。
【００８５】
コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば、内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD-ROMディスクおよびDVD-ROMディスクを含む、すべての形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。
【００８６】
ユーザとのインタラクションを提供するために、本明細書に記載の対象の実施形態は、ユーザに対して情報を表示するためのディスプレイデバイス、たとえば、CRT (ブラウン管)またはLCD (液晶ディスプレイ)モニタ、ならびにユーザがコンピュータに入力を与えることができるキーボードおよびポインティングデバイス、たとえば、マウスまたはトラックボールを有するコンピュータ上に実装されることが可能である。その他の種類のデバイスが、ユーザとのインタラクションを提供するためにやはり使用されることが可能であり、たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであることが可能であり、ユーザからの入力は、音響、発話、または触覚による入力を含む任意の形態で受け取られることが可能である。加えて、コンピュータは、ユーザによって使用されるデバイスに文書を送信し、そのデバイスから文書を受信することによって、たとえば、ウェブブラウザから受信された要求に応答してユーザのデバイスのウェブブラウザにウェブページを送信することによってユーザとインタラクションすることができる。また、コンピュータは、メッセージングアプリケーションを実行しているパーソナルデバイス、たとえば、スマートフォンにテキストメッセージまたはその他の形態のメッセージを送信し、返報としてユーザから応答メッセージを受信することによってユーザとインタラクションすることができる。
【００８７】
機械学習モデルを実装するためのデータ処理装置は、たとえば、機械学習の訓練または生産、つまり、推測の作業負荷のよくある計算量の多い部分を処理するための専用ハードウェアアクセラレータユニットも含むことが可能である。
【００８８】
機械学習モデルは、機械学習フレームワーク、たとえば、TensorFlowフレームワーク、Microsoft Cognitive Toolkitフレームワーク、Apache Singaフレームワーク、またはApache MXNetフレームワークを使用して実装され、配置されることが可能である。
【００８９】
本明細書に記載の対象の実施形態は、バックエンド構成要素を、たとえば、データサーバとして含むか、またはミドルウェア構成要素、たとえば、アプリケーションサーバを含むか、またはフロントエンド構成要素、たとえば、ユーザが本明細書に記載の対象の実装とインタラクションすることができるグラフィカルユーザインターフェース、ウェブブラウザ、もしくはアプリを有するクライアントコンピュータを含むか、または1つもしくは複数のそのようなバックエンド構成要素、ミドルウェア構成要素、もしくはフロントエンド構成要素の任意の組合せを含むコンピューティングシステムに実装されることが可能である。システムの構成要素は、任意の形態または媒体のデジタルデータ通信、たとえば、通信ネットワークによって相互に接続されることが可能である。通信ネットワークの例は、ローカルエリアネットワーク(LAN)および広域ネットワーク(WAN)、たとえば、インターネットを含む。
【００９０】
コンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは、概して互いに離れており、通常は通信ネットワークを通じてインタラクションする。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行されており、互いにクライアント-サーバの関係にあるコンピュータプログラムによって生じる。一部の実施形態において、サーバは、たとえば、クライアントとして働くデバイスとインタラクションするユーザに対してデータを表示し、そのようなユーザからユーザ入力を受け取る目的でユーザデバイスにデータ、たとえば、HTMLページを送信する。ユーザデバイスにおいて生成されたデータ、たとえば、ユーザインタラクションの結果が、サーバにおいてデバイスから受信されることが可能である。
【００９１】
本明細書は多くの特定の実装の詳細を含むが、これらは、いかなる発明の範囲または特許請求される可能性があるものの範囲に対する限定ともみなされるべきではなく、むしろ、特定の発明の特定の実施形態に特有である場合がある特徴の説明とみなされるべきである。別々の実施形態の文脈で本明細書において説明されている特定の特徴が、単一の実施形態において組み合わせて実装されることも可能である。反対に、単一の実施形態の文脈で説明されている様々な特徴が、複数の実施形態に別々にまたは任意の好適な部分的組合せで実装されることも可能である。さらに、特徴は、特定の組合せで動作するものとして上で説明されている場合があり、最初にそのように主張されてさえいる場合があるが、主張された組合せの1つまたは複数の特徴は、場合によっては組合せから削除されることが可能であり、主張された組合せは、部分的組合せ、または部分的組合せの変形を対象とする場合がある。
【００９２】
同様に、動作が特定の順序で図中に示され、請求項に記載されているが、これは、そのような動作が示された特定の順序でもしくは逐次的順序で実行されること、または所望の結果を達成するために示されたすべての動作が実行されることを必要とするものと理解されるべきでない。特定の状況においては、マルチタスクおよび並列処理が有利である可能性がある。さらに、上述の実施形態における様々なシステムモジュールおよびコンポーネントの分割は、すべての実施形態においてそのような分割を必要とするものと理解されるべきでなく、説明されたプログラムコンポーネントおよびシステムは、概して、単一のソフトウェア製品に一緒に統合されるか、または複数のソフトウェア製品にパッケージングされることが可能であることが理解されるべきである。
【００９３】
対象の特定の実施形態が、説明された。その他の実施形態は、添付の請求項の範囲内にある。たとえば、請求項に挙げられた行動は、異なる順序で実行され、それでも所望の結果を達成することができる。一例として、添付の図面に示されたプロセスは、所望の結果を達成するために、必ずしも、示された特定の順序、または逐次的順序である必要はない。場合によっては、マルチタスクおよび並列処理が有利である可能性がある。
【符号の説明】
【００９４】
100  画像生成システム
102  自己回帰画像生成機械学習モデル
104  畳み込みニューラルネットワーク
106  入力コンテキスト
108  初期低解像度画像
110  出力画像
200  画像
202  グループ1ピクセル
204  グループ2ピクセル
206  グループ3ピクセル
208  グループ4ピクセル
300  プロセス
302  第1のCNN
304  第2の畳み込みニューラルネットワーク
306  現在のバージョン
308  第1の出力画像
310  ピクセルのK列
312  K×2Kバージョン
314  第2の出力画像
316  2K×2K画像
318  特徴ブロック
400  プロセス
【図１】
0006848071.tif 000005
【図２】
0006848071.tif 000006
【図３】
0006848071.tif 000007
【図４】
0006848071.tif 000008