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

java.lang.Object
  extended by de.unihalle.informatik.Alida.operator.ALDOperator
      extended by de.unihalle.informatik.MiToBo.tracking.multitarget.algo.MultiObservationGenerator
All Implemented Interfaces:
de.unihalle.informatik.Alida.datatypes.ALDConfigurationValidator

@ALDAOperator(genericExecutionMode=NONE,
              level=STANDARD)
public class MultiObservationGenerator
extends de.unihalle.informatik.Alida.operator.ALDOperator

Operator to create a (time) series of observations which can be used for evaluation of multi target tracking algorithms.

Author:
Oliver Gress

Nested Class Summary
 class MultiObservationGenerator.GeneratorInfo
           
 
Nested classes/interfaces inherited from class de.unihalle.informatik.Alida.operator.ALDOperator
de.unihalle.informatik.Alida.operator.ALDOperator.HidingMode
 
Field Summary
 double delta_t
           
 MultiObservationGenerator.GeneratorInfo genInfo
           
 double lambdaBirth
           
 double lambdaClutter
           
 double lambdaDeath
           
 int maxTargetID
           
 Jama.Matrix modelTransition
           
 short nInitialTargets
           
 int nTimesteps
           
protected  java.util.Vector<MultiState<MotionModelID>> observations
           
protected  ExponentialDistribution Pdeath
           
 double pDetect
           
 double qsize
           
 double qxy
           
 double qxy_
           
protected  java.util.Random rand
           
 long randomSeed
           
 double rsize
           
 double rxy
           
 double sqrtSizeMax
           
 double sqrtSizeMin
           
 double xMax
           
 double xMin
           
 double yMax
           
 double yMin
           
 
Fields inherited from class de.unihalle.informatik.Alida.operator.ALDOperator
completeDAG, name, portHashAccess, verbose, versionProvider
 
Constructor Summary
MultiObservationGenerator()
           
 
Method Summary
protected  LinearTransformGaussNoise[] createDynamicModels()
           
protected  MultiState<MotionModelID> createInitialStates()
           
protected  LinearTransformGaussNoise createObservationModel()
           
protected  MultiState<MotionModelID> generateNextStates(MultiState<MotionModelID> X, LinearTransformGaussNoise[] dynamicModels)
           
protected  MultiState<MotionModelID> generateObservations(MultiState<MotionModelID> states, LinearTransformGaussNoise obsModel, MultiStateFactory<MotionModelID> obsFactory)
           
 java.util.Vector<MultiState<MotionModelID>> getObservations()
           
protected  boolean obsConflict(Jama.Matrix z, MultiState<MotionModelID> Z)
           
protected  void operate()
           
protected  boolean stateConflict(Jama.Matrix x, MultiState<MotionModelID> X)
           
 
Methods inherited from class de.unihalle.informatik.Alida.operator.ALDOperator
deserializeFromXmlFile, fieldContained, getALDPortHashAccessKey, getConstructionMode, getInInoutNames, getInInoutNames, getInNames, getInOutNames, getMissingRequiredInputs, getName, getNumParameters, getOutInoutNames, getOutNames, getParameter, getParameterDescriptor, getParameterNames, getSupplementalNames, getVerbose, getVersion, isConfigured, parametersToXmlObject, print, print, print, printInterface, printInterface, readHistory, readResolve, reinitializeParameterDescriptors, runOp, runOp, runOp, serializeToXmlFile, setConstructionMode, setName, setParameter, setParametersFromXml, setParametersFromXml, setVerbose, toStringVerbose, unconfiguredItems, validate, validateCustom, validateGeneric, writeHistory, writeHistory, writeHistory, writeParametersToXml
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

delta_t

@Parameter(label="delta_t",
           required=false,
           direction=IN,
           description="time interval between two frames")
public double delta_t

genInfo

@Parameter(label="genInfo",
           required=false,
           direction=OUT,
           description="Information about the generated observations")
public MultiObservationGenerator.GeneratorInfo genInfo

lambdaBirth

@Parameter(label="lambdaBirth",
           required=true,
           direction=IN,
           description="Mean/variance of the Poisson distribution of the number of newborn targets")
public double lambdaBirth

lambdaClutter

@Parameter(label="lambdaClutter",
           required=true,
           direction=IN,
           description="Mean/variance of the Poisson distribution of the number of clutter observations")
public double lambdaClutter

lambdaDeath

@Parameter(label="lambdaDeath",
           required=true,
           direction=IN,
           description="Parameter of the exponential distribution of the survival of nonassociated targets")
public double lambdaDeath

maxTargetID

public int maxTargetID

