IP Library Granted Patent US 10,726,558
Granted Patent B2
US 10,726,558 · App. 15/902,408 · Granted Jul 28, 2020

Machine learning-based image recognition of weather damage

Inventors: Harald Ruda (Walpole, MA); Nicholas Hughes (Los Angeles, CA); Alexander Hughes (New York, NY)
Assignee: Dolphin AI, Inc.
G06T7/13B64C39/024G06K9/00637G06K9/4604G06K9/6256G06Q40/08G06T7/001G06T7/0004G06T17/05B64C2201/123B64C2201/127B64C2201/141G06T2200/04G06T2207/10032G06T2207/20021G06T2207/20061G06T2207/20081G06T2207/20084
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,726,558
App. No.
15/902,408
Granted
Jul 28, 2020
Kind
B2
Abstract

Various image analysis techniques are disclosed herein that automatically assess the damage to a rooftop of a building or other object. In some aspects, the system may determine the extent of the damage, as well as the type of damage. Further aspects provide for the automatic detection of the roof type, roof geometry, shingle or tile count, or other features that can be extracted from images of the rooftop.

Claims (54)

1. A method comprising:

receiving, at a device, an image of a rooftop;

dividing, by the device, the image into a plurality of subdivision images, based on one or more characteristics of rooftop shingles or tiles depicted in the subdivision images by subdividing the image of the rooftop such that each of a plurality of the subdivision images depicts a) a number of shingle tabs or tiles within a predefined count range and b) damage to the shingles or tiles in a given subdivision image centered in the subdivision image, wherein the one or more characteristics comprise i) a count of shingle tabs or tiles and ii) damage to the shingles or tiles;

applying, by the device, a machine learning-based classifier comprising a convolutional neural network to one or more of the subdivision images, wherein the classifier is configured to detect damage done to a particular one of the shingles or tiles depicted in a particular subdivision image under analysis and to assign a damage type to the detected damage; and

sending, by the device, display data for display that is indicative of an extent of damage to the rooftop associated with the assigned damage type.

2. The method as in claim 1 , wherein the damage type is indicative of at least one of: hail damage, ice damage, wind damage, wear and tear damage, or human-made damage.

3. The method as in claim 1 , further comprising:

performing edge detection on the rooftop shingles or tiles in the image, to identify individual shingle tabs or tiles; and

determining the count of the individual shingle tabs or tiles depicted in each of the plurality of subdivision images.

4. The method as in claim 1 , further comprising:

estimating, by the device, a shingle tab or tile count for the rooftop, based on determined counts of individual shingle tabs or tiles in the image; and

estimating, by the device, an area of damaged shingle or tiles of the rooftop associated with the damage type.

5. The method as in claim 1 , wherein subdividing the image of the rooftop such that each of a plurality of the subdivision images depicts a number of shingle tabs or tiles within a predefined count range comprises:

applying, by the device, a second machine learning-based classifier to portions of the image of the rooftop, wherein the second classifier was trained to output a shingle tab or tile count for an assessed portion of the image of the rooftop.

6. The method as in claim 1 , further comprising:

forming, by the device, a three dimensional model of the rooftop, in part by correlating points or edges depicted in a plurality of images of the rooftop.

7. The method as in claim 1 , further comprising:

applying, by the device, a second machine learning-based classifier to the image of the rooftop, to identify a roof type associated with the rooftop comprising at least one of: asphalt shingled, fiberglass shingled, wood shingled, tile, slate, metal, or rubber membrane.

8. The method as in claim 1 , wherein the image of the rooftop was captured by an unmanned aerial vehicle (UAV).

9. The method as in claim 1 , further comprising:

applying, by the device, a second machine learning-based classifier to the image of the rooftop, to detect a boundary of the rooftop, wherein the classifier classifies the boundary as being one of: a ridge, a ridge edge, an occluding ridge, a hip, a hip edge, an occluding hip, a valley, a pitch change, an inside edge, an outside edge, or an occluding edge.

10. The method as in claim 1 , further comprising:

generating, by the device, a pseudo-orthomosaic image that combines the image of the rooftop with a plurality of other images of the rooftop by:

projecting the images of the rooftop onto a ground to form a Voroni map;

mapping the images of the rooftop to their corresponding Voroni regions of the map; and

