IP Library Granted Patent US 8,238,669
Granted Patent B2
US 8,238,669 · App. 12/174,366 · Granted Aug 7, 2012

Detection and classification of matches between time-based media

Assignee: Google Inc.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,238,669
App. No.
12/174,366
Granted
Aug 7, 2012
Kind
B2
Abstract

A system and method detects matches between portions of video content. A matching module receives an input video fingerprint representing an input video and a set of reference fingerprints representing reference videos in a reference database. The matching module compares the reference fingerprints and input fingerprints to generate a list of candidate segments from the reference video set. Each candidate segment comprises a time-localized portion of a reference video that potentially matches the input video. A classifier is applied to each of the candidate segments to classify the segment as a matching segment or a non-matching segment. A result is then outputted identifying a matching portion of a reference video from the reference video set based on the segments classified as matches.

Claims (81)

1. A computer-implemented method for detecting duplicate video content, the method comprising:

storing in a database, reference fingerprints for a plurality of reference videos, wherein a given reference video has a plurality of reference video segments corresponding to time-localized portions of the given reference video, and wherein the reference fingerprint for the given reference video comprises a plurality of reference sub-fingerprints derived from the plurality of reference video segments;

receiving at a processor, an input fingerprint representing an input video;

selecting by the processor, a subset of the plurality of reference video segments as candidate segments, the candidate segments selected by the processor for having reference sub-fingerprints that at least partially match the input fingerprint;

classifying by the processor, each of the candidate segments as either a matching candidate segment or a non-matching candidate segment using a machine-learned classifier; and

identifying by the processor, a matching reference video from the plurality of reference videos based on the matching candidate segments.

2. The method of claim 1 , further comprising:

obtaining a set of input sub-fingerprints for the input fingerprint, wherein each input sub-fingerprint comprises a sequence of input sub-fingerprint keys;

obtaining sets of reference sub-fingerprints for the reference videos, wherein each reference sub-fingerprint comprises a sequence of reference sub-fingerprint keys; and

selecting the subset of candidate segments based on matches between the reference sub-fingerprint keys and the input sub-fingerprint keys.

3. The method of claim 1 , further comprising:

determining a figure of merit for each of the plurality of reference videos based on time-localized matches between the reference videos and the input video; and

selecting the subset of candidate segments based on the figure of merit.

4. The method of claim 1 , further comprising:

sorting reference sub-fingerprints representing the reference videos in a sort order from most discriminative to least discriminative; and

selecting the subset of candidate segments based at least in part on the sort order of the reference sub-fingerprints.

5. The method of claim 1 , further comprising:

sorting reference keys of reference sub-fingerprints representing a reference video in a sort order from most discriminative to least discriminative; and

selecting the subset of candidate segments based at least in part on the sort order of the reference keys.

6. The method of claim 1 , further comprising:

arranging sub-fingerprints of the input fingerprint in a temporally consecutive order;

determining temporally consecutive matches between the input video sub-fingerprints representing the input video and the reference video sub-fingerprints representing the reference video; and

selecting the subset of candidate segments based on the temporally consecutive matches.

7. The method of claim 1 , wherein classifying each of the candidate segments comprises:

determining a quality measure indicating a match quality between the input fingerprint and a reference fingerprint for the candidate segment based on a known matching model; and

classifying the candidate segment as a matching segment or a non-matching segment based on the quality measure.

8. The method of claim 1 , further comprising:

receiving an input key representing a portion of values from the input fingerprint; and

querying a reverse index table to obtain one or more sub-fingerprint identifiers identifying a time-localized segment of a reference video from the reference video set having a key matching the input key.

9. The method of claim 8 , wherein the input key comprises adjacent values from an input sub-fingerprint.

10. The method of claim 8 , wherein the input key comprises non-adjacent values from an input sub-fingerprint.

11. The method of claim 8 , wherein the reverse index table stores a first level blacklist identifier code in association with a first reference key responsive to more than a predefined percentage of reference sub-fingerprints representing the reference videos containing the first reference key.

12. The method of claim 8 , wherein the reverse index table stores a second level blacklist identifier code in association with a first reference key responsive to more than a predefined number of reference sub-fingerprints representing the reference videos containing the first reference key.

13. The method of claim 1 , wherein selecting the subset of candidate segments comprises:

identifying premium reference videos labeled as having premium content from the plurality of reference videos; and

selecting the subset of candidate segments based on the identification of the premium reference videos.

14. A non-transitory computer readable storage medium storing computer executable code for detecting duplicate video content, the computer executable program code when executed cause an application to perform steps of:

storing in a database, reference fingerprints for a plurality of reference videos, wherein a given reference video has a plurality of reference video segments corresponding to time-localized portions of the given reference video, and wherein the reference fingerprint for the given reference video comprises a plurality of reference sub-fingerprints derived from the plurality of reference video segments;

receiving an input fingerprint representing an input video;

selecting a subset of the plurality of reference video segments as candidate segments, the candidate segments selected by the processor for having reference sub-fingerprints that at least partially matching the input fingerprint;

