RESUMEN El presente trabajo presenta una recopilación de notas y apuntes de docencia correspondie... more RESUMEN El presente trabajo presenta una recopilación de notas y apuntes de docencia correspondientes al tema "Análisis de Algoritmos y Complejidad" que puede ser utilizado en diversos cursos de la Licenciatura en Computación e inclusive como material introductorio para algunos cursos de post-grado. Se presentan los conceptos y herramientas básicas para el cálculo de complejidad tanto en tiempo como en espacio, para algoritmos escritos en lenguajes imperativos (incluyendo algoritmos recursivos). Estas herramientas están acompañadas de ejemplos didácticos que ilustran su utilización. Se presenta también una reseña sobre las técnicas clásicas para la resolución de problemas y sus correspondientes estudios de complejidad en tiempo. Finalmente, se presenta una breve introducción a la teoría de problemas NP-completos. Cabe destacar que estas notas de docencia están acompañadas de un conjunto de referencias bibliográficas que complementan significativamente los conceptos aquí in...
The representation of an image as a flow network has gained an increased interest in research for... more The representation of an image as a flow network has gained an increased interest in research for the 2D and 3D segmentation field. One of these segmentation approaches consists in applying a minimum cut algorithm to separate the image in background and foreground. The most remarkable algorithm to segment a 2D image using this approach is GrabCut. This article presents a novel segmentation of 3D image using GrabCut implemented on the GPU. We proposed a scheme where a volume dataset is used as input, instead of a 2D image. The original GrabCut algorithm is adapted to be executed on the GPU efficiently. Our algorithm is fully parallel and is optimized to run on Nvidia CUDA. Tests performed showed excellent results with different volumes, reducing the computation time and maintaining a correct separation background/foreground.
Nowadays, Virtual Colonoscopy (VC) is an important non-invasive alternative for the study of the ... more Nowadays, Virtual Colonoscopy (VC) is an important non-invasive alternative for the study of the colon. Substantial research efforts have been dedicated to this method, and one of the major challenges has always been producing accurate results in a short period of time. One of the most crucial phases of VC is the detection of polyp candidates, where possible lesions on the colon walls are automatically detected. Frequently, this stage requires intensive computations and therefore it is important to develop new techniques for reducing its execution time. This paper presents a technique for automatic detection of polyp candidates based on curvature analysis that reduces the execution time using parallel programming in CUDA. Additionally, we introduce a novel technique for discarding false positive detections based on the shape of a candidate in a planar cut. The obtained results show a remarkable reduction in execution time with respect to a CPU implementation as well as a low rate of...
Volume rendering is an important area of study in computer graphics, due to its application in ar... more Volume rendering is an important area of study in computer graphics, due to its application in areas such as medicine, physic simulations, oil and gas industries, and others. The main used method nowadays for volume rendering is ray casting. Nevertheless, there are a variety of parallel APIs that can be used to implement it. Thus, it is important to evaluate the performance of ray casting in diferent parallel APIs to help programmers in selecting one of them. In this paper, we present a performance comparison using OpenGL® with fragment shader, OpenGL® with compute shader, OpenCL, and CUDA.
The Central University of Venezuela, as part of its efforts for adapting its academic offer to na... more The Central University of Venezuela, as part of its efforts for adapting its academic offer to national and international needs, is conducting a project to review, evaluate and modify the Computer Science curriculum, in order to form the professional required by the country. In this paper we present the results of the first stage of the project: an assessment of the Computer Science curriculum based on the use of various data collection instruments used to determine the professor, student and graduates perception of the program as well as deficiencies and potential of our graduates, according to the companies and organizations that hire them. The results show that there exist a gap between the perception of our professors about the program and the opinion of the employers. We also present information about student performance during the last decade, which is an input to the next stage of the program redesign.
2016 XLII Latin American Computing Conference (CLEI), 2016
Volume rendering is an important area of study in computer graphics, due to its application in ar... more Volume rendering is an important area of study in computer graphics, due to its application in areas such as medicine, physic simulations, oil and gas industries, and others. The main used method nowadays for volume rendering is ray casting. Nevertheless, there are a variety of parallel APIs that can be used to implement it. Thus, it is important to evaluate the performance of ray casting in different parallel APIs to help programmers in selecting one of them. In this paper, we present a performance comparison using OpenGL® with fragment shader, OpenGL® with compute shader, OpenCL, and CUDA.
Este trabajo presenta en detalle la teoría necesaria para comprender e implementar la técnica de ... more Este trabajo presenta en detalle la teoría necesaria para comprender e implementar la técnica de rendering directo de volúmenes (direct volume rendering). Esto incluye la derivación paso a paso de la ecuación de composición volumétrica, y su implementación en los algoritmos de ray casting, planos alineados, conchas esféricas y shear-warp. Aborda también la clasificación pre-integrada, la cual mejora la calidad del rendering con poco impacto en el tiempo de respuesta, así como la inclusión de una luz externa para la iluminación.
Image segmentation is the process of partitioning an image in groups of pixels or voxels that sha... more Image segmentation is the process of partitioning an image in groups of pixels or voxels that share a common characteristic. High sensitivity and high precision segmentations of cerebral tumors in magnetic resonance images are necessary for the safe planning of radiosurgical treatment. GrowCut is an image segmentation method based in a cellular automaton that simulates the competitive growth of various bacteria colonies in the image space. We present a group of automata evolution rules for image segmentation that are derived from GrowCut, and a quantitative comparison of the segmentations of brain tumors in multichannel magnetic resonance images achieved through these rules in GPU implementations.
International Journal of Creative Interfaces and Computer Graphics, 2012
Collision detection has been studied for scenes containing only polygonal objects (surfaces) or o... more Collision detection has been studied for scenes containing only polygonal objects (surfaces) or only volumes. With the evolution of the graphics hardware, surfaces and volumes can be rendered together, demanding new challenges for the area of collision detection. In this order of ideas, the authors propose the first approach for volume-surface collision detection, with GPU support. A mapping from surface space to texture space is established, such as each mesh fragment has a 3D texture coordinate. The volume-surface collision is tested in the fragment shader, verifying if a surface fragment is texturized with an opaque voxel. OpenGL® occlusion query extension is used to count the number of mesh fragments colliding with the volume. Since one surface can be texturized with multiple volume textures, the authors’ approach is naturally extended to discard collision between one surface and several volumes in a single pass, with a minimum impact in the rendering time. The authors’ tests re...
Para realizar el despliegue de volúmenes multi-resolución se asigna un nivel de detalle a cada ár... more Para realizar el despliegue de volúmenes multi-resolución se asigna un nivel de detalle a cada área del volumen acorde a una prioridad. Para ello primero se establece una representación de múltiples niveles de detalle del volumen. Típicamente hay dos ...
En la actualidad, la Colonoscopia Virtual (CV) es una importante alternativa no-invasiva para el ... more En la actualidad, la Colonoscopia Virtual (CV) es una importante alternativa no-invasiva para el estudio del colon. Es mucha la investigación que se le ha dedicado a este método, siendo uno de los mayores retos producir resultados precisos, en poco tiempo. Una de ...
Resumen Se implementó un algoritmo para construir árboles de Partición Binaria del Espacio (BSP) ... more Resumen Se implementó un algoritmo para construir árboles de Partición Binaria del Espacio (BSP) basado en algoritmos genéticos. Los métodos tradicionales de construcción de árboles BSP, limitan la búsqueda a planos obtenidos a través de los polígonos de la ...
RESUMEN Philippe Lacroate en 1995 logró diseñar e implementar el primer algoritmo de visualizació... more RESUMEN Philippe Lacroate en 1995 logró diseñar e implementar el primer algoritmo de visualización volumétrica en tiempo real, que generaba una imagen por segundo en una plataforma Silicon Graphics, utilizando la factorización Shear-Warp. En este trabajo se ...
The image segmentation consists in obtaining a region of interest within a larger area. GrabCut i... more The image segmentation consists in obtaining a region of interest within a larger area. GrabCut is a recent tech- nique of 2D segmentation which presents excellent results. This is based on representing the image as a flow network, and then apply a minimum cut algorithm on the graph and separate the background image (background) and the region of interest (foreground).
RESUMEN El presente trabajo presenta una recopilación de notas y apuntes de docencia correspondie... more RESUMEN El presente trabajo presenta una recopilación de notas y apuntes de docencia correspondientes al tema "Análisis de Algoritmos y Complejidad" que puede ser utilizado en diversos cursos de la Licenciatura en Computación e inclusive como material introductorio para algunos cursos de post-grado. Se presentan los conceptos y herramientas básicas para el cálculo de complejidad tanto en tiempo como en espacio, para algoritmos escritos en lenguajes imperativos (incluyendo algoritmos recursivos). Estas herramientas están acompañadas de ejemplos didácticos que ilustran su utilización. Se presenta también una reseña sobre las técnicas clásicas para la resolución de problemas y sus correspondientes estudios de complejidad en tiempo. Finalmente, se presenta una breve introducción a la teoría de problemas NP-completos. Cabe destacar que estas notas de docencia están acompañadas de un conjunto de referencias bibliográficas que complementan significativamente los conceptos aquí in...
The representation of an image as a flow network has gained an increased interest in research for... more The representation of an image as a flow network has gained an increased interest in research for the 2D and 3D segmentation field. One of these segmentation approaches consists in applying a minimum cut algorithm to separate the image in background and foreground. The most remarkable algorithm to segment a 2D image using this approach is GrabCut. This article presents a novel segmentation of 3D image using GrabCut implemented on the GPU. We proposed a scheme where a volume dataset is used as input, instead of a 2D image. The original GrabCut algorithm is adapted to be executed on the GPU efficiently. Our algorithm is fully parallel and is optimized to run on Nvidia CUDA. Tests performed showed excellent results with different volumes, reducing the computation time and maintaining a correct separation background/foreground.
Nowadays, Virtual Colonoscopy (VC) is an important non-invasive alternative for the study of the ... more Nowadays, Virtual Colonoscopy (VC) is an important non-invasive alternative for the study of the colon. Substantial research efforts have been dedicated to this method, and one of the major challenges has always been producing accurate results in a short period of time. One of the most crucial phases of VC is the detection of polyp candidates, where possible lesions on the colon walls are automatically detected. Frequently, this stage requires intensive computations and therefore it is important to develop new techniques for reducing its execution time. This paper presents a technique for automatic detection of polyp candidates based on curvature analysis that reduces the execution time using parallel programming in CUDA. Additionally, we introduce a novel technique for discarding false positive detections based on the shape of a candidate in a planar cut. The obtained results show a remarkable reduction in execution time with respect to a CPU implementation as well as a low rate of...
Volume rendering is an important area of study in computer graphics, due to its application in ar... more Volume rendering is an important area of study in computer graphics, due to its application in areas such as medicine, physic simulations, oil and gas industries, and others. The main used method nowadays for volume rendering is ray casting. Nevertheless, there are a variety of parallel APIs that can be used to implement it. Thus, it is important to evaluate the performance of ray casting in diferent parallel APIs to help programmers in selecting one of them. In this paper, we present a performance comparison using OpenGL® with fragment shader, OpenGL® with compute shader, OpenCL, and CUDA.
The Central University of Venezuela, as part of its efforts for adapting its academic offer to na... more The Central University of Venezuela, as part of its efforts for adapting its academic offer to national and international needs, is conducting a project to review, evaluate and modify the Computer Science curriculum, in order to form the professional required by the country. In this paper we present the results of the first stage of the project: an assessment of the Computer Science curriculum based on the use of various data collection instruments used to determine the professor, student and graduates perception of the program as well as deficiencies and potential of our graduates, according to the companies and organizations that hire them. The results show that there exist a gap between the perception of our professors about the program and the opinion of the employers. We also present information about student performance during the last decade, which is an input to the next stage of the program redesign.
2016 XLII Latin American Computing Conference (CLEI), 2016
Volume rendering is an important area of study in computer graphics, due to its application in ar... more Volume rendering is an important area of study in computer graphics, due to its application in areas such as medicine, physic simulations, oil and gas industries, and others. The main used method nowadays for volume rendering is ray casting. Nevertheless, there are a variety of parallel APIs that can be used to implement it. Thus, it is important to evaluate the performance of ray casting in different parallel APIs to help programmers in selecting one of them. In this paper, we present a performance comparison using OpenGL® with fragment shader, OpenGL® with compute shader, OpenCL, and CUDA.
Este trabajo presenta en detalle la teoría necesaria para comprender e implementar la técnica de ... more Este trabajo presenta en detalle la teoría necesaria para comprender e implementar la técnica de rendering directo de volúmenes (direct volume rendering). Esto incluye la derivación paso a paso de la ecuación de composición volumétrica, y su implementación en los algoritmos de ray casting, planos alineados, conchas esféricas y shear-warp. Aborda también la clasificación pre-integrada, la cual mejora la calidad del rendering con poco impacto en el tiempo de respuesta, así como la inclusión de una luz externa para la iluminación.
Image segmentation is the process of partitioning an image in groups of pixels or voxels that sha... more Image segmentation is the process of partitioning an image in groups of pixels or voxels that share a common characteristic. High sensitivity and high precision segmentations of cerebral tumors in magnetic resonance images are necessary for the safe planning of radiosurgical treatment. GrowCut is an image segmentation method based in a cellular automaton that simulates the competitive growth of various bacteria colonies in the image space. We present a group of automata evolution rules for image segmentation that are derived from GrowCut, and a quantitative comparison of the segmentations of brain tumors in multichannel magnetic resonance images achieved through these rules in GPU implementations.
International Journal of Creative Interfaces and Computer Graphics, 2012
Collision detection has been studied for scenes containing only polygonal objects (surfaces) or o... more Collision detection has been studied for scenes containing only polygonal objects (surfaces) or only volumes. With the evolution of the graphics hardware, surfaces and volumes can be rendered together, demanding new challenges for the area of collision detection. In this order of ideas, the authors propose the first approach for volume-surface collision detection, with GPU support. A mapping from surface space to texture space is established, such as each mesh fragment has a 3D texture coordinate. The volume-surface collision is tested in the fragment shader, verifying if a surface fragment is texturized with an opaque voxel. OpenGL® occlusion query extension is used to count the number of mesh fragments colliding with the volume. Since one surface can be texturized with multiple volume textures, the authors’ approach is naturally extended to discard collision between one surface and several volumes in a single pass, with a minimum impact in the rendering time. The authors’ tests re...
Para realizar el despliegue de volúmenes multi-resolución se asigna un nivel de detalle a cada ár... more Para realizar el despliegue de volúmenes multi-resolución se asigna un nivel de detalle a cada área del volumen acorde a una prioridad. Para ello primero se establece una representación de múltiples niveles de detalle del volumen. Típicamente hay dos ...
En la actualidad, la Colonoscopia Virtual (CV) es una importante alternativa no-invasiva para el ... more En la actualidad, la Colonoscopia Virtual (CV) es una importante alternativa no-invasiva para el estudio del colon. Es mucha la investigación que se le ha dedicado a este método, siendo uno de los mayores retos producir resultados precisos, en poco tiempo. Una de ...
Resumen Se implementó un algoritmo para construir árboles de Partición Binaria del Espacio (BSP) ... more Resumen Se implementó un algoritmo para construir árboles de Partición Binaria del Espacio (BSP) basado en algoritmos genéticos. Los métodos tradicionales de construcción de árboles BSP, limitan la búsqueda a planos obtenidos a través de los polígonos de la ...
RESUMEN Philippe Lacroate en 1995 logró diseñar e implementar el primer algoritmo de visualizació... more RESUMEN Philippe Lacroate en 1995 logró diseñar e implementar el primer algoritmo de visualización volumétrica en tiempo real, que generaba una imagen por segundo en una plataforma Silicon Graphics, utilizando la factorización Shear-Warp. En este trabajo se ...
The image segmentation consists in obtaining a region of interest within a larger area. GrabCut i... more The image segmentation consists in obtaining a region of interest within a larger area. GrabCut is a recent tech- nique of 2D segmentation which presents excellent results. This is based on representing the image as a flow network, and then apply a minimum cut algorithm on the graph and separate the background image (background) and the region of interest (foreground).
Volume rendering is an important area of study in computer graphics, due to its application in ar... more Volume rendering is an important area of study in computer graphics, due to its application in areas such as medicine, physic simulations, oil and gas industries, and others. The main used method nowadays for volume rendering is ray casting. Nevertheless, there are a variety of parallel APIs that can be used to implement it. Thus, it is important to evaluate the performance of ray casting in different parallel APIs to help programmers in selecting one of them. In this paper, we present a performance comparison using OpenGL ® with fragment shader, OpenGL ® with compute shader, OpenCL, and CUDA.
Uploads
Papers by Rhadamés Carmona