인프런 커뮤니티 질문&답변

아쿠아라이드님의 프로필 이미지
아쿠아라이드

작성한 질문수

[개정판] 딥러닝 컴퓨터 비전 완벽 가이드

MMDetection에서 Faster-RCNN Pretrained 모델을 활용하여 Infererence 수행하기 - 셋업 및 Pretrained 모델 다운로드

mmdet 설치가 안되네요 ㅠㅠ

작성

·

3.4K

0

먼저 좋은 강의 감사드립니다. 열심히 따라가면서 배우고 있습니다 ^^

다만 mmdet 설치가 계속 안되어서.. 질문 드립니다.

Colab 이 아닌, 개인 pc 서버로 실습을 해 오고 있었습니다. GPU 는 RTX3090 이구요~

Torch1.9.0 를 Cuda 111 로 설치해서 torch 에서 GPU 인식 되는 것은 확인했고, cu111/torch1.9.0 에 상응하는 mmcv-full 도 제대로 설치했습니다만..

문제는 mmdet 가 무엇을 해도 설치가 안되네요ㅠ 몇 시간 동안 해결해 보려고 가상환경 다시잡아보고 재설치해보고는 있는데 아직 해결 못하고 있습니다.

문제는 pycocotools 쪽인듯한데.. 혹시 도움을 주실 수 있으신지요..?

 
Collecting mmdet
  Using cached mmdet-2.25.1-py3-none-any.whl (1.4 MB)
Collecting terminaltables
  Using cached terminaltables-3.1.10-py2.py3-none-any.whl (15 kB)
Requirement already satisfied: six in c:\users\user\anaconda3\envs\yp3\lib\site-packages (from mmdet) (1.16.0)
Collecting matplotlib
  Using cached matplotlib-3.5.2-cp38-cp38-win_amd64.whl (7.2 MB)
Requirement already satisfied: numpy in c:\users\user\anaconda3\envs\yp3\lib\site-packages (from mmdet) (1.23.1)
Collecting pycocotools
  Using cached pycocotools-2.0.4.tar.gz (106 kB)
  Installing build dependencies: started
  Installing build dependencies: finished with status 'done'
  Getting requirements to build wheel: started
  Getting requirements to build wheel: finished with status 'done'
  Preparing metadata (pyproject.toml): started
  Preparing metadata (pyproject.toml): finished with status 'done'
Requirement already satisfied: pyparsing>=2.2.1 in c:\users\user\anaconda3\envs\yp3\lib\site-packages (from matplotlib->mmdet) (3.0.9)
Collecting kiwisolver>=1.0.1
  Using cached kiwisolver-1.4.4-cp38-cp38-win_amd64.whl (55 kB)
Collecting fonttools>=4.22.0
  Using cached fonttools-4.34.4-py3-none-any.whl (944 kB)
Requirement already satisfied: pillow>=6.2.0 in c:\users\user\anaconda3\envs\yp3\lib\site-packages (from matplotlib->mmdet) (9.2.0)
Requirement already satisfied: python-dateutil>=2.7 in c:\users\user\anaconda3\envs\yp3\lib\site-packages (from matplotlib->mmdet) (2.8.2)
Requirement already satisfied: packaging>=20.0 in c:\users\user\anaconda3\envs\yp3\lib\site-packages (from matplotlib->mmdet) (21.3)
Collecting cycler>=0.10
  Using cached cycler-0.11.0-py3-none-any.whl (6.4 kB)
Building wheels for collected packages: pycocotools
  Building wheel for pycocotools (pyproject.toml): started
  Building wheel for pycocotools (pyproject.toml): finished with status 'error'
