Otimização no Armazenamento de Imagens por meio da Decomposição em Valores Singulares

32
Ministério da Educação Universidade Tecnológica Federal do Paraná Pró-Reitoria de Pesquisa e Pós-Graduação Relatório Final de Atividades Otimização no Armazenamento de Imagens por meio da Decomposição em Valores Singulares vinculado ao projeto Métodos para Resolução de Equações Diferenciais Estocásticas Agnaldo Cesar Coelho Bolsista FUNDAÇÃO ARAUCÁRIA (Ações Afirmativas) Engenharia De Computação Data de ingresso no programa: 02/2012 Orientador: Prof. Fabio Antonio Dorini Área do Conhecimento: 1.01.04.00-3 (Matemática Aplicada) CAMPUS CURITIBA, 2012

description

Imagens de intensidade, como em tons de cinza, são normalmente representadas por uma matriz, onde cada elemento desta corresponde a um píxel na imagem. Este trabalho aborda a redução no espaço de armazenamento de imagens, utilizando para isto a Decomposição em Valores Singulares (SVD - Singular Value Decomposition) de uma matriz.

Transcript of Otimização no Armazenamento de Imagens por meio da Decomposição em Valores Singulares

  • 1. Ministrio da Educao Universidade Tecnolgica Federal do Paran Pr-Reitoria de Pesquisa e Ps-Graduao Relatrio Final de AtividadesOtimizao no Armazenamento de Imagens por meio daDecomposio em Valores Singularesvinculado ao projetoMtodos para Resoluo de Equaes Diferenciais EstocsticasAgnaldo Cesar CoelhoBolsista FUNDAO ARAUCRIA (Aes Armativas)Engenharia De ComputaoData de ingresso no programa: 02/2012Orientador: Prof. Fabio Antonio Dorinirea do Conhecimento: 1.01.04.00-3 (Matemtica Aplicada) CAMPUS CURITIBA, 2012

