SYSTEM AND METHOD FOR CONCEPTS CACHING USING A DEEP-CONTENT-CLASSIFICATION (DCC) SYSTEM

A method and system for caching concept structures in a cache memory of a user computing device are provided. The method includes collecting at least one environmental variable related to a user of the computing device; retrieving at least one concept structure matching the at least one received environmental variable, each concept structure comprises a concept metadata associated with a plurality of multimedia content elements; and caching the at least one matching concept structure in the cache memory.

Skip to: Description  ·  Claims  · Patent History  ·  Patent History
Description
CROSS REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. patent application Ser. No. 14/700,801 filing date Apr. 30, 2015 which claims the benefit of U.S. provisional application No. 61/986,245 filed Apr. 30, 2014. U.S. patent application Ser. No. 14/700,801 is a continuation-in-part (CIP) application of U.S. patent application Ser. No. 14/530,918 filed Nov. 3, 2014, now pending. U.S. patent application Ser. No. 14/530,918 claims the benefit of benefit of U.S. provisional application No. 61/899,224 filed on Nov. 3, 2013. The contents of the above-referenced applications are herein incorporated by reference.

The contents of the below-referenced application are herein incorporated by reference” U.S. patent application Ser. No. 14/013,636 filed Aug. 29, 2013; U.S. patent application Ser. No. 13/602,858 filed Sep. 4, 2012, now issued as U.S. Pat. No. 8,868,619; U.S. patent application Ser. No. 12/603,123, filed on Oct. 21, 2009, now issued as U.S. Pat. No. 8,266,185; U.S. patent application Ser. No. 12/084,150 having a filing date of Apr. 7, 2009, now issued as U.S. Pat. No. 8,655,801; International Application No. PCT/IL2006/001235, filed on Oct. 26, 2006; Israeli Application No. 171577 filed on Oct. 26, 2005; Israeli Application No. 173409 filed on Jan. 29, 2006; U.S. patent application Ser. No. 12/195,863, filed Aug. 21, 2008, now issued as U.S. Pat. No. 8,326,775; Israeli Application No. 185414, filed on Aug. 21, 2007; U.S. patent application Ser. No. 12/348,888, filed Jan. 5, 2009; U.S. patent application Ser. No. 12/538,495, filed Aug. 10, 2009, now issued as U.S. Pat. No. 8,312,031; U.S. patent application Ser. No. 12/195,863, filed on Aug. 21, 2008; and U.S. patent application Ser. No. 12/348,888, filed Jan. 5, 2009.

TECHNICAL FIELD

The present disclosure relates generally to the analysis of multimedia content, and more specifically to a system for caching concept structures in a cache memory of a computing device for an analysis of the multimedia content.

BACKGROUND

With the abundance of multimedia content made available through various means in general and the internet in particular, there is also a need to provide effective ways for analyzing the multimedia content. Such multimedia content may include, an image, a graphic, a video stream, a video clip, an audio stream, an audio clip, a video frame, a photograph, an image of signals (e.g., spectrograms, phasograms, scalograms, etc.), and the like.

Analyzing such multimedia content may be challenging at best due to the huge amount of information that needs to be examined. Helpful and vital data analysis becomes time intensive due to the amount of data that must be processed. As a result, data analysis may be given a low priority or, in some cases, ignored.

Computational cores may be employed to speed up the process of analysis.

In cases where the analysis is made using a mobile device, such as a smart phone or a wearable computing device, the task of efficiently managing the computational cores is highly increased due to the limited capabilities of the device.

It is possible to access computational cores outside the device via a network to complete the analysis, but this process consumes a large amount of bandwidth.

There is therefore a need in the art to overcome the deficiencies of the prior art solutions and to provide a system that efficiently manages the bandwidth and computing resources consumed in order to analyze multimedia content.

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 aspects nor delineate the scope of any or all aspects. 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.

Certain embodiments include a method for caching concept structures in a cache memory of a user computing device. The method comprises collecting at least one environmental variable related to a user of the computing device; retrieving at least one concept structure matching the at least one received environmental variable, each concept structure comprises a concept metadata associated with a plurality of multimedia content elements; and caching the at least one matching concept structure in the cache memory.

Certain embodiments include a system for caching concept structures in a cache memory of a user computing device. The system comprises a processing unit; and a memory connected to the processing unit, the memory contains instructions that when executed by the processing unit, configured the system to: receive at least one environmental variable related to a user of the computing device; retrieve at least one concept structure matching the at least one received environmental variable, each concept structure comprises a concept metadata associated with a plurality of multimedia content elements; and caching the at least one matching concept structure in the cache memory.

BRIEF DESCRIPTION OF THE DRAWINGS

The subject matter that is 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 disclosed embodiments will be apparent from the following detailed description taken in conjunction with the accompanying drawings.

FIG. 1 is a diagram of a DCC system for creating concept structures.

