DRIVING SIMULATIONS FOR
AUTONOMOUS VEHICLES WITH
3D TILES AND CESIUM
Tom Fili
Cesium
@CesiumFili
What is Cesium?
• CesiumJS• Open-source JavaScript library for rendering 3D globes and 2D maps
• Apache 2.0 License
• Runs in a browser and on mobile
• Cesium ion• Online service for processing and efficiently streaming data
• Accepts point clouds, terrain, imagery, photogrammetry, BIM/CAD models, CityGML
• Free for non-commercial use/paid enterprise accounts
• https://cesium.com/ion to sign up
What is Cesium?
• Specification for streaming massive heterogeneous 3D geospatial datasets.
• Open Specification and Open Source implementation in Cesium.
• Allows custom tiling schemes.
• Declarative Styling.
• Adopted by OGC as a Community Standard in February 2019.
https://github.com/AnalyticalGraphicsInc/3d-tiles
Demo
• Autonomous cars use many sensor types that generate TBs of heterogeneous geospatial data• Telemetry
• GPS
• Gyroscope
• Accelerometer
• Point clouds• LIDAR
• Photogrammetry• Camera
Data…a whole lot of it
• What gets collected• Position
• Orientation
• Velocity
• Acceleration
• How can we stream it• CZML
• JSON schema for time-varying values
• Distribute simulation across multiple CZML files…like streaming video
• Can be real-time or playback
Telemetry data
Telemetry data
• What is collected• Position• Color• Intensity
• How can we stream it• Streamed as a single 3D Tiles point cloud tile• No level of detail• Can handle 500k points before we need to LOD tiling
• How can we make it fast• Draco compression
• 4x smaller than uncompressed 3D Tiles
• 2x faster in CesiumJS
Dynamic Point Clouds
Next Generation
• GPU-accelerated sensor visibility
• Multiple geometry type including cones, rectangles, and domes
• Custom sensor geometries
View Sheds
• Can be billion or even trillions of points
• How can we stream it• Points
• Meshes
• How can we make it fast• Intermediate LODs
• Progressively load in more points
• We provide tilers as part of Cesium ion
• Draco compression
Tiled Point clouds
• How can we make it fast (cont.)• Adaptive spatial subdivision
Tiled Point Clouds
• Hardware• 4 core i7 with 16GB of RAM
• 185.3 million points in 109 seconds
• 6.4 billion points in 24 minutes
Point Cloud Tiling Performance
• Can be tens of thousand of photos
• Output models can very large
• How can we make it fast• Intermediate LODs
• Draco compression• Slightly better than point clouds (~5x compression)
• Adaptive spatial subdivision
• Skipping levels of detail• Children replace the parents, so we can skip unneeded higher level tiles
Photogrammetry
Photogrammetry
• Hardware• 4 cores with 16 GB of RAM
• 0.3 square km and 1.4 million triangles
• 4.5 minutes
• Hardware• 16 cores with 128 GB of RAM
• 12cm with heavy textures
• 5 minutes per square km.
Photogrammetry Performance
• The intersection of the geometry, e.g., bounding boxes, classifies the environment
• Geometry tilesets can be generated in a variety of ways (eg. open datasets, machine learningalgorithms, etc.)
Classification
Classification
• Dynamic data• CZML
• Time Dynamic point clouds
• Large data collections• 3D Tiles
• Cesium ion
Summary