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.
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.
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.
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.
A segmentação de instâncias é essencial para uma variedade de tarefas de computer vision.
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:
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.
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.
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.
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.
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.
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.
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.
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.
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."
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:
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).
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.