conference : CVPR 2021 (Oral)
논문 링크 : https://arxiv.org/pdf/2104.13682.pdf
Introduction
Human-Object Interaction (HOI) detection은 이미지 내에서 <human, object, interaction> set을 예측하는 task이다. 이전 work들은 object detection을 먼저 수행하고, 각각 pair를 만든 후 post-processing step을 거쳐 interaction을 파악하는 간접적인 방식을 사용했다. 특히, sequential HOI detector와 같은 초기 work들은 후처리 과정에서 neural network를 사용했기 때문에, 시간과 계산 비용이 많이 들었다.
이러한 sequential HOI detector의 문제점을 극복하기 위해, post-processing 단계에서 neural network 대신 interaction box나 union box등을 활용하는 parallel HOI detector가 등장했다.
parallel HOI detector는 시간이 많이 걸리는 neural network inference를 heuristic에 기반한 distance 또는 IoU로 대체했다. 하지만 여전히 post-processing step(임계값 설정, 중복 예측 제거 등)은 필요하며, HOI detection에서의 interaction에 대해 high-level dependency를 고려하는 것의 효과는 아직까지 완전히 연구되지 않았다.
본 논문에서는 direct set prediction approach로 한 번에 예측하는, 빠르고 정확한 HOTR(Human-Object interaction TRansformer)을 제안한다.
저자들은 HOI triplet set을 예측하는 transformer 기반의 encoder-decoder 아키텍처를 설계하였으며, 이는 기존 연구들의 두 가지 한계를 극복할 수 있다.
- direct set-level prediction을 통해 hand-craft로 이뤄지던 post-processing stage를 제거하였으며, end-to-end 방식으로 학습된다.
- transformer의 self-attention mechanism은 모델이 human과 object 간의 contextual relationship과 interaction을 활용하도록 함으로써 set-level prediction 프레임워크가 high-level scene understanding에 더 적합하도록 한다.
저자들이 제안하는 contribution을 3가지로 요약하면 다음과 같다.
- HOI detection에서 처음으로 transformer를 기반 set prediction method를 제안한다. HOTR은 interaction간의 상관관계를 modeling할 수 있는 동시에 기존 HOI detector의 post-processing 단계를 제거한다.
- 다양한 training 및 inference 테크닉을 제안한다. 두 개의 병렬 decoder의 output을 연결하기 위한 HO Pointers, 최종 HOI triplet set을 예측하기 위한 recomposition step, end-to-end training을 위한 새로운 loss function
- HOTR은 두 개의 HOI benchmarks에서 SOTA를 달성하였으며, 기존 parallel HOI detectors 보다 inference time을 눈에 띄게 개선했다. (1ms 이하)
Method
본 논문의 goal은 <human, object, interaction> triplet set을 예측하는 동시에 triplet간의 고유한 의미 관계를 end-to-end로 고려하는 것이다. 이러한 goal을 달성하기 위해 HOI detection을 set prediction으로 공식화한다.
Detection as Set Prediction
- Object Detection as Set Prediction
- Object Detection은 DETR에 의해 set prediction problem으로 연구되었다.
- Object detection에는 각 object에 대한 classification과 localization이 포함되므로, DETR의 transformer encoder-decoder 구조는 $N$개의 positional embedding을 object class와 bounding box에 대한 $N$개의 예측 집합으로 변환한다.
- HOI Detection as Set Prediction
- Object Detection과 유사하게, HOI Detection은 set prediction problem으로 정의할 수 있으며, 각 prediction에는 사람 영역, 객체 영역, interaction type의 multi-label classification이 포함된다.
- 한 가지 간단한 확장 방법은 human box, object box, action classification을 예측하기 위해 각 positional embedding을 변환하도록 DETR의 MLP head를 수정하는 것이다.
- 하지만 이렇게 되면, 여러 positional embedding을 통해 동일한 object에 대한 localization을 중복적으로 예측해야 하는 문제가 생긴다.
- 예컨대 어떤 한 사람이 의자에 앉아 컴퓨터 작업을 하는 상황을 생각해보자. 이때, ‘사람이 의자에 앉는 것’ 과 ‘사람이 컴퓨터를 사용하는 것’과 같은 각 상호작용을 별도로 detect하게 된다는 것이다. 이러한 중복은 모델이 동일한 객체에 대해 여러 번의 추정과 분류를 수행하도록 만든다
HOTR architecture
- Transformer Encoder-Decoder architecture
DETR과 유사하게, backbone CNN과 shared encoder가 input image에서 global context를 추출한다. 그 후, set들의 positional embedding(즉, instance query와 interaction query)이 두 개의 parallel decoder에 들어간다.
각 디코더는 각 쿼리를 object detection을 위한 각각의 representation으로 변환한다. (instance query → instance representation, interaction query → interaction representation)
이후 interaction representation에 feed-forward networks(FFN)을 적용하여 Human Pointer, Object Pointer, interaction type을 얻는다.
즉, interaction representation은 bounding box를 직접 regression하는 대신, Human Pointer와 Object Pointer를 사용하여 관련 instance representation을 가리킴으로써 Human과 Object 영역을 localize한다.
bounding box를 직접 regression하는 방식은 하나의 object가 여러 interaction에 관여할 때 문제가 있다. direct regression 방식은 동일한 object의 위치가 interaction에 따라 달라지기 때문이다.
따라서 HOTR은 instance와 interaction representation을 분리하고, HO Pointer를 사용하여 연결함으로써 이 문제를 해결한다.
모든 interaction에 대해 중복적으로 localization을 학습할 필요 없이, 보다 효율적으로 localization을 학습할 수 있기 때문에 shared encoder가 두 개의 개별 encoder보다 HO Pointer를 학습하는데 더욱 효과적이라고 주장한다.
- HO Pointers
HO Pointers (Human Pointer and Object Pointer)는 상호작용에서 Human과 Object instance representation의 인덱스를 포함한다.
interaction decoder가 $K$개의 interaction query를 $K$개의 interaction representation으로 변환한 후, interaction representaion $z_i$를 두 개의 feed-forward networks $FFN_h : \mathbb{R}^d \to \mathbb{R}^d$ , $FFN_o : \mathbb{R}^d \to \mathbb{R}^d$ 를 사용하여 벡터 $v_i^h$와 $v_i^o$를 얻는다. ($v_i^h = FFN_h(z_i)$, $v_i^o = FFN_o(z_i)$)
그다음 마지막으로 유사성 점수가 가장 높은 instance representation의 인덱스인 Human/Object Pointer $\widehat{c}_i^h$ 와 $\widehat{c}_i^o$ 를다음과 같은 수식으로 구한다.
- Recomposition for HOI Set Prediction
지금까지의 과정을 통해 $N$개의 intance representation $\mu$, 그리고 $K$개의 interaction representation $z$와 HO Pointer $\widehat{c}^h$, $\widehat{c}^o$를 얻었다.
$\gamma$개의 interaction class가 주어지면, bounding box regression 및 action classification을 위한 feed-forward network를 $FFN_{box} : \mathbb{R}^d \to \mathbb{R}^4$, $FFN_{act} : \mathbb{R}^d \to \mathbb{R}^{\gamma}$로 재구성한다.
이후 $i$번째 interaction representation $z_i$에 대한 HOI prediction을 다음과 같이 구할 수 있다.
- Complexity & Inference time
이전의 parallel method는 비용이 많이 드는 pair-wise neural network inference를 triplet의 빠른 매칭으로 대체했다.
본 논문은 $K$개의 interaction을 $N$개의 instance와 연결함으로써 object detection 이후 inference time을 더욱 줄여서 시간복잡도 $O(KN)$으로 낮추었다.
interaction 영역에 대한 NMS와 triplet 매칭을 포함한 기존 one-stage HOI detector의 post-processing 단계를 제거함으로써 HOTR은 inference time을 4~8ms까지 줄이면서도 성능을 개선시켰다.
Training HOTR
- Hungarian Matching for HOI Detection
HOTR은 human box, object box, action type binary classification으로 구성된 $K$개의 HOI triplet을 예측한다.
각 prediction은 하나 이상의 interaction이 있는 고유한 <human, object> pair를 캡처한다.
여기서 $K$는 이미지 내에서 interaction하는 일반적인 pair의 수보다 크게 설정된다.
먼저, predicted HOI triplet과 ground truth triplet 간의 optimal 이분 매칭을 정의하는 cost function을 살펴본다음, interaction representation을 위해 이 matching cost를 수정한다.
$Y$를 HOI triplet의 ground truth set, $\widehat{Y}$를 $K$개의 prediction set이라 정의한다.
$K$가 이미지 내의 고유한 interacting pair의 수보다 크므로 $Y$도 $\varnothing$(no interaction)으로 패딩된 크기 $K$의 집합으로 간주한다.
이 두 집합 사이의 bipartite matching을 찾기 위해 cost가 가장 낮은 $K$개의 elements $\sigma$의 permutation을 찾는다. (DETR에서와 동일)
하지만, $y_i$는 <hbox, obox, action>꼴을 가지고, $\widehat{y}_{\sigma(i)}$는 <hidx, oidx, action> 꼴을 가진다.
따라서 matching cost를 계산할 수 있도록 cost function을 수정해야 한다.
$\Phi$ : idx $\to$ box 를 ground truth <hidx, oidx> 에서 <hbox, obox>으로 mapping하는 function으로 정의하자.
위 식의 inverse mapping function $\Phi^{-1}$ : box $\to$ idx를 사용하여 ground truth box로부터 idx를 얻을 수 있다.
이때 H Pointer를 위한 softmax prediction set인 $\widehat{P}^h=||_{i=1}^Ksoftmax((\bar{v}_i^h)^TM)$을 정의한다.
이를 통해 GT box를 GT idx로 변환해서 다음과 같은 수식으로 matching cost를 계산한다.
여기서 $\alpha$와 $\beta$는 index prediction과 action classification cost function의 different scale balance를 조절하는 parameter이다.
action matching cost는 다음과 같다.
- Final Set Prediction Loss for HOTR최종 Loss function은 다음과 같다.
- Defining No-Interaction with HOTR
DETR에서는 softmax output에 대한 no-object class의 확률을 maximize하면 자연스럽게 다른 class의 확률이 억제된다.
하지만 HOI detection에서의 action classification은 각 action이 개별적인 binary classification으로 취급되는 multi-label classification이므로 중복 예측을 억제할 수 있는 명시적인 class가 없기 때문에 동일한 <human, object> pair에 대해서 여러 개의 prediction이 나오게 된다.
따라서 HOTR은 interactiveness를 학습하는 명시적 class (pair간에 interaction이 있으면 1, 그렇지 않으면 0)를 설정하고, interactiveness score가 낮은 redundant pair에 대한 prediction을 억제한다. (No-Interaction class로 정의)
Table3에서 interactiveness class를 설정하는 것이 최종 성능에 기여한다는 것을 보여준다.
Experiments
궁금점
Q : Instance Decoder는 class와 box를 예측하고, Interaction Decoder는 action을 예측하는데 어떻게 다른 역할을 할 수 있는걸까? 구조가 다른가? loss가 다른가?
- A : 서로 다른 loss function을 사용함. Instance decoder는 localization loss를 사용하는 반면, Interaction decoder는 action matching cost를 사용
Q : interaction decoder에서 사람과 사물을 어떻게 구분하는가?
- A : 인스턴스 디코더(Instance Decoder)에서 제공하는 정보에 기반
Q : 최종 triplet 구조는 bounding box regression과 action classification으로만 구성되는데, bounding box의 label classification은 어떻게 수행하나?
- A : triplet은 Interaction decoder에서 interaction을 predict하기 위한 구조이고, Instance decoder에서 기존의 object detection task를 수행하기 때문에 classification이 가능 (DETR사용)
Q : 결국 헝가리안 알고리즘을 사용하는데 NMS랑 크게 다른게 무엇인지? end-to-end가 맞는지 ?
- A : 기존 NMS 방식은 training에도 사용하고 inference에도 사용함 하지만, 헝가리안 알고리즘은 training에만 사용하고 inference에는 사용하지 않음 이러한 관점에서 저자들이 end-to-end라고 주장하는듯