## Introduction

Under the Treaty on the Non-Proliferation of Nuclear Weapons (NPT)1 and other treaties against nuclear proliferation, the International Atomic Energy Agency (IAEA) is entrusted to verify all nuclear materials under the control of the State with safeguards agreements in force with the Agency. International safeguards include all the technical measures put in place by the IAEA to verify that each State Parties complies with the aforementioned agreements.

Most safeguards methods are based on the assay of nuclear materials through measurements of ionizing radiation emitted by the sample. Safeguards systems are undergoing an important modernization effort2. One example of such effort is the development of the PGET systems for the inspection of spent fuel in water pools3,4,5. Traditionally, an inspection of spent fuel in pools was performed using the FORK detector, which encompasses, in its standard version, one ionization chamber to measure gamma rays and two neutron-sensitive fission chambers. The FORK detector, however, exhibits low sensitivity to the diversion of fuel pins, being able to detect the diversion of 50% or more of the fuel pins in the assembly under inspection6. A PGET was recently developed to increase the sensitivity to a variety of fuel diversion scenarios5. The software to analyze PGET images can be improved7 to reduce user intervention and overall perform faster and more reliable monitoring of spent fuel and therefore implement the ultimate safeguards objective, i.e., the prompt detection of nuclear material diverted from peaceful uses.

The PGET of spent fuel poses some unique challenges, compared to industrial or medical tomographic imaging, which are due to the high activity of the sources (a single-pin activity is of the order of $$10^{13}$$ Bq) and the high self-attenuation of the fuel pins. While the former can be mitigated using collimated detectors, the latter needs to be addressed by using specific imaging algorithms. Previous work has shown that the reconstruction quality could be significantly improved by applying the attenuation correction8. In this work, we further corrected for the gamma ray down-scattering in the energy window of interest. We have implemented and integrated computational methods based on proximal gradient, physics-informed Monte Carlo sampling, and machine learning to (1) improve the PGET image quality, (2) automatically identify missing pins, and (3) quantify the pin activities. As we will show, the automated identification of missing pins relies heavily on the image quality, and therefore the three tasks are inherently intertwined.

## Results

### Simulated sinograms

We simulated the measurement of six fuel pin configurations in a mock-up water-water energetic reactor (VVER) fuel assembly using MCNP 6.29, as shown in Fig. 1. In Cases 2 and 3, we mimicked the scenario where fuel pins were missing. In Cases 4 and 5, we used depleted uranium to replace cobalt because it resulted in the highest attenuation among different potential replacement materials10, which would allow us to examine the algorithm’s capability of distinguishing replaced pins. In Case 6, we wanted to explore whether the algorithm is able to render an accurate image of a space-dependent activity distribution. Details of the simulated PGET model are included in “Methods-Simulation Methods" section.

The detection system we simulated is the so-called PGET prototype device as described by4. The detection unit consisted of two collimated CdTe detector arrays on opposite sides of the fuel assembly, each encompassing 91 detectors. The detector arrays rotated and scanned the fuel bundle in steps of $$1^{\circ }$$, which generated a $$182\times 360$$ sinogram, as shown in Fig. 2. We simulated $$5\times 10^9$$ NPS (number of particle histories) in each case and detected the photons in the 700-1500 keV energy window. Approximately 15,000 maximum counts in one pixel were achieved, comparable to the counts in an actual PGET measurement.

### Inverse approach

We have developed a systematic approach that allows us to reconstruct high-quality images from individual sinograms, identify the pin locations, and quantify the pin activity levels. The image of fuel pins was reconstructed by solving a linear inverse problem. The region of interest was divided into $$182 \times 182$$ pixels. We calculated the detector array response to a source of unit activity inside each pixel, forming the system response matrix. For an unknown fuel assembly, the measured sinogram is a linear combination of the calculated responses, with the coefficients being the source strength of each pixel. In this way, the image reconstruction problem was converted into a linear inverse problem, with both the simulated sinogram and calculated response matrix as inputs.

