O que é “segmentação semântica” em comparação com “segmentação” e “marcação de cena”?

97

A segmentação semântica é apenas um pleonasmo ou há uma diferença entre "segmentação semântica" e "segmentação"? Existe uma diferença para "rotulagem de cena" ou "análise de cena"?

Qual é a diferença entre segmentação em nível de pixel e pixelwise?

(Pergunta lateral: quando você tem esse tipo de anotação baseada em pixels, você obtém detecção de objetos gratuitamente ou ainda há algo a fazer?)

Por favor, forneça uma fonte para suas definições.

Fontes que usam "segmentação semântica"

Fontes que usam "rotulagem de cena"

Fonte que usa "nível de pixel"

  • Pinheiro, Pedro O. e Ronan Collobert: "From Image-level to Pixel-level Labeling with Convolutional Networks." Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2015. (ver http://arxiv.org/abs/1411.6228 )

Fonte que usa "pixelwise"

  • Li, Hongsheng, Rui Zhao e Xiaogang Wang: "Propagação para frente e para trás altamente eficiente de redes neurais convolucionais para classificação pixelwise." pré-impressão de arXiv arXiv: 1412.4526 , 2014.

Google Ngrams

"Segmentação semântica" parece ser mais usada recentemente do que "rotulagem de cena"

insira a descrição da imagem aqui

Martin Thoma
fonte
Outros termos que parecem ser muito semelhantes: (por-) classificação / rotulagem de pixel
Martin Thoma
12
É realmente interessante que @MartinThoma tenha uma segmentação semântica de levantamento de pré-impressão arXiv, publicada quase 6 meses depois de fazer a pergunta [link] ( arxiv.org/pdf/1602.06541.pdf ). Bom trabalho!
Mohamed Hasan,

Respostas:

92

"segmentação" é a partição de uma imagem em várias partes "coerentes", mas sem qualquer tentativa de compreender o que essas partes representam. Um dos trabalhos mais famosos (mas definitivamente não o primeiro) é Shi e Malik "Normalized Cuts and Image Segmentation" PAMI 2000 . Esses trabalhos tentam definir "coerência" em termos de pistas de baixo nível, como cor, textura e suavidade de limites. Você pode rastrear esses trabalhos até a teoria da Gestalt .

Por outro lado, a "segmentação semântica" tenta particionar a imagem em partes semanticamente significativas e classificar cada parte em uma das classes pré-determinadas. Você também pode atingir o mesmo objetivo classificando cada pixel (em vez de toda a imagem / segmento). Nesse caso, você está fazendo uma classificação em termos de pixels, o que leva ao mesmo resultado final, mas em um caminho ligeiramente diferente ...

Então, suponho que você pode dizer que "segmentação semântica", "rotulagem de cena" e "classificação pixelwise" estão basicamente tentando atingir o mesmo objetivo: compreender semanticamente o papel de cada pixel na imagem. Você pode seguir vários caminhos para alcançar esse objetivo, e esses caminhos levam a ligeiras nuances na terminologia.

Shai
fonte
2
Qual caminho leva à segmentação semântica e que leva à rotulagem de cena ou classificação pixelwise?
Martin Thoma
3
@moose em geral, se você usa ferramentas e algoritmos originados no campo de pesquisa de "segmentação" (por exemplo, CRF, termos indutores de suavidade, etc.), então você está fazendo "segmentação semântica". Por outro lado, se você estiver usando ferramentas e algoritmos usados ​​na classificação de imagens, aplicando-os localmente, é mais provável que descreva seu trabalho como "etiquetagem pixelwise". No entanto, não acho que haja realmente nenhuma diferença prática, apenas semântica: esses são sinônimos do mesmo objetivo final.
Shai
63

Eu li muitos artigos sobre Detecção de Objetos, Reconhecimento de Objetos, Segmentação de Objetos, Segmentação de Imagens e Segmentação Semântica de Imagens e aqui estão minhas conclusões que podem não ser verdadeiras:

Reconhecimento de objeto: em uma determinada imagem, você deve detectar todos os objetos (uma classe restrita de objetos depende do seu conjunto de dados), localizá-los com uma caixa delimitadora e rotular essa caixa delimitadora com um rótulo. Na imagem abaixo, você verá uma saída simples de um reconhecimento de objeto de última geração.

Reconhecimento de objeto

Detecção de objetos: é como o reconhecimento de objetos, mas nesta tarefa você tem apenas duas classes de classificação de objetos, o que significa caixas delimitadoras de objetos e caixas delimitadoras de não objetos. Por exemplo, detecção de carro: você deve detectar todos os carros em uma determinada imagem com suas caixas delimitadoras.

Detecção de Objetos

Segmentação de objeto: Assim como o reconhecimento de objeto, você reconhecerá todos os objetos em uma imagem, mas sua saída deve mostrar esse objeto classificando os pixels da imagem.

segmentação de objeto

Segmentação de imagem: Na segmentação de imagem, você segmentará regiões da imagem. sua saída não rotulará segmentos e região de uma imagem que consistentemente entre si deveriam estar no mesmo segmento. Extrair super pixels de uma imagem é um exemplo dessa tarefa ou segmentação de primeiro plano-fundo.

segmentação de imagem

Segmentação semântica: Na segmentação semântica você deve rotular cada pixel com uma classe de objetos (carro, pessoa, cachorro, ...) e não-objetos (água, céu, estrada, ...). Em outras palavras, em Segmentação Semântica, você rotulará cada região da imagem.

segmentação semântica

Acho que a rotulagem em nível de pixel e pixelwise é basicamente o mesmo, poderia ser segmentação de imagem ou segmentação semântica. Eu também respondi sua pergunta neste link da mesma forma.

e_soroush
fonte
8
Eu também adicionaria segmentação de instância, ou seja, delienação entre instâncias do mesmo objeto
Alex
1
Eu diria que "Reconhecimento de imagem" é sinônimo de "Classificação de imagem" em vez de "Detecção de imagem". Trata-se de reconhecer um ou vários objetos em uma imagem e ser capaz de dizer se ele está presente. Se também quisermos saber onde ele está, precisaremos detectar os objetos usando caixas delimitadoras. Além disso, não vejo uma razão pela qual um detector de objetos deva ser capaz de detectar apenas uma única classe.
pietz
Eu concordo parcialmente com você. Não mencionei o que é reconhecimento de imagem, portanto, reconhecimento e classificação de imagem podem significar o mesmo. No entanto, a detecção de objetos é usada principalmente para problemas de duas classes e o reconhecimento de objetos para várias classes. De qualquer forma, não tenho guarda para responder, foi ideia minha depois de ler um jornal há cerca de três anos! Felicidades!
e_soroush
Você poderia explicar alguns lugares onde encontra suas leituras?
qarthandso
36

As respostas anteriores são muito boas, gostaria de apontar mais algumas adições:

Segmentação de Objetos

uma das razões pelas quais isso caiu em desuso na comunidade de pesquisa é porque é problemática e vago. A segmentação de objetos costumava significar simplesmente encontrar um único ou um pequeno número de objetos em uma imagem e desenhar um limite ao redor deles e, para a maioria dos propósitos, você ainda pode assumir que significa isso. No entanto, também começou a ser usado para significar segmentação de blobs que podem ser objetos, segmentação de objetos do fundo (mais comumente agora chamado de subtração de fundo ou segmentação de fundo ou detecção de primeiro plano), e até mesmo em alguns casos usado de forma intercambiável com o reconhecimento de objetos usando caixas delimitadoras (isso parou rapidamente com o advento de abordagens de redes neurais profundas para reconhecimento de objetos, mas antes o reconhecimento de objetos também poderia significa simplesmente rotular uma imagem inteira com o objeto nela).

O que torna a "segmentação" "semântica"?

Simpy, cada segmento, ou no caso de métodos profundos cada pixel, recebe um rótulo de classe com base em uma categoria. A segmentação em geral é apenas a divisão da imagem por alguma regra. A segmentação do Meanshift , por exemplo, de um nível muito alto, divide os dados de acordo com as mudanças na energia da imagem. Corte do gráficoa segmentação com base na mesma não é aprendida, mas derivada diretamente das propriedades de cada imagem separada das demais. Métodos mais recentes (baseados em rede neural) usam pixels que são rotulados para aprender a identificar os recursos locais que estão associados a classes específicas e, em seguida, classificam cada pixel com base em qual classe tem a maior confiança para aquele pixel. Desta forma, "etiquetagem de pixel" é na verdade um nome mais honesto para a tarefa, e o componente de "segmentação" é emergente.

Segmentação de instância

Provavelmente o significado mais difícil, relevante e original de Segmentação de Objeto, "segmentação de instância" significa a segmentação de objetos individuais em uma cena, independentemente de serem do mesmo tipo. No entanto, uma das razões pelas quais isso é tão difícil é porque de uma perspectiva de visão (e de certa forma filosófica) o que torna uma instância de "objeto" não é totalmente claro. As partes do corpo são objetos? Esses "objetos parciais" deveriam ser segmentados por um algoritmo de segmentação de instância? Devem ser segmentados apenas se forem vistos separados do todo? E quanto aos objetos compostos, duas coisas claramente adjacentes, mas separáveis, devem ser um ou dois objetos (uma pedra colada no topo de uma vara é um machado, um martelo ou apenas uma vara e uma pedra, a menos que seja feita de maneira apropriada?). Além disso, não é t claro como distinguir instâncias. Um testamento é uma instância separada das outras paredes às quais está anexado? Em que ordem as instâncias devem ser contadas? Como eles aparecem? Proximidade do ponto de vista? Apesar dessas dificuldades, a segmentação de objetos ainda é um grande negócio porque, como humanos, interagimos com objetos o tempo todo, independentemente de seu "rótulo de classe" (usando objetos aleatórios ao seu redor como pesos de papel, sentados em coisas que não são cadeiras), e, portanto, alguns conjuntos de dados tentam chegar a esse problema, mas o principal motivo de não haver muita atenção dada ao problema ainda é porque ele não está bem definido. insira a descrição da imagem aqui

Análise de cena / rotulagem de cena

A análise de cena é a abordagem de segmentação estrita para a rotulagem de cena, que também possui alguns problemas próprios de indefinição. Historicamente, a rotulação de cena significa dividir toda a "cena" (imagem) em segmentos e dar a todos um rótulo de classe. No entanto, também era usado para significar dar rótulos de classe a áreas da imagem sem segmentá-las explicitamente. No que diz respeito à segmentação, "segmentação semântica" não implica dividir toda a cena. Para a segmentação semântica, o algoritmo se destina a segmentar apenas os objetos que conhece, e será penalizado por sua função de perda por rotular pixels que não possuem nenhum rótulo. Por exemplo, o conjunto de dados MS-COCO é um conjunto de dados para segmentação semântica onde apenas alguns objetos são segmentados. Imagens de amostra MS-COCO

fisincubo
fonte