DE102016100101A1 - System zum maschinellen sehen und analytisches verfahren zur segmentierung planarer oberflächen - Google Patents

System zum maschinellen sehen und analytisches verfahren zur segmentierung planarer oberflächen Download PDF

Info

Publication number
DE102016100101A1
DE102016100101A1 DE102016100101.5A DE102016100101A DE102016100101A1 DE 102016100101 A1 DE102016100101 A1 DE 102016100101A1 DE 102016100101 A DE102016100101 A DE 102016100101A DE 102016100101 A1 DE102016100101 A1 DE 102016100101A1
Authority
DE
Germany
Prior art keywords
point cloud
point
vectors
cloud data
points
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE102016100101.5A
Other languages
English (en)
Inventor
Sukhan Lee
Hung Huu Nguyen
Jaewoong Kim
Jianying Shi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sungkyunkwan Univ Found For Corp Collaboration
Sungkyunkwan University Foundation for Corporate Collaboration
GM Global Technology Operations LLC
Original Assignee
Sungkyunkwan Univ Found For Corp Collaboration
Sungkyunkwan University Foundation for Corporate Collaboration
GM Global Technology Operations LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sungkyunkwan Univ Found For Corp Collaboration, Sungkyunkwan University Foundation for Corporate Collaboration, GM Global Technology Operations LLC filed Critical Sungkyunkwan Univ Found For Corp Collaboration
Publication of DE102016100101A1 publication Critical patent/DE102016100101A1/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • G06T7/0004Industrial image inspection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/64Three-dimensional objects
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B11/00Measuring arrangements characterised by the use of optical techniques
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B11/00Measuring arrangements characterised by the use of optical techniques
    • G01B11/22Measuring arrangements characterised by the use of optical techniques for measuring depth
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B11/00Measuring arrangements characterised by the use of optical techniques
    • G01B11/28Measuring arrangements characterised by the use of optical techniques for measuring areas
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C11/00Photogrammetry or videogrammetry, e.g. stereogrammetry; Photographic surveying
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C11/00Photogrammetry or videogrammetry, e.g. stereogrammetry; Photographic surveying
    • G01C11/02Picture taking arrangements specially adapted for photogrammetry or photographic surveying, e.g. controlling overlapping of pictures
    • G01C11/025Picture taking arrangements specially adapted for photogrammetry or photographic surveying, e.g. controlling overlapping of pictures by scanning the object
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/05Geographic models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • G06T17/205Re-meshing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/04Indexing scheme for image data processing or generation, in general involving 3D image data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/08Indexing scheme for image data processing or generation, in general involving all processing steps from image acquisition to 3D model generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10004Still image; Photographic image
    • G06T2207/10012Stereo images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20112Image segmentation details
    • G06T2207/20168Radial search
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/13Edge detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/187Segmentation; Edge detection involving region growing; involving region merging; involving connected component labelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/521Depth or shape recovery from laser ranging, e.g. using interferometry; from the projection of structured light
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • G06T7/593Depth or shape recovery from multiple images from stereo images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • G06T7/62Analysis of geometric attributes of area, perimeter, diameter or volume
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/64Three-dimensional objects
    • G06V20/653Three-dimensional objects by matching three-dimensional models, e.g. conformal mapping of Riemann surfaces
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N2013/0074Stereoscopic image analysis
    • H04N2013/0081Depth or disparity estimation from stereoscopic image signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N2013/0074Stereoscopic image analysis
    • H04N2013/0092Image segmentation from stereoscopic image signals

Abstract

Ein System zum maschinellen Sehen ist ausgestaltet, um ein Objekt in einem Sichtfeld dynamisch zu untersuchen. Dies umfasst, dass unter Verwendung einer Kamera dreidimensionale Punktwolkendaten (3D-Punktwolkendaten) des Sichtfelds aufgenommen werden und jeder Punkt der 3D-Punktwolkendaten in eine Vielzahl von tangentialen Oberflächenvektoren transformiert wird. Auf der Grundlage der Vielzahl von tangentialen Oberflächenvektoren werden Oberflächennormalvektoren für jeden Punkt der 3D-Punktwolkendaten ermittelt. Verteilungsspitzenwerte in den Oberflächennormalvektoren werden unter Verwendung eines Einheitskugelnetzes detektiert. Parallele Ebenen werden unter Verwendung der Distanzverteilungsspitzenwerte separiert. Eine Strategie mit radialer Begrenzung des nächstgelegenen Nachbarn kombiniert mit einem Prozess zur Suche des nächstgelegenen Nachbarn auf der Grundlage einer Zellteilung wird ausgeführt, um einen planaren Bereich zu segmentieren. Eine planare Oberfläche wird auf der Grundlage des segmentierten planaren Bereichs erkannt.

