BR112020026354B1 - METHOD, NON-TRAINER COMPUTER READABLE MEDIA AND SYSTEM - Google Patents

METHOD, NON-TRAINER COMPUTER READABLE MEDIA AND SYSTEM Download PDF

Info

Publication number
BR112020026354B1
BR112020026354B1 BR112020026354-0A BR112020026354A BR112020026354B1 BR 112020026354 B1 BR112020026354 B1 BR 112020026354B1 BR 112020026354 A BR112020026354 A BR 112020026354A BR 112020026354 B1 BR112020026354 B1 BR 112020026354B1
Authority
BR
Brazil
Prior art keywords
obscured
digital image
geographic
pixels
geographic units
Prior art date
Application number
BR112020026354-0A
Other languages
Portuguese (pt)
Other versions
BR112020026354A2 (en
Inventor
Jie Yang
Cheng-en Guo
Elliott Grant
Original Assignee
Mineral Earth Sciences Llc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US16/016,495 external-priority patent/US10878588B2/en
Application filed by Mineral Earth Sciences Llc filed Critical Mineral Earth Sciences Llc
Publication of BR112020026354A2 publication Critical patent/BR112020026354A2/en
Publication of BR112020026354B1 publication Critical patent/BR112020026354B1/en

Links

Abstract

As implementações estão relacionadas à detecção/substituição de obstruções transitórias de imagens digitais de alta elevação. Uma imagem digital de uma área geográfica inclui pixels que se alinham espacialmente com as respectivas unidades geográficas da área geográfica. A análise da imagem digital pode descobrir pixel(s) obscurecido(s) que se alinham espacialmente com unidade(s) geográfica(s) da área geográfica que estão obscurecidos por obstrução(ões) transitória(s). A (s) impressão(ões) digital(is) de domínio da(s) unidade(s) geográfica(s) obscurecida(s) podem ser determinadas através de pixels de um corpo de imagens digitais que se alinham espacialmente com a uma ou mais unidades geográficas obscurecidas. Pixel(s) não obscurecido(s) da mesma/diferente imagem digital podem ser identificados que se alinham espacialmente com unidade(s) geográfica(s) não obscurecida(s) da área geográfica. A(s) unidade(s) geográfica(s) não obscurecida(s) também pode ter impressão(ões) digital(is) de domínio que correspondem à(s) impressão(ões) digital(is) de domínio da(s) unidade(s) geográfica(s) obscurecida(s). Os dados de pixel de substituição podem ser calculados com base nos pixels não obscurecidos e usados para gerar uma versão sem obstrução transitória da imagem digital.The implementations are related to detecting/replacing transient obstructions from high-elevation digital images. A digital image of a geographic area includes pixels that spatially align with the geographic area's respective geographic units. Digital image analysis may discover obscured pixel(s) that spatially align with geographic unit(s) of the geographic area that are obscured by transient obstruction(s). The domain fingerprint(s) of the obscured geographic unit(s) can be determined through pixels from a body of digital images that spatially align with the one or more geographic units obscured. Unobscured pixel(s) of the same/different digital image can be identified that spatially align with unobscured geographic unit(s) of the geographic area. The unobscured geographic unit(s) may also have domain fingerprint(s) that match the domain fingerprint(s) of the geographic unit(s) obscured. Replacement pixel data can be calculated based on the unobscured pixels and used to generate a transient-free version of the digital image.

Description

AntecedentesBackground

[0001] Imagens digitais capturadas de altas elevações, como imagens de satélite, imagens capturadas por veículos aéreos não tripulados, aeronaves tripuladas, ou imagens capturadas por aeronaves tripuladas de alta elevação (por exemplo, ônibus espaciais), são úteis para uma variedade de propósitos. Por exemplo, é benéfico observar os campos de cultivo ao longo do tempo para fins de monitoramento/planejamento agrícola. Outras aplicações úteis de imagens digitais de alta elevação incluem, mas não estão limitadas a planejamento urbano, monitoramento de reservatórios, monitoramento ambiental, vigilância, reconhecimento, e assim por diante.[0001] Digital images captured from high elevations, such as satellite images, images captured by unmanned aerial vehicles, manned aircraft, or images captured by high elevation manned aircraft (e.g., space shuttles), are useful for a variety of purposes . For example, it is beneficial to observe crop fields over time for agricultural monitoring/planning purposes. Other useful applications of high-elevation digital imaging include, but are not limited to, urban planning, reservoir monitoring, environmental monitoring, surveillance, reconnaissance, and so on.

[0002] Um desafio das imagens digitais de alta elevação é que 30-60% dessas imagens tendem a ser cobertas por nuvens, sombras, neblina e/ou neve (para simplificar, tudo isso será referido aqui como "obstruções transitórias"), dependendo na localização e hora. Obstruções transitórias, como nuvens, tornam as imagens digitais de alta elevação menos úteis, reduzem seu valor comercial e científico, e/ou diminuem a experiência de usuário com aplicativos que dependem de imagens digitais de alta elevação. Por exemplo, as nuvens introduzem lacunas nas observações feitas durante o monitoramento agrícola, potencialmente deixando informações importantes como datas de germinação ou colheita indisponíveis para uso.[0002] A challenge with high-elevation digital images is that 30-60% of these images tend to be covered by clouds, shadows, fog and/or snow (for simplicity, all of these will be referred to here as "transient obstructions"), depending on location and time. Transient obstructions, such as clouds, make high-elevation digital images less useful, reduce their commercial and scientific value, and/or diminish the user experience with applications that rely on high-elevation digital images. For example, clouds introduce gaps in observations made during agricultural monitoring, potentially leaving important information such as germination or harvest dates unavailable for use.

Sumáriosummary

[0003] A presente divulgação é geralmente direcionada a métodos, aparelhos e meios legíveis por computador (transitórios e não transitórios) para detectar e remover ruído causado por obstruções transitórias, como nuvens de imagens digitais de alta elevação de áreas geográficas, e para prever/estimar características do solo e/ou terreno obstruído por obstruções transitórias. Em várias implementações, dados de pixel de imagem digital de alta elevação adquiridos em vários domínios, como o domínio temporal (ou seja, várias imagens digitais capturadas ao longo do tempo), o domínio espacial e/ou o domínio espectral (por exemplo, RGB, infravermelho, etc..), podem ser usados para prever ou estimar dados que podem ser usados para substituir pixels que representam obstruções transitórias, como nuvens.[0003] The present disclosure is generally directed to methods, apparatus, and computer-readable means (transient and non-transient) for detecting and removing noise caused by transient obstructions, such as high-elevation digital image clouds of geographic areas, and for predicting/ estimate characteristics of the soil and/or terrain obstructed by transient obstructions. In various implementations, high-elevation digital image pixel data acquired in multiple domains, such as the temporal domain (i.e., multiple digital images captured over time), the spatial domain, and/or the spectral domain (e.g., RGB , infrared, etc.), can be used to predict or estimate data that can be used to replace pixels representing transient obstructions, such as clouds.

[0004] Em algumas implementações, os pixels de imagens digitais de alta elevação podem corresponder ou se alinhar espacialmente com unidades geográficas atômicas. Por exemplo, se um sensor de visão usado para capturar imagens digitais de alta elevação tem uma resolução de N metros quadrados por pixel, então cada unidade geográfica pode ser definida como uma área de N metros quadrados. Em outras implementações em que a fidelidade é menos crítica, vários pixels podem ser usados para definir uma unidade geográfica atômica. Assim, em várias imagens digitais de alta elevação capturadas de uma área geográfica ao longo do tempo, um determinado pixel pode se alinhar espacialmente com uma determinada unidade geográfica em cada imagem.[0004] In some implementations, pixels of high-elevation digital images may correspond to or spatially align with atomic geographic units. For example, if a vision sensor used to capture high-elevation digital images has a resolution of N square meters per pixel, then each geographic unit can be defined as an area of N square meters. In other implementations where fidelity is less critical, multiple pixels may be used to define an atomic geographic unit. Thus, in multiple high-elevation digital images captured of a geographic area over time, a given pixel may spatially align with a given geographic unit in each image.

[0005] Em algumas implementações, padrões ou "impressões digitais" em domínios individuais e/ou em vários domínios podem ser estabelecidos para unidades geográficas individuais. Essas impressões digitais podem ser usadas para identificar outras unidades geográficas que provavelmente teriam aparências semelhantes em uma imagem digital, assumindo que essas outras unidades geográficas não estão obscurecidas por nuvens. Por exemplo, suponha que uma determinada unidade geográfica esteja obscurecida por nuvens em uma determinada imagem digital de alta elevação. Uma unidade geográfica não obscurecida na mesma imagem digital ou outra imagem digital relacionada (por exemplo, tirada nas proximidades, tirada no mesmo intervalo de tempo, tirada do mesmo tipo de cultura, etc.) que corresponde a uma ou mais impressões digitais de domínio da unidade geográfica específica pode ser usado para prever/estimar dados que podem ser usados para substituir o pixel obscurecido.[0005] In some implementations, patterns or "fingerprints" in individual domains and/or across multiple domains may be established for individual geographic units. These fingerprints can be used to identify other geographic units that would likely have similar appearances in a digital image, assuming that these other geographic units are not obscured by clouds. For example, suppose a certain geographic unit is obscured by clouds in a certain high-elevation digital image. An unobscured geographic unit in the same digital image or another related digital image (e.g., taken nearby, taken in the same time range, taken from the same crop type, etc.) that corresponds to one or more domain fingerprints Specific geographic unit can be used to predict/estimate data that can be used to replace the obscured pixel.

[0006] Tal como aqui utilizado, uma impressão digital de domínio de uma unidade geográfica "corresponde" a uma impressão digital de domínio de outra unidade geográfica quando, por exemplo, uma medida de semelhança entre as duas impressões digitais satisfaz algum limite e/ou quando uma distância euclidiana entre incorporações latentes das impressões digitais satisfaz algum critério. Assim, deve ser entendido que o termo "correspondência", conforme usado neste documento em relação às impressões digitais de domínio, não se limita à igualdade exata. Como outro exemplo, duas impressões digitais de domínio podem corresponder quando, por exemplo, ambas podem ser ajustadas estatisticamente com a mesma curva, ou quando são usadas para gerar curvas que se ajustam estatisticamente.[0006] As used herein, a domain fingerprint from one geographic unit "matches" a domain fingerprint from another geographic unit when, for example, a measure of similarity between the two fingerprints satisfies some threshold and/or when a Euclidean distance between latent fingerprint embeddings satisfies some criterion. Thus, it should be understood that the term "match" as used herein in connection with domain fingerprints is not limited to exact equality. As another example, two domain fingerprints can match when, for example, they can both be statistically fit with the same curve, or when they are used to generate curves that fit statistically.

[0007] Imagens digitais de alta elevação são geralmente obtidas de uma área geográfica ao longo do tempo. Por exemplo, muitos satélites capturam várias imagens digitais temporalmente distintas da mesma área geográfica subjacente à medida que viajam repetidamente ao longo de suas trajetórias orbitais. Devido à natureza transitória das nuvens e outras obstruções transitórias, cada imagem digital da região geográfica específica pode ter diferentes áreas que são obscurecidas ou não por obstruções naturais, como nuvens. Algumas implementações aqui descritas aproveitam essas imagens multitemporais para prever valores de pixels obscurecidos em imagens digitais individuais.[0007] High elevation digital images are generally obtained of a geographic area over time. For example, many satellites capture multiple temporally distinct digital images of the same underlying geographic area as they repeatedly travel along their orbital paths. Due to the transient nature of clouds and other transient obstructions, each digital image of the specific geographic region may have different areas that are obscured or not obscured by natural obstructions such as clouds. Some implementations described here take advantage of these multi-temporal images to predict obscured pixel values in individual digital images.

[0008] Por exemplo, em algumas implementações, uma estrutura de matriz tridimensional ("3D") pode ser montada na memória para uma área geográfica com base em várias imagens digitais capturadas da área geográfica. Cada linha da matriz 3D pode representar um pixel específico (e unidade geográfica espacialmente correspondente). Cada coluna da matriz pode corresponder, por exemplo, a uma imagem digital diferente capturada em um momento diferente (por exemplo, durante cada órbita de um satélite). E em algumas implementações, cada unidade na terceira dimensão da matriz 3D - que pode ser referida alternativamente como "camadas", "páginas" e/ou "corredores" - pode corresponder a uma frequência espectral diferente, como vermelho, verde, azul, infravermelho próximo (“IR”), infravermelho médio, infravermelho distante, infravermelho térmico e/ou radar.[0008] For example, in some implementations, a three-dimensional ("3D") matrix structure may be assembled in memory for a geographic area based on several captured digital images of the geographic area. Each line of the 3D matrix can represent a specific pixel (and spatially corresponding geographic unit). Each column of the matrix may correspond, for example, to a different digital image captured at a different time (for example, during each orbit of a satellite). And in some implementations, each unit in the third dimension of the 3D matrix - which may alternatively be referred to as "layers", "pages" and/or "corridors" - may correspond to a different spectral frequency, such as red, green, blue, infrared near (“IR”), mid-infrared, far-infrared, thermal infrared and/or radar.

[0009] Depois que essa matriz 3D é montada para uma área geográfica específica, ela pode ser usada para remover obstruções transitórias, como nuvens, de imagens digitais individuais. Por exemplo, em algumas implementações, nuvens ou outro ruído podem deixar "lacunas" em uma ou mais "células" da matriz 3D. A matriz 3D pode ser aplicada como entrada para um ou mais modelos estatísticos de modo que as lacunas possam ser preenchidas com dados de substituição, por exemplo, de outras células da matriz 3D. Em algumas dessas implementações, a estrutura de matriz 3D pode continuar a crescer à medida que mais imagens digitais são capturadas ao longo do tempo. Consequentemente, a capacidade de preencher as lacunas e substituir nuvens por dados de terreno previstos pode ser aprimorada com o tempo.[0009] Once this 3D array is assembled for a specific geographic area, it can be used to remove transient obstructions, such as clouds, from individual digital images. For example, in some implementations, clouds or other noise may leave "gaps" in one or more "cells" of the 3D matrix. The 3D matrix can be applied as input to one or more statistical models so that gaps can be filled with replacement data, for example, from other cells in the 3D matrix. In some of these implementations, the 3D matrix structure may continue to grow as more digital images are captured over time. Consequently, the ability to fill in the gaps and replace clouds with predicted terrain data can be improved over time.

[0010] Várias abordagens podem ser utilizadas para determinar se as células da estrutura de matriz 3D representam obstruções transitórias (ou outro ruído). Em algumas implementações, máscaras existentes/conhecidas associadas a nuvens, neblina, neve, sombras, etc. podem ser empacotadas com imagens digitais de alta elevação. Adicionalmente ou alternativamente, em algumas implementações, um modelo de inteligência artificial pode ser treinado para detectar nuvens - em alguns casos, pode ser ajustado para ter alta recuperação de modo que, por exemplo, é improvável que perca nuvens em potencial. Adicionalmente ou alternativamente, em algumas implementações, um ou mais modelos (por exemplo, dois modelos) podem ser treinados para realizar detecção e remoção de nuvem. Por exemplo, um modelo pode ser treinado para, com base em uma imagem digital de alta elevação de entrada, prever uma máscara de nuvem e remover as nuvens.[0010] Various approaches can be used to determine whether the cells of the 3D matrix structure represent transient obstructions (or other noise). In some implementations, existing/known masks associated with clouds, fog, snow, shadows, etc. can be packaged with high elevation digital images. Additionally or alternatively, in some implementations, an artificial intelligence model may be trained to detect clouds - in some cases it may be tuned to have high recall so that, for example, it is unlikely to miss potential clouds. Additionally or alternatively, in some implementations, one or more models (e.g., two models) may be trained to perform cloud detection and removal. For example, a model can be trained to, based on an input high-elevation digital image, predict a cloud mask and remove the clouds.

[0011] Em algumas implementações, redes neurais recorrentes ou outras redes de memória (por exemplo, memória longa de curto prazo ou "LSTM") que são capazes de contabilizar a entrada multitemporal podem ser usadas para preencher as lacunas na estrutura de matriz 3D. Por exemplo, em algumas implementações, cada "fatia" de espaço-espectral da estrutura de matriz 3D (ou seja, dados extraídos de cada imagem digital de várias imagens digitais capturadas ao longo do tempo) pode ser aplicada como entrada através de uma rede neural recorrente para gerar saída. Esta saída pode ser combinada (por exemplo, concatenada) com uma "próxima" fatia da estrutura de matriz 3D e aplicada como entrada através da mesma rede neural recorrente para gerar saída adicional. Isso pode continuar por toda uma sequência temporal de imagens digitais capturadas de uma área geográfica. A cada vez, a saída pode "prever" como será a próxima fatia. Quando a próxima fatia na realidade inclui obstrução(ões) transitória(s), como nuvens, a saída prevista pode ser usada para gerar dados de substituição para os pixels que retratam a(s) obstrução(ões) transitória(s).[0011] In some implementations, recurrent neural networks or other memory networks (e.g., long short-term memory or "LSTM") that are capable of accounting for multi-temporal input may be used to fill gaps in the 3D matrix structure. For example, in some implementations, each spatial-spectral "slice" of the 3D matrix structure (i.e., data extracted from each digital image from multiple digital images captured over time) can be applied as input through a neural network recurring to generate output. This output can be combined (e.g. concatenated) with a "next" slice of the 3D matrix structure and applied as input through the same recurrent neural network to generate additional output. This can continue for an entire temporal sequence of digital images captured from a geographic area. Each time, the output can "predict" what the next slice will be like. When the next slice actually includes transient obstruction(s), such as clouds, the predicted output can be used to generate replacement data for the pixels depicting the transient obstruction(s).

[0012] Em algumas implementações, as impressões digitais de domínio descritas anteriormente podem ser usadas para classificar unidades geográficas individuais em classificações de terreno específicas. Essas classificações de terreno podem incluir, por exemplo, estradas, edifícios, água, vegetação, etc. Em algumas implementações, por exemplo, nas quais as técnicas divulgadas são usadas para monitoramento agrícola, as classificações de terreno podem incluir características de solo, como diferentes tipos de culturas (por exemplo, "milho", "soja", etc.) e podem ser tão granulares quanto desejado. Por exemplo, em algumas implementações, o Cropland Data Layer (“CDL”) lançado pelo Departamento de Agricultura dos Estados Unidos (“USDA”) pode ser usado para estabelecer classificações de terreno associadas a diferentes tipos de culturas. Em algumas dessas implementações, as unidades geográficas podem ser classificadas em classificações de terreno usando um modelo de aprendizado de máquina treinado, como vários tipos de redes neurais artificiais (por exemplo, convolucional, recorrente, etc.). Em algumas implementações, duas ou mais unidades geográficas podem “corresponder” se compartilharem uma classificação de terreno particular.[0012] In some implementations, the previously described domain fingerprints can be used to classify individual geographic units into specific terrain classifications. These terrain classifications may include, for example, roads, buildings, water, vegetation, etc. In some implementations, for example, where the disclosed techniques are used for agricultural monitoring, terrain classifications may include soil characteristics such as different types of crops (e.g., "corn," "soybeans," etc.) and may be as granular as desired. For example, in some implementations, the Cropland Data Layer (“CDL”) released by the United States Department of Agriculture (“USDA”) can be used to establish land classifications associated with different crop types. In some of these implementations, geographic units can be classified into terrain classifications using a trained machine learning model, such as various types of artificial neural networks (e.g., convolutional, recurrent, etc.). In some implementations, two or more geographic units may “match” if they share a particular terrain classification.

[0013] Uma variedade de diferentes tipos de modelo de aprendizado de máquina pode ser treinada e usada para uma variedade de finalidades diferentes na presente divulgação. Em algumas implementações, uma ou mais redes adversárias geradoras ("GANs") podem ser usadas para facilitar o aprendizado de máquina não supervisionado para vários aspectos da presente divulgação. Por exemplo, em algumas implementações, obstruções transitórias sintéticas, como nuvens (e sombras que projetam no solo) podem ser adicionadas a imagens digitais de alta elevação de verdade de campo sem obstrução. Essas “imagens sintéticas podem então ser usadas, por exemplo, junto com as imagens originais inalteradas de alta elevação, como dados de treinamento para um GAN que inclui um modelo gerador e um modelo discriminador. O modelo gerador pode ser usado para gerar imagens sintéticas (ou seja, com obstruções transitórias sintéticas), que são então aplicadas como entrada através do modelo discriminador para gerar saída compreendendo uma melhor "estimativa" se as imagens digitais de entrada são "real" ou "sintética". A entrada para o modelo discriminador pode ser rotulada como "real" ou "sintética", de modo que esses rótulos possam ser comparados à sua saída para determinar o erro. Este erro pode então ser usado para treinar o modelo discriminador e o modelo gerador, de modo que ao longo do tempo o modelo gerador gere imagens sintéticas que são mais propensas a "enganar" o modelo discriminador, enquanto o modelo discriminador melhora em adivinhar com precisão se uma imagem é "real" ou "sintética".[0013] A variety of different types of machine learning model can be trained and used for a variety of different purposes in the present disclosure. In some implementations, one or more generative adversarial networks ("GANs") may be used to facilitate unsupervised machine learning for various aspects of the present disclosure. For example, in some implementations, synthetic transient obstructions such as clouds (and shadows they cast on the ground) can be added to unobstructed ground truth high-elevation digital images. These “synthetic images can then be used, for example, together with the original unaltered high-elevation images, as training data for a GAN that includes a generator model and a discriminator model. The generator model can be used to generate synthetic images (i.e. with synthetic transient obstructions), which are then applied as input through the discriminator model to generate output comprising a better "estimate" of whether the input digital images are "real" or "synthetic". The input to the discriminator model can be labeled as "real" or "synthetic" so that these labels can be compared to its output to determine the error. This error can then be used to train the discriminator model and the generator model, so that over time the generator model generates synthetic images that are more likely to "fool" the discriminator model, while the discriminator model gets better at guessing accurately. whether an image is "real" or "synthetic".

[0014] Da mesma forma, obstruções transitórias, como nuvens, podem ser removidas/substituídas em imagens digitais de alta elevação usando outro GAN que também inclui um modelo gerador e um modelo discriminador. Imagem(ns) digital(is) de alta elevação com obstrução(ões) transitória(s) pode ser aplicada como entrada através do modelo gerador para gerar uma saída sob a forma de imagem digital sem obstrução e sintética. As imagens digitais sintéticas e sem obstrução podem então ser aplicadas como entrada através do modelo discriminador, juntamente com imagens digitais de alta elevação de verdade de campo sem obstruções, para gerar saída compreendendo uma melhor "estimativa" quanto a se as imagens digitais são "reais" ou "sintéticas". Como descrito anteriormente, as entradas para o modelo discriminador podem ser marcadas como "real" ou "sintética", e estes rótulos podem ser comparados para a sua saída para determinar erro. Este erro pode então ser usado para treinar o modelo discriminador e o modelo gerador, de modo que ao longo do tempo o modelo gerador gere imagens sintéticas e sem obstrução que são mais propensas a "enganar" o modelo discriminador, enquanto o modelo discriminador melhora em adivinhar com precisão se uma imagem é "real" ou "sintética".[0014] Similarly, transient obstructions such as clouds can be removed/replaced in high-elevation digital images using another GAN that also includes a generator model and a discriminator model. High-elevation digital image(s) with transient obstruction(s) can be applied as input through the generative model to generate an output in the form of an unobstructed, synthetic digital image. The synthetic, unobstructed digital images can then be applied as input through the discriminator model, along with unobstructed ground truth high-elevation digital images, to generate output comprising a better "guess" as to whether the digital images are "real." " or "synthetic". As described previously, the inputs to the discriminator model can be labeled as "real" or "synthetic", and these labels can be compared to its output to determine error. This error can then be used to train the discriminator model and the generator model, so that over time the generator model generates synthetic, unobstructed images that are more likely to "fool" the discriminator model, while the discriminator model improves on accurately guess whether an image is "real" or "synthetic".

[0015] A imagem digital de alta elevação pode ser capturada de várias maneiras. Conforme observado anteriormente, em várias implementações, um ou mais satélites podem atravessar uma órbita e capturar continuamente/periodicamente imagens de alta elevação da mesma sequência de áreas geográficas. Adicionalmente ou alternativamente, em algumas implementações, imagens digitais de alta elevação podem ser capturadas por veículos aéreos não tripulados, como drones controlados remotamente. Adicionalmente ou alternativamente, em algumas implementações, imagens digitais de alta elevação podem ser capturadas usando outros mecanismos, incluindo, mas não se limitando a aeronaves tripuladas, balões, espaçonaves e assim por diante.[0015] High elevation digital imaging can be captured in several ways. As noted previously, in many implementations, one or more satellites may traverse an orbit and continuously/periodically capture high-elevation images of the same sequence of geographic areas. Additionally or alternatively, in some implementations, high-elevation digital images may be captured by unmanned aerial vehicles such as remotely controlled drones. Additionally or alternatively, in some implementations, high-elevation digital images may be captured using other mechanisms, including, but not limited to, manned aircraft, balloons, spacecraft, and so on.

[0016] Em algumas implementações, pode ser fornecido um método implementado por computador que inclui as seguintes operações: obter uma imagem digital de uma área geográfica capturada a partir de um ponto de vista elevado, em que a imagem digital compreende uma pluralidade de pixels que se alinham espacialmente com uma respectiva pluralidade de unidades da área geográfica; identificar um ou mais pixels obscurecidos da imagem digital que se alinham espacialmente com uma ou mais unidades geográficas obscurecidas da área geográfica que estão obscurecidas na imagem digital por uma ou mais obstruções transitórias; determinar, através de pixels de um corpo de imagens digitais que se alinham espacialmente com a uma ou mais unidades geográficas obscurecidas, uma ou mais impressões digitais de dados espectrais-temporais da uma ou mais unidades geográficas obscurecidas; identificar um ou mais pixels não obscurecidos da mesma imagem digital ou uma imagem digital diferente que se alinha espacialmente com uma ou mais unidades geográficas não obscurecidas que não são obscurecidas por obstruções transitórias, em que as unidades geográficas não obscurecidas têm uma ou mais impressões digitais de dados espectrais-temporais que correspondem à uma ou mais impressões digitais de dados espectrais-temporais da uma ou mais unidades geográficas obscurecidas; calcular dados de pixel de substituição com base no um ou mais pixels não obscurecidos; e gerar uma versão sem obstrução transitória da imagem digital na qual os dados associados ao um ou mais pixels obscurecidos são substituídos pelos dados de pixel de substituição.[0016] In some implementations, a computer-implemented method may be provided that includes the following operations: obtaining a digital image of a geographic area captured from an elevated viewpoint, wherein the digital image comprises a plurality of pixels that are spatially aligned with a respective plurality of units in the geographic area; identify one or more obscured pixels of the digital image that spatially align with one or more obscured geographic units of the geographic area that are obscured in the digital image by one or more transient obstructions; determine, through pixels of a body of digital images that spatially align with one or more obscured geographic units, one or more spectral-temporal data fingerprints of the one or more obscured geographic units; identify one or more unobscured pixels of the same digital image or a different digital image that spatially aligns with one or more unobscured geographic units that are not obscured by transient obstructions, wherein the unobscured geographic units have one or more fingerprints of spectral-temporal data corresponding to one or more spectral-temporal data fingerprints of the one or more obscured geographic units; calculating replacement pixel data based on the one or more unobscured pixels; and generating a transient unobstructed version of the digital image in which the data associated with the one or more obscured pixels is replaced by the replacement pixel data.

[0017] Este método e outras implementações de tecnologia divulgadas neste documento podem incluir, opcionalmente, um ou mais dos seguintes recursos.[0017] This method and other technology implementations disclosed herein may optionally include one or more of the following features.

[0018] Em várias implementações, a imagem digital pode ser capturada por um satélite, e o ponto de vista elevado encontra-se em uma trajetória do satélite. Em diversas implementações, a imagem digital pode ser capturada por um drone aéreo não tripulado ou aeronave tripulada, e o ponto de vista elevado pode ficar em uma trajetória drone aéreo não tripulado ou aeronave tripulada. Em várias implementações, a uma ou mais impressões digitais de dados espectrais-temporais da uma ou mais unidades geográficas obscurecidas podem incluir infravermelho, pancromático, RGB, etc.[0018] In various implementations, the digital image may be captured by a satellite, and the elevated viewpoint is on a trajectory of the satellite. In many implementations, the digital image may be captured by an unmanned aerial drone or manned aircraft, and the elevated viewpoint may be on an unmanned aerial drone or manned aircraft trajectory. In various implementations, the one or more spectral-temporal data fingerprints of the one or more obscured geographic units may include infrared, panchromatic, RGB, etc.

[0019] Em várias implementações, o método pode incluir ainda a aplicação da uma ou mais impressões digitais de dados espectrais-temporais da uma ou mais unidades geográficas obscurecidas através de um modelo de aprendizado de máquina treinado para determinar uma classificação de terreno da uma ou mais unidades geográficas obscurecidas. Em algumas dessas implementações, a identificação de um ou mais pixels não obscurecidos pode incluir a determinação de que a classificação de terreno da uma ou mais unidades geográficas obscurecidas corresponde a uma classificação de terreno da uma ou mais unidades geográficas não obscurecidas.[0019] In various implementations, the method may further include applying the one or more spectral-temporal data fingerprints of the one or more obscured geographic units through a trained machine learning model to determine a terrain classification of the one or more more geographic units obscured. In some such implementations, identification of one or more unobscured pixels may include determining that the terrain classification of the one or more obscured geographic units corresponds to a terrain classification of the one or more unobscured geographic units.

[0020] Em várias implementações, as operações de determinar, identificar e calcular coletivamente podem incluir a aplicação sequencial de dados indicativos de cada imagem digital do corpo de imagens digitais como entrada através de uma rede neural recorrente. Em várias implementações, o cálculo pode ser baseado, pelo menos em parte, na aplicação de um modelo gerador, e em que o modelo gerador é parte de uma rede adversária geradora que também inclui um modelo discriminador que é treinado em conjunto com o modelo gerador. Em várias implementações, o modelo gerador e o modelo discriminador podem ser treinados usando pelo menos um exemplo de treinamento que assume a forma de uma imagem digital de alta elevação com obstruções transitórias sintéticas adicionadas, em que as obstruções transitórias sintéticas são adicionadas por um modelo de geração de obstrução transitória que é treinado como parte de outra rede adversária geradora.[0020] In various implementations, the collectively determine, identify, and calculate operations may include sequentially applying data indicative of each digital image of the digital image corpus as input through a recurrent neural network. In various implementations, the calculation may be based, at least in part, on the application of a generative model, and wherein the generative model is part of a generative adversarial network that also includes a discriminator model that is trained in conjunction with the generative model. . In various implementations, the generator model and the discriminator model may be trained using at least one training example that takes the form of a high-elevation digital image with added synthetic transient obstructions, wherein the synthetic transient obstructions are added by a model of transient obstruction generation that is trained as part of another generating adversarial network.

[0021] Outras implementações podem incluir um meio de armazenamento legível por computador não transitório que armazena instruções executáveis por um processador para realizar um método, como um ou mais dos métodos descritos acima. Ainda outra implementação pode incluir um sistema incluindo memória e um ou mais processadores operáveis para executar instruções, armazenadas na memória, para implementar um ou mais módulos ou motores que, sozinhos ou coletivamente, realizam um método como um ou mais dos métodos descritos acima.[0021] Other implementations may include a non-transitory computer-readable storage medium that stores instructions executable by a processor to carry out a method, such as one or more of the methods described above. Still another implementation may include a system including memory and one or more processors operable to execute instructions, stored in memory, to implement one or more modules or engines that, alone or collectively, perform a method such as one or more of the methods described above.

[0022] Deve ser apreciado que todas as combinações dos conceitos anteriores e conceitos adicionais descritos em mais detalhes neste documento são contemplados como sendo parte da matéria divulgada neste documento. Por exemplo, todas as combinações da matéria reivindicada que aparecem no final desta divulgação são contempladas como sendo parte da matéria divulgada neste documento.[0022] It should be appreciated that all combinations of the foregoing concepts and additional concepts described in more detail in this document are contemplated as being part of the subject matter disclosed in this document. For example, all combinations of claimed subject matter appearing at the end of this disclosure are contemplated as being part of the subject matter disclosed herein.

Breve Descrição dos DesenhosBrief Description of the Drawings

[0023] A Fig. 1 ilustra um ambiente de exemplo em aspectos selecionados da presente divulgação que podem ser implementados, de acordo com várias implementações.[0023] Fig. 1 illustrates an example environment in selected aspects of the present disclosure that can be implemented, according to various implementations.

[0024] A Fig. 2 mostra um exemplo de como as unidades geográficas podem ser classificadas em classificações de terreno, e como essas classificações de terreno podem ser usadas para gerar dados de substituição para pixels obscurecidos, de acordo com várias implementações.[0024] Fig. 2 shows an example of how geographic units can be classified into terrain classifications, and how these terrain classifications can be used to generate replacement data for obscured pixels, according to various implementations.

[0025] A Fig. 3 mostra um exemplo de como as redes adversárias geradoras podem ser usadas para gerar imagens digitais de alta elevação sem obstruções.[0025] Fig. 3 shows an example of how generative adversarial networks can be used to generate high-elevation digital images without obstructions.

[0026] A Fig. 4 representa outro exemplo de como as redes adversárias geradoras podem ser usadas para gerar obstruções transitórias sintéticas, por exemplo, para fins de treinamento de vários modelos de aprendizado de máquina descritos neste documento.[0026] Fig. 4 represents another example of how generative adversarial networks can be used to generate synthetic transient obstructions, for example, for the purposes of training various machine learning models described in this document.

[0027] A Fig. 5 representa um fluxograma que ilustra um método de exemplo de prática de aspectos selecionados da presente divulgação, de acordo com várias implementações.[0027] Fig. 5 represents a flowchart illustrating an example method of practice of selected aspects of the present disclosure, according to various implementations.

[0028] A Fig. 6 representa um exemplo de como as técnicas aqui descritas podem ser usadas para gerar uma versão sem obstrução transitória de uma imagem digital de alta elevação que é pelo menos parcialmente obscurecida por obstrução transitória.[0028] Fig. 6 represents an example of how the techniques described herein can be used to generate a transient-free version of a high-elevation digital image that is at least partially obscured by transient obstruction.

[0029] A Fig. 7 representa esquematicamente um exemplo de arquitetura de um sistema de computação.[0029] Fig. 7 schematically represents an example of the architecture of a computing system.

Descrição DetalhadaDetailed Description

[0030] A Fig. 1 ilustra um ambiente no qual um ou mais aspectos selecionados da presente divulgação podem ser implementados, de acordo com várias implementações. O ambiente de exemplo inclui uma pluralidade de dispositivos cliente 1061-N e um sistema de processamento de imagem de alta elevação 102. O sistema de processamento de imagem de alta elevação 102 pode ser implementado em um ou mais computadores que se comunicam, por exemplo, através de uma rede. O sistema de processamento de imagem de alta elevação 102 é um exemplo de um sistema de recuperação de informação no qual os sistemas, componentes e técnicas aqui descritos podem ser implementados e/ou com os quais sistemas, componentes e técnicas aqui descritos podem fazer interface.[0030] Fig. 1 illustrates an environment in which one or more selected aspects of the present disclosure may be implemented, according to various implementations. The example environment includes a plurality of client devices 1061-N and a high-elevation image processing system 102. The high-elevation image processing system 102 may be implemented on one or more computers that communicate, e.g. through a network. The high-elevation image processing system 102 is an example of an information retrieval system in which the systems, components and techniques described herein can be implemented and/or with which the systems, components and techniques described herein can interface.

[0031] Um usuário pode interagir com o sistema de processamento de imagem de alta elevação 102 por meio de um dispositivo cliente 106. Cada dispositivo cliente 106 pode ser um computador acoplado ao sistema de processamento de imagem de alta elevação 102 através de uma ou mais redes 110, como uma rede de área local (LAN) ou rede de área ampla (WAN), como a Internet. Cada dispositivo cliente 106 pode ser, por exemplo, um dispositivo de computação desktop, um dispositivo de computação laptop, um dispositivo de computação tablet, um dispositivo de computação de telefone móvel, um dispositivo de computação de um veículo do participante (por exemplo, um sistema de comunicação em veículo, um sistema de entretenimento em veículo, um sistema de navegação em veículo), um alto-falante interativo autônomo (com ou sem uma tela), ou um aparelho vestível do participante que inclui um dispositivo de computação (por exemplo, um relógio do participante tendo um dispositivo de computação, óculos do participante com um dispositivo de computação). Dispositivos de cliente adicionais e/ou alternativos podem ser fornecidos.[0031] A user may interact with the high-elevation image processing system 102 through a client device 106. Each client device 106 may be a computer coupled to the high-elevation image processing system 102 through one or more 110 networks, such as a local area network (LAN) or wide area network (WAN), such as the Internet. Each client device 106 may be, for example, a desktop computing device, a laptop computing device, a tablet computing device, a mobile phone computing device, a participant vehicle computing device (e.g., a in-vehicle communication system, an in-vehicle entertainment system, an in-vehicle navigation system), a stand-alone interactive speaker (with or without a screen), or a wearable device of the participant that includes a computing device (e.g. , a participant's watch having a computing device, participant's glasses with a computing device). Additional and/or alternative client devices may be provided.

[0032] Cada dispositivo cliente 106 e sistema de processamento de imagem de alta elevação 102 pode incluir uma ou mais memórias para armazenamento de dados e aplicativos de software, um ou mais processadores para acessar dados e executar aplicativos, e outros componentes que facilitam a comunicação através de uma rede. As operações realizadas pelo dispositivo cliente 106 e/ou sistema de processamento de imagem de alta elevação 102 podem ser distribuídas por vários sistemas de computação. O sistema de processamento de imagem de alta elevação 102 pode ser implementado como, por exemplo, programas de computador em execução em um ou mais computadores em um ou mais locais que são acoplados uns aos outros através de uma rede.[0032] Each client device 106 and high-lift image processing system 102 may include one or more memories for storing data and software applications, one or more processors for accessing data and running applications, and other components that facilitate communication through a network. Operations performed by client device 106 and/or high-elevation image processing system 102 may be distributed across multiple computing systems. The high-elevation image processing system 102 may be implemented as, for example, computer programs running on one or more computers at one or more locations that are coupled to each other via a network.

[0033] Cada dispositivo cliente 106 pode operar uma variedade de aplicativos diferentes que podem ser usados, por exemplo, para visualizar imagens digitais de alta elevação que são processadas usando técnicas aqui descritas para remover obstruções transitórias, como nuvens, sombras (por exemplo, lançadas por nuvens), neve, itens feitos pelo homem (por exemplo, lonas colocadas sobre as plantações), etc. Por exemplo, um primeiro dispositivo cliente 1061 opera um cliente de visualização de imagens 107 (por exemplo, que pode ser autônomo ou parte de outro aplicativo, como parte de um navegador da web). Outro dispositivo cliente 106N pode operar um aplicativo de previsão de cultura 109 que utiliza imagens digitais de alta elevação processadas usando técnicas aqui descritas para fazer várias previsões agrícolas e/ou recomendações.[0033] Each client device 106 can operate a variety of different applications that can be used, for example, to view high-elevation digital images that are processed using techniques described herein to remove transient obstructions such as clouds, shadows (e.g., cast by clouds), snow, man-made items (e.g. tarpaulins placed over crops), etc. For example, a first client device 1061 operates an image viewing client 107 (e.g., which may be standalone or part of another application, such as part of a web browser). Another client device 106N may operate a crop forecast application 109 that utilizes high-elevation digital images processed using techniques described herein to make various agricultural forecasts and/or recommendations.

[0034] Em várias implementações, o sistema de processamento de imagem de alta elevação 102 pode incluir um motor de detecção de obstrução transitória 124, um motor de classificação de terreno 128, um motor de substituição de obstrução 132, e um motor de geração de obstrução transitória 138. Em algumas implementações, um ou mais dos motores 124, 128, 132 e/ou 138 podem ser omitidos. Em algumas implementações, todos ou aspectos de um ou mais dos motores 124, 128, 132 e/ou 138 podem ser combinados. Em algumas implementações, um ou mais dos motores 124, 128, 132 e/ou 138 podem ser implementados em um componente que é separado do sistema de processamento de imagem de alta elevação 102. Em algumas implementações, um ou mais dos motores 124, 128, 132 e/ou 138, ou qualquer parte operativa dos mesmos, podem ser implementados em um componente que é executado pelo dispositivo cliente 106.[0034] In various implementations, the high-elevation image processing system 102 may include a transient obstruction detection engine 124, a terrain classification engine 128, an obstruction replacement engine 132, and a transient obstruction 138. In some implementations, one or more of the motors 124, 128, 132 and/or 138 may be omitted. In some implementations, all or aspects of one or more of engines 124, 128, 132 and/or 138 may be combined. In some implementations, one or more of the engines 124, 128, 132 and/or 138 may be implemented in a component that is separate from the high-lift image processing system 102. In some implementations, one or more of the engines 124, 128 , 132 and/or 138, or any operative portion thereof, may be implemented in a component that is executed by client device 106.

[0035] O mecanismo de detecção de obstrução transitória 124 pode ser configurado para detectar, em imagens digitais de alta elevação, obstruções transitórias, como nuvens, sombras lançadas por nuvens, chuva, neblina, neve, inundações e/ou obstruções artificiais, como lonas, etc. O mecanismo de detecção de obstrução transitória 124 pode empregar uma variedade de técnicas diferentes para detectar obstruções transitórias. Por exemplo, para detectar nuvens (por exemplo, criar uma máscara de nuvem), o mecanismo de detecção de obstrução transitória 124 pode usar técnicas espectrais e/ou espaciais. Em algumas implementações, um ou mais modelos de aprendizado de máquina podem ser treinados e armazenados, por exemplo, no índice 126, e usados para identificar obstruções transitórias. Por exemplo, em algumas implementações, uma ou mais redes neurais convolucionais profundas conhecidas como "redes em U" podem ser empregadas. As redes em U são treinadas para segmentar imagens de várias maneiras e, no contexto da presente divulgação, podem ser usadas para segmentar imagens de alta elevação em segmentos que incluem obstruções transitórias, como nuvens. Adicionalmente ou alternativamente, em várias implementações, outras técnicas de detecção de nuvem espectral e/ou espacial conhecidas podem ser empregadas, incluindo técnicas que usam ou não usam bandas espectrais de infravermelho térmico.[0035] The transient obstruction detection mechanism 124 may be configured to detect, in high-elevation digital images, transient obstructions such as clouds, shadows cast by clouds, rain, fog, snow, flooding, and/or artificial obstructions such as tarps , etc. The transient obstruction detection mechanism 124 may employ a variety of different techniques to detect transient obstructions. For example, to detect clouds (e.g., create a cloud mask), the transient obstruction detection mechanism 124 may use spectral and/or spatial techniques. In some implementations, one or more machine learning models may be trained and stored, for example, at index 126, and used to identify transient obstructions. For example, in some implementations, one or more deep convolutional neural networks known as "U-shaped networks" may be employed. U-nets are trained to segment images in a variety of ways and, in the context of the present disclosure, can be used to segment high-elevation images into segments that include transient obstructions such as clouds. Additionally or alternatively, in various implementations, other known spectral and/or spatial cloud detection techniques may be employed, including techniques that use or do not use thermal infrared spectral bands.

[0036] Em algumas implementações, o mecanismo de classificação de terreno 128 pode ser configurado para classificar pixels individuais, ou unidades geográficas individuais que correspondem espacialmente com os pixels individuais, em uma ou mais "classificações de terreno". As classificações de terreno podem ser usadas para rotular pixels de acordo com o que eles representam. Exemplos não limitativos de classificações de terreno incluem, mas não estão limitados a "edifícios", "estradas", "água", "floresta", "plantações", "vegetação", "areia", "gelo", "montanha", "solo arado", e assim por diante. As classificações de terreno podem ser tão grosseiras ou granulares quanto desejadas para uma aplicação particular. Por exemplo, para monitoramento agrícola, pode ser desejável ter numerosas classificações de terreno diferentes para diferentes tipos de culturas. Para o planejamento da cidade, pode ser desejável ter várias classificações de terreno diferentes para diferentes tipos de edifícios, telhados, ruas, estacionamentos, parques, etc.[0036] In some implementations, the terrain classification mechanism 128 may be configured to classify individual pixels, or individual geographic units that correspond spatially with the individual pixels, into one or more "terrain classifications." Terrain classifications can be used to label pixels according to what they represent. Non-limiting examples of terrain classifications include, but are not limited to, "buildings", "roads", "water", "forest", "plantations", "vegetation", "sand", "ice", "mountain", "plowed soil", and so on. Terrain classifications can be as coarse or granular as desired for a particular application. For example, for agricultural monitoring, it may be desirable to have numerous different terrain classifications for different types of crops. For city planning, it may be desirable to have several different land classifications for different types of buildings, roofs, streets, parking lots, parks, etc.

[0037] O mecanismo de classificação de terreno 128 pode empregar uma variedade de diferentes técnicas conhecidas para classificar unidades geográficas individuais em várias classificações de terreno. Algumas técnicas podem utilizar aprendizado de máquina supervisionado ou não supervisionado que inclui modelos de aprendizado de máquina treinados armazenados, por exemplo, no índice 130. Essas técnicas podem incluir, mas não estão limitadas à aplicação de estatísticas multivariadas a gradientes de relevo local, meios k difusos, parametrização morfométrica e redes neurais artificiais e assim por diante. Outras técnicas podem não utilizar o aprendizado de máquina.[0037] The terrain classification mechanism 128 may employ a variety of different known techniques to classify individual geographic units into various terrain classifications. Some techniques may utilize supervised or unsupervised machine learning that includes trained machine learning models stored, for example, at index 130. These techniques may include, but are not limited to, applying multivariate statistics to local relief gradients, k-means fuzzy, morphometric parameterization and artificial neural networks and so on. Other techniques may not utilize machine learning.

[0038] Em algumas implementações, o mecanismo de classificação de terreno 128 pode classificar unidades geográficas individuais com classificações de terreno com base em trajetórias ou "impressões digitais" de vários valores de domínio ao longo do tempo. Por exemplo, em algumas implementações, o mecanismo de classificação de terreno 128 pode determinar, através de pixels de um corpo de imagens digitais capturadas ao longo do tempo, impressões digitais de dados espectrais-temporais das unidades geográficas individuais correspondentes a cada pixel individual. Cada impressão digital pode incluir, por exemplo, uma sequência de valores dentro de um domínio espectral particular através de uma sequência temporal de imagens digitais (por exemplo, um vetor de características de valores espectrais).[0038] In some implementations, the terrain classification mechanism 128 may classify individual geographic units with terrain classifications based on trajectories or "fingerprints" of various domain values over time. For example, in some implementations, the terrain classification engine 128 may determine, through pixels of a body of digital images captured over time, spectral-temporal data fingerprints of the individual geographic units corresponding to each individual pixel. Each fingerprint may include, for example, a sequence of values within a particular spectral domain across a temporal sequence of digital images (e.g., a feature vector of spectral values).

[0039] Como exemplo, suponha que uma determinada unidade geográfica inclua pelo menos uma parte de uma árvore caducifólia. Em uma sequência temporal de imagens de satélite da área geográfica que representa esta árvore, o(s) pixel(s) associado(s) à unidade geográfica específica no espectro visível (por exemplo, RGB) terá sequencialmente valores diferentes conforme o tempo passa, com valores de primavera e verão sendo mais verdes, os valores de outono podem ser laranja ou amarelo, e os valores de inverno são cinza, marrom, etc. Outras unidades geográficas que também incluem árvores caducifólias semelhantes também podem exibir trajetórias de domínio semelhantes, ou impressões digitais. Consequentemente, em várias implementações, a unidade geográfica particular e/ou outras unidades geográficas semelhantes podem ser classificadas, por exemplo, pelo mecanismo de classificação de terreno 128, como tendo uma classificação de terreno como "caducifólia", "vegetação", etc., com base em seus correspondência de impressões digitais de dados espectrais-temporais.[0039] As an example, suppose that a given geographic unit includes at least part of a deciduous tree. In a temporal sequence of satellite images of the geographic area representing this tree, the pixel(s) associated with the specific geographic unit in the visible spectrum (e.g., RGB) will have sequentially different values as time passes, with spring and summer values being more green, fall values can be orange or yellow, and winter values are gray, brown, etc. Other geographic units that also include similar deciduous trees may also exhibit similar dominance trajectories, or fingerprints. Accordingly, in various implementations, the particular geographic unit and/or other similar geographic units may be classified, for example, by the terrain classification mechanism 128, as having a terrain classification such as "deciduous", "vegetation", etc., based on their spectral-temporal data fingerprint matching.

[0040] O motor de substituição de obstrução 132 pode ser configurado para gerar versões sem obstrução de imagens digitais nas quais os pixels que representam nuvens, neve ou outras obstruções transitórias são substituídos por dados de substituição que estimam/preveem o terreno real que está por trás desses pixels. O motor de substituição de obstrução 132 pode usar uma variedade de técnicas diferentes para gerar versões sem obstrução transitória de imagens digitais.[0040] The obstruction replacement engine 132 can be configured to generate obstruction-free versions of digital images in which pixels representing clouds, snow, or other transient obstructions are replaced with replacement data that estimates/predicts the actual terrain that is present. behind these pixels. The obstruction replacement engine 132 can use a variety of different techniques to generate transient-free versions of digital images.

[0041] Por exemplo, em algumas implementações, o mecanismo de substituição de obstrução 132 pode ser configurado para determinar, por exemplo, com base na saída fornecida pelo mecanismo de detecção de obstrução transitória 124, um ou mais pixels obscurecidos de uma imagem digital de alta elevação que se alinha espacialmente com uma ou mais unidades geográficas obscurecidas da área geográfica que estão obscurecidas na imagem digital por uma ou mais obstruções transitórias. O motor de substituição de obstrução 132 pode então determinar, por exemplo, através de pixels de um corpo de imagens digitais que se alinham espacialmente com a uma ou mais unidades geográficas obscurecidas, uma ou mais impressões digitais de dados espectrais-temporais da uma ou mais unidades geográficas obscurecidas. Por exemplo, em algumas implementações, o mecanismo de classificação de terreno 128 pode classificar duas ou mais unidades geográficas com impressões digitais espectrais-temporais correspondentes na mesma classificação de terreno.[0041] For example, in some implementations, the obstruction replacement mechanism 132 may be configured to determine, for example, based on the output provided by the transient obstruction detection mechanism 124, one or more obscured pixels of a digital image of high elevation that spatially aligns with one or more obscured geographic units of the geographic area that are obscured in the digital image by one or more transient obstructions. The obstruction replacement engine 132 may then determine, for example, through pixels of a body of digital images that spatially align with the one or more obscured geographic units, one or more spectral-temporal data fingerprints of the one or more obscured geographic units. For example, in some implementations, the terrain classification engine 128 may classify two or more geographic units with corresponding spectral-temporal fingerprints into the same terrain classification.

[0042] O motor de substituição de obstrução 132 pode, então, identificar um ou mais pixels não obscurecidos da mesma imagem digital de alta elevação, ou de uma imagem digital de alta elevação diferente que se alinha espacialmente com uma ou mais unidades geográficas não obscurecidas que não são obscurecidas por obstruções transitórias. Em várias implementações, as unidades geográficas não obscurecidas podem ser identificadas porque têm impressões digitais de dados espectrais-temporais que correspondem à uma ou mais impressões digitais de dados espectrais-temporais da uma ou mais unidades geográficas obscurecidas. Por exemplo, o motor de substituição de obstrução 132 pode procurar outros pixels da mesma imagem digital ou outra imagem digital que correspondem a unidades geográficas com as mesmas (ou suficientemente semelhantes) classificações de terreno.[0042] The obstruction replacement engine 132 can then identify one or more unobscured pixels of the same high-elevation digital image, or of a different high-elevation digital image that spatially aligns with one or more unobscured geographic units. that are not obscured by transient obstructions. In various implementations, unobscured geographic units can be identified because they have spectral-temporal data fingerprints that match the one or more spectral-temporal data fingerprints of the one or more obscured geographic units. For example, the obstruction replacement engine 132 may search for other pixels of the same digital image or another digital image that correspond to geographic units with the same (or sufficiently similar) terrain classifications.

[0043] Em várias implementações, o motor de substituição de obstrução 132 pode calcular ou "colher" dados de pixel de substituição com base no um ou mais pixels não obscurecidos. Por exemplo, o mecanismo de substituição de obstrução pode obter uma média de todos os valores do um ou mais pixels não obscurecidos em um determinado espectro e usar esse valor no pixel obscurecido. Ao realizar operações semelhantes em cada pixel obscurecido no mecanismo de substituição de obstrução, digital de alta elevação 132 pode ser capaz de gerar uma versão sem obstrução transitória da imagem digital na qual os dados associados aos pixels obscurecidos são substituídos por dados de pixel de substituição calculados com base em outros, pixels não obscurecidos que representam terreno semelhante (por exemplo, a mesma classificação de terreno, correspondência de impressões digitais espectrais-temporais, etc.).[0043] In various implementations, the obstruction replacement engine 132 may calculate or "harvest" replacement pixel data based on the one or more unobscured pixels. For example, the obstruction replacement mechanism may take an average of all values of the one or more unobscured pixels in a given spectrum and use that value in the obscured pixel. By performing similar operations on each obscured pixel in the obstruction replacement mechanism, high elevation digital 132 may be able to generate a transient unobstructed version of the digital image in which the data associated with the obscured pixels is replaced with calculated replacement pixel data. based on other, unobscured pixels that represent similar terrain (e.g., the same terrain classification, spectral-temporal fingerprint matching, etc.).

[0044] Em algumas implementações, o motor de substituição de obstrução 132 pode empregar um ou mais modelos de aprendizado de máquina treinados que são armazenados em um ou mais índices 134 para gerar versões sem obstrução de imagens digitais. Uma variedade de tipos diferentes de modelos de aprendizado de máquina pode ser empregados. Por exemplo, em algumas implementações, filtragem colaborativa e/ou fatoração de matriz podem ser empregadas, por exemplo, para substituir pixels que representam obstruções transitórias com dados de pixel gerados a partir de outros pixels semelhantes, mas não obscurecidos, semelhantes ao que foi descrito anteriormente. Em algumas implementações, técnicas de fatoração de matriz, como a seguinte equação, podem ser empregadas: em que r representa o valor de um pixel em uma banda específica se não fosse coberto por nuvens,μ representa o valor médio global na mesma banda, b representa a tendência sistemática, i e u representam o id e o carimbo de data/hora do pixel, T representa a transposição da matriz e q e p representam os vetores semânticos de baixa dimensão (ou às vezes chamados de "incorporações"). Em algumas implementações, a dinâmica temporal pode ser empregada, por exemplo, usando uma equação como a seguinte: em que t representa um número inteiro diferente de zero correspondente a uma unidade de tempo. Adicionalmente ou alternativamente, em algumas implementações, redes adversárias geradoras, ou "GANs", podem ser empregadas, por exemplo, pelo motor de substituição de obstrução 132, a fim de treinar um ou mais modelos armazenados no índice 134. Uma descrição mais detalhada de como os GANs podem ser usados desta maneira é fornecida em relação à Fig. 3.[0044] In some implementations, the obstruction replacement engine 132 may employ one or more trained machine learning models that are stored in one or more indices 134 to generate obstruction-free versions of digital images. A variety of different types of machine learning models can be employed. For example, in some implementations, collaborative filtering and/or matrix factorization may be employed, e.g., to replace pixels representing transient obstructions with pixel data generated from other similar but unobscured pixels similar to what has been described. previously. In some implementations, matrix factorization techniques such as the following equation may be employed: where r represents the value of a pixel in a specific band if it were not covered by clouds, μ represents the global average value in the same band, b represents the systematic trend, i and l represent the pixel id and timestamp, T represents the transpose of the matrix and q and p represent the low-dimensional semantic vectors (or sometimes called "embeddings"). In some implementations, temporal dynamics may be employed, for example, using an equation such as the following: where t represents a non-zero integer corresponding to a unit of time. Additionally or alternatively, in some implementations, generative adversarial networks, or "GANs", may be employed, for example, by obstruction replacement engine 132, in order to train one or more models stored at index 134. A more detailed description of how GANs can be used in this way is provided in relation to Fig. 3.

[0045] Em algumas implementações, um motor de geração de obstrução transitória 138 pode ser fornecido, configurado para gerar obstruções sintéticas, como nuvens, neve, etc. que podem ser incorporadas em imagens digitais (por exemplo, usadas para aumentar, alterar e/ou substituir valores de pixel em um ou mais espectros) para uma variedade de finalidades diferentes. Em algumas implementações, imagens digitais com obstruções transitórias sintéticas incorporadas podem ser usadas como dados de treinamento para treinar um ou mais modelos de aprendizado de máquina usados por outros componentes do sistema de processamento de imagem de alta elevação 102.[0045] In some implementations, a transient obstruction generation engine 138 may be provided, configured to generate synthetic obstructions such as clouds, snow, etc. which can be incorporated into digital images (e.g., used to enhance, change, and/or replace pixel values in one or more spectra) for a variety of different purposes. In some implementations, digital images with embedded synthetic transient obstructions may be used as training data to train one or more machine learning models used by other components of the high elevation image processing system 102.

[0046] Por exemplo, em algumas implementações, um modelo de aprendizado de máquina empregado pelo motor de substituição de obstrução 132 e armazenado no índice 134 pode ser treinado da seguinte forma. Uma imagem digital de alta elevação sem obstruções (por exemplo, sem nuvens) de uma área geográfica pode ser recuperada. Com base na imagem digital sem obstrução, o mecanismo de geração de obstrução transitória 138 pode gerar, por exemplo, usando um ou mais modelos de aprendizado de máquina treinados descritos abaixo, um exemplo de treinamento que inclui a imagem sem obstrução com obstruções transitórias sintéticas, como nuvens. Este exemplo de treinamento pode ser aplicado, por exemplo, pelo motor de substituição de obstrução 132, como entrada em um ou mais modelos de aprendizado de máquina armazenados no índice 134 para gerar saída. A saída pode ser comparada à imagem digital sem obstruções original para determinar uma diferença ou erro. Este erro pode ser usado para realizar operações como retropropagação e/ou descida gradiente para treinar o modelo de aprendizado de máquina para remover obstruções transitórias, como nuvens e substituí-las por dados de terreno previstos.[0046] For example, in some implementations, a machine learning model employed by obstruction replacement engine 132 and stored at index 134 may be trained as follows. An unobstructed (e.g., cloud-free) high-elevation digital image of a geographic area can be retrieved. Based on the unobstructed digital image, the transient obstruction generation engine 138 may generate, for example, using one or more trained machine learning models described below, a training example that includes the unobstructed image with synthetic transient obstructions, like clouds. This training example may be applied, for example, by obstruction replacement engine 132, as input to one or more machine learning models stored at index 134 to generate output. The output can be compared to the original unobstructed digital image to determine a difference or error. This error can be used to perform operations such as backpropagation and/or gradient descent to train the machine learning model to remove transient obstructions such as clouds and replace them with predicted terrain data.

[0047] Como outro exemplo, em algumas implementações, um modelo de aprendizado de máquina empregado pelo mecanismo de detecção de obstrução transitória 124 e armazenado no índice 126 pode ser treinado da seguinte forma. Uma imagem digital de alta elevação sem obstruções (por exemplo, sem nuvens) de uma área geográfica pode ser recuperada. Com base na imagem digital sem obstrução, o mecanismo de geração de obstrução transitória 138 pode gerar, por exemplo, usando um ou mais modelos de aprendizado de máquina treinados descritos abaixo, um exemplo de treinamento que inclui a imagem sem obstrução com obstruções transitórias sintéticas, como nuvens. A localização da obstrução transitória sintética será conhecida porque é sintética e, portanto, está disponível, por exemplo, a partir do motor de geração de obstrução transitória 138. Por conseguinte, em várias implementações, o exemplo de treinamento pode ser rotulado com o(s) local(is) conhecido(s) (por exemplo, pixels) da obstrução transitória sintética. O exemplo de treinamento pode então ser aplicado, por exemplo, pelo mecanismo de detecção de obstrução transitória 124, como entrada através de um ou mais modelos de aprendizado de máquina armazenados no índice 134 para gerar saída indicativa de, por exemplo, uma máscara de nuvem. A saída pode ser comparada com o(s) local(is) de obstrução transitória sintética conhecido para determinar uma diferença ou erro. Este erro pode ser usado para realizar operações como retropropagação e/ou descida gradiente para treinar o modelo de aprendizado de máquina para gerar máscaras de nuvem mais precisas.[0047] As another example, in some implementations, a machine learning model employed by the transient obstruction detection mechanism 124 and stored at index 126 may be trained as follows. An unobstructed (e.g., cloud-free) high-elevation digital image of a geographic area can be retrieved. Based on the unobstructed digital image, the transient obstruction generation engine 138 may generate, for example, using one or more trained machine learning models described below, a training example that includes the unobstructed image with synthetic transient obstructions, like clouds. The location of the synthetic transient obstruction will be known because it is synthetic and therefore available, for example, from the transient obstruction generation engine 138. Therefore, in various implementations, the training example may be labeled with the ) known location(s) (e.g., pixels) of the synthetic transient obstruction. The training example may then be applied, for example, by the transient obstruction detection engine 124, as input through one or more machine learning models stored at index 134 to generate output indicative of, for example, a cloud mask. . The output can be compared to the known synthetic transient obstruction location(s) to determine a difference or error. This error can be used to perform operations such as backpropagation and/or gradient descent to train the machine learning model to generate more accurate cloud masks.

