IP Library Granted Patent US 12,374,045
Granted Patent B2
US 12,374,045 · App. 18/120,005 · Granted Jul 29, 2025

Efficient texture mapping of a 3-D mesh

Inventors: Pavan Kumar Kamaraju (London, GB); Nikilesh Urella (Portland, OR); Flora Ponjou Tasse (London, GB)
Assignee: STREEM, LLC
G06T17/20G06T7/20G06T15/04G06T15/205G06T2200/08
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 12,374,045
App. No.
18/120,005
Granted
Jul 29, 2025
Kind
B2
Abstract

Frames for texturing a 3D mesh may be selected to minimize the number of frames required to completely texture the mesh, thus reducing the overhead of texturing. Keyframes are selected from a video stream on the basis of amount of overlap from previously selected keyframes, with the amount of overlap held below a predetermined threshold. The 3D mesh may also be refined and corrected to ensure a higher quality mesh application, including color correction of the selected keyframes. Other embodiments are described.

Claims (68)

1. A method for creating and texturing a 3D mesh as it is captured, comprising:

capturing, with a capturing device, a video of a three-dimensional space by moving the capturing device about the space, the video comprised of a plurality of images;

capturing, with motion sensors, motion data of the capturing device as it is moved about the space simultaneously with the captured video and obtaining depth data;

generating a 3D mesh of the space from the video and the motion data;

selecting, while the video and motion data are being captured, a plurality of keyframes from the plurality of images, each of the plurality of keyframes having an overlap with other individuals of the plurality of keyframes that is less than a predetermined threshold;

texturing, while the video and motion data are being captured, the 3D mesh with the plurality of keyframes;

detecting a warped or distorted area in the 3D mesh; and

retexturing all or a portion of the warped or distorted area with a different keyframe taken from a different perspective.

2. The method of claim 1 , wherein selecting the plurality of keyframes and texturing the 3D mesh is progressively carried out while the video of the three-dimensional space is being captured.

3. The method of claim 2 , further comprising refining the texturing as the capturing device recaptures previously textured areas.

4. The method of claim 1 , further comprising enhancing a geometry of the 3D mesh.

5. The method of claim 4 , wherein enhancing the geometry of the 3D mesh comprises:

capturing a plurality of 3D points; and

for each of the plurality of 3D points:

identifying one or more neighboring points within the 3D point's neighborhood, the neighborhood defined as a predetermined radius around the 3D point;

computing an intersection point of a normal of the 3D point and each neighboring point; and

tagging the 3D point as a curvature point when a distance between the 3D point and the intersection point is within a predetermined threshold; and

refining the 3D mesh to reflect a presence of the curvature points.

6. The method of claim 1 , wherein selecting the plurality of keyframes comprises:

determining from the motion data when the capturing device crosses a predetermined movement threshold;

capturing, when the capturing device crosses the movement threshold, an image from the video; and

determining whether the captured image is suitable for texturing.

7. The method of claim 1 , wherein selecting the plurality of keyframes comprises:

selecting for an initial keyframe a first image from the plurality of images;

adding the initial keyframe to the plurality of keyframes; and

for each image in at least a subset of the plurality of images:

determining an amount that the image overlaps each keyframe within the plurality of keyframes, and

if the amount of overlap is less than the predetermined threshold, adding the image to the plurality of keyframes.

8. The method of claim 7 , wherein determining the amount of image overlap between each image and a keyframe comprises:

creating an image plane that is contained within the keyframe, the image plane comprising a grid of 3D points;

determining how many of the 3D points are visible within the image; and

determining a percentage of visible points by dividing a number of visible points by a total number of 3D points.

9. The method of claim 1 , wherein texturing the 3D mesh comprises color correcting portions of each of the plurality of keyframes.

10. The method of claim 9 , wherein color correcting portions of each of the plurality of keyframes comprises color correcting triangles of each keyframe based on adjacent triangles.

11. A non-transitory computer-readable medium (NTCRM) containing instructions that, when executed by a processor, cause an apparatus to:

receive, from a capturing device, a video of a three-dimensional space by moving the capturing device about the space, the video comprised of a plurality of images;

receive, from motion sensors, motion data of the capturing device as it is moved about the space simultaneously with the captured video and obtaining depth data;

generating a 3D mesh of the space from the video and the motion data

select, while the video and motion data are being captured, a plurality of keyframes from the plurality of images, each of the plurality of keyframes having an overlap with other individuals of the plurality of keyframes that is less than a predetermined threshold; and

texture, while the video and motion data are being captured, the 3D mesh with the plurality of keyframes;

detecting a warped or distorted area in the 3D mesh; and

retexturing all or a portion of the warped or distorted area with a different keyframe taken from a different perspective.

12. The NTCRM of claim 11 , wherein the instructions are to cause the apparatus to select the plurality of keyframes and texture the 3D mesh progressively while the video of the three-dimensional space is being captured.

