# US 8,786,595 B2 · Systems and methods for estimating a parameter for a 3D model

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,786,595 B2
- Document ID: US8786595B2
- Status: Granted
- Kind: B2
- Application number: 12/482,327
- Filed: 2009-06-10
- Published: 2010-12-16
- Granted: 2014-07-22
- Earliest claimed: 2008-06-10
- Assignees: Pinpoint 3D
- Applicants: Brandon Baker
- Inventors: Brandon Baker
- Web page: https://patentgrep.com/patent/US8786595B2

## CPC

- G06T 5/70: Denoising; Smoothing
- G06T 5/40: using histogram techniques
- G06T 17/10: Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
- G06T 17/20: Finite element generation, e.g. wire-frame surface description, {tesselation}
- G06T 2200/04: involving 3D image data
- G06T 2207/20182: Noise reduction or smoothing in the temporal domain; Spatio-temporal filtering
- G06T 2210/52: Parallel processing
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL

## Abstract

The present invention estimates parameters for 3D models. Parameters may include, without limitation, surface topology, edge geometry, luminous or reflective characteristics, visual properties, characterization of noise in the signal, or other. A metric is estimated by quantifying a relationship between a received signal and a reference signal. The metric is then utilized to determine a parameter for a 3D model. The metric may include a measurement such as the cross-correlation of the received signal and the reference signal, or standard deviation of the difference of the received signal and the reference signal, for example. The parameter obtained may then be used to create a reference signal for determination of another parameter.

## Claims

### Claim 1

A method for refining a 3D computer model of the surface of a physical three dimensional object, the method comprising:
receiving surface data representing a contoured surface of a three dimensional object into memory of a computer having a processor, said surface data generated by a data acquisition device capable of generating the surface data;
estimating a noise level associated with the data with the processor;
identifying a plurality of lines within the surface data with the processor, the plurality of lines each defining one of a breakline or a boundary of the contoured surface;
segmenting the surface data along the line data with the processor into a plurality of line data kernels representing the plurality of lines and a plurality of surface data kernels representing a plurality of non-coplanar surfaces separated by the plurality of lines;
computing a first set of parameters with the processor for a directional filter based on the estimated noise level;
computing a second set of parameters with the processor for a surface filter based on the estimated noise level;
applying the directional filter to each of the plurality of line data kernels in a direction of the line data for each of the line data kernels using a first channel of the processor operating in parallel to simultaneously remove noise from each the plurality of line data kernels;
applying the surface filter to each of the plurality of surface data kernels using a second channel of the processor operating in parallel to the channel of the processor to simultaneously remove noise from each of the plurality of surface data kernels; and
generating refined surface data representing the contoured surface of the three dimensional object from the filtered line data kernels and the filtered surface data kernels by combining the separately filtered line data kernels and the separately filtered surface data kernels with the processor.

### Claim 2 (depends on 1)

The method of claim 1, wherein said estimating said noise level comprises estimating at least one of a correlation, a standard deviation of error, and a spatial relationship; and said receiving said surface data comprises receiving at least one of 3D spatial data, and reflectance data.

### Claim 3 (depends on 2)

The method of claim 2, wherein identifying the plurality of lines comprises at least one of:
determining non-coplanar surface intersections represented by the surface data with the processor; and
determining non-connected surface boundaries represented by the surface data with the processor.

### Claim 4 (depends on 3)

The method of claim 3, wherein estimating a noise level comprises:
estimating surface and line noise removal parameters with the processor;
verifying accuracy of noise removal from the plurality of surface data kernels and the plurality of line data kernels with the processor; and
updating surface and line noise removal parameters with the processor based on the verified accuracy.

### Claim 5 (depends on 3)

The method of claim 3, wherein defining non-connected surface boundaries comprises:
identifying non-connected surfaces from the surface data;
parametrically defining adjacent non-connected surfaces from the surface data; and
processing parametrically defined adjacent non-connected surfaces with the processor.

### Claim 6 (depends on 5)

The method of claim 5, wherein identifying non-connected surfaces comprises determining an appropriate threshold to distinguish connected surfaces from nonconnected surfaces with the processor.

### Claim 7 (depends on 3)

