Search Images Maps Play YouTube News Gmail Drive More »
Sign in
Screen reader users: click this link for accessible mode. Accessible mode has the same essential features but works better with your reader.

Patents

  1. Advanced Patent Search
Publication numberUSRE42256 E1
Publication typeGrant
Application numberUS 12/351,762
Publication dateMar 29, 2011
Priority dateOct 15, 1997
Fee statusLapsed
Also published asUS6411744, US7162082, US20020172433, WO1999019828A1
Publication number12351762, 351762, US RE42256 E1, US RE42256E1, US-E1-RE42256, USRE42256 E1, USRE42256E1
InventorsJeffrey L. Edwards
Original AssigneeElet Systems L.L.C.
Export CitationBiBTeX, EndNote, RefMan
External Links: USPTO, USPTO Assignment, Espacenet
Method and apparatus for performing a clean background subtraction
US RE42256 E1
Abstract
A background subtraction apparatus of the present invention includes a key point locator for locating key points on a known object type, a boundary point locator for locating boundary points of the known object that make up the edges of the known object, and an edge processor for processing the edges to provide a clean-edged extraction of the known object from a background image. Preferably, the key point locator includes an alignment detector for detecting alignment of an image of the known object type with a skeleton image. Still more preferably, the skeleton image is an exoskeleton image and the known object type is a human being.
Images(7)
Previous page
Next page
Claims(60)
1. A method for subtracting a background comprising:
locating key points on an image of a known object type;
determining line segments between the key points;
locating boundary points of the image that comprise edges of the known object by using the line segments;
eliminating pixel gaps between the boundary points;
connecting the boundary points to obtain a closed loop of pixels; processing the edges to provide a clean-edged extraction of the image from a background image, including using an alpha image to determine a key point, which is selected based on a similarity score for a region in the alpha image; and
reducing noise from the edges of the known object, after determining the key points, using an edge strength, the alpha image, and the line segments by aligning a snake to the line segments;
wherein at least one key point is located based at least in part on a key point template comprising a plurality of pixels and specially configured for that key point; and
wherein the pixels in the specially configured key point template that make up a shape associated with the key point have a first value and the other pixels in the specially configured key point template have a second value.
2. A method for subtracting a background as recited in claim 1 further including aligning the image with a skeleton image prior to locating the key points.
3. A method for subtracting a background as recited in claim 1 wherein locating boundary points includes scanning the image in directions dependent upon the orientation of the line segments.
4. A method for subtracting a background as recited in claim 1 wherein the key points include primary key points and secondary key points located based on the primary key points.
5. A method for subtracting a background as recited in claim 1 wherein locating the key points includes using a general search area.
6. A method for subtracting a background as recited in claim 1 wherein locating the key points includes using a general search area and a Summed Area Table.
7. A method for subtracting a background as recited in claim 1 wherein locating the key points includes:
locating primary key points;
determining whether the primary key points are in acceptable locations;
repeating locating primary key points if the primary key points are determined not to be in acceptable locations;
locating secondary key points based on the primary points;
determining whether the secondary points are in acceptable locations;
repeating locating secondary key points if the secondary key points are determined not to be in acceptable locations.
8. A method for subtracting a background as recited in claim 1 further including aligning the image of the known object type with a skeleton image prior to locating the key points, wherein the skeleton image is an outline image.
9. A method for subtracting a background as recited in claim 1 further including:
aligning the image of the known object type with a skeleton image prior to locating the key points;
scanning the image in directions dependent upon the orientation of the line segments, beginning at an offset away from the skeleton image.
10. A method for subtracting a background as recited in claim 1 further including:
aligning the image with a skeleton image prior to locating the key points;
scanning the image in directions dependent upon the orientation of the line segments, beginning at an offset away from the skeleton image;
wherein the offset is determined by a bounding box whose corners are set by the key points.
11. A method for subtracting a background as recited in claim 1 further including:
aligning the image with a skeleton image prior to locating the key points;
scanning the image in directions dependent upon the orientation of the line segments, beginning at an offset away from the skeleton image;
wherein the offset is determined by a bounding box whose corners are set by the key points plus a pad of pixels.
12. A method for subtracting a background as recited in claim 1 further including aligning the image with a skeleton image prior to locating the key points, wherein the skeleton image is an outline image and the known object type is a human being.
13. A method for subtracting a background as recited in claim 1 further including aligning the image with a skeleton image prior to locating the key points, wherein:
the skeleton image is an outline image;
the known object type is a human being; and
the key points include primary key points at extremities of the image and secondary key points near a torso of the image.
14. A method for subtracting a background as recited in claim 1 wherein processing the edges includes filtering the edges.
15. A background subtraction apparatus comprising:
an image acquisition device for acquiring an image of a known object type; and
a processor configured to:
locate key points on the image;
determine line segments between the key points;
locate boundary points of the image that comprise edges of the known object by using the line segments;
eliminate pixel gaps between the boundary points;
connect the boundary points to obtain a closed loop of pixels;
process the edges to provide a clean-edged extraction of the image from a background image including using an alpha image to determine a key point, which is selected based on a similarity score for a region in the alpha image; and
reduce noise from the edges of the known object, after determining the key points, using an edge strength, the alpha image, and the line segments by aligning a snake to the line segments;
wherein at least one key point is located based at least in part on a key point template comprising a plurality of pixels and specially configured for that key point; and
wherein the pixels in the specially configured key point template that make up a shape associated with the key point have a first value and the other pixels in the specially configured key point template have a second value.
16. A background subtraction apparatus as recited in claim 15 wherein the processor is further configured to align the image with a skeleton image.
17. A background subtraction apparatus as recited in claim 15 wherein the processor is further configured to scan the image in directions dependent upon the orientation of the line segments.
18. A background subtraction apparatus as recited in claim 15 wherein the key points include primary key points and secondary key points located based on the primary key points.
19. A background subtraction apparatus as recited in claim 15 wherein the processor is further configured to locate the key points using a general search area.
20. A background subtraction apparatus as recited in claim 15 the processor is further configured to locate the key points using a general search area and a Summed Area Table.
21. A background subtraction apparatus as recited in claim 15 wherein the processor is further configured to:
locate primary key points;
repeat locating primary key points if the primary key points are determined not to be in acceptable locations;
locate secondary key points based on the primary key points;
determine whether the secondary key points are in acceptable locations;
repeat locating secondary key points if the secondary key points are determined not to be in acceptable locations.
22. A background subtraction apparatus as recited in claim 15 wherein the processor is further configured to align the image of the known object type with a skeleton image, wherein the skeleton image is an outline image.
23. A background subtraction apparatus as recited in claim 15 wherein the processor is further configured to:
align the image of the known object type with a skeleton image prior to locating the key points;
scan the image in directions dependent upon the orientation of the line segments, beginning at an offset away from the skeleton image.
24. A background subtraction apparatus as recited in claim 15 wherein the processor is further configured to:
align the image with a skeleton image prior to locating the key points;
scan the image in directions dependent upon the orientation of the line segments, beginning at an offset away from the skeleton image;
wherein the offset is determined by a bounding box whose corners are set by the key points.
25. A background subtraction apparatus as recited in claim 15 wherein the processor is further configured to:
align the image with a skeleton image prior to locating the key points;
scan the image in directions dependent upon the orientation of the line segments, beginning at an offset away from the skeleton image;
wherein the offset is determined by a bounding box whose corners are set by the key points plus a pad of pixels.
26. A background subtraction apparatus as recited in claim 15 wherein the processor is further configured to align the image with a skeleton image, wherein the skeleton image is an outline image and the known object type is a human being.
27. A background subtraction apparatus as recited in claim 15 wherein the processor is further configured to align the image with a skeleton image, wherein:
the skeleton image is an outline image;
the known object type is a human being; and
the key points include primary key points at extremities of the image and secondary key points near a torso of the image.
28. A background subtraction apparatus as recited in claim 15 wherein the processor is further configured to filter the edges.
29. A non-transitory computer-readable storage medium having computer implemented process instructions stored thereon that, if executed by a computer, cause the computer to perform a method for subtracting a background, the method comprising:
locating key points on an image of a known object type, including using an alpha image to determine a key point, which is selected based on a similarity score for a region in the alpha image;
determining line segments between the key points;
locating boundary points of the image that comprise edges of the known object by using the line segments;
eliminating pixel gaps between the boundary points;
connecting the boundary points to obtain a closed loop of pixels;
processing the edges to provide a clean-edged extraction of the image from a background image; and
reducing noise from the edges of the known object, after determining the key points, using an edge strength, the alpha image, and the line segments by aligning a snake to the line segments;
wherein at least one key point is located based at least in part on a key point template comprising a plurality of pixels and specially configured for that key point; and
wherein the pixels in the specially configured key point template that make up a shape associated with the key point have a first value and the other pixels in the specially configured key point template have a second value.
30. The non-transitory computer-readable storage medium recited in claim 29 , wherein the instructions include instructions for aligning the image with a skeleton image prior to locating the key points.
31. The non-transitory computer-readable storage medium recited in claim 29 , wherein the instructions for locating boundary points include instructions for scanning the image in directions dependent upon the orientation of the line segments.
32. The non-transitory computer-readable storage medium recited in claim 29 , wherein the key points include primary key points and secondary key points located based on the primary key points.
33. The non-transitory computer-readable storage medium recited in claim 29 , wherein the instructions for locating the key points include instructions for using a general search area.
34. The non-transitory computer-readable storage medium recited in claim 29 , wherein the instructions for locating the key points include instructions for using a general search area and a Summed Area Table.
35. The non-transitory computer-readable storage medium recited in claim 29 , wherein the instructions for locating the key points include instructions for:
locating primary key points;
determining whether the primary key points are in acceptable locations;
repeating locating primary key points if the primary key points are determined not to be in acceptable locations;
locating secondary key points based on the primary points;
determining whether the secondary points are in acceptable locations; and
repeating locating secondary key points if the secondary key points are determined not to be in acceptable locations.
36. The non-transitory computer-readable storage medium recited in claim 29 , wherein the instructions include instructions for aligning the image of the known object type with a skeleton image prior to locating the key points, wherein the skeleton image is an outline image.
37. The non-transitory computer-readable storage medium recited in claim 29 , wherein the instructions include instructions for:
aligning the image of the known object type with a skeleton image prior to locating the key points; and
scanning the image in directions dependent upon the orientation of the line segments, beginning at an offset away from the skeleton image.
38. The non-transitory computer-readable storage medium recited in claim 29 , wherein the instructions include instructions for:
aligning the image with a skeleton image prior to locating the key points; and
scanning the image in directions dependent upon the orientation of the line segments, beginning at an offset away from the skeleton image;
wherein the offset is determined by a bounding box whose corners are set by the key points.
39. The non-transitory computer-readable storage medium recited in claim 29 , wherein the instructions further include instructions for:
aligning the image with a skeleton image prior to locating the key points; and
scanning the image in directions dependent upon the orientation of the line segments, beginning at an offset away from the skeleton image;
wherein the offset is determined by a bounding box whose corners are set by the key points plus a pad of pixels.
40. The non-transitory computer-readable storage medium recited in claim 29 , wherein the instructions further include instructions for aligning the image with a skeleton image prior to locating the key points, wherein the skeleton image is an outline image and the known object type is a human being.
41. The non-transitory computer-readable storage medium recited in claim 29 , wherein the instructions further include instructions for aligning the image with a skeleton image prior to locating the key points, wherein the skeleton image is an outline image; wherein the known object type is a human being; and wherein the key points include primary key points at extremities of the image and secondary key points near a torso of the image.
42. The non-transitory computer-readable storage medium recited in claim 29 , wherein processing the edges includes filtering the edges.
43. A computer-implemented method for subtracting an image of a known object type from a background image, the method comprising:
locating, with a computer, key points on an image of a known object type based on a similarity score for a region in an alpha image of the known object type and a template of a key point;
determining line segments between the key points;
locating boundary points of the image of the known object that comprise edges of the known object by using the line segments;
eliminating pixel gaps between the boundary points;
reducing noise from the edges of the image of the known object, after determining the key points, using an edge strength, the alpha image, and the line segments by aligning a snake to the line segments; and
connecting the boundary points to obtain a closed loop of pixels;
wherein the template comprises a plurality of pixels and is specially configured for that key point; and
wherein the pixels in the template that make up a shape associated with the key point have a first value, and the other pixels in the template have a second value.
44. The method of claim 43, the method further comprising determining if the image of the known object is aligned with a skeleton image prior to locating the key points.
45. The method of claim 43, wherein locating boundary points includes scanning the image in directions dependent upon the orientation of the line segments.
46. The method of claim 43, wherein the key points include primary key points and secondary key points located based on the primary key points.
47. The method of claim 43, wherein locating the key points includes using a general search area.
48. The method of claim 43, wherein locating the key points includes using a general search area and a Summed Area Table.
49. The method of claim 43, wherein locating the key points includes:
locating primary key points;
determining whether the primary key points are in acceptable locations;
repeating locating primary key points if the primary key points are determined not to be in acceptable locations;
locating secondary key points based on the primary points;
determining whether the secondary points are in acceptable locations; and
repeating locating secondary key points if the secondary key points are determined not to be in acceptable locations.
50. The method of claim 43, further comprising determining if the image of the known object type is aligned with a skeleton image prior to locating the key points, wherein the skeleton image is an outline image.
51. The method of claim 43, further comprising:
prompting a user to align the image of the known object type with a skeleton image prior to locating the key points; and
scanning the image in directions dependent upon the orientation of the line segments, beginning at an offset away from the skeleton image.
52. The method of claim 43, further comprising:
prompting a user to align the image of the known object type with a skeleton image prior to locating the key points; and
scanning the image of the known object type in directions dependent upon the orientation of the line segments, beginning at an offset away from the skeleton image; wherein the offset is determined by a bounding box whose corners are set by the key points.
53. The method of claim 43, further comprising:
prompting a user to align the image of the known object type with a skeleton image prior to locating the key points; and
scanning the image of the known object type in directions dependent upon the orientation of the line segments, beginning at an offset away from the skeleton image;
wherein the offset is determined by a bounding box whose corners are set by the key points plus a pad of pixels.
54. The method of claim 43, further comprising prompting a user to align the image of the known object type with a skeleton image prior to locating the key points, wherein the skeleton image is an outline image and the known object type is a human being.
55. The method of claim 43, further comprising prompting a user to align the image of the known object type with a skeleton image prior to locating the key points; wherein the skeleton image is an outline image; wherein the known object type is a human being; and wherein the key points include primary key points at extremities of the image and secondary key points near a torso of the image.
56. The method of claim 43, further comprising filtering the edges.
57. A background subtraction apparatus, comprising:
means for acquiring an image of a known object type;
means for locating key points on an image of a known object type based on a similarity score for a region in an alpha image of the known object type and a template of a key point;
means for determining line segments between the key points;
means for locating boundary points of the image of the known object that comprise edges of the known object by using the line segments;
means for eliminating pixel gaps between the boundary points;
means for reducing noise from the edges of the image of the known object, after determining the key points, using an edge strength, the alpha image, and the line segments by aligning a snake to the line segments; and
means for connecting the boundary points to obtain a closed loop of pixels;
wherein the template comprises a plurality of pixels and is specially configured for that key point; and
wherein the pixels in the template that make up a shape associated with the key point have a first value, and the other pixels in the template have a second value.
58. A background subtraction apparatus, comprising:
an image acquisition device for acquiring an image of a known object type; and
a processor configured to:
locate key points on an image of a known object type based on a similarity score for a region in an alpha image of the known object type and a template of a key point;
determine line segments between the key points;
locate boundary points of the image of the known object that comprise edges of the known object by using the line segments;
eliminate pixel gaps between the boundary points;
reduce noise from the edges of the image of the known object, after determining the key points, using an edge strength, the alpha image, and the line segments by aligning a snake to the line segments; and
connect the boundary points to obtain a closed loop of pixels;
wherein the template comprises a plurality of pixels and is specially configured for that key point; and
wherein the pixels in the template that make up a shape associated with the key point have a first value, and the other pixels in the template have a second value.
59. The apparatus recited in claim 58, wherein the processor is further configured to align the image with a skeleton image prior to locating the key points.
60. The apparatus recited in claim 58, wherein the processor is further configured to:
locate primary key points;
determine whether the primary key points are in acceptable locations;
repeat locating primary key points if the primary key points are determined not to be in acceptable locations;
locate secondary key points based on the primary points;
determine whether the secondary points are in acceptable locations; and
repeat locating secondary key points if the secondary key points are determined not to be in acceptable locations.
Description
CROSS REFERENCE TO RELATED APPLICATIONS

