IP Library Granted Patent US 10,839,462
Granted Patent B1
US 10,839,462 · App. 15/975,873 · Granted Nov 17, 2020

System and methods for assessing a roof

Inventors: Bryan Allen Plummer (Champaign, IL); Drew Cross (Geneseo, IL); Nathan L. Tofte (Downs, IL)
Assignee: STATE FARM MUTUAL AUTOMOBILE INSURANCE COMPANY
G06Q40/08G06T15/08G06T2219/012
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,839,462
App. No.
15/975,873
Granted
Nov 17, 2020
Kind
B1
Abstract

A damage assessment module operating on a computer system automatically evaluates a roof, estimating damage to the roof by analyzing a point cloud of a roof. The damage assessment module identifies individual shingles from the point cloud and detects potentially damaged areas on each of the shingles. The damage assessment module then maps the potentially damaged areas of each shingle back to the point cloud to determine which areas of the roof are damaged. Based on the estimation, the damage assessment module generates a report on the roof damage.

Claims (20)

1. A system comprising: (A) one or more processors; and (B) one or more memory devices communicatively connected to the one or more processors, the one or more memories including a 3D point cloud representing a roof; wherein the one or more memory devices further include computer-readable instructions that, when executed, cause the one or more processors to: (i) retrieve from the one or more memories the 3D point cloud; (ii) utilize region growing segmentation to identify from the 3D point cloud a plurality of sets of points, each set of points representing an individual shingle on the roof, including doing the following for each set of points: identify a group of points from the 3D point cloud; determine a first measurement of a surface shape of the group of points; identify an additional one or more points from the 3D point cloud; add the additional one or more points to the group of points; determine a second measurement of the surface shape of the group of points; and remove the additional one or more points from the group of points when the second measurement of the surface shape exceeds a threshold; (iii) analyze each of the plurality of sets of points to identify a set of points representing a damaged shingle; and (iv) generate and display a report indicating the damaged shingle is damaged, wherein the displayed report includes one or more of: (a) a textual representation of damage done to the damaged shingle; or (b) a graphical representation of damage done to the damaged shingle.

2. The system of claim 1 , further comprising one or more 3-dimensional (3D) scanners for generating the 3D point cloud representing the roof.

3. The system of claim 1 , wherein the first measurement and second measurement each relate to at least one of: (i) curvature; or (ii) smoothness.

4. The system of claim 1 , wherein the instructions to analyze each of the plurality of sets of points to identify a set of points representing a damaged shingle comprise instructions to: compare the set of points to the other sets within the plurality of sets of points to determine that the set of points represents an outlier relative to the other sets.

5. The system of claim 1 , wherein the instructions to analyze each of the plurality of sets of points to identify a set of points representing a damaged shingle comprise instructions to: generate from the plurality of sets of points a model 3D point cloud representing a model shingle.

6. The system of claim 5 , wherein the instructions to analyze each of the plurality of sets of points to identify a set of points representing a damaged shingle further comprise instructions to: perform a comparison of the set of points to the model 3D point cloud by comparing the coordinate positions of points within the set of points to coordinate positions of points within the model 3D point cloud; and based upon the performed comparison, identify outlier points within the sets of points representing damage.

7. The system of claim 5 , wherein the instructions to analyze each of the plurality of sets of points to identify a set of points representing a damaged shingle further comprise instructions to: superimpose the set of points on the model 3D point cloud; for each point within the set of points: identify a nearest neighbor distance for a point within the model 3D point nearest each point; and analyze the nearest neighbor distance for each point within the set of points to identify outlier points within the set of points representing damage.

8. A computer-implemented method for estimating damage to a roof, the method comprising: (A) causing one or more processors to retrieve from a memory a 3D point cloud representing a roof (B) utilizing region growing segmentation to identify from the 3D point cloud a plurality of sets of points, each set of points representing an individual shingle on the roof, including doing the following for each set of points: (i) identifying a group of points from the 3D point cloud; (ii) determining a first measurement of a surface shape of the group of points; (iii) identifying an additional one or more points from the 3D point cloud; (iv) adding the additional one or more points to the group of points; (v) determining a second measurement of the surface shape of the group of points; and (vi) removing the additional one or more points from the group of points when the second measurement of the surface shape exceeds a threshold; (C) analyzing, by the one or more processors, each of the plurality of sets of points to identify a set of points representing a damaged shingle; and (D) generating and displaying a report indicating the damaged shingle is damaged, wherein the displayed report includes one or more of: (a) a textual representation of damage done to the damaged shingle; or (b) a graphical representation of damage done to the damaged shingle.

9. The computer-implemented method of claim 8 , the method further comprising generating, via one or more 3-dimensional (3D) scanners, the 3D point cloud representing the roof.

