SYSTEMS AND METHODS FOR IDENTIFYING MATCHING CONTENT
Systems, methods, and non-transitory computer-readable media can obtain a test content item having a plurality of video frames. At least one video fingerprint is determined based on a set of video frames corresponding to the test content item. At least one reference content item is determined using at least a portion of the video fingerprint. At least one portion of the test content item that matches at least one portion of the reference content item is determined based at least in part on the video fingerprint of the test content item and one or more video fingerprints of the reference content item.
1 . A computer-implemented method comprising:
obtaining, by a computing system, a test content item having a plurality of video frames;
generating, by the computing system, at least one video fingerprint based on a set of video frames corresponding to the test content item;
determining, by the computing system, at least one reference content item using at least a portion of the video fingerprint; and
determining, by the computing system, at least one portion of the test content item that matches at least one portion of the reference content item based at least in part on the video fingerprint of the test content item and one or more video fingerprints of the reference content item.
2 . The computer-implemented method of claim 1 , wherein generating at least one video fingerprint based on a set of video frames corresponding to the test content item further comprises:
generating, by the computing system, a respective feature vector for each video frame in the set of video frames, wherein a feature vector includes a set of feature values that describe a video frame;
converting, by the computing system, the feature vectors for the set of video frames to a frequency domain; and
generating, by the computing system, a respective set of bits for each video frame by quantizing a set of frequency components that correspond to one or more of the video frames.
3 . The computer-implemented method of claim 2 , wherein the feature values included in a feature vector of a video frame correspond to at least a measured brightness for the video frame, a measured coloration for the video frame, or measured changes between one or more groups of pixels in the video frame.
4 . The computer-implemented method of claim 2 , wherein a feature vector for a video frame is converted to a frequency domain by applying a Fast Fourier Transform (FFT), a Discrete Cosine Transform (DCT), or both.
5 . The computer-implemented method of claim 2 , the method further comprising:
interpolating, by the computing system, the video frames in the frequency domain, wherein the interpolation causes the video fingerprint to correspond to a pre-defined frame rate.
6 . The computer-implemented method of claim 1 , wherein determining at least one reference content item using at least a portion of the video fingerprint further comprises:
obtaining, by the computing system, a set of bits corresponding to a first frame in the set of frames from which the video fingerprint was generated;
identifying, by the computing system, at least one candidate frame based at least in part on a first portion of the set of bits; and
determining, by the computing system, the reference content item based on the candidate frame.
7 . The computer-implemented method of claim 6 , wherein identifying at least one candidate frame based at least in part on a first portion of the set of bits further comprises:
hashing, by the computing system, the first portion of the set of bits to a bin in an inverted index, wherein the bin references information describing the at least one candidate frame.
8 . The computer-implemented method of claim 7 , wherein the information describing the candidate frame identifies the reference content item and an offset that identifies a position of the candidate frame in the reference content item.
9 . The computer-implemented method of claim 1 , wherein determining at least one portion of the test content item that matches at least one portion of the reference content item further comprises:
obtaining, by the computing system, a set of bits corresponding to at least one first frame in the set of frames from which the video fingerprint was generated;
identifying, by the computing system, at least one candidate frame based at least in part on a first portion of the set of bits; and
determining, by the computing system, that a Hamming distance between the set of bits corresponding to the first frame and a set of bits corresponding to the candidate frame satisfies a threshold value.
10 . The computer-implemented method of claim 9 , the method further comprising:
obtaining, by the computing system, a set of bits corresponding to at least one second frame in the set of frames from which the video fingerprint was generated;
determining, by the computing system, a set of bits corresponding to a new frame in the reference content item; and
determining, by the computing system, that a Hamming distance between the set of bits corresponding to the second frame and the set of bits corresponding to the new frame satisfies a threshold value.
11 . A system comprising:
at least one processor; and
a memory storing instructions that, when executed by the at least one processor, cause the system to perform:
obtaining a test content item having a plurality of video frames;
generating at least one video fingerprint based on a set of video frames corresponding to the test content item;
determining at least one reference content item using at least a portion of the video fingerprint; and
determining at least one portion of the test content item that matches at least one portion of the reference content item based at least in part on the video fingerprint of the test content item and one or more video fingerprints of the reference content item.
12 . The system of claim 11 , wherein generating at least one video fingerprint based on a set of video frames corresponding to the test content item further causes the system to perform:
generating a respective feature vector for each video frame in the set of video frames, wherein a feature vector includes a set of feature values that describe a video frame;
converting the feature vectors for the set of video frames to a frequency domain; and
generating a respective set of bits for each video frame by quantizing a set of frequency components that correspond to each of the video frames.
13 . The system of claim 12 , wherein the feature values included in a feature vector of a video frame correspond to at least a measured brightness for the video frame, a measured coloration for the video frame, or measured changes between one or more groups of pixels in the video frame.
14 . The system of claim 12 , wherein a feature vector for a video frame is converted to a frequency domain by applying a Fast Fourier Transform (FFT), a Discrete Cosine Transform (DCT), or both.
15 . The system of claim 12 , wherein the system further performs:
interpolating the video frames in the frequency domain, wherein the interpolation causes the video fingerprint to correspond to a pre-defined frame rate.
16 . A non-transitory computer-readable storage medium including instructions that, when executed by at least one processor of a computing system, cause the computing system to perform a method comprising:
determining that a publisher is providing a first live content stream for distribution through the social networking system, the first live content stream including copyrighted content;
obtaining a test content item having a plurality of video frames;
generating at least one video fingerprint based on a set of video frames corresponding to the test content item;
determining at least one reference content item using at least a portion of the video fingerprint; and
determining at least one portion of the test content item that matches at least one portion of the reference content item based at least in part on the video fingerprint of the test content item and one or more video fingerprints of the reference content item.
17 . The non-transitory computer-readable storage medium of claim 16 , wherein generating at least one video fingerprint based on a set of video frames corresponding to the test content item further causes the computing system to perform:
generating a respective feature vector for each video frame in the set of video frames, wherein a feature vector includes a set of feature values that describe a video frame;
converting the feature vectors for the set of video frames to a frequency domain; and
generating a respective set of bits for each video frame by quantizing a set of frequency components that correspond to each of the video frames.
18 . The non-transitory computer-readable storage medium of claim 17 , wherein the feature values included in a feature vector of a video frame correspond to at least a measured brightness for the video frame, a measured coloration for the video frame, or measured changes between one or more groups of pixels in the video frame.
19 . The non-transitory computer-readable storage medium of claim 17 , wherein a feature vector for a video frame is converted to a frequency domain by applying a Fast Fourier Transform (FFT), a Discrete Cosine Transform (DCT), or both.
20 . The non-transitory computer-readable storage medium of claim 19 , wherein the computing system further performs:
interpolating the video frames in the frequency domain, wherein the interpolation causes the video fingerprint to correspond to a pre-defined frame rate.