Portfolio Project
Sheet Music Watermark Removal & Upscale
UNet & VDSR Pipeline
Context
I needed clean, readable sheet music. Most of what I could find was low-res and watermarked.
Approach
- Trained a UNet model on 20,000+ paired pages for watermark removal.
- Upscaled 612×792 scans to 1700×2200 with Very Deep Super-Resolution (VDSR).
- Wrapped it in a simple GUI so I could run the full pipeline.
Impact
- Typical runs produce clean, readable output in under 10 seconds.
End-to-End Pipeline
One workflow: pull pages, clean them up, upscale them, and rebuild the PDF.
- Input: low-resolution, watermarked page images.
- Step 1: remove watermark artifacts with a UNet model.
- Step 2: upscale with VDSR for print-friendly pages.
- Output: cleaned images compiled into a PDF.
Modeling Choices
- UNet handles local watermark artifacts while preserving staff lines and note heads.
- VDSR improves readability when starting from low-resolution scans.
- Saved model weights so the pipeline runs without retraining.
GUI and Automation
- Built a PyQt5 GUI to scrape, process, and compile pages without running a notebook.
- Used background worker threads so the UI stays responsive during batches.
- Designed it for repeat use: new songs in, clean PDFs out.
Performance and Reliability
- Kept it fast enough for real use (often under 10 seconds).
- Added sensible defaults and a simple flow so it runs without tuning.
- Kept steps modular so either model can be swapped or improved later.
What I'd Improve
- Add tiled inference for very large pages and better memory usage.
- Measure quality with objective metrics (PSNR/SSIM) and small human readability tests.
- Explore more modern restoration approaches for better note/staff preservation.