IP Library › Granted Patent US 8,050,498
Granted Patent B2
US 8,050,498 · App. 11/517,189 · Granted Nov 1, 2011

Live coherent image selection to differentiate foreground and background pixels

Assignee: Adobe Systems Incorporated
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 8,050,498
App. No.
11/517,189
Granted
Nov 1, 2011
Kind
B2
Abstract

Methods, systems, and apparatus, including computer program products, featuring receiving user input defining a sample of pixels from an image, the image being defined by a raster of pixels. While receiving the user input, the following actions are performed one or more times: pixels are coherently classified in the raster of pixels as being foreground or background based on the sample of pixels; and a rendering of the image is updated on a display to depict classified foreground pixels and background pixels as the sample is being defined.

Claims (122)

1. A computer-implemented method, comprising:

receiving user input as an unbroken stroke drawn on an image, the unbroken stroke defining a sample of pixels from an image, the image being defined by a raster of pixels, wherein the unbroken stroke defining the sample of pixels from the image includes a first event defining a beginning of the definition of the sample of pixels and a second event defining an end of the definition of the sample of pixels;

defining a plurality of piecewise constant regional cost values independent of the sample of pixels, wherein the piecewise constant regional cost values include:

a foreground cost value associated with a foreground classification;

a background cost value associated with a background classification; and

a bias cost value associated with a bias toward the background classification or the foreground classification; and

while receiving the user input as an unbroken stroke, performing the following actions one or more times after receiving the first event but before receiving the second event:

classifying pixels in the raster of pixels into one or more coherent regions, with each region classified as being foreground or background based on the sample of pixels and using the plurality of piecewise constant regional cost values, wherein each coherent region includes at least some pixels in the raster of pixels not included in the sample of pixels; and

updating a rendering of the image on a display to depict classified foreground pixels and background pixels as the sample is being defined.

2. The method of claim 1 , where classifying includes:

classifying pixels of a lower resolution version of the image to generate a classification of the lower resolution version of the image.

3. The method of claim 2 , where classifying includes:

determining a coherent border area of the image based on the classification of the lower resolution version of the image; and

classifying the coherent border area of the image at a full resolution.

4. The method of claim 1 , where:

classifying includes minimizing an objective cost function that includes regional costs and boundary costs.

5. The method of claim 4 , where minimizing the objective cost function includes:

incrementally solving one or more graph cut problems.

6. The method of claim 1 , further comprising:

updating a previous classification of pixels based on the coherent classification of pixels.

7. The method of claim 1 , where classifying includes:

segmenting the image into a plurality of segments, each segment in the plurality of segments containing a contiguous plurality of pixels; and

classifying segments in the plurality of segments as being foreground or background based on the sample of pixels.

8. The method of claim 7 , where segmenting the image into a plurality of segments includes:

using a watershed or seed fill segmentation to segment the image.

9. The method of claim 1 , where:

the sample of pixels represents only foreground pixels or only background pixels.

10. The method of claim 1 , where:

the coherent classification is based on the sample of pixels currently being received and any other samples of pixels previously received.

11. The method of claim 1 , where:

coherently classified foreground pixels represent one or more regions of the image that respect object boundaries in the image and do not have areas of misclassification.

12. The method of claim 1 , where the rendering of the image on a display to depict classified foreground pixels and background pixels includes one or more of:

highlighting either the foreground or background pixels;

obfuscating either the foreground or background pixels;

applying a filter to either the foreground or background pixels;

rendering an image mask, the image mask depicting foreground or background pixels; or

rendering a border of areas of either the foreground or background pixels.

13. The method of claim 1 , where:

the image is in one of the following color spaces: RGB, CMYK, CIELAB, CIE XYZ, CIE LUV, YCC, YIQ, HSB, HSL or Grayscale.

14. A computer-implemented method, comprising:

receiving an identification of a sample of pixels from an image having a plurality of pixels, wherein the identification of the sample of pixels is received as an unbroken stroke drawn on an image;

defining a plurality of piecewise constant regional cost values independent of the sample of pixels, wherein the piecewise constant regional cost values include:

a foreground cost value associated with a foreground classification;

a background cost value associated with a background classification; and

a bias cost value associated with a bias toward the background classification or the foreground classification; and

classifying pixels in the plurality of pixels into one or more coherent regions, with each region classified as being foreground or background based on the sample of pixels and using the plurality of piecewise constant regional cost values, including incrementally solving one or more graph cut problems and classifying a coherent border area of the image at a full image resolution, the border area being determined from a classification of a lower resolution version of the image, wherein each coherent region includes at least some pixels in the raster of pixels not included in the sample of pixels;

wherein the pixels in the plurality of pixels are classified while receiving the identification of the sample of pixels, receiving the identification of the sample of pixels including receiving a first event corresponding to a beginning of the unbroken stroke and receiving a second event corresponding to an end of the unbroken stroke, and classifying the pixels is performed after receiving the first event but before receiving the second event.