The method of claim 3 further comprising utilizing reflective data associated with the object to enhance a 3D computer model with at least one of:
aligning the reflective data to 3D spatial data with the processor;
creating geometric edges of polygons to correspond with edges of high deviation in the reflective data with the processor;
generating a bump map with the processor;
generating a depth map with the processor; and
mapping error information to 3D spatial data with the processor.

### Claim 8 (depends on 4)

The method of claim 4 wherein updating said surface and line noise removal parameters comprises updating at least one of: iso lines; gradient vector; curvature; slope; and level of noise.

### Claim 9 (depends on 1)

The method of claim 1, further comprising:
performing in parallel a plurality of operations on the surface and line data using a plurality of channels of the processor selected from a group comprising a graphics processing unit (GPU), network cluster, supercomputer, and central processing unit (CPU);
exporting results of the plurality of operations; and
utilizing exported results in at least one subsequent operation.

### Claim 10 (depends on 1)

The method of claim 1 wherein:
estimating said noise level comprises at least one of: estimating a correlation, a standard deviation of error, and a spatial relationship;
receiving surface data comprises receiving at least one of: 3D spatial data, and reflectance data;
said receiving said reference data comprises receiving at least one of:
wavelet, sinusoid, reflectance data, shifted version of basis signal, 3D spatial data, and the parameter determined from the noise level; and
said determining said parameter comprises determining at least one of:
curvature, 3D surface, slope, angle, position, delay, topology, geometry, noise, boundary, non-coplanar surface intersection, normal vector, tangent plane, gradient, simple shape, and contour line.

### Claim 11 (depends on 3)

The method of claim 3, wherein determining non-connected surface boundaries comprises:
identifying non-connected objects;
parametrically defining adjacent non-connected objects; and
processing parametrically defined adjacent non-connected objects.

### Claim 12 (depends on 11)

The method of claim 11, wherein identifying non-connected objects comprises determining a threshold to distinguish connected objects from non-connected objects.

### Claim 13 (depends on 1)

The method of claim 1, wherein determining a 3D surface further comprises utilizing reflective data associated with the object to enhance a 3D computer model by at least one of:
aligning reflective data to 3D spatial data;
creating geometric edges of polygons to correspond with edges of high deviation in reflective data;
generating a bump map;
generating a depth map; and
mapping error information to 3D spatial data.

### Claim 14 (depends on 4)

The method of claim 4 wherein said estimating said noise removal parameters comprises estimating at least one of: iso lines;
gradient vector; curvature; slope; and level of noise.

### Claim 15 (depends on 9)

The method of claim 9 wherein utilizing said exported results comprises:
detecting redundant data among a plurality of segments; and
eliminating redundant data.

### Claim 16

A system operable to determine a parameter for a 3D computer model of a three-dimensional object, comprising:
a processing unit having a plurality of channels; and
a program storage device carrying instructions that, when executed, cause the processing unit to:
receive surface data representing a contoured surface of a three dimensional object into memory of a computer having a processing unit, said surface data generated by a data acquisition device capable of generating the surface data;
receive a reference signal into the memory of the processing unit, the reference signal based on the surface property of the object related to the data generated by the data acquisition device;
estimate a noise level associated with the data with the processing unit;
identify a plurality of lines within the surface data with the processing unit, the plurality of lines each defining one of a breakline or a boundary of the contoured surface;
segment the surface data along the line data with the processing unit into a plurality of line data kernels representing the plurality of lines and a plurality of surface data kernels representing a plurality of non-coplanar surfaces separated by the plurality of lines;
compute a first set of parameters with the processing unit for a directional filter based on the estimated noise level;
compute a second set of parameters with the processing unit for a surface filter based on the estimated noise level;
apply the directional filter to each of the plurality of line data kernels in a direction of the line data for each of the line data kernels using a first channel of the processing unit operating in parallel to simultaneously remove noise from each the plurality of line data kernels;
apply the surface filter to each of the plurality of surface data kernels using a second channel of the processing unit operating in parallel to the channel of the processing unit to simultaneously remove noise from each of the plurality of surface data kernels; and
generate refined surface data representing the contoured surface of the three dimensional object from the filtered line data kernels and the filtered surface data kernels by combining the separately filtered line data kernels and the separately filtered surface data kernels with the processing unit.