[0048] O motor de geração de obstrução transitória 138 pode usar uma variedade de técnicas diferentes para gerar obstruções transitórias sintéticas, como nuvens. Por exemplo, em várias implementações, o mecanismo de geração de obstrução transitória 138 pode usar sistemas de partículas, modelos de voxel, técnicas de ruído sólido procedimental, modelos de densidade (por exemplo, baixo albedo, aproximação de espalhamento único para iluminação em um meio uniforme), dados de volume de traço de raio, texturizados elipsoides, aproximação de espalhamento simples isotrópico, ruído de Perlin com mistura alfa e assim por diante. Em algumas implementações, o mecanismo de geração de obstrução transitória 138 pode usar GANs para gerar nuvens sintéticas, ou pelo menos para melhorar a geração de nuvens sintéticas. Mais detalhes sobre tal implementação são fornecidos em relação à Fig. 4. O motor de geração de obstrução transitória 138 pode ser configurado para adicionar obstruções transitórias sintéticas a uma ou mais várias bandas espectrais diferentes de uma imagem digital de alta elevação. Por exemplo, em algumas implementações, o mecanismo de geração de obstrução transitória 138 pode adicionar nuvens não apenas à(s) banda(s) espectral(is) RGB, mas também à(s) banda(s) espectral(is) NIR.[0048] The transient obstruction generation engine 138 can use a variety of different techniques to generate synthetic transient obstructions, such as clouds. For example, in various implementations, the transient obstruction generation mechanism 138 may use particle systems, voxel models, procedural solid noise techniques, density models (e.g., low albedo, single scattering approximation for illumination in a medium uniform), ray trace volume data, textured ellipsoids, isotropic simple scattering approximation, Perlin noise with alpha mixing, and so on. In some implementations, the transient obstruction generation mechanism 138 may use GANs to generate synthetic clouds, or at least to improve the generation of synthetic clouds. More details about such an implementation are provided with reference to Fig. 4. The transient obstruction generation engine 138 can be configured to add synthetic transient obstructions to one or more different spectral bands of a high-elevation digital image. For example, in some implementations, the transient obstruction generation mechanism 138 may add clouds not only to the RGB spectral band(s), but also to the NIR spectral band(s).

