이번 게시물은 Windows10 에서 Anaconda 가상환경에 Mask R-CNN 을 세팅하여 간단한 사진 예제를 돌려보겠습니다.
우선 Mask R-CNN이란 무엇인가?
Mask R-CNN : Mask Region-based Convolutional Network
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 세팅하기
기본적으로 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
추가적으로 이사이트에 들어가서
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://medium.com/zylapp/review-of-deep-learning-algorithms-for-object-detection-c1f3d437b852
'AI > Keras' 카테고리의 다른 글
[Keras] Faster R-CNN를 이용한 Video Object Detection (Not Real-time) (0) | 2020.04.14 |
---|---|
[Keras] Anaconda를 이용한 Faster R-CNN 세팅 및 예제 실행 (22) | 2020.04.03 |
[Keras] CNN을 사용한 MNIST 손글씨 인식 (0) | 2020.03.27 |
[Keras] MNIST 손글씨 데이터 셋을 이용한 Keras 기초 과정 알아보기 (0) | 2020.03.26 |