Windows에서 mmdetection3d 사용하기

Windows에서 mmdetection3d 사용하기

운영체제 Windows 11이나 Windows 10에서도 다를 것 없을 것임.

cuda 11.3, vs2017 c++ build tools가 이미 설치되어 있음을 기준으로 설명

(1)

아래 스크립트 차례로 실행

왜 최신인 torch==1.10.1이 아니라 1.10.0을 설치하냐 하면... 이걸로 해서 문제 없었던 경험이 있기 때문. 근데 1.10.1도 왠만하면 문제 없을 듯함.

conda create -n open-mmlab python=3.7 -y
source activate open-mmlab

conda install pytorch==1.10.0 torchvision torchaudio cudatoolkit=11.3 -c pytorch
# cudatoolkit 11.3

pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu113/torch1.10.0/index.html
pip install git+https://github.com/open-mmlab/mmdetection.git
pip install git+https://github.com/open-mmlab/mmsegmentation.git

git clone https://github.com/open-mmlab/mmdetection3d.git
cd mmdetection3d
# 아래 명령어 실행 전에 (2) 참고할 것
pip install -v -e .

(2)

pip install -v -e . 실행 도중 -std=c++14 관련 문구가 나오며 오류가 나면

setup.py에서 extra_args=['-w', '-std=c++14'])

에서 -std=c++14를 빼주고 실행한다.

mmdetection3d repository에서 nccl을 검색해 전부 gloo로 교체해준다. 그래야 윈도우에서 실행이 된다. 링크 참고

(3)

numpy, pycocotools 관련 버전 이슈 해결

FAQ에서는 pycocotools의 버전을 바꾸라고 하나 그렇게 했을 때 오류가 나서 그냥 numpy를 업그레이드함

pip uninstall numpy
pip install numpy==1.20.2

(4)

이후 open3d, wandb 등을 필요에 따라 추가 설치하면 된다.

wandb logger 사용법: configs/_base_/default_runtime.py에서 log_config에 WandbLoggerHook 추가

log_config = dict(
    interval=50,
    hooks=[
        dict(type='TextLoggerHook'),
        dict(type='TensorboardLoggerHook'),
        dict(type='WandbLoggerHook')
    ])