IP Library Granted Patent US 10,515,454
Granted Patent B2
US 10,515,454 · App. 16/232,737 · Granted Dec 24, 2019

Image segmentation and modification of a video stream

Inventors: Igor Kudriashov (Saratov, RU); Fedir Poliakov (Marina Del Ray, CA); Maksim Gusarov (Marina del Ray, CA)
Assignee: Snap Inc.
G06T7/20G06K9/00248G06K9/00281G06K9/4642G06K9/4652G06T3/40G06T5/008G06T7/11G06T7/136G06T7/73G06T7/90G06T11/001G06K2009/4666G06T2207/10016G06T2207/30201
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 10,515,454
App. No.
16/232,737
Filed
Dec 26, 2018
Granted
Dec 24, 2019
Kind
B2
Art Unit
2662
USPC
382/103
Abstract

Systems, devices, media, and methods are presented for segmenting an image of a video stream with a client device, identifying an area of interest, generating a modified area of interest within one or more image, identifying a first set of pixels and a second set of pixels, and modifying a color value for the first set of pixels.

Claims (80)

1. A computer implemented method for manipulating portions of a video stream, comprising:

determining, by a client device, an approximate location of a mouth within a video stream including a face and comprising a first set of images and a second set of images;

identifying, by the client device, an area of interest comprising a plurality of pixels within the one or more images of the first set of images, the area of interest being a portion of the one or more images encompassing the approximate location of the mouth;

generating, by the client device a binarization matrix by performing operations comprising:

for each pixel of the plurality of pixels within the area of interest:

retrieving a set of color values associated with the pixel;

determining a binary value for the pixel by comparing a first value of a first portion of the set of color values with a second value of a second portion of the set of color values;

storing the binary value for the pixel in the binarization matrix:

modifying each pixel in the plurality of pixels within the area of interest using the binarization matrix to create a binarized area of interest;

identifying, by the client device, a set of teeth visible within the mouth in the binarized area of interest;

identifying, by the client device, a first set of pixels and a second set of pixels within the binarized area of interest and adding at least a portion of the first set of pixels as a set of landmark points within a binary mask of the face, the first set of pixels corresponding to the set of teeth within the mouth; and

when the set of teeth are visible within the second set of images, modifying, by the client device, a color value for the first set of pixels within the second set of images of the video stream.

2. The method of claim 1 , further comprising:

converting the plurality of pixels within the area of interest to values along a grayscale to generate a grayscale area of interest, the plurality of pixels converted to grayscale by, for each pixel, generating a grayscale value by multiplying a fixed intensity value with a quotient of a triplet of color saturation values of the pixel.

3. The method of claim 2 , wherein the pixels within the grayscale area of interest comprise a histogram of values within the grayscale and further comprising:

equalizing the histogram values within the grayscale area of interest to generate an equalized area of interest.

4. The method of claim 3 , further comprising:

thresholding the equalized area of interest to generate the binarized area of interest, the first set of pixels within the binarized area of interest having a first value and the second set of pixels within the binarized area of interest having a second value distinct from the first value.

5. The method of claim 4 , wherein the second set of pixels comprises a plurality of segments interrupted by one or more pixels having the first value and generating the binarized area of interest further comprising:

identifying one or more pixels having the first value positioned between two or more of the plurality of segments having the second value; and

replacing the first value of the identified one or more pixels with the second value.

6. The method of claim 4 , further comprising:

determining the first set of pixels have a value greater than a predetermined threshold; and

marking the first set of pixels within the second set of images of the video stream to generate a set of marked pixels.

7. The method of claim 5 , wherein marking the first set of pixels within the second set of images further comprises:

identifying locations for the first set of pixels with respect to one or more landmarks of a face depicted within the first set of images; and

identifying the color value of the first set of pixels within the first set of images.

8. The method of claim 5 , wherein modifying the color value for the first set of pixels within the second set of images further comprises:

tracking the set of marked pixels across the second set of images of the video stream; and

modifying the color value for the first set of pixels when the color value is presented proximate to the marked pixels.

9. A system for manipulating portions of a video stream, comprising:

one or more processor; and

a non-transitory machine-readable storage medium storing processor executable instructions that, when executed by a processor of a machine, cause the machine to perform operations comprising:

determining, by a client device, an approximate location of a mouth within a video stream including a face and comprising a first set of images and a second set of images;

identifying, by the client device, an area of interest comprising a plurality of pixels within the one or more images of the first set of images, the area of interest being a portion of the one or more images encompassing the approximate location of the mouth;

generating, by the client device a binarization matrix by performing operations comprising:

for each pixel of the plurality of pixels within the area of interest:

retrieving a set of color values associated with the pixel;

determining a binary value for the pixel by comparing a first value of a first portion of the set of color values with a second value of a second portion of the set of color values;

storing the associated binary value for the pixel in the binarization matrix;

