Monday, July 8, 2013

ISOC 1: Project Startup

Day 1

Today, was our first day working on our project. Most of the day consisted of working out a plan for our data structure and what methods to use for character recognition and also special cases such as, horizontal line a minus or a division operator?

We've been granted to sit at InnovationskontorEtt during our developing time which helps us a lot not losing time commuting to Linköping everyday.

Work Work!


Our first plan is to use the gesture system in the Android SDK(android.gesture) for input as well as character recognition. It's too bad that the resources about the how this system evaluates is scarce since the score seems to be a bit all over the map. Sometimes you get score close to 1 and other time up to 30+.

We've also started to code our nodes we want to use for our data structure and systems for finding relations between these node depending on what type they are as well as their position to one and another.

Day 2

Work continued with our Nodes and also began sketching up the UI and using the canvas to project drawn gestures onto. We've started to look for third-party systems for improving our character recognition since android.gesture doesn't seem to be able to do this work on its own, although it does seem like a good input method since we can do stuff as get the gesture as a grayscale bitmap or a collection of points.

We've also started to discuss how to create and maintain relations between our nodes. Our nodes' children have a variable keeping track on its relation to it's parent, for example: kLeftChild for anything left of an operator or kUpperLimit for the upper limit of a sum or integral.

Day 3

We've continued our work with the UI and found Vision Objects and their MyScript system for recognizing handwritten data. They have a trial online webservice for sending JSON data with sample points to determine what has been written. There was some tinkering to get this to work since the data actually sent wasn't in a JSON format but in an URL encoded method.

While this means we don't really need to further develop our node data structure, we can now put more time into creating an App with user friendliness in mind. We've want to start looking at methods of taking pictures with our devices and generating points to send for evaluation but it will happen in a later stage.

Day 4

The work for the day consisted in trying to minimize the number of queries sent to the MyScript service by letting the user do multiple strokes before any actual data is sent and also threading this query on the app to not lock up the main thread. It seems like the AsynTask in android works very well for stuff like this since it seems to take care of things that could be considered unsafe while threading. While you can tell your app to allow HTTP requests in the main thread, this is something you shouldn't do since it would cause the UI to freeze as well as perhaps reporting that the app is not responding due to waiting for receive a response.

We've also contacted Vision Objects to ask for how much a license would cost and also the possibility of getting a trial period on their SDK.

Day 5

We spent the day in Linköping today. The big topic for today is how we should be able to pan and zoom on our canvas as well as erasing.

A big problem for us right now is how the android SDK handles gesture, gesturestrokes and Paths.
We use gesture for input and a gesture consists of one or multiple gesture strokes. You can then get a path from a stroke, But:
- We can sample points from a gestureStroke, something we need for the MyScript Service. But there is no possibility of transforming the stroke, something we need when zooming.
- We need the Paths to draw on our canvas and we can also make transformations to the path, but we can't use a path to create a stroke and we cant get sample the path to points.

Our current solution right now is to grab the points from the stroke and make our own transformation function but it seems to have an impact on our performance.

No comments:

Post a Comment