|
пре 5 година | |
---|---|---|
.github | пре 5 година | |
config | пре 5 година | |
frigate | пре 5 година | |
scripts | пре 5 година | |
.dockerignore | пре 5 година | |
.gitignore | пре 5 година | |
Dockerfile | пре 5 година | |
LICENSE | пре 6 година | |
README.md | пре 5 година | |
benchmark.py | пре 5 година | |
detect_objects.py | пре 5 година | |
diagram.png | пре 6 година |
Note: This version requires the use of a Google Coral USB Accelerator
Uses OpenCV and Tensorflow to perform realtime object detection locally for RTSP cameras. Designed for integration with HomeAssistant or others via MQTT.
You see multiple bounding boxes because it draws bounding boxes from all frames in the past 1 second where a person was detected. Not all of the bounding boxes were from the current frame.
Build the container with
docker build -t frigate .
The mobilenet_ssd_v2_coco_quant_postprocess_edgetpu.tflite
model is included and used by default. You can use your own model and labels by mounting files in the container at /frozen_inference_graph.pb
and /label_map.pbtext
. Models must be compatible with the Coral according to this.
Run the container with
docker run --rm \
--privileged \
-v /dev/bus/usb:/dev/bus/usb \
-v <path_to_config_dir>:/config:ro \
-p 5000:5000 \
-e RTSP_PASSWORD='password' \
frigate:latest
Example docker-compose:
frigate:
container_name: frigate
restart: unless-stopped
privileged: true
image: frigate:latest
volumes:
- /dev/bus/usb:/dev/bus/usb
- <path_to_config>:/config
ports:
- "5000:5000"
environment:
RTSP_PASSWORD: "password"
A config.yml
file must exist in the config
directory. See example here.
Access the mjpeg stream at http://localhost:5000/<camera_name>
and the best person snapshot at http://localhost:5000/<camera_name>/best_person.jpg
camera:
- name: Camera Last Person
platform: mqtt
topic: frigate/<camera_name>/snapshot
binary_sensor:
- name: Camera Person
platform: mqtt
state_topic: "frigate/<camera_name>/objects"
value_template: '{{ value_json.person }}'
device_class: motion
availability_topic: "frigate/available"
automation:
- alias: Alert me if a person is detected while armed away
trigger:
platform: state
entity_id: binary_sensor.camera_person
from: 'off'
to: 'on'
condition:
- condition: state
entity_id: alarm_control_panel.home_alarm
state: armed_away
action:
- service: notify.user_telegram
data:
message: "A person was detected."
data:
photo:
- url: http://<ip>:5000/<camera_name>/best_person.jpg
caption: A person was detected.