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
Ampliar
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
- ImagensUm ortomosaico RGB por bloco
- MosaicosRecortes de 1280 píxeis com 256 píxeis de sobreposição
- DeteçãoUm modelo YOLOv8 com uma só classe: palmeira-de-óleo
- FusãoResultados dos recortes juntos e duplicados removidos
- 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.
| Modelo publicado | Versão de base | |
|---|---|---|
| Precisão: parte das deteções que são palmeiras reais | 0,845 | 0,727 |
| Sensibilidade (recall): parte das palmeiras reais encontradas | 0,774 | 0,637 |
| Palmeiras contadas no interior dos recortes (contagem manual: 518) | 519 | 454 |
| 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.
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.



