4.3 Segmentação de Superpixels
4.3.1 Algoritmo Superpixel Hierarchy Adaptado
4.3.1.1 Algoritmo Superpixel Hierarchy Original
Para manter restrições de hierarquia, o algoritmo SH emprega um grafo não dire- cionado G = (V, E ) como estrutura de dados base, composta por n vértices v ∈ V e m arestas e ∈ E ⊆ V × V. Visando preservar a conectividade intrínseca das imagens, os autores formularam G de modo que cada pixel seja representado por um vértice, conec- tado aos seus 4 vizinhos na horizontal e vertical (ou seja, 4-conectado). Neste caso, as arestas eij = (vi, vj) representam as ligações com os pixels (vértices) vizinhos, as quais possuem um peso w((vi, vj)) associado, que corresponde a uma medida de dissimilari- dade entre dois vértices vi e vj. Ao final da inicialização do grafo, tem-se uma estrutura que representa a imagem e a relação de conectividade dada por pixels vizinhos, que pode ser explorada no processo de segmentação.
Antes de inicializar o processo de segmentação, faz-se necessário definir a quan- tidade k de superpixels hierárquicos que devem ser extraídos da imagem ou, mais preci- samente, segmentados no grafo. Com base nesta definição, pode-se dizer que uma seg- mentação S de G consiste de uma partição de V em k componentes disjuntos. Deste modo, cada componente C ∈ S corresponde a um subgrafo conectado G0 = (V0, E0), onde V0 ⊆ V e E0 ⊆ E.
No algoritmo SH, realiza-se a segmentação com o método de Bor˚uvka (WEST, 1996), em uma abordagem que se baseia no crescimento de regiões. O algoritmo de Bor˚uvka é uma abordagem gulosa, que originalmente tem como finalidade computar uma árvore geradora de custo mínimo (ou minimum spanning tree – MST). Na modelagem
adotada no SH, interpreta-se o grafo G como um floresta composta por n árvores (neste caso, cada vértice/pixel corresponde a uma árvore). Para criar os superpixels, utiliza-se o processo de crescimento de regiões no qual cada árvore é combinada com o seu vizinho mais próximo, indicado pela aresta de menor valor. Neste processo, se o componente (ou árvore) C2 for o vizinho mais próximo de C1, não necessariamente C1 também será o vizinho mais próximo de C2. A distância entre duas árvores C1 e C2, conectadas por uma ou mais aresta (vi, vj), é dada por:
F (C1, C2) = min vi∈C1,vj∈C2,(vi,vj)∈E
w((vi, vj)). (4.1)
Após realizar o processo de busca pelo vizinho mais próximo para cada árvore, formula-se um grafo auxiliar, onde cada vértice representa um cluster e cada aresta cor- responde a aresta de menor peso escolhida. Caso existam vizinhos mais próximos mútuos, indica-se a relação entre os vértices por arestas duplicadas. Nos outros casos as arestas são distintivas. Para encontrar os componentes conectados, emprega-se a busca em profundi- dade. O algoritmo de Bor˚uvka repete este processo de combinação das árvores até que reste apenas uma árvore. Na adaptação do algoritmo proposta para o SH foi adicionada uma funcionalidade, que tem como objetivo armazenar a ordem na qual as arestas são adi- cionadas na MST. No momento em que uma aresta é adicionada na MST, observa-se que o número de árvores na floresta é reduzido em razão de um. Desta forma, para produzir a segmentação de k superpixels, basta conectar os vértices das primeiras n − k arestas do grafo (onde n corresponde a quantidade total de vértices), já memorizadas na estimativa da MST. O resultado final consiste de k componentes conectados, cada um com apenas um rótulo numérico sequencial, correspondente ao identificador do superpixel.
Durante o processo de segmentação, cada árvore é combinada diversas vezes com seu vizinho mais próximo, com base em uma estimativa de distância. Por se tratar da segmentação de uma imagem, diferentes critérios de similaridade podem ser empregados nesta estimativa. Considerando uma abordagem simples, a diferença absoluta em um dado espaço de cores poderia determinar se dois componentes C1 e C2 seriam ou não combinados.
A função que estima a similaridade entre pixels e, posteriormente, entre clusters, tem grande impacto sobre o resultado produzido por este algoritmo. Desta forma, para melhorar a precisão da segmentação, além de atributos da imagem, a abordagem permite integrar informação de confiança estimada por um detector de bordas na função de custo. Esta informação tem por finalidade não permitir que segmentos possam extrapolar bordas
de objetos da imagem, adicionando como custo a confiança dada pelo mapa de bordas. Deste modo, calcula-se a distância entre C1 e C2da seguinte forma:
F (C1, C2) = dc· de, (4.2)
onde dce decorrespondem à distância de cor e de borda, respectivamente. Para estimar a distância de cor, mensura-se a diferença absoluta entre as médias de C1e C2 no espaço de cores CIELab. Após a quarta iteração, para se adaptar ao crescimento dos superpixels, dc passa a ser estimada pela distância χ2 dos histogramas de cor (divididos igualmente em 20 classes). Para estimar o valor de de, calcula-se a média de confiança dada entre duas regiões.
4.3.1.2 Adaptação Proposta
A abordagem original de Wei et al. (2018) emprega a confiança de bordas dada por algoritmos como (HARIHARAN et al., 2011; DOLLAR; ZITNICK, 2013) no côm- puto de de. Entretanto, a estimativa de confiança requer processamento adicional, e falsas detecções de borda podem levar a oversegmentation dos objetos, devido a textura e/ou ruído. Por ambos esses motivos, e também para utilizar uma estimativa de borda mais robusta, propomos agregar informação de disparidade na estimativa de de. Deste modo, ao invés de computar o mapa de bordas e utilizar o valor de confiança, que determina a probabilidade de existir uma borda, propomos empregar a diferença direta das disparida- des. Considerando a modificação proposta, a equação de distância passa a ser computada da seguinte forma:
F (C1, C2) = dc· dd, (4.3)
dd(C1, C2) = |Df(C1) − Df(C2)|, (4.4)
onde Df se refere ao mapa de disparidades com os ghosts removidos. Neste caso, quanto menor for a diferença de cor e disparidade, maior a probabilidade de C1 e C2 se unirem.
Antes de produzir a imagem sintética, faz-se necessário computar o mapa de su- perpixels correspondente S, estimado no conteúdo de I e Df. Considerando as espe- cificidades envolvidas no algoritmo de preenchimento dos holes desenvolvido (descrito mais a frente), optou-se por gerar um mapa com k = 350. Este valor produziu uma boa
representatividade da estrutura da imagem em diferentes casos de teste. Se o valor for muito alto, a imagem ficará muito subdividida e não irá representar a estrutura da imagem adequadamente. No caso oposto, com k muito baixo, o algoritmo acaba sendo forçado a misturar regiões com pouca similaridade.
Na Figura 4.5 são apresentados alguns exemplos de segmentação produzidos com a adaptação do algoritmo SH proposta. Nas imagens, pode-se observar que a granula- ridade definida permite representar grandes regiões homogêneas com um mesmo rótulo. Da mesma forma, regiões menores, com textura e cor específicas, recebem rótulos espe- cíficos. Isto faz com que a estrutura da imagem, interpretada pela informação de cor e disparidade, sejam segmentadas adequadamente.
Figura 4.5: Resultado produzido pela adaptação proposta do algoritmo Superpixels Hie- rarchy. Em (a) são exibidas as imagens e em (b) o mapa de superpixels correspondente, com k = 350.
(a) (b)
Fonte: O Autor, com imagens adaptadas de (HIRSCHMULLER; SCHARSTEIN, 2007; SCHWARZ; MARPE; WIEGAND, 2010).