WO2005081127A2 - System and method for generating a viewable video index for low bandwidth applications - Google Patents

System and method for generating a viewable video index for low bandwidth applications Download PDF

Info

Publication number
WO2005081127A2
WO2005081127A2 PCT/EP2005/050757 EP2005050757W WO2005081127A2 WO 2005081127 A2 WO2005081127 A2 WO 2005081127A2 EP 2005050757 W EP2005050757 W EP 2005050757W WO 2005081127 A2 WO2005081127 A2 WO 2005081127A2
Authority
WO
WIPO (PCT)
Prior art keywords
video
viewable
index
video data
generating
Prior art date
Application number
PCT/EP2005/050757
Other languages
French (fr)
Other versions
WO2005081127A3 (en
Inventor
Lisa Marie Brown
Jonathan Hudson Connell
Raymond Anderson Cooke
Arun Hampapur
Sharathchandra Umapathirao Pankanti
Andrew William Senior
Ying-Li Tian
Original Assignee
International Business Machines Corporation
Ibm United Kingdom Limited
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corporation, Ibm United Kingdom Limited filed Critical International Business Machines Corporation
Publication of WO2005081127A2 publication Critical patent/WO2005081127A2/en
Publication of WO2005081127A3 publication Critical patent/WO2005081127A3/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/18Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
    • H04N7/181Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast for receiving images from a plurality of remote sources
    • GPHYSICS
    • G08SIGNALLING
    • G08BSIGNALLING OR CALLING SYSTEMS; ORDER TELEGRAPHS; ALARM SYSTEMS
    • G08B13/00Burglar, theft or intruder alarms
    • G08B13/18Actuation by interference with heat, light, or radiation of shorter wavelength; Actuation by intruding sources of heat, light, or radiation of shorter wavelength
    • G08B13/189Actuation by interference with heat, light, or radiation of shorter wavelength; Actuation by intruding sources of heat, light, or radiation of shorter wavelength using passive radiation detection systems
    • G08B13/194Actuation by interference with heat, light, or radiation of shorter wavelength; Actuation by intruding sources of heat, light, or radiation of shorter wavelength using passive radiation detection systems using image scanning and comparing systems
    • G08B13/196Actuation by interference with heat, light, or radiation of shorter wavelength; Actuation by intruding sources of heat, light, or radiation of shorter wavelength using passive radiation detection systems using image scanning and comparing systems using television cameras
    • G08B13/19602Image analysis to detect motion of the intruder, e.g. by frame subtraction
    • G08B13/19604Image analysis to detect motion of the intruder, e.g. by frame subtraction involving reference image or background adaptation with time to compensate for changing conditions, e.g. reference image update on detection of light level change
    • GPHYSICS
    • G08SIGNALLING
    • G08BSIGNALLING OR CALLING SYSTEMS; ORDER TELEGRAPHS; ALARM SYSTEMS
    • G08B13/00Burglar, theft or intruder alarms
    • G08B13/18Actuation by interference with heat, light, or radiation of shorter wavelength; Actuation by intruding sources of heat, light, or radiation of shorter wavelength
    • G08B13/189Actuation by interference with heat, light, or radiation of shorter wavelength; Actuation by intruding sources of heat, light, or radiation of shorter wavelength using passive radiation detection systems
    • G08B13/194Actuation by interference with heat, light, or radiation of shorter wavelength; Actuation by intruding sources of heat, light, or radiation of shorter wavelength using passive radiation detection systems using image scanning and comparing systems
    • G08B13/196Actuation by interference with heat, light, or radiation of shorter wavelength; Actuation by intruding sources of heat, light, or radiation of shorter wavelength using passive radiation detection systems using image scanning and comparing systems using television cameras
    • G08B13/19602Image analysis to detect motion of the intruder, e.g. by frame subtraction
    • G08B13/19608Tracking movement of a target, e.g. by detecting an object predefined as a target, using target direction and or velocity to predict its new position
    • GPHYSICS
    • G08SIGNALLING
    • G08BSIGNALLING OR CALLING SYSTEMS; ORDER TELEGRAPHS; ALARM SYSTEMS
    • G08B13/00Burglar, theft or intruder alarms
    • G08B13/18Actuation by interference with heat, light, or radiation of shorter wavelength; Actuation by intruding sources of heat, light, or radiation of shorter wavelength
    • G08B13/189Actuation by interference with heat, light, or radiation of shorter wavelength; Actuation by intruding sources of heat, light, or radiation of shorter wavelength using passive radiation detection systems
    • G08B13/194Actuation by interference with heat, light, or radiation of shorter wavelength; Actuation by intruding sources of heat, light, or radiation of shorter wavelength using passive radiation detection systems using image scanning and comparing systems
    • G08B13/196Actuation by interference with heat, light, or radiation of shorter wavelength; Actuation by intruding sources of heat, light, or radiation of shorter wavelength using passive radiation detection systems using image scanning and comparing systems using television cameras
    • G08B13/19665Details related to the storage of video surveillance data
    • G08B13/19671Addition of non-video data, i.e. metadata, to video stream
    • G08B13/19673Addition of time stamp, i.e. time metadata, to video stream
    • GPHYSICS
    • G08SIGNALLING
    • G08BSIGNALLING OR CALLING SYSTEMS; ORDER TELEGRAPHS; ALARM SYSTEMS
    • G08B13/00Burglar, theft or intruder alarms
    • G08B13/18Actuation by interference with heat, light, or radiation of shorter wavelength; Actuation by intruding sources of heat, light, or radiation of shorter wavelength
    • G08B13/189Actuation by interference with heat, light, or radiation of shorter wavelength; Actuation by intruding sources of heat, light, or radiation of shorter wavelength using passive radiation detection systems
    • G08B13/194Actuation by interference with heat, light, or radiation of shorter wavelength; Actuation by intruding sources of heat, light, or radiation of shorter wavelength using passive radiation detection systems using image scanning and comparing systems
    • G08B13/196Actuation by interference with heat, light, or radiation of shorter wavelength; Actuation by intruding sources of heat, light, or radiation of shorter wavelength using passive radiation detection systems using image scanning and comparing systems using television cameras
    • G08B13/19678User interface
    • G08B13/19684Portable terminal, e.g. mobile phone, used for viewing video remotely
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding

Definitions

  • the present invention is generally directed to the fields of automatic video analysis and video compression. More specifically, the present invention is directed to a mechanism for performing automatic video analysis and video compression on video data provided by video input devices in order to generate representations of the video data using a low bandwidth data stream.
  • Video compression and automatic video analysis for tracking of moving objects are both very active areas of research. However, these have been disconnected areas of research. Video compression deals with minimizing the size of the video data in the video stream while video analysis is concerned with determining the content of video data.
  • the index data will alert the monitoring user to the presence of an interesting activity in the scene.
  • the user needs to view the corresponding video to gain a complete understanding of the activity. This feature is very essential since most automatic video analysis systems have errors in the event detection
  • a typical video index may consist of a temporal reference into the video stream and a descriptor, where the descriptor may be a semantic token (e.g., the presence of a human face and cardinality) or a feature descriptor of the video (e.g., color histogram of the dominate objects).
  • the implicit assumption of video indexing systems is that the actual video data will be available to the monitoring user when they choose to use the index to review the actual video. More information about such video analysis systems is available in the Handbook of Video Databases. Design and Applications by Fruth and Marques, CRC Press, 2003.
  • U.S. Patent No. 6,366,269 issued to Boreczky et al., describes a media file browser where the file is accessed based on a user selected feature. For example, a user may choose to jump to a point in the media file where there is an audio transition from music to speech or a visual transition from one scene to the other.
  • This system also requires both the index and the original video to allow a user to browse the video content based on the index.
  • U.S. Patent No.6,560,281 issued to Black et al., is directed to a system which can analyze video data from a presentation, cluster frames into segments corresponding to each overhead slide used in the presentation, recognize gestures by the speaker in the video and use this information to generate a condensed version of the presentation.
  • the condensed version of the video data can be used independently, i.e. without using the original video.
  • the condensed version of the video data is not a complete representation of the original video.
  • U.S. Patent No.6,271,892 issued to Gibbon et al., describes a system that extracts key frames from video data and associates it with corresponding closed captioning text. This information may be rendered in a variety of ways, e.g., a page with printed key frames with associated closed captioning, to give a summary of the video. This system is in principle similar to the Black system discussed above and suffers the same drawback that the summary of the video is not a complete representation of the video data.
  • U.S. Patent No. 5,969,755 issued to Courtney, describes a video surveillance system which incorporates object detection and tracking.
  • the Courtney system generates a symbolic representation of the video based on the object tracking information.
  • the Courtney system also uses the object tracking information to infer events in the video such as appearance/disappearance, deposit/removal, entrance/exit, etc.
  • the Courtney system uses these event markers to retrieve relevant bits of the video for the user.
  • the key drawback of the Courtney system, and systems like it, is that it requires both the index information, i.e. the event marker information, and the original video in order for the user to be able to make an independent assessment of the event.
  • U.S. Patent No. 6,385,772 which is also issued to Courtney, describes a video surveillance system that uses a wireless link to transmit video to a portable unit.
  • the video surveillance system uses motion detection as a trigger to transmit a video frame to the portable unit so that the user can make an assessment of the event.
  • This system while linking up a viewable representation of a detected event, does not provide a complete representation of the video corresponding to the event.
  • the Courtney system limits the ability of the user to make assessments of the situation without accessing the original video footage.
  • U.S. Patent Application Publication No. 20030044045 to Schoepflin discloses a system for tracking a user selected object in a video sequence.
  • an initial selection is used as a basis for updating both the foreground and background appearance models.
  • This system while discussing object tracking, does not address both the event detection problem and the problem of generating a complete representation of the video data.
  • U.S. Patent Application Publication No. 20010035907 to Boemmelsiek describes a video surveillance system which uses object detection and tracking to reduce the information in a video signal.
  • the detected objects are used as a basis for generating events which are used to index the original video data.
  • This system again has the drawback of requiring the original video data for the user to make an independent assessment of the detected event.
  • U.S. Patent No. 5,933,535, issued to Lee et al. teaches a method of using objects or object features as the basis for compression, as opposed to rectangular blocks. This results in higher compression efficiency and lower errors. This method, while using the object properties to reduce the bandwidth required to transmit the video data, does not look at the event behavior of the objects.
  • U.S. Patent No. 6,614,847 issued to Das et al., discloses an object oriented video compression system which decomposes the video data in regions corresponding to objects and uses these regions as the basis for compression.
  • this system like most other compression systems, does not incorporate any video event information.
  • the present invention accordingly provides a method, in a data processing system, for representing an input video data stream on a computing device, comprising: receiving the input video data stream; identifying a background image and at least one moving object in the input video data stream; tracking at least one parameter of the at least one moving object over time in the input video data stream to thereby generate tracking information; generating a viewable video index that identifies the tracking information, the at least one moving object and the background image; and transmitting the viewable video index to the computing device.
  • the at least one parameter of the at least one moving object includes a position of the at least one moving object, a size of the at least one moving object, and an orientation of the at least one moving object.
  • the viewable video index identifies a model to be used when generating a representation of the at least one moving object.
  • generating a viewable video index includes: determining user selected parameters for generation of the viewable video index; and generating the viewable video index based on the user selected parameters.
  • the user selected parameters include a bandwidth requirement for the computing device, and wherein generating the viewable video index based on the user selected parameters includes determining at least one of an amount and a type of information that may be included in the viewable video index based on the bandwidth requirement.
  • the method preferably further comprises: receiving the viewable video index at the computing device; and generating a graphical representation of the input video data stream based on the viewable video index.
  • generating a graphical representation of the input video data stream includes superimposing a model of the at least one moving object over the background image and moving the model over the background image in accordance with the tracking information.
  • generating a graphical representation of the input video data stream based on the viewable video index includes: determining if either the tracking information, the background image or a model of the at least one moving object are not present locally on the computing device; and transmitting a request to a source of the viewable video index for either the tracking information, the background image or the model of the at least one moving object if either the tracking information, the background image or the model is not present locally on the computing device.
  • a method is preferably provided, in a data processing system, for generating a representation of a video data stream, comprising: receiving a viewable video index corresponding to a portion of the video data stream, wherein the viewable video index correlates tracking information with foreground object information and background object information; superimposing a foreground object model over a background image based on the foreground object information and background object information in the viewable video index; and graphically moving the foreground object model over the background image based on the tracking information.
  • the method preferably further comprises: determining if either the foreground object model, the background image, or the tracking information is not present in a local storage device; and requesting either the foreground object model, the background image, or the tracking information from a source of the viewable video index if either the foreground object model, the background image or the tracking information is not present in the local storage device.
  • the method preferably further comprises: retrieving either the foreground object model, the background image, or the tracking information from the local storage device rather than sending a request to the source of the viewable video index, if either the foreground object model, the background image, or the tracking information is stored in the local storage device.
  • the video data stream is not received prior to generating the representation of the video data stream.
  • the method preferably further comprises: parsing the tracking information for event information; and generating a graphical timeline with event markers based on the tracking information and event information.
  • the event markers are selectable to thereby jump the representation of the video data stream to a time point corresponding to a selected event marker.
  • the background object information includes information indicating when a background image is to be changed in the representation of the video data stream, and wherein superimposing a foreground object model over a background image includes changing the background image from a previous background image to a current background image based on the information indicating when the background image is to be changed.
  • a computer program product in a computer readable medium for representing an input video data stream on a computing device comprising: first instructions for receiving the input video data stream; second instructions for identifying a background image and at least one moving object in the input video data stream; third instructions for tracking at least one parameter of the at least one moving object over time in the input video data stream to thereby generate tracking information; fourth instructions for generating a viewable video index that identifies the tracking information, the at least one moving object and the background image; and fifth instructions for transmitting the viewable video index to the computing device.
  • the at least one parameter of the at least one moving object includes a position of the at least one moving object, a size of the at least one moving object, and an orientation of the at least one moving object.
  • the viewable video index identifies a model to be used when generating a representation of the at least one moving object.
  • the fourth instructions for generating a viewable video index include:
  • the user selected parameters include a bandwidth requirement for the computing device, and wherein generating the viewable video index based on the user selected parameters includes determining at least one of an amount and a type of information that may be included in the viewable video index based on the bandwidth requirement.
  • the computer program product preferably further comprises: sixth instructions for receiving the viewable video index at the computing device; and seventh instructions for generating a graphical representation of the input video data stream based on the viewable video index.
  • the fifth instructions for generating a graphical representation of the input video data stream include instructions for superimposing a model of the at least one moving object over the background image and moving the model over the background image in accordance with the tracking information.
  • the fifth instructions for generating a graphical representation of the input video data stream based on the viewable video index include: instructions for determining if either the tracking information, the background image or a model of the at least one moving object are not present locally on the computing device; and instructions for transmitting a request to a source of the viewable video index for either the tracking information, the background image or the model of the at least one moving object if either the tracking information, the background image or the model is not present locally on the computing device.
  • the computer program product in a computer readable medium for generating a representation of a video data stream may comprise: first instructions for receiving a viewable video index corresponding to a portion of the video data stream, wherein the viewable video index correlates tracking information with foreground object information and background object information; second instructions for superimposing a foreground object model over a background image based on the foreground object information and background object information in the viewable video index; and third instructions for graphically moving the foreground object model over the background image based on the tracking information.
  • the computer program product may comprise: fourth instructions for determining if either the foreground object model, the background image, or the tracking information is not present in a local storage device; and fifth instructions for requesting either the foreground object model, the background image, or the tracking information from a source of the viewable video index if either the foreground object model, the background image or the tracking information is not present in the local storage device.
  • the computer program product may further comprise: sixth instructions for retrieving either the foreground object model, the background image, or the tracking information from the local storage device rather than sending a request to the source of the viewable video index, if either the foreground object model, the background image, or the tracking information is stored in the local storage device.
  • the video data stream is not received prior to generating the representation of the video data stream.
  • the computer program product may further comprise: fourth instructions for parsing the tracking information for event information; and fifth instructions for generating a graphical timeline with event markers based on the tracking information and event information.
  • the event markers are selectable to thereby jump the representation of the video data stream to a time point corresponding to a selected event marker.
  • the background object information includes information indicating when a background image is to be changed in the representation of the video data stream, and wherein superimposing a foreground object model over a background image includes changing the background image from a previous background image to a current background image based on the information indicating when the background image is to be changed.
  • the present invention provides an apparatus for representing an input video data stream on a computing device, comprising: means for receiving the input video data stream; means for identifying a background image and at least one moving object in the input video data stream; means for tracking at least one parameter of the at least one moving object over time in the input video data stream to thereby generate tracking information; means for generating a viewable video index that identifies the tracking information, the at least one moving object and the background image; and means for transmitting the viewable video index to the computing device
  • the apparatus for generating a representation of a video data stream may comprise: means for receiving a viewable video index corresponding to a portion of the video data stream, wherein the viewable video index correlates tracking information with foreground object information and background object information; means for superimposing a foreground object model over a background image based on the foreground object information and background object information in the viewable video index; and means for graphically moving the foreground object model over the background image based on the tracking information
  • the present invention addresses these problems in the prior art by providing a system and method for generating a viewable video index for low bandwidth application.
  • the exemplary aspects of the present invention solve the problems with the prior art systems by incorporating a viewable representation of the video into the index, thus generating a viewable video index.
  • the viewable video index contains a visual representation of moving objects in the video data, a visual representation of the background of the video capture area, i.e. the scene, a representation of the object trajectory, a representation of the object attributes, and a representation of detected events.
  • the visual representation of the video capture area background includes a color bit map of the scene background or stationary parts of the video capture area or scene. This color bit map is updated whenever the background changes appreciably as determined by a pre-established threshold.
  • the background provides a static image of the environment in which moving objects, or foreground objects, move.
  • the visual representation of the moving objects includes a color bit map of all moving objects in the scene.
  • the color bit map is updated at multiple time intervals during the lifetime of the object in the video capture area and may be superimposed on a background image in order to provide a representation of the moving object moving within the environment depicted by the background image.
  • the representation of the object trajectory includes a time synchronized representation of position of the object and its subparts over time.
  • the representation of object attributes includes, but is not limited to, the type of object, the object size, object color, etc.
  • the representation of the detected events includes a time synchronized representation of a variety of events that are detected in the video data. These may include the occurrence of movement, directional movement, etc.
  • a representation of the video data may be generated in which the moving object bitmap images are superimposed over the background image and move across the background image in accordance with the trajectory information.
  • a timeline representation with event markers corresponding to the sequence of events is provided with the event markers being selectable for jumping the representation of the video data to corresponding time points.
  • the viewable video index of the present invention provides a complete representation of the input video stream which can be used for distributed processing and after the fact event detection.
  • the viewable video index makes use of models to represent foreground objects. These models may be generated by capturing an area around the points of movement within a series of video frames or may be pre- established models. Since the model data is provided along with the viewable video index, classification of the models into different types of objects, even those that were not envisioned at the time that the viewable video index was generated, may be made through an analysis of the model data.
  • the viewable video index is a timestamped representation of a video capture area
  • the timestamps may be used to correlate the viewable video index with other types of timestamped information, whether generated by the same or a different system.
  • the viewable video index may be correlated with a security access card swiping device, badge reader, or keypad log file to determine an identity of a particular person within a video capture area represented by the viewable video index.
  • the viewable video index may be associated with a particular video capture device and may be marked with an identifier of the particular video capture device.
  • identifier of the particular video capture device may be associated with information maintained regarding the layout of video capture devices at a particular location.
  • Figure 1 is an exemplary diagram of a distributed data processing system in which the exemplary aspects of the present invention may be implemented;
  • Figure 2 is an exemplary diagram of a server computing device in which exemplary aspects of the present invention may be implemented;
  • Figure 3 is an exemplary diagram of a client computing device in which exemplary aspects of the present invention may be implemented;
  • Figure 4 is an exemplary block diagram illustrating a video analysis engine in accordance with one exemplary embodiment of the present invention.
  • Figure 5 is an exemplary diagram illustrating an example of the structure of a viewable video index for a sampled video stream generated by a video analysis engine in accordance with one exemplary embodiment of the present invention
  • Figure 6 is an exemplary diagram illustrating details of an index entry at a given time instant for a sampled video stream in accordance with one exemplary embodiment of the present invention
  • Figure 7 is an exemplary diagram of a visual output generated based on a viewable video index in accordance with one exemplary embodiment of the present invention.
  • Figure 8 is a flowchart outlining an exemplary operation of one exemplary embodiment of the present invention when generating a viewable video index
  • Figure 9 is a flowchart outlining an exemplary operation of one exemplary embodiment of the present invention when generating a visual output using a viewable video index. Best Mode for Carrying Out the Invention
  • the present invention provides a system and method for generating a viewable video index for low bandwidth applications.
  • the present invention is particularly well suited for use in distributed data processing systems in which data is transmitted, via wired and/or wireless connections, over a network between a plurality of computing devices. Therefore, the following Figures 1-3 are intended to provide a brief description of one exemplary distributed data processing system and the computing devices within this distributed data processing system as a context for the further description of the mechanisms of the present invention.
  • the example systems and devices shown in Figures 1-3 are intended only as examples and no limitation on the systems or devices that may be used with the present invention is intended or implied by the depiction or description of Figures 1-3.
  • Network data processing system 100 is a network of computers in which the present invention may be implemented.
  • Network data processing system 100 contains a network 102, which is the medium used to provide communications links between various devices and computers connected together within network data processing system 100.
  • Network 102 may include connections, such as wire, wireless communication links, or fiber optic cables.
  • server 104 is connected to network 102 along with wireless server 106.
  • clients 108, 110, and 112 are connected to network 102.
  • Clients 108 and 110 represent clients that communicate via the network 102 using wired connections to the network 102.
  • Client 112 represents a client device, such as a personal digital assistant (PDA) or wireless telephone, that communicates with the network 102 using a wireless connection via the wireless server 106 which may be coupled to a base station or other type of wireless transceiver (not shown).
  • PDA personal digital assistant
  • These clients 108, 110, and 112 may be, for example, personal computers or network computers.
  • server 104 provides data, such as boot files, operating system images, and applications to clients 108-112.
  • Clients 108, 110, and 112 are clients to server 104.
  • Network data processing system 100 may include additional servers, clients, and other devices not shown.
  • network data processing system 100 is the Internet with network 102 representing a worldwide collection of networks and gateways that use the Transmission Control Protocol/Internet Protocol (TCP/IP) suite of protocols to communicate with one another.
  • TCP/IP Transmission Control Protocol/Internet Protocol
  • At the heart of the Internet is a backbone of high-speed data communication lines between major nodes or host computers, consisting of thousands of commercial, government, educational and other computer systems that route data and messages.
  • network data processing system 100 also may be implemented as a number of different types of networks, such as for example, an intranet, a local area network (LAN), or a wide area network (WAN).
  • Figure 1 is intended as an example, and not as an architectural limitation for the present invention.
  • server 104 may incorporate a viewable video index video analysis system in accordance with the exemplary aspects of the present invention.
  • Server 104 may be coupled to one or more video input device 150-154 which are used to provide video data streams to the server 104.
  • the video input devices 150-154 may be, for example, digital video cameras or the like.
  • the video input devices 150-154 may provide video data streams from stored video data, such as in the case of a video tape player, DVD player, or other video data source having a storage medium upon which the video data may be recorded.
  • the video data streams received from the video input devices 150-154 are analyzed to identify events occurring in the various video
  • [075] capture areas as well as to generate viewable video indices in the manner described hereafter.
  • Data processing system 200 may be a symmetric multiprocessor (SMP) system including a plurality of processors 202 and 204 connected to system bus 206. Alternatively, a single processor system may be employed. Also connected to system bus 206 is memory controller/cache 208, which provides an interface to local memory 209. I/O bus bridge 210 is connected to system bus 206 and provides an interface to I/O bus 212. Memory controller/cache 208 and 1/ O bus bridge 210 may be integrated as depicted.
  • SMP symmetric multiprocessor
  • Peripheral component interconnect (PCI) bus bridge 214 connected to I/O bus 212 provides an interface to PCI local bus 216.
  • PCI Peripheral component interconnect
  • a number of modems may be connected to PCI local bus 216.
  • Typical PCI bus implementations will support four PCI expansion slots or add-in connectors.
  • Communications links to clients 108-112 in Figure 1 may be provided through modem 218 and network adapter 220 connected to PCI local bus 216 through add-in connectors.
  • Additional PCI bus bridges 222 and 224 provide interfaces for additional PCI local buses 226 and 228, from which additional modems or network adapters may be supported. In this manner, data processing system 200 allows connections to multiple network computers.
  • a memory-mapped graphics adapter 230 and hard disk 232 may also be connected to I/O bus 212 as depicted, either directly or indirectly.
  • the data processing system depicted in Figure 2 may be, for example, an IBM eServer pSeries system, a product of International Business Machines Corporation in Armonk, New York, running the Advanced Interactive Executive (AIX) operating system or LINUX operating system.
  • AIX Advanced Interactive Executive
  • Data processing system 300 is an example of a client computer, such as client device 108, 110 or 112 in Figure 1.
  • Data processing system 300 employs a peripheral component interconnect (PCI) local bus architecture.
  • PCI peripheral component interconnect
  • AGP Accelerated Graphics Port
  • ISA Industry Standard Architecture
  • Processor 302 and main memory 304 are connected to PCI local bus 306 through PCI bridge 308.
  • PCI bridge 308 also may include an integrated memory controller and cache memory for processor 302. Additional connections to PCI local bus 306 may be made through direct component interconnection or through add-in boards.
  • local area network (LAN) adapter 310 SCSI host bus adapter 312, and expansion bus interface 314 are connected to PCI local bus 306 by direct component connection.
  • audio adapter 316, graphics adapter 318, and audio/video adapter 319 are connected to PCI local bus 306 by add-in boards inserted into expansion slots.
  • Expansion bus interface 314 provides a connection for a keyboard and mouse adapter 320, modem 322, and additional memory 324.
  • Small computer system interface (SCSI) host bus adapter 312 provides a connection for hard disk drive 326, tape drive 328, and CD-ROM drive 330.
  • Typical PCI local bus implementations will support three or four PCI expansion slots or add-in connectors.
  • An operating system runs on processor 302 and is used to coordinate and provide control of various components within data processing system 300 in Figure 3.
  • the operating system may be a commercially available operating system, such as Windows XP, which is available from Microsoft Corporation.
  • An object oriented programming system such as Java may run in conjunction with the operating system and provide calls to the operating system from Java programs or applications executing on data processing system 300. "Java” is a trademark of Sun Microsystems, Inc. Instructions for the operating system, the object-oriented programming system, and applications or programs are located on storage devices, such as hard disk drive 326, and may be loaded into main memory 304 for execution by processor 302.
  • data processing system 300 may be a stand-alone system configured to be bootable without relying on some type of network communication interfaces
  • data processing system 300 may be a personal digital assistant (PDA) device, which is configured with ROM and/or flash ROM in order to provide non-volatile memory for storing operating system files and/or user-generated data.
  • PDA personal digital assistant
  • data processing system 300 also may be a notebook computer or hand held computer in addition to taking the form of a PDA.
  • data processing system 300 also may be a kiosk or a Web appliance.
  • the video input devices 150-154 provide video data streams to the server 104 which is equipped with a viewable video index video analysis system in accordance with the exemplary aspects of the present invention.
  • the video data received from the video input devices 150-154 is analyzed by the viewable video index video analysis system to generate an adaptive background model which represents the static aspects of the video capture area in the video data.
  • the video data is further analyzed to generate foreground appearance models that represent patches which correspond to moving objects in the video capture area in the video data. These patches are used along with the adaptive background model to generate a representation of the video data using a viewable video index.
  • Frames of the video data are analyzed to associate foreground objects, i.e. objects that move, between frames.
  • the frames of the video data are analyzed to track object movements over time.
  • the tracking of object movements over time may involve determining the position and size of the object over time, the orientation of the entire object over time, as well as parameters regarding subparts of the object.
  • object classification may be performed based on an analysis of the video data so that an appropriate stored model for the object may be retrieved and used to represent the video data.
  • the analysis of the video data further includes detecting the occurrence of events that occur within the video capture areas of the video data. These events may include, for example, the occurrence of movement in a particular direction, occurrence of high speed movement, the occurrence of sudden changes in movement, etc.
  • the event detection analysis according to the present invention may produce a sequence of time stamped events.
  • the result of the above analysis is used to generate a viewable video index.
  • the viewable video index is generated based on user selected parameters that identify the composition of the viewable video index. These parameters may include, for example, the bandwidth requirement of the index and other parameters such as the control types of object representations that are included as part of the index, types of object activities that are included, etc. The generation of this viewable video index will be described in greater detail hereafter.
  • the viewable video index includes a plurality of data structures that reference the models and data generated through the above analysis.
  • the viewable video index may include a main index directory that references a log file that identifies start and end times of the video data represented by the viewable video index, a camera index directory that includes references to one or more track index files and object model files for foreground or moving objects.
  • These track index files further include track start and end times indicating time points at which the corresponding objects in the object model files move within the video capture area as well as movement information indicating position and optionally, orientation and size information for the corresponding objects represented by the object models.
  • the viewable video index further includes a background update directory that references one or more background image files that represent the static aspects of the video data.
  • this viewable video index is generated, it is stored in association with the actual video data and are used in generating a viewable representation of the video data.
  • the viewable video index is stored in such a manner that it is made available for distribution over the network 102 to one or more client devices.
  • the video data from the video input devices 150-154 is stored on the server along with the various object models, background model and tracking information and only the viewable video index needs to be distributed to a client device that may be used by a human user whose responsibility it is to monitor the video capture areas represented by the video data received from the video input devices 150-154.
  • the object models, background model, and tracking information is used to generate a representation of the video data. If the required models and tracking information are not present locally on the client device, these files may be downloaded to the client device via the network 102. If one or more of the files are already present on the client device, they need not be transmitted again. Instead they are retrieved from local storage and used in generating a viewable representation of the video data.
  • the viewable video index is used by the client device to determine how and where to superimpose the foreground model(s) on a background model and move the foreground model(s) across the background model in accordance with tracking information. In this way, only the data representative of models and tracking information needs to be downloaded for use with the viewable video index, and this may not be necessary every time the viewable video index is utilized, in order to generate a representation of the video data streamed to the server 104 from the video input devices 150 -154.
  • the start and end time stamps associated with the viewable video index may be used to correlate the viewable video index with corresponding time points in the actual video data. In this way, the user may obtain a viewable representation of the video data in order to determine whether further viewing of the actual video data is in order and may easily access the specific portion of the actual video data corresponding to the viewable video index.
  • client devices since only models, tracking information, and the viewable video index are necessary for generating the representation, the amount of data that must be transmitted to client devices is minimized. As a result, low bandwidth client devices, such as personal digital assistants or wireless telephones, may be used as client devices with the present invention.
  • Figure 4 is an exemplary block diagram illustrating a video analysis engine in accordance with one exemplary embodiment of the present invention. It should be a ppreciated that the elements shown in Figure 4 may be implemented as hardware, software, or any combination of hardware and software, without departing from the spirit and scope of the present invention. In one exemplary embodiment, the elements shown in Figure 4 are implemented as software instructions executed by one or more data processing devices.
  • the video analysis engine includes a controller 410, a video input device interface 415, an object detection module 420, a multi-object tracking module 425, an object classification module 430, an event detection module 435, a user specified viewable video index parameter set storage device 440, a viewable video index generator 445, a video data storage device 450, and a network interface 455.
  • the elements 410-455 are in communication with one another via a control/data signal bus 460.
  • a bus architecture is shown in Figure 4, the present invention is not limited to such and any architecture that facilitates the communication of control/data signals between the elements 410-460 may be used without departing from the spirit and scope of the present invention.
  • Controller 410 controls the overall operation of the video analysis engine and orchestrates the operation of the other elements 415-460.
  • the controller 410 receives video data via the video input device interface 415 and stores this video data in the video data storage device 450.
  • this video data may be provided to the other modules 420-435 for analysis.
  • the object detection module 420 performs object detection for identifying moving objects in the received video data.
  • the detection of moving objects may be performed in any known manner. For example, a plurality of frames of video data at successive time points may be analyzed to determine differences. A comparison of the differences with pre-established thresholds is utilized to determine if the differences are likely representative of a moving object. The portions of the video data corresponding to the differences are then identified as a moving object.
  • many other methods for identifying moving objects some of which are described in the prior art reference in the Background of the Invention section, may be utilized without departing from the spirit and scope of the present invention.
  • the present invention uses this identification of moving objects to separate out foreground objects, i.e. moving objects, from the static portions of the video data, i.e. the background.
  • a frame of the background video data that does not include the foreground object(s) is stored as an adaptive background model.
  • a frame of the background video data may be compared to the currently stored adaptive background model to determine if the background has changed appreciably. This may be done by determining differences between the frame and the stored adaptive background model and determining if these differences exceed an established threshold.
  • the identified foreground objects are used to generate patches or overlays that represent the foreground objects.
  • the generation of these patches or overlays may be based on a graphical representation of the object extracted from the video data, a generated graphical representation of the object based on attributes identified through analysis of the video data, an object model retrieved based on classification of the object, or the like.
  • the object patches or overlays are generated by identifying attributes of the object, such as size, color, configuration, etc., and comparing them to attributes of stored object types in order to classify the object as a particular type of object. Thereafter, an object model corresponding to the identified object type is utilized to represent the object.
  • the object patches or overlays and the adaptive background model are stored in association with the video data in the storage device 450.
  • the multi-object tracking module 425 receives the foreground object and background information and tracks the trajectory of the foreground objects as they move over the background in the received video data from frame to frame.
  • the multi-object tracking module 425 may use any one or a combination of several processes for tracking objects over time. For example, as described in Senior et al.
  • various parameters of the object may be estimated by the multi-object tracking module 425 at various time points.
  • the multi-object tracking module 425 uses a position and size tracker mechanism, such as that described in Senior et al. "Real-time Articulated Human Body Tracking Using Silhouette Information,” IEEE Workshop on Performance Evaluation of Tracking and Surveillance, Nice, France, October, 2003, which is hereby incorporated by reference, an estimate of the position and size of the object at various time points may be generated.
  • the result of such estimations is a sequence of time stamped position and size values for each unique moving object in the video data.
  • the model that is identified through the classification discussed above may be used as a basis for tracking multiple object parameters from one time point to the next.
  • model based tracking mechanisms allow multiple parameters of the object to be estimated including the size, position, and orientation of the entire object and similar parameters for subparts of the object.
  • a person tracker could estimate the pose of the person's head, the position and size of the person's torso and limbs, and the like.
  • multiple time stamped parameter sets may be generated.
  • the trajectory information is analyzed to determine if events of interest occur.
  • events may include, for example, movement in a particular direction, the occurrence of high speed movement, occurrence of sudden changes in movement, and the like.
  • the multi-object tracking module 425 generates a trajectory for each foreground object and a sequence of time stamped events.
  • the trajectory and event information generated by the multi- object tracking module 425 is stored in the storage device 450 in files associated with the various identified foreground objects.
  • a directional motion event may be detected.
  • the user specifies a target movement direction (as an angle).
  • the system computes the dominant direction of movement for each moving object.
  • the viewable video index generator 445 receives information identifying the foreground object patches or layovers, the adaptive background model, the trajectory and event information, and user specified viewable video index parameter set information, and generates a viewable video index from this information.
  • the viewable video index generator 445 generates a data structure having a main index directory that identifies attributes about the portion of video data to which the viewable video index corresponds, a video input device index directory that identifies the foreground object patch or layover files and the trajectory and event information files corresponding to the foreground objects, and a background update directory that identifies the background image files that correspond to the background for the portion of video data represented by the viewable video index, as discussed hereafter.
  • the identifiers in the viewable video index may be, for example, filenames, Internet protocol addresses, file pathnames, and the like.
  • the content of the viewable video index may be governed by user specified parameters. These user specified parameters may identify, for example, the bandwidth requirement for the viewable video index which in turn determines the amount and kind of information that may be contained within the viewable video index. That is, for lower bandwidth applications, the viewable video index may not be able to include all of the information that would be available for higher bandwidth applications.
  • VVI viewable video index
  • the VVI is stored in association with the originally received video data, model information, and tracking information in the storage device 450. Either immediately when available, periodically, or upon request, the stored VVI may be transmitted to a client device via the network interface 455.
  • model data and tracking data associated with the VVI may be transmitted to the client device via the network interface 455. The model data and tracking data may be sent in response to a request being received from a client device, for example.
  • the VVI is used by an index browser application to generate a representation of the video data at the client device.
  • the VVI is used to correlate the model data and tracking data to generate the representation of the video data.
  • a display of the background with superimposed object models is generated.
  • the superimposed object models are moved across the background in accordance with the tracking information.
  • a representation of a timeline represented by the VVI may be generated with event identifiers provided.
  • the user of the client device may select the event identifiers in order for the representation of the video data to jump to a representation of the video corresponding to the event start time for the selected event.
  • the tracking information is a time stamped trajectory and a time stamped sequence of events, the time stamps may be used to correlate the events and trajectory information to determine where and how the foreground object patches or overlays are to be placed over the background model representation.
  • the present invention minimizes the amount of data that needs to be transmitted to the client device by eliminating the need to transmit the actual video data and by only requiring model information to be downloaded to the client device when it is not already present locally at the client device.
  • low bandwidth applications on client devices may be utilized to generate the representation of the video data on the client device. This permits client devices such as personal digital assistants and wireless communication devices to be used as devices through which a user may monitor the video capture areas of the various video input devices.
  • FIG. 5 is an exemplary diagram illustrating an example of the structure of a viewable video index for a sampled video stream generated by a video analysis engine in accordance with one exemplary embodiment of the present invention.
  • the viewable video index includes a main index directory 510 that references a log file 520, a camera index directory 530, and a background update dire ctory 540.
  • the main index directory may further include information identifying general parameters for outputting a viewable video index such as the types of encryption used for the index files, the version number of the index, the video source name and characteristics from which the index was derived, and the like.
  • the log file 520 referenced by the main index directory 510 includes an index start time and an index end time for the viewable video index.
  • the log file 520 encodes global properties of the viewable video index.
  • the log file 520 may include, for example, statistics summarizing the activity in the index, such as the total number of objects in the scene, distribution of objects by type, etc.
  • the camera index directory 530 includes references to object model files 535 and their corresponding tracking files 537.
  • the object model files include an object patch 550 or overlay and an object mask 560.
  • the object mask 560 is used to remove a portion of the background model for use in superimposing the object patch 550.
  • the corresponding tracking files 537 consist of index data for each frame of the video. There may be separate tracking files 537 for each object or a single tracking file that includes references to each foreground object, depending on the particular implementation.
  • index data for frames of the video that may be included in the tracking files is shown in Figure 6.
  • the index data may include, for example, a start frame identifier 610, a timestamp for the frame 620, a centroid location 630 for the frame, an area 640 of the frame, bounding box parameters 650, a missing pixel count 660, an occlusion fraction 670, an object class 680, a model track number 690, and an end frame identifier 695.
  • the above elements represent various properties of the objects that are being tracked at any given time instant.
  • the time stamp 620 represents the time at which the index data was gathered
  • the centroid location 630 is the location of the object in the image frame
  • the area 640 represents the extent of the object in pixels, etc. This list of properties can be changed based on the index parameters set by the user.
  • the background update directory 540 references one or more background image files that are used to represent the background of the video data. If the background changes appreciably during the time interval represented by the viewable video index, more than one background image file may be referenced in the background update directory 540. In addition, timestamps may be associated with the background image files to determine when to change the background file that is used to generate the representation of the video data.
  • Figure 7 is an exemplary diagram of a visual output generated based on a viewable video index in accordance with one exemplary embodiment of the present invention.
  • the video representation includes a background image 710 with a superimposed foreground object model patch or overlay 720 that represents a moving object in the video data.
  • a timeline representation 730 is provided with event markers 740 identifying portions of the video data represented by the viewable video index where events were detected to have occurred.
  • the superimposed foreground model patch or overlay 720 may be moved across the background image in accordance with the tracking information identified in the viewable video index.
  • the superimposed foreground object model patch may have its size, orientation, and other parameters modified in accordance with the parameters recorded with the tracking information as previously described above. In this way, a representation of the video data is generated from a static background image and models of foreground or moving objects.
  • a trail may be displayed indicating the movement of the superimposed foreground object model patch or overlay 720.
  • Other information including timestamp information and the like may be displayed in the video repre- sentation.
  • the timeline representation 730 includes the event markers 740 based on the sequence of events indicated in the tracking files. These event markers 740 are selectable so that the video representation may be jumped to a video representation corresponding to the start timestamp associated with the selected event marker.
  • the video representation provides enough information for a user to view the video representation and determine if there is sufficient reason to view the actual video data to determine if something of interest has occurred within the video capture area of the video input device. This is done while minimizing the amount of data that needs to be transmitted to the client device. The need to actually transmit the video data to the client device is avoided. A much smaller amount of data including the viewable video index, model data, and the tracking files are all that is necessary to generate a representation of the video data.
  • FIGS 8 and 9 illustrate flowcharts outlining exemplary operations of various elements of the present invention. It will be understood that each block of the flowchart illustrations, and combinations of blocks in the flowchart illustrations, can be implemented by computer program instructions. These computer program instructions may be provided to a processor or other programmable data processing apparatus to produce a machine, such that the instructions which execute on the processor or other programmable data processing apparatus create means for implementing the functions specified in the flowchart block or blocks.
  • These computer program instructions may also be stored in a computer-readable memory or storage medium that can direct a processor or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory or storage medium produce an article of manufacture including instruction means which implement the functions specified in the flowchart block or blocks.
  • blocks of the flowchart illustrations support combinations of means for performing the specified functions, combinations of steps for performing the specified functions and program instruction means for performing the specified functions. It will also be understood that each block of the flowchart illustrations, and combinations of blocks in the flowchart illustrations, can be implemented by special purpose hardware-based computer systems which perform the specified functions or steps, or by combinations of special purpose hardware and computer instructions.
  • FIG. 8 is a flowchart outlining an exemplary operation of one exemplary embodiment of the present invention when generating a viewable video index.
  • the operation starts by receiving video data (step 810).
  • Foreground and background elements of the video data are identified (step 820) and models rep- resenting the foreground objects and background elements are generated (step 830). Movement of the foreground objects over the background is then tracked for a predetermined period to generate tracking and object parameter information (step 840).
  • the video data is analyzed to determine the occurrence of events and a sequence of events is generated (step 850).
  • the models, tracking and event information are then utilized to generate a viewable video index (step 860) by generating a data structure with parameters and references to the model, tracking and event files.
  • the viewable video index is then stored (step 870) and may be transmitted to a client device (step 880). The operation then ends.
  • FIG 9 is a flowchart outlining an exemplary operation of one exemplary embodiment of the present invention when generating a visual output using a viewable video index.
  • the operation starts by receiving, or retrieving from local storage, a viewable video index (step 910).
  • the viewable video index is then parsed to identify the tracking information files, foreground or moving object files, background files, and the like, that are referenced in the viewable video index (step 920).
  • a determination is made as to whether any of the files referenced in the viewable video index are not present locally (step 930).
  • a representation of the video data is generated by superimposing the moving object images from the moving object files, at the position identified in the tracking information file, on the background image (step 950).
  • a timeline representation may also be generated that includes event markers indicating time points at which events were detected in the input video data stream (step 960). As mentioned previously, these event markers are selectable in order to jump the representation of the video data to a time point corresponding to the start time of the detected event.
  • the position, size, orientation, and the like, of the moving objects are updated as the representation steps through the time sequence indicated in the tracking information file or in response to the selection of an event marker (step 970). The operation then terminates.
  • the present invention provides a mechanism for reducing an input video data stream to a viewable video index, one or more background and moving object model or image files, and a tracking file.
  • a viewable video index In this way, only the viewable video index, the model or image files, and the tracking file need to be transmitted to the client device in order for a representation of the original input video data stream to be generated at the client device.
  • This allows the user of the client device to view the representation in order to obtain greater understanding of the events occurring in the original input video data stream. Based on viewing the representation of the input video data stream, the user may then determine whether further investigation of the depicted events is warranted.
  • the viewable video index of the present invention provides a complete representation of the input video stream which can be used for distributed processing and after the fact event detection.
  • the viewable video index makes use of models to represent foreground objects. These models may be generated by capturing an area around the points of movement within a series of video frames or may be pre- established models. Since the model data is provided along with the viewable video index, classification of the models into different types of objects, even those that were not envisioned at the time that the viewable video index was generated, may be made through an analysis of the model data.
  • the model data itself may be re-analyzed based on parameters defining trucks and cars to determine whether the object that was originally classified as a vehicle, is either a truck or a car.
  • the timestamps may be used to correlate the viewable video index with other types of timestamped information, whether generated by the same or a different system.
  • the viewable video index may be correlated with a security access card swiping device, badge reader, or keypad log file to determine an identity of a particular person within a video capture area represented by the viewable video index.
  • the system of the present invention may be coupled to databases in which such timestamped information is stored and may access this information in order to perform such correlations and provide an output to a user indicative of the correlations, if any, between the viewable video index and these other sources of information.
  • the viewable video index may also be associated with a particular video capture device and may be marked with an identifier of the particular video capture device, i.e. a camera identifier may be stored in association with a viewable video index generated based on an input video stream from that camera.
  • a data structure may be maintained that indicates the orientation of a plurality of video capture devices in a particular area and the positional relationship between these video capture devices. This information may be correlated with the movement of the objects represented by the viewable video index to determine to which video capture area the object moved when it moves outside of the current video capture area.

Abstract

A system and method for generating a viewable video index for low bandwidth applications are provided. The exemplary aspects of the present invention solve the problems with the prior art systems by incorporating information for generating a viewable representation of the video data into the index, thus generating a viewable video index. The viewable video index contains information for generating a visual representation of moving objects in the video data, a visual representation of the background of the video capture area, i.e. the scene, a representation of the object trajectory, a representation of the object attributes, and a representation of detected events. The result is that the viewable video index may be transmitted to a low bandwidth application on a client device and may be used along with associated object and background models to generate a representation of the actual video data without requiring that the original video data itself be streamed to the client device.

Description

Description SYSTEM AND METHOD FOR GENERATING A VIEWABLE VIDEO INDEX FOR LOW BANDWIDTH APPLICATIONS Technical Field
[001] The present invention is generally directed to the fields of automatic video analysis and video compression. More specifically, the present invention is directed to a mechanism for performing automatic video analysis and video compression on video data provided by video input devices in order to generate representations of the video data using a low bandwidth data stream. Background Art
[002] Video compression and automatic video analysis for tracking of moving objects are both very active areas of research. However, these have been disconnected areas of research. Video compression deals with minimizing the size of the video data in the video stream while video analysis is concerned with determining the content of video data.
[003] In the context of video monitoring systems, such as video surveillance or security systems, the index data will alert the monitoring user to the presence of an interesting activity in the scene. However, in order to take an action, the user needs to view the corresponding video to gain a complete understanding of the activity. This feature is very essential since most automatic video analysis systems have errors in the event detection
[004] and will often indicate activity that is of little or no interest to the human being monitoring the video.
[005] Current automatic video analysis systems analyze the video and generate an index. A typical video index may consist of a temporal reference into the video stream and a descriptor, where the descriptor may be a semantic token (e.g., the presence of a human face and cardinality) or a feature descriptor of the video (e.g., color histogram of the dominate objects). The implicit assumption of video indexing systems is that the actual video data will be available to the monitoring user when they choose to use the index to review the actual video. More information about such video analysis systems is available in the Handbook of Video Databases. Design and Applications by Fruth and Marques, CRC Press, 2003.
[006] Many different types of video analysis systems have been devised for use in determining the content of video data. For example, U.S. Patent Application Publication No. 20030123850 to Jun et al. discloses a system that analyzes news video and automatically detects anchor person and other types of segments to generate temporal indices into the news video. The Jun systems uses the index information to provide content based access to the indexed segments and also allows for different reproduction speeds for different types of segments. This system requires both the index and the original video to allow a user to browse the news video.
[007] U.S. Patent No. 6,366,269, issued to Boreczky et al., describes a media file browser where the file is accessed based on a user selected feature. For example, a user may choose to jump to a point in the media file where there is an audio transition from music to speech or a visual transition from one scene to the other. This system also requires both the index and the original video to allow a user to browse the video content based on the index.
[008] U.S. Patent No.6,560,281, issued to Black et al., is directed to a system which can analyze video data from a presentation, cluster frames into segments corresponding to each overhead slide used in the presentation, recognize gestures by the speaker in the video and use this information to generate a condensed version of the presentation. In this system, the condensed version of the video data can be used independently, i.e. without using the original video. However, the condensed version of the video data is not a complete representation of the original video.
[009] U.S. Patent No.6,271,892, issued to Gibbon et al., describes a system that extracts key frames from video data and associates it with corresponding closed captioning text. This information may be rendered in a variety of ways, e.g., a page with printed key frames with associated closed captioning, to give a summary of the video. This system is in principle similar to the Black system discussed above and suffers the same drawback that the summary of the video is not a complete representation of the video data.
[010] Current video surveillance and tracking systems analyze video to detect and track objects. They use the object tracking information to infer the occurrence of certain events in the video to thereby generate event markers. These systems then use these event markers as indices for viewing the original video.
[011] For example, U.S. Patent No. 5,969,755, issued to Courtney, describes a video surveillance system which incorporates object detection and tracking. The Courtney system generates a symbolic representation of the video based on the object tracking information. The Courtney system also uses the object tracking information to infer events in the video such as appearance/disappearance, deposit/removal, entrance/exit, etc. The Courtney system uses these event markers to retrieve relevant bits of the video for the user. The key drawback of the Courtney system, and systems like it, is that it requires both the index information, i.e. the event marker information, and the original video in order for the user to be able to make an independent assessment of the event.
[012] U.S. Patent No. 6,385,772, which is also issued to Courtney, describes a video surveillance system that uses a wireless link to transmit video to a portable unit. The video surveillance system uses motion detection as a trigger to transmit a video frame to the portable unit so that the user can make an assessment of the event. This system, while linking up a viewable representation of a detected event, does not provide a complete representation of the video corresponding to the event. Thus, the Courtney system limits the ability of the user to make assessments of the situation without accessing the original video footage.
[013] U.S. Patent Application Publication No. 20030044045 to Schoepflin discloses a system for tracking a user selected object in a video sequence. In the Schoepflin reference an initial selection is used as a basis for updating both the foreground and background appearance models. This system, while discussing object tracking, does not address both the event detection problem and the problem of generating a complete representation of the video data.
[014] U.S. Patent Application Publication No. 20010035907 to Boemmelsiek describes a video surveillance system which uses object detection and tracking to reduce the information in a video signal. The detected objects are used as a basis for generating events which are used to index the original video data. This system again has the drawback of requiring the original video data for the user to make an independent assessment of the detected event.
[015] Current video compression systems are completely focused on reducing the number of bits required to store the video data. However, these video compression systems do not concern themselves with indexing the video in any form. For example, U.S. Patent Application Publication No. 20030081564 to Chan discloses a wireless video surveillance system where the data from a video camera is transmitted over a wireless link to a computer display. Such a system provides access to video data from the camera without any regard to event detection. Thus, this system requires that the user view the video in order to detect events himself.
[016] U.S. Patent No. 5,933,535, issued to Lee et al., teaches a method of using objects or object features as the basis for compression, as opposed to rectangular blocks. This results in higher compression efficiency and lower errors. This method, while using the object properties to reduce the bandwidth required to transmit the video data, does not look at the event behavior of the objects.
[017] U.S. Patent No. 6,614,847, issued to Das et al., discloses an object oriented video compression system which decomposes the video data in regions corresponding to objects and uses these regions as the basis for compression. However, this system, like most other compression systems, does not incorporate any video event information. Disclosure of Invention [018] The present invention accordingly provides a method, in a data processing system, for representing an input video data stream on a computing device, comprising: receiving the input video data stream; identifying a background image and at least one moving object in the input video data stream; tracking at least one parameter of the at least one moving object over time in the input video data stream to thereby generate tracking information; generating a viewable video index that identifies the tracking information, the at least one moving object and the background image; and transmitting the viewable video index to the computing device.
[019] Preferably, the at least one parameter of the at least one moving object includes a position of the at least one moving object, a size of the at least one moving object, and an orientation of the at least one moving object.
[020] Preferably, the viewable video index identifies a model to be used when generating a representation of the at least one moving object.
[021] Preferably, generating a viewable video index includes: determining user selected parameters for generation of the viewable video index; and generating the viewable video index based on the user selected parameters.
[022] Preferably, the user selected parameters include a bandwidth requirement for the computing device, and wherein generating the viewable video index based on the user selected parameters includes determining at least one of an amount and a type of information that may be included in the viewable video index based on the bandwidth requirement.
[023] The method preferably further comprises: receiving the viewable video index at the computing device; and generating a graphical representation of the input video data stream based on the viewable video index.
[024] Preferably, generating a graphical representation of the input video data stream includes superimposing a model of the at least one moving object over the background image and moving the model over the background image in accordance with the tracking information.
[025] Preferably, generating a graphical representation of the input video data stream based on the viewable video index includes: determining if either the tracking information, the background image or a model of the at least one moving object are not present locally on the computing device; and transmitting a request to a source of the viewable video index for either the tracking information, the background image or the model of the at least one moving object if either the tracking information, the background image or the model is not present locally on the computing device.
[026] A method is preferably provided, in a data processing system, for generating a representation of a video data stream, comprising: receiving a viewable video index corresponding to a portion of the video data stream, wherein the viewable video index correlates tracking information with foreground object information and background object information; superimposing a foreground object model over a background image based on the foreground object information and background object information in the viewable video index; and graphically moving the foreground object model over the background image based on the tracking information.
[027] The method preferably further comprises: determining if either the foreground object model, the background image, or the tracking information is not present in a local storage device; and requesting either the foreground object model, the background image, or the tracking information from a source of the viewable video index if either the foreground object model, the background image or the tracking information is not present in the local storage device.
[028] The method preferably further comprises: retrieving either the foreground object model, the background image, or the tracking information from the local storage device rather than sending a request to the source of the viewable video index, if either the foreground object model, the background image, or the tracking information is stored in the local storage device.
[029] Preferably, the video data stream is not received prior to generating the representation of the video data stream.
[030] The method preferably further comprises: parsing the tracking information for event information; and generating a graphical timeline with event markers based on the tracking information and event information.
[031] Preferably, the event markers are selectable to thereby jump the representation of the video data stream to a time point corresponding to a selected event marker.
[032] Preferably, the background object information includes information indicating when a background image is to be changed in the representation of the video data stream, and wherein superimposing a foreground object model over a background image includes changing the background image from a previous background image to a current background image based on the information indicating when the background image is to be changed.
[033] There is further provided, in a second aspect, a computer program product in a computer readable medium for representing an input video data stream on a computing device, comprising: first instructions for receiving the input video data stream; second instructions for identifying a background image and at least one moving object in the input video data stream; third instructions for tracking at least one parameter of the at least one moving object over time in the input video data stream to thereby generate tracking information; fourth instructions for generating a viewable video index that identifies the tracking information, the at least one moving object and the background image; and fifth instructions for transmitting the viewable video index to the computing device.
[034] Preferably, the at least one parameter of the at least one moving object includes a position of the at least one moving object, a size of the at least one moving object, and an orientation of the at least one moving object.
[035] Preferably, the viewable video index identifies a model to be used when generating a representation of the at least one moving object.
[036] Preferably, the fourth instructions for generating a viewable video index include:
[037] instructions for determining user selected parameters for generation of the viewable video index; and instructions for generating the viewable video index based on the user selected parameters.
[038] Preferably, the user selected parameters include a bandwidth requirement for the computing device, and wherein generating the viewable video index based on the user selected parameters includes determining at least one of an amount and a type of information that may be included in the viewable video index based on the bandwidth requirement.
[039] The computer program product preferably further comprises: sixth instructions for receiving the viewable video index at the computing device; and seventh instructions for generating a graphical representation of the input video data stream based on the viewable video index.
[040] Preferably, the fifth instructions for generating a graphical representation of the input video data stream include instructions for superimposing a model of the at least one moving object over the background image and moving the model over the background image in accordance with the tracking information.
[041] Preferably, the fifth instructions for generating a graphical representation of the input video data stream based on the viewable video index include: instructions for determining if either the tracking information, the background image or a model of the at least one moving object are not present locally on the computing device; and instructions for transmitting a request to a source of the viewable video index for either the tracking information, the background image or the model of the at least one moving object if either the tracking information, the background image or the model is not present locally on the computing device.
[042] The computer program product in a computer readable medium for generating a representation of a video data stream may comprise: first instructions for receiving a viewable video index corresponding to a portion of the video data stream, wherein the viewable video index correlates tracking information with foreground object information and background object information; second instructions for superimposing a foreground object model over a background image based on the foreground object information and background object information in the viewable video index; and third instructions for graphically moving the foreground object model over the background image based on the tracking information.
[043] The computer program product may comprise: fourth instructions for determining if either the foreground object model, the background image, or the tracking information is not present in a local storage device; and fifth instructions for requesting either the foreground object model, the background image, or the tracking information from a source of the viewable video index if either the foreground object model, the background image or the tracking information is not present in the local storage device.
[044] The computer program product may further comprise: sixth instructions for retrieving either the foreground object model, the background image, or the tracking information from the local storage device rather than sending a request to the source of the viewable video index, if either the foreground object model, the background image, or the tracking information is stored in the local storage device.
[045] Preferably, the video data stream is not received prior to generating the representation of the video data stream.
[046] The computer program product may further comprise: fourth instructions for parsing the tracking information for event information; and fifth instructions for generating a graphical timeline with event markers based on the tracking information and event information.
[047] Preferably, the event markers are selectable to thereby jump the representation of the video data stream to a time point corresponding to a selected event marker.
[048] Preferably, the background object information includes information indicating when a background image is to be changed in the representation of the video data stream, and wherein superimposing a foreground object model over a background image includes changing the background image from a previous background image to a current background image based on the information indicating when the background image is to be changed.
[049] In a third aspect, the present invention provides an apparatus for representing an input video data stream on a computing device, comprising: means for receiving the input video data stream; means for identifying a background image and at least one moving object in the input video data stream; means for tracking at least one parameter of the at least one moving object over time in the input video data stream to thereby generate tracking information; means for generating a viewable video index that identifies the tracking information, the at least one moving object and the background image; and means for transmitting the viewable video index to the computing device
[050] The apparatus for generating a representation of a video data stream may comprise: means for receiving a viewable video index corresponding to a portion of the video data stream, wherein the viewable video index correlates tracking information with foreground object information and background object information; means for superimposing a foreground object model over a background image based on the foreground object information and background object information in the viewable video index; and means for graphically moving the foreground object model over the background image based on the tracking information
[051] The critical drawback of current video analysis, video compression and video surveillance systems is their disjoint nature. That is, compression technology does not consider how the user gets the relevant portions of the video while video analysis and video surveillance technology generates relevance markers but assumes the presence of the original video data for the user to view the material.
[052]
[053] The present invention addresses these problems in the prior art by providing a system and method for generating a viewable video index for low bandwidth application. The exemplary aspects of the present invention solve the problems with the prior art systems by incorporating a viewable representation of the video into the index, thus generating a viewable video index. The viewable video index contains a visual representation of moving objects in the video data, a visual representation of the background of the video capture area, i.e. the scene, a representation of the object trajectory, a representation of the object attributes, and a representation of detected events.
[054] The visual representation of the video capture area background includes a color bit map of the scene background or stationary parts of the video capture area or scene. This color bit map is updated whenever the background changes appreciably as determined by a pre-established threshold. The background provides a static image of the environment in which moving objects, or foreground objects, move.
[055] The visual representation of the moving objects includes a color bit map of all moving objects in the scene. The color bit map is updated at multiple time intervals during the lifetime of the object in the video capture area and may be superimposed on a background image in order to provide a representation of the moving object moving within the environment depicted by the background image.
[056] The representation of the object trajectory includes a time synchronized representation of position of the object and its subparts over time. The representation of object attributes includes, but is not limited to, the type of object, the object size, object color, etc. The representation of the detected events includes a time synchronized representation of a variety of events that are detected in the video data. These may include the occurrence of movement, directional movement, etc.
[057] Using the object trajectory information, the background images and the moving object bitmap, a representation of the video data may be generated in which the moving object bitmap images are superimposed over the background image and move across the background image in accordance with the trajectory information. In addition, a timeline representation with event markers corresponding to the sequence of events is provided with the event markers being selectable for jumping the representation of the video data to corresponding time points.
[058] Thus, the viewable video index of the present invention provides a complete representation of the input video stream which can be used for distributed processing and after the fact event detection. The viewable video index makes use of models to represent foreground objects. These models may be generated by capturing an area around the points of movement within a series of video frames or may be pre- established models. Since the model data is provided along with the viewable video index, classification of the models into different types of objects, even those that were not envisioned at the time that the viewable video index was generated, may be made through an analysis of the model data.
[059] In addition, since the viewable video index is a timestamped representation of a video capture area, the timestamps may be used to correlate the viewable video index with other types of timestamped information, whether generated by the same or a different system. Thus, for example, the viewable video index may be correlated with a security access card swiping device, badge reader, or keypad log file to determine an identity of a particular person within a video capture area represented by the viewable video index.
[060] The viewable video index may be associated with a particular video capture device and may be marked with an identifier of the particular video capture device. In this way, by associating the identifier of the particular video capture device with information maintained regarding the layout of video capture devices at a particular location, "camera-handoff ' for tracking an object as it crosses multiple video capture areas is made possible. These and other features and advantages of the present invention will be described in, or will become apparent to those of ordinary skill in the art in view of, the following detailed description of the preferred embodiments. Brief Description of the Drawings
[061] The exemplary aspects of the present invention will best be understood by reference to the following detailed description when read in conjunction with the accompanying drawings, wherein:
[062] Figure 1 is an exemplary diagram of a distributed data processing system in which the exemplary aspects of the present invention may be implemented;
[063] Figure 2 is an exemplary diagram of a server computing device in which exemplary aspects of the present invention may be implemented; [064] Figure 3 is an exemplary diagram of a client computing device in which exemplary aspects of the present invention may be implemented;
[065] Figure 4 is an exemplary block diagram illustrating a video analysis engine in accordance with one exemplary embodiment of the present invention;
[066] Figure 5 is an exemplary diagram illustrating an example of the structure of a viewable video index for a sampled video stream generated by a video analysis engine in accordance with one exemplary embodiment of the present invention;
[067] Figure 6 is an exemplary diagram illustrating details of an index entry at a given time instant for a sampled video stream in accordance with one exemplary embodiment of the present invention;
[068] Figure 7 is an exemplary diagram of a visual output generated based on a viewable video index in accordance with one exemplary embodiment of the present invention;
[069] Figure 8 is a flowchart outlining an exemplary operation of one exemplary embodiment of the present invention when generating a viewable video index; and
[070] Figure 9 is a flowchart outlining an exemplary operation of one exemplary embodiment of the present invention when generating a visual output using a viewable video index. Best Mode for Carrying Out the Invention
[071] The present invention provides a system and method for generating a viewable video index for low bandwidth applications. As such, the present invention is particularly well suited for use in distributed data processing systems in which data is transmitted, via wired and/or wireless connections, over a network between a plurality of computing devices. Therefore, the following Figures 1-3 are intended to provide a brief description of one exemplary distributed data processing system and the computing devices within this distributed data processing system as a context for the further description of the mechanisms of the present invention. The example systems and devices shown in Figures 1-3 are intended only as examples and no limitation on the systems or devices that may be used with the present invention is intended or implied by the depiction or description of Figures 1-3.
[072] With reference now to the figures, Figure 1 depicts a pictorial representation of a network of data processing systems in which the present invention may be implemented. Network data processing system 100 is a network of computers in which the present invention may be implemented. Network data processing system 100 contains a network 102, which is the medium used to provide communications links between various devices and computers connected together within network data processing system 100. Network 102 may include connections, such as wire, wireless communication links, or fiber optic cables. [073] In the depicted example, server 104 is connected to network 102 along with wireless server 106. In addition, clients 108, 110, and 112 are connected to network 102. Clients 108 and 110 represent clients that communicate via the network 102 using wired connections to the network 102. Client 112 represents a client device, such as a personal digital assistant (PDA) or wireless telephone, that communicates with the network 102 using a wireless connection via the wireless server 106 which may be coupled to a base station or other type of wireless transceiver (not shown). These clients 108, 110, and 112 may be, for example, personal computers or network computers. In the depicted example, server 104 provides data, such as boot files, operating system images, and applications to clients 108-112. Clients 108, 110, and 112 are clients to server 104. Network data processing system 100 may include additional servers, clients, and other devices not shown. In the depicted example, network data processing system 100 is the Internet with network 102 representing a worldwide collection of networks and gateways that use the Transmission Control Protocol/Internet Protocol (TCP/IP) suite of protocols to communicate with one another. At the heart of the Internet is a backbone of high-speed data communication lines between major nodes or host computers, consisting of thousands of commercial, government, educational and other computer systems that route data and messages. Of course, network data processing system 100 also may be implemented as a number of different types of networks, such as for example, an intranet, a local area network (LAN), or a wide area network (WAN). Figure 1 is intended as an example, and not as an architectural limitation for the present invention.
[074] In the depicted example, server 104 may incorporate a viewable video index video analysis system in accordance with the exemplary aspects of the present invention. Server 104 may be coupled to one or more video input device 150-154 which are used to provide video data streams to the server 104. The video input devices 150-154 may be, for example, digital video cameras or the like. Alternatively, the video input devices 150-154 may provide video data streams from stored video data, such as in the case of a video tape player, DVD player, or other video data source having a storage medium upon which the video data may be recorded. The video data streams received from the video input devices 150-154 are analyzed to identify events occurring in the various video
[075] capture areas as well as to generate viewable video indices in the manner described hereafter.
[076] Referring to Figure 2, a block diagram of a data processing system that may be implemented as a server, such as server 104 in Figure 1, is depicted in accordance with a preferred embodiment of the present invention. Data processing system 200 may be a symmetric multiprocessor (SMP) system including a plurality of processors 202 and 204 connected to system bus 206. Alternatively, a single processor system may be employed. Also connected to system bus 206 is memory controller/cache 208, which provides an interface to local memory 209. I/O bus bridge 210 is connected to system bus 206 and provides an interface to I/O bus 212. Memory controller/cache 208 and 1/ O bus bridge 210 may be integrated as depicted.
[077] Peripheral component interconnect (PCI) bus bridge 214 connected to I/O bus 212 provides an interface to PCI local bus 216. A number of modems may be connected to PCI local bus 216. Typical PCI bus implementations will support four PCI expansion slots or add-in connectors. Communications links to clients 108-112 in Figure 1 may be provided through modem 218 and network adapter 220 connected to PCI local bus 216 through add-in connectors.
[078] Additional PCI bus bridges 222 and 224 provide interfaces for additional PCI local buses 226 and 228, from which additional modems or network adapters may be supported. In this manner, data processing system 200 allows connections to multiple network computers. A memory-mapped graphics adapter 230 and hard disk 232 may also be connected to I/O bus 212 as depicted, either directly or indirectly.
[079] Those of ordinary skill in the art will appreciate that the hardware depicted in Figure 2 may vary. For example, other peripheral devices, such as optical disk drives and the like, also may be used in addition to or in place of the hardware depicted. The
[080] depicted example is not meant to imply architectural limitations with respect to the present invention.
[081] The data processing system depicted in Figure 2 may be, for example, an IBM eServer pSeries system, a product of International Business Machines Corporation in Armonk, New York, running the Advanced Interactive Executive (AIX) operating system or LINUX operating system.
[082] With reference now to Figure 3, a block diagram illustrating a data processing system is depicted in which the present invention may be implemented. Data processing system 300 is an example of a client computer, such as client device 108, 110 or 112 in Figure 1. Data processing system 300 employs a peripheral component interconnect (PCI) local bus architecture. Although the depicted example employs a PCI bus, other bus architectures such as Accelerated Graphics Port (AGP) and Industry Standard Architecture (ISA) may be used. Processor 302 and main memory 304 are connected to PCI local bus 306 through PCI bridge 308. PCI bridge 308 also may include an integrated memory controller and cache memory for processor 302. Additional connections to PCI local bus 306 may be made through direct component interconnection or through add-in boards. In the depicted example, local area network (LAN) adapter 310, SCSI host bus adapter 312, and expansion bus interface 314 are connected to PCI local bus 306 by direct component connection. In contrast, audio adapter 316, graphics adapter 318, and audio/video adapter 319 are connected to PCI local bus 306 by add-in boards inserted into expansion slots. Expansion bus interface 314 provides a connection for a keyboard and mouse adapter 320, modem 322, and additional memory 324. Small computer system interface (SCSI) host bus adapter 312 provides a connection for hard disk drive 326, tape drive 328, and CD-ROM drive 330. Typical PCI local bus implementations will support three or four PCI expansion slots or add-in connectors.
[083]
[084] An operating system runs on processor 302 and is used to coordinate and provide control of various components within data processing system 300 in Figure 3. The operating system may be a commercially available operating system, such as Windows XP, which is available from Microsoft Corporation. An object oriented programming system such as Java may run in conjunction with the operating system and provide calls to the operating system from Java programs or applications executing on data processing system 300. "Java" is a trademark of Sun Microsystems, Inc. Instructions for the operating system, the object-oriented programming system, and applications or programs are located on storage devices, such as hard disk drive 326, and may be loaded into main memory 304 for execution by processor 302.
[085] Those of ordinary skill in the art will appreciate that the hardware in Figure 3 may vary depending on the implementation. Other internal hardware or peripheral devices, such as flash read-only memory (ROM), equivalent nonvolatile memory, or optical disk drives and the like, may be used in addition to or in place of the hardware depicted in Figure 3. Also, the processes of the present invention may be applied to a multiprocessor data processing system.
[086] As another example, data processing system 300 may be a stand-alone system configured to be bootable without relying on some type of network communication interfaces As a further example, data processing system 300 may be a personal digital assistant (PDA) device, which is configured with ROM and/or flash ROM in order to provide non-volatile memory for storing operating system files and/or user-generated data.
[087] The depicted example in Figure 3 and above-described examples are not meant to imply architectural limitations. For example, data processing system 300 also may be a notebook computer or hand held computer in addition to taking the form of a PDA. Data processing system 300 also may be a kiosk or a Web appliance.
[088] With reference again to Figure 1, as previously mentioned, the video input devices 150-154 provide video data streams to the server 104 which is equipped with a viewable video index video analysis system in accordance with the exemplary aspects of the present invention. The video data received from the video input devices 150-154 is analyzed by the viewable video index video analysis system to generate an adaptive background model which represents the static aspects of the video capture area in the video data. In addition, the video data is further analyzed to generate foreground appearance models that represent patches which correspond to moving objects in the video capture area in the video data. These patches are used along with the adaptive background model to generate a representation of the video data using a viewable video index.
[089] Frames of the video data are analyzed to associate foreground objects, i.e. objects that move, between frames. In other words, the frames of the video data are analyzed to track object movements over time. The tracking of object movements over time may involve determining the position and size of the object over time, the orientation of the entire object over time, as well as parameters regarding subparts of the object. In some embodiments where models are used to track an object between frames, object classification may be performed based on an analysis of the video data so that an appropriate stored model for the object may be retrieved and used to represent the video data.
[090] The analysis of the video data further includes detecting the occurrence of events that occur within the video capture areas of the video data. These events may include, for example, the occurrence of movement in a particular direction, occurrence of high speed movement, the occurrence of sudden changes in movement, etc. The event detection analysis according to the present invention may produce a sequence of time stamped events.
[091] The result of the above analysis is used to generate a viewable video index. The viewable video index is generated based on user selected parameters that identify the composition of the viewable video index. These parameters may include, for example, the bandwidth requirement of the index and other parameters such as the control types of object representations that are included as part of the index, types of object activities that are included, etc. The generation of this viewable video index will be described in greater detail hereafter.
[092] The viewable video index includes a plurality of data structures that reference the models and data generated through the above analysis. For example, the viewable video index may include a main index directory that references a log file that identifies start and end times of the video data represented by the viewable video index, a camera index directory that includes references to one or more track index files and object model files for foreground or moving objects. These track index files further include track start and end times indicating time points at which the corresponding objects in the object model files move within the video capture area as well as movement information indicating position and optionally, orientation and size information for the corresponding objects represented by the object models. The viewable video index further includes a background update directory that references one or more background image files that represent the static aspects of the video data.
[093] Once this viewable video index is generated, it is stored in association with the actual video data and are used in generating a viewable representation of the video data. The viewable video index is stored in such a manner that it is made available for distribution over the network 102 to one or more client devices. In this way, the video data from the video input devices 150-154 is stored on the server along with the various object models, background model and tracking information and only the viewable video index needs to be distributed to a client device that may be used by a human user whose responsibility it is to monitor the video capture areas represented by the video data received from the video input devices 150-154.
[094] Upon selection of an option to view the video corresponding to the viewable video index, the object models, background model, and tracking information is used to generate a representation of the video data. If the required models and tracking information are not present locally on the client device, these files may be downloaded to the client device via the network 102. If one or more of the files are already present on the client device, they need not be transmitted again. Instead they are retrieved from local storage and used in generating a viewable representation of the video data.
[095] The viewable video index is used by the client device to determine how and where to superimpose the foreground model(s) on a background model and move the foreground model(s) across the background model in accordance with tracking information. In this way, only the data representative of models and tracking information needs to be downloaded for use with the viewable video index, and this may not be necessary every time the viewable video index is utilized, in order to generate a representation of the video data streamed to the server 104 from the video input devices 150 -154. The start and end time stamps associated with the viewable video index may be used to correlate the viewable video index with corresponding time points in the actual video data. In this way, the user may obtain a viewable representation of the video data in order to determine whether further viewing of the actual video data is in order and may easily access the specific portion of the actual video data corresponding to the viewable video index.
[096] Moreover, since only models, tracking information, and the viewable video index are necessary for generating the representation, the amount of data that must be transmitted to client devices is minimized. As a result, low bandwidth client devices, such as personal digital assistants or wireless telephones, may be used as client devices with the present invention.
[097] Figure 4 is an exemplary block diagram illustrating a video analysis engine in accordance with one exemplary embodiment of the present invention. It should be a ppreciated that the elements shown in Figure 4 may be implemented as hardware, software, or any combination of hardware and software, without departing from the spirit and scope of the present invention. In one exemplary embodiment, the elements shown in Figure 4 are implemented as software instructions executed by one or more data processing devices.
[098] As shown in Figure 4, the video analysis engine includes a controller 410, a video input device interface 415, an object detection module 420, a multi-object tracking module 425, an object classification module 430, an event detection module 435, a user specified viewable video index parameter set storage device 440, a viewable video index generator 445, a video data storage device 450, and a network interface 455. The elements 410-455 are in communication with one another via a control/data signal bus 460. Although a bus architecture is shown in Figure 4, the present invention is not limited to such and any architecture that facilitates the communication of control/data signals between the elements 410-460 may be used without departing from the spirit and scope of the present invention.
[099] Controller 410 controls the overall operation of the video analysis engine and orchestrates the operation of the other elements 415-460. The controller 410 receives video data via the video input device interface 415 and stores this video data in the video data storage device 450. In addition, this video data may be provided to the other modules 420-435 for analysis.
[100] The object detection module 420 performs object detection for identifying moving objects in the received video data. The detection of moving objects may be performed in any known manner. For example, a plurality of frames of video data at successive time points may be analyzed to determine differences. A comparison of the differences with pre-established thresholds is utilized to determine if the differences are likely representative of a moving object. The portions of the video data corresponding to the differences are then identified as a moving object. Of course, many other methods for identifying moving objects, some of which are described in the prior art reference in the Background of the Invention section, may be utilized without departing from the spirit and scope of the present invention.
[101] The present invention uses this identification of moving objects to separate out foreground objects, i.e. moving objects, from the static portions of the video data, i.e. the background. A frame of the background video data that does not include the foreground object(s) is stored as an adaptive background model. Periodically, a frame of the background video data may be compared to the currently stored adaptive background model to determine if the background has changed appreciably. This may be done by determining differences between the frame and the stored adaptive background model and determining if these differences exceed an established threshold.
[102] The identified foreground objects are used to generate patches or overlays that represent the foreground objects. The generation of these patches or overlays may be based on a graphical representation of the object extracted from the video data, a generated graphical representation of the object based on attributes identified through analysis of the video data, an object model retrieved based on classification of the object, or the like. In a preferred embodiment, the object patches or overlays are generated by identifying attributes of the object, such as size, color, configuration, etc., and comparing them to attributes of stored object types in order to classify the object as a particular type of object. Thereafter, an object model corresponding to the identified object type is utilized to represent the object. An example of one method by which an object model may be generated for use in representing an object is described in Senior et al., "Appearance Models for Occlusion Handling," Proceedings of Second International Workshop on Performance Evaluation of Tracking and Surveillance Systems in conjunction with CVPR'01, December 2001, which is hereby incorporated by reference.
[103] Having identified the foreground objects and the background of the received video data, the object patches or overlays and the adaptive background model are stored in association with the video data in the storage device 450. The multi-object tracking module 425 receives the foreground object and background information and tracks the trajectory of the foreground objects as they move over the background in the received video data from frame to frame. The multi-object tracking module 425 may use any one or a combination of several processes for tracking objects over time. For example, as described in Senior et al. "Appearance Models for Occlusion Handling," Proceedings of Second International Workshop on Performance Evaluation of Tracking and Surveillance Systems in conjunction with CVPR'01, December 2001, foreground objects are described by a bounding box and an image mask which indicates those pixels in the bounding box that belong to the foreground. In the Senior et al. system, a distance matrix showing the distance between each of the foreground objects and all the currently active tracks is constructed in order to associated the foreground objects with one of the existing tracks in successive frames. For more complex structures in the track matrix produced by the bounding box tracking of Senior et al., appearance based modeling is used. This is but one example of the way in which foreground objects may be tracked, other methods and mechanisms may be used without departing from the spirit and scope of the present invention.
[104] Based on the type of object model used to represent the foreground objects, various parameters of the object may be estimated by the multi-object tracking module 425 at various time points. For example, if the multi-object tracking module 425 uses a position and size tracker mechanism, such as that described in Senior et al. "Real-time Articulated Human Body Tracking Using Silhouette Information," IEEE Workshop on Performance Evaluation of Tracking and Surveillance, Nice, France, October, 2003, which is hereby incorporated by reference, an estimate of the position and size of the object at various time points may be generated. The result of such estimations is a sequence of time stamped position and size values for each unique moving object in the video data. If the multi-object tracking module 425 uses a model based tracker, such as that described in the Senior et al. system, the model that is identified through the classification discussed above may be used as a basis for tracking multiple object parameters from one time point to the next. Such model based tracking mechanisms allow multiple parameters of the object to be estimated including the size, position, and orientation of the entire object and similar parameters for subparts of the object. For example, a person tracker could estimate the pose of the person's head, the position and size of the person's torso and limbs, and the like. Depending on the complexity of the tracking mechanism, multiple time stamped parameter sets may be generated.
[105] While this tracking is being performed, the trajectory information is analyzed to determine if events of interest occur. As noted above, such events may include, for example, movement in a particular direction, the occurrence of high speed movement, occurrence of sudden changes in movement, and the like. Thus, the multi-object tracking module 425 generates a trajectory for each foreground object and a sequence of time stamped events. The trajectory and event information generated by the multi- object tracking module 425 is stored in the storage device 450 in files associated with the various identified foreground objects. There are a variety of events that can be detected. As one example, a directional motion event may be detected. Here the user specifies a target movement direction (as an angle). The system computes the dominant direction of movement for each moving object. This is done by measuring the incremental movement direction (using two position measurements), these incremental directions are used to compute a histogram, the peak of the histogram is used to determine the direction of movement of the object. Once the direction of movement of the object is known, it is compared to the user supplied direction. If the object movement direction is within a specified tolerance of the user specified direction, a directional-movement event is declared. Of course this is but one example of an event that may be detected using the present invention and other events may be defined and detected without departing from the spirit and scope of the present invention.
[106] The viewable video index generator 445 receives information identifying the foreground object patches or layovers, the adaptive background model, the trajectory and event information, and user specified viewable video index parameter set information, and generates a viewable video index from this information. The viewable video index generator 445 generates a data structure having a main index directory that identifies attributes about the portion of video data to which the viewable video index corresponds, a video input device index directory that identifies the foreground object patch or layover files and the trajectory and event information files corresponding to the foreground objects, and a background update directory that identifies the background image files that correspond to the background for the portion of video data represented by the viewable video index, as discussed hereafter. The identifiers in the viewable video index may be, for example, filenames, Internet protocol addresses, file pathnames, and the like.
[107] The content of the viewable video index may be governed by user specified parameters. These user specified parameters may identify, for example, the bandwidth requirement for the viewable video index which in turn determines the amount and kind of information that may be contained within the viewable video index. That is, for lower bandwidth applications, the viewable video index may not be able to include all of the information that would be available for higher bandwidth applications.
[108] Once the viewable video index (VVI) is generated by the VVI generator 445, the VVI is stored in association with the originally received video data, model information, and tracking information in the storage device 450. Either immediately when available, periodically, or upon request, the stored VVI may be transmitted to a client device via the network interface 455. In addition, if necessary, model data and tracking data associated with the VVI may be transmitted to the client device via the network interface 455. The model data and tracking data may be sent in response to a request being received from a client device, for example.
[109] At the client device, the VVI is used by an index browser application to generate a representation of the video data at the client device. The VVI is used to correlate the model data and tracking data to generate the representation of the video data. Based on the VVI, the model information and the tracking information, a display of the background with superimposed object models is generated. The superimposed object models are moved across the background in accordance with the tracking information. In addition, a representation of a timeline represented by the VVI may be generated with event identifiers provided. The user of the client device may select the event identifiers in order for the representation of the video data to jump to a representation of the video corresponding to the event start time for the selected event. Since the tracking information is a time stamped trajectory and a time stamped sequence of events, the time stamps may be used to correlate the events and trajectory information to determine where and how the foreground object patches or overlays are to be placed over the background model representation.
[110] Since the generation of the representation of the video data requires the use of background models, foreground models, tracking information, and the like, it is important that this information be locally accessible by the client device. If this information is not current stored in the client device, it may be downloaded from the storage device 450. If the information is already present locally, there is no need to download the information from the storage device 450. Thus, the present invention minimizes the amount of data that needs to be transmitted to the client device by eliminating the need to transmit the actual video data and by only requiring model information to be downloaded to the client device when it is not already present locally at the client device. As a result, low bandwidth applications on client devices may be utilized to generate the representation of the video data on the client device. This permits client devices such as personal digital assistants and wireless communication devices to be used as devices through which a user may monitor the video capture areas of the various video input devices.
[I l l] Figure 5 is an exemplary diagram illustrating an example of the structure of a viewable video index for a sampled video stream generated by a video analysis engine in accordance with one exemplary embodiment of the present invention. As shown in Figure 5, the viewable video index (VVI) includes a main index directory 510 that references a log file 520, a camera index directory 530, and a background update dire ctory 540. The main index directory may further include information identifying general parameters for outputting a viewable video index such as the types of encryption used for the index files, the version number of the index, the video source name and characteristics from which the index was derived, and the like.
[112] The log file 520 referenced by the main index directory 510 includes an index start time and an index end time for the viewable video index. The log file 520 encodes global properties of the viewable video index. The log file 520 may include, for example, statistics summarizing the activity in the index, such as the total number of objects in the scene, distribution of objects by type, etc.
[113] The camera index directory 530 includes references to object model files 535 and their corresponding tracking files 537. The object model files include an object patch 550 or overlay and an object mask 560. The object mask 560 is used to remove a portion of the background model for use in superimposing the object patch 550. The corresponding tracking files 537 consist of index data for each frame of the video. There may be separate tracking files 537 for each object or a single tracking file that includes references to each foreground object, depending on the particular implementation.
[114] An example of the index data for frames of the video that may be included in the tracking files is shown in Figure 6. As shown in Figure 6, the index data may include, for example, a start frame identifier 610, a timestamp for the frame 620, a centroid location 630 for the frame, an area 640 of the frame, bounding box parameters 650, a missing pixel count 660, an occlusion fraction 670, an object class 680, a model track number 690, and an end frame identifier 695. The above elements represent various properties of the objects that are being tracked at any given time instant. For example, the time stamp 620 represents the time at which the index data was gathered, the centroid location 630 is the location of the object in the image frame, the area 640 represents the extent of the object in pixels, etc. This list of properties can be changed based on the index parameters set by the user.
[115] The background update directory 540 references one or more background image files that are used to represent the background of the video data. If the background changes appreciably during the time interval represented by the viewable video index, more than one background image file may be referenced in the background update directory 540. In addition, timestamps may be associated with the background image files to determine when to change the background file that is used to generate the representation of the video data.
[116] As mentioned above, the information contained in the viewable video index shown in Figure 5 is used to generate a representation of the video data. Figure 7 is an exemplary diagram of a visual output generated based on a viewable video index in accordance with one exemplary embodiment of the present invention.
[1 17] As shown in Figure 7, the video representation includes a background image 710 with a superimposed foreground object model patch or overlay 720 that represents a moving object in the video data. In addition, a timeline representation 730 is provided with event markers 740 identifying portions of the video data represented by the viewable video index where events were detected to have occurred.
[1 18] As the video representation is viewed, the superimposed foreground model patch or overlay 720 may be moved across the background image in accordance with the tracking information identified in the viewable video index. In addition, the superimposed foreground object model patch may have its size, orientation, and other parameters modified in accordance with the parameters recorded with the tracking information as previously described above. In this way, a representation of the video data is generated from a static background image and models of foreground or moving objects.
[119] Other characteristics of the viewable video index may be displayed on the video representation. For example, a trail may be displayed indicating the movement of the superimposed foreground object model patch or overlay 720. Other information, including timestamp information and the like may be displayed in the video repre- sentation.
[120] As mentioned above, the timeline representation 730 includes the event markers 740 based on the sequence of events indicated in the tracking files. These event markers 740 are selectable so that the video representation may be jumped to a video representation corresponding to the start timestamp associated with the selected event marker.
[121] Thus, the video representation provides enough information for a user to view the video representation and determine if there is sufficient reason to view the actual video data to determine if something of interest has occurred within the video capture area of the video input device. This is done while minimizing the amount of data that needs to be transmitted to the client device. The need to actually transmit the video data to the client device is avoided. A much smaller amount of data including the viewable video index, model data, and the tracking files are all that is necessary to generate a representation of the video data.
[122] Figures 8 and 9 illustrate flowcharts outlining exemplary operations of various elements of the present invention. It will be understood that each block of the flowchart illustrations, and combinations of blocks in the flowchart illustrations, can be implemented by computer program instructions. These computer program instructions may be provided to a processor or other programmable data processing apparatus to produce a machine, such that the instructions which execute on the processor or other programmable data processing apparatus create means for implementing the functions specified in the flowchart block or blocks. These computer program instructions may also be stored in a computer-readable memory or storage medium that can direct a processor or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory or storage medium produce an article of manufacture including instruction means which implement the functions specified in the flowchart block or blocks.
[123] Accordingly, blocks of the flowchart illustrations support combinations of means for performing the specified functions, combinations of steps for performing the specified functions and program instruction means for performing the specified functions. It will also be understood that each block of the flowchart illustrations, and combinations of blocks in the flowchart illustrations, can be implemented by special purpose hardware-based computer systems which perform the specified functions or steps, or by combinations of special purpose hardware and computer instructions.
[124] Figure 8 is a flowchart outlining an exemplary operation of one exemplary embodiment of the present invention when generating a viewable video index. As shown in Figure 8, the operation starts by receiving video data (step 810). Foreground and background elements of the video data are identified (step 820) and models rep- resenting the foreground objects and background elements are generated (step 830). Movement of the foreground objects over the background is then tracked for a predetermined period to generate tracking and object parameter information (step 840). In addition, the video data is analyzed to determine the occurrence of events and a sequence of events is generated (step 850). The models, tracking and event information are then utilized to generate a viewable video index (step 860) by generating a data structure with parameters and references to the model, tracking and event files. The viewable video index is then stored (step 870) and may be transmitted to a client device (step 880). The operation then ends.
[125] Figure 9 is a flowchart outlining an exemplary operation of one exemplary embodiment of the present invention when generating a visual output using a viewable video index. As shown in Figure 9, the operation starts by receiving, or retrieving from local storage, a viewable video index (step 910). The viewable video index is then parsed to identify the tracking information files, foreground or moving object files, background files, and the like, that are referenced in the viewable video index (step 920). A determination is made as to whether any of the files referenced in the viewable video index are not present locally (step 930). This may be done by comparing the filenames (and optionally the paths) in the viewable video index with a designated storage location on a local storage device to determine if a file with the corresponding filename exists in the local storage device. If any of the files are not present in the local storage device, and a request for the files has not been previously sent within a predetermined period of time, then they are requested from the viewable video index server via a network interface (step 940).
[126] The operation then returns to step 930 and continues to check for the files in the local storage device. Once all of the necessary files referenced in the viewable video index are available locally, a representation of the video data is generated by superimposing the moving object images from the moving object files, at the position identified in the tracking information file, on the background image (step 950). A timeline representation may also be generated that includes event markers indicating time points at which events were detected in the input video data stream (step 960). As mentioned previously, these event markers are selectable in order to jump the representation of the video data to a time point corresponding to the start time of the detected event. The position, size, orientation, and the like, of the moving objects are updated as the representation steps through the time sequence indicated in the tracking information file or in response to the selection of an event marker (step 970). The operation then terminates.
[127] Thus, the present invention provides a mechanism for reducing an input video data stream to a viewable video index, one or more background and moving object model or image files, and a tracking file. In this way, only the viewable video index, the model or image files, and the tracking file need to be transmitted to the client device in order for a representation of the original input video data stream to be generated at the client device. This allows the user of the client device to view the representation in order to obtain greater understanding of the events occurring in the original input video data stream. Based on viewing the representation of the input video data stream, the user may then determine whether further investigation of the depicted events is warranted.
[128] The viewable video index of the present invention provides a complete representation of the input video stream which can be used for distributed processing and after the fact event detection. The viewable video index makes use of models to represent foreground objects. These models may be generated by capturing an area around the points of movement within a series of video frames or may be pre- established models. Since the model data is provided along with the viewable video index, classification of the models into different types of objects, even those that were not envisioned at the time that the viewable video index was generated, may be made through an analysis of the model data. For example, if at the time that the viewable video index is generated, only people and vehicles are established classifications of objects, and later subcategories of trucks and cars are established within the vehicles classification, the model data itself may be re-analyzed based on parameters defining trucks and cars to determine whether the object that was originally classified as a vehicle, is either a truck or a car.
[129] In addition, since the viewable video index is a timestamped representation of a video capture area, the timestamps may be used to correlate the viewable video index with other types of timestamped information, whether generated by the same or a different system. Thus, for example, the viewable video index may be correlated with a security access card swiping device, badge reader, or keypad log file to determine an identity of a particular person within a video capture area represented by the viewable video index. The system of the present invention may be coupled to databases in which such timestamped information is stored and may access this information in order to perform such correlations and provide an output to a user indicative of the correlations, if any, between the viewable video index and these other sources of information.
[130] The viewable video index may also be associated with a particular video capture device and may be marked with an identifier of the particular video capture device, i.e. a camera identifier may be stored in association with a viewable video index generated based on an input video stream from that camera. A data structure may be maintained that indicates the orientation of a plurality of video capture devices in a particular area and the positional relationship between these video capture devices. This information may be correlated with the movement of the objects represented by the viewable video index to determine to which video capture area the object moved when it moves outside of the current video capture area. In this way, by associating the identifier of the particular video capture device with information maintained regarding the layout of video capture devices at a particular location, "camera-handoff ' for tracking an object as it crosses multiple video capture areas is made possible. These and other uses and implementations of the present invention as are apparent to those of ordinary skill in the art in view of the above description, are intended to be within the spirit and scope of the present invention.
[131] It is important to note that while the present invention has been described in the context of a fully functioning data processing system, those of ordinary skill in the art will appreciate that the processes of the present invention are capable of being distributed in the form of a computer readable medium of instructions and a variety of forms and that the present invention applies equally regardless of the particular type of signal bearing media actually used to carry out the distribution. Examples of computer readable media include recordable-type media, such as a floppy disk, a hard disk drive, a RAM, CD-ROMs, DVD-ROMs, and transmission-type media, such as digital and analog communications links, wired or wireless communications links using transmission forms, such as, for example, radio frequency and light wave transmissions. The computer readable media may take the form of coded formats that are decoded for actual use in a particular data processing system.
[132] The description of the present invention has been presented for purposes of illustration and description, and is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art. The embodiment was chosen and described in order to best explain the principles of the invention, the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated.

Claims

Claims
[001] A method, in a data processing system, for representing an input video data stream on a computing device, comprising: receiving the input video data stream; identifying a background image and at least one moving object in the input video data stream; tracking at least one parameter of the at least one moving object over time in the input video data stream to thereby generate tracking information; generating a viewable video index that identifies the tracking information, the at least one moving object and the background image; and transmitting the viewable video index to the computing device.
[002] The method of claim 1, wherein the at least one parameter of the at least one moving object includes a position of the at least one moving object, a size of the at least one moving object, and an orientation of the at least one moving object.
[003] The method of claim 1, wherein the viewable video index identifies a model to be used when generating a representation of the at least one moving object.
[004] The method of claim 1 , wherein generating a viewable video index includes: determining user selected parameters for generation of the viewable video index; and generating the viewable video index based on the user selected parameters.
[005] The method of claim 4, wherein the user selected parameters include a bandwidth requirement for the computing device, and wherein generating the viewable video index based on the user selected parameters includes determining at least one of an amount and a type of information that may be included in the viewable video index based on the bandwidth requirement.
[006] The method of claim 1, further comprising: receiving the viewable video index at the computing device; and generating a graphical representation of the input video data stream based on the viewable video index.
[007] The method of claim 6, wherein generating a graphical representation of the input video data stream includes superimposing a model of the at least one moving object over the background image and moving the model over the background image in accordance with the tracking information.
[008] The method of claim 6, wherein generating a graphical representation of the input video data stream based on the viewable video index includes: determining if either the tracking information, the background image or a model of the at least one moving object are not present locally on the computing device; and transmitting a request to a source of the viewable video index for either the tracking information, the background image or the model of the at least one moving object if either the tracking information, the background image or the model is not present locally on the computing device. [009] A computer program comprising computer program code to, when loaded into a computer system and executed thereon, cause said computer to perform all the steps of a method as claimed in any of claims 1 to 8.
[010] An apparatus for representing an input video data stream on a computing device, comprising: means for receiving the input video data stream; means for identifying a background image and at least one moving object in the input video data stream; means for tracking at least one parameter of the at least one moving object over time in the input video data stream to thereby generate tracking information; means for generating a viewable video index that identifies the tracking information, the at least one moving object and the background image; and means for transmitting the viewable video index to the computing device.
PCT/EP2005/050757 2004-02-24 2005-02-22 System and method for generating a viewable video index for low bandwidth applications WO2005081127A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/785,890 2004-02-24
US10/785,890 US7447331B2 (en) 2004-02-24 2004-02-24 System and method for generating a viewable video index for low bandwidth applications

Publications (2)

Publication Number Publication Date
WO2005081127A2 true WO2005081127A2 (en) 2005-09-01
WO2005081127A3 WO2005081127A3 (en) 2005-11-03

Family

ID=34861709

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2005/050757 WO2005081127A2 (en) 2004-02-24 2005-02-22 System and method for generating a viewable video index for low bandwidth applications

Country Status (2)

Country Link
US (1) US7447331B2 (en)
WO (1) WO2005081127A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2482127A (en) * 2010-07-19 2012-01-25 Ipsotek Ltd Scene object tracking and camera network mapping based on image track start and end points

Families Citing this family (90)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1269754A4 (en) * 2000-03-14 2009-03-11 Joseph Robert Marchese Digital video system using networked cameras
US7868912B2 (en) * 2000-10-24 2011-01-11 Objectvideo, Inc. Video surveillance system employing video primitives
US9892606B2 (en) * 2001-11-15 2018-02-13 Avigilon Fortress Corporation Video surveillance system employing video primitives
US20050146605A1 (en) * 2000-10-24 2005-07-07 Lipton Alan J. Video surveillance system employing video primitives
US8564661B2 (en) 2000-10-24 2013-10-22 Objectvideo, Inc. Video analytic rule detection system and method
US8711217B2 (en) 2000-10-24 2014-04-29 Objectvideo, Inc. Video surveillance system employing video primitives
US7424175B2 (en) 2001-03-23 2008-09-09 Objectvideo, Inc. Video segmentation using statistical pixel modeling
US7650058B1 (en) 2001-11-08 2010-01-19 Cernium Corporation Object selective video recording
ATE454789T1 (en) * 2002-11-12 2010-01-15 Intellivid Corp METHOD AND SYSTEM FOR TRACKING AND MONITORING BEHAVIOR OF MULTIPLE OBJECTS MOVING THROUGH MULTIPLE FIELDS OF VIEW
JP4140567B2 (en) * 2004-07-14 2008-08-27 松下電器産業株式会社 Object tracking device and object tracking method
US9743078B2 (en) 2004-07-30 2017-08-22 Euclid Discoveries, Llc Standards-compliant model-based video encoding and decoding
US8902971B2 (en) 2004-07-30 2014-12-02 Euclid Discoveries, Llc Video compression repository and model reuse
US9532069B2 (en) 2004-07-30 2016-12-27 Euclid Discoveries, Llc Video compression repository and model reuse
WO2008091483A2 (en) * 2007-01-23 2008-07-31 Euclid Discoveries, Llc Computer method and apparatus for processing image data
US9578345B2 (en) 2005-03-31 2017-02-21 Euclid Discoveries, Llc Model-based video encoding and decoding
US7505051B2 (en) * 2004-12-16 2009-03-17 Corel Tw Corp. Method for generating a slide show of an image
ATE500580T1 (en) * 2005-03-25 2011-03-15 Sensormatic Electronics Llc INTELLIGENT CAMERA SELECTION AND OBJECT TRACKING
US7523137B2 (en) * 2005-04-08 2009-04-21 Accenture Global Services Gmbh Model-driven event detection, implication, and reporting system
US11232768B2 (en) 2005-04-12 2022-01-25 Douglas G. Richardson Embedding animation in electronic mail, text messages and websites
WO2007014216A2 (en) 2005-07-22 2007-02-01 Cernium Corporation Directed attention digital video recordation
US8032840B2 (en) * 2006-01-10 2011-10-04 Nokia Corporation Apparatus, method and computer program product for generating a thumbnail representation of a video sequence
US9166883B2 (en) 2006-04-05 2015-10-20 Joseph Robert Marchese Network device detection, identification, and management
CA2649389A1 (en) 2006-04-17 2007-11-08 Objectvideo, Inc. Video segmentation using statistical pixel modeling
US10078693B2 (en) * 2006-06-16 2018-09-18 International Business Machines Corporation People searches by multisensor event correlation
US8090694B2 (en) * 2006-11-02 2012-01-03 At&T Intellectual Property I, L.P. Index of locally recorded content
JP4771424B2 (en) * 2006-12-08 2011-09-14 ソニー株式会社 Information processing apparatus and method, and program
US8243118B2 (en) 2007-01-23 2012-08-14 Euclid Discoveries, Llc Systems and methods for providing personal video services
US8655076B2 (en) * 2007-01-23 2014-02-18 Nec Corporation Marker generating and marker detecting system, method and program
EP2106663A2 (en) * 2007-01-23 2009-10-07 Euclid Discoveries, LLC Object archival systems and methods
US20080303949A1 (en) * 2007-06-08 2008-12-11 Apple Inc. Manipulating video streams
US20090016449A1 (en) * 2007-07-11 2009-01-15 Gene Cheung Providing placement information to a user of a video stream of content to be overlaid
US20090060043A1 (en) * 2007-08-29 2009-03-05 Geert Nuyttens Multiviewer based on merging of output streams of spatio scalable codecs in a compressed domain
US8218811B2 (en) 2007-09-28 2012-07-10 Uti Limited Partnership Method and system for video interaction based on motion swarms
DE102007058959A1 (en) * 2007-12-07 2009-06-10 Robert Bosch Gmbh Configuration module for a monitoring system, monitoring system, method for configuring the monitoring system and computer program
US8601494B2 (en) * 2008-01-14 2013-12-03 International Business Machines Corporation Multi-event type monitoring and searching
US8345098B2 (en) * 2008-03-17 2013-01-01 International Business Machines Corporation Displayed view modification in a vehicle-to-vehicle network
US9043483B2 (en) * 2008-03-17 2015-05-26 International Business Machines Corporation View selection in a vehicle-to-vehicle network
US9123241B2 (en) 2008-03-17 2015-09-01 International Business Machines Corporation Guided video feed selection in a vehicle-to-vehicle network
US8400507B2 (en) * 2008-03-17 2013-03-19 International Business Machines Corporation Scene selection in a vehicle-to-vehicle network
US20100064220A1 (en) * 2008-03-27 2010-03-11 Verizon Data Services India Private Limited Method and system for providing interactive hyperlinked video
CN101547161B (en) * 2008-03-28 2012-09-26 阿里巴巴集团控股有限公司 Folder transmission system, folder transmission device and folder transmission method
JP2011518522A (en) 2008-04-18 2011-06-23 ヴィジブル ワールド インコーポレイテッド System and method for compressed display of long video sequences
US9019381B2 (en) * 2008-05-09 2015-04-28 Intuvision Inc. Video tracking systems and methods employing cognitive vision
TW201005673A (en) * 2008-07-18 2010-02-01 Ind Tech Res Inst Example-based two-dimensional to three-dimensional image conversion method, computer readable medium therefor, and system
EP2345256B1 (en) 2008-10-07 2018-03-14 Euclid Discoveries, LLC Feature-based video compression
US9215467B2 (en) 2008-11-17 2015-12-15 Checkvideo Llc Analytics-modulated coding of surveillance video
US8330611B1 (en) * 2009-01-15 2012-12-11 AvidaSports, LLC Positional locating system and method
JP5393236B2 (en) 2009-04-23 2014-01-22 キヤノン株式会社 Playback apparatus and playback method
TWI437509B (en) * 2009-08-18 2014-05-11 Ind Tech Res Inst Light information receiving method
CN102025515A (en) 2009-09-14 2011-04-20 阿里巴巴集团控股有限公司 File directory based file transmission method, device and system
US9420250B2 (en) * 2009-10-07 2016-08-16 Robert Laganiere Video analytics method and system
US8576283B1 (en) * 2010-01-05 2013-11-05 Target Brands, Inc. Hash-based chain of custody preservation
US9117198B1 (en) * 2010-02-22 2015-08-25 Iheartmedia Management Services, Inc. Listener survey tool with time stamping
EP2383696A1 (en) * 2010-04-30 2011-11-02 LiberoVision AG Method for estimating a pose of an articulated object model
US9716920B2 (en) * 2010-08-05 2017-07-25 Qualcomm Incorporated Signaling attributes for network-streamed video data
US8818025B2 (en) * 2010-08-23 2014-08-26 Nokia Corporation Method and apparatus for recognizing objects in media content
GB2483452A (en) * 2010-09-08 2012-03-14 Saffron Digital Ltd Delivering a media file stored by a content provider to a client, with the media index being sent first
US8902970B1 (en) * 2010-12-01 2014-12-02 Amazon Technologies, Inc. Altering streaming video encoding based on user attention
JP2012124739A (en) * 2010-12-09 2012-06-28 Sony Corp Image processing apparatus and image processing method
TWI439967B (en) * 2011-10-31 2014-06-01 Hon Hai Prec Ind Co Ltd Security monitor system and method thereof
CA2822217A1 (en) 2012-08-02 2014-02-02 Iwatchlife Inc. Method and system for anonymous video analytics processing
CN103020260A (en) * 2012-12-24 2013-04-03 中国科学院半导体研究所 Video query method
US9495759B2 (en) * 2014-02-26 2016-11-15 Apeiros, Llc Mobile, wearable, automated target tracking system
US10097851B2 (en) 2014-03-10 2018-10-09 Euclid Discoveries, Llc Perceptual optimization for model-based video encoding
US9621917B2 (en) 2014-03-10 2017-04-11 Euclid Discoveries, Llc Continuous block tracking for temporal prediction in video encoding
US10091507B2 (en) 2014-03-10 2018-10-02 Euclid Discoveries, Llc Perceptual optimization for model-based video encoding
US9417911B2 (en) 2014-03-12 2016-08-16 Live Planet Llc Systems and methods for scalable asynchronous computing framework
ES2730404T3 (en) * 2014-04-04 2019-11-11 Red Com Llc Camcorder with capture modes
US9503467B2 (en) 2014-05-22 2016-11-22 Accenture Global Services Limited Network anomaly detection
US9699488B2 (en) * 2014-06-02 2017-07-04 Google Inc. Smart snap to interesting points in media content
US9716721B2 (en) 2014-08-29 2017-07-25 Accenture Global Services Limited Unstructured security threat information analysis
US9407645B2 (en) 2014-08-29 2016-08-02 Accenture Global Services Limited Security threat information analysis
US10424341B2 (en) * 2014-11-12 2019-09-24 Massachusetts Institute Of Technology Dynamic video summarization
US10475185B1 (en) 2014-12-23 2019-11-12 Amazon Technologies, Inc. Associating a user with an event
US10552750B1 (en) 2014-12-23 2020-02-04 Amazon Technologies, Inc. Disambiguating between multiple users
US10438277B1 (en) 2014-12-23 2019-10-08 Amazon Technologies, Inc. Determining an item involved in an event
JP5915960B1 (en) * 2015-04-17 2016-05-11 パナソニックIpマネジメント株式会社 Flow line analysis system and flow line analysis method
US9979743B2 (en) 2015-08-13 2018-05-22 Accenture Global Services Limited Computer asset vulnerabilities
US9886582B2 (en) 2015-08-31 2018-02-06 Accenture Global Sevices Limited Contextualization of threat data
JP2018533295A (en) * 2015-09-25 2018-11-08 クゥアルコム・インコーポレイテッドQualcomm Incorporated System and method for video processing
JP6558579B2 (en) 2015-12-24 2019-08-14 パナソニックIpマネジメント株式会社 Flow line analysis system and flow line analysis method
US10497130B2 (en) 2016-05-10 2019-12-03 Panasonic Intellectual Property Management Co., Ltd. Moving information analyzing system and moving information analyzing method
CN106202157A (en) * 2016-06-23 2016-12-07 深圳市华域无线技术股份有限公司 Video method for quickly retrieving based on time stream
US10095932B2 (en) * 2016-12-22 2018-10-09 Sap Se Video abstract using signed foreground extraction and fusion
JP6912925B2 (en) * 2017-04-21 2021-08-04 オリンパス株式会社 Image recording / playback device and endoscopic system
US11934937B2 (en) 2017-07-10 2024-03-19 Accenture Global Solutions Limited System and method for detecting the occurrence of an event and determining a response to the event
CN107944960A (en) * 2017-11-27 2018-04-20 深圳码隆科技有限公司 A kind of self-service method and apparatus
CN110944362B (en) * 2019-03-01 2020-12-22 浙江欧托电气有限公司 Dynamic adjusting method for mobile communication bandwidth
CN109743759B (en) * 2019-03-01 2020-11-10 浙江蓝天知识产权运营管理有限公司 Dynamic adjusting device for mobile communication bandwidth
CN113254702A (en) * 2021-05-28 2021-08-13 浙江大华技术股份有限公司 Video recording retrieval method and device

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1995010915A1 (en) * 1993-10-12 1995-04-20 Orad, Inc. Sports event video
US5521841A (en) 1994-03-31 1996-05-28 Siemens Corporate Research, Inc. Browsing contents of a given video sequence
US6271892B1 (en) * 1994-06-02 2001-08-07 Lucent Technologies Inc. Method and apparatus for compressing a sequence of information-bearing frames having at least two media
US5959673A (en) 1995-10-05 1999-09-28 Microsoft Corporation Transform coding of dense motion vector fields for frame and object based video coding applications
US6026183A (en) 1995-10-27 2000-02-15 Texas Instruments Incorporated Content-based video compression
US5969755A (en) * 1996-02-05 1999-10-19 Texas Instruments Incorporated Motion based event detection system and method
US6614847B1 (en) 1996-10-25 2003-09-02 Texas Instruments Incorporated Content-based video compression
US6173317B1 (en) * 1997-03-14 2001-01-09 Microsoft Corporation Streaming and displaying a video stream with synchronized annotations over a computer network
US6185314B1 (en) * 1997-06-19 2001-02-06 Ncr Corporation System and method for matching image information to object model information
US6169573B1 (en) 1997-07-03 2001-01-02 Hotv, Inc. Hypervideo system and method with object tracking in a compressed digital video environment
US6560281B1 (en) 1998-02-24 2003-05-06 Xerox Corporation Method and apparatus for generating a condensed version of a video sequence including desired affordances
US6400831B2 (en) * 1998-04-02 2002-06-04 Microsoft Corporation Semantic video object segmentation and tracking
US6385772B1 (en) 1998-04-30 2002-05-07 Texas Instruments Incorporated Monitoring system having wireless remote viewing and control
US6366296B1 (en) 1998-09-11 2002-04-02 Xerox Corporation Media browser using multimodal analysis
US6389168B2 (en) 1998-10-13 2002-05-14 Hewlett Packard Co Object-based parsing and indexing of compressed video streams
US6424370B1 (en) 1999-10-08 2002-07-23 Texas Instruments Incorporated Motion based event detection system and method
US20020008758A1 (en) 2000-03-10 2002-01-24 Broemmelsiek Raymond M. Method and apparatus for video surveillance with defined zones
US6870945B2 (en) 2001-06-04 2005-03-22 University Of Washington Video object tracking by estimating and subtracting background
US20030081564A1 (en) 2001-10-29 2003-05-01 Chan James C. K. Wireless transmission and recording of images from a video surveillance camera
KR100411437B1 (en) 2001-12-28 2003-12-18 엘지전자 주식회사 Intelligent news video browsing system
KR100480780B1 (en) 2002-03-07 2005-04-06 삼성전자주식회사 Method and apparatus for tracking an object from video data

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
FORESTI G L ET AL: "STATISTICAL MORPHOLOGICAL SKELETON FOR REPRESENTING AND CODING NOISY SHAPES" IEE PROCEEDINGS: VISION, IMAGE AND SIGNAL PROCESSING, INSTITUTION OF ELECTRICAL ENGINEERS, GB, vol. 146, no. 2, April 1999 (1999-04), pages 85-92, XP000833797 ISSN: 1350-245X *
KOMPATSIARIS I ET AL: "SPATIOTEMPORAL SEGMENTATION AND TRACKING OF OBJECTS FOR VISUALIZATION OF VIDEOCONFERENCE IMAGE SEQUENCES" IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, IEEE INC. NEW YORK, US, vol. 10, no. 8, December 2000 (2000-12), pages 1388-1402, XP000975850 ISSN: 1051-8215 *
R.T. COLLINS, A.J. LIPTON, H. FUJIYOSHI, T. KANADE: "Algorithms for cooperative multisensor surveillance" PROCEEDINGS OF THE IEEE, vol. 89, no. 10, October 2001 (2001-10), pages 1456-1477, XP002342459 *
REGAZZONI C S ET AL: "3D pose estimation and shape coding of moving objects based on statistical morphological skeleton" PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON IMAGE PROCESSING. (ICIP). WASHINGTON, OCT. 23 - 26, 1995, LOS ALAMITOS, IEEE COMP. SOC. PRESS, US, vol. VOL. 3, 23 October 1995 (1995-10-23), pages 612-615, XP010197259 ISBN: 0-7803-3122-2 *
WREN C R ET AL: "PFINDER: REAL-TIME TRACKING OF THE HUMAN BODY" IEEE TRANSACTIONS ON PATTERN ANALYSIS AND MACHINE INTELLIGENCE, IEEE INC. NEW YORK, US, vol. 19, no. 7, July 1997 (1997-07), pages 780-785, XP000698177 ISSN: 0162-8828 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2482127A (en) * 2010-07-19 2012-01-25 Ipsotek Ltd Scene object tracking and camera network mapping based on image track start and end points
GB2482127B (en) * 2010-07-19 2015-01-14 Ipsotek Ltd Apparatus, system and method
US9336451B2 (en) 2010-07-19 2016-05-10 Ipsotek Ltd. Video surveillance and analytics system
US9363489B2 (en) 2010-07-19 2016-06-07 Ipsotek Ltd. Video analytics configuration

Also Published As

Publication number Publication date
US7447331B2 (en) 2008-11-04
US20050185823A1 (en) 2005-08-25
WO2005081127A3 (en) 2005-11-03

Similar Documents

Publication Publication Date Title
US7447331B2 (en) System and method for generating a viewable video index for low bandwidth applications
CN102542249B (en) Face recognition in video content
EP2717564B1 (en) Method, device and system for realizing video retrieval
US7746378B2 (en) Video analysis, archiving and alerting methods and apparatus for a distributed, modular and extensible video surveillance system
US20200074156A1 (en) Emotion detection enabled video redaction
US11676389B2 (en) Forensic video exploitation and analysis tools
US20080123967A1 (en) System and method for parallel image processing
WO2003049430A3 (en) Adaptive environment system and method of providing an adaptive environment
EP3229174A1 (en) Method for video investigation
KR102028930B1 (en) method of providing categorized video processing for moving objects based on AI learning using moving information of objects
CN111881320A (en) Video query method, device, equipment and readable storage medium
KR101964230B1 (en) System for processing data
CN112364950A (en) Event positioning method and system based on three-dimensional geographic information scene
US11706381B2 (en) Selective obfuscation of objects in media content
CN110365995A (en) The stream media service method and system of augmented reality label are merged in video
CN114333418B (en) Data processing method for automatic driving and related device
US20220375501A1 (en) Automated classification and indexing of events using machine learning
Little et al. Identifying and addressing challenges for search and analysis of disparate surveillance video archives
Oh et al. Content-based intermedia synchronization
Chauhan et al. Smart surveillance based on video summarization: a comprehensive review, issues, and challenges
DeAngelus et al. On-demand Forensic Video Analytics for Large-Scale Surveillance Systems
CN113254702A (en) Video recording retrieval method and device
Aziz et al. Acquiring Digital Evidence from Health and Safety Devices
CN115861914A (en) Method for assisting user in searching specific target
Ellis et al. Benchmark datasets for detection and tracking

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DPEN Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed from 20040101)
122 Ep: pct application non-entry in european phase