Head Tracking Demo


Language: [ English | Русский ].


The Head Tracking Demo can be used to:

  • Track user's head in real time in 3D space with 6 degrees of freedom (3DOF translation+3DOF rotation)
  • Select one of 4 available head/face models (2D rectangle, 3D cylinder, 3D ellipsoid, Candide-3)
  • Using a web camera, an AVI video file or syntheticly generated video sequence as a source of input video
  • Use the demo as hands-free mouse cursor (Kalman noise filtering is used to compensate tracking noise)
  • See what happens inside the program with help of various helper windows (model texture, confidence map, template, incoming frame)
  • Make snapshot images and record output video to an AVI file
  • Create text log file that contains information about head position, orientation, tracking time, processing time for each incoming video frame

For example, watch how the program processes couple of video clips publically available at http://www.cs.bu.edu/groups/ivc/HeadTracking.



Selecting a Video Source

There are three types of video sources you can select:

  • Synthetic source
  • Web camera (the default)
  • An AVI video file

Click the Play button on Playback toolbar to select the default video source (a web camera). If you don't have a web camera, the synthetic source will be chosen.
Or open File menu and choose

  • File| Use Web-camera to select web camera wideo source
  • File | Use synthetic video to chose the synthetic source
  • File | Use video file... to select a video file from an Open File dialog that appears.

Playing the Video

Use File | Play to play the video source you have previously selected. Use File | Pause to pause the playback. Or use you can use Play/Pause button of the Playback toolbar.

Use File | Stop to stop the video. Or use you can use Stop button of the Playback toolbar.

Snapshots and Video Recording

You can make a snapshot of the output video by using File | Make a snapshot... menu item (or press F6). This will open Save File dialog where you can enter file name for snapshot file. You can make shapshots when you have selected the video source and pressed Play.

You can use File | Record Video... menu item to enable video recording mode. Use File | Stop recording video to disable recording. Video can be recorded to an AVI file.

Enable Head Tracking

Open File menu and choose Enable Head Tracking menu item (or press CTRL+F9 key combination). This will enable head tracking mode. When tracking mode is enabled, you can see the white mesh showing  current head position and orientation. When head moves and rotates with 6 degrees of freedom, the mesh moves and rotates too.

To turn off the tracking mode, press CTRL+F9 again.

The Track head button on Playback toolbar also allows to enable/disable object tracking mode

Sometimes head tracker looses the head. In such case, look directly to camera and press ALT+F9 to reinitialize tracker. The File | Reinitialize head tracker does the same.




Select a Head Model

There are four face/head models available:

  • 3D Cylinder is the default one
  • 3D Ellipsoid
  • Flat Rectangle
  • Candide-3

You can select a head model by opening Options menu and choosing one of Head Model subitems. A selected head model is then used for head tracking.





Mouse Cursor Control

You can use this program to control your screen mouse cursor.

Open File and choose Mouse Cursor Control menu item or press CTRL+F5. This will enable the mouse cursor control mode. To turn off the mouse cursor mode, press CTRL+F5 again.

Cursor properties toolbar.

The Mouse Cursor Properties toolbar is shown on the screen when you enable the mouse control mode. The cursor properties toolbar has the Enable button that allows to enable or disable mouse cursor mode.

  • Mouse Sensitivity trackbar control allows to regulate the mouse sensitivity.
  • Mouse mode may be one of the following:
    • Absolute mode position (default). In this mode the cursor absolute screen positon is directly controlled by head orientation. Note that in this mode your usual mouse device has no effect on screen mouse cursor
    • Joystick mode. In this mode the change of head orientation results in increment of mouse cursor position (acts like a joystick). In this mode you can use your usual mouse device in conjunction with this program.
  • Force Enable Tracking. Since head tracking is necessary for mouse control, this flag allows to enable tracking automatically when mouse control mode is enabled.
  • Invert horizontally/Invert vertically. Use this for conveniense when you need to invert the direction of cursor movement.
  • Use Kalman filtering checkbox allows to enable/disable use of noise filtering. The filtering allows to avoid cursor shaking.


Krivtsov O. An Analysis of Performance and Accuracy of a Video Head Tracking System / O. Krivtsov, A. Korikov // In Proceedings of 15th International Conference 'Modern Technique and Technologies', Russia, Tomsk, May 4-8, 2009, p. 113-115.

Read article text: krivtsov_korikov_analysis_09.pdf
Watch presentation: krivtsov_ctt09_presentation.pdf

BibTex reference:

author = "Oleg Krivtsov, Anatoly Korikov",
title = "An Analysis of Performance and Accuracy of a Video Head Tracking System",
booktitle = "
Proceedings of 15th International Conference 'Modern Technique and Technologies'",
year = "2009",
month = "may",
publisher = "TPU Press",
address = "Tomsk, Russia",
pages = "113--115"


This program had been demonstrated in proceedings of regional conference "Electronic devices and control systems: results of electronics and IT-technologies development program in Tomsk region", Tomsk, Sept. 29-30, 2008.

BibTex link:

author = "Олег Кривцов",
title = "Управление курсором мыши путем отслеживания наклона головы пользователя",
booktitle = "Материалы докладов молодежной пятой научно-практической конференции 'Электронные средства и системы управления: итоги реализации программы развития электроники и IT-технологий в томской области'",
year = "2008",
month = "сентябрь",
publisher = "В-Спектр",
address = "Томск, Россия",
pages = "190--195"

Download full text (KrivtsovOA-S1.pdf).

Download presentation (presentation.pdf).

Watch demo videos:





Research and implementation by Oleg Krivtsov, 2008. 

My E-mail: olegkrivtsov@mail.ru 

Tomsk State University of Contol Systems and Radioelectonics

Advisor: Anatoly Michailovich Korikov, Doctor of Science, Chair of Automated Control Systems Dept. of Tomsk State University of Contol Systems and Radioelectonics

Terms of Use

This software and all associated files are Copyright 2008 by Oleg Krivtsov. This software is provided for personal demonstration only. You may not use the software or any derived work for any commercial purposes. The sofware is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.


Please carefully read the Terms of Use above before download.

The latest stable version (March, 14 2009)

HeadTrackingDemo_14032009.zip (Status: alpha4; Size: 1,8 MB; OS: Windows XP)


-add: Error messages are now shown when can't open web-camera or video file
-fix: Video resolutions other than 320x240 were handled incorrectly
-add: ALT+F9 global hotkey for head tracker reinitialization
-fix: Couldn't open User Guide from Help menu

Previous versions:

  1. HeadTrackingDemo_13032009.zip (Status: alpha3; Size: 1.6 Mb; OS: Windows XP)
  2. HeadTrackingDemo_19112008.zip (Status: alpha2; Size:1.44 Mb; OS: Windows XP)
  3. demo_27092008.zip (Status: Alpha; Size: 1.45 Mb; OS: Windows XP)
  4. demo_08092008_pre_alpha.zip (Status: Pre-alpha; Size: 1.6 Mb; OS: Windows XP)