Diplomarbeit

Erkennen von dreidimensionalen Objekten mit Hilfe neuronaler Netze

VRML

Autor: Ingo Fraunhuber

Betreuer: Prof. Dr. Jochen Pfalzgraf http://www.cosy.sbg.ac.at/~jpfalz/

Der folgende Abschnitt liefert einen kurzen Einblick in meine Diplomarbeit.

Die Idee:

Gerade im CAD Bereich ist es notwendig Unterschiede zwischen CAD Modellen zu erkennen. Betrachtet man zum Beispiel den Entwicklungsverlauf eines Bauteils, so sind von dem ersten Entwurf des Werkstücks bis zur Freigabe und Fertigung des Bauteils sehr viele Zwischenschritte notwendig. Um nun die Nachvollziehbarkeit der Entwicklungsschritte sicherzustellen, werden neben den allgemeinen Änderungsdaten (Wer hat was, wann geändert, usw.) in einem PDM System auch grafische Informationen über den Entwicklungszyklus mitdokumentiert. Gerade bei der ISO 9000 ist eine lückenlose Dokumentation des Entwicklungsablaufs unerlässlich, vor allem im Hinblick auf Garantie- und Regressansprüche.

Neben der Möglichkeit Geometriemodelle miteinander zu vergleichen, stellt sich auch die Frage, ob es möglich ist auf Basis der geometrischen Informationen über ein Objekt eine Objekterkennung zu realisieren. Auf dem Gebiet der Gesichtserkennung stellt eine Erkennung der Gesichtsform mit Hilfe geometrischer Daten eine interessante Ergänzung zu den bisher am Markt befindlichen biometrischen Sicherheitssystemen dar.

Mögliche Einsatzgebiete für den Objektvergleich und die Objekterkennung:

  • EDM (Engineering Data Management) und PDM (Product Data Management Bereich)
  • Werkzeug- und Formenbau
  • Qualitätskontrolle
  • Gesichtserkennung

In der Diplomarbeit wurde für das Problem des Objektvergleichs und der Objekterkennung eine Lösung auf der Basis neuronaler Netze erarbeitet.

Der Objektvergleich:

Für den Objektvergleich (basierend auf herkömmlichen mathematischen Ansätzen) gibt es bereits eine Vielzahl von Lösungen die je nach verwendetem CAD System variieren.

Vergleich eines Kotflügels.

Quelle: Haitec AG - Programm Catver, www.haitec.de

Diese Grafik zeigt einen Vergleich von zwei übereinanderliegenden Autokotflügel. Die Unterschiede der beiden Kotflügel werden durch eine farbliche Abstufung dargestellt. Der hellblaue Bereich stellt einen minimalen Abstand zum Originalmodell dar. Der dunkelrote Bereich weist auf eine sehr hohe Abweichung hin.

 

Vergleich eines Gaspedals

Quelle: Catia V5Dassault Systemes, http://www.catia.com

Bei dieser Versuchsanordnung ist es möglich nach der Eingabe der Berechnungsgenauigkeit (Toleranz) die Unterschiede der beiden Gaspedale zu ermitteln und grafisch darzustellen. Es wird eine Berechnungsgenauigkeit von 7mm gewählt. Die in der Grafik rot und grün dargestellten Bereiche veranschaulichen die Unterschiede der Pedale.

 

Das STL Format (Stereolithographie-Format):

Um sich bei dem Vergleich von Objekten nicht auf ein bestimmtes CAD System festzulegen, wurde für den Datenvergleich das Datenformat STL gewählt. Bei einer STL Datei handelt es sich um eine Triangulierung des Modells. Dieses Format wird von allen gängigen CAD Systemen unterstützt.

Quelle: Catia V5 Dassault Systemes, http://www.catia.com

 

Der Ansatz:

