Machine learning methods for “super-resolution” or “upscaling” are more accessible than ever. I was looking to make some out-of-print playing cards for Arkham Horror LCG, but I needed to upscaled my reference images by a 4x to achieve good printing quality. After some research, I found the Keras implementation of upscaling at https://github.com/krasserm/super-resolution to be an excellent option.
Using the EDSR x4 baseline with sample trained weights gave excellent results from PNG input images. The left image shows an upscaled sample, and the right image shows the input data. The images processed from 300×419 pixels to 1310×1778 pixels with the addition of bleed areas to improve the printing results.
When using input PNG images, artwork, text, and symbols all show excellent upscaling behavior even as they interpolate 90% new information.
On the other hand, compressed JPG input images deliver lower quality and more prominent artifacts. The left images show an upscaled sample, and the right images show the input data. Although the input JPG images have the benefit of being 31-33 KB as compared to the input PNG images at 230-280 KB, the noise introduced by the compression limits the fidelity of the upscaling process. Good to know!