Multidimensional Image Processing & Image Input/Output (I/O)
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
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 say multidimensional image data, data scientists and researchers face further challenges with required development time, compute power, and complications in workflow. 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, 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 Capabilities
cuCIM provides efficient data loading and processing for n-dimensional tag image file format (TIFF) files. cuCIM gives data scientists and researchers the ability to load and decode more and larger image data quickly using its dedicated image loader. cuCIM users will spend less time developing computer vision pipelines, including those that are deep and machine-learning based.
cuCIM offers accelerated performance through graphics processing unit (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
- 6.5x faster than OpenSlide multiprocessing
- 1245x faster than SciKit Image
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.
Data scientists and researchers need to perform a specific set of tasks on multidimensional images, particularly in the following use cases:
- medical imaging, and
- 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
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:
Minimal Change to Code
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.
Direct Path for Data to GPU Memory
The latest release highlights, new features, known issues, and bug fixes are detailed in the cuCIM release notes on GitHub.Review Release Notes
Performance benchmarks, examples, notebooks, demo scripts, and licensing can also be found on the cuCIM GitHub repository.Access Github Repository
Information about the API and its submodules can be found in the cuCIM RAPIDS™ documentation.Review Documentation
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
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