O que é segmentação de instância?

Autores

Dave Bergmann

Senior Staff Writer, AI Models

IBM Think

Cole Stryker

Staff Editor, AI Models

IBM Think

O que é segmentação de instância?

A segmentação de instâncias é uma tarefa de computer vision orientada por deep learning que prevê os limites exatos do pixel de cada instância de objeto individual em uma imagem.

A segmentação de instâncias, que é um subconjunto do campo mais amplo da segmentação de imagem, oferece saídas mais detalhadas e sofisticadas do que os algoritmos convencionais de detecção de objetos. Outras tarefas de segmentação de imagens incluem a segmentação semântica, que categoriza cada pixel em uma imagem por classe semântica (a categoria de "coisa" ou "material" que ele representa), e a segmentação panóptica, que combina os objetivos da segmentação de instâncias e da segmentação semântica.

A segmentação de instâncias tem uma grande variedade de casos de uso de processamento de imagens em vários setores, desde a análise de imagens médicas até a detecção de objetos de interesse em imagens de satélites até a ativação da navegação em carros autônomos.

As mais recentes tendências em IA, trazidas a você por especialistas

Receba insights selecionados sobre as notícias mais importantes (e intrigantes) sobre IA. Inscreva-se no nosso boletim informativo semanal Think. Consulte a Declaração de privacidade da IBM.

Agradecemos a você! Você se inscreveu.

Sua assinatura será entregue em inglês. Você encontrará um link para cancelar a assinatura em cada boletim informativo. Você pode gerenciar suas assinaturas ou cancelar a assinatura aqui. Consulte nossa Declaração de privacidade da IBM para obter mais informações.

Segmentação de instância versus detecção de objeto

A diferença principal entre as tarefas de segmentação de instância e detecção de objetos convencional é que a segmentação de instância prevê os limites de nível de pixel de cada objeto, enquanto a detecção de objetos prevê apenas a localização aproximada de um objeto.

Os métodos convencionais de detecção de objetos são uma combinação evoluída de classificação de imagens e localização de objetos. Treinado com vários algoritmos de aprendizado de máquina para reconhecer os padrões visuais de categorias relevantes de objetos (por exemplo, um modelo de direção autônoma pode ser treinado para reconhecer coisas como "carro" ou "pedestre"), um modelo de detecção de objetos analisa os dados visuais de uma imagem de entrada para anotar quaisquer instâncias de objetos relevantes e gerar regiões retangulares, chamadas de "caixas delimitadoras", em que cada instância está localizada.

Sistemas de segmentação de instâncias também detectam objetos em uma imagem, mas em muito mais detalhes: em vez de uma caixa delimitadora que aproxima a localização de uma instância de objeto, algoritmos de segmentação de instâncias geram uma "máscara de segmentação" pixel por pixel da forma e área precisas de cada instância.

Muitas arquiteturas de modelo de segmentação de instância líder, como a Mask R-CNN, executam a detecção convencional de objeções como uma etapa preliminar no processo de geração de máscaras de segmentação. Esses modelos de "dois estágios" normalmente oferecem precisão de última geração, embora com uma compensação na velocidade.

Mixture of Experts | 12 de dezembro, episódio 85

Decodificando a IA: resumo semanal das notícias

Participe do nosso renomado painel de engenheiros, pesquisadores, líderes de produtos e outros enquanto filtram as informações sobre IA para trazerem a você as mais recentes notícias e insights sobre IA.

Segmentação de instância versus segmentação semântica

A segmentação semântica é uma tarefa menos complexa do que a segmentação de instância. Ao contrário da segmentação de instâncias, a segmentação semântica não se preocupa em contar ou distinguir entre diferentes instâncias: o único objetivo da segmentação semântica é anotar cada pixel em uma imagem com um rótulo de classe semântica.

Os modelos de segmentação semântica não distinguem entre coisas, classes de objetos contáveis com formas distintas, como "carro" ou "pessoa", e elementos do ambiente (ou seja, classes de entidades não contáveis com formas variáveis, como "céu" ou "estrada").

