Fast Multresoluton Image Queryng Baseado no artgo proposto por: Charles E. Jacobs Adan Fnkelsten Davd H. Salesn Propõe um método para busca em um banco de dados de magem utlzando uma magem de consulta que sea smlar a magem que se desea encontrar. O algortmo faz uso de uma decomposção em multresolução por wavelets da magem de consulta e de todas as magens do banco de dados. Para tal será defnda uma métrca de dstânca entre duas magens que fará uso de um subconunto dos coefcentes da transformada de wavelets ao qual denomnaremos assnatura da magem.
Motvação Bancos de Dados de Imagens cada vez maores: WWW Desktop Publshng Clp Art Lbrares Métodos tradconas nefcazes: Palavras chaves Procura manual sobre thumbnals Outras Aplcações: Mosaco Vdeo Query
Fatores relevantes do problema Imagem de consulta vs. Imagem a ser buscada. Qualdade da magem gerada pelo usuáro (pequenos deslocamentos espacas dstorções na geometra e na cor ) Qualdade do processo de dgtalzação (deslocamentos na espaço de cor baxa resolução dtherng ) Métrca L 1 e L 2 são pouco efcazes e lentas. Q T Q T 1 2 Q T Q T 2 1 2 ¹
Exemplo para a métrca L 1 e L 2 - = - =
Trabalhos relaconados Algumas abordagens propostas anterormente: Propredades dos Hstogramas. Análse de Texturas. Característcas geométrcas como crculardade orentação preferencal etc. Atrbutos vsuas como: composção de cor arestas domnantes. Ou a combnação dos processos acma.
Vantagens de uma métrca baseada em Wavelets Poucos coefcentes representam bem a magem. Armazena nformações de arestas. Pratcamente não dependem da resolução orgnal. A transformada é calculada em tempo lnear ao tamanho da magem.
Componentes da Métrca Espaço de Cor RGB x HSV x YIQ YIQ: É uma decomposção da cor em uma componente de Lumnânca (Y) e duas componentes de Cromnânca (I e Q).
Tpo da Wavelet Wavelet de Haar: Componentes da Métrca Fácl mplementação Performance efcente. Representa bem magens com grandes regões de cor constante.
Componentes da Métrca Tpo de decomposção Decomposção padrão apresentou melhores resultados.
Componentes da Métrca Truncagem/Quantzação dos coefcentes da transformação Apenas os m coefcentes de maor magntude são consderados que serão quantzados para -1 ou +1 Bons resultados para m = 40 a 60 Mas efcente Menor espaço de armazenamento Melhores resultados
Componentes da Métrca Resultado da Truncagem e Quantzação Imagem orgnal sua assnatura com 2000 e 60 coefcentes (canal Y).
Defnndo a Métrca Q: wavelet da magem de consulta (1 canal de cor) T: wavelet de uma magem do banco de dados (1 canal de cor) Q[00] e T[00]: méda do respectvo canal de cor Q [] e T []: coefcentes truncados e quantzados de Q e T. Uma métrca pode ser defnda como: Q T w 00 T00 w Q' T ' 0 0 Q
Smplfcação da Métrca Substtur a subtração pela operação de desgualdade Pesos w são agrupados em buckets segundo a função bn() São consderados apenas os coefcentes Q [] que não tenham sdo truncados (assmetra). Métrca L q (após smplfcações): Q T q w 00 T00 w Q' z T ' 0 Q bn( ) : Q' z0
Calculo rápdo da Métrca Trocando a desgualdade por gualdade aumenta-se o desempenho pos grande parte das magens do banco serão dferentes da magem de consulta. A operação: pode ser reescrta como: Resultando em: z z 0 ' : ) ( ' ' Q bn T Q w z z 0 ' : ) ( 0 ' : ) ( ' ' Q bn Q bn T Q w w z 0 ' : ) ( 0 ' ' 00 00 Q bn q T Q w T Q w Q T
ALGORITMO Lnear à quantdade de magens no Banco de Dados Para cada magem do Banco de Dados: Wavelet de Haar 2D (base retangular Standard) Salva a méda de cor da magem (coefcente [00] da Wavelet) Regstra os m coefcentes de maor magntude absoluta (dferencando + e ) Para cada Query: Wavelet Guarda a méda e os m índces de maor magntude Para cada magem do Banco de Dados: Calcula score de acordo com a métrca
ALGORITMO Pré-processamento Haar 2D em duas passadas 1D decompondo prmero as lnhas e depos as colunas: Haar1D ( A: vetor de cor h: tamanho do vetor ) { Para = 0 até h 1 { A[] A[] / h } // Normalzação Enquanto h > 1 { h h / 2 Para = 0 até h 1 { A [] ( A[2] + A[2+1] ) / 2 A [h+] ( A[2] A[2+1] ) / 2 } A A } }
ALGORITMO Pré-processamento Haar2D ( T: matrz de cor r: tamanho de lnhas e colunas ) { Para = 0 até r 1: { Haar1 ( T[] r ) } TransposngMatrx ( T r ) Para = 0 até r 1: { DecomposeArray ( T[] r ) } TransposngMatrx ( T r ) } Salvar a Méda da Imagem: M[ ndex(t) ] = T[00]
ALGORITMO Pré-processamento Haar2DStandard ( T: matrz de cor r: tamanho de lnhas e colunas ) { Para = 0 até r 1: { Haar1D ( T[] r ) } TransposngMatrx ( T r ) Para = 0 até r 1: { Haar1D ( T[] r ) } TransposngMatrx ( T r ) } Salvar a Méda da Imagem: M[ ndex(t) ] = T[00]
ALGORITMO Pré-processamento Regstrar os m índces de maor magntude absoluta: 6 matrzes globas de tamanho (r x r): duas matrzes para cada canal de cor uma para os índces postvos e outra para os negatvos ( D a+ D a D b+ D b D c+ D c ) cada posção da matrz corresponde a um coefcente da wavelet e aponta para uma lsta das magens que tem este coefcente como um dos seus m índces de maor magntude com snal correspondente. D b + (Índces das magens) ()
ALGORITMO Query Imagem consulta Q decomposção por wavelet Q c [00] (cor méda de cada canal) m maores Q c [] coefcentes por canal quantzação Q c [00] Q c [] índces e snas T c [00] D c + [] D c [] score de cada magem
ALGORITMO Query func ScoreQuery( Q : array[0..r-1 0..r-1] de cor m : nt ): {. Haar2D( Q ) Incalza scores[ ] 0 para todos para cada canal de cor c : { para cada magem no database T : { scores[ índce(t) ] + = w c [0] * Q c [00] T c [00] } Q TruncaCoefcentes( Q m ) para cada coefcente Q c [] 0 { se Q c [] > 0 { lsta D C+ [] } senão { lsta D C [] } para cada elemento l da lsta { scores[ índce( l ) ] = w c [bn()] } } } retorna scores }
ALGORITMO Query bn( ) - agrupa dferentes coefcentes em um pequeno número de bns; cada grupo possu o mesmo peso. bn( ) := mn { max { } 5 } 00 01 02 03 04 05... 10 11 12 13 14 15... 20 21 22 23 24 25... 30 31 32 33 34 35... 40 41 42 43 44 45... 50 51 52 53 54 55...... LL HL LH HH Pntado Scanneado b w Y [b] w I [b] w Q [b] w Y [b] w I [b] w Q [b] 0 4.04 15.14 22.62 5.00 19.21 34.37 1 0.78 0.92 0.40 0.83 1.26 0.36 2 0.46 0.53 0.63 1.01 0.44 0.45 3 0.42 0.26 0.25 0.52 0.53 0.14 4 0.41 0.14 0.15 0.47 0.28 0.18 5 0.32 0.07 0.38 0.30 0.14 0.27
A Aplcação 500 quadros do Van Gogh
A Aplcação 500 quadros do Van Gogh
A Aplcação 100 magens de clp art
Resultados Avalações realzadas no paper orgnal: Instruções - espaços de cores - tpo de wavelet - número de coefcentes Robustez com relação as dstorções Efeto do tamanho do banco de dados Desempenho Velocdade de busca
Desempenho Resultados
Resultados Velocdade de busca Metrc Tme n = 1093 n = 20558 ------------------------------------------------------ Lq 0.19 0.44 L1(8x8) 0.66 7.46 L2(8x8) 0.68 6.39 L1(128x128) 47.46 892.60 L2(128x128) 42.04 790.80 Lc 0.47 5.03 Tempo de execução: 190 + 0.11m + 0.012n mlsegundos m = 20.. 1000 n = 1093.. 20558
Dscursões - O algortmo descrto é extremamente rápdo. - Implementação não tão fácl quanto aparenta. - Os parâmetros do algortmo podem ser austados dependendo do banco de dados ou do tpo da magem query. - Para um banco de dados de 100 magens a magem retornada é quase sempre exata (1%). - Por outro lado para um banco de dados com 20000 magens a magem desenhada pelo usuáro estará entre as 200 prmeras. Porém como o algortmo é rápdo pode-se utlzar uma busca nteratva ao banco de dados. - Usar alguma espéce de Branch-and-Bound para evtar procura exaustva. - Aplcar uma métrca mas sofstcada (e mas cara) em 1% das magens mas parecdas (Ex : Segmentação Detecção de Arestas Prncpas ). - Aplcar algortmo sobre magens em baxa resolução. Acelera cração/procura no banco de dados