Detecção e Segmentação da Região do Disco Óptico em Imagens de Retina por Delimitação de Regiões de Interesse e Uso de Limiar

Documentos relacionados
Detecção e Segmentação da Região do Disco Óptico em Imagens de Retina por Delimitação de Regiões de Interesse e Uso de Limiar

Extração de Características de Imagens da Retina pelo uso do SURF e LBP para Detecção Automática do Glaucoma

Desenvolvimento de Módulo Wireless para Acionamento de Cargas via Porta Paralela

LEONARDO M. SANTOS, FLÁVIO H. D. ARAÚJO, MAÍLA L. CLARO, WALLINSON L. SILVA, RO- MUERE R. V. SILVA, PATRICIA M. L. L. DRUMOND.

Automatic Detection of Glaucoma Using Disc Optic Segmentation and Feature Extraction

Departamento de Computação Teresina, Piauí, Brasil

Descritores de Imagens

Reconhecimento de texturas utilizando padrão binário local e classificador knn.

Relato de uma Implantação de uma Ferramenta de Integração Contínua em um Núcleo de Práticas em Informática de uma Universidade

Segmentação de Exsudatos em Imagens de Fundo de Olho para Detecção de Retinopatia Diabética

Diego Martin Mancini Orientador: Prof. Paulo A. V. de Miranda Instituto de Matemática e Estatística Universidade de São Paulo

Introdução ao Processamento de Imagens Digitais Aula 01

IDENTIFICAÇÃO DE MARCADORES DE PAVIMENTAÇÃO NA ORIENTAÇÃO DE CEGOS. André Zuconelli 1 ; Manassés Ribeiro 2

O reconhecimento facial é dividido em três etapas: i) detecção da face, ii) extração de características e iii) reconhecimento da face.

Diagnóstico do Glaucoma em Imagens de Fundo de Olho Usando Matriz de Coocorrência e SVM

METODOLOGIA PARA A QUANTIZAÇÃO DE CORES PELO MÉTODO SMCb: INTRODUÇÃO E EXEMPLOS DE RESULTADOS

Segmentação de Exsudatos em Imagens de Fundo de Olho para Detecção de Retinopatia Diabética

Descritores de Imagem

Extração de atributos usando o método LBP - Local Binary Pattern

SEGMENTAÇÃO E RECONHECIMENTO DA ÍRIS

Extração de objetos de interesse em imagens digitais utilizando a biblioteca de Visão Computacional OpenCV

Mineração de Dados em Biologia Molecular

Descritores de Imagens

Visão Computacional. Alessandro L. Koerich. Programa de Pós-Graduação em Engenharia Elétrica Universidade Federal do Paraná (UFPR)

T4.1 Processamento de Imagem

Capítulo III Processamento de Imagem

MouseCam: aplicação de controle do mouse via câmera

Detecção e Correção Automáticas de Olhos Vermelhos

Morfologia Matemática: algumas aplicações. Rosana Gomes Bernardo Universidade Federal Fluminense

Capítulo II Imagem Digital

Máquinas de Vetores de Suporte Aplicadas à Classificação de Defeitos em Couro Bovino

CABINE DE ESTÍMULO SENSORIAL 1 SENSORY STIMULATION BOOTH

Identificação de Pontos Perceptualmente Importantes (PIP) em séries temporais de tópicos extraídos de dados textuais

10º Congresso Interinstitucional de Iniciação Científica CIIC a 04 de agosto de 2016 Campinas, São Paulo ISBN

DETECÇÃO DE CORES DE SOLUÇÕES QUÍMICAS PARA PESSOAS COM NENHUMA OU BAIXA VISÃO UTILIZANDO OPENCV

XVIII Seminário Nacional de Distribuição de Energia Elétrica. Soluções eletrônicas aplicadas aos circuitos elétricos de Subestações e Usinas.

INTRODUÇÃO À INTEGRAÇÃO CONTÍNUA. Jadson Santos Software Engineer Informatic Superintendence (SINFO) - UFRN

USO DE TÉCNICAS DE SEGMENTAÇÃO NA ANÁLISE DE IMAGENS DE TOMOGRAFIA COMPUTADORIZADA DE PULMÕES COM DPOC

EPUSP PCS 2011/2305/2355 Laboratório Digital. Frequencímetro

INFORMAÇÕES DO ACADÊMICO PLANO DE TRABALHO. 1. Justificativa

ESTUDO DE TÉCNICAS PARA SOLUÇÃO DE PROBLEMAS DE PROCESSAMENTO DE IMAGENS UTILIZANDO A LINGUAGEM PYTHON

Pontifícia Universidade Católica do Rio de Janeiro. Departamento de Informática. Fundamentos de Computação Gráfica

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO 9º PERÍODO. Profª Danielle Casillo

UNIVERSIDADE ESTADUAL PAULISTA Campus de Sorocaba. Segmentação

Verificação e Validação. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 22 Slide 1

Visão computacional. Juliana Patrícia Detroz Orientador: André Tavares Silva

Projeto "Broquinho" Página Oficial - Projeto Broquinho

Verificação e Validação (V & V)

Determinação de vícios refrativos oculares utilizando Support Vector Machines

Normas ISO:

SEMINÁRIO DOS ARTIGOS:

Terminal de Operação Cimrex 90

AUTOMATED ASSESSMENT OF BREAST TISSUE DENSITY IN DIGITAL MAMMOGRAMS

6 Estudos de Casos Porta Lógica OU de 4 Entradas

EPUSP PCS 2355 Laboratório Digital. Contadores em VHDL

Brilliant Solutions for a Safe World

INTERPOLAÇÃO LINEAR E BILINEAR: APLICAÇÃO EM TRANSFORMAÇÕES GEOMÉTRICAS DE IMAGEM INTRODUÇÃO

Transmissores e Receptores

Desenvolvimento de Software. Testes de Software. Tópicos da Aula. Onde estamos... Verificação x Validação. Testes de Software

CAPÍTULO V 5 CONCLUSÕES E RECOMENDAÇÕES 5.1 SÍNTESE DO TRABALHO DESENVOLVIDO

Face Recognition using RGB-D Images

4 Detecção de Silhueta

Garantia da Qualidade dos Processos de Software Baseado no MPS.BR Um Estudo de Caso

Descritores de Imagem (introdução)

T4 Processamento de Imagem

Classificação de Padrões por Blocos em Imagens Não Segmentadas de Tomografia Computadorizada

Color Eyes Detector. Duarte Petiz. DCC/FCUP

Pentaho IoT Analytics Open Source Trilha IoT

5 Análise Experimental

Alternativas para construção de classificadores de solos brasileiros

Manual Placa DMX 16 pixels RGB

Notas de Aula. Laboratório de Sistemas Digitais

Processamento Digital de Imagens

RECONHECIMENTO FACIAL 2D

DESENVOLVIMENTO DE INTERFACE GRÁFICA PARA UM SISTEMA DIDÁTICO EM CONTROLE DE PROCESSOS

Processamento Digital de Imagens

CONTROLE DE UM SERVO MOTOR

"Análise de Extratores de Característica para Reconhecimento de Face"

PLATAFORMA PARA CARACTERIZAÇÃO DE ELEMENTOS SENSORES PIEZORESISTIVOS 1

RECONHECIMENTO DE CARACTERES EM PLACAS AUTOMOTIVAS UTILIZANDO REDES NEURAIS

Reconhecimento de Faces Utilizando Redes Neurais MLP

Análise Quantitativa de Tecidos em Úlceras de Perna

Aplicação de Histograma de Gradientes Orientados para detecção de hidrômetros em imagens de fundo complexo

Utilizando a porta paralela para controle de dispositivos através do Windows

