Patent Publication Number: US-11032017-B2

Title: System and method for identifying the context of multimedia content elements

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application claims the benefit of U.S. Provisional Application No. 61/889,545 filed on Oct. 11, 2013, the contents of which are hereby incorporated by reference. This application is also a continuation-in-part (CIP) of U.S. patent application Ser. No. 13/770,603 filed on Feb. 19, 2013, now pending. The Ser. No. 13/770,603 application is a CIP of U.S. patent application Ser. No. 13/624,397 filed on Sep. 21, 2012, now pending. The Ser. No. 13/624,397 is a CIP of:
         (a) U.S. patent application Ser. No. 13/344,400 filed on Jan. 5, 2012, now pending, which is a continuation of U.S. patent application Ser. No. 12/434,221, filed May 1, 2009, now U.S. Pat. No. 8,112,376;   (b) U.S. patent application Ser. No. 12/195,863, filed Aug. 21, 2008, now U.S. Pat. No. 8,326,775, which claims priority under 35 USC 119 from Israeli Application No. 185414, filed on Aug. 21, 2007, and which is also a continuation-in-part of the below-referenced U.S. patent application Ser. No. 12/084,150; and,   (c) U.S. patent application Ser. No. 12/084,150 having a filing date of Apr. 7, 2009, now U.S. Pat. No. 8,655,801, which is the National Stage of International Application No. PCT/IL2006/001235 filed on Oct. 26, 2006, which claims foreign priority from Israeli Application No. 171577 filed on Oct. 26, 2005 and Israeli Application No. 173409 filed on Jan. 29, 2006.   All of the applications referenced above are herein incorporated by reference for all that they contain.       

    
    
     TECHNICAL FIELD 
     The present invention relates generally to the analysis of multimedia content, and more specifically to a system for identifying a context of the multimedia content. 
     BACKGROUND 
     In the related art there are different techniques for identifying the context of multimedia content. One optional technique for determining a context of multimedia content (e.g., an image) is based on metadata data associated with the multimedia content. The metadata is typically associated with a multimedia content element and includes parameters such as the element&#39;s size, type, name, a short description, and so on. Attributes of the metadata may be mapped to various context categories, such as sports, friends, pets, and so on. For example, if a metadata attribute would include the name of the basketball player “Kobe Bryant” the respective image would be mapped to a sports context. 
     However, the attributes of metadata associated with multimedia content of the element are typically provided by the creator of the multimedia content or by a person saving or placing the multimedia content in a local device and/or a website. Therefore, the metadata, in most cases, is not sufficiently descriptive of the multimedia element. For example, a user may save a picture featuring a cat under the file name of “weekend fun.” In such an example, the metadata would not be descriptive of the contents of the picture. 
     Furthermore, techniques for determining the context of multimedia content based on their metadata or other textual information associated with the content cannot provide the current context of the multimedia content. As an example, consider an image of a sushi dish; the context can be distinguished between whether it is a dish currently served to a user at a restaurant or whether it is a recipe to prepare the dish. In addition, currently there is no available solution to determine the context of dynamic objects shown within multimedia content. 
     It would therefore be advantageous to provide a solution that would overcome the deficiencies noted above. 
     SUMMARY 
     A summary of several example embodiments of the disclosure follows. This summary is provided for the convenience of the reader to provide a basic understanding of such embodiments and does not wholly define the breadth of the disclosure. This summary is not an extensive overview of all contemplated embodiments, and is intended to neither identify key or critical elements of all embodiments nor delineate the scope of any or all embodiments. Its sole purpose is to present some concepts of one or more embodiments in a simplified form as a prelude to the more detailed description that is presented later. For convenience, the term some embodiments may be used herein to refer to a single embodiment or multiple embodiments of the disclosure. 
     The disclosure relates in various embodiments to a method and system for determining a current context of a multimedia content element. The method comprises receiving at least one multimedia content element from a user device; receiving at least one environmental variable related to the at least one multimedia content element; generating at least one signature for the multimedia content element; determining a context of the at least one multimedia content element based on the at least one contextual parameter; and determining the current context of the at least one multimedia content element based on at least one contextual parameter and the determined context. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The subject matter disclosed herein is particularly pointed out and distinctly claimed in the claims at the conclusion of the specification. The foregoing and other objects, features, and advantages of the invention will be apparent from the following detailed description taken in conjunction with the accompanying drawings. 
         FIG. 1  is a schematic block diagram of a network system utilized to describe the various embodiments disclosed herein; 
         FIG. 2  is a flowchart describing a method of determining a current context of a multimedia content according to one embodiment; 
         FIG. 3  is a block diagram depicting the basic flow of information in the signature generator system; and 
         FIG. 4  is a diagram showing the flow of patches generation, response vector generation, and signature generation in a large-scale speech-to-text system. 
     
    
    
     DETAILED DESCRIPTION 
     It is important to note that the embodiments disclosed herein are only examples of the many advantageous uses of the innovative teachings herein. In general, statements made in the specification of the present application do not necessarily limit any of the various claimed inventions. Moreover, some statements may apply to some inventive features but not to others. In general, unless otherwise indicated, singular elements may be in plural and vice versa with no loss of generality. In the drawings, like numerals refer to like parts through several views. 
     Certain exemplary embodiments disclosed herein provide a system and method that determine the context of one or more multimedia content elements, or portions thereof. Accordingly, at least one signature is generated for each multimedia content element, or portion thereof, received from a user device  120 . In addition, at least one environmental variable is received from the user device  120 . Then, respective of the signatures at least a first contextual parameter is determined and respective of the at least one environmental variable, at least a second contextual parameter is determined. Based on at least the first contextual parameter and at least the second contextual parameter, the context of the multimedia content elements is determined. 
       FIG. 1  shows an exemplary and non-limiting schematic diagram of a network system  100  utilized to describe the various embodiments disclosed herein. A network  110  is used to communicate between different parts of the system  100 . The network  110  may be the Internet, the world-wide-web (WWW), a local area network (LAN), a wide area network (WAN), a metro area network (MAN), and other networks capable of enabling communication between the elements of the system  100 . 
     One or more user devices  120 - 1  through  120 - n  (collectively referred hereinafter as user devices  120  or individually as a user device  120 , merely for simplicity purposes), such as, for example, a personal computer (PC), a personal digital assistant (PDA), a mobile phone, a smart phone, a tablet computer, a wearable computing device and other kinds of wired and/or mobile appliances, equipped with browsing, viewing, listening, filtering, and managing capabilities etc., are connected to the network  110 . In an exemplary implementation, some or all of the user devices  120  are configured to capture multimedia content, for example, using a camera embedded in a user device  120 . 
     In an embodiment, each user device  120  is further configured to collect one or more environmental variables related to the captured multimedia content. Such variables may include, but are not limited to, a time that the multimedia element was captured, a location of a user device  120 , motion information related to a user device  120 , weather information within the location, and so on. 
     In one configuration, the environment variables are captured by a software application (app)  125 . As a non-limiting example, the user device  120 - 1  may further comprise an application software (app)  125 - 1  installed therein. The application  125 - 1  may be downloaded from an application repository such as, e.g., the AppStore®, Google Play®, or any repositories hosting software applications. The application  125  may be pre-installed in the user device  120 . In one embodiment, the application  125  is a web-browser. 
     A data warehouse  150  is also included the system  100 . In one configuration, the context server  130  communicates with a data warehouse  150  through the network  110 . In other non-limiting configurations, the context server  130  is directly connected to the data warehouse  150 . 
     The various embodiments disclosed herein are realized using the context server  130  and a signature generator system (SGS)  140 . The SGS  140  may be connected to the context server  130  directly or through the network  110 . The context server  130  is configured to receive and serve multimedia content and to cause the SGS  140  to generate a signature respective of the multimedia content elements. The process for generating the signatures for multimedia content is explained in more details herein below with respect to  FIGS. 3 and 4 . A multimedia content may include, for example, an image, a graphic, a video signal, an audio signal, a photograph, and an image of signals (e.g., spectrograms, phasograms, scalograms, etc.), and/or combinations thereof and portions thereof. 
     According to the embodiments disclosed herein the current context of a multimedia content elements or elements is determined based, in part, on at least one environmental variable respective of the at least one multimedia content element. To this end, the context server  130  is configured to receive a multimedia content element and at least one parameter related to such element from the user device  120 . The multimedia content element may be captured, stored, or downloaded by the user device  120 . For each received multimedia content element at least one signature is generated using the SGS  140 . The at least one generated signature is robust to noise and distortion as discussed below. 
     Based on the generated signatures, the context of the received multimedia content element is determined. A context is a set of common patterns among concepts. Mathematically, a context can be represented as a matrix of co-occurrences of concepts. A threshold may be associated with the number of co-occurrences of concepts in the matrix to establish a context. A concept is a collection of signatures representing a multimedia element and metadata describing the concept. The collection is a signature reduced cluster generated by inter-matching the signatures generated for the many multimedia elements, clustering the inter-matched signatures, and providing a reduced cluster set of such clusters. As a non-limiting example, a ‘Superman concept’ is a signature reduced cluster of signatures describing elements (such as multimedia content elements) related to, e.g., a Superman cartoon: a set of metadata consisting of textual representations of the Superman concept. Techniques for generating concepts and concept structures are described further in the U.S. Pat. No. 8,266,185 to Raichelgauz, et al., which is assigned to common assignee, and is incorporated hereby by reference for all that it contains. 
     In certain implementations, one or more probabilistic models may be utilized to determine the correlation between signatures representing concepts in order to determine the context. The probabilistic models determine, for example, the probability that a signature may appear in the same orientation and in the same ratio as another signature. 
     As an example for a context of multimedia content, an image may represent palm trees and a beach. In this example, the context of the image may be determined to be “sea shore.” 
     In another embodiment a context of a received multimedia content element may be retrieved from a data warehouse  150  based on the signature(s) generated for the multimedia content. 
     The context server  130  is further configured to analyze the at least one environmental variable in order to add another layer to the context defining current attributes to associate with the context. The analysis of the at least one environmental variable includes generating at least one contextual parameter related to the received variable. For example, if the environmental variable includes a location, the context server  130  would determine a contextual parameter related to the location, e.g., shopping mall, restaurant, outdoors, or exact location of the user. As in the above example, if the image of the beach is received with a location of Venice Beach, the context can be updated from “sea shore” to “California sea shore”. 
     As another example, an image is captured by a user device  120  and analyzed by the context server  130 . The image includes visual representations of a piece of tuna fish and cucumber. Then, the determined context in this example is “sushi”. The received environmental variable is a restaurant name the user of the device  120  previously checked. Thus, based on the analysis of the environmental variable the contextual parameter is determined to be “Japanese restaurant” and respective thereof another layer is added to the determined context to note “sushi served in a Japanese restaurant.” 
     In a non-limiting embodiment, the contextual parameter is determined by comparing the received variable or variables to a plurality of concepts. The metadata associated with the concept can serve as the contextual parameter. A database for maintaining concepts to be utilized for the comparison can be found in a co-pending U.S. patent application Ser. No. 13/766,463, filed Feb. 13, 2013, assigned to common assignee, which is hereby incorporated by reference for all the useful information it contains. The database of concepts can be part of the data warehouse  150 . In another embodiment, the received variable is explicitly used as the contextual parameter if the received parameter is determined to be descriptive. 
     According to another embodiment, the context server  130  is further configured to search the data warehouse  150  for a matching advertisement based on the determined current context. An example for matching an advertisement based on the determined context is disclosed in a co-pending U.S. patent application Ser. No. 13/770,603, filed Feb. 19, 2013, assigned to common assignee, which is hereby incorporated by reference for all the useful information it contains. 
     It should be noted that using signatures and environmental variables for determining the context and thereby for the searching of advertisements ensures more accurate reorganization of multimedia content than, for example, when using metadata. For instance, in order to provide a matching advertisement for a sports car it may be desirable to locate a car of a particular model. However, in most cases the model of the car would not be part of the metadata associated with the multimedia content (image). Moreover, the car shown in an image may be at angles different from the angles of a specific photograph of the car that is available as a search item. The signature generated for that image would enable accurate recognition of the model of the car because the signatures generated for the multimedia content elements, according to the disclosed embodiments, allow for recognition and classification of multimedia content elements, such as, content-tracking, video filtering, multimedia taxonomy generation, video fingerprinting, speech-to-text, audio classification, element recognition, video/image search and any other application requiring content-based signatures generation and matching for large content volumes such as, web and other large-scale databases. 
     It should be noted that each of the context server  130  and the SGS  140  typically comprises a processing system (not shown) that is coupled to a memory (not shown), and optionally a network interface (not shown). The processing system is connected to the memory, which typically contains instructions that can be executed by the processing system. The context server  130  may also include a network interface (not shown) to the network  110 . In one embodiment, the processing system is realized by or includes an array of Computational Cores configured as discussed in more detail below. In another embodiment, the processing system of each of the context server  130  and SGS  140  may comprise or be a component of a larger processing system implemented with one or more processors. The one or more processors may be implemented with any combination of general-purpose microprocessors, microcontrollers, digital signal processors (DSPs), field programmable gate array (FPGAs), programmable logic devices (PLDs), controllers, state machines, gated logic, discrete hardware components, dedicated hardware finite state machines, or any other suitable entities that can perform calculations or other manipulations of information. 
       FIG. 2  depicts an exemplary and non-limiting flowchart  200  describing a method for identifying a current context to multimedia content according to one embodiment. In S 210 , at least one multimedia content element (MMCE) is received from a user device  120 . The received multimedia content element may be stored, captured or downloaded from the user device  120 . In an embodiment, the received multimedia content element may be embedded in a web page viewed by a user of the user device  120 . 
     In S 220 , at least one signature for the multimedia content element is generated. The signature for the multimedia content element generated by a signature generator is described below with respect to  FIGS. 3 and 4 . 
     In S 230 , respective of the at least one generated signature a context of the multimedia content element is determined. In one embodiment, a context server is configured to analyze the correlation between the signatures generated for multimedia content element, or portions thereof. Each signature may represent a different concept. The signatures are analyzed to determine the correlation concepts. As noted above, a concept is an abstract description of the content to which the signature was generated. For example, a concept of the signature generated for a picture showing a bouquet of red roses is “flowers”. The correlation between concepts can be achieved by identifying a ratio between signatures&#39; sizes, a spatial location of each signature, and so on using probabilistic models. The probabilistic models determine, for example, the probability that a signature may appear in the same orientation and in the same ratio as another signature. In another embodiment, the at least one generated signature can be utilized to retrieved a matching context, for example, from a data warehouse  150 . 
     In S 240 , at least one environmental variable respective of the at least one multimedia content element is received from the user device. The environmental variable may be for example a time that the multimedia element was captured, a location of a user device  120 , motion information related to a user device  120 , weather information within the location, and so on. The environmental variables are collected by the user device (e.g., a user device  120 ) and/or an application (e.g., app  125 ) installed therein. In certain embodiments, the environmental variable is received together with the multimedia content element. 
     In S 250 , respective of the at least one environmental variable, a contextual parameter is determined. As noted above, the contextual parameter may be determined by comparing the environmental variable to a plurality of concepts. The metadata of the matching concept is determined to be the contextual parameter. In another embodiment, the received variable is explicitly used as the contextual parameter if the received parameter is determined to be descriptive. 
     In S 260 , a current context is determined based on the contextual parameter and the context of the at least one multimedia content element. In an exemplary embodiment, the contextual parameter is added as another layer to the context determined at S 240  to better define the current relevancy of the context. Therefore, the current context provides an accurate and current interpretation or representation for the received multimedia content element. 
     As a non-limiting example, an image showing a panda bear is received from a user device together with a user location at a shopping mall as the variable. Based on the signatures generated for the panda bear image, the determined context is “mammal”. An analysis of the received environmental results in a contextual parameter of a “toys store”. Respective thereto, the current context of the received content element is determined to be “toys.” 
     In S 270 , it is checked whether there are additional multimedia content elements to analyze multimedia content elements, and if so, execution continues with S 210 ; otherwise, execution terminates. 
     It should be noted that the order of which the steps are performed in  FIG. 2  is not limiting. For example, in certain implementations the variable is received after or together with the multimedia content element, the determination of the contextual parameter may be performed the determination of the context, and so on. It should be further that the method disclosed can be performed by the context server  130 . In certain implementations, the disclosed embodiments can be performed by a user device  120 . 
       FIGS. 3 and 4  illustrate the generation of signatures for the multimedia content elements by the SGS  140  according to one embodiment. An exemplary high-level description of the process for large scale matching is depicted in  FIG. 3 . In this example, the matching is for a video content. 
     Video content segments  2  from a Master database (DB)  6  and a Target DB  1  are processed in parallel by a large number of independent computational Cores  3  that constitute an architecture for generating the signatures (hereinafter the “Architecture”). Further details on the Computational Cores generation are provided below. The independent Cores  3  generate a database of Robust Signatures and Signatures  4  for Target content-segments  5  and a database of Robust Signatures and Signatures  7  for Master content-segments  8 . An exemplary and non-limiting process of signature generation for an audio component is shown in detail in  FIG. 4 . Finally, Target Robust Signatures and/or Signatures  4  are effectively matched, by a matching algorithm  9 , to Master Robust Signatures  7  and/or Signatures database to find all matches between the two databases. 
     To demonstrate an example of the signature generation process, it is assumed, merely for the sake of simplicity and without limitation on the generality of the disclosed embodiments, that the signatures are based on a single frame, leading to certain simplification of the Computational Cores generation. The Matching System is extensible for signatures generation capturing the dynamics in-between the frames. 
     The signatures&#39; generation process is now described with reference to  FIG. 4 . The first step in the process of signatures generation from a given speech-segment is to breakdown the speech-segment to K patches  14  of random length P and random position within the speech segment  12 . The breakdown is performed by the patch generator component  21 . The value of the number of K patches  14 , random length P and random position parameters is determined based on optimization, considering the tradeoff between accuracy rate and the number of fast matches required in the flow process of the context server  130  and SGS  140 . Thereafter, all the K patches  14  are injected in parallel into all computational Cores  3  to generate K response vectors  22 , which are fed into a signature generator system  23  to produce a database of Robust Signatures and Signatures  4 . 
     In order to generate Robust Signatures  4 , i.e., signatures that are robust to additive noise L (where L is an integer equal to or greater than 1) by the Computational Cores  3  a frame T is injected into all the Cores  3 . Then, Cores  3  generate two binary response vectors: {right arrow over (S)} which is a Signature vector, and {right arrow over (RS)} which is a Robust Signature vector. 
     For generation of signatures robust to additive noise, such as White-Gaussian-Noise, scratch, etc., but not robust to distortions, such as crop, shift and rotation, etc., a core Ci={ni} (1≤i≤L) may consist of a single leaky integrate-to-threshold unit (LTU) node or more nodes. The node ni equations are: 
     
       
         
           
             
               V 
               i 
             
             = 
             
               
                 ∑ 
                 j 
                 
                     
                 
               
               ⁢ 
               
                   
               
               ⁢ 
               
                 
                   w 
                   ij 
                 
                 ⁢ 
                 
                   k 
                   j 
                 
               
             
           
         
       
       
         
           
             ni 
             = 
             
               ⊓ 
               
                 ( 
                 
                   Vi 
                   - 
                   Thx 
                 
                 ) 
               
             
           
         
       
     
     where,   is a Heaviside step function; wij is a coupling node unit (CNU) between node i and image component j (for example, grayscale value of a certain pixel j); kj is an image component ‘j’ (for example, grayscale value of a certain pixel j); ThX is a constant Threshold value, where ‘x’ is ‘S’ for Signature and ‘RS’ for Robust Signature; and Vi is a Coupling Node Value. 
     The Threshold values ThX are set differently for Signature generation and for Robust Signature generation. For example, for a certain distribution of Vi values (for the set of nodes), the thresholds for Signature (ThS) and Robust Signature (ThRS) are set apart, after optimization, according to at least one or more of the following criteria: 
     1: For: V i &gt;Th RS  
 
