IP Library Granted Patent US 12,165,259
Granted Patent B2
US 12,165,259 · App. 17/983,069 · Granted Dec 10, 2024

Computer vision systems and methods for modeling three-dimensional structures using two-dimensional segments detected in digital aerial images

Inventors: Jose Luis Esteban (Madrid, ES); Raul Cabido (Madrid, ES); Francisco Rivas (Madrid, ES)
Assignee: Insurance Services Office, Inc.
G06T17/10G06F9/3891G06T15/205G06T17/05G06T17/20G06V10/757G06V20/13G06V20/176G06V20/647
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,165,259
App. No.
17/983,069
Granted
Dec 10, 2024
Kind
B2
Abstract

A system for modeling a three-dimensional structure utilizing two-dimensional segments comprising a memory and a processor in communication with the memory. The processor extracts a plurality of two-dimensional segments corresponding to the three-dimensional structure from a plurality of images indicative of different views of the three-dimensional structure. The processor determines a plurality of three-dimensional candidate segments based on the extracted plurality of two-dimensional segments and adds the plurality of three-dimensional candidate segments to a three-dimensional segment cloud. The processor transforms the three-dimensional segment cloud into a wireframe indicative of the three-dimensional structure by performing a wireframe extraction process on the three-dimensional segment cloud.

Claims (98)

1. A system for modeling a three-dimensional structure utilizing two-dimensional segments comprising:

a memory; and

a processor in communication with the memory, the processor:

extracting a plurality of two-dimensional segments corresponding to the three-dimensional structure from a plurality of images indicative of different views of the three-dimensional structure;

determining a plurality of three-dimensional candidate segments based on the extracted plurality of two-dimensional segments;

adding the plurality of three-dimensional candidate segments to a three-dimensional segment cloud;

clustering the plurality of three-dimensional candidate segments of the three-dimensional segment cloud into a plurality of candidate segment clusters;

processing the plurality of candidate segment clusters to create a simplified three-dimensional segment cloud by removing outlier segments located outside of a three-dimensional bounding box corresponding to a building to be modeled;

transforming the simplified three-dimensional segment cloud into a wireframe indicative of the three-dimensional structure by performing a wireframe extraction process on the simplified three-dimensional segment cloud.

2. The system of claim 1 , wherein the processor:

captures the plurality of images from different camera viewpoints;

determines a projection plane, camera parameter sets, and image parameters associated with each image of the plurality of images; and

identifies, based on the projection plane, the camera parameter sets, and the image parameters, two-dimensional segments sets in each image of the plurality of images corresponding to edges of the three-dimensional structure.

3. The system of claim 1 , wherein the processor determines the plurality of three-dimensional candidate segments based on the plurality of two-dimensional segments by determining a plurality of ground three-dimensional segments, determining a plurality of horizontal three-dimensional segments, and determining a plurality of oblique three-dimensional segments.

4. The system of claim 3 , wherein the processor determines the plurality of ground three-dimensional segments by:

pairing each extracted two-dimensional segment to proximate extracted two-dimensional segments;

selecting parallel two-dimensional segment pairs;

determining a three-dimensional segment from each selected parallel two-dimensional segment pair; and

selecting ground three-dimensional segments from the determined three-dimensional segments.

5. The system of claim 3 , wherein the processor determines the plurality of horizontal three-dimensional segments by:

pairing each extracted two-dimensional segment with parallel extracted two-dimensional segments;

determining a three-dimensional segment from each two-dimensional segment pair;

compiling the determined three-dimensional segments, based on characteristics thereof, into a plurality of clusters; and

selecting at least one cluster from the plurality of clusters and determining a horizontal three-dimensional segment indicative of the selected cluster.

6. The system of claim 3 , wherein the processor determines the plurality of oblique three-dimensional segments by:

pairing each extracted two-dimensional segment with non-parallel extracted two-dimensional segments;

determining a three-dimensional segment from each two-dimensional segment pair;

