← 목록06 / CASE STUDY

AI · 모델 비교

VisionEye

사람의 이동과 선 통과를 추적합니다. 원근·가림·재등장 영상 3개를 보강해 검출기 4개와 추적 설정 3개를 비교했습니다. 원본·결과 영상, 63회 실행 기록과 누락 사례를 공개했습니다.

역할영상 처리 · 추적·집계 · 비교 화면 · 검수
기간2026.09
주요 도구Python · YOLO · RT-DETRv2 · BoT-SORT
VisionEye 실제 비교 화면: 같은 시점의 원본 영상과 반투명 추적 결과
실제 비교 화면 · 웹은 저장된 결과를 재생하며 모델을 실행하지 않습니다.
보강 프레임
1,083

09.21 · 원본 3개 · 반복 제외

검출기
4

YOLO26n · v8n · 11n · RT-DETRv2-S

보강 실행
63

검출 36회 · 캐시 추적 27회

01 / 개요

개요

검출 표시만으로는 사람이 빠지거나 ID가 바뀌는 지점을 확인하기 어렵습니다. 같은 프레임의 원본과 결과를 나란히 재생하고, 반투명 표시와 출입 기록을 함께 살펴보도록 만들었습니다.

로컬 Python 앱이 검출·추적·집계를 수행합니다. 공개 웹은 저장된 영상·CSV·JSON을 보여주는 결과 뷰어입니다.

02 / 구조

구조

기본 앱은 YOLO26n + ByteTrack입니다. confidence 0.1, 선 (0.1, 0.55)→(0.9, 0.55), 아래 방향 IN, 경계 여유 8px을 고정했습니다. 비교 영상은 저장된 좌표로 렌더하며 모델을 다시 실행하지 않습니다.

검출기 비교에는 같은 ByteTrack·집계기를 연결했습니다. 추적기 비교는 첫 YOLO 실행의 박스·점수를 재사용했습니다. 평가 영상에 맞춘 재학습이나 임계값 조정은 하지 않았습니다.

  1. 01입력

    원본 프레임

  2. 02검출

    YOLO26n

  3. 03추적

    ByteTrack

  4. 04통과

    유한한 선 · IN / OUT

  5. 05비교

    영상 · 실행 기록

2026.09.21 / 보강

보강 실험

Higgsfield Seedance 2.5로 15초 영상 3개를 새로 만들었습니다. 각 361프레임, 총 1,083개 고유 프레임에 검출 4종과 캐시 추적 3설정을 각각 3회 실행했습니다. 원본만 본 AI 검수의 통과 15건을 추론 전에 고정했습니다.

FP32·TF32 OFF·640×640·batch 1을 고정하고 같은 ByteTrack·집계기를 연결했습니다. YOLO26n은 one-to-many + 외부 NMS 경로입니다. YOLO의 letterbox와 RT-DETRv2의 warp 전처리, 모델 규모는 서로 다릅니다.

검출기 4종 모두 원근 IN 5 / OUT 0, 가림 0 / 0, 재등장 5 / 5였습니다. 엄격한 시간창은 총 13 / 15, 사전 정의한 ±0.5초 분석은 15 / 15가 대응했습니다. 방향·시간 대응이며 인물 신원 정확도는 아닙니다.

검출기원근 FPS가림 FPS재등장 FPS
YOLO26n89.91 (86.27–90.54)93.63 (92.73–94.84)91.03 (88.71–92.00)
YOLOv8n105.11 (104.85–109.41)116.71 (116.42–120.73)113.61 (112.70–117.24)
YOLO11n94.14 (93.39–94.74)99.65 (96.28–101.62)100.22 (94.94–100.63)
RT-DETRv2-S39.08 (38.22–40.03)38.73 (38.21–41.30)39.17 (38.98–39.74)
  • FPS: RTX 4090의 3회 중앙값·최솟값–최댓값. 읽기·검출·추적·집계·JSONL 포함, 초기화·5회 워밍업·렌더·인코딩 제외입니다. 사용 중인 PC에서 GPU 작업을 순차 실행했습니다.
  • 원근 영상은 양방향 교차 생성에 실패해 5명이 단방향으로 접근합니다. 가림 영상에서는 보이는 통과가 0건이며, 벽 뒤의 통과 부재까지 증명하지 않습니다. 생성 의도와 실제 원본을 구분했습니다.
  • 이번 조건의 처리량은 YOLOv8n이 가장 높았습니다. 같은 집계 결과가 전체 검출 품질이나 모든 환경의 순위를 보장하지 않습니다. 기존 09.15의 FP16·모델별 입력 비교와 분리합니다.

2026.09.21 / 추적

집계 누락

동일한 YOLO26n 첫 실행의 박스·점수·순서를 ByteTrack·BoT-SORT·TrackTrack에 전달했습니다. ReID와 카메라 이동 보정은 끄고 lost buffer는 24프레임으로 맞췄습니다. 추적기별 기본 연관 임계값은 조정하지 않았습니다.

