cuCIM for Image Input/Output (I/O) and Multidimensional Image Processing

cuCIM (Compute Unified Device Architecture Clara IMage) is an open source, accelerated computer vision and image processing software library for multidimensional images used in biomedical, geospatial, material and life science, and remote sensing use cases.


Explore References & Resources



Example of cuCIM digital pathology image rendering.

Using cuCIM, multidimensional, high-resolution images of tissue can be loaded and rendered quickly for educating, collaborating, and diagnosing in digital pathology.

Challenges in Image Processing & Image I/O


Data scientists and researchers in scientific fields face technical challenges related to data selection, acquisition, preparation, loading, and management. When developing pre- and post-processing scripts for computer vision tasks and performing image I/O operations with multidimensional image data, data scientists and researchers face further challenges with development time, compute power, and workflow complications. This type of data could include:


  • Images with more than two dimensions (2D)
  • Images with multiple color channels
  • Images with temporal and time-based dimensions

Image dataset sizes are large and highly detailed in composition, and image analysis workflows require significant processing and high-resolution rendering. Loading and decoding n-dimensional (or multidimensional) image data can be slow, manually intensive, and cumbersome. cuCIM reduces these bottlenecks for multidimensional image I/O and processing.

What Do Data Scientists and Researchers Need?

Enhanced image processing icon

Enhanced Image Processing Capabilities

cuCIM offers accelerated performance through GPU-based image processing and computer vision primitives, which are not readily available for central processing units (CPUs).

Performance improvement icon

Greater Performance

cuCIM offers accelerated performance through GPU-based image processing and computer vision primitives, which are not readily available for central processing units (CPU).


cuCIM speeds are up to

  • 6x faster than OpenSlide in
    multithreading
  • 6.5x faster than OpenSlide multiprocessing
  • 1245x faster than SciKit Image
Easy click icon

A Straight-Forward Interface

cuCIM integrates into a simplified, familiar workflow. cuCIM’s Pythonic interface enables data scientists and researchers to port existing CPU code to GPU. Compute Unified Device Architecture (CUDA®)-accelerated image processing operations closely mirror the scikit-image application programming interface (API). Both C++ and Python APIs are provided to read files with a matching API for OpenSlide. cuCIM core functionality is also enabled for NVIDIA Omniverse™.


Image Processing and Computer Vision Primitives and I/O Support

Through its Python adaptation layer, cucIM offers 200+ computer vision and image processing capabilities common to scientific applications for color conversion, feature extraction, and segmentation. Below are some of the GPU-accelerated primitives.


COLOR CONVERSION
EXPOSURE
FEATURE EXTRACTION
FILTERS
MEASURE
combine_stains
adjust_gamma
canny
frangi
centroid
rgb2gray
equalize_adaptive
corner_harris
gabor
label
rgb2hsv
equalize_hist
corner_shi_thomasi
gaussian
moments_central
rgb2yuv
histogram
daisy
hessian
moments_hu
separate_stains
match_histogram
match_templated
median
shannon_entropy
shape_index
sobel
structure_tensor
threshold_local
threshold_niblack
threshold_otsu
threshold_sauvola
unsharp_mask
METRICS
MORPHOLOGY
REGISTRATION
RESTORATION
SEGMENTATION
TRANSFORMS
mean_square_error
binary_dilation
optical_flow_ilk
calibrate_denoiser
join_segmentations
integral_image
normalized_root_mse
binary_erosion
optical_flow_tvl1
denoise_tv_chambolle
morphological_chan_vese
pyramid_gaussian resize
peak_signal_noise_ratio
erosion
(greyscale)
phase_cross_correlation
richardson_lucy
random_walker
resize
structural_similarity
opening
(greyscale)
unsupervised_wiener
rotate
remove_small_objects
wiener
warp

Data scientists and researchers need to perform a specific set of tasks on multidimensional images, particularly in the following use cases:

  • Astronomy,
  • Bioimaging,
  • Medical imaging, and
  • Seismology