This is a continuation of application Ser. No. 09/174,491, now U.S. Pat. No. 6,411,744, filed Oct. 15, 1998 which claims benefit of 60/062,068, filed on Oct. 15, 1997, and claims benefit of 60/062,361, filed on Oct. 15, 1997.

BACKGROUND OF THE INVENTION

The present invention relates generally to computer vision systems and digital image processing, and more particularly to the digital extraction of an image from its background.

To produce certain special visual effects, it is often desirable to separate a foreground image from a background image. One method for accomplishing this task is referred to as “blue-screening” and involves placing a blue or other fixed-color screen (e.g. a green screen) behind the desired foreground object, typically the image of a person (the colors blue and green hue that strongly contrasts with most colors of human skin). In blue-screening, the system checks to see which pixels in the input image are not blue and labels those pixels as foreground pixels. The system can then composite, or blend, the object (i.e. the collection of all foreground pixels) onto a destination background image.

One of the disadvantages of using blue-screening for object compositing is that it requires a fixed color screen behind the object. Another disadvantage is that if any of the colors on the object, such as an item of clothing, are blue, “holes” will appear in the object in the destination image. This occurs because the pixels in the blue areas on the object will not be labeled as foreground pixels and thus will not be composited with the rest of the object, resulting in the object having holes when composited onto the destination image. Another disadvantage is, obviously, the need for a special room or screen to provide the appropriate background color.

