Pip-Stereo: Progressive Iterations Pruner for Iterative Optimization based Stereo Matching
Organizations: ARIDGE XPENG
Abstract
While iterative stereo matching achieves high accuracy, its dependence on Recurrent Neural Networks (RNN) hinders edge deployment, a challenge underexplored in existing researches. We analyze iterative refinement and reveal that disparity updates are spatially sparse and temporally redundant. First, we introduce a progressive iteration pruning strategy that suppresses redundant update steps, effectively collapsing the recursive computation into a near-single-pass inference. Second, we propose a collaborative monocular prior transfer framework that implicitly embeds depth priors without requiring a dedicated monocular encoder, thereby eliminating its associated computational burden. Third, we develop FlashGRU, a hardware-aware RNN operator leveraging structured sparsity and I/O-conscious design, achieving a 7.28 speedup, 76.6% memory peak reduction and 80.9% global memory requests reduction over natvie ConvGRUs under 2K resolution. Our PipStereo enables real-time, high-fidelity stereo matching on edge hardware: it processes 320640 frames in just 75ms on an NVIDIA Jetson Orin NX (FP16) and 19ms on RTX 4090, matching the accuracy of large iterative based models, and our generalization ability and accuracy far exceeds that of existing real-time methods. Our embedded AI projects will be updated at: https://github.com/XPENG-Aridge-AI.
Figures & tables
| Method | Iters. | Sceneflow [ 16 ] | ETH3D [ 21 ] | KITTI 2012 [ 18 ] | KITTI 2015 [ 8 ] | Latency(s) | ||||||||
| EPE | Bad-1 | Bad-1 | RMSE | Out-2 | Out-2 | Out-3 | Out-3 | D1-bg | D1-all | D1-bg | D1-all | |||
| All | Noc | All | Noc | Noc | All | Noc | All | Noc | Noc | All | All | |||
| RaftStereo [ 15 ] | 32 | 0.72 | 2.44 | 2.60 | 0.36 | 1.92 | 2.42 | 1.30 | 1.66 | 1.44 | 1.69 | 1.58 | 1.82 | 2.95 |
| IGEV [ 33 ] | 12 | 0.49 | 1.12 | 1.51 | 0.34 | 1.71 | 2.17 | 1.12 | 1.44 | 1.27 | 1.49 | 1.38 | 1.59 | 1.29 |
| SelectiveIGEV [ 28 ] | 12 | 0.44 | 1.23 | 1.56 | 0.29 | 1.59 | 2.05 | 1.07 | 1.38 | 1.22 | 1.44 | 1.33 | 1.55 | 1.61 |
| DEFOMStereo [ 12 ] | 32 | 0.42 | 0.70 | 0.78 | 0.22 | 1.43 | 1.79 | 0.94 | 1.18 | 1.25 | 1.41 | 1.15 | 1.33 | 5.05 |
| Method | Iter. based | Sunny | Cloudy | Rainy | Foggy | Avg. | Latency(s) |
| ZeroStereo [ 29 ] | ✗ | 3.15 | 2.69 | 11.71 | 1.70 | 4.81 | OOM |
| Nerf-Stereo [ 24 ] | ✗ | 2.88 | 2.95 | 8.47 | 3.41 | 4.43 | - |
| SMoEStereo [ 30 ] | ✗ | 3.51 | 3.11 | 6.08 | 4.77 | 4.37 | - |
| IGEV [ 33 ] | ✓ | 5.30 | 5.48 | 15.41 | 5.01 | 7.80 | 1.29 |
| Selective-IGEV [ 28 ] | ✓ | 5.67 | 5.35 | 13.84 | 4.79 | 7.41 | 1.61 |
| DefomStereo [ 12 ] | ✓ | 3.39 | 3.13 | 12.84 | 2.57 | 5.48 | 5.05 |
| ID | Method | Alias | Infer iters. | SceneFlow [ 16 ] | Latency(s) |
| 1 | Selective-IGEV [ 28 ] | - | 12 | 0.44 | 1.61 |
| 2 | - | - | 32 | 0.44 | 3.57 |
| 3 | - | - | 1 | 0.64 | 0.60 |
| 4 | +MPT (w./o. search) | - | 32 | 0.40 | 3.40 |
| 5 | +MPT | PipStereo-i32 | 1 | 0.56 | 0.44 |
| 6 | +MPT | PipStereo-i32 | 32 | 0.38 | 3.40 |
| Flash. | Size | RNN Latency | Mem. Peak (MiB) | Mem. Request |
| ✗ | 320 736 | 28.8ms | 743 | 2.260 |
| ✓ | 320 736 | 14.8ms ( 1.94 ) | 561 ( 24.4% ) | ( 58.1% ) |
| ✗ | 640 1472 | 45.2ms | 1431 | 9.258 |
| ✓ | 640 1472 | 15.2ms ( 2.97 ) | 715 ( 50.0% ) | ( 76.4% ) |
| ✗ | 1280 2944 | 122.4ms | 4105 | 37.756 |
| ✓ | 1280 2944 | 16.8ms ( 7.28 ) | 957 ( 76.6% ) | ( 80.9% ) |
Stereo Matching
Stereo matching estimates depth by finding corresponding points in paired images and measuring their disparity.
See all 56 papers