FR 3087558 A1 20200424 FR 1859682 A 20181019 Procédé d'extraction de caractéristiques d'une empreinte digitale représentée par une image d'entrée DOMAINE TECHNIQUE GENERAL La présente invention concerne le domaine de la biométrie, et propose en particulier un procédé d'extraction de caractéristiques recherchées d'une empreinte digitale représentée par une image d'entrée, en vue d'un traitement biométrique de l'image d'entrée. ETAT DE L'ART L'authentification/identification biométrique consiste à reconnaitre un individu sur la base de traits biométriques de cet individu tels que les empreintes 15 digitales (reconnaissance digitale), l'iris ou le visage (reconnaissance faciale). Les approches biométriques classiques utilisent les informations caractéristiques du trait biométrique extraites à partir de la biométrie acquise, appelées « features », et l'apprentissage/classification est réalisé sur la base de la comparaison de ces caractéristiques. 20 En particulier, dans le cas de la reconnaissance digitale, les images d'extrémité de doigt sont traitées de sorte à extraire les caractéristiques d'une empreinte qui peuvent être classées en trois catégories : - Le niveau 1 définit le motif général de cette empreinte (une des quatre classes : boucle à droite, boucle à gauche, arche et spirale), 25 et le tracé global des crêtes (on obtient en particulier une carte d'orientation dite « Ridge Flow Matrix », carte RFM, qui représente en chaque point de l'empreinte la direction générale de la crête). - Le niveau 2 définit les points particuliers des empreintes appelés minuties, qui constituent des « événements » le long des crêtes (fin 30 d'une crète, bifurcation, etc.). Les approches classiques de reconnaissance utilisent essentiellement ces caractéristiques. - Le niveau 3 définit des informations plus complexes telles que la forme des crêtes, les pores de la peau, des cicatrices, etc. 10 2 On appelle ainsi un « codage » le procédé d'extraction des caractéristiques d'une empreinte (sous la forme de cartes de caractéristiques, ou « feature maps »), lesquelles permettent de composer une signature appelée « template » encodant l'information utile à la phase finale de classification. Plus précisément, 5 on va réaliser la classification par comparaison des cartes de caractéristiques obtenues avec une ou plusieurs carte(s) de caractéristiques de référence associée(s) à des individus connus. On dispose aujourd'hui de « codeurs » réalisant efficacement cette opération d'extraction de caractéristiques, i.e. d'algorithmes procédant à un ensemble de traitements : - Amélioration de l'image (rehaussement de contraste, réduction du bruit, etc.) ; - Utilisation de filtres dédiés (Gabor de différentes résolutions, dérivateurs, etc.) ; - Utilisation de méthodes de décisions (seuillage de binarisation, extraction de points, etc.) Une piste est l'utilisation de réseaux de neurones, lesquels sont déjà massivement utilisés pour la classification de données. Après une phase d'apprentissage automatique (généralement supervisé, c'est-à-dire sur une base de données de référence déjà classifiées), un réseau de neurones « apprend » et devient tout seul capable d'appliquer la même classification à des données inconnues. Les réseaux de neurones à convolution, ou CNN (Convolutional Neural Networks) sont un type de réseau de neurones dans lequel le motif de connexion entre les neurones est inspiré par le cortex visuel des animaux. Ils sont ainsi particulièrement adaptés à un type particulier de classification qui est l'analyse d'image, ils permettent en effet avec efficacité la reconnaissance d'objets ou de personnes dans des images ou des vidéos, en particulier dans des applications de sécurité (surveillance automatique, détection de menace, etc.). Et, dans le domaine de l'authentification/identification biométrique, un CNN peut être entraîné à reconnaitre un individu sur la base de traits biométriques de cet individu dans la mesure où ces données sont manipulées sous formes d'images. 3 Cependant, si de telles approches ont permis des avancées majeures par exemple en reconnaissance de visages, leur application à la reconnaissance d'empreintes digitales se heurte aux spécificités inhérentes aux empreintes digitales et les performances n'ont jusqu'à ce jour pas été convaincantes. 5 Il serait par conséquent souhaitable de disposer d'une solution plus performante d'extraction de caractéristiques d'une empreinte digitale. PRESENTATION DE L'INVENTION 10 Selon un premier aspect, la présente invention concerne un procédé d'extraction de caractéristiques recherchées d'une empreinte digitale représentée par une image d'entrée, le procédé étant caractérisé en ce qu'il comprend la mise en oeuvre, par des moyens de traitement de données d'un équipement client, d'étapes de : 15 (a) Estimation d'au moins un écart angulaire candidat d'une orientation de ladite image d'entrée par rapport à une orientation de référence, au moyen d'un réseau de neurones à convolution, CNN ; (b) Recalage de ladite image d'entrée en fonction dudit écart angulaire candidat estimé, de sorte que l'orientation de l'image recalée 20 coïncide avec ladite orientation de référence ; (c) Traitement de ladite image recalée de sorte à extraire lesdites caractéristiques recherchées de l'empreinte digitale représentée par ladite image d'entrée. 25 Selon d'autres caractéristiques avantageuses et non limitatives : - ledit CNN comprend un ensemble de couches de convolution successives présentant une taille de filtre décroissante et un nombre de filtres décroissant ; - l'étape (a) comprend l'identification d'au moins une classe potentielle d'écart angulaire d'orientation de ladite image d'entrée par rapport à l'orientation de 30 référence parmi une pluralité de classes potentielles d'écart angulaire prédéterminées, chaque classe potentielle d'écart angulaire étant associée à une valeur d'écart angulaire représentative de la classe, le ou les écarts angulaires 4 candidats estimés ayant pour valeurs la ou les valeurs représentatives de la ou les classes identifiées ; - chaque classe est définie par un intervalle de valeurs d'écart angulaire ; - lesdits intervalles sont continus et forment une partition d'une plage donnée 5 d'écarts angulaires d'orientation possibles ; - lesdits intervalles sont tous de même taille ; - l'étape (a) comprend la détermination d'un vecteur d'orientation de ladite image d'entrée associant à chacune de ladite pluralité de classes potentielles d'écart angulaire un score représentatif de la probabilité d'appartenance de ladite 10 donnée d'entrée à ladite classe potentielle d'écart angulaire ; - le procédé comprend une étape (a0) préalable d'apprentissage, par des moyens de traitement de données d'un serveur, à partir d'une base d'images d'empreintes digitales déjà associées chacune à une classe de ladite pluralité de classes potentielles d'écart angulaire prédéterminées, de paramètres dudit CNN ; 15 - ledit apprentissage utilise une fonction de coût de type Sigmoïde ; - une image recalée est générée à l'étape (b) pour chaque écart angulaire candidat estimé, l'étape (c) étant mise en oeuvre pour chaque image recalée ; - ledit CNN est de type réseau résiduel ; - l'étape (c) est également mise en oeuvre sur l'image d'entrée non recalée ; 20 - lesdites caractéristiques recherchées à extraire de l'empreinte digitale représentée par ladite image d'entrée comprennent la position et/ou l'orientation de minuties ; - ladite empreinte digitale représentée par l'image d'entrée est celle d'un individu, le procédé comprenant en outre une étape (d) d'identification ou 25 d'authentification dudit individu par comparaison des caractéristiques recherchées extraites de l'empreinte digitale représentée par ladite image d'entrée, avec les caractéristiques d'empreintes digitales de référence. Selon un deuxième et un troisième aspect, l'invention propose un produit 30 programme d'ordinateur comprenant des instructions de code pour l'exécution d'un procédé selon le premier aspect d'extraction de caractéristiques recherchées d'une empreinte digitale représentée par une image d'entrée ; et un moyen de stockage lisible par un équipement informatique sur lequel un produit programme 5 d'ordinateur comprend des instructions de code pour l'exécution d'un procédé selon le premier aspect d'extraction de caractéristiques recherchées d'une empreinte digitale représentée par une image d'entrée. 5 PRESENTATION DES FIGURES D'autres caractéristiques et avantages de la présente invention apparaîtront à la lecture de la description qui va suivre d'un mode de réalisation préférentiel. Cette description sera donnée en référence aux dessins annexés dans lesquels : 10 la figure 1 est un schéma d'une architecture pour la mise en oeuvre du procédé selon l'invention ; - la figure 2 représente un exemple de réseau de neurones à convolution pour la mise en oeuvre du procédé selon l'invention ; - la figure 3 représente un exemple de vecteur d'orientation obtenu en 15 utilisant ledit réseau de neurones à convolution ; - les figures 4a-4b illustrent deux tests de performances de différents modes de réalisation d'un procédé selon l'invention. DESCRIPTION DETAILLEE 20 Principe et architecture Le présent procédé propose un procédé d'extraction de caractéristiques recherchées d'une empreinte digitale représentée par une image d'entrée. Ce 25 procédé consiste typiquement en un « codage » de l'empreinte, i.e. lesdites caractéristiques recherchées à extraire sont typiquement des caractéristiques « biométriques », c'est-à-dire les caractéristiques « finales » permettant de composer un template de l'empreinte digitale en vue de faire de classification (identification/authentification d'individu par comparaison des caractéristiques 30 recherchées extraites de l'empreinte digitale représentée par ladite image d'entrée, avec les caractéristiques d'empreintes digitales de référence, voir plus loin). A ce titre lesdites caractéristiques recherchées décrivent typiquement des minuties, c'est-à-dire qu'elles comprennent la position et/ou l'orientation des minuties. Toutefois, on comprendra que le présent procédé n'est pas limité à ce 6 mode de réalisation, et toutes les caractéristiques possiblement d'intérêt en biométrie peuvent être extraites à l'issue de ce procédé. Le présent procédé se distingue en ce qu'il propose une étape (a) d'estimation d'au moins un écart angulaire candidat d'une orientation de ladite 5 image d'entrée par rapport à une orientation de référence, au moyen d'un réseau de neurones à convolution, CNN. En effet, si la majorité des empreintes acquises le sont en environnement contrôlé et avec une orientation correcte, dans certains cas (images d'empreintes latentes par exemple sur une scène de crime, images issues d'acquisition sur 10 smartphone, etc.) l'acquisition et spécifiquement l'orientation ne sont pas maîtrisées. Et si l'extraction de caractéristiques reste possible sur une empreinte mal orientée, le matching (i.e. la mise en correspondance avec les caractéristiques d'une empreinte de référence) s'avère difficile voire impossible si les empreintes représentées par l'image d'entrée et les empreintes de référence 15 ne sont pas dans le même repère. Ainsi, lors d'une évaluation sur une base d'empreintes latentes, en utilisant un extracteur/matcher développé pour une empreinte parfaitement recalée, une détérioration des performances a été observée, passant de 36% à 0%, à mesure qu'augmentaient les différences d'orientation entre la pose des empreintes 20 latentes et l'orientation de l'image d'empreinte de référence. L'idée du présent procédé est de permettre dans une étape (b) le recalage de ladite image d'entrée en fonction dudit écart angulaire candidat estimé, de sorte que l'orientation de l'image recalée coïncide avec ladite orientation de référence. 25 Ainsi, l'extraction des caractéristiques peut être mise en oeuvre sur une image recalée « bien orientée » de sorte à obtenir un procédé robuste aux variations d'orientation. On comprend que l'orientation dite de référence correspond à une orientation arbitrairement choisie telle que celle dans laquelle le doigt est vertical 30 et dirigé vers le haut, dite « Nord-Sud », i.e. l'orientation naturelle lorsque l'on presse le doigt sur un capteur dans de bonnes conditions, correspond à celle habituelle des bases d'empreintes de référence. Pour reformuler, l'orientation de référence est préférentiellement fixe par rapport à l'orientation du doigt, en 7 particulier égale à l'orientation du doigt, mais on comprendra qu'on peut partir de n'importe quelle orientation de référence. L'écart angulaire d'orientation peut être exprimé comme une valeur d'angle, par exemple dans le sens trigonométrique (positif lorsque l'image est tournée dans 5 le sens inverse des aiguilles d'une montre, négatif sinon). Il peut être par exemple choisi dans une plage [00,3600] ou une plage [180°, +1800] de manière équivalente. Par ailleurs, une plage d'étendue 360° est préférée dans la mesure où elle correspond à l'ensemble des orientations possibles, mais on comprendra que l'on peut éventuellement travailler sur une 10 plage plus réduite correspondant à l'essentiel des orientations constatées, par exemple [-45°, +45°]. En effet, dans une application de type capteur d'empreintes digitales de smartphone, il est rarissime d'avoir un écart d'orientation de 180°, i.e. une empreinte totalement à l'envers, mais par contre il est très courant d'avoir des écarts de 10°-20° en valeur absolue par rapport à l'orientation de référence. 15 Alternativement, dans l'analyse des empreintes latentes (scène de crime par exemple), on peut trouver n'importe quelle orientation d'empreinte. On note qu'il est connu de recaler une image d'empreinte digitale en tant que « pré-traitement » par des algorithmes de traitement de l'image, mais il a été découvert qu'il était possible de réaliser ce recalage de façon très efficace avec 20 des réseaux de neurones, mais surtout sans le besoin de se servir d'une image (ou modèle) de référence. Cela s'explique par le fait que durant l'apprentissage, le CNN apprend à ne se servir que de l'information présente dans l'image qu'on souhaite recaler. En d'autres termes, le réseau n'a qu'une seule entrée. Un autre avantage de la présente approche est que les écarts d'orientation peut extrait 25 automatiquement, sans informations a priori sur leur nature, et surtout y compris lorsque l'empreinte est dégradée ou présente un type « whorl » (c'est-à-dire un verticille, appelé aussi spire ou tourbillon) qui ne permet pas de distinguer la gauche et la droite contrairement à un type « arche ». 30 Le présent procédé est mis en oeuvre au sein d'une architecture telle que représentée par la figure 1, grâce à un serveur 1 et un client 2. Le serveur 1 est l'équipement d'apprentissage (mettant en oeuvre l'apprentissage du CNN) et le client 2 est un équipement de classification (mettant en oeuvre le présent procédé 8 d'extraction de caractéristiques recherchées d'une empreinte digitale), par exemple un terminal d'un utilisateur. Il est tout à fait possible que les deux équipements 1, 2 soient confondus, mais de façon préférée le serveur 1 est celui d'un fournisseur de solution de 5 sécurité, et le client 2 un équipement grand public personnel, notamment un smartphone, un ordinateur personnel, une tablette tactile, un coffre-fort, etc. ; ou un équipement d'acquisition d'empreintes latentes. Dans tous les cas, chaque équipement 1, 2 est typiquement un équipement informatique distant relié à un réseau étendu 10 tel que le réseau internet pour 10 l'échange des données. Chacun comprend des moyens de traitement de données 11, 21 de type processeur, et des moyens de stockage de données 12, 22 telle qu'une mémoire informatique, par exemple une mémoire flash ou un disque dur. Le serveur 1 stocke une base de données d'apprentissage, i.e. un ensemble d'images d'empreintes digitales pour lesquelles on connait l'orientation 15 (voir plus loin comment la représenter) par opposition aux images dites d'entrée que l'on cherche justement à traiter. L'équipement client 2 comprend avantageusement un scanner d'empreintes digitales 23, de sorte à pouvoir directement acquérir ladite image d'entrée, typiquement pour qu'un utilisateur puisse s'authentifier. 20 CNN Un CNN contient généralement quatre types de couches traitant successivement l'information : 25 - la couche de convolution qui traite des blocs de l'entrée les uns après les autres ; - la couche non linéaire qui met en oeuvre une fonction d'activation permettant d'ajouter de la non linéarité au réseau et donc d'avoir des fonctions de décision beaucoup plus complexes ; 30 la couche de mise en commun (appelée « pooling ») qui permet de regrouper plusieurs neurones en un seul neurone ; la couche entièrement connectée qui relie tous les neurones d'une couche à tous les neurones de la couche précédente (pour de la classification). 9 Les couches non-linéaires sont souvent précédées d'une couche de normalisation en batch (« couche BN » pour batch normalization) avant chaque couche non-linéaire NL, de sorte à accélérer l'apprentissage. La fonction d'activation de couche non linéaire NL est typiquement la 5 fonction ReLU (Rectified Linear Unit, i.e. Unité de Rectification Linéaire) qui est égale à f(x) = max(0, x) et la couche de pooling (noté POOL) la plus utilisée est la fonction AvgPool qui correspond à une moyenne entre les valeurs d'un carré (on met en commun plusieurs valeurs en une seule). La couche de convolution, notée CONV, et la couche entièrement 10 connectée, notée FC, correspondent généralement à un produit scalaire entre les neurones de la couche précédente et les poids du CNN. De façon générale, un CNN comprend typiquement un ensemble de couches de convolution successives. De façon connue et comme expliquée avant, chacune desdites couches de convolution peut être suivie d'une couche de 15 normalisation en batch BN et/ou d'une couche non-linéaire, en particulier ReLU, préférentiellement les deux dans cet ordre. Les architectures typiques de CNN empilent quelques paires de couches CONV > NL puis ajoutent une couche POOL et répètent ce schéma [(CONV NL)P POOL] jusqu'à obtenir un vecteur de sortie de taille suffisamment petite, 20 puis terminent par deux couches entièrement connectées FC. Voici une architecture CNN typique : INPUT-) [[CONV NU' -> POOL' FC -> FC Avantageusement, la détermination de l'écart angulaire d'orientation est 25 vue comme une classification de l'image d'entrée, i.e. le problème est quantifié. En d'autres termes, ce le CNN n'estime pas directement des valeurs précises d'écart angulaire d'orientation candidat, mais identifie au moins une classe potentielle d'écart angulaire d'orientation de ladite image d'entrée par rapport à l'orientation de référence parmi une pluralité de classes potentielles 30 d'écart angulaire prédéterminées, chaque classe potentielle d'écart angulaire étant associée à une valeur d'écart angulaire représentative de la classe (qui sera la valeur prise en compte lorsqu'une classe sera identifiée). 10 Chaque classe est en particulier définie par un intervalle (préférentiellement continu, mais éventuellement une union discontinue de sous-intervalles continus) d'écarts angulaires, et la valeur d'écart angulaire représentative de la classe est alors typiquement la valeur moyenne de l'intervalle. Par exemple, un intervalle 5 [10°,201 peut être associé à la valeur 15°. L'ensemble des intervalles forme préférentiellement une partition d'une plage d'écarts angulaires d'orientations possibles (dont on répète qu'elle peut être d'étendue 360°, ou moins). Selon une première possibilité, les intervalles définissant les classes font tous la même taille. Par exemple on peut considérer 360 classes de 1 degrés 10 chacune (par exemple, [2°,3°] est un intervalle), ou encore 60 classes de 6 degrés chacune (par exemple [6°,12°] est un intervalle). Selon une deuxième possibilité, les intervalles définissant les classes présentent des tailles différentes, en particulier selon une densité de probabilité. Par exemple, pour une application de type capteur d'empreintes digitales de 15 smartphone il est, comme expliqué, beaucoup plus probable d'avoir un écart d'orientation de l'ordre de 10°-20° qu'un écart de 90°-100°. On peut ainsi prévoir dans une telle application des intervalles plus étroits pour les petits écarts que pour les grands écarts, par exemple d'un côté [2°,4°], et de l'autre côté [90°,105°]. L'homme du métier saura construire n'importe quel ensemble de classes d'écarts 20 d'orientation de son choix. On comprend que les valeurs estimées d'écart angulaire candidat sont des valeurs théoriques fonctions des classes, et plus précisément des valeurs d'écart angulaire représentatives des classes. Ainsi, pour une image d'empreinte donnée, le CNN identifie une ou plusieurs classes candidates, i.e. définies par un intervalle 25 susceptible de contenir la valeur réelle de l'écarte angulaire d'orientation de cette image par rapport à l'orientation de référence (on note que plusieurs classes peuvent être identifiées, voir plus loin, bien qu'en pratique l'écart angulaire réel présente une valeur unique), et pour chaque classe identifiée, on considère la valeur d'écart angulaire représentative de la classe comme un écart angulaire 30 candidat estimé à l'étape (a). Par exemple, dans un mode de réalisation à 60 classes de taille égale, avec une image d'entrée présentant un écart angulaire d'orientation réel de 11°, alors la classe correspondant à l'intervalle [6, 12°] est identifiée, et si la valeur 11 représentative de cette classe est 9° (cas de la moyenne), alors la valeur estimée de l'écart angulaire candidat est 9°. Une pluralité de classes peut être identifiée si le CNN renvoie en sortie un 5 vecteur d'orientation, i.e. un score pour chacune des classes. Plus précisément, le vecteur d'orientation d'une image d'entrée associe à chacune de la pluralité de classes un score représentatif de la probabilité d'appartenance de ladite donnée d'entrée à la classe d'écart angulaire potentiel, en d'autres termes de la probabilité que l'écart angulaire d'orientation réel appartienne à l'intervalle correspondant. Le 10 vecteur a donc une dimension égale au nombre de classes, i.e. 60 dans notre exemple. Comme l'on verra plus loin, la ou les classes identifiées peuvent être les k (par exemple deux) présentant un score le plus élevé (i.e. on identifie un nombre fixe de classes), soient toutes celles présentant un score au-delà d'un seuil 15 prédéterminé (par exemple probabilité supérieure à 10%, voire probabilité supérieure à 20%, en fonction de la flexibilité désirée et du « risque » d'avoir des images d'entrée mal orientées. Par exemple, pour un scanner d'empreintes latentes, on pourra baisser le seuil de sorte à maximiser le nombre de pics pris en considération du fait de l'éventuelle multiplicité d'orientations plausibles). 20 Ledit CNN peut être de nombreux types, et notamment être un CNN conventionnel (succession directe de couches de convolution CONV, couches de normalisation en batch BN, et couches non-linéaires NL). Selon un mode de réalisation préféré, ledit CNN est de type réseau 25 résiduel. En référence à la figure 2, un réseau résiduel, ou RESNET, est un CNN présentant au moins une « connexion résiduelle » (en anglais « skip connection » ou simplement « short-cut »), c'est-à-dire une connexion de qui vient « court-circuiter » au moins une couche, par analogie à ce qu'on constate dans les 30 neurones pyramidaux du cerveau. En effet, lorsque l'on complexifie un modèle en lui rajoutant des couches, il arrive que certaines de ces couches impactent négativement les performances du modèle. Les connexions résiduelles garantissent que à défaut d'apprendre une 12 transformation utile une couche doit au pire apprendre l'identité, cela évite de dégrader les performances des autres couches. Le principe de fonctionnement à la base des réseaux résiduels est d'additionner point par point l'entrée et la sortie d'une couche de convolution, cela permet de propager le signal des couches 5 moins profondes vers les couches les plus profondes. Ce réseau apporte d'excellents résultats en détermination d'écart angulaire d'orientation. Dans le RESNET exemple de la figure 2, de façon classique on a dans la branche principale (court-circuité par la connexion résiduelle) une pluralité de couches de convolutions chacune suivie d'une couche de normalisation en batch 10 et/ou d'une couche non-linéaire de type ReLU. La sortie de cette branche est typiquement ajoutée point par point avec l'image d'entrée (du fait de la connexion résiduelle), et passe par une dernière couche d'activation de type ReLU, avec une réduction de dimensionnalité (typiquement MaxPool). Une couche entièrement connectée (IP/FC) permet la génération du 15 vecteur d'orientation (i.e. la classification à proprement parler), et on peut utiliser une fonction de coût (« loss ») de type Sigmoïde ou Softmax pour l'apprentissage, voir plus loin. Apprentissage et classification 20 Avantageusement, le procédé commence par une étape (a0) d'apprentissage, par les moyens de traitement de données 11 du serveur 1, à partir d'une base d'images d'empreintes digitales étiquetées (i.e. pour laquelle est connue la classe d'écart angulaire d'orientation correspondante), de paramètres 25 dudit CNN. Cet apprentissage peut être réalisé de façon classique, en minimisant la fonction de coût. La principale difficulté de la présente approche est d'extraire les caractéristiques pertinentes à la détermination de l'écart angulaire attendu, tout en 30 pénalisant les caractéristiques ne permettant pas de discriminer les classes. Pour ce faire une première possibilité est d'utiliser une entropie croisée sur une Softmax comme fonction de coût, car elle permet en effet d'extraire les caractéristiques qui 13 maximisent la probabilité de l'écart angle attendu et elle pénalise la probabilité des autres écarts d'angles (i.e. des autre classes). La fonction Softmax ne privilégie qu'une seule classe, alternativement si l'on souhaite augmenter les chances d'avoir plusieurs classes identifiées, on peut 5 utiliser comme fonction de coût une Sigmoïde pour privilégier non seulement l'écart angulaire d'orientation attendu, mais aussi, avec une plus faible probabilité, ceux qui sont les plus proches. Ainsi, si l'image d'entrée est partielle et présente par exemple une partie (par exemple une boucle) pouvant se trouver par exemple à droite ou à gauche 10 d'une empreinte, le vecteur d'orientation présentera deux pics distincts de scores, voir par exemple la figure 3, de sorte à prendre en compte les deux cas possibles, qui restent chacun probables. A noter que ladite base d'images d'empreintes digitales déjà étiquetées 15 peut être obtenue par augmentation de données. Plus précisément, on part d'une base de référence dans laquelle les images sont toutes orientées conformément à l'orientation de référence (i.e. écart angulaire d'orientation nul). On génère alors artificiellement d'autres version de ces empreintes de référence en leur appliquant des rotations divers angles donnés (et on les étiquette en conséquence), de sorte 20 à créer de nouvelles images d'apprentissage présentant des écarts d'orientation variés. Par exemple, on leur applique des angles de ± [5°, 10°, 20°, 30°, 40°, 70°, 1201, de sorte à créer une nouvelle base 14 fois plus grande, pour assurer la robustesse du CNN à des défauts d'acquisition usuels. Le CNN appris peut être stocké le cas échéant sur des moyens de 25 stockage de données 22 du client 2 pour utilisation en estimation d'orientation. A noter que le même CNN peut être embarqué sur de nombreux clients 2, un seul apprentissage est nécessaire. Dans une étape (a) principale, comme expliqué au moins un écart angulaire candidat d'une orientation de ladite image d'entrée par rapport à une orientation 30 de référence est estimé par les moyens de traitement de données 21 du client 2 au moyen du CNN embarqué. Ensuite, dans une étape (b), ladite image d'entrée est recalée en fonction dudit écart angulaire candidat estimé, de sorte que l'orientation de l'image recalée 14 coïncide avec ladite orientation de référence. On note qu'une image recalée peut être générée à l'étape (b) pour chaque écart angulaire candidat estimé. L'idée est que si plusieurs pics de probabilité émergent on ne peut pas savoir lequel est le bon, et on les essaie tous. Ainsi, une des images recalées sera « bien recalée » 5 i.e. orientée conformément à l'orientation de référence. Enfin, dans une étape (c), ladite image recalée peut être traitée de sorte à extraire lesdites caractéristiques recherchées de l'empreinte digitale représentée par ladite image d'entrée, lesquelles peuvent notamment comprendre la position et/ou l'orientation de minuties. Si plusieurs images recalées ont été générées, 10 l'étape (c) est mise en oeuvre pour chacune. En particulier, cette étape (c) peut être mise en oeuvre au moyen d'un deuxième CNN dédié, prenant en entrée chaque image recalée. On parle alors de CNN de recalage pour le premier CNN, et de CNN de codage pour le deuxième. On pourra ici utiliser n'importe quel CNN de codage connu. 15 A noter que l'étape (c) peut également être mise en oeuvre systématiquement sur l'image d'entrée « telle quelle », i.e. sans recalage (en d'autres termes, l'images d'entrée est ajoutée avec les images recalées). En effet si l'image d'entrée est déjà bien orientée, le CNN peut avoir tendance à la recaler quand même, ce qui peut mener à une légère baisse de performances. 20 De façon préférée, le procédé comprend en outre une étape (d) d'identification ou d'authentification dudit individu par comparaison des caractéristiques recherchées extraites de l'empreinte digitale représentée par ladite image d'entrée, avec les caractéristiques d'empreintes digitales de référence, qui pourra être mise en oeuvre de n'importe quelle façon connue de 25 l'homme du métier. Par exemple, le client 2 peut stocker les caractéristiques des empreintes d'un ou plusieurs utilisateurs autorisés comme empreintes de référence, de sorte à gérer le déverrouillage de l'équipement client 2 (en particulier dans le cas d'une image d'entrée acquise directement par un scanner 23 intégré) : si les 30 caractéristiques extraites correspondent à celles attendues d'un utilisateur autorisé, les moyens de traitement de données 21 considèrent que l'individu qui tente de s'authentifier est autorisé, et procèdent au déverrouillage. 15 Alternativement, le client 2 peut envoyer les caractéristiques extraites à une base de données distante desdites caractéristiques d'empreintes digitales de référence, pour identification de l'individu 5 Différents tests du présent procédé ont été mis en oeuvre. Sur la figure 4a, on voit la performance du CNN de recalage en prédiction d'écart angulaire d'orientation en fonction du nombre moyen de tentatives, i.e. le nombre moyen d'images recalées obtenu. On observe une hausse de la précision jusqu'à près de 90% lorsqu'on passe d'une tentative (i.e. seul le plus fort pic est considéré), à 2.8 10 tentatives en moyenne. La figure 4b montre les performances en matching, en fonction de l'écart angulaire d'orientation réel : on voit qu'en l'absence de recalage (un seul CNN de codage utilisé directement pour l'extraction de caractéristiques), les performances s'écroulent dès quelques degrés d'écart. 15 Par contre, les diverses configurations testées, qui comprennent toutes un premier CNN de recalage et un deuxième CNN de codage, et qui diffèrent par le nombre de tentatives moyen, montrent un maintien des performances quel que soit l'écart angulaire d'orientation. Le mode de réalisation comprenant en outre l'utilisation systématique de l'images d'entrée (non recalée) est un peu moins 20 efficace pour des grands écarts d'orientation (puisqu'alors l'image d'entrée n'est pas pertinente), mais plus efficace si l'écart angulaire d'orientation est faible, ce qui reste un cas fréquent. Produit programme d'ordinateur 25 Selon un deuxième et un troisième aspects, l'invention concerne un produit programme d'ordinateur comprenant des instructions de code pour l'exécution (en particulier sur les moyens de traitement de données 11, 21 du serveur 1 et/ou du client 2) d'un procédé d'extraction de caractéristiques recherchées d'une 30 empreinte digitale représentée par une image d'entrée, ainsi que des moyens de stockage lisibles par un équipement informatique (une mémoire 12, 22 du serveur 1 et/ou du client 2) sur lequel on trouve ce produit programme d'ordinateur. REVENDICATIONS1. Procédé d'extraction de caractéristiques recherchées d'une empreinte digitale représentée par une image d'entrée, le procédé étant caractérisé en ce qu'il comprend la mise en oeuvre, par des moyens de traitement de données (21) d'un équipement client (2), d'étapes de : (a) Estimation d'au moins un écart angulaire candidat d'une orientation de ladite image d'entrée par rapport à une orientation de référence, au moyen d'un réseau de neurones à convolution, CNN ; (b) Recalage de ladite image d'entrée en fonction dudit écart angulaire candidat estimé, de sorte que l'orientation de l'image recalée coïncide avec ladite orientation de référence ; (c) Traitement de ladite image recalée de sorte à extraire lesdites caractéristiques recherchées de l'empreinte digitale représentée par ladite image d'entrée. 2. Procédé selon la revendication 1, dans lequel l'étape (a) comprend l'identification d'au moins une classe potentielle d'écart angulaire d'orientation de ladite image d'entrée par rapport à l'orientation de référence parmi une pluralité de classes potentielles d'écart angulaire prédéterminées, chaque classe potentielle d'écart angulaire étant associée à une valeur d'écart angulaire représentative de la classe, le ou les écarts angulaire candidats estimés ayant pour valeurs la ou les valeurs représentatives de la ou les classes identifiées. 3. Procédé selon la revendication 2, dans lequel chaque classe est définie par un intervalle de valeurs d'écart angulaire. 4. Procédé selon la revendication 3, dans lequel lesdits intervalles sont continus et forment une partition d'une plage donnée d'écarts angulaire d'orientation possibles. 17 5. Procédé selon la revendication 4, dans lequel lesdits intervalles sont tous de même taille. 6. Procédé selon l'une des revendications 2 à 5, dans lequel 5 l'étape (a) comprend la détermination d'un vecteur d'orientation de ladite image d'entrée associant à chacune de ladite pluralité de classes potentielles d'écart angulaire un score représentatif de la probabilité d'appartenance de ladite donnée d'entrée à ladite classe potentielle d'écart angulaire. 10 7. Procédé selon l'une des revendications 2 à 6, comprenant une étape (a0) préalable d'apprentissage, par des moyens de traitement de données (11) d'un serveur (1), à partir d'une base d'images d'empreintes digitales déjà associée chacune à une classe de ladite pluralité de classes potentielles d'écart angulaire prédéterminées, de paramètres dudit CNN. 15 8. Procédé selon la revendication 7, dans lequel ledit apprentissage utilise une fonction de coût de type Sigmoïde. 9. Procédé selon l'une des revendications 1 à 8, dans lequel une 20 image recalée est générée à l'étape (b) pour chaque écart angulaire candidat estimé, l'étape (c) étant mise en oeuvre pour chaque image recalée. 10. Procédé selon l'une des revendications 1 à 9, dans lequel ledit CNN est de type réseau résiduel. 25 11. Procédé selon l'une des revendications 1 à 10, dans lequel l'étape (c) est également mise en oeuvre sur l'image d'entrée non recalée. 12. Procédé selon l'une des revendications 1 à 11, dans lequel 30 lesdites caractéristiques recherchées à extraire de l'empreinte digitale représentée par ladite image d'entrée comprennent la position et/ou l'orientation de minuties. 18 13. Procédé selon l'une des revendications 1 à 12, dans lequel ladite empreinte digitale représentée par l'image d'entrée est celle d'un individu, le procédé comprenant en outre une étape (d) d'identification ou d'authentification dudit individu par comparaison des caractéristiques recherchées extraites de 5 l'empreinte digitale représentée par ladite image d'entrée, avec les caractéristiques d'empreintes digitales de référence. 14. Produit programme d'ordinateur comprenant des instructions de code pour l'exécution d'un procédé selon l'une des revendications 1 à 13 10 d'extraction de caractéristiques recherchées d'une empreinte digitale représentée par une image d'entrée, lorsque ledit programme est exécuté sur un ordinateur. 15. Moyen de stockage lisible par un équipement informatique sur lequel un produit programme d'ordinateur comprend des instructions de code pour 15 l'exécution d'un procédé selon l'une des revendications 1 à 13 d'extraction de caractéristiques recherchées d'une empreinte digitale représentée par une image d'entrée.