# US 12,182,936 B2 · Systems and methods for pitch determination

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,182,936 B2
- Document ID: US12182936B2
- Status: Granted
- Kind: B2
- Application number: 18/505,997
- Filed: 2023-11-09
- Published: 2024-05-16
- Granted: 2024-12-31
- Earliest claimed: 2020-08-26
- Assignees: Hover Inc.
- Applicants: Hover Inc.
- Inventors: William Castillo; Giridhar Murali; Brandon Scott; Kai Jia; Jeffrey Sommers; Dario Rethage
- Web page: https://patentgrep.com/patent/US12182936B2

## CPC

- G06T 7/11: Region-based segmentation
- G06T 17/00: Three-dimensional [3D] modelling for computer graphics
- G06N 3/045: Combinations of networks
- G06N 3/0464: Convolutional networks [CNN, ConvNet]
- G06N 3/08: Learning methods
- G06N 3/09: Supervised learning
- G06T 7/10: Segmentation; Edge detection (motion-based segmentation G06T7/215)
- G06T 7/70: Determining position or orientation of objects or cameras (camera calibration G06T7/80)
- G06T 19/20: Editing of three-dimensional [3D] images, e.g. changing shapes or colours, aligning objects or positioning parts
- G06T 2207/10032: Satellite or aerial image; Remote sensing
- G06T 2207/20081: Training; Learning
- G06T 2207/20084: Artificial neural networks [ANN]
- G06T 2207/20092: Interactive image processing based on input by user
- G06T 2207/30184: Infrastructure
- G06T 2210/04: Architectural design, interior design
- G06T 2219/2004: Aligning objects, relative positioning of parts
- G06T 2219/2016: Rotation, translation, scaling
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS

## Abstract

Systems and methods are provided for pitch determination. An example method includes obtaining an image depicting a structure, the image being captured via a user device positioned proximate to the structure. The image is segmented to identify, at least, a roof facet of the structure. An eave vector and a rake vector which are associated with the roof facet are determined. A normal vector of the roof facet is calculated based on the eave vector and the rake vector, and compared to a vector indicating a vertical direction such as gravity. The angle made out by the normal and a gravity vector may be utilized to calculate the pitch of the roof facet.

## Claims

### Claim 1

A method implemented by a system of one or more computers, the method comprising:
obtaining an image depicting a structure, the image being captured via a user device positioned proximate to the structure;
segmenting the image to identify, at least, an eave vector and a rake vector which are associated with a roof facet of the structure;
adjusting the eave vector and rake vector with a mutual transform to produce a perpendicular angle between the eave vector and rake vector;
calculating a cross product vector based on the transformed eave vector and the rake vector; and
extracting a normal vector of the roof facet based on an inverse of the mutual transform being applied to the cross product vector.

### Claim 2 (depends on 1)

The method of claim 1, wherein a pitch associated with the roof facet is determined based on the normal vector and a gravity vector indicative of a vertical direction.

### Claim 3 (depends on 2)

The method of claim 2, wherein the gravity vector is indicative of the vertical direction based on information associated with the image, the information reflecting an orientation of the user device during capture of the image.

### Claim 4 (depends on 2)

The method of claim 2, wherein the gravity vector is indicative of the vertical direction based on information associated with the image, the information being determined based on augmented reality information derived by the user device.

### Claim 5 (depends on 4)

The method of claim 4, wherein the gravity vector is indicative of the vertical direction defined according to a vanishing point coordinate system associated with the structure.

### Claim 6 (depends on 5)

The method of claim 5, wherein determining the vanishing point coordinate system comprises:
identifying a plurality lines of the structure;
identifying one or more points where at least two lines of the plurality of lines intersect; and
generating the vanishing point coordinate system based on the one or more points.

### Claim 7 (depends on 1)

The method of claim 1, wherein segmenting the image is based on application of a machine learning model.

### Claim 8 (depends on 7)

The method of claim 7, wherein the machine learning model is a neural network, and wherein segmenting the image comprises computing a forward pass of the image with respect to the neural network.

### Claim 9 (depends on 1)

The method of claim 1, wherein segmenting the image is based on user input provided via a user.

### Claim 10 (depends on 9)

The method of claim 9, wherein the user input is provided to an interactive user interface, and wherein the interactive user interface:
receives user input representing a line on the image, wherein the system is configured to assign points in the image as corresponding to the eave vector or rake vector based on the user input; and
update to graphically represent the eave vector or rake vector.

### Claim 11 (depends on 1)

The method of claim 1, wherein the image was captured below a maximum height of the structure.

### Claim 12 (depends on 1)

The method of claim 1, wherein the system is configured to determine a plurality of surface normals corresponding to a plurality of roof facets.

### Claim 13

