Awesome
head-pose-estimation
Real-time head pose estimation built with OpenCV and dlib
<b>2D:</b><br>Using dlib for facial features tracking, modified from http://dlib.net/webcam_face_pose_ex.cpp.html
<br>The algorithm behind it is described in http://www.csc.kth.se/~vahidk/papers/KazemiCVPR14.pdf
<br>It applies cascaded regression trees to predict shape(feature locations) change in every frame.
<br>Splitting nodes of trees are trained in random, greedy, maximizing variance reduction fashion.
<br>The well trained model can be downloaded from http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2
<br>Training set is based on i-bug 300-W datasets. It's annotation is shown below:<br><br>
<br><br>
<b>3D:</b><br>To match with 2D image points(facial features) we need their corresponding 3D model points.
<br>http://aifi.isr.uc.pt/Downloads/OpenGL/glAnthropometric3DModel.cpp provides a similar 3D facial feature model.
<br>It's annotation is shown below:<br><br>
<br><br>
Finally, with solvepnp function in OpenCV, we can achieve real-time head pose estimation.
<br><br>