--- license: apache-2.0 tags: - openvino - image-to-image - super-resolution - image-upscaling - real-esrgan base_model: - xinntao/RealESRGAN_x4plus - xinntao/RealESRGAN_x2plus - xinntao/RealESRGAN_x4plus_anime_6B pipeline_tag: image-to-image --- # Real-ESRGAN OpenVINO Pre-converted [Real-ESRGAN](https://github.com/xinntao/Real-ESRGAN) models in OpenVINO IR format, optimized for Intel CPUs. **Up to 13x faster** than PyTorch for the same accuracy while using less memory. ## Models | Model | Scale | Parameters | Use Case | |-------|-------|------------|----------| | `real_esrgan_x4plus_fp32` | 4x | 16.7M | General photos | | `real_esrgan_x2plus_fp32` | 2x | 16.7M | General photos (2x) | | `real_esrgan_x4plus_anime_6B_fp32` | 4x | 5.9M | Anime/illustrations | All models accept `uint8` NHWC input directly (preprocessing baked into IR). ## Highly Optimized This implementation leverages Intel OpenVINO with AVX-512 and AMX instructions for maximum CPU performance. The speedup increases with image size, making it especially efficient for large images. ### Benchmark For reference, here's the time required to upscale images using different implementations: * [PyTorch](https://pytorch.org/) - Standard PyTorch inference * [OpenVINO](https://docs.openvino.ai/) - Optimized for Intel CPUs ### x4plus model on Intel Xeon Platinum 8581C | Input Size | Output Size | PyTorch (s) | OpenVINO (s) | Speedup | Memory | |------------|-------------|-------------|--------------|---------|--------| | 128x128 | 512x512 | 0.635 | 0.114 | **5.58x** | 9.9 MB | | 256x256 | 1024x1024 | 3.673 | 0.391 | **9.39x** | 39.2 MB | | 512x512 | 2048x2048 | 19.919 | 1.485 | **13.42x** | 57.9 MB | | 1024x1024 | 4096x4096 | 79.385 | 5.955 | **13.33x** | 96.2 MB | ### x2plus model on Intel Xeon Platinum 8581C | Input Size | Output Size | PyTorch (s) | OpenVINO (s) | Speedup | Memory | |------------|-------------|-------------|--------------|---------|--------| | 128x128 | 256x256 | 0.193 | 0.051 | **3.81x** | 2.6 MB | | 256x256 | 512x512 | 0.682 | 0.111 | **6.13x** | 9.9 MB | | 512x512 | 1024x1024 | 3.604 | 0.405 | **8.89x** | 15.2 MB | | 1024x1024 | 2048x2048 | 21.174 | 1.618 | **13.09x** | 26.5 MB | ### x4plus_anime_6B model on Intel Xeon Platinum 8581C | Input Size | Output Size | PyTorch (s) | OpenVINO (s) | Speedup | Memory | |------------|-------------|-------------|--------------|---------|--------| | 128x128 | 512x512 | 0.243 | 0.047 | **5.15x** | 6.9 MB | | 256x256 | 1024x1024 | 1.287 | 0.154 | **8.35x** | 27.2 MB | | 512x512 | 2048x2048 | 6.617 | 0.583 | **11.34x** | 45.9 MB | | 1024x1024 | 4096x4096 | 26.366 | 2.341 | **11.26x** | 84.2 MB | *Benchmarks executed on Intel Xeon Platinum 8581C (8 cores, 16 threads, AVX-512, AMX).* ## Usage See the [GitHub repository](https://github.com/ibrhr/Real-ESRGAN-cpu) for usage instructions, examples, and benchmarks. ## Citations ```bibtex @inproceedings{wang2021realesrgan, title={Real-ESRGAN: Training Real-World Blind Super-Resolution with Pure Synthetic Data}, author={Wang, Xintao and Xie, Liangbin and Dong, Chao and Shan, Ying}, booktitle={International Conference on Computer Vision Workshops (ICCVW)}, year={2021} } ```