💡 Inspiration
Autonomous driving relies on 3D object detection to "see" the world, but current LiDAR processing models are often massive, rigid, and computationally expensive. Inspired by how the human brain grows new dendritic connections to learn complex tasks, we wanted to see if we could apply Dendritic Optimization to the high-stakes domain of self-driving perception. Our goal was to build a system that doesn't just train—it grows its own capacity to handle the complex spatial features of the Waymo Open Dataset.
🛠️ What it does
DendriticDrive is a 3D point cloud detection pipeline. It uses a PointPillar-style backbone to convert LiDAR pulses into 3D bounding boxes. By integrating PerforatedAI, the model autonomously monitors its own learning progress. When it detects a bottleneck in understanding complex 3D geometry, it triggers a dendritic growth event, adding artificial dendrites to the network on the fly. This allows for:
- 📈 Dynamic Capacity: The model adds neurons only where the data is most challenging.
- ⚡ Efficiency: Higher accuracy with a smaller, more specialized base architecture.
- 🚗 Real-world Robustness: Better detection of pedestrians and cyclists in 3D space.
🏗️ How I built it
I built DendriticDrive using PyTorch and the PerforatedAI library.
- Backbone Architecture: Implemented a simplified PointPillar encoder logic suitable for rapid iteration.
- PAI Integration: Used the
PAINeuronModuleTrackerto handle real-time architecture restructuring. - Hybrid Data Loader: Developed a custom loader that supports the massive 1TB Waymo Open Dataset (v1.4.3) but also includes a synthetic "Demo Mode" for testing logic without heavy hardware.
- Dynamic Scheduling: Integrated
OneCycleLRthat automatically re-calculates its trajectory whenever the model undergoes a biological-style restructuring.
🚧 Challenges I ran into
- Data Collation: 3D frames have a variable number of objects, which breaks standard PyTorch batching. I had to implement a custom
collate_fnto handle these "ragged" annotations. - Tracker Alignment: Aligning the internal state of the PAI tracker with the specific layers of a 3D backbone required precise mapping of input/output dimensions during growth events.
- Optimizer Re-initialization: Every time the model "grows," the optimizer must be reset without lose learning momentum. I solved this by automating the
total_stepscalculation based on the current epoch and batch size.
🏆 Accomplishments that I'm proud of
- Proving the Growth: Seeing the terminal output
🌿 DENDRITE ADDITION DETECTED!for the first time was a major win—it proved that the bio-inspired logic was successfully identifying and solving feature complexity in 3D space. - Framework Mastery: Successfully merged a cutting-edge bio-optimization library with an industry-standard AV perception task, moving beyond simple 2D classification.
📖 What I learned
- I deep-dived into the math of dendritic computations and how adding non-linearities at the dendrite level (rather than just the neuron level) can significantly boost a model's capacity.
- I learned how to manage complex, dynamic PyTorch graphs that change architecture during the training loop.
🚀 What's next for DendriticDrive
- Edge Deployment: Testing the model on NVIDIA Orin hardware to measure the power-efficiency gains of optimized dendritic networks.
- Speed Boost: Integrating Perforated Backpropagation™ to speed up training by 10x.
- Multi-modal Growth: Expanding the system to handle synchronized Camera + LiDAR data, where dendrites can help align cross-modal features.
Built With
- perforatedai
- python
- waymo
Log in or sign up for Devpost to join the conversation.