FIG. 2 is a flowchart illustrating the operation of the patch attention processor of the DCC system.

FIG. 3 is a block diagram depicting the basic flow of information in a large-scale video matching system.

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.

FIG. 5 is a flowchart illustrating the operation of the clustering processor of the DCC system.

FIG. 6 is a flowchart illustrating the operation of the concept generator of the DCC system.

FIG. 7 is a diagram of a network system utilized to describe certain disclosed embodiments.

FIG. 8 is a flowchart describing the process of caching concept structures in a cache memory of a computing device.

FIG. 9 is a flowchart describing the process of analyzing multimedia content element using the cache memory of the computing device.

DETAILED DESCRIPTION

The embodiments disclosed herein are only examples of the many possible advantageous uses and implementations of the innovative teachings presented herein. In general, statements made in the specification of the present application do not necessarily limit any of the various claimed embodiments. 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.

FIG. 1 shows an exemplary and non-limiting diagram of a DCC system 100 for creating concept structures. The DCC system 100 is configured to receive multimedia data elements (MMDEs), for example from the Internet via the network interface 160. The MMDEs include, but are not limited to, images, graphics, video streams, video clips, audio streams, audio clips, video frames, photographs, images of signals, combinations thereof, and portions thereof. The images of signals are images such as, but not limited to, medical signals, geophysical signals, subsonic signals, supersonic signals, electromagnetic signals, and infrared signals.

The MMDEs may be stored in a database (DB) 150 or kept in the DB 150 for future retrieval of the respective multimedia data element. Such a reference may be, but is not limited to, a universal resource locator (URL). Every MMDE in the DB 150, or referenced therefrom, is then processed by a patch attention processor (PAP) 110 resulting in a plurality of patches that are of specific interest, or otherwise of higher interest than other patches. A more general pattern extraction, such as an attention processor (AP) may also be used in lieu of patches. The AP receives the MMDE that is partitioned into items; an item may be an extracted pattern or a patch, or any other applicable partition depending on the type of the MMDE. The functions of the PAP 110 are described herein below in more detail with respect to FIG. 2.

Those patches that are of higher interest are then used by a signature generator (SG) 120 to generate signatures respective of the patch. The operation of the signature generator (SG) 120 is described in more detail herein below. A clustering processor (CP) 130 initiates a process of inter-matching of the signatures once it determines that there are a number of patches that are above a predefined threshold. The threshold may be defined to be large enough to enable proper and meaningful clustering. With a plurality of clusters a process of clustering reduction takes place so as to extract the most useful data about the cluster and keep it at an optimal size to produce meaningful results. The process of cluster reduction is continuous. When new signatures are provided after the initial phase of the operation of the CP 130, the new signatures may be immediately checked against the reduced clusters to save on the operation of the CP 130. A more detailed description of the operation of the CP 130 is provided herein below with respect to FIG. 5.

A concept generator (CG) 140 operates to create concept structures from the reduced clusters provided by the CP 130. Each concept structure comprises a plurality of metadata associated with the reduced clusters. The result is a compact representation of a concept that can now be easily compared against a MMDE to determine if the received MMDE matches a concept structure stored, for example in the DB 150, by the CG 140. This can be done, for example and without limitation, by providing a query to the DCC system 100 for finding a match between a concept structure and a MMDE. A more detailed description of the operation of the CG 140 is provided herein below with respect to FIG. 6.

It should be appreciated that the DCC system 100 can generate a number of concept structures significantly smaller than the number of MMDEs. For example, if one billion (10.sup.9) MMDEs need to be checked for a match against another one billion MMDEs, typically the result is that no less than 10.sup.9.times.10.sup.9=10.sup.18 matches have to take place, a daunting undertaking. The DCC system 100 would typically have around 10 million concept structures or less, and therefore at most only 2.times.10.sup.6.times.10.sup.9=2.times.10.sup.15 comparisons need to take place, a mere 0.2% of the number of matches that have had to be made by other solutions. As the number of concept structures grows significantly smaller than the number of MMDEs, the advantages of the DCC system 100 would be apparent to one with ordinary skill in the art.

The operation of the PAP 110 will now be provided in greater detail with respect to an image as the MMDE. However, this should not be understood as to limit the scope of the disclosed embodiments; other types of MMDEs are specifically included herein and may be handled by the PAP 110.

