Models · Stereo matching

Selective-IGEV

IGEV-Stereo with selective recurrent units, by Xianqi Wang et al., with checkpoints for several datasets. Commercially usable.

Commercial use: yes.

variantinputbackendtime (ms)peak memory (MiB, allocated / reserved)
selective-igev-sceneflowMiddlebury 2014 half (994x1482)original (fp32)
original
portable
kernels
2201
1455
998
349
2888 / 3216
2013 / 2152
1238 / 1488
1109 / 1390
Details
  • Original code: https://github.com/Windsrain/Selective-Stereo at c39acbfef9fb
  • Code licence: MIT (permissive); files: LICENSE
  • Weights licence: MIT (assumed from code)
  • Licence evidence: https://github.com/Windsrain/Selective-Stereo/blob/c39acbfef9fbe36fbc01efa4abeafc62bbe2da36/README.md#L25
  • Training data: Freiburg SceneFlow (FlyingThings3D, Driving, Monkaa)
    • selective-igev-kitti12: Freiburg SceneFlow (FlyingThings3D, Driving, Monkaa), KITTI stereo 2012 / 2015 (SceneFlow, then fine-tuned on KITTI (KITTI 2012 model))
    • selective-igev-kitti15: Freiburg SceneFlow (FlyingThings3D, Driving, Monkaa), KITTI stereo 2012 / 2015 (SceneFlow, then fine-tuned on KITTI (KITTI 2015 model))
    • selective-igev-middlebury-finetune: Freiburg SceneFlow (FlyingThings3D, Driving, Monkaa), Middlebury stereo (2014) (SceneFlow, then fine-tuned on Middlebury (final fine-tune stage; Selective-Stereo README training commands, 'middlebury_finetune' stage); original demo runs it with max_disp 768, 80 iterations)
    • selective-igev-middlebury-train: Freiburg SceneFlow (FlyingThings3D, Driving, Monkaa), Middlebury stereo (2014) (SceneFlow, then fine-tuned on Middlebury (first fine-tune stage; Selective-Stereo README training commands, 'middlebury_train' stage))
    • selective-igev-eth3d-finetune: Freiburg SceneFlow (FlyingThings3D, Driving, Monkaa), ETH3D two-view stereo (SceneFlow, then fine-tuned on ETH3D (final fine-tune stage; Selective-Stereo README training commands, 'eth3d_finetune' stage))
    • selective-igev-eth3d-train: Freiburg SceneFlow (FlyingThings3D, Driving, Monkaa), ETH3D two-view stereo (SceneFlow, then fine-tuned on ETH3D (first fine-tune stage; Selective-Stereo README training commands, 'eth3d_train' stage))
  • Options: iters = 32 (>= 1)
  • Kernel libraries: igev, cutlass_conv, cudnn_hacc
  • Variants: selective-igev-sceneflow, selective-igev-kitti12, selective-igev-kitti15, selective-igev-middlebury-finetune, selective-igev-middlebury-train, selective-igev-eth3d-finetune, selective-igev-eth3d-train
  • 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): selective-igev-sceneflow 3000x4000 (10.3 GiB peak allocated, 14.0 reserved); selective-igev-kitti12 3000x4000 (10.3 GiB peak allocated, 14.0 reserved); selective-igev-kitti15 3000x4000 (10.3 GiB peak allocated, 14.0 reserved); selective-igev-middlebury-finetune 3000x4000 (10.3 GiB peak allocated, 14.0 reserved); selective-igev-middlebury-train 3000x4000 (10.3 GiB peak allocated, 14.0 reserved); selective-igev-eth3d-finetune 3000x4000 (10.3 GiB peak allocated, 14.0 reserved); selective-igev-eth3d-train 3000x4000 (10.3 GiB peak allocated, 14.0 reserved)
  • selective-igev-kitti12, selective-igev-kitti15, selective-igev-middlebury-finetune, selective-igev-middlebury-train, selective-igev-eth3d-finetune, selective-igev-eth3d-train: same network and settings as selective-igev-sceneflow, measured once (rows not repeated).
  • selective-igev-sceneflow original (fp32) 994x1482, original 994x1482: timed with selective-igev-eth3d-finetune (same network, other weights)
  • selective-igev-sceneflow portable 994x1482, kernels 994x1482: measured on selective-igev-eth3d-finetune (same architecture, other checkpoint)
  • selective-igev-sceneflow load / first call: original 0.36 s / 2.251 s (375x1242), portable 0.5 s / 1.016† s, kernels 0.14† s / 0.35† s
  • selective-igev-kitti12 load / first call: original 0.36 s / 2.251 s (375x1242), portable 0.5 s / 1.016† s, kernels 0.14† s / 0.35† s
  • selective-igev-kitti15 load / first call: original 0.36 s / 2.251 s (375x1242), portable 0.5 s / 1.016† s, kernels 0.14† s / 0.35† s
  • selective-igev-middlebury-finetune load / first call: original 0.36 s / 2.251 s (375x1242), portable 0.5 s / 1.016† s, kernels 0.14† s / 0.35† s
  • selective-igev-middlebury-train load / first call: original 0.36 s / 2.251 s (375x1242), portable 0.5 s / 1.016† s, kernels 0.14† s / 0.35† s
  • selective-igev-eth3d-finetune load / first call: original 0.36 s / 2.251 s (375x1242), portable 0.5 s / 1.016† s, kernels 0.14† s / 0.35† s
  • selective-igev-eth3d-train load / first call: original 0.36 s / 2.251 s (375x1242), portable 0.5 s / 1.016† s, kernels 0.14† s / 0.35† 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
