Utilización de la plataforma Hadoop para implementar un programa distribuido que permita encontrar las paredes de células de la epidermis de plantas modificadas.

Slides:



Advertisements
Presentaciones similares
Logística y Distribución
Advertisements

Desarrollo de aplicaciones en n- capas
HARDWARE CONCEPTOS GENERALES
1 MEJORA DE UN ANALIZADOR AUTOMÁTICO DE ESTILOS PARA TEXTOS EN INGLÉS TÉCNICO: DESARROLLO DE LA AYUDA DE USUARIO. Madrid 2001Pilar Santamaría Rebollo.
Tesista: Jesús Rubén Hernández Carrillo
Aprende a hacer sitios web con wordpress
Universidad Nacional Autónoma de Honduras
Stuart Pérez A12729.
Coincidencia de imagen a través de cadena de triángulos
INTRODUCCIÓN A JAVA.
implementar (a veces es imposible) si se utilizan datos simples.
MÓDULO DE BÚSQUEDA DE PERSONAS DENTRO DE UNA BASE DE DATOS DE ROSTROS
Detección y extracción de placas de vehículos en señales de video
Búsquedas avanzadas en la Wikipedia
Microsoft InfoPath designer
RED EN LA NUBE LEE GOMEZ FEIST.
ESCUELA POLITÉCNICA DE LAS FUERZAS ARMADAS - ESPE
Sistema de Agrupamiento y Búsqueda de Contenidos de la Blogosfera de la ESPOL, Utilizando Hadoop como Plataforma de Procesamiento Masivo y Escalable de.
Sistema Para GENERAR gráficas a partir de logs tcpdump usando Hadoop
COMPONENTIZACIÓN DE ALGORITMOS GENETICOS Y SU IMPLEMENTACIÓN EN UNA PLATAFORMA ABIERTA PARA APRENDIZAJE COMPUTACIONAL.
UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
En este tipo de computación todo lo que puede ofrecer un sistema informático se ofrece como servicio, de modo que los usuarios puedan acceder a los.
Complemento a los Diagrama de Flujos Fundamentos de la Programación
JORNADA 1 DEL 24 DE MARZO AL 30 DE MARZO EQUIPO 01 VS EQUIPO 02 EQUIPO 03 VS EQUIPO 06 EQUIPO 05 VS EQUIPO 10 EQUIPO 07 DESCANSA EQUIPO 08 VS EQUIPO 13.
UNIVERSIDAD DE VALLADOLID
¿Qué es un algoritmo? “(del árabe al-Khowârizmî, sobrenombre del célebre matemático árabe Mohámed ben Musa). Conjunto ordenado y finito de operaciones.
Introducción a la Computación
Denisse Cayetano – Christian Rivadeneira
Bioinformática FJS.
Análisis Diseño y Desarrollo
Autor: Alberto Luengo Cabanillas
Sistema de Control de Accesos
ALGORITMOS, LENGUAJES Y TECNICAS DE PROGRAMACION
Fundamentos de Programación
SQL Server 2008 Integration Services
Generación de recomendaciones de ítems musicales basado en las valoraciones implícitas y las similitudes de los usuarios utilizando Hadoop para procesamientos.
“Análisis de Rendimiento para Soluciones de Cloud Computing”
Programacion Web Practica 1 Estudio de la aplicación distribuida: Apache Hadoop.
Presentado por: Denisse Saltos Tiziana Herrera.
OpenCV Ing. Francisco Carlos Calderón Pontificia Universidad Javeriana
Computación en la Nube UASF.
Mock objects Rosemary Torrico Bascopé. Introducción Las Pruebas de unidad han sido aceptadas como la “mejor práctica” para el desarrollo de software.
Problema de inclusión en una Curva Digital Por Orellana Muñoz, Alfonso Paz Vicente, Rafael Pérez Medina, Gerardo Rodríguez Naranjo.
Integrantes: Jorge Herrera M. Carlos Rodríguez R..
Introducción a la tecnología Realizado por: Miguel Ángel Arias.
ASOPROJECT Componentes del grupo: - Alberto Díaz Gil - Miguel Ángel Llorente Gracía - Javier E. Yépez Hualde.
Una nube de servicios y oportunidades. El cloud computing es un modelo de distribución de tecnológica que se caracteriza principalmente porque tiene una.
Informe de Materia de Graduación “Uso de la plataforma Pig sobre Hadoop como alternativa a una RDBMS para el análisis de datos masivos. Prueba de concepto.
Agenda  Introducción  Relevamientos de tecnologías Objetivos de la fase de relevamiento de tecnologías Principales tecnologías disponibles -OpenMosix,
Aplicación y uso de la herramienta
LOGO e-Learning Desktop Integración de RIA’s a objetos de Aprendizaje Alvaro Rodríguez, Darvin Orozco, Rocael Hernández Universidad Galileo {alvrodriguez,
PROYECTO EMPRESARIAL Clase # 1.
Cloud Computing.
CENTROS DE DATOS Y COMPUTACIÓN EN LA NUBE
Universidad Metropolitana Introducción a la Computación
WEB Y MULTIMEDIA INTEGRANTES: Piero Álvarez Milena Gómez Cristhian Rodríguez Mónica Pasaca Andrea Deleg Veronica Castillo.
Rendimiento de la CPU y sus factores
Elaboración de algoritmos usando lógica de programación
RESEARCH ON ALGORITHMS OF DATA MINING UNDER CLOUD COMPUTING ENVIRONMENT BY FEI LONG KEVIN FLORES ALVAREZ INF-252.
Tema 11 Bases de Datos y el Lenguaje SQL
Pixelación de imágenes avanzada usando el algoritmo slic
Computación en la Nube.
Marco de Trabajo para Indexación, Clasificación y Recopilación Automática de Documentos Digitales Javier Caicedo Espinoza Gonzalo Parra Chico.
Optativa II Carlos Quilumbaqui. ¿Qué es Big Data? Big Data son grandes en cantidad, se capturan a un índice rápido, y son estructurados o no estructurados,
Integrantes Miguel Betancourt Alexis Tacuri.  Activiti es una plataforma para la formación de flujos de trabajo y procesos empresariales dentro del.
Conalep 150 Tehuacán inmi 309 soma
La programación modular es un paradigma de programación que consiste en dividir un programa en módulos o subprogramas con el fin de hacerlo más legible.
Clase 2: introducción (2ª parte) iic1102 – introducción a la programación.
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
Informe de Materia de Graduación
Transcripción de la presentación:

Utilización de la plataforma Hadoop para implementar un programa distribuido que permita encontrar las paredes de células de la epidermis de plantas modificadas genéticamente GUSTAVO IRVING CALI MENA ERICK ROGGER MORENO QUINDE

Agenda Introducción Antecedentes El problema Objetivos Algoritmo de detección de paredes de las células. Hadoop (MapReduce) Amazon Web Services Diseño e Implementación Pruebas y Resultados Conclusiones y Recomendaciones

Antecedentes (I) Se tiene un conjunto de imágenes DIC de las células de plantas del tipo Arabidopsis Thaiana Existe un algoritmo que encuentra las paredes de las células usando este tipo de imágenes implementado en Matlab. Objeto transparente Desfase o polarización Interferencia Ejemplo de Imagen DIC Como antecedentes tenemos que DIP demanda de muchos recursos y tiempo. DIC es differential interface contrast. Imágenes falsas, se desfasa un delta pequeño y se restan, este procedimiento se realiza para poder hacer visibles superficies invisibles de las paredes Tambien debemos mencionar que se tuvo un algoritmo, el cual realizaba la detección de las paredes de las celulas implementado en MatlLab, el cual nos permite leer la imagen como un matriz, aplicar operaciones sobre el de forma sencilla como multiplicación, division, convoluciones, además ofrece un desarrollo rapido.

Antecedentes (II) El procesamiento digital de imágenes en general es costoso tanto en tiempo como en recursos (hardware). Una de las librerías de mayor acogida actualmente para procesamiento digital de imágenes es OpenCV. Hadoop fue concebido originalmente para el procesamiento de texto. Para tener 3 minutos y medio de animación se demoraban una semana. Esta optimizada para el procesamiento de imágenes, se puede usar con c++ y python, es facil de aprender y tiene un conjunto de funciones muy utiles a la hora de procesar imágenes, aparte de la variedad de formatos que soporta.

Las imágenes capturadas tienen una resolución de 2560 X 1920 píxeles. El Problema Se necesita procesar una gran cantidad de imágenes en el menor tiempo posible. Las imágenes capturadas tienen una resolución de 2560 X 1920 píxeles. El algoritmo implementado en Matlab es lento. Por cada muestra se generar varias imagenes que deben ser procesadas, como mitigación a la segmentación q producen las imágenes DIC, que para ser capturadas usan una iluminación direccional, la cual hace visibles solo ciertas partes de las paredes celulares que en ese momento se encuentren expuestas a la luz, se usó un microscopio DIC en el que fue necesario realizar 12 rotaciones y con 3 diferentes objetivos durante las captura, dando como resultado 36 imágenes por cada muestra. El primer inconveniente que encontramos fue que las imágenes fueron tomados con equipos de bioinformatica de gran precisión los cuales dieron como resultado imágenes de resolución muy grandes como lo son 2560X1920, los cuales al ser traducidos a un arreglo ocuparía 4’915.200 posiciones a ser procesadas por cada imagen. Matlab al estar desarrollada su interfaz grafica y funciones en JAVA genera un respuesta lenta, el manejo de los índices de las matrices además de no esta optimizado , Motivo para no usar Matlab.- tiene una extensión que le permite la ejecución en ambientes distribuidos como AWS, pero la desventaja principal es que se necesita una licencia por cada nodo levantado.

Objetivos Re codificar el algoritmo de Matlab a una aplicación en C++. Adaptar el código C++ que obedezca el paradigma MapReduce para poder ser ejecutado en Hadoop.

Objetivos (II) Adaptar las clases de entrada y salida de Hadoop para el manejo de imágenes. Realizar la comparación de los tiempos de procesamiento entre los 2 lenguajes en que se implementó la solución.

Algoritmo de Detección de paredes de las células (I) El Algoritmo de procesamiento para la detección de las paredes celulares que se implementó se divide en 5 pasos: 1.- Filtros de coincidencias. 2.- Detección de las estructuras curvilíneas. 3.- Image Registration. 4.- Combinación de imágenes. 5.- Binarización de la imagen.

Algoritmo de Detección de paredes de las células (II)

HADOOP Es un framework open-source desarrollado en Java que nació como proyecto de Apache para el procesamiento y consulta de grandes cantidades de datos sobre un grupo de computadores. La programación en Hadoop implementa el modelo de programación MapReduce desarrollado por Google. Hadoop Pipes, es una solución a la ejecución de aplicaciones desarrolladas en el lenguaje C++. Paralelización de tareas Control de trabajos Tolerancia a fallos Escalabilidad Detección de errores Sincronización

MAP REDUCE Explicar la fase de orden y agrupamiento de los datos de salida de los mapper, y la creacion de un reducer por cada clave generada.

Amazon Web Services (I) Servicios de computación en la nube orientado a la escalabilidad: Elastic Computing Cloud (EC2) Permite levantar nodos bajo demanda proveyendo la infraestructura. Simple Storage Service (S3) Almacenamiento escalable de datos Elastic MapReduce (EMR) Automatiza tarea de levantar un clúster Hadoop sobre EC2

Amazon Web Services (II)

Diseño La fase mapper realiza los filtros de coincidencia, la detección de lineas, el image resitratión, Por su naturaleza la fase combinatoria se realiza en el reducer y la funcion de umbral para la binarización.

Implementación (I) Implementación de las clases SimpleFileInputFormat y SimpleFileOutputFormat en java para la lectura y escritura de imágenes completas en Hadoop. Implementación de la librería ImageOpenCV con funciones de procesamiento de imágenes que trabaja en conjunto con la librería Stira de Filip Rooms.

Implementación (II) Modificación del algoritmo de detección de líneas propuesto por Steger de la librería Stira. Implementación de funciones para leer y escribir imágenes de punto flotante con la librería OpenEXR.

Pruebas y resultados (I) Resultado de usar un umbral de 0.0007. Resultado de usar un umbral de 0.02. Resultado de usar un umbral de 0.005.

Pruebas y resultados (II) eficacia

Pruebas y resultados (III) Tiempo (hh:mm:ss) eficiencia Número de nodos

Pruebas y resultados (IV) Nodos Costo($) Duración  2 1.47 2:09:45 6 0:18:56 12 2.67 0:15:05 15 3.27 0:07:02 18 3.87 0:06:04 COSTO DE GRUPO = Σ COSTOS de TODAS LAS SESIONES COSTO DE UNA SESIÓN = $0.20 * # nodos en cluster * # de horas en que el cluster estuvo levantado (se redondean al entero superior) + $ 0.10 por GB transferido hacia el cluster + $ 0.17 por GB transferido desde el cluster. Costos

Conclusiones El valor de umbral que brinda información efectiva de las paredes de las células se encuentra alrededor de 0.005. El algoritmo implementado en C++ es aproximadamente 3 veces más rápido que el algoritmo desarrollado en Matlab. El número ideal de nodos para con un volumen de datos a procesar mayor a 700 MB, es de 6 nodos.

Recomendaciones Una de las posibles mejoras del proyecto es crear una interfaz para la carga de las imágenes, ejecución del algoritmo y descargar de las imágenes de salida. Es recomendable utilizar un AMI que tenga instalada la misma distribución con la que se realizaron las pruebas locales. Configurar Hadoop para que la salida de la aplicación sea guarda directamente en un bucket de S3 para una mejor accesibilidad a la información.

Gracias por su atención ¿Preguntas? Gracias por su atención