AANet
A stereo network that aggregates matching costs with sparse deformable sampling across scales, trained on synthetic SceneFlow data. Commercially usable.
Commercial use: yes.
| variant | input | backend | time (ms) | peak memory (MiB, allocated / reserved) |
|---|---|---|---|---|
aanet-sceneflow | Middlebury 2014 half (994x1482) | original (fp32) original portable kernels portable + torch.compile TensorRT fp16 | 289 178 140 101 91.8 91.2 | 1785 / 1962 1000 / 1126 845 / 986 536 / 644 754 / 928 482 (engine) |
aanet-plus-sceneflow | Middlebury 2014 half (994x1482) | original (fp32) original portable kernels | 263 194 159 88.9 | 3618 / 3896 3652 / 3784 1142 / 1278 813 / 920 |
Details
- Original code: https://github.com/haofeixu/aanet at
8d0d747e69bb - Code licence: Apache-2.0 (permissive); files:
LICENSE - Weights licence: Apache-2.0 (assumed from code)
- Licence evidence: https://github.com/haofeixu/aanet/blob/8d0d747e69bbdba43e2578b60ad7df63ba7fdac2/LICENSE
- Training data: Freiburg SceneFlow (FlyingThings3D, Driving, Monkaa)
- Kernel libraries:
deform_conv,igev,cutlass_conv,cudnn_hacc - Variants:
aanet-sceneflow,aanet-plus-sceneflow - Outputs: disparity
- Input size:
aanet-sceneflow: any H x W >= 48, padded to a multiple of 48aanet-plus-sceneflow: any H x W >= 96, padded to a multiple of 96
- Tested up to (portable, fp16, RTX 5060 Ti 16 GB):
aanet-sceneflow3000x4000 (9.4 GiB peak allocated, 12.5 reserved);aanet-plus-sceneflow1024x2048 (7.1 GiB peak allocated, 8.1 reserved) aanet-sceneflow994x1482, first call: portable + torch.compile 80 s (cold Inductor cache), TensorRT fp16 211 s (ONNX + engine).aanet-scenefloworiginal (fp32) 994x1482: deformable conv via torchvision.ops.deform_conv2d (original CUDA extension not built)aanet-scenefloworiginal 994x1482: torch.autocast(fp16) around the forward; deformable conv via torchvision.ops.deform_conv2d (original CUDA extension not built)aanet-plus-scenefloworiginal (fp32) 994x1482: deformable conv via torchvision.ops.deform_conv2d (original CUDA extension not built)aanet-plus-scenefloworiginal 994x1482: torch.autocast(fp16) around the forward; deformable conv via torchvision.ops.deform_conv2d (original CUDA extension not built)aanet-sceneflowload / first call: original 0.12 s / 0.067 s (375x1242), portable 0.19 s / 0.143† s, kernels 0.27† s / 0.101† saanet-plus-sceneflowload / first call: original 0.15 s / 0.701 s (375x1242), portable 0.16 s / 0.166† s, kernels 0.2† s / 0.09† s- † measured in the speed sweep after the portable load (or an earlier size) in the same process: file cache and kernels are warm, so the time is lower than a fresh start.
- Protocol, median of 5 after 3 warm-up, uint8 CUDA input (synthetic for bench_inputs sizes), card defaults; gc before each load; peak = max over the first call and the timed calls
Measured
Original = the original code named under Details, same checkpoint and protocol.
| variant | dataset | original fp32 | original fp16 | portable | kernels | note |
|---|---|---|---|---|---|---|
aanet-sceneflow | ETH3D two-view train, bad > 1 px % / EPE | 14.64 / 0.697 | 14.63 / 0.697 | 14.63 / 0.697 | 14.64 / 0.698 | |
aanet-sceneflow | Middlebury 2014 trainingH, bad > 2 px % / EPE | 32.15 / 6.305 | 32.15 / 6.301 | 32.16 / 6.301 | 32.16 / 6.303 | |
aanet-plus-sceneflow | ETH3D two-view train, bad > 1 px % / EPE | 18.48 / 0.811 | 18.50 / 0.812 | 18.50 / 0.811 | 18.50 / 0.812 | |
aanet-plus-sceneflow | Middlebury 2014 trainingH, bad > 2 px % / EPE | 29.84 / 6.237 | 29.85 / 6.236 | 29.86 / 6.237 | 29.86 / 6.232 |
Measured on NVIDIA GeForce RTX 5060 Ti, torch 2.14.1+cu130, fastforks 468fba10, 2026-11-05.
Parity
CPU, float32: max |diff| <= 0.002 vs the original. GPU, float16 (the default), portable and kernels: mean |diff| <= 0.02 px and p99 <= 0.25 px.
| variant | kernels error vs original, mean / p99 | GPU, torch | kernels used |
|---|---|---|---|
aanet-sceneflow | 0.00403 / 0.04845 | RTX 5060 Ti, torch 2.14.1+cu130 | cudnn_hacc@cudnn92400, cutlass_conv@988138e042cb:sm_120, deform_conv@a38662ea1bfc:sm_120, igev@f075827d68c6:sm_120 |
aanet-plus-sceneflow | 0.00295 / 0.02185 | RTX 5060 Ti, torch 2.14.1+cu130 | cudnn_hacc@cudnn92400, cutlass_conv@988138e042cb:sm_120, deform_conv@a38662ea1bfc:sm_120, igev@f075827d68c6:sm_120 |
Limitations
- Only the SceneFlow checkpoints of AANet and AANet+ are included; the original code's KITTI fine-tunes are not.
- At 375x1242 AANet is launch-bound: portable is about as fast as the original code. At 994x1482 portable is faster but allocates more memory.