3D-Bildgebung mit NI LabVIEW

Überblick

Technologien zur dreidimensionalen Bildgebung haben einen weiten Weg von ihren Ursprüngen in akademischen Forschungslaboren zurückgelegt. Dank Innovationen bei Sensoren, Beleuchtung und vor allem Embedded-Datenverarbeitung wird die dreidimensionale Bildverarbeitung nun in vielen Anwendungen im Bereich der Maschinenautomatisierung verwendet. Von bildverarbeitungsgestützten Robotern, die Güter direkt aus Transportbehältnissen entnehmen, bis hin zu hochpräziser Messtechnik kann die derzeitige Prozessorgeneration die gewaltigen Datensätze und komplexen Algorithmen verarbeiten, die für das Extrahieren von Tiefeninformationen und zur schnellen Entscheidungsfindung erforderlich sind. Mit dem neuen NI Vision Development Module in NI LabVIEW wird 3D-Bildverarbeitung möglich, da Hard- und Softwarewerkzeuge für 3D-Anwendungen in einer grafischen Entwicklungsumgebung nahtlos integriert sind.

Inhalt

Einführung in 3D-Bildgebung

Es gibt mehrere Möglichkeiten, Tiefeninformationen mit 2D-Kamerasensoren oder anderen optischen Sensortechnologien zu berechnen.  Nachfolgend finden Sie eine kurze Beschreibung der gängigsten Ansätze:

3D-BildgebungstechnologieBeschreibung

 

Stereo-Bildverarbeitung

 

Zwei Kameras werden eingesetzt, die mit unterschiedlichen Perspektiven auf ein Objekt hin befestigt sind. Mithilfe von Kalibrierungstechniken werden Pixelinformationen zwischen den Kameras angeglichen und Tiefeninformationen extrahiert.  Dies ist am ähnlichsten, wie unser Gehirn funktioniert, um Entfernungen visuell zu messen.

 

 

Lasertriangulation

 

Eine Laserlinie wird auf ein Objekt projiziert und ein Höhenprofil wird erzeugt, indem das Bild mit der Kamera aufgenommen und die Verschiebung in der Laserlinie über eine einzelne Schicht des Objekts gemessen wird.  Der Laser und die Kamera scannen durch mehrere Schichten der Objektoberfläche, um schließlich ein 3D-Bild zu erzeugen.

 

 

Projiziertes Licht

 

Ein bekanntes Lichtmuster wird auf ein Objekt projiziert und Tiefeninformationen werden durch die Art und Weise berechnet, wie sich das Muster um das Objekt herum verzerrt wird.

 

 

Zeit der Flugsensoren

 

Eine Lichtquelle wird mit einem Bildsensor synchronisiert, um die Entfernung zwischen dem Lichtimpuls und dem zum Sensor reflektierten Licht auf Grundlage der Zeit zu berechnen.

 

 

Lidar

 

Mithilfe von Lasern wird ein Bereich überwacht, indem Lichtreflexionen gemessen werden und ein dreidimensionales Profil erstellt wird, um die Oberflächenmerkmale abzubilden und Objekte zu identifizieren.

 

 

Optische Kohärenztomographie (OCT)

 

Eine hochauflösende Bildgebungstechnik, die nahes Infrarotlicht verwendet, um Tiefeninformationen zu berechnen, indem Lichtreflexionen durch den Querschnitt eines Objekts gemessen werden.  Dies wird aufgrund der nicht-invasiven Fähigkeit, mehrere Schichten biologischen Gewebes zu durchdringen, am häufigsten in medizinischen Bildgebungsanwendungen verwendet.

 

 

 

Funktionen zur Stereobildverarbeitung im NI Vision Development Module

Ab LabVIEW 2012 enthält das Vision Development Module nun binokulare Stereo-Bildverarbeitung-Algorithmen zur Berechnung von Tiefeninformationen von mehreren Kameras.  Durch die Verwendung von Kalibrierungsinformationen zwischen zwei Kameras können die neuen Algorithmen Tiefenbilder erzeugen, die umfassendere Daten liefern, um Objekte zu identifizieren, Defekte zu erkennen und Roboterarme bei der Bewegung und Reaktion zu führen.

Ein binokulares Stereo-Bildverarbeitungsystem nutzt exakt zwei Kameras. Idealerweise sind die beiden Kameras durch einen geringen Abstand voneinander getrennt und nahezu parallel zueinander montiert. In dem in Abbildung 1 gezeigten Beispiel wird eine Schachtel mit kugelförmigen Pralinen verwendet, um die Vorteile der 3D-Bildgebung für die automatisierte Inspektion zu demonstrieren.  Nachdem die beiden Kameras kalibriert wurden, um die räumliche 3D-Beziehung, wie Trennung und Neigung, zu kennen, werden zwei verschiedene Bilder aufgenommen, um potenzielle Defekte in der Schokolade zu lokalisieren.  Mit den neuen 3D-Stereo-Bildverarbeitungs-Algorithmen im Vision Development Module können die beiden Bilder kombiniert werden, um Tiefeninformationen zu berechnen und ein Tiefenbild zu visualisieren.

