Compressai ( Compress-Aay ) est une bibliothèque Pytorch et une plate-forme d'évaluation pour la recherche de compression de bout en bout.
Compressai fournit actuellement:

Remarque : le support multi-GPU est désormais expérimental.
Compressai prend en charge Python 3.8+ et Pytorch 1.7+.
PIP :
pip install compressaiRemarque : les roues sont disponibles pour Linux et MacOS.
De la source :
Un compilateur C ++ 17, une version récente de PIP (19.0+) et des packages Python communs sont également nécessaires (voir setup.py pour la liste complète).
Pour commencer localement et installer la version de développement de Compressai, exécutez les commandes suivantes dans un environnement virtuel:
git clone https://github.com/InterDigitalInc/CompressAI compressai
cd compressai
pip install -U pip && pip install -e .Pour une installation personnalisée, vous pouvez également exécuter l'une des commandes suivantes:
pip install -e '.[dev]' : Installez les packages requis pour le développement (test, line, docs)pip install -e '.[tutorials]' : Installez les packages requis pour les tutoriels (cahiers)pip install -e '.[all]' : Installez tous les packages en optionRemarque : Docker Images sera publié à l'avenir. Les environnements Conda ne sont pas officiellement soutenus.
Des exemples de script et de cahier peuvent être trouvés dans les examples/ répertoire.
Pour encoder / décoder les images avec les modèles pré-formés fournis, exécutez le codec.py Exemple:
python3 examples/codec.py --help Un script d'entraînement exampltaire avec une perte de distorsion à taux est fourni dans examples/train.py . Vous pouvez remplacer le modèle utilisé dans le script d'entraînement par votre propre modèle implémenté dans Compressai, puis exécuter le script pour un pipeline de formation simple:
python3 examples/train.py -d /path/to/my/image/dataset/ --epochs 300 -lr 1e-4 --batch-size 16 --cuda --saveRemarque: L'exemple de formation utilise une structure ImageFolder personnalisée.
Un carnet de jupyter illustrant l'utilisation d'un modèle pré-formé pour la compression d'images apprise est également fourni dans le répertoire examples :
pip install -U ipython jupyter ipywidgets matplotlib
jupyter notebook examples/Pour évaluer un modèle formé sur votre propre ensemble de données, Compressai fournit un script d'évaluation:
python3 -m compressai.utils.eval_model checkpoint /path/to/images/folder/ -a $ARCH -p $MODEL_CHECKPOINT ...Pour évaluer les modèles fournis prélevés:
python3 -m compressai.utils.eval_model pretrained /path/to/images/folder/ -a $ARCH -q $QUALITY_LEVELS ...Pour tracer les résultats des simulations Bench / EVAL_MODEL (nécessite Matplotlib par défaut):
python3 -m compressai.utils.plot --helpPour évaluer les codecs traditionnels:
python3 -m compressai.utils.bench --help
python3 -m compressai.utils.bench bpg --help
python3 -m compressai.utils.bench vtm --helpPour la vidéo, des tests similaires peuvent être exécutés, Compressai ne comprend que SSF2020 pour l'instant:
python3 -m compressai.utils.video.eval_model checkpoint /path/to/video/folder/ -a ssf2020 -p $MODEL_CHECKPOINT ...
python3 -m compressai.utils.video.eval_model pretrained /path/to/video/folder/ -a ssf2020 -q $QUALITY_LEVELS ...
python3 -m compressai.utils.video.bench x265 --help
python3 -m compressai.utils.video.bench VTM --help
python3 -m compressai.utils.video.plot --help Exécutez des tests avec pytest :
pytest -sx --cov=compressai --cov-append --cov-report term-missing tests Les tests lents peuvent être ignorés avec l'option -m "not slow" .
Compressai est sous licence en vertu de la licence claire BSD 3 clause
Nous accueillons les commentaires et les contributions. Veuillez ouvrir un problème GitHub pour signaler les bogues, demander des améliorations ou si vous avez des questions.
Avant de contribuer, veuillez lire le fichier contribution.md.
Si vous utilisez ce projet, veuillez citer les publications originales pertinentes pour les modèles et ensembles de données, et citez ce projet comme:
@article{begaint2020compressai,
title={CompressAI: a PyTorch library and evaluation platform for end-to-end compression research},
author={B{'e}gaint, Jean and Racap{'e}, Fabien and Feltman, Simon and Pushparaja, Akshay},
year={2020},
journal={arXiv preprint arXiv:2011.03029},
}
Pour tout travail lié aux modèles de débit-bitrate variables, veuillez citer
@article{kamisli2024dcc_vbrlic,
title={Variable-Rate Learned Image Compression with Multi-Objective Optimization and Quantization-Reconstruction Offsets},
author={Kamisli, Fatih and Racap{'e}, Fabien and Choi, Hyomin},
year={2024},
booktitle={2024 Data Compression Conference (DCC)},
eprint={2402.18930},
}