Failed to build pycocotools
Note: you may need to restart the kernel to use updated packages.
 
  error: subprocess-exited-with-error
  
  Building wheel for pycocotools (pyproject.toml) did not run successfully.
  exit code: 1
  
  [14 lines of output]
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build\lib.win-amd64-cpython-38
  creating build\lib.win-amd64-cpython-38\pycocotools
  copying pycocotools\coco.py -> build\lib.win-amd64-cpython-38\pycocotools
  copying pycocotools\cocoeval.py -> build\lib.win-amd64-cpython-38\pycocotools
  copying pycocotools\mask.py -> build\lib.win-amd64-cpython-38\pycocotools
  copying pycocotools\__init__.py -> build\lib.win-amd64-cpython-38\pycocotools
  running build_ext
  skipping 'pycocotools\_mask.c' Cython extension (up-to-date)
  building 'pycocotools._mask' extension
  error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/
  [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for pycocotools
ERROR: Could not build wheels for pycocotools, which is required to install pyproject.toml-based projects


답변 3

1

권 철민님의 프로필 이미지
권 철민
지식공유자

안녕하십니까, 

Windows에 설치하시나 보군요. 

에러 메시지 마지막에 보면 Microsoft Visual C++ 이 버전 14 이상이 있어야 한다고 되어있습니다. 

설치 방법은 인터넷을 찾아보셔도 되고, 제 다른 강의인 파이썬 머신러닝 완벽 가이드의 섹션 1의 사이킷런 업그레이드 수행 및 XGBoost와 LightGBM 설치 영상의 7분 30초 부터 참조하시면 됩니다.  미리 보기로 오픈 되어 있으니, 인프런에서 파이썬 머신러닝 완벽 가이드를 검색하셔서 해당 영상을 보시면 됩니다. 

그리고 mmdetection은  windows 시스템을기본적으로 지원하지 않습니다. 하지만 본 강의의 수강생 분들께서 windows에 mmdetection을 적용하는 방법을 Q&A등에 올려 놓았으니 참고하시면 좋을 것 같습니다. 

감사합니다. 

0

바로 위에 제가 언급드린  방법으로 라이브러리들을 설치하고  jupyter notebook 환경에서 실습해 보니 .. 막상 실행 안되어서 (pytorch GPU 인식안됨) 결국은 개인 컴퓨터 window 에 설치된 아나콘다의 단일 가상 환경에 tensorflow-gpu 버전 사용이 가능하면서도 동시에 강의 실습과 동일한 pytorch 및 mmdetection 에서도 gpu 활용이 가능하도록 만드는 것은 현 시점 에서는 불가능하다는 것이 증명 되었습니다.ㅎㅎ  

다만 대안으로  window10 의 wsl2 에 우분투를 설치한 후, 결국 리눅스 환경에서 mmdetection 동작 되도록 만드는데 성공하였습니다. 시행착오로 문제 하나하나 구글링으로 맨땅 해결하다보니 설치 성공하는데 꼬박 일주일 더 걸렸네요ㅋㅋㅋ 혹시 개인 컴퓨터에 tensorflow GPU, pytorch GPU, mmdetection GPU 세 가지 모두 동작하도록 개발환경 구축하고 싶으신 분들이 있다면 아래 정보 참고해 주시기 바랍니다. ㅎㅎ 

1) Window10 에서 wsl2 설치 및 wsl2 환경에서 우분투 20.04 버전 설치 (구글에서 wsl2 ubuntu 검색하면 많이 나옴)

2) wsl2 의 우분투 20.04  환경에서 cuda11.0.x, cuDNN8.0.x 설치 해야 함. cuda 설치 후 환경변수 잡아 주어야 한다는점도 remark 할 것 -_- (김길로새님 블로그 5번  참고)

  •  NVIDA 홈피의 wls2 문서를 보면 그래픽 드라이버 (451.82 이상)는 윈도우 환경에서 설치하되, cuda 와 cuDNN 은 우분투 환경에 설치할 것으로 안내 되어 있음. (NVDIA wsl2 관련 가이드라인)
  • tensorflow gpu 버전과 pytorch gpu, 그리고 mmdetection gpu 버전 세 가지가 동시에 만족되는 교집합이 cuda 11.0, cuDNN8.0 뿐임 ㅋ. 이 때 tensorflow 는 tensorflow-gpu-2.4.0, pytorch 는 1.7.0, mmcv 는 1.3.17 ~ 1.7 사이를 깔아 주어야 함.. 저는 mmcv-full 1.6.1 설치하였습니다.  Microsoft C++ Build tools 설치도 해야 mmcv 정상적으로 작동한다는 점도 중요합니다.  https://www.tensorflow.org

    Installation — mmcv 1.6.1 documentation

    https://visualstudio.microsoft.com/visual-cpp-build-tools/

     

