Result of AcfNet

November 10, 2020 · View on GitHub

Model Info

  • Note: Test on GTX1080Ti, with resolution 384x1248.
Model NameFLOPSParametersFPSTime(ms)
AcfNet(uniform)1080.0G5.227M1.66600.8
AcfNet(adaptive)1239.0G5.559M1.38723.1

Experiment

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

SceneFlow

10 epoch

RMSProp, lr(10 epochs) schedule: 1-10 with lr*1

model namelrbatch sizeweight initsynced bnfloat16loss scaleEPE(px)timeBaiDuYunGoogleDrive
adaptive0.0014*30.830868h18mlink, pw: qxxrlink
uniform0.0014*30.851126h50mlink, pw: 9s4elink
Disparity Predictor Ablation

If we alternate the disparity predictor from FasterSoftArgmin to LocalSoftArgmin only for reference

model namepredictor1PE2PE3PE5PEEPE(px)
adaptiveFaster7.9055.1253.9912.8730.8308
adaptiveLocal
uniformFaster8.6265.5444.2913.0610.8511
uniformLocal5.9833.6202.8382.1640.8216

Analysis

  1. Little difference for EPE, but make significant effect on xPE.

  2. Therefore, to get better result on KITTI, alternate the disparity predictor from FasterSoftArgmin to LocalSoftArgmin

  3. LocalSoftArgmin only works when cost volume supervised with uni-modal distribution, worse result for PSMNet

20 epoch

RMSProp, lr(20 epochs) schedule: 1-20 with lr*1

model namelrbatch sizeweight initsynced bnfloat16loss scaleEPE(px)timeBaiDuYunGoogleDrive
adaptive0.0014*30.7172134h31mlink, pw: qxxrlink
uniform0.0014*30.744056h53mlink, pw: 9s4elink
Disparity Predictor Ablation

If we alternate the disparity predictor from FasterSoftArgmin to LocalSoftArgmin only for reference

model namepredictor1PE2PE3PE5PEEPE(px)
adaptiveFaster6.9184.4803.4852.4980.7172
adaptiveLocal
uniformFaster7.6474.9174.3812.6930.7440
uniformLocal5.3383.2322.5361.9270.7161

KITTI-2015

model namelrbatch sizeweight initsynced bnfloat16loss scaleD1(all)timeBaiDuYunGoogleDrive
adaptive0.0014*3
uniform0.0014*3

How TO

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,
    ),