PYVALE: A Fast, Scalable, Open-Source 2D Digital Image Correlation (DIC) Engine Capable of Handling Gigapixel Images
Joel Hirst, Lorna Sibson, Adel Tayeb, Ben Poole, Megan Sampson, Wiera Bielajewa, Michael Atkinson, Alex Marsh, Rory Spencer, Rob Hamill, Cory Hamelin, Allan Harte, Lloyd Fletcher
TL;DR
Pyvale addresses the need for fast, scalable, open-source 2D DIC capable of handling gigapixel SEM-DIC images by combining a Python-friendly interface with a high-performance C/C++ core. The authors implement a two-stage DIC engine using a multi-window FFT initialization followed by RG-DIC, with OpenMP-based parallelization to exploit modern multi-core hardware. Validation against the 2D DIC Challenge 2.0 shows metrological performance comparable to other open-source codes, while a gigapixel SEM-DIC case demonstrates strong runtime scaling on large images with substantial memory efficiency. A comparative runtime study against OpenCorr, DICe, and Ncorr highlights Pyvale’s scalability for large images, and future work envisions stereo DIC, GPU acceleration, and tighter ecosystem integration to expand functionality and accessibility.
Abstract
Pyvale is an open-source software package that aims to become an all-in-one tool for sensor simulation, sensor uncertainty quantification, sensor placement optimization, and calibration/validation. Central to this is support for image-based sensors, with a dedicated Digital Image Correlation (DIC) module designed for both standalone use and integration within broader experimental design workflows. The design philosophy behind the DIC engine in Pyvale prioritizes a user-friendly Python interface with performant compiled code under the hood. This paper covers Pyvale's 2D DIC engine design, implementation, metrological performance compared to other DIC codes, and the unique ability to handle gigapixel size scanning electron microscope (SEM) images. Finally, we compare runtimes between Pyvale and other open-source DIC codes and show strong computational performance across a range of image resolutions and thread counts.
