Classification Configuration
The Witness software will attempt to reliably classify all targets based on all the attributes available from the radar sensor. It does this using a weighted scoring system based on a series of pre-defined models. Each model provides a series of value ranges and prioritises the values which are more relevant to that classification type. When a target under analysis conforms to the specified values a weighted scoring is added for the matching model or models. Once the agreed number of classification samples have been processed then the model which has achieved the highest score is selected. A probability is assigned to each classification based on the score where 100% is a classification with the highest confidence.
Since V3.12 the classification has been improved to work with aggregated values, which means we can sample the data, apply a suitable statistical summary (i.e. min, max, average etc) and then use these values to test each model. This has proved to be a more reliable way of distinguishing between targets which are exhibiting similar behaviour to another classification type (i.e. a vehicle vs a person when the vehicle is moving at walking pace).
The information in this section will be based on the newer statistical approach implemented in V.312 and later.
On this page:
Target Assessment
Each target (or track) is assessed based on properties provided by the radar and tracking software. These are as follows:
Ser | Property | Description | Default Assessment |
---|---|---|---|
1 | Size | The surface area of the target calculated using size in range x size in azimuth. | Does the (truncated) average size of the track across all sightings fall within the range of the model? |
2 | Speed | The speed of the track. | Does the maximum speed seen across all sightings fall within the range of the model? |
3 | Expected Speed | The typical speed expected of a track. This would normally be a smaller subset of the overall speed range. For example a car can move as slowly as a walking person, however its expected speed would normally be much quicker. | Does the (truncated) average speed of the track across all sightings fall within the expected speed range of the model? |
4 | Acceleration | This is the change in speed between track sightings. | Does the maximum acceleration across all sightings fall within the range of the model? |
5 | Weight | The total number of cells that make up the target. | Does the (truncated) average number of cells across all sightings fall within the range of the model? |
6 | Strength | Sum of the signal strength for each cell which makes up the target. Note this value is only truly effective if using "Input" or "Level Above" for the thresholding process. | Does the (truncated) average signal strength across all samples fall within the range of the model? |
7 | Seen Moving | This is the maximum speed that a track can travel before it is considered to be moving. This is used a base threshold to help distinguish between stationary debris and moving targets. | Does the average speed seen across all sightings exceed the value in the model? |
8 | Direction Change | The absolute change in direction from one sighting to the next. | Does the average change in direction across all sightings fall within the range of the model? |
Categories
Each track property is group into a category. This is so each category can be weighted on a model by model to ensure the scoring system is biased towards the key attributes for a specific classification.
The categories are as follows:
Ser | Category | Default Properties |
---|---|---|
1 | Speed and Acceleration | Speed, Expected Speed and Acceleration |
2 | Weight and Strength | Weight and Strength |
3 | Behaviour | Seen Moving and Direction Change |
4 | Size | Size |
Category and Property Weighting
Each category and property is given a weighting. This can vary from model to model. These weightings will directly affect the model scoring. For example, if a target property matches a critical attribute then the score will be 5, whereas a matching optional property would only get a single point.
Ser | Category | Score Weighting |
---|---|---|
1 | Critical | x5 |
2 | Desirable | x3 |
3 | Optional | x1 |
Configuration File
The configuration is stored an XML file. Once familiar with the format, the file can be read and changed as required.
The configuration file is entitled StatisticalClassificationConfiguration.xml and can be found in the Plugin sub-folder within the main Witness Suite program files directory.
Please note that whenever you edit the Classification Configuration you must save the file and restart all the tracker services. Remember if you have more than one physical server running trackers then you must copy the modified configuration file to all the servers and restart the tracker services.
The file has 2 main sections, some global settings at the top of the file and then a list of models. Each model has its own settings and scoring model, which are covered below.
Global Settings
Global Settings
<ClassificationConfigurations xmlns:yaxlib="http://www.sinairv.com/yaxlib/">
<Samples>8</Samples>
<MinProbabilityRequired>60</MinProbabilityRequired>
<ExtraSampleIncrement>4</ExtraSampleIncrement>
...
</ClassificationConfigurations>
Samples
This is the total number of samples that will be used to analyse the track. This value includes provisional tracks although the option to include provisional tracks is done on a model by model basis. By default all models use provisional sightings. See the model settings below. The default value is 8.
In most cases, increasing the number of samples will increase the confidence of the classification assessment, however the downside is that the classification will take longer.
MinProbabilityRequired
This is the minimum level of confidence required before you consider the track to have been successfully classified. If this confidence level is not met then you can specify that the system continues for a further n sightings. The value of n is supplied by the next parameter, ExtraSampleIncrement. The level of confidence is 60%.
ExtraSampleIncrement
This value is used in conjunction with MinProbabilityRequired. If the probability level is not met then the system will continue to classify for a limited number of additional sightings. This number is specified by the ExtraSampleIncrement value. If at the end of this additional sample period the classification has a confidence level higher than MinProbabilityRequired then the track will be successfully classified. However, if it falls below this threshold then the track will remain unclassified for as long as its tracked. The default extra samples value is 4, giving a potential sample period of 12 (8 + 4).
Model Settings
The extract below is the default model used for a vehicle.
Vehicle Model
<Model yaxlib:realtype="Witness.Tracker.Statistical.Classification.Classifications.ConfigModel">
<ReclassificationSamples>0</ReclassificationSamples>
<ModelType>Vehicle</ModelType>
<AllowProvisionalTracks>True</AllowProvisionalTracks>
<AllowCoastedTracks>False</AllowCoastedTracks>
<ProvisionalTracksToSkip>2</ProvisionalTracksToSkip>
<IncludedChannels />
<ExcludedChannels>
<Int32>32768</Int32>
</ExcludedChannels>
<Categories>
<Category yaxlib:realtype="Witness.Tracker.Statistical.Classification.Classifications.ConfigCategory">
<Category>Size</Category>
<Weight>Critical</Weight>
<Attributes>
<Attribute yaxlib:realtype="Witness.Tracker.Statistical.Classification.Classifications.ConfigAttribute">
<Type>Size</Type>
<Weight>Critical</Weight>
<SummaryMethod>TruncatedMean</SummaryMethod>
<TruncationPercent>25</TruncationPercent>
<Min>60</Min>
<Max />
</Attribute>
</Attributes>
</Category>
<Category yaxlib:realtype="Witness.Tracker.Statistical.Classification.Classifications.ConfigCategory">
<Category>SpeedAndAcceleration</Category>
<Weight>Critical</Weight>
<Attributes>
<Attribute yaxlib:realtype="Witness.Tracker.Statistical.Classification.Classifications.ConfigAttribute">
<Type>Speed</Type>
<Weight>Critical</Weight>
<SummaryMethod>Max</SummaryMethod>
<TruncationPercent>25</TruncationPercent>
<Min>4</Min>
<Max>55</Max>
</Attribute>
<Attribute yaxlib:realtype="Witness.Tracker.Statistical.Classification.Classifications.ConfigAttribute">
<Type>ExpectedSpeed</Type>
<Weight>Critical</Weight>
<SummaryMethod>TruncatedMean</SummaryMethod>
<TruncationPercent>25</TruncationPercent>
<Min>4</Min>
<Max>40</Max>
</Attribute>
<Attribute yaxlib:realtype="Witness.Tracker.Statistical.Classification.Classifications.ConfigAttribute">
<Type>Acceleration</Type>
<Weight>Desirable</Weight>
<SummaryMethod>Max</SummaryMethod>
<TruncationPercent>25</TruncationPercent>
<Min>0</Min>
<Max>4</Max>
</Attribute>
</Attributes>
</Category>
<Category yaxlib:realtype="Witness.Tracker.Statistical.Classification.Classifications.ConfigCategory">
<Category>WeightAndStrength</Category>
<Weight>Critical</Weight>
<Attributes>
<Attribute yaxlib:realtype="Witness.Tracker.Statistical.Classification.Classifications.ConfigAttribute">
<Type>Weight</Type>
<Weight>Critical</Weight>
<SummaryMethod>Mean</SummaryMethod>
<TruncationPercent>25</TruncationPercent>
<Min>150</Min>
<Max>199</Max>
</Attribute>
<Attribute yaxlib:realtype="Witness.Tracker.Statistical.Classification.Classifications.ConfigAttribute">
<Type>Strength</Type>
<Weight>Critical</Weight>
<SummaryMethod>Mean</SummaryMethod>
<TruncationPercent>25</TruncationPercent>
<Min>220</Min>
<Max>449</Max>
</Attribute>
</Attributes>
</Category>
<Category yaxlib:realtype="Witness.Tracker.Statistical.Classification.Classifications.ConfigCategory">
<Category>Behaviour</Category>
<Weight>Critical</Weight>
<Attributes>
<Attribute yaxlib:realtype="Witness.Tracker.Statistical.Classification.Classifications.ConfigAttribute">
<Type>SeenMoving</Type>
<Weight>Critical</Weight>
<SummaryMethod>Mean</SummaryMethod>
<TruncationPercent>25</TruncationPercent>
<Min>1.4</Min>
<Max />
</Attribute>
<Attribute yaxlib:realtype="Witness.Tracker.Statistical.Classification.Classifications.ConfigAttribute">
<Type>DirectionChange</Type>
<Weight>Optional</Weight>
<SummaryMethod>Mean</SummaryMethod>
<TruncationPercent>25</TruncationPercent>
<Min>0</Min>
<Max>8</Max>
</Attribute>
</Attributes>
</Category>
</Categories>
</Model>
ReclassificationSamples
This sets how many samples will be used if a re-classification is triggered. See the re-classification configuration section.
ModelType
The type of classification. This can be one of the following:
Vehicle
Person
Aeroplane
Boat
Debris
Unclassified
By default the configuration includes models for people, vehicles, debris and airplanes.
AllowProvisionalTracks
A flag which controls whether provisional tracks should be included in the samples for this model. The default is True. We would always recommend using provisional tracks unless there is a specific reason.
AllowCoastedTracks
A flag which controls whether coasted tracks are included in the classification assessment. The default is False. Due to the unreliable data associated with a coasted track, we do not recommend using coasted tracks with classification.
ProvisionalTracksToSkip
This values specifies how many provisional tracks should be skipped before starting the classification process. We do not recommend you change this value.
IncludedChannels
This lists the channels that will use this model. It is a list of channel Ids. If left blank, then the model will be used across all channels. The channel Id 32768 is reserved for the debris channel which is why this is excluded for all models except debris. The debris channel specifically includes this channel Id.
ExcludedChannels
This lists the channels that will not use this model. When left blank, no channels will be excluded.
Categories
This lists all the attributes, grouped by category, and their values. There are a number of ways to configure these values, see the next section.
Tuning a Model
Each model can be fine-tuned by adjusting the attributes. There are a number of options for each attribute which we will outline here. The key concept is to analyse tracks in Witness and review the typical values associated with each type (i.e. person vs vehicle) and then adjust the attributes in the classification configuration to match.
Understanding a Model Attribute
Taking the size attribute as an example:
Size Attribute
<Category yaxlib:realtype="Witness.Tracker.Statistical.Classification.Classifications.ConfigCategory">
<Category>Size</Category>
<Weight>Critical</Weight>
<Attributes>
<Attribute yaxlib:realtype="Witness.Tracker.Statistical.Classification.Classifications.ConfigAttribute">
<Type>Size</Type>
<Weight>Critical</Weight>
<SummaryMethod>TruncatedMean</SummaryMethod>
<TruncationPercent>25</TruncationPercent>
<Min>60</Min>
<Max />
</Attribute>
</Attributes>
</Category>
The size attribute is the only property within the Size category. The attribute has the following settings:
Type
This is the property to be analysed. The properties available for analysis were covered in Target Assessment.
Weight
This is the weighting used to score this attribute if the track data falls within the range specified for this property within the model. Weighting options were covered in Category and Property Weighting.
SummaryMethod
This specifies the method for summarising the recorded samples. All track sightings are processed, up to the sample count, and then each of the properties is summarised using this specified method before being The options:
Min
This method means the lowest value seen on the track during the sampling period will be used to compare against the model.
Max
This methods means the highest value seen on the track during the sampling period will be used to compare against the model.
Mean
This methods means the average of all values seen on the track during the sampling period will be used to compare against the model.
Truncated Mean
This methods means the average of all values, less the outliers, seen on the track during the sampling period will be used to compare against the model. The truncated mean will sort the sample data and then remove a percentage of the values from the top and bottom of the sorted list. So the amount of samples ignored at the top and the bottom is % / 2. For example if you had sample data that looked like this 3,7,21,34,36,37,55,89 (8 samples) and the truncated percent was 25% then we would lose 2 of our 8 values (25%) but 1 from the top and 1 from the bottom. So the final value would be the average of the 6 remaining values (i.e. 7,21,34,36,37,55 - average is 190/6 = 31.7).
TruncatedPercent
When using the Truncated Mean summary method, this value specifies how many outliers to ignore at the top and bottom of the sample data. See Truncated Mean for a full explanation.
Min
This is the minimum value that the model is looking for from the summary sample data. If the summary data from the analysed track is greater than or equal to this value then it will have met the minimum criteria. Where there is no maximum value provided, see below, then this is the only criteria that needs to be met. If it is satisfied then the track is awarded the appropriate weighted points for this classification model, increasing the likelihood that the track is a match.
Max
This is the maximum value that the value is looking for from the summary sample data. If the summary data from the analysed track is less than or equal to this value then it will have met the maximum criteria. Note that this value is optional. If omitted then the model will assume any value above the minimum (see above) is a match. If a minimum and maximum are specified then both criteria must be met for the track to match this attribute of the model.
How to Set your Model Values
The easiest way to check and tune your model setting is to setup the Witness system and record some track data. The requirements are:
The database system (Witness Vault) must be installed as part of Witness.
You must set the database track recording option to Save All.
Ensure you track targets of different types (i.e. vehicles and people) and ideally over different ranges. This because the signature of a track does change over range.
Ensure you record as many different types of targets as possible. This will improve the quality of the data available to you.
Once you have recorded a suitable set of data, you can follow this simple procedure:
Perform a database search to find the track you recorded, or use a quick report.
Select the track history path from the UI.
Analyse the track statistics in the Side Panel:
You will find key track summary data averages in Area 1, including:
The maximum direction change.
Average adjusted signal strength.
Average adjusted weight.
Average adjusted size.
Area 2 shows the data for each track sighting. This includes both adjusted and non-adjusted values.
Analyse this data across several tracks of the same type (i.e. people) and look for min and max values.
Using this data you can then update the values in the Classification configuration file as required.
In the example above you can see the details clearly indicate this track was a person.
The speed is low, typically ~3m/s.
The size is small, on average 2.58m2.
Adjusted weight and strength are both relatively low.
Removing a Model
There is no built-in logic to disable a model, instead it must be removed from the configuration file. Removing a model is straightforward:
Make a copy of the classification configuration file so you have a backup.
Edit the classification file in a suitable text editor, preferably one that supports XML syntax (i.e. Notepad++)
Select the entire model you wish to remove, from opening XML element to the closing tag, as illustrated below:
Selecting a Model to Delete
Delete the model and save the file.
Restart the tracker service.
Using a Reclassification Trigger
In order to reclassify a track you must use a trigger which when its conditions are met will force the existing classification to be reset. This will result in the classification process starting again for this track. For example if a small, slow moving vehicle is incorrectly classified as a person you might want to force reclassification if the vehicle accelerates above normal walking speed. Clearly in this situation the track can't any longer be considered to be a person and reclassification should hopefully force it to change to a vehicle.
Adding a Reset Trigger
Related information
-
ClearWay™ Track Queries (Witness 4.0)
-
Classification Configs (Witness 4.0)
-
AdvanceGuard® Track Queries (Witness 4.0)
-
Camera Details (Witness 4.0)
-
ICD-001 Classification Report (Witness 4.0)
-
Classification Configuration (Witness 3.0)
-
ATI (Witness 4.0)
-
IFF AIS Plugin (Witness 4.0)
-
Traffic Analysis Plugin (Witness 4.0)