Brevet FR3085081A1 — publié le 20200221

Titre de l'invention Procédé de correction en temps réel d'images altérées provenant d'une caméra embarquée présentant des salissures Domaine de l'invention La présente invention concerne le domaine de la détection d'objets dans l'environnement d'un véhicule automobile. Elle vise en particulier un procédé de correction en temps réel d'images altérées provenant d'une caméra embarquée présentant des salissures. Arrière-plan de l'invention Les véhicules automobiles ont tendance à être 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 », et ayant pour objectif d'améliorer le confort de conduite et/ou la sécurité des passagers. Ces systèmes d'aides à la conduite mettent en oeuvre des dispositifs d'imagerie dotés de caméras aptes à visualiser l'environnement routier du véhicule et dont la face externe du système optique est particulièrement exposée aux intempéries, aux projections (boue, poussières, sable, terre, etc...), ou encore à des phénomènes de condensation qui peuvent dégrader fortement la qualité des images formées à travers ou par ce système optique, au préjudice du confort et de la sécurité du conducteur. On connaît de tels dispositifs d'imagerie comportant un module d'analyse conçu pour détecter des salissures sur la face externe du système optique de la caméra. La demande internationale W02017021377A1 divulgue ainsi un dispositif d'imagerie comprenant : - une caméra comprenant un capteur d'images ainsi qu'un système optique associé optiquement au capteur d'images et comportant une lentille liquide de focale commandable, ledit système optique étant adapté à former sur le capteur d'images une image d'un 2 environnement extérieur visualisé par la caméra à travers une face externe du système optique ; - un module de commande conçu pour commander la lentille liquide successivement à deux valeurs de focale distinctes, pour obtenir 5 une première image nette d'une zone de l'environnement extérieur distante de la face externe du système optique, puis une deuxième image nette de ladite face externe ; et - un module d'analyse conçu pour détecter un élément altérant un trajet optique au niveau de la face externe du système 10 optique, par analyse de ladite deuxième image. Ce système de détection ne peut toutefois pas être mise en oeuvre avec des caméras monoculaires. On connait également, par exemple de la demande japonaise JP 2001-171491, des dispositifs de lavage de la face externe du système 15 optique d'une caméra embarquée sur un véhicule. Un tel dispositif de lavage est équipé d'un module de génération d'air à haute pression permettant de pulvériser de l'eau de lavage à haute pression sur la face externe du système optique pour la nettoyer et en retirer les salissures. 20 Toutefois, l'utilisation d'un tel dispositif a tendance à laisser des gouttelettes d'eau sur la face externe du système optique ce qui dégrade également la qualité des images formées à travers ou par ce système optique jusqu'à ce que l'eau de lavage pulvérisée soit complètement évaporée et séchée. 25 On connaît également, en particulier de la demande FR 2 927 448 Al, des procédés de traitement d'image permettant de corriger les effets de bougé des images formées à travers ou par le système optique d'une caméra. Toutefois ce type de procédé ne donne pas satisfaction pour le 30 traitement d'images altérées du fait de salissures présentes sur la face externe du système optique de la caméra. Objet et résumé de l'invention La présente invention vise à améliorer la situation. 3 Elle propose à cet effet un procédé de correction en temps réel d'images altérées provenant d'une caméra embarquée présentant des salissures, caractérisé en ce qu'il comprend les étapes suivantes : - capture d'une image altérée par ladite caméra embarquée ; 5 - présentation de ladite image altérée à un algorithme correcteur et projecteur constitué par un premier réseau neuronal artificiel, préalablement entrainé à partir d'une première base d'apprentissage formée par des couples d'images comprenant chacun une première image altérée captée par ladite caméra embarquée 10 présentant des salissures et une seconde image propre captée simultanément par une seconde caméra dépourvue de salissures et implantée temporairement à proximité de cette caméra embarquée de sorte à présenter un champ de vision se superposant quasi-intégralement avec celui de cette dernière ; 15 - génération par ledit réseau neuronal d'une image corrigée intermédiaire dont le champ de vision correspond à celui de ladite seconde caméra ; - présentation de ladite image corrigée intermédiaire à un algorithme projecteur ; et 20 - génération par ledit algorithme projecteur d'une image corrigée finale dont le champ de vision correspond à celui de ladite caméra embarquée. Le procédé selon l'invention permet d'obtenir une image corrigée finale très proche de celle qu'aurait prise la caméra embarquée en 25 l'absence de salissures. Ce réalisme dans la correction est essentiellement dû au fait que les images altérées de la base d'apprentissage dudit premier réseau neuronal sont constituées par des images réellement captées par une caméra et non par des images dont l'altération est générée 30 artificiellement par un algorithme. Selon des caractéristiques préférées du procédé selon l'invention, prises seules ou en combinaison : 4 - ledit premier réseau neuronal comporte une pluralité de couches convolutives et un nombre identique de couches déconvolutives agencées symétriquement ; - ledit premier réseau neuronal comporte des connections 5 directes entre deux couches convolutive et déconvolutive symétriques ; - ledit premier réseau neuronal est dépourvu de couches de sous-échantillonnage ; - ledit premier réseau neuronal comporte une fonction de perte de type erreur quadratique moyenne ; 10 - ladite première base d'apprentissage est formée de plusieurs dizaines de milliers de dits couples d'images ; - lesdits couples d'images formant ladite première base d'apprentissage sont prétraités par rectification de sorte que leurs lignes épipolaires soient horizontales ; 15 - ledit algorithme projecteur est constitué par un second réseau neuronal artificiel, préalablement entrainé à partir d'une seconde base d'apprentissage formée par des couples d'images comprenant chacun une première image propre captée par ladite caméra embarquée dépourvue de salissures et une seconde image 20 propre captée simultanément par ladite seconde caméra dépourvue de salissures ; - ledit second réseau neuronal présente une architecture identique à celle dudit premier réseau neuronal ; et/ou - ledit procédé comporte, après ladite étape de génération 25 d'une image corrigée finale, une étape d'évaluation du niveau de salissure de ladite caméra embarquée par comparaison entre cette image corrigée finale et ladite image altérée. Brève description des dessins 30 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 : 5 - la figure 1 est un diagramme fonctionnel d'un dispositif d'imagerie 1 destiné à être intégré dans un système avancé d'aide à la conduite (ADAS) de véhicule automobile ; - la figure 2 représente un organigramme du procédé selon 5 l'invention de correction en temps réel d'images altérées provenant d'une caméra embarquée présentant des salissures ; - les figures 3 à 5 illustrent respectivement l'image altérée captée par la caméra embarquée, l'image corrigée intermédiaire et l'image corrigée finale générées par le procédé selon l'invention ; et 10 - la figure 6 représente l'architecture du premier réseau neuronal artificiel. Description détaillée La figure 1 illustre un dispositif d'imagerie 1 destiné à être 15 intégré dans un système avancé d'aide à la conduite (ADAS) de véhicule automobile tel qu'un régulateur de vitesse adaptatif. Le dispositif d'imagerie 1 comporte une caméra optique monoculaire 10 embarquée sur le véhicule et étant dotée d'un capteur d'images bidimensionnelles 11, par exemple de type CCD (acronyme en 20 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 »). 25 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. Le dispositif d'imagerie 1 comporte également un module de 30 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 buée ou des salissures. 6 Le module de traitement 20 comporte un calculateur 21 ainsi qu'un module de stockage 22 comprenant de la mémoire non volatile de type EEPROM ou FLASH et de la mémoire vive. La mémoire non volatile stocke un processus de traitement en 5 temps réel des images captées par la caméra embarquée 10 et dont l'organigramme est représenté sur la figure 2. 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 10 support de données. On va maintenant décrire en détails et à l'appui de l'organigramme de la figure 2, les différentes étapes de ce processus. Celui-ci est initié à chaque nouvelle capture, par le capteur d'image 11 de la caméra embarquée 10, d'une image altérée la (voir 15 figure 3) du fait de la présence de salissures (gouttelettes d'eau, projections, buée) sur la face externe du système optique 12 (étape 100). Cette image altérée la est ensuite présentée à un algorithme correcteur et projecteur (étape 200) constitué par un premier réseau 20 neuronal artificiel RN (voir figure 6) dont l'architecture décrite ci-après est 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 25 « Unsupervised Monocular Depth Estimation with Left-Right Consistency » (Godard et al., Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition CVPR, 2017). Ce premier réseau neuronal RN comporte une pluralité de couches convolutives C (avantageusement entre 10 et 15) et un 30 nombre identique de couches déconvolutives D agencées symétriquement. Les couches convolutives ont appris à extraire les caractéristiques de l'image altérée qui se prêtent le mieux à la 7 reconstruction d'une image nette (voir procédure d'apprentissage ci-dessous). Les couches déconvolutives ont appris quant à elles à effectuer cette reconstruction, dans le but d'obtenir une image nette de la scène 5 « projetée » sur la caméra 2. Les deux opérations de correction/projection sont encodées 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 10 couches finales de déconvolution. 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. 15 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). Pour éviter la perte de signal d'erreur inhérente à l'entrainement de tels réseaux neuronaux profonds, des connections directes S 20 (dénommées couramment sous le terme anglo-saxon « skip connections ») sont prévues entre deux couches convolutive et déconvolutive symétriques. Ces connections directes présentent avantageusement un pas égal à trois, c'est à-dire qu'elles s'étendent toutes les trois couches 25 convolutives vers les couches déconvolutives symétriques correspondantes. 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é "one-to-one"). 30 L'information passant par ces connections directes contient ainsi plus de détails ce qui aide les couches déconvolutives à générer une version propre plus détaillée. Chacune des couches convolutives ou déconvolutives est suivie d'une fonction d'activation avantageusement de type ReLU (acronyme 8 en langue anglaise de « Rectified Linear Unit » se traduisant en français par « Unité Linéaire Rectifiée »). Cette fonction, appelée aussi « fonction d'activation non saturante », augmente les propriétés non linéaires de la fonction de 5 décision et de l'ensemble du réseau sans affecter les champs récepteurs de la couche convolutive ou déconvolutive. Ce premier réseau neuronal correcteur et projecteur RN est en outre avantageusement dépourvu de couches de sous-échantillonnage (dénommées couramment sous le terme anglo-saxon « pooling ») car 10 ces dernières ont tendance à éliminer certains détails présents dans l'image initiale. Les images d'entrée et de sortie ont le même format de résolution (I x h x c), avec I, h et c qui représentent respectivement la largeur, la hauteur et le nombre de canaux de ces images (c étant égal 15 à 1 pour une image monochrome et à 3 pour une image couleur codée en RVB). 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 rapidité des calculs. 20 Ce premier réseau neuronal correcteur et projecteur RN est en outre préalablement entrainé à partir d'une première base d'apprentissage formée par plusieurs dizaines de milliers de couples d'images (avantageusement, au moins 40 000 et de préférence 60 000). 25 Chaque couple d'images comprend une première image altérée captée par la caméra embarquée 10 dont la face externe du système optique 12 présente des salissures, et une seconde image propre captée simultanément par une seconde caméra identique à la caméra 10 dont la face externe du système optique est dépourvue de salissures 30 et étant implantée de manière temporaire à proximité de cette caméra 10 de sorte à présenter un champ de vision se superposant quasi intégralement avec celui de cette dernière. Préalablement à l'acquisition des images, ces différences de salissures entre les faces externes des systèmes optiques des deux 9 caméras peuvent être obtenues par simple roulage avec caméras désactivées, en obstruant la face externe du système optique de la seconde caméra jumelle mais pas celle de la caméra 10. Lors de la phase d'acquisition des images, le roulage reprend 5 avec les deux caméras actives. Les couples d'images provenant de la base d'apprentissage sont prétraités par rectification de sorte que leurs lignes épipolaires soient horizontales. Les performances du réseau neuronal augmentant avec le volume 10 et la variété de la base 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. Cependant, étant donné qu'aucune labellisation de ces images n'est nécessaire pour cette base d'apprentissage (les images obtenues 15 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. Par ailleurs, de nouveaux couples d'images sont avantageusement créés par transformation miroir et interversion à 20 partir des couples d'images générés lors de la phase d'acquisition. Cette technique dite "d'augmentation" permet de multiplier par deux 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. 25 Ce premier réseau neuronal correcteur et projecteur RN comporte en outre une fonction de perte de type erreur quadratique moyenne (communément désignée sous l'acronyme anglophone MSE pour « Mean Squarred Error) et permettant de calculer l'erreur de classification sur des lots issus de la base d'apprentissage et comprenant par exemple 30 entre 5 et 100 couples d'images. Ainsi, étant donné un lot de N couples d'image (XI,Y1) : MSE = - 17;112 10 avec F(xi) qui représente l'image corrigée par le réseau neuronal de l'image X. Les valeurs des poids des couches sont apprises par un algorithme de descente de gradient stochastique basé sur la 5 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. Cet algorithme est avantageusement l'algorithme ADAM (Kingma et Ba, « A method for stochastic optimization » , 3rd International Conference 10 for Learning Representations, San Diego, 2015), utilisé avec un taux d'apprentissage égal à 10'. En variante, les filtres de couches déconvolutives ne sont pas obtenus par apprentissage et sont constitués par les transposés des filtres des couches convolutives leur étant symétriques. 15 Ce premier réseau neuronal peut également présenter une architecture différente, en étant par exemple dépourvu de couches déconvolutives. A partir de l'image corrompue lui étant présentée au cours de l'étape 200, ce premier réseau neuronal RN va ainsi générer une image 20 corrigée intermédiaire Ii (voir figure 4) dont le champ de vision correspond à celui de la seconde caméra utilisée uniquement pour constituer la base d'apprentissage et absente du dispositif d'imagerie 1 (étape 300). Cette image corrigée intermédiaire Ii est ensuite présentée à un 25 algorithme projecteur (étape 400) constitué par un second réseau neuronal artificiel dont l'architecture est identique à celle décrite ci-avant du premier réseau neuronal artificiel. Ce second réseau neuronal est préalablement entrainé à partir d'une seconde base d'apprentissage comportant également plusieurs 30 dizaines de milliers de couples d'images (sa taille étant avantageusement identique à celle la première base d'apprentissage). Chaque couple d'images est constitué par une première image propre captée par la seconde caméra dont la face externe du système optique est dépourvue de salissures, et par une seconde image propre 11 captée simultanément par la caméra 10 dont la face externe du système optique est également dépourvue de salissures. A partir de l'image corrigée intermédiaire lui étant présentée au cours de l'étape 400, ce second réseau neuronal va ainsi générer une 5 image corrigée finale If (voir figure 5) dont le champ de vision correspond à celui de la caméra embarquée 10 (étape 500). Cette image corrigée finale If approxime ainsi l'image qu'aurait captée la caméra embarquée 10 si la face externe de son système optique n'était pas altérée. 10 La comparaison des deux images peut utiliser comme mesure une simple erreur quadratique moyenne, une mesure PSNR (acronyme en langue anglaise de «Peak Signal to Noise Ratio » se traduisant en français par « rapport signal-bruit de crête ») faisant intervenir le logarithme de l'inverse de l'erreur quadratique, ou encore une mesure 15 de type similarité structurelle calculée sur la base des moments (moyenne et variance) de ce images. De manière avantageuse, le procédé comporte également une dernière étape d'évaluation du niveau de salissure de ladite caméra embarquée par comparaison entre cette image corrigée finale If et 20 l'image altérée la (étape 600). Afin d'éviter des calculs inutiles, on peut également prévoir que les étapes 200 à 600 ne soient réalisées, pour les n images suivantes capturées par le capteur 11 de la caméra embarquée 10, que si ce niveau de salissure est supérieur ou égal à une valeur seuil 25 prédéterminée (la valeur de n correspondant par exemple au nombre d'images par seconde capturées par ce capteur 11 de sorte que ces étapes 200 à 500 soient au moins réalisées toutes les secondes). Selon d'autres variantes de réalisation, le second réseau neuronal projecteur présente une architecture différente de celle du 30 premier réseau neuronal correcteur et projecteur. Selon encore d'autres variantes de réalisation, l'algorithme projecteur n'est pas constitué par un réseau neuronal. Cet algorithme peut par exemple consister en une transformation géométrique non 12 apprise semblable à celles utilisées dans les applications de localisation et cartographie simultanée. Cette transformation géométrique non apprise et pré-calculée peut consister en la matrice fondamentale entre les deux images la et , 5 permettant de calculer pour chaque pixel de l'image 2 une ligne épipolaire sur l'image 1, le long de laquelle on recherchera ensuite le pixel le mieux apparié. Cependant cette recherche nécessite une mesure de similarité entre pixels, qui est laborieuse à définir et idiosyncratique. » 10 D'une manière générale, on rappelle que la présente invention ne se limite pas aux formes de réalisation décrites et représentées, mais qu'elle englobe toute variante d'exécution à la portée de l'homme REVENDICATIONS1. Procédé de correction en temps réel d'images altérées provenant d'une caméra embarquée (10) présentant des salissures, caractérisé en ce qu'il comprend les étapes suivantes : - capture d'une image altérée (Ia) par ladite caméra embarquée (10) (100) ; - présentation de ladite image altérée (Ia) à un algorithme correcteur et projecteur constitué par un premier réseau neuronal artificiel (RN), préalablement entrainé à partir d'une première base d'apprentissage formée par des couples d'images comprenant chacun une première image altérée captée par ladite caméra embarquée (10) présentant des salissures et une seconde image propre captée simultanément par une seconde caméra dépourvue de salissures et implantée temporairement à proximité de cette caméra embarquée de sorte à présenter un champ de vision se superposant quasi-intégralement avec celui de cette dernière (200) ; - génération par ledit premier réseau neuronal (RN) d'une image corrigée intermédiaire (Ii) dont le champ de vision correspond à celui de ladite seconde caméra (300) ; - présentation de ladite image corrigée intermédiaire (Ii) à un algorithme projecteur (400) ; et - génération par ledit algorithme projecteur d'une image corrigée finale (If) dont le champ de vision correspond à celui de ladite caméra embarquée (10) (500). 2. Procédé selon la revendication 1, caractérisé en ce que ledit premier réseau neuronal (RN) comporte une pluralité de couches convolutives (C) et un nombre identique de couches déconvolutives (D) agencées symétriquement. 3. Procédé selon la revendication 2, caractérisé en ce que ledit premier réseau neuronal comporte des connections directes (S) entre deux couches convolutive (C) et déconvolutive (D) symétriques. 14 4. Procédé selon l'une des revendications 1 à 3, caractérisé en ce que ledit premier réseau neuronal (RN) est dépourvu de couches de sous-échantillonnage. 5. Procédé selon l'une des revendications 1 à 4, caractérisé 5 en ce que ledit premier réseau neuronal (RN) comporte une fonction de perte de type erreur quadratique moyenne. 6. Procédé selon l'une des revendications 1 à 5, caractérisé en ce que ladite première base d'apprentissage est formée de plusieurs dizaines de milliers de dits couples d'images. 10 7. Procédé selon l'une des revendications 1 à 6, caractérisé en ce que lesdits couples d'images formant ladite première base d'apprentissage sont prétraités par rectification de sorte que leurs lignes épipolaires soient horizontales. 8. Procédé selon l'une des revendications 1 à 7, caractérisé 15 en ce que ledit algorithme projecteur est constitué par un second réseau neuronal artificiel, préalablement entrainé à partir d'une seconde base d'apprentissage formée par des couples d'images comprenant chacun une première image propre captée par ladite caméra embarquée (10) dépourvue de salissures et une seconde image 20 propre captée simultanément par ladite seconde caméra dépourvue de salissures. 9. Procédé selon la revendication 8, caractérisé en ce que ledit second réseau neuronal présente une architecture identique à celle dudit premier réseau neuronal (RN). 25 10. Procédé selon l'une des revendications 1 à 9, caractérisé en ce qu'il comporte, après ladite étape (500) de génération d'une image corrigée finale (If), une étape d'évaluation du niveau de salissure de ladite caméra embarquée (10) par comparaison entre cette image corrigée finale (If) et ladite image altérée (Ia) (600). 30