Um guia passo a passo sobre como detectar, delinear e classificar parcelas agrícolas em imagens de satélite
Este artigo faz parte de uma série de dois artigos sobre o processamento de imagens de satélite aplicado à agricultura. Se o senhor estiver interessado na coleta e no processamento de imagens de satélite, consulte este primeiro artigo por Antoine Aubay.
A Parte 2 se concentra em como aproveitamos essas imagens de satélite processadas em um contexto agrícola para:

Ilustração do processo alvo
A Parte 2 se concentra em como aproveitamos essas imagens de satélite processadas em um contexto agrícola para:
TL;DR:
Este artigo abordará:
Este artigo pressupõe fundamentos básicos em ciência data e visão computacional.
Motivação empresarial
Uma solução capaz de detectar e rotular culturas automaticamente pode ter uma ampla gama de aplicações comerciais. O cálculo do número de parcelas, seu tamanho médio, a densidade da vegetação, a área total da superfície de culturas específicas e muitos outros indicadores podem servir a vários propósitos. Por exemplo, organizações públicas poderiam usar essas métricas para estatísticas nacionais, enquanto empresas agrícolas privadas poderiam usá-las para estimar seu mercado potencial com um grande nível de detalhes.
Naturalmente, as imagens de satélite foram consideradas e identificadas como uma fonte data muito viável por três motivos específicos:
Etapa 1 - Detecção de áreas agrícolas em imagens de satélite
![]()
Imagem bruta do Sentinel-2: 10 000 x 10 000 pixels, cada pixel com 10 x 10 metros no solo (Copernicus Sentinel data 2019)
Depois de recuperar e pré-processar as imagens do Sentinel 2, nosso primeiro desafio foi localizar as parcelas e nos limitar a áreas específicas de interesse. Como cada imagem tem uma resolução muito alta, não seria realista aplicar todo o processamento a imagens em tamanho real. Em vez disso, a primeira etapa para resolver nosso problema foi cortar as imagens grandes em fragmentos menores e identificar as áreas onde as parcelas estavam localizadas nessas imagens menores:

Nosso resultado desejado: fragmentos contendo apenas áreas agrícolas (Copernicus Sentinel data 2019)
Solução 1A: Treinamento de um classificador de pixels
A primeira solução para detectar zonas agrícolas em imagens grandes é criar um classificador de pixels. Para cada pixel, esse modelo de aprendizado de máquina prevê se esse pixel pertence a uma floresta, uma cidade, água, uma fazenda... e, portanto, a uma zona agrícola ou não.
Ilustração da classificação de pixels com 3 classes visíveis de pixels (Copernicus Sentinel data 2019)
Porque muitos dos recursos No caso do Sentinel-2, conseguimos encontrar imagens rotuladas com mais de 10 classes diferentes de verdade terrestre (floresta, água, tundra, ...). No entanto, se o clima da sua área de estudo for diferente da área em que o modelo foi treinado, talvez seja necessário reavaliar as classes atribuídas a cada pixel.
Por exemplo, depois de treinar um modelo em países de clima temperado e aplicá-lo a regiões mais áridas do mundo, observamos que o que o modelo estava vendo como florestas e tundras eram, na verdade, culturas agrícolas.
Depois que os pixels forem classificados, o senhor pode descartar todas as imagens que não contenham áreas agrícolas.
Prós da solução 1A:
Solução 1A contras:
De todos os métodos disponíveis para detectar zonas agrícolas, esse foi o mais preciso. No entanto, se o senhor não tiver acesso a imagens rotuladas, identificamos duas soluções alternativas.
Solução 1B: Mapeamento de coordenadas geográficas para coordenadas de pixel
Se as coordenadas sobre sua zona de interesse tiverem sido rotuladas ou se o senhor estiver rotulando as coordenadas por conta própria, é possível mapear essas coordenadas geográficas (latitude e longitude) para suas imagens.

O senhor pode desenhar seus próprios polígonos no GoogleMaps, concentrando-se assim em uma área específica de sua escolha enquanto desenha ao redor de obstáculos (água, cidades...)
Por exemplo, se o senhor tiver as coordenadas associadas a grandes áreas agrícolas ou se desenhar grandes polígonos no Google Maps, poderá obter facilmente as coordenadas geográficas das áreas agrícolas. Depois, basta mapear essas coordenadas para as imagens de satélite e filtrar as imagens para cobrir apenas as zonas dentro dos polígonos.
Solução 1B pros:
Solução 1B contras:
Solução 1C: Uso de um índice de vegetação
É possível calcular um índice de vegetação a partir das bandas de cores fornecidas pelas imagens de satélite. Um índice de vegetação é uma fórmula que combina várias bandas de cores, geralmente altamente correlacionadas com a presença ou a densidade da vegetação (ou outros indicadores, como a presença de água).
Vários índices Existem vários índices de vegetação, mas um dos mais usados em um contexto agrícola é o NDVI (Normalized Difference Vegetation Index, Índice de Vegetação por Diferença Normalizada). Esse índice é usado para estimar a densidade da vegetação no solo, que pode servir para detectar áreas agrícolas em uma imagem grande.

