728x90
반응형
1. INTRO
- 기존의 detection의 경우, proposal, anchor, window와 같은 기법들을 기반으로 결과값을 찾아냈다면, 이 논문은 set을 직접적으로(일대일)로 예측하는 접근법을 제안함
2. 사전 지식
1. Hungarian Algorithm
- 두 집합 사이의 일대일 대응 시 가장 비용이 적게 드는 bipartite matching(이분 매칭)을 찾는 알고리즘
- Hungarian algorithm은 어떠한 집합 I와 matching 대상인 집합 J가 있으며, i∈I를 j∈J에 matching하는데 드는 비용을 c(i,j)라고 할 때, σ:I→J 로의 일대일 대응 중에서 가장 적은 cost가 드는 matching에 대한 permutation σ 을 찾는 것
- 행렬의 행은 predicted bounding box를, 열은 ground truth를 의미함
- 첫 번째 사진의 경우, 일자 형태로 매칭되어있을 때의 cost는 32
- 두 번째 사진의 경우, permutation이 [3,4,1,5,2]인 경우, cost가 12로 상대적으로 낮음➡️ 즉, 이처럼 Hungarian Algorithm은 cost에 대한 행렬을 입력 받아서 cost가 최소인 permutation을 출력시킴
2. Bounding Box Loss
- 기존의 방법들은 anchor를 기반으로 bounding box prediction을 수행하기 때문에 예측하는 bounding box의 범위가 크게 벗어나지 않았음➡️ 절대적인 거리를 측정하는 l1 loss만을 사용할 경우, 상대적인 error는 비슷하지만 크기가 큰 box와 작은 box에 대하여 서로 다른 범위의 loss를 가지게 될 것임 (큰 box는 큰 loss를, 작은 box는 작은 loss를).
- 반면, DETR은 어떠한 initial guess가 없이 bounding box를 예측하기 때문에 예측하는 값의 범주가 상대적으로 큼➡️ 이러한 문제를 해결하기 위해 본 논문에서는 l1 loss와 generalized IoU(GIoU) loss를 함께 사용함
- generalized IoU(GIoU) loss 는 두 box 사이의 IoU(Intersection over Union) 값을 활용한 loss로 scale-invariant 하다는 특징이 존재.
➡️ 전체 Bounding Box Loss 식 (람다 iou, 람다 L1의 경우, 두 term 사이를 조정하는 하이퍼 파라미터)
3. Transformer for NLP task vs DETR Transformer
- DETR의 경우 Transformer을 사용함
- Transformer의 self-attention은 모든 입력 sequence의 token 사이의 상호작용(pairwise interaction)을 모델링하기 때문에 set prediction에 적합
➡️ (서로 모든 정보들을 주고받고 해서 겹치지 않게 예측할 수 있도록 하는.. 즉, 일대일으로 대응시키기에 좋다는 의미 같음)
3.1 DETR에서의 Transformer 사용
- encoder에서 이미지 feature map을 입력으로 받음 ↔ 기존 Transformer의 경우 문장에 대한 embedding을 입력받음
- CNN backbone에서 feature map을 추출
- 1x1 convolution layer를 거쳐 차원을 줄임
- spatial dimension을 flatten하여 encoder에 입력
- h,wℎ,가 height, width이며, C가 channel 수, d가 C보다 작은 channel 수라고 할 때 C×h×w×ℎ× 크기의 feature map을 d×hw×ℎ로 변환시킴
- <과정>
- Positional Encoding(2D 차원으로 변경해줌)↔ 기존 Transformer의 경우, 입력 embedding의 순서와 상관 없이 동일한 값을 출력하는 permutation invariant한 성질을 가졌기 때문에 positional encoding을 그냥 더했었음
- DETR의 경우, x, y axis가 있는 2D 크기의 feature map을 입력받기 때문에 기존의 positional encoding을 2D 차원으로 일반화시켜 spatial positional encoding을 수행함
- 입력값의 차원이 d라고 할 때 x, y 차원에 대하여, row-wise, column wise로 2/d 크기로 sine, cosine 함수를 적용
- 이후 channel-wise하게 concat하여 d channel의 spatial positional encoding을 얻은 후 입력값에 더해줌
- <과정>
- Transformer Decoder - Object Queries 입력↔ 기존 Transformer의 경우, decoder에 target embedding 입력
- Object Query는 object query feature과 object query positional embedding으로 구성됨
- object query feature는 decoder에 initial input으로 사용되어, decoder layer를 거치면서 학습됨
- query positional embedding은 decoder layer에서 attention 연산 시 모든 query feature에 더해짐
- query feature는 학습 시작 시 0으로 초기화(zero-initialized)되며, query positional embedding은 학습 가능(learnable)
- Object queries는 길이가 N으로(여기서 N은 실제 객체보다 많이 설정한 값) , decoder에 의해 output embedding으로 변환(transform)되며 이후 FFN을 통해 각각 독립적으로(independently) box coordinate와 class label로 decode됨
- <과정>
- Decoder에서 첫 번째 attention 연산 시 multi-head self-attention 수행↔ 기존 Transformer의 경우, masked multi-head attention 수행
- ➡️ DETR의 경우, 입력 이미지가 동시에 모든 객체의 위치를 예측하기 때문에, masking을 해줄 필요가 없음
- 2개의 output으로 이루어짐 (1. Bounding box head, 2. Class probability head)↔ 기존 Transformer의 경우, Decoder 이후, 하나의 head를 가짐
- ➡️ 이미지 내 객체의 bounding box와 class probability를 예측하기 때문에 각각을 예측하는 두 개의 linear layer를 지님
3. Method
<필수요구사항>
(1) predicted bounding box와 ground truth box 사이의 unique matching을 가능하도록 하는 set prediction loss
(2) 한 번의 forward pass로 object model 사이의 relation을 예측하는 architecture
1. Object detection set prediction loss
- 첫 번째 조건 (1)을 충족하기 위해 loss를 계산하는 과정은 두 단계로 구분됨.
- predicted bounding box와 ground truth box 사이의 unique한 matching을 수행
- matching된 결과를 기반으로 hungarian loss를 연산
1.1 Find optimal matching (최적의 매칭 값을 찾아줌)
- 고정된 크기의 N개의 prediction만을 수행함으로써, 수많은 anchor를 생성하는 과정을 생략 (일대일 대응)
- N의 경우, 이미지 내 존재하는 객체의 수보다 훨씬 더 큰 수로 지정(최대 N개)➡️ 이를 통해 적은 수의 prediction이 생성, ground truth와의 unique matching을 상대적으로 쉽게 수행
- y는 객체에 대한 ground truth set이며 y^은 N개의 prediction. y의 크기도 N개이며, 객체의 수를 제외한 나머지는 ∅ (no object)로 pad 됨.ex) 이미지 내 객체의 수가 3개이면, y에서 97개는 ∅로 pad됨
- 두 개의 set(y와 y^) 에 대하여 bipartite matching을 수행하기 위해, 아래의 cost를 minimize할 수 있는 N의 permutation을 탐색함
- 이때 L(match): ground truth와 matching cost는 class prediction과 predicted bounding box와 ground truth box 사이의 similarity(유사도)를 모두 고려하는 식
1.2 Compute Hungarian loss (최적의 매칭 값을 찾아줌)
- 앞선 과정을 통해 matching된 pair를 기반으로 loss function인 Hungarian loss를 계산함
- loss는 class loss와 box loss로 구성
- class loss는 prediction에 대한 negative log-likelihood를 계산.
- box loss는 Preliminaries에서 언급했듯이 l1 loss와 generalized IoU loss를 결합하여 사용
※ σ^(i)
: 이전 단계에서 구한 optimal assignment. 실제 학습 시 예측하는 객체가 없는 경우인 ci=∅에 대하여 log-probability를 1/10로 down-weight한다고 함
➡️ 왜? : 실제로 객체를 예측하지 않는 negative sample의 수가 많기 때문에 class imbalance를 위해 해당 sample에 대한 영향을 줄이기 위해 down-weight 해줌
2. DETR architecture
<참고/무한한 감사합니다>
https://herbwood.tistory.com/26
728x90
반응형
'Deep Learning > [논문] Paper Review' 카테고리의 다른 글
SMPLify(Keep it SMPL): Automatic Estimation of 3D Human Pose and Shape from a Single Image (0) | 2023.07.31 |
---|---|
SMPL: A Skinned Multi-Person Linear Model (0) | 2023.07.28 |
SRNet: Editing Text in the Wild Review (0) | 2023.07.17 |
Taskonomy: Disentangling Task Transfer Learning (0) | 2023.07.16 |
Noisy Student: Self-training with Noisy Student improves ImageNet classification(2019) (0) | 2023.07.14 |