Tuesday, September 22, 2015

Awesome CNN Usage

Awesome CNN is an android app that employs a convolutional neural network to recognize simple drawings of letters and numbers. The app was written originally for the linux desktop in python, and was ported to the android phone using kivy. It borrows heavily from another python project on GitHub called "nnet". It runs in python in the "Python-for-Android" environment. At the time of this writing it is also a project on GitHub, called "awesome-cnn". The git repository is almost in a state of completion, so it may be several months from this writing before you can download the project yourself and modify it. However, the android app on the app market works. This post describes how to use it.

First you must download the android app to your phone or tablet. From my experience tablets work better. You want a device that can crunch numbers (a high cpu speed) and you want a device that has a large screen and an accommodating aspect ratio. For this last spec, you want something that is not arranged so that half the width is the height. For example, 16:9 is sort of hard to use because half the height is almost exactly the same as the width. This does not effect the processing power of the app, but it does affect how the buttons are currently displayed on the screen, and so effects usage. In any case, tablets may work best.

Once you have the app on the phone or tablet, open the app. The app takes a long time to load, but then your screen will be arranged as follows. Half of the screen will be blank. This blank area is the upper portion of the screen. This area is blank so that the app might be used as an android "Input Method" some time in the future. For the time being this blank area is simply not used. The lower portion of the screen contains a large central area and two smaller panels of buttons on the left and right. Initially there is a small text area in the lower portion of the central panel. There are three buttons on the left and three buttons on the right. Again, not all of them are used. Some are sort of reserved for the possibility that the app becomes an Input Method after some continued development.

The basic idea is simple. You pick, using the top-right button, weather you want to work with alphanumeric characters or numbers. Then you draw on the center panel with your finger the shape of the letter or number you want the app to recognize. Then you press the 'ENTER' button on the bottom left of the screen. Then you have to wait for about 15 to 30 seconds. When the program is done it displays the recognized digit in a second small text area at the top of the center panel.

There is a 'CLEAR' button on the left side that works and two arrow buttons, for right and left, that do nothing. As stated above there's an 'ENTER' button on the left and a toggle button for choosing alphanumeric ('A') or numeric ('#') input on the right. There is also one other button that is blank at the time of this writing on the left above the 'ENTER' and 'CLEAR' buttons.

The two text areas are not sensitive to touch input. The bottom one floats on top of the input area and shows the current coordinates of input on the screen. It also shows the value of the last figure that was recognized by the app. The other text area, located at the center of the entire screen, and slightly higher on the screen then the input area, shows the history of the recognized digits by the app. This area is not visible when the app is first launched, and only starts to show digits or characters as the user draws them and then presses 'ENTER'.

No comments:

Post a Comment