Three-dimensional scanner with data collection feedback
The integration of real-time data feedback and cooling mechanisms in 3D scanners addresses inefficiencies in data collection, enabling efficient and portable scanning with reduced memory and heat issues.
Patent Information
- Application Number
- JP2024161103
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2018-09-19
- Filing Date
- 2024-09-18
- Publication Date
- 2024-12-17
- Estimated Expiration
- 2039-08-29
AI Technical Summary
Current 3D scanners lack real-time feedback on data quality and quantity during scanning, leading to inefficient data collection and excessive use of memory and heat generation, which hinders the development of truly portable and handheld devices.
A 3D scanner with integrated display and feedback mechanisms that provide real-time visualization of data quality and quantity, allowing users to adjust scanning based on displayed feedback, and a cooling manifold to manage heat and reduce device size.
Enhances data collection efficiency, reduces memory usage, and enables the creation of smaller, self-contained handheld scanners capable of providing immediate feedback on data sufficiency, thus improving user satisfaction and scanning accuracy.
Smart Images

Figure 2024175075000001_ABST
Abstract
Description
[Technical field]
[0001] The present invention relates generally to three-dimensional scanners, and more particularly to three-dimensional scanners with data collection feedback. [Background technology]
[0002] A three-dimensional (3D) scanner is a device that creates a 3D model of the surface of a physical object. 3D scanners have applications across many fields, including industrial design and manufacturing, computerized animation, science, education, medicine, art, design, and others. Summary of the Invention
[0003] In some situations, it is beneficial for the 3D scanner to be handheld. For example, handheld 3D scanners have the potential to revolutionize archaeological fieldwork. Consider the task of studying the structure of a fragile archaeological specimen found in a remote and unreachable part of the world. Without a handheld 3D scanner, the specimen would need to be excavated in the field, packaged, transported across rough terrain areas, and studied in a laboratory. This process is laborious, time consuming, and runs the risk of damaging the specimen. With a handheld 3D scanner, the shape of the object can be scanned in the field, which reduces or eliminates these problems.
[0004] Archaeology is just one example. There are many other aspects where it is beneficial to be able to capture 3D models of objects without being in a laboratory or industrial environment. As another example, it is traditional to commission an official bust of each US President. Previous presidents have had their busts taken using plaster, which required the president to breathe through a straw in his nostrils while a thin layer of plaster dried on his face. In contrast, data capture for Barack Obama's bust was completed within minutes using a pair of 3D scanners.
[0005] However, some problems still exist. For example, one problem with 3D scanners is that it is difficult for a user to know in real time whether he or she has collected enough data to obtain a good quality 3D reconstruction. A user may return to a laboratory, which may be thousands of kilometers (thousands of miles) from, for example, an archaeological environment, only to realize that there are gaps in the data and that a complete 3D model of the surface cannot be reconstructed. As a result, training a user to properly use a 3D scanner often requires a significant amount of time, which limits the applicability of currently available 3D scanners.
[0006] The above deficiencies and other problems associated with 3D scanners are addressed by the disclosed devices and methods. In some embodiments, the device is a 3D scanner. In some embodiments, the device is a portable 3D scanner. In some embodiments, the device is a handheld 3D scanner. In some embodiments, the device has a display that provides feedback (e.g., while scanning an object) indicating the quality or quantity of data (e.g., 3D data) acquired. In some embodiments, the device has a touch-sensitive display (also known as a "touch screen" or "touch screen display"). In some embodiments, the device has a graphical user interface (GUI), one or more processors, memory, and a memory controller for performing a plurality of functions. and one or more modules, programs, or sets of instructions stored within a non-transitory computer-readable storage medium or other computer program product configured for execution by one or more processors.
[0007] According to some embodiments, a method is performed in a three-dimensional (3D) scanner in communication with a display. The 3D scanner includes one or more optical sensors. The method includes scanning an object having a surface using the one or more optical sensors, generating data corresponding to a 3D shape of at least a portion of the object's surface. The method further includes generating a 3D reconstruction of at least a portion of the shape of the object's surface using the data. The method further includes providing, on the display, a preview of the 3D reconstruction of at least a portion of the shape of the object's surface. The method further includes providing, on the display, a representation of at least one of a quantity or a quality of data corresponding to the 3D shape of at least a portion of the object's surface for rendering with the preview of the 3D reconstruction of at least a portion of the shape of the object's surface.
[0008] According to some embodiments, a three-dimensional (3D) scanner includes a housing, one or more lasers housed in the housing, one or more optical sensors housed in the housing, and one or more processors housed in the housing. The one or more processors are in communication with the one or more lasers and the one or more optical sensors. The 3D scanner further includes a memory storing instructions that, when executed by the one or more processors, cause the 3D scanner to generate data corresponding to a 3D shape of at least a portion of a surface of an object by repeatedly performing the operations of projecting structured light toward the surface of the object using the one or more lasers, and acquiring images of the surface of the object using the one or more optical sensors while projecting the structured light toward the surface of the object.
[0009] According to some embodiments, a three-dimensional (3D) scanner includes one or more light sources, one or more optical sensors, a plurality of processors in communication with the one or more light sources and the one or more optical sensors, and a memory. The memory stores instructions that, when executed by the plurality of processors, cause the 3D scanner to generate data corresponding to a 3D shape of at least a portion of a surface of an object by repeatedly performing the operations of projecting structured light toward the surface of the object using the one or more light sources, and acquiring an image of the surface of the object using the one or more optical sensors while projecting the structured light toward the surface of the object. The 3D scanner includes a cooling manifold comprising a single piece of metal thermally coupled to the one or more light sources, the one or more optical sensors, and the plurality of processors.
[0010] According to some embodiments, a method is performed in a 3D scanner including one or more optical sensors. The method includes scanning an object having a surface using one or more optical sensors. The scanning generates first data corresponding to a three-dimensional (3D) shape of the surface of the object. The method further includes determining, for each of a plurality of respective portions of the surface of the object, whether a quantity or quality of the first data satisfies a predefined threshold corresponding to a quantity or quality of data required to reconstruct a shape of the portion of the surface of the object to a predefined accuracy. After the determining, for each of a plurality of respective portions of the surface of the object, whether a quantity or quality of the first data satisfies a predefined threshold corresponding to a quantity or quality of data required to reconstruct a shape of the portion of the surface of the object to a predefined accuracy, the method further includes scanning the one or more optical sensors to generate first data corresponding to a three-dimensional (3D) shape of the surface of the object. The method further includes further scanning the object using the sensor, the further scanning generating second data corresponding to a three-dimensional shape of the surface of the object, the method further including discarding at least a portion of the second data, the discarded portion of the second data corresponding to each portion of the surface of the object for which the quantity or quality of the first data meets a predefined threshold.
[0011] According to some embodiments, the 3D scanner includes one or more light sources, one or more optical sensors, optionally a display, one or more processors, and a memory that stores one or more programs, the one or more programs configured to be executed by the one or more processors, the one or more programs including instructions for performing or causing the performance of any of the methods described herein. According to some embodiments, a computer readable storage medium stores therein instructions that, when executed by the 3D scanner with one or more light sources, one or more optical sensors, optionally a display, and one or more processors, cause the 3D scanner to perform or cause the performance of any of the methods described herein. According to some embodiments, a graphical user interface on the 3D scanner with one or more light sources, one or more optical sensors, optionally a display, one or more processors, and a memory that stores one or more programs includes one or more of the elements displayed in any of the methods described herein that are updated in response to an input as described in any of the methods described herein. According to some embodiments, an electronic device includes one or more light sources, one or more optical sensors, optionally a display, and means for performing or causing the performance of any of the operations of the methods described herein.
[0012] Thus, a 3D scanner is provided with improved methods and interfaces for data collection feedback during 3D scanning data acquisition, thereby increasing the effectiveness, efficiency, and user satisfaction with such devices. [Brief description of the drawings]
[0013] For a better understanding of the various described embodiments, reference should be made to the following description of the embodiments in connection with the following drawings, in which like reference numerals refer to corresponding parts throughout the drawings. [Figure 1A] FIG. 1 illustrates various views of a 3D scanner according to some embodiments. [Figure 1B] FIG. 1 illustrates various views of a 3D scanner according to some embodiments. [Diagram 2] 1 illustrates a flowchart of a method for analysing 3D data from a 3D scanner, performed while the 3D data is being acquired, according to some embodiments. [Diagram 3] FIG. 1 is a block diagram of a 3D scanner according to some embodiments. [Figure 4A] FIG. 14 illustrates an example user interface for providing 3D data collection feedback on a 3D scanner, according to some embodiments. [Figure 4B] FIG. 14 illustrates an example user interface for providing 3D data collection feedback on a 3D scanner, according to some embodiments. [Figure 4C] FIG. 14 illustrates an example user interface for providing 3D data collection feedback on a 3D scanner, according to some embodiments. [Figure 4D] FIG. 14 illustrates an example user interface for providing 3D data collection feedback on a 3D scanner, according to some embodiments. [Figure 4E] FIG. 14 illustrates an example user interface for providing 3D data collection feedback on a 3D scanner, according to some embodiments. [Figure 4F] FIG. 14 illustrates an example user interface for providing 3D data collection feedback on a 3D scanner, according to some embodiments. [Diagram 5] FIG. 1 is a mechanical drawing illustrating a cross section of a 3D scanner including a cooling manifold, according to some embodiments. [Figure 6A] FIG. 1 illustrates a flowchart of a method for providing 3D data collection feedback from a 3D scanner, according to some embodiments. [Figure 6B] FIG. 1 illustrates a flowchart of a method for providing 3D data collection feedback from a 3D scanner, according to some embodiments. [Figure 7] FIG. 1 illustrates a flow diagram of a method for acquiring and storing data from a 3D scanner, according to some embodiments. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0014] As described below, some embodiments provide a 3D scanner that provides data collection feedback. In some embodiments, while the user is scanning the object and collecting data, the 3D scanner displays (e.g., on a built-in display on the 3D scanner) a preview of the 3D reconstruction of the object and an indication of the quality or quantity of the data. The preview of the 3D reconstruction and the indication of the quantity or quality of the data are continuously updated in real time as the user acquires more data. In some embodiments, the indication of the quality or quantity of the data is overlaid on the 3D reconstruction of the object. For example, the 3D reconstruction of the object appears as a surface, with the color of the surface representing the quantity or quality of the data. The user can thus see on the display if there is a difference in the data. For example, when there is no data at all for a portion of the object, in some embodiments, the preview of the 3D reconstruction shows no surface for that area of the object. When there is some data for a portion of the object, but not enough data to form a reasonable reconstruction of that portion of the object, the 3D reconstruction of that portion of the object is rendered in red. Thus, the user can continue acquiring data until the preview of the object is completely filled with data of sufficient quantity or quality to completely reconstruct a 3D model of the object. In some embodiments, the sufficiency of the quantity or quality of data to completely reconstruct a 3D model of the object is indicated by a different color. In some embodiments, the different color is green.
[0015] Thus, the user can not only determine when he has collected enough data, but also which part of the object requires more data collection. The latter feature allows the user to focus the scanning on the part of the object that requires more data. In comparison to the disclosed embodiments, previous systems and methods of 3D scanning required the user to collect data without having sufficient feedback to know when enough data was collected. As a result, to be safe, the user would acquire an excessive amount of data, which resulted in excessive use of the scanner's memory and the generation of heat within the scanner. The problems of excessive memory use and heat generation have made it difficult to create a truly self-contained handheld 3D scanner (e.g., one capable of generating at least an initial 3D reconstruction) because the memory tasks and the tasks of generating heat are delegated to an external computer, usually by means of a wired connection. Thus, the disclosed embodiments improve 3D scanners by facilitating efficient collection of data, which in turn facilitates smaller size 3D scanners and the portability of those 3D scanners.
[0016] Additionally, some embodiments of the present disclosure provide a handheld 3D scanner capable of operating in outdoor daylight conditions (e.g., obtaining a sufficient signal-to-noise ratio to reconstruct the 3D shape of an object) with a laser that operates as a Class 1 laser (e.g., safe under all conditions of normal use). A common approach to ensure this is to house the laser in a large housing so that by the time the light exits the housing, it is attenuated enough to be considered Class 1. This approach does not work well for handheld scanners because they must have a relatively small size (e.g., less than 30 cm x 30 cm x 30 cm). Some embodiments of the present disclosure operate their light sources as Class 1 by appropriate selection of pulse width, peak power, repetition rate, and / or duty cycle such that the laser light is Class 1 at a relatively small distance from the laser (e.g., 25 cm).
[0017] Furthermore, because of the way in which 3D data is acquired (e.g., strobing light from a fairly powerful light source and collecting and processing many images per second), heat generation and removal is one of the most challenging aspects of designing a handheld 3D scanner capable of previewing a 3D reconstruction of an object in real time. While maintaining a relatively cool temperature is important, maintaining a consistent temperature (not only spatially but also temporally) is at least equally important. To that end, some embodiments provide a cooling manifold that comprises a single piece of metal that is thermally coupled to the scanner's light source, optical sensor, and processor. The cooling manifold maintains the various components of the scanner at a consistent and stable temperature by providing thermal connectivity between the scanner's main heat-generating components. Thus, the cooling manifold reduces the "warm-up" time required for the scanner to reach a stable temperature, allowing for greater processing power and increasing the amount of time the scanner can collect data.
[0018] A further challenge in designing 3D scanners is that they generate a huge amount of data during scanning. Some embodiments improve the process of storing data from a 3D scanner by identifying areas of the object being scanned where sufficient data has already been collected. These embodiments then discard some or all of the data collected for those areas as the scan continues. Thus, these embodiments reduce the overall amount of data collected during scanning an object, which reduces the amount of storage required for the device, or alternatively improves the device by allowing the device's storage to be used when it is most needed, which results in higher quality 3D reconstructions.
[0019] Reference will now be made to embodiments, examples of which are illustrated in the accompanying drawings. In the following description, numerous specific details are discussed to provide a thorough understanding of the various described embodiments. However, it will be apparent to those skilled in the art that the various described embodiments may be practiced without these specific details. In other instances, well-known methods, procedures, components, circuits, and networks have not been described in detail so as not to unnecessarily obscure the inventive aspects of the embodiments.
[0020] 1A-1B illustrate various views of a 3D scanner 100 according to some embodiments. The scanner 100 includes a main body housing 102, a handle 108, and a battery housing 110 (e.g., containing a battery). In some embodiments, the 3D scanner 100 is a portable handheld scanner. To that end, in some embodiments, the 3D scanner 100 has dimensions less than 30 cm x 30 cm x 30 cm (e.g., fits inside a box with dimensions of 30 cm x 30 cm x 30 cm). In some embodiments, the 3D scanner 100 is light enough to be carried by a person in one hand (e.g., the 3D scanner 100 weighs about 2.5 kg).
[0021] In some embodiments, the body housing 102 can be separated from the handle 108. In some embodiments, the body housing 102 can be attached (e.g., without the handle 108 and battery housing 110) to a separate device (e.g., a robotic motorized scanning arm) by attachment points 112 (e.g., attachment points 112-a through 112-c). Thus, the 3D scanner 100 can be converted from a handheld scanner to an industrial or laboratory scanner.
[0022] In some embodiments, the 3D scanner 100 generates a 3D model of an object by projecting a spatial pattern of light (herein referred to as "structured light") onto the surface of the object and acquiring an image of the surface of the object using an optical sensor (e.g., a camera) while the spatial pattern of light is projected onto the surface of the object. To this end, the body housing 102 houses one or more internal light sources (e.g., a vertical cavity surface emitting laser (VCSEL) 506, FIG. 5) and source optics 104. The one or more internal light sources strobe light (e.g., project pulsed light) at distinct frequencies through a spatially patterned slide (e.g., slide 516, FIG. 5) inside the body housing 102, through the source optics 104, and onto the surface of the object. The image of the structured light projected onto the surface of the object is acquired through the camera optics 106 housed by the body housing 102. One or more cameras / sensors (e.g., charge-coupled device (CCD) detector 502, FIG. 5) record images of the structured light projected onto the object's surface. A 3D model of the shape of the object's surface can be determined from distortions in the pattern of light projected onto the object's surface (i.e., where distortions are caused by the shape of the object's surface), as described in more detail in U.S. Pat. No. 7,768,656, entitled "System and Method for Three-Dimensional Measurement of the Shape of Material Objects," which is incorporated by reference in its entirety.
[0023] In some embodiments, the internal light source is a laser. In some embodiments, the internal light source is a vertical cavity surface emitting laser (VCSEL). In some embodiments, the 3D scanner 100 operates as a Class 1 light source, meaning that the laser is considered Class 1 (i.e., as defined by 21 CFR § 1040 as of the filing date of this disclosure) anywhere outside the body housing 102.
[0024] It should be noted that in some embodiments, the scanner 100 provides sufficient illumination of the surface of the object such that an image acquired in outdoor daylight conditions has a sufficient signal-to-noise ratio to reconstruct the 3D shape of at least a portion of the object (e.g., with an accuracy of at least 0.1 mm, 0.2 mm, 0.3 mm, 0.4 mm, or 0.5 mm, or alternatively, with a resolution of 0.25 mm, 0.5 mm, 0.75 mm, or 1 mm). A common approach to ensure that a laser operates in the Class 1 range is to house the laser in a large housing so that by the time the light exits the housing, it is attenuated enough to be considered Class 1. This approach does not work well for handheld scanners because they must have a relatively small size (e.g., less than 30 cm x 30 cm x 30 cm). Some embodiments of the present disclosure operate the light source contained within the body housing 102 as Class 1 by suitable selection of pulse width, peak power, repetition rate, and / or duty cycle to ensure that the scanner 100 is handheld, safe, and capable of illuminating at normal daylight conditions (e.g., at 120,000 lux, 100,000 lux, 20,000 lux, 2,000 lux, or 1,000 lux). ) which in turn allows the scanner 100 to have a relatively short minimum working distance (e.g., a minimum working distance of 35 mm or less).
[0025] In addition, to increase the signal-to-noise from the structured light data and to distinguish the structured light data from texture (e.g., color) data, in some embodiments the VCSEL lasers described above are operated at frequencies outside the visible spectrum (e.g., infrared (IR) frequencies). In such embodiments, the body housing 102 contains, in addition to the camera lens (e.g., camera optics 106), an IR / visible beam splitter that directs the IR light to a first optical sensor (e.g., CCD detector 502-a, FIG. 5) and the visible light to a second optical sensor (e.g., CCD detector 502-b, FIG. 5). In some embodiments, data from the first optical sensor is detected synchronously with strobe light from one or more internal light sources such that data at the strobe frequency is detected preferentially over information at other frequencies. This may be done, for example, using synchronous demodulation or by gating the first optical sensor to collect data synchronously with the light source or light sources producing the light.
[0026] In some embodiments, a second optical sensor (e.g., CCD detector 502-b, FIG. 5) housed within body housing 102 acquires texture data (e.g., color data). In some embodiments, the texture data is used not only to render the 3D reconstruction in color (e.g., when color is not used to provide feedback on the quantity or quality of the data, as described below), but also to track the position and / or rotation of scanner 100 (e.g., by image analysis and registration), which in turn is used to register (e.g., align) structured light data (e.g., 3D shape data) taken by scanner 100 at different positions with respect to the object (e.g., as described below with reference to FIG. 3).
[0027] The body housing 102 further houses one or more motion sensors that track the motion of the scanner 100. The one or more motion sensors optionally include a three-axis accelerometer, a three-axis gyroscope, and / or a three-axis magnetometer to measure the position and / or rotation of the scanner 100. In some embodiments, the one or more motion sensors include all three of the three-axis accelerometer, the three-axis gyroscope, and the three-axis magnetometer, and are thus referred to as nine (9) degrees of freedom (DOF) sensors, even though the scanner 100 has only six mechanical degrees of freedom (i.e., three positional and three rotational degrees of freedom). The position and / or rotation data from the one or more motion sensors is used to track the position and / or rotation of the scanner 100 (e.g., by application of a Kalman filter), which in turn is used to register (e.g., align) structured light data (e.g., 3D shape data) taken by the scanner 100 at different positions with respect to the object (e.g., as described below with reference to FIG. 3).
[0028] To facilitate on-board automated processing (e.g., to generate at least an initial 3D reconstruction of the object) and to provide a complete mobile scanning experience for the user, in some embodiments, the body housing 102 houses multiple processors, including one or more field programmable gate arrays, one or more graphical processing units (GPUs), and / or one or more CPUs. These components and the tasks performed by each are discussed in more detail with reference to FIGS. 2-3. At this point, the body housing 102 contains sufficient internal processing to generate at least an initial reconstruction of a 3D model of the object (e.g., a preview of the 3D model of the object). It is sufficient to note that
[0029] The body housing 102 further houses a display 114 that displays a graphical user interface for the scanner 100. Among other things, the graphical user interface for the scanner 100 displays an initial 3D reconstruction of the object (e.g., a preview of the 3D reconstruction of the object) as the scanner 100 scans the object. In some embodiments, the display 114 is a touch-sensitive display (sometimes referred to as a touch screen) and thus can also receive user input (e.g., to begin a scan, pause a scan, end a scan, and otherwise control the scanner 100).
[0030] FIG. 2 is a flow chart of a method 200 for analyzing 3D data from a 3D scanner, performed while the 3D data is being acquired, according to some embodiments. The method 200 is performed in a 3D scanner (e.g., 3D scanner 100, FIGS. 1, 3, and 5). Some operations in the method 200 are optionally combined and / or the order of some operations is optionally changed. For ease of explanation, the method 200 is described as being performed by the 3D scanner 100. However, the method 200 may be implemented using any 3D scanner made in accordance with the present disclosure. Conversely, in other embodiments, the 3D scanner 100 performs a method other than the method 200 according to the teachings of the present disclosure. In some embodiments, the method 200 is performed continuously in real time while the 3D data is being acquired. In some embodiments, the method 200 results in a preview of a 3D reconstruction of the object's shape, which preview is displayed on the 3D scanner's display while the user is acquiring data (e.g., the preview of the 3D reconstruction of the object's shape is continuously generated in real time, updating as the scanner 100 acquires additional data from the sensor 202).
[0031] The scanner 100 acquires data from multiple sensors 202. For example, a first optical sensor collects texture (e.g., color) data 204-a (e.g., first CCD detector, such as CCD detector 502-a, FIG. 5), a second optical sensor collects 3D data 204-b (e.g., second CCD detector, such as CCD detector 502-b, FIG. 5), and a motion sensor collects motion data 204-c (e.g., a 9DOF sensor that may be implemented using a microelectromechanical system (MEMS), a gyroscope or other motion detection system, and one or more Hall sensors). In some embodiments, data from multiple sensors 202 is acquired simultaneously during a scan. As used herein, simultaneously means that measurements from the two sensors 202 are obtained in rapid enough succession that a measurement from a first sensor 202 and a measurement from a second sensor 202 can be considered to have been obtained at the same time (e.g., for purposes of tracking operations 212-a and 212-c, described below).
[0032] The scanner 100 performs one or more first processing operations based on the data acquired from the sensor 202. In some embodiments, the first processing operations are performed by one or more field programmable gate arrays (FPGAs) 206. For simplicity, the first processing operations are described herein as being performed by a single FPGA 206, although in some embodiments the operations may be split across multiple FPGAs.
[0033] For example, the FPGA 206 receives the 3D data 204-b from a first optical sensor and generates a reconstruction 208-b that represents the shape of the surface of the object. In some embodiments, the reconstruction 208-b is a data structure that contains data for a three-dimensional array of points (e.g., the reconstruction 208-b is a point cloud reconstruction of the shape of the surface of the object, not yet a mesh). In some embodiments, FPGA 206 generates a reconstruction 208-b for each image acquired by the first optical sensor (e.g., where each image corresponds to a pattern of structured light shone on the surface of the object and distorted by the surface). Thus, in some embodiments, FPGA 206 generates multiple representations of the shape of the surface of the object, where the representations in the multiple representations are not yet aligned (e.g., registered) with each other.
[0034] In some embodiments, the FPGA 206 receives color data 204-a from a second optical sensor. The color data 204-a is used to generate a demosaic 208-a. In some embodiments, the FPGA 206 receives multiple color images of the surface of the object. In some embodiments, the 3D data and the color images are acquired by strobes at different times (e.g., interleaved with each other), as described elsewhere in this document.
[0035] In some embodiments, the FPGA 206 receives the motion data 204-c and applies a Kalman filter to the motion data to determine a position and / or rotation 208-c of the scanner 100. In some embodiments, the position and / or rotation 208-c of the scanner 100 is determined with respect to a reference position and / or rotation. In some embodiments, the reference position and / or rotation is the position and / or rotation of the scanner 100 when the scan began. In some embodiments, the reference position and / or rotation is with respect to the object being measured.
[0036] The Kalman filter operates under the assumption that the motion data 204-c is noisy and contains errors. Essentially, the Kalman filter smoothes the motion data 204-c to determine the position and / or rotation 208-c of the scanner 100 in a manner that is more accurate than taking the raw measured position and / or rotation as the actual value of the position and / or rotation of the scanner 100. To that end, the determined position and / or rotation 208-c of the scanner 100 is a function of multiple measured positions and / or rotations of the scanner 100 as measured by the sensor 202 (e.g., as measured by a 9DOF sensor). When new measurements of the position and / or rotation are received by the FPGA 206, the new measurements of the position and / or rotation are used to update the existing determined position and / or rotation 208-c of the scanner 100, rather than completely invalidating it. For example, multiple existing measured positions and / or rotations of scanner 100 are used to determine a velocity (e.g., and / or angular velocity) of scanner 100. The velocity and / or angular velocity of scanner 100 are used to determine an interpolated position and / or rotation of scanner 100, which is then weighed against the new measured position and / or rotation to yield a determined position and / or rotation 208-c of scanner 100. In some embodiments, the weight of the interpolated position and / or rotation relative to the weight of the measured position and / or rotation depends on the variability of recent measured positions (e.g., the last 10 measurements), which is taken as an indication of the noise of the last 10 measurements.
[0037] The scanner 100 performs one or more second processing operations based on the results of the first processing operations. In some embodiments, the second processing operations are performed by one or more graphical processing units 210. In some embodiments, a graphical processing unit (GPU) 210 receives the results of the first processing operations from the FPGA 206. For simplicity, the second processing operations are described herein as being performed by a single GPU 210, although in some embodiments the operations may be split across multiple GPUs 210.
[0038] In some embodiments, the GPU 210 applies two tracking operations (tracking operations 212-a and 212-c) that are used to perform 3D registration (e.g., alignment) 212-b of the reconstructions 208-b. The 3D registration 212-b shifts each reconstruction 208-b (e.g., point cloud) onto a common frame of reference. For example, in some embodiments, the common frame of reference is the frame of reference of the existing voxel representation 212-f of the object's surface (e.g., the reconstruction 208-b is shifted onto the existing object's rendering geometry 212-e). It should be noted that while the terms registration and alignment are used interchangeably, in some embodiments, it should be understood that additional alignment and other post-processing are optionally performed offline after the scan is completed.
[0039] It should be noted that reconstruction 208-b and voxel representation 212-f are both examples of a "3D reconstruction" of the shape of the surface of an object. That is, the 3D reconstruction of the shape of the surface of an object can be a point cloud, a voxel representation, or any other type of reconstruction.
[0040] The tracking operation 212-a analyzes the demosaic 208-a to identify corresponding features in the demosaic. The corresponding features are then used to determine a relative shift to apply between the first demosaic and the second demosaic to shift the first demosaic onto a common frame of reference with the second demosaic (e.g., by performing image alignment and registration). The relative shift between the first demosaic and the second demosaic is then used to determine a relative shift between the first reconstruction (e.g., corresponding to the first demosaic and acquired at substantially the same time as the first demosaic) and the second reconstruction (e.g., corresponding to the second demosaic and acquired at substantially the same time as the second demosaic).
[0041] Similarly, the tracking operation 212-c determines a relative shift between the reconstructions 208-b using the determined position and / or rotation 208-c of the scanner 100. For example, a relative shift between a first reconstruction (e.g., corresponding to a first determined position and / or rotation of the scanner 100 and acquired at substantially the same time as the first determined position and / or rotation of the scanner 100) and a second reconstruction (e.g., corresponding to a second determined position and / or rotation of the scanner 100 and acquired at substantially the same time as the second determined position and / or rotation of the scanner 100) is determined.
[0042] In some embodiments, the relative shifts from tracking operations 212-a and 212-c are used (e.g., weighted relative to each other) to determine an overall relative shift to apply to each reconstruction 208-b so that the shifted reconstructions 208-b are aligned onto a common frame of reference.
[0043] The GPU 210 performs a fusion operation 212-d in which the shifted reconstructions 208-b produced by the 3D registration operation 212-b are combined into a single fused voxel representation 212-f (which may be an existing voxel representation generated from previously acquired data). For example, the fusion operation 212-d generates an average (or a weighted average) of the shifted reconstructions to generate the fused voxel representation 212-f of the 3D shape of the object's surface. In some embodiments, the fused voxel representation 212-f is updated in real-time as additional data is acquired (e.g., by shifting the additional acquired reconstructions 208-b onto the frame of reference of the fused voxel representation of the 3D shape of the object's surface and then combining the additional acquired reconstructions 208-b with the fused voxel representation to generate an updated fused voxel representation). will be done.
[0044] Each point in the voxel representation 212-f is called a voxel and represents a volume in three-dimensional space (as opposed to a pixel, which represents an area in two-dimensional space). In some embodiments, each voxel in the voxel representation 212-f includes a value indicating whether the voxel represents a surface of an object (e.g., "1" if the voxel represents a surface of an object, and "0" if the voxel does not represent a surface of an object).
[0045] In some embodiments, the fused voxel representation 212-f further stores, for each voxel, statistical information corresponding to the quality and / or quantity of data collected for that voxel. The statistical information corresponding to the quality and / or quantity of data is used to display a real-time indication of the quantity and / or quality of the data, as described below with reference to method 600.
[0046] In some embodiments, texture (e.g., color) from demosaic 208-a is added to fused voxel representation 212-f. To do so, the texture data from demosaic 208-a undergoes color unification (e.g., common points are identified in demosaic 208-a and the texture data is shifted so that the common points have the same color) and color calibration (e.g., the balance and brightness of demosaic 208-a is calibrated across demosaic 208-a). The unified calibrated demosaic information is then added to fused voxel representation 212-f produced by fusion operation 212-d to produce a textured fused voxel representation. The textured fused voxel representation is rendered and displayed on a display (e.g., display 114, FIG. 1B) as a real-time preview of the 3D reconstruction of the object.
[0047] 3 is a block diagram of a 3D scanner 100 according to some embodiments. The scanner 100 typically includes a memory 304, one or more processors 302, a power supply 306, a user input / output (I / O) subsystem 308, a sensor 202, a light source 311, and a communication bus 310 for interconnecting these components. The processor 302 executes modules, programs, and / or instructions stored in the memory 304, thereby performing processing operations.
[0048] In some embodiments, the processor 302 includes at least one graphical processing unit (e.g., GPU 210, FIG. 2). In some embodiments, the processor 302 includes at least one field programmable gate array (e.g., FPGA 206, FIG. 2).
[0049] In some embodiments, memory 304 stores one or more programs (e.g., sets of instructions) and / or data structures. In some embodiments, memory 304, or the non-transitory computer-readable storage medium of memory 304, stores the following programs, modules, and data structures, or a subset or superset thereof, some of which include instructions for performing corresponding operations described above with reference to FIG. 2: operating system 312, A Kalman filter module 314; A motion tracking module 316; Color tracking module 318; Color Uniformity Module 320, fusion module 324; Color calibration module 326, A texturing module 328, as well as · Storage 330, including buffers, RAM, ROM, and / or other memory for storing data used and generated by scanner 100.
[0050] The above identified modules (e.g., programs including data structures and / or sets of instructions) need not be implemented as separate software programs, procedures, or modules, and thus various subsets of these modules may be combined or otherwise rearranged in various embodiments. In some embodiments, memory 304 stores a subset of the above identified modules. Furthermore, memory 304 may store additional modules not described above. In some embodiments, the modules stored in memory 304, or in the non-transitory computer-readable storage medium of memory 304, provide instructions for implementing respective operations in the methods described below. In some embodiments, some or all of these modules may be implemented by specialized hardware circuits (e.g., FPGA 206, FIG. 2) that encapsulate part or all of the module functionality. One or more of the above identified elements may be executed by one or more of processors 302.
[0051] In some embodiments, the I / O subsystem 308 communicatively couples the scanner 100 to one or more devices, such as one or more remote devices 336 (e.g., external displays) via a communications network 350 and / or via wired and / or wireless connections. In some embodiments, the communications network 350 is the Internet. In some embodiments, the I / O subsystem 308 communicatively couples the scanner 100 to one or more integrated or peripheral devices, such as a touch-sensitive display 114.
[0052] In some embodiments, the sensor 202 includes a first optical sensor (e.g., a first CCD detector such as CCD detector 502-a, FIG. 5 ) that collects 3D data, a second optical sensor (e.g., a second CCD detector such as CCD detector 502-b, FIG. 5 ) that collects texture (e.g., color) data, and a motion sensor (e.g., a 9DOF sensor that may be implemented using a microelectromechanical system (MEMS), a gyroscope, and one or more Hall sensors).
[0053] In some embodiments, the light source 311 includes one or more lasers. In some embodiments, the one or more lasers comprise vertical cavity surface emitting lasers (VCSELs). In some embodiments, the light source 311 further includes an array of light emitting diodes (LEDs) that produce visible light.
[0054] Communications bus 310 optionally includes circuitry (sometimes called a chipset) that interconnects and controls communications between system components. 4A-4F illustrate example user interfaces for providing 3D data collection feedback on a 3D scanner (e.g., 3D scanner 100, Figs. 1 and 3), according to some embodiments. In some embodiments, the user interfaces shown in Figs. 4A-4F are displayed and updated in real-time during the scanning of an object (e.g., as scanner 100 collects data as described above with reference to Fig. 2). In some embodiments, the user interfaces shown in Figs. 4A-4F are displayed on a display that is integrated into the 3D scanner. In some embodiments, the user interfaces shown in Figs. 4A-4F are displayed on a remote display in communication with the 3D scanner (e.g., the 3D scanner displays the user interface shown in Figs. 4A-4F on the remote display). ) wirelessly transmitting information for displaying a user interface as shown in FIG.
[0055] 4A illustrates a user interface displaying a preview 400-a of a 3D reconstruction of at least a portion of a surface profile of an object. In this example, the object is a porcelain sheep. Preview 400-a illustrates a 3D reconstruction of a portion of the surface profile of the object at a first time (e.g., including all of the data acquired during the scan up to the first time).
[0056] Note that previews labeled with the same number (e.g., 400) correspond to the same preview (i.e., a single preview displayed over the course of the scan). A letter may be appended to the number to refer to a snapshot of the preview at a particular time (e.g., as is the case above with respect to preview 400-a).
[0057] Additionally, the user interface displays a representation of at least one of the quantity or quality of data corresponding to the 3D shape of the surface of the object. For example, the representation of at least one of the quantity or quality of data is displayed as part of the preview 400-a of a 3D reconstruction of at least a portion of the shape of the surface of the object (e.g., the representation of at least one of the quantity or quality of data is displayed as a color of the preview 400-a of the portion of the surface). In some embodiments, each respective point (e.g., each voxel representing the surface of the object) in the preview 400 representing the surface of the object displays a corresponding representation of the quantity and / or quality of data for that respective point (e.g., each voxel). Thus, in some embodiments, the preview 400 provides a 3D visualization of the quantity and / or quality of data across the surface of the object.
[0058] In the examples shown in FIGS. 4A-4D, portions of the preview 400 having different quantities and / or qualities of data are displayed with different fill patterns (e.g., according to a legend provided in the figures). Alternatively, portions of the preview 400 having different quantities and / or qualities of data are displayed with different colors. For example, portions of the preview 400 having different quantities and / or qualities of data are displayed with a color scale that may be nearly continuous (e.g., with 256 different colors representing different quantities and / or qualities of data). For example, portions of the preview 400 having a small amount of data and / or low (low quality) data quality may be displayed in red. Portions of the preview 400 having more data and / or better (medium) quality data may be shown in yellow. However, portions of the preview 400 shown in yellow may have insufficient data to reconstruct the object according to a predefined accuracy specification. Portions of the preview 400 having a high amount of data and / or better quality data may be shown in green. In some embodiments, a high quantity / quality of data indicates that the object can be reconstructed with a predefined accuracy specification (e.g., with an accuracy of at least 0.1 mm, 0.2 mm, 0.3 mm, 0.4 mm, or 0.5 mm, or alternatively, with a resolution of 0.25 mm, 0.5 mm, 0.75 mm, or 1 mm). In other embodiments, colors and / or shades of colors other than red, yellow, and green, and / or fewer or more colors are used to provide feedback to the user regarding the quantity and / or quality of data collected. In one embodiment, a single color in one or more shades is used to provide feedback to the user regarding the quantity and / or quality of data collected. In another embodiment, two or more colors are used to provide feedback to the user regarding the quantity and / or quality of data collected.
[0059] 4A, a portion 402-a of the preview 400-a has enough data to determine the location of the object's surface, but the data is insufficient and / or of poor quality elsewhere. This allows a user to see in real time if the data is insufficient and / or of poor quality.
[0060] In some circumstances, other portions of the object's surface, such as portion 402-b, may not have any data (and thus no location can be determined). These portions are rendered as blank spaces in the preview 400-a of the 3D reconstruction of the object's surface. This allows the user to see, in real time, if data is missing from the scan.
[0061] FIG. 4B illustrates a user interface displaying a preview 400-b of a 3D reconstruction of the shape of the surface of the object. Preview 400-b is an update of preview 400-a. That is, preview 400-b illustrates a 3D reconstruction of a portion of the shape of the surface of the object at a second time that is later than the first time (e.g., including all of the data acquired during the scan up to the second time). Thus, more data has been acquired for preview 400-b compared to preview 400-a. As a result, preview 400-b illustrates areas with more and / or improved data compared to preview 400-a. For example, portion 402-c is displayed with a fill pattern indicating a high quantity and / or quality of data (e.g., indicating adequate data for that region of the object), portion 402-d is displayed with a fill pattern indicating a medium quantity and / or quality of data (e.g., indicating that the data for that region of the object is better than the data was in preview 400-b but still insufficient), and portion 402-e is displayed with a fill pattern indicating a low quantity and / or quality of data (e.g., indicating insufficient and / or poor quality data for that region of the object). Portion 402-b still shows gaps in the data. Thus, preview 400-b suggests to the user where to reposition the scanner to complete the scan (e.g., the user should move the scanner to more directly face the missing and / or poor quality data regions).
[0062] 4C illustrates a user interface displaying a preview 400-c of a 3D reconstruction of the object's surface shape. Preview 400-c is an update of preview 400-b. That is, preview 400-c illustrates a 3D reconstruction of a portion of the object's surface shape at a third time that is later than the second time (e.g., including all of the data acquired during the scan up to the third time).
[0063] 4D illustrates a user interface displaying a preview 400-d of a 3D reconstruction of the shape of the surface of the object. Preview 400-d is an update of preview 400-c. That is, preview 400-d illustrates a 3D reconstruction of a portion of the shape of the surface of the object at a fourth time that is later than the third time (e.g., including all of the data acquired during the scan up to the third time). Preview 400-d shows that almost the entire object has enough data to reconstruct the 3D shape of the object.
[0064] Figures 4E-4F illustrate a preview 404 of a different scene (compared to Figures 4A-4D). In particular, preview 404 illustrates a preview of a 3D reconstruction of a person as the person is being scanned. Preview 404 shown in Figures 4E-4F is generally similar to preview 400 shown in Figures 4A-4D, described above, except for the differences noted below.
[0065] In particular, the preview 404 displays a representation of the active area 406 of the scan (e.g., the area for which data is currently being collected based on the position of the 3D scanner relative to the object). For example, the preview 404 shows a rectangular enclosure that indicates the active area 406 of the scan. In some embodiments, a fill pattern or color within the active area 406 of the preview 404 indicates the distance to the object being scanned (e.g., rather than the quantity / quality of the data), whereas a color outside the active area of the preview 404 indicates the quantity and / or quality of the data, as described above with reference to FIGS. 4A-4D. In some situations, providing the distance to the object relative to the active area 406 provides the user with more meaningful information for the active area 406 because the user has already scanned the active area 406 and therefore cannot reposition the scanner to scan the active area 406. The user can, however, adjust the distance to the object to more efficiently collect data for the active area 406.
[0066] 4E-4F additionally illustrate that in some embodiments, a user may toggle between showing a preview 404-a with an indication of the quality and / or quantity of the data, and a preview 404-b showing the natural texture (e.g., color) of the object. The latter may be useful to give the user a sense of what the final 3D reconstruction will look like.
[0067] Those skilled in the art having the benefit of this disclosure will appreciate that there are numerous ways to provide feedback indicating sufficient quantity and / or quality of data for the area of reconstruction. For example, areas requiring more data may be outlined on the screen or pointed to by an arrow. Alternative auditory and / or tactile cues may be used to provide such feedback. For example, an auditory or tactile cue may be given to indicate that the current acquisition area has accumulated sufficient data, which means that the user should move the scanner.
[0068] Figure 5 is a mechanical drawing illustrating various components of a 3D scanner 100, including a cooling manifold, according to some embodiments. In particular, Figure 5 illustrates a cross section of the body housing 102 (Figure 1). As shown in Figure 5, the scanner 100 includes (among other components): a first optical sensor 502-a (e.g., a first charge-coupled device (CCD) detector) that collects 3D data of the object being scanned (e.g., collects images of structured light that is shone on and distorted by the surface of the object, from which a reconstruction of the object's 3D shape can be determined). In some embodiments, the first optical sensor 502-a is sensitive to infrared (IR) light (although the first optical sensor 502-a may also be sensitive to visible light); A second optical sensor 502-b (e.g., a second CCD detector) that collects texture (e.g., color) data from the object being scanned (e.g., collects images while structured light is not shown on the surface of the object, e.g., collects images in between pulses of a strobe of structured light being shone on the object). In some embodiments, the second optical sensor 502-b is sensitive to visible light (the second optical sensor 502-b may also be sensitive to IR light). may be visible to light); A beam splitter 504 for separating visible and IR light. The beam splitter 504 directs the IR light received through the camera optics 106 preferentially to a first optical sensor 502-a. 5. preferentially directing visible light received through the camera optics 106 to the second optical sensor 502-b; Light source 506. In some embodiments, light source 506 is a pulsed light source (e.g., a strobe light source). In some embodiments, light source 506 is an infrared light source. In some embodiments, light source 506 is a laser. In some embodiments, light source 506 is a vertical cavity surface emitting laser. In some embodiments, light source 506 is configured to operate as a Class 1 laser (e.g., by suitable selection of pulse width, peak power, repetition rate, and / or duty cycle) anywhere outside of body housing 102; a slide 516 having a spatial pattern formed thereon (e.g., printed or etched thereon) through which light is projected onto the surface of the object (e.g., the spatial pattern is formed as part of the opaque and transparent portions of the slide). Thus, light produced by the light source 506 is passed through the slide 516 and projected as structured light through the source optics 104 towards (e.g., onto) the surface of the object; and A cooling manifold 508 (labeled at various points in the drawing) comprising a single piece of metal that is thermally coupled to the light source 506, the optical sensor 502, and multiple processors, including a GPU (e.g., GPU 210, FIG. 2) located at location 514 and an FPGA (e.g., FPGA 206, FIG. 2) located at location 512.
[0069] Due to the way in which 3D data is acquired (e.g., by strobing light from a fairly powerful light source and collecting and processing many images per second), heat generation and removal is one of the most challenging aspects of designing a handheld 3D scanner capable of previewing a 3D reconstruction of an object in real time. While maintaining a relatively cool temperature is important, maintaining a consistent temperature (not only spatially but also temporally) is at least equally important. The cooling manifold 508 maintains the various components of the 3D scanner 100 at a consistent and stable temperature by providing thermal connectivity between the main heat-generating components of the 3D scanner. Thus, the cooling manifold 508 reduces the "warm-up" time required for the 3D scanner to reach a stable temperature, allowing for more processing power and increasing the amount of time the 3D scanner can collect data.
[0070] 6A-6B illustrate a flow diagram of a method 600 for providing 3D data collection feedback from a 3D scanner according to some embodiments. The method 600 is performed in a 3D scanner (e.g., 3D scanner 100, Figs. 1, 3, and 5) in communication with a display. The 3D scanner includes one or more optical sensors. In some embodiments, the 3D scanner includes a display. In some embodiments, the 3D scanner includes a processor for generating a 3D reconstruction of at least a portion of the shape of a surface of an object. In some embodiments, the 3D scanner is a portable handheld 3D scanner (e.g., having a size of less than 30 cm x 30 cm x 30 cm such that the entire device will fit inside a box that is 30 cm x 30 cm x 30 cm). Some operations in the method 600 are optionally combined and / or the order of some operations is optionally changed. For ease of explanation, the method 600 is described as being performed by the 3D scanner 100. However, method 600 may be implemented using any 3D scanner made in accordance with the present disclosure. Conversely, in other embodiments, 3D scanner 100 performs methods other than method 600 in accordance with the teachings of the present disclosure.
[0071] As described below, method 600 provides 3D data collection feedback from 3D scanner 100. In some embodiments, while a user is scanning an object and collecting data, 3D scanner 100 displays a preview of the 3D reconstruction of the object, and an indication of the quality or quantity of the data. In some embodiments, the indication of the quality or quantity of the data is overlaid on the 3D reconstruction of the object. For example, The construction appears as a surface, with the color of the surface representing the quantity or quality of the data. The user can thus see on the display if there are discrepancies in the data. For example, when there is no data at all for a portion of an object, in some embodiments the preview of the 3D reconstruction shows no surface for that area of the object. When there is some data for a portion of an object, but not enough data to form a reasonable reconstruction of that portion of the object, the 3D reconstruction of that portion of the object is rendered in red.
[0072] Thus, the user can not only determine when he has collected enough data, but also which part of the object requires more data collection. The latter feature allows the user to focus the scanning on the part of the object that requires more data. In comparison to method 600, previous methods of 3D scanning required the user to collect data without having enough feedback to know when enough data was collected. As a result, to be safe, the user would acquire an excessive amount of data, which resulted in excessive memory usage and heat generation. The problems of excessive memory usage and heat generation make it difficult to create a truly self-contained handheld 3D scanner, because the memory tasks and heat generation tasks are delegated to an external computer, usually by means of a wired connection. Thus, the method 600 improves the 3D scanner itself by facilitating efficient collection of data, which in turn facilitates smaller size of the 3D scanner 100. For battery operated electronic devices, allowing users to acquire 3D scanning data faster and more efficiently conserves power and increases the time between battery charges.
[0073] The scanner 100 scans an object having a surface using one or more optical sensors (602). The scanning generates data corresponding to a three-dimensional (3D) shape of at least a portion of the object's surface. In some embodiments, the one or more sensors include a camera (e.g., optical sensor 502, FIG. 5). Scanning the object includes repeatedly performing the operations of projecting a spatial pattern of light onto the object's surface (e.g., using light source 506 and slide 516, FIG. 5) and capturing an image of the object's surface using the camera while the spatial pattern of light is projected onto the object's surface. In some embodiments, scanning the object also includes collecting color data (e.g., color data 204-a, as described with reference to FIG. 2) and collecting motion data (e.g., motion data 204-c, as described with reference to FIG. 2).
[0074] The scanner 100 uses the data to generate (606) a 3D reconstruction of at least a portion of the shape of the object's surface (e.g., as described with reference to operations performed by the FPGA 206 and GPU 210, FIG. 2). In some embodiments, the generated 3D reconstruction of at least a portion of the shape of the object's surface is an initial reconstruction rather than a final reconstruction. For example, after the scan is completed, additional post-scan processing operations (e.g., further alignment) may be performed to improve the 3D reconstruction.
[0075] The scanner 100 provides a preview of a 3D reconstruction of at least a portion of the shape of the object's surface on the display (e.g., preview 400, FIGS. 4A-4D, preview 404, FIGS. 4E-4F) (608). In some embodiments, displaying the preview of the 3D reconstruction of at least a portion of the shape of the object's surface includes displaying a fused voxel representation, as described with reference to FIG. 2.
[0076] The scanner 100 displays on the display a 3D reconstruction of at least a portion of the shape of the surface of the object. A representation of at least one of a quantity or quality of data corresponding to a 3D shape of at least a portion of a surface of the object is provided for rendering with a constructed preview (610).
[0077] In some embodiments, the scanner 100 provides on the display an indication of the quality of the data corresponding to the 3D shape of at least a portion of the object's surface for rendering with a preview of a 3D reconstruction of at least a portion of the shape of the object's surface. In some embodiments, the indication of the quality of the data is an indication of the accuracy or resolution of the data. In some embodiments, the indication of the accuracy of the data indicates a statistically likely difference (e.g., a maximum or median difference) between the actual shape of the object's surface and a 3D reconstruction of the shape of the object's surface (e.g., the indication of the accuracy of the data represents an estimate of the inverse reconstruction error).
[0078] In some embodiments, the scanner 100 provides on the display a representation of a quantity of data corresponding to a 3D shape of at least a portion of the surface of the object for rendering with a preview of a 3D reconstruction of at least a portion of the shape of the surface of the object, in some embodiments, the representation of the quantity of data is measured by the number of samples (e.g., points) that each voxel accumulates in the scanning process.
[0079] In some embodiments, the scanner 100 provides on the display a representation of the quantity of data corresponding to the 3D shape of at least a portion of the object's surface and a combined metric of the quantity (e.g., a metric based on both the quantity of data and the quantity) for rendering with a preview of a 3D reconstruction of at least a portion of the shape of the object's surface. For example, in some embodiments, the scanner 100 provides on the display a representation of the product of the quantity and quality of data (e.g., the product of the inverse reconstruction error for each respective voxel and the number of samples accumulated for each voxel) for rendering with a preview of a 3D reconstruction of at least a portion of the shape of the object's surface.
[0080] In some embodiments, the scanner 100 provides on the display a plurality of distinct indicia (e.g., a display frequency for each voxel) of at least one of a quantity or quality of data corresponding to distinct portions of the object's surface (612). In some embodiments, the display frequency of at least one of the quantity or quality of data is displayed as part of a preview of a 3D reconstruction of at least a portion of the shape of the object's surface (614). In some embodiments, the display frequency of at least one of the quantity or quality of data is displayed as a color of a preview of the portion of the surface (e.g., as described with reference to preview 400, FIGS. 4A-4D, preview 404, FIGS. 4E-4F). For example, each voxel representing the object's surface in the preview of the 3D reconstruction is displayed in a color that represents the quantity and / or quality of data corresponding to its respective voxel.
[0081] In some embodiments, the scanner 100 is configured to provide on the display a plurality of distinct and alternating indicia of the quantity and / or quality of data corresponding to the 3D shape of at least a portion of the object's surface (e.g., alternating indicia indicating different characteristics of the 3D reconstruction) for rendering with a preview of a 3D reconstruction of at least a portion of the shape of the object's surface. In some embodiments, the user may toggle between the distinct and alternating indicia of the quantity and / or quality of data (e.g., one indication is displayed at a time). For example, in some embodiments, the 3D scanner 100 receives a user input to change from displaying an indication of the quantity of data to displaying an indication of the quality of data. As noted above (e.g., with reference to Figs. 4E-4F), in some embodiments, the user may further select the quantity and / or quality of data. You can toggle between displaying a quality indication and displaying a 3D reconstruction with natural textures of the data.
[0082] In some embodiments, an indication of at least one of the quantity or quality of the data is provided to the output (e.g., indicated by an audio and / or visual signal or otherwise). For example, in some embodiments, the indication is an audible indication (e.g., a "ding" when sufficient data is acquired). In some embodiments, the indication comprises an arrow pointing to an area of the object where additional data is required. In other embodiments, sufficiency of the quantity or quality of the data is indicated by one or more beeps or by one or more flashes of a light.
[0083] In some embodiments, scanner 100 further scans the object to generate additional data corresponding to the shape of at least a portion of the object's surface (618). Scanner 100 updates a preview of the 3D reconstruction of at least a portion of the shape of the object's surface (620). Scanner 100 updates a representation of at least one of the quantity or quality of data corresponding to the 3D shape of at least a portion of the object's surface (622). For example, preview 400-b (FIG. 4B) is an update of preview 400-a (FIG. 4A).
[0084] In some embodiments, the scanner 100 determines (624) whether at least one of the quantity or quality of the data meets a predefined threshold. In some embodiments, the predefined threshold corresponds to the quantity or quality of the data required to reconstruct the shape of at least a portion of the object's surface to a predefined accuracy (or resolution). The displayed number indicates whether at least one of the quantity or quality of the data meets the predefined threshold.
[0085] 4D, the scanner 100 determines whether the quantity and / or quality of the data meets predefined accuracy and / or resolution metrics for each portion of the object's surface (e.g., on a voxel-by-voxel basis). Voxels that represent the object's surface and that meet the predefined metrics are rendered with a fill pattern that corresponds to the data that meets the predefined metrics.
[0086] In some embodiments, the user can configure predefined metrics. For example, the user can configure the 3D scanner to set the required accuracy and / or resolution. For example, the user can configure the scanner 100 to obtain a 3D reconstruction with an accuracy of at least 0.1 mm, 0.2 mm, 0.3 mm, 0.4 mm, or 0.5 mm, or alternatively, with a resolution of 0.25 mm, 0.5 mm, 0.75 mm, or 1 mm. The display count of the quantity or quality of data is adjusted based on the accuracy and / or resolution provided by the user. For example, when the user sets the scanner 100 to obtain a 3D reconstruction with an accuracy of 0.5 mm, a representative voxel in the preview is rendered green when there is enough data for each voxel to represent the surface of the object with an accuracy of 0.5 mm. However, if the user sets the scanner 100 to obtain a 3D reconstruction with an accuracy of 0.1 mm, representative voxels in the preview will be rendered in green when there is enough data for each voxel to represent the surface of the object with an accuracy of 0.1 mm. Providing the user with quantity and / or quality feedback based on the user's accuracy and / or resolution needs helps the scanner 100 obtain a satisfactory scan while reducing the amount of memory (e.g., storage) required to do so.
[0087] In some embodiments, the scanner 100 transmits to the display in real time a preview of the 3D reconstruction of at least a portion of the shape of the object's surface and at least one of a quantity or quality of data corresponding to the 3D shape of at least a portion of the object's surface (626). For example, in some embodiments, the display is separate from the scanner 100, and the scanner 100 wirelessly transmits to the display in real time (e.g., via Bluetooth, Wi-Fi, or the Internet) a preview of the 3D reconstruction of at least a portion of the shape of the object's surface and at least one of a quantity or quality of data corresponding to the 3D shape of at least a portion of the object's surface.
[0088] It should be understood that the particular order in which the operations are described in Figures 6A-6B is merely an example and is not intended to indicate that the described order is the only order in which the operations may be performed. Those skilled in the art will recognize various ways to reorder the operations described herein. In addition, it should be noted that with respect to the other methods described herein (e.g., methods 200 and 700), the other process details described herein are also applicable in a similar manner to method 600 described above with respect to Figures 6A-6B.
[0089] FIG. 7 illustrates a flow diagram of a method 700 for acquiring and storing data from a 3D scanner according to some embodiments. The method 700 is performed in a 3D scanner (e.g., 3D scanner 100, FIGS. 1, 3, and 5). The 3D scanner includes one or more optical sensors. In some embodiments, the 3D scanner includes a processor for generating a 3D reconstruction of at least a portion of the shape of a surface of an object. In some embodiments, the 3D scanner is a portable handheld 3D scanner (e.g., having a size of less than 30 cm×30 cm×30 cm such that the entire device will fit inside a box that is 30 cm×30 cm×30 cm). Some operations in the method 700 are optionally combined and / or the order of some operations is optionally changed. For ease of explanation, the method 700 is described as being performed by the 3D scanner 100.
[0090] A further challenge in designing 3D scanners is that they generate a huge amount of data during scanning. Method 700 improves the process of storing data from a 3D scanner by identifying areas of the object being scanned where sufficient data has already been collected. Method 700 then discards some or all of the data collected for those areas as the scan continues. Thus, method 700 reduces the overall amount of data collected during scanning an object, which reduces the amount of storage required for the device, or alternatively improves the device by allowing existing storage on the device to be used when it is most needed, which results in higher quality 3D reconstructions.
[0091] To that end, the scanner 100 uses one or more optical sensors to scan an object having a surface (702). The scanning generates first data corresponding to a three-dimensional (3D) shape of the object's surface.
[0092] In some embodiments, the one or more sensors include a camera. In some embodiments, scanning the object includes performing a first set of repetitions (e.g., multiple repetitions) of projecting a spatial pattern of light onto a surface of the object and acquiring respective images of the surface of the object using the camera while the spatial pattern of light is projected onto the surface of the object. In some embodiments, scanning the object includes: generating a 3D reconstruction of at least a portion of the shape of a surface of the object from each image acquired in the first set of iterations.
[0093] For each of the multiple respective portions of the object's surface, the scanner 100 determines (704) whether the quantity or quality of the first data meets a predefined threshold corresponding to the quantity or quality of data required to reconstruct the shape of the portion of the object's surface to a predefined accuracy (or resolution).
[0094] In some embodiments, the user can configure a predefined accuracy (or resolution). For example, the user can configure the 3D scanner to set the required accuracy and / or resolution. For example, the user can configure the scanner 100 to obtain a 3D reconstruction with an accuracy of at least 0.1 mm, 0.2 mm, 0.3 mm, 0.4 mm, or 0.5 mm, or alternatively, with a resolution of 0.25 mm, 0.5 mm, 0.75 mm, or 1 mm. The display count of the quantity or quality of data is adjusted based on the accuracy and / or resolution provided by the user. For example, when the user sets the scanner 100 to obtain a 3D reconstruction with an accuracy of 0.5 mm, a representative voxel in the preview is rendered in green when there is enough data for each voxel to represent the surface of the object with an accuracy of 0.5 mm. However, if the user sets the scanner 100 to obtain a 3D reconstruction with an accuracy of 0.1 mm, representative voxels in the preview will be rendered in green when there is enough data for each voxel to represent the surface of the object with an accuracy of 0.1 mm. Providing the user with quantity and / or quality feedback based on the user's accuracy and / or resolution needs helps the scanner 100 obtain a satisfactory scan while reducing the amount of memory (e.g., storage) required to do so.
[0095] After determining whether the quantity or quality of the first data for each of the plurality of portions of the object's surface meets a predefined threshold corresponding to the quantity or quality of data required to reconstruct the shape of the portion of the object's surface to a predefined accuracy, the scanner 100 further scans (706) the object using one or more optical sensors to generate second data corresponding to the three-dimensional shape of the object's surface.
[0096] In some embodiments, further scanning the object includes performing a second set of iterations (e.g., one or more iterations) of projecting the spatial pattern of light onto the surface of the object and acquiring, using the camera, respective images of the surface of the object while the spatial pattern of light is projected onto the surface of the object. In some embodiments, further scanning the object includes generating a 3D reconstruction of at least a portion of the shape of the surface of the object from the one or more respective images acquired in the second set of one or more iterations. In some embodiments, the scanner 100 aligns the 3D reconstruction from the second set of one or more iterations with the 3D reconstruction from the first set of one or more iterations (e.g., as described above with respect to 3D alignment operation 212-b, FIG. 2) prior to identifying portions of the second data corresponding to respective portions of the surface of the object where the quantity or quality of the first data meets a predefined threshold. In some embodiments, the scanner 100 uses the aligned 3D reconstruction from the second set of one or more iterations to identify portions of the second data that correspond to respective portions of the object's surface where the quantity or quality of the first data meets a predefined threshold.
[0097] The scanner 100 discards (708) at least a portion of the second data. The discarded portions of the data correspond to each portion of the object's surface (e.g., the identified portions described above) where the quantity or quality of the first data met a predefined threshold. In some embodiments, the scanner 100 stores (e.g., in memory) a complementary portion of the second data corresponding to each portion of the object's surface where the quantity or quality of the first data did not meet a predefined threshold.
[0098] It should be understood that the particular order in which the operations in Figure 7 are described is merely an example and is not intended to dictate that the described order is the only order in which the operations may be performed. Those skilled in the art will recognize various ways to reorder the operations described herein. In addition, it should be noted that with respect to the other methods described herein (e.g., methods 200 and 600), other process details described herein may also be applied in a similar manner to method 700 described above with respect to Figure 7.
[0099] The foregoing description has been described with reference to specific embodiments for purposes of illustration. However, the exemplary discussion above is not intended to be exhaustive or to limit the invention to the precise form disclosed. Many modifications and variations are possible in light of the above teachings. The embodiments have been chosen and described to best explain the principles of the invention and its practical application, and thereby enable others skilled in the art to best utilize the invention and the various described embodiments with various modifications suited to the particular use contemplated.
[0100] Although the terms first, second, etc. are used herein to describe various elements in some instances, it will be further understood that these elements should not be limited by these terms. These terms are used merely to distinguish one element from another. For example, a first sensor may be referred to as a second sensor, and similarly, a second sensor may be referred to as a first sensor, without departing from the scope of various described embodiments. Although a first sensor and a second sensor are both sensors, they are not the same sensor unless the context clearly dictates otherwise.
[0101] The terminology used in the description of the various described embodiments herein is merely for the purpose of describing individual embodiments and is not intended to be limiting. When used in the description of the various described embodiments and in the appended claims, the singular forms "a", "an" and "the" are intended to include the plural forms as well, unless the context clearly dictates otherwise. It will be further understood that the term "and / or" as used herein refers to and includes any possible combination of one or more of the associated listed items. It will be further understood that the terms "comprise (third person singular present tense)", "comprise (present participle)", "comprise (third person singular present tense)", and / or "comprise (present participle)" as used herein specify the presence of a described feature, integer, step, operation, element, and / or component, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof.
[0102] As used herein, the term "if" is to be construed to mean "when" or "at the time of" or "in response to determining" or "in response to detecting," optionally depending on the context. Similarly, the phrases "if it is determined that" or "if [the described condition or event] is detected" can be used to mean "when" or "in response to detecting," optionally depending on the context. "at the time of determining" or "in response to determining" or "at the time of detecting [the described condition or event]" or "in response to detecting [the described condition or event]."
Claims
1. 1. A 3D scanner in communication with a display, the 3D scanner including one or more optical sensors, scanning an object having a surface using the one or more optical sensors to generate data corresponding to a three-dimensional (3D) shape of at least a portion of the surface of the object; using the data to generate a 3D reconstruction of the at least a portion of the shape of the surface of the object; providing on the display a preview of the 3D reconstruction of the at least a portion of the shape of the surface of the object; providing on the display an indication of at least one of a quantity or quality of the data corresponding to the 3D shape of the at least a portion of the surface of the object for rendering with the preview of the 3D reconstruction of the shape of the at least a portion of the surface of the object; A method comprising:
2. The method of claim 1 , wherein the display measure of the at least one of the quantity or quality of the data is displayed as part of the preview of the 3D reconstruction of the at least a portion of the shape of the surface of the object.
3. The method of claim 2 , wherein the indication of the at least one of the quantity or the quality of the data is displayed as a color of the preview of the portion of the surface.
4. further scanning the object to generate additional data corresponding to the shape of the at least a portion of the surface of the object; updating the preview of the 3D reconstruction of the at least a portion of the shape of the surface of the object; and updating the display frequency of the at least one of the quantity or the quality of the data corresponding to the 3D shape of the at least a portion of the surface of the object.
5. providing on the display a plurality of distinct indicia of at least one of a quantity or quality of data corresponding to distinct portions of the surface of the object. The method of claim 1 , further comprising:
6. determining whether the at least one of a quantity or quality of data satisfies a predefined threshold corresponding to a quantity or quality of data required to reconstruct the shape of the at least a portion of the surface of the object to a predefined accuracy; Further comprising: The method of claim 1 , wherein the indication indicates whether the at least one of the quantity or the quality of the data meets the predefined threshold.
7. The method of claim 1 , wherein the 3D scanner includes a processor for generating the 3D reconstruction of the shape of the at least a portion of the surface of the object.
8. the one or more optical sensors include a camera; The step of scanning the object includes: projecting a spatial pattern of light onto the surface of the object; acquiring an image of the surface of the object using the camera while the spatial pattern of light is projected onto the surface of the object; Repeatedly performing the operations of The method according to any one of claims 1 to 7.
9. the 3D scanner is separate from the display; The method comprises: transmitting to the display in real time the preview of the 3D reconstruction of the shape of the at least a portion of the surface of the object and a representation of at least one of the quantity or quality of the data corresponding to the 3D shape of the at least a portion of the surface of the object. The method of any one of claims 1 to 8, comprising:
10. The method of claim 1 , wherein the 3D scanner comprises the display.
11. The method according to any of claims 1 to 10, wherein the 3D scanner is a portable handheld 3D scanner.
12. 1. A 3D scanner in communication with a display, comprising: one or more optical sensors; one or more processors; a memory storing one or more programs, the one or more programs being configured to be executed by the one or more processors, the one or more programs comprising: scanning an object having a surface using the one or more optical sensors to generate data corresponding to a three-dimensional (3D) shape of at least a portion of the surface of the object; using the data to generate a 3D reconstruction of the at least a portion of the shape of the surface of the object; providing on the display a preview of the 3D reconstruction of the at least a portion of the shape of the surface of the object; providing on the display a representation of at least one of a quantity or quality of the data corresponding to the 3D shape of the at least a portion of the surface of the object for rendering with the preview of the 3D reconstruction of the shape of the at least a portion of the surface of the object; a memory including instructions for A 3D scanner comprising:
13. 1. A computer readable storage medium storing one or more programs, the one or more programs which, when executed by a 3D scanner including one or more optical sensors and in communication with a display, cause the 3D scanner to: scanning an object having a surface using the one or more optical sensors to generate data corresponding to a 3D shape of at least a portion of the surface of the object; using the data to generate a 3D reconstruction of the at least a portion of the 3D shape of the surface of the object; providing on the display a preview of the 3D reconstruction of the at least a portion of the 3D shape of the surface of the object; providing on the display a representation of at least one of a quantity or quality of the data corresponding to the 3D shape of the at least a portion of the surface of the object for rendering with the preview of the 3D reconstruction of the at least a portion of the 3D shape of the surface of the object; 23. A computer-readable storage medium comprising instructions for causing a
14. 1. A three dimensional (3D) scanner in communication with a display, comprising: one or more optical sensors; means for scanning an object having a surface using the one or more optical sensors, the scanning generating data corresponding to a 3D shape of at least a portion of the surface of the object; means for using the data to generate a 3D reconstruction of the at least a portion of the 3D shape of the surface of the object; means for providing on the display a preview of the 3D reconstruction of the at least a portion of the 3D shape of the surface of the object; means for providing on the display an indication of at least one of a quantity or quality of the data corresponding to the 3D shape of the at least a portion of the surface of the object for rendering with the preview of the 3D reconstruction of the at least a portion of the 3D shape of the surface of the object; A three-dimensional (3D) scanner comprising:
15. 1. A three dimensional (3D) scanner in communication with a display, comprising: one or more optical sensors; one or more processors; A memory storing one or more programs configured to be executed by the one or more processors, the one or more programs including instructions for performing a method according to any one of claims 1 to 11; A three-dimensional (3D) scanner comprising:
16. 12. A computer readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by a three dimensional (3D) scanner including one or more optical sensors and in communication with a display, cause the 3D scanner to perform the method according to any of claims 1 to 11.
17. A graphical user interface on a three-dimensional (3D) scanner with one or more optical sensors, a display, a memory, and one or more processors for executing one or more programs stored in the memory, the graphical user interface comprising a user interface displayed by a method according to any one of claims 1 to 11.
18. 1. A three dimensional (3D) scanner in communication with a display, comprising: one or more optical sensors; Means for carrying out the method according to any one of claims 1 to 11; A three-dimensional (3D) scanner comprising:
19. 1. A three-dimensional (3D) scanner, comprising: Housing and one or more lasers contained within the housing; one or more optical sensors contained within the housing; one or more processors housed within the housing, the processors in communication with the one or more lasers and the one or more optical sensors; when executed by the one or more processors, the 3D scanner generates data corresponding to a 3D shape of at least a portion of a surface of an object. projecting structured light toward the surface of the object using the one or more lasers; acquiring an image of the surface of the object using the one or more optical sensors while projecting the structured light toward the surface of the object; a memory for storing instructions that cause the device to perform the operations of A three-dimensional (3D) scanner comprising:
20. 20. The 3D scanner of claim 19, wherein the one or more lasers are configured to operate as a Class 1 light source when projecting light outside of the housing.
21. 21. The 3D scanner of claim 20, wherein the laser is a Vertical Cavity Surface Emitting Laser (VCSEL).
22. 3D scanner according to claim 20 or 21, wherein the one or more lasers are pulsed light sources.
23. 23. A 3D scanner according to any of claims 19 to 22, wherein the 3D scanner is a portable handheld 3D scanner.
24. 24. The 3D scanner according to any of claims 19 to 23, wherein the one or more light sources are configured to provide sufficient illumination of the surface of the object such that images acquired in outdoor daylight conditions have a sufficient signal-to-noise ratio to reconstruct the 3D shape of at least the part of the object.
25. 25. The 3D scanner of claim 24, wherein the one or more lasers are configured to provide sufficient illumination of the surface of the object such that images acquired in outdoor daylight conditions have a signal-to-noise ratio sufficient to reconstruct the 3D shape of at least the portion of the object with an accuracy of at least 0.1 mm.
26. 25. The 3D scanner of claim 24, wherein the one or more lasers are configured to provide sufficient illumination of the surface of the object such that images acquired in outdoor daylight conditions have a sufficient signal-to-noise ratio to reconstruct the 3D shape of at least the portion of the object with a resolution of at least 0.25 mm.
27. 27. A 3D scanner according to any of claims 19 to 26, wherein the 3D scanner has a minimum working distance that is 35 mm or less.
28. 3D scanner according to any of claims 19 to 27, wherein the 3D scanner has a size of less than 30cm x 30cm x 30cm.
29. Housing and one or more lasers contained within the housing; one or more optical sensors contained within the housing; generating data corresponding to a 3D shape of at least a portion of a surface of the object; projecting structured light toward the surface of the object using the one or more lasers; acquiring an image of the surface of the object using the one or more optical sensors while projecting the structured light toward the surface of the object; A means for repeatedly performing the operation of A three-dimensional (3D) scanner comprising:
30. Housing and one or more lasers contained within the housing; one or more optical sensors contained within the housing; Means for performing any of the functions described in any of claims 19 to 28; A three-dimensional (3D) scanner comprising:
31. 1. A three-dimensional (3D) scanner, comprising: one or more light sources; one or more optical sensors; a plurality of processors in communication with the one or more light sources and the one or more optical sensors; when executed by the plurality of processors, the 3D scanner generates data corresponding to a 3D shape of at least a portion of a surface of an object. projecting structured light toward the surface of the object using the one or more light sources; acquiring an image of the surface of the object using the one or more optical sensors while projecting the structured light toward the surface of the object; a memory for storing instructions for causing the execution of the operations of a cooling manifold comprising a single piece of metal thermally coupled to the one or more light sources, the one or more optical sensors, and the plurality of processors; A three-dimensional (3D) scanner comprising:
32. 32. The 3D scanner of claim 31 , wherein the one or more processors include a first processing module comprising a field programmable gate array (FPGA) and a second processing module comprising a graphical processing unit (GPU).
33. 33. The 3D scanner of claim 31 or 32, wherein the memory further stores instructions that, when executed by the one or more processors, cause the 3D scanner to use the data to generate a 3D reconstruction of the shape of the at least a portion of the surface of the object.
34. 34. A 3D scanner according to any of claims 31 to 33, wherein the one or more light sources comprise lasers.
35. 35. The 3D scanner of claim 34, wherein the laser is configured to operate as a Class 1 light source when projecting light outside a housing of the 3D scanner, and the one or more light sources, the one or more optical sensors, and the plurality of processors are disposed within the housing.
36. 36. The 3D scanner of claim 34 or 35, wherein the laser is a Vertical Cavity Surface Emitting Laser (VCSEL).
37. 37. A 3D scanner according to any of claims 31 to 36, wherein the light source is a pulsed light source.
38. 38. A 3D scanner according to any one of claims 31 to 37, wherein the 3D scanner is a portable handheld 3D scanner.
39. 39. The 3D scanner of claim 38, wherein the portable handheld 3D scanner has a size of less than 30 cm x 30 cm x 30 cm.
40. 40. A 3D scanner according to any of claims 31 to 39, wherein the one or more light sources are configured to provide sufficient illumination of the surface of the object such that an image acquired in outdoor daylight conditions has a signal to noise ratio that is greater than 2.
41. 1. A three-dimensional (3D) scanner, comprising: one or more light sources; one or more optical sensors; A plurality of processors; generating data corresponding to a 3D shape of at least a portion of a surface of an object, projecting structured light toward the surface of the object using the one or more light sources; acquiring an image of the surface of the object using the one or more optical sensors while projecting the structured light toward the surface of the object; a memory for storing instructions for causing the execution of the operations of means for cooling the one or more light sources, the one or more optical sensors, and the plurality of processors; A three-dimensional (3D) scanner comprising:
42. 1. A 3D scanner including one or more optical sensors, scanning an object having a surface using the one or more optical sensors to generate first data corresponding to a three-dimensional (3D) shape of the surface of the object; determining, for each of a plurality of respective portions of the surface of the object, whether a quantity or quality of the first data satisfies a predefined threshold corresponding to a quantity or quality of data required to reconstruct the 3D shape of the portion of the surface of the object to a predefined accuracy; after determining, for each respective portion of the plurality of portions of the surface of the object, whether the quantity or quality of the first data satisfies the predefined threshold corresponding to the quantity or quality of data required to reconstruct the shape of the portion of the surface of the object to the predefined accuracy, further scanning the object using the one or more optical sensors, generating second data corresponding to the 3D shape of the surface of the object; discarding at least a portion of the second data, the discarded portion of the second data corresponding to each portion of the surface of the object for which the quantity or quality of the first data meets the predefined threshold; A method comprising:
43. one or more optical sensors; one or more processors; a memory storing one or more programs, the one or more programs being configured to be executed by the one or more processors, the one or more programs comprising: scanning an object having a surface using the one or more optical sensors to generate first data corresponding to a three-dimensional (3D) shape of the surface of the object; determining, for each of a plurality of respective portions of the surface of the object, whether a quantity or quality of the first data satisfies a predefined threshold corresponding to a quantity or quality of data required to reconstruct the shape of the portion of the surface of the object to a predefined accuracy; after determining, for each respective portion of the plurality of portions of the surface of the object, whether the quantity or quality of the first data satisfies the predefined threshold corresponding to the quantity or quality of data required to reconstruct the shape of the portion of the surface of the object to the predefined accuracy, further scanning the object using the one or more optical sensors to generate second data corresponding to the 3D shape of the surface of the object; discarding at least a portion of the second data, the discarded portion of the second data corresponding to each portion of the surface of the object for which the quantity or quality of the first data meets the predefined threshold; a memory including instructions for A 3D scanner comprising:
44. 1. A computer readable storage medium storing one or more programs, the one or more programs, when executed by a 3D scanner including one or more optical sensors, causing the 3D scanner to: scanning an object having a surface using the one or more optical sensors to generate first data corresponding to a three-dimensional (3D) shape of the surface of the object; determining, for each of a plurality of respective portions of the surface of the object, whether a quantity or quality of the first data satisfies a predefined threshold corresponding to a quantity or quality of data required to reconstruct the shape of the portion of the surface of the object to a predefined accuracy; after determining, for each respective portion of the plurality of portions of the surface of the object, whether the quantity or quality of the first data satisfies the predefined threshold corresponding to the quantity or quality of data required to reconstruct the shape of the portion of the surface of the object to the predefined accuracy, further scanning the object using the one or more optical sensors to generate second data corresponding to the 3D shape of the surface of the object; discarding at least a portion of the second data, the discarded portion of the second data corresponding to each portion of the surface of the object for which the quantity or quality of the first data meets the predefined threshold; 23. A computer-readable storage medium comprising instructions for causing a
45. 1. A three dimensional (3D) scanner in communication with a display, comprising: one or more optical sensors; means for scanning an object having a surface using the one or more optical sensors to generate first data corresponding to a three-dimensional (3D) shape of the surface of the object; means for determining, for each of a plurality of respective portions of the surface of the object, whether the quantity or quality of the first data satisfies a predefined threshold corresponding to the quantity or quality of data required to reconstruct the shape of the portion of the surface of the object to a predefined accuracy; means for further scanning the object using the one or more optical sensors enabled after determining whether the quantity or quality of the first data satisfies the predefined threshold corresponding to a quantity or quality of data required to reconstruct the shape of the portion of the surface of the object to the predefined accuracy, for each respective portion of the plurality of portions of the surface of the object, the further scanning generating second data corresponding to the 3D shape of the surface of the object; means for discarding at least a portion of the second data, the discarded portion of the second data corresponding to each portion of the surface of the object for which the quantity or quality of the first data meets the predefined threshold; A three-dimensional (3D) scanner comprising:
Citation Information
Patent Citations
Three-dimensional image scanner
JP1999213140A
Visualization of 3D data acquisition
JP2009523552A
Laser scanner or laser tracking device with projector
JP2013539541A
Three-dimensional scanning device and methods
US20180227570A1
Method and system for 3D scene change detection
WO2006027339A2
