Number plate recognition with Tensorflow

Header

Applying convolutional neural networks to the problem of automatic number plate recognition. Synthesized number plate images are used to train a TensorFlow network which is then used to detect number plates in real-world images. Read more.

12 years in 15 seconds: Aligning and condensing a self-portrait time-lapse

Header

Following from my previous experiments with face alignment, I got to thinking if the same techniques could be applied to photo-a-day time lapse projects, such as Noah Kalina's 12.5 year (and counting) epic. It turns out they can; in this post I explain how I smoothed out this video. Read more.

Making faces with Haar cascades and mixed integer linear programming

Header

In 2001 Viola and Jones introduced their successful face (and other object) detection algorithm, based on so-called Haar-like features. This post describes how I used mixed integer linear programming (MILP) and Python to write a script which inverts this algorithm; instead of detecting faces in an input image, it will generate an image of a face. Read more.

Solving the GCHQ christmas card with Python and pycosat

Header

For Christmas 2015, the director of British spy agency GCHQ released a Christmas card featuring a grid-shading puzzle. This post describes a Python script to solve the puzzle (which can also be applied to similar puzzles), which uses a SAT solver to find the solution. Read more.

Creating a Pluto flyby using unaligned New Horizons images

Header

In the months leading up to NASA's historic flyby of Pluto, the New Horizons probe took a series of pictures of the dwarf planet as it approached. This post describes how I used Python to turn these unaligned images into a flyby animation. Read more.

Switching Eds: Face swapping with Python, dlib, and OpenCV

Header

Automating the algorithm from the previous post. Facial landmarks are detected using dlib. Alignment, colour correction, and blending is then done with numpy and OpenCV. Read more.

Face swapping with The GIMP

Header

A methodical technique for face swapping in the GIMP. The approach replaces the face of a person in one image with the face of a person in another image. Read more.

Bresenham and Efficient Pulse-Width Modulation

Header

A (re)derivation of an efficient algorithm for performing pulse-width modulation. The algorithm is closely to Bresenham's line algorithm. Read more.