• Nenhum resultado encontrado

O método do gradiente espectral projetado aplicado ao problema de reconstrução digital de imagens usando regularização l1

N/A
N/A
Protected

Academic year: 2021

Share "O método do gradiente espectral projetado aplicado ao problema de reconstrução digital de imagens usando regularização l1"

Copied!
64
0
0

Texto

(1)O m´ etodo do gradiente espectral projetado aplicado ao problema de Image Inpainting usando regulariza¸c˜ ao `1 .. Anderson Concei¸ca˜o de Almeida. ˜ o apresentada Dissertac ¸a ao ´ tica e Estat´ıstica Instituto de Matema da ˜ o Paulo Universidade de Sa para ˜ o do t´ıtulo obtenc ¸a de ˆncias Mestre em Cie. Programa: Matem´atica Aplicada Orientador: Prof. Dr. Ernesto G. Birgin Durante o desenvolvimento deste trabalho, o autor recebeu aux´ılio financeiro da CAPES. S˜ ao Paulo, 14 de novembro de 2015.

(2) O m´ etodo do gradiente espectral projetado aplicado ao problema de Image Inpainting usando regulariza¸c˜ ao `1 .. Esta ´e a vers˜ao original da disserta¸c˜ao/tese elaborada pelo candidato Anderson Concei¸c˜ao de Almeida, tal como submetida `a Comiss˜ao Julgadora..

(3) Agradecimentos Agrade¸co a minha m˜ ae Edite, pelo seu infind´avel amor, compreens˜ao e companheirismo com que sempre me acompanhou desde meu nascimento. Agrade¸co ao meu pai Adolfo (in memorian), que mesmo n˜ao estando presente desde minha infˆ ancia, deixou plantadas condi¸c˜ oes para que eu pudesse me desenvolver como homem e ser humano. Agrade¸co ao meu orientador, Ernesto G. Birgin pelo exemplo de pesquisador, professor, car´ater, e por que n˜ao, amizade. Agrade¸co a minha fam´ılia: minha av´ o Arlinda, meus tios Roberto, Z´e Carlos, Cosme, Gerson, minhas tias Elizete, Evanete, Ezenite, Cida, Ednesia pelo aconchego e pela alegria com que sempre me receberam. Sem vocˆes tudo teria sido muito mais dif´ıcil. Aos colegas do grupo de otimiza¸c˜ ao matem´atica computacional entre eles Oberlan Rom˜ao, Rafael Lobato, John Gardenghi pelos almo¸cos e conversas no laborat´orio regados a risadas e li¸c˜ oes sobre programa¸c˜ ao. Assim como todos os colegas do laborat´orio 118. Ao meu amigo de longa data Rafael Nantes, pelas cervejas acompanhadas de bons di´alogos sobre a vida, ciˆencia e por ter aberto a sua casa sempre que precisei. Ao amigo Cristian Vasconcellos, por sempre conseguir aliar filosofia e amizade, independentemente das nossas vis˜ oes de mundo. Aos amigos Leandro Junqueira e Alana Reis por todas as agradabil´ıssimas conversas, visitas e caf´es. Aos colegas da gradua¸c˜ ao Gabriel Fernandes, Glaucio Fabiano, Diolan Godinho, Jo˜ao Paulo Mello por todo o crescimento intelectual e ajuda m´ utua. Agrade¸co tamb´em a todos os amigos da p´ osgradua¸c˜ao do IME- USP, entre eles, Valdir Filho, Belmiro Galo, Andr´e Zaidan, Inocˆencio Zimba, Fl´avia Teles, Bruna Cassol. ` todos os meus familiares e amigos que de uma forma ou de outra me ajudaram nesse traAj jeto, muitas vezes n˜ ao diretamente, mas sempre de maneira significativa..

(4) 4.

(5) Resumo ALMEIDA, A. C. de O m´ etodo do gradiente espectral projetado aplicado ao problema de Image Inpainting usando regulariza¸ c˜ ao `1 .. 2015. 55 f. Disserta¸c˜ao (Mestrado) - Instituto de Matem´atica e Estat´ıstica, Universidade de S˜ao Paulo, S˜ao Paulo, 2010. O problema de reconstru¸c˜ ao digital de imagens (Image Inpainting) possui diversas abordagens para sua resolu¸c˜ ao. Uma possibilidade consiste na sua modelagem como um problema de otimiza¸c˜ao cont´ınua. Na presente disserta¸c˜ao aplica-se o m´etodo do gradiente espectral projetado a esse problema. Desenvolve-se inteiramente a modelagem do problema assim como a implementa¸c˜ ao computacional do m´etodo de otimiza¸ca˜o que o resolve. Resultados computacionais demonstram a qualidade do m´etodo para um conjunto de imagens digitais. Palavras-chave: Reconstru¸c˜ ao digital de Imagens, Otimiza¸c˜ao Matem´atica, Gradiente Espectral Projetado, Regulariza¸c˜ ao `1 .. 5.

(6) 6.

(7) Abstract ALMEIDA, A. C. de The spectral gradient method applied to the Image Inpainting problem using `1 -Regularization. 2015. 55 f. Dissertation (Master Degree) - Instituto de Matem´atica e Estat´ıstica, Universidade de S˜ao Paulo, S˜ao Paulo, 2010. The image inpainting problem has several resolution approaches. One possibility consists in its modeling as a continuous optimization problem. In the present dissertation we apply the spectral projected gradient method to this problem. We develop the whole modeling of the problem as well as the computational implementation of the optimization method to solve it. Computational results show the quality of the method for a set of digital images. Keywords: Image Inpainting, Mathematical Optimization, Spectral Projected Gradient, `1 - Regularization.. 7.

(8) 8.

(9) Sum´ ario 1 Introdu¸ c˜ ao. 1. 2 Otimiza¸ c˜ ao e Image Inpainting 2.1 O M´etodo proposto . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.1 Caso com um n´ umero qualquer de coberturas . . . . . . . . . 2.2 O m´etodo do gradiente espectral projetado . . . . . . . . . . . . . . 2.3 Implementa¸c˜ ao da fun¸c˜ ao objetivo e do gradiente da fun¸c˜ao objetivo. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. 5 5 11 12 14. 3 Experimentos computacionais 3.1 A escolha do dicion´ ario . . . . . . . . . . . . . . . 3.2 Rela¸c˜ ao de ng e psnr . . . . . . . . . . . . . . . . . 3.3 Rela¸c˜ ao de t e psnr . . . . . . . . . . . . . . . . . . 3.4 Rela¸c˜ ao de λ e psnr . . . . . . . . . . . . . . . . . 3.5 Recuperando a imagem “Barbara” com parˆametros. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. 23 24 26 31 39 43. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . fixados a priori. . . . .. 4 Conclus˜ oes e trabalhos futuros. 49. Referˆ encias Bibliogr´ aficas. 51. 9.

(10) 10.

(11) Cap´ıtulo 1. Introdu¸ c˜ ao A imagem est´ a associada ao pr´ oprio desenvolvimento da linguagem humana, e consequentemente ao pr´ oprio desenvolvimento da civiliza¸c˜ao. Com o desenvolvimento da tecnologia e da arte, a imagem se transforma cada vez mais em t´ecnica. Desde a sua representa¸c˜ao computacional ao tratamento dos mais diversos problemas em processamento de imagens (ou em geral, processamento de sinais), encontramos desafios nas mais variadas ´areas, entre elas: engenharia, estat´ıstica, matem´atica e computa¸c˜ ao; ver por exemplo [AK06, EDE96, Yar13, YY85]. A presente disserta¸c˜ ao tem como foco o tratamento matem´ atico e computacional de um desses problemas, o problema de retoque digital (Image Inpainting). O problema consiste em reconstruir uma regi˜ao pr´e-definida de uma imagem de maneira que a imagem final seja a mais “real” poss´ıvel, ou em outras palavras, que um observador casual n˜ ao perceba a manipula¸c˜ao da imagem. T´ecnicas manuais de recupera¸c˜ ao de imagens s˜ao antigas e tem suas origens na recupera¸c˜ ao de capelas, quadros, entre outros [Wal85, EM76]. J´a do ponto de vista computacional, os primeiros trabalhos para tratar esse tipo de problema surgiram por volta do final do s´eculo XX [KMFR95, HT96, EL+ 99, HB95, SP98, NMS93, MM98]. Desde ent˜ao, diversas formas de abordagem `a reconstru¸c˜ ao de imagens digitais foram desenvolvidas. Um panorama detalhado dos diferentes enfoques em image inpainting, avan¸cos recentes e links para c´odigos computacionais podem ser encontrados em [GLM14]. Baseando-se nas caracter´ısticas principais dos m´etodos computacionais usados para tratar o problema de Image Inpainting, ´e comum, na literatura de processamento de imagens, classific´ alos em alguns paradigmas principais. Entre eles destacam-se: reconstru¸c˜ao baseada em sistemas dinˆamicos e equa¸c˜ oes diferenciais parciais [BSCB00, BBS01], reconstru¸c˜ao baseada em amplia¸c˜ ao + de textura (Texture Synthesis) [EL 99, WL00] e reconstru¸c˜ao baseada em exemplares (Exemplarbased inpainting methods); ver por exemplo [CPT04, LLX+ 01]. O primeiro deles usa a teoria de difus˜ao do calor para propagar estruturas externas `a regi˜ao a ser recuperada para dentro da mesma. Esse tipo de abordagem foi primeiramente apresentado em [BSCB00] e se inspira forte´ interessante notar que ´e tamb´em em [BSCB00] mente nos trabalhos desenvolvidos em [MM98]. E que pela primeira vez aparece a nomenclatura Image Inpainting para o problema de reconstru¸c˜ ao de imagens digitais. Nesse trabalho, os autores interpretam uma imagem como uma chapa com temperaturas distintas em cada ponto, onde a intensidade de cada pixel representa a temperatura da chapa naquele ponto. O m´etodo de reconstru¸c˜ao de imagens ent˜ao se reduz em grande parte 1.

