# US 8,571,255 B2 · Scalable media fingerprint extraction

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,571,255 B2
- Document ID: US8571255B2
- Status: Granted
- Kind: B2
- Application number: 13/142,355
- Filed: 2010-01-07
- Published: 2011-11-03
- Granted: 2013-10-29
- Earliest claimed: 2009-01-07
- Assignees: Dolby Laboratories Licensing Corporation
- Applicants: Claus Bauer; Regunathan Radhakrishnan; Wenyu Jiang; Glenn N. Dickins
- Inventors: Claus Bauer; Regunathan Radhakrishnan; Wenyu Jiang; Glenn N. Dickins
- Web page: https://patentgrep.com/patent/US8571255B2

## CPC

- G06V 20/46: {Extracting features or characteristics from the video content, e.g. video fingerprints, representative shots or key frames}
- G06F 18/2113: by ranking or filtering the set of features, e.g. using a measure of variance or of feature cross-correlation
- G06V 10/40: Extraction of image or video features
- G06V 10/771: Feature selection, e.g. selecting representative features from a multi-dimensional feature space
- G06V: IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Derivation of a fingerprint includes generating feature matrices based on one or more training images, generating projection matrices based on the feature matrices in a training process, and deriving a fingerprint for one or more images by, at least in part, projecting a feature matrix based on the one or more images onto the projection matrices generated in the training process.

## Claims

### Claim 1

A computer-implemented method comprising:
generating a plurality of projection matrices in a training process, wherein the training process comprises:
generating a plurality of feature matrices based on one or more training images;
projecting the plurality of feature matrices onto a plurality of candidate matrices to obtain a plurality of projected values for each of the plurality of candidate matrices; and
selecting a subgroup of the plurality of candidate matrices as the projection matrices based on cross-correlation values between the plurality of projected values for each of the projection matrices; and
deriving a fingerprint codeword for one or more images, wherein deriving the fingerprint codeword for the one or more images comprises projecting a feature matrix based on the one or more images onto the plurality of projection matrices generated in the training process.

### Claim 2 (depends on 1)

The method as recited in claim 1, wherein selecting the projection matrices is responsive to determining that the cross-correlation values between the plurality of projected values for each of the projection matrices are below a cross-correlation threshold value.

### Claim 3 (depends on 2)

The method as recited in claim 2, wherein projecting the plurality of feature matrices onto the plurality of candidate matrices to obtain a plurality of projected values for each of the plurality of candidate matrices, comprises:
iteratively generating the plurality of candidate matrices until selection of the projection matrices is completed.

### Claim 4 (depends on 3)

The method as recited in claim 3, wherein iteratively generating the plurality of candidate matrices until selection of the projection matrices is completed comprises:
determining a cross-correlation between the projected values of a current set of the plurality of candidate matrices;
replacing at least one candidate matrix in the current set of the plurality of candidate matrices with one or more new candidate matrices in each iteration until the current set of the plurality of candidate matrices is identified such that the cross-correlation values between the projected values for each of the current set of the candidate matrices are all below the cross-correlation threshold value; and
responsive to identifying the current set of the plurality of candidate matrices such that the cross-correlation values between the projected values for each of the current of the candidate matrices are all below the cross-correlation threshold value, selecting the current set of the plurality of candidate matrices as the plurality of projection matrices.

### Claim 5 (depends on 3)

The method as recited in claim 3, wherein iteratively generating the plurality of candidate matrices until selection of the projection matrices is completed comprises:
projecting the plurality of feature matrices onto a first candidate matrix of the plurality of candidate matrices to obtain a first plurality of projected values for the first candidate matrix;
determining cross-correlation values between the first plurality of projected values and the projected values of the remaining candidate matrices that have previously been generated, wherein at least one cross-correlation value is above the cross-correlation threshold;
responsive to the at least one-correlation value being above the cross-correlation threshold, generating a second candidate matrix of the plurality of candidate matrices;
projecting the plurality of feature matrices onto the second candidate matrix of the plurality of candidate matrices to obtain a second plurality of projected values for the second candidate matrix;
determining cross-correlation values between the second plurality of projected values and the projected values of the remaining candidate matrices that have previously been generated, except the first plurality of projected values, wherein the cross-correlation values between the second plurality of projected values and the projected values of the remaining candidate matrices are below the cross-correlation threshold; and
responsive to determining cross-correlation values, between the second plurality of projected values and the projected values of the remaining candidate matrices are below the cross-correlation threshold, selecting the second candidate matrix as one of the projection matrices.

### Claim 6 (depends on 5)

The method as recited in claim 5, further comprising generating the second candidate matrix based on the first candidate matrix.

### Claim 7 (depends on 6)

The method as recited in claim 6, wherein generating the second candidate matrix based on the first candidate matrix comprises generating the second candidate matrix orthogonal to the first candidate matrix.

### Claim 8 (depends on 1)

The method as recited in claim 1, wherein selecting the projection matrices based on a cross-correlation between the projected values for each of projection matrices, comprises:
generating a cross-correlation matrix comprising a plurality of cross-correlation values for each candidate matrix, wherein the plurality of cross-correlation values for a candidate matrix represent cross-correlation between said candidate matrix and the remaining candidate matrices of the plurality of candidate matrices; and
selecting said candidate matrix as a projection matrix of the plurality of projection matrices if each of the plurality of cross-correlation values for said candidate matrix are below the cross-correlation threshold.

### Claim 9 (depends on 1)

The method as recited in claim 1, wherein projecting the plurality of feature matrices onto one of the plurality of candidate matrices to obtain a plurality of projected values for each of the plurality of candidate matrices, comprises:
computing a Hadamard product of each of the plurality of feature matrices with each of the plurality of candidate matrices to obtain a resulting matrix; and
summing up elements in the resulting matrix.

### Claim 10 (depends on 1)

The method as recited in claim 1, wherein selecting the projection matrices is further based on selecting projection matrices wherein the projected values of the projection matrices threshold to zero and one, evenly.

### Claim 11 (depends on 1)

The method as recited in claim 1, wherein deriving the fingerprint codeword for the one or more images further comprises:
projecting the feature matrix based on the one or more images onto the projection matrices to generate a plurality of projected values associated with the one or more images;
computing a plurality of signature bits based on the plurality of projected values; and
determining the fingerprint codeword for the one or more images based on the plurality of signature bits.

### Claim 12 (depends on 11)

The method as recited in claim 11, wherein computing the plurality of signature bits based on the plurality of projected values comprises deriving a varying number of signature bits based on each of the projection matrices of the plurality of projected values based on a uniqueness of each projection matrix.

### Claim 13 (depends on 12)

The method as recited in claim 12, wherein the uniqueness of each projection matrix is determined by:
projecting the plurality of feature matrices, which are based on the one or more training images, on the projection matrix to obtain a corresponding set of projected values;
comparing the set of projected values corresponding to the projection matrix to each set of projected values corresponding to the remaining projection matrices of the plurality of projection matrices to determine to obtain cross-correlation values for the projection matrix; and
ranking the uniqueness of the projection matrix based on an inverse relationship to the cross-correlation values for the projection matrix.

### Claim 14 (depends on 1)

The method as recited in claim 1, wherein the one or more images comprise spectrograms, video frames, or still images.
