suzuran0y/CCTV-Smartphone-AI-Monitoring

本地监控 + AI 视觉 — LAN-based smartphone-powered AI monitoring framework with structured event output for data acquisition and analysis.

Sentinel – 실시간 LAN 기반 시각 모니터링 시스템

무엇인가요 – Sentinel은 일반적인 안드로이드 스마트폰을 네트워크 카메라 노드로, PC 측 Flask 서버를 실시간 미리보기, 녹화, AI 분석 대시보드로 전환하는 오픈소스 프레임워크입니다. 모든 비디오 트래픽은 로컬 LAN 내부에 머무르며, 외부 추론 API를 연결하지 않는 한 클라우드 서비스는 필요하지 않습니다.

주요 구성 요소

구성 요소 역할 주요 기술
CamFlow (안드로이드 앱) 스마트폰 카메라를 캡처하고, 각 프레임을 JPEG로 압축하여 서버에 POST합니다. Java/Kotlin, Android SDK
PC 대시보드 프레임을 수신하고, 최신 이미지를 버퍼에 저장하며, MJPEG 스트림을 제공하고, 세그먼트화된 MP4/AVI 파일을 녹화하며, 선택적 AI 모듈을 실행합니다. Python 3.9+, Flask, OpenCV, ffmpeg
브라우저 UI 실시간 비디오를 표시하고, 녹화 시작/정지, 파라미터 조정, 로그 및 AI 이벤트 JSON 확인을 가능하게 합니다. HTML/JS (정적 자산)

작동 방식

  1. 데이터 수집 계층 – CamFlow는 HTTP POST /upload를 통해 지속적으로 단일 프레임 JPEG을 업로드합니다.
  2. 서비스 처리 계층 – Flask 서버는 최신 프레임을 FrameBuffer에 저장합니다. 별도의 워커가 이 버퍼에서 읽어 다음 작업을 수행합니다:
    • MJPEG 스트리밍 (/stream)
    • 세그먼트화된 비디오 녹화
    • 선택적 AI 모니터링
  3. 표현 계층 – 브라우저 대시보드는 MJPEG 스트림을 읽고, 스트림 FPS, JPEG 품질, 녹화 코덱, 모션 트리거 임계값, AI 프롬프트 템플릿 등의 컨트롤을 제공합니다.

AI 트리거 모니터링

  • 각 프레임에서 작동하는 경량 모션 감지기(전통적 CV)가 있습니다.
  • 모션 감지가 설정 가능한 임계값을 초과하면 시스템은 OBSERVE 상태로 전환하고, 플러그인 가능한 비전 모델(예: OpenAI, Claude, 또는 HTTP 기반 추론 서비스)을 호출합니다.
  • 모델의 응답은 고정된 JSON 스키마(has_person, risk_level, confidence, summary, …)로 파싱되어 나중 분석을 위해 로깅됩니다.
  • 프롬프트 템플릿, 장면 프로파일, 추가 규칙 파라미터는 대시보드에서 편집 가능하여 모델의 동작을 프로그래밍 가능하게 만듭니다.

왜 유용한가

  • 개인정보 우선: 모든 비디오와 로그는 로컬 PC에 유지되며, SD 카드나 제3자 클라우드 스토리지가 필요하지 않습니다.
  • 저비용: 사용하지 않는 안드로이드 스마트폰 하나만으로도 카메라 노드가 됩니다. 전용 IP 카메라가 필요하지 않습니다.
  • 확장성: AI 모듈은 인터페이스로 설계되어, 어떤 비전 모델도 교체하거나 사용자 정의 CV 파이프라인을 추가할 수 있습니다.
  • 연구용 최적화: 구조화된 JSON 이벤트 로그로 인해, 나중 모델 훈련이나 통계 연구를 위한 데이터셋 수집이 용이합니다.

현재 성숙도

  • 버전 v1.1.3 (2026-08-20) – Windows 호환 코덱 백업, API 키 마스킹, 주소 검증 개선, 확장된 테스트 세트를 포함한 안정적 릴리스.
  • 실시간 미리보기, 세그먼트 녹화, 모션 트리거, AI 훅과 같은 핵심 기능은 LAN 배포용으로 프로덕션 수준입니다.
  • 문서에는 단계별 배포 가이드, 안드로이드 사용자 가이드, 그리고 향후 기능(예: 다중 카메라 집계, 디바이스 내 추론)에 대한 로드맵이 포함되어 있습니다.

시작하기

  1. 리포지토리 복제하고 requirements.txt에서 Python 종속성 설치.
  2. PC에서 server.py 실행 (Python 3.9+). 콘솔에 안드로이드 클라이언트용 주소(IP:PORT)가 출력됩니다.
  3. 안드로이드 기기에서 CamFlow 설치 (PhoneCamSender/에 제공된 APK 또는 소스에서 빌드)하고 출력된 주소를 입력합니다.
  4. 브라우저에서 출력된 URL을 열어 실시간 MJPEG 스트림을 확인하고, 녹화를 시작하거나 AI 모니터를 활성화합니다.
  5. (선택 사항) 대시보드를 통해 config/config.json을 편집하여 스트림 FPS, 녹화 코덱, 모션 임계값, AI 프롬프트 템플릿을 조정합니다.

라이선스 – MIT (LICENSE 참조).


결론 – Sentinel은 스마트폰을 저렴한 카메라로 활용하고, 선택적 대규모 모델 추론을 제공하는 진정한 자체 포함형 시각 모니터링 프레임워크입니다. AI/ML/LLM 기반 모니터링 분야에 완벽하게 부합하며, 아마추어용 홈 보안 설정부터 다중 모달 시각 데이터 수집을 위한 연구 프로토타입까지 다양한 용도로 활용 가능합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • Dispatch