[논문리뷰] NeighborTrack: Improving Single Object Tracking By Bipartite Matching With Neighbor Tracklets

2024. 5. 27. 12:35논문리뷰

CVPR2023에 소개된  NeighborTrack: Improving Single Object Tracking By Bipartite Matching With Neighbor Tracklets라는 논문에 대해 리뷰를 시작하겠습니다.

 

아래는 제가 참고한 자료에 대한 url입니다.

논문 paper: https://arxiv.org/abs/2211.06663

 

참고자료가 별로 없어 열심히 읽었습니다. 재밌게 봐주세용

 

Introduction

 

먼저 간단하게 설명을 드리면 NeighborTrack은 단일 객체 추적 즉 SOT(single object tracking)의 결과를 검증하고 트래킹이 더욱 잘 될 수 있도록 결과를 향상시키는 추가 데이터나 재학습이 필요하지 않은 post processor 입니다.

보통은 트래킹 모델은 외형을 갖고 feature를 뽑아 트래킹이 진행되는데 만약 트래킹하고자 하는 target가려져있을 경우 즉 occlusion의 경우에 이미지에 보이는 피쳐를 가지고 추적이 어렵습니다.

NeighborTrack은 가려지지 않은 트래킹 target 근처의 object들인 neighbor information을 활용하여 추적 target을 재확인하고 target이 가려진 경우 잘못된 추적을 줄입니다

 

아래의 그림은 NeighborTrack을 사용하여 추적 결과의 예시입니다.

아래 그림에 사용된 sot tracker모델은 ostrack이라는 모델을 사용했고

녹색 바운딩박스는 실제 추적 target의 위치를 나타내는 bounding box

분홍색 바운딩박스는 neighbor track을 사용하지 않은 기존의 ostrack트래킹 결과

빨간색 바운딩박스는 ostrack에 후처리로 neighbor track을 적용한 트래킹 결과입니다.

neighbor track이 적용된 빨간박스와 트래킹하고자하는 target위치를 나타내는 초록색 박스를 보시면

NeighborTrack은 대부분의 추적 오류를 수정해 결과를 보정하는 것을 확인하실수있습니다.

 

 

아래의 그림은 neighbor information을 사용하여 tracking결과를 수정하는 방법을 나타냅니다.

이제 보통 neighbor 객체는 시각적으로도 target과 유사하게 생겼으면서도 위치도 아주 유사해 시각적, 시공간적으로 유사한 객체라고 생각하시면됩니다.

따라서 보통 neighbor 객체는 대상에 대해 잘못된 트래킹결과를 만드는 주요 원인이 되는 object이루어져있습니다.

그래서 neighbor 객체는 저희가 추적하고자 하는 객체 와 유사하게 생겼거나 아주 근접하게있는 객체들로 이루어져있다고 생각하시면됩니다.

(a) neighbor information을 고려하지 않고 추적하는 경우를 나타냅니다. 오른쪽 그래프에서 보여진 것처럼, 대각선은 각 object간의 유사성입니다. 검정옷을입은 타겟이 가려져 있으므로 타겟만으로는 cansdidate와의 매칭이 부정확합니다.유사성을보면 검은 옷을 입은 타겟이 빛으로 가려져 있다는 이유로 분홍옷을 입은 candidate2보다 유사성이 0.3으로 더 낮아 잘못된 매칭이 이뤄짐을 확인할 수 있습니다.
(b) neighbor information을 고려하여 추적하는 경우에 이 예에서는 neighbor이 가려지지 않았기 때문에 candidate2와 올바르게 일치시킬 수 있습니다. 결과적으로, bipartite matching이여서 같은 candidate여러개와의 일치가 허용되지 않으므로 target은 가려진 상태에서도 그들의 유사성이 낮아도 candidate1과 매칭되게 됩니다. NeighborTrack이 가려짐으로 인한 문제를 효과적으로 완화하고 추적 정확도를 향상시킨다는 것을 그림을 통해 알 수 있습니다.
 

Related Work - Siamese Networks

관련된 연구로는 샴네트워크로 object tracking분야에서 base line으로 많이 쓰이는 Siamese 네트워크입니다.

tracking network는 임의의 객체를 추적해야 하므로 미리 데이터를 수집하고 해당 tracker를 학습을 시켜야 합니다.

기존의 tracker들은 비디오 프레임에서 미리 object를 추출해서 object모습을 학습시켜 사용하였습니다.

 

이렇게 되면 저희가 tracking에 사용하는 비디오는 실시간이 아닌 미리 수집된 비디오를 사용해야 하며 미리 학습시킨 object가 아닌 임의의 object tracking하는것이 불가합니다. 또한 object에 맞는 각각의 tracker를 항상 학습을 시켜야 하는 문제가 있습니다.

 

그리고 tracking에 필요한 라벨링된 학습 데이터가 아주 적습니다.

따라서 Siamese network에서는 object 모습을 학습 시키는게 아니라 target feature와의 유사성을 학습 시키는 방식을 제안했습니다.

 

밑의 그림을 보시면 z는 저희가 tracking하고자하는 target object, 아래의 xsearch region입니다.

아래의 search region안에서 이 target z와 가장 유사한 애를 찾아야합니다.

두개의 같은 네트워크에 통과를 시켜 feature가 생성되고 나온 두개의 feature에 대해 correlation을 구해 [17, 17]z에대한 각 픽셀 위치에 대한 유사도 score map 나오게 됩니다. 이제 siamese network에서 z가 빨간색이라고 치면 빨간 부분에 위치하는 애들을 1로 나머지는 -1로 채워 학습이 진행됩니다. 따라서 z와 유사한 애들이 높은 값을 갖도록 하고 나머지는 낮은값을 갖도록 학습이 진행됩니다.

 

 

Siamese network inference하는 과정은 첫번째 프레임이 타겟이미지로 주어지게 됩니다.

그러면 첫번째 타겟이미지에 대해 feature가 생성되고 해당 target feature 가지고 다음 프레임부터의 이미지들은 input으로 첫번째 타겟 피쳐와의 correlation값을 출력해 매번 빨간 박스의 target feature와의 유사도 scoremap을 출력하는 형식으로 inference가 진행되게 됩니다.

 

NeighborTrack Method

 

Sot관련 Siamese network 들은 헤더부분 즉 프레임별로 feature 뽑는 부분을 개선하는데에 좀더 중점적으로 발전이 되고있습니다.


앞서 언급한 방법들은 객체 추적을 개선하지만, 가림 현상(occlusion)으로 인한 추적 어려움을 극복할 수 없고 외관이 변할 때 실패하므로, 외관에만 의존하는 것은 정확한 객체추적이 이뤄질 수 없습니다.

이러한 한계점을 통해 neighbortrackpost-processor로 추가적인 network, 재 학습 없이 neighbor information을 더 유연하게 사용 가능하게 만들고
인접한 frame에서의 과거 정보를 통합해 사용하므로 occlusion이나 object의 외형 변화로 인한 부정확성을 줄이는 contribution을 제시했습니다.

 

 

본 논문에서는 SOT 네트워크 Φ의 추적 결과를 개선하기 위해 NeighborTrack을 제안했고 네트워크들은 다음과 같은 두가지의 요구사항을 충족해야합니다.

 

첫번째로  target patch인 분홍색 박스부분의 패치와, I_0(First Frame)에서의 위치를 지정하는 b_0(bounding box) 즉 분홍색 박스의[x, y, w, h] 좌표값 , I_1, ··· , I_t(frame sequence)

이 세가지가 주어졌을 때 Φ(network)tracking 결과인 b_1, ··· , b_t를 생성할 수 있어야 한다. 즉 첫번째 프레임에서 target패치와 위치가 주어지면 다음 프레임에서도 해당 target트래킹된 결과로 위치좌표인 바운딩박스가 생성되어야한다는 의미입니다.

 

두번째로는 프레임 It에 대해 네트워크는 민트색 바운딩박스가 생성되면 이에대한 이들의 confidence score인 St 생성할 수 있어야 한다고 합니다.

 

 

Neighbor track의 전체적인 과정을 자세히 살펴보면

NeighborTrack시간의 흐름에 따라 trackingobject는 역방향으로 tracking될 때 원래의 위치로 돌아와야 한다는 cycle consistency원칙에서 영감을 받았습니다.

따라서 첫번째 프레임 에서 타켓 객체에 대한 forward 트래킹을 진행하면 forward tracking tracklet이 생성되고(bt−τ , · · · , bt−1)  t번째 프레임에서 candidate에대해 τ 프레임 동안 백트래킹하여 backward-tracking tracklet생성하게됩니다.

