I'm excited to announce a new open-source software development kit for building TensorFlow applications on Raspberry Pi.
Sign up for my newsletter to get early access and development updates. 👉
Learning by Doing
In 2019, I began publishing articles and example code from my self-study of Convolutional Neural Networks in the field of Computer Vision. My knowledge-bootstrapping approach went something like this:
- Pick a new topic (like depth estimation) with a hands-on goal or application in mind.
Example: "I will reproduce AnyNet architecture in TensorFlow, apply post-training quantization, and compare performance on the Pi to the original paper." - Read a few survey papers on the subject.
The standard "deep learning paper" often focuses on a particularly novel piece of research, algorithm, or technique. Not many of these papers are good points of entry into the field.
Survey papers analyze several other pieces of research, summarizing and categorizing their contents. This is a great way to get up to speed on a field.
Example: A Survey on Deep Learning Techniques for Stereo-based Depth Estimation. - Build a prototype or small app. Research just enough to unblock development
- Go to 1. Rinse and repeat!
This process work for me because it connects theory, math, and algorithms study (which I often find dull in isolation) with the simple joy of making things.
Learn Faster By Doing Faster
The best practitioners I know in machine learning all share one particular trait in common, which is they’re very, very tenacious…another thing which is they’re very good coders. They’re very good at turning their ideas into code.
Jeremy Howard, fast.ai
I developed and wrote Real-time Object Tracking with TensorFlow & Raspberry Pi over Christmas break in 2019, and packaged up the example application code for easy installation.
$ pip install rpi-deep-pantilt
The demo models are based on a single-shot multibox detector architecture, with weights pre-trained on Microsoft's COCO dataset.
Since then, dozens of people have reached out to me about training, installing, and deploying their own models in real-time applications like...
- Fish detection and body mass estimation, for Aquaculture monitoring.
- Face and facial mask detection.
- Leopard detection and counting for a wildlife conservation initiative
- UFO/Satellite detection
I'm rewriting rpi-deep-pantilt
with the scaffolding to support these use cases (and many more), with some additional tools and features for managing the life-cycle of Machine Learning models deployed to the edge. Stay tuned for dev updates!