A system comprising:
one or more processors; and
non-transitory computer-readable media storing instructions which, when executed by the one or more processors, cause the one or more processors to:
obtain an image depicting a structure, the image being captured via a user device positioned proximate to the structure;
segment the image to identify, at least, an eave vector and a rake vector which are associated with a roof facet of the structure;
adjust the eave vector and rake vector with a mutual transform to produce a perpendicular angle between the eave vector and rake vector;
calculate a cross product vector based on the transformed eave vector and the rake vector; and
extract a normal vector of the roof facet based on an inverse of the mutual transform being applied to the cross product vector.

### Claim 14 (depends on 13)

The system of claim 13, wherein a pitch associated with the roof facet is determined based on the normal vector and a gravity vector indicative of a vertical direction.

### Claim 15 (depends on 14)

The system of claim 14, wherein the gravity vector is indicative of the vertical direction based on information associated with the image, the information reflecting an orientation of the user device during capture of the image.

### Claim 16 (depends on 14)

The system of claim 14, wherein the gravity vector is indicative of the vertical direction based on information associated with the image, the information being determined based on augmented reality information derived by the user device.

### Claim 17 (depends on 16)

The system of claim 16, wherein the instructions further cause the one or more processors to:
identify a plurality lines of the structure;
identify one or more points where at least two lines of the plurality of lines intersect; and
generate a vanishing point coordinate system based on the one or more points, the vanishing point coordinate system associated with the structure;
wherein the vertical direction is defined according to the vanishing point coordinate system.

### Claim 18 (depends on 13)

The system of claim 13, wherein to segment the image the instructions cause the one or more processors to compute a forward pass of the image with respect to a neural network.

### Claim 19 (depends on 13)

The system of claim 13, wherein to segment the image the instructions cause the one or more processors to segment the image based on user input provided via a user; and
wherein the instructions further cause the one or more processors to provide the user input to an interactive user interface, the interactive user interface configured to:
receive user input representing a line on the image, wherein the instructions cause the one or more processors to assign points in the image as corresponding to the eave vector or rake vector based on the user input; and
update to graphically represent the eave vector or rake vector.

### Claim 20

A non-transitory computer storage media storing instructions that when executed by a system of one or more processors, cause the one or more processors to perform operations comprising:
obtaining an image depicting a structure, the image being captured via a user device positioned proximate to the structure;
segmenting the image to identify, at least, an eave vector and a rake vector which are associated with a roof facet of the structure;
adjusting the eave vector and rake vector with a mutual transform to produce a perpendicular angle between the eave vector and rake vector;
calculating a cross product vector based on the transformed eave vector and the rake vector; and
extracting a normal vector of the roof facet based on an inverse of the mutual transform being applied to the cross product vector.

### Claim 21 (depends on 20)

The non-transitory computer storage media of claim 20, wherein a pitch associated with the roof facet is determined based on the normal vector and a gravity vector indicative of a vertical direction.

### Claim 22 (depends on 21)

The non-transitory computer storage media of claim 21, wherein the gravity vector is indicative of the vertical direction based on information associated with the image, the information reflecting an orientation of the user device during capture of the image.

### Claim 23 (depends on 21)

The non-transitory computer storage media of claim 21, wherein the gravity vector is indicative of the vertical direction based on information associated with the image, the information being determined based on augmented reality information derived by the user device.

### Claim 24 (depends on 23)

The non-transitory computer storage media of claim 23, wherein the gravity vector is indicative of the vertical direction defined according to a vanishing point coordinate system associated with the structure.

### Claim 25 (depends on 24)

The non-transitory computer storage media of claim 24, wherein determining the vanishing point coordinate system comprises:
identifying a plurality lines of the structure;
identifying one or more points where at least two lines of the plurality of lines intersect; and
generating the vanishing point coordinate system based on the one or more points.

### Claim 26 (depends on 20)

The non-transitory computer storage media of claim 20, wherein segmenting the image is based on application of a machine learning model.

### Claim 27 (depends on 26)

The non-transitory computer storage media of claim 26, wherein the machine learning model is a neural network, and wherein segmenting the image comprises computing a forward pass of the image with respect to the neural network.

### Claim 28 (depends on 20)

The non-transitory computer storage media of claim 20, wherein segmenting the image is based on user input provided via a user.

### Claim 29 (depends on 28)

The non-transitory computer storage media of claim 28, wherein the user input is provided to an interactive user interface, and wherein the interactive user interface:
receives user input representing a line on the image, wherein the system is configured to assign points in the image as corresponding to the eave vector or rake vector based on the user input; and
update to graphically represent the eave vector or rake vector.

### Claim 30 (depends on 20)

The non-transitory computer storage media of claim 20, wherein the image was captured below a maximum height of the structure.

### Claim 31 (depends on 20)

The non-transitory computer storage media of claim 20, wherein the system is configured to determine a plurality of surface normals corresponding to a plurality of roof facets.