First, we performed a simple image reconstruction to obtain an initial estimate of pin locations and pin radius. We calculated the system response matrix using a deterministic ray-tracing method, assuming that the scattering of gamma rays can be neglected11. The reconstructed image of Case 1 is shown in Fig. 3a. Inner pixels are brighter than the outer ones on the image, indicating an overestimation of the activity of the pins. This is because the contribution of scattered photons to the system response cannot be neglected for inner pixels, due to the heavy attenuation of unscattered photons. Nevertheless, using this image, we can determine the center of all possible pins as the centroids of the bright regions on the reconstructed image. In this step, we would allow some slackness in pin identification, since a more accurate reconstruction will be performed later. The identified pins are shown in Fig. 3b. Horizontal and vertical line profiles passing through the center of each pin were extracted from the image, and we fitted a Gaussian to the average of all profiles, shown in Fig. 4. The FWHM (full width at half maximum) of the fitted Gaussian was 0.769 cm, which was taken to be the pin diameter.

With the pin locations and pin radius known, we could create a material map of the fuel assembly. We then implemented an accelerated Monte-Carlo algorithm to calculate the system response matrix, accounting for both the absorption and scattering interaction of photons in the fuel assembly. The images reconstructed using the new response matrix are shown in Fig. 5. The images were then fed to a convolutional neural network to perform pin identification. The results are shown in Fig. 6. For Cases 1 to 5, we achieved 100% classification accuracy, due to the high quality of reconstructed images. We created a histogram of pin activities, as shown in Fig. 7. In Cases 1–5, the standard deviation of activity estimation ranged from 3 to 6%, and the mean of the pin activity distribution deviated from the ground truth by less than 4%. In Case 6, we successfully identified all pins, except those with the lowest activity level (Group 1) shown in Fig. 6f and Fig. 7f. The activity of pins in Group 2 and Group 3 was accurately reproduced with a relative error below 1%. The inverse approach is detailed in the “Methods-image reconstruction methods" section.

## Discussion

The image reconstruction problem can be formulated into different linear inverse problems based on the selected model of observation noise. As detailed in “Inverse Problem Approach", we formulated two inverse problems with the Gaussian noise model and Poisson model, which can be solved using FISTA (fast-iterative shrinkage-thresholding algorithm)12 and PIDAL (Poisson image deconvolution by augmented Lagrangian) algorithm13, respectively. We applied both FISTA and PIDAL to perform reconstruction in Case 1 and compared them in Fig. 8. We assessed the image quality quantitatively using the mean-square-error (MSE) and structural similarity (SSIM)14. MSE is the mean-squared-difference between the reconstructed image and the ground truth, and SSIM measures the similarity between the reconstructed image and the ground truth. Lower MSE and higher SSIM mean better reconstruction. As shown in Table 1, the image reconstructed with FISTA resulted in a lower MSE and higher SSIM, compared to PIDAL, and PIDAL took approximately 20% longer to run than FISTA. Therefore, we used FISTA as the main image reconstruction algorithm.

For comparison, we have also implemented the traditional FBP method to reconstruct the image, which is detailed in “Methods-image reconstruction methods" section. We then input these images to the neural network for pin identification, and estimated the pin activity levels. We compared the performance of the inverse (FISTA) and FBP approaches in terms of image quality, accuracy of pin identification and activity quantification. Fig. 9 shows the images reconstructed using FBP. Compared to Fig. 9, images in Fig. 5 demonstrated higher contrast and fewer reconstruction artifacts. The blurring at the center was significantly removed using the inverse approach. We calculated the MSE and SSIM for both sets of images, shown in Table 2. We achieved significantly lower MSE and higher SSIM by using the inverse approach, which resulted in lower mis-classification rates of pin identification overall. The pin identification results based on FBP reconstruction are shown in Fig. 10. In Fig. 10a,c, and e, the blurring led to inaccurate pin localization around the center of FBP-reconstructed images, and the hexagonal structure was destroyed. In contrast, the hexagonal structure was accurately reproduced using the inverse problem approach, as shown in Fig. 6a–e. Hence, given the same sinogram data, the inverse approach is expected to better distinguish pins missing from the fuel assembly and result in lower false alarm rates, compared to FBP. MSE and SSIM are calculated based on unnormalized images. Therefore, in Case 6, we achieved the best MSE and SSIM because Case 6 exhibited the smallest average pixel intensity. Despite the good image reconstruction, both FBP and inverse approaches led to relatively high mis-classification rates in Case 6 due to the fact that the low activity pins and high gradient in the pin activity are absent features in the training set. However, we do not expect such a large variation of pin activities in an actual fuel assembly15 and, should that be the case, a new training set can be used to improve the pin identification results.

