contagem de árvores

31 views
Skip to first unread message

Isabela Primiano

unread,
Sep 10, 2020, 1:15:09 PM9/10/20
to FIELDimageR: A R package to analyze orthomosaic images from field trials.
Olá Felipe,

Primeiro, parabéns pelo pacote. É muito interessante!

Eu estou tentando contar número de árvores de citros por linha e utilizo imagens do Google Earth com datas diferentes (2013 e 2014). O objetivo é obter o número de plantas por linha para depois estimar as falhas. Consegui eliminar o fundo e separar por linhas, mas estou com duas dúvidas:
1) por que em alguns pontos o algoritmo/programa consegue identificar e separar as copas e, em outros pontos da imagem, não há essa separação? 
Estou ciente da dificuldade das copas não estarem bem definidas e se tocarem, mas não entendi esse padrão diferente. Será que tem como eu marcar 
uma planta para indicar o padrão para ser contado?


2) após o Counting, muito dos pontos vermelhos ficam fora da marcação em preto. Queria confirmar: a contagem é somente aonde está o ponto vermelho?


Gostaria de saber se estou em um bom caminho e se você tem alguma sugestão para melhorar a contagem.
Obrigada!!
Isabela


Script:

library(devtools)
devtools::install_github("filipematias23/FIELDimageR")

library(FIELDimageR)
library(raster)

#Selecting the targeted field from the original image
# Uploading image
EX.P<-stack("2013-pa.png")
plotRGB(EX.P, r = 1, g = 2, b = 3)

EX.P2<-stack("2014-pa.jpg")
plotRGB(EX.P2, r = 1, g = 2, b = 3)


# Building the plot shapefile 
EX.SC.Shape<-fieldShape(mosaic = EX.P,ncols = 1, nrows = 35)
EX.SC.Shape2<-fieldShape(mosaic = EX.P2,ncols = 1, nrows = 35)

# Using index "BIM" to remove background
#ajustar valor do cropValue
EX.P.R1<- fieldMask(mosaic = EX.P,index = "BIM", cropValue = 13, cropAbove = T)
plotRGB(EX.P.R1$newMosaic)

EX.P.R2<- fieldMask(mosaic = EX.P2,index = "BIM", cropValue = 14, cropAbove = T)
#aumentei o cropValue para 14 para ter pontos maiores

plotRGB(EX.P.R2$newMosaic)


# Counting  (all sample)
EX.P.Total<-fieldCount(mosaic = EX.P.R1$mask, 
                       fieldShape = EX.SC.Shape$fieldShape, 
                       minSize = 0.00,
                       cex = 0.1,
                       na.rm = T)
#Eu estou usando o minSize = 0 para considerar o máximo possível de pontos. 

"Number of objects: 2050"
> EX.P.Total$fieldCount #numero por linha
 [1]  3 11 20 29 49 53 61 66 62 60 71 62 66 73 69 67 75 66 68 62 63 76 64 58 65 59
[27] 57 65 58 55 62 68 69 67 71

EX.P.Total2<-fieldCount(mosaic = EX.P.R2$mask, 
                       fieldShape = EX.SC.Shape2$fieldShape, 
                       minSize = 0.00,
                       cex = 0.1,
                       na.rm = T)

[1] "Number of objects: 3140"
> EX.P.Total2$fieldCount #numero por linha
 [1]   4  11  35  65  81  64  81  89  90 107 102 108  93 106  73  82 100 111 112 124
[21]  99 100  95  81  89  94  93 100 128 135 124  98  91  75 100
2013-pa.png
2013-pa-Rstudio1.tiff
2013-pa-Rstudio2.tiff
2014-pa.jpg
2014-pa-Rstudio1.tiff
2014-pa-Rstudio2-2.tiff

fmatias

unread,
Sep 11, 2020, 12:20:48 PM9/11/20
to FIELDimageR: A R package to analyze orthomosaic images from field trials.
Ola Isabela,

Obrigado por entrar em contato. Primeiramente voce deve garantir que a rotação esteja perfeita para que as arvores estejam dentro de cada linha e não entrelace com as outras linhas. 

Nos usamos um processo chamado de segmentação de imagem na contagem das plantas e não algum algoritmo guiado de aprendizado de maquinas onde voce treina o algoritmo para identificar seus objetos. Embora seja mais rápido a segmentação de imagem exige um certo tempo para encontrar o ponto de corte no qual voce definira onde sera planta e onde sera solo na montagem da mascara. Voce fez um bom trabalho avaliando o índice BIM com varias pontos de corte (seu código), mas talvez voce deva continuar tentando alguns outros indices e valores de corte na montagem da mascara ate voce garantir que as copas das plantas não se toquem ou pelo menos o formato das plantas sejam bem diferenciáveis. Assim, não tem como mostrar um formato para o software identificar, ele basicamente esta contando os formatos. Nos usamos um algoritmo de segmentação de imagens chamado "watershed" (depois da uma olhadinha sobre ele na internet, bem interessante!). Uma sugestão sera cortar uma imagem menor com menos arvores em uma região problemática (plantas se tocando) e tentar ajustar o pipeline. Depois voce amplia a analise para uma imagem maior como as que voce nos enviou no exemplo em anexo. 

Sobre os pontos fora da imagem e apenas um efeito do tamanho usado no "cex" ou quando muda a janela. Em outras palavras, se voce ampliar a janela de plotagem depois de gerar os pontos ele vai desconfigurar a imagem (não sei pq acontece isso no R). Tente salvar a imagem da forma que e gerada no R e observe em tiff ou jpg direto do seu computador. Acredito que não ira desconfigurar. 

Por favor, me mantenha informado se essas informações te ajudaram..!!!

Alem disso, existem alguns softwares online que usam aprendizado de maquinas para fazer a contagem das plantas, talvez eles se adequem melhor para a realidade das suas avaliações. Não sei te informar nomes neste momento, mas caso veja algo eu lhe enviarei.

Mais uma vez obrigado por entrar em contato,
Tudo de bom
Filipe

gustavo...@wur.nl

unread,
Sep 11, 2020, 1:55:41 PM9/11/20
to FIELDimageR: A R package to analyze orthomosaic images from field trials.

Ola Isabela,

So para complementar o email do Filipe - mas arriscando entrar numa area muito extensa que eh o processamento de imagem.  Se vc quiser/puder se arriscar um pouco, contagem de arvores eh uma tarefa habitual.
De uma olhada em:
 https://www.youtube.com/watch?v=QbuCl_UHEyw&ab_channel=HatariLabs
https://www.youtube.com/watch?v=ja0ZdHMsC3c&ab_channel=andiirawan

Se vc entrar em contato com o pessoal da agricultura de precisao (ou o Molin ou o Dematte), creio que eles poderao te ajudar bastante. 

Boa sorte e espero nao ter atrapalhado.

Aza

Isabela Primiano

unread,
Sep 22, 2020, 7:38:08 AM9/22/20
to FIELDimageR: A R package to analyze orthomosaic images from field trials.
Bom dia Gustavo e Filipe,

Desculpa a demora em responder. 
Agradeço muito pelas dicas e sugestões.

Gustavo, estou vendo os vídeos e organizando as ideias (rs). Não atrapalhou não! =D 

Filipe, muito obrigada pelas explicações. Vou ajustar melhor as imagens nas linhas. Entendi sobre os pontos fora da imagem, realmente quando altero o tamanho da janela, ocorre alteração na localização deles. 

Obrigada novamente. Ótima semana para todos!

Isabela
Reply all
Reply to author
Forward
0 new messages