Neurale netwerken op de Raspberry Pi met de Google Coral USB Accelerator

Neurale netwerken zijn een belangrijke techniek in machinaal leren, maar helaas ook rekenintensief en energieverslindend. Met de Coral USB Accelerator biedt Google een handig versnellerbordje aan. Je gebruikt het op je laptop of een Raspberry Pi 4.

Het hart bestaat uit een Edge TPU-coprocessor, die slechts 2 W verbruikt, een heel laag verbruik voor dit soort berekeningen. De Edge TPU is geoptimaliseerd voor TensorFlow Lite, een uitgeklede versie van het opensourceplatform TensorFlow voor machinaal leren.

/images/rpi4-coral-usb-accelerator.jpg

Modellen

Google heeft op één webpagina al zijn modellen voor de Edge TPU geplaatst, waar je ze eenvoudig kunt downloaden. Vooral voor beeldclassificatie zijn er veel modellen beschikbaar. Zo zijn er drie versies van EfficientNet, waarmee je 1000 types objecten kunt herkennen in kleine, gemiddelde of grotere afbeeldingen. Ook van MobileNet zijn er diverse varianten: om 1000 objecten te herkennen, 1000 insecten, 2000 planten en 900 soorten vogels. Ook van Inception, dat 1000 types objecten herkent, zijn er vier versies beschikbaar.

/images/edge-tpu-modellen.png

Ook voor objectherkenning zijn er meerdere modellen. Objectherkenning doet meer dan beeldclassificatie: bij die laatste krijg je gewoon een label "vogel" als er een vogel in het beeld staat. Een model voor objectherkenning vertelt je niet alleen dat er een vogel te zien is, maar toont je ook de locatie. Dat kun je dan visualiseren met een kader rond het object. Er zijn twee versies van MobileNet SSD die de locatie van 90 types objecten kunnen herkennen, en één versie die de locatie van een menselijk gezicht detecteert.

Als je wat verder zoekt, vind je ook elders nog wel andere modellen. Maar je moet er altijd zeker van zijn dat ze voor de Edge TPU zijn gecompileerd. En welk model voor jouw toepassing geschikt is, hangt af van de beelden die je wilt verwerken. Ik raad aan om verschillende modellen te testen.

Aan de slag met de Coral USB Accelerator

In een artikel in Linux Magazine leid ik je door de installatie van de Coral USB Accelerator op Raspberry Pi OS en enkele voorbeelden van machinaal leren:

  • Vogelsoorten herkennen in afbeeldingen.

  • Sleutelwoorden herkennen in een audiostroom van de microfoon.

  • Bestaande modellen voor beeldclassificatie hertrainen met transfer learning om nieuwe klassen objecten te herkennen.

  • Objecten en hun locatie herkennen in afbeeldingen.

Er zijn vele voorbeeldprogramma's in Python te vinden voor de Edge TPU. Bekijk zeker eens de officiële pagina met voorbeelden. Maar ook op GitHub vind je allerlei interessante third-party projecten. Je kunt ook realtime de beelden van een Raspberry Pi Camera Module analyseren.

Dankzij de Google Coral USB Accelerator komen krachtige AI-toepassingen binnen handbereik van de Raspberry Pi waarvoor je vroeger toegang tot krachtige servers in de cloud nodig had.