GPU メモリ >= 16G (単一 GPU でのトレーニング、バッチ サイズ 4)
GPU メモリ >= 7G (テスト、バッチ サイズ 1、単一 GPU 上のフル解像度画像)
CUDA >= 10.0
Python >= 3.6
pytorch >= 1.0
opencv-python
https://lmb.informatik.uni-freiburg.de/resources/datasets/SceneFlowDatasets.en.html から Sceneflow データセットをダウンロードします。 RGB 画像(クリーンパス)と 3 つのサブセットの視差をダウンロードしてください。次に、ファイルを対応するサブフォルダーに抽出します。たとえば、flyingthings3d の場合、RGB 画像と視差を抽出すると、disparity と Frames_cleanpass という名前の 2 つのフォルダーが得られます。これらを<data_root>/flyingthings3d/
に置きます。
KITTI 2012 は http://www.cvlibs.net/datasets/kitti/eval_stereo_flow.php?benchmark=stereo からダウンロードし、KITTI 2015 は http://www.cvlibs.net/datasets/kitti/eval_scene_flow.php?benchmark=stereo からダウンロードします。 。各データセットを抽出すると、training と testing という名前の 2 つのフォルダーが得られます。これらを<data_root>/kitti/201x/unzip/
に置きます。
まず、Sceneflow でモデルを事前トレーニングします。
$ python train.py --data_root <data_root> --dataset d,m,f --base unet --lr 1e-3,.5e-3,.25e-3,.125e-3 --boundaries .625,.75,.875 --epoch 16 --batch_size 16 --job_name <sceneflow_job_name> --save_dir <save_dir>
モデルは<save_dir>/<sceneflow_job_name>/
に保存されます。
次に、KITTI でモデルを微調整します。
$ python train.py --data_root <data_root> --dataset k15 --base unet --lr 1e-3,1e-4,1e-5 --boundaries .33,.67 --epoch 600 --batch_size 16 --load_path <save_dir>/<sceneflow_job_name> --reset_step --job_name <kitti_job_name> --save_dir <save_dir>
モデルは<save_dir>/<kitti_job_name>/
に保存されます。
flythings3d でモデルを評価するには:
$ python val.py --data_root <data_root> --dataset f --base unet --load_path <save_dir>/<sceneflow_job_name>
そして、KITTI テスト セットの不一致を生成するには、次のようにします。
$ python val.py --data_root <data_root> --dataset k15 --base unet --load_path <save_dir>/<kitti_job_name> --write_result --result_dir <result_dir>
出力は <result_dir> に保存されます。グランドトゥルースがないため、プログラムはダミーの EPE と精度を報告することに注意してください。
UNet ベース モデルを使用して、アーキテクチャの事前トレーニング済みモデルを提供します。モデルを抽出し、ロード パスとしてmodel/unet_sceneflow
を使用します。