tamserve 0.2.0 공개: 다중 카메라 추적의 모델 공유와 측정 조건
GPU마다 모델 한 벌을 공유하는 영상 추적 도구 tamserve. EdgeTAM·SAM 2.1의 속도와 메모리, 디코딩 포함 처리량 및 배포 제약을 공식 자료로 살펴본다.

tamserve 0.2.0은 여러 카메라가 GPU마다 모델 한 벌을 공유하도록 만든 영상 추적 서빙 도구다. 개발자 Aryaman Darda는 EdgeTAM과 SAM 2.1의 추적 계산을 모아 실행하고 객체별 기억을 제한해 장시간 영상의 메모리 증가를 줄였다. PyPI 배포 기록에서 2026년 11월 12일 배포를 확인할 수 있다. 코드 라이선스는 Apache-2.0이다.
창고나 로봇의 여러 영상 입력을 처리하는 개발자라면 모델 복제에 드는 메모리와 영상 길이에 따라 늘어나는 상태를 따로 살펴볼 만하다. tamserve의 공개 측정은 두 비용을 구분한다. 속도와 정확도 수치는 개발자 측 실험 결과이며 독립 재현 결과는 확인하지 못했다.
카메라별 모델 복제를 줄이는 방식
tamserve의 Engine은 각 카메라의 최신 프레임을 받아 객체들의 추적 연산을 배치로 실행한다. 객체마다 추적을 시작한 프레임, 최근 6개 프레임과 최근 15개의 요약 정보를 기억한다. 실행 시간이 길어져도 모든 과거 프레임을 쌓아 두지 않는 설계다. 카메라와 객체 수가 늘 때 드는 메모리 비용은 남는다. 공식 README
처음 추적할 대상은 사람이 그린 상자나 별도 검출기가 지정해야 한다. tamserve 자체가 객체를 찾아 이름을 붙이지는 않는다. Engine에는 프로그램이 프레임을 전달한다. 여러 GPU에 카메라를 배치하는 Router는 작업자 프로세스가 카메라 스트림을 직접 읽도록 한다.
속도 수치는 비교 대상과 함께 읽어야 한다
공식 결과 문서의 비교는 RTX 4090 24 GB, 8.8코어로 제한한 AMD EPYC 9354, PyTorch 2.15, CUDA 13.2와 bf16 환경에서 이뤄졌다. 입력은 GPU에 미리 올린 640×360 합성 프레임이며 카메라마다 객체 하나를 추적했다. 원본 EdgeTAM 비교 구현도 컴파일했고 카메라별 프로세스는 NVIDIA MPS로 GPU를 공유했다. tamserve도 컴파일한 단일 프로세스로 실행했다. 측정 조건과 실행 명령
| 카메라 수 | 원본 구현 합산 처리량 | tamserve 합산 처리량 | 원본 GPU 메모리 | tamserve GPU 메모리 |
| --- | --- | --- | --- | --- |
| 1 | 177 fps | 219 fps | 1.1 GB | 1.1 GB |
| 8 | 280 fps | 323 fps | 8.6 GB | 2.2 GB |
8개 카메라의 323 fps는 모든 카메라를 합한 수치다. 원본 구현의 GPU 메모리 열에서는 프로세스마다 보관한 영상 0.75 GB를 뺐다. 따라서 이 표를 전체 실행 메모리로 읽으면 안 된다. 이 측정 결과를 보면 8개 카메라에서는 처리량 차이보다 모델 공유에 따른 메모리 차이가 더 크다.
영상 디코딩까지 포함한 별도 실험에서 tamserve는 8개 720p 카메라 합산 273 fps, 1080p 합산 238 fps를 기록했다. 카메라마다 객체 하나인 조건이다. 실제 카메라 수를 정할 때는 엔진 단독 처리량과 디코딩을 포함한 처리량을 나눠 봐야 한다. 이 수치도 같은 개발자의 측정이며 다른 GPU에서 그대로 나온다는 보장은 없다.
정확도가 같다는 표현의 범위
DAVIS 2017 검증 영상 30개를 사용한 평가에서 원본 EdgeTAM의 평균 IoU는 0.8686, 컴파일한 tamserve는 0.8685였다. 개발자는 배치 크기와 컴파일에 따른 부동소수점 반올림 차이를 설명한다. 모든 실행에서 마스크의 각 비트가 같다고 단정할 수는 없다. exact=True와 원본 방식의 CPU 전처리를 사용하는 단일 카메라 조건은 별도로 제시돼 있다. 정확도 평가
SAM 2.1 tiny를 Meta의 현재 SAM 2 코드와 비교하면 속도는 비슷했다. 8개 카메라의 GPU 메모리는 원본 10.0 GB와 tamserve 3.4 GB였다. EdgeTAM의 속도 개선 폭을 SAM 2.1 전체에 적용해서는 안 된다.
시험 도입 전에 확인할 것
설치에는 Python 3.10 이상이 필요하다. 실시간 처리는 NVIDIA GPU를 전제로 안내하며 CPU 실행은 시험용으로 설명한다. 최초 모델 로드에는 다운로드를 위한 인터넷 연결이 필요하다. 설치 안내
pip install tamserve==0.2.0compile=True의 첫 실행은 개발자 환경에서 약 20분, 컴파일 캐시가 남은 다음 실행은 약 95초였다. 컴파일은 Linux에서만 시험했다. 새 컨테이너를 자주 만드는 서비스라면 초기 준비 시간도 측정해야 한다.
추적을 고치려면 대상을 다시 지정해 해당 추적을 시작한다. 기존 이력을 유지하면서 클릭만 추가하는 보정과 역방향 추적은 지원하지 않는다. 카메라마다 객체 수가 늘 때 처리량이 달라지므로 실제 입력으로 시험할 필요가 있다.
여러 호스트에 작업자를 둘 때는 사설망이나 VPN, SSH 터널을 사용해야 한다. 토큰 인증이 있어도 작업자 통신 자체에는 암호화와 변조 방지가 없다고 공식 문서가 밝힌다. 카메라 주소에 자격 증명이 들어갈 수 있으므로 연결 경로까지 확인해야 한다. 원격 GPU 작업자 안내
운영 검토에서는 같은 영상과 객체 수로 GPU 메모리, 디코딩을 포함한 처리량, 추적 실패를 기록하는 편이 좋다. 공개된 결과 문서와 재현 스크립트는 비교의 출발점으로 쓸 수 있다. 서비스의 정확도와 장애 복구 동작은 운영자가 별도로 확인해야 한다.



Discussion
No comments yet