# Recalage d'images multimodales

## Approche méthodologique et application aux images de muscles bovins acquises par auto fluorescence et par résonance magnétique nucléaire

Frédéric Peyrin<fnref n="1" />, Jean-Marie Bonny<fnref n="1" />

**Résumé** : Un banc d'imagerie dans l'ultraviolet et le visible a été développé pour séparer, à l'échelle macroscopique, les différentes composantes structurales du muscle. Les images obtenues avec ce banc doivent être comparées à celles acquises avec la méthode de référence, l'imagerie par résonance magnétique nucléaire. Les images issues de ces deux modalités ne sont pas superposables directement en raison de leur format d'acquisition et des déformations spatiales inhérentes aux biais instrumentaux. Nous avons donc développé une approche méthodologique pour mettre en correspondance les images obtenues par auto fluorescence par rapport à celles obtenues par résonance magnétique nucléaire.

**Mots clés** : viande, IRM, auto fluorescence, image, recalage, multi-modalité, MATLAB.

## Introduction

La tendreté de la viande est une qualité sensorielle importante pour le consommateur. Elle est dépendante en partie de la teneur des principaux constituants que sont les fibres musculaires, les tissus lipidiques et le tissu conjonctif composé principalement de collagène. Il existe une grande variabilité du taux de collagène présent dans la viande selon différents facteurs comme le type de muscle, l'espèce, la race ou l'âge de l'animal. L'objectif de la filière de transformation de produits carnés est de trier et d'orienter automatiquement les muscles vers une destination de viande à griller pour les plus pauvres en collagène ou vers des procédés technologiques pour les plus riches en collagène.

Les études menées au laboratoire (Abouelkaram et al., 2006) ont permis de caractériser les propriétés physiques et sensorielles des composants de la viande, d'évaluer leur quantité relative et leur distribution spatiale grâce à un système d'imagerie multi-spectrale. Pour cette occasion, un banc utilisant la propriété d'auto-fluorescence des différents constituants du muscle bovin *biceps femoris* a été développé : il optimise les images des échantillons selon leur signature spectrale spécifique dans l'ultraviolet et le visible. Notre projet est de comparer ce banc à la technique de référence qu'est l'imagerie par résonance magnétique nucléaire (IRM).

Cependant, pour comparer ces images entre elles, un des points essentiels concerne leur prétraitement par fusion. En effet, la fusion d'images en multi-modalité (Jégou et al., 2004) est indispensable pour mettre en correspondance spatialement les images acquises par les techniques différentes que sont l'imagerie en auto-fluorescence et l'IRM.

La mise en correspondance d'image est le processus d'alignement de deux ou de plusieurs images de la même scène par transformation géométrique afin de comparer ou de combiner leurs informations respectives (Jegou et Bonmartin, 2004). Cette technique est généralement

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

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

<footnote n="1">¹ UR370 Qualité des Produits Animaux - INRA - F-63122 Saint Genès Champanelle</footnote>
utilisée comme une étape préliminaire avant d'autres applications de traitement d'image.
Suite à cette mise en correspondance, nous pourrons comparer les détails dans les images
pour voir si tel composant de la viande est identifiable à la fois dans les deux modalités.

Dans la suite de l'article, nous présentons successivement la nature des images à mettre en
correspondance, la méthode de recalage choisie pour ces images, la méthode de calcul des
paramètres, et enfin les résultats obtenus.

# 1. Acquisition des images

Les images en fluorescence acquises avec une caméra numérique SONY XCD-SX900UV ont une résolution de 8 bits en niveaux de gris et une taille de 1280 x 960 pixels. Les images RMN acquises avec le système BRUKER<fnref n="2" /> de l'équipe STIM<fnref n="3" /> ont une meilleure résolution en niveaux de gris (16 bits) et une plus faible résolution spatiale (320 x 320 pixels). Pour chacune des deux modalités, trois contrastes sont enregistrés.

Les images en fluorescence de muscles bovins mettent en évidence le gras (figure 1a), le
collagène (figure 1b) et l'ensemble des tissus (figure 1c) grâce à la sélection des couples de
longueur d'onde d'excitation et d'émission correspondants à l'auto-fluorescence de ces
composés (respectivement 320-405 nm, 380-440 nm et sans filtres).

