0. Introduction
앞선 x-review에서 소개했던 DETR은 기존의 OD테스크를 위한 검출기들의 다양한 hand-desiged된 요소들을 제거하여 사람의 사전지식과 하이퍼파라미터 튜닝의 어려움에서 벗어나게 해주었습니다. DETR은 단순한 구조를 갖지만 준수한 성능을 보였고, 딥러닝 관점에서 사람의 사전지식이 가미되지 않고 데이터를 기반으로 최적화 시키는 완전한 end-to-end 검출기 구조를 갖게 되었는데요.
그러나 DETR에는 치명적인 문제가 있었습니다. 그것에 대해서 저자는 총 2가지를 언급하는데요.
첫 번째는, (1) 느린 수렴 속도에 대한 문제, 그리고 (2) 작은 객체에 대한 검출 성능 저하가 그것입니다.
이 두 가지 모두 transformer의 인코더-디코더를 이미지에 바로 적용함에 있어서 발생한 문제였는데요. 느린 수렴 속도 문제는 특징맵 해상도(HxW)에 대해서 각 쿼리마다 HxW개의 attention weight들이 생겨날텐데, 이 attention weight들이 초기에 uniform하게 초기화 된다고 했을 때, 해당 쿼리에 대해서 이미지 전체를 고려한 유의미한 정보에 대한 어텐션을 줄 수 있을 때까지는 굉장히 긴 학습이 필요하다 라는 것 이었습니다.
두 번째로 작은 객체 검출 성능 저하 문제는 기존에 CNN에서 작은 객체를 더 잘 검출하기 위한 연구를 기반으로 설명하는데요. 작은 객체를 검출하기 위해서는 작은 객체에 대한 정보를 최대한 많이 수집하는 것이 중요하고, 그런 관점에서 높은 해상도의 특징맵의 사용이 큰 효과를 가져오게 됩니다. 더 나아가 멀티 스케일 특징맵의 사용이 작은 해상도부터 큰 해상도에서 골고루 좋은 특징을 뽑을 수 있기 때문에 객체 검출 성능에 유리합니다. 저희가 SSD에서 멀티스케일 특징맵을 사용하고 FPN를 통해서 그것들을 종합한 특징을 뽑는 것과 같은 이유입니다.
그러나 작은 객체 검출 관점과 느린 수렴 속도를 해결 하기 위해서는 멀티스케일로의 확장을 하면서도, 어텐션에 참여하는 쿼리와 매칭 되는 키의 수가 적어야 하며, 해상도에 제곱으로 커지는 연산량 또한 고려해야 하는 굉장히 복잡한 상황에 놓이게 됩니다.
이것을 해결하고자 저자는 deformable attention연산과 deformable DERT이라는 트렌스포머 구조를 제안합니다. 아래 Figure 1은 deformable DERT의 전체 아키텍쳐를 보여주고 있습니다.
저자는 deformable convolution 연산이라는 기존의 CNN기반의 방법론에 영감을 얻어서 deformable attention연산을 제안하게 되는데요.
그것에 대해서 간단히 소개드리자면, Deformable convolution은 전통적인 convolution 연산의 한계를 극복하기 위해서 convolution 커널의 sampling 위치를 학습 가능한 오프셋(offset)을 통해 유연하게 조절할 수 있도록 합니다. 따라서, 기존의 고정된 격자 구조의 커널이 아니라, 입력 이미지의 형태에 맞게 커널의 모양을 변형시켜가며 연산을 수행합니다.
이러한 deformable conv연산의 학습 가능한 오프셋들과 특정 갯수를 샘플링해서 그것들만 연산에 활용해서 이미지를 모델링 한다는 컨셉이 자연스럽게 해상도 전체를 사용하는 기존 트렌스포머의 제약에서 벗어나게 해주는데요. 그러나 conv연산 만으로는 DETR의 핵심인 인자들 간의 관계를 모델링 할 수 없게 됩니다. 결론적으로 저자는 deformable conv의 컨셉과 transformer의 관계를 모델링 할 수 있는 능력을 모두 갖춘 deformable attention연산을 제안합니다.
3. Method
3.1. Deformable Attention Module
저자가 최종적으로 제안하는 방식은 다중 스케일 특징맵 간의 관계까지 고려한 multi-scale deformable attention이지만, 먼저 단일 스케일 상에서 deformable attention이 어떻게 작동하는 지 설명한 후에, 멀티 스케일로 확장하는 방식으로 이어나가겠습니다.
앞서 소개한 DETR의 기본적인 트렌스포머 인코더-디코더 구조를 사용함으로서 발생한 문제들인 느린 학습 수렴속도와 작은 객체 검출 성능 저하 문제를 해결하고자 저자들은 deformable attention연산을 수행하는 deformable attention모듈을 제안하는데요.
이에 대해서 자세히 들어가기 전에 다들 잘 아시겠지만 기존 어텐션 연산에 대해서 간단히 소개하자면, CNN 백본에서 얻은 특징맵의 각 픽셀들을 쿼리와 키로 사용하게 됩니다. 즉, 특징맵의 해상도 스케일(HxW)에 해당하는 쿼리와 키를 사용하여 HW^{2}에 해당하는 연산량을 갖게 되죠.
위의 수식에서 N_{q}와 N_{k}는 각각 쿼리의 수와 키의 수에 해당하는 데, 이미지에 적용할 때는 각각 특징 맵의 픽셀 수가 되기 때문에 HW^{2}에 해당하는 연산량을 갖습니다.
이런 해상도의 제곱에 비례하는 연산량이 매우 무겁기 때문에 저자들은 쿼리는 해상도 스케일로 가져가되, 키의 숫자를 줄이는 방식을 선택했는데요. 바로 키를 쿼리가 특징맵 상의 존재하는 위치에 해당하는 reference point(p_{q})를 기준으로 인접한 위치에서 K개를 샘플링하는 방식을 취합니다.
그리고 각 쿼리와 샘플링 된 키 사이의 어텐션 연산을 수행하여 극심한 연산량 문제를 해결하게 됩니다.
위의 수식은 deformable attention 연산의 연산량을 수학적으로 계산한 것에 해당하는 데요. 여기서 N_{q}는 쿼리에 갯수가 됩니다. 이후에 소개드리겠지만, deformable attention연산이 인코더의 Self-Attention(SA)과 디코더의 (Cross-Attention)CA에서 사용되므로 각각의 연산량을 확인해보자면,
인코더는 N_{q}가 해상도 스케일이 되므로 HW가 되어서 아래의 시간복잡도를 갖습니다.
그리고, 디코더는 N_{q}가 객체 쿼리의 수가 되므로 N(N << HW)가 되어서 아래의 시간복잡도를 갖습니다.
인코더의 시간복잡도는 빨간 줄로 하이라이트한 부분인, 해상도에 대해 선형적인 증가를 보이는 것을 확인 할 수 있고, 디코더는 해상도에 대해 무관한 시간복잡도를 보이는 것을 확인 할 수 있습니다. 이런 해상도에 대해 선형적인 연산량을 갖는다는 특징이 높은 해상도의 특징맵과 다중스케일의 특징맵을 사용하는 것을 가능하게 했고, 이를 토대로 작은 객체를 탐지를 위한 모델링이 가능해집니다.
설명이 많이 길어졌는데요. 아래의 Figure 2가 저자가 제안하는 deformable attention module에 해당합니다.
Figure 2를 참조하여 수학적인 요소를 배제하고 설명을 드리자면, CNN 백본을 타고 나온 Input Feature Map(x)의 각 픽셀들을 deformable attention연산의 쿼리로 사용합니다. 이때, reference point p_{q}(주황색 네모) 위치의 특징을 프로젝션 시켜서 쿼리z_{q}로 만들어줍니다. 이 쿼리를 각각 두 개의 Linear layer에 태워서 sampling offsets(\triangle{p_{mqk}})과 attention weight(A_{mqk})를 예측하도록 합니다.
각각에 대해서 설명드리면, 어탠션 연산을 위해서는 키가 필요하게 될 텐데요. 이를 위해, 특징 맵에서 임의의 작은 숫자인 K개의 쿼리를 샘플링합니다. 이때, 어느 위치에 해당하는 특징을 키로 사용할 지 정해야 하는 데요. sampling offsets은 reference point를 기준으로 어느 정도 떨어진 부분의 특징을 키로 사용할 것인지에 대한 예측을 수행하게 됩니다.
그리고 attention weight(A_{mqk}) softmax를 타고 나와서 0~1 사이의 값으로, K개의 샘플링 된 키들에 대해서 어느 것을 더 중요하게 반영할 지에 대한 attention을 예측하게 됩니다.
그림을 보시면 이것을 멀티해드로 가져가게 되고요, reference point와 그것에 오프셋이 반영된 위치인 p_{q}+\triangle{p_{mqk}}의 위치 특징을 특정 차원으로 프로젝션 시켜서 밸류를 뽑게 됩니다.(W^{'}_{m}x(p_{q}+\triangle{p_{mqk}}))
각 해드마다의 벨류와 attention weight(A_{mqk})끼리 aggregate연산을 통해서 가중치가 반영된 특징들을 얻게되는 구조입니다.
앞서 말씀드린 deformable attention연산을 수학적 수식으로 서술하면 아래 식(2)와 같이 나오게 됩니다.
여기서 딱 하나만 집고 가자면, m은 멀티해드에 대한 인덱스이고, k는 샘플링된 키의 인덱스에 해당합니다. 그리고 대괄호([.]) 안에서 attention weight(A_{mqk})와 밸류(W^{'}_{m}x(p_{q}+\triangle{p_{mqk}}))사이의 연산이 진행됩니다. 이때, 어탠션 연산을 할 때, 키에 대해서만 수행하는 것을 알 수 있습니다.(단일 특징맵에서의 어탠션연산)
Multi-scale Deformable Attention Module
이제 앞서 설명드린, 단일 스케일에서 deformable attention 연산을 멀티 스케일 특징맵에서 수행하는 것으로 확장하고자 하는데요.
수학적 수식은 아래와 같습니다.
앞서 수식(2)와 모든 것이 동일하지만, 인풋으로 받는 특징맵이 인덱스 l에 대해서 멀티스케일로 바뀐 것에 해당합니다.
여기서 notation에 \hat{} (hat)이 붙은 것들은 normalized coordinate으로 특징맵에 스케일에 대해서 노멀라이즈 해서 멀티 스케일 특징맵에 대해서 해상도의 영향을 없앤 것에 해당합니다. 그리고, 파이에 해당하는 연산은 노멀라이즈 된 스케일을 원래 특징맵 스케일로 키워주는 연산에 해당합니다.
수식(3)의 대괄호 안을 주목해주시면, l에 대한 summation과 k에 대한 summation을 고려하여 attention weight(A_{mqk})를 구하고, attention연산을 수행하는 것을 알 수 있습니다. 즉, 아래에 첨부한 그림과 같이 L개의 다중 스케일 특징맵의 각 특징 맵마다 K개의 샘플링 된 특징들이 존재할 텐대, 이들을 모두 고려해 쿼리와 LK개의 키 사이의 모델링을 수행합니다.
이를 통해서 다중 스케일 특징과의 관계를 고려한 모델링이 가능해집니다.
Deformable Transformer Encoder & Decoder
인코더는 기존 Transformer인코더에서 attention 모듈을 multi-scale deformable attention 모듈로 변경하여 적용합니다.
디코더는 기존 Transformer디코더에서 self-attention(SA)모듈과 cross-attention(CA)모듈 중, cross-attention 모듈을 multi-scale deformable attention 모듈로 변경하게 됩니다.
그 이유는 디코더의 SA은 위 그림의 object query들 간의 어텐션에 해당하는 데, 객체 쿼리의 갯수가 해상도보다 굉장히 작은 값이어서 객체 쿼리의 갯수의 제곱의 연산량은 무시할 만 하다고 하내요.
반면에 객체 쿼리를 쿼리로 하고, 다중 스케일 특징맵의 특징들을 키로 하는 CA연산에 대해서는 그 연산량을 줄이기 위해서 앞고 동일하게 키를 샘플링 하는 방식으로 사용하고자 multi-scale deformable attention 모듈로 변경했다고 합니다.
Bounding Box Prediction In Deformable DETR
저자들이 제안한 deformable attention 연산은 쿼리와 해당 쿼리의 특징맵 상의 위치에 해당하는 reference point를 기준으로 그 주변의 K개의 픽셀을 샘플링하여 그들 간의 관계를 모델링 하는 데요.
따라서, reference point를 기준으로의 거리 기반으로 인접한 특징 추출이라는 deformable attention 모듈의 특징 추출 기저를 그대로 이용하기 위해서, 바운딩 박스를 예측하는 detection head를 reference point를 기준으로 한 예측 박스의 상대적인 오프셋을 예측하도록 설계하였다고 합니다.
이런 부분에서 최적화에 대한 어려움을 조금 줄일 수 있다고 합니다.
위의 수식은 특징맵에서의 x좌표와 y좌표로 reference point를 표현 한 것입니다. 이때 notation에 \hat{} (hat)이 붙은 것들은 normalized coordinate으로 특징맵에 스케일에 대해서 노멀라이즈 해서 멀티 스케일 특징맵에 대해서 해상도의 영향을 없앤 것에 해당합니다.
reference point가 위처럼 주어지게 된다면, 예측 바운딩 박스는 아래와 같은 수식으로 만들어지게 됩니다.
여기서 \sigma와 \sigma^{-1}는 각각 sigmoid 함수와 sigmoid 함수의 역함수를 의미하는 데요. sigmoid함수가 사용되는 이유는 예측 바운딩 박스를 0~1의 스케일을 갖는 normalized coordinate으로 출력하기 위함입니다.
위의 수식은 예측 박스인 \hat{b}_{q} = {cx, cy, w, h}를 구하는 수식인데요. 그 의미를 간단히 살펴보면, cx와 cy 좌표는 각각의 referece point인 초기 예측치에 inverse sigmoid를 취하고 있는 것을 볼 수 있습니다. 이것으로 normalized coordinate으로 주어진 초기 예측치를 해당 특징맵의 스케일로 키워주는 과정을 제일 먼저 진행해줍니다.
그리고 cx, cy, w, h에 해당하는 각 좌표에 대한 모델의 예측치 인 b_{qx}, b_{qy}, b_{qw}, b_{qh} (x, y 좌표에는 초기 예측치를 더해줍니다!)에 sigmoid함수를 통과시켜 normalize 하여 0~1사이의 출력이 나오도록 조정해줍니다.
Iterative Bounding Box Refinement
저자들은 optical flow 예측 테스크에서 사용된 iterative refinement라는 방법론에 영감을 받은 Iterative Bounding Box Refinement를 제안하는데요.
해당 방법론을 간단히 설명드리자면, 여러 겹으로 구성된 디코더에서 각 디코더 레이어마다 이전 디코더 레이어의 예측을 개선하는 방향으로 예측을 진행하여서, 레이어를 거듭할 수록 그 예측이 개선되게하는 방법입니다.
Two-Stage Deformable DETR
기존의 DETR에서는 디코더에서 예측을 생성하기 위한 object 쿼리로 학습가능한 positional embedding을 사용하였는데요. 이것은 현재 예측을 진행해야 할 이미지와 무관한 정보를 object 쿼리로 사용한 것에 해당합니다. 이런 부분을 개선하고자 저자들은 two-stage 검출기에서 영감을 얻은 two-stage deformable DETR을 추가적으로 만들게 됩니다.
단순히 region proposal network(RPN)로 개량한 DETR을 추가적으로 사용해준 것 인데요. 영역 제안 단계에서는 더 다양한 영역을 제공 받고자 high recall proposal을 형성하는 것이 중요한데요. 그러기 위해서는 multi-scale 특징맵의 모든 픽셀들을 object 쿼리로 사용해야 합니다. 그러나 이런 방식은 디코더 단에서 object 쿼리들 간의 self-attention연산을 수행할 때, 너무나 큰 연산량과 메모리 소비를 야기하는 문제점이 발생하게 됩니다. 이것을 해결하고자, 저자들은 영역 제안을 위한 DETR의 디코더를 제거하고 인코더만 사용하는 deformable DETR을 RPN로 사용합니다. 그렇게 함으로서, 인코더 단에서 모든 multi-scale 특징맵의 픽셀들을 object 쿼리로 받게 되고 즉각적으로 쿼리에 대한 bbox예측을 수행한 후, score가 높은 top K개에 대한 박스들을 제안된 영역으로 제공하게 됩니다.
이 제안된 영역을 object 쿼리로 사용해서 예측을 진행하여 추가적인 성능향상을 가져올 수 있게 됩니다.
5. Experiments
먼저 실험에 사용한 데이터셋을 소개드리자면, COCO2017 데이터셋이 되겠습니다. 모든 모델은 train set으로 학습이 되고, validation set과 test-dev set으로 평가되었다고 합니다.
실험에 사용된 deformable DETR 모델은 기존의 DETR과 비교를 위해서, 이미지넷으로 사전학습된 ResNet-50을 백본을 사용하였습니다. 또한 당연히 multi-scale 특징맵을 생성하기 위해서 특징피라미드 네크워크(FPN)구조를 사용하지 않았음을 강조하고 있습니다. 또한 deformable attention을 위한 하이퍼파라미터로 멀티 헤드의 갯수(M) = 8, 각 헤드마다 key로 사용하기 위해 샘플링 될 특징의 갯수(K) = 4로 세팅하였다고 합니다.
또한 주요 비교포인트 중 하나의 기존의 DETR과 그의 변종(variants)들과 비교를 위해서 object 쿼리의 갯수를 100개에서 300개로 늘린 것과 Focal Loss의 loss weight를 2로 늘린 것 이외에는 다른 하이퍼파라미터들을 동일하게 유지하였다고 합니다.(추가적으로 DETR 계열에서 table 1에 +를 붙인 모델이 해당 차이점을 동일하게 맞춘 DETR계열의 변종(DETR-DC5)에 해당합니다.)
성능지표로는 AP, AP50, AP75, AP_{S}, AP_{M}, AP_{L}을 사용하고 있습니다.
AP는 Intersection over Union(IoU)을 기준으로 임계값 0.5부터 0.95까지 0.05간격으로 측정하여 평균 낸 것에 해당합니다.
그리고 AP50은 IoU임계값 0.5를 기준으로 측정한 AP에 해당합니다.
AP75는 IoU임계값 0.75를 기준으로 측정한 AP에 해당합니다.
AP_{S}, AP_{M}, AP_{L}은 각각 작은 객체(32×32), 중간 크기 객체(32×32 ~ 96×96), 큰 크기의 객체(96×96이상)에 대한 AP성능을 리포팅 한 것이 되겠습니다.
실험 (1)
Table 1.을 보시면, 가장 위의 두 모델 간의 비교로 Faster R-CNN + FPN(CNN기반)과 DETR(Transformer 기반)에 대한 성능이 먼저 보이실 것 입니다. 이 둘을 비교하자면, 앞서 저자가 제시한 두 가지 문제를 정량적으로 알 수 있는데요. 먼저, 수렴까지 더 많은 시간이 걸린다는 것이 epochs와 training GPU hours를 비교함으로서 확인 할 수 있습니다. 또한 작은 객체에 대한 검출 성능이 떨어진다는 것을 AP_{s}를 비교함으로서 확인 하실 수 있습니다. 마찬가지로 DETR의 Conv layer 5번째를 dilation conv로 바꾼 DETR-DC5도 동일한 문제점이 보이는 것을 확인 할 수 있습니다.
그러나 DETR과 저자가 제안한 Deformable DETR을 비교하면, 10배나 적은 epochs로 DETR을 뛰어넘는 AP성능으로 수렴하였고, AP_{s}를 보면, 작은 객체에 대한 검출 성능 저하문제를 거의 완벽히 해결하여 CNN기반 검출기와 유사한 성능을 기록한 것을 볼 수 있습니다.
그 이유로는 각 쿼리마다 K개의 굉장히 작은 수의 attention weight들만 학습시키면 된다는 점에서 학습속도를 굉장히 단축시켰고, deformable attention연산을 통해서 해상도의 제곱에 가까운 시간 복잡도에서 벗어나, 멀티스케일 특징맵을 사용한 것이 그 역할을 제대로 해낸 것으로 생각됩니다.
우와… 문제를 정의하고 그것에 대한 거의 완벽에 가까운 해결책을 제시한 것을 성능으로 증명하네요. 머.. 멋집니당
거기에 추가적으로 성능향상을 위해 도입한, “iterative bounding box refinement”와 deformable DETR의 인코더가 제안한 영역을 object query로 사용한 “two-stage Deformable DETR”에 대한 성능을 추가적으로 리포팅하고 있습니다.
마지막으로 DETR계열 모델들의 50epoch 학습을 돌린 성능을 정리하여, 동일 에포크시 성능을 보고 하고 있습니다.
아래 Figure 3. 은 학습 시의 deformable DETR의 수렴커브와 DETR-DC5의 수렴커브를 보여주고 있는데요. 수렴 속도에 따른 서로 다른 스케쥴러를 사용했다고 언급이 있습니다만, 그것을 고려해도 deformable DETR의 빠른 수렴속도를 확인할 수 있습니다.
실험(2) – Ablation Study on Deformable Attention
아래의 Table 2는 deformable attention 모듈을 설계를 변경하면서 진행한 ablation study가 되겠습니다.
MS inputs는 인풋을 특징맵을 multi-scale로 사용하는 지 여부에 관한 것입니다. 그리고, MS attention은 multi-scale 특징맵들 간의 deformable attention연산을 적용하여, 다중 스케일 특징 간의 관계를 객체 예측에 고려하였는 지에 관한 것 입니다. 그리고 K는 deformable attention 어텐션 연산에 포함될 키의 샘플링 수에 해당하는 파라미터 입니다.
Table 2는 굵은 선을 기준으로 크게 FPNs계열을 추가적으로 적용한 윗 쪽 파트와, 그렇지 않은 아랫 쪽 파트로 나눌 수 있는데요. 먼저, 아래 파트의 첫 번째와 두 번째를 통해서 단일 특징맵을 인풋으로 받을 때와 다중 스케일 특징맵을 인풋으로 받을 때에 대한 비교를 할 수 있습니다. 해당 실험에서 주목해야 할 부분은 단연 작은 크기에 대한 객체 탐지 성능인 AP_{s}인데요. 단일 특징맵에서 특징을 추출한 경우, 해당 스케일에 대해서만 특징을 추출하여 조금 더 스케일에 대해서 다채로운 특징을 추출하기 어려운데요. 반면 다중스케일 특징맵에서 특징을 추출하게 되면 높은 해상도에서 디테일한 특징 및 공간정보를 모델링 할 수 있고, 낮은 해상도에서 의미론적인 고차원 특징을 모델링 할 수 있었습니다. 또한 높은 해상도를 이용한다는 점에서 작은 객체에 대한 디테일이 살아나, 낮은 해상도에서 검출하기 힘들었던 작은 객체들에 대한 검출 성능이 올라간 것을 확인 할 수 있습니다.(다른 실험들 중 가장 큰 폭으로 AP_{s}가 상승한 것을 볼 수 있습니다.)
앞선 실험이 다중 스케일 특징맵의 사용에 대한 성능향상을 보여주었다면, 그 다음은 아래 파트의 두 번째와 세 번째 실험 결과에 대한 분석인데요. 동일하게 다중 스케일 특징맵을 인풋으로 사용하고 각 스케일 마다 어텐션 연산에 참여하는 key에 대한 샘플 수를 1로 적용한 설계와 4로 적용한 설계에 대한 비교 실험입니다.
단순히 다중 스케일 특징맵의 각 레이어 마다 1개의 특징을 뽑아서 그 관계를 모델링 하는 것보다는, 보다 4배 더 많은 특징을 뽑아서 그 관계를 모델링 하는 것이 유리한 것을 보여줍니다. 그도 그런 것이 deformable 어텐션을 인코더의 multi-head self-attention(MHSA)에 적용하는 것을 예시로 들어보면, 각 스케일의 특징맵의 해상도(HxW)개에 해당하는 쿼리와 동일한 수에 픽셀 중에서 K개를 샘플링한 것을 키로하여 MHSA을 수행할텐대, 당연히 각 쿼리마다 가장 유사도가 높은 한 개의 특징만 가지고, 이미지 전체의 관계를 모델링하는 것보다는 연산이 조금 더 들더라도 더 많은 수의 샘플의 관계를 고려하는 것이 특징 추출 관점에서 유리하다고 생각이 됩니다. K를 4개 이상으로 가져가면 어떻게 되는 지 궁금하긴 한데, 이것에 대한 추가적인 연구는 없었습니다.
그리고 아래 파트의 마지막 실험으로 MS attention을 수행하여 다중 스케일 특징맵들 간의 정보를 교환하여, 서로 다른 스케일을 아우르는 특징을 모델링 해준 경우에 해당합니다. 해당 경우에 43.8에 해당하는 AP성능을 얻음과 동시에 가장 좋은 AP_{s} 성능을 달성하며, CNN기반의 방법론과 유사한 작은 객체 검출 성능을 보여주게 됩니다.
또한 저자들은 multi-scale attention을 적용한 것의 효과가 마치 FPN와 BiFPN과 유사한 역할을 한다는 것을 보여주기 위해서 아래 파트의 마지막 모델과 위 파트의 두 모델을 비교합니다.
FPN과 BiFPN은 다중 스케일 특징맵 간의 특징들을 퓨전하기 위한 구조로 top-down path와 bottem-up path 구조를 사용하는데요. 저자는 비교 대상인 3가지 모델의 성능이 유사하다는 것을 토대로, multi-scale attention을 통한 다중 스케일 특징 간의 어텐션 연산이 FPN과 BiFPN구조에서의 이점을 정확히 사용한다고 말합니다.
실험(3) – Comparison With SoTA Methods
아래의 Table 3은 SoTA 방법론들과의 비교를 보여주고 있습니다. Deformable DETR이란 이름으로 리포팅 된 성능은 ‘Iterative bounding box refinement’로 추론 성능을 높이고, ‘two-stage mechanism’을 적용하여 Deformable DETR의 인코더가 추가적으로 제안한 영역을 object query로 사용한 모델이 되겠습니다.
디폴트로 사용된 ResNet-50 백본에 이어서, ResNet-101, ResNeXt-101, ResNeXt-101+DCN, ResNeXt-101+DCN + TTA까지 적용한 Deformable DETR의 성능을 함께 보고하고 있습니다.
보이시는 바와 같이 동시대 SoTA들과 비슷한 성능을 내고 있는 것을 확인 할 수 있습니다.(EfficientDet-D7이란 방법론에 TTA까지 적용한다면, 해당 모델이 가장 높은 성능을 보일 것 같아 보이긴 하네요.)
현석님, 좋은 리뷰 감사합니다.
설명을 잘 해 주셔서 이해가 잘 됐습니다!
detr과 비교해서 encoder에서의 연산량 측면에서 봤을 때,
해상도(HW)수 만큼의 query에 대해 기존 detr은 해상도(HW) 만큼의 key를, deformable detr은 K개(실험적으로 4?)의 key 만을 사용하는 것으로 이해했는데 맞을까요?
간단한 질문이긴 한데, Multi-scale Deformable Attention Module 설명 부분에서 hat 에 대한 질문이 있습니다. scale 에 대해 normalize 해서 해상도의 영향을 없앴다는 표현이 직관적으로 이해는 되는데, 수식적으로 혹은 코드적으로 어떻게 진행이 되는지 구체적으로 알 수 있을까요?? 그냥 feature map 값을 해상도 scale 값으로 나누는건지,.,.,?
그리고 decoder 의 입력으로 들어가는 object queries 개념은 기존 detr 과 동일한 것이죠? 본 논문에선 혹시 decoder object queries를 몇개로 구성하였나요??
감사합니다.
안녕하세요. 석준님
리뷰 읽어주셔서 감사합니다.
(1) 넵! 이해하신 바가 맞습니다!
(2) 단순히 해당 feature map의 해상도로 나누어줍니다.
(3) 넵, object queries 개념은 기존 detr과 동일합니다. 그리고 300개의 object query를 사용합니다. 다만 본 논문에서 저자가 추가적으로 제안한 것이 2-stage로 작동하는 deformable DETR 모델인데요. 이것의 경우에는 deformable DETR의 인코더 구조로 구성된 RPN를 추가로 두어서, RPN이 제안한 영역을 object query로 사용하기도 합니다.
안녕하세요, 조현석 연구원님. 좋은 리뷰 감사합니다.
막연히 DETR이 탐지 속도가 느리고 small object detection 성능이 부족하다는 것을 알고 있었는데, 덕분에 이를 어떻게 개선했는지 알 수 있었습니다.
Iterative Bounding Box Refinement부분에서 궁금한점이 있는데, ‘여러 겹으로 구성된 디코더에서 각 디코더 레이어마다 이전 디코더 레이어의 예측을 개선하는 방향으로 예측을 진행하여서, 레이어를 거듭할 수록 그 예측이 개선되게하는 방법’이라고 하셨는데, 이전 디코더 레이어의 예측을 개선하는 방향으로 예측을 진행했다는게 무슨 뜻인지 더 풀어서 설명해주실 수 있으실까요?
그리고 이전 DETR 리뷰에 달린 댓글들에 대한 답변 부탁드립니다.
감사합니다.