[0049] Neste Relatório Descritivo, o termo “banco de dados” e “índice” será usado amplamente para se referir a qualquer coleção de dados. Os dados da base de dados e/ou do índice não precisam ser estruturados de nenhuma forma particular e podem ser armazenados em dispositivos de armazenamento em uma ou mais localizações geográficas. Assim, por exemplo, os índices 126, 130, 134 e 140 podem incluir múltiplas coleções de dados, cada uma das quais pode ser organizada e acessada de forma diferente.[0049] In this Descriptive Report, the term “database” and “index” will be used broadly to refer to any collection of data. Database and/or index data need not be structured in any particular way and may be stored on storage devices in one or more geographic locations. So, for example, indexes 126, 130, 134, and 140 may include multiple collections of data, each of which may be organized and accessed differently.

[0050] A Fig. 2 mostra um exemplo de como uma imagem digital de alta elevação de verdade de campo (topo) pode ser processada para classificar as unidades geográficas constituintes que correspondem aos seus pixels. Na imagem superior, que representa esquematicamente uma imagem digital de alta elevação capturando uma área geográfica, uma estrada em forma de T é visível que divide dois lotes de terreno no canto inferior esquerdo e no canto inferior direito. O lote inferior esquerdo de terreno inclui um aglomerado de vegetação, assim como o lote inferior direito. O gráfico inferior direito também apresenta um edifício representado pelo retângulo com hachuras cruzadas.[0050] Fig. 2 shows an example of how a high-elevation ground truth digital image (top) can be processed to classify the constituent geographic units that correspond to its pixels. In the top image, which schematically represents a high-elevation digital image capturing a geographic area, a T-shaped road is visible that divides two parcels of land in the lower left and lower right corners. The lower left plot of land includes a cluster of vegetation, as does the lower right plot. The bottom right graphic also features a building represented by the rectangle with cross hatches.

