Legoteil-Erkennung/Klassifizierung B

Aus HSHL Mechatronik
Version vom 26. Juni 2015, 16:46 Uhr von Tim Dienwiebel (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „'''Autor:''' Tim Dienwiebel <br/> '''Betreuer:''' Prof. Schneider == Motivation == Im Sommersemest…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Autor: Tim Dienwiebel
Betreuer: Prof. Schneider

Motivation

Im Sommersemester 2015 wurde im SDE Praktikum erstmals ein neues Projekt behandelt, als das bisher bearbeitete Autonome Fahrzeug. Es wurde damit begonnen, eine Legoteil Zählmaschine zu entwickeln. Von Null auf wurden Teillösungen und Konzepte erstellt, die im Laufe des nächsten Semesters zu einer funktionierenden Maschine zusammengefügt werden sollen. Die Hauptaufgabe der Legoteil Zählmaschine ist das Erkennen und Zählen von Legoteilen, welche in einem chaotischen System auf ein Förderband gelegt werden. Das Projekt im Fach Digitale Signal- und Bildverarbeitung bestand daher daraus, vier frei wählbare Legoteile zu fotografieren, die Bilder in Matlab einzulesen und das Legoteil zu identifizieren. Zur Identifizierung sollte ein Algorithmus in Matlab implementiert werden, welcher auf den Stoff aufbaut aufbaut, der im Fach der Digitalen Signal- und Bildverarbeitung im selben Semester gelehrt wurde.

Ziel

Vier Legoteile sollen fehlerfrei erkannt werden und zusammen mit ihrer Teilenummer und der Anzahl an gezählten Teilen in Matlab hinterlegt werden.

Aufgabe

  1. Fotografieren Sie 4 Legoteile ihrer Wahl mit einer Webcam auf einem Musterstück eines geeigneten Förderbandes.
  2. Lesen Sie die Bilder in Matlab ein.
  3. Identifizieren Sie die sich auf dem Förderband befindlichen Legoteile und ordnen diese somit ihren Teilenummern zu.
  4. Vermeiden Sie Fehler in der Erkennung durch eine geeignete Klassifizierung und durch Segmentierung.

Selbstreflexion

In meiner Lösung wurde die Erkennung von 6 verschiedenen Teilen Problemlos umgesetzt. Auch die Erkennung mehrere Teile in einem Bild wurde mittels Objektsegmentierung realisiert um somit gegebenenfalls mehrere Teile einzeln zu erkennen, die auf einem Bild erfasst wurden. Das könnte passieren, falls die mechanische Vereinzelung der Anlage Probleme haben sollte. Der Algorithmus wurde so allgemein wie möglich geschrieben und ich habe stets im Hinterkopf gehabt, zukünftig so viel Mehrwert wie möglich für das Projekt der Legoteil Zählmaschine im SDE Praktikum zu erhalten. Dafür wurde zum Beispiel eine Dummy-Legoteilliste implementiert, welche im späteren Projektverlauf durch Auswählbare Listen ersetzt wird, welche den Inhalt des zu zählenden Legosortiments beinhalten. Diese Liste wird in meinem Algorithmus mit den gezählten Teilen abgeglichen und, falls vorhanden, eine Liste mit Fremdteilen sowie eine Liste mit den fehlenden Teilen im Sortiment mit Teilenummer und Anzahl ausgegeben. Um im späteren Projekt eine Echtzeit Verarbeitung realisieren zu können, wurde der erste Farberkennungsalgorithmus überarbeitet und durch eine schnellere Version ersetzt. Die durchschnittliche Identifizierungszeit von einem Bauteil konnte somit von ~1.25 Sekunden auf ~0.58 Sekunden verringert werden. Es wurden beide Varianten in der Funktion PartIdent beibehalten, wobei die langsamere Variante auskommentiert wurde. Die Farberkennung wurde nur als weiteres Kriterium implementiert, sie wird für meine Lösung nicht benötigt und könnte somit zu Gunsten der Laufzeit auch komplett entfallen.

Siehe auch

  1. SVN: Checkout URL | https://svn.hshl.de/svn/DSB/trunk
  2. Wilhelm Burger, Mark James Burge.: Digitale Bildverarbeitung. Heidelberg: Springer Verlag, 2015. ISBN 978-3-642-04603-2 ISBN 978-3-642-04604-9 (eBook)
  3. Tönnies, K. D.: Grundlagen der Bildverarbeitung. München: Pearson Studium, 2005. ISBN 3-8273-7155-4
  4. Mathworks: Image Segmentation URL

Weblinks


→ zurück zum Hauptartikel: Digitale Signal- und Bildverarbeitung SoSe2015: Digitale Signal- und Bildverarbeitung SoSe2015