Skip to main content

A toolkit to provide GPU accelerated visualization of medical data.

Project description

Clara Viz

NVIDIA Clara Viz is a platform for visualization of 2D/3D medical imaging data. It enables building applications that leverage powerful volumetric visualization using CUDA-based ray tracing.

Rendering

Clara Viz offers a Python Wrapper for rapid experimentation. It also includes a collection of visual widgets for performing interactive medical image visualization in Jupyter Lab notebooks.

Known issues

On Windows, starting with Chrome version 91 (also with Microsoft Edge) the interactive Jupyter widget is not working correctly. There is a delay in the interactive view after starting interaction. This is an issue with the default (D3D11) rendering backend of the browser. To fix this open chrome://flags/#use-angle and switch the backend to OpenGL.

Requirements

  • NVIDIA GPU: Pascal or newer, including Pascal, Volta, Turing and Ampere families
  • NVIDIA driver: 450.36.06+

Documentation

https://docs.nvidia.com/clara-viz/index.html

Quick Start

Installation

This will install all Clara Viz packages use pip:

$ pip install clara-viz

Clara Viz is using namespace packages. The main functionality is implemented in the 'clara-viz-core' package, Jupyter Notebook widgets are found in the 'clara-viz-widgets' package. So for example if you just need the renderer use

$ pip install clara-viz-core

Use interactive widget in Jupyter Notebook

Install the Jupyter notebook widgets.

$ pip install clara-viz-widgets

Start Jupyter Lab, open the notebooks in the notebooks folder. Make sure Git LFS is installed when cloning the repo, else the data files are not downloaded correctly and you will see file open errors when using the example notebooks.

from clara.viz.widgets import Widget
from clara.viz.core import Renderer
import numpy as np

# load a RAW CT data file (volume is 512x256x256 voxels)
input = np.fromfile("CT.raw", dtype=np.int16)
input = input.reshape((512, 256, 256))

display(Widget(Renderer(input)))

Render CT data from Python

from PIL import Image
import clara.viz.core
import numpy as np

# load a RAW CT data file (volume is 512x256x256 voxels)
input = np.fromfile("CT.raw", dtype=np.int16)
input = input.reshape((512, 256, 256))

# create the renderer
renderer = clara.viz.core.Renderer(input)

# render to a raw numpy array
output = renderer.render_image(1024, 768, image_type=clara.viz.core.RAW_RGB_U8_DEPTH_U8)
rgb_data = np.asarray(output)[:, :, :3]

# show with PIL
image = Image.fromarray(rgb_data)
image.show()

Use within a Docker container

Clara Viz requires CUDA, use a base container from https://hub.docker.com/r/nvidia/cuda for example nvidia/cuda:11.4.2-base-ubuntu20.04. By default the CUDA container exposes the compute and utility capabilities only. Clara Viz additionally needs the graphics and video capabilites. Therefore the docker container needs to be run with the NVIDIA_DRIVER_CAPABILITIES env variable set:

$ docker run -it --rm -e NVIDIA_DRIVER_CAPABILITIES=graphics,video,compute,utility nvidia/cuda:11.4.2-base-ubuntu20.04

or add:

ENV NVIDIA_DRIVER_CAPABILITIES graphics,video,compute,utility

to your docker build file. See https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/user-guide.html#driver-capabilities for more information.

WSL (Windows Subsystem for Linux)

Currently Clara Viz won't run under WSL because OptiX is not supported in that environment.

Acknowledgments

Without awesome third-party open source software, this project wouldn't exist.

Please find LICENSE-3rdparty.md to see which third-party open source software is used in this project.

License

Apache-2.0 License (see LICENSE file).

Copyright (c) 2020-2021, NVIDIA CORPORATION.

clara-viz 0.1.4 (Feb 15 2022)

Security

  • Update Jupyter widget Java code packages to fix vulnerabilities

Bug Fixes

clara-viz 0.1.3 (Jan 31 2022)

New

  • Support installation of recommended dependencies

Bug Fixes

clara-viz 0.1.2 (Jan 19 2022)

Bug Fixes

Documentation

  • Added missing video capability to docker run command

clara-viz 0.1.1 (Dec 14 2021)

Bug Fixes

  • When installing the clara-viz-core Python package only there is the error ModuleNotFoundError: No module named 'packaging' when doing import clara.viz.core
  • When getting the settings from the renderer the 'TransferFunctions' sections is returned as 'Transferfunctions' with lower case 'f'

Documentation

  • Added a section on using Clara Viz within a docker container.
  • Added a link to the documentation.
  • Added a section on WSL (Windows Subsystem for Linux).

Notebooks

  • The DataDefinition class is using ITK to load the data files, make sure ITK is available.
  • Added a slice rendering example (Slice_rendering.ipynb)
  • Fixed the check if the volume file exists in Render_image.ipynb, also fixed volume orientation and scaling.
  • Updated the settings files to match the settings conventions used by the renderer.

Misc

  • Changed the camera names and removed the Slice prefix of the orthographic cameras. Renamed the perspective camera from Cinematic to Perspective

clara-viz 0.1.0 (Dec 3 2021)

Initial release of Clara Viz

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

clara_viz_core-0.1.4-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (18.8 MB view hashes)

Uploaded Python 2 Python 3 manylinux: glibc 2.17+ x86-64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page