We estimated the activity of each pin by summing the pixels on the reconstructed images and created a histogram of pin activities for each case, shown in Figs. 7 and 11. It should be noted that for the FBP reconstruction, there is no definite relationship between the pixel sum and the absolute activity. Appropriate normalization constant needs to be applied to convert the pixel sum into activity, which is not always possible in an actual inspection. In this case, we calculated the ratio between the mean of the pixel sum distribution and the true activity for Cases 2–5. We then used the average of these ratios as the normalization constant and applied it to all cases to convert the pixel sum to absolute activity. In contrast, normalization is not needed for the inverse reconstruction because the response matrix has already been normalized per unit source particle. Compared to Fig. 11, the pin activity distributions in Fig. 7 were narrower. We calculated the relative error compared to the ground truth and the standard deviation of pin activity, as shown in Table 3. We obtained smaller standard deviations by using the inverse approach in all cases. The relative error was negligible compared to the ground truth, except for the low activity pins in Group 1 of Case 6.

Compared to $$\mathrm {UO}_2$$ fuel rod, the cobalt rod simulated in this work resulted in less attenuation because of its lower density and atomic number. Nevertheless, this work describes a general approach for correcting the gamma-ray attenuation and down-scattering in the energy window of interest and it can be easily adapted to $$\mathrm {UO}_2$$ fuel assemblies by updating the atomic composition and gamma-ray source term in the simulation. In this work, we assumed that the detector performance is the same in the simulation of the sinogram and response matrix, which is not true for the real PGET device. The correction for varying detector performances across the detectors, either at the hardware or software level, is crucial to obtain an accurate estimation of pin activity. When identifying drifting detectors in post-processing, e.g., whose response is anomalously different compared to neighbour detectors, a simple approach consists in neglecting their response. In a preliminary analysis on simulated data, we replaced the response of an increasing number of detectors in the sinogram with null arrays. We found that if the number of “neglected” detectors is below ten in the PGET setup, the reconstructed image is negligibly affected by not including their response. Future work will be needed to study the robustness of the software suite as a function of a systematic bias in the detector performance.

## Conclusion

In this work, we have implemented a full set of software, which is able to reconstruct cross-sectional images of mockup fuel assemblies acquired by a simulated PGET system, identify missing fuel pins, and estimate fuel pin activities based on the reconstructed image. We have developed a linear forward model that accounts for the scattering of gamma rays in the assembly to accurately characterize the response matrix of the PGET system. The image reconstruction was formulated into a linear inverse problem by modeling the observation noise as Gaussian, which was solved using FISTA. The reconstructed image was fed to a convolutional neural network to automatically identify the present pins and determine their centroids. Compared to the FBP approach, the inverse problem approach resulted in over 50% lower MSE and 200% higher SSIM, and consequently lower mis-classification rates in pin identification in all cases. Based on the pin identification results, we estimated the pin activity by summing up the pixel values around the centroid inside the pin radius on the image. Compared to the FBP, the inverse approach resulted in smaller standard deviations of pin activity in all cases, with negligible bias with respect to the ground truth. The proposed inverse approach to reconstruct a fuel pin cross section, identify fuel pins and calculate their activity took approximately 8 minutes to run on an Intel Core i9-7920X CPU without parallelization. We are currently improving the algorithm to allow automatic classification of different activity groups in a real fuel assembly.

## Methods

### Monte Carlo simulation of the PGET based on MCNP

