From 678ae87c62af3fabf7b9e45b332b7633c6c669df Mon Sep 17 00:00:00 2001 From: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com> Date: Sun, 23 Mar 2025 17:15:15 -0500 Subject: [PATCH] Dedicated LPR fixes (#17325) * docs fps recommendation * add detection_threshold to example * send uncoverted yuv frame * copy and convert * ensure thumbnail is encoded as webp * keep as jpeg --- docs/docs/configuration/license_plate_recognition.md | 4 ++-- frigate/data_processing/common/license_plate/mixin.py | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/docs/docs/configuration/license_plate_recognition.md b/docs/docs/configuration/license_plate_recognition.md index 979e42bd1..47dcfaa09 100644 --- a/docs/docs/configuration/license_plate_recognition.md +++ b/docs/docs/configuration/license_plate_recognition.md @@ -133,8 +133,8 @@ Users with a dedicated LPR camera can run Frigate's LPR by specifying a camera t # LPR global configuration lpr: enabled: True - min_area: 2000 min_plate_length: 4 + detection_threshold: 0.7 # change if necessary # Dedicated LPR camera configuration cameras: @@ -146,7 +146,7 @@ cameras: ffmpeg: ... detect: enabled: False # optional, disable Frigate's standard object detection pipeline - fps: 5 + fps: 5 # keep this at 5, higher values are unnecessary for dedicated LPR mode and could overwhelm the detector width: 1920 height: 1080 motion: diff --git a/frigate/data_processing/common/license_plate/mixin.py b/frigate/data_processing/common/license_plate/mixin.py index 3bf94a550..9bf2119f9 100644 --- a/frigate/data_processing/common/license_plate/mixin.py +++ b/frigate/data_processing/common/license_plate/mixin.py @@ -1279,10 +1279,9 @@ class LicensePlateProcessingMixin: # save the best snapshot logger.debug(f"Writing snapshot for {id}, {top_plate}, {current_time}") frame_bgr = cv2.cvtColor(frame, cv2.COLOR_YUV2BGR_I420) - _, buffer = cv2.imencode(".jpg", frame_bgr) self.sub_label_publisher.publish( EventMetadataTypeEnum.save_lpr_snapshot, - (base64.b64encode(buffer).decode("ASCII"), id, camera), + (base64.b64encode(frame_bgr).decode("ASCII"), id, camera), ) self.detected_license_plates[id] = {