### Claim 17 (depends on 16)

The system of claim 16 wherein said noise level comprises at least one of: a correlation, a standard deviation of error and a spatial relationship.

### Claim 18 (depends on 16)

The system of claim 16 wherein the plurality of lines comprises at least one of:
non-coplanar surface intersections; and
non-connected surface boundaries.

### Claim 19 (depends on 18)

The system of claim 18 wherein estimating a noise level comprises:
estimating surface and line noise removal parameters with the processing unit;
verifying accuracy of noise removal from the plurality of surface data kernels and the plurality of line data kernels with the processing unit; and
updating surface and line noise removal parameters with the processing unit based on the verified accuracy.

### Claim 20 (depends on 18)

The system of claim 18, wherein defining non-connected surface boundaries comprises:
identifying non-connected surfaces from the surface data;
parametrically defining adjacent non-connected surfaces from the surface data; and
processing parametrically defined adjacent non-connected surfaces with the processor.

### Claim 21 (depends on 20)

The system of claim 20, wherein identifying non-connected surfaces comprises determining an appropriate threshold to distinguish connected surfaces from nonconnected surfaces with the processor.

### Claim 22 (depends on 18)

The system of claim 18, further comprising utilizing reflective data associated with the object to enhance a 3D computer model with at least one of:
aligning the reflective data to 3D spatial data with the processor;
creating geometric edges of polygons to correspond with edges of high deviation in the reflective data with the processor;
generating a bump map with the processor;
generating a depth map with the processor; and
mapping error information to 3D spatial data with the processor.

### Claim 23 (depends on 19)

The system of claim 19, wherein updating said surface and line noise removal parameters comprises updating at least one of: iso lines;
gradient vector; curvature; slope; and level of noise.

### Claim 24 (depends on 16)

The method of claim 16, further comprising:
performing in parallel a plurality of operations on the surface and line data using a plurality of channels of the processor selected from a group comprising a graphics processing unit (GPU), network cluster, supercomputer, and central processing unit (CPU);
exporting results of the plurality of operations; and
utilizing exported results in at least one subsequent operation.

### Claim 25 (depends on 16)

The system of claim 16 wherein:
estimating said noise level comprises at least one of: estimating a correlation, a standard deviation of error, and a spatial relationship;
receiving surface data comprises receiving at least one of: 3D spatial data, and reflectance data;
said receiving said reference data comprises receiving at least one of: wavelet, sinusoid, reflectance data, shifted version of basis signal, 3D spatial data, and the parameter determined from the noise level; and
said determining said parameter comprises determining at least one of:
curvature, 3D surface, slope, angle, position, delay, topology, geometry, noise, boundary, non-coplanar surface intersection, normal vector, tangent plane, gradient, simple shape, and contour line.

### Claim 26 (depends on 18)

The system of claim 18, wherein determining non-connected surface boundaries comprises:
identifying non-connected objects;
parametrically defining adjacent non-connected objects; and
processing parametrically defined adjacent non-connected objects.

### Claim 27 (depends on 26)

The system of claim 26, wherein identifying non-connected objects comprises determining a threshold to distinguish connected objects from non-connected objects.

### Claim 28 (depends on 16)

The system of claim 16, wherein determining a 3D surface further comprises utilizing reflective data associated with the object to enhance a 3D computer model by at least one of:
aligning reflective data to 3D spatial data;
creating geometric edges of polygons to correspond with edges of high deviation in reflective data;
generating a bump map;
generating a depth map; and
mapping error information to 3D spatial data.

### Claim 29 (depends on 25)

The system of claim 25 wherein said estimating said noise removal parameters comprises estimating at least one of: iso lines; gradient vector; curvature; slope; and level of noise.

### Claim 30 (depends on 24)

The system of claim 24 wherein utilizing said exported results comprises:
detecting redundant data among a plurality of segments; and
eliminating redundant data.

### Claim 31 (depends on 16)

The system of claim 16, wherein the processing unit comprises one: of a graphics processing unit (GPU); a network cluster; a supercomputer; and, a central processing unit (CPU).
