728x90
반응형
나의 정리
- 논문이 지적한 문제점: a pair of corner를 이용하여 detection을 하면 내부의 visual pattern을 사용하지 않아서 부정확한 BBox를 너무 많이 생성하게 된다.
해결 방안: 한 쌍의 Corner와 Center keypoint 총 세 개의 triplet keypoint를 사용하여 detection하여서 bbox 내부 visual pattern을 사용하여 불필요한 bbox를 제거했다. - 주요 module 2가지
- Cascade corner pooling
- 기존 corner는 객체 밖에 존재할 확률이 높아 local feature가 부족할 수 있고 외곽 정보에만 예민하게 반응 할 수 있다.
- 따라서 boundary와 내부 정보를 모두 사용할 수 있는 module
- boundary maximal 값과 내부 영역의 maximal 값을 더해서 구해준다.
- Center pooling
- feature map에서 수직, 수평 방향에서 maximal 값을 더해준다.
- center keypoint detection 성능을 높여준다.
- Cascade corner pooling
- 위와 같은 module을 기반으로 bbox 내부 정보를 같이 이용하여 object detection을 진행하여 성능을 개선하였다.
Abstract
- Keypoint 기반 방식은 cropped 된 영역의 추가적인 정보의 부족 때문에 부정확한 BBox가 생성된다.
- CenterNet은 customize module 2가지를 사용하여 위의 문제를 해결한다.
- Cascade Corner pooling
- 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의 동작 과정
- Score를 기준으로 높은 Center Keypoint를 K개 뽑는다.
- offset을 이용하여 center keypoint를 input image의 올바른 곳에 위치시킨다.
- 중심 영역을 지정하고 해당 영역에 중심점이 있는지 확인한다.
또, 중심점의 Class가 GT와 동일해야 한다. - 만약 중심 영역에 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 감지를 돕는다.
- feature map에서 수평, 수직 방향으로 max 값을 구해 더해준다.
- 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를 제거하기 위해 사용한다.
- Training
Experiments
- 전체적인 성능표
- Ablation Study
- Central region exploration
- 작은 물체에 대해 성능 개선이 있다. 큰 물체에선 큰 영향이 끼치진 않는다.
- Center pooling
- Center keypoint detection 정확성을 개선한다.
- Cascade corner pooling
- 그냥 Corner pooling에서는 하지 못하는 쌍의 corner를 맞춰준다. 내부와 외곽 정보를 합쳐주기 때문에
- Central region exploration
Conclusion
- 한 쌍의 corner로는 부족한 정보를 추가하기 위해 Triplet keypoint를 이용하여 object detection을 진행한다.
728x90
반응형