Raw data output is designed for real-time triggering while aggregated data output is designed for reporting. The table on the left shows an example of what the raw output looks like. As you can see, there are multiple rows for ID 1. This is because the Toolkit analyzes and outputs every frame. However this type of output cannot be used for reporting which is why we also offer the aggregated output. The table on the right shows an example of aggregated data for the same analysis. As you can see, there is only one row for ID 1:

In order to accurately calculate the aggregated data for each ID, the Toolkit applies a few thresholds which help filter the results with the highest confidence.
The thresholds are:
Minimum detection time - more than 1 second Face size - more than 20 pixels Headpose - between +30 and -30 degrees of headpose for demographics
If you get unknown readings, we suggest to filter out these results (see below) and only use results with high confidence or re-position your camera to capture faces from a more frontal angle. All estimations outside the filter ranges will result in ‘unknown’ output values.
Once a new person is detected (ID 1) the raw data for each frame is aggregated in memory until the person leaves the frame. The aggregation frequency does not affect this in any way as the aggregated CSV row will only be written once the person leaves the frame for a minimum of 5 seconds.
The only exception occurs when DeepSight Toolkit is stopped or closed. This will write any available aggregated data from memory to the aggregated CSV (will also be included in the HTTP output - push and pull).
Since the aggregated output relies on the person to leave the frame, we do not suggest using it for real-time triggers. Instead we recommend using the raw data or current stats output for this. The aggregated output is designed for reporting purposes (e.g. pushing aggregated data to a Cloud dashboard).