IP Library Granted Patent US 12,189,389
Granted Patent B2
US 12,189,389 · App. 18/520,072 · Granted Jan 7, 2025

Determining a three-dimensional model of a scan target

Inventors: Peter Henry (San Francisco, CA); Jack Zhu (San Francisco, CA); Brian Richman (San Francisco, CA); Harrison Zheng (Palo Alto, CA); Hayk Martirosyan (San Francisco, CA); Matthew Donahoe (Redwood City, CA); Abraham Bachrach (Redwood City, CA); Adam Bry (Redwood City, CA); Ryan David Kennedy (Redwood City, CA); Himel Mondal (Windsor, CA); Quentin Allen Wah Yen Delepine (Cupertino, CA)
Assignee: SKYDIO, INC.
G05D1/0094B64C39/024B64D31/06B64D47/08G05B13/0265G05B17/02G05D1/0088G05D1/101G05D1/227G05D1/689G05D1/69G06T7/55G06T7/74G06T17/00G06T19/20G06V20/13G06V20/64H04N23/64H04N23/695H04N23/90B64U10/13B64U2101/30G06T2207/10032G06T2207/20221G06T2219/2004
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,189,389
App. No.
18/520,072
Granted
Jan 7, 2025
Kind
B2
Abstract

In some examples, one or more processors of an unmanned aerial vehicle (UAV), control a propulsion mechanism of the UAV to cause the UAV to navigate to a plurality of positions in relation to a scan target. Using one or more image sensors of the UAV, a first image of the scan target is captured from a first position of the plurality of positions, and a second image of the scan target is captured from a second position of the plurality of positions. A disparity is determined between the first image captured at the first position and the second image captured at the second position. A three-dimensional model corresponding to the scan target is determined based in part on the disparity determined between the first image and the second image.

Claims (79)

1. An unmanned aerial vehicle (UAV) comprising:

one or more image sensors;

a propulsion mechanism; and

one or more processors configured by executable instructions to at least:

control the propulsion mechanism to cause the UAV to navigate to a plurality of positions in relation to a scan target;

capture, using the one or more image sensors, a first image of the scan target from a first position of the plurality of positions, and a second image of the scan target from a second position of the plurality of positions;

determine a disparity between the first image captured at the first position and the second image captured at the second position; and

determine a three-dimensional (3D) model corresponding to the scan target based in part on the disparity determined between the first image and the second image.

2. The UAV as recited in claim 1 , the executable instructions further configuring the one or more processors to use distance information determined based at least on the disparity determined between the first image and the second image for determining respective locations in 3D space of one or more points of the 3D model, the one or more points representative of a surface of the scan target.

3. The UAV as recited in claim 1 , the executable instructions further configuring the one or more processors to:

based at least in part on determining the 3D model, determine a scan plan for scanning at least a portion of the scan target, the scan plan including a plurality of poses for the UAV to assume to capture images of the target, each pose corresponding to a point of a plurality of points included in the 3D model; and

control the propulsion mechanism of the UAV to cause the UAV to fly to the plurality of poses included in the scan plan.

4. The UAV as recited in claim 1 , wherein the 3D model is determined based at least in part on at least one of:

multi-view stereo analysis of the first image and the second image; or

performing Truncated Signed Distance Function (TSDF) fusion for the first image and the second image.

5. The UAV as recited in claim 1 , the executable instructions further configuring the one or more processors to navigate the UAV in relation to the scan target based at least in part on receiving an indication of the scan target, the indication of the scan target including at least one of:

an indication of a 2D shape forming a boundary within which at least a portion the scan target is located;

an indication of a shape corresponding to a surface of the scan target; or

an indication of a volume within which at least a portion of the scan target is located.

6. The UAV as recited in claim 1 , the executable instructions further configuring the one or more processors to navigate the UAV in relation to the scan target based at least in part on receiving an indication of the scan target via a user interface of a computing device in communication with the UAV while the UAV is in flight, wherein the indication of the scan target is based at least in part on an image of the scan target transmitted by the UAV to the computing device.

7. The UAV as recited in claim 1 , the executable instructions further configuring the one or more processors to:

capture a third image at a third position, wherein the first position, the second position, and the third position:

all correspond to the UAV traveling along a straight path in 3D space; or

all correspond to the UAV traveling along a curved path in 3D space; and

additionally determine the 3D model corresponding to the scan target based in part on at least one of:

a disparity determined between the first image and the third image, or

a disparity determined between the second image and the third image.

8. A method comprising:

controlling, by one or more processors of an unmanned aerial vehicle (UAV), a propulsion mechanism of the UAV to cause the UAV to navigate to a plurality of positions in relation to a scan target;

capturing, by the one or more processors of the UAV, using one or more image sensors of the UAV, a first image of the scan target from a first position of the plurality of positions, and a second image of the scan target from a second position of the plurality of positions;

determining, by the one or more processors of the UAV, a disparity between the first image captured at the first position and the second image captured at the second position; and

determining, by the one or more processors of the UAV, a three-dimensional (3D) model corresponding to the scan target based in part on the disparity determined between the first image and the second image.

9. The method as recited in claim 8 , further comprising:

determining, based at least on the disparity determined between the first image and the second image, distance information indicative of distance to one or more points of a surface of the scan target.

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

using the distance information determined based at least on the disparity determined between the first image and the second image for determining respective locations in 3D space of one or more points of the 3D model, the one or more points representative of the surface of the scan target.

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

based at least in part on determining the 3D model, determining a scan plan for scanning at least a portion of the scan target, the scan plan including a plurality of poses for the UAV to assume to capture images of the target, each pose corresponding to a point of a plurality of points included in the 3D model; and

controlling the propulsion mechanism of the UAV to cause the UAV to fly to the plurality of poses included in the scan plan.

12. The method as recited in claim 8 , wherein the 3D model is determined based at least in part on at least one of:

multi-view stereo analysis of the first image and the second image; or

performing Truncated Signed Distance Function (TSDF) fusion for the first image and the second image.

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

navigating the UAV in relation to the scan target based at least in part on receiving an indication of the scan target, the indication of the scan target including at least one of:

an indication of a 2D shape forming a boundary within which at least a portion the scan target is located;

an indication of a shape corresponding to a surface of the scan target; or

an indication of a volume within which at least a portion of the scan target is located.

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

navigating the UAV in relation to the scan target based at least in part on receiving an indication of the scan target via a user interface of a computing device in communication with the UAV while the UAV is in flight, wherein the indication of the scan target is based at least in part on an image of the scan target transmitted by the UAV to the computing device.

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

capturing a third image at a third position, wherein the first position, the second position, and the third position:

all correspond to the UAV traveling along a straight path in 3D space; or

all correspond to the UAV traveling along a curved path in 3D space; and

additionally determining the 3D model corresponding to the scan target based in part on at least one of:

a disparity determined between the first image and the third image, or

a disparity determined between the second image and the third image.

16. An aerial vehicle comprising

one or more image sensors; and

one or more processors configured by executable instructions to at least:

navigate the aerial vehicle to a plurality of positions in relation to a scan target;

capture, using the one or more image sensors, a first image of the scan target from a first position of the plurality of positions, and a second image of the scan target from a second position of the plurality of positions;

determine a disparity between the first image captured at the first position and the second image captured at the second position; and

determine a three-dimensional (3D) model corresponding to the scan target based in part on the disparity determined between the first image and the second image.

17. The aerial vehicle as recited in claim 16 , the executable instructions further configuring the one or more processors to use distance information determined based on the disparity determined between the first image and the second image for determining respective locations in 3D space of one or more points of the 3D model, the one or more points representative of a surface of the scan target.

18. The aerial vehicle as recited in claim 16 , the executable instructions further configuring the one or more processors to:

based at least in part on determining the 3D model, determine a scan plan for scanning at least a portion of the scan target, the scan plan including a plurality of poses for the aerial vehicle to assume to capture images of the target, each pose corresponding to a point of a plurality of points included in the 3D model; and

navigate the aerial vehicle to the plurality of poses included in the scan plan.

19. The aerial vehicle as recited in claim 16 , the executable instructions further configuring the one or more processors to navigate the aerial vehicle in relation to the scan target based at least in part on receiving an indication of the scan target, the indication of the scan target including at least one of:

an indication of a 2D shape forming a boundary within which at least a portion the scan target is located;

an indication of a shape corresponding to a surface of the scan target; or

an indication of a volume within which at least a portion of the scan target is located.

20. The aerial vehicle as recited in claim 16 , the executable instructions further configuring the one or more processors to navigate the aerial vehicle in relation to the scan target based at least in part on receiving an indication of the scan target via a user interface of a computing device in communication with the aerial vehicle while the aerial vehicle is in flight, wherein the indication of the scan target is based at least in part on an image of the scan target transmitted by the aerial vehicle to the computing device.