Figure 12 shows the cross-sectional view of the MCNP model of Case 1. In Case 4 and 5, depleted uranium pins were used, where Co was replaced by 0.20% enrichment UO$${}_{2}$$. We used the F4 tally as the detector response model in the MCNP simulation and the response matrix calculation. The F4 tally estimates the average photon flux in the detector cell by summing the track lengths of all particles in the 700-1500 keV energy window. The absolute activity measurement can be obtained using the proposed method as long as the simulated quantity in the response matrix is consistent with the simulated response to an unknown inspected fuel bundle. When applying the proposed technique to experimental data, one would want to validate the simulated detector response with the measured one, to properly incorporate specific detector’s properties, such as its energy resolution and time response, in the simulated model.

### Image reconstruction methods

In this section, we describe in detail the two image reconstruction methods implemented in this work: the FBP and linear inverse problem method. We applied both methods to reconstruct images from the sinograms and compared their performance.

#### Filtered back-projection

Figure 13 shows the tomography measurement of the fuel assembly at angle $$\theta$$. The FBP method relies on two approximations: first, we neglect the attenuation and scattering of gamma rays in the system; second, for pins at different locations, we assume that the geometric efficiencies are the same. Under these approximations, the sinogram $$\varvec{\phi }(\rho ,\theta )$$ can be simplified as the integral of the source distribution $$\mathbf {s}(x,y)$$ along the red line passing through the detector center, i.e.,

\begin{aligned} \begin{aligned} \varvec{\phi }(\rho ,\theta ) = \iint _{\mathbb {R}^2} \mathbf {s}(x,y) \delta (x \cos \theta + y \sin \theta -\rho ) dxdy. \end{aligned} \end{aligned}
(1)

Equation (1) is the standard forward model in X-ray tomography imaging. The classical inverse operation from the sinogram to the source is the filtered back-projection, which is also a standard imaging algorithm in X-ray imaging16 and will not be detailed here.

#### Inverse problem approach

The inverse reconstruction approach is based on the conversion of the image reconstruction problem into a linear inverse problem. Let the vectorized image of the fuel assembly be $$\mathbf {s}$$, which contains N unknown pixel values, and the vectorized simulated sinogram of size $$M=65,520$$ ($$182 \times 360$$) be $$\varvec{\phi }$$. The inverse approach relies on the assumption that $$\varvec{\phi }$$ is a linear function of $$\mathbf {s}$$,

\begin{aligned} \begin{aligned} \varvec{\phi } = \mathbf {A}\mathbf {s} + \mathbf {n}, \end{aligned} \end{aligned}
(2)

where $$\mathbf {A}$$ is the system response matrix of size $$M \times N$$, and $$\mathbf {n}$$ models random observation noise, assumed to be isotropic Gaussian distributed. Physically, the i-th column of the response matrix $$\mathbf {A}$$ is the vectorized sinogram corresponding to a pin distribution with unit activity in pixel i but zero elsewhere. Accurate determination of the system response matrix is crucial to obtain a high-quality image and avoid systematic bias in pin identification and activity estimation. The analytical derivation of the response matrix is discussed in the next section.

Given the simulated sinogram and system response matrix $$\mathbf {A}$$, we can reconstruct the image by solving the following equation:

\begin{aligned} \hat{\mathbf {s}} = \mathop {\mathrm{arg min}}\limits _{{s_i\ge 0, \forall i}} \quad \left[ \frac{1}{2}\Vert \varvec{\phi } -\mathbf {A}\mathbf {s}\Vert _2^2 + \lambda \Vert \mathbf {s}\Vert _1 \right] = \mathop {\mathrm{arg min}}\limits _{{s_i\ge 0, \forall i}} \quad \left[ \frac{1}{2}(\varvec{\phi } -\mathbf {A}\mathbf {s})^T(\varvec{\phi } -\mathbf {A}\mathbf {s}) + \lambda \sum _{i=1}^N|\mathbf {s}_i| \right] \end{aligned}
(3)

where the first term is the data-fidelity term assuming Gaussian noise, and the second term is a regularization term acknowledging that the fuel pin is sparsely distributed. The regularization parameter $$\lambda$$ is chosen based on the noise level. To solve Eq. (3), we have implemented the fast iterative shrinkage-thresholding algorithm (FISTA)12.

As an alternative, we can model the observation noise by Poisson noise and the data-fidelity term is changed accordingly13,17 as follows

