# APPLICATION À LARGE ÉCHELLE DE TECHNIQUES D'ANALYSE D'IMAGES BASÉES OBJET POUR L'IMAGERIE SATELLITE À TRÈS HAUTE RÉSOLUTION

David Youssefi¹, Julien Michel², Manuel Grizonnet²

1. CS, Parc de la Plaine, rue Brindejonc des Moulinais, 31506 Toulouse, France

2. CNES, 18 avenue Edouard Belin, 31401 Toulouse, France

## Résumé

La segmentation est une opération très utilisée pour le traitement des images satellites à très haute résolution, notamment comme préalable à l'analyse d'image basée objet. Les ressources en mémoire disponibles étant limitées, il est cependant souvent impossible de réaliser ce traitement à l'échelle d'une image sans effectuer un traitement par morceaux, ce qui dans le cas de la segmentation introduit des artefacts importants. Les travaux présentés dans cet article proposent une solution garantissant un résultat identique à celui produit sans traitement par morceaux dans le cas de l'algorithme de segmentation Mean-Shift. Dans une première partie, nous introduisons la notion de stabilité d'un algorithme de segmentation. Après avoir définit une méthodologie pour mesurer la stabilité des algorithmes de segmentations, nous montrons que parmi que parmi les algorithmes Mean-Shift, watershed et composantes connexes, seul ce dernier est réellement stable. Dans un second temps, une version stabilisée de l'algorithme Mean-Shift est présentée, et cette version est utilisée pour construire une solution exacte et rigoureuse pour le traitement par morceaux. Enfin, des exemples d'application permettent d'illustrer la méthode développée. Cette méthode est disponible dans la librairie libre Orfeo ToolBox à partir de la version 3.20, et son utilisation est détaillée dans le guide utilisateur du logiciel.

**Mots clés** : Télédétection, Traitement d'image, Segmentation, Mean-Shift, Stabilité, Analyse d'image basée objet

## Abstract

Segmentation is a widely used operation in very high resolution remote sensing processing such as object based image analysis. Since the available memory resource might be limited, it is often impossible to process a whole satellite image without using piece-wise processing, which in the case of segmentation introduces a huge amount of artifacts. The work presented in this paper introduce a solution to this problem in the case of the Mean-Shift algorithm, which guarantees that piece-wise segmentation results matches exactly those of full image processing at once. First, we define a new property of segmentation algorithms called stability. After proposing a methodology to measure the stability of segmentation algorithms, we demonstrate that among the Mean-Shift, watershed and connected components algorithms, only the latter is stable. Then, we propose a stabilized version of the Mean-Shift algorithm and use it to build a rigorous and exact solution for piece-wise processing of this algorithm. Last, we present some examples demonstrating the usefulness of the proposed method. This method is available in the Orfeo ToolBox free software, and documented in the software guide.

**Keywords** : Remote Sensing, Image Processing, Image Segmentation, Mean-Shift, Stability of Segmentation, Object Based Image Analysis

## 1. Introduction

L'augmentation de la résolution des images satellite d'observation de la Terre, conduit à utiliser des approches d'analyse d'images basées sur les objets (Blaschke et al., 2000), leurs attributs et leur agencement spatial (Vane-gas et al., 2013). Plutôt que de considérer les pixels de manière isolée, des méthodes réalisent ainsi des clas-sifications d'objets selon leurs caractéristiques et celles des objets qui les entourent par exemple. Seulement, les objets doivent au préalable être segmentés (détourés) dans les images ce qui peut poser des problèmes lors de la réalisation (Michel et al., 2012).

Réaliser une segmentation à l'échelle d'une image de grande taille oblige à employer une stratégie de dé-coupage par bloc. Le problème est que les algorithmes

de segmentation ne se prêtent pas naturellement à un tel tuilage de l'image ce qui laisse apparaître dans le ré-sultat final des irrégularités aux bords et à l'intérieur des tuiles. L'analyse de ce phénomène d'instabilité jusqu'à sa correction est présentée dans ce papier.

