IP Library Granted Patent US 10,970,929
Granted Patent B2
US 10,970,929 · App. 16/512,514 · Granted Apr 6, 2021

Boundary detection using vision-based feature mapping

Inventors: Jeffrey Roger Powers (San Francisco, CA); Evan Haley Fletcher (Boulder, CO); Andrew Zimmer (Boulder, CO)
Assignee: Occipital, Inc.
G06T19/003G06T19/006G06T2200/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 10,970,929
App. No.
16/512,514
Granted
Apr 6, 2021
Kind
B2
Abstract

A system configured to determine one or more boundaries of the space, for example, in 3D applications. In some cases, the system may generate point data including a set of safe points in a space and a set of unsafe points in the space, the space surrounding a user device of the system, generate a triangulation over a union of the set of safe points and the set of unsafe points, determine triangles of the triangulation that include at least one safe point and determine edges of determined triangles which are part of a single triangle that include at least one safe point. The system may then determine one or more boundaries of the space using the determined edges.

Claims (64)

1. A system comprising:

one or more processors;

non-transitory computer-readable media storing computer-executable instructions, which when executed by the one or more processors cause the one or more processors to:

generate point data including a set of safe points in a space and a set of unsafe points in the space, the space surrounding a user device of the system;

generate a triangulation over a union of the set of safe points and the set of unsafe points;

determine triangles of the triangulation that include at least one safe point;

determine edges of determined triangles which are part of a single triangle that includes at least one safe point; and

determine one or more boundaries of the space using the determined edges.

2. The system as recited in claim 1 , further comprising:

one or more sensor components configured to capture feature data representing detected points of obstacles in the space;

wherein the non-transitory computer-readable media stores additional computer-executable instructions, which when executed by the one or more processors cause the one or more processors to:

determine the unsafe points based at least in part on the feature data.

3. The system as recited in claim 2 , further comprising:

one or more measurement units configured to capture pose data associated with the position and orientation of the user device in the space;

wherein the non-transitory computer-readable media stores additional computer-executable instructions, which when executed by the one or more processors cause the one or more processors to:

determine the unsafe points based at least in part on the pose data.

4. The system as recited in claim 3 , further comprising:

wherein the non-transitory computer-readable media stores additional computer-executable instructions, which when executed by the one or more processors cause the one or more processors to:

determine the safe points based on pose data captured as a user moves the user device through the space.

5. The system as recited in claim 1 , wherein the non-transitory computer-readable media stores additional computer-executable instructions, which when executed by the one or more processors cause the one or more processors to:

prior to the generation of the triangulation, filter the unsafe points.

6. The system as recited in claim 5 , wherein filtering the unsafe points includes removing at least one unsafe point within a threshold distance of a detected vertical plane.

7. The system as recited in claim 5 , wherein filtering the unsafe points includes removing at least one unsafe point based on the vertical positioning of the unsafe points.

8. The system as recited in claim 5 , wherein filtering the unsafe points includes:

generating a concave hull around the safe points; and

removing at least one unsafe point inside the concave hull that is surrounded by safe points.

9. The system as recited in claim 1 , wherein the non-transitory computer-readable media stores additional computer-executable instructions, which when executed by the one or more processors cause the one or more processors to:

prior to the generation of the triangulation, generate one or more additional safe points based on a clear line of sight between a previously generated safe point and an unsafe point.

10. The system as recited in claim 1 , wherein the non-transitory computer-readable media stores additional computer-executable instructions, which when executed by the one or more processors cause the one or more processors to:

prior to the generation of the triangulation, project the set of unsafe points and the set of safe points onto a horizontal plane.

11. The method as recited in claim 10 , further comprising:

prior to the generation of the triangulation, generating one or more additional safe points based on a clear line of sight between a previously generated safe point and an unsafe point.

12. The system as recited in claim 1 , wherein the at least one safe point is included in the set of safe points.

13. A method comprising:

generating, by a user device, point data including a set of safe points in a space and a set of unsafe points in the space, the space surrounding the user device;

generating a triangulation over a union of the set of safe points and the set of unsafe points;

determining triangles of the triangulation that include at least one point included in the set of safe points;

determining edges of determined triangles which are part of a single triangle that includes the at least one point of the set of safe points; and

determining one or more boundaries of the space using the determined edges.

14. The method as recited in claim 13 , further comprising:

determining unsafe points of the set of unsafe points based at least in part on feature data representing points of obstacles in the space and pose data associated with the position and orientation of the user device in the space.

15. The method as recited in claim 13 , further comprising:

determining safe points of the set of safe points based at least in part on pose data associated with the position and orientation of the user device in the space, the pose data captured as a user moved the user device within the space.

16. The method as recited in claim 13 , further comprising:

prior to the generation of the triangulation, filtering points of the set of unsafe points by at least one of:

removing at least one first unsafe point within a threshold distance of a detected vertical plane;

removing at least one second unsafe point based on the vertical positioning of the unsafe points; and

removing at least one third unsafe point inside the concave hull around the safe points, the at least one third unsafe point being surrounded by safe points.

17. A non-transitory computer-readable media storing computer-executable instructions, which when executed by the one or more processors cause one or more processors to:

generate point data including a set of safe points in a space and a set of unsafe points in the space, the space surrounding a user device of the system;

generate a triangulation over a union of the set of safe points and the set of unsafe points;

determine triangles of the triangulation that include at least one safe point of the set of safe points;

determine edges of determined triangles which are part of a single triangle that includes at least one safe point of the set of safe points; and

determine one or more boundaries of the space using the determined edges.

18. The non-transitory computer-readable media as recited in claim 17 , wherein the non-transitory computer-readable media stores additional computer-executable instructions, which when executed by the one or more processors cause the one or more processors to:

determine unsafe points of the set of unsafe points based at least in part on feature data representing points of obstacles in the space and pose data associated with the position and orientation of the user device in the space; and

determine safe points of the set of safe points based at least in part on the pose data associated with the position and orientation of the user device in the space, the pose data captured as a user moved the user device within the space.

19. The non-transitory computer-readable media as recited in claim 17 , wherein the non-transitory computer-readable media stores additional computer-executable instructions, which when executed by the one or more processors cause the one or more processors to:

prior to the generation of the triangulation, filter the points of the set of unsafe points including at least one of:

removing at least one first unsafe point within a threshold distance of a detected vertical plane;

removing at least one second unsafe point based on the vertical positioning of the unsafe points; and

removing at least one third unsafe point inside the concave hull around the safe points, the at least one third unsafe point being surrounded by safe points.

20. The non-transitory computer-readable media as recited in claim 17 , wherein the non-transitory computer-readable media stores additional computer-executable instructions, which when executed by the one or more processors cause the one or more processors to:

prior to the generation of the triangulation, generate one or more additional safe points based on a clear line of sight between a previously generated safe point and an unsafe point.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 14, 2020
From: POWERS, JEFFREY ROGER; FLETCHER, EVAN HALEY; ZIMMER, ANDREW
To: OCCIPITAL, INC.
Reel/Frame 052387/0155 →
Continuity (2)
Provisional Application 62698632 · Jul 16, 2018
Related Publication 20200020157A1 · Jan 16, 2020