Python 3.8 und Conda. Holen Sie sich Conda CUDA, wenn Sie die GPU-Umgebung verwenden möchten
conda create -n $YOUR_PY38_ENV_NAME python=3.8
conda activate $YOUR_PY38_ENV_NAME
pip install -r requirements.txt
Für unser Projekt erfolgt die Eingabe in Form eines Arrays mit der Form (B, T, C, H, W), wobei jeder Frame im Array eine feste Größe von 128 x 128 hat. Die Anzahl der Bilder in jedem Video beträgt 30, was zu einer Form von (B, 30, 3.128, 128) führt. Bevor Sie dieses Projekt verwenden, müssen Sie möglicherweise Ihre Videodaten entsprechend vorverarbeiten. Im Code stellen wir ein Beispielarray „city_bonn.npy“ mit der Form (46, 30, 3, 128, 128) bereit. Dieses Array enthält 46 Videos aus der Stadt Bonn im Cityscape-Datensatz. Unten finden Sie einen Beispielbefehl.
Sie können steuern, welche Videos verarbeitet werden sollen, indem Sie die Werte für start_idx und end_idx auswählen. Stellen Sie sicher, dass der ausgewählte Bereich den Wert von B (die Anzahl der Videos in Ihrem Datensatz) nicht überschreitet.
python city_sender.py --data_npy "data_npy/city_bonn.npy" --output_path "your path" --start_idx 0 --end_idx 1
Im Abschnitt „Benchmark“ stellen wir Code zur Berechnung von Komprimierungsmetriken für H.264 und H.265 bereit. Die Eingabe für diesen Code sollte 30 Frames mit 128 x 128 Bildframes sein, vorzugsweise im Format „Frame%d“ benannt.
Die Ordnerstruktur des Datensatzes ist wie folgt
/your path/
- frame0.png
- frame1.png
- ...
- frame29.png
Für project_str ist dies einfach eine Zeichenfolge, die zur Unterscheidung Ihrer Daten verwendet wird. Hier verwenden wir „uvg“.
python bench.py --dataset "your path" --output_path "your path" --project_str uvg
Was die Kontrollpunkte betrifft, verwenden wir zwei Sätze davon. Ein Satz enthält „checkpoint_900000.pt“, das für den Videogenerierungsteil verwendet wird. Der andere Satz enthält sechs Gruppen von Prüfpunkten. Diese Prüfpunkte werden für den Bildkomprimierungsteil verwendet und entsprechen sechs verschiedenen Komprimierungsqualitäten.
Die sechs Gewichte müssen in den Ordner „Checkpoints/Neural Network“ verschoben werden.
Lambda | Qualität |
---|---|
0,45 | q5 |
0,15 | q4 |
0,032 | q3 |
0,015 | q2 |
0,008 | q1 |
0,004 | q0 |
Dieses individuelle Gewicht muss in den Ordner „checkpoints/sender“ verschoben werden.
Kontrollpunkt des Diffusionsmodells |
---|
Kontrollpunkt des Diffusionsmodells |
Die folgenden Bilder vergleichen die Komprimierungsleistung unseres Modells mit den herkömmlichen Videokomprimierungsstandards H.264 und H.265. Es ist zu beobachten, dass unser Modell ihnen bei niedrigen Bitraten (bpp) überlegen ist. Diese Daten wurden anhand der ersten 24 Videos von city_bonn.npy berechnet.