본문 바로가기
스터디/논문

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

by onecosm 2022. 10. 27.
반응형

https://arxiv.org/abs/1904.08189

 

CenterNet: Keypoint Triplets for Object Detection

In object detection, keypoint-based approaches often suffer a large number of incorrect object bounding boxes, arguably due to the lack of an additional look into the cropped regions. This paper presents an efficient solution which explores the visual patt

arxiv.org

  • 사전 지식
    • CornerNet

2019년에 발표된 CenterNet:Keypoint Triplets for Object Detection 논문을 읽고 정리하는 포스팅입니다.

 

우선, CenterNet을 알기 위해서는 object detection에 대해 알아야합니다.

 

 

object detection은 이미지 내에서 원하는 물체가 어디에 있는지 찾는 것을 말합니다.

 

object detection 분야를 연구한 논문은 위에 그림에 정리되어있습니다. object detection은 One-Stage Detector과 Two-Stage Detector로 나눌 수 있습니다.

One-Stage Detector은 Regional ProposalClassification동시에 이루어지는 것으로 비교적 정확도가 낮지만 속도가 빠르다는 특징을 가지고 있으며, Two-Stage Detector은 Regional ProposalClassification 순차적으로 일어나 비교적 느리지만 정확도가 높다는 특징을 가지고 있습니다.

 

제안된 배경

해당 논문은 객체의 전체 정보를 활용하는데에는 상대적으로 제한이 되어있어 바운딩 박스의 경계를 예측하는 데에만 집중이 되어있고, 어느 특징점을 그룹화해야 하는지에 대한 정보가 부족하여 CornerNet의 단점을 개선하기 위해 중심점(Center Point)을 추정하는 것을 제안하게 되었습니다.

 

CenterNet은 [20] H. Law and J. Deng. CornerNet: Detecting objects as paired keypoints(2018) 해당 논문에 발표한 CornetNet을 개선한 것입니다.

 

그러기에 CornerNet을 간단히 알아가보고 넘어가도록 하겠습니다.

 

CornerNet은 키포인트로 왼쪽 상단, 오른쪽 하단 두 모서리를 탐지하여 바운딩 박스를 얻어냅니다. 일반적으로 One-stage Detector은 수많은 앵커박스를 두었는데 이 부분 때문에 2가지 문제점이 발생하게 됩니다. 바로 클래스 불균형 문제를 야기한다는 것과 고려할 하이퍼 파라미터가 많다는 것이 있습니다.

 

 

CornerNet에서는 Detecting Corners라고 Heatmap과 Offset을 이용합니다.

 

Heatmap은 특징점 유무를 식별하는 용도로 왼쪽 상단, 오른쪽 하단 두 개의 Heatmap 존재합니다.  C(클래스)개의 채널을 두는데 배경을 제외하여 각 채널은 0과 1로 corner 위치만을 표시하게 됩니다. 이때 위치 정보와 점수를 갖고 있으며 정답과 근접한 예측값에는 낮은 loss를 부여하는 방식입니다.

Offset은 원본 입력 이미지의 크기에 맞게 조정하는 것으로 여러 conv layer를 거치면 이미지 크기가 줄어들게되며 예측하는 바운딩 박스 또한 작아지게 됩니다.

 

 

CornerNet은 Corner Pooling을 이용합니다. 

 

특징점을 식별하기 위해 사용되며,  heatmap, embedding, offset을 예측하게 됩니다. 여기서  embedding은 두 개의 키포인트를 하나의 그룹으로 만들어주기 위해서 쓰이며. 거리가 짧은 두 특징점이 하나로 묶이게 됩니다(같은 클래스인가 파악). max pooling  연산 기법 사용하는데 위에 그림 중 오른쪽 하단 그림(예시. 왼쪽 상단 키포인트)을 참고하시면 됩니다.

 

CornerNet을 알아보았으니 CenterNet에 대해 알아보도록 하겠습니다.

 

CornerNet은 키포인트에 대한 그룹핑 과정이 있어 속도가 느리다는 것과 많은 수의 잘못된 바운딩 박스를 예측하게 되어 한 쌍의 포인트만을 활용하기 때문에 잘못된 포인트끼리 그룹핑될 확률이 높다는 단점이 있습니다.

 

 

이를 해결 한 것이 CenterNet이고 "예측된 바운딩 박스가 ground-truth box와 높은 iou를 지닌다면 중심점은 ground-trurth와 동일한 클래스를 가질 확률이 높을 것이다"라는 것을 제안하였습니다.

 

참고로 CenterNet에는 두 개의 논문이 있었습니다.

 

1. CenterNet: Keypoint Triplets for Object Detection (Kaiwen Duan et al.)

2. Objects as Points (Xingyi Zhou et al.)

 

위의 2개의 논문이 있는데 성능 평가 관점이 다르다는 차이점이 있습니다.

 

아래 그림은 CenterNet 아키텍처를 나타낸 것입니다. 컨볼루션 백본 네트워크로 Cascade Corner Pooling*과 Center Pooling을 적용하여 각각 두 개의 코너 히트맵과 센터 키포인트 히트맵을 출력하게 됩니다. CornerNet과 유사하게, 감지된 한 쌍의 코너와 유사한 임베딩이경계 상자를 감지하는 데 사용하고 그런 다음 탐지된 중앙 키포인트를 사용하여 최종 경계 상자를 결정됩니다.

 

*Cascade Corner Pooling

코너 풀링을 기반으로 하는 객체 감지를 위한 풀링 레이어

코너 최대값을 찾고 내부를 탐색하여 내부 최대값을 찾은 후 마지막으로 두 개의 최대값을 더함

→ 코너 정보와 객체의 시각적 패턴을 모두 얻기 위함

 

 

CenterNet은 다음과 같은 순서로 동작합니다

 

  1. score가 높은k개의 중심점을 선택합니다.
  2. 중심점을 입력 이미지에 mapping 하기 위해 offset을 사용합니다.
  3. 두 쌍의 특징점으로 생성한 바운딩 박스의 중심 구역을 지정합니다.
  4. 지정된 중심 구역에 중심점이 존재하는지 확인합니다. 
  5. 만약, 중심점이 ground-truth와 class가 동일하고 중심 구역에 존재한다면 해당 바운딩 박스를 보존합니다. 중심 구역에 중심점에 존재하지 않거나, class가 동일하지 않다면 해당 바운딩 박스는 삭제합니다.
  6. 바운딩 박스의 score은 세 특징점의 score의 평균으로 대체됩니다

 

CenterNet의 Pooling 방식은 Center Pooling과 Cascade Coner Pooling 방식을 이용합니다.

Center Pooling은 다양한 시각적 패턴을 활용하여 중심 키포인트 찾는 것으로 feature map에 존재하는 중심점을 찾기 위해 수평, 수직 방향의 max 값을 탐색합니다.

Cascade Coner Pooling은 CornerNet에서 사용한 Corner Pooling  개선한 것으로 경계 정보와 객체의 시각적 패턴을 모두 얻을 수 있다는 장점이 있습니다.

반응형

댓글