[0051] A imagem do meio demonstra como a imagem digital no topo pode ser classificada, por exemplo, pelo mecanismo de classificação de terreno 128, em classificações de terreno discretas, por exemplo, com base em unidades geográficas que compartilham impressões digitais espectrais-temporais. A imagem do meio é subdividida em quadrados, cada um representando um pixel que se alinha espacialmente com uma unidade geográfica da imagem digital superior. Pixels que representam a estrada foram classificados de acordo e são mostrados em um primeiro sombreado. Pixels que retratam o edifício também foram classificados de acordo e são mostrados em preto. Pixels que representam a vegetação nos lotes inferior esquerdo e inferior direito de terreno também são classificados de acordo em um segundo sombreamento que é ligeiramente mais escuro do que o primeiro sombreamento.[0051] The middle image demonstrates how the digital image at the top can be classified, for example, by the terrain classification engine 128, into discrete terrain classifications, for example, based on geographic units that share spectral-temporal fingerprints . The middle image is subdivided into squares, each representing a pixel that spatially aligns with a geographic unit of the upper digital image. Pixels representing the road have been classified accordingly and are shown in a first shade. Pixels depicting the building have also been classified accordingly and are shown in black. Pixels representing vegetation in the lower left and lower right parcels of land are also sorted accordingly in a second shading that is slightly darker than the first shading.