Um nun ein Objekt mit Hilfe eines neuronalen Netzes zu erkennen, ist es, neben der geeigneten neuronalen Netzstruktur, auch notwendig sinnvolle Trainingsdaten (Trainingspunkte) für das Training des neuronalen Netzes zu finden. Die folgenden Bilder veranschaulichen die Grundidee, die einen Objektvergleich mit neuronalen Netzen ermöglichen soll. Dieser Ansatz lässt sich sowohl für 2-dimensionale als auch für 3-dimensionale Objekte verwenden..

 

Abbildung 1
Abbildung 2
Abbildung 3
Abbildung 4

 

  • Abbildung 1: Objekt 1 wird mit einer Toleranzhülle versehen. Alle Punkte innerhalb dieser Hülle sollen von dem neuronalen Netz als Punkte die zu dem Objekt gehören, Punkte ausserhalb dieser Hülle, als Punkte die nicht zu dem Objekt gehören erkannt werden. Abbildung 1 zeigt eine mögliche Auswahl der Trainingspunkte für das neuronale Netz.
  • Abbildung 2: Objekt 2 befindet sich innerhalb der zulässigen Toleranzhülle von Objekt 1. Die beiden Objekte sollen daher vom neuronalen Netz als identisch erkannt werden.
  • Abbildung 3: Objekt 2 befindet sich mit einem Punkt ausserhalb der zulässigen Toleranzhülle von Objekt 1. Die beiden Objekte sind somit nicht identisch.
  • Abbildung 4: In der Praxis will man nicht nur wissen ob die Objekte gleich sind. Es ist auch von Interesse an welchen Stellen sich die Objekte unterscheiden. Trianguliert man das Objekt 2 (STL Format), so kann man für jedes Dreieck ermitteln ob es innerhalb oder ausserhalb der zulässigen Toleranz liegt. Das schraffierte Dreieck wird in Abbildung 4 als ausserhalb erkannt. Je kleiner die Dreiecke für die Triangulierung gewählt werden, desto genauer können die Abweichungen bestimmt werden.

 

Die Objekt- und Gesichtserkennung:

Wie geht man nun bei einer dreidimensionalen Objekt- oder Gesichtserkennung vor? Eigentlich analog wie vorher. Im ersten Schritt wird das Objekt mit einer Toleranzhülle für Punkte die sich innerhalb des Objekts befinden versehen. Punkte auf dem Originalobjekt und auf der Toleranzhülle werden als Trainingsdaten (Punkte innerhalb des Originalobjekts) für das neuronale Netz verwendet.

Im zweiten Schritt wir eine zusätzliche Hülle zu dem Originalobjekt berechnet. Punkte auf der zweiten Hülle werden als Trainingspunkte ausserhalb des Objekts für das neuronale Netz verwendet.

 
Schritt 1
Schritt 2

Wie können nun die Trainingspunkte berechnet werden? Zu diesem Zweck wird eine Triangulierung (STL Format) unseres Objekts inklusive der dazugehörigen Hüllen durchgeführt. Aus den dadurch erhaltenen Dreiecken wird der Flächenschwerpunkt jedes einzelnen Dreiecks berechnet und für das Trainieren des neuronalen Netzes verwendet.

Bei der Triangulierung des Objekts wird eine maximal zulässige Toleranz eingegeben, um dessen Wert das triangulierte Dreieck maximal von dem Originaldreieck abweichen darf. Das hat den Vorteil, dass gerade bei einer Krümmung des Objekts mehr Dreiecke und somit auch mehr Trainigspunkte berechnet werden, als bei Ebenen.

 

Die Objekterkennung in der Praxis mit Hilfe neuronaler Netze:

In der folgenden Aufgabenstellung wird versucht mit Hilfe eines neuronalen Netzes ähnliche Objekte zu unterscheiden. Für die Testanordnung werden vier Objekte verwendet. Das erste Objekt (grünes Objekt) stellt das Referenzobjekt (Objekt 1) dar. Die folgenden 2 Testobjekte (blau und rot) unterscheiden sich nur wenig von Objekt 1. Die Abmessungen des letzten Testobjekts (türkis) weisen jedoch bereits einen erheblichen Unterschied zu den anderen Objekten auf.

 

Abbildung - Erkennen von Objekten

 

