NVR with realtime local object detection for IP cameras
Go to file
Josh Hawkins 24ac9f3e5a
Use sqlite-vec extension instead of chromadb for embeddings (#14163)
* swap sqlite_vec for chroma in requirements

* load sqlite_vec in embeddings manager

* remove chroma and revamp Embeddings class for sqlite_vec

* manual minilm onnx inference

* remove chroma in clip model

* migrate api from chroma to sqlite_vec

* migrate event cleanup from chroma to sqlite_vec

* migrate embedding maintainer from chroma to sqlite_vec

* genai description for sqlite_vec

* load sqlite_vec in main thread db

* extend the SqliteQueueDatabase class and use peewee db.execute_sql

* search with Event type for similarity

* fix similarity search

* install and add comment about transformers

* fix normalization

* add id filter

* clean up

* clean up

* fully remove chroma and add transformers env var

* readd uvicorn for fastapi

* readd tokenizer parallelism env var

* remove chroma from docs

* remove chroma from UI

* try removing custom pysqlite3 build

* hard code limit

* optimize queries

* revert explore query

* fix query

* keep building pysqlite3

* single pass fetch and process

* remove unnecessary re-embed

* update deps

* move SqliteVecQueueDatabase to db directory

* make search thumbnail take up full size of results box

* improve typing

* improve model downloading and add status screen

* daemon downloading thread

* catch case when semantic search is disabled

* fix typing

* build sqlite_vec from source

* resolve conflict

* file permissions

* try build deps

* remove sources

* sources

* fix thread start

* include git in build

* reorder embeddings after detectors are started

* build with sqlite amalgamation

* non-platform specific

* use wget instead of curl

* remove unzip -d

* remove sqlite_vec from requirements and load the compiled version

* fix build

* avoid race in db connection

* add scale_factor and bias to description zscore normalization
2024-10-07 14:30:45 -06:00
.cspell Work through most of the cspell warnings in python (#13794) 2024-09-17 10:41:46 -05:00
.devcontainer Removed usage of PyYAML for config parsing. (#13883) 2024-09-22 10:56:57 -05:00
.github Bump docker/login-action from 3.2.0 to 3.3.0 (#12555) 2024-10-01 06:03:55 -06:00
.vscode Fix vscode launch configuration (#13795) 2024-09-17 10:42:10 -05:00
config
docker Use sqlite-vec extension instead of chromadb for embeddings (#14163) 2024-10-07 14:30:45 -06:00
docs Use sqlite-vec extension instead of chromadb for embeddings (#14163) 2024-10-07 14:30:45 -06:00
frigate Use sqlite-vec extension instead of chromadb for embeddings (#14163) 2024-10-07 14:30:45 -06:00
migrations Implement support for notifications (#12523) 2024-08-29 20:19:50 -06:00
notebooks
web Use sqlite-vec extension instead of chromadb for embeddings (#14163) 2024-10-07 14:30:45 -06:00
.dockerignore
.gitignore Removed usage of PyYAML for config parsing. (#13883) 2024-09-22 10:56:57 -05:00
.pylintrc
audio-labelmap.txt
benchmark_motion.py
benchmark.py Custom classes for Process and Metrics (#13950) 2024-09-27 07:53:23 -05:00
CODEOWNERS Initial support for Hailo-8L (#12431) 2024-08-29 20:19:50 -06:00
cspell.json Work through most of the cspell warnings in python (#13794) 2024-09-17 10:41:46 -05:00
docker-compose.yml
labelmap.txt
LICENSE
Makefile Formatting improvements (#13765) 2024-09-17 07:39:44 -05:00
netlify.toml
package-lock.json Implement support for notifications (#12523) 2024-08-29 20:19:50 -06:00
process_clip.py Removed usage of PyYAML for config parsing. (#13883) 2024-09-22 10:56:57 -05:00
pyproject.toml
README.md

logo

Frigate - NVR With Realtime Object Detection for IP Cameras

A complete and local NVR designed for Home Assistant with AI object detection. Uses OpenCV and Tensorflow to perform realtime object detection locally for IP cameras.

Use of a Google Coral Accelerator is optional, but highly recommended. The Coral will outperform even the best CPUs and can process 100+ FPS with very little overhead.

  • Tight integration with Home Assistant via a custom component
  • Designed to minimize resource use and maximize performance by only looking for objects when and where it is necessary
  • Leverages multiprocessing heavily with an emphasis on realtime over processing every frame
  • Uses a very low overhead motion detection to determine where to run object detection
  • Object detection with TensorFlow runs in separate processes for maximum FPS
  • Communicates over MQTT for easy integration into other systems
  • Records video with retention settings based on detected objects
  • 24/7 recording
  • Re-streaming via RTSP to reduce the number of connections to your camera
  • WebRTC & MSE support for low-latency live view

Documentation

View the documentation at https://docs.frigate.video

Donations

If you would like to make a donation to support development, please use Github Sponsors.

Screenshots

Live dashboard

Live dashboard

Streamlined review workflow

Streamlined review workflow

Multi-camera scrubbing

Multi-camera scrubbing

Built-in mask and zone editor

Multi-camera scrubbing