IP Library Granted Patent US 10,242,484
Granted Patent B1
US 10,242,484 · App. 15/786,298 · Granted Mar 26, 2019

UV mapping and compression

Inventors: Gianluca Cernigliaro (Wellington, NZ); Philip A. Chou (Culver City, CA); Eugene Joseph d'Eon (Wellington, NZ)
Assignee: 8i Limited
G06T15/04G06T9/008H04N19/186H04N19/423H04N19/94
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,242,484
App. No.
15/786,298
Granted
Mar 26, 2019
Kind
B1
Abstract

A machine can be specially configured to generate one or more atlases that include two-dimensional texture maps and their corresponding UV maps from a three-dimensional object, compress the atlases, decompress the atlases, store the atlases, access the atlases, communicate the atlases, apply the texture maps from the atlases to a three-dimensional model, or otherwise process the atlases, the texture maps, the UV maps, or any suitable combination thereof. The atlases, texture maps, UV maps, or any suitable combination thereof can be generated, compiled or otherwise created by the machine in a manner that is computationally efficient to compress and decompress using video compression and decompression techniques.

Claims (71)

1. A method comprising:

accessing, by one or more processors of a machine, a three-dimensional (3D) representation that defines a 3D surface of a 3D object;

generating, by one or more processors of the machine, an atlas of color information based on the 3D representation that defines the 3D surface of the 3D object, the generating of the atlas including:

encompassing the 3D surface in a bounding volume that includes a plurality of cubic blocks that subdivides the 3D surface;

for each cubic block that intersects the 3D surface among the plurality of cubic blocks included in the bounding volume, calculating a corresponding orthogonal projection of that cubic block onto a corresponding two-dimensional (2D) face of the bounding volume that encompasses the 3D surface, the orthogonal projection of that cubic block defining color information of a corresponding square block for that cubic block; and

grouping at least some of the square blocks that correspond to the orthogonally projected cubic blocks within a 2D image that specifies the color information generated based on the 3D representation that defines the 3D surface of the 3D object; and

providing, by one or more processors of the machine, the generated atlas of the color information, the generated atlas including the grouped square blocks.

2. The method of claim 1 , wherein:

the accessing of the 3D representation that defines the 3D surface of the 3D object includes accessing at least one of a 3D point cloud that defines a set of 3D points included in the 3D surface or a set of voxels that define the 3D surface.

3. The method of claim 1 , wherein:

the generating of the atlas further includes:

for each cubic block that intersects the 3D surface, determining the corresponding 2D face of the bounding volume by determining a corresponding dominant direction of that cubic block.

4. The method of claim 3 , wherein:

the generating of the atlas further includes:

for a first cubic block that intersects the 3D surface among the plurality of cubic blocks, filling an empty area of a corresponding first square block by determining its color information based on a further orthogonal projection of a second cubic block that is behind the first cubic block in the corresponding dominant direction.

5. The method of claim 3 , wherein:

the determining of the corresponding dominant direction for a first cubic block among the plurality of cubic blocks is based on a comparison of occluded areas among multiple orthogonal projections of the first cubic block onto corresponding 2D faces of the bounding volume.

6. The method of claim 1 , wherein:

in the generating of the atlas, the grouping of at least some of the square blocks is performed in accordance with a space partitioning tree.

7. The method of claim 1 , wherein:

in the generating of the atlas, the grouping of at least some of the square blocks includes separately grouping square blocks defined by orthogonal projection onto each 2D face of the bounding volume.

8. The method of claim 1 , wherein:

in the generating of the atlas, the grouping of at least some of the square blocks includes:

segmenting a first region of the 2D image;

determining a ratio of foreground information to background information in the first region;

subdividing the first region of the 2D image based on a comparison of the determined ratio to a threshold ratio.

9. The method of claim 1 , wherein:

the generating of the atlas further includes:

calculating an average color of a first square block among the grouped square blocks; and

recoloring at least one empty pixel in the first square block with the calculated average color.

10. The method of claim 1 , further comprising:

performing video compression of the generated atlas of the color information, the video compression generating a data stream that includes the grouped square blocks compressed in accordance with a video codec; and wherein

the providing of the generated atlas of the color information provides the generated data stream.

11. The method of claim 1 , wherein:

the providing of the generated atlas of the color information includes providing the grouped square blocks along with indicators of their corresponding dominant directions that indicate their corresponding 2D faces of the bounding volume.

12. A method comprising:

accessing, by one or more processors of a machine, an atlas of color information generated based on a three-dimensional (3D) representation that defines a 3D surface of a 3D object, the atlas including grouped square blocks whose color information is defined by orthogonal projections of cubic blocks included in a bounding volume that encompasses the 3D surface, the represented cubic blocks intersecting and subdividing the 3D surface of the 3D object;

