Models · Stereo matching

IGEV-Stereo

An iterative stereo network by Gangwei Xu et al. (geometry encoding volume with ConvGRU updates), with several fine-tuned checkpoints. Commercially usable.

Commercial use: yes.

variantinputbackendtime (ms)peak memory (MiB, allocated / reserved)
igev-stereo-sceneflowMiddlebury 2014 half (994x1482)original (fp32)
original
portable
kernels
1518
941
763
288
2886 / 3252
1789 / 1936
1237 / 1492
1113 / 1374
Details
  • Original code: https://github.com/gangweix/IGEV at 4a3d937aab78
  • Code licence: MIT (permissive); files: LICENSE
  • Weights licence: MIT (assumed from code)
  • Licence evidence: https://github.com/gangweix/IGEV/blob/4a3d937aab788b3ff3ed49b7b5c81340ab46a5eb/README.md#L17
  • Training data: Freiburg SceneFlow (FlyingThings3D, Driving, Monkaa)
    • igev-stereo-middlebury: Middlebury submission model
    • igev-stereo-eth3d: ETH3D submission model
    • igev-stereo-kitti12: Freiburg SceneFlow (FlyingThings3D, Driving, Monkaa), KITTI stereo 2012 / 2015 (SceneFlow, then fine-tuned on KITTI (KITTI 2012 submission model))
    • igev-stereo-kitti15: Freiburg SceneFlow (FlyingThings3D, Driving, Monkaa), KITTI stereo 2012 / 2015 (SceneFlow, then fine-tuned on KITTI (KITTI 2015 submission model))
  • Options: iters = 32 (>= 1)
  • Kernel libraries: igev, cutlass_conv, cudnn_hacc
  • Variants: igev-stereo-sceneflow, igev-stereo-middlebury, igev-stereo-eth3d, igev-stereo-kitti12, igev-stereo-kitti15
  • Outputs: disparity
  • Input size: any H x W >= 32, padded to a multiple of 32
  • Tested up to (portable, fp16, RTX 5060 Ti 16 GB): igev-stereo-sceneflow 3000x4000 (10.3 GiB peak allocated, 14.0 reserved); igev-stereo-middlebury 3000x4000 (10.3 GiB peak allocated, 14.0 reserved); igev-stereo-eth3d 3000x4000 (10.3 GiB peak allocated, 14.0 reserved); igev-stereo-kitti12 3000x4000 (10.3 GiB peak allocated, 14.0 reserved); igev-stereo-kitti15 3000x4000 (10.3 GiB peak allocated, 14.0 reserved)
  • igev-stereo-middlebury, igev-stereo-eth3d, igev-stereo-kitti12, igev-stereo-kitti15: same network and settings as igev-stereo-sceneflow, measured once (rows not repeated).
  • igev-stereo-sceneflow original (fp32) 994x1482, original 994x1482: timed with igev-stereo-eth3d (same network, other weights)
  • igev-stereo-sceneflow portable 994x1482, kernels 994x1482: measured on igev-stereo-eth3d (same architecture, other checkpoint)
  • igev-stereo-sceneflow load / first call: original 0.32 s / 2.565 s (375x1242), portable 0.47 s / 0.763† s, kernels 0.15† s / 0.286† s
  • igev-stereo-middlebury load / first call: original 0.32 s / 2.565 s (375x1242), portable 0.47 s / 0.763† s, kernels 0.15† s / 0.286† s
  • igev-stereo-eth3d load / first call: original 0.32 s / 2.565 s (375x1242), portable 0.47 s / 0.763† s, kernels 0.15† s / 0.286† s
  • igev-stereo-kitti12 load / first call: original 0.32 s / 2.565 s (375x1242), portable 0.47 s / 0.763† s, kernels 0.15† s / 0.286† s
  • igev-stereo-kitti15 load / first call: original 0.32 s / 2.565 s (375x1242), portable 0.47 s / 0.763† s, kernels 0.15† s / 0.286† 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.

variantdatasetoriginal fp32original fp16portablekernelsnote
igev-stereo-sceneflowETH3D two-view train, bad > 1 px % / EPE4.05 / 0.3334.04 / 0.3334.06 / 0.3334.04 / 0.333
igev-stereo-sceneflowMiddlebury 2014 trainingH, bad > 2 px % / EPE11.92 / 2.63511.89 / 2.63111.89 / 2.63111.93 / 2.637
igev-stereo-middleburyETH3D two-view train, bad > 1 px % / EPE19.81 / 0.79619.81 / 0.79719.81 / 0.79619.80 / 0.797possibly in the training data
igev-stereo-middleburyMiddlebury 2014 trainingH, bad > 2 px % / EPE5.44 / 0.8695.45 / 0.8665.45 / 0.8705.48 / 0.871possibly in the training data
igev-stereo-eth3dETH3D two-view train, bad > 1 px % / EPE0.56 / 0.1280.57 / 0.1280.55 / 0.1280.56 / 0.128possibly in the training data
igev-stereo-eth3dMiddlebury 2014 trainingH, bad > 2 px % / EPE11.86 / 3.01911.86 / 3.04011.88 / 3.04611.90 / 3.036possibly in the training data
igev-stereo-kitti12ETH3D two-view train, bad > 1 px % / EPE26.02 / 1.70126.04 / 1.72826.07 / 1.73326.02 / 1.735
igev-stereo-kitti12Middlebury 2014 trainingH, bad > 2 px % / EPE17.30 / 4.65317.33 / 4.63617.28 / 4.63817.33 / 4.648
igev-stereo-kitti15ETH3D two-view train, bad > 1 px % / EPE24.64 / 1.72224.64 / 1.72624.63 / 1.74024.63 / 1.734
igev-stereo-kitti15Middlebury 2014 trainingH, bad > 2 px % / EPE19.32 / 4.39519.29 / 4.40019.35 / 4.40119.32 / 4.407

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.

variantkernels error vs original, mean / p99GPU, torchkernels used
igev-stereo-sceneflow0.00359 / 0.06778RTX 5060 Ti, torch 2.14.1+cu130cudnn_hacc@cudnn92400, cutlass_conv@988138e042cb:sm_120, igev@f075827d68c6:sm_120
igev-stereo-middlebury0.00113 / 0.00579RTX 5060 Ti, torch 2.14.1+cu130cudnn_hacc@cudnn92400, cutlass_conv@988138e042cb:sm_120, igev@f075827d68c6:sm_120
igev-stereo-eth3d0.00166 / 0.00658RTX 5060 Ti, torch 2.14.1+cu130cudnn_hacc@cudnn92400, cutlass_conv@988138e042cb:sm_120, igev@f075827d68c6:sm_120
igev-stereo-kitti120.00108 / 0.00506RTX 5060 Ti, torch 2.14.1+cu130cudnn_hacc@cudnn92400, cutlass_conv@988138e042cb:sm_120, igev@f075827d68c6:sm_120
igev-stereo-kitti150.00081 / 0.00279RTX 5060 Ti, torch 2.14.1+cu130cudnn_hacc@cudnn92400, cutlass_conv@988138e042cb:sm_120, igev@f075827d68c6:sm_120

Limitations

  • The original code's dtu.ckpt (IGEV-MVS, another architecture) is not included.