The present disclosure relates to analytics pipeline management systems.
Systems that perform video analytics may use computer-based pattern recognition techniques to detect objects or activities depicted in video. For example, some video analytics systems use so-called “artificial intelligence,” such as systems that apply object detection models that have been trained using artificial neural networks, to perform video analytics functionality. Computing devices that perform video analytics often have a graphic processing unit (GPU) to facilitate video processing.
A more complete understanding of the present disclosure, and the attendant advantages and features thereof, may be more readily understood by reference to the following detailed description when considered in conjunction with the accompanying drawings wherein:
The present disclosure relates to systems in which a pipeline management platform may be used to develop, deploy and/or manage analytics functionality, such as video and/or audio analytics functionality. Some embodiments may facilitate users adding and/or modifying video and/or audio analytics functionality performed in their premises monitoring systems.
With reference to
In various embodiments, a pipeline 2 may be created and/or modified using a graphical pipeline editor. The graphical pipeline editor may include a user interface in which a visual representation of a pipeline 2 is rendered. The user interface of the graphical pipeline editor may also facilitate a user adding nodes 4 by dragging-and-dropping the nodes 4 into a pipeline 2. The user may also remove nodes 4 and/or rearrange nodes 4 using the user interface. Furthermore, the user may define or change various parameters for the nodes 4. In other embodiments, nodes 4 can be created and/or modified using a text-based pipeline editor. According to various embodiments, a pipeline editor may be provided in the customer's pipeline management portal 30 (
With reference to
In a nonlimiting example, media device 20 may refer to various media devices 20a, 20b, 20c (collectively, media devices 20). Media device 20a may be configured for flight and/or surveillance, such as unmanned aerial vehicles (UAVs) (e.g., UAVs comprising cameras and sensors). Media device 20b may be configured as an autonomous humanoid robot (e.g., a robot resembling a human body in shape and configured for predetermined functional purposes, such as interacting with humans, human tools and environments) and may include surveillance cameras, and other devices that collect video and audio data. Media device 20c may be a video camera (which may include one or more sensors) configured to detect motion and/or captures video of events such as thermal imaging cameras.
Portal device 22 may comprise a personal computer, a phone, such as a mobile phone, a smart phone, a client (such as a thin client configurable to communicate with a server), etc. While portal device 22 is shown as being part of premises monitoring system 12, in one or more embodiments, portal device 22 may be separate from or not part of the premises monitoring system 12. Portal device 22 may be configured to perform one or more actions associated with a customer's pipeline management portal 30. For example, an information technology (IT) administrator or other authorize person may use the portal device 22 to access the customer's pipeline management portal 30 to create, modify, and/or control pipelines 2 associated with the premises monitoring system 12. Actions associated with the customer's pipeline management portal 30 may include providing an interface usable to create and modify pipeline deployment(s) running on a premises analytics device 24, requesting and receiving pipelines 2 such as pipelines 2 that are compatible with premises analytics device 24, obtaining a user selection of pipelines 2, transmitting a request of the user selected pipelines 2, etc.
Further, in some embodiments, portal device 22 (e.g., user personal computer) may be configured to provide a user with a customer's pipeline management portal 30 through a web browser or dedicated software application. The customer's pipeline management portal 30 allows a user to create and/or modify pipeline deployment(s) running on premises analytics devices 24. For example, a user (e.g., customer) may request to add people counting functionality and purchase a node 4 or pipeline 2 that incorporates such functionality. The user can also use the customer's pipeline management portal 30 to browse the pipeline deployments that are available based on existing hardware capabilities of the premises analytics device 24 and/or premises monitoring system 12. Additionally, the user can use the customer's pipeline management portal 30 to select or edit various parameters associated with nodes 4 or pipelines 2.
Premises analytics device 24 may be configured to perform functions associated with an analytics engine 32 such as receiving data from media devices 20, performing video and/or audio analytics on the data received from media devices 20 using pipeline(s) 2 to determine whether various events have occurred, Network 26 may be configured to provide communication, e.g., wired and/or wireless communication, between two or more components associated with premises monitoring system 12, e.g., media devices 20, portal device 22, and premises analytics device 24. For example, network 26 may be an IP network that may be established as a WAN and/or LAN, among other IP-based networks, etc. Although network 26 is shown as an intermediate network between components and/or devices of premises monitoring system 12, any component or device may communicate directly with any other component or device of premises monitoring system 12. According to various embodiments, the premises monitoring system 12 may be, for example, a premises security system and/or a premises automation system.
In some embodiments, premises monitoring system 12 (via one or more of media devices 20, premises analytics device 24, and network 26) may be configured to monitor doors, driveway gates, windows, and other openings, or to control lights, appliances, HVAC systems (e.g., temperature, cooling, heating, exhaust fans, etc.), access control, door locks, lawn sprinklers, etc. For example, premises analytics device 24 may be use media captured by media device 20 to detect motion and other alarm conditions, such as glass breaking, fire, smoke, temperature chemical compositions, water, carbon monoxide, or other hazardous conditions. In some other embodiments, premises monitoring system 12 may be configured to perform functions such as lifestyle and life safety functions.
In one or more embodiments, premises monitoring system 12 may be located at a premises, such as home. However, the term “premises” as used herein is not limited to a home and may refer to an office suite, industrial building, warehouse, or any other indoor or outdoor area where the functions provided by premises monitoring system 12 are desired and may include any associated vehicles, such as boats, recreational vehicles (RVs), etc., that may also be monitored as part of premises monitoring system 12.
Computing environment 14 comprises pipeline management platform 42 for performing one or more functions, such as providing an electronic marketplace to purchase and/or license pipelines 2 and/or nodes 4, receiving requests to determine available and/or compatible pipelines 2, determining available and/or compatible pipelines 2, transmitting a list including available and/or compatible pipelines 2, managing pipeline deployment(s) such as requesting and receiving pipeline deployments, managing customer subscription tiers, communicating with third-party entities, etc.
In particular, in some other embodiments, pipeline management platform 42 may be configured to manage a pipeline marketplace and/or determine what pipelines 2 are available for users of the pipeline marketplace based on one or more conditions or parameters, such as hardware at the user's premises, existing pipeline deployment(s) already running on premises analytics device 24, pipeline marketplace subscription service, etc. Further, pipeline management platform 42 may also be configured to communicate with premises analytics device 24 and/or third-party computing environment 16 to facilitate pipeline deployments being sent from third-party computing environment 16 to premises analytics devices 24 (e.g., indirectly via a server).
Computing environment 14 may further comprise rules engine 44, cloud analytics engine 46, computing device 48, and data store 50. Rules engine 44 may be configured to execute various actions in response to various conditions, such as transmitting a notification to a customer or first responders in response to receiving an alarm event indication, such as an indication that smoke or a break-in is detected the premises associated with premises monitoring system 12. Cloud analytics engine 46 may be configured to perform video and/or audio analytics (e.g., one or more pipelines 2) on data provided from premises analytics device 24. Computing device 48 may be configured to perform pipeline management portal 52 functions, such as providing an interface (e.g., by an operator associated with remoting monitoring of premise monitoring system 12) to create, modify, and deploy pipelines 2. Data store 50 (e.g., a pipeline repository) may be configured to store data such as data associated with capabilities of premises analytics devices 24, pipeline deployments being used on premises analytics devices 24, etc.
Rules engine 44, cloud analytics engine 46, and data store 50 may be comprised in one or more servers of computing environment 14, as described with respect to
Third-party computing environment 16 may comprise pipeline management and deployment platform 62 that is configured to perform one or more functions described herein, such as receiving a request to deploy pipelines 2, managing conversion of pipelines 2 into pipeline deployments, transmitting pipeline deployments, etc. Third-party computing environment 16 may provide an application programming interface (API) to facilitate communication with the computing environment 14 and/or other systems. Third-party computing environment 16 may further comprise third-party data store 64 (e.g., a pipeline repository) configured to store data associated with pipelines 2 and deployments. Third-party computing environment may be provided by one or more third-party servers (not shown) that may have the same or similar hardware as servers shown in
In one or more embodiments, premises monitoring system 12, computing environment 14 and third-party computing environment 16 may be configured to communicate with each other via one or more communication links and/or protocols via network 18. In particular, network 18 may be configured to provide direct and/or indirect communication, e.g., wired and/or wireless communication, between any two or more components of system 10, e.g., premises monitoring system 12, computing environment 14, and third-party computing environment 16, etc. For example, network 18 may be an internet protocol (IP) network that may be established as a wide area network (WAN) and/or local area network (LAN), among other IP-based networks, etc. Although network 18 is shown as an intermediate network between components/devices of system 10, any component or device may communicate directly with any other component or device of system 10.
In some other embodiments, as more computing resources are available to the cloud analytics engine 46 than the analytics engine 32 of premises analytics device 24, premises analytics device 24 may delegate the performing of at least some analytics (e.g., one or more nodes 4 and/or pipelines 2) to the cloud analytics engine 46.
Referring now to
Premises analytics device 24 may further include software 90 stored internally in, for example, memory 76 or stored in external memory (e.g., database, storage array, network storage device, etc.) accessible by premises analytics device 24 via an external connection. The software 90 may include analytics engine 32. Software 90 (and/or analytics engine 32) may be executable by the processing circuitry 72. The processing circuitry 72 may be configured to control any of the methods and/or processes described herein and/or to cause such methods, and/or processes to be performed, e.g., by premises analytics device 24. Processor 74 corresponds to one or more processors 74 for performing premises analytics device 24 functions described herein. The memory 76 is configured to store data, programmatic software code and/or other information described herein.
In some embodiments, the software 90 may include instructions that, when executed by the processor 74 and/or processing circuitry 72, causes the processor 74 and/or processing circuitry 72 to perform the processes described herein with respect to premises analytics device 24. For example, processing circuitry 72 of the premises analytics device 24 may perform one or more analytics engine 32 functions.
Communication interface 80 may include at least a radio interface configured to set up and maintain a wireless connection with network 18 and/or 26. The radio interface may be formed as, or may include, for example, one or more radio frequency (RF) transmitters, one or more RF receivers, and/or one or more RF transceivers. Communication interface 80 may include a wired communication interface, such as Ethernet, configured to set up and maintain a wired connection with network 18 and/or 26.
Referring now to
Server 40 may further include software 126 stored internally in, for example, memory 106 or stored in external memory (e.g., database, storage array, network storage device, etc.) accessible by server 40 via an external connection. The software 126 may include pipeline management platform 42. Software 126 (and/or pipeline management platform 42) may be executable by the processing circuitry 102. The processing circuitry 102 may be configured to control any of the methods and/or processes described herein and/or to cause such methods, and/or processes to be performed, e.g., by server 40. Processor 104 corresponds to one or more processors 104 for performing server 40 functions described herein. The memory 106 is configured to store data, programmatic software code and/or other information described herein.
In some embodiments, the software 126 may include instructions that, when executed by the processor 104 and/or processing circuitry 102, causes the processor 104 and/or processing circuitry 102 to perform the processes described herein with respect to server 40. For example, processing circuitry 102 may perform one or more pipeline management platform 42 functions.
In one or more embodiments, the functionality of one or more of rules engine 44 and/or cloud analytics engine 46 and/or pipeline management platform 42 may be performed by server 40 or may be distributed across a plurality of servers 40.
Communication interface 110 may include at least a radio interface configured to set up and maintain a wireless connection with network 18 and/or 26. The radio interface may be formed as, or may include, for example, one or more RF transmitters, one or more RF receivers, and/or one or more RF transceivers. Communication interface 110 may include a wired communication interface, such as an Ethernet interface, configured to set up and maintain a wired connection with network 18 and/or 26.
Starting at Block S100, pipeline management platform 42 is configured to receive, from the portal device 22 of the premises monitoring system 12, a first request for a list of compatible pipelines 2 for the premises analytics device 24 of the premises monitoring system 12. Pipeline management platform 42 is further configured to identify (Block S102) a plurality of pipelines 2 that are compatible with the premises analytics device 24 based on a parameter associated with the premises analytics device 24, and cause transmission (Block S104) of the list of compatible pipelines 2 to the portal device 22, where the list of compatible pipelines 2 references the plurality of pipelines 2 determined to be compatible with the premises analytics device 24.
Pipeline management platform 42 is further configured to receive (Block S106), from the portal device 22, a second request to deploy a user selected pipeline 2 of the plurality of pipelines 2 referenced in the list of compatible pipelines 2, cause transmission (Block S108) of a command, to a third-party system, to obtain a pipeline deployment based on the user selected pipeline 2, and receive (Block S110), from the third-party system, the pipeline deployment based on the user selected pipeline. In addition, pipeline management platform 42 is configured to cause transmission (Block S112) of the pipeline deployment to the premises analytics device 24.
In some embodiments, at least one pipeline 2 is a video processing pipeline that comprises a plurality of nodes 4, and where at least one node 4 of the plurality of nodes 4 is configured to detect an object depicted in video.
In some other embodiments, the first request that is received is sent via a customer portal associated with the premises monitoring system 12.
In some embodiments, the parameter includes one or more of a hardware parameter of the premises analytics device 24, information for another pipeline deployment already running on the premises analytics device 24, or a subscription tier associated with the premises monitoring system 12.
In some other embodiments, the method further includes generating the list of compatible pipelines 2.
In some embodiments, the command to obtain the pipeline deployment comprises an application programming interface (API) call.
In some embodiments, the parameter is associated with a premises analytics device 24.
In some other embodiments, the parameter comprises one or more of a hardware parameter of one or both of the premises monitoring system 12 and the premises analytics device 24, where a pipeline deployment is already running on the premises analytics device 24. A subscription tier is associated with one or both of the premises monitoring system 12 and the premises analytics device 24.
In some embodiments, the method further comprises receiving, from customer's pipeline management portal 30, a request to provide the one or more pipelines 2 compatible with the premises monitoring system 12.
In some other embodiments, making the one or more pipelines 2 available comprises transmitting one or more pipelines 2 to the pipeline management portal 52.
In some embodiments, the method further comprises receiving, from the pipeline management portal 52, a request to deploy one or more user selected pipelines 2 and transmitting the request, to third-party computing environment 16, to deploy the user selected pipelines 2.
In some other embodiments, the method further comprises receiving a pipeline deployment configuration based on the request to deploy the user selected pipelines 2.
In some embodiments, the method further comprises triggering an analytics engine 32 or 46 to perform analytics using the one or more pipelines 2 in the pipeline deployment.
In some other embodiments, the triggering of the analytics engine 32 or 46 to perform analytics includes relaying the pipeline deployment to the analytics engine 32 or 46, where the analytics engine 32 or 46 is one of an analytics engine 32 and a cloud analytics engine 46.
In some embodiments, the determination of the one or more pipelines 2 that are compatible comprises one or both of: adding one or both of an audio analytics functionality and a video analytics functionality to the premises monitoring system 12, where the added audio and video analytics functionalities are compatible with the premises monitoring system 12, and modifying of one or both of an existing audio analytics functionality and an existing video analytics functionality of the premises monitoring system 12. The modified audio and video analytics functionalities are compatible with the premises monitoring system 12.
Having described the general process flow of arrangements of the disclosure and having provided examples of hardware and software arrangements for implementing the processes and functions of the disclosure, the sections below provide details and examples of arrangements for performing one or more actions associated with an analytics pipeline marketplace provided by, for example, pipeline management platform 42 that manages one or more pipelines 2 associated with premises monitoring system 12.
At step S300, portal device 22 (comprised in premises monitoring system 12) transmits a request for a list of compatible pipelines 2 to pipeline management platform 42 of computing environment 14. At step S302, pipeline management platform 42 identifies compatible pipelines 2 (e.g., pipelines 2 that meet a condition, based on a parameter, compatible with predetermined hardware of, for example, premises analytics device 24, etc.). For example, pipeline management platform 42 may determine that a subset of available pipelines 2 are compatible with premises analytics device 24 and/or accessible by customer of premises monitoring system 12 (e.g., customer may subscribe to only a subset of pipelines 2). Continuing the example, pipeline management platform 42 may determine that at least one pipeline 2 is not compatible with and/or accessible by premises analytics device 24 such as if the pipeline 2 requires more computing resources than are available at premises analytics device 24, or the user has not paid for or subscribed to access the pipeline 2. Hence, pipeline management platform 42, in one or more embodiments, may generate a list of compatible pipelines 2.
At step 304, pipeline management platform 42 sends the list of pipelines 2 to portal device 22 (e.g., which can be displayed in the customer's pipeline management portal 30). At step S306, portal device 22 obtains user selection of pipeline(s) 2, and at step S308, portal device 22 requests selected pipeline(s) 2 to pipeline management platform 42. At step S310, pipeline management platform 42 transmits a request to pipeline management and deployment platform 62 of third-party computing environment 16 to deploy pipeline(s) 2. At step S312, pipeline management and deployment platform 62 generates pipeline deployment, and at step 314, transmits a pipeline deployment to pipeline management platform 42 of computing environment 14. At step S316, pipeline management platform 42 transmits the pipeline deployment to premises analytics device 24 (comprised in premises monitoring system 12). At step S318, premises analytics device 24 performs analytics using pipeline(s) 2 (e.g., requested at step S308) in the pipeline deployment.
Referring to step S320, pipeline management platform 42 transmits the pipeline deployment to cloud analytics engine 46 (comprised in computing environment 14). At step S322, cloud analytics engine 46 performs analytics using pipeline(s) 2 (e.g., requested at step S308) and/or the pipeline deployment.
Hence, in one or more embodiments, pipeline management platform 42 of computing environment 14 is advantageously configured to manage user requested pipeline deployments to, for example, verify whether the user has access to certain pipelines 2 and/or verify premises analytics device 24 can implement the requested pipeline(s) 2, thereby facilitating the deployment of compatible pipeline(s) 2 for in premises monitoring system 12.
The concepts described herein may be embodied as a method, data processing system, computer program product and/or computer storage media storing an executable computer program. Accordingly, the concepts described herein may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Any process, step, action and/or functionality described herein may be performed by, and/or associated to, a corresponding module and/or unit, which may be implemented in software and/or firmware and/or hardware. Furthermore, the disclosure may take the form of a computer program product on a tangible computer usable storage medium having computer program code embodied in the medium that can be executed by a computer. Any suitable tangible computer readable medium may be utilized including hard disks, CD-ROMs, electronic storage devices, optical storage devices, or magnetic storage devices.
Some embodiments are described herein with reference to flowchart illustrations and/or block diagrams of methods, systems and computer program products. Each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions.
These computer program instructions may be provided to a processor of a general purpose computer (to thereby create a special purpose computer), special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions and/or acts specified in the flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer readable memory or storage medium that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer readable memory produce an article of manufacture including instruction means which implement the function and/or act specified in the flowchart and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions and/or acts specified in the flowchart and/or block diagram block or blocks.
The functions and/or acts noted in the blocks may occur out of the order noted in the operational illustrations. For example, two blocks shown in succession may in fact be executed substantially concurrently or the blocks may sometimes be executed in the reverse order, depending upon the functionality/acts involved. Although some of the diagrams include arrows on communication paths to show a primary direction of communication, it is to be understood that communication may occur in the opposite direction to the depicted mows.
Computer program code for carrying out operations of the concepts described herein may be written in an object-oriented programming language such as Python, Java® or C++. However, the computer program code for carrying out operations of the disclosure may also be written in conventional procedural programming languages, such as the “C” programming language. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer. In the latter scenario, the remote computer may be connected to the user's computer through a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
Many different embodiments have been disclosed herein, in connection with the above description and the drawings. It would be unduly repetitious and obfuscating to literally describe and illustrate every combination and subcombination of these embodiments. Accordingly, all embodiments can be combined in any way and/or combination, and the present specification, including the drawings, shall be construed to constitute a complete written description of all combinations and subcombinations of the embodiments described herein, and of the manner and process of making and using them, and shall support claims to any such combination or subcombination.
In addition, unless mention was made above to the contrary, the accompanying drawings are not to scale. A variety of modifications and variations are possible in light of the above teachings without departing from the scope and spirit of the present disclosure.
This application is related to and claims priority to U.S. Provisional Patent Application Ser. No. 63/477,407, filed Dec. 28, 2022, entitled ANALYTICS PIPELINE MANAGEMENT SYSTEMS FOR LOCAL ANALYTICS DEVICES AND REMOTE SERVER ANALYTICS ENGINES, the entirety of which is incorporated herein by reference.
Number | Name | Date | Kind |
---|---|---|---|
8239705 | Qiu et al. | Aug 2012 | B2 |
8989006 | Jost et al. | Mar 2015 | B2 |
9548887 | Ashtaputre et al. | Jan 2017 | B2 |
9760458 | Keremane et al. | Sep 2017 | B2 |
10838833 | Jibaja et al. | Nov 2020 | B1 |
11158177 | ElHattab | Oct 2021 | B1 |
11263095 | Jibaja et al. | Mar 2022 | B1 |
11501881 | Patil | Nov 2022 | B2 |
11616727 | Barton | Mar 2023 | B2 |
20050207622 | Haupt | Sep 2005 | A1 |
20160357648 | Keremane et al. | Dec 2016 | A1 |
20180012463 | Chaudhry | Jan 2018 | A1 |
20210258564 | Newman | Aug 2021 | A1 |
Number | Date | Country |
---|---|---|
2613477 | Jul 2013 | EP |
2613477 | Aug 2018 | EP |
2014145097 | Sep 2014 | WO |
Number | Date | Country | |
---|---|---|---|
63477407 | Dec 2022 | US |