Módulo 16 ED 125 Vdc Opto

4 Cálculo de Equivalentes Dinâmicos

PEA2502 LABORATÓRIO DE ELETRÔNICA DE POTÊNCIA

UMA ARQUITETURA BASEADA EM COMPUTAÇÃO UBÍQUA PARA MONITORAMENTO DE INDIVÍDUOS EM AMBIENTES RESTRITOS

PAINÉIS FOTOVOLTAICOS: UMA REVISÃO DE MODELOS EQUIVALENTES PARA REPRESENTAÇÃO DA CARACTERÍSTICA DE CORRENTE E TENSÃO

5 Estudo de Caso e Resultados

Extração de características utilizando filtros de Gabor aplicado a identificação de defeitos no couro bovino

Introdução 12 que inuenciam a execução do sistema. As informações necessárias para o diagnóstico de tais problemas podem ser obtidas através da instru

CRI Minas Indústria 4.0. Case Vallourec: Golden Batch na produção de tubos

Sistema de Controle e Monitoramento de Carregamento de Alimentadores e Transformadores de Subestações

Project Builder: Apoio a Gestão de Projetos do Nível G ao C do MPS.BR

B.L.U.E. Bloco Limitador da Unidade de Energia. Manual do Usuário Versão 4.2

Processamento de Imagens Digitais

Universidade Católica Dom Bosco

Reconhecimento de Símbolos de LIBRAS

Universidade Federal do Rio de Janeiro. Flávio Henrique Schuindt da Silva. Estimativa de Fluxo Ótico com o método de Lukas-Kanade

Transcrição:

Detecção e Segmentação da Região do Disco Óptico em Imagens de Retina por Delimitação de Regiões de Interesse e Uso de Limiar Leonardo M. Santos, Maíla L. Claro, Wallinson L. Silva, Flávio H. D. Araújo leonardo.moura.software, claromaila, iwallinsom@gmail.com, flavio86@ufpi.edu.br Abstract. Currently the use of digital images has been gaining attention in the automatic diagnosis of diseases. Glaucoma is a disease that affects a large proportion of the world population and is among the largest blindness cause. For automatic detection of disease from the digital image analysis is necessary to segmentation of its main regions. In eye diseases, specifically in glaucoma, there is the Optical Disc (OD), the excavation of the OD and the blood vessels, where they are visible changes in these locations. This paper aims to present a new method of segmentation and detection of OD region in retinal images for Glaucoma detection. Resumo. Atualmente o uso de imagens digitais vem ganhando destaque no diagnóstico automático de doenças. O Glaucoma é uma doença que afeta uma grande parte da população mundial, estando no ranking das maiores causadoras de cegueira. Para a detecção automática de doenças a partir da análise de imagens digitais é necessário à segmentação das suas principais regiões. Em doenças oculares, mais especificamente o Glaucoma, destaca-se o Disco Óptico (DO), a escavação do DO e os vasos sanguíneos, onde são visíveis alterações nesses locais. Assim, este trabalho teve o objetivo de apresentar um novo método de segmentação e detecção da região do DO em imagens médicas da retina para fins de detecção do Glaucoma. 1. Introdução A análise de imagens de fundo de olho é muito utilizada pela comunidade médica para diagnóstico de doenças oculares ou doenças que tenham efeitos globais sobre a vasculatura do corpo [Soares 2006]. A inspeção dos vasos de fundo de olho pode revelar sinais de hipertensão, diabetes, arteriosclerose e doenças cardiovasculares [Kanski 1989]. O Glaucoma é uma doença assintomática neurodegenerativa do olho, crônica e irreversível em que o nervo que liga o olho ao cérebro (nervo óptico) é progressivamente danificado [Klein 1992]. É a segunda principal causa de cegueira no mundo, com cerca de 60 milhões de casos de Glaucoma em todo o mundo em 2010. A segmentação do Disco Óptico (DO) em imagens de retina é muito utilizada para auxiliar o médico na detecção do Glaucoma. Anomalias na região do DO podem indicar a presença do Glaucoma [Liesang, Deutsch e Grand 2011]. Ainda não existe cura para o Glaucoma, sendo a detecção precoce e tratamento preventivo as únicas formas de evitar a perda total de visão em pacientes afetados. As técnicas de Optical Coherence Tomography (OCT) e Heidelberg Retinal Tomography (HRT) são usadas na detecção do Glaucoma, porém elas possuem custos elevados

[Danny 2011]. Uma maneira viável e de baixo custo, levando em consideração outras técnicas de detecção do Glaucoma, é o diagnóstico feito a partir da análise de imagens de fundo de olho. Nessa técnica as imagens são analisadas por um especialista humano que tenta identificar o acúmulo do líquido ao redor do DO. Assim, o objetivo deste trabalho é realizar a segmentação da região do DO para auxílio na detecção do Glaucoma. A região segmentada também poderá servir de entrada para algoritmos descritores que serão classificados como glaucomatosas ou não. 2. Trabalhos Relacionados Por ser uma atividade eficiente, rápida e barata o processamento de imagens vem sendo bem difundida, como exemplo podem ser apresentados alguns trabalhos relacionados à área de detecção de doenças, mais especificamente a análise de imagens da retina. Segundo Liu et al. (2011) a detecção dos limites do Disco Óptico é mais fácil de ser realizada no canal vermelho. Já os canais azul e verde são mais eficientes para distinguir a fronteira da escavação. No trabalho de Kavitha, Karthikeyan e Duraiswamy (2010) os autores calcularam uma ROI (Region Of Interest) para diminuir a área da região que seria processada. Em seguida eles suavizaram as ROIs obtidas em cada imagem e utilizaram técnicas de filtragem para a eliminação de ruídos. Por fim, foram utilizadas técnicas de segmentação baseadas em cores para a obtenção das fronteiras do DO. Pela análise da literatura percebeu-se que a técnica de crescimento de regiões (region growing) [Gonzalez e Woods 2002] pode ser utilizada para a identificação da região do DO. Esta técnica é frequentemente utilizada em segmentações por agregação de pixels, iniciando com um conjunto de sementes e, a estas, agregam-se outros pixels que possuem propriedades de cor similar. 3. Base de Imagens A base de imagens utilizada neste trabalho foi a RIM-ONE [Trucco et al 2013]. Essa base é um banco de imagens de fundo de olho fornecidas por diferentes especialistas, apresentando formas de medição do DO para efeitos de validação. Além de fornecer diversas imagens de olhos saudáveis, a base também fornece imagens com diferentes níveis de Glaucoma e as suas respectivas segmentações do DO. Cada imagem possui cinco máscaras consideradas corretas, como apresentado na Figura 1. As imagens são organizadas em cinco categorias, são elas: Deep (profunda), Early (leve), Moderate (moderado), Normal (saudável), OHT (Hipertensão Ocular). Este banco foi fornecido por três hospitais: Hospital Universitário de Canarias, Hospital Clínico San Carlos e Hospital Universitário Miguel Servet. Figura 1. Exemplo das imagens que compõe a base.

