[beagleboard-gsoc] Low cost AIO device for homes

8<-----

This sounds like it might be 2 projects rather than just 1, unless
you feel you can really complete all this in the summer.

Maybe the 1st core project is the smart TV / media center / bittorrent
portion. Making that work easily for others would be interesting and
useful if it hasn't been done yet for the bone. Adding on the gaming to
this would be a natural fit once the core works well, I'd think. Would
you leverage XBMC / MythTV to do some of this portion or are you
thinking of something else?

The home security / home automation / IOT portion maybe is another
project. What kinds of existing devices would you integrate? I don't
think you'll have time to do this plus create the sensors and there
should be plenty of off-the-shelf ones to choose from.

Both of those would need some kind of web server interface to manage
it, so that (7) is a given in my eyes.

-Andrew

Thanks Mr. Andrew for the reply.
CORE 1 (Phase 1)
The smart TV+ media center +bittorrent can be implemented by leveraging on a linux disto (GNOME based +ice cream shell ?!) with XBMC+Mythtv/TVheadend.
Though lots of customizations are required for enhanced performance as a media center. I plan to implement the gesture recognition support using OpenCV (may be the DSP acceleration enabled OpenCV) and the voice control using Julius/HTK or with MATLAB using the beagleboard support from simulink.

And i think Home security+Home automation +IOT implementation will become easier once the CORE 1 (Phase 1) is completed. As enabling IOT on a smart TV will be only weeks ahead. And since it’s planned with a zigbee network, integrating the off-the-shelf zigbee sensors and actuators will become easier and this will eliminate the need to build custom sensor modules.
So, I think accomplishing all the proposed goals within the GSOC is possible.

Thanks Mr. Andrew for the reply.
CORE 1 (Phase 1)
The smart TV+ media center +bittorrent can be implemented by leveraging on a linux disto (GNOME based +ice cream shell ?!) with XBMC+Mythtv/TVheadend.
Though lots of customizations are required for enhanced performance as a media center. I plan to implement the gesture recognition support using OpenCV (may be the DSP acceleration enabled OpenCV) and the voice control using Julius/HTK or with MATLAB using the beagleboard support from simulink.

Do you have any prototype to work with for gesture recognition? I’d need some convincing you are knowledgable enough to perform sufficiently optimized gesture recognition using OpenCV.

Sorry for the delay in the reply Mr. Kridner. I was developing a sample application to demo the gesture recognition using the techniques i already know of. I couldnt make a working system in 5 hrs and the time for submitting applications (may 3) is running out so i thought i should stop that and post the way i’ll proceed.

For the gesture recognition, my approach will be :

  1. Creating/Obtaining a haar classifier cascade for open and closed hands.

  2. Use the haar classifier to detect hands.

  3. Use cvFindContours() to find the contours and the contour’s area using cvContourArea(). Setting a realistic threshold for the area or taking the contour with the maximum area, results in a container (a cvSeq object) .

  4. The point sequence from the contour can be extracted and the convex hull of those points can be found using cvConvexHull2().

  5. The convexity defects can then be computed using cvConvexityDefects.

  6. The convexity defects points can then be used to draw an approximate polygon. This can be compared with pre defined polygon shapes to recognise a particular gesture.
    First of all the haar classifer can be either obtained from already trained classifer or can be trained using free hand image databases like the UST hand image database. Alternatively a more rigorous approach will be to train a classifier with different gestures directly but the above outlined approach seems to be more generalised and expandable according to me.
    At first, simple wave motions (photo browsing, e-book reading, web srufing, etc… any application that has a next button) and finger pointing can be recognised.
    Though i have developed applications for face recogntion, i haven't developed any application for gesture recognition as such but the concepts seems to be similar to me. I have had looks previously on Gesture recogntion toolkit ([GRT](http://www.nickgillian.com/software/grt)) but didnt find it mature enough to use.
    I can assure you that if i sit with the basic application that i develop using the above mentioned procedure, i can optimise it and come up with a reasonably good gesture recognition system.

I intend to use the K-curvature algorithm. (Forgot to mention in the previous post)