Video surveillance system with comprehensive event detection
Methods, systems, and computer programs are presented for detecting events based on video surveillance data and performing automated actions in response to detecting the events. The video surveillance system analyzes video data to detect events. The video is analyzed to detect objects within the video frames, and the objects may include, but are not limited to, people, animals, vehicles, tools, weapons, etc. The system identifies object attributes, such as appearance or movement, which may be used for event search and analysis. The system determines the object locations and calculates relationships between the objects. The triggers for the events are actuated based on the detected objects, such as presence of an object, relationships among the objects, movement of the objects, etc. The actions configured for the events are performed in response to the triggering. The system provides a user interface for defining event parameters, such as camera selection, triggers, and actions.
1 . A computer-implemented method comprising:
causing presentation of a user interface (UI) comprising options to select an event template from a plurality of event templates for creating agents to detect events, each event template being a pre-configured agent for detecting an occurrence of an event, each event template being a pre-configured agent for detecting an occurrence of an event with configurable parameters that determine a trigger for an occurrence of the event and one or more actions to perform when the event is triggered, the agent being a program that determines if the trigger is activated to determine that the event has occurred;
causing presentation on the UI of options, based on the selected event template, for defining the configurable parameters of the selected event template that determine the trigger for the occurrence of the event and the one or more actions, the UI providing options to select a trigger filter from a plurality of filter options comprising zone, person or car, object presence, object absence, objects overlapping, objects spatial relationship, and object count, the UI options further comprising an option to select one or more cameras from a plurality of cameras;
creating the agent based on the selected event template and the selected trigger filter; and
ongoing monitoring, by the agent, video data from one or more cameras to determine an activation of the trigger for the occurrence of the event in a zone based on the trigger filter applied to the video data, the zone being an area that has been delineated by a user within view of the one or more cameras, wherein ongoing monitoring the video data comprises:
detecting objects within one or more frames in the video data;
determining values of the trigger filter based on the detected objects in the one or more frames;
determining that the trigger has been activated based on the values of the trigger filter;
determining the occurrence of the event in response to the trigger being activated; and
performing the one or more actions configured for the selected event template in response to the determining the occurrence of the event.
2 . The method as recited in claim 1 , the configurable parameters of the event comprising camera selection, the trigger or combination of triggers, and the one or more actions.
3 . The method as recited in claim 2 , wherein the configurable parameters of the event further comprise a value for a severity of the event, wherein determining that the trigger has been activated further comprises:
determining that the value of the severity exceeds a predetermined threshold.
4 . The method as recited in claim 2 , wherein the plurality of event templates further comprises crowding, person of interest, fence jumping, forklift near miss, vehicle near miss, tailgating, loitering, and possible fall.
5 . The method as recited in claim 1 , wherein the options for defining the configurable parameters that determine the occurrence of the event comprise people, animals, vehicles, tools, and weapons.
6 . The method as recited in claim 1 , wherein detecting the objects further comprises:
identifying object attributes selected from a group comprising person identity, color, position, vehicle type, and license plate; and
identifying movement of the object based on a plurality of frames.
7 . The method as recited in claim 1 , wherein the trigger comprises two or more conditions comprising a first condition associated with a relationship between locations of a detected person and a detected machine in a warehouse and a second condition associated with the machine moving closer to the person.
8 . The method as recited in claim 7 , wherein the UI provides options for defining the relationship between the locations of two detected objects comprising overlapping, directional relationship of one object with reference to another object, and distance between objects.
9 . The method as recited in claim 1 , further comprising:
identifying features of the detected objects; and
storing the features in a table.
10 . The method as recited in claim 9 , further comprising:
providing a UI for searching events based on the features stored in the table, the UI providing filtering options comprising time, event name, location, camera, and event severity.
11 . The method as recited in claim 1 , wherein each camera is in communication with an intelligent video recorder (IVR) that transmits the video data to a server, wherein the IVR includes a machine-learning (ML) model for detecting the objects.
12 . The method as recited in claim 1 , wherein the trigger comprises a filter based on an external-data condition based on data provided by an external device.
13 . The method as recited in claim 12 , wherein the external device is a badging device controlling access to the zone.
14 . A system comprising:
a memory comprising instructions; and
one or more computer processors, the instructions, when executed by the one or more computer processors, causing the system to perform operations comprising:
causing presentation of a user interface (UI) comprising options to select an event template from a plurality of event templates for creating agents to detect events, each event template being a pre-configured agent for detecting an occurrence of an event, each event template being a pre-configured agent for detecting an occurrence of an event with configurable parameters that determine a trigger for an occurrence of the event and one or more actions to perform when the event is triggered, the agent being a program that determines if the trigger is activated to determine that the event has occurred;
causing presentation on the UI of options, based on the selected event template, for defining the configurable parameters of the selected event template that determine the trigger for the occurrence of the event and the one or more actions, the UI providing options to select a trigger filter from a plurality of filter options comprising zone, person or car, object presence, object absence, objects overlapping, objects spatial relationship, and object count, the UI options further comprising an option to select one or more cameras from a plurality of cameras;
creating the agent based on the selected event template and the selected trigger filter; and
ongoing monitoring, by the agent, video data from one or more cameras to determine an activation of the trigger for the occurrence of the event in a zone based on the trigger filter applied to the video data, the zone being an area that has been delineated by a user within view of the one or more cameras, wherein ongoing monitoring the video data comprises:
detecting objects within one or more frames in the video data;
determining values of the trigger filter based on the detected objects in the one or more frames;
determining that the trigger has been activated based on the values of the trigger filter;
determining the occurrence of the event in response to the trigger being activated; and
performing the one or more actions configured for the selected event template in response to the determining the occurrence of the event.
15 . The system as recited in claim 14 , the configurable parameters of the event comprising camera selection, the trigger or combination of triggers, and the one or more actions.
16 . The system as recited in claim 15 , wherein the plurality of event templates further comprises crowding, person of interest, fence jumping, forklift near miss, vehicle near miss, tailgating, loitering, and possible fall.
17 . The system as recited in claim 14 , wherein detecting the objects further comprises:
identifying object attributes selected from a group comprising person identity, color, position, vehicle type, and license plate; and
identifying movement of the object based on a plurality of frames.
18 . A non-transitory machine-readable storage medium including instructions that, when executed by a machine, cause the machine to perform operations comprising:
causing presentation of a user interface (UI) comprising options to select an event template from a plurality of event templates for creating agents to detect events, each event template being a pre-configured agent for detecting an occurrence of an event, each event template being a pre-configured agent for detecting an occurrence of an event with configurable parameters that determine a trigger for an occurrence of the event and one or more actions to perform when the event is triggered, the agent being a program that determines if the trigger is activated to determine that the event has occurred;
causing presentation on the UI of options, based on the selected event template, for defining the configurable parameters of the selected event template that determine the trigger for the occurrence of the event and the one or more actions, the UI providing options to select a trigger filter from a plurality of filter options comprising zone, person or car, object presence, object absence, objects overlapping, objects spatial relationship, and object count, the UI options further comprising an option to select one or more cameras from a plurality of cameras;
creating the agent based on the selected event template and the selected trigger filter; and
ongoing monitoring, by the agent, video data from one or more cameras to determine an activation of the trigger for the occurrence of the event in a zone based on the trigger filter applied to the video data, the zone being an area that has been delineated by a user within view of the one or more cameras, wherein ongoing monitoring the video data comprises:
detecting objects within one or more frames in the video data;
determining values of the trigger filter based on the detected objects in the one or more frames;
determining that the trigger has been activated based on the values of the trigger filter;
determining the occurrence of the event in response to the trigger being activated; and
performing the one or more actions configured for the selected event template in response to the determining the occurrence of the event.
19 . The non-transitory machine-readable storage medium as recited in claim 18 , the configurable parameters of the event comprising camera selection, the trigger or combination of triggers, and the one or more actions.
20 . The non-transitory machine-readable storage medium as recited in claim 19 , wherein the plurality of event templates further comprises crowding, person of interest, fence jumping, forklift near miss, vehicle near miss, tailgating, loitering, and possible fall.
21 . The non-transitory machine-readable storage medium as recited in claim 18 , wherein the options for defining the configurable parameters that determine the occurrence of the event comprise people, animals, vehicles, tools, and weapons.
22 . The non-transitory machine-readable storage medium as recited in claim 18 , wherein detecting the objects further comprises:
identifying object attributes selected from a group comprising person identity, color, position, vehicle type, and license plate; and
identifying movement of the object based on a plurality of frames.
23 . The method as recited in claim 1 , wherein the plurality of event templates comprises people absent in a configurable zone, person running, occurrence of slip and fall, person enters a configurable restricted area, kiosk is unattended, and unattended vehicle, each event template comprising one or more filters and one or more actions.