FR3112228A1 - Dispositif et procédé pour générer un masque de la silhouette du profil d’une structure - Google Patents

Dispositif et procédé pour générer un masque de la silhouette du profil d’une structure Download PDF

Info

Publication number
FR3112228A1
FR3112228A1 FR2006976A FR2006976A FR3112228A1 FR 3112228 A1 FR3112228 A1 FR 3112228A1 FR 2006976 A FR2006976 A FR 2006976A FR 2006976 A FR2006976 A FR 2006976A FR 3112228 A1 FR3112228 A1 FR 3112228A1
Authority
FR
France
Prior art keywords
image
output
module
networks
network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR2006976A
Other languages
English (en)
Other versions
FR3112228B1 (fr
Inventor
Anne VIGNERON
Mathieu SIMON
Florian NICOLAS
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Thales SA
Original Assignee
Thales SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Thales SA filed Critical Thales SA
Priority to FR2006976A priority Critical patent/FR3112228B1/fr
Publication of FR3112228A1 publication Critical patent/FR3112228A1/fr
Application granted granted Critical
Publication of FR3112228B1 publication Critical patent/FR3112228B1/fr
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]

Abstract

DISPOSITIF ET PROCEDE POUR GENERER UN MASQUE D’une silhouette dE PROFIL d’une structure La présente invention concerne un dispositif et un procédé pour générer un masque d’une silhouette de profil d’une structure à partir d’une image optique où apparait la structure. Le dispositif comprend un module de réception configuré pour recevoir une image optique dans laquelle apparait une structure, et délivrer une image de sortie ; un module de traitement d’image configuré pour analyser l’image de sortie du module de réception ; et un module de sortie couplé au module de traitement d’image, configuré pour générer un masque d’une silhouette de profil de la structure apparaissant sur l’image optique. Le dispositif est caractérisé en ce que le module de traitement d’image est un réseau de neurones à convolutions comprenant une partie contractante de réduction d’image apte à extraire des caractéristiques de l’image de sortie du module de réception, la partie contractante étant commune à une pluralité de sous-réseaux opérant en parallèle, chaque sous-réseau de la pluralité des réseaux étant configuré pour réaliser une fonction d’analyse prédéfinie sur des caractéristiques extraites de l’image, le module de traitement d’image étant apte à fournir vers le module de sortie, une sortie unique correspondant à la combinaison des résultats produits par chacun des sous-réseaux. Figure 3

Description

