블로그 이미지
devtang
Instagram : @taebr0 devtaehyeong@gmail.com

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

Notice

2020. 4. 1. 18:17 AI/Keras

이번 게시물은 Windows10 에서 Anaconda 가상환경에 Mask R-CNN 을 세팅하여 간단한 사진 예제를 돌려보겠습니다.

 

우선 Mask R-CNN이란 무엇인가?

 

Mask R-CNN : Mask Region-based Convolutional Network

 

COCO dataset 이미지 검출 예제 사진

 Mask R-CNN은 원래 있던 Faster-RCNN에 기반한 모델입니다. 간단하게 말하면 Faster R-CNN으로 Object를 검출한 box 안에 Object에 예측된 부분을 mask 씌워준 것입니다. 기존의 Faster R-CNN을 Object Detection 역할로 하고 각각의 RoI(Region of Interest)에 mask를 입혀주는 작은 FCN(Fully Covolutional Network)를 추가해준 것입니다. 또한 RoI Pooling이아닌 RoIAlign를 사용했다는데 , mask accuracy가 증가하였다고 합니다. 자세한 내용은 추후에 포스팅 할 예정입니다. 

Mask R-CNN framework

 

Mask R-CNN 세팅하기

기본적으로 Anaconda가 세팅이 되어있어야합니다. 이글은 Windows10을 기준으로 작성합니다.

 

GPU를 사용하기 위해 CUDA 와 CUDNN을 설치해야하는데 버전이 맞지 않으면 호환이 되지 않아 오류가 날 가능성이 큽니다. 제가 구동한 버전은 아래와 같습니다.

cuda v9.0

cudnn v7.0.x (저는 7.0.2로 가장 구버전을 선택해서 사용했습니다.)

 

cuda 설치

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

 

cudnn 설치

https://developer.nvidia.com/cudnn

(NVIDIA 로그인 후 다운로드가 가능합니다.)

 

cudnn을 깔면 이파일들이 나오는데 bin, include, lib폴더안에 내용물을 

자기가 깔아준 CUDA 폴더 경로에 붙여넣기 해줍니다.

제기준으로 경로입니다. C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0

특별한 설정없으면 위의 경로가 맞으실 거에요.

 

이제 윈도우 키 + 시스템 환경 변수 편집 입력 하시면 시스템 속성이 나옵니다.

환경 변수 클릭후 시스템 변수 편집에 cudnn 이라고 새로 만들주고 경로를 붙혀넣어 줍니다.

 

 

 

설정이 완료되었으면 아나콘다 프롬프트를 실행시킵니다.

본격적으로 Mask R-CNN 환경 세팅을 위한 가상환경을 만들어 줍니다. python3.6 과 pip을 추가 설치해주는 명령어에요

(base) C:\Users\@USERNAME@>conda create -n MaskRCNN python=3.6 pip

세팅이 끝난후에 activate MaskRCNN 을 입력하면 아래 사진과 같이 가상환경에 정상적으로 들어간 것을 확인해주세요.

이제 Mask R-CNN을 구성하는데 필요한 파일들을 설치해줘야 합니다.

추가적으로 Visual C++ 2015 Build Tools 설치가 필요합니다.

pip install tensorflow-gpu==1.5 

pip install keras==2.2.0 

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

pip install opencv-python ipython

-------------------------------

저는 바탕화면에 Mask_RCNN폴더를 만들어 설치하였습니다. 



cd Desktop //바탕화면으로 이동 

mkdir Mask_RCNN // Mask_RCNN 이라는 폴더 생성 

cd Mask_RCNN // Mask_RCNN 폴더로 이동

-------------------------------

conda install -c anaconda git //git을 이용하기위한 설치 

git clone https://github.com/matterport/Mask_RCNN.git  // Mask_RCNN파일 설치 

-------------------------------

git clone https://github.com/philferriere/cocoapi.git // cocotools 설치 

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

-------------------------------

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

pip install imgaug

-------------------------------

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

 

matterport/Mask_RCNN

Mask R-CNN for object detection and instance segmentation on Keras and TensorFlow - matterport/Mask_RCNN

github.com

추가적으로 이사이트에 들어가서 
mask_rcnn_coco.h5.file 을 다운로드하여 Mask_RCNN 폴더에 넣어줍니다.

 

 

이제 주피터 노트북을 이용하여 예제를 실행해 보도록 하겠습니다.

Mask_RCNN 폴더내에 samples 폴더에 들어가서 demo.ipynb 파일을 실행시켜서 데모를 구동해봅니다.

 

 

성공적으로 구동이 되었습니다. 

# 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)))

Mask_RCNN폴더내에 images에 자신이 원하는 사진을 넣고 아래와 같이 코드 수정을 하면 다른 사진도 돌려볼 수 있습니다.

# Load a random image from the images folder

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

 image= skimage.io.imread(filename)

 

글 읽어주셔서 감사합니다.

 

 

추가적으로 오류나는 사항있으면 댓글로 알려주세요!!

 

 

참고사이트

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

 

https://n1094.tistory.com/42

 

https://medium.com/zylapp/review-of-deep-learning-algorithms-for-object-detection-c1f3d437b852

 

https://reyrei.tistory.com/11

 

posted by devtang