Artificial intelligence video surveillance, explained end to end
- No face recognition, ever
- Works on ONVIF and RTSP cameras
- Categories, never identities
Connect, detect, classify, alert. The alert storm is made in stage two and fixed in stage three.
Connect
A stream URL, and nothing else changes
You give it an RTSP URL or let it discover the camera over ONVIF, and it opens the sub stream, which is the low resolution copy your camera is already producing for its own app. Nothing is installed on the camera, no firmware is touched, and your recorder keeps recording exactly as it does today. If the camera is behind NAT, the connector runs on the same network and only the events leave it.
Where this goes wrong: a camera whose sub stream is set to 1 fps, or an H.265 profile the recorder is holding exclusively. Both are settings on the camera, and both are a five minute fix.
Detect
Which pixels changed, and did enough of them change together
A background model of the empty scene is built from the stream and updated as light drifts. Every sampled frame is compared against it, the difference is thresholded, then put through an erosion and a dilation so single pixel sensor noise dies and real regions survive. What is left is grouped into connected components, and components that persist across neighbouring frames are joined into one event with a start, an end and a motion area.
Where this goes wrong: everything. This is the stage your recorder already has, and it is the stage that fires at rain, headlights, a branch, an infrared moth and the auto exposure hunting at dusk. Detection alone cannot tell you what moved, only that something did.
Classify
What was it, how sure are we, and in one line what happened
Each event is cropped at its two or three strongest frames and those crops, not the video, go to the model. It returns one of five categories, person, vehicle, animal, package or other motion, a confidence value, and a one line description of what is in the crop. That is what turns a motion trigger into an event you can read in a list without opening the footage.
Where this goes wrong: a subject that is mostly out of frame, a crop that is almost entirely infrared bloom, or an object at the very edge of the useful range. The confidence value drops, and a low confidence event is still shown, still classified, and still yours to judge.
Alert
Only the events that survived your own rules
An event has to pass three filters before anything reaches you: it must not be inside an exclude zone, it must last longer than your minimum duration, and its class must be one you asked to hear about. What survives is emailed, posted to a webhook or dropped into Slack. Everything else stays in the timeline, searchable, without paging anyone at 3am.
Where this goes wrong: zones drawn too generously. A polygon over the whole road also removes the person who walks up the road to your gate, so draw it at the kerb and not at the fence.
Stages two and three run for real in the demo on the homepage, in your own browser, on a clip you can replace with your own. If you want the capability list rather than the mechanism, read the AI video analytics software features.
The model never sees your video. It sees a few still crops, and it answers three questions.
This is the part people are right to ask about, so it is written as a specification rather than as a promise. The detection stage runs where the footage is. Only the crops around an event that already passed your filters are sent to be classified, and the answer is three fields wide.
If the classification call fails or is rate limited, the event stays in the timeline marked unclassified with its real motion data intact. We do not substitute a guess, because a guessed label is worse than an honest gap.
The same contract is described from the buyer's side on enterprise security camera systems, with the access control, retention and DPA questions answered next to it.
It classifies categories. It does not recognise people.
There is no face template, no face matching, no gait analysis and no re-identification of a person across cameras or across days. This is not a setting with a default, and it is not a policy that a future release quietly reverses. It is the shape of the pipeline: the model is asked for a category and a confidence, and nothing in the system stores a biometric identifier to compare against.
In Illinois, Texas and Washington that distinction is the difference between a purchase your counsel signs off and a purchase that needs written consent from everyone who walks past your camera. It is also, separately, the right way to build it.
Four conditions where this gets worse, and what to do about each.
Heavy rain straight onto the dome
Water on the lens is not noise, it is real change across the whole frame, so the detector is right and useless at the same time.
Raise the minimum motion area, and if the camera has a housing with a lip, use it. A hooded camera loses very little field of view and most of the rain.
Near total darkness with no working infrared
If the frame is mostly sensor noise the background model has nothing stable to hold, and the crops the model sees are grain.
Fix the infrared illuminator or add any light at all. Detection quality follows the exposure, not the software.
A subject mostly out of frame
A shoulder and an elbow at the edge of the shot classify badly, and honestly so: the confidence value drops.
Widen the field of view or lower the camera. Events near the frame edge are worth watching, not worth alerting on.
A camera pointed at a public road
A road is a continuous source of real, correctly detected vehicles, none of which you care about.
This is what exclude zones are for, and it is the single change that fixes most alert storms. Draw the polygon at the kerb.
The physics behind most of these is worth twenty minutes if your recorder is currently unusable: why security cameras send false triggers.
Three questions this page raises.
01
Does the detection run in the cloud?
The motion detection runs where the footage is: in your browser in the demo on this page, and next to your cameras on a live site. Only the small still crops around an event are sent to be classified, and only for events that already passed your zones and your minimum duration.
02
How much bandwidth does this use?
Far less than streaming the camera, because the video never leaves. What leaves is a few JPEG crops per event, each roughly 320px on the long edge. A quiet overnight camera can go hours without sending anything at all.
03
What frame rate does it need?
The detector samples at around 8 frames a second, which is enough to catch a person walking and cheap enough to run on many cameras at once. A sub stream at 10 to 15 fps is plenty, and that is what most cameras already publish.
Where to go from the mechanism
AI video analytics software features
The full capability list, grouped by the job each one does.
Artificial intelligence for video surveillance
The same subject from the buying side, with the alternatives priced.
Enterprise security camera systems
SSO, roles, audit logs, retention and the DPA.
RTSP software
Getting a stream URL out of the camera you already own.
Video analytics software price
What the four stages cost per camera, per month.
Video analytics platform use cases
The same pipeline pointed at four different yards.
Run stage two and three yourself.
The demo on the homepage does the real detection in your browser and the real classification on the events it finds. No account, no card, and no limit on how many times you run it.