de.unihalle.informatik.MiToBo.tracking.multitarget.algo
Class MultiTargetIMMFilter

java.lang.Object
  extended by de.unihalle.informatik.MiToBo.tracking.multitarget.algo.MultiTargetIMMFilter
All Implemented Interfaces:
FirstOrderMoment<AbstractMultiState<MotionModelID>>, MultiTargetPredictionFilter<AbstractMultiState<MotionModelID>>, MultiTargetPredictionFilterIndep<MotionModelID>, Copyable<MultiTargetPredictionFilter<AbstractMultiState<MotionModelID>>>

@ALDMetaInfo(export=ALLOWED)
public class MultiTargetIMMFilter
extends Object
implements MultiTargetPredictionFilterIndep<MotionModelID>

Multi-target Interacting Multiple Models (IMM) filter for varying number of targets.

Author:
Oliver Gress

Field Summary
protected  double delta_t
           
protected  AbstractMultiStateFactory<MotionModelID> factoryX
           
protected  AbstractMultiStateFactory<MotionModelID> factoryZ
           
protected  Jama.Matrix markov
          Markov matrix probability of dynamic model switching: A matrix with size (#dynamicmodels x #dynamicmodels).
protected  AbstractMultiState<MotionModelID> meanX
           
protected  GaussMixDistribution newbornStateDistrib
           
protected  Jama.Matrix newbornStateFromObs
           
protected  ExponentialDistribution pdeath
           
protected  Vector<GaussMixDistribution> pobs
          observation distribution: independent Gaussian mixtures for each target
protected  LinearTransformGaussNoise[] predictors
          dynamic models
protected  LinearTransformGaussNoise projector
          observation model
protected  Vector<GaussMixDistribution> pstate
          state distribution: independent Gaussian mixtures for each target
protected  Random rand
           
protected  HashMap<Short,Integer> targetIDtoIdx
           
 
Constructor Summary
MultiTargetIMMFilter(MultiTargetIMMFilter imm)
          Copy constructor.
MultiTargetIMMFilter(Vector<GaussMixDistribution> initialStateDistrib, LinearTransformGaussNoise observationModel, LinearTransformGaussNoise[] dynamicsModels, Jama.Matrix markov, double delta_t, ExponentialDistribution targetDeathDistrib, GaussMixDistribution newbornStateDistrib, Jama.Matrix stateFromObs, AbstractMultiStateFactory<MotionModelID> factoryX, AbstractMultiStateFactory<MotionModelID> factoryZ)
          Constructor that initializes the internal random generator with seed 1.
MultiTargetIMMFilter(Vector<GaussMixDistribution> initialStateDistrib, LinearTransformGaussNoise observationModel, LinearTransformGaussNoise[] dynamicsModels, Jama.Matrix markov, double delta_t, ExponentialDistribution targetDeathDistrib, GaussMixDistribution newbornStateDistrib, Jama.Matrix stateFromObs, AbstractMultiStateFactory<MotionModelID> factoryX, AbstractMultiStateFactory<MotionModelID> factoryZ, Random rand)
          Constructor.
 
Method Summary
 MultiTargetPredictionFilterIndep<MotionModelID> copy()
           
 Set<Short> getExistingTargetIDs()
           
 AbstractMultiState<MotionModelID> getMean()
           
 AbstractMultiObservationDistributionIndep<MotionModelID,MotionModelID> getObservationDistribution()
           
protected  void letTargetsDie()
          Let targets die randomly using the specified distribution of target death and the internal random generator.
 void predict()
          Prediction step method
 void update(AbstractMultiState<MotionModelID> observation, DataAssociation association)
          Update step method given a multi-target observation
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

pstate

protected Vector<GaussMixDistribution> pstate
state distribution: independent Gaussian mixtures for each target


pobs

protected Vector<GaussMixDistribution> pobs
observation distribution: independent Gaussian mixtures for each target


meanX

protected AbstractMultiState<MotionModelID> meanX

predictors

protected LinearTransformGaussNoise[] predictors
dynamic models


projector

protected LinearTransformGaussNoise projector
observation model


rand

protected Random rand

markov

protected Jama.Matrix markov
Markov matrix probability of dynamic model switching: A matrix with size (#dynamicmodels x #dynamicmodels). The matrix element (i,j) specifies the probability P(M^t = j | M^{t-1} = i) of switching the dynamic model from i in time step t-1 to j in time step t


factoryX

protected AbstractMultiStateFactory<MotionModelID> factoryX

factoryZ

protected AbstractMultiStateFactory<MotionModelID> factoryZ

delta_t

protected double delta_t

pdeath

protected ExponentialDistribution pdeath

targetIDtoIdx

protected HashMap<Short,Integer> targetIDtoIdx

newbornStateDistrib

protected GaussMixDistribution newbornStateDistrib

newbornStateFromObs

protected Jama.Matrix newbornStateFromObs
Constructor Detail

MultiTargetIMMFilter

public MultiTargetIMMFilter(MultiTargetIMMFilter imm)
Copy constructor.


MultiTargetIMMFilter

public MultiTargetIMMFilter(Vector<GaussMixDistribution> initialStateDistrib,
                            LinearTransformGaussNoise observationModel,
                            LinearTransformGaussNoise[] dynamicsModels,
                            Jama.Matrix markov,
                            double delta_t,
                            ExponentialDistribution targetDeathDistrib,
                            GaussMixDistribution newbornStateDistrib,
                            Jama.Matrix stateFromObs,
                            AbstractMultiStateFactory<MotionModelID> factoryX,
                            AbstractMultiStateFactory<MotionModelID> factoryZ)
Constructor that initializes the internal random generator with seed 1.

Parameters:
initialStateDistrib - distributions of the different independent targets' states
observationModel - observation model
dynamicsModels - multiple dynamic models
markov - model transition matrix: each column holds the probabilities to switch from the dynamic model of column-index to the corresponding model of row-index
delta_t - time step
targetDeathDistrib - distribution of the death/survival of targets depending on last time of association
newbornStateDistrib - distribution of newborn targets
stateFromObs - a matrix to transform an observation (vector) to a state vector
factoryX - multi-state factory
factoryZ - multi-observation factory

MultiTargetIMMFilter

public MultiTargetIMMFilter(Vector<GaussMixDistribution> initialStateDistrib,
                            LinearTransformGaussNoise observationModel,
                            LinearTransformGaussNoise[] dynamicsModels,
                            Jama.Matrix markov,
                            double delta_t,
                            ExponentialDistribution targetDeathDistrib,
                            GaussMixDistribution newbornStateDistrib,
                            Jama.Matrix stateFromObs,
                            AbstractMultiStateFactory<MotionModelID> factoryX,
                            AbstractMultiStateFactory<MotionModelID> factoryZ,
                            Random rand)
Constructor.

Parameters:
initialStateDistrib - distributions of the different independent targets' states
observationModel - observation model
dynamicsModels - multiple dynamic models
markov - model transition matrix: each column holds the probabilities to switch from the dynamic model of column-index to the corresponding model of row-index
delta_t - time step
targetDeathDistrib - distribution of the death/survival of targets depending on last time of association
newbornStateDistrib - distribution of newborn targets
stateFromObs - a matrix to transform an observation (vector) to a state vector
factoryX - multi-state factory
factoryZ - multi-observation factory
rand - random generator
Method Detail

predict

public void predict()
Description copied from interface: MultiTargetPredictionFilter
Prediction step method

Specified by:
predict in interface MultiTargetPredictionFilter<AbstractMultiState<MotionModelID>>

update

public void update(AbstractMultiState<MotionModelID> observation,
                   DataAssociation association)
Description copied from interface: MultiTargetPredictionFilter
Update step method given a multi-target observation

Specified by:
update in interface MultiTargetPredictionFilter<AbstractMultiState<MotionModelID>>

getMean

public AbstractMultiState<MotionModelID> getMean()
Specified by:
getMean in interface FirstOrderMoment<AbstractMultiState<MotionModelID>>

copy

public MultiTargetPredictionFilterIndep<MotionModelID> copy()
Specified by:
copy in interface MultiTargetPredictionFilterIndep<MotionModelID>
Specified by:
copy in interface Copyable<MultiTargetPredictionFilter<AbstractMultiState<MotionModelID>>>

getObservationDistribution

public AbstractMultiObservationDistributionIndep<MotionModelID,MotionModelID> getObservationDistribution()
Specified by:
getObservationDistribution in interface MultiTargetPredictionFilterIndep<MotionModelID>

letTargetsDie

protected void letTargetsDie()
Let targets die randomly using the specified distribution of target death and the internal random generator. Used by RBMCDA!!


getExistingTargetIDs

public Set<Short> getExistingTargetIDs()


Copyright © 2010–2015 Martin Luther University Halle-Wittenberg. All rights reserved.