1 Introduction

Recently, the X-ray Talbot–Lau interferometer (TLI) has attracted much attention in nondestructive testing due to its capability of capturing phase-differential and darkfield images, as well as ordinary X-ray attenuation images. Phase-differential images visualize the contrast of the refraction of X-ray beams, while darkfield images visualize the contrast of small-angle X-ray scattering. The richer information offered by these images is helpful in inspecting materials, which has been challenging using ordinary X-ray attenuation images [1,2,3]. The TLI system can be installed into an ordinary X-ray imaging system by incorporating three diffraction gratings, typically referred to as G0, G1, and G2 gratings [1], appropriately between the X-ray source, target object, and the X-ray detector. Figure 1 shows the exterior appearance of the TLI system used in this study and illustrates the internal structure of the TLI. Using the technique referred to as fringe scanning, typically, four moiré patterns are acquired by moving one of the diffraction gratings in the direction perpendicular to the grating lines. In this way, TLI can achieve an X-ray interferometer without using a special X-ray source, such as a synchrotron and a linear accelerator (LINAC), and can be distinct from other similar systems, such as small-angle X-ray scattering imaging (SAXS) [4,5,6] and “Talbot” interferometer [7, 8].

Fig. 1
figure 1

TLI system utilized in this study. The left picture shows the exterior appearance of our TLI system, and the right illustration shows the interior setup of the interferometer. During scanning a target specimen, its posture installed on the rotation table is varied so that the darkfield images are captured with different directions of X-ray radiation

X-ray tensor tomography (XTT) [9] is a seminal study for 3D tomographic reconstruction from a set of darkfield images, where the distribution of scattering intensities is reproduced respectively in each voxel. The scattering distribution here is defined over a spherical domain and represents the magnitude of X-ray scattering in various directions. Equivalent to Lambert–Beer’s law for X-ray attenuation, XTT approximately describes the scattering intensity along a primary X-ray path using a line integral [9]. Due to the anisotropic nature of X-ray scattering, we need to consider the dependence of darkfield images on the relationship between the orientational property of a dispersing media and the directions of diffraction gratings in the TLI system. Let \(\textbf{S}_k \in \mathcal {S}^2\) be a unit vector for a scattering direction of interest, where \(\mathcal {S}^2\) denotes a set of unit vectors. Given several scattering directions, XTT defines a forward projection model [9] as

(1)

where \(p_{m}\) is the scattering intensity calculated for a combination of X-ray direction, the posture of the sample, and a detector pixel, m is the index for that combination, \(L_m \in \mathbb {R}\) is the distance from the X-ray source position \(\textbf{s} \in \mathbb {R}^3\) to a detector pixel where the X-ray hits, \(\textbf{B}_m \in \mathcal {S}^2\) is a unit vector for the beam direction, and \(\textbf{G}_m \in \mathcal {S}^2\) is a unit vector the direction along which the G2 grating moves during fringe scanning. In this equation, the scattering effect for a direction \(\textbf{S}_k\) is summed up over \(N_{\text {sct}}\) predominant scattering directions. The original XTT [9] typically employs \(N_{\text {sct}} = 7\) to reconstruct the directional distribution of the scattering intensities at each voxel.

By discretizing the integration in Eq. (1) by a voxel grid, we can define a system of linear equations to obtain \(\mu _k(\textbf{x}): \mathbb {R}^3 \rightarrow \mathbb {R}\) at each voxel location \(\textbf{x} \in \mathbb {R}^3\). Since this linear system is often considerably large, iterative reconstruction algorithms, such as the simultaneous iterative reconstruction technique (SIRT) and the maximum likelihood estimation method (ML-EM), are leveraged as in ordinary CT reconstruction.

Problem statement Concerning the prior methods using the predefined and globally shared scattering directions, the following research question arises.

Can we consider a simpler model than XTT when we need only the fiber directions rather than directional distributions of scattering intensities?

To answer this question, we investigate the reconstruction method for fiber orientations that uses only a few variable scattering directions. For industrial applications, nondestructive testing of fiber-reinforced plastics is significant. Therefore, we limit our attention to X-ray scattering within fibrous materials. In this case, X-ray scattering is almost negligible in directions parallel to the fibers, while it is still significant along directions perpendicular to the fibers [10]. This simplification allows us to make the scattering directions \(\textbf{S}_k(\textbf{x})\) variable independently at each voxel location \(\textbf{x}\), different from the original XTT using the fixed set of scattering directions. Owing to the variability of scattering directions, we can reproduce the 3D fiber orientations using a few scattering directions. Specifically, our proposed method achieves equivalent performance to that the original XTT does, while it employs only three scattering directions orthogonal to each other.

2 Related Work

The TLI system, visualizing X-ray refraction and scattering from subpixel-size microstructures [11, 12], offers a greater capability in nondestructive inspection than prior X-ray imaging techniques. First, it can visualize the presence of microstructures without the need for a micron-order spatial resolution. Thus, TLI can achieve a wider field of view compared to the micro-focus CT (\(\upmu \)CT) system, which has been used to inspect microstructures. Second, the intensities in darkfield images depend on several factors, including X-ray beam direction, the orientation characteristics of a microstructure, and the directions of diffraction gratings [13]. Owing to this property, the orientations of fibers distributed in a plane can be reproduced from several darkfield images [14,15,16,17]. In this technique, the orientation is calculated owing to an oscillation of the darkfield image intensities as the sample is rotated around the optical axis. Furthermore, X-ray tensor tomography (XTT), a technique to reconstruct 3D scattering intensity distribution from darkfield images, is able to visualize fiber orientations as a tomographic image [9, 18,19,20].

