The present disclosure relates to surveillance systems and more particularly to systems and methods for improving accuracy and robustness of automated abnormal behavior detection in video surveillance systems.
Typical surveillance systems include a plurality of sensors that may collect data and/or monitor for security threats based on predetermined conditions. For example only, the plurality of sensors may include video cameras. Typical video surveillance systems may include a plurality of video cameras that monitor a large geographic area. For example only, the large geographic area may be a warehouse. Each of the plurality of video cameras may collect metadata corresponding to a monitored area. A human operator may be required to simultaneously monitor a plurality of video feeds from the plurality of video cameras, and thus some security threats may not be detected. Therefore, video surveillance systems may include automated detection systems that monitor areas based on predetermined conditions. For example, the predetermined conditions may be referred to as “normal activity patterns.” (see Grimson-1998: W. E. L. Grimson, Chris Stauffer, Lily Lee, Raquel Romano, “Using Adaptive Tracking to Classify and Monitor Activities in a Site”, Proceedings IEEE Conf. on Computer Vision and Pattern Recognition, pp. 22-31, 1998).
For example, the automated detection system may detect “abnormal motion patterns” based on the collected metadata and the normal motion patterns (see Grimson). In other words, the automatic detection system may alert the human operator of a potential security threat when abnormal behaviors are detected. The operator may analyze the potential security threat and choose whether to actuate an alarm. Additionally, the automatic detection system may actuate an alarm without notifying the operator. Furthermore, the automatic detection system may store metadata corresponding to the potential security threat for updating of the predetermined conditions and/or future analysis of the potential security threat.
For example only, U.S. Pat. No. 7,088,846 discloses a video surveillance system that uses rule-based reasoning and multiple-hypothesis scoring to detect predetermined object behavior based on object movement and events initiated by object. The system determines an alert condition based on the movement patterns of an object. The alert condition may be defined by an occurrence of a combination of particular events. For example only, the particular events may include an appearance of a person, a movement of the person towards a door, or the person swiping an object at a card reader. The system may determine whether the particular events have occurred and may determine a time stamp for each of the particular events. The system may then determine whether an alert condition has occurred based on predefined rules.
For example, U.S. Pat. No. 6,707,486 discloses an alarm system that automatically monitors activity and directional motion in a predetermined area. Specifically, the alarms may only be generated if the system detects movement in a particular direction greater than a predetermined threshold and/or if the moving object detected by the video camera is of a particular size. Alternatively, for example, U.S. patent application Ser. No. 11/676,127 “Surveillance System and Methods” discloses a surveillance system detecting abnormal local motion by utilizing online localized motion model estimation from metadata to remove numerous rule configurations.
However, the system may require that an entire rule set is to be configured by the operator. Furthermore, the system may require that the particular events are to be based on a particular sequence of the particular events. Thus, these requirements may make it difficult to completely define a model of abnormal behavior for a moderate-sized to large-sized rule set. Furthermore, the metadata obtained from video motion detection and tracking includes various errors due to, for example, light changes, sudden background changes, shadows, static occlusion, self occlusion, merging objects, splitting objects. For a camera with a perspective view, error may result due to the motion type, such as when an object moves from a far-field to the camera or from the camera to the far-field, etc. Object location errors may be compensated for using, for example, Kalman filters with predefined motion models. When the motion of object is assessed for abnormal behavior detection, accurate location information is important to prevent false alarms that would be detrimental to the objective of the system.
To remedy these potential inaccurate location readings, the abnormal behavior detection system should support robust abnormal motion detection. The robust tracking may include two level of error handling: one for estimated tracking error and one for the camera to capture position detection errors in different parts of camera view, such as far-field and near-field position, where detection errors may be different. Using prior error distributions as feedback with current error patterns may provide for dynamic adjustment of measurement windows to produce more accurate and robust estimation of velocities of moving objects. Additionally, a sampling window and an algorithm for determination of velocity, speed, acceleration of moving object may adjusted based on the above position detection errors.
The background description provided herein is for the purpose of generally presenting the context of the disclosure. Work of the presently named inventors, to the extent the work is described in this background section, as well as aspects of the description that may not otherwise qualify as prior art at the time of filing, are neither expressly nor impliedly admitted as prior art against the present disclosure.
This section provides a general summary of the disclosure, and is not a comprehensive disclosure of its full scope or all of its features.
A method for determining abnormal behavior of an object traversing a space includes receiving trajectory information for an object whose movement in the space is being monitored, where the trajectory information indicates a current position of the monitored object, retrieving a trajectory model that corresponds to the current position of the monitored object, where the trajectory model defines possible directions that an object at the current position may travel and, for each possible direction, a likelihood that the object at the current position would travel in the corresponding possible direction, computing a likelihood that the monitored object is traveling in a direction based on a weighted average of likelihoods for two or more of the possible directions given by the model, where the two or more possible directions are those nearest to the direction of the monitored object, and identifying abnormal behavior of the monitored object based on the computed likelihood.
A method for determining abnormal behavior of an object traversing a space includes receiving trajectory information for an object whose movement in the space is being monitored, where the trajectory information indicates a current position of the monitored object and a distances that the monitored object has traveled from the current position during a previous time period, retrieving a trajectory model that corresponds to the current position of the monitored object, where the trajectory model defines a threshold distance that an object at the current position would have traveled from the current position during the previous time period, comparing the distances to the threshold distance, and identifying abnormal behavior of the monitored object based on the comparison.
A method for determining abnormal behavior of an object traversing a space includes receiving trajectory information for an object whose movement in the space is being monitored, where the trajectory information indicates a current position of the monitored object, a direction that the monitored object is traveling, and a velocity of the monitored object, retrieving a trajectory model that corresponds to the current position of the monitored object, where the trajectory model defines possible directions that an object at the current position may travel and, for each possible direction, a velocity that the object at the current position would travel at, computing a velocity threshold for the monitored object based on a weighted average of the velocities for two or more of the possible directions given by the model, where the two or more possible directions are those nearest to the direction of the monitored object, and identifying abnormal behavior of the monitored object based on the velocity of the monitored object and the computed velocity threshold.
A surveillance system that improves accuracy and robustness of abnormal behavior detection of a monitored object traversing a space includes a metadata processing module, a model building module, and a behavior assessment module. The metadata processing module generates trajectory information corresponding to the monitored object and that determines attributes of the monitored object based on at least one of a plurality of normal motion models and a dynamic time window, wherein the attributes include an estimated velocity of the monitored object, whether the monitored object is an outlier, and a measurement error estimation. The model building module at least one of generates and updates the plurality of normal motion models based on at least one of the attributes of the monitored object and an abnormality score corresponding to the monitored object. The behavior assessment module generates the abnormal behavior score corresponding to the monitored object based on one of a plurality of abnormal behavior detection methods.
Further areas of applicability will become apparent from the description provided herein. The description and specific examples in this summary are intended for purposes of illustration only and are not intended to limit the scope of the present disclosure.
The drawings described herein are for illustrative purposes only of selected embodiments and not all possible implementations, and are not intended to limit the scope of the present disclosure.
Corresponding reference numerals indicate corresponding parts throughout the several views of the drawings.
The following description is merely exemplary in nature and is in no way intended to limit the disclosure, its application, or uses. For purposes of clarity, the same reference numbers will be used in the drawings to identify similar elements. As used herein, the phrase at least one of A, B, and C should be construed to mean a logical (A or B or C), using a non-exclusive logical or. It should be understood that steps within a method may be executed in different order without altering the principles of the present disclosure.
As used herein, the term module may refer to, be part of, or include an Application Specific Integrated Circuit (ASIC), an electronic circuit, a processor (shared, dedicated, or group) and/or memory (shared, dedicated, or group) that execute one or more software or firmware programs, a combinational logic circuit, and/or other suitable components that provide the described functionality.
Typical systems and methods used to detect abnormal motion behavior may be limited by several factors. More specifically, a substantial amount of the work in video analytics has been focused on collecting motion data in user-specified “regions of interest” (ROIs). The collected motion data may then be compared to motion data for an input object using user-specified thresholds. In other words, the motion trajectory of the monitored object may be compared with motion patterns and distance threshold defined by user to detect these motion patterns. For example, one limiting factor may be a difficulty associated with the user setting and keeping track of ROIs and thresholds for all areas. For example, another limiting factor may be dynamically changing behavior of the input object. Furthermore, another limiting factor may be unpredictable occlusion and lighting conditions in an area with non-uniform geographical surfaces.
A large amount of work may be required to transform two-dimensional (2D) video motion of an object to three-dimensional (3D) physical trajectories. More specifically, a substantial camera calibration and actual measurement of physical geometry in the 2D projected view may be required. Both camera calibration and actual measurement of physical geometry may be difficult for security operators and thus both may be prone to multiple types of errors. For example, lighting and occlusion may cause errors in measuring the actual position, size, and/or depth of the monitored objects. Next, for example, when a ground plane is not flat the velocity of the monitored object may appear to be moving at a different velocity than the actual velocity. Additionally, for example, resolution of a location of the monitored object and the velocity measurement may be affected by an angle of camera and the motion direction of the monitored object, such as the monitored object moving away from or towards the camera. Lastly, for example, the position errors corresponding to different locations in the camera field of view may change over time.
Referring to
The sensing devices 12a-12n communicate the metadata to abnormal behavior detection module 20. The abnormal behavior detection module 20 may analyze behavior of the objects based on the received metadata. The abnormal behavior detection module 20 may also generate an alarm message for at least one of the GUI 22, the A/V alarms 24, and the recording storage module 24. For example, the received metadata may include, but is not limited to a camera identifier, a field of view identifier, an object identifier, a time stamp, and/or location of an object in the field of view. The location of the object may be described by a rectangle which encloses the area (in the image) occupied by monitored object. This rectangle may be referred to as a “minimum bounding box (MBB)” or “minimum bounding rectangle (MBR).” The rectangle may be specified by coordinates of an upper-left corner of the rectangle, a width of the rectangle, and a height of rectangle. The location of the object may be identified by a binary mask which is defined in the MBR and denotes which pixels are occupied by the monitored object. The metadata may further include an original image of the monitored object and/or other appearance features representative of the monitored object such as color, shape, object type, merge/split events of the monitored object, etc.
In one embodiment, the sensing devices 12a-12n, may be video cameras or other devices that may capture motion, such as an infrared camera, a thermal camera, a sonar device, or a motion sensor. The sensing devices 12a-12n are configured to record motion with respect to a target area or a grid within the field of view of the device. For exemplary purposes only, a target area and a grid are shown in
Referring now to
It can be appreciated that additional information relevant to the target area may also be stored. It can be appreciate that other shapes may be used to describe the target area, such as an ellipse, a circle, etc. Target area information may be stored in a table. An exemplary table for storing target area definitions is provided below:
The collection of data cubes may be referred to as a trajectory model. Trajectory models may hereinafter be referred to as normal motion models. Thus, in an exemplary embodiment, each data cube in a normal motion data model is a location with respect to a target area and a time stamp. It can be appreciated that each data cube may contain additional information, such as a z-value, color information, and/or object identifying tags.
Referring now to
Exemplary metadata processing module 32 receives the metadata from sensing devices 12a-12n and stores the metadata in a datastore. For example, the metadata may include, but is not limited to, a video camera identifier, an object identifier, a time stamp, an x-value, a y-value, an object width value, and an object height value. In one embodiment, the metadata processing module 32 may determine whether a detected position of object is an outlier and then may generate additional metadata corresponding to the monitored object if the detected position of object is an outlier. For example, the metadata processing module 32 may use techniques known in the art to determine whether the detected position of object is classified as an outlier based on received metadata.
The metadata processing module 32 may also receive feedback from the model building module 34 corresponding to data cubes. For example, the feedback may include a likelihood of estimation error of linear predictors (such as Kalman filter, AR) of an input trajectory of a set of objects in M×N cells of data cube with multiple time windows. Alternatively, the feedback may include expected statistics of object attributes that are observed from a set of normal object trajectories. For example, (k*sigma) may be used for determination of threshold for each object attribute (tie it to statistic interpretation of normal distribution). These statistics may then recorded in M×N cells of data cube with multiple time windows.
Metadata processing module 32 generates trajectories for monitored objects. Additionally, the metadata processing module 32 may process the metadata into object attributes and store the object attributes in a datastore. For example, processing module 32 may use techniques known in the art for processing the metadata to obtain derived attributes from the metadata. In one embodiment, the object attributes may include an estimated velocity and motion direction, likelihoods (i.e. probabilities) corresponding to randomness of motion, and an estimated measurement error of the monitored object. Alternatively, exemplary object attributes may include (but are not limited to):
The estimated velocity, the direction, and the normalized speed may be used to reduce “false-negatives” (i.e. incorrect normal behavior detection). Additionally, the outlier indicator, the change in motion direction, and level of randomness may be used to reduce “false-positives” (i.e. incorrect abnormal behavior detection). More specifically, if the outlier indicator indicates that the monitored object is an outlier, the monitored object (and its corresponding attributes) may not be used to update the normal behavior models.
The metadata processing module 32 may determine that the a current position of the monitored object is an outlier in one of four ways. More specifically, observation i is marked as an outlier based on combination of the following methods for the monitored object (e.g. ts(i),x(i),y(i),w(i),h(i)).
First, a sudden change in size and/or shape may result in the current position of the monitored object being marked as an outlier. For example, the change may equal be determined as follows:
Change=|MBR(i).w−MBR(i−1).w|+|MBR(i).h−MBR(i−1).h|,
where MBR(i).w and MBR(i−1).w represent widths of the monitored object at observations i and (i−1), respectively, and where MBR(i).h and MBR(i−1).h represent heights of the monitored object at observations i and (i−1), respectively. When the change exceeds a predetermined change threshold, the monitored object may be marked as an outlier.
Second, a sudden change in a size ratio r(i) of the monitored object may result in the current position of the monitored object being marked as an outlier. For example, the size ratio r(i) may be determined as follows:
where NumofPixels(i) represents a pixel size of the monitored object at observation i. When the size ratio r(i) exceeds a predetermined size ratio threshold, the monitored object may be marked as an outlier.
Third, a sudden change in velocity and/or acceleration of the monitored object may result in the current position of the monitored object being marked as an outlier. In other words, for example, when the velocity and/or the acceleration of the monitored object exceeds predetermined velocity and/or acceleration thresholds, the monitored object may be marked as an outlier.
Lastly, a sudden change in a product of direction and velocity of the monitored object may result in the current position of the monitored object being marked as an outlier. In other words, for example, when the product of the direction and velocity of the monitored object exceeds a predetermined product threshold, the monitored object may be marked as an outlier. For example, the product threshold may be based on combination of a likelihood of estimation error of linear predictors (such as Kalman filter, AR) of input trajectory of set of objects in M×N cells of data cube with multiple time windows. Expected statistics of object attributes that are observed from a set of normal object trajectories. For example, (k*sigma) may used for determination of threshold for each object attribute (i.e. relate it to a statistic interpretation of the normal distribution). Thus, these statistics may then be recorded in M×N cells of a data cube with multiple time windows.
Referring now to
In step 42, no current velocity information exists since the current position is an outlier, and control may end in step 46. In other words, the normal motion models do not include velocity information corresponding to outliers (i.e. outliers are filtered out). The metadata processing module 32 may implement an outlier handling function in order to adapt to increases in the minimal displacement necessary for obtaining accurate attributes such as velocity and acceleration. The outlier handling function may also accumulates more properties from objects to determine possible causes of the objects being marked as outliers. For example, for an outlier that marked by mistaking the object for a different object, the outlier handling function may output an indicator (i.e. the outlier indicator) to prevent miscalculation of the attributes from the original tracked objects. Thus, if the outlier handling function detects a same object based on the object attributes, the outlier handling function may mark the outlier position which is indicative of a larger minimal displacement and thus more sample points needed to calculate the attributes of the monitored object.
In step 43, the metadata processing module 32 determines an acceptable previous position to be used. More specifically, the metadata processing module 32 may determine a previous position when the monitored object was a predetermined distance (i.e. a minimum distance) from the current position. In step 44, the metadata processing 32 module generates velocity and/or direction of the monitored object based on the acceptable previous position, the current position, and a corresponding period of time. In step 45, the metadata processing module 32 may generate a change in motion direction and a normalized speed based on the acceptable previous position of the monitored object. In one embodiment, if the minimal displacement distance cannot be determined in the trajectory of the monitored object, then the velocity may not be calculated, and an error type may be denoted at the output.
The minimal displacement distance may be used to accommodate for outliers and other normal tracking errors. For example, for an outlier, the minimal displacement may be set to be twice the magnitude of distance (i.e. jump) of the outlier. Thus, the velocity calculation may adapt to a lower resolution and provide low confidence for the points within the minimal displacement set from the center of the jump caused by the outlier. Control may then end in step 46. Furthermore, the minimal displacement may also adjusted based on a size variation of the objects, quantization error of far field observation in the camera, direction of movement, and minimal number of samples to confirm the likelihood of the position of the moving objects.
Referring back to
The normal motion models correspond to expected motion of objects or “safe” motion behavior of an object. For example, in a workplace environment a normal motion model may capture an employee walking at a safe speed from a work area to a break room. Conversely, an employee walking through a restricted area or a safety hazard zone may constitute an unsafe behavior or movement and thus may not be included in a normal motion model. For example, a data cube may include normal motion models in each cell of grid. In the grid, the camera field of view may be decomposed into cells and observations (motion of monitored object) in each cell may be used to update the normal motion model in this cell. The models capture statistics of observed object properties, such as expected direction and magnitude of velocity and its standard deviation, etc. The third dimension may be added for inclusion of time intervals to represent that the site usage depends on time. Additionally, the motion behavior of monitored objects may change depending on morning hour, lunch time, afternoon, night, weekend, etc.
Behavior assessment module 36 retrieves normal motion models from the normal model datastore 28 and processes received metadata based on the normal motion models. In other words, the behavior assessment module 36 analyzes the received metadata corresponding to the monitored object and determines whether the monitored object is acting in conformity with the normal motion models.
The behavior assessment module 36 may generate abnormality scores corresponding to the monitored object. The abnormality scores are generated according to abnormal behavior models that compute differences between the normal motion models and metadata corresponding to the monitored object. The abnormal behavior models may include a wrong direction model, a wandering (i.e. loitering) model, and a speeding model.
The alarm generation module 38 activates at least one device when the abnormality scores exceed a threshold that corresponds to normal (i.e. acceptable) behavior. The devices may be the GUI 22, the A/V alarms 24, and/or the recording storage module 26. Furthermore, an alarm may be sent to additional devices and/or parties, such as a nearby police station (to request assistance) or to a machine (to cut power in order to prevent injury to an operator).
The GUI 22 may display a notification on a screen to draw attention of a security guard or other user. The guard may then watch the object to determine whether any further action should be taken, such as activating the A/V alarms 24. However, the security guard may also classify the trajectory of the monitored object as normal behavior via the GUI 22, after which the corresponding metadata may be stored in the normal motion data datastore 28.
The A/V alarms 24 may include lights and/or sirens attached to walls, floors, vehicles, cameras, and/or wireless portable devices carried by employees. Different A/V alarms 24 may be activated based on the abnormality score. For example, when the abnormality score below a threshold, a light may flash, but when the score is above the threshold, multiple lights may flash and the sirens may sound indicating the severity level of abnormal behavior.
The recording storage module 26 begins recording image data and/or metadata from sensor devices 12a-12n when activated. Thus, the recording storage module 26 allows the system 10 to capture and record all abnormal behaviors without requiring the system 10 to constantly record and/or store irrelevant data.
Referring now to
In learning mode, the normal model building module 52 builds a normal motion model based on received metadata and stores the normal motion model in the normal model datastore 28. The normal model building module 52 may also update existing normal motion models in the normal model datastore 28 with the received metadata. Furthermore, metadata, parameters, and/or entire models may be loaded into the normal model building module 52 by an operator via the GUI 22 and the model loading module 50.
In operational mode, the behavior assessment module 36 retrieves normal motion models stored in the normal model datastore 28 for behavior assessment of a monitored object. After behavior assessment and/or alarm activation is complete, the model building module 34 updates the existing normal motion models in the normal motion model database (as described above).
Referring now to
The behavior assessment module 36 includes a filtering module 60, a wrong direction behavior scoring module 62, a wandering behavior scoring module 64, and a speeding behavior scoring module 66. The filtering module 60 filters the metadata corresponding to the monitored object.
In one embodiment, the filtering module 60 may generate the outlier handling function output. For example, the outlier handling function output may include including an outlier marking, a type of outlier, object properties, and a data cube that may be shared by scoring modules by open-interface with outside modules.
In another embodiment, the filtering module 60 may determine a minimum distance that the monitored must travel. For example, the minimum distance may correspond to a noise level associated with one of the sensing devices 12a-12n. In other words, the minimum distance may be insufficient for generation of velocity information.
Additionally, the filtering module 60 may estimate an error of the position of the monitored object. Thus, the filtering module 60 may prevent false alarms due to incorrect abnormality scores. An M×N matrix model may be implemented by the filtering module 60 and is described in more detail below.
As previously described in
A position error model for each of the M×N cells may be generated as follows. First, original trajectories are defined by x-axis and y-axis positions corresponding to a time stamp (e.g. x, y, ts). The trajectories are then be smoothed by a filter, such as a Kalman filter. Next, differences between the smoothed trajectories and the original trajectories are generated. In other words, the filtering module 60 generates for each trajectory an absolute value of a difference between a smoothed x-axis position xs(i) and an original x-axis position x(i) (e.g. εx(i)=|xs(i)−x(i)|) and an absolute value of a difference between a smoothed y-axis position ys(i) and an original y-axis position y(i) (e.g. εy(i)=|ys(i)−y(i)|).
After generating the differences, the filtering module 60 updates the position error model for the corresponding one of the M×N cells. The average x-axis position error may be updated based on the following:
where nx is a number of x-axis samples.
The standard deviation of the x-axis position error may be updated based on the following:
The average y-axis position error may be updated based on the following:
where ny is a number of y-axis samples.
The standard deviation of the y-axis position error may be updated based on the following:
Lastly, nx and ny may be incremented by one. The updated position error models are used by the filtering module 60 to correct errors in the received metadata. The filtering module 60 then outputs the filtered metadata to datastores or other modules.
Wrong Direction Behavior Scoring
The wrong direction behavior scoring module 62 processes metadata corresponding to a monitored object to determine whether the monitored object is traveling in a normal (i.e. safe) direction defined by the normal motion models.
The wrong direction behavior scoring module 62 retrieves normal motion models from the normal motion model database and retrieves the filtered metadata from the filtering module 60 (or a corresponding datastore). The wrong direction behavior scoring module 62 generates an abnormality score when the monitored object is traveling in an incorrect direction, described in more detail below.
The wrong direction behavior scoring module 62 creates and maintains likelihoods that an object at a particular position is traveling in particular directions. For example, the wrong direction behavior scoring module 62 may create and maintain likelihoods that an object is traveling in one of eight directional areas. In other words, for example only, each of the directional areas may correspond to 45 degrees each. An exemplary normal behavior (i.e. trajectory model) is shown below:
where Area corresponds to the directional area (i.e. 45 degree section), Vx corresponds to an expected velocity in the x-direction, Stdx corresponds to a standard deviation of Vx in the corresponding Area, Vy corresponds to an expected velocity in the y-direction, Stdy corresponds to a standard deviation of Vy in the corresponding Area, and Count corresponds to a number of samples in the corresponding Area.
In other words, Vx and Vy correspond to a most likely direction within the corresponding Area. Additionally, Count relates to the likelihood (i.e. probability) that an object at the corresponding position would travel in a direction corresponding to the Area compared to a total number of samples (i.e. total of Count column, or Count_total).
Referring now to
Referring
The wrong direction behavior scoring module 62 generates an abnormal behavior score based on the direction of the monitored object, the K closest directions, and their corresponding likelihoods. The wrong direction behavior scoring module 62 may generate a weighted average of the K closest directions as follows:
where Lj corresponds to (Count/Count_total) of the corresponding θj corresponds to the angle between a directional angle of the monitored object and a directional angle of one of the K closest directions.
The wrong direction behavior scoring module 62 then generates raw abnormality scores as follows:
where L_mean is an average likelihood of all directions in the corresponding region.
In other words, the score is close to zero when the monitored object is traveling in the correct (i.e. the most likely) direction. The raw scores (Score_raw) may be averaged over multiple time windows to determine an average wrong direction abnormality score over a period of time.
Wandering Behavior Scoring
The wandering behavior scoring module 64 processes metadata corresponding to a monitored object to determine whether the monitored object is traveling a normal (i.e. safe) total distance during a period of time, defined by the normal motion models.
The wandering behavior scoring module 64 retrieves the normal motion models and the filtered metadata from the filtering module 60 (or a corresponding datastore). The wandering behavior scoring module 64 may generate an abnormality score when the monitored object is wandering (i.e. loitering) according to two different methods. First, the wandering behavior scoring module may generate an abnormality score when the monitored object is wandering within a predetermined area for a predetermined number of samples as described below.
Number of Samples (Constant Sampling Rate)
First, the wandering behavior scoring module 64 generates an expected minimum trajectory length (expectedLen) based on an average length (aveLen) and a standard deviation of the average length (stdLen) corresponding to the trajectory. The expected minimum trajectory length expectedLen may be a sum of the average length aveLen and the standard deviation stdLen (expectedLen=aveLen+stdLen). In other words, the expected minimum trajectory length expectedLen may correspond to a minimum length of travel that defines wandering (i.e. loitering) behavior.
Next, the wandering behavior scoring module 64 generates an average speed (aveSpeed) of the monitored object based on the filtered metadata. The wandering behavior scoring module 64 then determines a number of samples (expectedNumofPoints) that correspond to wandering (i.e. loitering) behavior. The number of samples expectedNumofPoints may be one-third of the expected trajectory length expectedLen (expectedNumofPoints=expectedLen/3). The number of samples expectedNumofPoints may also be dynamically adjusted to counteract effects of objects in a far field of one of the sensing devices 12a-12n. In other words, an object in the far field may appear to be moving at a lower velocity than a corresponding actual velocity.
Next, the wandering behavior scoring module 64 determines a width of a square wandering area (width) based on the average speed of the monitored object aveSpeed and the number of samples expectedNumofPoints. The width may be a product of the average speed aveSpeed and the number of samples expected NumofPoints (width=aveSpeed*expectedNumofPoints).
The wandering behavior scoring module 64 then counts a number of detected samples (NumofPoints) of the monitored object within the square wandering area, where the square wandering area is centered at the current position of the monitored object.
Finally, the wandering behavior scoring module 64 generates an abnormality score based on the number of detected samples NumofPoints and the expected number of samples expectedNumofPoints. The wandering behavior scoring module 64 may generate an abnormality score as follows:
where Score equals zero when the detected number of samples NumofPoints is greater than or equal to both the expected number of samples expectedNumofPoints and zero.
Time-Based (Non-Constant Sampling Rate)
Alternatively, the wandering behavior scoring module may generate an abnormality score when the monitored object is wandering within a predetermined area for a predetermined time as described below.
First, the wandering behavior scoring module 64 defines a minimum bounding box (MBR) of trajectory for each point in a trajectory based on minimums and maximums of x-axis position (xmin, xmax) and y-axis position (ymin, ymax). Next, the wandering behavior scoring module 64 generates two differences and an MBR radius as follows:
xdiff(i)=(x max−x min)2
ydiff(i)=(y max−y min)2
radius(i)=√{square root over (xdiff(i)+ydiff(i))}{square root over (xdiff(i)+ydiff(i))}
The wandering behavior scoring module 64 then determines the average speed of the monitored object (ExpectedSpeed(i,j), j=1,2, . . . , k) based on k samples of instantaneous velocity. The k instantaneous velocities may be sampled at equal 1/k intervals during a sampling period.
Next, the wandering behavior scoring module 64 determines an expected minimum wandering time (ExpectedMinWanderingTime) based on a piecewise function as follows:
where k may be configurable. For example, if k is equal to 8, the expected minimum wandering time is estimated by dividing the trajectory into 8 segments.
The wandering behavior scoring module 64 then generates a confidence factor (CF) based on a silhouette size of the monitored object (numPixels) and a silhouette size model that tracks an average silhouette size of the monitored object avgPixels and a standard deviation (stdPixels). A corrected silhouette size z(i) may be generated as follows:
Then, the confidence factor CF may be determined based on the corrected silhouette size z(i) as follows:
where CF equals one (i.e. full confidence) when z(i) is less than or equal to one. In other words, it indicates the silhouette size (i.e. blob size) is normal since the silhouette size is within a standard deviation of the average silhouette size. Otherwise, CF is reduced based on z(i) to represent a level of abnormality (i.e. confidence diminishes).
The wandering behavior scoring module 64 determines a minimum wandering time (minWanderingTime) based on the average trajectory duration (avgTrajectorDuration) and its standard deviation of trajectory duration (stdTrajectorDuration). The minimum wandering time minWanderingTime may be the average trajectory duration avgTrajectorDuration plus two standard deviations stdTrajectoryDuration (minWanderingTime=avgTrajectoryDuration+2*stdTrajectoryDuration). A score factor (scoreFactor(i)) is defined to describe this purpose as below. If trajectory time is less than average trajectory time, scoreFactor(i) is zero, otherwise:
More specifically, the score factor is monotone and proportional to the trajectory time. For example, when the trajectory duration is more than two standard deviations stdTrajectoryDuration beyond the average trajectory duration avgTrajectorDuration, the score factor is close to 1. Alternatively, for example, when the trajectory duration is less than two standard deviations stdTrajectoryDuration beyond the average trajectory duration avgTrajectorDuration, the score factor is decreased exponentially.
Finally, the wandering behavior scoring module 64 generates an abnormality score based on the following:
where TrajectoryTime(i) corresponds to a determined time that the monitored object was within the wandering area. Score equals 0 when TrajectoryTime(i) is less than or equal to the minimum wandering time minWanderingTime.
Speeding Behavior Scoring
The speeding behavior scoring module 66 processes metadata corresponding to a monitored object to determine whether the monitored object is traveling at a normal (i.e. safe speed defined by the normal motion models.
The speeding behavior scoring module 66 retrieves the normal motion models and the filtered metadata from the filtering module 60 (or a corresponding datastore). The speeding behavior scoring module 66 generates an abnormality score when the monitored object is traveling at a speed that exceeds a predetermined speed threshold as described below.
First, the speeding behavior scoring module 66 determines an instantaneous speed of the monitored object and a current direction of the monitored object based on a current position and time (x(i), y(i), ts(i)) and a previous position and time (x(i−w), y(i−w), ts(i−w)). The speeds may be determined as follows:
where the previous position (i−w) is determined by a given minimal displacement minDis such that the displacement from (i−w) to (i) is greater than minDis, but the displacement from (i−w+1) to (i) is less than or equal to minDis. The minimal displacement minDis may also be configurable. For example, minDis may be at least the object size estimated by external tracking algorithms.
Next, the speeding behavior scoring module 66 determines K closest directions to the determined direction of the monitored object. K may be predetermined or may be set by an operator via the GUI 22. For example K may be three, as shown in
The speeding behavior scoring module 66 generates an abnormal behavior score based on the speed of the monitored object and the K average speeds corresponding to the closest directions to the determined direction of the monitored object. However, if no velocity information exists in a particular direction (i.e. see
The speeding behavior scoring module 66 generates the distance factors d(i) based on a difference (θi) between the directional angle of the monitored object and the directional angle of the corresponding one of the K closest directions. For example, d(i) may equal cos(θi). The speeding behavior scoring module 66 then generates weight factors w(i) for each of the K closest directions. If K=3 the weight factors w(i) may be generated as follows:
w(1)=isWeighted(1)*d(2)*d(3)
w(2)=d(1)*isWeighted(2)*d(3)
w(3)=d(1)*d(2)*isWeighted(3)
Furthermore, a total weight factor (totalWeight) is generated based on the weight factors w(i), and may be used to normalize weights. For example, the total weight factor totalWeight may be a sum of the weigh factors w(i) (e.g. totalWeight=w(1)+w(2)+w(3)). The speeding behavior scoring module 66 then generates an estimated average velocity (vel_hat) and an estimated standard deviation (std_hat) corresponding to the current direction of the monitored object. If the total weight totalWeight equals 0, both vel_hat and std_hat may be set to zero. Otherwise, vel_hat and std_hat may be generated as follows:
where avgVel(i) corresponds to average velocities of the K closest directions and avgStd(i) corresponds to average standard deviations of the K closest directions. Normalized speed through vel_hat will calibrate the velocity in far view and near view field in field of view if camera. Based on the normalized speed, scores generated by the speeding behavior scoring module 66 may be at same level when objects have same velocities but are in different fields in field of view of one of the sensing devices 12a-12n.
The speeding behavior scoring module 66 then generates raw abnormality scores based on the average speed at the current direction vel_hat as follows:
where lamda may be configurable based on how fast the object moves should be detected as abnormal speeding. For example, if three times of average speed is significant, lamda may be defined as ⅓. The randomness (randomFactor) is estimated based on the estimated measurement error and change in motion direction of the monitored object. For example, the randomness may be generated as follows:
where, εk is the estimated measurement error predicted by Kalman filter.
The speeding behavior scoring module 66 then generates the abnormality score based on the raw abnormality scores. The speeding behavior scoring module 66 may generate the abnormality score based on a median of the raw abnormality scores for a predetermined time period. The predetermined time period (i.e. the time window) may be k seconds, where k is defined as follows:
where colSize and rowSize correspond to a stored number of samples. For example, K=min(k,2) may indicate that a moving time window varies from 0.5 to 2 seconds.
Dynamic adjustment (i.e. control) of the time window may reduce errors due to objects in a far field of one of the sensing devices 12a-12n. More specifically, objects in the far field may appear to be moving at lower velocities than corresponding actual velocities. Therefore, the time window may be adjusted counteract the effects of the far field. Alternatively, the normalized velocity corresponding to the far field may counteract the effects of the far field.
In another feature of the invention, the behavior assessment module 36 may generate a map including abnormal behavior scores of objects to improve a severity level assignment for particular sensing devices 12a-12n and particular abnormal behaviors. For example only, the map may be referred to as an adaptive false alarm reduction map (AFARM). Thus, the surveillance system 10 may prioritize abnormal events based on their severity without overwhelming the security operators with an excessive alarms to attend to.
The behavior assessment module 36 module collects the abnormality scores of objects for each abnormal behavior type for score normalization. For example, the following parameters may be determined:
AFARM[ ].aveScore=Average Abnormal Behavior Score of object
AFARM[ ].stdScore=Standard Deviation of Abnormal Behavior Scores
AFARM[ ].n=Number of Samples
AFARM[ ].minScore=Minimum Abnormal Score Value
The AFARM for each abnormal behavior detector may be generated as follows. First, the average abnormal behavior score (aveScore) is set to a minimal value (minScore). For example, MinScore may be 0.75. Next, the number of trajectory samples is set to a given number (n). For example, n may be 100.
Additionally, after each object trajectory is processed, the abnormal behavior type (J) in the AFARM is updated as follows for a given abnormal behavior score of S:
Therefore, the average score (aveScore) may remain above the given minimal score. Based on the AFARM, the surveillance system 10 may spread scores out and greatly distinguish normal and abnormal behavior based the normalized score.
Referring now to
In step 104, the abnormal behavior detection module 20 determines K closest directions to the direction of the monitored object. For example only, the K closest directions may be the directions with the smallest differences between their directional angle and the directional angle of the monitored object.
In step 106, the abnormal behavior detection module 20 generates a weighted average of the K closest directions. More specifically, the abnormal behavior detection module 20 generates a likelihood based on K likelihoods and K angles corresponding to the K closest directions.
In step 108, the abnormal behavior detection module 20 generates raw scores based on the weighted average and the K corresponding likelihoods. In step 110, the abnormal behavior detection module 20 generates an abnormality score based on the raw scores. For example only, the abnormal behavior detection module 20 may generate the abnormality score based on an average of the raw scores over a predetermined time period. Control may then end instep 112.
Referring now to
In step 124, the abnormal behavior detection module 20 determines whether it is operating with a constant sampling rate. If yes, control may proceed to step 126. If no, control may proceed to step 136.
In step 126, the abnormal behavior detection module 20 generates a minimum trajectory length corresponding to a wandering area. In step 128, the abnormal behavior detection module 20 may determine an average speed of the monitored object. In step 130, the abnormal behavior detection module 20 may determine a minimum number of points within the wandering area corresponding to wandering behavior.
In step 132, the abnormal behavior detection module 20 counts a number of samples that the monitored object is wandering. In other words, the abnormal behavior detection module 20 may count a number of samples that the monitored object is within the wandering area. In step 134, the abnormal behavior detection module 20 may generate an abnormality score based on the counted number of samples. Control may then end in step 146.
In step 136, the abnormal behavior detection module 20 generates minimum bounding boxes (MBRs), also referred to by radius(i), corresponding to a wandering area. In step 138, the abnormal behavior detection module 20 may determine an average speed of the monitored object.
In step 140, the abnormal behavior detection module 20 determines a minimum wandering time. For example only, the minimum wandering time may correspond to a period of time that the monitored object may be within a corresponding MBR to be classified as wandering behavior.
In step 142, the abnormal behavior detection module 20 generates a confidence factor CF based on average and expected silhouette size (i.e. pixel size) of the monitored object. In step 144, the abnormal behavior detection module 20 may generate an abnormality score based on the minimum wandering time, a trajectory time corresponding to the monitored object, and the confidence factor. Control may then end in step 146.
Referring now to
In step 154, the abnormal behavior detection module 20 determines a speed and a direction of the monitored object. In step 156, the abnormal behavior detection module 20 may determine K closest directions to the monitored object. For example only, the K closest directions may be the directions with the smallest differences between their directional angle and the directional angle of the monitored object.
In step 158, the abnormal behavior detection module 20 generates distance factors d(i) for each of the K closest directions. For example only, a distance factor d(i) may be zero when no velocity information exists for the corresponding one of the K closest directions. For example only, a distance factor d(i) may be based on the difference between a corresponding directional angle and the directional angle of the monitored object.
In step 160, the abnormal behavior detection module 20 generates weight factors w(i) based on the distance factors d(i). In step 162, the abnormal behavior detection module 20 generates a total weight factor. For example only, the total weight factor may be a sum of the weight factors w(i).
In step 162, the abnormal behavior detection module 20 estimates an average velocity and standard deviation of an object at the current position. In step 164, the abnormal behavior detection module 20 generates raw scores based on the average velocity of the monitored object and the average velocity of an object at the current position.
In step 166, the abnormal behavior detection module 20 generates an abnormality score based on the raw scores. For example only, the abnormal behavior detection module 20 may generate the abnormality score based on a median of the raw scores over a predetermined time period. Control may then end in step 168.
Referring now to
In step 174, the abnormal behavior detection module 20 determines whether it is operating in learning mode. If yes, control may proceed to step 176. If no, control may proceed to step 178. In step 176, the abnormal behavior detection module 20 updates (or generates) normal motion models based on the processed metadata. Control may the end in step 186.
In step 178, the abnormal behavior detection module 20 retrieves normal motion models from the normal model datastore 28. In step 180, the abnormal behavior detection module 180 generates an abnormality score corresponding to a monitored object. For example only, the abnormality score may be based on one or more normal motion models and the generates and/or pre-processed metadata corresponding to the monitored object. Control may then proceed to both steps 176 and 182. In other words, the abnormal behavior detection module 20 may update the normal motion models in step 176 based on the generated abnormality scores.
In step 182, the abnormal behavior detection module 20 compares the abnormality score to a predetermined abnormality score threshold. If the abnormality score is greater than the predetermined abnormality score threshold, control may proceed to step 184. Otherwise, control may proceed to step 186 and control may end.
In step 184, the abnormal behavior detection module 20 generates an alarm signal corresponding to the abnormal behavior of the monitored object. For example only, the alarm signal may be sent to at least one of the GUI 22, A/V alarms 24, and a recording storage module 26. Control may then end in step 186.
The foregoing description of the embodiments has been provided for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention. Individual elements or features of a particular embodiment are generally not limited to that particular embodiment, but, where applicable, are interchangeable and can be used in a selected embodiment, even if not specifically shown or described. The same may also be varied in many ways. Such variations are not to be regarded as a departure from the invention, and all such modifications are intended to be included within the scope of the invention.
This application claims the benefit of U.S. Provisional Application No. 61/153,884, filed on Feb. 19, 2009. The entire disclosure of the above application is incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
61153884 | Feb 2009 | US |