Python 3.8 と conda、GPU 環境を使用したい場合は Conda CUDA を入手してください
conda create -n $YOUR_PY38_ENV_NAME python=3.8
conda activate $YOUR_PY38_ENV_NAME
pip install -r requirements.txt
私たちのプロジェクトでは、入力は (B、T、C、H、W) の形状を持つ配列の形式であり、配列内の各フレームのサイズは 128x128 に固定されています。各ビデオのフレーム数は 30 で、(B, 30, 3,128, 128) の形になります。このプロジェクトを使用する前に、ビデオ データを適切に前処理する必要がある場合があります。コードでは、(46, 30, 3, 128, 128) の形状を持つサンプル配列「city_bonn.npy」を提供します。この配列には、Cityscape データセット内のボン市からの 46 個のビデオが含まれています。以下はコマンドの例です。
start_idx と end_idx の値を選択することで、どのビデオを処理するかを制御できます。選択した範囲が B の値 (データセット内のビデオの数) を超えないようにしてください。
python city_sender.py --data_npy "data_npy/city_bonn.npy" --output_path "your path" --start_idx 0 --end_idx 1
「ベンチマーク」セクションでは、H.264 および H.265 の圧縮メトリックを計算するためのコードを提供します。このコードの入力は、128x128 画像フレームの 30 フレームであり、「frame%d」形式で名前を付けることが望ましいです。
データセットのフォルダー構造は次のようになります
/your path/
- frame0.png
- frame1.png
- ...
- frame29.png
project_str の場合、これはデータを区別するために使用される単なる文字列です。ここでは「uvg」を使用します。
python bench.py --dataset "your path" --output_path "your path" --project_str uvg
チェックポイントについては、2セット使用します。 1つのセットには、ビデオ生成部分に使用される「checkpoint_900000.pt」が含まれます。もう 1 つのセットには 6 つのチェックポイント グループが含まれており、これらのチェックポイントは 6 つの異なる圧縮品質に対応する画像圧縮部分に使用されます。
6 つの重みを「checkpoints/neural network」フォルダーに移動する必要があります。
ラムダ | 品質 |
---|---|
0.45 | q5 |
0.15 | q4 |
0.032 | q3 |
0.015 | q2 |
0.008 | q1 |
0.004 | q0 |
この個々の重みを「checkpoints/sender」フォルダーに移動する必要があります。
普及モデルのチェックポイント |
---|
普及モデルのチェックポイント |
次の画像は、モデルの圧縮パフォーマンスを従来のビデオ圧縮標準である H.264 および H.265 と比較しています。私たちのモデルは、低ビットレート (bpp) でモデルよりも優れたパフォーマンスを示していることがわかります。これらのデータは、city_bonn.npy の最初の 24 ビデオに基づいて計算されました。