논문 읽기/Object Detection

[논문 읽기] CircleNet(2020), Anchor-free Detection with Circle Representation

AI 꿈나무 2021. 6. 3. 12:47
반응형

 안녕하세요! 오늘 읽은 논문은 CircleNet: Anchor-free Detection with Circle Representation 입니다. 거의 이주 만에 논문을 읽어보는 것 같아요..ㅎㅎ 요즘 수학이 부족하다는 것을 많이 느껴서 수학만 공부하고 있네요ㅎㅎ

 

 이 논문에 관심을 갖게 된 계기는 앵커 박스를 사용하지 않는 Anchor-free detection 이기 때문입니다. anchor box based detection 모델을 구현해보면서, anchor box를 설계하는 것이 너무 복잡했어요. free anchor의 필요성을 느끼고 있던 와중에 이 논문을 알게되어서 읽게 되었습니다ㅎㅎ

 

 CircleNet은 신장에 존재하는 사구체를 검출하기 위한 모델이며, 기존의 사각형의 바운딩박스가 아닌 원 모양의 바운딩 박스를 사용합니다. 원 모양의 바운딩 박스를 사용함으로써 (1) 객체 검출의 degree of freedom을 감소시킬 수 있습니다. 예를 들어, 바운딩박스 높이와 너비 2로 표현되는 객체가 원 모양을 사용하면 반지름 1로 표현할 수 있습니다. (2) rotation에 invariant 합니다. 회전에 불변하므로 IoU가 더 높게 나오겠네요. (3) 구 형태의 객체에 최적화 되어있습니다.

 

 즉, CircleNet은 원 모양의 객체를 검출하기 위해 고안되었습니다.

 

anchor-based model 문제점

 기존의 anchor box 모델은 모델을 복잡하게 하고 유연성을 감소시켰습니다. 앵커 박스를 사전에 설계해야하고, 앵커박스에 ground-truth를 할당해야 하고, 할게 너무 많았으며 사전에 설정한 종횡비와 실제 객체의 종횡비가 맞지 않은 경우에 IoU가 낮아질 수 밖에 없습니다. 따라서 앵커 박스는 미리 조정되고 계속해서 개선을 해야 했었습니다.

 

circle represnetation 장점

 circle representation은 바운딩 박스를 원 모양으로 사용하는 방법입니다. 또한 anchor 박스를 사용하지 않아 anchor-free 입니다. 원 모양의 바운딩 박스를 사용하면 원 모양의 객체를 검출하는데 이점이 있고, 중심점과 반지름만 있으면 바운딩 박스를 표현할 수 있습니다. 예를 들어, 반지름 1인 원모양으로 검출되는 객체는 사각형의 바운딩박스로 높이와 너비의 정보까지 필요합니다. 원 모양으로 객체를 검출하면 객체의 rotation에 invariance 합니다. 또한 해당 논문에서는 circle representation을 평가하기 위한 cIoU(circle intersection over union)을 제공합니다.

 

CircleNet

 어떻게 바운딩박스를 원모양으로 검출하는지 살펴보겠습니다.

 

 

 CircleNet의 모델 구조 입니다. 다른 anchor free detection model인 CenterNet과 유사한 모습을 보이고 있습니다.

 

 feature extraction이 생성한 feature map에서 Heat Map Head, Local Offset Head, Circle Radius Head 3가지 head로 heat map을 생성합니다.

 

(1) Heat Map Head

 Heat Map Head는 입력 이미지에서 R만큼 down sample된 feture map에서 객체의 존재 유무와 class 정보를 담고 있습니다.

 

 

 C는 class를 의미하며, 객체가 존재하면 1, 존재하지 않으면 0 정보를 갖습니다.

 

  ground-truth의 중심 정보는 다음과 같이 설계합니다. 2D gaussian kernel 형태로 설계되어 중심점 주변의 픽셀에도 어느 정도 값을 갖게 됩니다. 중심점 위치에만 값을 갖는 것이 아니라 정규 분포로 주변 픽셀도 값을 갖게 되어 초기 학습에 이점이 있습니다.

 

 

 px와 py는 down sample된 target 중심 점을 의미합니다.

 

 중심좌표 존재 유무에 대한 손실 함수는 focal loss를 사용합니다.

 

 

(2) Local Offset Head

 예측한 중심점과 ground-truth 중심점 사이에 offset을 계산합니다. 손실함수 L_off는 l1 norm loss를 사용합니다.

 

(3) Circle Radius Head

 heat map head와 local offset head로 객체의 중심점 좌표를 예측합니다. 또한 중심점 offset 정보는 L_off 로 구할 수 있습니다. circle radius head는 바운딩박스의 반지름을 예측합니다.

 

 

 3가지 head가 예측한 값들로 원 모양의 바운딩 박스를 설계할 수 있습니다. p는 중심점 좌표이며 r은 반지름 입니다.

 

 반지름 손실 함수는 다음과 같이 설계합니다. 

 

 

 전체 손실함수는 다음과 같습니다.

 

 

Circle IoU

 기존 object detection에서 사용하는 IoU는 사각형 형태의 바운딩 박스를 평가하기 위한 지표로 사용했습니다. CircleNet은 원 모양의 바운딩박스를 예측하므로 그에 맞게 새로운 평가지표를 고안해야 합니다.

 

 

 

 A와 B는 각각 원을 나타냅니다.

 

 

 A와 B의 중심점은 다음과 같이 계산됩니다. 예측된 x,y 정보와 offset 정보입니다. 만약 ground-truth 이라면 offset 정보는 0이 됩니다.

 

 두 원의 거리를 계산하고, Lx, Ly를 계산하여 cIoU를 계산합니다.

 

 

 신장의 사구체는 원모양이므로 원 모양의 바운딩 박스를 예측하고 CIoU로 평가하는 게 바람직합니다.

Performance

 

 

 CircleNet이 rotation에 invariant 하다는 실험 결과입니다. CircleNet은 CenterNet보다 입력 이미지가 rotation 된 경우에 바운딩 박스의 confidence의 일치성이 더 높습니다.

 


참고자료

[1] https://arxiv.org/pdf/2006.02474.pdf

반응형