U.S. patent application number 16/831823 was filed with the patent office on 2022-08-18 for configuring spanning elements of a signature generator.
This patent application is currently assigned to Cortica Ltd.. The applicant listed for this patent is Cortica Ltd.. Invention is credited to Adrian Kaho Chan, Igal Raichelgauz.
Application Number | 20220261596 16/831823 |
Document ID | / |
Family ID | 1000006504956 |
Filed Date | 2022-08-18 |
United States Patent
Application |
20220261596 |
Kind Code |
A9 |
Raichelgauz; Igal ; et
al. |
August 18, 2022 |
CONFIGURING SPANNING ELEMENTS OF A SIGNATURE GENERATOR
Abstract
Systems, and method and computer readable media that store
instructions for configuring spanning elements of a signature
generator.
Inventors: |
Raichelgauz; Igal; (Tel
Aviv, IL) ; Chan; Adrian Kaho; (Berlin, DE) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Cortica Ltd. |
Tel Aviv |
|
IL |
|
|
Assignee: |
Cortica Ltd.
Tel Aviv
IL
|
Prior
Publication: |
|
Document Identifier |
Publication Date |
|
US 20200293829 A1 |
September 17, 2020 |
|
|
Family ID: |
1000006504956 |
Appl. No.: |
16/831823 |
Filed: |
March 27, 2020 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
62827112 |
Mar 31, 2019 |
|
|
|
62827117 |
Mar 31, 2019 |
|
|
|
Current U.S.
Class: |
1/1 |
Current CPC
Class: |
G06K 9/6257 20130101;
G06K 9/6221 20130101; G06K 9/6215 20130101 |
International
Class: |
G06K 9/62 20060101
G06K009/62 |
Claims
1. A method for configuring spanning elements of a signature
generator, the method comprises: receiving test images; generating,
by applying a unsupervised dictionary learning process, sparse
signatures of the test images; wherein a sparse signature of a test
image comprises multiple vectors, each vector represents a test
image segment; wherein each vector comprises more zero valued
elements than non-zero valued elements; wherein each element
represent appearances, in the test image segment, of a unique
pattern associated with the element; calculating occurrence
information regarding an occurrence of the unique patterns in
groups of test image segments; selecting, based on the occurrence
information, a set of combinations of unique patterns; and
associating different members of the set to different spanning
elements of the signature generator.
2. The method according to claim 1 wherein the set of combinations
comprises most popular combinations of the unique patterns.
3. The method according to claim 1 comprising selecting the set of
combinations based on popularity of combinations of the unique
patterns and based on a distance between the combinations of the
unique patterns.
4. The method according to claim 1 wherein the groups of test image
segments comprises test image segments that are adjacent to each
other.
5. The method according to claim 1 wherein the groups of test image
segments are of a same size.
6. The method according to claim 1 wherein the calculating of the
occurrence information is related to groups of first size of test
image segments; wherein the selecting comprises selecting a first
set of combinations of unique patterns; and wherein the associating
comprises associating different members of the first set to
different first spanning elements of the signature generator.
7. The method according to claim 6 further comprising: calculating
second occurrence information regarding an occurrence of the unique
patterns in second groups of test image segments; the second groups
are of a second size that exceeds the first size; selecting, based
on the second occurrence information, a second set of combinations
of unique patterns; and associating different members of the second
set to different second spanning elements of the signature
generator.
8. The method according to claim 1 wherein the finding of the set
of decorrelated elements is executed in an iterative manner, one
subset of decorrelated elements after the other.
9. The method according to claim 1 wherein the finding of the set
of decorrelated elements is executed in an iterative manner, one
decorrelated element after the other.
10. The method according to claim 1 wherein the representations of
the test sensed information units are signatures generated by the
signature generator.
11. The method according to claim 1 wherein the representations of
the test sensed information units differ from signatures generated
by the signature generator.
12. The method according to claim 1 wherein the associating
comprises gradually associating the different unique combinations
to all spanning elements.
13. The method according to claim 1 comprising configuring the
spanning elements based on a frequency of appearance of patterns in
the test images.
14. The method according to claim 1 comprising assigning
identifiers of a same object to a same spanning element.
15. The method according to claim 1 comprising searching for
candidate decorrelated elements in a random manner and finding, out
of candidate decorrelated elements, the set of decorrelated
elements.
16. The method according to claim 1 wherein each clusters of the
representations is of at least a minimal predefined size and
wherein a number of clusters of the representations is limited to a
maximal predefined number.
17. The method according to claim 1 the decorrelated elements are
the cluster identifiers and wherein the mapping comprises mapping
each decorrelated cluster identifier to set to a unique combination
of one or more object identifiers, wherein at least one unique
combination differs from a signature by number of object
identifiers.
18. A method for generating a signature of a sensed information
unit, the method comprises: receiving or generating a sensed
information unit; and calculating the signature of the sensed
information unit by performing multiple iterations, wherein each
iteration of at least some of the multiple iterations comprises
applying, by spanning elements related to the iteration, a
dimension expansion process that is followed by a merge operation;
wherein spanning elements related to the multiple iterations are
configured by: receiving test sensed information units; generating
representations of the test sensed information units; wherein the
representations are indicative of features of the test sensed
information units; finding a set of decorrelated elements, wherein
the decorrelated elements are selected out of (i) representations
of the test sensed information units, and (ii) cluster identifiers
that identify clusters of the representations of the test sensed
information units; mapping each decorrelated element of the set to
a unique combination of one or more object identifier; and
associating different unique combinations to the spanning element
of the signature generator.
19. A non-transitory computer readable medium for configuring
spanning elements of a signature generator, the non-transitory
computer readable medium stores instructions for: receiving test
sensed information units; generating representations of the test
sensed information units; wherein the representations are
indicative of features of the test sensed information units;
finding a set of decorrelated elements, wherein the decorrelated
elements are selected out of (i) representations of the test sensed
information units, and (ii) cluster identifiers that identify
clusters of the representations of the test sensed information
units; mapping each decorrelated element of the set to a unique
combination of one or more object identifier; and associating
different unique combinations to the spanning element of the
signature generator.
20. The non-transitory computer readable medium according to claim
18 wherein the finding of the set of decorrelated elements is
executed in an iterative manner, one subset of decorrelated
elements after the other.
21. The non-transitory computer readable medium according to claim
18 wherein the finding of the set of decorrelated elements is
executed in an iterative manner, one decorrelated element after the
other.
22. The non-transitory computer readable medium according to claim
18 wherein the representations of the test sensed information units
are signatures generated by the signature generator.
23. The non-transitory computer readable medium according to claim
18 wherein the representations of the test sensed information units
differ from signatures generated by the signature generator.
24. The non-transitory computer readable medium according to claim
18 wherein the associating comprises gradually associating the
different unique combinations to all spanning elements.
25. The non-transitory computer readable medium according to claim
18 that stores instructions for configuring the spanning elements
based on a frequency of appearance of patterns in the test
images.
26. The non-transitory computer readable medium according to claim
18 that stores instructions for assigning identifiers of a same
object to a same spanning element.
27. The non-transitory computer readable medium according to claim
18 that stores instructions for searching for candidate
decorrelated elements in a random manner and finding, out of
candidate decorrelated elements, the set of decorrelated
elements.
28. The non-transitory computer readable medium according to claim
18 wherein each clusters of the representations is of at least a
minimal predefined size and wherein a number of clusters of the
representations is limited to a maximal predefined number.
29. The non-transitory computer readable medium according to claim
18 wherein the decorrelated elements are the cluster identifiers
and wherein the mapping comprises mapping each decorrelated cluster
identifier to set to a unique combination of one or more object
identifiers, wherein at least one unique combination differs from a
signature by number of object identifiers.
Description
CROSS REFERENCE
[0001] This application claims priority from U.S. provisional
patent 62/827,117 filing date Apr. 1, 2020 which is incorporated
herein by reference.
[0002] This application claims priority from U.S. provisional
patent 61/827,112 filing date Mar. 31, 2019 which is incorporated
herein by reference.
BACKGROUND
[0003] Object detection has extensive usage in variety of
applications, starting from security, sport events, automatic
vehicles, and the like.
[0004] Vast amounts of media units are processed during object
detection and their processing may require vast amounts of
computational resources and memory resources.
[0005] There is a growing need to provide an efficient object
detection method.
SUMMARY
[0006] There may be provided systems, methods and computer readable
medium as illustrated in the specification.
BRIEF DESCRIPTION OF THE DRAWINGS
[0007] The embodiments of the disclosure will be understood and
appreciated more fully from the following detailed description,
taken in conjunction with the drawings in which:
[0008] FIG. 1 illustrates an example of a first dictionary;
[0009] FIG. 2 illustrates an example of a second dictionary;
[0010] FIG. 3 is an example of an image;
[0011] FIGS. 4 and 5 illustrate various original patches, sparse
representations and reconstructed signal representing the original
patches;
[0012] FIG. 6 is an example of a histogram;
[0013] FIG. 7 illustrates an example of augmented image;
[0014] FIG. 8 is an example of a graph that illustrates a frequency
of appearance of various features in an image;
[0015] FIGS. 9 and 10 illustrate an example of an image and
reconstructed images;
[0016] FIG. 11 illustrates an example of an image that includes
groups of patches, an original image and a reconstructed image;
[0017] FIG. 12 illustrates an example of an image that includes
groups of patches, an original image and a reconstructed image;
[0018] FIG. 13 illustrates an example of images;
[0019] FIG. 14 illustrates an example of a method;
[0020] FIG. 15 illustrates an example of a signature;
[0021] FIG. 16 illustrates an example of a dimension expansion
process;
[0022] FIG. 17 illustrates an example of a clusters of a signatures
matching process;
[0023] FIG. 18 illustrates a method;
[0024] FIG. 19 illustrates a method; and
[0025] FIG. 20 illustrates a system.
DESCRIPTION OF EXAMPLE EMBODIMENTS
[0026] In the following detailed description, numerous specific
details are set forth in order to provide a thorough understanding
of the invention. However, it will be understood by those skilled
in the art that the present invention may be practiced without
these specific details. In other instances, well-known methods,
procedures, and components have not been described in detail so as
not to obscure the present invention.
[0027] The subject matter regarded as the invention is particularly
pointed out and distinctly claimed in the concluding portion of the
specification. The invention, however, both as to organization and
method of operation, together with objects, features, and
advantages thereof, may best be understood by reference to the
following detailed description when read with the accompanying
drawings.
[0028] It will be appreciated that for simplicity and clarity of
illustration, elements shown in the figures have not necessarily
been drawn to scale. For example, the dimensions of some of the
elements may be exaggerated relative to other elements for clarity.
Further, where considered appropriate, reference numerals may be
repeated among the figures to indicate corresponding or analogous
elements.
[0029] Because the illustrated embodiments of the present invention
may for the most part, be implemented using electronic components
and circuits known to those skilled in the art, details will not be
explained in any greater extent than that considered necessary as
illustrated above, for the understanding and appreciation of the
underlying concepts of the present invention and in order not to
obfuscate or distract from the teachings of the present
invention.
[0030] Any reference in the specification to a method should be
applied mutatis mutandis to a device or system capable of executing
the method and/or to a non-transitory computer readable medium that
stores instructions for executing the method.
[0031] Any reference in the specification to a system or device
should be applied mutatis mutandis to a method that may be executed
by the system, and/or may be applied mutatis mutandis to
non-transitory computer readable medium that stores instructions
executable by the system.
[0032] Any reference in the specification to a non-transitory
computer readable medium should be applied mutatis mutandis to a
device or system capable of executing instructions stored in the
non-transitory computer readable medium and/or may be applied
mutatis mutandis to a method for executing the instructions.
[0033] Any combination of any module or unit listed in any of the
figures, any part of the specification and/or any claims may be
provided.
[0034] The specification and/or drawings may refer to an image. An
image is an example of a media unit. Any reference to an image may
be applied mutatis mutandis to a media unit. A media unit may be an
example of sensed information. Any reference to a media unit may be
applied mutatis mutandis to any type of natural signal such as but
not limited to signal generated by nature, signal representing
human behavior, signal representing operations related to the stock
market, a medical signal, financial series, geodetic signals,
geophysical, chemical, molecular, textual and numerical signals,
time series, and the like. Any reference to a media unit may be
applied mutatis mutandis to sensed information. The sensed
information may be of any kind and may be sensed by any type of
sensors--such as a visual light camera, an audio sensor, a sensor
that may sense infrared, radar imagery, ultrasound, electro-optics,
radiography, LIDAR (light detection and ranging), etc. The sensing
may include generating samples (for example, pixel, audio signals)
that represent the signal that was transmitted, or otherwise reach
the sensor.
[0035] The specification and/or drawings may refer to a spanning
element. A spanning element may be implemented in software or
hardware. Different spanning element of a certain iteration are
configured to apply different mathematical functions on the input
they receive. Non-limiting examples of the mathematical functions
include filtering, although other functions may be applied.
[0036] The specification and/or drawings may refer to a concept
structure. A concept structure may include one or more clusters.
Each cluster may include signatures and related metadata. Each
reference to one or more clusters may be applicable to a reference
to a concept structure.
[0037] The specification and/or drawings may refer to a processor.
The processor may be a processing circuitry. The processing
circuitry may be implemented as a central processing unit (CPU),
and/or one or more other integrated circuits such as
application-specific integrated circuits (ASICs), field
programmable gate arrays (FPGAs), full-custom integrated circuits,
etc., or a combination of such integrated circuits.
[0038] Any combination of any steps of any method illustrated in
the specification and/or drawings may be provided.
[0039] Any combination of any subject matter of any of claims may
be provided.
[0040] Any combinations of systems, units, components, processors,
sensors, illustrated in the specification and/or drawings may be
provided.
[0041] Any reference to an object may be applicable to a pattern.
Accordingly--any reference to object detection is applicable
mutatis mutandis to a pattern detection.
[0042] Sparse Decomposition of Images Via Unsupervised Dictionary
Learning
[0043] You only look once (YOLO) is a highly popular object
detection method and has multiple variants.
[0044] It has been found that YOLO and convolutional neural network
based object detection provide object features that are heavily
skewed towards the object types that they are trained on and do not
give enough distinguishing power to patterns outside the labelled
set.
[0045] Furthermore, the representation given by the higher layers
of YOLO-type networks contain numerical values, both high and low,
that are related to the object dimensions; picking only the highest
features causes significant information loss.
[0046] Finally, convolutional CNNs filters do not give clear
intuition of what the features at each layer look like and it is
not straightforward to reconstruct the data given just activation
patterns in a specific layer.
[0047] Sparse representation of image features based on dictionary
learning an alternative that might help overcome these
shortcomings.
[0048] Given a set of training signals {x.sub.1, x.sub.2, . . .
x.sub.n}, where x.sub.i represents a patch of dimension
m=h.sub.pw.sub.pc.sub.p, the method attempts to find a dictionary D
of dimension m by L, L being the number of dictionary entries, such
that for each x.sub.i, there exists a sparse representation
.alpha..sub.i such that the number of non-zero entries in
.alpha..sub.i, i.e., |.alpha..sub.i|.sub.0<<L, while
D.alpha..sub.i reconstructs each x.sub.i with high fidelity.
[0049] Algorithmically, this is equivalent to solving the following
optimization problem:
min .times. 1 n .times. i = 1 n .times. D .times. .times. .alpha. i
- x i 2 2 ##EQU00001##
[0050] Such that |.alpha..sub.i|<.lamda. for all i
[0051] Wherein .lamda. is a constraint that can be set by a
user--for example --maximum five or ten per patch.
[0052] Efficient algorithms exist for performing stochastic
gradient descent alternately on D and .alpha., while convergence
guarantees.
[0053] For example--there are shown examples of dictionaries learnt
from various images.
[0054] Each one of FIGS. 1 and 2 illustrates dictionary learnt from
sixty four training images [each training image is a Continental
1024.times.640 pixels, RGB] in one of the following settings:
FIG. 1--dictionary 9501--h.sub.p=w.sub.p=16, L=1024 FIG.
2--dictionary 9502--h.sub.p=w.sub.p=32, L=4096
[0055] Wherein h.sub.p is the height of the patch and w.sub.p is
the width of the patch.
[0056] Sparse Feature Decomposition
[0057] Once a dictionary D is learned, it can be applied to new
image patches to produce their respective sparse representation
{.alpha..sub.i}. The same optimisation problem as before is solved
while keeping D fixed. For the following example image 9503
(included in FIG. 3), the method applied the first dictionary with
1024 entries and patch dimension 16163.
[0058] FIGS. 4 and 5 illustrate various original patches (9504(1),
9504(2) and 9504(3)) from image 9503, their sparse representation
using D (9505(1), 9505(2) and 9505(3)) as well as the reconstructed
signal (9506(1), 9506(2) and 9506(3)) representing the original
patch.
[0059] The patches form a grid of patches and the location of each
one of patches 9504(1), 9504(2) and 9504(3) is denoted by their row
and column. First patch 9504(1) is denoted (15,15)--and is located
at the 15'th row and the 15'th column in the grid of patches.
[0060] Second patch 9504(2) is denoted (15,45)--and is located at
the 15'th row and the 45'th column in the grid of patches.
[0061] Third patch 9504(3) is denoted (25,5)--and is located at the
25'th row and the 5'th column in the grid of patches.
[0062] Fourth patch 9504(4) is denoted (35,45)--and is located at
the 35'th row and the 45'th column in the grid of patches.
[0063] The sparse representation using D are illustrated by graphs
or rather histograms that illustrate the amplitude of each
dictionary element in the sparse representation. Most dictionary
elements are zero.
[0064] FIG. 6 is an example of a histogram formed for image 9503.
The y-axis if the number of patches and the x-axis is the number of
active features (nonzero dictionary elements) per patch.
[0065] The histogram shows that in relation to image 9503 the
majority of the patches can be represented by dozens of active
features. In total, sparse decomposition yields 96608 non-zero
entries, which translates to an average of about 38 active features
per patch.
[0066] FIG. 7 illustrates an example of augmented image 9508 in
which the number of active features (non-zero elements) per patch
are overlaid on image 9503. This shows that various textures in the
image requires different number of features to represent.
[0067] FIG. 8 is an example of a graph 9509 that illustrates the
frequency of appearance of various features in image 9503.
[0068] Image Reconstruction
[0069] One advantage of the dictionary learning method is that
back-forward reconstruction is as simple as a single instance of
matrix multiplication, while CNN activations generally require some
kind of non-linear optimization to traceback the input from the
previous layer.
[0070] FIGS. 9 and 10 illustrates image 9503 and first, second,
third, fourth and fifth reconstructed images 9511, 9512, 9513, 9514
and 9515 respectively.
[0071] The first till fifth reconstructed images differ from each
other by the maximal number of features that may represent each
patch.
[0072] In first reconstructed image 9511 the maximal active
features per patch is 128. In second reconstructed image 9512 the
maximal active features per patch is 64. In third reconstructed
image 9513 the maximal active features per patch is 48. In fourth
reconstructed image 9514 the maximal active features per patch is
32. In fifth reconstructed image 9515 the maximal active features
per patch is 16.
[0073] The following shows the reconstructed image based on its
sparse representation of no more than 100,000 floating-point
numbers, with various degrees of clipping. In agreement to the
distribution of active features (see previous histogram),
high-fidelity reconstruction of the image is possible as long as
each patch can be represented by at least a predefined number (for
example--16, 32, 48, 64 and 128) active features. The exact
threshold varies depending on the content of the image, but is
expected to be lower in higher-dimensional representations.
[0074] The sparse representation illustrated above provides a
viable alternative to convolutional neural network based object
detection in terms of low-level feature extraction, with the
advantage that it works on unlabeled, limited training data, and
enables backward visualization.
[0075] An object detection method that uses the spare
representation may include generating extract high-level, abstract
features (for example high level features that are comparable to
those given by YOLO/MSSD) by training additional layers of
dictionaries on top of the already sparse features and taking into
account more contextual information.
[0076] Similarity Pooling
[0077] The first layer of descriptors of an image was illustrated
above and include assigning a sparse representation to each patch
(for example of 16 by 16 pixels).
[0078] The patches may then be grouped to groups of
patches--wherein each group may be calculated based on a similarity
between patches.
[0079] Thus, after generating a first sparse layer (sp0) the
patches are pooled according to their similarity instead of using a
fixed 3.times.3 grid.
[0080] Since the sparse feature vectors in this case are sparse,
the similarity (denoted S(a,b)) between two patches (patch a and
patch b) may be calculated by a normalized dot product of their
respective vectors (for example--even without mean
subtraction):
s .function. ( a , b ) = v a v b v a .times. v b ##EQU00002##
[0081] S(a,b) is compared to a threshold and once exceed patches a
and b are deemed similar to each other.
[0082] In contrast to clustering in the higher layers, the
similarity among patches that are located only within a certain
radius (nearest-neighbors) are considered. Hence the computational
complexity scales as O(n), where n is the number of patches, as
opposed to O(n.sup.2) as in the case for all-to-all
connectivity.
[0083] A fixed threshold is then applied to the resulting
similarity.
[0084] Any connected subgraph is considered a single pooled patch
for the next layer and is represented by an average feature
vector.
[0085] FIG. 11 illustrates image 9521 that includes 1077 groups of
patches (out of a total of 2560 patches per image), that were
obtained using a pool radius of 1.5 patches and a similarity
threshold of 0.5.
[0086] FIG. 11 illustrates that after the first layer of sparse
decomposition, the features result in a low-level segmentation of
the image. Homogeneous regions like road surface and sky are
collected into single groups, whereas more complex objects remain
fragmented.
[0087] FIG. 11 also illustrates original image 9522 and
reconstructed image 9523. Reconstructed image 9523 is reconstructed
using the resulting average feature vector that represents each
region (sm0.fwdarw.sp0.fwdarw.img), with slight loss of
quality.
[0088] Lower thresholds result in more aggressive pooling, and less
information retention--as illustrated in images 9524, 9525 and
9526.
[0089] FIG. 12 illustrates image 9524 that includes 848 groups of
patches (out of a total of 2560 patches per image), that were
obtained using a pool radius of 1.5 patches and a similarity
threshold of 0.3.
[0090] FIG. 12 also illustrates original image 9525 and
reconstructed image 9526. Reconstructed image 9526 is reconstructed
using the resulting average feature vector that represents each
region (sm0.fwdarw.sp0.fwdarw.img), with slight loss of
quality.
[0091] FIG. 13 illustrates image 9527 that includes 600 groups of
patches (out of a total of 2560 patches per image), that were
obtained using a pool radius of 1.5 patches and a similarity
threshold of 0.3.
[0092] FIG. 13 also illustrates image 9528 that includes 1107
groups of patches (out of a total of 2560 patches per image), that
were obtained using a pool radius of 1.5 patches and a similarity
threshold of 0.3.
[0093] Configuring Spanning Elements
[0094] The analysis of content of a media unit may be executed by
generating a signature of the media unit and by comparing the
signature to reference signatures. The reference signatures may be
arranged in one or more concept structures or may be arranged in
any other manner. The signatures may be used for object detection
or for any other use.
[0095] The signature may be generated by creating a
multidimensional representation of the media unit. The
multidimensional representation of the media unit may have a very
large number of dimensions. The high number of dimensions may
guarantee that the multidimensional representation of different
media units that include different objects is sparse--and that
object identifiers of different objects are distant from each
other--thus improving the robustness of the signatures.
[0096] The generation of the signature is executed in an iterative
manner that includes multiple iterations, each iteration may
include an expansion operations that is followed by a merge
operation. The expansion operation of an iteration is performed by
spanning elements of that iteration.
[0097] FIG. 14 illustrates a method 5000 for generating a signature
of a media unit.
[0098] Method 5000 may start by step 5010 of receiving or
generating sensed information.
[0099] The sensed information may be a media unit of multiple
objects.
[0100] Step 5010 may be followed by processing the media unit by
performing multiple iterations, wherein at least some of the
multiple iterations comprises applying, by spanning elements of the
iteration, dimension expansion process that are followed by a merge
operation.
[0101] The processing may include: [0102] Step 5020 of performing a
k'th iteration expansion process (k may be a variable that is used
to track the number of iterations). [0103] Step 5030 of performing
a k'th iteration merge process. [0104] Step 5040 of changing the
value of k. [0105] Step 5050 of checking if all required iterations
were done--if so proceeding to step 5060 of completing the
generation of the signature. Else--jumping to step 5020.
[0106] The output of step 5020 is a k'th iteration expansion
results 5120.
[0107] The output of step 5030 is a k'th iteration merge results
5130.
[0108] For each iteration (except the first iteration)--the merge
result of the previous iteration is an input to the current
iteration expansion process.
[0109] The method may include a configuration step of configuring
the spanning elements.
[0110] FIG. 15 is an example of a signature 6027 of a media unit
that is an image 6000 and of an outcome 6013 of the last (K'th)
iteration.
[0111] The image 6001 is virtually segments to segments 6000(i,k).
The segments may be of the same shape and size but this is not
necessarily so.
[0112] Outcome 6013 may be a tensor that includes a vector of
values per each segment of the media unit. One or more objects may
appear in a certain segment. For each object--an object identifier
(of the signature) points to locations of significant values,
within a certain vector associated with the certain segment.
[0113] For example--a top left segment (6001(1,1)) of the image may
be represented in the outcome 6013 by a vector V(1,1) 6017(1,1)
that has multiple values. The number of values per vector may
exceed 100, 200, 500, 1000, and the like.
[0114] The significant values (for example--more than 10, 20, 30,
40 values, and/or more than 0.1%, 0.2%. 0.5%, 1%, 5% of all values
of the vector and the like) may be selected. The significant values
may have the values--but may eb selected in any other manner.
[0115] FIG. 15 illustrates a set of significant responses 6015(1,1)
of vector V(1,1) 6017(1,1). The set includes five significant
values (such as first significant value SV1(1,1) 6013(1,1,1),
second significant value SV2(1,1), third significant value
SV3(1,1), fourth significant value SV4(1,1), and fifth significant
value SV5(1,1) 6013(1,1,5).
[0116] The image signature 6027 includes five indexes for the
retrieval of the five significant values--first till fifth
identifiers ID1-ID5 are indexes for retrieving the first till fifth
significant values.
[0117] FIG. 16 illustrates various spanning elements
5061(1)-5061(3).
[0118] Each relevant spanning element may perform a spanning
operation that includes assigning an output value that is
indicative of an identity of the relevant spanning elements of the
iteration. The output value may also be indicative of identities of
previous relevant spanning elements (from previous iterations).
[0119] For example--assuming that spanning element number fifty is
relevant and is associated with a unique set of values of eight and
four--then the output value may reflect the numbers fifty, four and
eight--for example one thousand multiplied by (fifty+forty) plus
forty. Any other mapping function may be applied.
[0120] FIG. 16 also illustrates the steps executed by each spanning
element: [0121] Checking if the merge results are relevant to the
spanning element (step 5091). [0122] If-so--completing the spanning
operation (step 5093). [0123] If not--entering an idle state (step
5092).
[0124] FIG. 17 illustrates an example of a clusters of a signatures
matching process.
[0125] It is assumed that there are multiple (M) cluster structures
4974(1)-4974(M). Each cluster structure includes cluster
signatures, metadata regarding the cluster signatures.
[0126] For example--first cluster structure 4974(1) includes
multiple (N1) signatures (referred to as cluster signatures CS)
CS(1,1)-CS(1,N1) 4975(1,1)-4975(1,N1) and metadata 4976(1).
[0127] Yet for another example--M'th cluster structure 4974(M)
includes multiple (N2) signatures (referred to as cluster
signatures CS) CS(M,1)-CS(M,N2) 4975(M,1)-4975(M,N2) and metadata
4976(M).
[0128] FIG. 17 also illustrates a media unit signature 4972 that is
compared to the signatures of the M cluster structures--from
CS(1,1) 4975(1,1) till CS(M,N2) 4975(M,N2).
[0129] We assume that one or more cluster structures are matching
cluster structures.
[0130] Once the matching cluster structures are found the method
proceeds by generating shape information that is of higher accuracy
then the compressed shape information.
[0131] For example--assuming that the matching signatures include
CS(1,1) 2975(1,1), CS(2,5) 2975(2,5), CS(7,3) 2975(7,3) and
CS(15,2) 2975(15,2).
[0132] The number of signatures per concept structure may change
over time--for example due to cluster reduction attempts during
which a CS is removed from the structure to provide a reduced
cluster structure, the reduced structure structure is checked to
determine that the reduced cluster signature may still identify
objects that were associated with the (non-reduced) cluster
signature--and if so the signature may be reduced from the cluster
signature.
[0133] The signatures of each cluster structures are associated to
each other, wherein the association may be based on similarity of
signatures and/or based on association between metadata of the
signatures.
[0134] Assuming that each cluster structure is associated with a
unique object--then objects of a media unit may be identified by
finding cluster structures that are associated with said objects.
The finding of the matching cluster structures may include
comparing a signature of the media unit to signatures of the
cluster structures--and searching for one or more matching
signature out of the cluster signatures.
[0135] Each cluster may be identified by a cluster identifier. The
cluster identifier may differ by size (for example by number of
object identifiers) than a signature. One or more cluster
identifiers may identify the cluster. A cluster identifier may
include identifiers that are shared between CSs, may include
identifiers that appear (even if not shared) in a CS, and the like.
The cluster identifier may be generated by applying any function on
the CS of a cluster.
[0136] For example--assuming that a cluster identifier include
identifiers that are shared between two or more CS of the cluster.
If no identifier is shared between all CS of the cluster--then
multiple cluster identifier may be required to represent a single
cluster. The cluster identifier may include all (or at least some)
of the signature that appear in one or more CSs.
[0137] FIG. 18 illustrates a method 9600 for configuring spanning
elements of a signature generator.
[0138] Method 9600 may include the following steps: [0139]
Receiving test images 9602. [0140] Generating, by applying a
unsupervised dictionary learning process, sparse signatures of the
test images; wherein a sparse signature of a test image comprises
multiple vectors, each vector represents a test image segment;
wherein each vector comprises more zero valued elements than
non-zero valued elements; wherein each element represent
appearances, in the test image segment, of a unique pattern
associated with the element 9604. [0141] Calculating occurrence
information regarding an occurrence of the unique patterns in
groups of test image segments 9606. [0142] Selecting, based on the
occurrence information, a set of combinations of unique patterns
9608. [0143] Associating different members of the set to different
spanning elements of the signature generator 9610.
[0144] The set of combinations may include most popular
combinations of the unique patterns. The set may include a
predefined number of most popular combinations, all combinations of
the unique patterns that exceed a popularity threshold. The rule
for determining the size and/or the popularity threshold may be
fixed, or may change over time.
[0145] The method may include selecting the set of combinations
based on popularity of combinations of the unique patterns and
based on a distance between the combinations of the unique
patterns. Any cost function may be selected for determining the set
of combinations. For example--there may be applied a distance
threshold or a distance range so that only unique patterns within
the range (or above or below the threshold) may be
elected--regardless of their popularity. Yet for another
example--there may be applied a popularity threshold or a
popularity range so that only unique patterns within the range (or
above or below the threshold) may be elected--regardless of their
distance. Yet for a further example--the selection may be based on
a combination of popularity and distance.
[0146] The groups of test image segments may include test image
segments that are adjacent to each other.
[0147] The groups of test image segments may be of a same size.
[0148] The calculating of the occurrence information may be related
to groups of first size of test image segments; wherein the
selecting may include selecting a first set of combinations of
unique patterns; and wherein the associating may include
associating different members of the first set to different first
spanning elements of the signature generator.
[0149] The method may further include calculating second occurrence
information regarding an occurrence of the unique patterns in
second groups of test image segments; the second groups are of a
second size that exceeds the first size; selecting, based on the
second occurrence information, a second set of combinations of
unique patterns; and associating different members of the second
set to different second spanning elements of the signature
generator. These steps may add a layer of representations that may
be mapped to the first layer of representations and may for a
cortex structure. The number of layers may exceed two.
[0150] Each spanning element may be configured to determine whether
it is relevant to a signature generation process based on the
unique combination of one or more object identifiers that are
associated with the spanning element. Thus--when a spanning element
receives as input (for example as a result of a previous merge
iteration) the unique combination (either alone or on addition to
other signatures)--spanning element is relevant and completes the
expansion process. If a spanning element does not receive (at
least) the unique combination--the spanning element does not output
a expansion result.
[0151] FIG. 19 illustrates method 9420 of generating a signature of
a sensed information unit.
[0152] Method 9420 may include the following steps: [0153]
Receiving or generating a sensed information unit 9422. [0154]
Calculating the signature of the sensed information unit by
performing multiple iterations, wherein each iteration of at least
some of the multiple iterations may include applying, by spanning
elements related to the iteration, a dimension expansion process
that may be followed by a merge operation. 9424
[0155] The spanning elements may be configured by executing method
9400.
[0156] Method 9420 may also include: [0157] Finding at least one
matching cluster, each matching cluster has a cluster signature
that matches the signature of the sensed information 9426. [0158]
Determining that the sensed information unit includes at least one
object that is associated with the at least one matching clusters
9428.
[0159] Method 9420 may be preceded by method 9600 of configuring
the spanning elements utilized in step 9424.
[0160] FIG. 20 illustrates an example of a system capable of
executing one or more of the mentioned above methods.
[0161] The system include various components, elements and/or
units.
[0162] A component element and/or unit may be a processing
circuitry may be implemented as a central processing unit (CPU),
and/or one or more other integrated circuits such as
application-specific integrated circuits (ASICs), field
programmable gate arrays (FPGAs), full-custom integrated circuits,
etc., or a combination of such integrated circuits.
[0163] Alternatively, each component element and/or unit may
implemented in hardware, firmware, or software that may be executed
by a processing circuitry.
[0164] System 4900 may include sensing unit 4902, communication
unit 4904, input 4911, processor 4950, and output 4919. The
communication unit 4904 may include the input and/or the
output.
[0165] Input and/or output may be any suitable communications
component such as a network interface card, universal serial bus
(USB) port, disk reader, modem or transceiver that may be operative
to use protocols such as are known in the art to communicate either
directly, or indirectly, with other elements of the system.
[0166] Processor 4950 may include at least some out of [0167]
Multiple spanning elements 4951(q). [0168] Multiple merge elements
4952(r). [0169] Signature generator 4958.
[0170] While the foregoing written description of the invention
enables one of ordinary skill to make and use what is considered
presently to be the best mode thereof, those of ordinary skill will
understand and appreciate the existence of variations,
combinations, and equivalents of the specific embodiment, method,
and examples herein. The invention should therefore not be limited
by the above described embodiment, method, and examples, but by all
embodiments and methods within the scope and spirit of the
invention as claimed.
[0171] In the foregoing specification, the invention has been
described with reference to specific examples of embodiments of the
invention. It will, however, be evident that various modifications
and changes may be made therein without departing from the broader
spirit and scope of the invention as set forth in the appended
claims.
[0172] Moreover, the terms "front," "back," "top," "bottom,"
"over," "under" and the like in the description and in the claims,
if any, are used for descriptive purposes and not necessarily for
describing permanent relative positions. It is understood that the
terms so used are interchangeable under appropriate circumstances
such that the embodiments of the invention described herein are,
for example, capable of operation in other orientations than those
illustrated or otherwise described herein.
[0173] Furthermore, the terms "assert" or "set" and "negate" (or
"deassert" or "clear") are used herein when referring to the
rendering of a signal, status bit, or similar apparatus into its
logically true or logically false state, respectively. If the
logically true state is a logic level one, the logically false
state is a logic level zero. And if the logically true state is a
logic level zero, the logically false state is a logic level
one.
[0174] Those skilled in the art will recognize that the boundaries
between logic blocks are merely illustrative and that alternative
embodiments may merge logic blocks or circuit elements or impose an
alternate decomposition of functionality upon various logic blocks
or circuit elements. Thus, it is to be understood that the
architectures depicted herein are merely exemplary, and that in
fact many other architectures may be implemented which achieve the
same functionality.
[0175] Any arrangement of components to achieve the same
functionality is effectively "associated" such that the desired
functionality is achieved. Hence, any two components herein
combined to achieve a particular functionality may be seen as
"associated with" each other such that the desired functionality is
achieved, irrespective of architectures or intermedial components.
Likewise, any two components so associated can also be viewed as
being "operably connected," or "operably coupled," to each other to
achieve the desired functionality.
[0176] Furthermore, those skilled in the art will recognize that
boundaries between the above described operations merely
illustrative. The multiple operations may be combined into a single
operation, a single operation may be distributed in additional
operations and operations may be executed at least partially
overlapping in time. Moreover, alternative embodiments may include
multiple instances of a particular operation, and the order of
operations may be altered in various other embodiments.
[0177] Also for example, in one embodiment, the illustrated
examples may be implemented as circuitry located on a single
integrated circuit or within a same device. Alternatively, the
examples may be implemented as any number of separate integrated
circuits or separate devices interconnected with each other in a
suitable manner.
[0178] However, other modifications, variations and alternatives
are also possible. The specifications and drawings are,
accordingly, to be regarded in an illustrative rather than in a
restrictive sense.
[0179] In the claims, any reference signs placed between
parentheses shall not be construed as limiting the claim. The word
`comprising` does not exclude the presence of other elements or
steps then those listed in a claim. Furthermore, the terms "a" or
"an," as used herein, are defined as one or more than one. Also,
the use of introductory phrases such as "at least one" and "one or
more" in the claims should not be construed to imply that the
introduction of another claim element by the indefinite articles
"a" or "an" limits any particular claim containing such introduced
claim element to inventions containing only one such element, even
when the same claim includes the introductory phrases "one or more"
or "at least one" and indefinite articles such as "a" or "an." The
same holds true for the use of definite articles. Unless stated
otherwise, terms such as "first" and "second" are used to
arbitrarily distinguish between the elements such terms describe.
Thus, these terms are not necessarily intended to indicate temporal
or other prioritization of such elements. The mere fact that
certain measures are recited in mutually different claims does not
indicate that a combination of these measures cannot be used to
advantage.
[0180] While certain features of the invention have been
illustrated and described herein, many modifications,
substitutions, changes, and equivalents will now occur to those of
ordinary skill in the art. It is, therefore, to be understood that
the appended claims are intended to cover all such modifications
and changes as fall within the true spirit of the invention.
[0181] It is appreciated that various features of the embodiments
of the disclosure which are, for clarity, described in the contexts
of separate embodiments may also be provided in combination in a
single embodiment. Conversely, various features of the embodiments
of the disclosure which are, for brevity, described in the context
of a single embodiment may also be provided separately or in any
suitable sub-combination.
[0182] It will be appreciated by persons skilled in the art that
the embodiments of the disclosure are not limited by what has been
particularly shown and described hereinabove. Rather the scope of
the embodiments of the disclosure is defined by the appended claims
and equivalents thereof.
* * * * *