<figure><img src="image_3.png" /><figcaption>**Figure 1 :** image de l'échantillon 5ST1 (semitendinosus de l'animal 5) en auto-fluorescence mettant en évidence (a) le gras ; (b) le collagène ; (c) l'ensemble des tissus.</figcaption></figure>

Les images RMN des mêmes muscles bovins mettent en évidence le gras uniquement (figure 2a), le réseau conjonctif constitué de gras et de collagène (figure 2b) et l'eau exsudée entre les faisceaux de fibres musculaires (figure 2c). Ces images ont été obtenues à l'aide de différentes méthodes d'acquisition (ou séquences) qui produisent un contraste particulier.

Pour chacun des échantillons étudiés, ces 6 possibilités correspondent à l'acquisition d'autant
d'images qui seront ultérieurement traitées pour servir à la construction d'une combinaison
linéaire optimale permettant de maximiser le contraste entre les différents tissus d'intérêt.

<footnote n="2">² BIOSPEC 4.7T + console AVANCE 200 + gradient d'imagerie BGA-12 + sonde volumétrique « birdcage »</footnote>

<footnote n="3">³ Structures Tissulaires et Interactions Moléculaires</footnote>
<figure><img src="image_4.png" /><figcaption>**Figure 2** : images RMN de l'échantillon 5ST1 mettant en évidence différentes composantes musculaires :</figcaption></figure>

(a) le gras intramusculaire à l'aide d'une séquence annulant le signal de l'eau ;

(b) le réseau conjonctif à l'aide d'une séquence sensible aux variations locales de champ magnétique ;

(c) l'eau exsudée entre les faisceaux de fibres (pixels clairs) à l'aide d'une séquence sensible aux différences de mobilité des protons.

## 2. Méthode de recalage d'images utilisée

Une image appelée l'image de base ou de référence est considérée comme la référence à laquelle seront comparées toutes les autres images appelées images d'entrée. L'objectif de la mise en correspondance d'image est d'aligner l'image d'entrée avec l'image de base en appliquant une transformation spatiale à l'image d'entrée. Deux étapes critiques interviennent dans la qualité du résultat :

- le choix de la transformation géométrique,

- la mesure de l'alignement des images.

### 2.1 Choix des modèles de transformation

Pour notre application, les images acquises selon les deux modalités sont enregistrées grâce à des systèmes instrumentaux de principes très différents dont les biais, les formats de sauvegarde et les résolutions spatiales et spectrales sont très différents. Les différences entre l'image d'entrée et l'image de sortie peuvent être dues à un effet du relief ou à d'autres changements de perspective quand l'image de la même scène est prise depuis différents points de vue. Les distorsions des lentilles des objectifs et des autres capteurs ou les différences entre plusieurs types de capteurs peuvent aussi causer une distorsion (figure 3).

<figure><img src="image_5.png" /><figcaption>**Figure 3** : principe de l'imagerie multi spectrale par fluorescence
(Novales et al., 1996).</figcaption></figure>
Le type de recalage est dit monomodal si deux images de la même modalité, mais de contraste différent, sont recalées ensemble. Lorsque deux images de modalités différentes sont recalées, il s'agit alors de recalage de type multimodal. Nous avons appliqué différents modèles de déformation suivant les types rencontrés.

### 2.1.a Pas de transformation inter-contraste pour les images en auto-fluorescence

Pour les images en auto-fluorescence, le changement de couples de longueurs d'ondes entre l'acquisition de deux contrastes est réalisé par rotation des filtres dans un barillet. Du fait même du principe d'acquisition, il n'y a pas de déformations. Le recalage d'images entre les différents contrastes en auto-fluorescence n'est donc pas nécessaire.

### 2.1.b Transformation inter-contraste rigide pour les images RMN

Pour les images RMN, l'échantillon restant immobile entre l'acquisition de deux contrastes différents, il n'y a pas de déformations locales. Par contre, nous avons observé entre les différents contrastes RMN des déformations globales qui sont certainement liées aux réglages instrumentaux. Pour les recaler entre eux, nous avons donc appliqué à ces contrastes une transformation rigide de type « affine ». Nous avons ainsi corrigé les déformations induites par les différents modes d'acquisition par IRM.

