• Aucun résultat trouvé

Perception embarquée

N/A
N/A
Protected

Academic year: 2021

Partager "Perception embarquée"

Copied!
39
0
0

Texte intégral

(1)

Grenoble|images|parole|signal|automatique|laboratoire

Perception embarquée sur GPU pour la robotique

École thématique "signal images : architecture et programmation des GPU"

Amaury Nègre

CNRS, GIPSA-lab 10 Novembre 2017

(2)

Introduction

Qu'est-ce que la perception embarquée Problématiques

Intérêts du GPU Cas d'études Conduite autonome

Application étudiée Estimation du sol

Grilles d'occupation dynamiques Prédiction de collision

Résultats

Navigation de drones Problématiques Stéréovision SLAM

Odométrie visuelle + cubemap Synthèse

gipsa-lab

[A. Nègre], [Perception embarquée] 2/ 34

(3)

Introduction

Qu'est-ce que la perception embarquée Problématiques

Intérêts du GPU Cas d'études Conduite autonome

Application étudiée Estimation du sol

Grilles d'occupation dynamiques Prédiction de collision

Résultats

Navigation de drones Problématiques Stéréovision SLAM

Odométrie visuelle + cubemap Synthèse

(4)

Perception embarquée

Perception embarquée

Traitement de données par un calculateur directement connecté aux capteurs en mouvement, pour la prise de décision.

Exemples

I Vision pour la robotique (reconnaissance de personnes, de visages, de couleurs)

I Localisation, reconstruction 3D

I Détection d'obstacles

gipsa-lab

[A. Nègre], [Perception embarquée] 4/ 34

(5)

Problématiques

I Complexité des traitements (capteurs en mouvement, quantité des données)

I Temps de calcul, réactivité

I Consommation énergétique

I Encombrement

I Fiabilité

(6)

Intérêt du GPU

I Natures des données adaptées (images, nuages de points, son)

I Bon rapport puissance/consommation

I Gamme de produits dédié à l'embarqué (Jetson Tegra K1, X1, X2)

I Facilité de programmation, outils de développement (par rapport aux autres solutions embarquées)

gipsa-lab

[A. Nègre], [Perception embarquée] 6/ 34

(7)

Cas d'études

1. Conduite autonome 2. Navigation de drône

(8)

Introduction

Qu'est-ce que la perception embarquée Problématiques

Intérêts du GPU Cas d'études Conduite autonome

Application étudiée Estimation du sol

Grilles d'occupation dynamiques Prédiction de collision

Résultats

Navigation de drones Problématiques Stéréovision SLAM

Odométrie visuelle + cubemap Synthèse

gipsa-lab

[A. Nègre], [Perception embarquée] 8/ 34

(9)

Conduite autonome

(10)

Application étudiée

Prédiction de collision

I Environnement ouvert et dynamique

calcul en temps réel

I Incertitude

approches probabilistes

I Limitation des capteurs

fusion multi-capteurs

I Intégration matérielle

contraintes embarquée (encombrement, energie)

Bayesian multi-sensors fusion +

Temporal Bayesian filtering

gipsa-lab

[A. Nègre], [Perception embarquée] 10/ 34

(11)

Application étudiée

Prédiction de collision

I Environnement ouvert et dynamique

calcul en temps réel

I Incertitude

approches probabilistes

I Limitation des capteurs

fusion multi-capteurs

I Intégration matérielle

contraintes embarquée (encombrement, energie)

Bayesian multi-sensors fusion +

Temporal Bayesian filtering

(12)

plateformes

© Inria. All rights reserved

C. LAUGIER – “Embedded Bayesian Perception and V2X communications for Autonomous Driving”

GTC 2017, McEnery Convention Center, San Jose, California, May 8-11 2017

&

© Inria. All rights reserved 20

Experimental Vehicles & Connected Perception Units

2 Lidars IBEO Lux cameras Toyota Lexus

Nvidia GTX Titan X Generation Maxwell

Nvidia GTX Jetson TK1 Generation Maxwell

Nvidia GTX Jetson TX1 Generation Maxwell