4. Metodologia Proposta Nesta seção são descritas as etapas realizadas neste trabalho para a localização da região do DO em imagens digitais de fundo de olho. O fluxograma da Figura 2 ilustra as etapas seguidas pelo algoritmo desenvolvido. Como pode ser visto nesse fluxograma, inicialmente foi necessária a aquisição das imagens. A partir delas foi extraído o canal vermelho para cada uma, em seguida, foi calculado a ROI como sendo a região de maior intensidade de cor da imagem. Por fim, foi realizada a delimitação das fronteiras do DO e a segmentação da região. Figura 2. Fluxograma da metodologia proposta neste trabalho. Aquisição da Imagem: é uma das etapas mais importantes na construção de um algoritmo de segmentação de imagens, pois para medir a qualidade da segmentação é necessária uma base que forneça a marcação correta da região que será segmentada. Nosso trabalho utilizou a base RIM-ONE, pois ela possuía a marcação da região do DO feita por especialistas. Extração do Canal Vermelho: As imagens da base RIM-ONE estavam inicialmente no formato RGB (Red, Green, Blue). Como visto no trabalho realizado por Liu et al. (2011) o DO é mais facilmente encontrado na camada Red do modelo RGB, portanto elas foram convertidas para o canal Red. Região de Interesse: A extração da ROI foi realizada para reduzir a área onde o processamento será feito, melhorando os resultados e otimizando o tempo de processamento. A região definida como de interesse foi o retângulo localizado ao centro da imagem como apresentado na Figura 3, esta etapa deu auxílio na localização do centro do DO. Figura 3: Região de interesse para localizar o centro. Pixel Mais Intenso: Após a obtenção da ROI foi encontrado o pixel de maior intensidade de cor da imagem localizado dentro da ROI. A partir desse pixel foi iniciado o cálculo do raio do DO.

4.1 Localização das Fronteiras com Base no Limiar Para a localização das fronteiras do DO, a metodologia proposta utilizou uma técnica baseada em limiar. A obtenção desse limiar foi encontrada de forma automática, a partir do pixel central da imagem (encontrado na etapa anterior), traçando em seguida quatro raios, para cima no ângulo de 90º, para baixo no ângulo de 270º, para direita no ângulo de 0º e esquerda no ângulo de 180º. Devido as diferentes intensidades dos pixels nas imagens foi calculado um novo limiar para cada raio, como sendo a média entre o pixel de maior e menor intensidade, conforme a equação a seguir: Após a definição do limiar foi necessário calcular o raio, partindo do centro do DO até as fronteiras definida pelo limiar, como são quatro raios tornou-se necessário calcular a média como demostrado na equação a seguir: 4.2 Segmentação Após a realização das etapas anteriores obteve-se como resultado as coordenadas do centro do DO e o raio estimado. Em seguida aplicamos a equação da circunferência para traçar as bordas do DO, como visto a seguir: ( ) ( ) ( ). A Figura 4(b) mostra o resultado obtido após a realização de todos os passos do algoritmo a partir da Figura 4(a). A Figura 4(c) mostra a região do DO segmentada pela identificação de todos os pontos que estão dentro da circunferência obtida... Figura 4. a) Imagem original, b) delimitação da região do DO feita pelo algoritmo, c) Segmentação binária da região DO. 5. Resultados Nesta seção são apresentados os resultados obtidos com base na metodologia proposta neste trabalho. A avaliação da acurácia obtida foi feita através da comparação entre o resultado da segmentação do algoritmo e as cinco máscaras da base de imagens utilizadas. Para avaliar a qualidade da segmentação, calculamos duas medidas, chamadas de Eficácia e Precisão, calculadas pelas Equações 1 e 2, respectivamente.

(1) (2) ( ) A partir dos valores obtidos para cada imagem foi considerado que o algoritmo segmentou corretamente as imagens que obtiveram valores de Eficácia e Precisão maior que um limiar de exigência, que pode variar de 0 a 100%. A base de imagens estava organizada em categorias, onde cada uma possuía diferentes quantidades de imagens, e estas possuíam diferentes níveis de Glaucoma. Na Tabela 1 são apresentadas as porcentagens de acerto (Acurácia) da segmentação do algoritmo considerando diferentes limiares de exigência. Pela análise da literatura percebe-se que o limiar de exigência adotado variava de 60% a 80%. Tabela 1. Acurácia (em porcentagem) do método proposto para diferentes níveis de exigência testados na base RIM-ONE. Níveis de Glaucoma Quantidade de Imagens 60% de exigência de acerto 70% de exigência de acerto 80% de exigência de acerto Deep 14 100 100 100 Early 12 91.66 91.66 91.66 Moderate 14 92.85 78.57 64.28 Normal 118 96.61 93.22 80.50 OHT 11 90.90 90.90 90.90 Todas as Imagens 169 95.85 92.30 82.24 Pela análise da Tabela 1 observa-se que quando o limiar foi de 80% a acurácia obtida pela segmentação do algoritmo foi maior que 82%, totalizando 139 imagens segmentadas corretamente de 169. Ainda pela análise da Tabela 1 percebe-se que quando o limiar de exigência foi menor que 80% a acurácia total obtida pelo algoritmo foi maior que 90%, totalizando mais de 153 imagens segmentadas corretamente. Esses resultados comprovam que a metodologia proposta foi eficiente na identificação da região do DO. 6. Conclusão e Trabalhos Futuros O processamento de imagens digitais é uma área de estudo com um grande potencial, que cada vez mais vem contribuindo para a sociedade, como exemplo a área da saúde, onde pode ser utilizada para o auxílio em diagnósticos de doenças, de forma eficaz e barata, a partir da análise automática de imagens digitais. Esse trabalho apresentou uma nova metodologia de detecção automática do DO em imagens de fundo de olho. O método proposto trouxe bons resultados, satisfazendo as expectativas, contabilizando uma acurácia superior a 82% quando avaliado com um limiar de exigência de 80%. Os resultados apresentados na seção anterior comprovaram que a metodologia proposta foi eficiente na segmentação da região do DO nas imagens de retina. Como trabalho futuro serão desenvolvidos algoritmos de segmentação automática da escavação, com propósito de calcular o CDR (Cup-to-Disc ration) que é a razão entre a área da escavação e a área do DO. O cálculo do CDR é muito utilizado

pelos médicos para a detecção do Glaucoma. Outro trabalho futuro será a implementação de outras técnicas de detecção do DO existentes na literatura para a comparação com o método proposto neste trabalho. Referências Danny, L. Y. T. (2011) Computer Based Diagnosis of Glaucoma Using Principal Component Analyses (PCA), A Comparative Study, Tese de Doutorado, SIM University, School of Science and Technology. Gonzalez, R. C. and Woods, R.E. (2002) Digital Image Processing, Upper Saddle River, USA: Prentice-Hall, 2ª edição. Kanski, J. J. (1989) Clinical Ophthalmology: A systematic approach, Butterworth- Heinemann, Londres. Kavitha, S., Karthikeyan, S. and Duraiswamy, K. (2010) Early Detection of Glaucoma in Retinal Images Using Cup to Disc Ratio, Second International conference on Computing, Communication and Networking Technologies. Klein, B. E., et al. (1992) Prevalence of glaucoma, The Beaver Dam Eye Study, Ophthalmology, vol. 99, pp.1499-504. Liesang, T. J., Deutsch T. A. and Grand M. G. (2002) Glaucoma, In Basic and Clinical Science Course, Section 10, San Francisco: American Academy of Ophthalmology. Liu J., Yin F. S., Wong D.W.K., Zhang Z., Tan N.M., Cheung C. Y., Baskaran M., Aung T. and Wong T.Y. (2011) Automatic Glaucoma Diagnosis from Fundus Image, 33rd Annual International Conference of the IEEE EMBS Boston, Massachusetts USA. Soares, J. V. B. (2006) Segmentação de vasos sanguíneos em imagens de retina usando wavelets e classificadores estatísticos, Dissertação de Mestrado, Instituto de Matemática e Estatística, USP. Trucco, E., Ruggeri, A., Karnowski, T., Giancardo, L., Chaum, E., Hubschman, J. P., Al-Diri, B., Cheung, C. Y., Wong, D., Abràmoff, M., Lim, G., Kumar, D., Burlina, P., Bressler, N. M., Jelinek, H. F., Meriaudeau, F., Quellec, G., Macgillivray, T. and Dhillon, B. (2013) Validating Retinal Fundus Image Analysis Algorithms: Issues And A Proposal, Invest. Ophthalmol. Vis. Sci., vol. 54, no. 5, pp. 3546 3559, Disponível: http://www.ncbi.nlm.nih.gov/pu bmed/23794 433.