### 2.1.c Transformation intermodale élastique pour les images RMN par rapport aux images en auto-fluorescence

Nous avons constaté que l'échantillon, même s'il est maintenu dans un portoir n'est plus exactement dans la même configuration après manipulation pour transfert entre le banc RMN et le banc d'imagerie par auto-fluorescence. Nous avons donc appliqué une transformation élastique basée sur l'algorithme dit de « moyenne pondérée localement » (LWM) pour passer d'une modalité à l'autre grâce à des déformations locales. Le sujet d'étude étant l'imagerie en auto fluorescence et les images RMN ayant une résolution spatiale inférieure, nous avons choisi de déformer la modalité RMN.

### 2.2 Mesure de similarité entre les images

Parmi les techniques de mesure de similarité entre deux images, on en distingue deux grandes catégories : celles qui utilisent des points de repère et celles qui exploitent l'image dans sa totalité (méthodes dites iconiques). Nous utilisons pour notre application la technique de recalage des images basée sur des points de contrôle choisis par l'utilisateur. Cette technique possède de nombreuses applications et permet de tirer partie de l'information complémentaire apportée par plusieurs images obtenues dans une même ou plusieurs modalités d'imagerie. Une cartographie des emplacements caractéristiques visibles dans les deux images est obtenue par pointage de points de contrôle avec la souris. Dans notre application, nous utilisons des repères intrinsèques caractéristiques liés à la morphologie anatomique de la coupe de viande observée. La clé du procédé de mise en correspondance de l'image réside ensuite dans la détermination des paramètres de la transformation spatiale nécessaire pour aligner les images. La réalisation d'un recalage d'images utilisant une cartographie par points de contrôle nécessite de développer une méthode commune aux différents types de modèles présentés et dont nous décrivons les étapes. Cette méthode est commune aux différents modèles présentés.

## 3. Implémentation MATLAB

Dans le but d'une plus grande clarté, nous avons choisi de présenter la méthode de calcul pour une seule paire d'images. Nous avons choisi un contraste dans chacune des deux modalités
pour la coupe de muscle bovin de l'échantillon 5ST1 : pour l'image en auto fluorescence, le contraste correspond au collagène (figure 1b) et pour l'image image par IRM à mettre en correspondance, le contraste correspond au tissu conjonctif (figure 2b).

La boîte à outils « traitement d'images » (Image Processing Toolbox™) de MATLAB met à disposition un outil de pointage afin de déterminer les paramètres de la transformation requis et d'aligner une image par rapport à une autre. Cette boîte à outils propose un outil interactif, le « Control Point Selection Tool », utile pour sélectionner des paires de points de contrôle en correspondance dans deux images. Ces points de contrôle sont des repères, des détails particuliers, communs aux deux images. Une cartographie spatiale peut alors être déduite du maillage donné par la position de ces points de contrôle et le recalage devient possible par calcul de déformations globales ou locales.

La figure 4 montre le principe de cette méthode de recalage d'images.

<figure><img src="image_6.png" /><figcaption>Figure 4 : méthode de recalage d'images dans l'environnement MATLAB</figcaption></figure>
## 3.1 Lecture et mise à l'échelle des images

Cette image n'est pas corrigée *a priori* et elle inclut des distorsions liées au principe d'acquisition. La première partie du script importe les deux images dans l'espace de travail de MATLAB et les met à la même taille en utilisant :

```
Image_base=imread('base_multimod.tif');
Image_input=imread('input_multimod.tif');
taille= size(Image_base);
Image_input= imresize(Image_input,taille)
```

Pour redimensionner une image, nous utilisons la fonction `imresize` en lui spécifiant le facteur de grossissement `taille`. Ce facteur est un vecteur contenant le nombre de lignes et de colonnes de l'image de sortie. Nous avons fait coïncider ces valeurs avec celles de l'image de référence. Ainsi, les images ont toutes la même taille.

