Track moving objects🔗

This tool takes in a set of points representing the locations of an arbitrary number of moving object at a time instant. It forms movement trajectories by connecting points in successive point sets based on a motion model. The trajectory estimates are updated each time new data comes in. The algorithm tries to find a set of trajectories that optimally describes the movement of the series of points in the used motion model.

Inputs🔗

  • points: The coordinates of detected moving objects as a N-by-2 matrix.

  • classIndices: An optional classification for each point as a N-by-1 matrix of integers. This information is not necessary, but helps if different objects can be reliably distinguished before tracking.

  • maxStartDistance: The maximum distance between two points in successive sets that can be considered “close enough” to start a new trajectory. This limit only applies until a movement estimate is available.

  • maxJoiningDistance: The maximum distance between an input point and the predicted location of an object that can still be considered a candidate for extending a trajectory.

  • maxPredictionLength: The maximum number of past measurements the tracker will consider in its movement estimate. A larger value makes movement estimates less noisy but also imposes some stiffness to the trajectories.

  • maxStopTime: The maximum number of time units a trajectory will be kept in memory if no new points can be connected to it.

  • time: A time stamp for the measurement. Can be either an integer representing abstract time units or a DateTime object. If this input is not connected, the tool assumes that the measurement interval is constant.

  • minTrajectoryLength: The minimum number of connected points that will be reported as a trajectory.

  • maxTrajectoryLength: The maximum number of points connected to a trajectory before it is pruned and a new trajectory is started.

Outputs🔗

  • trajectories: The current set of estimated trajectories. A N-by-2 matrix of point coordinates that contains M trajectories with a variable number of points.

  • blockSize: The number of points in each of the trajectories stored in trajectories. An M-by-1 integer matrix in which the number of rows (M) corresponds to the number of detected trajectories. Values in this matrix are between minTrajectoryLength and maxTrajectoryLength, inclusive.

  • classIndices: The class index of each trajectory as an M-by-1 integer matrix. If class indices were not provided as input, the matrix is all zeros.

  • times: An array of time stamps, one for each point in trajectories.