<figure><img src="image_1.png" /></figure>

# Convolutional Sparse Coding et Dictionary Learning pour la reconstruction tomographique par rayons X pour le contrôle de pièces de fabrication additive

Victor Bussy<fnref n="1" />, Caroline Vienne<fnref n="1" />, Julie Escoda<fnref n="1" />, Valérie Kaftandjian<fnref n="2" />

## Résumé

Cet article évalue le potentiel du *convolutional sparse coding* (CSC) pour réduire les artefacts dans les images 3D par tomographie rayons X dans le cas où peu de projections sont disponibles. La méthode CSC proposée est testée sur des échantillons métalliques fabriqués par fabrication additive, qui présentent des défis uniques pour les applications de débruitage en raison de la structure fine du matériau. Les résultats indiquent que le CSC surpasse les dictionnaires traditionnels en termes de performance de débruitage et de vitesse de calcul, ce qui en fait une méthode prometteuse pour les applications d'imagerie tomographique à grande échelle.

## 1. Introduction

La tomographie à rayons X est une technique d'imagerie puissante qui permet d'inspecter et de contrôler l'intérieur d'objets complexes. Cependant les temps d'acquisition trop longs des multiples projections nécessaires à la reconstruction 3D sont une réelle difficulté. La stratégie *sparse-view CT* vise justement à réduire le temps d'acquisition en limitant le nombre de projections, tout en assurant une bonne qualité de reconstruction. Les techniques de reconstruction itérative ont permis de répondre partiellement à ce problème grâce à des termes de régularisation avancées et l'injection de connaissances *a priori* [1]. Ces dernières années, ces techniques itératives ont été améliorées par la théorie et le développement de l'acquisition comprimé, dit *compressed sensing* (CS), qui permet la reconstruction d'images de haute qualité malgré un nombre de vues inférieur à celui requis pour les algorithmes analytiques de rétroprojection filtrée [2]. Cependant, les reconstructions CT conventionnelles basées sur le CS sont coûteuses en termes de calcul car les méthodes de reconstruction associées résolvent un système à haute dimension avec la norme 1. Pour surmonter ce problème, le *sparse coding*, un développement particulier du CS, utilise une stratégie *patch-based*. En ne traitant que de petites portions de l'image, également appelées *patchs ou blocs* en 3D, elle permet la description d'une image

volumétrique de grande taille par des blocs qui se chevauchent et réduit ainsi la demande de ressources numériques. De nombreuses méthodes utilisant des patchs ont été adaptées pour la tomographie ces dernières années : Non-Local Means (NLM) [3], Block-Matching 4D (BM4D) [4], et en particulier le *sparse coding* sur des dictionnaires redondants [5]. Ce dernier a connu un grand succès grâce à ses nombreuses applications mais est encore peu présent en tomographie 3D industrielle, notamment à cause du temps de calcul souvent trop long et des artefacts dus à l'agrégation des patchs. En effet, chaque bloc de l'image est traité indépendamment et souvent, pour chacun d'entre eux, une optimisation doit être appliquée, ce qui rend le traitement très long. De plus, les blocs doivent être superposés pour bien décrire l'image, ce qui augmente leur nombre. Pour pallier ces limitations, le *convolutional sparse coding* (CSC), également appelé *shift-invariant sparse coding*, propose un nouveau formalisme dans lequel la continuité de l'image est prise en compte [6]. Cette propriété permet également d'utiliser des opérateurs plus petits. Le CSC propose une solution aux problèmes de ressources numériques, de vitesse de calcul et de qualité de reconstruction. Cet article compare les algorithmes basés sur les dictionnaires redondants traditionnels et les algorithmes CSC sur des données industrielles issues de la fabrication additive pour le débruitage des tomographies à rayons X.

## 2. Méthodologie