\begin{aligned} \hat{\mathbf {s}} = \mathop {\mathrm{arg min}}\limits _{{s_i\ge 0, \forall i}} \quad \left[ \sum _{j=1}^{M}([\mathbf {A}\mathbf {s}]_j - \varvec{\phi }_j \log [\mathbf {A}\mathbf {s}]_j) + \lambda \Vert \mathbf {s}\Vert _1 \right] . \end{aligned}
(4)

To solve Eq. (4), we used the PIDAL algorithmic structure described in13.

#### Computation of the response matrix

The calculation of the system response matrix $$\mathbf {A}$$ involves the calculation of detector response to each pixel, with each response being one column in the matrix. For inner pixels, the contribution from scattered photons is non-negligible due to the high attenuation. To account for this, we have implemented an algorithm that combines stochastic photon transport with deterministic collimator-detector modeling to accurately calculate the system response matrix.

For real fuel assemblies, no prior information of pin distribution and pin radius will be given. It is therefore necessary to first estimate these quantities before running the Monte Carlo simulation. As discussed in the “Results-Inverse approach” section, this is done by performing a rough image reconstruction using our previously developed model, where uniform attenuation map is used and no scattering effect is considered11. Based on the reconstructed image, one could determine the pin locations and pin radius, and create a material map, where the material is assumed to be cobalt inside the pin, and water outside.

Next, we simulate the travel of photons inside the fuel assembly using Monte Carlo. Two sets of grids are generated. The fine grid has a pixel size of $$0.5\times 0.5$$ mm$${}^{2}$$, while the coarse grid has a pixel size of $$2\times 2$$ mm$${}^{2}$$. We first discretize the region of interest on the fine grid and calculate the response to the pixels whose center points are inside the pin. Then we calculate the response to a pixel on the coarse grid by summing the responses to the corresponding $$4\times 4$$ pixels on the fine grid. Based on the pin identification result in the previous step, the potential pin-present region are pixelated into 5329 coarse pixels. We iterate over all these pixels and form the response matrix. In this way, we are able to reduce the pixelization error introduced during the discretization of the pins, without increasing the final response matrix size.

The response to each fine pixel whose center point is inside the pin is calculated in the following way. A photon $$(\mathbf {r_0}, \mathbf {\Omega _0}, E_0, W_0)$$ is created, with the initial position $$\mathbf {r_0}$$ uniformly sampled inside the pixel, the initial moving direction $$\mathbf {\Omega _0}$$ uniformly sampled in $$4\pi$$ space, the initial energy $$E_0$$ sampled from the source energy spectrum, and the initial weight $$W_0$$ assigned to 1. We track the photon inside the PGET using the delta-tracking algorithm18 and determine the position where the photon interacts with medium. We force the interaction to be Compton scattering by multiplying its weight with the probability that the interaction is Compton scattering,

\begin{aligned} W_{i} = W_{i-1} \frac{\mu _{\text {sc}}(\mathbf {r}_{i-1}, E_{i-1})}{\mu (\mathbf {r}_{i-1},E_{i-1})} \end{aligned}
(5)

where $$\mu _{\text {sc}}(\mathbf {r}_{i-1}, E_{i-1})$$ and $${\mu (\mathbf {r}_{i-1}, E_{i-1})}$$ are the Compton scattering attenuation coefficient and total attenuation coefficient at the i-th interaction site, respectively. A scattering angle is sampled19, and the photon energy $$E_{i}$$ and moving direction $$\mathbf {\Omega _i}$$ are updated accordingly. This process is repeated until the photon escapes the fuel assembly or the photon energy is below the detection threshold. A copy of the photon is saved at its creation site and each interaction site to a sub-projection map.

Once the sub-projection map is obtained, we apply the convolutional forced detection (CFD) technique to calculate the detector response. CFD is a widely-used variance reduction technique for X-ray downscatter simulation in single photon emission computed tomography (SPECT), which has been shown to be 50–100 times faster than conventional forced detection technique20 and several thousand times faster than full-3D Monte Carlo simulation21. Figure 14 illustrates its principle. In CFD, the photon is forced to travel perpendicularly to the detector plane upon its creation or interaction with medium to effectively simulate all the possible spatial distributions of particle interactions and consequent detection events. For an unscattered photon, the contribution to the F4 tally in the detector cell is given by

