https://arxiv.org/abs/2306.07879
Rethinking pose estimation in crowds: overcoming the detection information-bottleneck and ambiguity
Frequent interactions between individuals are a fundamental challenge for pose estimation algorithms. Current pipelines either use an object detector together with a pose estimator (top-down approach), or localize all body parts first and then link them to
arxiv.org
초록
현재 Pose estimation의 파이프라인
- Top Down = Pose estimator를 Detector와 함께 사용하는 방식 ex) Vit
- Bottom Up = 사람의 몸의 키포인트들을 localize하고 link(skeleton)을 예측하는 방식 ex) openpose
이 두 가지 다 단점이 있다. TD(Top Down)은 각 Object가 겹치면 잘못 정의되고 BU(Bottom Up)은 부위의 거리를 잘못 추론한다.
이 논문은 Bottom Up Conditioned Top Down으로 이 두 가지 파이프 라인의 장점을 이용해 각각의 단점을 커버하려고 한다. Bottom Up 모델을 Detector로 사용하여 바운딩 박스 외의 신체 부위도 추론하고 이를 조건으로 attention based Top down 모델에 학습 재료로 사용한다는게 이 논문에서 말하고자 하는 바 이다.
그 결과 사람, 동물 pose 관련 벤치마크에서 성능과 효율성을 입증했고 crowd pose와 ochuman 데이터셋에서 SOTA를 달성했다고 한다.
소개
사람이 있는 사진을 annotation 할 때, 사진 속 사람이 한 사람일 경우 annotation은 쉽다. 하지만 두 사람이 팔짱을 끼고 있을 경우 어떤 사람을 annotation 해야하는지 모호하다. 그럼 사진을 준 사람에게 묻고 그 사람은 어떤 사람을 annotation 해야할 지 pointing 해줄 것 이다. 그렇게되면 annotation하기 훨씬 수월해진다.
이 논문은 위의 부분에서 영감을 얻었고 hybrid deep learning framework를 목표로 한다.
위의 간단한 상호작용은 TD에서 발생한느데 TD는 먼저 object detector로 각자를 localize하고 single instance pose estimation을 수행한다. 반대로 BU는 모든 신체부위를 localize한다. 그리고 동시에 각각의 pose로 합친다. 사람이 서로 가까이 있는 경우, 바운딩 박스가 여러 사람인데 한 사람만 돼 있을 경우 잘못 정의한다. 그래서 TD는 겹치는 사람에 대해서는 무시하는 경우가 있다. 반대로 BU는 모든 object를 localize 하지만 정확도가 문제다
BUCTD는 BU model을 detector로 사용하고 포즈 결과를 바운딩 박스로 사용되며 누구의 포즈를 예측해야하는지 pointing으로 사용된다. 다음으로 TD는 Conditional Top Down model이라고 칭하고 포즈와 crop된 이미지를 input으로 받는다. BU로 부터 제공받은 노이즈가 있는 포즈에서 정확히 예측되도록 CTD를 훈련시킨다.
BUCTD는 information bottleneck과 표준 detector에서 오는 모호한 introduced를 극복하여 비슷하거나 낮은 inference 비용을 가진다. TD와 BU에서 뛰어난 괄목할만한 성능을 냈고 Occluded나 crowded한 상황에서 SOTA를 달성했다.
2. Related Work
2.1. multi-instance pose estimation & benchmarks
TU접근은 object detector에서 검출된 bounding box를 이용하고 각 부위를 검출하는 single-instance pose estimation이다.
최근에는 transformer 기반의 TD 방법이 많이 나왔다.
대표적인 TD: TransPose, ViTPose, TFPose 등
대표적인 BU: Open{ose, Associative Embedding, ArtTrack, HigherHRnet, DEKR, DLCRNet, CID, PETR 등
또한 pose refinement 방법도 precision을 보장하기 위해 제안된다고 한다.
대표적인 refinement: PoseRefiner, PoseFix 등
위의 모델들이 예측된 포즈를 재정의해서 정확도를 향상시킨다고 한다.
Classic Benchmark에는 COCO, MPII가 있는데 이 두 데이터셋은 occlusion이 적다. 실제세계에선 occlusion과 crowd된 장면이 많다보니 CrowdPose와 OCHuman과 같은 데이터셋이 나왔다고 한다. 여기서 BUCTD는 occlusion이 많은 데이터셋에서 SOTA를 달성했다.
2.2 crowded scene pose estimation
Crowded 데이터에 대해 많은 연구들이 있었는데 그 중 MIPnet이 있다. MIPnet의 특징 중에 하나는 한 바운딩 박스 안에 여러명의 사람이 들어가는 것을 허용하는 것이다. MIPnet은 중심으로 부터의 거리와 관련하여 어떤 사람을 검출해야하는지에 대한 정수 입력을 줌으로써 SOTA 성능에 도달했다. 대조적으로 이 연구에서는 어떤 사람이 검출되어야하는지 이점이 있는지 대한 포즈 단서를 제공한다. CID 모델은 CNN 백본과 개개인을 구별가능한 feature decoupling stage를 포함한 end to end 구조를 목표로한다. 그러나 Decoupling은 오직 개개인이 예측된 중점을 기준으로 한다. CenterGroup은attention을 사용해 사람들의 중점과 각 신체부위를 연결하는 반면 PETR은 개인 및 키포인트에 대해 각가 transformer 기반의 디코더를 배포한다. 최근 제안된 attention 기반의 모델들이 Crowdpose와 OCHuman에서 강력한 성능을 보였으나 그 연구들은 오직 bbox의 GT기반에서 스코어를냈다.
2.3 Combining TD and BU models
Hu and Ramana은 TD와 BU의 피드백를 통합한 hierarchical Rectified Gaussian 모델을 위한 양방향 구조를 제안한 반면에 Tang et al은 추론 프로세스가 multiple semantic level을 통과하는 BU와 TD 모델로 구성되는 계층적 구성 모델을 제안했다.
Cai et al는 BU와 TD를 연결하여 그래프 기반의 3D pose estimation을 제안했다. Li et al은 관절을 판단하기 위해 BU 방법을 사용했고 Detector로 검출된 bounding box로 검출된 관절을 그룹화했다.
이전의 연구들과 비교하여 BUCTD는 Object detector와 비교하여 BU 모델을 검출기로 'pointer'를 제공하여 정확한 타겟의 individual에 주의하도록 가이드를 TD 모델에 적용하였다. BUCTD는 첫번째 단계에서 CID와 PETR과 같은 최신의 BU 방식을 사용한다. 다음 두 번째에서 TD 모델을 조건부 TD모델로 일반화한다. MIPnet과 같은 index를 주는 대신에 BU 모델로부터 나온 포즈에 대한 예측을 "pointer"로 제공한다. 그러므로 CTD 모델은 두 가지 입력을 받는데 바로 바운딩 박스와 포즈 그리고 PoseFix나 Poserefiner와 같은 비슷한 형태를 입력으로 받는다.
3. Methods
3.1 The BUCTD framework
BUCTD는 cropped 입력 이미지와 BU 입력에서 pose 예측하도록 학습된 2 stage 모델이다. 직관상 BUCTD는 입력이미지와 포즈 입력을 통해 무엇을 예측해야하는지 알 수 있다. 이것으로 TD 방식의 Crowd 상태에서의 본질적인 모호성을 극복한다. BUCTD의 학습 scheme는 classic TD 방식과 다르다. GT 바운딩 박스를 이용하는 대신에 BU로 예측된 포즈로 생성된 Cropped 이미지를 학습에 사용한다.
stage 1: BU detector
개인을 검출하기 위해 BU로 훈련데이터셋에서 포즈 예측을 사용한다. 전통적인 TD 방식은 일반적인 object detector로 개인에 대한 바운딩박스를 얻는다. 그러나 바운딩 박스는 검출기와 포즈 모델 사이에 information bottleneck을 형성한다. 게다가 실제세계에 적용하면 object detector를 학습시키는 연산량이 BU 포즈를 학습하는 것보다 더 높기도 하다. 그러므로 예측된 포즈를 대응하는 바운딩 박스를 얻기위한 가이드로 BU 모델을 detector로 사용한다.
stage 2: Conditional Top Down
다음으로 conditional pose 입력과 대응한는 바운딩 박스로 CTD 모델을 학습시킨다. 학습과정에서 condition을 위한 두가지 다른 샘플링 전략을 발견했다.
1. empirical smapling: BU모델의 예측에서 조건을 샘플링하고 object keypoint similarity와 box IoU를 이용해 GT 포즈를 매치한다.
2. Generative sampling: 실제 예측을 사용하는 대신 포즈 예측 오류를 기반으로 하는 입력 포즈를 샘플링한다.

3.2.1 CTD with preNet
입력 이미지와 입력 조건으로 구성하는 입력 pair를 두 입력의 특징을 추출하기 위해 두가지 다른 합성곱 레이어를 가진 preNet에 병렬로 집어 넣는다. 그리고 image feature와 condition feature를 fuse하고 HRNet에 넣는다. 그러므로 CTD-preNet은 CTD접근의 영향력있는 간단한 구조이다.
3.2.2 CTD with Transpose
transformer 구조에 더 강한 영향력을 주기 위해 TransPose를 수정했다. TransPose는 1x1 convolution을 통해 d x H x W로 변환된 CNN 백본으로 구성되어 있다.