IP Library Granted Patent US 11,450,349
Granted Patent B2
US 11,450,349 · App. 16/749,708 · Granted Sep 20, 2022

Real time video processing for changing proportions of an object in the video

Inventor: Elena Shaburova (Castro Valley, CA)
Assignee: Snap Inc.
G11B27/031G06F3/011G06N20/00G06T5/005G06T7/246G06T7/251G06T7/33G06T7/90G06T11/001G06T11/60G06T13/40G06T17/20G06T19/20G06V10/40G06V10/42G06V10/56G06V10/60G06V20/40G06V20/46G06V40/167G06V40/168G06V40/171G06V40/174G06V40/20H04N5/262H04N9/79G06T2207/10016G06T2207/10021G06T2207/10024G06T2207/20036G06T2207/30201G06V10/467
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 11,450,349
App. No.
16/749,708
Granted
Sep 20, 2022
Kind
B2
Abstract

Method involving: providing an object in the video that at least partially and at least occasionally is presented in frames of a video; detecting the object in the video, wherein said detection comprises detecting feature reference points of the object; tracking the detected object in the video, wherein the tracking comprises creating a mesh that is based on the detected feature reference points of the object and aligning the mesh to the object in each frame; generating a first set of node points on the created mesh based on a request for changing proportions; generating a second set of node points based on the first set of node points; and transforming the frames of the video in such way that the object's proportions are transformed in accordance with the second set of the node points using the mesh.

Claims (88)

1. A computer implemented method comprising:

receiving a video depicting an object comprising a face;

receiving a user request for changing a proportion of the object, the request comprising a request to change fatness of the face; and

after receiving the user request for changing the proportion of the object:

initializing a tracking process to detect the object in the video;

deforming a first portion of the detected object depicted in the video by a first deformation amount, in accordance with the user request for changing the proportion, while deforming a second portion of the object depicted in the video by a second deformation amount, the deforming comprising:

causing the first portion of the object to be deformed without stretching a mouth portion of the face in response to increasing the fatness of the face based on the request; and

causing the first portion of the object to be deformed together with compressing the mouth portion of the face in response to decreasing the fatness of the face based on the request;

providing the video comprising the deformed first portion of the object and the deformed second portion of the object; and

from time to time, re-initializing the tracking process to re-detect the object in the video to continue deforming the first and second portions of the object.

2. The computer implemented method of claim 1 , wherein the object comprises a face that at least partially and at least occasionally is presented in frames of the video, further comprising:

detecting feature reference points of the face;

tracking the detected face in the video, wherein the tracking comprises creating a first mesh based on the detected feature reference points of the face and aligning the first mesh to the face in each frame;

while tracking the detected face with the first mesh, transforming a set of pixels within the frames of the video representing a portion of the feature reference points to generate transformed frames of the video; and

maintaining the first mesh while the face is present in the frames of e video.

3. The computer implemented method of claim 2 , wherein the feature reference points are at least one of points indicating eyebrows vertical position, eyes vertical position, eyes width, eyes height, eye separation distance, nose vertical position, nose pointing up, mouth vertical position, mouth width, chin width, upper lip raiser, jaw drop, lip stretcher, left brow lowerer, right brow lowerer, lip corner depressor, or outer brow raiser.

4. The computer implemented method of claim 1 , further comprising:

associating a square grid with a background of the object in the video; and

transforming the background of the object using the square grid to avoid background distortion.

5. The computer implemented method of claim 1 , further comprising:

indicating a presence of the object from a list of objects in frames of the video, wherein the list further comprises rules for changing proportions of each object from the list; and

generating a request for changing proportions of the object which presence in frames of the video is indicated.

6. The computer implemented method of claim 1 , further comprising:

defining the object to be changed in frames of the video and rules for changing proportions of the object by a user.

7. The computer implemented method of claim 1 , further comprising:

defining by a user a frame area of the video to be processed, wherein the frame area to be processed sets a frame area of the video where only proportions of those objects or their parts which are positioned in the frame area to be processed are changed.

8. The computer implemented method of claim 1 , further comprising:

randomly selecting the object to be changed in frames of the video out of objects in the frames of the video and randomly selecting at least one rule for changing proportions of the selected object out of a list of rules; and

generating the request for changing proportions of the randomly selected object based on the randomly selected rules.

9. The computer implemented method of claim 1 , further comprising:

applying a transformation function only in vertices of a square grid associated with frames of the video; and

after the transformation function is applied only in the vertices, computing values in a collection of pixels approximately using linear interpolation in a first direction based on values of the vertices; and

after computing the values in the collection of pixels in the first direction, computing values of the collection of pixels approximately using linear interpolation in a second direction based on the values of the vertices.

10. The computer implemented method of claim 1 , wherein the tracking process comprises an Active Shape Model (ASM).

11. The method of claim 1 , further comprising:

generating a transformation between a pixel of a frame of the video and a corresponding modified pixel in a second frame of the video, the modified pixel being generated based on the user request for changing the proportion of the object;

identifying a set of nearby pixels to the pixel of the frame based on the transformation;

computing two sums for the set of nearby pixels, a first sum of the two sums being computed by scaling values of the set of nearby pixels by the pixel of the frame, a second sum of the two sums being computed based on the values of the set of nearby pixels; and

generating the corresponding modified pixel based on a ratio of the first sum and the second sum.

12. The method of claim 1 , further comprising:

obtaining grayscale values of each pixel of the object in the video;