2. AGNALDO CESAR COELHO Orientador: FABIO ANTONIO DORINIOTIMIZAO NO ARMAZENAMENTO DE IMAGENS POR MEIO DADECOMPOSIO EM VALORES SINGULARES Relatrio de Pesquisa do Programa de Iniciao Cientca da Universidade Tecnolgica Federal do Paran.CURITIBA, 2012 3. SUMRIOINTRODUO1REVISO DA LITERATURA 1MATERIAIS E MTODOS11RESULTADOS E DISCUSSES15CONCLUSES 26REFERNCIAS26APNDICE A - CDIGOS FONTE 28 4. INTRODUOImagens de intensidade, como em tons de cinza, so normalmente representadas por umamatriz, onde cada elemento desta corresponde a um pxel na imagem [1]. Este trabalho abordaa reduo no espao de armazenamento de imagens, utilizando para isto a Decomposio emValores Singulares (SVD - Singular Value Decomposition) de uma matriz.Aplicando a SVD a uma matriz com m linhas e n colunas, que simplesmente a fatoraodesta em um produto UV T , possvel diminuir o espao de armazenamento de mn para ummltiplo pequeno de m + n + 1 [2]. Isto porque, elementos de uma dada linha da matriz temvalores muito semelhantes aos elementos correspondentes das linhas vizinhas (essa observaotambm vale para as colunas), pois, nas imagens, frequentemente a cor associada a um dadopxel est prxima a cor dos pxeis vizinhos.Em imagens representadas por matrizes tridimensionais (m n 3), como por exemploas RGB, observam-se as mesmas situaes. Nestes casos, a SVD aplicada a cada uma destas.Este trabalho se apoia nestes fatos para alcanar os objetivos pretendidos.Justicativa. Imagens digitais so indispensveis em varias reas como, por exemplo, medi-cina, biologia, astronomia, rea militar e arqueologia [3]. So geralmente mantidas e transmi-tidas na forma de matrizes enormes, que requerem muito espao no armazenamento. Devido aestas circunstncias, torna-se vivel pesquisar por mtodos ecazes que otimizem esses proces-sos, acelerando a transmisso eletrnica de imagens e reduzindo seu espao de armazenamento.Neste trabalho, decidiu-se investir em tais problemas empregando a SVD, porque ela pode seraplicada a quaisquer tipos de matrizes: quadradas, retangulares, singulares e no singulares,esparsas [2, 4]. Alm do mais, foi fundamental para a escolha o fato da SVD ser utilizada emdiversas aplicaes. Por exemplo, ela a base de muitos dos melhores algoritmos computacio-nais para resoluo de sistemas lineares [4]. Contudo, para compreender o mtodo, foi essencialaprofundar conhecimentos de lgebra Linear, imprescindveis na formao de um Engenheiro.E este o motivo principal da escolha da SVD nesta pesquisa, pois, durante a graduao, apenasquatro meses so dedicados a esse ramo to importante da matemtica.Objetivos. (i) Demonstrar que possvel reduzir o espao necessrio para o armazenamento deimagens por meio da Decomposio em Valores Singulares; (ii) Analisar imagens reconstrudaspelo mtodo da SVD, com a utilizao de quantias distintas de dados. Assim, variando entreum conjunto mnimo e mximo de valores necessrios para preservar caractersticas teis dasimagens; (iii) Examinar a qualidade de imagens processadas com a SVD aps a conversodestas, se necessrio, para os seguintes modelos: RGB, HSV, Cores Indexadas e de Intensidade.REVISO DA LITERATURA A Decomposio em Valores Singulares (SVD - Singular Value Decomposition) consisteem fatorar uma matriz qualquer em um produto UV T [2]. Ela foi demonstrada pela primeiravez por Beltrami e Jordan na dcada de 1870, para matrizes quadradas reais. Aps, Autonnedemonstrou a decomposio SVD para matrizes quadradas complexas. Em 1936, Carl Eckart eGale Young demonstraram para matrizes retangulares gerais, as quais este trabalho ir se ocupar[5, 6]. Antes de continuar com a decomposio SVD, sero expostos alguns procedimentos, re-sultados e tipos de matrizes necessrios para fatorar uma matriz em um produto UV T . 1 5. Matrizes. Nesta seo, so apresentadas e denidas alguns tipos de matrizes, operaes e pro-priedades.Denio 1. A Matriz Identidade, n n, aquela em que I = i j 1 , sendo que i j = 0 para i = je i j = 1 para i = j [2]. 1 0 0 Por exemplo, a matriz identidade para n = 3 : I = 0 1 0 . 0 0 1Denio 2. Uma matriz A, n n, diagonal quando ai j = 0 para i = j [7]. 6 0 0 Como exemplo, a matriz identidade e a matriz A = 0 0 0 so diagonais.0 0 1Denio 3. A transposta de uma matriz A, m n, representada por AT , n m, cujas colunasso as linhas de A. Assim, para AT = B tem-se ai j = b ji [7].1 4 0 Como exemplo, considere a matriz A =, ento sua transposta 2 4 3 1 2 A T = 4 4 . 0 3Denio 4. Uma matriz A, n n, dita simtrica se A = AT[2]. 1 80 Por exemplo, fcil observar que a matriz A =8 4 3 simtrica. 0 310Denio 5. Uma matriz A, n n, dita inversvel ou no singular se existir uma matriz, deno-tada por A1 , tal que A1 A = AA1 = I. Caso contrrio a matriz A singular [2].Um outro tipo importante de matriz a ortogonal, que ser abordada na subseo Orto-gonalidade.Produto Interno e Norma. Nesta seo so apresentadas algumas ideias e conceitos relaci-onados a distncias, comprimentos e ngulos de matrizes e vetores, essenciais em diversasoperaes. Por exemplo, medir a distncia entre duas matrizes ou obter um vetor unitrio (vetorde tamanho um).Primeiramente ser denido o produto interno entre dois vetores pertencentes ao espaovetorial Rn , tratados aqui como duas matrizes n 1. Dessa forma, entende-se por Rn o conjuntoconstitudo por todas as matrizes n 1.Denio 6. O produto interno entre dois vetores x e y de Rn denotado por x, y e dadopelo produto matricial xT y, do qual resulta um nmero real [2].Exemplo 1. Seja x = (1, 0, 2)T e y = (4, 3, 1)T . Ento 4T3 = (1) 4 + 0 (3) + 2 1 = 2. x, y = x y = (1, 0, 2)11 o operador delta de Kroneckerij2 6. O produto interno entre duas matrizes m n pode ser denido seguindo a mesma ideiaanterior, onde o elemento ai j da matriz A multiplicado pelo seu correspondente bi j da matrizB [2].Denio 7. O produto interno entre duas matrizes A e B, ambas m n, indicado por A, B e dado por mn A, B = ai j bi j . (1)i=1 j=1 1 3 1 3Exemplo 2. Se A = e B= . Ento2 4 4 2 A, B = 1 1 + (2) 4 + 3 3 + 4 2 = 10Agora ser apresentado o conceito de norma. Esta representa o comprimento ou tamanhode um vetor ou uma matriz. E, pode tambm ser utilizada para medir a distncia entre vetoresou matrizes.A norma de um vetor ou matriz ser denida em termos dos produtos internos. No en-tanto, importante deixar claro que ela no depende desses produtos, pois possvel denirdiversos tipos de normas, desde que sejam satisfeitas algumas condies. Estas condies nosero discutidas aqui [2].Denio 8. A norma de um vetor x pertencente a Rn , denotada por x , denida comox = x, x =222 x1 + x2 + + xn .(2)Se x = 1, ento este vetor, chamado de vetor unitrio, dito estar normalizado [7].Exemplo 3. A norma do vetor x do Exemplo 1 x =x, x = (1)2 + (0)2 + (2)2 = 5.Observao 1. De acordo com a Denio 8, a norma de um vetor sempre maior ou iguala zero. E ainda, para que ela seja igual a zero, o vetor precisa ser nulo, ou seja, todas as suascomponentes devem ser iguais a zero. Isto est de acordo com a denio de comprimento oudistncia.1Para obter um vetor unitrio u a partir de um vetor no nulo x, basta fazer u =x.xExemplo 4. O vetor unitrio obtido a partir do vetor x do Exemplo 1, com a norma calculadano Exemplo 3, 1 1 1 2 Tu= x = (1, 0, 2)T =, 0,x 55 5Assim como a norma para vetores, existe uma norma para matrizes, que tambm derivado produto interno. Ela conhecida como a norma de Frobenius [2].Denio 9. A norma de Frobenius de uma matriz A m n, escrita como A F, dada por 1mn 2 1 A F = ( A, A ) =2 a2j i . (3)i=1 j=13 7. Exemplo 5. A norma de Frobenius da matriz A no Exemplo 2 calculada como A F = A, A =12 + 32 + (2)2 + 42 =30 A Observao 1 feita para norma de vetores, tambm vlida para a norma matricial. Pormeio da norma, pode-se tambm determinar a distncia entre dois vetores ou duas matrizes [2].Denio 10. A distncia d entre dois vetores x e y e a distncia D entre duas matrizes A e Bso denidas, respectivamente, comod = xy e D = ABF (4)Exemplo 6. Considere as matrizes A e B do Exemplo 2. A distncia entre elas dada por D = ABF = (1 1)2 + (3 3)2 + (2 4)2 + (4 2)2 = 2 10 Alm das aplicaes j discutidas para a norma, ela tambm utilizada para calcular oproduto interno entre dois vetores [2].Teorema 1. Sejam x e y dois vetores no nulos em Rn e seja o menor ngulo entre eles, entoo produto interno entre x e y pode ser determinado por x, y = x y cos .Os conceitos desenvolvidos nesta seo sero teis, posteriormente, para o mtodo daSVD. Alm disso, o Teorema 1 proveitoso na discusso e compreenso de ortogonalidade queser visto na seo seguinte.Ortogonalidade. A palavra ortogonal signica ngulo reto [8]. Neste contexto, dois vetoresso ditos ortogonais se o ngulo formado entre eles um ngulo reto.Segundo David Poole (2004), o conceito de ortogonalidade um dos mais importantes eteis na lgebra linear [8]. Devido a isto e tambm pela importncia deste na SVD, para ummelhor entendimento, esta seo tratar exclusivamente deste assunto .Denio 11. Os vetores x e y em Rn so ortogonais entre si se x, y = 0 [8].Por meio da Denio 11 e do Teorema 1 constata-se que, para dois vetores estaremortogonais entre si, basta que um deles, x ou y, seja nulo ou seno o ngulo entre eles seja de90.Vetores ortogonais, em Rn , podem ser utilizados para formar uma matriz quadrada, n n,onde cada coluna da matriz um destes vetores. Indo um pouco alm e normalizando cada umdeles, obtm-se o que conhecida por matriz ortogonal. Diz-se, ento, que os vetores colunadesta matriz formam um conjunto ortonormal em Rn .Denio 12. Uma matriz Q, n n, denominada matriz ortogonal se seus vetores colunaformam um conjunto ortonormal em Rn [2].Teorema 2. Uma matriz Q, n n, ortogonal se, e somente se, QT Q = I [2]. Portanto, pelo Teorema 2 e de acordo com a Denio 5, QT Q = I = Q1 Q. Isto ocorrese, e somente se, Q invertvel. Logo QT = Q1 [8].T T111 1Exemplo 7. Seja a matriz ortogonal Q = x1 x2 , onde x1 = 2 , 2 e x2 = 2 , 2 ,ento 11 11T2 2 22 =x1 , x1 x1 , x2 1 0Q Q= 11 11 =2 2 2 2x2 , x1 x2 , x2 0 14 8. Os vetores x1 e x2 so ortogonais, pois x1 , x2 = x2 , x1 = x1 x2 cos(90) = 0. Ade-mais, como x1 e x2 so vetores unitrios, segue que x1 , x1 = x1 x1 cos 0 = 1 1 1 = 1.A mesma relao vlida para x2 .Outra propriedade relevante de matrizes ortogonais refere-se ao fato destas preservaremprodutos internos [2, 8]. Pode-se observar que para uma matriz ortogonal n n, QQx, Qy = (Qx)T (Qy) = xT QT Qy = xT (QT Q)y = xT y = x, y .E, se x = y, conforme a equao (2), Qx 2 = (Qx)T (Qx) = x, x = x 2 . Logo Qx = x .Portanto, a multiplicao de uma matriz ortogonal por um vetor preserva seu comprimento [2].Os conceitos vistos nesta seo no sero apenas teis para justicar a SVD. Estes tam-bm ajudaro a encontrar uma forma simples de determinar a distncia entre duas matrizes, pormeio da SVD.Produto externo. O produto externo discutido aqui no o produto vetorial usual. Aquelediferentemente deste, , geralmente, utilizado para representar a multiplicao entre matrizes,de forma distinta da usual.Na SVD e em diversas aplicaes conveniente multiplicar uma matriz n1, vetor colunax, por uma 1 n, vetor linha yT . Essa operao resulta em uma matriz n n e conhecida porproduto externo [2].Exemplo 8. O produto externo entre x = (1, 2, 3)T e y = (4, 3, 2)T 1 14 13 124 3 2 xyT = 2 (4, 3, 2) = 2 4 2 3 2 2 = 8 6 4 .3 34 33 32 12 9 6 interessante observar que as linhas (vetores linha) de xyT so mltiplas umas das outras.Por exemplo: a linha 2 igual a linha 1 multiplicada por 2. Dessa forma, a matriz resultantesempre ter posto 1. proveitoso relembrar que o posto de uma matriz A igual ao nmero delinhas no nulas em qualquer forma escalonada por linhas de A [4].Conforme abordado em Leon (2011), possvel particionar uma matriz C em diversassubmatrizes, traando-se retas horizontais entre as linhas e verticais entre as colunas [2]. Estasparties so chamadas de blocos. A tcnica pode ser utilizada para efetuar a multiplicaopor blocos entre duas matrizes A e B, devidamente particionadas. Se os blocos tiverem asdimenses apropriadas, a multiplicao de blocos poder ser realizada da mesma maneira quea multiplicao habitual de matrizes.Exemplo 9. Particionando X, m n, em colunas e a transposta de Y , k n, em linhas, tem-se T x11 x12 x1ny11 y21 yk1y1 x21 x22 x2n y12 y22 yk2 yT T 2X = .. = x1 , x2 , , xn e Y = .. = . . . . . .. . . .. .. . .. .xm1 xm2 xmn y1n y2n yknyTnEnto, a multiplicao XY T pode ser executada da seguinte forma:5 9. yT 1yT 2XY T = x1 , x2 , , xn . = x1 yT + x2 yT + + xn yT 1 2 n..yT n Conforme visto no Exemplo 8, XY T escrita como a soma de produtos externos de veto-res, soma de matrizes de posto 1, que conhecida como a expanso de produto externo [2].Autovalores, autovetores e diagonalizao. Esta a seo chave para entender a SVD, pois amaior parte do processo de fatorao de uma matriz A, m n, em um produto UV T envolve osmesmos mtodos e conceitos desenvolvidos aqui. O objetivo agora , por meio de autovalores eautovetores, buscar uma fatorao para uma matriz A, n n, em um produto da forma XDX 1 ,no qual D, n n, uma matriz diagonal. Quando um vetor multiplicado por um escalar , ele pode sofrer contrao ou alonga-mento, com ou sem inverso em seu sentido. Porm, a direo deste vetor no se altera. Porora, o que pretende-se : encontrar vetores, no nulos, para uma matriz quadrada A, que quandomultiplicados por ela se comportem como se estivem sendo multiplicados por um escalar . Ouseja, pretende-se encontrar as solues da equao Ax = x, x = 0.Denio 13. Seja A n n. Um escalar denominado um autovalor de A se existe um vetorx, no nulo, tal que Ax = x. O vetor x dito um autovetor de A associado a [4].Pode-se reescrever a equao na Denio 13 como Ax = Ix, e ento (A I)x = 0. Para ser autovalor de A, as componentes de x no podem ser todas iguais a 0, ou seja, o sistemadeve ter soluo no trivial [2]. Logo, a matriz (A I) tem de ser singular (no inversvel).Portanto, o determinante de (A I) deve ser igual a zero. Com isso, os autovalores de A soobtidos por meio da equao det (A I) = 0, (5)denominada equao caracterstica de A. A expanso desta resulta em um polinmio de graun em . Os vetores x, solues do sistema, so os chamados autovetores de A associados aoautovalor [2, 4].1 0Exemplo 10. Seja a matriz A =. A equao caracterstica associada 0 11 0 0 1 0 det (A I) = == (1 )(1 ) = 0 0 1 0 01Ento, os autovalores de A so 1 = 1 e 2 = 1. Para encontrar os autovetores associadosa 1 , substitui-se o valor dele no sistema (A I)x = 0, fazendo:1 + 10x1 0 (A (1)I)x1 == .01+1 x2 0Resolvendo o sistema, obtm x2 = 0 e x1 = qualquer nmero R. Ento, x1 = (x1 , x2 )T =(x1 , 0)T = x1 (1, 0)T . Portanto, (1, 0)T um autovetor de A associado a 1 = 1. De formaidntica, para encontrar os autovetores para 2 resolve-se o sistema: (A 1I)x2 = 0. Destemodo, x2 = (0, x2 )T = x2 (0, 1)T . Logo, (0, 1)T autovetor de A associado a 2 = 1.Visto como encontrar os autovalores e autovetores de uma matriz, pode-se, por m, tentarresolver o problema de fatorao de uma matriz A, n n, em um produto da forma XDX 1 , 6 10. do qual os vetores coluna de X so autovetores de A, X 1 a inversa de X e D uma matrizdiagonal formada pelos autovalores de A.Denio 14. Uma matriz A, n n, dita diagonalizvel se existir uma matriz no singular Xe uma diagonal D, de modo que X 1 AX = D ou, equivalentemente, A = XDX 1 . Neste caso,diz-se que X diagonaliza A [2].Denio 15. Um vetor v pertencente a Rn combinao linear dos vetores x1 , x2 , . . . , xn , tam-bm pertencentes a Rn , se v pode ser escrito comov = c1 x1 + c2 x2 + + cn xn (6)onde c1 , c2 , . . . , cn so escalares [4]. Vale observar, que se c2 = c3 = = cn = 0 e c1 = 0, ento v mltiplo escalar de x1 .Teorema 3. Uma matriz A de ordem n diagonalizvel se, e somente se, A possuir n autovetoreslinearmente independentes [4].Dizer que A tem n autovetores linearmente independentes, signica dizer que nenhumdestes n autovetores de A combinao linear dos outros n 1 autovetores. O motivo est namatriz diagonalizante X, porque pela Denio 14, X deve ser no singular. Logo, para que Xseja no singular, os vetores colunas de X, que so os autovetores de A, devem ser linearmenteindependentes. Segundo o Teorema 4, isto sempre ocorre se os autovalores forem distintos.Teorema 4. Se uma matriz A, n n, possuir n autovalores distintos, 1 , . . . , n , com os corres-pondentes autovetores x1 , . . . , xn , ento x1 , . . . , xn so linearmente independentes [2].Exemplo 11. Seja A a matriz do Exemplo 10. As matrizes D e X, so1 0 1 0 1 0 D== e X = x1 x2 =0 20 1 0 11 0 1 0 1 0 1 0Como X = X 1 , tem-se A = XDX 1 ==0 10 1 0 10 1Observao 2. Uma matriz diagonalizante X no nica. Se multiplicar X por escalares dife-rentes de zero ou reordenar suas colunas produzir outra matriz diagonalizvel [2].Decomposio em Valores Singulares - SVD. A SVD tm aplicaes compresso, ar-mazenamento e transmisso de dados digitais. Ela est estreitamente relacionada ao problemamatemtico de aproximar uma matriz por outra de posto menor. Eckart e Young (1936), em Psy-chometrika, demonstram a SVD para matrizes retangulares, formulando o seguinte problema:encontrar uma matriz B de posto r, de modo que no exista outra matriz de posto r tal que adistncia de outra at a matriz A seja menor que a distncia de B a A [6]. A SVD ser, ento,utilizada para encontrar a matriz B mais prxima de A. Por simplicidade, considera-se m n.No entanto, todos os resultados tambm so vlidos para m < n. O produto matricial de AAT e AT A resulta em uma matriz simtrica, m m, e uma sim-trica, n n, respectivamente [4]. Isto pode ser vericado pela Denio 4 (matriz simtrica),fazendo(AAT )T = (AT )T AT = AATe(AT A)T = AT (AT )T = AT A.Algumas propriedades importantes de matrizes simtricas so mostradas no teorema seguinte.Teorema 5. Os Autovalores de uma matriz simtrica so reais. E ainda, autovetores associadosa autovalores distintos so ortogonais [2]. 7 11. O diferencial da SVD est no fato desta poder ser aplicada a qualquer matriz m n comoarmado no teorema seguinte.Teorema 6 (SVD de uma matriz). Se A uma matriz m n, ento existe uma Decomposioem Valores Singulares de A da seguinte forma:A = UV T ,(7)onde U, m m, e V , n n, so matrizes ortogonais e , m n, uma matriz onde os elementosfora da diagonal principal so todos iguais a zero e cujo os elementos da diagonal so os valoressingulares (i ) de A ordenados de tal modo que 1 2 n [2, 4]. Buscando, agora, a Decomposio em Valores singulares de A e lembrando do Teorema2 (V T = V 1 e U T = U 1 ), tem-seAT A = (UV T )T (UV T ) = (V T )T U T UV T = V T V T(8)AAT = (UV T )(UV T )T = UV T V T U T = U T U T . (9) De acordo com o Teorema 5, os autovalores de AT A e AAT so reais. Alm disso, elestambm so todos no negativos, pois Ax 2 = (Ax)T Ax = xT AT Ax = xT x = x 2 e assimAx 2 = 0.x 2Pela Denio 14, V diagonaliza AT A e, portanto, os vetores coluna de V (v1 , . . . , vn ) so osautovetores de AT A. E ainda, como U diagonaliza AAT , os vetores coluna de U (u1 , . . . , um ) soautovetores de AAT . Outro resultado das equaes (8) e (9), obtido das matrizes diagonais T e T , cujo os valores diferentes de zero na diagonal principal so iguais em ambas.Logo, os autovalores de AT A e AAT so os mesmos e, desta forma, os valores singulares de Asatisfazemj = j 0j = 1, 2, . . . , n. (10)Sabe-se que se o posto de A r < n, ento o posto de AT A e de AAT tambm ser r.Como o posto de uma matriz simtrica igual ao nmero de autovalores diferentes de zero,segue, da equao (10), que o posto de A igual ao nmero de valores singulares diferentesde zero [2]. Os valores singulares podem, ento, ser ordenados na matriz de forma que1 2 r > r+1 = = n = 0. Desta forma, a SVD da matriz A = UV T , composto r, ser T v1 . .T 1 ... A = ( u1 ,...,ur ,ur+1 ,...,um ) .O vr vT r r+1 O O . .. vTnEfetuando-se a multiplicao por meio da expanso do produto externo tem-seA = 1 u1 vT + 2 u2 vT + + r ur vT . 12r(11) 4 4 4 34 4 25 7Exemplo 12. Considere A = , ento AT A = = Para 3 34 33 37 258 12. encontrar os autovalores de AT A calcula-se 25 7det(AT A I) == 2 50 + 576 = 0.7 25 autovalores so 1 = 32 e 2 = 18. Os valores singulares de A so 1 =Os 1 = 32 e 2 = 18. O autovetor v2 obtido por meio da equao 25 187v1 0 (AT A 18I)v2 = = 725 18 v2 0Resolvendo-se o sistema, obtm-se (v1 , v2 )T = (1, 1)T . Como a matriz V ortogonal, ne- 11 1 1 1cessrio normaliz-lo, fazendo: v2 = ( 1, 1)T = = , (1, 1)T2 12 2Procedendo da mesma maneira, encontra-se o autovetor normalizado v1 associado a 1 =1132, v1 = ( 2 , 2 )T . Com estes resultados, pode-se construir as matrizes e V . Portanto1 1 32 02 2 =eV= 1 1. 0 182 2Para determinar as colunas da matriz U, pode-se calcular os autovetores de AAT , seguin-do-se os mesmos passos tomados para V ou, de outra forma, simplesmente multiplicar porV , direita, em ambos os lados de A = UV T , obtendo AV = U . Logo, Av j = j u j ou, 1equivalentemente, u j = Av j . Ento,j11 1 14 42 114 42 0 u1 = Av1 = 1= ,u2 = 1 = 132 3 3018 3 31 22Segue-se ento que 111 0T 32 0 22A = UV = 11 0 1 0 18 22A SVD simplica o clculo da norma de uma matriz. Se A = UV T , entoA F = U(V T ) F = V T F = (V T )TF = T F = F =2221 + 2 + + n Conforme abordagem de Leon (2011), se A, m n, uma matriz com posto r, ento existeuma matriz A , m n, de posto k, onde 0 < k < r, tal que A a matriz mais prxima de A emrelao norma de Frobenius [2]. Neste caso, a distncia entre as matrizes dada por AA =222 k+1 + k+2 + + n (12) FObservao 3. A equao (12) diz que se a matriz A tem posto n, onde A = 1 u1 vT + 2 u2 vT +12 + n un vT , ento n 9 13. An1 = 1 u1 vT + 2 u2 vT + + n2 un2 vT + n1 un1 vT 12n2n1 An2 = 1 u1 vT + 2 u2 vT + + n2 un2 vT 12n2... A1 = 1 u1 vT 1sero as matrizes com postos n 1, n 2, . . ., 1, respectivamente, mais prximas de A emrelao norma de Frobenius (equao (3)), naquela ordem.Imagem. A maioria das imagens so representadas como matrizes, onde cada elemento de umamatriz corresponde a um pxel da imagem [1]. Por exemplo, a gura 1(a) mostra uma imagemde intensidade em tons de cinza, na qual cada pxel da imagem representada por um elementoda matriz com valor em ponto utuante, variando entre 0,0000 (preto) a 1,0000 (branco). Noentanto, para algumas imagens, como por exemplo as RGB (Red, Green, Blue), so necessriastrs matrizes de mesma dimenso, onde a primeira destas (banda 1) representa as intensidadesem tons de vermelho; a segunda (banda 2) em tons de verde; e a terceira (banda 3) em tons deazul. Deste modo, conforme mostram os nmeros em negrito na gura 1(b), representa-se acor de cada pxel pela combinao das intensidades de vermelho, verde e azul por elementos namesma posio de cada matriz [9]. (a) Imagem de Intensidade, em tons de cinza. (b) Imagem RGB. Trs matrizes combinadas so Apenas uma matriz representa imagem. utilizadas para formar a imagem RGB. Figura 1: Utilizao de matrizes para representar imagens. Fonte: Adaptado de [9].Similarmente ao RGB, na imagem HSV (Hue, Saturation, Value), tambm utiliza-se trsmatrizes. No entanto, a primeira representa a matiz (tonalidade), a segunda a saturao e aterceira o brilho. Alm disso, alguns tipos de imagens, como as de Cores Indexadas, utilizammapeamento direto. Estas, como apresenta a gura 2, requerem duas matrizes para suasrepresentaes. Uma delas, a matriz map (m 3), armazena em suas linhas as cores vermelho,verde e azul, onde cada linha representa uma cor dada pela combinao daquelas trs. A outra,a matriz de dados, guarda a cor de cada pxel da imagem, que corresponde a uma das linhas damatriz map [9, 10].De fato, os valores de cada elemento das matrizes que representam imagens RGB, comCores Indexadas e de Intensidades, podem estar no intervalo de valores, em ponto utuante,entre 0,0000 e 1,0000 ou dentro do intervalo de nmeros inteiros, de 0 a 255. Entretanto,elementos de matrizes em imagens HSV, esto apenas naquele intervalo de 0,0000 a 1,0000[9, 10].10 14. Figura 2: Imagem de Cores Indexadas. O pxel referente ao nmero cinco na matriz de dados, a cor da quinta linha na matriz de cores de trs colunas. Fonte: [9].Qualidade de imagens. Para medir a qualidade das imagens foi utilizado o software SSIM, de-senvolvido pelos autores do artigo Image Quality Assessment: From Error Visibility to Struc-tural Similarity e disponibilizado em https://ece.uwaterloo.ca/ z70wang/research/ssim/ [11].Este sistema avalia a qualidade da imagem baseada na degradao desta, empregando ou-tra imagem normalmente no degradada como referncia. As imagens em RGB so convertidaspara imagens de Intensidade em tons de cinza antes de serem submetidas para avaliao doSSIM. O valor referente a qualidade das imagens varia entre o intervalo de nmeros utuantes0,0000 (pior qualidade) e 1,0000 (qualidade da imagem original).MATERIAIS E MTODOSO processamento digital das imagens foi efetuado por meio do software IMSVD desen-volvido em ambiente de programao MATLAB durante este trabalho. O MATLAB em-pregado no desenvolvimento de algoritmos, anlise de dados, visualizao e clculo num-rico [12]. A documentao e a verso de testes (trial) do MATLAB, podem ser obtidas emhttp://www.mathworks.com/help/. O cdigo fonte do IMSVD pode ser encontrado noAPNDICE A - CDIGOS FONTE.O software IMSVD, para processamento de imagens por meio da SVD, foi desenvolvidocom o auxilio do Professor Fabio Antonio Dorini do Departamento Acadmico de Matemtica(DAMAT) da UTFPR. Desde o incio, ele instruiu na pesquisa e realizao dos testes. A Pro-fessora Leyza Baldo Dorini do Departamento Acadmico de Informtica (DAINF) da UTFPR,tambm colaborou com o trabalho, apresentando sugestes nas pesquisas e fornecendo infor-maes importantes sobre imagens e ferramentas do MATLAB.Os testes foram realizados com imagens RGB e de intensidade em tons de cinza. Elasforam processadas via IMSVD, nos modos HSV, RGB, Cores Indexadas e de Intensidade. Osprocessamentos no modo Cores Indexadas foram feitos no MATLAB verso 5.3 (R11), insta-lado em Sistema Operacional (SO) Windows XP de 32 bits. Para os demais modos, foi utilizadoo MATLAB verso R2010b, instalado no SO Windows 7 de 32 bits. Para o Windows 7 so dis-ponibilizados 3 GB de memria ram e para o Windows XP 1,5 GB, ambos com SO instaladosem um notebook com processador Intel 2 DUO de 2.1 GHz.Fazendo uso das ferramentas citadas, foi possvel processar imagens com tamanho m-ximo de aproximadamente 27002100 pxeis, sem que ocorresse erro por falta de memria.As imagens RGB processadas com a verso R2010b do MATLAB, no modo Cores Indexadas,apresentaram resultados insatisfatrios. A visualizao destas ocorria somente quando as ima-11 15. gens eram reconstrudas com o posto igual ou muito prximo ao da original, devido ao rudoapresentado nelas. A melhor soluo encontrada para este problema foi processar as imagensna verso 5.3 do MATLAB.Justicativa e anlise do mtodo. Por que a SVD til para otimizar o armazenamento deimagens? Para uma imagem de intensidade, de acordo com a Observao 3 da equao (12)pode-se truncar o somatrio da expanso do produto externo da matriz A, que representa a ima-gem original, nos p primeiros termos. E desta forma obter outra matriz A , prxima A, emrelao norma de Frobenius. Isto signica que a imagem reconstruda com A ser similar aoriginal. Alm disso, quanto mais termos i ui vT forem adicionados na soma da expanso ido produto externo que resulta em A , mais prxima ser a imagem reconstruda da original.A ideia ento , ao invs de armazenar todos os elementos da matriz da imagem original,simplesmente armazenar os p primeiros i da diagonal de e os p primeiros vetores coluna uide U e vi de V , resultantes da decomposio de A = UV T . Isto permite reduzir o espao ne-cessrio no armazenamento das matrizes de imagens, e acelerar a transmisso eletrnica destas.No caso de a imagem ser RGB ou HSV, por exemplo, o mtodo aplicado em cada uma dastrs matrizes que as representam (isto pode ser melhor observado no pseudocdigo do cdigo1). importante frisar, que a matriz A pode ser obtida pelo produto matricial usual U V T ,onde U = (u1 , . . . , u p ), = diagonal(1 , . . . , p ) e V = (v1 , . . . , v p ). Deste modo se A , assimcomo A, conter m linhas e n colunas, sero necessrios armazenar p m + p 1 + p n =p(m + n + 1) elementos e no mais os m n elementos de A. Portanto, claro que para que aaplicao do mtodo seja vivel, preciso satisfazer p(m + n + 1) < m n e assim mnp< . (13) (m + n + 1)Como ser visto na seo RESULTADOS E DISCUSSES, geralmente a matriz A possuimuitos valores singulares pequenos. Em vista disso, praticamente sempre possvel aproxim-la por uma matriz A de posto bem menor e, mesmo assim, obter uma imagem com qualidadeprxima a da imagem original. O exemplo seguinte demonstra a aplicao do mtodo comuma imagem em tons de cinza.Exemplo 13 (Aplicao do Mtodo no MATLAB). Ser processada, no MATLAB, a imagemmozilla.jpg convertida para imagem de Intensidade, com resoluo de 4040 pxeis e posto40 (obs.: a pontuao utilizada nos comandos somente a do MATLAB).Inicia-se com a leitura da imagem, representando-a como uma matriz, atravs do comandoA = imread( mozilla. jpg );O comando seguinte converte a imagem, lida, para uma imagem de intensidade em tonsde cinza: A = rgb2gray(A);Agora, para efeito de clculo, converte-se a matriz A para double, fazendo A = double(A)+ 1;O MATLAB requer +1 para acertos. Para aplicar a Decomposio SVD, fatorando A emum produto UV T , basta digitar [U, D,V ] = svd(A);Para reconstruir a matriz A1 = U1 1V1T com posto 1, pode-se usar o comandoA1 = U(:, 1 : 1) D(1 : 1, 1 : 1) V (:, 1 : 1) ;Ento, para visualizar a imagem correspondente a A1, realiza-se primeiro a converso para uint8(explicao linha 45 do cdigo 1), com -1 para acertos, e ento utiliza-se o comando imshow. 12 16. Isto pode ser feito diretamente, digitando: imshow(uint8(A1 1)) Da mesma forma, para visualizar as matrizes com posto = 2, 3, . . ., 40 deve-se fazer A2 = U(:, 1 : 2) D(1 : 2, 1 : 2) V (:, 1 : 2) ;...A40 = U(:, 1 : 40) D(1 : 40, 1 : 40) V (:, 1 : 40) ; seguido respectivamente dos comandos: imshow(uint8(A2 1)) . . . imshow(uint8(A40 1))A gura 3 apresenta a imagem original, seguida das outras com posto reduzido. Con- forme a inequao (13) para reduzir o espao no armazenamento da imagem, o posto p deve satisfazer40 40 p< = 19. (40 + 40 + 1) (a) Original(b) p = 1(c) p = 3(d) p = 5 (e) p = 15 (f) p = 20 Figura 3: Imagem original (a), seguida das imagens, de posto menor, reconstrudas com o Exemplo 13. Fonte: adaptado de icongal.com. Viso do sistema. O cdigo 1 apresenta o pseudocdigo do software IMSVD. Aps a decom- posio da(s) matriz(es) (linha 25), o programa reconstri e exibe a imagem em cada novo incremento do posto (lao PARA externo, linha 35). O IMSVD pausa o processo (linha 48), a cada iterao, para permitir que o usurio analise a imagem correspondente ao posto atual. Para continuar o processo ininterruptamente, este deve manter pressionada qualquer tecla ou, com apenas um clique, ele pode visualizar a imagem resultante da iterao seguinte, e parar novamente a execuo do programa. A aplicao nalizada quando o posto da imagem em aproximada se iguala ao posto da original. Em imagens RGB ou HSV, o posto denido, neste trabalho, pelo menor posto dentre as trs matrizes que representam as bandas 1, 2 e 3 da imagem. Cdigo 1: Pseudocdigo do software desenvolvido para o processamento de imagens. Fonte: Autoria Prpria. 1 % i m s v d ( imagem , modo ) p r o c e s s a IMAGENs n o s MODOs: HSV , RGB , C o r e s I n d e x a d a s ( i n d ) e , tambm , de 2 % I n t e n s i d a d e . Os o p e r a d o r e s ==, = e != r e p r e s e n t a m i g u a l d a d e , atribuio e negao , n e s t a ordem 3 imsvd ( imagem , modo ) 4% A == (A1 , A2 , A3 ) um " a r r a y " m n 3 s e A f o r RGB ou HSV . Caso contrrio , A == A1 . Os Ai s so a s 5% m a t r i z e s r e f e r e n t e s a s b a n d a s 1 , 2 e 3 da imagem . A m a t r i z map , com dimenses k 3 , 6% r e p r e s e n t a o mapa de c o r e s d a s i m a g e n s i n d e x a d a s . Se a imagem f o r RGB , map ser v a z i a 7 [ A,map ] = l e r ( imagem ) 8SE A f o r RGB, ENTO 9 SE modo == hsv , ENTO10 c o n v e r t a A p a r a hsv11 SENO , SE modo == i n d , ENTO12 c o n v e r t a A p a r a o modo C o r e s I n d e x a d a s , a r m a z e n a n d o13 256 c o r e s em map ( k == 2 5 6 )14 FIM SE15FIM SE16% A c o n v e r t i d o p a r a d o u b l e p a r a que o MATLAB p o s s a e f e t u a r o s clculos . 13 17. 17 % M a t r i z e s em h s v j so d o u b l e18 SE modo ! = hsv , ENTO19 converta A para double20 FIM SE21 % dimenso ( A ) == 3 p a r a r g b e h s v ou dimenso ( A ) == 1 p a r a o u t r o s c a s o s22 PARA i == 1 at v a l o r da dimenso ( A ) FAA23% clculo da s v d de Ai == Ui iViT , onde Ui == (ui1 , . . . , uim ) , i == d i a g o n a l (i11 , . . . , inn )24% e Vi == (vi1 , . . . , vin )25 [Ui , i ,Vi ] = s v d ( Ai )26 pi = calcular_posto(Ai )27 FIM PARA28 SE dimenso ( A ) == 1 , ENTO29 p o s t o = p130 SENO31 p o s t o = mnimo ( p1 , p2 , p3 )32 FIM SE33 % i n i c i a l i z a n d o A como " a r r a y " n u l o . A tem a s mesmas dimenses de A .34 A =O35 PARA j == 1 at o v a l o r do p o s t o FAA36PARA i == 1 at o v a l o r da dimenso ( A ) FAA37 % expanso do p r o d u t o e x t e r n o38 Ai = Ai + i j j ui j vTji39FIM PARA40A =A41SE modo == hsv , ENTO42c o n v e r t a A p a r a RGB43SENO44 % u i n t 8 um t i p o e s p e c i a l de i n t e i r o que v a r i a de 0 a 2 5 5 .45converta A para uint846FIM SE47 mostrar (A )48 pausar iterao49SE usurio p r e s s i o n a r q u a l q u e r t e c l a , ENTO50c o n t i n u a r iterao51FIM SE52 FIM PARA53 FIM imsvdDevido ao software propiciar a visualizao da imagem em evoluo, torna-se conveni- ente aplicar a expanso do produto externo na reconstruo desta (linha 38). Assim, os clculos realizados para formar a imagem atual, de posto p 1, so armazenados para serem utilizados na construo da imagem seguinte, de posto p. Isto reduz o custo computacional evitando-se a aplicao do produto entre as matrizes Ui , i , e ViT em cada repetio do lao PARA interno.Entretanto, se o propsito for reconstruir a imagem denitiva com o posto p j determi- nado, e assim, visualiz-la somente com este posto, geralmente ser melhor efetuar o produto matricial usual do MATLAB, Ui i ViT diretamente. Os testes demostraram que desta forma, o processamento da imagem muito mais eciente do que o mtodo abordado anteriormente. Por exemplo, o tempo de processamento de uma imagem RGB com tamanho 1024768 pxeis, fazendo uso do produto matricial usual e no modo RGB, foi de aproximadamente 5 segundos. Por outro lado, o tempo gasto para processar a mesma imagem, utilizando a expanso do pro- duto externo no mesmo modo, foi de cerca de 80 segundos. Em ambos os testes a imagem foi reconstruda com o posto mximo (768) e visualizada somente aps o trmino do processa- mento. O cdigo fonte do programa para processamento no modo RGB por meio do produto matricial usual empregado neste teste, est no APNDICE A - CDIGOS FONTE. Cronograma de atividades. A pesquisa cumpriu o cronograma com as seguintes atividades: (i) estudo de matrizes e do ambiente de programao MATLAB; (ii) estudo de espaos ve- toriais e transformaes lineares (espaos vetoriais, subespaos, independncia linear, base e dimenso, mudana de base, espaos linha e coluna, transformaes lineares, representao matricial de transformaes lineares, semelhana); (iii) estudo de produto interno e ortogona- lidade (produto interno, subespaos ortogonais, espaos munidos de produto interno, espaos14 18. normados, conjuntos ortonormais, processo de ortogonalizao de Gram-Schmidt); (iv) estudode autovalores e autovetores (autovalores e autovetores, diagonalizao, matrizes autoadjuntas,matrizes positivas denidas); (v) decomposio SVD de uma matriz; (vi) aplicaes da SVDem compresso de imagens; (vii) redao do relatrio nal em L TEX.ARESULTADOS E DISCUSSES Nesta seo primeiramente so apresentados os resultados obtidos nos ensaios realizados(1 a 7). Em seguida ocorre uma breve interpretao e anlise daqueles na subseo Interpretaoe anlise dos resultados. As imagens utilizadas nos ensaios so exibidas na gura 4 e suasinformaes aparecem na tabela 1. (a) spiral.png(b) mundo.jpg(c) lena.jpg (d) pentagono.jpg (e) hawaii.jpg (f) peppers.pngFigura 4: Imagens utilizadas nos ensaios de 1 a 7. A imagem (a) foi construda com o comandospiral do MATLAB.Tabela 1: Informaes das imagens na gura 4. A coluna R.A Posto quer dizer que a reduono armazenamento da imagem somente ocorre para os valores do posto p indicado. ImagemR.A. Posto Altura Largura (pxeis) Fonte (a) spiral.pngp 0 . P o s t o u t i l i z a d o no c a l c u l o da r e c o n s t r u c a o da m a t r i z d e c o m p o s t a89 A = i m r e a d ( nome_imagem ) ; %%% l e n d o a imagem e armazenando na m a t r i z A 10 11 i f i s r g b (A) % %% v e r i f i c a s e a imagem eh RGB p a r a e n t r a r na s e l e c a o 12 A = d o u b l e (A) + 1 ; % %% c o n v e r s a o p a r a d o u b l e . M a t l a b r e q u e r +1 p a r a a c e r t o s 13 for i = 1:3 14 [U, D, V] = svd ( A ( : , : , i ) , econ ) ; % %% c a l c u l a a s v d de A ( f o r m a e c o n o m i c a ) 15 p ( i ) = sum ( d i a g (D) > 0 . 1 ) ; % %% c a l c u l a o posto 16 17 i f p o s t o _ m a x > p ( i ) | | p o s t o _ m a x