• Trabalho para cliente
  • IA geoespacial
  • Anonimizado

718 751 palmeiras-de-óleo contadas a partir de imagens aéreas

Uma plantação comercial de palmeiras-de-óleo na África Ocidental precisava de um inventário árvore a árvore da sua propriedade. Construí um processo que encontra cada copa nas imagens aéreas e a transforma num ponto mapeado e contável.

Palmeiras detetadas
718 751
Área líquida coberta
12 166,6 ha
Blocos de produção
26
Densidade média
59,1 palmeiras/ha
Um drone de levantamento na sua base de descolagem à beira de uma plantação de palmeiras-de-óleo, com palmeiras adultas atrásAmpliar
Na propriedade: o drone de levantamento pronto na sua base de descolagem.

A pergunta

Quantas palmeiras tem a plantação, e onde está cada uma? Numa propriedade desta dimensão, as contagens manuais são lentas e não produzem um mapa. A entrega aqui é um ponto mapeado por palmeira, bloco a bloco, que a plantação pode consultar e verificar.

Como funciona

  1. ImagensUm ortomosaico RGB por bloco
  2. MosaicosRecortes de 1280 píxeis com 256 píxeis de sobreposição
  3. DeteçãoUm modelo YOLOv8 com uma só classe: palmeira-de-óleo
  4. FusãoResultados dos recortes juntos e duplicados removidos
  5. InventárioUm ponto por palmeira, em GeoPackage e CSV

O modelo aprendeu com 4 041 copas anotadas à mão em 435 recortes de dois blocos. Os recortes do bloco piloto são uma amostra estratificada, escolhida para incluir cenas só com ervas daninhas, só com palmeiras e mistas. Os conjuntos de treino, validação e teste foram divididos em 70/15/15 por setor geográfico e não por recorte aleatório, por isso a pontuação de teste reflete terreno que o modelo não tinha visto.

Melhorar o modelo em produção

À medida que os blocos chegavam, surgiram dois tipos de erro: a copa densa das palmeiras adultas, onde as copas vizinhas se confundem, e as palmeiras jovens, pequenas e fáceis de falhar. Anotei exemplos de ambos os casos num segundo bloco e voltei a treinar. O modelo publicado resulta de 9 iterações de treino, cada uma comparada com o mesmo conjunto de teste reservado. Face à versão de base anterior, encontra mais palmeiras e faz menos deteções falsas, por isso nenhum dos ganhos foi feito à custa do outro.

Precisão medida

Avaliei o modelo publicado em 79 recortes de teste com 716 palmeiras anotadas à mão, de terreno que nunca viu no treino, e corri a versão de base nos mesmos recortes.

Recortes de teste reservados: modelo publicado e versão de base
Modelo publicadoVersão de base
Precisão: parte das deteções que são palmeiras reais0,8450,727
Sensibilidade (recall): parte das palmeiras reais encontradas0,7740,637
Palmeiras contadas no interior dos recortes (contagem manual: 518)519454
Diferença face à contagem manual+0,2%−12,4%

A contagem usa o interior dos recortes porque os recortes do processo se sobrepõem: uma copa cortada na borda de um recorte aparece inteira no seguinte, e os duplicados são fundidos. A versão de base falhava sobretudo na copa densa e nas palmeiras jovens, e voltar a treinar com esses casos eliminou a maior parte da diferença. A avaliação completa está na ficha do modelo (em inglês).

Fazer o total bater certo

Os blocos foram entregues um de cada vez, e muitos sobrepunham-se. Uma verificação de todos os pares encontrou 5 194,7 ha de cobertura partilhada em 51 pares de blocos. Somar a contagem de cada bloco isoladamente teria contado as palmeiras dessas zonas duas ou três vezes.

Resolvi-o com uma regra fixa: o terreno partilhado pertence ao bloco entregue primeiro, e os blocos seguintes descartam as suas deteções nessa sobreposição. Cada hectare é contado uma vez.

Total da plantação, antes e depois de remover as contagens duplicadas
Soma das contagens por bloco1 021 163
Cada hectare contado uma vez718 751

302 412 contagens duplicadas removidas (29,6%)

Onde havia dados de elevação (5 de 26 blocos), um controlo da altura da copa assinala deteções baixas demais para serem plausíveis, que provavelmente não são palmeiras. Assinala-as para revisão; não as apaga.

O que este trabalho não afirma

  • As sobreposições foram resolvidas com a extensão retangular de cada bloco, não com limites de propriedade levantados. Os totais por bloco podem mudar se forem aplicados os limites reais. O total da plantação não deverá mudar muito, porque a sobreposição é uma sobreposição real de imagens.
  • Alguns blocos ficam apenas com uma faixa estreita de terreno depois da regra, por isso o número de palmeiras por hectare parece muito baixo. Esses valores precisam de verificação no terreno antes de serem citados.
  • A contagem no interior dos recortes está próxima em parte porque os erros se compensam: cerca de 100 palmeiras anotadas são falhadas, e um número semelhante de deteções não tem anotação correspondente. Por bloco, as diferenças foram de +3,2% e −4,3%. Os totais sobre muitas palmeiras são fiáveis; nem todas as deteções individuais estão certas.
  • São verificações em recortes reservados, não uma contagem no terreno de um bloco inteiro. As palmeiras da plantação são sobretudo jovens, e o modelo não foi avaliado noutras plantações nem em palmeiras adultas altas com copas muito sobrepostas.

O que a plantação recebeu

  • Um GeoPackage por bloco com duas camadas: os contornos das copas, e um ponto por palmeira com identificador, pontuação de confiança e área da copa.
  • Um inventário geral da plantação que junta todos os blocos.
  • Um guia para processar novos blocos sem voltar a treinar, a menos que surja um novo tipo de erro.

Código e modelo abertos

Com autorização do proprietário da plantação, o código e o modelo treinado são públicos sob a licença AGPL-3.0. As imagens e as anotações ficam com a plantação. O modelo também pode ser exportado para ONNX e usado no QGIS com o plugin Deepness.

No terreno

Fotografias e vídeo da propriedade. Removi os dados de localização de todos os ficheiros.

Marcar uma chamada