This page will document some personal research into improving the performance of object detection algorithms on parallel and/or portable hardware.
For now that consists of the the titular paper and a very basic Android Demo of the algorithm.
- NotZed (notzed on google or internode e-mail)
First, I am not an academic and have not published any papers. None of these are peer-reviewed, edited, or even viewed by anyone by me at this time. If you're lucky i've probably remembered to run a spell-checker. In effect these are practice papers. I much prefer reading properly formatted and concise information and so have attempted to do the same. Although i'm not sure it's something I'd like to do every day, once in a while it has it's moments of satsifaction.
At this time I am not using any license and retain all rights - so distribution is not allowed under any circumstances. All publishing services (scribd, etc) are expressly forbidden from including copies.
But they are obviously easy enough to get right here: for humans to read.
On to the one paper so far: whether I do more will depend on whether I feel like it. Sponsorship and/or cool parallel hardware may change how i feel.
Abstract
A memory-space and CPU-time efficient image classification algorithm is presented together with a face-oriented LBP transform. The algorithm can be efficiently implemented on modern computer hardware in as little as a single line of code and scales embarrassingly well to currently available parallel architectures. The classifier is applied to the problem of face detection.
Notes
To prevent rambling I tried to squeeze the paper into 4 pages and so it is necessarily missing some detail and more rigorous evaluation such as ROC curves and so forth. I also did most of the research over xmas and new-years and wrote the article (and most of the implementations) over a couple of nights so didn't really care to do more.
I tried to properly derive the mathematics behind it, but probability is not a particular interest of mine so there may be some (glaring) mistakes. I'm pretty much convinced at this point that the maths itself isn't terribly meaningful anyway because the training ignores it.
Warning: This is very pre-alpha prototype code.
It has only been tested on a single tablet. Possibly the hit boxes will not show up in the right place and the screen might be flipped. It might crash. The device must have an ARM cpu that supports NEON and have a camera of course.
It displays a live view of the device's camera and overlays it with the raw hit-boxes of detected faces.
The slider adjusts the sensitivity. The button allows switching between the android face-detection api and the internal algorithm. The internal algorithm is about 70x faster on my tablet. All processing code is single-threaded.
While very accurate and surprisingly robust it fails badly on certain signals.
If it doesn't work properly: tough luck.
SOURCE CODE IS NOT AVAILABLE AT THIS TIME. Do not ask.
This page and all work is Copyright (C) 2013, 2014 Michael Zucchi, All Rights Reserved.