Le *sparse coding* est une technique largement utilisée dans le traitement des signaux et les problèmes inverses. Cette technique suppose qu'un signal $x \in \mathbb{R}^m$ peut être reconstruit grâce à seulement quelques éléments, appelés *atomes*, tirés d'un dictionnaire redondant $D \in \mathbb{R}^{mxn}$ [7]. Dans le cadre du *sparse coding*, chaque bloc $x_s$ d'un signal $x$ est codé à l'aide d'une combinaison linéaire éparsée $z_s \in \mathbb{R}^m$ d'atomes du dictionnaire, de sorte que pour chaque bloc $x_s \approx E_s D z_s$, où $E_s$ représente un opérateur permettant d'extraire le bloc $x_s$. Le problème de la recherche d'une représentation parcimonieuse est appelé *sparse pursuit* et constitue le point essentiel de toutes les techniques de *sparse coding*.

<footnote n="1">¹Université Paris-Saclay, CEA, LIST, F-91190, Palaiseau, France</footnote>

<footnote n="2">²Laboratory of Vibrations and Acoustics, INSA-Lyon, Villeurbanne, France</footnote>

<footnote>*corresponding author, e-mail: victor.bussy@cea.fr</footnote>
Naturellement, de nombreuses méthodes sont apparues pour résoudre ce problème. Les plus utilisées sont les algorithmes dit de matching pursuit qui cherchent une solution de manière gloutonne (OMP [8]), et les formulations convexes appelées basis pursuit (Iterative soft-shrinkage methods, LARS), qui résoudront ce problème avec une contrainte de norme 1 sur la représentation [9]. Avec ces dernières, la fonction objectif pour reconstruire le signal devient l'équation suivante :

$$ \hat{z} = \operatorname*{argmin}_{z} \sum_{s} \|D z_{s} - E_{s} x\|_{2}^{2} + \lambda \sum_{s} \|z_{s}\|_{1} $$

où $\lambda$ est un paramètre qui fait un compromis entre le terme de fidélité aux données et de parcimonie. Le dictionnaire peut également être appris en même temps que la représentation parcimonieuse. Dans ce cas, il devient une variable de l'équation précédente et le problème est appelé dictionary learning.

Toutefois, l'apprentissage d'un dictionnaire devient rapidement difficile numériquement lorsque les signaux sont longs et les dimensions élevées. Le CSC est donc apparu comme une évolution des méthodes basées sur les dictionnaires, mais où le dictionnaire global est en fait une matrice circulante en bande d'un petit dictionnaire local. Cette structure impose que les blocs soient une superposition des filtres du dictionnaire local. Le principal avantage est qu'il n'est plus nécessaire d'apprendre un dictionnaire global composé de nombreux atomes, mais seulement un petit dictionnaire composé de quelques m filtres, dans notre cas nous avons choisi m=20. De plus, la continuité de l'image est prise en compte et toutes les translations des filtres sont possibles. La représentation éparse est maintenant obtenue de la manière suivante :

$$ \hat{z} = \operatorname*{argmin}_{z} \frac{1}{2} \left\| \sum_{j=1}^{m} d_j * z_j - x \right\|_{2}^{2} + \lambda \sum_{j=1}^{m} \|z_j\|_{1} $$

où $d_j$ représentent les filtres du dictionnaire local, $x$ représente l'image, et $z_j$ sont les coefficients des filtres. Dans le cadre du CSC, l'apprentissage du dictionnaire et la recherche de coefficients sont généralement effectués à l'aide de la méthode des multiplicateurs à directions alternées (ADMM) [10]. En résolvant le problème dans le domaine de Fourier, [11] propose une accélération considérable de l'algorithme.

Pour comparer les dictionnaires traditionnels et convolutifs, nous avons sélectionné deux méthodes de débruitage : non supervisée et supervisée.

## 2.1. Débruitage par basis pursuit

La manière la plus simple de débruiter une image de tomodensitométrie 3D consiste à trouver sa représentation parcimonieuse et à reconstruire le signal dans la base de l'image. Cette méthode est simple et permet de se

débarrasser du grain d'une image. Pour l'apprentissage dictionnaire traditionnel, le dictionnaire est généralement appris sur une autre image tomographique, obtenue avec les mêmes paramètres d'acquisition et reconstruite avec l'ensemble des projections.

Pour le CSC, le volume d'apprentissage est d'abord filtré par un passe-haut. Il en est de même pour les coefficients qui sont déterminés sur les données filtrées car, comme indiqué dans [12], la CSC n'est pas bien adaptée pour représenter les basses fréquences. Par conséquent, seules les hautes fréquences sont débruitées séparément, puis ajoutées aux basses fréquences.

