해당 포스트에서는 Fast R-CNN
에 등장하는 Region of Interest Pooling 즉, RoI Pooling
에 대해 알아보고자 한다.
필자는 RoI Pooling
이 처음에는 잘 이해가 가지 않았어서 해당 글을 작성하게 되었다.
Fast R-CNN
부터 짚고가면 더 좋은 설명이 되겠지만, 분량이 너무 길어지므로 Fast R-CNN
을 알고 있다는 전제하에 RoI Pooling
을 설명하고자 한다.
등장 배경
Fast R-CNN
이전의 R-CNN
에서는 Proposal 단계의 여러 사이즈의 RoI들에 대해 FC layer에 넣기전 Image Warping을 적용해주었다.
각 RoI들의 사이즈는 다 다른데, FC layer는 고정된 크기의 텐서만 입력이 가능하기 때문에 이를 해결하기 위해 warping을 통해 지정된 하나의 사이즈로(예: 7x7) 통일시켜주는 과정인 것이다.
하지만 warping은 원본 RoI의 이미지 비율이 깨지는 등 원본의 정보가 손실되므로 성능에 걸림돌이 되었다.
R-CNN의 대표적인 architecture 이미지에서도 이를 확인 할 수 있다. 본래 가로 세로 비율 약 1:2인 사람에 대한 RoI에 warping을 적용하니, 사이즈는 고정된 사이즈로 바뀌지만 원본의 비율을 잃는것을 볼 수 있다.
이 문제점을 해결하고자 Fast R-CNN
에서 RoI Pooling
을 제안하였다.
RoI Pooling 이란?
Fast R-CNN
에서 RoI Pooling
의 역할은 R-CNN
의 Warping과 같다. Proposal 단계에서 나온 여러 사이즈들의 RoI들을 FC layer에 넣기 위해 사이즈를 통일 시켜주기 위함이다.
그러나 Warping보다 더 합리적인 과정을 가지고 있다.
아래는 RoI pooling
의 과정을 기술하였다.
- 임의의 사이즈인 RoI가 Proposal 단계에서 뽑혔다고 했을때, 이미지의 feature map 중 RoI와 대응되는 부분의 feature 사이즈를 (h,w)라고 하자.
- 이미지에서는 h=5, w=7이므로 (5,7) 이 된다.
- 우리는 이 (5,7) 크기의 RoI feature tensor를 (2,2) 크기의 고정된 사이즈로 변환하기를 원한다.
- 해당 (5,7) 사이즈를 (2,2)사이즈에 맞게 sub grid로 나누어준다.
- 이미지에서는 pooling section의 검은색 window들에 해당된다.
- 각 grid마다 pooling을 적용시켜 grid 마다 하나의 값을 구하고 최종적으로 (2,2) 크기의 feature를 얻는다.
- 이미지에서는 max pooling을 사용하였으므로 grid에서 가장 큰 값이 남게 된다.
Image warping보다 더 합리적인 이유는 다음과 같다.
RoI Pooling
은 이미지 비율을 유지한 채 feature map 내에서 지정된 영역의 값들을 집계(예: max pooling)하여 고정된 크기의 출력으로 변환한다. 즉 RoI를 왜곡하지않은채, RoI의 정보들을 고정된 크기로 압축할 수 있다는 점이 warping 보다 더 합리적인 이유이다.
요약
RoI pooling
의 목적은 사이즈가 제각각인 RoI를 FC layer의 인풋으로 넣기위해 고정된 크기의 feature로 만들어 주기 위함에 있음.- 기존의 warping 방식의 RoI 왜곡 문제를 해결하기 위해 제안 되었음.
- RoI feature map을 바꾸고자하는 사이즈의 grid로 나누고 grid 마다 pooling(max, avg, ...)을 적용하여 고정된 크기의 feature로 만듦.
- 원본 RoI의 비율이 유지되므로 Image warping에 비해 왜곡이 적고, 더 일관된 feature 추출이 가능하였음.
'인공지능 관련' 카테고리의 다른 글
Batch Normalization 정리 (1) | 2024.11.01 |
---|---|
Normalization, Standardization, Regularization 정리 (0) | 2024.10.30 |
Coarse to fine strategy 이란 (0) | 2023.01.13 |
3D Object Detection Comparison(3D detection 성능 비교표) (0) | 2022.01.25 |
Awesome 3D Deteciton (0) | 2022.01.23 |
댓글