Event generation and camera cluster analysis of multiple video streams in a pipeline architecture
First Claim
1. A volatile or non-volatile storage device storing instructions which, when executed by one or more processors, cause:
- receiving, from a first video analyzer application, a first call to read, from a memory, first analytic information that is associated with first video data;
wherein the first video data includes (a) first frames that correspond to a first video stream and (b) the first analytic information;
wherein the first analytic information is (i) about the content of the first frames and describes the content of the first frames (ii) based on prior analysis of the first frames, and (iii) different than the first frames;
in response to the first call, providing the first analytic information to the first video analyzer application to allow the first video analyzer application to perform a first set of one or more analysis operations on the first analytic information;
receiving, from the first video analyzer application, a second call to read, from a second memory, second analytic information that is associated with second video data;
wherein the second video data includes (a) one or more second frames that correspond to a second video stream and (b) the second analytic information;
wherein the second analytic information is (i) about the content of the second frames and describes the content of the second frames, (ii) based on prior analysis of the second frames, and (iii) different than the second frames;
wherein the second frames are different than the first frames;
in response to the second call, providing the second analytic information to the first video analyzer application to allow;
the first video analyzer application to perform a second set of one or more analysis operations on the second analytic information, andthe first video analyzer application to construct event information about the content of the first frames and the second frames based on both the first analytic information and the second analytic information;
wherein the second analytic information differs from the first analytic information.
4 Assignments
0 Petitions
Accused Products
Abstract
A pipeline architecture for analyzing multiple streams of video is embodied, in part, in a layer of application program interfaces (APIs) to each stage of processing. Buffer queuing is used between some stages, which helps moderate the load on the CPU(s). Through the layer of APIs, innumerable video analysis applications can access and analyze video data flowing through the pipeline, and can annotate portions of the video data (e.g., frames and groups of frames), based on the analyses performed, with information that describes the frame or group. These annotated frames and groups flow through the pipeline to subsequent stages of processing, at which increasingly complex analyses can be performed. At each stage, portions of the video data that are of little or no interest are removed from the video data. Ultimately, “events” are constructed and stored in a database, from which cross-event and historical analyses may be performed and associations with, and among, events may be made.
17 Citations
46 Claims
-
1. A volatile or non-volatile storage device storing instructions which, when executed by one or more processors, cause:
-
receiving, from a first video analyzer application, a first call to read, from a memory, first analytic information that is associated with first video data; wherein the first video data includes (a) first frames that correspond to a first video stream and (b) the first analytic information; wherein the first analytic information is (i) about the content of the first frames and describes the content of the first frames (ii) based on prior analysis of the first frames, and (iii) different than the first frames; in response to the first call, providing the first analytic information to the first video analyzer application to allow the first video analyzer application to perform a first set of one or more analysis operations on the first analytic information; receiving, from the first video analyzer application, a second call to read, from a second memory, second analytic information that is associated with second video data; wherein the second video data includes (a) one or more second frames that correspond to a second video stream and (b) the second analytic information; wherein the second analytic information is (i) about the content of the second frames and describes the content of the second frames, (ii) based on prior analysis of the second frames, and (iii) different than the second frames; wherein the second frames are different than the first frames; in response to the second call, providing the second analytic information to the first video analyzer application to allow; the first video analyzer application to perform a second set of one or more analysis operations on the second analytic information, and the first video analyzer application to construct event information about the content of the first frames and the second frames based on both the first analytic information and the second analytic information; wherein the second analytic information differs from the first analytic information. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. A system for analyzing video data that represents one or more video streams, the system comprising:
-
means for reading, from a memory, first analytic information that is associated with first video data and second analytic information that is associated with second video data; wherein the first video data includes (a) one or more first frames that correspond to a first video stream and (b) the first analytic information; wherein the second video data includes (a) one or more second frames that correspond to a second video stream and (b) the second analytic information; wherein the first analytic information is (i) about the content of the one or more first frames and describes the content of the one or more first frames, (ii) based on prior analysis of the one or more first frames, and (iii) different than the one or more first frames; wherein the second analytic information is (i) about the content of the one or more second frames and describes the content of the one or more second frames, (ii) based on prior analysis of the one or more second frames, and (iii) different than the one or more second frames; wherein the one or more second frames are different than the one or more first frames; means for performing a first set of one or more analysis operations on the first analytic information and performing a second set of one or more analysis operations on the second analytic information; means for constructing event information about the content of the one or more first and second frames based on both the first analysis information and the second analytic information; wherein the second analytic information differs from the first analytic information; means for storing the event information in a data repository. - View Dependent Claims (26)
-
-
27. A method performed by one or more processors for analyzing video data that represents one or more video streams, the method comprising the steps of:
-
reading, from a memory, video data that includes first video data and second video data; wherein the first video data includes first analytic information about one or more first frames that correspond to a first video stream; wherein the first analytic information is (i) about the content of the one or more first frames and describes the content of the one or more first frames, (ii) based on prior analysis of the one or more first frames, and (iii) different than the one or more first frames; wherein the second video data includes second analytic information about one or more second frames that correspond to a second video stream; wherein the second analytic information is (i) about the content of the one or more second frames and describes the content of the one or more second frames, (ii) based on prior analysis of the one or more second frames, and (iii) different than the one or more second frames; performing a first set of one or more analysis operations on the first analytic information; performing a second set of one or more analysis operations on the second analytic information; constructing event information about the content of the one or more first and second frames based on the first set of one or more analysis operations on the first analytic information and the second set of one or more analysis operations on the second analytic information; wherein the second analytic information differs from the first analytic information; wherein the steps are performed by the one or more computing devices processors. - View Dependent Claims (28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46)
-
Specification