Dispositif et procédé pour générer un masque de la silhouette du profil d’une structure
Domaine de l’invention
L’invention concerne le domaine du traitement d’images, et s’intéresse plus particulièrement à la problématique de l’obtention d’un masque de la silhouette du profil d’une structure à partir d’images optiques sur lesquelles la structure apparaît.
Etat de la Technique
Une problématique d’application industrielle est celle de la surveillance maritime avec la nécessité d’identifier des structures flottantes, tel que des navires. Un moyen pour identifier un navire peut consister à reconnaitre un navire à partir de photographies sur lesquelles apparaissent différents types de navires sous des angles de vues différents.
Le traitement d’images optiques (i.e.des photographies) est un domaine dans lequel les réseaux de neurones artificiels sont largement utilisés. En effet, les réseaux de neurones artificiels ont des capacités de calcul permettant de couvrir un vaste champ d'applications, que ce soit pour de la reconnaissance de formes, de la segmentation, de la séparation de sources, ou encore de la compression de données.
Un réseau de neurones artificiels ou réseau neuronal artificiel, est un système dont la conception est à l'origine schématiquement inspirée du fonctionnement des neurones biologiques, et qui par la suite s'est rapproché des méthodes statistiques. Les réseaux de neurones sont généralement optimisés par des méthodes d’apprentissage automatique.
Ainsi, la large majorité des réseaux de neurones artificiels possède un algorithme d’apprentissage ou d’entrainement, qui consiste à modifier des poids synaptiques en fonction d’un jeu de données présentées en entrée du réseau. Le but de cet entraînement est de permettre au réseau de neurones d'apprendre à partir des exemples et de produire des modèles d’intelligence artificielle entrainés.
L’apprentissage profond (« Deep Learning » en anglais) fait partie de la famille des méthodes d'apprentissage automatique. L’apprentissage profond automatique doit être effectué sur des bases de données suffisamment grandes, capables d'entraîner des systèmes de grandes tailles. De nouvelles données peuvent être ajoutées à la base d’apprentissage en permanence pour affiner l’apprentissage.
Les réseaux de neurones à convolution dits CNN pour « Convolutional Neural Network » sont un type de réseaux de neurones à apprentissage profond. Un réseau neuronal convolutif se compose de deux types de neurones artificiels, agencés en « couches » traitant successivement l'information :
- les neurones de traitement, qui traitent une portion limitée de l'image (appelée « champ réceptif ») au travers d'une fonction de convolution ;
- les neurones de mise en commun des sorties dits de « pooling » (totale ou partielle).
Un traitement correctif non-linéaire et ponctuel peut être appliqué entre chaque couche pour améliorer la pertinence du résultat. L'ensemble des sorties d'une couche de traitement constitue des cartes d’activation qui servent d’entrées à la couche suivante. Dans le cas d’une image en entrée, les tenseurs intermédiaires sont généralement à trois dimensions, et on parle de carte d’activation ou « features maps » selon l’anglicisme connu, pour les sous-tenseurs 2D.
Une architecture de réseau de neurones convolutif est ainsi formée par un empilement de traitements composé :
- de couches de convolution (CONV) qui traitent les données d'un champ récepteur. Le volume de la couche de convolution est dimensionné par trois hyperparamètres que sont la profondeur, le pas et la marge. La profondeur de la couche correspond au nombre de noyaux de convolution (ou nombre de neurones associés à un même champ récepteur). Le pas de la couche contrôle le chevauchement des champs récepteurs. Plus le pas est petit, plus les champs récepteurs se chevauchent et plus le volume de sortie sera grand. La marge de la couche permet de contrôler la dimension spatiale du volume de sortie. La couche de convolution met en œuvre des filtres de convolution, le nombre de ces filtres dépend de la profondeur du tenseur d’entrée ainsi que de la profondeur du tenseur de sortie. Pour une couche de convolution, on peut représenter les filtres mis en œuvre sous la forme d’un unique tenseur de dimensions [nb_dim_entree, nb_dim_sortie, largeur_filtre, hauteur_filtre] ;
- de couches de pooling (POOL) pour compresser l'information en réduisant la taille de l'image, souvent par sous-échantillonnage;
- de couches d’activation (par exemple ReLU) pour mettre en œuvre une fonction mathématique aussi appelée non-linéarité, sur les signaux de sortie ;
- de couches « entièrement connectées » (FC pour « Full Connected ») où les neurones ont des connexions vers toutes les sorties de la couche précédente ; et
- d’une fonction (LOSS) d’optimisation de critères, pour spécifier comment l'entrainement du réseau pénalise l'écart entre le signal prévu et réel.
Il existe différents types de réseaux à convolutions utilisés pour le traitement d’images, chacun présentant des spécificités d’architecture, dont par exemple le réseau U-Net et les réseaux R-CNN.
Le réseau U-Net est un réseau de neurones à convolutions développé pour la segmentation d'images biomédicales, et proposé par O. Ronneberger, P. Fisher et T. Brox dans l’article « U-Net : Convolutional Networks for Biomedical Image Segmentation », arXiv : 1505.04597v1 [cs.CV] 18 May 2015. Comme illustré sur la , le réseau U-Net se compose d'une partie contractante de réduction d’image avec extraction de caractéristiques, et d’une partie expansive de reconstruction pour revenir à la taille d’origine de l’image en localisant les éléments connus, ce qui lui confère une architecture en forme de «U». La branche de réduction est un réseau de convolutions typique qui consiste en une application répétée de convolutions (CONV), chacune suivie d'une unité linéaire rectifiée (ReLU) et d'une opération de pooling maximum (Max Pooling ou POOL). Pendant la contraction, les informations spatiales sont réduites tandis que les informations sur les caractéristiques sont augmentées. La branche de reconstruction combine les informations spatiales et les informations de caractéristiques à travers une séquence de convolutions et concaténations ascendantes avec des fonctionnalités haute résolution issues de la voie contractante. La montre une architecture U-Net standard comprenant 23 couches de convolution et ayant une partie contractante (de gauche) composée d’une application répétée de deux convolutions 3x3, chacune suivie d’une ReLU et d’une opération de max pooling de 2x2 sur un pas de 2, et une séquence expansive (de droite) composée de sur-échantillonnage par convolutions 2x2 (up-convol), de concaténation et de deux convolutions 3x3 chacune suivie d’une ReLU, avec une couche finale de convolution 1x1.
Les réseaux R-CNN pour « Regions and Convolutional Neural Networks » mixent une méthode d’extraction de zones d’intérêt avec des réseaux de neurones convolutifs, et permettent de classifier des zones d’intérêt présentes sur une image. L’article de R. Girschick, J. Donahue, T. Darrell et J. Malik (2014) « Rich feature hierarchies for accurate object detection and semantic segmentation », arXiv : 1311.2524v5 [cs.CV] 22 Oct 2014, décrit l’architecture d’un réseau R-CNN. Des variantes connues du réseau R-CNN sont les réseaux Fast R-CNN et Faster R-CNN. Ces architectures R-CNN répondent au problème de la détection d’objets en complétant le CNN par une sélection sur une image de plus petites régions sur lesquelles la détection d’objet est appliquée. Le principe général de fonctionnement d’un système R-CNN est dans un premier temps de chercher les zones d'intérêts dans une image à l'aide d’un algorithme de segmentation de l'image puis, à partir de ces zones, plusieurs boîtes labellisées qui englobent les objets sont générées. Chaque boîte est classifiée à l'aide du CNN, et la boîte qui englobe le mieux l'objet à identifier est sélectionnée en fonction des résultats de la prédiction. Une approche connue sous le nom « Mask R-CNN » et décrite dans l’article de He K., Gkioxari G., Dollár P., Girshick R. (2018) « Mask R-CNN » arXiv : 1703.06870v3 [cs.CV] 24 Janv 2018, adapte l’architecture Faster R-CNN pour faire de la segmentation d’instance. En parallèle de la détection de boîte englobante, une branche dédiée à la segmentation est ajoutée. Cette méthode très performante est cependant surtout adaptée à la segmentation multi-classe.
Aussi, bien que les réseaux CNN, et en particulier les réseaux U-Net et R-CNN soient adaptés au traitement d’images, ils ne répondent pas individuellement au besoin précité de pouvoir identifier de manière fiable une structure flottante, comme un navire, à partir d’une photographie.
En effet, deux problématiques successives doivent être résolues. Premièrement celle de déterminer si une photographie sur laquelle apparait un navire est exploitable, puis deuxièmement celle de détourer le navire apparaissant sur la photographie pour permettre son identification.
Un but de l’invention est de répondre au besoin précité.
Un objet de la présente invention est de proposer un procédé mis en œuvre par ordinateur permettant d’identifier une structure à partir de l’analyse d’une photographie où apparait la structure. Plus précisément, le procédé mis en œuvre par ordinateur permet de générer un masque de la silhouette de profil d’une structure apparaissant sur une photographie.
Un autre objet de l’invention est de proposer un dispositif qui comprend des moyens permettant de mettre en œuvre le procédé proposé.
Pour obtenir les résultats recherchés, des procédés, dispositifs et produits programmes d’ordinateur sont décrits.
De manière générale, l’invention consiste à partir d’une image optique où apparait une structure devant être identifiée, à extraire un ensemble de caractéristiques qui vont permettre de déterminer si l’image est exploitable, de détourer la structure, de déterminer son orientation, afin de générer un masque de la silhouette de profil de cette structure.
Avantageusement, l’ensemble des étapes du traitement d’une image optique est effectué par un seul module d’intelligence artificielle constitué d’un unique réseau de neurones, composé de plusieurs sous-réseaux de neurones spécialisés.
En particulier, un dispositif pour générer le masque d’une silhouette de profil d’une structure à partir d’une image optique où apparait la structure comprend :
- un module de réception configuré pour recevoir une image optique dans laquelle apparait une structure, et délivrer une image de sortie ;
- un module de traitement d’image configuré pour analyser l’image de sortie du module de réception ; et
- un module de sortie couplé au module de traitement d’image, configuré pour générer le masque d’une silhouette de profil de la structure apparaissant sur l’image optique ;
- le dispositif étant caractérisé en ce que le module de traitement d’image est un réseau de neurones à convolutions ayant une entrée couplée à la sortie du module de réception et une sortie couplée à l’entrée du module de sortie ; ledit réseau de neurones à convolutions comprenant une partie contractante de réduction d’image apte à extraire des caractéristiques de l’image de sortie du module de réception, la partie contractante étant commune à une pluralité de sous-réseaux opérant en parallèle, chaque sous-réseau de la pluralité des réseaux étant configuré pour réaliser une fonction d’analyse prédéfinie sur des caractéristiques extraites de l’image ; le module de traitement d’image étant apte à fournir vers le module de sortie, une sortie unique correspondant à la combinaison des résultats produits par chacun des sous-réseaux.
Selon des modes de réalisations alternatifs ou combinés :
- la partie contracte du module de traitement d’images est un réseau de neurones à convolutions configuré comme un encodeur selon une architecture de réseau U-Net, et la pluralité des sous-réseaux comprend au moins un réseau de neurones à convolutions configuré pour réaliser une segmentation sémantique et un réseau de neurones à convolutions pour faire une analyse sur des caractéristiques d’exploitabilité de l’image ;
- la pluralité de sous-réseaux opérant en parallèle comprend de plus un réseau configuré pour faire une analyse sur des caractéristiques d’orientation de la structure;
- chaque sous-réseau de la pluralité des sous-réseaux est configuré pour générer une fonction de coût déterminée par sa fonction d’analyse ;
- la fonction de coût générée pour chaque sous-réseau est définie comme une entropie croisée ;
- la partie contractante est un réseau de neurones encodeur recevant une image 2D en entrée et ayant plusieurs couches de convolution ;
- la structure apparaissant sur une image optique est une structure flottante de type navire.
L’invention concerne aussi un procédé pour générer un masque d’une silhouette de profil d’une structure, à partir d’une image optique où apparait la structure, le procédé comprenant au moins les étapes de :
- recevoir une image optique dans laquelle apparait une structure ;
- analyser l’image optique en mettant en œuvre un module de traitement d’image du dispositif de l’invention ; et
- générer un masque d’une silhouette de profil de la structure apparaissant sur l’image optique reçue si l’image analysée est exploitable.
Dans un mode de réalisation, le procédé comprend de plus une étape d’afficher la silhouette de profil sur un dispositif d’affichage.
L’invention concerne aussi un produit programme d’ordinateur qui comprend des instructions de code permettant d’effectuer les étapes du procédé lorsque le programme est exécuté sur un ordinateur.
Les applications du procédé de l’invention peuvent être variées. Une application avantageuse est celle de l’identification de navires ou de structures flottantes pour la surveillance maritime.
Description des figures
Différents aspects et avantages de l’invention vont apparaitre en appui de la description d’un mode préféré d’implémentation de l’invention mais non limitatif, avec référence aux figures ci-dessous :
illustre une architecture connue de réseau U-Net ;
illustre un schéma simplifié du dispositif de l’invention dans un mode de réalisation ;
illustre un schéma détaillé du module d’analyse d’image de l’invention dans un mode de réalisation ;
illustre les étapes du procédé de l’invention dans un mode de réalisation ; et
illustre une implémentation préférentielle du module d’intelligence artificielle du dispositif de l’invention.
Description détaillée de l’invention
Comme précédemment indiqué, l’invention propose une solution pour l’obtention d’une silhouette de profil d’une structure à partir d’une photographie sur laquelle apparaît cette structure. Elle requiert la résolution de deux problèmes techniques, que sont :
- la détermination de l’exploitabilité d’une photographie ; et
- le détourage d’une structure apparaissant sur cette photographie.
Une tâche complémentaire quant à l’orientation de la structure peut être incluse, permettant de détecter l’avant et l’arrière de la structure (la proue et la poupe dans le cas d’un navire), afin d’orienter toutes les images dans le même sens pour pouvoir comparer les silhouettes des navires.
L’opération qui vise à déterminer si une image est exploitable est plus complexe qu’une opération de détection de la présence d’un objet d’intérêt sur une image, comme abordée dans les solutions connues. En effet, il s’agit d’une tâche de tri qui, selon la configuration de la prise de vue, peut être très spécifique et qui doit permettre de définir si l’image est exploitable pour l’extraction d’une silhouette de profil. Notamment, cette opération doit permettre de déterminer si la structure visible sur l’image apparaît de profil.
L’opération qui vise à effectuer le détourage d’une structure apparaissant sur une image est traitée comme une opération de segmentation sémantique, et non de détection, l’invention appliquant l’hypothèse qu’une détection a déjà été faite, et que les photographies traitées font apparaitre une structure. L’invention opère une segmentation sémantique (ou détourage dans le cas d’une segmentation bi-classe « objet d’intérêt/arrière-plan »).
La illustre un schéma simplifié du dispositif de l’invention dans un mode de réalisation. Le dispositif 200 comprend généralement un module d’entrée 210 configuré pour recevoir des images optiques (202, 204), un module de traitement d’image par réseau de neurones 212 configuré selon l’invention et un module de sortie 214 configuré pour générer un masque d’une silhouette de profil.
Selon des modes de réalisation, les images optiques reçues par le module d’entrée 210, peuvent être issues d’une base de données 202 comprenant une pluralité d’images préalablement enregistrées, ou être des photographies prises directement par des dispositifs locaux ou distants, adaptés pour communiquer les photographies au module d’entrée.
En particulier, dans une phase d’apprentissage du réseau de neurones du module de traitement d’image 212, la base de données est une base de données d’apprentissage contenant un volume important d’images du domaine d’application concerné. Pour une application préférentielle du domaine maritime, une telle base de données d’apprentissage contient des milliers de photographies où sur chacune apparait un navire ou une structure flottante, permettant un entrainement du réseau de neurones de l’invention. Les données d’apprentissage sont des photographies hétérogènes de navires, de tailles éventuellement variables, chaque photographie étant associée à une image de référence qui est un masque binaire de la silhouette de profil du navire apparaissant sur la photographie concernée dans le cas où la photographie est exploitable, ou qui est une sortie vide dans le cas où la photographie n’est pas exploitable.
En phase d’inférence, le module de traitement d’image 212 opère sur le réseau de neurones préalablement entrainé pour l’application visée.
Le module d’entrée 210 regroupe l’ensemble des prétraitements permettant de transformer les images optiques issues des différentes sources (202, 204) en données images ayant un format apte à être traité par le module de traitement d’images 212. Ainsi, le module d’entrée est configuré pour lire des données d’une image optique en tenant compte du format de stockage de l’image (jpeg, png, tif, etc.), et pour formater les données lues. Il peut s’agir par exemple de sélectionner un nombre de canaux (RVB ou niveaux de gris) ou de redimensionner les images, par exemple pour limiter le volume de données si les images sont très résolues. Il n’est pas donné plus de détails sur le module d’entrée, mais l’homme du métier comprend que le module d’entrée peut comprendre d’autres fonctionnalités pour générer des données optiques en sortie qui sont directement interprétables et utilisables par le module de traitement d’image 212.
Le module de traitement d’image 212 du dispositif de l’invention est un unique réseau de neurones recevant une seule entrée (la sortie du module d’entrée 210) et qui est composé de plusieurs sous-réseaux, chacun étant dédié à la réalisation d’une fonction d’analyse de l’image d’entrée tel que détaillé en référence avec la . Le module de traitement d’image 212 délivre une seule sortie.
Le module de sortie 214 reçoit en entrée la sortie du module de traitement d’image 212 pour générer un masque d’une silhouette de profil (aussi désigné par l’expression « masque de détourage ») de la structure apparaissant sur l’image d’entrée, si l’image est considérée par l’analyse comme exploitable, ou sinon générer une image vide si l’image d’entrée est inexploitable. Le module de sortie peut être couplé à un dispositif d’affichage 206 local ou distant.
La illustre un schéma détaillé du module de traitement d’image 212 de l’invention dans un mode de réalisation. Les éléments identiques d’une figure à l’autre conservent les mêmes références. Selon les principes de l’invention, le module de traitement d’image 212 est un unique circuit ou réseau de neurones qui comprend plusieurs sous-réseaux de neurones (302, 304, 306, 308). Il comprend notamment un premier sous-réseau de neurones 302 dit réseau de neurones généraliste qui est configuré pour recevoir en entrée des données images issues du module d’entrée, et générer une sortie 312 qui devient une entrée pour chacun des autres sous-réseaux de neurones d’une pluralité de sous-réseaux (304, 306, 308). Chaque sous-réseau de la pluralité des sous-réseaux est un réseau de neurones spécialisé qui est dédié à une fonction spécifique. Dans un mode de réalisation, un réseau de neurones spécialisé 304 est dédié à une fonction d’analyse d’exploitabilité de l’image ou analyse de tri, un réseau de neurones spécialisé 306 est dédié à une fonction de segmentation de l’image, et un réseau de neurones spécialisé 308 est dédié à une fonction d’analyse de l’orientation de la structure apparaissant sur l’image. Avantageusement, la configuration matérielle et logicielle du module de traitement d’image 212 de l’invention permet de mener en parallèle les différents traitements des sous-réseaux spécialisés – tri, segmentation, orientation -, et de fournir vers le module de sortie 214, une sortie unique 314 qui correspond à une combinaison du résultat produit par chacun des réseaux spécialisés.
La illustre une implémentation d’une architecture du réseau de neurones du module de traitement d’image 212 du dispositif de l’invention. Dans un mode de réalisation préférentiel, les sous-réseaux de neurones constituant le réseau de neurones 212 sont basés sur des réseaux de neurones convolutifs. Ainsi le réseau généraliste 402 est un réseau de neurones encodeur recevant une image 2D en entrée, et ayant plusieurs couches de convolution. Chaque couche de convolution dénotée « Convolution 2D NxMxF » est une couche avec F filtres dont les noyaux sont de taille NxM. Le bloc encodeur 402 comprend deux empilements de convolution : un premier empilement est composé de deux couches de convolution 2D 5x5x8 et d’une couche de sous-échantillonnage 2D de type « Max-Pooling » sur des carrés de taille 2x2. Il génère une sortie intermédiaire qui devient une entrée d’un deuxième empilement de convolutions, composé de deux couches de convolution 2D 5x5x16 et d’une couche de sous-échantillonnage 2D de type « Max-Pooling » sur des carrés de taille 2x2, et qui génère la sortie 412 du réseau généraliste 402.
La sortie 412 du réseau généraliste 402 est distribuée sur plusieurs sous-réseaux de neurones spécialisés (404, 406, 408) qui opèrent simultanément.
Un premier sous-réseau 404 est configuré pour effectuer une fonction de tri d’image, en déterminant si l’image est exploitable. Dans l’implémentation préférentielle de la , il est constitué de trois empilements de couches de traitement. Un premier empilement est composé d’une couche de convolution 2D 5x5x32 et d’une couche de sous-échantillonnage 2D de type « Max-Pooling » sur des carrés de taille 2x2. Il génère une sortie intermédiaire qui devient une entrée d’un deuxième empilement de convolution, composé d’une couche de convolution 2D 5x5x64 et d’une couche de sous-échantillonnage 2D de type « Max-Pooling » sur des carrés de taille 2x2. Il génère une sortie intermédiaire qui devient une entrée d’un troisième empilement composé d’une couche d’aplatissement ou « Flatten » selon l’anglicisme connu, permettant de transformer une image 2D en un vecteur 1D, d’une couche « Dense 1024 » et d’une couche « Dense 2 ». Les couches « Dense » sont des couches entièrement connectées (FC), qui permettent d’agréger l’information globalement car un neurone de sortie combine l’information de tous les neurones de la couche précédente. La couche Dense 1024 permet d’avoir une connexion entre tous les neurones, et la couche Dense 2 permet de réduire la dernière dimension pour avoir une sortie binaire. Le réseau de tri 404 génère en sortie un label ‘1’ si l’image est jugée exploitable ou un label ‘0’ dans le cas contraire.
Un second sous-réseau 406 est configuré pour effectuer une fonction de segmentation d’image. Dans l’implémentation préférentielle de la , il est constitué de quatre empilements de couches de traitement. Un premier empilement est composé de deux couches de convolution 2D 5x5x32, et génère une sortie intermédiaire qui devient une entrée d’un deuxième empilement de convolutions, composé de deux couches de convolution 2D 5x5x16 et d’une couche de sur-échantillonnage 2D de type « Up-Sampling » qui se fait par interpolation 2x2. Il génère une sortie intermédiaire qui devient une entrée d’un troisième empilement composé de deux couches de convolution 2D 5x5x8 et d’une couche de sur-échantillonnage 2D de type « Up-Sampling » par interpolation 2x2. Il génère une sortie intermédiaire qui devient une entrée d’un quatrième empilement composé d’une couche de convolution 2D 1x1x2. Le réseau de segmentation 406 génère en sortie un masque binaire.
Un troisième sous-réseau 408 est configuré pour effectuer une fonction de détermination d’orientation de la structure apparaissant sur l’image qui est analysée. Il est constitué de trois empilements de couches de traitement. Un premier empilement est composé d’une couche de convolution 2D 5x5x32 et d’une couche de sous-échantillonnage 2D de type « Max-Pooling » sur des carrés de taille 2x2. Il génère une sortie intermédiaire qui devient une entrée d’un deuxième empilement de convolution, composé d’une couche de convolution 2D 5x5x64 et d’une couche de sous-échantillonnage 2D de type « Max-Pooling » sur des carrés de taille 2x2. Il génère une sortie intermédiaire qui devient une entrée d’un troisième empilement composé d’une couche « Flatten » permettant de transformer une image 2D en un vecteur 1D, d’une couche « Dense 1024 » et d’une couche « Dense 2 ». Les couches « Dense » sont des couches complètement connectées. Le réseau d’orientation 408 génère en sortie un label binaire selon l’orientation identifiée. Par exemple, dans le cas de la détermination de l’orientation d’un navire, le réseau spécialisé pour l’orientation réalise la fonction de détection de la proue du navire qui permettra d’orienter toutes les images dans le même sens, par exemple proue à droite, pour pouvoir ensuite comparer les navires. La sortie est binaire : elle vaut 1 si la proue est à droite de l’image (si le navire avance de la gauche vers la droite) et 0 dans le cas inverse. Il est à noter que l’architecture est semblable à celle du sous-réseau spécialisé de tri.
L’architecture de la est donnée à titre d’implémentation préférentielle mais non limitative. Selon les applications du dispositif de l’invention, la configuration de chacun des différents sous-réseaux pourra varier. Par exemple, les sous-réseaux spécialisés peuvent être implémentés avec un nombre variables de couches de convolution (une ou plusieurs) chacune suivie d’une couche de sous-échantillonnage ou pooling (« convolution + pooling » utilisées pour la phase d’’extraction des informations), puis suivi de couches pleinement connectées (« Flatten + Dense ») utilisées pour la phase de classification. A l’issue des opérations de convolution et de pooling, chaque neurone n’a été affecté que par une partie de l’image totale puisque les opérations de convolution sont appliquées sur des champs récepteurs. La couche complètement connectée vient relier l’ensemble des neurones et donc l’ensemble des pixels de l’image.
L’ensemble réseau généraliste 402 (comme encodeur) et sous-réseau spécialisé de segmentation 406 (comme décodeur) constitue une architecture U-Net, où la tâche de segmentation est a priori la plus complexe ou du moins étant celle qui requiert une architecture assez spécifique. Il ressort alors que l’architecture du réseau généraliste encodeur 402 est déterminée par l’architecture du sous-réseau spécialisé pour la segmentation 406, du fait de la symétrie entre l’encodeur et le décodeur d’une architecture U-Net. En considérant que les tâches de tri et d’orientation sont réalisées par les ensembles (402 + 404) et (402 + 408) respectivement, il ressort que les architectures des réseaux réalisant ces tâches sont ajustées de sorte à factoriser les premières couches dans le réseau généraliste.
Le réseau U-Net est divisé en deux parties : une première partie ou bloc commun composé du réseau généraliste encodeur 402 de réduction d’image et d’extraction de caractéristiques, commune à une pluralité de sous-réseaux (404, 406, 408) opérant en parallèle, et qui dans une implémentation préférentielle comprennent au moins un sous-réseau de segmentation sémantique 406 et un sous-réseau de tri 404, et de manière optionnelle un sous-réseau d’orientation 408.
Dans des réalisations où la partie encodeur du bloc généraliste n’est pas assez profonde car elle est conçue assez générique afin de la mutualiser avec les autres sous-réseaux parallèles, c’est-à-dire qu’elle ne va pas assez loin dans l’extraction des caractéristiques, une variante de réalisation est d’ajouter un second bloc encodeur pour compléter le premier bloc généraliste.
La illustre les étapes du procédé de l’invention dans un mode de réalisation en phase d’inférence. Le procédé 500 débute par une étape 502 de réception d’une image d’entrée à analyser. Dans une étape suivante 504, le procédé permet d’extraire de l’image un ensemble de caractéristiques génériques qui doivent être exploitées pour chaque fonction spécialisée.
L’ensemble des caractéristiques extraites est distribué à chacun des sous-réseaux de neurones spécialisé. Selon les architectures connues, il aurait été possible de résoudre le problème technique global à l’aide de plusieurs réseaux indépendants, ayant chacun leurs entrées et leurs sorties propres, avec extraction des caractéristiques spécifiques à chaque réseau. Cependant, comme chacun de ces réseaux spécialisés exploite des données d’une même entrée, à savoir les photographies de navires dans le cas d’une application maritime, l’architecture proposée par l’invention permet de mutualiser les premières couches du réseau de neurones global, et ainsi éviter de la redondance de circuit, et donc gagner en surface et en temps de calcul.
Après l’étape d’extraction de caractéristiques 504, le procédé permet d’opérer les différents traitements spécifiques en parallèle, que sont au moins l’analyse de l’exploitabilité de l’image (la fonction de tri) et la segmentation sémantique de l’image. Dans l’exemple décrit d’images de navires, une fonction supplémentaire dédiée à la détermination de l’orientation du navire est implémentée, et est aussi opérée en parallèle des fonctions de tri et de segmentation.
Dans un premier enchaînement d’étapes pour le tri, le procédé permet l’analyse 506 des caractéristiques extraites pour déterminer l’exploitabilité de l’image d’entrée. La définition de l’exploitabilité d’une image est un point critique, qui peut s’avérer déterminant selon l’application finale du problème.
Dans le cas de l’application maritime, des critères d’inexploitabilité peuvent être définis comme par exemple :
- le navire se distingue très mal de l’arrière-plan ou est partiellement masqué par l’avant-plan ;
- il existe une confusion possible entre plusieurs navires sur l’image ;
- le navire est photographié en plongée : l’angle de prise de vue de la photo est tel que le navire est écrasé et que les différents niveaux de hauteur ne se détachent pas du pont ;
- le navire n’est pas ou pas suffisamment de profil, ce qui peut se caractériser par des superstructures parallèles à bâbord et tribord qui apparaissent décalées, ou une proue ou une poupe non visible, ou encore une poupe largement visible, de sorte que si l’on considère que l’image est un profil, alors la longueur totale du bateau est faussement augmentée ;
- la face du château est largement visible et de largeur apparente plus grande que le côté du château ;
- le château masque une partie du pont ;
- la ligne de flottaison n’est pas horizontale.
Les quelques exemples de critères influant l’analyse d’exploitabilité d’une image sur laquelle apparait une structure flottante de type navire ne sont pas limitatifs, et l’homme du métier peut définir tout autre critère selon l’application visée. Le réseau de neurones spécialisé pour faire le tri est configuré selon les critères prédéfinis.
L’analyse des caractéristiques extraites au regard des critères prédéfinis et des données d’apprentissage (les images et leur sortie de référence) permet de générer 508 une fonction de coût de l’exploitabilité notée . Dans un mode de réalisation, la fonction de coût d’exploitabilité peut être définie comme une entropie croisée selon l’équation :
est la vérité terrain du label exploitable/inexploitable.
La dernière couche du réseau ou dernière étape de traitement 510 fournit une probabilité associée au label « exploitable », qui est convertie de manière binaire par seuillage. La sortie du traitement de tri est soit une image non vide (image exploitable) et la vérité terrain pour la tâche de tri est le label 1, soit une image vide (branche non de 510, image non exploitable) et la vérité terrain est le label 0.
Dans un autre enchaînement d’étapes mené en parallèle du tri, le procédé permet de réaliser la segmentation sémantique ou détourage 512 de l’image. La segmentation sémantique est associée 514 à une fonction de coût de segmentation notée . Dans un mode de réalisation, la fonction de coût de segmentation peut être définie comme une entropie croisée appliquée à chaque pixel de l’image, selon l’équation :
est la vérité terrain indiquant si le pixel appartient ou non au navire apparaissant sur l’image.
La dernière couche du réseau ou dernière étape du traitement 516 fournit pour chaque pixel la probabilité d’appartenance au navire, notée , qui est convertie par seuillage en une valeur binaire . La sortie du traitement de segmentation sémantique est un masque binaire composé de 1 pour les pixels appartenant au navire apparaissant sur l’image et de 0 pour les pixels de l’arrière-plan.
Dans un autre enchaînement d’étapes mené en parallèle du tri et de la segmentation, le procédé permet l’analyse 518 des caractéristiques extraites pour déterminer l’orientation de la structure, au regard de critères prédéfinis. Dans un mode de réalisation,i.e.l’orientation d’un navire dans l’exemple décrit, le procédé permet de détecter où se situe la proue du navire (à droite ou à gauche de l’image).
L’analyse des caractéristiques extraites au regard des critères d’orientation prédéfinis et des données d’apprentissage, permet de générer 520 une fonction de coût de l’orientation notée . Dans un mode de réalisation, la fonction de coût d’orientation peut être définie comme une entropie croisée selon l’équation :
est la vérité terrain du label orientation (proue à droite/proue à gauche dans le cas de l’application maritime).
La dernière couche du réseau ou dernière étape du traitement 522 fournit la probabilité que le navire soit orienté selon le sens voulu, notée , probabilité convertie en sortie binaire, qui vaut 1 si la structure est orientée selon les critères prédéfinis,i.e. la proue est à droite de l’image (le navire avance de la gauche vers la droite), ou qui vaut 0 dans le cas contraire (branche non de 522). Dans un mode de réalisation, le procédé permet d’appliquer une symétrisation 524 si la structure n’est pas orientée selon le critère d’orientation prédéfini.
L’ensemble des analyses faites par chacun des sous-réseaux spécialisé - tri ; segmentation ; orientation - est combiné pour générer 526 un masque de la silhouette de profil de la structure apparaissant sur l’image d’entrée, selon les différents labels obtenus.
Analytiquement, il est possible d’écrire qu’à chaque image d’entréeiest associée la sortie , telle que :
est l’identité si , et est l’opérateur de symétrie droite-gauche (symétrie par rapport à l’axe vertical) si .
Le procédé est décrit pour une phase d’inférence. Cependant, dans une phase d’apprentissage, le réseau est entraîné dans sa globalité. La fonction de coût globale pour chaque image d’entrée est calculée selon l’équation suivante :

