본문 바로가기

deep learning

[tensorflow, cpu]Anaconda 가상환경에서 MaskRCNN코드 돌려보기

Anaconda는 python을 좀 더 수월하게 관리&사용하기 위한 환경이다.

 

여러번 시도해본 결과 여러 파이선버전으로 다른 프로그램을 구동하고 싶다면 Anaconda에서 가상환경을 구축하는 것이 가장 효율적이다.

여러 다른 버전의 python을 충돌없이 사용할 수 있다.

 

Anaconda설치&가상환경 만들기

먼저 Anaconda 홈페이지에 가서 Anaconda를 설치한다.

https://www.anaconda.com/distribution/

 

Anaconda Python/R Distribution - Free Download

Anaconda Distribution is the world's most popular Python data science platform. Download the free version to access over 1500 data science packages and manage libraries and dependencies with Conda.

www.anaconda.com

Anaconda페이지에서 download

 

다운로드 페이지에서 두 가지 버전의 python을 선택할 수 있는데 거의 대부분 3.7버전을 까는 것같다.

window 검색창에 Anaconda Prompt가 생긴다!

설치가 완료되면 Anaconda Prompt가 설치된 것을 확인할 수 있다.

prompt창은 cmd과 비슷하게 사용하면 된다.

 

먼저 anaconda는 base 즉, 기본 환경이 구축되어 있고 여기서 명령어를 통해 원하는 python버전을 사용한 가상환경을 만들 수 있다.

conda create -n "이름" python==파이선버전 pip

conda create -n MaskRCNN python==3.6.5 pip

코드를 실행시키면 base경로에서 /Anaconda3/envs/ 경로 내부에 MaskRCNN이름의 가상환경 폴더가 생겼을 것이다.

이 가상환경은 python3.6.5버전을 사용할 수 있는 환경이 될 것이다.

 

activate MaskRCNN

이다음 가상환경을 활성화시킨다!

(base)에서 (MaskRCNN)이 된 것을 확인할 수 있다.

 

MaskRCNN 

이 후 먼저 MaskRCNN 코드를 돌려보기 위한 여러 패키지들을 설치해야한다.

https://www.youtube.com/watch?v=2TikTv6PWDw

이 유투브링크에 가면 정말 설명히 자세하게 나와있다! 

(물론 이 순서를 따라해도 애를 많이 먹었지만,,)

해당 유투브 더보기란에 github링크도 나와있다!

 

<dependencies설치>

방법1. 한번에 설치

pip install -r requirements.txt

github사이트에 여러 dependencies가 담긴 requirements.txt파일이 있어 위처럼 한번에 설치가 가능하다.

 

방법2. 버전을 지정해 따로 설치(cpu를 사용한다면 이 방법이 더 수월하다)

requirements.txt에 보면 tensorflow-gpu가 있는데 gpu없이 cpu로만 실험해서 해당 dependency는 설치하지 않고 tensorflow만 설치해야했다.

내 경우에는 이 과정에서 맞는 버전의 tensorflow를 깔아야 했었는데 tensorflow==1.5.0, keras==2.1.6버전으로 specify해서 깔았다.

pip install tensorflow==1.5.0
pip install keras==2.1.6

버전문제로 고생을 많이 했는데 tensorflow의 경우에는 2.0버전은 python3.7을 지원하지 않는다.

그런데 Anaconda가 python3.7버전으로 깔려있기 때문에 가상환경을 만들때 위의 예시처럼 python==3.6.5으로 만들어야 tensorflow==1.5.0을 깔수있다.

keras버전의 경우에도 2.1.6이 돌아가는 것을 확인했다.

pip install numpy scipy cython h5py Pillow scikit-image jupyter

위처럼 나머지 dependencies들도 각각 install해주었다.

 

<git설치&git clone>

이제 github에 있는 코드를 그대로 복사해온다.

git clone https://github.com/matterport/Mask_RCNN.git

 git이 없다면 download해주어야 한다!, window git 다운로드 링크: https://git-scm.com/download/win

git clone https://github.com/philferriere/cocoapi.git
pip install git+https://github.com/philferriere/cocoapi.git#subdirectory=PythonAPI

git clone https://github.com/aleju/imgaug.git
pip install imgaug

mask rcnn을 위한 tool인 cocoapi, imgaug도 같이 clone해 온다.

이를 위해 먼저 visual studio build tools이 필요하다.

https://github.com/philferriere/cocoapi.git

이 링크에 들어가보면 visual studio build tool 2015를 설치하는 방법이 나와있다!

 

pre-trained모델 다운로드

**그리고 pre-trained 된 weight를 미리 다운받아야 한다. 

https://github.com/matterport/Mask_RCNN/releases 

mask_rcnn_coco.h5모델을 다운받아서 MaskRCNN가상환경이 있는 경로에 넣어준다.

ex) C://Users/사용자이름/Anaconda3/envs/MaskRCNN(가상환경이름)/Mask_RCNN

 

Jupyter notebook으로 코드 돌려보기

이제 jupyter notebook을 사용해서 코드를 돌려볼 수 있다.

jupyter notebook

jupyter notebook은 온라인상에서 python code를 돌려볼 수 있는 환경이다.

samples/에 demo.ipynb파일들어가서 실행시켜보면 된다!

코드블럭을 선택하고 ctrl + Enter를 누르면 해당 코드블럭이 실행된다.

 

전체 다 실행하고 마지막 코드블록을 돌려보면

위와 같이 bounding box와 segmentation등이 나온다!

 

 

 

 

마지막 코드블록을 위처럼 수정하면 원하는 사진에서의 bounding box, segmentation을 얻을 수 있다!

 

 

끝으로 위의 youtube링크말고도 아래의 링크에서 정말 도움을 많이 받았다!!!

https://reyrei.tistory.com/11

 

[Mask R-CNN] Python을 이용한 Mask RCNN (1)

Python, Keras, Tensorflow, jupyter notebook을 이용하여 유투브에 공개되어 있는 Mask R-CNN 샘플을 구동시켜보았다. 중간에 여러가지 오류가 나는 부분이 있었지만 아래와 같이 해결하였다. - Mask RCNN with K..

reyrei.tistory.com