The original XTT [9] reconstructed the scattering intensity distributions in a discrete manner, where scattering coefficients for a set of predefined scattering directions are calculated for each voxel of the volumetric image. Then, orientational scattering characteristics at each voxel are represented by an ellipsoidal distribution, obtained by the principal component analysis (PCA) of scattering directions. Moreover, the spherical harmonics, offering a more general representation of the orientational distribution, can also be leveraged to improve the representability of XTT [21, 22]. While the above approaches are based on the iterative reconstruction algorithms, such as SIRT and ML-EM, the standard filtered backprojection (FBP) method has also been employed to reconstruct the scattering intensity distribution [23,24,25].

The enhancement of the optic system has also been intensively investigated to improve the availability, accuracy, and efficiency of darkfield and SAXS tomographic techniques. For example, one incorporates circular diffraction gratings rather than linear diffraction gratings [20], thereby reducing the number of darkfield images required for tomographic reconstruction. For a similar purpose, the effective choice for a set of directions of X-ray radiation has also been investigated [26, 27], and retractable and dynamic diffraction gratings are incorporated [28].

From an application perspective, the effectiveness of phase-differential and darkfield images obtained by TLI has attracted early attention in the medical field. For instance, visualizing soft tissues, which often exhibit significantly low X-ray absorption, has become a crucial application of TLI [29]. Phase-differential imaging effectively visualizes X-ray refraction in biological soft tissues [30, 31], and such devices are implemented in actual medical institutions [32]. Similarly, darkfield imaging, visualizing the occurrence of X-ray scattering, has been leveraged in imaging mouse models [33, 34] and diagnosing lung diseases [35].

In industrial applications, attenuation contrast imaging offered by ordinary X-ray radiography is not effective when the densities of materials, of which a composite material is made, are similar. This problem can be significant, e.g., for carbon fiber reinforced plastics (CFRPs) because the densities of carbon fibers and the matrix resin are similar. In such a case, darkfield imaging delivers a solution that exploits the different intensities of small-angle X-ray scattering within carbon fiber and matrix resin. Although reports on its use outside of medical applications have not been well investigated yet, the applications of TLI are steadily growing in the industrial fields as well [9, 23, 36].

Fig. 2
figure 2

The outline of the proposed tomographic reconstruction for fiber orientations. Given darkfield images of the target object, we calculate the fiber orientation at each 3D location of the scanned field of view. Our reconstruction performs iterative optimization of fiber orientations using the local coordinate systems defined at each location. The predicted orientation at each location is used to update the basis vectors at the location that define the local coordinate system

3 Method

Figure 2 shows an overview of the proposed method for fiber orientation reconstruction. Input darkfield images are captured using TLI shown in Fig. 1, where the target object is scanned with different CT rotation axes. To this end, we installed the target object on a rotation table in varying postures. For example, when the target material has a cubic shape, as shown in Fig. 1, the postures of the material are varied such that the tri-planes of the cube are perpendicular to the X-ray beam radiation. Once darkfield images are captured, our reconstruction method performs alternating optimization comprised of two stages. In the first stage, we fix the scattering directions \(\{ \textbf{S}_k \}_{k=1}^{3}\) that forms orthonormal bases of a local coordinate system and calculate scattering coefficients \(\{ \mu _k \}_{k=1}^3\) for these scattering directions. Then, in the second stage, we update the directions of the scattering directions \(\{ \textbf{S}_k \}_{k=1}^{3}\) while the scattering coefficients \(\{ \mu _k \}_{k=1}^{3}\) are fixed. These two stages are repeated until the cost function gets sufficiently small. We describe these two stages in more detail in the following subsections. For reference, Algorithm 1 provides a pseudocode of our algorithm.

Algorithm 1
figure a

Fiber orientation reconstruction

3.1 Scattering Coefficient Updates

Unlike previous methods sharing \(\textbf{S}_k\) among entire voxels, our method optimizes the scattering direction individually at each voxel of a resulting tomographic image. Therefore, both scattering coefficients and scattering directions are defined as functions of the voxel location \(\textbf{x} \in \mathbb {R}^3\) (i.e., denoted as \(\mu _k(\textbf{x})\) and \(\textbf{S}_k(\textbf{x})\)). By discretizing the integration in Eq. (1), we can define a system of linear equations using the given darkfield images and the parameters of the scanning geometry. For simplicity, we hereinafter omit the parameter \(\textbf{x}\) for \(\mu _k(\textbf{x})\) and \(\textbf{S}_k(\textbf{s})\) unless otherwise specified.

The central assumption that we make in this paper is that the distribution of scattering directions exhibits rotational symmetry with respect to the fiber direction. Suppose that the scattering directions \(\textbf{S}_k, ~k=1, 2, 3\) form the orthonormal bases of a local coordinate system. In other words, \(\left\Vert \textbf{S}_k \right\Vert = 1\) for all \(k = 1, 2, 3\), and \(\textbf{S}_i \perp \textbf{S}_j\) is satisfied for all \(i \ne j\). These orthonormal scattering directions are individually defined for each voxel. As in the original XTT, our method estimates \(\mu _k\) for each \(\textbf{S}_k\) by solving a system of linear equations defined from Eq. (1). In our implementation, we solve the linear system using the ordered-subset expectation maximization (OS-EM) algorithm for its balance between computational simplicity and the speed of convergence.