[0052] A imagem inferior demonstra como as técnicas aqui descritas, particularmente aquelas relacionadas à classificação de terreno e/ou similaridade de impressão digital espectral-temporal, podem ser empregadas para gerar dados de substituição que preveem/estimam o terreno subjacente a uma obstrução transitória em uma imagem digital de alta elevação. Nas imagens inferiores da Fig. 2, uma nuvem foi representada esquematicamente principalmente sobre o lote inferior esquerdo de terreno. Conforme indicado pelas setas, dois dos pixels de vegetação (cinco colunas da esquerda, três e quatro linhas da parte inferior, respectivamente) que estão obscurecidos pela nuvem podem ser substituídos por dados coletados de outros pixels não obscurecidos. Por exemplo, os dados associados às cinco colunas de pixel obscurecido da esquerda e três linhas da parte inferior são substituídos por dados de substituição que são gerados a partir de dois outros pixels não obscurecidos: as quatro colunas de pixel da esquerda e quatro linhas do topo, e o pixel no lote de terreno inferior direito com cinco linhas da parte inferior, e sete colunas da direita. Os dados associados às cinco colunas de pixel obscurecido da esquerda e quatro linhas da parte inferior são substituídos por dados de substituição que são gerados a partir de dois outros pixels não obscurecidos: as cinco colunas de pixel da esquerda e três linhas do topo, e o pixel no lote inferior direito de terreno com cinco linhas do topo e nove colunas da direita.[0052] The bottom image demonstrates how the techniques described herein, particularly those related to terrain classification and/or spectral-temporal fingerprint similarity, can be employed to generate surrogate data that predict/estimate the terrain underlying a transient obstruction in a high-elevation digital image. In the lower images of Fig. 2, a cloud was represented schematically mainly over the lower left plot of land. As indicated by the arrows, two of the vegetation pixels (five columns from the left, three and four rows from the bottom, respectively) that are obscured by the cloud can be replaced with data collected from other unobscured pixels. For example, the data associated with the left five obscured pixel columns and bottom three rows is replaced with replacement data that is generated from two other unobscured pixels: the left four pixel columns and top four rows. , and the pixel on the bottom right plot of land with five rows from the bottom, and seven columns from the right. The data associated with the left five obscured pixel columns and bottom four rows is replaced with replacement data that is generated from two other unobscured pixels: the left five pixel columns and top three rows, and the pixel in the lower right plot of land with five rows from the top and nine columns from the right.

[0053] Claro que são apenas exemplos. Mais ou menos pixels não obscurecidos podem ser usados para gerar dados de substituição para pixels obscurecidos. Além disso, não é necessário que os pixels não obscurecidos que são coletados para os dados de substituição estejam na mesma imagem digital que os pixels obscurecidos. É frequente (mas nem sempre) o caso em que os pixels não obscurecidos podem estar contidos em outra imagem digital de alta elevação que é capturada nas proximidades, por exemplo, com alguma distância predeterminada (por exemplo, dentro de 90 quilômetros). Ou, se unidades geográficas distantes umas das outras, no entanto, tiverem impressões digitais de domínio suficientemente semelhantes, essas unidades geográficas distantes podem ser usadas para coletar dados de substituição.[0053] Of course, these are just examples. More or fewer unobscured pixels can be used to generate replacement data for obscured pixels. Furthermore, it is not necessary for the unobscured pixels that are collected for the replacement data to be in the same digital image as the obscured pixels. It is often (but not always) the case that the unobscured pixels may be contained in another high-elevation digital image that is captured nearby, for example, at some predetermined distance (e.g., within 90 kilometers). Or, if geographic units that are distant from each other nevertheless have sufficiently similar domain fingerprints, these distant geographic units can be used to collect replacement data.

[0054] A Fig. 3 representa um exemplo de como os GANs podem ser usados para treinar um modelo gerador 250 empregado pelo motor de substituição de obstrução 132, de acordo com várias implementações. Em várias implementações, o motor de substituição de obstrução 132 pode recuperar uma ou mais imagens digitais de alta elevação 248 e aplicá-las como entrada através do modelo gerador 250. O modelo gerador 250 pode assumir várias formas, como uma rede neural artificial. Em algumas implementações, o modelo gerador 250 pode assumir a forma de uma rede neural convolucional.[0054] Fig. 3 represents an example of how GANs can be used to train a generative model 250 employed by the obstruction replacement engine 132, according to various implementations. In various implementations, the obstruction replacement engine 132 may retrieve one or more high-elevation digital images 248 and apply them as input through the generator model 250. The generator model 250 may take various forms, such as an artificial neural network. In some implementations, the generating model 250 may take the form of a convolutional neural network.

[0055] O modelo gerador 250 pode gerar saída na forma de imagens sinteticamente livres de nuvens (ou mais geralmente, sem obstrução transitória). Essas imagens podem então ser aplicadas como entrada em um modelo discriminador 252. O modelo discriminador 252 normalmente terá a mesma forma que o modelo gerador 250 e, portanto, pode assumir a forma de, por exemplo, uma rede neural convolucional. Em algumas implementações, o modelo discriminador 252 pode gerar uma saída binária que compreende uma "melhor estimativa" de se a entrada era "sintética" ou "natural" (ou seja, verdade de campo). Ao mesmo tempo, uma ou mais imagens naturais, sem nuvens (ou mais geralmente, sem obstruções transitórias) (ou seja, imagens de verdade de campo) também podem ser aplicadas como entrada através do modelo discriminador 252 para gerar saída semelhante. Assim, o modelo discriminador 252 é configurado para analisar imagens de entrada e fazer uma melhor "suposição" se a imagem de entrada contém dados sintéticas (por exemplo, nuvens adicionadas sinteticamente) ou representa dados de verdade de campo.[0055] Generative model 250 can generate output in the form of images synthetically free of clouds (or more generally, without transient obstruction). These images can then be applied as input to a discriminator model 252. The discriminator model 252 will typically have the same form as the generating model 250 and therefore may take the form of, for example, a convolutional neural network. In some implementations, the discriminator model 252 may generate a binary output that comprises a "best estimate" of whether the input was "synthetic" or "natural" (i.e., ground truth). At the same time, one or more natural, cloud-free (or more generally, transient obstruction-free) images (i.e., ground truth images) may also be applied as input through the discriminator model 252 to generate similar output. Thus, the discriminator model 252 is configured to analyze input images and make a best "guess" whether the input image contains synthetic data (e.g., synthetically added clouds) or represents ground truth data.

[0056] Em várias implementações, o modelo discriminador 252 e o modelo gerador 250 podem ser treinados em tandem, por exemplo, de uma maneira não supervisionada. A saída do modelo discriminador 252 pode ser comparada a uma verdade sobre a imagem de entrada (por exemplo, um rótulo que indica se a imagem de entrada foi sintetizada pelo gerador 250 ou são dados de verdade de campo). Qualquer diferença entre o rótulo e a saída do modelo discriminador 252 pode ser usada para realizar várias técnicas de treinamento tanto no modelo discriminador 252 quanto no modelo gerador 250, como retropropagação e/ou descida gradiente, para treinar os modelos.[0056] In various implementations, the discriminator model 252 and the generator model 250 may be trained in tandem, for example, in an unsupervised manner. The output of the discriminator model 252 may be compared to a truth about the input image (e.g., a label that indicates whether the input image was synthesized by the generator 250 or is ground truth data). Any difference between the label and the output of the discriminator model 252 can be used to perform various training techniques on both the discriminator model 252 and the generator model 250, such as backpropagation and/or gradient descent, to train the models.

[0057] Em outras implementações, uma ou mais redes neurais recorrentes ou outras redes de memória (por exemplo, memória longa de curto prazo ou "LSTM") que são capazes de contabilizar a entrada multitemporal podem ser usadas, por exemplo, pelo mecanismo de substituição de obstrução 132, para gerar dados de substituição que "preenchem as lacunas" conforme descrito no resumo. Por exemplo, em algumas implementações, cada "fatia" espaço-espectral da estrutura de matriz 3D descrita em outro lugar neste documento (ou seja, dados extraídos de cada imagem digital de várias imagens digitais capturadas ao longo do tempo) pode ser aplicada como entrada através de uma rede neural recorrente para gerar saída. Esta saída pode ser combinada (por exemplo, concatenada) com uma "próxima" fatia da estrutura de matriz 3D e aplicada, por exemplo, pelo mecanismo de substituição de obstrução 132, como entrada através da mesma rede neural recorrente para gerar saída adicional. Isso pode continuar por toda uma sequência temporal de imagens digitais capturadas de uma área geográfica. A cada vez, a saída pode "prever" como será a próxima fatia. Quando a próxima fatia na realidade inclui obstrução(ões) transitória(s), como nuvens, a saída prevista pode ser usada para gerar dados de substituição para os pixels obscurecidos.[0057] In other implementations, one or more recurrent neural networks or other memory networks (e.g., long short-term memory or "LSTM") that are capable of accounting for multi-temporal input may be used, for example, by the obstruction replacement 132, to generate replacement data that "fills in the gaps" as described in the summary. For example, in some implementations, each spatio-spectral "slice" of the 3D matrix structure described elsewhere in this document (i.e., data extracted from each digital image from multiple digital images captured over time) may be applied as input through a recurrent neural network to generate output. This output may be combined (e.g., concatenated) with a "next" slice of the 3D matrix structure and applied, for example, by the obstruction replacement mechanism 132, as input through the same recurrent neural network to generate additional output. This can continue for an entire temporal sequence of digital images captured from a geographic area. Each time, the output can "predict" what the next slice will be like. When the next slice actually includes transient obstruction(s), such as clouds, the predicted output can be used to generate replacement data for the obscured pixels.

