- Note: Test on GTX1080Ti, with resolution 384x1248.
Model Name | FLOPS | Parameters | FPS | Time(ms) |
---|---|---|---|---|
AcfNet(uniform) | 1080.0G | 5.227M | 1.66 | 600.8 |
AcfNet(adaptive) | 1239.0G | 5.559M | 1.38 | 723.1 |
hints
- batch size: n * m, n GPUs m batch/GPU
- pass: clean pass or final pass of Scene Flow dataset, default clean pass
- weight init: initialize the convolution/bn layer while training from scratch, default no initialization
- synced bn: weather use synced bn provided by apex, default False
- float16: weather use mixture precision training with level 01 provided by apex, default False
- scale loss: the loss scale factor when using apex
- time: time consuming including the training and evaluating time, in format: x h(hour) y m(minute)
- EPE: end-point-error for SceneFlow
- xPE (1PE, 2PE, 3PE, 5PE): pixel error where (GroundTruth - Estimation) <= x
- D1(all): 3PE(px) & 5% for KITTI 2015
RMSProp, lr(10 epochs) schedule: 1-10 with lr*1
model name | lr | batch size | weight init | synced bn | float16 | loss scale | EPE(px) | time | BaiDuYun | GoogleDrive |
---|---|---|---|---|---|---|---|---|---|---|
adaptive | 0.001 | 4*3 | ✗ | ✓ | ✗ | ✗ | 0.8308 | 68h18m | link, pw: qxxr | link |
uniform | 0.001 | 4*3 | ✗ | ✓ | ✗ | ✗ | 0.8511 | 26h50m | link, pw: 9s4e | link |
If we alternate the disparity predictor from FasterSoftArgmin
to LocalSoftArgmin
only for reference
model name | predictor | 1PE | 2PE | 3PE | 5PE | EPE(px) |
---|---|---|---|---|---|---|
adaptive | Faster | 7.905 | 5.125 | 3.991 | 2.873 | 0.8308 |
adaptive | Local | |||||
uniform | Faster | 8.626 | 5.544 | 4.291 | 3.061 | 0.8511 |
uniform | Local | 5.983 | 3.620 | 2.838 | 2.164 | 0.8216 |
Analysis
-
Little difference for
EPE
, but make significant effect onxPE
. -
Therefore, to get better result on KITTI, alternate the disparity predictor from
FasterSoftArgmin
toLocalSoftArgmin
-
LocalSoftArgmin
only works when cost volume supervised with uni-modal distribution, worse result for PSMNet
RMSProp, lr(20 epochs) schedule: 1-20 with lr*1
model name | lr | batch size | weight init | synced bn | float16 | loss scale | EPE(px) | time | BaiDuYun | GoogleDrive |
---|---|---|---|---|---|---|---|---|---|---|
adaptive | 0.001 | 4*3 | ✗ | ✓ | ✗ | ✗ | 0.7172 | 134h31m | link, pw: qxxr | link |
uniform | 0.001 | 4*3 | ✗ | ✓ | ✗ | ✗ | 0.7440 | 56h53m | link, pw: 9s4e | link |
If we alternate the disparity predictor from FasterSoftArgmin
to LocalSoftArgmin
only for reference
model name | predictor | 1PE | 2PE | 3PE | 5PE | EPE(px) |
---|---|---|---|---|---|---|
adaptive | Faster | 6.918 | 4.480 | 3.485 | 2.498 | 0.7172 |
adaptive | Local | |||||
uniform | Faster | 7.647 | 4.917 | 4.381 | 2.693 | 0.7440 |
uniform | Local | 5.338 | 3.232 | 2.536 | 1.927 | 0.7161 |
model name | lr | batch size | weight init | synced bn | float16 | loss scale | D1(all) | time | BaiDuYun | GoogleDrive |
---|---|---|---|---|---|---|---|---|---|---|
adaptive | 0.001 | 4*3 | ✗ | ✓ | ✗ | ✗ | ||||
uniform | 0.001 | 4*3 | ✗ | ✓ | ✗ | ✗ |
Alternate the disparity predictor from FasterSoftArgmin
to LocalSoftArgmin
In config file, change
disp_predictor=dict(
# default FasterSoftArgmin
type="FASTER",
# the maximum disparity of disparity search range
max_disp=max_disp,
# the start disparity of disparity search range
start_disp=0,
# the step between near disparity sample
dilation=1,
# the temperature coefficient of soft argmin
alpha=1.0,
# whether normalize the estimated cost volume
normalize=True,
),
to
disp_predictor=dict(
# LocalSoftArgmin
type="LOCAL",
# the maximum disparity of disparity search range
max_disp=max_disp,
# the radius of window when local sampling
radius=3,
# the start disparity of disparity search range
start_disp=0,
# the step between near disparity sample
dilation=1,
# the step between near disparity index when local sampling
radius_dilation=1,
# the temperature coefficient of soft argmin
alpha=1.0,
# whether normalize the estimated cost volume
normalize=True,
),