Monthly Archives: February 2014

Using Face Detection to Manipulate 3D Objects

New methods of Human Computer Interaction are always interesting.  I’ve had a passing interest in how movement of the Human face can be used to manipulate 3D objects in design applications for a few months now, and decided to dig up a old project.

In 2012 I saw a video of this been done, and wanted to replicate it as a project to work on with my Google Mentor.  Unfortunately, the use of some large libraries was a bit beyond the knowledge of Python I’d picked up my first 6 weeks of University, so the project got put on hold.  Luckily, I’ve had some spare time in the last week to re-start this project and get it working, this time in Java.

The basic idea here is that as you move your head, a 3D cube rotates and zooms to match your head movement, as if you were looking at a real 3D cube.

The code is open source, so take a look and feel free to play with it and adjust it.  I’ve had a few problems with including the relevant libraries and setting the paths for the natives, so you will need OpenCV installed natively (and hence may have to adjust the build path), but after that all should be fine.  I’m aware that the build path needs changing on Linux when you install OpenCV with apt-get, but couldn’t find out what this path should be – let me know if you do!

Update 9/4/14 – LocateFace.java updated to include error detection (for outlaying locations where a face was detected) and error correction, if requested.