Saturday, September 15, 2007

006 - Early Processing for Sketch Understanding

Summary:

This paper describes the "Sezgin System" and how it works. It is a system that allows the user to draw a shape any way they want then continuously makes vertexes at specific spots until it gets "close enough" to the desired shape. It also deals with finding and drawing curves accurately. The vertex finding is a complicated description but a simple concept. The paper describes how the system uses the direction data (from the features) to see spikes in changes. This alone, however, doesn't produce correct corners, so Sezgin also includes the speed data from point to point. It finds the average of these two data elements and then collects data on all points above (in the case of direction) and below (in the case of speed) these averages and intersects these values. The resulting intersection becomes the corners. However, if the drawn shape is not "close enough" to the computer-generated shape, the system will try adding both a direction point and a speed point to the data and try again (the points are added separately, giving two different intersections). Whichever is closest is then chosen, and the process repeats until the drawn shape is under the threshold of error. Sezgin then goes on to describe the use of Bezier curves to draw correct curves without only using "circular" curves. It describes how "beautification" works by making slopes of lines slightly more pleasing to the eye (less "jagged-ness" or aliasing). The paper goes on to describe a user study on the system with a set of drawings. The study resulted in mostly positive feedback for the system.

Discussion:

I really like this method. It's pretty "common sense"-like because it is an approximation, which is what people do in real life. You see a slightly oblong circle and you'll just remember it as a circle, unless it has something special about it. I think this method's BIGGEST drawback is also it's biggest asset, and that's the "threshold" issue. People can design different programs for different uses and sets of people with different thresholds, such as allowing for more jerkiness with arthritis patients drawing something and less for skilled draftsmen. But not specifying a default value for this threshold (since Sezgin didn't in his paper) could lead to a lot of problems.

An interesting thought that I had was that he assumes that all corners have a slower speed. Studies have been done to show this is generally true, but these studies were likely all done on a flat horizon surface. What isn't taken into account is people who use boards on the wall or the new "SmartBoards" (they're new enough to me, all right!?). When writing on a vertical surface gravity can change drawing style. For example, drawing the top half of a circle on a piece of paper you will commonly start slow, speed up through the entire arc, and end slightly slower than at the arc. On a board, gravity might slow your hand down near the top of the arc, or rather SPEED it up on the decent from the top, thus resulting in a great change of speed that might be recognized as a corner.

2 comments:

Grandmaster Mash said...

Drawing surface issues are important, and I have no idea how they affect the algorithm. I know that I draw differently on Tablets, Wacom screens, and whiteboards. I'd be interested to see if a study on this was published; my Google searches came up dry.

Test said...

Sezgin implemented two different versions of his algorithm for different surfaces, but no results were published. It would be an interesting idea to do such a study.