compiling the determined three-dimensional segments, based on characteristics thereof, into a plurality of clusters; and

selecting at least one cluster from the plurality of clusters and determining an oblique three-dimensional segment indicative of the selected cluster.

7. The system of claim 1 , wherein the processor determines the plurality of three-dimensional segments based on the extracted plurality of two-dimensional segments by determining a plurality of epipolar three-dimensional segments, the processor:

pairing extracted two-dimensional segments in other views with compatible epipolar lines, the epipolar lines reducing comparisons between extracted two-dimensional segments;

determining a three-dimensional segment from each two-dimensional segment pair;

selecting three-dimensional segment pairs having a consensus above a predetermined threshold value; and

excluding outlier three-dimensional segment pairs.

8. A method for modeling a three-dimensional structure utilizing two-dimensional segments comprising the steps of:

extracting a plurality of two-dimensional segments corresponding to the three-dimensional structure from a plurality of images indicative of different views of the three-dimensional structure;

determining a plurality of three-dimensional candidate segments based on the extracted plurality of two-dimensional segments;

adding the plurality of three-dimensional candidate segments to a three-dimensional segment cloud;

clustering the plurality of three-dimensional candidate segments of the three-dimensional segment cloud into a plurality of candidate segment clusters;

processing the plurality of candidate segment clusters to create a simplified three-dimensional segment cloud by removing outlier segments located outside of a three-dimensional bounding box corresponding to a building to be modeled;

transforming the simplified three-dimensional segment cloud into a wireframe indicative of the three-dimensional structure by performing a wireframe extraction process on the simplified three-dimensional segment cloud.

9. The method of claim 8 , further comprising:

capturing the plurality of images from different camera viewpoints;

determining a projection plane, camera parameter sets, and image parameters associated with each image of the plurality of images; and

identifying, based on the projection plane, the camera parameter sets, and the image parameters, the two-dimensional segments sets in each image of the plurality of images corresponding to edges of the three-dimensional structure.

10. The method of claim 8 , further comprising determining a plurality of ground three-dimensional segments, determining a plurality of horizontal three-dimensional segments, and determining a plurality of oblique three-dimensional segments.

11. The method of claim 10 , further comprising determining the plurality of ground three-dimensional segments by:

pairing each extracted two-dimensional segment to proximate extracted two-dimensional segments;

selecting parallel two-dimensional segment pairs;

determining a three-dimensional segment from each selected parallel two-dimensional segment pair; and

selecting ground three-dimensional segments from among the determined three-dimensional segments.

12. The method of claim 10 , further comprising determining the plurality of horizontal three-dimensional segments by:

pairing each extracted two-dimensional segment with parallel extracted two-dimensional segments;

determining a three-dimensional segment from each two-dimensional segment pair;

compiling the determined three-dimensional segments, based on characteristics thereof, into a plurality of clusters; and

selecting at least one cluster from the plurality of clusters and determining a horizontal three-dimensional segment indicative of the selected cluster.

13. The method of claim 10 , further comprising determining the plurality of oblique three-dimensional segments by:

pairing each extracted two-dimensional segment with non-parallel extracted two-dimensional segments;

determining a three-dimensional segment from each two-dimensional segment pair;

compiling the determined three-dimensional segments, based on characteristics thereof, into a plurality of clusters; and

selecting at least one cluster from the plurality of clusters and determining an oblique three-dimensional segment indicative of the selected cluster.

14. The method of claim 8 , further comprising determining a plurality of epipolar three-dimensional segments by:

pairing extracted two-dimensional segments in other views with compatible epipolar lines, the epipolar lines reducing comparisons between extracted two-dimensional segments;

determining a three-dimensional segment from each two-dimensional segment pair;

selecting three-dimensional segment pairs having a consensus above a predetermined threshold value; and

excluding outlier three-dimensional segment pairs.

