IP Library › Granted Patent US 12,094,078
Granted Patent B2
US 12,094,078 · App. 17/665,357 · Granted Sep 17, 2024

Systems and methods for spline-based object tracking

Inventor: Apurvakumar Dilipkumar Kansara (San Jose, CA)
Assignee: Netlix, Inc.
G06T3/4007G06T7/248G06T11/60G06T2207/10016
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 12,094,078
App. No.
17/665,357
Granted
Sep 17, 2024
Kind
B2
Abstract

The disclosed computer-implemented method may include (1) accessing a video portraying an object within a set of frames, (2) defining a subset of key frames within the video based on movement of the object across the set of frames, (3) generating, for each key frame within the subset of key frames, a spline outlining the object within the key frame, (4) receiving input to adjust, for a selected key frame within the subset of key frames, a corresponding spline, and (5) interpolating the adjusted spline with a spline in a sequentially proximate key frame to define the object in frames between the selected key frame and the sequentially proximate key frame. Various other methods, systems, and computer-readable media are also disclosed.

Claims (66)

1. A computer-implemented method comprising:

accessing a video portraying an object within a set of frames;

defining a subset of key frames within the video based on movement of the object across the set of frames by:

calculating a movement metric describing movement of the object between a sequential pair of frames included in the set of frames;

determining that the movement metric exceeds a predetermined threshold; and

in response to determining that the movement metric exceeds the predetermined threshold, adding one of the sequential pair of frames to the subset of key frames;

generating, for each key frame within the subset of key frames, a spline outlining the object within the key frame;

receiving input to adjust, for a selected key frame within the subset of key frames, a corresponding spline; and

interpolating the adjusted spline with a spline in a sequentially proximate key frame to define the object in frames between the selected key frame and the sequentially proximate key frame.

2. The computer-implemented method of claim 1 , wherein calculating the movement metric comprises:

matching a set of local features between the object in a first image of the sequential pair of frames and in the object in a second image of the sequential pair of frames; and

for each local feature within the set of local features, calculating a difference of position between the local feature in the first image and the local feature in the second image.

3. The computer-implemented method of claim 2 , further comprising:

decomposing the object into a set of parts;

defining a part-based subset of key frames within the video based on movement of a part from the set of parts across the set of frames;

generating, for each part-based key frame within the subset of part-based key frames, a spline of the part within the part-based key frame;

receiving input to adjust, for a selected part-based key frame within the subset of part-based key frames, a corresponding part-based spline; and

interpolating the adjusted part-based spline with a part-based spline in a sequentially proximate part-based key frame to define the part in frames between the selected part-based key frame and the sequentially proximate part-based key frame.

4. The computer-implemented method of claim 3 , wherein decomposing the object into the set of parts comprises clustering local features from within the set of local features based on movement of the local features.

5. The computer-implemented method of claim 3 , further comprising recomposing the object from the set of parts based at least in part on the adjusted part-based spline of the part.

6. The computer-implemented method of claim 1 , wherein generating, for each key frame within the subset of key frames, the spline outlining the object within the key frame comprises:

identifying, for each key frame within the subset of key frames, a pixel mask of the object; and

generating the spline to outline the pixel mask.

7. The computer-implemented method of claim 6 , wherein identifying, for each key frame within the subset of key frames, the pixel mask of the object comprises:

identifying the object in an initial frame of the set of frames; and

tracking the object from the initial frame through the set of frames.

8. The computer-implemented method of claim 7 , wherein identifying the object in the initial frame comprises receiving user input indicating one or more points within the initial frame included within the object.

9. The computer-implemented method of claim 1 , further comprising modifying the object within the video based at least in part on the adjusted spline of the object.

10. A system comprising:

at least one physical processor; and

physical memory comprising computer-executable instructions that, when executed by the physical processor, cause the physical processor to:

access a video portraying an object within a set of frames;

define a subset of key frames within the video based on movement of the object across the set of frames by:

calculating a movement metric describing movement of the object between a sequential pair of frames included in the set of frames;

determining that the movement metric exceeds a predetermined threshold; and

in response to determining that the movement metric exceeds the predetermined threshold, adding one of the sequential pair of frames to the subset of key frames;

generate, for each key frame within the subset of key frames, a spline outlining the object within the key frame;

receive input to adjust, for a selected key frame within the subset of key frames, a corresponding spline; and

interpolate the adjusted spline with a spline in a sequentially proximate key frame to define the object in frames between the selected key frame and the sequentially proximate key frame.

11. The system of claim 10 , wherein calculating the movement metric comprises:

matching a set of local features between the object in a first image of the sequential pair of frames and in the object in a second image of the sequential pair of frames; and

for each local feature within the set of local features, calculating a difference of position between the local feature in the first image and the local feature in the second image.

12. The system of claim 11 , the computer-executable instructions further causing the physical processor to:

decompose the object into a set of parts;

define a part-based subset of key frames within the video based on movement of a part from the set of parts across the set of frames;

generate, for each part-based key frame within the subset of part-based key frames, a spline of the part within the part-based key frame;

receive input to adjust, for a selected part-based key frame within the subset of part-based key frames, a corresponding part-based spline; and

interpolate the adjusted part-based spline with a part-based spline in a sequentially proximate part-based key frame to define the part in frames between the selected part-based key frame and the sequentially proximate part-based key frame.

13. The system of claim 12 , wherein decomposing the object into the set of parts comprises clustering local features from within the set of local features based on movement of the local features.

14. The system of claim 12 , the computer-executable instructions further causing the physical processor to recompose the object from the set of parts based at least in part on the adjusted part-based spline of the part.

15. The system of claim 10 , wherein generating, for each key frame within the subset of key frames, the spline outlining the object within the key frame comprises:

identifying, for each key frame within the subset of key frames, a pixel mask of the object; and

generating the spline to outline the pixel mask.

16. The system of claim 15 , wherein identifying, for each key frame within the subset of key frames, the pixel mask of the object comprises:

identifying the object in an initial frame of the set of frames; and

tracking the object from the initial frame through the set of frames.

17. The system of claim 16 , wherein identifying the object in the initial frame comprises receiving user input indicating one or more points within the initial frame included within the object.

18. A non-transitory computer-readable medium comprising one or more computer-executable instructions that, when executed by at least one processor of a computing device, cause the computing device to:

access a video portraying an object within a set of frames;

define a subset of key frames within the video based on movement of the object across the set of frames by:

calculating a movement metric describing movement of the object between a sequential pair of frames included in the set of frames;

determining that the movement metric exceeds a predetermined threshold; and

in response to determining that the movement metric exceeds the predetermined threshold, adding one of the sequential pair of frames to the subset of key frames;

generate, for each key frame within the subset of key frames, a spline outlining the object within the key frame;

receive input to adjust, for a selected key frame within the subset of key frames, a corresponding spline; and

interpolate the adjusted spline with a spline in a sequentially proximate key frame to define the object in frames between the selected key frame and the sequentially proximate key frame.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2022
From: KANSARA, APURVAKUMAR DILIPKUMAR
To: NETFLIX, INC.
Reel/Frame 058898/0426 →
Continuity (2)
Provisional Application 63239336 · Aug 31, 2021
Related Publication 20230064431A1 · Mar 2, 2023