Gå til innhold
  • Bli medlem
Støtt hjemmeautomasjon.no!

Anbefalte innlegg

Skrevet

Har hatt BlueIris oppe og gå i mange år og selv om det har enkelte ulemper så fungerer det veldig godt. For meg er det en mega-ulempe at det går på Windows.

 

Har gjort et par spede forsøk på Frigate tidligere uten suksess men gikk i gang igjen for et par dager siden. Etter noen forsøk har jeg nå Frigate oppe og gå på hardware som ikke bare ikke er anbefalt men direkte advart mot... så ytelsen er litt så som så for å si det pent... men Frigate er i alle fall oppe og gå.

 

BlueIris:

Gigabyte BRIX BRi7H-10710/ProxMox/Windows10

Frigate:

Gigabyte BRIX BRi7H-10710/ProxMox/Ubuntu Server 22.04 VM (ikke LXC)

 

Relativt like forhold men BlueIris har dramatisk bedre ytelse med silkemyk avspilling mot svært hakkete Frigate avspilling. PTZ operasjoner er også langt bedre respons i BlueIris. Benyttet meg av Black Week tilbud på Amazon og bestilte en Beelink EQ13 med Google Coral M.2 TPU nøyaktig som anbefalt av Frigate.

 

Ulemper/utfordringer jeg har sett så langt:

BlueIris:

  • Krever en god del fikling for å få pålitelig bevegelsesdeteksjon uten alt for mange feildeteksjoner men har fått det til ganske ok etterhvert.
  • AI deteksjon kan gjøres vha onlinetjenester som jeg har lekt bittelitt med uten den store suksessen.
  • Sliter med å unngå deteksjon av store endringer som når utelys går på/av.

Frigate:

  • Får en del bevegelsesdeteksjon men mange av opptakene inneholder ikke noe bevegelse som jeg kan se.
  • Når jeg har Frigate oppe og gå i en nettleserfane og viser en annen fane en stund og går tilbake til Frigate er der bufret opp opptil flere minutt med video som så spilles av raskt og så fortsetter med "live" med ca et bilde pr sekund.

 

Andre med lignende erfaringer?

Skrevet

Jeg bruker selv Frigate på en Nuc med Google Coral M.2 TPU, og det fungerer utmerket. Jeg har to kameraer og har ikke opplevd noen falske deteksjoner etter litt justering. Frigate fikk en stor oppdatering for noen måneder siden, og det ser ut til at det kommer mange gode funksjoner fremover. Integrasjonen mot Home Assistant er veldig god, det er lett å sette opp for eksempel notifications mot mobil.

Det er viktig å sette opp to kamera-kilder: en som brukes for å oppdage bevegelse, og en annen kilde for opptak. Du vil få mye bedre ytelse hvis du bruker lavere oppløsning på kilden som brukes til detektering. Jeg har ikke hatt problemer med buffering av video, verken på mobil eller PC.

Skrevet (endret)
feddiriko skrev (5 minutter siden):

Det er viktig å sette opp to kamera-kilder: en som brukes for å oppdage bevegelse, og en annen kilde for opptak.

Ja, er obs på dette og for testing nå bruker jeg kun stream2 (som jeg mener er standard lavoppløsning i Tapo kamera). Har ikke dobbeltsjekket... Jeg har 8 kamera i drift i dag. Kan ikke helt se at der er noen stor ytelsesforskjell med ett kamera i forhold til 8.

Endret av SveinHa
  • 2 uker senere...
Skrevet

Har fremdeles ikke fått Frigate serveren med Coral opp og gå (iflg sporing befinner den seg i luften på tredje døgnet nå...) men leker nå litt med diverse innstillinger. Der er jo et par trilliarder settings uten at jeg synes de er så veldig strukturert beskrevet så jeg har nok mye å gå på enda.

 

