컴퓨터공학/CNN & Mask RCNN

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

Upupa epops 2019. 1. 5. 20:46

Python, Keras, Tensorflow, jupyter notebook을 이용하여 유투브에 공개되어 있는 Mask R-CNN 샘플을 구동시켜보았다.

중간에 여러가지 오류가 나는 부분이 있었지만 아래와 같이 해결하였다.


 - Mask RCNN with Keras and Tensorflow 

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


■ Mask R-CNN

 - Fast R-CNN + mask 

 - Image Detection과 Labeling, masking을 통하여 각 객체를 구분할 수 있도록 해준다.




 구동 방법

 - 먼저 가상환경 Anaconda, 그래픽 라이브러리 툴킷 CUDA와 CUDNN 설치가 필요하다.


1-1. 아나콘다(Anaconda) 설치

 - Mask R-CNN을 설치하여 실행시킬 가상환경을 만들어줄 아나콘다를 설치(다운로드)한다.

 - Tensorflow를 사용하려면 파이썬(python) 3.6버전을 사용해야하며, 

   아나콘다도 파이썬 버전에 맞춰서 설치해야한다.

  - 파이썬 3.6 버전용이 없으므로 파이썬 3.7 용 아나콘다 설치파일을 다운받는다.

 





 - 아나콘다 설치 후 cmd에서 기능을 바로 사용할 수 있도록 환경변수를 설정한다.

   (내 PC 우클릭→속성→설정변경→고급탭→환경변수→user에 대한 사용자 변수→path 편집)


 · 설치경로₩Anaconda3

 · 설치경로₩Anaconda3₩Scripts

 · 설치경로₩Anaconda3₩Library₩bin 



1-2. CUDA & CUDNN 설치


 - Nvidia CUDA 9.0과 cuDNN 7.0을 설치한다.

   (cuDNN 7.0버전과 다르면 그래픽 출력 중에 오류가 날 수 있다.) 


 * CUDA(Computed Unified Device Architecture) : 

   · GPU 가속화 라이브러리, 디버깅 툴, 컴파일러, 애플리케이션 개발 언어

   · Download : https://developer.nvidia.com/cuda-toolkit


 * cuDNN(Deep Neural Network library) : 

   · 딥 뉴럴 네트워크를 위한 GPU 가속화 라이브러리

   · Download : https://developer.nvidia.com/cudnn


 - cuDNN변수를 시스템 환경변수에서 새로 생성한다.

· Variable name: cudnn

· Variable value: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0




2. Dependency file 확인

 - GitHub(클릭)에서 제공하고 있는 파일의 내용을 다 설치해야한다.


 · numpy  # 수치 계산을 위한 기본 패키지

 · scipy    # 신호처리, 최적화, 통계 기능 패키지 라이브러리

 · cython  # 파이썬 컴파일러

 · Matplotlib # 그리기 패키지

 · h5py    # 큰 수치형 데이터(모델) 로드용

 · Pillow   # 이미지처리에 이용

 · scikit-image # 이미지처리에 이용

 · opencv-python #이미지처리 오픈소스

 · imagug # 이미지처리에 이용

 · tensorflow-gpu==1.5 # GPU기반 머신러닝/딥러닝 오픈소스 라이브러리

 · keras # 머신러닝/딥러닝 오픈소스 라이브러리

 · jupyter # jupyter notebook, 파이썬 코드 실행 프로그램

 · ipython # 파이썬 코드 실행 프로그램

 · pandas



2-1. 아나콘다 가상환경 설치

 - 명령프롬프트 창에서 pip 명령어를 사용가능한 MaskRCNN라는 가상환경을 만든다.

 - 일반적으로는 C:\Users\user(사용자)\AppData\Local\conda\conda\envs에 생성 됨

 - 가상환경 생성 후, cd 명령어를 이용하여 생성된 MaskRCNN 폴더로 이동한다.


  · cmd(명령 프롬프트) 창 → conda create -n MaskRCNN python=3.6 pip

  · Proceed ([y]/n)? y 선택

  · activate MaskRCNN

  · cd C:\Users\user\AppData\Local\conda\conda\envs\MaskRCNN



2-2. Dependency file 설치

 - (MaskRCNN) 상태에서 pip를 이용하여 requirements.txt 내 라이브러리를 모두 설치한다.

 - 먼저 tensorflow와 keras 설치 후 나머지 파일을 설치한다.

 · pip install tensorflow-gpu==1.5

 · pip install keras

 · pip install numpy scipy cython Matplotlib h5py Pillow scikit-image jupyter pandas

 · pip install opencv-python ipython



2-3. Clone the Mask R-CNN

 - GitHub 내 파일을 로드하기 위하여 pip git의 설치가 필요하다. 설치 후, 

    git clone 명령어를 사용할 수 있다.

Conda install –c anaconda git


 - Mask_RCNN.git을 다운로드

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


 - Pycocotools 다운로드

 · Visual C++ 2017 Build Tools 없으면 설치 필요 (클릭)

 · CoCoTools 설치가 완료되면 “Successfully installed pycocotools-2.0”을 출력한다.

 * CoCoTools : CoCoMac 데이터 수집 및 분석을 위한 툴박스

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

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


 - imgaug 다운로드

  * imgaug : 이미지처리를 위한 라이브러리 ·

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

pip install imgaug


2-4. 모델 가중치 파일 다운로드

 - Download mask_rcnn_coco.h5 file를 다운로드하여 MaskRCNN 메인폴더에 넣어준다.

  (자동으로 다운로드 된다.)

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




2-5. Demo Test 1

 - Jupyter notebook 실행

  · (maskRCNN) cmd 프롬프트에서 jupyter notebook 입력

  · jupyter notebook 내 maskRCNN폴더에서 demo.ipynb 파일 찾아 열기


  jupyter notebook





2-6. Demo Test 2

 - 아래와 같이 소스를 수정하면 이미지를 정하여 masking이 가능하다.


# Load a random image from the images folder 

 file_names = next(os.walk(IMAGE_DIR))[2]

 image = skimage.io.imread(os.path.join(IMAGE_DIR, random.choice(file_names)))

# Load a random image from the images folder

 filename = os.path.join(IMAGE_DIR, 'doge.jpg')

 image= skimage.io.imread(filename)





■ 출처

 - Mask RCNN with Keras and Tensorflow 

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

 - CUDA&cuDNN : https://blogs.nvidia.co.kr/2018/01/16/cuda-toolkit/

 - Visual C++ 2017 Build Tools (클릭)





아 근데 파이참 깔아서 유투브 2번째꺼 하다가 설정 다 꼬여버렸다ㅜㅜ

SMALL