Se múltiplas instâncias de objetos da mesma classe estiverem próximas ou se sobrepuserem, um modelo de segmentação semântica simplesmente as agrupará dentro de um único segmento de imagem. Considere, por exemplo, como um modelo de segmentação semântica trata os veículos estacionados muito próximos em ambos os lados da rua nesta imagem.

Uma comparação lado a lado de uma imagem de rua normal da cidade com a mesma imagem com segmentação semântica

Por outro lado, os modelos de segmentação de instância concentram-se exclusivamente na detecção e geração de máscaras de segmentação de objetos individuais. Um modelo de segmentação de instância deve ser capaz de delinear cada instância de objeto diferente, mesmo para instâncias ocultas da mesma classe de objeto.

Uma comparação lado a lado de uma imagem normal de uma rua da cidade, a mesma imagem com segmentação semântica e a mesma imagem com segmentação por instância.

Segmentação de instâncias versus segmentação panóptica

A segmentação panóptica envolve a classificação semântica de cada pixel de uma imagem e a delineação de cada instância diferente de objeto.

Modelos de segmentação panóptica podem teoricamente executar segmentação de instância, mas com custo computacional muito maior (pois sua saída contém informações adicionais não necessariamente relevantes para tarefas de segmentação de instância).

Uma comparação lado a lado de uma imagem normal de uma rua da cidade, a mesma imagem com segmentação semântica, a mesma imagem com segmentação por instância e a mesma imagem com segmentação panóptica.

As tentativas iniciais de segmentação panóptica simplesmente fizeram a segmentação de instância e a segmentação semântica em separado e, em seguida, combinaram suas saídas em uma etapa de pós-processamento. Esse método é computacionalmente ineficiente e tem dificuldades para resolver discrepâncias entre saídas de dados do modelo semântico e saídas de dados do modelo de instância.

Abordagens mais recentes conectam uma "cabeça" de segmentação semântica e uma "cabeça" de segmentação por instância a uma "espinha dorsal" compartilhada, muitas vezes uma rede piramidal de recursos (Feature Pyramid Network, FPN) — para extração de características, ou seja, a identificação de dados visuais relevantes. Isso aumenta a eficiência e elimina discrepâncias.

Casos de uso de segmentação de instância

A segmentação de instâncias é essencial para uma variedade de tarefas de computer vision.

  •  Imagens médicas: a segmentação por instância é utilizada para detectar os limites específicos de tecidos e patologias, como tumores
  • Condução autônoma: a segmentação de instâncias possibilita que carros autônomos detectem e classifiquem com precisão carros, objetos, pessoas e características da estrada (como semáforos).
  • Imagens de satélite: a segmentação de instância pode ajudar a identificar e isolar objetos de interesse, como distinguir entre vários edifícios ao longo de uma estrada para fins de GPS.
  • Robótica: a segmentação por instância permite o tipo de itens, a detecção de defeitos e, de forma semelhante aos carros autônomos, permite que robôs distingam e naveguem em torno de objetos em seu ambiente.

Como funciona a segmentação de instâncias?

O deep learning tornou-se essencial para a segmentação de instância: quase todos os métodos modernos de segmentação de imagem utilizam redes neurais. Embora os últimos anos tenham visto os modelos de transformadores surgirem como uma alternativa viável, a maioria dos métodos de segmentação de imagem (incluindo aqueles usados para segmentação de instâncias) aproveita alguma forma de redes neurais convolucionais (CNNs).

Os modelos de segmentação de instância baseados em CNN enquadram-se em duas categorias:

  • Modelos de dois estágios, como o Mask R-CNN, primeiro executam a detecção de objetos e, em seguida, geram máscaras de segmentação de objetos

  • Modelos one-shot (ou de estágio único), como o YOLACT, executam as duas tarefas em paralelo.

Tanto os modelos de segmentação de instâncias baseados em CNN quanto os baseados em transformadores utilizam uma estrutura codificador-decodificador, na qual uma rede codificadora é utilizada para extrair dados relevantes da imagem de entrada e uma rede decodificadora utiliza esses dados de características extraídos para reconstruir a imagem com um mapa de segmentação.

Para entender os modelos de segmentação de instância é útil conhecer as partes constituintes.

Redes neurais convolucionais (CNNs)

CNNs simples podem executar classificação de imagem e (para imagens que contêm um único objeto) classificação de objeto.

Para que algoritmos matemáticos sejam compatíveis com uma imagem, é necessário representar a imagem em formato numérico. As CNNs processam uma imagem de entrada RGB como uma matriz tridimensional (3D) de pixels, na qual as três dimensões do pixel representam seus valores R(ed), G(reen) e (B)lue, respectivamente.

Há três tipos de camadas em uma CNN convencional:

  • A(s) camada(s) convolucional(is) utiliza(m) filtros bidimensionais, chamados kernels, para extrair funcionalidades relevantes da imagem executando convoluções. Após cada convolução, o kernel se move para uma região adjacente, repetindo esse processo até que ele atravesse toda a imagem. A saída desta extração de funcionalidades é um mapa de funcionalidades.
     

  • A(s) camada(s) de agrupamento compacta(m) os dados do mapa de funcionalidades. Esse processo, também chamado de downsampling ou redução de dimensionalidade, aumenta a eficiência computacional e reduz o risco de overfitting no treinamento do modelo.
     

  • As camadas totalmente conectadas recebem e agrupam dados visuais de todos os nós na rede neural, daí o termo "totalmente conectadas", e preveem se a imagem corresponde a alguma das categorias às quais foi treinada para reconhecer.

Embora camadas convolucionais adicionais possam melhorar a precisão, a inclusão de camadas em excesso leva ao desvanecimento do gradiente, impedindo a otimização de modelo. A arquitetura ResNet resolveu esse problema abrindo caminho para CNNs com centenas (ou até milhares) de camadas.

CNN (R-CNN) baseada em região

A R-CNN foi desenvolvida para resolver tarefas complexas de detecção de múltiplos objetos que não podem ser alcançadas com CNNs padrão. Sua evolução posterior, Faster R-CNN, é um componente integral de muitos modelos de segmentação de instância.

Para fazer previsões no nível do objeto (em vez de no nível da imagem), o R-CNN introduziu propostas de região: o R-CNN utiliza pesquisa seletiva para propor cerca de 2 mil caixas sobrepostas que podem conter um objeto e, em seguida, alimentar cada "proposta de objeto" em uma CNN para extração de funcionalidades. Os algoritmos de máquina de vetor de suporte (SVM) classificam objetos e geram caixas delimitadoras.

A Fast R-CNN melhorou drasticamente a velocidade da R-CNN alimentando inicialmente a imagem inteira em uma CNN para extração de características e depois utilizando o mapa de características resultante para identificar regiões de interesse (RoIs). Pouco tempo depois, a Faster R-CNN melhor ou ainda mais a velocidade e a precisão ao introduzir uma rede de proposta de região (RPN) treinável para substituir o algoritmo de busca seletiva mais lento e não treinável.

Redes totalmente convolucionais

As FCNs substituem as camadas fixas e totalmente conectadas de uma CNN simples por camadas convolucionais e de agrupamento adicionais, portanto "totalmente convolucionais". O advento das FCNs inaugurou a era moderna da segmentação de imagens.

Assim como as CNNs convencionais, as FCNs utilizam uma rede de codificadores, como ResNet ou VGG, para extração de características e redução da resolução. Mas, em vez de enviar dados codificados para uma camada totalmente conectada para classificar a imagem inteira, FCNs passam os dados codificados por meio de camadas de uma rede "decodificadora" que classifica e aumenta a amostragem dos dados de características comprimidos para reconstruir a imagem original com máscaras de segmentação de pixel por pixel.

Naturalmente, alguns dados são perdidos durante o processo de amostragem. Variações de FCN posteriores, como U-Net, introduziram conexões de atalho que ignoram seletivamente algumas camadas convolucionais para preservar mais detalhes.

Mask R-CNN

A arquitetura Mask R-CNN combinou a detecção de objetos de uma Faster R-CNN com os recursos de segmentação de uma FCN para alcançar um avanço na segmentação de instâncias.

Depois que a RPN gera caixas delimitadoras para objetos propostos e o restante da rede Faster R-CNN confirma quais propostas de região contêm objetos (e realiza regressões para melhorar a precisão das caixas delimitadoras de objetos), uma FCN cria uma máscara de segmentação dos objetos contidos dentro de cada caixa delimitadora.

Esse processo é eficaz mesmo quando os objetos estão ocultos, pois a rede Faster R-CNN pode diferenciar entre cada instância de objeto para garantir que cada um seja segmentado individualmente.

Modelos one-shot (estágio único)

Algumas aplicações de segmentação de instâncias, como detectar itens defeituosos em uma linha de montagem de fabricação, exigem resultados em tempo real. Os modelos de estágio único foram desenvolvidos para casos de uso em que a velocidade é uma prioridade máxima.

Os modelos de duas etapas como a Mask R-CNN são altamente precisos, mas sua abordagem inerentemente sequencial é difícil de acelerar. Modelos de segmentação de instância em um único passo, como o YOLACT (You Only Look At CoefficienTs), em vez disso, baseiam-se em modelos de detecção de objetos em um único estágio, como o YOLO (You Only Look Once).

No YOLACT, um FPN cria mapas de características de alta resolução alimentados em duas ramificações paralelas: uma ramificação FCN propõe k "máscaras de protótipo" de possíveis instâncias de objeto. Simultaneamente, uma ramificação de camadas totalmente conectadas produz muitas "caixas âncora" semelhantes às propostas de região e também prevê k "coeficientes de máscara", uma para cada máscara de protótipo, indicando a probabilidade de um objeto proposto estar alinhado com uma máscara de segmentação proposta. A supressão de não máximos (NMS) é utilizada para filtrar casos propostos com os mais altos coeficientes de máscara.

Modelos de transformador

Inovações recentes em segmentação de instâncias e panóptica exploraram modelos transformadores, inspirados pelo seu sucesso em campos como o processamento de linguagem natural. Modelos como o Vision Transformers (ViT) usam a autoatenção no lugar da convolução, permitindo uma análise holística do contexto visual de uma imagem.

O principal desafio a ser superado foram as demandas computacionais: a complexidade computacional da autoatenção aumenta quadraticamente com o tamanho da imagem. Os transformadores giratórios utilizam janelas deslocadas (em vez de passos deslizantes convencionais) para criar camadas de autoatenção não sobrepostas, fazendo a complexidade computacional aumentar de forma linear, não quadrática, com o tamanho da imagem. Os modelos baseados em Swin agora rivalizam em precisão com as principais arquiteturas baseadas em CNN.

Modelos de segmentação de instância de treinamento

Algoritmos de aprendizado de máquina, inclusive os algoritmos de deep learning utilizados para segmentação de instâncias, devem ser treinados. Tanto os modelos baseados em CNN quanto os baseados em transformador são treinados com retropropagação: os modelos fazem engenharia reversa de imagens de treinamento anotadas para aprenderem os pesos e tendências apropriados para a tarefa em questão.

A anotação dos dados de treinamento deve ser muito precisa para maximizar o aprendizado de máquina adequado e servir como um parâmetro de "verdade absoluta" de acordo com o qual os modelos treinados podem ser avaliados e otimizados. Como os recursos humanos superam consideravelmente até mesmo os modelos de computer vision mais precisos, essa anotação é feita manualmente, um processo caro e trabalhoso.