Frigate operer på en helt annen måte enn BlueIris og jeg tror jeg vil få et greit system hvis jeg viser Birdseye bildet i Node-RED Dashboard når jeg detekterer bevegelse utenfor men der er et par ting jeg ikke har fått taket på:

  1. Jeg sliter med å se hvorfor et kamera popper opp i Birdseye og hvordan jeg kan endre kriteriene. Jeg ønsker å få kamera i Birdseye når et nytt av de valgte objektene (car, person, pet, cycle, motorcycle osv) dukker opp.
  2. Hvordan vet jeg at et nytt objekt dukker opp? Antar at når antall objekt av en type øker så er det en ok måte å poppe opp Birdseye bildet men der finnes kanskje andre bedre løsninger.
     image.png.52897df66c4efa968a66c6b8273b7c1e.png
    I dette eksempelet betyr "car=1" en bil som har stått i ro i flere timer men jeg har sett andre steder at f.eks. en parkert førerløs motorsykkel blir detektert som "person" i tillegg til "motorcycle".

Noen som har gode tips?

Skrevet

Har kjørt frigate selv vel en måneds tid, opplever også litt treg visning av recordings med lag, men filene som genereres er 100%.

Har ikke lekt for mye med variabler enda, så kan ikke uttale meg der, katten gjenkjennes av og til som fugl.

Skrevet

Sitter fremdeles å venter på siste resten av ny Frigate server med Google AI men den nærmer seg...

 

Noen som har et godt forslag til hvorfor Birdseye noen ganger ender opp slik:

image.thumb.png.2a167c8a99e1c1c4e1642b61621d0626.png

 

Noen ganger ordner det seg selv og andre ganger må jeg restarte Frigate...

 

Nederste bildet med stolpe midt i og bobil er samme kamera, bobilen skal være helt til venstre så mangler litt og så kommer stolpen...

  • 2 uker senere...
Skrevet

Så er Frigate oppe og går på anbefalt hardware med Google Coral USB. Er vel bare sånn mellomimponert av greiene...

 

Jeg har satt opp systemet etter beste evne til å kun detektere "car" og "person" men ser at der dukker opp biler i hagen (som har fysisk sperre for biler) og drivhusdøren blir jevnlig oppdaget som "person" og trigger opptak... Reelle personer og biler ser ut til å bli detektert ganske ok om dagen men ikke om natten så må kanskje til med ren bevegelsesdeteksjon i tillegg...

image.png.2057a5691b1bdf335455bddc43d2ee89.png

 

Dagens configurasjon (for det meste kopiert fra nett og noe modifisert):

Sitat
mqtt:
enabled: true
host: 172.16.0.94
user: ---------
password: ---------
 
detectors:
# cpu0:
# type: cpu
coral:
type: edgetpu
device: usb
 
birdseye:
# Optional: Enable birdseye view (default: shown below)
enabled: True
# Optional: Restream birdseye via RTSP (default: shown below)
# NOTE: Enabling this will set birdseye to run 24/7 which may increase CPU usage somewhat.
restream: True
# Optional: Width of the output resolution (default: shown below)
width: 1280
# Optional: Height of the output resolution (default: shown below)
height: 720
# Optional: Encoding quality of the mpeg1 feed (default: shown below)
# 1 is the highest quality, and 31 is the lowest. Lower quality feeds utilize less CPU resources.
quality: 8
# Optional: Mode of the view. Available options are: objects, motion, and continuous
# objects - cameras are included if they have had a tracked object within the last 30 seconds
# motion - cameras are included if motion was detected in the last 30 seconds
# continuous - all cameras are included always
mode: objects
# Optional: Threshold for camera activity to stop showing camera (default: shown below)
inactivity_threshold: 30
# Optional: Configure the birdseye layout
layout:
# Optional: Scaling factor for the layout calculator, range 1.0-5.0 (default: shown below)
scaling_factor: 2.0
# Optional: Maximum number of cameras to show at one time, showing the most recent (default: show all cameras)
max_cameras: 4
 