- est le terme de Kronecker qui vaut 1 si l’image est exploitable et 0 sinon ;
- et sont des coefficients qui introduisent une pondération entre la tâche de tri, la tâche d’orientation et la tâche de segmentation sémantique.
Ainsi, il a été décrit dans un mode de réalisation non limitatif, un procédé qui est une chaîne de traitements qui prend en entrée une photographie de navire, sans plus de contraintes sur les conditions de prise de vue, et qui fournit en sortie un masque de la silhouette du profil du navire. Le dispositif permettant de mettre en œuvre le procédé consiste en un unique réseau de neurones, qui se subdivise en deux parties :
- une première partie commune et généraliste, avec une architecture de type encodeur, qui extrait des caractéristiques d’une image et peut être commune à diverses tâches de traitement d’images ;
- une deuxième partie dédiée, propre à chaque fonction à réaliser, avec une architecture de plusieurs réseaux spécifiques qui sont appliqués en parallèle, notamment :
- au moins un sous-réseau spécialisé pour le tri des images et un sous-réseau spécialisé pour le détourage des structures apparaissant sur les images ; et
- selon les applications, un sous-réseau spécialisé pour l’orientation des images par exemple.
Il a été décrit que chaque sous-réseau après l’analyse assignée fournit une sortie à partir de laquelle une fonction de coût spécialisée est calculée. La fonction de coût du réseau de neurones global est calculée comme étant la somme pondérée du coût de la fonction de tri et, si l’image est exploitable, du coût des fonctions d’orientation et de détourage.
L’invention propose ainsi une solution globale et complète à un problème complexe. L’un de ses points forts est de combiner les différents aspects du problème en un unique réseau de neurones : l’apprentissage et l’inférence sont ainsi grandement simplifiés car il suffit de fournir en entrée des images optiques où apparait une structure pour obtenir, sans étapes intermédiaires, soit la silhouette de profil de la structure si l’image est exploitable, soit une sortie vide dans le cas contraire. La mise en œuvre est donc optimisée puisque les différentes fonctions sont réalisées en parallèle dans la seconde partie du réseau de neurones.

