본문 바로가기
  • CobsLab upgrades your company value by AI technology
이미지 처리 논문

Transformer 기반의 첫 HOI detector - HOTR : Human-Object Interaction Detection with Transformer

by dmkdmk 2022. 6. 15.

안녕하세요 콥스랩(COBS LAB)입니다.

오늘 소개해 드릴 논문은 ‘HOTR : Human-Object Interaction Detection with Transformer’입니다.

해당 내용은 유튜브 ‘딥러닝 논문 읽기 모임' 중 ‘HOTR’ 영상 스크립트를 편집한 내용으로, 영상으로도 확인하실 수 있습니다. (영상링크:https://youtu.be/pkbLrLSDQ9Q)

 

 

먼저 HOI에 대해서 설명드리겠습니다. HOI detection은 기존 Object detection과는 다르게 사람과 물체 간의 상호 작용을 탐지합니다. 왼쪽에 Object detection은 단순히 물체 또는 사람을 찾고 그 종류를 분류하는 반면, 오른쪽에 HOI detection에서는 물체와 사람을 Localize 하고 classification 한 후 그들 간의 상호 작용 즉, Interaction Association을 찾는 과정이 추가되어 있습니다. 최종적으로 HOI detection의 목표는 사람, 물체, 상호작용 이 세 가지의 쌍인 Triplet을 찾는 것을 목표로 합니다. human, object, Interaction 테스크는 하나의 이미지에서 인간, 물체, 상호작용을 예측하는 task로 단순 Object detection보다 이미지 신에 대한 더 높은 수준의 이해를 요구한다고 볼 수 있습니다.

 

HOI detection에 대해서 자세히 설명드리겠습니다. 왼쪽 그림에서 Object detection의 결과로 사람, 빵, 의자 이 세 가지의 Object를 detect 했을 때 HOI detection은 여기서 각각의 instance 간의 어떤 상호작용이 있는지를 찾는 것입니다. 가운데 그림을 보시면 가운데 사람 그리고 양옆에 물체인 의자와 빵이 있고 사람과 물체 간의 상호작용 즉, 앉아 있거나, 잡거나, 먹고 있다 라는 상호작용을 찾을 수 있습니다. 최종적으로 task의 목표는 우측에 있는 Triplet을 찾는 것입니다.

 

HOI에 대한 초기 방법론들은 우선 이미지 내에 모델 Object를 detection 한 뒤, Sequential 한 Neural network를 이용해 Human Object pair를 연관시키는 방식의 Sequential HOI detector와 Sequential HOI detector에 사용된 Neural network 대신에 interaction 박스나 Union 박스를 이용하여 1 스테이지로 Human Object pair를 연관시키는 방식인 Parallel HOI detector가 있습니다.

 

먼저 Sequential HOI detector는 한 이미지 안의 모든 물체를 탐지하고 모든 pair에 대해 Sequential 한 Neural network를 사용하여 interaction을 추론하는 방법입니다. 왼쪽에 Object detection 결과에서 모든 Human Object pair에 대해 Neural network를 적용하고 그 사이에서 상호작용을 찾는 방식입니다.

 

Sequential HOI detector의 대표적인 예로는 InteractNet과 iCAN 등이 있습니다. 먼저 iCAN는 attention map을 이용하여 interaction 탐지 효과를 높인 논문입니다. 사람과 물체의 형상이 어떠한 영역에 있는지를 활용하는 방법으로 즉, 사람의 외형적 특징과 함께 동작을 인지하는 알고리즘을 사용해서 보다 정확한 상호 작용 추론이 가능하도록 했습니다. 다시 말해 사람이나 물체의 appearance가 각각 이미지에 어떤 부분과 관련이 있는지에 대한 단서를 attention map을 이용해서 해결하는 방식입니다. attention map을 만들기 위한 방법으로 iCAN의 저자는 bounding box뿐만 아니라 Human Pose, Secondary region 같은 특징들을 추출하고, 이를 통합하여 attention map으로만 사용하는 방법을 제안했습니다. 또한 interaction을 정확하게 추론하기 위해 attention map을 생성하는 것 자체를 End to End로 학습하는 네트워크에 있어야 한다고 설명하며 Instance Centric attention network을 제시했습니다.

 

