blakeblackshear / frigate

NVR with realtime local object detection for IP cameras
https://frigate.video
MIT License
19.04k stars 1.74k forks source link

False positive alert #283

Closed pilievwm closed 3 years ago

pilievwm commented 4 years ago

Hi, does anyone know how to deal with such result? 9584535D-9297-4170-98DD-61C06E8C53A9

Buzztiger commented 4 years ago

Get a dog? SCNR.

So false positives are related to the model that is used. Besides cross-training the model (difficult), basically telling the computer that this is not a person, you can more easily adjust the size parameters of frigate. Increase the minium area parameter above the size of this cat.

In combination with different zones and per zone size parameters I've gotten my back yard cat-persons down to zero. Although I do now miss cat sized persons (aka my 2 year old).

pilievwm commented 4 years ago

Ah, yeah! I got a dog, but this cat is not mine ;) What do you mean by "In combination with different zones"? I've changed the zone minimum size, but this means that your camera will not work for detecting people from a certain length. For example, if your viewing area is 100 meters, increasing the minimum size of the detecting zone will limit the detecting area to fewer maters. My goal is as much as possible long detecting rage.

Buzztiger commented 4 years ago

So frigate allows you to create multiple zones on your camera image. And you can for each zone define the minimum size of the object detection. So for excluding smaller objects you would have to set up multiple zones at different distances. The further away from the camera the smaller this minimum object size will be.

You are correct, for very long distances this will be difficult as the apparent size difference in pixels between cat/person will get smaller and smaller.

Ideally the object should have about 300x300 pixels to match the training of the model. So that will limit anyway the accuracy for detection far away from the camera.

tubalainen commented 4 years ago

Indeed! I had both cats, dogs, bobby cars and my Worx robotic lawn mower being detected as a "person". Just by adjusting the expected size of the detection type (person i this case) most of the false-positives went away. You need to play a bit with the min/max settings here hence the camera angle, area or camera coverage, camera resolution and how wide the camera lens is all comes into play. AND - Creating a maskwould also help immensely with the false-positives hence person normally do not fly or climb bushes/trees :-)

My "worst camera" in the false positive aspects can see and detect 30 meters (ish) away and got a 6mm lens, so the depth and the possible size of a person differs quite a lot within the mask I have created.

image

Here is my settings for my 30 meter depth camera, 6mm lens and with an resolution of 2274x1286. The zone is the same as the mask just for tuning in all the bushes and trees to lessen the CPU load.

cameras:
  cam3_framsidan:
    ffmpeg:
      input: rtsp://user:pass@192.168.x.x:554/Streaming/Channels/1
      hwaccel_args:
        - -hwaccel
        - vaapi
        - -hwaccel_device
        - /dev/dri/renderD128
        - -hwaccel_output_format
        - yuv420p
    take_frame: 1
    fps: 8
    save_clips:
      enabled: False
      pre_capture: 30
      draw_bounding_boxes: True
    mask: 'poly,0,1518,0,0,2687,0,2687,644,2305,542,2290,463,2115,406,1889,401,1922,119,1794,17,1393,43,1381,468,1174,523,889,485,804,337,835,216,502,221,512,539,414,615,433,1518'
    zones:
      buskarna_cam3:
        coordinates: 0,1518,0,0,2687,0,2687,644,2305,542,2290,463,2115,406,1889,401,1922,119,1794,17,1393,43,1381,468,1174,523,889,485,804,337,835,216,502,221,512,539,414,615,433,1518
    snapshots:
      show_timestamp: True
      draw_zones: True
    objects:
      track:
        - person
     filters:
        person:
          min_area: 20000
          max_area: 300000
          threshold: 0.8
          min_score: 0.5
pilievwm commented 3 years ago

Guys, my challenges with false-positive alerts are not stopping. For two days in a row, I have black spots on two cameras that are detected as a human. I believe it blinks from the sunlight but I am not sure. The most strange is that the AI thinks it is a human :) image

I really can not come with a suggestion for a fix :(

Buzztiger commented 3 years ago

Hmm that looks arkward. More like a shadow.

Do you have a video sequence of these blobs? Do they move around? Are they the same size as an expected human? Is there an object at that location that could reflect the sunlight? But I would expect a white blob from a sun glare.

I think I would first try to eliminate these artefacts...

pilievwm commented 3 years ago

No, there is no video record because there is no movement. The other option is a bug or spider on the camera... In anyways it is not a human :) My concerns are with AI detection.

stale[bot] commented 3 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.