Neural-net object recognition
Using neural-nets to recognise objects.

Why?

Because we need to recognise real-world objects in order to do some tasks.

Neural-nets

After the long AI winter, neural-nets have sprung up again, due to more powerful machines, millions of easily accessible images via internet, and an understanding of back-propagation. They make very good classifiers for known object sets, and can be run on machines available to the average user - a quality desktop computer with a $AU1000.00 GPU does nicely.

There are also other promising technologies such as the Movidius Compute Stick.

Process - retrain an existing image classifier for new categories

This section is a collection of notes about how the object recognition system was set up. Basically the strategy was to use the retraining mechanism described at https://www.tensorflow.org/hub/tutorials/image_retraining "How to Retrain an Image Classifier for New Categories" to train to recognise kangaroos. This involved

    Getting a copy of openImages. This is really big collection classified (labelled) images which contain many kangaroo pictures.
    Installing tensorflow_hub, which includes a 'pretrained' object classifier.
    Putting appropriate images into sub-directories of a animal_photos directory (kangaroo and non-kangaroo images copied from openImages).
    Running the retrainer to produce a new trained model.
    Using the new trained model to classify new images.
    For those thinking of doing the same thing - some notes on making it go.

Conclusion

The future

Voice recognition. No human being has ever reliably responded to

    "Don't forget to take out the garbage tonight, Sweetie." or
    "Darling, could you fetch me a beer from the fridge?"

Cool links

Leave a comment

Something I'm doing wrong? Solved my problems? Got a better idea? Got a similar problem?
Think I might have solved your problem? Ninety-nine problems, but your robot ain't one? Say so ..