Extração de Características de Imagens da Retina pelo uso do SURF e LBP para Detecção Automática do Glaucoma Wallinson L. Silva 1, Maíla L. Claro 1, Leonardo M. Santos 1, Flávio H. D. Araújo 1 1 Campus Senador Helvídio Nunes de Barros (CSHNB) Universidade Federal do Piauí (UFPI) Picos PI Brasil {iwallinsom, claromaila, leonardo.moura.software}@gmail.com, flavio86@ufpi.edu.br Abstract. Glaucoma is an asymptomatic disease and is considered the second greater cause of blindness in the world, it attacks the optic nerve causing irreversible damage to the visual field. Although there is no cure exists treatment, which can be facilitated from a previous diagnosis. Thus, this work consists of methods for feature extraction in retinal images from the use of descriptors for the automatic detection of glaucoma. These methods are constructed from the use of visual dictionaries, which are robust forms of representation, and the Local Binary Pattern texture descriptor. Resumo. O glaucoma é uma doença assintomática, sendo considerada a segunda maior causa de cegueira no mundo, ela ataca o nervo óptico causando danos irreversíveis no campo visual. Apesar de não haver cura, existe tratamento, que pode ser facilitado a partir de um prévio diagnóstico. Desse modo, esse trabalho consiste em métodos para extração de características em imagens de retina a partir do uso de descritores para a detecção automática do glaucoma. Esses métodos são construídos a partir da utilização de dicionários visuais, que são formas de representação robusta, e o descritor de textura Local Binary Pattern. 1. Introdução O glaucoma é uma doença que afeta o nervo óptico gradativamente, ocorrendo assim a perda progressiva do campo de visão de maneira irreversível. Esse dano óptico geralmente é causado pelo aumento da pressão dentro do olho (pressão intraocular) [Weinreb 2004]. Uma característica preocupante do glaucoma é o fato de não possuir sintomas, tornando-a cada vez mais grave e podendo ser notada somente em seu estado mais avançado, ocasionando assim a perda permanente da visão. Os danos causados pelo glaucoma podem ser reduzidos a partir do diagnóstico antecipado, sendo assim, sua detecção precoce é de grande importância. Existem vários métodos utilizados para o diagnóstico dessa doença, tais como: avaliação da pressão intraocular; exame da pupila, que detecta lesões no nervo óptico; e avaliação do campo visual. De acordo com a Organização Mundial de Saúde (World Health Organization) [Who 2014], existem cerca de 60 milhões de glaucomatosos em todo o mundo, sendo que, a cada ano, surgem mais 2,4 milhões de casos. A prevalência da cegueira por glaucoma é de 5,2 milhões de pessoas, representando a segunda maior causa de cegueira

no mundo. Segundo Quigley (2006), em 2020, cerca de 80 milhões de pessoas terão glaucoma. Uma maneira viável e de baixo custo, levando em consideração outras técnicas de detecção do glaucoma, é o diagnóstico feito a partir da análise de imagens de fundo de olho. Nessa técnica as imagens são analisadas por um especialista humano que tenta identificar o acúmulo do líquido ao redor do disco óptico. O diagnóstico do glaucoma usando imagens também pode ser feito a partir de técnicas de processamento digital de imagens. As principais formas de detecção são por segmentação de regiões e por extração de características das imagens juntamente com técnicas de classificação de dados. Diante do exposto, neste trabalho foram utilizados o SURF e o LBP para extração de características das imagens de fundo de olho e a detecção automática do glaucoma. 2. Trabalhos Relacionados O trabalho de Araújo et al. (2013), tinha como objetivo o diagnóstico da Retinopatia Diabética. Um dos métodos propostos utilizava o algoritmo Speed-Up Robust Features (SURF) para extração de características, porém o número de atributos retornados pelo algoritmo era diferente para cada imagem, dificultando o uso de classificadores. Para contornar essa situação, foram utilizados os dicionários visuais para gerar um único vetor de atributos para classificação. Por fim, o vetor de atributo encontrado foi utilizado para classificação das imagens em saudáveis ou patológicas. O trabalho de Amaral e Thomaz (2012) tinha como finalidade avaliar as técnicas Local Binary Pattern (LBP) e Principal Componentes Analysis (PCA), encontrando as características faciais de maior importância no processo de reconhecimento, indicando a melhor solução para o problema de restrição amostral. Silva et al (2013) desenvolveram um sistema para detecção e classificação de motocicletas em vias públicas e detecção de motociclista sem capacete. Para atingir o objetivo os autores utilizaram um descritor híbrido para extração de características com base nos descritores Local Binary Pattern (LBP), Histograms of Oriented Gradients (HOG) e Transformada Circular de Hough (TCH). Esses descritores foram utilizados para extrair as características das imagens e em seguida, os vetores de atributos foram usados para classificação. 3. Base de Imagens As imagens utilizadas neste trabalho foram retiradas da base RIM-ONE [Trucco et al. 2013]. Essa base de imagens foi fornecida por três hospitais: Hospital Universitário de Canarias, Hospital Clínico San Carlos e Hospital Universitário Miguel Servet. Ela contém imagens de fundo de olho fornecidas por diferentes especialistas, provendo assim diversas imagens de olhos saudáveis e com diferentes níveis de glaucoma. A base é separada por categorias, ou seja, saudáveis e glaucomatosas, característica essa que à adequou a nosso trabalho, pois outras bases não forneciam essa distinção de imagens. A Figura 1 apresenta duas imagens da base RIM-ONE.

(a) Figura 1. a) Retina saudável com a escavação do disco óptico normal, b) Retina glaucomatosa, evidenciando uma escavação mais avançada. 4. Método Proposto O fluxograma apresentado na Figura 2 ilustra todos os passos realizados neste trabalho. (b) Figura 2. Fluxograma contendo os passos da metodologia proposta nesse trabalho. Neste trabalho a etapa de Pré-Processamento teve como objetivo amenizar as diferenças de luminosidade entre as imagens e evidenciar suas características para a fase de Extração de Características com o SURF [Bay et al. 2006]. Inicialmente, as imagens foram convertidas para tons de cinza, e em seguida, foi realizada a equalização do histograma, de modo a melhorar seu contraste. Na etapa da Extração de Características com o SURF, as imagens equalizadas foram submetidas à extração. O SURF por padrão retorna para cada ponto característico um vetor com 64 posições, esse vetor contém os valores que representarão a imagem numericamente. Nesse trabalho foi utilizado o valor de 128 posições, para melhor representar as imagens. Apesar de ser uma boa opção para descrever imagens de forma mais detalhada, o uso de descritores locais pode se tornar uma grande dificuldade no momento da classificação das amostras. Eles retornam como saída um vetor de atributos que varia de acordo com a imagem, devido a isso não há o controle da quantidade de atributos descritos. Tendo em vista essa inconsistência, os classificadores não conseguem trabalhar bem com representações geradas pelos descritores locais [Carvalho 2010].

