Monitor your security cameras with locally processed AI
TL;DR Highlight
How to analyze CCTV in real-time with AI on edge devices — no cloud required.
Who Should Read
Developers building self-hosted surveillance systems on home servers or Raspberry Pis, or self-hosting enthusiasts who avoid cloud-based security camera services for privacy and cost reasons.
Core Mechanics
- Camera footage processed with AI inference locally on the machine — no cloud upload needed
- Local LLM runtime (Ollama) paired with vision models (LLaVA, moondream) for video analysis
- Motion detection events trigger frame capture → AI query in natural language ('what do you see?')
- Alert conditions customizable via prompts — e.g., 'alert if person detected', 'alert if car in driveway'
Evidence
- Original paper text not available for quantitative data — content below is based on title inference
- Local inference with no network latency — ~1-3 sec/frame on CPU-only (no GPU)
- $0/month cloud costs vs. cloud API services (excluding hardware costs)
How to Apply
- Set up Frigate NVR + Ollama (moondream model): motion detection → MQTT event → frame capture → Ollama API call → send results as Home Assistant notifications.
- Branch prompts by scenario: 'If there is a person in this image, say YES. Otherwise, say NO.' — forcing short answers simplifies parsing.
- Raspberry Pi 5 or low-power x86 mini PC + USB camera for cheapest setup. Add a Coral TPU for faster inference.
Code Example
# Python example: Analyze camera frames with a local Ollama vision model
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', # or llava:7b
messages=[
{
'role': 'user',
'content': f'{alert_condition}\nLook at the image and answer with only YES or NO.',
'images': [image_data]
}
]
)
return response['message']['content'].strip()
# Usage example
result = analyze_frame(
'/tmp/motion_capture.jpg',
'Is there a person in this image?'
)
if 'YES' in result.upper():
send_notification('Person detected!')Terminology
Related Papers
Show HN: OpenKnowledge – open source AI-first alternative to Obsidian/Notion
Git 기반 동기화와 Claude/Codex/Cursor 연동을 내장한 로컬 우선 마크다운 에디터로, AI 에이전트의 두 번째 뇌(LLM Wiki)로 활용할 수 있는 오픈소스 도구다.
The Unfireable Safety Kernel: Execution-Time AI Alignment for AI Agents and Other Escapable AI Systems
AI 에이전트가 자신의 안전장치를 우회할 수 없도록, 에이전트 프로세스 바깥에 수학적으로 증명된 강제 통제 게이트를 배치하는 아키텍처
RubyLLM: A Ruby framework for all major AI providers
OpenAI, Claude, Gemini 등 주요 AI 프로바이더를 단일 인터페이스로 통합한 Ruby 프레임워크로, Rails 통합과 에이전트 기능까지 지원해 Ruby 개발자가 AI 기능을 빠르게 붙일 수 있다.
Qwen-AgentWorld: Language World Models for General Agents
Alibaba Qwen 팀이 AI 에이전트가 행동 결과를 미리 시뮬레이션할 수 있는 'Language World Model'을 공개했다. 에이전트 훈련과 실행 경로 검증에 새로운 패러다임을 제시하는 연구다.
SHERLOC: Structured Diagnostic Localization for Code Repair Agents
버그 위치만 알려주는 게 아니라 '왜, 어떻게 고쳐야 하는지'까지 진단 리포트를 생성해서 코드 수정 에이전트의 성능을 높이는 training-free 프레임워크
Show HN: peerd – AI agent harness that runs entirely in your browser
백엔드 서버 없이 Chrome/Firefox 확장 프로그램으로만 동작하는 AI 에이전트 실행 환경으로, 브라우저 탭을 직접 조작하고 WASM Linux VM까지 구동할 수 있어 프라이버시와 보안을 동시에 챙길 수 있다.