Estou lutando para entender claramente a distinção entre classificação baseada em pixel e classificação baseada em objeto no domínio de sensoriamento remoto, e espero que alguém dessa comunidade possa fornecer informações.
Com base nas informações que tenho até agora, meu entendimento atual é o seguinte:
Classificação baseada em pixel: a classificação é feita no nível por pixel, usando apenas as informações espectrais disponíveis para esse pixel individual (ou seja, os valores dos pixels dentro da localidade são ignorados). Nesse sentido, cada pixel representaria um exemplo de treinamento para um algoritmo de classificação e esse exemplo de treinamento estaria na forma de um vetor n-dimensional, em que n era o número de bandas espectrais nos dados da imagem. Consequentemente, o algoritmo de classificação treinado produziria uma previsão de classe para cada pixel individual em uma imagem.
Classificação baseada em objeto: a classificação é feita em um grupo localizado de pixels, levando em consideração as propriedades espaciais de cada pixel, uma vez que elas se relacionam. Nesse sentido, um exemplo de treinamento para um algoritmo de classificação consistiria em um grupo de pixels, e o algoritmo de classificação treinado produziria uma previsão de classe para pixels em grupo. Para um exemplo bruto, uma imagem pode ser particionada em n segmentos de tamanho igual e cada segmento receberia uma classe (ou seja, contém objeto / não contém objeto).
Esse pensamento é preciso em relação ao significado desses termos ou há algo que eu perdi?
No que diz respeito à classificação baseada em pixels, você está no local. Cada pixel é um vetor n-dimensional e será atribuído a alguma classe de acordo com alguma métrica, seja usando Support Vector Machines, MLE, algum tipo de classificador knn, etc.
No entanto, no que diz respeito aos classificadores regionais, houve grandes desenvolvimentos nos últimos anos, impulsionados por uma combinação de GPUs, grandes quantidades de dados, nuvem e ampla disponibilidade de algoritmos, graças ao crescimento do código aberto (facilitado pelo github). Um dos maiores desenvolvimentos em visão / classificação por computador foi em redes neurais convolucionais (CNNs). As camadas convolucionais "aprendem" os recursos que podem ser baseados em cores, como nos classificadores tradicionais baseados em pixels, mas também criam detectores de borda e todos os tipos de outros extratores de recursos que poderiam existir em uma região de pixels (daí a parte convolucional) que você nunca foi possível extrair de uma classificação baseada em pixels. Isso significa que é menos provável que eles classifiquem incorretamente um pixel no meio de uma área de pixels de algum outro tipo - se você já fez uma classificação e conseguiu gelo no meio da Amazônia, entenderá esse problema.
Você aplica uma rede neural totalmente conectada aos "recursos" aprendidos através das convoluções para efetivamente fazer a classificação. Uma das outras grandes vantagens das CNNs é que elas são invariantes em escala e rotação, pois geralmente existem camadas intermediárias entre as camadas de convolução e a camada de classificação que generalizam os recursos, usando pooling e dropout, para evitar ajustes excessivos e ajudar com os problemas em torno. escala e orientação.
Existem inúmeros recursos em redes neurais convolucionais, embora o melhor deva ser a classe Standord de Andrei Karpathy , que é um dos pioneiros nesse campo, e toda a série de palestras está disponível no youtube .
Claro, existem outras maneiras de lidar com a classificação baseada em pixel versus área, mas atualmente essa é a abordagem mais avançada e tem muitas aplicações além da classificação de sensoriamento remoto, como tradução automática e carros autônomos.
Aqui está outro exemplo de classificação baseada em região , usando o Open Street Map para dados de treinamento com tags, incluindo instruções para configurar o TensorFlow e executar na AWS.
Aqui está um exemplo usando o Google Earth Engine de um classificador baseado em detecção de borda, neste caso para irrigação por pivô - usando nada mais que um kernel e convulsões gaussianos, mas novamente mostrando o poder das abordagens baseadas em região / borda.
Embora a superioridade do objeto sobre a classificação de classe baseada em pixel seja amplamente aceita, aqui está um artigo interessante em Cartas de Sensoriamento Remoto que avalia o desempenho da classificação baseada em objeto .
Finalmente, um exemplo divertido, apenas para mostrar que, mesmo com classificadores regionais / convolucionais, a visão por computador ainda é muito difícil - felizmente, as pessoas mais inteligentes do Google, Facebook, etc., estão trabalhando em algoritmos para determinar a diferença entre cães, gatos e diferentes raças de cães e gatos. Portanto, os interessados em sensoriamento remoto podem dormir à noite: D
fonte
Uma resposta muito simples é a seguinte:
Se você usar apenas informações espectrais (intensidade de pixel) como conjunto de treinamento, fará a classificação da base de pixels.
Se você usar informações espaciais (pixels de vizinhança) e espectrais como conjunto de treinamento, fará a classificação da base de objetos (usando o algoritmo baseado em segmentação, por exemplo, DBScan). No Computer Vision, este DBScan usado para extração de Superpixel.
Nota: você pode usar informações espectrais em qualquer sentido (tamanho, forma, contexto / textura) para extração de recursos.
Você pode usar diferentes abordagens para fazer a extração de recursos usando informações espectrais.
A principal questão é: como encontrar a abordagem mais adequada para a extração de recursos e aplicar o algoritmo eficiente (detecção de borda, segmentação espectral, clustering) para o problema proposto, a fim de extrair informações de informações espectrais.
Pode-se pensar na matriz de convolução para fazer uma boa análise em informações espectrais e espaciais para criar um conjunto de treinamento.
Referência: Meu conhecimento após ter mais de 3 anos de experiência em Sensoriamento Remoto e Domínio GIS.
fonte