15. The method of claim 14 , where:

the sample of pixels represents only foreground pixels or only background pixels.

16. The method of claim 14 , where classifying includes:

minimizing an objective cost function that includes regional costs and boundary costs.

17. The method of claim 14 , further comprising:

updating a rendering of the image on a display to depict the foreground pixels and the background pixels during the receiving.

18. A computer-implemented method, comprising:

receiving an identification of a sample of pixels from an image having a plurality of pixels, wherein the identification of the sample of pixels is received as an unbroken stroke drawn on an image;

defining a plurality of piecewise constant regional cost values independent of the sample of pixels, wherein the piecewise constant regional cost values include:

a foreground cost value associated with a foreground classification;

a background cost value associated with a background classification; and

a bias cost value associated with a bias toward the background classification or the foreground classification; and

classifying pixels in the plurality of pixels into one or more coherent regions, with each region classified as being foreground or background based on the sample of pixels and using the piecewise constant regional cost values and each coherent region includes at least some pixels in the raster of pixels not included in the sample of pixels;

wherein the pixels in the plurality of pixels are classified while receiving the identification of the sample of pixels, receiving the identification of the sample of pixels includes receiving a first event corresponding to a beginning of the unbroken stroke and a second event corresponding to an end of the unbroken stroke, and classifying the pixels is performed after receiving the first event but before receiving the second event.

19. The method of claim 18 , the classifying includes:

incrementally solving one or more graph cut problems.

20. The method of claim 18 , the classifying includes:

classifying a coherent border area of the image at a full image resolution, the border area being determined from the classification of a lower resolution version of the image.

21. The method of claim 18 , where:

the sample of pixels represents only foreground pixels or only background pixels.

22. The method of claim 18 , where classifying includes:

minimizing an objective cost function that includes regional costs and boundary costs.

23. The method of claim 18 , further comprising:

updating a rendering of the image on a display to depict foreground pixels and background pixels as the identification of the sample of pixels is being received.

24. A computer program product, encoded on a computer-readable medium, operable to cause data processing apparatus to perform operations comprising:

receiving user input as an unbroken stroke drawn on an image, the unbroken stroke defining a sample of pixels from an image, the image being defined by a raster of pixels, wherein the user input defining the sample of pixels from the image includes a first event corresponding to a beginning of the unbroken stroke and defining a beginning of the definition of the sample of pixels and a second event corresponding to an end of the unbroken stroke and defining an end of the definition of the sample of pixels;

defining a plurality of piecewise constant regional cost values independent of the sample of pixels, wherein the piecewise constant regional cost values include:

a foreground cost value associated with a foreground classification;

a background cost value associated with a background classification; and

a bias cost value associated with a bias toward the background classification or the foreground classification; and

while receiving the user input as an unbroken stroke, performing the following actions one or more times after receiving the first event but before receiving the second event:

classifying pixels in the raster of pixels into one or more coherent regions, with each region classified as being foreground or background based on the sample of pixels and using the plurality of piecewise constant regional cost values, wherein each coherent region includes at least some pixels in the raster of pixels not included in the sample of pixels; and

updating a rendering of the image on a display to depict classified foreground pixels and background pixels as the sample is being defined.

25. A computer program product, encoded on a computer-readable medium, operable to cause data processing apparatus to perform operations comprising:

receiving an identification of a sample of pixels from an image having a plurality of pixels, wherein the identification of the sample of pixels is received as an unbroken stroke drawn on an image;

defining a plurality of piecewise constant regional cost values independent of the sample of pixels, wherein the piecewise constant regional cost values include:

a foreground cost value associated with a foreground classification;

a background cost value associated with a background classification; and

a bias cost value associated with a bias toward the background classification or the foreground classification; and

classifying pixels in the plurality of pixels into one or more coherent regions, with each region classified as being foreground or background based on the sample of pixels and using the plurality of piecewise constant regional cost values, including incrementally solving one or more graph cut problems and classifying a coherent border area of the image at a full image resolution, the border area being determined from a classification of a lower resolution version of the image, wherein each coherent region includes at least some pixels in the raster of pixels not included in the sample of pixels;

wherein the pixels in the plurality of pixels are coherently classified while receiving the identification of the sample of pixels, receiving the identification of the sample of pixels includes receiving a first event corresponding to a beginning of the unbroken stroke and receiving a second event corresponding to an end of the unbroken stroke, and classifying the pixels is performed after receiving the first event but before receiving the second event.

26. A computer program product, encoded on a computer-readable medium, operable to cause data processing apparatus to perform operations comprising:

receiving an identification of a sample of pixels from an image having a plurality of pixels, wherein the identification of the sample of pixels is received as an unbroken stroke drawn on an image;

defining a plurality of piecewise constant regional cost values independent of the sample of pixels, wherein the piecewise constant regional cost values include:

a foreground cost value associated with a foreground classification;

a background cost value associated with a background classification; and

a bias cost value associated with a bias toward the background classification or the foreground classification; and

classifying pixels in the plurality of pixels into one or more coherent regions, with each region classified as being foreground or background based on the sample of pixels and using the piecewise constant regional cost values and each coherent region includes at least some pixels in the raster of pixels not included in the sample of pixels;

wherein the pixels in the plurality of pixels are coherently classified while receiving the identification of the sample of pixels, receiving the identification of the sample of pixels includes receiving a first event corresponding to a beginning of the unbroken stroke and receiving a second event corresponding to an end of the unbroken stroke, and classifying the pixels is performed after receiving the first event but before receiving the second event.

27. A system comprising:

means for receiving user input as an unbroken stroke drawn on an image, the unbroken stroke defining a sample of pixels from an image, the image being defined by a raster of pixels;

a cost module that defines a plurality of piecewise constant regional cost values independent of the sample of pixels, wherein the piecewise constant regional cost values include:

a foreground cost value associated with a foreground classification;

a background cost value associated with a background classification; and

a bias cost value associated with a bias toward the background classification or the foreground classification; and

while receiving the user input as an unbroken stroke, means for performing the following actions one or more times:

classifying pixels in the raster of pixels into one or more coherent regions, with each region classified as being foreground or background based on the sample of pixels and using the plurality of piecewise constant regional cost values, wherein each coherent region includes at least some pixels in the raster of pixels not included in the sample of pixels; and

updating a rendering of the image on a display to depict classified foreground pixels and background pixels as the sample is being defined;

wherein the means for receiving the user input includes means for receiving a first event corresponding to a beginning of the unbroken stroke and receiving a second event corresponding to an end of the unbroken stroke, and the actions are performed after receiving the first event but before receiving the second event.

28. A system comprising:

means for receiving an identification of a sample of pixels from an image having a plurality of pixels, wherein the identification of the sample of pixels is received as an unbroken stroke drawn on an image;

a cost module that defines a plurality of piecewise constant regional cost values independent of the sample of pixels, wherein the piecewise constant regional cost values include:

a foreground cost value associated with a foreground classification;

a background cost value associated with a background classification; and

a bias cost value associated with a bias toward the background classification or the foreground classification; and

means for classifying pixels in the plurality of pixels into one or more coherent regions, with each region classified as being foreground or background based on the sample of pixels and using the piecewise constant regional cost values, including incrementally solving one or more graph cut problems and classifying a coherent border area of the image at a full image resolution, the border area being determined from a classification of a lower resolution version of the image, wherein each coherent region includes at least some pixels in the raster of pixels not included in the sample of pixels;

wherein the pixels in the plurality of pixels are classified while receiving the identification of the sample of pixels, the means for receiving the identification of the sample of pixels includes means for receiving a first event corresponding to a beginning of the unbroken stroke and receiving a second event corresponding to an end of the unbroken stroke, and classifying the pixels is performed after receiving the first event but before receiving the second event.

29. A system comprising:

means for receiving an identification of a sample of pixels from an image having a plurality of pixels, wherein the identification of the sample of pixels is received as an unbroken stroke drawn on an image;

a cost module that defines a plurality of piecewise constant regional cost values independent of the sample of pixels, wherein the piecewise constant regional cost values include:

a foreground cost value associated with a foreground classification;

a background cost value associated with a background classification; and

a bias cost value associated with a bias toward the background classification or the foreground classification; and

means for classifying pixels in the plurality of pixels into one or more coherent regions, with each region classified as being foreground or background based on the sample of pixels and using the piecewise constant regional cost values and each coherent region includes at least some pixels in the raster of pixels not included in the sample of pixels;

wherein the pixels in the plurality of pixels are classified while receiving the identification of the sample of pixels, the means for receiving the identification of the sample of pixels includes means for receiving a first event corresponding to a beginning of the unbroken stroke and receiving a second event corresponding to an end of the unbroken stroke, and classifying the pixels is performed after receiving the first event but before receiving the second event.

Assignments (3)
CHANGE OF NAME Recorded Apr 8, 2019
From: ADOBE SYSTEMS INCORPORATED
To: ADOBE INC.
Reel/Frame 048867/0882 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 6, 2007
From: WILENSKY, GREGG D.; COHEN, SCOTT D.; CHIEN, JEN-CHAN
To: ADOBE SYSTEMS INCORPORATED
Reel/Frame 019654/0147 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 28, 2006
From: WILENSKY, GREGG D.; COHEN, SCOTT D.; CHIEN, JEN-CHAN
To: ADOBE SYSTEMS INCORPORATED
Reel/Frame 018690/0378 →
Continuity (2)
Provisional Application 60820087 · Jul 21, 2006
Related Publication 20080019587A1 · Jan 24, 2008