또 다른 Sequential HOI detector의 대표적인 예로는 InteractNet이 있습니다. InteractNet은 하나의 이미지에 사람과 물건이 있을 때 어떠한 액션 interaction을 취할지 예측할 수 있는지, 또한 한 이미지 안에 한 사람이 여러 물건과 interaction 할 경우 그 물건들을 어떻게 찾을 것인가에 대한 문제점을 제시하고 이에 대한 해결 방법을 제시했습니다. InteractNet의 저자는 새로운 InteractNet이라는 네트워크를 제시하면서 InteractNet을 통해 Triplet마다 Triplet 스코어를 구하며, 이 Triplet 스코어가 높은 것에 대해 이미지에 bounding box로 나타냈습니다. InteractNet의 구조는 총 세 개의 branch로 구성되어 있으며, 각각 Object, Human Centric, interaction branch입니다. 위 그림에서는 각각 parallel 한 게 아니라 가장 Sequential 한 방법으로 이루어졌다고 설명합니다. InteractNet은 세 가지 branch에서 얻은 Loss function의 합을 이용할 Triplet을 결정 하합니다. Sequential HOI detector는 직관적인 파이프라인을 가졌다는 장점은 있지만 Pairwise Neural network를 사용하기 때문에 시간이나 계산비용 측면에서 비효율적이라는 단점이 있습니다.

 

Parallel HOI detector는 2 스테이지의 Sequential HOI detector의 단점인 computation 코스트 비용 개선을 이루어내기 위해 제안되었습니다. Parallel 한 HOI detector는 기존의 모든 객체를 탐지한 후, Neural network를 이용하여 모든 Parallel interaction 스코어를 찾는 기존 방법을 Neural network 대신에 interaction 박스나 Union 박스를 이용하는 1 스테이지 방식으로 전환했습니다. 이는 성능을 유지시킴과 동시에 Inference 타임을 크게 감소시켰다는 장점을 갖고 있습니다.

 

Parallel HOI detector의 예시인 PPDM입니다. PPDM은 키 포인트 히트맵을 적용한 연구입니다. 첫 번째 포인트 detection branch에서 센터 포인트와 이에 해당하는 사이즈를 찾습니다. 그리고 interaction 포인트로 사람의 센터 포인트와 물체의 센터 포인트 페어 간에 중간점을 사용합니다.

또한, PPDM의 두 번째 branch인 포인트 매칭 branch에서는 interaction 포인트와 사람, 물체 간의 거리를 측정합니다. 그리고 첫 번째 branch와 합해져서 동일한 interaction 포인트를 갖는 Human 포인트와 Object 포인트 페어를 정합니다. 하지만 여전히 Parallel HOI detector는 추가적인 후처리 단계나 heuristic 한 thresholding을 필요로 한다는 한계점이 있습니다.

 

여기까지 말씀드렸던 detector들입니다. Sequential 한 detector는 말 그대로 연속적인 구조를 갖고 있기 때문에 매우 직관적인 파이프 라인을 갖고 있는 2 스테이지 method입니다. Pairwise 한 Neural network를 사용했으나 복잡도가 높고 Inference 타임이 길다는 단점이 있습니다. Pairwise detector는 region of interaction이라는 개념을 도입해 Sequential detectord의 Neural network 구조를 IoU나 Union 박스 등을 이용하여 Inference 타임을 개선했습니다. 하지만 두 가지 방법 모두 먼저 물체를 탐지한 후, 후처리 과정을 수행한다는 간접적인 방법으로 Bottleneck 문제나 수작업이 필요하다는 단점이 있습니다. 이를 개선하기 위해 transformer 기반의 HOI detector가 나옵니다.

 

HOTR는 DETR의 베이스로 transformer 구조를 HOI detection task에 활용한 첫 번째 시도이며, 기존의 Human과 Object를 먼저 탐지하고 이후 interaction을 찾던 방식과 달리, Human, Object, interaction 이 Triplet을 통째로 예측하는 set prediction을 수행합니다.