3D Stereo Vision Front Panel.PNG

Abbildung 1:  Beispiel für ein Tiefenbild, das aus linken und rechten Bildern mit Stereobildverarbeitung generiert wurde

Während es in den 2-dimensionalen Bildern weniger offensichtlich ist, zeigt das 3D-Tiefenbild, dass zwei der Pralinen nicht kugelförmig genug sind, um die hohen Qualitätsstandards zu erfüllen.  Das Bild in Abbildung 2 zeigt einen weißen Kasten um die identifizierten Defekte.

Abbildung 2: 3D-Tiefenbild mit weißen Kästchen um die defekten Pralinen

Bei der Stereobildverarbeitung ist zu beachten, dass die Berechnung der Disparität darauf basiert, ein Merkmal einer Zeile des linken Bildes und derselben Zeile des rechten Bildes festzulegen. Um die Merkmale zu bestimmen und zu unterscheiden, müssen die Bilder über ausreichend Textur verfügen. Für bessere Ergebnisse ist die Textur gegebenenfalls z. B. durch Beleuchtung hervorzuheben.

Binokulare Stereobildverarbeitung kann für die Berechnung der 3D-Koordinaten (X, Y, Z) von Punkten auf der Oberfläche eines zu prüfenden Objekts verwendet werden. Diese Punkte werden häufig als Punktmenge oder Punktschar bezeichnet. Punktmengen sind sehr hilfreich bei der Darstellung der dreidimensionalen Form von Objekten und können auch von anderer 3D-Analysesoftware genutzt werden.  Die AQSense 3D Shape Analysis Library (SAL3D) von AQSense beispielsweise nutzt eine Punktmenge für die weitere Bildverarbeitung sowie -darstellung und ist nun im LabVIEW Tools Network verfügbar.

 

Funktionsweise der Stereobildverarbeitung

Zum besseren Verständnis der binokularen Stereobildverarbeitung zeigt Abbildung 3 das Diagramm eines vereinfachten Stereobildverarbeitungsaufbaus. Dabei sind beide Kameras völlig parallel zueinander befestigt und verfügen über die exakt gleiche Brennweite.

Abbildung 3: Vereinfachtes Stereobildverarbeitungssystem

Die Variablen in Abbildung 3:

b ist die Grundlinie bzw. Entfernung zwischen den beiden Kameras.

f steht für die Brennweite einer Kamera.

XA stellt die X-Achse einer Kamera dar.

ZA stellt die X-Achse einer Kamera dar.

P ist ein realer Punkt, der von den Koordinaten X, Y und Z festgelegt wird.

uL stellt die Projektion des realen Punkts P in einem Bild dar, das von der linken Kamera erfasst wurde.

uR stellt die Projektion des realen Punkts P in einem Bild dar, das von der linken Kamera erfasst wurde.

 

Da die beiden Kameras durch den Abstand „b“ getrennt sind, sehen beide Kameras denselben realen Punkt P an einer anderen Stelle auf den erfassten zweidimensionalen Bildern.  Die X-Koordinaten der Punkte u L und u R sind gegeben durch:

uL= f * X/Z

und

uR = f * (X-b)/Z

Die Entfernung zwischen den beiden projizierten Punkten wird als Disparität bezeichnet. Dieser Wert kann für die Berechnung der Tiefeninformationen verwendet werden, also der Entfernung zwischen dem realen Punkt P und dem Stereobildverarbeitungssystem. 

Disparität = uL – uR   =  f * b/z

Tiefe = f * b/Disparität

In der Realität ist der Aufbau einer Stereobildverarbeitungssystems wesentlich komplexer und würde eher wie ein in Abbildung 4 dargestelltes typisches System aussehen. Die grundlegenden Prinzipien treffen jedoch auch hier zu.

 

Abbildung 4: Typisches Stereobildverarbeitungs-System

Die idealen Annahmen des vereinfachten Stereobildverarbeitungssystems können nicht für reale Stereobildverarbeitungsanwendungen getroffen werden. Selbst die besten Kameras und Objektive führen zu einer gewissen Verzerrung des aufgenommenen Bildes, und um dies zu kompensieren, erfordert ein typisches Stereobildverarbeitungs-System auch eine Kalibrierung.  Der Kalibrierungsprozess beinhaltet die Verwendung eines Kalibrierungsgitters, das unter verschiedenen Winkeln aufgenommen wurde, um die Bildverzerrung sowie die genaue räumliche Beziehung zwischen den beiden Kameras zu berechnen.  Abbildung 5 zeigt das im Vision Development Module enthaltene Kalibrierungsraster.