Description

  • TECHNISCHES GEBIET
  • Die vorliegende Offenbarung betrifft Systeme zum maschinellen Sehen.
  • HINTERGRUND
  • Systeme zum maschinellen Sehen werden in Produktionsumgebungen verwendet, um Teile, Komponenten, Teilsysteme und andere Herstellungsprodukte automatisch zu untersuchen, indem digitale Bilder aufgenommen und analysiert werden.
  • ZUSAMMENFASSUNG
  • Ein System zum maschinellen Sehen ist ausgestaltet, um ein Objekt in einem Sichtfeld dynamisch zu untersuchen. Dies umfasst das Aufnehmen von dreidimensionalen Punktwolkendaten (3D-Punktwolkendaten) des Sichtfelds unter Verwendung einer Kamera und das Transformieren aller Punkte der 3D-Punktwolkendaten in eine Vielzahl von tangentialen Oberflächenvektoren. Oberflächennormalvektoren werden für jeden Punkt der 3D-Punktwolkendaten auf der Grundlage der Vielzahl der tangentialen Oberflächenvektoren ermittelt. Spitzenwerte der Verteilung der Oberflächennormalvektoren werden unter Verwendung eines Einheitskugelnetzes [engl.: unit sphere mesh] detektiert. Parallele Ebenen werden unter Verwendung der Spitzenwerte der Distanzverteilung separiert. Eine Strategie des nächstgelegenen Nachbarn mit radialer Begrenzung kombiniert mit einem Prozess des Suchens des nächstgelegenen Nachbarn auf der Grundlage einer Zellteilung wird ausgeführt, um einen planaren Bereich zu segmentieren. Auf der Grundlage des segmentierten planaren Bereichs wird eine planare Oberfläche erkannt.
  • Die vorstehenden Merkmale und Vorteile und andere Merkmale und Vorteile der vorliegenden Lehren ergeben sich leicht aus der folgenden genauen Beschreibung einiger der besten Arten und anderer Ausführungsformen, um die vorliegenden Lehren auszuführen, die in den beigefügten Ansprüchen definiert sind, wenn sie in Verbindung mit den beiliegenden Zeichnungen gelesen wird.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Es werden nun eine oder mehrere Ausführungsformen anhand von Beispielen mit Bezug auf die beiliegenden Zeichnungen beschrieben, in denen:
  • 1 ein beispielhaftes System zum maschinellen Sehen in Übereinstimmung mit der Offenbarung schematisch veranschaulicht, das einen Bilddetektor (eine Kamera) und einen analytischen Controller enthält;
  • 2 einen Segmentierungsprozess für planare Oberflächen zum Segmentieren planarer Oberflächenbereiche in der Punktwolke einer Szene in Übereinstimmung mit der Offenbarung schematisch zeigt, die in einem Sichtfeld einer digitalen Kamera, die zum Aufnehmen eines dreidimensionalen Bilds (3D-Bilds) in der Lage ist, erzeugt wurde;
  • 3 eine Nachbarschaft um einen Punkt einer 3D-Punktwolke herum in Übereinstimmung mit der Offenbarung graphisch zeigt, die eine Vielzahl von tangentialen Oberflächenvektoren und den geschätzten Oberflächennormalvektor enthält;
  • 4 eine Ausführungsform eines Einheitskugelnetzes im Kontext eines 3D-Koordinatensystems in Übereinstimmung mit der Offenbarung zeigt;
  • 5-1, 5-2 und 5-3 die Anwendung eines Einheitskugelnetzes auf einen 3D-Punktwolken-Datensatz eines Kästchens, das drei orthogonale Ebenen aufweist, in Übereinstimmung mit der Offenbarung graphisch zeigen;
  • 6-1 eine Vielzahl von Kandidaten für Punkte in parallelen Ebenen in Übereinstimmung mit der Offenbarung graphisch zeigt, die mit Bezug auf einen durchschnittlichen Oberflächennormalvektor N → und einen Punktvektor Dp → vom Ursprung in dem 3D-Raum aus graphisch zeigt;
  • 6-2 ein eindimensionales Histogramm (1D-Histogramm) der Distanzverteilung in Übereinstimmung mit der Offenbarung graphisch zeigt, die entlang einer Ebene der Oberflächennormalrichtung auf der Grundlage der Ergebnisse, die mit Bezug auf 6-1 gezeigt sind, projektiert wurde.
  • 7 Ergebnisse des Ausführens einer schnellen Segmentierung von planaren Oberflächenbereichen in Übereinstimmung mit der Offenbarung graphisch zeigt, was umfasst, dass alle Punkte in jedem der Bereiche auf der gleichen Ebene in eine XOY-Ebene transformiert werden; und
  • 8 ein Triangulationsnetz graphisch zeigt, das auf ein Einheitskugelnetz, beispielsweise das Einheitskugelnetz, das mit Bezug auf 4 gezeigt ist, angewendet werden kann.
  • GENAUE BESCHREIBUNG
  • Eine Punktwolke ist eine Sammlung von Punkten, die eine dreidimensionale Szene in einem Sichtfeld im Kontext eines dreidimensionalen Koordinatensystems (3D-Koordinatensystems) beschreiben, und sie kann in einer Ausführungsform Außenoberflächen von Objekten repräsentieren. Punktwolken können verwendet werden, um verschiedene Operationen auszuführen, wie beispielsweise Objekterkennung, Objektklassifizierung, Szenenvisualisierung, Segmentierung, zweidimensionale Erweiterung von Bilddaten und/oder andere Typen von Operationen. Das Leistungsniveau, mit dem diese Operationen unter Verwendung einer Punktwolke durchgeführt werden, kann von der Auflösung dieser Punktwolke abhängen. Bei der Verwendung hierin kann die Auflösung einer Punktwolke das Detailniveau sein, mit welchem Merkmale in der durch die Punktwolke aufgenommenen Szene innerhalb der Punktwolke unterscheidbar sein können. Die Auflösung einer Punktwolke kann von der Anzahl der Punkte in der Punktwolke und/oder von der Punktdichte der Punkte in einem oder in mehreren Abschnitten der Punktwolke abhängen. Bei der Verwendung hierin ist die Punktdichte ein Maß für die Anzahl der Punkte pro Volumeneinheit. Ein Abschnitt einer Punktwolke mit einer höheren Punktdichte als ein anderer Abschnitt der Punktwolke kann weniger dünn besetzt sein als der andere Abschnitt.
  • Mit Bezug nun auf die Zeichnungen, bei denen die Darstellungen nur zur Veranschaulichung bestimmter beispielhafter Ausführungsformen und nicht zur Einschränkung derselben gedacht sind, veranschaulicht 1 auf schematische Weise ein beispielhaftes System 100 zum maschinellen Sehen mit einer Bildaufzeichnungsvorrichtung (einer Kamera) 10, einem Kameracontroller 20 und einem analytischen Controller 60.
  • Die Kamera 10 ist vorzugsweise eine Vorrichtung zum Aufzeichnen digitaler Bilder, die zum Aufnehmen eines dreidimensionalen Bilds (3D-Bilds) eines Sichtfelds (FOV) 35 in der Lage ist, das durch den Kameracontroller 20 transformiert wird, um eine Datendatei zu erzeugen, die eine 3D-Punktwolke 25 enthält. Alternativ kann die Kamera 10 eine beliebige Bilderfassungsvorrichtung enthalten, die eine Datendatei erzeugt, welche eine 3D-Punktwolke 25 in dem FOV 35 enthält, wobei ein Abschnitt von dieser in vorteilhafter Weise ein physikalisches Objekt 40 repräsentiert. Daher repräsentiert die 3D-Punktwolke 25 eine gemessene Oberfläche des physikalischen Objekts 40 und sie kann Punkte in einem dreidimensionalen Koordinatensystem enthalten (z. B. einen Satz von Punkten, der durch x-, y- und z-Koordinaten definiert ist). Als Definition ist ein Bild eine beliebige visuell wahrnehmbare Darstellung, die ein Sichtfeld repräsentiert. Ein Bild kann in einer Ausführungsform das gesamte oder einen Teil des reflektierten Lichts in dem Sichtfeld aus einem sichtbaren Lichtspektrum umfassen, was eine Grauskala-Reflexion, eine Rot-Grün-Blau-Reflexion (RGB-Reflexion), eine Schwarz-Weiß-Reflexion oder eine beliebige andere geeignete oder wünschenswerte Reflexion umfasst. Vorzugsweise wird ein Bild aufgenommen und in einem nicht vorübergehenden Massenspeichermedium aufgezeichnet, etwa in einem nicht vorübergehenden digitalen Datenmassenspeichermedium.
  • Die Kamera 10 kann sich bei einer beliebigen Position und Orientierung relativ zu dem FOV 35 befinden. In einer Ausführungsform enthält das FOV 35 das physikalische Objekt 40, das auf einer beweglichen Ebene 45 orientiert ist, die sich bei einem vorbestimmten Abstand 22 zu der Kamera 10 befindet. Das Objekt 40 ist eine strukturelle Entität mit Merkmalen, die als Beispiel unter anderem räumliche Dimensionen, Materialien und Oberflächenendbearbeitungen, die eine Reflektivität angeben, umfassen. In einer Ausführungsform kann das Objekt 40 eine Komponente oder eine Fläche an einem Fahrzeug in einer Montageanlage sein.
  • In einer Ausführungsform ist das auf der beweglichen Ebene 45 orientierte Objekt 40 an einem ersten Transportsystem 42 montiert, welches das Objekt 40 auf einem linearen Pfad 41 mit einer bekannten Geschwindigkeitsrate befördert und die Kamera 10 ist an einem zweiten Transportsystem 12 montiert, das diese auf einem entsprechenden linearen Pfad mit der bekannten Geschwindigkeitsrate über eine festgelegte Distanz befördert. Der lineare Pfad 41, auf welchem das Objekt 40 und die Kamera 10 befördert werden, umfasst das FOV 35.
  • In einer Ausführungsform werden die 3D-Punktwolkendaten 25 erzeugt, indem mehrere Bitmap-Bilder 15 in der Form eines Grauskalenbilds mit 8 Bit mit codierten strukturierten Lichtmustern, welches das FOV 35 repräsentiert, oder in der Form von Farbbildern, die durch die Hue-Saturation-Intensity (HSI-Triplets) oder durch Rot-Grün-Blau-Primärfarben (RGB-Primärfarben) des FOV oder ohne Einschränkung durch andere Bilddarstellungen repräsentiert sind, decodiert werden. Andere Ausführungsformen der 3D-Punktwolkendaten können durch einen Abtastlaser oder einen RGB-D-Sensor erhalten werden. Die Kamera 10 enthält einen Bildaufnahmesensor, der mit dem Kameracontroller 20 signaltechnisch verbunden ist, welcher eine digitale Signalverarbeitung (DSP) auf der Bitmap-Bilddatei 15 ausführt, um die 3D-Punktwolke 25 zu erzeugen. Der Kameracontroller 20 übermittelt die 3D-Punktwolke 25 an den analytischen Controller 60 zur Verarbeitung und Analyse, wie hier beschrieben wird.
  • Der Bildaufnahmesensor nimmt Pixel in dem FOV 35 mit einer vorbestimmten Auflösung auf und erzeugt eine Bitmap-Bilddatei 15 des FOV 35, z. B. eine 8-Bit-Bitmap der Pixel, welche das FOV 35 mit einer vorbestimmten Auflösung repräsentiert. Die Bitmap-Bilddatei 15 wird an den Kameracontroller 20 übermittelt. Die Bitmap-Bilddatei 15 ist in einer Ausführungsform eine codierte Datendatei, die in einem nicht vorübergehenden digitalen Datenmassenspeichermedium gespeichert ist. Die Bitmap-Bilddatei 15 enthält eine digitale Repräsentation des Bilds, die ein oder eine Vielzahl von Objekten 40 enthalten kann, und sie repräsentiert ein ursprüngliches Bild des FOV 35, das mit der ursprünglichen Auflösung der Kamera 10 aufgenommen wurde. Der Bildaufnahmesensor der Kamera 10 nimmt das Bild des FOV 35 mit einer Standarddefinitions-Nennauflösung auf, beispielsweise mit 640×480 Pixel. Alternativ kann der Bildaufnahmesensor der Kamera 10 das Bild mit einer Hochdefinitions-Nennauflösung aufnehmen, beispielsweise mit 1440×1024 Pixel oder mit einer anderen geeigneten Auflösung. Der Bildaufnahmesensor der Kamera 10 nimmt das 3D-Bild vorzugsweise in der Form eines oder mehrerer stehender Bilder auf.
  • Controller, Steuerungsmodul, Modul, Steuerung, Steuerungseinheit, Prozessor und ähnliche Begriffe bezeichnen eine beliebige oder verschiedene Kombinationen aus einer oder mehreren anwendungsspezifischen integrierten Schaltungen (ASICs), elektronischen Schaltungen, zentralen Verarbeitungseinheiten (vorzugsweise Mikroprozessoren) mit zugehörigem Arbeitsspeicher und Massenspeicher (Festwertspeicher, programmierbarer Festwertspeicher, Speicher mit wahlfreiem Zugriff, Festplattenlaufwerke usw.), die ein oder mehrere Software- oder Firmwareprogramme oder Routinen ausführen, kombinatorischen Logikschaltungen, Eingabe/Ausgabe-Schaltungen und Vorrichtungen, geeigneten Signalaufbereitungs- und Pufferschaltungen und anderen Komponenten, um die beschriebene Funktionalität bereitzustellen, die Datenspeicherung und Datenanalyse umfasst. Software, Firmware, Programme, Anweisungen, Routinen, Code, Algorithmen und ähnliche Begriffe bezeichnen beliebige von einem Controller ausführbare Anweisungssätze, die Kalibrierungen und Nachschlagetabellen enthalten.
  • 2 zeigt auf schematische Weise einen Prozess 200 zum Segmentieren von planaren Oberflächenbereichen, um planare Oberflächenbereiche in einer 3D-Punktwolke zu segmentieren, die in einem Sichtfeld 35 einer digitalen Kamera 10 erzeugt wurde, welche zur Aufnahme eines dreidimensionalen Bilds (3D-Bilds) in der Lage ist, wobei eine Ausführungsform des Systems 100 zum maschinellen Sehen verwendet wird, das mit Bezug auf 1 beschrieben wurde. Der Prozess 200 zum Segmentieren von planaren Oberflächenbereichen ist in Steuerungsroutinen umgeformt, die in dem analytischen Controller 60 oder in einer anderen geeigneten Verarbeitungsvorrichtung in Echtzeit dynamisch ausgeführt werden können. Tabelle 1 ist als ein Schlüssel bereitgestellt, bei dem die numerisch beschrifteten Blöcke und die entsprechenden Funktionen wie folgt offengelegt sind, entsprechend dem Prozess 200 zum Segmentieren von planaren Oberflächenbereichen. Tabelle 1
    BLOCK BLOCKINHALTE
    210 3D-Punktwolkendaten von einer Szene aufnehmen
    220 3D-Punktwolke in tangentiale Oberflächenvektoren transformieren
    230 Aus tangentialen Oberflächenvektoren Oberflächennormalvektoren schätzen
    240 Spitzenwerte unter Verwendung eines Einheitskugelnetzes detektieren
    250 Parallele Ebenen unter Verwendung der Spitzenwerte der Distanzverteilung separieren
    260 Planare Bereiche segmentieren
    270 Planare Oberfläche auf der Grundlage der planaren Bereiche erkennen
    280 Ende
  • Insgesamt umfasst der Prozess 200 zum Segmentieren von planaren Oberflächenbereichen Verfahren und zugehörige Algorithmen zum dynamischen Erkennen von planaren Oberflächen, die umfassen, dass für jeden Punkt Oberflächennormalvektoren durch eine einfache Berechnung von Vektorkreuzprodukten geschätzt werden und dass Spitzenwerte mit einem vorberechneten Einheitskugelnetz detektiert werden. Parallele Ebenen werden unter Verwendung einer Distanzverteilung entlang einer planaren Normalrichtung separiert und planare Bereiche werden unter Verwendung eines Zellteilungsverfahrens erkannt und segmentiert. Der Prozess 200 zum Segmentieren von planaren Oberflächenbereichen und Elemente desselben werden vorzugsweise periodisch ausgeführt, um Merkmale eines Objekts aus Bildern zu erkennen, die unter Verwendung einer Ausführungsform des Systems 100 zum maschinellen Sehen aufgenommen wurden. In einer Ausführungsform wird der Prozess 200 zum Segmentieren von planaren Oberflächenbereichen mit einer Rate periodisch ausgeführt, die kleiner als 1 Sekunde ist. Bei der Verwendung hierin beschreiben die Begriffe ”Dynamik” und ”dynamisch” Schritte oder Prozesse, die in Echtzeit ausgeführt werden und die sich dadurch auszeichnen, dass sie Zustände von Parametern überwachen oder auf andere Weise ermitteln und die Zustände der Parameter während einer Ausführung einer Routine oder zwischen Iterationen der Ausführung der Routine regelmäßig oder periodisch aktualisieren. In einer Ausführungsform umfasst dies das Folgende.
  • Eine Ausführungsform des Systems zum maschinellen Sehen erzeugt eine 3D-Punktwolke 25 aus einer Szene in dem FOV (210) und ein Prozessor transformiert jeden Punkt in der 3D-Punktwolke 25 in einen tangentialen Oberflächenvektor, indem er für alle Punkte in der 3D-Punktwolke 25 eine Differenz von zwei benachbarten Punkten erfasst (220). In einer Ausführungsform erzeugt die 3D-Punktwolke 25, die von der Kamera 10 des Systems 100 zum maschinellen Sehen erzeugt wurde, 3D-Datensätze des FOV mit einer 3D-Auflösung von 0,2 mm und in einer Ausführungsform entspricht jeder Punkt einem Pixel in dem 3D-Datensatz.
  • Die Auflösung im 3D-Raum wird durch die Distanz gemessen. Oberflächennormalvektoren werden aus den tangentialen Oberflächenvektoren von Schritt 220 geschätzt (230). Ein Oberflächennormalvektor ist ein Vektor, der in etwa senkrecht/rechtwinklig zu einer implizierten Oberfläche an jedem Punkt in der 3D-Punktwolke 25 ist. Jeder Punkt in der 3D-Punktwolke 25 wird als Ursprungspunkt mit einem entsprechenden Oberflächennormalvektor betrachtet.
  • Das Schätzen der Oberflächennormalvektoren aus den tangentialen Oberflächenvektoren umfasst, dass eine Nachbarschaft von Punkten um jeden Punkt in der 3D-Punktwolke 25 erkannt wird, wobei jeder Punkt einen Punkt in der 3D-Punktwolke 25 repräsentiert. Vorzugsweise wird die Nachbarschaft der Punkte um jeden Punkt in der 3D-Punktwolke 25 herum als eine Oberfläche mit 7×7 Punkten definiert. 3 zeigt auf graphische Weise eine Nachbarschaft 310 um einen Punkt 320 einer 3D-Punktwolke 25 herum, wobei die 7×7 benachbarten Punkte durch Eckpunkte P1 302, P2 304, P3 306 und P4 308 und zugehörige tangentiale Oberflächenvektoren a → 322, b → 324, c → 326, d → 328, e → 330 und f → 332 angezeigt sind. Ein Oberflächennormalvektor Np → 325 kann für den einen Punkt 320 der 3D-Punktwolke 25 unter Verwendung von Techniken der linearen Algebra berechnet werden, indem ein Kreuzprodukt der Vektoren wie folgt berechnet wird. Np → = (a → + c → + e →)×(b → + d → + f →) [1] Auf diese Weise kann ein Oberflächennormalvektor für jeden Punkt in der 3D-Punktwolke 25 berechnet werden. In einer Ausführungsform wird mit dieser Konfiguration ein Zielkonflikt zwischen Genauigkeit und Berechnungszeit zum Ausführen der Berechnung minimiert.
  • Wieder mit Bezug auf 2 werden Spitzenwerte unter Verwendung eines Einheitskugelnetzes in einem IJK-Raum detektiert (240), welcher den Oberflächennormalraum definiert. 4 zeigt auf graphische Weise eine Ausführungsform eines Einheitskugelnetzes 410 im Kontext eines IJK-Raums, wobei der IJK-Raum einen Vektorraum repräsentiert, der ein 3D-Koordinatensystem definiert, das einen Ursprung 415 und Achsen I 412, J 414 und K 416 aufweist. Das Einheitskugelnetz 410 stellt auf graphische Weise eine Vielzahl von Referenzpunkten an den Scheitelpunkten dar, deren Nachbarschaftsdistanzen gleich sind. Das Einheitskugelnetz 410 wird verwendet, um Spitzenwerte in dem IJK-Raum zu detektieren, da Spitzenwerte mit hoher Dichte die am meisten konzentrierten Oberflächennormalvektoren betonen. Auf die Netzscheitelpunkte wird ein diskreter Laplace-Beltrami-Operator (LB-Operator) angewendet, um Spitzenwerte zu detektieren und zu erkennen.
  • Das beim Ausbilden des Einheitskugelnetzes verwendete optimale dreieckige Netz von Kugeln bedeutet, dass der Trunkierungsfehler des diskreten LB-Operators der kleinste Fehler ist und dass er begrenzt ist. Das dreieckige Netz der Kugeln kann rekursiv erzeugt werden. Dies umfasst, dass mit einem Ikosaeder, d. h. Zwanzigflächner gestartet wird, der in der Einheitskugel eingeschrieben ist, dass jedes Dreieck rekursiv in vier Dreiecke unterteilt wird, indem jede Kante am Mittelpunkt in zwei Teile unterteilt wird und dass dann der Mittelpunkt in der Normalrichtung auf die Einheitskugel projektiert wird. Dieser Prozess erzeugt eine Sequenz von Triangulationen, die jeweils eine Menge von 20, 80, 320, 1280, 5120, 20480, 81820, ... Dreiecksfacetten aufweisen. Als Beispiel kann ein Einheitskugelnetz mit 20480 Dreiecken und 10242 Scheitelpunkten vorteilhaft zur Spitzenwertdetektion in dem IJK-Raum als Kompromiss zwischen Berechnungszeit und Genauigkeit verwendet werden. Bei einer Ausführungsform des Einheitskugelnetzes 410 betragen der minimale, der maximale und der mittlere Winkel zwischen zwei benachbarten Scheitelpunkten 1,98, 2,36 bzw. 2,16 Grad. Aufgrund der Berechnungskosten zum Erzeugen dieser Referenzpunkte werden das beispielhafte Einheitskugelnetz 410 und der minimale, der maximale und der mittlere Winkel zwischen zwei benachbarten Scheitelpunkten vorzugsweise in einer nicht vorübergehenden Speichervorrichtung gespeichert und geladen, wenn der Prozess 200 zum Segmentieren von planaren Oberflächenbereichen ausgeführt wird. Das Einheitskugelnetz 410, das mit Bezug auf 4 im Kontext des IJK-Raums graphisch gezeigt ist, enthält 20480 Dreiecke und 10242 Scheitelpunkte, die zur Spitzenwertdetektion in dem IJK-Raum verwendet werden können. Das Einheitskugelnetz 410 kann zur Laufzeit aus der nicht vorübergehenden Speichervorrichtung geladen werden, wobei ein diskreter Laplace-Beltrami-Operator (LB-Operator) an den Stellen der Netzscheitelpunkte angewendet wird, um Spitzenwerte zu erkennen.
  • 8 zeigt auf graphische Weise eine Dreiecksnetzmaske 800, die auf ein Einheitskugelnetz angewendet werden kann, beispielsweise auf das Einheitskugelnetz 410, das mit Bezug auf 4 gezeigt ist, um eine diskrete Laplaceoperation auszuführen. Ein Laplace-Operator ist eine Form eines Differentialoperators, der verwendet werden kann, um partielle Differentialgleichungen (PDEs) in einem multidimensionalen Euklidschen Raum zu beschreiben. Ein LB-Operator bildet geometrische PDEs, etwa einen mittleren Krümmungsverlauf [engl.: mean curvature flow] und einen Oberflächendiffusionsverlauf [engl.: surface diffusion flow] für die Bildverarbeitung, Oberflächenmodellierung und Computergraphik. Ein diskreter LB-Operator, der über einem Oberflächennetz angewendet wird, steht in enger Beziehung mit der Einheitlichkeit des Netzes. Beim Anwenden auf ein Einheitskugel-Triangulationsnetz weist jeder Referenzpunkt pi 810 sechs benachbarte Punkte pj auf, die durch Elemente 820, 822, 824 826, 828 und 830 bezeichnet sind. Die Distanz zwischen zwei benachbarten der Nachbarpunkte ist für beide Paare nahezu gleich, was die folgenden Annahmen ermöglicht: αij = βij, A(pi) = A(pj) und pipj = pipj-1 = pipj+1 = pjpj-1 = pjpj+1 wobei
  • α
    ein geometrischer Winkel bei einem Scheitelpunkt zwischen pipj-1 und pjpj-1 ist
    βij
    ein geometrischer Winkel zwischen pipj+1 und pjpj+1 ist
    pj, pj-1 und pj+1
    benachbarte Punkte sind, z. B. die Punkte 822, 820 bzw. 824, und
    pipj, pipj-1, pipj+1, pjpj+1 und pjpj+1
    lineare Distanzen zwischen den jeweiligen Punkten sind.
  • Diese Diskretisierung kann durch die folgende Gleichung umgeschrieben werden:
    Figure DE102016100101A1_0002
    wobei die Funktionen f(pi) und f(pi) die Anzahl der Punkte repräsentieren, die zu der Fläche um pi und pj herum gehören.
  • Ein Laplacewert kann für alle Referenzpunkte auf dem Einheitskugelnetz 410 unter Verwendung einer Dreiecksnetzmaske 800 berechnet werden, die einen Wert von (1,1,1–6,1,1,1) aufweist, da jeder Referenzpunkt nur sechs Nachbarpunkte aufweist. Der diskrete LB-Operator kann visualisiert werden, wie mit Bezug auf 8 gezeigt ist, wobei der Referenzpunkt pi 810 einen Wert von –6 aufweist und jeder der sechs Nachbarpunkte pj, die durch die Elemente 820, 822, 824, 826, 828 und 830 angezeigt sind, einen Wert von 1 aufweist. Diese Maske wird auf das Einheitskugelnetz 410 angewendet, um zweite Ableitungen in einer Definition des Laplacewerts zu approximieren. Referenzpunkte mit einem negativen Laplacewert werden als Kandidaten für Spitzenwertpunkte betrachtet und vorzugsweise wird ein vordefinierter Schwellenwert für den Laplacewert verwendet, um dominante Spitzenwerte zu detektieren.
  • 5-1, 5-2 und 5-3 zeigen auf graphische Weise die Anwendung eines Einheitskugelnetzes auf 3D-Punktwolkendaten eines Kästchens, das drei orthonormale Ebenen aufweist. 5-1 zeigt auf graphische Weise eine isometrische Ansicht einer Ausführungsform eines 3D-Kästchens 510 mit drei orthonormalen Ebenen. 3D-Punktwolkendaten für das 3D-Kästchen 510 werden unter Verwendung des beispielhaften Systems zum maschinellen Sehen, das mit Bezug auf 1 beschrieben ist, aufgenommen. 5-2 zeigt auf graphische Weise eine resultierende Oberflächennormalverteilung 522 der 3D-Punktwolkendaten des 3D-Kästchens 510 mit Bezug auf 5-1, die mit einem Einheitskugelnetz 520 aufgenommen wurden. 5-3 zeigt auf graphische Weise einen Abschnitt der 3D-Punktwolkendaten 530 des 3D-Kästchens mit einem ersten Spitzenwert 532, der die Orientierung einer ersten Ebene anzeigt, die mit der resultierenden Oberflächennormalverteilung 522 verbunden ist, die in 5-2 erkannt wurde.
  • Wieder mit Bezug auf 2 umfassen die Ausgaben aus dem Schritt des Detektierens der Spitzenwerte aus dem Einheitskugelnetz (240) eine Orientierung N→→(i, j, k) der Ebenen. Parallele Ebenen werden unter Verwendung der Distanzverteilungsspitzenwerte separiert (250). Das Separieren der parallelen Ebenen umfasst, dass die Ebenen in der gleichen Orientierung segmentiert werden, wobei die Ausgaben aus dem Schritt des Detektierens der Spitzenwerte aus dem Einheitskugelnetz die Orientierungen N→→(i, j, k) der parallelen Ebenen sind. Die 3D-Punkte, die zu einem gefundenen Spitzenwert gehören, repräsentieren einen Satz von parallelen Ebenen mit dem gleichen Normalvektor, aber diese 3D-Punkte liegen bei verschiedenen Distanzen. Distanzen {D1, D2, ..., Dn} können für die 3D-Punkte P(xn, yn, zn) auf einer Ebene mit der detektierten Ebenenoberflächennormalen berechnet oder anderweitig bestimmt werden.
  • Alle 3D-Punkte, die zu einer Ebene von mehreren parallelen Ebenen gehören, können durch ihre zugehörigen Distanzverteilungsspitzenwerte entlang eines durchschnittlichen Ebenennormalvektors N → 610 separiert werden. Der Ebenennormalvektor N → 610 ist analog zu dem Oberflächennormalvektor, der in dem Prozess 200 zum Segmentieren von planaren Oberflächenbereichen wie beschrieben hergeleitet wird. 6-1 zeigt auf graphische Weise eine Vielzahl von Kandidaten für Punkte in parallelen Ebenen, die eine Ebene 1 611, eine Ebene 2 613 und eine Ebene 3 615 umfassen, die auf den durchschnittlichen Ebenennormalvektor N → 610 projiziert wurden, und einen Distanzvektor Dp → 605 in 3D, der im Kontext einer x-Achse 602, einer y-Achse 604 und einer z-Achse 606 definiert ist, die einen Ursprung 601 aufweisen, welcher mit einem Ursprung des Distanzvektors Dp → 605 übereinstimmt.
  • 6-2 zeigt auf graphische Weise ein eindimensionales Histogramm (1D-Histogramm) der Distanzverteilung von allen 3D-Punkten für einen Ebenennormalvektor N → 610 auf der Grundlage der Ergebnisse, die mit Bezug auf 6-1 gezeigt sind. Die horizontale Achse 620 stellt eine Distanz in die Richtung des Ebenennormalvektors N → 610 aus der Distanzverteilungsdichte des Distanzvektors Dp → 605 dar und Histogramme 621, 623 und 625 entsprechen der Ebene 1 611, der Ebene 2 613 bzw. der Ebene 3 615, die mit Bezug auf 6-1 gezeigt sind. Die Größen der Histogramme 621, 623 und 625 werden auf der Grundlage von Dp →·N → ermittelt, d. h. aus dem Skalarprodukt des Distanzvektors Dp → 605 und dem durchschnittlichen Ebenennormalvektor N → 610. Dieses Ergebnis liefert eine Distanzverteilung entlang der gleichen Oberflächennormalrichtung für alle parallelen Ebenen. Folglich wird die Ebenennormalrichtung verwendet, um eine Distanzverteilung zu berechnen. Dies ermöglicht das Projizieren eines 3D-Punkts in eine eindimensionale Richtung, beispielsweise wird jeder 3D-Punkt, der zu der Ebene 1 611 gehört, in einen Spitzenwert in eine Distanzdimension entlang der Richtung des Ebenennormalvektors gruppiert. Wenn zwei Punkte zu der gleichen Ebene gehören, können sie in den gleichen Spitzenwert in der Distanzdimension projiziert werden. Andernfalls gehören sie zu verschiedenen parallelen Ebenen. Die Projektionsrichtung, die parallel zu dem Ebenennormalvektor N → 610 ist, wird in der Lage sein, in diesem Fall diese zwei parallelen Ebenen zu unterscheiden.
  • Wenn eine Distanzverteilung entlang des Ebenennormalvektors verfügbar ist, kann ein kombiniertes Verfahren, das ein simuliertes Abkühlen und einen Bergsteigeralgorithmus umfasst, verwendet werden, um die Spitzenwerte zu detektieren. Simulated Annealing, bzw. ein simuliertes Abkühlen und der Bergsteigeralgorithmus sind bekannte analytische Techniken zum Identifizieren lokaler Minimum- und Maximum-Spitzenwerte, wobei der Bergsteigeralgorithmus zum Erkennen von Aufwärts- und Abwärts-Operationen verwendet wird und das simulierte Abkühlen angewendet wird, um sowohl lokale Minimum- als auch Maximum-Spitzenwerte zu erkennen. Diese Spitzenwerte repräsentieren Segmente paralleler Ebenen, die verwendet werden, um die Daten zu erkennen und zu segmentieren, um einen oder mehrere Spitzenwerte in einem Distanzraum zu detektieren.
  • Wieder mit Bezug auf 2 werden, nachdem die verschiedenen Ebenen mit den gleichen Normalvektoren bei verschiedenen Höhen unter Verwendung der Distanzverteilungsspitzenwerte separiert wurden (250), die planaren Daten in ein oder mehrere Bereiche auf der gleichen Ebene segmentiert, d. h. in planare Bereiche segmentiert (260), wobei vorzugsweise eine Strategie mit radialer Begrenzung des nächstgelegenen Nachbarn (RBNN-Strategie von radially bounded nearest neighbor) kombiniert mit einem Prozess des Suchens des nächstgelegenen Nachbarn auf der Grundlage einer Zellteilung verwendet wird. RBNN-Strategien sind bekannt und umfassen, dass Punktwolken, die innerhalb eines bestimmten Radius gelegen sind, zur Analyse einer Gruppe zugeordnet werden. Das RBNN-Verfahren wird vorzugsweise mit einer Verbesserung der Suche des nächstgelegenen Nachbarn auf Grundlage einer Zellenabweichung angewendet, um die Verarbeitung zu beschleunigen und damit die Ausführungszeit zu reduzieren. Die RBNN-Strategie ist zum Detektieren flacher Kästchen und flacher Oberflächen mit hoher Genauigkeit in der Lage. Alle Punkte auf einer Ebene werden in Zellen mit der gleichen Größe unterteilt und jede Zelle repräsentiert einen Satz von Punkt. Es werden Zellen gewählt, die eine Menge von Punkten aufweisen, die größer als ein vordefinierte Schwellenwert ist. Bei allen gewählten Zellen werden Nachbarzellen durch 3×3-Masken definiert. Folglich umfasst das Segmentieren der planaren Daten in einen oder in eine Vielzahl gleicher planarer Bereiche das Transformieren aller Punkte in jedem der planaren Bereiche auf der gleichen Ebene in eine XOY-Ebene, d. h. die Ebene, die rechtwinklig zu ihrer Normalrichtung ist. Ein größtes Rechteck wird erkannt, in gleiche Zellen unterteilt und Zellen, die mindestens einen Punkt enthalten, werden gewählt. Das Gruppieren wird auf der Grundlage einer Regel, dass zwei benachbarte Zellen Punkte in der gleichen Gruppe aufweisen sollen, bewerkstelligt. Diese Herangehensweise kann beliebige Gestalten auf der Grundlage der lokalen Dichte beim EPS-Nachbar für vieldimensionale Daten erkennen. In einer Ausführungsform werden 37 Millisekunden benötigt, um 100.000 Punkte zu verarbeiten, was diesen Abschnitt des Prozesses geeignet für eine Echtzeitanwendung macht, um eine planare Oberfläche zu erkennen. Wie es beschrieben und verwendet wird, liegt jeder Nachbar in einer 3×3-Matrix. Durch Unterteilen der Daten in Zellen und Betrachten der Zelle als Punkte kann die Anzahl der analysierten Punkte um einen Faktor von 40 bis 50 reduziert werden, wobei die Berechnungszeit zur Nachbarsuche unverändert bleibt. Eine planare Oberfläche wird auf der Grundlage der planaren Bereiche erkannt (270) und diese Iteration endet (280).
  • Das Verfahren zur schnellen Segmentierung planarer Oberflächenbereiche wird schnell ausgeführt. Die hauptsächliche Verringerung der Berechnungszeit liegt in dem Schritt der Spitzenwertdetektion unter Verwendung des Einheitskugelnetzes in dem IJK-Raum, d. h. in Schritt 240. Folglich können hauptsächlich planare Oberflächen unter Verwendung dieses Verfahrens erkannt werden. Daher kann eine automatische visuelle Teileuntersuchung in Echtzeit verwendet werden, um die Produktqualität in einer Produktionsumgebung zu verbessern.
  • 7 zeigt auf graphische Weise Ergebnisse des Ausführens der schnellen Segmentierung planarer Oberflächenbereiche, was umfasst, dass alle Punkte in jedem der Bereiche auf der gleichen Ebene in eine XOY-Ebene 705 transformiert werden, d. h. die Ebene, die rechtwinklig zu der Normalrichtung ist. Indem die Punkte in eine Richtung projiziert werden, die parallel zu der Ebenennormalrichtung ist, können wie gezeigt zwei Bereiche 710 und 720 unterschieden werden.
  • Die genaue Beschreibung und die Zeichnungen oder Figuren unterstützen und beschreiben die vorliegenden Lehren, aber der Umfang der vorliegenden Lehren wird alleine durch die Ansprüche definiert. Obwohl einige der besten Arten und andere Ausführungsformen zum Ausführen der vorliegenden Lehren im Detail beschrieben wurden, existieren verschiedene alternative Konstruktionen und Ausführungsformen, um die vorliegenden Lehren, die in den beigefügten Ansprüchen definiert sind, in die Praxis umzusetzen.

