Segmentação de imagens é uma técnica de visão computacional que divide uma imagem digital em grupos discretos de pixels, segmentos de imagem, para informar a detecção de objetos e tarefas relacionadas. Ao analisar os dados visuais complexos de uma imagem em segmentos de formatos específicos, a segmentação de imagens permite um processamento de imagens mais rápido e avançado.
As técnicas de segmentação de imagens vão desde a análise heurística simples e intuitiva até a implementação de ponta do deep learning. Os algoritmos convencionais de segmentação de imagens processam recursos visuais de alto nível de cada pixel, como cor ou brilho, para identificar limites de objetos e regiões de planos de fundo. O aprendizado de máquina, aproveitando conjuntos de dados anotados, é usado para treinar modelos para classificar com precisão os tipos específicos de objetos e regiões que uma imagem contém.
Sendo um método altamente versátil e prático de computer vision, a segmentação de imagens tem uma ampla variedade de casos de uso em inteligência artificial, desde auxiliar no diagnóstico em imagens médicas até automatizar a locomoção para robótica e carros autônomos, identificando objetos de interesse em imagens de satélite.
A segmentação de imagens representa uma evolução avançada da classificação de imagens e detecção de objetos, bem como um conjunto distinto de recursos únicos de computer vision.
A classificação de imagens aplica um rótulo de classe a uma imagem inteira. Por exemplo, um modelo de classificação de imagens simples pode ser treinado para categorizar imagens de veículos como "carro" ou "caminhão". Os sistemas de classificação de imagens convencionais possuem sofisticação limitada, pois não processam separadamente as funcionalidades individuais das imagens.
A detecção de objetos combina a classificação de imagens com a localização de objetos, gerando regiões retangulares, chamadas de "caixas delimitadoras", em que os objetos estão localizados: em vez de apenas rotular uma imagem de veículo como "carro" ou "caminhão", um modelo de detecção de objetos pode indicar onde na imagem o(s) carro(s) ou caminhão(ões) está(ão) localizado(s). Embora a detecção de objetos possa classificar vários elementos dentro de uma imagem e aproximar a largura e altura de cada elemento, ela não pode discernir limites ou formas precisas. Isso limita a capacidade dos modelos de detecção de objetos convencionais de delinear objetos unidos de perto com caixas delimitadoras sobrepostas.
A segmentação de imagens processa dados visuais no nível de pixel, usando várias técnicas para anotar pixels individuais como pertencentes a uma classe ou instância específica. Técnicas de segmentação de imagem "clássicas" determinam anotações por meio da análise de qualidades inerentes de cada pixel (chamadas "heurística"), como cor e intensidade, enquanto modelos de deep learning empregam redes neurais complexas para reconhecimento sofisticado de padrões. As saídas dessa anotação são máscaras de segmentação, representando o limite pixel a pixel específico e a forma de cada classe (normalmente correspondendo a diferentes objetos, funcionalidades ou regiões) na imagem.
Em termos gerais, a segmentação de imagens é usada para três tipos de tarefas: segmentação semântica, segmentação de instâncias e segmentação panóptica.
A diferença entre cada tipo de tarefa de segmentação de imagem reside na forma como tratam classes semânticas: as categorias específicas às quais um determinado pixel pode ser determinado pertencer.
No jargão da computer vision, existem dois tipos de classes semânticas. Cada um se presta a diferentes técnicas para segmentação precisa e eficaz.
Coisas são classes de objetos com formas características, como “carro”, “árvore” ou “pessoa”. Normalmente, as coisas têm instâncias claramente definidas que são contáveis. Elas têm relativamente pouca variação de tamanho de uma instância para outra, bem como partes constituintes distintas da coisa em si: por exemplo, todos os carros têm rodas, mas uma roda não é um carro.
Elementos do ambiente se refere a classes semânticas que são amorfas e altamente variáveis em tamanho, como "céu" ou "água" ou "grama". Normalmente, os elementos do ambiente não têm instâncias individuais contáveis e claramente definidas. Ao contrário das coisas, os elementos do ambiente não têm partes distintas: uma lâmina de grama e campo de grama são ambas igualmente "grama".
Algumas classes, sob certas condições de imagens, podem ser coisas ou elementos do ambiente. Por exemplo, um grande grupo de pessoas pode ser interpretado como várias "pessoas" (cada uma sendo uma coisa de forma distinta e contável) ou uma "multidão" singular, com forma amorfa.
Embora a maioria dos esforços de detecção de objetos se concentre principalmente em classes de objetos, é importante considerar que elementos como céu, paredes, pisos e solo compõem a maioria do nosso contexto visual. Os elementos do ambiente são pontos de dados essenciais para identificar objetos, e vice-versa: um objeto metálico na estrada geralmente é um carro; o fundo azul atrás de um barco provavelmente é água, enquanto o fundo azul atrás de um avião provavelmente é céu. Isto é de particular importância para modelos de deep learning.
A segmentação semântica é o tipo mais simples de segmentação de imagem. Um modelo de segmentação semântica atribui uma classe semântica a cada pixel, mas não produz qualquer outro contexto ou informação (como objetos).
A segmentação semântica trata todos os pixels como elementos do ambiente; ela não diferencia entre elementos do ambiente e objetos.
Por exemplo, um modelo de segmentação semântica treinado para identificar certas classes em uma rua da cidade produziria máscaras de segmentação indicando as fronteiras e contornos para cada classe relevante de objetos (como veículos ou postes de luz) e elementos do ambiente (como estradas e calçadas), mas não faria qualquer distinção entre (ou contagem do número de) múltiplas instâncias da mesma classe. Por exemplo, carros estacionados um na frente do outro podem ser simplesmente tratados como um longo segmento de “carro”.
A segmentação de instâncias inverte as prioridades da segmentação semântica: enquanto os algoritmos de segmentação semântica preveem apenas a classificação semântica de cada pixel (sem considerar instâncias individuais), a segmentação de instâncias delineia a forma exata de cada instância de objeto separadamente.
A segmentação por instância isola objetos de elementos do ambiente, que ignora e, portanto, pode ser entendida como uma forma evoluída de detecção de objetos que produz uma máscara de segmentação precisa em vez de uma caixa delimitadora aproximada.
É uma tarefa mais difícil do que a segmentação semântica: mesmo quando os objetos da mesma classe estão tocando ou mesmo se sobrepondo, os modelos de segmentação de instância devem ser capazes de separar e determinar a forma de cada um, enquanto os modelos de segmentação semântica podem simplesmente agrupá-los. Considere, por exemplo, como os dois modelos diferentes tratam os veículos estacionados nesta imagem de uma rua urbana.
Os algoritmos de segmentação de instâncias geralmente adotam uma abordagem de dois estágios ou one-shot para o problema. Modelos de dois estágios, como redes neurais convencionais (R-CNNs) baseadas na região, realizam a detecção de objetos convencionais para gerar caixas delimitadoras para cada instância proposta e, em seguida, realizam uma segmentação e classificação mais refinadas dentro de cada caixa delimitadora. Modelos one-shot, como o YOLO (You Only Look Once), alcançam a segmentação de instâncias em tempo real ao realizar a detecção, classificação e segmentação de objetos simultaneamente.
Abordagens de um disparo oferecem maior velocidade (com um tradeoff de precisão), enquanto abordagens de dois estágios oferecem maior precisão (com um tradeoff de velocidade).
Os modelos de segmentação panóptica determinam a classificação semântica de todos os pixels e diferenciam cada instância de objeto em uma imagem, combinando os benefícios da segmentação semântica e da instância.
Em uma tarefa de segmentação panóptica, cada pixel deve ser anotado com um rótulo semântico e um “ID de instância”. Os pixels que compartilham o mesmo rótulo e ID pertencem ao mesmo objeto; para pixels determinados como elementos do ambiente, o ID da instância é ignorado.
A segmentação panóptica, portanto, fornece aos sistemas de computer vision uma compreensão abrangente e holística de uma determinada imagem. Embora seu apelo seja óbvio, alcançar a segmentação panóptica de forma consistente e eficiente computacionalmente é um desafio imponente.
O desafio é unificar duas metodologias contraditórias: modelos de segmentação semântica tratam todos os pixels como elementos do ambiente, desconsiderando instâncias individuais de objetos; modelos de segmentação de instância isolam objetos individuais, ignorando elementos do ambiente. Nenhum tipo de modelo pode absorver adequadamente as responsabilidades do outro.
As tentativas iniciais de modelos de segmentação panótica simplesmente combinaram os dois modelos, realizando cada tarefa separadamente e, em seguida, combinando sua saída em uma fase de pós-processamento. Essa abordagem apresenta duas principais desvantagens: exige um grande esforço computacional e enfrenta dificuldades com as discrepâncias entre os pontos de dados de saída da rede de segmentação semântica e os pontos de dados de saída da rede de segmentação de instâncias.
Arquiteturas de segmentação panóptica mais recentes visam evitar essas desvantagens com uma abordagem mais unificada à deep learning. A maioria é construída sobre uma "rede principal", como uma rede de pirâmide de funcionalidades (FPN), que extrai funcionalidades da imagem de entrada, alimenta esses dados extraídos em ramificações paralelas (como uma "ramificação de primeiro plano" e uma "ramificação de fundo", ou "cabeça semântica" e "cabeça de instâncias") e, depois, mescla a saída de cada ramificação usando um sistema ponderado. Arquiteturas panópticas propostas incluem EfficientPS, OANet, PanopticFPN, UPSNet, SOGNet, BGRNet, AUNet, FPSNet e SpatialFlow.
Técnicas tradicionais de segmentação de imagem utilizam informações dos valores de cor de um pixel (e características relacionadas como brilho, contraste ou intensidade) para extração de características, e podem ser rapidamente treinadas com algoritmos simples de aprendizado de máquina para tarefas como classificação semântica.
Embora os métodos de segmentação baseados em deep learning sejam capazes de maior precisão e análise de imagem mais sofisticada especialmente em tarefas como segmentação panóptica que exigem uma grande quantidade de informações contextuais, métodos tradicionais são muito menos custosos e exigem menos recursos computacionais, podendo resolver certos problemas de forma mais eficiente.
As técnicas tradicionais comuns (ou "classic") de segmentação de imagens incluem:
Treinado em um conjunto de dados anotado de imagens, as redes neurais de modelos de segmentação de imagem de deep learning descobrem padrões subjacentes em dados visuais e discutem as características salientes mais relevantes para classificação, detecção e segmentação.
Apesar das compensações nos requisitos de computação e no tempo de treinamento, os modelos de deep learning superam consistentemente os modelos tradicionais e formam a base da maioria dos avanços contínuos em computer vision.
Modelos de deep learning proeminentes usados na segmentação de imagens incluem:
Para não apenas mapear os limites dos segmentos de imagem, mas também prever quais dados ou coisas que cada segmento representa, os modelos de deep learning são treinados em grandes conjuntos de dados anotados para reconhecer classes semânticas específicas. Destas imagens pré-rotuladas, modelos de deep learning inferem os padrões e valores de pixel típicos de cada rótulo.
Diferentes tarefas requerem diferentes dados de treinamento: um sistema de visão computacional para carros autônomos é treinado em imagens rotuladas com classes semânticas como "pessoa", "carro", "faixa" e "placa de pare", enquanto modelos de imagens médicas exigem otimização para reconhecer classes específicas de tecido físico, ou tumores e outras patologias.
A rotulação prévia dos conjuntos de dados de treinamento deve ser realizada cuidadosamente por especialistas humanos, o que pode ser uma tarefa extremamente trabalhosa. A maioria dos modelos de segmentação de imagem utiliza grandes conjuntos de dados de código aberto. Esses conjuntos de dados públicos também atuam como "verdade fundamental" ao avaliar o sucesso dos modelos treinados: as métricas de desempenho geralmente são expressas como a porcentagem de resultados que correspondem com precisão às anotações no conjunto de dados de treinamento.
Os conjuntos de dados de treinamento populares para modelos de segmentação de imagem de deep learning incluem:
A segmentação de imagens tornou-se uma ferramenta essencial em uma variedade de campos.
Entrevistamos duas mil organizações a respeito de suas iniciativas de IA para descobrir o que está funcionando, o que não está e como se preparar.
O IBM Granite é nossa família de modelos de IA abertos, de alto desempenho e confiáveis, personalizados para a empresa e otimizados para escalar suas aplicações de IA. Explore as opções de linguagens, código, séries temporais e proteções.
Acesse nosso catálogo completo com mais de 100 cursos online comprando uma assinatura individual ou multiusuário hoje mesmo, para você expandir suas habilidades em uma variedade de nossos produtos por um preço único com desconto.
Liderada pelos principais líderes da IBM, o currículo dessa experiência foi desenvolvido para ajudar líderes empresariais a terem o conhecimento necessário para priorizar os investimentos em IA que podem estimular o crescimento.
IBM web domains
ibm.com, ibm.org, ibm-zcouncil.com, insights-on-business.com, jazz.net, mobilebusinessinsights.com, promontory.com, proveit.com, ptech.org, s81c.com, securityintelligence.com, skillsbuild.org, softlayer.com, storagecommunity.org, think-exchange.com, thoughtsoncloud.com, alphaevents.webcasts.com, ibm-cloud.github.io, ibmbigdatahub.com, bluemix.net, mybluemix.net, ibm.net, ibmcloud.com, galasa.dev, blueworkslive.com, swiss-quantum.ch, blueworkslive.com, cloudant.com, ibm.ie, ibm.fr, ibm.com.br, ibm.co, ibm.ca, community.watsonanalytics.com, datapower.com, skills.yourlearning.ibm.com, bluewolf.com, carbondesignsystem.com, openliberty.io