Watcher
Watcher objects are plain object descriptors providing Lampix with the required information to start watching areas based on the behaviors described.
name
(string): Literal string describing the Python class to instantiate and define the watcher's behavior (e.g'NeuralNetworkClassifier'
,'MovementBasedSegmenter'
etc.).shape
(Object): Plain object with two properties,type
andshape
that defines the surface area for the watcher.type
(string): Defines shape type, and controls what the expected structure ofshape.data
will be. Accepted values:'rectangle'
'polygon'
data
(Object): Actual descriptor object for the contour of the watcher.- If
shape.type
is'rectangle'
, the expected data structure is:posX
(number): top left X coordinate of rectangleposY
(number): top left Y coordinate of rectanglewidth
(number)height
(number)
- If
shape.type
is'polygon'
, a list of points is expected, with each point having the following data structure:x
(number): X coordinate of pointy
(number): Y coordinate of point
onClassification
(Function): Callback used by Lampix to send information about recognized objects as a list with with recognized objects of the following structure:classTag
(string): Recognized class of the described object.objectId?
(number, Optional): ID representing the object. Useful when determining whether Lampix considers an object as new.outline?
(Array, Optional): Object with a property ofpoints
that describes the contour of the object as a polygon:metadata?
(string, Optional): Watcher specific information
onLocation
(Function): Callback used only by watchers that locate first, then classify. Called with a list of located objects that with a similar structure to the one above, exceptclassTag
is not mentioned since it has not been determined at the time of this call.params?
(Object): Plain object with arbitrary props that can differ from watcher to watcher. See standard watchers
The only required property is
classTag
. Certain watchers that do not support more than one object at a time (e.g NeuralNetworkClassifier
), will always provide a list with one recognized object that only has the classTag
property. This is by design, to ensure consistency in the data format returned by the standard watchers.{
name: 'DepthClassifier',
shape: {
type: "rectangle",
data: {
posX: 0,
posY: 0,
width: window.innerWidth,
height: window.innerHeight
}
},
params: {
frames_until_stable: 5
},
onClassification: (objects) => draw(objects);
}
In the example above, you can use
shape: lampix.helpers.rectangle(0, 0, window.innerWidth, window.innerHeight)
to achieve the same result.Last modified 4yr ago