Wednesday, 20 April 2011

Head Tracking Glasses-free 3D on Android

Introducing "Head Tracking 3D" on Android devices, currently only tested on Notion Ink Adam due to the single front facing camera (which can also be rotated to face the rear) and the fast processing speed of Dual Core Cortex A9 processor.

"Head Tracking 3D" is developed in response to the "Head Tracking for iPad: Glasses-Free 3D Display".

"Head Tracking 3D" is mostly based on my previous Android App "3D Depth Cues Demo for Android", which is introduced during a conference MOSC 2010. More descriptions can be obtained here. The App already has all the 3D rendering using OpenGL and the camera preview ready as shown below.

The "3D Depth Cues Demo" itself is inspired by Johnny Lee's Wiimote project "Head Tracking for Desktop VR Displays using the Wiimote" shown below.

The credit also goes to JavaCV, a Google Code project on Java Interface to OpenCV, which brings a much faster face detection to Android using Haar-like features (cvHaarDetectObjects), compared to the Android built-in face detector . The main modification that I have done to the JavaCV demo App is to use the minimum camera preview size as shown below.

The App "Head Tracking 3D" can be obtained from Android market (OK, it does not make sense to have an app mainly for Notion Ink Adam to be in the Android Market despite the fact that NI Adam is not suppose to have the Android Market, I will post it to Notion Ink Hacks).


mirage93i said...

The application(means camera) does not work on LG Optimus one. Are you going to share sources? We can try to support this phone.

Unknown said...

The LG Optimus one is on what Android version? If it is prior to 2.3, it only works with rear facing camera.

mirage93i said...

Not LG Optimus One but LG optimus 2X.
Version is 2.2 and demo works with rear camera but not so good. I think it is possible to support frontal camera for this phone. It was the reason of my question about source codes.

Unknown said...

Doesn't like using the evo front camera - its trying to use the back one...

micke said...

I only get the image of my face :( What do I need to do to get the 3d? I am on a nexus 5 btw