(12) ao problema de equil´ıbrio t´ermico proveniente da F´ısica. Linhas com mesma intensidade de pixel que chegam na borda da regi˜ ao a ser recuperada s˜ao estendidas iterativamente, usando o gradiente da imagem no ponto da borda para a correta dire¸c˜ao de propaga¸c˜ao dessas linhas. Ap´os esse processo, ´e usada a t´ecnica de difus˜ ao anisotr´opica com o objetivo de garantir a convergˆencia do m´etodo e harmonizar as linhas propagadas, assim como estender grandes regi˜oes da imagem para o interior da regi˜ ao danificada. Tal m´etodo, apesar de inovador, apresenta deficiˆencias significativas quando trata de replicar texturas na regi˜ao danificada e tamb´em quando essa mesma regi˜ ao tem uma extens˜ ao grande em rela¸c˜ ao ` a imagem. Uma das grandes vantagens, por´em, ´e o fato de n˜ao precisar qualquer interven¸c˜ ao de um usu´ario, exceto na determina¸c˜ao da regi˜ao a ser restaurada. A segunda classe de m´etodos ´e na verdade um campo de estudos `a parte em processamento digital de imagens, mas que se aplica perfeitamente ao problema de Image Inpainting. Texture Synthesis refere-se ao problema de reproduzir uma textura em grandes regi˜oes, baseando-se apenas numa pequena amostra daquela textura. Tal m´etodo, quando aplicado `a recupera¸c˜ao digital de imagens, funciona muito bem quando a regi˜ao danificada n˜ao possui detalhes muito espec´ıficos a serem recuperados, como cantos e linhas que caracterizam a imagem. Esse m´etodo foi apresentado nos trabalhos [EL+ 99, WL00] e v´ arios m´etodos h´ıbridos o usam como um complemento na recupera¸c˜ao de grandes regi˜ oes. Por u ´ltimo, a reconstru¸c˜ ao baseada em exemplares tem como ideia central a c´opia de “retalhos” (patch) da ´area externa ` a regi˜ ao desconhecida para dentro da mesma. A escolha certa do conjunto no qual ´e feita a busca por tais retalhos ´e de fundamental importˆancia para o sucesso de m´etodos baseados em exemplares. Esse conjunto, tamb´em chamado de “dicion´ario”, pode ser formado de diversas maneiras, tanto com partes da regi˜ao intacta, como com partes de imagens pertencentes a um banco de imagens pr´e definido. Uma alternativa que tem sido bastante explorada na constru¸c˜ ao dos retalhos mais adequados ao preenchimento da regi˜ao danificada ´e a considera¸c˜ao de combina¸c˜ oes lineares dos elementos do dicion´ ario [Li11, Woh11, XS10]. Nesse caso o dicion´ario tamb´em pode ser complementado com conjuntos geradores cl´assicos como wavelets, curvelets [FSM09], entre outros. Tal abordagem visa conseguir uma riqueza de detalhes maior do que a op¸c˜ao de exemplares u ´nicos. O enfoque por combina¸c˜ oes lineares leva naturalmente `a busca de solu¸c˜oes esparsas, ou seja, solu¸c˜oes que carreguem apenas as informa¸c˜oes imprescind´ıveis da parte intacta da imagem. O problema de encontrar solu¸c˜ oes esparsas para problemas desse tipo tem sido chamado de basis pursuit denoising na literatura e tem sido alvo de diversos estudos nos u ´ltimos anos devido, principalmente, ao surgimento de uma vasta gama de aplica¸c˜oes pr´aticas. Entre elas, podemos citar compressive sensing [Don06, CRT06, Lla12], m´aquinas de suporte vetorial [Gir98, BDE09, SS04], problema de PageRank do Google [LM11], machine learning [FHT01]. Entre os m´etodos num´ericos de otimiza¸c˜ao mais usuais para sua resolu¸c˜ao destacam-se m´etodos baseados em continua¸c˜ao homot´opica [MCW05], gradientes projetados [FNW07] e o algoritmo in-crowd [GWM11]. Uma an´ alise detalhada sobre problemas de basis pursuit denoising pode ser encontrada em [VDBF08]. Nessa disserta¸c˜ ao, desenvolvemos um m´etodo para image inpainting baseado em combina¸c˜ ao linear esparsa de exemplares exposto em [Woh11]. Esse m´etodo usa regulariza¸c˜ao-`1 para o problema de basis pursuit denoising, focando na otimiza¸c˜ao de uma u ´nica fun¸c˜ao objetivo que visa capturar as propriedades globais da regi˜ ao conhecida da imagem. Resolveremos o problema de otimiza¸c˜ ao 2.

(13) pelo m´etodo de gradiente projetado; ver [BMR09]. O trabalho se organiza da seguinte maneira. No Cap´ıtulo 2, apresentamos primeiramente a modelagem do problema para um caso particular e generalizamos sua abordagem para o caso geral (Se¸c˜ao 2.1 e Subse¸c˜ ao 2.1.1). Em seguida, descrevemos o m´etodo de otimiza¸c˜ao num´erica usado no problema de otimiza¸c˜ ao proveniente do modelo de Image Inpainting (Se¸c˜ao 2.2). Na Se¸c˜ao 2.3, apresentamos pseudo-c´ odigos dos algoritmos usados na implementa¸c˜ao do programa computacional. No Cap´ıtulo 3, s˜ ao expostos experimentos computacionais, com imagens, tabelas e gr´ aficos mostrando a influˆencia dos diversos parˆametros na qualidade das imagens recuperadas pelo m´etodo proposto (Se¸c˜ oes 3.1 a 3.4). Na Se¸c˜ ao 3.5, recuperamos uma imagem nova, com os parˆametros fixados a priori baseando-se nos experimentos realizados. As conclus˜oes e poss´ıveis vias de continua¸c˜ao do trabalho s˜ ao discutidas no u ´ltimo cap´ıtulo.. 3.

(14) 4.

(15) Cap´ıtulo 2. Otimiza¸ c˜ ao e Image Inpainting Nesse cap´ıtulo, descreveremos o m´etodo que motivou a elabora¸c˜ao da presente disserta¸c˜ ao. Seguiremos de perto o artigo [Woh11]. Este m´etodo consiste em modelar o problema de Image Inpainting como um problema de otimiza¸c˜ao n˜ao linear, com restri¸c˜oes de caixa. Tal problema de otimiza¸c˜ao tem demonstrado bons resultados computacionais ao ser resolvido por m´etodos do tipo gradiente espectral (ver [FNW07]). Descreveremos tamb´em nessa se¸c˜ao um desses m´etodos: o m´etodo do gradiente espectral projetado, desenvolvido no artigo [BMR00] em 2000. Na Se¸c˜ao 2.1, come¸camos com uma descri¸c˜ ao formal para o nosso modelo. Algumas defini¸c˜oes importantes s˜ ao apresentadas a seguir. Defini¸ c˜ ao 1 Sejam nl, nc ∈ N, chamamos “imagem” de dimens˜ ao nl × nc uma fun¸c˜ ao I definida em um subconjunto S ⊂ Z = {1, . . . , nl} × {1, . . . , nc} tomando valores inteiros em [0, 255]. Os elementos de Z s˜ ao chamados pixels e I(i, j) ´e o valor do pixel (i, j), para (i, j) ∈ S. Defini¸ c˜ ao 2 Seja A ⊂ Z, uma “cobertura” de A ´e um conjunto P ⊂ P(Z), com P = {B1 , B2 , . . . , Bk }, tal que os Bi s˜ ao conjuntos de pixels Bi ∩ Bj = ∅ se i 6= j, Bi ∩ A 6= ∅ ∀i ∈ {1, . . . , k} e A ⊂ ∪P . Defini¸ c˜ ao 3 Se φ e ξ s˜ ao fun¸c˜ oes reais definidas em um conjuntoP A e C = {x1 , x2 , x3 , . . . , xn } ⊂ A, a distˆ ancia entre φ e ξ, relativa a C, ´e definida por d|C (φ, ξ) = ni=1 (φ(xi ) − ξ(xi ))2 .. 2.1. O M´ etodo proposto. Dado Ω ⊂ Z e uma imagem I definida em Z \ Ω, chamamos Ω de “regi˜ao a ser restaurada” e Z \ Ω de “regi˜ ao intacta”. O problema de image inpainting consiste em definir valores para fun¸c˜ ao I nos pixels de Ω ⊂ Z de maneira que n˜ao haja uma discrepˆancia muito grande em rela¸c˜ ao ao complementar de Ω em Z. O significado de “discrepˆancia muito grande” ser´a determinado em seguida. Para realizarmos tal tarefa, tomaremos diversas coberturas para a regi˜ao desconhecida Ω e em seguida, atribuiremos valores aos elementos dessas coberturas pedindo que esses valores se distanciem o m´ınimo poss´ıvel, tanto entre si (quando houver intersec¸c˜ao entre os conjuntos que formam as coberturas) quanto em rela¸c˜ ao aos elementos intactos da imagem.. 5.

