영상 추적과 마스크 전파
한 프레임에 마스크를 그리면 SAM 2가 클립 전체에 걸쳐 객체를 따라갑니다. 프레임별 IoU 0.974~0.979로 측정되었고 감쇠가 없습니다. 설계상 서버에서 돌아갑니다.
한 프레임에 마스크를 그리고 앞으로 추적을 누르면, SAM 2가 뒤따르는 프레임에서 객체를 따라가며 결과가 훑어보고 고칠 수 있는 키프레임으로 도착합니다. 알려진 정답과 비교해 측정한 결과, 프레임별 IoU는 첫 프레임부터 마지막 프레임까지 0.974에서 0.979를 유지하며 감쇠가 없습니다.
annotation_schemes:
- annotation_type: video_annotation
name: tracks
description: "Draw the object once, then press Track forward."
source_field: video_url
mode: tracking
labels:
- {name: subject, color: "#d1495b"}
tracking_options:
interpolation: linear
auto_advance_frames: 5
video_fps: 12
show_timecode: true
frame_stepping: true동작하는 예시: examples/video/mask-propagation/.
이것은 서버에서 돌아간다
전파에는 SAM 2를 그 메모리 모듈(뱅크 정렬, 반복 패딩, 시간 인코딩, 객체 포인터 청킹)과 함께 사용합니다. 프레임마다 독립적으로 다시 프롬프트하지 않습니다.
이것은 의도적으로 서버에서 돌아갑니다. 비용은 프롬프트당이 아니라 프레임당 들고, 모델은 그래프 다섯 개에 걸쳐 181 MB이며, 영상은 이미 그곳에 있습니다. 브라우저 탭에서 백 프레임을 돌리면 UI가 몇 분간 멈춥니다. CPU에서 프레임당 약 1.32초, GPU에서는 더 빠릅니다.
Potato에는 프레임마다 다시 프롬프트하는 더 가벼운 브라우저 내 이어가기 경로도 있습니다. 둘은 서로 다른 것이고 뒤섞지 않을 만한 가치가 있습니다. 이 능력은 어느 쪽이든 무료 자체 호스팅 제품에서 쓸 수 있지만, 메모리에 기반한 전파는 서버 쪽입니다.
가림은 추측되지 않고 답해진다
모델은 객체가 가려진 시점을 스스로 판단하고 추측 대신 빈 프레임을 돌려줍니다. 이것이 수정 작업 중에 원하는 동작입니다. 숨은 프레임 위의 추측된 마스크는 되돌려야 할 일거리이고, 그럴듯하지만 틀린 마스크는 눈에 보이는 공백보다 나쁘기 때문입니다.
보간된 프레임의 마스크는 섞이지 않고 유지되며, 유지된 프레임은 타임라인에 표시됩니다. 정직한 표현이 매끄러운 오답보다 낫습니다.
튜블릿과 폴리곤 보간
마스크 전파와 나란히, Potato는 회전 정렬을 동반한 호 길이 재샘플링으로 폴리곤 트랙을 보간합니다. 이는 단순한 보간이 놓치는 두 경우, 즉 키프레임 사이의 꼭짓점 개수가 다른 경우와 같은 형상을 그리기 시작한 지점이 다른 경우를 처리합니다.
알아 둘 만한 프레임 색인 버그
getCurrentFrame은 2.8 이전의 모든 릴리스에서, 모든 클립에서, 탐색할 때마다 1씩 어긋났습니다. HTML video가 currentTime을 소수점 여섯 자리에서 잘라 보고하기 때문에, 12 fps 클립의 14번 프레임이 13으로 되읽혔습니다.
이전 버전에서 만든 프레임 색인이 붙은 영상 주석을 갖고 있다면, 탐색 이후에 한 프레임씩 밀려 있을 수 있습니다.
관련 문서
- 대화형 분할
- 시간적 일치도 — 무언가가 언제 일어났는지에 대한 일치도
- 가이드: 영상 객체 추적
- 영상 주석 레퍼런스