mirror of
https://github.com/blakeblackshear/frigate.git
synced 2025-12-16 18:16:44 +03:00
Update vocabulary
This commit is contained in:
parent
f966946713
commit
c66daf2946
@ -67,7 +67,7 @@ When choosing which objects to classify, start with a small number of visually d
|
|||||||
### Improving the Model
|
### Improving the Model
|
||||||
|
|
||||||
- **Problem framing**: Keep classes visually distinct and relevant to the chosen object types.
|
- **Problem framing**: Keep classes visually distinct and relevant to the chosen object types.
|
||||||
- **Data collection**: Use the model’s Train tab to gather balanced examples across times of day, weather, and distances.
|
- **Data collection**: Use the model’s Recent Classification tab to gather balanced examples across times of day, weather, and distances.
|
||||||
- **Preprocessing**: Ensure examples reflect object crops similar to Frigate’s boxes; keep the subject centered.
|
- **Preprocessing**: Ensure examples reflect object crops similar to Frigate’s boxes; keep the subject centered.
|
||||||
- **Labels**: Keep label names short and consistent; include a `none` class if you plan to ignore uncertain predictions for sub labels.
|
- **Labels**: Keep label names short and consistent; include a `none` class if you plan to ignore uncertain predictions for sub labels.
|
||||||
- **Threshold**: Tune `threshold` per model to reduce false assignments. Start at `0.8` and adjust based on validation.
|
- **Threshold**: Tune `threshold` per model to reduce false assignments. Start at `0.8` and adjust based on validation.
|
||||||
|
|||||||
@ -49,4 +49,4 @@ When choosing a portion of the camera frame for state classification, it is impo
|
|||||||
### Improving the Model
|
### Improving the Model
|
||||||
|
|
||||||
- **Problem framing**: Keep classes visually distinct and state-focused (e.g., `open`, `closed`, `unknown`). Avoid combining object identity with state in a single model unless necessary.
|
- **Problem framing**: Keep classes visually distinct and state-focused (e.g., `open`, `closed`, `unknown`). Avoid combining object identity with state in a single model unless necessary.
|
||||||
- **Data collection**: Use the model’s Train tab to gather balanced examples across times of day and weather.
|
- **Data collection**: Use the model’s Recent Classifications tab to gather balanced examples across times of day and weather.
|
||||||
|
|||||||
@ -114,9 +114,9 @@ When choosing images to include in the face training set it is recommended to al
|
|||||||
|
|
||||||
:::
|
:::
|
||||||
|
|
||||||
### Understanding the Train Tab
|
### Understanding the Recent Recognitions Tab
|
||||||
|
|
||||||
The Train tab in the face library displays recent face recognition attempts. Detected face images are grouped according to the person they were identified as potentially matching.
|
The Recent Recognitions tab in the face library displays recent face recognition attempts. Detected face images are grouped according to the person they were identified as potentially matching.
|
||||||
|
|
||||||
Each face image is labeled with a name (or `Unknown`) along with the confidence score of the recognition attempt. While each image can be used to train the system for a specific person, not all images are suitable for training.
|
Each face image is labeled with a name (or `Unknown`) along with the confidence score of the recognition attempt. While each image can be used to train the system for a specific person, not all images are suitable for training.
|
||||||
|
|
||||||
@ -140,7 +140,7 @@ Once front-facing images are performing well, start choosing slightly off-angle
|
|||||||
|
|
||||||
Start with the [Usage](#usage) section and re-read the [Model Requirements](#model-requirements) above.
|
Start with the [Usage](#usage) section and re-read the [Model Requirements](#model-requirements) above.
|
||||||
|
|
||||||
1. Ensure `person` is being _detected_. A `person` will automatically be scanned by Frigate for a face. Any detected faces will appear in the Train tab in the Frigate UI's Face Library.
|
1. Ensure `person` is being _detected_. A `person` will automatically be scanned by Frigate for a face. Any detected faces will appear in the Recent Recognitions tab in the Frigate UI's Face Library.
|
||||||
|
|
||||||
If you are using a Frigate+ or `face` detecting model:
|
If you are using a Frigate+ or `face` detecting model:
|
||||||
|
|
||||||
@ -186,7 +186,7 @@ Avoid training on images that already score highly, as this can lead to over-fit
|
|||||||
No, face recognition does not support negative training (i.e., explicitly telling it who someone is _not_). Instead, the best approach is to improve the training data by using a more diverse and representative set of images for each person.
|
No, face recognition does not support negative training (i.e., explicitly telling it who someone is _not_). Instead, the best approach is to improve the training data by using a more diverse and representative set of images for each person.
|
||||||
For more guidance, refer to the section above on improving recognition accuracy.
|
For more guidance, refer to the section above on improving recognition accuracy.
|
||||||
|
|
||||||
### I see scores above the threshold in the train tab, but a sub label wasn't assigned?
|
### I see scores above the threshold in the Recent Recognitions tab, but a sub label wasn't assigned?
|
||||||
|
|
||||||
The Frigate considers the recognition scores across all recognition attempts for each person object. The scores are continually weighted based on the area of the face, and a sub label will only be assigned to person if a person is confidently recognized consistently. This avoids cases where a single high confidence recognition would throw off the results.
|
The Frigate considers the recognition scores across all recognition attempts for each person object. The scores are continually weighted based on the area of the face, and a sub label will only be assigned to person if a person is confidently recognized consistently. This avoids cases where a single high confidence recognition would throw off the results.
|
||||||
|
|
||||||
|
|||||||
@ -197,7 +197,7 @@ class FaceRecognitionConfig(FrigateBaseModel):
|
|||||||
title="Min face recognitions for the sub label to be applied to the person object.",
|
title="Min face recognitions for the sub label to be applied to the person object.",
|
||||||
)
|
)
|
||||||
save_attempts: int = Field(
|
save_attempts: int = Field(
|
||||||
default=200, ge=0, title="Number of face attempts to save in the train tab."
|
default=200, ge=0, title="Number of face attempts to save in the recent recognitions tab."
|
||||||
)
|
)
|
||||||
blur_confidence_filter: bool = Field(
|
blur_confidence_filter: bool = Field(
|
||||||
default=True, title="Apply blur quality filter to face confidence."
|
default=True, title="Apply blur quality filter to face confidence."
|
||||||
|
|||||||
@ -23,7 +23,7 @@
|
|||||||
"label": "Min face recognitions for the sub label to be applied to the person object."
|
"label": "Min face recognitions for the sub label to be applied to the person object."
|
||||||
},
|
},
|
||||||
"save_attempts": {
|
"save_attempts": {
|
||||||
"label": "Number of face attempts to save in the train tab."
|
"label": "Number of face attempts to save in the recent recognitions tab."
|
||||||
},
|
},
|
||||||
"blur_confidence_filter": {
|
"blur_confidence_filter": {
|
||||||
"label": "Apply blur quality filter to face confidence."
|
"label": "Apply blur quality filter to face confidence."
|
||||||
|
|||||||
@ -22,7 +22,7 @@
|
|||||||
"title": "Create Collection",
|
"title": "Create Collection",
|
||||||
"desc": "Create a new collection",
|
"desc": "Create a new collection",
|
||||||
"new": "Create New Face",
|
"new": "Create New Face",
|
||||||
"nextSteps": "To build a strong foundation:<li>Use the Train tab to select and train on images for each detected person.</li><li>Focus on straight-on images for best results; avoid training images that capture faces at an angle.</li></ul>"
|
"nextSteps": "To build a strong foundation:<li>Use the Recent Recognitions tab to select and train on images for each detected person.</li><li>Focus on straight-on images for best results; avoid training images that capture faces at an angle.</li></ul>"
|
||||||
},
|
},
|
||||||
"steps": {
|
"steps": {
|
||||||
"faceName": "Enter Face Name",
|
"faceName": "Enter Face Name",
|
||||||
|
|||||||
@ -702,16 +702,18 @@ function TrainingGrid({
|
|||||||
{Object.entries(faceGroups).map(([key, group]) => {
|
{Object.entries(faceGroups).map(([key, group]) => {
|
||||||
const event = events?.find((ev) => ev.id == key);
|
const event = events?.find((ev) => ev.id == key);
|
||||||
return (
|
return (
|
||||||
<FaceAttemptGroup
|
<div>
|
||||||
key={key}
|
<FaceAttemptGroup
|
||||||
config={config}
|
key={key}
|
||||||
group={group}
|
config={config}
|
||||||
event={event}
|
group={group}
|
||||||
faceNames={faceNames}
|
event={event}
|
||||||
selectedFaces={selectedFaces}
|
faceNames={faceNames}
|
||||||
onClickFaces={onClickFaces}
|
selectedFaces={selectedFaces}
|
||||||
onRefresh={onRefresh}
|
onClickFaces={onClickFaces}
|
||||||
/>
|
onRefresh={onRefresh}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
);
|
);
|
||||||
})}
|
})}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user