이전 구조들과의 차이점은 한 개의 decoder를 instance decoder와 interaction decoder 이 두 개의 Parallel 한 decoder를 사용했고, 또한 이 두 개의 decoder에서 나오는 결과를 합치기 위한 방법으로 HO Pointer라는 개념을 제안했습니다. 그 결과 Sequential 하거나 Parallel 한 detector의 단점인 post processing 과정을 제거할 수 있고, 성능 면에서도 몇몇 벤치마크에서 SOTA를 찍으면서 Inference 타임이 획기적으로 감소했다는 결과를 얻었습니다.

 

 

DETR과 HOTR의 구조입니다. 기존 DETR과 비교를 하자면 Feature Extraction과 encoder, decoder를 거쳐 아웃풋이 나오는 구조는 동일합니다. DETR에서는 n개의 Object query를 받아 n개의 bounding box classifier를 아웃풋 하는 구조입니다. HOI는 prediction head에서 Human, Object, interaction 이 Triplet pair를 아웃풋 하는 구조로 차이점이 있습니다. Triplet을 내보내기 위해 기존 하나의 DETR의 하나 decoder를 HOTR에서는 instance와 interaction decoder 두 개를 적용했습니다.

다시 HOTR의 구조입니다. 처음으로 인풋 이미지를 CNN backbone을 통해 처리된 feature map을 얻습니다. 또한 이 feature map은 positional embedding을 합쳐서 share decoder에 입력됩니다. 그다음 share encoder를 통해 이미지 내 전반적인 context를 반영하여 representation을 학습하게 되고, 이 encoder의 결과는 instance decoder와 interaction decoder에 각각 들어가며, 각각의 decoder에서 각각 representation을 학습하게 됩니다. 이 decoder의 결과인 instance representation과 interaction representation은 HO pointer라는 개념을 이용하여 짝지어 줍니다.

가운데 새로 교체된 그림이 HO pointer를 이용한 representation을 결합하는 방법을 표현하고 있습니다. interaction representation의 FFN을 적용하여 HO point vector와 action type vector를 얻습니다. 얻어진 point vector를 통해 instance representation과 interaction representation을 매칭 시키고, 매칭 된 instance representation를 이용하여 bounding box prediction을 action type vector를 이용하여 interaction class prediction을 수행합니다.

이 부분을 조금 더 자세히 설명드리겠습니다. 왼쪽과 같이 instance decoder와 interaction decoder의 결과가 있다고 했을 때 instance decoder의 결과는 좌측 그림과 같이 이미지 안에 어떤 Object나 Human이 있는지 각각 bounding box를 통해 나타나 있는 결과입니다. interaction decoder는 FFN를 통해 Human, Object, action에 대해 각각 수행하게 되고 그 결과를 instance representation과 모든 쌍에 대해 유사도를 계산합니다. 그다음 가장 유사도가 높은 instance representation를 선택하여 결과를 얻게 되고 Human instance representation과 가장 유사도가 높은 것이 Object instance representation과 유사도가 높은 것이 HO Pointer가 됩니다.

 

interaction decoder에 각각의 네 개의 결과가 나왔다고 했을 때 첫 번째 representation에 대해서 FFN를 Human, Object, action에 대해서 각각 수행하고, 이 수행된 결과를 instance decoder에 있는 파란색, 주황색, 빨간색과 각각 유사도를 매칭을 하게 됩니다. 그러면 유사도가 가장 높은 하나의 representation이 빨간색으로 가장 높게 나온 것을 확인할 수 있습니다. 그 결과 박스에 편향이 되면은 Human은 이미지 안에 Human이라는 빨간색 박스를 가리키고 있다 해서 HO 포인트가 되고, 이와 동일하게 Object에 대한 FFN 결과에 representation는 bread라는 Object에 대한 결과를 나타냅니다.

 

모든 interaction decoder 결과입니다. 이 결과를 통해 HO Pointer가 instance decoder와 interaction decoder의 결과를 결합하게 됩니다.

 

위 결과로 최종적으로는 Triplet set을 구성할 수 있습니다. HO Pointer를 이용해서 기존 Parallel HO detector에 비해서 Inference 타임을 줄일 수 있었습니다. 왜냐하면은 이전에는 distance나 IoU로 Triplet을 매칭 했다면 HO Pointer에서는 미리 정해진 n개의 instance에 대해서 K개의 interaction을 사용하기 때문입니다. 실제로 NMS 등 post processing 단계를 없앰으로써 기존 방법 대비 Inference 타임을 4 ~ 8 m/s을 단축했다고 설명합니다.

 

