ich war hier: Baumelement5738 » Baumelement4679 » TutoriumAutomatischeOptischeInspektion

Tutorium: Automatische optische Inspektion


Tutor:

Jordan Zapf

Ziel des Tutoriums:

  • Aufbau von Grundverständnis für Automatische optische Inspektion
  • Erklärung verschiedener Bildverarbeitungsmethoden

Adressaten des Lehrangebotes:

Interessierte Studenten der Fakultät Informatik

Teilnahme:

Wird durch Rundmail bekannt gegeben.

Veranstaltungsinhalte:

Automatische optische Inspektion


Leiterplatten


Bei der Produktion elektronischer Baugruppen werden in der Regel nach dem Bestücken und Löten der Leiterplatten Kontrollen durchgeführt, um die fehlerfreie Herstellung sicherzustellen. Es kommt durchaus vor, dass beim Bestücken durch Bestückungsautomaten oder beim anschließenden Lötprozess Fehler auftreten. Fehler können z. B. fehlende oder falsch bestückte Bauteile, verdrehte oder versetzte Bauteile oder Verunreinigungen der Leiterplatte sein. Diese Fehler müssen vor dem nächsten Arbeitsschritt in der Fertigung abgefangen und sofern möglich repariert werden; andernfalls, wenn sich eine Reparatur nicht lohnt oder nicht möglich ist, wird die Leiterplatte verschrottet.
Die Kontrolle der Leiterplatten auf Fehler kann auf zwei Arten erfolgen:
  • durch den Menschen
  • durch Maschinen
Hierbei hat die Kontrolle durch Menschen einige gravierende Nachteile:
  • Menschen können Fehler übersehen
  • Menschen werden müde und brauchen Pausen
  • Menschen können die feinen Strukturen und Bauteile auf den heutigen Leiterplatten ohne Hilfsmittel wie Mikroskope nicht mehr prüfen
  • Menschen klassifizieren Fehler unterschiedlich (wichtig bei Traceability = Rückverfolgbarkeit)
AOI-Systeme haben all die oben genannten Nachteile nicht (Wobei das Übersehen von Fehlern sich aus dem Arbeitsprinzip und der Qualität der Maschine ergibt).

Bildaufnahme


Die Bildaufnahmen der Leiterplatten können mit Scannern oder mit Kameras erfolgen. Werden die Bilder mit einem Scanner aufgenommen, muss dieser nur einmal über die zu kontrollierende Leiterplatte fahren. Bei Kamerasystemen gibt es Systeme mit einer Kamera die von oben auf die Platte gerichtet ist, Systeme mit mehreren Kameras und Systeme, bei denen noch zusätzlich schräg angebrachte Kameras vorhanden sind. Durch den im Gegensatz zu Scannern begrenzten Sichtbereich muss die Kamera mittels einer XY-Verfahreinheit über die Leiterplatte bewegt werden. Eine Software steuert, wohin der Schlitten bewegt werden muss und wann Bilder gemacht werden sollen.
Damit die Maschine weiß, an welcher Position welches Bauteil sein muss, benötigt diese die CAD Daten der entsprechenden Leiterplatte, in denen die Position, die Bezeichnung, der Drehwinkel und ggf. noch die Gehäuseform verzeichnet sind.

Stand-Alone oder Inline


Bei Stand-Alone-Geräten wird immer eine Leiterplatte von Hand in das System eingeführt und nach der Kontrolle wieder von Hand entnommen.
Beim Inline-System werden die Leiterplatten über ein Förderband in die Maschine gebracht. Über SMEMA- oder Siemensschnittstelle und Lichtschranken wird der Transport überwacht und gesteuert und nach der Kontrolle wird die Leiterplatte auf der anderen Seite der Maschine herausgefahren.

Nur AOI oder Kombigerät


Normale Geräte bieten nur die Möglichkeit, eine optische Sichtkontrolle durchzuführen. Einige Hersteller haben jedoch auch Geräte im Programm, die zusätzlich beispielsweise eine Röntgenprüfung durchführen können und so eine Zwei-in-eins-Funktionalität bieten (AOI und AXI kombiniert).

Beleuchtung


