- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
안녕하세요 권철민 선생님 교육을 너무 잘 듣고 많이 배웠습니다
제가 이번에 mmdetection이 윈도우에서 사용하는 편법(?)을 찾아 공유드립니다. 필요하신 분들께 도움이 되기를 바랍니다
mmdetection은 기본적으로 리눅스에서만 적용되고 윈도우에서 사용하려면 상당히 어렵다고 알고 있습니다
다만 회사보안이라든지 리눅스 환경이 어렵다든지 여러가지 원인으로 윈도우에서 활용하고 싶은 경우가 있는데요
그래서 이거저거 시도해본 결과 윈도우에서도 실행되게끔하는 방법을 정리해보았습니다
제 컴퓨터 환경 기준으로 작성되었기 때문에 사용자마자 적용법이 좀 다를 수 있을 것 같습니다
1. 윈도우용 mmcv 설치
본인의 cuda 환경 및 pytorch 버전에 맞는 mmcv를 먼저 설치하여야 합니다. 이를테면 다음 url에 접속하면 각 환경에 맞는 whl을 제공합니다
Cuda 10.1 pytorch 1.8 : https://download.openmmlab.com/mmcv/dist/cu101/torch1.8.0/index.html
Cuda 11.1 pytorch 1.8 : https://download.openmmlab.com/mmcv/dist/cu111/torch1.8.0/index.html
Cuda 11.3 pytorch 1.10 : https://download.openmmlab.com/mmcv/dist/cu113/torch1.10.0/index.html
conda prompt에서 python --version을 통해 버전을 확인하고 파이썬 버전에 맞는 mmcv를 다운 받습니다
conda prmpt에서 whl 다운받은 경로로 이동하여 whl 설치해줍니다 (제 경우는 pip install mmcv_full-1.4.6-cp37-cp37m-win_amd64.whl)
mmcv에서 제공하는 환경에서는 다 접속이 되는것 같습니다 (https://github.com/open-mmlab/mmcv)
2. MMdet 설치
정확히는 리눅스 환경에서 MMdet를 설치하고 설치디렉토리를 다운받습니다
리눅스 환경이 없으시다면 Colab에서 가능합니다
---------------------------------------------------------------------------
!git clone https://github.com/open-mmlab/mmdetection.git
!cd mmdetection; python setup.py install
import inspect
print(inspect.getfile(mmdet)) #위치 확인
# 저 같은 경우 '/usr/local/lib/python3.7/dist-packages/mmdet-2.22.0-py3.7.egg/mmdet/__init__.py' 가 뜨네요
#구글드라이브를 마운트하여 위의 출력에서 mmdet 까지 내 드라이브로 복사하고 이것을 다운 받습니다
from distutils.dir_util import copy_tree
copy_tree('/usr/local/lib/python3.7/dist-packages/mmdet-2.22.0-py3.7.egg/mmdet', '/content/drive/MyDrive/mmdet')
# 지금의 경우에는 colab도 파이썬 3.7이고 제 환경도 3.7이어서 잘되는 경우인데 이외의 경우에는 안될수도 있을 것 같습니다
# 해보진 않았습니다만 환경과 동일한 파이썬 버전을 맞추고 설치하면 좋을 것 같습니다
---------------------------------------------------------------------------
3. mmdet에 필요항 패키지 설치 (pycocotools는 pycocotools_windows로 설치하여야 합니다)
pip install terminaltables pycocotools_windows pyyaml
4. 이제 mmdet 를 옮겨온 경로의 상위 디렉토리를 sys.path.append로 추가하면 mmdet를 import할 수 있습니다 (아마도...)
(제 경우는
import sys
sys.path.append('D:\YSKim\#Deep-Learning\#Tutoring\Inflearn\딥러닝컴픁피전완벽가이드\DLCV_New-main') )
* cpu core가 충분하지 않을 경우 cfg.data.workers_per_gpu = 0 로 설정하였습니다
일단 제 컴퓨터 기준으로 하였기 때문에 따라 하셔도 여러 시행착오가 있을수는 있을 것 같습니다만
그래도 저와 같은 고민이 있으신 분들께 조금이나마 도움이 되기를 바라며 글을 작성하였습니다
오, 이런 좋은 자료를,, 전체 공유 하겠습니다.
감사합니다.
답글
감사합니다.
저 같은 경우 MMdetection에서 제공하는 문서 따라 내려가다보니 윈도우에서는 시범적으로만 지원하고 있으며 현재 mmdetection 2.7까지만 된다는 말을 보아...
Anaconda 환경에서 Anaconda prompt를 통해
#CUDA 사용시
conda install pytorch==1.6.0 torchvision==0.7.0 cudatoolkit=10.2 -c pytorch
pip install mmcv-full==1.1.5 -f https://download.openmmlab.com/mmcv/dist/cu102/torch1.6.0/index.html
#CPU only
conda install pytorch==1.6.0 torchvision==0.7.0 cpuonly -c pytorch -y
pip install mmcv-full==1.1.5 -f https://download.openmmlab.com/mmcv/dist/cpu/torch1.6.0/index.html
위처럼 Mmdetection 2.7에 호환되는 mmcv 설치 후 (CUDA version 확인)
https://github.com/open-mmlab/mmdetection/archive/refs/tags/v2.7.0.zip
에서 다운로드받아 알집 풀고 해당경로로 cd 커맨드 통해서 들어간 후(cd ~/mmdetection-2.7.0)
python setup.py install 통해서 Mmdetection 2.7설치
https://visualstudio.microsoft.com/ko/vs/older-downloads/
위 링크에서 C++ 설치 후
pip install mmpycocotools
이런식으로 갔는데 최신 버전을 이용하지 못해 어려움이 있었습니다 ㅠ
좋은정보 감사합니다.
혹여나 이것도 대안이 될까 남겨봅니다.
답글
김연승
2022.03.23감사합니다
혹시 제 방법도 되면 말씀해주세요!!
안녕하세요, 김연승님
우선 좋은 정보 공유해주셔서 감사합니다.
따라서 그대로 하니 window에서 mmdet.apis 를 import 하는데 성공하였습니다.
코랩을 이용하여서 리눅스 에서 컴파일된 mmdet 가져올떄 빠진 부분이 있는것같아 글씁니다~
저는 구글 코랩의 런타임을 수업과 같이 다시시작 한다음 mmdet 을 import 해야 위치가 확인되었습니다.
참고하시면 좋겠습니다~
답글
김연승
2022.04.15감사합니다!! 전 런타임 다시 시작안했었는데 사용자마다 다른가봐요!!
도움이되셨다니 다행입니다 ^^