Bomb Kirby Running
본문 바로가기
AI

hailotracker

by 코낄2 2025. 10. 16.

1) hailotracker가 하는 일 (요약)

  • GStreamer 요소로서 파이프라인 중간에 붙여 쓰는 스트리밍용 MOT 트래커입니다. 파이프라인에 hailotracker class-id=… kalman-dist-thr=… iou-thr=… init-iou-thr=… keep-… 같은 속성을 걸어 사용합니다. 예제 파이프라인/이슈에도 동일한 옵션들이 노출되어 있습니다. (GitHub)
  • 트래킹 결과는 **메타데이터(트랙 ID)**로 버퍼에 붙고, 파이썬/콜백에서 HAILO_UNIQUE_ID 또는 GStreamer GstMeta로 읽습니다(예: gst_buffer_get_hailotracker_meta). (Hailo Community)
  • 클래스별 추적을 지원(class-id), 필요시 전 클래스 추적도 가능(-1). 샘플과 가이드에서 class-id 변경 방법이 안내되어 있습니다. (Hailo Community)
  • 공개 정보와 노출된 파라미터 이름(예: kalman-dist-thr, iou-thr)을 종합하면, **칼만 필터 + IoU 기반 게이팅/매칭(= SORT 계열과 유사)**의 동작을 합니다. (GitHub)

구현 레벨 팁: 사용 중 성능 이슈가 있으면 gst-inspect-1.0 hailotracker로 지원 옵션/기본값을 바로 확인하세요. (gstreamer.freedesktop.org)


2) 동작/성능 관련 실무 관찰

  • 실행 주체: hailotracker는 CPU에서 동작(Hailo‑8/8L 가속 아님)한다는 공식 커뮤니티 답변이 있습니다. SoC/보드에 따라 병목이 될 수 있습니다. (Hailo Community)
  • 지연: 실사용에서 1‑프레임 지연이 관찰되었다는 사례 보고가 있습니다(낮은 FPS에서 체감). (Hailo Community)
  • 전 클래스 추적: class-id=-1로 모든 클래스 추적 시 FPS 하락을 보고한 사례가 있습니다(복잡도 증가 때문). (Hailo Community)

3) SORT / BoT‑SORT와의 비교

항목 hailotracker SORT BoT‑SORT

형태 GStreamer 요소(파이프라인 통합) 참고 구현/라이브러리(알고리즘) 참고 구현/라이브러리(알고리즘)
핵심 아이디어 칼만 + IoU 게이팅/연결(파라미터에서 유추) 칼만 + Hungarian + IoU, 매우 단순/고속 모션 + 외관(ReID) + CMC + 개선된 칼만 상태
외관 특징(ReID) 문서화된 기본 내장 X (옵션/예제 기준) 없음 있음(선택적/권장)
카메라 모션 보정(CMC) 문서화된 기본 내장 X 없음 있음
정확도(혼잡/가림)** 중간 (설정 의존) 낮음(IDs 잦음) 높음(IDs 감소)
속도/리소스 낮은 진입비용, CPU 부하 매우 빠름 ReID/CMC로 가중
파이프라인 통합 매우 쉬움(Gst 요소 1줄) 별도 코드 통합 별도 코드 통합
  • SORT: “Simple Online and Realtime Tracking” — 칼만 + Hungarian + IoU, 매우 빠르지만 가림/누락에 취약. (arXiv)
  • BoT‑SORT: 모션(칼만) + 외관(ReID) + **카메라 모션 보정(CMC)**를 결합해 ID 스위치 대폭 감소. 정확도/견고성↑, 복잡도/리소스 요구↑. (arXiv)
  • hailotracker: 파라미터/예제에 근거해 SORT 계열 단순형에 가깝고, Hailo 파이프라인과의 통합성이 강점. 외관/CMC 같은 고급 단서가 기본 제공된다고 문서화되어 있지 않음. (GitHub)