Other prior art background subtraction procedures, from the field of computer vision, are used to eliminate the fixed color screen requirement. One procedure involves building an average background image by taking a predetermined number of sample images of a typically multi-colored background and creating a background model. For each new sample image taken, each pixel in the new image is compared to its corresponding pixel in the background model being formed. Changes are assumed to be to the foreground object, i.e. this is done to determine whether the pixel in the current sample image is a foreground (“object”). Pixels that are determined to be part of the foreground are then blended or composited onto the destination image.

One disadvantage with this procedure is if a foreground pixel happens to match its corresponding background model pixel color, it will not be considered a foreground pixel. This will introduce holes into the composited object. Another disadvantage is that shadows cast by the object often make the object, when composited, appear to have its original form plus extraneous appendages (as a result of the shadows). This is because the procedure may mistakenly label the “shadow” pixels as foreground pixels.

Yet another disadvantage is that if any portion of the background changes or if the camera is moved while the background model is being built, certain portions of the background (e.g. the portions that moved) will be incorrectly labeled as part of the foreground and be composited onto the destination image. Although there are prior art techniques for updating the background model to reflect changes, they cannot account for a constantly changing background such as one that includes a changing television screen or a window looking out onto a busy street.

As is apparent from the foregoing discussion, it has been difficult to obtain a clean-edged outline for a foreground image being extracted from a background image. One known method of creating a clean-edged outline is hand painting the outline for the background subtraction which is typically done by an application developer. While this is appropriate in the application design stage, it is not appropriate for an end user to have to hand paint or manually create the outline of the image.

SUMMARY OF THE INVENTION

The present invention creates a clean-edged extraction of a foreground image from its background in an automated and effective manner. More particularly, the present invention includes an improved method of background subtraction wherein a clean image of the object being composited or texture mapped is created through improvements in determining the outline of the object. As a result, the present invention reduces noise near the edges of an object in an input image from which the background is being “subtracted.” The resulting image can be used for example, in a texture map application or for compositing.

In the texture mapping process any errors that may occur in the background subtraction or inaccuracies that arise from the background subtraction will typically remain throughout the duration of the process. The present invention provides a closed curve which is essentially a noise-reduced outline of the object that is being mapped or composited. By virtue of this process there are no holes or gaps within the object image when it is mapped or composited, since all pixels within the closed curve are reconsidered part of the object.

A background subtraction apparatus of the present invention includes a key point locator for locating key points on a known object type, a boundary point locator for locating boundary points of the known object that make up the edges of the known object, and an edge processor for processing the edges to provide a clean-edged extraction of the known object from a background image. Preferably, the key point locator includes an alignment detector for detecting alignment of an image of the known object type with a skeleton image. Still more preferably, the skeleton image is an exoskeleton image and the known object type is a human being.

A method for subtracting a background in accordance with the present invention includes locating key points on a known object type, locating boundary points of the known object that comprise edges of the known object, and processing the edges to provide a clean-edged extraction of the known object from a background image. Preferably, locating the key points include detecting the alignment of an image of the known object type with a skeleton image. Even more preferably, the key points include primary key points at extremities of an image of the human being and secondary key points near a torso of an image of the human being.

These and other advantages of the present invention will become apparent upon a study of the specification and drawings of this application.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1a is a perspective view of a person standing in front of an apparatus made and operated in accordance with the present invention;

FIG. 1b is an illustration of a user's image with the background removed, where the user's image has clean edges due to the method and apparatus of the present invention;

FIGS. 2a-2c comprise a flow diagram of a method for performing clean background subtraction in accordance with the present invention; and

FIG. 3 illustrates ten key points on a “skeleton” used by the method and apparatus of the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

FIG. 1a is an illustration of an apparatus 10 in accordance with the present invention. A user 12, e.g. a child, stands in front of a camera 13 in a pose in which the arms are extended outwardly and the legs are spread somewhat apart. That is, the child moves to fit herself within a skeleton “A” shown on a video monitor 14. The camera 13 and the video monitor 14 are typically connected to a computer 16, as will be appreciated by those skilled in the art. The computer 16 includes or has access to computer implemented process instructions stored within computer readable media (such as RAM, ROM, magnetic or optical media, over a network, etc.) to perform methods (“computer implement processes”) of the present invention.

The skeleton A is an outline of an object or figure that is to be digitally removed from its background. When the object or figure is a human being, a preferred skeletal outline is somewhat of a hollow, five-pointed star shape. The “skeletons” described with reference to the current example are more in the nature of exoskeletons, since they surround the image of the figure to be extracted, although they can also be internal skeletons (e.g. a stick figure of a human being), or combinations thereof, in alternate embodiments of the present invention.

FIG. 1b illustrates an output created by the method and apparatus of the present invention, that is, a clean image of a user with the background removed. This is shown as the image of the user 12 with a black background 20 and an outline 18 of the object with a clean edge. In a preferred embodiment, the background pixels become transparent pixels and are not the same color as any of the pixels on the object being texture mapped or composited.

FIGS. 2a-2c are flowcharts which collectively illustrate a process (comprising, but not limited to, a computer implemented process) for performing the clean background subtraction procedure of the present invention. At 200 the system builds a background model which is a model of the background image that the camera sees without the subject in the image. Once the background model (for example an image of a bedroom or a living room) is created, the system then captures an image of the background model with the subject, such as a human being, that has moved into the background. Essentially this is an image of, for example, a child that has moved in front of the camera after the background model has been created. In a preferred embodiment, the subject is required to generally fit her pose to approximately match a frame or skeleton shown on the computer monitor. An example of a pose is shown in FIG. 1a. This is done in block 202.

At 204 the system locates primary key points of the subject. For a human figure these key points or extremities include the tips of the left and right hands, top of the head, and the bottom of the left and right feet. These are shown at points “P” in FIG. 3. At 206 the system determines whether the general locations of the primary key points are acceptable to the system. That is, are the extremities such as the ends of the hands and the feet and the head in an area where the system would normally expect to find them.

If the system does not find these extremities in the general locations, control returns back to block 202 where the system will take another input image of the subject aligning itself with the skeleton. This indicates that the subject is not yet properly aligned with the skeleton outline. If the locations of the primary key points are generally acceptable to the system, the process continues to block 208.

At 208 the system locates secondary key points of the subject. These are shown at points “S” in FIG. 3. The processing for determining these secondary key points depend on first properly locating the primary key points P of the subject. The secondary key points of a human figure are the left and right shoulders, the left and right arm pits, and the crotch. These points are located depending on where the system locates the primary key points as determined in step 204. Thus, for example, if in block 204 the system does not find the left and right key points properly, the system does not find the proper point for the crotch.

Similar to block 206, at 210 the system checks whether the secondary key points are located in areas where the system would generally expect to see them based on typical body proportions. If any one of them is not where the system expects to be, control returns to block 202. Once the locations of the ten key points, in the current example, (see FIG. 3) are determined, the system now has a definition of ten approximately linear segments that essentially connect these key points and define a general outline of the subject.