FIG. 2 depicts an exemplary and non-limiting flowchart 200 of the operation of the PAP 110. At S210, a MMDE is received from a source for such MMDEs by the PAP 110. Such a source may be a system that feeds the DCC system 100 with MMDEs or other sources for MMDEs, for example the world-wide-web (WWW). At S220, a plurality of patches is created from the MMDE by the PAP 110. A patch of an image is defined by, for example, its size, scale, location, and orientation. A patch may be, for example and without limitation, a portion of an image of a size 20 pixels by 20 pixels of an image that is 1,000 pixels by 500 pixels. In the case of audio, a patch may be a segment of audio 0.5 seconds in length from a 5 minute audio clip. At S230, a patch not previously checked is processed to determine its entropy. The entropy is a measure of the amount of interesting information that may be present in the patch. For example, a continuous color of the patch has little interest while sharp edges, corners, or borders will result in higher entropy representing a lot of interesting information. The plurality of statistically independent cores, the operation of which is discussed in more detail herein below, is used to determine the level-of-interest of the image and a process of voting takes place to determine whether the patch is of interest or not.

At S240, it is checked whether the entropy was determined to be above a predefined threshold, and if so execution continues with S250; otherwise, execution continues with S260. At S250, the patch having entropy above the threshold is stored for future use by the SG 120 in a memory, for example a DB 150. At S260, it is checked whether there are more patches of the MMDE to be checked, and if so execution continues with S220; otherwise execution continues with S270. At S270, it is checked whether there are additional MMDEs, and if so execution continues with S210; otherwise, execution terminates. It would be appreciated by those of skill in the art that this process reduces the information that must be handled by the DCC system 100 by focusing on areas of interest in the MMDEs rather than areas that are less meaningful for the formation of a concept structure.

A high-level description of the process for large scale video matching performed by the Matching System is depicted in FIG. 3. Video content segments 2 from a Master DB 6 and a Target DB 1 are processed in parallel by a large number of independent computational cores 3 that constitute 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. Referring back to FIG. 3, at the final step, Target Robust Signatures and/or Signatures are effectively matched, by a matching algorithm 9, to Master Robust Signatures and/or Signatures database to find all matches between the two databases.

A brief description of the operation of the SG 120 is therefore provided, this time with respect to a MMDE which is a sound clip. However, this should not be understood as to limit the scope of the disclosed embodiments and other types of MMDEs are specifically included herein and may be handled by SG 120. To demonstrate an example of 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 core's generation. The Matching System shown in FIG. 3 is extensible for signatures generation capturing the dynamics in-between the frames and the information of the frame's patches.

The signatures generation process will be described with reference to FIG. 4. The first step in the process of signatures generation from a given speech-segment is to break-down the speech-segment to K patches 14 of random length P and random position within the speech segment 12. The break-down is performed by the patch generator component 21. The value of K is determined based on optimization, considering the tradeoff between accuracy rate and the number of fast matches required in the flow process of the Matching System. In the next step, all the K patches are injected in parallel to all L computational cores 3 to generate K response vectors 22. The vectors 22 are fed into the SG 120 to produce a Signatures and Robust Signatures 4.

In order to generate Robust Signatures, i.e., Signatures that are robust to additive noise, L (where L is an integer equal to or greater than 1) computational cores are utilized in the Matching System. A frame i is injected into all the cores. The computational 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 C.sub.i={n.sub.i}(1.ltoreq.i.ltoreq.L) may consist of a single leaky integrate-to-threshold unit (LTU) node or more nodes. The node n.sub.i equations are:


Vi=jwijkj  ## EQU00001##


ni=(Vi−Thx);  ## EQU00001.2##

.Pl. is a Heaviside step function; w.sub.ij is a coupling node unit (CNU) between node i and image component j (for example, grayscale value of a certain pixel j); k.sub.j is an image component j (for example, grayscale value of a certain pixel j); Th.sub.x is a constant Threshold value, where x is ‘S’ for Signature and ‘RS’ for Robust Signature; and V.sub.i is a Coupling Node Value.

The Threshold values Th.sub.x are set differently for Signature generation and for Robust Signature generation. For example, for a certain distribution of V.sub.i values (for the set of nodes), the thresholds for Signature (Th.sub.S) and Robust Signature (Th.sub.RS) are set apart, after optimization, according to at least one or more of the following criteria:

For: V.sub.i>Th.sub.RS


1−p(V>Th.sub.S)−1−(1−.epsilon.).sup.i<<1  I:

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's specified accuracy).


p(V.sub.i>Th.sub.RS).apprxeq.I/L  II:

i.e., approximately I out of the total L nodes can be found to generate Robust Signature according to the above definition.

III: Both Robust Signature and Signature are generated for certain frame i.

It should be understood that the creation of a signature is a unidirectional compression where the characteristics of the compressed data are maintained but the compressed data cannot be reconstructed. Therefore, a signature can be used for the purpose of comparison to another signature without the need of comparison of the original data. The detailed description of the Signature generation can be found 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.

Computational core generation is a process of definition, selection, and tuning of the Architecture parameters 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' 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, and, (c) The cores should be optimally designed with regard to invariance to a set of signal distortions, of interest in relevant applications. Detailed description of the computational core generation, the computational architecture, and the process for configuring such cores is discussed in more detail in U.S. Pat. No. 8,655,801 referenced above.