Claims (10)

  1. Dispositif (200) pour générer un masque d’une silhouette de profil d’une structure à partir d’une image optique où apparait la structure, comprenant :
    - un module de réception (210) configuré pour recevoir une image optique dans laquelle apparait une structure, et délivrer une image de sortie ;
    - un module de traitement d’image (212) configuré pour analyser l’image de sortie du module de réception ; et
    - un module de sortie (214) couplé au module de traitement d’image, configuré pour générer un masque d’une silhouette de profil de la structure apparaissant sur l’image optique ;
    - le dispositif étant caractérisé en ce que le module de traitement d’image (212) est un réseau de neurones à convolutions ayant une entrée couplée à la sortie du module de réception et une sortie couplée à l’entrée du module de sortie ; ledit réseau de neurones à convolutions comprenant une partie contractante de réduction d’image (302) apte à extraire des caractéristiques de l’image de sortie du module de réception, la partie contractante étant commune à une pluralité de sous-réseaux (304, 306, 308) opérant en parallèle, chaque sous-réseau de la pluralité des réseaux étant configuré pour réaliser une fonction d’analyse prédéfinie sur des caractéristiques extraites de l’image ;
    - le module de traitement d’image étant apte à fournir vers le module de sortie (214), une sortie unique correspondant à la combinaison des résultats produits par chacun des sous-réseaux.
  2. Le dispositif selon la revendication 1 dans lequel la partie contracte du module de traitement d’images est un réseau de neurones à convolutions (302) configuré comme un encodeur selon une architecture de réseau U-Net, et dans lequel la pluralité des sous-réseaux comprend au moins un réseau de neurones à convolutions configuré pour réaliser une segmentation sémantique et un réseau de neurones à convolutions pour faire une analyse sur des caractéristiques d’exploitabilité de l’image.
  3. Le dispositif selon la revendication 1 ou 2 dans lequel la pluralité de réseaux opérant en parallèle comprend de plus un réseau configuré pour faire une analyse sur des caractéristiques d’orientation de la structure.
  4. Le dispositif selon l’une quelconque des revendications 1 à 3 dans lequel chaque réseau de la pluralité des réseaux est configuré pour générer une fonction de coût déterminée par sa fonction d’analyse.
  5. Le dispositif selon la revendication 4 dans lequel la fonction de coût générée pour chaque réseau est définie comme une entropie croisée.
  6. Le dispositif selon l’une quelconque des revendications 1 à 5 dans lequel la partie contractante est un réseau de neurones encodeur recevant une image 2D en entrée et ayant plusieurs couches de convolution.
  7. Le dispositif selon l’une quelconque des revendications 1 à 6 dans lequel la structure apparaissant sur une image optique est une structure flottante de type navire.
  8. Un procédé pour générer un masque d’une silhouette de profil d’une structure, à partir d’une image optique où apparait la structure, le procédé étant mis en œuvre pour un dispositif selon l’une quelconque des revendications 1 à 7, et comprenant au moins les étapes de :
    - recevoir une image optique dans laquelle apparait une structure ;
    - analyser l’image optique ; et
    - générer un masque d’une silhouette de profil de la structure apparaissant sur l’image optique reçue si l’image analysée est exploitable.
  9. Le procédé selon la revendication 8 comprenant de plus une étape d’afficher la silhouette de profil sur un dispositif d’affichage.
  10. Un produit programme d’ordinateur, ledit programme d’ordinateur comprenant des instructions de code permettant d’effectuer les étapes du procédé selon la revendication 8 ou 9, lorsque ledit programme est exécuté sur un ordinateur.