modifying each pixel in the plurality of pixels within the area of interest using the binarization matrix to create a binarized area of interest;

identifying, by the client device, a set of teeth visible within the mouth in the binarized area of interest;

identifying, by the client device, a first set of pixels and a second set of pixels within the binarized area of interest and adding at least a portion of the first set of pixels as a set of landmark points within a binary mask of the face, the first set of pixels corresponding to the set of teeth within the mouth; and

when the set of teeth are visible within the second set of images, modifying, by the client device, a color value for the first set of pixels within the second set of images of the video stream.

10. The system of claim 9 , further comprising:

converting the plurality of pixels within the area of interest to values along a grayscale to generate a grayscale area of interest, the plurality of pixels converted to grayscale by, for each pixel, generating a grayscale value by multiplying a fixed intensity value with a quotient of a triplet of color saturation values of the pixel.

11. The system of claim 10 , wherein the pixels within the grayscale area of interest comprise a histogram of values within the grayscale and further comprising:

equalizing the histogram values within the grayscale area of interest to generate an equalized area of interest.

12. The system of claim 11 , further comprising:

thresholding the equalized area of interest to generate the binarized area of interest, the first set of pixels within the binarized area of interest having a first value and the second set of pixels within the binarized area of interest having a second value distinct from the first value.

13. The system of claim 12 , wherein the second set of pixels comprises a plurality of segments interrupted by one or more pixels having the first value and generating the binarized area of interest further comprising:

identifying one or more pixels having the first value positioned between two or more of the plurality of segments having the second value; and

replacing the first value of the identified one or more pixels with the second value.

14. The system of claim 12 , further comprising:

determining the first set of pixels have a value greater than a predetermined threshold; and

marking the first set of pixels within the second set of images of the video stream to generate a set of marked pixels.

15. The system of claim 14 , wherein marking the first set of pixels within the second set of images further comprises:

identifying locations for the first set of pixels with respect to one or more landmarks of a face depicted within the first set of images; and

identifying the color value of the first set of pixels within the first set of images.

16. The system of claim 14 , wherein modifying the color value for the first set of pixels within the second set of images further comprises:

tracking the set of marked pixels across the second set of images of the video stream; and

modifying the color value for the first set of pixels when the color value is presented proximate to the marked pixels.

17. A non-transitory machine-readable storage medium storing processor executable instructions that, when executed by a processor of a machine, cause the machine to perform operations comprising:

determining, by a client device, an approximate location of a mouth within a video stream including a face and comprising a first set of images and a second set of images;

identifying, by the client device, an area of interest comprising a plurality of pixels within the one or more images of the first set of images, the area of interest being a portion of the one or more images encompassing the approximate location of the mouth;

generating, by the client device a binarization matrix by performing operations comprising:

for each pixel of the plurality of pixels within the area of interest:

retrieving a set of color values associated with the pixel;

determining a binary value for the pixel by comparing a first value of a first portion of the set of color values with a second value of a second portion of the set of color values;

storing the associated binary value for the pixel in the binarization matrix;

modifying each pixel in the plurality of pixels within the area of interest using the binarization matrix to create a binarized area of interest;

identifying, by the client device, a set of teeth visible within the mouth in the binarized area of interest;

identifying, by the client device, a first set of pixels and a second set of pixels within the binarized area of interest and adding at least a portion of the first set of pixels as a set of landmark points within a binary mask of the face, the first set of pixels corresponding to the set of teeth within the mouth; and

when the set of teeth are visible within the second set of images, modifying, by the client device, a color value for the first set of pixels within the second set of images of the video stream.

18. The non-transitory machine-readable storage medium of claim 17 , further comprising:

converting the plurality of pixels within the area of interest to values along a grayscale to generate a grayscale area of interest, the plurality of pixels converted to grayscale by, for each pixel, generating a grayscale value by multiplying a fixed intensity value with a quotient of a triplet of color saturation values of the pixel.

19. The non-transitory machine-readable storage medium of claim 18 , wherein the pixels within the grayscale area of interest comprise a histogram of values within the grayscale and further comprising:

equalizing the histogram values within the grayscale area of interest to generate an equalized area of interest.

20. The non-transitory machine readable storage medium of claim 19 , further comprising:

thresholding the equalized area of interest to generate the binarized area of interest, the first set of pixels within the binarized area of interest having a first value and the second set of pixels within the binarized area of interest having a second value distinct from the first value.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 20, 2019
From: KUDRIASHOV, IGOR; POLIAKOV, FEDIR; GUSAROV, MAKSIM
To: SNAPCHAT, INC.
Reel/Frame 051063/0765 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 20, 2019
From: SNAPCHAT, INC.
To: SNAP INC.
Reel/Frame 051063/0880 →
Continuity (2)
Continuation 14953726 · Nov 30, 2015
Related Publication 20190206061A1 · Jul 4, 2019