IP Library Granted Patent US 11,010,606
Granted Patent B1
US 11,010,606 · App. 16/685,609 · Granted May 18, 2021

Cloud detection from satellite imagery

Inventor: Brett W. Bader (Lyons, CO)
Assignee: Maxar Intelligence Inc.
G06K9/0063G06K9/00664G06K9/6202G06T7/254G06T2207/10032G06T2207/30192
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 11,010,606
App. No.
16/685,609
Granted
May 18, 2021
Kind
B1
Abstract

Described herein are methods and systems for detecting clouds in satellite imagery captured using first and second sensor arrays that are carried by a satellite and physically offset from one another on the satellite. Movement mask data is produced based first image data and the second image data, obtained, respectively, using the first and second sensor arrays carried by the satellite. Cloud mask data is produced based on spectral information included one of the first and second image data. Cloud detection data is produced based on the movement mask data and the cloud mask data, the cloud detection data indicating where it is likely, based on both the movement mask data and the cloud mask data, that one or more clouds are represented within one of the first and second image data. The cloud detection data can be used in various ways to account for the clouds included within the satellite imagery.

Claims (131)

1. A method for detecting clouds in satellite imagery captured using first and second sensor arrays that are carried by a satellite and physically offset from one another on the satellite, the method comprising:

receiving first and second image data obtained, respectively, using the first and second sensor arrays carried by the satellite;

producing movement mask data based on dissimilarities identified between the first image data and the second image data;

producing cloud mask data based on spectral information included in one of the first and second image data;

intersecting the movement mask data with the cloud mask data to thereby produce intersection data; and

producing cloud detection data based on the intersection data.

2. The method of claim 1 , wherein:

the first image data includes first image information about a first geographic region;

the second image data includes second image information about the first geographic region, which differs from the first image information about the first geographic region included in the first image data;

the movement mask data indicates where it is likely that the dissimilarities between the first image data and the second image are due to movement of one or more objects within the first geographic region;

the cloud mask data indicates where it is likely, based on the spectral information included in the one of the first and second image data, that one or more clouds are represented within the one of the first and second image data; and

the cloud detection data indicates where it is likely, based on the dissimilarities between the first image data and the second image data, as well as based on the spectral information included in the one of the first and second image data, that one or more clouds are represented within the one of the first and second image data.

3. The method of claim 1 , wherein because the first sensor array used to obtain the second image data is physically offset on the satellite from the second sensor array used to obtain the second image data:

a second satellite viewing angle associated with the second image data obtained using the second sensor array differs from a first satellite viewing angle associated with the first image data obtained using the first sensor array, with a difference between the first and second satellite viewing angles being a parallax angle; and

a second time at which part of the second image data corresponding to a piece of a first geographic region is obtained using the second sensor array differs from a first time at which part of the first image data corresponding to the piece of the first geographic region is obtained using the first sensor array, with a difference between the first and second times being a temporal offset.

4. The method of claim 1 , wherein:

the first image data obtained using the first sensor array includes first spectral band data corresponding to a first spectral band,

the second image data obtained using the second sensor array includes second spectral band data corresponding to a second spectral band that is adjacent to and thereby proximate in wavelength to the first spectral band, and

the producing movement mask data comprises:

performing edge detection on the first spectral band data and the second spectral band data to thereby produce first edge image data and second edge image data;

computing dissimilarity values between corresponding image chips within the first and second edge image data;

comparing the dissimilarity values to a threshold; and

producing the movement mask data based on results of the comparing the dissimilarity values to the threshold.

5. The method of claim 1 , wherein the producing cloud mask data based on spectral information included in one of the first and second image data, comprises:

computing chroma and lightness values for each pixel of a plurality of pixels of the one of the first and second image data;

computing a cloud index value, for each pixel of the plurality of pixels, based on the chroma and lightness values computed for the pixel;

comparing the computed cloud index value, for each pixel of the plurality of pixels, to a threshold value; and

classifying each pixel of the plurality of pixels as either corresponding to a cloud or not based on results of the comparisons to the threshold value.

6. The method of claim 5 , wherein the computing the cloud index value, for each pixel of the plurality of pixels, is performing using the following equation:

index

=

L

a

C

2