cuCIM supports efficient loading of many image file formats that are typically used by scientists and researchers across use cases:

  • Aperio ScanScope Virtual Slide (SVS);
  • Deflated Compressed Red;
  • Green Blue (RGB);
  • Generic TIFF;
  • JPEG/JPEG 2000 Compressed RGB;
  • Lempel-Ziv-Welch (LZW) RGB;
  • Philips TIFF; and
  • Tiled, Multi–Resolution TIFF
Gabor filters are used for texture analysis in image processing

Gabor Filters

Examples of random walker segmentation

Random Walker Segmentation


Image Processing & Image I/O Use Cases

While data scientists and researchers need access to a broad range of GPU-accelerated image processing and computer vision primitives for specific scientific workflows, developers want to leverage their existing API workflow and minimize time to production when switching from CPU to GPU. cuCIM lets you do both with high performance.


Scikit-Image Compatible API

Developers who are looking for GPU-acceleration, they do not need to learn a new API; they can use cuCIM’s scikit-Image-compatible API, which requires minimal change in code. In most instances, only one line of code is added for transferring images to the GPU. Otherwise, code structure and commands remain the same. Because cuCIM relies on the scikit-image API that scientists and researchers are familiar with, code can be ported quickly and efficiently to the GPU. cuCIM.skimage is built on cuPy, the open-source array library for Python. cuCIM also has complimentary functionality with:

 Use cuCIM’s Scikit-Image-Compatible API to minimize code change

Minimal Change to Code




 cuCIM provides interoperability with other tools and deep learning frameworks

Integration with Existing Workflow

cuCIM Interoperability with Other Tools

Developers can easily integrate cuCIM as part of their existing computer vision and image processing pipelines using the interoperability available between cuCIM and other tools and deep learning (DL) frameworks.




Transfer Data Directly to GPU Without Copying

cuCIM enables GPUDirect® Storage (GDS) features through its cuFileDriver layer. Supported for Linux, GDS lets data move between where it’s stored (locally or remote) to the GPU’s memory without burdening the CPU. With GDS, cuCIM can more efficiently spread parts of the computer vision and image processing pipeline. The direct path created by GDS enables:

  • more image throughput,
  • reduced latency,
  • increased rendering speed,
  • enhanced zoom capability, and
  • quicker write performance.

GDS enables rapid and distributed image processing and I/O and improved file reading.

cuCIM enables direct data transfer to GPU without copying

Direct Path for Data to GPU Memory

Download cuCIM (free)

Below is free support for cuCIM, the accelerated open-source computer vision and image processing software library for multidimensional images.

cuCIM References

Release Notes

The latest release highlights, new features, known issues, and bug fixes are detailed in the cuCIM release notes on GitHub.



Review Release Notes    

GitHub Repository

Performance benchmarks, examples, notebooks, demo scripts, and licensing can also be found on the cuCIM GitHub repository.



Access Github Repository  

RAPIDS™ Documentation

Information about the API and its submodules can be found in the cuCIM RAPIDS™ documentation.




Review Documentation    

Computer Vision Solutions

Learn more about computer vision technology and image processing by exploring NVIDIA’s computer vision solutions.


Explore Computer Vision

cuCIM Resources


BLOG

Accelerating Scikit-Image API with cuCIM: n-Dimensional Image Processing and I/O on GPUs

Learn how to port CPU-based scikit-image image code to GPU.

Read How to Port Code From CPU to GPU

BLOG

Accelerating Digital Pathology Pipelines with NVIDIA Clara™ Deploy

Learn how to accelerate stain normalization and color conversion for digital pathology use cases.


Read Digital Pathology Use Cases

WEBINAR

cuCIM: a GPU Image I/O and Processing Library

Watch a demo of cuCIM’s Openslide-like API with Quantsight and see how to get started with cuCIM.


Watch How to Get Started with cuCIM (30 m)

BLOG

Enhanced Image Analysis with
Multidimensional Image Processing

Learn about example use cases for multidimensional image analysis.




Read Why Developers Need N-Dimensional
Image I/O and Processing

BLOG

Accelerating Digital Pathology Workflows using cuCIM and NVIDIA Direct Storage

Learn how writing image data directly to GPU memory can provide substantial benefit in reducing I/O time for high-resolution images.


Read How to Improve I/O Performance
and Image Processing