## 2.2. Débruitage par dictionnaires joints

Une deuxième approche pour débruiter un signal consiste à utiliser des dictionnaires joints [13]. Pendant la phase d'apprentissage, deux dictionnaires sont appris conjointement sur les reconstructions parcimonieuses et denses du même échantillon. En forçant les deux reconstructions à partager le même code sur une base différente, chaque filtre du dictionnaire parcimonieux $D_s$ et du dictionnaire dense $D_d$ sont appariés. Les résultats d'une basis pursuit dans la base "parcimonieuse" peuvent alors être utilisés dans la base "dense". En utilisant des reconstructions de différentes tailles, on peut même proposer un schéma de super-résolution [14]. Ils proposent également une méthode analytique basée sur une formulation convexe pour former les deux dictionnaires simultanément avec des algorithmes classiques d'apprentissage de dictionnaire. Les auteurs de [13] construisent directement les deux dictionnaires en extrayant des blocs aux mêmes positions dans les reconstructions parcimonieuses et denses. Notons que dans les deux méthodes, pour améliorer les résultats, les caractéristiques de l'image dans $D_s$ sont les valeurs des voxels et les distributions de gradient de premier et de second ordre. $D_d$ est uniquement composé des valeurs des voxels.

Nous proposons une méthode intermédiaire pour le CSC entre les méthodes analytique et directe. Grâce à un optimiseur ADMM, un dictionnaire $D_s$ est appris sur les données parcimonieuses. Ensuite, chaque filtre est exprimé comme une combinaison linéaire de blocs extraits du volume éparse. En utilisant la même combinaison linéaire et les blocs extraits aux mêmes endroits dans la reconstruction dense, nous créons une version "dense" de notre dictionnaire initial. Cette technique bénéficie des avantages de la méthode analytique, qui trouve les structures sous-jacentes du signal, mais aussi de la simplicité et de la vitesse de calcul de la méthode directe. Comme mentionné précédemment, la méthode proposée peut également utiliser des caractéristiques d'image autres que les voxels. Elle présente également l'avantage de nécessiter peu de ressources numériques, contrairement à la méthode analytique, qui requiert la résolution d'un problème à haute dimension. La méthode est récapitulée
dans l'algorithme 1 et la figure 1 montre les filtres appariés dans $D_s$ et $D_d$.

**Algorithme 1 : Apprentissage des dictionnaires joints**

**Entrées** : Reconstruction parcimonieuse $X_s$ et dense $X_d$

**Sorties** : Dictionnaires joints $D_s$ et $D_d$

1. Calculer $D_s$ en résolvant l'équation 2 avec $X_s$

2. Extraire les blocs $B_s$ et $B_d$ aux mêmes positions dans $X_s$ et $X_d$

3. Résoudre $B_sY = D_s$

<figure><img src="image_2.png" /><figcaption>Figure 1 : Exemples de coupes de $D_s$ (gauche) et leurs coupes associées dans $D_d$ (droite)</figcaption></figure>

### 3. Résultats

Dans cette section, les techniques précédentes sont testées sur trois cubes d'aluminium créés par un processus de fabrication additive par fusion laser sur lit de poudre (L-PBF) en utilisant différents paramètres de processus (puissance et vitesse du laser). Les images 3D sont respectivement de taille 742x601x749, 744x777x723 et 679x670x627 voxels. Un quatrième cube de 500x379x500 est utilisé pour la formation. La taille des voxels est de 20µm³. La figure 2 montre les coupes transversales des différents cubes utilisés dans cet article. En raison des différents processus de fabrication additive, les échantillons présentent des variations de texture significatives. Les images éparses et denses sont reconstruites à l'aide de l'algorithme FDK, respectivement avec 100 et 900 projections acquises régulièrement autour de l'échantillon. Le progiciel SPORCO est utilisé pour les calculs CSC [15].

