Computer Vision

RoboDK bietet zahlreiche Dienstprogramme zur Simulation, Entwicklung und Bereitstellung von Computer Vision Systemen. Mit RoboDK können Sie 2D- und 3D-Kameras simulieren, um Ihre Computer-Vision-Algorithmen zu entwickeln und zu trainieren. Sie können auch echte 2D- und 3D-Kameras integrieren.

Dieses Dokument führt Sie durch einige Schritte zur Simulation von Kameras.

Hinweis: Weitere Beispiele finden Sie in der API-Dokumentation unter: https://robodk.com/doc/en/PythonAPI/examples.html#camera-2d.

Computer Vision - Bild 1

Simulierte Kamera

Mit simulierten Kameras können Sie sehen, was die Kamera sieht. Sie können die Kameraparameter wie die Sensorgröße, die Pixelgröße und das Sichtfeld angeben und sehen dann eine simulierte Ansicht der Kamera. Sie können Kameras an einem Roboter befestigen oder sie stationär halten.

Hinzufügen einer Kameraansicht

Um eine Kamera hinzuzufügen, müssen Sie sie an einem Ankerpunkt befestigen, um ihre Position zu bestimmen. Dies geschieht normalerweise mit einem Referenzrahmen.

1.Wählen Sie Programm Referenzrahmen hinzufügen, um ein neues Koordinatensystem zu erstellen. Weitere Informationen finden Sie im Abschnitt Erste Schritte.

2.Platzieren Sie den Rahmen an der gewünschten Kameraposition, wobei die XYZ-Koordinaten die Kameraposition, die Z+ Achse die Zielrichtung und die Y+ Achse die Abwärtsrichtung darstellen.

3.Wählen Sie Verbinden 2D-Kamera simulieren und wählen Sie den Referenzrahmen.

Sie haben jetzt eine Standardkamera, die mit dem Ankerpunkt verbunden ist.

Kamera-Vorschaufenster

Im Kamera-Vorschaufenster können Sie sehen, was die Kamera sieht. Dieses Fenster wird automatisch geöffnet, wenn eine neue Kamera hinzugefügt wird.

Um ein Kameravorschaufenster wieder zu öffnen, können Sie einfach auf das Kameraelement in der Struktur doppelklicken. Sie können auch mit der rechten Maustaste auf das Element in der Struktur klicken und Kamera anzeigen wählen. Standardmäßig kann das Vorschaufenster in der Größe verändert, minimiert oder geschlossen werden (weitere Optionen finden Sie im nächsten Abschnitt).

Computer Vision - Bild 2

Wenn das Vorschaufenster geöffnet wird, wird der Kameraarbeitsbereich auch in der 3D-Umgebung angezeigt. Sie können den Kameraarbeitsbereich deaktivieren, indem Sie mit der rechten Maustaste auf die Kamera klicken und Kameraarbeitsbereich anzeigen wählen.

Kameraeinstellungen

Mit den Kameraeinstellungen können Sie die Parameter Ihrer Kamera anpassen, um eine realistische Ansicht Ihrer Kamera in der simulierten Umgebung von RoboDK zu erhalten.

Um die Einstellungen einer Kamera zu bearbeiten, klicken Sie mit der rechten Maustaste auf die Kamera im Baum und wählen Sie Kameraeinstellungen. RoboDK bietet die folgenden Standardeinstellungen für neu hinzugefügte Kameras:

    Kamera: Liefert den Namen des Ankers (Rahmen 1)

    Brennweite (mm): Brennweite in Millimetern (5.00). Dies ist der Abstand zwischen dem virtuellen optischen Zentrum des Objektivs und dem virtuellen Bildsensor der Kamera. Wenn Sie diesen Wert ändern, wirkt sich dies auf die Pixelgröße aus.

    Pixelgröße (μm): Pixelgröße, in Mikrometern (2,481). Das Ändern dieses Wertes wirkt sich auf das Sichtfeld aus.

    Sichtfeld (deg): Sichtfeld (FOV), in Grad (30.0). Dies beeinflusst die Größe des Bereichs, der von der Kamera wahrgenommen werden kann. Wenn Sie diesen Wert ändern, wirkt sich dies auf die Pixelgröße aus.

    Arbeitsabstand (mm): Arbeitsabstand, in Millimetern (2000,0). Dies ist die Entfernung, in der die Kamera die Umgebung wahrnehmen kann. Objekte, die sich außerhalb dieser Entfernung befinden, werden nicht in das Bild aufgenommen.

    Feste Sensorgröße: Wenn Sie dieses Kontrollkästchen nicht aktivieren, wird die Größe des Kamerasensors (oder die Auflösung) durch die Größe des Vorschaufensters der Kamera bestimmt, das vom Benutzer in der Größe verändert werden kann.

    Größe des Kamerasensors: Gibt bei einer festen Sensorgröße die Breite und Höhe der Kamera in Pixeln an. Wenn Sie die Größe des Vorschaufensters ändern, hat dies keinen Einfluss auf die Größe.

    Größenänderung des Fensters zulassen: Erlauben Sie dem Benutzer, die Größe des Vorschaufensters zu ändern, ohne die Sensorgröße zu beeinflussen. Ändern Sie z. B. die Größe des Fensters auf 720p, während die Auflösung bei 4K bleibt.

    Perspektivische Ansicht: Wenn Sie diese Option deaktivieren, wird die Kamera in eine orthografische Kamera umgewandelt und die Perspektiven werden entfernt.

    Ansichtstyp: Legt die Art der Kameraansicht fest, z. B. Farbe, Graustufen oder Tiefe. Die Ansichtsart ändert das Ausgabebild entsprechend den relevanten Daten.

    Angedockte Ansicht: Erlaubt das Ziehen des Vorschaufensters auf die Symbolleisten, im Gegensatz zu einem separaten, schwebenden Fenster.

    Lichtfarben festlegen: Überschreibt die Standard-Lichtfarben mit Ihren eigenen (Umgebungs-, Diffus- und Spiegellichtfarben). Es hat keine Auswirkungen auf die Hintergrundfarbe und ist nur mit dem Ansichtstyp Farbe kompatibel.

    Hintergrundfarbe: Farbe des Unbekannten, der Unendlichkeit. Dies ist die Farbe, die verwendet wird, wenn vom Kamerasensor bis zum Arbeitsabstand kein Objekt zu sehen ist.

