SAM2의 등장으로 Segmentation을 활용하는 많은 분야에서 변화가 일어나고 있습니다. 이전의 SAM 또한 좋은 성능으로 호평을 받았지만 SAM2는 Memory bank를 추가하여 동영상 내의 객체 tracking에도 뛰어난 성능을 보여줍니다.
하지만 SAM2의 경우 과거 n개의 프레임의 마스크를 직접적으로 사용하기 때문에 객체가 잠시 사라지거나 가려질 경우
성능 하락이 급격하게 일어난다는 단점이 존재합니다.
이를 본 논문인 MoSAM에서는
- 객체에 대한 움직임 정보의 부재
- 고정된 과거 프레임 사용
의 문제로 정의하고 이 문제를 해결하고자
- Motion-Guided Prompting(MGP): 객체의 움직임을 Sparse & Dense로 구분하고 이를 prompt로 사용
- Spatial-Temporal Memory Selection: 과거 프레임을 정확도에 따라 동적으로 사용
을 제안하여 문제를 해결하였습니다.
Motion-Guided Prompting(MGP)
과거 n개의 프레임에서 움직임을 파악하고 다음 프레임에서의 위치를 예측하도록 제작하였습니다.
Sparse Motion Modeling
객체의 갑작스러운 변화에도 강인하도록 만들기 위해 Sparse Motion Modeling을 제안하였습니다.
수식은 위와 같습니다 Sparse motion encoder의 경우 기하학적 중심과 중심에서 상하좌우 끝점의 절반 지점을
키포인트로 설정합니다.
설정된 현재 & 과거 키포인트들의 방향과 거리를 계산하고, 해당 결과에 linear interpolation을 사용하여 다음 프레임의
특징점 위치를 예측하게 됩니다.
Dense Motion Modeling
객체의 전체적인 위치 파악을 위해 픽셀 단계의 움직임을 활용하도록 구성하였습니다.
수식은 위와 같으며 Dense motion encoder의 경우 optical flow estimation network를 통해 현재와 과거 프레임에서 객체가 픽셀단위로 어떻게 움직였는지 파악합니다.
그리고 linear interpolation을 통해 다음 프레임에서 객체의 상태와 위치를 예측하고, warp 방법을 통해 현재 예측된 mask를 다음 프레임으로 예측한 마스크로 변형합니다. 최종적으로 변형한 마스크에서 Bounding Box를 추출합니다
위 두 modeling을 통해 생성된 point와 bounding box를 모델의 입력 prompt로 사용하여 보다 강건한 segmentation이 가능하도록 하였습니다.
Spatial-Temporal Memory Selection (ST-MS)
SAM2는 고정된 갯수의 과거 프레임을 모두 사용하므로 과거 프레임에 객체가 사라짐 또는 가려짐이 발생하면 성능이 크게 하락하게 됩니다. 이에 아래 사진과 같이 필요한 frame 정보만 사용하는 ST-MS를 제안합니다.
Temporal Memory Selection
비디오에서 인접한 프레임의 경우 많은 중복된 정보를 가지고 있기에 Δt만큼의 간격을 두고 프레임을 저장하도록 구성합니다. 이후 SAM2에서 나온 IoU & Occlusion Score가 설정한 임곗값보다 낮은 경우 해당 프레임은 memory bank에 저장하지 않습니다. 이후 남아있는 각 프레임의 Iou & Occlusion 합산 점수를 기준으로 정렬한 후 높은 top-k프레임만 memory에 저장합니다.
Spatial Memory Selection
Temporal Memory Selection을 통해 필터링된 후보 프레임의 마스크 영역을 더욱 정교하게 선택하기 위해 Spatial-Memory Selection을 추가하였습니다. 정교한 마스크 선정을 위해 SAM2에서 출력된 각 프레임의 확률 맵에서 임곗값을 넘는 픽셀만 foreground 아닌 픽셀은 background로 선택하도록 하였습니다.
위 두 방법을 통해 필요한 프레임과 픽셀에 집중할 수 있게 되었습니다.
Experiment
위 결과가 같이 다른 state-of-arts 모델들에 비해 높은 성능을 보였습니다. 이중 SAMURAI의 경우 이전에 github에 올라온 영상을 보고 높은 성능에 놀랐던 기억이 있는데 해당 모델보다 높은 성능을 보여주는 것을 보니 신기합니다.
그리고 가려짐 또는 긴 프레임을 가진 동영상에서도 SAM2 대비 높은 정확도를 보여준다고 합니다. 위 그림에서 (c) & (d)의 경우 뭔가 작은 객체를 찾았다고는 하는데 이게 뭘 tracking한거지 모르겠군요...
해당 논문은 대부분 SAM2에서 제공하는 정보를 필요에 맞게 잘 가공하여 성능을 높일 수 있었다고 생각합니다.
복잡한 방법이 아닌 단순한 방법으로 성능을 크게 높인 것이 인상적입니다.
SAM2의 Memory bank에 대해 좀 더 공부해보고 싶다는 생각을 했습니다. 이번 논문을 계기로 Memory bank 코드를 보고 필요에 맞게 사용하는 방법에 대해 연구를 해봐야겠습니다.
'ML' 카테고리의 다른 글
[논문 리뷰] Boosting Object Detection with Zero-Shot Day-Night Domain Adaptation (0) | 2025.04.22 |
---|---|
[논문 리뷰] MoE-LLaVA (0) | 2025.02.28 |
[Contrastive Learning]SimCLR 사용하여 학습하기 (0) | 2025.02.23 |
[논문]Swin Transformer (1) | 2025.02.10 |
[논문 리뷰] Learning from Rich Semantics and Coarse Locationsfor Long-tailed Object Detection (0) | 2025.01.27 |