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:
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:
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. |