Técnicas de procesamiento de imágenes médicas y visualización 3D / Processing techniques and 3D visualization of medical images

Orradre González, Danilo N. (2020) Técnicas de procesamiento de imágenes médicas y visualización 3D / Processing techniques and 3D visualization of medical images. Proyecto Integrador Ingeniería Nuclear, Universidad Nacional de Cuyo, Instituto Balseiro.

[img]
Vista previa
PDF (Tesis)
Español
17Mb

Resumen en español

En el presente trabajo se estudiaron e implementaron métodos de renderización volumétrica y funciones de transferencia para la visualización de conjuntos de datos médicos. Particularmente, estudiamos los métodos de Slicing y de Ray casting. Estos algoritmos fueron implementados en el lenguaje C++ sobre la biblioteca de computación gráfica de última generación Vulkan. Para realizar un estudio integral se desarrolló una aplicación que reúne los siguientes componentes: motor de visualización Vulkan, algoritmos de renderización, funciones de transferencia y de filtro e interfaz de usuario. Se realizó un estudio exhaustivo del rendimiento del visualizador con diferentes conjuntos de datos médicos y variando los parámetros de los algoritmos. En particular, se emplearon datos de tomografas computadas (TC), resonancias magneticas (RM) e imagenes de alta resolucion del Visible Human Project (VHP)[2]. El metodo de Ray casting resulto ser mas eciente que el metodo de Slicing al momento de presentar resultados en pantalla, lo cual esta cuanticado por un mayor valor del frame rate. En particular, el visualizador mantuvo un frame rate superior a 30 fps para ambos algoritmos por lo que permite presentar resultados visuales en tiempo real. Se realizó un análisis y comparación de los resultados visuales de ambos algoritmos. Es posible obtener resultados visuales similares variando adecuadamente algunos de los parámetros en los algoritmos. La aplicación que se desarrolló en el presente trabajo integrador consiste en un visualizador volumétrico de datos médicos e imágenes de alta resolución con una interfaz de usuario con widgets gráficos que permiten: mover el volumen, realizar cortes sobre el volumen, seleccionar funciones de transferencia predenidas[3] y aplicar un filtro pasa banda.

Resumen en inglés

In the present work we studied and implemented volumetric rendering methods and transfer functions for the visualization of medical data sets. In particular, we study the Slicing and Ray casting methods. These algorithms were implemented in C ++ language on the Vulkan state-of-the-art graphics computing software. To carry out a comprehensive study, an application was developed that brings together the following components: Vulkan visualization engine, rendering algorithms, transfer and filter functions, and user interface. An exhaustive study of the performance of the visualizer was carried out with different medical data sets and varying the parameters of the algorithms. In particular, we used computed tomography (TC) data, magnetic resonance (RM) data, and highresolution images from the Visible Human Project[2]. Greater efficiency was obtained in the Ray casting method quantied by a higher value of the frame rate. In particular, the application maintained a frame rate greater than 30 fps for both algorithms, allowing it to present visual results in real-time. An analysis and comparison of the visual results of both algorithms were performed. Similar visual results can be obtained by appropriately varying some of the parameters in the algorithms. The application that was developed in this Degree Project consists of a volumetric display of medical data and high-resolution images with a user interface with graphical widgets that allow you to: move the volume, make cuts on the volume, select predened transfer functions[3] and apply a bandpass filter.

