Mask RCNN CPU
Environments
- 본 메뉴얼은 Windows 11 Education에서 테스트 되었기 때문에, Windows 10에서의 작동을 보증하지 않음.
- 설치 방법은 ‣을 참고함.
- 후술할 모든 명령어는 Anaconda Prompt에서 입력한다. 한 줄씩 복사하여 입력하는 것이 권장된다.
가상환경 생성
Python 3.6.12 기반의 Anaconda 가상환경을 생성 후 활성화 한다.
conda create -n Mask_RCNN python=3.6.12
conda activate Mask_RCNN
Mask RCNN 프로젝트 복사
바탕화면에 Mask RCNN 프로젝트를 복사한다.
cd %userprofile%\\Desktop # 사용자 바탕화면으로 디렉토리 위치 변경
git clone <https://github.com/matterport/Mask_RCNN.git>
cd Mask_RCNN # 복사된 Mask RCNN 프로젝트 폴더로 디렉토리 위치 변경
의존성 패키지 설치
문제점
앞서 복사한 프로젝트 폴더 내의 requirements.txt를 이용하여 의존성 패키지를 설치해야한다. 하지만 이를 수정 없이 이용하게 되면 일부 패키지의 버전 호환성 문제가 발생한다.
- pywinpty 패키지 설치 오류
pip install -r requirements.txt 명령으로 의존성 패키지 설치시 pywinpty 패키지에서 오류가 발생한 모습이다. 사실 이는 무시해도 무방한 문제다.
오류 메세지를 보면 처음 시도했던 2.0.3 버전에서 설치에 실패하자 버전을 낮춰가며 설치를 시도했다. 그리고 마지막으로 시도한 1.1.6에서 설치에 성공했다.
- 패키지 버전 차이 발생
pip list 명령으로 설치된 패키지의 버전을 보면 tensorflow와 keras의 버전이 너무 높음을 볼 수 있다.
설치 방법을 참조한 웹 사이트에 의하면 tensorflow는 1.14.0을, keras는 2.0.8을 권장하기 때문에 버전을 낮춰줄 필요가 있다. 다음 절에서 해결 방안에 대해 설명한다.
문제 해결
위에서 발생한 문제는 모두 버전에 의한 것이므로 requirements.txt에서 버전을 특정해주면 해결할 수 있다.
- 메모장으로 requirements.txt를 연다.
notepad requirements.txt
- requirements.txt의 내용을 아래와 같이 바꾸고 저장한다. tensorflow, keras, pywinpty의 버전을 특정했다.
numpy
scipy
Pillow
cython
matplotlib
scikit-image
tensorflow==1.14.0
keras==2.0.8
opencv-python
h5py
imgaug
IPython[all]
pywinpty==1.1.6
- 의존성 목록(requirements.txt)에 있는 패키지를 모두 설치한다.
pip install -r requirements.txt
가중치 파일 다운로드
아래 명령어로 사전 훈련된 2개의 가중치 파일을 다운로드 받는다. 다운로드 된 파일은 Mask_RCNN 폴더에 위치한다.
다운로드 받는 중에 명령 프롬프트가 멈춘 것처럼 보일 수 있다. 다운로드가 완료되면 정상적으로 돌아오니 여유롭게 기다리자.
powershell "(New-Object System.Net.WebClient).DownloadFile('<https://github.com/matterport/Mask_RCNN/releases/download/v2.1/mask_rcnn_balloon.h5','.\\mask_rcnn_balloon.h5>')"
powershell "(New-Object System.Net.WebClient).DownloadFile('<https://github.com/matterport/Mask_RCNN/releases/download/v2.0/mask_rcnn_coco.h5','.\\mask_rcnn_coco.h5>')"
Build/Compilations Setup
빌드 및 컴파일 환경을 구성한다.
python setup.py install
pycocotools 모듈 설치
pycocotools 모듈을 설치하기 위해 다음 명령어를 입력한다.
pip install git+https://github.com/philferriere/cocoapi.git#subdirectory=PythonAPI
문제점
명령을 실행하면 다음과 같은 오류가 발생하는데 Windows 환경에서 "Microsoft C++ Build Tools가 설치되지 않아 발생한다.
문제 해결
MS 공식 사이트에서 Build Tools를 다운로드 후 실행한다. 다음과 같은 화면이 나타나면 C++를 사용한 데스크톱 개발에 체크하고 설치 버튼을 누른다.
설치가 완료되면 다시 pycocotools를 설치한다.
pip install git+https://github.com/philferriere/cocoapi.git#subdirectory=PythonAPI
Demo 실행
- jupyter notebook을 실행한다.
jupyter notebook
- samples/demo.ipynb을 클릭한다.
세 번째 코드블록 실행 시 오류가 나타난다. h5py 패키지 버전이 3.X 버전일 때 이런 오류가 나타난다.
h5py의 버전을 낮춰 재설치하여 해결한다.
h5py의 버전을 2.10.0으로 낮춰 재설치한다.
pip install h5py==2.10.0 --force-reinstall
samples/demo.ipynb을 열고 첫 번째 코드블록부터 다시 실행한다.
다섯 번째 코드블록을 실행하면 랜덤으로 샘플 이미지를 이용하여 Mask RCNN의 결과가 출력된다.
다섯 번째 코드블록에서 file_names 변수와 image 변수를 다음과 같이 바꾸면 Mask_RCNN/images 폴더에 있는 특정 이미지에 대해 작업을 수행할 수 있다.
filename = os.path.join(IMAGE_DIR, '8433365521_9252889f9a_z.jpg')
image= skimage.io.imread(filename)