3.2 Updating Scattering Directions

This subsection introduces two potential approaches for updating scattering directions using given scattering coefficients \(\mu _k\). The first, which we refer to as “normal-based approach,” updates the scattering directions such that one of scattering directions \(\textbf{S}'_3\) is aligned with the normal of a triangle formed by the three vertices, \(\mu _1 \textbf{S}_1\), \(\mu _2 \textbf{S}_2\), and \(\mu _3 \textbf{S}_3\). The second, which we refer to as the “analysis-based approach,” updates the scattering directions based on a Fourier analysis of the scattering intensity distribution.

3.2.1 Normal-Based Approach

The normal-based approach is based on the assumption that \(\mu _3\) is negligibly small when \(\textbf{S}_3\) is aligned to the fiber direction. In this case, \(\textbf{S}_1\) and \(\textbf{S}_2\) are perpendicular to the fiber direction, and \(\mu _1\) and \(\mu _2\) remain significant. Based on this assumption, we determine new scattering directions \(\textbf{S}'_k\) such that \(\textbf{S}_3\) aligns to the normal vector \(\textbf{n}\) of the triangle \((\mu _1 \textbf{S}_1, \mu _2 \textbf{S}_2, \mu _3 \textbf{S}_3)\) in each voxel. The normal vector \(\textbf{n}\) of this triangle is simply given as

$$\begin{aligned} \textbf{n} = \frac{\left( \mu _3\textbf{S}_3-\mu _1\textbf{S}_1 \right) \times \left( \mu _3\textbf{S}_3-\mu _2\textbf{S}_2 \right) }{ \bigl \Vert \left( \mu _3\textbf{S}_3-\mu _1\textbf{S}_1 \right) \times \left( \mu _3\textbf{S}_3-\mu _2\textbf{S}_2 \right) \bigr \Vert }, \end{aligned}$$
(2)

where \(\Vert \, \cdot \, \Vert \) denotes an ordinary Euclidean norm. Then, this normal vector \(\textbf{n}\) is used as new \(\textbf{S}'_3\). When aligning old \(\textbf{S}_3\) to \(\textbf{S}'_3\), the other two basis vectors \(\textbf{S}_1\) and \(\textbf{S}_2\) are moved by a transformation which transforms \(\textbf{S}_3\) to \(\textbf{S}'_3\) along the shortest path on a great circle. This transformation is defined by a rotation axis \(\textbf{a} \in \mathcal {S}^2\) and a rotation angle \(\upomega \in [0, \pi ]\) around the axis \(\textbf{a}\).

$$\begin{aligned} \textbf{a}&= \textbf{S}'_3 \times \textbf{S}_3, \end{aligned}$$
(3a)
$$\begin{aligned} \upomega&= \arccos \left( \textbf{S}'_3 \cdot \textbf{S}_3\right) . \end{aligned}$$
(3b)

It is worth noting that the directions of \(\textbf{S}_1\) and \(\textbf{S}_2\), which are expected perpendicular to the fiber axis, do not matter when the fiber’s scattering intensity distribution exhibits the rotational symmetry around \(\textbf{S}_3\). Therefore, this simple alignment to transform \(\textbf{S}_3\) to \(\textbf{S}'_3\) works effectively without loss of generality.

Fig. 3
figure 3

Illustration for the normal-based approach, which updates the scattering directions such that \(\textbf{S}_3\) aligns with the normal of the triangle \((\mu _1 \textbf{S}_1, \mu _2 \textbf{S}_2, \mu _3 \textbf{S}_3)\). Two other directions \(\textbf{S}_1\) and \(\textbf{S}_2\) are updated by a transformation that moves \(\textbf{S}_3\) to \(\textbf{n}\) along the shortest path on a great circle

3.2.2 Analysis-Based Approach

The analysis-based approach is derived from a Fourier analysis of the directional distribution of scattering intensities. As we focus on X-ray scattering within fibers, we can reasonably assume that the scattering intensity distribution \(D(\theta , \phi )\), which may vary at each voxel, is rotationally symmetric around the fiber direction \(\textbf{F} \in \mathcal {S}^2\). Therefore, we can represent \(D(\theta , \phi )\) as a function of only \(\theta \), where \(\theta \) is the angle between the scattering direction \(\textbf{S}\) and the fiber direction \(\textbf{F}\). Furthermore, as shown in Fig. 4, we can assume that the scattering intensity function \(D(\theta )\) is an even function of \(\theta \) and a periodic function of period \(\pi \). Therefore, we can write \(D(\theta )\) by a Fourier series:

$$\begin{aligned} D(\theta ) = \sum _{n=0}^{\infty } a_n \cos 2 n \theta . \end{aligned}$$
(4)

Equivalently to the approximation used in the directional X-ray darkfield imaging [14], we approximate \(D(\theta )\) in Eq. (4) using the first two terms.

$$\begin{aligned} D(\theta )&= a_0 + a_1 \cos 2\theta \nonumber \\&= (a_0 + a_1) - 2 a_1 \sin ^2 \theta . \end{aligned}$$
(5)

Considering the shape of \(D(\theta )\) shown in Fig. 4, we can assume that \(a_0 + a_1 > 0\) and \(a_1 < 0\). Therefore, we can rewrite \(D(\theta )\) by introducing new parameters \(\mu ^{\text {iso}} > 0\) and \(\mu ^{\text {aniso}} > 0\).

$$\begin{aligned} D(\theta ) = \mu ^{\text {iso}} + \mu ^{\text {aniso}} \sin ^2 \theta , \end{aligned}$$
(6)

where \(\mu ^{\text {iso}}\) corresponds to the isotropic scattering component and \(\mu ^{\text {aniso}}\) corresponds to the anisotropic scattering component of \(D(\theta )\).

Fig. 4
figure 4

The analysis-based approach updates the scattering directions based on the mathematical analysis of the directional distribution \(D(\theta )\) for scattering intensities. Assuming that \(D(\theta )\) is an even periodic function with period \(\pi \), we can approximate \(D(\theta )\) using the cross product of \(\textbf{F}\) and \(\textbf{S}\). See the main text for more details

The update rule of the analysis-based approach is derived by further approximating Eq. (6). Here, we assume that the isotropic component is negligibly small. Then, we obtain \(\mu _k\) for scattering direction \(\textbf{S}_k\) as in an approximate form:

$$\begin{aligned} \mu _k \approx \mu _{k}^{\text {aniso}} \sin ^2 \theta _k = \mu _{k}^{\text {aniso}} \Vert \textbf{F} \times \textbf{S}_k \Vert ^2, \end{aligned}$$
(7)

Without loss of generality, we may assume \(\textbf{S}_1=(1, 0, 0), \textbf{S}_2=(0, 1, 0), \textbf{S}_3=(0, 0, 1)\) by considering \(\textbf{F}\) is defined in this coordinate system. Taking Eq. (7) for all \(k = 1, 2, 3\) into consideration, we can formulate a system of equations for \(\mu ^{\text {aniso}}\) and \(\textbf{F} = (F_x, F_y, F_z)\).

$$\begin{aligned} \mu ^{\text {aniso}} \left( F_z^2 + F_x^2\right) = \mu _1, \end{aligned}$$
(8a)
$$\begin{aligned} \mu ^{\text {aniso}} \left( F_y^2 + F_z^2\right) = \mu _2, \end{aligned}$$
(8b)
$$\begin{aligned} \mu ^{\text {aniso}} \left( F_x^2 + F_y^2\right) = \mu _3, \end{aligned}$$
(8c)
$$\begin{aligned} F_x^2 + F_y^2 + F_z^2 = 1, \end{aligned}$$
(8d)

Solving this system of equations obtains the components of \(\textbf{F}\).

$$\begin{aligned}&F_x = \pm \sqrt{\frac{\mu _2 + \mu _3 - \mu _1}{2\mu ^{\text {aniso}}}}, \end{aligned}$$
(9a)
$$\begin{aligned}&F_y = \pm \sqrt{\frac{\mu _3 + \mu _1 - \mu _2}{2\mu ^{\text {aniso}}}}, \end{aligned}$$
(9b)
$$\begin{aligned}&F_z = \pm \sqrt{\frac{\mu _1 + \mu _2 - \mu _3}{2\mu ^{\text {aniso}}}}, \\&\text {where} \quad \mu ^{\text {aniso}} = \frac{\mu _1 + \mu _2 + \mu _3}{2}.\nonumber \end{aligned}$$
(9c)

It is worth noting that Eq. (9) may not have real number solutions when the triangle inequality \(\mu _l + \mu _m \ge \mu _n\) is not satisfied for any permutation of \((l, m, n) = (1, 2, 3)\). In this case, we revise \(\varvec{\upmu }= (\mu _l, \mu _m, \mu _n)\) to satisfy the triangle inequality by solving the inequality-constrained minimization problem.

$$\begin{aligned}&\underset{\varvec{\upmu }'}{\text {minimize:}}~\left\Vert \varvec{\upmu }- \varvec{\upmu }' \right\Vert ^2, \end{aligned}$$
(10a)
$$\begin{aligned}&\text {subject to:} ~~ \varvec{\upmu }' \cdot \textbf{w} \ge 0, \end{aligned}$$
(10b)

where \(\textbf{w} = (+1, +1, -1)\). This minimization problem can be solved using the Lagrange multiplier method. The solution for \(\varvec{\upmu }'\) is given as

$$\begin{aligned} \varvec{\upmu }' = \varvec{\upmu }- \frac{\varvec{\upmu }\cdot \textbf{w}}{\Vert \textbf{w} \Vert ^2} \varvec{\upmu }. \end{aligned}$$
(11)

However, there are still eight candidates for \(\textbf{F}\) with combinations of ± signs in Eq. (9). Therefore, we need to select an octant where the fiber \(\textbf{F}\) is located.

Fig. 5
figure 5

Illustration for the octant selection performed every time before updating the scattering directions. In the first guess, we estimate the possible four fiber directions belonging to the four octants in \(z \ge 0\). Then, we update the fiber directions in the second guess. Finally, comparing the extent of angular update in the second guess, we choose the fiber directions in the octant with the minimum update

3.3 Octant Selection

During updating the scattering directions, a property of XTT causes a problem. Since Eq. (1) does not matter the sign of the scattering directions \(\textbf{S}_k\), only the positive coefficients \(\mu _k\) can be obtained by XTT. As a result, the fiber direction \(\textbf{F}\) in the first octant, where all the entries are positive, is only considered by simply applying our update rules described above.

To resolve this problem, we perform the octant selection every time before the scattering coefficients are calculated. This process is as outlined in Algorithm 1. In this process, we initialize \(\textbf{S}_1\), \(\textbf{S}_2\), and \(\textbf{S}_3\) to align with x-, y-, and z-axes, respectively. Then, we calculate \(\mu _1\), \(\mu _2\), and \(\mu _3\) for these scattering directions. Since our method does not consider the direction of the fiber (i.e., which interprets \(+\textbf{F}\) and \(-\textbf{F}\) mean the same), we need to consider the four combinations of signs for scattering directions (i.e., \((\pm \textbf{S}_1, \pm \textbf{S}_2, \textbf{S}_3)\)). For these candidates, we obtain the new scattering directions \(\textbf{S}'_1\), \(\textbf{S}'_2\), and \(\textbf{S}'_3\) using the update rules shown in Sect. 3.2. After that, we again calculate \(\mu '_1\), \(\mu '_2\), and \(\mu '_3\) for \(\textbf{S}'_1\), \(\textbf{S}'_2\), and \(\textbf{S}'_3\), respectively. Finally, we choose the scattering directions, which gives the minimum ratio \(\mu '_3 \Big / \sqrt{{{\mu '}_1^2 + {\mu '}_2^2}}\).

A 2D example of this octant selection algorithm is illustrated in Fig. 5, based on the normal-based approach. In this figure, the angle between \(\textbf{S}_3\) and \(\textbf{S}'_3\) is given as \(\arctan {\mu _3 / \mu _1}\). In the first update, the angle between \(\textbf{S}_3\) and two \(\textbf{S}'_3\) candidates are the same because they are all determined by the same \(\mu _1\) and \(\mu _3\) under the ambiguity in the sign of \(\textbf{S}_1\). For two candidates of \(\textbf{S}'_3\) shown at the top and bottom of Fig. 5, the \(\mu '_1\) and \(\mu '_3\) are calculated. Again, \(\mu '_3 / \mu '_1\) represents the amount of angular update in \(\textbf{S}'_3\). Let \(\alpha \) be the angular update. Then, \(\tan \alpha = \mu '_3 / \mu '_1\). Since the amount of angular update \(\alpha \) satisfies \(0 \le \alpha \le \frac{\pi }{2}\) by our process, the \(\tan \alpha \) monotonically increases with respect to the increase of \(\mu '_3 / \mu '_1\). Therefore, choosing the minimum \(\mu '_3 / \mu '_1\) is equivalent to choosing the minimum angular update. In the example in Fig. 5, the candidate #2 provides the smaller \(\mu '_3 / \mu '_1\), and chosen as the new set of scattering directions.

4 Experiments

We used a TLI system equipped with the CT rotation mechanism, as shown in Fig. 1. In the following experiments, we captured darkfield images by setting a sample with seven different postures. For each posture, we captured darkfield images at every \(1^{\circ }\) rotation, obtaining 360 images during a single cycle of the rotation table. Thereby, we obtained \(360\,\,\,7 = 2520\) darkfield images in total for each sample. Then, we examined the proposed CT reconstruction using either normal-based or analysis-based approaches. The results obtained by our method are compared with those obtained by the original XTT [9].

4.1 Setup of Talbot–Lau Interferometer

As with other TLIs reported in previous literature [1, 7, 9], our TLI system consists of three diffraction gratings, i.e., G0, G1, and G2 gratings, as shown in Fig. 1. Owing to the Lau interference induced by the combination of G0 and G1 gratings, the TLI does not require a coherent X-ray source. Moreover, owing to the Talbot interference induced by the combination of G1 and G2 gratings, it is able to capture moiré interference patterns, even though the interval of diffraction slits is as small as a few micrometers, far smaller than the detector pixel size. By the fringe scanning method obtaining a set of several moiré patterns, we can reproduce pixel intensities of a darkfield image, where each pixel stores the intensity of scattering involved with the X-ray beam reaching the pixel [1, 37, 38].

4.2 Test Samples

We examine our fiber orientation reconstruction with two different samples made of CFRP and glass fiber-reinforced plastic (GFRP), respectively. Due to the presence of reinforcement fibers, both samples exhibit orientational X-ray scattering properties within their bodies.

CFRP sample The CFRP sample consists of seven CFRP bars cut out by a CFRP laminate where the reinforcement fibers are aligned in the same direction. These CFRP bars were embedded into epoxy resin to form the test sample. The size of this sample is approximately \(6~\hbox {mm}\) \(6~\hbox {mm}\) \(6~\hbox {mm}\). Since the fiber directions are aligned with the longitudinal direction of each bar, we can evaluate the plausibility of the fiber orientations reconstructed by previous and our methods. The appearance and the experimental results for this sample will be shown later in Sect. 5.1.

GFRP sample (oil pan) The GFRP sample was cut out from an oil pan. The oil pan is part of a vehicle attached under the engine as an oil reservoir and is often made by injection molding. As a sample extracted from an actual product, this sample was used to evaluate the performance of our method in a practical scenario. The appearance and the experimental results for this sample will be shown later in Sect. 5.2.

Reference data We imaged these samples in advance by \(\upmu \)CT and calculated the fiber directions by a simple gradient-based method. Given a \(\upmu \)CT image I(xyz), we calculated the gradients \(I_x\), \(I_y\), and \(I_z\) with respect to the x-, y-, z-coordinates, and then, defined matrix \(\textbf{T}\) as

$$\begin{aligned} \textbf{T} = \begin{bmatrix} I_x^2 &{} I_x I_y &{} I_x I_z \\ I_x I_y &{} I_y^2 &{} I_y I_z \\ I_x I_z &{} I_y I_z &{} I_z^2 \end{bmatrix}. \end{aligned}$$
(12)

We performed the eigendecomposition to \(\textbf{T}\) and obtained the eigenvector \(\textbf{e}_3\) associated with the eigenvalue \(\mu _3\) whose absolute value is the smallest. Then, the direction \(\textbf{e}_3\) is used as a reference fiber direction at each voxel. Using these reference fiber directions, we assess the performance of the previous and proposed fiber orientation reconstruction methods.

4.3 Software Implementation

The proposed reconstruction method was implemented using C/C++ and CUDA C. The pseudocode is shown in Algorithm 1. In this implementation, scattering coefficients \(\mu _k\) are updated by \(N_{\text {inner}}\) iterations of the OS-EM algorithm, which solves the linear system defined by Eq. (1). Using the scattering coefficients, the scattering directions \(\textbf{S}_k\) are updated for every voxel. This alternation between updating scattering coefficients and scattering directions is repeated \(N_{\text {outer}}\) times. Currently, we set \(N_{\text {inner}} = 32\) and \(N_{\text {outer}} = 3\) to obtain sufficient convergence. The number of scattering directions \(\textbf{S}_k\) is only three, which is less than one-half of those used in the original XTT.

We also implemented the original XTT using C/C++ and CUDA C as well for a fair comparison. In this implementation, the linear system defined by Eq. (1) is solved by the OS-EM algorithm, iterated 50 times to obtain sufficient convergence. Following the original article [9], this implementation employs seven scattering directions \(\textbf{S}_k\). To investigate the effect of predefined scattering directions on the reconstruction results, we tested the original XTT with “regular” and “irregular” sets of directions indicated in Table 1.

These software programs were tested on the computer equipped with Intel Xeon E5-1650 CPU v4 ( 3.6 GHz base clock), NVIDIA GeForce RTX 3090 graphics card (with 32 GB graphics memory), and 256 GB of RAM.

Table 1 Two different sets of predefined scattering directions used in the evaluations of the original XTT [9]. The irregular set is made by rotating the directions in the regular set \(60^{\circ }\) around the axis \(\left( +\tfrac{1}{\sqrt{3}}, -\tfrac{1}{\sqrt{3}}, +\tfrac{1}{\sqrt{3}}\right) \)

4.4 Result Visualization

To visualize the resulting fiber directions, fiber orientation vector \(\textbf{F}\) is converted to a color comprised of red, green, and blue (RGB) color components. The RGB color for each fiber is calculated by taking the absolute values of the x-, y-, and z-components of \(\textbf{F}\), i.e., \((R, G, B) = \left( |F_{x}|, |F_{y}|, |F_{z}|\right) \), to fit \([0, 1]^3\) color range.

5 Results and Discussion

This section shows the experimental results for each of the CFRP and GFRP samples. Then, we discuss several properties of the proposed method based on the experimental results.

5.1 Evaluation on CFRP Sample

Figure 6 shows the appearance of the CFRP sample, where seven CFRP bars are embedded in epoxy resin. Two bottom images show the two representative slices of the \(\upmu \)CT image, indicated by blue and orange rectangles in the 3D view. For this sample, we will show the visual and statistical analyses of our proposed methods.

5.1.1 Visual Comparison

Figure 7 shows the results of fiber orientation reconstruction for the CFRP sample. This figure shores the 3D orientation view, which is calculated with a \(\upmu \)CT image, at the left. The two slices, the same ones as those in Fig. 6, are indicated by rectangles in the 3D orientation view. For these slices, we visualized the fiber orientations at the right of Fig. 7. By comparing these results with the reference given from a \(\upmu \)CT image, “XTT (regular)” exhibited slightly brighter colors, particularly for bar-G in slice #1. In contrast, “XTT (irregular),” where the fiber orientations are calculated using irregular scattering directions, obtained a result more similar to the reference. Compared to these results, our analysis-based approach achieved an equivalent result to that obtained by “XTT (irregular)” despite that it used only three scattering directions during the reconstruction process.

Fig. 6
figure 6

The CFRP sample used in our experiment. The CFRP bars in this sample are oriented differently and are embedded in epoxy resin. The thickness of each bar is approximately 2 mm. Two slices of a \(\upmu \)CT image, which are indicated in the 3D view, are shown in the bottom. For these images of slices, fiber directions obtained by a gradient-based analysis is colorized accordingly

Fig. 7
figure 7

Results of visual analysis for fiber orientation reconstruction methods. The left image shows a 3D visualization of reference fiber directions given with a \(\upmu \)CT image. For two slices indicated in this visualization, the four right columns visualize the fiber directions obtained by the original XTT (using either regular or irregular direction sets) and our normal-based and analysis-based approaches

Fig. 8
figure 8

Results of statistical analysis using scatter plots. In each scatter plot, horizontal and vertical axes represent the elevation and azimuth angles of fiber orientations, respectively. From left to right, the columns of plots show the results of \(\upmu \)CT, XTT (regular), XTT (irregular), normal-based approach, and analysis-based approach, as indicated in the legend below the plots

In contrast, in slice #2, the fiber orientations of bar-B and bar-E obtained by the proposed method appeared inadequate. Similar behavior could also be observed in the result of “XTT (irregular).” Compared to these results, “XTT (regular)” appeared to be more appropriate. However, determining which one is superior to another is not straightforward. Although the result of “XTT (regular)” looks more plausible in that they are more similar to those obtained with the \(\upmu \)CT image, the degree of fiber orientations, which indicates how intensively the fiber orients to a specific direction, looks somewhat over-exaggerated. As a result, “XTT (regular)” exhibits a higher color contrast than that in the \(\upmu \)CT result. In contrast, the result of our method, as well as that of “XTT (irregular),” exhibits inconsistent scattering directions, while the average colors, representing fiber directions, appear reasonable. For example, the green and red colors coexist in bar-B, and their average is yellow. In this sense, the proposed method and “XTT (irregular)” could be better than “XTT (regular).” Therefore, to determine the advantage of each method over the others, we may need a more elaborate analysis.

5.1.2 Statistical Analysis

For a more elaborate analysis of the reconstruction results shown in Fig. 7, we created scatter plots to visualize the distributions of given fiber orientations. In this analysis, we extracted fiber orientations at voxels in four cubic regions #1– #4 indicated in Fig. 6. These four regions are selected on the basis of the symmetry in the directions of CFRP bars. Specifically, region #1 belongs to a CFRP bar being aligned with one of the axis directions, regions #2 and #3 are bars lying diagonally on one of the faces of the cube, and region #4 is a bar lying diagonally in the cube.

Figure 8 illustrates the scatter plots for fiber orientations, where the horizontal and vertical axes of each plot represent azimuth and elevation angles, respectively. The elevation angle \(\vartheta \) and the azimuth angle \(\varphi \) of each fiber direction \(\textbf{F}\) are computed simply as

$$\begin{aligned} \vartheta&= \arctan \left( \frac{F_z}{\sqrt{F_x^2 + F_y^2}} \right) , \end{aligned}$$
(13a)
$$\begin{aligned} \varphi&= \arctan \left( \frac{F_y}{F_x} \right) . \end{aligned}$$
(13b)

As we can interpret \(+\textbf{F}\) and \(-\textbf{F}\) are equivalent in terms of the orientation, we flipped the direction vector \(\textbf{F}\) when the azimuth angle \(\varphi \) is negative. Consequently, both azimuth and elevation angles range from 0 to \(\pi \).

Fig. 9
figure 9

The GFRP sample used in our experiments. This sample was cut out from an oil pan to fit the field of view of the TLI system. For reference, the fiber directions obtained from a \(\upmu \) CT image are visualized at the bottom. These two images are extracted from the slices indicated in the sample picture in the middle

We can anticipate that the fibers in region #1 are oriented to the direction \((0, +1, 0)\), and thus, fibers in region #1 should distribute around \((\vartheta , \varphi ) = (\frac{1}{2}\pi , \frac{1}{2}\pi )\). As shown by the scatter plots, both XTT and our approach successfully capture this tendency. What should be noted is that the fiber orientations obtained with a \(\upmu \)CT image have a broad distribution in region #1, which our analysis-based approach closely replicates, as seen in Fig. 8. Similar observations apply to region #2. A unique characteristic of XTT, which we can observe in its results for regions #1 and #2, is its tendency to overly concentrate calculated fiber directions around one of the predefined scattering directions. We can observe this behavior in the results of “XTT (regular),” located in the second column of Fig. 8. However, when the predefined scattering directions deviate, as in the results of “XTT (irregular),” this tendency diminishes. Such a characteristic is also evident in region #4, where actual fiber directions around \((\vartheta , \varphi ) = (\frac{3}{4}\pi , \frac{3}{4}\pi )\) are not aligned with any scattering directions used by “XTT (regular).” These findings suggest that XTT may lose its accuracy when none of the predefined scattering directions matches actual fiber directions, which is more likely to happen in a common scenario in practice. In contrast, the analysis-based approach obtained the fiber directions more appropriately, which were aligned with those given from the \(\upmu \)CT image.

5.2 Evaluation on GFRP sample

The appearance of the GFRP sample is shown in the middle of Fig. 9, which is extracted from an oil pan. The entire look of the oil pan is also shown at the top of Fig. 9. This GFRP sample consists of several layers, and each of them has different fiber orientation properties. As examples, fiber orientations given by \(\upmu \)CT scanning in two different layers are shown at the bottom of Fig. 9. As shown by these images, fibers in one layer are oriented vertically (depicted in green), and those in another layer are oriented horizontally (depicted in red).

Figure 10 shows the results of reconstructed fiber orientations by XTT and our approaches, which are compared to the reference fiber orientations given with the \(\upmu \)CT image. In the left image, three representative layers with characteristic fiber orientations are indicated with dashed white lines. The fiber orientations for these layers are compared based on the images shown at the right of Fig. 10. In each of these three layers, we can observe the following fiber orientation properties.

slice #1::

Most fibers are oriented horizontally, while the middle region has some fibers oriented vertically;

slice #2::

In contrast to slice #1, most fibers are oriented vertically, while the middle region has some fibers oriented horizontally;

slice #3::

There is a rectangular region in the middle, which has vertically oriented fibers, while the regions on both sides have horizontally oriented fibers.

Qualitatively, the appearances of results obtained by XTT and analysis-based approach are similar to the fiber orientations calculated with \(\upmu \)CT images. In contrast, the normal-based method may be prone to become stuck in the local minimum, thus resulting in not converging well to the results similar to the reference data.

When comparing XTT and the analysis-based approach, a notable difference is observed in the color contrasts in their results. As with the results for the CFRP sample, XTT often exhibits apparent orientation peaks when the fiber orientations are aligned with one of the predefined scattering directions. As such, the color contrasts in the XTT results became high for the GFRP sample as well, because most fibers in each layer are oriented to either x- or y-directions. On the other hand, the analysis-based approach, even though the colors in its results are not necessarily the same as those in \(\upmu \)CT results, successfully obtained fiber orientation distribution that was reasonable in terms of the average fiber directions. As evident from the result for the XZ plane slice at the top of Fig. 10, the layered structure in the GFRP sample was more plausibly reproduced by the analysis-based method.

Fig. 10
figure 10

Results of fiber orientation reconstruction for the GFRP sample. For three representative slices, indicated by the white dashed lines in the left image, the fiber directions obtained by \(\upmu \)CT, XTT (regular), XTT (irregular), normal-based approach, and analysis-based approach are visualized from left to right

5.3 Discussion

We discuss here more elaborately the computational properties of the proposed method, including the computational complexity, the effect of alternating optimization, and its practical use cases.

Computational complexity Table 2 shows the comparison of computational time among the original XTT and two variants of the proposed method. The difference in computational complexity between normal-based or analysis-based approaches is negligible compared to that required for other processes during reconstruction. As shown in this table, our method requires approximately three times as much time as XTT does because our method repeats calculation analogous to XTT \(N_\textrm{outer} = 3\) times. Therefore, when comparing the methods in terms of computational complexity only, XTT is superior to our proposed method. However, as we have discussed already, the results of XTT may be significantly affected by the choice of predefined scattering directions. Consequently, its reconstruction accuracy could be lower than the proposed method, where the scattering directions are optimized individually in each voxel.

Effect of updating scattering directions The above experiments demonstrated that our method, particularly using the analysis-based method, can reproduce the voxel-level fiber orientations using only three orthogonal scattering directions. Figure 11 shows how the fiber directions, which corresponds to one of the scattering directions \(\textbf{S}_3\), change during the optimization. As shown by this figure, the initial guess given after one iteration is not similar to reference data. Because of the insufficient updates of scattering directions, the colors of many pixels are gray, which means that the fiber orientations are not well determined. However, after three iterations, the result sufficiently resembles the reference data. Based on this observation, we determined to set the number of iterations for updating scattering directions as three.

Practical use case The central assumption of our method is that dispersing media in a target sample is fibrous and X-rays entering the media are scattered dominantly along directions perpendicular to the fiber. This assumption is reasonable when dealing with fiber-reinforced materials, such as CFRP and GFRP, which are practically important materials in industry. However, this assumption is not satisfied, for instance, when the media at a certain voxel exhibits isotropic scattering property and when its scattering property is asymmetric around the fiber. Therefore, when dealing with more general targets than fiber-reinforced materials, XTT and its extensions could be a more appropriate choice. Accordingly, choosing an appropriate approach for each target sample requires considering the scattering properties of materials comprised in the sample.

Fig. 11
figure 11

The effect of alternating optimization for scattering coefficients and scattering directions. Initially, scattering directions in the first iteration appear inappropriate, when compared with reference data. However, as the number of iterations increases, the result approaches the reference. After three iterations, the result closely resembles the reference data; therefore, we determined to set the number of updates for scattering directions as three

Table 2 Computational complexity

6 Conclusion

In this paper, we introduced a novel approach to reconstruct a 3D volumetric image of fiber orientations, where orthogonal scattering directions are individually optimized at each voxel. To our knowledge, we are the first to demonstrate fiber orientation tomography utilizing dynamic scattering directions. The optimization of per-voxel scattering directions allows us to reduce the number of directions significantly compared to the original XTT method. As we demonstrated through several experiments, our method could reproduce reasonable fiber directions using only three scattering directions and achieved performance equivalent to the original XTT that typically uses seven predefined scattering directions. Despite the equivalent performance, our experiments also demonstrated the different characteristics of these methods. The original XTT is more “precise,” but its results are not necessarily “accurate.” In other words, XTT tends to obtain a distribution highly concentrated in the dominant direction. In contrast, our method, when using the analysis-based scattering direction update, obtains moderate but accurate results, where given fiber orientations distribute broadly, while the distribution centers are closer to the real ones.

For future work, we are interested in investigating the enhancement of our method to be able to handle ellipsoidal and more general scattering intensity distributions as the standard XTT performs. For this purpose, we need to investigate whether our method could improve the performance when using more than three scattering directions. This research direction would facilitate further enhancement of darkfield tomography that optimizes both the scattering coefficients and scattering directions.