Representação visual do NDVI em uma zona agrícola e em um deserto (Copernicus Sentinel data 2019)
Depois de calcular os valores de NDVI para cada pixel, o senhor pode definir um limite para eliminar rapidamente os pixels sem vegetação. Usamos o NDVI como exemplo, mas fazer experiências com vários índices pode ajudar a obter melhores resultados.
Observe que o cálculo de um índice de vegetação pode fornecer informações úteis para enriquecer sua análise, mesmo que o senhor já tenha implementado outra maneira de detectar áreas agrícolas.
Solução 1C pros:
Solução 1C cons:
Etapa 2 - Detectar e delinear parcelas agrícolas
Criação de um detector de bordas não supervisionado
Depois de determinar a localização de suas zonas agrícolas, o senhor pode começar a se concentrar no delineamento de parcelas individuais nessas áreas específicas.
Na ausência de data rotulado, decidimos usar uma abordagem não supervisionada baseada em Detecção de borda Canny do OpenCV. A detecção de bordas consiste em observar um pixel específico e compará-lo com os pixels ao redor dele. Se o contraste com os pixels vizinhos for alto, então o pixel pode ser considerado uma borda.
Um exemplo de detecção de bordas em parcelas agrícolas usando OpenCV (Copernicus Sentinel data 2019)
Uma vez identificados todos os pixels que poderiam ser verdadeiras bordas, podemos começar a suavizar as bordas e tentar formar polígonos. Como esperado, o desempenho do algoritmo de detecção de bordas é comprovadamente muito melhor quando aplicado a gráficos grandes:

Ilustração de todo o processo de delineamento de gráficos (Copernicus Sentinel data 2019)
Esse método nos permitiu identificar automaticamente cerca de 7.000 lotes em nossa área de interesse. Como usamos o método de classificação de pixels (consulte a etapa 1A), conseguimos separar os lotes agrícolas reais de outros polígonos, retendo assim apenas o data relevante.
Os polígonos que consistem em uma minoria de “pixels de fazenda” foram eliminados (Copernicus Sentinel data 2019)
Otimização do desempenho do algoritmo de detecção de bordas
Para obter os melhores resultados possíveis, pode ser útil aplicar modificações à sua imagem, principalmente brincando com o contraste, a saturação ou a nitidez:

Experimentar o contraste, a saturação ou a nitidez pode ajudar a melhorar a eficiência da detecção de bordas (Copernicus Sentinel data 2019)
Outro fator crítico de sucesso é forçar os polígonos a serem convexos. Como a maioria dos gráficos segue formas regulares, forçar polígonos convexos geralmente produz resultados muito melhores.

Forçar formas convexas se ajusta muito melhor à maioria dos gráficos (Copernicus Sentinel data 2019)
Etapa 3 - Classificação de cada parcela para detectar culturas específicas
Depois que todas as parcelas tiverem sido identificadas, o senhor poderá cortar cada uma delas e salvá-las como arquivos de imagem individuais. A próxima etapa é treinar um modelo de classificação para distinguir cada parcela com base em seu cultivo. Em outras palavras, o senhor pode tentar identificar as plantações de tomate das plantações de cereais ou batatas.
Criação de um conjunto de treinamento com rótulos
Como não tínhamos um conjunto de data já rotulado disponível e como a rotulagem manual de centenas de imagens consumiria muito tempo, procuramos conjuntos complementares de data que contivessem as informações sobre plantações para parcelas específicas em um determinado momento e local.
O cenário ideal seria ter imagens pré-rotuladas, mas, em nosso caso, só tínhamos as coordenadas geográficas e as culturas de algumas centenas de lotes agrícolas em nossa área de interesse. Esse dataset continha uma lista de lotes, a latitude e a longitude de seu centro e a cultura plantada em uma época específica do ano.

Ilustração da fonte de cultura externa data
Para criar nosso conjunto de treinamento, usamos nosso conversor de coordenadas geográficas para coordenadas de pixel (compartilhado em Parte 1) para identificar as parcelas específicas para as quais tínhamos um rótulo (a cultura) em nosso banco de imagens.
Das 7.000 parcelas identificadas na Etapa 2, conseguimos rotular cerca de 500 parcelas graças à nossa fonte externa data. Essas 500 parcelas rotuladas serviram para treinar e avaliar o modelo de classificação.
Modelagem
Optamos por usar uma rede neural convolucional usando o biblioteca fastai, pois era uma maneira eficiente de classificar nossas imagens.
Para encontrar o melhor classificador possível, fizemos experimentos com a entrada data:

Dezenas de modelos foram treinados em conjuntos de data gerados com várias técnicas de preparação de data
Depois de experimentar vários modelos de classificação, obtivemos uma precisão de 78% e uma recuperação de 74% ao realizar a classificação binária nos menores gráficos (e, portanto, os mais difíceis de classificar devido ao baixo número de pixels).
Desafios a serem considerados
Ao trabalhar com parcelas agrícolas, até mesmo algumas semanas podem fazer uma diferença substancial. Em poucas semanas, as plantações de trigo podem passar de verdes a douradas e a colhidas:
Ao trabalhar com parcelas agrícolas, apenas algumas semanas podem fazer uma grande diferença (Copernicus Sentinel data 2019)
Portanto, há duas coisas que o senhor deve ter em mente para replicar esse projeto ao longo do ano:
Conclusão
Trabalhar com imagens de satélite abre uma gama infinita de possibilidades. Considerando que cada satélite oferece recursos diferentes e que a disponibilidade e o formato do data complementar podem variar em todo o mundo, dependendo da sua área de estudo, cada projeto acabará sendo um caso de uso exclusivo.
Esperamos que compartilhar nossas perspectivas e metodologias possa inspirá-lo em seus próprios projetos! Se estiver ansioso para começar a trabalhar em seu próprio projeto de imagens de satélite, não deixe de ler “Aproveitamento de imagens de satélite para aplicativos de visão computacional com aprendizado de máquina”, de Antoine Aubay.
Obrigado por ler, não hesite em Siga o blog de tecnologia do Artefact se o senhor deseja ser notificado quando nosso próximo artigo for lançado!

BLOG