13. The NTCRM of claim 12 , wherein the instructions are to cause the apparatus to refine the texturing as additional captures of previously textured areas are received from the capturing device.

14. The NTCRM of claim 11 , wherein the instructions are to cause the apparatus to enhance a geometry of the 3D mesh.

15. The NTCRM of claim 14 , wherein to enhance the geometry of the 3D mesh, the instructions are to cause the apparatus to:

capture a plurality of 3D points; and

for each of the plurality of 3D points:

identify one or more neighboring points within the 3D point's neighborhood, the neighborhood defined as a predetermined radius around the 3D point;

compute an intersection point of a normal of the 3D point and each neighboring point; and

tag the 3D point as a curvature point when a distance between the 3D point and the intersection point is within a predetermined threshold; and

refine the 3D mesh to reflect a presence of the curvature points.

16. The NTCRM of claim 11 , wherein to select the plurality of keyframes, the instructions are to cause the apparatus to:

determine from the motion data when the capturing device crosses a predetermined movement threshold;

capture, when the capturing device crosses the movement threshold, an image from the video; and

determine whether the captured image is suitable for texturing.

17. The NTCRM of claim 11 , wherein to select the plurality of keyframes, the instructions are to cause the apparatus to:

select for an initial keyframe a first image from the plurality of images;

add the initial keyframe to the plurality of keyframes; and

for each image in at least a subset of the plurality of images:

determine an amount that the image overlaps each keyframe within the plurality of keyframes, and

if the amount of overlap is less than the predetermined threshold, add the image to the plurality of keyframes.

18. The NTCRM of claim 17 , wherein to determine the amount of image overlap between each image and a keyframe, the instructions are to cause the apparatus to:

create an image plane that is contained within the keyframe, the image plane comprising a grid of 3D points;

determine how many of the 3D points are visible within the image; and

determine a percentage of visible points by dividing a number of visible points by a total number of 3D points.

19. The NTCRM of claim 18 , wherein the grid of 3D points is a 32×32 grid of x-y-z coordinates.

20. The NTCRM of claim 11 , wherein the instructions are to further cause the apparatus to color correct portions of each of the plurality of keyframes.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 12, 2023
From: KAMARAJU, PAVAN KUMAR; URELLA, NIKILESH; TASSE, FLORA PONJOU
To: STREEM, LLC
Reel/Frame 063630/0227 →
Continuity (2)
Provisional Application 63318684 · Mar 10, 2022
Related Publication 20230290061A1 · Sep 14, 2023
References Cited (27)
US 6072496A · Guenter · 2000 [cited by examiner]
US 9883102B2 · Yamada · 2018 [cited by examiner]
US 10102657B2 · Huang · 2018 [cited by examiner]
US 10257494B2 · Sadi · 2019 [cited by examiner]
US 10304244B2 · Chuang · 2019 [cited by examiner]
US 10984587B2 · Duka · 2021 [cited by examiner]
US 11270505B2 · Ponjou Tasse · 2022 [cited by examiner]
US 11972556B2 · Holzer · 2024 [cited by examiner]
US 20070031062A1 · Pal · 2007 [cited by examiner]
US 20090022422A1 · Sorek · 2009 [cited by examiner]
US 20150243069A1 · Knoblauch · 2015 [cited by examiner]
US 20170069056A1 · Sachs · 2017 [cited by examiner]
US 20190320154A1 · Köhle · 2019 [cited by examiner]
US 20200234398A1 · Holzer · 2020 [cited by examiner]
US 20200242834A1 · Chachek · 2020 [cited by examiner]
US 20200372709A1 · Ponjou Tasse · 2020 [cited by examiner]
US 20200410752A1 · Jiang · 2020 [cited by examiner]
US 20210183044A1 · Lin · 2021 [cited by examiner]
US 20210209854A1 · Booth · 2021 [cited by examiner]
US 20210312702A1 · Holzer · 2021 [cited by examiner]
US 20210400193A1 · Ma · 2021 [cited by examiner]
US 20220301192A1 · Boardman · 2022 [cited by examiner]
US 20230290037A1 · Tasse · 2023 [cited by examiner]
US 20230290061A1 · Kumar Kamaraju · 2023 [cited by examiner]
US 20240144595A1 · Ponjou Tasse · 2024 [cited by examiner]
Lee et al., TextureFusion: High-Quality Texture Acquisition for Reas Time RGB-D Scanning; http://vclab.kaist.ac.kr/cvpr2020p1/TextureFusion-Paper.pdf; Aug. 5, 2020. [cited by applicant]
Fu et al., “Joint Texture and Geometry Optimization for RGB-D Reconstruction” https://yanqingan.github.io/docs/cvpr20_joint.pdf; Aug. 5, 2020. [cited by applicant]