여기서 트랙렛은 바운딩박스 시퀀스라고생각하시면됩니다.

 

후에 생성된 두 트랙렛 간의 유사성은  IoU(Intersection over Union) 값으로 결정됩니다

앞으로 추적된 타겟 트랙렛과 백트래킹된 candidate 트랙렛 사이의 유사성을 측정함으로써, candidtetarget 객체와 얼마나 잘 일치하는지를 재검토 하므로서 확인할 수 있습니다.


논문 번역 부분

현재 프레임 It에서 대상 객체의 바운딩 박스를 결정하기 위해, NeighborTrack은 후보 바운딩 박스 집합 Ct를 생성합니다. 이들은 대상이 일치하는 가설들입니다. 후보들 중에서는 대상에 가장 잘 일치하는 것을 식별하려고 합니다. 더 견고한 유사성 측정을 위해 NeighborTrack은 주기 일관성(cycle consistency) 원칙에서 영감을 받습니다: 시간 축을 따라 앞으로 추적된 객체는 시간을 따라 뒤로 추적될 때 원래 위치로 돌아와야 합니다. 현재 프레임 It에서 대상 객체에 대한 앞으로 추적된 트랙렛(bt−τ , · · · , bt−1)을 가지고 있습니다. 유사성을 이용하기 위해, 우리는 각 후보를 τ 프레임 동안 역방향 추적하여 그것의 역방향 추적 트랙렛을 추출합니다. 이러한 트랙렛으로 후보 트랙렛Pc가 형성됩니다. 트랙렛 간의 유사성은 그들의 IoU(Intersection over Union) 값으로 결정됩니다. 이 측정은 IoU가 시공간 단서를 고려하기 때문에 시각적 및 시공간적 단서 모두를 고려합니다. 트랙렛이/뒤로 추적되는 과정에서 시각적 단서가 고려되기 때문입니다. 앞으로 추적된 대상 트랙렛과 역방향 추적된 후보 트랙렛 사이의 유사성을 측정함으로써, /뒤로 추적과 주기 일관성을 이용하여 후보가 대상 객체와 얼마나 잘 일치하는지를 확인할 수 있습니다. Figure 2는 추적기가 주기 일관성을 보장하여 잘못된 일치를 제거하는 실제 예제를 보여줍니다.


Figure 2: 주기 일관성을 사용하여 잘못된 후보를 제거하는 실제 예시. 이 예시는 LaSOT [8]에서 가져왔습니다. I0에서 대상 템플릿을 기반으로, 추적기(이 예에서는 OSTrack [34])It-1 프레임까지 추적하고 대상 트랙렛(자주색 상자)을 생성합니다. 현재 프레임 It에서, 템플릿과의 심각한 시점 변화로 인해 잘못된 후보를 선택합니다. 후보를 역추적함으로써, 우리는 그것의 역추적 후보 트랙렛(청록색 상자)을 얻을 수 있습니다. 앞으로 추적된 대상 트랙렛과의 유사성을 계산한 후, 후보가 대상과 잘 일치하지 않음이 명확합니다. 제안된 척도를 사용하여, 우리는 시공간 관계를 활용하여 일치를 더 잘 확인할 수 있습니다.


 

NeighborTrack은 이전 페이지에서 보셨듯 candidate 통해 백트래킹을 하면서 트래킹결과를 보정하게되는데 해당 백트래킹 대상인 candidate set을 만드는 과정을 알아보겠습니다.

현재 it프레임에서 아래 그림과 같이 forward tracking여러개의 바운딩박스와 confidence score가 생성됩니다.

 

첫번째로 단순하게 confidence score가 높은 바운딩 박스가 아닌 가장 높은 score임계값을 곱해 일정 기준이상을 넘는 바운딩박스를 필터링을 하게됩니다. 아래의 그림에서 보시면 여러개의 스코어와 박스들이있는데 예를 들어 여기서 가장 높은 스코어가 100이고 임계값이 0.7이 되면 70점 이상의 스코어를 가진 바운딩박스만 유지되고 나머지는 제거됩니다.

 

후에 남은 바운딩박스들에서 soft nms 통해 최종 candidate bounding box setct가 생성되게 됩니다.

