-
Stand der Technik
-
Bekannte Deep-Learning-Modelle für Computer-Vision-Systeme leiden oft unter mangelnder Generalisierungsleistung bei realen Anwendungen, wie bspw. bei einer optischen Inspektion in der Fertigung. Dies ist darauf zurückzuführen, dass Netzwerkarchitekturen dieser Modelle in der Regel für den allgemeinen Anwendungsfall der Bildklassifizierung entwickelt wurden und kann u.a. darauf zurückgeführt werden, dass diese Modelle häufig dahingehend optimiert werden, um die Leistung speziell für diese Klassifizierungsaufgabe zu verbessern.
-
Bei einer Verwendung bzw. Optimierung der bekannten Modellen für reale Anwendungen in der optischen Inspektion in der Fertigung, bei denen die Datensätze verglichen zu den allgemeinen Bildklassifikationsanwendungsfällen in der Regel sehr vielfältig sind, geben diese Modelle jedoch übermäßig überschätze Zuverlässigkeit von Ergebnisse aus. D.h. bekannte Modelle nach dem neuesten Stand, die auf eine hohe Qualität der Inspektionsleistung optimiert werden, sind aufgrund ihrer Selbstüberschätzung der Zuverlässigkeit ihrer Ergebnisse nicht praxistauglich.
-
Ein Beispiel hierfür ist eine Optische Inspektion zur OK/NOK-Klassifizierung bei SMT (engl. Solder Mount Technology). Dieses Prüfproblem ist sehr komplex: die Vielfalt der zu prüfenden elektrischen Komponenten ist extrem hoch (> 2000 verschiedene Komponententypen, mit >150 neuen Typen pro Jahr). Darüber hinaus kann SMT auf einer Vielzahl von Linien in unterschiedlichen Werken ausgeführt werden, was die Komplexität zusätzlich erhöht.
-
Dieser hochkomplexe Aufbau stellt eine Herausforderung für das optische Inspektionssystem dar: Das Modell muss eine hohe Inspektionsleistung erreichen (geringe „Escape-Rate“ = falsche negative Vorhersage sowie geringe „Falschalarmrate“ = falsche positive Vorhersage) und gleichzeitig in der Lage sein, über den hochkomplexen Aufbau zu generalisieren. Dies führt jedoch bei den bekannten Modellen zu hohen Fehlerraten, welche zu einem hohen manuellen Prüfaufwand für verdächtige elektrische Komponenten und Lötstellen führt.
-
Es ist daher eine Aufgabe der Erfindung ein maschinelles Lernsystem zur optischen Inspektion insbesondere für die SMT Fertigung bereitzustellen, welches vorzugweise automatisiert mit Deep-Learning-Ansätzen trainiert werden kann und eine geringe Fehlalarmrate für bisher nicht-gesehene Bildkonstellationen erzielt.
-
Vorteile der Erfindung
-
Aufgrund der großen Datenvielfalt in der Optischen Inspektion für die Fertigung, aber auch speziell für SMT, spiegeln die Daten, die gesammelt und somit für das Modelltraining und die Bewertung verwendet werden können, nicht die gesamte Datenverteilung wider. Dies führt dazu, dass die Leistung eines Modells in der Produktion überschätzt wird: Aufgrund des architektonischen Designs der Stateof-the-Art-Netze (große Modelle mit vielen Trainingsparametern) haben sie zwar eine sehr gute Leistung (niedrige Escape-Rate, niedrige Falschalarmrate) beim Training, können aber nicht gut genug verallgemeinern, was zu einer geringen Leistung in der Produktion führt.
-
Die Erfindung schlägt deswegen ein verbessertes tiefes neuronales Netz vor, das sowohl eine gute Leistung während der Modellentwicklungsphase aufweist als auch ausreichend verallgemeinert ist, um die große Vielfalt an den verschiedenen Produktionslinien abzudecken.
-
Weitere Aspekte der Erfindung sind Gegenstand der nebengeordneten Ansprüche. Vorteilhafte Weiterbildungen sind Gegenstand der abhängigen Ansprüche.
-
Offenbarung der Erfindung
-
In einem ersten Aspekt betrifft die Erfindung ein insbesondere computerimplementiertes neuronales Netz, welches zur optischen Inspektion angelernt, insbesondere eingerichtet ist. Das neuronale Netz umfasst eine Eingabeschicht und eine Mehrzahl von verdeckten Schichten (engl. hidden layer) und eine Ausgabeschicht, wobei alle Schichten nacheinander in Reihe verschaltet sind.
-
Die Eingabeschicht ist eingerichtet, ein bereitgestelltes Bild aufzunehmen und weist eine Faltungsschicht auf, die höchstens 16 unterschiedliche Filter aufweist. Diese Filter der Eingabeschicht haben höchstens eine Dimension von 5x5 und einen Stride von 2. Stride ist eine Komponente von neuronalen Faltungsnetzen oder neuronalen Netzen, die bspw. auf die Komprimierung von Bildern und Videodaten abgestimmt sind. Stride ist ein Parameter des Filters des neuronalen Netzwerks, der den Umfang der Bewegung im Bild oder Video verändert. Wenn beispielsweise der Stride eines neuronalen Netzwerks auf 1 eingestellt ist, bewegt sich der Filter jeweils um ein Pixel bzw. eine Einheit.
-
Das Bild kann eine Aufnahme eines Produktes oder ein Auschnitte eines Produktes sein. Vorzugweise ist das Bild ein Bild einer Lötstelle.
-
Die Ausgabeschicht ist eingerichtet, ein Ergebnis der optischen Inspektion für das bereitgestellte Bild auszugeben. Eine Ausgabe der Ausgabeschicht können kontinuierliche Zahlen sein, bspw. für eine binäre Klassifikation p_0 und p_1 mit jeweils einem Wert aus einem Wertebereich von 0 bis 1. Gegeben einem Entscheidungsschwellwert kann dann die Ausgabe in ein OK/NOK Label umgewandelt werden. Die Ausgabeschicht weist zumindest eine vollvermaschte Schicht (engl. fully connected layer) auf. Die vollvermaschte Schicht weißt höchstens 128 Neuronen auf. Bevorzugt umfasst die Ausgabeschicht nach der vollvermaschten Schicht eine weitere Schicht (Prediction Schicht) mit zwei Neuronen, die jeweils p_0 und p_1 ausgeben.
-
Eine Abfolge der verdeckten Schichten weist zuerst eine Faltungsschicht umfassend höchstens 16 unterschiedliche Filter mit jeweils eine Dimension von höchstens 3x3 auf, gefolgt von einer Mehrzahl von Residual-Blöcken.
-
Der Vorteil ist, dass diese Architektur des neuronalen Netzes besonders kompakt ist und damit besonders recheneffizient und überraschenderweise eine höchstmögliche Generalisierungsfähigkeit beim Training erzielt.
-
Das neuronale Netz kann als ein Bildklassifikator aufgefasst werden, welcher dem Eingabebild einer oder mehreren Klassen einer vorgegebenen Klassifikation zu ordnet. Als Eingabebilder können beispielsweise Bilder von in Serie gefertigten, nominell identischen Produkten verwendet werden. Der Bildklassifikator kann beispielsweise darauf trainiert sein, die Eingabebilder einer oder mehreren von mindestens zwei möglichen Klassen zuzuordnen, die eine Qualitätsbeurteilung des jeweiligen Produkts repräsentieren.
-
Der Begriff des Bildes umfasst grundsätzlich jede in einem zwei- oder mehrdimensionalen Raster angeordnete Verteilung von Informationen. Diese Informationen können beispielsweise Intensitätswerte von Bildpixeln sein, die mit einer beliebigen Abbildungsmodalität, wie etwa mit einer optischen Kamera, mit einer Wärmebildkamera oder mit Ultraschall, aufgenommen wurden. Es können jedoch auch beliebige andere Daten, wie beispielsweise Audiodaten, Radardaten oder LIDAR-Daten, in Bilder übersetzt und dann gleichermaßen klassifiziert werden.
-
Es wird vorgeschlagen, dass zwischen der Eingangsschicht und der Abfolge der verdeckten Schichten sowie zwischen der Abfolge der verdeckten Schichten und der Ausgabeschicht jeweils eine Batch-Normalisierungsschicht und eine Aktivierungsfunktionsschicht zwischengeschaltet ist, wobei die Aktivierungsfunktionsschicht eine ReLu-Aktivierungsfunktion aufweist. Diese Modifikation der Architektur hat die Generalisierungsfähigkeit weiter verbessert.
-
Weiterhin wird vorgeschlagen, dass die Mehrzahl von Residual-Blöcken höchstens vier Residual Blöcke aufweist, wobei die Residual-Blöcke zumindest eine Faltungsschicht und eine die Faltungsschicht überbrückende Verbindung (engl. skip connection) aufweisen. Bevorzugt umfasst die Mehrzahl der Residual-Blöcke höchstens zwei oder drei Faltungsschichten, die alle von der jeweiligen überbrückenden Verbindung des jeweiligen Residual Blocks überbrückt werden. Vorzugweise verdoppelt sich eine Anzahl der Filter entlang der Abfolge der Residual Blöcke je Residual Block. In der Abfolge der Residual Blöcke kann die Anzahl der Filter beispielsweise 16, 32, 64 und 128 betragen. Bevorzugt beträgt der Stride gleich 2 für die Residual Blöcke.
-
Weiterhin wird vorgeschlagen, dass vor der Ausgabeschicht ein (global average) Pooling Schicht vorgeschaltet ist. Der Vorteil ist, dass hiermit nochmals die Generalisierungsfähigkeit verbessert wurde.
-
In einem zweiten Aspekt der Erfindung wird vorgeschlagen, dass das neuronale Netz des ersten Aspektes der Erfindung zur optischen Inspektion insbesondere in der Fertigung verwendet wird. Besonders bevorzug wird es zur optischen Inspektion von SMT verwendet. Unter SMT kann ein Lötvorgang verstanden werden.
-
In einem dritten Aspekt der Erfindung wird ein Verfahren zum Trainieren eines neuronalen Netzes des ersten Aspektes der Erfindung vorgeschlagen. Das Training umfasst ein Bereitstellen eines Trainingsdatensatzes sowie ein Optimieren der Parameter des neuronalen Netzes unter Verwendung des Trainingsdatensatzes.
-
Es wird vorgeschlagen, dass beim Optimieren der Parameter ein gleitender Durchschnitt (engl. Moving Average) verwendet wird. Dies ruft den Vorteil hervor, dass der gleitende Durchschnitt effizient berechnet werden kann und große Variationen der Gewichte glättet und damit zu einem stablieren Training führt.
-
Weiterhin wird vorgeschlagen, dass das trainierte neuronale Netz, abhängig von einem erfassten Bild eine zugehörige Ausgangsgröße ermittelt, abhängig von welcher daraufhin eine Steuergröße mittels zB. einer Steuereinheit ermittelt werden kann.
-
Die Steuergröße kann zum Steuern eines Aktors eines technischen Systems verwendet werden. Das technische System kann zum Beispiel eine zumindest teilautonome Maschine, ein Werkzeug oder eine Werkmaschine sein.
-
In weiteren Aspekten betrifft die Erfindung eine Vorrichtung sowie ein Computerprogramm, die jeweils eingerichtet sind, die obigen Verfahren auszuführen und ein maschinenlesbares Speichermedium, auf dem dieses Computerprogramm gespeichert ist.
-
Nachfolgend werden Ausführungsformen der Erfindung unter Bezugnahme auf die beiliegenden Zeichnungen näher erläutert. In den Zeichnungen zeigen:
- 1 schematisch eine Architektur eines neuronalen Netzes für eine optische Inspektion;
- 2 schematisch ein Flussdiagramm einer Ausführungsform der Erfindung;
- 3 schematisch ein Ausführungsbeispiel zur Steuerung eines Fertigu ngssystems;
- 4 schematisch eine Trainingsvorrichtung.
-
Beschreibung der Ausführungsbeispiele
-
1 zeigt schematisch ein neuronales Netz, welches besonders für eine optische Inspektion geeignet ist, bei welcher ein breites Spektrum an Eingangsbilder, die unterschiedliche fehlerhafte bzw. defekte Produkte abbilden können, auftreten können.
-
Das neuronale Netz nach 1 ist derart aufgebaut, dass es eine Vielzahl von Schichten (102) aufweist, die nacheinander verbunden sind, und somit deren ausgegebenen Aktivierungskarten (eng. activation maps) deren verbundenen nachfolgenden Schichten weitergeben.
-
Eine erste Schicht des neuronalen Netzes, insbesondere eine Eingabeschicht, ist eingerichtet, ein Bild (100) aufzunehmen. Im Ausführungsbeispiel der 1 ist das Bild (100) eine schematische Darstellung eines Lötpunktes. In dem Ausführungsbeispiel der 1 hat das Bild (100) eine Auflösung (103) von 224 x 224 x c. Die Variable c steht für eine Anzahl der Bildkanäle, bspw. c=3 für RGB Bilder oder c=1 für Grauwertbilder.
-
Nachdem das Bild (100) durch die Eingabeschicht des neuronalen Netzes verarbeitet wurde, weist die Aktivierungskarte der ersten Schicht einer Auflösung (103) über 112 x 112 x 16 auf.
-
Diese Auflösung (103) der Aktivierungskarte kann dahingehend erklärt werden, dass die Eingabeschicht des neuronalen Netzes gemäß 1 folgende Konfiguration aufweist: die Eingabeschicht ist eine Faltungsschicht (conv) und weist insgesamt 16 Filter auf, die jeweils eine Dimension von 5x5 aufweisen. Ferner gibt im Allgemeinen der Term /2 einen Stride von 2 an.
-
Wie in 1 abgebildet, ist die Eingabeschicht mit einer Batch-Normalisierungsschicht (BN) sowie einer daraufhin nachfolgenden Aktivierungsschicht mit einer ReLu-Aktivierungsfunktion verbunden.
-
Die Schichten, welche das Kürzel Res tragen, sind sogenannte Residual Blöcke. Die Residual Blöcke sind dadurch gekennzeichnet, dass diese zumindest eine Faltungsschicht aufweisen, die über eine Überbrückungsverbindung (engl. skip connection) überbrückt wird. In dem Ausführungsbeispiel der 1 weist der 1. Residual Block insgesamt drei Faltungsschichten auf, was über den Term (3) angezeigt wird, wobei jede der Faltungsschichten im ersten Residual Block jeweils 16 Filter aufweisen.
-
Die Schichten nach den Residual Blöcken können die folgende Abfolge aufweisen: zuerst folgt eine Batch-Normalisierungsschicht mit einer weitere ReLu Aktivierungsschicht. Daraufhin folgt eine Pooling Schicht sowie eine vollvermaschte Schicht. Die vollvermaschte Schicht insbesondere in Kombination mit einer Prediction-Schicht kann als eine Ausgabeschicht des neuronalen Netzes verstanden werden. Diese Ausgabeschicht gibt dann eine Klassifikation des Eingangsbildes (100) aus. Im vorliegenden Beispiel kann die Klassifikation dahingehend erfolgen, ob das Eingangsbild (100) OK bzw. nicht OK ist. In anderen Worten, es wird ein NOK/OK Label (101) als Ergebnis der Klassifkation des Bildes (100) ausgegeben.
-
2 zeigt schematisch ein Flussdiagramm eines Verfahrens zum Trainieren eines neuronalen Netzes nach 1.
-
Das Verfahren beginnt mit Schritt S21, in welchem ein Trainingsdatensatz bereitgestellt wird.
-
Im nachfolgenden Schritt S22 wird das neuronale Netz auf diesen Trainingsdaten trainiert. Dabei kann ein bekanntes Gradientenabstiegsverfahren verwendet werden, um die Gewichte zu optimieren. Das neuronale Netz ist nach dem Training eingerichtet, aus den Eingangsbildern x eine optische Inspektion auszugeben, wobei die optische Inspektion charakterisiert, ob die Eingabe OK bzw. nicht OK ist.
-
Nachdem das neuronale Netz nach Schritt S22 trainiert wurde, kann dies gemäß Schritt S23 zur optischen Inspektion für eine Produktionsmaschine, wie beispielsweise in 3 gezeigt, verwendet werden.
-
3 zeigt schematisch einen Aktor mit einem Steuerungssystem 40. In vorzugsweise regelmäßigen zeitlichen Abständen wird eine Umgebung 20 des Aktors 10 mit einem Sensor 30, insbesondere einem bildgebenden Sensor wie einem Videosensor, erfasst, der auch durch eine Mehrzahl von Sensoren gegeben sein kann, beispielsweise eine Stereokamera. Auch andere bildgebende Sensoren sind denkbar, wie beispielsweise Radar, Ultraschall oder Lidar. Auch eine Wärmebildkamera ist denkbar. Das Sensorsignal S - bzw. im Fall mehrerer Sensoren je ein Sensorsignal S - des Sensors 30 wird an das Steuerungssystem 40 übermittelt. Das Steuerungssystem 40 empfängt somit eine Folge von Sensorsignalen S. Das Steuerungssystem 40 ermittelt hieraus Ansteuersignale A, welche an einen Aktuator 10 übertragen werden. Der Aktuator 10 kann empfangene Steuerbefehle in mechanische Bewegungen oder Änderungen von physikalischen Größen umsetzt. Der Aktuator 10 kann z. B. den Steuerbefehl A in eine elektrische, hydraulische, pneumatische, thermische, magnetische und/oder mechanische Bewegung umsetzen oder Veränderung hervorrufen. Spezifische, aber nicht einschränkende Beispiele sind Elektromotoren, elektroaktive Polymere, Hydraulikzylinder, piezoelektrische Aktoren, pneumatische Aktoren, Servomechanismen, Solenoide, Schrittmotoren usw.
-
Das Steuerungssystem 40 empfängt die Folge von Sensorsignalen S des Sensors 30 in einer optionalen Empfangseinheit 50, die die Folge von Sensorsignalen S in eine Folge von Eingangsbildern x umwandelt (alternativ kann auch unmittelbar je das Sensorsignal S als Eingangsbild x übernommen werden). Das Eingangsbild x kann beispielsweise ein Ausschnitt oder eine Weiterverarbeitung des Sensorsignals S sein. Das Eingangsbild x umfasst einzelne Frames einer Videoaufzeichnung. Mit anderen Worten wird Eingangsbild x abhängig von Sensorsignal S ermittelt. Die Folge von Eingangsbildern x wird dem trainierten neuronalen Netz gemäß 2 zugeführt.
-
Das neuronale Netz wird vorzugsweise parametriert durch Parameter, die in einem Parameterspeicher hinterlegt sind und von diesem bereitgestellt werden.
-
Das neuronale Netz ermittelt aus den Eingangsbildern x Ausgangsgrößen y. Diese Ausgangsgrößen y können insbesondere eine Klassifikation und/oder semantische Segmentierung der Eingangsbilder x umfassen. Ausgangsgrößen y werden einer optionalen Umformeinheit zugeführt, die hieraus Ansteuersignale A ermittelt, welche dem Aktuator 10 zugeführt werden, um den Aktuator 10 entsprechend anzusteuern. Ausgangsgröße y umfasst Informationen über Objekte, die der Sensor 30 erfasst hat.
-
Der Aktuator 10 empfängt die Ansteuersignale A, wird entsprechend angesteuert und führt eine entsprechende Aktion aus. Der Aktuator 10 kann hierbei eine (nicht notwendigerweise baulich integrierte) Ansteuerlogik umfassen, welches aus dem Ansteuersignal A ein zweites Ansteuersignal ermittelt, mit dem dann der Aktuator 10 angesteuert wird.
-
In weiteren Ausführungsformen umfasst das Steuerungssystem 40 den Sensor 30. In noch weiteren Ausführungsformen umfasst das Steuerungssystem 40 alternativ oder zusätzlich auch den Aktuator 10.
-
In alternativen Ausführungsformen ist alternativ oder zusätzlich zum Aktuator 10 eine Anzeigeeinheit vorgesehen, welche eine Ausgangsgröße des Steuerungssystems 40 anzeigen kann.
-
In anderen Ausführungsformen kann die Anzeigeeinheit eine Ausgabeschnittstelle zu einer Wiedergabevorrichtung sein, wie z. B. ein Display, eine Lichtquelle, ein Lautsprecher, ein Vibrationsmotor usw., die zur Erzeugung eines sensorisch wahrnehmbaren Ausgangssignals verwendet werden kann, das auf der Grundlage der Ausgabe des neuronalen Netzes erzeugt werden kann.
-
In einem Ausführungsbeispiel der 3 wird das Steuerungssystem 40 zur Ansteuerung einer Fertigungsmaschine 11 eines Fertigungssystems 200 verwendet wird, indem ein diese Fertigungsmaschine 11 steuernder Aktuator 10 angesteuert wird. Bei der Fertigungsmaschine 11 kann es sich beispielsweise um eine Maschine zum Löten, Stanzen, Sägen, Bohren, Fräßen und/oder Schneiden handeln oder um eine Maschine, die einen Schritt einer Halbleiterherstellung durchführt, wie chemischen Beschichtungsverfahren, Ätz- und Reinigungsprozessen, physikalische Beschichtungs- und Reinigungsverfahren, Ionenimplantation, Kristallisation oder Temperaturprozesse (Diffusion, Ausheizen, Aufschmelzen etc.), Fotolithografie oder chemisch-mechanisches Planarisieren.
-
Bei dem Sensor 30 kann es sich dann beispielsweise um einen optischen Sensor handeln, der z.B. Eigenschaften von Fertigungserzeugnissen 12a, 12b erfasst. Es ist möglich, dass diese Fertigungserzeugnisse 12a, 12b beweglich sind. Es ist möglich, dass der die Fertigungsmaschine 11 steuernde Aktuator 10 abhängig von einer Zuordnung der erfassten Fertigungserzeugnisse 12a, 12b angesteuert wird, damit die Fertigungsmaschine 11 entsprechend einen nachfolgenden Bearbeitungsschritt des richtigen der Fertigungserzeugnisses 12a, 12b ausführt.
-
4 zeigt schematisch eine Trainingsvorrichtung 500 umfasst einen Bereitsteller 51, der aus einem Trainingsdatensatz Eingangsbilder bereitstellt. Eingangsbilder werden dem zu trainierenden neuronalen Netz 52 zugeführt, das hieraus Ausgangsgrößen ermittelt. Ausgangsgrößen und Eingangsbilder werden einem Beurteiler 53 zugeführt, der hieraus aktualisierte Hyper-/Parameter ermittelt, die dem Parameterspeicher P übermittelt werden und dort die gegenwärtigen Parameter ersetzen. Der Beurteiler 53 ist eingerichtet, die Schritte S22 des Verfahren nach 1 auszuführen.
-
Die vom Trainingsvorrichtung 500 ausgeführten Verfahren können als Computerprogramm implementiert auf einem maschinenlesbaren Speichermedium 54 hinterlegt sein und von einem Prozessor 55 ausgeführt werden.
-
Der Begriff „Computer“ umfasst beliebige Geräte zur Abarbeitung vorgebbarer Rechenvorschriften. Diese Rechenvorschriften können in Form von Software vorliegen, oder in Form von Hardware, oder auch in einer Mischform aus Software und Hardware.