Paper review/2D Object detection

[논문 리뷰] CenterNet: Keypoint Triplets for Object Detection (2019)

성장형감자 2022. 7. 8. 15:02
728x90
반응형

나의 정리

  • 논문이 지적한 문제점: a pair of corner를 이용하여 detection을 하면 내부의 visual pattern을 사용하지 않아서 부정확한 BBox를 너무 많이 생성하게 된다.
    해결 방안: 한 쌍의 Corner와 Center keypoint 총 세 개의 triplet keypoint를 사용하여 detection하여서 bbox 내부 visual pattern을 사용하여 불필요한 bbox를 제거했다.
  • 주요 module 2가지
    1. Cascade corner pooling
      • 기존 corner는 객체 밖에 존재할 확률이 높아 local feature가 부족할 수 있고 외곽 정보에만 예민하게 반응 할 수 있다.
      • 따라서 boundary와 내부 정보를 모두 사용할 수 있는 module
      • boundary maximal 값과 내부 영역의 maximal 값을 더해서 구해준다.
    2. Center pooling
      • feature map에서 수직, 수평 방향에서 maximal 값을 더해준다.
      • center keypoint detection 성능을 높여준다.
  • 위와 같은 module을 기반으로 bbox 내부 정보를 같이 이용하여 object detection을 진행하여 성능을 개선하였다.

Abstract

  • Keypoint 기반 방식은 cropped 된 영역의 추가적인 정보의 부족 때문에 부정확한 BBox가 생성된다.
  • CenterNet은 customize module 2가지를 사용하여 위의 문제를 해결한다.
    1. Cascade Corner pooling
    2. Center pooling
  • 한 쌍의 Corner와 Central region에 대한 정보를 주어 더 많은 정보를 제공하여 성능을 높인다.
    → Triplet keypoint를 사용한다.

Introduction

  • 기존 keypoint 기반의 Object detection 방식인 CornerNet의 단점
    • Object의 global 정보를 나타내는 것이 부족하다.
    • 객체는 한 쌍의 Corner로 구성되어 객체의 경계를 감지하는데 민감하게 되지만 어떤 keypoint끼리 같은 객체로 그룹핑이 돼야 하는지 모른다.
      →CornerNet에서는 embedding을 통해서 두 corner를 한 쌍으로 그룹핑을 진행했다.
  • CornerNet으로 제안된 BBox 내의 시각적 패턴을 인식하는 기능을 추가해 정확성을 높인다.
    적은 cost를 사용할 수 있어 효과적이다.

  • geometric Center와 가까운 하나의 추가적인 keypoint로 center point를 제공한다.
  • 예측된 BBox가 GT Box와 높은 IoU를 가진다면 중심 keypoint도 같은 class를 가질 확률이 높다는 것을 이용하여 예측한 BBox의 중심점의 class가 GT와 같은지 확인한다.
  • Center pooling, cascade corner pooling 이 두 가지 전략으로 더 안정적이고 강건한 모델을 만들 수 있다.

Related Work

  • 생략

Our Approach

Baseline and Motivation

  • 부정확한 BBox에 대한 비율이 정확한 BBox보다 많은 비율을 차지한다는 점이 CornerNet의 문제점이다.
    부정확한 BBox를 너무 많이 생성해 낸다.
  • 에러 비율이 높은 이유는 두 특징점만 활용하여 BBox 내부의 정보가 활용되지 못했기 때문이다.
  • ROI pooling으로 BBox 내부 visual pattern을 볼 수 있지만 Cost가 많이 든다는 문제점이 있기 때문에 효율적인 방식으로 BBox 내부 visual pattern을 확인한다.
  • Center pooling, cascade corner pooling 이 두 가지를 이용해 한 쌍의 corner, center 이 triplet keypoint로 detection을 진행하여 BBox 내부 정보도 활용한다.

Object Detection as Keypoint Triplets

  • CenterNet의 동작 과정
    1. Score를 기준으로 높은 Center Keypoint를 K개 뽑는다.
    2. offset을 이용하여 center keypoint를 input image의 올바른 곳에 위치시킨다.
    3. 중심 영역을 지정하고 해당 영역에 중심점이 있는지 확인한다.
      또, 중심점의 Class가 GT와 동일해야 한다.
    4. 만약 중심 영역에 Center Keypoint가 존재하면 해당 BBox는 남겨둔다.
      GT와 class가 다르거나, 중심영역에 keypoint가 없다면 해당 BBox는 삭제한다.
  • BBox score는 triplet point의 점수 평균으로 대체된다.

  • 중심 영역의 크기가 결과에 영향을 끼친다.
    만약 영역이 작다면 작은 BBox에 대해 recall 값이 낮아진다.
    반대로 영역이 크다면 큰 BBox에 대해 precision이 낮아진다.
    따라서 BBox 크기에 따라 adaptively하게 영역을 설정한다.
    →영역이 작다면 작은 bbox의 center 영역은 더 작아져 조금만 틀려도 찾을 확률이 낮아지고 (recall이 떨어짐) 영역이 크다면 큰 bbox의 center 영역은 더 커져 틀린 center를 예측해도 맞았다고 평가해 정확도가 낮아진다. (precision이 떨어짐)

Enriching Center and Corner Information

  • Center Pooling
    • feature map에서 수평, 수직 방향으로 max 값을 구해 더해준다.
      → 더 나은 center keypoint 감지를 돕는다.
  • Cascade corner pooling
    • Corner는 주로 객체 밖에 존재하여 local feature가 부족하다는 특징이 있다.
    • 기존 CornerNet의 방식은 edge에는 예민하게 반응하지만 내부 정보를 사용하지 않는다는 점이 있었는데 이를 아래와 같은 방식으로 개선하였다.
    • 먼저 boundary를 찾기위해 maximal 값을 찾는다.
      찾게 되면 내부의 maximal 값을 찾기 위해 찾은 외곽 내부 영역을 확인한다.
      외곽의 maximal 값과 내부의 maximal 두 값을 더해준다.
    • 위와 같은 과정을 통하여 boundary, 내부 정보를 모두 얻을 수 있다.

  • Training and Inference
    • Training
      • CornerNet과 유사한 loss를 사용한다. 
    • Inference
      • soft-nms를 불필요한 bounding box를 제거하기 위해 사용한다.

Experiments

  • 전체적인 성능표

  • Ablation Study
    • Central region exploration
      • 작은 물체에 대해 성능 개선이 있다. 큰 물체에선 큰 영향이 끼치진 않는다.
    • Center pooling
      • Center keypoint detection 정확성을 개선한다.
    • Cascade corner pooling
      • 그냥 Corner pooling에서는 하지 못하는 쌍의 corner를 맞춰준다. 내부와 외곽 정보를 합쳐주기 때문에

Conclusion

  • 한 쌍의 corner로는 부족한 정보를 추가하기 위해 Triplet keypoint를 이용하여 object detection을 진행한다.
728x90
반응형