Transforemr 구조를 가진 모델을 설계함으로써 set prediction을 가능하게 했으나 실제 데이터셋을 훈련하기에는 문제가 있습니다. 바로 하나의 이미지 안에 interaction 개수가 정해져 있지 않다는 것입니다. 하나의 이미지 안에 여러 가지 상호 작용이 있을 수 있으며, 이는 이미지마다 다르기 때문입니다. 이런 문제를 해결하기 위해 Hungarian알고리즘을 활용했습니다.

 

논문에서는 먼저 하나의 이미지에 있을 수 있는 최대 query 수를 N개로 정해 Max length 값을 정했습니다. 단순히 N개의 숫자만 정하면 되는 것이 아니라 아웃풋 순서가 무작위 하기 때문에 Ground truth와 training output label을 매칭해 주어야 합니다.

 

Training HOTR입니다. 좌측 수식에서 보면 Y는 K개의 Ground truth값이며, 이 K는 이미지 안에 있을 수 있는 최대 interaction 수 보다 크다고 정의를 하였습니다. Ground truth값인 Yi와 트레이닝 결괏값인 Y∑i를 매칭 하기 위해 K개 안에 순열을 (3) 수식을 이용하여 찾았습니다. Groundtruth와 예측값을 매칭 한 후 , 모든 매칭 된 pair에 대해 Hungarian 로스를 우측식과 같이 계산하고 HOI Triplet에 대한 로스식을 Localization 로스, action 로스, classification 로스를 합하여 계산하였습니다.

 

다음은 실험 결과입니다. 해당 논문에서는 V-COCO와 HICO-DET에 대해서 실험을 수행했습니다. V-COCO 데이터셋에 대해서는 2개의 시나리오에 대해 수행했으며, HICO-DET에 대해서도 세 가지로 나누어 실험을 진행하였습니다.

 

먼저 좌측에 V-COCO 데이터셋을 이용한 결과를 보시면 HOTR를 적용했을 때 Sequential prediction method보다 1.9에서 4.1AP정도 성능 향상이 있었고, Parallel HOI detector에 대해서도 7.2에서 8.2AP정도 성능 향상이 보인 것을 확인할 수 있습니다. 또한 우측에 HICO-DET 데이터셋을 이용한 결과를 보면 대체적으로 HOTR를 적용했을 때 결과가 더 좋은 것을 확인할 수 있습니다.

다만, Rare 카테고리에 대해서는 HOTR의 성능이 제일 좋지 않은 것을 확인할 수 있습니다. 왜냐하면 Rare 카테고리라는 것 자체가 10개 미만의 트레이닝 instance를 사용한 시나리오이기 때문에 Externel feature 없이 좋은 성능을 나타내기가 어려웠을 거라고 설명합니다.

 

Ablation study입니다. 먼저 HO Pointer를 사용함으로써 직접적으로는 bounding box regression을 수행하는 것보다 관련 instance representation을 Pointer에 Localization 하였으므로 V-COCO 데이터셋에 대해서는 39.3에서 55.2로 16.7 AP 정도 성능 향상이 있었습니다. 또한 Interactiveness Suppression을 이용해 각 클래스를 독립적으로 처리하는데 Multi label 이진 분류를 적용하였습니다. 이를 통해 약 3AP정도 성능 향상을 나타냈습니다.

 

결론입니다. HOTR는 transformer 기반의 HOI detector이며 간접적 방식인 기존 Sequential detector랑 Parallel detector와 달리 Set-level 기반의 예측 기법을 제안하여 연산 속도가 많이 요구되는 Neural network나 NMS 등 후처리 단계를 제거하였습니다. 또한 두 개의 decoder를 이용하는 모델을 제안하였으며, 두 개의 decoder 결과를 유사도 기반으로 다시 결합시키는 HO Pointer 기법 또한 제안하였습니다. 제안한 모델로 SOTA 성능을 달성하였으며, 기존 HOI detector 기법에 비해 Inference 타임이 5m/s정도 감소하는 효과를 보였습니다.

댓글