License Plate Recognition (LPR)
Frigate can recognize license plates on vehicles and automatically add the detected characters to the recognized_license_plate field or a known name as a sub_label to tracked objects of type car or motorcycle. A common use case may be to read the license plates of cars pulling into a driveway or cars passing by on a street.
LPR works best when the license plate is clearly visible to the camera. For moving vehicles, Frigate continuously refines the recognition process, keeping the most confident result. When a vehicle becomes stationary, LPR continues to run for a short time after to attempt recognition.
When a plate is recognized, the details are:
- Added as a
sub_label(if known) or therecognized_license_platefield (if unknown) to a tracked object. - Viewable in the Details pane in Review/History.
- Viewable in the Tracked Object Details pane in Explore (sub labels and recognized license plates).
- Filterable through the More Filters menu in Explore.
- Published via the
frigate/eventsMQTT topic as asub_label(known) orrecognized_license_plate(unknown) for thecarormotorcycletracked object. - Published via the
frigate/tracked_object_updateMQTT topic withname(if known) andplate.
Model Requirementsâ
Users running a Frigate+ model (or any custom model that natively detects license plates) should ensure that license_plate is added to the list of objects to track either globally or for a specific camera. This will improve the accuracy and performance of the LPR model.
Users without a model that detects license plates can still run LPR. Frigate uses a lightweight YOLOv9 license plate detection model that can be configured to run on your CPU or GPU. In this case, you should not define license_plate in your list of objects to track.
In the default mode, Frigate's LPR needs to first detect a car or motorcycle before it can recognize a license plate. If you're using a dedicated LPR camera and have a zoomed-in view where a car or motorcycle will not be detected, you can still run LPR, but the configuration parameters will differ from the default mode. See the Dedicated LPR Cameras section below.
Minimum System Requirementsâ
License plate recognition works by running AI models locally on your system. The YOLOv9 plate detector model and the OCR models (PaddleOCR) are relatively lightweight and can run on your CPU or GPU, depending on your configuration. At least 4GB of RAM and a CPU with AVX + AVX2 instructions is required.
Configurationâ
License plate recognition is disabled by default and must be enabled before it can be used.
- Frigate UI
- YAML
Navigate to SettingsâEnrichmentsâLicense plate recognition.
- Set Enable LPR to on
lpr:
enabled: True
Like other enrichments in Frigate, LPR must be enabled globally to use the feature. Disable it for specific cameras at the camera level if you don't want to run LPR on cars on those cameras.
- Frigate UI
- YAML
Navigate to SettingsâCamera configurationâLicense plate recognition for the desired camera and disable the Enable LPR toggle.
cameras:
garage:
...
lpr:
enabled: False
For non-dedicated LPR cameras, ensure that your camera is configured to detect objects of type car or motorcycle, and that a car or motorcycle is actually being detected by Frigate. Otherwise, LPR will not run.
Like the other real-time processors in Frigate, license plate recognition runs on the camera stream defined by the detect role in your config. To ensure optimal performance, select a suitable resolution for this stream in your camera's firmware that fits your specific scene and requirements.
Advanced Configurationâ
Fine-tune the LPR feature using these optional parameters. The only optional parameters that can be set at the camera level are enabled, min_area, and enhancement.