논문

하루에도 수만개의 글자를 읽고 있습니다. 하루에도 수백장의 종이를 들춰 읽습니다.
이것은 그 읽기에 대한 일기입니다.

Detect-and-Track: Efficient Pose Estimation in Videos

1. Introduction

싱글 이미지에서의 영상 이해는 꽤 만든 발전이 있었지만, 동영상에서는 비교적 발전이 느렸습니다. 이 논문에서는 복잡한 동영상에서의 각 사람이 존재하는 동안 자세를 추정함과 동시에 추적까지 하는 방법을 제안합니다. 이 과정에서 자세 변화와 가려짐, 여러 사람의 겹쳐짐이 특히 어려운 부분입니다. 이상적인 추적기는 매 시간마다 모든 사람의 변화하는 자세를 정확히 추정하여야만 합니다.

대부분의 연구들은 사람이 만들어진 그래프 모델이나, 최적화 방법을 사용하였지만, 이러한 방법은 짧은 비디오 클립에서만 사용할 수 있을 뿐 아니라 프레임간 연결만 사용하고 시간축 정보는 사용하지 않는 단점이 있습니다. 따라서 어느 한 프레임에서 위치가 잘못 추정되면 문제가 발생합니다. 이를 해결하기 위해 여기에서는 3D CNN 구조를 이용하여 인접한 프레임간 시간축 정보를 활용하는 방법을 제안합니다.

2. Related Work

3. Technical Approach

제안하는 방법은 2가지 단계로 지루어집니다. 먼저 Mask R-CNN을 3D로 확장하여 3D 자세 추적기로 사용합니다. 짧은 비디오 클립을 입력받아 비디오 내의 모든 사람에 대한 자세를 추정합니다. 추적을 위해서는 추정된 결과들을 연결하는 가벼운 최적화를 수행합니다. 프레임 수와 객체의 수에 따라 지수적으로 올라가는 복잡도를 해결하기 위해 약간의 간단한 휴리스틱을 사용하였습니다.

3.1. Two-Stage Approach for Pose Tracking

Stage 1: Spatiotemporal pose estimation over clips. CNN기반의 모델을 이용하여 사람의 자세를 추정합니다. 프레임 단위를 이용하는 어떤 알고리즘도 사용가능하나 여기에서는 Mask R-CNN을 이용하였습니다.

Mask R-CNN 모델에서 2D 컨볼루션을 3D로 확장하였습니다. 3D 커널의 리셉티브 필드(receptive field)는 공간 뿐 아니라 시간 차원까지 포함하며, end-to-end로 학습이 가능합니다. 따라서 입력은 하나의 프레임이 아니라 길이 $T$를 갖는 인접한 프레임들이 됩니다. Region Proposal Network (RPN) 또한 확장하여 입력 프레임간의 추적된 객체들을 찾도록 하였습니다. 이 튜브 형태의 후보영역은 spatiotemporal ROIAlign 연산으로 추출됩니다. 이렇게 생성된 피쳐들은 3D CNN으로 입력되어 자세 추정을 위해 사용됩니다. 자세 추정 부분은 모든 프레임에서의 키포인트 히트맵을 생성합니다. 따라서 3D Mask R-CNN의 출력은 키포인트 추정을 위한 튜브 집합입니다.

Base network: ResNet을 확장하여 2D 컨볼루션을 3D 컨볼루션으로 확장하였습니다. 커널의 시간 축 크기 $K_T$는 공간축 폭의 크기와 같이 맞추어 주었습니다. 단, 첫번째 레이어는 $3 \times 7 \times 7$을 사용하였습니다. 또한 $K_T=3$인 경우엔 시간 축으로 1개의 패딩을, $K_T=1$인 경우는 패딩을 없이 하였으며, 시간축 스트라이드는 1을 사용하였습니다. 초기화는 2D 필터의 가중치를 복사하여 3D 커널의 중간 부분을 채우고 나머지 부분은 0으로 채우는 방식으로 사용하였습니다. 마지막 피쳐 맵은 입력 $T \times H \times W$이 4개의 residual block을 통과하여 $T \times \frac{H}{8} \times \frac{W}{8}$으로 나오도록 하였습니다.

Tube proposal network: 베이스 네트워크로부터 피쳐 맵이 주어지면, 두개의 작은 3D conv 네트워크와 fully connected 레이어를 태워 튜브의 classification과 regression을 수행합니다. 이것들은 튜브 앵커에 따라 정의가 되며, 튜브 앵커는 Faster R-CNN에서 나온 것과 비슷하지만, 시간 축에 대해 복제한 것을 사용하였습니다. 각 피쳐 위치에 대해 $A=12$개의 앵커가 존재하고, 각 앵커에는 classification이 물체가 있는지를 추정하고, regression은 $4T$차원의 벡터로 튜브 내의 각 박스에 대한 각 앵커의 상대 좌표에 대한 정보를 추정하도록 하였습니다.

3D Mask R-CNN heads: 튜브 후보가 생성되면, 다음은 튜브를 분류하고 사람에 딱 맞도록 리그레이션 하는 단계로 넘어갑니다. 영역 내 피쳐를 RoIAlign를 3D 확장하여 시간-공간 피쳐맵을 추출하도록 하였습니다. 튜브를 $T$개의 2D 박스로 나눈 다음, RoIAlign을 이용하여 각 $T$개의 시간 슬라이드에 대한 피쳐 맵을 추출합니다. 그 결과들을 다시 쌓으면 $T \times R \times R$ 피쳐맵이 완성됩니다. $R$은 RoIAlign 연산의 해상도로, cls/reg을 위해서는 7개, 키포인트를 위해서는 14개를 사용하였습니다. cls/reg를 위한 부분은 3D ResNet block이 이용되엇고, 키포인트 부분은 8개의 3D conv 레이어, 그리고 2개의 deconvolution 레이어를 놓았습니다.

Stage 2: Linking keypoint preditions into tracks. 각 프레임에 대해 키포인트가 주어지면 프레임들의 키포인트를 이어서 추적해야합니다. 추적은 이들 정보간의 데이터 연관성을 알아내는 문제로 볼 수도 있습니다. 여기에서는 검출 결과를 그래프로 표현하여 검출된 바운딩 박스가 노드를, 프레임간 박스의 연결을 에지로 보았습니다. 그리고 두 박스가 같은 사람일 경우의 negative likelihood를 에지의 코스트로 사용하였습니다. 그리고 이 문제를 bipartite matching 문제로 단순화 하여 풀었습니다.

Likelihood metrics: likelihood를 계산하기 위해서 임의로 정한 방법과 학습된 방법을 실험해보았습니다. 사람이 임의로 정해준 방법은, 1) CNN 특징의 코사인 거리를 통한 시각적 유사도, 2) 프레임간 IoU를 통한 지역 유사도, 3) PCKh 거리를 이용한 자세 유사도를 사용하였습니다. 학습을 통한 방법은 LSTM 모델을 이용하여 새로운 검출인지 아닌지를 구분하는 학습된 메트릭을 사용하였습니다.

4. Experiments and Results

5. Conclusion and Future Work

 


Add a Comment Trackback