detect:
# Optional: width of the frame for the input with the detect role (default: use native stream resolution)
width: 1280
# Optional: height of the frame for the input with the detect role (default: use native stream resolution)
height: 720
# Optional: desired fps for your camera for the input with the detect role (default: shown below)
# NOTE: Recommended value of 5. Ideally, try and reduce your FPS on the camera.
fps: 5
# Optional: enables detection for the camera (default: True)
enabled: True
# Optional: Number of consecutive detection hits required for an object to be initialized in the tracker. (default: 1/2 the frame rate)
min_initialized: 2
# Optional: Number of frames without a detection before Frigate considers an object to be gone. (default: 5x the frame rate)
max_disappeared: 25
# Optional: Configuration for stationary object tracking
stationary:
# Optional: Frequency for confirming stationary objects (default: same as threshold)
# When set to 1, object detection will run to confirm the object still exists on every frame.
# If set to 10, object detection will run to confirm the object still exists on every 10th frame.
interval: 50
# Optional: Number of frames without a position change for an object to be considered stationary (default: 10x the frame rate or 10s)
threshold: 50
# Optional: Define a maximum number of frames for tracking a stationary object (default: not set, track forever)
# This can help with false positives for objects that should only be stationary for a limited amount of time.
# It can also be used to disable stationary object tracking. For example, you may want to set a value for person, but leave
# car at the default.
# WARNING: Setting these values overrides default behavior and disables stationary object tracking.
# There are very few situations where you would want it disabled. It is NOT recommended to
# copy these values from the example config into your config unless you know they are needed.
max_frames:
# Optional: Default for all object types (default: not set, track forever)
default: 3000
# Optional: Object specific values
objects:
person: 1000
# Optional: Milliseconds to offset detect annotations by (default: shown below).
# There can often be latency between a recording and the detect process,
# especially when using separate streams for detect and record.
# Use this setting to make the timeline bounding boxes more closely align
# with the recording. The value can be positive or negative.
# TIP: Imagine there is an event clip with a person walking from left to right.
# If the event timeline bounding box is consistently to the left of the person
# then the value should be decreased. Similarly, if a person is walking from
# left to right and the bounding box is consistently ahead of the person
# then the value should be increased.
# TIP: This offset is dynamic so you can change the value and it will update existing
# events, this makes it easy to tune.
# WARNING: Fast moving objects will likely not have the bounding box align.
annotation_offset: 0
 
# Optional: Object configuration
# NOTE: Can be overridden at the camera level
objects:
# Optional: list of objects to track from labelmap.txt (default: shown below)
track:
- person
- car
- bicycle
- motorcycle
- cat
- dog
- pet
 
# Optional: Record configuration
# NOTE: Can be overridden at the camera level
record:
# Optional: Enable recording (default: shown below)
# WARNING: If recording is disabled in the config, turning it on via
# the UI or MQTT later will have no effect.
enabled: true
# Optional: Number of minutes to wait between cleanup runs (default: shown below)
# This can be used to reduce the frequency of deleting recording segments from disk if you want to minimize i/o
expire_interval: 60
# Optional: Sync recordings with disk on startup and once a day (default: shown below).
sync_recordings: False
# Optional: Retention settings for recording
retain:
# Optional: Number of days to retain recordings regardless of events (default: shown below)
# NOTE: This should be set to 0 and retention should be defined in events section below
# if you only want to retain recordings of events.
days: 20
# Optional: Mode for retention. Available options are: all, motion, and active_objects
# all - save all recording segments regardless of activity
# motion - save all recordings segments with any detected motion
# active_objects - save all recording segments with active/moving objects
# NOTE: this mode only applies when the days setting above is greater than 0
mode: all
# Optional: Recording Export Settings
export:
# Optional: Timelapse Output Args (default: shown below).
# NOTE: The default args are set to fit 24 hours of recording into 1 hour playback.
# See https://stackoverflow.com/a/58268695 for more info on how these args work.
# As an example: if you wanted to go from 24 hours to 30 minutes that would be going
# from 86400 seconds to 1800 seconds which would be 1800 / 86400 = 0.02.
# The -r (framerate) dictates how smooth the output video is.
# So the args would be -vf setpts=0.02*PTS -r 30 in that case.
timelapse_args: "-vf setpts=0.04*PTS -r 30"
# Optional: Recording Preview Settings
preview:
# Optional: Quality of recording preview (default: shown below).
# Options are: very_low, low, medium, high, very_high
quality: medium
# Optional: Event recording settings
events:
# Optional: Number of seconds before the event to include (default: shown below)
pre_capture: 2
# Optional: Number of seconds after the event to include (default: shown below)
post_capture: 15
# Optional: Objects to save recordings for. (default: all tracked objects)
objects:
- person
- car
# Optional: Retention settings for recordings of events
retain:
# Required: Default retention days (default: shown below)
default: 20
# Optional: Mode for retention. (default: shown below)
# all - save all recording segments for events regardless of activity
# motion - save all recordings segments for events with any detected motion
# active_objects - save all recording segments for event with active/moving objects
#
# NOTE: If the retain mode for the camera is more restrictive than the mode configured
# here, the segments will already be gone by the time this mode is applied.
# For example, if the camera retain mode is "motion", the segments without motion are
# never stored, so setting the mode to "all" here won't bring them back.
mode: motion
# Optional: Per object retention days
#objects:
# person: 15
# car: 15
 