Damit mit den Kameras oder Scannern die zu kontrollierenden Bauteile auf einer Leiterplatte ausreichend gut erkannt werden können, muss diese künstlich beleuchtet werden. Die Lichtquellen sind in der Maschine unterschiedlich angeordnet. Es gibt je nach System die Möglichkeit, den aktuellen Bildausschnitt mit Direktlicht von oben oder mit indirektem Licht von der Seite (Seitenlicht) zu bescheinen. Zusätzlich können je nach System auch noch verschiedenfarbige Lichtquellen benutzt werden. In den Geräten früherer Tage wurden zum Teil Leuchtstoffröhren für die Beleuchtung benutzt. Da jedoch die Beleuchtungen ständig abgewechselt werden müssen, werden die Leuchtstoffröhren durch das ständige Ein- und Ausschalten schnell zerstört. Moderne Geräte benutzen daher LEDs. Diese dunkeln zwar mit der Zeit ein wenig nach, dies kann jedoch durch eine Kalibrierung (Grauwertabgleich), die in bestimmten Abständen durchgeführt wird, kompensiert werden.

Offen oder geschlossen


Offene Systeme besitzen keinerlei Abschirmung gegen den Einfall von Störlicht. Fällt Sonnenlicht oder das Licht einer Leuchtstofflampe auf die Leiterplatte, können die Systeme Schwierigkeiten bekommen.
Geschlossene Systeme sind gegen den Einfall von Störlichtquellen durch ein nahezu komplett geschlossenes Gehäuse und Spezialscheiben geschützt. In ihnen werden die Leiterplatten nahezu nur noch von künstlichem Licht beleuchtet. Dadurch können die Beleuchtungssituationen beliebig reproduziert und die Maschinen optimal eingestellt werden.

Analyseverfahren und Art der Bildauswertung


Die von einem Leiterplattenausschnitt mit Bauteilen gemachten Bilder werden darauf untersucht, ob das abgebildete Bauteil ordnungsgemäß bestückt und gelötet wurde.
Beim Bitmapvergleich werden die aufgenommenen Bilder mit früher aufgenommenen Vergleichsbildern von guten Bauteilen verglichen. Kommt es zu einer vorher definierten Abweichung, gilt das Bauteil als fehlerhaft.
Beim Vektorvergleich wird versucht, anhand von Hell-Dunkelübergängen das Bauteil zu finden. Daran kann man dann erkennen, wie sehr das Bauteil versetzt und/oder verdreht ist. Für die Pins kommt die gleiche Analyse zur Anwendung. Für die Lötstellenkontrolle werden dann Grauwertanalysen verwendet, bei denen in einem Messfenster, das am Ende des Pins angelegt wird, der mittlere Grauwert der Lötstelle unter einer bestimmten Beleuchtung gemessen wird.
Zusätzlich gibt es noch Systeme, die in keine der beiden oben genannten Kategorien passen und eine Mischung aus 2-Farben-Bild- und Grauwertanalyse benutzen, um Bauteile und Lötstellen zu finden.

Bildverarbeitung


Ausgangsbild


Ausgangsbild

Canny-Algorithmus (auch: Canny Edge Detector)


Der Canny Kantendektor ist 1986 von dem Namensgeber John Canny im Jahr 1986 veröffentlich worden und gehört zu den Algorithmen der Kantendetektion

Canny wollte einen Algorithmus zur Kantendetektion entwickeln, der wesentlich drei Ziele verfolgt:
  • Erkennung
    • Alle tatsächlichen Kanten sollen gefunden werden, aber keine falschen
  • Lokalisierung
    • Abstand zwischen tatsächlicher und erkannter Kante möglichst klein
  • Ansprechverhalten
    • Keine Mehrfacherkennung ein- und derselben Kante

Vorgehen


Der Algorithmus lässt sich in vier Stufen unterteilen:
  • Vorverarbeitung (Glättung)
    • Mit einem Gauß-Filter wird das Rauschen unterdrückt
  • Gradienten berechnen (Kantendetektion)
    • Die Detektion berechnet die Kantenstärke und Kantenrichtung
  • Unterdrückung von Nicht-Maxima
    • Es werden nur lokale Maxima der Kantenstärke als Kantenpixel zugelassen
  • Schwellenwertbildung mit Hysterese
    • Die Hysterese unterdrückt nicht relevante Kanten mittels eines Schwellenwertverfahrens

Vorverarbeitung


Kantendetektoren sind anfällig für Rauschen. Damit das Rauschen reduziert wird, wird üblicherweise ein 5x5 Gauß-Filter verwendet mit einer Standardabweichung von 1,4.

5x5 Gauss-Kernel

