Tuesday, January 29, 2013

Gestures without Libraries, Toolkits or Training: A $1 Recognizer for User Interface Prototypes


Howdy!!! In this blog post, I'm going to explain in brief the $1 Recognizer for User Interface Prototypes. The inspiration for the project came from the idea that novice programmer or UI designers didn't have a lot of access to tools that would allow them to incorporate gesture- recognition in their designs due to limitations in programming skills, etc. The authors implemented the algorithm tested it using the following uni- stroke gestures:


Figure 1

The results were then compared with other sketch- recognition algorithms like Dynamic Time Wrapping (DTW) and Rubine algorithm. 

The gesture- recognition algorithm described in the paper works as follows in four steps
1.) Resampling: The points are re- sampled so that the template gestures and the gesture made by the user all have the same number of points. This is necessary as there is a point- point comparison between the gesture templates and the gesture made by the user.

2.) Rotate once based on the "Indicative Angle": To bring the user- made gesture in alignment with the predefined gesture templates, the user- made gesture needs to be rotated. The user- made gesture is rotated by the angle made between the centroid of the gesture and the first point of the gesture. This is a good approximation to the actual angle by which the gesture needs to be rotated. 

3.) Scale and Translate: The modified gesture from step- 2 is now scaled to a reference square and then translated so that the centroid of the gesture is at the origin.

4.) Find the optimal angle for the best score: Now, the following equation is used to compare each stored template to the user- made gesture:

Figure 2

The above formula calculates the path- distance between the user- made gesture and the predefined gesture templates. The formula below calculates a score:
Figure 3

size is length of the reference square used for scaling the gesture. The gesture template that gives the least value of di is the one that matches the most to the user- made gesture.

The evaluation shows that this simple approach is as effective as the other approaches like DTW and Rubine algorithm. With only 1 template per gesture, $1- algorithm performs pretty well and with 3 or more templates, it is excellent. 

Thus, the $1- sketch recognition algorithm can be used by anyone who doesn't have a lot of experience in the area but wants to incorporate gesture- recognition in their project. 

I used the following sources for this blog post:
[1] Proceeding UIST '07 Proceedings of the 20th annual ACM symposium on User interface software and technology. Pages 159-168. ACM New York, NY, USA ©2007

Thanks for reading my blog! Have a great and blessed day!

Gig'em!!!


Specifying Gestures by Example

SPECIFYING GESTURES BY EXAMPLES

Dean Rubine
Information Technology Center
Carnegie Mellon University
Pittsburgh, PA
Dean.Rubine@cs.cmu.edu

Hola! I'm going to give a short summary of the above mentioned paper. At the end, I'll express my view and opinion. 


The author, Dean Rubine, talks about GRANDMA, a toolkit that allows users to define gestures on direct manipulation surfaces and associate them with certain actions. The motivation for the project came from the fact that most of the systems using gesture recognition required users to hand- code the gesture- recognizer and this was a difficult and a complicated task. The author also talks about GDP, a gesture- based drawing program built using GRANDMA.

GDP
An example usage of GDP is as follows:

Figure 1

In the above example, the user draws a rectangle by making a 'L' gesture. An ellipse can be created by starting at the center of the ellipse and then making a circle. Part (d) shows how to "pack" multiple views together which enables the user to treat them as one object. Part (e) shows how to make copies of a drawing. Part (f) demonstrates the rotation scaling features. As it can be seen, it is very convenient to work with gestures using this system. Note that all the gestures are single- stroke.

Figure 2

Figure 2 shows how the class hierarchy of GDP system. The author explains the above diagram in detail in the paper. Then he proceeds to explain how sketch- recognition is done in the GRANDMA system.

When the gesture is made, all the points are recorded along with a time- stamp, that is, the time at which the points were drawn. 

Figure 3

Now, a set of features is constructed for the gesture. There are 13 such features as follows:


Figure 4

The above mentioned features are calculated for a gesture and then they are used to match the gesture with other predefined gestures already stored. The author explains how this statistical comparison is done. The evaluations show that this algorithm is very effective. It can be extended to support Eager Recognition and Multi- finger recognition. 

In my opinion, this can be a very useful tool for people who do not have a lot of experience in gesture programming. It is very easy to build a UI that supports gesture recognition using GRANDMA. I believe that  extending this framework to support more complicated gesture- recognition can prove to be very useful.