[0058] A Fig. 4 representa esquematicamente um exemplo de como os GANs podem ser usados para treinar um ou mais modelos de aprendizagem de máquina empregados pelo motor de geração de obstrução transitória 138, de acordo com várias implementações. Semelhante à Fig. 3, o motor de geração de obstrução transitória 138 pode utilizar um modelo gerador 350 e um modelo discriminador 352, que pode ou não assumir formas semelhantes aos modelos 250-252. Neste exemplo, o motor de geração de obstrução transitória 138 pode recuperar uma ou mais imagens digitais de alta elevação de verdade de campo sem obstrução 348 e aplicá-las como entrada através do modelo gerador 350 para gerar imagens sintéticas que incluem obstruções sintéticas incorporadas, como nuvens. Essas imagens sintéticas podem, então, ser aplicadas como entrada através do modelo discriminador 352, junto com imagens naturais e de verdade de campo que também incluem obstruções. Semelhante ao anterior, o modelo discriminador 352 pode ser configurado para gerar saída que constitui uma "suposição" de se uma imagem digital de entrada é "sintética" (por exemplo, gerada pelo modelo gerador 350) ou "natural". Esses modelos 350-352 podem ser treinados de maneira semelhante à descrita acima em relação aos modelos 250-252.[0058] Fig. 4 schematically represents an example of how GANs can be used to train one or more machine learning models employed by the transient obstruction generation engine 138, according to various implementations. Similar to Fig. 3, the transient obstruction generating engine 138 may utilize a generator model 350 and a discriminator model 352, which may or may not take forms similar to models 250-252. In this example, the transient obstruction generation engine 138 may retrieve one or more unobstructed ground truth high-elevation digital images 348 and apply them as input through the generator model 350 to generate synthetic images that include embedded synthetic obstructions, such as clouds. These synthetic images can then be applied as input through the 352 discriminator model, along with natural and ground truth images that also include obstructions. Similar to the above, the discriminator model 352 may be configured to generate output that constitutes a "guess" as to whether an input digital image is "synthetic" (e.g., generated by the generator model 350) or "natural." These 350-352 models can be trained in a similar way as described above for the 250-252 models.

[0059] Com referência agora à Fig. 5, um método de exemplo 500 de realização de aspectos selecionados da presente divulgação é descrito. Por conveniência, as operações do fluxograma são descritas com referência a um sistema que realiza as operações. Este sistema pode incluir vários componentes de vários sistemas de computação, incluindo vários motores aqui descritos. Além disso, embora as operações do método 500 sejam mostradas em uma ordem particular, isso não se destina a ser limitante. Uma ou mais operações podem ser reordenadas, omitidas ou adicionadas.[0059] Referring now to Fig. 5, an exemplary method 500 of carrying out selected aspects of the present disclosure is described. For convenience, flowchart operations are described with reference to a system that performs the operations. This system may include various components of various computing systems, including various engines described herein. Furthermore, although the operations of method 500 are shown in a particular order, this is not intended to be limiting. One or more operations can be reordered, omitted or added.

[0060] No bloco 502, o sistema pode obter uma imagem digital de uma área geográfica capturada de um ponto de vista elevado. Em várias implementações, a imagem digital pode incluir uma pluralidade de pixels que se alinham espacialmente com uma respectiva pluralidade de unidades geográficas da área geográfica.[0060] In block 502, the system may obtain a digital image of a geographic area captured from an elevated viewpoint. In various implementations, the digital image may include a plurality of pixels that spatially align with a respective plurality of geographic units of the geographic area.

[0061] No bloco 504, o sistema, por exemplo, por meio de mecanismo de detecção de obstrução transitória 124, pode identificar um ou mais pixels obscurecidos da imagem digital que se alinham espacialmente com uma ou mais unidades geográficas obscurecidas da área geográfica que estão obscurecidas na imagem digital por uma ou mais obstruções transitórias. Dito de outra forma, os pixels que representam uma parte de uma nuvem ou outra obstrução transitória são identificados, por exemplo, pelo mecanismo de detecção de obstrução transitória 124 usando uma ou mais técnicas descritas anteriormente.[0061] In block 504, the system, for example, through transient obstruction detection mechanism 124, may identify one or more obscured pixels of the digital image that spatially align with one or more obscured geographic units of the geographic area that are obscured in the digital image by one or more transient obstructions. Stated differently, pixels representing a portion of a cloud or other transient obstruction are identified, for example, by the transient obstruction detection mechanism 124 using one or more techniques described previously.

[0062] No bloco 506, o sistema, por exemplo, por meio do mecanismo de classificação de terreno 128, pode determinar, através de pixels de um corpo de imagens digitais que se alinham espacialmente com a uma ou mais unidades geográficas obscurecidas, uma ou mais impressões digitais de dados espectrais-temporais da uma ou mais unidades geográficas obscurecidas. Por exemplo, em algumas implementações, uma estrutura de matriz ("3D") pode ter sido montada anteriormente para a área geográfica, por exemplo, com base em várias imagens digitais capturadas da área geográfica. Cada linha da matriz 3D pode representar um pixel específico (e unidade geográfica espacialmente correspondente). Cada coluna da matriz pode corresponder, por exemplo, a uma imagem digital diferente capturada em um momento diferente. Cada unidade na terceira dimensão da matriz 3D pode corresponder a diferentes frequências espectrais que estão disponíveis nas imagens digitais, como vermelho, verde, azul, infravermelho próximo ("IR"), IR médio, IR distante, IR térmico e/ou radar. Em várias implementações, esta estrutura de matriz 3D pode ser usada no bloco 306 para determinar impressões digitais de domínio, tais como impressões digitais espectrais-temporais, de unidades geográficas individuais.[0062] In block 506, the system, for example, via the terrain classification mechanism 128, may determine, through pixels of a body of digital images that spatially align with the one or more obscured geographic units, one or more plus fingerprints of spectral-temporal data from one or more obscured geographic units. For example, in some implementations, a matrix ("3D") structure may have previously been assembled for the geographic area, for example, based on several captured digital images of the geographic area. Each line of the 3D matrix can represent a specific pixel (and spatially corresponding geographic unit). Each column of the matrix may correspond, for example, to a different digital image captured at a different time. Each unit in the third dimension of the 3D matrix can correspond to different spectral frequencies that are available in digital images, such as red, green, blue, near-infrared ("IR"), mid-IR, far-IR, thermal IR, and/or radar. In various implementations, this 3D matrix structure can be used in block 306 to determine domain fingerprints, such as spectral-temporal fingerprints, of individual geographic units.

[0063] No bloco 508, o sistema, por exemplo, por meio do motor de substituição de obstrução 132, pode identificar um ou mais pixels não obscurecidos da mesma imagem digital ou uma imagem digital diferente que se alinha espacialmente com uma ou mais unidades geográficas não obscurecidas da mesma ou diferentes áreas não obscurecidas por obstruções transitórias. Em várias implementações, as unidades geográficas não obscurecidas podem ter uma ou mais impressões digitais de dados espectrais-temporais que correspondem à uma ou mais impressões digitais de dados espectrais- temporais da uma ou mais unidades geográficas obscurecidas que foram determinadas no bloco 506.[0063] In block 508, the system, for example, via obstruction replacement engine 132, may identify one or more unobscured pixels of the same digital image or a different digital image that spatially aligns with one or more geographic units unobscured areas of the same or different areas unobscured by transient obstructions. In various implementations, the unobscured geographic units may have one or more spectral-temporal data fingerprints that correspond to the one or more spectral-temporal data fingerprints of the one or more obscured geographic units that were determined in block 506.

[0064] No bloco 510, o sistema pode calcular dados de pixel de substituição com base no um ou mais pixels não obscurecidos. Por exemplo, uma média de valores através dos pixels não obscurecidos dentro de um espectro particular, ou através de múltiplos espectros, pode ser usada. Adicionalmente ou alternativamente, em algumas implementações, um único pixel que está "mais próximo" (por exemplo, tem uma impressão digital de domínio mais semelhante) ao pixel não obscurecido pode simplesmente ser clonado no pixel obscurecido. No bloco 512, o sistema pode gerar uma versão sem obstrução transitória da imagem digital na qual os dados associados ao um ou mais pixels obscurecidos são substituídos pelos dados de pixel de substituição.[0064] In block 510, the system may calculate replacement pixel data based on the one or more unobscured pixels. For example, an average of values across the unobscured pixels within a particular spectrum, or across multiple spectra, may be used. Additionally or alternatively, in some implementations, a single pixel that is "closer" (e.g., has a more similar domain fingerprint) to the unobscured pixel may simply be cloned into the obscured pixel. In block 512, the system may generate a transient unobstructed version of the digital image in which the data associated with the one or more obscured pixels is replaced by the replacement pixel data.

[0065] A Fig. 6 representa um exemplo de como as técnicas aqui descritas podem ser usadas para gerar uma versão sem obstrução transitória de uma imagem digital de alta elevação. À esquerda, uma imagem digital capturada de uma elevação elevada (por exemplo, um satélite) mostra uma área geográfica. Também pode ser visto que uma série de nuvens estão posicionadas entre a superfície do solo e o ponto de vista do satélite e, portanto, obstruem porções da área geográfica da vista. Além disso, pode-se ver que as sombras lançadas pelas nuvens também obstruem porções adicionais da área geográfica.[0065] Fig. 6 represents an example of how the techniques described herein can be used to generate a transient-free version of a high-elevation digital image. On the left, a digital image captured from a high elevation (e.g., a satellite) shows a geographic area. It can also be seen that a series of clouds are positioned between the ground surface and the satellite's viewpoint and therefore obstruct portions of the geographic area from view. Additionally, it can be seen that the shadows cast by the clouds also obstruct additional portions of the geographic area.

[0066] Na imagem do meio, uma máscara de nuvem foi detectada, por exemplo, pelo mecanismo de detecção de obstrução transitória 124. A máscara de nuvem foi usada para remover pixels obscurecidos que correspondem às nuvens ou suas respectivas sombras. Dito de outra forma, os pixels obscurecidos que se alinham espacialmente com as unidades geográficas que estão obscurecidas pelas nuvens ou suas respectivas sombras foram removidos (por exemplo, valores definidos para preto, zerados, etc.). Na imagem certa, os pixels removidos foram substituídos por dados de substituição gerados usando as técnicas aqui descritas. Conforme explicado aqui, esses dados de substituição estimam o terreno subjacente aos pixels obscurecidos.[0066] In the middle image, a cloud mask was detected, for example, by the transient obstruction detection mechanism 124. The cloud mask was used to remove obscured pixels that correspond to clouds or their respective shadows. Put another way, obscured pixels that spatially align with geographic units that are obscured by clouds or their respective shadows have been removed (e.g., values set to black, set to zero, etc.). In the right image, the removed pixels have been replaced with replacement data generated using the techniques described here. As explained here, this replacement data estimates the terrain underlying the obscured pixels.

[0067] A Fig. 7 é um diagrama de blocos de um sistema de computação de exemplo 710. O sistema de computação 710 inclui tipicamente pelo menos um processador 714 que se comunica com uma série de dispositivos periféricos por meio do subsistema de barramento 712. Esses dispositivos periféricos podem incluir um subsistema de armazenamento 724, incluindo, por exemplo, um subsistema de memória 725 e um subsistema de armazenamento de arquivo 726, dispositivos de saída de interface de usuário 720, dispositivos de entrada de interface de usuário 722 e um subsistema de interface de rede 716. Os dispositivos de entrada e saída permitem a interação do usuário com o sistema de computação 710. O subsistema de interface de rede 716 fornece uma interface para redes externas e é acoplado a dispositivos de interface correspondentes em outros sistemas de computação.[0067] Fig. 7 is a block diagram of an example computing system 710. Computing system 710 typically includes at least one processor 714 that communicates with a number of peripheral devices via bus subsystem 712. These peripheral devices may include a storage subsystem 724, including, for example, a memory subsystem 725 and a file storage subsystem 726, user interface output devices 720, user interface input devices 722, and a network interface subsystem 716. The input and output devices enable user interaction with the computing system 710. The network interface subsystem 716 provides an interface to external networks and is coupled to corresponding interface devices on other computing systems .

[0068] Os dispositivos de entrada de interface de usuário 722 podem incluir um teclado, dispositivos apontadores, como um mouse, trackball, touchpad ou tablet gráfico, um scanner, uma tela sensível ao toque incorporada na tela, dispositivos de entrada de áudio, como sistemas de reconhecimento de voz, microfones e/ou outros tipos de dispositivos de entrada. Em geral, o uso do termo "dispositivo de entrada" se destina a incluir todos os tipos possíveis de dispositivos e maneiras de inserir informações no sistema de computação 710 ou em uma rede de comunicação.[0068] User interface input devices 722 may include a keyboard, pointing devices such as a mouse, trackball, touchpad or graphics tablet, a scanner, a touch screen embedded in the screen, audio input devices such as speech recognition systems, microphones and/or other types of input devices. In general, use of the term "input device" is intended to include all possible types of devices and ways of inputting information into the computing system 710 or a communications network.

[0069] Os dispositivos de saída de interface de usuário 720 podem incluir um subsistema de exibição, uma impressora, uma máquina de fax ou monitores não visuais, como dispositivos de saída de áudio. O subsistema de exibição pode incluir um tubo de raios catódicos (CRT), um dispositivo de tela plana, como uma tela de cristal líquido (LCD), um dispositivo de projeção ou algum outro mecanismo para criar uma imagem visível. O subsistema de exibição também pode fornecer exibição não visual, como por meio de dispositivos de saída de áudio. Em geral, o uso do termo "dispositivo de saída" se destina a incluir todos os tipos possíveis de dispositivos e maneiras de enviar informações do sistema de computação 710 para o usuário ou para outra máquina ou sistema de computação.[0069] User interface output devices 720 may include a display subsystem, a printer, a fax machine, or non-visual monitors such as audio output devices. The display subsystem may include a cathode ray tube (CRT), a flat panel device such as a liquid crystal display (LCD), a projection device, or some other mechanism for creating a visible image. The display subsystem may also provide non-visual display, such as through audio output devices. In general, use of the term "output device" is intended to include all possible types of devices and ways of sending information from computing system 710 to the user or to another machine or computing system.