Para solucionar a dificuldade dos classificadores tem-se como opção a utilização dos dicionários visuais. Os dicionários são uma forma de representação robusta para imagens onde cada imagem é vista apenas como uma coleção de regiões nas quais a informação espacial da região não importa. A única informação considerada é a aparência da região [Tinne et al. 2008]. Os dicionários visuais são matrizes compostas por palavras (linhas da matriz) que são feitas pelos pontos mais representativos da imagem extraídos pelo algoritmo SURF. Esses dicionários são usados para capturar as propriedades comuns entre as regiões marcadas pelo algoritmo SURF [Araujo et al. 2013]. Na etapa de Criação dos Dicionários Visuais as duas matrizes com os atributos extraídos passaram por um processo de agrupamento. O algoritmo utilizado para agrupamento foi o k-means. Esse algoritmo dividiu a matriz em 128 e selecionou os atributos que melhor representaram cada um desses clusters. Para gerar as assinaturas das imagens, o processo realizado foi basicamente o mesmo da constituição do dicionário visual. Primeiramente, as imagens passaram pela etapa de Pré-processamento, depois, suas características foram extraídas com SURF, resultando em duas matrizes, uma com atributos doentes e outra com atributos saudáveis. A assinatura é a representação de uma imagem por meio de um vetor, construído a partir do dicionário visual, sendo inicialmente composto apenas por zeros. Para gerar a assinatura foi feita a comparação de cada atributo da imagem com todas as linhas (palavras) do dicionário, calculando a diferença entre o atributo e a linha do dicionário, assim, a posição que possuía a menor diferença foi localizada. Além disso, foi incrementada em uma unidade a respectiva posição no vetor, ocorrendo esse processo para todos os atributos de todas as imagens. A fase de extração de características com LBP [Ojala et al.1996] ocorre com as imagens originais. Ele é um descritor de textura, que cria janelas 3x3 a partir da imagem original e compara o pixel central com seus 8 vizinhos. Assim, uma matriz binária é criada onde os valores menores que o pixel central recebem valor zero e os maiores recebem um. Feito isso, foi gerada uma matriz 3x3 contendo como pesos, os valores baseados em potências de 2. Os valores da matriz binária foram multiplicados por os valores da matriz de peso, assim, foram somados os resultados da multiplicação, sendo esse resultado armazenado em um histograma de 0 a 255. Por fim, para realizar a classificação das imagens, foram concatenados as assinaturas geradas juntamente com o histograma obtido de cada imagem por meio do LBP, gerando um vetor de 512 atributos. 5. Resultados e Discussões Na avaliação do algoritmo desenvolvido, 20 imagens saudáveis e 15 doentes foram utilizadas na construção do dicionário visual. Já na verificação do desempenho do algoritmo, foram testadas 98 imagens saudáveis e 25 doentes, em que tiveram suas assinaturas geradas e seus histogramas LBP concatenados à assinatura.

O software utilizado para classificação foi o Waikato Environment for Knowledge Analysis (WEKA) [Witten et al. 2011]. Os algoritmos testados nesse trabalho foram: Random Forest [Breiman 2001], C4.5 [Quinlan 1986] Radial Basis Function (RBF) Classifier [Frank 2014], Simple Logistic [Landwehr et al. 2005] e Logistic Model Trees (LMT) [Landwehr et al. 2005]. Os resultados de precisão, recall, acurácia e kappa [Rosenfield e Fitzpatrick-lins 1986] encontrados para cada um dos classificadores são apresentados na Tabela 1. Tabela 1. Resultado dos melhores classificadores. Precisão Recall Acurácia Kappa Random Forest 87,40 87,80 87,81 0,61 C4.5 87,50 87,90 87,92 0,62 RBF 89,00 89,40 89,43 0,64 Simple Logistic 90,10 90,20 90,25 0,66 LMT 92,60 92,70 92,68 0,76 Os parâmetros utilizados para classificação foram os padrões do WEKA e o critério de avaliação foi o k-fold cross-validation (com k = 10). Todos os classificadores obtiveram resultados satisfatórios, contudo o que mais se destacou foi o LMT, por ter alcançado os melhores índices, com acurácia de mais 92% e kappa de 0,76. Os resultados comprovam a eficiência da extração da extração de características atingindo índices considerados bons segundo literaturas. 6. Conclusão e Trabalhos Futuros O PDI está evoluindo rapidamente tornando-se uma ferramenta de auxílio em todas as áreas. Na medicina o diagnóstico de doenças por PDI traz rapidez, confiabilidade e redução de custo. Esse trabalho apresentou uma forma de detecção automática do Glaucoma em imagens do fundo de olho da retina. Para a extração das características das imagens foram utilizados o SURF e o LBP e os resultados obtidos foram bastante satisfatórios, com cerca de 92.68% de acurácia, totalizando um kappa de 0.76. Como trabalhos futuros, espera-se utilizar novos descritores para a extração de características das imagens, e novos classificadores para avaliação. Por fim, serão implementados métodos de detecção automática do Glaucoma em imagens de retina existentes na literatura e comparados com o método proposto nesse trabalho. 7. Referências Bibliográficas Amaral, V. e Thomaz, C. E. (2012) Extração e Comparação de Características Locais e Globais para o Reconhecimento Automático de Imagens de Faces. XIII Workshop de Visão Computacional (WVC), São Bernardo do Campo, São Paulo Brasil.

Araújo, F., Silva, R., Macedo, A., Aires, K. e Veras, R. (2013) Automatic Identification of Diabetic Retinopathy in Retinal Images Using Ensemble Learning. Workshop de Informática Médica, Maceió, Alagoas, Brasil. Bay, H., Tuytelaars, T. e Gool, L, V. (2006) Surf : Speeded up robust features. European Conference on Computer Vision, p 404 417. Breiman, L. (2001) Random forests. Machine Learning, 45(1):5 32. Carvalho, T. J. (2010) Aplicação de Técnicas de Visão Computacional e Aprendizado de Máquina para a Detecção de Exsudatos Duros em Imagens de Fundo de Olho. Dissertação de Mestrado em Ciência da Computação, Instituto de Computação, Universidade Estadual de Campinas, Campinas, Brasil. Frank, E. (2014) Fully supervised training of Gaussian radial basis function networks in WEKA. Department of Computer Science, The University of Waikato. Landwehr, N., Hall, M. e Frank, E. (2005). Logistic model trees. Machine Learning, 59(1-2):161 205. Ojala, T., Pietikinen, M. e Harwood, D. (1996). A comparative study of texture measures with classification based on featured distributions, Pattern Recognition 26(1): 51 59. Quigley, H. A. e Broman, A. T. (2006) The number of people with glaucoma worldwide in 2010 and 2020. Br J Ophthalmol. 90(3): p. 262-7. Quinlan, J. R. (1986). Induction of decision tree. Machine Learning, 1(1): 81 106. Rosenfield, G. H. e Fitzpatrick-lins, K. A. (1986). A coefficient of agreement as a measure of thematic classification accuracy. Photogrammetric Engineering and Remote Sensing, 52:223 227. Silva, R., Aires, K., Santos, T., Abdalla, K. e Veras, R. (2013) Segmentação, classificação e detecção de motociclistas sem capacete. XI Simpósio Brasileiro de Automação Inteligente (SBAI), Fortaleza, Ceará Brasil. Tinne, T., Gool, L. V., Bay, H. e Andreas, E. (2008) Speeded-up robust features (SURF). Computer Vision Image Understand, 110(3):346 359, 2008. Trucco, E., Ruggeri, A., Karnowski, T., Giancardo, L., Chaum, E., Hubschman, J. P., Al-Diri, B., Cheung, C. Y., Wong, D., Abràmoff, M., Lim, G., Kumar, D., Burlina, P., Bressler, N. M., Jelinek, H. F., Meriaudeau, F., Quellec, G., Macgillivray, T. e Dhillon, B. (2013) Validating Retinal Fundus Image Analysis Algorithms : Issues And A Proposal. Invest. Ophthalmol. Vis. Sci., vol. 54, no. 5, pp. 3546 3559. Weinrb, R. N. e Khaw, P. T. (2004) Primary opne-angle glaucoma. The Lancet. Witten, I. H., Frank, E., e Hall, M. A. (2011). DATA MINING : Practical Machine Learning Tools and Techniques. Morgan Kaufmann, 3 edition. WHO. World health organization (WHO). Disponível em: http://apps.who.int/ghodata /?vid =5200, 2014, acessado em Setembro de 2014.

