 |
JavaEye - EyeToy -like Control
Summer of Code
Status:
I've finished the learning of JMF stuff, quite funny and easy to use (compared using DirectX to access webcam). I decided to use chroma detection for separting the image of user and background because it is simpler and quite accuracy compared with motion and edge detection. (Although it means a simple calibration will be needed). On the other hand, Deron and paulby have just emailed me about adding Gesture Detection of LG into JayaEye . It sounds great. Anyway, there are many stuff needs to be done and i found that it is quite easy to out of scheduel I will hurry up !!!
Platform using:
Currently Windows, using Netbeans 4.1.
Introduction:
Has anyone watched Minority Report? Have u seen Tom Cruise just use his hands moving in a 3D space to control the computer? Do you want to do it in the next generation Java Desktop? If yes, I can make it to become true.
Description and Explanation of the Projects Approach:
The philosophy of design is simple, because of the worrying of Sun on capability. It is better to use and stick on cheap/easy-to-buy device. My design uses WebCam as an input device to serves as complement or alternative for above design. Just like EyeToy , by using some sophistic algorithm, computer can distinguish users with background without using blue screen. Machines can react with user based on users’ movement gesture and touching (e.g. press button, move windows, etc). The idea is nothing new, there are many products using such technology. EyeToy is one of examples, another example is iCamPlay (http://www.balrogsoftware.com/icamlicence.html), iCamPlay is a library for motion, chroma and edge detection for webcams using Video For Windows, this library can be used not only for games, can be used for education, multimedia, bussiness, etc. (ref. iCamPlay Help Files). iCamPlay, however, is not open source and based on Win32 which cannot be cross platform (main advantage of Java) and limits its usage. In my project, I will build an iCamPlay-like library (JavaEye ) and apply it into LG3D . It is not difficult to do so because the algorithm is available. The concept of WebCam -based control and gesture monitoring has won Easy Finder - Trading Express Entrepreneur Contest (2004) and Category Awards in Health Care & Personal Devices of PolyU -IDT Innovative Entrepreneur Contest (2005). Thanks for JavaEye , users can easily to control LG3D in a Cyber 3D way, users can:
- Start / Close an Application
- Maximize/Minimize/Focus a running application
- 3D movements for Windows
- Button pressing
- Virtual Keyboard stimulation
- Implementing an batch focus mechanism, e.g. Close/Minimize all windows
- Order user-define command based on hands gesture.
- Etc… Depend on the creativity of future developers
Benefits:
- Stick on cheap/easy-to-buy device.
- Users do not need to wear or attach/touch any devices, just move their hand or body.
- User can set hand gesture for faster program opening and command applying.
- Cyber and more 3D feeling, not just in 3D visual, but also 3D touch sense.
Deliverables:
Here are items which will be deliverable after the end of SoC :
- Code: It is the main part of project. The code will be written in OO format and will be encapsulated as easy assessed API in order to facilitate the use of other developers.
- Javadoc of Code: It served as Help file for Code. The javadoc will include the Hierarchy of different objects, the overview of members and functions inside objects and little description and usage method about them. So that other developers can use it as reference when using or modifying the code.
- An executable prototype: It is as important as the code itself, so that mentor and other users can feel the usage of JavaEye instantly. It is also important for user behavior analysis later on so that we can know how users react with the JavaEye , and hence, how to improve and adjust it when there are something wrong
- User behavior record: The behaviors and reactions of users will be fully recorded through video. The methodology of user behavior testing will also be designed and documented. It is useful because other developers can use it as reference and even insight for future development.
- User document: A user document about the usage of JavaEye and FAQ will also be written in order to teach super-beginners to use JavaEye .
Schedule:
From experience, the most time-consuming part of software development is not coding but debugging and maintenance. On the other hand, good planning is the key to eliminate wrong development approach and bad OO style writing, and hence, reduce the chance of bugs and code redundancy. In brief, reduce the cost of debugging and maintenance later on. Therefore, my time schedule will focus on “Concept and Code design” plus “Testing and Debugging” (main focus) in order to ensure the high quality of code. Here is my time schedule in the nine weeks:
- Use Case, interface design, OO design, code testing method design, learn lg3d dev, etc: 3 weeks
- Implementation (Code writing) : 2 weeks
- Test, debugging and adjustment: 4 week.
Projects experience:
I have done a final year project for my university with topic “Virtual Reality Assessment System for peoples with disabilities”. It was focusing on making use of cheap innovative input device P5 Glove (http://www.essentialreality.com/) and iCamPlay (http://www.balrogsoftware.com/infoicam.html). By combining them with a Virtual Reality Game, the system can train the motion abilities of disabled peoples due to stroke and assess their progress. This project also won First winner up in Easy Finder - Trading Express Entrepreneur Contest (2004) and Category Awards in Health Care & Personal Devices of PolyU -IDT Innovative Entrepreneur Contest (2005). The project is written by Delphi 7.0 plus OpenGL . Besides, I have taken Database and Data Structure Course in my university and very familiar in it. I also have software development experience in single in sourceforge.net, I am developer of SimpleBT , an easy-use BitTorrent Client (http://sourceforge.net/projects/simplebt/) and DelphiBT , a Delphi BitTorrent Component (http://sourceforge.net/projects/delphibt/). They made me familiar in the operation of open source community. Unfortunately, due to the heavy workload of university life, the projects were paused for some time.
Knowledge:
Programming Languages: Delphi, Visual Basic, Java, LISP, Visual C++/C#, SQL, x86 assembly, mikropascal (for PIC1320 chip)
3D Drawing: Maya, 3D Studio Max, MilkShape 3D
Familiar OS: Windows XP, Linux (Red hat)
28 July 2005
|