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
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 Capabilities
cuCIM offers accelerated performance through GPU-based image processing and computer vision primitives, which are not readily available for central processing units (CPUs).
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
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.
|
|
|
|
|
---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
(greyscale) |
|
|
|
|
|
(greyscale) |
|
|
|
|
|
|
|
|
|
|
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
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
cuCIM References
Release Notes
The latest release highlights, new features, known issues, and bug fixes are detailed in the cuCIM release notes on GitHub.
GitHub Repository
Performance benchmarks, examples, notebooks, demo scripts, and licensing can also be found on the cuCIM GitHub repository.
RAPIDS™ Documentation
Information about the API and its submodules can be found in the cuCIM RAPIDS™ documentation.
Computer Vision Solutions
Learn more about computer vision technology and image processing by exploring NVIDIA’s computer vision solutions.
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.
BLOG
Accelerating Digital Pathology Pipelines with NVIDIA Clara™ Deploy
Learn how to accelerate stain normalization and color conversion for 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.
BLOG
Enhanced Image Analysis with
Multidimensional Image Processing
Learn about example use cases for multidimensional image analysis.
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.
and Image Processing