INPI-France/Brevets-Francais-2024-Chunked huggingface dataset:
L’étape d’entrainement comprend optionnellement en outre une sous-étape d’application 127, au modèle, d’un algorithme d’apprentissage supervisé à partir du ou de chaque vecteur normalisé VN, du ou de chaque jeu de paramètres moyenné et de la matrice d’adjacence A.
L’algorithme d’apprentissage supervisé est par exemple un algorithme de descente de gradient stochastique.
Lors de la sous-étape d’application 127, l’algorithme d’apprentissage supervisé modifie les poids du modèle de sorte que, lorsqu’un vecteur normalisé VN est fourni en entrée du modèle, le modèle fournit en sa sortie un jeu de paramètres le plus proche possible du jeu de paramètres moyenné correspondant audit vecteur normalisé VN. La matrice d’adjacence A permet de limiter le nombre de poids à modifier par l’algorithme d’apprentissage supervisé.
Après l’étape d’entrainement 123, le modèle est dit entrainé et la phase d’apprentissage 110 prend fin.
La phase d’exploitation 120 est par exemple mise en œuvre à la suite de la phase d’apprentissage 110, ou plusieurs heures, jours, ou mois après la phase d’apprentissage 110.
La phase d’exploitation 120 comprend une troisième étape de réception 131 lors de laquelle, pour chaque zone Z i , un nombre de piéton(s) dans la zone Z i est reçu.
Optionnellement, la troisième étape de réception 131 comprend une sous-étape 132 d’obtention d’information(s) depuis l’au moins un capteur présent dans l’environnement 10.
Lorsque l’au moins un capteur comprend des caméras, lors de la sous-étape d’obtention 132, les images capturées par les caméras sont obtenues par l’unité de traitement 24.
Puis, la troisième étape de réception 131 comprend optionnellement une sous-étape 133 de détermination d’un nombre de piéton(s) dans chaque zone Z i par traitement des informations obtenues lors de la sous-étape d’obtention 132.
Lorsque les informations sont des images, la détermination du nombre de piéton(s) dans chaque zone Z i est par exemple effectuée par application d’un algorithme de traitement d’images connu en soi. Un tel algorithme repose par exemple sur des outils d’intelligence artificielle tels que des modèles issues d’un apprentissage machine. Les images sont alors des données VCA (de l’anglais, Video Content Analysis ).
Puis la phase d’exploitation 120 comprend une étape 134 d’application, au nombre de piéton(s) reçu pour chaque zone Z i , du modèle entrainé lors de la phase d’apprentissage 110, pour obtenir un jeu respectif de paramètres caractérisant le déplacement des piétons dans l’environnement 10.
Le jeu de paramètres obtenu lors de l’étape d’application 134 dépend alors des nombres de piéton(s) reçus.
Un tel cas est par exemple observable si l’environnement 10 est un aéroport. Il n’est en effet plus possible de revenir en arrière après le passage des douanes.
Ainsi, la matrice d’adjacence A n’est pas symétrique. Dans l’exemple précité, le coefficient A i , j correspondant au passage d’une première zone Z i située avant les douanes, vers une deuxième zone Z j située après les douanes, est égal un. Dans ce même exemple, le coefficient A j , i correspondant au passage inverse est égal à zéro.
Puis, la phase d’apprentissage 110 comprend une deuxième étape 122 de réception d’une base de données. La base de données comprend, pour chacun d’une pluralité d’instants successifs, T k un couple de données. Chaque couple de données comprend d’une part un nombre de piéton(s) dans chaque zone Z i , et d’autre part un jeu de paramètres caractérisant le déplacement des piétons dans l’environnement 10. Les nombres de piéton(s) dans chaque zone sont par exemple regroupés sous la forme d’un vecteur. De manière analogue, le jeu de paramètres forme par exemple un vecteur.
Le jeu de paramètres comprend par exemple un ou plusieurs paramètres choisis dans un groupe consistant en :
une vitesse moyenne de déplacement des piétons dans l’environnement 10, un débit maximal de piétons en un ou plusieurs points de l’environnement 10, un débit moyen de piétons en un ou plusieurs points de l’environnement 10, une fréquence d’arrivée aux abords de l’environnement 10, de véhicule(s) de transport, et pour au moins un premier et un deuxième points de l’environnement, une proportion des piétons au deuxième point qui sont précédemment passés par le premier point, et pour au moins un premier point de l’environnement, un deuxième point de l’environnement et au moins un chemin entre les premier et deuxième points, une proportion de piétons empruntant ledit chemin parmi les piétons allant du premier au deuxième point.
Puis, la phase d’apprentissage 110 comprend une étape 123 d’entraînement d’un modèle en fonction de la base de données et de la matrice d’adjacence A. Le modèle est configuré pour fournir, à partir d’un nombre de piéton(s) dans chaque zone Z i , un jeu respectif de paramètres caractérisant le déplacement des piétons dans l’environnement 10.
Le modèle est par exemple un réseau de neurones. Selon cet exemple, le réseau de neurones comprend une couche d’entrée comportant un neurone pour chaque zone Z i de l’environnement 10, une ou plusieurs couches cachées comportant une pluralité de neurones chacune, et une couche de sortie comportant un neurone pour chaque paramètre du jeu de paramètres. En outre, le réseau de neurones comprend des connexions entre chaque neurone d’une couche vers un neurone d’une couche suivante et, pour chaque connexion, un poids réglable.
En particulier, le modèle est préférentiellement un réseau de neurones en graphe (de l’anglais Graph Neural Network ) ou un réseau convolutionnel en graphe (de l’anglais Graph Convolutional Network ). De tels réseaux comprennent une pluralité de couches cachées comportant chacune autant de neurones que la couche d’entrée. En outre, ces réseaux sont propres à recevoir la matrice d’adjacence A et à n’inclure des connexions que pour les déplacements possibles selon la matrice d’adjacence A. Autrement dit, avec ces réseaux, une connexion entre un premier neurone n i d’une couche cachée et un deuxième neurone n j de la couche cachée suivante, n’existe qu’à la condition qu’un déplacement entre une première zone respective Z i et la deuxième zone respective Z j soit possible, selon la matrice d’adjacence A. Ainsi, les réseaux GNN et GCN comprennent un nombre plus faible de connexions qu’un réseau de neurones profond classique, et par conséquent moins de poids réglables, permettant ainsi d’accélérer l’apprentissage du réseau de neurones et de stabiliser l’apprentissage du réseau de neurones.
L’étape d’entraînement 123 comprend optionnellement une première sous-étape de calcul 124, pour chaque zone Z i , d’un nombre moyen de piéton(s) dans la zone Z i . A cet effet, lors de la première sous-étape de calcul 124, pour chaque zone Z i , le nombre moyen de piéton(s) est par exemple calculé sur une fenêtre temporelle glissante. La fenêtre glissante comprend par exemple un nombre N prédéfini d’instants successifs T k . La fenêtre glissante est appliquée aux nombres de piéton(s) des couples de données de la base de données. Le nombre N prédéfini d’instants successifs T k est par exemple égal à cinq, dix, quinze, ou vingt.
A titre d’exemple, pour chaque zone Z i , un premier nombre moyen est calculé par moyenne des nombres de piéton(s) dans ladite zone Z i , pour chacun des N premiers instants (T k ) k = 1,… ,N de la base de données. Puis, pour chaque zone Z i , un deuxième nombre moyen est calculé par moyenne des nombres de piéton(s) dans ladite zone Z i , pour N instants successifs (T i ) i= 2,… ,N+1 entre la deuxième instant T 2 et le N+1-ième instant T N+1 de la base de données. Puis, pour chaque zone Z i , le calcul est préférentiellement itéré jusqu’à ce que la fenêtre glissante atteigne le dernier instant T D pour lequel la base de données comprend un couple de données.
On comprend alors que pour un instant T k quelconque et pour chaque zone Z i , le nombre de piéton(s) de la zone Z i contribue à N nombres moyennés de piéton(s) de ladite zone Z i .
De manière analogue, l’étape d’entrainement 123 comprend une deuxième sous-étape de calcul 125, d’au moins un jeu de paramètres moyenné sur la fenêtre temporelle glissante. Le calcul du ou de chaque jeu de paramètres moyenné est analogue à celui du nombre moyen de piéton(s) dans chaque zone Z i .
Préférentiellement, les mêmes fenêtres temporelles glissantes sont appliquées pour le calcul des nombres moyens de piéton(s) dans chaque zone Z i lors de la première sous-étape de calcul 124 et pour le calcul des jeux de paramètres moyens lors de la deuxième sous-étape de calcul 125.
Optionnellement, les première 124 et deuxième 125 sous-étapes de calcul sont effectuées simultanément par l’unité de traitement 24.
L’étape d’entrainement 123 comprend avantageusement une sous-étape 126 de normalisation du nombre moyen de piéton(s) dans chaque zone Z i , pour obtenir un vecteur normalisé dont une norme algébrique est de préférence égale à un. La sous-étape de normalisation 126 est également appelée sous-étape de standardisation.
La norme algébrique d’un vecteur comprenant composantes est par exemple définie par l’équation suivante :
Optionnellement, la phase d’exploitation 120 comprend une première étape 135 de détection d’une anomalie dans le jeu de paramètres. L’anomalie est par exemple le fait que l’un des paramètres du jeu de paramètres dépasse un seuil prédéfini.
Par exemple, lorsque le jeu de paramètres comprend la vitesse moyenne des piétons dans l’environnement 10, si la vitesse moyenne est supérieure à une première valeur prédéfinie telle que 10km/h, alors une anomalie est détectée indiquant que les piétons courent au lieu de marcher. Une telle anomalie est par exemple caractéristique d’un mouvement anormal de foule.
Dans le même exemple, si la vitesse moyenne est inférieure à une deuxième valeur prédéfinie telle que 2km/h, alors une anomalie est détectée indiquant une congestion globale de l’environnement 10 empêchant le déplacement serein des piétons.
Selon un autre exemple, lorsque le jeu de paramètres comprend le débit maximal de piétons en un point de l’environnement 10, si ce débit est inférieur à une troisième valeur prédéfinie telle que 100 piétons par minute, alors une anomalie est détectée indiquant qu’un élément bouche le point précité de l’environnement 10.
Selon encore un autre exemple, lorsque le jeu de paramètres comprend la fréquence d’arrivée aux abords de l’environnement 10, de véhicules de transport, si cette fréquence est inférieure à une quatrième valeur prédéfinie, alors une anomalie est détectée indiquant un problème de circulation des véhicules de transport. Un tel problème est par exemple susceptible de créer une congestion dans l’environnement 10 car les piétons risquent de ne pas être extraites de l’environnement 10 suffisamment rapidement par les véhicules de transport.
Il est clair que le ou les seuils prédéfinis sont susceptibles d’évoluer au cours du temps, et notamment au cours de la journée ou de l’année.
Optionnellement, la phase d’exploitation 120 comprend, si une anomalie est détectée lors de la première étape de détermination 135, une première étape 136 de mise en œuvre d’une action de correction dans l’environnement 10.
L’action de correction est par exemple, une ouverture d’une nouvelle zone Z i dans l’environnement 10, une extension d’une zone Z i déjà existante ou une ouverture d’un passage entre deux zones Z i pas encore adjacentes.
La première étape de mise en œuvre 136 comprend par exemple l’émission d’une alerte en direction d’un opérateur, via l’unité d’affichage 22. L’opérateur est alors propre à mettre en œuvre l’une des actions de correction précitées.
Alternativement, la première étape de mise en œuvre 136 comprend par exemple l’envoi d’une commande d’actionnement dans l’environnement 10 pour effectuer une des actions de correction précitées, de manière autonome.
En variante ou en complément facultatif, suite à l’étape d’application 134, la phase d’exploitation 120 comprend une étape 137 de prédiction du déplacement des piétons dans l’environnement 10. L’étape de prédiction 137 comprend par exemple la simulation du déplacement des piétons dans l’environnement 10, par un simulateur inclus dans la mémoire 28 de l’unité de traitement 24, à partir du jeu de paramètres obtenu par application du modèle entrainé au nombre de piéton(s) dans chaque zone Z i .
On comprend alors que les paramètres du jeu de paramètres sont des grandeurs d’entrée du simulateur permettant de prédire, le plus fidèlement possible, l’évolution du déplacement des piétons dans l’environnement 10. Autrement dit, ces paramètres sont des paramètres de calibrage du simulateur.
Lors de l’étape de prédiction 137, un scénario prédit est déterminé. Le scénario prédit décrit l’évolution du déplacement des piétons dans l’environnement 10 durant une durée prédéfinie.
La durée prédéfinie est par exemple égale à cinq minutes, dix minutes, trente minutes, une heure, deux heures, ou cinq heures.
Il est clair que plus la durée prédéfini est longue, moins le scénario prédit est réaliste. En effet, après une longue durée, la situation dans l’environnement 10 a évolué telle que les paramètres du jeu de paramètres sont devenus obsolètes.
Le scénario prédit comprend une évolution de grandeurs simulées par le simulateur.
Dans cet exemple, on a défini un jeu de cinq instructions. Chaque instruction comprend un premier champ (Opcode) contenant un code d'opération, définissant le type d'instruction à exécuter, et un deuxième champ (Parameters) contenant des paramètres de l'instruction.
Le jeu d'instructions de la comprend une instruction SET_REGION de définition d'une sous-région du circuit mémoire externe 253, contenant les données à transférer ou destinées à recevoir des données selon le sens du transfert. La sous-région est une zone de la mémoire 253 contenant (ou destinée à contenir) une matrice de valeurs ordonnées, par exemple, selon un agencement de type "row major" tel que décrit en relation avec la . Dans cet exemple, la sous-région est définie par une adresse de base, correspondant, par exemple, à l'emplacement du premier élément de la matrice (adresse @0 de la valeur A 0,0 dans l'exemple de la ), par la taille des éléments de la matrice, et par le nombre de d'éléments par ligne dans la matrice (nombre N de colonnes dans l'exemple de la ).
Le champ de paramètres de l'instruction SET_REGION comprend un premier sous champ (BASE_ADDR) contenant l'adresse du premier élément de la sous-région (par exemple l'adresse @0 dans l'exemple de la ), un deuxième sous-champ (EL_SIZE)) contenant la taille des éléments de la matrice définissant la sous-région (par exemple 1 si la taille des éléments de la matrice est égale à la taille d'un mot dans la mémoire 253), et un troisième sous-champ (R_WIDTH) contenant une valeur définissant la largeur de la matrice (par exemple le nombre N de colonnes de la matrice dans l'exemple de la ).
Comme expliqué ci-dessus en relation avec la , à partir de ces paramètres, l'adresse de n'importe quel élément de position x,y dans la sous-région matricielle définie par l'instruction SET_REGION peut être déterminée par la formule Addr(x,y) = BASE_ADDR + EL_SIZE*(x*N+y). Ainsi, une fois la sous-région définie au moyen de l'instruction SET_REGION, il suffit, pour accéder à un élément quelconque de la sous-région, de transmettre au circuit d'accès direct 203 uniquement les coordonnées x,y de l'élément dans la matrice A, et non l'adresse complète de l'élément dans la mémoire 253.
Le jeu d'instructions de la comprend en outre une instruction READ_TRANSFER de commande d'un transfert asynchrone de séquences de données de la sous-région de la mémoire externe 253 (aussi appelée mémoire source), définie au préalable au moyen de l'instruction SET_REGION, vers la mémoire destination, ici la mémoire CSRAM 201. L'instruction READ_TRANSFER prend pour paramètres un motif (agencement) élémentaire de données à transférer de la mémoire source vers la mémoire destination. Plusieurs itérations du motif peuvent être transférées de la mémoire source vers la mémoire destination, avec un décalage prédéfini en lecture et un décalage prédéfini en écriture entre deux itérations consécutives de transfert du motif. Autrement dit, la séquence de données peut comprendre plusieurs itérations (ou répétitions) de transfert d'un même motif élémentaire, situées à des emplacements distincts, régulièrement espacés, dans la sous-région de la mémoire source définie au préalable au moyen de l'instruction SET_REGION.
Le champ de paramètres de l'instruction READ_TRANSFER comprend un premier sous champ (X pos) et un deuxième sous-champ (Y pos) contenant les coordonnées, dans la sous-région préalablement définie dans le circuit mémoire source par l'instruction SET_REGION, d'une première cellule de référence de la séquence de données à transférer. L'adresse définie par les sous champ (X pos) et (Y pos) est une adresse relative dans la sous-région définie au préalable au moyen de l'instruction SET_REGION (coordonnées x et y dans la représentation matricielle de la sous-région). Ainsi, le poids (nombre de bits) utilisé pour transmettre cette adresse est inférieur au nombre de bits nécessaires pour coder l'adresse complète de la cellule dans la mémoire source.
Le champ de paramètres de l'instruction READ_TRANSFER comprend en outre un troisième sous-champ (IMC address) définissant l'adresse d'écriture de départ de la séquence dans le circuit mémoire destination. On notera que l'adresse définie dans ce troisième sous-champ peut être une adresse relative, la plage d'adressage du circuit mémoire destination étant connue du circuit d'accès direct. Par exemple, le circuit d'accès direct est associé au circuit mémoire destination soit de par son positionnement matériel proche de ce circuit mémoire soit de par une configuration du circuit d'accès direct au moyen par exemple d’un registre de configuration du circuit d'accès direct qui est accessible au processeur externe, le circuit d'accès direct connaissant, du fait de cette association, la plage d’adresses système permettant d’accéder au circuit mémoire intelligent via un bus système comprenant un bus d’adresses. Le champ IMC address contient les coordonnées relatives, dans cette plage d’adresse système dédiée au circuit mémoire destination, d'une cellule de référence servant de point de départ pour l'écriture des données dans le circuit mémoire destination. Ceci permet de limiter le nombre de bits à transmettre pour définir l'adresse destination de la séquence de données à transférer.
Le champ de paramètres de l'instruction READ_TRANSFER comprend en outre un quatrième sous-champ (Src off.) définissant le décalage, en lecture, dans la mémoire source, entre deux itérations consécutives du motif élémentaire à transférer.
Le champ de paramètres de l'instruction READ_TRANSFER comprend en outre un cinquième sous-champ (Dst off.) définissant le décalage, en écriture, dans la mémoire destination, entre deux itérations consécutives du motif élémentaire à transférer.
Le champ de paramètres de l'instruction READ_TRANSFER comprend en outre un sixième sous-champ (Length) définissant le nombre d'itérations du motif élémentaire à transférer de la mémoire source vers la mémoire destination.
Dans cet exemple, le champ de paramètres de l'instruction READ_TRANSFER comprend en outre un septième sous-champ (Pattern) définissant la forme du motif élémentaire à transférer, c'est-à-dire l'agencement spatial des données du motif dans la mémoire source autour d’un point de référence. Le motif élémentaire est balayé et transféré selon un ordre de lecture prédéfini. Les données du motif élémentaire sont réagencées, par exemple selon une ou plusieurs lignes ou selon une ou plusieurs colonnes, lors de leur écriture dans le circuit mémoire destination. Le choix de l'agencement dans le circuit mémoire destination dépend de l'organisation des données dans le circuit mémoire destination pour permettre la mise en œuvre de calculs.
Le champ de paramètres de l'instruction READ_TRANSFER peut en outre comprendre un huitième sous-champ (Op. mode) définissant si les écritures effectuées conservent partiellement ou non les données initialement stockée dans la région d'écriture de la mémoire destination lorsque le quatrième sous-champ (Dst off.) est différent de 1, autrement dit supérieur ou égal à 2. Dans un premier mode de fonctionnement aussi appelé "zero padding", les données enjambées, lors de l'écriture, par l'application du décalage défini dans le quatrième sous-champ (Dst off.), sont remplacées par des zéro. Dans un deuxième mode de fonctionnement, aussi appelé "overwriting mode", les données enjambées, lors de l'écriture, par l'application du décalage défini dans la quatrième sous-champ (Dst off.) sont conservées en l'état.
Le jeu d'instructions de la comprend en outre une instruction WRITE_TRANSFER de commande d'un transfert asynchrone de séquences de données dans le sens inverse de ce qui vient d'être décrit. Ainsi, dans cet exemple, la mémoire source est la mémoire CSRAM 201 et la mémoire destination est la mémoire externe 253. De façon similaire à ce qui vient d'être décrit, l'instruction WRITE_TRANSFER prend pour paramètres un motif (agencement) élémentaire de données à transférer de la mémoire source vers la mémoire destination. Plusieurs itérations du motif peuvent être transférées de la mémoire source vers la mémoire destination, avec un décalage prédéfini en lecture et un décalage prédéfini en écriture entre deux itérations consécutives du motif.
Le champ de paramètres de l'instruction WRITE_TRANSFER comprend un premier sous champ (X pos) et un deuxième sous-champ (Y pos) définissant l'adresse d'écriture de départ de la séquence dans la mémoire destination. Là encore, l'adresse définie par les sous champ (X pos) et (Y pos) est une adresse relative dans la sous-région de la mémoire destination définie au préalable au moyen de l'instruction SET_REGION (coordonnées x et y de l'élément dans la zone matricielle définie par l'instruction SET_REGION). Ainsi, le poids (nombre de bits) utilisé pour transmettre cette adresse est inférieur au nombre de bits de l'adresse compète de la cellule dans la mémoire source.
Le champ de paramètres de l'instruction WRITE_TRANSFER comprend un troisième sous champ (IMC address) définissant l'adresse de lecture de départ de la séquence dans le circuit mémoire source. Comme décrit précédemment, cette adresse est une adresse relative, la sous-plage d'adresses du circuit mémoire source étant connue du circuit d'accès direct.
Le champ de paramètres de l'instruction WRITE_TRANSFER comprend en outre un quatrième sous-champ (Dst off.) définissant le décalage, en écriture, dans la mémoire destination, entre deux itérations consécutives du motif élémentaire à transférer.
Dans cet exemple, les valeurs du filtre de convolution sont stockées selon un vecteur colonne (Kernel) de 9 valeurs (9 elements) répété à l'identique n fois (n elements), où n désigne le nombre de produits de convolution nécessaire pour réaliser l'opération de convolution complète, soit n=25 dans l'exemple considéré.
Par ailleurs, pour chaque élément de la matrice d'entrée A(IN), les valeurs de la sous-matrice de 3x3 éléments centrée sur l'élément considéré sont stockées selon un vecteur colonne (Window) de 9 valeurs (9 elements). Pour les éléments périphériques de la matrice d'entrée, des valeurs de remplissage par défaut peuvent être utilisées pour compléter les sous-matrices correspondantes.
Dans cet exemple, les n produits de convolution (somme des valeurs d'un vecteur de données d'entrée (Window) pondérées par les valeurs du noyau de convolution (Kernel)) sont réalisés en parallèle par respectivement n circuits de calcul (dot) de type multiplicateur accumulateur. Le résultat (res) de chaque produit de convolution définit une valeur de la matrice de sortie B(OUT).