Entwicklung einer kamerabasierten Legoteil Zählmaschine: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 28: | Zeile 28: | ||
# Die Fehlerrate soll bei 0% liegen. | # Die Fehlerrate soll bei 0% liegen. | ||
# Test und wiss. Dokumentation der Ergebnisse | # Test und wiss. Dokumentation der Ergebnisse | ||
==Objekterkennung mit Matlab== | |||
In folgenden Kapiteln werden grundlegende Themen zur Klassifizierung von Legoteilen behandelt. Zum einen wird ein möglicher Hardwareaufbau gezeigt und zum anderen werden Programmabschnitte der Software beschrieben. | |||
===Beschreibung der Hardwarekomponenten=== | |||
Die LEGO-Bauteile stammen aus EV3- und NXT-Basis- und Ergänzungssets und werden in eine Kunststoffkiste umgefüllt. Diese Kiste wird in eine Vorrichtung gestellt, die gekippt werden kann. Durch zunächst leichtes Kippen legen sich die ersten Teile an eine 90 Grad zur offenen Kiste befindlichen Wand, die aus Vorder- und Rückwand besteht, wobei sich Letztere dicht vor einem Förderband befindet. Die mit der Kiste bewegliche Vorderwand fördert mit ihrer Vorderkante vereinzelte LEGO-Teile auf das Förderband. Sowohl die Wände als auch das Förderband haben seitliche Begrenzungen, so dass die Bauteile nicht aus der Maschine fallen können; diese Begrenzungen können außerdem durch Verengen zum weiteren Vereinzeln genutzt werden. | |||
Sollte sich dieses Verfahren als nicht erfolgreich erweisen, wäre alternativ eine Vorsortierung durch Sieben denkbar; d. h. aus der Kiste gelangen die Teile in eine Schüttelvorrichtung, welche die Teile durch zunächst feine, später gröbere Löcher auf das o. g. Förderband fallen lässt. | |||
Das Kamerasystem besteht aus einer handelsüblichen Webcam mit einer Auflösung von 1920x1080 Pixeln und einer Ringbeleuchtung. Die Pixelanzahl kann noch verringert werden, damit ein geringeres Datenvolumen im Programm verarbeitet werden muss. Die Kamera wird in einer zur Seite und nach oben lichtdichten, aber innen beleuchteten Box über dem Förderband installiert. Diese Box dient zur Herstellung immer identischer Lichtverhältnisse in der Box, damit die von der Kamera aufgenommenen Bilder qualitativ konstant sind und die Maschine unabhängig von wechselnden äußeren Lichtverhältnissen (Sonne, Dunkelheit) zuverlässig arbeiten kann. | |||
===Farbanalyse=== | |||
Im ersten Schritt in der Software wird die Farbe analysiert. Jede zu berücksichtigende Farbe bekommt eine Matrix in der eine 1 an einem Bildpunkt gesetzt wird , wenn sich an diesem Punkt die Farbe befindet und eine 0, wenn dies nicht der Fall ist. Für die Farbe "Weiß" ensteht das Binärbild das rechts zu sehen ist. | |||
===Flood-Filling=== | |||
Im nächsten Schritt werden Regionen gefunden und gefüllt in jedem Binärbild zu den einzelnen Farben. Dazu wird durch den Flood-Filling-Alghorithmus zusammenhängende Bereiche erkannt. Wodurch das rechts liegende Bild entsteht. | |||
===Moore-Neighbour-Tracing-Alghorithmus=== | |||
Der Grundlegende Ablauf dieses Verfahrens geht nach folgendem Schema vor: | |||
Als Beispiel dient uns ein Marienkäfer, dessen Weg in der rechten Abbildung zu sehen ist. Der erste Schritt ist auf dem Bild nach dem ersten schwarzen Pixel ( in der Abbildung ist dieser rosa ) zu suchen. In diesem Beispiel wurde in der linken unteren Ecke angefangen den ersten Pixel zu untersuchen, ob dieser schwarz ist. Darauf wird der darüber liegende untersucht. Dies wird so lange fortgeführt bis die linke obere Ecke erreicht ist und darauf folgt die gleiche Prozedur von dem rechten Pixel des Startpixels aus. Dort ist dann in der dritten Zeile ein schwarzer Pixel gefunden worden, worauf nun der zweite Schritt des Alghorithmus beginnt. In diesem zweiten Schritt wird der nächste Punkt des Objektes gesucht. Der Marienkäfer wandert also einen Schritt zurück, aus der Richtung wo er hergekommen ist und geht nun die Nachbarpixel des Startpixels P0 im Uhrzeigersinn ab. Die blaue Linie beschreibt diesen Weg. Wenn der Käfer auf einen schwarzen Pixel stößt ist dies der neue Startpixel P und der zweite Schritt des Alghorithmus wird wiederholt. Dieser Schritt wiederholt sich so oft, bis wieder der erste Startpixel erreicht ist. Nun werden in einem dritten Schritt alle analysierten schwarzen Pixel gesichert. Von dem ersten Startpixel P0 aus können nun weitere Objekte gesucht werden, indem der erkannte Umriss sowie dessen enthaltene Pixel weiß im Bild eingezeichnet werden und wieder mit dem ersten Schritt von P0 aus begonnen wird. | |||
<!-- | <!-- |
Version vom 20. Januar 2015, 22:31 Uhr
Autor: Michael Deitel
Betreuer: Prof. Schneider
Art: Projektarbeit
Thema
Jedes Semester mühen sich die Studierenden mit dem Zählen der Legoteile beim Ausleihen und der Rückgabe. In dieser studentischen Arbeit gilt es eine Maschine zu entwickeln, die Legoteile vereinzelt und diese automatisch zählt.
Ziel
Digitales Zählen aller Legoteile in unter 10 Minuten und Ausgabe eine Soll-Ist Liste.
Aufgabenstellung
- Erkennen Sie die Bauteile eines EV3 und NXT Basis- und Ergänzungssets mithilfe einer Kamera (Webcam).
- Bildverarbeitung mit Matlab
- Die Form der Bauteile muss visuell erkannt und gezählt werden.
- Als Ausgabeformat ist eine Soll-Ist-Liste zu erstellen, auf der Fehlteile mit Bestellnummer zur Nachbestellung aufgelistet werden.
- Optimierung der Algorithmen auf Echtzeitfähigkeit.
- Die Fehlerrate soll bei 0% liegen.
- Test und wiss. Dokumentation der Ergebnisse
Objekterkennung mit Matlab
In folgenden Kapiteln werden grundlegende Themen zur Klassifizierung von Legoteilen behandelt. Zum einen wird ein möglicher Hardwareaufbau gezeigt und zum anderen werden Programmabschnitte der Software beschrieben.
Beschreibung der Hardwarekomponenten
Die LEGO-Bauteile stammen aus EV3- und NXT-Basis- und Ergänzungssets und werden in eine Kunststoffkiste umgefüllt. Diese Kiste wird in eine Vorrichtung gestellt, die gekippt werden kann. Durch zunächst leichtes Kippen legen sich die ersten Teile an eine 90 Grad zur offenen Kiste befindlichen Wand, die aus Vorder- und Rückwand besteht, wobei sich Letztere dicht vor einem Förderband befindet. Die mit der Kiste bewegliche Vorderwand fördert mit ihrer Vorderkante vereinzelte LEGO-Teile auf das Förderband. Sowohl die Wände als auch das Förderband haben seitliche Begrenzungen, so dass die Bauteile nicht aus der Maschine fallen können; diese Begrenzungen können außerdem durch Verengen zum weiteren Vereinzeln genutzt werden. Sollte sich dieses Verfahren als nicht erfolgreich erweisen, wäre alternativ eine Vorsortierung durch Sieben denkbar; d. h. aus der Kiste gelangen die Teile in eine Schüttelvorrichtung, welche die Teile durch zunächst feine, später gröbere Löcher auf das o. g. Förderband fallen lässt. Das Kamerasystem besteht aus einer handelsüblichen Webcam mit einer Auflösung von 1920x1080 Pixeln und einer Ringbeleuchtung. Die Pixelanzahl kann noch verringert werden, damit ein geringeres Datenvolumen im Programm verarbeitet werden muss. Die Kamera wird in einer zur Seite und nach oben lichtdichten, aber innen beleuchteten Box über dem Förderband installiert. Diese Box dient zur Herstellung immer identischer Lichtverhältnisse in der Box, damit die von der Kamera aufgenommenen Bilder qualitativ konstant sind und die Maschine unabhängig von wechselnden äußeren Lichtverhältnissen (Sonne, Dunkelheit) zuverlässig arbeiten kann.
Farbanalyse
Im ersten Schritt in der Software wird die Farbe analysiert. Jede zu berücksichtigende Farbe bekommt eine Matrix in der eine 1 an einem Bildpunkt gesetzt wird , wenn sich an diesem Punkt die Farbe befindet und eine 0, wenn dies nicht der Fall ist. Für die Farbe "Weiß" ensteht das Binärbild das rechts zu sehen ist.
Flood-Filling
Im nächsten Schritt werden Regionen gefunden und gefüllt in jedem Binärbild zu den einzelnen Farben. Dazu wird durch den Flood-Filling-Alghorithmus zusammenhängende Bereiche erkannt. Wodurch das rechts liegende Bild entsteht.
Moore-Neighbour-Tracing-Alghorithmus
Der Grundlegende Ablauf dieses Verfahrens geht nach folgendem Schema vor: Als Beispiel dient uns ein Marienkäfer, dessen Weg in der rechten Abbildung zu sehen ist. Der erste Schritt ist auf dem Bild nach dem ersten schwarzen Pixel ( in der Abbildung ist dieser rosa ) zu suchen. In diesem Beispiel wurde in der linken unteren Ecke angefangen den ersten Pixel zu untersuchen, ob dieser schwarz ist. Darauf wird der darüber liegende untersucht. Dies wird so lange fortgeführt bis die linke obere Ecke erreicht ist und darauf folgt die gleiche Prozedur von dem rechten Pixel des Startpixels aus. Dort ist dann in der dritten Zeile ein schwarzer Pixel gefunden worden, worauf nun der zweite Schritt des Alghorithmus beginnt. In diesem zweiten Schritt wird der nächste Punkt des Objektes gesucht. Der Marienkäfer wandert also einen Schritt zurück, aus der Richtung wo er hergekommen ist und geht nun die Nachbarpixel des Startpixels P0 im Uhrzeigersinn ab. Die blaue Linie beschreibt diesen Weg. Wenn der Käfer auf einen schwarzen Pixel stößt ist dies der neue Startpixel P und der zweite Schritt des Alghorithmus wird wiederholt. Dieser Schritt wiederholt sich so oft, bis wieder der erste Startpixel erreicht ist. Nun werden in einem dritten Schritt alle analysierten schwarzen Pixel gesichert. Von dem ersten Startpixel P0 aus können nun weitere Objekte gesucht werden, indem der erkannte Umriss sowie dessen enthaltene Pixel weiß im Bild eingezeichnet werden und wieder mit dem ersten Schritt von P0 aus begonnen wird.
Empfohlene Zusatzkurse
Literatur
- Demant, C.; Streicher-Abel, B.; Springhoff, A.: Industrielle Bildverarbeitung. Heidelberg: Springer, 3. Auflage 2011. ISBN 978-3-642-13096-0
- Hesse, S.; Schnell, G.: Sensoren für die Prozess- und Fabrikautomation. Wiesbaden: Vieweg+Teubner Verlag, 5. Auflage, 2011. ISBN 978-3-8348-0895-0
- Beyerer, J.; Puente León, F., Frese, C.: Automatische Sichtprüfung. Heidelberg: Springer, 2012. ISBN 978-3-642-23965-6
- Steinmeier, J.: Bildanalyse. Heidelberg: Springer, 2008. ISBN 978-3-540-79742-5
- Tönnies, K. D.: Grundlagen der Bildverarbeitung. München: Pearson Studium 2005. ISBN 3-8273-7155-4
Weblinks
- BrickIt - Dynaway Sorting Plant
- LEGO Axle Sorter AS-L40A
- LEGO Mindstorms NXT Vision Guided Brick Sorter ver1
- Realtime LEGO Brick Image Retrieval
- MATLAB and Octave Functions for Computer Vision and Image Processing
Siehe auch
→ zurück zum Hauptartikel: Studentische Arbeiten