


Série de prédiction de trajectoire | De quoi parle la version évoluée de HiVT QCNet ?
La version évoluée de HiVT (vous pouvez lire cet article directement sans lire HiVT au préalable), avec des performances et une efficacité grandement améliorées.
L'article est également facile à lire.
[Série de prédiction de trajectoire] [Notes] HiVT : Transformateur vectoriel hiérarchique pour la prédiction de mouvement multi-agents - Zhihu (zhihu.com)
Lien original :
https://openaccess.thecvf.com/content/CVPR2023/ papers /Zhou_Query-Centric_Trajectory_Prediction_CVPR_2023_paper.pdf
Abstract
Il y a un problème dans le modèle où l'agent est utilisé comme centre de prédiction. Lorsque la fenêtre se déplace, elle doit être répétée plusieurs fois pour se normaliser avec le centre de l'agent et. puis répétez le processus d'encodage. Il n'est pas adapté à une utilisation à bord. Par conséquent, nous utilisons un cadre centré sur les requêtes pour le codage de scènes, qui peut réutiliser les résultats calculés et ne repose pas sur le système de coordonnées temporelles global. Dans le même temps, étant donné que différents agents partagent des caractéristiques de scène, le processus de décodage de la trajectoire de l'agent peut être traité de manière plus parallèle.
La scène est encodée de manière complexe et la méthode de décodage actuelle est encore difficile à capturer les informations de mode, en particulier pour les prédictions à long terme. Afin de résoudre ce problème, nous utilisons d'abord la requête sans ancre pour générer une proposition de trajectoire (une méthode d'extraction de caractéristiques étape par étape), afin que le modèle puisse mieux utiliser les caractéristiques de la scène à différents moments. Ensuite, il y a le module d'ajustement, qui utilise la proposition obtenue à l'étape précédente pour optimiser la trajectoire (basée sur une ancre dynamique). Grâce à ces ancres de haute qualité, notre décodeur basé sur des requêtes peut mieux gérer les caractéristiques du mode.
Classé avec succès. Cette conception implémente également des pipelines de codage de fonctionnalités de scénario et de décodage multi-agents parallèles.
Introduction
Le document de prédiction de trajectoire actuel présente les problèmes suivants :
- Pour une variété d'informations sur les scènes hétérogènes, l'efficacité du traitement est faible. Dans les tâches de conduite sans pilote, les données sont transmises au modèle image par image, notamment des cartes vectorisées de haute précision et des trajectoires historiques des agents environnants. La récente méthode d’attention factorisée (attention séparée dans l’espace et dans le temps) a élevé le traitement de ces informations à un nouveau niveau. Mais cela nécessite une attention particulière pour chaque élément de la scène. Si la scène est très complexe, le coût reste très élevé. À mesure que le temps de prévision augmente, l'
- incertitude de la prévision explose également. Par exemple, une voiture à une intersection peut aller tout droit ou tourner. Afin d'éviter de rater des possibilités potentielles, le modèle doit obtenir la distribution de plusieurs modes au lieu de simplement prédire le mode ayant la fréquence la plus élevée. Mais il n’existe qu’un seul gt, et il est impossible de réaliser un meilleur apprentissage sur de multiples possibilités. Certains articles proposent la méthode d'utilisation de plusieurs ancres portatives pour la supervision. Cet effet dépend entièrement de la qualité des ancres. Cette approche est très mauvaise lorsque l'ancre ne peut pas couvrir avec précision le GT. Il existe également d'autres approches pour prédire directement plusieurs modes, en ignorant les problèmes d'effondrement des modes et d'instabilité de la formation.
réutiliser ces fonctionnalités. Cependant, la méthode centrée sur l'agent doit être transférée vers le système de coordonnées de l'agent, elle doit donc ré-encoder la scène. Afin de résoudre ce problème, nous utilisons la méthode query-centric : les éléments de la scène extraient des caractéristiques dans leur propre système de coordonnées spatio-temporelles, quel que soit le système de coordonnées global (peu importe où se trouve l'ego). (Des cartes de haute précision peuvent être utilisées car les éléments cartographiques ont des identifiants à long terme. Les cartes de non-haute précision devraient être difficiles à utiliser. Les éléments cartographiques doivent être suivis dans les cadres avant et arrière.)
combinaison de méthodes sans ancre et basées sur ancreexploite pleinement les avantages des deux méthodes pour réaliser des prédictions multimodes et à long terme.
Cette approche est la première à explorer la continuité de la prédiction de trajectoire pour réaliser une inférence à grande vitesse. Parallèlement, la partie décodeur prend également en compte les tâches de prédiction multimodes et à long terme.Approche
Entrée et sortie
Dans le même temps, le module de prédiction peut également obtenir M polygones à partir de la carte de haute précision. Chaque polygone possède plusieurs points et informations sémantiques (passage pour piétons, voie, etc.).
Le module de prédiction utilise l'état de l'agent ci-dessus et les informations cartographiques à T moments pour donner K trajectoires prédites d'une longueur totale de T', ainsi que sa distribution de probabilité.
Encodage du contexte de scène centré sur les requêtes
La première étape est naturellement l'encodage de la scène. L'attention factorisée actuellement populaire (attention dans les dimensions temporelles et spatiales respectivement) se fait de cette manière. Plus précisément, il y a trois étapes :
- attention à la dimension temporelle, complexité temporelle O(A), multiplication matricielle de la dimension temporelle de chaque agent.
- attention croisée de l'agent et de la carte, complexité temporelle O(ATM), à chaque instant, multiplication matricielle des éléments de l'agent et de la carte
- attention entre agent et agent, complexité temporelle O(T), à chaque instant, l'agent et la matrice de l'agent sont multipliées
Par rapport à la méthode précédente consistant à compresser la caractéristique dans la dimension temporelle au moment actuel, puis à interagir entre l'agent et l'agent, l'agent et la carte, cette méthode est pour chaque instant. dans le passé. Pour interagir, vous pouvez obtenir plus d'informations, comme l'évolution de l'interaction entre l'agent et la carte à chaque instant.
Mais l'inconvénient est que la complexité cubique deviendra très grande à mesure que la scène devient plus complexe et que le nombre d'éléments augmente. Notre objectif est de faire bon usage de cette attention factorisée sans laisser la complexité temporelle exploser si facilement.
Une façon simple de réfléchir est d'utiliser les résultats de l'image précédente, car dans la dimension temporelle, il y a en fait des images T-1 qui sont complètement répétées. Mais comme nous devons faire pivoter et traduire ces caractéristiques vers la position et l'orientation du frame actuel de l'agent, nous ne pouvons pas simplement utiliser les résultats obtenus lors de l'opération frame précédente.
Afin de résoudre le problème du système de coordonnées, une approche centrée sur les requêtes est adoptée pour apprendre les caractéristiques des éléments de la scène sans s'appuyer sur leurs coordonnées globales. Cette approche établit un système de coordonnées spatio-temporelles local pour chaque élément de la scène et extrait les caractéristiques au sein de ce système de coordonnées. Même si l'ego va ailleurs, les caractéristiques extraites localement resteront inchangées. Ce système de coordonnées spatio-temporelles locales a naturellement une position d'origine et une direction. Ces informations de position sont utilisées comme clé, et les caractéristiques extraites sont utilisées comme valeur pour faciliter les opérations d'attention ultérieures. L'ensemble de l'approche est divisé en les étapes suivantes :
Système de coordonnées spatio-temporelles local
Pour la caractéristique de l'agent i à l'instant t, sélectionnez la position et l'orientation à cet instant comme système de référence. Pour les éléments cartographiques, le point de départ de cet élément est utilisé comme cadre de référence. Une telle méthode de sélection du système de référence peut conserver les caractéristiques extraites inchangées après le déplacement de l'ego.
Incorporation d'éléments de scène
Pour d'autres caractéristiques vectorielles au sein de chaque élément, les représentations de coordonnées polaires sont obtenues dans le système de référence ci-dessus. Ils sont ensuite convertis en caractéristiques de Fourier pour obtenir des signaux haute fréquence. Après avoir concassé les fonctionnalités sémantiques, MLP obtient les fonctionnalités. Pour les éléments cartographiques, afin de garantir que l'ordre des points internes n'est pas pertinent, une attention est d'abord effectuée puis une mise en commun est effectuée. Enfin, les caractéristiques de l'agent sont [A, T, D] et les caractéristiques de la carte sont [M, D]. Ce n'est qu'en la gardant cohérente que la multiplication matricielle de l'attention peut être facilitée. Les fonctionnalités extraites de cette manière peuvent rendre l’ego utilisable n’importe où.
Incrustation de Fourier : créez une intégration distribuée normale, correspondant aux poids de différentes fréquences, multipliez la somme d'entrée par 2Π, et enfin prenez cos et sin comme caractéristiques. Une compréhension intuitive devrait consister à traiter l'entrée comme un signal et à décoder le signal en plusieurs signaux de base (signaux de plusieurs fréquences). Cela permet de mieux capturer les signaux haute fréquence. Les signaux haute fréquence sont très importants pour la précision des résultats. Les méthodes générales peuvent facilement perdre des signaux haute fréquence fins. Il convient de noter qu’il n’est pas recommandé d’utiliser des données bruitées car elles capteraient par erreur le mauvais signal haute fréquence. (Cela ressemble un peu à un surajustement, pas trop général mais pas trop précis)
Il convient de noter que les caractéristiques obtenues grâce à la méthode ci-dessus ont une invariance spatio-temporelle, c'est-à-dire que peu importe où va l'ego à tout moment, les caractéristiques ci-dessus restent inchangées car il n'y a pas de translation ou de rotation basée sur les informations de position actuelle. Puisqu'il n'y a qu'une nouvelle trame de données par rapport à la trame précédente, il n'est pas nécessaire de calculer les caractéristiques du moment précédent, donc la complexité de calcul totale est divisée par T.
Décodage de trajectoire basé sur des requêtes
Semblable à la méthode de requête sans ancre de DETR consistant à prêter attention à certaines valeurs clés, cela entraînera un entraînement instable, des problèmes d'effondrement de mode et la prédiction à long terme est également difficile. Peu fiable car l’incertitude explosera plus tard. Par conséquent, ce modèle utilise d'abord une méthode de requête approximative sans ancre, puis affine la méthode de base d'ancrage pour cette sortie.
L'ensemble de la structure du réseau
Mode2Scene et Mode2Mode Attention
Mode2Scene adopte la structure DETR dans les deux étapes : la requête est K modes de trajectoire (l'étape de proposition grossière est directement générée de manière aléatoire et l'étape de raffinement est obtenue à partir de la proposition étapes en entrée), puis effectuez plusieurs attentions croisées sur les fonctionnalités de la scène (historique de l'agent, carte, agents environnants).
Structure DETR
Mode2Mode effectue une attention personnelle parmi les modes K, en essayant de réaliser la diversité entre les modes, afin de ne pas les rassembler tous.
Cadres de référence des requêtes de mode
Afin de prédire les trajectoires de plusieurs agents en parallèle, l'encodage de la scène est partagé par plusieurs agents. Étant donné que les fonctionnalités de la scène sont toutes des fonctionnalités relatives à elles-mêmes, vous devez toujours passer à la perspective de l'agent si vous souhaitez les utiliser. Pour la requête de mode, les informations de localisation et d'orientation de l'agent seront ajoutées. Semblable à l'opération précédente de codage de la position relative, les informations de position relative de l'élément de scène et de l'agent seront également intégrées en tant que clé et valeur. (Intuitivement parlant, il s'agit d'une attention pondérée de chaque mode de l'agent sur l'utilisation des informations à proximité)
Proposition de trajectoire sans ancre
La première fois est la méthode sans ancre, utilisant une requête apprenable pour créer des qualité La proposition de trajectoire générera un total de K propositions. Étant donné que l'attention croisée est utilisée pour extraire des caractéristiques des informations de scène, des ancres relativement petites et efficaces peuvent être générées efficacement pour être utilisées dans le deuxième affinement. L’attention personnelle rend chaque proposition globalement plus diversifiée.
Raffinement de la trajectoire basé sur l'ancre
Bien que la méthode sans ancre soit relativement simple, elle présente également le problème d'un entraînement instable et d'un éventuel effondrement du mode. Dans le même temps, le mode généré aléatoirement doit également être capable de fonctionner correctement pour différents agents dans l'ensemble de la scène. Cela est relativement difficile et il est facile de générer des propositions de trajectoire qui ne correspondent pas à la cinématique ou au trafic. Nous avons donc pensé à faire une autre correction basée sur l'ancrage. Un décalage est prédit sur la base de la proposition (ajoutée à la proposition originale pour obtenir la trajectoire révisée), et la probabilité de chaque nouvelle trajectoire est prédite.
Ce module utilise également la forme de DETR. La requête de chaque mode est extraite en utilisant la proposition de l'étape précédente Plus précisément, un petit GRU est utilisé pour intégrer chaque ancre (pas en avant), et il est utilisé jusqu'à la fin. Une fonctionnalité sert à un moment de requête. Ces requêtes basées sur des ancres peuvent fournir certaines informations spatiales, facilitant ainsi la capture d'informations utiles pendant l'attention.
Objectifs de formation
Les mêmes que HiVT (se référer à l'analyse de HiVT), en utilisant la distribution de Laplace. Pour parler franchement, chaque instant dans chaque mode est modélisé comme une distribution de Laplace (se référer à la distribution gaussienne générale, où moyenne et var représentent la position de ce point et son incertitude). Et les moments sont considérés comme indépendants (directement multipliés). Π représente la probabilité du mode correspondant.
La perte se compose de 3 parties
est principalement divisée en deux parties : perte de classification et perte de régression.
La perte de classification fait référence à la perte de probabilité prédite. Ce qu'il convient de noter ici, c'est qu'il est nécessaire d'interrompre le retour du gradient, et le gradient causé par la probabilité ne peut pas être transmis à la prédiction des coordonnées (c'est-à-dire en supposant que la position prévue de chaque mode est dans des conditions raisonnables). L'étiquette la plus proche de gt est 1 et les autres sont 0.
Il y a deux pertes de régression, l'une est la perte de la proposition de première étape et l'autre est la perte du raffinement de la deuxième étape. Une approche gagnant-gagnant est adoptée, c'est-à-dire que seule la perte du mode le plus proche de gt est calculée et les pertes de régression des deux étapes sont calculées. Pour la stabilité de la formation, le retour du gradient est également interrompu dans les deux étapes, de sorte que l'apprentissage des propositions n'apprenne que les propositions et l'affinement n'apprenne qu'à affiner.
ExpériencesArgoverse2 basic SOTA (* indique que la technique d'ensemble est utilisée)
La différence entre b-minFDE et minFDE est qu'il est multiplié par un coefficient supplémentaire lié à sa probabilité. la cible veut que le FDE soit le plus petit. Plus la probabilité de cette trajectoire est élevée, mieux c'est.
Concernant la technique d'ensemble, je trouve que c'est un peu tricher : vous pouvez vous référer à l'introduction dans BANet, qui est brièvement présentée ci-dessous.
La dernière étape de génération de la trajectoire consiste à connecter plusieurs sous-modèles (décodeur) avec la même structure en même temps, ce qui donnera plusieurs ensembles de prédictions. Par exemple, il y a 7 sous-modèles, chacun avec 6 prédictions, 42 au total. . Utilisez ensuite kmeans pour effectuer le clustering (en utilisant le dernier point de coordonnées comme norme de clustering). L'objectif est de 6 groupes, 7 éléments dans chaque groupe, puis effectuez une moyenne pondérée dans chaque groupe pour obtenir une nouvelle trajectoire.
La méthode de pondération est la suivante. C'est le b-minFDE de la trajectoire actuelle et gt, et c est la probabilité de la trajectoire actuelle. Le poids est calculé dans chaque groupe, puis les coordonnées de la trajectoire sont pondérées et additionnées. obtenir une nouvelle trajectoire. (Cela semble un peu délicat, car c est en fait la probabilité de cette trajectoire dans la sortie du sous-modèle, ce qui est un peu incompatible avec les attentes lorsqu'elle est utilisée en clustering)
Et la probabilité de la nouvelle trajectoire après cette opération est également difficile à calculer avec précision, la méthode ci-dessus ne peut pas être utilisée, sinon la somme totale des probabilités ne sera pas nécessairement 1. Il semble que nous ne puissions calculer les probabilités que dans des grappes de poids égaux.
Argoverse1 est également loin devant
Recherche sur l'encodage de scène : si les résultats d'encodage de scène précédents sont réutilisés, le temps d'inférence peut être considérablement réduit. Le nombre d'interactions d'attention factorisées entre l'agent et les informations de la scène augmente, et l'effet de prédiction deviendra également meilleur, mais la latence augmente également fortement, ce qui doit être pris en compte.
Recherche sur diverses opérations : Prouver l'importance du raffinement et l'importance de l'attention factorisée dans diverses interactions, les deux sont indispensables.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

1. Ouvrez les paramètres dans Windows 11. Vous pouvez utiliser le raccourci Win+I ou toute autre méthode. 2. Accédez à la section Applications et cliquez sur Applications et fonctionnalités. 3. Recherchez l'application que vous souhaitez empêcher de s'exécuter en arrière-plan. Cliquez sur le bouton à trois points et sélectionnez Options avancées. 4. Recherchez la section [Autorisations d'application en arrière-plan] et sélectionnez la valeur souhaitée. Par défaut, Windows 11 définit le mode d'optimisation de l'alimentation. Il permet à Windows de gérer le fonctionnement des applications en arrière-plan. Par exemple, une fois que vous avez activé le mode d'économie de batterie pour préserver la batterie, le système fermera automatiquement toutes les applications. 5. Sélectionnez [Jamais] pour empêcher l'application de s'exécuter en arrière-plan. Veuillez noter que si vous remarquez que le programme ne vous envoie pas de notifications, ne parvient pas à mettre à jour les données, etc., vous pouvez

Ne changez pas la signification du contenu original, affinez le contenu, réécrivez le contenu et ne continuez pas. "La régression quantile répond à ce besoin, en fournissant des intervalles de prédiction avec des chances quantifiées. Il s'agit d'une technique statistique utilisée pour modéliser la relation entre une variable prédictive et une variable de réponse, en particulier lorsque la distribution conditionnelle de la variable de réponse présente un intérêt quand. Contrairement à la régression traditionnelle " Figure (A) : Régression quantile La régression quantile est une estimation. Une méthode de modélisation de la relation linéaire entre un ensemble de régresseurs X et les quantiles. des variables expliquées Y. Le modèle de régression existant est en fait une méthode pour étudier la relation entre la variable expliquée et la variable explicative. Ils se concentrent sur la relation entre variables explicatives et variables expliquées.

Deepseek ne peut pas convertir les fichiers directement en PDF. Selon le type de fichier, vous pouvez utiliser différentes méthodes: documents communs (Word, Excel, PowerPoint): utilisez Microsoft Office, LibreOffice et d'autres logiciels à exporter sous forme de PDF. Image: Enregistrer sous le nom de PDF à l'aide d'une visionneuse d'image ou d'un logiciel de traitement d'image. Pages Web: Utilisez la fonction "Imprimer en PDF" du navigateur ou l'outil Web dédié à PDF. Formats peu communs: trouvez le bon convertisseur et convertissez-le en PDF. Il est crucial de choisir les bons outils et d'élaborer un plan basé sur la situation réelle.

Le message « Impossible d'autoriser l'accès à la caméra et au microphone » s'affiche-t-il lorsque vous essayez d'utiliser l'application ? En règle générale, vous accordez des autorisations de caméra et de microphone à des personnes spécifiques en fonction de leurs besoins. Cependant, si vous refusez l'autorisation, la caméra et le microphone ne fonctionneront pas et afficheront ce message d'erreur à la place. Résoudre ce problème est très simple et vous pouvez le faire en une minute ou deux. Correctif 1 – Fournir les autorisations de caméra et de microphone Vous pouvez fournir les autorisations de caméra et de microphone nécessaires directement dans les paramètres. Étape 1 – Accédez à l'onglet Paramètres. Étape 2 – Ouvrez le panneau Confidentialité et sécurité. Étape 3 – Activez-y l’autorisation « Caméra ». Étape 4 – À l’intérieur, vous trouverez une liste des applications qui ont demandé l’autorisation d’accéder à l’appareil photo de votre téléphone. Étape 5 – Ouvrez la « Appareil photo » de l'application spécifiée

En Java, un « champ » est un membre de données dans une classe ou une interface utilisée pour stocker des données ou un état. Les propriétés du champ incluent : le type (peut être n'importe quel type de données Java), les droits d'accès, statique (appartient à une classe plutôt qu'à une instance), final (immuable) et transitoire (non sérialisé). Le champ est utilisé pour stocker les informations d'état d'une classe ou d'une interface, telles que le stockage des données d'objet et la maintenance de l'état de l'objet.

Oracle peut lire les fichiers dbf en suivant les étapes suivantes : créer une table externe et référencer le fichier dbf ; interroger la table externe pour récupérer les données dans la table Oracle ;

Le mécanisme de réflexion Java permet aux programmes de modifier dynamiquement le comportement des classes sans modifier le code source. En exploitant une classe via l'objet Class, vous pouvez créer des instances via newInstance(), modifier les valeurs des champs privés, appeler des méthodes privées, etc. La réflexion doit toutefois être utilisée avec prudence, car elle peut entraîner un comportement inattendu et des problèmes de sécurité, et entraîner une surcharge en termes de performances.

Types d'exceptions courants et leurs mesures de réparation dans le développement de fonctions Java Lors du développement de fonctions Java, diverses exceptions peuvent survenir, affectant l'exécution correcte de la fonction. Voici les types d'exceptions courants et leurs mesures de réparation : 1. NullPointerException Description : levée lors de l'accès à un objet qui n'a pas été initialisé. Correctif : assurez-vous de vérifier que l'objet n'est pas nul avant de l'utiliser. Exemple de code : try{Stringname=null;System.out.println(name.length());}catch(NullPointerExceptione){
