FR2938680A1 - Procede de construction en temps reel de vecteurs prototypes a partir de donnees d'entree d'un processus neuronal - Google Patents
Procede de construction en temps reel de vecteurs prototypes a partir de donnees d'entree d'un processus neuronal Download PDFInfo
- Publication number
- FR2938680A1 FR2938680A1 FR0806334A FR0806334A FR2938680A1 FR 2938680 A1 FR2938680 A1 FR 2938680A1 FR 0806334 A FR0806334 A FR 0806334A FR 0806334 A FR0806334 A FR 0806334A FR 2938680 A1 FR2938680 A1 FR 2938680A1
- Authority
- FR
- France
- Prior art keywords
- pixels
- vector
- interest
- pixel
- new
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N3/00—Scanning details of television systems; Combination thereof with generation of supply voltages
- H04N3/10—Scanning details of television systems; Combination thereof with generation of supply voltages by means not exclusively optical-mechanical
- H04N3/14—Scanning details of television systems; Combination thereof with generation of supply voltages by means not exclusively optical-mechanical by means of electrically scanned solid-state devices
- H04N3/15—Scanning details of television systems; Combination thereof with generation of supply voltages by means not exclusively optical-mechanical by means of electrically scanned solid-state devices for picture signal generation
- H04N3/155—Control of the image-sensor operation, e.g. image processing within the image-sensor
- H04N3/1562—Control of the image-sensor operation, e.g. image processing within the image-sensor for selective scanning, e.g. windowing, zooming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/40—Analysis of texture
- G06T7/41—Analysis of texture based on statistical description of texture
- G06T7/44—Analysis of texture based on statistical description of texture using image operators, e.g. filters, edge density metrics or local histograms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2413—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
- G06F18/24133—Distances to prototypes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/28—Indexing scheme for image data processing or generation, in general involving image processing hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Data Mining & Analysis (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Bioinformatics & Cheminformatics (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Image Processing (AREA)
- Image Analysis (AREA)
Abstract
Le domaine technique de l'invention est celui du traitement ou de la génération de données d'image et a plus particulièrement pour objet un procédé de traitement d'images constituées de pixels générés par un capteur d'image (1) en vue d'alimenter en données d'entrée un processus neuronal (5) simulé ou câblé. Ledit procédé est caractérisé en ce qu'il comporte une étape de lecture pixel par pixel en temps réel par des moyens de traitement et une étape de construction de vecteurs prototypes pendant ledit processus de lecture pixel par pixel à partir des valeurs lues, les vecteurs prototypes constituant lesdites données d'entrée du processus neuronal (5). Il est destiné à des applications de perception globale de l'environnement et d'analyse du mouvement. Le procédé, objet de l'invention, peut également être utilisé pour des opérations classiques en traitement d'images telles que du filtrage temporel, il permet un gain en terme de temps de calcul et d'espace mémoire.
Description
Le domaine technique de l'invention est celui du traitement ou de la génération de données d'image et a plus particulièrement pour objet un procédé de construction en temps réel de vecteurs prototypes à partir de données d'entrée pour alimenter un processus neuronal. L'invention, en relation avec un procédé de traitement temps réel du signal, est associée à un processus neuronal, simulé ou câblé, pour des applications de perception globale de l'environnement et d'analyse du mouvement. La problématique du traitement en temps réel d'un signal associé à un processus neuronal connaît déjà plusieurs méthodes, notamment celle par le conditionnement de données d'un capteur dans une mémoire puis par utilisation de ces données par un programme de traitement mis en oeuvre par une structure dédiée classique de type ordinateur (microprocesseur)/algorithme. A ce titre, on connaît le brevet d'invention US5701397 qui décrit un circuit de pré-chargement d'un vecteur d'entrée d'un processus neuronal pendant une phase de reconnaissance de libres circuits neuronaux. En effet, le circuit de pré-charge est défini comme une mémoire contenue dans chaque circuit neuronal, de ce fait les mêmes données d'entrées sont mémorisés dans tous lesdits circuits neuronaux et un dispositif de signalisation de contrôle de mémoire permet, lorsque ledit circuit associé est libre, de transférer la mémoire à des ports de sortie. Pendant cette dernière phase, la mémoire du circuit ne peut alors pas être modifiée. Les procédés classiques de traitement d'image nécessitent souvent de disposer d'une zone mémoire tampon dans laquelle est sauvegardée l'image de la scène telle que matérialisée par le capteur ce qui constitue déjà une première contrainte. De plus, les algorithmes de traitement de l'information mettent en oeuvre des algorithmes complexes à base de pointeurs dans cette mémoire tampon pour en extraire l'information utile, la manipulation informatique de ces pointeurs ralenti fortement le traitement, ce qui constitue une seconde contrainte. Enfin, l'information est manipulée au minimum deux fois, la première au moment de la lecture de la donnée issue du capteur et la seconde au moment de sa manipulation par l'algorithme, ce qui constitue une troisième contrainte. De tels procédés, notamment dans le cas de traitement par réseau neuronal câblé ou programmé ont notamment l'inconvénient de manipuler plusieurs fois la même information d'une part, par une mise en mémoire de ladite information avant la construction des vecteurs prototypes puis d'autre part, par une construction du vecteur d'entrée du processus neuronal Ces procédés sont donc à l'origine de latences qui peuvent être gênantes notamment pour des applications duales embarquées et devant fonctionner en temps réel. Les ressources mémoires ainsi que les temps de calculs sont donc les inconvénients majeurs de ces procédés.
L'un des buts de l'invention est de résoudre cet inconvénient en proposant un procédé de construction en temps réel de vecteurs prototypes à partir de données d'entrée d'un processus neuronal sans manipuler deux fois les mêmes données, c'est-à-dire sans devoir mettre en mémoire toute l'information et en construisant les vecteurs prototypes au fur et à mesure de la lecture du capteur.
La solution apportée est un procédé de construction de vecteurs prototypes caractérisé en ce qu'il forme, pendant le processus de lecture série, pixel par pixel d'un capteur d'image, ou séquentiel dans une mémoire tampon, les vecteurs prototypes destinés à alimenter en données d'entrée un processus neuronal simulé ou câblé. De plus, ce procédé est caractérisé en ce que la lecture des pixels évolue à chaque coup d'horloge, un coup d'horloge correspondant à la lecture d'un pixel. Selon une caractéristique particulière l'image, représentée par une matrice[N,M] de pixels où N représente le nombre de lignes et M le nombre de colonnes de la matrice, chaque élément de la matrice ou nombre représentant la valeur d'un pixel, est lue séquentiellement par l'intermédiaire d'un balayage organisé d'une zone d'observation par une région d'intérêt matérialisée par une matrice [n, m] (avec n < N et m < M ). Par la suite, ladite image représentée par la matrice [N,M] est la zone d'observation mais il est possible de sélectionner une zone d'observation plus précise correspondant à une sous partie d'une image. Ledit balayage d'une zone d'observation est caractérisé en ce qu'il comporte une étape d'initialisation puis les étapes suivantes en boucle : déplacement de la région d'intérêt dans la zone d'observation générant une nouvelle région d'intérêt; construction d'un nouveau vecteur intermédiaire basé sur cette nouvelle 30 région d'intérêt ; construction du vecteur prototype de la nouvelle région d'intérêt à partir dudit vecteur intermédiaire associé.
Par ce procédé la région d'intérêt va virtuellement se déplacer horizontalement de gauche à droite puis successivement changer de ligne au cours de sa lecture de l'image et montre qu'il n'est pas nécessaire de disposer d'une mémoire tampon de capacité égale à celle de la zone d'observation. Ainsi, un vecteur intermédiaire va comporter en coordonnées tous les pixels de l'image compris entre le premier pixel de la région d'intérêt et le dernier pixel de cette même région d'intérêt. Le vecteur prototype associé à ce vecteur intermédiaire va alors correspondre à ce même vecteur dont les valeurs des pixels non comprises dans la région d'intérêt ont été supprimées. Lesdits vecteurs prototypes créés pourront être sauvegardés localement, si nécessaire, par un neurone, après avoir été envoyé au réseau neuronal. Plus précisément, ladite phase d'initialisation correspond à la création du premier vecteur prototype et comporte les étapes suivantes : Lecture des (n.M ù[M ù mD premiers pixels d'une image. Chaque coup d'horloge correspondant à la lecture d'un pixel, le nombre de coups d'horloge NC,k nécessaire lors de cette phase d'initialisation avant que le premier vecteur prototype soit disponible est donné par la relation : NC,k = n.M ù [M ùm] En effet, ce nombre de coups d'horloge correspond au nombre de pixels permettant la construction du premier vecteur intermédiaire et à fortiori du 20 premier vecteur prototype; Construction du premier vecteur intermédiaire, vecteur de dimension [1;(n.M ù[M ùmD], où la valeur des coordonnées (1;i) dudit vecteur intermédiaire correspond à la valeur du i1ème pixel lu au iième coup d'horloge ; Construction du premier vecteur prototype, vecteur de dimension [1;(n.m)], qui 25 correspond au vecteur intermédiaire dont les valeurs des pixels non comprises dans la région d'intérêt ont été supprimées. Selon une caractéristique particulière, le déplacement virtuel de la région d'intérêt correspond à un offset p compris entre 1 et m pixels pour un déplacement horizontal suivant une même ligne et d'un offset q compris entre 1 et n pixels pour un 30 déplacement vertical suivant une même colonne. En effet, pour certaines applications il n'est pas nécessaire de faire glisser cette région d'intérêt de pixel en pixel. Différents pas ou offsets peuvent être choisis pour les décalages virtuels en ligne et colonne.
Ces offsets peuvent être unitaires et dans ce cas, chacun des pixels sera inclus dans un vecteur prototype. Néanmoins, il peut exister des extra-pixels qui correspondent aux pixels en fin de ligne, respectivement de colonne, lorsque le nombre maximum de décalages de la région d'intérêt en colonne suivant une même ligne, respectivement lorsque le nombre maximum de décalages de la région d'intérêt en ligne suivant une même colonne, ne permet pas de lire tous les pixels en fin de ligne, respectivement de colonne. Pour former le nouveau vecteur intermédiaire suite à l'étape d'initialisation, deux cas se présentent : soit le déplacement se fait selon une même ligne d'un offset p, cela sans nécessiter un changement de ligne, soit le déplacement de la région d'intérêt nécessite de se faire verticalement car ladite région d'intérêt est arrivée à la dernière ligne, ou s'il y a existence d'extra-pixels, à la dernière ligne extra-pixels exclus. Les extras pixels, sont des pixels lus, ils entrent dans le vecteur intermédiaire mais ne serviront pas à construire un vecteur prototype.
Dans le premier cas, le nouveau vecteur intermédiaire, toujours de dimension [1;(n.M û[M ûm])], après un déplacement selon une même ligne d'un offset p, est caractérisé en ce qu'il est égal au vecteur intermédiaire précédent auquel les p premières coordonnées ont été supprimées et les p nouvelles valeurs des nouveaux pixels lus ont été ajoutées à la suite des dernières coordonnées du vecteur intermédiaire précédent. En effet, ledit vecteur intermédiaire, alimenté par la lecture des informations, c'est-à-dire les pixels, peut être considéré comme un registre mémoire circulaire pour lequel à chaque coup d'horloge, on entre un pixel en fin de registre et on en jette le premier. Après avoir épuisé toutes les possibilités de décalages en nombre de colonnes, 25 suivant une même ligne, et avant de construire le vecteur intermédiaire suivant, toujours de dimension [1;(n.Mû[MûmD], il faut positionner le pointeur de pixels au début de la prochaine ligne de la matrice [N,M] puis sauter les q lignes suivantes. II faut donc lire et charger dans le vecteur intermédiaire le nombre K d'extra-pixels. En fonction des notations précédentes, la grandeur K est définie de la manière suivante: 30 K = Modulo(M,(nb_M -1) * p+m)+m Ainsi, dans le second cas la construction d'un nouveau vecteur intermédiaire, toujours de dimension [1;(n.M û[M û mD], après un déplacement nécessitant un changement de lignes d'un offset q est caractérisé en ce qu'il comporte les étapes suivantes : Suppression automatique des K premières coordonnées du précédent vecteur intermédiaire par la lecture des K nouvelles valeurs des nouveaux pixels lus, ces dernières étant ajoutées à la suite des dernières coordonnées dudit vecteur intermédiaire précédent, avec K le nombre d'extra-pixels égal à : K = Modulo(M,(nb_M -1) * p+m)+m et nb _M le nombre maximum de décalages en colonne suivant une même ligne égal à : nb M = M ûm +1 P Suppression des K' premières coordonnées du précédent vecteur intermédiaire et ajout des K' nouvelles valeurs des nouveaux pixels lus à la suite des dernières coordonnées dudit vecteur intermédiaire précédent, avec K' le nombre de pixels correspondant aux décalages sur les indices de ligne égal à: K'=(nb_Nû1)*M et nb N le nombre maximum de décalages en ligne suivant une même colonne égal à : nb_N= Nûn +l q Lesdits extra-pixels correspondent aux pixels en fin de ligne, respectivement de colonne, lorsque le nombre maximum de décalages en colonne suivant une même ligne n'est pas un multiple de p(nb_M)+1, respectivement lorsque le nombre maximum de décalages en ligne suivant une même colonne n'est pas un multiple de q(nb_N)+1. Ces extra-pixels seront lus mais n'apparaîtront pas dans les vecteurs prototypes. En effet, le nouveau vecteur prototype de dimension [1;(n.m)]est alors construit grâce aux données du vecteur intermédiaire ainsi créé. II est en effet caractérisé en ce qu'il correspond au vecteur intermédiaire qui lui est associé dont les valeurs des pixels non comprises dans la région d'intérêt ont été supprimées par décalages successifs. Le procédé de déplacement de la région d'intérêt prend alors fin quand la zone d'observation a été complètement balayée par ladite région d'intérêt.30 D'autres avantages et caractéristiques apparaîtront dans la description de plusieurs modes de réalisation de l'invention au regard des figures annexées parmi lesquelles : - la figure 1 montre un schéma d'un dispositif apte à mettre en oeuvre l'invention, - la figure 2 montre un schéma de principe d'un réseau neuronal entièrement connecté, à trois couches : une couche d'entrée, une couche cachée, une couche de sortie, - les figures 3a et 3b montrent un schéma de principe des différentes matrices considérées, - les figures 4a, 4b, 4c et 4d présentent les principales étapes selon un mode de réalisation, - les figures 5a et 5b montrent les logigrammes d'un procédé suivant un mode de réalisation de l'invention, - les figures 6a, 6b, 6c et 6d présentent les principales étapes selon un autre mode 15 de réalisation, - les figures 7a et 7b montrent les logigrammes d'un procédé suivant un autre mode de réalisation de l'invention.
La figure 1 montre un schéma d'un dispositif permettant la mise en oeuvre de 20 l'invention. Un capteur CCD 1 est placé devant une scène à observer 2. Le capteur 1 est relié à une unité de calcul 3 recevant un flot de données 4 dudit capteur 1. Le traitement de l'information s'effectue grâce à l'utilisation d'un processus neuronal au niveau de l'unité centrale de calcul 3. Mais ce procédé peut également travailler sur la base de données archivées en mémoire tampon et être appliqué pour la 25 construction de matrices prototypes [n, m] en lieu et place d'un vecteur prototype Vpro, de dimension [1;(n.m)], La figure 2 montre un schéma de principe d'un réseau neuronal 5 composé lui-même de multiples cellules neuronales élémentaires 6. Pour alimenter un réseau neuronal 5, les données d'entrée doivent se présenter sous forme de vecteur 30 prototype 7 ou vecteur de caractéristiques. Un tel vecteur se compose de l'ensemble des éléments caractéristiques qui ont été retenus pour définir l'objet à reconnaître dans une scène. Dans sa version la plus simple, celui-ci se compose de l'ensemble des pixels d'une région d'intérêt de ladite image. Le vecteur de sortie 8 correspond donc au vecteur de l'information après traitement. Ainsi, le but de l'invention est de construire en temps réel lesdits vecteurs prototypes 7, vecteurs d'entrée du processus neuronal sans pour autant être limité à cette fonction. En effet, il permet également un gain de temps pour des opérations de filtrage d'image.
Les 3a et 3b montrent un schéma de principe des différentes matrices considérées. En effet, sur la figure 3a, une scène est matérialisée par une image 9 dans laquelle va se déplacer une région d'intérêt 10 dans le but de balayer toute ou partie de ladite image ou zone d'observation 9. Ce balayage se fera de manière organisée suivant le principe de la lecture séquentielle des pixels. En effet, ladite région d'intérêt 10 se déplacera pas à pas, d'une part horizontalement d'un offset p et d'autre part verticalement d'un offset q lorsque chaque ligne aura été lue. Plus précisément, sur la figure 3b, une image 9 est matérialisée par une matrice [7 ; 9] dont chaque coordonnée [N ; M] représente l'indice d'un pixel 11 (en réalité sa valeur). Ladite image 9 va être lue par le déplacement d'une région d'intérêt 10 matérialisée par une matrice [3 ; 4]. Ladite région d'intérêt 10 va se déplacer pas à pas horizontalement de gauche vers la droite d'un offset p puis, en fin de ligne va revenir à la ligne et se déplacer d'un offset q et ainsi de suite jusqu'à lire tous les pixels une et une seule fois. Les figures 4a, 4b, 4c et 4d présentent les principales étapes de l'invention selon un mode de réalisation, c'est-à-dire en prenant des offsets p et q chacun égaux à un. Les figures 5a et 5b illustrent quant à elles ce mode de réalisation sous forme de logigrammes. La première étape du procédé de construction de vecteurs prototypes, ou étape d'initialisation présentée dans la figure 4a, est de former le premier vecteur prototype. Ainsi, Il est dans un premier temps nécessaire de lire les premiers pixels compris entre le premier pixel de la région d'intérêt 10 (également premier pixel de l'image 9 lors de cette étape) et le dernier pixel de ladite région d'intérêt 10 dans le but de créer le premier vecteur intermédiaire V,'n, . L'ensemble de pixels 12 forme l'ensemble des coordonnées dudit vecteur intermédiaire, pour cet exemple de dimension (1 ; 22). Chaque pixel étant lu à chaque coup d'horloge, le premier vecteur prototype sera créé au bout des 22 premiers coups d'horloges. Une fois lesdits 22 premiers pixels lus, le premier vecteur intermédiaire formé est alors : V;'ä =[12345678910111213141516171819202122]. 20 25 30 Le vecteur prototype associé étant égal au vecteur intermédiaire auquel les valeurs des pixels non compris dans la région d'intérêt 10 ont été supprimées, pour cet exemple il est donc égal à : V' =[1234 10111213 19202122].
A la suite de cette étape d'initialisation, (après le 221ème coup d'horloge selon ce mode de réalisation de l'invention), et à chaque coup d'horloge, tous les pixels lus après sont inclus en série dans le vecteur intermédiaire. L'opération consiste à éliminer la première valeur de V., , puis de décaler toutes les valeurs d'un cran et acquérir la nouvelle valeur (figure 4b) : =[234567891011121314151617181920212223], puis le nouveau vecteur prototype est construit suivant le schéma précédent, c'est à dire pour cet exemple: VP , =[ 2 345 11121314 20212223]. Le nouveau vecteur prototype apparaît immédiatement au 23'ème coup d'horloge. Le nombre maximum de décalages possibles et par colonne, de la région d'intérêt dans la zone d'observation est : M-m 9-4 nb M= +1= +1=6. p 1 Pour cet exemple, le dernier décalage autorisé de type colonne fournit les vecteurs intermédiaire et prototype suivants (figure 4c): V6n, =[6789101112131415161718192021222324252627] VP , =[6789 15161718 24252627] Quand le nombre de décalages par colonne est épuisé, la région d'intérêt 10 change de ligne. Le nombre maximum de décalages possibles et par ligne, de la région d'observation q 1 Pour continuer à explorer l'image 9, les moyens de traitements utilisés dans le dispositif apte à mettre en oeuvre l'invention lisent les m pixels suivants, afin de positionner le pointeur de pixels au début de la ligne suivante. Plus précisément, ce pointeur est tout simplement l'horloge qui permet de lire les pixels un à un par coup d'horloge. Pour cet exemple (figure 4d), m=4 (les pixels 28 29 30 et 31 doivent être lus pour former le nouveau vecteur prototype): V?, =[10111213141516171819202122232425262728293031] d'intérêt dans la nb N-n _ 7-3+1=5 zone est pour cet exemple: VP0~ =[10111213 19202122 28293031] On a ainsi un délai supplémentaire de m coups d'horloge. Le déplacement de la région d'intérêt 10 s'arrête lorsque chaque pixel a été lu une et une seule fois, c'est-à-dire lorsque tous les vecteurs prototypes ont pu être créés.
Les figures 5a et 5b illustrent cet exemple sous forme de logigrammes. En effet, le fait d'avoir des offsets unitaires dans ce mode de réalisation implique qu'il n'y a pas d'extra-pixels, ce qui permet de simplifier les étapes du procédé de construction des vecteurs prototypes, d'où de schématiser le procédé par l'intermédiaire d'un logigramme simplifié.
Les figures 6a, 6b, 6c et 6d présentent les principales étapes de l'invention selon un autre mode de réalisation, c'est-à-dire en prenant des offsets p=3 et q=2. Les figures 7a et 7b illustrent quant à elles ce mode de réalisation sous forme de logigrammes. La première étape du procédé de construction de vecteurs prototypes, ou étape d'initialisation présentée dans la figure 6a, est de former le premier vecteur prototype. Ainsi, comme dans l'exemple précédent, les vecteurs intermédiaire et prototype obtenus lors de cette étapes sont égaux à : V, =[12345678910111213141516171819202122] VProt =[1234 10111213 19202122] Pour construire le deuxième vecteur prototype il faut lire les p pixels suivants, puis 20 les opérations correspondant aux décalages peuvent effectivement commencer (figure 6b). D'où les vecteurs intermédiaire et prototype suivants: V,2., =[45678910111213141516171819202122232425] VPot =[4567 13141516 22232425] Selon cet exemple, seulement deux décalages par ligne sont possibles. Avant de 25 construire le prochain vecteur intermédiaire , qui permettra de construire le vecteur prototype suivant, les moyens de traitement, dans un premier temps, positionnent le pointeur de pixels au début de la prochaine ligne puis sautent les q lignes suivantes. Lesdits moyens de traitements lisent et chargent donc dans le vecteur V,.2, le nombre K d'extra-pixels 13 où K=6 (figure 6c). Le vecteur 30 intermédiaire obtenu est alors le suivant (Suppression des 6 premières coordonnées du précédent vecteur intermédiaire et ajout des 6 nouvelles valeurs des nouveaux pixels lus à la suite des dernières coordonnées dudit vecteur intermédiaire précédent): Vm, =[10111213141516171819202122232425262728293031] Dans un deuxième temps, l'offset correspondant au décalage sur les indices de ligne doit être pris en compte. Lesdits moyens de traitements lisent et stockent donc dans le vecteur intermédiaire V., les K' pixels suivants avec K'= (q _1)* M = (2 -1) * 9 = 9 . Pour cet exemple, la lecture des 9 pixels suivants permet de positionner le pointeur au début de la première ligne à traiter. Le vecteur V;3, ainsi obtenu est donc (figure 6d): =[19202122232425262728293031323334353637383940] On en déduit alors le vecteur prototype associé : V 3 prof _ [19 20 21 22 28 29 3031 37 38 39 40] . Et ainsi de suite de proche en proche. Les figures 7a et 7b illustrent cet exemple sous forme de logigrammes. Le fait de tenir compte des offsets avec p=3 et q=2 dans ce mode de réalisation implique qu'il y a existence d'extra-pixels. Ces logigrammes illustrent donc le schéma du procédé de construction en temps réel de vecteurs prototypes à partir de données d'entrée d'un processus neuronal dans sa configuration la plus générale. De plus, un essai du procédé sur ordinateur, selon ce mode de réalisation, pour le traitement d'une zone d'observation 9 de 64x64 pixels avec une région d'intérêt 10 de 16x16 pixels, soit un vecteur prototype de 256 éléments a permis de faire évoluer le temps de calcul de 218 ms à 46 ms.
De nombreuses modifications peuvent être apportées au mode de réalisation décrit précédemment sans sortir du cadre de l'invention.
Ainsi, le déplacement de la région d'intérêt peut se faire verticalement en priorité puis horizontalement. En effet selon un mode de réalisation proposé, la région d'intérêt se déplace horizontalement d'un offset p puis change de ligne d'un offset q au fur et à mesure dudit déplacement. Ainsi, ladite région d'intérêt peut, selon un autre mode de réalisation, se déplacer verticalement d'un offset q puis changer de colonne d'un offset p au fur et à mesure dudit déplacement. De plus, il est possible de choisir une zone d'analyse particulière d'une zone d'observation, c'est-à-dire restreindre le balayage par la région d'intérêt dans la zone d'observation. En effet, dans les modes de réalisations présentés, le procédé selon l'invention, est directement lié au principe physique de lecture d'une matrice CCD ou d'un capteur CMOS. Pour ces composants, les pixels sont lus en mode série du premier au dernier, c'est-à-dire que la zone d'observation était entièrement balayée par la région d'intérêt. Ainsi, la lecture d'une image ou zone d'observation, matérialisée par une matrice [N, M ] (de N lignes et de M colonnes, pour laquelle chacune des coordonnées de cette matrice représente la valeur d'un pixel) est synchronisée par deux signaux électroniques : frame-valid (image valide) et line-valid (ligne valide). Une image CCD [n, m] se compose de n lignes de m pixels.
Ces signaux permettent par défaut de lire l'intégralité du CCD. Cependant en forçant électroniquement à zéro le signal line-valid pendant la lecture, on peut lire le CCD, donc commencer à acquérir les pixels uniquement à partir de la ligne n°x à la ligne n°y. De plus, en modifiant les instants d'activation et désactivation du signal linevalid, pour chaque ligne, on ne valide que les seuls nl pixels appartenant à la zone d'observation et ainsi le procédé n'est pas modifié. La gestion du timing du signal électronique peut être effectuée en temps réel par un circuit électronique de pilotage de type FPGA ou autre. Enfin, il peut être également envisageable de gérer la lecture sectorisée du CCD par une adaptation du procédé en utilisant des compteurs et pointeurs pour éliminer les extras-pixels n'appartenant pas à la zone d'observation. Dans ce cas, il faut adapter l'algorithme (modification mineure). Dans les deux cas, toute la CCD doit être lue et donc il n'y aura ni gain ni perte de performance. Cet algorithme a été développé dans l'hypothèse où la position de la zone d'observation doit évoluer au cours du temps et en fonction de l'application (région d'intérêt de dimension variable).25
Claims (8)
- Revendications1 Procédé de traitement d'images constituées de pixels générés par un capteur d'image (1) en vue d'alimenter en données d'entrée un processus neuronal (5) simulé ou câblé, caractérisé en ce qu'il comporte une étape de lecture pixel par pixel en temps réel par des moyens de traitement et une étape de construction de vecteurs prototypes pendant ledit processus de lecture pixel par pixel à partir des valeurs lues, les vecteurs prototypes constituant lesdites données d'entrée du processus neuronal (5).
- 2. Procédé selon la revendication 1, caractérisé en ce que la lecture des pixels évolue à chaque coup d'horloge en temps réel, un coup d'horloge correspondant à la lecture d'un pixel (11).
- 3. Procédé selon l'une quelconque des revendication 1 et 2, caractérisé en ce que l'image (9), matérialisée par une matrice[N,M], chaque chiffre représentant la valeur d'un pixel (11), est lue par l'intermédiaire d'un balayage organisé d'une région d'intérêt (10), matérialisée par une matrice [n,m], avec n < N et m < M et [n, m] une partie de [N, M] .
- 4. Procédé selon la revendication 3 caractérisé en ce que ledit balayage comporte une étape d'initialisation puis les étapes suivantes en boucle : déplacement de la région d'intérêt (10) dans la zone d'observation par lecture séquentielle des pixels générant une nouvelle région d'intérêt; construction d'un vecteur intermédiaire basé sur cette nouvelle région d'intérêt ; construction du vecteur prototype de la nouvelle région d'intérêt (10) à partir 25 dudit vecteur intermédiaire associé.
- 5. Procédé selon la revendication 4, caractérisé en ce que ladite phase d'initialisation comporte les étapes suivantes : - Lecture des (n.M û [M û mD premiers pixels d'une image, Construction du premier vecteur intermédiaire, vecteur de dimensions 30 [1; (n.M û [M -41, où la valeur des coordonnées (1;i) dudit vecteur intermédiaire correspond à la valeur du i1ème pixel lu au i1ème coup d'horloge ; 2938680 Construction du premier vecteur prototype, vecteur de dimensions [1;(n.m)], qui correspond au vecteur intermédiaire dont les valeurs des pixels non comprises dans la région d'intérêt (10) ont été supprimées:
- 6. Procédé selon l'une quelconque des revendications 4 et 5, caractérisé en ce 5 que le déplacement de la région d'intérêt (10), correspond à un offset p compris entre 1 et m pixels pour un déplacement horizontal suivant une même ligne et d'un offset q compris entre 1 et n pixels pour un déplacement vertical suivant une même colonne.
- 7. Procédé selon la revendication 6, caractérisé en ce que le nouveau vecteur 10 intermédiaire de dimensions [1; (n.M - [M - mD], après un déplacement selon une même ligne d'un offset p selon la revendication 6, est égal au vecteur intermédiaire précédent auquel les p premières coordonnées ont été supprimées et les p nouvelles valeurs des nouveaux pixels lus ont été ajoutées à la suite des dernières coordonnées du vecteur intermédiaire précédent. 15
- 8. Procédé selon l'une quelconque des revendications 6 et 7, caractérisé en ce que la construction d'un nouveau vecteur intermédiaire de dimensions [1; (n./If - [M - mD], après un déplacement nécessitant un changement de lignes d'un offset q selon la revendication 6, comporte les étapes suivantes : - Suppression des K premières coordonnées du précédent vecteur 20 intermédiaire et ajout des K nouvelles valeurs des nouveaux pixels lus à la suite des dernières coordonnées dudit vecteur intermédiaire précédent, avec K le nombre d'extra-pixels (13) égal à : K = Modulo(M, (nb - M -1) * p + m) + m et nb _M le nombre maximum de décalages en colonne suivant une même ligne égal à : nb M= M-m+1 p Suppression des K' premières coordonnées du précédent vecteur intermédiaire et ajout des K' nouvelles valeurs des nouveaux pixels lus à la suite des dernières coordonnées dudit vecteur intermédiaire précédent, avec K' le nombre de pixels correspondant au décalages sur les indices de ligne égal à: K'=(nb_N-1)*Met nb N le nombre maximum de décalages en ligne suivant une même colonne égal à : nb N= Nùn+1 9 Procédé selon l'une quelconque des revendications 4 à 8, caractérisé en ce que 5 le nouveau vecteur prototype de dimension [l;(n.m)] correspond au vecteur intermédiaire qui lui est associé dont les valeurs des pixels non comprises dans la région d'intérêt (10) ont été supprimées; 10. Procédé selon l'une quelconque des revendications 3 à 9, caractérisé en ce qu'il prend fin quand la région d'intérêt (10) à balayé l'image entière ou zone 10 d'observation (9), c'est à dire lorsque tout les pixels de l'image ont été lu au moins une fois.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0806334A FR2938680B1 (fr) | 2008-11-14 | 2008-11-14 | Procede de construction en temps reel de vecteurs prototypes a partir de donnees d'entree d'un processus neuronal |
DE102009051093A DE102009051093A1 (de) | 2008-11-14 | 2009-10-28 | Verfahren zum Aufbau von Prototypvektoren in Echtzeit als Eingangsdaten für einen neuronalen Prozess |
US12/591,216 US8422768B2 (en) | 2008-11-14 | 2009-11-12 | Method for constructing prototype vectors in real time on the basis of input data of a neural process |
GB0919863.1A GB2466343B (en) | 2008-11-14 | 2009-11-13 | Method for constructing prototype vectors in real time on the basis of input data in order to supply a neural process |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0806334A FR2938680B1 (fr) | 2008-11-14 | 2008-11-14 | Procede de construction en temps reel de vecteurs prototypes a partir de donnees d'entree d'un processus neuronal |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2938680A1 true FR2938680A1 (fr) | 2010-05-21 |
FR2938680B1 FR2938680B1 (fr) | 2012-11-16 |
Family
ID=41110706
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR0806334A Active FR2938680B1 (fr) | 2008-11-14 | 2008-11-14 | Procede de construction en temps reel de vecteurs prototypes a partir de donnees d'entree d'un processus neuronal |
Country Status (4)
Country | Link |
---|---|
US (1) | US8422768B2 (fr) |
DE (1) | DE102009051093A1 (fr) |
FR (1) | FR2938680B1 (fr) |
GB (1) | GB2466343B (fr) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102009027165A1 (de) * | 2009-06-24 | 2011-01-20 | Deutsch-Französisches Forschungsinstitut Saint-Louis | Verfahren und Vorrichtung zur Darstellung einer Abtastfunktion |
US8204927B1 (en) | 2010-03-15 | 2012-06-19 | California Institute Of Technology | System and method for cognitive processing for data fusion |
US9443281B2 (en) * | 2014-06-27 | 2016-09-13 | Intel Corporation | Pixel-based warping and scaling accelerator |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5712922A (en) * | 1992-04-14 | 1998-01-27 | Eastman Kodak Company | Neural network optical character recognition system and method for classifying characters in a moving web |
WO2005073911A1 (fr) * | 2004-01-30 | 2005-08-11 | Baumer Optronic Gmbh | Systeme de traitement image |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5299269A (en) * | 1991-12-20 | 1994-03-29 | Eastman Kodak Company | Character segmentation using an associative memory for optical character recognition |
DE69430527T2 (de) | 1994-07-28 | 2003-01-02 | International Business Machines Corp., Armonk | Schaltung für das Vorladen von Eingangsvektorbestandteilen in eine freie Neuronalschaltung während der Erkennungsphase |
US6272250B1 (en) * | 1999-01-20 | 2001-08-07 | University Of Washington | Color clustering for scene change detection and object tracking in video sequences |
US6211971B1 (en) * | 1999-03-11 | 2001-04-03 | Lockheed Martin Missiles & Space Co. | Method and apparatus to compress multi-spectral images to a single color image for display |
CN1275201C (zh) * | 2001-09-25 | 2006-09-13 | 松下电器产业株式会社 | 参数估计装置和数据匹配装置 |
US20070133902A1 (en) * | 2005-12-13 | 2007-06-14 | Portalplayer, Inc. | Method and circuit for integrated de-mosaicing and downscaling preferably with edge adaptive interpolation and color correlation to reduce aliasing artifacts |
US7944482B2 (en) * | 2006-07-28 | 2011-05-17 | Sanyo Electric Co., Ltd. | Pixel information readout method and image pickup apparatus |
-
2008
- 2008-11-14 FR FR0806334A patent/FR2938680B1/fr active Active
-
2009
- 2009-10-28 DE DE102009051093A patent/DE102009051093A1/de not_active Withdrawn
- 2009-11-12 US US12/591,216 patent/US8422768B2/en not_active Expired - Fee Related
- 2009-11-13 GB GB0919863.1A patent/GB2466343B/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5712922A (en) * | 1992-04-14 | 1998-01-27 | Eastman Kodak Company | Neural network optical character recognition system and method for classifying characters in a moving web |
WO2005073911A1 (fr) * | 2004-01-30 | 2005-08-11 | Baumer Optronic Gmbh | Systeme de traitement image |
Non-Patent Citations (1)
Title |
---|
SCHÀFTER UND KIRCHHOFF: "CCD-Zeilenkamera Digital s/w SK7500CTO", TECHNISCHES HANDBUCH, April 2005 (2005-04-01), Hamburg, pages 1 - 14, XP002548161 * |
Also Published As
Publication number | Publication date |
---|---|
GB2466343B (en) | 2014-07-16 |
GB2466343A (en) | 2010-06-23 |
GB0919863D0 (en) | 2009-12-30 |
US8422768B2 (en) | 2013-04-16 |
DE102009051093A1 (de) | 2010-06-10 |
FR2938680B1 (fr) | 2012-11-16 |
US20100166297A1 (en) | 2010-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zhou et al. | Improving multispectral pedestrian detection by addressing modality imbalance problems | |
EP3660849B1 (fr) | Circuit mémoire adapté à mettre en oeuvre des opérations de calcul | |
EP0322966B1 (fr) | Circuit et structure de réseau de neurones | |
EP1259939B1 (fr) | Procede et dispositif de perception automatique | |
FR2586838A1 (fr) | Processeur d'elimination de faces cachees pour la synthese d'images a trois dimensions | |
FR3050846A1 (fr) | Dispositif et procede de distribution de donnees de convolution d'un reseau de neurones convolutionnel | |
Vankadari et al. | Unsupervised monocular depth estimation for night-time images using adversarial domain feature adaptation | |
FR2573888A1 (fr) | Systeme pour la transmission simultanee de blocs de donnees ou de vecteurs entre une memoire et une ou plusieurs unites de traitement de donnees | |
CN110309836A (zh) | 图像特征提取方法、装置、存储介质和设备 | |
CN103632398B (zh) | 产生全视差的数字全息图 | |
FR2938680A1 (fr) | Procede de construction en temps reel de vecteurs prototypes a partir de donnees d'entree d'un processus neuronal | |
CA2370693C (fr) | Systeme et methode de pilotage d'un processus decisionnel lors de la poursuite d'un but globale dans un domaine d'application determine | |
Nam et al. | Neural image representations for multi-image fusion and layer separation | |
EP0275765A1 (fr) | Circuit intégré de traitement numérique de signaux | |
WO2018197693A1 (fr) | Procédé et dispositif automatisés aptes à assurer l'invariance perceptive d'un évènement spatio-temporel dynamiquement en vue d'en extraire des représentations sémantiques unifiées | |
CA2731497A1 (fr) | Circuit de traitement de donnees a processeur elementaire, ensemble de traitement de donnees comportant une grille de tels circuits, et capteur matriciel comportant un tel ensemble | |
WO2007135309A2 (fr) | Procede de codage et systeme d'affichage sur un ecran d'une maquette numerique d'un objet sous forme d'une image de synthese | |
KR20200129957A (ko) | 피처맵 데이터에 대한 압축을 수행하는 뉴럴 네트워크 프로세서 및 이를 포함하는 컴퓨팅 시스템 | |
EP0540402A1 (fr) | Réseau de résistances binaires et son utilisation pour l'étiquetage de composantes connexes d'images numérisées en vision artificielle | |
FR3113159A1 (fr) | Architecture de calcul reconfigurable pour la mise en œuvre de réseaux de neurones artificiels. | |
EP0489885A1 (fr) | Systeme de calcul neuronal | |
WO2014048886A1 (fr) | Dispositif de decomposition d'images par transformee en ondelettes | |
FR2821459A1 (fr) | Procede et dispositif de reperage d'un objet par sa forme, sa dimension et/ou son orientation | |
Wu et al. | Evolving neuromorphic systems on the ethereum smart contract platform | |
EP0432008A1 (fr) | Réseau neuronal électronique et procédé d'apprentissage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PLFP | Fee payment |
Year of fee payment: 8 |
|
PLFP | Fee payment |
Year of fee payment: 9 |
|
PLFP | Fee payment |
Year of fee payment: 10 |
|
PLFP | Fee payment |
Year of fee payment: 11 |
|
PLFP | Fee payment |
Year of fee payment: 12 |
|
PLFP | Fee payment |
Year of fee payment: 13 |
|
PLFP | Fee payment |
Year of fee payment: 14 |
|
PLFP | Fee payment |
Year of fee payment: 15 |
|
PLFP | Fee payment |
Year of fee payment: 16 |