← all work classical-computer-vision

Old photo restoration

[![Python 3.10+](https://img.shields.io/badge/python-3.10+-3776AB?logo=python&logoColor=white)](https://www.python.org/)

Result

SrPhotographFaded + damagedTeleaNavier–Stokes**Iterative masked mean**Harmonic diffusion
1girl in a red hat · strong red cast16.3 dB20.7 dB20.7 dB**20.8 dB**20.3 dB
2young woman · dark background14.6 dB19.3 dB**19.5 dB**19.4 dB19.1 dB
3man outdoors · bright sky behind12.2 dB17.5 dB17.9 dB18.1 dB**18.6 dB**
4two men indoors · flat corridor light15.5 dB20.2 dB20.4 dB20.0 dB**21.1 dB**

The finding

What it does

`mermaid flowchart LR A[Clean photo
known exactly] --> B[Fade it
dye loss, yellowing, flat tone] B --> C[Scratch it
exact damage mask retained] C --> D[3 damage detectors
find the mask for themselves] C -.the TRUE mask.-> F D --> E[4 inpainting methods] E --> F[Score: PSNR on the
DAMAGED PIXELS ONLY] C --> G[6 fade corrections] G --> H[Score: cast error vs the
original, and LAB chroma] F --> I{Where did the
decibels actually go?} H --> I

style C fill:#fef3c7,stroke:#d97706 style F fill:#fee2e2,stroke:#dc2626 `

Because the damage is generated, three things are known that a real archive scan cannot give you:

That second row is the project. Every restoration demo shows a before and an after; almost none shows what the same pipeline would have produced if it had been handed a perfect mask, which is the only way to tell whether the method or the detector is the limiting factor.

---

Figures

ui_all_fades.png
ui_all_fades
ui_all_methods.png
ui_all_methods
ui_detector_matrix.png
ui_detector_matrix
ui_main.png
ui_main
ui_method_matrix.png
ui_method_matrix
ui_pixel_matrix.png
ui_pixel_matrix
ui_tone.png
ui_tone
ui_width_sweep.png
ui_width_sweep

Elsewhere

Code and full results on GitHub (code private)

Every number is read from the file the run produced. github.com/hammasbuilds · kaggle.com/muhammadhammas13