applying a logarithm to the grayscale values of each pixel of the object in the video before tracking the object; and

tracking the object in the video based on the logarithm of the grayscale values.

13. A system comprising:

a central processing unit and a memory, the memory storing instructions for performing operations comprising:

receiving a video depicting an object comprising a face;

receiving a user request for changing a proportion of the object, the request comprising a request to change fatness of the face; and

after receiving the user request for changing the proportion of the object:

initializing a tracking process to detect the object in the video;

deforming a first portion of the detected object depicted in the video by a first deformation amount, in accordance with the user request for changing the proportion, while deforming a second portion of the object depicted in the video by a second deformation amount, the deforming comprising:

causing the first portion of the object to be deformed without stretching a mouth portion of the face in response to increasing the fatness of the face based on the request; and

causing the first portion of the object to be deformed together with compressing the mouth portion of the face in response to decreasing the fatness of the face based on the request;

providing the video comprising the deformed first portion of the object and the deformed second portion of the object; and

from time to time, re-initializing the tracking process to re-detect the object in the video to continue deforming the first and second portions of the object.

14. The system of claim 13 , wherein the object comprises a face that at least partially and at least occasionally is presented in frames of the video, further comprising operations for:

detecting feature reference points of the face;

tracking the detected face in the video, wherein the tracking comprises creating a first mesh based on the detected feature reference points of the face and aligning the first mesh to the face in each frame;

while tracking the detected face with the first mesh, transforming a set of pixels within the frames of the video representing a portion of the feature reference points to generate transformed frames of the video; and

maintaining the first mesh while the face is present in the frames of the video.

15. The system of claim 14 , wherein the feature reference points are at least one of points indicating eyebrows vertical position, eyes vertical position, eyes width, eyes height, eye separation distance, nose vertical position, nose pointing up, mouth vertical position, mouth width, chin width, upper lip raiser, jaw drop, lip stretcher, left brow lowerer, right brow lowerer, lip corner depressor, or outer brow raiser.

16. The system of claim 13 , further comprising operations for:

associating a square grid with a background of the object in the video; and

transforming the background of the object using the square grid to avoid background distortion.

17. The system of claim 13 , wherein the operations further comprise:

generating a transformation between a pixel of a frame of the video and a corresponding modified pixel in a second frame of the video, the modified pixel being generated based on the user request for changing the proportion of the object;

identifying a set of nearby pixels to the pixel of the frame based on the transformation;

computing two sums for the set of nearby pixels, a first sum of the two sums being computed by scaling values of the set of nearby pixels, a second sum of the two sums being computed based on the values of the set of nearby pixels; and

generating the corresponding modified pixel based on a ratio of the first sum and the second sum.

18. A non-transitory computer readable medium comprising non-transitory computer readable instructions that, when executed by one or more processors, configure the one or more processors to perform operations comprising:

receiving a video depicting an object comprising a face;

receiving a user request for changing a proportion of the object, the request comprising a request to change fatness of the face; and

after receiving the user request for changing the proportion of the object:

initializing a tracking process to detect the object in the video;

deforming a first portion of the detected object depicted in the video by a first deformation amount, in accordance with the user request for changing the proportion, while deforming a second portion of the object depicted in the video by a second deformation amount, the deforming comprising:

causing the first portion of the object to be deformed without stretching a mouth portion of the face in response to increasing the fatness of the face based on the request; and

causing the first portion of the object to be deformed together with compressing the mouth portion of the face in response to decreasing the fatness of the face based on the request;

providing the video comprising the deformed first portion of the object and the deformed second portion of the object; and

after a threshold time period from time to time, re-initializing the tracking process to re-detect the object in the video to continue deforming the first and second portions of the object.

19. The non-transitory computer readable medium of claim 18 , wherein the operations further comprise:

generating a transformation between a pixel of a frame of the video and a corresponding modified pixel in a second frame of the video, the modified pixel being generated based on the user request for changing the proportion of the object;

identifying a set of nearby pixels to the pixel of the frame based on the transformation;

computing two sums for the set of nearby pixels, a first sum of the two sums being computed by scaling values of the set of nearby pixels, a second sum of the two sums being computed based on the values of the set of nearby pixels; and

generating the corresponding modified pixel based on a ratio of the first sum and the second sum.

20. The non-transitory computer readable medium of claim 18 , wherein the object comprises a face that at least partially and at least occasionally is presented in frames of the video, further comprising operations for:

detecting feature reference points of the face;

tracking the detected face in the video, wherein the tracking comprises creating a first mesh based on the detected feature reference points of the face and aligning the first mesh to the face in each frame;

while tracking the detected face with the first mesh, transforming a set of pixels within the frames of the video representing a portion of the feature reference points to generate transformed frames of the video; and

maintaining the first mesh while the face is present in the frames of the video.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 14, 2020
From: SHABUROVA, ELENA
To: LOOKSERY INC.
Reel/Frame 052392/0558 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 14, 2020
From: LOOKSERY INC.
To: AVATAR ACQUISITION CORP.
Reel/Frame 052392/0727 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 14, 2020
From: AVATAR ACQUISITION CORP.
To: AVATAR MERGER SUB II, LLC
Reel/Frame 052392/0861 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 14, 2020
From: AVATAR MERGER SUB II, LLC
To: SNAP INC.
Reel/Frame 052392/0976 →
Continuity (3)
Continuation 14314312 · Jun 25, 2014
Provisional Application 61936016 · Feb 5, 2014
Related Publication 20200160886A1 · May 21, 2020