Uma visão geral da metodologia utilizada para o desenvolvimento do trabalho pode ser vista na Figura 5.1 que mostra as etapas para a geração das imagens de super-resolução na forma de diagrama em blocos.
Inicialmente, é adquirida uma sequência de imagens por uma câmera, em seguida é realizado o registro de imagens, com o objetivo de se determinar os parâmetros de correlação existentes entre as imagens utilizando os algoritmos SIFT ou SURF seguido pelo RANSAC, que elimina as falsas correspondências e estima a matriz homográfica. A etapa seguinte consiste na construção das imagens de super-resolução a partir de uma imagem de referência definida pelo operador.
Figura 5.1: Visão geral das etapas de geração de uma imagem de super-resolução.
Como já mencionado, para se obter o registro das imagens, pode-se utilizar o algoritmo SIFT ou SURF durante a determinação dos pontos de correspondência entre as imagens que pertencem à mesma cena. Para o conjunto A essas coordenadas (em pixels) são transferidas para o referencial fotogramétrico (em milímetros) por meio de cálculos realizados com as equações descritas em 5.1.
TamPixel NLin y y TamPixel NCol x x i fot i fot * ) 2 / ( * ) 2 / ( (5.1) Onde:
xfot, yfot: coordenada no referencial fotogramétrico;
xi, yi: coordenada imagem (coluna, linha);
NCol: número de colunas da imagem adquirida; Nlin: número de linhas da imagem adquirida;
TamPixel: tamanho do pixel em milímetros na imagem a ser gerada.
Aquisição da sequência das imagens
Estimar a matriz homográfica
Correlacionar as imagens da cena à imagem referência
Realizar a fusão dos pontos de correlação entre as imagens
Obter a imagem de super-resolução Encontrar os pontos correspondentes entre as imagens
Extrair os descritores (SIFT ou SURF)
Após os parâmetros terem sido determinados, faz-se simultaneamente, a retificação e reamostragem das imagens que pertencem à sequência em relação à imagem de referência. A Figura 5.2 mostra, de forma geral, o processo de retificação implementado.
Figura 5.2: Processo de retificação das imagens.
Com base nos parâmetros que possibilitaram o registro das imagens (detectados e extraídos pelo SIFT ou pelo SURF), determina-se a correspondência dos pixels nas imagens de baixa resolução. Como as coordenadas projetadas na imagem de baixa resolução estão em frações do pixel, há a necessidade de uma interpolação entre os vizinhos para a determinação do nível de brilho relativo ao que se deseja determinar na imagem de super-resolução. O método de Interpolação Bilinear e a Bicúbica foram os mais utilizados por apresentarem melhores resultados, levando-se em consideração a influência de cada pixel em relação ao que deveria ser gerado.
Para se realizar a fusão e consequentemente a geração da imagem de super-resolução pode-se selecionar um dos seguintes procedimentos:
Média entre os valores de brilho dos pixels: é realizada a partir dos pixels correspondentes determinados pelos processos de registro e retificação, para a determinação do nível de brilho do pixel na imagem resultado, ou seja, é realizada a média aritmética dos valores de brilho, que leva em consideração, a
Imagens da cena
Calcular as coordenadas correspondentes às imagens
Projetar as imagens da sequência à imagem referência
Registro de Imagens definidos
Imagens retificadas Gerar imagem superamostrada em
preto
Seleciona as imagens que serão analisadas
somatória dos níveis de brilho de cada ponto e a quantidade de imagens que estão sendo analisadas, conforme mostra a Figura 5.3. Isso acarretou maior suavização na imagem obtida em relação aos outros algoritmos implementados, tais como, uso da mediana e minimização dos erros.
Figura 5.3: Fusão entre os pixels das imagens que pertencem à cena. Fonte: (ALMEIDA; TOMMASELLI, 2003)
Processo com minimização de erros: inicialmente realiza-se uma primeira estimação da imagem de alta resolução, por exemplo, a imagem de referência superamostrada pela interpolação bilinear ou bicúbica, conforme processo ilustrado na Figura 5.4. A partir da imagem de alta resolução aproximada, projeta-se cada pixel nas imagens de baixa resolução, dessa forma, o valor com menor diferença é utilizado;
Mediana entre os valores de brilho dos pixels: é definido o elemento mediano entre os elementos que estão vinculados a posição da imagem, isso faz com que exista menos suavização na imagem a ser obtida;
Média entre três valores medianos: após se determinar o elemento mediano, faz-se a média aritmética entre ele, o seu antecessor e o seu sucessor. Os resultados obtidos foram similares à utilização do elemento mediano apenas. O método utilizado durante a fusão das imagens que apresentou os melhores resultados foi o vinculado a Mediana entre os três elementos centrais definidos. Assim
diminui-se o efeito de suavização, conforme evidenciados nos testes realizados com uso dos demais métodos.
Imagem
Verificar quantidade de linhas e colunas a serem percorridas
Determinar as coordenadas do ponto (usando a transformação desejada) que será analisado
para plotagem na imagem superamostrada
Determinar a intensidade de brilho dos pontos vizinhos que serão levados em consideração para obtenção do brilho do pixel
na nova imagem
Determinar a distância deste pixel em relação ao gerado na
direção de x
Determinar a intensidade de brilho do pixel, levando-se em consideração a distância que o mesmo se encontra em relação ao seu vizinho na direção de x
Determinar a distância deste pixel em relação ao gerado na
direção de y
Determinar a intensidade de brilho do pixel, levando-se em
consideração as distâncias encontradas e os níveis de brilho
de seus vizinhos em relação a direção de x e y
Plotar a intensidade de brilho ao ponto que está
sendo analisado Verificar se todos os
pontos foram analisados
Não
Imagem Gerada Sim
Figura 5.4: Exemplo de processo para geração de imagens superamostradas através de Interpolação Bilinear.
Fonte: (ALMEIDA; TOMMASELLI, 2003)
Para o desenvolvimento do trabalho foi utilizado o ambiente de programação Microsoft Visual Studio 2010, a linguagem de programação C++ e a biblioteca OpenCV 2.4.2.
A biblioteca OpenCV 2.4.2 disponibiliza os algoritmos detectores de descritores (features), que são: SIFT, SURF, BREAK e ORB. E ainda os algoritmos de extração de descritores (features): SIFT, FAST, STAR, SURF, ORB e MUSER. Todos esses algoritmos foram incluídos na ferramenta como opção para o operador. No entanto, os melhores resultados foram utilizados com os algoritmos SIFT – Scale Invariant Feature Transform (LOWE, 2004) e SURF – Speeded Up Robust Features (BAY et al., 2008), e devido a isso todos os resultados se baseiam nesses dois algoritmos.
Como já mencionado no Capítulo 3, o algoritmo SIFT é praticamente invariante à mudança de iluminação, ruído, rotação, escala e pequenas mudanças no ponto de vista. Além disso, ele detecta e extrai a maior quantidade de pontos de correlação entre as imagens do que o algoritmo SURF, apresentando por essa razão maior custo computacional.
Nas seções seguintes são descritas as etapas para a geração de imagens de super- resolução a partir dos conjuntos A, B C e D.