안 쓰던 블로그
RPN 본문
RPN
Feature맵을 인풋으로 받아서 오브젝트가 있을만한 영역을 추천한다(selective search와 비슷한 기능)
원본 이미지->VGG->RPN[Feature Map(사이즈 변경, 채널 512)->(영역추천1)1x1 Fully Convolutional Layer(이진 분류: 오브젝트인가FG/아닌가BG. 두 번 하므로 Anchor Box 9개x2)
->(영역추천2)1x1 Fully Convolutional Layer(Bounding Box Regression: X1, Y1, X2, Y2. 네 번 하므로 9x4)]
Positive Anchor Box, Negative Anchor box분류
Classification
Ground Truth 바운딩 박스(실제 오브젝트)가 겹치는 IOU값에 따라 Anchor Box를 Positive Anchor Box로 아니면 Negative Anchor box로 분류
- IOU가 0.7 이상이면 Positive
- IOU가 가장 높은 Anochor는 Positive
- IOU가 0.3보다 낮으면 Negative
0.3~0.6사이값은 애매한 값으로 none으로 치고 학습할 때 빠진다
Bounding Box Regression
Predicted Anchor Box(예측 Anchor Box)는 Ground Truth를 바로 따라가지 않고 Positive Anchor Box와의좌표값 차이를 최소화할 수 있는 Bounding Box Regression 수행한다
RPN Loss 함수
$p_i$: Anchor i가 오브젝트일 예측 확률
$p{}^{*}_i$: Anchor i의 Ground truth Object 여부(Positive 1, Negative 0)->IOU가 0.6이상이면 1, 0.3이하면 0
$t_i$: Anchor i에 대한 예측 좌표 4개(x, y, w, h)
$t{}^{*}_i$: Anchor i에 실제 좌표 4개(x, y, w, h)
$N_{cls}$: 미니 배치에 따른 정규화 값(256)
$N_{box}$: 박스 개수 정규화 값 (최대 2400)
$\lambda$: 밸런싱 값: 10
이진 분류이냐 아니냐(Classification)
$(p_i, p{}^{*}_i)$를 최소화하는 방향으로 간다
$N_{cls}$는 미니 배치인 256으로 나눈 것
$i$가 다 더해졌다는 의미는 모든 Anchor값에 대해 적용을 했다는 의미
->Feature Map이 40x50이었다면, Feature Map별로 9개의 Anchor Box가 있으니까 40x50x9만큼을 전부 더함
Bounding Box Regression
예측 좌표와 실제 좌표의 차이를 줄이기 위함
$p_i$를 넣는 이유는, Negative값은 넣지 않겠다는 의미
$N_{box}$는 엄밀히 하면 Feature Map에 있는 각 포인트의 개수->Feature Map이 40x50이었다면, 2000개
$\lambda$는 큰 의미가 없다고 한다
RPN학습
보통 Negative가 더 많기 때문에 초기부터 Negative로 많이 학습되는 경향이 있어서 오브젝트를 아예 못 찾는(영역을 못 찾는) 문제가 생겨서 Mini Batch로 나눠서 순차적으로 학습
Objectness Score: 예측 Box가 Object 일 확률(Softmax 값) * Ground Truth bounding box와의 IOU값
Objectness Score가 높은 순으로 Regsion Proposal Box를 추출(N<2000이면 상위 2000)
'머신러닝 > 머신러닝' 카테고리의 다른 글
평가(Evaluation)_1 (0) | 2021.01.24 |
---|---|
Linear Regression 선형 회귀 (0) | 2021.01.21 |
Faster RCNN (0) | 2021.01.20 |
RCNN, SPM, SPP, SPPNet (0) | 2021.01.17 |
OpenCV를 활용한 영상 처리 (0) | 2021.01.17 |