Desenvolvimento de Módulo Wireless para Acionamento de Cargas via Porta Paralela Pedro H. M. Araújo 1, Renan P. Figueiredo 1, Douglas L. Dias 1, Sandro C. S. Jucá 1 1 Área da Telemática Instituto Federal de Educação, Ciência e Tecnologia do Ceará (IFCE) CEP 61939-140 Campus Maracanaú CE - Brasil {hericsonaraujo2013,renanpdef,dldouglaslopes,sandro.juca}@gmail.com Abstract. This article aims to control different loads using a transmitter and a wireless receiver with a Front End developed in C language that performs communication with the Parallel Port promoting Metarecycling. With this system, you can enable loads with user-defined options, such as turn by time, turn by turn software or by an external sensor. Resumo. Este artigo tem como objetivo controlar cargas diferentes utilizando um transmissor e um receptor wireless juntamente com um Front End desenvolvido em linguagem C que realiza a comunicação com a Porta Paralela promovendo a Metareciclagem. Com este sistema, é possível ativar as cargas com opções definidas pelo usuário, tais como ativar por horário, ativar por software ou ativar por sensor externo. 1. Introdução Com o crescimento acelerado da tecnologia computacional, tecnologias que hoje estão em desuso são consequentemente descartadas. Para evitar o acúmulo de lixo eletrônico, é necessária uma análise profunda com relação a essas tecnologias, visando buscar alternativas para o uso das mesmas. Metareciclagem é um conceito de reapropriação de tecnologias que visa à transformação social. Possui princípios tais como a apropriação crítica de tecnologias, ênfase em tecnologias para o uso social, uso de software livre devido à concepção do conhecimento como um bem coletivo e livremente apropriável [Goulart 2008]. A partir deste conceito e a possibilidade de associar essas tecnologias com uma conexão Wireless permite ao usuário maior comodidade ao ativar cargas próximas sem a presença de cabos entre o transmissor e o receptor e também maior praticidade para a instalação do sistema. Com conhecimento em eletrônica e linguagem de programação C pode-se desenvolver um sistema para o acionamento de cargas através da Porta Paralela. Nesse projeto foi utilizado um estabilizador em desuso, uma campainha sem fio, uma placa de fenolite, um conector DB25, um circuito integrado (CI)4017 [Datasheet 4017 2014] e um computador com porta paralela. Através do software desenvolvido em linguagem C é realizada a comunicação do circuito com a porta paralela possibilitando ao usuário ativar as saídas de diversas formas tais como por horário previamente estabelecido, por sensor externo ou em tempo real.

2. Placa Eletrônica Por meio de uma placa eletrônica fabricada, foi possível desenvolver o projeto. Todo o sistema é alimentado com 5V sendo possível ativar cargas com alimentação de 220V,foi utilizado componentes eletrônicos tais como capacitores, resistores, (CI)4017, transistores BC 337, diodos, LEDs, relés e acoplador óptico. 2.1 Funcionamento A interação entre software e hardware é essencial para este projeto, pois as saídas são escolhidas de acordo com o número de pulsos enviados pelo programa. Esses pulsos são recebidos pelo CI 4017 e sequenciados de acordo com a opção. O circuito integrado 4017 pertence à família lógica CMOS em que os componentes podem funcionar com tensões de 3 a 15 Volts e possuem características que permitem sua interligação direta e com outros componentes como o CI 555. No CI 4017, encontra-se um contador/decodificador Johnson com uma entrada e 10 Saídas, como mostra a Figura 1. [Braga 2014]. Figura 1. Diagrama de blocos do 4017 com uma entrada e 10 Saídas [BRAGA 2014] Na operação normal, os pinos Clock EM (clockinhibit) e RST (Reset) estão ligados ao GND e no pino de CLK (Clock) são aplicados pulsos retangulares. É possível ver no diagrama de tempos mostrado da Figura 2, partindo da condição que a saída S0 se encontra em nível alto e as demais no nível baixo. Ocorre o seguinte: a cada pulso aplicado, a saída que está no nível alto passa ao nível baixo e a seguinte passa ao nível alto. [Braga 2014]. Figura 2. Diagrama de tempos do CI 4017 [BRAGA 2014]

2.1.1 Circuito Transmissor Após o usuário definir a opção de saídas desejada, o sistema ativa a saída da porta paralela, havendo assim nível lógico alto por aproximadamente um segundo (definido pelo programa) no pino 6, que alimenta a base do transistor BC 337 para acionamento do relé e do transmissor como mostra a Figura 3. Após 1 segundo, o pino 6 volta a ser nível lógico baixo e o sistema então envia um pulso ao receptor. A quantidade de pulsos enviados é determinada pela opção do usuário. 2.1.2 Circuito Receptor Figura 3.Circuito para ativação do transmissor Inicialmente, a Saída 1 está ativada, cabendo ao usuário escolher as outras saídas que deseja acionar e o sistema envia pelo transmissor os pulsos necessários. O receptor direciona os pulsos para o CI 4017 que sequencia suas saídas. Neste caso, está sendo utilizado um contador 1 até 5, pois é o número de opções que o usuário pode escolher. Foram utilizadas as saídas Q0 a Q5 do CI 4017. A Saída Q4 (pino 10) é utilizada para desligar todas as saídas, não havendo nenhuma ligação atribuída a ela. A Saída Q5 (pino 1) é utilizada para resetar a contagem e as saídas Q0 a Q3 (respectivamente os pinos 3,2,4,7) alimentam a base dos transistores BC 337 (NPN), que ativam a bobina do relé, comutando o contato entre o comum e o normalmente aberto (NA). Tem-se, então, que Q0 ativa a Saída 1, Q1 ativa as saídas 1 e 2; Q2 ativa as Saídas 1,2 e 3 e Q3 ativa as Saídas 1,2,3 e 4. Na Figura 4, pode ser observado o circuito que sequencia os pulsos recebidos ativando as saídas. Figura 4.Esquemático do circuito