[0070] O subsistema de armazenamento 724 armazena programação e construções de dados que fornecem a funcionalidade de alguns ou todos os módulos descritos neste documento. Por exemplo, o subsistema de armazenamento 724 pode incluir a lógica para realizar aspectos selecionados do método 500 e/ou para implementar um ou mais componentes descritos nas figuras anteriores.[0070] Storage subsystem 724 stores programming and data constructs that provide the functionality of some or all of the modules described herein. For example, storage subsystem 724 may include logic to perform selected aspects of method 500 and/or to implement one or more components described in the preceding figures.

[0071] Esses módulos de software são geralmente executados pelo processador 714 sozinho ou em combinação com outros processadores. A memória 725 usada no subsistema de armazenamento 724 pode incluir uma série de memórias incluindo uma memória de acesso aleatório principal (RAM) 730 para armazenamento de instruções e dados durante a execução do programa e uma memória somente leitura (ROM) 732 na qual instruções fixas são armazenadas. Um subsistema de armazenamento de arquivo 726 pode fornecer armazenamento persistente para arquivos de programa e dados e pode incluir uma unidade de disco rígido, uma unidade de disquete junto com uma mídia removível associada, uma unidade de CD-ROM, uma unidade óptica ou cartuchos de mídia removível. Os módulos que implementam a funcionalidade de certas implementações podem ser armazenados pelo subsistema de armazenamento de arquivo 726 no subsistema de armazenamento 724, ou em outras máquinas acessíveis pelo(s) processador(es) 714.[0071] These software modules are generally executed by processor 714 alone or in combination with other processors. Memory 725 used in storage subsystem 724 may include a series of memories including a main random access memory (RAM) 730 for storing instructions and data during program execution and a read-only memory (ROM) 732 in which fixed instructions are stored. A file storage subsystem 726 may provide persistent storage for program and data files and may include a hard disk drive, a floppy disk drive along with associated removable media, a CD-ROM drive, an optical drive, or memory cartridges. removable media. Modules that implement the functionality of certain implementations may be stored by file storage subsystem 726 on storage subsystem 724, or on other machines accessible by processor(s) 714.

[0072] O subsistema de barramento 712 fornece um mecanismo para permitir que os vários componentes e subsistemas do sistema de computação 710 se comuniquem entre si conforme pretendido. Embora o subsistema de barramento 712 seja mostrado esquematicamente como um único barramento, as implementações alternativas do subsistema de barramento podem usar vários barramentos.[0072] Bus subsystem 712 provides a mechanism for allowing the various components and subsystems of computing system 710 to communicate with each other as intended. Although bus subsystem 712 is shown schematically as a single bus, alternative implementations of the bus subsystem may use multiple buses.

[0073] O sistema de computação 710 pode ser de vários tipos, incluindo uma estação de trabalho, servidor, cluster de computação, servidor blade, fazenda de servidores ou qualquer outro sistema de processamento de dados ou dispositivo de computação. Devido à natureza em constante mudança de computações e redes, a descrição do sistema de computação 710 representado na Fig. 7 se destina apenas a ser um exemplo específico para fins de ilustração de algumas implementações. Muitas outras configurações do sistema de computação 710 são possíveis tendo mais ou menos componentes do que o sistema de computação representado na Fig. 7.[0073] Computing system 710 may be of various types, including a workstation, server, computing cluster, blade server, server farm, or any other data processing system or computing device. Due to the ever-changing nature of computations and networks, the description of the computing system 710 depicted in Fig. 7 is intended only as a specific example for the purpose of illustrating some implementations. Many other configurations of computing system 710 are possible having more or fewer components than the computing system depicted in Fig. 7.

[0074] Embora várias implementações tenham sido descritas e ilustradas neste documento, uma variedade de outros meios e/ou estruturas para realizar a função e/ou obter os resultados e/ou uma ou mais das vantagens descritas neste documento podem ser utilizadas, e cada uma de tais variações e/ou modificações são consideradas como estando dentro do escopo das implementações aqui descritas. De forma mais geral, todos os parâmetros, dimensões, materiais e configurações descritos neste documento têm como objetivo ser exemplares e que os parâmetros, dimensões, materiais e/ou configurações reais dependerão da aplicação específica ou aplicações para as quais os ensinamentos são usados. Os especialistas no assunto reconhecerão, ou serão capazes de determinar usando não mais do que experimentação de rotina, muitos equivalentes para as implementações específicas aqui descritas. Deve, portanto, ser entendido que as implementações anteriores são apresentadas a título de exemplo apenas e que, dentro do escopo das reivindicações anexas e equivalentes às mesmas, as implementações podem ser praticadas de outra forma diferente da especificamente descrita e reivindicada. As implementações da presente divulgação são direcionadas a cada recurso, sistema, artigo, material, kit e/ou método individual aqui descrito. Além disso, qualquer combinação de dois ou mais recursos, sistemas, artigos, materiais, kits e/ou métodos, se esses recursos, sistemas, artigos, materiais, kits e/ou métodos não forem mutuamente inconsistentes, está incluída no escopo da presente divulgação.[0074] Although various implementations have been described and illustrated in this document, a variety of other means and/or structures to perform the function and/or obtain the results and/or one or more of the advantages described in this document may be used, and each any such variations and/or modifications are considered to be within the scope of the implementations described herein. More generally, all parameters, dimensions, materials and configurations described herein are intended to be exemplary and that the actual parameters, dimensions, materials and/or configurations will depend on the specific application or applications for which the teachings are used. Those skilled in the art will recognize, or be able to determine using no more than routine experimentation, many equivalents to the specific implementations described herein. It should therefore be understood that the above implementations are presented by way of example only and that, within the scope of the appended and equivalent claims thereto, the implementations may be practiced in a manner other than that specifically described and claimed. The implementations of this disclosure are directed to each individual resource, system, article, material, kit and/or method described herein. Furthermore, any combination of two or more resources, systems, articles, materials, kits and/or methods, if such resources, systems, articles, materials, kits and/or methods are not mutually inconsistent, is included within the scope of the present disclosure .

Claims (20)

