| --- |
| 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} |
| } |
| ``` |
|
|