Skip to content

Repository files navigation

RemiCare AI 서버

카메라 기반 낙상/화장실 감지 + 건강 데이터 예측을 하나의 서버에서 처리합니다.


파일 구성

파일 설명
server.py 메인 실행 파일 — 카메라 스트리밍, 낙상/화장실 감지, 건강 예측 API 통합
detector.py YOLOv8-pose 기반 사람 감지
zone_monitor.py 낙상 감지 / 화장실 장시간 미복귀 감지 로직
camera_config.py 포트, 백엔드 URL, 노인 ID 등 설정값
yolov8n-pose.pt YOLO 포즈 추정 모델 파일
xgboost_emergency_model.pkl 건강 데이터 응급 예측 모델
requirements.txt 의존성 패키지 목록

설치

pip install -r requirements.txt

실행

cd AI
python server.py

노인 ID를 바꾸려면 환경변수로 지정:

ELDERLY_ID=2 python server.py

실행 흐름

python server.py 실행
  │
  ├─ XGBoost 모델 로드
  ├─ Flask 서버 시작 (포트 5000)  ← 앱이 바로 연결 가능
  ├─ 전체 화면을 기본 구역으로 카메라 시작
  └─ 백엔드에 저장된 구역이 있으면 자동으로 불러옴

앱에서 서버 주소(http://노트북IP:5000)를 입력하면 영상이 바로 표시됩니다.
구역(거실/화장실)은 앱 설정 탭 → 구간 설정하기 에서 드래그로 설정합니다.


API 엔드포인트

메서드 경로 설명
GET /video/feed MJPEG 실시간 스트리밍
GET /snapshot 현재 프레임 이미지(JPEG) 1장
GET /api/status 낙상/화장실 감지 상태 조회
POST /api/status/reset 감지 상태 초기화
POST /update_config 앱에서 구역 좌표 전송 및 즉시 적용
POST /ai/predict 건강 데이터 응급 여부 예측

구역 설정 (/update_config)

앱에서 드래그로 거실/화장실 구역을 설정하면 이 엔드포인트로 전송됩니다.
좌표는 이미지 크기 대비 비율(0.0 ~ 1.0) 로 전달합니다.

{
  "elderlyId": 1,
  "bX": 0.1, "bY": 0.0, "bW": 0.6, "bH": 1.0,
  "cX": 0.7, "cY": 0.1, "cW": 0.3, "bH": 0.8
}

건강 예측 (/ai/predict)

웨어러블 생체 데이터를 받아 XGBoost 모델로 응급 여부를 판단하고,
이상 시 GPT-3.5가 사회복지사용 설명 문구를 생성합니다.

요청 예시:

{
  "elderlyId": 1,
  "timestamp": "2025-05-14 23:59",
  "Heartrate": 110,
  "Breathrate": 22,
  "SPO2": 93,
  "Walking_steps": 1200,
  "Caloricexpenditure": 80
}

응답 예시:

{
  "elderlyId": 1,
  "predictionLabel": "Emergency (비정상)",
  "explanation": "심박수와 호흡수가 정상 범위를 초과했습니다. ..."
}

GPT 기능을 사용하려면 환경변수 OPENAI_API_KEY 설정이 필요합니다.


백엔드 연동

위험 감지 시 자동으로 POST /api/alert/emergency 로 전송합니다.

{
  "elderlyId": 1,
  "predictionLabel": "Emergency (비정상) - 낙상",
  "explanation": "거실에서 낙상이 감지되었습니다. 즉시 확인이 필요합니다."
}

환경변수

변수 기본값 설명
ELDERLY_ID 1 모니터링할 노인 DB ID
BACKEND_URL http://localhost:8080 백엔드 서버 주소
STREAM_PORT 5000 Flask 서버 포트
OPENAI_API_KEY 없음 GPT 설명 생성용 OpenAI 키

노트북 IP 확인

ipconfig getifaddr en0

앱 설정에 http://[위 IP]:5000 형식으로 입력하세요.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages