Point Cloud (Nuage de Points 3D)
Un point cloud (nuage de points) est un ensemble de points dans un espace tridimensionnel, chaque point étant défini par ses coordonnées (x, y, z) et éventuellement des attributs supplémentaires (couleur RGB, intensité, normale de surface). C’est l’une des représentations 3D les plus fondamentales, produite par des capteurs comme le LiDAR, les caméras de profondeur (RGB-D) et la photogrammétrie. Le deep learning sur les nuages de points, initié par PointNet (CVPR 2017), a révolutionné la classification, la segmentation et la détection d’objets 3D.
- Définition
- Ensemble de points 3D (x, y, z) avec attributs optionnels (couleur, intensité, normale)
- Sources de données
- LiDAR, caméras de profondeur (RGB-D), photogrammétrie, scanners 3D
- Modèles fondateurs
- PointNet (CVPR 2017), PointNet++ (NeurIPS 2017)
- Tâches
- Classification 3D, segmentation sémantique, détection d’objets, reconstruction de surfaces
- Datasets
- ModelNet40, ShapeNet, S3DIS, ScanNet, KITTI, nuScenes, Waymo Open
Qu’est-ce qu’un nuage de points ?
Un nuage de points est la représentation 3D la plus brute : une collection non ordonnée de points, chacun localisé par ses trois coordonnées dans l’espace. Contrairement aux images (grilles régulières de pixels) ou aux meshes (sommets + faces connectées), un nuage de points n’a pas de topologie explicite : les points ne sont pas connectés entre eux, il n’y a pas de notion de voisinage structurel, et l’ordre des points est arbitraire.
Cette absence de structure pose un défi unique pour le deep learning. Les CNN classiques sont conçus pour des grilles régulières (images 2D, voxels 3D). Appliquer un CNN à un nuage de points nécessite une conversion préalable en voxels ou en images multi-vues, ce qui perd de l’information et augmente le coût computationnel.
Un nuage de points typique contient de quelques milliers à plusieurs centaines de millions de points. Un scan LiDAR d’une scène de conduite contient environ 100 000 points par frame. Un scan architectural haute résolution peut contenir des milliards de points.
Sources de données
LiDAR (Light Detection and Ranging). Le capteur émet des impulsions laser et mesure le temps de retour pour calculer la distance à chaque point. Produit des nuages de points 3D précis avec des informations d’intensité. Utilisé massivement dans les véhicules autonomes (Waymo, Tesla, Cruise), la cartographie aérienne et la foresterie.
Caméras de profondeur (RGB-D). Des capteurs comme les Intel RealSense, Microsoft Kinect ou Apple TrueDepth combinent une caméra RGB classique avec un capteur de profondeur (infrarouge structuré ou Time-of-Flight). Le résultat est une image 2D enrichie d’une carte de profondeur, convertible en nuage de points 3D coloré.
Photogrammétrie. À partir de multiples photos 2D d’un objet ou d’une scène, des algorithmes de Structure-from-Motion (SfM) comme COLMAP reconstruisent un nuage de points 3D sparse. Cette technique est à la base de la capture pour les NeRF et le Gaussian Splatting.
Scanners 3D industriels. Des scanners laser haute précision (FARO, Leica) produisent des nuages de points de qualité métrologique pour l’architecture, l’ingénierie et le contrôle qualité industriel.
Deep learning sur les nuages de points
Le défi de l’irrégularité
Les nuages de points possèdent trois propriétés qui les rendent difficiles à traiter par les réseaux de neurones classiques :
Non-ordonnés. Contrairement aux pixels d’une image (ordonnés en lignes et colonnes), les points d’un nuage n’ont pas d’ordre canonique. Le réseau doit produire le même résultat quelle que soit la permutation des points en entrée (invariance par permutation).
Irréguliers. Les points ne sont pas répartis sur une grille régulière. La densité varie : certaines zones sont densément échantillonnées, d’autres sont clairsemées. Les opérations de convolution classiques, conçues pour des grilles, ne s’appliquent pas directement.
Continus. Les coordonnées des points sont des valeurs continues, pas des indices discrets. Cela signifie que la résolution est potentiellement infinie (chaque scan produit des coordonnées légèrement différentes).
PointNet : la percée (CVPR 2017)
PointNet (Qi et al., Stanford, CVPR 2017) est le premier réseau de neurones à traiter directement des nuages de points bruts, sans conversion en voxels ou en images. Son architecture repose sur deux idées clés :
MLPs par point. Chaque point est traité indépendamment par un MLP partagé (shared weights) qui le projette dans un espace de features de haute dimension. Puisque les mêmes poids sont appliqués à chaque point, l’ordre des points n’a pas d’importance.
Max pooling symétrique. Les features de tous les points sont agrégées par un max pooling global, une opération intrinsèquement invariante par permutation. Le résultat est un vecteur de features global qui représente l’ensemble du nuage de points.
PointNet atteint des performances comparables ou supérieures aux méthodes basées sur des voxels 3D ou des images multi-vues sur les benchmarks de classification (ModelNet40) et de segmentation (ShapeNet Part), tout en étant significativement plus rapide et plus léger.
PointNet++ : la hiérarchie locale (NeurIPS 2017)
La limitation de PointNet est qu’il ne capture pas les structures locales : chaque point est traité indépendamment, et seul le max pooling global agrège l’information. PointNet++ résout ce problème en appliquant PointNet récursivement sur des sous-ensembles locaux de points, organisés hiérarchiquement.
Le processus : les points sont d’abord échantillonnés (farthest point sampling), puis pour chaque point échantillonné, un voisinage local est défini (ball query ou k-nearest neighbors). PointNet est appliqué à chaque voisinage pour extraire des features locales. Ces features sont ensuite agrégées et le processus est répété à des échelles croissantes, créant une hiérarchie de features similaire aux couches d’un CNN.
Méthodes ultérieures
DGCNN (Dynamic Graph CNN, 2019). Construit dynamiquement un graphe de voisinage dans l’espace des features (pas seulement dans l’espace 3D) et applique des convolutions sur les arêtes (EdgeConv). Cela capture des relations sémantiques entre points, pas seulement géométriques.
Point Transformer (2021). Adapte l’architecture Transformer aux nuages de points, utilisant l’attention pour modéliser les relations entre points voisins. Atteint des résultats de pointe sur la segmentation sémantique de scènes intérieures (S3DIS, ScanNet).
VoxelNet et PointPillars. Pour la détection d’objets 3D dans les scènes de conduite, ces méthodes convertissent le nuage de points en voxels (VoxelNet) ou en piliers verticaux (PointPillars) avant d’appliquer un réseau 2D/3D. Elles sacrifient une partie de la finesse pour gagner en vitesse, ce qui est crucial pour les applications temps réel des véhicules autonomes.
MinkowskiEngine et convolutions sparses. Les convolutions sparses opèrent efficacement sur des données 3D clairsemées (comme les nuages de points voxelisés) en ne calculant que les voxels occupés. MinkowskiNet et SparseConvNet sont les frameworks de référence pour la segmentation sémantique 3D haute performance.
Tâches principales
Classification 3D. Attribuer une classe à un objet entier représenté par un nuage de points (chaise, table, voiture). Benchmark : ModelNet40 (40 classes, 12 311 objets). PointNet atteint ~89 % de précision, les méthodes récentes dépassent 93 %.
Segmentation sémantique 3D. Attribuer une classe à chaque point du nuage (sol, mur, plafond, meuble). Benchmarks : S3DIS (scènes intérieures), ScanNet (scènes scannées), SemanticKITTI (scènes de conduite). Les meilleurs modèles atteignent 70-75 mIoU sur ces benchmarks.
Détection d’objets 3D. Localiser et classifier les objets dans un nuage de points (piétons, véhicules, cyclistes dans une scène LiDAR). Benchmarks : KITTI, nuScenes, Waymo Open Dataset. C’est une tâche critique pour la conduite autonome.
Instance segmentation. Séparer les instances individuelles d’objets dans la segmentation (distinguer la chaise 1 de la chaise 2). Combine segmentation sémantique et regroupement par instance.
Complétion de nuages de points. Reconstruire les parties manquantes d’un nuage de points partiel (un objet vu d’un seul côté). Utile pour la robotique (compléter ce qu’on ne voit pas) et la reconstruction 3D.
Registration (recalage). Aligner deux nuages de points capturés depuis des positions différentes pour créer une vue unifiée. Fondamental pour la cartographie 3D et le SLAM (Simultaneous Localization and Mapping).
Datasets de référence
| Dataset | Type | Taille | Tâche |
|---|---|---|---|
| ModelNet40 | Objets CAD | 12 311 modèles, 40 classes | Classification |
| ShapeNet | Objets CAD | ~51 000 modèles, 55 classes | Segmentation de parties |
| S3DIS | Scènes intérieures | 6 bâtiments, 271 pièces | Segmentation sémantique |
| ScanNet | Scènes intérieures scannées | 1 513 scènes | Segmentation, détection |
| KITTI | Conduite autonome (LiDAR) | ~15 000 frames | Détection 3D, segmentation |
| nuScenes | Conduite autonome (LiDAR + caméra) | 1 000 scènes de 20 s | Détection 3D, tracking |
| Waymo Open | Conduite autonome (LiDAR haute résolution) | ~200 000 frames | Détection 3D, segmentation |
Applications
Véhicules autonomes. Le LiDAR produit des nuages de points qui sont la source principale de perception 3D pour les véhicules autonomes. Les réseaux de détection 3D (PointPillars, CenterPoint, TransFusion) identifient piétons, véhicules et cyclistes en temps réel à partir de ces nuages.
Cartographie et jumeaux numériques. Les nuages de points LiDAR aériens ou terrestres sont utilisés pour créer des cartes 3D de villes, d’infrastructures et de bâtiments. Les jumeaux numériques d’usines et de chantiers reposent sur des scans LiDAR réguliers.
Architecture et BIM. La numérisation de bâtiments existants (scan-to-BIM) convertit des nuages de points LiDAR en modèles architecturaux exploitables dans des logiciels comme Revit ou ArchiCAD.
Robotique. Les robots utilisent des caméras de profondeur pour percevoir leur environnement sous forme de nuages de points, permettant la manipulation d’objets, la navigation et l’interaction avec l’environnement physique.
Foresterie et environnement. Le LiDAR aérien (drone ou avion) produit des nuages de points de forêts, permettant de mesurer la hauteur des arbres, le volume de biomasse et la densité de couvert végétal.
Patrimoine culturel. La numérisation de monuments et de sites archéologiques en nuages de points haute résolution permet leur préservation numérique et leur étude sans contact physique.
Défis du traitement de nuages de points
Densité variable. Un même nuage de points peut avoir des zones très denses (surfaces proches du capteur) et des zones très clairsemées (surfaces éloignées ou occultées). Les modèles doivent être robustes à ces variations de densité. PointNet++ adresse ce problème avec ses couches d’agrégation multi-échelle, mais il reste un défi pour les très grandes scènes.
Bruit et outliers. Les capteurs LiDAR et les caméras de profondeur produisent inévitablement des points erronés (réflexions multiples, bruit de mesure, artefacts sur les surfaces réfléchissantes). Le pré-traitement (filtrage statistique, suppression d’outliers) est une étape critique avant toute analyse par deep learning.
Passage à l’échelle. Les scènes de grande taille (une ville entière, un bâtiment complet) contiennent des milliards de points. Les réseaux de neurones ne peuvent pas traiter autant de points en une seule passe. Les approches par fenêtres spatiales (traiter la scène par blocs) ou par sous-échantillonnage hiérarchique sont nécessaires, mais introduisent des artefacts aux frontières des blocs.
Annotation 3D. Annoter manuellement des nuages de points (segmentation sémantique, bounding boxes 3D) est extrêmement coûteux et lent. C’est l’un des goulots d’étranglement majeurs du domaine. Des approches semi-supervisées, l’apprentissage auto-supervisé et la propagation automatique de labels depuis des annotations 2D sont des pistes actives.
Fusion multi-capteurs. En conduite autonome, les nuages de points LiDAR sont souvent fusionnés avec les images des caméras pour enrichir la perception (ajouter la couleur et la sémantique 2D aux points 3D). Cette fusion multi-modale nécessite un calibrage précis entre les capteurs et des architectures capables de traiter les deux modalités conjointement.
État de l’art et tendances
Transformers 3D. Le Point Transformer et ses successeurs (Stratified Transformer, OctFormer) représentent l’état de l’art en segmentation sémantique 3D. L’attention sur les voisinages locaux capture les relations géométriques complexes mieux que les convolutions sur graphes ou les MLP par point.
Modèles de fondation 3D. Des modèles pré-entraînés à grande échelle sur des nuages de points non annotés émergent. Uni3D (2024) propose un espace d’embedding unifié pour les nuages de points, les images et le texte, similaire à CLIP mais étendu à la 3D. SAM 3D (Meta) étend Segment Anything aux nuages de points.
Convergence avec le Gaussian Splatting. Le 3D Gaussian Splatting part d’un nuage de points sparse et le transforme en scène rendue photoréaliste. Cette convergence entre nuages de points classiques et représentations neurales crée de nouvelles possibilités : un scan LiDAR peut être converti en scène GS pour la visualisation, puis reconverti en nuage de points pour l’analyse géométrique.
Relation avec les autres représentations 3D
Le nuage de points est la brique de base de nombreuses représentations 3D plus structurées. Le Gaussian Splatting part d’un nuage de points sparse (généré par COLMAP) et le densifie en gaussiennes 3D. Le NeRF utilise les poses de caméra estimées conjointement avec le nuage de points initial. La génération de meshes reconstruit des surfaces à partir de nuages de points (Poisson surface reconstruction, Ball Pivoting Algorithm). La conversion entre ces représentations est fondamentale dans les pipelines de reconstruction 3D.
Questions fréquentes sur les nuages de points
Quelle est la différence entre un nuage de points et un mesh 3D ?
Un nuage de points est un ensemble non structuré de points 3D sans connexions entre eux. Un mesh est un ensemble de sommets reliés par des arêtes et des faces (typiquement des triangles), formant une surface. Le mesh a une topologie (quels points sont connectés), le nuage de points non. Pour passer d’un nuage de points à un mesh, il faut reconstruire la surface (Poisson, Marching Cubes, Ball Pivoting).
Pourquoi ne pas convertir les nuages de points en voxels pour utiliser des CNN 3D ?
La voxelisation convertit l’espace continu en une grille 3D régulière, ce qui permet d’utiliser des convolutions 3D classiques. Le problème : l’espace 3D est principalement vide. Pour une résolution fine (voxels de 1 cm), une scène de 10 m³ nécessite 10⁹ voxels, dont la majorité sont vides. Cela gaspille mémoire et calcul. Les convolutions sparses (MinkowskiEngine) et les méthodes directes sur points (PointNet) contournent ce problème.
Combien de points contient un nuage de points typique ?
Cela varie énormément selon l’application. Un scan LiDAR automobile (Velodyne) produit ~100 000 points par frame. Un scan LiDAR terrestre haute résolution (Leica) peut produire des milliards de points pour un bâtiment. Un capteur de profondeur (Intel RealSense) produit ~300 000 points par frame. Les datasets de deep learning utilisent typiquement 1 024 à 8 192 points par objet (sous-échantillonné) pour la classification, et des centaines de milliers de points pour la segmentation de scènes.
PointNet est-il encore pertinent ?
PointNet est dépassé en performances brutes par les méthodes plus récentes (Point Transformer, stratified Transformer, MinkowskiNet). Cependant, il reste fondamental : son architecture est la base de nombreuses méthodes ultérieures (PointNet++ est toujours le backbone de SGPN, VoteNet et d’autres détecteurs), il est pédagogiquement clair et facile à implémenter, et il sert de baseline universelle dans les publications. Avec plus de 15 000 citations, c’est l’un des travaux les plus influents en vision 3D.
Peut-on appliquer des Transformers aux nuages de points ?
Oui. Le Point Transformer (2021) et ses successeurs adaptent l’attention aux nuages de points. L’attention est calculée entre chaque point et ses voisins (attention locale), ce qui revient à un Transformer par fenêtres (comme Swin) appliqué à la géométrie 3D. Ces modèles atteignent les meilleurs résultats sur les benchmarks de segmentation sémantique 3D. L’adaptation principale est le calcul de l’attention dans un voisinage spatial (k-NN ou ball query) plutôt que sur une séquence ordonnée.