tensorpack의 Faster RCNN 예제 돌리기

안녕하십니까.
딥러닝을 공부하는 도중, 오브젝트 인식하는데에 쓰이는 알고리즘이 Faster RCNN이라고 하여서, 관련 오픈소스를 공부하고 있습니다.

Object Detection with Faster RCNN

물체를 인식하는데에 있어서 물체가 있는 위치를 예측하는 region proposal method와 그 위치에서 이미지의 특징을 분석하는 region-based CNN(R-CNNs) 가 있습니다.

해당 알고리즘의 이전 버전인 FastRCNN도 성능이 좋아진 편이지만, 여전히 CPU연산이 있어서 이를 GPU 연산으로 바꾼것이 FasterRCNN입니다.

tensorpack

여러 오픈소스중 tensorpack이라는 오픈소스의 예제 코드를 돌려보고 포스팅 합니다.


tensorpack
tensorpack은 tensorflow의 Wrapper이며, 여러 알고리즘의 예시 코드가 있습니다. 그중 FasterRCNN도 한 예시 입니다.

tensorpack은 어려운 조작법을 가진 tensorflow를 쉽게 조작할 수 있도록 하는 것이 모토 입니다. 그를 통해 쉬운 사용과 좋은 성능을 가져가려고 합니다.

tensorpack architecture
직접 만져봐야 알 수 있겠지만, 전반적인 구조로는 파이썬 라이브러리들을 효율적으로 가져오는 Python Reader, zeroMQ를 통해서 큐를 생성, 멀티 GPU를 통한 분산 학습등을 처리 합니다. 

사용법

  • https://github.com/tensorpack/tensorpack 의 링크에 들어가 tensorpack 코드를 다운 받습니다.
  • tensorpack directory의 코드를 pip 명령어를 통해서 패키지화 합니다.
    • pip install tensorpack을 하면 다운로드가 되지만 버전이 이전 버전이라 잘 안돌아 갑니다.
  • 해당 코드의 https://github.com/tensorpack/tensorpack/tree/master/examples/FasterRCNN 위치로 들어가서 예제 설명을 따릅니다.
    • 이때 주의할 점은 train.py의 파라미터 설정 및 모델링을 잘 해야 잘 돌아 갑니다. 다른설정, 다른 모델을 사용하면 결과가 나타나지 않습니다.
    • 윈도우에서는 predict 및 evaluation만 가능 합니다. train을 하려면 zeromq 및 gpuutilization 코드가 돌아가야 하는데 windows는 지원을 안하는 듯 합니다.

Test 결과

아래는 train.py --predict 명령어를 통하여 왼쪽의 강아지와 고양이의 사진을 예측한 모습 입니다.
제가 직접 인터넷에서 cat and dog을 검색한 사진으로 예측하였는데, 잘 나오는 것 같습니다.

댓글

이 블로그의 인기 게시물

포켓몬 고 17셀 확인 포고맵 사용 방법

HTTP 오류 500.19 - Internal Server Error 에러 처리법

고려대학교 야간대학원 중간 후기