About this project
iSeeBetter is a Python/PyTorch research implementation for video super-resolution associated with a 2020 Springer Journal of Computational Visual Media paper and a Stanford CS230 project. The method is designed to generate higher-resolution video while using temporal information from neighboring frames instead of treating every frame independently.
The generator is a Recurrent Back-Projection Network with single-image and multi-image super-resolution paths. The multi-image path combines the current low-resolution frame with neighboring frames and precomputed dense optical-flow maps. The discriminator is taken from SRGAN. Training uses a four-part loss consisting of MSE, perceptual, adversarial, and total-variation losses.
Optical-flow support is provided through Pyflow, a Python wrapper for Ce Liu's Coarse2Fine Optical Flow implementation. The repository includes Pyflow binaries for Ubuntu and macOS with Python 3.7 and provides commands for rebuilding it if needed.
The documented training data combines SPMCS, Vid4, Vimeo90K, and additional YouTube clips. Low-resolution frames are produced through 4x bicubic downsampling, and rotation, flipping, and random cropping are used as augmentation. DatasetFetcher.py can retrieve Vimeo90K, and links are provided for SPMCS and Vid4.
The required packages include torch, pytorch-ssim, numpy, scikit-image, tqdm, and opencv-python. After installing requirements and building Pyflow, training is run with iSeeBetterTrain.py and testing with iSeeBetterTest.py. The --upscale_only option disables initial downscaling. A model trained for four epochs is included in the weights directory.
The repository also contains paper links, architecture diagrams, evaluation examples, a poster, citation information, and credits to the referenced SRGAN and RBPN-PyTorch implementations.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.