Google Edge TPU Dev Board: Google Coral USB Accelerator Specs

Published By

If you want to add machine learning capabilities to a standard Linux computer—even a Raspberry Pi single-board computer (SBC)— look no further than the Coral Edge TPU USB Accelerator.

This device measures in at a svelte 30x65x8mm, but its Edge TPU coprocessor is capable of four trillion operations per second. Its USB 3.1 interface (or 2.0 with reduced speeds) enables you to offload machine learning (ML) tasks to the device, allowing it to execute vision models at enhanced speeds. If you'd like to investigate further, you can browse its system performance benchmarks.

These specs are impressive, but how well does it perform? To test this little device, I attempted to use it out with two systems:

- My decade-old Lenovo T60 with Ubuntu Linux installed

- Raspberry Pi 3 Model B

Google Coral & Ubuntu: Linux Test

While I'm usually a Windows user, I keep a Lenovo T60 ThinkPad at the ready for experiments that require Linux (including successfully flashing firmware onto a Coral Dev board). This device was manufactured sometime around 2006, and I've operated it under Ubuntu for a few years after Windows refused to load.

While ancient, this machine qualifies as, per Google's getting started page, "any Linux computer with a USB port." After several generations of OS upgrades, it was able to load the proper firmware. I figured it would have no problem working with the Accelerator.

Unfortunately, after completing the text entry for step one, my computer informed me (in red lettering):

Your platform is not supported

Reading the bullet points under "any Linux computer," I noticed that it also requires a system architecture of either x86-64 or ARM32/64 with ARMv8 instruction set. After a bit of digging, I found that this system sports a 32-bit processor. So, "any Linux computer" isn't exactly the case. If you're having problems with an older machine, this might be your issue.

Fortunately, the Coral Edge TPU USB Accelerator also runs on the Raspberry Pi, with official support for the Pi 3 Model B, which I happen to have. Conveniently, mine was already set up with an install of Raspbian, the official Raspberry Pi OS, on its SD card.

Raspberry Pi & Google Coral: Raspberry Pi 3 Model B Test

One convenient aspect of the Raspberry Pi is that you know your starting point. If you have a Pi with a fresh OS install, all you need to do is follow the instructions. If something does go wrong, getting back to zero is as simple as flashing an SD card and updating.

Based on my background with the Pi, I was confident that Google's Getting Started instructions would work the same way. After I entered the necessary text, the software downloaded and installed without issue. One "gotcha" is that the command in step one that starts with "wget" extends with a scroll bar, and the -O on the same line is a capital letter, not a number.

Next, plug in the Accelerator, then download and run the model to identify a parrot (or more accurately, an Ara Macao or Scarlet Macaw). The program accomplished this with a score of 0.761719, so the Accelerator was doing its job. What seems a little too convenient, however, is that the manufacturers are supplying the model for you to test. I wasn't satisfied with this setup, so I downloaded a few more avian images to see how it performed.

Google Coral Image Identification

I downloaded the bird photos above from a public domain repository, then analyzed each one using the same procedure as the Scarlet Macaw. The Accelerator was able to pick out each one with a better confidence score than the original example.

I was surprised at this, but the photos I chose featured better resolution than the 400x726 parrot.jpg image. What's interesting is that these birds came in a variety of poses and groupings. I was especially skeptical about the 'bird4.jpeg' image, which features a pelican with its head resting close to its body. Impressively, the Accelerator identified it as a "Pelecanus occidentalis (Brown Pelican)" with a score of 0.898438.

While I'm no ornithologist, the Accelerator appears to give correct results, based in part on a bit of web searching. The identification routine took about four seconds to return a result on the example parrot image. While some of the images were much larger than the 400x726 pixels of the parrot example, the routine still took under five seconds to run each time. While random, all the images I tested up to this point were shots of actual birds. As it just so happens, I'm quite adept at poorly focused nature photography, so I decided to feed the Accelerator a couple of my own photos. One is a zoomed-out shot of a bunch of white ibises, while the other is a small herd of deer. I captured both shots through a window and screen. Let's see what it came up with:

For the deer image, the Accelerator identified them as either a "Canada Goose," or "Sandhill Crane," with quite low scores for each (0.273438 and 0.101562 respectively). When you're using such a system, you need to interpret low scores, so this score is essentially saying "who knows?" and taking a guess. The deer's long necks might hint at the same feature on geese, so perhaps it's on the right track.

Impressively, however, the Accelerator was able to identify the second image as "White Ibis," though only with a score of 0.382812. It also suggested two other lower-scored alternatives, so it's not that sure, but it did well considering what it had to work with.

Google Coral Edge TPU Speed Considerations

Identifying these last two photos took a little longer—between five and six seconds—than the other images. This increased time was likely because they were 9.6 and 6.8MB files respectively, versus the sub-500kB downloaded images and 92.6kB parrot demo image.

One thing to note here is that the Raspberry Pi 3B uses a USB 2.0 port, while the Coral is capable of data transfer using the USB 3.1 spec. According to the example documentation, "If you connect to a USB 2.0 port, inferencing is much slower." This connection may have caused the main bottleneck in the operation. However, when I reran the Scarlet Macaw demo after reinstallation at "maximum operating frequency," the ID time was still about four seconds.

To achieve faster speeds, you might be able to use the new Raspberry Pi 4 with its USB 3.0 capability. However, the Pi 4 isn't officially supported as of this writing and I didn't attempt to use it for this experiment.

When it comes to identifying actual birds, I'm quite impressed with the device. You can also explore other model sets for objects like plants and insects. You can even train your device to recognize new items, according to the "Teachable Machine" example by Mike Tyka at Google Research.

If you want to add image identification capabilities to your project, the Coral Edge TPU USB Accelerator is a capable solution. 

Latest News

Sorry, your filter selection returned no results.

We've updated our privacy policy. Please take a moment to review these changes. By clicking I Agree to Arrow Electronics Terms Of Use  and have read and understand the Privacy Policy and Cookie Policy.

Our website places cookies on your device to improve your experience and to improve our site. Read more about the cookies we use and how to disable them here. Cookies and tracking technologies may be used for marketing purposes.
By clicking “Accept”, you are consenting to placement of cookies on your device and to our use of tracking technologies. Click “Read More” below for more information and instructions on how to disable cookies and tracking technologies. While acceptance of cookies and tracking technologies is voluntary, disabling them may result in the website not working properly, and certain advertisements may be less relevant to you.
We respect your privacy. Read our privacy policy here