modelTransition

@Parameter(label="modelTransition",
           required=true,
           direction=IN,
           description="A 2x2 markov matrix with probabilities of changing the dynamic models from time t-1 to t")
public Jama.Matrix modelTransition

nInitialTargets

@Parameter(label="nInitialTargets",
           required=true,
           direction=IN,
           description="Number of initial targets")
public short nInitialTargets

nTimesteps

@Parameter(label="nTimesteps",
           required=true,
           direction=IN,
           description="Number of time steps (frames)")
public int nTimesteps

observations

@Parameter(label="observations",
           required=false,
           direction=OUT,
           description="Generated observations")
protected java.util.Vector<MultiState<MotionModelID>> observations

Pdeath

protected ExponentialDistribution Pdeath

pDetect

@Parameter(label="pDetect",
           required=true,
           direction=IN,
           description="Probability of detecting a target")
public double pDetect

qsize

@Parameter(label="qsize",
           required=true,
           direction=IN,
           description="Variance of sqrt(size) in the process noise covariance matrix")
public double qsize

qxy

@Parameter(label="qxy",
           required=true,
           direction=IN,
           description="Variance of the current x-/y-position in the process noise covariance matrix")
public double qxy

qxy_

@Parameter(label="qxy_",
           required=true,
           direction=IN,
           description="Variance of the last x-/y-position in the process noise covariance matrix")
public double qxy_

rand

protected java.util.Random rand

randomSeed

@Parameter(label="randomSeed",
           required=true,
           direction=IN,
           description="A seed for the random number generator")
public long randomSeed

rsize

@Parameter(label="rsize",
           required=true,
           direction=IN,
           description="Variance of sqrt(size) in the measurement noise covariance matrix")
public double rsize

rxy

@Parameter(label="rxy",
           required=true,
           direction=IN,
           description="Variance of the current x-/y-position in the measurement noise covariance matrix")
public double rxy

sqrtSizeMax

@Parameter(label="maxSqrtSize",
           required=true,
           direction=IN,
           description="Maximum sqrt(size) for newborn observations")
public double sqrtSizeMax

sqrtSizeMin

@Parameter(label="minSqrtSize",
           required=true,
           direction=IN,
           description="Minimum radius for newborn observations")
public double sqrtSizeMin

xMax

@Parameter(label="xMax",
           required=true,
           direction=IN,
           description="x-max of the rectangular region where the observations reside in (e.g. for image creation)")
public double xMax

xMin

@Parameter(label="xMin",
           required=true,
           direction=IN,
           description="x-min of the rectangular region where the observations reside in (e.g. for image creation)")
public double xMin

yMax

@Parameter(label="yMax",
           required=true,
           direction=IN,
           description="y-max of the rectangular region where the observations reside in (e.g. for image creation)")
public double yMax

yMin

@Parameter(label="yMin",
           required=true,
           direction=IN,
           description="y-min of the rectangular region where the observations reside in (e.g. for image creation)")
public double yMin
Constructor Detail

MultiObservationGenerator

public MultiObservationGenerator()
                          throws de.unihalle.informatik.Alida.exceptions.ALDOperatorException
Throws:
de.unihalle.informatik.Alida.exceptions.ALDOperatorException
Method Detail

createDynamicModels

protected LinearTransformGaussNoise[] createDynamicModels()

createInitialStates

protected MultiState<MotionModelID> createInitialStates()

createObservationModel

protected LinearTransformGaussNoise createObservationModel()

generateNextStates

protected MultiState<MotionModelID> generateNextStates(MultiState<MotionModelID> X,
                                                       LinearTransformGaussNoise[] dynamicModels)

generateObservations

protected MultiState<MotionModelID> generateObservations(MultiState<MotionModelID> states,
                                                         LinearTransformGaussNoise obsModel,
                                                         MultiStateFactory<MotionModelID> obsFactory)

getObservations

public java.util.Vector<MultiState<MotionModelID>> getObservations()

obsConflict

protected boolean obsConflict(Jama.Matrix z,
                              MultiState<MotionModelID> Z)

operate

protected void operate()
                throws de.unihalle.informatik.Alida.exceptions.ALDOperatorException,
                       de.unihalle.informatik.Alida.exceptions.ALDProcessingDAGException
Specified by:
operate in class de.unihalle.informatik.Alida.operator.ALDOperator
Throws:
de.unihalle.informatik.Alida.exceptions.ALDOperatorException
de.unihalle.informatik.Alida.exceptions.ALDProcessingDAGException

stateConflict

protected boolean stateConflict(Jama.Matrix x,
                                MultiState<MotionModelID> X)