Hence, signatures are generated by the SG 120 responsive of patches received either from the PAP 110, or retrieved from the DB 150, as discussed hereinabove. It should be noted that other ways for generating signatures may also be used for the purpose the DCC system 100. Furthermore, as noted above, the array of computational cores may be used by the PAP 110 for the purpose of determining if a patch has an entropy level that is of interest for signature generation according to the principles of the disclosed embodiments. The generated signatures are stored, for example, in the DB 150, with reference to the MMDE and the patch for which it was generated, thereby enabling back annotation as may be necessary.

Portions of the CP 130 have been discussed in detail in the co-pending U.S. patent application Ser. No. 12/507,489, entitled “Unsupervised Clustering of Multimedia Data Using a Large-Scale Matching System”, filed Jul. 22, 2009, assigned to common assignee (the “'489 application”), and which is hereby incorporated for all that it contains. In accordance with an embodiment, an inter-match process and clustering thereof is utilized. The process can be performed on signatures provided by the SG 120. It should be noted though that this inter-matching and clustering process is merely an example for the operation of the CP 130 and other inter-matching and/or clustering processes may be used for the purpose of the disclosed embodiments.

Following is a brief description of the inter-match and clustering process. The unsupervised clustering process maps a certain content-universe onto a hierarchical structure of clusters. The content-elements of the content-universe are mapped to signatures, when applicable. The signatures of all the content-elements are matched to each other, and consequently generate the inter-match matrix. The described clustering process leads to a set of clusters. Each cluster is represented by a small/compressed number of signatures, for example signatures generated by SG 120 as further explained hereinabove, which can be increased by variants. This results in a highly compressed representation of the content-universe. A connection graph between the multimedia data elements of a cluster may be stored. The graph can then be used to assist a user searching for data to move along the graph in the search of a desired multimedia data element.

In another embodiment, upon determination of a cluster, a signature for the whole cluster may be generated based on the signatures of the multimedia data elements that belong to the cluster. It should be appreciated that using a Bloom filter may be used to reach such signatures. Furthermore, as the signatures are correlated to some extent, the hash functions of the Bloom filter may be replaced by simpler pattern detectors, with the Bloom filter being the upper limit.

While signatures are used here as the basic data elements, it should be realized that other data elements may be clustered using the techniques discussed above. For example, a system generating data items is used, where the data items generated may be clustered according to the disclosed principles. Such data items may be, without limitation, multimedia data elements. The clustering process may be performed by dedicated hardware or by using a computing device having storage to store the data items generated by the system and then performing the process described herein above. Then, the clusters can be stored in memory for use as may be deemed necessary.

The CP 130 further uses an engine designed to reduce the number of signatures used in a structure, in a sense extracting only the most meaningful signatures that identify the cluster uniquely. This can be done by testing a removal of a signature from a cluster and checking if the MMDEs associated with the cluster still are capable of being recognized by the cluster through signature matching.

The process of signature extraction is on-going as the DCC system 100 operates. It should be noted that after initialization, upon signature generation by the SG 120 of a MMDE, the MMDE's respective signature is first checked against the clusters to see if there is a match and if so it may not be necessary to add the signature to the cluster or clusters, but rather associate the MMDE with the identified cluster or clusters. However, in some cases where additional refinement of the concept structure is possible, the signature may be added, or at times even replace one or more of the existing signatures in the reduced cluster. If no match is found then the process of inter-matching and clustering may take place.

FIG. 5 depicts an exemplary and non-limiting flowchart 500 of the operation of the CP 130. At S510, a signature of a MMDE is received, for example from the SG 120. At S520, it is checked whether the signature matches one or more existing clusters and if so execution continues with S550; otherwise, execution continues with S530. At S530, an inter-match between a plurality of signatures previously received by the DCC system 100 is performed, for example in accordance with the principles of the '489 application. As may be necessary, the DB 150 may be used to store results or intermediate results as the case may be, however, other memory elements may be used. At S540, a clustering process is performed, for example in accordance with the principles of the '489 application. As may be necessary, the DB 150 may be used to store results or intermediate results as the case may be, however, other memory elements may be used.

At S550, the signature identified to match one or more clusters is associated with the existing cluster(s). At S560, it is checked whether a periodic cluster reduction is to be performed, and if so execution continues with S570; otherwise, execution continues with S580. At S570, the cluster reduction process is performed. Specifically, the purpose of the operation is to ensure that in the cluster there remains the minimal number of signatures that still identify all of the MMDEs that are associated with the signature reduced cluster (SRC). This can be performed, for example, by attempting to match the signatures of each of the MMDEs associated with the SRC having one or more signatures removed therefrom. The process of cluster reduction for the purpose of generating SRCs may be performed in parallel and independently of the process described herein above. In such a case, after either S560 or S570 the operation of S580 takes place. At S580, it is checked whether there are additional signatures to be processed and if so execution continues with S510; otherwise, execution terminates. SRCs may be stored in memory, such as DB 150, for the purpose of being used by other elements comprising the DCC system 100.

The CG 140 performs two tasks, it associates metadata to the SRCs provided by the CP 130 and it associates between similar clusters based on commonality of metadata. Exemplary and non-limiting methods for associating metadata with MMDEs is described in U.S. patent application Ser. No. 12/348,888, entitled “Methods for Identifying Relevant Metadata for Multimedia Data of a Large-Scale Matching System”, filed on Jan. 5, 2009, assigned to common assignee (the “'888 application”), and which is hereby incorporated for all that it contains. One embodiment of the '888 application includes a method for identifying and associating metadata to input MMDEs. The method comprises comparing an input first MMDE to at least a second MMDE; collecting metadata of at least the second MMDE when a match is found between the first MMDE and at least the second MMDE; associating at least a subset of the collected metadata to the first MMDE; and storing the first MMDE and the associated metadata in a storage.

Another embodiment of the '888 application includes a system for collecting metadata for a first MMDE. The system comprises a plurality of computational cores enabled to receive the first MMDE, each core having properties to be statistically independent of each other core, each generate responsive to the first MMDE a first signature element and a second signature element, the first signature element being a robust signature; a storage unit for storing at least a second MMDE, metadata associated with the second MMDE, and at least one of a first signature and a second signature associated with the second MMDE, the first signature being a robust signature; and a comparison unit for comparing signatures of MMDEs coupled to the plurality of computational cores and further coupled to the storage unit for the purpose of determining matches between multimedia data elements; wherein responsive to receiving the first MMDE the plurality of computational cores generate a respective first signature of said first MMDE and/or a second signature of said first MMDE, for the purpose of determining a match with at least a second MMDE stored in the storage and associating metadata associated with the at least second MMDE with the first MMDE.

Similar processes to match metadata with a MMDE or signatures thereof may be used. Accordingly, each SRC is associated with metadata which is the combination of the metadata associated with each of the signatures that are included in the respective SRC, preferably without repetition of metadata. A plurality of SRCs having metadata may now be associated to each other based on the metadata and/or partial match of signatures. For example, and without limitation, if the metadata of a first SRC and the metadata of a second SRC overlap more than a predetermined threshold level, for example 50% of the metadata match, they may be considered associated clusters that form a concept structure. Similarly, a second threshold level can be used to determine if there is an association between two SRCs where at least a number of signatures above the second threshold are identified as a match with another SRC. The preconfigured threshold level may be configured based on, for example, the sensitivity of the detection. For example, a lower threshold value may be set for a security application than would be set for an entertainment application. As a practical example, one may want to consider the concept of Abraham Lincoln where images of the late President and features thereof, appear in a large variety of photographs, drawings, paintings, sculptures, and more and are associated as a concept structure of the concept “Abraham Lincoln”. Each concept structure may be then stored in memory, for example, the DB 150 for further use.

FIG. 6 shows an exemplary and non-limiting flowchart 600 of the operation of the CG 140. At S610, a SRC is received from either the CP 130 or by accessing memory, for example, the DB 150, by the CG 140. At S620, metadata are generated for the signatures of the SRC, for example in accordance with the principles described hereinabove. A list of the metadata is created for the SRC preferably with no metadata duplication. In one embodiment, the commonality of metadata is used to signify the strength of the metadata with respect to a signature and/or the SRC, i.e., a higher number of metadata repetitions is of more importance to the SRC than a lower number of repetitions. Furthermore, in one embodiment a threshold may be used to remove those metadata that have a significantly low rate of repetition as not being representative of the SRC. The threshold can be preconfigured based on, for example, the sensitivity of the detection. For example, a lower threshold value may be set for a security application than would be set for an entertainment application.

At S630, the SRC is matched to previously generated SRCs of other concept structures (CSs) to attempt to find various matches, as described, for example, hereinabove in more detail. At S640, it is checked if at least one match was found and if so, execution continues with S650; otherwise, execution continues with S660. At S650, the SRC is associated with one or more of the concept structures to which the SRC has been shown to match. At S660, it is checked whether additional SRCs are to be received and if so execution continues with S610, otherwise, execution terminates.

A person skilled in the art would now appreciate the advantages of the DCC system 100 and methods thereof. The DCC system 100 is capable of creating automatically and in an unsupervised fashion concept structures of a wide variety of MMDEs. When checking a new MMDE, it may be checked against the concept structures stored, for example, in the DB 150, and upon detection of a match providing the concept information about the MMDE. With the number of concept structures being significantly lower than the number of MMDEs the solution is cost effective and scalable for the purpose of identification of content of a MMDE.

FIG. 7 shows an exemplary and non-limiting schematic diagram of a network system 700 utilized to describe various disclosed embodiments. A network 710 is used as a means for communication between different elements of the system 700. The network 710 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 the like.

At least one computing device 720 is connected to the network 710. The computing device 720 includes at least one software application 721. The application 721 may be, for example, a web browser, a script, a mobile or native application (“app”), a web application, and the like. The computing device 720 also includes one or more physical sensors 722-1 through 722-n (collectively referred hereinafter as sensors 722 or individually as a sensor 722, merely for simplicity purposes) configured to capture sensory information. In one embodiment, the sensory information is captured with respect to a MMDE displayed over the application 721. Each one of the sensors 722 may be, for example, but not limited to, a camera, a web camera, a microphone, a Global Positioning System (GPS), an image analyzer, a speech recognizer, and the like. The sensors 722 are configured to collect environmental variables related to a user of the user computing device 720. Such environmental variables may be, for example, time, location, motion information, weather information within the location, and more.

The computing device 720 may be, 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 mobile appliances, equipped with browsing, viewing, listening, filtering, storing and managing capabilities. The computing device 720 is configured to collect environmental variables related to a user of the computing device 720. According to one embodiment, the environmental variables related to the user of the computing device may be collected by the sensors 722. It should be noted that only one computing device 720 and one application 721 are illustrated in FIG. 7 only for the sake of simplicity and without limitation on the generality of the disclosed embodiments. In an embodiment, the computing device 720 is at least one application 721.

Also connected to the network 710 is a server 730 configured to perform the process of retrieving concept structures respective of the collected environmental variables. The concept structures are retrieved from a data warehouse 760. To this end, the server 730 is connected to a DCC system 740 and a signature generator 750. In some embodiments, the DCC system 740 is configured and operates as the DCC system 100 discussed in detail above. The signature generator 750 is configured and operates as the SG 120. In certain configurations, the SG of the DCC system is utilized as the signature generator 750. The DCC system 740 and signature generator 750 may be connected through the server 730 to the network 710 or through a direct connection. In certain configurations, the DCC system 740 and signature generator 750 may be embedded in the server 730.

It should be noted that the each of the computing device 720 and server 730 typically comprises a processing unit (not shown) and a memory (not shown). The processing unit may include one or more processors. The one or more processors may be implemented with any combination of general-purpose microprocessors, multi-core processors, 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.

The processing unit may be coupled to the memory. In an embodiment, the memory contains instructions that when executed by the processing unit results in the performance of the methods and processes described herein below. Specifically, the processing unit may include machine-readable media for storing software. Software shall be construed broadly to mean any type of instructions, whether referred to as software, firmware, middleware, microcode, hardware description language, or otherwise. Instructions may include code (e.g., in source code format, binary code format, executable code format, or any other suitable format of code). The instructions, when executed by the one or more processors, cause the processing unit to perform the various functions described herein.

According to the embodiments disclosed herein, environmental variables related to a user of the computing device 720 are collected. The collected variables are sent to the server 130. In an embodiment, the server 130 is configured to analyze the received variables to potentially find one or more matching concept structures (or concepts). In an embodiment, at least one signature is generated for each received variable. The signatures are generated by the signature generator 750. Then, the at least one signature generated for each variable is utilized to query the DCC System 740 for identifying matching concept structures. As discussed in more detail above, the process for detecting matching concept structures is based on the SRCs of the concepts. That is, the signature generated for an environmental variable is compared to the SRCs to find a respective matching concept structure. For example, and without limitation, if two signatures (of the variable and the SRC) overlap more than a predetermined threshold level, for example 60%, then the concept represented by SRC is determined to be a matching concept structure. In an exemplary embodiment, the predetermined threshold levels are relatively high (e.g., over 50%) to save only the most relevant concepts in a cache of the computing device.

The matching concept structure(s) are retrieved by the server 730 from the data warehouse 760. Thereafter, the retrieved concept structures are sent to the computing device 720 for storage in a memory, e.g., a cache memory of the computing device 720. In an embodiment, the concept structure(s) are sent to the computing device 720 upon a request sent from the device. As an example, such a request may be triggered when the device is not connected to a WiFi network.

In certain exemplary embodiments, the process for retrieving matching concept structures may be performed by the device 720 by means of the application 721. Specifically, the application 721 is configured to send the collected environmental variables in a format (e.g., as a multimedia content element) that can be processed by the DCC system 740. In response, the DCC system 740 returns matching concept structures. That is, the DCC system 740 would cause the generation of signatures for each variable and search for matching concept structures respective of such signatures. The matching concept structures, if any, will be sent to the computing device 720.

As a non-limiting example, a user of the computing device 720 is identified as located in the New York City Zoo. Respective thereto, concept structures that were related to animals found in the New York City Zoo are retrieved and stored in the cache memory of the computing device 720.

It should be noted that concept structures are cached in the device 720 for a preconfigured period of time or event. For example, the concept structures are cached once an aging timer has elapsed or upon collection of new environmental variables.

According to certain embodiment, the computing device 720 is configured to analyze input multimedia content elements using the concept structures and environmental variables collected by the sensors 722.

An input multimedia content element may be captured by the device 720 (e.g., using the device camera or phone), saved in the device's memory (e.g., saved photos), displayed on a webpage or page content, and so on. The input multimedia content element may be an image, a graphic, a video stream, a video clip, an audio stream, an audio clip, a video frame, a photograph, and an image of signals (e.g., spectrograms, phasograms, scalograms, etc.), and/or combinations thereof and portions thereof.

In an embodiment, the analysis of an input multimedia content element is respective of variables collected by the sensors 722 upon reception of the input multimedia content element by the computing device. To this end, a metadata describing the one or more collected environmental variables is generated. For example, if the collected environmental variables include a location “5.sup.th AVE NY” and motion information “walking”, the metadata would be “walking in 5.sup.th AVE NY”. The location and motion information can be derived from GPS coordinates and a motion sensor, respectively.

In another embodiment the metadata may be determined respective of the input multimedia content element. This may include identifying any metadata associated with the input content element (for example, tags, creating date, etc.) and/or any metadata associated with the source of the input content element (e.g., web page, app, storage location of the element, etc.).

In an embodiment the metadata generated for the multimedia content elements may be derived based on either or both of the techniques noted above. That is, for example, such metadata may be determined respective of a tag associated with a picture and the location that the picture was taken.

The generated metadata is compared to the cached concept structure and in particular, to metadata associated with each concept structure. For example, and without limitation, if the metadata generated based on the variable and the metadata of a concept structure overlap more than a predetermined threshold level, for example 50% of the metadata match, they may be considered as matched. The preconfigured threshold level may be configured based on, for example, the purpose of the analysis or by a user. The purpose of the analysis may be, for example, providing advertisements that match the input multimedia content elements.

It should be noted that accessing the at least one concept structures from the cache memory allows the computing device 720 to locally perform the analysis of the multimedia content elements, thereby reducing the bandwidth consumption used by the computing device 720 as compared to connecting to the data warehouse 760 over the network 710 to access such concept structures.

FIG. 8 is a non-limiting and exemplary flowchart 800 describing a method for retrieving concept structures respective of environmental variables related to a user of a computing device according to one embodiment. At S810, at least one environmental variable related to the user of the computing device is collected responsive of use of the computing device 720 by the user. The environmental variables may be collected by any one of the sensors connected, integrated, or coupled to the computing device 720 as further described hereinabove. The environmental variables may include at least one of: a time of day, location information, motion information, weather information, a combination thereof, and so on.

At S820, at least one concept structure matching to the collected variables is retrieved from a data warehouse 760. As described above, retrieving the collection variables may include generating at least one signature for each variable and querying the DCC system (e.g., system 740) using the generated signature(s). Any concept structures matching the signatures is returned.

At S830, the at least one concept structure is stored in the cache memory of the computing device for future analysis of multimedia content elements received from the computing device 720. As noted above, concept structures may be cached in the computing device 720 for a preconfigured period of time or event. For example, the concept structures are cached once an aging timer has elapsed or upon collection of new environment variables.

At S840, it is checked whether additional environmental variables are available, and if so execution continues with S820; otherwise, execution terminates.

FIG. 9 is a non-limiting and exemplary flowchart describing the process of analyzing multimedia content element using the cache memory of the computing device. At S910, at least one input multimedia content element to be analyzed is identified or otherwise received by the computing device. At S920, metadata describing the received multimedia content element is generated. Various non-limiting techniques for generating the multimedia content element are discussed in greater above.

At S930, an attempt to find at least one cached concept structures matching the received multimedia content element is performed. The search for such matching of the concept structures is based on the generated metadata and the concept structures' metadata.

At S940, it is checked if such a match is found, and if so execution continues with S960; otherwise, execution continues with S950. At S950, if a match was not found, the at least one multimedia content element may be sent to a DCC system (e.g., system 740) to create a new concept structure as discussed above. In an embodiment, newly created concept structures are also cached in the memory of the computing device. At S960, the at least one multimedia content element is analyzed using the at least one matched concept structure. The analysis of the multimedia content element respective of the matching concept structure provides accurate knowledge of the actual content of the element. This allows providing, for example, advertisements or other services based on the determined analysis.

At S970, it is checked whether there are additional requests and if so, execution continues with S920, otherwise, execution terminates.

The 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 non-transitory 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 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 several embodiments 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 disclosed embodiments, 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.

Claims

1. A method for reducing bandwidth consumption by a user computing device, comprising:

collecting at least one environmental variable related to current environment of the user computing device;
attempting to match the at least one environmental variable to at least one concept structure from a plurality of concept structures stored on another computing device, wherein each concept structure in the plurality of concept structures comprises a concept metadata and an associated reduced cluster of signatures derived from a plurality of multimedia content elements;
upon determining that the attempting to match was successful, retrieving the at least one concept structure;
caching the at least one concept structure in the cache memory receiving an input multimedia content element in a query;
using the at least one concept structure in the cache memory to perform local analysis of the input multimedia content element; and
providing a response to the query based on the local analysis.

2. The method of claim 1, wherein the environmental variable includes at least one of: a time of day, location information, motion information, and weather information.

3. The method of claim 2, wherein the at least one environmental variable is collected by at least one sensor of the computing device.

4. The method of claim 3, wherein the at least one sensor is any one of: a camera, a web camera, a microphone, a Global Positioning System, an image analyzer, and a speech recognizer.

5. The method of claim 1, wherein the retrieving comprises fetching the at least one concept structure from at least one of: a deep-content-classification system or a data warehouse.

6. The method of claim 1, wherein the attempting to match comprises:

deriving an environmental signature from the environmental variable;
comparing the environmental signature to the associated reduced cluster of signatures; and
determining that the at least one concept structure matches the at least one environmental variable according to an overlap of more than a predefined threshold between the environmental signature and at least one signature in the associated reduced cluster of signatures.

7. The method of claim 1, wherein the at least one concept structure is cached on the computing device for a predefined period of time set by an aging timer.

8. The method of claim 1, wherein the local analysis comprises: determining input metadata associated with the input multimedia content element; and matching the at least one multimedia content element to the at least one concept structure cached in the cache memory.

9. The method of claim 8, wherein the determining input metadata comprises at least one of: identifying metadata associated with the input multimedia content element; or generating metadata based on environmental variables collected upon the receiving of the input multimedia content element.

10. The method of claim 1, wherein the concept structure is determined to match the input multimedia content element when the input metadata overlaps the concept metadata in the concept structure.

11. The method of claim 1, wherein the input multimedia content element is at least one of: an image, graphics, a video stream, a video clip, an audio stream, an audio clip, a video frame, a photograph, images of signals, medical signals, geophysical signals, subsonic signals, supersonic signals, electromagnetic signals, and infrared signals.

12. The method of claim 1, wherein the method is performed locally by the computing device.

13. The method according to claim 1 comprising applying a periodic cluster reduction on each signature reduced cluster.

14. The method according to claim 1 comprising generating each one of the signatures by statistically independent computational cores.

15. The method according to claim 1 wherein the environmental variable includes weather information.

16. The method according to claim 1 wherein the environmental variable includes motion information.

17. The method according to claim 1 comprising generating the plurality of concept structures in an automatic and unsupervised manner.

18. The method according to claim 1 wherein each cluster concept structure in the plurality of concept structures does not include any of the plurality of multimedia content elements.

19. A non-transitory computer readable medium having stored thereon instructions for causing one or more processing units to execute the following method steps:

collecting at least one environmental variable related to a current environment of a computing device;
attempting to match the at least one environmental variable to at least one concept structure from a plurality of concept structures, wherein each concept structure in the plurality of concept structures comprises a concept metadata and an associated reduced cluster of signatures derived from a plurality of multimedia content elements;
upon determining that the attempting to match was successful, retrieving the at least one concept structure;
caching the at least one concept structure in the cache memory;
receiving an input multimedia content element in a query;
using the at least one concept structure in the cache memory to perform local analysis of the input multimedia content element; and
providing a response to the query based on the local analysis.

20. A system for caching concept structures in a cache memory of a user computing device, comprising:

a processing unit; and
a memory connected to the processing unit, wherein the memory contains instructions that when executed by the processing unit, configure the system to:
receive at least one environmental variable related to a current environment of the user computing device;
attempt to match the at least one received environmental variable to at least one concept structure from a plurality of concept structures, wherein each concept structure in the plurality of concept structures comprises a concept metadata and an associated reduced cluster of signatures derived from a plurality of multimedia content elements;
determine that the attempt to match was a success match;
for a successful match, retrieve the at least one concept structure;
cache the at least one concept structure in the cache memory;
receive an input multimedia content element in a query;
use the at least one concept structure in the cache memory to perform local analysis of the input multimedia content element; and
provide a response to the query based on the local analysis.
Patent History
Publication number: 20200167314
Type: Application
Filed: Nov 24, 2019
Publication Date: May 28, 2020
Inventors: IGAL Raichelgauz (Tel Aviv), Karina Odinaev (Tel Aviv), Yehoshua Y. Zeevi (Haifa)
Application Number: 16/693,309
Classifications
International Classification: G06F 16/172 (20060101); G06F 16/41 (20060101); G06F 16/951 (20060101); G06F 16/14 (20060101); G06F 16/40 (20060101);