Skip to content

Masked Out Area will triggering vehicles

edited September 2019 in SecuritySpy
I’ve masked out the street completely in green, yet cars still trigger motion clips.

Comments

  • It could be vehicle shadows cast into unmasked areas.

    I have a similar issue with people.
  • Yes, shadows could be the cause here. If not, please email us and include some screenshots to demonstrate.
  • If I understand correctly, you have to select "Recompress video data from this device" in order for video masking to work? Its better to do it in the camera if you can.
  • There are two masks and there may be some confusion here between them:

    - Motion mask: this is configured via Preferences -> Cameras -> Triggers and determines which areas of the frame are ignored for the purposes of motion detection. Recompression is not required for this.

    - Video blanking mask: this is configured via Preferences -> Cameras -> Setup and determines areas of the frame to erase by drawing black pixels. This DOES require recompression, as it requires SecuritySpy to edit the image data.
  • Presumably if I wanted to prioritise video quality I should avoid all the settings which force recompression (blanking mask, codecs other than H264, others?).

    Are there any scenarios which would force SS to recompress more than once?
  • Yes that's correct - for optimum performance and video quality you should avoid recompression. SecuritySpy will give you a warning if you enable any setting that requires recompression (blanking mask and text overlay).

    There is no circumstance that requires SecuritySpy to recompress more than once.
  • First, the AI triggers are fantastic. Thank you for implementing that feature.

    I have a Motion Detection mask drawn so that cars passing on the street will not trigger motion, but cars entering my driveway will. However, at night the sweep of headlights across my driveway triggers a motion event (understandable). But that motion event is passed to the AI module, which recognizes a vehicle, even though the vehicle is in the street, which is covered by the ignore motion mask.

    So my question is: would it be possible for the AI module to only analyze the part of the frame that is unmasked by the Motion Detection mask, rather than the entire video frame?
  • Sorry for the delayed reply to this. I don't think it would work well to pass just a portion of the frame to the AI - due to odd shaped masks, and limited pixels to work with, this would lead to unpredictable results. The algorithm first looks for motion within unmasked areas only, but it then sends the portion of the whole frame that contains motion (masked and unmasked) to the AI. This is leading to the slightly unexpected results you are seeing. We'll review this for the future, but for now this is the method that we have found works the best, even though it does let through some false-positive detections. We judged that this was a better outcome than increasing the rate of false-negative detections (i.e. missing something important), which would inevitably happen by limiting the input to the AI.
  • Thank you for the explanation, that makes sense. My situation may be somewhat uncommon, due to the wide angle view of my camera, the need for high motion sensitivity to pickup humans, and my property being a corner lot, so when a car turns the headlights cause a high amount of motion. Thanks again for the AI triggers.
  • Ben, you've already answered this question, but just to revisit it as a request for a possible future upgrade... I understand that after motion has been detected within the unmasked area, the AI analyzes the entire frame for vehicles or humans. But would it be possible to add a third step, such that the mask could be applied again to determine if the vehicle or human that has been recognized is in the masked or unmasked area?

    I agree that false-positives are more desirable than false-negatives, but I've got non-stop notifications due to cars parked across the street in a masked area, that are being initiated by the constant motion of the shadow of leaves in sunlight on the ground in the foreground. I'm not sure how to prevent this, aside from disarming this camera.
  • BenBen
    edited July 2020
    When motion in the masked area is detected, it's not the whole frame that is sent to the AI; it's the subset of the whole frame that has motion.

    Here's an example to illustrate: say you want to detect all people walking along a path, but there are some plants behind the path that sway in the wind that have the potential to cause false-positive detections, so you use the motion mask to exclude the plants from the motion detection. Now, motion will be detected in just the unmasked path area, which effectively now detects people's legs walking along the path. But if only an image of people's legs were sent to the AI, the results would not be accurate. So SecuritySpy takes the whole area of motion, including any part within the mask, and sends that to the AI, which results in a much more accurate classification:

    image

    So it already does what you suggest, which is to trigger only if at least part of the motion is in the unmasked area.

    Unfortunately the limitation here is that the AI can't tell whether an object is moving or not: it is just looking at a still image. So if you have set the AI to detect vehicles, but there are stationary vehicles in the frame, the AI will be triggered even if the motion is in front of the vehicles and not the vehicles moving themselves. In this case, I suggest that you set the notifications trigger to be humans only (i.e. turn off the vehicle AI for Actions mode), and set the recording trigger to be basic motion detection only (i.e. turn off both AIs for Motion Capture). This way, you will get notifications of humans only, but everything will be recorded, so that if there is some kind of incident you can refer back to the recorded footage, which will contain all motion events.
Sign In or Register to comment.