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.
Info |
---|
The configuration file is entitled StatisticalClassificationConfiguration.xml and can be found in the Plugin sub-folder within the main Witness Suite program files directory. |
Info |
---|
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
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
<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.
Info |
---|
Be aware that not all provisional sightings are reported to the classification engine even when you opt to use them. For example the first provisional sighting is never reported and the last provisional sighting is typically converted to a real sighting assuming the ATI process is successful. For example if you have an M of N of 3 / 4, you might expect to see 3x provisional tracks but in fact you will only see 1x. The first is never reported and the third is converted to an established track because the criteria of 3/4 has been met. In practise this means that the classification engine will use 1 provisional + 7 established tracks before it provides a result. So the operator would see 7 sightings on the UI before the track is classified. However if using an M of N of 5 / 6, then the classification system will use 3x provisional tracks + 5x established tracks. |
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).
Note |
---|
Be careful when increasing either sample period or the minimum probability required because this could significantly delay the classification result. This may also have a knock-on effect for other parts of the system. For example, your rules. If you rely on classification in your rule configuration then you need to consider how to handle tracks which may be unclassified for a number of sightings. Note that there is an option in the rule configuration to handle unclassified tracks but this is not enabled by default. |
Model Settings
The extract below is the default model used for a vehicle.
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
<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
- AirplaneAeroplane
- 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 flag has been deprecated and will be removed in future versions of the classification of the system. Do not 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:
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
<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).
Info |
---|
When using the Truncated Mean method you must also set the Truncated Percent value to indicate how many values at the top and bottom of the sample data you wish to ignore. |
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.
Info |
---|
When a value is described as "Adjusted" it means we are adjusting the value based on range. This helps keep the values more consistent over range. The classification engine will only use adjusted values for strength and weight. |
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.
Note |
---|
We do not recommend adjusting the category weights unless you have a specific reason and we would recommend thorough testing if you do. It's worth noting that speed remains one of our best discriminators for classification and therefore should remain highly weighted. |
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:
Code Block language xml theme RDark title Selecting a Model to Delete <Model yaxlib:realtype="Witness.Tracker.Statistical.Classification.Classifications.ConfigModel"> <ReclassificationSamples>0</ReclassificationSamples> <ModelType>Vehicle</ModelType> <AllowProvisionalTracks>True</AllowProvisionalTracks> <AllowCoastedTracks>False</AllowCoastedTracks> <ProvisionalTracksToSkip>0</ProvisionalTracksToSkip> <IncludedChannels /> <ExcludedChannels> <Int32>32768</Int32> </ExcludedChannels> ... </Categories> </Model>
- 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.
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
<Category yaxlib:realtype="Witness.Tracker.Statistical.Classification.Classifications.ConfigCategory">
<Category>ResetTrigger</Category>
<Attributes>
<Attribute yaxlib:realtype="Witness.Tracker.Statistical.Classification.Classifications.ConfigAttribute">
<Type>Speed</Type>
<Max>3.6</Max>
</Attribute>
</Attributes>
</Category> |
Related information
Filter by label (Content by label) | ||||
---|---|---|---|---|
|
...