DE102018101935A1 - Method for optically scanning and measuring an environment - Google Patents

Method for optically scanning and measuring an environment Download PDF

Info

Publication number
DE102018101935A1
DE102018101935A1 DE102018101935.1A DE102018101935A DE102018101935A1 DE 102018101935 A1 DE102018101935 A1 DE 102018101935A1 DE 102018101935 A DE102018101935 A DE 102018101935A DE 102018101935 A1 DE102018101935 A1 DE 102018101935A1
Authority
DE
Germany
Prior art keywords
pixel
distance
determining
pixels
gap filling
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.)
Pending
Application number
DE102018101935.1A
Other languages
German (de)
Inventor
Martin Ossig
Daniel Flohr
Dag Frommhold
Oliver Knörzer
Martin Heide
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.)
Faro Technologies Inc
Original Assignee
Faro Technologies Inc
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
Priority claimed from US15/419,334 external-priority patent/US9645240B1/en
Application filed by Faro Technologies Inc filed Critical Faro Technologies Inc
Publication of DE102018101935A1 publication Critical patent/DE102018101935A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/002Measuring arrangements characterised by the use of optical techniques for measuring two or more coordinates
    • 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/24Measuring arrangements characterised by the use of optical techniques for measuring contours or curvatures
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C15/00Surveying instruments or accessories not provided for in groups G01C1/00 - G01C13/00
    • G01C15/002Active optical surveying means
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/88Lidar systems specially adapted for specific applications
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/88Lidar systems specially adapted for specific applications
    • G01S17/89Lidar systems specially adapted for specific applications for mapping or imaging
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S7/00Details of systems according to groups G01S13/00, G01S15/00, G01S17/00
    • G01S7/48Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S17/00
    • G01S7/51Display arrangements

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Electromagnetism (AREA)
  • Length Measuring Devices By Optical Means (AREA)

Abstract

Es wird ein Verfahren zum optischen Abtasten, Vermessen und Anzeigen einer Punktwolke bereitgestellt. Das Verfahren umfasst das Senden eines Sendelichtstrahls und das Empfangen eines Reflexionslichtstrahls, der von einem Objekt reflektiert wird, durch einen Laserscanner. Eine Steuereinrichtung bestimmt für Messpunkte, die entsprechend eines Bildschirms auf eine Ebene projiziert wurden, wobei mindestens einige Messpunkte auf einer Anzeigeeinrichtung angezeigt werden. Ein oder mehrere Pixel werden gefüllt, um ein visuelles Erscheinungsbild einer Oberfläche auf der Anzeigeeinrichtung zu erzeugen. Während das Lückenfüllen eine erste horizontale Suche in einer ersten Richtung eines ersten gemessenen Punkts der Messpunkte umfasst, folgt darauf eine zweite horizontale Suche in einer zweiten Richtung des ersten gemessenen Punkts. Das Lückenfüllen umfasst ferner eine erste vertikale Suche in einer dritten Richtung des gemessenen Punkts, gefolgt von einer zweiten vertikalen Suche in einer vierten Richtung.A method is provided for optically scanning, measuring and displaying a point cloud. The method includes transmitting a transmitted light beam and receiving a reflected light beam reflected from an object by a laser scanner. A controller determines for measurement points that have been projected onto a plane corresponding to a screen, wherein at least some measurement points are displayed on a display device. One or more pixels are filled to create a visual appearance of a surface on the display device. While gapping includes a first horizontal search in a first direction of a first measured point of the measurement points, it is followed by a second horizontal search in a second direction of the first measured point. Gap filling further includes a first vertical search in a third direction of the measured point followed by a second vertical search in a fourth direction.

Description

GEBIET DER ERFINDUNGFIELD OF THE INVENTION

Die Erfindung betrifft ein System und ein Verfahren zum optischen Abtasten und Vermessen einer Umgebung und im Besonderen ein System und ein Verfahren zum Erzeugen einer grafischen Darstellung einer Punktwolke.The invention relates to a system and method for optically sensing and surveying an environment, and more particularly to a system and method for generating a graphical representation of a point cloud.

ALLGEMEINER STAND DER TECHNIKGENERAL PRIOR ART

Messgeräte, wie beispielsweise Laserscanner, können große Volumina von Koordinatendaten von Punkten, die sich an den Oberflächen der abgetasteten Fläche befinden, erzeugen. Diese Gerätearten können benutzt werden, um dreidimensionale Modelle einer Fläche, z. B. eines Hauses oder Gebäudes, eines Tatorts oder zum Beispiel einer archäologischen Stätte zu erzeugen. Oft können bei diesen Scan-Formen die Daten aus mehreren Positionen aufgenommen werden, um alle gewünschten Oberflächen einzufangen und leere Flächen zu vermeiden, bei denen eine Oberfläche im „Schatten“ eines anderen Objekts lag. Infolgedessen werden mehrere Datensätze von Koordinatendaten erzeugt, die zusammen registriert werden, um einen einzigen Datensatz zu definieren, manchmal umgangssprachlich als eine „Punktwolke“ bezeichnet, da die Daten als eine Gruppe von Punkten im Raum ohne Oberflächen dargestellt werden.Gauges, such as laser scanners, can generate large volumes of coordinate data from points located on the surfaces of the scanned area. These types of devices can be used to construct three-dimensional models of a surface, e.g. As a house or building, a crime scene or, for example, an archaeological site to produce. Often, these scan shapes can capture data from multiple locations to capture all desired surfaces and avoid blank areas where one surface was in the "shadow" of another object. As a result, multiple data sets of coordinate data are generated which are registered together to define a single data set, sometimes colloquially referred to as a "point cloud", as the data is presented as a group of points in space without surfaces.