selective-igev-sceneflowETH3D two-view train, bad > 1 px % / EPE6.08 / 1.4266.06 / 1.4056.05 / 1.4016.06 / 1.410
selective-igev-sceneflowMiddlebury 2014 trainingH, bad > 2 px % / EPE11.78 / 2.58411.77 / 2.57111.81 / 2.59111.80 / 2.591
selective-igev-kitti12ETH3D two-view train, bad > 1 px % / EPE24.09 / 3.65524.07 / 3.66324.07 / 3.64924.07 / 3.662
selective-igev-kitti12Middlebury 2014 trainingH, bad > 2 px % / EPE20.09 / 4.85420.09 / 4.86220.08 / 4.84520.09 / 4.862
selective-igev-kitti15ETH3D two-view train, bad > 1 px % / EPE24.25 / 2.44924.26 / 2.44524.26 / 2.44524.26 / 2.456
selective-igev-kitti15Middlebury 2014 trainingH, bad > 2 px % / EPE19.64 / 4.94919.64 / 4.95219.65 / 4.95619.64 / 4.941
selective-igev-middlebury-finetuneETH3D two-view train, bad > 1 px % / EPE24.24 / 0.99524.24 / 0.99424.27 / 0.99524.24 / 0.995
selective-igev-middlebury-finetuneMiddlebury 2014 trainingH, bad > 2 px % / EPE5.65 / 1.1925.66 / 1.1925.66 / 1.2085.67 / 1.194trained on this dataset's public images; not a zero-shot result
selective-igev-middlebury-trainETH3D two-view train, bad > 1 px % / EPE10.28 / 0.43410.24 / 0.43310.24 / 0.43310.25 / 0.433
selective-igev-middlebury-trainMiddlebury 2014 trainingH, bad > 2 px % / EPE5.95 / 1.4375.96 / 1.4335.97 / 1.4355.99 / 1.437trained on this dataset's public images; not a zero-shot result
selective-igev-eth3d-finetuneETH3D two-view train, bad > 1 px % / EPE0.32 / 0.0820.32 / 0.0820.32 / 0.0820.32 / 0.082trained on this dataset's public images; not a zero-shot result
selective-igev-eth3d-finetuneMiddlebury 2014 trainingH, bad > 2 px % / EPE12.33 / 2.81312.33 / 2.80812.33 / 2.80712.34 / 2.811
selective-igev-eth3d-trainETH3D two-view train, bad > 1 px % / EPE0.78 / 0.1370.78 / 0.1370.78 / 0.1370.78 / 0.137trained on this dataset's public images; not a zero-shot result
selective-igev-eth3d-trainMiddlebury 2014 trainingH, bad > 2 px % / EPE7.96 / 2.1587.97 / 2.1537.99 / 2.1618.01 / 2.158

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
selective-igev-sceneflow0.00076 / 0.00407RTX 5060 Ti, torch 2.14.1+cu130cudnn_hacc@cudnn92400, cutlass_conv@988138e042cb:sm_120, igev@f075827d68c6:sm_120
selective-igev-kitti120.00076 / 0.00226RTX 5060 Ti, torch 2.14.1+cu130cudnn_hacc@cudnn92400, cutlass_conv@988138e042cb:sm_120, igev@f075827d68c6:sm_120
selective-igev-kitti150.00051 / 0.00166RTX 5060 Ti, torch 2.14.1+cu130cudnn_hacc@cudnn92400, cutlass_conv@988138e042cb:sm_120, igev@f075827d68c6:sm_120
selective-igev-middlebury-finetune0.00102 / 0.00544RTX 5060 Ti, torch 2.14.1+cu130cudnn_hacc@cudnn92400, cutlass_conv@988138e042cb:sm_120, igev@f075827d68c6:sm_120
selective-igev-middlebury-train0.0027 / 0.02007RTX 5060 Ti, torch 2.14.1+cu130cudnn_hacc@cudnn92400, cutlass_conv@988138e042cb:sm_120, igev@f075827d68c6:sm_120
selective-igev-eth3d-finetune0.00127 / 0.005RTX 5060 Ti, torch 2.14.1+cu130cudnn_hacc@cudnn92400, cutlass_conv@988138e042cb:sm_120, igev@f075827d68c6:sm_120
selective-igev-eth3d-train0.00115 / 0.00565RTX 5060 Ti, torch 2.14.1+cu130cudnn_hacc@cudnn92400, cutlass_conv@988138e042cb:sm_120, igev@f075827d68c6:sm_120

Limitations

  • ONNX export needs torch >= 2.14 (older exporters fail on this network).