(16) Em outras palavras, seja I : Z \ Ω → [0, 255] ∩ Z uma imagem e Ω ⊂ Z um conjunto de pixels danificados na imagem. Sejam ainda P = {Bi }i∈{1,...,`} e P 0 = {Bi0 }i∈{1,...,`0 } coberturas de Ω, nosso objetivo ´e definir fun¸c˜ oes fi : Bi → [0, 255] ∩ Z, i = 1, . . . , ` e fi0 : Bi0 → [0, 255] ∩ Z, i = 1, . . . , `0 de maneira que 0 {i,j|Bi ∩Bj0 ∩Ω6=∅} d|Bi ∩Bj0 ∩Ω (fi , fj ). P. P. +. P. {i|Bi ∩(Z\Ω)6=∅} d|Bi ∩(Z\Ω) (fi , I) 0 {i|Bi0 ∩(Z\Ω)6=∅} d|Bi0 ∩(Z\Ω) (fi , I). +. (2.1). seja m´ınima. Aqui, ´e importante salientar que essa fun¸c˜ao pode ser mal escalada. Isso se deve ao fato de que a quantidade de termos na somat´ oria pode ser t˜ao grande quanto se queira. Com isso em mente, ´e natural que insiramos constantes divisoras. Temos assim, nossa nova fun¸c˜ao escalada, dada por: 1 N1. P. {i,j|Bi ∩Bj0 ∩Ω6=∅}.  d|Bi ∩Bj0 ∩Ω (fi , fj0 ) + P 1. P. 1 N2. {i|Bi ∩(Z\Ω)6=∅} d|Bi ∩(Z\Ω) (fi , I)  0 , I) , 0 d| (f 0 {i|B ∩(Z\Ω)6=∅} Bi ∩(Z\Ω) i. N2. . + (2.2). i. onde N1 representa a quantidade de termos em .  X. . d|Bi ∩Bj0 ∩Ω (fi , fj0 ). {i,j|Bi ∩Bj0 ∩Ω6=∅}. e N2 ´e a quantidade de termos na somat´oria .  X. . d|Bi ∩(Z\Ω) (fi , I). X. +. d|Bi0 ∩(Z\Ω) (fi0 , I) .. {i|Bi0 ∩(Z\Ω)6=∅}. {i|Bi ∩(Z\Ω)6=∅}. Seja agora z ∈ Ω, definido o valor de fi (z) e fj0 (z), queremos definir o valor da fun¸c˜ao I em z. Uma poss´ıvel alternativa para definir I(z), ser´a a m´edia aritm´etica dos valores fi (z) e fj0 (z) determinados pelo problema de minimiza¸c˜ao apresentado anteriormente. Veremos que, do ponto de vista computacional, essa ainda n˜ ao ´e uma boa op¸c˜ao. Note que poder´ıamos fazer o mesmo se tiv´essemos um n´ umero qualquer de coberturas de Ω. ´ preciso agora fixar espa¸cos de fun¸c˜oes nos quais gostar´ıamos de fazer a busca por fun¸c˜oes f que E ´ razo´ minimizem (2.1). E avel que o conjunto escolhido carregue alguma informa¸c˜ao de Z \ Ω. Sendo assim, nada mais natural do que pegar “peda¸cos” da imagem intacta para definir bases para nossos espa¸cos de busca. Ou seja, para cada Bi pertencente `a cobertura P de Ω e fi : Bi → [0, 255] ∩ Z procuradas, gostar´ıamos de escolher conjuntos Dik ⊂ Z \ Ω,. k = 1, . . . , mi ,. onde mi ∈ N e considerar os espa¸cos vetoriais span({I|Dk } i. 6. k=1....mi. ),.

(17) determinando, assim, espa¸cos nos quais ser˜ao buscadas as fun¸c˜oes fi quePminimizem nosso prok k i ¯ blema1 . A partir de agora usaremos a nota¸c˜ao I|Di = φki , e portanto fi = m k=1 αi φi =< αi , φi >, k m m onde αi = (αi1 , . . . , αi i )T , e φ¯i = (φ1i , . . . , φi i )T . Dessa forma, a procura por cada fi , (i = 1, . . . , `) transforma-se na procura pelos coeficientes αi1 , . . . , αimi , e o mesmo vale para fi0 , i = 1, . . . , `0 . Defini¸ c˜ ao 4 O conjunto de todos os elementos φki , k = 1, ..., mi , i = 1, ..., `, ´e chamado comumente de “Dicion´ ario”. Teremos assim para as coberturas P , P 0 , o seguinte problema de minimiza¸c˜ao:   P Pmi k k Pm0j 0 k 0 k 1 + minα N1 {i,j|Bi ∩Bj0 ∩Ω6=∅} d|Bi ∩Bj0 ∩Ω ( k=1 αi φi , k=1 α j φ j ) P Pmi k k P Pm0i 0 k 0 k  1 α φ , I) + d| ( 0 ∩(Z\Ω)6=∅} d|B 0 ∩(Z\Ω) ( B ∩(Z\Ω) i i {i|B {i|B ∩(Z\Ω)6 = ∅)} i k=1 k=1 α i φ i , I) N2 i i i (2.3) −→ −→ →, − → − → −→ 0 0 0 onde α = (− α 1 α2 , ...., α` , α 1 , α 2 , ...., α `0 ). Apesar da express˜ ao carregada, podemos reescrever o problema acima em uma forma mais compacta e informativa. Para tanto, utilizaremos algumas conven¸c˜oes: para os conjuntos que intersectam a parte danificada da imagem, ou seja, os conjuntos {i|Bi ∩ (Z \ Ω) 6= ∅}, {i|Bi0 ∩ (Z \ Ω) 6= ∅}, denotaremos por NP e NP 0 suas cardinalidades. Indexaremos tamb´em seus elementos por {1, 2, . . . , NP } e {1, 2, . . . , NP0 }. Formalmente, escrevemos: NP := #{i|Bi ∩ (Z \ Ω) 6= ∅},. {i|Bi ∩ (Z \ Ω) 6= ∅} =: {i1 , . . . , iNP 0 },. NP 0 := #{i|Bi0 ∩ (Z \ Ω) 6= ∅},. {i|Bi0 ∩ (Z \ Ω) 6= ∅} =: {j 1 , . . . , j NP 0 },. Usaremos tamb´em nota¸c˜ oes semelhantes para o conjunto de ´ındices que correspondem a elementos das duas parti¸c˜ oes que se intersectam. Isto ´e: NP,P 0 := #{(i, j)|Bi ∩ Bj0 ∩ Ω 6= ∅},. {(i, j)|Bi ∩ Bj0 ∩ Ω 6= ∅} =: {(a1 , b1 ) . . . , (aNP,P 0 , bNP,P 0 )},. Nossas pr´ oximas conven¸c˜ oes referem-se `a cardinalidade da intersec¸c˜ao dos Bi e Bi0 com a parte intacta (Z \Ω) e ` a indexa¸c˜ ao dessa intersec¸c˜ao por um subconjunto dos n´ umeros naturais. A seguir, temos a escrita formal dessa descri¸c˜ ao: Ni := #(Bi ∩ (Z \ Ω)), Ni0 := #(Bi0 ∩ (Z \ Ω)),. i Bi ∩ (Z \ Ω) =: {x1i , . . . , xN i }. 1. N0. (Bi0 ∩ (Z \ Ω)) =: {x0 i , . . . , x0 i i },. 1. Note que isso cria um problema: As fun¸co ˜es da base estar˜ ao todas definidas em dom´ınios diferentes da f . Para resolver isso, basta escolher para os dom´ınios das fun¸co ˜es que formam a base, conjuntos que tenham uma correspondˆencia biun´ıvoca com o dom´ınio da solu¸ca ˜o. Com um abuso de linguagem, assumiremos que essa correspondˆencia j´ a est´ a estabelecida.. 7.

(18) Ni,j := #(Bi ∩ Bj0 ∩ Ω),. N. (Bi ∩ Bj0 ∩ Ω) =: {x1i,j , . . . , xi,ji,j }.. Tais conven¸c˜ oes nos permitir˜ ao chegar na express˜ao matricial de (2.3). Com vista a esse objetivo, examinemos agora cada um dos termos de (2.3): Por ora, esque¸camos a constante de escalamento N1 , e vejamos o termo X. d|Bi ∩Bj0 ∩Ω (. {i,j|Bi ∩Bj0 ∩Ω6=∅}. em (2.3), que pode ser reescrito como  X  X  {i,j|Bi ∩Bj0 ∩Ω6=∅}. x∈Bi ∩Bj0 ∩Ω. mi X k=1. m0. αik φki ,. j X. k. k. α 0 j φ0 j ). (2.4). k=1.  2  m0j m i X k k X   α0 j φ0 j (x)  . αik φki (x) − k=1. k=1. Ou em formato matricial,

(19)

(20)  P Pm0j 0 k 0 k 1 

(21)

(22)

(23)

(24) 2

(25)

(26) mi k k 1

(27)

(28)

(29)

(30) k=1 αi φi (xi,j ) − k=1 α j φ j (xi,j )

(31)

(32)

(33)

(34)  Pm Pm0j 0 k 0 k 2  k k 2 i

(35)

(36)  

(37)

(38)

(39)

(40)  k=1 αi φi (xi,j ) − k=1 α j φ j (xi,j ) 

(41)

(42) X

(43)

(44)  

(45)

(46) . 

(47)

(48) =

(49)

(50)

(51)

(52)  

(53)

(54) . 

(55)

(56) {i,j|Bi ∩Bj0 ∩Ω6=∅}

(57)

(58)

(59)

(60)   

(61)

(62) .

(63)

(64)  

(65)

(66) 0

(67)

(68) Pm Pmj 0 k 0 k Ni,j

(69)

(70)

(71)

(72) Ni,j k k i

(73)

(74) k=1 αi φi (xi,j ) − k=1 α j φ j (xi,j ) 2

(75)

(76)     1 i

(77)

(78) φ1 (x1 ) φ2i (x1i,j ) . . . φm αi1 i i,j i (xi,j )

(79)

(80) 2  α2 

(81)

(82)  φ1 (x2 ) i φ2i (x2i,j ) . . . φm

(83)

(84)  i i,j i (xi,j )   i  

(85)

(86)  X . . 

(87)

(88)   −  

(89)

(90)   . .

(91)

(92)      {i,j|Bi ∩Bj0 ∩Ω6=∅}