Man wird verstehen, dass es schwierig sein kann, sich aus einer grafischen Darstellung einer Punktwolke die Oberflächen der abgetasteten Fläche bildlich vorzustellen. Das liegt an der unmittelbaren Nähe der Punkte (aus beliebiger Benutzersicht) innerhalb der Punktwolke, die auf verschiedenen Ebenen liegen können. Wenn zum Beispiel die Benutzersicht der Punktwolke nach unten auf einen Tisch blickt, wird es Punkte innerhalb des Blickfelds von der Tischoberfläche geben, nebst dem Boden unterhalb der Tischoberfläche oder sogar der Oberfläche auf der Unterseite des Tischs.It will be appreciated that it can be difficult to visualize from a graphical representation of a point cloud the surfaces of the scanned area. This is due to the close proximity of the points (from any user's perspective) within the point cloud, which may be at different levels. For example, if the user view of the point cloud is looking down at a table, there will be points within the field of view of the table surface, along with the floor below the table surface or even the surface on the underside of the table.

Dort, wo die Punktwolke relativ dicht ist, was bedeutet, dass die Punkte auf einer Oberfläche dicht gelagert sind, ist die Erzeugung von Oberflächen in dem angezeigten Bild zum Visualisieren der abgetasteten Fläche möglich, wenngleich rechenintensiv. Jedoch kann in einigen Anwendungen die Punktwolke eine geringere Punktdichte aufweisen, was zu Lücken in dem Datensatz zwischen den Punkten der Punktwolke führt. Infolgedessen kann es schwierig sein, eine gewünschte grafische Darstellung zu erzeugen.Where the point cloud is relatively dense, meaning that the spots are densely supported on a surface, it is possible to create surfaces in the displayed image to visualize the scanned area, albeit computationally intensive. However, in some applications, the point cloud may have a lower density of dots, resulting in gaps in the data set between the points cloud points. As a result, it may be difficult to produce a desired graphical representation.

Dementsprechend bleibt, obwohl bestehende Messgeräte und Punktwolkenanzeigesysteme für ihre vorgesehenen Zwecke geeignet sind, der Bedarf nach Verbesserung bestehen, insbesondere in der Bereitstellung eines Systems zum Füllen von Pixeln auf einer grafischen Darstellung, um eine Anzeige einer Punktwolke zu erzeugen.Accordingly, although existing meters and point cloud display systems are suitable for their intended purposes, there remains a need for improvement, particularly in providing a system for populating pixels on a graph to produce a display of a point cloud.

KURZDARSTELLUNG DER ERFINDUNGBRIEF SUMMARY OF THE INVENTION

Gemäß einer Ausführungsform der vorliegenden Erfindung wird ein Verfahren zum optischen Abtasten, Vermessen und Darstellen einer Punktwolke bereitgestellt. Das Verfahren umfasst das Senden eines Sendelichtstrahls durch einen Lichtsender eines Laserscanners. Ein Lichtempfänger empfängt einen Reflexionslichtstrahl, wobei ein Reflexionslichtstrahl des Sendelichtstrahls von einem Objekt reflektiert wird. Eine Steuer- und Auswerteeinrichtung bestimmt für Messpunkte, die entsprechend einem Bildschirm auf einer Anzeigeeinrichtung auf eine Ebene projiziert wurden, mindestens die Distanz von dem Objekt zu einem Zentrum des Laserscanners, wobei mindestens einige Messpunkte auf der Anzeigeeinrichtung angezeigt werden. Die Punkte sind auf der Anzeigeeinrichtung sichtbar und werden zumindest teilweise basierend auf einem Standpunkt der Anzeigeeinrichtung bestimmt. Ein oder mehrere Pixel werden gefüllt, um ein visuelles Erscheinungsbild einer Oberfläche auf der Anzeigeeinrichtung zu erzeugen. Während das Lückenfüllen eine erste horizontale Suche in einer ersten Richtung eines ersten gemessenen Punkts der Messpunkte, gefolgt von einer zweiten horizontalen Suche in einer zweiten Richtung des ersten gemessenen Punkts, umfasst, ist die zweite Richtung der ersten Richtung entgegengesetzt. Das Lückenfüllen umfasst ferner eine erste vertikale Suche in einer dritten Richtung des gemessenen Punkts, wobei die dritte Richtung senkrecht zur ersten Richtung ist, gefolgt von einer zweiten vertikalen Suche in einer vierten Richtung, wobei die vierte Richtung der dritten Richtung entgegengesetzt ist.According to an embodiment of the present invention, there is provided a method of optically scanning, measuring, and displaying a point cloud. The method comprises transmitting a transmitted light beam through a light emitter of a laser scanner. A light receiver receives a reflected light beam, wherein a reflected light beam of the transmitted light beam is reflected by an object. A control and evaluation device determines, for measuring points that have been projected onto a display on a display according to a screen, at least the distance from the object to a center of the laser scanner, wherein at least some measuring points are displayed on the display device. The dots are visible on the display device and are determined, at least in part, based on a viewpoint of the display device. One or more pixels are filled to create a visual appearance of a surface on the display device. While the gap filling comprises a first horizontal search in a first direction of a first measured point of the measurement points followed by a second horizontal search in a second direction of the first measured point, the second direction is opposite to the first direction. The gap filling further comprises a first vertical search in a third direction of the measured point, the third direction being perpendicular to the first direction, followed by a second vertical search in a fourth direction, the fourth direction being opposite to the third direction.

Figurenlistelist of figures

Die Ausführungsformen der vorliegenden Erfindung werden nachstehend auf der Grundlage von in den Zeichnungen dargestellten Ausführungsbeispielen ausführlicher erläutert, in denen

  • 1 eine schematische Darstellung eines Laserscanners in der Umgebung ist, der eine Anzeigeeinrichtung umfasst, und
  • 2 eine partielle Schnittdarstellung des Laserscanners ist;
  • 3 eine schematische Darstellung einer abgetasteten Fläche mit auf den Oberflächen angezeigten gemessenen Punkten ist;
  • 4 eine schematische Darstellung der Zuweisung und des Füllens der Pixel mit einer Sicht auf die Ebene ist, wobei die benachbarten Pixel auf derselben Oberfläche liegen;
  • 5 eine schematische Darstellung der Zuweisung und des Füllens der Pixel gemäß 4 mit einer Sicht auf die Ebene ist, gemäß einer Ausführungsform;
  • 6 eine schematische Darstellung der Zuweisung und des Füllens der Pixel mit einer Sicht auf die Ebene ist, wobei die benachbarten Pixel auf unterschiedlichen Oberflächen liegen, gemäß einer Ausführungsform;
  • 7 eine schematische Darstellung der Zuweisung und des Füllens der Pixel gemäß 3 mit einer Sicht auf die Ebene ist, gemäß einer Ausführungsform;
  • 8 ein Flussdiagramm eines Verfahrens zum Füllen von Pixeln gemäß einer Ausführungsform ist;
  • 9 - 11 Flussdiagramme eines Verfahrens zum Durchführen des Pixelfüllens in einer horizontalen Reihe gemäß einer Ausführungsform ist;
  • 12 - 16 schematische Darstellungen einer Folge horizontaler und vertikaler Pixelfüllschritte sind, die mithilfe der Verfahren von 6 durchgeführt werden.
The embodiments of the present invention will be explained in more detail below on the basis of exemplary embodiments illustrated in the drawings, in which:
  • 1 is a schematic representation of a laser scanner in the environment, which comprises a display device, and
  • 2 a partial sectional view of the laser scanner is;
  • 3 Figure 3 is a schematic representation of a scanned area with measured points displayed on the surfaces;
  • 4 Figure 12 is a schematic representation of the assignment and filling of the pixels with a view of the plane, with the adjacent pixels on the same surface;
  • 5 a schematic representation of the assignment and filling of the pixels according to 4 with a view of the plane, according to one embodiment;
  • 6 Figure 3 is a schematic representation of the assignment and filling of the pixels with a view of the plane, with the adjacent pixels on different surfaces, according to one embodiment;
  • 7 a schematic representation of the assignment and filling of the pixels according to 3 with a view of the plane, according to one embodiment;
  • 8th Fig. 10 is a flowchart of a method for filling pixels according to an embodiment;
  • 9 - 11 Flowcharts of a method of performing pixel filling in a horizontal row according to an embodiment;
  • 12 - 16 are schematic representations of a sequence of horizontal and vertical pixel filling steps, using the methods of 6 be performed.

AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNGDETAILED DESCRIPTION OF THE INVENTION

Mit Bezug auf 1 und 2 wird ein Laserscanner 10 als eine Vorrichtung zum optischen Abtasten und Vermessen der Umgebung des Laserscanners 10 bereitgestellt. Der Laserscanner 10 hat einen Messkopf 12 und einen Fuß 14. Der Messkopf 12 ist als eine Einheit, die um eine vertikale Achse gedreht werden kann, auf dem Fuß 14 montiert. Der Messkopf 12 weist einen Drehspiegel 16 auf, der um eine vertikale Achse gedreht werden kann. Der Schnittpunkt zwischen den zwei Drehachsen wird als das Zentrum C10 des Laserscanners 10 bezeichnet.Regarding 1 and 2 becomes a laser scanner 10 as a device for optically scanning and measuring the surroundings of the laser scanner 10 provided. The laser scanner 10 has a measuring head 12 and a foot 14 , The measuring head 12 is on the foot as a unit that can be rotated about a vertical axis 14 assembled. The measuring head 12 has a rotating mirror 16 on, which can be rotated about a vertical axis. The intersection between the two axes of rotation is called the center C 10 of the laser scanner 10 designated.

Der Messkopf 12 weist ebenfalls einen Lichtsender 17 zum Senden eines Sendelichtstrahls 18 auf. Der Sendelichtstrahl 18 kann ein Laserstrahl im Wellenlängenbereich von ungefähr 300 bis 1600 nm, zum Beispiel 790 nm, 905 nm oder weniger als 400 nm sein, doch es können auch andere elektromagnetische Wellen mit zum Beispiel einer größeren Wellenlänge genutzt werden. Der Sendelichtstrahl 18 kann zum Beispiel mit einem sinusförmigen oder rechteckwellenförmigen Modulationssignal amplitudenmoduliert werden. Der Sendelichtstrahl 18 wird von dem Lichtsender 17 an den Drehspiegel 16 übertragen, wo er gebeugt und anschließend in die Umgebung gesendet wird. Ein Empfangslichtstrahl 20, der von einem Objekt reflektiert oder anderweitig gestreut wird, wird von dem Drehspiegel 16 wieder eingefangen, gebeugt und an einen Lichtempfänger 21 übertragen. Die Richtung des Sendelichtstrahls 18 und des Empfangslichtstrahls 20 ergibt sich aus den Winkelpositionen des Drehspiegels 16 und des Messkopfs 12, die von den Positionen ihrer jeweiligen Drehantriebe abhängen, die wiederum von einem entsprechenden Winkelschrittgeber erfasst werden.The measuring head 12 also has a light transmitter 17 for transmitting a transmitted light beam 18 on. The transmitted light beam 18 For example, a laser beam may be in the wavelength range of about 300 to 1600 nm, for example, 790 nm, 905 nm, or less than 400 nm, but other electromagnetic waves having, for example, a longer wavelength may be used. The transmitted light beam 18 For example, it may be amplitude modulated with a sinusoidal or square wave modulation signal. The transmitted light beam 18 is from the light emitter 17 to the rotating mirror 16 where it is bent and then sent into the environment. A receiving light beam 20 which is reflected or otherwise scattered by an object is detected by the rotating mirror 16 again captured, bent and sent to a light receiver 21 transfer. The direction of the transmitted light beam 18 and the receiving light beam 20 results from the angular positions of the rotating mirror 16 and the measuring head 12 , which depend on the positions of their respective rotary actuators, which in turn are detected by a corresponding angle encoder.

Eine Steuer- und Auswerteeinrichtung 22 weist eine Datenverbindung mit dem Lichtsender 17 und dem Lichtempfänger 21 im Messkopf 12 auf, wobei Teile davon auch außerhalb des Messkopfs 12 angeordnet sind, zum Beispiel als ein mit dem Fuß 14 verbundener Computer. Die Steuer- und Auswerteeinrichtung 22 bestimmt, für eine Vielzahl von Messpunkten X, die Distanz d des Laserscanners 10 aus dem beleuchteten Punkt auf dem Objekt O (z. B. dem Tisch T, 3) und aus den Laufzeiten des Sendelichtstrahls 18 und des Empfangslichtstrahls 20. In einer Ausführungsform wird die Distanz d von der Steuer- und Auswerteeinrichtung 22 basierend auf der Phasenverschiebung zwischen den zwei Lichtstrahlen 18 und 20 bestimmt. In einer anderen Ausführungsform wird die Distanz d von der Steuer- und Auswerteeinrichtung basierend auf einer gemessenen Umlaufzeit zwischen einem ausgehenden Sendeimpuls des Lichts 18 und einem zurückkehrenden Empfangsimpuls des Lichts 20 bestimmt. In einer anderen Ausführungsform wird die Distanz d von der Steuer- und Auswerteeinrichtung basierend auf einer Änderung in der optischen Wellenlänge eines Empfangsstrahls des Lichts 20 bezüglich einem Sendestrahl des Lichts bestimmt, wobei der Emissionsstrahl des Lichts eine optische Wellenlänge aufweist, die zeitlich nahezu linear gesweept (gechirpt) wird. Viele andere Verfahren sind in der Technik bekannt und können genutzt werden, um die Distanz d zu bestimmen.A control and evaluation device 22 has a data connection to the light emitter 17 and the light receiver 21 in the measuring head 12 on, with parts of it also outside the measuring head 12 are arranged, for example, as one with the foot 14 connected computer. The control and evaluation device 22 determines, for a plurality of measuring points X, the distance d of the laser scanner 10 from the illuminated point on the object O (eg the table T, 3 ) and from the transit times of the transmitted light beam 18 and the receiving light beam 20 , In one embodiment, the distance d from the control and evaluation device 22 based on the phase shift between the two light beams 18 and 20 certainly. In another embodiment, the distance d from the control and evaluation device based on a measured round trip time between an outgoing pulse of the light 18 and a returning receive pulse of light 20 certainly. In another embodiment, the distance d from the control and evaluation device is based on a change in the optical wavelength of a received beam of the light 20 with respect to a transmission beam of the light, the emission beam of the light having an optical wavelength that is temporally swept almost linearly (chirped). Many other methods are known in the art and may be used to determine the distance d.

Durch die Nutzung der relativ schnellen Drehung des Spiegels 16 erfolgt das Abtasten entlang einer Kreislinie. Auch wird durch die Nutzung der relativ langsamen Drehung des Messkopfs 12 relativ zum Fuß 14 mit der Kreislinie nach und nach der gesamte Raum abgetastet. Die Gesamtheit der Messpunkte X einer solchen Messung kann als ein Scan bezeichnet werden. Das Zentrum C10 des Laserscanners 10 definiert für solch einen Scan den Ursprung des lokalen stationären Bezugssystems. Der Fuß 14 ist in diesem lokalen stationären Bezugssystem stationär. In anderen Ausführungsformen wird eine andere Art Strahlablenkungsverfahren genutzt, um den Sendestrahl 18 auf verschiedene Punkte X in der Umgebung zu richten. In einer Ausführungsform wird ein Paar Galvanometer-Lenkspiegel genutzt, um den Sendestrahl 18 schnell auf die gewünschten Punkte X zu richten. In einer anderen Ausführungsform dreht sich der Sendestrahl 18 zusammen mit dem gesamten Messkopf 12. Viele Arten von Strahllenkmechanismen sind in der Technik bekannt und können genutzt werden.By using the relatively fast rotation of the mirror 16 the scanning is done along a circular line. Also, by using the relatively slow rotation of the gauge head 12 relative to the foot 14 with the circle gradually scanned the entire room. The totality of the measurement points X of such a measurement may be referred to as a scan. The center C 10 of the laser scanner 10 defines for such a scan the origin of the local stationary frame of reference. The foot 14 is stationary in this local stationary reference system. In other embodiments, another type of beam deflection method is used to control the transmit beam 18 to point to various points X in the environment. In one embodiment, a pair of galvanometer steering mirrors are used to transmit the transmit beam 18 to aim quickly at the desired points X. In another embodiment, the transmit beam rotates 18 together with the entire measuring head 12 , Many types of beam steering mechanisms are known in the art and may be used.

Neben dem Abstand d zum Zentrum C10 des Laserscanners 10 umfasst jeder Messpunkt X einen Helligkeitswert, der auch von der Steuer- und Auswerteeinrichtung 22 bestimmt werden kann. Hier ist der Begriff Helligkeit so zu verstehen, dass er eine optische Leistungsstufe oder eine Strahlungsstufe bezeichnet (optische Leistung pro Flächeneinheit). Die Helligkeit ist ein Grautonwert, der zum Beispiel bestimmt wird durch die Integration des bandpassgefilterten und amplifizierten Signals des Lichtempfängers 21 über einen Messzeitraum, der dem Messpunkt X zugewiesen ist. Durch die Nutzung einer Farbkamera ist es optional möglich, Bilder zu erzeugen, durch welche die Farben (R, G, B) den Messpunkten X als ein Wert zugewiesen werden können, zusätzlich zur Helligkeit oder die Helligkeit umfassend. In addition to the distance d to the center C 10 of the laser scanner 10 Each measuring point X comprises a brightness value which is also from the control and evaluation device 22 can be determined. Here, the term brightness is understood to mean an optical power stage or a radiation stage (optical power per unit area). The brightness is a gray tone value determined, for example, by the integration of the band-pass filtered and amplified signal of the light receiver 21 over a measuring period, which is assigned to measuring point X. By using a color camera, it is optionally possible to produce images by which the colors (R, G, B) can be assigned to the measurement points X as a value, in addition to the brightness or the brightness.

Eine Anzeigeeinrichtung 30 ist mit der Steuer- und Auswerteeinrichtung 22 verbunden. Die Anzeigeeinrichtung 30 kann in den Laserscanner 10, zum Beispiel in den Messkopf 12 oder in den Fuß 14, integriert werden, oder kann eine externe Einheit sein, zum Beispiel Teil eines Computers, der mit dem Fuß 14 verbunden ist. Die Anzeigeeinrichtung 30 weist eine Grafikkarte 32 und einen Bildschirm 34 auf, die getrennt voneinander oder als Baueinheit angeordnet werden können. Die Steuer- und Auswerteeinrichtung 22 stellt 3D-Daten der Abtastung bereit.A display device 30 is with the control and evaluation device 22 connected. The display device 30 can in the laser scanner 10 , for example in the measuring head 12 or in the foot 14 , be integrated, or may be an external unit, for example, part of a computer with the foot 14 connected is. The display device 30 has a video card 32 and a screen 34 on, which can be arranged separately or as a structural unit. The control and evaluation device 22 Provides 3D data of the sample.

Man wird verstehen, dass, wenn die Messpunkte X, die in einem dreidimensionalen Raum positioniert sind, auf einer zweidimensionalen Anzeigeeinrichtung 30 angezeigt werden, es für den Benutzer schwierig sein kann, sich das Objekt O auf der Anzeige bildlich vorzustellen. Mit Bezug auf 3 zum Beispiel wurde ein Tisch T mit dem Laserscanner 10 abgetastet und die Messpunkte X wurden aufgenommen. Wenn der Benutzer die Messpunkte X von einem Standpunkt V aus anzeigt, wird der Benutzer nicht nur die Messpunkte XT von der Tischplatte sehen, sondern auch die Messpunkte XF. Infolgedessen wird es, ohne einen visuellen Bezug, wie eine Oberfläche des Tischs T oder die Oberflächen der Beine des Tischs, für den Benutzer schwer, zwischen den Messpunkten XT und den Messpunkten XF zu unterscheiden. Man wird verstehen, dass in einer Ausführungsform, in der das gemessene Objekt O eine Struktur ist, z. B. das Innere eines Gebäudes, die gemessenen Punkte auf gegenüberliegenden Seiten einer Wand liegen können. It will be understood that if the measurement points X positioned in a three-dimensional space are displayed on a two-dimensional display device 30, it may be difficult for the user to visualize the object O on the display. Regarding 3 for example, a table T was using the laser scanner 10 sampled and the measuring points X were recorded. If the user displays the measurement points X from a viewpoint V, the user will not only see the measurement points X T from the tabletop, but also the measurement points X F. As a result, without a visual reference, such as a surface of the table T or the surfaces of the legs of the table, it becomes difficult for the user to distinguish between the measuring points X T and the measuring points X F. It will be understood that in an embodiment in which the measured object O is a structure, e.g. For example, the interior of a building may have measured points on opposite sides of a wall.

Dementsprechend stellen die Ausführungsformen hierin Vorteile bereit, die auf der Anzeigeeinrichtung 30 ein Bild erzeugen, das Oberflächen auf dem Objekt O darstellt, indem die Pixel zwischen den gemessenen Punkten gefüllt werden. Das Verfahren zum Füllen der Pixel zwischen den gemessenen Punkten wird manchmal als Lückenfüllen oder Pixelfüllen bezeichnet.Accordingly, the embodiments herein provide advantages that appear on the display 30 create an image representing surfaces on the object O by filling the pixels between the measured points. The method of filling the pixels between the measured points is sometimes referred to as gap filling or pixel filling.

In vielen Fällen werden Objekte in einer Umgebung mit einem in mehreren Positionen platzierten Laserscanner 10 abgetastet. Dies ist in 3 dargestellt, in der sich ein Scanner 10A in einer ersten Position zu einer ersten Zeit und derselbe oder ein anderer Scanner 10B sich in einer anderen Position zu einer zweiten Zeit befindet. In einigen Ausführungsformen werden mehrere Scanner wie 10A, 10B gleichzeitig genutzt. In einer Ausführungsform wird der Scanner 10A positioniert, um die Oberseite des Tischs T und weniger Bodenpunkte an der Seite des Tischs abzutasten. Der Scanner 10B ist positioniert, um hauptsächlich Punkte unterhalb des Tischs T statt auf dem Tisch abzutasten. Wenn die Messpunkte XT mit den Messpunkten XF registriert werden, ist das Ergebnis eine Punktwolke, die über einen dreidimensionalen Raum verteilte Punkte aufweist. Aus der Perspektive eines Betrachters V wird solch eine Sammlung spärlich angeordneter Punkte eventuell nicht eindeutig anzeigen, welche Punkte näher am Betrachter liegen und welche weiter vom Betrachter weg liegen. Somit kann eine Anzeige der gesammelten Punkte in der Punktwolke die Bodenpunkte und die Tischplattenpunkte vermischen, wobei die Oberflächen für den Betrachter V nicht eindeutig zu unterscheiden sind.In many cases, objects will be in an environment with a laser scanner placed in multiple locations 10 sampled. This is in 3 shown in which is a scanner 10A in a first position at a first time and the same or another scanner 10B is in a different position at a second time. In some embodiments, multiple scanners such as 10A, 10B are used simultaneously. In one embodiment, the scanner becomes 10A positioned to scan the top of the table T and fewer bottom points on the side of the table. The scanner 10B is positioned to scan mainly points below table T rather than on the table. When the measurement points X T are registered with the measurement points X F , the result is a point cloud having points distributed over a three-dimensional space. From the perspective of a viewer V, such a collection of sparsely arranged points may not clearly indicate which points are closer to the viewer and which are further away from the viewer. Thus, an indication of the accumulated points in the point cloud may intermix the ground points and the table top points, with the surfaces not being clearly distinguishable to the viewer V.

Mit Bezug auf die 4 - 7, mit weiterem Bezug auf 1 und 2 konvertiert die Grafikkarte 32 die 3D-Daten in 2D-Daten (z. B. Rendern von Daten), die auf dem Bildschirm 34 angezeigt werden. Die 3D-Daten sind die Messpunkte X, wobei mehrere Scans aus verschiedenen Positionen des Laserscanners 10 zu einer Szene zusammengefügt werden können. Zum Darstellen der 2D-Daten gibt es Pixel P, d. h. benachbarte, kleine polygonale Oberflächen (z. B. Quadrate oder Sechsecke), die in einer zweidimensionalen Ebene E angeordnet sind, die dem Bildschirm 34 entspricht. In einer Ausführungsform ist die Projektion der Messpunkte X auf eine Ebene E mit einem Betrachtungsgerät (z. B. Auge, Kamera) ein Startpunkt für die Darstellung auf dem Bildschirm 34 an einem bestimmten Standpunkt V. Die Projektion erscheint perspektivisch (d. h., der Standpunkt V liegt im Finiten) oder orthografisch (d. h., der Standpunkt V liegt im Infiniten). In einer Ausführungsform werden die projizierten Messpunkte X einzelnen Pixeln P0, P1, P2 zugewiesen. Ein Z-Puffer ist ein zweidimensionales Array (Feld) aus Werten für die Pixel P. In diesem Z-Puffer wird jedem Pixel P ein Feldelement (Tiefe z) zugewiesen. Die Tiefe z eines jeden projizierten Messpunkts X entspricht der Distanz des Messpunkts X zu der Ebene E mit Bezug auf den Standpunkt V. Das Feld der Pixel P und der Z-Puffer können genauso behandelt werden wie die Bilder.With reference to the 4 - 7 , with further reference to 1 and 2 converts the video card 32 the 3D data into 2D data (such as rendering data) on the screen 34 are displayed. The 3D data are the measurement points X, with multiple scans from different positions of the laser scanner 10 can be put together to a scene. To represent the 2D data, there are pixels P, ie, adjacent, small polygonal surfaces (eg, squares or hexagons) arranged in a two-dimensional plane E facing the screen 34 equivalent. In one embodiment, the projection of the measurement points X onto a plane E with a viewing device (eg eye, camera) is a starting point for the display on the screen 34 at a given point of view V. The projection appears in perspective (ie, the viewpoint V is in the finite) or orthographic (ie, the viewpoint V is in the infinite). In one embodiment, the projected measurement points X are assigned to individual pixels P 0 , P 1 , P 2 . A Z-buffer is a two-dimensional array of values for the pixels P. In this Z-buffer, each pixel P is assigned a field element (depth z). The depth z of each projected measurement point X corresponds to the distance of the measurement point X to the plane E with respect to the viewpoint V. The field of the pixels P and Z-buffers can be treated the same as the images.

Der Standpunkt V kann an sich beliebig sein und wird normalerweise mehrere Male im Hinblick auf den Scan und/oder die Szene geändert. Mit anderen Worten kann sich der Benutzer dafür entscheiden, die Messpunktdaten aus einer Vielfalt von Perspektiven zu betrachten, mit erneut gerenderten Änderungen an den angezeigten Messpunkten X.The viewpoint V can be arbitrary per se and is usually changed several times with respect to the scan and / or the scene. With others In words, the user may choose to view the measurement point data from a variety of perspectives, with re-rendered changes to the displayed measurement points X.

Da die Messpunkte X punktförmig sind und Lücken dazwischen aufweisen, und die Pixel P normalerweise, im Falle nahegelegener Objekte O, eine höhere Dichte in der Ebene E aufweisen als die Projektionen der Messpunkte X, wird ein Lückenfüllverfahren ausgeführt, um für eine verbesserte visuelle Darstellung für den Benutzer so viele Pixel wie möglich zu füllen. In einer Ausführungsform führt die Grafikkarte 32 dieses Verfahren durch Verarbeitung der 3D-Daten nach einem parallelen Verfahren aus, das später hierin weiter beschrieben wird, wobei das parallele Verarbeitungsverfahren zumindest in Teilen auf der Angabe des Standpunkts V und der Ebene E basiert.Since the measurement points X are dot-shaped and have gaps therebetween, and the pixels P normally, in the case of nearby objects O, have a higher density in the plane E than the projections of the measurement points X, a gap-filling method is performed to provide an improved visual representation of to fill the user with as many pixels as possible. In one embodiment, the graphics card performs 32 this method by processing the 3D data according to a parallel method, which will be further described later herein, wherein the parallel processing method is based at least in part on the indication of the viewpoint V and the level E.

In einer Ausführungsform werden anfänglich nur jene Pixel P gefüllt, denen die Projektion eines Messpunktes X zugewiesen ist, d. h. die einen Messpunkt X genau abdecken, z. B. die Pixel P0, P1, P2. Diese Pixel P werden mit dem Wert des zugewiesenen Messpunktes X, d. h. der Helligkeit (Grauskalenwert) und, gegebenenfalls, der Farbe gefüllt. Alle anderen Pixel P, die nicht genau einer Projektion eines Messpunkts X entsprechen, d. h. die „dazwischen“ liegen und zunächst leer sind, werden zum Beispiel auf einen Wert von null (z. B. leer oder ungefüllt) gesetzt. Jede der Tiefen z, d. h. der Feldelemente des Z-Puffers, die den anfänglich gefüllten Pixeln P zugewiesen sind, wird auf die Tiefe z0, z1, z2 festgelegt, die der Distanz des zugewiesenen Messpunkts X zur Ebene E entspricht. In einer Ausführungsform, manchmal als perspektivische Projektion bezeichnet, ist die Distanz z1 von einem Objektpunkt zu einem Punkt P1 auf einer Ebene E entlang einer Linie markiert, die auf einen Betrachterstandpunkt V gerichtet ist. In dieser Ausführungsform ist die Distanz z1 die Distanz von dem Obj ektpunkt zu dem Punkt P1. In einer anderen Ausführungsform, manchmal als orthografische Projektion bezeichnet, ist die Distanz eine senkrechte Distanz von dem Objektpunkt zu dem Punkt P1 anstelle der auf V gerichteten Linie.In one embodiment, initially only those pixels P are filled to which the projection of a measuring point X is assigned, ie which exactly cover a measuring point X, e.g. B. the pixels P 0 , P 1 , P 2 . These pixels P are filled with the value of the assigned measuring point X, ie the brightness (gray scale value) and, if appropriate, the color. For example, all other pixels P that do not exactly correspond to a projection of a measurement point X, ie, which are "in between" and are initially empty, are set to a value of zero (eg, empty or unfilled). Each of the depths z, that is, the field elements of the Z-buffer assigned to the initially filled pixels P, is set to the depth z 0 , z 1 , z 2 corresponding to the distance of the assigned measurement point X to the plane E. In one embodiment, sometimes referred to as perspective projection, the distance z1 is marked from an object point to a point P1 on a plane E along a line directed to a viewer's point V. In this embodiment, the distance z1 is the distance from the object point to the point P1. In another embodiment, sometimes referred to as orthographic projection, the distance is a perpendicular distance from the object point to the point P1 instead of the line directed to V.

Alle anderen Feldelemente des Z-Puffers (z. B. die Tiefen z) werden auf einen sehr großen Wert eingestellt (bezüglich der Größenordnung der gemessenen Punkte), zum Beispiel ungefähr auf eine infinite Tiefe. Wenn sich, sofern die Projektion der gemessenen Punkte X erfolgt ist, herausstellt, dass zwei Messpunkte X für ein Pixel P verfügbar sind, wird der Messpunkt mit der kleinen Tiefe z ausgewählt und der andere verworfen, damit die abgedeckten Oberflächen und abgedeckten Ränder, wie solche Messpunkte XF auf dem Boden von 3, nicht sichtbar sind.All other field elements of the Z-buffer (eg the depths z) are set to a very large value (in terms of the magnitude of the measured points), for example approximately to an infinite depth. If, assuming the projection of the measured points X has been made, it turns out that two measurement points X are available for one pixel P, the measurement point with the small depth z is selected and the other is discarded, hence the covered surfaces and covered edges, such as Measuring points X F on the ground of 3 , are not visible.

Gemäß einer Ausführung wird das Lückenfüllverfahren in Abhängigkeit von der Tiefe z0, z1, z2, d. h. von der Distanz zur Ebene E durchgeführt. Die Grafikkarte 32 wählt alle Pixel P parallel in Bezug auf die Zeit aus. Als Beispiel wird nun ein ausgewähltes Pixel P0 betrachtet. Die zugewiesene Tiefe z, d. h. das Feldelement des Z-Puffers, enthält die Tiefe z0. Bei jedem ausgewählten Pixel P0 werden die benachbarten Pixel P1, P2, nacheinander gesucht, d. h. abwechselnd nach links und rechts und nach oben und unten. Wenn das benachbarte Pixel P1 noch nicht gefüllt ist oder wenn seine Tiefe z größer ist als die Tiefe z0 des ausgewählten Pixels P0, wird es übersprungen und das zweitnächste Pixel P wird als das benachbarte Pixel P1 angesehen, wenn nötig iterativ. Wenn ein benachbartes Pixel P1, dessen Tiefe z1 kleiner ist als die Tiefe z0 des ausgewählten Pixels P0, in einer der Richtungen gefunden wurde, erfolgt eine Änderung in die nächste Richtung, und es wird nach dem nächsten benachbarten Pixel P2 gesucht (dessen Tiefe z2 z. B. kleiner ist als die Tiefe z0 des ausgewählten Pixels P0). Es ist möglich, eine Höchstzahl an übersprungenen Pixeln zu definieren, d. h. wenn das benachbarte Pixel P1 oder P2 nach Überspringen der Höchstzahl an übersprungenen Pixeln noch nicht gefunden wurde, wird die Suche nach P1 oder P2 abgebrochen. In einer Ausführungsform wird die Suche nach Pixeln zum Füllen eines Anfangspixels P0 auf jene Pixel innerhalb eines Radius R des Pixels P0 auf dem zweidimensionalen Pixel-Array begrenzt. In einer anderen Ausführungsform wird die Suche auch durch einen anderen Radius in den 3D-Koordinaten, senkrecht zur Blickrichtung, begrenzt.According to one embodiment, the gap filling method is carried out as a function of the depth z 0 , z 1 , z 2 , that is to say from the distance to the plane E. The graphics card 32 selects all pixels P in parallel with respect to time. As an example, consider a selected pixel P 0 . The assigned depth z, ie the field element of the Z-buffer, contains the depth z 0 . At each selected pixel P 0 , the adjacent pixels P 1 , P 2 are searched one after another, that is, alternately left and right and up and down. If the adjacent pixel P 1 is not yet filled, or if its depth z is greater than the depth z 0 of the selected pixel P 0 , it is skipped and the second closest pixel P is regarded as the adjacent pixel P 1 , if necessary iteratively. If an adjacent pixel P 1 whose depth z 1 is smaller than the depth z 0 of the selected pixel P 0 has been found in one of the directions, a change is made in the next direction and the next adjacent pixel P 2 is searched (whose depth z 2, for example, is smaller than the depth z 0 of the selected pixel P 0 ). It is possible to define a maximum number of skipped pixels, ie if the adjacent pixel P 1 or P 2 has not yet been found after skipping the maximum number of skipped pixels, the search for P 1 or P 2 is aborted. In one embodiment, the search for pixels to fill an initial pixel P 0 is limited to those pixels within a radius R of the pixel P 0 on the two-dimensional pixel array. In another embodiment, the search is also limited by another radius in the 3D coordinates, perpendicular to the viewing direction.

Wenn die benachbarten Pixel P1 und P2 für das ausgewählte Pixel P0 in entgegengesetzten Richtungen gefunden wurden, wobei die Tiefen z1 und z2 der benachbarten Pixel P1 und P2 kleiner sind als die Tiefe z0, wird geprüft, ob P1 und P2 auf derselben Ebene liegen, d. h. ob der Differenzbetrag von z2 und z1 unterhalb eines Schwellenwertes für die Tiefe zcrit liegt, d. h. | z 2 z 1 | < z crit

Figure DE102018101935A1_0001
zutrifft. In solch einem Fall wird das ausgewählte Pixel P0 mit dem Wert gefüllt, der zwischen P1 und P2, d. h. Helligkeit (Grauskalenstufe) und, gegebenenfalls Farbe, interpoliert wurde. Das zugewiesene Feldelement des Z-Puffers wird gleichermaßen auf die interpolierte Tiefe zwischen z1 und z2 festgelegt. Die Interpolationsgewichte hängen von der Distanz des ausgewählten Pixels P0 von P1 und P2 in Ebene E ab.If the adjacent pixels P 1 and P 2 for the selected pixel P 0 have been found in opposite directions, with the depths z 1 and z 2 of the adjacent pixels P 1 and P 2 being less than the depth z 0 , it is checked whether P 1 and P 2 are on the same level, ie whether the difference of z 2 and z 1 is below a threshold for the depth z crit , ie | z 2 - z 1 | < z crit
Figure DE102018101935A1_0001
true. In such a case, the selected pixel P 0 is filled with the value interpolated between P 1 and P 2 , ie, brightness (gray scale level) and, optionally, color. The assigned field element of the Z-buffer is likewise set to the interpolated depth between z 1 and z 2 . The interpolation weights depend on the distance of the selected pixel P 0 from P 1 and P 2 in plane E.

Wenn die Differenz der Tiefen zu groß ist, d. h. die Bedingung | z 2 z 1 | < z crit

Figure DE102018101935A1_0002
zutrifft, wird angenommen, dass P1 und P2 auf verschiedenen Ebenen liegen. Das ausgewählte Pixel P0 wird dann mit dem Wert, d. h. der Helligkeit, und, gegebenenfalls der Farbe, von zum Beispiel dem entfernteren Pixel P1 oder P2 und dem zugewiesenen Feldelement des Z-Puffers mit der größeren Tiefe z1 oder z2 gefüllt. In einer anderen Ausführungsform werden der Wert und die Tiefe von Pixel P1 oder P2, die eine größere Tiefe z1 oder z2 aufweisen, an das andere Pixel übertragen oder dem anderen Pixel zugewiesen. Im Falle von mehr als zwei benachbarten Pixeln P1, P2 kann der Mittelwert der Mehrheit, d. h. der benachbarten Pixel P1, P2, die sich auf derselben Oberfläche befinden, übertragen werden.If the difference of the depths is too large, ie the condition | z 2 - z 1 | < z crit
Figure DE102018101935A1_0002
is true, it is assumed that P 1 and P 2 are at different levels. The selected pixel P 0 is then filled with the value, ie the brightness, and, optionally, the color of, for example, the more distant pixel P 1 or P 2 and the assigned field element of the Z-buffer with the greater depth z 1 or z 2 , In another embodiment, the value and depth of pixels P 1 or P 2 having a greater depth z 1 or z 2 are transmitted to the other pixel or assigned to the other pixel. In the case of more than two adjacent pixels P 1 , P 2 , the mean value of the majority, ie of the adjacent pixels P 1 , P 2 , which are located on the same surface, can be transmitted.

Ausgewählte Pixel P0, die bereits mit Werten der Messpunkte gefüllt wurden, werden durch die Interpolation der Werte der benachbarten Pixel P1 und P2 überschrieben. In einer anderen Ausführungsform bleibt ein ausgewähltes Pixel P0, das bereits gefüllt ist, unverändert, wenn |z0 - z1| kleiner ist als ein Schwellenwert, d. h. wenn P0 und P1 bereits zu derselben Oberfläche gehören.Selected pixels P 0 which have already been filled with values of the measuring points are overwritten by the interpolation of the values of the adjacent pixels P 1 and P 2 . In another embodiment, a selected pixel P 0 that is already filled remains unchanged when | z 0 -z 1 | is smaller than a threshold, ie if P 0 and P 1 already belong to the same surface.

Wenn die Pixel P beim Finden der Pixel P1 und P2 übersprungen wurden, weil sie nicht gefüllt wurden oder weil ihre Tiefe z zu groß war, sind ihre benachbarten Pixel P1, P2 dieselben wie bei dem ausgewählten Pixel P0, sodass die übersprungenen Pixel PF und die zugewiesenen Feldelemente des Z-Puffers, im Rahmens der parallel erfolgenden Auswahl, gleichermaßen gefüllt werden, entweder mit einem Wert, der zwischen den Pixeln P1 und P2 und/oder den Tiefen z1 und z2 interpoliert wird (abhängig von der Distanz des ausgewählten Pixels P0 von P1 und P2 in Ebene E) oder mit dem Wert und/oder den Tiefen z1 oder z2 des entfernteren unter den Pixeln P1 oder P2 (oder dem Mittelwert der Mehrheit), wie in 7 dargestellt.If the pixels P were skipped in finding the pixels P 1 and P 2 because they were not filled or because their depth z was too large, their neighboring pixels P 1 , P 2 are the same as the selected pixel P 0 , so that skipped pixels P F and the assigned field elements of the Z-buffer, in the frame of parallel selection, are equally filled, either with a value interpolated between the pixels P 1 and P 2 and / or the depths z 1 and z 2 (depending on the distance of the selected pixel P 0 from P 1 and P 2 in plane E) or with the value and / or the depths z 1 or z 2 of the farther among the pixels P 1 or P 2 (or the mean of the majority ), as in 7 shown.

Aufgrund der parallel erfolgenden Auswahl führt das Füllen mit dem Wert und/oder der Tiefe z1 oder z2 des entfernteren der Pixel P1 oder P2 wegen einer zu großen Differenz der Tiefen dazu, dass das benachbarte Pixel P1 oder P2 einen Rand bildet. Auch wenn kein benachbartes Pixel P1 oder P2 gefunden wird, dessen Tiefe z1 oder z2 kleiner ist als die Tiefe z0 des ausgewählten Pixels P0, wird, da das ausgewählte Pixel P0 an der Seite des Bildschirms 34 liegt, ein Rand erzeugt, da diese ausgewählten Pixel P0 an dem Rand dann nicht gefüllt sind.Due to the parallel selection, filling with the value and / or the depth z 1 or z 2 of the farther of the pixels P 1 or P 2 causes the adjacent pixel P 1 or P 2 an edge due to a large difference in depths forms. Even if no adjacent pixel P 1 or P 2 is found whose depth z 1 or z 2 is smaller than the depth z 0 of the selected pixel P 0 , since the selected pixel P 0 is at the side of the screen 34 an edge is created because these selected pixels P 0 are then not filled at the edge.

Sobald die Pixel entlang einer horizontalen Reihe gefüllt sind, kann derselbe Prozess genutzt werden, um die vertikalen Lücken zwischen den Messpunkten P3, P4 auf ähnliche Weise wie der für das horizontale Lückenfüllen beschriebenen zu füllen. Wie nachstehend ausführlicher erläutert wird, kann der Lückenfüllprozess iterativ durchgeführt werden, bis das Bild erzeugt ist.Once the pixels are filled along a horizontal row, the same process can be used to fill the vertical gaps between the measuring points P 3 , P 4 in a manner similar to that described for horizontal gap filling. As will be explained in more detail below, the gap fill process may be performed iteratively until the image is created.

Das Lückenfüllen kann in der Steuer- und Auswerteeinrichtung 22 oder mithilfe von auf einem externen Computer laufender Software durchgeführt werden. Aufgrund der Zeitersparnis durch die parallele Auswahl kann das auf Hardware basierte Lückenfüllen auf der Grafikkarte 32 zusammen mit der Programmierschnittstelle der Letzteren genutzt werden.The gap filling can in the control and evaluation 22 or by running software running on an external computer. Due to the time saved by the parallel selection, the hardware-based gap filling on the graphics card 32 used together with the programming interface of the latter.

Mit Bezug auf 8 wird eine Ausführungsform eines Verfahrens 100 zum Aufnehmen von Messpunkten und Anzeigen der Punktwolke mittels Lückenfüllen von Pixeln dargestellt. Das Verfahren 100 beginnt in Block 102, wo das Objekt O mit einem Messgerät, zum Beispiel, jedoch nicht darauf beschränkt, einem Laser, abgetastet wird. Man wird verstehen, dass das abgetastete Objekt O mehrere Objekte, zum Beispiel die Innenräume und Flure eines Gebäudes umfassen kann. Der Schritt des Abtastens des Objekts O führt zur Erzeugung einer Punktwolke, die die gemessenen Punkte X auf den Oberflächen des Objekts O darstellt.Regarding 8th is an embodiment of a method 100 for capturing measurement points and displaying the point cloud by filling gaps of pixels. The procedure 100 starts in block 102 where the object O is scanned with a measuring device, for example, but not limited to, a laser. It will be understood that the scanned object O may comprise several objects, for example the interiors and corridors of a building. The step of scanning the object O results in the generation of a point cloud representing the measured points X on the surfaces of the object O.

Das Verfahren 100 schreitet dann zu Block 104 fort, in dem bestimmt wird, welche der gemessenen Punkte X auf der Anzeigeeinrichtung 30 sichtbar sind. Wie hierin oben erläutert, wird die dreidimensionale Punktwolke auf den zweidimensionalen Bildschirm 34 der Anzeigeeinrichtung 30 projiziert, um es dem Benutzer zu ermöglichen, sich die Punktwolke anzusehen. Das Verfahren schreitet dann zu Block 106 fort, in dem die Pixel lückengefüllt werden, um das visuelle Erscheinungsbild der Oberflächen in der Anzeigeeinrichtung 30 bereitzustellen. In einer Ausführungsform umfasst der Schritt des Lückenfüllens in Block 106 eine horizontale Suche nach links eines einen Messpunkt enthaltenden Pixels in Block 108 und dann eine Suche nach rechts des Pixels in Block 110. Der Schritt des Lückenfüllens in Block 106 umfasst ferner die Schritte einer vertikalen Suche über (z. B. in Richtung Oberseite der Anzeigeeinrichtung 34) dem Pixel, das den gemessenen Punkt in Block 112 enthält, und dann eine Suche unter dem Pixel in Block 114. In einer Ausführungsform, in der die vertikale Suche der Blöcke 112, 114 der horizontalen Suche der Blöcke 108, 110 folgt, wird man jedoch verstehen, dass dies zu Beispielzwecken erfolgt und die Ansprüche nicht darauf zu begrenzen sind. In anderen Ausführungsformen geht die vertikale Suche der horizontalen Suche voraus. In einer Ausführungsform wird die vertikale nach der horizontalen Suche durchgeführt. In einer anderen Ausführungsform werden die horizontale und die vertikale Suche gleichzeitig in beide Richtungen durchgeführt.The procedure 100 then walk to block 104 in which it is determined which of the measured points X on the display device 30 are visible. As explained hereinabove, the three-dimensional point cloud will become the two-dimensional screen 34 of the display 30 projected to allow the user to view the point cloud. The process then proceeds to block 106 in which the pixels are gap-filled to enhance the visual appearance of the surfaces in the display 30 provide. In one embodiment, the step of filling gaps in block 106 a horizontal search to the left of a pixel containing a measurement point in block 108 and then a search to the right of the pixel in block 110 , The step of filling gaps in block 106 further comprises the steps of a vertical search over (eg, towards the top of the display 34 ) the pixel that blocks the measured point 112 contains, and then a search under the pixel in block 114 , In one embodiment, in which the vertical search of the blocks 112 . 114 the horizontal search of the blocks 108 . 110 However, it will be understood that this is done for exemplary purposes and the claims are not to be limited thereto. In other embodiments, the vertical search is preceded by the horizontal search. In one embodiment, the vertical is performed after the horizontal search. In another embodiment, the horizontal and vertical searches are performed simultaneously in both directions.

Die Lückenfüllschritte können für alle einen gemessenen Punkt enthaltenden Pixel durchgeführt werden, die auf der Anzeigeeinrichtung angezeigt werden. In einer Ausführungsform sind die Pixelfüllschritte dieselben wie jene, die hierin oben mit Bezug auf 4 - 7 beschrieben wurden. Sobald das Lückenfüllen durchgeführt ist, schreitet das Verfahren 100 dann zum Abfrageblock 116 fort, in dem bestimmt wird, ob alle Pixel für das Lückenfüllen ausgewertet wurden. Wie nachstehend ausführlicher erläutert wird, können in einigen Fällen Lücken oder leere Pixel auftreten, in denen das Pixel nicht von einem Pixel, das einen gemessenen Punkt enthält, oder einem zuvor gefüllten Pixel begrenzt ist. Zum Lösen dieses Problems kann das Lückenfüllen von Block 106 ein iterativer Prozess sein. In einer Ausführungsform läuft der Prozess für eine feste Anzahl an Iterationen. In einer anderen Ausführungsform läuft der Prozess, bis eine Stoppbedingung erreicht ist. In einer Ausführungsform besteht die Stoppbedingung darin, dass keine zusätzlichen Pixel in der vorherigen Iteration gefüllt werden können.The gap filling steps may be performed for all pixels containing a measured point, which are displayed on the display device. In one embodiment, the pixel fill steps are the same as those described hereinabove with respect to FIG 4 - 7 have been described. As soon as the gap filling is performed, the process proceeds 100 then to the query block 116 in which it is determined whether all pixels have been evaluated for gap filling. As will be explained in more detail below, in some cases, gaps or empty pixels may occur in which the pixel is not bounded by a pixel containing a measured point or a previously filled pixel. To solve this problem, the gap filling block 106 be an iterative process. In one embodiment, the process runs for a fixed number of iterations. In another embodiment, the process continues until a stop condition is reached. In one embodiment, the stop condition is that no additional pixels can be filled in the previous iteration.

Wenn der Abfrageblock 116 mit Ja antwortet, was bedeutet, dass es nichtausgewertete Pixel gibt, kehrt das Verfahren zu Block 106 zurück. Wenn der Abfrageblock 116 mit Nein antwortet, schreitet das Verfahren 100 zu Block 118 fort, in dem das Bild auf der Anzeigeeinrichtung 30 angezeigt wird.If the query block 116 answering yes, which means that there are unexecuted pixels, returns the method to block 106 back. If the query block 116 with no answers, the procedure proceeds 100 to block 118 in which the image on the display device 30 is shown.

Mit Bezug auf 9 - 11 wird eine Ausführungsform eines Verfahrens 200 für die Lückenfüllschritte der Blöcke 108-110 angezeigt. Man wird verstehen, dass, während das Verfahren 200 mit Bezug auf das horizontale Lückenfüllen beschrieben wird, dies zu Beispielzwecken dient und die Schritte des Verfahrens 200 auch für das vertikale Lückenfüllen durchgeführt werden können.Regarding 9 - 11 is an embodiment of a method 200 for the gap filling steps of the blocks 108 - 110 displayed. One will understand that while the procedure 200 is described with reference to the horizontal gap filling, this is for illustrative purposes and the steps of the method 200 can also be performed for the vertical gap filling.

Das Verfahren 200 beginnt in Block 202, in dem ein Pixel P0 identifiziert wird. Das Pixel P0 ist ein Pixel, das ein Bild des gemessenen Punkts X enthält, der aus der dreidimensionalen Punktwolke auf die zweidimensionale Anzeigeeinrichtung 30 projiziert wird. Das Verfahren 200 schreitet dann zu Block 204 fort, in dem eine Suche nach Pixeln links von Pixel P0 durchgeführt wird. Wie hierin genutzt, zeigen die Begriffe „links“ und „rechts“ entgegengesetzte Seiten in der Reihe von Pixel P0 an, dies erfolgt der Klarheit halber und es wird keine vorgesehene Ausrichtung der Anzeigeeinrichtung 34 oder der Punktwolkendaten vorgesehen.The procedure 200 starts in block 202 in which a pixel P 0 is identified. The pixel P 0 is a pixel containing an image of the measured point X obtained from the three-dimensional point cloud on the two-dimensional display 30 is projected. The procedure 200 then walk to block 204 in which a search for pixels to the left of pixel P 0 is performed. As used herein, the terms "left" and "right" indicate opposite sides in the row of pixels P 0 , for the sake of clarity, and there will be no intended orientation of the display 34 or the point cloud data.

Das Verfahren 200 schreitet dann zu Abfrageblock 206 fort, in dem bestimmt wird, ob ein Pixel P1 innerhalb eines Radius R (7) gefunden wurde. In dem Ausführungsbeispiel ist der Radius R anfangs ein vom Benutzer definierter, vorbestimmter Wert, zum Beispiel fünf Pixel. Wenn der Abfrageblock 206 mit Nein (kein Pixel P1 gefunden) antwortet, schreitet das Verfahren 200 zu Block 208 fort und es wird kein Lückenfüllen durchgeführt. Wenn der Abfrageblock 206 mit Ja (ein Pixel P1 wurde gefunden) antwortet, schreitet das Verfahren zu Block 210 fort, in dem ein maximaler Suchradius an Pixeln bestimmt wird, in dem der Radius nichtproportional oder antiproportional zu einer Distanz d1 ist, in dem die Distanz d1 dieselbe ist wie z1 von 4. Die Suche wird im Pixelraum durchgeführt. Man wird verstehen, dass jedes Pixel eine andere Größe im 3D-Raum darstellen kann. Wenn sich zum Beispiel ein Strahl durch jedes Pixel vom Standpunkt in den Raum erstreckt, wird die Distanz zwischen den Strahlen mit der Distanz oder Tiefe vom Standpunkt zunehmen (perspektivische Projektion). In einer Ausführungsform reprojiziert die Suche die Pixel in den 3D-Raum und die Objekte innerhalb einer vorbestimmten Distanz.The procedure 200 then proceeds to query block 206 in which it is determined whether a pixel P 1 within a radius R ( 7 ) was found. In the embodiment, the radius R is initially a user-defined, predetermined value, for example five pixels. If the query block 206 with No (no pixel P 1 found) responds, the process proceeds 200 to block 208 away and no gap filling is performed. If the query block 206 with Yes (a pixel P 1 found), the process proceeds to block 210 in which a maximum search radius is determined on pixels in which the radius is non-proportional or anti-proportional to a distance d1 in which the distance d1 is the same as z1 of 4 , The search is performed in pixel space. It will be understood that each pixel can represent a different size in 3D space. For example, if a ray extends through each pixel from the viewpoint into space, the distance between the rays will increase with distance or depth from the viewpoint (perspective projection). In one embodiment, the search reprojects the pixels into the 3D space and the objects within a predetermined distance.

Das Verfahren 200 schreitet dann zu Abfrageblock 211 fort, in dem bestimmt wird, ob die Distanz (x0, y0), (x1,y1) zwischen den gemessenen Punkten der Pixel P0, P1 liegt. Wenn diese Distanz nicht innerhalb des in Block 210 bestimmten Radius liegt, antwortet der Abfrageblock 212 mit Nein und schreitet zu Block 214 fort, in dem das unmittelbar benachbarte Pixel P1 links von (x0, y0) im Abfrageblock 216 ausgewertet wird. Im Abfrageblock 216 wird bestimmt, ob das Pixel nicht leer ist und eine Tiefe von weniger als der Tiefe zum gemessenen Punkt X von P0 aufweist. Wenn der Abfrageblock 216 mit Nein antwortet, was bedeutet, dass das Pixel entweder leer ist oder eine Tiefe größer als des gemessenen Punkts von P0 aufweist, kehrt das Verfahren 200 zu Block 208 zurück. Wenn der Abfrageblock 216 mit Ja antwortet, schreitet das Verfahren 200 zu Block 218 fort, in dem die Werte von (x1, y1) und d1 auf dieses Pixel (z. B. Pixel P1) festgelegt werden. Sobald die Werte von Block 218 festgelegt sind, oder wenn der Abfrageblock 212 mit Ja antwortet, schreitet das Verfahren 200 zu Block 211 (10) fort.The procedure 200 then proceeds to query block 211 in which it is determined whether the distance (x0, y0), (x1, y1) lies between the measured points of the pixels P 0 , P 1 . If this distance is not within the block 210 certain radius, the query block responds 212 with no and walk to block 214 in which the immediately adjacent pixel P 1 to the left of (x0, y0) in the query block 216 is evaluated. In the query block 216 It is determined whether the pixel is not empty and has a depth less than the depth to the measured point X of P 0 . If the query block 216 with no answer, meaning that the pixel is either empty or has a depth greater than the measured point of P 0 , the method returns 200 to block 208 back. If the query block 216 yes, the procedure moves 200 to block 218 in which the values of (x1, y1) and d1 are set to this pixel (eg pixel P 1 ). Once the values of block 218 are fixed, or if the query block 212 yes, the procedure moves 200 to block 211 ( 10 ).

In Block 211 wird eine Suche nach den Pixeln rechts des Pixels P0 durchgeführt. Das Verfahren schreitet dann zu Abfrageblock 213 fort, in dem bestimmt wird, ob ein Pixel P2 innerhalb des Radius R (z. B. 5 Pixel) liegt. Wenn der Abfrageblock 213 mit Nein (kein Pixel P1 gefunden) antwortet, schreitet das Verfahren 200 zu Block 208 fort und es wird kein Lückenfüllen durchgeführt. Wenn der Abfrageblock 213 mit Ja antwortet, wird ein maximaler Suchradius in Block 215 bestimmt, der nichtproportional oder antiproportional zu der Distanz d2 ist, wobei die Distanz d2 zu der Distanz z2 von 4 äquivalent ist. Das Verfahren 200 schreitet dann zu Abfrageblock 217 fort, in dem bestimmt wird, ob die Distanz (x0, y0), (x2,y2) innerhalb des in Block 215 bestimmten Radius liegt.In block 211 a search is made for the pixels to the right of the pixel P 0 . The method then proceeds to query block 213 in which it is determined whether a pixel P2 is within the radius R (e.g., 5 pixels). If the query block 213 with no answer (no pixel P1 found), the procedure proceeds 200 to block 208 away and no gap filling is performed. If the query block 213 with Yes, a maximum search radius will be in block 215 which is non-proportional or anti-proportional to the distance d2, the distance d2 being equal to the distance z2 of 4 is equivalent. The procedure 200 then proceeds to query block 217 in which it is determined whether the distance (x0, y0), (x2, y2) within the in block 215 certain radius is.

Wenn der Abfrageblock 217 mit Nein antwortet, schreitet das Verfahren 200 zu Block 219 fort, in dem das unmittelbar benachbarte Pixel rechts von (x0, y0) ausgewertet wird. Dies sorgt für ein gleichmäßigeres Lückenfüllen, selbst wenn die Suchkriterien nicht erfüllt sind. In einer Ausführungsform werden für unmittelbar benachbarte Pixel die 3D-Kriterien ignoriert, es sei denn, es werden bessere Pixel identifiziert. Im Abfrageblock 221 wird bestimmt, ob das Pixel nichtleer ist und eine Tiefe von weniger als der Tiefe zum gemessenen Punkt X von P0 aufweist. Wenn der Abfrageblock 221 mit Nein antwortet, was bedeutet, dass das Pixel entweder leer ist oder eine Tiefe größer als der gemessene Punkt von P0 aufweist, kehrt das Verfahren 200 zu Block 208 zurück und es wird kein Lückenfüllen durchgeführt. Wenn der Abfrageblock 221 mit Ja antwortet, schreitet das Verfahren 200 zu Block 222 fort, in dem die Werte von (x2, y2) und d2 auf dieses Pixel (z. B. Pixel P2) festgelegt werden. Sobald die Werte von Block 222 festgelegt sind, oder wenn der Abfrageblock 217 mit Ja antwortet, schreitet das Verfahren 200 zu Block 224 (11) fort.If the query block 217 with no answers, the procedure proceeds 200 to block 219 in which the immediately adjacent pixel to the right of (x0, y0) is evaluated. This provides more even gap filling, even if the search criteria are not met. In one embodiment, for immediately adjacent pixels, the 3D criteria are ignored unless they become better pixels identified. In the query block 221 It is determined whether the pixel is not empty and has a depth less than the depth to the measured point X of P 0 . If the query block 221 with no answer, meaning that the pixel is either empty or has a depth greater than the measured point of P 0 , the method returns 200 to block 208 back and no gap filling is performed. If the query block 221 yes, the procedure moves 200 to block 222 in which the values of (x2, y2) and d2 are set to this pixel (eg pixel P 2 ). Once the values of block 222 are fixed, or if the query block 217 yes, the procedure moves 200 to block 224 ( 11 ).

Im Abfrageblock 224 wird bestimmt, ob die Differenz zwischen den Distanzen d0 und d1 (z. B. die Distanz vom Standpunkt V zu den gemessenen Punkten x0 und x1 von 6) größer ist als ein Schwellenwert (z. B. Zcrit). In einer Ausführungsform beträgt der Schwellenwert 2,5 Zentimeter. Wenn der Abfrageblock 224 mit Nein antwortet, was anzeigt, dass die gemessenen Punkte bereits auf derselben Ebene liegen, schreitet das Verfahren 200 zu Block 208 fort und es wird kein Lückenfüllen durchgeführt. Wenn der Abfrageblock 224 mit Ja antwortet, schreitet das Verfahren 200 zu Abfrageblock 226 fort, in dem bestimmt wird, ob die Differenz zwischen den Distanzen d1 und d2 (z. B. die Distanz vom Standpunkt V zu den gemessenen Punkten x1 und x2 von 6) kleiner ist als ein Schwellenwert. In einer Ausführungsform beträgt der Schwellenwert von Block 226 10 Zentimeter.In the query block 224 It is determined whether the difference between the distances d0 and d1 (for example, the distance from the viewpoint V to the measured points x0 and x1 of 6 ) is greater than a threshold (eg, Z crit ). In one embodiment, the threshold is 2.5 centimeters. If the query block 224 with No answers, indicating that the measured points are already at the same level, the procedure proceeds 200 to block 208 away and no gap filling is performed. If the query block 224 yes, the procedure moves 200 to query block 226 in which it is determined whether the difference between the distances d1 and d2 (for example, the distance from the viewpoint V to the measured points x1 and x2 of FIG 6 ) is less than a threshold. In one embodiment, the threshold is Block 226 10 Centimeter.

Wenn der Abfrageblock 226 mit Ja antwortet, was bedeutet, dass die Differenz in den Tiefen geringer ist als der Schwellenwert und dass die Punkte auf derselben Ebene liegen, schreitet das Verfahren 200 zu Block 228 fort, in dem die Tiefe und die Farbe der Pixel P1 und P2 in das dazwischenliegende oder das intervenierende Pixel interpoliert oder diesem zugewiesen werden. In einer Ausführungsform wird die Tiefen- und Farbinterpolation mit Gewichten (1/r1 2) und (1/r2 2) gewichtet, worin r1 die Distanz in Pixeleinheiten von P1 bis P0 ist, und r2 die Distanz in Pixeleinheiten von P2 bis P0 ist.If the query block 226 answer Yes, which means that the difference in depths is less than the threshold, and that the points are at the same level, the procedure proceeds 200 to block 228 in which the depth and color of pixels P1 and P2 are interpolated or assigned to the intervening or intervening pixel. In one embodiment, the depth and color interpolation is weighted by weights (1 / r 1 2 ) and (1 / r 2 2 ), where r 1 is the distance in pixel units from P1 to P0, and r 2 is the distance in pixel units of P2 until P0 is.

Wenn der Abfrageblock 226 mit Nein antwortet, schreitet das Verfahren 200 zu Block 230 fort, in dem das Bild auf der Anzeigeeinrichtung 30 angezeigt wird. Wenn der Abfrageblock 230 mit Ja antwortet, werden die Farb- und Tiefenwerte des Pixels P2 zum Lückenfüllen der leeren Pixel zwischen den Pixeln P1 und P2 genutzt. Wenn der Abfrageblock 230 mit Nein antwortet, werden die Farb- und Tiefenwerte des Pixels P1 zum Lückenfüllen der leeren Pixel zwischen den Pixeln P1 und P2 genutzt. Der Zweck von Block 230 liegt darin, das Erweitern von Objekten durch zusätzliche Pixel an ihren Rändern zu vermeiden.If the query block 226 with no answers, the procedure proceeds 200 to block 230 in which the image on the display device 30 is shown. If the query block 230 with Yes, the color and depth values of pixel P 2 are used to fill the empty pixels between pixels P 1 and P 2 . If the query block 230 responds with No, the color and depth values of the pixel P 1 are used to fill the empty pixels between the pixels P 1 and P 2 . The purpose of Block 230 is to avoid expanding objects by adding extra pixels around their edges.

Man wird verstehen, dass das Verfahren 200 auch für das vertikale Lückenfüllen wiederholt werden kann.One will understand that the procedure 200 can also be repeated for the vertical gap filling.

Mit Bezug auf 12 - 16 wird ein Beispiel des Iterationsschritts für das Lückenfüllen dargestellt, wie zum Beispiel durch den Abfrageblock 116 (8) bereitgestellt. 12 stellt das horizontale Lückenfüllen dar, das in der ersten Iteration auftritt, wobei die Blöcke mit dem „x“ Pixel kennzeichnen, das einen gemessenen Punkt enthält. Die Zahl „1‟ kennzeichnet leere Pixel, die in der ersten Iteration gefüllt werden, zum Beispiel durch das Verfahren 100. Sobald das horizontale Lückenfüllen abgeschlossen ist, wird das in 13 dargestellte vertikale Lückenfüllen durchgeführt. Die Zahl „2“ kennzeichnet die Pixel, die während der ersten Iteration durch vertikales Lückenfüllen gefüllt wurden. Es wird darauf hingewiesen, dass leere Pixel nur dann gefüllt werden, wenn sie auf entgegengesetzten Seiten durch entweder ein Pixel mit einem Messpunkt X oder durch ein zuvor gefülltes Pixel begrenzt sind, zum Beispiel wird Pixel 300 gefüllt, weil es von den Pixeln 302, 304 begrenzt ist. Es wird ferner darauf hingewiesen, dass sobald die erste Iteration abgeschlossen ist, es eine Anzahl von Pixeln gibt, wie Pixel 306, 308, die nicht für das Lückenfüllen ausgewertet wurden, weil mindestens eine Seite der Reihe, in der sich das Pixel befindet, zu Beginn der ersten Iteration des vertikalen Lückenfüllens nicht begrenzt war.Regarding 12 - 16 an example of the gap filling iteration step is shown, such as by the query block 116 ( 8th ) provided. 12 represents the horizontal gap filling that occurs in the first iteration, where the blocks indicate the "x" pixel that contains a measured point. The number "1" indicates empty pixels that are filled in the first iteration, for example, by the method 100 , Once the horizontal gap filling is complete, the in 13 shown vertical gap filling performed. The number "2" indicates the pixels filled by vertical gap filling during the first iteration. It should be noted that empty pixels are filled only if they are bounded on opposite sides by either a pixel with a measurement point X or by a previously filled pixel, for example pixels 300 filled because it's from the pixels 302 . 304 is limited. It is further noted that once the first iteration is completed, there are a number of pixels, such as pixels 306 . 308 which were not evaluated for gap filling because at least one side of the row in which the pixel is located was not bounded at the beginning of the first vertical gap fill iteration.

Mit Bezug auf 14 wird eine zweite Lückenfülliteration ausgelöst. Die zweite Iteration beginnt mit einem horizontalen Lückenfüllen. Bei dieser Iteration wird das Pixel 306 basierend auf Begrenzungs- oder Endpixeln 310, 312 ausgewertet und gefüllt. Die Zahl „3“ kennzeichnet die Pixel, die während der zweiten Iteration beim horizontalen vertikalen Lückenfüllen gefüllt wurden. Es wird darauf hingewiesen, dass in einer Ausführungsform die lückengefüllten Pixel eine verknüpfte Tiefe und Farbe aufweisen, die während der Blöcke 228, 232 oder 234 von 11 zugewiesen wurden. Diese zugewiesene Tiefe und die zugewiesene Farbe ermöglichen es, dass die Zwischenpixel ausgewertet und gefüllt werden können. Mit dem abgeschlossenen horizontalen Lückenfüllen der zweiten Iteration wird das vertikale Lückenfüllen der zweiten Iteration durchgeführt, wie in 15 dargestellt. Hier werden die zusätzlichen Pixel ausgewertet und gefüllt (wo zutreffend), basierend auf gefüllten Pixeln, die jene Pixel umfassen, die während des horizontalen Lückenfüllens der zweiten Iteration gefüllt wurden. Zum Beispiel wird Pixel 308 basierend auf den Endpixeln 306 (beim horizontalen Lückenfüllen der zweiten Iteration gefüllt) und Pixel 312 (beim Lückenfüllen der ersten Iteration gefüllt) ausgewertet und gefüllt.Regarding 14 a second gap filling is triggered. The second iteration begins with a horizontal gap filling. This iteration becomes the pixel 306 based on boundary or end pixels 310 . 312 evaluated and filled. The number "3" indicates the pixels that were filled during the second vertical gap fill iteration. It should be understood that in one embodiment, the gap-filled pixels have associated depth and color during the blocks 228 . 232 or 234 from 11 have been assigned. This assigned depth and assigned color allow the intermediate pixels to be evaluated and filled. With the completed horizontal gap filling of the second iteration, the vertical gap filling of the second iteration is performed as in 15 shown. Here, the additional pixels are evaluated and filled (where applicable) based on filled pixels that include those pixels that were filled during the horizontal gap filling of the second iteration. For example, pixels 308 based on the final pixels 306 (filled in the horizontal gap filling the second iteration) and pixels 312 (filled in filling the first iteration) evaluated and filled.

In der dargestellten Ausführungsform bleiben, wenn das vertikale Lückenfüllen der ersten Iteration abgeschlossen ist, keine nichtausgewerteten begrenzten Pixel übrig. Deshalb würde der Abfrageblock 116 mit Nein antworten und das Verfahren mit dem Anzeigen des Bildes auf der Anzeigeeinrichtung 34 fortschreiten. Man wird verstehen, dass in anderen Ausführungsformen mehr oder weniger Iterationen durchgeführt werden können.In the illustrated embodiment, when the vertical gap filling of the first iteration is completed, no unexecuted limited pixels remain. Therefore, the query block would 116 respond with no and the method with displaying the image on the display device 34 progress. It will be appreciated that in other embodiments, more or fewer iterations may be performed.

Man wird verstehen, dass, während die Ausführungsformen hierin die Erzeugung einer grafischen Darstellung durch einen Lückenfüllprozess in Bezug auf von einer Laserabtastvorrichtung erfassten Daten beschreibt, dies zu Beispielzwecken dient und die Ansprüche nicht derart zu begrenzen sind. In anderen Ausführungsformen kann die grafische Darstellung mithilfe von Punktwolkendaten erzeugt werden, die von einem beliebigen Messgerät, wie zum Beispiel einer triangulationsartigen Laserscannereinrichtung, einer triangulationsartige Strukturlichtscannereinrichtung oder einer Time-of-Flight-basierten Scannereinrichtung erzeugt wurden.It will be understood that while the embodiments herein describe the generation of a graphical representation by a gap filling process with respect to data acquired by a laser scanning device, this is for exemplary purposes and the claims are not so limited. In other embodiments, the graphical representation may be generated using point cloud data generated by any measurement device, such as a triangulation-type laser scanner device, a triangulation type structured light scanner device, or a time-of-flight based scanner device.

Claims (10)

Verfahren zum optischen Abtasten, Vermessen und Anzeigen einer Punktwolke, wobei das Verfahren umfasst: Senden eines Sendelichtstrahls durch einen Lichtsender eines Laserscanners; Empfangen eines Reflexionslichtstrahls durch einen Lichtempfänger, wobei ein Reflexionslichtstrahl des Sendelichtstrahls von einem Objekt reflektiert wird; Bestimmen von mindestens der Distanz von dem Objekt zu einem Zentrum des Laserscanners, durch eine Steuer- und Auswerteeinrichtung für Messpunkte, die entsprechend eines Bildschirms auf einer Anzeigeeinrichtung auf eine Ebene projiziert wurden, wobei mindestens einige Messpunkte auf der Anzeigeeinrichtung angezeigt werden; Bestimmen, welche Punkte auf der Anzeigeeinrichtung sichtbar sind, basierend zumindest auf einem Standpunkt der Anzeigeeinrichtung; und Lückenfüllen von einem oder mehreren Pixeln, um ein visuelles Erscheinungsbild einer Oberfläche auf der Anzeigeeinrichtung zu erzeugen, wobei das Lückenfüllen eine erste horizontale Suche in einer ersten Richtung eines ersten gemessenen Punkts der Messpunkte, gefolgt von einer zweiten horizontalen Suche in einer zweiten Richtung des ersten gemessenen Punkts, umfasst, wobei die zweite Richtung der ersten Richtung entgegengesetzt ist, und wobei das Lückenfüllen ferner eine erste vertikale Suche in einer dritten Richtung des gemessenen Punkts umfasst, wobei die dritte Richtung senkrecht zu der ersten Richtung ist, gefolgt von einer zweiten vertikalen Suche in einer vierten Richtung, wobei die vierte Richtung der dritten Richtung entgegengesetzt ist.A method of optically scanning, measuring and displaying a point cloud, the method comprising: Transmitting a transmitted light beam through a light emitter of a laser scanner; Receiving a reflected light beam by a light receiver, wherein a reflected light beam of the transmitted light beam is reflected by an object; Determining at least the distance from the object to a center of the laser scanner by a control and evaluation device for measuring points projected on a display according to a screen on a display, at least some measuring points being displayed on the display; Determining which points are visible on the display device based at least on a viewpoint of the display device; and Gap filling one or more pixels to create a visual appearance of a surface on the display device, wherein the gap filling comprises a first horizontal search in a first direction of a first measured point of the measurement points followed by a second horizontal search in a second direction of the first measured one Point, wherein the second direction is opposite to the first direction, and wherein the gap filling further comprises a first vertical search in a third direction of the measured point, the third direction being perpendicular to the first direction followed by a second vertical search in a fourth direction, wherein the fourth direction is opposite to the third direction. Verfahren nach Anspruch 1, das ferner umfasst: Bestimmen, ob zusätzliche Pixel in einem horizontalen oder vertikalen Lückenfüllschritt gefüllt werden könnten; und Wiederholen des Lückenfüllens von einem oder mehreren Pixeln, bis bestimmt wurde, das keine zusätzlichen Pixel gefüllt werden können.Method according to Claim 1 method further comprising: determining whether additional pixels could be filled in a horizontal or vertical gap filling step; and repeating the gapping of one or more pixels until it has been determined that no additional pixels can be filled. Verfahren nach Anspruch 2, das ferner das Anzeigen eines Bildes, das die Oberfläche auf der Anzeige aufweist, umfasst.Method according to Claim 2 further comprising displaying an image having the surface on the display. Verfahren nach Anspruch 1, wobei die erste horizontale Suche ferner umfasst: Identifizieren eines ersten Pixels, das entweder leer ist oder dem ersten gemessenen Punkt entspricht; Bestimmen, wann sich ein zweites Pixel, das sich in der ersten Richtung befindet, in einem vorbestimmten Radius befindet; Bestimmen eines adaptiven maximalen Suchradius, der zu einer ersten Distanz zu dem ersten gemessenen Punkt antiproportional ist; Bestimmen, ob sich das zweite Pixel in dem adaptiven maximalen Suchradius befindet; und Bestimmen einer zweiten Distanz des zweiten Pixels.Method according to Claim 1 wherein the first horizontal search further comprises: identifying a first pixel that is either empty or corresponds to the first measured point; Determining when a second pixel located in the first direction is at a predetermined radius; Determining an adaptive maximum search radius that is anti-proportional to a first distance to the first measured point; Determining if the second pixel is in the adaptive maximum search radius; and determining a second distance of the second pixel. Verfahren nach Anspruch 4, wobei die zweite horizontale Suche ferner umfasst: Identifizieren, dass sich ein drittes Pixel in dem vorbestimmten Radius befindet; Bestimmen, ob sich das dritte Pixel in dem adaptiven maximalen Suchradius befindet; und Bestimmen einer dritten Distanz des dritten Pixels.Method according to Claim 4 wherein the second horizontal search further comprises: identifying that a third pixel is in the predetermined radius; Determining if the third pixel is in the adaptive maximum search radius; and determining a third distance of the third pixel. Verfahren nach Anspruch 5, wobei das Lückenfüllen ferner umfasst: Bestimmen, dass die Differenz zwischen der ersten Distanz und der zweiten Distanz geringer ist als ein Schwellenwert; Bestimmen, dass die Differenz zwischen der zweiten Distanz und der dritten Distanz geringer ist als ein Schwellenwert; und dem ersten Pixel Zuweisen einer Tiefe und einer Farbe durch Interpolieren von Tiefe und Farbe des zweiten Pixels und des dritten Pixels.Method according to Claim 5 wherein the gap filling further comprises: determining that the difference between the first distance and the second distance is less than a threshold; Determining that the difference between the second distance and the third distance is less than a threshold; and the first pixel assigning a depth and a color by interpolating depth and color of the second pixel and the third pixel. Verfahren nach Anspruch 6, wobei die Interpolation gewichtet ist.Method according to Claim 6 , where the interpolation is weighted. Verfahren nach Anspruch 7, wobei die Gewichtung 1/r1 2 und 1/r2 2 ist, worin r1 die Distanz in Pixeleinheiten von dem zweiten zu dem ersten Pixel ist, und r2 die Distanz in Pixeleinheiten von dem dritten zu dem ersten Pixel ist.Method according to Claim 7 , wherein the weight is 1 / r 1 2 and 1 / r 2 2 , where r 1 is the distance in pixel units from the second to the first pixel, and r 2 is the distance in pixel units from the third to the first pixel. Verfahren nach Anspruch 5, wobei das Lückenfüllen ferner umfasst: Bestimmen, dass die Differenz zwischen der ersten Distanz und der zweiten Distanz geringer ist als ein Schwellenwert; Bestimmen, dass die Differenz zwischen der zweiten Distanz und der dritten Distanz größer ist als ein Schwellenwert; Bestimmen, dass die dritte Distanz größer ist als die zweite Distanz; und dem ersten Pixel Zuweisen der Tiefe und der Farbe des dritten Pixels.Method according to Claim 5 wherein the gap filling further comprises: Determining that the difference between the first distance and the second distance is less than a threshold; Determining that the difference between the second distance and the third distance is greater than a threshold; Determining that the third distance is greater than the second distance; and the first pixel, assigning the depth and the color of the third pixel. Verfahren nach Anspruch 5, wobei das Lückenfüllen ferner umfasst: Bestimmen, dass die Differenz zwischen der ersten Distanz und der zweiten Distanz geringer ist als ein Schwellenwert; Bestimmen, dass die Differenz zwischen der zweiten Distanz und der dritten Distanz größer ist als ein Schwellenwert; Bestimmen, dass die dritte Distanz geringer ist als die zweite Distanz; und dem ersten Pixel Zuweisen der Tiefe und der Farbe des zweiten Pixels.Method according to Claim 5 wherein the gap filling further comprises: determining that the difference between the first distance and the second distance is less than a threshold; Determining that the difference between the second distance and the third distance is greater than a threshold; Determining that the third distance is less than the second distance; and the first pixel assigning the depth and the color of the second pixel.
DE102018101935.1A 2017-01-30 2018-01-29 Method for optically scanning and measuring an environment Pending DE102018101935A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/419,334 US9645240B1 (en) 2010-05-10 2017-01-30 Method for optically scanning and measuring an environment
US15/419,334 2017-01-30

Publications (1)

Publication Number Publication Date
DE102018101935A1 true DE102018101935A1 (en) 2018-08-02

Family

ID=61558274

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018101935.1A Pending DE102018101935A1 (en) 2017-01-30 2018-01-29 Method for optically scanning and measuring an environment

Country Status (2)

Country Link
DE (1) DE102018101935A1 (en)
GB (1) GB2563307A (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005295442A (en) * 2004-04-05 2005-10-20 Hitachi Kokusai Electric Inc Image pickup device and image pickup method
DE102010020925B4 (en) * 2010-05-10 2014-02-27 Faro Technologies, Inc. Method for optically scanning and measuring an environment
DE102013110580B4 (en) * 2013-09-24 2024-05-23 Faro Technologies, Inc. Method for optically scanning and measuring a scene and laser scanner designed to carry out the method

Also Published As

Publication number Publication date
GB201801297D0 (en) 2018-03-14
GB2563307A (en) 2018-12-12

Similar Documents

Publication Publication Date Title
DE102010020925B4 (en) Method for optically scanning and measuring an environment
DE102013017500B3 (en) Method and apparatus for optically scanning and measuring a scene
DE102020206759A1 (en) Method and processing system for updating a first image generated by a first camera based on a second image generated by a second camera
DE102014104712B4 (en) Registration of a scene disintegrating into clusters with visualized clusters
DE102014101587B4 (en) Registration of a scene with consistency check
DE60207655T2 (en) Device for displaying the environment of a vehicle and system for providing images
EP3396409B1 (en) Method for calibrating a camera and a laser scanner
US9835726B2 (en) Method for optically scanning and measuring an environment
DE112007003553B4 (en) Feature detection apparatus and method for measuring object distances
DE102009015921A1 (en) Method for optically scanning and measuring an environment
DE112011105371T5 (en) Apparatus for synthesizing three-dimensional images for visualizing the vehicle environment and associated method
DE10058244A1 (en) Measuring method for determining the position of an object in front of a screen and device for carrying out the method
KR102415767B1 (en) Color image generating device by feature height and color image generating program by feature height
EP2753896A2 (en) Method for capturing images of a preferably structured surface of an object and device for image capture
DE4113992A1 (en) Automatic three=dimensional monitoring of hazardous room - using three cameras calibrated to universal standard to relate points in room to those of screen display
DE102014116904B4 (en) Method for optically scanning and measuring a scene and automatically generating a video
DE102018101935A1 (en) Method for optically scanning and measuring an environment
WO2012052244A2 (en) Detection and display of textured three-dimensional geometries
DE102014104713A1 (en) Register a clustered scene with pairs of scans
DE102015106836A1 (en) Method for controlling a 3D measuring device by means of instantaneous movement and device for this purpose
EP4118628A2 (en) Method and device for precisely selecting a spatial coordinate by means of a digital image
EP3739291A1 (en) Fully automatic position and orientation detection method for terrestrial laser scanner
DE112021001094T5 (en) INFORMATION PROCESSING DEVICE, INFORMATION PROCESSING METHOD AND COMPUTER PROGRAM
DE102022204515A1 (en) Method for determining groups of points that are visible or not visible from a given viewpoint