10. The computer-implemented method of claim 8 , wherein the first measurement and second measurement each relate to at least one of: (a) curvature; or (b) smoothness.

11. The method of claim 8 , wherein analyzing each of the plurality of sets of points to identify a set of points representing a damaged shingle comprises: comparing the set of points to the other sets within the plurality of sets of points to determine that the set of points represents an outlier relative to the other sets.

12. The method of claim 8 , wherein analyzing each of the plurality of sets of points to identify a set of points representing a damaged shingle comprises: generating from the plurality of sets of points a model 3D point cloud representing a model shingle.

13. The method of claim 12 , wherein analyzing each of the plurality of sets of points to identify a set of points representing a damaged shingle further comprises: performing a comparison of the set of points to the model 3D point cloud by comparing the coordinate positions of points within the set of points to coordinate positions of points within the model 3D point cloud; and based upon the performed comparison, identifying outlier points within the sets of points representing damage.

14. The method of claim 12 , wherein analyzing each of the plurality of sets of points to identify a set of points representing a damaged shingle further comprises: superimposing the set of points on the model 3D point cloud; for each point within the set of points: identifying a nearest neighbor distance for a point within the model 3D point nearest each point; and analyzing the nearest neighbor distance for each point within the set of points to identify outlier points within the set of points representing damage.

15. A non-transitory computer readable medium storing instructions that, when executed, cause one or more processors to: (A) retrieve a 3D point cloud representing a roof; (B) utilize region growing segmentation to identify from the 3D point cloud a plurality of sets of points, each set of points representing an individual shingle on the roof, including doing the following for each set of points: (i) identify a group of points from the 3D point cloud; (ii) determine a first measurement of a surface shape of the group of points; (iii) identify an additional one or more points from the 3D point cloud; (iv) add the additional one or more points to the group of points; (v) determine a second measurement of the surface shape of the group of points; and (vi) remove the additional one or more points from the group of points when the second measurement of the surface shape exceeds a threshold, wherein the first measurement and second measurement each relate to at least one of: (i) curvature; or (ii) smoothness; (C) analyze each of the plurality of sets of points to identify a set of points representing a damaged shingle; and (D) generate and display a report indicating the damaged shingle is damaged, wherein the displayed report includes one or more of: (a) a textual representation of damage done to the damaged shingle; or (b) a graphical representation of damage done to the damaged shingle.

16. The computer readable medium of claim 15 , wherein the first measurement and second measurement each relate to at least one of (i) curvature; or (ii) smoothness.

17. The computer readable medium of claim 15 , wherein the instruction to analyze each of the plurality of sets of points to identify a set of points representing a damaged shingle comprises instructions to: compare the set of points to the other sets within the plurality of sets of points to determine that the set of points represents an outlier relative to the other sets.

18. The computer readable medium of claim 15 , wherein the instructions to analyze each of the plurality of sets of points to identify a set of points representing a damaged shingle comprises instructions to: generate from the plurality of sets of points a model 3D point cloud representing a model shingle.

19. The computer readable medium of claim 18 , wherein the instruction to analyze each of the plurality of sets of points to identify a set of points representing a damaged shingle further comprises instructions to: perform a comparison of the set of points to the model 3D point cloud by comparing the coordinate positions of points within the set of points to coordinate positions of points within the model 3D point cloud; and identify, based upon the performed comparison, outlier points within the sets of points representing damage.

20. The computer readable medium of claim 18 , wherein the instruction to analyze each of the plurality of sets of points to identify a set of points representing a damaged shingle further comprises instructions to: superimpose the set of points on the model 3D point cloud; identify, for each point within the set of points, a nearest neighbor distance for a point within the model 3D point nearest each point; and analyze the nearest neighbor distance for each point within the set of points to identify outlier points within the set of points representing damage.

Assignments (3)
SECURITY INTEREST Recorded Oct 20, 2025
From: ROOFR INC.
To: STIFEL BANK
Reel/Frame 072598/0354 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 21, 2025
From: STATE FARM MUTUAL AUTOMOBILE INSURANCE CO.
To: ROOFR INC.
Reel/Frame 072083/0039 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 11, 2019
From: PLUMMER, BRYAN A.; CROSS, DREW; TOFTE, NATHAN L.
To: STATE FARM MUTUAL AUTOMOBILE INSURANCE COMPANY
Reel/Frame 051250/0916 →
Continuity (4)
Continuation 14964195 · Dec 9, 2015
Continuation 14323626 · Jul 3, 2014
Continuation 14047873 · Oct 7, 2013
Provisional Application 61799452 · Mar 15, 2013
Cited By (3)
US 12,198,318 US 12,450,664 US 12,664,591