L'interpolation utilisée estime la valeur d'une image à une position située entre les pixels de l'image. Quand `imresize` agrandit l'image, ce qui est notre cas, l'image de sortie de cette fonction contient plus de pixels que l'image originale. La fonction `imresize` utilise l'interpolation pour déterminer les valeurs des pixels additionnels.

Les méthodes d'interpolation déterminent la valeur du pixel interpolé en trouvant le point dans l'image d'entrée qui correspond à un pixel dans l'image de sortie et en calculant alors la valeur du pixel de sortie en procédant à une moyenne pondérée des pixels voisins de ce point. La pondération est basée sur la distance séparant chaque pixel du point.

Par défaut, `imresize` utilise l'interpolation bi-cubique pour déterminer les valeurs des pixels dans l'image de sortie, mais d'autres méthodes d'interpolation peuvent être spécifiées.

## 3.2 Choix et sauvegarde des points de contrôle

La fonction `cpselect` propose de voir les deux images, respectivement d'entrée et de base dans lesquelles l'opérateur doit pointer les points de contrôle avec la souris.

```
 image_points,ortho_points] = cpselect(Image_input,Image_base,'Wait',true)
```

Il faut spécifier l'option « wait » : `cpselect` bloque la ligne de commande MATLAB jusqu'à ce que les points de contrôle soient sélectionnés et que ce jeu de points de contrôle retourne les positions dans l'image d'entrée et dans l'image de base.

La figure 5 montre cet outil qu'est le « Control Point Selection Tool » en cours d'utilisation.
<figure><img src="image_7.png" /><figcaption>**Figure 5 :** copie d'écran lors de l'utilisation de l'outil de sélection des points de contrôle. Les images d'entrée et de base sont respectivement à gauche et à droite, les images « zoomées » (en haut) représentent les vues agrandies à partir des cadres bleus des images d'origine (en bas).</figcaption></figure>

Le tableau des « input points » et des « base points » est ensuite sauvegardé dans un fichier
TXT afin d'être exploité ultérieurement. La **figure 6** représente les maillages obtenus à partir
des coordonnées spatiales de 200 points de contrôle pour les images d'entrée et de base.

<figure><img src="image_8.png" /><figcaption>**Figure 6 :** maillage de la zone d'intérêt grâce à 200 paires de points de contrôle (a) dans l'image d'entrée et (b) dans l'image de base.</figcaption></figure>
### 3.3 Choix du type de transformation

Dans cette étape, les points de contrôle sont passés à la fonction `cp2tform` qui détermine alors les paramètres de la transformation nécessaire pour aligner l'image. La fonction `cp2tform` est une fonction d'ajustement de données qui détermine la transformation basée sur une relation géométrique entre les points de contrôle. Cette fonction renvoie les paramètres dans une structure de transformation géométrique `t_concord` appelée structure `TFORM`.

$$t_concord = cp2tform(image_points, ortho_points, Deformation)$$

Il faut spécifier le type de transformation souhaité. La fonction `cp2tform` peut déduire les paramètres pour 6 types de transformation (figure 7). Il faut choisir quelle transformation corrigerait le type de distorsion dominante dans l'image d'entrée. En effet, certaines images peuvent contenir plusieurs types de distorsion.

