CompressAI ( Compress-Ay ) es una biblioteca de Pytorch y una plataforma de evaluación para la investigación de compresión de extremo a extremo.
Compresai actualmente proporciona:

Nota : El soporte de múltiples GPU ahora es experimental.
Compresai admite Python 3.8+ y Pytorch 1.7+.
Pip :
pip install compressaiNota : Las ruedas están disponibles para Linux y MacOS.
De la fuente :
También se requiere un compilador C ++ 17, una versión reciente de PIP (19.0+) y paquetes comunes de Python (ver setup.py para la lista completa).
Para comenzar localmente e instalar la versión de desarrollo de CompressAI, ejecute los siguientes comandos en un entorno virtual:
git clone https://github.com/InterDigitalInc/CompressAI compressai
cd compressai
pip install -U pip && pip install -e .Para una instalación personalizada, también puede ejecutar uno de los siguientes comandos:
pip install -e '.[dev]' : Instale los paquetes requeridos para el desarrollo (pruebas, pelusas, documentos)pip install -e '.[tutorials]' : Instale los paquetes requeridos para los tutoriales (cuadernos)pip install -e '.[all]' : instale todos los paquetes opcionalesNota : Docker Images se lanzarán en el futuro. Los entornos de conda no son compatibles oficialmente.
Los ejemplos de script y cuaderno se pueden encontrar en los examples/ directorio.
Para codificar/decodificar imágenes con los modelos previamente capacitados proporcionados, ejecute el ejemplo codec.py :
python3 examples/codec.py --help Se proporciona un script de capacitación ejemplar con una pérdida de discusión de tarifas en examples/train.py . Puede reemplazar el modelo utilizado en el script de capacitación con su propio modelo implementado dentro de CompressAI, y luego ejecutar el script para una tubería de entrenamiento simple:
python3 examples/train.py -d /path/to/my/image/dataset/ --epochs 300 -lr 1e-4 --batch-size 16 --cuda --saveNota: El ejemplo de capacitación utiliza una estructura de Folder de imagen personalizada.
También se proporciona un cuaderno Jupyter que ilustra el uso de un modelo previamente capacitado para la compresión de imágenes aprendidas en el directorio examples :
pip install -U ipython jupyter ipywidgets matplotlib
jupyter notebook examples/Para evaluar un modelo capacitado en su propio conjunto de datos, Compresai proporciona un script de evaluación:
python3 -m compressai.utils.eval_model checkpoint /path/to/images/folder/ -a $ARCH -p $MODEL_CHECKPOINT ...Para evaluar modelos previamente capacitados:
python3 -m compressai.utils.eval_model pretrained /path/to/images/folder/ -a $ARCH -q $QUALITY_LEVELS ...Para trazar los resultados de las simulaciones de bench/eval_model (requiere matplotlib de forma predeterminada):
python3 -m compressai.utils.plot --helpPara evaluar los códecs tradicionales:
python3 -m compressai.utils.bench --help
python3 -m compressai.utils.bench bpg --help
python3 -m compressai.utils.bench vtm --helpPara un video, se pueden ejecutar pruebas similares, Compresai solo incluye SSF2020 por ahora:
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 Ejecutar pruebas con pytest :
pytest -sx --cov=compressai --cov-append --cov-report term-missing tests Las pruebas lentas se pueden omitir con la opción -m "not slow" .
CompressAI tiene licencia bajo la licencia clara de cláusula BSD 3
Agradecemos comentarios y contribuciones. Abra un problema de GitHub para informar los errores, las mejoras de solicitud o si tiene alguna pregunta.
Antes de contribuir, lea el archivo contribuyente.md.
Si usa este proyecto, cita las publicaciones originales relevantes para los modelos y conjuntos de datos, y cita este proyecto como:
@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},
}
Para cualquier trabajo relacionado con los modelos de tasa de bits variable, cite
@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},
}