millardjn / rusty_sr

Deep learning superresolution in pure rust
204 stars 20 forks source link
deep-learning machine-learning neural-network rust

Rusty_SR

LogoNNLogoLinLogo

A Rust super-resolution tool, which when given a low resolution image utilises deep learning to infer the corresponding high resolution image. Use the included pre-trained neural networks to upscale your images, or easily train your own specialised neural network!
Feel free to open an issue for general discussion or to raise any problems.

Usage

To upscale an image:
rusty_sr.exe <INPUT_FILE> <OUTPUT_FILE>

PNG output files are recommended.

For further options:
rusty_sr.exe --help
rusty_sr.exe train --help

Setup

To get the rust compiler (rustc) use rustup. For best performance compile using environmental variable RUSTFLAGS="-C target-cpu=native" and a release mode build cargo build --release.
Or in one line: cargo rustc --release -- -C target-cpu=native.

Examples

Set14 Cartoon
CartoonLowResCartoon

Set14 Butterfly
ButterflyLowResButterfly

Bank Lobby (test image for Neural Enhance)
CC-BY-SA @benarent
BankLowResBank

Note

Attemping to upscale images with significant noise or jpeg artefacts is likely to produce poor results. Input and output colorspace are nominally sRGB.

License

MIT