[CVPR2022 Oral]QueryDet: Cascaded Sparse Query for Accelerating High-Resolution Small Object Detection

오랜만에 디텍션 논문을 들고 왔습니다. 해당 논문은 CVPR 2022 Oral로 선정된 논문으로 작은 물체를 잘 검출하기 위한 방법을 제안합니다. 작은 물체를 검출하기 위한 접근 방법으로 기존 딥러닝 기반의 물체 검출이 점진적으로 feature map 크기에 따라 크고 작은 물체를 검출한다는 점에서 영감을 얻어 cascade 한 방법을 제안합니다. 또한, cascade하게 작은 물체에만 집중하도록 하여 sparse한 feature map에서 예측을 하기 때문에 계산 효율성을 가져옵니다. 즉, 성능과 inference time도 고려한 방법론인거죠.

Intro

물체 검출은 최근 몇년간 연구가들의 큰 관심을 받아 성능과 추론 속도에 있어 엄청난 성능 개선을 이뤄왔습니다. 그러나 작은 물체와 보편적인 크기의 물체 검출 성능에서는 큰 차이가 있죠. SOTA 모델 중 하나인 RetinaNet을 예를 들어 설명하자면 COCO test-dev set 기준, 44.1/51.2(AP_m, AP_l) 성능을 달성한 것에 비해 small object에서는 24.1(AP_s)를 달성한 결과를 보여줍니다. 저자는 이런 문제들을 세 가지 요인에 인해 발생한다고 주장합니다.

  1. 백본인 CNN 모델 특성상, 피쳐 맵이 다운 샘플링 되면서 작은 물체에 집중하기 어려워진다.
  2. low-resolution feature에서의 receptive filed에서의 물체 크기와 실제 물체 크기와 일치하지 않을 수 있다.
    + 쉽게 말하자면 피쳐맵의 표현 가능한 그리드(or bins)가 작아지면서 스케일 표현성이 떨어져 예측해야할 크기와 달라진다는 이야기 입니다.
  3. 큰 물체에 비해 작은 물체에서는 바운딩 박스에 대한 small perturbation으로 인해 IoU 메트릭에 큰 교란을 일으킬 수 있다.
    + 쉽게 풀자면, IoU에서는 작은 물체의 바운딩 박스는 스케일이 작기 때문에 큰 크기의 바운딩 박스의 오차 대비 큰 오차로 적용됩니다. 이러한 이유로 최근 연구에선 작은 물체에 맞는 새로운 메트릭에 대해 제안하는 동향을 보이는 추세입니다.

위와 같은 문제로 최근 작은 물체을 위한 검출 알고리즘들은 high-resolution의 영상을 사용하거나, down-sampling의 비율을 줄여 feature map 크기를 유지하는 방법을 사용하기도 합니다. 그러나 단순히 resolution만을 키우는 방법은 상당한 계산 비용이 발생한다는 문제가 있습니다. 여러 연구들에서는 이러한 문제를 해결하기위해 다중 스케일의 피쳐맵을 재사용하는 Feature Pyramid를 이용합니다. 모델의 축적된 정보가 high-level feature에서도 재활용되기 때문에 high-resolution을 사용하는 모델 대비 높은 효율성을 보여줍니다. 하지만 여전히 작은 물체를 감지하기 위해 high-level feature를 사용할 경우, 높은 계산량이 든다는 문제가 있습니다. 예를 들어 RetinaNet의 피라미드 레벨 2에서의 feature를 detection head로써 추가할 경우, FLOP 및 메모리 사용량이 300% 증가합니다. 또한, 13.6FPS에서 4.85 FPS로 추론 속도가 떨어지는 현상을 보여줍니다. (fig 2 참고)

저자는 이전 방법론을 보완하여 작은 물체에서의 성능을 향상 시키는 방법 QueryDet을 제안합니다. QueryDet은 두 부분에서 모티브를 얻었습니다. 1) low-level feature에서의 계산은 높은 중복성을 띈다. 실제로 작은 물체의 공간적 분포는 매우 희소하기에 high-resolution feature map(=~low-level feature)에서의 많은 양의 계산이 낭비됩니다. 2) Feature Pyramid는 고도화된 구조를 가지고 있습니다. 즉, high-level feature에서도 작은 물체에 대한 cue를 가지고 있기에 정확한 감지는 힘들어도 높은 신뢰도로 작은 물체의 존재와 대략적인 위치 정보를 가지고 있습니다.

저자는 두 부분에서 아이디어를 착안하여 Fig 1과 같은 구조를 가진 QueryDet ~ Cascade Sparse Query(CSQ)를 제안합니다. low-resolution feature map에서 작은 객체(query)의 대략적인 위치를 재귀적으로 예측하고 이를 사용하여 high-resolution feature map에서 효율적인 연산을 할 수 있도록 유도합니다. 또한, spares convolution을 사용하여 탐지 정확도를 유지하면서 계산량을 줄일 수 있도록 합니다.

