Table of Contents
Fetching ...

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.

PYVALE: A Fast, Scalable, Open-Source 2D Digital Image Correlation (DIC) Engine Capable of Handling Gigapixel Images

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.
Paper Structure (15 sections, 10 equations, 13 figures, 1 table)

This paper contains 15 sections, 10 equations, 13 figures, 1 table.

Figures (13)

  • Figure 1: High-level flowchart illustrating the Pyvale workflow. Each box shows the required core functions, parameters, and arguments. The two post-processing boxes give examples of how data can be plotted with matplotlib, although the data can also be imported into other analysis packages (e.g., Excel or Origin) at user discretion.
  • Figure 2: Schematic of the main algorithmic approach taken in Pyvale. The first stage is to perform a FFT cross correlation to obtain rigid displacement values for decreasing window size. The final window size is then used to seed the RG-DIC to obtain higher order shape function parameters if required.
  • Figure 3: Schematic of the multithreadeded RG-DIC algorithm adopted in PyvaleḢere it is shown for two threads. (Left) A single thread performs calculation for the seed point and its 4 neighbours. (Middle) The second thread then "steals" work from the queue of thread 0 to start its own RG-DIC prodecure and computes correlation values for the "stolen" point. These are then added to its own queue. (Right) A view of the queue sometime later where each thread has gone off in independent directions, note the position of subsets in the queue have changed depending on the ranking of the correlation coefficient.
  • Figure 4: Example showing the displacement calculated using Pyvale's 2D DIC engine for the Star5 reference and deformed images from the DIC Challenge 2.0 dataset. The deformed image has a maximum ground truth displacement of $\pm 0.5$ pixels. The convergence of the DIC displacement data along the horizontal dotted white line at the vertical midpoint to the ground truth value of 0.5 px is used to determine metrological performance. Images can be downloaded from https://idics.org/challenge/.
  • Figure 5: A example comparison of the convergence of Pyvale (Solid red line) and along the midpoint horizontal (shown by the dotted white line in Fig. \ref{['fig:star_pattern']}) anonymized DIC codes (dotted lines) to the ground truth displacement value of 0.5 px using the DIC challenge 2.0 images.
  • ...and 8 more figures