Brevet FR3069087A1 — publié le 20190118

B15791 - DD17750 1 PROCEDE DE TRAITEMENT D'UNE IMAGE Domaine La présente demande concerne un procédé de traitement d'une image au moyen d'un dispositif électronique de traitement, et un système comportant un capteur d'images et un circuit de traitement adapté à mettre en oeuvre ce procédé. Exposé de l'art antérieur Dans de nombreuses applications, on a besoin d'analyser de façon automatisée des images acquises par un capteur d'images, pour détecter la présence d'éléments caractéristiques prédéfinis dans une scène vue par le capteur. Diverses méthodes d'analyse ont été proposées. En particulier, on a proposé des méthodes d'analyse basées sur la génération de descripteurs permettant une représentation compacte de l'image, tout en préservant l'information utile pour l'application considérée. A titre d'exemple, l'article intitulé "Histograms of oriented gradients for human detection", de N. Dalal et B. Triggs (IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR'05), 2005, vol. 1, pp. 886-893), décrit une méthode d'analyse basée sur la génération de descripteurs construits à partir d'histogrammes de gradients dans différentes orientations. Cette méthode est particulièrement performante, B15791 - DD17750 2 notamment pour des applications de détection de personnes, mais a pour inconvénient que la génération des descripteurs nécessite des calculs relativement lourds, ce qui se traduit par une consommation énergétique relativement importante du dispositif de 5 traitement. D'autres méthodes d'analyse basées sur d'autres types de descripteurs ont été proposées, notamment dans l'article intitulé "ORB: An efficient alternative to SIFT or SURF", de E. Rublee, V. Rabaud, K. Konolige, et G. Bradski (International 10 conference on computer vision, 2011, pp. 2564-2571), dans l'article intitulé "Brief: Binary robust independent elementary features", de M. Calonder, V. Lepetit, C. Strecha, et P. Fua (European conference on computer vision, 2010, pp. 778-792), dans l'article intitulé "Freak: Fast retina keypoint", de A. Alahi, R. 15 Ortiz, et P. Vandergheynst (IEEE conference on Computer vision and pattern recognition, 2012, pp. 510-517), et dans l'article intitulé "BRISK: Binary robust invariant scalable keypoints", de S. Leutenegger, M. Chli, et R. Y. Siegwart (International conference on computer vision, 2011, pp. 2548-2555). Là encore, 20 bien que performantes, ces méthodes présentent l'inconvénient de nécessiter des calculs relativement complexes pour générer les descripteurs. Il serait souhaitable de pouvoir disposer d'un procédé d'analyse d'images performant, basé sur des descripteurs compacts, robustes, et plus simples à calculer que les descripteurs des méthodes connues. Résumé Ainsi, un mode de réalisation prévoit un procédé de traitement, au moyen d'un dispositif électronique, d'une image 30 comprenant une pluralité de pixels répartis en un ou plusieurs blocs comprenant chacun plusieurs cellules de plusieurs pixels, ce procédé comprenant les étapes suivantes : a) pour chaque cellule, générer n premières valeurs d'intensités de gradients d'orientations distinctes, chaque B15791 - DD17750 3 première valeur d'intensité de gradient étant une somme pondérée des valeurs des pixels de la cellule ; b) pour chaque cellule, déterminer, à partir des n premières valeurs d'intensités de gradients calculées à l'étape 5 a), une orientation de gradient principale de la cellule, et une deuxième valeur représentative de l'intensité du gradient dans cette orientation principale ; et c) pour chaque bloc, générer un descripteur de n valeurs correspondant respectivement, pour chacune des n orientations de 10 gradient, à la somme des deuxièmes valeurs des cellules du bloc ayant l'orientation de gradient considérée pour orientation de gradient principale. Selon un mode de réalisation, l'étape a) comprend une étape initiale de quantification sur 1-bit des valeurs des pixels 15 de la cellule, chaque première valeur d'intensité de gradient étant une somme pondérée des valeurs quantifiées sur 1-bit des pixels de la cellule. Selon un mode de réalisation, à l'étape a), lors de l'étape initiale de quantification sur 1-bit des valeurs des 20 pixels, des seuils de quantification distincts sont utilisés pour des cellules distinctes de l'image. Selon un mode de réalisation, à l'étape a), pour chaque cellule, le seuil de quantification utilisé lors de l'étape initiale de quantification sur 1-bit des valeurs des pixels de la 25 cellule est fonction de la valeur maximale de pixel de la cellule ou du bloc contenant la cellule. Selon un mode de réalisation, à l'étape a), les coefficients de pondération utilisés pour générer les n premières valeurs d'intensités de gradients d'orientations distinctes de 30 chaque cellule sont des coefficients binaires. Selon un mode de réalisation, à l'étape a), les coefficients de pondération utilisés pour générer les n premières valeurs d'intensités de gradients d'orientations distinctes de chaque cellule sont des coefficients non binaires. B15791 - DD17750 4 Selon un mode de réalisation, les n orientations de gradient de l'étape a) sont séparées deux à deux d'une même distance angulaire. Selon un mode de réalisation, à l'étape b), on 5 sélectionne comme orientation de gradient principale de la cellule l'orientation pour laquelle la première valeur d'intensité de gradient générée à l'étape a) est maximale. Selon un mode de réalisation, l'étape b) comprend : une étape de génération d'un vecteur B résultant d'une 10 opération de convolution entre un vecteur A de dimension n constitué par les n premières valeurs d'intensités de gradients générées à l'étape a) et un signal triangulaire ; et une étape de sélection, comme orientation de gradient principale de la cellule, de l'orientation pour laquelle la valeur 15 du vecteur B est maximale. Selon un mode de réalisation, à l'étape b), la deuxième valeur représentative de l'intensité du gradient de la cellule dans l'orientation de gradient principale de la cellule est pondérée par un coefficient fonction de la distribution des 20 valeurs des pixels de la cellule. Un autre mode de réalisation prévoit un système comportant : un capteur d'images comprenant une pluralité de pixels répartis en un ou plusieurs blocs comprenant chacun plusieurs 25 cellules de plusieurs pixels ; et un circuit de traitement adapté à mettre en oeuvre, pour chaque image acquise par le capteur, un procédé de traitement tel que défini ci-dessus. Selon un mode de réalisation, le capteur d'images est un capteur à codage temporel dans lequel chaque pixel comprend une photodiode et un comparateur comparant la tension aux bornes de la photodiode à une tension de référence, chaque pixel étant adapté, lors d'une phase d'acquisition d'une image, à s'allumer en générant une impulsion lorsque la tension aux bornes de sa photodiode atteint la tension de référence. B15791 - DD17750 5 Selon un mode de réalisation, le circuit de traitement comprend, pour chaque bloc de pixels du capteur, un circuit adapté à, lors d'une phase d'acquisition d'une image : déterminer l'instant où un premier pixel du bloc 5 s'allume ; et après une période d'inhibition prédéfinie à compter de cet instant, déterminer quels pixels du bloc se sont allumés et quels pixels du bloc ne se sont pas allumés pendant la période d'inhibition. 10 Brève description des dessins Ces caractéristiques et avantages, ainsi que d'autres, seront exposés en détail dans la description suivante de modes de réalisation particuliers faite à titre non limitatif en relation avec les figures jointes parmi lesquelles : 15 la figure 1 est une représentation schématique très simplifiée d'un exemple d'un capteur d'images ; la figure 2 est un organigramme illustrant de façon schématique des étapes d'un exemple d'un mode de réalisation d'un procédé de traitement d'une image acquise au moyen du capteur de 20 la figure 1 ; les figures aA et 3B illustrent plus en détail des exemples de mise en oeuvre d'une étape de calcul de valeurs de gradients du procédé de la figure 2 ; les figures 4A, 4B et 5 illustrent plus en détail des 25 exemples de mise en oeuvre d'une étape de sélection d'une orientation de gradient majoritaire du procédé de la figure 2 ; et la figure 6 illustre une étape de calcul d'un descripteur d'une image ou d'une portion d'une image, selon un 30 exemple d'un mode de réalisation d'un procédé de traitement d'une image acquise au moyen du capteur de la figure 1. Description détaillée De mêmes éléments ont été désignés par de mêmes références dans les différentes figures et, de plus, les diverses 35 figures ne sont pas tracées à l'échelle. Par souci de clarté, B15791 - DD17750 6 seuls les éléments utiles à la compréhension des modes de réalisation décrits ont été représentés et sont détaillés. En particulier, la réalisation des circuits internes des capteurs d'images, et notamment des pixels et des circuits périphériques 5 de contrôle et de lecture, n'a pas été détaillée, le procédé de traitement proposé étant compatible avec toutes ou la plupart des architectures connues de capteurs d'images. Par ailleurs, la réalisation de circuits de traitement adaptés à mettre en oeuvre le procédé de traitement décrit n'a pas été détaillée, la 10 réalisation de tels circuits étant à la portée de la personne du métier à partir des indications fonctionnelles de la présente description, étant entendu que les circuits de traitement peuvent être soit partiellement ou totalement intégrés au capteur d'images, soit externes au capteur d'images. 15 La figure 1 est une représentation schématique très simplifiée d'un exemple d'un capteur d'images. Le capteur de la figure 1 comprend une pluralité de pixels 101, par exemple identiques ou similaires, disposés en matrice selon des lignes et des colonnes. Lors d'une phase d'acquisition d'une image, chaque 20 pixel 101 fournit une valeur de sortie représentative d'un niveau de luminosité reçu par le pixel, l'image étant constituée par l'ensemble des valeurs de sortie des pixels du capteur. Les pixels 101 du capteur sont répartis en plusieurs cellules 103 de plusieurs pixels chacune. Les cellules 103 sont par exemple 25 identiques ou similaires. Dans l'exemple représenté, chaque cellule 103 correspond à une sous-matrice de 3*3 pixels voisins du capteur et chaque pixel 101 appartient à une seule cellule 103 du capteur. Dans l'exemple de la figure 1, et comme cela sera expliqué plus en détail ci-après, les cellules sont en outre 30 réparties en plusieurs blocs 105 de plusieurs cellules 103 chacun. Dans la suite de la description, on désignera par les mêmes références 101, 103 et 105 les pixels, cellules, et blocs de cellules du capteur, et des pixels, cellules et blocs de cellules correspondants d'une image acquise par le capteur. B15791 - DD17750 7 La figure 2 est un organigramme illustrant de façon schématique un exemple d'un mode de réalisation d'un procédé de traitement d'une image acquise par le capteur de la figure 1. La figure 2 illustre plus particulièrement trois étapes 201, 203 et 5 205 mises en oeuvre de façon successive pour chacune des cellules de l'image. Selon le type d'implémentation choisi, le procédé de la figure 2 peut être appliqué de façon simultanée à toutes les cellules de l'image ou à une partie des cellules de l'image, ou être appliqué de façon séquentielle aux différentes cellules. 10 Le procédé de la figure 2 comprend une première étape 201 (BINARIZATION) au cours de laquelle la valeur de chaque pixel de la cellule dans l'image initiale est quantifiée sur 1-bit. Le seuil de quantification sur un bit peut être commun à tous les pixels 101 de l'image. Toutefois, dans un mode de réalisation 15 préféré, le seuil de quantification est défini cellule par cellule, ou bloc de cellules par bloc de cellules. A titre d'exemple, pour chaque pixel 101 de l'image, le seuil de quantification est choisi en fonction de la valeur maximale Vmax des pixels de la cellule 103 ou du bloc de cellules 105 comprenant 20 le pixel, étant entendu que les valeurs des pixels sont d'autant plus élevées que les pixels sont lumineux, et inversement. A titre d'exemple, pour chaque cellule 103 ou bloc de cellules 105 de l'image, le seuil de quantification des pixels de la cellule ou du bloc est choisi égal à Vmax-z, où A est une valeur qui peut 25 être commune à toutes les cellules ou à tous les blocs de cellules de l'image, ou être elle-même fonction de la valeur maximale Vmax de la cellule 103 ou du bloc de cellules 105 considéré. A titre d'exemple, pour chaque cellule ou bloc de cellules, la valeur A est égale à X*Virtax, où X est un coefficient compris entre 0 et 1, 30 qui peut être commun à toutes les cellules ou à tous les blocs de cellules de l'image. Un avantage de prévoir, pour chaque pixel 101, un seuil de quantification choisi en fonction de la valeur maximale Vmax des pixels de la cellule 103 ou d'un bloc de cellules comprenant 35 le pixel, est que ceci permet d'établir une adaptation locale du B15791 - DD17750 8 seuil en fonction du niveau de luminosité local. En particulier, ceci permet de préétablir une normalisation du ou des futurs descripteurs générés pour l'image. Dans le cas d'une quantification non linéaire des pixels (codage temporel par 5 exemple), l'adaptation locale du seuil permet de définir des durées d'inhibition plus homogènes. A l'issue de l'étape 201, on a associé à chaque pixel de la cellule une valeur binaire d'un premier niveau, par exemple la valeur 0, si la valeur du pixel correspondant dans l'image 10 d'origine est inférieure au seuil de quantification du pixel, et d'un deuxième niveau, par exemple la valeur 1, si la valeur du pixel correspondant dans l'image initiale est supérieure au seuil de quantification. Le procédé de la figure 2 comprend en outre une deuxième 15 étape 203 (A.PPLY n MASKS) au cours de laquelle on calcule, pour la cellule considérée, une série de n valeurs d'intensités de gradients VG1, VGn d'orientations distinctes, où n est un entier supérieur ou égal à 2. Chacune des valeurs d'intensités de gradients VG1, . 20 VGn est le résultat d'une somme pondérée des valeurs binaires (calculées lors de l'étape 201) des pixels de la cellule. Les n jeux de coefficients de pondérations Gl, Gn, appelés masques, utilisés pour calculer respectivement les n valeurs d'intensités de gradients VG1, VGn, définissent les orientations 25 respectives des n gradients considérés. La figure 3A illustre, à titre d'exemple, un ensemble de n = 8 jeux de coefficients de pondération ou masques Gl, G2, G3, G4, G5, G6, G7 et G8 pouvant être utilisés pour calculer, pour chaque cellule 103, 8 valeurs d'intensités de gradients VG1, VG2, 30 VG3, VG4, VG5, VG6, VG7 et VG8 d'orientations distinctes. On se place ici dans une configuration du type illustré par la figure 1, dans laquelle chaque cellule 103 correspond à une sous-matrice de 3*3 pixels de l'image. Chaque jeu de coefficients de pondération comprend donc 3*3 coefficients, représentés sur la 35 figure aA sous la forme d'une matrice orientée de la même manière B15791 - DD17750 9 qu'une cellule 103 du capteur de la figure 1. Dans cet exemple, les orientations de gradient définies par les masques Gl, ... G8 sont séparées deux à deux d'une même distance angulaire de l'ordre de n/4. De plus, dans cet exemple, les coefficients de pondération 5 sont des coefficients binaires. Dans le masque Gl, les coefficients de pondération associés aux pixels de la première ligne de la cellule 103 ainsi qu'au pixel central de la cellule ont la valeur 1, et les autres coefficients de pondération ont la valeur 0. 10 Dans le masque G2, les coefficients de pondération associés aux pixels de la première colonne de la cellule 103 ainsi qu'au pixel central de la cellule ont la valeur 1, et les autres coefficients de pondération ont la valeur 0. Dans le masque G3, les coefficients de pondération 15 associés aux pixels de la dernière ligne de la cellule 103 ainsi qu'au pixel central de la cellule ont la valeur 1, et les autres coefficients de pondération ont la valeur 0. Dans le masque G4, les coefficients de pondération associés aux pixels de la dernière colonne de la cellule 103 ainsi 20 qu'au pixel central de la cellule ont la valeur 1, et les autres coefficients de pondération ont la valeur 0. Dans le masque G5, les coefficients de pondération associés aux pixels de la première colonne et de la dernière ligne de la cellule 103 ont la valeur 0, et les autres coefficients de 25 pondération ont la valeur 1. Dans le masque G6, les coefficients de pondération associés aux pixels de la dernière colonne et de la dernière ligne de la cellule 103 ont la valeur 0, et les autres coefficients de pondération ont la valeur 1. 30 Dans le masque G7, les coefficients de pondération associés aux pixels de la première ligne et de la dernière colonne de la cellule 103 ont la valeur 0, et les autres coefficients de pondération ont la valeur 1. Dans le masque G8, les coefficients de pondération 35 associés aux pixels de la première ligne et de la première colonne B15791 - DD17750 10 de la cellule 103 ont la valeur 0, et les autres coefficients de pondération ont la valeur 1. Dans l'orientation de la figure 3A, les masques Gl, G2, G3, G4, G5, G6, G7 et G8 correspondent respectivement à des 5 gradients d'orientation nord (N), ouest (0), sud (S), est (E), nord-est (NE), nord-ouest (NO), sud-ouest (SO) et sud-est (SE). On notera que les modes de réalisation décrits ne se limitent pas aux exemples de motifs de masques représentés sur la figure 3A, ni au nombre n=8 d'orientations de gradient distinctes 10 considéré dans l'exemple de la figure 3A. De préférence, les orientations de gradient définies par les masques Gl, Gn sont séparées deux à deux d'une même distance angulaire de 2n/n. Par ailleurs, les coefficients de pondération appliqués pour calculer les n valeurs d'intensité de gradient VG1, VGn 15 ne sont pas nécessairement binaires. La figure 3B illustre un autre exemple d'un ensemble de n = 8 jeux de coefficients de pondération ou masques Gl, G2, G3, G4, G5, G6, G7 et G8 pouvant être utilisés pour calculer, pour chaque cellule 103, 8 valeurs de gradient VG1, VG2, VG3, VG4, VG5, 20 VG6, VG7 et VG8 d'orientations distinctes. Les masques de la figure 3B diffèrent des masques de la figure 3A en ce que, dans l'exemple de la figure 3B, les coefficients de pondération sont des coefficients non binaires. Plus particulièrement, dans l'exemple de la figure 3B, chacun des 25 masques Gl, G2, G3, G4, G5, G6, G7 et G8 est obtenu en multipliant chaque coefficient de pondération du masque correspondant de la figure 3A par l'inverse du nombre de masques dans lesquels le coefficient considéré est non nul. Ainsi, dans chacun des masques Gl, G2, G3, G4, G5, G6, G7 et G8, le coefficient de pondération 30 associé au pixel central de la cellule a la valeur 1/8. Dans le masque Gl, les coefficients de pondération associés aux pixels de la première ligne de la cellule ont la valeur 1/3. Dans le masque G2, les coefficients de pondération associés aux pixels de la première colonne de la cellule ont la valeur 1/3. Dans le masque 35 G3, les coefficients de pondération associés aux pixels de la B15791 - DD17750 11 dernière ligne de la cellule ont la valeur 1/3. Dans le masque G4, les coefficients de pondération associés aux pixels de la dernière colonne de la cellule ont la valeur 1/3. Dans le masque G5, les coefficients de pondération associés aux trois pixels du 5 coin supérieur droit de la cellule ont la valeur 1/3. Dans le masque G6, les coefficients de pondération associés aux trois pixels du coin supérieur gauche de la cellule ont la valeur 1/3. Dans le masque G7, les coefficients de pondération associés aux trois pixels du coin inférieur gauche de la cellule ont la valeur 10 1/3. Dans le masque G8, les coefficients de pondération associés aux trois pixels du coin inférieur droit de la cellule ont la valeur 1/3. Dans chaque masque, les coefficients de pondération associés aux autres pixels ont la valeur 0. Un avantage du choix de masques de la figure 3B est qu'il permet de préétablir une 15 normalisation du ou des futurs descripteurs générés pour représenter l'image. A titre de variante, la pondération appliquée aux coefficients de chaque masque peut varier en fonction de la cellule 103 considérée ou du bloc de cellules 105 considéré. A l'issue de l'étape 203, on dispose, pour la cellule 20 considérée (après n sommations des valeurs binaires des pixels pondérées respectivement par les coefficients correspondants des n masques Gl, Gn), d'une série de n valeurs d'intensités de gradients d'orientations distinctes VG1, VGn. Pour plus de robustesse, on peut, à titre de variante, 25 écarter de ce processus les pixels dont la valeur binaire clignote, c'est-à-dire change d'état entre deux phases d'acquisition successive d'une image. En effet, pour les pixels dont le niveau d'éclairement est proche du seuil de quantification, le bruit temporel peut conduire à un clignotement 30 de la valeur binaire du pixel, pouvant conduire à faire varier l'orientation de gradient majoritaire du bloc considéré. La suppression des pixels clignotant par un filtrage approprié permet de rendre les traitements associés aux vecteurs calculés plus robustes. A titre de variante, un filtrage peut être prévu pour 35 éliminer du traitement les gradients dont l'orientation B15791 - DD17750 12 majoritaire varie de façon récurrente, par exemple de n/2 ou de n/4 sur plusieurs trames successives. Le procédé de la figure 2 comprend en outre une étape 205 (SELECT ORIENTATION) au cours de laquelle on détermine, pour 5 la cellule considérée, à partir des n valeurs d'intensités de gradients VG1, VGn calculées à l'étape 203, une orientation de gradient principale OP de la cellule, ainsi qu'une valeur Vbp représentative de l'intensité du gradient de la cellule dans cette orientation principale. 10 A titre d'exemple, lors de cette étape, on détermine quelle orientation de gradient Gi présente l'intensité VGi la plus élevée parmi les n orientations de gradient Gl, Gn considérées à l'étape précédente (avec i entier allant de 1 à n). On sélectionne alors l'orientation Gi comme orientation de gradient 15 principale OP de la cellule, et on affecte à la cellule la valeur d'intensité de gradient Vbp = VGi. Ce procédé de sélection de l'orientation de gradient principale présente l'avantage d'être particulièrement simple à mettre en oeuvre. Toutefois, un inconvénient est que des conflits peuvent apparaître lorsque, pour 20 une même cellule 103, plusieurs orientations de gradient présentent une même valeur maximale. Ceci est illustré par les figures 4A et 4B. La figure 4A représente les valeurs binaires des pixels d'une cellule 103 de l'image à analyser, déterminées à l'étape 25 201. Les pixels ayant la valeur 1 sont représentés en noir sur la figure, et les pixels ayant la valeur 0 sont représentés en blanc. La figure 4B représente, pour cette même cellule 103, les 8 valeurs d'intensités de gradients d'orientations distinctes calculées à l'étape 203 à partir des masques de la figure 3A. 30 Comme cela apparaît sur la figure 4B, les valeurs d'intensités de gradients pour les orientations nord, nord-ouest, ouest, sud-ouest et sud sont égales à 1, et les valeurs d'intensités de gradients pour les orientations nord-est, est et sud-est sont égales à 2. B15791 - DD17750 13 Ainsi, il existe un conflit entre les orientations nord-est (G5), est (G4) et sud-est (G8) pour déterminer l'orientation majoritaire. La figure 5 illustre un autre exemple d'un procédé de 5 sélection de l'orientation de gradient principale OP de la cellule, permettant de résoudre de tels conflits. Dans l'exemple de la figure 5, on réalise une opération de convolution entre un vecteur A de dimension n constitué par les n valeurs d'intensités de gradient VG1, VGn calculées à 10 l'étape 203, et un signal triangulaire T, par exemple de dimension (n/2)+1. Un exemple du vecteur A de dimension n=8 constitué par les valeurs d'intensités de gradients de l'exemple de la figure 4B est représenté en partie gauche de la figure 5, et un exemple 15 du signal triangulaire T est représenté en partie centrale de la figure 5. La partie droite de la figure 5 représente le résultat de la convolution, à savoir un vecteur B de dimension n. Une fois le vecteur B généré, on détermine la valeur B[Gi] maximale du vecteur B. On sélectionne alors l'orientation 20 Gi comme orientation de gradient principale OP de la cellule, et on affecte à la cellule la valeur d'intensité de gradient Vop = B[Gi] (où B[Gi] est la valeur du vecteur B pour l'orientation angulaire Gi). Plus généralement, toute autre méthode peut être 25 utilisée à l'étape 205 pour déterminer, à partir des n valeurs d'intensité de gradient VG1, VGn déterminées à l'étape 203, l'orientation de gradient principale OP de la cellule ainsi qu'une valeur Vop représentative de l'intensité du gradient de la cellule dans cette orientation principale. 30 Par ailleurs, la valeur Vop affectée à la cellule peut être pondérée en fonction de la distribution des valeurs binaires des pixels de la cellule, par exemple pour favoriser les distributions dans lesquelles environ la moitié des pixels est à la valeur 1 et l'autre moitié des pixels est à la valeur 0. En 35 effet, l'information de gradient dans ces cellules est B15791 - DD17750 14 généralement plus pertinente que la même information de gradient dans des cellules dans lesquelles la plupart des pixels sont à la valeur 0 ou à la valeur 1. A titre d'exemple, pour chaque cellule, la valeur Vbp 5 peut être pondérée par un coefficient cp définit comme suit : 10 nbpix_cell cellule, et où ayant la d'un nbpix_cell 1 cp = 2 2 pix = où nbpix cell désigne le nombre l'opérateur Y 1 désigne valeur binaire 1 dans la cellule. La figure 6 illustre nbpix de pixels de la le nombre de pixels une étape de génération descripteur D d'une image ou d'une portion d'une image acquise au moyen du capteur de la figure 1. A titre d'exemple, et comme l'illustre la figure 1, les cellules 103 de l'image sont réparties en plusieurs blocs 105 de plusieurs cellules 103 chacun. L'étape 15 de la figure 6 peut alors être réitérée pour chaque bloc 105, de façon à générer un descripteur D par bloc. Les blocs 105 sont par exemple identiques ou similaires. Dans l'exemple de la figure 1, chaque bloc 105 correspond à une sous-matrice de 3*3 cellules 103 voisines du capteur (soit 9*9 pixels 101 voisins). A titre 20 d'exemple, chaque cellule 103 appartient à un seul bloc 105 du capteur, comme illustré en figure 1. A titre de variante, les blocs 105 peuvent se chevaucher c'est-à-dire que chaque cellule peut appartenir à plusieurs blocs 105 distincts de façon à réaliser une analyse plus robuste aux erreurs de détection. A 25 titre de variante, un bloc 105 unique incluant toutes les cellules 103 du capteur est défini, auquel cas un unique descripteur D de l'image est généré à l'étape de la figure 6. Pour chaque bloc 105 de l'image, le descripteur D généré à l'étape de la figure 6 est constitué d'un vecteur de dimension 30 n. Le descripteur D est illustré sous la forme d'un histogramme sur la figure 6. Il comprend, pour chacune des n orientations de gradient Gl, Gn considérées à l'étape 203 du procédé de la figure 2, une valeur D[Gi], égale à la somme des valeurs Vop des B15791 - DD17750 15 cellules du bloc ayant pour orientation de gradient principale OP l'orientation Gi. A partir du ou des descripteurs D de l'image ainsi générés, diverses applications d'analyse automatisée d'images 5 peuvent être implémentées, notamment en utilisant des méthodes connues basées sur un apprentissage à partir d'images de référence préalablement acquises, par exemple des méthodes de type SVM (de l'anglais "Support Vector Machine" - machine à vecteur de support). 10 Un avantage des descripteurs D générés par le procédé décrit ci-dessus est qu'ils sont à la fois performants pour les applications usuelles d'analyse d'images, notamment pour des applications de détection de personnes, et particulièrement simples à calculer. 15 Le procédé de génération de descripteurs décrit ci- dessus peut être implémenté entièrement par des circuits de traitement externes au capteur d'images. Toutefois, de façon préférentielle, tout ou partie de ce procédé est implémentée au sein du capteur d'images lui-même, 20 ce qui permet de réduire la consommation électrique globale du système d'analyse en limitant les transferts d'images complètes entre le capteur et des circuits de traitement externes. En particulier, différentes architectures de capteurs d'images connues peuvent être adaptées pour mettre en oeuvre, au 25 sein du capteur, et notamment en amont des circuits de conversion analogique-numérique du capteur, au moins certaines des étapes du procédé décrit ci-dessus. Le procédé de génération de descripteurs décrit ci-dessus est notamment bien adapté pour une implémentation dans un 30 capteur à codage temporel des données, c'est-à-dire un capteur dans lequel chaque pixel comprend une photodiode et un comparateur comparant la tension aux bornes de la photodiode à une tension de référence. Dans un tel capteur, lors d'une phase d'acquisition d'une image, chaque pixel est d'abord réinitialisé par 35 rechargement de sa photodiode à une tension de réinitialisation. B15791 - DD17750 16 La photodiode de chaque pixel est ensuite isolée du noeud d'application de la tension de réinitialisation, et la tension aux bornes de la photodiode décroit en fonction de l'intensité lumineuse reçue par le pixel. Lorsque la tension aux bornes de la 5 photodiode d'un pixel atteint la tension de référence, la sortie du comparateur change d'état. On dit que le pixel s'allume. Le pixel génère alors une impulsion transmise à un circuit de lecture externe au pixel. L'adresse du pixel ayant émis l'impulsion est alors déterminée par le circuit de lecture. L'instant de lecture 10 de l'adresse du pixel est mémorisé et constitue la valeur de sortie du pixel. L'implémentation de l'étape 201 de quantification sur un bit des valeurs de sortie des pixels est alors particulièrement simple à mettre en oeuvre, puisqu'il suffit de fixer une période temporelle de référence définissant le seuil de 15 quantification, et de déterminer, pour chaque pixel, si le pixel s'est allumé ou ne s'est pas allumé à l'issue de la période de référence. On notera en particulier que la période de référence peut être commune à tous les pixels de l'image, ou, dans un mode de réalisation préféré être définie cellule par cellule ou bloc 20 de cellules par bloc de cellules, en fonction de l'instant d'allumage du pixel le plus lumineux de la cellule ou du bloc (ce qui revient à fixer le seuil de quantification des pixels de la cellule ou du bloc en fonction de la valeur maximale des pixels de la cellule ou du bloc tel que décrit ci-dessus). 25 Le procédé de génération de descripteurs proposé est tout particulièrement adapté pour une implémentation dans un capteur d'images à codage temporel du type décrit dans la demande de brevet français N°15/53799 déposée le 28 avril 2015 (inventeur David Dehaene). Dans un tel capteur, les pixels sont répartis en 30 blocs de plusieurs pixels. Dans chaque bloc de pixels, un circuit de contrôle local est prévu pour, lorsque le premier pixel (c'est-à-dire le pixel le plus lumineux) du bloc s'allume, inhiber l'ensemble des pixels du bloc pendant une période d'inhibition Tinh prédéterminée. Pendant la période d'inhibition, les pixels 35 du bloc peuvent s'allumer mais les requêtes sortantes sont B15791 - DD17750 17 bloquées. A l'issue de la période d'inhibition, on dispose d'une carte binaire des pixels du bloc. Autrement dit, à l'issue de la période d'inhibition, on peut affecter aux pixels allumés une première valeur binaire, par exemple la valeur 1, et aux pixels 5 encore éteints une deuxième valeur binaire, par exemple la valeur 0. On réalise ainsi une quantification sur 1-bit des pixels du bloc avec un seuil de quantification fonction de la valeur du pixel le plus lumineux du bloc. De préférence, la période d'inhibition Tinh est choisie bloc par bloc en fonction de 10 l'instant d'allumage du pixel le plus lumineux du bloc. Dans le cas où le procédé de génération de descripteurs décrit ci-dessus est implémenté au sein du capteur d'images, on peut prévoir un système d'analyse susceptible d'être réveillé graduellement en fonction de l'évolution des caractéristiques de 15 la scène. A titre d'exemple, les descripteurs D sont générés en permanence, c'est-à-dire pour chaque image acquise par le capteur, au sein du capteur lui-même. Une première analyse des descripteurs est mise en oeuvre par le capteur lui-même pour détecter un éventuel évènement remarquable dans la scène, par exemple un 20 mouvement. A titre d'exemple, une variation locale du descripteur d'un bloc 105 entre deux images successivement acquises par le capteur peut constituer un tel évènement remarquable. Pour détecter une telle variation, le capteur peut comporter des moyens de stockage interne, par exemple un circuit de stockage spécifique 25 par bloc 105, permettant de mémoriser les descripteurs d'une ou plusieurs images précédentes, ou une information liée aux descripteurs, par exemple les valeurs binaires des pixels du bloc ou l'orientation du bloc dans les images précédentes, pendant la phase d'acquisition et de traitement d'une image courante. 30 Lorsqu'un évènement remarquable est détecté, le capteur commande la mise en oeuvre d'une analyse globale de l'image. Cette analyse globale est par exemple mise en oeuvre par un circuit de traitement externe au capteur. Tous les descripteurs D générés par le capteur pour l'image courante peuvent alors être transmis au circuit de 35 traitement externe pour la mise en oeuvre de l'analyse globale. B15791 - DD17750 18 Un tel mécanisme de réveil graduel du système d'analyse présente l'avantage de limiter les transferts de données entre le capteur et les circuits de traitement externes. Des modes de réalisation particuliers ont été décrits. 5 Diverses variantes et modifications apparaîtront à la personne du métier. En particulier, les dimensions (nombre de pixels) des cellules 103 et/ou des blocs de cellules 105 peuvent bien entendu être différentes des exemples décrits ci-dessus. De plus, les données binaires générées à l'étape 201 10 peuvent être utilisées pour d'autres fonctions que la génération des descripteurs D, par exemple pour détecter des mouvements en appliquant des filtres sur plusieurs images successives. Des opérations morphologiques peuvent en outre être appliquées aux données binaires pour mettre en exergue des caractéristiques 15 particulières. En outre, dans une variante de réalisation du procédé de traitement décrit ci-dessus, l'étape 201 de binarisation des valeurs des pixels de l'image peut être omise. Dans ce cas, le calcul des valeurs d'intensités de gradients VG1, VGn (étape 20 203) est réalisé directement à partir des valeurs non binarisées des pixels de l'image. REVENDICATIONS1. Procédé de traitement, au moyen d'un dispositif électronique, d'une image comprenant une pluralité de pixels (101) répartis en un ou plusieurs blocs (105) comprenant chacun plusieurs cellules (103) de plusieurs pixels, ce procédé comprenant les étapes suivantes : a) pour chaque cellule (103), générer n premières valeurs d'intensités de gradients (VG1, VGn) d'orientations (G1, Gn) distinctes, chaque première valeur d'intensité de gradient (VGi) étant une somme pondérée des valeurs des pixels (101) de la cellule (103) ; b) pour chaque cellule (103), déterminer, à partir des n premières valeurs d'intensités de gradients (VG1, VGn) calculées à l'étape a), une orientation de gradient principale (OP) de la cellule (103), et une deuxième valeur (Vop) représentative de l'intensité du gradient dans cette orientation principale ; et c) pour chaque bloc (105), générer un descripteur (D) de n valeurs (D[G1], D[Gn]) correspondant respectivement, pour chacune des n orientations de gradient (G1, Gn), à la somme des deuxièmes valeurs (Vop) des cellules (103) du bloc (105) ayant l'orientation de gradient considérée pour orientation de gradient principale. 2. Procédé selon la revendication 1, dans lequel l'étape a) comprend une étape initiale de quantification sur 1- bit des valeurs des pixels (101) de la cellule (103), chaque première valeur d'intensité de gradient (VGi) étant une somme pondérée des valeurs quantifiées sur 1-bit des pixels (101) de la cellule. 3. Procédé selon la revendication 2, dans lequel, à l'étape a), lors de l'étape initiale de quantification sur 1-bit des valeurs des pixels (101), des seuils de quantification distincts sont utilisés pour des cellules (103) distinctes de l'image. B15791 - DD17750 20 4. Procédé selon la revendication 3, dans lequel, à l'étape a), pour chaque cellule (103), le seuil de quantification utilisé lors de l'étape initiale de quantification sur 1-bit des valeurs des pixels (101) de la cellule (103) est fonction de la 5 valeur maximale de pixel de la cellule (103) ou du bloc (105) contenant la cellule (103). 5. Procédé selon l'une quelconque des revendications 1 à 4, dans lequel, à l'étape a), les coefficients de pondération utilisés pour générer les n premières valeurs d'intensités de 10 gradients (VG1, VGn) d'orientations (G1, Gn) distinctes de chaque cellule (103) sont des coefficients binaires. 6. Procédé selon l'une quelconque des revendications 1 à 4, dans lequel, à l'étape a), les coefficients de pondération utilisés pour générer les n premières valeurs d'intensités de 15 gradients (VG1, VGn) d'orientations (G1, Gn) distinctes de chaque cellule (103) sont des coefficients non binaires. 7. Procédé selon l'une quelconque des revendications 1 à 6, dans lequel les n orientations de gradient (G1, Gn) de l'étape a) sont séparées deux à deux d'une même distance 20 angulaire. 8. Procédé selon l'une quelconque des revendications 1 à 7, dans lequel, à l'étape b), on sélectionne comme orientation de gradient principale (OP) de la cellule (103) l'orientation (Gi) pour laquelle la première valeur d'intensité de gradient (VGi) 25 générée à l'étape a) est maximale. 9. Procédé selon l'une quelconque des revendications 1 à 7, dans lequel l'étape b) comprend : une étape de génération d'un vecteur B résultant d'une opération de convolution entre un vecteur A de dimension n 30 constitué par les n premières valeurs d'intensités de gradients (VG1, VGn) générées à l'étape a) et un signal triangulaire (T) ; et une étape où l'on sélectionne comme orientation de gradient principale (OP) de la cellule (103) l'orientation (Gi) 35 pour laquelle la valeur (B[Gi]) du vecteur B est maximale. B15791 - DD17750 21 10. Procédé selon l'une quelconque des revendications 1 à 9, dans lequel, à l'étape b), la deuxième valeur (Vop) représentative de l'intensité du gradient de la cellule (103) dans l'orientation de gradient principale (OP) de la cellule (103) est 5 pondérée par un coefficient (cp) fonction de la distribution des valeurs des pixels (101) de la cellule. 11. Système comportant : un capteur d'images comprenant une pluralité de pixels (101) répartis en un ou plusieurs blocs (105) comprenant chacun 10 plusieurs cellules (103) de plusieurs pixels ; et un circuit de traitement adapté à mettre en oeuvre, pour chaque image acquise par le capteur, un procédé de traitement selon l'une quelconque des revendications 1 à 10. 12. Système selon la revendication 11, dans lequel le 15 capteur d'images est un capteur à codage temporel dans lequel chaque pixel (101) comprend une photodiode et un comparateur comparant la tension aux bornes de la photodiode à une tension de référence, chaque pixel (101) étant adapté, lors d'une phase d'acquisition d'une image, à s'allumer en générant une impulsion 20 lorsque la tension aux bornes de sa photodiode atteint la tension de référence. 13. Système selon la revendication 12, dans lequel le circuit de traitement comprend, pour chaque bloc (105) de pixels du capteur, un circuit adapté à, lors d'une phase d'acquisition 25 d'une image : déterminer l'instant où un premier pixel du bloc (105) s'allume ; et après une période d'inhibition prédéfinie à compter de cet instant, déterminer quels pixels du bloc se sont allumés et 30 quels pixels du bloc ne se sont pas allumés pendant la période d'inhibition.