FR2006976A 2020-07-02 2020-07-02 Dispositif et procédé pour générer un masque de la silhouette du profil d’une structure Active FR3112228B1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR2006976A FR3112228B1 (fr) 2020-07-02 2020-07-02 Dispositif et procédé pour générer un masque de la silhouette du profil d’une structure

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR2006976A FR3112228B1 (fr) 2020-07-02 2020-07-02 Dispositif et procédé pour générer un masque de la silhouette du profil d’une structure
FR2006976 2020-07-02

Publications (2)

Publication Number Publication Date
FR3112228A1 true FR3112228A1 (fr) 2022-01-07
FR3112228B1 FR3112228B1 (fr) 2022-07-29

Family

ID=73013570

Family Applications (1)

Application Number Title Priority Date Filing Date
FR2006976A Active FR3112228B1 (fr) 2020-07-02 2020-07-02 Dispositif et procédé pour générer un masque de la silhouette du profil d’une structure

Country Status (1)

Country Link
FR (1) FR3112228B1 (fr)

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
HE K.GKIOXARI G.DOLLAR P.GIRSHICK R.: "Mask R-CNN", ARXIV : 1703.06870V3 [CS.CV, 24 January 2018 (2018-01-24)
KAIMING HE ET AL: "Deep Residual Learning for Image Recognition", 2016 IEEE CONFERENCE ON COMPUTER VISION AND PATTERN RECOGNITION (CVPR), 10 December 2015 (2015-12-10), arXiv, pages 1 - 12, XP055353100, Retrieved from the Internet <URL:https://arxiv.org/abs/1512.03385> [retrieved on 20170309], DOI: 10.1109/CVPR.2016.90 *
LIANG-CHIEH CHEN ET AL: "MaskLab: Instance Segmentation by Refining Object Detection with Semantic and Direction Features", ARXIV.ORG, CORNELL UNIVERSITY LIBRARY, 201 OLIN LIBRARY CORNELL UNIVERSITY ITHACA, NY 14853, 13 December 2017 (2017-12-13), XP080843437 *
O. RONNEBERGERP. FISHERT. BROX: "U-Net : Convolutional Networks for Biomédical Image Seg mentation", ARXIV : 1505.04597VL [CS.CV, 18 May 2015 (2015-05-18)
R. GIRSCHICKJ. DONAHUET. DARRELLJ. MALIK: "Rich feature hiérarchies for accurate object détection and semantic segmentatio", ARXIV : 1311.2524V5 [CS.CV, 22 October 2014 (2014-10-22)
SHERVIN MINAEE ET AL: "Image Segmentation Using Deep Learning: A Survey", ARXIV.ORG, CORNELL UNIVERSITY LIBRARY, 201 OLIN LIBRARY CORNELL UNIVERSITY ITHACA, NY 14853, 15 January 2020 (2020-01-15), XP081579848 *
THOMAS CHRISTOPHE: "U-Nets with ResNet Encoders and cross connections - Towards Data Science", 14 March 2019 (2019-03-14), XP055783209, Retrieved from the Internet <URL:https://web.archive.org/web/20190314163119if_/https://towardsdatascience.com/u-nets-with-resnet-encoders-and-cross-connections-d8ba94125a2c> [retrieved on 20210308] *

Also Published As

Publication number Publication date
FR3112228B1 (fr) 2022-07-29

Similar Documents

Publication Publication Date Title
Villon et al. Coral reef fish detection and recognition in underwater videos by supervised machine learning: Comparison between Deep Learning and HOG+ SVM methods
EP3707676B1 (fr) Procédé d&#39;estimation de pose d&#39;une caméra dans le référentiel d&#39;une scène tridimensionnelle, dispositif, système de réalite augmentée et programme d&#39;ordinateur associé
EP1298588B1 (fr) Procédé de traitement d&#39;images pour l&#39;extraction automatique d&#39;éléments sémantiques
EP3640843B1 (fr) Procédé d&#39;extraction de caractéristiques d&#39;une empreinte digitale représentée par une image d&#39;entrée
EP3633552B1 (fr) Procédés d&#39;apprentissage de paramètres d&#39;un réseau de neurones à convolution et de détection d&#39;éléments d&#39;intérêt visibles dans une image
EP3572976A1 (fr) Procede de traitement d&#39;un flux d&#39;images video
EP2364490A1 (fr) Dispositif a architecture pipeline de flot de donnees pour la reconnaissance et la localisation d&#39;objets dans une image par balayage de fenetres de detection
CA3043090C (fr) Procede de reconnaissance de caracteres
FR3081244A1 (fr) Procede de reconnaissance de caracteres
CN110688966B (zh) 语义指导的行人重识别方法
EP3633544B1 (fr) Procede d&#39;association d&#39;elements d&#39;interet visibles dans une video
EP3633545A1 (fr) Procedes d&#39;apprentissage de parametres d&#39;un reseau de neurones a convolution, de detection d&#39;elements d&#39;interet visibles dans une image et d&#39;association d&#39;elements d&#39;interet visibles dans une image
WO2013156374A1 (fr) Procede de reconnaissance d&#39;un contexte visuel d&#39;une image et dispositif correspondant
EP1035493A1 (fr) Procédé de reconnaissance de formes
Noman et al. Seagrass detection from underwater digital images using Faster R-CNN with NASNet
Johnson-Roberson et al. Segmentation and classification of coral for oceanographic surveys: A semi-supervised machine learning approach
Jameel et al. Gait recognition based on deep learning
Carlsson et al. Artificial intelligence applied to the classification of eight middle Eocene species of the genus Podocyrtis (polycystine radiolaria)
FR3112228A1 (fr) Dispositif et procédé pour générer un masque de la silhouette du profil d’une structure
Mbani et al. Implementation of an automated workflow for image-based seafloor classification with examples from manganese-nodule covered seabed areas in the Central Pacific Ocean
WO2019129985A1 (fr) Procede de formation d&#39;un reseau de neurones pour la reconnaissance d&#39;une sequence de caracteres et procede de reconnaissance associe
SHAKER et al. The impact of image enhancement and transfer learning techniques on marine habitat mapping
Hubálovský et al. Evaluation of deepfake detection using YOLO with local binary pattern histogram
Mbani et al. An automated image-based workflow for detecting megabenthic fauna in optical images with examples from the Clarion–Clipperton Zone
EP1525553A2 (fr) Procede et systeme de localisation automatique de zones de texte dans une image

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20220107

PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 4