Convolutional Neural Networks (CNN)

Verkehrszeichen sicher erfassen

19. Juli 2016, 10:46 Uhr | Von Chris Rowen und Rishi Kumar
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 1

Anforderungen an die Hardware

Zu einem Vision-Subsystem gehört neben einem CNN auch eine Vielzahl von Bildverarbeitungsfunktionen. Um CNNs auf einem leistungsbeschränkten Embedded-System für die Bildverarbeitung ausführen zu können, sollte ein solches System folgende Anforderungen erfüllen:

  • Hohe Rechenleistung: Für eine typische CNN-Implementierung sind Milliarden von MACs pro Sekunde notwendig.
  • Größere Lade-/Speicher-Bandbreite: Im Fall von voll vernetzten Ebenen für die Klassifizierung wird jeder Koeffizient in der Multiplikation nur einmal genutzt. Damit ist die Lade-/Speicher-Bandbreiten-Anforderung größer als die Anzahl der vom Prozessor ausgeführten MACs.
  • Niedrige dynamische Leistungsaufnahme: Das System sollte wenig Leistung aufnehmen. Um diese Vorgabe zu erfüllen, ist eine Festkomma-Implementierung erforderlich, welche die Leistungsanforderungen mit der minimal möglichen Bit-Anzahl erfüllen kann.
  • Flexibilität: Es sollte möglich sein, das vorhandene Design auf ein neues leistungsfähigeres Design einfach zu aktualisieren.

Da Rechenressourcen in Embedded-Systemen immer nur eingeschränkt zur Verfügung stehen, ist ein Algorithmus nützlich, mit dem sich große Einsparungen bei der Rechenkomplexität zu Lasten einer kontrollierten kleinen Verringerung der Leistung erreichen lassen, sofern die Anwendung kleine Leistungseinschränkungen erlaubt. Cadence hat deshalb einen Algorithmus entwickelt, der einen solchen Kompromiss zwischen Komplexität und Leistung erlaubt, damit sich CNNs auch auf Embedded-Systemen ausführen lassen.

Da Rechenressourcen in Embedded-Systemen immer nur eingeschränkt zur Verfügung stehen, ist ein Algorithmus nützlich, mit dem sich große Einsparungen bei der Rechenkomplexität zu Lasten einer kontrollierten kleinen Verringerung der Leistung erreichen lassen, sofern die Anwendung kleine Leistungseinschränkungen erlaubt. Cadence hat deshalb einen Algorithmus entwickelt, der einen solchen Kompromiss zwischen Komplexität und Leistung erlaubt, damit sich CNNs auch auf Embedded-Systemen ausführen lassen.

CNNs auf Tensilica-Prozessoren

Für die Implementierung von CNNs in Embedded-Systemen eignet sich insbesondere der Tensilica Vision P5 DSP. Dabei handelt es sich um einen stromsparenden Hochleistungs-DSP, der speziell für Bildverarbeitung und Computer Vision entwickelt wurde. Der DSP nutzt eine VLIW-Architektur mit SIMD-Unterstützung. Er bietet fünf Issue Slots pro Befehlswort mit bis zu 96 bit und kann bis zu 1024 Bit-Wörter pro Speicherzyklus laden. Interne Register und Ausführungseinheiten reichen von 512 bit bis 1536 bit.
Dieser DSP adressiert alle der im vorherigen Abschnitt genannten Herausforderungen bei der Implementierung von CNNs in Embedded-Systemen:

  • Hohe Rechenleistung: Zusätzlich zu einer erweiterten Unterstützung für die Implementierung einer Bildsignalverarbeitung verfügt der DSP über eine Befehlsunterstützung für alle CNN-Stufen. Für Faltungsoperationen steht ein sehr umfangreicher Befehlssatz zur Verfügung, der Multiplikations-/Multiplikations-Akkumulations-Operationen für Daten mit und ohne Vorzeichen unterstützt. Für das Max-Pooling und die ReLU-Funktionalität verfügt der DSP über Befehle, die 64 8-bit-Vergleiche in einem Zyklus erlauben. Für die Implementierung von nichtlinearen Funktionen mit begrenzten Wertebereichen, wie tanh und Signum, sind Befehle zur Implementierung einer Nachschlagetabelle für 64 7-bit-Werte in einem Zyklus vorhanden. In den meisten Fällen werden Befehle zum Vergleich und zum Nachschlagen in Tabellen parallel mit Multiplikations-/Multiplikations-Akkumulations-Befehlen ausgeführt und erfordern keine Extra-Zyklen.
  • Größere Lade-/Speicher-Bandbreite: Der DSP kann bis zu zwei 512-bit-Lade-/Speicher-Operationen pro Zyklus ausführen.
  • Niedrige dynamische Leistungsaufnahme: Der DSP ist eine Festkomma-Maschine. Wegen der flexiblen Handhabung von verschiedenen Datentypen lassen sich die volle Leistung und ein vorteilhafter Energieverbrauch bei minimalen Einschränkungen hinsichtlich der Genauigkeit erreichen.
  • Flexibilität: Da der DSP ein programmierbarer Prozessor ist, kann das System mit Hilfe einer Firmware-Erweiterung auf eine neue Version aktualisiert werden.
  • Gleitkomma: Für Algorithmen, die einen erweiterten Dynamikbereich für ihre Daten und/oder Koeffizienten erfordern, verfügt der DSP über eine optionale Vektor-Gleitkommaeinheit.