(93)

(94)  .

(95)

(96)  .  

(97)

(98) 1 Ni,j mi Ni,j i,j

(99)

(100) φi (xi,j ) φ2i (xN αimi i,j ) . . . φi (xi,j )

(101)

(102) 2   m0 1 

(103)

(104) 0 φ0 1j (x1i,j ) φ0 2j (x1i,j ) . . . φ0 j j (x1i,j ) α

(105)

(106)   j0 2 

(107)

(108)  1 m0j 2 2 2 0 0  φ0 (x2 )  α φ j (xi,j ) . . . φ j (xi,j )   j 

(109)

(110)

(111)

(112)  j i,j    . 

(113)

(114)

(115)

(116) .    .   . 

(117)

(118)

(119)

(120) .      .  

(121)

(122)

(123)

(124) .   0

(125)

(126) 0 m m N N N αj0 j

(127)

(128) φ0 1 (x i,j ) φ0 2 (x i,j ) . . . φ0 j (x i,j ) j. i,j. j. i,j. j. i,j. De forma mais compacta, temos que a express˜ao acima pode ser escrita como   X   αi 2 0 || φi (xi,j ) | −φj (xi,j ) || , α0 j 2 0 {i,j|Bi ∩Bj ∩Ω6=∅}. 8. 2. (2.5).

(129) onde  1 i φ1i (x1i,j ) φ2i (x1i,j ) . . . φm i (xi,j ) 2  φ1 (x2 )  i φ2i (x2i,j ) . . . φm  i i,j i (xi,j )    .   φi (xi,j ) =  , .     .   Ni,j Ni,j mi Ni,j 1 2 φi (xi,j ) φi (xi,j ) . . . φi (xi,j ). . φ0 1j (x1i,j ). φ0 2j (x1i,j ). ....  1  φ0 (x2 )  j i,j  0 . φj (xi,j ) =   .   . . φ0 2j (x2i,j ). .... . N. N. m0. φ0 j j (x1i,j ).  m0 φ0 j j (x2i,j )         m0. T. ,.   m0 T αj0 = αj0 1 , αj0 2 , . . . , α0 j j .. Recuperando a constante N1 , poderemos escrever (2.5) da seguinte maneira, 1 N1. X {i,j|Bi ∩Bj0 ∩Ω6=∅}. onde. Un,w =.

(130)

(131)  

(132)

(133) 2

(134)

(135) 

(136)

(137)

(138)

(139)  

(140)

(141) 

(142)

(143) φi (xi,j ) −φ0 (xi,j ) αi

(144)

(145) = 1

(146)

(147) H | −U α

(148)

(149) 2 , j 0

(150)

(151) 2 α j

(152)

(153) 2 N1 se k = an , para n = 1, . . . , NP,P 0 e k = 1, . . . , `. , c.c.. . φk (xi,j ), 0 ,. . φ0w (xi,j ), 0 ,. Hn,k =. se w = bn , para n = 1, . . . , NP,P 0 e w = 1, . . . , `0 . c.c. T α = α1 , α2 , . . . α` , α10 , α20 , . . . , α`0 .2. Por enquanto, essas observa¸c˜ oes s˜ ao suficientes para (2.5). Outra vez, esque¸camos nossa constante de escalamento e passemos para o termo mi X αik φki , I). d|Bi ∩(Z\Ω) (. X {i|Bi ∩(Z\Ω)6=∅)}. (2.6). k=1. De novo, substituindo a express˜ ao da fun¸c˜ao distˆancia, temos X. (. mi X ( αik φki (x) − I(x))2 ),. X. {i|Bi ∩(Z\Ω)6=∅} x∈Bi ∩(Z\Ω) k=1. que se expressa tamb´em como

(154)

(155)  1 ) 

(156)

(157)

(158)

(159) 2

(160)

