de.unihalle.informatik.MiToBo.tracking.multitarget.algo
Class MultiTargetRBMCDA<T extends TargetID>

java.lang.Object
  extended by de.unihalle.informatik.MiToBo.math.distributions.impl.ParticleDistribution<RBMCDASample<T>>
      extended by de.unihalle.informatik.MiToBo.tracking.multitarget.algo.MultiTargetRBMCDA<T>
Type Parameters:
T -
All Implemented Interfaces:
FirstOrderMoment<AbstractMultiState<T>>, SamplingDistribution<RBMCDASample<T>>, MultiTargetPredictionFilter<AbstractMultiState<T>>, Copyable<MultiTargetPredictionFilter<AbstractMultiState<T>>>

@ALDMetaInfo(export=ALLOWED)
public class MultiTargetRBMCDA<T extends TargetID>
extends ParticleDistribution<RBMCDASample<T>>
implements MultiTargetPredictionFilter<AbstractMultiState<T>>

Rao-Blackwellized Monte Carlo Data Association following:
S. Saerkkae, A. Vehtari and J. Lampinen, "Rao-Blackwellized particle filter for multiple target tracking", Information Fusion, Vol 8, No 1, 2007, pages 2-15

Monte Carlo sampling in the space of association variables while state distributions are kept in closed form. Association variables determine association of observations to targets.

Author:
Oliver Gress

Field Summary
protected  AssociationDistribution<T,T> assocDistrib
           
protected  double esspercentage
           
protected  Vector<HashMap<Integer,Integer>> groundtruthToSampleTargetIDs
           
 OutputStream ostream
           
 
Fields inherited from class de.unihalle.informatik.MiToBo.math.distributions.impl.ParticleDistribution
cweights, equalWeights, particles, rand, weights
 
Constructor Summary
MultiTargetRBMCDA(Random rand, RBMCDASample<T>[] initialStateParticles, AssociationDistribution<T,T> assocDistrib)
           
MultiTargetRBMCDA(Random rand, RBMCDASample<T> initialState, int numParticles, AssociationDistribution<T,T> assocDistrib)
           
 
Method Summary
 MultiTargetPredictionFilter<AbstractMultiState<T>> copy()
          Not implemented, always returns null
 double getESSPercentage()
          If this percentage of number of samples is below the current effective sample size (ESS), the samples are resampled.
 AbstractMultiState<T> getMean()
           
 void predict()
          Prediction step method
 void setESSPercentage(double essPercentage)
          Set percentage of number of samples used to determine if resampling is required, i.e. if it is below the current effective sample size (ESS).
 void update(AbstractMultiState<T> observation, DataAssociation association)
          The DataAssociation object may be null and is interpreted as groundtruth if given.
 
Methods inherited from class de.unihalle.informatik.MiToBo.math.distributions.impl.ParticleDistribution
computeESS, drawSample, equalWeights, getNumOfParticles, getParticle, getParticles, getWeight, getWeights, normalizeWeights, resample, setEqualWeightsFlag, setParticle, setWeight
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

assocDistrib

protected AssociationDistribution<T extends TargetID,T extends TargetID> assocDistrib

esspercentage

protected double esspercentage

ostream

public OutputStream ostream

groundtruthToSampleTargetIDs

protected Vector<HashMap<Integer,Integer>> groundtruthToSampleTargetIDs
Constructor Detail

MultiTargetRBMCDA

public MultiTargetRBMCDA(Random rand,
                         RBMCDASample<T> initialState,
                         int numParticles,
                         AssociationDistribution<T,T> assocDistrib)

MultiTargetRBMCDA

public MultiTargetRBMCDA(Random rand,
                         RBMCDASample<T>[] initialStateParticles,
                         AssociationDistribution<T,T> assocDistrib)
Method Detail

getMean

public AbstractMultiState<T> getMean()
Specified by:
getMean in interface FirstOrderMoment<AbstractMultiState<T extends TargetID>>

copy

public MultiTargetPredictionFilter<AbstractMultiState<T>> copy()
Not implemented, always returns null

Specified by:
copy in interface Copyable<MultiTargetPredictionFilter<AbstractMultiState<T extends TargetID>>>

predict

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

Specified by:
predict in interface MultiTargetPredictionFilter<AbstractMultiState<T extends TargetID>>

update

public void update(AbstractMultiState<T> observation,
                   DataAssociation association)
The DataAssociation object may be null and is interpreted as groundtruth if given.

Specified by:
update in interface MultiTargetPredictionFilter<AbstractMultiState<T extends TargetID>>

getESSPercentage

public double getESSPercentage()
If this percentage of number of samples is below the current effective sample size (ESS), the samples are resampled. Default is 0.5.

Returns:
percentage of the number of samples

setESSPercentage

public void setESSPercentage(double essPercentage)
Set percentage of number of samples used to determine if resampling is required, i.e. if it is below the current effective sample size (ESS). Default is 0.5.

Parameters:
essPercentage - percentage in range [0,1] of the number of samples. 0=no resampling ... 1=resamping in every time step.


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