원근 영상에서 TrackTrack은 원본의 5건 중 1건을 놓쳤습니다. 세 반복 모두 같았습니다. ID 수는 12→10→5로 줄었지만 집계는 5→5→4가 되어, 적은 ID 수를 성능 향상으로 해석할 수 없었습니다.

누락 대상은 선두 회색 상의였습니다. F135에서 ByteTrack·BoT-SORT는 ID 4로 IN을 기록했지만 TrackTrack은 같은 박스에 ID를 배정하지 않았습니다. F0–138에서 대상의 발을 포함한 후보의 최대 점수는 0.674920으로 신규 트랙 기준 0.7보다 낮았습니다. ID가 있는 점만 집계기에 들어가므로 신규 ID 미성립이 입력 누락으로 이어졌습니다. 혼합·중복 박스가 있는 이 구성의 관측이며, 임계값을 바꾼 대조 실험은 하지 않았습니다.

첫 반복의 고정 앵커 검수에서는 벽 가림 F18→192와 화면 밖 복귀 F120→240 모두 7조건에서 같은 ID 유지를 확인하지 못했습니다. ID 변경 또는 검출·ID 부재가 있었습니다. 짧은 교행 F48→72의 두 앵커는 7조건 모두 같은 ID였지만, 사이 전 프레임의 신원 유지를 보장하지 않습니다. 원본에서도 동일인 여부는 외양에 따른 추정이며, 긴 부재는 24프레임 유지 범위를 넘습니다.

추적기원근 IN / OUT추적 IDp50 / p95 ms
ByteTrack5 / 0120.528 / 0.699
BoT-SORT5 / 0100.511 / 0.688
TrackTrack4 / 050.599 / 0.788
  • 위 시간은 검출을 제외한 추적 단계의 3회 중앙값입니다. 파이프라인 FPS와 직접 비교하지 않습니다.
  • 가림과 재등장 집계는 세 설정 모두 각각 0 / 0, 5 / 5였습니다. 장시간 가림·화면 이탈은 24프레임 유지 범위를 넘으며, ReID OFF의 신원 복귀를 보장하지 않습니다.
  • 원본 검수·반복별 사건·프레임 좌표·영상 정렬 기록을 공개했습니다. 기본 앱의 ByteTrack은 변경하지 않았습니다.

03 / 09.15 검출

기존 검출

검출기 3개를 고유 602프레임에서 각각 3회 실행했습니다. 모든 반복에서 다인 영상은 IN 4 / OUT 8, 2인 영상은 IN 1 / OUT 1이었습니다. 반복한 영상을 독립 표본으로 세지 않습니다.

아래 FPS는 RTX 4090의 3회 중앙값과 최솟값–최댓값입니다. 읽기·검출·추적·집계·JSONL 기록을 포함하고 초기화·첫 프레임 5회 워밍업·렌더·영상 인코딩을 제외합니다. GPU 작업은 순차 실행하고 CUDA 완료까지 동기화했습니다.

검출기입력 · 정밀도다인 FPS2인 FPS
YOLO26n640 · FP1660.89 (58.61–61.23)67.01 (59.29–74.07)
RF-DETR Small512 · FP32 eager31.66 (31.04–33.40)31.07 (30.81–33.31)
DEIMv2-S640 · FP32 deploy18.29 (15.73–20.88)21.57 (20.40–23.01)
  • 모델별 native 입력·전처리·정밀도가 다릅니다. 동일 연산량의 비교나 일반적인 모델 순위가 아닙니다.
  • 기존 데모의 24.08 FPS는 solid 대시보드 렌더·저장과 첫 추론을 포함했습니다. 새 표의 렌더 제외 FPS와 직접 비교하지 않습니다.
  • 사용 중인 데스크톱에서 측정했습니다. 전용 격리 벤치마크나 촬영→표시 지연 측정은 아닙니다.

04 / 09.15 추적

기존 추적

602프레임 × 3설정 × 3회, 총 5,418개 프레임 기록의 순서·시각·박스·점수가 같은 YOLO 캐시와 일치했습니다. 세 설정 모두 다인 4 / 8, 2인 1 / 1을 기록했습니다.

아래는 다인 영상의 검출 제외 추적 단계 지연입니다. 각 반복의 p50·p95를 구한 뒤 3회 중앙값으로 요약했습니다. 캐시 재생 FPS를 전체 추론 FPS로 쓰지 않습니다.