여기서 Soft-NMS는 오른쪽 그림과같이 여러개의 마구잡이의 바운딩박스가 생성됐을 때 같은 클래스의 Object들에서 가장 높은 스코어의 바운딩박스를 제외하고 나머지 스코어는 점수를 감소시키게 하는 알고리즘입니다.

 

따라서 이런 두가지 과정을 통해 최종 candidate 바운딩박스setct가 만들어지게 됩니다.

 

 

그러면 방금 만들어진 ct 통해Φ(SOT network) 사용해 τ 프레임 동안 backward-tracking을 수행됩니다.

따라서 candidate bounding box들을 대상으로 백트래킹한 결과인 바운딩박스 시퀀스 트랙렛들이 만들어지고 그들의 집합인 pc가 생성되는데 이전 페이지에서 ct(candidate bounding box)였던 민트색 바운딩박스와 노란색 바운딩박스들을 대상으로 백트래킹이 진행되게 됩니다.

 

그러면 각 민트색 바운딩박스와 노란색 바운딩박스들을 대상으로한 백트래킹 결과인 바운딩박스 시퀀스가 생성되는데 이들을 모아 pc에는 민트색 바운딩박스 0번째와 노란색인 바운딩박스 1번째 의 백트래킹 결과들이 들어있는 형태가 만들어지게 됩니다.

 

 

NeighborTrackneighbor tracklet pool 𝑃𝑛​이라고 불리는 또 다른 트랙릿 풀도 가지고 있습니다.

Neighbor 트랙릿은 이전 프레임의 candidate 트랙릿이라고 생각하시면됩니다.

NeighborTrackCandidate tracklet pool Pc  를 사용하여 Neighbor tracklet pool Pn  을 업데이트가 진행되는데요 다음과 같은 과정을 통해 업데이트가 진행됩니다.
1) 현재 frametracking 결과 선택:

이전 페이지에서 설명드린 Candidate tracklet pool P^c  에서 bounding box 하나 b_m^t 를 선택해 현재 frame의 결과로 결정

2)현재 프레임의 결과로 선택된 tracklet  P^c  에서 제거
3)P^c   에 남아 있는 각 트랙릿 " _i^t   에 대해 다음프레임을 준비하기위해 시간 범위를 +1씩 늘려 [𝑡−1, 𝑡−𝜏]에서 [𝑡, 𝑡−𝜏 + 1]로 조정 후 P^n 에 저장
예시로 좀더 이해하기 쉽도록 알려드리겠습니다.

 

먼저 이전에 만들어진 pc바운딩박스에 대해 백트래킹한 바운딩박스 시퀀스가 들어있는 집합 풀이었습니다. 그래서 민트색 바운딩 박스와 노란색바운딩박스에대해 백트래킹한 결과가 담겨있는 바운딩박스 트랙릿 두개가 들어있는 형태였습니다.
이제 만들어진 pc에서 한 트래킹결과를 선택하게 됩니다. 선택된 트래킹결과가 b0일때 b0은 현재 프레임의 트래킹 결과로 지정이 된거고 Pc에서 b0은 제거되게 됩니다. 그러면 남은 b1은 다음프레임에서 사용할수있도록 시간 범위 조정이 진행되게 됩니다.
마지막 바운딩박스인 b-3은 제거되고 현재 t시점의 바운딩박스를 더해주는 방식으로 조정이 됩니다.
이렇게 조정이 완료된 pcpn으로 모두 복사를 해주고 pc는 초기화 됩니다.
결과적으로 만들어진 pn은 다음프레임의 neighbor information으로 사용되는 방식으로 이전 프레임들의 정보를 모아 잘못된 결과를 보정해주는 Noeghbortrack이 진행되게 되는 방식이라고 생각하시면 됩니다.

 

 

그래서 이제 그림을 보시면

주황생 바운딩 박스 트랙렛은 이전 프레임에서 pc 통해 만들어진  neighbor tracklet

파란색 바운딩 박스는 타겟을 대상으로 forward-tracking한 결과들이고

해당 포워드 트래킹의 결과로 현재 it프레임에서는 두개의 candidate 바운딩 박스가 생성된걸 볼수있습니다.

 

아래의 흰색 바운딩박스들은 it에서 두개의 candidate 들을 백트래킹한 결과들입니다.

