본문 바로가기
Machine learning

Ubuntu(우분투) Facebook detectron2 설치 및 cpu모드 실행

by ahsung 2020. 1. 5.

Facebook에서 개발한 detectron2는 뛰어난 이미지 인식 머신러닝 모델입니다.

 

지금부터 빠르게 설치법을 알아가도록 하겠습니다.

 

 

detectron2를 설치하기 위한 조건입니다.

1,2 조건은 쉽게 충족하셔다고 생각하고.

 

https://pytorch.org/get-started/locally/

 

PyTorch

An open source deep learning platform that provides a seamless path from research prototyping to production deployment.

pytorch.org

 

자신에게 알맞는 버전을 선택하면, 어떤 패키지 설치할지 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

 

facebookresearch/detectron2

Detectron2 is FAIR's next-generation research platform for object detection and segmentation. - facebookresearch/detectron2

github.com

 

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 Colaboratory

 

colab.research.google.com

 

간단한 코드 예제는 위 링크 사이트에서 확인 가능하며

 

google패키지에 종속된 패키지를 빼고 그 부분만 opencv-python 코드로 바꾸신다면 

local 환경에서도 쉽게 구동가능합니다.

 

cfg = get_cfg()  #의 이후 밑줄에 

cfg.merge_from_list(['MODEL.DEVICE','cpu'])    #이 코드를 추가하시면 cpu모드로 구동하게 됩니다.

 

만약 이 코드를 안쓰시면 pytorch가 cuda로 컴파일 되지 않았다는 오류가 발생합니다.

댓글