추적기추적 IDp50 msp95 ms
ByteTrack220.7201.607
TrackTrack181.3073.004
TrackTrack + ReID1816.33398.002
  • ReID ON/OFF는 모든 프레임의 ID 할당까지 같았습니다. 이 두 영상에서는 ReID의 추가 이득이 관측되지 않았습니다.
  • 코트 인물은 ByteTrack의 ID 16/35 중복 뒤 35로 바뀌었습니다. TrackTrack은 ID 12로 복귀했지만 F291–293에는 ID가 없었습니다. ID 22→18을 전체 분절률 개선으로 해석하지 않습니다.
  • Ultralytics TrackTrack 구현을 비교했습니다. ReID는 공식 ONNX·CUDAExecutionProvider·224×224 crop이며, ON/OFF 설정은 with_reid 외 같습니다. 원 논문의 전체 재현은 아닙니다.

05 / 09.15 검수

기존 검수

기존 AI 원본 시각 검수의 14개 시간 구간을 고정했습니다. YOLO26n·DEIMv2-S·TrackTrack 두 설정은 14 / 14, RF-DETR는 13 / 14가 대응했습니다. RF-DETR의 한 OUT은 구간보다 0.083초 늦었으며 ±0.5초 보조 대조에서는 14 / 14였습니다.

대조 기준은 클립·방향·시간의 일대일 대응입니다. 같은 인물인지 확인한 정답이나 사람 검수자 합의는 아닙니다.

  • F0의 왼쪽 아래 잘린 인물은 YOLO가 놓쳤고 RF-DETR·DEIM은 검출했지만 겹친 추가 박스도 냈습니다. F291 코트 영역에는 세 검출기 모두 겹친 박스 2개가 남았습니다.
  • 이 두 프레임의 관찰로 전체 검출 재현율을 판단하지 않습니다. 프레임·좌표·점수는 검수 기록에 공개했습니다.

06 / 서버

모델 서버

별도의 로컬 HTTP 서버에서 YOLO26n 실제 가중치를 CPU로 실행했습니다. 정상 추론 20건과 시간 초과·추론 프로세스 종료 후의 자동 재시작을 확인하고, 실제 검출 좌표·응답 시간·오류 기록을 공개했습니다.

CPU FP32·2개 스레드·동시 추론 1개로 고정했습니다. 웹은 기록 뷰어이며 검증 서버는 종료했습니다. GPU 서빙, 장시간 운용, HTTP 서버·호스트 복구 또는 다른 모델 버전으로의 롤백을 검증한 것은 아닙니다.

항목관측
실제 모델 추론20 / 20
동시 요청 제한 / 시간 초과429 / 504
worker 종료 후 재시작503 → 200
복구 후 처리 중 요청0

ENGINEERING DECISIONS

판단

01

집계 기준

09.15의 적은 TrackTrack ID 수만으로 설정을 선택하지 않았습니다. 보강 원근 영상에서는 1건 누락이 드러났고, ByteTrack·BoT-SORT는 5건을 유지했습니다. 실제 영상의 신원 정답으로 재검증할 때까지 기본 ByteTrack을 유지합니다.

02

원본을 기준으로

생성 프롬프트의 인원과 동선을 정답으로 쓰지 않았습니다. 완성된 원본의 출입을 먼저 검수한 뒤 실행 결과와 대조했습니다.

03

재실은 미정

초기 재실 인원을 모르므로 계산 기준 0과 실제 인원을 구분합니다. 순증감 −4나 하한 보정된 0을 절대 재실 인원으로 해석하지 않습니다.

04

가림과 비교

로컬 기본 마스킹은 solid입니다. 웹의 12% 채움은 원본을 살펴보기 위한 표시로 privacy_protection=false이며, 검출되지 않은 사람은 solid에서도 가려지지 않습니다.

SCOPE & LIMITS

한계

  • 기존 2개·602프레임과 보강 3개·1,083프레임의 AI 생성 영상 실험입니다. 반복 실행은 새 표본이 아닙니다. 전 프레임 박스·ID·마스크 정답과 인간 합의 주석이 없어 HOTA·IDF1·현장 정확도는 측정하지 않았습니다.
  • 생성 영상의 부자연스러운 보행, 가장자리 잘림과 유사한 외형이 있습니다. 초기 인원은 미정이며 ID 분절을 고유 인원 증가로 보지 않습니다.
  • 실제 CCTV·웹캠·RTSP, 장시간 운용, 촬영→표시 지연은 검증하지 않았습니다. 보강 비교는 FP32·입력 크기를 맞췄지만 전처리·모델 규모는 다릅니다. 혼잡한 반복 교차 장면은 충분히 생성하지 못했습니다.
  • SAM 3.1은 공식 체크포인트의 접근 승인 문제(HTTP 401)로 실행하지 못했습니다.
다음 사례RelateAnything Lab ↗

Contact

hyunaeee@gmail.com ↗

대한민국 · 한국어 / 영어

포트폴리오 PDF

역할, 설계 판단, 검증 결과와 자료 링크를 함께 담습니다.

인쇄 창에서 ‘PDF로 저장’을 선택하세요.