Claims (10)

  1. Verfahren zum Verwenden eines Systems zum maschinellen Sehen, um ein Objekt in einem Sichtfeld dynamisch zu untersuchen, wobei das Verfahren umfasst, dass: dreidimensionale Punktwolkendaten (3D-Punktwolkendaten) des Sichtfelds aufgenommen werden; jeder Punkt der 3D-Punktwolkendaten in eine Vielzahl von tangentialen Oberflächenvektoren transformiert wird; Oberflächennormalvektoren für jeden Punkt der 3D-Punktwolkendaten auf der Grundlage der Vielzahl der tangentialen Oberflächenvektoren ermittelt werden; Verteilungsspitzenwerte in den Oberflächennormalvektoren unter Verwendung eines Einheitskugelnetzes detektiert werden; parallele Ebenen unter Verwendung der Distanzverteilungsspitzenwerte separiert werden; unter Verwendung eines Controllers eine Strategie mit radialer Begrenzung des nächstgelegenen Nachbarn in Kombination mit einem Prozess des Suchens des nächstgelegenen Nachbarn auf der Grundlage einer Zellteilung ausgeführt wird, um einen planaren Bereich zu segmentieren; und eine planare Oberfläche des Objekts auf der Grundlage des segmentierten planaren Bereichs erkannt wird.
  2. Verfahren nach Anspruch 1, wobei das Transformieren der 3D-Punktwolkendaten in eine Vielzahl von tangentialen Oberflächenvektoren umfasst, dass eine Differenz von zwei benachbarten Punkten erfasst wird, um jeden Punkt in den 3D-Punktwolkendaten in einen tangentialen Oberflächenvektor zu transformieren.
  3. Verfahren nach Anspruch 1, wobei das Ermitteln der Oberflächennormalvektoren für jeden Punkt der 3D-Punktwolkendaten auf der Grundlage der Vielzahl von tangentialen Oberflächenvektoren umfasst, dass: eine Nachbarschaft von Punkten in einem Oberflächengebiet um jeden Punkt in der 3D-Punktwolke herum erkannt wird; ein tangentialer Oberflächenvektor für jeden Punkt in der Nachbarschaft der Punkte ermittelt wird; und ein Kreuzprodukt der tangentialen Oberflächenvektoren für die Nachbarschaft der Punkte berechnet wird.
  4. Verfahren nach Anspruch 3, wobei das Erkennen einer Nachbarschaft von Punkten in einem Oberflächengebiet um jeden Punkt in der 3D-Punktwolke herum umfasst, dass eine Oberfläche von 7×7 Punkten für jeden Punkt in den 3D-Punktwolkendaten erkannt wird.
  5. Verfahren nach Anspruch 1, wobei das Ermitteln von Oberflächennormalvektoren für die Vielzahl von tangentialen Oberflächenvektoren umfasst, dass: eine Nachbarschaft von Punkten um jeden der Punkte in den 3D-Punktwolkendaten herum erkannt wird; tangentiale Oberflächenvektoren ermittelt werden, die mit der Nachbarschaft von Punkten verbunden sind; und ein Kreuzprodukt der tangentialen Oberflächenvektoren berechnet wird, um einen Oberflächennormalvektor für jeden Punkt in den 3D-Punktwolkendaten zu ermitteln.
  6. Verfahren nach Anspruch 1, wobei das Detektieren von Verteilungsspitzenwerten in den Oberflächennormalvektoren unter Verwendung eines Einheitskugelnetzes umfasst, dass ein diskreter Laplace-Beltrami-Operator (LB-Operator) auf Netzscheitelpunkte des Einheitskugelnetzes angewendet wird, um die Verteilungsspitzenwerte zu detektieren.
  7. Verfahren nach Anspruch 1, wobei das Aufnehmen der 3D-Punktwolkendaten des Sichtfelds umfasst, dass die 3D-Punktwolkendaten des Sichtfelds unter Verwendung einer digitalen Kamera aufgenommen werden.
  8. Verfahren nach Anspruch 1, wobei das Separieren paralleler Ebenen unter Verwendung der Verteilungsspitzenwerte umfasst, dass die parallelen Ebenen unter Verwendung der Distanzverteilung entlang einer Ebenennormalrichtung separiert werden.
  9. Verfahren zum dynamischen Verarbeiten einer dreidimensionalen Punktwolke (3D-Punktwolke), die einem Sichtfeld zugeordnet ist, wobei das Verfahren umfasst, dass: jeder Punkt der 3D-Punktwolke in eine Vielzahl tangentialer Oberflächenvektoren transformiert wird; Oberflächennormalvektoren für jeden Punkt der 3D-Punktwolke auf der Grundlage der Vielzahl tangentialer Oberflächenvektoren ermittelt werden; Verteilungsspitzenwerte in den Oberflächennormalvektoren unter Verwendung eines Einheitskugelnetzes detektiert werden; parallele Ebenen unter Verwendung der Distanzverteilungsspitzenwerte getrennt werden; planare Bereiche segmentiert werden, indem unter Verwendung eines Controllers eine Strategie mit radialer Begrenzung des nächstgelegenen Nachbarn kombiniert mit einem Prozess der Suche des nächstgelegenen Nachbarn auf der Grundlage einer Zellteilung ausgeführt wird; und eine planare Oberfläche auf der Grundlage der segmentierten planaren Bereiche erkannt wird.
  10. System zum maschinellen Sehen, um ein Objekt in einem Sichtfeld dynamisch zu untersuchen, umfassend: eine digitale Kamera, die mit einem Kameracontroller signaltechnisch verbunden ist, der mit einem analytischen Controller signaltechnisch verbunden ist; wobei die digitale Kamera ausgestaltet ist, um eine Bitmap-Bilddatei aufzunehmen, die ein dreidimensionales Bild (3D-Bild) des Sichtfelds enthält; wobei der Kameracontroller eine digitale Signalverarbeitung auf der Bitmap-Bilddatei ausführt, um eine 3D-Punktwolke zu erzeugen; und wobei der analytische Controller eine Steuerungsroutine ausführt, die umfasst, dass: jeder Punkt der 3D-Punktwolkendaten in eine Vielzahl von tangentialen Oberflächenvektoren transformiert wird, Oberflächennormalvektoren für jeden Punkt der 3D-Punktwolkendaten auf der Grundlage der Vielzahl von tangentialen Oberflächenvektoren ermittelt werden, Verteilungsspitzenwerte in den Oberflächennormalvektoren unter Verwendung eines Einheitskugelnetzes detektiert werden, parallele Ebenen unter Verwendung der Distanzverteilungsspitzenwerte separiert werden, eine Strategie mit radialer Begrenzung des nächstgelegenen Nachbarn kombiniert mit einem Prozess der Suche der nächstgelegenen Nachbarn auf der Grundlage einer Zellteilung ausgeführt wird, um einen planaren Bereich zu segmentieren, und eine planare Oberfläche des Objekts auf der Grundlage des segmentierten planaren Bereichs erkannt wird.
