레이블이 R-CNN인 게시물을 표시합니다. 모든 게시물 표시
레이블이 R-CNN인 게시물을 표시합니다. 모든 게시물 표시

2014년 9월 16일 화요일

R-CNN: Regions with Convolutional Neural Network Features. 저사양의 그래픽 카드에서 GPU mode로 실행하기

R-CNN: Regions with Convolutional Neural Network Features. 저사양의 그래픽 카드에서 GPU mode로 실행하기

 rcnn_demo()를 실행하는 경우 cuda memory가 충분하지 않은 사양의 그래픽 카드에서는 (<=1GB) 기본 설정으로 동작이 되지 않고 아래와 같은 에러 메시지를 출력할 수 있다.

Check failed: error == cudaSuccess (2 vs. 0) out of memory

 Selective search를 통해서 얻어낸 후보군들에 대한 CNN을 통과하는 이미지의 갯수를 한 번에 256개로 설정해두었기 때문에 이것을 적절히 조절하면 저사양의 그래픽 카드에서도 실행할 수 있다.


$RCNN_ROOT/data/rcnn_models/ilsvrc2013/rcnn_model.mat

을 열어 CNN 멤버에 batch_size를 적절히 조절하고 같은 숫자를


$RCNN_ROOT/model-defs/rcnn_batch_256_output_fc7.prototxt


에서 input_dim: 256 으로 설정되어 있는 기본값을 바꾸어 주면 된다.

R-CNN: Regions with Convolutional Neural Network Features. 설치와 실행

R-CNN: Regions with Convolutional Neural Network Features. 설치와 실행

CVPR2014에 Rich feature hierarchies for accurate object detection and semantic segmentation이라는 제목으로 게재된 논문에 사용된 소스를 설치하고 실행한 결과에 대해서 게재하고자 합니다.
 R-CNN은 Berkeley Vision and Learning Center(BVLC)에서 만든 caffe(An Open Source Convolutional Architecture for Fast Feature Embedding)를 기반으로 방대한 양의 영상 데이터 베이스로부터 학습한 CNN(Convolutional Neural Network)을 이용해서 물체에 대한 사진을 분류하고 인식하는 방법입니다.

 IMAGENET 2014에서 ILSVRC14 Task 1b: Object detection with additional training data 부문에서 5번째에 랭크 되었습니다(ILSVRC14 결과). 올해 5월에만해도 다른 모든 방법들보다 우수할 것으로 자체적으로 판단하였습니다.

  상위 몇개의 방법들은 CNN을 기본으로 하는 것이 유사하고 각 레이어의 크기와 형태를 정하는 방법들에 의해 성능이 결정되는 경우가 많아서 R-CNN을 분석해보는 것이 물체 인식을 위한 기계 학습에 적절하다고 생각됩니다. MATLAB과 python에 대한 매우 편리한 인터페이스를 지원하기 때문에 text파일로 정의되는 레이어의 크기와 형태를 수정하는 것만으로도 완전히 새로운 CNN을 구성할 수 있기 때문입니다.

 다음 순서로 진행됩니다.
  1. 우분투 14.04 설치
  2. MATLAB 2013b 설치
  3. 우분투 14.04LTS에서 cuda 6.0 설치
  4. caffe 설치 및 실행
  5. R-CNN 설치 및 실행
 여기에서는 3, 4, 5에 대해서만 다룹니다.