Monday, August 14, 2017

Awesome Tag final F1 score 2017.08.14

I returned to the Awesome Tag project last month. I implemented some new tests that improved my F1 score from 0.44 in January to about 0.66 in July. This project is a facial detection scheme. Of course it's not as ambitious as facial recognition might be. On top of that the process of scanning a particular jpeg or png takes several minutes. The code is sloppy. I wanted to reduce the number of false posotives and was somewhat successfull, but the outcome of my efforts is that the F1 score has dropped. Today I calculated my F1 roughly in the 0.11 ballpark. I am getting far fewer true posotives.

The python code from this project uses google's tensorflow to manipulate several neural network type objects on my computer's gpu. At one point I went so far as to write my own gpu tensorflow kernel for doing some of the work involved in testing images for skin tones. Still, the code does not work well and I am leaving the project as it is. I would love to return to the project and somehow achieve good results (and quickly) but I do not think that will happen.

As stated above the F1 score at this point is 0.11, not very good.

Sunday, May 7, 2017

URL For New Awesome Distro Watch App

I have recently put a new app on Google Play. I have blogged about it below.

Above is the url for the app on Google Play.

Above is a link to the project on github.

Awesome Distro Watch -- 2017.05.07

This is a readme file from an app I am working on and is now available on the Google Play Market.
Awesome Distro Watch - debian style distro watching
This app does not install Linux on your phone. Instead it lets you know when updates are available for your computer’s Linux install.
Have you installed Linux? Are you using an operating system like Debian or Ubuntu? Would you like to know when your favorite program is ready to update… Even before you start up your computer? Now you can use this app to watch your favorite distro when it updates packages!
Instructions (short version):
  1. Start App
  2. Configure URL of Distro on Configure page
  3. Confirm URL Change and Click Pink 'go' button
  4. Browse Repository ('BROWSE' button on main page)
  5. Click on files for tracking (checkbox will turn green when file is selected)
  6. LATER: click on 'CONFIGURE' and 'CHECK DISTRO' to see if updates for your files are available.
NOTES: The program just keeps one list of files for tracking, so if you switch the url you may still get notification that your package is new even though you selected it when another url was being used.
CHECK DISTRO typically will not work immediately after URL is set. It will take some time for the distro developers to update the package repository. Then the 'CHECK DISTRO' button will work. Be patient.

this is the config page:

Sunday, March 26, 2017

Awesomeguy Android App -- 2017.03.25

I've taken a version of Dijkstra's algorithm and applied it to my Android app. The new code allows the monsters to seek out and follow the Awesomeguy character. It's an improvement to the game. I also changed the color scheme of the app. Then I released the app again on the android market.

I'm calling this new aspect of the game Helicopter Monsters. Why it needs a name I don't know. The monsters are meant to look like little helicopters some of the time and that's where the name comes from.

I'm having a problem with testing my app. I have only two devices right now. Both started out as Marshmallow devices, and when they were both M devices the app worked totally fine on both devices. Recently one of the devices updated to the N android operating system. Since then the Nougat device causes problems for my app. Knowing that this is an issue I have gone out of my way to update the code in a way that will allow it to work well.

I have not been successful, and yet I have released the game anyway. There are now only something like 20 users of the game and only one of those users is reported to be using the N operating system. Honestly I believe that the individual this figure reported may actually be me.

There were, at one point, thousands of downloads of the game. Now of the 20 or so users, only one or two users are on the latest version of the game. The rating for the game is 3.0 or so. I am not interested in the rating so much as the game has changed considerably since I first released it. It is now a different game in many ways. I have re-released it on its own merits.

Recently the Google Play admins contacted me to tell me that there was a change in the way that they represent the apps on the Play store site. They informed me that the apps all needed legal documents for all the special permissions that the app uses. The Awesomeguy app used google analytics and Google Play Leaderboards. The notification said that the two options I had were to remove the special permissions or to add legal disclaimers to the app. I chose the former. Hopefully the app will be retained on the Play Store site. I believe that the Leaderboard functionality does not require a disclaimer.

That's the state of the Awesomeguy app.

Saturday, February 25, 2017

Return To Awesome Guy - 2017.02.25

I've spent the last couple of weeks trying to implement the Awesomeguy game in HTML and javascript. The version I've been working on uses no server-side scripting. That means on a LAMP server I would be using no MySQL or PHP. It's very interesting and using HTML5 I have been able to port all ten of the original levels to javascript.

Also, this game differs from previous versions of the game in the following ways: Starting off, there's no eleventh level. In the current version of the Android game there's an eleventh level that has OpenGL objects on the screen. HTML5 doesn't do OpenGL, so the level was not included. Another thing that was included was a multithreaded routine that allowed the monsters to aggresively follow the main character around the level. The monsters can now go up ladders, down ladders, and across flooring to persue the guy. The 'follow' routines are still a little buggy and can be disabled using a optional checkbox on the game's page.

Sunday, January 15, 2017

F1 score 2017.01.15

I went on line and did a little googling about confusion matrix calculations. I took about 75 images and ran them through the program. I came up with columns in a chart for true detection of a face, false-positive detection, and false-negative detection. I followed the formula for the F1 score, not strictly speaking a confusion matrix, but interesting to calculate. I come up with a 0.44 score. It's not that good.

Wednesday, January 11, 2017

Convolution visualization 2017.01.11

Here's a graphic that visualizes the weight vector for the first convolutional layer of one of the neural networks in the facial detection project I have been working on.
There are 32 boxes and a 5x5 image in each box. This is after 5 or 6 runs of the training function.