Os diodos são de extrema importância neste circuito, pois controlam o fluxo da corrente impossibilitando que uma saída interfira no estado de outra. Se o usuário escolher acionar as Saídas 1,2 e 3, o programa irá identificar quantos pulsos serão necessários para que a saída Q2 (pino 4) esteja em nível alto alimentando as bases dos transistores Q1, Q2 e Q3 que ativam os relés U2,U3 e U4, fazendo com que as saídas 1, 2 e 3 fiquem ativadas. 3. Porta Paralela A porta paralela é uma interface de comunicação entre computadores e periféricos. O computador nomeia as portas paralelas, chamando-as de LPT1, LPT2, LPT3 etc, porém, a porta física padrão de seu computador é a LPT1 e seus endereços são 378h (para enviar um byte de dados), 378+1h (para receber um valor) e 378+2h (para enviar dados). Às vezes, pode está disponível a LPT2, e seus endereços são: 278h, 278+1h e 278+2h, com as mesmas funções dos endereços da porta LPT1 [Computer Hope 2014]. O conector de uma porta paralela é chamado de DB-25. Possui 25 pinos e é através deles que ocorre a transmissão de dados (Figura 5). Um dos pinos se encontra em nível lógico baixo quando sua tensão elétrica está entre 0V e 0,4V. Já quando é considerado em nível lógico alto, está entre 3,1V e 5V. Na aplicação deste circuito foi utilizado a saída D4 (pino 6) e a entrada SLCT OUT (pino 13). 4.FrontEnd Figura 5. Pinos de entrada e saída da Porta Paralela [ROGERCOM 2014] Utilizando Linguagem C foi criado um menu com as opções de Ativar Saídas, Ativar por Horário e Ativar por Sensor Externo. De acordo com a opção do usuário, o programa irá identificar quantos pulsos deverão ser enviados pela porta paralela. Na opção Ativar Saídas, o usuário escolhe as saídas desejadas e o sistema as ativa. No modo Ativar por Horário, o usuário entra com um horário desejado e, as saídas que devem ser ativadas, o sistema ficará verificando até encontrar o horário especificado, acionando as saídas escolhidas. Por último, em Ativar por Sensor Externo, o usuário escolhe quais saídas devem ser ativadas quando um sinal nível lógico baixo de um sensor externo for identificado, quando não existir um sinal externo, o sistema desliga todas as saídas. A interface gráfica do sistema foi desenvolvida em linguagem C utilizando a biblioteca GTK [Vivaolinux 2010], como mostra a Figura 6.

5.Resultados Figura 6. Interface Gráfica do programa para acionamento das cargas Com o programa finalizado, é possível ligar as chaves desejadas, tem-se então o circuito contido na extensão wireless construído em placa fenolite, como mostra a Figura 7. Figura 7. Placa do circuito sequenciador Tem-se também o transmissor construído em uma caixa plástica juntamente com os conectores DB25 e USB como se vê na Figura 8. Figura 8. Transmissor

Já a extensão Wireless foi construída em uma caixa de estabilizador em desuso e com leds sinalizando as saídas ativadas como mostra a Figura 9. 6. Considerações Finais Figura 9. Extensão Wireless Pôde-se observar que o projeto obteve resultados satisfatórios durante os experimentos, o circuito sequenciado respondeu bem aos comandos do transmissor. A possibilidade de ligar um equipamento através da porta paralela sem que o mesmo esteja conectado ao computador é um fator de grande importância. A interface gráfica desenvolvida é intuitiva e de fácil compreensão. Como aprendizado, é possível entender que a porta paralela pode ser usada para inúmeras aplicações. 7.Referências Braga, C.N. (2014) Conheça o 4017, http://www.newtoncbraga.com.br/index.php/como-funciona/645-conheca-o-4017- art062, Outubro. Computer Hope (2014) PARALLEL PORT, http://www.computerhope.com/jargon/p/paraport.htm, Outubro. Fairchild Semiconductor Corporation (1999) Datasheet 4017, http://pdf.datasheetcatalog.com/datasheets/320/499984_ds.pdf, Outubro. Endo, F.H. (2010) Introdução ao GTK+ em C, http://www.vivaolinux.com.br/artigo/introducao-a-gtk+-em-c/, 2010, Outubro.

Relato de uma Implantação de uma Ferramenta de Integração Contínua em um Núcleo de Práticas em Informática de uma Universidade Guylherme Tabosa Cabral 1, Carlos Diego Andrade de Almeida 1 1 Universidade Federal do Ceará (UFC) Quixadá CE Brasil guylhermetabosa@alu.ufc.br, carlosdiego@gmail.com Abstract. The implantation of a Continuous Integration Software at nucleus of practice in computer of Federal University of Ceara is described in this paper. It is done experimentally in a project where the SCRUM methodology was used during software development. Besides, the positive and negative experiences learned are described as well. Resumo. A implantação de uma ferramenta de integração contínua no núcleo de práticas em informática da Universidade Federal do Ceará é descrita neste artigo. Esta foi experimentalmente realizada em um projeto onde a metodologia SCRUM foi utilizada durante o desenvolvimento do software. Além disso, as experiências positivas e negativas também são descritas. 1. Introdução Nas últimas décadas, as metologias ágeis atraíram uma grande atenção por parte das empresas desenvolvedoras de software. Isto deve-se muito à relação das metodologias ágeis com o conjunto de boas práticas pertencentes a ela, que aumentam qualidade, controle e garantia ao produto. A Integração Contínua é uma dessas práticas, definida como uma ferramenta de gestão de configuração, que auxilia os desenvolvedores e permite que as mudanças realizadas no software sejam imediatamente avaliadas, testadas e verificadas, de modo a prover um feedback imediato para correção de possíveis erros de integração. Integrações, estas, que seriam verificadas apenas futuramente, posterior a problemas mais complexos de integração. Neste contexto, este trabalho propôs a implantação de uma ferramenta de integração contínua no Núcleo de Práticas em Informática (NPI) da Universidade. O NPI é o ambiente onde estudantes que estão em fase de conclusão de curso podem estagiar e aprimorar seus conhecimentos adquiridos no decorrer de sua vida acadêmica, além de concluírem seus componentes curriculares obrigatórios. Este surgiu, devido à pouca demanda de empresas de Tecnologia da Informação (TI) na região onde a universidade se encontra e a crescente exigência por profissionais dotados de experiência em desenvolvimento de software [Gonçalves et al. 2013]. Com a implantação será possível identificar as principais dificuldades que ocorreram neste processo, afim de identificar pontos positivos, negativos e apontar possíveis melhorias.

2. Integração Contínua Integração Contínua (IC) surgiu na comunidade Extreme Programming (XP), através de um dos seus maiores apoiadores e disseminadores, Martin Fowler [Pereira et al. 2013]. Trata-se de uma prática de desenvolvimento de software onde os membros de uma equipe integram seus trabalhos frequentemente. Cada pessoa deve integrar suas mudanças no mínimo, uma vez ao dia, podendo haver ainda múltiplas integrações. Cada integração seria verificada por uma build automatizada (incluindo testes) para detecção de erros de integração mais rapidamente. Muitas equipes acham que esta abordagem conduz a uma significante redução nos problemas de integração, permitindo assim que o time desenvolva software coeso mais rapidamente [Fowler 2006]. O processo de integração ocorre quando alguma mudança é identificada pelo sistema de controle de versão, que auxiliado por um servidor de integração contínua identificará a mudança e executará sua build privada [Mráz 2013]. A grande vantagem em utilizar uma ferramenta de integração contínua está em seus benefícios, o que torna-se um importante papel dentro do XP são, de acordo com [Duvall et al. 2007]: Redução de riscos: Através da detecção imediada de código quebrados, ou incorretos, reduz-se risco atrelados ao produto. Redução de processos manuais repetitivos: Um conjunto de tarefas são executadas automaticamente pela build privada do servidor de integração contínua. Permitir melhor visibilidade do projeto: Identificando informações inerentes ao desenvolvimento, como frequência de códigos defeituosos, módulos mais complexos, permitindo maior gerenciamento do projeto. Estabelecer uma maior confiança no produto do time de desenvolvimento: Com as visualizações de mudanças bem sucedidas, os desenvolvedores sentem maior confiança ao realizarem mudanças. Coleta de Métricas a cada build: Através da utilização de ferramentas de análise estática de código buscando identificar violações, não conformidades e assim investindo na melhoria contínua do software. Assim o objetivo da implantação foi alcançar os benefícios que a ferramenta possui para o produto e projeto. 3. Processo de implantação O processo de implantação iniciou com a avaliação do processo vigente no NPI afim de buscar analisar como as atividades eram executadas e servindo de insumo para o passo seguinte, a escolha da ferramenta. A ferramenta escolhida foi baseado no processo, tecnologia e características da organização. Finalmente implantada a ferramenta buscou-se avaliar os resultados desta ação, com identificação de pontos positivos e negativos com o objetivo de facilitar futuras implantações e avaliar o impacto dentro da organização. 3.1. Análise das atividades do NPI Esta etapa teve como início, a avaliação das atividades executadas no NPI. Para tal, fora realizado uma análise do processo 1 existente, somado à experiência do autor, pois este é 1 http://www.npi.quixada.ufc.br/processo/