Der Vision P5 DSP wird mit einer vollständigen Software-Entwicklungsumgebung geliefert, die einen leistungsfähigen C/C++-Compiler mit automatischer Vektorisierung und Scheduling enthält, um die SIMD- und VLIW-Architektur zu unterstützen, ohne dass Assembler-Code geschrieben werden muss. Diese Entwicklungsumgebung beinhaltet auch Linker, Assembler, Debugger, Profiler und grafische Visualisierungs-Tools. Ein Befehlssatz-Simulator (ISS) erlaubt dem Entwickler eine schnelle Simulation und Evaluierung der Rechenleistung. Bei großen Systemen oder langen Testvektoren ermöglicht die schnelle, funktionelle Simulator-Option „TurboXim“ Geschwindigkeiten, die um den Faktor 40 bis 80 höher sind als mit ISS erreichbare Geschwindigkeiten, was eine effiziente Software-Entwicklung und funktionelle Verifikation erlaubt.

Cadence hat eine einschichtige CNN-Architektur auf dem DSP für die Erkennung deutscher Verkehrszeichen implementiert. Damit wurde ein CDR-Wert von 99,403 % mit einer 16-bit-Quantifizierung der Daten und einer 8-bit-Quantifizierung der Koeffizienten in allen Ebenen erreicht. Die Lösung verfügt über zwei Faltungsebenen, drei voll vernetzte Ebenen, vier ReLU-Ebenen, drei Max-Pooling-Ebenen und eine nichtlineare tanh-Ebene. Cadence hat eine durchschnittliche Leistung von 38,58 MACs/Zyklus für das ganze Netzwerk einschließlich der Zyklen für das Max-Pooling, tanh und die ReLU-Ebenen erreicht. Damit wurde die bislang höchste Leistung von 58,43 MACs pro Zyklus für die dritte Ebene erreicht, einschließlich der Zyklen für die tanh- und ReLU-Funktionen. Der DSP läuft mit 600 MHz und kann mehr als 850 Verkehrszeichen in einer Sekunde verarbeiten.

Die Zukunft von CNNs

Zu den vielversprechenden Bereichen in der Forschung von neuronalen Netzen gehören auch RNNs (Recurrent Neural Networks) mit Verwendung von LSTM (Long Short-Term Memory). Diese Bereiche entsprechen dem aktuellen Stand der Technik bei Zeitreihen-Erkennungsaufgaben, wie Spracherkennung und Handschrifterkennung. RNN/Autoencoder können außerdem Handschrift/Sprache/Bilder mit einer bestimmten Verteilung erzeugen.

Deep-Belief-Netzwerke, ein weiterer vielversprechender Netzwerktyp, verwenden die RBMs (Restricted Boltzman Machines) bzw. Autoencoder, lassen sich eine Ebene nach der anderen trainieren und sind folglich bei sehr tiefen Netzwerken einfacher anzulernen.

Insgesamt lässt sich festhalten: CNNs liefern die beste Leistung bei Problemen der Muster-/Bilderkennung und übertreffen in bestimmten Fällen sogar den Menschen. So wurde durch die Entwicklung von hierarchischen CNNs zur Erkennung von Verkehrszeichen im GTSRB die bisher höchste Leistung bei diesem Datensatz erreicht. Aktuell kann ein Tensilica Vision P5 DSP von Cadence mehr als 850 Verkehrszeichen-Erkennungen pro Sekunde durchführen.

Mit der Weiterentwicklung von neuronalen Netzen und entsprechenden Hardware-Lösungen wird die Leistungsfähigkeit dieser Systeme auch zukünftig wachsen und damit den Ansprüchen immer komplexerer Fahrerassistenzsysteme genügen.

 

Die Autoren

 

Chris Rowen
ist CTO bei der IP Group von Cadence. Er hat Elektrotechnik in Stanford (MSEE, PhD) und Physik in Harvard (BA) studiert.

 

Rishi Kumar
ist Senior Principal Design Engineer. Er arbeitet an CNNs für maschinelle Bildverarbeitung bei der IP Group von Cadence.

 


  1. Verkehrszeichen sicher erfassen
  2. Anforderungen an die Hardware

Lesen Sie mehr zum Thema


Das könnte Sie auch interessieren

Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu Cadence Design Systems GmbH

Weitere Artikel zu Safety und Security