QueryDet은 COCO와 VisDrone에서 성능 평가를 진행합니다. VisDrone은 드론에서 촬영된 데이터 셋으로 많은 양의 작은 물체가 포함되어 있어 작은 물체 검출을 위해 자주 활용되는 방법론입니다. 해당 모델은 두 데이터 셋에서 높은 성능과 의미있는 인퍼런스 속도를 보이며, 특히 작은 물체에서 높은 성능을 보여줍니다.

Method

+ QueryDet은 1 스테이지, 2 스테이지 구분 없이 적용 가능하나, 본 논문에서는 RetinaNet을 기반으로 설명을 진행합니다.

Accelerating Inference by Sparse Query

현대의 FPN 기반의 검출기들은 작은 물체는 high-resolution low-level feature map에서 검출되는 경향이 있습니다. 허나 해당 피쳐 맵에서의 작은 물체는 희소한 공간 분포를 가지고 있기 때문에 계산 효율성이 떨어진다는 문제점이 있습니다. 저자는 이 점에서 모티브를 얻어 coarse-to-fine한 접근 방법을 제안합니다. 즉, low-level(coarse) feature에서 대략적인 위치를 예측한 다음 이에 대한 정보를 토대로 high-level(fine) feature에서 예측된 정보를 기반으로 미세한 추정을 진행합니다. 전반적인 프로세스는 Fig 3에서 볼 수 있습니다.
+ 저자는 대략적인 위치를 query key, 고해상도의 피쳐를 query value로 보고 예측하기 때문에 QueryDet라고 부른다고 합니다.

자, 그럼 어떻게 구성되어 있는지 자세히 설명하도록 하겠습니다.

먼저, 작은 개체의 대략적인 위치 혹은 구분을 짓기 위한 용도로 분류 및 회귀(바운딩 박스) 헤드와 평행한 쿼리 헤드를 추가합니다. fig 3의 오른쪽 하단 small object query가 이에 해당 합니다. query head는 input feature map P_l를 입력으로 받아 그리드 (i, j)에 작은 물체가 존재할 확률을 나타내는 heat map V_l 을 출력합니다. 작은 객체는 사전 정의된 피라미드 레벨 l에 따른 스케일 s_l 보다 작은 객체로 정의합니다. 각 객체들은 center location (x_o, y_o)와 거리 값을 계산하여 s_l 보다 작은 경우에는 1, 큰 경우에는 0로 인코딩 됩니다. Query head는 학습 시, Focal loss에 의해 학습이 진행됩니다. 이에 대한 GT는 query head와 동일한 메카니즘으로 계산된 정보를 사용합니다. 추론 시, predicted score가 임계값 \omega 보다 큰 경우에만 선택되어집니다.

그럼, 해당 인코딩 정보는 P_{l-1}의 해상도에 맞게 전달되기 위해 아래와 같은 수식으로 four neast neighbors를 예측합니다.

각 객체에 대해 key position을 계산한 \{k_{l-1}\} 를 다음 레벨의 input feature map과 요소곱을 통해 작은 물체에 대한 정보만 남도록 query value feature map을 생성합니다. 그런 다음 계산 효율성을 위해 4 개의 sparse convolution 연산을 통해 레이어 l-1에 대한 결과를 계산합니다. 또한, 저자는 추론 속도를 최대화 하기 위해 fig 1과 같이 cascade 한 구조로 연산 순서를 지정합니다. 저자는 해당 패러다임을 Cascade Sparse Query (CSQ)라고 명명합니다.

++ 간단하게 설명하면, 일정 스케일 이하의 작은 객체에 대해서만 학습하는 헤드를 따로둔다는 이야기 입니다. 해당 헤드의 예측 값은 이진 맵으로 구성되며, 예측 시 이전 레벨에서 예측한 이진 맵(query map)과 해당 레벨의 피쳐 맵간의 요소곱으로 sparse한 feature map을 예측하는 구조입니다.

Training

QueryDet에서 classification과 regression head는 RetinaNet(혹은 베이스 방법론)의 학습 방법을 따릅니다. 단, query head에서는 인코딩된 query map을 FocalLoss에 적용합니다. GT 박스는 아래와 같은 수식으로 생성됩니다.

그리고 각 레벨에서의 loss는 다음과 같이 설계됩니다.

U, R, V는 각각 classification, regressor, query score에 대한 output 값에 해당 합니다. 전체 loss는 아래의 수식으로 정의됩니다.

