Trackers¶
-
class
stonesoup.tracker.base.Tracker[source]¶ Bases:
stonesoup.base.Base,stonesoup.buffered_generator.BufferedGeneratorTracker base class
-
abstract
tracks_gen()[source]¶ Returns a generator of tracks for each time step.
- Yields
datetime.datetime– Datetime of current time stepset of
Track– Tracks existing in the time step
-
abstract
-
class
stonesoup.tracker.simple.SingleTargetTracker(initiator: Initiator, deleter: Deleter, detector: DetectionReader, data_associator: DataAssociator, updater: Updater)[source]¶ Bases:
stonesoup.tracker.base.TrackerA simple single target tracker.
Track a single object using Stone Soup components. The tracker works by first calling the
data_associatorwith the active track, and then either updating the track state with the result of theupdaterif a detection is associated, or with the prediction if no detection is associated to the track. The track is then checked for deletion by thedeleter, and if deleted theinitiatoris called to generate a new track. Similarly if no track is present (i.e. tracker is initialised or deleted in previous iteration), only theinitiatoris called.- Parameters
initiator (
Initiator) – Initiator used to initialise the track.deleter (
Deleter) – Deleter used to delete the trackdetector (
DetectionReader) – Detector used to generate detection objects.data_associator (
DataAssociator) – Association algorithm to pair predictions to detectionsupdater (
Updater) – Updater used to update the track object to the new state.
-
initiator: stonesoup.initiator.base.Initiator¶ Initiator used to initialise the track.
-
deleter: stonesoup.deleter.base.Deleter¶ Deleter used to delete the track
-
detector: stonesoup.reader.base.DetectionReader¶ Detector used to generate detection objects.
-
data_associator: stonesoup.dataassociator.base.DataAssociator¶ Association algorithm to pair predictions to detections
-
updater: stonesoup.updater.base.Updater¶ Updater used to update the track object to the new state.
-
tracks_gen()[source]¶ Returns a generator of tracks for each time step.
- Yields
datetime.datetime– Datetime of current time stepset of
Track– Tracks existing in the time step
-
class
stonesoup.tracker.simple.MultiTargetTracker(initiator: Initiator, deleter: Deleter, detector: DetectionReader, data_associator: DataAssociator, updater: Updater)[source]¶ Bases:
stonesoup.tracker.base.TrackerA simple multi target tracker.
Track multiple objects using Stone Soup components. The tracker works by first calling the
data_associatorwith the active tracks, and then either updating the track state with the result of theupdaterif a detection is associated, or with the prediction if no detection is associated to the track. Tracks are then checked for deletion by thedeleter, and remaining unassociated detections are passed to theinitiatorto generate new tracks.- Parameters
initiator (
Initiator) – Initiator used to initialise the track.deleter (
Deleter) – Initiator used to initialise the track.detector (
DetectionReader) – Detector used to generate detection objects.data_associator (
DataAssociator) – Association algorithm to pair predictions to detectionsupdater (
Updater) – Updater used to update the track object to the new state.
-
initiator: stonesoup.initiator.base.Initiator¶ Initiator used to initialise the track.
-
deleter: stonesoup.deleter.base.Deleter¶ Initiator used to initialise the track.
-
detector: stonesoup.reader.base.DetectionReader¶ Detector used to generate detection objects.
-
data_associator: stonesoup.dataassociator.base.DataAssociator¶ Association algorithm to pair predictions to detections
-
updater: stonesoup.updater.base.Updater¶ Updater used to update the track object to the new state.
-
tracks_gen()[source]¶ Returns a generator of tracks for each time step.
- Yields
datetime.datetime– Datetime of current time stepset of
Track– Tracks existing in the time step
-
class
stonesoup.tracker.simple.MultiTargetMixtureTracker(initiator: Initiator, deleter: Deleter, detector: DetectionReader, data_associator: DataAssociator, updater: Updater)[source]¶ Bases:
stonesoup.tracker.base.TrackerA simple multi target tracker that receives associations from a (Gaussian) Mixture associator.
Track multiple objects using Stone Soup components. The tracker works by first calling the
data_associatorwith the active tracks, and then either updating the track state with the result of thedata_associatorthat reduces the (Gaussian) Mixture of all possible track-detection associations, or with the prediction if no detection is associated to the track. Tracks are then checked for deletion by thedeleter, and remaining unassociated detections are passed to theinitiatorto generate new tracks.- Parameters
initiator (
Initiator) – Initiator used to initialise the track.deleter (
Deleter) – Initiator used to initialise the track.detector (
DetectionReader) – Detector used to generate detection objects.data_associator (
DataAssociator) – Association algorithm to pair predictions to detectionsupdater (
Updater) – Updater used to update the track object to the new state.
-
initiator: stonesoup.initiator.base.Initiator¶ Initiator used to initialise the track.
-
deleter: stonesoup.deleter.base.Deleter¶ Initiator used to initialise the track.
-
detector: stonesoup.reader.base.DetectionReader¶ Detector used to generate detection objects.
-
data_associator: stonesoup.dataassociator.base.DataAssociator¶ Association algorithm to pair predictions to detections
-
updater: stonesoup.updater.base.Updater¶ Updater used to update the track object to the new state.
-
tracks_gen()[source]¶ Returns a generator of tracks for each time step.
- Yields
datetime.datetime– Datetime of current time stepset of
Track– Tracks existing in the time step
Point Process¶
-
class
stonesoup.tracker.pointprocess.PointProcessMultiTargetTracker(detector: DetectionReader, updater: Updater, hypothesiser: GaussianMixtureHypothesiser, reducer: GaussianMixtureReducer, extraction_threshold: Probability = 0.9, birth_component: TaggedWeightedGaussianState = None)[source]¶ Bases:
stonesoup.tracker.base.TrackerBase class for Gaussian Mixture (GM) style implementations of point process derived filters
- Parameters
detector (
DetectionReader) – Detector used to generate detection objects.updater (
Updater) – Updater used to update the objects to their new state.hypothesiser (
GaussianMixtureHypothesiser) – Association algorithm to pair predictions to detectionsreducer (
GaussianMixtureReducer) – Reducer used to reduce the number of components in the mixture.extraction_threshold (
Probability, optional) – Threshold to extract components from the mixture.birth_component (
TaggedWeightedGaussianState, optional) – The birth component. The weight should be equal to the mean of the expected number of births per timestep (Poission distributed)
-
detector: stonesoup.reader.base.DetectionReader¶ Detector used to generate detection objects.
-
updater: stonesoup.updater.base.Updater¶ Updater used to update the objects to their new state.
-
hypothesiser: stonesoup.hypothesiser.gaussianmixture.GaussianMixtureHypothesiser¶ Association algorithm to pair predictions to detections
-
reducer: stonesoup.mixturereducer.gaussianmixture.GaussianMixtureReducer¶ Reducer used to reduce the number of components in the mixture.
-
extraction_threshold: stonesoup.types.numeric.Probability¶ Threshold to extract components from the mixture.
-
birth_component: stonesoup.types.state.TaggedWeightedGaussianState¶ The birth component. The weight should be equal to the mean of the expected number of births per timestep (Poission distributed)
-
update_tracks()[source]¶ Updates the tracks (
Track) associated with the filter.- Parameters
self (
GaussianMixtureMultiTargetTracker) – Current GM Multi Target Tracker at time \(k\)
Note
Each track shares a unique tag with its associated component
-
tracks_gen()[source]¶ Returns a generator of tracks for each time step.
- Yields
datetime.datetime– Datetime of current time stepset of
Track– Tracks existing in the time step
-
end_tracks()[source]¶ Ends the tracks (
Track) that do not have an associated component within the filter.- Parameters
self (
GaussianMixtureMultiTargetTracker) – Current GM Multi Target Tracker at time \(k\)
-
property
extracted_target_states¶ Extract all target states from the Gaussian Mixture that are above an extraction threshold.
-
property
estimated_number_of_targets¶ The number of hypothesised targets.