Portfolio Project

Sheet Music Watermark Removal & Upscale

UNet & VDSR Pipeline

Machine Learning Python Computer Vision
Preview image for Sheet Music Watermark Removal & Upscale

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.

Links