• 카테고리

    질문 & 답변
  • 세부 분야

    컴퓨터 비전

  • 해결 여부

    미해결

Fater RCNN 질문입니다

22.02.28 14:10 작성 조회수 91

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
 
안녕하세요 덕분에 Detection 잘 배우고 있습니다
Faster RCNN 강의를 듣다가 질문이 있어 글을 남깁니다
 
1. RPN에서 Imbalancing 문제를 해결하기 위해 256 배치 중 128개 positive 128개 negetive 128개로 하여 학습을 한다고 하였는데 (강의 125페이지), 아무래도 object가 많기 때문에 이 경우에는 마치 positive는 oversampling하고 negetive는 undersampling하는 것과 동일한 개념이라고 이해하면 될까요? 앵커 미니배치를 128이나 64처럼 다른 숫자로 해도 상관 없을까요?
 
2. Faster RCNN의 최종 구조를 보면 (강의 129 페이지) rufrcnn 의 구조를 모면 RPN과 ROI Pooling에 둘다 Classification loss와 BBox loss가 있는 것을 알 수 있는데 합습할때 다 합치나요? 아니면 개별적으로 학습하나요?
그리고 RPN의 Classification은 object 여부를 학습하고 ROI pooling의 classification은 object 중에 분류를 하는 것으로 이해하였는데 맞는지요?
마지막으로 RPN과 ROI Pooling의 BBox regression은 결국 같은 것인데 두번 들어가는 것인가요? 아니면 RPN에서 select하고 ROI pooling에서는 select된 ROI만 loss를 구하는 것인가요? (ROI pooling에서는 anchor box와 관계없이 학습하나요?)
 
덕분에 미뤄두었던 detection 공부를 잘하고 있습니다 정말 감사드립니다!!!

답변 1

답변을 작성해보세요.

0

안녕하십니까, 잘 듣고 계시다니 저도 기분이 좋군요. 

1. RPN에서 Imbalancing 문제를 해결하기 위해 256 배치 중 128개 positive 128개 negetive 128개로 하여 학습을 한다고 하였는데 (강의 125페이지), 아무래도 object가 많기 때문에 이 경우에는 마치 positive는 oversampling하고 negetive는 undersampling하는 것과 동일한 개념이라고 이해하면 될까요? 앵커 미니배치를 128이나 64처럼 다른 숫자로 해도 상관 없을까요?

=> 네, over/under sampling 개념으로 보시도 될 것 같습니다. 숫자는 다른 숫자로 해도 상관이 없을 것 같습니다.

2. Faster RCNN의 최종 구조를 보면 (강의 129 페이지) rufrcnn 의 구조를 모면 RPN과 ROI Pooling에 둘다 Classification loss와 BBox loss가 있는 것을 알 수 있는데 합습할때 다 합치나요? 아니면 개별적으로 학습하나요?
=> 논문상에는 순차적으로 하는 걸로 되어 있습니다.
epoch를 20번 하면
첫번째 epoch에서 첫번째 batch로 RPN 부터 학습하고 그 다음에 전체 모델 학습하고, 2번째 배치도 마찬가지 순차적으로...
이런 방식으로 20번 epoch를 반복합니다. 근데 faster rcnn을 구현한 다른 소스코드들을 보면 한꺼번에 다 학습하는 경우도 있습니다.
 
그리고 RPN의 Classification은 object 여부를 학습하고 ROI pooling의 classification은 object 중에 분류를 하는 것으로 이해하였는데 맞는지요?
=> RPN의 Classification은 object 여부를 학습하고, 전체 모델에서 FC Layer의 classification layer에서 object 분류를 합니다.
 
마지막으로 RPN과 ROI Pooling의 BBox regression은 결국 같은 것인데 두번 들어가는 것인가요? 아니면 RPN에서 select하고 ROI pooling에서는 select된 ROI만 loss를 구하는 것인가요? (ROI pooling에서는 anchor box와 관계없이 학습하나요?)

=> RPN과 전체 모델의 FC layer에서의 BBox regression은 같지 않습니다. RPN은 Object 위치 파악, 즉 selective search와 비슷한 역할을하며 전체 모델의 fc layer에서 object의 위치를 구합니다. 즉 말씀하신대로 select된 ROI만 loss를 구해서 object의 위치를 구합니다.

김연승님의 프로필

김연승

질문자

2022.03.01

감사합니다!!😍