Lampix Apps API
Search…
Watcher
Watcher objects are plain object descriptors providing Lampix with the required information to start watching areas based on the behaviors described.

Properties

  • 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 and shape that defines the surface area for the watcher.
    • type (string): Defines shape type, and controls what the expected structure of shape.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 rectangle
        • posY (number): top left Y coordinate of rectangle
        • width (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 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 points 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, except classTag 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​

Notes

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.

Example

1
{
2
name: 'DepthClassifier',
3
shape: {
4
type: "rectangle",
5
data: {
6
posX: 0,
7
posY: 0,
8
width: window.innerWidth,
9
height: window.innerHeight
10
}
11
},
12
params: {
13
frames_until_stable: 5
14
},
15
onClassification: (objects) => draw(objects);
16
}
Copied!

Tips

In the example above, you can use shape: lampix.helpers.rectangle(0, 0, window.innerWidth, window.innerHeight) to achieve the same result.