avaliaÇÃo do desempenho dos ambientes r e julia com uso de...

Download AVALIAÇÃO DO DESEMPENHO DOS AMBIENTES R E JULIA COM USO DE ...docs.fct.unesp.br/departamentos/cartografia/eventos/2017_IV_SBG/... · algoritmos usados no processamento digital de

If you can't read please download the document

Upload: hadat

Post on 08-Feb-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

  • IV Simpsio Brasileiro de Geomtica SBG2017II Jornadas Lusfonas - Cincias e Tecnologias de Informao Geogrfica - CTIG2017

    Presidente Prudente - SP, 24-26 de julho de 2017p. 220-225

    AVALIAO DO DESEMPENHO DOS AMBIENTES R E JULIA COMUSO DE OPERADORES DE REALCE E ANLISE DE IMAGENS

    DIGITAIS1BRUNO MENINI MATOSAK

    1NILCILENE DAS GRAAS MEDEIROSGRSON RODRIGUES DOS SANTOS2

    Universidade Federal de Viosa - UFV1 Departamento de Engenharia Civil, Viosa - MG

    2 Departamento de Estatstica, Viosa - MG{bruno.matosak, nilcilene.medeiros, gerson.santos}@ufv.br

    RESUMO - Este trabalho teve como finalidade a avaliao da performance dos ambientes deprogramao R e Julia quanto o emprego de suas funes e em relao ao tempo necessrio execuo dealgoritmos usados no processamento digital de imagens orbitais. A comparao foi feita usando ooperador de deteco de bordas de Canny j contido em pacotes de ambos ambientes, a fim de analisar oestado de desenvolvimento das linguagens, e uma funo implementada da suavizao gaussiana emambos ambientes, a fim de manter uma equivalncia de comandos e analisar os resultados em termos detempo de execuo. Nos processamentos foram empregadas imagens dos satlites CBERS e Ikonos. Osresultados obtidos mostram que com o aumento na dimenso dos dados de entrada a linguagem Juliaapresenta menor tempo de execuo. Porm, quando os dados de entrada no possuem grandes dimensesa linguagem R mostrou melhor desempenho.

    Palavras chave: Operador de Canny, Ambiente R, Ambiente JULIA.

    ABSTRACT - The main goal of this work was the performance evaluation of the R and Juliaprogramming environments, on their functions and in the elapsed time to run algorithms used in digitalimage processing of satellite images. The comparison was made using the Cannys edges detectionoperator, which is already built in packages of both environments, to analyze the development status ofthe programming languages, and a function written by the authors in both languages trying to keep someequivalence between them, which does the gaussian smoothing. During the processing, CBERS andIkonos satellite images were used. The results show that Julia seems to need less time to run algorithmswhen the data volume increases, in comparison to R, however, in case the data does not have bigdimensions, the R language shows a better performance.

    Key words: Canny operator, R language, Julia language.

    1 INTRODUO

    No Processamento Digital de Imagens podem serrealizadas operaes de pr-processamento, realce eanlise de imagens, as quais visam correes dedistores ocorridas no processo de aquisio dasimagens, alm do melhoramento visual dos objetos dacena, e a extrao e categorizao de regies queapresentam padres similares (tonalidade, textura, etc.).

    Haja vista sua importncia na gerao de produtoscartogrficos, em relao aos dados matriciais, funesdefinidas por operadores de PDI (Processamento Digitalde Imagens) so implementadas em diversos softwareslivres e proprietrios de tratamento e anlise de imagens.

    Neste sentido o ambiente R, j consagrado na rea deEstatstica, possui uma linguagem com pacotes livres eferramentas de anlise de dados geoespaciais como ascontidas nos pacotes Imager, magick, e raster, que podemser utilizadas a fim de obter informaes espaciais partirde imagens visando anlises estatsticas.

    Podendo ser usada como uma alternativa aoambiente R, o ambiente de programao Julia surge como propsito de possuir uma linguagem eficiente, de livreacesso e de fcil uso para programao cientfica, comonos casos do ambiente R e Matlab.

    Criada no MIT, a qualidade do ambiente foiestabelecida como objetivo principal desde a concepodo projeto, como dito segundo Bezanzon, et al. (2012):

    B. M. Matosak; N. G. Medeiros; G. R. Santos ISSN 1981-6251

  • IV Simpsio Brasileiro de Geomtica SBG2017II Jornadas Lusfonas - Cincias e Tecnologias de Informao Geogrfica - CTIG2017

    Ns queremos a velocidade do C com odinamismo do Ruby. [] Ns queremos algo tousvel quanto o Python para programaogeral, to fcil para estatstica quanto o R, tonatural para o processamento de strings quantoPerl, to poderoso para lgebra linear como oMatlab.

    Bezanson et al. (2017) compararam a eficincia deexecuo de alguns algoritmos bsicos na Julia e emoutras linguagens (Grfico 1).

    Figura 1 Benchmark feito por Bezanson et al. (2017).Quanto maior, pior.

    No referido trabalho foi usado um benchmark, umprograma que mede a eficincia de algoritmos, que utilizaa velocidade de execuo da linguagem C comoreferncia (valor igual a 1), e pde-se concluir que alinguagem Julia apresentou melhor desempenho emrelao aos algoritmos empregados no experimentorealizado, o que um indicativo da eficincia e ao mesmotempo de seu potencial, at mesmo para funes deprocessamento digital de imagens orbitais, tarefa esta queexige grande capacidade de processamento de dados.

    Assim, este trabalho teve por finalidade avaliar odesempenho do ambiente Julia em comparao aoambiente R, empregando algoritmos de realce de imagenscomo a filtragem gaussiana e o operador de deteo debordas de Canny visando analisar a performance deambas as linguagens.

    2 CONCEITOS BSICOS

    2.1 Suavizao Gaussiana

    De acordo com Gonzalez e Woods (2010), oprocesso de suavizao gaussiana no domnio espacial feito atravs da convoluo de uma imagem, fazendo usode uma mscara, na qual cada peso tem seu valor obtidoatravs da distribuio normal bidimensional, de acordocom a sua distncia ao centro (Equao 01) (GONZALEZe WOODS, 2010).

    G ( x,y ) = e(x2+y222 ) (01)

    onde:(x, y): Coordenadas do centro da mscara, em

    unidades de pixel (origem no centro).: o desvio padro a ser utilizado para a

    distribuio.Como este um filtro de suavizao, o somatrio

    dos pesos da mscara deve ser 1, o qual pode seralcanado com a expresso (02).

    M' = M mij

    (02)

    onde:M: Mscara gerada com a distribuio

    normal;M: Mscara final a ser usada na suavizao;mij: Peso dos ndices i e j da mscara M.

    2.2 Operador de Deteco de Bordas de Canny

    A abordagem de Canny para a deteco de bordasem uma imagem baseia-se em trs objetivos bsicos(CANNY, 1986)

    Baixa taxa de erro; Os pontos de borda devem estar bem

    localizados; Resposta a ser dada deve ser de apenas um nico

    ponto de borda.Canny (1986) desenvolveu matematicamente cada

    um desses critrios, para ento encontrar solues timaspara os mesmos.

    De forma resumida o mtodo de deteco debordas de Canny pode ser descrito da seguinte forma(GONZALES e WOODS, 2010):

    1. Suavizao da imagem de entrada com um filtrogaussiano para reduo de rudos;

    2. Clculo da magnitude do gradiente e da direodas bordas na imagem;

    3. Aplicao da operao de supresso no mximaa partir da magnitude do gradiente e direo das

    B. M. Matosak; N. G. Medeiros; G. R. Santos ISSN 1981-6251

  • IV Simpsio Brasileiro de Geomtica SBG2017II Jornadas Lusfonas - Cincias e Tecnologias de Informao Geogrfica - CTIG2017

    bordas, visando o afiamento das bordas naimagem; e

    4. Uso de dupla limiarizao e anlise deconectividade para detectar e conectar bordas.

    Vale e Dal Poz (2002) avaliaram que quanto maioro valor do desvio padro adotado no filtro gaussianoutilizado na primeira etapa, menor a quantidade de bordasesprias, porm deve-se atentar ao valor utilizado, poisvalores muito altos podem acarretar emdescaracterizaes das bordas, deixando-as muitoborradas, criando um decrscimo na localizao edeteco das mesmas. Os mesmos autores citam que osresultados obtidos com o mtodo so satisfatrios, emesmo em imagens detectadas com altos valores de praticamente no houve fragmentao das bordas,exemplificando a qualidade do mtodo.

    2.3 Ambientes R e Julia

    No ambiente R comum utilizar cdigo em outraslinguagens mais eficientes, como C ou Python, portanto, autilizao de funes presentes em pacotes j consagradosmostra, de certa forma, o potencial mximo do ambienteincluindo o acoplamento de solues feitas com outrasferramentas, fazendo um parmetro do estado dassolues disponveis para os problemas encontrados at oestgio atual do desenvolvimento de cada linguagem.

    A primeira verso estvel do R foi disponibilizadaem 2000, j a primeira build do ambiente Julia foidisponibilizado pela primeira vez em 2012. Apesar doambiente R possuir mais tempo de desenvolvimento que oJulia, este segundo j apresenta resultados por vezesmelhores que o primeiro, mesmo no tendo sidodisponibilizado como produto final ainda o que pode serusado uma verso beta de testes para que se possaconhecer as capacidades iniciais do ambiente.

    3 METODOLOGIA

    A fim de avaliar a performance de ambaslinguagens, buscou-se aplicar inicialmente o algoritmo dafiltragem gaussiana com cdigo equivalenteimplementada nos dois ambientes para avaliar o tempo deprocessamento, aps utilizar as funes do Operador deDeteco de Bordas Canny, j implementas nos pacotesoficiais de cada projeto, incluindo (ou no) cdigo emoutras linguagens, como C ou Python.

    3.3 Tempo de processamento dos ambientes

    Ambas as linguagens dos ambientes possuemfunes nativas para a obteno do tempo atual (now( )em Julia e Sys.time( ) em R), assim foram coletados ostempos inicial e final da execuo dos programas, erealizada a subtrao em cada algoritmo.

    Para a implementao da suavizao gaussiana, foigerado um algoritmo que pode ser usado em ambas as

    linguagens utilizando-se apenas de ferramentas nativas. Oquadro da Figura 2 ilustra o algoritmo desenvolvido.

    - Carregar os pacotes necessrios

    - Registrar o tempo inicial do processamento

    - Abrir a imagem e convert-la em matriz

    - Define o valor do sigma e o tamanho da mscara

    - Realizar uma cpia da matriz da imagem

    - Gerar a mscara com base no sigma e tamanhoestipulados usando a distribuio normalbidimensional

    - Faz a suavizao da cpia da imagem porconvoluo, usando como parmetro a matriz da fotooriginal, o sigma, e a mscara criada, com doiscomandos for um dentro do outro

    - Converte a matriz da imagem suavizada em umformato que pode ser salvo em arquivo do mesmo tipoque o da entrada

    - Salva a imagem suavizada em um arquivo

    - Registra o tempo final do processamento

    - Exibe o intervalo de tempo do processamento

    Figura 2 Algoritmo usado nos dois ambientes para aimplementao da Suavizao Gaussiana.

    Ao desenvolver os scripts para serem executadosnos dois ambientes, buscou-se manter uma equivalnciade comandos e sequncia dos passos, a fim de tornar acomparao justa. Etapas de abertura e armazenamentodos resultados dos dados de entrada e sada tambmforam levados em considerao. Deve-se tambmconsiderar que a experincia dos programadores em cadalinguagem um fator que influncia na avaliao, vistoque esta experincia pode levar a implementaes maiseficientes.

    Visando analisar o desempenho da funo deCanny nos ambientes R e Julia, usou-se algoritmos jimplementados em cada ambiente.

    A funo utilizada em Julia foi a canny( ),disponvel no pacote Images (HOLY, 2017), j em Rutilizou-se a funo imgCanny( ) do pacote biOps(BORDESE e ALINI, 2017).

    Tambm para este teste, realizou-se adeterminao do tempo de execuo dos processamentos,da mesma forma que no algoritmo da suavizaogaussiana.

    Todos os procedimentos computacionais foramrealizados em uma mquina da marca Acer V3-371 seriesmodelo MS2392 com processador Intel Core i5-5200U CPU 2.20GHz (4 ncleos), memria RAM de 8gigabytes, usando o sistema operacional Ubuntu 16.04LTS.

    B. M. Matosak; N. G. Medeiros; G. R. Santos ISSN 1981-6251

  • IV Simpsio Brasileiro de Geomtica SBG2017II Jornadas Lusfonas - Cincias e Tecnologias de Informao Geogrfica - CTIG2017

    4 RESULTADOS

    Inicialmente foi realizado o teste com as funesdo operador Canny em ambos ambientes (R e Julia), asquais j se encontram implementadas nos mesmos. Aimagem utilizada neste experimento foi um trecho de umacena do satlite Ikonos, com resoluo espacial de 1m,referente regio do municpio de Viosa-MG.

    Os parmetros de entrada nas funes foramestabelecidos pela imagem de entrada e o valor do sigma.Vale ressaltar que como no caso da funo implementadano R os valores de limiar para o processo de conexo dasfeies lineares utilizam valores do histogramaautomaticamente, tambm no se utilizou tais parmetrosna funo do Canny no Julia. Assim, o valor do sigmautilizado foi 1.2.

    As Figuras 3 e 4(a) e 4(b) ilustram o trecho daimagem Ikonos de entada, bem como os resultados dosprocessamentos do operador Canny para os ambientes R eJulia, respectivamente.

    Figura 3 Trecho da imagem Ikonos da regio de Viosa-MG.

    Como pode ser observado nas Figuras 4(a) e 4(b),as diferenas em termos do processo de extrao dasfeies no apresentaram-se significativas visualmente,com excesso de elementos extrados. Porm, como j dito,na funo do Canny no Julia existe a possibilidade dainsero de um valor proporcional que define os valoresdos limiares para o processo de conexo, assim pode-seobter um resultado melhor do que os obtidos sem aconsiderao deste parmetro. Neste sentido, a Figura 5,apresenta o resultado da aplicao da funo de Canny noJulia com os parmetros: imagem de entrada, sigma 1 e de0.985 para definir os valores dos limiares (baixo e alto).

    (a) (b)

    Figura 4 Resultados obtidos para a imagem Ikonos com sigma igual a 1,2 com as funes imgCanny( ) no R (a) e canny( ) no Julia (b).

    Deve-se mencionar que o tempo de processamentopara as duas funes foi de 0,493s para o R e de 14,594spara o Julia. Apesar de se esperar que o ambiente Juliaapresentasse um tempo menor, acredita-se que por ser oambiente R mais maduro, suas funes podem ser maisotimizadas. Assim, a fim de verificar o tempo deexcusso de um processamento de modo comparativo,implementou-se o mesmo algoritmo em ambaslinguagens, no intuito de se ter uma comparao maisjusta. O algoritmo implementado foi o da filtragemgaussiana.

    Figura 5 Resultado obtido com a funo de Canny como parmetro para definio dos limiares.

    No algoritmo da suavizao gaussiana, foiutilizado o valor de sigma igual a 3, com uma mscara3x3. As duas imagens geradas ao final dos algoritmos doJulia e do R so visualmente similares, e umaaproximao como a da Figura 6 mostra o efeito de talalgoritmo.

    Os tempos de execuo registrados para a imagemIkonos em cada linguagem testada no processo defiltragem gaussiana, foram de 1,753s para o R e de 3,604para o Julia. Tambm neste caso o maior tempo deexecuo foi para o Julia, diferente do esperado. Porm,vale ressaltar que a imagem utilizada era de pequenadimenso (726x726), assim outras trs imagens foramtestadas com esse algoritmo com tamanhos maiores, a fimde verificar se com o aumento dimensional dos dados o

    B. M. Matosak; N. G. Medeiros; G. R. Santos ISSN 1981-6251

  • IV Simpsio Brasileiro de Geomtica SBG2017II Jornadas Lusfonas - Cincias e Tecnologias de Informao Geogrfica - CTIG2017

    tempo de execuo se manteria da mesma forma paraambas linguagens.

    Figura 6 Trecho ampliado da imagem Ikonos utilizadano processo de suavizao gaussiana em comparao coma imagem suavizada.

    Desta forma, aplicou-se o algoritmo da filtragemgaussiana tambm a uma imagem CBERS do sensor HRC(13595 x 13614 pixels) com resoluo de 2.5m, e a doisrecortes dessa imagem: um com 11000x11000 pixels eoutro de 8000x8000 pixels.

    As Figuras 7, 8 e 9 apresentam a imagem CBERSe os recortes utilizadas no processamento.

    Figura 7 Imagem CBERS com melhoramento de realce,referente a regio de Viosa-MG.

    Figura 8 Recorte da imagem CBERS com 11000x11000pixels.

    Figura 9 Recorte da imagem CBERS com 8000x8000pixels.

    Os tempos de execuo da suavizao gaussianareferentes aos recortes e aos diferentes ambientes sodescritos na Tabela 1.

    Tabela 1 Tempos de execuo da Suavizao Gaussianaem cada ambiente para os diferentes tamanhos da imagemCBERS.

    R JuliaCBERS original(13595 x 13614) 6,93174 min. 3,49915 min.

    CBERS corte11000 x 11000 3,49410 min. 2,38820 min.

    CBERS corte8000 x 8000 1,86926 min. 1,27620 min.

    Como pode-se perceber a partir da Tabela 1 comuso da imagem CBERS o tempo de execuo da filtragemgaussiana foi maior para a linguagem R para os trscasos, comparado ao uso da Ikonos, indicando que paraum grande volume de dados a linguagem Julia podeapresentar-se mais atrativa em termos de tempo deprocessamento. Um grfico comparativo ilustrado naFigura 10.

    Imagem Original(13595 x 13614)

    Corte(1100 x 11000)

    Corte(8000 x 8000)

    0

    1

    2

    3

    4

    5

    6

    7

    8

    R

    Julia

    Imagens Processadas

    Min

    utos

    Figura 10 Grfico da comparao entre os tempos deexecuo da filtragem gaussiana para os ambientes R eJulia considerando a imagem CBERS e seus cortes.

    B. M. Matosak; N. G. Medeiros; G. R. Santos ISSN 1981-6251

  • IV Simpsio Brasileiro de Geomtica SBG2017II Jornadas Lusfonas - Cincias e Tecnologias de Informao Geogrfica - CTIG2017

    5 CONCLUSES

    Os resultados obtidos com a metodologia propostaapresentaram aspectos interessantes quanto a performancedos ambientes R e Julia.

    No processo de extrao de feies as funes dooperador de Canny apresentaram resultados similares,quando no so inseridos os parmetros relacionados aetapa de conexo dos objetos da cena no ambiente Julia.Com a insero desse parmetro verificou-se melhora nosresultados.

    Quanto ao tempo de processamento, para dadoscom menores dimenses, a linguagem R apresentoumelhor desempenho, associado provavelmente amaturidade dessa linguagem j existente h algum tempoem comparao aos pacotes Julia que ainda no possuemverso final.

    Porm, com o aumento na dimenso dos dados,fica clara a tendncia de que quanto maior a imagem a serprocessada, maior ser a diferena entre os ambientes. Ouseja, quanto maior a imagem, maior ser a necessidade deprocessamento para executar a funo testada, fazendocom que as outras partes do cdigo influenciem cada vezmenos no tempo final de execuo do programa.

    Assim, conclui-se que a linguagem Julia apesar depossuir um tempo menor de desenvolvimento, japresenta certa superioridade linguagem R no mbito doprocessamento de grandes volumes de dados raster,comuns a imagens orbitais, mesmo assim, toda abiblioteca j otimizada e disponvel para R ainda faz comque esta seja uma tima opo disponvel para oprocessamento de dados.

    Por fim, deve-se ressaltar que mais testes devemser realizados a fim de corroborar os resultados obtidos.

    AGRADECIMENTOS

    Os autores agradecem o Departamento deEngenharia Civil (DEC) da Universidade Federal deViosa (UFV) pela disponibilizao da imagem Ikonos, eo Instituto Nacional de Pesquisas Espaciais (INPE) pelofornecimento da imagem CBERS.

    REFERNCIAS

    BEZANSON, J., KARPINSKI, S., SHAH, V.,EDELMAN, A., Julia: A Fast Dynamic Language forTechnical Computing, Society for Industrial and AppliedMathematics, Vol. 59, No. 1, 2017, pp. 6598.

    BEZANSON, J., KARPINSKI, S., SHAH, V.,EDELMAN, A., Why We Created Julia, 14 deFevereiro de 2012, Disponvel em:https://julialang.org/blog/2012/ 02/why-we-created-julia,Acesso em 26 de Abril de 2017.

    BORDESE, M., ALINI, W., The biOps Package,Disponvel em: http://ftp.uni-bayreuth.de/math/statlib/R/

    CRAN/doc/packages/biOps.pdf, Acesso em: 24 de Abrilde 2017.

    CANNY, J., A Computational Approach for EdgeDetection, IEEE Trans. Pattern Anal. Machine Intell., v.8, n. 6, 1986, p. 679698.

    GONZALEZ, R. C., WOODS, R. E., ProcessamentoDigital de Imagens, So Paulo: Pearson Prentice Hall,3edio, 2010, p. 474.

    HOLY, T., JuliaImages/Images.jl: an image library forJulia, Disponvel em: https://github.com/JuliaImages/Images.jl, Acesso em: 24 de Abril de 2017.

    VALE, G. M., DAL POZ, A. P., O Processo de Detecode Bordas de Canny: Fundamentos, Algoritmos eAvaliao Experimental, Anais do Simpsio Brasileirode Geomtica, Presidente Prudente - SP, 9-13 de julho de2002. p.292-303.

    B. M. Matosak; N. G. Medeiros; G. R. Santos ISSN 1981-6251