Boston Night Flight

Introducing Deepo

Given the current state of deep learning research and development, we may need to play around with different frameworks (e.g., PyTorch for research and fun, Caffe2 for edge device inference, etc). However, setting up all the deep learning frameworks to coexist and function correctly is tedious and time-consuming.

So I made Deepo, which contains a series of Docker images that

and their Dockerfile generator that

Read More…

Aloha Hawaii

2017-07-27 092607

Real-time Bilateral Filtering

Many users have become accustomed to reducing wrinkles, freckles, and various blemishes from human subjects for a more visually appealing image or video. This can be achieved by applying an edge-preserving filtering called bilateral filter. However, a vanilla bilateral filter typically has a high computational cost necessitating a powerful CPU / GPU to process images in real-time. So I had been looking for an efficient alternative algorithm, and finally found

Qingxiong Yang. Recursive bilateral filtering. European Conference on Computer Vision 2012.

that can achieve a good trade-off.

I made a lightweight C++ library for this algorithm, and obtained the following results (RecursiveBF):

Original Image RecursiveBF (18ms)
Original Image RecursiveBF (18ms)
Read More…

Get Lost in Moscow Metro

It is easy to get lost in Moscow Metro if you don’t know Russian and have never been to Moscow. But it’s fun as I’m gaining new experiences and challenging my boundaries in an unfamiliar land with unfamiliar people. BTW, Moscow subway stations are so beautiful and grandiose. It’s like visiting a museum.


Cycling from Amsterdam to Purmerend


Read More…

SIFT Cheatsheet


Implementing Wavelet Rasterization

Wavelet rasterization is a method for analytically calculating an anti-aliased rasterization of arbitrary polygons or shape bounded by Bezier curves. For more details, please read the following paper:

Manson, Josiah, and Scott Schaefer. Wavelet rasterization. Computer Graphics Forum. Vol. 30. No. 2. Blackwell Publishing Ltd, 2011.

This is a python implementation of the algorithm. Currently it supports three types of contours:

  • Polygon
  • Quadratic Bezier Contour
  • Cubic Bezier Contour
Read More…