(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-26
(45)【発行日】2023-11-06
(54)【発明の名称】ニューラル画像圧縮のためのタスク適応型前処理のための方法、装置およびコンピュータプログラム
(51)【国際特許分類】
G06N 3/0455 20230101AFI20231027BHJP
G06N 3/084 20230101ALI20231027BHJP
G06T 9/00 20060101ALI20231027BHJP
H04N 19/147 20140101ALI20231027BHJP
H04N 19/42 20140101ALI20231027BHJP
【FI】
G06N3/0455
G06N3/084
G06T9/00 200
H04N19/147
H04N19/42
(21)【出願番号】P 2022560137
(86)(22)【出願日】2021-08-06
(86)【国際出願番号】 US2021044900
(87)【国際公開番号】W WO2022159143
(87)【国際公開日】2022-07-28
【審査請求日】2022-09-30
(32)【優先日】2021-01-19
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-07-01
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】ウェイ・ジアン
(72)【発明者】
【氏名】ウェイ・ワン
(72)【発明者】
【氏名】ディン・ディン
(72)【発明者】
【氏名】シャン・リュウ
(72)【発明者】
【氏名】シャオジョン・シュ
【審査官】多賀 実
(56)【参考文献】
【文献】米国特許出願公開第2020/0366914(US,A1)
【文献】国際公開第2020/191402(WO,A1)
【文献】特開2020-028111(JP,A)
【文献】米国特許出願公開第2017/0230675(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/02- 3/10
G06T 7/00- 7/90
G06T 9/00
G06V 10/82
H04N 19/00-19/98
(57)【特許請求の範囲】
【請求項1】
少なくとも1つのプロセッサ
が行う、ニューラル画像圧縮のためのタスク適応型前処理(TAPP)の方法であって、前記方法は、
TAPPニューラルネットワークを使用して、入力画像に基づいて代替画像を生成するステップと、
第1のニューラルネットワークを使用して、前記生成された代替画像をエンコードして圧縮表現を生成するステップとを含み、
前記TAPPニューラルネットワークは、
前記TAPPニューラルネットワークを使用して、入力訓練画像に基づいて、代替訓練画像を生成することと、
前記第1のニューラルネットワークを使用して、前記生成された代替訓練画像をエンコードして圧縮訓練表現を生成することと、
第2のニューラルネットワークを使用して、前記生成された圧縮訓練表現をデコードして出力訓練画像を再構成することと、
前記入力訓練画像、前記再構成された出力訓練画像、及び前記生成された圧縮訓練表現に基づいて生成されるレート歪み(R-D)損失の勾配を生成することと、
前記R-D損失の前記生成された勾配に基づいて、前記生成された代替訓練画像を更新することと
によって訓練される、方法。
【請求項2】
前記第2のニューラルネットワークを使用して、前記生成された圧縮表現をデコードして出力画像を再構成するステップをさらに含む、請求項1に記載の方法。
【請求項3】
前記代替画像を生成する前記ステップは、
前記TAPPニューラルネットワークを使用して、前記入力画像に基づいて代替摂動を生成するステップと、
前記入力画像と前記生成された代替摂動との和として前記代替画像を生成するステップと
を含む、請求項1に記載の方法。
【請求項4】
前記TAPPニューラルネットワークは、ハイパーパラメータ、前記入力訓練画像と前記再構成された出力訓練画像との間の再構成誤差である歪み損失、及び前記生成された圧縮訓練表現のビット消費であるレート損失に基づいて、前記R-D損失を生成することによってさらに訓練される、請求項1に記載方法。
【請求項5】
前記R-D損失の前記勾配が生成され、前記生成された代替訓練画像は、最大反復回数が行われるまで、又は前記R-D損失が収束するまで更新される、請求項1に記載の方法。
【請求項6】
前記TAPPニューラルネットワークは、前記R-D損失の前記生成された勾配に基づいて前記入力訓練画像を更新することによってさらに訓練され、
前記R-D損失の前記勾配が生成され、前記入力訓練画像は、最大反復回数が行われるまで、又は前記R-D損失が収束するまで更新される、請求項1に記載の方法。
【請求項7】
前記TAPPニューラルネットワークは、
グランドトゥルース代替画像と前記生成された代替訓練画像との差として代替歪みを生成することと、
前記生成された代替歪みの勾配を生成することと、
前記生成された代替歪みの前記生成された勾配に基づいて前記TAPPニューラルネットワークのパラメータを更新することと
によってさらに訓練される、請求項1に記載の方法。
【請求項8】
請求項1~7のいずれか一項に記載の方法を行うように構成された、ニューラル画像圧縮のためのタスク適応型前処理(TAPP)のための装置。
【請求項9】
少なくとも1つのプロセッサに
、請求項1~7のいずれか一項に記載の方法を実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2021年1月19日に出願された米国仮特許出願第63/138,901号及び2021年7月1日に出願された米国特許出願第17/365,395号に基づく優先権を主張し、それらの全体が参照により本明細書に組み込まれる。
【背景技術】
【0002】
ISO/IEC MPEG(JTC 1/SC 29/WG 11)は、将来のビデオコーディング技術の標準化に対する潜在的なニーズを積極的に探ってきた。ISO/IEC JPEGは、ニューラルネットワーク(NN)を使用したAIベースのエンドツーエンドのニューラル画像圧縮(NIC)に焦点を当てたJPEG-AIグループを確立している。最近の取り組みの成功は、高度なニューラル画像及びビデオ圧縮方法論に対するますます多くの産業上の関心をもたらしている。
【0003】
先行技術は有望な性能を示しているが、NIC方法の1つの主要な問題は、訓練後の制御が難しいことである。例えば、従来のNIC方法は、各所望のレート歪み(R-D)トレードオフを個別に目標とする複数のモデルインスタンスを訓練する必要があり得るため、柔軟なビットレート制御は困難である。同様に、各目標品質損失(ピーク信号対雑音比(PSNR)又は構造類似性指数尺度(SSIM)など)について、モデルインスタンスが個別に訓練される。ひとたび目標タスクのために訓練されると(例えば、目標ビットレート又は目標品質損失に対して)、モデルインスタンスは他のタスク(例えば、他のビットレート又は他の品質損失)のために機能することはできない。
【発明の概要】
【課題を解決するための手段】
【0004】
実施形態によれば、ニューラル画像圧縮のためのタスク適応型前処理(TAPP)の方法は、少なくとも1つのプロセッサによって行われ、TAPPニューラルネットワークを使用して、入力画像に基づいて代替画像を生成するステップと、第1のニューラルネットワークを使用して、生成された代替画像をエンコードして圧縮表現を生成するステップとを含む。TAPPニューラルネットワークは、TAPPニューラルネットワークを使用して、入力訓練画像に基づいて代替訓練画像を生成することと、第1のニューラルネットワークを使用して、生成された代替訓練画像をエンコードして圧縮訓練表現を生成することと、第2のニューラルネットワークを使用して、生成された圧縮訓練表現をデコードして出力訓練画像を再構成することと、入力訓練画像、再構成された出力訓練画像、及び生成された圧縮訓練表現に基づいて生成されるレート歪み(R-D)損失の勾配を生成することと、生成されたR-D損失の勾配に基づいて、生成された代替訓練画像を更新することとによって訓練される。
【0005】
実施形態によれば、ニューラル画像圧縮のためのタスク適応型前処理(TAPP)のための装置は、プログラムコードを記憶するように構成された少なくとも1つのメモリと、プログラムコードを読み取り、プログラムコードによって命令されるように動作するように構成された少なくとも1つのプロセッサとを含む。プログラムコードは、少なくとも1つのプロセッサに、TAPPニューラルネットワークを使用して、入力画像に基づいて代替画像を生成させるように構成された生成コードと、少なくとも1つのプロセッサに、第1のニューラルネットワークを使用して、生成された代替画像をエンコードして圧縮表現を生成させるように構成されたエンコーディング・コードとを含む。TAPPニューラルネットワークは、TAPPニューラルネットワークを使用して、入力訓練画像に基づいて代替訓練画像を生成することと、第1のニューラルネットワークを使用して、生成された代替訓練画像をエンコードして圧縮訓練表現を生成することと、第2のニューラルネットワークを使用して、生成された圧縮訓練表現をデコードして出力訓練画像を再構成することと、入力訓練画像、再構成された出力訓練画像、及び生成された圧縮訓練表現に基づいて生成されるレート歪み(R-D)損失の勾配を生成することと、生成されたR-D損失の勾配に基づいて、生成された代替訓練画像を更新することとによって訓練される。
【0006】
実施形態によれば、非一時的コンピュータ可読媒体は、ニューラル画像圧縮のためのタスク適応型前処理(TAPP)のために少なくとも1つのプロセッサによって行われると、少なくとも1つのプロセッサに、TAPPニューラルネットワークを使用して、入力画像に基づいて代替画像を生成させ、第1のニューラルネットワークを使用して、生成された代替画像をエンコードさせて圧縮表現を生成させる命令を記憶する。TAPPニューラルネットワークは、TAPPニューラルネットワークを使用して、入力訓練画像に基づいて代替訓練画像を生成することと、第1のニューラルネットワークを使用して、生成された代替訓練画像をエンコードして圧縮訓練表現を生成することと、第2のニューラルネットワークを使用して、生成された圧縮訓練表現をデコードして出力訓練画像を再構成することと、入力訓練画像、再構成された出力訓練画像、及び生成された圧縮訓練表現に基づいて生成されるレート歪み(R-D)損失の勾配を生成することと、生成されたR-D損失の勾配に基づいて、生成された代替訓練画像を更新することとによって訓練される。
【図面の簡単な説明】
【0007】
【
図1】実施形態による、本明細書に記載された方法、装置、及びシステムがその中で実現され得る環境の図である。
【
図2】
図1の1つ又は複数のデバイスの例示的な構成要素のブロック図である。
【
図3】実施形態による、テスト段階中の、ニューラル画像圧縮のためのタスク適応型前処理のための装置のブロック図である。
【
図4A】実施形態による、訓練段階の第1の工程中の、ニューラル画像圧縮のためのタスク適応型前処理のための訓練装置のブロック図である。
【
図4B】実施形態による、訓練段階の第1の工程中の、ニューラル画像圧縮のためのタスク適応型前処理のための訓練装置の別のブロック図である。
【
図4C】実施形態による、訓練段階の第2の工程中の、ニューラル画像圧縮のためのタスク適応型前処理のための訓練装置のブロック図である。
【
図5】実施形態による、ニューラル画像圧縮のためのタスク適応型前処理の方法のフローチャートである。
【
図6】実施形態による、ニューラル画像圧縮のためのタスク適応型前処理のための装置のブロック図である。
【発明を実施するための形態】
【0008】
本開示は、品質メトリック又はビットレートなどの圧縮タスクに柔軟に適応するために、NIC方法の入力画像を前処理するタスク適応型前処理(TAPP)フレームワークのための方法及び装置を記載する。適応の目標タスクが、基礎となるNICモデルが訓練された元のタスクと同じである場合、前処理は、入力画像を、圧縮のための元の画像よりも良好な代替バージョンに適応させる。
【0009】
図1は、実施形態による、本明細書に記載された方法、装置、及びシステムがその中で実現され得る環境100の図である。
【0010】
図1に示されるように、環境100は、ユーザデバイス110、プラットフォーム120、及びネットワーク130を含んでもよい。環境100のデバイスは、有線接続、無線接続、又は有線接続と無線接続との組合せを介して相互接続してよい。
【0011】
ユーザデバイス110は、プラットフォーム120に関連付けられた情報を受信、生成、記憶、処理、及び/又は提供することが可能な1つ又は複数のデバイスを含む。例えば、ユーザデバイス110は、コンピューティングデバイス(例えば、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ハンドヘルドコンピュータ、スマートスピーカ、サーバなど)、携帯電話(例えば、スマートフォン、無線電話など)、ウェアラブルデバイス(例えば、一対のスマートグラス若しくはスマートウォッチ)、又は同様のデバイスを含んでもよい。いくつかの実施態様では、ユーザデバイス110は、プラットフォーム120から情報を受信し、かつ/又は情報をプラットフォームに送信してもよい。
【0012】
プラットフォーム120は、本明細書の他の箇所に記載されるような1つ又は複数のデバイスを含む。いくつかの実装形態では、プラットフォーム120は、クラウドサーバ又はクラウドサーバのグループを含んでもよい。いくつかの実装形態では、プラットフォーム120は、ソフトウェア構成要素がスワップイン又はスワップアウトされ得るようにモジュール式に設計されてもよい。これにより、プラットフォーム120は、異なる用途向けに、容易かつ/又は迅速に復元され得る。
【0013】
いくつかの実装形態では、図示されるように、プラットフォーム120は、クラウドコンピューティング環境122内でホストされてもよい。特に、本明細書に記載された実装形態は、クラウドコンピューティング環境122内でホストされるものとしてプラットフォーム120を記載するが、いくつかの実装形態では、プラットフォーム120は、クラウドベースでなくてもよい(すなわち、クラウドコンピューティング環境の外部に実装されてもよい)し、部分的にクラウドベースであってもよい。
【0014】
クラウドコンピューティング環境122は、プラットフォーム120をホストする環境を含む。クラウドコンピューティング環境122は、プラットフォーム120をホストするシステム及び/又はデバイスの物理的な位置及び構成のエンドユーザ(例えば、ユーザデバイス110)の知識を必要としない計算、ソフトウェア、データアクセス、記憶などのサービスを提供しうる。図示されるように、クラウドコンピューティング環境122は、(まとめて「コンピューティングリソース124」と呼ばれ、個別に「コンピューティングリソース124」と呼ばれる)コンピューティングリソース124のグループを含んでもよい。
【0015】
コンピューティングリソース124は、1つ又は複数のパーソナルコンピュータ、ワークステーションコンピュータ、サーバデバイス、又は他のタイプの計算デバイス及び/若しくは通信デバイスを含む。いくつかの実装形態では、コンピューティングリソース124は、プラットフォーム120のホストしうる。クラウドリソースは、コンピューティングリソース124内で実行される計算インスタンス、コンピューティングリソース124内で提供される記憶デバイス、コンピューティングリソース124によって提供されるデータ転送デバイスなどを含んでもよい。いくつかの実装形態では、コンピューティングリソース124は、有線接続、無線接続、又は有線接続と無線接続との組合せを介して他のコンピューティングリソース124と通信しうる。
【0016】
図1にさらに示されるように、コンピューティングリソース124は、1つ又は複数のアプリケーション(「APP」)124-1、1つ又は複数の仮想マシン(「VM」)124-2、仮想化ストレージ(「VS」)124-3、1つ又は複数のハイパーバイザ(「HYP」)124-4などのクラウドリソースのグループを含む。
【0017】
アプリケーション124-1は、ユーザデバイス110及び/若しくはプラットフォーム120に提供され得る、又はユーザデバイス110及び/若しくはプラットフォーム120によってアクセスされ得る1つ又は複数のソフトウェアアプリケーションを含む。アプリケーション124-1は、ユーザデバイス110上でソフトウェアアプリケーションをインストールし実行する必要性を排除しうる。例えば、アプリケーション124-1は、プラットフォーム120に関連付けられたソフトウェア及び/又はクラウドコンピューティング環境122を介して提供されることが可能な任意の他のソフトウェアを含んでもよい。いくつかの実装形態では、1つのアプリケーション124-1は、仮想マシン124-2を介して1つ又は複数の他のアプリケーション124-1との間で情報を送受信しうる。
【0018】
仮想マシン124-2は、物理マシンのようにプログラムを実行するマシン(例えば、コンピュータ)のソフトウェア実装形態を含む。仮想マシン124-2は、仮想マシン124-2による用途及び任意の実マシンとの対応関係の程度に応じて、システム仮想マシン又はプロセス仮想マシンのいずれかであってもよい。システム仮想マシンは、完全なオペレーティングシステム(「OS」)の実行をサポートする完全なシステムプラットフォームを提供しうる。プロセス仮想マシンは、単一のプログラムを実行してもよく、単一のプロセスをサポートしうる。いくつかの実装形態では、仮想マシン124-2は、ユーザ(例えば、ユーザデバイス110)の代わりに動作してもよく、データ管理、同期、又は長期データ転送などのクラウドコンピューティング環境122の基盤を管理しうる。
【0019】
仮想化ストレージ124-3は、コンピューティングリソース124のストレージシステム又はデバイス内で仮想化技法を使用する1つ若しくは複数のストレージシステム及び/又は1つ若しくは複数のデバイスを含む。いくつかの実装形態では、ストレージシステムに関連して、仮想化のタイプは、ブロック仮想化及びファイル仮想化を含んでもよい。ブロック仮想化は、ストレージシステムが物理ストレージ又はヘテロジニアス構造に関係なくアクセスされ得るような、物理ストレージからの論理ストレージの抽象化(又は分離)を指しうる。分離により、ストレージシステムの管理者がエンドユーザのためにストレージを管理する方法の柔軟性が可能になり得る。ファイル仮想化は、ファイルレベルでアクセスされるデータとファイルが物理的に記憶された場所との間の依存関係を排除しうる。これにより、ストレージ使用の最適化、サーバ統合、及び/又はスムーズなファイル移行の実行が可能になり得る。
【0020】
ハイパーバイザ124-4は、複数のオペレーティングシステム(例えば、「ゲストオペレーティングシステム」)をコンピューティングリソース124などのホストコンピュータ上で同時に実行することを可能にするハードウェア仮想化技法を提供しうる。ハイパーバイザ124-4は、仮想オペレーティングプラットフォームをゲストオペレーティングシステムに提示してもよく、ゲストオペレーティングシステムの実行を管理してもよい。様々なオペレーティングシステムの複数のインスタンスが、仮想化されたハードウェアリソースを共有しうる。
【0021】
ネットワーク130は、1つ又は複数の有線及び/又は無線のネットワークを含む。例えば、ネットワーク130は、セルラーネットワーク(例えば、第5世代(5G)ネットワーク、ロングタームエボリューション(LTE)ネットワーク、第3世代(3G)ネットワーク、符号分割多元接続(CDMA)ネットワークなど)、公的地域モバイルネットワーク(PLMN)、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、電話ネットワーク(例えば、公衆交換電話網(PSTN))、プライベートネットワーク、アドホックネットワーク、イントラネット、インターネット、光ファイバベースのネットワークなど、及び/又はそれら若しくは他のタイプのネットワークの組合せを含んでもよい。
【0022】
図1に示すデバイス及びネットワークの数及び配置は、一例として提供されている。実際には、
図1に示すものに比べて、さらなるデバイス及び/若しくはネットワーク、少ないデバイス及び/若しくはネットワーク、異なるデバイス及び/若しくはネットワーク、又は異なる配置のデバイス及び/若しくはネットワークが存在してもよい。さらに、
図1に示された2つ以上のデバイスは、単一のデバイス内に実装されてもよく、又は
図1に示された単一のデバイスは、複数の分散型デバイスとして実装されてもよい。追加又は代替として、環境100のデバイスのセット(例えば、1つ又は複数のデバイス)は、環境100のデバイスの別のセットによって行われるものとして記載された1つ又は複数の機能を行いうる。
【0023】
図2は、
図1の1つ又は複数のデバイスの例示的な構成要素のブロック図である。
【0024】
デバイス200は、ユーザデバイス110及び/又はプラットフォーム120に対応してもよい。
図2に示すように、デバイス200は、バス210、プロセッサ220、メモリ230、記憶構成要素240、入力構成要素250、出力構成要素260、及び通信インターフェース270を含んでもよい。
【0025】
バス210は、デバイス200の構成要素間の通信を可能にする構成要素を含む。プロセッサ220は、ハードウェア、ファームウェア、又はハードウェアとソフトウェアとの組合せに実装される。プロセッサ220は、中央処理装置(CPU)、グラフィック処理装置(GPU)、加速処理装置(APU)、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、又は別のタイプの処理構成要素である。いくつかの実装形態では、プロセッサ220は、機能を実行するようにプログラムされることが可能な1つ又は複数のプロセッサを含む。メモリ230は、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、並びに/又はプロセッサ220が使用するための情報及び/若しくは命令を記憶する別のタイプの動的若しくは静的な記憶デバイス(例えば、フラッシュメモリ、磁気メモリ、及び/若しくは光メモリ)を含む。
【0026】
記憶構成要素240は、デバイス200の動作及び使用に関連する情報及び/又はソフトウェアを記憶する。例えば、記憶構成要素240は、対応するドライブとともに、ハードディスク(例えば、磁気ディスク、光ディスク、光磁気ディスク、及び/又はソリッドステートディスク)、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、フロッピーディスク、カートリッジ、磁気テープ、及び/又は別のタイプの非一時的コンピュータ可読媒体を含んでもよい。
【0027】
入力構成要素250は、デバイス200がユーザ入力(例えば、タッチスクリーンディスプレイ、キーボード、キーパッド、マウス、ボタン、スイッチ、及び/又はマイクロフォン)などを介して情報を受信することを可能にする構成要素を含む。追加又は代替として、入力構成要素250は、情報を検知するためのセンサ(例えば、全地球測位システム(GPS)構成要素、加速度計、ジャイロスコープ、及び/又はアクチュエータ)を含んでもよい。出力構成要素260は、デバイス200(例えば、ディスプレイ、スピーカ、及び/又は1つ若しくは複数の発光ダイオード(LED))からの出力情報を提供する構成要素を含む。
【0028】
通信インターフェース270は、デバイス200が有線接続、無線接続、又は有線接続と無線接続との組合せなどを介して他のデバイスと通信することを可能にする、送受信器のような構成要素(例えば、送受信器並びに/又は別個の受信器及び送信器)を含む。通信インターフェース270は、デバイス200が別のデバイスから情報を受信し、かつ/又は別のデバイスに情報を提供することを可能としうる。例えば、通信インターフェース270は、イーサネットインターフェース、光インターフェース、同軸インターフェース、赤外線インターフェース、無線周波数(RF)インターフェース、ユニバーサルシリアルバス(USB)インターフェース、Wi-Fiインターフェース、セルラーネットワークインターフェースなどを含んでもよい。
【0029】
デバイス200は、本明細書に記載された1つ又は複数のプロセスを行いうる。デバイス200は、プロセッサ220がメモリ230及び/又は記憶構成要素240などの非一時的コンピュータ可読媒体によって記憶されたソフトウェア命令を実行することに応答して、これらのプロセスを行いうる。コンピュータ可読媒体は、本明細書では非一時的メモリデバイスと定義される。メモリデバイスは、単一の物理記憶デバイス内のメモリ空間、又は複数の物理記憶デバイスにわたって広がるメモリ空間を含む。
【0030】
ソフトウェア命令は、別のコンピュータ可読媒体から、又は通信インターフェース270を介して別のデバイスから、メモリ230及び/又は記憶構成要素240に読み込まれてもよい。メモリ230及び/又は記憶構成要素240に記憶されたソフトウェア命令は、実行されると、本明細書に記載された1つ又は複数のプロセスをプロセッサ220に行わせうる。追加又は代替として、ハードワイヤード回路は、本明細書に記載された1つ又は複数のプロセスを行うために、ソフトウェア命令の代わりに、又はソフトウェア命令と組み合わせて使用されてもよい。このように、本明細書に記載された実装形態は、ハードウェア回路とソフトウェアとのいかなる特定の組合せにも限定されない。
【0031】
図2に示された構成要素の数及び配置は、一例として提供されている。実際には、デバイス200は、
図2に示す構成要素に比べて、さらなる構成要素、少ない構成要素、異なる構成要素、又は異なる配置の構成要素を含んでもよい。追加又は代替として、デバイス200の構成要素のセット(例えば、1つ又は複数の構成要素)は、デバイス200の構成要素の別のセットによって実行されるものとして記載された1つ又は複数の機能を実行しうる。
【0032】
次に、ニューラル画像圧縮のためのタスク適応型前処理のための方法及び装置について詳細に説明する。
【0033】
図3は、実施形態による、テスト段階中の、ニューラル画像圧縮のためのタスク適応型前処理のための装置300のブロック図である。
【0034】
図3に示すように、装置300は、TAPP NN310と、NNエンコーダ320と、NNデコーダ330とを含む。
【0035】
サイズ(h、w、c)の入力画像xが与えられ、ここで、h、w、cはそれぞれ高さ、幅、及びチャネル数であるとすると、NICワークフローのテスト段階の目標は、記憶及び伝送のためにコンパクトである圧縮表現
【数1】
を計算又は生成することであり、次いで、圧縮表現
【数2】
に基づいて、デコーダ側で出力画像
【数3】
を再構成し、その結果、再構成された出力画像
【数4】
は元の入力画像xに類似し得る。
【0036】
図3を参照すると、入力画像xは、まず、代替画像
【数5】
を計算又は生成するためにTAPP NNに提供される。実施形態において、TAPP NN310はTAPPモジュールによって使用され、TAPPモジュールは、入力画像xに基づいて代替摂動δ(x)を計算又は生成し、代替画像
【数6】
を
【数7】
として計算又は生成する。
【0037】
その後、代替画像
【数8】
は、NNエンコーディング・モジュールに入力され、NNエンコーディング・モジュールは、圧縮表現
【数9】
を計算又は生成するNNエンコーダ320を使用する。次に、デコーダ側では、NNデコーディング・モジュールが、圧縮表現
【数10】
に基づいて、NNデコーダ330を使用して、再構成された出力画像
【数11】
を計算又は生成する。本開示では、TAPP NN310、NNエンコーダ320、及びNNデコーダ330のネットワークアーキテクチャにいかなる制限もない。
【0038】
図4Aは、実施形態による、訓練段階の第1の工程中の、ニューラル画像圧縮のためのタスク適応型前処理のための訓練装置400Aのブロック図である。
図4Bは、実施形態による、訓練段階の第1の工程中の、ニューラル画像圧縮のためのタスク適応型前処理のための訓練装置400Bの別のブロック図である。
図4Cは、実施形態による、訓練段階の第2の工程中の、ニューラル画像圧縮のためのタスク適応型前処理のための訓練装置400Cのブロック図である。
【0039】
NICモデルを訓練するために、R-D損失が使用されうる。歪み損失
【数12】
は、PSNR及びSSIMの一方又はその両方などの再構成誤差を測定するために計算される。圧縮表現
【数13】
のビット消費を測定するために、レート損失
【数14】
が計算される。トレードオフハイパーパラメータλがR-D損失に使用される。
【数15】
【0040】
より大きなハイパーパラメータλを用いた訓練では、歪みは小さいがビット消費の多い圧縮モデルとなり、その逆もまた同様である。
【0041】
図4A及び
図4Bを参照すると、基礎となるNICモデルインスタンス(すなわち、NNエンコーダ320及びNNデコーダ330)が元のR-D損失
【数16】
で訓練されていると仮定する。Enc
0及びDec
0をそれぞれ訓練されたNNエンコーダ320及び訓練されたNNデコーダ330とする。実施形態では、Enc
0及びDec
0は固定され、TAPP NN310のみが訓練される。すなわち、TAPPモジュールは、圧縮結果がタスクに合わせて調整されるようにEnc
0及びDec
0を適応させるためのアドオン構成要素として訓練される。実施形態では、NNエンコーダ320及び/又はNNデコーダ330も更新されることができ、その結果、基礎となるNICモデルインスタンスも、訓練後のいくつかのタスクに適合するように調整されることができる。
【0042】
図4A~
図4Cは、訓練段階の全体的なワークフローを説明しており、これは、各訓練データについて2つの工程を含む。
【0043】
図4A及び
図4Bに示すように、訓練装置400A及び400Bの各々は、TAPP NN310と、NNエンコーダ320と、NNデコーダ330と、レート損失生成器410と、歪み損失生成器420と、R-D損失生成器430とを含む。訓練装置400Aはデータ更新部440を含み、訓練装置400Bはデータ更新部450を含む。
【0044】
入力訓練画像xが与えられると、
図4A及び
図4Bに示される最初の工程において、それはTAPPモジュールを最初に通過して、TAPP NN310の現在のモデルパラメータを使用することによって代替画像
【数17】
を生成する。テスト段階と同様に、実施形態では、代替摂動δ
t(x)が計算又は生成され、代替画像
【数18】
は
【数19】
によって与えられる。
【0045】
その後、代替画像
【数20】
を入力として使用して、NNエンコーダ320は、NNエンコーディング・モジュールにおいて圧縮表現
【数21】
を生成する。次いで、NNデコーダ330は、圧縮表現
【数22】
に基づいて、NNデコーディング・モジュールを介して出力画像
【数23】
を再構成する。
【0046】
歪み損失生成器420は、タスク歪み損失
【数24】
を計算又は生成し、これは
【数25】
と同じであっても異なっていてもよい。レート損失生成器410は、タスクレート損失
【数26】
を計算又は生成し、これは
【数27】
と同じであっても異なっていてもよい。
【0047】
次に、R-D損失生成器430は、タスクR-D損失
【数28】
を以下のように計算又は生成する。
【数29】
【0048】
図4Aを参照すると、データ更新部440は、タスクR-D損失
【数30】
の勾配を計算又は生成し、これらの勾配を使用して、逆伝播により代替画像
【数31】
を更新する。更新された代替画像
【数32】
は、再びNNエンコーダ320に提供され、訓練装置400Aは、上記の推論プロセスを繰り返す。最後に、T回の反復の後(例えば、最大反復回数に達したとき、又はR-D損失が収束するまで)、訓練装置400Aは、最終的な更新された代替画像
【数33】
を取得する。
【0049】
図4Bを参照すると、データ更新部450は、タスクR-D損失
【数34】
の勾配を計算又は生成し、これらの勾配を使用して、逆伝播により入力画像xを更新する。更新された入力は、再びTAPP NN310に提供され、訓練装置400Bは、上記の推論プロセスを繰り返す。最後に、T回の反復の後(例えば、最大反復回数に達したとき、又はR-D損失が収束するまで)、訓練装置400Bは、最終更新入力画像xを取得し、最終更新代替画像
【数35】
を生成するためにTAPP NN310に提供される。
【0050】
図4A及び
図4Bの両方において、最終的な更新された代替画像
【数36】
は、TAPP NN310が入力画像xを適応させようとするグランドトゥルース目標として使用されてよい。
【0051】
実施形態では、追加の損失を計算し、式(2)のR-D損失と組み合わせることができ、組み合わされた損失の勾配をデータ更新部440又は450によって使用して、入力画像x又は代替画像
【数37】
を更新することができる。例えば、NN識別器を使用して、その入力が元の入力画像xであるか、再構成された出力画像
【数38】
であるかを分類することができ、分類損失を追加の損失として使用することができる。また、NN特徴抽出器を使用して、元の入力画像x又は再構成された出力画像
【数39】
から特徴を抽出することができ、識別器を使用して、抽出された特徴が元の入力画像xに由来するか、又は再構成された出力画像
【数40】
に由来するかどうかを分類することができる。分類損失は、学習プロセスを正規化するための追加の損失として使用されることもできる。
【0052】
図4Cに示すように、訓練装置400Cは、TAPP NN310と、代替歪み生成器460と、モデル更新部470とを備える。
【0053】
図4Cを参照すると、工程2において、元の入力画像xがTAPP NN310に供給され、TAPP NN310の現在のモデルパラメータを使用することによって推定代替画像
【数41】
が生成される。代替歪み生成器460は、最終的なグランドトゥルース代替画像
【数42】
と推定代替画像
【数43】
との間の差、例えば平均二乗誤差(MSE)又はSSIM損失を測定するために代替歪み損失
【数44】
を計算又は生成する。モデル更新部470は、代替歪み損失
【数45】
の勾配を計算又は生成し、これらの勾配を逆伝播して、TAPP NN310の現在のモデルパラメータを更新する。
【0054】
実施形態において、追加の損失を計算し、代替歪み損失
【数46】
と組み合わせることができ、組み合わされた損失の勾配をモデル更新部470によって使用して、TAPP NN310の現在のモデルパラメータを更新することができる。例えば、NN識別器を使用して、その入力が元の入力画像xであるか、推定された代替画像
【数47】
であるかを分類することができ、分類損失を追加の損失として使用することができる。また、NN特徴抽出器を使用して、元の入力画像x又は推定代替画像
【数48】
から特徴を抽出することができ、識別器を使用して、抽出された特徴が元の入力画像xに由来するか、又は推定代替画像
【数49】
に由来するかどうかを分類することができる。分類損失は、学習プロセスを正規化するための追加の損失として使用されることもできる。
【0055】
モデル更新部470は、訓練入力画像x毎に、TAPP NN310のモデルパラメータを更新することができる。また、訓練入力画像のバッチの勾配を累積し、各バッチのモデルパラメータを更新することもできる。
【0056】
実施形態では、訓練された基礎となるNICモデルインスタンス(すなわち、NNエンコーダ320及び/又はNNデコーダ330)のパラメータの一部又は全部が、上記の訓練プロセスの工程2において更新されることもできる。基礎となるNICモデルインスタンスは、TAPP NN310とは異なるタイムスタンプで更新されることができる。
【0057】
本明細書に記載の実施形態は、TAPPモジュールを使用して、訓練された基礎となるNICモデルインスタンスを適応させて、新しいタスクに合わせて調整された入力を圧縮し、新しいタスクは、元のNIC目標と同じであっても異なっていてもよい
【0058】
本明細書に記載の実施形態は、順応性のある目標制御(例えば、新しいタスク目標が新しい圧縮ビットレートである場合のビットレート制御、新しいタスク目標が新しい品質メトリックである場合の品質制御、及び/又は新しいタスク目標が元のNICタスクと同じである場合の圧縮の改善)の利点を有する。フレームワークは、様々なタイプの基礎となるNIC方法に対応するために順応性がある。
【0059】
図5は、実施形態による、ニューラル画像圧縮のためのタスク適応型前処理の方法のフローチャートである。
【0060】
いくつかの実装形態では、
図5の1つ又は複数のプロセスブロックは、プラットフォーム120によって行われてもよい。いくつかの実装形態では、
図5の1つ又は複数のプロセスブロックは、ユーザデバイス110などのプラットフォーム120とは別個の、又はプラットフォーム120を含む別のデバイス若しくはデバイスのグループによって行われてもよい。
【0061】
図5に示されるように、動作510において、方法500は、TAPPニューラルネットワークを使用して、入力画像に基づいて代替画像を生成するステップを含む。
【0062】
動作520において、方法500は、第1のニューラルネットワークを使用して、生成された代替画像をエンコードして圧縮表現を生成するステップを含む。
【0063】
TAPPニューラルネットワークは、TAPPニューラルネットワークを使用して、入力訓練画像に基づいて代替訓練画像を生成することと、第1のニューラルネットワークを使用して、生成された代替訓練画像をエンコードして圧縮訓練表現を生成することと、第2のニューラルネットワークを使用して、生成された圧縮訓練表現をデコードして出力訓練画像を再構成することと、入力訓練画像、再構成された出力訓練画像、及び生成された圧縮訓練表現に基づいて生成されるレート歪み(R-D)損失の勾配を生成することと、生成されたR-D損失の勾配に基づいて、生成された代替訓練画像を更新することとによって訓練される。
【0064】
動作530において、方法500は、第2のニューラルネットワークを使用して、生成された圧縮表現をデコードして出力画像を再構成するステップを含む。
【0065】
代替画像を生成するステップは、TAPPニューラルネットワークを使用して、入力画像に基づいて代替摂動を生成するステップと、入力画像と生成された代替摂動との和として代替画像を生成するステップとを含むことができる。
【0066】
TAPPニューラルネットワークは、ハイパーパラメータ、入力訓練画像と再構成された出力訓練画像との間の再構成誤差である歪み損失、及び生成された圧縮訓練表現のビット消費であるレート損失に基づいて、R-D損失を生成することによってさらに訓練されてもよい。
【0067】
R-D損失の勾配を生成することができ、生成された代替訓練画像は、最大反復回数が行われるまで、又はR-D損失が収束するまで更新することができる。
【0068】
生成されたR-D損失の勾配に基づいて入力訓練画像を更新することによってTAPPニューラルネットワークをさらに訓練することができ、R-D損失の勾配を生成することができ、入力訓練画像は、最大反復回数が行われるまで、又はR-D損失が収束するまで更新することができる。
【0069】
TAPPニューラルネットワークは、グランドトゥルース代替画像と生成された代替訓練画像との差として代替歪みを生成し、生成された代替歪みの勾配を生成し、生成された代替歪みの生成された勾配に基づいてTAPPニューラルネットワークのパラメータを更新することによってさらに訓練されてもよい。
【0070】
図5は方法500の例示的なブロックを示すが、いくつかの実装形態では、方法500は、
図5に描写されたブロックに比べて、さらなるブロック、少ないブロック、異なるブロック、又は異なる配置のブロックを含んでもよい。追加又は代替として、方法500のブロックのうちの2つ以上が並行して行われてもよい。
【0071】
図6は、実施形態による、ニューラル画像圧縮のためのタスク適応型前処理のための装置600のブロック図である。
【0072】
図6に示されるように、装置600は、生成コード610、エンコーディング・コード620、及びデコーディング・コード630を含む。
【0073】
生成コード610は、少なくとも1つのプロセッサに、TAPPニューラルネットワークを使用して、入力画像に基づいて代替画像を生成させるように構成される。
【0074】
エンコーディング・コード620は、少なくとも1つのプロセッサに、第1のニューラルネットワークを使用して、生成された代替画像をエンコードして圧縮表現を生成させるように構成される。
【0075】
TAPPニューラルネットワークは、TAPPニューラルネットワークを使用して、入力訓練画像に基づいて代替訓練画像を生成することと、第1のニューラルネットワークを使用して、生成された代替訓練画像をエンコードして圧縮訓練表現を生成することと、第2のニューラルネットワークを使用して、生成された圧縮訓練表現をデコードして出力訓練画像を再構成することと、入力訓練画像、再構成された出力訓練画像、及び生成された圧縮訓練表現に基づいて生成されるレート歪み(R-D)損失の勾配を生成することと、生成されたR-D損失の勾配に基づいて、生成された代替訓練画像を更新することとによって訓練される。
【0076】
デコーディング・コード630は、少なくとも1つのプロセッサに、第2のニューラルネットワークを使用して、生成された圧縮表現をデコードさせて出力画像を再構成させるように構成される。
【0077】
生成コード610は、少なくとも1つのプロセッサに、TAPPニューラルネットワークを使用して、入力画像に基づいて代替摂動を生成させ、入力画像と生成された代替摂動との和として代替画像を生成させるようにさらに構成されてもよい。
【0078】
TAPPニューラルネットワークは、ハイパーパラメータ、入力訓練画像と再構成された出力訓練画像との間の再構成誤差である歪み損失、及び生成された圧縮訓練表現のビット消費であるレート損失に基づいて、R-D損失を生成することによってさらに訓練されてもよい。
【0079】
R-D損失の勾配を生成することができ、生成された代替訓練画像は、最大反復回数が行われるまで、又はR-D損失が収束するまで更新することができる。
【0080】
生成されたR-D損失の勾配に基づいて入力訓練画像を更新することによってTAPPニューラルネットワークをさらに訓練することができ、R-D損失の勾配を生成することができ、入力訓練画像は、最大反復回数が行われるまで、又はR-D損失が収束するまで更新することができる。
【0081】
TAPPニューラルネットワークは、グランドトゥルース代替画像と生成された代替訓練画像との差として代替歪みを生成し、生成された代替歪みの勾配を生成し、生成された代替歪みの生成された勾配に基づいてTAPPニューラルネットワークのパラメータを更新することによって訓練されてよい。
【0082】
提案された方法は、別々に使用されてもよく、任意の順序で組み合わされてもよい。さらに、方法(又は実施形態)、エンコーダ、及びデコーダの各々は、処理回路(例えば、1つ若しくは複数のプロセッサ又は1つ若しくは複数の集積回路)によって実装されてもよい。一例では、1つ又は複数のプロセッサは、非一時的コンピュータ可読媒体に格納されたプログラムを実行する。
【0083】
前述の開示は例示及び説明を提供しているが、網羅的なものではなく、開示されたまさにその形態に実装形態を限定するものではない。修正形態及び変形形態は、上記の開示に照らして実現可能であり、又は実装形態の実践から取得されてもよい。
【0084】
本明細書で使用される場合、構成要素という用語は、ハードウェア、ファームウェア、又はハードウェアとソフトウェアの組合せとして広く解釈されることを意図されている。
【0085】
本明細書に記載のシステム及び/又は方法は、ハードウェア、ファームウェア、又はハードウェアとソフトウェアとの組合せの異なる形態で実装されてもよいことは明らかであろう。これらのシステム及び/又は方法を実装するために使用される実際の専用の制御ハードウェア又はソフトウェアコードは、実装形態を限定するものではない。したがって、システム及び/又は方法の動作及び挙動は、特定のソフトウェアコードを参照することなく本明細書に記載されており、ソフトウェア及びハードウェアは、本明細書の記載に基づいてシステム及び/又は方法を実装するように設計され得ることが理解される。
【0086】
特徴の組合せが特許請求の範囲に列挙され、及び/又は本明細書に開示されているが、これらの組合せは、可能な実装形態の開示を限定するものではない。実際には、これらの特徴の多くは、特許請求の範囲に具体的に列挙されていない、及び/又は本明細書に開示されていない方法で組み合わされてもよい。以下に列挙される各従属請求項は1つの請求項のみに直接従属してもよいが、可能な実装形態の開示は、各従属請求項を請求項セット内のあらゆる他の請求項と組み合わせて含む。
【0087】
本明細書で使用される要素、行為、又は指示は、明示的にそのように記載されていない限り、重要又は必須であると解釈されなくてもよい。また、本明細書で使用される冠詞「a」及び「an」は、1つ又は複数の項目を含むものであり、「1つ又は複数」と同じ意味で使用されてもよい。さらに、本明細書で使用される「セット」という用語は、1つ又は複数の項目(例えば、関連項目、非関連項目、関連項目と非関連項目の組合せなど)を含むものであり、「1つ又は複数」と同じ意味で使用されてもよい。1つの項目のみが対象とされる場合、「1つ」という用語又は同様の言葉が使用される。また、本明細書で使用される「有する(has)」、「有する(have)」、「有する(having)」などの用語は、オープンエンド用語であることが意図される。さらに、「に基づいて」という語句は、特に明記されない限り、「に少なくとも部分的に基づいて」を意味するものである。
【符号の説明】
【0088】
100 環境
110 ユーザデバイス
120 プラットフォーム
122 クラウドコンピューティング環境
124 コンピューティングリソース
124-1 アプリケーション
124-2 仮想マシン
124-3 仮想化ストレージ
124-4 ハイパーバイザ
130 ネットワーク
200 デバイス
210 バス
220 プロセッサ
230 メモリ
240 記憶構成要素
250 入力構成要素
260 出力構成要素
270 通信インターフェース
300 装置
310 TAPPニューラルネットワーク
320 ニューラルネットワークエンコーダ
330 ニューラルネットワークデコーダ
400A 訓練装置
400B 訓練装置
400C 訓練装置
410 レート損失生成器
420 歪み損失生成器
430 R-D損失生成器
440 データ更新部
450 データ更新部
460 代替歪み生成器
470 モデル更新部
500 方法
600 装置
610 生成コード
620 エンコーディング・コード
630 デコーディング・コード