Re-ID ByTrack 트래킹 및 캐시 매커니즘 최적화 명세서
프레임 흐름상 고양이 탐지 정보와 ByteTrack 추적 ID를 결합하여 Re-ID의 유사도 신뢰성을 극대화하고 연산량을 줄이기 위한 스마트 캐싱 아키텍처.
문제 정의
- 초기 인식 실패에 따른 영구 Unknown 고착:
- 화면 진입 초기 프레임의 고양이가 흐리거나 각도가 비정상적일 경우 유사도 임계값 미달로
Unknown판정됨 - 기존에는
track_id에 대해 최초 식별 결과가 영구 캐시되어 이후 고품질 프레임이 유입되어도 식별 정보가 갱신되지 못하는 문제 존재
- 화면 진입 초기 프레임의 고양이가 흐리거나 각도가 비정상적일 경우 유사도 임계값 미달로
- 단일 임베딩 비교로 인한 캐시 활용 미흡:
TrackState내부에 최대 10개의 임베딩을 수집함에도 매칭 시점에는 직전 프레임의 단일 임베딩만 비교 대상으로 삼아 시간적 누적 정보 활용률 부재
- FIFO 기반 축출에 따른 고품질 임베딩 손실:
- 장시간 추적 시 초기에 획득한 고품질/선명한 임베딩이 단순 시간 경과에 의해 캐시에서 밀려나고, 최근의 흐리거나 왜곡된 임베딩만 남는 현상 발생
- Tracker 설정 제어 한계:
- YOLO의 내장
bytetrack.yaml기본 설정을 그대로 참조하여, 고양이 도메인 특화 튜닝(신규 트랙 생성 감도, IoU 임계치 등) 적용 불가
- YOLO의 내장
제어 파라미터 및 외부 설정 설계
config.yaml 추가 사양
- 추적 관리용 상태 전이 임계값 및 이미지 품질 필터 매개변수를 Config로 통합 관리함
# Tracking & Hysteresis Settings
threshold_candidate: 0.70 # Candidate 판정 최소 유사도
threshold_lock: 0.85 # 신원 확정(Lock) 임계값
threshold_hysteresis: 0.55 # Lock 유지 한계 임계값
candidate_interval: 10 # Candidate 상태 시 재매칭 프레임 주기
lock_interval: 60 # Locked 상태 시 재매칭 프레임 주기
unknown_interval: 10 # Unknown 상태 시 재매칭 프레임 주기
# Image Quality Filters
min_bbox_width: 32 # BBox 최소 너비 기준
min_bbox_height: 32 # BBox 최소 높이 기준
blur_threshold: 10.0 # Laplacian 분산 선명도 필터 임계값 (0: 비활성)
로컬 bytetrack.yaml 셋업
- 프로젝트 루트에 독립적인
bytetrack.yaml을 배치하여 YOLO 추적 모듈의 매칭 특성을 튜닝함 - track_high_thresh (0.5): 1차 IoU 매칭을 진행할 고신뢰도 검출 기준
- track_low_thresh (0.1): 흐림/가려짐 대응용 2차 매칭 기준
- track_buffer (30): 끊김 트랙 보존 기간 지정
전처리 품질 필터 설계
추출기(Extractor) 연산 수행 전 입력 프레임의 해상도 및 선명도 필터링을 통해 연산 낭비와 캐시 오염을 유도 방지함.
크기 검사 (Size Filter)
- 탐지된 고양이 BBox 영역의 폭과 높이가 각각
min_bbox_width및min_bbox_height미만인 경우 Re-ID 연산에서 제외함
선명도 검사 (Blur Filter)
- 크롭 영역 이미지를 그레이스케일로 변환 후 라플라시안 필터를 적용하여 분산값($\sigma^2$)을 연산함
\(\sigma^2 = \text{Variance}(\text{Laplacian}(\text{Gray}(\text{crop})))\) - 연산된 분산 수치가
blur_threshold미만일 경우 블러 프레임으로 판정해 기각 처리함
기각 프레임 Fallback 메커니즘
- 품질 검사를 통과하지 못한 프레임의 BBox 영역은 신규 임베딩 추출을 즉시 생략함
- 캐시 업데이트를 건너뛰며 기존 추적 이력의 최신 캐시 식별 결과를 재사용 출력함 (이력이 없는 경우
Unknown으로 임시 매핑)
동적 재매칭 상태 머신
추적 대상의 현재 판정 단계(State)에 맞춰 연산 주기를 비대칭 제어함으로써 연산 부하 절감 및 강건성 확보를 도모함.
┌───────────────────────────────┐
│ Unknown │
└──────────────┬────────────────┘
│ 임계치 0.70 돌파
▼
┌───────────────────────────────┐
│ Candidate │
└──────────────┬────────────────┘
│ 임계치 0.85 돌파
▼
┌───────────────────────────────┐
│ Locked │
└───────────────────────────────┘
(유사도 0.55 미만 하락 시 강등)
Unknown 상태
- 조건: 유사도 임계치 0.70 미만
- 작동: 품질 필터를 통과하는 모든 프레임에 대해 매 프레임 임베딩 추출 및 DB 매칭 수행 (조속한 식별 유도)
Candidate 상태
- 조건: 유사도 0.70 이상 0.85 미만
- 작동: 이전 매칭 결과를 표시하되, 확정 단계 승격을 위해 10프레임(
candidate_interval) 간격으로 재매칭 검증 가동
Locked 상태
- 조건: 유사도 0.85 돌파 확정
- 작동: 개체 신원을 강하게 고정하고, 60프레임(
lock_interval) 주기가 도래하기 전까지는 DB 매칭 연산을 전면 생략하여 CPU/GPU 자원 보호 극대화
Hysteresis 기반 강등 정책
- Locked 상태라 하더라도
lock_interval검증 시점이나 Quick Check 결과 유사도가threshold_hysteresis(0.55) 미만으로 유의미하게 저하될 경우, 강제로Unknown상태로 강등 처리하고 재식별을 수행함
스마트 캐시 교체 알고리즘
TrackState 캐시의 한계 사이즈(10개) 도달 시, 시계열 특징 변화(Recency) 수용과 우수 템플릿 보존을 동시에 달성하기 위한 하이브리드 교체 공식.
- FIFO 보호 영역 (최근 3개 프레임):
- 시간 경과에 따른 조명, 고양이 자세 변동을 즉각적으로 추적하기 위해 가장 최근에 수집된 3개 프레임의 특징 벡터는 무조건 보존 처리함 (선입선출)
- 품질 최적화 영역 (나머지 7개 프레임):
- 캐시에서 FIFO 영역을 제외한 잔여 7개 임베딩 중 유사도 점수가 가장 낮은 원소를 탐색함
- 신규 유입 임베딩의 유사도가 탐색된 최저 유사도보다 큰 경우에만 해당 위치를 교체 처리하고, 낮다면 신규 임베딩을 폐기하여 우수 임베딩 손실을 전면 방지함
가중 평균 임베딩 연산
매칭 신뢰도를 최대화하기 위해 단일 프레임 정보 대신 캐시 내부 전체 이미지 벡터의 가중 평균 임베딩을 산출하여 매칭에 활용함.
가중 평균 벡터 산출
- 각 프레임 특징 임베딩($\mathbf{v}_i$)에 해상도 면적 및 Laplacian 선명도를 기반으로 산정한 가중치($w_i$)를 곱하여 평균 벡터를 구함
\(\mathbf{v}_{\text{weighted}} = \frac{\sum (w_i \cdot \mathbf{v}_i)}{\sum w_i}\)
L2 정규화 적용
- Cosine Distance 계산 규격 일치를 위한 정규화 처리 후 매칭기에 전송함
\(\mathbf{v}_{\text{norm}} = \frac{\mathbf{v}_{\text{weighted}}}{\|\mathbf{v}_{\text{weighted}}\|_2}\)
C
Contents
