작성
·
238
0
답변 1
0
안녕하십니까,
1) 3*3 conv를 통해 나온 피쳐맵 --> 1*1 conv --> 앵커박스 매핑 까지의 단계를 말씀하시는 건가요??
=> 어떤 단계를 얘기하시는 건지 모르겠지만, RPN을 말씀하시는 걸로 판단하겠습니다.
3x3 conv -> 1x1 conv 시 anchor box 갯수 만큼 channel 수를 가지는 conv 연산을 적용합니다.
말씀하신것이 대략적으로 맞습니다. 다만 캡처해주신 그림이 작아서 보이질 않습니다.
RPN의 Object 여부 Classification은 개정판에서는 softmax가 아닌 sigmoid, 즉 object인가 아닌가로 설명드리고 있습니다. 그래서 filter수가 18개가 아니라 9개로 설명 드리고 있습니다. 이게 softmax일 경우에는 18개 입니다. 아래와 같은 1x1 Conv를 적용하여 RPN의 Object 여부를 출력합니다.
Conv2D(filters=앵커갯수, kernel_size=(1,1), activation='sigmoid')(3x3 feature map 결과)
RPN의 Bounding box 좌표는 filters수 앵커갯수 x 4 입니다. 그래서 36개 입니다.
Conv2D(filters=앵커갯수*4 , kernel_size=(1,1), activation='linear')(3x3 feature map 결과)
이렇게 해서 PRN의 Object여부와 bounding box 좌표를 예측합니다.
그런데 정확히 얘기하자면 이 예측값과 anchor값을 매핑하지는 않습니다. anchor는 고정되어 있기 때문입니다. 이 고정된 anchor box와 Ground truth bounding box값이 얼마나 떨어져 있는지를 기반으로 예측 bounding box를 생성하는 것입니다.