mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-05-03 06:50:58 +00:00
Compare commits
No commits in common. "36d3a2792ff697b0af4300be707982a940a2ca7b" and "290da87075af179a4f077ca3a6df6feee4644caa" have entirely different histories.
36d3a2792f
...
290da87075
@ -107,17 +107,17 @@ When choosing images to include in the face training set it is recommended to al
|
||||
|
||||
### Step 1 - Building a Strong Foundation
|
||||
|
||||
When first enabling face recognition it is important to build a foundation of strong images. It is recommended to start by uploading 1-5 photos containing just this person's face. It is important that the person's face in the photo is front-facing and not turned, this will ensure a good starting point.
|
||||
When first enabling face recognition it is important to build a foundation of strong images. It is recommended to start by uploading 1-5 "portrait" photos for each person. It is important that the person's face in the photo is straight-on and not turned which will ensure a good starting point.
|
||||
|
||||
Then it is recommended to use the `Face Library` tab in Frigate to select and train images for each person as they are detected. When building a strong foundation it is strongly recommended to only train on images that are front-facing. Ignore images from cameras that recognize faces from an angle.
|
||||
Then it is recommended to use the `Face Library` tab in Frigate to select and train images for each person as they are detected. When building a strong foundation it is strongly recommended to only train on images that are straight-on. Ignore images from cameras that recognize faces from an angle.
|
||||
|
||||
Aim to strike a balance between the quality of images while also having a range of conditions (day / night, different weather conditions, different times of day, etc.) in order to have diversity in the images used for each person and not have over-fitting.
|
||||
|
||||
Once a person starts to be consistently recognized correctly on images that are front-facing, it is time to move on to the next step.
|
||||
Once a person starts to be consistently recognized correctly on images that are straight-on, it is time to move on to the next step.
|
||||
|
||||
### Step 2 - Expanding The Dataset
|
||||
|
||||
Once front-facing images are performing well, start choosing slightly off-angle images to include for training. It is important to still choose images where enough face detail is visible to recognize someone.
|
||||
Once straight-on images are performing well, start choosing slightly off-angle images to include for training. It is important to still choose images where enough face detail is visible to recognize someone.
|
||||
|
||||
## FAQ
|
||||
|
||||
@ -156,7 +156,3 @@ Face recognition does not run on the recording stream, this would be suboptimal
|
||||
### I get an unknown error when taking a photo directly with my iPhone
|
||||
|
||||
By default iOS devices will use HEIC (High Efficiency Image Container) for images, but this format is not supported for uploads. Choosing `large` as the format instead of `original` will use JPG which will work correctly.
|
||||
|
||||
## How can I delete the face database and start over?
|
||||
|
||||
Frigate does not store anything in its database related to face recognition. You can simply delete all of your faces through the Frigate UI or remove the contents of the `/media/frigate/clips/faces` directory.
|
||||
|
||||
@ -127,7 +127,8 @@ class ModelConfig(BaseModel):
|
||||
return
|
||||
|
||||
# ensure that model cache dir exists
|
||||
os.makedirs(MODEL_CACHE_DIR, exist_ok=True)
|
||||
if not os.path.exists(MODEL_CACHE_DIR):
|
||||
os.makedirs(MODEL_CACHE_DIR)
|
||||
|
||||
model_id = self.path[7:]
|
||||
self.path = os.path.join(MODEL_CACHE_DIR, model_id)
|
||||
|
||||
@ -27,10 +27,7 @@
|
||||
"steps": {
|
||||
"faceName": "Enter Face Name",
|
||||
"uploadFace": "Upload Face Image",
|
||||
"nextSteps": "Next Steps",
|
||||
"description": {
|
||||
"uploadFace": "Upload an image of {{name}} that shows their face from a front-facing angle. The image does not need to be cropped to just their face."
|
||||
}
|
||||
"nextSteps": "Next Steps"
|
||||
},
|
||||
"train": {
|
||||
"title": "Train",
|
||||
|
||||
@ -128,18 +128,13 @@ export default function CreateFaceWizardDialog({
|
||||
</TextEntry>
|
||||
)}
|
||||
{step == 1 && (
|
||||
<>
|
||||
<div className="px-8 py-2 text-center text-sm text-secondary-foreground">
|
||||
{t("steps.description.uploadFace", { name })}
|
||||
<ImageEntry onSave={onUploadImage}>
|
||||
<div className="flex justify-end py-2">
|
||||
<Button variant="select" type="submit">
|
||||
{t("button.next", { ns: "common" })}
|
||||
</Button>
|
||||
</div>
|
||||
<ImageEntry onSave={onUploadImage}>
|
||||
<div className="flex justify-end py-2">
|
||||
<Button variant="select" type="submit">
|
||||
{t("button.next", { ns: "common" })}
|
||||
</Button>
|
||||
</div>
|
||||
</ImageEntry>
|
||||
</>
|
||||
</ImageEntry>
|
||||
)}
|
||||
{step == 2 && (
|
||||
<div className="mt-2">
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user