21. The aerial vehicle as recited in claim 16 , the executable instructions further configuring the one or more processors to:

capture a third image at a third position, wherein the first position, the second position, and the third position:

all correspond to the aerial vehicle traveling along a straight path in 3D space; or

all correspond to the aerial vehicle traveling along a curved path in 3D space; and

additionally determine the 3D model corresponding to the scan target based in part on at least one of:

a disparity determined between the first image and the third image, or

a disparity determined between the second image and the third image.

Assignments (2)
SECURITY INTEREST Recorded Dec 5, 2024
From: SKYDIO, INC.
To: ACQUIOM AGENCY SERVICES LLC
Reel/Frame 069516/0452 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 28, 2023
From: HENRY, PETER; ZHU, JACK; RICHMAN, BRIAN; ZHENG, HARRISON; MARTIROSYAN, HAYK; DONAHOE, MATTHEW; BACHRACH, ABRAHAM; BRY, ADAM; KENNEDY, RYAN DAVID; MONDAL, HIMEL; DELEPINE, QUENTIN ALLEN WAH YEN
To: SKYDIO, INC.
Reel/Frame 065691/0920 →
Continuity (5)
Continuation 18120643 · Mar 13, 2023
Continuation 17174583 · Feb 12, 2021
Provisional Application 63050860 · Jul 12, 2020
Provisional Application 62976231 · Feb 13, 2020
Related Publication 20240295876A1 · Sep 5, 2024
References Cited (30)
US 8977007B1 · Ferguson et al. · 2015 [cited by applicant]
US 10121117B1 · Boyd et al. · 2018 [cited by applicant]
US 11106911B1 · Fathi et al. · 2021 [cited by applicant]
US 11313791B2 · Mallery et al. · 2022 [cited by applicant]
US 11455894B2 · Henry et al. · 2022 [cited by applicant]
US 11455897B1 · Picardi et al. · 2022 [cited by applicant]
US 11573544B2 · Henry et al. · 2023 [cited by applicant]
US 20140118570A1 · Clehade et al. · 2014 [cited by applicant]
US 20160292869A1 · Hammond et al. · 2016 [cited by applicant]
US 20170004345A1 · Sasaki et al. · 2017 [cited by applicant]
US 20170220037A1 · Berestov et al. · 2017 [cited by applicant]
US 20170305546A1 · Ni et al. · 2017 [cited by applicant]
US 20180158197A1 · Dasgupta et al. · 2018 [cited by applicant]
US 20190163206A1 · Zhu et al. · 2019 [cited by applicant]
US 20190228573A1 · Sen et al. · 2019 [cited by applicant]
US 20190329407A1 · Qi et al. · 2019 [cited by applicant]
US 20190385361A1 · Siddiqui et al. · 2019 [cited by applicant]
US 20200349338A1 · Lagmanson · 2020 [cited by applicant]
US 20220019970A1 · Williams et al. · 2022 [cited by applicant]
US 20220094856A1 · Bhat et al. · 2022 [cited by applicant]
US 20220202294A1 · Razmara et al. · 2022 [cited by applicant]
US 20220301192A1 · Boardman et al. · 2022 [cited by applicant]
KR 1020190013176A · 2019 [cited by applicant]
WO 2016168722A1 · 2016 [cited by applicant]
WO 2019222798A1 · 2019 [cited by applicant]
Extended European Search Report received in corresponding European Application No. 21796993.0 dated Nov. 23, 2023. [cited by applicant]
International Search Report and Written Opinion of PCT/US2021/017795, mailed Nov. 12, 2021. [cited by applicant]
Brian Curless, et al., “A Volumetric Method for Building Complex Models from Range Images”, Proc. SIGGRAPH 1996, Computer Science Department, Stanford University, Stanford, CA 94305; http://www-graphics.stanford.edu. [cited by applicant]
Richard A. Newcombe, et al., “KinectFusion: Real-Time Dense Surface Mapping and Tracking” 2011 10th IEEE International Symposium of Mixed and Augmented Reality. [cited by applicant]
Richard A. Newcombe, “KinectFusion: Real-Time Dense Surface Mapping and Tracking” PhD. work from Imperial College, London, Microsoft Research, Cambridge, May 6, 2013. [cited by applicant]