Facebook에서 개발한 detectron2는 뛰어난 이미지 인식 머신러닝 모델입니다.
지금부터 빠르게 설치법을 알아가도록 하겠습니다.
detectron2를 설치하기 위한 조건입니다.
1,2 조건은 쉽게 충족하셔다고 생각하고.
https://pytorch.org/get-started/locally/
자신에게 알맞는 버전을 선택하면, 어떤 패키지 설치할지 Run this Command 창에 나옵니다.
복사고 그대로 원하는 pytorch설치를 원하는 환경에서 pip을 사용하여 설치하면 끝입니다.!
저는 설치할 수 있는 cuda버전이..9.1이 한계라 cpu버전을 설치하였습니다.
이렇게 하면 사이트에서 요구하는 3번째 사항까지는 설치가 완료됩니다.
OpenCV (cv2 모듈)를 사용하려면
pip install opencv-python
그외 마지막 줄의 모듈까지 설치하면 필요한 것은 모두 설치 완료됩니다.
pip install cython; pip install 'git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI'
그대로 복사하셔서 붙여넣기 하시면 됩니다.
** git의 detectron2가 업데이트 하면서 원하는 pytorch 버전이 보통 최신으로 바뀌는 경향이 있습니다.
** 뭔가 실행이 되지 않는다면 정식 사이트의 install.md를 참고해주시길 바랍니다.
facebook 공식 github 사이트의 안내에 따라 설치하겠습니다.
궁금하신게 있는 분들은 아래 링크에서 더 확이하실 수 있습니다.
https://github.com/facebookresearch/detectron2/blob/master/INSTALL.md
git clone https://github.com/facebookresearch/detectron2.git
cd detectron2
pip install -e .
패키지를 참 잘 만들어주셔서, 위 명령어를 순서대로 치시면 설치가 금방 끝납니다.
위의 pytorch를 설치한 같은 환경에서 진행해주세요. pytorch를 설치하지 않으면 pip install -e .이 실행되지 않습니다.
git clone을 어디에서 하던 크게 문제는 없지만,
detectron2 안에는 이미 학습된 매개변수들 정보가 있는 파일들이 있기에
코드상에서 open하기 쉽게하기 위해 웬만하면 project파일들과 최대한 가까운 디렉토리에 위치시켜주세요.
pip install -e .에서 마지막에 조금 시간이 걸리거나 렉이 심하게 걸리 실 수 있습니다.
이렇게 하면 설치는 끝입니다.
pip install -e . 에 대해서 간단하게 설명하자면,
pip install -e <경로> 는 경로에 있는 패키지를 패키지 내부의 setup.py등을 통해 pip으로 설치하는 방식입니다.
반드시 git으로 설치한 detectron2의 디렉토리를 지정해야합니다. 위에서는 직접 detectron2로 들어간후
. (자신)으로 지정하였습니다.
pip으로 설치하게 되면 현재 환경에 pip 패키지로서 설치하는 것이기 때문에 오픈소스로 받은 패키지이지만,
꼭 같은 디렉토리에 프로젝트가 같이 있지 않더라도 import 가능합니다.
-e 옵션은 editable 옵션으로 간단하게 설명하자면,
원래 pip 으로 패키지를 설치하게 되면
lib/python3.x/site-packages에 추가하게 되지만
-e 옵션은 지정한 경로의 패키지를 설치후 디렉토리의 위치를 가르킵니다.
그 뜻은 패키지 내부를 수정하더라도 import하는 다른 곳에서 바로 적용된다는 점입니다.
수정이 즉시 바로 되는 부분은 확인했고
시도해 보지는 않았지만 -e옵션을 걸지않게 되면
git으로 내려받은 detectron2의 라이브러리를 수정하더라도
다른 프로젝트에는 반영되지 않을 것입니다.
보통 오픈소스를 다운받게 되면 -e옵션을 사용한다고 합니다.
CPU mode로 실행하는 법
https://colab.research.google.com/drive/16jcaJoc6bCFAQ96jDe2HwtXj7BMD_-m5
간단한 코드 예제는 위 링크 사이트에서 확인 가능하며
google패키지에 종속된 패키지를 빼고 그 부분만 opencv-python 코드로 바꾸신다면
local 환경에서도 쉽게 구동가능합니다.
cfg = get_cfg() #의 이후 밑줄에
cfg.merge_from_list(['MODEL.DEVICE','cpu']) #이 코드를 추가하시면 cpu모드로 구동하게 됩니다.
만약 이 코드를 안쓰시면 pytorch가 cuda로 컴파일 되지 않았다는 오류가 발생합니다.
'Machine learning' 카테고리의 다른 글
Deep Learning numpy를 통한 기초이론_3. backpropagation 오차역전파법 (0) | 2020.01.05 |
---|---|
Deep Learning numpy를 통한 기초이론_2. 학습과정 (0) | 2020.01.05 |
Deep Learning numpy를 통한 기초이론_1. 신경망의 작동. (0) | 2020.01.05 |
댓글