Brevet FR2909204A1 — publié le 20080530

La présente invention a pour objet un système de traitement 5 d'image à macro cellule morphologique. La présente invention vise à utiliser les techniques non linéaires de traitement d'image basées notamment sur la théorie de la morphologie mathématique et notamment les opérations d'érosion et de dilatation pour traiter des éléments structurants linéaires de grandes 10 tailles (pouvant aller par exemple de 3 à 256 pixels) à des cadences importantes. L'invention concerne encore de façon plus particulière un système de détection d'objets munis de motifs répétitifs constitués de lettres, chiffres ou symboles. 15 Le principe de base des opérations d'érosion et de dilatation repose sur des opérations "min" et "max". Il consiste à comparer l'image à analyser par rapport à un ensemble de géométrie connue, appelé élément structurant, que l'on déplace de telle sorte que son origine passe par toutes les positions de l'image, pour mettre en évidence 20 certaines caractéristiques de celle-ci. Le centre de l'élément structurant (noté B) détermine la valeur où sera stocké le "min" ou le "max" en fonction d'un voisinage donné. L'érosion d'une image f(x) par un élément structurant B est définie de la manière suivante : 25 EB(f(x))=inf [f(x-y)), ye BI (1) Le terme f(x-y) représente la translation de l'élément structurant sur l'image. On attribue à f(x) la valeur minimale qu'elle prend dans le domaine de l'élément structurant B et ce, à chaque 30 nouveau déplacement de B. La dilatation d'une image est l'opération duale de l'érosion. Elle est définie de la manière suivante : (3B(f(x))=sup [f(x-y)), ye BI (2) 35 2909204 2 On attribue à f(x) la valeur maximale qu'elle prend dans le domaine de B et ce, à chaque nouveau déplacement de B. Les transformations composées sont construites en composant et chaînant des transformations de base. Avec des opérations comme la soustraction, le supremum ou l'infimum, on peut réaliser une grande variété de traitements. Le gradient résulte d'une soustraction entre l'image originale et une image érodée ou dilatée. Une ouverture est réalisée par la dilatation de l'image d'origine suivie de l'érosion appliquée au résultat. Une fermeture est définie comme une transformation duale. Une transformation plus avancée permet de construire des filtres alternés séquentiels. Le principe est d'enchaîner alternativement des ouvertures et des fermetures avec des tailles de B croissantes. Une transformation composée dite " chapeau haut de forme" est définie de deux façons : le chapeau haut de forme par fermeture ou noir (BTH) ("black top hat" ou "close top hat"), et le chapeau haut de forme par ouverture ou blanc (WHT) ("white top hat" ou "open top hat"). Le WHT est égal à la différence de l'image originale et de opération d'ouverture. Il permet de conserver les objets clairs de l'image dépassant un certain seuil. Le BTH est égal à la différence entre la fermeture et l'image originale. Il permet de conserver les objets foncés de l'image en dessous d'un certain seuil. L'invention vise en particulier à permettre de réaliser de façon optimale un traitement de données dans un flux d'images tel qu'un flux de signaux vidéo, et à pouvoir facilement adapter le traitement d'image effectué. L'utilisation des éléments structurants linéaires permet de mettre en place le parallélisme au niveau des lignes/colonnes d'une image car le traitement de chaque ligne/colonne est indépendant des autres. Avantageusement, la réalisation est basée sur un procédé indépendant de la taille de l'élément structurant avec un temps d'exécution constant. L'invention concerne ainsi un système de traitement d'image à 35 macro cellule morphologique, caractérisé en ce qu'il comprend : 2909204 3 - un dispositif d'acquisition d'image pour créer une image numérique en niveaux de gris, comportant une matrice de m lignes et n colonnes codée sur b bits, m, n et b étant des entiers, - un ensemble de mémoires, 5 - un bloc de calcul dynamiquement reconfigurable, pour réaliser des traitements d'image, - un système de contrôle assurant le transfert de données entre le dispositif d'acquisition d'images et l'ensemble de mémoire, ainsi que la gestion du contrôle de p flux parallèles de données vers le bloc de 10 calcul et l'envoi des données avec un adressage spécifique en fonction des besoins de celui-ci, avec p entier, en ce que le bloc de calcul comprend : - un nombre entier k de Macro Cellules Morphologiques comprenant chacune un ensemble de cellules morphologiques 15 élémentaires organisées en b branches parallèles avec un nombre entier e d'étages, chaque cellule effectuant une fonction élémentaire d'érosion, de dilatation ou d'identité basée sur l'utilisation d'éléments structurants linéaires, la fonctionnalité de chaque cellule morphologique et la taille des éléments structurants étant dynamiquement programmables et les 20 flux parallèles issus des cellules morphologiques élémentaires étant recombinés en sortie par une unité arithmétique et logique, - au moins un système de parallélisation des données pour le traitement en parallèle de plusieurs lignes respectivement plusieurs colonnes, comprenant deux modules tampons et un démultiplexeur 25 chaîné en pipeline sur un ensemble de s étages synchrones pour décomposer un mot en p flux de données parallèles et reliés aux p entrées de macro cellules morphologiques, - au moins un système de reconstruction de l'image à partir d'un nombre entier z de flux parallèles de sortie des k macro cellules 30 morphologiques, comprenant deux modules tampons et un multiplexeur chaîné en pipeline sur un ensemble de s étages et relié à des sorties synchrones des macro cellules morphologiques, et en ce que les cellules morphologiques élémentaires ainsi que les macro cellules morphologiques sont munies d'un mécanisme de contrôle et de communication avec le système de contrôle permettant d'arrêter sélectivement l'exécution d'un traitement en fonction de la 2909204 4 disponibilité des données, et de reprendre ensuite le traitement sans perdre de données dans le chaînage en pipeline. Avantageusement, le système comprend un nombre entier f de systèmes de parallélisation des données et de systèmes de 5 reconstruction d'image pour permettre un traitement sur f x p flux parallèles de données. Selon une caractéristique préférentielle, les macro cellules morphologiques sont organisées en pipeline sur plusieurs branches à plusieurs étages, les sorties étant combinées par une unité arithmétique 10 et logique. Selon un mode de réalisation particulier, chaque cellule morphologique comprend des premières et deuxièmes unités de traitement pour réaliser un traitement selon des premières et deuxièmes passes dans des sens de traitement différents, et un module tampon est 15 interposé entre les premières et deuxièmes unités de traitement. Dans ce cas, de préférence, les premières et deuxièmes unités de traitement comprennent chacune une unité de propagation, une unité de gestion des effets de bord et des traitements spécifiques et une ligne de retard. 20 Une macro cellule morphologique comprend au moins deux branches avec deux cellules morphologiques chaînées assurant chacune des fonctions d'érosion, de dilatation et/ou d'identité, ainsi qu'une unité arithmétique et logique de manière à définir par reconfiguration des opérateurs composés de type fermeture ou ouverture, chapeau haut de 25 forme par ouverture, chapeau haut de forme par fermeture et/ou gradient. Ainsi avantageusement, les fonctions d'érosion et de dilatation sont complétées par la fonction d'identité ainsi qu'une unité logique/arithmétique pour créer des opérateurs composés permettant de 30 réaliser des procédés de filtrage, d'amélioration des images, d'extraction de contours et de détection des objets. L'invention concerne en particulier l'utilisation d'un tel système de traitement d'image à macro cellule morphologique comprenant au moins deux macro cellules morphologiques chaînées 35 entre elles et combinées avec des unités arithmétiques/logiques pour 2909204 5 réaliser des traitements d'image tels que le gradient, les filtres non linéaires, les filtres alternés séquentiels, la modification de contraste. L'invention concerne encore de façon plus particulière un système de détection d'objets munis de motifs répétitifs constitués de 5 lettres, chiffres ou symboles, caractérisé en ce qu'il comprend un système reconfigurable de traitement d'image à macro cellule morphologique du type défini ci-dessus et en ce qu'il comprend un premier module de traitement de l'image et un deuxième module de traitement de l'image. 10 Selon un mode de réalisation particulier, le premier module de traitement de l'image comprend un premier module d'ouverture/fermeture, un deuxième module d'ouverture/fermeture, et une unité arithmétique/logique pour réaliser des comparaisons par rapport à des seuils , un module d'intersection et un module d'ouverture 15 de ligne. Le deuxième module de traitement de l'image comprend un module d'ouverture/fermeture. Le système selon l'invention est avantageusement appliqué à la détection de plaques d'immatriculation. 20 D'autres caractéristiques et avantages de l'invention ressortiront de la description suivante de modes particuliers de réalisation, en référence aux dessins annexés, sur lesquels : - la Figure 1 est un schéma bloc d'un système de traitement d'image selon l'invention, 25 - la Figure 2 est un schéma bloc montrant la structure d'une cellule morphologique, qui assure un traitement en deux passes, - la Figure 3 est un schéma bloc montrant la structure des éléments constituant la première passe du traitement de la cellule morphologique de la Figure 2, 30 - la Figure 4 montre la structure électronique d'une cellule morphologique telle que celle de la Figure 2, -la Figure 5 montre l'architecture générale d'une macro cellule morphologique (MCM), - la Figure 6 montre la structure électronique d'une macro 35 cellule morphologique assurant la fonction d'un opérateur de dilatation, d'érosion, d'ouverture ou de fermeture, 2909204 6 - la Figure 7 montre l'architecture d'une macro cellule morphologique assurant la fonction d'un opérateur composé de gradient, d'ouverture, de fermeture, de chapeau haut de forme par fermeture ou par ouverture (Tophat), 5 - la Figure 8 montre la structure électronique d'une macro cellule morphologique assurant la fonction d'un opérateur du type chapeau haut de forme par ouverture, - la Figure 9 est un schéma montrant le principe d'un adressage en ligne des pixels en parallèle, 10 - la Figure 10 est un schéma montrant le principe d'une transformation ligne/colonne des vecteurs de pixels, - la Figure 11 est un schéma montrant l'architecture du système de conversion ligne/colonne, - la Figure 12 est un schéma montrant le principe d'une 15 transformation colonne/ligne des vecteurs de pixels, - la Figure 13 est un schéma montrant l'architecture du système de conversion colonne/ligne des pixels, - la Figure 14 montre un exemple de multiplexeur à trois étages utilisable dans l'architecture de la Figure 13, 20 - la Figure 15 montre un exemple d'image source, - la Figure 16 montre un exemple d'image en sortie d'un étage tampon de parallélisation ligne/colonne, - la Figure 17 montre un exemple d'image calculée, - la Figure 18 montre un exemple d'image calculée réorganisée 25 après une parallélisation colonne/ligne, - la Figure 19 montre le résultat d'un traitement de dilatation de taille 3 selon un traitement linéaire en temps constant en deux passes, - la Figure 20 est un schéma-bloc montrant les différentes 30 étapes d'un procédé de détection de plaques d'immatriculation utilisant l'architecture du système de traitement d'image selon l'invention et un exemple d'image pouvant être soumise à un traitement de détection de plaque d'immatriculation, - la Figure 21 est un exemple d'image obtenue après 35 traitement de l'image de la Figure 20 selon le procédé conforme à l'invention, 2909204 7 - la Figure 22 est une vue agrandie de la zone détectée à la Figure 21, - la Figure 23 est un autre exemple d'image soumise à un traitement de détection de plaque d'immatriculation, 5 - la Figure 24 est une image traitée correspondant à l'image de la Figure 23 soumise à une ouverture horizontale et à un seuillage, - la Figure 25 est une image traitée correspondant à l'image de la Figure 23 soumise à une fermeture horizontale et à un seuillage, - la Figure 26 est une image traitée correspondant à 10 l'intersection des images traitées des Figures 24 et 25, - la Figure 27 est une image traitée correspondant à l'image de la Figure 26 après érosion et dilatation horizontales, - la Figure 28 est une image traitée correspondant à l'image de la Figure 27 après érosion et dilatation verticales, la zone blanche 15 indiquant la position de la plaque d'immatriculation, - la Figure 29 est un schéma-bloc montrant l'architecture d'un système de localisation de plaque d'immatriculation, et - la Figure 30 est un schéma-bloc montrant un exemple de système de traitement d'image appliqué à la détection de plaque 20 d'immatriculation. La Figure 1 montre d'une façon synthétique les principaux composants d'un système de traitement d'image selon l'invention, avec un capteur 1 ou module d'acquisition d'image, un système de contrôle 2 placé dans une zone statique, un bloc de calcul 3 placé dans une zone 25 dynamiquement reconfigurable, des mémoires 4, 5 et un système de communication 6. Le dispositif d'acquisition d'images 1 permet de créer une image numérique en niveaux de gris, comportant une matrice de m lignes et n colonnes codée sur b bits (m, n et b étant des nombres 30 entiers). Le système de contrôle 2 est chargé du transfert de données du système d'acquisition d'images 1 vers les mémoires 4, 5 ou directement vers le bloc de calcul. En même temps, le système de contrôle 2 gère le contrôle du flux vers le bloc de calcul 3 et envoie les 35 données avec un adressage spécifique en fonction des besoins de celui- ci. Le bloc de calcul 3, qui est alimenté par un flux de données 2909204 8 provenant du système de contrôle, peut être dépourvu de fonction d'adressage. En revanche, il est essentiel que le bloc de calcul 3 soit équipé d'un mécanisme de gel de l'horloge associée, afin que le système de contrôle puisse interrompre le flux de données à tout instant et 5 permette ensuite une reprise du processus de traitement sans perte de données. L'architecture de la Figure 2 diffère ainsi de celle d'un microprocesseur et se rapproche d'une structure systolique dans laquelle les données issues de la mémoire entrent dans les unités de calcul pour y 10 être traitées avant d'être renvoyées en mémoire. Chacune des unités de calcul peut être reconfigurée entre chaque traitement (type de traitement, taille de l'élément structurant, taille de l'image, fonction des unités arithmétiques/logiques). De plus, il est possible de créer plusieurs chemins de données afin de réaliser des 15 traitements différents sur une image. L'utilisation d'éléments structurants linéaires permet d'effectuer le traitement sur plusieurs lignes à la fois grâce à des systèmes de parallélisation qui alimentent les opérateurs. On décrira maintenant en référence aux Figures 2 à 4 une 20 cellule morphologique qui constitue un composant de base du bloc de calcul 3 et permet de réaliser une érosion ou une dilatation linéaire avec un élément structurant centré et une taille programmable d'élément et une taille d'image paramétrable. La Figure 2 montre la structure interne d'une cellule 25 morphologique constituant un opérateur. La cellule morphologique de la Figure 2 comprend des premières et deuxièmes unités 10, 20 qui réalisent deux passes du traitement. Chacune des première et deuxième unités 10, 20 comprend 30 trois composants principaux, à savoir : - une unité de propagation 11, respectivement 21, - une unité de gestion des effets de bords et des traitements spécifiques 12, respectivement 22, - une ligne à retard 13, respectivement 23. 35 Un circuit comparateur de détection de maximum 14, 24 est en outre inclus dans les unités 10, 20. 2909204 9 Un module tampon 30 est intercalé entre les unités 10 et 20. Le traitement lors d'une passe dans la première unité 10 ou la deuxième unité 20 se déroule en trois temps. Dans un premier temps, la sortie de l'unité de traitement 5 spécifique 12, 22 est calculée pour que l'unité de propagation 11, 21 puisse prendre en compte les effets de bords. Dans un second temps, l'unité de propagation 11, 21 propage les pixels en fonction de leurs valeurs, de la taille de l'élément structurant et de la sortie de l'unité de traitement spécifique 12, 22. Dans un dernier temps, le résultat de la 10 propagation est comparé dans les circuits 14, 24 avec les pixels sources enregistrés dans la ligne à retard 13, 23 pour conserver le maximum. La Figure 3 montre de façon plus détaillée un exemple de réalisation 100 de la première unité 10 effectuant une première passe. L'unité 100 représentée sur la Figure 3 comprend une entrée 15 de pixel qui est reliée à un circuit d'entrée 110 de l'unité de gestion des effets de bord et des traitements spécifiques, à un registre 101 lui-même relié à un circuit d'entrée 113 de l'unité de propagation, et à une ligne à retard 103. Un registre 105 stocke une valeur Nbse correspondant à la 20 moitié de la taille de l'élément structurant. Un registre 106 stocke une valeur NbColonnes correspondant au nombre de colonnes à traiter dans une ligne de calcul. La sortie du registre 106 est reliée à l'entrée d'un compteur 107 comportant une sortie de fin de ligne reliée d'une part au circuit 110 25 et d'autre part, par l'intermédiaire d'un registre retardateur 109 et d'une porte logique 112, au circuit 113. La sortie du registre 105 est reliée à l'entrée d'un compteur 108 dont une sortie est reliée à l'entrée d'une porte logique 116 dont une autre entrée est reliée à la sortie d'un circuit comparateur 115. La sortie 30 de la porte logique 116 est par ailleurs reliée au circuit 113. L'unité de gestion des effets de bord et des traitements spécifiques comprend en sortie un registre 102 qui stocke une valeur T correspondant au résultat donné pour le traitement spécifique des effets de bord. 2909204 10 L'unité de propagation comprend un registre 114 qui stocke une valeur G qui est ensuite appliquée sur une entrée du comparateur 115 et sur une entrée du comparateur 104 déterminant un maximum. La ligne à retard 103 est reliée en sortie à un registre 117 qui 5 est lui-même relié à une autre entrée du comparateur 104, dont la sortie est reliée par un registre 118 à la sortie de pixel. Les sorties des registres 101 et 102 sont reliées aux entrées du comparateur 111 dont la sortie est reliée au circuit 110. Une borne de remise à zéro du compteur 108 est reliée à une 10 entrée de la porte logique 112 et à la sortie de la porte logique 116. L'unité 100 comprend en outre un générateur d'adresse 119 du circuit tampon. Le traitement d'un pixel dure trois cycles d'horloges, mais cette structure pipeline est capable de traiter un pixel par cycle. 15 On calcule au premier cycle la valeur de T. Cette valeur est ensuite dirigée vers l'unité de propagation. Le calcul de G est fait au second cycle. Pour garantir la cadence d'un pixel par cycle, il faut prendre garde de bien travailler avec le pixel d'entrée qui correspond à la valeur de T générée au premier cycle. C'est la raison pour laquelle on 20 alimente G avec une valeur de pixel d'entrée retardée d'un cycle (présence d'un registre 101). Au troisième cycle, on calcule le maximum entre la sortie G du registre 114 et la sortie du registre 117 associé à la ligne à retard 103. La ligne à retard 103 doit avoir une taille de NbSe+2 car il faut prendre en compte les deux cycles précédents pour le calcul 25 de G. L'unité qui assure la seconde passe est presque identique à l'unité 100 qui vient d'être décrite. La seule différence réside dans le calcul de l'unité spécifique qui est réalisé sur tous les pixels d'une ligne et dans le générateur d'adresse 119 qui génère une adresse de lecture du 30 tampon au lieu d'une adresse d'écriture. Pour disposer d'une structure de donnée permettant d'avoir un retard configurable et de grande taille, une mémoire double port peut être employée. L'adresse d'écriture du pixel d'entrée est à zéro lors de la 35 phase d'initialisation de l'opérateur, et l'adresse de lecture est à l'adresse indiquée par la valeur du registre Nbse. A chaque cycle d'horloge, les 2909204 11 adresses sont incrémentées pour toujours avoir une différence entre les adresses de Nbse+1. Pour satisfaire les contraintes du fonctionnement pipeline, qui impose un retard de Nbse+2, un registre supplémentaire est présent en sortie de la mémoire. Ce registre peut être inclus à celle-ci 5 par le synthétiseur pour garantir une fréquence de fonctionnement plus importante. L'objectif est de créer un opérateur en flot de données entièrement pipeline. Il est nécessaire que les passes du traitement s'exécutent en même temps. 10 Les deux unités 10, 20 ne peuvent pas traiter à un instant donné la même ligne du fait que le traitement d'une ligne s'effectue dans les deux sens. En effet, la première passe traite une ligne de gauche à droite et la seconde passe réutilise le résultat de la première passe mais avec un balayage de droite à gauche. Pour ne pas stopper le pipeline 15 durant le traitement d'une ligne, il est alors nécessaire d'utiliser un tampon 30 composé de deux mémoires qui sont interverties à chaque arrivée d'une nouvelle ligne dans l'opérateur (mode "ping pong"). Ainsi, à un instant donné, lorsque l'unité 10 de la première passe traite la ligne "n", l'unité 20 de la deuxième passe traite la ligne "n- 20 1". Les adresses d'écritures dans le tampon 30 (pour la première passe) et de lectures du tampon 30 (pour la seconde passe) sont gérées par les générateurs d'adresses de chacune des unités 10, 20. La Figure 4 montre l'architecture complète d'un opérateur de base d'une cellule morphologique. La description des signaux employés, 25 dans le cadre de l'exemple de réalisation, est la suivante : - Les entrées : -"Nbse" : taille du demi élément structurant - "Start" : lorsqu'elle est à 1, indique que le traitement doit commencer, 30 - "Pixelin" : pixels à traiter - "Dilate/erode" : indique si l'on doit effectuer une dilatation ou une érosion. Une entrée "enable", non représentée, peut en outre permettre de geler le traitement lorsque ce signal est à zéro. 2909204 12 - Les sorties : - "Pixready : indique, lorsqu'il passe à 1, que la sortie pixelout est valide - "Lineready" : indique que la première ligne à été traitée 5 - "newline" : passe à 1 à chaque nouvelle ligne traitée -"pixelout" : pixel traité. Sur la Figure 4, on a identifié les circuits d'entrée de pixel et de sortie de pixel par les références 15 et 25 respectivement, et les lignes à retard des unités 10 et 20 par les références 13 et 23 10 respectivement. Selon l'invention, le bloc de calcul met en oeuvre des macro cellules morphologiques (MCM) qui comprennent elles-mêmes plusieurs cellules morphologiques élémentaires (CM) telles que celle qui vient d'être décrite et peuvent ainsi réaliser des opérateurs composés, tels 15 qu'un gradient morphologique, une ouverture, une fermeture, un chapeau haut de forme par fermeture ou un chapeau haut de forme par ouverture, à partir de cellules morphologiques élémentaires assurant une érosion, une dilatation ou une identité. La Figure 5 illustre de façon schématique l'architecture d'une 20 macro cellule morphologique 50 qui peut comprendre une première branche f avec plusieurs étages de cellules morphologiques 51, 52 et une deuxième branche g en parallèle avec également plusieurs étages de cellules morphologiques 61, 62. Les cellules morphologiques 51, 52 ou 61, 62 sont conçues pour 25 être chaînées et sont associées sous la forme pipeline. On peut noter que les cellules morphologiques 51, 52, 61, 62 peuvent elles-mêmes être remplacées par des macro cellules morphologiques pour réaliser de nouvelles macro cellules morphologiques constituant des opérateurs plus complexes que ceux 30 déjà évoqués. Dans tous les cas, les opérateurs plus complexes sont construits en mettant "bout à bout" des opérateurs de base, ce qui constitue une structure relativement simple à réaliser. Dans l'architecture de la Figure 5, les cellules morphologiques 51, 52, 61, 62 assurent les fonctions d'érosion, de dilatation ou d'identité 35 basées sur l'utilisation d'éléments structurants linéaires. 2909204 13 On notera que toutes les cellules morphologiques ou les macro cellules morphologiques d'un même étage (par exemple les cellules 51 et 61 ou les cellules 52 et 62) doivent avoir la même latence pour que le fonctionnement en pipeline permette la combinaison de leurs résultats, 5 par exemple dans leur bloc 70. La fonctionnalité de chaque cellule morphologique 51, 52, 61, 62 et la taille des éléments structurants sont dynamiquement programmables et les flux parallèles issus des cellules morphologiques élémentaires 51, 52, 61, 62 des différentes branches f, g sont 10 recombinés en sortie par une unité arithmétique et logique 70. Les cellules morphologiques élémentaires 51, 52, 61, 62 ainsi que les macro cellules morphologiques 50 sont munies d'un mécanisme de contrôle et de communication avec le système de contrôle permettant d'arrêter sélectivement l'exécution d'un traitement en 15 fonction de la disponibilité des données, et de reprendre ensuite le traitement sans perdre des données dans le chaînage en pipeline. La Figure 6 montre la structure électronique d'une macro cellule morphologique 150 réalisant un opérateur d'ouverture. Dans ce cas, les cellules morphologiques 151, 161 d'un premier 20 étage réalisent une érosion tandis que les cellules morphologiques 152, 162 d'un deuxième étage réalisent une dilatation. On notera que la structure électronique d'une macro cellule morphologique réalisant un opérateur de fermeture serait analogue, mais dans ce cas les cellules morphologiques 151, 161 d'un premier étage 25 réalisent une dilatation tandis que les cellules morphologiques 152, 162 d'un deuxième étage réalisent une érosion. La Figure 7 montre l'architecture générale d'une macro cellule morphologique 250 réalisant un opérateur dit chapeau haut de forme ("top hat"). 30 Dans ce cas, une première branche f comprend des cellules morphologiques 251, 252 qui, selon qu'elles assurent une érosion puis une dilatation ou une dilatation suivie d'une érosion, effectuent une ouverture ou une fermeture. Une seconde branche comprend des cellules morphologiques 35 253, 254 assurant une identité. 2909204 14 Un soustracteur 270 est disposé en sortie de la macro cellule morphologique 250. Ainsi, la macro cellule morphologique 250 prend en flux d'entrée une image, en fait une ouverture ou une fermeture (cellules 251 5 et 252) et soustrait la sortie du flux de la cellule 252 avec la sortie du flux des cellules 253 et 254 représentant l'identité. On réalise ainsi soit la fonction de chapeau haut de forme par ouverture soit la fonction chapeau haut de forme par fermeture. La séquence de traitement, c'est-à-dire l'enchaînement des cellules 251 et 10 252 doit être en rapport avec le sens de la soustraction (si la cellule 251 réalise une érosion et la cellule 252 une dilatation, ce qui représente une ouverture, il faut soustraire la sortie de la cellule 252 à la sortie de la cellule 254 représentant l'identité). La Figure 8 montre la structure électronique de la macro 15 cellule morphologique 250 de l'opérateur chapeau haut de forme. Un composant "Mempix" joue le rôle des cellules 253, 254 et constitue l'opérateur identité auquel on spécifie le nombre d'étages à couvrir (deux étages dans le cas considéré). Le composant "Mempix" peutainsi être utilisé très facilement dans une macro cellule morphologique 20 de longueur variable. On décrira maintenant de façon plus particulière le système de parallélisation des données pour le traitement en parallèle de plusieurs lignes, respectivement plusieurs colonnes. L'utilisation d'éléments structurants linéaires rend la parallé- 25 lisation des calculs relativement simple. En effet, chaque ligne de l'image est indépendante des autres, ce qui permet de traiter plusieurs lignes en même temps. Cette parallélisation ne peut être effectuée que si le flux d'image source est composé de plusieurs pixels à chaque coup d'horloge. 30 Généralement, le vecteur de pixels est un vecteur ligne. Il faut donc effectuer une transformation sur les pixels pour disposer d'un vecteur colonne dans le cas d'un traitement en ligne. Si le vecteur pixel source est un vecteur colonne, il faut le transformer en vecteur ligne pour réaliser un traitement colonne. 35 Dans le cas d'un traitement en colonne avec des vecteurs lignes de pixels, on considère que le système qui gère l'envoi du flux 2909204 15 vidéo est capable de gérer un adressage en ligne plutôt qu'en colonne, comme le montre la Figure 9. (Dans le cas d'un traitement en ligne avec des vecteurs pixels en colonne, il faut conserver l'adressage en colonne). Sur cette Figure 9, les pixels PI, P2 représentent les vecteurs de pixels 5 déjà envoyés, les pixels P3, le vecteur de pixels en cours d'envoi et les pixels restants les vecteurs de pixels à envoyer. La valeur de l'adresse dans un tel type d'adressage s'incrémente d'une taille de ligne à chaque coup d'horloge. Ce type de traitement permet de se dispenser de l'utilisation d'une transformation ligne/colonne et colonne/ligne. 10 Pour respecter la structure systolique de l'architecture selon l'invention, il faut que les transformations ligne/colonne et colonne/ligne soient faites dans le flux. La Figure 9 montre un exemple avec 3 lignes et 20 colonnes, mais ces nombres peuvent naturellement être différents. 15 Dans les Figures 10 à 18, on considère un vecteur ligne de pixels de taille 4. Les calculs sont donc réalisés sur 4 lignes à la fois, dans le cas d'un traitement en ligne. La Figure 10 montre le principe utilisé. Dans un premier temps, le tampon 31 est rempli avec les pixels à traiter. Le remplissage 20 se fait successivement dans chaque mémoire, c'est-à-dire que lorsque la première est pleine, on passe à la suivante. Dès que les quatre mémoires sont remplies, on continue cette opération dans le tampon 32 et en même temps on récupère un pixel par ligne du tampon 31 à chaque coup d'horloge. En effet, à chaque instant (une fois le système initialisé), on 25 écrit quatre pixels en ligne et on lit quatre pixels en colonne, qui sont envoyés vers quatre macro cellules morphologiques MCM1, MCM2, MCM3, MCM4. La Figure 11 montre l'architecture d'un système de conversion ligne/colonne des pixels, avec comme exemple un vecteur ligne source 30 de quatre pixels de 32 bits. Un circuit 303 constitue un générateur d'adresses et de sélection des mémoires associé aux tampons 301 et 302 et au multiplexeur 304. L'architecture mise en place dans l'exemple de la Figure 11 est 35 composée de huit mémoires de la taille d'une ligne qui constituent les tampons 301 et 302. Chaque mémoire dispose de deux ports : un port 2909204 16 d'entrée 32 bits et un port de sortie 8 bits. Pour remplir séquentiellement les huit mémoires, les entrées de sélection "chipselect" sont commandées indépendamment. La lecture des pixels se fait par paquet de quatre mémoires pour ainsi récupérer le vecteur colonne de 5 pixels. Les adresses sont incrémentées en permanence et leurs valeurs permettent de savoir quand sélectionner une mémoire et comment le multiplexeur 304 doit être configuré. Les sorties du multiplexeur 304 sont donc dirigées directement 10 vers quatre macro cellules morphologiques identiques MCM1, MCM2, MCM3, MCM4 qui réalisent le traitement sur quatre lignes à la fois. Mais il faut mettre en place une structure analogue pour reconstruire les données (toujours dans le flux) comme elles ont été octroyées à l'origine. 15 La transformation colonne/ligne des vecteurs de pixels est illustrée sur la Figure 12 avec des tampons 131, 132. La transformation colonne/ligne est analogue à la transformation ligne/colonne, sauf que l'on reçoit des pixels de lignes différentes et que l'on renvoie, au système qui a envoyé l'image 20 originale, des pixels en ligne. La Figure 12 montre le principe général de cette transformation. On considère ici un vecteur colonne de 4 pixels en entrée et un vecteur ligne de 4 pixels en sortie. Comme dans le cas de la transformation précédente, à tout instant on dispose de 4 pixels qui entrent dans le tampon 131 ou 132 et 25 de 4 pixels qui sortent du tampon 132 ou 131. La Figure 13 montre l'architecture mise en place. Les 4 pixels issus des macro cellules morphologiques MCM1, MCM2, MCM3, MCM4 sont écrits dans chaque ligne du tampon 311 ou 312. Les 4 pixels sont lus séquentiellement dans chacune des mémoires du tampon 312 ou 311. Les 30 entrées de sélection "chie select" gérant l'écriture des pixels traités commandent les mémoires par paquets de quatre (puisque l'on a vu précédemment qu'il faut écrire les pixels dans chaque ligne). Les adresses sont incrémentées en permanence et la sélection de la mémoire pour les pixels sortants est réalisée par un multiplexeur 314 8*32 bits 35 vers 32 bits. 2909204 17 Le circuit 313 est un générateur d'adresses et de sélection des mémoires. On notera qu'un multiplexeur tel que le multiplexeur 314 peut être réalisé sous une forme pipeline sur trois étages, comme représenté 5 sur la Figure 14, avec à chaque étage des registres 411 à 417 associés aux multiplexeurs élémentaires 401 à 407 pour retarder les commandes à chaque étage et garantir un bon fonctionnement du système. Sur la Figure 14, le premier étage comprend ainsi les multiplexeurs 401 à 404 auxquels sont associés en sortie les registres 411 10 à 414, le deuxième étage comprend les multiplexeurs 405, 406 auxquels sont associés en sortie les registres 415, 416 et le troisième étage comprend le multiplexeur 407 auquel est associé en sortie le registre 417. Un registre 421 assure également un retard de commande pour 15 le deuxième étage par rapport au premier étage et des registres 422, 423 assurent un retard double pour le troisième étage par rapport au premier étage. Les Figures 15 à 18 illustrent sur un exemple particulier le fonctionnement du système de parallélisation mis en oeuvre dans le 20 cadre de la présente invention. La Figure 15 montre une image source 41 avec m lignes et n colonnes (8 lignes et 8 colonnes dans l'exemple représenté), et un vecteur pixel de b bits (4 bits A0, BO, CO, DO) dans l'exemple représenté). 25 La Figure 16 montre l'image 42 en sortie du tampon de parallélisation après une parallélisation ligne/colonne. Quatre bits A0, Al, A2, A3 sont envoyés en parallèle vers quatre macro cellules morphologiques MCMO, MCM1, MCM2; MCM3. La Figure 17 montre une image calculée 43 avec en entrée 30 quatre bits A'O, Al, A'2, A'3 venant en parallèle des quatre macro cellules morphologiques MCMO, MCM1, MCM2, MCM3. La Figure 18 représente l'image calculée 44 réorganisée après une parallélisation colonne/ligne à partir de l'image calculée de la Figure 17. 35 Ainsi, les lignes de l'image sont traitées de façon indépendante. A chaque coup d'horloge, on dispose de 4 pixels de l'image 2909204 18 source 41 (Figure 15). Le système de parallélisation permet d'exploiter ce parallélisme pour traiter plusieurs lignes à la fois. Les pixels sont envoyés sous forme de vecteurs lignes (exemple : {A0, A1, A2, A31). Ces quatre pixels pourront ensuite être traités en flot de données par les 5 quatre macro cellules morphologiques présentes sur le circuit (Figure 16). En sortie des macro cellules morphologiques, la transformation inverse est effectuée afin de réorganiser les pixels comme dans l'image source (Figures 17 et 18). Pour mieux expliciter le traitement à temps constant optimisé 10 effectué dans une cellule morphologique de base, telle que la cellule morphologique 50 de la Figure 2 qui comprend un tampon 30 et deux unités fonctionnelles 10, 20 pour effectuer un traitement en deux passes sur les pixels d'une image, on a présenté sur la Figure 19 le résultat après une première passe de calcul puis après une deuxième passe de 15 calcul dans un exemple de dilatation par un élément structurant linéaire de taille 3. Dans le cadre d'un traitement linéaire en temps constant par rapport à la taille de la fenêtre utilisée, exécuté en deux passes presque identiques, on effectue un balayage dans le sens direct (de gauche à 20 droite) pour la première passe et un balayage dans le sens indirect pour la seconde passe. Chacune des passes traite la propagation des pixels et les effets de bords en fonction de la taille de l'élément structurant et de la taille de la ligne. La différence entre les passes se situe dans le traitement des effets de bords. La première passe traite les effets de 25 bords à la fin d'une ligne tandis que la seconde passe propage les effets de bords en permanence dans la ligne. Le calcul est fait de la façon suivante : . Calcul de la valeur de la propagation g(x) des pixels d'entrée sur n pixels (où N=2n+1 représente la taille de l'élément structurant), 30 suivant la condition : g(x -1) si g(x ù l) > f(x) et k qui est une vue de l'avant d'un véhicule automobile, et sur la droite une image J qui est le résultat du traitement et où seule apparaît la plaque d'immatriculation J de l'image originale I. 15 La Figure 20 montre la structure générale du système de traitement d'image selon l'invention appliqué à la détection de plaques d'immatriculation. Le signal d'entrée est appliqué à deux branches de traitement en parallèle comprenant l'une un module 81 d'ouverture de ligne suivi 20 d'un module de seuillage 83 par rapport à une valeur a et l'autre un module 82 de fermeture de ligne suivi d'un module de seuillage 84 par rapport à une valeur b. Les sorties des modules de seuillage 83, 84 sont appliquées à un module d'intersection 85 suivi d'un module 86 d'ouverture de ligne, 25 lui-même suivi d'un module 87 d'ouverture de colonne. Les différents modules morphologiques sont paramétrables afin de pouvoir traiter toutes les tailles d'image. En effet, le choix de la taille des éléments structurants est fonction de la résolution de l'image. Plus l'image est grande et plus il y aura de pixels pour représenter une plaque 30 d'immatriculation. La Figure 22 montre de façon agrandie l'exemple de plaque d'immatriculation de la Figure 21. L'alternance des pixels noirs et des pixels blancs va permettre de repérer la plaque J dans l'image I. Pour la suite, on définit la pseudo-période To, Tf comme étant 35 la distance des motifs répétitifs à une résolution donnée. 2909204 21 Si l'on part d'un exemple d'image originale telle que celle de la Figure 23, dans un premier temps il faut effectuer une ouverture avec un élément structurant (SE) linéaire de la taille d'une pseudo-période "To" pour éliminer les zones blanches de l'image (Figure 24). L'ouverture va 5 avoir pour effet de propager les valeurs foncées de l'image. Les zones blanches seront donc en partie supprimées de la plaque. On ne distinguera donc plus les caractères. Il faut ensuite effectuer la même opération avec une taille "TV mais en réalisant une fermeture sur l'image originale (Figure 25). L'effet engendré par cette opération va cette fois 10 propager les valeurs claires de l'image. Dans l'exemple représenté ici, les tailles des éléments structurants SE, déterminées par la longueur des pseudo-périodes To et Tf, sont environ égales à 15, mais pour ne pas être gêné par les caractères de faibles hauteurs, une taille 30 est utilisée, pour cet 15 exemple l'image originale étant de taille VGA (640x480 pixels). Dans un second temps, chaque flux est binarisé. Dans le cas du flux ayant subi l'ouverture, on met à un les pixels inférieurs à la valeur a des pixels des caractères. Dans le cas de la fermeture, on met à un les pixels qui ont une valeur supérieure à la valeur b des pixels de la zone 20 autour des caractères. On fait ensuite le calcul de l'intersection de ces deux flux et on obtient l'image de la Figure 26. On remarque la présence sur l'image de la Figure 26 de petites zones blanches sans intérêt. Elles peuvent être supprimées en effectuant une ouverture en ligne, pour les zones de faible longueur, et en colonne, 25 pour les zones de faible hauteur. Ces ouvertures peuvent être réalisées en utilisant une taille d'élément structurant plus grande pour la dilatation que pour l'érosion. En effet, c'est l'érosion qui va retirer l'information utile de l'image et la dilatation qui va restaurer la taille normale de la zone d'intérêt. En utilisant une taille de dilatation plus 30 grande, on s'assure que la zone d'intérêt soit correctement couverte. L'image de la Figure 27 a été obtenue en effectuant (dans le sens horizontal) une érosion de taille 60 suivie d'une dilatation de taille 80. On remarque que la zone d'intérêt peut être altérée par cette opération. Il est donc nécessaire d'effectuer le même traitement vertical 35 pour corriger cette altération et supprimer les zones restantes non 2909204 22 intéressantes. On constate sur l'image résultante de la Figure 28 que la zone d'intérêt est maintenant correctement couverte. Les seuils sont également configurables. C'est la raison pour laquelle un pré-traitement, comme un rehaussement de contraste, peut 5 être mis en place afin de simplifier leurs réglages. Le réglage des seuils peut être effectué de façon itérative. Comme le traitement est rapide, il est possible d'imaginer de tester plusieurs seuils différents jusqu'à trouver une plaque dans l'image. (A une résolution fixée, une plaque a presque toujours la même surface si 10 le point d'observation ne change pas comme dans le cas des radars situés sur les bords de la route). Un autre point important à mentionner est le fait de devoir réaliser une ouverture verticale puisqu'il est alors nécessaire de faire une rotation de 90 de l'image pour pouvoir utiliser l'algorithme 15 d'érosion/dilatation à temps constant optimisé. L'architecture mise en place utilise, pour les ouvertures/fermetures, des macro cellules morphologiques 181, 182 telles que celles introduites précédemment, et une unité de calcul 185 qui réalise le seuillage et l'intersection des flux. 20 Après intersection, il est effectué le calcul d'une ouverture en ligne et ensuite celui d'une ouverture en colonne. Cette dernière ne peut être réalisée que lorsque toute l'image est traitée ; on ne peut donc pas la chaîner directement dans le traitement. Le traitement se décompose alors en deux phases : 25 lem phase : traitement en ligne de l'image (ouverture/fermeture, seuils, intersection, ouverture) 2eme phase : traitement en colonne de l'image (ouverture). 30 Le démarrage de la seconde phase implique que le traitement de la première phase soit totalement terminé. Cette situation permet de mutualiser les ressources de l'architecture. Ainsi, il est possible de réutiliser la dernière ouverture en ligne de la première phase pour réaliser l'ouverture en colonne de la seconde phase en modifiant le 35 chemin de données. Cette modification est possible car tous les paramètres des macro cellules morphologiques (taille de l'élément 2909204 23 structurant, taille de l'image, type de traitement,...) sont stockés dans des registres. A la fin de la première phase, le chemin de données est modifié et les registres sont chargés avec les nouvelles valeurs (changement de la taille de l'image car celle-ci est retournée de 90 ou 5 270 , et de la taille des éléments structurants). La Figure 29 présente l'architecture du système précédemment décrit. On remarque la présence d'un multiplexeur 188, pour réaliser la modification du chemin de données, qui est piloté par le système de gestion de l'envoi et de la réception du flux vidéo. Les registres des 10 paramètres sont eux aussi contrôlés par le système de gestion. A la fin de la première phase, le multiplexeur 188 et les registres sont chargés avec les nouveaux paramètres du traitement en colonne. Le traitement est relancé avec cette nouvelle configuration de l'architecture, et l'image reçue correspond à l'image finale du traitement. 15 On dispose donc d'une architecture de traitement reconfigurable car les paramètres des cellules macro morphologiques, y compris la macro cellule morphologique 187 pouvant effectuer une ouverture en ligne dans une première phase et une ouverture en colonne dans une deuxième phase), et le chemin de données, peuvent être 20 modifiés pendant le traitement. La Figure 30 montre un exemple de vue fonctionnelle d'une chaîne de détection de plaque d'immatriculation. L'image à traiter peut être envoyée par un réseau 201 tel qu'Ethernet. 25 Un processeur 202 enregistre l'image reçue dans des mémoires 204. Des unités 205, 206 d'accès direct à la mémoire sont configurées par le processeur 202 pour envoyer l'image originale et pour recevoir l'image traitée par le bloc 203 de traitement matériel. Une fois 30 le traitement terminé, l'image est renvoyée par le réseau Ethernet 201 pour observation du résultat. La mémoire du processeur 202 ne peut pas envoyer à tous les cycles d'horloges des pixels à traiter, car le bus mémoire est partagé avec d'autres composants du processeur. L'architecture de détection de 35 plaque supporte sans difficulté ce problème car le traitement peut être gelé à tous moments. 2909204 24 A titre d'exemple, la fréquence de fonctionnement peut être de 50 MHz, et le traitement d'une image 356x356 peut alors être réalisé en 15 ms. REVENDICATIONS 1. Système de traitement d'image à macro cellule morphologique, caractérisé en ce qu'il comprend : - un dispositif d'acquisition d'image (1) pour créer une image numérique en niveaux de gris, comportant une matrice de m lignes et n colonnes codée sur b bits, m, n et b étant des entiers, - un ensemble de mémoires (4, 5), - un bloc de calcul (3) dynamiquement reconfigurable, pour réaliser des traitements d'image, - un système de contrôle (2) assurant le transfert de données entre le dispositif d'acquisition d'images (1) et l'ensemble de mémoire (4, 5), ainsi que la gestion du contrôle de p flux parallèles de données vers le bloc de calcul (3) et l'envoi des données avec un adressage spécifique en fonction des besoins de celui-ci, avec p entier, en ce que le bloc de calcul (3) comprend : - un nombre entier k de Macro Cellules Morphologiques (50) comprenant chacune un ensemble de cellules morphologiques élémentaires (51, 52, 61, 62) organisées en b branches (f, g) parallèles avec un nombre entier e d'étages, chaque cellule (51, 52, 61, 62) effectuant une fonction élémentaire d'érosion, de dilatation ou d'identité basée sur l'utilisation d'éléments structurants linéaires, la fonctionnalité de chaque cellule morphologique et la taille des éléments structurants étant dynamiquement programmables et les flux parallèles issus des cellules morphologiques élémentaires étant recombinés en sortie par une unité arithmétique et logique (70), - au moins un système de parallélisation des données pour le traitement en parallèle de plusieurs lignes respectivement plusieurs colonnes, comprenant deux modules tampons (301, 302 ; 311, 312) et un démultiplexeur (304, 314) chaîné en pipeline sur un ensemble de s étages synchrones pour décomposer un mot en p flux de données parallèles et reliés aux p entrées de macro cellules morphologiques (MCM1, MCM2, MCM3, MCM4), - au moins un système de reconstruction de l'image à partir d'un nombre entier z de flux parallèles de sortie des k macro cellules 2909204 26 morphologiques, comprenant deux modules tampons et un multiplexeur chaîné en pipeline sur un ensemble de s' étages et relié à des sorties synchrones des macro cellules morphologiques, et en ce que les cellules morphologiques élémentaires (51, 52, 5 61, 62) ainsi que les macro cellules morphologiques (50) sont munies d'un mécanisme de contrôle et de communication avec le système de contrôle permettant d'arrêter sélectivement l'exécution d'un traitement en fonction de la disponibilité des données, et de reprendre ensuite le traitement sans perdre de données dans le chaînage en pipeline. 10 2. Système selon la revendication 1, caractérisé en ce qu'il comprend un nombre entier f de systèmes de parallélisation des données et de systèmes de reconstruction d'image pour permettre un traitement sur f x p flux parallèles de données. 3. Système selon la revendication 1 ou la revendication 2, caractérisé en ce que les macro cellules morphologiques (50) sont organisées en pipeline sur plusieurs branches à plusieurs étages, les sorties étant combinées par une unité arithmétique et logique. 20 4. Système selon l'une quelconque des revendications 1 à 3, caractérisé en ce que chaque cellule morphologique comprend des première et deuxième unités de traitement (10, 20) pour réaliser un traitement selon des première et deuxième passes dans des sens de 25 traitement différents, et en ce qu'un module tampon (30) est interposé entre les première et deuxième unités de traitement (10, 20). 5. Système selon la revendication 4, caractérisé en ce que les première et deuxième unités de traitement (10, 20) comprennent 30 chacune une unité de propagation (11, 21), une unité de gestion des effets de bord et des traitements spécifiques (12, 22) et une ligne à retard (13, 23). 6. Système selon l'une quelconque des revendications 1 à 5, 35 caractérisé en ce qu'au moins une macro cellule morphologique (150) comprend une cellule morphologique assurant une érosion suivie d'une 15 2909204 27 cellule morphologique assurant une dilatation de manière à définir un opérateur d'ouverture. 7. Système selon l'une quelconque des revendications 1 à 6, 5 caractérisé en ce qu'au moins une macro cellule morphologique comprend une cellule morphologique assurant une dilatation suivie d'une cellule morphologique assurant une érosion de manière à définir un opérateur de fermeture. 10 8. Système selon l'une quelconque des revendications 1 à 7, caractérisé en ce qu'au moins une macro cellule morphologique (250) comprend une cellule morphologique (253, 254) assurant une fonction d'identité. 15 9. Système selon les revendications 6 à 8, caractérisé en ce qu'au moins une macro cellule morphologique (250) comprend des première et deuxième cellules morphologiques (251, 252) assurant les fonctions d'érosion et de dilatation et des troisième et quatrième cellules morphologiques (253, 254) assurant la fonction d'identité, ainsi 20 qu'un soustracteur (270) pour créer un opérateur d'ouverture de chapeau haut de forme ou un opérateur de fermeture de chapeau haut de forme. 10. Utilisation d'un système selon l'une quelconque des revendications 6 à 9 comprenant au moins deux macro cellules 25 morphologiques chaînées entre elles et combinées avec des unités arithmétiques/logiques pour réaliser des traitements d'image tels que le gradient, les filtres non linéaires, les filtres alternés séquentiels, la modification de contraste. 30 11. Système de détection d'objets munis de motifs répétitifs constitués de lettres, chiffres ou symboles, caractérisé en ce qu'il comprend un système reconfigurable de traitement d'image à macro cellule morphologique selon l'une quelconque des revendications 1 à 9 et en ce qu'il comprend un premier 35 module (180) de traitement de l'image et un deuxième module (187) de traitement de l'image. 2909204 28 12. Système selon la revendication 11, caractérisé en ce que le premier module de traitement de l'image comprend un premier module d'ouverture/fermeture (181), un deuxième module 5 d'ouverture/fermeture (182), et une unité arithmétique/logique pour réaliser des comparaisons par rapport à des seuils, un module d'intersection (185) et un module d'ouverture de ligne (187). 13. Système selon la revendication 11, caractérisé en ce que le 10 deuxième module de traitement de l'image comprend un module d'ouverture/fermeture (187). 14. Système selon l'une quelconque des revendications 11 à 13, caractérisé en ce qu'il est appliqué à la détection de plaques 15 d'immatriculation.