cstr's picture
Update README with HAT, DAT, Restormer models
02d2fad verified
|
Raw
History Blame Contribute Delete
3.46 kB
---
license: apache-2.0
tags:
- super-resolution
- image-restoration
- ocr
- text-enhancement
- gguf
- crispembed
library_name: crispembed
---
# Text Super-Resolution & Restoration GGUF Models
Lightweight super-resolution and image restoration models converted to GGUF for [CrispEmbed](https://github.com/CrispStrobe/CrispEmbed) OCR preprocessing.
## Models
| File | Architecture | Params | Scale | Size | License | Paper |
|------|-------------|--------|-------|------|---------|-------|
| `tbsrn-telescope-f16.gguf` | TBSRN (text-line SR) | 1.13M | 2x | 2.2 MB | Apache-2.0 | CVPR 2021 |
| `pan-x4-f16.gguf` | PAN (pixel attention) | 272K | 4x | 0.5 MB | Apache-2.0 | ECCV 2020W |
| `hat-sr-x4-f16.gguf` | HAT (hybrid attention transformer) | 21M | 4x | 40 MB | MIT | CVPR 2023 |
| `dat-light-x2-f16.gguf` | DAT-light (dual aggregation transformer) | 830K | 2x | 38 MB | Apache-2.0 | ICCV 2023 |
| `restormer-denoise-f16.gguf` | Restormer (denoising) | 26M | 1x | 50 MB | Apache-2.0 | CVPR 2022 |
### TBSRN Telescope (text-line SR)
- **Task**: Enhance individual detected text lines before recognition
- **Input**: Text-line crop resized to 16x64 -> **Output**: 32x128 (2x)
- **Source**: [PaddleOCR](https://github.com/PaddlePaddle/PaddleOCR) `sr_telescope` (Apache-2.0)
### PAN (whole-image 4x SR)
- **Task**: Upscale full document pages (rescues 75dpi text)
- **Input**: Any RGB image (tiled) -> **Output**: 4x upscale
- **Source**: [PaddleGAN](https://github.com/PaddlePaddle/PaddleGAN) `pan_x4` (Apache-2.0)
### HAT (hybrid attention transformer, 4x SR)
- **Task**: High-quality 4x upscaling (CVPR 2023 SOTA on multiple SR benchmarks)
- **Input**: Any RGB image (tiled) -> **Output**: 4x upscale
- **Architecture**: Swin Transformer + overlapping cross-attention + channel attention
- **Source**: [XPixelGroup/HAT](https://github.com/XPixelGroup/HAT) (MIT)
### DAT-light (dual aggregation transformer, 2x SR)
- **Task**: High-quality 2x upscaling with dual spatial+channel attention
- **Input**: Any RGB image (tiled) -> **Output**: 2x upscale
- **Architecture**: Split-channel windowed spatial attention + L2-normalized transposed channel attention + AIM + SGFN
- **Source**: [zhengchen1999/DAT](https://github.com/zhengchen1999/DAT) (Apache-2.0)
### Restormer (image denoising/restoration)
- **Task**: Remove noise from document scans
- **Input**: Any RGB image -> **Output**: Denoised (same size)
- **Architecture**: Multi-Dconv head transposed attention, U-Net encoder-decoder
- **Source**: [swz30/Restormer](https://github.com/swz30/Restormer) (Apache-2.0)
## Parity Verification
All models pass the CrispEmbed diff harness (Python reference vs C++ engine):
| Model | cos_sim | Status |
|-------|---------|--------|
| TBSRN | 0.999985 | PASS |
| PAN | 0.999654 | PASS |
| HAT | 0.999990 | PASS |
| DAT-light | 0.999956 | PASS |
| Restormer | 1.000000 | PASS |
## Usage with CrispEmbed
```python
from crispembed import CrispPanSr, CrispDatSr
# PAN: 4x upscale
sr = CrispPanSr("pan-x4-f16.gguf")
out, ow, oh = sr.process(pixels, width, height)
# DAT: 2x upscale (higher quality)
sr = CrispDatSr("dat-light-x2-f16.gguf")
out, ow, oh = sr.process(pixels, width, height)
```
```bash
# CLI
crispembed --pan-model pan-x4-f16.gguf --pan-sr input.png > output.ppm
crispembed --dat-model dat-light-x2-f16.gguf --dat-sr input.png > output.ppm
```
## License
Apache-2.0 for all models except HAT (MIT). Both licenses are permissive.