sending, by the device, the pseudo-orthomosaic image for display.

11. The method as in claim 1 , wherein the machine learning-based classifier comprises a multilayer perceptron (MLP) model.

12. The method as in claim 1 , further comprising:

identifying, by the device, individual slopes of the rooftop based in part on the image of the rooftop.

13. The method as in claim 12 , further comprising:

performing, by the device, damage detection on one or more subdivision images on a per slope basis.

14. An apparatus, comprising:

one or more network interfaces to communicate with a network;

a processor coupled to the network interfaces and configured to execute one or more processes; and

a memory configured to store a process executable by the processor, the process when executed configured to:

receive an image of a rooftop;

divide the image into a plurality of subdivision images, based on one or more characteristics of rooftop shingles or tiles depicted in the subdivision images by subdividing the image of the rooftop such that each of a plurality of the subdivision images depicts a) a number of shingle tabs or tiles within a predefined count range and b) damage to the shingles or tiles in a given subdivision image centered in the subdivision image, wherein the one or more characteristics comprise i) a count of shingle tabs or tiles and ii) damage to the shingles or tiles;

apply a machine learning-based classifier comprising a convolutional neural network to one or more of the subdivision images, wherein the classifier is configured to detect damage done to a particular one of the shingles or tiles depicted in a particular subdivision image under analysis and to assign a damage type to the detected damage; and

send display data for display that is indicative of an extent of damage to the rooftop associated with the assigned damage type.

15. The apparatus as in claim 14 , wherein the damage type is indicative of at least one of: hail damage, ice damage, wind damage, wear and tear damage, or human-made damage.

16. The apparatus as in claim 14 , wherein the process when executed is further configured to:

estimating, by the apparatus, a shingle tab or tile count for the rooftop, based on the determined counts of individual shingle tabs or tiles in the image; and

estimating, by the apparatus, an area of damaged shingle or tiles of the rooftop associated with the damage type.

17. A tangible, non-transitory, computer-readable medium storing program instructions that cause a device to execute a process comprising:

receiving, at the device, an image of a rooftop;

dividing, by the device, the image into a plurality of subdivision images, based on one or more characteristics of rooftop shingles or tiles depicted in the subdivision images by subdividing the image of the rooftop such that each of a plurality of the subdivision images depicts a) a number of shingle tabs or tiles within a predefined count range and b) damage to the shingles or tiles in a given subdivision image centered in the subdivision image, wherein the one or more characteristics comprise i) a count of shingle tabs or tiles and ii) damage to the shingles or tiles;

applying, by the device, a machine learning-based classifier comprising a convolutional neural network to one or more of the subdivision images, wherein the classifier is configured to detect damage done to a particular one of the shingles or tiles depicted in a particular subdivision image under analysis and to assign a damage type to the detected damage; and

sending, by the device, display data for display that is indicative of an extent of damage to the rooftop associated with the assigned damage type.

18. The tangible, non-transitory, computer-readable medium of claim 17 , wherein the damage type is indicative of at least one of: hail damage, ice damage, wind damage, wear and tear damage, or human-made damage.

19. The tangible, non-transitory, computer-readable medium of claim 17 , the process further comprising:

estimating a shingle tab or tile count for the rooftop, based on determined counts of individual shingle tabs or tiles in the image; and

estimating an area of damaged shingle or tiles of the rooftop associated with the damage type.

20. The tangible, non-transitory, computer-readable medium of claim 17 , the process further comprising:

applying a second machine learning-based classifier to the image of the rooftop, to detect a boundary of the rooftop, wherein the classifier classifies the boundary as being one of: a ridge, a ridge edge, an occluding ridge, a hip, a hip edge, an occluding hip, a valley, a pitch change, an inside edge, an outside edge, or an occluding edge.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 22, 2018
From: RUDA, HARALD; HUGHES, NICHOLAS; HUGHES, ALEXANDER
To: DOLPHIN AI, INC.
Reel/Frame 045417/0398 →
Continuity (2)
Provisional Application 62463920 · Feb 27, 2017
Related Publication 20180247416A1 · Aug 30, 2018
Cited By (5)
US 12,347,163 US 12,475,515 US 12,614,270 US 12,632,748 US 12,657,633