Minha IBM Efetue login Inscreva-se

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

Autores

Dave Bergmann

Senior Writer, AI Models

IBM

Cole Stryker

Editorial Lead, AI Models

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

A segmentação de instância é uma tarefa de computer vision baseada em 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, subconjunto do campo mais amplo da segmentação de imagem, oferece resultados mais detalhados e sofisticados do que os algoritmos convencionais de detecção de objetos. Outras tarefas de segmentação de imagens são a segmentação semântica, que categoriza cada pixel em uma imagem por classe semântica, a categoria de "coisa" ou "material" que representa, e a segmentação panóptica, que combina os objetivos da segmentação de instância e da segmentação semântica.

A segmentação de instância 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élite até a ativação da navegação em carros autônomos.

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 objeto.s — 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.

Projeto 3D de bolas rolando em uma pista

As últimas notícias e insights sobre IA 


Descubra insights selecionadas por especialistas sobre IA, nuvem e outros assuntos no boletim informativo semanal Think. 

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.

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.

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).

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.
Mistura de Especialistas | Podcast

Decodificando a IA: resumo semanal das notícias

Junte-se a 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.

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

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 nos últimos anos os modelos de transformadores tenham surgido como uma alternativa viável, a maioria dos métodos de segmentação de imagem (inclusive os utilizados para segmentação de instâncias) utiliza 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 a Mask R-CNN, executam primeiro 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:

  • As camadas convolucionais utilizam filtros bidimensionais, denominados kernels, para extrair características relevantes da imagem executando convoluções. Após cada convolução, o kernel se move para uma região adjacente, repetindo esse processo até atravessar toda a imagem. A saída dessa extração de características é um mapa de características.

  • As camadas de agrupamento compactam os dados do mapa de características. Esse processo, também chamado de downsampling ou redução de dimensionalidade, aumenta a eficiência computacional e reduz o risco de superajuste 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), a R-CNN introduziu propostas de região: a 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 um CNN para extração de características. Os algoritmos de máquina de vetor de suporte (SVM) então classificam os 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ância e panóptica exploraram modelos transformadores, inspirados pelo seu sucesso em campos como processamento de linguagem natural. Modelos como o Vision Transformers (ViT) utilizam 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 (Objetos Comuns em Contexto): um conjunto de dados massivo contendo mais de 330 mil imagens com segmentos anotados em 80 categorias de objetos e 91 categorias de elementos do ambiente

  • ADE20K: um conjunto de dados de segmentação de cenas criado pelo MIT contendo mais de 20 mil 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 igual a 1 se contiver a máscara de verdade fundamental.
  • 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

Soluções relacionadas

IBM watsonx.ai

Treine, valide, ajuste e implemente recursos de IA generativa, modelos de base e recursos de aprendizado de máquina com o IBM watsonx.ai, um estúdio empresarial de última geração para construtores de IA. Crie aplicações de IA em uma fração do tempo com uma fração dos dados.

Conheça o watsonx.ai
Soluções de inteligência artificial

Use IA para trabalhar em sua empresa com a experiência em IA líder do setor e com o portfólio de soluções da IBM.

Explore as soluções de IA
Consultoria e serviços em IA

Reinvente os fluxos de trabalho e operações críticos adicionando IA para maximizar experiências, tomadas de decisão em tempo real e valor de negócios.

Explore os serviços de IA
Dê o próximo passo

Obtenha acesso completo aos recursos que abrangem o ciclo de vida do desenvolvimento da IA. Produza soluções poderosas de IA com interfaces fáceis de usar, fluxos de trabalhos e acesso a APIs e SDKs padrão do setor.

Explore o watsonx.ai Agende uma demonstração em tempo real