# Optional: Restream configuration
#go2rtc:
 
# Optional: Live stream configuration for WebUI.
# NOTE: Can be overridden at the camera level
live:
# Optional: Set the name of the stream configured in go2rtc
# that should be used for live view in frigate WebUI. (default: name of camera)
# NOTE: In most cases this should be set at the camera level only.
stream_name: camera_name
# Optional: Set the height of the jsmpeg stream. (default: 720)
# This must be less than or equal to the height of the detect stream. Lower resolutions
# reduce bandwidth required for viewing the jsmpeg stream. Width is computed to match known aspect ratio.
height: 720
# Optional: Set the encode quality of the jsmpeg stream (default: shown below)
# 1 is the highest quality, and 31 is the lowest. Lower quality feeds utilize less CPU resources.
quality: 16


 
cameras:
Entre: # <------ Name the camera
enabled: true
ffmpeg:
inputs:
- path: rtsp://xxxxx:[email protected]:554/stream1 # <----- The stream you want to use for recording
roles:
- record
- path: rtsp://xxxxx:[email protected]:554/stream2 # <----- The stream you want to use for detection
roles:
- detect
detect:
enabled: true # <---- disable detection until you have a working camera feed
# width: 640
# height: 360
motion:
mask:
0.005,0.001,0.003,0.102,0.366,0.061,0.371,0.013,0.6,0.012,0.588,0.209,0.905,0.009
# snapshots:
# enabled: true
# timestamp: false
# bounding_box: true
# crop: false
# retain:
# default: 0
# objects:
# person: 15
birdseye:
mode: objects
 
Innkjorsel: # <------ Name the camera
enabled: true
ffmpeg:
inputs:
- path: rtsp://xxxxx:[email protected]:554/stream1 # <----- The stream you want to use for recording
roles:
- record
- path: rtsp://xxxxx:[email protected]:554/stream2 # <----- The stream you want to use for detection
roles:
- detect
detect:
enabled: true # <---- disable detection until you have a working camera feed
# width: 640
# height: 360
# motion:
# snapshots:
# enabled: true
# timestamp: false
# bounding_box: true
# crop: false
# retain:
# default: 10
# objects:
# person: 15
# car: 15
birdseye:
mode: objects
 
Helmut: # <------ Name the camera
enabled: true
ffmpeg:
inputs:
- path: rtsp://xxxxx:[email protected]:554/stream1 # <----- The stream you want to use for recording
roles:
- record
- path: rtsp://xxxxx:[email protected]:554/stream2 # <----- The stream you want to use for detection
roles:
- detect
detect:
enabled: false # <---- disable detection until you have a working camera feed
# width: 640
# height: 360
# motion:
# snapshots:
# enabled: true
# timestamp: false
# bounding_box: true
# crop: false
# retain:
# default: 50
# objects:
# person: 15
# car: 15
# cat: 15
# dog: 15
# pet: 15
birdseye:
mode: objects
 
