[Boostcamp AI Tech] [P-stage] 10주차 Day 2 학습 기록

bluegun·2021년 10월 6일
0

AI Tech 2기 활동

목록 보기
43/87

학습 내용

무엇을 시도했나요?

Visualization about model output

classification 문제와 다른 점이 많아 모델을 어떤 식으로 개선하면 더 성능이 좋겠다는 직관적인 생각이 잘 떠오르지 않았다. 예를 들어 classifcation 문제는 결국 최종 output이 class 1개만 나오기 때문에 이를 비교해가며 어느 class를 잘 맞추는지, 데이터의 어떤 부분을 중점적으로 학습하게 하면 되는지를 생각하면 되고 이는 직관으로도 어느정도 이해할 수 있었다. 하지만 Detection의 경우, output으로 나오는 Bbox가 수량 제한이 없고, Bbox regression을 할 때 어떻게 해야 좀 더 정확한 box를 그리게 하는지도 명확하지 않아서, 어떤 식으로 모델 성능을 향상시켜야 할 지 고민이 많았다.

그래서 우선 모델을 해결하기 전에, 모델의 output으로 나온 Bbox들을 시각화하여 모델이 어떤 영역을 예측했는지를 분석하는 코드를 만들었다. 또한, annotation이 있는 train data에도 이를 적용할 수 있도록 하여, train data의 annotation과 비교해 model이 어떤 식으로 output을 내는지 시각화하였다.

우선 baseline으로 제공된 faster R-CNN을 사용한 모델을 학습시켜 위에서 만든 train data visualization notebook에 넣어 train data와 비교해보았다. 그 결과, faster R-CNN 모델이 실제 Ground Truth와 비교해 엄청 많은 Bbox를 만들었으며, 그 Bbox들은 영역이 거의 일치하지만 class만 다른 경우도 많았다. 이는 기본적으로 mAP를 올리기 위해선 box를 많이 예측하는 게 유리하다는 점 때문에 이런 식으로 학습한 것으로 보이며, 이를 해결하기 위해 cascade R-CNN을 쓰거나 IoU를 높여 정확도 높은 box만 사용하게 해야 할 것 같다. 같은 영역에 여러 class를 예측하는 문제는 따로 처리해줘야 할 수도 있을 것 같다.

0개의 댓글