GPU 메모리 >= 16G(학습, 단일 GPU의 배치 크기 4)
GPU 메모리 >= 7G(테스트, 배치 크기 1, 단일 GPU의 전체 해상도 이미지)
쿠다 >= 10.0
파이썬 >= 3.6
파이토치 >= 1.0
opencv-python
https://lmb.informatik.uni-freiburg.de/resources/datasets/SceneFlowDatasets.en.html에서 Sceneflow 데이터세트를 다운로드합니다. 세 가지 하위 집합의 RGB 이미지(cleanpass) 및 Disparity를 다운로드하세요. 그런 다음 해당 하위 폴더에 파일을 추출합니다. 예를 들어 Flyingthings3d의 경우 RGB 이미지와 불일치를 추출하면 disparity와frames_cleanpass라는 두 개의 폴더가 생성됩니다. <data_root>/flyingthings3d/
에 넣으세요.
http://www.cvlibs.net/datasets/kitti/eval_stereo_flow.php?benchmark=stereo에서 KITTI 2012를 다운로드하고, http://www.cvlibs.net/datasets/kitti/eval_scene_flow.php?benchmark=stereo에서 KITTI 2015를 다운로드하세요. . 각 데이터 세트에 대해 추출하면 training 및 test라는 두 개의 폴더가 생성됩니다. <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>/
에 저장됩니다.
Flyingthings3d에서 모델을 평가하려면:
$ 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
로드 경로로 사용합니다.