Gardsplass: # <------ Name the camera
enabled: true
ffmpeg:
inputs:
- path: rtsp://xxxxx:[email protected]:554/video.pro1 # <----- The stream you want to use for recording
roles:
- record
- path: rtsp://xxxxx:[email protected]:554/video.pro2 # <----- The stream you want to use for detection
roles:
- detect
detect:
enabled: true # <---- disable detection until you have a working camera feed
# width: 640
# height: 360
# motion:
# snapshots:
# enabled: true
# timestamp: false
# bounding_box: true
# crop: false
# retain:
# default: 10
# objects:
# person: 15
# car: 15
birdseye:
mode: objects
 
Prusa: # <------ Name the camera
enabled: true
ffmpeg:
inputs:
- path: rtsp://xxxxx:[email protected]:554/stream2 # <----- The stream you want to use for detection
roles:
- detect
detect:
enabled: true # <---- disable detection until you have a working camera feed
# width: 1280
# height: 720
# motion:
# snapshots:
# enabled: true
# timestamp: false
# bounding_box: true
# crop: false
# retain:
# default: 0
# objects:
# person: 15
birdseye:
enabled: false
 
Musefelle: # <------ Name the camera
enabled: true
ffmpeg:
inputs:
- path: rtsp://xxxxx:[email protected]:554/stream1 # <----- The stream you want to use for record
roles:
- record
- path: rtsp://xxxxx:[email protected]:554/stream2 # <----- The stream you want to use for detection
roles:
- detect
detect:
enabled: true # <---- disable detection until you have a working camera feed
# width: 640
# height: 360
# motion:
# snapshots:
# enabled: true
# timestamp: false
# bounding_box: true
# crop: false
# retain:
# default: 0
# objects:
# person: 15
birdseye:
enabled: true
 
GarasjeInne: # <------ Name the camera
enabled: true
ffmpeg:
inputs:
- path: rtsp://xxxxx:[email protected]:554/stream1 # <----- The stream you want to use for recording
roles:
- record
- path: rtsp://xxxxx:[email protected]:554/stream2 # <----- The stream you want to use for detection
roles:
- detect
detect:
enabled: true # <---- disable detection until you have a working camera feed
# width: 640
# height: 360
# motion:
# snapshots:
# enabled: true
# timestamp: false
# bounding_box: true
# crop: false
# retain:
# default: 0
# objects:
# person: 70
birdseye:
enabled: false
 
Hage: # <------ Name the camera
enabled: true
ffmpeg:
inputs:
- path: rtsp://xxxxx:[email protected]:554/stream1 # <----- The stream you want to use for recording
roles:
- record
- path: rtsp://xxxxx:[email protected]:554/stream2 # <----- The stream you want to use for detection
roles:
- detect
detect:
enabled: true # <---- disable detection until you have a working camera feed
# width: 640
# height: 360
# motion:
# snapshots:
# enabled: true
# timestamp: false
# bounding_box: true
# crop: false
# retain:
# default: 0
# objects:
# person: 70
 
 
version: 0.14
camera_groups:
Ute:
order: 1
icon: LuAccessibility
cameras:
- birdseye
- Entre
- Gardsplass
- Hage
- Helmut
- Innkjorsel
Inne:
order: 2
icon: LuAlarmCheck
cameras:
- birdseye
- GarasjeInne
- Musefelle
- Prusa

 

 

Sliter også med responsen i WebUI og ender ofte opp med slik som dette (øverste rad skal være snapshots av de siste opptakene):

image.thumb.png.7c647fe1d3a7e91aecc92e079fd13332.png

 

