FR 3089662 A1 20200612 FR 1872352 A 20181205 Description Titre de l'invention : Procédé de reconnaissance d'objets tels que des panneaux de signalisation au moyen d'une caméra embarquée dans un véhicule automobile [0001] La présente invention se rapporte au domaine de la détection et de la reconnaissance d'objets dans l'environnement d'un véhicule automobile. Elle vise en particulier un procédé améliorant la reconnaissance en temps réel de panneaux de signalisation figurant sur des images captées par une caméra embarquée dans un véhicule automobile. [0002] Les véhicules automobiles sont de plus en plus équipés de systèmes d'aides à la conduite sophistiqués, communément désignés sous l'acronyme anglophone ADAS (pour « Advanced Driver Assistant Systems »), ces systèmes ayant pour objectif d'améliorer la sécurité et/ou le confort de conduite. [0003] Certains systèmes d'aides à la conduite mettent en oeuvre des dispositifs d'imagerie dotés de caméras dite intelligentes, intégrant des réseaux de neurones artificiels pour la détection et la reconnaissance d'objets, tels que des panneaux de signalisation. Ces réseaux de neurones sont dits profonds : ils possèdent de nombreuses couches de neurones, et sont entrainés sur des millions d'exemplaires d'images avant de développer des performances jugées satisfaisantes pour la fonction désirée. Les inventeurs ont constaté que les réseaux de neurones ayant développé une expertise uniquement en vision, comme par exemple dans le sous-domaine visuel qu'est la détection de panneaux de signalisation, ne classifient pas les images de la même manière qu'un être humain. En particulier, il est possible de générer artificiellement des attaques adverses (connues sous le nom de « adversarial attacks » ou « adversarial examples » en anglais), qui, lorsqu'ils sont superposés à l'image d'origine, sont indétectables ou anodins pour l'oeil humain, mais qui sont cependant susceptibles d'induire en erreur le réseau de neurones de manière radicale, et donc potentiellement dangereuse. [0004] De telles attaques adverses existent en très grand nombre, et un exemple est présenté sur la figure 1. La figure 1 représente une image d'un panneau de signalisation, l'image étant affectée par une attaque adverse d'origine physique, en l'espèce des autocollants de formes et de couleurs diverses apposés sur le panneau. Une telle image est par exemple susceptible d'être classée par un réseau de neurones artificiels connu comme représentant un panneau de limitation de vitesse et non un panneau stop. Les attaques adverses peuvent, également être d'origine numérique, et être notamment spécialement conçue pour présenter, du point de vue du réseau de neurones, tous les signes diag- 2 nostiqucs d'une autre catégorie d'objet. Une telle attaque adverse est susceptible d'aboutir à une classification erronée de l'image, le panneau de signalisation étant alors confondu avec un objet différent. [0005] Ces interprétations aberrantes sont particulièrement critiques dans le cas d'un véhicule autonome. En particulier, l'erreur suscitée par l'attaque adverse d'origine physique représentée par la figure 1 est préoccupante par sa facilité de mise en oeuvre, puisqu'il s'agit de simples autocollants, et par son impact potentiellement désastreux en termes de sécurité routière. [0006] La présente invention vise à pallier les inconvénients de l'état de la technique, et plus particulièrement ceux-ci-dessus exposés, en proposant un procédé de reconnaissance d'objets situés dans l'environnement d'un véhicule automobile qui soit robuste aux images adverses, et qui permette notamment d'éviter des erreurs d'interprétation et de classification d'une image constituant une attaque adverse d'origine physique ou numérique. [0007] Elle propose à cet effet un procédé de reconnaissance d'un objet, tel qu'un panneau de signalisation, l'objet figurant sur une image provenant d'une caméra embarquée dans un véhicule automobile, la caméra embarquée étant de type monoculaire, le procédé comportant les étapes suivantes : [0008] capture d'une image, ci-après image captée, par ladite caméra embarquée ; présentation de l'image captée à un premier réseau neuronal artificiel formant un réseau de neurones projecteur, préalablement entrainé sur une première base d'apprentissage formée par des couples d'images comprenant chacun une première image captée par ladite caméra embarquée et une seconde image, ci-après image jumelle, correspondant à une image telle que captée simultanément à la première image par une seconde caméra implantée temporairement à proximité de cette caméra embarquée de sorte à présenter une orientation angulaire différente par rapport à la caméra embarquée, et orientée de telle sorte que les images de la seconde caméra présentent une zone de recouvrement avec la première image; génération par ledit premier réseau neuronal d'une image jumelle correspondant à l'image captée ; présentation de l'image captée et de l'image jumelle correspondante à un deuxième réseau neuronal formant un réseau classifiera- ; classification par le deuxième réseau neuronal de l'image captée et de l'image jumelle ; évaluation de la robustesse de la classification de l'image captée. [0009] Ainsi, en mettant en oeuvre un premier réseau neuronal préalablement entrainé avec des couples d'images, chaque couple comportant une première image correspondant à 3 une image captée par la caméra monoculaire d'un véhicule, et une deuxième image, ou image jumelle, correspondant à une image qui aurait été captée simultanément à la première image par une caméra « jumelle » de la caméra embarquée (c'est-à-dire une caméra temporairement implantée à proximité de cette dernière et effectuant des prises de vues sous un angle légèrement différent), le procédé conforme à l'invention permet d'améliorer grandement la robustesse de la reconnaissances d'objets tels que des panneaux de signalisation. En effet, les inventeurs ont constaté que ces attaques adverses ne sont effectives que pour une plage de distance et une plage d'angle de vue très limitées. Ainsi, un changement d'angle de vue ou de distance à l'objet devant être reconnu permet d'obtenir la classification correcte de cet objet. [0010] Dans unc réalisation, la classification de l'image captée est évaluée comme étant robuste si la classification de l'image captée et de l'image jumelle sont identiques. [0011] Dans unc réalisation, si la classification est évaluée comme non robuste, alors la précédente classification évaluée comme robuste est prise en compte. [0012] Dans unc réalisation, le taux de recouvrement entre l'image jumelle et l'image captée est supérieur ou égal à 80%, de préférence supérieur à 90% et par exemple supérieur à 95%. [0013] Dans unc réalisation, ledit premier réseau neuronal comporte une pluralité de couches convolutives et un nombre identique de couches déconvolutives agencées symétriquement. [0014] Dans une réalisation, ledit premier réseau neuronal comporte des connections directes entre deux couches convolutive et déconvolutive symétriques. [0015] Dans une réalisation, ledit premier réseau neuronal est dépourvu de couches de sous- échantillonnage. [0016] Dans une réalisation, ledit premier réseau neuronal comporte une fonction de perte de type erreur quadratique moyenne. [0017] Dans une réalisation, ladite première base d'apprentissage est formée de plusieurs dizaines de milliers de couples d'images. [0018] Dans une réalisation, ledit second réseau neuronal artificiel est préalablement entrainé sur une seconde base d'apprentissage formée par des d'images comportant des objets à reconnaitre, incluant des panneaux de signalisation. [0019] Dans une réalisation, ledit second réseau neuronal présente une architecture de réseau à convolution standard, différente de celle dudit premier réseau neuronal, notamment en ce qu'elle ne comporte pas de couches déconvolutives. [0020] L'invention concerne également un produit programme d'ordinateur comprenant des instructions qui, lorsque le programme est exécuté par un ordinateur, conduisent celui-ci à mettre en oeuvre les étapes du procédé tel que défini ci-dessus. [0021] L'invention concerne également un véhicule automobile équipé d'une caméra emharquée et d'un calculateur agencés pour mettre en oeuvre un procédé tel que défini plus haut. [0022] L'exposé de l'invention sera maintenant poursuivi par la description détaillée d'un exemple de réalisation, donnée ci-après à titre illustratif mais non limitatif, en référence aux dessins annexés, sur lesquels : [0023] [fig.1] La figure 1 illustre une image d'un panneau de signalisation captée par une caméra emharquée dans un véhicule automobile, l'image présentant une attaque adverse d'origine physique ; [0024] [fig.2] La figure 2 est un schéma d'un dispositif d'imagerie destiné à être intégré dans un système d'aide à la conduite de véhicule automobile ; [0025] [fig.3] La figure 3 est un organigramme détaillant les étapes d'un procédé conforme à l' invention ; [0026] [fig.4] La figure 4 représente une image captée par une caméra emharquée dans un véhicule automobile ; [0027] [fig.5] La figure 5 représente une image jumelle de l'image de la figure 4 ; [0028] [fig.6] La figure 6 représente un exemple d'architecture du premier réseau neuronal ar- tificiel ; [0029] [fig.7] La figure 7 représente un exemple d'architecture du deuxième réseau neuronal ar- tificiel. [0030] La figure 2 illustre un dispositif d'imagerie 1 destiné à être intégré dans un système avancé d'aide à la conduite (ADAS) de véhicule automobile tel qu'un régulateur de vitesse adaptatif. [0031] Le dispositif d'imagerie 1 comporte une caméra 10 optique monoculaire embarquée sur le véhicule et étant dotée d'un capteur d'images bidimensionnelles 11, par exemple de type CCD (acronyme en langue anglaise de « Charge-Coupled Device » se traduisant en français par « dispositif à transfert de charge ») ou CMOS (acronyme en langue anglaise de « Complementary Metal-Oxide Semiconductor » se traduisant en français par « semi-conducteur à oxyde de métal complémentaire »). [0032] La caméra 10 comprend également un système optique 12 associé au capteur d'images 11 et étant adapté à former sur ce dernier une image d'un environnement extérieur du véhicule visualisé par la caméra à travers une face externe de ce système optique. [0033] Le dispositif d'imagerie 1 comporte également un module de traitement 20 relié à la caméra embarquée 10 (ou intégré à cette dernière) et apte à corriger en temps réel les images captées par cette dernière lorsque la face externe de son système optique présente de la huée ou des salissures. [0034] Le module de traitement 20 comporte un calculateur 21 ainsi qu'un module de stockage 22 comprenant de la mémoire non volatile, par exemple de type EEPROM ou FLASH et de la mémoire vive. [0035] La mémoire non volatile stocke un processus de traitement en temps réel des images captées par la caméra embarquée 10. [0036] Selon un mode préféré de réalisation, l'ensemble des informations contenues dans cette mémoire non volatile peut être mis à jour par des moyens de communication ou des moyens de lecture d'un support de données. [0037] On va maintenant décrire en détails en relation avec l'organigramme de la figure 3, les différentes étapes d'un procédé conforme à l'invention. [0038] Celui-ci est initié à chaque nouvelle capture, par le capteur d'image 11 de la caméra embarquée 10, d'une image captée 1. (étape 100), telle que l'image représentée à la figure 4. L'image captée L est susceptible de représenter une attaque adverse, c'est-à-dire qu'au moins une partie de l'image est susceptible de comporter une attaque adverse d'origine numérique ou physique, comme par exemple celle représentée sur la figure 1 (étape 100). Une attaque adverse, comme expliqué plus haut, est susceptible d'aboutir à une reconnaissance (ou classification) erronée d'un ou plusieurs objets figurant sur cette image, comme par exemple un panneau de signalisation. [0039] L'image captée I. est ensuite présentée à un algorithme projecteur (étape 200) im- plémenté par un premier réseau neuronal R, artificiel. L'architecture de ce premier réseau neuronal RI, ou réseau projecteur, décrite ci-après, est avantageusement inspirée de celles décrites dans les articles « Image Restoration Using Very Deep Convolutional Encoder-Decoder Networks with Symmetric Skip Connections » (Mao et al., 30th Conference on Neural Information Processing Systems, Barcelona, Spain, 2016) et Unsupervised Monocular Depth Estimation with Left-Right Consistency » (Godard et al., Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition CVPR, 2017). [0040] Ce premier réseau neuronal R1, comme illustré par la figure 6, comporte une pluralité de couches convolutives C (avantageusement entre 10 et 15 couches) et un nombre identique de couches déconvolutives D agencées symétriquement. [0041] Le réseau projecteur RI dans son ensemble a fait l'objet d'un apprentissage visant à le rendre apte à extraire les caractéristiques de l'image captée qui se prêtent le mieux à une interprétation correcte des objets figurant sur cette image, c'est-à-dire une inter- 6 prétation conforme à la réalité en ce qui concerne le ou les objets présents dans l'image captée par la caméra 2. [0042] L'opération de projection est encodée dans les poids des connections de tout le réseau, a priori on ne peut pointer vers une couche qui effectuerait plus la projection qu'une autre, bien que le signal se rapproche de la projection recherchée dans les couches finales de déconvolution. [0043] Chaque couche convolutive ou déconvolutive est composée avantageusement de 64 filtres de taille 3X3 générant 64 cartes de caractéristiques (dénommées couramment sous le terme anglo-saxon « features maps ») à partir de l'image entrant dans cette couche. [0044] En variante, le nombre de filtres constituant chaque couche est différent (par exemple égal à 32 ou 128). La taille de ces filtres peut également être différente (par exemple égale à 5X5, 7X7 ou 9X9). [0045] Pour éviter la perte de signal d'erreur inhérente à l'entrainement de tels réseaux neuronaux profonds, des connections directes S (dénommées couramment sous le terme anglo-saxon « skip connections ») sont prévues entre deux couches convolutive et déconvolutive symétriques. [0046] Ces connections directes présentent avantageusement un pas égal à trois, c'est à-dire qu'elles s'étendent toutes les trois couches convolutives vers les couches déconvolutives symétriques correspondantes. [0047] Elles sont en outre bijectives pour chaque filtre : chaque unité dans le filtre canal convolutif d'entrée étant connectée à son équivalent dans le filtre déconvolutif de sortie (connectivité dite « one-to-one »). [0048] Chacune des couches convolutives ou déconvolutives est suivie d'une fonction d'activation avantageusement de type ReLU (acronyme en langue anglaise de « Rectified Linear Unit » se traduisant en français par « Unité Linéaire Rectifiée »). [0049] Cette fonction, appelée aussi « fonction d'activation non saturante », confère des propriétés non linéaires à la fonction de décision et à l'ensemble du réseau qui impactent positivement sur ses performances. [0050] Ce premier réseau neuronal R, projecteur est en outre avantageusement dépourvu de couches de sous-échantillonnage (dénommées couramment sous le terme anglo-saxon « pooling »). [0051] Les images d'entrée et de sortie ont le même format de résolution (1 x h x c), avec 1, h et c qui représentent respectivement la largeur, la hauteur et le nombre de canaux de ces images (c étant égal à 1 pour une image monochrome et à 3 pour une image couleur codée en RVB). [0052] Ce format de résolution sera avantageusement de 800 x 480 x 3 pour des raisons de praticité (format usuel des caméras optiques implantées dans les véhicules) et de 7 rapidité des calculs. [0053] Cc premier réseau neuronal R1 projecteur est en outre préalablement cntrainé à partir d'une première hase d'apprentissage formée par plusieurs dizaines de milliers de couples d'images (avantageusement, au moins 40 000 et de préférence au moins 60 000). [0054] Chaque couple d'images comprend une première image captée par la caméra embarquée 10 (qui peut être bruitée ou non), et une seconde image captée simultanément par une seconde caméra identique à la caméra 10, implantée de manière temporaire à proximité de cette caméra 10 de sorte à présenter un angle de vision différent de celui de cette dernière. [0055] Les performances du réseau neuronal augmentant avec le volume et la variété de la hase d'apprentissage, un arbitrage est donc requis entre le coût lié à l'acquisition des images lors de la phase de roulage et le gain lié à la précision des deux réseaux. [0056] Cependant, étant donné qu'aucune labellisation de ces images n'est nécessaire pour cette hase d'apprentissage (les images obtenues par chaque caméra étant utilisées pour une supervision croisée), son prix de revient est réduit car constitué uniquement par les coûts de roulage et de stockage des images. [0057] Par ailleurs, de nouveaux couples d'images sont avantageusement créés par trans- formation miroir et interversion à partir des couples d'images générés lors de la phase d'acquisition. [0058] Cette technique dite "d'augmentation" permet de multiplier le nombre de couples d'images de la base d'entrainement (et donc d'améliorer les performances du réseau neuronal) sans nécessiter de roulage supplémentaire. [0059] Ce premier réseau neuronal projecteur RI comporte en outre une fonction de perte de type erreur quadratique moyenne (communément désignée sous l'acronyme anglophone MSE pour « Mean Squan-ed Error ») et permettant de calculer l'erreur de classification sur des lots issus de la base d'apprentissage et comprenant par exemple entre 5 et 100 couples d'images. [0060] Ainsi, étant donné un lot de N couples d'image (Xi, Y) : [0061] [Math.1] MSE= 11F(Xi)- [0062] Avec F(Xi) qui représente l'image corrigée par le réseau neuronal de l'image X,. [0063] Les valeurs des poids des couches sont apprises par un algorithme de descente de gradient stochastique basé sur la rétropropagation du gradient : on calcule progressivement pour chaque couche, en partant de la fin du réseau, les paramètres qui minimisent cette fonction de perte. [0064] Cet algorithme est avantageusement l'algorithme ADAM (Kingma et Ba, « A 8 method for stochastic optimization », 3rd International Conference for Learning Representations, San Diego, 2015), utilisé avec un taux d'apprentissage égal à 10-4. [0065] En variante, les filtres de couches déconvolutives ne sont pas obtenus par ap- prentissage et sont constitués par les transposés des filtres des couches convolutives leur étant symétriques. [0066] Cc premier réseau neuronal R1 peut également présenter une architecture différente, en étant par exemple dépourvu de couches déconvolutives. [0067] À partir de l'image captée I. lui étant présentée au cours de l'étape 200, ce premier réseau neuronal RI va ainsi générer une image jumelle (voir figure 5), cette image correspondant à une image prise par une seconde caméra, dite caméra jumelle, cette caméra étant utilisée uniquement pour constituer la base d'apprentissage et absente du dispositif d'imagerie 1 (étape 300). [0068] L'image captée L et l'image jumelle I, sont ensuite présentées à un algorithme classificur (étape 400) constitué par un second réseau neuronal Rn artificiel dont l'architecture est différente de celle décrite ci-avant du premier réseau neuronal RI artificiel. L'architecture du second réseau neuronal est celle d'un réseau profond à convolution standard, et ne comporte pas de couches déconvolutives. La figure 7 illustre un exemple de réalisation de l'architecture du second réseau neuronal, qui comporte des couches convolutives C, la dernière de ces couches étant intégralement connectée à un ensemble de couches intégralement connectées F (généralement connues sous l'appellation anglaise « fully connected layers »). [0069] Ce second réseau neuronal R2 va effectuer la classification à la fois de l'image captée et de l'image jumelle. [0070] Ce second réseau neuronal est à cet effet préalablement entrainé à partir d'une seconde base d'apprentissage comportant également plusieurs dizaines de milliers d'images (sa taille étant avantageusement identique à celle la première base d'apprentissage). [0071] Le procédé comporte une étape d'évaluation (600) de la robustesse de la classi- fication, qui consiste à comparer les classifications respectives de l'image captée et de l'image jumelle. Lorsque celles-ci sont identiques, la classification sera alors considérée comme robuste. Dans le cas contraire, différentes stratégies pourront être mises en oeuvre, comme par exemple de retenir la précédente classification évaluée comme robuste. [0072] Selon d'autres variantes de réalisation, le second réseau neuronal classifiera- présente une architecture identique à celle du premier réseau neuronal correcteur et projecteur. 9