+

b

where

index is the cloud index value for the pixel,

L is the lightness value calculated for the pixel,

C is the chroma value calculated for the pixel, and

a and b are constants.

7. The method of claim 5 , wherein the producing cloud mask data further comprises, after the classifying each pixel of the plurality of pixels as either corresponding to a cloud or not:

performing a binary opening morphological operation on results of the classifying, to thereby reduce a number of false positives included in the cloud mask data before the cloud mask data is intersected with the movement mask data to produce the intersection data.

8. The method of claim 1 , wherein the producing cloud detection data, based on the intersection data, comprises:

identifying, based on the intersection data, one or more groups of pixels that may correspond to a cloud;

for each group of pixels that may correspond to a cloud, determining a magnitude of movement and a direction of movement of the group; and

clustering groups of pixels for which the determined magnitude of movement and the determined direction of movement are similar one another to thereby identify one or more distinct banks of clouds that are included within the first and second image data.

9. The method of claim 8 , wherein, the producing the cloud detection data further comprises:

for each of the one or more distinct cloud banks identified as a result of the clustering, determining based on the first and second edge image data, additional pixels that correspond to the cloud bank;

classifying, as corresponding to a cloud, saturated pixels that are adjacent to another pixel that has already been classified as corresponding to a cloud;

performing a morphological fill operation to thereby classify, as corresponding to a cloud, pixels that are surrounded by other pixels that have already been classified as corresponding to a cloud;

up-sampling results of the morphological fill operation to increase resolution to an original resolution of the first and second image data;

performing a morphological dilation operation on results of the up-sampling to thereby produce dilated cloud detection data, wherein each pixel included in the dilated cloud detection data includes a respective cloud index value;

comparing the cloud index value, for each pixel of the dilated cloud detection data, to a threshold value; and

producing the cloud detection data based on results of the comparing the cloud index value, for each pixel of the dilated cloud detection data, to the threshold value.

10. A non-transitory processor readable storage device having processor readable code embodied on the processor read storage device, the processor readable code for programming one or more processors to perform a method comprising:

receiving first and second image data obtained, respectively, using the first and second sensor arrays carried by the satellite;

producing movement mask data based on dissimilarities identified between the first image data and the second image data;

producing cloud mask data based on spectral information included in one of the first and second image data;

intersecting the movement mask data with the cloud mask data to thereby produce intersection data; and

producing cloud detection data based on the intersection data.

11. The non-transitory processor readable storage device of claim 10 , wherein:

the first image data includes first image information about a first geographic region;

the second image data includes second image information about the first geographic region, which differs from the first image information about the first geographic region included in the first image data;

the movement mask data indicates where it is likely that the dissimilarities between the first image data and the second image are due to movement of one or more objects within the first geographic region;

the cloud mask data indicates where it is likely, based on the spectral information included in the one of the first and second image data, that one or more clouds are represented within the one of the first and second image data;

the cloud detection data indicates where it is likely, based on the dissimilarities between the first image data and the second image data, as well as based on the spectral information included in the one of the first and second image data, that one or more clouds are represented within the one of the first and second image data;

a second satellite viewing angle associated with the second image data obtained using the second sensor array differs from a first satellite viewing angle associated with the first image data obtained using the first sensor array, with a difference between the first and second satellite viewing angles being a parallax angle; and

a second time at which part of the second image data corresponding to a piece of the first geographic region is obtained using the second sensor array differs from a first time at which part of the first image data corresponding to the piece of the first geographic region is obtained using the first sensor array, with a difference between the first and second times being a temporal offset.

12. The non-transitory processor readable storage device of claim 10 , wherein:

the first image data obtained using the first sensor array includes first spectral band data corresponding to a first spectral band,

the second image data obtained using the second sensor array includes second spectral band data corresponding to a second spectral band that is adjacent to and thereby proximate in wavelength to the first spectral band, and

the producing movement mask data comprises:

performing edge detection on the first spectral band data and the second spectral band data to thereby produce first edge image data and second edge image data;

computing dissimilarity values between corresponding image chips within the first and second edge image data;

comparing the dissimilarity values to a threshold; and

producing the movement mask data based on results of the comparing the dissimilarity values to the threshold.