한 줄 결론: 통합·간편성/지연 최소화가 필요하면 hailotracker, 정확도·ID 안정성이 최우선이면 BoT‑SORT(또는 DeepSORT/ByteTrack 등)를 고려—대신 파이프라인 외부에서 별도 통합이 필요합니다. (arXiv)


4) hailotracker의 장단점

장점

  • 통합 용이: hailonet → hailofilter → hailotracker → …로 바로 연결, 트랙 ID는 메타로 전달되어 콜백에서 즉시 활용. (Hailo Community)
  • 튜닝 포인트 명확: kalman-dist-thr, iou-thr, init-iou-thr, keep-*-frames, class-id 등으로 동작이 직관적으로 조정 가능. (GitHub)

단점

  • CPU 부하: 하드웨어 가속 미사용, 장치에 따라 병목 가능. (Hailo Community)
  • 고난도 장면 취약: ReID/CMC 미사용 구성이라 가림·군중에서 ID 스위치가 늘 수 있음(알고리즘적 한계). (arXiv)
  • 프레임 지연 사례: 1‑프레임 오프셋 보고. (Hailo Community)

5) 파라미터 튜닝 가이드(현장감 있는 값 범위)

기본값은 레포 코드/예제와 유사(예: kalman-dist-thr≈0.8, iou-thr≈0.9, init-iou-thr≈0.7, keep-tracked-frames≈15). 실제 최적값은 장면에 강하게 의존합니다. (GitHub)

  • 가림/혼잡이 잦을 때(IDs 줄이기)
    • keep-tracked-frames ↑(예: 20–30): 잠깐의 누락으로 트랙이 끊기는 것을 완화.
    • iou-thr ↓(예: 0.6–0.8): 매칭을 조금 더 관대하게 해서 재연결 기회를 늘림.
    • init-iou-thr ↓(예: 0.5–0.7): 새 트랙 생성 시 초기 허용 범위를 넓힘.
  • 빠른 운동/카메라 흔들림(매칭 안정화)
    • kalman-dist-thr ↑(예: 0.9–1.0): 예측과 측정의 거리 게이트를 느슨하게.
    • 입력 해상도/프레임레이트 확보로 칼만 예측 안정화.
  • 성능(속도) 우선
    • 가능한 한 단일 클래스만 추적(class-id 지정). 전 클래스 추적은 FPS 하락 위험. (Hailo Community)
    • CPU 여유 없으면 keep-*-frames를 낮추고, 파이프라인 큐/복사 최소화. (Hailo Community)

6) 언제 무엇을 쓸까?

  • Hailo 파이프라인 안에서 빠르게 “ID만 필요”: hailotracker가 가장 단순·견고(추가 의존성 X). (Hailo Community)
  • 군중/가림이 심하고 ID 지속성이 최우선: BoT‑SORT(또는 DeepSORT/ByteTrack) 계열을 붙이는 편이 일반적으로 정확도 유리(다만 외관 추출·CMC 등 추가 비용/통합 필요). (arXiv)

7) 참고 링크

  • hailotracker 옵션/예제 파이프라인(옵션명 확인) – Hailo RPi5 예제 이슈 스니펫. (GitHub)
  • 트랙 ID 읽기(파이썬/GstMeta) – 커뮤니티 스레드 모음. (Hailo Community)
  • CPU 동작/성능 주의 – 커뮤니티 공식 답변. (Hailo Community)
  • 1‑프레임 지연 사례 – 커뮤니티 리포트. (Hailo Community)
  • SORT/BoT‑SORT 원 논문 – 알고리즘 특성 비교 근거. (arXiv)

'AI' 카테고리의 다른 글

YOLO onnx 모델 hef로 변환하기. (+라즈베리 파이 적용)  (3) 2025.10.15
deep-text-recognition-benchmark 모델 ONNX 변환  (0) 2024.12.24
[논문 리뷰] BPE Tokenizer  (1) 2024.02.04
KLUE  (0) 2024.02.02
[논문 리뷰]attention 매커니즘  (0) 2024.01.31