by one or more processors of the machine, for each square block among the grouped square blocks, determining a corresponding two-dimensional (2D) face of the bounding volume by determining a corresponding dominant direction of the corresponding cubic block that intersects a corresponding portion of the 3D surface; and

by one or more processors of the machine, for each square block among the grouped square blocks, assigning its corresponding color information to a 3D model of the corresponding portion of the 3D surface intersected by the corresponding cubic block.

13. The method of claim 12 , wherein:

the determining of the corresponding 2D face of the bounding volume for at least a first square block among the grouped square blocks includes accessing a data stream that includes an indicator of the corresponding dominant direction of the corresponding cubic block.

14. The method of claim 12 , wherein:

the determining of the corresponding 2D face of the bounding volume for at least a first square block among the grouped square blocks is based on a comparison of occluded areas among multiple orthogonal projections of the corresponding cubic block onto corresponding 2D faces of the bounding volume.

15. The method of claim 12 , wherein:

the accessing of the atlas of color information includes performing video decompression of the accessed atlas of the color information, the video decompression generating a 2D image that includes the grouped square blocks decompressed in accordance with a video codec.

16. The method of claim 12 , further comprising:

for each cubic block that intersects the 3D surface of the 3D object, calculating an orthogonal projection of the cubic block onto a corresponding 2D face of the bounding volume that encompasses the 3D surface, the orthogonal projection defining the color information of corresponding square block for the cubic block.

17. A non-transitory machine-readable storage medium comprising instructions that, when executed by one or more processors of a machine, cause the machine to perform operations comprising:

accessing a three-dimensional (3D) representation that defines a 3D surface of a 3D object;

generating an atlas of color information based on the 3D representation that defines the 3D surface of the 3D object, the generating of the atlas including:

encompassing the 3D surface in a bounding volume that includes a plurality of cubic blocks that subdivides the 3D surface;

for each cubic block that intersects the 3D surface among the plurality of cubic blocks included in the bounding volume, calculating a corresponding orthogonal projection of that cubic block onto a corresponding two-dimensional (2D) face of the bounding volume that encompasses the 3D surface, the orthogonal projection of that cubic block defining color information of a corresponding square block for that cubic block; and

grouping at least some of the square blocks that correspond to the orthogonally projected cubic blocks within a 2D image that specifies the color information generated based on the 3D representation that defines the 3D surface of the 3D object; and

providing the generated atlas of the color information, the generated atlas including the grouped square blocks.

18. The non-transitory machine-readable storage medium of claim 17 , wherein:

the generating of the atlas further includes:

for each cubic block that intersects the 3D surface, determining the corresponding 2D face of the bounding volume by determining a corresponding dominant direction of that cubic block.

19. A system comprising:

one or more processors; and

a memory storing instructions that, when executed by at least one processor among the one or more processors, cause the system to perform operations comprising:

accessing a three-dimensional (3D) representation that defines a 3D surface of a 3D object;

generating an atlas of color information based on the 3D representation that defines the 3D surface of the 3D object, the generating of the atlas including:

encompassing the 3D surface in a bounding volume that includes a plurality of cubic blocks that subdivides the 3D surface;

for each cubic block that intersects the 3D surface among the plurality of cubic blocks included in the bounding volume, calculating a corresponding orthogonal projection of that cubic block onto a corresponding two-dimensional (2D) face of the bounding volume that encompasses the 3D surface, the orthogonal projection of that cubic block defining color information of a corresponding square block for that cubic block; and

grouping at least some of the square blocks that correspond to the orthogonally projected cubic blocks within a 2D image that specifies the color information generated based on the 3D representation that defines the 3D surface of the 3D object; and

providing the generated atlas of the color information, the generated atlas including the grouped square blocks.

20. The system of claim 19 , wherein:

in the generating of the atlas, the grouping of at least some of the square blocks includes:

segmenting a first region of the 2D image;

determining a ratio of foreground information to background information in the first region;

subdividing the first region of the 2D image based on a comparison of the determined ratio to a threshold ratio.

Assignments (2)
SECURITY INTEREST Recorded Dec 18, 2020
From: 8I LIMITED
To: VENTURE LENDING & LEASING IX, INC.
Reel/Frame 054699/0335 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 16, 2018
From: CERNIGLIARO, GIANLUCA; CHOU, PHILIP A.; D'EON, EUGENE JOSEPH
To: 8I LIMITED
Reel/Frame 046359/0096 →
Cited By (9)
US 12,272,018 US 12,400,044 US 12,406,402 US 12,417,603 US 12,456,229 US 12,541,883 US 12,579,729 US 12,632,992 US 12,664,718