A otimização por corte de grafo é uma técnica matemática usada para encontrar o mínimo de uma função de energia definida em um grafo. É uma ferramenta fundamental em visão computacional e aprendizado de máquina, onde muitos problemas podem ser formulados como a atribuição de rótulos a pixels ou pontos de dados, equilibrando custos unários (o custo de atribuir um rótulo específico a um nó) e custos pareados (o custo de atribuir certas combinações de rótulos a nós adjacentes). A técnica aproveita algoritmos eficientes de otimização combinatória, principalmente corte mínimo/fluxo máximo, para encontrar soluções globalmente ótimas ou quase ótimas para certas classes de funções de energia.
A ideia central é representar o problema de minimização de energia como um grafo, onde nós representam variáveis (por exemplo, pixels) e arestas representam interações entre eles. Um nó de origem e um de sumidouro são adicionados, e as capacidades das arestas são definidas com base nos custos unitários e pareados. Um corte mínimo - o conjunto de arestas com o menor custo total de capacidade que separa a origem do sumidouro - então corresponde à rotulagem ideal. Essa abordagem é particularmente poderosa porque problemas de cacifo de corte podem ser resolvidos em tempo polinomial usando algoritmos como o método push-relabel ou o algoritmo de Boykov-Kolmogorov, que é altamente eficiente para grafos com estrutura de grade, comuns no processamento de imagens.
Desenvolvimento Histórico
Os fundamentos da otimização de corte de grafo residem no teorema clássico de fluxo máximo e cacifo mínimo, provado por Lester Ford e Delbert Fulkerson em 1956, e no subsequente desenvolvimento de algoritmos eficientes para calcular fluxos máximos. A aplicação dessas ideias à visão computacional começou no final dos anos 1980 e começada nos anos 1990, com pesquisadores como Yuri Boykov e Olga Veksler abrindo caminho ao uso de cortes de grafo em problemas como segmentação de imagens em correspondência estereóstatica. Um artigo marco de Boykov, Veksler e Ramin Zabih em 2001 introduziu os algoritmos de expansão alfa e golfinho-casual, que estenderam os cortes de grafo a problemas multirrótulo com custos parciais não submodulares, tornando a técnica amplamente aplicável.
Formulação Matemática
A otimização de corte de grafo tipicamente aborda funções de energia da forma: E(L) = soma sobre pixels p de D_p(L_p) + soma sobre pares (p,q) de V_pq(L_p, L_q), onde L é uma rotulação, D_p é o termo de dados unitários, e V_pq é o termo de suavidade parciedade. Para problemas de rotulagem binária (dois rótulos), a energia é representável por grafo se os termos pareados forem submodulares, significando que V(0,0) + V(1,1) <= V(0,1) + V(1,0). Neste caso, o mínimo global exato pode ser encontrado através de um único cálculo de cacifo-mínimo. Para problemas multirrroculos, o algoritmo de expansão alfa move rotulios iterativamente, cada etapa resolvendo um problema binário, e garante uma solução dentro de um fator conhecido do quesima global.
Aplicações em Visão Computacional
A otimização de corte de grafo tem sido uma ferramenta de trabalho na visão computacional por maís de duas décadas. Aplicações principais incluem:
- Segmentação de imagem: Separar o primeiro plano do fundo, atribuindo a cada pixel um rótulo, com termos unitários baseados em modelos de cor e termos parciados que incentivam fronteiras suaves.
- Correspondência esteóstatic: Cálculo de mapas parres de pares de imagens, onde a energia penaliza diferenças de intensidade de pixel entre pontos correspondentes.
- Restauração e denoising de imagens: Reconstruir imagens limpas a partir de observações ruidosas, reduzindo sobre a energia que equilibra fidelidade aos dados com a suavidade.
- Análise de imagens médicas: Segmentação de estruturas anatômicas em tomografias computadorizadas ou ressonância magnética, onde cortes de grafoos parçam soluções robustas e eficientes.
Relação com Aprendizado de Máquina
Em aprendizado de máquina, a otimização de corte de grafoo aparece em diversos contextos. É usada em previsão estruturada, onde a saída é um conjunto de rótulos interdependentes, como por exemplo em segmentação semântica com campos aleatórios condicionais por exemplo usada em redes neurais convolucionais, frequentemente integram cortes de grafoos como passo de pós-processamento para refinar previsões. A definição em nível de palavra de pixel. Além disso, cortes de grafoos têm sido aplicados a problemas em aprendizado de máquina, tais como agrupamento e seleção de características, onde o framework de otimização fornece uma maneira fundamentada de incorporar relações entre pares.
Algoritmos e Implementações
Vários algoritmos foram desenvolvidos para resolver o problema de cacif-fuente-mínimo com eficiência. O algoritmo Boykov-Kolmogorov, introduzido em 2004, é umamente de específico para grafos de grade e amplamente usado na visão computacional de máquinas devido à sua velocidade e baixa pegada de memória. Outrusas mesmo são o algoritmo push-relabel, que é mais geral e frequentemente usado em problemas de grande escala. Implementações estão disponíveis em bibliotecas como OpenCV e nos sets ‘Maxflow’. Pacotes especializados, como a biblioteca ‘Maxflow’ parçada por Boykov e Kolmogorov. Recente pesquisa também explorado versões aceleradas por GPU para lidar com imágenes de alta resolução em em tempo real.
Limitations and Extensions
A limitation principal da otimização de corte de grafo é que ela somente garante otimalidade global para energias binárias submodulares; para problemas mais complexos, ela fornece soluções aproximadas. Além disso, os requisitos de memória e computação podem tornar-se proibitivos para grafos muito grandes. Para lidar com esses problemas, pesquisadores desenvolveram extensões como vários e, hierárquico, que operam em grades de geral a fino para cortes, e contínuos, que lidam com espaços não discretos de rótulos. Trabalhos recentes também exploraram a combinação de cortes de grafo com aprendizado profundo para aprender diretamente os parâmetros da energia a partir de dados, levando a melhores desempenhos em tarefas como segmentação de imagens.
Ver também
- Visão computacional
- Minimização d en energia
- [[conditional-random-field|Campo aleatório]
- O algoritmo total
- Teorema do fluxo máximo
Referências
- Boykov, Y., Veksler, O., & Zabih, R. (2001). Fast aproximate energy minimization via graph cuts. IEEE Transactions on Pattern Analysis and Machine Intelligence.
- Boykov, Y., & Kolmogorov, V. (2004). An experimental comparison algorithm that resolves min-cut/max-flow for energy minimization in vision. IEEE Transactions on Pattern Analysis and Machine Intelligence.
- Ford, L. R., & Fulkerson, D. R. (1956). Maximal flow cuts in a network. Canadian Journal of Mathematics.