Pour la *basis pursuit*, le paramètre $\lambda$ est fixé à 0,1. La figure 3 montre que les dictionnaires traditionnels et convolutifs permettent un meilleur contraste autour des fissures et des trous. Les bords de l'image sont plus nets avec les dictionnaires traditionnels. Avec CSC, on peut remarquer quelques effets inattendus sur les bords dus au filtre passe-haut. L'aspect granuleux de l'image est bien corrigé entre les fissures sans perdre l'information de l'image. Le CSC a un effet de lissage plus important.

<figure><img src="image_3.png" /><figcaption>Figure 2 : Coupes des cubes en aluminium. Celui en bas à droite est utilisé pour l'apprentissage tandis que les autres sont utilisés pour les tests.</figcaption></figure>

Ensuite, pour le problème d'apprentissage de dictionnaires traditionnels conjoints, nous avons utilisé la méthode décrite [14] avec le gradient dans chaque direction comme caractéristiques d'image supplémentaires. La taille du dictionnaire est de 2560x10240, 512 caractéristiques sont dédiées aux blocs "denses", et 2048 sont pour les blocs parcimonieux et leurs gradients. L'apprentissage est effectué à l'aide de la méthode ADMM.

Les dictionnaires convolutifs conjoints sont constitués de 32 filtres de taille 8³ voxels. 7680 blocs aléatoires ont été extraits pour former $B_s$ et $B_d$. Les images débruitées, présentées dans la figure 3, semblent lissées. La détection des porosités et des fissures est beaucoup plus facile. On peut remarquer que le CSC apparaît plus texturé que les dictionnaires traditionnels, mais le contraste autour des petites aspérités reste bon.
<figure><img src="image_4.png" /></figure>

Dans le tableau 1, nous indiquons le *Peak Signal Noise Ratio* (PSNR) et les valeurs de l'indice de similarité

structurelle (SSIM) pour les reconstructions de 100 projections des cubes avant et après débruitage. Les volumes sont comparés aux reconstructions denses de 900 projections. NLM (avec σ=0.05, des blocs de 8³ voxels et zone de

recherche de 33³ voxels) et BM4D sont également présentés à des fins de comparaison. Cependant, ces méthodes n'améliorent pas la qualité de l'image car l'image initiale est trop texturée et les similitudes entre les blocs sont difficiles à trouver.

<caption>Figure 3 : Résultats des différentes techniques de débruitage sur le premier cube</caption>

Les résultats montrent l'efficacité de la CSC pour le débruitage des reconstructions tomographiques éparses. Le CSC surpasse les dictionnaires traditionnels en termes de performance de débruitage et de temps de calcul. CSC prend environ 3 minutes pour débruiter un échantillon contre 1 heure pour la méthode traditionnelle, sur un CPU Intel Core i9-11950H 2.60GHz.

<table><caption>Tableau 1 : Évaluation de la qualité d'image des cubes d'aluminium avec différentes méthodes de débruitage</caption><thead><tr><th>PSNR[dB] / SSIM</th><th>Cube 1</th><th>Cube 2</th><th>Cube 3</th></tr></thead></table>
<table><tr><td>Before denoising</td><td>19.16/0.3871</td><td>22.70/0.3428</td><td>18.80/0.4561</td></tr><tr><td>NLM</td><td>19.12/0.3876</td><td>22.70/0.3428</td><td>18.80/0.4562</td></tr><tr><td>BM4D</td><td>19.09/0.3912</td><td>22.71/0.3422</td><td>18.80/0.4569</td></tr><tr><td>Basis Pursuit</td><td>22.56/0.5776</td><td>25.16/0.6087</td><td>26.59/0.5776</td></tr><tr><td>CSC Basis Pursuit</td><td>25.94/0.6431</td><td>25.41/0.6427</td><td>26.77/0.7272</td></tr><tr><td>Dictionnaires joints</td><td>24.19/0.5707</td><td>25.85/0.6802</td><td>26.67/0.7277</td></tr><tr><td>CSC Dictionnaires joints</td><td>25.26/0.5881</td><td>25.91/0.7051</td><td>26.71/0.7278</td></tr></table>

## 4. Conclusions

