Package edu.gsu.cs.dmlab.tracking.stages
Class BaseEdgeWeightCalculator
- java.lang.Object
-
- edu.gsu.cs.dmlab.tracking.stages.BaseEdgeWeightCalculator
-
- All Implemented Interfaces:
ISTEdgeWeightCalculator
- Direct Known Subclasses:
EdgeWeightCalculatorStageThree
,EdgeWeightCalculatorStageTwo
public abstract class BaseEdgeWeightCalculator extends Object implements ISTEdgeWeightCalculator
Base abstract class used for calculating edge weights on a DAG used for the data association problem. Since different stages of Kempton et. al 2015 and 2018 use different components for edge weight calculation, the getEdgeProb method must be implemented in classes derived from this one.- Author:
- Dustin Kempton, Data Mining Lab, Georgia State University
-
-
Constructor Summary
Constructors Constructor Description BaseEdgeWeightCalculator(ISTLocationProbCal enterLocProbCalc, ISTLocationProbCal exitLocProbCalc, ISTObsModel obsModel)
Constructor that uses the default values for entExitMult, obsMult, and assocMult.BaseEdgeWeightCalculator(ISTLocationProbCal enterLocProbCalc, ISTLocationProbCal exitLocProbCalc, ISTObsModel obsModel, double entExitMult, double obsMult, double assocMult)
Constructor
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description double
associationEdgeWeight(ISTTrackingTrajectory leftTrack, ISTTrackingTrajectory rightTrack)
Returns the weight for an edge that goes between the second vertex of the first track to the first vertex of the second track.void
finalize()
protected abstract double
getEdgeProb(ISTTrackingTrajectory leftTrack, ISTTrackingTrajectory rightTrack)
double
observationEdgeWeight(ISTTrackingEvent event)
Returns the weight for an edge that goes between the two vertices that represent the passed in event.double
sinkEdgeWeight(ISTTrackingEvent event)
Returns the weight for an edge from the vertex representing the passed in event to the sink.double
sourceEdgeWeight(ISTTrackingEvent event)
Returns the weight for an edge from the source to the vertex representing the passed in event.
-
-
-
Constructor Detail
-
BaseEdgeWeightCalculator
public BaseEdgeWeightCalculator(ISTLocationProbCal enterLocProbCalc, ISTLocationProbCal exitLocProbCalc, ISTObsModel obsModel)
Constructor that uses the default values for entExitMult, obsMult, and assocMult.- Parameters:
enterLocProbCalc
- The model used for calculating enter probability on a track.exitLocProbCalc
- The model used for calculating exit probability on a track.obsModel
- The model used for calculating the probability of a track being plausible.
-
BaseEdgeWeightCalculator
public BaseEdgeWeightCalculator(ISTLocationProbCal enterLocProbCalc, ISTLocationProbCal exitLocProbCalc, ISTObsModel obsModel, double entExitMult, double obsMult, double assocMult)
Constructor- Parameters:
enterLocProbCalc
- The model used for calculating enter probability on a track.exitLocProbCalc
- The model used for calculating exit probability on a track.obsModel
- The model used for calculating the probability of a track being plausible.entExitMult
- The multiplier for enter and exit probabilities.obsMult
- The multiplier for the observation edge.assocMult
- The multiplier for the association edge.
-
-
Method Detail
-
finalize
public void finalize() throws Throwable
-
sourceEdgeWeight
public double sourceEdgeWeight(ISTTrackingEvent event)
Description copied from interface:ISTEdgeWeightCalculator
Returns the weight for an edge from the source to the vertex representing the passed in event.- Specified by:
sourceEdgeWeight
in interfaceISTEdgeWeightCalculator
- Parameters:
event
- The event to calculate the edge weight for.- Returns:
- The edge weight for the edge from the source
-
sinkEdgeWeight
public double sinkEdgeWeight(ISTTrackingEvent event)
Description copied from interface:ISTEdgeWeightCalculator
Returns the weight for an edge from the vertex representing the passed in event to the sink.- Specified by:
sinkEdgeWeight
in interfaceISTEdgeWeightCalculator
- Parameters:
event
- The event to calculate the edge weight for.- Returns:
- The edge weight for the edge to the sink
-
observationEdgeWeight
public double observationEdgeWeight(ISTTrackingEvent event)
Description copied from interface:ISTEdgeWeightCalculator
Returns the weight for an edge that goes between the two vertices that represent the passed in event. The weight represents the probability of this event being a true detection as opposed to a false detection.- Specified by:
observationEdgeWeight
in interfaceISTEdgeWeightCalculator
- Parameters:
event
- The event to calculate the edge weight for.- Returns:
- A value representing how likely it is that the given event is a true detection.
-
associationEdgeWeight
public double associationEdgeWeight(ISTTrackingTrajectory leftTrack, ISTTrackingTrajectory rightTrack)
Description copied from interface:ISTEdgeWeightCalculator
Returns the weight for an edge that goes between the second vertex of the first track to the first vertex of the second track. This weight represents how likely it is that these two tracks represent the same object at different times.- Specified by:
associationEdgeWeight
in interfaceISTEdgeWeightCalculator
- Parameters:
leftTrack
- The earlier trackrightTrack
- The later track- Returns:
- A value representing how likely it is that the two tracks represent the same object.
-
getEdgeProb
protected abstract double getEdgeProb(ISTTrackingTrajectory leftTrack, ISTTrackingTrajectory rightTrack)
-
-