# 사람 수 계산 프로그램 (출석 체크용) 프로젝트

> **안내**: 이 문서는 사용자와 에이전트 간의 대화 내용을 바탕으로 실시간 업데이트됩니다. 결정된 사항은 즉시 반영되어 다음 작업의 맥락으로 활용됩니다.

## 0. 문서 관리 규칙
- 새로운 결정 사항이 생기면 '1. 결정된 사항' 섹션으로 즉시 이동 및 업데이트합니다.
- 논의 중인 질문의 답변이 완료되면 '2. 아직 논의가 필요한 사항'에서 제거합니다.
- 모든 업데이트 후에는 변경된 파일 내용을 사용자에게 확인해 줍니다.

## 1. 결정된 사항
- **입력 소스**: RTSP 실시간 스트리밍 (`rtsp://mev.o-r.kr:20003/stream1`)
- **실행 방식**: GUI 프로그램 (사용자가 원할 때 실행하여 인원 산출)
- **기술 스택**: Python, OpenCV, YOLO (객체 탐지 모델)
- **중복 제거 전략**: 
    - 카메라의 **프리셋(Preset)** 기능을 활용하여 여러 구역을 촬영.
    - 각 구역 사진에서 분석할 영역(ROI)을 사전에 정의하여 겹치는 구간의 중복 집계를 방지함.
- **카메라 제어**: 
    - **자동 제어**: 프로그램이 HTTP 요청을 통해 카메라 프리셋을 직접 조작함.
    - **접속 정보**: `http://192.168.0.90/` (ID: admin / PW: admin)
- **영역 설정(ROI) 도구**:
    - 프로그램 내 GUI를 통해 마우스로 분석 영역을 직접 드래그하여 설정하고 저장하는 기능을 포함함.
- **결과 처리 및 알림**:
    - **카카오톡 전송**: 산출된 인원수 결과를 카카오톡 메시지로 전송함.
    - **전송 방식**: 우선 '나에게 보내기(API)' 방식으로 구현 (추후 단체 채팅방 확장 가능성 고려).
- **GUI 시각화**:
    - 분석 시 캡처된 화면에 탐지된 사람을 박스(Bounding Box)로 표시하여 시각적으로 확인 가능하게 함.
    - 이를 통해 사용자가 오작동 여부를 실시간으로 점검할 수 있도록 함.
- **로컬 데이터 보관**:
    - 카카오톡 전송과 별개로, 실행 시점의 날짜, 시간, 인원수 결과를 로컬 **엑셀(CSV)** 파일에 지속적으로 기록하여 보관함. (구현 완료: `data_logger.py`)

## 2. 아직 논의가 필요한 사항 (질문 목록)
- (현재 없음. 모든 초기 요구사항 협의 완료)

## 3. 다음 단계
1. **개발 착수 (우선 순위)**: 
    - **시퀀스 매니저(Sequence Manager) 구현**: 여러 프리셋을 순차적으로 돌며 인원을 집계하고 합산하는 자동화 로직 개발.
    - **ROI(영역 설정) 필터링**: 각 프리셋 이미지 내에서 특정 영역의 사람만 카운트하여 중복을 방지하는 기능.
    - **GUI 프레임워크 구축**: Python(PyQt6 또는 Tkinter)을 이용한 기본 인터페이스 개발.
    - **카톡 API 연동**: 카카오 개발자 센터 설정을 통한 '나에게 보내기' 토큰 발급 및 테스트.
    - 카카오 개발자 센터 설정을 통한 '나에게 보내기' 토큰 발급 및 테스트.
�**: 화면 위에서 영역을 지정하는 초기 기능 구현.
3. **카톡 API 연동**:
    - 카카오 개발자 센터 설정을 통한 '나에게 보내기' 토큰 발급 및 테스트.