um membro do NPI. O NPI possui um modelo de processo definido, este processo é baseado nos modelos e metodologias Scrum, MPS.BR e XP. Este modelo define as práticas e o modelo de trabalho dos envolvidos nas atividades do núcleo. Dentro do modelo de processo definido no NPI este trabalho tem como objetivo focar no modelo de processo de gerência de configuração. O NPI subdivide-se em dois turnos, manhã e tarde, sendo cada turno supervisionado por um professor supervisor diferente. Estes turnos podem ou não estar trabalhando no mesmo projeto, embora o mais comum é que trabalhem em projetos diferentes. As equipes contam com uma média de oito membros onde comumente destes, dois são alocados para as atividades de requisitos e testes, um para liderança técnica, enquanto o restante da equipe é alocado para as atividades de desenvolvimento, incluindo o líder técnico. O professor supervisor auxilia os líderes técnicos e realiza o papel de Product Owner. A avaliação destes dados serviu de entrada para escolha da ferramenta de integração contínua a ser implantada. 3.2. Escolha da Ferramenta Nesta segunda etapa do trabalho, a ferramenta de integração escolhida fora baseada nas informações coletadas na atividade anterior. A ferramenta escolhida foi o Jenkins, de acordo com os seguintes critérios: Suporte a Linguagem: O Jenkins permite suporte a uma grande diversidade de linguagens, tais como Java, PHP, Rails, Grails, Python, entre outras. Suporte ao Sistema de Controle de Versão: O Jenkins consegue integrar-se nativamente com os principais sistemas de controle de versão disponíveis: CVS, SVN, Mercurial, eogit através da utilização de plugin. Segurança: A segurança do Jenkins é habilitada através de permissões e papéis, onde a base de dados de usuários pode ser pela base interna do Jenkins, LDAP, usuários do sistema operacional e também através do usuário vinculado ao GitHub. Extensibilidade: Jenkins é extremamente flexível e adaptável, permitindo assim oferecer uma melhor atuação para diferentes propósitos através das centenas de plugins disponíveis. Plugins este que oferecem tudo, desde sistemas de controle de versão, ferramentas de build, ferramentas de análise estática de código, notificadores de build, alterações de UI (User Interface), integração com sistemas externos (Jira, Redmine). Usabilidade: Primeiramente, Jenkins é fácil de usar. A interface é simples e intuitiva, e o Jenkins como um todo possui uma curva de aprendizado baixa [Smart 2011]. Instalação e Configuração: Facilidade de instalação, diferentes ambiente de operação, tais como sistemas operacionais, utilização de recursos. Documentação clara e objetiva do processo de instalação informando dependência existentes. 3.3. Implantação A terceira e última etapa consiste na implantação da ferramenta já definida em um projeto piloto que estava iniciando, Gestão de Projetos Acadêmicos (GPA). O projeto GPA módulo de pesquisa, trata da automação dos processos de divulgação, aceitação e validação dos projetos da Universidade.

3.3.1. Pontos Positivos Comunicação: Com a utilização da integração contínua percebeu-se que a comunicação da equipe melhorou, pois as informações de falha de build foram discutidas assim que informadas aos responsáveis, que priorizavam sua correção, mesmo em horário fora de expediente. A falha era comunicada pessoalmente aos encontros entre aulas, e caso não fosse possível via meio virtual, redes sociais e e-mail. Coleta contínua de métricas: Através da integração do SonarQube como processo post-build do Jenkins, o resultados das análises serviram de insumo para melhoria do código através de refatoração. Assim, uma alteração no processo do NPI ocorreu, de modo a contemplar uma atividades de correção de issues fornecidas pelo SonarQube ao escopo da Sprint a fim de melhorar a qualidade do sistema, reduzir esforços e futuras manutenções. Boa receptividade da equipe: Ao serem explanados de como a ferramenta atuava e quais eram seus benefícios para o projeto e produto, os membros da equipe não reagiram de maneira contrária à utilização da ferramenta, mesmo que esta alterasse seu processo de trabalho. Fácil entendimento: A ferramenta forneceu uma interface amigável que permitia o bom entendimento das ações que estavam sendo executadas, facilitando a interpretação dos dados por ela gerados. Alguns membros relataram que comparada a outras ferramenta do gênero como o CruiseControl, o Jenkins possuía uma interface mais bonita e era mais simples de utilizar. Máquina com boas configurações: A implantação ocorreu em uma máquina com boas configurações para hospedagem. A execução da ferramenta não sofreu engasgos ou problemas de lentidão devido a alta performance do hardware. 3.3.2. Pontos Negativos Ausência de um Gerente de Configuração: A ausência de um gerente de configuração com experiência na equipe foi sentida durante problemas com o repositório, gerando gastos no tempo da equipe e ociosidade na ferramenta. Embora em algum casos, o autor tenha ficado informalmente responsável por essas atividade perante equipe e projeto. Ausência de testes automatizados: A ausência de testes automatizados no projeto inviabilizou a valoração de um dos principais benefícios da integração contínua, que se trata da execução de testes em sua build privada para verificação de problemas de integração, pois os testes embora fossem documentados e os casos de testes existissem, a forma de teste era manual, através de teste de exploração. Identificação de build em Branches distintos: Ao longo que o projeto trabalhava com o desenvolvimento em vários branches, a ferramenta SonarQube não fornecia uma identificação individual para cada, assim tornava-se difícil obter informações mais precisas sobre análise aplicada a cada branch. Problemas estruturais: A execução da ferramenta em uma máquina de um dos laboratórios do NPI constantemente era desligada por algum funcionário da uni-

versidade, ou esta era desligada devido as constantes quedas de energia ocorridas, sendo necessário a reinicialização manual. 4. Métricas do Código Uma métrica de software é uma característica de um determinado sistema de software, desenvolvimento, processo ou documentação, de modo que possa ser medido [Sommerville 2011]. A coleta das métricas do código foi realizado pelo SonarQube, onde este era um processo de post-build da build privada do Jenkins. Após cada coleta, um histórico foi armazenado na base de dados da ferramenta, onde a última análise do dia foi mantida. O histórico das métricas do código foi mantido no painel da ferramenta, onde todos os membros da equipe podiam visualizar e verificar no que poderiam trabalhar para melhorar a qualidade do software. Figura 1. Histórico de Issues do SonarQube A utilização das coletas das métricas permitiu que fossem criadas atividades específicas para correções das violações detectadas pela ferramenta dentro do escopo da Sprint de desenvolvimento como apresentado na figura 1. 5. Conclusão Com o mercado cada vez mais competitivo para consumir software, construir software com uma maior qualidade é essencial para a sobrevivência no mercado de trabalho. Assim, realizar a implantação de uma ferramenta de integração contínua requer cuidados, pois caso esta não seja suficientemente bem planejada, poderá trazer resultados adversos ao esperado, pois uma implantação forçada ou mal sucedida pode gerar resistência da equipe, diminuir a produtividade, burocratizar o processo, gerando assim um mal estar entre os membros do time e perca na qualidade do produto. Este trabalho permitiu principalmente criação de uma cultura de integração contínua no NPI que poderá ser repassada aos novos membros de novas equipes, somado ao aprendizado em trabalhar em um ambiente onde esta ferramenta está inserida tendo