Connected Perception Unit Renault Zoé

cameras Velodyne 3D lidar

IBEO lidars

gipsa-lab

[A. Nègre], [Perception embarquée] 11/ 34

(13)

Données capteur

Télémètre laser Velodyne HDL-64E

I 2.2 Millions de points par seconde

I angle de vue 360°

I résolution angulaire 0.08°

I 64 canaux

(14)

Classication des points et estimation du sol

gipsa-lab

[A. Nègre], [Perception embarquée] 13/ 34

(15)

Modèle mathématique

Champ de Markov Conditionnel Gaussienavec 3 potentiels

I Potentiel de mesure : dépend des points observés

I Potentiel spatial : dépend du voisinage spatial

I Potentiel temporel : dépend des estimations passées

(16)

Résolution

I Discrétisation du plan horizontal sous forme de maillage uniforme

I Méthode itérative de type "Expectation-Maximization"

I Expectation : calcul des probabilité d'appartenance au sol pour chaque point

I Maximization : mise à jour de l'état de chaque noeud Xik+1 = α P

j∈MicjzjHijT +β P

j∈NiFijTXjk +γQiTXit1 Pik+1 = α P

j∈MicjHijTHij+β P

j∈NiFijTPjkFij +γQiTPit1Qi

gipsa-lab

[A. Nègre], [Perception embarquée] 15/ 34

(17)

Implémentation CUDA

1. Aectation de chaque point laser au noeud correspondant : 1.1 Calcul des indices pour chaque point en parallèle ("hash") 1.2 Tris des points et des indices (thrust::sort_by_key) 1.3 Récupération du premier/dernier point par noeud (en parallèle

pour chaque point)

Particle Simulation using CUDA

Note that this method was not possible on pre-CUDA architectures because of the lack of scattered memory writes and a binary search would have to be used instead [9].

Figure 3 demonstrates creating the grid using the sorting method.

Figure 3 – Uniform Grid using Sorting

As an additional optimization, we re-order the position and velocity arrays into sorted order to improve the coherence of the texture lookups during the collision processing stage.

Particle Collisions

Once we have built the grid structure we can use it to accelerate particle-particle interactions. In the sample code we perform simple collisions between particles using the DEM method [5]. This collision model consists of several forces, including a spring force which forces the particles apart, and a dashpot force which causes damping.

Each particle calculates which grid cell it is in. It then loops over the neighboring 27 grid cells (3x3x3 cells) and checks for collisions with each of the particles in these cells. If there is a collision the particle’s velocity is modified.

Performance

On most hardware the sorting-based algorithm achieves the highest performance. This is because the sorting improves the memory access coherency when performing the collisions, and also tends to reduce warp divergence (particles in the same warp tend to be close together in space and therefore have similar numbers of neighbors).

The atomic-based method is also more sensitive to the distribution of the particles, with random Index Unsorted list

(cell id, particle id) List sorted by cell id

Cell start

0 (9, 0) (4, 3)

1 (6, 1) (4, 5)

2 (6, 2) (6, 1)

3 (4, 3) (6, 2)

4 (6, 4) (6, 4) 0

5 (4, 5) (9, 0)

6 2

7 8

9 5

10 11 12 13 14 15

10

1 2 3

5 6 7

14 2

0 1 4

9 11

13 15

4

8

12 3 5 0

2. Itérer k fois :

2.1 Calcul des probabilité des points pour chaque noeud 2.2 Mise à jour de l'état de chaque noeud

gipsa-lab

[A. Nègre], [Perception embarquée] 16/ 34

(18)

Optimisations

I Utilisation de la mémoire partagée (copie des états précédant au voisinage de chaque noeud)

I Synchronisation globale (pour éviter de lancer k fois le kernel)

possible uniquement si le nombre de block < nombre de multiprocesseurs

impossible sur Tegra X1 (2 multi-processeurs)

I Real-time processing (>10Hz on Jetson X1)

gipsa-lab

[A. Nègre], [Perception embarquée] 17/ 34

(19)

Résultats

(20)

Construction de grilles d'occupation dynamiques

occupancy

velocity

Static Dynamic Empty Unknown

Représentation Hybride

I Grille pour représenter l'état (vide, statique, dynamique, inconnu)

I Particules pour représenter la distribution de vitesse des cellules dynamiques

Résolution

Pour chaque cellule, il faut estimer la distribution de l'état et la vitesse :

P(SV|ZC) = λ P

C1S1V1P(C1)P(S1V1|C1) P(SV|S1V1)P(C|C1V)P(Z|S,V,C)

gipsa-lab

[A. Nègre], [Perception embarquée] 19/ 34

(21)

Construction de grilles d'occupation dynamiques

Retrieve previous static grid

Retrieve previous dynamic particles

Apply motion model

Compute change of reference

frame

Compute change of reference

frame Merge sensor

observations

&

Compute occupancy grid

Evaluate static model

Evaluate dynamic particles

Generate jointly the new models:

grid evaluation and resampling

Sensor data

(22)

Implémentation Cuda

I Correction du mouvement propre : Transformation ane sur la grille et les particules

I Propagation des particules : parallélisation sur l'ensemble des particules

I Collection des particules par cellule : Hash + Sort

I Modèle capteur : parallélisation sur les cellules

I Prédiction et mise-à-jour :parallélisation sur les cellules

I Ré-échantillonnage des particules : Prex sum + binary searches (parallélisation par particule)

gipsa-lab

[A. Nègre], [Perception embarquée] 21/ 34

(23)

Estimation du risque de collision

t t+1 t+2

t t+1 t+2

Collision

I Simulation du déplacement du véhicule et des particules

I Calcul du temps avant collision (TTC) pour chaque cellule et chaque particule

I Probabilité de collision pour 3 horizons de temps

I Utilisation des grilles de risque ou du risque max (réduction)

(24)

Résultats

I Conguration avec 8 nappes lasers (2x4)

I Taille de grille 1400x600 (840000 cellules) et 65536 particules

Jetson TK1 : Grid fusion 17ms, grid ltering + object clustering 70ms

Jetson TX1 : Grid fusion 0.7ms, grid ltering + object clustering 17ms

gipsa-lab

[A. Nègre], [Perception embarquée] 23/ 34

(25)

Résultats

(26)

Introduction

Qu'est-ce que la perception embarquée Problématiques

Intérêts du GPU Cas d'études Conduite autonome

Application étudiée Estimation du sol

Grilles d'occupation dynamiques Prédiction de collision

Résultats

Navigation de drones Problématiques Stéréovision SLAM

Odométrie visuelle + cubemap Synthèse

gipsa-lab

[A. Nègre], [Perception embarquée] 25/ 34

(27)

Navigation de drones : problématiques

I Réalisation de tâches de vision en temps réel en vol

I Avec des contraintes forte en poids...

I Et en énergie

Solution :

I Implémentation Cuda sur plateforme jetson TX1/TX2 avec carte lle légère (auvidea J1XX, connect Tech ASG00X)

(28)

Navigation de drones : problématiques

I Réalisation de tâches de vision en temps réel en vol

I Avec des contraintes forte en poids...

I Et en énergie

Solution :

I Implémentation Cuda sur plateforme jetson TX1/TX2 avec carte lle légère (auvidea J1XX, connect Tech ASG00X)

gipsa-lab

[A. Nègre], [Perception embarquée] 26/ 34

(29)

Carte de profondeur stéréo

Evaluation des implémentationsVisionWorks (Nvidia) etOpenCV

NVBM SGM CVBM BP CSBP

1280 x 720 (128) 19 fps 4 fps 14 fps erreur 0,7 fps 640 x 360 (64) 90 fps 28 fps 62 fps 0,9 fps 3 fps 320 x 180 (32) 250 fps 125 fps 125 fps 6 fps 11 fps

(30)

SLAM

Localisation et construction de carte simultanée

I Evolution des algorithmes depuis une dizaine d'année 1. Méthodes "sparse" (basée sur des points d'intérêts)

