논문링크 : https://arxiv.org/pdf/1808.01244.pdf

논문 소스코드 :  https://github.com/princeton-vl/CornerNet


CornerNet: Detecting Objects as Paired Keypoints

 

Contribution

  1. pose estimation의 아이디어를 object detection task에 접목 (Keypoints로, 두 개의 모서리를 Detect하여 Bounding box를 찾아냄)
  2. (당시) 1-stage 계열에서 sota 달성 (아래 table 7 참조)

 

 

Motivation

  • '앵커 박스' 사용으로 인해 발생하는 단점들을 해소하고 싶다.
  • '앵커 박스' 사용으로 인한 단점 => 1) 많은 수의 앵커박스 필요, 2) positive, negative 불균형 문제, 3) 앵커박스에 필요한 여러 하이퍼파라미터 고려해야 함   
  • 앵커 박스를 제거하고, 특징점(keypoints)을 기반으로 바운딩 박스를 예측

 

Core idea

Pose estimation에서 heatmap을 가지고 joint의 keypoint를 찾는 방법과 유사

  1. CornerNet architecture
  2. Corner pooling

 

1. CornerNet architecture

 

  1. Backbone : Hourglass Network ("Stacked Hourglass Networks for Human Pose Estimation" )
  2. Backbone network를 통해 정제된 feature는 top-left, bottom-right corner를 찾는데 사용됨
  3. heatmap은 class별, top-left별, bottom-right별로 생성됨
  4. 각 heatmap의 point별로 embedding이 계산된 후, 이 embedding 끼리의 유사도를 측정하여 pair를 구성함

 

 

2. Corner pooling

 사용 이유 : Often there is no local evidence to determine the location of a bounding box corner.

 

기타

 

1. Loss function

  1. focal loss를 변형하여 사용함
  2. top-left, bottom-right에 대한 두 개의 heatmap이 존재, heatmap은 특징점 유무를 식별하는 용도로 사용됨
  3. heatmap은 C개의 채널을 갖으며, C는 class 수를 의미함
  4. radius는 객체의 크기에 따라 결정하며, radius 주변에 가우시안 분포(둥근 모양)를 생성하여 거리에 따라 loss를 조절 (보다 자세한 내용은 논문을 참고할 것)
  5. 당연한 소리지만, 정답과 근접한 예측값에는 낮은 loss를 부여, negative에는 큰 loss를 부여함
  6. p는 해당 위치에서의 score, y는 ground-truth, N은 image에서 object의 수, alpha, beta는 각 point의 기여도를 조절하는 하이퍼파라미터

 

  1.  corner pooling의 예측값인 embedding은 검출한 두 쌍의 특징점을 하나로 묶기 위해 사용함
  2.  동일한 class에 속하는 특징점 embedding 사이의 거리를 측정, 가장 거리가 짧은 두 특징점이 하나로 묶는다.
  3.  동일한 그룹에 속하는 특징점 -> pull loss, 다른 그룹에 속하는 특징점 -> push loss
  4.  서로 같은 object끼리는 잠재공간 상에서 가까워지게 embedding을 만들고, 다른 object끼리는 서로 멀어지게 만드는 역할

 

  1. heatmap은 여러 conv layer를 거쳐 down sampling됨 => heatmap에서 검출한 특징점 위치를 원래 이미치 크기와 다름 => 정확한 특징점 위치를 예측할 수 없게 됨 => 이 문제를 해결하기 위해 offset 계산 필요함
  2. SmoothL1Loss :  Faster-RCNN에서 bounding box regression시 사용하는 loss, cornerNet에서도 box의 위치를 regression(조정)한다.

 

2. 성능 (MS COCO dataset)

반응형

+ Recent posts