Estou procurando um método para processar uma imagem de sensoriamento remoto e extrair as áreas de copa das árvores individuais da imagem.
Eu tenho imagens de área de comprimento de onda visual e dados da área. A localização em questão é uma área deserta, portanto a cobertura das árvores não é tão densa quanto uma área florestal. A resolução das imagens aéreas é de 0,5 pés por 0,5 pés. A resolução do lidar é de aproximadamente 1 x 1 pé. Os dados visuais e o lidar vêm de um conjunto de dados de Pima County, Arizona. Uma amostra do tipo de imagem aérea que tenho está no final deste post.
Esta pergunta Detecção de árvore única no ArcMap? parece ser o mesmo problema, mas não parece haver uma boa resposta lá.
Posso obter uma classificação razoável dos tipos de vegetação (e informações sobre a porcentagem geral de cobertura) na área usando a classificação Iso Cluster no Arcmap, mas isso fornece pouca informação sobre árvores individuais. O mais próximo que eu tenho do que eu quero é os resultados de passar a saída da classificação isocluster pelo recurso Raster to Polygon no Arcmap. O problema é que esse método se funde próximo a árvores em um único polígono.
Edit: Eu provavelmente deveria ter incluído mais alguns detalhes sobre o que tenho. Os conjuntos de dados brutos que tenho são:
- Dados completos, e um raster tiff gerado a partir deles.
- Imagens visuais (como a imagem de exemplo mostrada, mas cobrindo uma área muito maior)
- Medições diretas manuais de um subconjunto de árvores na área.
A partir destes eu gerei:
- As classificações de solo / vegetação.
- Os rasters DEM / DSM.
fonte
Respostas:
Existe um corpo considerável de literatura sobre detecção individual de coroas em dados espectrais e de lidar. Métodos, talvez comece com:
Falkowski, MJ, AMS Smith, PE Gessler, AT Hudak, LA Vierling e JS Evans. (2008). A influência do dossel de floresta de coníferas cobre a precisão de dois algoritmos de medição de árvores individuais usando dados do lidar. Jornal Canadense de Sensoriamento Remoto 34 (2): 338-350.
Smith AMS, EK Strand, CM Steele, DB Hann, SR Garrity, MJ Falkowski, JS Evans (2008) Produção de mapas de estrutura espacial da vegetação por análise por objeto da invasão de zimbro em fotografias aéreas multitemporais. Canadian Journal Sensoriamento Remoto 34 (2): 268-285
Se você está interessado no método Wavelet (Smith et al., 2008), eu o codifiquei em Python, mas é muito lento. Se você tem experiência com o Matlab, é aqui que ele é implementado no modo de produção. Temos dois documentos em que identificamos ~ 6 milhões de acres de invasão de zimbro no leste do Oregon usando o método wavelet com imagens NAIP RGB-NIR, portanto, está bem comprovado.
Baruch-Mordo, S., JS Evans, J. Severson, JD Naugle, J. Kiesecker, J. Maestas e MJ Falkowski (2013). Conservação Biológica das espécies 167: 233-241
Poznanovic, AJ, MJ Falkowski, AL Maclean e JS Evans (2014) Uma Avaliação de Precisão de Algoritmos de Detecção de Árvores em Juniper Woodlands. Engenharia fotogramétrica e sensoriamento remoto 80 (5): 627–637
Existem algumas abordagens interessantes, na decomposição geral de objetos, a partir da literatura aplicada ao espaço de estados da matemática, usando processos gaussianos de várias soluções para decompor as características dos objetos através da escala. Eu uso esses tipos de modelos para descrever processos em várias escalas em modelos ecológicos, mas ele pode ser adaptado para decompor as características dos objetos de imagem. Divertido, mas um pouco esotérico.
Gramacy, RB e HKH Lee (2008) Bayesian utilizam modelos de processos gaussianos com uma aplicação para modelagem por computador. Jornal da Associação Estatística Americana, 103 (483): 1119-1130
Kim, HM, BK Mallick e CC Holmes (2005) Analisando dados espaciais não-estacionários usando processos Gaussianos fragmentados. Jornal da Associação Estatística Americana, 100 (470): 653–668
fonte
O eCognition é o melhor software para isso, eu fiz isso usando outro software, mas o eCognition é melhor. Aqui está a referência à literatura sobre o assunto:
por exemplo, http://www.mdpi.com/1424-8220/14/12/22643
Além disso:
por exemplo, http://www.nrcresearchpress.com/doi/abs/10.1139/x05-030#.VJmMb14gAA
fonte
Para criar um DHM subtrair o DEM do DEM, isso pode ser feito na Esri Raster Calculator ou GDAL_CALC . Isso colocará todas as suas elevações em um 'campo de jogo nivelado'.
Sintaxe (substituir caminhos completos para DEM, DSM e DHM):
O DHM será principalmente 0 (ou próximo o suficiente), o que você faz com o valor do seu nodata. Com a Raster Calculator ou GDAL_CALC, você pode extrair valores mais que um valor arbitrário com base na quantidade de ruído observada no DHM. O objetivo disso é reduzir o ruído e destacar apenas as copas da vegetação - no caso em que duas 'árvores' estão adjacentes, isso deve se dividir em duas bolhas distintas.
Sintaxe (substitua os caminhos completos por Binário e DHM e o valor observado por Valor):
Agora, com GDAL_CALC ou Esri IsNull, crie uma varredura binária, que pode ser poligonalizada com GDAL_Polygonize ou Esri Raster to Polygon .
Para refinar os polígonos, remover polígonos excessivamente pequenos e compará-los às bandas RGB que procuram assinaturas. No Esri, a ferramenta Estatísticas Zonais ajudará. Então você pode descartar os polígonos que claramente não possuem as estatísticas corretas (com base na experimentação e nos seus dados, não posso fornecer os valores).
Isso deve levar você a cerca de 80% de precisão na plotagem de coroas individuais.
fonte
Eu tive o mesmo problema alguns anos atrás. Eu tenho uma solução que não requer dados LAS filtrados ou outros dados auxiliares. Se você tiver acesso aos dados LiDAR e puder gerar DEMs / DSMs / DHMs (DEM a seguir, não discutirei a semântica da nomenclatura do modelo de superfície) de retornos diferentes, o script a seguir pode ser útil.
O script arcpy ingere 3 DEMs e cospe um polígono de floresta e arquivos de forma de ponto de árvore. Os 3 DEMs devem ter a mesma resolução espacial (ou seja, 1 metro) e extensões, e representam primeiros retornos, últimos retornos e terra nua. Eu tinha parâmetros muito específicos para a extração de vegetais, mas os parâmetros podem ser alterados para atender a outras necessidades. Estou certo de que o processo pode ser aprimorado, pois essa foi minha primeira tentativa séria de script em python.
fonte
Estou postando isso como resposta devido ao limite de tamanho no comentário, sem esperanças de créditos :). Pincel muito amplo, desde que você tenha DEM.
Número máximo de grupos no processo = contagem de árvores no polígono individual. Critérios adicionais, por exemplo, a distância entre 'árvores' dentro dos polígonos podem ajudar ... A suavização do DEM usando o kernel também é uma opção.
fonte