Tipo de objeto:Tesis (Proyecto Integrador Ingeniería Nuclear)
Palabras Clave:Images; Imágenes; Volumetric analysis; Análisis volumétrico; [Visualization; Visualización; Medical images; Imágenes médicas; Renderization; Renderización]
Referencias:[1] Engel, K., Hadwiger, M., Kniss, J. M., Lefohn, A. E., Salama, C. R., Weiskopf, D. Real-time volume graphics. En: ACM Siggraph 2004 Course Notes, pags. 29{es. 2004. vii, vii, vii, vii, vii, vii, vii, vii, viii, viii, 4, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24 [2] Visible Human Project Data. https://www.nlm.nih.gov/databases/download/ vhp.html. xiii, xv, 39, 50 [3] DICOM PS3.6 2020b - Data Dictionary. http://dicom.nema.org/medical/ dicom/current/output/pdf/part06.pdf. xiii, xv, 37, 67, 72 [4] Adeel, A. Spiral CT and its Quality Control Procedures. Tesis Doctoral, Department of Physics and Applied Mathematics, Pakistan Institute of . . . , 2012. 1 [5] Instituto Pladema. Universidad Nacional del Centro de la Provincia de Buenos Aires. Campus Universitario Paraje Arroyo Seco, (B7000) Tandil, Buenos Aires, Argentina. http://www.pladema.net. 1 [6] Demostracion del visualizador 3D - Simanato. https://www.youtube.com/ watch?v=TznyLwAZFDY. 1, 6, 66 [7] Kindlmann, G., Whitaker, R., Tasdizen, T., Moller, T. Transfer functions in direct volume rendering. En: Design, Interface, Interaction," Proc. ACM SIGGRAPH Course. Citeseer, 2001. 2 [8] Computación gráfica (Wikipedia). https://es.wikipedia.org/wiki/ Computaci%C3%B3n_gr%C3%A1fica. 2 [9] Unidad de procesamiento gráfico (Wikipedia). https://es.wikipedia.org/ wiki/Unidad_de_procesamiento_gr%C3%A1fico. 3, 4 [10] Vertex (computer graphics). (Wikipedia). https://en.wikipedia.org/wiki/ Vertex_(computer_graphics). 3 [11] Fragment (computer graphics). (Wikipedia). https://en.wikipedia.org/wiki/ Fragment_(computer_graphics). 3 [12] Pixel (Wikipedia). https://es.wikipedia.org/wiki/P%C3%ADxel. 3 [13] Pipeline gráfico (Wikipedia). https://en.wikipedia.org/wiki/Graphics_ pipeline. 4 [14] Descripción y etapas del pipeline gráfico. Alexander Overvoorde. https: //vulkan-tutorial.com/Drawing_a_triangle/Graphics_pipeline_basics/ Introduction. 4 [15] Direct3D. Microsoft. https://docs.microsoft.com/en-us/windows/win32/ direct3d. 6, 27 [16] OpenGL. Pagina ocial. https://www.opengl.org/. 6, 27 [17] Vulkan, pagina ocial. Grupo KHRONOS. https://www.khronos.org/vulkan/. 6, 27, 49 [18] Renderizacion. (Wikipedia). https://es.wikipedia.org/wiki/Renderizaci% C3%B3n. 9 [19] Voxel (Wikipedia). https://es.wikipedia.org/wiki/V%C3%B3xel. 11 [20] Max, N. Optical models for direct volume rendering. IEEE Transactions on Visualization and Computer Graphics, 1 (2), 99{108, 1995. 12 [21] RGB. (Wikipedia). https://es.wikipedia.org/wiki/RGB. 23 [22] Espacio de color RGBA. https://es.wikipedia.org/wiki/Espacio_de_color_ RGBA. 23 [23] Color Lookup Tables. https://docs.cycling74.com/max5/tutorials/ jit-tut/jitterchapter12.html. 24 [24] Interfaz de programación de aplicaciones. (Wikipedia). https://es.wikipedia. org/wiki/Interfaz_de_programaci%C3%B3n_de_aplicaciones. 27 [25] Transitioning from OpenGL to Vulkan. NVIDIA. https://developer.nvidia. com/transitioning-opengl-vulkan. 28, 61 [26] UNDERSTANDING VULKAN R OBJECTS. AMD GPU OPEN. https:// gpuopen.com/learn/understanding-vulkan-objects/. 29 [27] Seidl, M., Scholz, M., Huemer, C., Kappel, G. UML@ classroom: An introduction to object-oriented modeling. Springer, 2015. 29 [28] Vulkan R 1.1.114 - A Specication (with all published extensions). https:// vulkan.lunarg.com/doc/sdk/1.1.114.0/linux/vkspec.html. 31 [29] Sellers, G., Kessenich, J. Vulkan programming guide: The oficial guide to learning vulkan. Addison-Wesley Professional, 2016. 31 [30] OpenGL Shading Language. Khronos. https://www.khronos.org/opengl/ wiki/Core_Language_(GLSL). 32 [31] SPIR Overview. Khronos. https://www.khronos.org/spir/. 32 [32] Shader modules - Vulkan tutorial. Alexander Overvoorde. https: //vulkan-tutorial.com/Drawing_a_triangle/Graphics_pipeline_basics/ Shader_modules. 33 [33] Uniform Buffer Object. Khronos. https://www.khronos.org/opengl/wiki/ Uniform_Buffer_Object. 33 [34] OpenGL Build High Performance Graphics. GitHub repository. https://github. com/PacktPublishing/OpenGL-Build-High-Performance-Graphics. 35, 36 [35] Movania, M. M., Wolff, D., Lo, R. C., Lo, W. C. OpenGL{Build high performance graphics. Packt Publishing Ltd, 2017. 35, 36, 72 [36] Software prototyping (Wikipedia). https://en.wikipedia.org/wiki/ Software_prototyping. 39 [37] Vulkan Tutorial. Alexander Overvoorde. https://vulkan-tutorial.com/. 39 [38] Integrating Dear ImGui in a custom Vulkan renderer. Written by Francois Guthmann. https://frguthmann.github.io/posts/vulkan_imgui/. 39 [39] Try block. C++ Reference. https://en.cppreference.com/w/cpp/language/ try_catch. 39 [40] Error de software (Wikipedia). https://es.wikipedia.org/wiki/Error_de_ software. 39 [41] GLFW. https://www.glfw.org/. 42 [42] Graphical widget (Wikipedia). https://en.wikipedia.org/wiki/Graphical_ widget. 45 [43] Halladay, K. Practical Shader Development: Vertex and Fragment Shaders for Game Developers. Apress, 2019. 48, 71 [44] Layers Overview and Conguration. LunarG. https://vulkan.lunarg.com/doc/ view/1.2.131.2/windows/layer_configuration.html. 48 [45] NVIDIA Nsight Graphics. https://developer.nvidia.com/nsight-graphics. 48 [46] Screen tearing. (Wikipedia). Sección:Vertical synchronization. https://en. wikipedia.org/wiki/Screen_tearing#Vertical_synchronization. 48 [47] Intel R CoreTM i5-7200U Processor. https://ark. intel.com/content/www/us/en/ark/products/95443/ intel-core-i5-7200u-processor-3m-cache-up-to-3-10-ghz.html. 49 [48] Biblioteca Dear ImGui. GitHub. https://github.com/ocornut/imgui. 49 [49] Volview. Kitware. https://www.kitware.com/volview/. 66 [50] Havran, V., Bittner, J., Zára, J. Ray tracing with rope trees. En: 14th Spring Conference on Computer Graphics, pags. 130{140. Citeseer, 1998. 72 [51] Laine, S., Karras, T. Effcient sparse voxel octrees. IEEE Transactions on Visua- lization and Computer Graphics, 17 (8), 1048{1059, 2010. [52] Amanatides, J., Woo, A., et al. A fast voxel traversal algorithm for ray tracing. En: Eurographics, tomo 87, págs.. 3{10. 1987. 72 [53] Ramoscelli, G., Delrieux, C. Rendering acelerado de volúmenes en gpu mediante splatting. En: XWorkshop de Investigadores en Ciencias de la Computación. 2008. 72 [54] Silvetti, A., Castro, S. M., Delrieux, C. Marching cubes: una implementación eciente que contempla todos los casos. En: I Workshop de Investigadores en Ciencias de la Computacion. 1999. 72 [55] 4D Volume Rendering. NVIDIA. https://www.nvidia.com/content/GTC/ documents/1102_GTC09.pdf. 73 [56] Tolo, L. O. Multi-GPU Rendering with Vulkan API. Proyecto Fin de Carrera, The University of Bergen, 2018. 73 [57] Vulkan on Android. NVIDIA GAMEWORKS. https://developer.nvidia.com/ vulkan-android. 73
Materias:Medicina > Imagenología
Divisiones:Gcia. de área de Aplicaciones de la tecnología nuclear > Gcia. de Investigación aplicada > Mecánica computacional
Código ID:924
Depositado Por:Marisa G. Velazco Aldao
Depositado En:11 Jun 2021 08:15
Última Modificación:11 Jun 2021 08:19

Personal del repositorio solamente: página de control del documento