3) 이후에 wsl2 에 가상환경 잡고, 주피터 노트북 설치하고.. 하는 것은 윈도우 아나콘다에서 하는 것과 거의 유사했지만... wsl2 에서 구동되는 리눅스 환경이다보니 완벽하지 않은 점이 있어.. 잡다한 설정이 필요한 부분이 생기네요ㅋ 문제 생길 때마다 wsl2 jupyter 구글링으로 해결하니 결국은 설치가 되네요... 고생은 많이했지만 리눅스에 대한 이해도 조금 더 생겼고... window 환경에서도 wsl2 를 통해 mmdetection 설치가 된다는 걸 확인한 것이 일단 중요한 것 같습니다. ㅋㅋ 

 

본인의 컴퓨터 OS 가 리눅스가 아닌 윈도우라면 강사님 가이드에 따라 colab 이나 kaggle 서버에서 실습하시는 것이 정신건강에 이롭습니다.

다만 어떤 필요에 의해 굳이(?) OS 를 window 로 유지하면서도 gpu 를 사용한 mmdetection 설치하고 싶은 분들만 참고해 주시면 될 것 같습니다.ㅎㅎㅎ

권 철민님의 프로필 이미지
권 철민
지식공유자

오, 이런 고급진 정보를 공유해 주시다니, 감사합니다.  

글만 읽어도 얼마나 수고하셨는지 알것 같습니다. 

감사합니다! 그리고 좋은 강의로 많은 도움을 받고 있어서.. 저야 말로 감사드립니다. 작은 정보라도 도움이 될 수있다면 좋겠습니다^^

0

강사님, 빠른 회신 감사드립니다.

말씀주신 것 처럼 Q&A 조회해 보니 유사한 질문에 대한 답변으로 주셨던 아래 홈페이지의 가이드대로 차근차근 설치해 보니 window 에서도 잘 깔리네요!

https://mmcv.readthedocs.io/en/latest/get_started/build.html

다만 아직 cuda 10.2 에서만 mmdetection 을 window 에 설치가능한 것으로 되어 있어서... RTX3090 그래픽카드의 경우에는 torch 로는 GPU 가 잡히는데, Tensorflow 에서는 안잡히네요. Tensorflow-gpu 설치의 경우에는 RTX3090 에서는 최소 cuda 11.0 이상 버전을 설치해야 한다고 합니다.

https://medium.com/@dun.chwong/the-simple-guide-deep-learning-with-rtx-3090-cuda-cudnn-tensorflow-keras-pytorch-e88a2a8249bc

 

3일간의 사투(?) 끝에 아래와 같은 결론을 얻게 되었습니다. 윈도우에 MMdetection 을 설치하고자 한다면 :

1) cuda 10.2 (cuDNN 7.6)기준으로 mmdetection 을 window 에 설치하는 것이 가능함. (사전 설치 프로그램이 4개 있고, 환경변수 잡아주는 고통이 좀 있지만..) torch 1.9.0+cu102 로 파이토치 설치하면 GPU 도 잘 인식됨.

2) cuda 10.2 기준으로 tensorflow-gpu 는 ver 2.0~2.3 정도로 깔아 주어야 하는 듯 하지만..

https://www.tensorflow.org/install/source_windows#tested_build_configurations

tensorflow-gpu 환경에서 RTX3090는 근본적으로 cuda 10.2 와 호환이 안되며, 최소 cuda 11.0 이상이 필요함.

그러다보니 현재까지는(2022 8월 기준) RTX3090의 경우에는 window 환경에서 mmdetection 을 사용하고자 한다면, tensorflow 에서 GPU 사용이 불가능한 상황임 - MMdetection 에서 cuda 10.2 밖에 지원 안되지만 cuda 10.2 로는 tensorflow 에서 RTX3090을 인식못함. 물론 cuda 10.2 를 지원하는 다른 GPU라면 사용 가능할 것 같습니다. 아니면 tensorflow 대신 pytorch 를 사용하는 것도 방법일 듯 합니다.

리눅스를 처음부터 배우자니 앞이 깜깜해서... 향후에 MMdetection 에서도 cuda 11.0 이상에서도 window 설치가 가능하도록 빨리 업데이트 되면 좋겠네요~ ㅎㅎ 

 

정말 큰 도움 되었습니다. 감사드립니다! ^^

권 철민님의 프로필 이미지
권 철민
지식공유자

오, 좋은 정보 감사합니다. 

아쿠아라이드님의 프로필 이미지
아쿠아라이드

작성한 질문수

질문하기