검정잭 티를 입은 사람인 target object가 가려져 있기 때문에 올바른 candidate2IoU가 잘못된 candidate1 보다 낮은 결과를 볼수있습니다.
하지만 neighbor track적용해  candidate tracklet(ξ_1^t)이 주황색의 neighbor tracklet(ζ_1^t)과 매우 잘 일치하기 때문에 target tracklet(η)candidate tracklet(ξ_2^t)와의 올바른 매칭이 이루어 진것을 확인할 수 있습니다.

 

Experiments

 

Experiments 살펴보겠습니다.

그림에서 녹색 상자는 실제 위치 값을 나타내며, 분홍 상자는 기준선인 neighbortrack을 적용하지 않은 tracker의 원래 결과를 나타내고, 빨간색 상자는 NeighborTrack으로 수정된 결과를 나타냅니다.

 

Bag 예제에서, 쓰레기 봉투가 하얗고, 번호판과 창문도 하얀색이기 때문에 트래커가 혼동될 수 있습니다. NeighborTrack을 적용한 후에도 약간의 잘못된 추적이 있을 수 있지만, 다시 추적을 재개할 수 없는 것과 달리 추적을 매우 빠르게 재개할 수 있습니다.

 

Crabs1은 더 어려운 예제로, 게들이 비슷한 외형을 가지고 있어 서로 가까이 있을 때 잘못된 추적을 초래할 수 있습니다. Neighbor information을 활용하는 메커니즘을 도입함으로써, 제안된 방법은 외형 유사성으로 인한 추적 실패를 효과적으로 줄입니다.

 

마지막 예제로, 가수가 흔들리고 있는 Shacking 예제를 살펴보면, 트래커는, 다른 사람들의 머리, 그리고 마지막으로 드럼 등 다른 객체에 의해 얼굴이 모자로 완전히 가려졌을 때 잠시 잘못 추적하지만, 얼굴이 다시 나타나자마자 올바른 위치로 돌아옵니다.

 

 

2는 제안된 전반적으로 NeighborTrack은 평균적으로 EAO(Expected Average Overlap) 1.92%, 강인성(robustness)2.11% 향상시켰습니다. 정확도는 -0.07%로 약간 감소했는데, 이 지표는 성공적인 추적의 평균 IoU만 고려하고, 추적에 실패한 프레임은 계산에 참여하지 않기 때문입니다. 극단적인 경우, 추적이 시작된 후 두 번째 프레임에서 실패하면, 정확도 계산은 최대값 1.0에 도달할 수 있습니다. 이는 계산 과정에서 실제 값만 사용되기 때문입니다. 그러나 이는 성공적인 추적으로 간주될 수 없습니다. 우리의 방법을 사용하면 추적이 중단될 가능성이 줄어들지만, 타겟이 가려진 경우 감지된 바운딩 박스 위치가 부정확할 수 있습니다. 다른 두 가지 메트릭인 강인성과 EAO는 우리의 방법이 SOT 모델이 타겟을 더 일관되게 효과적으로 추적할 수 있도록 돕는 능력을 보여줍니다.

 

정리하자면 

NeighborTrack을 적용하지 않았을 때에 정확도가 높은 이유:

성공적인 추적의 평균 IoU만 고려하고, 추적에 실패한 프레임은 계산에 참여하지 않기 때문입니다. 극단적인 경우, 추적이 시작된 후 두 번째 프레임에서 실패하면, 정확도 계산은 최대값 1.0에 도달할 수 있습니다. 

 

NeighborTrack을 적용했을 때에 정확도가 낮은 이유:

 

위의 그림과 같이 NeighborTrack을 적용했을 때 bipartite matching을 통해  IoU값이 적어도 정확한 object tracking이 가능한 것을 보았습니다. 따라서 NeighborTrack을 적용했을 때 IoU가 낮을 지는 몰라도 해당 target에대한 추적을 잘 이루어 짐을 알 수 있습니다. 
 

특히 주요 지표인 EAO에서 NeighborTrack은 모든 데이터셋에서 세 모델 모두를 향상시켰습니다. 결과는 우리의 방법이 다양한 유형의 SOT 모델에 대해 효과적이고 적용 가능함을 보여줍니다.

 

 

 

 

NeighborTrack 리뷰를 마치며

리뷰들이 없어서 제가 직접 논문을 계속 읽어 해 본 리뷰인 만큼 부족해도 잘 봐주셨으면 좋겠습니다. 

틀린 부분이 있을 수 있으니 참고만 해주세요!!