인프런 커뮤니티 질문&답변

천권욱님의 프로필 이미지
천권욱

작성한 질문수

[개정판] 딥러닝 컴퓨터 비전 완벽 가이드

Fast RCNN의 이해

ROI Pooling Layer이 SPP Layer보다 성능이 뛰어난 이유가 궁금합니다.

작성

·

39

0

SPP Layer의 경우 여러 Spatial Bins를 사용하여 이미지의 작은 부분부터 큰 부분까지의 정보를 취합하는 것으로 이해했습니다. 또한 ROI Pooling Layer의 경우 SPP Layer에서 Level이 1인 Bins만 적용하는 것으로 이해했습니다.

 

여기서 의문이 드는 것이 여러 정보를 종합적으로 취합한 SPP Layer가 ROI Pooling Layer보다 성능이 뛰어날 것으로 (직관적으로) 생각이 드는데, Fast RCNN에서 ROI Pooling을 선택한 이유가 궁금합니다.

 

실험적인 결과로 ROI Pooling을 선택했겠지만, ROI Pooling이 SPP Layer보다 Object Detection에서 우수한 성능을 보이는 이유가 궁금합니다!

답변 2

0

권 철민님의 프로필 이미지
권 철민
지식공유자

안녕하십니까,

날카로운 질문이군요.

실험적인 결과기 때문에 왜 ROI Pooling이 더 좋은 결과를 내었는지 저도 잘 모르겠습니다. 당시 H/W 성능에서 메모리 사용량이나 연산량 측면에서 많은 자원이 소모되거나 등의 Fast RCNN과 궁합(?)이 상대적으로 떨어지는 게 아닌 가 싶기도 합니다. 오히려 말씀하신대로 이론적인 사항만 놓고 보면 ROI Pooling 보다는 Spartial Pyramid 기반이 좀 더 정교해 보이기도 합니다.

현 시점에서는 ROI Pooling 보다는 SPP가 아직도 널리 활용되고 있는 기법입니다. Yolo v4 부터는 SPP가 백본을 이어주는 layer 형태를 가지고 있습니다.

감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다. 천권욱님.

ROI Pooling과 SPP Layer의 차이 및 성능 비교에 대해 궁금하신 점이 있으시군요. ROI Pooling과 SPP Layer는 둘 다 CNN 기반의 Object Detection 모델에서 사용되는 기법입니다. 아래에서 그 차이 및 Fast R-CNN에서 ROI Pooling을 채택한 이유를 설명드리겠습니다.

  1. SPP Layer와 ROI Pooling의 차이:

    • SPP Layer는 입력 이미지의 여러 크기의 필터를 적용하여 다양한 스케일의 정보를 추출합니다. 이를 통해서 이미지의 다양한 특징을 고려할 수 있습니다.
    • ROI Pooling은 Selective Search 등의 Region Proposal 알고리즘에 의해 추출된 영역에 대해 고정된 크기의 특징 맵을 생성합니다. 이는 모든 영역을 동일한 크기로 변환하여 Fully Connected Layer에 입력하도록 합니다.
  2. ROI Pooling이 선택된 이유:

    • 단순화: ROI Pooling은 처리 과정이 단순하여, SPP Layer의 복잡한 여러 층의 조합을 간소화하여 계산 비용을 줄입니다.
    • 성능 향상: ROI Pooling은 연산량을 줄임으로써 모델의 훈련 속도를 높이고, 동시에 메모리 사용을 최적화하여 실제 모델 검증에서도 SPP Layer 대비 좋은 성능을 보고했습니다.

ROI Pooling은 특히 Fast RCNN에서 모델을 더 빠르고 쉽게 학습할 수 있게 해주었기 때문에 선택되었습니다. 계산 효율성과 실험적 결과는 모델을 실제 적용하는 데 있어 중요한 평가 기준이 됩니다.

관련 질문들이 다양한 방식으로 다뤄졌으니, 아래의 게시글도 확인해보시면 큰 도움이 될 것입니다:

  1. spp layer
  2. SPP Net vs Fast RCNN

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

천권욱님의 프로필 이미지
천권욱

작성한 질문수

질문하기