2. Méthodes "semi-denses" (patchs centrés sur des points d'intérêts)

3. Méthodes "denses" (cartes complètes)

I Architectures GPU très adaptées aux méthodes denses

gipsa-lab

[A. Nègre], [Perception embarquée] 28/ 34

(31)

SLAM

Localisation et construction de carte simultanée

I Evolution des algorithmes depuis une dizaine d'année 1. Méthodes "sparse" (basée sur des points d'intérêts) 2. Méthodes "semi-denses" (patchs centrés sur des points

d'intérêts)

3. Méthodes "denses" (cartes complètes)

I Architectures GPU très adaptées aux méthodes denses

(32)

SLAM

Localisation et construction de carte simultanée

I Evolution des algorithmes depuis une dizaine d'année 1. Méthodes "sparse" (basée sur des points d'intérêts) 2. Méthodes "semi-denses" (patchs centrés sur des points

d'intérêts)

3. Méthodes "denses" (cartes complètes)

I Architectures GPU très adaptées aux méthodes denses

gipsa-lab

[A. Nègre], [Perception embarquée] 28/ 34

(33)

SLAM

Localisation et construction de carte simultanée

I Evolution des algorithmes depuis une dizaine d'année 1. Méthodes "sparse" (basée sur des points d'intérêts) 2. Méthodes "semi-denses" (patchs centrés sur des points

d'intérêts)

3. Méthodes "denses" (cartes complètes)

Architectures GPU très adaptées aux méthodes denses

(34)

SLAM

Temps de calculs de KinectFusion, d'après SLAMBench [Nardi et al. 2015]

gipsa-lab

[A. Nègre], [Perception embarquée] 29/ 34

(35)

Odométrie visuelle + cubemap

(36)

Introduction

Qu'est-ce que la perception embarquée Problématiques

Intérêts du GPU Cas d'études Conduite autonome

Application étudiée Estimation du sol

Grilles d'occupation dynamiques Prédiction de collision

Résultats

Navigation de drones Problématiques Stéréovision SLAM

Odométrie visuelle + cubemap Synthèse

gipsa-lab

[A. Nègre], [Perception embarquée] 31/ 34

(37)

Synthèse

I GPU bien adapté aux tâches de perception denses (sous forme de grilles, nuages de points ou les deux)

I Performance temps réel avec gros ux de donnée (Lidar3D, camera RGB-D, etc.)

I Cartes embarquées très performantes

I Principaux facteurs limitants : Allocations, Bandes-passante mémoire, synchronisation

(38)

Remarques de développeur

I Environnement embarqué très pratique (identique PC ubuntu)

I Utilisation de la librairie Thrust

I Allocateurs par défaut à redénir !

I Débugage pas toujours simple

I Penser à utiliser le proler Nvidia

I Nécessité de repenser tous les algorithmes !

gipsa-lab

[A. Nègre], [Perception embarquée] 33/ 34

(39)

Merci de votre attention !

Questions ?

Références

Documents relatifs

F154 – Une ribambelle de grilles faites exclusivement de

Toutefois, le CICR admet aussi que la théorie avancée par Jean Pictet a pour effet d’abaisser le seuil d’application de certaines dispositions de la IVe Convention de Genève

composée de barreaux principaux disposés verticalement et portant dans la direction de l’écoulement Les barreaux principaux sont.. soutenus latéralement par

Cependant dans beaucoup de systèmes embarqués moins critiques, la sécurité reste souvent un point faible, et les objets connectés sont de plus en plus utilisés comme robots pour

11-le contenu de l’énoncé correspond-il aux objectifs de la leçon ? 12-le niveau de langue est –il adapté au niveau d’étude des élèves ? 13-le niveau de difficultés

Dans un premier temps, nous envisageons d’utiliser cette approche pour implémenter dans un système de navigation d’un robot wifibot [Wif, 2003].. Dans un second temps, ces

Le service d’allocation de ressources a été conçu en lien étroit avec le système d’information de façon à pouvoir allouer efficacement des ressources aux applications en prenant

Pour le niveau troisième : Les opérations mobilisées sont : - les quatre opérations sur les nombres relatifs entiers, décimaux - la multiplication des nombres relatifs en