FR 3091358 A1 20200703 FR 1874226 A 20181227 Description Titre de l'invention : Dispositif de génération d'un ensemble de données simulées du fouillis de mer, procédé et programme d'ordinateur associés [OOO1 j La présente invention concerne un procédé de génération du type d'un ensemble dc données simulées du fouillis de mer. [0002] L'invention concerne également un dispositif dc génération pour la mise en oeuvre du procédé selon l'invention. [0003] L'invention concerne également un programme d'ordinateur comportant des ins- tructions qui, lorsqu'elles sont exécutées par un ordinateur, mettent en oeuvre le procédé de génération précité. [0004] Dans le cadre de missions de surveillance maritime, des systèmes radars aéroportés sont utilisés pour détecter des cibles à la surface de l'eau. Un système radar capte un signal rétrodiffusé par les cibles. Une détection est identifiée lorsque le niveau du signal capté franchit un seuil de détection, qui est prédéfini, soit manuellement par l'opérateur, soit automatiquement par un dispositif de détermination adaptatif de la valeur du seuil de détection. [0005] Cependant, le système radar reçoit aussi un signal perturbateur rétrodiffusé par la mer, appelé fouillis de mer (« clutter » en anglais). Les impulsions du fouillis de mer influent négativement sur les performances de détection. [0006] En effet, lorsque le niveau du signal réfléchi par une cible est faible par rapport au niveau des nombreuses impulsions du fouillis de mer, si le seuil de détection est placé à une valeur haute pour éviter de considérer les impulsions parasites comme des détections, alors une petite cible ne sera pas détectée ; en revanche, si le seuil de détection est placé à une valeur basse, alors les détections associées à des cibles seront noyées panni un grand nombre de détections associées à des impulsions parasites. [0007] Une connaissance précise des propriétés du fouillis de mer est donc nécessaire pour pouvoir déterminer un seuil de détection optimal d'un système radar donné afin de mieux détecter les cibles d'intérêt, ou, plus généralement, pour pouvoir définir les caractéristiques d'un système radar lors de la conception de ce dernier. [0008] 11 existe un besoin de disposer d'une simulation numérique en reproduisant le plus exactement possible les conditions d'emplois opérationnelles d'un système radar. [0009] Une telle simulation numérique implique en particulier de connaître les propriétés du fouillis de mer avec précision. [0010] On distingue différentes propriétés du fouillis de mer : les propriétés non cohérentes, comprenant la puissance moyenne et la distribution statistique de la puissance du 2 fouillis de nier ; et les propriétés cohérentes, comprenant la fréquence Doppler centrale et la largeur du spectre Doppler du fouillis de mer. [0011] Une bonne simulation numérique se doit alors de générer des données de fouillis de nier simulées en tenant compte des propriétés non cohérentes et cohérentes du fouillis de mer. [0012] Il existe des moyens pour générer des données de fouillis de mer simulées en fonction de modèles statistiques. [0013] L'article « Radar Sca Clutter Model » de M. M. Horst, F. B. Dycr et M. T. Tulcy, dans IEEE international conference on Antennas and Propagation (1978), décrit un modèle statistique du fouillis de mer prenant en compte des conditions physiques et un modèle physique de rétrodiffusion d'une onde électromagnétique sur la surface de l'eau. Cet article décrit notamment un coefficient de réflectivité, qui est une mesure permettant de déterminer la puissance relative du signal rétrodiffusé par le fouillis de nier par unité de surface. Dans le modèle physique de rétrodiffusion décrit, le coefficient de réflectivité dépend notamment d'un angle d'élévation, d'une vitesse du vent, d'une hauteur moyenne des vagues, d'un angle de direction entre le pointage de l'antenne et la direction du vent, de la longueur d'onde et de la polarisation du signal radar. [0014] Cependant, une telle simulation du fouillis de mer se base sur un modèle statistique traduisant un comportement moyen du fouillis de mer, évalué à partir d'un nombre important de données réelles enregistrées pour des conditions physiques similaires. [0015] Par conséquent, une telle simulation permet seulement d'obtenir des données simulant un comportement moyen du fouillis de mer. Elle ne permet pas donc de générer des données simulant des comportements particuliers, comportant par exemple des irrégularités (telles que par exemple des irrégularités dues à une saute de vent dans une partie seulement de la zone maritime imagée), comme on en trouve dans des données réelles. [0016] De plus, en se fondant sur un tel comportement moyen, il y a peu de variabilité entre les différentes simulations. [0017] Le but de l'invention est alors de proposer un procédé de génération permettant d'obtenir des données simulées du fouillis de mer ne présentant pas les désavantages précités. [0018] A cet effet, l'invention a pour objet un procédé de génération du type précité, dans lequel ledit procédé s'appuie sur un module de génération intégrant un premier réseau de neurones et un module de discrimination intégrant un second réseau de neurones et met en oeuvre, dans une phase d'entrainement simultanée des premier et second réseaux de neurones, un algorithme d'optimisation commun utilisant des ensembles de données d'entrainement contenus dans une base de données et correspondant à des 3 ensemble de données réelles du fouillis de mer, de manière à faire converger itérativement et simultanément les premier et second réseaux de neurones afin que le module de génération fournisse des ensembles de données simulées qui soient de plus en plus similaires aux ensembles de données d'entrainement, tandis que le module de discrimination est de plus en plus restrictif sur cc qui peut constituer un ensemble de données semblable à un ensemble de données d'entrainement, le procédé comportant en outre, après la phase d'entrainement ayant conduit à la définition d'un module de génération final, une phase d'exploitation, consistant à produire des ensembles de données simulées du fouillis de mer à partir du module de génération final. [0019] Suivant d'autres aspects avantageux, dans la phase d'exploitation, un ensemble de données simulées est ensuite utilisé pour déterminer un seuil de détection optimal d'un système radar donné afin de mieux détecter des cibles d'intérêt, ou pour pouvoir définir les caractéristiques d'un système radar. [0020] L'invention a également pour objet un dispositif de génération du type précité, comportant : [0021] - un module de génération prenant en entrée un vecteur aléatoire et produisant en sortie un ensemble de données simulées, [0022] - un module de discrimination prenant en entrée un ensemble de données parmi un ensemble de données d'entrainement et un ensemble de données simulées, et produisant en sortie une valeur indicative d'une probabilité que ledit ensemble de données corresponde à un ensemble de données réelles du fouillis de mer, et [0023] - un module de supervision d'entrainement mettant en oeuvre ledit algorithme d'optimisation commun. [0024] Suivant d'autres aspects avantageux, le dispositif de génération comporte l'une ou plusieurs des caractéristiques suivantes : [0025] - l'algorithme d'optimisation commun s'appuie sur une fonction de coût, la fonction de coût prenant comme variables, d'une part, la valeur indicative déterminée à partir d'un ensemble de données d'entraînement et, d'autre part, la valeur indicative déterminée à partir d'un ensemble de données simulées, [0026] - l'algorithme d'optimisation est un algorithme d'optimisation Adam, [0027] - le premier réseau de neurones et le deuxième réseau de neurones possèdent des périodes d'actualisation différentes, une période d'actualisation correspondant au nombre d'itérations de l'algorithme d'optimisation entre chaque actualisation des poids synaptiques du réseau de neurones considéré, la deuxième période d'actualisation étant supérieure à la première période d'actualisation, [0028] - le vecteur aléatoire est un vecteur gaussien, centré et de variance unitaire, [0029] - chaque ensemble de données est une matrice à deux dimensions respectivement selon une coordonnée d'angle et une coordonnée de distance par rapport au système radar, et [0030] - une donnée est une grandeur physique de nature à pouvoir être mesurée par une électronique bas niveau d'un système radar, notamment un système radar aéroporté. [0031] L'invention a également pour objet un programme d'ordinateur comportant des ins- tructions qui, lorsqu'elles sont exécutées par un ordinateur, mettent en oeuvre le procédé de génération précité. [0032] Les caractéristiques et avantages de l'invention apparaîtront à la lecture de la des- cription qui va suivre d'un mode de réalisation particulier, donné uniquement à titre d'exemple non limitatif, la description étant faite en référence aux dessins annexés sur lesquels : [0033] - [fig.1] la figure 1 est une représentation schématique d'un dispositif de génération d'un ensemble de données simulées du fouillis de mer à partir d'une base de données, comprenant notamment un module de génération et un module de discrimination, [0034] - [fig.2] la figure 2 est une représentation d'un premier réseau de neurones mis en oeuvre par le module de génération de la figure 1, [0035] - [fig.3] la figure 3 est une représentation d'un deuxième réseau de neurones mis en oeuvre par le module de discrimination de la figure 1, [0036] - [fig.4] la figure 4 est un organigramme d'une phase d'entrainement du procédé de génération d'un ensemble de données simulées du fouillis de mer, et [0037] - [fig.5] la figure 5 est un organigramme d'une phase d'exploitation du procédé de génération d'un ensemble de données simulées du fouillis de mer. [0038] La présente invention se propose d'utiliser un algorithme (l'apprentissage profond ( « Deep Learning » en anglais) entrainé sur des données radar réelles afin de générer des données radar simulées représentatives de la structure réelle du fouillis de mer. Une telle approche permet ainsi de s'affranchir des modèles statistiques utilisés pour décrire le comportement moyen du fouillis de mer. [0039] On entend par « donnée de fouillis de mer », une mesure d'une grandeur physique associée au fouillis de mer, mesure pouvant être effectuée par une électronique bas niveau d'un système radar, notamment un système radar aéroporté. En variante, la notion de données pourrait correspondre à une grandeur physique avant sa mesure par le système radar. [0040] Un ensemble de données de fouillis de mer est une matrice de données de fouillis de mer, donnant des données en fonction de coordonnées géométriques. Selon l'exemple décrit, chaque ensemble de données de fouillis de mer est une matrice à deux dimensions, selon une coordonnée d'angle et une coordonnée de distance. Un ensemble de données de fouillis de mer présente par exemple 128 pas d'angle et 128 pas de distance. [0041] La figure 1 représente un dispositif de génération 10 d'un ensemble de données simulées de fouillis de mer. [0042] Le dispositif de génération 10 est un dispositif électronique comportant une unité de traitements d'informations formée par exemple d'une mémoire 42 et d'un processeur 44 associé à la mémoire 42. [0043] La mémoire 42 du dispositif dc génération 10 stocke une base de données 14 et un programme informatique 15. L'exécution du programme 15 permet la mise en oeuvre du procédé selon l'invention. [0044] Le programme informatique 15 est un algorithme d'apprentissage du type réseau de neurones convolutifs, de préférence fondé sur le principe GAN, selon l'anglais « Generative Adversarial Nctwork », principe par exemple décrit dans l'article!. J. Goodfcllow et al., « Generative adversarial nets », in NIPS, 2014. [0045] Le programme informatique 15 intègre deux réseaux de neurones qui sont entrain& simultanément. [0046] Le programme informatique 15 comporte ainsi un module de génération 16, comportant un premier réseau de neurones, et un module de discrimination 26 comportant un second réseau de neurones. [0047] La base de données 14 comprend une pluralité d'ensemble de données d'entrainement De. La base de données 14 comprend avantageusement au moins 105 ensembles de données d'entraînement De. [0048] Chaque ensemble de données d'entrainement De correspond à un ensemble de données réelles, acquis par un système raclai- réel et stocké dans la base de données 14. [0049] Avantageusement, un ensemble de données réelles peut conduire à plusieurs ensembles de données d'entrainement par application de transformations de contraste, de luminosité, de gamma et/ou de miroir De telles techniques d'augmentation de données permettent d'améliorer la généralisation des réseaux de neurones et de générer des données synthétiques avec plus de variations. [0050] Comme représenté sur la figure 2, le module de génération 16 est propre, à partir d'un vecteur aléatoire Va appliqué en entrée, à produire en sortie un ensemble de données simulées Ds. [0051] Le vecteur aléatoire Va est constitué d'une pluralité de coordonnées. Le nombre de cordonnées est par exemple égal à 100. Le vecteur aléatoire Va est construit de manière à constituer un vecteur gaussien, centré et de variance unitaire, c'est-à-dire dont les coordonnées constituent un bruit blanc. [0052] Le module 16 est constitué par un premier réseau de neurones 18. [0053] Un poids synaptique est associé à chaque neurone du réseau 18, en tant que paramètre. Les valeurs des poids synaptiques évoluent au cours de la phase d'entrainement du réseau, afin d'adapter les poids synaptiques du réseau 18 pour qu'au final, le module de génération 16 produise des ensembles de données simulées Ds qui 6 soient semblables aux ensembles de données d'entraînement de la base de données 14, c'est-à-dire à des ensemble de données réelles. [0054] Les valeurs initiales des poids synaptiques sont, par exemple fixées aléatoirement. Les valeurs finales des poids synaptiques sont celles utilisées dans la phase d'exploitation du module 16 pour générer des ensembles de données simulées exploitables, par exemple pour le test de chaincs de traitement de systèmes radar. [0055] Le premier réseau de neurones 18 comporte de préférence une pluralité de neurones artificiels organisés en couches successives. Il comporte par exemple successivement les couches 48, 52, 54, 56, 58 et 50. [0056] La couche d'entrée 48 correspond à la variable d'entrée Va et la couche de sortie 50 correspond à la variable de sortie Ds. [0057] Selon l'exemple illustré sur la figure 2, la couche d'entrée 48 est une couche dense à 1024 sorties ; la couche intermédiaire 52 est une couche dense à 131072 sorties ; la couche 54 est une couche de convolution transposée à deux dimensions avec 128 filtres de taille (5, 5) et un pas de 2 ; la couche 56 est une couche de convolution à deux dimensions avec 32 filtres de taille (5, 5) et un pas de 2 ; la couche 58 est une couche de convolution transposée à deux dimensions avec 32 filtres de taille (5, 5) et un pas de 2 ; et la couche de filtrage 50 est une couche de convolution à deux dimensions avec un filtre de taille (5, 5) et un pas dc 2. [0058] Par définition, une couche dense à N sorties est une couche prenant en entrée un vecteur à K coordonnées et produisant en sortie un vecteur à N coordonnées. La couche effectue des opérations linéaires reliant chaque coordonnée du vecteur de sortie à l'ensemble des coordonnées du vecteur d'entrée en les affectant de poids synaptiques évolutifs. [0059] Par définition, une couche de convolution à deux dimensions avec M filtres de taille (k, 1) est une couche prenant en entrée une matrice et qui calcule la convolution de chaque filtre avec chaque sous-matrice (k, 1) de la matrice d'entrée afin d'obtenir M matrices de convolution aussi appelée carte d'activation. Les filtres dépendent des poids synaptiques du réseau de neurones. Le principe d'une convolution et d'une convolution transposée est décrit dans le document « A guide to convolution arithmetic for deep learning » de V. Dumoulin et F. Visin. [0060] Avantageusement, une fonction d'activation caractérise chaque neurone du premier réseau 18. La fonction d'activation est, par exemple, une fonction non linéaire, par exemple de type ReLU (de l'anglais « Rectified Linear Unit »). [0061] Comme représenté sur la figure 3, le module de discrimination 26 est propre, à partir d'une pluralité d'ensembles de données D appliquée en entrée, à produire en sortie une valeur indicative P, qui est un nombre réel compris entre 0 et 1. [0062] La valeur indicative P correspond à la probabilité que l'ensemble de données 7 appliqué en entrée du module 26 ait un comportement statistique similaire à un ensemble de données réelles. [0063] L'ensemble de données D appliqué en entrée est soit un ensemble de données simulées Ds produit par le module de génération 16, soit un ensemble de données d'entraînement De de la base de données 14. [0064] Comme le premier réseau 18, le deuxième réseau de neurones 28 comporte, pour chaque neurone, des poids synaptiques. Les valeurs initiales des poids synaptiques sont, par exemple, fixées aléatoirement. [0065] Le deuxième réseau de neurones 28 comporte de préférence une pluralité de neurones artificiels organisés en couches successives 60, 62, 64, 66, 68. [0066] Par exemple il comporte une couche d'entrée 60 correspondant à la variable d'entrée D, une couche de sortie 62 correspondant à la variable de sortie P, et des couches inter- médiaires 64, 66, 68, disposées successivement entre la couche d'entrée 60 et la couche de sortie 52. [0067] Selon l'exemple illustré sur la figure 3, la couche d'entrée 60 est une couche de convolution à deux dimensions avec 32 filtres de taille (5.5) et un pas de 2; la couche intermédiaire 64 est une couche de convolution transposée à deux dimensions avec 128 filtres de taille (5, 5) et un pas de 2 ; la couche intermédiaire 66 est une couche de convolution à deux dimensions avec 128 filtres de taille (5.5) et un pas de 2; la couche intermédiaire 68 est une couche dense à 1024 sorties ; et la couche de sortie 62 est une couche dense à une sortie. [0068] Avantageusement, une fonction d'activation caractérise chaque neurone du premier réseau 18. La fonction d'activation est, par exemple, une fonction non linéaire, par exemple de type ReLU (de l'anglais « Rectified Linear Unit »). [0069] Le module de supervision de l'entrainement 36 comporte un algorithme d'optimisation permettant de faire évoluer les paramètres des premier et second réseaux de neurones simultanément. [0070] De préférence, l'algorithme d'optimisation est un algorithme d'optimisation Adam, connu de l'homme du métier. L'algorithme d'optimisation Adam est notamment détaillé dans le document Adam : A method fOr stochastic optimization de D. P. Kingma et J. Ba, dans arXiv - Computer Vision and Machine Learning (2014). Dans la présente application, l'algorithme Adam est paramétré avec un taux d'apprentissage a. de 10 4, un taux de décroissance exponentiel pour les estimations du premier moment Pl de 0.5, et un taux de décroissance exponentiel pour les estimations du second moment [32 de 0.9. [0071] L'algorithme d'optimisation est fondé sur la minimisation d'une fonction de coût C, et met en oeuvre une méthode dite de descente du gradient. [0072] La fonction de coût C dépend d'une ou plusieurs valeurs indicatives calculée(s) par le 8 module de discrimination 28 à partir d'un ou plusieurs ensembles de données d'entraînement De de la base de données 14 et d'une valeur indicative calculée par le module de discrimination 28 sur un ensemble de données simulées Ds produit par le module de génération 16. [0073] Plus particulièrement, la fonction de cout C vérifie avantageusement l'équation suivante : [0074] C =E[P(x, )J -E[P(xe) xs-Ds xe-De [0075] où E[ lest la fonction d'espérance mathématique, P(x) est la fonction réalisée par le module de discrimination 26, x, est un échantillon d'un ensemble de données simulées Ds, et x, est un échantillon d'un ensemble de données d'entrainement De. [0076] La fonction de coût à minimiser consiste ainsi à mesurer l'écart entre la distribution des valeurs indicatives des ensembles de données d'entrainement et la valeur indicative de l'ensemble de données simulées en sortie du module de génération, comme décrit dans l'article « Wasserstein GAN » de M. Arjovsky et al. [0077] Pour la phase d'entrainement (Figure 4), le procédé selon l'invention, en mettant en oeuvre l'algorithme d'optimisation, fait évoluer les premier et second réseaux de neurones simultanément. [0078] Plus précisément, au cours de la phase d'entrainement 100, les premier et deuxième réseaux 18, 28 sont constamment mis en compétition l'un avec l'autre et se renforcent mutuellement : le module de génération 16 fournit des données simulées de plus en plus similaires aux données d'entraînement, tandis que le module de discrimination 26 est de plus en plus restrictif sur ce qui peut constituer un ensemble de données semblable à un ensemble de données réelles. [0079] La phase d'apprentissage 100 débute (étape 110) en fournissant, en tant que variable d'entrée du module 16, un vecteur aléatoire Va et en extrayant un ensemble de données d'entrainement De de la base de données 14. [0080] Puis, à l'étape 120, les premier et deuxième réseaux 18, 28 sont initialisées avec des poids synaptiques aléatoires. [0081] A l'étape 130, la phase d'apprentissage 100 se poursuit de manière itérative. [0082] A l'itération courante, un ensemble de données simulées Ds est obtenu en sortie du module 16 à partir du vecteur aléatoire Va. [0083] A l'étape 140, l'ensemble de données simulées Ds est appliqué en entrée du module 26 pour obtenir une valeur indicative simulées Ps. [0084] Puis, à l'étape 150, l'ensemble de données d'entrainement De est appliqué en entrée du module 26 pour obtenir une valeur indicative entrainement Pe. [0085] A l'étape 160, la valeur courante de la fonction de coût C est calculée à partir des valeurs indicatives Ps et Pe. 9 [0086] A l'étape 170, l'algorithme d'optimisation du module 36 est appliqué pour modifier les poids synaptiques des réseaux de neurones des modules 16 et 26 afin de minimiser la fonction dc coût. [0087] A l'étape 180, les poids des réseaux de neurones des modules 16 et 26 sont mise à jour et la phase d'entraincment 100 boucle à l'itération suivante. [0088] Les itérations se poursuivent jusqu'à atteindre ou être suffisamment proche d'un minimum (ou d'un maximum) dc la fonction de coût C. [0089] Avantageusement, les premier et deuxième réseaux dc neurones, 18 et 28, sont ca- ractérisés respectivement par une première et une deuxième période d'actualisation, correspondant au nombre d'itérations de l'algorithme d'optimisation entre chaque actualisation de leurs poids synaptiques. [0090] La deuxième période d'actualisation est avantageusement supérieure à la première période d'actualisation, de manière à faire converger le premier réseau de neurones (c'est-à-dire à produire un ensemble de données simulées semblable à l'ensemble de données d'entrainement) plus rapidement que le second réseau de neurones (c'est-à-dire à définir un critère de ressemblances entre les ensembles de données comparées qui soit réaliste). [0091] Par exemple, la première période d'actualisation est égale à 1 et la deuxième période d'actualisation est égale à 32. Cela implique que le premier réseau de neurones 18 est configure pour actualiser ses poids synaptiques à chaque itération, et le deuxième réseau de neurones 28 est configuré pour actualiser ses poids synaptiques toutes les 32 itérations. [0092] En variante et avantageusement, à chaque itération sont pris en compte une pluralité d'ensembles de données d'entrainement De et une pluralité d'ensembles de données simulées Ds pour comparer des distributions de la valeur indicative et non pas des valeurs isolées. Par exemple 32 ensembles de données sont considérés à chaque itération. [0093] A l'issue de la phase d'entrainement 100, les poids synaptiques du premier réseau de neurones sont entièrement déterminés et figés et un module de génération 16 final est obtenu. [0094] Une fois la phase d'entrainement 100 réalisée et les poids synaptiques du module 16 déterminés, le procédé selon l'invention passe dans une phase d'exploitation 200 du module de génération 16 final. [0095] La phase d'exploitation 200 va être présentée à l'aide de la figure 4. [0096] Lors d'une étape initiale 210, un vecteur aléatoire Va est appliqué en entrée du module de génération 16 final. Ce vecteur aléatoire Va est de même nature que celui utilisé pour la phase d'entrainement 100. Il s'agit ainsi par exemple, d'un vecteur aléatoire gaussien, centré et de variance unitaire. Le vecteur aléatoire est généré aléa- toirement. [0097] Lors d'une étape 220, l'exécution du module de génération 16 final sur le vecteur aléatoire Va conduit à la production d'un ensemble de données simulées Ds. [0098] Conformément à la phase d'entrainement, l'ensemble de données simulées Ds obtenu dans la phase d'exploitation est similaire à un ensemble de données réelles de fouillis de nier. [0099] A l'étape 230, l'ensemble de données simulées de fouillis de mer Ds est utilisé pour déterminer un seuil de détection optimal d'un système radar donné (en particulier le système radar ayant permis d'obtenir les ensembles de données d'entrainement de la base de donnée 14) afin de mieux détecter les cibles d'intérêt, ou, plus généralement, pour pouvoir définir les caractéristiques d'un système radar lors de la conception de ce dernier. [0100] Le dispositif de génération 10 selon l'invention permet de générer des données simulées de fouillis de mer se rapprochant le plus possible de données réelles, en s'affranchissant de l'utilisation de modèles statistiques du fouillis de mer. [0101] En outre, chaque ensemble de données simulées est différent en fonction du vecteur aléatoire appliqué en entrée du module de génération 16 final, ce qui permet d'avoir une grande variabilité entre les ensembles de données simulées produites. [0102] Si, dans l'exemple de la figure 1, le dispositif de génération 10 met en oeuvre l'invention sous la forme d'un programme d'ordinateur exécutable par le processeur 44, en variante elle peut être mise en oeuvre sous forme matérielle, par exemple au moyen d'un composant logique programmable, tel qu'un FPGA (de l'anglais « Field Programmable Gate Array ») ou encore au moyen d'un circuit intégré dédié, tel qu'un ASIC ((le l'anglais « Applications Specific Integrated Circuit »). 11 [Revendication 1] [Revendication 2] [Revendication 3]