Selv om BlueIris har kostet mange timer med konfigurasjon for å få noenlunde pålitelige opptak uten alt for mange feilopptak så har BI dramatisk mer strømlinjeformet brukerinterface med 100 ganger bedre respons enn Frigate...

 

Noen som har lignende erfaring og tips om løsninger?

Skrevet (endret)

Du vil bruke filter i objects for å luke bort falske notifikasjoner.

 

Her er min konfigurasjon, kjører på en i3-6100U med 4gb ram. Kjører detect på gpu (integrert i cpu). Anbefaler betaen med "full access".

 

Kode:

 

#environment_vars:
#  LIBVA_DRIVER_NAME: i965
  #LIBVA_DRIVER_NAME: iHD

mqtt:
  host: homeassistant
  user: mqtt_user
  password: mqtt_password

detectors:
  ov:
    type: openvino
    device: GPU

model:
  width: 300
  height: 300
  input_tensor: nhwc
  input_pixel_format: bgr
  path: /openvino-model/ssdlite_mobilenet_v2.xml
  labelmap_path: /openvino-model/coco_91cl_bkgr.txt

objects:
  track:
    - person
    - car
    - cat
  filters:
    person:
      threshold: 0.75
    car:
      threshold: 0.90

go2rtc:
  streams:
    reolink_510wa:
      - rtsp://admin:[email protected]:554/h264Preview_01_main
    reolink_510wa_sub:
      - rtsp://admin:[email protected]:554/h264Preview_01_sub

record:
  enabled: true
  retain:
    days: 5
    mode: motion
  alerts:
    retain:
      days: 5
    pre_capture: 5
    post_capture: 5
  detections:
    retain:
      days: 5
    pre_capture: 5
    post_capture: 5
cameras:
  reolink_510wa:
    ffmpeg:
      output_args:
        record: preset-record-generic-audio-aac
      hwaccel_args: preset-vaapi #-hwaccel_device /dev/dri/renderD128 -hwaccel_output_format yuv420p
      inputs:
        - path: rtsp://127.0.0.1:8554/reolink_510wa?video&audio
          input_args: preset-rtsp-restream
          roles:
            - record
        - path: rtsp://127.0.0.1:8554/reolink_510wa_sub?video&audio
          input_args: preset-rtsp-restream
          roles:
            - detect
    detect:
      enabled: true
      width: 640
      height: 480
      fps: 5
    snapshots:
      enabled: true
      timestamp: true
      bounding_box: true
      retain:
        default: 30

    motion:
      mask: 0.176,0,0.721,0.252,0.872,0.519,1,0.731,1,0,0.781,0,0.575,0.003
      threshold: 60
      contour_area: 15
      improve_contrast: 'true'
    objects:
      mask: 0.835,0.303,1,0.087,0.669,0,0.149,0

version: 0.15-0

 

Endret av cat0
  • Like 1
Skrevet

Jeg ser jeg må lese meg litt mer opp på frigate men et kjapt spørsmål først: Når jeg tar opp et kamera på telefonen så viser objektdeteksjonen live men er det mulig å se denne i opptakene for å kunne se hva som trigget opptak?

Bli med i samtalen

Du kan publisere innhold nå og registrere deg senere. Hvis du har en konto, logg inn nå for å poste med kontoen din.

Gjest
Skriv svar til emnet...

×   Du har limt inn tekst med formatering.   Lim inn uten formatering i stedet

  Du kan kun bruke opp til 75 smilefjes.

×   Lenken din har blitt bygget inn på siden automatisk.   Vis som en ordinær lenke i stedet

×   Tidligere tekst har blitt gjenopprettet.   Tøm tekstverktøy

×   Du kan ikke lime inn bilder direkte. Last opp eller legg inn bilder fra URL.

×
×
  • Opprett ny...

Viktig informasjon

Vi har plassert informasjonskapsler/cookies på din enhet for å gjøre denne siden bedre. Du kan justere dine innstillinger for informasjonskapsler, ellers vil vi anta at dette er ok for deg.