Simon Niklaus, Ph.D.
Splatting-based Synthesis for Video Frame Interpolation
Simon Niklaus, Ping Hu, and Jiawen Chen
While deep learning has brought significant improvements to the area of frame interpolation, using a neural network to synthesize an image is prohibitively expensive. In contrast, we propose to synthesize frames purely based on splatting.
arXiv DOOM
A video game parody of the ever-increasing number of arXiv papers. It allows you to fight the one hundred most-recent papers in the cs.CV category in a first person shooter with a DOOM aesthetic. Begin your journey to reject them all.
Project Inbetween
Being able to take pictures at a whim has left me with collections where many photos look alike. Given similar images, could we animate a transition between them to help us cherish past moments? This is what Project Inbetween is about.
Dark Papers
One of the few realms that do not have a dark mode yet are academic papers. This is for obvious reasons but I nevertheless wanted to give it a try to see how a dark mode academic paper would look like. Printing not recommended.
Revisiting Adaptive Convolutions for Video Frame Interpolation
Simon Niklaus, Long Mai, and Oliver Wang
We show, somewhat surprisingly, that it is possible to achieve near state-of-the-art frame interpolation results with an older and simpler approach, namely adaptive separable convolutions, through a subtle set of low level improvements.
Learned Dual-View Reflection Removal
S. Niklaus, X. Zhang, J. T. Barron, N. Wadhwa, R. Garg, F. Liu, and T. Xue
Typical dereflection algorithms either use a single input image, which suffers from intrinsic ambiguities, or use multiple images from a moving camera, which is inconvenient. We instead propose an algorithm that uses stereo images as input.
NES Memoryview
The working memory of early computers is quite small. It is so small in fact, that we can plot the history of values of each byte in memory. This demo is a NES emulator together with a time series for each byte in the 2 KB of working memory.
Softmax Splatting for Video Frame Interpolation
Simon Niklaus and Feng Liu
Backward warping has seen broad adoption in tasks like optical flow estimation. In contrast, forward warping has seen less attention since it is unclear how to do it well. It can play a key role though, which is why we propose softmax splatting.
3D Ken Burns Effect from a Single Image
Simon Niklaus, Long Mai, Jimei Yang and Feng Liu
The popular Ken Burns effect is an effective tool for animating still images by zooming into them. We extend this effect into the third dimension and propose a framework that, given just a single image, creates an immersive 3D zoom effect.
Moving Stills
We all take pictures to capture events that are dear to our heart. And while taking pictures is fun, viewing them could be more exciting at times. We breath new live into these pictures, ultimately helping us cherish and celebrate past moments.
Context-aware Synthesis for Video Frame Interpolation
Simon Niklaus and Feng Liu
A popular framework for novel view synthesis is to warp pixels and then refine the outcome using a neural network. But why warp only in color space? We show that also warping the input in feature space helps with and improves the refinement.
Visual Computing
A class that I taught at Portland State University when I was a Ph.D. student. It covered the basics of computer vision and deep learning with a heavy focus on implementing the subject matter in Python using OpenCV and PyTorch.
WASM Raytracer
How fast is WebAssembly compared to vanilla JavaScript? I wanted to find out and implemented a simplistic raytracer with the same logic in JavaScript as well as C++ and used Emscripten to compile the C++ version to WebAssembly.
Video Frame Interpolation via Adaptive Separable Convolution
Simon Niklaus, Long Mai, and Feng Liu
A recent approach to perform video frame interpolation convolves input frames with spatially-varying filter kernels. We show that these kernels are separable, which improves computational efficiency and interpolation quality.
Web Development
A class that I established at Portland State University when I was a Ph.D. student. I wanted students to obtain some practical web dev skills, and this class ended up being fully booked every time within minutes of the registration opening up.
Video Frame Interpolation via Adaptive Convolution
Simon Niklaus*, Long Mai*, and Feng Liu
Frame interpolation is typically done in two steps, motion estimation and compensation. However, this heavily depends on the quality of the motion estimation. We instead propose a single-step approach through spatially-varying convolutions.
Rotating Pipes
A classic puzzle game where you have to rotate pipes such that they all connect with each other. It uses minimum spanning trees to generate the puzzles, which is implemented in C++ and run in the browser through WebAssembly.
Rollercoaster Map
I consider Rollercoaster Tycoon as one of my guilty pleasures of past times. While my parks are nothing noteworthy, there are some talented people out there, I still thought it would be fun to visualize and share them as a virtual map.
Connect Four
A connect four game, directly playable in the browser against a computer opponent with a configurable difficulty. The computer is implemented in C++ using negamax search with alpha-beta pruning and executed through WebAssembly.
Mini Chess
A miniature version of chess, playable directly in the browser against a computer opponent on different chess boards. The computer has a configurable difficulty and is implemented using negamax search with alpha-beta pruning.
Artificial Intelligence
A class that I taught when I was a Ph.D. student at Portland State on behalf of my dear friend Bart Massey. It covered the theory and practice of finding optimal and satisfying solutions to one-player and two-player combinatorial games.
Youtube Watchmarker
Youtube keeps track of your watch history and automatically marks seen videos. However, they only mark recently watched videos, which is kind of disappointing. This addon fixes this issue and keeps track of your entire watch history.