classifying each of the candidate segments as either a matching candidate segment or a non-matching candidate segment using a machine-learned classifier; and

identifying a matching reference video from the reference video set based on the matching candidate segments.

15. The non-transitory computer readable storage medium of claim 14 , further comprising:

obtaining a set of input sub-fingerprints for the input fingerprint, wherein each input sub-fingerprint comprises a sequence of input sub-fingerprint keys;

obtaining sets of reference sub-fingerprints for the reference videos, wherein each reference sub-fingerprint comprises a sequence of reference sub-fingerprint keys; and

selecting the subset of initial candidate segments based on matches between the reference sub-fingerprint keys and the input sub-fingerprint keys.

16. The non-transitory computer readable storage medium of claim 14 , further comprising:

determining a figure of merit for each of the plurality of reference videos based on time-localized matches between the reference videos and the input video; and

selecting the subset of candidate segments based on the figure of merit.

17. The non-transitory computer readable storage medium of claim 14 , further comprising:

sorting reference sub-fingerprints representing the reference videos in a sort order from most discriminative to least discriminative; and

selecting the subset of candidate segments based at least in part on the sort order of the reference keys.

18. The non-transitory computer readable storage medium of claim 14 , further comprising:

sorting reference keys of a reference sub-fingerprints representing a reference video in a sort order from most discriminative to least discriminative; and

selecting the subset of candidate segments based on the temporally consecutive matches.

19. The non-transitory computer readable storage medium of claim 14 , further comprising:

arranging sub-fingerprints of the input fingerprint in a temporally consecutive order;

determining temporally consecutive matches between the input video sub-fingerprints representing the input video and the reference video sub-fingerprints representing the reference video; and

selecting the subset of candidate segments based on the temporally consecutive matches.

20. The non-transitory computer readable storage medium of claim 14 , wherein classifying each of the candidate segments comprises:

determining a quality measure indicating a match quality between the input fingerprint and a reference fingerprint for the candidate segment based on a known matching model; and

classifying the candidate segment as a matching segment or a non-matching segment based on the quality measure.

21. The non-transitory computer readable storage medium of claim 14 , further comprising:

receiving an input key representing a portion of values from the input fingerprint; and

querying a reverse index table to obtain one or more sub-fingerprint identifiers identifying a time-localized segment of a reference video from the reference video set having a key matching the input key.

22. The non-transitory computer readable storage medium of claim 21 , wherein the input key comprises adjacent values from an input sub-fingerprint.

23. The non-transitory computer readable storage medium of claim 21 , wherein the input key comprises non-adjacent values from an input sub-fingerprint.

24. The non-transitory computer readable storage medium of claim 21 , wherein the reverse index table stores a first level blacklist identifier code in association with a first reference key responsive to more than a predefined percentage of reference sub-fingerprints representing the reference videos containing the first reference key.

25. The non-transitory computer readable storage medium of claim 21 , wherein the reverse index table stores a second level blacklist identifier code in association with a first reference key responsive to more than a predefined number of reference sub-fingerprints representing the reference videos containing the first reference key.

26. The non-transitory computer readable storage medium of claim 12 , wherein selecting the subset of candidate segments comprises:

identifying premium reference videos labeled as having premium content from the plurality of reference videos; and

selecting the subset of candidate segments based on the identification of the premium reference videos.

27. A system for detecting duplicate video content comprising:

an ingest server for receiving an input video;

a fingerprinting module for generating an input fingerprint representing the input video;

a reference database storing reference fingerprints representing a set of reference videos, wherein a given reference video has a plurality of reference video segments corresponding to time-localized portions of the given reference video, and wherein the reference fingerprint for the given reference video comprises a plurality of reference sub-fingerprints derived from the plurality of reference video segments;

a matching module coupled to the fingerprinting module and the reference database, the matching module for selecting a subset of the plurality of reference video segments as candidate segments, the candidate segments selected by the processor for having reference sub-fingerprints that at least partially matching the input fingerprint, classifying each of the candidate segments as matching segments or non-matching segments, and identifying a matching reference video from the set of reference videos based on the matching candidate segments.

28. The system of claim 27 , wherein the reference database comprises:

a reverse index table storing a mapping between identifiers of the reference videos and reference keys, wherein the reference keys comprise localized sets of values from the reference sub-fingerprints.

29. The system of claim 28 , wherein the reverse index table stores a first level blacklist identifier code in association with a first reference key responsive to more than a predefined percentage of the reference sub-fingerprints containing the first reference key.

30. The system of claim 28 , wherein the reverse index table stores a second level blacklist identifier code in association with a first reference key responsive to more than a predefined threshold of the reference sub-fingerprints containing the first reference key.

Assignments (2)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044101/0405 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 23, 2008
From: COVELL, MICHELE; YAGNIK, JAY; FAUST, JEFF; BALUJA, SHUMEET
To: GOOGLE INC
Reel/Frame 021569/0480 →
Continuity (2)
Provisional Application 60957446 · Aug 22, 2007
Related Publication 20090052784A1 · Feb 26, 2009