Python 3.8 et conda, obtenez Conda CUDA si vous souhaitez utiliser l'environnement GPU
conda create -n $YOUR_PY38_ENV_NAME python=3.8
conda activate $YOUR_PY38_ENV_NAME
pip install -r requirements.txt
Pour notre projet, l'entrée se présente sous la forme d'un tableau de forme (B, T, C, H, W), où chaque image du tableau a une taille fixe de 128x128. Le nombre d'images dans chaque vidéo est de 30, ce qui donne la forme (B, 30, 3 128, 128). Avant d'utiliser ce projet, vous devrez peut-être prétraiter vos données vidéo en conséquence. Dans le code, nous fournissons un exemple de tableau "city_bonn.npy" avec une forme de (46, 30, 3, 128, 128). Ce tableau contient 46 vidéos de la ville de Bonn dans l'ensemble de données Cityscape. Vous trouverez ci-dessous un exemple de commande.
Vous pouvez contrôler les vidéos à traiter en choisissant les valeurs de start_idx et end_idx. Assurez-vous que la plage sélectionnée ne dépasse pas la valeur de B (le nombre de vidéos dans votre ensemble de données).
python city_sender.py --data_npy "data_npy/city_bonn.npy" --output_path "your path" --start_idx 0 --end_idx 1
Dans la section Benchmark, nous fournissons du code pour calculer les métriques de compression pour H.264 et H.265. L'entrée de ce code doit être constituée de 30 images de 128 x 128 images, de préférence nommées au format « frame%d ».
la structure des dossiers de l'ensemble de données ressemble à
/your path/
- frame0.png
- frame1.png
- ...
- frame29.png
Pour project_str, il s'agit simplement d'une chaîne utilisée pour distinguer vos données. Ici, nous utilisons "uvg".
python bench.py --dataset "your path" --output_path "your path" --project_str uvg
Concernant les points de contrôle, nous en utilisons deux ensembles. Un ensemble comprend "checkpoint_900000.pt", qui est utilisé pour la partie génération vidéo. L'autre ensemble contient six groupes de points de contrôle, et ces points de contrôle seront utilisés pour la partie compression d'image, correspondant à six qualités de compression différentes.
Les six poids doivent être déplacés vers le dossier « points de contrôle/réseau neuronal ».
lambda | qualité |
---|---|
0,45 | q5 |
0,15 | q4 |
0,032 | q3 |
0,015 | q2 |
0,008 | q1 |
0,004 | q0 |
Ce poids individuel doit être déplacé vers le dossier « points de contrôle/expéditeur ».
point de contrôle du modèle de diffusion |
---|
point de contrôle du modèle de diffusion |
Les images suivantes comparent les performances de compression de notre modèle avec les normes de compression vidéo traditionnelles, H.264 et H.265. On peut observer que notre modèle les surpasse à bas débits (bpp). Ces données ont été calculées sur les 24 premières vidéos de city_bonn.npy.