DE102016100101.5A 2015-01-08 2016-01-04 System zum maschinellen sehen und analytisches verfahren zur segmentierung planarer oberflächen Withdrawn DE102016100101A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/592,133 US10115035B2 (en) 2015-01-08 2015-01-08 Vision system and analytical method for planar surface segmentation
US14/592,133 2015-01-08

Publications (1)

Publication Number Publication Date
DE102016100101A1 true DE102016100101A1 (de) 2016-07-14

Family

ID=56233905

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102016100101.5A Withdrawn DE102016100101A1 (de) 2015-01-08 2016-01-04 System zum maschinellen sehen und analytisches verfahren zur segmentierung planarer oberflächen

Country Status (3)

Country Link
US (1) US10115035B2 (de)
CN (1) CN105787923B (de)
DE (1) DE102016100101A1 (de)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9443298B2 (en) 2012-03-02 2016-09-13 Authentect, Inc. Digital fingerprinting object authentication and anti-counterfeiting system
US10621594B2 (en) 2016-02-19 2020-04-14 Alitheon, Inc. Multi-level authentication
US10740767B2 (en) 2016-06-28 2020-08-11 Alitheon, Inc. Centralized databases storing digital fingerprints of objects for collaborative authentication
US10915612B2 (en) 2016-07-05 2021-02-09 Alitheon, Inc. Authenticated production
US10380767B2 (en) * 2016-08-01 2019-08-13 Cognex Corporation System and method for automatic selection of 3D alignment algorithms in a vision system
US10776661B2 (en) * 2016-08-19 2020-09-15 Symbol Technologies, Llc Methods, systems and apparatus for segmenting and dimensioning objects
US10839528B2 (en) 2016-08-19 2020-11-17 Alitheon, Inc. Authentication-based tracking
JP6697986B2 (ja) * 2016-09-07 2020-05-27 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置および画像領域分割方法
KR101836125B1 (ko) 2016-12-22 2018-04-19 아주대학교산학협력단 모델의 형상 특징 정보 생성 방법 및 형상 유사도 분석 방법
US10438405B2 (en) * 2017-03-02 2019-10-08 Sony Corporation Detection of planar surfaces for use in scene modeling of a captured scene
EP3635619A4 (de) * 2017-05-07 2021-01-20 Manam Applications Ltd. System und verfahren zur 3d-modellierung und -analyse einer konstruktion
EP3418976A1 (de) * 2017-06-22 2018-12-26 Thomson Licensing Verfahren und vorrichtungen zur codierung und rekonstruktion einer punktwolke
EP3435287A3 (de) * 2017-07-25 2019-05-01 Alitheon, Inc. Modellbasierte digitale fingerabdrucknahme
US10672118B2 (en) 2017-12-22 2020-06-02 The Boeing Company Method and apparatus for detecting surface features
EP3514715A1 (de) 2018-01-22 2019-07-24 Alitheon, Inc. Sichere digitale fingerabdruck-schlüsselobjektdatenbank
US10957072B2 (en) 2018-02-21 2021-03-23 Cognex Corporation System and method for simultaneous consideration of edges and normals in image features by a vision system
WO2020006433A1 (en) * 2018-06-29 2020-01-02 Fast Global Solutions, Inc. Segmentation of boxes from a 3d point cloud for automatic unloading and loading
CN109405807B (zh) * 2018-10-26 2021-01-08 五维智能信息科技(北京)有限公司 一种大场景倾斜影像三维重建的分区方法
CN209485301U (zh) * 2018-12-03 2019-10-11 泰科电子(上海)有限公司 同心度检测平台
US10963670B2 (en) 2019-02-06 2021-03-30 Alitheon, Inc. Object change detection and measurement using digital fingerprints
EP3736717A1 (de) 2019-05-10 2020-11-11 Alitheon, Inc. Verfahren und system für digitale fingerabdrücke in einer schleifenkette
CN110322515A (zh) * 2019-07-02 2019-10-11 工极智能科技(苏州)有限公司 基于双目立体视觉的工件识别及抓取点提取方法
GB2585645B (en) * 2019-07-08 2024-04-17 Toshiba Kk Computer vision method and system
KR102358759B1 (ko) * 2019-10-03 2022-02-07 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
US11238146B2 (en) 2019-10-17 2022-02-01 Alitheon, Inc. Securing composite objects using digital fingerprints
CN110796671B (zh) * 2019-10-31 2022-08-26 深圳市商汤科技有限公司 数据处理方法及相关装置
US11645756B2 (en) 2019-11-14 2023-05-09 Samsung Electronics Co., Ltd. Image processing apparatus and method
EP3859603A1 (de) 2020-01-28 2021-08-04 Alitheon, Inc. Tiefenbasierte digitale fingerabdruckerstellung
CN111311576B (zh) * 2020-02-14 2023-06-02 易思维(杭州)科技有限公司 基于点云信息的缺陷检测方法
KR102277098B1 (ko) * 2020-02-25 2021-07-15 광운대학교 산학협력단 포인트 클라우드 및 메쉬를 이용한 체적형 홀로그램 생성 방법
US11341348B2 (en) 2020-03-23 2022-05-24 Alitheon, Inc. Hand biometrics system and method using digital fingerprints
US11568683B2 (en) 2020-03-23 2023-01-31 Alitheon, Inc. Facial biometrics system and method using digital fingerprints
US11948377B2 (en) 2020-04-06 2024-04-02 Alitheon, Inc. Local encoding of intrinsic authentication data
US11663849B1 (en) 2020-04-23 2023-05-30 Alitheon, Inc. Transform pyramiding for fingerprint matching system and method
KR20230049585A (ko) * 2020-05-11 2023-04-13 코그넥스코오포레이션 포인트 클라우드 히스토그램을 생성하기 위한 방법 및 장치
US11700123B2 (en) 2020-06-17 2023-07-11 Alitheon, Inc. Asset-backed digital security tokens
CN112184887A (zh) * 2020-09-29 2021-01-05 南京鼎毅信息科技有限公司 基于双目视觉的人脸三维重建优化方法
CN112634448B (zh) * 2020-12-22 2022-12-30 郑州大学 全球离散点云系统驱动的空间格网通用构建方法
CN114358440B (zh) * 2022-01-17 2023-04-18 核工业北京地质研究院 确定铀矿三维分布概率的方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2003286922A1 (en) * 2002-11-06 2004-06-03 Geometric Informatics Inc. Analysis of geometric surfaces by conformal structure
US20060017720A1 (en) * 2004-07-15 2006-01-26 Li You F System and method for 3D measurement and surface reconstruction
WO2006058292A2 (en) * 2004-11-29 2006-06-01 Purdue Research Foundation Methods for retrieving shapes and drawings
US7792367B2 (en) * 2007-02-13 2010-09-07 Panasonic Corporation System, method and apparatus for image processing and image format
US8326020B2 (en) 2007-02-28 2012-12-04 Sungkyunkwan University Foundation Structural light based depth imaging method and system using signal separation coding, and error correction thereof
US8265425B2 (en) * 2008-05-20 2012-09-11 Honda Motor Co., Ltd. Rectangular table detection using hybrid RGB and depth camera sensors
US8503730B2 (en) * 2008-09-19 2013-08-06 Honeywell International Inc. System and method of extracting plane features
US8229928B2 (en) * 2009-02-27 2012-07-24 Empire Technology Development Llc 3D object descriptors
US8933925B2 (en) * 2009-06-15 2015-01-13 Microsoft Corporation Piecewise planar reconstruction of three-dimensional scenes
US20130124148A1 (en) * 2009-08-21 2013-05-16 Hailin Jin System and Method for Generating Editable Constraints for Image-based Models
EP2529356A1 (de) 2010-01-25 2012-12-05 Thomson Licensing Verfahren zur codierung der normalen eines 3d-mesh-modells, verfahren zur decodierung der normalen eines 3d-mesh-modells, codierer und decodierer
JP5343042B2 (ja) 2010-06-25 2013-11-13 株式会社トプコン 点群データ処理装置および点群データ処理プログラム
US8274508B2 (en) * 2011-02-14 2012-09-25 Mitsubishi Electric Research Laboratories, Inc. Method for representing objects with concentric ring signature descriptors for detecting 3D objects in range images
US9582932B2 (en) * 2012-06-05 2017-02-28 Apple Inc. Identifying and parameterizing roof types in map data
US8705110B2 (en) 2012-06-25 2014-04-22 Yoldas Askan Method of generating a smooth image from point cloud data
US20140192050A1 (en) * 2012-10-05 2014-07-10 University Of Southern California Three-dimensional point processing and model generation
US9453730B2 (en) 2013-03-20 2016-09-27 Cognex Corporation Machine vision 3D line scan image acquisition and processing
WO2015154008A1 (en) * 2014-04-04 2015-10-08 Massachusetts Institute Of Technology System and method for extracting dominant orientations from a scene

