Introduction to Event Stream Processing
Event Stream Processing (ESP) applies rules to the output of other tasks, including other ESP tasks.
One use of ESP is to identify interesting events from a large number of records. A simple example is detecting the occurrence of a particular word in an audio stream. A more complex example is detecting when a combination or sequence of events occurs within a specific time interval; for example, a number plate is detected shortly after a traffic light changes to red.
The tracks passed to ESP engines are not modified. An ESP task produces a new output track that contains records which meet the specified conditions.
ESP engine | Description | Example |
---|---|---|
Filter | Filters a track, and produces an output track that contains only records that meet specified conditions. | Filter speech-to-text results for a news channel to produce an output track that only contains records for the word "weather". |
Deduplicate | Identifies duplicate records in a track, and produces an output track without the duplicates. | Face recognition produces a result each time a person is recognized. Deduplication can filter the output to remove any records produced when the same person is recognized again within a certain number of seconds. |
Or | Combines two or more tracks into a single output track. The output track contains all of the records from all of the input tracks. | Combine tracks from OCR, speech-to-text, and face recognition to produce an output track that contains information about text, speech, and faces in a video. |
And / AndThen |
Compares two or more tracks to identify combinations of events. The events must occur within specific time intervals of each other. The records in the output track contain a group of related records. A record can appear in the output track more than once if it becomes part of multiple combinations. The |
Identify when the text "election results" appears on-screen and a news presenter speaks the name of a politician up to ten seconds after the text appears. |
AndNot | Compares a track (Input0 ) with one or more other tracks. The output contains every record from the Input0 track which is not preceded or followed, within a specified time interval, by an event in any of the other tracks. |
Produce a track containing records for all appearances of a logo that are not accompanied by the company name in the ten seconds preceding or following the logo's appearance. |
AndNotThen | Compares a track (Input0 ) with one or more other tracks. The output contains every record from the Input0 track which is not followed, within a specified time interval, by an event in any of the other tracks. |
Produce a track containing records for all appearances of a logo that are not followed within ten seconds by the company name. |
AndAny | Compares a track (Input0 ) with one or more other tracks. The output contains every record from the Input0 track which is preceded or followed, within a specified time interval, by at least one event in any of the other tracks. |
|
AndThenAny | Compares a track (Input0 ) with one or more other tracks. The output contains every record from the Input0 track which is followed, within a specified time interval, by at least one event in any of the other tracks. |
|
Combine |
Combines records from two or more tracks. This is similar to the And ESP task, except:
|
Combine information about detected faces that appear at the same time so that all of the faces can be blurred by a transformation task. |
CombineWithLast | Combines a record in one track with the most recent record from another track. | Combine a record with the most recent state of traffic lights (determined by the TrafficLight engine), so that you can detect vehicles failing to stop for a red light. |
The ESP engines support configuration parameters that allow you to customize the operations for your data. Some engines also allow you to run scripts written in the Lua scripting language. For more information about Lua scripts, see Write a Lua Script for an ESP Engine.