IP Library Granted Patent US 11,030,753
Granted Patent B2
US 11,030,753 · App. 16/698,463 · Granted Jun 8, 2021

Image segmentation and modification of a video stream

Inventors: Igor Kudriashov (Saratov, RU); Fedir Poliakov (Marina Del Rey, CA); Maksim Gusarov (Marina del Rey, 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 11,030,753
App. No.
16/698,463
Filed
Nov 27, 2019
Granted
Jun 8, 2021
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 (77)

1. A method comprising:

determining, using one or more processors of a client device, an approximate location of an object of interest within a video stream comprising a first set of images and a second set of images;

identifying, by the one or more processors, 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 object of interest;

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 one or more processors, a first set of pixels and a second set of pixels within the binarized area of interest; and

modifying, by the one or more processors, 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 the object of interest 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 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, using one or more processors of a client device, an approximate location of an object of interest within a video stream comprising a first set of images and a second set of images;

identifying, by the one or more processors, 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 object of interest;

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 one or more processors, a first set of pixels and a second set of pixels within the binarized area of interest; and

modifying, by the one or more processors, 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 the object of interest 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, using one or more processors of a client device, an approximate location of an object of interest within a video stream comprising a first set of images and a second set of images;

identifying, by the one or more processors, 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 object of interest;

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 one or more processors, a first set of pixels and a second set of pixels within the binarized area of interest; and

modifying, by the one or more processors, 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 Mar 5, 2021
From: KUDRIASHOV, IGOR; POLIAKOV, FEDIR; GUSAROV, MAKSIM
To: SNAPCHAT, INC.
Reel/Frame 055509/0565 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 5, 2021
From: SNAPCHAT, INC.
To: SNAP INC.
Reel/Frame 055509/0698 →
Continuity (3)
Continuation 16232737 · Dec 26, 2018
Continuation 14953726 · Nov 30, 2015
Related Publication 20200098114A1 · Mar 26, 2020