15. A non-transitory computer readable medium having instructions stored thereon for modeling a three-dimensional structure utilizing two-dimensional segments which, when executed by a processor, causes the processor to carry out the steps of:

extracting a plurality of two-dimensional segments corresponding to the three-dimensional structure from a plurality of images indicative of different views of the three-dimensional structure;

determining a plurality of three-dimensional candidate segments based on the extracted plurality of two-dimensional segments;

adding the plurality of three-dimensional candidate segments to a three-dimensional segment cloud;

clustering the plurality of three-dimensional candidate segments of the three-dimensional segment cloud into a plurality of candidate segment clusters;

processing the plurality of candidate segment clusters to create a simplified three-dimensional segment cloud by removing outlier segments located outside of a three-dimensional bounding box corresponding to a building to be modeled;

transforming the simplified three-dimensional segment cloud into a wireframe indicative of the three-dimensional structure by performing a wireframe extraction process on the simplified three-dimensional segment cloud.

16. The non-transitory computer readable medium of claim 15 , the processor further carrying out the steps of:

capturing the plurality of images from different camera viewpoints;

determining a projection plane, camera parameter sets, and image parameters associated with each image of the plurality of images; and

identifying, based on the projection plane, the camera parameter sets and the image parameters, the two-dimensional segments sets in each image of the plurality of images corresponding to edges of the three-dimensional structure.

17. The non-transitory computer readable medium of claim 15 , the processor further carrying out the steps of determining a plurality of ground three-dimensional segments, determining a plurality of horizontal three-dimensional segments, and determining a plurality of oblique three-dimensional segments.

18. The non-transitory computer readable medium of claim 17 , the processor determining the plurality of ground three-dimensional segments by carrying out the steps of:

pairing each extracted two-dimensional segment with proximate extracted two-dimensional segments;

selecting parallel two-dimensional segment pairs;

determining a three-dimensional segment from each selected parallel two-dimensional segment pair; and

selecting ground three-dimensional segments from the determined three-dimensional segments.

19. The non-transitory computer readable medium of claim 17 , the processor determining the plurality of horizontal three-dimensional segments by carrying out the steps of:

pairing each extracted two-dimensional segment with parallel extracted two-dimensional segments;

determining a three-dimensional segment from each two-dimensional segment pair;

compiling the determined three-dimensional segments, based on characteristics thereof, into a plurality of clusters; and

selecting at least one cluster from the plurality of clusters and determining a horizontal three-dimensional segment indicative of the selected cluster.

20. The non-transitory computer readable medium of claim 17 , the processor determining the plurality of oblique three-dimensional segments by carrying out the steps of:

pairing each extracted two-dimensional segment with non-parallel extracted two-dimensional segments;

determining a three-dimensional segment from each two-dimensional segment pair;

compiling the determined three-dimensional segments, based on characteristics thereof, into a plurality of clusters; and

selecting at least one cluster from the plurality of clusters and determining an oblique three-dimensional segment indicative of the selected cluster.

21. The non-transitory computer readable medium of claim 15 , the processor determining a plurality of epipolar three-dimensional segments by carrying out the steps of:

pairing extracted two-dimensional segments in other views with compatible epipolar lines, the epipolar lines reducing comparisons between extracted two-dimensional segments;

determining a three-dimensional segment from each two-dimensional segment pair;

selecting three-dimensional segment pairs having a consensus above a predetermined threshold value; and

excluding outlier three-dimensional segment pairs.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 8, 2022
From: GEOMNI, INC.
To: INSURANCE SERVICES OFFICE, INC.
Reel/Frame 061696/0049 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 8, 2022
From: ESTEBAN, JOSE LUIS; CABIDO, RAUL; RIVAS, FRANCISCO
To: GEOMNI, INC.
Reel/Frame 061899/0917 →
Continuity (3)
Continuation 16458710 · Jul 1, 2019
Provisional Application 62691869 · Jun 29, 2018
Related Publication 20230065774A1 · Mar 2, 2023