Computer Vision - Bild 3

Zugriff auf das simulierte Kamerabild über die API

Es ist möglich, über die API auf das Kamerabild für alle Ansichtsarten zuzugreifen. Sie können z.B. das Farbbild (8 Bits), das Graustufenbild (8 Bits) und die Tiefenkarte (8 Bits oder 32 Bits) als Festplattendatei oder als einfache Daten abrufen.

Der Zugriff auf die Daten der simulierten Kamera ermöglicht es Ihnen, diese extern zu verarbeiten, entweder über eine Bildbibliothek eines Drittanbieters oder über Ihre eigene.

Obwohl RoboDK weder eine eigene Bildbearbeitungsbibliothek bereitstellt noch mit einer solchen verbunden ist, bietet unsere Python-API Beispielcode zur Verarbeitung von 2D- und 3D-Bilddaten. Die folgenden Themen werden behandelt:

    Holen Sie die Bilddaten und zeigen Sie sie als Livestream an.

    Kalibrieren Sie eine Lochkamera mit Hilfe eines Schachbrettmusters.

    Schätzen Sie die Kameraposition anhand von unterstützten Mustern.

    Legen Sie das simulierte Kamerabild auf einen Hardware-Kamera-Feed für Augmented Reality.

    Lesen Sie Barcodes und QR-Codes.

    Erkennen Sie Merkmale wie Kleckse, Referenzbilder, Flächen, Konturen, Bildmomente und mehr.

    Holen Sie Tiefenkarten ein, verarbeiten Sie sie zu Punktwolken, rekonstruieren Sie Netze, erstellen Sie einen 3D-Livestream.

Um auf unsere Python-API-Beispiele zuzugreifen, folgen Sie diesem Link: https://robodk.com/doc/en/PythonAPI/examples.html.

Hand-Augen-Kalibrierung

Bei der Hand-Auge-Kalibrierung wird die Position der Kamera in Bezug auf den Roboterflansch oder das Werkzeug kalibriert.

Mit RoboDK können Sie den Prozess der Hand-Augen-Kalibrierung simulieren. Sie können das gleiche Verfahren verwenden, um echte Kameras in Bezug auf den Roboterflansch oder das Werkzeug zu kalibrieren.

Computer Vision - Bild 4

Ein vollständig funktionierendes Beispiel finden Sie im Abschnitt Beispiele der RoboDK API für Python: https://robodk.com/doc/en/PythonAPI/examples.html#camera-hand-eye-calibration.

Kamera-Simulation Beispiele

In diesem Abschnitt finden Sie einige Beispiele für die Integration von Computer Vision in Ihren Fertigungsprozess.

Die meisten Beispiele, die Computer Vision integrieren, erfordern eine gewisse Programmierung, um das volle Potenzial der Computer Vision Algorithmen zu nutzen.

Barcode lesen

Sie können Barcodes, einschließlich QR-Codes, EAN-13 und UPC-A 1D-Barcodes automatisch lesen, indem Sie eine simulierte Kamera in RoboDK verwenden.

Sie können Barcode-Bilder per Drag & Drop in RoboDK verschieben und eine neue simulierte Kamera erstellen, die auf Ihren Barcode zeigt.

Sie finden das Beispiel im Abschnitt RoboDK Python API: https://robodk.com/doc/en/PythonAPI/examples.html#qr-codes-and-barcodes

Computer Vision - Bild 5

Objekterkennung

Sie können die Position eines Objekts (2D-Pose) mit Hilfe einer simulierten Kamera in RoboDK schätzen lassen.

Sie finden das Beispiel im Abschnitt RoboDK API-Beispiele: https://robodk.com/doc/en/PythonAPI/examples.html#object-detection

Computer Vision - Bild 6