Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


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).

Info

The information in this section will be based on the newer statistical approach implemented in V.312 and later. 



Panel
borderColorsilver
borderWidth1

On this page:

Table of Contents
maxLevel3
indent10px

Target Assessment


Each target (or track) is assessed based on properties provided by the radar and tracking software. These are as follows:

SerPropertyDescriptionDefault Assessment
1SizeThe 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?
2SpeedThe speed of the track.Does the maximum speed seen across all sightings fall within the range of the model?
3Expected SpeedThe 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?
4AccelerationThis is the change in speed between track sightings.Does the maximum acceleration across all sightings fall within the range of the model?
5WeightThe 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?
6StrengthSum 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?
7Seen MovingThis 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?
8Direction ChangeThe 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:

SerCategoryDefault Properties
1Speed and AccelerationSpeed, Expected Speed and Acceleration
2Weight and StrengthWeight and Strength
3BehaviourSeen Moving and Direction Change
4SizeSize

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.

SerCategoryScore Weighting
1Criticalx5
2Desirablex3
3Optionalx1

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
languagexml
themeRDark
titleGlobal 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.

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
languagexml
themeRDark
titleVehicle Model
collapsetrue
<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 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
languagexml
themeRDark
titleSize 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).

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:

  1. Perform a database search to find the track you recorded, or use a quick report.
  2. Select the track history path from the UI.



  3. Analyse the track statistics in the Side Panel:



  4. You will find key track summary data averages in Area 1, including:
    1. The maximum direction change.
    2. Average adjusted signal strength.
    3. Average adjusted weight.
    4. Average adjusted size.
  5. Area 2 shows the data for each track sighting. This includes both adjusted and non-adjusted values.
  6. Analyse this data across several tracks of the same type (i.e. people) and look for min and max values.
  7. 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:

  1. Make a copy of the classification configuration file so you have a backup.
  2. Edit the classification file in a suitable text editor, preferably one that supports XML syntax (i.e. Notepad++)

  3. Select the entire model you wish to remove, from opening XML element to the closing tag, as illustrated below:

    Code Block
    languagexml
    themeRDark
    titleSelecting 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>


  4. Delete the model and save the file.
  5. 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
languagexml
themeRDark
titleAdding a Reset Trigger
<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)
showLabelsfalse
cqllabel = "classification"

...