<table><caption>Figure 7 : nombre minimum de paires de points requis en fonction du type de transformation.</caption><thead><tr><td>Type de transformation</td><td>Nombre minimum de paires de points requis</td></tr></thead><tbody><tr><td>'linear conformal'</td><td>2</td></tr><tr><td>'affine'</td><td>3</td></tr><tr><td>'projective'</td><td>4</td></tr><tr><td>'polynomial' (d'ordre 2, 3, ou 4)</td><td>Resp. 6, 10, 15</td></tr><tr><td>'piecewise linear'</td><td>4</td></tr><tr><td>'lwm'</td><td>6</td></tr></tbody></table>

Les quatre premières transformations, « linear conformal », « affine », « projective », et « polynomial » sont des transformations globales. Pour ces transformations, une seule expression mathématique est appliquée à une image entière. Les deux dernières transformations, « piecewise linear » et « lwm » (local weighted mean), sont des transformations locales. Pour ces transformations, différentes expressions mathématiques s'appliquent à différentes régions d'une image. Le choix du type de transformation affecte le nombre de paires de points de contrôle à sélectionner.

Comme indiqué dans le chapitre 2, nous avons utilisé la transformation « affine » pour les corrections inter-contrastes des images RMN et la transformation « lwm » pour le recalage intermodal entre les images en autofluorescence et les images RMN.

### 3.4 Transformation de l'image d'entrée

L'étape finale de la mise en correspondance d'image consiste à transformer l'image d'entrée pour l'aligner avec l'image de base en utilisant la fonction `imtransform` pour effectuer la transformation, en lui passant l'image d'entrée `Image_input` et la structure `t_concord` qui définit la transformation. La fonction `imtransform` retourne l'image transformée $Ir$ :

$$Ir = imtransform (Image_input, t_concord, 'XData', [1 info.Width], 'YData', [1 info.Height])$$

Cette nouvelle image est sauvegardée au format TIF sans compression.
## 4. Résultat

En ce qui concerne la visualisation, nous avons utilisé l'une des approches principales qui consiste à calculer une nouvelle image contenant à la fois l'image de référence et l'image recalée et à représenter leur superposition selon un codage couleur. Dans notre cas, l'image RMN est représentée en bleu et l'image par auto-fluorescence en vert. La figure 8 représente la région d'intérêt choisie (701 x 651 pixels). Cette image fusionnée en multi-modalité permet une première validation visuelle. Elle montre qu'après transformation, les images obtenues en IRM et en auto fluorescence sont parfaitement superposées.

<figure><img src="image_9.png" /><figcaption>**Figure 8 :** représentation en fausses couleurs de la région d'intérêt, ajustement et recalage de l'image RMN en bleu par rapport à l'image par auto-fluorescence en vert.</figcaption></figure>

(a) avant recalage ; (b) après recalage.

## Conclusion

Avec la méthode que nous avons développée, nous pouvons mettre en correspondance des images issues de différentes techniques d'acquisition. Nous avons superposé 6 contrastes issus de 2 modalités différentes. Nous avons automatisé le procédé en décrivant toutes les étapes dans un script MATLAB (annexe). Celui-ci à l'avantage de rendre possible le traitement d'un grand nombre d'images. Il est facilement utilisable par un utilisateur novice qui voudrait mettre en œuvre rapidement cette technique pour son application. L'utilisation de transformations rigides ou élastiques prend en compte de façon réaliste les phénomènes rencontrés comme certains bais instrumentaux ou comme la déformation des échantillons lors de leur manipulation. Les images mises en correspondance grâce à ces transformations peuvent être maintenant utilisées dans la construction et l'ajustement d'un modèle mathématique paramétrique explicatif des propriétés de la viande.

Une validation plus rigoureuse pourrait être effectuée selon d'autres techniques comme l'information mutuelle résultante des images traitées, ou bien encore par mesure de distances à partir des tableaux des coordonnées des points de contrôle.
Cette méthode de recalage peut également trouver d'autres applications : dans le domaine de l'histologie, par exemple, il s'agit de réunir des données issues de plusieurs de coupes sériées proches mais différentes. Grâce cette méthode de recalage, nous pouvons mettre en correspondance les coupes histologiques servant au marquage immunologique avec les coupes utilisées en micro-spectroscopie infrarouge (IR). Nous pouvons ainsi cartographier précisément les cellules d'intérêt, leurs types métabolique et contractile et recueillir ensuite spécifiquement leurs spectres IR afin d'étudier leurs caractéristiques chimiques.

Bibliographie

Abouelkaram S., Chauvet S., El Jabri M., Strydom P., Bertrand D., Damez J.L. (2006) Muscle study with multispectral image analysis in 52nd International Congress of Meat Science and technology (ICoMST), 669-670

Jégou C., Bonmartin A. (2004) Fusion d'images en multimodalité in Médecine nucléaire - Imagerie fonctionnelle et métabolique, 28 (11): 553-560

Novales B., Bertrand D., Devaux M.F., Robert P., Sire A. (1996) Multispectral fluorescence imaging for the identification of food products in Journal of the Science of Food and Agriculture, 71 (3): 376-382
# Annexe : script MATLAB (multimod_CDT.m)

Pour procéder au même type de recalage sur un nombre important d'images, nous avons automatisé le procédé en décrivant les différentes étapes dans un script MATLAB. Celui-ci ouvre l'outil de sélection des points de contrôle avec une image d'entrée à modifier et une image de base servant de référence. Le script utilise les points de contrôle sélectionnés par l'opérateur pour créer une structure TFORM et passer à la fois cette structure et l'image d'entrée à la fonction `imtransform` dont la sortie donne l'image déformée et mise en correspondance.

Le script MATLAB suivant, accompagné de deux images de test, permet de mettre en œuvre immédiatement la méthode décrite dans cet article :

```matlab
%% DEFORMATION D'IMAGES MULTIMODALES
% PROJET IMAGES MULTIMODALES
% FRÉDÉRIC PEYRIN
% 2009-01-16 : VERSION 1
```

```matlab
%% INITIALISATION
```

```matlab
clear all;
close all;

% date et heure
RefTemp=datestr(now,30);
```

```matlab
%% CHARGEMENT DES IMAGES
```

```matlab
% chargement de l'image de base
Image_base=imread('base_multimod.tif');
```

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

```matlab
% chargement de l'image à modifier
Image_input=imread('input_multimod.tif');
```

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

```matlab
%mise à la même taille des 2 images
taille= size(Image_base);
Image_input= imresize(Image_input,taille);
```

```matlab
%% CHOIX DES PARAMETRES DE TRAITEMENT D'IMAGES
```

```matlab
R = input(strcat('Quel type de déformation voulez-vous ? 
',...'
'déformations globales (toute l''image est déformée de la même façon) 

' 1 - linear conformal 

' 2 - affine (DEFAUT) 

' 3 - projective 

' 4 - polynomial (ORDER=3) 

'déformations locales (l''image est déformée de façon hétérogène) 

' 
```
' 5 - piecewise linear \n',...  
' 6 - local weighted mean (lwm) \n',...  
' \n',...  
' fermer la fenêtre "Controle point selection" après avoir sélectionné la dernière paire de points \n','s');