1. Método implementado por instruções executáveis em um computador, usando um ou mais processadores, compreendendo: obter uma primeira imagem digital de uma área geográfica capturada de um ponto de vista elevado, em que a primeira imagem digital compreende uma pluralidade de pixels que correspondem geograficamente a uma respectiva pluralidade de unidades geográficas da área geográfica; identificar um ou mais pixels obscurecidos da primeira imagem digital que correspondem geograficamente a uma ou mais unidades geográficas obscurecidas da área geográfica que estão obscurecidas na primeira imagem digital por uma ou mais obstruções transitórias; determinar, através de pixels de uma sequência temporal de imagens digitais que correspondem geograficamente a uma ou mais unidades geográficas obscurecidas, uma ou mais impressões digitais de dados espectrais-temporais da uma ou mais unidades geográficas obscurecidas, em que para cada unidade geográfica obscurecida de uma ou mais unidades geográficas obscurecidas, a impressão digital espectral-temporal correspondente compreende uma sequência de valores de pixel para a unidade geográfica obscurecida ao longo da sequência temporal de imagens digitais; identificar, a partir da primeira imagem digital ou de uma segunda imagem digital, um ou mais pixels não obscurecidos que correspondem geograficamente a uma ou mais unidades geográficas não obscurecidas que não são obscurecidas por obstruções transitórias na primeira ou segunda imagem digital, em que uma ou mais unidades geográficas não obscurecidas são espacialmente diferentes de um ou mais unidades geográficas obscurecidas da área geográfica, e em que um ou mais pixels não obscurecidos são identificados com base em um ou mais pixels não obscurecidos tendo uma ou mais impressões digitais de dados espectrais- temporais que correspondem à uma ou mais impressões digitais de dados espectrais-temporais da uma ou mais unidades geográficas obscurecidas; calcular dados de pixel de substituição com base no um ou mais pixels não obscurecidos; gerar uma versão sem obstrução transitória da primeira imagem digital na qual os dados associados ao um ou mais pixels obscurecidos são substituídos pelos dados de pixel de substituição; capturar a imagem digital por um satélite, e o ponto de vista elevado encontra-se em uma trajetória do satélite, a imagem digital pode ser capturada por um drone aéreo não tripulado ou aeronave tripulada; a uma ou mais impressões digitais de dados espectrais- temporais da uma ou mais unidades geográficas obscurecidas podem incluir infravermelho, pancromático, RGB; caracterizado pelo fato de que compreende ainda: aplicar a uma ou mais impressões digitais de dados espectrais-temporais da uma ou mais unidades geográficas obscurecidas através de um modelo de aprendizado de máquina treinado para determinar uma classificação de terreno da uma ou mais unidades geográficas obscurecidas; e identificar um ou mais pixels não obscurecidos pode incluir a determinação de que a classificação de terreno da uma ou mais unidades geográficas obscurecidas corresponde a uma classificação de terreno da uma ou mais unidades geográficas não obscurecidas.1. A method implemented by executable instructions on a computer, using one or more processors, comprising: obtaining a first digital image of a geographic area captured from an elevated viewpoint, wherein the first digital image comprises a plurality of geographically corresponding pixels to a respective plurality of geographic units of the geographic area; identifying one or more obscured pixels of the first digital image that correspond geographically to one or more obscured geographic units of the geographic area that are obscured in the first digital image by one or more transient obstructions; determine, through pixels of a temporal sequence of digital images that correspond geographically to one or more obscured geographic units, one or more fingerprints of spectral-temporal data of the one or more obscured geographic units, where for each obscured geographic unit of a or more obscured geographic units, the corresponding spectral-temporal fingerprint comprises a sequence of pixel values for the obscured geographic unit along the temporal sequence of digital images; identify, from the first digital image or a second digital image, one or more unobscured pixels that correspond geographically to one or more unobscured geographic units that are not obscured by transient obstructions in the first or second digital image, wherein one or more more unobscured geographic units are spatially different from one or more obscured geographic units of the geographic area, and wherein one or more unobscured pixels are identified based on one or more unobscured pixels having one or more spectral-temporal data fingerprints that correspond to one or more fingerprints of spectral-temporal data from one or more obscured geographic units; calculating replacement pixel data based on the one or more unobscured pixels; generating a transient unobstructed version of the first digital image in which the data associated with the one or more obscured pixels is replaced by the replacement pixel data; capture the digital image by a satellite, and the elevated viewpoint lies on a trajectory of the satellite, the digital image can be captured by an unmanned aerial drone or manned aircraft; the one or more spectral-temporal data fingerprints of the one or more obscured geographic units may include infrared, panchromatic, RGB; characterized by the fact that it further comprises: applying to one or more spectral-temporal data fingerprints of the one or more obscured geographic units through a trained machine learning model to determine a terrain classification of the one or more obscured geographic units; and identifying one or more unobscured pixels may include determining that the terrain classification of the one or more obscured geographic units corresponds to a terrain classification of the one or more unobscured geographic units. 2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a primeira imagem digital é capturada por um satélite, e o ponto de vista elevado fica em uma trajetória do satélite.2. Method according to claim 1, characterized by the fact that the first digital image is captured by a satellite, and the elevated viewpoint is on a trajectory of the satellite. 3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a primeira imagem digital é capturada por um drone aéreo não tripulado ou aeronave tripulada, e o ponto de vista elevado fica em uma trajetória do drone aéreo não tripulado ou aeronave tripulada.3. The method of claim 1, wherein the first digital image is captured by an unmanned aerial drone or manned aircraft, and the elevated viewpoint is on a trajectory of the unmanned aerial drone or manned aircraft . 4. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a uma ou mais impressões digitais de dados espectrais-temporais da uma ou mais unidades geográficas obscurecidas incluem infravermelho.4. Method according to claim 1, characterized by the fact that the one or more spectral-temporal data fingerprints of the one or more obscured geographic units include infrared. 5. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a uma ou mais impressões digitais de dados espectrais-temporais da uma ou mais unidades geográficas obscurecidas incluem pancromática.5. Method according to claim 1, characterized by the fact that the one or more spectral-temporal data fingerprints of the one or more obscured geographic units include panchromatic. 6. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende ainda a aplicação da uma ou mais impressões digitais de dados espectrais- temporais da uma ou mais unidades geográficas obscurecidas através de um modelo de aprendizado de máquina treinado para determinar uma classificação de terreno da uma ou mais unidades geográficas obscurecidas.6. Method according to claim 1, characterized by the fact that it further comprises applying the one or more spectral-temporal data fingerprints of the one or more obscured geographic units through a trained machine learning model to determine a terrain classification of one or more obscured geographic units. 7. Método, de acordo com a reivindicação 6, caracterizado pelo fato de que a identificação de um ou mais pixels não obscurecidos compreende a determinação de que a classificação de terreno da uma ou mais unidades geográficas obscurecidas corresponde a uma classificação de terreno da uma ou mais unidades geográficas não obscurecidas.7. Method according to claim 6, characterized by the fact that identifying one or more unobscured pixels comprises determining that the terrain classification of the one or more obscured geographic units corresponds to a terrain classification of the one or more more unobscured geographic units. 8. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende a aplicação sequencial de dados indicativos de cada imagem digital da sequência temporal de imagens digitais como entrada através de uma rede neural recorrente.8. Method, according to claim 1, characterized by the fact that it comprises the sequential application of data indicative of each digital image of the temporal sequence of digital images as input through a recurrent neural network. 9. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o cálculo é baseado, pelo menos em parte, na aplicação de um modelo gerador, e em que o modelo gerador é parte de uma rede adversária geradora que também inclui um modelo discriminador que é treinado em conjunto com o modelo gerador.9. Method according to claim 1, characterized by the fact that the calculation is based, at least in part, on the application of a generative model, and in which the generative model is part of a generative adversarial network that also includes a discriminator model that is trained together with the generator model. 10. Método, de acordo com a reivindicação 9, caracterizado pelo fato de que o modelo gerador e o modelo discriminador são treinados usando pelo menos um exemplo de treinamento compreendendo uma imagem digital de alta elevação com obstruções transitórias sintéticas adicionadas, em que as obstruções transitórias sintéticas são adicionadas por um modelo de geração de obstrução transitória que é treinado como parte de outra rede adversária geradora.10. The method of claim 9, wherein the generator model and the discriminator model are trained using at least one training example comprising a high-elevation digital image with added synthetic transient obstructions, wherein the transient obstructions synthetics are added by a transient obstruction generation model that is trained as part of another generating adversarial network. 11. Pelo menos um meio legível por computador não transitório, compreendendo instruções que, em resposta à execução das instruções por um ou mais processadores, fazem com que o um ou mais processadores realizem as seguintes operações: obter uma primeira imagem digital de uma área geográfica capturada de um ponto de vista elevado, em que a primeira imagem digital compreende uma pluralidade de pixels que correspondem geograficamente a uma respectiva pluralidade de unidades geográficas da área geográfica; identificar um ou mais pixels obscurecidos da primeira imagem digital que correspondem geograficamente a uma ou mais unidades geográficas obscurecidas da área geográfica que estão obscurecidas na primeira imagem digital por uma ou mais obstruções transitórias; determinar, através de pixels de uma sequência temporal de imagens digitais que correspondem geograficamente a uma ou mais unidades geográficas obscurecidas, uma ou mais impressões digitais de dados espectrais-temporais da uma ou mais unidades geográficas obscurecidas, em que para cada unidade geográfica obscurecida de uma ou mais unidades geográficas obscurecidas, a impressão digital espectral-temporal correspondente compreende uma sequência de valores de pixel para a unidade geográfica obscurecida ao longo da sequência temporal de imagens digitais; identificar, a partir da primeira imagem digital ou de uma segunda imagem digital, um ou mais pixels não obscurecidos que correspondem geograficamente a uma ou mais unidades geográficas não obscurecidas que não são obscurecidas por obstruções transitórias na primeira ou segunda imagem digital, em que uma ou mais unidades geográficas não obscurecidas são espacialmente diferentes de uma ou mais unidades geográficas obscurecidas da área geográfica, e em que um ou mais pixels não obscurecidos são identificados com base em um ou mais pixels não obscurecidos tendo uma ou mais impressões digitais de dados espectrais- temporais que correspondem à uma ou mais impressões digitais de dados espectrais-temporais da uma ou mais unidades geográficas obscurecidas; calcular dados de pixel de substituição com base no um ou mais pixels não obscurecidos; gerar uma versão sem obstrução transitória da primeira imagem digital na qual os dados associados ao um ou mais pixels obscurecidos são substituídos pelos dados de pixel de substituição; capturar a imagem digital por um satélite, e o ponto de vista elevado encontra-se em uma trajetória do satélite, a imagem digital pode ser capturada por um drone aéreo não tripulado ou aeronave tripulada; a uma ou mais impressões digitais de dados espectrais- temporais da uma ou mais unidades geográficas obscurecidas podem incluir infravermelho, pancromático, RGB; caracterizado pelo fato de que compreende ainda: aplicar a uma ou mais impressões digitais de dados espectrais-temporais da uma ou mais unidades geográficas obscurecidas através de um modelo de aprendizado de máquina treinado para determinar uma classificação de terreno da uma ou mais unidades geográficas obscurecidas; e identificar um ou mais pixels não obscurecidos pode incluir a determinação de que a classificação de terreno da uma ou mais unidades geográficas obscurecidas corresponde a uma classificação de terreno da uma ou mais unidades geográficas não obscurecidas.11. At least one non-transitory computer-readable medium, comprising instructions that, in response to execution of the instructions by the one or more processors, cause the one or more processors to perform the following operations: obtain a first digital image of a geographic area captured from an elevated viewpoint, wherein the first digital image comprises a plurality of pixels that correspond geographically to a respective plurality of geographic units of the geographic area; identifying one or more obscured pixels of the first digital image that correspond geographically to one or more obscured geographic units of the geographic area that are obscured in the first digital image by one or more transient obstructions; determine, through pixels of a temporal sequence of digital images that correspond geographically to one or more obscured geographic units, one or more fingerprints of spectral-temporal data of the one or more obscured geographic units, where for each obscured geographic unit of a or more obscured geographic units, the corresponding spectral-temporal fingerprint comprises a sequence of pixel values for the obscured geographic unit along the temporal sequence of digital images; identify, from the first digital image or a second digital image, one or more unobscured pixels that correspond geographically to one or more unobscured geographic units that are not obscured by transient obstructions in the first or second digital image, wherein one or more more unobscured geographic units are spatially different from one or more obscured geographic units of the geographic area, and wherein one or more unobscured pixels are identified based on one or more unobscured pixels having one or more spectral-temporal data fingerprints that correspond to one or more fingerprints of spectral-temporal data from one or more obscured geographic units; calculating replacement pixel data based on the one or more unobscured pixels; generating a transient unobstructed version of the first digital image in which the data associated with the one or more obscured pixels is replaced by the replacement pixel data; capture the digital image by a satellite, and the elevated viewpoint lies on a trajectory of the satellite, the digital image can be captured by an unmanned aerial drone or manned aircraft; the one or more spectral-temporal data fingerprints of the one or more obscured geographic units may include infrared, panchromatic, RGB; characterized by the fact that it further comprises: applying to one or more spectral-temporal data fingerprints of the one or more obscured geographic units through a trained machine learning model to determine a terrain classification of the one or more obscured geographic units; and identifying one or more unobscured pixels may include determining that the terrain classification of the one or more obscured geographic units corresponds to a terrain classification of the one or more unobscured geographic units. 12. Pelo menos um meio legível por computador não transitório, de acordo com a reivindicação 11, caracterizado pelo fato de que a primeira imagem digital é capturada por um satélite, e o ponto de vista elevado fica em uma trajetória do satélite.12. At least one non-transitory computer readable medium according to claim 11, wherein the first digital image is captured by a satellite, and the elevated viewpoint is on a trajectory of the satellite. 13. Pelo menos um meio legível por computador não transitório, de acordo com a reivindicação 11, caracterizado pelo fato de que a primeira imagem digital é capturada por um drone aéreo não tripulado, e o ponto de vista elevado fica em uma trajetória do drone aéreo não tripulado.13. At least one non-transitory computer readable medium according to claim 11, wherein the first digital image is captured by an unmanned aerial drone, and the elevated viewpoint is in a trajectory of the aerial drone unmanned. 14. Pelo menos um meio legível por computador não transitório, de acordo com a reivindicação 11, caracterizado pelo fato de que a uma ou mais impressões digitais de dados espectrais-temporais da uma ou mais unidades geográficas obscurecidas incluem infravermelho.14. At least one non-transitory computer readable medium according to claim 11, wherein the one or more spectral-temporal data fingerprints of the one or more obscured geographic units include infrared. 15. Pelo menos um meio legível por computador não transitório, de acordo com a reivindicação 11, caracterizado pelo fato de que a uma ou mais impressões digitais de dados espectrais-temporais da uma ou mais unidades geográficas obscurecidas incluem pancromática.15. At least one non-transitory computer-readable medium according to claim 11, characterized in that the one or more spectral-temporal data fingerprints of the one or more obscured geographic units include panchromatic. 16. Pelo menos um meio legível por computador não transitório, de acordo com a reivindicação 11, caracterizado pelo fato de que compreende ainda a aplicação da uma ou mais impressões digitais de dados espectrais-temporais da uma ou mais unidades geográficas obscurecidas através de um modelo de aprendizado de máquina treinado para determinar uma classificação de terreno da uma ou mais unidades geográficas obscurecidas.16. At least one non-transitory computer readable medium according to claim 11, further comprising applying the one or more spectral-temporal data fingerprints of the one or more geographic units obscured through a model machine learning system trained to determine a terrain classification of the one or more obscured geographic units. 17. Pelo menos um meio legível por computador não transitório, de acordo com a reivindicação 16, caracterizado pelo fato de que a identificação de um ou mais pixels não obscurecidos compreende a determinação de que a classificação de terreno da uma ou mais unidades geográficas obscurecidas corresponde a uma classificação de terreno da uma ou mais unidades geográficas não obscurecidas.17. At least one non-transitory computer readable medium according to claim 16, wherein identifying the one or more unobscured pixels comprises determining that the terrain classification of the one or more obscured geographic units corresponds to a terrain classification of one or more unobscured geographic units. 18. Pelo menos um meio legível por computador não transitório, de acordo com a reivindicação 11, caracterizado pelo fato de que compreende instruções para aplicação sequencial de dados indicativos de cada imagem digital da sequência temporal de imagens digitais como entrada através de uma rede neural recorrente.18. At least one non-transitory computer readable medium according to claim 11, comprising instructions for sequential application of data indicative of each digital image of the temporal sequence of digital images as input through a recurrent neural network . 19. Pelo menos um meio legível por computador não transitório, de acordo com a reivindicação 11, caracterizado pelo fato de que o cálculo é baseado, pelo menos em parte, na aplicação de um modelo gerador, e em que o modelo gerador é parte de uma rede adversária geradora que também inclui um modelo discriminador que é treinado em conjunto com o modelo gerador.19. At least one non-transitory computer readable medium according to claim 11, wherein the calculation is based, at least in part, on the application of a generative model, and wherein the generative model is part of a generative adversarial network that also includes a discriminator model that is trained in conjunction with the generative model. 20. Sistema, compreendendo um ou mais processadores e memória operacionalmente acoplada com o um ou mais processadores, em que a memória armazena instruções que, em resposta à execução das instruções por um ou mais processadores, fazem com que o um ou mais processadores executem as seguintes operações: obter uma primeira imagem digital de uma área geográfica capturada de um ponto de vista elevado, em que a primeira imagem digital compreende uma pluralidade de pixels que correspondem geograficamente a uma respectiva pluralidade de unidades geográficas da área geográfica; identificar um ou mais pixels obscurecidos da primeira imagem digital que correspondem geograficamente a uma ou mais unidades geográficas obscurecidas da área geográfica que estão obscurecidas na primeira imagem digital por uma ou mais obstruções transitórias; determinar, através de pixels de uma sequência temporal de imagens digitais que correspondem geograficamente a uma ou mais unidades geográficas obscurecidas, uma ou mais impressões digitais de dados espectrais-temporais da uma ou mais unidades geográficas obscurecidas, em que para cada unidade geográfica obscurecida de uma ou mais unidades geográficas obscurecidas, a impressão digital espectral-temporal correspondente compreende uma sequência de valores de pixel para a unidade geográfica obscurecida ao longo da sequência temporal de imagens digitais; identificar, a partir da primeira digital ou de uma segunda imagem digital, um ou mais pixels não obscurecidos que correspondem geograficamente a uma ou mais unidades geográficas não obscurecidas que não são obscurecidas por obstruções transitórias na primeira ou segunda imagem digital, em que uma ou mais unidades geográficas não obscurecidas são espacialmente diferentes de uma ou mais unidades geográficas obscurecidas da área geográfica, e em que um ou mais pixel não obscurecidos são identificados com base em um ou mais pixels não obscurecidos tendo uma ou mais impressões digitais de dados espectrais-temporais que correspondem à uma ou mais impressões digitais de dados espectrais-temporais da uma ou mais unidades geográficas obscurecidas; calcular dados de pixel de substituição com base no um ou mais pixels não obscurecidos; gerar uma versão sem obstrução transitória da primeira imagem digital na qual os dados associados ao um ou mais pixels obscurecidos são substituídos pelos dados de pixel de substituição; capturar a imagem digital por um satélite, e o ponto de vista elevado encontra-se em uma trajetória do satélite, a imagem digital pode ser capturada por um drone aéreo não tripulado ou aeronave tripulada; a uma ou mais impressões digitais de dados espectrais- temporais da uma ou mais unidades geográficas obscurecidas podem incluir infravermelho, pancromático, RGB; caracterizado pelo fato de que compreende ainda: aplicar a uma ou mais impressões digitais de dados espectrais-temporais da uma ou mais unidades geográficas obscurecidas através de um modelo de aprendizado de máquina treinado para determinar uma classificação de terreno da uma ou mais unidades geográficas obscurecidas; e identificar um ou mais pixels não obscurecidos pode incluir a determinação de que a classificação de terreno da uma ou mais unidades geográficas obscurecidas corresponde a uma classificação de terreno da uma ou mais unidades geográficas não obscurecidas.20. System, comprising one or more processors and memory operationally coupled with the one or more processors, wherein the memory stores instructions that, in response to the execution of the instructions by the one or more processors, cause the one or more processors to execute the following operations: obtaining a first digital image of a geographic area captured from an elevated viewpoint, wherein the first digital image comprises a plurality of pixels that correspond geographically to a respective plurality of geographic units of the geographic area; identifying one or more obscured pixels of the first digital image that correspond geographically to one or more obscured geographic units of the geographic area that are obscured in the first digital image by one or more transient obstructions; determine, through pixels of a temporal sequence of digital images that correspond geographically to one or more obscured geographic units, one or more fingerprints of spectral-temporal data of the one or more obscured geographic units, where for each obscured geographic unit of a or more obscured geographic units, the corresponding spectral-temporal fingerprint comprises a sequence of pixel values for the obscured geographic unit along the temporal sequence of digital images; identify, from the first digital or a second digital image, one or more unobscured pixels that correspond geographically to one or more unobscured geographic units that are not obscured by transient obstructions in the first or second digital image, wherein one or more unobscured geographic units are spatially different from one or more obscured geographic units of the geographic area, and wherein one or more unobscured pixels are identified based on one or more unobscured pixels having one or more spectral-temporal data fingerprints that correspond to one or more fingerprints of spectral-temporal data from one or more obscured geographic units; calculating replacement pixel data based on the one or more unobscured pixels; generating a transient unobstructed version of the first digital image in which the data associated with the one or more obscured pixels is replaced by the replacement pixel data; capture the digital image by a satellite, and the elevated viewpoint lies on a trajectory of the satellite, the digital image can be captured by an unmanned aerial drone or manned aircraft; the one or more spectral-temporal data fingerprints of the one or more obscured geographic units may include infrared, panchromatic, RGB; characterized by the fact that it further comprises: applying to one or more spectral-temporal data fingerprints of the one or more obscured geographic units through a trained machine learning model to determine a terrain classification of the one or more obscured geographic units; and identifying one or more unobscured pixels may include determining that the terrain classification of the one or more obscured geographic units corresponds to a terrain classification of the one or more unobscured geographic units.
BR112020026354-0A 2018-06-22 2019-06-21 METHOD, NON-TRAINER COMPUTER READABLE MEDIA AND SYSTEM BR112020026354B1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/016,495 US10878588B2 (en) 2018-06-22 2018-06-22 Detection and replacement of transient obstructions from high elevation digital images
US16/016,495 2018-06-22
PCT/US2019/038528 WO2019246554A1 (en) 2018-06-22 2019-06-21 Detection and replacement of transient obstructions from high elevation digital images

Publications (2)

Publication Number Publication Date
BR112020026354A2 BR112020026354A2 (en) 2021-03-30
BR112020026354B1 true BR112020026354B1 (en) 2024-03-26

Family

ID=

Similar Documents

Publication Publication Date Title
US11501443B2 (en) Generation of synthetic high-elevation digital images from temporal sequences of high-elevation digital images
US11710219B2 (en) Detection and replacement of transient obstructions from high elevation digital images
Ge et al. Modeling alpine grassland cover based on MODIS data and support vector machine regression in the headwater region of the Huanghe River, China
US10534960B2 (en) System and method for locating and performing fine grained classification from multi-view image data
Roy et al. Web-enabled Landsat Data (WELD): Landsat ETM+ composited mosaics of the conterminous United States
Van Niekerk A comparison of land unit delineation techniques for land evaluation in the Western Cape, South Africa
Jung et al. A framework for land cover classification using discrete return LiDAR data: Adopting pseudo-waveform and hierarchical segmentation
Aung et al. Farm parcel delineation using spatio-temporal convolutional networks
Ose et al. Multispectral satellite image processing
Tiwari et al. UAV remote sensing for campus monitoring: a comparative evaluation of nearest neighbor and rule-based classification
Cömert et al. Rapid mapping of forested landslide from ultra-high resolution unmanned aerial vehicle data
BR112020026354B1 (en) METHOD, NON-TRAINER COMPUTER READABLE MEDIA AND SYSTEM
Aung et al. Farmland Parcel Delineation Using Spatio-temporal Convolutional Networks
Su et al. A hierarchical object oriented method for land cover classification of SPOT 5 imagery
Barkhordari et al. Using post-classification enhancement in improving the classification of land use/cover of arid region (A case study in Pishkouh Watershed, Center of Iran)
Roy et al. Joint segmentation of aerial UAV and LiDAR images using Bayesian Non-Parametric clustering
Jin Pixel-Based Classification of Land Cover and Land Use Incorporating External Modeling Products, Sampling Designs, and Multi-Type Features