1− p ( V&gt;Th   S )−1−(1−ε) l &lt;&lt;1
 
     i.e., given that I nodes (cores) constitute a Robust Signature of a certain image I, the probability that not all of these I nodes will belong to the Signature of same, but noisy image, Ĩ is sufficiently low (according to a system&#39;s specified accuracy). 
     2: p(V i &gt;Th RS )≈l/L 
     i.e., approximately l out of the total L nodes can be found to generate a Robust Signature according to the above definition. 
     3: Both Robust Signature and Signature are generated for certain frame i. 
     It should be understood that the generation of a signature is unidirectional, and typically yields lossless compression, where the characteristics of the compressed data are maintained but the uncompressed data cannot be reconstructed. Therefore, a signature can be used for the purpose of comparison to another signature without the need of comparison to the original data. The detailed description of the signature generation can be found in U.S. Pat. Nos. 8,326,775 and 8,312,031, assigned to common assignee, which are hereby incorporated by reference for all the useful information they contain. 
     A Computational Core generation is a process of definition, selection, and tuning of the parameters of the Cores for a certain realization in a specific system and application. The process is based on several design considerations, such as:
         (a) The Cores should be designed so as to obtain maximal independence, i.e., the projection from a signal space should generate a maximal pair-wise distance between any two Cores&#39; projections into a high-dimensional space.   (b) The Cores should be optimally designed for the type of signals, i.e., the Cores should be maximally sensitive to the spatio-temporal structure of the injected signal, for example, and in particular, sensitive to local correlations in time and space. Thus, in some cases a Core represents a dynamic system, such as in state space, phase space, edge of chaos, etc., which is uniquely used herein to exploit their maximal computational power.   (c) The Cores should be optimally designed with regard to invariance to a set of signal distortions, of interest in relevant applications.
 
A detailed description of the Computational Core generation and the process for configuring such cores is discussed in more detail in U.S. Pat. No. 8,655,801.
       

     The various embodiments disclosed herein can be implemented as hardware, firmware, software, or any combination thereof. Moreover, the software is preferably implemented as an application program tangibly embodied on a program storage unit or computer readable medium consisting of parts, or of certain devices, and/or a combination of devices. The application program may be uploaded to, and executed by, a machine comprising any suitable architecture. Preferably, the machine is implemented on a computer platform having hardware such as one or more central processing units (“CPUs”), a memory, and input/output interfaces. The computer platform may also include an operating system and microinstruction code. The various processes and functions described herein may be either part of the microinstruction code or part of the application program, or any combination thereof, which may be executed by a CPU, whether or not such a computer or processor is explicitly shown. In addition, various other peripheral units may be connected to the computer platform such as an additional data storage unit and a printing unit. Furthermore, a non-transitory computer readable medium is any computer readable medium except for a transitory propagating signal. 
     All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the principles of the invention and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions. Moreover, all statements herein reciting principles, aspects, and embodiments of the invention, as well as specific examples thereof, are intended to encompass both structural and functional equivalents thereof. Additionally, it is intended that such equivalents include both currently known equivalents as well as equivalents developed in the future, i.e., any elements developed that perform the same function, regardless of structure.