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
Migrating a production AI agent to GPT-5.6: 2.2x faster, 27% cheaper
마케팅 웹사이트를 자동 생성하는 프로덕션 AI 에이전트를 Claude Opus 4.8에서 GPT-5.6 Sol로 전환한 실전 경험담으로, 단순 모델 교체가 아니라 eval 하네스, 툴 스키마, 캐싱, 추론 리플레이까지 손봐야 했던 과정을 구체적인 수치와 함께 정리했다.
What xAI's Grok build CLI sends to xAI: A wire-level analysis
xAI의 공식 코딩 CLI 도구 Grok Build가 사용자 동의 없이 전체 Git 저장소와 .env 시크릿 파일을 xAI 서버로 업로드한다는 사실이 네트워크 트래픽 분석으로 밝혀졌다.
Remember When It Matters: Proactive Memory Agent for Long-Horizon Agents
LLM 에이전트가 긴 작업 중 중요한 정보를 잊어버리는 문제를 별도의 메모리 에이전트가 '적절한 타이밍에' 끼어들어 해결하는 방법
WebSwarm: Recursive Multi-Agent Orchestration for Deep-and-Wide Web Search
복잡한 웹 검색을 재귀적으로 분해하고 각 노드에 적합한 검색 모드를 동적으로 할당하는 멀티에이전트 프레임워크
Show HN: Reverse-engineering web apps into agent tools
로그인된 웹 앱의 API 호출을 브라우저에서 감시해 자동으로 MCP 도구로 변환하는 에이전트를 만들었다. 소스 코드나 공식 API 문서 없이도 Jira, Spotify 같은 서비스에 AI 어시스턴트를 붙일 수 있다.
Show HN: FableCut – A browser video editor AI agents can drive (zero deps)
타임라인 전체를 JSON 파일 하나로 표현하고 MCP/REST로 AI 에이전트가 직접 편집할 수 있는 브라우저 비디오 에디터로, Claude 같은 AI가 프롬프트 하나로 영상을 자동 컷편집하고 결과를 실시간으로 UI에 반영해준다.