Shinobi

Motion: Tune Sensitivity

If you can see someone walking on camera but Shinobi records nothing, this is usually the fix. It lives in the Monitor's Motion Detection settings and is off by default.

Normally Shinobi asks one question about your whole Region: how much of this area changed? On a big Region, one person barely registers.

Accuracy Mode lays a grid over the scene and checks each small square separately. That person now fills a few squares completely, which is easy to notice.

Think of looking for a coin on a large floor. Scanning the whole floor at once, you miss it. Checking one tile at a time, you spot it.

  • Edit the Monitor and open Motion Detection.
  • Set Accuracy Mode to Yes.
  • A Tile Size box appears. Leave it at 20 unless you have a reason to change it.
  • Save. The grid is built when the monitor restarts.

Open the Region Editor to see the grid drawn over your camera. Squares inside a Region are active. No Regions drawn means the whole scene is active.

Tile Size: smaller squares catch smaller things but use more CPU. Try 10 only if 20 still misses what you need.

  • Your Region is large — a yard, driveway or car park.
  • What you want to catch looks small on screen, or is far away.
  • You use Full Frame Detection, which is the biggest Region possible.

Leave it off if your server is already busy and your Regions are small and tight. Every active square costs a little CPU.

  • Catches movement you were missing.
  • Lets you keep one big Region instead of drawing lots of small ones.
  • Marks the moving area more tightly on events.
  • Saves you from cranking sensitivity up, which invites false alarms.

Nothing is broken. The movement just isn't big enough compared to the Region.

A person in a full-scene Region might cover about 2% of it. If your Trigger Threshold is higher than that, nothing happens. Turn Accuracy Mode on and that same person fills a handful of squares almost completely — close to 100% each — and it triggers.

Try these in order:

  • Turn Accuracy Mode on and restart the monitor. This is usually the whole fix.
  • Check in the Region Editor that your Region covers where things actually move.
  • Still missed? Lower Tile Size to 10.
  • Only then lower Trigger Threshold or Minimum Change. Doing this first is what causes triggers on clouds and headlights.
  • Getting too many triggers now? Turn on the Noise Filter.

The setting is detector_motion_tile_mode, with detector_tile_size beside it. When it is 1, the camera thread logs Building Accuracy Mode Detection Tiles... at startup.

  • Cut. The detector frame (detector_scale_x × detector_scale_y, default 640 × 480) is stepped through in detector_tile_size squares. Squares fully inside a Region are kept whole; squares on the edge are clipped to the Region outline. Anything outside is dropped.
  • Replace. Each square becomes its own Region, named <regionKey>_<n>, inheriting the parent's settings. Your original outlines are kept as originalCords.
  • Why it works. Sensitivity is a percentage of each Region's own area. Shrink the area and the same movement becomes a much larger percentage. The threshold never moved — the denominator did.
  • Merge. Triggered squares are grouped back by their parent Region into one bounding box, with confidences summed and an averageConfidence worked out. You get one detection area, not hundreds.
  • Filters still apply. Minimum Change, Maximum Change, Trigger Threshold and the Noise Filter all still run — the filter runs before the merge.
{
    tag: 'driveway',
    x: 120, y: 210,
    width: 80, height: 140,
    tilesCounted: 15,
    confidence: 1240,
    averageConfidence: 82.6
}

Cost: every square is checked on every analysed frame. Halving Tile Size roughly quadruples the number of squares, because you are dividing in both directions.

ShinobiDocs

All content is property of their respective owners.