본문 바로가기
AI/포즈 추정

FCPose: Fully Convolutional Multi-Person Pose Estimation with Dynamic Instance-Aware Convolutions 논문 리뷰 [W. Mao et al., 2021]

by 구운밤이다 2021. 11. 25.
728x90
반응형

 

이 논문은 pose estimation 분야에 대해 연구한 논문으로 2021 CVPR에 개제되었습니다.

2d pose estimation 분야가 bbox 를 이용하는 top-down, 조인트를 찾아 연결하는 bottom-up 방식이 있는데, 이 논문은 둘다 사용하지 않고 conv layer만 사용해 성능을 높였고, 모델을 가볍게 만들었습니다. 방금 말씀드린 것처럼 이 논문은 ROI, group-free end to end 방식을 채택했고, conv layer만 사용해 13배 빠르고 가벼운 네트워크를 만들었습니다. 이는 키포인트 헤드의 다이나믹 필터의 스트롱 representation을 사용해 가능했는데요.

 이 논문에서는 인스턴스 aware한 키포인트 헤드를 사용해 각 사람에게 집중할 수 있게 합니다. 각 인스턴스 i에 대해 키포인트 헤드의 새로운 가중치 집합 θ_i 를 만들고 이는 풀이미지 피처맵 F에 적용됩니다. 이 결과로 히트맵을 만드는데 F는 Feature pyramid net의 output에 conv layer를 적용해 나온 피처맵입니다.

이는 1/8 사이즈고, 이 필터 f로 인해 키포인트 헤드는 해당 인스턴스의 키포인트들만 fire 시킵니다. 이 F를 인스턴스 i에 대한 가중치를 갖는 필터 f로 인코딩해 히트맵을 만드는데, 1/8 사이즈는 해상도가 낮아 업샘플링이 필요하지만 계산 복잡도가 올라가므로 regression based 키포인트 refinement 모듈로 해결하게 됩니다.

Method

One-stage object detector FCOS

Fcos를 이용해 각 인스턴스의 다이나믹 weight $θ_i$ 와 헤드를 만드는데, FCOS는 object를 디텍팅할때 bbox가 아니라 히트맵 방식으로 물체가 있을만한 위치에 점수를 매기는 방식입니다. FCOS에서는 피처맵의 각 location이 positive이면 인스턴스에 연관되어 있다는 것이고 이렇게 연관된 좌표는 컨트롤러가 해당 인스턴스의 키포인트들을 찾을 때 사용되는 가중치 $θ_i$ 를 생성하게 해줍니다.

Fcos의 box reg 브랜치에 컨트롤러라는 새로운 output 브랜치를 추가하는데 이는 싱글 conv layer이고, 이 output 개수는 키포인트 헤드의 가중치 수와 동일합니다.

Relative Coordinates

 또한 모델이 위치(x, y)에서 생성된 필터 f로 인스턴스를 예측하는 경우 (x, y)와 먼 F의 위치는 인스턴스의 핵심 지점이 될 가능성이 적다는 것이 명백하므로 relative offset을 피처맵 F에 붙여서 이를 키포인트 헤드의 입력으로 사용해 성능을 향상시키고 키포인트 개수만큼의 히트맵을 만듭니다.

Keypoint Refinement with Regression

히트맵을 만든 후 refine해주게 되는데 각 히트맵마다 peak 위치를 찾아 키포인트 좌표로 만들고, reg 모듈로 오프셋을 더해주어 $(i + ∆x, j + ∆y)$ 예측된 키포인트 좌표를 refine합니다. 오프셋은 키포인트 refine 모듈의 예측값인데, 히트맵에서 location i,j 와 가장 가까운 ground truth 키포인트 간의 거리입니다.

Loss function

$$L_{heatmap}= CE(softmax(H_i), 〖 H〗^∗) $$

$$L_{overall}= L_{fcos}  + αL_{heatmap}+ βL_{reg}$$

Loss function으로는 먼저 디텍터 FCOS의 자체 loss와, 히트맵 loss, regression loss를 사용하는데, 히트맵 loss는 gt 히트맵과 인스턴스의 키포인트들의 히트맵을 softmax한 것을 cross entroypy loss를 사용합니다. 키포인트 offset Regression loss는 예측된 offset과 gt 간의 차이를 MSE를 사용해 구합니다.

Results

결과는 위와 같습니다. 정확도는 최신 소타 논문에 비해 5-10%정도 떨어지는 모습을 보이고 있지만 Inference 시간은 탑다운 바텀업과 비교해 13배 정도 빠른 모습을 보이고 있고, 실제 인퍼런스시 bbox가 잘못 그려지면 pose가 망가지는 기존 방법들과 달리 occlusion이 있어도 잘 추정하는 것을 알 수 있고, 컨트롤러에서 싱글 conv layer만 사용해 weight 집합을 생성하여 사람 수가 늘어도 infer 시간이 늘어나지 않습니다.

논문 : FCPose

728x90
반응형

댓글