Brevet FR3143806A1 — publié le 20240621

L’invention a pour objet un procédé mis en œuvre par une unité de calcul comprenant :une obtention d’une image, chaque pixel de l’image étant associé à : une étiquette indiquant si le pixel est un pixel source, les sources comprenant des extrema d’intensité de pixel locaux d’un premier type ; un indicatif d’une source associée au pixel ; une intensité du pixel ; un extremum d’intensité de pixel d’un deuxième type sur un chemin entre la source associée au pixel et le pixel, le deuxième type d’extremum d’intensité de pixel étant inverse du premier type d’extremum d’intensité de pixel ; jusqu’à la vérification d’un critère d’arrêt, au moins une itération de parcours de pixels successifs de l’image. Figure de l’abrégé : Figure 2 Segmentation d’image par partage des eaux avec traitement optimisé des données image par reconstruction itérative La présente divulgation relève du domaine du traitement d’image. Plus particulièrement, la présente divulgation relève du domaine de techniques de segmentation d’image. La segmentation d’image consiste à séparer une image en une ou plusieurs régions. La technique de segmentation d’image dite de « partage des eaux » ou « watershed » en anglais permet de segmenter une image en différentes régions correspondant à différentes sources lumineuses ou objets de l’image. La représente un exemple d’image servant de base à une segmentation par partage des eaux. L’image Img1 est une représentation en deux dimensions, dans laquelle chaque pixel est associé à une valeur d’intensité. L’image Img1 peut être obtenu de différentes manières. Elle peut par exemple être obtenue en sortie d’un capteur, infra-rouge, radio, ultraviolet, ou de lumière visible, ou générée par un programme informatique. L’image Img1 montre les différentes valeurs d’intensité des pixels. Dans l’exemple de la , l’image est une image obtenue par un capteur infrarouge, et l’intensité de chaque pixel diminue avec le niveau de gris, un pixel plus foncé correspondant à une intensité plus faible. On perçoit donc dans cet exemple quatre sources lumineuses distinctes Src1.1, Src2.1, Src3.1, et Src4.1. Il convient de noter que dans cet exemple une source est définie par ou des pixels de forte intensité, mais que selon les cas d’utilisation une source peut être définie par un ou des pixels de faible intensité. Les algorithmes de partage des eaux sont utilisés pour séparer une image telle que Img1 en plusieurs régions correspondant à différents objets ou sources lumineuses. Dans l’exemple de la , une source lumineuse correspond à un maximum local d’intensité (« point chaud » de l’image), et l’algorithme de partage des eaux affectera donc des pixels voisins d’intensité plus faible à cette source. Cependant, les algorithmes de partage des eaux sont également applicables au cas inverse, c’est-à-dire à des cas où une source correspond à un minimum local d’intensité (« point froid » de l’image). Dans l’exemple de la , les sources sont donc des maxima locaux d’intensité de l’image obtenue par capteur infrarouge. Cependant, dans d’autres exemples d’application de l’invention, les sources peuvent former des minima locaux. La montre un exemple de définition de sources lumineuses dans une image en vue de l’application d’une segmentation par partage des eaux. L’image Img2 correspond à une définition de labels des pixels de l’image Img1. Ainsi, chacun des pixels de l’image Img2 correspond à un pixel de l’image Img1 de mêmes coordonnées, et définit un label pour ce pixel : Les pixels Src1, Src2, Src3 et Src4 correspondent aux pixels de 4 sources lumineuses respectivement ; Les pixels PixI correspondent à des pixels attribuables à une région, c’est-à-dire des pixels qui ne sont pas des pixels source, mais peuvent être associés à une source pour former une région ; Les pixels PixO correspondent à des pixels non attribuables à une région. La différence entre les pixels PixI et PixO peut consister en leur intensité. Par exemple, dans le cas des figures 1 et 2 où les sources correspondent à des pixels de faible intensité, les pixels PixO peuvent être les pixels ayant une intensité supérieure à un seuil, considéré comme un seuil d’intensité pour l’appartenance possible à une région. Dans un exemple de réalisation selon l’état de l’art, les algorithmes de partage des eaux fonctionnent sur le principe d’une File d’Attente Hiérarchique (FAH), c’est-à-dire que les pixels à segmenter sont successivement ajoutés à la FAH, puis traités et enlevés de la FAH. L’utilisation des FAH est par exemple décrite par le brevet américain publié sous le numéro US4809348. Par exemple, un algorithme de partage des eaux de l’état de l’art peut être le suivant : Lors d’un premier parcours des pixels : Chaque pixel source : Est Empilé dans une pile correspondant à sa radiométrie Son étiquette est mise dans l’image Imtrait Chaque pixel détecté non source : est marqué comme à étiqueter Son niveau est mis dans l’image Imtrait Tant qu’il y a des pixels à étiqueter : Tant que la liste n’est pas vide : Dépilement d’un pixel (i, j) ( plus haut niveau ) Chacun de ces voisins à étiqueter (u,v) : Est ajouté à la FAH Prend la valeur du pixel (i,j) dans l’image Imtrait N’est plus déclaré à étiqueter Lorsque la pile est vide, on identifie un nouveau pixel à étiqueter et : : On lui assigne une nouvelle étiquette On l’ajoute à la FAH Dit autrement, lors du traitement de chaque pixel de la FAH, la région du pixel est propagée à ses voisins à étiqueter, qui sont alors eux-mêmes ajoutés à la FAH. La montre un exemple de segmentation d’une image en régions par une segmentation par partage des eaux. L’image Img3 représente la segmentation des images Img1 et Img2 part un algorithme de partage des eaux tel que décrit ci-dessus. Dans l’exemple de la , l’image a été segmentée en 4 régions Reg1.3, Reg2.3, Reg3.3 et Reg4.3, correspondant respectivement aux sources Src1, Src2, Src3 et Src4. Les pixels PixO ne sont de leur côté affectés à aucune zone. L’exemple de la montre qu’un algorithme de partage des eaux selon l’état de l’art permet une segmentation efficace de l’image Img1 en régions associées à différentes sources. L’algorithme de segmentation par partage des eaux permet notamment une affectation précise des pixels à chacune des sources. La segmentation en régions peut être utilisée dans le cadre de différentes applications de traitement d’images. Par exemple, elle peut être utilisée dans le cadre de la détection d’objets, une détection d’objet pouvant être effectuée sur chaque région séparément. Si les techniques de segmentation par la méthode des files d’attente hiérarchique selon l’état de l’art fournissent une solution efficace pour la segmentation d’une image en régions, elles possèdent des caractéristiques limitant leur utilisation pour des applications temps réel, ou sur des calculateurs embarqués : le parcours des pixels dans l’image n’est pas connu à l’avance, et les pixels successivement traités peuvent appartenir à des zones totalement différentes de l’image. Le traitement de chaque pixel implique donc le chargement de nouvelles données image, un ralentissement du chargement des données image à partir d’une mémoire implique une latence pour chaque pixel ; le traitement de chaque pixel dépend du résultat du traitement du pixel précédent. Il n’est donc pas possible de paralléliser le traitement des pixels. Ces limites sont encore exacerbées par l’augmentation de la taille des images, qui implique, dès que la taille d’une image excède les capacités de stockage d’une mémoire interne à une unité de calcul effectuant le traitement de l’image de stocker les images dans des mémoires externes au processeur effectuant le traitement de l’image, par exemple des mémoires de type DDR SDRAM (de l’anglais « Double Data Rate Synchronous Dynamic Random Access Memory », ou en français « Mémoire vive dynamique synchrone à double débit de données »). En effet, les mémoires externes aux processeurs ont en général une latence élevée. Un chargement de données images pour chaque pixel à partir d’une mémoire externe implique donc souvent une latence élevée pour le traitement de chaque pixel, ce qui ralentit considérablement le temps de traitement global de l’image. Une solution pour améliorer le temps de traitement consiste à réduire la résolution spatiale et/ou le nombre de bits par pixel. Cependant, ceci implique une perte de données non négligeable, et donc une approximation importante du résultat de l’algorithme de séparation. Il existe ainsi un besoin pour un procédé de segmentation d’image par partage des eaux optimisant le traitement des données image pour limiter le temps de traitement sans réduction significative de la qualité du résultat obtenu. Résumé La présente divulgation vient améliorer la situation. Il est proposé un procédé mis en œuvre par une unité de calcul comprenant : une obtention d’une image, chaque pixel de l’image étant associé à : une étiquette indiquant si le pixel est un pixel source, les sources comprenant des extrema d’intensité de pixel locaux d’un premier type ; un indicatif d’une source associée au pixel ; une intensité du pixel ; un extremum d’intensité de pixel d’un deuxième type sur un chemin entre la source associée au pixel et le pixel, le deuxième type d’extremum d’intensité de pixel étant inverse du premier type d’extremum d’intensité de pixel ; jusqu’à la vérification d’un critère d’arrêt, au moins une itération de parcours de pixels successifs de l’image, ledit parcours comprenant, pour au moins un pixel courant sur le parcours: Si le pixel n’est pas un pixel source et si, parmi le pixel courant et les pixels voisins appartenant à un voisinage dudit pixel courant, l’extremum du premier type parmi les extrema d’intensité de pixel du deuxième type sur les chemins entre les sources associées aux pixels et les pixels appartient à un pixel voisin dudit pixel courant ou si le pixel est un pixel source et si, parmi le pixel courant et les pixels voisins appartenant à un voisinage dudit pixel courant et affectés à la même source, l’extremum du premier type parmi les extrema d’intensité de pixel du deuxième type sur les chemins entre les sources associées aux pixels et les pixels appartient à un pixel voisin dudit pixel courant : si le pixel n’est pas un pixel source, l’affectation audit pixel courant de l’indicatif de source dudit pixel voisin ; l’affectation, à la valeur de l’extremum d’intensité du deuxième type sur le chemin entre la source associée au pixel et le pixel courant, de l’extremum du deuxième type entre : la valeur de l’extremum d’intensité du deuxième type sur le chemin entre la source associée au pixel voisin et le pixel voisin ; l’intensité dudit pixel. On entend par « étiquette indiquant si le pixel est un pixel source » une information indiquant pour chaque pixel s’il s’agit d’un pixel source ou non. Par exemple, l’étiquette peut être un nombre booléen indiquant si le pixel est un pixel source, une étiquette textuelle indiquant « source » ou « non source », etc… L’invention n’est pas limitée à un type d’étiquette particulier. On entend par « indicatif d’une source » une information permettant de déterminer la source associée au pixel. Les indicatifs de sources peuvent être de différents types. Par exemple, les sources peuvent être représentées par des numéros (1, 2, 3, 4…), des étiquettes textuelles (« source A », source B », etc…), etc… On entend par « intensité du pixel » une valeur numérique associée au pixel indiquant un niveau d’intensité associée au pixel. Les représentations d’intensités de pixels peuvent être de différents types. Par exemple, les intensités de pixels peuvent être codées sur 8 bits, 16 bits, etc… Les intensités de pixels sont généralement représentées par des nombres entiers non signés. Cependant, l’invention n’est pas restreinte à cet exemple, et les pixels peuvent être représentés par toute représentation numérique permettant une comparaison des intensités de pixels. On entend par « extremum d’intensité » un minimum ou un maximum. Un type d’extremum d’intensité représente soit un maximum, soit un minimum. On entend par « le deuxième type d’extremum d’intensité de pixel étant inverse du premier type d’extremum d’intensité de pixel », que le deuxième type d’extremum est un maximum si le premier type d’extremum est un minimum, et que le deuxième type d’extremum est un minimum si le premier type d’extremum est un maximum. Ainsi, dans un ensemble de modes de réalisation de l’invention : les sources peuvent comprendre des minima locaux, auquel cas les extrema d’intensité de pixel du deuxième type sur les chemins entre les sources associées aux pixels et les pixels sont des maxima d’intensité ; les sources peuvent comprendre maxima locaux, auquel cas les extrema d’intensité de pixel du deuxième type sur les chemins entre les sources associées aux pixels et les pixels sont des minima d’intensité. On entend par « un chemin entre la source associée au pixel et le pixel » l’ensemble des pixels ayant, au cours des itérations successives, propagé de l’information entre la source et le pixel courant. On entend par « voisinage d’un pixel » un ensemble contigu de pixels voisins d’un pixel courant, pouvant être des voisins immédiatement contigus ou non du pixel courant. Dans le procédé selon l’invention, l’affectation des pixels aux différentes sources est effectuée de proche en proche, de sorte que, sur le chemin menant d’une source à un pixel, l’extremum du deuxième type (e.g l’intensité maximale sur le chemin entre la source et le pixel, si la source comprend un minimum local d’intensité, et inversement) soit le plus proche possible d’un extremum de premier type. Dit autrement : si les sources comprennent des minima locaux, la source associée à un pixel donné correspond au chemin ayant le maximum d’intensité le plus faible parmi les chemins menant aux différentes sources possibles ; inversement, si les sources comprennent des maxima locaux, la source associée à un pixel donné correspond au chemin ayant le minimum d’intensité le plus élevé parmi les chemins menant aux différentes sources possibles. Ceci permet d’obtenir une segmentation de type partage des eaux efficace, sans nécessiter de perte d’information et donc d’approximation dans le résultat obtenu. Dans le procédé selon l’invention, les pixels sont traités dans un ordre de parcours défini à l’avance. Les données à lire sont donc connues à l’avance, ce qui permet d’anticiper leur chargement et de masquer la latence d’accès des données en mémoire, notamment lorsqu’une mémoire externe au processeur effectuant les opérations est utilisée. Dans un ensemble de modes de réalisation de l’invention, les parcours sont effectués par pixels successifs, par exemple ligne par ligne ou colonne par colonne. Les données de l’image peuvent alors être chargées pour plusieurs pixels contigus successivement, ce qui limite encore la latence. La fournit plusieurs exemples de sens de parcours possibles, avec 4 variations de sens de parcours de pixels successifs par lignes, avec toutes les combinaisons de sens vertical (de bas en haut et de haut en bas), et horizontal (de gauche à droite et de droite à gauche). De plus, le traitement par pixels successifs permet de réutiliser les résultats d’opérations d’un pixel courant pour le pixel suivant, ce qui réduit le besoin d’accès à la mémoire externe en utilisant un « cache » local. Enfin, le parcours déterministe permet de traiter plusieurs lignes de pixels de l’image en parallèle, la parallélisation des opérations permettant de réduire de manière importante le temps de traitement du procédé. Le procédé selon l’invention permet donc de bénéficier d’un procédé de segmentation par partage des eaux fournissant des résultats de bonne qualité, avec un temps de traitement et de latence réduits qui peut être ajusté au besoin. Selon un autre aspect, il est proposé un programme informatique comportant des instructions pour la mise en œuvre du procédé selon l’un des modes de réalisation de l’invention lorsque ce programme est exécuté par un processeur Selon un autre aspect, il est proposé un dispositif comprenant au moins une unité de calcul configurée pour exécuter le procédé selon l’un des modes de réalisation de l’invention. On entend par « unité de calcul » un composant électronique apte à effectuer des calculs électroniques ou informatiques pour effectuer une fonction déterminée. Une unité de calcul peut désigner tout type de processeur ou composant électronique apte à effectuer des calculs numériques. Par exemple, une unité de calcul peut être un circuit intégré, un ASIC (de l’acronyme anglais « Application-Specific Integrated Circuit », littéralement en français « circuit intégré propre à une application », un FPGA (de l’anglais « Field Programmable Gate Array », littéralement réseau de portes programmables in situ), un microcontrôleur, un microprocesseur, un DSP (de l’acronyme anglais « Digital Signal Processor », littéralement en français « processeur de signal numérique »), un processeur, un GPU (de l’acronyme anglais « Graphics Processing Unit », littéralement en français « unité de calcul graphique »). Une unité de calcul selon l’invention n’est pas limitée à un type particulier d’architecture de calcul. Par exemple, un processeur peut mettre en œuvre une architecture de type Harvard ou Von Neumann. Les caractéristiques exposées dans les paragraphes suivants peuvent, optionnellement, être mises en œuvre, indépendamment les unes des autres ou en combinaison les unes avec les autres : de l’intensité du pixel si le pixel est un pixel source ; d’une valeur prédéfinie sinon. Dans certains modes de réalisation, le procédé comprend une étape d’initialisation comprenant une affectation, à la valeur d’extremum d’intensité de pixel du deuxième type sur le chemin entre la source associée au pixel et le pixel Dans certains modes de réalisation, le critère d’arrêt comprend une vérification qu’un nombre d’itérations prédéfini a été réalisé. Ceci permet de s’assurer qu’un nombre d’itérations considéré comme suffisant a été réalisé, tout en bornant le temps d’exécution du procédé. Dans certains modes de réalisation, le critère d’arrêt comprend une vérification que le nombre de pixels modifiés au cours d’une itération est inférieur ou égal à un seuil. On entend par « pixel modifié » un pixel dont au moins une valeur associée a été modifiée au cours de l’itération. Une valeur associée peut notamment être l’indicatif de source associée au pixel, et/ou la valeur de l’extremum d’intensité du deuxième type sur le chemin entre la source associée au pixel et le pixel. Ceci permet de cesser les itérations lorsque l’on considère que la propagation des valeurs a été suffisante pour que les informations associées à chaque pixel ne fluctuent plus significativement au cours d’une prochaine itération. Le seuil peut par exemple consister en un nombre de pixels (par exemple, le critère peut être validé si au maximum 1, 2, ou même aucun pixel n’a été modifié), ou un pourcentage ou ratio des pixels parcourus lors de l’itération (par exemple, le critère pourra être validé si au maximum 5% ou 10% des pixels parcourus ont été modifiés). Dans certains modes de réalisation, le procédé comprend une pluralité d’itérations d’exécution en parallèle d’un même sens de parcours de pixel sur plusieurs bandeaux de l’image, la pluralité d’itérations successives correspondant respectivement à une pluralité sens de parcours de l’image distincts. Ceci permet de traiter plusieurs bandeaux de l’image en parallèle, et donc de paralléliser des opérations de calcul et réduire les temps de calcul. Par exemple, plusieurs lignes ou colonnes de pixels parallèles les unes aux autres peuvent être parcourues en parallèle. Dans certains modes de réalisation, le procédé comprend, à la validation du critère d’arrêt, une étape de ré-étiquetage des pixels situés dans une région sans source. Un ensemble de pixels ne comprend pas de pixel source si aucun des pixels de l’ensemble n’est associé à une étiquette indiquant qu’il est source. Ceci permet, lorsqu’en fin de traitement des pixels associés à une source ne sont pas situés dans une région de pixels contigus dont fait partie la source, de redéfinir les étiquettes de sources de pixels, pour fusionner des régions et associer chaque pixel à la meilleure source possible, qui sera située dans la même région de pixels contigus que lui. Dans certains modes de réalisation, le voisinage du pixel courant comprend l’ensemble des pixels contigus au pixel courant. L’utilisation d’un voisinage comprenant l’ensemble des pixels contigus au pixel courant permet une propagation plus efficace des informations relatives aux sources et aux extrema, ce qui peut permettre dans certains cas de limiter le nombre d’itérations de calcul. Dans certains modes de réalisation, l’utilisation d’une pluralité de sens de parcours de pixels différents lors de plusieurs itérations successives respectivement. L’utilisation de plusieurs parcours différents permet une convergence plus rapide du procédé, car les données sont propagées dans plusieurs directions différentes voire opposées. Dans certains modes de réalisation, le procédé comprend au moins deux sens de parcours parmi un groupe comprenant 4 sens de parcours, correspondant respectivement à un parcours de l’image de gauche à droite et de haut en bas ; un parcours de l’image de droite à gauche et de bas en haut; un parcours de l’image de droite à gauche et de haut en bas; un parcours de l’image de gauche à droite et de bas en haut. L’utilisation d’au moins deux sens de parcours distincts permet une convergence particulièrement rapide des valeurs de pixels, et donc de limiter le nombre d’itérations de calcul. D’autres caractéristiques, détails et avantages apparaîtront à la lecture de la description détaillée ci-après, et à l’analyse des dessins annexés, sur lesquels : montre un exemple d’image servant de base à une segmentation par partage des eaux. montre un exemple de définition de sources lumineuses dans l’image de la en vue de l’application d’une segmentation par partage des eaux. montre un exemple de segmentation de l’image de la en régions par une segmentation par partage des eaux. montre un exemple de procédé de segmentation d’image par partage selon un ensemble de modes de réalisation de l’invention. montre un exemple simplifié en fonction d’une seule dimension spatiale le principe de segmentation par partage des eaux selon un ensemble de modes de réalisation de l’invention. Dans cet exemple simplifié, les sources sont des minima locaux de l’intensité. montre deux exemples de voisinages d’un pixel selon deux modes de réalisations de l’invention. montre quatre exemples de parcours possibles d’une image en deux dimensions dans un ensemble de modes de réalisation de l’invention. montre l’évolution de la variation des pixels d’une image au cours des itérations successives, en fonction des sens de parcours utilisés, dans un exemple de mode de réalisation de l’invention. montre un exemple de résultat expérimental d’évaluation du nombre d’itérations nécessaires pour parvenir à une convergence de données en fonction d’un angle de rotation appliqué à l’image d’entrée, dans un exemple de mode de réalisation de l’invention. montre un exemple d’image à segmenter dans un exemple de mode de réalisation de l’invention. montre un exemple de détection de source sur une image dans un exemple de mode de réalisation de l’invention. montre un exemple de segmentation initiale d’une image en régions selon les sources présentes dans l’image dans un exemple de mode de réalisation de l’invention. montre un exemple de segmentation d’une image en régions à l’issue d’une première itération de propagation dans un exemple de mode de réalisation de l’invention. montre un exemple de segmentation d’une image en régions à l’issue d’une deuxième itération de propagation dans un exemple de mode de réalisation de l’invention. montre un exemple de segmentation d’une image en régions à l’issue d’une troisième itération de propagation dans un exemple de mode de réalisation de l’invention. montre un exemple de structure de parallélisation de traitement de pixels dans un ensemble de modes de réalisation de l’invention. Il est maintenant fait référence à la . Le procédé P400 est un exemple de procédé de segmentation d’image par partage selon un ensemble de modes de réalisation de l’invention. Le procédé P400 comprend une première étape S410 d’obtention d’une image. L’image S410 peut être obtenue de différentes manières, par exemple par chargement depuis un fichier ou capturée par un capteur d’image. L’image S410 peut être de différents types. Par exemple, il peut s’agir d’une image infrarouge, de lumière visible, ultraviolet, etc… Par exemple, l’image peut être une image de radiométrie dans laquelle l’intensité de chaque pixel correspond à l’intensité d’un signal infrarouge reçu par chaque pixel. L’invention sera décrite en référence à des images en deux dimensions, mais n’est pas limitée à cet exemple, et est par exemple applicable à des images de dimensions inférieure ou supérieures à 2, par exemple des signaux 1D, ou des données volumétriques 3D. Chaque pixel de l’image est associé à un ensemble d’informations comprenant : une étiquette indiquant si le pixel est un pixel source, les pixels sources étant des extrema locaux d’intensité d’un premier type ; un indicatif d’une source associée au pixel ; une intensité du pixel ; un extremum d’intensité de pixel d’un deuxième type sur un chemin entre la source associée au pixel et le pixel, le deuxième type d’extremum d’intensité de pixel étant inverse du premier type d’extremum d’intensité de pixel. Cette valeur pourra être, dans la suite de cette divulgation, appelée « im_ext ». Parmi ces informations, certaines sont fixes et forment des données d’entrée. Par exemple, l’intensité de chaque pixel, et l’étiquette indiquant qu’il s’agit d’un pixel source sont des données d’entrée fixes. D’autres ont vocation à être modifiées lors des itérations successives, et peuvent être initialisées à des valeurs initiales. Par exemple, l’indicatif de source associée au pixel des pixels non source peut être initialisé à une valeur indiquant l’absence de source, puis cette valeur pourra être mise à jour dès que le pixel est associé à une source. De même, l’extremum d’intensité de pixel d’un deuxième type sur un chemin entre la source associée au pixel et le pixel peut être initialisé à une valeur de base, par exemple l’extremum d’intensité du premier type parmi toutes les valeurs d’intensités possibles de pixels. L’indication des pixels sources, et des indicatifs associés à chaque source, est obtenue en entrée du procédé. Cette indication peut être obtenue de différentes manières. En effet, de nombreuses méthodes de sélection de sources dans une image existent, comme par exemple l’extracteur morphologique par H-maxima. Il convient de noter qu’une source peut comprendre un ou plusieurs pixels, et que seuls certains pixels sont des pixels source. Il est maintenant fait référence à la . La représente pour simplifier un signal variable en fonction d’une seule dimension spatiale Img5 illustrant le principe de fonctionnement d’un procédé de segmentation par partage des eaux selon l’invention. La représente volontairement un exemple très simple, afin d’illustrer de manière schématique le fonctionnement d’un procédé selon l’invention. Si l’image Img5 est une image en fonction d’une seule dimension spatiale, le procédé trouvera à s’appliquer à des images de dimensions plus élevées, notamment des images en 2 ou 3 dimensions spatiales. Dans l’exemple de la , l’intensité des pixels est représentée par l’altitude de la courbe Courb5. Deux sources Src1.5 et Src2.5 ont été identifiées sur l’image. Dans l’exemple de la , les sources comprennent des minima locaux. Tous les minima locaux ne sont cependant pas nécessairement dans des sources. Par exemple, l’image Img5 comprend une cuvette Cuv5 comprenant un minimum local qui n’est pas dans une source. L’image Img5 comprend également des maxima locaux, représentés sur l’image Img5 par des « cols » Col1.5 et Col2.5. Le principe de l’algorithme de segmentation par partage des eaux selon l’invention consiste à affecter les pixels à chaque source de manière à ce que, pour chaque pixel, le « plus haut col franchi » soit le plus bas possible. Par exemple, dans l’exemple de la , les pixels PixSrc1.5 seront affectés à la source Src1.5, et les pixels PixSrc2.5 à la source Src2.5. En particulier, les pixels appartenant à la cuvette Cuv5 doivent être affectés à la source Src2.5, car le « plus haut col franchi » Col2.5 est plus bas que le col Col1.5 qui devrait être franchi sur le chemin entre la cuvette Cuv5 et la source Src1.5. A cet effet, l’affectation d’une source à chaque pixel est faite par une propagation, de pixel en pixel, des informations suivantes : la source à laquelle appartient le pixel ; la hauteur maximale du « plus haut col » sur le chemin menant de la source au pixel, c’est-à-dire l’intensité maximale des pixels sur le chemin entre la source et le pixel courant. Lorsqu’un pixel est déjà affecté à une première source, ces informations peuvent être écrasées par des informations associées à une deuxième source, si et seulement si la hauteur maximale du « plus haut col » sur le chemin menant de cette 2 e source au pixel est plus basse que la hauteur maximale du « plus haut col » sur le chemin de la 1 e source au pixel. Dans l’exemple de la figure, les sources sont des minima locaux. Les extrema du 1 e type sont donc des minima, et les extrema du 2 e type des maxima, représentés notamment par les cols. L’invention n’est bien entendu pas limitée à cet exemple, et les sources peuvent être des maxima locaux (extrema du 1 e type), alors que les extrema du 2 e type sont des minima. Nous allons maintenant revenir à la pour présenter les étapes d’un procédé selon un ensemble de modes de réalisation de l’invention, avant d’illustrer concrètement le fonctionnement de l’invention sur 3 pixels Pix1.5, Pix2.5, Pix3.5 de la . Dans un ensemble de modes de réalisation de l’invention, le procédé P400 comprend une deuxième étape S420 d’initialisation. L’étape S420 d’initialisation peut comprendre l’affectation, à la valeur d’extremum d’intensité de pixel du deuxième type sur le chemin entre la source associée au pixel et le pixel : l’intensité du pixel si le pixel est un pixel source ; une valeur prédéfinie sinon. La valeur prédéfinie peut être un extremum global. Par exemple, dans l’exemple de la , la valeur prédéfinie peut être un maximum global d’intensité sur l’image, ou une valeur maximale d’intensité possible compte tenu du codage de l’intensité des pixels. De manière plus générale, cette valeur prédéfinie peut être égale à une valeur comprise entre un extremum du deuxième type parmi les valeurs d’intensité de pixels sur l’image, et un extremum du deuxième type des valeurs d’intensités de pixels possibles. L’étape S420 d’initialisation peut également comprendre l’affectation, à tous les pixels qui ne sont pas des pixels sources, d’un indicatif prédéfini indiquant que le pixel n’est associé à aucune source. Par exemple, si les sources sont identifiées par un numéro de source 1, 2, 3… l’indice 0 peut être affecté à chaque pixel non source, afin d’indiquer qu’il n’est associé à aucune source. Le procédé P400 comprend ensuite au moins une itération S430 de parcours de pixels successifs de l’image. Chaque itération de parcours consiste à parcourir l’image selon un ordre prédéfini, puis à effectuer sur au moins un pixel des étapes de calcul permettant d’affecter, de proche en proche des indicatifs de sources aux pixels. Dans un ensemble de modes de réalisation de l’invention, l’ensemble des pixels sont parcourus à chaque itération. Dans d’autres modes de réalisation, chaque pixel est de plus associé à un une étiquette indiquant si le pixel est à traiter ou non, par exemple une valeur booléenne. Dans ce cas, les sous-étapes indiquées ci-dessous ne sont effectuées que pour les pixels indiqués comme à traiter. L’étiquette peut également être modifiée entre les différentes itérations. Par exemple, le nombre de pixels à traiter peut diminuer entre les itérations successives. Chaque itération comprend les sous-étapes suivantes. Une première sous-étape S431 consiste à sélectionner un pixel courant. La sélection des pixels peut se faire par pixels successifs, c’est-à-dire que, dans l’ordre de parcours, chaque nouveau pixel courant est un pixel voisin du pixel courant précédent. La sélection peut donc consister à sélectionner : Un premier pixel du parcours ; Ou un pixel voisin du pixel précédent, dans l’ordre de parcours, ou un premier pixel de la ligne suivante, si le pixel précédent était un dernier pixel de ligne. Il convient cependant de noter que cet exemple n’est fourni qu’à titre d’exemple non limitatif uniquement. Des parcours de pixels ne fonctionnant pas ligne par ligne peuvent également être utilisés, c’est-à-dire que les pixels successifs ne sont pas nécessairement contigus dans l’ordre de parcours, à partir du moment où le parcours des pixels est connu à l’avance ce qui permet de charger les données à l’avance. Selon différents modes de réalisation de l’invention, la sélection du pixel courant peut être opérée sur tous les pixels de l’image, ou seulement une partie d’entre eux. Par exemple, dans l’exemple des figures 2 et 3 où les sources sont positionnées sur des maxima locaux, les pixels PixO ne doivent pas être associés à une source, car leur intensité est trop basse, c’est-à-dire inférieure à une limite Hmin. Ces pixels sont appelés pixels de fond. Dans un ensemble de modes de réalisation de l’invention, les étapes S432 à S434 peuvent donc ne pas être appliquées aux pixels de fond. Par exemple, dans l’exemple de la où les sources sont positionnées sur des minima locaux, les pixels dont l’intensité est supérieure à la limite HMax sont identifiés comme étant du fond et peuvent être considérés comme ne devant pas être associés à une source. Le parcours peut se faire par exemple par ligne, colonne, en diagonale… Selon différents modes de réalisation de l’invention, différents ordres de parcours sont possibles, certains exemples sont par exemple présentés en . Une deuxième sous-étape S432 consiste à comparer les valeurs « im_ext » du pixel courant, et de pixels voisins du pixel courant. Les pixels voisins sont des pixels appartement à un voisinage du pixel courant. Selon différents modes de réalisation de l’invention, le voisinage du pixel courant peut prendre différentes formes. Par exemple, le voisinage peut comprendre tous les pixels contigus au pixel courant. Différents exemples de formes de voisinage sont par exemple présentés en . La sous-étape S432 comprend une vérification de si l’extremum du premier type parmi les valeurs « im_ext » du pixel courant, et des pixels voisins du pixel courant est associé au pixel courant ou à l’un de ses voisins. L’étape S432 est effectuée de manière distincte selon que le pixel est source ou non. Si le pixel est un pixel source, seuls les voisins affectés à la même source que le pixel sont pris en compte pour la comparaison. Sinon, tous les voisins sont pris en compte. Par exemple, dans l’exemple de la , l’extremum du premier type est un minimum, et l’extremum du deuxième type un maximum. La valeur « im_ext » de chaque pixel correspond donc au maximum d’intensité de pixel rencontré sur le chemin menant de la source associée au pixel jusqu’au pixel ; si un pixel n’est pas encore associé à une source, sa valeur de « im_ext » peut avoir été initialisée à une valeur maximale. Dans cet exemple, la sous-étape S432 consiste donc à identifier quel pixel, parmi le pixel courant et les pixels voisins, a la valeur « im_ext » la plus faible. S’il s’agit du pixel courant, on considère qu’il est déjà affecté à la source présentant le meilleur chemin à cette itération. Dans le cas contraire, c’est-à-dire si un pixel voisin a la valeur im_ext la plus faible, alors on considère que la source associée à ce pixel voisin est une meilleure source pour le pixel courant, puisqu’elle est associée à un franchissement de col plus bas. Bien entendu, cet exemple est fourni à titre d’exemple illustratif en lien avec la situation de la , dans laquelle les sources comprennent des minima locaux. Un raisonnement inverse est également possible, dans lequel les sources comprennent des maxima locaux, et l’étape S432 consiste à identifier le pixel ayant la valeur im_ext la plus élevée. Si la sortie de l’étape S432 est positive et que le pixel n’est pas un pixel source, c’est-à-dire si le pixel n’est pas un pixel source, et l’extremum du premier type parmi les valeurs « im_ext » du pixel courant, et des pixels voisins du pixel courant est associé à un pixel voisin, l’itération S430 comprend une sous-étape S433 d’affectation audit pixel courant de l’indicatif de source dudit pixel voisin. Dit autrement, on considère que la source du pixel voisin est une meilleure source pour le pixel courant, et l’on affecte l’indicatif de source du pixel voisin au pixel courant. Si la sortie de l’étape S432 est positive, c’est-à-dire si l’extremum du premier type parmi les valeurs « im_ext » du pixel courant, et des pixels voisins du pixel courant est associé à un pixel voisin lorsque le pixel n’est pas un pixel source, ou si l’extremum du premier type parmi les valeurs « im_ext » du pixel courant, et des pixels voisins du pixel courant est associé à un pixel voisin associé à la même source lorsque le pixel est un pixel source, l’itération S430 comprend également une sous-étape S434 d’affectation, à la valeur de l’extremum d’intensité du deuxième type sur le chemin entre la source associée au pixel et le pixel courant, de l’extremum du deuxième type entre : la valeur de l’extremum d’intensité du deuxième type sur le chemin entre la source associée au pixel voisin et le pixel voisin ; l’intensité dudit pixel. Dit autrement, la sous-étape S434 consiste à modifier la valeur im_ext : soit en la valeur im_ext du pixel voisin ; soit en la valeur d’intensité du pixel courant. L’extremum du deuxième type de ces deux options est sélectionné. Par exemple, dans l’exemple de la où l’extremum du deuxième type est un maximum, la valeur la plus élevée entre la valeur im_ext du pixel voisin, et l’intensité du pixel courant est sélectionnée. Ainsi, si la valeur im_ext du pixel voisin est plus élevée que l’intensité du pixel courant (ce qui signifie que le chemin entre la source et le pixel est passé par au moins une valeur d’intensité, ou col, supérieure à l’intensité du pixel), cette valeur est affectée à la valeur im_ext du pixel courant. Au contraire, si l’intensité du pixel courant est supérieure à la valeur im_ext du pixel voisin, ce qui signifie que la valeur d’intensité du pixel courant est plus élevée que toutes les valeurs d’intensité des pixels rencontrés depuis la source, la valeur im_ext du pixel courant est affectée de sa valeur d’intensité. Ceci permet de propager l’information sur l’intensité maximale rencontrée sur le chemin entre la source et le pixel courant, et de la mettre à jour si le pixel courant possède une intensité plus élevée que tous ceux rencontrés jusque-là. L’itération S430 comprend ensuite une étape S435 consistant à vérifier si le parcours des pixels est terminé. Par exemple, si le parcours est une ligne, le parcours est considéré comme terminé si le dernier pixel de la ligne est atteint. Si le parcours n’est pas terminé, l’itération S430 comprend un retour à l’étape S431 consistant à sélectionner le pixel suivant dans l’ordre de parcours, puis effectuer les autres opérations de l’itération. Ceci permet de borner le temps de traitement, par exemple pour respecter des contraintes temps-réel. Il convient de noter que les étapes S434 et S434 d’un pixel courant peuvent s’effectuer avant ou après la sélection du pixel suivant, c’est-à-dire que la mise à jour des informations sur un pixel peut s’effectuer avant ou après la sélection du pixel suivant et son traitement. Ainsi, selon différents modes de réalisation de l’invention, les traitements pour chaque pixel peuvent s’appuyer sur des données de pixels précédents mises à jour ou non. Le procédé P400 comprend, à l’issue de l’itération S430, une étape S440 de vérification d’un critère d’arrêt. Si le critère d’arrêt n’est pas vérifié, le procédé P400 comprend une nouvelle itération S430 de parcours des pixels. Différents critères d’arrêt peuvent être utilisés, seuls ou en combinaison. Par exemple, le critère d’arrêt peut comprendre une vérification qu’un nombre d’itérations prédéfini a été réalisé. Par exemple, un nombre d’itérations égale à 2, 3, 4, etc… peut être réalisé. Le critère d’arrêt peut également comprendre une vérification que le nombre de pixels modifiés au cours d’une itération est inférieur ou égal à un seuil. Ceci permet de garantir une qualité du résultat obtenu. Ces critères sont fournis à titre d’exemple uniquement, et d’autres critères peuvent être utilisés selon différents modes de réalisation de l’invention. Les critères peuvent également être combinés. Par exemple, le critère d’arrêt peut être vérifié si un nombre d’itérations prédéfini a été réalisé ET/OU si le nombre de pixels modifiés au cours d’une itération est inférieur ou égal à un seuil. Dans certains cas spécifiques d’images à au moins deux dimensions, il peut arriver que des pixels associés à une source lors d’une itération se retrouvent « coupés » de cette source par une série pixels associés à une autre source. Dans ce cas, une région peut se retrouver « coupée en deux » à l’issue des itérations. Afin de corriger ces cas, dans un ensemble de modes de réalisation de l’invention, le procédé P400 peut comprendre une étape (S450) de ré-étiquetage des pixels situés dans une région sans source En pratique, cette étape de ré-étiquetage consiste à modifier les étiquettes de des pixels situés dans une région sans source, par exemple pour que chaque pixel associé à une source soit situé dans une région de pixels contigus dont la source fait partie. Cette étape peut se réaliser de plusieurs manières. L’étape de ré-étiquetage peut comprendre une première sous-étape de ré-étiquetage par région, dans laquelle chaque région de pixels contigus associés à la même source est étiquetée avec une étiquette de région unique. Dit autrement, les ensembles de pixels contigus de pixels associés à une même source sont identifiés, et étiquetés comme une région unique. Il convient de noter ici que, comme indiqué ci-dessus, la source associée à cet ensemble de pixels peut ne pas s’y trouver, si les pixels de l’ensemble ont été coupés de la source. Dans ce cas, il existera au moins deux ensembles de pixels contigus associés à une même source, mais ayant deux étiquettes de régions uniques distinctes. Ensuite, une sous-étape dite de fusion des étiquettes peut être mise en œuvre pour fusionner chaque région sans source avec une région connexe comprenant une source. Cette sous-étape de fusion des étiquettes peut être mise en œuvre de plusieurs manières. Selon une première méthode, l’étape de ré-étiquetage par région comprend la construction d’une table de connexité entre régions indiquant pour chaque région quelles sont les régions connexes. Ensuite, la sous-étape de fusion des étiquettes identifie, pour chaque région sans source, une région connexe comprenant une source dans la table, et affecte à la région sans source l’indicatif de région de la région connexe avec source. Dans le cas où une région sans source est connexe de plusieurs régions avec source, elle peut être fusionnée avec plusieurs régions. Le choix de la région avec laquelle la fusionner peut être effectué de plusieurs manières. Par exemple, la première région identifiée dans la table peut être sélectionnée. Dans un autre exemple, la région voisine avec laquelle fusionner est celle comprenant un pixel voisin de la région courante ayant l’extremum du premier type parmi les extrema d’intensité de pixel du deuxième type sur les chemins entre les sources associées aux pixels et les pixels appartient à un pixel voisin dudit pixel courant. On entend par « pixel voisin de la région » un pixel n’appartenant pas à la région, mais voisin d’un pixel de la région. Ainsi, la région avec laquelle fusionner est celle présentant le « meilleur pixel voisin », c’est-à-dire celui par lequel l’étiquette de région se serait propagée au cours d’éventuelles itérations successives. Ce pixel voisin peut être détecté lors de la sous-étape de résolution des équivalences, ou stocké dans la table lors de la sous-étape de ré-étiquetage par région. Selon une deuxième méthode, après la sous-étape de ré-étiquetage par régions, l’étape de fusion des étiquettes consiste à effectuer un nouveau parcours d’image pour fusionner une région sans source avec la première région connexe trouvée. Ceci permet, dans tous les cas où cela est possible, d’obtenir des régions uniques comprenant la source d’intensité associée aux pixels. A l’issue de ces étapes, le procédé P400 est terminé S460. Les valeurs associées à chaque pixel, et notamment les numéros de source ou les étiquettes de région uniques, peuvent alors être fournies en sortie du procédé, par exemple en tant qu’entrée d’un procédé de traitement d’image. Par exemple, les associations entre les pixels et les sources ou étiquette de région uniques peuvent être fournis en entrée d’un procédé de classification d’image, qui pourra classifier les différentes régions indépendamment les unes des autres. Une autre application peut être l’entrée d’un processus de pistage temporel de régions (les régions sont appelés des plots) si le traitement est fait sur une séquence d’images vidéo. La segmentation par partage des eaux sert à réaliser les séparations des plots en plusieurs plots quand un plot contient plusieurs sources. De manière générale, le procédé permet de segmenter les pixels d’une image en régions. Ainsi, toute information permettant d’identifier les régions segmentées peut être fournie en sortie du procédé. Il convient de noter que les itérations de parcours de pixels peuvent être effectuées sur un seul parcours à la fois, par exemple avec l’exécution séquentielle de plusieurs itérations de parcours de pixel pour un opérateur unique, mais aussi sur plusieurs parcours en parallèle (par exemple, plusieurs lignes ou colonnes parallèles) afin de tirer parti de la possibilité de paralléliser les opérations de calcul, et donc réduire considérablement les temps de calcul. Par exemple, plusieurs parcours de l’image peuvent être effectués selon plusieurs sens de parcours différents, au cours d’une pluralité d’itérations successives de parcours de l’image, et, au sein de chaque itération de parcours, plusieurs bandeaux de l’image peuvent être traités en parallèle selon le même sens de parcours. Ceci est possible car les parcours de pixels successifs sont prédéfinis dans le procédé selon les différents modes de réalisation de l’invention, alors qu’ils sont aléatoires dans les procédés de l’état de l’art utilisant des files d’attente hiérarchiques. Il est à nouveau fait référence à la . L’application du procédé selon l’invention sera étudiée par le biais des 3 pixels Pix1.5, Pix2.5, et Pix3.5, dans : Un premier scénario où les pixels sont parcourus de droite à gauche, puis de gauche à droite ; Un deuxième scénario où les pixels sont parcourus de gauche à droite, puis de droite à gauche. Dans les deux scénarios, la valeur im_ext des trois pixels est initialisée à la valeur maximale Hmax, et le voisinage d’un pixel courant comprend le pixel immédiatement à droite et immédiatement à gauche du pixel courant. Dans le premier scénario, les pixels sont parcourus de droite à gauche. Partant de la source Src2.5, chaque pixel est successivement associé à la source Src2.5, et sa valeur im_ext devient égale à son intensité. Par exemple, lorsque le pixel Pix1.5 est sélectionné lors de cette première passe sa valeur im_ext est encore égale à HMax, et son indice de source indique qu’il n’est associé à aucune source. Il en est de même pour le pixel immédiatement à sa gauche. En revanche, le pixel immédiatement à droite vient d’être associé à la source Src2.5 : son identifiant de source est « Src2.5 », et sa valeur im_ext est égale à son intensité, puisqu’il s’agit du point le plus haut rencontré jusqu’ici en partant de la source Src2.5. A l’étape S432, les valeurs im_ext du pixel courant et des deux pixels voisins sont comparées. Les valeurs de im_ext pour le pixel courant et son voisin de gauche valent toutes les deux HMax, mais la valeur im_ext du voisin de droite est légèrement inférieure à HCol2.5. Ainsi, le minimum des trois valeurs est la valeur im_ext du voisin de droite. Le procédé comprend alors l’exécution des étapes S433 et S434 : La source « Src2.5 » est affectée au pixel courant ; La valeur im_ext du pixel Pix1.5. devient le maximum entre l’intensité du pixel (égale à HCol2.5) et la valeur im_ext du voisin de droite (légèrement inférieure à HCol2.5), soit HCol2.5. La parcours des pixels continue ensuite dans la cuvette Cuv5. Ici, les intensités de pixels sont inférieures à HCol2.5, donc l’information selon laquelle la source des pixels est la source Src2.5 est propagée, mais les valeurs im_ext des pixels dans la cuvette valent toutes HCol2.5. Par exemple, lorsque le pixel Pix2.5 est sélectionné lors de cette première passe sa valeur im_ext est encore égale à HMax, et son indice de source indique qu’il n’est associé à aucune source. Il en est de même pour le pixel immédiatement à sa gauche. En revanche, le pixel immédiatement à droite vient d’être associé à la source Src2.5 : son identifiant de source est « Src2.5 », et sa valeur im_ext est égale à HCol2.5, puisqu’il s’agit du point le plus haut rencontré jusqu’ici en partant de la source Src2.5. A l’étape S432, les valeurs im_ext du pixel courant et des deux pixels voisins sont comparées. Les valeurs de im_ext pour le pixel courant et son voisin de gauche valent toutes les deux HMax, mais la valeur im_ext du voisin de droite est égale à HCol2.5. Ainsi, le minimum des trois valeurs est la valeur im_ext du voisin de droite. Le procédé comprend alors l’exécution des étapes S433 et S434 : La valeur de la source « Src2.5 » est affectée au pixel courant ; La valeur im_ext du pixel Pix1.5 devient le maximum entre l’intensité du pixel (inférieure à HCol2.5) et la valeur im_ext du voisin de droite (égale à HCol2.5), soit HCol2.5. On constate ici que dans le cas d’une cuvette, ou plus généralement de pixels dont l’intensité est inférieure à l’intensité maximale rencontrée sur le chemin depuis la source, l’indicatif de source est propagé, mais les valeurs im_ext des pixels prennent toutes l’intensité maximale de pixel rencontrée sur le chemin, ici HCol2.5. Sur la suite du parcours, à la sortie de la cuvette, c’est-à-dire lorsque l’intensité des pixels devient à nouveau supérieure à HCol2.5, l’indicatif de source continue d’être propagé, mais les valeurs im_ext des différents pixels sont les intensités des pixels, puisqu’il s’agit à chaque fois de l’intensité maximale rencontrée depuis la source. Par exemple, le pixel Pix3.5 est situé juste à droite du col Col1.5. Le raisonnement appliqué au pixel Pix1.5 s’applique de la même manière donc à l’issue de l’itération : La valeur de la source « Src2.5 » est affectée au pixel Pix3.5 ; La valeur im_ext du pixel Pix3.5 devient son intensité, légèrement inférieure à HCol1.5. Lors de la deuxième passe, de gauche à droite, l’indicatif de source Src1.5 est propagé jusqu’au col Col1.5. Lorsque le pixel Pix3.5 est sélectionné, le test S432 est appliqué, c’est-à-dire que les valeurs de im_ext sont comparées entre le pixel courant Pix3.5 et ses voisins de gauche et de droite. En l’occurrence : La valeur im_ext du pixel voisin de gauche, situé sur le col Col1.5, est égale à HCol1.5 ; La valeur im_ext du pixel courant Pix3.5 est légèrement inférieure ; La valeur im_ext du voisin de droite est encore inférieure. Le minimum des trois valeurs im_ext est donc celui du voisin de droite, associé à la source Src2.5. Une propagation identique à la première passe peut donc être effectué, qui ne modifie aucune valeur associée au pixel Pix3.5. On constate ici que la propagation de l’identifiant de source Src1.5 est stoppée juste après le col Col1.5, car la valeur maximale rencontrée en partant de la source Src1.5 est égale à HCol1.5, alors que les valeurs maximales rencontrées en partant de la source Src2.5 sont plus basses. Etudions maintenant un deuxième scénario, où un premier parcours est effectué de gauche à droite, puis un deuxième parcours de droite à gauche. Lors du premier parcours, toutes les valeurs im_ext des pixels non source sont égales à HMax, et ne sont associés à aucune source. En partant de la source Src1.5, tous les pixels entre la source Src1.5 et la source Src2.5 sont donc associés à la source Src1.5, et les valeurs im_ext des pixels entre le col Col1.5 et la source Src2.5 deviennent égales à HCol1.5, qui est l’intensité maximale de pixel rencontrée, au niveau du col Col1.5, en partant de la source Src1.5. Lors du deuxième parcours de pixels, de droite à gauche, tous les pixels entre le pixel Pix3.5 et la source Src2.5 sont affectés à la source Src2.5. En effet, lorsque la condition de l’étape S432 est évaluée pour chaque pixel situé entre la source Src2.5 et le pixel Pix3.5, la valeur im_ext du pixel courant est égale à HCol1.5, qui est la valeur maximale rencontrée en partant de Src1.5, mais la valeur im_ext du pixel voisin de droite est plus faible, puisqu’il s’agit de la valeur maximale rencontrée en partant de Src2.5. L’ensemble des raisonnements effectués pour le premier parcours de droite à gauche du premier scénario peut donc être reproduit, à la différence près que la valeur im_ext du pixel courant est égale à HCol1.5 et non HMax. Ainsi, en balayant les pixels de droite à gauche, tous les pixels entre Src2.5 et Pix3.5 sont réaffectés à la source Src2.5. On constate donc que, dans les deux cas, le procédé selon un mode de réalisation de l’invention permet de segmenter l’image Img5 en deux régions séparées par le col Col1.5, et que cette séparation fournit une séparation cohérente entre les différentes sources, où la source associée à chaque pixel est celle pour laquelle le chemin de la source au pixel franchit le col le plus bas possible. Bien sûr, l’exemple de la est fourni à titre d’exemple illustratif et simplifié uniquement, et d’autres logiques de propagation de l’information sont possibles dans le cadre de l’invention. Par exemple, les sources peuvent être des maxima locaux plutôt que des minima. Dans ce cas, l’ensemble des logiques doit être inversé, les minima étant recherchés à la place des maxima et vice-versa. Dans ce cas, la valeur d’initialisation HMax devient un minimum Hmin, et les sources affectées à chaque pixel sont les sources pour lesquelles le minimum d’intensité rencontré sur le chemin de la source au pixel est le plus haut. Dans le cas d’image 2D, le voisinage des pixels est généralement également en 2D, ce qui permet d’envisager des chemins en 2D d’une source à un pixel. Il en est respectivement de même pour des images volumétriques en 3D. Il est maintenant fait référence à la . La montre deux exemples de voisinages d’un pixel selon deux modes de réalisations de l’invention. Dans les deux cas, le voisinage concerne une image 2D, et le parcours des pixels est effectué de gauche à droite, puis de haut en bas de l’image. Dit autrement, l’image est parcourue ligne par ligne, du haut vers le bas, et, au sein de chaque ligne, le parcours s’effectue de gauche à droite. Dans les deux cas, les masques V1 et V2 contiennent uniquement des pixels contigus du pixel courant, c’est-à-dire les pixels immédiatement au-dessus, en-dessous, à gauche, à droite et en diagonale du pixel courant. Le voisinage V1 est défini autour d’un pixel courant Pix1.6, et comprend les pixels contigus déjà traversés lors du parcours de pixels, c’est-à-dire : les trois pixels contigus appartenant à la ligne supérieure (pixel supérieur gauche, pixel supérieur, pixel supérieur droit) ; le pixel immédiatement à gauche du pixel courant, sur la même ligne. Le voisinage V2 est défini par l’ensemble des pixels contigus au pixel courant Pix2.6, qu’ils aient été ou non déjà traversés par le parcours de pixels, c’est-à-dire : les trois pixels contigus appartenant à la ligne supérieure (pixel supérieur gauche, pixel immédiatement supérieur, pixel supérieur droit) ; le pixel immédiatement à gauche du pixel courant, sur la même ligne ; le pixel immédiatement à droite du pixel courant, sur la même ligne ; les trois pixels contigus appartenant à la ligne inférieure (pixel inférieur gauche, pixel immédiatement inférieur, pixel inférieur droit). Les voisinages présentés à la sont fournis à titre d’exemple uniquement de voisinages utilisables dans des modes de réalisation de l’invention, et d’autres voisinages de pixels sont envisageables, utilisant uniquement des pixels contigus ou non. L’utilisation d’un voisinage comprenant des pixels contigus au pixel courant permet d’obtenir une propagation efficace des informations relatives aux sources et aux extrema, tout en limitant le nombre d’opérations à effectuer. L’utilisation d’un voisinage tel que le voisinage V1, comportant uniquement les pixels contigus au pixel courant ayant déjà été parcourus permet de limiter la complexité de calcul du procédé. L’utilisation d’un voisinage tel que le voisinage V2, comprenant l’ensemble des pixels contigus au pixel courant permet une propagation plus efficace des informations relatives aux sources et aux extrema, ce qui peut permettre dans certains cas de limiter le nombre d’itérations de calcul. Cependant, bien que les exemples de la montrent des voisinages contenant uniquement des pixels contigus au pixel courant, des voisinages plus larges peuvent être définis, qui pourraient par exemple permettre de réduire le nombre de passes. Il est maintenant fait référence à la . La représente 4 types de parcours : Un parcours Parc1.7 dit « parcours vidéo » dans lequel l’image est parcourue de gauche à droite et de haut en bas ; Un parcours Parc2.7 dit « parcours anti-vidéo » dans lequel l’image est parcourue de droite à gauche et de bas en haut ; Un parcours Parc3.7 dit « parcours vidéo inversé » dans lequel l’image est parcourue de droite à gauche et de haut en bas ; Un parcours Parc4.7 dit « parcours anti-vidéo inversé » dans lequel l’image est parcourue de gauche à droite et de bas en haut. Dans chacun de ces exemples, on a représenté un pixel courant respectivement Pix1.7, Pix2.7, Pix3.7 et Pix4.7, chacun des pixels courant étant respectivement associé au voisinage V1.7, V2.7, V3.7 et V4.7. Cet exemple montre la manière dont se propage l’information contenue dans les pixels Pix1.7, Pix2.7, Pix3.7 et Pix4.7 respectivement. Par exemple, le parcours Parc1.7 des pixels s’effectue de gauche à droite et de haut en bas. La propagation de l’information se fait donc essentiellement vers le bas et la droite, dans la zone notée PixFut1.7, même si l’utilisation du voisinage V2 permet de propager de l’information légèrement vers la gauche, avec un décalage de la zone où l’information est propagée d’un pixel à chaque ligne, et sur la ligne au-dessus du pixel Pix1.7, permettant de propager de l’information aux pixels dans la zone PixPass1.7. Le parcours Parc2.7 des pixels s’effectue de droite à gauche et de bas en haut. La propagation de l’information se fait donc essentiellement vers le haut et la gauche, dans la zone notée PixFut2.7, même si l’utilisation du voisinage V2 permet de propager de l’information légèrement vers la droite, avec un décalage de la zone où l’information est propagée d’un pixel à chaque ligne, et sur la ligne en-dessous du pixel Pix2.7, permettant de propager de l’information aux pixels dans la zone PixPass2.7. Le parcours Parc3.7 des pixels s’effectue de droite à gauche et de haut en bas. La propagation de l’information se fait donc essentiellement vers le bas et la gauche, dans la zone notée PixFut3.7, même si l’utilisation du voisinage V2 permet de propager de l’information légèrement vers la droite, avec un décalage de la zone où l’information est propagée d’un pixel à chaque ligne, et sur la ligne au-dessus du pixel Pix3.7, permettant de propager de l’information aux pixels dans la zone PixPass3.7. Le parcours Parc4.7 des pixels s’effectue de gauche à droite et de bas en haut. La propagation de l’information se fait donc essentiellement vers le haut et la droite, dans la zone notée PixFut4.7, même si l’utilisation du voisinage V2 permet de propager de l’information légèrement vers la gauche, avec un décalage de la zone où l’information est propagée d’un pixel à chaque ligne, et sur la ligne en-dessous du pixel Pix4.7, permettant de propager de l’information aux pixels dans la zone PixPass4.7. Dans d’autres exemples, l’utilisation de sens de parcours et/ou de voisinage différents pour impliquer une propagation différente de l’information. Selon différents modes de réalisation de l’invention, un même parcours d’image peut être utilisé, ou plusieurs parcours d’images différents peuvent être utilisés au cours des différentes itérations successives. Par exemple : au moins deux parcours choisis parmi les 4 parcours représentés en ; deux parcours d’images correspondant à des sens de parcours opposés des lignes et/ou des colonnes peuvent être utilisés ; quatre parcours d’images correspondant aux 4 combinaisons possibles de sens de parcours d’image respectifs de lignes et de colonnes (par exemple les 4 parcours Parc1.7, Parc2.7, Parc3.7, Parc4.7) peuvent être utilisés. L’utilisation de plusieurs parcours différents permet une convergence plus rapide du procédé, car les données sont propagées dans plusieurs directions différentes voire opposées. Ceci est vrai pour deux parcours distincts, et encore plus pour quatre parcours distincts. Il est maintenant fait référence à la . Le graphe Gr8 représente l’évolution de la variation des pixels d’une image au cours des itérations successives, en fonction des sens de parcours utilisés, dans un exemple de mode de réalisation de l’invention. L’axe vertical AxeV8 représente le pourcentage de pixels modifiés à une itération. L’axe horizontal AxeH8 représente l’indice de l’itération courante. Les 7 courbes représentent donc l’évolution du pourcentage de pixels modifiés au cours des itérations successives. La courbe Evo1.8 représente un exemple où seuls deux sens de parcours sont utilisés. Les autres courbes représentent des exemples où 4 sens de parcours sont utilisés. La numérotation « V1 » à V6 » correspond aux 6 ordres différents combinant les 4 sens de parcours d’image possibles successivement. Par convention, on commence par le parcours vidéo direct (Parc1.7) et il y a ensuite 3*2*1 = 6 ordres de parcours possibles pour faire 4 parcours successifs. On constate que l’état des pixels tend à converger, c’est-à-dire que le pourcentage de pixels modifiés à chaque itération diminue jusqu’à tendre vers une valeur nulle. On constate également que la convergence est beaucoup plus rapide lorsque 4 sens de parcours sont utilisés, c’est-à-dire que le nombre d’itérations nécessaires pour qu’aucun pixel ou presque ne soit modifié est beaucoup plus faible. Si le critère d’arrêt utilisé à l’étape S440 est un critère de convergence des données, le nombre d’itérations utilisées par le procédé sera donc plus faible. Cet exemple montre donc que l’utilisation de quatre sens de parcours permet de diminuer le nombre d’itérations nécessaire à la convergence du procédé, et donc le temps de calcul sur une image donnée. Il est maintenant fait référence à la . Le graphe Gr9 représente un exemple de résultat expérimental d’évaluation du nombre d’itérations nécessaires pour parvenir à une convergence de données en fonction d’un angle de rotation appliqué à l’image d’entrée, dans un exemple de mode de réalisation de l’invention. Dans cet exemple, on applique une rotation à l’image d’entrée avant le démarrage du procédé. L’ensemble des angles appliqués à l’image correspond à des angles uniformément répartis de 0° à 354° avec un pas de 6°. L’image est donc tournée de 0°, 6°, 12°, 18°… 354° selon les différents cas. L’axe horizontal AxeH9 représente l’angle de rotation appliqué à l’image L’axe vertical AxeV9 représente le nombre d’itérations nécessaires pour converger. Le procédé de segmentation d’image est alors appliqué à l’image selon les différentes rotations. Les points sur le graphique représentent le nombre d’itérations nécessaires pour converger, selon l’angle de rotation d’une même image avec l’utilisation de 2 ou 4 types de parcours. Cette figure fournit donc une indication sur la variabilité du nombre d’itérations pour converger en fonction de l’image, selon que 2 ou 4 types de parcours sont utilisés. On constate que le nombre d’itérations nécessaires pour converger varie de manière importante en fonction de l’angle appliqué à l’image lorsque 2 parcours d’images sont utilisés, mais beaucoup moins si 4 parcours d’images sont utilisés. Cet exemple montre donc que l’utilisation des 4 parcours d’images Parc1.7, Parc2.7, Parc3.7 et Parc4.7 permet de limiter le nombre d’itérations nécessaires pour converger, quel que soit l’image. Il est maintenant fait référence aux figures 10 à 15. Les figures 10 à 15 représentent plusieurs étapes successives d’un procédé de segmentation d’une image selon un exemple de mode de réalisation de l’invention. Sur la , une image Img10 est obtenue. Comme dans l’exemple de la , l’intensité de chaque pixel augmente avec le niveau de gris, un pixel plus foncé correspondant à une intensité plus grande. La représente une détection de sources appliquée à l’image Img10. Le code couleur est le même qu’en : quatre sources Src1.11, Src2.11, Src3.11 et Src4.11 ont été détectées ; les pixels PixI11 peuvent être associés à une source ; les pixels PixO11 ne peuvent pas être associés à une source (pixels de fond). La montre l’association initiale d’étiquettes de sources aux pixels de l’image : les pixels des quatre régions Reg1.12, Reg 2.12, Reg 3.12 et Reg 4.12 sont respectivement associés à des étiquettes des quatre sources Src1.11, Src2.11, Src3.11 et Src4.11. Les pixels de la région Reg0.12 ne sont associés à aucune source soit parce qu’ils appartiennent au fond (PixO11 de la ) soit parce qu’ils n’ont pas encore été étiquetés à ce stade (PixI11 de la ). On constate qu’à ce stade, seuls les pixels source sont associés à une source. La montre l’étiquetage des sources à l’issue d’une première itération de parcours des pixels de l’image. Les pixels des quatre régions Reg1.13, Reg 2.13, Reg 3.13 et Reg 4.13 sont respectivement associés à des étiquettes des quatre sources Src1.11, Src2.11, Src3.11 et Src4.11. Les pixels de la région Reg0.13 ne sont associés à aucune source. Le parcours utilisé pour cette itération est le premier type de parcours Parc1.7. On constate qu’à ce stade, des « cônes » de propagation d’information sur les sources sont visibles, notamment pour la région Reg3.13, dus à la propagation de l’information comme montré en référence à la . La montre l’étiquetage des sources à l’issue d’une deuxième itération de parcours des pixels de l’image, selon un deuxième type de parcours différent du premier. Les pixels des quatre régions Reg1.14 Reg 2.14, Reg 3.14 et Reg 4.14 sont respectivement associés à des étiquettes des quatre sources Src1.11, Src2.11, Src3.11 et Src4.11. Les pixels de la région Reg0.14 ne sont associés à aucune source. La montre l’étiquetage des sources à l’issue d’une troisième itération de parcours des pixels de l’image, selon un troisième type de parcours différent du premier et du deuxième. Les pixels des quatre régions Reg1.15, Reg 2.15, Reg 3.15 et Reg 4.15 sont respectivement associés à des étiquettes des quatre sources Src1.11, Src2.11, Src3.11 et Src4.11. Les pixels de la région Reg0.15 ne sont associés à aucune source. Aucune modification des étiquettes de source n’est apportée par rapport à la deuxième itération, les itérations s’arrêtent donc à la troisième, car le critère de convergence est satisfait. Dans cet exemple, le critère de convergence porte sur un nombre d’étiquettes de sources de pixels modifiées inférieur à un seuil donné entre deux itérations. Dans cet exemple le seuil est égale à 1, mais aucune étiquette de source n’a été modifiée entre la deuxième et la troisième itération. On constate que le procédé selon l’invention permet une convergence rapide de la segmentation des pixels de l’image en régions associés aux différentes sources détectées. Il est maintenant fait référence à la . Le procédé selon un des modes de mises en œuvre de l’invention peut être implémenté sur différents types d’unités de calcul, comme par exemple : des circuits intégrés tels que des FPGAs, ASICs, des processeurs, tels que des microprocesseurs, CPU, DSP ou GPU. Comme indiqué ci-dessus, le procédé selon un mode de réalisation de l’’invention possède des caractéristiques permettant de réduire son temps d’exécution, notamment lorsqu’il est implémenté sur un circuit intégré où on charge une image à partir d’une mémoire externe : les parcours sont effectués par pixels successifs. Les données de l’image peuvent donc être chargées pour plusieurs pixels successivement, ce qui limite la latence de chargement des données lorsqu’une mémoire externe au processeur effectuant les opérations est utilisée ; le traitement par pixels successifs permet de réutiliser les résultats d’opérations d’un pixel courant pour le pixel suivant ; le parcours déterministe permet de traiter plusieurs lignes de pixels de l’image en parallèle, la parallélisation des opérations permettant de réduire de manière importante le temps de traitement du procédé. La montre ainsi un exemple de structure Struct16 de parallélisation de traitement de pixels dans un ensemble de modes de réalisation de l’invention. Lors de certains parcours d’images, les opérations effectuées sur un pixel dépendent du résultat de la ligne du dessus. Dans ce cas, pour respecter le principe que les informations d’un pixel sont mises à jour avant le traitement du pixel suivant, le traitement des différentes lignes peut être décalé. Le pixel courant d’une ligne peut ainsi être mis à jour puis transmis à la structure qui calcule le pixel courant d’une autre ligne (2 processeurs traitant 2 lignes consécutives ne travaillent donc pas sur la même colonne, mais sur 2 colonnes décalées d’au moins une position). Dans l’exemple de la , un bandeau de 4 lignes est chargé en mémoire, les 4 lignes étant chargées respectivement dans 4 zones mémoire MemLign1.16, MemLign2.16, MemLign3.16 et MemLign4.16. Ces 4 lignes sont traitées respectivement par 4 opérateurs OP1.16, OP2.16, OP3.16 et OP4.16. La structure de parallélisation Struct16 comprend également dans cet exemple une ligne à retard Ret16 qui représente la dernière ligne du bandeau précédent. Ceci permet de ne pas relire en mémoire externe les informations déjà lues ou écrites, pour les informations modifiées pendant le parcours. A l’issue du traitement du bandeau de 4 lignes, la dernière ligne du bandeau devient la ligne à retard Ret16 afin d’éviter d’avoir à recharger cette ligne pour le traitement du bandeau suivant. La structure Struct16 est fournie à titre d’exemple non limitatif uniquement d’une structure de parallélisation selon un mode de réalisation de l’invention. D’autres structures de parallélisation sont envisageables. Par exemple, un autre exemple de structure de parallélisation selon l’invention pourrait travailler sur 4 pixels alignés sur la même ligne. Ceci permettrait de nécessiter moins de bande passante pour lire les données, de pouvoir communaliser des comparaisons (une partie des comparaisons entre voisins du pixel courant sont utilisables pour le traitement du pixel suivant). Ceci permet de réduire la quantité de ressources de calcul nécessaires au traitement. La présente divulgation ne se limite pas aux exemples de méthode, dispositif, et programme d’ordinateur, décrits ci-avant, seulement à titre d’exemple, mais elle englobe toutes les variantes que pourra envisager l’homme de l’art dans le cadre de la protection recherchée. Procédé (P400) mis en œuvre par une unité de calcul comprenant : une obtention (S410) d’une image, chaque pixel de l’image étant associé à : une étiquette indiquant si le pixel est un pixel source, les sources comprenant des extrema d’intensité de pixel locaux d’un premier type ; un indicatif d’une source associée au pixel ; une intensité du pixel ; un extremum d’intensité de pixel d’un deuxième type sur un chemin entre la source associée au pixel et le pixel, le deuxième type d’extremum d’intensité de pixel étant inverse du premier type d’extremum d’intensité de pixel ; jusqu’à la vérification (S440) d’un critère d’arrêt, au moins une itération (S430) de parcours de pixels successifs de l’image, ledit parcours comprenant, pour au moins un pixel courant sur le parcours: Si le pixel n’est pas un pixel source et si, parmi le pixel courant et les pixels voisins appartenant à un voisinage dudit pixel courant, l’extremum du premier type parmi les extrema d’intensité de pixel du deuxième type sur les chemins entre les sources associées aux pixels et les pixels appartient à un pixel voisin dudit pixel courant ou si le pixel est un pixel source et si, parmi le pixel courant et les pixels voisins appartenant à un voisinage dudit pixel courant et affectés à la même source, l’extremum du premier type parmi les extrema d’intensité de pixel du deuxième type sur les chemins entre les sources associées aux pixels et les pixels appartient à un pixel voisin dudit pixel courant (S432) : si le pixel n’est pas un pixel source, l’affectation (S433) audit pixel courant de l’indicatif de source dudit pixel voisin ; l’affectation (S434), à la valeur de l’extremum d’intensité du deuxième type sur le chemin entre la source associée au pixel et le pixel courant, de l’extremum du deuxième type entre : la valeur de l’extremum d’intensité du deuxième type sur le chemin entre la source associée au pixel voisin et le pixel voisin ; l’intensité dudit pixel. Procédé selon la revendication 1 comprenant une étape d’initialisation (S420) comprenant : une affectation, à la valeur d’extremum d’intensité de pixel du deuxième type sur le chemin entre la source associée au pixel et le pixel : de l’intensité du pixel si le pixel est un pixel source ; d’une valeur prédéfinie sinon. Procédé selon l’une des revendications 1 ou 2, dans lequel le critère d’arrêt comprend une vérification qu’un nombre d’itérations prédéfini a été réalisé. Procédé selon l’une des revendications 1 ou 2, dans lequel le critère d’arrêt comprend une vérification que le nombre de pixels modifiés au cours d’une itération est inférieur ou égal à un seuil. Procédé selon l’une quelconque des revendications précédentes comprenant une pluralité d’itérations d’exécution en parallèle d’un même sens de parcours de pixel sur plusieurs bandeaux de l’image, la pluralité d’itérations successives correspondant respectivement à une pluralité sens de parcours de l’image distincts. Procédé selon l’une quelconque des revendications précédentes, comprenant, à la validation du critère d’arrêt, une étape (S450) de ré-étiquetage des pixels situés dans une région sans source. Procédé selon l’une quelconque des revendications précédentes, dans lequel le voisinage (V2) du pixel courant comprend l’ensemble des pixels contigus au pixel courant. Procédé selon l’une quelconque des revendications précédentes, comprenant l’utilisation d’une pluralité de sens de parcours de pixels différents lors de plusieurs itérations successives respectivement. Procédé selon la revendication 8, comprenant l’utilisation d’au moins deux sens de parcours parmi un groupe comprenant 4 sens de parcours, correspondant respectivement à : un parcours de l’image de gauche à droite et de haut en bas (Parc1.7) ; un parcours de l’image de droite à gauche et de bas en haut (Parc2.7) ; un parcours de l’image de droite à gauche et de haut en bas (Parc3.7) ; un parcours de l’image de gauche à droite et de bas en haut (Parc4.7). Programme informatique comportant des instructions pour la mise en œuvre du procédé selon l’une des revendications 1 à 9 lorsque ce programme est exécuté par un processeur. Dispositif comprenant au moins une unité de calcul configurée pour exécuter le procédé selon l’une des revendications 1 à 9.