Frigate - Detecting small objects - birds, cats etc

Hi everyone,
I have Frigate setup running the latest version. I have setup detection for person, dog, cat and bird. I am reliably getting notifications about person but I am unable to get and. bird or cat notifications. I have seen birds in the garden and I can see via camera feed but frigate is not detecting this. I presume this is the object being too small for frigate to detect as my camera is mounted high up. How can I ask the Frigate to detect these small objects? I am using a a substream with 720p for detection purpose. Would using the mainstream help? I am aware that this will take up more resources.

I would appreciate any help. My use case is the shoo the birds away with an automation as they feed on my vegetables in the garden.

Thank you

  1. Using a higher resolution would help and of course use more resources. If you are on the latest version you could also use the main stream and use the detect -> width / height settings to resize to a different resolution using your GPU to do most the work.
  2. You also may be okay with your current resolution and just need to make motion detection more sensitive.

Hi
Thanks for your reply.
I am using width/height in the config to adjust the detect area but I am not sure if I am doing it right. Do we have to give a small area for the smaller object to be detected reliably? My config is currenlty as below:

detect:
width: 1080
height: 720
fps: 5
objects:
track:
- person
- cat
- bird
- dog
filters:
bird:
min_area: 100
max_area: 5000
min_ratio: 0.5
max_ratio: 2.0
min_score: 0.5
threshold: 0.5

I have also attached 2 snapshots with a bird detected (to my surprise today, one even before I changed the resolution) As you can see they are quite small area. What does this mean? Do I have to make the area even smaller in the config?


I would not recommend setting these. These are only there to limit the detection. If you are having issues detecting birds you should remove all filters until you get a setup that detects the birds you want.

1 Like

I did not have any filters but nothing was detecting. Hence I was playing around with the settings after reading through frigate documents. Default threshold is .7 so I reduced to detect something. Likewise the area default is much higher, so I reduced this. I’m not sure if I’m doing the right thing here by reducing the area. As you can see a bird is detected with a bounding box of only 475 pixels. Also once my BBQ was detected as a bird and also a person was also detected as a bird. Hence the reason for setting these. Basically, asking frigate to only detect small objects as birds and ignore large ones. At least that’s what I understand and I could be completely wrong here.

Yeah these details weren’t included before so it wasn’t clear why they were being set, but that makes sense.

I need frigate to detect if a cat has a bird or chipmunk in its mouth before entering the cat door and to lock if true lol. My cats are bringing their kills back with them.

    detect:
      width: 1270 # <- optional, by default Frigate tries to automatically detect resolution
      height: 720 # <- optional, by default Frigate tries to automatically detect resolution
      fps: 5
      stationary:
        interval: 20
        threshold: 50

    # object track ????
    objects:
      track:
        - person
        - dog
        - cat
        - bird
      filters:
        person:
          min_area: 5000
          min_score: 0.5
          threshold: 0.6
        dog:
          #min_area: 4000
          #min_score: 0.5
          #threshold: 0.6
          min_area: 5000
          min_score: 0.6 # Orig 0.5
          threshold: 0.85 # Orig 0.6
        cat:
          min_area: 5000
          min_score: 0.6 # Orig 0.5
          threshold: 0.85 # Orig 0.6
        bird:
          min_area: 100
          max_area: 5000
          min_ratio: 0.5
          max_ratio: 2.0
          min_score: 0.5
          threshold: 0.5

With the above parameters it detected a rock of about 12" square as a bird!

How would you guess, or measure the min_area or max_area pixels of a bird that appears in Frigate > Settings > Debug? My questions is, how would fix the values when a bird is detected and it’s a false detection, how would you measure the value of increase or decrease for min_area and, or max area?

Here is a picture for your reference:
Screenshot 2024-10-11 112817

the number to the right of the % is the area. Though a bird could easily be that area or close to it depending on how close it is to the camera