13. The non-transitory processor readable storage device of claim 10 , wherein the producing cloud mask data based on spectral information included in one of the first and second image data, comprises:

computing chroma and lightness values for each pixel of a plurality of pixels of the one of the first and second image data;

computing a cloud index value, for each pixel of the plurality of pixels, based on the chroma and lightness values computed for the pixel;

comparing the computed cloud index value, for each pixel of the plurality of pixels, to a threshold value; and

classifying each pixel of the plurality of pixels as either corresponding to a cloud or not based on results of the comparisons to the threshold value.

14. The non-transitory processor readable storage device of claim 13 , wherein the computing the cloud index value, for each pixel of the plurality of pixels, is performing using the following equation:

index

=

L

a

C

2

+

b

where

index is the cloud index value for the pixel,

L is the lightness value calculated for the pixel,

C is the chroma value calculated for the pixel, and

a and b are constants.

15. The non-transitory processor readable storage device of claim 13 , wherein the producing cloud mask data further comprises, after the classifying each pixel of the plurality of pixels as either corresponding to a cloud or not:

performing a binary opening morphological operation on results of the classifying, to thereby reduce a number of false positives included in the cloud mask data before the cloud mask data is intersected with the movement mask data to produce the intersection data.

16. The non-transitory processor readable storage device of claim 10 , wherein the producing cloud detection data, based on the intersection data, comprises:

identifying, based on the intersection data, one or more groups of pixels that may correspond to a cloud;

for each group of pixels that may correspond to a cloud, determining a magnitude of movement and a direction of movement of the group; and

clustering groups of pixels for which the determined magnitude of movement and the determined direction of movement are similar one another to thereby identify one or more distinct banks of clouds that are included within the first and second image data.

17. The non-transitory processor readable storage device of claim 16 , wherein the producing the cloud detection data further comprises:

for each of the one or more distinct cloud banks identified as a result of the clustering, determining based on the first and second edge image data, additional pixels that correspond to the cloud bank;

classifying, as corresponding to a cloud, saturated pixels that are adjacent to another pixel that has already been classified as corresponding to a cloud;

performing a morphological fill operation to thereby classify, as corresponding to a cloud, pixels that are surrounded by other pixels that have already been classified as corresponding to a cloud;

up-sampling results of the morphological fill operation to increase resolution to an original resolution of the first and second image data;

performing a morphological dilation operation on results of the up-sampling to thereby produce dilated cloud detection data, wherein each pixel included in the dilated cloud detection data includes a respective cloud index value;

comparing the cloud index value, for each pixel of the dilated cloud detection data, to a threshold value; and

producing the cloud detection data based on results of the comparing the cloud index value, for each pixel of the dilated cloud detection data, to the threshold value.

18. A method for detecting clouds in satellite imagery captured using first and second sensor arrays that are carried by a satellite and physically offset from one another on the satellite, the method comprising:

producing movement mask data based on first image data and the second image data, obtained, respectively, using the first and second sensor arrays carried by the satellite, the first image data including first image information about a first geographic region, and the second image data including second image information about the first geographic region, which differs from the first image information about the first geographic region included in the first image data;

producing cloud mask data based on spectral information included in one of the first and second image data, the cloud mask data indicating where it is likely, based on the spectral information included in the one of the first and second image data, that one or more clouds are represented within the one of the first and second image data; and

producing cloud detection data based on the movement mask data and the cloud mask data, the cloud detection data indicating where it is likely, based on both the movement mask data and the cloud mask data, that one or more clouds are represented within the one of the first and second image data.

19. The method of claim 18 , wherein the producing movement mask data comprises:

performing edge detection on the first image data and the second image data to thereby produce first edge image data and second edge image data;

computing dissimilarity values between corresponding image chips within the first and second edge image data; and

producing the movement mask data based on results of comparing the dissimilarity values to a threshold.

20. The method of claim 18 , wherein the producing cloud mask data based on spectral information included in one of the first and second image data, comprises:

computing color transformation values for each pixel of a plurality of pixels of the one of the first and second image data;

computing a cloud index value, for each pixel of the plurality of pixels, based on the color transformation values computed for the pixel;

comparing the computed cloud index value, for each pixel of the plurality of pixels, to a threshold value; and

