본문으로 건너뛰기

초과체류 감지

예약 종료 후 룸 내 사람 존재 여부를 YOLO 객체 감지로 확인하는 시스템입니다.

전체 흐름

OccupancyAlert 상태

상태설명
DETECTED최초 감지 (checkCount=1)
ESCALATED재확인 시 여전히 감지 (checkCount 증가)
RESOLVED해소됨

해소 사유

resolvedReason설명
LEFT퇴실 확인
NEW_GUEST새로운 예약 손님 입실

컴포넌트

컴포넌트역할
OccupancyCheckScheduler10분 간격 스케줄러 실행
OccupancyCheckService감지 로직 (기존 알림 재확인 + 신규 종료 예약 확인)
HomeAssistantSnapshotClientHA 카메라 프록시로 JPEG 스냅샷 조회
OccupancyDetectorClientPython YOLO FastAPI 컨테이너 호출
OccupancyAlert 엔티티감지 이력 추적

YOLO 컨테이너

  • 프로토콜: POST multipart/form-data (JPEG 이미지)
  • 응답:
    • hasOccupancy: 사람 존재 여부
    • personCount: 감지된 인원 수
    • blurredImage: 사람 영역 블러 처리된 이미지 (Base64)

Discord 알림

  • 지점별 discordRoomOccupancyMonitoringThreadId가 설정된 지점만 활성화
  • 감지 알림: 손님 정보 + 블러 처리된 이미지
  • 해소 알림: 퇴실 확인 + 원본 스냅샷
  • 에스컬레이션: 체크 횟수 + 블러 이미지

다중 인원 감지

별도 스케줄러(MultipleOccupancyCheckService)가 5분 간격으로 실행되어, 이용 중인 예약에서 2인 이상 감지 시 Discord 알림을 발송합니다.