From 406628ef0a087046abca86c219e9956bc35942bb Mon Sep 17 00:00:00 2001 From: Jeff Billimek Date: Wed, 15 Jan 2020 23:31:44 -0500 Subject: [PATCH] [frigate] frigate v4.0.0-beta (#135) * frigate v4.0.0-beta * fixing linting errors --- charts/frigate/Chart.yaml | 4 +- charts/frigate/templates/deployment.yaml | 10 +- charts/frigate/values.yaml | 118 ++++++++++++++++++----- 3 files changed, 101 insertions(+), 31 deletions(-) diff --git a/charts/frigate/Chart.yaml b/charts/frigate/Chart.yaml index db911f72..03ad7c4c 100644 --- a/charts/frigate/Chart.yaml +++ b/charts/frigate/Chart.yaml @@ -1,8 +1,8 @@ apiVersion: v1 -appVersion: "0.2.0" +appVersion: "0.4.0" description: Realtime object detection on RTSP cameras with the Google Coral name: frigate -version: 1.0.0 +version: 2.0.0 keywords: - tensorflow - coral diff --git a/charts/frigate/templates/deployment.yaml b/charts/frigate/templates/deployment.yaml index 1bc49e6d..9bdeb921 100644 --- a/charts/frigate/templates/deployment.yaml +++ b/charts/frigate/templates/deployment.yaml @@ -39,14 +39,18 @@ spec: containerPort: 5000 protocol: TCP livenessProbe: - tcpSocket: + httpGet: + path: / port: http + scheme: HTTP initialDelaySeconds: 30 failureThreshold: 5 timeoutSeconds: 5 readinessProbe: - tcpSocket: + httpGet: + path: / port: http + scheme: HTTP initialDelaySeconds: 30 failureThreshold: 5 timeoutSeconds: 5 @@ -55,7 +59,7 @@ spec: - name: TZ value: "{{ .Values.timezone }}" {{- end }} - - name: RTSP_PASSWORD + - name: FRIGATE_RTSP_PASSWORD value: "{{ .Values.rtspPassword }}" volumeMounts: - mountPath: /dev/bus/usb diff --git a/charts/frigate/values.yaml b/charts/frigate/values.yaml index b7c1eaf5..ef545ac8 100644 --- a/charts/frigate/values.yaml +++ b/charts/frigate/values.yaml @@ -9,7 +9,7 @@ strategyType: Recreate image: repository: blakeblackshear/frigate - tag: 0.2.0 + tag: 0.4.0-beta pullPolicy: IfNotPresent rtspPassword: password @@ -20,21 +20,89 @@ fullnameOverride: "" # frigate configuration - see https://github.com/blakeblackshear/frigate/blob/master/config/config.yml for example config: | + web_port: 5000 + mqtt: host: mqtt.server.com topic_prefix: frigate + # client_id: frigate # Optional -- set to override default client id of 'frigate' if running multiple instances # user: username # Optional -- Uncomment for use # password: password # Optional -- Uncomment for use + ################# + # Default ffmpeg args. Optional and can be overwritten per camera. + # Should work with most RTSP cameras that send h264 video + # Built from the properties below with: + # "ffmpeg" + global_args + input_args + "-i" + input + output_args + ################# + # ffmpeg: + # global_args: + # - -hide_banner + # - -loglevel + # - panic + # hwaccel_args: [] + # input_args: + # - -avoid_negative_ts + # - make_zero + # - -fflags + # - nobuffer + # - -flags + # - low_delay + # - -strict + # - experimental + # - -fflags + # - +genpts+discardcorrupt + # - -vsync + # - drop + # - -rtsp_transport + # - tcp + # - -stimeout + # - '5000000' + # - -use_wallclock_as_timestamps + # - '1' + # output_args: + # - -vf + # - mpdecimate + # - -f + # - rawvideo + # - -pix_fmt + # - rgb24 + + #################### + # Global object configuration. Applies to all cameras + # unless overridden at the camera levels. + # Keys must be valid labels. By default, the model uses coco (https://dl.google.com/coral/canned_models/coco_labels.txt). + # All labels from the model are reported over MQTT. These values are used to filter out false positives. + # min_area (optional): minimum width*height of the bounding box for the detected person + # max_area (optional): maximum width*height of the bounding box for the detected person + # threshold (optional): The minimum decimal percentage (50% hit = 0.5) for the confidence from tensorflow + #################### + objects: + track: + - person + - car + - truck + filters: + person: + min_area: 5000 + max_area: 100000 + threshold: 0.5 + cameras: back: - rtsp: - user: viewer - host: 10.0.10.10 - port: 554 - # values that begin with a "$" will be replaced with environment variable - password: $RTSP_PASSWORD - path: /cam/realmonitor?channel=1&subtype=2 + ffmpeg: + ################ + # Source passed to ffmpeg after the -i parameter. Supports anything compatible with OpenCV and FFmpeg. + # Environment variables that begin with 'FRIGATE_' may be referenced in {} + ################ + input: rtsp://viewer:{FRIGATE_RTSP_PASSWORD}@10.0.10.10:554/cam/realmonitor?channel=1&subtype=2 + ################# + # These values will override default values for just this camera + ################# + # global_args: [] + # hwaccel_args: [] + # input_args: [] + # output_args: [] ################ ## Optional mask. Must be the same dimensions as your video feed. @@ -54,36 +122,34 @@ config: | take_frame: 1 ################ - # Optional hardware acceleration parameters for ffmpeg. If your hardware supports it, it can - # greatly reduce the CPU power used to decode the video stream. You will need to determine which - # parameters work for your specific hardware. These may work for those with Intel hardware that - # supports QuickSync. + # Overrides for global object config ################ - # ffmpeg_hwaccel_args: - # - -hwaccel - # - vaapi - # - -hwaccel_device - # - /dev/dri/renderD128 - # - -hwaccel_output_format - # - yuv420p + objects: + track: + - person + filters: + person: + min_area: 5000 + max_area: 100000 + threshold: 0.5 + ################ + # size: size of the region in pixels + # x_offset/y_offset: position of the upper left corner of your region (top left of image is 0,0) + # Tips: All regions are resized to 300x300 before detection because the model is trained on that size. + # Resizing regions takes CPU power. Ideally, all regions should be as close to 300x300 as possible. + # Defining a region that goes outside the bounds of the image will result in errors. + ################ regions: - size: 350 x_offset: 0 y_offset: 300 - min_person_area: 5000 - threshold: 0.5 - size: 400 x_offset: 350 y_offset: 250 - min_person_area: 2000 - threshold: 0.5 - size: 400 x_offset: 750 y_offset: 250 - min_person_area: 2000 - threshold: 0.5 - service: type: ClusterIP port: 5000