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
shape(Object): Plain object with two properties,
shapethat defines the surface area for the watcher.
type(string): Defines shape type, and controls what the expected structure of
shape.datawill be. Accepted values:
data(Object): Actual descriptor object for the contour of the watcher.
'rectangle', the expected data structure is:
posX(number): top left X coordinate of rectangle
posY(number): top left Y coordinate of rectangle
'polygon', a list of points is expected, with each point having the following data structure:
x(number): X coordinate of point
y(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 of
pointsthat 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, except
classTagis not mentioned since it has not been determined at the time of this call.
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
classTagproperty. This is by design, to ensure consistency in the data format returned by the standard watchers.
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.