Nous avons présenté deux exemples de méthodes de débruitage utilisant la représentation parcimonieuse traditionnelle et convolutive pour améliorer la qualité de la reconstruction de cubes d'aluminium fabriqués par fabrication additive. Chaque méthode a montré, sur des données expérimentales, une capacité à débruiter les reconstructions, ce qui facilite l'analyse et le contrôle des échantillons étudiés. La CSC a montré une meilleure capacité à débruiter les volumes tomographiques. CSC ouvre de nombreuses possibilités et perspectives pour la reconstruction tomographique dans le cadre de la régularisation Plug-and-Play. De nombreux aspects restent à traiter, notamment la classification, la segmentation et la détermination des propriétés physiques à partir des coefficients de la carte.

## Références

[1] P. Paleo. "Iterative Methods in regularized tomographic reconstruction". Theses. Université Grenoble Alpes, Nov. 2017.

[2] S. Hashemi, S. Beheshti, P. R. Gill, et al. "Accelerated Com-pressed Sensing Based CT Image Reconstruction". Computational and mathematical methods in medicine 2015.161797

(2019). doi: 10.1155/2015/161797.

[3] G. Peyré, S. Bougleux, and L. D. Cohen. "Non-local Regularization of Inverse Problems". European Conference on Computer Vision (ECCV'08). Ed. By Forsyth, D. Torr, P. Zisserman, et al. Vol. 5303. LNCS III. Marseilles, France: Springer, Oct. 2008, pp. 57–68.

[4] M. Maggioni, V. Katkovnik, K. Egiazarian, et al. "Nonlocal Transform-Domain Filter for Volumetric Data Denoising

and Reconstruction". IEEE Transactions on Image Processing 22.1 (2013), pp. 119–133. doi: 10.1109/TIP.2012.2210725.

[5] D. Karimi. "Sparse and redundant signal representations

for x-ray computed tomography" (2019). doi: 10.48550/ARXIV.1912.03379.

[6] B. Wohlberg. "Efficient Algorithms for Convolutional Sparse Representations". IEEE Transactions on Image Processing 25.1 (2016), pp. 301–315. doi: 10.1109/TIP.2015.2495260.

[7] M. Elad and M. Aharon. "Image Denoising Via Sparse and Redundant Representations Over Learned Dictionaries". IEEE Transactions on Image Processing 15.12 (2006), pp. 3736–3745. doi: 10.1109/TIP.2006.881969.

[8] J. Tropp and A. Gilbert. "Signal Recovery from Random

Measurements via Orthogonal Matching Pursuit". IEEE Transactions on Information Theory 53.1 (2007), pp. 4655–4666. doi: 10.1109/TIT.2007.909108.

[9] D. Bogdan and I. Paul. Dictionary Learning Algorithms and Applications. Springer Cham, 2018. doi: 10.1007/978-3-319-78674-2.

[10] C. Garcia-Cardona and B. Wohlberg. "Subproblem Cou-

pling in Convolutional Dictionary Learning". Proceedings of IEEE International Conference on Image Processing (ICIP). Beijing, China, Sept. 2017, pp. 1697–1701. doi: 10.1109/ICIP.2017.8296571.

[11] M. Šorel and F. Sroubek. "Fast convolutional sparse coding

using matrix inversion lemma". Digital Signal Processing 55 (May 2016). doi: 10.1016/j.dsp.2016.04.012.

[12] S. V. Venkatakrishnan and B. Wohlberg. "Convolutional Dictionary Regularizers for Tomographic Inversion".

ICASSP 2019 - 2019 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). 2019, pp. 7820–7824. doi: 10.1109/ICASSP.2019.8682637.

[13] Y. Lu, J. Zhao, and G. Wang. "Few-view image recon-

struction with dual dictionaries". Physics in medicine and biology 57 (Dec. 2011), pp. 173–89. doi: 10.1088/0031-9155/57/1/173.

[14] C. Jiang, Q. Zhang, R. Fan, et al. "Super-resolution CT

Image Reconstruction Based on Dictionary Learning and Sparse Representation". Scientific Reports 8 (June 2018). doi: 10.1038/s41598-018-27261-z.

[15] Brendt Wohlberg. "SPORCO: A Python package for stan-

dard and convolutional sparse representations". Proceedings

of the 16th Python in Science Conference. Ed. by Katy Huff,
David Lippa, Dillon Niederhut, et al. 2017, pp. 1–8. doi:
10.25080/shinma-7f4c6e7-001.