switch R
case '1'
    Deformation='linear conformal';
case '2'
    Deformation='affine';
case '3'
    Deformation='projective';
case '4'
    Deformation='polynomial';
case '5'
    Deformation='piecewise linear';
case '6'
    Deformation='lwm';
otherwise
    Deformation='affine';
end

## %% MISE EN CORRESPONDANCE DES IMAGES

% sélection des paires de points dans chacune des 2 images (voir help cpselect)

[image_points,ortho_points] = cpselect(Image_input,Image_base,'Wait',true);

% calcul de la déformation (voir help cp2tform)

t_concord = cp2tform(image_points,ortho_points,Deformation);

% transformation (voir help imtransform)

info = imfinfo('base_multimod.tif');

Ir = imtransform(Image_input,t_concord,'XData',[1 info.Width),'YData',[1 info.Height]);

## %% SAUVEGARDE DES RESULTATS

% Sauvegarde de l'image déformée

imwrite(Ir, [RefTemp,'_test_image_déformée.tif'], 'tif', 'compression', 'none');

figure (1)

imagesc(Ir);

colormap (gray)

% Sauvegarde du tableau des « input points »

fichier_result=[RefTemp,'_test_input_points.txt'];

fid1 = fopen(fichier_result,'wt');

fprintf(fid1,'Nom_fichier	 x_image	 y_image
');

for nn=1: size(image_points)

fprintf(fid1, '%s	 %f	 %f
', 'test', image_points nn,1), image_points nn,2));

end

fclose(fid1);

% Sauvegarde du tableau des « base points »

fichier_result=[RefTemp,'_test_base_points.txt'];

fid1 = fopen(fichier_result,'wt');

fprintf(fid1,'Nom_fichier	 x_ortho	 y_ortho
');

for nn=1: size(ortho_points)

fprintf(fid1, '%s	 %f	 %f
', 'test',ortho_points nn,1),ortho_points nn,2));

end

fclose(fid1);