At 212 the system determines the locations of boundary points among the ten key points. These boundary points are located essentially by scanning the image in a certain direction, the direction depending on the orientation of the line segments between the key points. For example, a line segment between the left hand and the left arm pit would require a scan that begins at a certain offset away from the outline. The offset is determined by a bounding box whose corners are set by the key points of the segment, plus a pad of a fixed number of pixels, such as ten pixels in a preferred embodiment.

During the scan pixels in one vertical column are examined one by one. Many of the pixels scanned first would be background pixels until the scan reached the lower edge of the child's arm, at which point the scan would detect a foreground pixel. It would then mark this pixel as a boundary point. This procedure is done for all the columns in the approximately linear segment between the hand and the arm pit.

The collection of these boundary points can be seen as a silhouette line which is further refined to form part of a closed curve such that the curve will define the outline of the object. For example, a segment that goes from the left arm pit to the left foot would require a horizontal scan, scanning each pixel in a horizontal row until the scan reached a pixel indicating a foreground pixel. That pixel will be marked as a boundary point in the linear segment between the left arm pit and left foot.

Thus, once the process in block 212 is complete, the system has a series of boundary points that defines fairly closely the outline of the object but still includes nuances and aberrations, i.e. noise, that are on the edges of the object. The key points are used as start and stop delimiters in the scans. The boundary points are stored in a one-dimensional array. Thus, in a preferred embodiment, all the boundary points determined from the ten scans are stored in sequence in this one-dimensional array.

At 214 the system performs a series of smoothing filters to reign in aberrant boundary points, thereby reducing some of the noise in the object's edge. A basic assumption made by the system in applying these filters is that edges between key points are relatively smooth curves. One of the filters, in a preferred embodiment, is a Gaussian model applied to dampen noise in the edges, as represented by the boundary points. In a preferred embodiment, the Gaussian model uses a window or range of about five pixels. The effect of applying the Gaussian model is to bring boundary points that deviate significantly from surrounding boundary points closer to their surrounding boundary points. It has the effect of dampening or lessening the difference between an aberrant point and points in its vicinity.

The Gaussian model smoothing procedure has the effect of a low-pass filter applied to the boundary points. The window used in the Gaussian model is set so that an appropriate smoothing of the boundary points occurs. If the window of boundary points for the Gaussian model is too large, the overall effect is an averaging effect over the boundary points which is generally not desirable due to the lack of accuracy. If the window is too small there is essentially no smoothing effect on the boundary points.

The other smoothing filter is known in the art as a least-square filter which also uses an appropriately sized window of pixels. All the boundary points within the window are aligned or brought closer to a line that is fitted to the boundary points within the window. Thus, the least-square method is a way of fitting a line through the boundary points in a window. The system minimizes the sum of the squares of deviations from the line. The system then places boundary points so that they fit close to or on the line.

At 216 the system runs a snake algorithm to further eliminate noise from the edge of the object. The boundary points comprise a line that make up one input to the snake algorithm. In the application of the snake algorithm as used in the present invention, there are attractive forces acting on the line that bring the line closer to a noise-reduced edge of the object. At the same time the line, or “snake,” itself has an internal energy that tends to keep the snake in its original shape to some degree. Thus, there is a tension between the attractive force of the edge of the object and the natural tendency of the line to keep its original shape. The snake has sufficient internal energy so that it can ignore significant deviations in the edge of the object. As with the smoothing filters, the key points do not move as a result of the snake algorithm acting as anchors. The snake itself, however, is elastic and can stretch or shrink to match the edge as needed.

The forces, both from external features, that attract the snake to the edge are (1) an edge strength, and (2) an alpha image. The snake has a tendency to align itself along a portion of the alpha image such that on one side the alpha pixels are zero and on the other side the alpha pixels are one.

A Canny edge detector is used to determine the edge strength. The Canny algorithm is a well-known method for detecting edges. The Canny filter is applied to the input image itself not the alpha image. Thus, in a preferred embodiment, the snake algorithm has generally three inputs. One is from the Canny filter performed on the input image, another is the alpha image, and the third is the contour line made up of boundary points between two key points.

The snake algorithm is well-known in the field of computer vision and operates as an energy minimization procedure. In a preferred embodiment, the snake algorithm takes into account three sources of energy, as described above, in making the snake represent a clean edge of the object. In the present implementation of the snake algorithm the boundary points comprising the snake can move in only one dimension, either left or right, or up and down. This has the effect of greatly increasing the speed of adjustment iterations made by the snake. The class of snake applied in the process is determined essentially by how much weight is given to the different sources of energy.

With reference to FIG. 2c, at 220 the system connects the boundary points such that there is a complete or closed loop of pixels constrained by the boundary points. This is necessary because the area fill that eventually fills in the area within the closed loop, will not perform well if there are gaps between the boundary points. Thus, even if the boundary points are sequentially ordered, they may not be adjacent. Therefore, extra pixels may have to be added so that there are no pixel gaps between them. Once the boundary loops are connected, thereby forming a closed loop, a standard area fill algorithm is used to generate an improved alpha image. This alpha image can subsequently be used to create a clean background subtracted image. A standard area-fill is accomplished at 222, and the process is complete.

Returning to blocks 204 and 208, the system locates the key points using a general search area and a key point template. Each of the key points have a general search area associated with it. The general search area is the area within which the system expects to find the key point. A template is used to search within the general search area to locate the best region, i.e., the region most likely to be precise key point, within the general search area.

In performing this process, the system uses the alpha image of the subject. Thus, pixels within or on the edge of the subject have a value of one, for example, and pixels outside the subject have a value of zero. Each key point has a specially configured template, although a template for the right hand key point is a mirror image of the template for the left hand key point, and similarly for the left and right feet, shoulders, and armpits.

The template resembles a miniature alpha image. A typical size of a template (significantly smaller than the general search area) is 20 pixels by 20 pixels, in a preferred embodiment. The pixels that have a value of one within the template make up a shape that resembles the expected shape of the key point being search for.

In a preferred embodiment, template patterns are restricted to be rectangles, so that a Summed Area Table (S.A.T.) facilitates an efficient search. The template is applied to each 20 by 20 region within the general search area. Each time it is applied, the system determines how many of the “one” alpha pixels in the template match the “one” alpha pixels in the subject image. The region in the subject alpha image that has the highest similarity score is determined to be the key point. This process is done for all the primary and secondary key points.

If none of the regions in a general search area gets a similarity score above a certain threshold after being checked by the template, the system assumes that the subject did not strike a pose that generally matched the skeleton and waits for another pose, thereby returning control to block 202. This is one way for the system to determine if primary key points and secondary key points are ascertainable given the subject's alignment with the skeleton.

FIG. 3 illustrates ten key points(labeled “S” and “P”) associated with a skeleton A in accordance with the present invention. It should be noted that more or fewer key points can be used, as will be appreciated by those skilled in the art. The key points “P” are primary key points, and are located at the extremities of the skeleton A. The key points “S” are secondary key points, and are located proximate to the torso of the skeleton A at the points where the limbs and neck attach to the torso.

While this invention has been described in terms of several preferred embodiments, it will be apparent to those of skill in the art that various equivalents, permutations, and additions thereof are within the scope of the present invention. It is therefore intended that the following appending claims include all such equivalents, permutations and additions as fall within the true spirit and scope of the present invention.

