Multi-view Tracking Using Weakly Supervised Human Motion Prediction, Martin Engilberge, et al., 2022 을 읽고 정리, 요약한 글입니다.
◼️ Abstract
people-tracking에 대한 Multi-view 접근 방식은 혼잡한 장면에서 single-view 접근 방식보다 occlusion을 더 잘 처리할 수 있는 잠재력을 가지고 있는데, 이는 대부분 사람을 먼저 detection한 다음 detection된 부분을 연결(association)하는 tracking-by-detection 패러다임에 의존한다.
본 논문에서는 시간 경과에 따른 사람의 움직임을 예측하고 이를 통해 개별 프레임에서 사람의 존재를 추론하는 것이 훨씬 더 효과적인 접근 방식이라고 주장한다. 이렇게 하면 시간 경과에 따른 일관성과 단일 시간 프레임의 여러 뷰에 걸친 일관성을 유지할 수 있다.
◼️ Introduction
여러 사람을 tracking하는 경우, tracking-by-detection 패러다임을 대부분 사용한다. 이 방식은 먼저 개별 프레임에서 target object를 detection하고, 이러한 detection을 tracklet에 연결한 다음, 이를 더 긴 trajectory로 연결(association)하는 과정을 포함한다.
최근에는 tracking-by-regression이 대안으로 지지받고 있다. 이 기법은 detection 기반 접근 방식과 달리 end-to-end 차별성을 유지하면서 tracking을 쉽게 수행할 수 있다.
그러나 이러한 single-view tracking 기법은 occlusion으로 인해 trajectory가 탈선할 수 있으며 detection을 놓치면 track이 파편화 될 수밖에 없다.
여러 대의 카메라를 사용하는 것은 이 문제를 해결하는 한 가지 방법이지만, 부분적으로 detection 알고리즘이 일반적으로 단일 프레임에서 작동하고 시간 일관성을 나타내는 비디오가 있다는 사실을 활용하지 못하기 때문에 occlusion이 심해지면 여전히 해결 할 수 없다.
그림 1과 같이 한 프레임에서 누군가가 detection 되면 다음 프레임에서는 인접한 위치에서 발견될 가능성이 높지만, 사람의 움직임과 스케일이 여러 뷰에서 일관성이 있더라도 서로 다른 뷰의 결과를 융합할 때 이러한 일관성이 거의 적용되지 않기도 한다.
본 논문에서는 이미지에서 사람의 flow를 detection 하도록 네트워크를 학습시켜 이 두 가지 문제를 모두 해결한다. 이 모델은 비디오 프레임에 걸쳐 시간적 일관성을 직접 활용한다. 또한, 여러 카메라의 정보를 융합하는 동시에 다양한 시점의 사람 위치에 대한 공간적 일관성을 유지할 수 있다.
◼️ Related works
- Tracking-by-Detection
Tracking-by-detection은 프레임별 객체 detection 정보가 주어지면 여러 프레임에 걸쳐 global objective function를 최적화하여 video sequence에서 객체를 tracking하는 것을 목표로 한다.
이러한 그래프 기반 접근 방식 중 K-Shortest Paths(KSP) 알고리즘은 모든 time instant에 대한 모든 potential location의 그래프에서 작동하며, 전체 최소 비용을 산출하는 ground plane trajectory를 찾는다. 이러한 최적화는 사람의 움직임에 대한 여러 가지 가정을 전제로 이루어지며, 특히 모든 움직임 방향을 equiprobable로 간주한다.
KSP 알고리즘과 유사하게, Successive Shortest Paths(SSP) 접근법은 sequential dynamic programming을 사용하여 detection을 연결한다. 이 SSP 접근 방식을 제한된 메모리와 계산으로 확장하여 더 긴 시퀀스에서도 tracking을 가능하게 한다.
최근 연구에서는 large-scale person re-identification dataset에 대한 deep association metric을 학습하여 긴 video sequence에서 신뢰할 수 있는 객체 tracking을 가능하게 하는 방법을 제안한다.
occlusion으로 인해 긴 sequence에서 신뢰할 수 있는 객체 tracking을 달성하는 것은 매우 어렵기 때문에 일부 알고리즘은 여러 시점을 활용하여 이 문제를 해결하고, 일부 접근 방식은 먼저 단일 이미지에서 사람을 detection 한 후 detection 된 부분을 common reference frame에 재투영하고 일치시킨다.
- Modeling human motion
사람을 tracking 할 때 사람의 flow로 모델링하는 것은 딥러닝이 등장하기 훨씬 전부터 관심사였다.
사람 tracking은 grid에서 multi-target tracking으로 공식화되어 K-Shortest Path algorithm을 사용하여 효율적으로 해결할 수 있는 선형 프로그램을 생성한다. 이 공식의 핵심은 각 grid 위치의 실제 사람 수 대신 한 grid 위치에서 다른 grid 위치로의 사람 흐름을 최적화하는 것이다.
people conservation constraint이 적용되고 flow network에서 최단 경로 계산을 사용하여 track을 순차적으로 인스턴스화하는 greedy algorithm에 의해 global solution을 찾는다. 이러한 people conservation constraint는 이후 성능을 더욱 향상시키기 위해 추가적인 constraint와 결합된다. 여기에는 identity switch를 방지하기 위한 appearance constraint, 서로 다른 객체의 trajectory 분리하도록 강제하는 disjoint, higher-order constraint가 포함된다.
이러한 방법 중 어느 것도 이러한 people flow formulation를 활용하여 deep neural network의 tracking 문제를 해결하지기 때문에 flow constraint는 deep people tracking context에서 사용되지 않는다.
◼️ Approach
- Formalism
T time step으로 구성된 multi-view video sequence를 예로 든다.
각 time step은 시야각이 겹치는 V 카메라로 촬영한 동기화된 프레임 세트로 구성된다. 각 카메라에 대해 calibration Cv가 알려져 있으며 intrinsic 및 extrinsic 파라미터를 모두 포함한다. 각 프레임은 공간 크기(W, H)가 있는 컬러 이미지이다.
여러 뷰를 결합하기 위해 ground plane에서 작업하기로 선택한다. 각 프레임에 대해 투영 함수 P를 사용하여 ground plane에 프레임을 투영하여 (0, 255)^(w×h×3)을 생성하는 Gtv ∈ (0, 255)와 (w, h)를 ground plane의 spatial size로 정의한다.
마지막으로, 이전 작업과 유사한 grid world formalism을 채택한다. 각 time step t에서 물리적 ground plane을 이산화(discretize)하여 전체 차원에 대한 w×h×t의 scene representation을 주는 w×h cell의 grid를 형성한다.
- People Flow
한 쌍의 consecutive multi-view time step이 주어지면 사람의 flow를 다음과 같이 정의한다.
주어진 위치 i에 대해 flow f는 t 시점에 cell i에 있는 사람이 t+1 시점에 위치 j로 이동할 확률이다(여기서 j ∈ N(i)는 i의 neighbor이다). 구체적으로, ground plane의 각 cell에 대해 사람들의 flow를 9차원 확률 벡터(해당 셀의 neighbor 당 한 dimension)로 표현한다.
grid representation과 neighborhood의 정의는 그림 2에 설명되어 있다.
사람의 움직임을 정확하게 모델링하려면 flow가 세 가지 constraint를 준수해야 한다:
첫째, people conservation constraint으로, 어떤 사람이 t 시점에 존재한다면 t+1 시점에 같은 위치 또는 인접한 위치에 존재해야 한다. 즉, It-1, It, It+1의 세가지 time step을 고려할 때 시간 t-1과 t 사이의 cell j에 들어오는 flow의 합은 시간 t와 t+1 사이의 나가는 흐름의 합과 같아야 한다.
공식으로 표현하면 다음과 같다: Eq(1).
flow의 합은 시간 t에서 j에 사람이 있을 확률 xt~j와 같다.
둘째, non-overlapping constraint로, 모든 cell에는 언제든지 최대 한 사람만 있어야 한다.
마지막으로, temporal consistency constraint로, sequence를 뒤집었을 때 flow 방향이 뒤바뀌어도 flow가 동일해야 한다.
사람의 flow를 생성하도록 학습된 Multi-View FlowNet(MVFlow)은 detection 대신 flow를 예측함으로써 flow와 detection 사이의 비대칭 매핑을 활용할 수 있다. 이 모델은 detection annotation만을 사용하여 weakly supervised 방식으로 flow를 예측하는 방법을 학습한다.
Eq(1), Eq(2), Eq(3)에서 flow constraint을 적용하는 것은 최종 detection을 위한 정규화 역할도 한다.
예측은 시간적으로 일관되며 자연스러운 사람의 움직임을 나타낸다.
- Multi-View architecture
multi-view detection model인 MVFlow 모델은 5 step으로 구성되며 한 쌍의 multi-view frame을 입력으로 받고 각 frame은 ResNet에 의해 처리된다. resulting feature는 ground plane에 투영된다. 시간 t와 t+1에서 동일한 시점의 ground feature가 집계된다. 그 후 spatial aggregation module은 서로 다른 시점의 feture를 사람의 flow로 결합한다.
Detection prediction은 두 time step 모두의 flow에서 재구성된다.
5 step은 그림 3에 설명 되어 있다.
모델은 다음과 같은 공식으로 정의된다: Eq(4).
- Spatial Aggregation
ground plane representation을 사용하면 여러 뷰의 spatial aggregation가 크게 간소화 된다. 그러나 카메라 calibration은 완벽할 수 없기 때문에 뷰 간에 사소한 misalignment가 발생하는 경우가 많다.
본 논문의 aggregation mechanism은 이러한 misalignment에 강력하게 대응하도록 설계되었다.
모든 시점에 대한 feature representation이 채널 dimension에 따라 연결되고, 큰 사이즈인 kernel size(5×5)의 convolutional layer를 통해 인접한 feature 간에 재조정 된다. 효율적인 spatial aggregation mechanism은 또한 occlusion을 처리해야 하며, 일부 뷰에 숨겨진 객체는 나머지 뷰에서 여전히 예측되어야 한다.
이 프로세스를 더 쉽게 만들기 위해 multi-scale module을 제안한다. occlusion은 coarse level에서 detection 하기 쉽고, 정밀한 localization을 위해서는 fine level의 feature가 필요하다.
multi-scale feature는 다음과 같이 작동한다:
- feature는 4개의 서로 다른 크기로 pooling 되며, 각 스케일에 대해 하나씩 4개의 convolution, batch normalization 및 ReLU set으로 처리된다.
- 그런 다음 4개의 scale representation을 동일한 dimension으로 다시 upscaling하고 convolutional layer와 결합한다.
- 마지막으로 convolutional layer와 sigmoid 활성화 함수가 집계된 feature를 human flow f^(t-1,t)로 변환한다.
- Training
학습 목표는 파라미터 θ0:2를 학습하는 것이며, 손실 함수의 조합을 통해 constraint를 적용하는 것을 목표로 한다.
각 프레임 I에는 모든 사람의 발 위치가 주석으로 표시된다. P를 사용하여 ground plane에 있는 모든 사람의 2차원 좌표를 구하고 이진 ground truth detection map y^t∈(0, 1)^(w×h)을 생성한다. ground truth heatmap은 point of view에 독립적이다.
두 개의 프레임의 multiview set It, It+1과 각각의 ground truth detection map yt, yt+1이 주어지면 손실 함수를 다음과 같이 정의한다(Eq(6)).
Eq(6)은 flow 및 inverted flow 예측과 ground truth detection사이의 detection loss를 Ldet로 한다.
시간 t와 t+1에 모두 적용된 Ldet은 Eq(1) 및 Eq(2)에 정의된 constraint를 적용한다.
Eq(3)에 정의된 temporal consistency constraint는 flow와 반전된 flow 사이의 loss Lcycle과 함께 flow에 직접 적용된다.
- Dealing with unbalanced flow
프레임 속도가 큰 비디오 시퀀스를 처리할 때 사람들은 연속된 프레임 사이를 거의 이동하지 않는다. 이로 인해 static flow가 다른 flow 방향보다 20배나 더 흔하게 발생하는 등 flow 측면에서 큰 불균형이 발생한다.
이 문제를 해결하기 위해 다음과 같이 motion-based reweighting을 도입했다: Eq(9).
값이 클수록 움직이는 사람에 대한 예측이 매우 부정확진다. λr이 0이면 정규화가 적용되지 않고 Eq(7)에 정의된 원래의 detection loss를 얻게 된다.
- Track reconstruction
사람의 flow뿐만 아니라 detection heatmap을 생성할 수 있는 detection model은 track을 생성하는 동안 인간의 flow를 활용하기 위해 두 개의 기존 association 알고리즘을 확장한다.
detection probability map에서 시작하여 시간에 걸쳐 가능한 모든 위치를 포함하는 조밀한 그래프를 구축하고 각 위치는 이전 및 다음 time step의 이웃과 연결된다. edge의 weight는 해당 위치의 detection 확률에 비례한다.
첫 번째 time step의 모든 위치는 소스 노드에 연결되고 마지막 time step의 모든 위치는 싱크 노드에 연결된다. 이 그래프에서 최적화는 source와 target을 연결하는 경로의 수를 최대화하면서 전체 비용을 최소화하는 것이다. 앞서 정의한 그래프가 주어지면 Suurballe’s algorithm을 사용하여 이를 수행할 수 있다.
KSP의 한계는 그래프를 구축할 때 모든 다른 방향(이웃)에 대해 동일한 확률을 가정한다는 것이다. 혼잡한 장면에서 이러한 가정은 쉽게 identity switch를 초래할 수 있다.
본 논문은 각 방향에 대해 별도의 확률을 갖도록 KSP를 재구성할 것을 제안한다.
MVFlow는 예측된 flow를 통합하기 위해 KSP 재구성하고 그래프의 에지 비용을 Eq(10)과 같이 예측된 flow로부터 도출하며, 그 외의 모든 것은 원본 KSP 논문과 동일하게 유지한다.
이 새로운 방법을 본 논문에서는 KSPFlow로 표기한다.
MuSSP는 min-cost flow 방법을 사용하여 association 단계를 해결할 것을 제안한다. KSP와 달리, fullprobability map 대신 미리 추출된 detection을 통해 sparse graph를 구축하는데, 이를 통해 계산 효율성이 향상되고 더 긴 동작 범위를 모델링할 수 있게 된다.
그러나 그래프의 edge 비용은 detection 사이의 공간적, 시간적 거리만 고려하기 때문에, 본 논문은 모델에서 예측한 flow를 사용하도록 비용 공식을 Eq(11)로 업데이트할 것을 제안한다.
◼️ Experiments - 생략
◼️Conclusion
본 논문에서는 detection supervision만 주어진 상황에서 사람 flow를 detection하는 weakly supervised 접근법을 제안한다.
flow 기반 프레임워크는 비디오 프레임 전반의 temporal consistency을 직접 활용하고 여러 시점에 걸쳐 scale과 motion consistency을 명시적으로 적용한다.
실험 결과, 이 모델은 SOTA muti-view people tracking 접근 방식보다 일관되게 우수한 성능을 보였으며 향후에는 극도로 혼잡한 장면에서 사람들을 tracking하는 애플리케이션으로 확장할 계획이다.
→ 본 논문에서는, detection network에 대해 자세히 다루지 않 multi-view video sequence에서 사람의 움직임을 예측하는 방법에 초점을 맞추고 있다.
논문을 읽은 후 제가 알고 있는 선에서 최대한 정리하고 요약한 글입니다. 때문에 해당 포스팅에 대한 의견 제시 및 오타 정정은 언제나 환영입니다!
늦더라도 댓글 남겨주시면 확인하겠습니다!!