classifying each pixel of the plurality of pixels as either corresponding to a cloud or not based on results of the comparisons to the threshold value.

21. A system for detecting clouds in satellite imagery captured using first and second sensor arrays that are carried by a satellite and physically offset from one another on the satellite, the system comprising:

one or more processors configured to

produce movement mask data based on first image data and second image data, obtained, respectively, using the first and second sensor arrays carried by the satellite, the first image data including first image information about a first geographic region, and the second image data including second image information about the first geographic region, which differs from the first image information about the first geographic region included in the first image data;

produce cloud mask data based on spectral information included in one of the first and second image data, the cloud mask data indicating where it is likely, based on the spectral information included in the one of the first and second image data, that one or more clouds are represented within the one of the first and second image data; and

produce cloud detection data based on the movement mask data and the cloud mask data, the cloud detection data indicating where it is likely, based on both the movement mask data and the cloud mask data, that one or more clouds are represented within the one of the first and second image data.

Assignments (10)
RELEASE OF SECURITY INTEREST Recorded Mar 3, 2026
From: SIXTH STREET LENDING PARTNERS, ACTING IN ITS CAPACITY AS AGENT
To: AURORA INSIGHT INC.; VANTOR INC. (F/K/A MAXAR INTELLIGENCE INC.); VANTOR SERVICES INC. (F/K/A MAXAR MISSION SOLUTIONS INC.); LANTERIS SPACE LLC (F/K/A MAXAR SPACE LLC); SPATIAL ENERGY, LLC; LANTERIS SPACE ROBOTICS LLC (F/K/A MAXAR SPACE ROBOTICS LLC); VANTOR HOLDINGS INC. (F/K/A MAXAR TECHNOLOGIES HOLDINGS INC.)
Reel/Frame 075021/0624 →
CERTIFICATE OF AMENDMENT Recorded Jan 7, 2026
From: MAXAR INTELLIGENCE INC.
To: VANTOR INC.
Reel/Frame 074270/0330 →
CHANGE OF NAME Recorded Nov 4, 2025
From: MAXAR INTELLIGENCE INC.
To: VANTOR INC.
Reel/Frame 073462/0438 →
RELEASE (REEL 060389/FRAME 0720) Recorded May 12, 2023
From: ROYAL BANK OF CANADA
To: MAXAR INTELLIGENCE INC.; MAXAR SPACE LLC
Reel/Frame 063633/0431 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded May 5, 2023
From: MAXAR INTELLIGENCE INC. (F/K/A DIGITALGLOBE, INC.); AURORA INSIGHT INC.; MAXAR MISSION SOLUTIONS INC. ((F/K/A RADIANT MISSION SOLUTIONS INC. (F/K/A THE RADIANT GROUP, INC.)); MAXAR SPACE LLC (F/K/A SPACE SYSTEMS/LORAL, LLC); SPATIAL ENERGY, LLC; MAXAR SPACE ROBOTICS LLC ((F/K/A SSL ROBOTICS LLC) (F/K/A MDA US SYSTEMS LLC)); MAXAR TECHNOLOGIES HOLDINGS INC.
To: SIXTH STREET LENDING PARTNERS, AS ADMINISTRATIVE AGENT
Reel/Frame 063660/0138 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT - RELEASE OF REEL/FRAME 060389/0782 Recorded May 4, 2023
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: MAXAR INTELLIGENCE INC.; MAXAR SPACE LLC
Reel/Frame 063544/0074 →
SECURITY AGREEMENT Recorded Jun 17, 2022
From: MAXAR INTELLIGENCE INC.; MAXAR SPACE LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 060389/0782 →
SECURITY AGREEMENT Recorded Jun 16, 2022
From: MAXAR INTELLIGENCE INC.; MAXAR SPACE LLC
To: ROYAL BANK OF CANADA
Reel/Frame 060389/0720 →
CHANGE OF NAME Recorded Jan 11, 2021
From: DIGITALGLOBE, INC.
To: MAXAR INTELLIGENCE INC.
Reel/Frame 055251/0083 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 19, 2019
From: BADER, BRETT W.
To: DIGITALGLOBE, INC.
Reel/Frame 051051/0616 →