DE112016003118T5 - Punkt-zu-Punkt-Abstandsmessungen in 3D-Kamerabildern - Google Patents

Punkt-zu-Punkt-Abstandsmessungen in 3D-Kamerabildern Download PDF

Info

Publication number
DE112016003118T5
DE112016003118T5 DE112016003118.1T DE112016003118T DE112016003118T5 DE 112016003118 T5 DE112016003118 T5 DE 112016003118T5 DE 112016003118 T DE112016003118 T DE 112016003118T DE 112016003118 T5 DE112016003118 T5 DE 112016003118T5
Authority
DE
Germany
Prior art keywords
pair
points
measurement
measurement points
spatial coordinates
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.)
Granted
Application number
DE112016003118.1T
Other languages
English (en)
Other versions
DE112016003118B4 (de
Inventor
Kalpana Seshadrinathan
Oscar Nestares
Ali Mehdizadeh
Max T. Stein
Yi Wu
James Granger
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of DE112016003118T5 publication Critical patent/DE112016003118T5/de
Application granted granted Critical
Publication of DE112016003118B4 publication Critical patent/DE112016003118B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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/14Measuring arrangements characterised by the use of optical techniques for measuring distance or clearance between spaced objects or spaced apertures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/90Arrangement of cameras or camera modules, e.g. multiple cameras in TV studios or sports stadiums
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Geometry (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Theoretical Computer Science (AREA)
  • Length Measuring Devices By Optical Means (AREA)
  • Image Analysis (AREA)

Abstract

Systeme und Verfahren zum Bestimmen von Punkt-zu-Punkt-Abständen aus 3D-Bilddaten. Bei manchen Ausführungsformen repräsentieren zwei Messpunkte, die zum Beispiel durch einen Benutzer spezifiziert werden, Endpunkte auf einem Objekt von Interesse innerhalb eines Einzelbildes. Unter der Annahme, dass alle Punkte, die zwischen diesen Endpunkten liegen, auch zum Objekt von Interesse gehören, können zusätzliche 3D-Daten, die mit Punkten assoziiert sind, die entlang einer durch die Messpunkte definierten Messlinie liegen, wirksam eingesetzt werden, um eine robuste Abstandsmessung bereitzustellen. Bei manchen Ausführungsformen wird eine Total-Least-Squares-Anpassung durchgeführt, zum Beispiel über RPCA (Robust Principal Component Analysis), um lineare Strukturen innerhalb des Satzes der 3D-Koordinaten auf der Messlinie zu identifizieren. Bei manchen Ausführungsbeispielen wird die MCD(Minimum Covariance Determinant)-Schätzfunktion der Kovarianzmatrix der Daten für eine hoch robuste Schätzung des Mehrvariablenorts und der Mehrvariablenstreuung berechnet.

Description

  • Die vorliegende Anmeldung beansprucht die Priorität auf die US-Patentanmeldung mit der Serien-Nr. 14/841,609, eingereicht am 31. August 2015 mit dem Titel „POINT-TO-POINT DISTANCE MEASUREMENTS IN 3D CAMERA IMAGES“, die unter Bezugnahme in ihrer Gesamtheit aufgenommen wird.
  • HINTERGRUND
  • Eine Digitalkamera ist eine Komponente, die häufig in kommerziellen elektronischen Medieneinrichtungsplattformen enthalten ist. Digitalkameras sind jetzt in tragbaren Formfaktoren verfügbar (z. B. Videoaufnahme-Ohrgeräten, Videoaufnahme-Headsets, Videoaufnahme-Brillen usw.), sowie in Smartphones, Tablet-Computern und Notebook-Computern usw. eingebettet. Dreidimensionale (3D) Kameras werden geläufiger und können jetzt auf vielen mobilen Einrichtungen/Plattformen, einschließlich Fahrzeugen, gefunden werden. Diese Einrichtungen liefern verbesserte Entertainment- und Gebrauchserlebnisse für einen Endbenutzer. Beispielsweise können Fotografie- und Fahrzeugsteuersysteme durch Tiefeninformationen (d. h. Entfernungsinformationen) verbessert werden, die von der 3D-Kamera ausgegeben werden. Bestehende Technologien zum Erzeugen von 3D-Kamerabildern beinhalten Stereo- oder Multi-Kameras, strukturierte Lichtsysteme, die projizierte Lichtmuster und Kameras umfassen, Laufzeit(TOF)-Kameras usw.
  • Eine wichtige Anwendung, die durch 3D-Kameras ermöglicht wird, ist eine Punkt-zu-Punkt-Messung, bei der der Abstand zwischen zwei Punkten auf einem Bild, die typischerweise durch den Benutzer spezifiziert werden, in Einheiten der realen Welt, wie etwa Zentimeter usw., gemessen wird. Die einfachste Weise, einen derartigen Punkt-zu-Punkt-Abstand zu messen, besteht darin, die Entfernungsinformationen zu benutzen, zusammen mit geometrischen Kalibrationsinformationen, um 3D-Koordinaten der Messpunkte zu berechnen. Eine Messung des dazwischenliegenden Abstands zwischen den ausgewählten Messpunkten kann dann berechnet werden. Ein derartiger Ansatz zur Messung leidet jedoch unter mehreren Nachteilen. Beispielsweise sind Entfernungswerte häufig rauschbehaftet, was einen erheblichen Fehler einführt, wenn ein Paar von Punkten spezifiziert wird. Die Technik ist außerdem auch für eine unpräzise Benutzereingabe des Orts der Messung anfällig.
  • Eine robustere Punkt-zu-Punkt-Abstandsmessung in 3D-Kamerabildern ist daher von Vorteil.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Das vorliegend beschriebene Material ist in den beigefügten Figuren beispielhaft und nicht beschränkend veranschaulicht. Aus Gründen der Einfachheit und Klarheit sind Elemente, die in den Figuren veranschaulicht werden, nicht notwendigerweise maßstabsgetreu gezeichnet. Beispielsweise können die Abmessungen mancher Elemente relativ zu anderen Elementen aus Klarheitsgründen übertrieben sein. Ferner werden, wo es als angebracht angesehen wird, Bezugskennzeichnungen unter den Figuren wiederholt, um entsprechende oder analoge Elemente anzuzeigen. In den Figuren:
  • ist 1 eine schematische Darstellung von Punkt-zu-Punkt-Abstandsmessungen in 3D-Kamerabildern gemäß manchen Ausführungsformen;
  • ist 2A ein Flussdiagramm eines Verfahrens für eine Punkt-zu-Punkt-Abstandsmessung gemäß manchen Ausführungsformen;
  • ist 2B eine schematische Darstellung einer Punkt-zu-Punkt-Zwischenraumabstandsmessung in 3D-Kamerabildern gemäß manchen Ausführungsformen;
  • ist 3 ein Flussdiagramm eines Verfahrens für eine Punkt-zu-Punkt-Abstandsmessung gemäß manchen Ausführungsformen;
  • veranschaulicht 4 eine Bildaufnahmeeinrichtung, die eine Punkt-zu-Punkt-Abstandsmessungsleitung beinhaltet, gemäß manchen Ausführungsformen;
  • ist 5 ein Blockdiagramm einer Ausführungsform eines Prozessors, der einen oder mehrere Prozessorkerne, eine integrierte Speichersteuerung und einen integrierten Grafikprozessor aufweist, gemäß manchen Ausführungsformen;
  • ist 6 ein Diagramm eines beispielhaften Systems mit ultraniedriger Leistung, das eine Punkt-zu-Punkt-Messeinrichtung einsetzt, gemäß manchen Ausführungsformen und
  • ist 7 ein Diagramm einer beispielhaften mobilen Handgeräteplattform, die gemäß manchen Ausführungsformen eingerichtet ist.
  • AUSFÜHRLICHE BESCHREIBUNG VON AUSFÜHRUNGSBEISPIELEN
  • Eine oder mehrere Ausführungsformen werden unter Bezugnahme auf die angefügten Figuren beschrieben. Obgleich spezifische Konfigurationen und Anordnungen ausführlich abgebildet sind und erörtert werden, versteht es sich, dass dies lediglich veranschaulichenden Zwecken dient. Fachleute auf dem Gebiet werden erkennen, dass andere Konfigurationen und Anordnungen möglich sind, ohne vom Wesen und Schutzumfang der Beschreibung abzuweichen. Es wird Fachleuten auf dem Gebiet ersichtlich werden, dass vorliegend beschriebene Techniken und/oder Anordnungen in einer Bandbreite anderer als der vorliegend ausführlich beschriebenen Systeme und Anwendungen eingesetzt werden können.
  • In der folgenden ausführlichen Beschreibung wird Bezug auf die begleitenden Zeichnungen genommen, die Teil davon bilden und Ausführungsbeispiele veranschaulichen. Ferner versteht es sich, dass andere Ausführungsformen genutzt werden können und strukturelle und/oder logische Änderungen vorgenommen werden können, ohne vom Schutzumfang des beanspruchten Gegenstands abzuweichen. Demzufolge ist die folgende ausführliche Beschreibung nicht in einem beschränkenden Sinne aufzufassen und der Schutzumfang des beanspruchten Gegenstands ist nur durch die angehängten Ansprüche und deren Äquivalente definiert.
  • In der folgenden Beschreibung sind zahlreiche Einzelheiten dargelegt, einem Fachmann auf dem Gebiet wird jedoch ersichtlich werden, dass Ausführungsformen ohne diese spezifischen Einzelheiten umgesetzt werden können. Wohlbekannte Verfahren und Einrichtungen sind in Blockdiagrammform dargestellt, anstatt in allen Einzelheiten, um zu vermeiden, dass wesentlichere Aspekte unklar gemacht werden. Durchweg bedeuten in dieser Spezifikation Bezugnahmen auf „eine Ausführungsform“, dass ein bestimmtes Merkmal, eine bestimmte Struktur, eine bestimmte Funktion oder eine bestimmte Charakteristik, das bzw. die in Verbindung mit der Ausführungsform beschrieben wird, in mindestens einer Ausführungsform enthalten ist. Somit beziehen sich die Erscheinungen der Phrase „bei einer Ausführungsform“ an verschiedenen Stellen über die gesamte Spezifikation hinweg nicht notwendigerweise auf dieselbe Ausführungsform. Darüber hinaus können die bestimmten Merkmale, Strukturen, Funktionen oder Charakteristiken, die im Zusammenhang einer Ausführungsform beschrieben sind, in einer oder mehreren Ausführungsformen auf eine beliebige geeignete Art und Weise kombiniert werden. Eine erste Ausführungsform kann zum Beispiel mit einer zweiten Ausführungsform irgendwo kombiniert werden, an denen sich die mit den beiden Ausführungsformen assoziierten bestimmten Merkmale, Strukturen, Funktionen oder Charakteristiken nicht gegenseitig ausschließen.
  • So, wie sie in der Beschreibung der Ausführungsbeispiele und in den angehängten Ansprüchen verwendet werden, sollen die Singularformen „ein“, „eine“ und „der/die/das“ auch die Pluralformen umfassen, es sei denn, dass der Zusammenhang eindeutig etwas anderes angibt. Es versteht sich auch, dass sich der wie vorliegend verwendete Ausdruck „und/oder“ beliebige und alle möglichen Kombinationen von einem oder mehreren der assoziierten aufgelisteten Elemente bezieht und diese einschließt.
  • Wie durchweg durch die Beschreibung und in den Ansprüchen verwendet, kann eine Auflistung von Elementen, die durch den Ausdruck „mindestens eine/einer/eines von“ oder „ein/einer/eines oder mehrere von“ verbunden sind, eine beliebige Kombination der aufgelisteten Elemente bedeuten. Beispielsweise kann die Phrase „mindestens eines von A, B oder C“ A; B; C; A und B; A und C; B und C oder A, B und C bedeuten.
  • Die Ausdrücke „gekoppelt“ und „verbunden“, zusammen mit deren Ableitungen, können vorliegend zum Beschreiben funktioneller oder struktureller Beziehungen zwischen Komponenten verwendet werden. Es versteht sich, dass diese Ausdrücke nicht als Synonyme füreinander beabsichtigt sind. Stattdessen kann bei bestimmten Ausführungsformen „verbunden“ verwendet werden, um anzugeben, dass sich zwei oder mehr Elemente in direktem physischen, optischen oder elektrischen Kontakt miteinander befinden. „Gekoppelt“ kann verwendet werden, um anzugeben, dass sich zwei oder mehr Elemente in entweder direktem oder indirektem (mit anderen dazwischenliegenden Elementen) physischen, optischen oder elektrischen Kontakt miteinander befinden, und/oder, dass die zwei oder mehr Elemente miteinander arbeiten oder interagieren (z. B. wie in einem Fall einer Wirkungsbeziehung).
  • Manche Teile der vorliegend bereitgestellten ausführlichen Beschreibungen sind hinsichtlich Algorithmen und symbolischen Repräsentation von Operationen an Datenbits innerhalb eines Computerspeichers dargelegt. Sofern es nicht spezifisch anders erwähnt wird, wie aus der folgenden Besprechung ersichtlich wird, wird gewürdigt werden, dass sich, durchweg durch die Beschreibung, Besprechungen, die Ausdrücke wie etwa „Berechnen“, „Datenverarbeiten“, „Bestimmen“, „Schätzen“, „Speichern“, „Sammeln“, „Anzeigen“, „Empfangen“, „Zusammenfassen“, „Erzeugen“, „Aktualisieren“ oder dergleichen benutzen, auf die Handlung und die Prozesse eines Computersystems oder einer ähnlichen elektronischen Datenverarbeitungseinrichtung beziehen, das bzw. die Daten, die als physikalische (elektronische) Größen innerhalb der Schaltkreise des Computersystems, einschließlich Register und Speicher, repräsentiert werden, in andere Daten, die gleichermaßen als physikalische Größen innerhalb der Computersystemspeicher oder -register oder anderen derartigen Informationsspeicherungs-, Übertragungs- oder Anzeigeeinrichtungen repräsentiert werden, manipuliert und/oder transformiert.
  • Obgleich die folgende Beschreibung Ausführungsformen darlegt, die in Architekturen manifestiert sein können, wie beispielsweise etwa System-auf-einem Chip-Architekturen bzw. SoC-Architekturen, sind Implementationen der vorliegend beschriebenen Techniken und/oder Anordnungen nicht auf bestimmte Architekturen und/oder Datenverarbeitungssysteme beschränkt und können durch eine beliebige Architektur und/oder beliebiges Datenverarbeitungssystem für ähnliche Zwecke implementiert werden. Beispielsweise können verschiedene Architekturen, die beispielsweise mehrere Integrierte-Schaltung(IC)-Chips und/oder -Gehäuse einsetzen, und/oder verschiedene Datenverarbeitungseinrichtungen und/oder Unterhaltungselektronik(CE)-Einrichtungen einsetzen, wie etwa Set-Top-Boxes, Smartphones usw., die vorliegend beschriebenen Techniken und/oder Anordnungen implementieren. Obgleich die folgende Beschreibung möglicherweise zahlreiche spezifische Details, wie etwa Logikimplementierungen, Arten und Zusammenhänge von Systemkomponenten, Logikpartitionierung/Integrationsauswahlen usw. darlegt, kann der beanspruchte Gegenstand ferner ohne derartige spezifische Details ausgeübt werden. Des Weiteren ist manches Material, wie etwa beispielsweise Steuerungsstrukturen und vollständige Softwareanweisungsabfolgen, möglicherweise nicht ausführlich dargestellt, um das vorliegend offenbarte Material nicht unklar zu machen.
  • Bestimmte Teile des vorliegend offenbarten Materials können in Hardware, zum Beispiel als Logikschaltkreise in einem Bildprozessor, implementiert werden. Bestimmte andere Teile können in Hardware, Firmware, Software oder einer beliebigen Kombination davon implementiert werden. Zumindest manches des vorliegend offenbarten Materials kann auch als auf einem maschinenlesbaren Medium gespeicherte Anweisungen implementiert sein, die durch einen oder mehrere Prozessoren (Graphikprozessoren und/oder Zentralprozessoren) gelesen und ausgeführt werden können. Ein maschinenlesbares Medium kann ein beliebiges Medium und/oder einen beliebigen Mechanismus zum Speichern oder Übermitteln von Informationen in einer durch eine Maschine (z. B. eine Datenverarbeitungseinrichtung) lesbaren Form beinhalten. Beispielsweise kann ein maschinenlesbares Medium Nurlesespeicher (ROM); Direktzugriffsspeicher (RAM); Magnetplattenspeichermedien; optische Speichermedien; Flash-Speicher-Einrichtungen; elektrische, optische, akustische oder andere ähnliche nicht flüchtige greifbare Medien beinhalten.
  • Im Folgenden wird bzw. werden ein oder mehrere Systeme, eine oder mehrere Vorrichtungen, ein oder mehrere Verfahren und ein oder mehrere computerlesbare Medien beschrieben, um Punkt-zu-Punkt-Abstände aus 3D-Bilddaten zu bestimmen. Bei manchen Ausführungsformen repräsentieren zwei Messpunkte, die zum Beispiel durch einen Benutzer spezifiziert werden, Endpunkte auf einem Objekt von Interesse innerhalb des Einzelbildes. Unter der Annahme, dass alle Punkte, die zwischen diesen Endpunkten liegen, auch zum Objekt von Interesse gehören, können zusätzliche 3D-Daten, die mit Punkten assoziiert sind, die entlang einer Messlinie liegen, die durch die Messpunkte definiert wird, gemäß vorliegend beschriebener Ausführungsformen wirksam eingesetzt werden, um eine robuste Abstandsmessung bereitzustellen.
  • 1 ist eine schematische Darstellung von Punkt-zu-Punkt-Abstandsmessungen in 3D-Kamerabildern gemäß manchen Ausführungsformen. In der veranschaulichten Ausführungsform beinhaltet eine Kameraplattform eine Array-Kamera 115. Bei manchen Ausführungsformen ist die Array-Kamera 115 eine Komponente einer mobilen Datenverarbeitungseinrichtung, die mehrere Kamerahardwaremodule (CM) 110, 111 und 112 mit einer vorbestimmten Basislinienbeziehung aufweist, obwohl in den Ausführungsbeispielen drei Kamerahardwaremodule veranschaulicht sind, kann eine beliebige Anzahl von Kamerahardwaremodulen und/oder Bildsensoren in einer Array-Kamera enthalten sein.
  • Jedes der mehreren Kameramodule 110, 111, 112 kann ein Eingangsbild erfassen, das von einem unterschiedlichen Kamerasichtpunkt aus aufgenommen wird. Bei Ausführungsbeispielen werden die Bilder, die von der Weltszene 101 von unterschiedlichen Sichtpunkten aus aufgenommen werden, zum im Wesentlichen gleichen Augenblick aufgenommen, so dass sie Bilddaten für eine gegebene Szene enthalten. Eines der drei Einzelbilder kann als eine Referenz designiert werden und mit Informationen von den anderen Frames in ein Einzelbild 120 kombiniert werden, das Tiefen- oder Entfernungs(z)-Informationen oder Disparitätsinformationen, die die Tiefe angeben, für jede räumliche 2D(x, y)-Position im Einzelbild aufweist. Beispielsweise kann das CM 110 dort, wo das CM 110 eine höhere Auflösung (z. B. 8 Megapixel oder mehr) als die Kameramodule 111, 112 (z. B. 720p, HD usw.) aufweist, ein standardmäßiges Referenz-RGB-Bild bereitstellen. Das CM 111 und das CM 112 können als Ergänzung zum Referenzmodul angesehen werden und sind jeweils mit einem vorbestimmten Basislinienvektor (Länge und Richtung) vom Kameramodul 110 assoziiert, um Tiefendaten (D) zu erzeugen. Das Eingangsbild kann dann mit RGB-D-Daten für jede räumliche 2D-Position mit dem Eingangseinzelbild assoziiert werden. Bei einem Ausführungsbeispiel, bei dem sich die Kameramodule 110, 111 und 112 auf einer mobilen Plattform befinden, kann der Basislinienvektor zwischen dem Referenzkameramodul und jedem ergänzenden Kameramodul eine Länge von Dutzenden von Millimetern bis zu Dutzenden von Zentimetern, in Abhängigkeit vom Formfaktor, aufweisen. Bei anderen Ausführungsformen, bei denen die Kameramodule 110, 111, 112 separate Infrastrukturvorrichtungen sind, können Basislinienlängen in der Größenordnung von Metern liegen. Bei einem Ausführungsbeispiel einer mobilen Einrichtung sind die Kameramodule 111, 112 mit einem bekannten Abstand an gegenüberliegenden Seiten des Referenzkameramoduls 110 beanstandet.
  • Wie ferner in 1 veranschaulicht, beinhaltet das Eingangseinzelbild 120 Objekte 140 und 150. Messpunkte 130A und 130B werden zum Beispiel über eine Benutzereingabe empfangen. Das Ziel des Benutzers in einer derartigen Situation kann darin bestehen, die physische Breite in der realen Welt des Objekts 140 aus dem Eingangseinzelbild 120 zu bestimmen. Von daher werden die Messpunkteingaben 130A und 130B als Endpunkte einer Messlinie 130 eingesetzt, die sich über das Objekt 140 hinweg erstreckt. Als eine weitere Veranschaulichung werden auch Messpunkte 135A und 135B zum Beispiel über eine zweite Benutzereingabe empfangen. Das Ziel des Benutzers in dieser zweiten Situation kann darin bestehen, die physische Breite in der realen Welt eines Zwischenraums oder einer Lücke zwischen den Messpunkten 135A und 135B zu bestimmen. Von daher werden die zweiten Messpunkteingaben 135A und 135B wiederum als Endpunkte einer Messlinie 135 eingesetzt, die sich zwischen dem Objekt 140 und dem Objekt 150 erstreckt. Im ersten Beispiel ist es hilfreich, Eingangsbilddaten entlang der gesamten Länge der Messlinie 130 unter der Annahme einzusetzen, dass die Messpunkte 130A, 130B entlang Kanten eines Objekts liegen, so dass die gesamte Messlinie 130 das zu messende Objekt 140 umspannt. Eine derartige Annahme basiert auf der Logik, dass ein Benutzer häufig Messdaten für ein einziges Objekt zu einer jeweiligen Zeit wünscht. Bei manchen vorliegend beschriebenen Ausführungsformen wird eine Verfeinerung der räumlichen 3D-Koordinaten, die den Messpunkten 130A und 130B entsprechen, basierend auf zusätzlichen Informationen durchgeführt, die durch ein Analysieren der 3D-Struktur mehrerer Punkte entlang der Messlinie erhalten werden.
  • Im zweiten Beispiel ist es jedoch möglicherweise nicht hilfreich, Eingangsbilddaten von der gesamten Länge der Messlinie 135 einzusetzen, da sie eine Zwischenraummessung ist und viele unterschiedliche Hintergrundobjekte innerhalb des Zwischenraums vorhanden sein können, die jeweils mit einem unterschiedlichen Tiefenwert assoziiert sind. Daher werden die Messpunkte 135A, 135B bei manchen weiteren vorliegenden Ausführungsformen nicht basierend auf zusätzlichen Informationen verfeinert, die durch ein Analysieren der 3D-Struktur mehrerer Punkte entlang der Messlinie erhalten werden.
  • 2A ist ein Flussdiagramm eines Verfahrens 201 zum Bestimmen von Punkt-zu-Punkt-Abständen aus 3D-Bilddaten. Bei Ausführungsbeispielen wird das Verfahren 201 durch einen oder mehrere Computerprozessoren implementiert, die zum Beispiel in eine 3D-Kameraplattform integriert sind, wie im Folgenden ferner beschrieben. Das Verfahren 201 beginnt beim Arbeitsvorgang 205 mit einem Empfangen von Eingangsbilddaten, die mit einem Einzelbild assoziiert sind. Die Eingangsbilddaten sind 3D-Bilddaten, die Tiefeninformationen zusätzlich zu Farbinformationen (z. B. Intensität für jeden von mehreren Farbkanälen in einem beliebigen Farbraum, wie etwa RGB, YPBPR, YCBCR, oder dergleichen) beinhalten. Es kann einen Tiefen- oder Disparitätswert geben, der mit jedem Pixel eines Einzelbildes assoziiert ist, oder manche Tiefen-/Disparitätswerte können im Fall einer Kameraverdeckung und/oder einer texturlosen Oberfläche usw. fehlen. Selbst dort, wo ein Tiefenwert mit jedem Pixel eines Eingangseinzelbildes assoziiert ist, wird erwartet, dass die Tiefendaten infolge einer Upstream-Bildverarbeitung, die zum Bestimmen der Tiefenwerte eingesetzt wird, rauschbehaftet sind.
  • Bei manchen Ausführungsformen sind die beim Arbeitsvorgang 205 empfangenen Tiefeninformationen in der Form einer Tiefenkarte, die mit mehreren Pixeln pi, die jeweils eine mit dem Eingangseinzelbild assoziierte Bildkoordinate xi, yi aufweisen, korreliert ist. Bei manchen Ausführungsformen sind die beim Arbeitsvorgang 205 empfangenen Tiefeninformationen in der Form einer Disparitätskarte, die mit mehreren Pixeln, die jeweils eine mit dem Eingangsbild assoziierte Bildkoordinate xi, yi aufweisen, korreliert ist. Ein mit einem Pixel assoziierter Disparitätswert gibt die Korrespondenz des Pixels in einem Bild (das z. B. durch das Kameramodul 110 in 1 erfasst wird) zu einem Pixel in einem anderen Bild (das z. B. durch das Kameramodul 111 erfasst wird) an. Die Disparitätsschätzung kann durch eine beliebige Technik stattfinden, da vorliegende Ausführungsformen in dieser Hinsicht nicht eingeschränkt sind.
  • Für manche Ausführungsformen, bei denen eine räumliche 3D-(X, Y, Z)-Koordinatenkarte beim Arbeitsvorgang 205 nicht als eine Eingabe empfangen wird, wird eine „Welt-3D-Koordinaten“-Karte der Bilddaten beim Arbeitsvorgang 205 erzeugt. Es können beliebige Abbildungsfunktionen zum Bestimmen von räumlichen 3D-Koordinaten aus einem Disparitätswert an der entsprechenden Pixelposition genutzt werden, zum Beispiel basierend auf vorbestimmten Kameraparametern, die beim Arbeitsvorgang 205 empfangen werden. Für jeden Bildpunkt p = (x, y) gibt es assoziierte Entfernungsinformationen Z = R(x, y), die eine Projektion des 3D-Punktes P sind, die durch Folgendes gegeben ist:
    Figure DE112016003118T5_0002
    wobei die Projektionsmatrix K mit intrinsischen Kamerakalibrationsinformationen assoziiert ist. Für viele Verbraucherdigitalkameras mit sphärischem Linseneffekt ist fx = fy und die Schrägstellung ist s = 0 und die Projektionsmatrix vereinfacht sich zu Folgendem:
    Figure DE112016003118T5_0003
    wobei cx, cy den Hauptpunkt bezeichnet.
  • Beim Arbeitsvorgang 210 werden Messpunkte empfangen, die mit dem Eingangseinzelbild assoziiert sind. Bei Ausführungsbeispielen werden Messpunkte als Paare empfangen: p1 und p2. Als ein Beispiel kann eine Benutzerauswahl von zwei Messpunkten p1, p2 von einer Berührungseingabe empfangen werden, die durch eine Berührungsanzeige, die das Eingangseinzelbild an den Benutzer darstellt, abgetastet wird. Mit p1 = (x1, y1) und p2 = (x2, y2), wird jeder Messpunkt p1 und p2 mit einer räumlichen 3D-Koordinate P1 bzw. P2 assoziiert, wie aus Gleichung (1) und Gleichung (2) bestimmt wird.
  • Beim Arbeitsvorgang 230 wird ein Satz von räumlichen 3D-Koordinaten gleichermaßen für Pixelpositionen entlang einer Messlinie bestimmt, die durch die Messpunkte p1, p2 definiert wird. Bildpixelpositionen entlang der Messlinie können an den nächsten ganzzahligen Koordinaten im Einzelbild abgetastet werden. Bei manchen Ausführungsformen werden die 3D-Bilddaten entlang der x-Abmessung, falls |p1(x) – p2(x)| > |p1(y) – p2(y)|, um die Anzahl von Abtastpunkten zu maximieren, und ansonsten entlang der y-Abmessung abgetastet. Abhängig vom Verfahren, das zum Berechnen der Tiefe eingesetzt wird, können 3D-Koordinaten für alle oder eine Teilmenge von Punkten entlang der Messlinie erhalten werden. Bei manchen Ausführungsformen werden die Punkte {Li} des Satzes auf der Messlinie in einem elektronischen Speicher gespeichert, wobei Li = Xi, Yi, Zi, und i = 1, 2, ...N. Jegliche fehlenden Tiefenwerte sind nicht im Satz von Messlinienpunkten {Li} enthalten.
  • Beim Arbeitsvorgang 240 wird der Satz von Messlinienpunkten {Li} gefiltert, um Ausreißer zu berücksichtigen. Bei Ausführungsbeispielen basiert die Filteroperation 240 auf der Logik, dass viele Objekte der realen Welt, die ein Benutzer messen könnte, ein Profil aufweisen, das entlang der Messachse linear ist. Somit werden viele Objekte, falls sie sich nicht zu nahe an der Kamera befinden, einen planaren Charakter aufweisen. Beispielsweise erscheinen 3D-Punkte an einem Menschen in vielen Tiefenmessungen häufig planar. Dies trifft auch bei vielen allgemein auftretenden polygonalen Objekten in der Welt zu, wie etwa Gebäuden, Möbeln, Autos, Fotos usw. Bei manchen Ausführungsformen setzt die Filterungsoperation 240 diese Annahme ein, um die Genauigkeit der Messung zwischen den Messpunkten p1, p2 zu verbessern, indem eine oder mehrere lineare Strukturen im Satz von Messlinienpunkten {Li} gefunden werden. Eine Teilmenge des Satzes von Messlinienpunkten {Li}, die eine unzureichende lineare Struktur aufweisen, wird entfernt, ignoriert oder anderweitig als Ausreißer enthaltend außer Acht gelassen.
  • Beim Arbeitsvorgang 250 werden dann die 3D-Koordinaten für die Messpunkte (P1, P2) zu 3D-Koordinaten, die mit vorausbestimmten bzw. „verfeinerten“ Messpunkten (P1’, P2’) assoziiert sind, abgebildet. Die Verfeinerung basiert auf einer Funktion, die aus den Messlinienpunkten, die eine ausreichende lineare Struktur aufweisen, hergeleitet wird. Diese Messlinienfunktion kann zum Bestimmen der vorausbestimmten Messpunktkoordinaten P1’, P2’ eingesetzt werden. Bei manchen Ausführungsformen werden die vorausbestimmten Messpunktkoordinaten P1’, P2’ eingesetzt, um zu bestimmen, ob die Messlinie mit einer Punkt-zu-Punkt-Zwischenraummessung anstatt einer Punkt-zu-Punkt-Objektmessung assoziiert ist. Dort, wo die Eingangsmesspunkte p1, p2 einen Zwischenraum zwischen unterschiedlichen Objekten umspannen, wie etwa den Abstand zwischen einer Türöffnung, wie in 1 veranschaulicht, wird die Verfeinerung durch Filtern auf Basis einer Linearität über die Messlinie möglicherweise keine erheblichen Vorteile besitzen. Das Verfahren 201 veranschaulicht daher ferner manche Ausführungsformen, die eine Zwischenraummessungsdetektion einsetzen. Die Verwendung der vorausbestimmten Messpunktkoordinaten P1’, P2’ kann dann auf ein Ergebnis des Zwischenraumdetektionsalgorithmus bedingt werden. Als Reaktion auf das Detektieren eines Zwischenraums kann die Punkt-zu-Punkt-Abstandsmessung unabhängig von den vorausbestimmten Messpunktkoordinaten P1’, P2’ bestimmt werden. Beim Fehlen des Detektierens eines Zwischenraums kann die Punkt-zu-Punkt-Abstandsmessung basierend auf den vorausbestimmten Messpunktkoordinaten P1’, P2’ bestimmt werden.
  • Bei dem Ausführungsbeispiel wird die Messlinie P1P2 beim Arbeitsvorgang 260 durch Endsegmente mit einer vorbestimmten festen Länge verlängert. 2B ist eine schematische Darstellung einer Punkt-zu-Punkt-Zwischenraumabstandsmessung, die ein erstes Endsegment 235A, das sich von P1 (135A) weg entlang der Messlinie P1P2 (135) erstreckt, und ein zweites Endsegment 235B, das sich von P2 (135B) weg entlang der Messlinie P1P2 (135) erstreckt, veranschaulicht. Beim Arbeitsvorgang 270 wird eine Tiefe, die mit jedem der Endsegmente assoziiert ist, mit der nächsten vorausbestimmten Messpunkttiefe Z’ verglichen. Bei vorteilhaften Ausführungsformen wird eine robuste Schätzung einer ersten Endsegmenttiefe Z1 ext aus den Tiefenwerten im ersten Endsegment bestimmt. Als ein Beispiel kann eine Biweight- oder Bisquare-Funktion eingesetzt werden, um die Tiefe Z1 ext zu schätzen. Die gleiche Technik kann angewendet werden, um zu einer Schätzung der zweiten Endsegmenttiefe Z2 ext zu gelangen.
  • Das Verfahren 201 geht dann entweder zum Arbeitsvorgang 280 oder 290 als Reaktion auf das Ergebnis des Vergleichs zwischen Z1’ und Z1 ext und des Vergleichs zwischen Z2’ und Z2 ext über. Als Reaktion darauf, dass mindestens eines der Endsegmente eine Tiefe aufweist, die gleich oder größer als die der nächsten vorausbestimmten Messpunkttiefe Z’ ist, geht das Verfahren 201 zum Arbeitsvorgang 280 über, bei dem eine Punkt-zu-Punkt-Objektabstandsmessung basierend auf den vorausbestimmten Messpunktkoordinaten P1’, P2’ bestimmt wird. Obwohl eine beliebige bekannte Technik beim Arbeitsvorgang 280 eingesetzt werden kann, wird bei manchen Ausführungsbeispielen der euklidische Abstand zwischen den vorausbestimmten Messpunktkoordinaten P1’, P2’ wie folgt berechnet:
    Figure DE112016003118T5_0004
  • Der gemessene Abstand d, der basierend auf den vorausbestimmten Messpunkten berechnet wird, besitzt eine verbesserte Genauigkeit, was einen Fehler von der Benutzereingabe der Messpunkte p1, p2 entfernt, die durch einen Zeiger oder eine Berührungsschnittstelle erhalten werden könnten. Im Fall, dass die Messpunkte p1, p2 für eine Messung eines Objekts von Interesse spezifiziert sind, können Punkte auf Vordergrund- oder Hintergrundgebieten, die an das Objekt angrenzen, häufig unbeabsichtigt eingeschlossen werden. 3D-Koordinatendaten, die für Linearität gefiltert sind, werden derartige Fehler entfernen.
  • Als Reaktion darauf, dass beide Endsegmente eine Tiefe aufweisen, die geringer als die der nächsten vorausbestimmten Messpunkttiefe Z’ ist (d. h. Z1 ext < Z1’ UND Z2 ext < Z2’), wird eine Zwischenraummessung detektiert. Das Verfahren 201 geht dann zum Arbeitsvorgang 290 über, bei dem eine Punkt-zu-Punkt-Zwischenraumabstandsmessung basierend auf den Messpunktkoordinaten P1, P2 bestimmt wird. Obwohl eine beliebige bekannte Technik beim Arbeitsvorgang 290 eingesetzt werden kann, wird bei manchen Ausführungsbeispielen der euklidische Abstand zwischen den Messpunktkoordinaten P1, P2 wie oben für die vorausbestimmten Messpunktkoordinaten P1’, P2’ beschrieben berechnet.
  • Das Verfahren 201 ist dann beim Speichern und/oder Ausgeben des Abstands d als eine Punkt-zu-Punkt-Messung beim Arbeitsvorgang 299 abgeschlossen. Der Abstand d kann als Metadaten, die mit den Eingangsmesspunkten p1, p2 assoziiert sind, und/oder als Metadaten, die mit dem Eingangsbild assoziiert sind, gespeichert werden. Bei manchen Ausführungsformen wird der Abstand d in einem elektronischen Speicher in Verbindung mit den Messpunkten p1, p2, die beim Arbeitsvorgang 210 empfangen werden, gespeichert. Bei manchen anderen Ausführungsformen wird der Abstand d in einem elektronischen Speicher in Verbindung mit dem Eingangsbild, das beim Arbeitsvorgang 205 empfangen wird, gespeichert. Bei noch anderen Ausführungsformen wird der Abstand d in einem elektronischen Speicher in Verbindung mit den Messpunkten p1, p2 und in einer Verbindung mit dem Eingangsbild, das beim Arbeitsvorgang 205 empfangen wird, gespeichert.
  • Bei manchen Ausführungsformen wird eine robuste Total-Least-Square(TLS)-Anpassung der 3D-Koordinaten im Messliniensatz {Li} durchgeführt, um Ausreißer zu berücksichtigen, zum Beispiel beim obigen Arbeitsvorgang 240, und um zu den vorausbestimmten Messpunktkoordinaten P1’, P2’ zu gelangen. Eine derartige Technik oder das Äquivalent ist angemessen, da die Variablen entlang aller 3 Richtungen (X, Y, Z) möglicherweise unter einem wesentlichen Fehler leiden. 3 ist ein Flussdiagramm eines Verfahrens 301 für eine Punkt-zu-Punkt-Abstandsmessung gemäß manchen Ausführungsbeispielen. Das Verfahren 301 veranschaulicht ferner ein Ausführungsbeispiel des Verfahrens 201.
  • Das Verfahren 301 beginnt beim Arbeitsvorgang 305 mit dem Erfassen von Eingangsbilddaten mit einem 3D-Kameramodul. Bei manchen Ausführungsformen ist das 3D-Kameramodul die oben eingeführte Array-Kamera 115 (1). Bei anderen Ausführungsformen werden die Eingangsbilddaten mit einer Laufzeit(TOF)-Kamera erfasst. Bei noch anderen Ausführungsformen wird eine strukturierte Lichtquelle (Illuminator) beim Arbeitsvorgang 305 eingesetzt, um eine Tiefendatenkarte über das Eingangseinzelbild zu bestimmen. Andere bekannte 3D-Kameras und Tiefenkartentechniken können auch beim Arbeitsvorgang 305 zum Erfassen von 3D-Daten für ein Eingangseinzelbild eingesetzt werden.
  • Beim Arbeitsvorgang 310 wird das beim Arbeitsvorgang 305 erfasste Eingangseinzelbild auf einem Anzeigebildschirm dargestellt. Bei manchen Ausführungsbeispielen wird das Eingangseinzelbild auf einem Anzeigebildschirm dargestellt, der in die gleiche Plattform wie die 3D-Kamera integriert ist, wie etwa unter anderem eine mobile Einrichtungsplattform. Beim Arbeitsvorgang 315 werden die Messpunkte p1, p2 über eine grafische Benutzeroberfläche (GUI) empfangen, die durch die 3D-Kameraplattform implementiert wird. Bei manchen Ausführungsformen werden zum Beispiel Benutzerberührungen beim Arbeitsvorgang 315 empfangen, während der Anzeigebildschirm das Eingangsbild beim Arbeitsvorgang 310 darstellt.
  • Beim Arbeitsvorgang 320 werden räumliche 3D-Koordinatendaten entlang einer Messlinie, die sich zwischen den beiden Messpunkten erstreckt, abgetastet. Aus dieser Abtastung wird der Satz von Messlinienpunkten {Li} wie oben beschrieben erzeugt.
  • Bei manchen Ausführungsformen wird eine TLS-Anpassung durch eine PCA (Principal Component Analysis) durchgeführt, um lineare Strukturen innerhalb von {Li} zu identifizieren. Eine traditionelle PCA ist jedoch gegenüber Ausreißern in den Daten empfindlich und daher nicht gut für ein Messproblem geeignet, bei dem Ausreißer in den Tiefendaten allgemein festgestellt werden. Eine robuste PCA (RPCA) ist daher von Vorteil. Beim Arbeitsvorgang 325 wird daher eine robuste Schätzung der Kovarianzmatrix berechnet, um die durch die Ausreißer aufgeworfene Schwierigkeit zu adressieren. Bei manchen Ausführungsbeispielen wird die MCD(Minimum Covariance Determinant)-Schätzfunktion der Kovarianzmatrix der Daten berechnet. MCD liefert eine hochrobuste Schätzung des Mehrvariablenorts T und der Mehrvariablenstreuung S. Die Aufgabe des MCD-Algorithmus besteht darin, h Beobachtungen aus N, die in dem Messliniensatz {Li} enthalten sind, dessen Kovarianzmatrix die niedrigste Determinante aufweist, zu finden. Obwohl ein beliebiger bekannter MCD-Algorithmus beim Arbeitsvorgang 325 eingesetzt werden kann, wird bei manchen Ausführungsformen der schnelle MCD-Algorithmus eingesetzt, um die MCD-Lösung zu erzeugen.
  • Der Parameter h, der den Zusammenbruchspunkt der schnellen MCD-Schätzfunktion bestimmt, kann für eine gegebene Kameraplattform vorbestimmt werden. Unterschiedliche Tiefenmesssysteme weisen unterschiedliche Genauigkeiten auf und diese können beim Auswählen von h in Betracht gezogen werden, was direkt der erwarteten Anzahl von Ausreißern für das System entspricht. Bei manchen Ausführungsbeispielen, bei denen eine Disparitätsschätzung mit einem Drei-Kamera-System bestimmt wird, könnte h 0,5 N oder weniger betragen. Für größere Array-Kamerasysteme kann h mit erwarteten Verbesserungen in der Disparitätsgenauigkeit erhöht werden. Dies trifft auch für strukturierte Lichtsysteme oder Laufzeitsysteme zu, die eine aktive Illumination verwenden, um die Tiefe genauer zu messen.
  • Der schnelle MCD-Algorithmus ermöglicht vorteilhafterweise Situationen mit genauer Anpassung, bei denen h oder mehr Beobachtungen auf einer Hyperebene liegen, während auch robuste Schätzungen des Orts und der Streuung (die singulär ist, wenn h oder mehr Beobachtungen auf einer Hyperebene liegen) erzielt werden. Als Reaktion auf eine nicht singuläre Streuung geht das Verfahren 301 zum Arbeitsvorgang 303 über, bei dem eine Eigen-Zerlegung der Mehrvariablenstreuung S als S = VΛVT durchgeführt wird, um die Hauptkomponenten der Daten zu berechnen. Die erste Hauptkomponente, die der Eigenvektor ist, der dem größten Eigenwert entspricht, kann als v0 bezeichnet werden. Beim Arbeitsvorgang 345 werden P1 und P2 auf die Hauptkomponente v0 projiziert, um die projizierten Koordinaten P1’ und P2’ als Folgendes zu erhalten: P1’ = T + [(P1 – T)·v0]v0, (4) P2’ = T + [(P2 – T)·v0]v0. (5)
  • Falls stattdessen alle Punkte auf die Hyperebene fallen, geht das Verfahren 301 zum Arbeitsvorgang 335 über, bei dem eine Gleichung der Hyperebene berechnet wird. Bei Ausführungsbeispielen wird der schnelle MCD-Algorithmus ferner beim Arbeitsvorgang 335 eingesetzt, um die Hyperebenengleichung aX + bY + cZ + d = 0 zu berechnen. Beim Arbeitsvorgang 340 wird die Hyperebenengleichung an den Messpunktkoordinaten P1, P2 evaluiert. Falls a; b = 0, weist das gemessene Objekt eine einzige Tiefenmessung auf und die Hyperebene vereinfacht sich zu Z = – d / c. Die Z-Koordinate von P1 und P2 wird dann zu – d / c gesetzt und die verfeinerten Punkte P1’, P2’ werden unter Verwendung dieser vorausbestimmten Tiefenmessung in Gleichung (1) erneut berechnet. Als Reaktion darauf, dass entweder a oder b nicht gleich 0 ist, werden die Messpunktkoordinaten P1 und P2 auf eine Linie projiziert, um die vorausbestimmten Messpunktkoordinaten P1’ und P2’ zu berechnen, wie im Folgenden für P1’ gegeben:
    Figure DE112016003118T5_0005
  • Wenn die vorausbestimmten Messpunktkoordinaten P1’ und P2’ bestimmt sind, fährt das Verfahren 301 mit dem Arbeitsvorgang 365 fort, wobei der Abstand zwischen den vorausbestimmten Messpunkten bestimmt wird. Bei manchen Ausführungsformen zum Beispiel unter Anwendung der Gleichung (3). Das Verfahren 301 wird mit einem Speichern des Abstands d in einen elektronischen Speicher als der Punkt-zu-Punkt-Abstand für die Eingangsmesspunkte, die beim Arbeitsvorgang 315 empfangen werden, beendet. Der Abstand d kann in Verbindung mit entweder dem Eingangsbild oder den Eingangsmesspunkten oder beiden gespeichert werden. Der Abstand d kann ferner zu einem Anzeigebildschirm der Kameraeinrichtung ausgegeben oder anderweitig zu einem Benutzer dargestellt oder übertragen werden.
  • 4 veranschaulicht ferner, wie eine Punkt-zu-Punkt-Messeinrichtung mit verschiedenen anderen Komponenten einer Bild- und/oder Videoaufnahmeeinrichtung 400 integriert sein kann, um eine verbesserte Kameraausgabe bereitzustellen, die sich für Punkt-zu-Punkt-Messbestimmungen eignet. Die Bildaufnahmeeinrichtung 400 kann zum Beispiel ein Teil einer mobilen Datenverarbeitungseinrichtungsplattform sein. Eine mobile Datenverarbeitungseinrichtung kann sich auf eine jegliche Einrichtung beziehen, die ein Verarbeitungssystem und eine mobile Leistungsquelle oder -versorgung aufweist, wie etwa beispielsweise eine oder mehrere Batterien. Beispiele für eine mobile Datenverarbeitungseinrichtung können einen Laptop-Computer, ein Tablet, ein Touchpad, einen portablen Computer, einen Handcomputer, einen Palmtop-Computer, einen persönlichen digitalen Assistenten (PDA), ein Mobiltelefon, ein kombiniertes Mobiltelefon/PDA, einen Fernseher, eine Smart-Einrichtung (z. B. ein Smartphone, ein Tablet oder ein Smart-Fernseher), eine mobile Interneteinrichtung (MID), eine Nachrichteneinrichtung, eine Datenkommunikationseinrichtung und so weiter beinhalten. Beispiele für eine mobile Datenverarbeitungseinrichtung können auch Computer und/oder Medienaufnahme-/-übertragungseinrichtungen beinhalten, die dazu konfiguriert sind, von einer Person getragen zu werden, wie etwa einen Handgelenkscomputer, Fingercomputer, Ringcomputer, Brillencomputer, Gürtelschnallencomputer, Armbandcomputer, Schuhcomputer, Bekleidungscomputer und andere tragbare Computer. Bei verschiedenen Ausführungsformen kann eine mobile Datenverarbeitungseinrichtung beispielsweise als ein Smartphone implementiert sein, das in der Lage ist, Computeranwendungen sowie Sprachkommunikationen und/oder Datenkommunikationen auszuführen. Obgleich manche Ausführungsformen auf beispielhaftem Wege mit einer als ein Smartphone implementierten mobilen Datenverarbeitungseinrichtung beschrieben sein können, versteht sich, dass auch andere Ausführungsformen unter Verwendung anderer drahtloser mobiler Datenverarbeitungseinrichtungen implementiert sein können. Die Ausführungsformen sind in diesem Zusammenhang nicht beschränkt.
  • Die Bildaufnahmeeinrichtung 400 beinhaltet die Hardwarekameramodule 110, 111 und 112. Bei dem Ausführungsbeispiel beinhaltet das CM 110 ferner einen RGB(NIR)-Kamerasensor 458, während das CM 111 und 112 jeweils einen RGB(NIR)-Kamerasensor 459 beinhalten. Der Sensor 458 kann zum Beispiel eine digitale Bildeinrichtung mit HD-, FHD-, QXGA-, WQXGA-, QSXGA- oder UHD-Format sein. Bei manchen Ausführungsformen weist der Sensor 458 mindestens eine 8-Megapixel-Auflösung auf. Der Sensor 459 kann zum Beispiel eine digitale Bildeinrichtung mit HD-, FHD-, QXGA-, WQXGA-, QSXGA- oder UHD-Format sein. Bei manchen Ausführungsformen weisen die Sensoren 459 eine geringere Pixelauflösung als der Sensor 458 auf, zum Beispiel 1–5 Megapixel. Die Bild-/Videoaufnahmeeinrichtung 400 kann daher drei Einzelbilder gleichzeitig erzeugen, zum Beispiel um sowohl RGB-Bilddaten als auch Bildtiefendaten für ein Eingangsbild bereitzustellen.
  • Die Kamerasensoren 458, 459 können eine Farbauflösung von 8 Bit oder mehr pro Pixel bereitstellen und funktionsfähig sein, fortlaufend kontinuierliche Videoframes aufzunehmen. Der Sensor 458 kann eine Pixelfrequenz von 170 MHz oder mehr aufweisen. Die Sensoren 458, 459 können ein RGB-Bayer-Farbfilter, einen Analogverstärker, einen AD-Umsetzer und andere Komponenten zum Umwandeln von einfallendem Licht in ein Digitalsignal, das Rohbilddaten entspricht, beinhalten. Die Sensoren 458, 459 können gesteuert werden, einen Rollblenden- oder elektronischen Schlitzverschluss-Prozess, bei dem Pixel fortlaufend auf eine liniensequenzielle Art und Weise für ein Frame ausgelesen werden, zu betreiben. Die CM 110, 111 und 112 können jeweils Rohdaten, die mit aufeinanderfolgenden belichteten Frames assoziiert sind, in Übereinstimmung mit einem beliebigen bekannten Streaming-Protokoll, wie etwa einer MIPI, ausgeben.
  • Bei dem Ausführungsbeispiel werden Rohbild-/-videodaten, die durch das CM 111 und 112 ausgegeben werden, in den ISP 475 eingegeben. Der ISP 475 soll Frames von Rohvideodaten während der horizontalen und/oder vertikalen Austastperioden, die mit dem CM 111 und 112 assoziiert sind, empfangen und analysieren. Während der Rohbilddatenverarbeitung von RGB-Bilddaten kann der ISP 475 zum Beispiel eine Farbraumumwandlung und/oder eine Rauschreduzierung und/oder eine Pixellinearisierung und/oder eine Schattierungskompensation durchführen. Bei manchen Ausführungsformen werden die Rohbilddaten durch den ISP 475 gegeben, damit sie durch einen nachgeschalteten programmierbaren Mikroprozessor 450 verarbeitet werden.
  • Die Bilddaten, die durch den ISP 475 ausgegeben werden, können gepuffert sein und als Eingangsbilddaten, die für eine weitere Bildverarbeitung bereit sind, wie etwa eine Punkt-zu-Punkt-3D-Bildmessung, in einer Warteschlange aufgereiht sein, zum Beispiel gemäß einer oder mehrerer der anderweitig vorliegend beschriebenen Ausführungsformen. Bei Ausführungsformen beinhaltet bzw. beinhalten der eine oder die mehreren Prozessoren 450 Logik zum Durchführen von Punkt-zu-Punkt-Messoperationen und zum Ausführen von anderweitig vorliegend beschriebenen Algorithmen. Bei Ausführungsformen beinhaltet bzw. beinhalten der eine oder die mehreren Prozessoren 450 Logik zum Durchführen der Punkt-zu-Punkt-Messoperationen und zum Ausführen von anderweitig vorliegend beschriebenen Algorithmen. Bei manchen Ausführungsformen beinhaltet bzw. beinhalten der eine oder die mehreren Prozessoren 450 Logik zum Durchführen eines oder mehrerer der Arbeitsvorgänge des Verfahrens 201 (2) und/oder des Verfahrens 301 (3). Bei manchen Ausführungsformen beinhaltet bzw. beinhalten der eine bzw. die mehreren Prozessoren 450 eine Pixelabtastlogik 401 zum Bestimmen von räumlichen 3D-Koordinaten für Punkte entlang einer Messlinie, die durch zwei Endpunkteingaben definiert wird. Bei manchen Ausführungsformen wird die Pixelabtastlogik 401 mit programmierbaren Schaltkreisen implementiert, die Register beinhalten, die durch eine oder mehrere Softwareanweisungen konfiguriert worden sind. Bei manchen Ausführungsformen beinhaltet bzw. beinhalten der eine oder die mehreren Prozessoren 450 3D-Koordinaten-Linearanpassungslogik 402 zum Implementieren einer robusten Technik zum Identifizieren einer linearen Struktur innerhalb des abgetasteten Satzes von 3D-Koordinaten, zum Beispiel mit einem RPCA- und/oder MCD-Algorithmus, wie anderweitig vorliegend beschrieben. Bei manchen Ausführungsformen wird die 3D-Koordinaten-Linearanpassungslogik 402 mit programmierbaren Schaltkreisen implementiert, die Register beinhalten, die durch eine oder mehrere Softwareanweisungen konfiguriert worden sind. Bei manchen Ausführungsformen beinhaltet bzw. beinhalten der eine oder die mehreren Prozessoren 450 Messlogik 403 zum Bestimmen eines Punkt-zu-Punkt-Abstands zwischen vorausbestimmten Messpunktkoordinaten, zum Beispiel wie anderweitig vorliegend beschrieben. Bei manchen Ausführungsformen wird die Messlogik 403 mit programmierbaren Schaltkreisen implementiert, die Register beinhalten, die durch eine oder mehrere Softwareanweisungen konfiguriert worden sind.
  • Sowohl Software- als auch Hardwareimplementierungen können sich gut zum Implementieren von Punkt-zu-Punkt-Messungen gemäß vorliegend beschriebener Ausführungsformen eignen. Für Hardwareimplementierungen kann bzw. können die Pixelabtastlogik 401 und/oder die 3D-Koordinaten-Linearanpassungslogik 402 und/oder die Messlogik 403 durch eine Logik mit fester Funktion implementiert werden, die zum Beispiel durch den ISP 475 bereitgestellt wird. Für Softwareimplementierungen kann ein beliebiger bekannter programmierbarer Prozessor, einschließlich eines Kerns eines oder mehrerer Prozessoren 450, einer Ausführungseinheit eines Grafikprozessors oder eines Vektorprozessors, zum Implementieren der Pixelabtastlogik 401 und/oder der 3D-Koordinaten-Linearanpassungslogik 402 und/oder der Messlogik 403 genutzt werden. Der eine oder die mehreren Prozessoren 450 kann bzw. können alleinig zum Erzeugen von Punkt-zu-Punkt-Messdaten aus Eingangsbilddaten, die vom ISP 475 empfangen werden, verantwortlich sein. Bei einem Ausführungsbeispiel wird bzw. werden die Pixelabtastlogik 401 und/oder die 3D-Koordinaten-Linearanpassungslogik 402 und/oder die Messlogik 403 durch den Benutzerraum eines Softwarestapels, der durch den einen oder die mehreren Prozessoren 450 instanziiert wird, aufgerufen. Bei manchen Ausführungsformen führt bzw. führen der eine oder die mehreren Prozessoren 450 die Pixelabtastlogik 401 und/oder die 3D-Koordinaten-Linearanpassungslogik 402 und/oder die Messlogik 403 aus, die in einem Kernel-Raum des Softwarestapels instanziiert wird. Bei manchen Ausführungsformen ist der eine oder sind die mehreren Prozessoren 450 mit Anweisungen programmiert, die auf einem computerlesbaren Medium gespeichert sind, damit bewirkt wird, dass der Prozessor eine Pixelabtastung entlang einer Messlinie und/oder eine Pixelfilterung basierend auf einer linearen Struktur und/oder eine Abstandsbestimmung basierend auf vorausbestimmten Messpunktkoordinaten durchführt, zum Beispiel wie anderweitig vorliegend beschrieben.
  • Wie ferner in 4 veranschaulicht, können die Punkt-zu-Punkt-Messdaten zu einer Speicherungs-/Anzeige-/Übertragungsleitung 495 ausgegeben werden. Bei einem Ausführungsbeispiel der Speicherungsleitung werden die Punkt-zu-Punkt-Messdaten in den elektronischen Speicher 420 (z. B. DDR usw.) geschrieben, um gespeicherte Eingangsbilddaten zu ergänzen. Der Speicher 420 kann separat sein oder ein Teil eines Hauptspeichers 410 bilden, auf den der Prozessor 450 zugreifen kann. Alternativ oder zusätzlich dazu soll die Speicherungs-/Anzeige-/Übertragungsleitung 495 Punkt-zu-Punkt-Messdaten und/oder Eingangsbilddaten von der Video-/Bildaufnahmeeinrichtung 400 übertragen.
  • 5 ist ein Blockdiagramm eines Datenverarbeitungssystems 500, das zum Verarbeiten eines Eingangsbildes genutzt werden kann, um einen Punkt-zu-Punkt-Messabstand zu bestimmen. Das Datenverarbeitungssystem 500 beinhaltet einen oder mehrere Prozessoren 450 und einen oder mehrere Grafikprozessoren 501 und kann in einem Einzelprozessor-Desktopsystem, einem Mehrprozessor-Arbeitsstationssystem oder einem Serversystem, das eine große Anzahl von Prozessoren 450 oder Prozessorkernen 507 aufweist, implementiert werden. Bei einer anderen Ausführungsform ist das Datenverarbeitungssystem 500 eine integrierte System-auf-einem-Chip(SoC)-Schaltung zur Verwendung in mobilen, handgehaltenen oder eingebetteten Einrichtungen.
  • Eine Ausführungsform des Datenverarbeitungssystems 500 kann eine serverbasierte Gaming-Plattform, eine Spielekonsole, einschließlich einer Spiele- und Medienkonsole, eine mobile Gaming-Konsole, eine handgehaltene Spielekonsole oder eine Online-Spielekonsole beinhalten oder in dieser integriert sein. Bei manchen Ausführungsformen ist das Datenverarbeitungssystem 500 ein Mobiltelefon, ein Smartphone, eine Tablet-Datenverarbeitungseinrichtung oder eine mobile Interneteinrichtung. Das Datenverarbeitungssystem 500 kann auch eine tragbare Einrichtung, wie etwa eine tragbare Smart-Watch-Einrichtung, eine Smart-Brilleneinrichtung, eine Einrichtung für eine erweiterte Realität oder eine Einrichtung für eine virtuelle Realität beinhalten, mit dieser gekoppelt sein oder in dieser integriert sein. Bei manchen Ausführungsformen ist das Datenverarbeitungssystem 500 ein Fernseher oder eine Set-Top-Box-Einrichtung, der bzw. die einen oder mehrere Prozessoren 502 und eine grafische Schnittstelle, die durch einen oder mehrere Grafikprozessoren 508 erzeugt wird, aufweist.
  • Bei manchen Ausführungsformen beinhaltet bzw. beinhalten der eine oder die mehreren Prozessoren 502 jeweils einen oder mehrere Prozessorkerne 507 zum Verarbeiten von Anweisungen, die, wenn sie ausgeführt werden, Operationen für System- und Benutzersoftware durchführen. Bei manchen Ausführungsformen ist jeder des einen oder der mehreren Prozessorkerne 507 dazu konfiguriert, einen spezifischen Anweisungssatz 509 zu verarbeiten. Bei manchen Ausführungsformen kann der Anweisungssatz 509 eine CISC (Complex Instruction Set Computing), eine RISC (Reduced Instruction Set Computing) oder eine Datenverarbeitung über ein VLIW (Very Long Instruction Word) erleichtern. Mehrere Prozessorkerne 507 können jeweils einen anderen Anweisungssatz 509 verarbeiten, der Anweisungen zum Erleichtern der Emulation anderer Anweisungssätze beinhalten kann. Der Prozessorkern 507 kann auch andere Verarbeitungseinrichtungen enthalten, wie etwa einen Digitalsignalprozessor (DSP).
  • Bei manchen Ausführungsformen beinhaltet der Prozessor 502 einen Cache-Speicher 504. Abhängig von der Architektur kann der Prozessor 502 einen einzelnen internen Cache oder mehrere Ebenen von internem Cache aufweisen. Bei manchen Ausführungsformen wird der Cache-Speicher durch verschiedene Komponenten des Prozessors 502 gemeinsam genutzt. Bei manchen Ausführungsformen verwendet der Prozessor 502 auch einen externen Cache (z. B. einen Ebene-3(L3)-Cache oder einen Cache der letzten Ebene (LLC)) (nicht dargestellt), der durch Prozessorkerne 507, die bekannte Cache-Kohärenztechniken verwenden, gemeinsam genutzt wird. Eine Registerdatei 506 ist zusätzlich im Prozessor 502 enthalten, der unterschiedliche Arten von Registern zum Speichern unterschiedlicher Arten von Daten (z. B. Ganzzahlregister, Gleitkommaregister, Statusregister und ein Anweisungszeigerregister) beinhalten kann. Manche Register können Allgemeinregister sein, während andere Register spezifisch für das Design des Prozessors 502 sein können.
  • Bei manchen Ausführungsformen ist der Prozessor 502 mit einem Prozessorbus 510 zum Übertragen von Datensignalen zwischen dem Prozessor 502 und anderen Komponenten im System 500 gekoppelt. Das System 500 weist eine ‚Hub‘-Systemarchitektur auf, einschließlich eines Speichersteuerngshubs 516 und eines Eingangs-/Ausgangs(E/A)-Steuerungshubs 530. Der Speichersteuerngshub 516 erleichtert eine Kommunikation zwischen einer Speichereinrichtung und anderen Komponenten des Systems 500, während der E/A-Steuerungshub (ICH) 530 Verbindungen zu E/A-Einrichtungen über einen lokalen E/A-Bus bereitstellt.
  • Die Speichereinrichtung 520 kann eine dynamische Direktzugriffsspeicher(DRAM)-Einrichtung, eine statische Direktzugriffsspeicher(SRAM)-Einrichtung, eine Flash-Speichereinrichtung oder eine andere Speichereinrichtung, die eine geeignete Leistungsfähigkeit zum Dienen als ein Prozessspeicher aufweist, sein. Der Speicher 520 kann Daten 522 und Anweisungen 521 zur Verwendung, wenn der Prozessor 502 einen Prozess ausführt, speichern. Der Speichersteuerngshub 516 ist auch mit einem optionalen externen Grafikprozessor 512 gekoppelt, der mit dem einen oder den mehreren Grafikprozessoren 508 in den Prozessoren 502 kommunizieren kann, um Grafik- und Medienoperationen durchzuführen.
  • Bei manchen Ausführungsformen ermöglicht der ICH 530, dass sich Peripheriegeräte über einen Hochgeschwindigkeits-E/A-Bus mit dem Speicher 520 und dem Prozessor 502 verbinden. Die E/A-Peripheriegeräte beinhalten eine Audiosteuerung 546, eine Firmware-Schnittstelle 528, einen drahtlosen Sendeempfänger 526 (z. B. Wi-Fi, Bluetooth), eine Datenspeicherungseinrichtung 524 (z. B. Festplattenlaufwerk, Flash-Speicher usw.) und eine Alt-E/A-Steuerung zum Koppeln von Alt(z. B. PS/2(Personal System 2))-Einrichtungen zum System. Eine oder mehrere USB(Universal Serial Bus)-Steuerungen 542 sind mit Eingangseinrichtungen, wie etwa Kombinationen von Tastatur und Maus 544, verbunden. Eine Netzwerksteuerung 534 kann auch mit dem ICH 530 gekoppelt sein. Bei manchen Ausführungsformen ist eine Hochleistungsnetzwerksteuerung (nicht dargestellt) mit dem Prozessorbus 510 gekoppelt.
  • 6 ist ein Diagramm eines beispielhaften Systems 600 mit ultraniedriger Leistung, das eine Punkt-zu-Punkt-Messeinrichtung einsetzt, gemäß einer oder mehreren Ausführungsformen. Das System 600 kann eine mobile Einrichtung sein, obgleich das System 600 nicht auf diesen Zusammenhang beschränkt ist. Das System 600 kann in eine tragbare Datenverarbeitungseinrichtung, einen Laptop-Computer, ein Tablet, ein Touchpad, einen handgehaltenen Computer, einen Palmtop-Computer, ein zellulares Telefon, eine Smart-Einrichtung (z. B. ein Smartphone, ein Smart-Tablet oder einen mobilen Fernseher), eine mobile Interneteinrichtung (MID), eine Nachrichteneinrichtung, eine Datenkommunikationseinrichtung usw. integriert sein. Das System 600 kann auch eine Infrastruktureinrichtung sein. Das System 600 kann zum Beispiel in einen Großformatfernseher, eine Set-Top-Box, einen Desktop-Computer oder eine andere Heim- oder Unternehmensnetzwerkeinrichtung integriert sein.
  • Das System 600 beinhaltet eine Einrichtungsplattform 602, die alle oder eine Teilmenge der verschiedenen Punkt-zu-Punkt-Messverfahren und beliebige der Logikblöcke/-schaltkreise, die oben im Zusammenhang von 25 beschrieben sind, implementieren. Bei verschiedenen Ausführungsbeispielen führt der Videoprozessor 615 eine Pixelabtastung und/oder eine robuste Linearanpassung und/oder eine Abstandsmesslogik aus, zum Beispiel wie oben beschrieben. Der Videoprozessor 615 beinhaltet Logikschaltkreise 607, die eine Punkt-zu-Punkt-Messung basierend auf 3D-Daten von einem Eingangsbild implementieren, wie zum Beispiel anderweitig vorliegend beschrieben. Bei manchen Ausführungsformen kann bzw. können ein oder mehrere computerlesbare Medien Anweisungen speichern, die, wenn sie durch eine CPU 610 und/oder den Videoprozessor 615 ausgeführt werden, bewirken, dass der eine oder die mehreren Prozessoren ein oder mehrere Punkt-zu-Punkt-Messverfahren ausführt bzw. ausführen, wie etwa ein beliebiges von den oben ausführlich beschriebenen. Eine Punkt-zu-Punkt-Messung kann dann im Speicher 612 gespeichert werden.
  • Bei Ausführungsformen ist die Einrichtungsplattform 602 mit einer Mensch-Schnittstellen-Einrichtung (HID) 620 gekoppelt. Die Plattform 602 kann Rohbilddaten mit dem CM 110, 111, 112 erfassen, die verarbeitet und zur HID 620 ausgegeben werden. Eine Navigationssteuerung 650 einschließlich eines oder mehrerer Navigationsmerkmale kann beispielsweise zum Interagieren mit der Einrichtungsplattform 602 und/oder der HID 620 verwendet werden. Bei Ausführungsformen kann die HID 620 einen beliebigen Fernsehmonitor oder eine Anzeige, der bzw. die mit der Plattform 602 über Funk 618 und/oder einem Netzwerk 660 gekoppelt ist, beinhalten. Die HID 620 kann zum Beispiel einen Computeranzeigebildschirm, eine Touchscreen-Anzeige, einen Videomonitor, eine fernseherartige Einrichtung und/oder einen Fernseher zum Empfangen von Berührungseingaben beinhalten, während ein Eingangsbild auf der Anzeige 622 angezeigt wird.
  • Bei Ausführungsformen kann die Einrichtungsplattform 602 eine beliebige Kombination aus dem CM 110112, einem Chipsatz 605, den Prozessoren 610, 615, dem Speicher/der Speicherung 612, Anwendungen 616 und/oder dem Funk 618 beinhalten. Der Chipsatz 605 kann eine Interkommunikation zwischen den Prozessoren 610, 615, dem Speicher 612, dem Videoprozessor 615, den Anwendungen 616 und/oder dem Funk 618 bereitstellen.
  • Einer oder mehrere der Prozessoren 610, 615 kann bzw. können als einer oder mehrere CISC(Complex Instruction Set Computer)- oder RISC(Reduced Instruction Set Computer)-Prozessoren; mit x86 Anweisungssatz kompatible Prozessoren, Mehrkern- oder als ein beliebiger anderer Mikroprozessor oder Zentralverarbeitungseinheit (CPU) implementiert sein.
  • Der Speicher 612 kann als eine flüchtige Speichereinrichtung, wie etwa unter anderem ein Direktzugriffsspeicher (RAM), dynamischer Direktzugriffsspeicher (DRAM) oder statischer RAM (SRAM) implementiert sein. Der Speicher 612 kann auch als eine nicht flüchtige Speichereinrichtung, wie etwa unter anderem Flash-Speicher, batteriegestützter SDRAM (synchroner DRAM), Magnetspeicher, Phasenwechselspeicher und dergleichen, implementiert sein.
  • Der Funk 618 kann eine oder mehrere Funkeinrichtungen beinhalten, die zum Übertragen und Empfangen von Signalen unter Verwendung verschiedener geeigneter drahtloser Kommunikationstechniken in der Lage sind. Derartige Techniken können Kommunikationen über ein oder mehrere drahtlose Netzwerke hinweg beinhalten. Drahtlose Beispielnetzwerke beinhalten (unter anderem) drahtlose lokale Netzwerke (WLANs), drahtlose persönliche Netzwerke (WPANs), drahtlose Metropolnetzwerke (WMANs), Mobilfunknetzwerke und Satellitennetzwerke. Beim Kommunizieren über derartige Netzwerke hinweg kann der Funk 618 gemäß einem oder mehreren anwendbaren Standards in beliebiger Version arbeiten.
  • Bei Ausführungsformen kann das System 600 als ein drahtloses System, ein drahtgebundenes System oder als eine Kombination von beiden implementiert sein. Wenn als ein drahtloses System implementiert, kann das System 600 Komponenten und Schnittstellen beinhalten, die sich zum Kommunizieren über ein drahtloses gemeinsames Medium eignen, wie etwa eine oder mehrere Antennen, einen oder mehrere Sender, Empfänger, Sendeempfänger, Verstärker, ein oder mehrere Filter, Steuerlogik und so weiter. Ein Beispiel für drahtlose gemeinsame Medien kann Anteile eines drahtlosen Spektrums beinhalten, wie etwa das HF-Spektrum und so weiter. Wenn als ein drahtgebundenes System implementiert, kann das System 600 Komponenten und Schnittstellen beinhalten, die sich zum Kommunizieren über drahtgebundene Kommunikationsmedien eignen, wie etwa Eingangs-/Ausgangs(E/A)-Adapter, physische Verbinder zum Verbinden des E/A-Adapters mit einem entsprechenden drahtgebundenen Kommunikationsmedium, eine Netzwerkschnittstellenkarte (NIC), eine Plattensteuerung, eine Videosteuerung, eine Audiosteuerung und dergleichen. Beispiele für drahtgebundene Kommunikationsmedien können einen Draht, ein Kabel, Metallleitungen, eine Leiterplatte (PCB), eine Mutterplatine, ein Schaltnetz, Halbleitermaterial, paarweise verdrillten Draht, Koaxialkabel, Glasfasern und so weiter beinhalten.
  • Der Schwellenwert-Pixelwertabgleich und assoziierte Objektprozesse, die bei vorliegend beschriebenen Ausführungsbeispielen auftreten, können in verschiedenen Hardwarearchitekturen, Zellendesigns oder „IP-Kernen“ implementiert werden.
  • Wie oben beschrieben, kann das System 600 in variierenden physischen Stilen oder Formfaktoren ausgeführt sein. 7 veranschaulicht ferner Ausführungsformen einer mobilen Handgeräteeinrichtung 700, in der das System 600 umgesetzt sein kann. Bei Ausführungsformen kann die Einrichtung 700 beispielsweise als eine mobile Datenverarbeitungshandgeräteeinrichtung mit drahtlosen Fähigkeiten implementiert sein. Wie in 7 dargestellt, kann die mobile Handgeräteeinrichtung 700 ein Gehäuse mit einer Vorderseite 701 und einer Rückseite 702 beinhalten. Die Einrichtung 700 beinhaltet eine Anzeige 704, eine Eingabe-/Ausgabe(E/A)-Einrichtung 706 und eine integrierte Antenne 708. Die Einrichtung 700 kann auch Navigationsmerkmale 712 beinhalten. Die Anzeige 704 kann eine beliebige geeignete Anzeigeeinheit zum Anzeigen von Informationen, die sich für eine mobile Datenverarbeitungseinrichtung eignen, beinhalten. Die E/A-Einrichtung 706 kann eine beliebige geeignete E/A-Einrichtung zum Eingeben von Informationen in eine mobile Datenverarbeitungseinrichtung beinhalten. Beispiele für die E/A-Einrichtung 706 können eine alphanumerische Tastatur, ein numerisches Tastenfeld, ein Touchpad, Eingabetasten, Knöpfe, Schalter, Mikrofone, Lautsprecher, eine Spracherkennungseinrichtung und Software und so weiter beinhalten. Informationen können auch mittels eines (nicht dargestellten) Mikrofons in die Einrichtung 700 eingegeben werden oder können durch eine Spracherkennungseinrichtung digitalisiert werden. Die Ausführungsformen sind in diesem Zusammenhang nicht beschränkt. In zumindest die Vorderseite 701 oder die Rückseite 702 sind Kameras 705, 710 integriert (die z. B. jeweils eine Linse, eine Öffnung und einen Bildgebungssensor beinhalten), die jeweils Komponenten eines oder mehrerer CM sein können, durch das bzw. die Bilddaten belichtet und zur Punkt-zu-Punkt-Messeinrichtung ausgegeben werden können, wie anderweitig vorliegend beschrieben.
  • Wie oben beispielhaft dargestellt, können vorliegend beschriebene Ausführungsformen unter Verwendung von Hardwareelementen, Softwareelementen oder einer Kombination beider implementiert werden. Beispiele für Hardwareelemente oder -module beinhalten Prozessoren, Mikroprozessoren, Schaltkreise, Schaltungselemente (z. B. Transistoren, Widerstände, Kondensatoren, Induktivitäten und so weiter), integrierte Schaltungen, anwendungsspezifische integrierte Schaltungen (ASIC), programmierbare Logikeinrichtungen (PLD), Digitalsignalprozessoren (DSP), ein feldprogrammierbares Gate-Array (FPGA), Logik-Gatter, Register, eine Halbleitervorrichtung, Chips, Mikrochips, Chipsätze und so weiter. Beispiele für Softwareelemente oder -module beinhalten Anwendungen, Computerprogramme, Anwendungsprogramme, Systemprogramme, Maschinenprogramme, Betriebssystemsoftware, Middleware, Firmware, Routinen, Subroutinen, Funktionen, Verfahren, Prozeduren, Softwareschnittstellen, Anwendungsprogrammierschnittstellen (API), Anweisungssätze, Datenverarbeitungscode, Computercode, Codesegmente, Computercodesegmente, Datenwörter, Werte, Symbole oder eine beliebige Kombination davon. Das Bestimmen, ob eine Ausführungsform unter Verwendung von Hardwareelementen und/oder Softwareelementen implementiert ist, kann gemäß einer beliebigen Anzahl von Faktoren variieren, die für die Wahl des Designs in Betracht gezogen werden, wie etwa unter anderem gewünschte Rechengeschwindigkeit, Leistungspegel, Wärmetoleranzen, Verarbeitungszyklusbudget, Eingangsdatenraten, Ausgangsdatenraten, Speicherressourcen, Datenbusgeschwindigkeiten und andere Design- oder Leistungsfähigkeitsrahmenbedingungen.
  • Einer oder mehrere Aspekte von mindestens einer Ausführungsform kann bzw. können durch repräsentative Anweisungen, die auf einem maschinenlesbaren Speichermedium gespeichert sind, implementiert werden. Derartige Anweisungen können sich vollständig oder zumindest teilweise innerhalb eines Hauptspeichers und/oder innerhalb eines Prozessors während deren Ausführung durch die Maschine befinden, wobei der Hauptspeicher und die Prozessorteile, die die Anweisungen speichern, dann auch ein maschinenlesbares Speichermedium bilden. Programmierbare Logikschaltkreise können Register, Zustandsmaschinen usw. aufweisen, die durch den Prozessor, der die computerlesbaren Medien implementiert, konfiguriert werden. Derartige Logikschaltkreise, wie programmiert, können dann so verstanden werden, dass sie physisch in ein System transformiert werden, das innerhalb des Schutzumfangs der vorliegend beschriebenen Ausführungsformen fällt. Anweisungen, die verschiedene Logik innerhalb des Prozessors repräsentieren, die wenn sie durch eine Maschine gelesen werden, auch bewirken können, dass die Maschine Logik herstellt, die die vorliegend beschriebenen Architekturen befolgt und/oder die vorliegend beschriebenen Techniken durchführt. Derartige Repräsentationen, als Zellendesigns oder IP-Kerne bekannt, können auf einem greifbaren maschinenlesbaren Medium gespeichert sein und verschiedenen Kunden oder Herstellungseinrichtungen zum Laden in die Herstellungsmaschinen zugeführt werden, die tatsächlich die Logik oder den Prozessor herstellen.
  • Obgleich bestimmte vorliegend dargelegte Merkmale unter Bezugnahme auf Ausführungsformen beschrieben worden sind, ist diese Beschreibung nicht dafür gedacht, in einem beschränkenden Sinne aufgefasst zu werden. Folglich werden verschiedene Modifikationen der vorliegend beschriebenen Implementierungen sowie andere Implementierungen, die Fachleuten im Fachgebiet, dem die vorliegende Offenbarung zugehört, offensichtlich erscheinen, als sich innerhalb des Wesens und des Schutzumfangs der vorliegenden Offenbarung befindend erachtet.
  • Die folgenden Paragrafen beschreiben kurz manche Ausführungsbeispiele:
    Bei einer oder mehreren ersten Ausführungsformen beinhaltet ein computerimplementiertes Verfahren für eine Punkt-zu-Punkt-Messung von Bilddaten Empfangen einer Indikation eines Paares von Messpunkten innerhalb eines Eingangseinzelbildes, Bestimmen einer räumlichen 3D-Koordinate für jeden von mehreren Punkten entlang einer Messlinie, die durch das Paar von Messpunkten definiert wird, Filtern der räumlichen 3D-Koordinaten, die mit der Messlinie assoziiert sind, um Ausreißer zu berücksichtigen, Abbilden des Paares von Messpunkten zu einem Paar von vorausbestimmten Punkten basierend auf einer Funktion der gefilterten räumlichen 3D-Koordinaten, Bestimmen eines Abstands zwischen dem Paar von vorausbestimmten Punkten und Speichern des Abstands in einen Speicher in Verbindung mit dem Paar von Messpunkten.
  • Zur Weiterführung der ersten Ausführungsformen umfasst das Filtern der räumlichen 3D-Koordinaten ferner Anpassen einer linearen Struktur zu den räumlichen 3D-Koordinaten. Das Abbilden des Paares von Messpunkten zu dem Paar von vorausbestimmten Punkten basiert auf einer Funktion der linearen Struktur. Das Bestimmen des Abstands zwischen dem Paar von vorausbestimmten Punkten umfasst ferner Berechnen des euklidischen Abstands zwischen dem Paar von vorausbestimmten Punkten.
  • Zur Weiterführung der unmittelbar obigen ersten Ausführungsformen, umfasst das Abbilden des Paares von Messpunkten zu dem Paar von vorausbestimmten Punkten ferner Anpassen einer Ebene zu den räumlichen 3D-Koordinaten und Projizieren des Paares von Messpunkten auf die Ebene.
  • Zur Weiterführung der ersten Ausführungsformen umfasst das Anpassen der linearen Struktur Durchführen einer robusten Total-Least-Squares(TLS)-Anpassung der räumlichen 3D-Koordinaten, die mit der Messlinie assoziiert sind.
  • Zur Weiterführung der unmittelbar obigen ersten Ausführungsformen umfasst das Durchführen der robusten TLS-Anpassung ferner Folgendes: Bestimmen einer robusten Schätzung des Mehrvariablenorts und der Streuung der räumlichen 3D-Koordinaten, die mit der Messlinie assoziiert sind, und Bestimmen einer Hauptkomponente basierend auf einer Eigen-Zerlegung der Streuung.
  • Zur Weiterführung der unmittelbar obigen ersten Ausführungsformen umfasst das Bestimmen der robusten Schätzung des Mehrvariablenorts und der Streuung ferner Berechnen der MCD(Minimum Covariance Determinant)-Schätzfunktion, um h Beobachtungen der räumlichen 3D-Koordinaten, die mit der Messlinie assoziiert sind, zu finden, die mit einer Kovarianzmatrix mit der niedrigsten Determinanten assoziiert sind. Das Abbilden des Paares von Messpunkten zu dem Paar von vorausbestimmten Punkten umfasst ferner Bestimmen, ob die h Beobachtungen alle auf einer Hyperebene liegen, und Berechnen der vorausbestimmten Punkte basierend auf einer vorausbestimmten Tiefe, die mit der Hyperebene assoziiert ist, als Reaktion darauf, dass die h Beobachtungen alle auf der Hyperebene liegen, oder Projizieren der Messpunkte auf eine Linie als Reaktion darauf, dass die h Beobachtungen nicht alle auf einer Hyperebene liegen.
  • Zur Weiterführung der ersten Ausführungsformen umfasst das Verfahren ferner Konstruieren eines Paares von Liniensegmenten, die jeweils die Messlinie über einen der Messpunkte hinaus verlängern, Bestimmen einer Tiefe, die mit jedem der Liniensegmente assoziiert ist, und Bestimmen des Abstands zwischen den Messpunkten unabhängig vom Paar von verfeinerten Punkten als Reaktion darauf, dass sowohl eine erste von Liniensegmenttiefen geringer als eine erste vorausbestimmte Tiefe ist, die mit einem ersten der vorausbestimmten Messpunkte assoziiert ist, als auch eine zweite von Liniensegmenttiefen geringer als eine zweite vorausbestimmte Tiefe ist, die mit einem zweiten der vorausbestimmten Messpunkte assoziiert ist.
  • Zur Weiterführung der ersten Ausführungsformen umfasst das Verfahren ferner Empfangen von Einzelbilddaten, die einen Tiefenwert beinhalten, der mit jeder räumlichen 2D-Position innerhalb des Einzelbildes assoziiert ist, Anzeigen des Einzelbildes auf einem Anzeigebildschirm und das Empfangen der Indikation des Paares von Messpunkten umfasst ferner Empfangen einer Benutzerauswahl, die zwei oder mehr räumliche Koordinaten innerhalb des Einzelbildes angibt.
  • Zur Weiterführung der ersten Ausführungsformen umfasst das Verfahren ferner Erfassen der Einzelbilddaten mit mehreren Kameras und/oder einer Laufzeitkamera und/oder einem strukturierten Lichtilluminator.
  • Bei einer oder mehreren zweiten Ausführungsformen umfasst eine computergestützte Bildgebungseinrichtung einen Eingangsanschluss zum Empfangen einer Indikation eines Paares von Messpunkten innerhalb eines Eingangseinzelbildes und einen oder mehrere Prozessoren, die mit dem Eingangsanschluss gekoppelt sind. Die Prozessoren sollen eine räumliche 3D-Koordinate für jeden mehrerer Punkte entlang einer Messlinie, die durch das Paar von Messpunkten definiert wird, bestimmen, die räumlichen 3D-Koordinaten, die mit der Messlinie assoziiert sind, filtern, um Ausreißer zu berücksichtigen, das Paar von Messpunkten zu einem Paar von vorausbestimmten Punkten basierend auf einer Funktion der gefilterten räumlichen 3D-Koordinaten abbilden und einen Abstand zwischen dem Paar von vorausbestimmten Punkten bestimmen. Die Einrichtung umfasst ferner einen Speicher zum Speichern des Abstands in Verbindung mit dem Eingabeeinzelbild.
  • Zur Weiterführung der zweiten Ausführungsformen, um die räumlichen 3D-Koordinaten zu filtern, sollen der eine oder die mehreren Prozessoren eine lineare Struktur in den räumlichen 3D-Koordinaten anpassen, um das Paar von Messpunkten abzubilden, sollen der eine oder die mehreren Prozessoren die Messpunkte zu dem Paar von vorausbestimmten Punkten basierend auf der linearen Struktur in den räumlichen 3D-Koordinaten abbilden, und um den Abstand zwischen dem Paar von vorausbestimmten Punkten zu bestimmen, sollen der eine oder die mehreren Prozessoren den euklidischen Abstand zwischen dem Paar von vorausbestimmten Punkten berechnen.
  • Zur Weiterführung der unmittelbar obigen zweiten Ausführungsformen, um das Paar von Messpunkten abzubilden, sollen der eine oder die mehreren Prozessoren eine Funktion einer Ebene basierend auf den räumlichen 3D-Koordinaten berechnen und das Paar von Messpunkten auf die Ebene projizieren.
  • Zur Weiterführung der zweiten Ausführungsformen, um die lineare Struktur zu den räumlichen 3D-Koordinaten anzupassen, sollen der eine oder die mehreren Prozessoren eine robuste Total-Least-Squares(TLS)-Anpassung der räumlichen 3D-Koordinaten, die mit der Messlinie assoziiert sind, durchführen.
  • Zur Weiterführung der unmittelbar obigen zweiten Ausführungsformen, um die robuste TLS-Anpassung durchzuführen, sollen der eine oder die mehreren Prozessoren eine robuste Schätzung des Mehrvariablenorts und der Streuung der räumlichen 3D-Koordinaten, die mit der Messlinie assoziiert sind, durchführen und eine Hauptkomponente basierend auf einer Eigen-Zerlegung der Streuung bestimmen.
  • Zur Weiterführung der unmittelbar obigen zweiten Ausführungsformen, um die robuste Schätzung des Mehrvariablenorts und der Streuung zu bestimmen, sollen der eine oder die mehreren Prozessoren die MCD(Minimum Covariance Determinant)-Schätzfunktion berechnen, um h Beobachtungen der räumlichen 3D-Koordinaten, die mit der Messlinie assoziiert sind, zu finden, die mit einer Kovarianzmatrix mit der niedrigsten Determinanten assoziiert sind. Um das Paar von Messpunkten zu dem Paar von vorausbestimmten Punkten abzubilden, sollen der eine oder die mehreren Prozessoren bestimmen, ob die h Beobachtungen alle auf einer Hyperebene liegen, und die vorausbestimmten Punkte basierend auf einer vorausbestimmten Tiefe, die mit der Hyperebene assoziiert ist, als Reaktion darauf, dass die h Beobachtungen alle auf der Hyperebene liegen, berechnen oder die Messpunkte auf eine Linie als Reaktion darauf, dass die h Beobachtungen nicht alle auf einer Hyperebene liegen, projizieren.
  • Zur Weiterführung der zweiten Ausführungsformen sollen der eine oder die mehreren Prozessoren ferner ein Paar von Liniensegmenten, die jeweils die Messlinie über einen der Messpunkte hinaus verlängern, konstruieren, eine Tiefe bestimmen, die mit jedem der Liniensegmente assoziiert ist, und den Abstand zwischen den Messpunkten unabhängig vom Paar von verfeinerten Punkten als Reaktion darauf, dass sowohl eine erste von Liniensegmenttiefen geringer als eine erste vorausbestimmte Tiefe ist, die mit einem ersten der vorausbestimmten Messpunkte assoziiert ist, als auch ein zweite von Liniensegmenttiefen geringer als eine zweite vorausbestimmte Tiefe ist, die mit einem zweiten der vorausbestimmten Messpunkte assoziiert ist, bestimmen.
  • Zur Weiterführung der zweiten Ausführungsformen beinhaltet die Einrichtung ferner: mehrere Kameras und/oder eine Laufzeitkamera und/oder eine strukturierte Lichtquelle zum Erfassen eines Tiefenwerts, der mit jeder räumlichen 2D-Position innerhalb des Einzelbildes assoziiert ist. Die Einrichtung beinhaltet ferner einen Anzeigebildschirm zum Anzeigen des Einzelbildes und die Einrichtung beinhaltet ferner eine Benutzerschnittstelle zum Empfangen einer Benutzerauswahl, die zwei oder mehr räumliche Koordinaten innerhalb des Einzelbildes angibt.
  • Bei einer oder mehreren dritten Ausführungsformen weisen ein oder mehrere computerlesbare Speichermedien darauf gespeicherte Anweisungen auf, die, wenn sie durch einen Prozessor ausgeführt werden, bewirken, dass der Prozessor ein Verfahren durchführt, das Empfangen einer Indikation eines Paares von Messpunkten innerhalb eines Eingangseinzelbildes, Bestimmen einer räumlichen 3D-Koordinate für jeden von mehreren Punkten entlang einer Messlinie, die durch das Paar von Messpunkten definiert wird, Filtern der räumlichen 3D-Koordinaten, um Ausreißer zu berücksichtigen, Abbilden des Paares von Messpunkten zu einem Paar von vorausbestimmten Punkten basierend auf dem gefilterten Satz von räumlichen 3D-Koordinaten, Bestimmen eines Abstands zwischen dem Paar von vorausbestimmten Punkten und Speichern des Abstands in einen Speicher in Verbindung mit dem Paar von Messpunkten umfasst.
  • Zur Weiterführung der dritten Ausführungsformen umfassen die Medien ferner darauf gespeicherte Anweisungen, die, wenn sie durch den Prozessor ausgeführt werden, bewirken, dass der Prozessor das Verfahren durchführt, das ferner umfasst, dass das Filtern der räumlichen 3D-Koordinaten ferner Anpassen einer linearen Struktur zu den räumlichen 3D-Koordinaten, Abbilden des Paares von Messpunkten zu dem Paar von vorausbestimmten Punkten basierend auf der linearen Struktur umfasst, und dass das Bestimmen des Abstands zwischen dem Paar von vorausbestimmten Punkten ferner Berechnen des euklidischen Abstands zwischen dem Paar von vorausbestimmten Punkten umfasst. Das Anpassen der linearen Struktur zu den räumlichen 3D-Koordinaten umfasst Durchführen einer robusten Total-Least-Squares(TLS)-Anpassung der räumlichen 3D-Koordinaten, die mit der Messlinie assoziiert sind. Die TLS-Anpassung umfasst ferner Bestimmen einer robusten Schätzung des Mehrvariablenorts und der Streuung der räumlichen 3D-Koordinaten, die mit der Messlinie assoziiert sind, und Bestimmen einer Hauptkomponente basierend auf einer Eigen-Zerlegung der Streuung.
  • Zur Weiterführung der unmittelbar obigen dritten Ausführungsformen umfasst das Bestimmen der robusten Schätzung des Mehrvariablenorts und der Streuung ferner Berechnen der MCD(Minimum Covariance Determinant)-Schätzfunktion, um h Beobachtungen aus den räumlichen 3D-Koordinaten zu finden, die mit der Messlinie, die mit einer Kovarianzmatrix mit der niedrigsten Determinanten assoziiert ist, assoziiert sind, und das Abbilden des Paares von Messpunkten zu dem Paar von vorausbestimmten Punkten umfasst ferner Bestimmen, ob die h Beobachtungen alle auf einer Hyperebene liegen, und Berechnen der vorausbestimmten Punkte basierend auf einer vorausbestimmten Tiefe, die mit der Hyperebene assoziiert ist, als Reaktion darauf, dass die h Beobachtungen alle auf der Hyperebene liegen, oder Projizieren der Messpunkte auf eine Linie als Reaktion darauf, dass die h Beobachtungen nicht alle auf der Hyperebene liegen.
  • Bei einer oder mehreren vierten Ausführungsformen umfasst eine computergestützte Bildgebungseinrichtung ein Mittel zum Durchführen einer beliebigen der ersten Ausführungsformen.
  • Bei einer oder mehreren fünften Ausführungsformen weist ein computerlesbares Speichermedium darauf gespeicherte Anweisungen auf, die, wenn sie durch einen Prozessor ausgeführt werden, bewirken, dass der Prozessor eine beliebige der ersten Ausführungsformen durchführt.
  • Es versteht sich, dass die Ausführungsformen nicht auf die derart beschriebenen Ausführungsbeispiele beschränkt sind, sondern mit Modifikation und Abänderung ausgeübt werden können, ohne vom Schutzumfang der angehängten Ansprüche abzuweichen. Beispielsweise können die obigen Ausführungsformen spezifische Kombinationen von Merkmalen beinhalten. Allerdings sind die obigen Ausführungsformen in dieser Hinsicht nicht beschränkt und, in Ausführungsformen, können die obigen Ausführungsformen nur Vornehmen lediglich einer Teilmenge derartiger Merkmale, Vornehmen einer anderen Reihenfolge derartiger Merkmale, Vornehmen einer anderen Kombination derartiger Merkmale und/oder Vornehmen zusätzlicher Merkmale gegenüber den explizit aufgelisteten Merkmalen beinhalten. Der Schutzumfang sollte daher unter Bezugnahme auf die angehängten Ansprüche zusammen mit dem vollen Umfang von Äquivalenten, zu denen diese Ansprüche berechtigt sind, bestimmt werden.

Claims (21)

  1. Computergestützte Bildgebungseinrichtung, die Folgendes umfasst: einen Eingangsanschluss zum Empfangen einer Indikation eines Paares von Messpunkten innerhalb eines Eingangseinzelbildes; einen oder mehrere Prozessoren, die mit dem Eingangsanschluss gekoppelt sind, wobei die Prozessoren Folgendes ausführen sollen: Bestimmen einer räumlichen 3D-Koordinate für jeden von mehreren Punkten entlang einer Messlinie, die durch das Paar von Messpunkten definiert wird; Filtern der räumlichen 3D-Koordinaten, die mit der Messlinie assoziiert sind, um Ausreißer zu berücksichtigen; Abbilden des Paares von Messpunkten zu einem Paar von vorausbestimmten Punkten basierend auf einer Funktion der gefilterten räumlichen 3D-Koordinaten und Bestimmen eines Abstands zwischen dem Paar von vorausbestimmten Punkten; und einen Speicher zum Speichern des Abstands in Verbindung mit dem Eingabeeinzelbild.
  2. Einrichtung nach Anspruch 1, wobei: um die räumlichen 3D-Koordinaten zu filtern, der eine oder die mehreren Prozessoren eine lineare Struktur in den räumlichen 3D-Koordinaten anpassen sollen; um das Paar von Messpunkten abzubilden, der eine oder die mehreren Prozessoren die Messpunkte zu dem Paar von vorausbestimmten Punkten basierend auf der linearen Struktur in den räumlichen 3D-Koordinaten abbilden sollen; und um den Abstand zwischen dem Paar von vorausbestimmten Punkten zu bestimmen, der eine oder die mehreren Prozessoren den euklidischen Abstand zwischen dem Paar von vorausbestimmten Punkten berechnen sollen.
  3. Einrichtung nach Anspruch 2, wobei, um das Paar von Messpunkten abzubilden, der eine oder die mehreren Prozessoren Folgendes ausführen sollen: Berechnen einer Funktion einer Ebene basierend auf den räumlichen 3D-Koordinaten und Projizieren des Paares von Messpunkten auf die Ebene.
  4. Einrichtung nach Anspruch 2, wobei, um die lineare Struktur zu den räumlichen 3D-Koordinaten anzupassen, der eine oder die mehreren Prozessoren eine robuste Total-Least-Squares(TLS)-Anpassung der räumlichen 3D-Koordinaten, die mit der Messlinie assoziiert sind, durchführen sollen.
  5. Einrichtung nach Anspruch 4, wobei, um die robuste TLS-Anpassung durchzuführen, der eine oder die mehreren Prozessoren Folgendes ausführen sollen: Bestimmen einer robusten Schätzung des Mehrvariablenorts und der Streuung der räumlichen 3D-Koordinaten, die mit der Messlinie assoziiert sind; und Bestimmen einer Hauptkomponente basierend auf einer Eigen-Zerlegung der Streuung.
  6. Einrichtung nach Anspruch 5, wobei: um die robuste Schätzung des Mehrvariablenorts und der Streuung zu bestimmen, der eine oder die mehreren Prozessoren die MCD(Minimum Covariance Determinant)-Schätzfunktion berechnen sollen, um h Beobachtungen der räumlichen 3D-Koordinaten, die mit der Messlinie assoziiert sind, zu finden, die mit einer Kovarianzmatrix mit der niedrigsten Determinanten assoziiert sind; und, um das Paar von Messpunkten zu dem Paar von vorausbestimmten Punkten abzubilden, der eine oder die mehreren Prozessoren Folgendes ausführen sollen: Bestimmen, ob die h Beobachtungen alle auf einer Hyperebene liegen; und Berechnen der vorausbestimmten Punkte basierend auf Folgendem: einer vorausbestimmten Tiefe, die mit der Hyperebene assoziiert ist, als Reaktion darauf, dass die h Beobachtungen alle auf der Hyperebene liegen; oder Projizieren der Messpunkte auf eine Linie als Reaktion darauf, dass die h Beobachtungen nicht alle auf der Hyperebene liegen.
  7. Einrichtung nach Anspruch 1, wobei der eine oder die mehreren Prozessoren ferner Folgendes ausführen sollen: Konstruieren eines Paares von Liniensegmenten, die jeweils die Messlinie über einen der Messpunkte hinaus verlängern; Bestimmen einer Tiefe, die mit jedem der Liniensegmente assoziiert ist; und Bestimmen des Abstands zwischen den Messpunkten unabhängig vom Paar von vorausbestimmten Punkten als Reaktion darauf, dass sowohl eine erste von Liniensegmenttiefen geringer als eine erste vorausbestimmte Tiefe ist, die mit einem ersten der vorausbestimmten Messpunkte assoziiert ist, als auch eine zweite von Liniensegmenttiefen geringer als eine zweite vorausbestimmte Tiefe ist, die mit einem zweiten der vorausbestimmten Messpunkte assoziiert ist.
  8. Einrichtung nach Anspruch 1, die ferner Folgendes umfasst: mehrere Kameras und/oder eine Laufzeitkamera und/oder eine strukturierte Lichtquelle zum Erfassen eines Tiefenwerts, der mit jeder räumlichen 2D-Position innerhalb des Einzelbildes assoziiert ist; einen Anzeigebildschirm zum Anzeigen des Einzelbildes und eine Benutzerschnittstelle zum Empfangen einer Benutzerauswahl, die zwei oder mehr räumliche Koordinaten innerhalb des Einzelbildes angibt.
  9. Computerimplementiertes Verfahren für eine Punkt-zu-Punkt-Messung von Bilddaten, wobei das Verfahren Folgendes umfasst: Empfangen einer Indikation eines Paares von Messpunkten innerhalb eines Eingangseinzelbildes; Bestimmen einer räumlichen 3D-Koordinate für jeden von mehreren Punkten entlang einer Messlinie, die durch das Paar von Messpunkten definiert wird; Filtern der räumlichen 3D-Koordinaten, die mit der Messlinie assoziiert sind, um Ausreißer zu berücksichtigen; Abbilden des Paares von Messpunkten zu einem Paar von vorausbestimmten Punkten basierend auf einer Funktion der gefilterten räumlichen 3D-Koordinaten; Bestimmen eines Abstands zwischen dem Paar von vorausbestimmten Punkten und Speichern des Abstands in einen Speicher in Verbindung mit dem Paar von Messpunkten.
  10. Verfahren nach Anspruch 9, wobei: das Filtern der räumlichen 3D-Koordinaten ferner Anpassen einer linearen Struktur zu den räumlichen 3D-Koordinaten umfasst; das Abbilden des Paares von Messpunkten zu dem Paar von vorausbestimmten Punkten basierend auf einer Funktion der linearen Struktur und das Bestimmen des Abstands zwischen dem Paar von vorausbestimmten Punkten ferner Berechnen des euklidischen Abstands zwischen dem Paar von vorausbestimmten Punkten umfasst.
  11. Verfahren nach Anspruch 10, wobei: das Abbilden des Paares von Messpunkten zu dem Paar von vorausbestimmten Punkten ferner Folgendes umfasst: Anpassen einer Ebene zu den räumlichen 3D-Koordinaten und Projizieren des Paares von Messpunkten auf die Ebene.
  12. Verfahren nach Anspruch 10, wobei: das Anpassen der linearen Struktur Durchführen einer robusten Total-Least-Squares(TLS)-Anpassung der räumlichen 3D-Koordinaten, die mit der Messlinie assoziiert sind, umfasst.
  13. Verfahren nach Anspruch 12, wobei das Durchführen der robusten TLS-Anpassung ferner Folgendes umfasst: Bestimmen einer robusten Schätzung des Mehrvariablenorts und der Streuung der räumlichen 3D-Koordinaten, die mit der Messlinie assoziiert sind; und Bestimmen einer Hauptkomponente basierend auf einer Eigen-Zerlegung der Streuung.
  14. Verfahren nach Anspruch 13, wobei: das Bestimmen der robusten Schätzung des Mehrvariablenorts und der Streuung ferner Berechnen der MCD(Minimum Covariance Determinant)-Schätzfunktion umfasst, um h Beobachtungen der räumlichen 3D-Koordinaten, die mit der Messlinie assoziiert sind, zu finden, die mit einer Kovarianzmatrix mit der niedrigsten Determinanten assoziiert sind; und das Abbilden des Paares von Messpunkten zu dem Paar von vorausbestimmten Punkten ferner Folgendes umfasst: Bestimmen, ob die h Beobachtungen alle auf einer Hyperebene liegen; und Berechnen der vorausbestimmten Punkte basierend auf Folgendem: einer vorausbestimmten Tiefe, die mit der Hyperebene assoziiert ist, als Reaktion darauf, dass die h Beobachtungen alle auf der Hyperebene liegen; oder Projizieren der Messpunkte auf eine Linie als Reaktion darauf, dass die h Beobachtungen nicht alle auf einer Hyperebene liegen.
  15. Verfahren nach Anspruch 9, das ferner Folgendes umfasst: Konstruieren eines Paares von Liniensegmenten, die jeweils die Messlinie über einen der Messpunkte hinaus verlängern; Bestimmen einer Tiefe, die mit jedem der Liniensegmente assoziiert ist; und Bestimmen des Abstands zwischen den Messpunkten unabhängig vom Paar von vorausbestimmten Punkten als Reaktion darauf, dass sowohl eine erste von Liniensegmenttiefen geringer als eine erste vorausbestimmte Tiefe ist, die mit einem ersten der vorausbestimmten Messpunkte assoziiert ist, als auch eine zweite von Liniensegmenttiefen geringer als eine zweite vorausbestimmte Tiefe ist, die mit einem zweiten der vorausbestimmten Messpunkte assoziiert ist.
  16. Verfahren nach Anspruch 9, das ferner Folgendes umfasst: Empfangen von Einzelbilddaten einschließlich eines Tiefenwerts, der mit jeder räumlichen 2D-Position innerhalb des Einzelbildes assoziiert ist; Anzeigen des Einzelbildes auf einem Anzeigebildschirm und wobei das Empfangen der Indikation des Paares von Messpunkten ferner Folgendes umfasst: Empfangen einer Benutzerauswahl, die zwei oder mehr räumliche Koordinaten innerhalb des Einzelbildes angibt.
  17. Verfahren nach Anspruch 9, das ferner Folgendes umfasst: Erfassen der Einzelbilddaten mit Folgenden: mehreren Kameras und/oder einer Laufzeitkamera und/oder einem strukturierten Lichtilluminator.
  18. Computergestützte Bildgebungseinrichtung, die Folgendes umfasst: Mittel zum Durchführen eines beliebigen der in den Ansprüchen 9–17 vorgetragenen Verfahren.
  19. Computerlesbares Speichermedium mit darauf gespeicherten Anweisungen, die, wenn sie durch einen Prozessor ausgeführt werden, bewirken, dass der Prozessor ein beliebiges der in den Ansprüchen 9-17 vorgetragenen Verfahren durchführt.
  20. Medium nach Anspruch 19, das ferner darauf gespeicherte Anweisungen umfasst, die, wenn sie durch den Prozessor ausgeführt werden, ferner bewirken, dass der Prozessor das Verfahren durchführt, das ferner Folgendes umfasst: Empfangen einer Indikation eines Paares von Messpunkten innerhalb eines Eingangseinzelbildes; Bestimmen einer räumlichen 3D-Koordinate für jeden von mehreren Punkten entlang einer Messlinie, die durch das Paar von Messpunkten definiert wird; und Anpassen einer linearen Struktur zu den räumlichen 3D-Koordinaten, wobei das Anpassen der linearen Struktur zu den räumlichen 3D-Koordinaten Durchführen einer robusten Total-Least-Squares(TLS)-Anpassung der räumlichen 3D-Koordinaten, die mit der Messlinie assoziiert sind, umfasst, wobei die TLS-Anpassung ferner Folgendes umfasst Bestimmen einer robusten Schätzung des Mehrvariablenorts und der Streuung der räumlichen 3D-Koordinaten, die mit der Messlinie assoziiert sind; und Bestimmen einer Hauptkomponente basierend auf einer Eigen-Zerlegung der Streuung und Abbilden des Paares von Messpunkten zu dem Paar von vorausbestimmten Punkten basierend auf der linearen Struktur und wobei das Bestimmen des Abstands zwischen dem Paar von vorausbestimmten Punkten ferner Berechnen des euklidischen Abstands zwischen dem Paar von vorausbestimmten Punkten umfasst.
  21. Medium nach Anspruch 20, wobei: das Bestimmen der robusten Schätzung des Mehrvariablenorts und der Streuung ferner Berechnen der MCD(Minimum Covariance Determinant)-Schätzfunktion umfasst, um h Beobachtungen aus den räumlichen 3D-Koordinaten, die mit der Messlinie assoziiert sind, zu finden, die mit einer Kovarianzmatrix mit der niedrigsten Determinanten assoziiert sind; und das Abbilden des Paares von Messpunkten zu dem Paar von vorausbestimmten Punkten ferner Folgendes umfasst: Bestimmen, ob die h Beobachtungen alle auf einer Hyperebene liegen; und Berechnen der vorausbestimmten Punkte basierend auf Folgendem: einer vorausbestimmten Tiefe, die mit der Hyperebene assoziiert ist, als Reaktion darauf, dass die h Beobachtungen alle auf der Hyperebene liegen; oder Projizieren der Messpunkte auf eine Linie als Reaktion darauf, dass die h Beobachtungen nicht alle auf der Hyperebene liegen.
DE112016003118.1T 2015-08-31 2016-07-29 Punkt-zu-Punkt-Abstandsmessungen in 3D-Kamerabildern Active DE112016003118B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/841,609 US9792687B2 (en) 2015-08-31 2015-08-31 Point-to-point distance measurements in 3D camera images
US14/841,609 2015-08-31
PCT/US2016/044897 WO2017039907A1 (en) 2015-08-31 2016-07-29 Point-to-point distance measurements in 3d camera images

Publications (2)

Publication Number Publication Date
DE112016003118T5 true DE112016003118T5 (de) 2018-04-12
DE112016003118B4 DE112016003118B4 (de) 2023-03-16

Family

ID=58096597

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112016003118.1T Active DE112016003118B4 (de) 2015-08-31 2016-07-29 Punkt-zu-Punkt-Abstandsmessungen in 3D-Kamerabildern

Country Status (4)

Country Link
US (1) US9792687B2 (de)
CN (1) CN107925727B (de)
DE (1) DE112016003118B4 (de)
WO (1) WO2017039907A1 (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI663466B (zh) * 2015-09-25 2019-06-21 佳能企業股份有限公司 攝像裝置及其操作方法
US10599958B2 (en) * 2017-12-14 2020-03-24 Avigilon Corporation Method and system for classifying an object-of-interest using an artificial neural network
WO2019213432A1 (en) 2018-05-03 2019-11-07 Intuitive Surgical Operations, Inc. Systems and methods for measuring a distance using a stereoscopic endoscope
US10726567B2 (en) * 2018-05-03 2020-07-28 Zoox, Inc. Associating LIDAR data and image data
CN112797897B (zh) * 2019-04-15 2022-12-06 Oppo广东移动通信有限公司 物体几何参数的测量方法、装置和终端
US11386522B2 (en) * 2019-08-07 2022-07-12 Reification Inc. Calibration of individual and arrayed cameras using images and video
US20220108435A1 (en) * 2020-10-02 2022-04-07 Baker Hughes Oilfield Operations Llc Automated turbine blade to shroud gap measurement
US20220261085A1 (en) * 2021-02-12 2022-08-18 Apple Inc. Measurement based on point selection
US11461917B1 (en) * 2021-08-20 2022-10-04 Omniscient Neurotechnology Pty Limited Measuring 3-dimensional distances in medical imaging data
CN114199124B (zh) * 2021-11-09 2023-07-25 汕头大学 基于线性拟合的坐标标定方法、装置、系统及介质
WO2023195911A1 (en) * 2022-04-05 2023-10-12 Ams-Osram Asia Pacific Pte. Ltd. Calibration of depth map generating system

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8064697B2 (en) * 2007-10-12 2011-11-22 Microsoft Corporation Laplacian principal components analysis (LPCA)
US7778788B2 (en) 2008-05-29 2010-08-17 United Technologies Corporation Scanner based optical inspection system
US8238642B2 (en) * 2008-11-20 2012-08-07 General Electric Company Methods and apparatus for measuring 3D dimensions on 2D images
US8896686B2 (en) 2009-06-23 2014-11-25 Here Global B.V. Determining a geometric parameter from a single image
US9163922B2 (en) 2010-01-20 2015-10-20 Faro Technologies, Inc. Coordinate measurement machine with distance meter and camera to determine dimensions within camera images
JP5018980B2 (ja) 2010-04-08 2012-09-05 カシオ計算機株式会社 撮像装置、長さ測定方法、及びプログラム
US8459792B2 (en) 2010-04-26 2013-06-11 Hal E. Wilson Method and systems for measuring interpupillary distance
WO2013146269A1 (ja) 2012-03-29 2013-10-03 シャープ株式会社 画像撮像装置、画像処理方法およびプログラム
JP2013228267A (ja) 2012-04-25 2013-11-07 Panasonic Corp 表示装置、表示方法、及びプログラム
US8571351B2 (en) * 2012-06-03 2013-10-29 Tianzhi Yang Evaluating mapping between spatial point sets
CN102867302B (zh) * 2012-08-30 2015-04-08 四川大学 基于三维图像信息处理的岩心裂缝识别方法
CN103761745B (zh) * 2013-07-31 2017-04-12 深圳大学 一种肺部运动模型估计方法及系统
CN104123751A (zh) * 2014-07-24 2014-10-29 福州大学 Kinect与关节臂结合的复合式测量和三维重建方法

Also Published As

Publication number Publication date
US9792687B2 (en) 2017-10-17
US20170061624A1 (en) 2017-03-02
DE112016003118B4 (de) 2023-03-16
CN107925727B (zh) 2020-10-23
CN107925727A (zh) 2018-04-17
WO2017039907A1 (en) 2017-03-09

Similar Documents

Publication Publication Date Title
DE112016003118B4 (de) Punkt-zu-Punkt-Abstandsmessungen in 3D-Kamerabildern
US20230419437A1 (en) Systems and methods for fusing images
US9547907B2 (en) Image segmentation using color and depth information
US11403763B2 (en) Image segmentation method and apparatus, computer device, and storage medium
DE112018007721T5 (de) Aufnehmen und modifizieren von 3D-Gesichtern unter Verwendung neuronaler Bild-und Zeitverfolgungsnetze
US10509954B2 (en) Method and system of image segmentation refinement for image processing
DE202017105899U1 (de) Kameraeinstellungsanpassung basierend auf vorhergesagten Umgebungsfaktoren und Nachverfolgungssysteme, die diese einsetzen
DE102020128899A1 (de) Adaptive virtuelle kamera für indirect-sparse-simultaneous-localization- und mapping-systeme
US9286532B2 (en) Image processing apparatus and control method thereof
US10063840B2 (en) Method and system of sub pixel accuracy 3D measurement using multiple images
US9704254B2 (en) Stereo image matching by shape preserving filtering of a cost volume in a phase domain
US10645364B2 (en) Dynamic calibration of multi-camera systems using multiple multi-view image frames
US9582881B2 (en) Machine vision image sensor calibration
EP3135033B1 (de) Strukturiertes stereo
US9514523B2 (en) Method and apparatus for filling images captured by array cameras
EP2757789A1 (de) Bildverarbeitungssystem, bildverarbeitungsverfahren und bildverarbeitungsprogramm
US9990695B2 (en) Edge sensing measure for raw image processing
CN109040596B (zh) 一种调整摄像头的方法、移动终端及存储介质
CN111402170A (zh) 图像增强方法、装置、终端及计算机可读存储介质
DE112016004109T5 (de) Echtzeit-mehrfach-fahrzeugdetektion und -tracking
US20160335775A1 (en) Visual navigation method, visual navigation device and robot
DE112019003984T5 (de) Auf eine benutzervorrichtung angewandte superauflösung mittels natürlicher handbewegung
US20150117757A1 (en) Method for processing at least one disparity map, corresponding electronic device and computer program product
DE102022105545A1 (de) Deep-Guided-Filter-Decoder mit niedriger Komplexität für pixelweise Prädiktionsaufgabe
US9532040B2 (en) Virtual viewpoint interval determination sections apparatus and method

Legal Events

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

Free format text: PREVIOUS MAIN CLASS: H04N0013020000

Ipc: H04N0013200000

R082 Change of representative

Representative=s name: HGF EUROPE LLP, DE

Representative=s name: HGF EUROPE LP, DE

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final