수식 5에서 해상도가 다른 피쳐맵으로 인해 비율을 조정하기 위해 레벨에 따라 다른 가중치를 부여합니다. 저레벨에서의 샘플과 다른 레벨에서의 샘플 간의 균형이 맞지 않기 때문에 추가적인 가중치 조정을 합니다.

Experiments

가장 먼저 RetinaNet에서의 QueryDet을 COCO에서 적용한 실험 결과 입니다. 여기서 CSQ가 빠진 QueryDet은 베이스 방법론에 query head만 추가된 방법에 해당합니다. 또한, RetinaNet과 다르게 저레벨 피쳐인 P_2부터 값을 추정합니다. 실험 결과, CSQ가 없는 경우에 RetinaNet 대비 높아진 성능을 보여줍니다. 하지만 추론 속도가 베이스 방법보다 3배 이상 하락한 것을 확인 할 수 있는 반면에 CSQ를 추가함으로써, 성능 향상과 더불어 추론 속도가 베이스 방법보다 빨라진 것을 확인 할 수 있습니다. 특히, AP_s에서 높은 성능 향상을 보여주고 있습니다.

다음으론 VisDrone에서의 실험 결과 입니다. Table 1과 동일한 경향을 보여줌으로써 해당 방법론의 효과를 보여줍니다.

Ablation study

해당 실험에서 인상 깊게 본 부분은 high-resolution feature (HR)과 re-balance loss (RB)만 사용한 케이스 입니다. 단순하게 고해상도의 값만 이용한 경우에 성능이 하락하는 모습을 보여주지만, loss만 균형있게 배치하는 것만으로도 오히려 성능이 개선된 결과를 보여줍니다. 이어서 Query Head (QH), CSQ를 추가하면서 성능이 향상되는 결과를 보여줍니다.

저자는 입력 영상 사이즈와 query threshold \omega 에서의 속도와 성능의 trade-off 관계를 보기 위한 실험을 진행하였습니다. 흥미로운 점은 QueryDet에서 고해상도의 영상을 사용할 수 록 query threshold의 lower bound가 올라가는 점에 있습니다.
+ \omega 는 speed와 성능은 임계값이 커질수록 속도가 향상됩니다. 계산에 이용될 객체 수가 줄어들기 때문입니다.
+ query threshold는 추론시, 작은 객체에 대한 스코어에 대한 임계값입니다.

해당 실험은 어느 레벨을 시작 지점으로 지정해야 효율적인 결과를 보여주는지에 대한 실험입니다. 해당 실험에서 너무 높은 레벨에서 진행할 경우, 너무 작은 해상도를 가진 피쳐맵에서 예측이 진행되기 때문에 작은 물체에 대한 대략적인 위치 정보가 잘나오지 않는 것을 성능으로 확인 할 수 있습니다.

추가로 MobileNet V2, Anchor-free 방법론인 FCOS, 2 스테이지 기반 방법론인 Faster-RCNN에서 적용한 실험 결과를 리포팅 했으며, 모든 방법론에서 동일한 경향성을 가진 성능을 보이고 있습니다.

fig 5는 CSQ의 query heatmap의 시각화 결과입니다. 해당 그림을 통해 전반적으로 작은 물체의 coarse한 위치를 성공적으로 찾는 것을 볼 수 있습니다.


해당 방법론은 아주 간단한 방법으로 구현이 가능하며, 솔직히 이렇게 간단한 방법으로 CVPR oral을 받은 건 신기하긴 합니다. 하지만 방법론이 아주 직관적인 부분에서 문제를 해결한 부분에서 인정을 받았다고 생각합니다. 또한, 다양한 검출 방법론에 적용했을 때, 모든 방법론에서 동일한 경향을 보인 건 대단한 것 같습니다.

이후, 한전에서 작은 물체에 대한 성능 개선을 보여야 하기 때문에 해당 방법론을 멀티스펙트럴에 추가하여 실험을 진행해볼 예정입니다.

Author: 김 태주

1 thought on “[CVPR2022 Oral]QueryDet: Cascaded Sparse Query for Accelerating High-Resolution Small Object Detection

  1. 본문에서 언급하신 “low-level(coarse) feature에서 대략적인 위치를 예측한 다음 이에 대한 정보를 토대로 high-level(fine) feature에서 예측된 정보를 기반으로 미세한 추정을 진행” 라는게 신기하네요.

    왜냐면, 제가 생각하기엔 high-level feature 가 좀 더 사람이 보기엔 모호하므로 대략적인 위치를 파악하는데 활용되고 low level feature로 fine-detail을 잡아야 할거 같은데 말이죠. 컴퓨터가 느끼기엔 반대라고 생각할수밖에 없을까요?

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다