\begin{aligned} W\times \frac{\Delta \Omega }{4\pi }\times e^{-\int \mu (\mathbf {r},E) ds} \times \frac{T_l}{V} \end{aligned}
(6)

and for a scattered photon, the contribution is

\begin{aligned} W \times \frac{\sigma (\theta ) \Delta \Omega }{2\pi \int _{0}^{\pi }\sigma (\theta ')\sin (\theta ')d\theta ' } \times e^{-\int \mu (\mathbf {r},E(\theta )) ds} \times \frac{T_l}{V}. \end{aligned}
(7)

In Eqs. (6) and (7), W is the photon weight, $$\Delta \Omega$$ is the solid angle subtended by the detector in steradian, $$\sigma (\theta )$$ is the differential cross-section for Compton scattering, $$\mu (\mathbf {r}, E)$$ is the total attenuation coefficient along the CFD path, and the last term stands for the contribution to F4 tally, i.e., average track length in detector cell normalized by detector volume.

Due to the non-ideal collimation, a photon will contribute counts not only to the detector in the same column, but also to the neighbouring ones. This phenomenon is characterized by the depth-dependent point spread function (PSF) of the collimator, i.e., the photon count distribution on the detection plane when a point source is imaged. PSF depends on the vertical distance z between the photon and the detector array22:

\begin{aligned} {PSF_z(x) = {\frac{2\sqrt{\ln (2)}}{\sqrt{\pi }\mathrm {FWHM}(z)}\exp \left( \frac{-4\ln {2}\times x^2}{\mathrm {FWHM}(z)^2}\right) }, {\mathrm {FWHM}}(z) = b + \frac{b}{l_{\text {eff}}}z, {l_{\text {eff}}} = l - \frac{2}{\mu }} \end{aligned}
(8)

where b is the collimator aperture, l is the collimator length, $$\mu$$ is the total attenuation coefficient in the collimator, and $$\mathrm {FWHM}$$ is the width of the collimator PSF.

To calculate the response to a pin at an angle $$\theta$$, the photons saved in the sub-projection map are first rotated by an angle $$-\theta$$. We then sum the weights of the photons in the same pixel on the sub-projection map and calculate their contribution to the detector response based on Eqs. (6) or (7), which creates a projection map. We then convolve each row in the projection map with the PSF function and sum all rows up to get the response at this angle. Next, we increment the angle $$\theta$$ and calculate the response at the next angle. In this way, photon tracking in the fuel assembly is done only once, which saves computation time.

We simulated the travel of 6400 photons to create the sub-projection map for one pixel. It took approximately 4 mins to calculate the response matrix containing 5329 pixels using CFD on an Intel Core i9-7920X CPU.

### Pin localization

Images reconstructed using both approaches are input to a convolution neural network, referred to as U-net23, to perform pin identification. The experimental data provided by IAEA within the framework of a technology open challenge7 were used for the training of the U-net. The training data consisted of the FBP images reconstructed from the measured sinograms of mock-up assemblies of 12 different geometries with a variable number of $${}^{60}$$Co pins, and examples of the reconstructed images of these assemblies can be found in7. The U-net was trained to minimize a binary crossentropy loss between the predicted pin masks and ground truth. For each image, we provided four randomly rotated ones as input to the network, for data augmentation. Data augmentation allowed us to generate new training instances from existing ones, artificially boosting the size of the training set. The network was trained for 10,000 epochs, i.e., complete iteration over the whole dataset, using a learning rate of $$10^{-5}$$ and an Adam optimizer24. We found that $$10^{-5}$$ is the learning rate for which the slope of the crossentropy loss is maximized, allowing to reach the minimum. The training was early stopped when the loss reached its minimum value. The trained U-net can extract visible structures from the input image and output a mask based on the extracted features. Bright regions on the mask with areas above a certain threshold are identified as present pins, and their centroids are calculated as the coordinates of the center of each pin.