Die folgende Grafik visualisiert die Unterschiede zwischen Objekt 1 und Objekt 2.

Darstellung der Unterschiede zwischen Objekt 1 und Objekt 2

Triangulierung Objekt 1

Triangulierung Objekt 1
und Objekt 2

Unterschiede Objekt 1
und Objekt 2

 

Die folgenden Schritte sind für die Objekterkennung mit neuronalen Netzen notwendig:

  • Erfassen des Objekts: Falls das Objekt nicht bereits in einem CAD System konstruiert wurde, kann das Objekt zum Beispiel mit Hilfe zweier Kameras oder eines Laserscanners vermessen werden.
  • Triangulieren des Objekts: Die Flächen des Objekts werden trianguliert und vorzugsweise im Format STL (Stereolithographie-Format) gespeichert.
  • Erstellen der Trainigsdaten für das neuronale Netz: Mit Hilfe der bereits zuvor beschriebenen Methode der Toleranzhüllen zu dem Originalobjekt, werden geeignete Trainigspunkte für das neuronale Netz berechnet. Als Trainingspunkte werden die Flächenschwerpunkte der bei der Triangulation gewonnenen Dreiecke verwendet.
  • Trainieren des neuronalen Netzes: Nach der Auswahl einer geeigneten Netzstruktur für das neuronale Netz erfolgt das Trainieren mit Hilfe der Trainingsdaten. In unserem Beispiel wird für jedes Objekt ein neuronales Netz definiert und trainiert.
  • Überprüfen der Lernergebnisse. Mit Hilfe des quadratischen Gesamtfehlers des neuronalen Netzes wird überprüft ob das Netz in der Lage ist die einzelnen Objekte zu unterscheiden. Die erste Grafik zeigt den quadratischen Fehler aller vier Objekte bei einem neuronalen Netz, das mit den Trainingsdaten von Objekt 1 trainiert wurde. Die zweite Grafik zeigt den Fehler bei einem Netz das mit den Trainigsdaten von Objekt 2 trainiert wurde usw.

 

 

Ergebnis:

Der vorgestellte Ansatz, für die Erkennung von dreidimensionalen Objekten, eignet sich sehr gut für den Einsatz in Verbindung mit neuronalen Netzen. Gerade im Bereich der Objekterkennung und der Ähnlichkeitssuche kommen die Vorzüge der neuronalen Netze zum Tragen. Betrachtet man zum Beispiel die Anforderung einer Gesichtsidentifikation (finden eines Gesichts aus einer Datenbank mit 1000 Gesichtern), so erreicht man mit neuronalen Netzen einen entscheidenden Geschwindigkeitsvorteil gegenüber herkömmlichen Vergleichsmethoden.

Die Verwendung von triangulierten Daten der dreidimensionalen Objekte, beschränkt einen möglichen Einsatz der vorgestellten Methode nicht nur auf CAD Systeme. Vielmehr bietet es einen allgemeinen Ansatz für das Erkennen von dreidimensionalen Objekten. Auch zeigt sich in den ersten Versuchen, dass die Verwendung der Flächenschwerpunkte der bei der Triangulierung erhaltenen Dreiecke, für das Trainieren des neuronalen Netzes vollkommen ausreichend ist.

 

Vorteile bei der Verwendung von dreidimensionalen Daten bei der Gesichtserkennung:

  • Entscheidende Gesichtsmerkmale können exakter bestimmt werden. Dazu zählen zum Beispiel die Messung von Winkel und Entfernung von Augen, Nase und Mund.
  • Feinere Unterscheidungen im Gesicht. So kann auch die Knochenstruktur im Bereich der Augen und der Nase für die Erkennung genutzt werden.
  • Es ist weniger problematisch, wenn die Person bei der Gesichtskontrolle von einer anderen Seite, einem anderen Winkel, oder einer anderen Entfernung aufgenommen wird. Durch das 3D-Modell ist es eher möglich diese Parameteränderungen bei den Erkennungsfunktionen zu berücksichtigen.