본 글은 Windows 10 환경에서 Anaconda에 가상환경을 세팅하여 진행하였습니다.
Faster R-CNN
Faster R-CNN의 가장 핵심 부분은 Region Proposal Network(RPN) 입니다.
R-CNN은 이미지 내에 객체가 존재할 것 같은 위치를 제안 하면, 제한된 위치의 이미지를 잘라냅니다.
잘라낸 이미지의 feature map을 추출하여 그것에 대해 CNN(Convolutional Neural Network)을 사용했습니다.
하지만 Faster R-CNN은 잘라낸 영역마다 CNN을 사용하는것이 아니라 이미지 전체를 CNN에 통과시킨 후,
큰 feature map을 추출해내어 제안된 영역을 feature map에 투영하는 방식입니다.
즉 여러번 처리할일을 한번에 하게되어 처리속도가 전 모델보다 훨씬 빨라졌으며, 전작 대비 정확도가 상승했습니다.
우선 Anaconda 과Visual C++ 2015 Build Tools 가 설치되있는 가정하에 진행하겠습니다.
아나콘다 프롬프트창을 열어줍니다. 저는 가상환경이름을 fasterRCNN으로 지었습니다.
(base) C:\Users\@USERNAME@>conda create -n fasterRCNN python=3.6 pip
가상환경이 설정된 후 가상환경으로 진입합니다.
activate fasterRCNN
pip install tensorflow-gpu==1.4
pip install keras==2.0.3
pip install numpy==1.15
pip install sklearn h5py
pip install opencv-python ipython
필요한 요소들을 설치해줍니다. (cudatoolkit==8.0 cudnn==5.1 버전사용, 혹시나 cuda 관련 에러뜰시 따로 설치필요!)
그리고 faster R-CNN을 git에 들어가서 다운로드해줍니다.
https://github.com/you359/Keras-FasterRCNN
저는 이폴더를 바탕화면에 두었습니다.
그리고 예제에 필요한 웨이트파일을 다운받아서 git에서 받은 faster rcnn폴더에 넣어줍니다.
이제 예측할 input image를 넣을 폴더를 생성해줍니다.
(fasterRCNN) C:\Users\@USERNAME@\Desktop\keras-frcnn-master>mkdir images
images 폴더안에 자신이 예측하고싶은 사진을 넣습니다.
저는 YOLO 예제돌릴때 쓰는 개사진과 바다에 배가 떠있는 사진을 예제로 테스트해봤습니다.
(fasterRCNN) C:\Users\@USERNAME@\Desktop\keras-frcnn-master>python test_frcnn.py -p images
제 컴퓨터의 그래픽카드는 GTX1050TI이며 한사진당 detection 시 2초정도 걸린것 같습니다.
참고사이트
https://github.com/you359/Keras-FasterRCNN
https://inspace4u.github.io/dllab/lecture/2017/09/09/Keras_FRCNN_Testing.html
2020-08-12 수정 내용
weights 파일이 본글에서 만료되어서 아래 링크를 클릭하시면 다운받으실 수 있습니다!!
https://drive.google.com/file/d/1oQbhyRJFLRmbd9d2msAZCL77_nXbJvLR/view?usp=sharing
'AI > Keras' 카테고리의 다른 글
[Keras] Faster R-CNN를 이용한 Video Object Detection (Not Real-time) (0) | 2020.04.14 |
---|---|
[Keras] Mask R-CNN 환경 구성 및 Object Detection 예제 실행 (2) | 2020.04.01 |
[Keras] CNN을 사용한 MNIST 손글씨 인식 (0) | 2020.03.27 |
[Keras] MNIST 손글씨 데이터 셋을 이용한 Keras 기초 과정 알아보기 (0) | 2020.03.26 |