Get Started
Part 3

Cameras and AI

Adding a Camera

Cameras are added where they are first needed: inside a camera condition. Three connection methods are supported.

Camera SourceInput
CSI/USBSelect from the cameras connected directly to the controller. This covers Raspberry Pi camera modules and USB webcams.
ONVIFSearch the network and select the camera. If it is not found, enter its IP address.
RTSPThe stream address, plus a username and password if the camera requires them. The rtsp:// prefix can be omitted.
Note IP cameras must be on the same network as the controller. The user's location does not matter; monitoring through the app works from anywhere.
Camera settings: regions of interest vs. detection zones

Camera settings open from the gear icon on the camera panel. They are available while stopped; while running, the same spot shows the fullscreen button.

Camera NameUsed everywhere the camera is referenced. Name it after the installation location.
Camera SourceConnection method and address.
OrientationRotation by 90, 180, or 270 degrees, horizontal/vertical flips, and combinations. Use it when the camera is mounted at an angle.
Region of Interest (ROI)Named areas defined on the frame, drawn as rectangles or polygons.

A region of interest crops the frame given to the AI before analysis. Analysis becomes faster and accuracy improves significantly for small subjects. A detection zone filters the results, so that only detections inside it are counted.

Use a region of interest to feed one part of a machine to a classifier; use a detection zone to count only what passes through a doorway.

Choosing Analyses

An analysis is one AI model watching one camera. Analyses belong to the camera, not to a rule, so multiple rules can share one analysis and the computation runs once.

AnalysisProvidesPreparation
Object DetectionWhich of 80 everyday objects are in view, and where.None
Face RecognitionWhether the face is a registered person, or unknown.Enroll faces
License Plate RecognitionThe plate number and whether it is on the registered list.Register plates
Fire DetectionWhether fire or smoke is visible.None
QR / BarcodeThe contents of a code.None
OCR (Text Recognition)Text read from the frame, in one of 11 languages.None
Custom ClassificationWhich of your own classes the scene matches.Train
Custom AnomalyHow far the scene deviates from normal.Train

Aside from Custom Classification and Custom Anomaly Detection, which require training, the other six analyses run as soon as they are added. Requiring preparation does not mean the analysis will not run; it means it cannot identify what it sees. Face Recognition detects faces before anyone is enrolled and reports every one as unknown; License Plate Recognition reads numbers but marks every plate unregistered. Enrollment is what enables identifying who, or which vehicle.

Custom Classification and Custom Anomaly are different: before training they have no reference to judge against, so they cannot evaluate at all. These two require collecting samples first, and including face and plate enrollment, four analyses require teaching.

Note Each face recognition analysis maintains its own list of people. Two cameras do not share enrolled faces. A name registered at one entrance is not exposed elsewhere, but enrollment must be done separately for each camera.

Training Faces, Plates, and Custom Classes

Four analyses require you to register or train their targets. All of this registration and training can be performed while the system is running.

Faces

  1. Open Enroll from a face condition row or the analysis settings.
  2. Click Add a name and enter the person's name.
  3. Have the person face the camera and click Enroll. Repeat five or more times, varying the angle and expression slightly. Both eyes must be visible in every shot. Side profiles are not enrolled.
The face enrollment panel
The enrollment panel. Create the name first, keep it selected, and enroll from the camera.

If a person is recognized as someone else, raise the face Threshold and enroll additional photos of both people. In environments where recognition grants access, enable Anti-Spoofing in the analysis settings; it rejects faces presented on photos or phone screens.

License Plates

Open Register from a plate condition row and enter the number. The alias is optional. An alias serves as a display label and can also be used as a condition's target value, so a condition can match "delivery van" without anyone remembering the number. Bulk add accepts a pasted list, one per line, as the plate alone or in plate,alias format.

The Registered Plates panel with plate and alias fields
The plate registry. Register plates with an optional alias, or paste a list at once with Bulk add.

Set Region in the analysis settings to the installation country. With the wrong region, reading accuracy remains poor regardless of the confidence setting.

Custom Classification

  1. Open Train from the condition row or the analysis settings.
  2. Create at least two classes and name them. Two is the minimum; a classifier with one class has nothing to decide between.
  3. Select a class, set up the scene, and capture. Repeat for each class.
  4. Click Train and wait for completion.
The training panel
The training panel. Captured samples for the selected class on the left, the class list on the right.

Samples added after the last training are marked as untrained, so you can verify whether the current model reflects the collected data.

Custom Anomaly Detection

Anomaly detection learns only the normal state and reports deviations from it. Fault samples are never registered, which makes it applicable to problems that have not occurred yet. Open Add normals, capture the scene repeatedly while it is in a normal state, and click Train.

Interpreting the score chart after training

Training produces a Normal score distribution. Read it left to right: farther right is closer to a fault, and anything right of the red line is judged faulty. Training holds back about 20 percent of the registered samples to set that line, which is why the displayed count is smaller than the number registered.

The normal score distribution chart
Each dot is one held-out normal sample. Training succeeded if no dots fall right of the red line (the fault zone).
DistributionAction
Dots grouped tightly left of the lineTraining succeeded. No action needed.
Some dots past the lineNormal units in that condition may be judged faulty. Register more normals and train again.
Dots widely spreadSamples were captured under mixed lighting or angles. Register more under consistent conditions.

Anomaly detection assumes a fixed camera angle, distance, and lighting. This holds on an inspection station but not on a corridor camera, where it produces continuous false alarms.

Tuning Accuracy and Performance

Analyses share the controller's computing resources. Three settings determine how those resources are allocated.

SettingGuidance
ModeFast is recommended for a Raspberry Pi, Accurate for a PC or Jetson. Available values depend on the analysis: Object Detection, Face Recognition, and Fire Detection offer Fast, Balanced, and Accurate; License Plate and Custom Anomaly offer Fast and Accurate; QR/Barcode, OCR, and Custom Classification use a single model and show no Mode field. Fire Detection displays all three values but runs a single model, so the result is identical regardless of the selection.
Detection FPSHow many times per second the AI analyzes. The default is 5, and 1 for the computation-heavy anomaly detection. Display between analyses is interpolated, so low values do not look choppy.
GPU AccelerationAvailable for Object Detection, Face Recognition, and OCR. On integrated or older GPUs it can be slower than the CPU, so verify performance before leaving it on.

Confidence and thresholds balance misses against false positives. Raise them when the rule reacts to absent targets; lower them when present targets are missed.

Note When overall performance is insufficient, lowering Detection FPS is more effective than lowering Mode. Running an accurate model five times per second generally yields better results than running a fast model thirty times per second, at lower cost.
Detection zones: counting only part of the frame

Object conditions cover the whole frame by default. In the condition panel, draw a Detection Zone as a rectangle or polygon, and only detections inside it are counted.

A detected object is a box, so "inside" needs a definition. That is the Zone Trigger Point.

CriterionUse case
Bottom Center (Ground Point)People and vehicles on the ground. Draw the zone on the floor. This is the default and fits most cases.
Box CenterCeiling cameras, or targets that do not touch the ground.
Overlap RatioCounting entry once the box overlaps the zone by a set percentage.

With Overlap Ratio at 100 percent, the entire box must be inside the zone. Very low values of 1 to 5 percent fire on an outstretched arm or a distant object partially overlapping the zone, which is rarely the intended behavior.