FPGA based machine learning for industrial image processing

Dank moderner Methoden des Machine Learning sind Computer heute in der Lage, Aufgaben zu lösen, die noch vor wenigen Jahren als unüberwindbare Hürden angesehen wurden. Sie haben im Spiel Go das Niveau von menschlichen Spielern übertroffen, können selbstständig Autos lenken und auf Bildern und Videoaufnahmen Objekte erkennen und klassifizieren, ohne dass dies explizit programmiert wurden.


Eine Gemeinsamkeit dieser drei Beispiele ist die Verwendung neuronaler Netze, die zwar schon seit Jahrzehnten bekannt, jedoch hinsichtlich des erforderlichen Rechenaufwandes und aufgrund der Komplexität des Lernvorgangs erst etwa seit zehn Jahren realisierbar sind. Ein solches neuronales Netz optimiert seine interne Verschaltung anhand vorher klassifizierter Bilder. Dieser Vorgang wird als Lernen einer Aufgabestellung bezeichnet. Die Technologie gehört dementsprechend in den Bereich des maschinellen Lernens (Machine Learning). Für das visuelle Machine Learning haben sich vor allem Convolutional Neural Networks (CNN), die dem Aufbau des visuellen Kortex nachempfunden sind, als leistungsfähig erwiesen. CNNs erzielen ausgezeichnete Ergebnisse bei komplexen Klassifikations- und Detektionsaufgaben und besitzen daher auch in der industriellen Bildverarbeitung Potential. Anwendungsbeispiele hierfür sind die Defekterkennung, Texterkennung (OCR) oder Texturanalyse.


Die Forschungsaufgabe besteht darin, Machine Learning für industrielle Anwendungen nutzbar zu machen. Hierzu ist die Implementierung des neuronalen Netzes auf einem FPGA vorgesehen. Aufgrund der begrenzten Ressourcen des FPGA und der harten Echtzeitanforderung ist jedoch die Größe und Genauigkeit des CNN begrenzt, was die Suche nach einer geeigneten Netzarchitektur erschwert. Eine weitere Herausforderung stellt das Fehlen großer vorklassifizierter Datenmengen dar, die für das Lernen des CNN notwendig sind.