Abstract:
A method of dynamically controlling the use of a video analysis program in a video surveillance system having a plurality of video sources connected to a network comprising: providing a video analysis program to the video surveillance system, allowing the video analysis program to be used with a predetermined number of video sources, and allowing the use of the video analysis program to be transferred from one of the plurality of video sources to another of the plurality of video sources provided that the total number of video sources using the video analysis program at one time is less than the predetermined number of video sources.

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
     N/A 
     STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT 
     N/A 
     BACKGROUND OF THE INVENTION 
     This invention relates generally to surveillance systems and, in particular, to a method and apparatus for dynamically controlling a video surveillance system. 
     Today&#39;s video surveillance systems have started utilizing video analysis software to detect various actions in the video images captured by the cameras, such as directional flow, people counting and numerous other analytics. While these analytics can be useful in detecting various occurrences in the video images, they can be costly to install in each of the camera locations. Complex systems can include hundreds of cameras and hence require a large expenditure to provide the desired analysis capability. Accordingly, there has arisen a need in the industry for efficiently and economically providing the analytic capabilities demanded by today&#39;s surveillance systems. 
     SUMMARY OF THE INVENTION 
     In accordance with the present invention there is provided a method of dynamically controlling the use of a video analysis program in a video surveillance system having a plurality of video sources connected to a network. The method comprises: providing a video analysis program to the video surveillance system, allowing the video analysis program to be used with a predetermined number of video sources, and allowing the use of the video analysis program to be transferred from one of the plurality of video sources to another of the plurality of video sources provided that the total number of video sources using the video analysis program at one time is less than the predetermined number of video sources. 
     In another aspect of the present invention there is provided a computer readable medium containing instructions that, when executed by a computer, cause the computer to perform the method described hereinabove. 
     The present invention provides a licensing control function that allows a user to schedule and reassign video analysis modules to different pieces of video equipment. For example, a user may choose to license a video analysis module, such as directional flow, people counting, missing object, and so forth, by taking ten licenses. The user may then install the software in the system either at one central location or preferably at each equipment site, such as the encoders associated with video cameras at different locations monitored by the video surveillance system. The system may have more than ten encoders, but the user can reassign the use or schedule the use among more than the number of licenses provided that the use at any one time does not exceed the number of licenses, thereby facilitating use and reducing the overall cost of the surveillance system. Other advantages and applications of the present invention will be made apparent by the following detailed description of the preferred embodiment of the invention. 
    
    
     
       BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS 
         FIG. 1  is a block diagram of a video surveillance system utilizing the present invention. 
         FIG. 2  is a block diagram of an exemplary video source in the video surveillance system shown in  FIG. 1 . 
         FIG. 3  is a block diagram of an exemplary workstation in the video surveillance system shown in  FIG. 1 . 
         FIG. 4  is a flowchart illustrating one embodiment of the process of the present invention. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     Referring to  FIG. 1 , a video surveillance system  10  has a network  12  which can be a closed network, local area network, or wide area network, such as the Internet. A plurality of video sources  14 ,  16 ,  18 , and  20 , which can be, for example, video cameras, digital video recorders or servers, are connected to network  12  to provide real-time video streams, such as MPEG video streams. Workstation  22 , which can be, for example, a control point in surveillance system  10 , such as a system manager, a personal computer or a user logged into surveillance system  10  by means of a laptop computer, is connected to network  12 . Sources  14 ,  16 ,  18 , and  20  provide MPEG video streams to workstation  22  via network  12 . 
     An exemplary video source is illustrated in  FIG. 2  in block diagram form. Camera  24  provides its output to encoder  26 , which contains a processor and memory. Encoder  26  provides an MPEG video stream to modem  28  for transmitting to network  12 . It is to be understood that although camera  24 , encoder  26 , and modem  28  have been shown as separate devices, their functions can be provided in a single device or in two devices rather than three separate devices as illustrated. 
     With reference to  FIG. 3 , an exemplary workstation of the present invention is shown in block diagram form. Workstation  22  has a processor  30  which is connected to input buffer  32 , ROM  34 , RAM  36 , display  38 , disk drive  40  and user input device  42 . 
     Processor  30  can be a central processing unit or a digital signal processor or both. User input device  42  can be a keyboard, mouse, controller, or other suitable input device. Processor  30  implements algorithms and programs that are stored in ROM  34  or disk drive  40  in response to user input from user input device  42  and provides output signals to display  38 . Modem  44  is connected to network  12  and receives the MPEG video streams from sources  14 ,  16 ,  18 , and  20  in  FIG. 1 . Modem  44  provides the MPEG video streams to input buffer  32 . The video stream data can be stored in a partition of disk drive  40  according to the method of the present invention. Input port  45 , which can be, for example, a USB or FireWire port, can also provide video streams to input buffer  32 . Alternatively, processor  30  can have its own input buffers, or a portion of RAM  36  can be used as an input buffer. 
     It should be understood that a computer, as used herein, can have a single processor or multiple processors, which can operate in parallel and/or not in parallel. A computer also refers to two or more computers connected together via a network for transmitting or receiving information between the computers and includes a distributed computer system for processing information via computers linked by a network. 
       FIG. 4  is a flowchart illustrating one embodiment of the process of the present invention. At step  102  of process  100  a video analysis program, such as directional flow, people counting, missing object or other analytic, is provided. Preferably, this step is implemented by storing a copy of the analytic module in each source, i.e., source  14 ,  16 ,  18 , and  20  in  FIG. 1 . In the case where the source is a camera, then the analytic module can be stored in encoder  26 . Alternatively, the analytic module could be stored at a central location, such as workstation  22 , and then downloaded to the appropriate source at run time. It should be noted that, although the discussion refers to a single analytic module, the process of the present invention can be utilized with a plurality of analytic modules. Step  104  is part of the licensing manager function and sets up the allowed number of licenses that can be used in the system. The predetermined number of licenses can be changed later by the user by purchasing additional licenses for the analytic module of interest. For the sake of clarity, process  100  has been split into two branches at step  104 , i.e., a first branch starting with step  106  and a second branch starting with step  116 . Both processes can be implemented for example in workstation  22 . 
     At step  106  of the first branch, the program receives a request from a user to employ the analytic program at another source in the video surveillance system. Step  108  determines the number of current uses of the analytic, and step  110  determines whether the current number of uses is less than the number of licensed uses. If the current number of uses plus the requested use does not exceed the number of licensed uses, then the request is allowed in step  114 . If the current number of uses plus the requested would exceed the number of licensed uses, then the request is denied in step  112 . 
     At step  116  of the second branch, the program receives a request from a user to schedule the use of the analytic program at another source in the video surveillance system at a future time. Step  118  determines the number of current uses of the analytic that are scheduled for use during the time period requested by the user, and step  120  determines whether the scheduled number of uses during the requested time period is less than the number of licensed uses. If the current number of scheduled uses plus the requested use does not exceed the number of licensed uses, then the request is allowed in step  124 . If the current number of uses plus the requested would exceed the number of licensed uses, then the request is denied in step  122 . 
     Preferably, the analytics are stored in the encoders associated with the cameras in the system. A software license is taken through a system manager location or workstation to select the analytic module licensed and the number of licenses. The use of the analytic is then assigned by the workstation to a particular encoder and can be reassigned as many times as desired. The use of the analytic can be scheduled on different encoders at different times. At run time, the licensed/assigned encoder tells the workstation what user interface controls are required to configure the analytic, such as by providing a file, which can be an XML file. 
     The dynamic control program and the video analytic program can be stored separately or together on a computer readable medium, which refers to any storage device used for storing data accessible by a computer. Examples of a computer readable medium include a magnetic hard disk, a floppy disk, an optical disk, such as a CD-ROM or a DVD, a magnetic tape, a memory chip, and a carrier wave used to carry computer readable electronic data, such as those used in transmitting and receiving e-mail or in accessing a network. 
     It is to be understood that variations and modifications of the present invention can be made without departing from the scope of the invention. It is also to be understood that the scope of the invention is not to be interpreted as limited to the specific embodiments disclosed herein, but only in accordance with the appended claims when read in light of the foregoing disclosure.