That has always been one of those pet projects I keep meaning to take another crack at. Once a year or so I spend a weekend toying around with opencv in python and see what I can do.
Unlike the parent post I've always wanted to solve it geometrically, not visually. Think solving a puzzle from the backs of the pieces.