Abbildung 5:  Ein Kalibrierungsraster ist als PDF-Datei mit dem Vision Development Module enthalten

Das Vision Development Module enthält Funktionen und LabVIEW-Beispiele, die Sie durch den Stereo-Vision-Kalibrierungsprozess führen, um mehrere Kalibrierungsmatrizen zu generieren, die in weiteren Berechnungen zur Berechnung von Disparitäts- und Tiefeninformationen verwendet werden.  Anschließend können Sie 3D-Bilder visualisieren, wie zuvor in Abbildung 1 gezeigt, sowie verschiedene Arten von Analysen zur Fehlererkennung, Objektverfolgung und Bewegungssteuerung durchführen.

 

Stereobildverarbeitungsanwendungen

Stereobildverarbeitungssysteme unterliegen keinen großen Störungen und sind optimal geeignet für Anwendungen, in denen die Kameraeinstellungen und -positionen vorgeschrieben sind. Gängige Anwendungsbereiche umfassen die Lenkung, Industrierobotik sowie automatisierte Prüf- und Überwachungsanwendungen.

 

Navigation

 

 

 

Autonome Fahrzeuge verwenden Tiefeninformationen, um die Größe und Entfernung von Hindernissen für eine genaue Wegplanung und Hindernisvermeidung zu messen.  Stereobildverarbeitungs-Systeme können eine Vielzahl von 3D-Informationen für Navigationsanwendungen bereitstellen und auch bei wechselnden Lichtverhältnissen eine gute Leistung erbringen.

 

 

 

Industrierobotik

 

 

 

Ein Stereobildverarbeitungssystem ist hilfreich bei Aufgaben der industriellen Automatisierung von Robotiksystemen, z. B. der Entnahme von Gütern direkt aus Transportbehältnissen („Bin Picking“). Dabei ist ein Roboterarm erforderlich, der ein spezifisches Objekt aus einem Behälter mit unsortierten Gütern zieht.  Ein Stereo-Bildverarbeitungs-System kann eine kostengünstige Möglichkeit bieten, 3D-Informationen zu erhalten und zu bestimmen, welche Teile frei erfasst werden können.  Es kann auch präzise Positionen für einzelne Produkte in einer Kiste bereitstellen und Anwendungen ermöglichen, bei denen ein Roboterarm Objekte von einer Palette entnimmt und auf eine andere Palette oder einen anderen Prozess bewegt.

 

 

 

Automatisierte Prüfung

 

3D-Informationen sind auch äußerst nützlich, um eine hohe Qualität bei automatisierten Prüfanwendungen sicherzustellen.  Mithilfe der Stereobildverarbeitung lassen sich Fehler erkennen, die mit zweidimensionalen Bildern nur sehr schwer auszumachen wären. Beispielanwendungen, bei denen die Tiefeninformationen einen maßgeblichen Einfluss auf die Qualitätssicherung haben, sind etwa: Prüfung auf Vorhandensein von Tabletten in einer Blisterpackung, Prüfung der Form von Flaschen oder die Suche nach verbogenen Pins auf einer Steckverbindung.

 

 

 

Überwachung

 

 

 

Stereobildverarbeitungssysteme eignen sich auch für Anwendungen zur Objektverfolgung, da sie sich auch bei stark schwankenden Lichtverhältnissen als robust erweisen. Ein Stereobildverarbeitungssystem kann 3D-Informationen für zu verfolgende Objekte liefern, mit denen abnormale Ereignisse erkannt werden können, z. B. Personen, die ein Grundstück widerrechtlich betreten oder Gepäck, das unbeaufsichtigt stehen gelassen wurde. Außerdem sind Stereobildverarbeitungssysteme in der Lage, die Genauigkeit von Identifikationssystemen wie Gesichtserkennung oder anderen biometrischen Merkmalen zu optimieren.

 

 

 

Zusammenfassung und nächste Schritte

Die Stereo-Bildverarbeitungs-Funktionen des LabVIEW Vision Development Module bieten Ingenieuren in einer Vielzahl von Branchen und Anwendungsbereichen neue 3D-Vision-Funktionen.  Durch die Offenheit von LabVIEW können Ingenieure auch 3D-Bildverarbeitungstools von Drittanbietern für zusätzliche erweiterte Funktionen nutzen, darunter die SICK 3D Ranger Camera für die Lasertriangulationsbildgebung und die AQSense 3D Shape Analysis Library für die 3D-Bildverarbeitung. Das LabVIEW Vision Development Module stellt Anwendern die 3D-Bildverarbeitung innerhalb einer grafischen Entwicklungsumgebung zur Verfügung.

 

Nächste Schritte:

 

Referenzmaterial: