O que é segmentação de instância?
Conheça o IBM Maximo Visual Inspection
Uma grade de contêineres de frete

A segmentação de instância é 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 resultados mais detalhados e sofisticados 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ótica, 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 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 o 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 fornecem precisão de última geração, embora com uma compensação na velocidade.

Conteúdo relacionado

Assine a newsletter da IBM

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 classes de objetos contáveis com formas distintas, como "carro" ou "pessoa", e elementos do ambiente (ou seja, classes de entidades incalculá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 de perto em cada lado da rua nesta imagem.

Por outro lado, os modelos de segmentação de instância se concentram exclusivamente na detecção e geração de máscaras de segmentação para 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 ocluídas da mesma classe de objeto.

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

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

Modelos de segmentação panótica podem teoricamente executar segmentação de instância, mas fazer isso a um custo computacional muito maior (pois sua saída inclui informações adicionais não necessariamente relevantes para tarefas de segmentação de instância).

As tentativas iniciais de segmentação panótica simplesmente realizaram a segmentação de instância e a segmentação semântica separadamente e, em seguida, combinaram suas saídas em uma etapa de pós-processamento. Esse método é computacionalmente ineficiente e luta 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 um "head" de segmentação semântica e um "head" de segmentação de instâncias a uma "backbone" compartilhada, frequentemente uma rede de pirâmide de características (FPN), para extração de características: o isolamento de dados visuais pertinentes. 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 é usada para detectar os limites específicos de tecidos e patologias, como tumores
  • Condução autônoma: a segmentação de instâncias permite 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, semelhante a carros autônomos, permite que robôs discutam e naveguem em torno de objetos em seu ambiente.

 

 

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 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) utiliza alguma forma de redes neurais convolucionais (CNNs).

Os modelos de segmentação de instância baseados em CNN se enquadram 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 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 é usada 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, ajuda a entender 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 um formato numérico. 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.

Existem três tipos de camadas em um CNN convencional:

  • A(s) camada(s) convolucional(is) utiliza(m) filtros bidimensionais, chamados kernels, para extrair feições 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 feição é um mapa de feição.

  • A(s) camada(s) de agrupamento compacta(m) os dados do mapa de feição. 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.

  • A(s) camada(s) totalmente conectada(s) recebe(m) e agrupa(m) 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.

Enquanto camadas convolucionais adicionais podem melhorar a precisão, adicionar muitas camadas leva a gradientes de despejamento, evitando otimização de modelo. A arquitetura ResNet resolveu esse problema, abrindo caminho para CNNs com centenas (ou até milhares) de camadas.

Assista ao vídeo: "O que são Redes Neurais Convolucionais (CNNs)?" no YouTube.
CNN (R-CNN) orientada por região

O R-CNN foi desenvolvido 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, R-CNN mais rápido, é um componente integral de muitos modelos de segmentação de instância.

Para fazer previsões no nível do objeto (em vez do nível de imagem), o R-CNN introduziu propostas de região: o R-CNN usa a pesquisa seletiva (link externo ao site ibm.com) para propor cerca de 2.000 caixas sobrepostas que podem conter um objeto e, em seguida, alimenta cada “proposta de objeto" em um CNN para extração de feição. " Os algoritmos de máquina de vetor de suporte (SVM) classificam objetos e geram caixas delimitadoras.

O Fast R-CNN melhorou drasticamente a velocidade do R-CNN alimentando inicialmente a imagem inteira em uma CNN para extração de características, e então usando o mapa de características resultante para identificar regiões de interesse (RoIs). Pouco tempo depois, o 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.

Leia o artigo: "R-CNN mais rápido: detecção de objetos em tempo real com redes de proposta de região"
Redes totalmente convolucionais

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

Como as CNNs convencionais, as FCNs usam uma rede de codificadores, como ResNet ou VGG, para extração de recursos 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 FCN posteriores, como U-Net, introduziram pular conexões que ignoram seletivamente algumas camadas convolucionais para preservar mais detalhes.

Leia o artigo: "Redes Totalmente Convolucionais para Segmentação Semântica"
Mask R-CNN

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

Depois que o 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), um 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.

Leia o artigo: "Mask R-CNN"
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. Modelos de estágio único foram desenvolvidos para casos de uso em que a velocidade é uma prioridade máxima.

Modelos de duas etapas como o 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, se baseiam 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 feição de alta resolução, que sã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 não máxima (SNM) é usada para filtrar casos propostos com os mais altos coeficientes de máscara.

Leia o artigo: "YOLACT++: melhor segmentação de instância em tempo real"
modelos de transformador

Inovações recentes em segmentação de instância e panótica 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 tem sido as demandas computacionais: a complexidade computacional da autoatenção aumenta quadraticamente com o tamanho da imagem. Os transformadores giratórios usam janelas deslocadas (em vez de passos deslizantes convencionais) para criar camadas de autoatenção não sobrepostas, fazendo com que a complexidade computacional aumente linearmente, não quadraticamente, com o tamanho da imagem. Os modelos baseados em SWin agora rivalizam com a precisão das principais estruturas baseadas na CNN.

Leia o artigo: " Swin Transformer: Hierarchical Vision Transformer using Shifted Windows "
Modelos de segmentação de instância de treinamento

Algoritmos de aprendizado de máquina, incluindo algoritmos de deep learning usados 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: modelos fazem engenharia reversa de imagens de treinamento anotadas para aprender 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 benchmark de "verdade absoluta" contra o qual modelos treinados podem ser avaliados e otimizados. Como os recursos humanas superando significativamente até mesmo os modelos de computer vision mais precisos, essa anotação é feita manualmente um processo caro e intensivo em mão de obra.

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 pré-treinada para tarefas visuais mais específicas. Os conjuntos de dados de imagem de código aberto comuns incluem:

  • COCO (Objetos Comuns em Contexto): um conjunto de dados massivo contendo mais de 330.000 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.000 imagens com mais de 150 classes semânticas

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

Avaliando 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 "um AP de 54.4 no conjunto de dados COCO."

Intersecção sobre União (IoU)
A IoU mede a sobreposição pixel-wise 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 múltiplas instâncias, a IoU média (mIoU) é usada.

Enquanto o IoU é intuitivo, ele tem limitações importantes:

  • Ele recompensa previsões excessivamente amplas. 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 usado como uma função de perda. Para previsões ruins sem sobreposição (sejam 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) (link reside fora ibm.com) altera IoU para torná-lo diferenciável.

Precisão Média (AP)
A PA é calculada como a área sob a curva de recuperação de precisão. Ela equilibra os compromissos entre duas métricas, precisão e recall, calculadas usando valores de resultado discretos como verdadeiros positivos (VP), verdadeiros negativos (VN), 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.
  • O 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 VA é frequentemente calculada dentro de limites de UI específicos. Por exemplo, "AP50" calcula AP apenas para previsões com uma UI superior a 50 por cento. A precisão média média (mAP) é usada situacionalmente como o valor médio de AP em todos os limites calculados.

 

 

Soluções relacionadas
IBM Maximo Visual Inspection

Libere o poder da computer vision sem código para inspeção visual automatizada com um conjunto de ferramentas intuitivas para rotulagem, treinamento e implantação de modelos de visão

Conheça o IBM Maximo Visual Inspection

Recursos de segmentação de instância IBM Research: Computer Vision

Os sistemas de computer vision modernos têm precisão sobre-humana quando se trata de reconhecimento e análise de imagens, mas eles realmente não entendem o que veem. Na IBM Research, estamos projetando sistemas de IA com a capacidade de ver o mundo como nós.

Introdução à computer vision e ao processamento de imagens

Este curso para iniciantes ajuda você a entender a computer vision e suas várias aplicações em muitos setores. Como parte do curso, você utilizará Python, Pillow e OpenCV para processamento básico de imagens e realizar classificação de imagem e detecção de objetos.

Primeiros passos com o IBM Maximo Visual Inspection

Comece a usar o IBM Maximo Visual Inspection para criar e treinar modelos baseados em IA para inspecionar seus ativos e produtos e identificar os defeitos que podem causar problemas de produção e qualidade.

Dê o próximo passo

Libere o poder do computer vision sem código para inspeção visual automatizada com o IBM Maximo Visual Inspection: um conjunto de ferramentas intuitivas para rotulagem, treinamento e implantação de modelos de visão

Conheça o IBM Maximo Visual Inspection Saiba mais sobre a demo do MVI