I used the following sources for this blog post:
[1] Proceeding SIGGRAPH '91 Proceedings of the 18th annual conference on Computer graphics and interactive techniques. Pages 329-337. ACM New York, NY, USA ©1991

Thanks for reading my blog! Have a great and blessed day!

Gig'em!!!

Tuesday, January 22, 2013

Sketch Pad

SKETCH PAD

Ivan E. Sutherland
Consultant, Lincoln Laboratory
Massachusetts Institute of Technology

Howdy! In this blog post, I am going to summarize and express my views and opinions on the above mentioned research paper. The author, Ivan Sutherland, talks about a simple and useful machine- human conversation system that he developed. It allows the user to draw shapes on the computer screen with the use of simple buttons, switches, light pen, knobs and a display system. 


(Figure 1) [1]

The system allows the user to draw lines, points, simple shapes like a circle and other things. The user can use the light pen to move around individual drawings. Simple shapes can be used to construct complicated patterns and shapes. The system's copy feature helps the user create a repetitive pattern as follows:


(Figure 2) [1]

The structure of the drawing is stored in the system so that stretching one part will move the entire drawing or change it as per the requirements demanded by the user. It turns out that this feature can be useful in many ways. Mechanical linkages can be drawn in the system and tested for stability and other parameters. It is also possible to draw circuit diagrams and test if the circuit works although this task becomes very cumbersome and time- consuming once the circuit gets more and more complicated. Drawing repetitive patterns is very easy with the help of this system.

I think that this is one of the greatest achievements in the field of computer graphics as this was the first system that gave the user an ability to communicate with the computer without the use of written commands. It opened the gateway for the field of computer graphics and computer- human interaction. The use of simple switches, buttons and knobs to draw complicated figures and to also save the design information that can be used later seems to be very sophisticated. I am very impressed by the approach that Ivan Sutherland used for designing the system. 

Ivan Sutherland also has other major accomplishments to his credit that have affected the modern world. He designed the first interactive graphics program (SketchPad), the first non- procedural programming language and the first object- oriented software system. Many consider him the creator of the field of computer graphics. 'When asked, "How could you possibly have done the first interactive graphics program, the first non-procedural programming language, the first object oriented software system, all in one year?" Ivan replied: "Well, I didn't know it was hard." ([2])

I used the following sources for this blog post:
[1] Proceeding DAC '64 Proceedings of the SHARE design automation workshop, Pages 6.329- 6.346.               ACM, New York, NY, USA 1964.

[2] http://en.wikipedia.org/wiki/Ivan_Sutherland

Thanks for reading my blog! Have a great and blessed day!

Gig'em!!!

Wednesday, January 16, 2013

Introduction

Howdy!!!
               This is a blog for the "Sketch Recognition" class that I'm taking for Spring 2013. Here's some info about me:


               My real name is Raj but you can call me "The Rajinator" or "The Blue Raja"! I'm a first year Masters student pursuing Computer Science. I want to be a software developer after I graduate. A big technological development that I would like to see in my lifetime is a robot that approximates human functions.

              I haven't really thought about where I would like to see myself in 10 years but if I had to answer that question, I'd say that I want to use my computer skills to help out people who need a better education, living standard and a healthy lifestyle. Sometimes I wish I could travel back in time and meet my mom when she was my age. She has always been a source of inspiration to me and an example of how to live life. I've heard her talking about her struggles and I wanna see how she handled them and get some wisdom from that.

             My favorite shoes are tennis shoes because tennis is something that gets me excited and I can also use them for running. I like to run. I think it's a good workout. Ever since I heard Spanish, I've wanted to learn it. It's a very sweet language and I definitely wanna learn to speak it fluently.

             An interesting fact about me is that I don't like to eat eggs or meat but if you were to convince me that there're no eggs or meat in the food, I'd eat it and won't be mad at you even the slightest if you later told me the truth! It's because I was brought up that way and it's hardwired in my brain!

            So that's a bit about myself. If you have any questions or want to talk to me, my e- mail is helloraj90@yahoo.co.in. Thanks for reading my blog post and I hope that you've a great and blessed day ahead!

Gig'em!!!