h2h: The Hand2Hand Human-Computer Interaction Project
Check out the ProjectStatus to see how things are coming along!
The Problem
Modern human-computer interfaces (such as the mouse, keyboard, joystick and gamepad) are very good at performing certain tasks, but usually involve subtle, bound movements over small spaces (think about the total area one uses moving a mouse or trackpad, or the stationary position of the hands while touch-typing). Interacting with environments that involve motion across spatial areas often require a kind of mental rewiring. The primary spatial environments users interact with using computers and the associated interface are video games, so they provide the best example of this. Game-playing often involves very little human motion: usually it is just constrained to the digits, and often just to the thumbs. This not only puts undue stress on a particular part of the human body and encourages boredom or inactivity, but it also precludes the possibility of a high level of interactivity and physical expression to go along with the high level of mental involvement most gamers experience during gaming.
Very passionate gamers may often be seen losing control of this bound movement, for example when vainly pushing their game controller down through the air as they try to get off some special move in a fighting game. There must be a better way.
Taking Advantage of Natural Human Motion
Motion Capture and Computer Vision techniques provide a way to allow a user to interact with a computer by way of more complex and energetic motion. Hand2Hand (h2h) is an attempt to provide one such mode of interaction. In short, the project provides the user with two quite natural controls: the human hands. By the movement of one hand from a base position in various directions, the user can control the speed and direction of movement. By the use of a combination of motion and gestures with the other hand, the user can provide two kinds of input: specific actions and intensity of action.
These two controls provide enough information to play games and use applications involving movement through space--modern non-game examples of which may be Google Earth, or 2D spatial or 3D interactive file system navigation.
Tentative Deliverables
A C library (libh2h) build upon Intel's OpenCV platform for reading captured video data from an input device such as a webcam and producing the video portion of the user interface (the updated IplImage), and which also tracks important characteristics such as left and right hand location, speed and direction as well as whether various templates have matched.
A user interface written in GTK+ which takes advantage of libh2h.
Timeline
Tuesday, November 1: purchase cheap but good USB web cam and make it work with OpenCV and raw video drivers under Linux. DONE.
Tuesday, November 7: have user interface written. DONE.
Thursday, December 8: have parts of h2h processor written, using OpenCV to be able to track some hand motions. DONE.
Tuesday, December 13: take tracking information and produce some output on the user interface. DONE.
Refinements beyond there...
This project is currently researched, maintained and worked on by Andrew J. Montalenti.
Using the Wiki
This is an open source project, and if you have any ideas, feel free to write them here. This wiki should be seen more as a "whiteboard" than as an actual "project homepage." I'll make a real homepage when we have some real deliverables.
Interesting starting points:
RecentChanges: see where people are currently working
WikiSandBox: feel free to change this page and experiment with editing
FindPage: search or browse the database in various ways
SyntaxReference: quick access to wiki syntax
SiteNavigation: get an overview over this site and what it contains
How to use this site
A Wiki is a collaborative site, anyone can contribute and share:
Edit any page by pressing Edit at the top or the bottom of the page
Create a link to another page with joined capitalized words (like WikiSandBox) or with ["quoted words in brackets"]
Search for page titles or text within pages using the search box at the top of any page
See HelpForBeginners to get you going, HelpContents for all help pages.
To learn more about what a WikiWikiWeb is, read about
WhyWikiWorks and the
WikiNature. Also, consult the
WikiWikiWebFaq.
This wiki is powered by MoinMoin.