Para evitar o tempo e o custo de conjuntos de dados personalizados, a maioria dos modelos utiliza conjuntos de dados de treinamento grandes e de código aberto ou de ajuste fino em uma rede de codificadores treinada previamente para tarefas visuais mais específicas. Os conjuntos de dados de imagem de código aberto comuns são:

  • COCO (Common Objects in Context): um conjunto de dados maciço contendo mais de 330.000 imagens com segmentos anotados em 80 categorias de coisas e 91 categorias de elementos
     

  • ADE20K: um conjunto de dados de segmentação de cena criado pelo MIT contendo mais de 20.000 imagens com mais de 150 classes semânticas.
     

  • Paisagens urbanas: conjunto de dados em grande escala dedicado a ruas urbanas com imagens de 50 cidades em vários horários, estações e condições climáticas.

Avaliação de modelos de segmentação de instância

As medidas mais comumente aplicadas de segmentação de instâncias e desempenho de detecção de objetos são Intersection over Union (IoU) e Average Precision (AP). Essas métricas são normalmente expressas em termos de desempenho em relação a um conjunto de dados de referência, como "uma PA de 54.4 no conjunto de dados COCO."

Intersecção sobre união (IoU)

A IoU mede a sobreposição no nível de pixels entre uma máscara de verdade do solo e a previsão de um modelo, expressa como uma porcentagem ou um número inteiro entre 0 e 1. Para imagens com várias instâncias, é utilizada a IoU média (mIoU).

Embora o IoU seja intuitivo, tem limitações importantes:

  • Recompensa previsões excessivamente genéricas. Mesmo que uma máscara de segmentação seja muito grande, ela marcará uma IoU perfeita de 1 se contiver a máscara de verdade fundamental dentro dela.

  • Não pode ser utilizada como uma função de perda. Para previsões ruins sem sobreposição (sendo um pouco erradas ou nem perto disso) IoU = 0. Isso significa que o IoU não é diferenciável e, portanto, não pode ajudar um algoritmo a otimizar um modelo. Interseção generalizada sobre União (ou GIoU) altera a IoU para torná-lo diferenciável.

Precisão média (AP)

A AP é calculada como a área sob a curva de recall de precisão. Ele equilibra as compensações entre duas métricas, precisão e recall, calculadas com valores discretos de resultado, como verdadeiros positivos (TP), verdadeiros negativos (TN), falsos positivos (FP) e falsos negativos (FN).

  • A precisão mede a frequência com que as previsões positivas (nesse caso, pixels de uma instância segmentada) estão corretas: TP/(TP+FP). Tem a desvantagem de recompensar os falsos negativos.

  • Recall mede a frequência com que as previsões positivas são capturadas: TP/(TP+FN). Isso tem a desvantagem de recompensar falsos positivos.

Para maximizar a relevância, a PA é frequentemente calculada dentro de limites de UI específicos. Por exemplo, "AP50" calcula PA apenas para previsões com uma UI superior a 50 por cento. A precisão média média (mAP) é utilizada situacionalmente como o valor médio de PA em todos os limites calculados.

Soluções relacionadas
IBM Maximo Visual Inspection

Aproveite todo o poder da visão computacional sem código para automatizar inspeções visuais.

Conheça o Maximo Visual Inspection
Consultoria e serviços em inteligência artificial (IA)

Os serviços de IA da IBM® Consulting ajudam a reinventar a forma como as empresas trabalham com IA para gerar transformações.

Explore os serviços de inteligência artificial
Soluções de inteligência artificial

Coloque a IA em ação na sua empresa tendo a seu lado o conhecimento técnico em IA líder do setor e o portfólio de soluções da IBM.

Explore as soluções de IA
Dê o próximo passo

O IBM Maximo Visual Inspection coloca o poder dos recursos de visão computacional por IA nas mãos de suas equipes de controle de qualidade e inspeção. Aproveite todo o poder da visão computacional sem código para automatizar inspeções visuais.

Conheça o Maximo Visual Inspection Faça um tour pelo produto