(161) I(x i

(162)

(163)

(164)

(165)  I(x2i ) 

(166)

(167)

(168)

(169) mi X  

(170)

(171)

(172)

(173) X k 

(174)

(175)

(176)

(177) αi φi (xi ) −   . 

(178)

(179) .

(180)

(181)

(182)

(183)  

(184)

(185) . {i|Bi ∩(Z\Ω)6=∅}

(186)

(187) k=1

(188)

(189) Ni

(190)

(191) I(x )

(192)

(193) i. 2. Note que as entradas de H e U s˜ ao matrizes, e n˜ ao n´ umeros.. 9. N. φ0 1j (xi,ji,j ) φ0 2j (xi,ji,j ) . . . φ0 j j (xi,ji,j ). e, claramente, αi = αi1 , αi2 , . . . , αimi. 2. .

(194) Ou seja, recuperando N2 o termo (2.6) pode escrito como ||M α − w||22 /N2 , onde.  Mn,k =. φk (xi ), se k = in para n = 1, . . . , NP,P 0 e k = 1, . . . , `. , 0 , c.c. T  1 ), . . . , I(xNNP ) 1 w = I(x11 ), . . . , I(xN . ), . . . , I(x 1 NP NP. Uma an´alise semelhante pode ser feita para o termo 0. X. mi X k k α0 i φ0 i , I), d|Bi0 ∩(Z\Ω) (. {i|Bi0 ∩(Z\Ω)6=∅}. k=1. chegando assim numa express˜ ao na forma ||M 0 α0 − w0 ||22 /N2 , com 0 Mn,k =. se k = i0 n para n = 1, . . . , NP,P 0 e k = 1, . . . , `0 . φ0k (x), , 0 , c.c. T  N0 1 0 1 0 ), . . . , I(x0 NP ) . w0 = I(x0 11 ), . . . , I(x0 N ), . . . , I(x N 0 1 NP. . P. Conclu´ımos ent˜ ao que o problema (2.3) ´e na verdade um problema de m´ınimos quadrados na forma min ||Aα − b||22 , (2.7) α. sendo. .  M/N2 | 0 | M 0 /N2  , A= 0 H/N1 | −U/N1. .  w/N1 b = w0 /N1  . 0. At´e aqui, n˜ ao ter´ıamos nenhuma dificuldade para resolver (2.7). M´ınimos quadrados ´e um problema bastante conhecido e ´e poss´ıvel resolvˆe-lo de diversas maneiras. Uma delas inclusive, reduzindo-o ` a solu¸c˜ ao de um sistema linear. Isto ´e, gostar´ıamos de resolver o problema de minimizar a seguinte fun¸c˜ ao em α: f (α) =< Aα − b, Aα − b >= (Aα − b)T (Aα − b) = αT AT Aα − 2αT AT b + bT b Escrevendo a express˜ ao do gradiente de f temos ∇f (α) = AT Aα − 2AT b. E assim resolver´ıamos o sistema AT Aα = 2AT b para achar o ponto cr´ıtico da fun¸c˜ ao f . O obstaculo aqui ´e que, na pr´atica, as solu¸c˜oes densas desse problema se mostram muito pouco adequadas `as aplica¸c˜oes (aprofundaremos esse ponto no 10.

(195) Cap´ıtulo 3). Assim, quando gostar´ıamos de obter, entre as solu¸c˜oes α, aquela que fosse a mais esparsa poss´ıvel. No nosso problema em espec´ıfico, a esparsidade significa que queremos encontrar solu¸c˜oes fi que sejam mais “puras” poss´ıveis, ou seja, se pare¸cam ao m´aximo com o nosso dicion´ ario (Defini¸c˜ao 4). Ou seja, gostar´ıamos de minimizar a chamada norma 0 de α: ||α||0 = min {i|αi 6= 0}. Todavia, minimizar a norma 0 de um vetor, ´e provado ser N P -dif´ıcil (ver [GJ02]). Entretanto, podemos aproximar a solu¸c˜ ao desse problema resolvendo um outro, a saber (ver [FNW07]): min ||α||1 . Em resumo gostar´ıamos de obter a solu¸c˜ao para o problema bi-objetivo: min(||Aα − b||22 , ||α||1 ).. (2.8). Para uma descri¸c˜ ao detalhada sobre otimiza¸c˜ao multiobjetivo e as diferentes t´ecnicas de resolu¸c˜ao, ver por exemplo [Sam11]. O problema (2.8) permite v´ arias formas de abordagem. A forma que elegemos para trata-lo ´e chamada m´ınimos quadrados penalizados (ver por exemplo [FNW07].) : min ||Aα − b||2 + λ||α||1 ,. λ ∈ (0, 1).. α∈Rn. (2.9). Note que (2.9) possui uma fun¸c˜ ao objetivo cont´ınua, por´em n˜ao diferenci´avel. Como mostrado em [FNW07]), fazendo a mudan¸ca de vari´aveis α = u − v, nosso problema se mostra equivalente a resolver um problema de programa¸c˜ ao quadr´atica com restri¸c˜oes de n˜ao-negatividade, ou seja 2. min ||A(u − v) − b|| + λ. u,v∈Rn. s.a. n X. (ui + vi ). (2.10). i=1. ui ≥ 0, vi ≥ 0,. i = 1, . . . , n.. Em [FNW07], o m´etodo do gradiente espectral projetado mostrou-se muito adequado para resolver (2.10). Essa abordagem est´ a entre os objetivos das nossas pr´oximas se¸c˜oes.. 2.1.1. Caso com um n´ umero qualquer de coberturas. Desenvolveremos aqui alguns detalhes importantes para a defini¸c˜ao da fun¸c˜ao objetivo quando nosso n´ umero de coberturas ´e ng ≥ 0. Supondo que cada uma de nossas coberturas Pi sejam formadas por `i conjuntos, isto ´e, Pi = {Bi,1 , Bi,2 , . . . , Bi,`i } para i = 1, 2, 3, . . . , ng , como podemos generalizar o c´ alculo da nossa fun¸c˜ ao objetivo em (2.1)? Usando a linguagem da se¸c˜ ao anterior, definamos para duas coberturas P e P 0 quaisquer entre P1 , . . . , Png a seguinte fun¸c˜ ao: m0. 0. ΨP,P 0 (α, α ) =. X. (. {i,j|Bi ∩Bj0 ∩Ω6=∅}. X. mi j X X k k α0 j φ0 j (x))2 ) ( αik φki (x) −. x∈Bi ∩Bj0 ∩Ω k=1. 11. k=1.

(196) Note que ΨP,P 0 j´ a apareceu em (2.3). Em palavras, seu efeito ´e calcular a distˆancia, sujeita ` as 0 0 coordenadas α, α , de todas as fun¸c˜ oes fi , fj que se intersectam na regi˜ao Ω. Definimos tamb´em a fun¸c˜ao: mi X X X ( ( αik φki (x) − I(x))2 ) ΨP (α) = {i|Bi ∩(Z\Ω)6=∅} x∈Bi ∩(Z\Ω) k=1. J´a ΨP calcula a distˆ ancia entre as fun¸c˜oes fi definidas nos conjuntos da parti¸c˜ao P e a regi˜ ao Z \ Ω. Note que, com essa nota¸c˜ ao, podemos reescrever nosso problema de m´ınimos quadrados (2.3) da u ´ltima se¸c˜ ao como: (2.11) min ΨP1 + ΨP1 ,P2 + ΨP2 Agora, para generalizarmos 2.11, apenas estenderemos nossa express˜ao para a express˜ ao do problema geral, como: min α. ΨP1 + ΨP1 ,P2 + ΨP2 + ΨP2 ,P3 + ΨP3 + ΨP3 ,P4 + . . .. Seguindo os mesmo passos da se¸c˜ ao anterior, n˜ao ´e dif´ıcil mostrar que continuaremos chegando num problema na forma: n X 2 ¯ ¯ minn ||A(u − v) − b|| + λ (¯ ui + v¯i ) u ¯,¯ v ∈R (2.12) i=1 s.a u ¯i ≥ 0, v¯i ≥ 0, i = 1, . . . , n, ¯ ¯b, u com A, ¯, v¯, generalizando os correspondentes vetores e matrizes da se¸c˜ao anterior.. 2.2. O m´ etodo do gradiente espectral projetado. O m´etodo do Gradiente Espectral Projetado foi introduzido em [BMR09] e combina o m´etodo cl´assico de gradiente projetado com dois ingredientes: o passo de Barzilai- Borwein [BB88] e a busca linear n˜ ao-mon´ otona de Grippo, Lampariello, e Lucidi [GLL86]. Na u ´ltima d´ecada, o SPG foi utilizado com sucesso em diversas aplica¸c˜oes pr´aticas. Dentre elas destacamos a resolu¸c˜ao dos problemas de otimiza¸c˜ ao associados a m´aquinas de suporte vetorial (ver, por exemplo, [CEGLJ09], [SZZ05]), ao c´ alculo de pertuba¸c˜ oes condicionais n˜ao-lineares ´otimas (ver, por exemplo, [Lim]), e a compressive sensing (ver por exemplo [VDBF08], [FNW07]) dentre outros. O m´etodo do Gradiente Espectral Projetado (SPG) (do inglˆes Spectral Projected Gradient) aplica-se ao problema Min f (x) sujeita a x ∈ Ω onde f : Rn → R ´e cont´ınua e diferenci´avel e Ω ´e um conjunto convexo. Por utilizar apenas informa¸c˜ao de primeira ordem e precisar de uns poucos vetores de tamanho n na sua implementa¸c˜ ao, o SPG ´e adequado para problemas de grande porte. A eficiˆencia do m´etodo est´a diretamente relacionada ` a existˆencia de uma forma eficiente de projetar um ponto arbitr´ario x ∈ Rn no conjunto convexo Ω. As itera¸c˜ oes do m´etodo SPG s˜ ao da forma xk+1 = xk + αk dk onde dk = PΩ (xk − λk ∇f (xk )) − xk e αk ´e tal que xk+1 satisfaz a condi¸c˜ ao de Armijo n˜ao mon´otona dada por f (xk+1 ) ≤ fmax + αk γarm ∇f (xk )T dk . 12. (2.13).

(197) Na determina¸c˜ ao de dk , PΩ (.) representa a proje¸c˜ao Euclideana no conjunto convexo Ω, i.e, 1 PΩ (¯ x) = argmin ||x − x ¯||22 2. sujeita. a. x∈Ω. e λk ´e o passo espectral dado por (. (. λk = max λmin , min. sTk−1 sk−1 sTk−1 yk−1. )) , λmax. ,. (2.14). onde, sk−1 = xk − xk−1 , yk−1 = ∇f (xk ) − ∇f (xk−1 ) e 0 ≤ λmin ≤ λmax ≤ +∞ s˜ao salvaguardas dadas. Na pr´ atica, utiliza-se λmin = 10−30 e λmax = 1030 . Em (2.13) γarm > 0 ´e a constante de Armijo (tipicamente γarm = 10−4 ) e fmax = max{f (xk−j )|0 ≤ j ≤ min{k, M − 1}}.. (2.15). Acima, M ≥ 1 ´e uma constante que regula a n˜ao monotonicidade da busca linear. A condi¸c˜ ao (2.15) garante decr´escimo suficiente a cada M itera¸c˜oes. Se M = 1 ent˜ao (2.15) coincide com o crit´erio cl´assico de Armijo. Em [BMR00] sugere-se M = 10 como valor default. O passo espectral λk definido em (2.14) relaciona o m´etodo SPG com os m´etodos do tipo secante. Os m´etodos quasi-Newton [DJS96] do tipo secante obedecem a f´ormula xk−1 = xk + αk dk com dk = Bk−1 ∇f (xk ),. (2.16). onde as matrizes Bk satisfazem as equa¸c˜oes secante Bk sk−1 = yk−1 .. (2.17). Naturalmente, o custo de resolver o sistema linear (2.16) ´e o fator decisivo do custo da itera¸c˜ ao dos m´etodos quasi-Newton e a escolha da matriz Bk pode fazer o m´etodo estar t˜ao pr´oximo de um m´etodo do tipo gradiente ou do m´etodo de Newton quanto desejado. Se impusermos Bk = τk I, com τk ∈ R, ent˜ ao a equa¸c˜ ao secante (2.17) fica τk sk−1 = yk−1 . Esta equa¸c˜ao muito provavelmente n˜ao ter´a solu¸c˜ ao, mas se considerarmos a solu¸c˜ao de quadrados m´ınimos teremos τk = sTk−1 yk−1 /sTk−1 sk−1 . Ou seja, Bk = τk I e dk = λ¯k ∇f (xk ) com λ¯k = 1/τk = sTk−1 sk−1 /sk−1 yk−1 . O passo espectral λk em (2.14) ´e a proje¸c˜ ao de λ¯k no intervalo [λmin , λmax ]. Assim, o passo espectral proporciona ao SPG algum tipo de informa¸c˜ ao de segunda ordem com custo m´ınimo. O uso da busca linear n˜ ao mon´otona do tipo Armijo (no lugar da vers˜ao mon´otona) faz com que a primeira tentativa de passo na dire¸c˜ao dk que, como acabou de ser explicada, carrega alguma informa¸c˜ao de segunda ordem, tenha mais chances de ser aceita. Sejam M ≥ 1, 0 < λmin ≤ λmax < +∞, 0 < σ1 ≤ σ2 < 1, γarm > 0 e  > 0 parˆametros dados. O m´etodo come¸ca com x0 ∈ Ω e λ0 ∈ [λmin , λmax ] arbitr´arios. Dados xk ∈ Ω e λk ∈ [λmin , λmax ], o algoritmo que segue descreve como obter xk+1 e λk+1 e como terminar o processo. Algoritmo Passo 1. Crit´erio de parada 13.

(198) Se ||PΩ (xk − ∇f (xk )) − xk || ≤ , pare declarando que xk ´e ponto estacion´ario. Passo 2. Backtraking Passo 2.1. Calcule dk = PΩ (xk − λk ∇f (xk )) − xk e fa¸ca α ← 1. Passo 2.2. Se f (xk + αdk ) ≤. max. {0≤j≤min{k,M −1}}. f (xk−j ) + γarm α∇f (xk )T dk. defina αk = α, xk+1 = xk + αdk , sk = xk+1 − xk , yk = ∇f (xk+1 ) − ∇f (xk ) e v´a para o Passo 3. Caso contr´ario, defina αnew ∈ [σ1 α, σ2 α], fa¸ca α ← αnew e volte ao Passo 2.2. Passo 3. C´ alculo do passo espectral. T Se sk yk ≤ 0, defina λk+1 = λmax . Sen˜ao, defina, λk+1 = max{λmin , min{sTk sk /sTk yk , λmax }} e volte ao Passo 1. No Passo 2.2, o c´ alculo de αnew utiliza uma interpola¸c˜ao quadr´atica unidimensional com salvaguarda tomando o passo αnew = α/2 quando o minimizador da quadr´atica unidimensional fica fora do intervalo [σ1 , σ2 α]. Note que o processo de salvaguarda baseia-se em [σ1 , σ2 α] no lugar da escolha usual [σ1 α, σ2 α]. Isto significa que, quando a interpola¸c˜ao tende a rejeitar 90% (para σ1 = 0.1) do intervalo original [0, 1], julga-se que a previs˜ao n˜ao ´e confi´avel e o processo mais conservativo de bissec¸c˜ ao ´e utilizado. Experimentos num´ericos em [BMR00] mostraram que, para algumas classes de problemas, este procedimento obt´em melhores resultados do que o procedimento cl´assico. O algoritmo seguinte descreve a busca linear em detalhe. Algoritmo Passo 1. Calcule fmax = max{f (xk−j )|0 ≤ j ≤ min{k, M − 1}} e δ = ∇f (xk )T dk e fa¸ca α ← 1. Passo 2. Fa¸ca x+ ← xk + αdk . Se f (x+ ) ≤ fmax + γarm αδ fa¸ca αk = α e termine. Passo 3. Fa¸ca αtmp ← 12 α2 δ/(f (x+ ) − f (xk ) − αδ). Se αtmp ≥ σ1 e αtmp ≤ σ2 α, fa¸ca α ← αtmp . Caso contr´ario, fa¸ca α ← α/2. V´a para o Passo 2. A boa defini¸c˜ ao e a teoria de convergˆencia do SPG podem ser encontradas em [BMR00], onde tamb´em s˜ao descritos experimentos num´ericos relacionados `a aplica¸c˜ao do SPG a problemas de minimiza¸c˜ao em caixas. Em [BMR01] s˜ao mostrados experimentos num´ericos com uma fam´ılia de problemas de grande porte (com milh˜oes de vari´aveis e restri¸c˜oes) associados a aloca¸c˜ ao de pontos no plano. A extens˜ ao do SPG para o caso de proje¸c˜oes inexatas ´e apresentada em [BMR03] e a extens˜ao para problemas com restri¸c˜oes lineares foi introduzida em [ABMY05]. Para uma contextualiza¸c˜ ao hist´ orica do SPG e uma an´alise detalhada de suas variantes, veja [BMR09].. 2.3. Implementa¸ c˜ ao da fun¸c˜ ao objetivo e do gradiente da fun¸c˜ ao objetivo. Nesta se¸c˜ ao, apresentaremos um algoritmo que, dada uma imagem, uma regi˜ao danificada Ω e blocos reconstrutores, calcule o valor da fun¸c˜ao objetivo do problema (2.1). Apesar da precis˜ ao 14.

(199) e generalidade do nosso modo de apresenta¸c˜ao na Se¸c˜ao 2.1, esse n˜ao ´e um modo muito pr´ atico para expor uma implementa¸c˜ ao do nosso m´etodo. Sendo assim, se torna necess´ario especificar alguns parˆametros de modo a uniformizar os testes computacionais que desenvolveremos. Mas antes, definiremos um importante conceito usado ao longo dessa se¸c˜ao: Defini¸ c˜ ao 5 Chamamos de “bloco de tamanho t” uma fun¸c˜ ao ou matriz B tomando valores no conjunto [0, 255] ∩ Z definida num conjunto de pixels da forma {x, x + 1, . . . , x + (t − 1)} × {y, y + 1, . . . , y + (t − 1)}. O par ordenado pos(B) = (posx(B), posy(B)) = (x, y) ´e dito a “posi¸c˜ ao do bloco B” na imagem I. Alguns parˆ ametros agora ser˜ ao fixados. O primeiro deles ´e o n´ umero de elementos do dicion´ ario: Defini¸ c˜ ao 6 Assumiremos que todas as nossas fun¸co ˜es procuradas fi , fj0 , i = 1, 2, . . . , `, j = 1, 2, . . . , `0 , definidas na se¸c˜ ao anterior ser˜ ao blocos de um tamanho pr´e-fixado t. Assumiremos tamb´em que ser´ a dada uma lista de pares ordenados, com as posi¸c˜ oes de cada um desses blocos, isto ´e: (posx(B1 ), posy(B1 )), (posx(B2 ), posy(B2 )), . . . , (posx(B`1 +`2 +`3 +...+`g ), posy(B`1 +`2 +`3 +...+`g )). Observa¸c˜ ao: Por uniformidade na apresenta¸c˜ ao, nos referiremos aos blocos, apenas citando seus ´ındices. Ou seja, a lista supracitada ser´ a dada como: (posx(1), posy(1)), (posx(2), posy(2)), . . . , (posx(`1 + `2 + `3 + ... + `g ), posy(`1 + `2 + `3 + ... + `g )). Defini¸ c˜ ao 7 Por conven¸c˜ ao assumiremos tamb´em que m1 = m2 = · · · = m` = m01 = m02 = ∀i = · · · = m0`0 = M . Al´em disso, φ1i = φ2i = · · · = φM φ0 1j = φ0 2j = · · · = φ0 M j = Φj i = Φi , 1, 2, . . . , `, j = 1, 2, . . . , `0 . Em palavras, pedimos que o dicion´ ario seja o mesmo para todos os blocos B1 , B2 , . . . , B`+`0 . Sendo assim, nosso dicion´ ario ser´ a o conjunto: {Φ1 , Φ2 , . . . , ΦM }. Defini¸ c˜ ao 8 Chamaremos de imagem danificada a fun¸c˜ ao R : Z → [−1, 255] definida por:  I(i, j), se (i, j) ∈ Z \ Ω R(i, j) = −1, se (i, j) ∈ Ω. Para implementar nossa fun¸c˜ ao objetivo e o gradiente da mesma, precisaremos de algumas rotinas auxiliares. O objetivo de cada uma dessas rotinas ficar´a claro em breve. Por ora, apenas daremos suas implementa¸c˜ oes e chamaremos aten¸c˜ao para o fato de que os parˆametros t, λ, nl, nc ser˜ao sempre dados como entrada. Para facilitar a nota¸c˜ ao em que escreveremos os c´odigos, faremos a seguinte defini¸c˜ao: Defini¸ c˜ ao 9 Seja A uma matriz qualquer e b um vetor, escreveremos A(i1 : i2 , j1 : j2 ) para representar a submatriz de A formada pelas entradas A(i1 , j1 ), A(i1 + 1, j1 ), A(i1 + 2, j1 ), . . . , A(i2 , j1 ), A(i1 , j2 ), A(i1 + 1, j2 ) . . . , A(i2 , j2 ), . . . , A(i2 , j2 ) de A. Analogamente, b(i1 : i2 ), representa o “subvetor” de b formado por b(i1 ), b(i1 + 1), b(i1 + 2), b(i1 + 3), . . . , b(i2 ). A seguir, temos as descri¸c˜ oes e a implementa¸c˜ao de cada uma das rotinas: Rotina 1. Cria uma lista com a posi¸ca˜o de cada um dos blocos reconstrutores, calculando tamb´em a quantidade desses blocos e atribuindo um ´ındice a cada um deles. Essa rotina percorre a imagem construindo ng coberturas formadas por L blocos de tamanho t com um deslocamento de 2 pixels na 15.

(200) Rotina 1 Calculo L, posx e posy 1: input : ng , nl, nc, t, R; 2: output : L, posx, posy; 3: L ← 0; 4: desloc ← 0; 5: for k = 1, . . . , ng do 6: i←1 7: while i ≤ nl do 8: j←1 9: while j ≤ nc do 10: if min(R(i : min(i + t − 1, nl), j : min(j + t − 1, nc))) == −1) then 11: L ← L + 1; 12: posx(L) ← i; 13: posy(L) ← j; 14: end if 15: j ← j + desloc; 16: end while 17: i ← i + desloc; 18: end while 19: desloc ← desloc + 2; 20: end for. horizontal e na vertical de uma para outra. Para analisar a complexidade da Rotina 1, observe que temos trˆes la¸cos, com tamanhos de ng , nl, nc, e um c´alculo do m´ınimo aninhado com complexidade t2 no pior caso. Tem-se no total O(ng × nl × nc × t2 ) opera¸c˜oes no pior caso.. Rotina 2. Nessa Rotina, calculamos duas matrizes: h e v. Cada elemento da matriz h associa a cada pixels da imagem o n´ umero de blocos que o sobrep˜oem. Como escolheremos entre 2 e 5 coberturas, h(i, j) ser´ a sempre limimtado superiormente por 5. Cada elemento da matriz multidimensional v, por sua vez, associa a cada pixel os ´ındices de todos os blocos que o sobrep˜ oem. Novamente aqui, temos trˆes la¸cos aninhados, com tamanhos respectivamente de L, t, t, totalizando assim um n´ umero total de opera¸c˜ oes O(L × t2 ). Rotina 3. Cria uma lista com a posi¸c˜ao dos pixels que s˜ao sobrepostos por algum dos blocos reconstrutores, ou seja, cria uma lista com os pixels (i, j) tais que h(i, j) 6= 0. Essa lista ´e armazenada nos vetores pixhx e pixhy, e a quantidade ´e armazenada na vari´avel N pixh. Novamente aqui n˜ ao ´e dif´ıcil concluir que na rotina 3 temos uma ordem complexidade de O(nl × nc).. Rotina 4. Calcula os blocos que far˜ ao parte do dicion´ario, e a quantidade de blocos no mesmo. Chamaremos de tam dic a quantidade de blocos no dicion´ario. Essa rotina ser´a implementada usando a regi˜ ao conhecida da imagem. Observamos aqui que essa rotina usa todos os blocos do dicion´ario. Na pr´ atica por´em, usamos apenas alguns blocos da regi˜ao conhecida da imagem. (ver cap´ıtulo 3) Seguindo o mesmo racioc´ınio e contando a quantidade de la¸cos no algoritmo, chegamos a complexidade O(nl × nc × t2 ). Note que nesse caso, a opera¸c˜ao da linha 5, conta como um la¸co 16.

(201) Rotina 2 Calculando h e v 1: input : L, posx, posy; 2: output : h, v; 3: h ← 0 4: for k = 1, . . . , L do 5: for i = posx(k), . . . , posx(k) + t − 1 do 6: for j = posy(k), . . . , posy(k) + t − 1 do 7: h(i, j) ← h(i, j) + 1; 8: v(i, j, h(i, j)) ← k; 9: end for 10: end for 11: end for. Rotina 3 Lista pixhx, pixhy e a quantidade N pixh. 1: input : nl, nc, h 2: output : N pixh, pixhx, pixy 3: N pixh ← 0 4: for i = 1, . . . , nl do 5: for j = 1, . . . , nc do 6: if h(i, j) 6= 0 then 7: N pixh ← N pixh + 1; 8: pixhx(N pixh) ← i; 9: pixhy(N pixh) ← j; 10: end if 11: end for 12: end for. Rotina 4 Calculando a matriz tridimensional phi e sua quantidade de blocos tam dic. 1: input : nl, nc, t, tam dic; 2: output : phi; 3: for i = 1, . . . , nl do 4: for j = 1, . . . , nc do 5: bloco ← R(i : min(i + t − 1, nl), j : min(j + t − 1, nc)); 6: if min(bloco) 6= −1 then 7: tam dic ← tam dic + 1; 8: phi(:, :, tam dic) ← bloco; 9: end if 10: end for 11: end for. 17.

(202) de tamanho t2 .. Rotina 5. Calcula a fun¸c˜ ao block. Essa fun¸c˜ao faz a combina¸c˜ao linear dos blocos que formam a base e armazena numa matriz tridimensional. A rotina 5 tem complexidade O(L × t2 ). Rotina 5 Calculando a fun¸c˜ ao block. 1: input : n, x, L, tam dic, t, phi 2: output : bloco 3: a ← x(1 : n/2); 4: b ← x(n/2 + 1 : n); 5: α ← a − b; 6: for i = 1, . . . , t do 7: for j = 1, . . . , t do 8: for l = 1, . . . , L do 9: bloco(i, j, l) ← 0; 10: end for 11: end for 12: end for 13: for k = 1 . . . , L do 14: blocos(:, :, k) ← phi(:, :, 1 : tam dic) ∗ α((k − 1) ∗ tam dic + 1 : k ∗ tam dic); 15: end for. Agora, podemos implementar nossa fun¸c˜ao objetivo como apresentado no Algoritmo 6. Para analisar a ordem de complexidade da nossa fun¸c˜ao objetivo, observe que o la¸co da linha 13 tem, para cada l, h(pixh(l), pixy(l)) opera¸c˜oes. No entanto, a fun¸c˜ao h ´e limitada superiormente pelo n´ umero ng , o que significa que, no pior caso, temos ng opera¸c˜oes no la¸co da linha 13. Assim, contando os la¸cos das linhas 11, 13 e 22, temos uma quantidade de opera¸c˜oes da ordem de N pixh × ng . Na linha 5, temos a quantidade de opera¸c˜oes dada pela fun¸c˜ao block, ou seja, O(L × t × t). J´ a na linha 35, temos O(n) opera¸c˜ oes. Totalizamos assim, para cada execu¸c˜ao da fun¸c˜ao objetivo, uma complexidade de execu¸c˜ ao de O(N pixh × ng + L × t × t + n). Ou seja, a complexidade na execu¸c˜ao da nossa fun¸c˜ ao objetivo depende da quantidade de pixels na nossa regi˜ao Ω, expressa pela grandeza N pixh, da quantidade de coberturas ng que escolhemos para “rodar” nosso m´etodo e do tamanho de blocos t que escolhemos. Adiantamos que, no m´etodo de otimiza¸c˜ao usado nessa disserta¸c˜ao, apenas o gradiente da fun¸c˜ao objetivo ser´ a necess´ ario. Aproveitamos para apresentar no Algoritmo 7 / 8 o pseudoc´ odigo do gradiente. A complexidade na execu¸c˜ ao do gradiente se diferencia da complexidade da pr´opria fun¸c˜ ao objetivo f principalmente pelas opera¸c˜oes realizadas nas linhas 20, 21, 37, 38, 39 e 40. Sendo que em cada linha temos uma complexidade de opera¸c˜oes da ordem de O(tam dic). Sendo assim, nos la¸cos das linhas 14 e 25 temos um grau de complexidade da ordem de ng × tam dic, onde ng vem da 18.

(203) Algoritmo 6 Fun¸c˜ ao Objetivo 1: Input : n, x, tam dic, t, nl, nc, v, R, L, phi, h, N pixh, pixhx, pixhy, posx, posy, λ; 2: Output : f ; 3: a ← (x1 , x2 , . . . , xn/2 ); 4: b ← (xn/2+1 , xn/2+2 , . . . , xn ); 5: blocos ← block(n, x, L, tam dic, t, phi); 6: f parc1 ← 0; 7: f parc2 ← 0; 8: f ← 0; 9: N1 ← 0; 10: N2 ← 0; 11: for l = 1, . . . , N pixh do 12: i ← pixhx(l), j ← pixhy(l); 13: if R(pixh(l), pixy(l)) 6= −1 then 14: for k = 1, . . . , h(pixh(l), pixy(l)) do 15: bind ← v(i, j, k); 16: ipos ← i − posx(bind) + 1; 17: jpos ← j − posy(bind) + 1; 18: f parc1 ← f parc1 + (blocos(ipos, jpos, bind) − R(pixh(l), pixy(l)))2 ; 19: N1 ← N1 + 1; 20: end for 21: else 22: for k = 1, . . . , h(pixh(l), pixy(l)) − 1 do 23: bind1 ← v(i, j, k1); 24: ipos1 ← i − posx(bind1) + 1; 25: jpos1 ← j − posy(bind1) + 1; 26: bind2 ← v(i, j, k + 1); 27: ipos2 ← i − posx(bind2) + 1; 28: jpos2 ← j − posy(bind2) + 1; 29: f parc2 ← f parc2 + (blocos(ipos1, jpos1, bind1) − blocos(ipos2, jpos2, bind2))2 ; 30: N2 ← N2 + 1; 31: end for 32: end if 33: end for P 34: f ← f parc1/N1 + f parc2/N2 + λ ∗ ( ni=1 (a(i) + b(i)));. 19.

(204) Algoritmo 7 Gradiente da Fun¸c˜ ao - Parte 1 1: Input : n, x, tam dic, t, nl, nc, v, R, L, phi, h, N pixh, pixhx, pixhy, posx, posy, λ; 2: Output : ∇f (x); 3: a ← (x1 , x2 , . . . , xn/2 ); 4: b ← (xn/2+1 , xn/2+2 , . . . , xn ); 5: blocos ← block(n, x, L, tam dic, t, phi); 6: gparc1(1 : n/2) ← 0; 7: gparc2(1 : n/2) ← 0; 8: g(1 : n) ← 0; 9: N1 ← 0; 10: N2 ← 0; 11: CONTINUA... limita¸c˜ao superior de h(i, j). Portanto, a complexidade de execu¸c˜ao na avalia¸c˜ao do gradiente da nossa fun¸c˜ao objetivo ´e da ordem de O(N pixh × ng × tam dic + L × t2 + n), onde L × t2 corresponde `a complexidade de execu¸c˜ ao da fun¸c˜ ao block na linha 5 do pseudo-c´odigo do gradiente.. 20.

(205) Algoritmo 8 Gradiente da Fun¸c˜ ao - Parte 2 12: for l = 1, . . . , N pixh do 13: i ← pixhx(l), j ← pixhy(l); 14: if R(i, j) 6= −1 then 15: for k = 1, . . . , h(i, j) do 16: bind ← v(i, j, k); 17: ipos ← i − posx(bind) + 1; 18: jpos ← j − posy(bind) + 1; 19: indvar ← (bind − 1) ∗ tam dic; 20: temp ← 2 ∗ (blocos(ipos, jpos, bind) − Rij); 21: phi temp ← (phi(ipos, jpos, 1), phi(ipos, jpos, 2), . . . , phi(ipos, jpos, tam dic)); 22: gparc1(indvar + 1 : indvar + tam dic) ← gparc1(indvar + 1 : indvar + tam dic) + temp ∗ phi; 23: N1 ← 0; 24: end for 25: else 26: for k = 1 : (h(i, j) − 1) do 27: bind1 ← v(i, j, k1 ); 28: ipos1 ← i − posx(bind1) + 1; 29: jpos1 ← j − posy(bind1) + 1; 30: indvar1 ← (bind1 − 1) ∗ tamb ase; 31: temp1 ← blocos(ipos1, jpos1, bind1); 32: bind2 ← v(i, j, k1 + 1); 33: ipos2 ← i − posx(bind2) + 1; 34: jpos2 ← j − posy(bind2) + 1; 35: indvar2 ← (bind2 − 1) ∗ tam dic; 36: temp2 ← blocos(ipos2, jpos2, bind2); 37: dif f ← 2 ∗ (temp1 − temp2); 38: phi temp1 ← phi(ipos1, jpos1, 1), phi(ipos1, jpos1, 2), . . . , phi(ipos1, jpos1, tam dic); 39: phi temp2 ← phi(ipos2, jpos2, 1), phi(ipos2, jpos2, 2), . . . , phi(ipos2, jpos2, tam dic); 40: gparc1(indvar1+1 : indvar1+tam dic) ← gparc1(indvar1+1 : indvar1+tam dic)+ dif f ∗ phi1; 41: gparc2(indvar2+1 : indvar2+tam dic) ← gparc2(indvar2+1 : indvar2+tam dic)+ dif f ∗ phi2; 42: N2 ← N2 + 1; 43: end for 44: end if 45: g(1 : n/2) = gparc1(1 : n/2)/N1 + gparc2(1 : n/2)/N2 ; 46: g(n/2 + 1 : n) = −g(1 : n/2); 47: g = g + λ/(max(N1 , N2 )); 48: end for. 21.

(206) 22.

(207) Cap´ıtulo 3. Experimentos computacionais Esse cap´ıtulo ter´ a como foco a an´ alise da influˆencia dos parˆametros phi, t, ng , e λ na imagem recuperada, assim como a apresenta¸c˜ ao dos resultados/imagens devolvidas pelo nosso m´etodo. Todos os experimentos deste cap´ıtulo foram conduzidos em um computador com processador Intel Xeon com 2.67GHz e 8GB de mem´ oria RAM, rodando o sistema operacional GNU/Linux. As implementa¸c˜ oes foram feitas em Matlab vers˜ao R2013a (8.1.0.604) 64-bit (glnxa64).. Lembramos que no cap´ıtulo 1, definimos a imagem recuperada calculando a m´edia aritm´etica dos pixels das camadas que sobrep˜ oem cada um dos pixels (i, j) da regi˜ao desconhecida Ω. Propomos aqui, um novo modo de definir a imagem recuperada: escolheremos uma cobertura em espec´ıfico, e definiremos os pixels dessa cobertura ap´os a resolu¸c˜ao do problema de otimiza¸c˜ ao, como os pixels da regi˜ ao recuperada. No nosso caso, escolhemos como cobertura padr˜ao, a primeira cobertura. Experimentos num´ericos e visuais mostraram a qualidade da imagem recuperada com essa nova defini¸c˜ ao em alguns casos. Nas an´alises apresentadas nesse cap´ıtulo, a nota¸c˜ao utilizada ´e a seguinte: • f (x∗ ): Valor da fun¸c˜ ao objetivo no ponto ´otimo x∗ ; • M Q: Valor da express˜ ao de m´ınimos quadrados aplicada no ponto ´otimo: ||Ax∗ − b||22 ; • ||x∗ ||1 : Norma 1 do ponto ´ otimo; • ||x∗ ||0 : Norma 0 do ponto ´ otimo; • L: Quantidade total de blocos gerados pelo m´etodo; • t: Tamanho de cada bloco; • iter : Quantidade total de itera¸co˜es executadas pelo m´etodo de otimiza¸c˜ao de gradiente espectral projetado; • #f cnt: Quantidade total de avalia¸c˜oes da fun¸c˜ao objetivo no m´etodo de otimiza¸c˜ao; • ||gp ||∞ : Norma infinita do gradiente espectral projetado (tamanho de cada passo no m´etodo de otimiza¸c˜ ao); 23.

(208) • psnr : Medida psnr, definida por psnr(x, x∗ ) = 10 × log10 x∗. . 1 1 ||x−x∗ ||22 n. . , onde x ´e a imagem. recuperada e ´e uma imagem de referˆencia. Em geral, quanto maior o valor da medida psnr, maior a qualidade da imagem recuperada.1 , • psnrm : Medida psnr, em que a imagem recuperada consiste na m´edia dos pixels das camadas; • psnrc : Medida psnr, em que a imagem recuperada consiste nos pixels da camada 1. Seguiremos agora na analise da rela¸c˜ao entre os diferentes parˆametros phi, t, ng , λ na qualidade da imagem reconstru´ıda representada pela medida psnr. Usamos o crit´erio de parada ||PΩ (xk − ∇f (xk )) − xk || ≤ 10−6 . Ser˜ao apresentadas tabelas com os dados num´ericos e gr´aficos para a medida psnr em fun¸c˜ ao de cada um dos parˆ ametros livres: phi, t, ng , λ e ao final de cada se¸c˜ao ´e apresentada a imagem com medida psnr mais alta. As imagens geradas com os outros valores de parˆametros com psnr menor, assim como qualquer outro dado que o leitor possa se interessar relativo a presente disserta¸c˜ ao, podem ser solicitadas pelo e-mail: almeida@ime.usp.br.. 3.1. A escolha do dicion´ ario. ´ importante salientar aqui que a escolha certa do dicion´ario ´e crucial para a qualidade da E imagem recuperada e uma aten¸c˜ ao especial ´e dedicada `a analise da melhor escolha do dicion´ ario em problemas de basis pursuit. Existem dois paradigmas centrais que s˜ao usualmente adotados nesse tipo de escolha: o primeiro explora propriedades matem´atica do modelo, fazendo a decomposi¸c˜ao esparsa usando como dicion´ ario fun¸c˜oes matem´aticas como wavelts, curvelets, contourlets. A segunda abordagem usa t´ecnicas como machine learning para escolher os elementos do dicion´ ario baseando-se em um conjunto de treinamento, que em geral carrega informa¸c˜oes pr´evias do sinal ou imagem a ser reconstru´ıda. Para um melhor aprofundamento de alguns procedimentos de escolha de dicion´arios em problemas de representa¸c˜ao esparsa; ver, por exemplo, [RBE10, AEB06]. Nesse trabalho faremos a escolha do dicion´ario, primeiramente, inspirados na segunda abordagem citada. Escolheremos os blocos que formam o dicion´ario de maneira que os mesmos tragam alguma informa¸c˜ ao das regi˜ oes intactas da imagem. Tais regi˜oes devem ser potencialmente boas para preencher a regi˜ ao Ω. Note que aqui h´a um fator altamente subjetivo na escolha dessas regi˜ oes. Por exemplo, para escolher o dicion´ ario quando Ω est´a contido totalmente numa regi˜ao da imagem com uma u ´nica textura2 , basta selecionarmos blocos daquela textura (bons resultados foram obtidos selecionando entre 4 e 8 blocos); a Figura 3.1 exemplifica esse tipo de caso. Quando Ω atravessa mais de uma textura na imagem, ´e razo´avel que escolhamos blocos para formar um dicion´ ario que carregue informa¸c˜oes tanto da fronteira de encontro entre as duas texturas como tamb´em de cada uma das texturas separadamente. Em resumo, nosso dicion´ario deve conter informa¸c˜oes (blocos) de todas as regi˜ oes que s˜ao atravessadas por Ω. A Figura 3.2 exemplifica este caso para a escolha do dicion´ ario. 1. Para um detalhamento sobre a medida psnr e algumas outras medidas de qualidade em processamento de imagens; ver por exemplo [EF95]. 2 Uma textura ´e definida basicamente como as diferentes regi˜ oes de grande extens˜ ao da imagem. Por exemplo, na Figura 3.5 temos as texturas T1, T2 e T3. 24.

(209) Figura 3.1: Regi˜ ao Ω (surfista a esquerda) a ser retirada. Figura 3.2: Exemplo de escolha do dicion´ario quando a Ω atravessa mais de uma regi˜ao. 25.

(210) Al´em disso, observou-se na pr´ atica que nem sempre essa escolha ´e suficiente para um bom resultado final, sendo necess´ ario acrescentarmos o que chamaremos de “blocos de ajuste”. Esses blocos adicionais tem o papel de ajustar a propaga¸c˜ao de linhas que cheguem na fronteira de Ω para o interior de Ω. Em alguns casos ´e not´avel a diferen¸ca a imagem recuperada incluindo tais blocos no dicion´ ario para com a imagem recuperada sem os mesmos; ver Figuras 3.3, 3.4.. Figura 3.3: Imagem poste a ser adulterada. Os “blocos de ajuste” nos casos aqui apresentados ser˜ao matrizes nulas com u ´nica linha ou coluna n˜ao nula e com valor 1. Por exemplo, com t = 4, poder´ıamos ter o seguinte conjunto de blocos de ajuste acrescentado ao dicion´ario:         0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1         1 0 0 0, 0 1 0 0, 0 0 1 0, 0 0 0 1. 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 Como esses blocos pretendem propagar linhas chegando em Ω, se torna necess´ario que adicionemos esses blocos adicionais de maneira que as linhas n˜ao nulas representem os ˆangulos de encontros das linhas da figura que interceptam com a fronteira de Ω. Como exemplo considere a Figura 3.2 e note que existem linhas chegando em Ω que predominantemente s˜ao horizontais, isso nos sinaliza que acrescentando ao dicion´ ario os blocos que s˜ao matrizes nulas com apenas uma linha n˜ao nula com valor 1, podemos melhorar a qualidade da nossa imagem, o que de fato acontece, como veremos nas pr´oximas se¸c˜ oes.. 3.2. Rela¸ c˜ ao de ng e psnr. Nessa se¸c˜ ao, vamos analisar como o n´ umero de coberturas altera a qualidade da imagem recuperada. Na Figura 3.1, que daqui em diante chamaremos de “Waves”, fixaremos primeiramente 26.

(211) (a) Imagem “poste” processada sem blocos adicionais.. (b) Imagem “poste” processada com blocos adicionais.. Figura 3.4: Manipula¸c˜ ao de imagem, sem blocos adicionais e com blocos adicionais.. Figura 3.5: Texuras T1, T2 e T3 de uma imagem gen´erica.. 27.

Referências

Documentos relacionados

A pesquisa pode ser caracterizada como exploratória e experimental em uma primeira etapa (estudo piloto), na qual foram geradas hipóteses e um conjunto de observáveis, variáveis

O objetivo do curso foi oportunizar aos participantes, um contato direto com as plantas nativas do Cerrado para identificação de espécies com potencial

No final, os EUA viram a maioria das questões que tinham de ser resolvidas no sentido da criação de um tribunal que lhe fosse aceitável serem estabelecidas em sentido oposto, pelo

O 6º ano do Mestrado Integrado em Medicina (MIM) é um estágio profissionalizante (EP) que inclui os estágios parcelares de Medicina Interna, Cirurgia Geral,

Quando conheci o museu, em 2003, momento em foi reaberto, ele já se encontrava em condições precárias quanto à conservação de documentos, administração e organização do acervo,

3259 21 Animação e dinamização de actividades lúdico-expressivas - expressão musical 50 3260 22 Animação e dinamização de actividades lúdico-expressivas -

De seguida, vamos adaptar a nossa demonstrac¸ ˜ao da f ´ormula de M ¨untz, partindo de outras transformadas aritm ´eticas diferentes da transformada de M ¨obius, para dedu-

Neste tipo de situações, os valores da propriedade cuisine da classe Restaurant deixam de ser apenas “valores” sem semântica a apresentar (possivelmente) numa caixa