PyEBSDIndex: Indexing Electron Backscattered Diffraction Patterns on the GPU
Source abstract
Abstract
In this work we present a new open-source electron backscatter diffraction (EBSD) indexing algorithm and codebase that is based on the original concepts of the Hough transform, but off-loads the image processing pipeline to the graphics processing unit (GPU) leading to very high indexing rates, and thus allowing for more complex voting schemes while not slowing down the indexing rate. With typical patterns (60 x 60 pixels in dimension), up to 45,000 patterns can be indexed per second. EBSD has become a critical method for characterizing the microstructure of polycrystalline materials by measuring the point-by-point crystal phase and orientation. The pioneering work of Krieger Lassen [1] and Wright et al. [2] demonstrated that the process of EBSD indexing and orientation determination could be highly automated by detecting the bands in the Kikuchi patterns formed by the diffraction process using a Hough transform in combination with various voting schemes to index the bands. Since then, the algorithms used to detect and index EBSD patterns have been mostly the exclusive purview of the commercial EBSD vendors, primarily because the initial computational resources were so limited that it was impractical to save the full set of patterns, and thus they had to be analyzed in-situ and discarded. Current computational storage capacities and costs make saving all the EBSD patterns collected for a map feasible, and recent years have seen a number of off-line indexing methods developed by the community [3–5]. These methods have demonstrated the ability to extract more information from EBSD patterns, but they also tend to be highly computationally intensive, with even modern workstations requiring many hours to index a single map. Furthermore, with EBSD detectors routinely collecting 3000–6000 patterns per second by using high-speed CCD, CMOS, and most recently direct electron detectors (DED) [6], there is a growing demand for the ability to rapidly index patterns without compromising indexing accuracy. Here we present PyEBSDIndex, an indexing method written in the ubiquitous Python programing language. PyEBSDIndex implements a Radon transform combined with separable gaussian kernel convolutions to assist in peak localization in the Radon transform on the GPU, This frees up the CPU of the computer to perform band indexing and orientation determination [7] using a weighted triplet voting scheme that assigns Kikuchi bands to the reference of known band families, which is later converted to a complete solution by performing a maximization of detected bands, and minimization of measured mean-angular fit. The result is that with PyEBSDIndex on modern hardware can index 10,000–45,000 EBSD patterns/s for typical pattern sizes and Radon parameters, with orientation accuracies approaching < 0.1° with high quality patterns. This platform is open for the community to adapt and integrate within their own workflows, opening up the possibility of new domains of collaboration and improvements. Figure 1 shows an example EBSD map of additively manufactured 316L stainless steel that was indexed with PyEBSDIndex, and as a comparison, the commercial EDAX Hough indexing results are also presented. Even in the difficult regions near the pores, there is a high indexing rate. Also shown are the kernel average misorientation maps. These show that the PyEBSDIndex orientations tend to have a lower nearest neighbor misorientation, indicating that the measured misorientations are more precise than what is commonly found with the EDAX Hough indexing. The PyEBSDIndex package can be downloaded at https://github.com/USNavalResearchLaboratory/PyEBSDIndex [8]. Comparison of PyEBSDIndex to traditional Hough indexing from EDAX OIM Analysis 8.6 of additively manufactured 316L Austenitic microstructure. The inverse pole figure map with colors referenced to the image normal (IPFZ) and kernel average misorientation are shown.
Source: openalex_inverted_index · Quality: baseline
Research context
OpenAlex topics: Electron and X-Ray Spectroscopy Techniques · Non-Destructive Testing Techniques · Advanced Electron Microscopy Techniques and Applications
SciVX discovery tags are terminology-based. OpenAlex topics are source-provided classifications.
Affiliations
Metallurgical Alloy Design Section, US Naval Research Laboratory , Washington, DC , United States
Department of Materials Science and Engineering, Norwegian University of Science and Technology , Trondheim , Norway
References (7)
Show source-provided references
1. Krieger Lassen
2. Wright · Metallurgical Trans. A · 1992 · 23 · 75910.1007/BF02675553 ↗
3. Chen · Microscopy and Microanalysis · 2015 · 21 · 73910.1017/S1431927615000756 ↗
4. Lenthe · Ultramicroscopy · 2019 · 207 · 11284110.1016/j.ultramic.2019.112841 ↗
5. Hielscher · Ultramicroscopy · 2019 · 207 · 11283610.1016/j.ultramic.2019.112836 ↗
6. Wang · Ultramicroscopy · 2021 · 220 · 11316010.1016/j.ultramic.2020.113160 ↗
7. Morawiec · Acta Cryst · 2020 · A76 · 719