Patent Citations
Cited PatentFiling datePublication dateApplicantTitle
US4843568 *Apr 11, 1986Jun 27, 1989Krueger Myron WReal time perception of and response to the actions of an unencumbered participant/user
US5142589 *Dec 21, 1990Aug 25, 1992Environmental Research Institute Of MichiganMethod for repairing images for optical character recognition performing different repair operations based on measured image characteristics
US5563988 *Aug 1, 1994Oct 8, 1996Massachusetts Institute Of TechnologyMethod and system for facilitating wireless, full-body, real-time user interaction with a digitally represented visual environment
US5781198 *Dec 22, 1995Jul 14, 1998Intel CorporationMethod and apparatus for replacing a background portion of an image
US5790124 *Nov 20, 1995Aug 4, 1998Silicon Graphics, Inc.System and method for allowing a performer to control and interact with an on-stage display device
US5930391 *May 1, 1998Jul 27, 1999Fuji Photo Film Co., Ltd.Method of extracting a region of a specific configuration and determining copy conditions
US5940538 *Aug 5, 1996Aug 17, 1999Spiegel; EhudApparatus and methods for object border tracking
US5990908 *Sep 22, 1997Nov 23, 1999Lamb & CompanyMethod and apparatus for processing full motion computer animation
US5995639 *Mar 28, 1994Nov 30, 1999Matsushita Electric Industrial Co., Ltd.Apparatus for identifying person
US6141463 *Dec 3, 1997Oct 31, 2000Electric Planet InteractiveMethod and system for estimating jointed-figure configurations
US6400374 *Sep 18, 1996Jun 4, 2002Eyematic Interfaces, Inc.Video superposition system and method
US6445814 *Jun 30, 1997Sep 3, 2002Canon Kabushiki KaishaThree-dimensional information processing apparatus and method
US6636635 *Oct 31, 1996Oct 21, 2003Canon Kabushiki KaishaObject extraction method, and image sensing apparatus using the method
US6650778 *Jan 20, 2000Nov 18, 2003Canon Kabushiki KaishaImage processing method and apparatus, and storage medium
US20020154820 *Mar 5, 2002Oct 24, 2002Toshimitsu KanekoTemplate matching method and image processing device
Non-Patent Citations
Reference
1 *"Comparing Images Using The Hausdorff Distance", Huttenlocher, D.P.; Klanderman, G.A.; Rucklidge, W.J., Sep. 1993, IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 15, Issue: 9, pp. 850-863.
2 *"Locating Objects Using The Hausdorff Distance", Rucklidge, W.J., Jun. 20-23, 1995, Fifth International Conference on Computer Vision, 1995, Proceedings, pp. 457-464.
3 *A. Blake and M. Isard. Active Contours. Springer-Verlag 1998. pp. 25-37, 170.
4 *A. Kass, M. Witkin and D. Terzolpoulos, "Snakes: Active Contour Models", International Journal of Computer Vision, vol. 1, 1987.
5 *Baumberg et al., "An efficient method for contour tracking using active shape models", IEEE workshop on Motion of Non-rigid and Articulated Objects, Nov. 12, 1994.
6 *Covell et al., "Eigen-points [image matching]", International conference on Image processing, Sep. 19, 2996.
7 *Sullivan et al., "using active-deformable models to track deformable objects in robotic visual servoing experiments", IEEE International conference on Robotics and Automation, Apr. 28, 1996.
8 *Tsai, Robust affine invariant matching with application to line features, IEEE Computer Society Conference on Computer Visio and Pattern Recognition, Jun. 17, 1993.
9 *W. Lee, P. Kalra, N.M. Thalmann, "Model based Face Reconstruction for Animation", MIRALab 1998.
10 *Wren et al., "Pfinder: real-time tracking of the human body", Proceedings 2nd International Conference on Automatic face and Gesture recognition, Oct. 16, 1996.
Referenced by
Citing PatentFiling datePublication dateApplicantTitle
US8213680Jul 3, 2012Microsoft CorporationProxy training data for human body tracking
US8253746May 1, 2009Aug 28, 2012Microsoft CorporationDetermine intended motions
US8264536Sep 11, 2012Microsoft CorporationDepth-sensitive imaging via polarization-state mapping
US8265341Sep 11, 2012Microsoft CorporationVoice-body identity correlation
US8267781Sep 18, 2012Microsoft CorporationVisual target tracking
US8279418Mar 17, 2010Oct 2, 2012Microsoft CorporationRaster scanning for depth detection
US8284847Oct 9, 2012Microsoft CorporationDetecting motion for a multifunction sensor device
US8294767Jan 30, 2009Oct 23, 2012Microsoft CorporationBody scan
US8295546Oct 23, 2012Microsoft CorporationPose tracking pipeline
US8296151Jun 18, 2010Oct 23, 2012Microsoft CorporationCompound gesture-speech commands
US8320619Nov 27, 2012Microsoft CorporationSystems and methods for tracking a model
US8320621Dec 21, 2009Nov 27, 2012Microsoft CorporationDepth projector system with integrated VCSEL array
US8325909Dec 4, 2012Microsoft CorporationAcoustic echo suppression
US8325984Jun 9, 2011Dec 4, 2012Microsoft CorporationSystems and methods for tracking a model
US8330134Dec 11, 2012Microsoft CorporationOptical fault monitoring
US8330822Dec 11, 2012Microsoft CorporationThermally-tuned depth camera light source
US8340432Jun 16, 2009Dec 25, 2012Microsoft CorporationSystems and methods for detecting a tilt angle from a depth image
US8351651Jan 8, 2013Microsoft CorporationHand-location post-process refinement in a tracking system
US8351652Jan 8, 2013Microsoft CorporationSystems and methods for tracking a model
US8363212Jan 29, 2013Microsoft CorporationSystem architecture design for time-of-flight system having reduced differential pixel size, and time-of-flight systems so designed
US8374423Mar 2, 2012Feb 12, 2013Microsoft CorporationMotion detection using depth images
US8379101Feb 19, 2013Microsoft CorporationEnvironment and/or target segmentation
US8379919Feb 19, 2013Microsoft CorporationMultiple centroid condensation of probability distribution clouds
US8381108Jun 21, 2010Feb 19, 2013Microsoft CorporationNatural user input for driving interactive stories
US8385557Jun 19, 2008Feb 26, 2013Microsoft CorporationMultichannel acoustic echo reduction
US8385596Dec 21, 2010Feb 26, 2013Microsoft CorporationFirst person shooter control with virtual skeleton
US8390680Jul 9, 2009Mar 5, 2013Microsoft CorporationVisual representation expression based on player expression
US8401225Jan 31, 2011Mar 19, 2013Microsoft CorporationMoving object segmentation using depth images
US8401242Mar 19, 2013Microsoft CorporationReal-time camera tracking using depth maps
US8408706Apr 2, 2013Microsoft Corporation3D gaze tracker
US8411948Apr 2, 2013Microsoft CorporationUp-sampling binary images for segmentation
US8416187Jun 22, 2010Apr 9, 2013Microsoft CorporationItem navigation using motion-capture data
US8418085Apr 9, 2013Microsoft CorporationGesture coach
US8422769Apr 16, 2013Microsoft CorporationImage segmentation using reduced foreground training data
US8428340Sep 21, 2009Apr 23, 2013Microsoft CorporationScreen space plane identification
US8437506Sep 7, 2010May 7, 2013Microsoft CorporationSystem for fast, probabilistic skeletal tracking
US8448056May 21, 2013Microsoft CorporationValidation analysis of human target
US8448094Mar 25, 2009May 21, 2013Microsoft CorporationMapping a natural input device to a legacy system
US8451278Aug 3, 2012May 28, 2013Microsoft CorporationDetermine intended motions
US8452051Dec 18, 2012May 28, 2013Microsoft CorporationHand-location post-process refinement in a tracking system
US8452087May 28, 2013Microsoft CorporationImage selection techniques
US8456419Jun 4, 2013Microsoft CorporationDetermining a position of a pointing device
US8457353May 18, 2010Jun 4, 2013Microsoft CorporationGestures and gesture modifiers for manipulating a user-interface
US8467574Jun 18, 2013Microsoft CorporationBody scan
US8483436Nov 4, 2011Jul 9, 2013Microsoft CorporationSystems and methods for tracking a model
US8487871Jun 1, 2009Jul 16, 2013Microsoft CorporationVirtual desktop coordinate transformation
US8487938Feb 23, 2009Jul 16, 2013Microsoft CorporationStandard Gestures
US8488888Dec 28, 2010Jul 16, 2013Microsoft CorporationClassification of posture states
US8497838Feb 16, 2011Jul 30, 2013Microsoft CorporationPush actuation of interface controls
US8498481May 7, 2010Jul 30, 2013Microsoft CorporationImage segmentation using star-convexity constraints
US8499257Feb 9, 2010Jul 30, 2013Microsoft CorporationHandles interactions for human—computer interface
US8503494Apr 5, 2011Aug 6, 2013Microsoft CorporationThermal management system
US8503766Dec 13, 2012Aug 6, 2013Microsoft CorporationSystems and methods for detecting a tilt angle from a depth image
US8508919Sep 14, 2009Aug 13, 2013Microsoft CorporationSeparation of electrical and optical components
US8509479Jun 16, 2009Aug 13, 2013Microsoft CorporationVirtual object
US8509545Nov 29, 2011Aug 13, 2013Microsoft CorporationForeground subject detection
US8514269Mar 26, 2010Aug 20, 2013Microsoft CorporationDe-aliasing depth images
US8523667Mar 29, 2010Sep 3, 2013Microsoft CorporationParental control settings based on body dimensions
US8526734Jun 1, 2011Sep 3, 2013Microsoft CorporationThree-dimensional background removal for vision system
US8542252May 29, 2009Sep 24, 2013Microsoft CorporationTarget digitization, extraction, and tracking
US8542910Feb 2, 2012Sep 24, 2013Microsoft CorporationHuman tracking system
US8548270Oct 4, 2010Oct 1, 2013Microsoft CorporationTime-of-flight depth imaging
US8553934Dec 8, 2010Oct 8, 2013Microsoft CorporationOrienting the position of a sensor
US8553939Feb 29, 2012Oct 8, 2013Microsoft CorporationPose tracking pipeline
US8558873Jun 16, 2010Oct 15, 2013Microsoft CorporationUse of wavefront coding to create a depth image
US8564534Oct 7, 2009Oct 22, 2013Microsoft CorporationHuman tracking system
US8565476Dec 7, 2009Oct 22, 2013Microsoft CorporationVisual target tracking
US8565477Dec 7, 2009Oct 22, 2013Microsoft CorporationVisual target tracking
US8565485Sep 13, 2012Oct 22, 2013Microsoft CorporationPose tracking pipeline
US8571263Mar 17, 2011Oct 29, 2013Microsoft CorporationPredicting joint positions
US8577084Dec 7, 2009Nov 5, 2013Microsoft CorporationVisual target tracking
US8577085Dec 7, 2009Nov 5, 2013Microsoft CorporationVisual target tracking
US8578302Jun 6, 2011Nov 5, 2013Microsoft CorporationPredictive determination
US8587583Jan 31, 2011Nov 19, 2013Microsoft CorporationThree-dimensional environment reconstruction
US8587773Dec 13, 2012Nov 19, 2013Microsoft CorporationSystem architecture design for time-of-flight system having reduced differential pixel size, and time-of-flight systems so designed
US8588465Dec 7, 2009Nov 19, 2013Microsoft CorporationVisual target tracking
US8588517Jan 15, 2013Nov 19, 2013Microsoft CorporationMotion detection using depth images
US8592739Nov 2, 2010Nov 26, 2013Microsoft CorporationDetection of configuration changes of an optical element in an illumination system
US8597142Sep 13, 2011Dec 3, 2013Microsoft CorporationDynamic camera based practice mode
US8605763Mar 31, 2010Dec 10, 2013Microsoft CorporationTemperature measurement and control for laser and light-emitting diodes
US8610665Apr 26, 2013Dec 17, 2013Microsoft CorporationPose tracking pipeline
US8611607Feb 19, 2013Dec 17, 2013Microsoft CorporationMultiple centroid condensation of probability distribution clouds
US8613666Aug 31, 2010Dec 24, 2013Microsoft CorporationUser selection and navigation based on looped motions
US8618405Dec 9, 2010Dec 31, 2013Microsoft Corp.Free-space gesture musical instrument digital interface (MIDI) controller
US8619122Feb 2, 2010Dec 31, 2013Microsoft CorporationDepth camera compatibility
US8620113Apr 25, 2011Dec 31, 2013Microsoft CorporationLaser diode modes
US8625837Jun 16, 2009Jan 7, 2014Microsoft CorporationProtocol and format for communicating an image from a camera to a computing environment
US8629976Feb 4, 2011Jan 14, 2014Microsoft CorporationMethods and systems for hierarchical de-aliasing time-of-flight (TOF) systems
US8630457Dec 15, 2011Jan 14, 2014Microsoft CorporationProblem states for pose tracking pipeline
US8631355Jan 8, 2010Jan 14, 2014Microsoft CorporationAssigning gesture dictionaries
US8633890Feb 16, 2010Jan 21, 2014Microsoft CorporationGesture detection based on joint skipping
US8635637Dec 2, 2011Jan 21, 2014Microsoft CorporationUser interface presenting an animated avatar performing a media reaction
US8638985Mar 3, 2011Jan 28, 2014Microsoft CorporationHuman body pose estimation
US8644609Mar 19, 2013Feb 4, 2014Microsoft CorporationUp-sampling binary images for segmentation
US8649554May 29, 2009Feb 11, 2014Microsoft CorporationMethod to control perspective for a camera-controlled computer
US8655069Mar 5, 2010Feb 18, 2014Microsoft CorporationUpdating image segmentation following user input
US8659658Feb 9, 2010Feb 25, 2014Microsoft CorporationPhysical interaction zone for gesture-based user interfaces
US8660303Dec 20, 2010Feb 25, 2014Microsoft CorporationDetection of body and props
US8660310Dec 13, 2012Feb 25, 2014Microsoft CorporationSystems and methods for tracking a model
US8667519Nov 12, 2010Mar 4, 2014Microsoft CorporationAutomatic passive and anonymous feedback system
US8670029Jun 16, 2010Mar 11, 2014Microsoft CorporationDepth camera illuminator with superluminescent light-emitting diode
US8675981Jun 11, 2010Mar 18, 2014Microsoft CorporationMulti-modal gender recognition including depth data
US8676581Jan 22, 2010Mar 18, 2014Microsoft CorporationSpeech recognition analysis via identification information
US8681255Sep 28, 2010Mar 25, 2014Microsoft CorporationIntegrated low power depth camera and projection device
US8681321Dec 31, 2009Mar 25, 2014Microsoft International Holdings B.V.Gated 3D camera
US8682028Dec 7, 2009Mar 25, 2014Microsoft CorporationVisual target tracking
US8687044Feb 2, 2010Apr 1, 2014Microsoft CorporationDepth camera compatibility
US8693724May 28, 2010Apr 8, 2014Microsoft CorporationMethod and system implementing user-centric gesture control
US8702507Sep 20, 2011Apr 22, 2014Microsoft CorporationManual and camera-based avatar control
US8707216Feb 26, 2009Apr 22, 2014Microsoft CorporationControlling objects via gesturing
US8717469Feb 3, 2010May 6, 2014Microsoft CorporationFast gating photosurface
US8723118Oct 1, 2009May 13, 2014Microsoft CorporationImager for constructing color and depth images
US8724887Feb 3, 2011May 13, 2014Microsoft CorporationEnvironmental modifications to mitigate environmental factors
US8724906Nov 18, 2011May 13, 2014Microsoft CorporationComputing pose and/or shape of modifiable entities
US8744121May 29, 2009Jun 3, 2014Microsoft CorporationDevice for identifying and tracking multiple humans over time
US8745541Dec 1, 2003Jun 3, 2014Microsoft CorporationArchitecture for controlling a computer using hand gestures
US8749557Jun 11, 2010Jun 10, 2014Microsoft CorporationInteracting with user interface via avatar
US8751215Jun 4, 2010Jun 10, 2014Microsoft CorporationMachine based sign language interpreter
US8760395May 31, 2011Jun 24, 2014Microsoft CorporationGesture recognition techniques
US8760571Sep 21, 2009Jun 24, 2014Microsoft CorporationAlignment of lens and image sensor
US8762894Feb 10, 2012Jun 24, 2014Microsoft CorporationManaging virtual ports
US8773355Mar 16, 2009Jul 8, 2014Microsoft CorporationAdaptive cursor sizing
US8775916May 17, 2013Jul 8, 2014Microsoft CorporationValidation analysis of human target
US8781156Sep 10, 2012Jul 15, 2014Microsoft CorporationVoice-body identity correlation
US8782567Nov 4, 2011Jul 15, 2014Microsoft CorporationGesture recognizer system architecture
US8786730Aug 18, 2011Jul 22, 2014Microsoft CorporationImage exposure using exclusion regions
US8787658Mar 19, 2013Jul 22, 2014Microsoft CorporationImage segmentation using reduced foreground training data
US8788973May 23, 2011Jul 22, 2014Microsoft CorporationThree-dimensional gesture controlled avatar configuration interface
US8803800Dec 2, 2011Aug 12, 2014Microsoft CorporationUser interface control based on head orientation
US8803888Jun 2, 2010Aug 12, 2014Microsoft CorporationRecognition system for sharing information
US8803952Dec 20, 2010Aug 12, 2014Microsoft CorporationPlural detector time-of-flight depth mapping
US8811938Dec 16, 2011Aug 19, 2014Microsoft CorporationProviding a user interface experience based on inferred vehicle state
US8818002Jul 21, 2011Aug 26, 2014Microsoft Corp.Robust adaptive beamforming with enhanced noise suppression
US8824749Apr 5, 2011Sep 2, 2014Microsoft CorporationBiometric recognition
US8843857Nov 19, 2009Sep 23, 2014Microsoft CorporationDistance scalable no touch computing
US8854426Nov 7, 2011Oct 7, 2014Microsoft CorporationTime-of-flight camera with guided light
US8856691May 29, 2009Oct 7, 2014Microsoft CorporationGesture tool
US8860663Nov 22, 2013Oct 14, 2014Microsoft CorporationPose tracking pipeline
US8861839Sep 23, 2013Oct 14, 2014Microsoft CorporationHuman tracking system
US8864581Jan 29, 2010Oct 21, 2014Microsoft CorporationVisual based identitiy tracking
US8866889Nov 3, 2010Oct 21, 2014Microsoft CorporationIn-home depth camera calibration
US8867820Oct 7, 2009Oct 21, 2014Microsoft CorporationSystems and methods for removing a background of an image
US8869072Aug 2, 2011Oct 21, 2014Microsoft CorporationGesture recognizer system architecture
US8879831Dec 15, 2011Nov 4, 2014Microsoft CorporationUsing high-level attributes to guide image processing
US8882310Dec 10, 2012Nov 11, 2014Microsoft CorporationLaser die light source module with low inductance
US8884968Dec 15, 2010Nov 11, 2014Microsoft CorporationModeling an object from image data
US8885890May 7, 2010Nov 11, 2014Microsoft CorporationDepth map confidence filtering
US8888331May 9, 2011Nov 18, 2014Microsoft CorporationLow inductance light source module
US8891067Jan 31, 2011Nov 18, 2014Microsoft CorporationMultiple synchronized optical sources for time-of-flight range finding systems
US8891827Nov 15, 2012Nov 18, 2014Microsoft CorporationSystems and methods for tracking a model
US8892495Jan 8, 2013Nov 18, 2014Blanding Hovenweep, LlcAdaptive pattern recognition based controller apparatus and method and human-interface therefore
US8896721Jan 11, 2013Nov 25, 2014Microsoft CorporationEnvironment and/or target segmentation
US8897491Oct 19, 2011Nov 25, 2014Microsoft CorporationSystem for finger recognition and tracking
US8897493Jan 4, 2013Nov 25, 2014Microsoft CorporationBody scan
US8897495May 8, 2013Nov 25, 2014Microsoft CorporationSystems and methods for tracking a model
US8898687Apr 4, 2012Nov 25, 2014Microsoft CorporationControlling a media program based on a media reaction
US8908091Jun 11, 2014Dec 9, 2014Microsoft CorporationAlignment of lens and image sensor
US8917240Jun 28, 2013Dec 23, 2014Microsoft CorporationVirtual desktop coordinate transformation
US8920241Dec 15, 2010Dec 30, 2014Microsoft CorporationGesture controlled persistent handles for interface guides
US8926431Mar 2, 2012Jan 6, 2015Microsoft CorporationVisual based identity tracking
US8928579Feb 22, 2010Jan 6, 2015Andrew David WilsonInteracting with an omni-directionally projected display
US8929612Nov 18, 2011Jan 6, 2015Microsoft CorporationSystem for recognizing an open or closed hand
US8929668Jun 28, 2013Jan 6, 2015Microsoft CorporationForeground subject detection
US8933884Jan 15, 2010Jan 13, 2015Microsoft CorporationTracking groups of users in motion capture system
US8942428May 29, 2009Jan 27, 2015Microsoft CorporationIsolate extraneous motions
US8942917Feb 14, 2011Jan 27, 2015Microsoft CorporationChange invariant scene recognition by an agent
US8953844May 6, 2013Feb 10, 2015Microsoft Technology Licensing, LlcSystem for fast, probabilistic skeletal tracking
US8959541May 29, 2012Feb 17, 2015Microsoft Technology Licensing, LlcDetermining a future portion of a currently presented media program
US8963829Nov 11, 2009Feb 24, 2015Microsoft CorporationMethods and systems for determining and tracking extremities of a target
US8968091Mar 2, 2012Mar 3, 2015Microsoft Technology Licensing, LlcScalable real-time motion recognition
US8970487Oct 21, 2013Mar 3, 2015Microsoft Technology Licensing, LlcHuman tracking system
US8971612Dec 15, 2011Mar 3, 2015Microsoft CorporationLearning image processing tasks from scene reconstructions
US8976986Sep 21, 2009Mar 10, 2015Microsoft Technology Licensing, LlcVolume adjustment based on listener position
US8982151Jun 14, 2010Mar 17, 2015Microsoft Technology Licensing, LlcIndependently processing planes of display data
US8983233Aug 30, 2013Mar 17, 2015Microsoft Technology Licensing, LlcTime-of-flight depth imaging
US8988432Nov 5, 2009Mar 24, 2015Microsoft Technology Licensing, LlcSystems and methods for processing an image for target tracking
US8988437Mar 20, 2009Mar 24, 2015Microsoft Technology Licensing, LlcChaining animations
US8988508Sep 24, 2010Mar 24, 2015Microsoft Technology Licensing, Llc.Wide angle field of view active illumination imaging system
US8994718Dec 21, 2010Mar 31, 2015Microsoft Technology Licensing, LlcSkeletal control of three-dimensional virtual world
US9001118Aug 14, 2012Apr 7, 2015Microsoft Technology Licensing, LlcAvatar construction using depth camera
US9007417Jul 18, 2012Apr 14, 2015Microsoft Technology Licensing, LlcBody scan
US9008355Jun 4, 2010Apr 14, 2015Microsoft Technology Licensing, LlcAutomatic depth camera aiming
US9013489Nov 16, 2011Apr 21, 2015Microsoft Technology Licensing, LlcGeneration of avatar reflecting player appearance
US9015638May 1, 2009Apr 21, 2015Microsoft Technology Licensing, LlcBinding users to a gesture based system and providing feedback to the users
US9019201Jan 8, 2010Apr 28, 2015Microsoft Technology Licensing, LlcEvolving universal gesture sets
US9031103Nov 5, 2013May 12, 2015Microsoft Technology Licensing, LlcTemperature measurement and control for laser and light-emitting diodes
US9039528Dec 1, 2011May 26, 2015Microsoft Technology Licensing, LlcVisual target tracking
US9052382Oct 18, 2013Jun 9, 2015Microsoft Technology Licensing, LlcSystem architecture design for time-of-flight system having reduced differential pixel size, and time-of-flight systems so designed
US9052746Feb 15, 2013Jun 9, 2015Microsoft Technology Licensing, LlcUser center-of-mass and mass distribution extraction using depth images
US9054764Jul 20, 2011Jun 9, 2015Microsoft Technology Licensing, LlcSensor array beamformer post-processor
US9056254Oct 6, 2014Jun 16, 2015Microsoft Technology Licensing, LlcTime-of-flight camera with guided light
US9063001Nov 2, 2012Jun 23, 2015Microsoft Technology Licensing, LlcOptical fault monitoring
US9067136Mar 10, 2011Jun 30, 2015Microsoft Technology Licensing, LlcPush personalization of interface controls
US9069381Mar 2, 2012Jun 30, 2015Microsoft Technology Licensing, LlcInteracting with a computer based application
US9075434Aug 20, 2010Jul 7, 2015Microsoft Technology Licensing, LlcTranslating user motion into multiple object responses
US9092657Mar 13, 2013Jul 28, 2015Microsoft Technology Licensing, LlcDepth image processing
US9098110Aug 18, 2011Aug 4, 2015Microsoft Technology Licensing, LlcHead rotation tracking from depth-based center of mass
US9098493Apr 24, 2014Aug 4, 2015Microsoft Technology Licensing, LlcMachine based sign language interpreter
US9098873Apr 1, 2010Aug 4, 2015Microsoft Technology Licensing, LlcMotion-based interactive shopping environment
US9100685Dec 9, 2011Aug 4, 2015Microsoft Technology Licensing, LlcDetermining audience state or interest using passive sensor data
US9117281Nov 2, 2011Aug 25, 2015Microsoft CorporationSurface segmentation from RGB and depth images
US9123316Dec 27, 2010Sep 1, 2015Microsoft Technology Licensing, LlcInteractive content creation
US9135516Mar 8, 2013Sep 15, 2015Microsoft Technology Licensing, LlcUser body angle, curvature and average extremity positions extraction using depth images
US9137463May 12, 2011Sep 15, 2015Microsoft Technology Licensing, LlcAdaptive high dynamic range camera
US9141193Aug 31, 2009Sep 22, 2015Microsoft Technology Licensing, LlcTechniques for using human gestures to control gesture unaware programs
US9147253Jun 19, 2012Sep 29, 2015Microsoft Technology Licensing, LlcRaster scanning for depth detection
US9154837Dec 16, 2013Oct 6, 2015Microsoft Technology Licensing, LlcUser interface presenting an animated avatar performing a media reaction
US9159151Jul 13, 2009Oct 13, 2015Microsoft Technology Licensing, LlcBringing a visual representation to life via learned input from the user
US9171264Dec 15, 2010Oct 27, 2015Microsoft Technology Licensing, LlcParallel processing machine learning decision tree training
US9182814Jun 26, 2009Nov 10, 2015Microsoft Technology Licensing, LlcSystems and methods for estimating a non-visible or occluded body part
US9191570Aug 5, 2013Nov 17, 2015Microsoft Technology Licensing, LlcSystems and methods for detecting a tilt angle from a depth image
US9195305Nov 8, 2012Nov 24, 2015Microsoft Technology Licensing, LlcRecognizing user intent in motion capture system
US9208571Mar 2, 2012Dec 8, 2015Microsoft Technology Licensing, LlcObject digitization
US9210401May 3, 2012Dec 8, 2015Microsoft Technology Licensing, LlcProjected visual cues for guiding physical movement
US9215478Nov 27, 2013Dec 15, 2015Microsoft Technology Licensing, LlcProtocol and format for communicating an image from a camera to a computing environment
US9242171Feb 23, 2013Jan 26, 2016Microsoft Technology Licensing, LlcReal-time camera tracking using depth maps
US9244533Dec 17, 2009Jan 26, 2016Microsoft Technology Licensing, LlcCamera navigation for presentations
US9247238Jan 31, 2011Jan 26, 2016Microsoft Technology Licensing, LlcReducing interference between multiple infra-red depth cameras
US9251590Jan 24, 2013Feb 2, 2016Microsoft Technology Licensing, LlcCamera pose estimation for 3D reconstruction
US9256282Mar 20, 2009Feb 9, 2016Microsoft Technology Licensing, LlcVirtual object manipulation
US9259643Sep 20, 2011Feb 16, 2016Microsoft Technology Licensing, LlcControl of separate computer game elements
US9262673May 24, 2013Feb 16, 2016Microsoft Technology Licensing, LlcHuman body pose estimation
US9264807Jan 23, 2013Feb 16, 2016Microsoft Technology Licensing, LlcMultichannel acoustic echo reduction
US9268404Jan 8, 2010Feb 23, 2016Microsoft Technology Licensing, LlcApplication gesture interpretation
US9274606Mar 14, 2013Mar 1, 2016Microsoft Technology Licensing, LlcNUI video conference controls
US9274747Feb 19, 2013Mar 1, 2016Microsoft Technology Licensing, LlcNatural user input for driving interactive stories
US9278287Oct 20, 2014Mar 8, 2016Microsoft Technology Licensing, LlcVisual based identity tracking
US9280203Aug 2, 2011Mar 8, 2016Microsoft Technology Licensing, LlcGesture recognizer system architecture
US9291449Nov 25, 2013Mar 22, 2016Microsoft Technology Licensing, LlcDetection of configuration changes among optical elements of illumination system
US9292083May 29, 2014Mar 22, 2016Microsoft Technology Licensing, LlcInteracting with user interface via avatar
US9298263Oct 27, 2010Mar 29, 2016Microsoft Technology Licensing, LlcShow body position
US9298287Mar 31, 2011Mar 29, 2016Microsoft Technology Licensing, LlcCombined activation for natural user interface systems
US9311560Aug 12, 2015Apr 12, 2016Microsoft Technology Licensing, LlcExtraction of user behavior from depth images
US9313376Apr 1, 2009Apr 12, 2016Microsoft Technology Licensing, LlcDynamic depth power equalization
US9342139Dec 19, 2011May 17, 2016Microsoft Technology Licensing, LlcPairing a computing device to a user
US9349040Nov 19, 2010May 24, 2016Microsoft Technology Licensing, LlcBi-modal depth-image analysis
US9372544May 16, 2014Jun 21, 2016Microsoft Technology Licensing, LlcGesture recognition techniques
US9377857May 1, 2009Jun 28, 2016Microsoft Technology Licensing, LlcShow body position
US9383823May 29, 2009Jul 5, 2016Microsoft Technology Licensing, LlcCombining gestures beyond skeletal
US9384329Jun 11, 2010Jul 5, 2016Microsoft Technology Licensing, LlcCaloric burn determination from body movement
US9400548Oct 19, 2009Jul 26, 2016Microsoft Technology Licensing, LlcGesture personalization and profile roaming
US9400559May 29, 2009Jul 26, 2016Microsoft Technology Licensing, LlcGesture shortcuts
US9442186Oct 16, 2013Sep 13, 2016Microsoft Technology Licensing, LlcInterference reduction for TOF systems
US9443310Oct 9, 2013Sep 13, 2016Microsoft Technology Licensing, LlcIllumination modules that emit structured light
US20080204410 *May 6, 2008Aug 28, 2008Microsoft CorporationRecognizing a motion of a pointing device
US20080204411 *May 7, 2008Aug 28, 2008Microsoft CorporationRecognizing a movement of a pointing device
US20080259055 *Apr 16, 2008Oct 23, 2008Microsoft CorporationManipulating An Object Utilizing A Pointing Device
US20090198354 *Feb 26, 2009Aug 6, 2009Microsoft CorporationControlling objects via gesturing
US20100146464 *Feb 12, 2010Jun 10, 2010Microsoft CorporationArchitecture For Controlling A Computer Using Hand Gestures
US20100199229 *Aug 5, 2010Microsoft CorporationMapping a natural input device to a legacy system
US20100241998 *Mar 20, 2009Sep 23, 2010Microsoft CorporationVirtual object manipulation
US20100302247 *May 29, 2009Dec 2, 2010Microsoft CorporationTarget digitization, extraction, and tracking
US20100302365 *Dec 2, 2010Microsoft CorporationDepth Image Noise Reduction
US20110032336 *Feb 10, 2011Microsoft CorporationBody scan
US20110075921 *Mar 31, 2011Microsoft CorporationImage Selection Techniques
US20110081044 *Oct 7, 2009Apr 7, 2011Microsoft CorporationSystems And Methods For Removing A Background Of An Image
US20110119640 *Nov 19, 2009May 19, 2011Microsoft CorporationDistance scalable no touch computing
US20110199302 *Feb 16, 2010Aug 18, 2011Microsoft CorporationCapturing screen objects using a collision volume
US20110210915 *Sep 1, 2011Microsoft CorporationHuman Body Pose Estimation
US20110216965 *Sep 8, 2011Microsoft CorporationImage Segmentation Using Reduced Foreground Training Data
US20110234490 *Sep 29, 2011Microsoft CorporationPredictive Determination
Classifications
U.S. Classification382/173, 382/282, 382/201, 382/293
International ClassificationG06K9/46, G06K9/34, G06K9/20, G06K9/32, G06K9/00, G06T5/00
Cooperative ClassificationG06K9/00369, G06T7/0083, G06T2207/20144, G06T2207/20164
European ClassificationG06T7/00S2, G06K9/00H1
Legal Events
DateCodeEventDescription
Nov 18, 2011ASAssignment
Owner name: ELET SYSTEMS L.L.C., DELAWARE
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ELECTRIC PLANET INTERACTIVE;REEL/FRAME:027259/0107
Effective date: 20071211
Dec 21, 2011ASAssignment
Owner name: ELECTRIC PLANET INTERACTIVE, WASHINGTON
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:EDWARDS, JEFFREY L.;REEL/FRAME:027429/0919
Effective date: 20080310
Feb 15, 2012ASAssignment
Owner name: IV GESTURE ASSETS 12, LLC, DELAWARE
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ELET SYSTEMS L.L.C.;REEL/FRAME:027710/0132
Effective date: 20111222
Apr 9, 2012ASAssignment
Owner name: MICROSOFT CORPORATION, WASHINGTON
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:IV GESTURE ASSETS 12, LLC;REEL/FRAME:028012/0370
Effective date: 20120216
Aug 22, 2014REMIMaintenance fee reminder mailed
Dec 9, 2014ASAssignment
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034564/0001
Effective date: 20141014
Jan 9, 2015LAPSLapse for failure to pay maintenance fees