로컬 AI로 보안 카메라 모니터링하기
Monitor your security cameras with locally processed AI
TL;DR Highlight
클라우드 없이 엣지 디바이스에서 AI로 CCTV를 실시간 분석하는 방법.
Who Should Read
홈 서버나 라즈베리파이에 자체 감시 시스템을 구축하려는 개발자, 또는 프라이버시와 비용 문제로 클라우드 기반 보안 카메라 서비스를 꺼리는 셀프호스팅 애호가.
Core Mechanics
- 카메라 영상을 클라우드로 전송하지 않고 로컬 머신에서 직접 AI 추론 처리
- Ollama 같은 로컬 LLM 런타임과 비전 모델(예: LLaVA, moondream)을 연동해 영상 분석
- 움직임 감지 이벤트 발생 시 프레임을 캡처해 AI에게 '무엇이 보이는지' 자연어로 질의
- 알림 조건을 프롬프트로 커스터마이징 — 예: '사람이 있으면 알림', '차량이면 무시'
- Frigate, Home Assistant 같은 오픈소스 NVR(Network Video Recorder)과 통합 가능
Evidence
- 논문 본문 미제공으로 정량 수치 확인 불가 — 아래 내용은 제목 기반 추정치임
- 로컬 추론 시 네트워크 지연 없이 프레임당 처리 가능 (GPU 없이 CPU 전용 기준 ~1~3초/프레임)
- 클라우드 API 대비 월정액 비용 $0 (하드웨어 비용 제외)
How to Apply
- Frigate NVR + Ollama(moondream 모델) 조합으로 구성: 움직임 감지 시 MQTT 이벤트 → 프레임 캡처 → Ollama API 호출 → 결과를 Home Assistant 알림으로 전송
- 프롬프트를 상황별로 분기: '이 이미지에 사람이 있으면 YES, 없으면 NO만 답해'처럼 단답 유도로 파싱 단순화
- 라즈베리파이 5 또는 저전력 미니PC(예: N100 칩셋)에서 moondream2 같은 경량 비전 모델 사용 시 상시 운영 비용 최소화
Code Example
snippet
# Python 예시: 카메라 프레임을 로컬 Ollama 비전 모델로 분석
import ollama
import base64
from pathlib import Path
def analyze_frame(image_path: str, alert_condition: str) -> str:
image_data = base64.b64encode(Path(image_path).read_bytes()).decode()
response = ollama.chat(
model='moondream', # 또는 llava:7b
messages=[
{
'role': 'user',
'content': f'{alert_condition}\n이미지를 보고 YES 또는 NO로만 답해.',
'images': [image_data]
}
]
)
return response['message']['content'].strip()
# 사용 예시
result = analyze_frame(
'/tmp/motion_capture.jpg',
'이 이미지에 사람이 있나요?'
)
if 'YES' in result.upper():
send_notification('사람 감지됨!')Terminology
NVRNetwork Video Recorder. 여러 대의 IP 카메라 영상을 한 곳에서 녹화·관리하는 소프트웨어 또는 장치. DVR의 네트워크 버전.
OllamaLLM을 로컬에서 쉽게 실행할 수 있게 해주는 툴. Docker처럼 'ollama run llava' 한 줄로 AI 모델을 내 컴퓨터에서 돌릴 수 있음.
엣지 추론클라우드 서버가 아닌 카메라나 로컬 서버 같은 '현장 디바이스'에서 AI 연산을 처리하는 것. 인터넷 없이도 동작하고 데이터가 외부로 안 나감.
moondream초경량 비전-언어 모델. 이미지를 보고 질문에 답할 수 있는데, 크기가 작아서 라즈베리파이 같은 저사양 기기에서도 돌아감.
MQTTIoT 기기 간 메시지를 주고받는 경량 프로토콜. 보안 카메라가 움직임을 감지하면 이 프로토콜로 'motion detected' 이벤트를 브로드캐스트함.
LLaVALarge Language and Vision Assistant. 텍스트와 이미지를 동시에 이해하는 오픈소스 멀티모달 모델. '이 사진에 뭐가 있어?'라고 물으면 답해줌.