Dennoch ist zu beachten, dass die Werte von diesem Filter je nach Situation angepasst werden müssen.

Gradienten berechnen


Danach wird auf das geglättete Bild eine Ableitung angewendet. Dazu können beispielsweise der Sobel-Operator oder auch der Laplace Operator eingesetzt werden.

Kantendetektion


Kantendetektion

Sobel-Operator


Sobel-Operator

Sobel X Resultat


Scale = 1, Delta = 0

Sobel Y Resultat


Scale = 1, Delta = 0

Sobel Resultat


Scale = 1, Delta = 0

Absolute Kantenstärke und Kantenrichtung


Absolute Kantenstärke und Kantenrichtung

Unterdrückung von Nicht-Maxima


Um sicherzustellen, dass eine Kante nicht mehr als ein Pixel breit ist, sollen im folgenden Schritt einzig die Maxima entlang einer Kante erhalten bleiben. Dafür wird vom Bild mit den absoluten Kantenstärken ausgegangen und für jedes Pixel die Werte

Schwellenwertbildung mit Hysterese


Schwellenwertbildung mit Hysterese

Canny Edge Detector Resultat 1


T1 = 20, T2 = 200, Aperture Size = 3 (Sobel Kernel Size), L2 Gradient = true

Canny Edge Detector Resultat 2


T1 = 150, T2 = 200, Aperture Size = 3 (Sobel Kernel Size), L2 Gradient = true

Canny Edge Detector Resultat 3


T1 = 150, T2 = 200, Aperture Size = 7 (Sobel Kernel Size), L2 Gradient = true

Filter


Normalized Block and Gaussian Filter


Normalized Block and Gaussian Filter

Median Filter


Median Filter

Bilateral Filter


Bilateral Filter

Normalized Block Filter


Kernel Length = 5, Sehr simpler Filter

Gaussian Filter


Kernel Length = 5, Sehr verbreiteter und sehr guter allgemeiner Filter

Median Filter


Kernel Length = 5, Sehr gut um komplette Bildlücken zu entfernen, da fehlende Pixel komplett ersetzt werden und Extremwerte ignoriert werden

Bilateral Filter


Kernel Length = 21, Sehr gut um Kanten zu erhalten und trotzdem Rauschen heraus zu filtern

Histogram


Histogram

Gray


(R+G+B)/3

Histogram Equalization


Histogram Equalization Berechnung

Histogram Equalization Resultat im Histogram

Histogram Equalization Resultat

Contrast Limited Adaptive Histogram Equalization (CLAHE)


  • Bild wird in Kacheln unterteilt (OpenCV 8x8 als Standard)
  • Darüber wird dann eine Histogram Equalization angewendet
  • Sollte Rauschen in der Kachel vorhanden sein würde es aber somit nur verstärkt werden, deshalb wird eine Kontrastbegrenzung vorgenommen
  • Wenn ein Histogram-Bin über der Kontrastbegrenzung liegt (OpenCV 40 als Standard) werden die Pixel beschnitten und gleichmäßig auf andere Bins verteilt, bevor die Histogram Equalization durchgeführt wird

Verteilung der Pixel

  • Um Artefakte in den Kachelrändern zu entfernen, wird eine bilineare Interpolation angewendet

CLAHE Resultat im Histogram

CLAHE Resultat, Cliplimit = 2, tileSize = 8

Quellen


https://de.wikipedia.org/wiki/Automatische_optische_Inspektion
https://www.kuppelwieser.net/index.php/technik/15-bildverarbeitung/40-canny-algorithmus
https://de.wikipedia.org/wiki/Sobel-Operator
https://de.wikipedia.org/wiki/Arctan2
https://de.wikipedia.org/wiki/Canny-Algorithmus
https://docs.opencv.org/2.4/modules/imgproc/doc/filtering.html?highlight=blur#blur
https://de.wikipedia.org/wiki/Gau%C3%9F-Filter
https://de.wikipedia.org/wiki/Rangordnungsfilter#Medianfilter
https://de.wikipedia.org/wiki/Bilaterale_Filterung
http://eric-yuan.me/bilateral-filtering/
https://www.researchgate.net/figure/Histogram-of-the-pixel-grayscale-values-of-the-Corpus-Callosum_fig4_228695982
https://en.wikipedia.org/wiki/Adaptive_histogram_equalization


CategoryTutorienFKITWS1819;CategoryTutorienFKITSS18
Diese Seite wurde noch nicht kommentiert.
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki