IQT Labs recently released a project called the Teachable Camera, a low-cost camera capable of doing on-device machine learning in remote locations. A previous IQT blog post describes the overall project and its technological contributions. Teachable Camera allows you to deploy a smart camera to a remote location and to detect user-specified objects without an internet connection. Typical smart camera systems are not customizable, produce many false alerts, and require transferring data to another computer to perform machine learning.
We expect some readers will want to know more about the hardware we used to build the Teachable Camera. Some may also want to build their own teachable camera. This post describes the electronics we used and the different hardware configurations we developed and tested with.
All of our hardware design files and bills of materials have been open sourced on our GitHub page to allow a reader to reproduce the hardware seen below.
Edge AI Devices
The Teachable Camera software runs on a Google Coral Development Board, an Edge AI device. Edge AI is an extension of the Edge Computing paradigm. Edge AI devices allow AI algorithms to be run locally on hardware without requiring any network connections. The heart of the Coral is the Edge TPU, which is a small, low-power, ASIC device that can be incorporated into fieldable products. We selected the Coral Development Board for prototyping because it is a complete system that has the Edge TPU built in. It also has a familiar form factor and supporting electronics (such as USB ports, Wi-Fi, etc.) as the RaspberryPi. It also includes software and pre-compiled models to get started prototyping quickly.
Enclosures and Configurations
During the development process we prototyped with three different hardware configurations. The main considerations with each configuration were the operating environment, required run time, and transportability. One of the goals of this project was to make it easy to reproduce. All of the individual components can be purchased commercially and the enclosures/mounts can be printed with an FDM 3D printer.
The Benchtop Testing hardware is a simple case configuration that houses the Google Coral Development Board and provides a mount which allows you to aim the Coral Camera. The enclosure is 3D printed and provides basic protection for the electronics. This configuration was used to do most of the development and testing of the system.
Light Field Deployment
The Light Field Deployment hardware is a simple configuration with a durable case that houses the Google Coral Development Board and large USB battery. This configuration is built upon a 3D printed chassis that holds the Coral, camera, and battery, and is mounted inside a small Pelican case. The configuration allows the system to be deployed in areas without power for short durations and provides more protection when transporting/shipping the system. With a 26800mAh USB battery the system will operate for approximately 10 hours.
Extended Run Field Deployment
The Extended Run Field Deployment hardware is an advanced configuration with a durable case that houses the Google Coral Development Board, a GoalZero battery/solar power system, and a PoE Ubiquity G3 Pro security camera.
To power system we chose the GoalZero 200X power station and the Boulder 50W solar panel. The GoalZero power stations are consumer friendly, the X series is light weight, and there are lots of options for additional battery or solar capacity. With this current configuration, the 200X power station provides 24+ hours of run time and with the solar panel (and about 10 hours of sun light) it is capable of running continuously. Note that no significant effort went into minimizing power consumption, and that the system can theoretically run longer than this.
For this configuration we needed a way to power the Ubiquity G3 Pro Power over Ethernet (PoE) IP camera using a 5V USB source but were unaware of a commercial solution to accomplish this. To solve this, we sourced an off-brand DC-DC transformer from Amazon to step up the battery voltage from 5V to 48V. We then connected it with a generic PoE injector to power the camera. To our surprise this solution ended up working quite well and could probably be utilized for other field PoE projects too.
Future work might include utilizing a RaspberryPi with the Coral USB Accelerator, experimenting with other Edge AI devices, like the Nvidia Jetson Nano, increasing reliability, and building other hardware configurations based on different use-case requirements.
We expect the field of Edge AI devices to continue to expand and are excited to find new applications to address with them.
For more information about reproducing the Teachable Camera hardware check out our GitHub page which includes the 3D printable parts, a BOM, and assembly diagrams. And if you haven’t already please take a look at the Teachable Camera software blog post.