Dans la section 2, une définition formelle de la stabilité est proposée qui est ensuite appliquée à l'algorithme Mean-Shift (Commaniciu, 2002). Au cours de la section 3, la version stabilisée du Mean-Shift utilisée à large échelle est présentée. Enfin, la section 4 permet de montrer des exemples d'applications.
<figure><img src="image_1.png" /><figcaption>FIGURE 1: Stabilité des algorithmes de segmentation</figcaption></figure>

## 2. Stabilité des algorithmes de segmentation

### 2.1. Définition de la stabilité

Soient $I$ une image et $S: I \to S(I)$ un algorithme de segmentation. $S(I)$ forme une partition de l'image $I$ :

$$ S(I) = \{R_i, i \in [1, n]\}, \quad \left\{ \begin{array}{l} I = \bigcup_{i=1}^{n} R_i, \\ i \neq j \Rightarrow R_i \cap R_j = \emptyset. \end{array} \right. \qquad (1) $$

Soit $I' \subset I$ un sous-ensemble de $I$, $S(I) \cap I'$ la restriction de $S$ à $I'$ est définie par :

$$ S(I) \cap I' = \{R'_i = R_i \cap I', i \in [1, n]\} \quad (2) $$

(1) et (2) permettent de déduire :

$$ I' = \bigcup_{i=1}^{n} R'_{i} \qquad (3) $$

Enfin, pour une région $R \in S(I)$, $S_R(I')$ est définie telle que :

$$ S_R(I') = \{R'_i \in S(I'), R'_i \cap R \neq \emptyset\} \quad (4) $$

**Définition.** $S(I)$ et $S(I')$ sont les segmentations de l'image $I$ et de l'extrait $I' \subset I$ respectivement.

$S$ est dit stable si $\forall R \in S(I)$, les propriétés suivantes sont respectées (cf. fig 1) :

$$ R \subset I' \Rightarrow \exists R' \in S(I'), R' = R \qquad (5) $$

$$ R \cap I' \neq \emptyset \Rightarrow R \cap I' = \bigcup_{R'_i \in S_R(I')} R'_i \qquad (6) $$

$$ \text{où } S_R(I') = \{R'_i \in S(I'), R'_i \cap R \neq \emptyset\} $$

Plus intuitivement :

- Étant donnés une image et un objet d'intérêt dans cette image, un algorithme de segmentation est considéré comme stable si n'importe quel extrait de cette image englobant l'objet produit la même segmentation de ce même objet,

- Étant donnés une image et deux extraits de cette image se chevauchant, un algorithme de segmentation est considéré comme stable si les segmentations de ces deux extraits correspondent exactement.

La stabilité d'un algorithme de segmentation offre notamment deux avantages. Premièrement, si un algorithme de segmentation est stable alors le résultat de la segmentation est indépendant du tuitage utilisé. Ainsi, segmenter l'image par tuile ou segmenter l'image entière est équivalent pourvu qu'on sache recoller les morceaux. La reconstruction de la segmentation finale est alors une union des tuiles segmentées. Deuxièmement, lorsqu'il existe des objets d'intérêt identiques dans une scène, un algorithme de segmentation stable produit des segmentations identiques de ces objets.

### 2.2. Mesure de la stabilité

Pour mesurer la stabilité des algorithmes de segmentation, il s'agit de savoir quelle conséquence peut avoir la modification de la zone observée par ces algorithmes. Le protocole général est donc le suivant. Une première région est extraite d'une image choisie préalablement (extrait de 300x300 pixels). Cette région est ensuite segmentée. La segmentation résultante est considérée alors comme la segmentation de référence. Pour créer la segmentation de comparaison, une région interne à la région précédente est sélectionnée en supprimant une bordure d'un pixel (soit un extrait de 298x298 pixels). Cette seconde est ensuite segmentée. Grâce aux métriques de Hoover (Hoover et al., 1996) et d'Ortiz (Ortiz et Oliver, 2006) (cf. fig 2), les deux segmentations sont alors comparées sur la région intérieure de 298x298 pixels.

### 2.3. Comparaison d'algorithmes de segmentation

Quatre algorithmes disponibles dans l'Orfeo Toolbox (OTB) (OTB-Development-Team, 2013) sont comparés (cf. fig 3) :

- l'implémentation **Edison** du *Mean-Shift*

- l'implémentation OTB du *Mean-Shift*

- la segmentation en composantes connexes utilisant une distance colorimétrique entre pixels voirs CC pour *Connected Component*

- la segmentation par ligne de partage des eaux Watershed

La métrique utilisée est la métrique de **Hoover** mentionnée précédemment (cf. fig 2) qui permet de classer chaque segment dans une de ces quatre instances :

- Instance de bonne détection **RC** (vert)

- Instance de sursegmentation **RF** (jaune)

- Instance de sous-segmentation **RA** (violet)

- Instance de non détection **RM** (rouge)
<figure><img src="image_2.png" /></figure>

$$O = \begin{pmatrix} 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 8 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 1 & 9 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 6 & 6 & 9 & 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 6 & 6 & 9 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 4 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 6 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 7 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 2 & 0 & 4 & 0 & 3 & 6 & 5 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 3 & 6 & 0 & 0 & 3 \end{pmatrix}$$

$O_{ij}$ : nombre de pixels en commun

<table><caption>**FIGURE 2:** Instances de Hoover. ($O$ est la matrice de confusion pour la segmentation de référence et la segmentation à comparer. Le tableau classe les segments des deux segmentations en fonction des instances.)</caption><thead><tr><th></th><th>S</th><th>S&#773;</th></tr></thead><tbody><tr><td>Bonne détection (RC)</td><td></td><td></td></tr><tr><td>Sursegmentation (RF)</td><td></td><td></td></tr><tr><td>Sous-segmentation (RA)</td><td></td><td></td></tr><tr><td>Non détection (RM)</td><td></td><td>X</td></tr><tr><td>Bruit</td><td>X</td><td></td></tr></tbody></table>

<figure><img src="image_3.png" /><figcaption>**FIGURE 3:** Comparaison d'algorithmes de segmentation (en vert : bonne détection, en jaune : sursegmentation, en violet : sous-segmentation et en rouge : non détection)</figcaption></figure>

Sur les quatre algorithmes de segmentation étudiés, un seul semble respecter les critères de stabilité définis dans la section 2.1 : la segmentation en composantes connexes utilisant une distance colorimétrique entre pixels voisins ("CC"). Effectivement, tous les segments qui ne touchent pas les bords sont bien détectés (en vert) tandis que les autres sont soit bien détecté soit sursegmentés (en jaune). D'autre part, on remarque que dans le cas des algorithmes de type *Mean-Shift* ainsi que dans le cas de l'algorithme *Watershed*, plusieurs segments sont sous-segmentés (en violet) ou même non détectés (en rouge) et ce, indépendamment des bords.

## 2.4. Stabilisation du Mean-Shift

La plupart des algorithmes de segmentation ne respectent pas la définition de stabilité proposée ci-dessus (cf. définition 2.1). comme la segmentation Mean-Shift. On propose donc ici une version stable de cet algorithme tout en rappelant les causes de son instabilité.

Le Mean-Shift est une approche non-paramétrique d'estimation de modes consistant en une étape de filtrage et une étape de segmentation. Lors de l'étape de

filtrage, chaque pixel de l'image d'entrée recherche dans une fenêtre (ou rayon spatial *spatialr*) les pixels proches spectralement. Les moyennes spatiale et spectrale des pixels localisés dans la fenêtre sont effectuées. Le pixel se déplace alors vers le barycentre et la moyenne spectrale est affectée. Cette étape est répétée jusqu'à convergence.

Lors de cette première étape, l'instabilité vient premièrement du fait que la zone d'exploration des pixels n'est pas contrôlée. Effectivement, chaque pixel converge vers le maximum local le plus proche. Cependant, un pixel peut converger vers un mode qui se trouve hors de la zone observée. Le pixel en question n'accède donc pas aux mêmes informations si ce dernier est filtré sur la totalité de l'image ou sur un extrait. Une solution est de contrôler la zone d'exploration grâce à un filtrage avec marge. Cette marge, qui correspond à la zone d'exploration de chaque pixel, est égale à :

$$\delta = (\text{maxiter} + 1) \times \text{spatialr}$$

où *maxiter* correspond au nombre d'itérations maximal et *spatialr* représente le rayon spatial.

Une fois le filtrage effectué, les régions de pixels sont délimitées en regroupant tous les pixels proches d'une distance inférieure au rayon spatial et spectral. Une étoquette est alors associé à chaque pixel. Ce regroupement était réalisé en composante bi-connexe. Pour stabiliser cette étape, le regroupement bi-connexe est remplacé par un regroupement connexe qui lui est stable.

Concernant la réalisation, si des optimisations rendent l'algorithme tributaire du sens de parcours alors elles le rendent aussi instable. Il faut aussi faire attention aux instabilités numériques. Enfin, le traitement des petites régions doit être réalisé à la fin. Toutes ces modifications ont permis de créer une version stable de l'algorithme Mean-Shift.

## 3. Version stable du Mean-Shift appliquée à large-échelle

La segmentation étant maintenant stabilisée, elle peut être appliquée avec tuilage. Cette méthode de segmentation stabilisée se déroule en quatre étapes :

1. Filtrage de l'image

2. Segmentation des tuiles

3. Ré-étiquetage des tuiles

4. Traitement des "petites régions"

L'image est filtrée avec l'algorithme Mean-Shift en utilisant un tuilage avec recouvrement égal à :

$$\delta = (\text{maxiter} + 1) \times \text{spatialr}$$

Ce tuilage permet de résoudre le problème lié à la zone d'exploration des pixels.

En pratique, il n'est pas nécessaire de filtrer la totalité de la tuile. Il suffit de charger en mémoire la tuile avec sa marge et de filtrer uniquement les pixels contenus dans la zone supposée stable. Les tuiles privées de leur marge étant stables, il ne reste alors qu'à les fusionner pour obtenir l'image lissée.
<figure><img src="image_4.png" /></figure>

**FIGURE 4:** Étapes de la méthode proposée sur une image panchromatique Pleiades de Toulouse, France : (1) image de départ, (2) image filtrée, (3) segmentation des tuiles, (4) ré-étiquetage des tuiles, (5) traitement des petites régions, (6) la version colorisée, traitement des petites régions (7) par suppression et (8) par fusion

La segmentation en composantes connexes utilisant une distance colorimétrique entre pixels voisins est maintenant appliquée à l'image filtrée afin de regrouper les pixels adjacents proches spectralement. Ce regroupement de pixels est garanti stable étant donné que la segmentation en composantes connexes est insensible au tuilage. Pour cela, un autre tuilage avec recouvrement est utilisé qui correspond à une marge d'une ligne de pixels à droite et en bas de chaque tuile. Cette marge permet de faire la transition entre une tuile et ses voies de droite et d'en bas et donc, par construction, lier

l'ensemble des tuiles.

Les tuiles segmentées sont ensuite ré-étiquetées afin de regrouper les régions fragmentées par le tuilage. Pour cela, il s'agit d'utiliser la marge afin de calculer la table de correspondance entre les différentes étiquettes. La méthode est la suivante. Considérant deux tuiles adjacentes, la même frontière est extraite dans les deux segmentations. Grâce à cette frontière, il est possible de savoir quelle étiquette dans la seconde tuile correspond à l'étiquette de la première tuile. Ceci est fait pour l'ensemble des tuiles ce qui permet de les ré-étiqueter et ainsi fusionner les régions qui doivent l'être.

Deux options sont possibles pour traiter les "petites régions". Elles peuvent être supprimées, dans ce cas, l'étiquette 0 est affectée à ces régions. En général, les régions de taille minimale correspondent à des contours et n'appartiennent donc pas à une région particulière. Cependant, il arrive, dans le cas des objets sur-éclairés par exemple, que des régions soient très sursegmentées. Pour résoudre ce problème, la seconde solution consiste à fusionner les régions de taille minimale à la région adjacente la plus proche spectralement.

Si la première option est choisie, il suffit de parcourir une première fois l'image par tuile (sans recouvrement) pour calculer le nombre de pixels par étiquette puis une seconde fois pour affecter l'étiquette 0 aux régions de taille minimale. Si la seconde option est privilégiée, il s'agit, en plus de savoir combien de pixels composent chaque région, de connaître les radiométries de chaque segment. Pour cela, il faut aussi parcourir l'image d'entrée et calculer les moyennes radiométriques par étiquette. Ensuite, il suffit de parcourir une nouvelle fois les tuiles de l'image segmentée afin de savoir avec quelle région adjacente chaque région de taille minimale doit fusionner. Une fois que la région adjacente la plus proche spectralement est connue, il suffit de renseigner une table de correspondance afin de ré-étiqueter la segmentation. Ces régions de taille minimale sont traitées par ordre croissant ce qui permet de fusionner en premier les régions les plus petites qui s'apparentent en général à du bruit.

# 4. Applications

Deux applications liées à la méthode de segmentation proposée dans cet article sont présentées.

## 4.1. Classification basée objet

La méthode de segmentation est appliquée à un produit fusionné P+XS Pleiades de la ville de Rennes dont la taille est de 9091x12707 pixels. Après avoir segmenté cette image, les objets d'intérêt sont classés à l'aide de leurs moyennes radiométriques dans une des six catégories suivantes : sol nu (beige), prairie (vert clair), arbre (vert foncé), eau (bleu), bâti et route (gris) et ombre (noir).
<figure><img src="image_5.png" /><figcaption>(1) Image d'entrée</figcaption></figure>

<figure><img src="image_6.png" /><figcaption>(2) Segmentation</figcaption></figure>

<figure><img src="image_7.png" /><figcaption>(3) Classification</figcaption></figure>

**FIGURE 5:** Extrait de la segmentation de l'image chromatique de Rennes, France (9091x12707 pixels). La segmentation a été réalisée en utilisant 20x20 tuiles (8 sont visibles en bleu sur la figure 52). La figure 53 correspond au résultat de la classification.

## 4.2. Comptage d'objets

La seconde application est une application thématique utilisant l'analyse géospatiale et réalisée sur un produit P+XS Pleiades de Merguellil en Tunisie (cf. fig 6) dont la taille est de 16383x23692 pixels.

À la demande d'un utilisateur ORFEO, l'objectif est

de séparer les champs d'oliviers en fonction de l'espace-ment entre oliviers. Suivant cet espacement, il est possible de les classer suivant qu'ils soient non irrigués (distance ≥ 20 m) ou avec irrigation d'appoint (entre 20 m et 10 m) par exemple. L'idée est de créer une carte de la densité d'oliviers par champ.

Pour cela, une couche vecteur de champs est créée en appliquant l'algorithme Mean-Shift stabilisé et en fixant le critère de région minimale suffisamment haut pour que les oliviers soient fusionnés aux champs. La figure 7 correspond au résultat de cette segmentation.

Deuxièmement, l'indice de végétation NDVI pour Normalized Difference Vegetation Index est utilisé pour détecter les oliviers. Le NDVI est un indicateur graphique simple typiquement utilisé dans le cas de mesures de télédétection pour évaluer si l'image contient de la végétation. Cet indice est calculé de la manière suivante :

$$NDVI = \frac{NIR - R}{NIR + R} \qquad (7)$$

où NIR et R correspondent respectivement au proche infrarouge (Near Infrared) et au rouge.

L'image est seuillée grâce au NDVI pour isoler les oliviers. Puis, grâce à l'algorithme utilisant la distance corloimétrique entre pixels voisins, la couche vecteur des oliviers est créée.

Une requête spatiale (cf. fig 8) permet ensuite de calculer le nombre d'oliviers par champ. La figure 9 présente la carte de densité obtenue.

# 5. Conclusion

Dans cet article, la notion de stabilité pour les algorithmes de segmentation a été définie de manière formelle. À partir de cette définition, un protocole a été établi afin d'estimer de manière empirique la stabilité de quatre algorithmes de segmentation.

Une démarche a ensuite été menée afin de stabiliser l'algorithme Mean-Shift. Pour cela, il a fallu analyser le comportement de cet algorithme et ainsi, déduire les causes d'instabilité. Grâce à cette analyse, une méthode de segmentation reposant sur le Mean-Shift a été mise au point. Cette méthode a été appliquée à des cas concrets comme de la classification et de l'estimation de la densité d'oliviers par champ.

Enfin, le code est disponible dans le logiciel open source Orfeo Toolbox (OTB-Development-Team, 2013) (à partir de la version 3.20) et la méthodologie décrite dans ce papier est détaillée dans (Michel et al., 2015).

# Références

* Blaschke, T., Lang, S., Lorup, E., Strobl, J., Zeil, P., 2000. Object-oriented image processing in an integrated GIS/remote sensing environment and perspectives for environmental applications. Environmental information for planning, politics and the public 2, 555–570.

* Commaniciu, D., 2002. Mean Shift: A Robust Approach Toward Feature Space Analysis. IEEE Transactions on Pattern Analysis and Machine Intelligence 24 (5), 603–619.
<figure><img src="image_8.png" /><figcaption>**FIGURE 6:** Produit P+XS Pleiades de Merguellil en Tuni-sie (16383x23692 pixels)</figcaption></figure>

<figure><img src="image_9.png" /><figcaption>**FIGURE 7:** Segmentation des champs de Merguellil</figcaption></figure>

Créer une table listant le nombre d'oliviers par champ

```sql
CREATE TABLE nbtreesbyfield AS
```

Contenant le nombre d'oliviers, l'étiquette et la géométrie associés au champ

```sql
SELECT COUNT(*) AS nbtree, f.label AS
       label, f geom AS geom
```

Depuis les tables "oliviers" et "champs"

```sql
FROM trees t, fields f
```

Restreindre le décompte des oliviers à ceux contenus dans le champ

```sql
WHERE st，则ains(f geom, t geom)
```

Grouper par étiquette et par géométrie

```sql
GROUP BY f.label, f geom;
```

<figure><img src="image_10.png" /><figcaption>**FIGURE 9:** Représentation de la couche d'oliviers en jaune et de la couche de champs en bleu (bleu clair = faible densité et bleu foncé = forte densité)</figcaption></figure>

Hoover, A., Jean-Baptiste, G., Jiang, X., Flynn, P. J., Bunke, H., Goldgof, D. B., Bowyer, K., Eggert, D. W., Fitzgibbon, A., Fisher, R. B., 1996. An experimental comparison of range image segmentation algorithms. Pattern Analysis and Machine Intelligence, IEEE Transactions on 18 (7), 673–689.

Michel, J., Grizonnet, M., Jaen, A., Harasse, S., Hermitte, L., Guinet, J., Malik, J., Savinaud, M., 2012. Open tools and methods for large scale segmentation of very high resolution satellite images. Dans : OGRS 2012 Symposium proceedings, Yverdon les Bains, Suisse. OGRS, pp. 179–184.
Michel, J., Youssefi, D., Grizonnet, M., Feb 2015. Stable mean-shift algorithm and its application to the segmentation of arbitrarily large remote sensing images. Geoscience and Remote Sensing, IEEE Transactions on 53 (2), 952–964.

Ortiz, A., Oliver, G., 2006. On the use of the overlapping area matrix for image segmentation evaluation: A survey and new performance measures. Pattern Recognition Letters 27 (16), 1916–1926.

OTB-Development-Team, 2013. The Orfeo ToolBox Cookbook, a guide for non-developers Updated for OTB-3.20. Cnes.

Vanegas, M., Bloch, I., Inglada, J., 2013. Alignment and parallelism for the description of high-resolution remote sensing images. Geoscience and Remote Sensing, IEEE Transactions on 51 (6), 3542–3557.