Also Published As

Publication number Publication date
CN105787923B (zh) 2019-05-21
US10115035B2 (en) 2018-10-30
CN105787923A (zh) 2016-07-20
US20160203387A1 (en) 2016-07-14

Similar Documents

Publication Publication Date Title
DE102016100101A1 (de) System zum maschinellen sehen und analytisches verfahren zur segmentierung planarer oberflächen
DE102015121339B4 (de) Systeme und verfahren zum ermitteln eines zustands einer fahrbahn
DE102014209137B4 (de) Verfahren und Vorrichtung zur Kalibrierung eines Kamerasystems eines Kraftfahrzeugs
EP1173749B1 (de) Bildbearbeitung zur vorbereitung einer texturanalyse
DE60036780T2 (de) Verfahren zum Vergleichen eines zweidimensionalen Bildes zu einem unter mehreren in einem Datenbank gespeicherten dreidimensionalen Kandidatmodellen
DE102014211948A1 (de) System und Verfahren zur selektiven Bestimmung von Punktwolken
DE102017116952A1 (de) System und verfahren für verbessertes scoring von 3d-lagen und entfernen von störpunkten in 3d-bilddaten
DE112016005776T5 (de) Systeme und Verfahren zum Bereitstellen eines Bild-Klassifikators
DE202009013865U1 (de) Konzept zum Auswählen eines optimierten Bewertungsmerkmalsteilsatzes für eine Inspektion von Freiformoberflächen und Konzept zum Inspizieren einer Freiformoberfläche
EP3688725B1 (de) Verfahren und vorrichtung zum erzeugen einer 3d-rekonstruktion eines objekts
DE102005010169A1 (de) Aktives Polyeder für 3D-Bildsegmentierung
DE10055572C1 (de) Verfahren zur Leitungserkennung für tieffliegende Fluggeräte
DE102021107333A1 (de) 3d-stellungsabschätzung mit einer 2d-kamera
DE102015122116A1 (de) System und Verfahren zur Ermittlung von Clutter in einem aufgenommenen Bild
DE112020004301T5 (de) Objekterkennungsvorrichtung
DE112021002702T5 (de) Verfahren und apparate zum identifizieren von oberflächenmerkmalen in dreidimensionalen bildern
DE102018132805A1 (de) Verfahren für eine verbesserte Objekterfassung
DE102019104310A1 (de) System und Verfahren zur simultanen Betrachtung von Kanten und normalen bei Bildmerkmalen durch ein Sichtsystem
DE19928231C2 (de) Verfahren und Vorrichtung zur Segmentierung einer Punkteverteilung
EP3931798B1 (de) Schätzung der bewegung einer bildposition
DE102012223047B4 (de) Mehrteil-Korrespondierer (corresponder) für mehrere Kameras
DE102006044595B4 (de) Bildverarbeitungsvorrichtung zur Segmentierung anhand von Konturpunkten
DE102016100134B4 (de) Verfahren und Vorrichtung zum Untersuchen eines Objekts unter Verwendung von maschinellem Sehen
DE202013012443U1 (de) Zusammenführung dreidimensionaler Modelle auf Basis des Konfidenzmaßes
DE112021002781T5 (de) Verfahren und Apparate zum Erzeugen von Punktwolkenhistogrammen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06K0009030000

Ipc: G06V0030120000

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee