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.

Patent
   RE42256
Priority
Oct 15 1997
Filed
Jan 09 2009
Issued
Mar 29 2011
Expiry
Oct 15 2018
Assg.orig
Entity
Large
335
15
EXPIRED
0. 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.
0. 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.
0. 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.
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.
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.
0. 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.
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.
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.
0. 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.
0. 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.
0. 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.
0. 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.
0. 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.
0. 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.
0. 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.
0. 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.
0. 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.
0. 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.
0. 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.
0. 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.
0. 42. The non-transitory computer-readable storage medium recited in claim 29, wherein processing the edges includes filtering the edges.
0. 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.
0. 45. The method of claim 43, wherein locating boundary points includes scanning the image in directions dependent upon the orientation of the line segments.
0. 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.
0. 47. The method of claim 43, wherein locating the key points includes using a general search area.
0. 48. The method of claim 43, wherein locating the key points includes using a general search area and a Summed Area Table.
0. 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.
0. 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.
0. 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.
0. 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.
0. 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.
0. 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.
0. 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.
0. 56. The method of claim 43, further comprising filtering the edges.
0. 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.
0. 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.

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.

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.

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.

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.

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.

Edwards, Jeffrey L.

Patent Priority Assignee Title
10024968, Sep 23 2013 Microsoft Technology Licensing, LLC Optical modules that reduce speckle contrast and diffraction artifacts
10048763, Nov 19 2009 Microsoft Technology Licensing, LLC Distance scalable no touch computing
10049458, Jan 31 2011 Microsoft Technology Licensing, LLC Reducing interference between multiple infra-red depth cameras
10085072, Sep 23 2009 Rovi Guides, Inc. Systems and methods for automatically detecting users within detection regions of media devices
10089454, Jun 22 2012 Microsoft Technology Licensing, LLC Enhanced accuracy of user presence status determination
10113868, Feb 01 2010 Microsoft Technology Licensing, LLC Multiple synchronized optical sources for time-of-flight range finding systems
10205931, Nov 12 2013 Microsoft Technology Licensing, LLC Power efficient laser diode driver circuit and method
10210382, May 01 2009 Microsoft Technology Licensing, LLC Human body pose estimation
10234545, Dec 01 2010 Microsoft Technology Licensing, LLC Light source module
10257932, Feb 16 2016 Microsoft Technology Licensing LLC Laser diode chip on printed circuit board
10325628, Nov 21 2013 Microsoft Technology Licensing, LLC Audio-visual project generator
10331222, May 31 2011 Microsoft Technology Licensing, LLC Gesture recognition techniques
10331228, Feb 07 2002 Microsoft Technology Licensing, LLC System and method for determining 3D orientation of a pointing device
10398972, Jan 08 2010 Microsoft Technology Licensing, LLC Assigning gesture dictionaries
10412280, Feb 10 2016 Microsoft Technology Licensing, LLC Camera with light valve over sensor array
10462452, Mar 16 2016 Microsoft Technology Licensing, LLC Synchronizing active illumination cameras
10488950, Feb 07 2002 Microsoft Technology Licensing, LLC Manipulating an object utilizing a pointing device
10534438, Jun 18 2010 Microsoft Technology Licensing, LLC Compound gesture-speech commands
10551930, Mar 25 2003 Microsoft Technology Licensing, LLC System and method for executing a process using accelerometer signals
10631066, Sep 23 2009 Rovi Guides, Inc. Systems and method for automatically detecting users within detection regions of media devices
10671841, May 02 2011 Microsoft Technology Licensing, LLC Attribute state classification
10691216, May 29 2009 Microsoft Technology Licensing, LLC Combining gestures beyond skeletal
10726861, Nov 15 2010 Microsoft Technology Licensing, LLC Semi-private communication in open environments
10796494, Jun 06 2011 Microsoft Technology Licensing, LLC Adding attributes to virtual representations of real-world objects
10798438, Dec 09 2011 Microsoft Technology Licensing, LLC Determining audience state or interest using passive sensor data
11215711, Dec 28 2012 Microsoft Technology Licensing, LLC Using photometric stereo for 3D environment modeling
11710309, Feb 22 2013 Microsoft Technology Licensing, LLC Camera/object pose from predicted coordinates
8213680, Mar 19 2010 Microsoft Technology Licensing, LLC Proxy training data for human body tracking
8253746, May 01 2009 Microsoft Technology Licensing, LLC Determine intended motions
8264536, Aug 25 2009 Microsoft Technology Licensing, LLC Depth-sensitive imaging via polarization-state mapping
8265341, Jan 25 2010 Microsoft Technology Licensing, LLC Voice-body identity correlation
8267781, Jan 30 2009 Microsoft Technology Licensing, LLC Visual target tracking
8279418, Mar 17 2010 Microsoft Technology Licensing, LLC Raster scanning for depth detection
8284847, May 03 2010 Microsoft Technology Licensing, LLC Detecting motion for a multifunction sensor device
8294767, Jan 30 2009 Microsoft Technology Licensing, LLC Body scan
8295546, Jan 30 2009 Microsoft Technology Licensing, LLC Pose tracking pipeline
8296151, Jun 18 2010 Microsoft Technology Licensing, LLC Compound gesture-speech commands
8320619, May 29 2009 Microsoft Technology Licensing, LLC Systems and methods for tracking a model
8320621, Dec 21 2009 Microsoft Technology Licensing, LLC Depth projector system with integrated VCSEL array
8325909, Jun 25 2008 Microsoft Technology Licensing, LLC Acoustic echo suppression
8325984, Oct 07 2009 Microsoft Technology Licensing, LLC Systems and methods for tracking a model
8330134, Sep 14 2009 Microsoft Technology Licensing, LLC Optical fault monitoring
8330822, Jun 09 2010 Microsoft Technology Licensing, LLC Thermally-tuned depth camera light source
8340432, May 01 2009 Microsoft Technology Licensing, LLC Systems and methods for detecting a tilt angle from a depth image
8351651, Apr 26 2010 Microsoft Technology Licensing, LLC Hand-location post-process refinement in a tracking system
8351652, May 29 2009 Microsoft Technology Licensing, LLC Systems and methods for tracking a model
8363212, Jun 30 2008 Microsoft Technology Licensing, LLC System architecture design for time-of-flight system having reduced differential pixel size, and time-of-flight systems so designed
8374423, Dec 18 2009 Microsoft Technology Licensing, LLC Motion detection using depth images
8379101, May 29 2009 Microsoft Technology Licensing, LLC Environment and/or target segmentation
8379919, Apr 29 2010 Microsoft Technology Licensing, LLC Multiple centroid condensation of probability distribution clouds
8381108, Jun 21 2010 Microsoft Technology Licensing, LLC Natural user input for driving interactive stories
8385557, Jun 19 2008 Microsoft Technology Licensing, LLC Multichannel acoustic echo reduction
8385596, Dec 21 2010 Microsoft Technology Licensing, LLC First person shooter control with virtual skeleton
8390680, Jul 09 2009 Microsoft Technology Licensing, LLC Visual representation expression based on player expression
8401225, Jan 31 2011 Microsoft Technology Licensing, LLC Moving object segmentation using depth images
8401242, Jan 31 2011 Microsoft Technology Licensing, LLC Real-time camera tracking using depth maps
8408706, Dec 13 2010 Microsoft Technology Licensing, LLC 3D gaze tracker
8411948, Mar 05 2010 Microsoft Technology Licensing, LLC Up-sampling binary images for segmentation
8416187, Jun 22 2010 Microsoft Technology Licensing, LLC Item navigation using motion-capture data
8418085, May 29 2009 Microsoft Technology Licensing, LLC Gesture coach
8422769, Mar 05 2010 Microsoft Technology Licensing, LLC Image segmentation using reduced foreground training data
8428340, Sep 21 2009 Microsoft Technology Licensing, LLC Screen space plane identification
8437506, Sep 07 2010 Microsoft Technology Licensing, LLC System for fast, probabilistic skeletal tracking
8448056, Dec 17 2010 Microsoft Technology Licensing, LLC Validation analysis of human target
8448094, Jan 30 2009 Microsoft Technology Licensing, LLC Mapping a natural input device to a legacy system
8451278, May 01 2009 Microsoft Technology Licensing, LLC Determine intended motions
8452051, Apr 26 2010 Microsoft Technology Licensing, LLC Hand-location post-process refinement in a tracking system
8452087, Sep 30 2009 Microsoft Technology Licensing, LLC Image selection techniques
8456419, Feb 07 2002 Microsoft Technology Licensing, LLC Determining a position of a pointing device
8457353, May 18 2010 Microsoft Technology Licensing, LLC Gestures and gesture modifiers for manipulating a user-interface
8467574, Jan 30 2009 Microsoft Technology Licensing, LLC Body scan
8483436, Oct 07 2009 Microsoft Technology Licensing, LLC Systems and methods for tracking a model
8487871, Jun 01 2009 Microsoft Technology Licensing, LLC Virtual desktop coordinate transformation
8487938, Jan 30 2009 Microsoft Technology Licensing, LLC Standard Gestures
8488888, Dec 28 2010 Microsoft Technology Licensing, LLC Classification of posture states
8497838, Feb 16 2011 Microsoft Technology Licensing, LLC Push actuation of interface controls
8498481, May 07 2010 Microsoft Technology Licensing, LLC Image segmentation using star-convexity constraints
8499257, Feb 09 2010 Microsoft Technology Licensing, LLC Handles interactions for human—computer interface
8503494, Apr 05 2011 Microsoft Technology Licensing, LLC Thermal management system
8503766, May 01 2009 Microsoft Technology Licensing, LLC Systems and methods for detecting a tilt angle from a depth image
8508919, Sep 14 2009 Microsoft Technology Licensing, LLC Separation of electrical and optical components
8509479, May 29 2009 Microsoft Technology Licensing, LLC Virtual object
8509545, Nov 29 2011 Microsoft Technology Licensing, LLC Foreground subject detection
8514269, Mar 26 2010 Microsoft Technology Licensing, LLC De-aliasing depth images
8523667, Mar 29 2010 Microsoft Technology Licensing, LLC Parental control settings based on body dimensions
8526734, Jun 01 2011 Microsoft Technology Licensing, LLC Three-dimensional background removal for vision system
8542252, May 29 2009 Microsoft Technology Licensing, LLC Target digitization, extraction, and tracking
8542910, Oct 07 2009 Microsoft Technology Licensing, LLC Human tracking system
8548270, Oct 04 2010 Microsoft Technology Licensing, LLC Time-of-flight depth imaging
8553934, Dec 08 2010 Microsoft Technology Licensing, LLC Orienting the position of a sensor
8553939, Jan 30 2009 Microsoft Technology Licensing, LLC Pose tracking pipeline
8558873, Jun 16 2010 Microsoft Technology Licensing, LLC Use of wavefront coding to create a depth image
8564534, Oct 07 2009 Microsoft Technology Licensing, LLC Human tracking system
8565476, Jan 30 2009 Microsoft Technology Licensing, LLC Visual target tracking
8565477, Jan 30 2009 Microsoft Technology Licensing, LLC Visual target tracking
8565485, Jan 30 2009 Microsoft Technology Licensing, LLC Pose tracking pipeline
8571263, Mar 17 2011 Microsoft Technology Licensing, LLC Predicting joint positions
8577084, Jan 30 2009 Microsoft Technology Licensing, LLC Visual target tracking
8577085, Jan 30 2009 Microsoft Technology Licensing, LLC Visual target tracking
8578302, Jan 30 2009 Microsoft Technology Licensing, LLC Predictive determination
8587583, Jan 31 2011 Microsoft Technology Licensing, LLC Three-dimensional environment reconstruction
8587773, Jun 30 2008 Microsoft Technology Licensing, LLC System architecture design for time-of-flight system having reduced differential pixel size, and time-of-flight systems so designed
8588465, Jan 30 2009 Microsoft Technology Licensing, LLC Visual target tracking
8588517, Dec 18 2009 Microsoft Technology Licensing, LLC Motion detection using depth images
8592739, Nov 02 2010 Microsoft Technology Licensing, LLC Detection of configuration changes of an optical element in an illumination system
8597142, Jun 06 2011 Microsoft Technology Licensing, LLC Dynamic camera based practice mode
8605763, Mar 31 2010 Microsoft Technology Licensing, LLC Temperature measurement and control for laser and light-emitting diodes
8610665, Jan 30 2009 Microsoft Technology Licensing, LLC Pose tracking pipeline
8611607, Apr 29 2010 Microsoft Technology Licensing, LLC Multiple centroid condensation of probability distribution clouds
8613666, Aug 31 2010 Microsoft Technology Licensing, LLC User selection and navigation based on looped motions
8618405, Dec 09 2010 Microsoft Technology Licensing, LLC Free-space gesture musical instrument digital interface (MIDI) controller
8619122, Feb 02 2010 Microsoft Technology Licensing, LLC Depth camera compatibility
8620113, Apr 25 2011 Microsoft Technology Licensing, LLC Laser diode modes
8625837, May 29 2009 Microsoft Technology Licensing, LLC Protocol and format for communicating an image from a camera to a computing environment
8629976, Oct 02 2007 Microsoft Technology Licensing, LLC Methods and systems for hierarchical de-aliasing time-of-flight (TOF) systems
8630457, Dec 15 2011 Microsoft Technology Licensing, LLC Problem states for pose tracking pipeline
8631355, Jan 08 2010 Microsoft Technology Licensing, LLC Assigning gesture dictionaries
8633890, Feb 16 2010 Microsoft Technology Licensing, LLC Gesture detection based on joint skipping
8634636, Oct 07 2009 Microsoft Corporation Systems and methods for removing a background of an image
8635637, Dec 02 2011 ZHIGU HOLDINGS LIMITED User interface presenting an animated avatar performing a media reaction
8638985, May 01 2009 Microsoft Technology Licensing, LLC Human body pose estimation
8644609, Mar 05 2010 Microsoft Technology Licensing, LLC Up-sampling binary images for segmentation
8649554, May 01 2009 Microsoft Technology Licensing, LLC Method to control perspective for a camera-controlled computer
8655069, Mar 05 2010 Microsoft Technology Licensing, LLC Updating image segmentation following user input
8659658, Feb 09 2010 Microsoft Technology Licensing, LLC Physical interaction zone for gesture-based user interfaces
8660303, May 01 2009 Microsoft Technology Licensing, LLC Detection of body and props
8660310, May 29 2009 Microsoft Technology Licensing, LLC Systems and methods for tracking a model
8667519, Nov 12 2010 Microsoft Technology Licensing, LLC Automatic passive and anonymous feedback system
8670029, Jun 16 2010 Microsoft Technology Licensing, LLC Depth camera illuminator with superluminescent light-emitting diode
8675981, Jun 11 2010 Microsoft Technology Licensing, LLC Multi-modal gender recognition including depth data
8676581, Jan 22 2010 Microsoft Technology Licensing, LLC Speech recognition analysis via identification information
8681255, Sep 28 2010 Microsoft Technology Licensing, LLC Integrated low power depth camera and projection device
8681321, Jan 04 2009 Microsoft Technology Licensing, LLC; Microsoft Corporation Gated 3D camera
8682028, Jan 30 2009 Microsoft Technology Licensing, LLC Visual target tracking
8687044, Feb 02 2010 Microsoft Technology Licensing, LLC Depth camera compatibility
8693724, May 29 2009 Microsoft Technology Licensing, LLC Method and system implementing user-centric gesture control
8702507, Apr 28 2011 Microsoft Technology Licensing, LLC Manual and camera-based avatar control
8707216, Feb 07 2002 Microsoft Technology Licensing, LLC Controlling objects via gesturing
8717469, Feb 03 2010 Microsoft Technology Licensing, LLC Fast gating photosurface
8723118, Oct 01 2009 Microsoft Technology Licensing, LLC Imager for constructing color and depth images
8724887, Feb 03 2011 Microsoft Technology Licensing, LLC Environmental modifications to mitigate environmental factors
8724906, Nov 18 2011 Microsoft Technology Licensing, LLC Computing pose and/or shape of modifiable entities
8744121, May 29 2009 Microsoft Technology Licensing, LLC Device for identifying and tracking multiple humans over time
8745541, Mar 25 2003 Microsoft Technology Licensing, LLC Architecture for controlling a computer using hand gestures
8749557, Jun 11 2010 Microsoft Technology Licensing, LLC Interacting with user interface via avatar
8751215, Jun 04 2010 Microsoft Technology Licensing, LLC Machine based sign language interpreter
8760395, May 31 2011 Microsoft Technology Licensing, LLC Gesture recognition techniques
8760571, Sep 21 2009 Microsoft Technology Licensing, LLC Alignment of lens and image sensor
8762894, May 01 2009 Microsoft Technology Licensing, LLC Managing virtual ports
8773355, Mar 16 2009 Microsoft Technology Licensing, LLC Adaptive cursor sizing
8775916, Dec 17 2010 Microsoft Technology Licensing, LLC Validation analysis of human target
8781156, Jan 25 2010 Microsoft Technology Licensing, LLC Voice-body identity correlation
8782567, Jan 30 2009 Microsoft Technology Licensing, LLC Gesture recognizer system architecture
8786730, Aug 18 2011 Microsoft Technology Licensing, LLC Image exposure using exclusion regions
8787658, Mar 05 2010 Microsoft Technology Licensing, LLC Image segmentation using reduced foreground training data
8788973, May 23 2011 Microsoft Technology Licensing, LLC Three-dimensional gesture controlled avatar configuration interface
8803800, Dec 02 2011 Microsoft Technology Licensing, LLC User interface control based on head orientation
8803888, Jun 02 2010 Microsoft Technology Licensing, LLC Recognition system for sharing information
8803952, Dec 20 2010 Microsoft Technology Licensing, LLC Plural detector time-of-flight depth mapping
8811938, Dec 16 2011 Microsoft Technology Licensing, LLC Providing a user interface experience based on inferred vehicle state
8818002, Mar 22 2007 Microsoft Technology Licensing, LLC Robust adaptive beamforming with enhanced noise suppression
8824749, Apr 05 2011 Microsoft Technology Licensing, LLC Biometric recognition
8824780, Oct 07 2009 Microsoft Corporation Human tracking system
8843857, Nov 19 2009 Microsoft Technology Licensing, LLC Distance scalable no touch computing
8854426, Nov 07 2011 Microsoft Technology Licensing, LLC Time-of-flight camera with guided light
8856691, May 29 2009 Microsoft Technology Licensing, LLC Gesture tool
8860663, Jan 30 2009 Microsoft Technology Licensing, LLC Pose tracking pipeline
8861839, Oct 07 2009 Microsoft Technology Licensing, LLC Human tracking system
8864581, Jan 29 2010 Microsoft Technology Licensing, LLC Visual based identitiy tracking
8866889, Nov 03 2010 Microsoft Technology Licensing, LLC In-home depth camera calibration
8867820, Oct 07 2009 Microsoft Technology Licensing, LLC Systems and methods for removing a background of an image
8869072, Jan 30 2009 Microsoft Technology Licensing, LLC Gesture recognizer system architecture
8879831, Dec 15 2011 Microsoft Technology Licensing, LLC Using high-level attributes to guide image processing
8882310, Dec 10 2012 Microsoft Technology Licensing, LLC Laser die light source module with low inductance
8884968, Dec 15 2010 Microsoft Technology Licensing, LLC Modeling an object from image data
8885890, May 07 2010 Microsoft Technology Licensing, LLC Depth map confidence filtering
8888331, May 09 2011 Microsoft Technology Licensing, LLC Low inductance light source module
8891067, Feb 01 2010 Microsoft Technology Licensing, LLC Multiple synchronized optical sources for time-of-flight range finding systems
8891827, Oct 07 2009 Microsoft Technology Licensing, LLC Systems and methods for tracking a model
8892495, Feb 01 1999 Blanding Hovenweep, LLC; HOFFBERG FAMILY TRUST 1 Adaptive pattern recognition based controller apparatus and method and human-interface therefore
8896721, May 29 2009 Microsoft Technology Licensing, LLC Environment and/or target segmentation
8897491, Jun 06 2011 Microsoft Technology Licensing, LLC System for finger recognition and tracking
8897493, Jan 30 2009 Microsoft Technology Licensing, LLC Body scan
8897495, Oct 07 2009 Microsoft Technology Licensing, LLC Systems and methods for tracking a model
8898687, Apr 04 2012 Microsoft Technology Licensing, LLC Controlling a media program based on a media reaction
8908091, Sep 21 2009 Microsoft Technology Licensing, LLC Alignment of lens and image sensor
8917240, Jun 01 2009 Microsoft Technology Licensing, LLC Virtual desktop coordinate transformation
8920241, Dec 15 2010 Microsoft Technology Licensing, LLC Gesture controlled persistent handles for interface guides
8926431, Jan 29 2010 Microsoft Technology Licensing, LLC Visual based identity tracking
8928579, Feb 22 2010 Microsoft Technology Licensing, LLC Interacting with an omni-directionally projected display
8929612, Jun 06 2011 Microsoft Technology Licensing, LLC System for recognizing an open or closed hand
8929668, Nov 29 2011 Microsoft Technology Licensing, LLC Foreground subject detection
8933884, Jan 15 2010 Microsoft Technology Licensing, LLC Tracking groups of users in motion capture system
8942428, May 01 2009 Microsoft Technology Licensing, LLC Isolate extraneous motions
8942917, Feb 14 2011 Microsoft Technology Licensing, LLC Change invariant scene recognition by an agent
8953844, Sep 07 2010 Microsoft Technology Licensing, LLC System for fast, probabilistic skeletal tracking
8959541, May 04 2012 Microsoft Technology Licensing, LLC Determining a future portion of a currently presented media program
8963829, Oct 07 2009 Microsoft Technology Licensing, LLC Methods and systems for determining and tracking extremities of a target
8968091, Sep 07 2010 Microsoft Technology Licensing, LLC Scalable real-time motion recognition
8970487, Oct 07 2009 Microsoft Technology Licensing, LLC Human tracking system
8971612, Dec 15 2011 Microsoft Technology Licensing, LLC Learning image processing tasks from scene reconstructions
8976986, Sep 21 2009 Microsoft Technology Licensing, LLC Volume adjustment based on listener position
8982151, Jun 14 2010 Microsoft Technology Licensing, LLC Independently processing planes of display data
8983233, Oct 04 2010 Microsoft Technology Licensing, LLC Time-of-flight depth imaging
8988432, Nov 05 2009 Microsoft Technology Licensing, LLC Systems and methods for processing an image for target tracking
8988437, Mar 20 2009 Microsoft Technology Licensing, LLC Chaining animations
8988508, Sep 24 2010 Microsoft Technology Licensing, LLC Wide angle field of view active illumination imaging system
8994718, Dec 21 2010 Microsoft Technology Licensing, LLC Skeletal control of three-dimensional virtual world
9001118, Jun 21 2012 Microsoft Technology Licensing, LLC Avatar construction using depth camera
9007417, Jan 30 2009 Microsoft Technology Licensing, LLC Body scan
9008355, Jun 04 2010 Microsoft Technology Licensing, LLC Automatic depth camera aiming
9013489, Jun 06 2011 Microsoft Technology Licensing, LLC Generation of avatar reflecting player appearance
9015638, May 01 2009 Microsoft Technology Licensing, LLC Binding users to a gesture based system and providing feedback to the users
9019201, Jan 08 2010 Microsoft Technology Licensing, LLC Evolving universal gesture sets
9031103, Mar 31 2010 Microsoft Technology Licensing, LLC Temperature measurement and control for laser and light-emitting diodes
9039528, Jan 30 2009 Microsoft Technology Licensing, LLC Visual target tracking
9052382, Jun 30 2008 Microsoft Technology Licensing, LLC System architecture design for time-of-flight system having reduced differential pixel size, and time-of-flight systems so designed
9052746, Feb 15 2013 Microsoft Technology Licensing, LLC User center-of-mass and mass distribution extraction using depth images
9054764, May 17 2007 Microsoft Technology Licensing, LLC Sensor array beamformer post-processor
9056254, Nov 07 2011 Microsoft Technology Licensing, LLC Time-of-flight camera with guided light
9063001, Sep 14 2009 Microsoft Technology Licensing, LLC Optical fault monitoring
9067136, Mar 10 2011 Microsoft Technology Licensing, LLC Push personalization of interface controls
9069381, Mar 12 2010 Microsoft Technology Licensing, LLC Interacting with a computer based application
9075434, Aug 20 2010 Microsoft Technology Licensing, LLC Translating user motion into multiple object responses
9092657, Mar 13 2013 Microsoft Technology Licensing, LLC Depth image processing
9098110, Jun 06 2011 Microsoft Technology Licensing, LLC Head rotation tracking from depth-based center of mass
9098493, Jun 04 2010 Microsoft Technology Licensing, LLC Machine based sign language interpreter
9098873, Apr 01 2010 Microsoft Technology Licensing, LLC Motion-based interactive shopping environment
9100685, Dec 09 2011 Microsoft Technology Licensing, LLC Determining audience state or interest using passive sensor data
9117281, Nov 02 2011 Microsoft Technology Licensing, LLC Surface segmentation from RGB and depth images
9123316, Dec 27 2010 Microsoft Technology Licensing, LLC Interactive content creation
9135516, Mar 08 2013 Microsoft Technology Licensing, LLC User body angle, curvature and average extremity positions extraction using depth images
9137463, May 12 2011 Microsoft Technology Licensing, LLC Adaptive high dynamic range camera
9141193, Aug 31 2009 Microsoft Technology Licensing, LLC Techniques for using human gestures to control gesture unaware programs
9147253, Mar 17 2010 Microsoft Technology Licensing, LLC Raster scanning for depth detection
9154837, Dec 02 2011 ZHIGU HOLDINGS LIMITED User interface presenting an animated avatar performing a media reaction
9159151, Jul 13 2009 Microsoft Technology Licensing, LLC Bringing a visual representation to life via learned input from the user
9171264, Dec 15 2010 Microsoft Technology Licensing, LLC Parallel processing machine learning decision tree training
9182814, May 29 2009 Microsoft Technology Licensing, LLC Systems and methods for estimating a non-visible or occluded body part
9191570, May 01 2009 Microsoft Technology Licensing, LLC Systems and methods for detecting a tilt angle from a depth image
9195305, Jan 15 2010 Microsoft Technology Licensing, LLC Recognizing user intent in motion capture system
9208571, Jun 06 2011 Microsoft Technology Licensing, LLC Object digitization
9210401, May 03 2012 Microsoft Technology Licensing, LLC Projected visual cues for guiding physical movement
9215478, May 29 2009 Microsoft Technology Licensing, LLC Protocol and format for communicating an image from a camera to a computing environment
9242171, Jan 31 2011 Microsoft Technology Licensing, LLC Real-time camera tracking using depth maps
9244533, Dec 17 2009 Microsoft Technology Licensing, LLC Camera navigation for presentations
9247238, Jan 31 2011 Microsoft Technology Licensing, LLC Reducing interference between multiple infra-red depth cameras
9251590, Jan 24 2013 Microsoft Technology Licensing, LLC Camera pose estimation for 3D reconstruction
9256282, Mar 20 2009 Microsoft Technology Licensing, LLC Virtual object manipulation
9259643, Apr 28 2011 Microsoft Technology Licensing, LLC Control of separate computer game elements
9262673, May 01 2009 Microsoft Technology Licensing, LLC Human body pose estimation
9264807, Jun 19 2008 Microsoft Technology Licensing, LLC Multichannel acoustic echo reduction
9268404, Jan 08 2010 Microsoft Technology Licensing, LLC Application gesture interpretation
9274606, Mar 14 2013 Microsoft Technology Licensing, LLC NUI video conference controls
9274747, Jun 21 2010 Microsoft Technology Licensing, LLC Natural user input for driving interactive stories
9278287, Jan 29 2010 Microsoft Technology Licensing, LLC Visual based identity tracking
9280203, Jan 30 2009 Microsoft Technology Licensing, LLC Gesture recognizer system architecture
9291449, Nov 02 2010 Microsoft Technology Licensing, LLC Detection of configuration changes among optical elements of illumination system
9292083, Jun 11 2010 Microsoft Technology Licensing, LLC Interacting with user interface via avatar
9298263, May 01 2009 Microsoft Technology Licensing, LLC Show body position
9298287, Mar 31 2011 Microsoft Technology Licensing, LLC Combined activation for natural user interface systems
9311560, Mar 08 2013 Microsoft Technology Licensing, LLC Extraction of user behavior from depth images
9313376, Apr 01 2009 Microsoft Technology Licensing, LLC Dynamic depth power equalization
9342139, Dec 19 2011 Microsoft Technology Licensing, LLC Pairing a computing device to a user
9349040, Nov 19 2010 Microsoft Technology Licensing, LLC Bi-modal depth-image analysis
9372544, May 31 2011 Microsoft Technology Licensing, LLC Gesture recognition techniques
9377857, May 01 2009 Microsoft Technology Licensing, LLC Show body position
9383823, May 29 2009 Microsoft Technology Licensing, LLC Combining gestures beyond skeletal
9384329, Jun 11 2010 Microsoft Technology Licensing, LLC Caloric burn determination from body movement
9400548, Oct 19 2009 Microsoft Technology Licensing, LLC Gesture personalization and profile roaming
9400559, May 29 2009 Microsoft Technology Licensing, LLC Gesture shortcuts
9442186, May 13 2013 Microsoft Technology Licensing, LLC Interference reduction for TOF systems
9443310, Oct 09 2013 Microsoft Technology Licensing, LLC Illumination modules that emit structured light
9454244, Feb 07 2002 Microsoft Technology Licensing, LLC Recognizing a movement of a pointing device
9462253, Sep 23 2013 Microsoft Technology Licensing, LLC Optical modules that reduce speckle contrast and diffraction artifacts
9465980, Jan 30 2009 Microsoft Technology Licensing, LLC Pose tracking pipeline
9468848, Jan 08 2010 Microsoft Technology Licensing, LLC Assigning gesture dictionaries
9470778, Mar 29 2011 Microsoft Technology Licensing, LLC Learning from high quality depth measurements
9478057, Mar 20 2009 Microsoft Technology Licensing, LLC Chaining animations
9484065, Oct 15 2010 Microsoft Technology Licensing, LLC Intelligent determination of replays based on event identification
9489053, Dec 21 2010 Microsoft Technology Licensing, LLC Skeletal control of three-dimensional virtual world
9491226, Jun 02 2010 Microsoft Technology Licensing, LLC Recognition system for sharing information
9498718, May 01 2009 Microsoft Technology Licensing, LLC Altering a view perspective within a display environment
9508385, Nov 21 2013 Microsoft Technology Licensing, LLC Audio-visual project generator
9519828, May 01 2009 Microsoft Technology Licensing, LLC Isolate extraneous motions
9519970, May 01 2009 Microsoft Technology Licensing, LLC Systems and methods for detecting a tilt angle from a depth image
9519989, Jul 09 2009 Microsoft Technology Licensing, LLC Visual representation expression based on player expression
9522328, Oct 07 2009 Microsoft Technology Licensing, LLC Human tracking system
9524024, May 01 2009 Microsoft Technology Licensing, LLC Method to control perspective for a camera-controlled computer
9529566, Dec 27 2010 Microsoft Technology Licensing, LLC Interactive content creation
9535563, Feb 01 1999 Blanding Hovenweep, LLC; HOFFBERG FAMILY TRUST 1 Internet appliance system and method
9539500, Apr 05 2011 Microsoft Technology Licensing, LLC Biometric recognition
9551914, Mar 07 2011 Microsoft Technology Licensing, LLC Illuminator with refractive optical element
9557574, Jun 08 2010 Microsoft Technology Licensing, LLC Depth illumination and detection optics
9557836, Nov 01 2011 Microsoft Technology Licensing, LLC Depth image compression
9569005, May 29 2009 Microsoft Technology Licensing, LLC Method and system implementing user-centric gesture control
9582717, Oct 07 2009 Microsoft Technology Licensing, LLC Systems and methods for tracking a model
9594430, Jun 01 2011 Microsoft Technology Licensing, LLC Three-dimensional foreground selection for vision system
9596643, Dec 16 2011 Microsoft Technology Licensing, LLC Providing a user interface experience based on inferred vehicle state
9597587, Jun 08 2011 Microsoft Technology Licensing, LLC Locational node device
9607213, Jan 30 2009 Microsoft Technology Licensing, LLC Body scan
9619561, Feb 14 2011 Microsoft Technology Licensing, LLC Change invariant scene recognition by an agent
9628844, Dec 09 2011 Microsoft Technology Licensing, LLC Determining audience state or interest using passive sensor data
9641825, Jan 04 2009 Microsoft Technology Licensing, LLC; Microsoft Corporation Gated 3D camera
9646340, Apr 01 2010 Microsoft Technology Licensing, LLC Avatar-based virtual dressing room
9652042, Mar 25 2003 Microsoft Technology Licensing, LLC Architecture for controlling a computer using hand gestures
9656162, May 29 2009 Microsoft Technology Licensing, LLC Device for identifying and tracking multiple humans over time
9659377, Oct 07 2009 Microsoft Technology Licensing, LLC Methods and systems for determining and tracking extremities of a target
9674563, Nov 04 2013 Rovi Product Corporation Systems and methods for recommending content
9679390, Oct 07 2009 Microsoft Technology Licensing, LLC Systems and methods for removing a background of an image
9696427, Aug 14 2012 Microsoft Technology Licensing, LLC Wide angle depth detection
9720089, Jan 23 2012 Microsoft Technology Licensing, LLC 3D zoom imager
9724600, Jun 06 2011 Microsoft Technology Licensing, LLC Controlling objects in a virtual environment
9769459, Nov 12 2013 Microsoft Technology Licensing, LLC Power efficient laser diode driver circuit and method
9787943, Mar 14 2013 Microsoft Technology Licensing, LLC Natural user interface having video conference controls
9788032, May 04 2012 Microsoft Technology Licensing, LLC Determining a future portion of a currently presented media program
9821224, Dec 21 2010 Microsoft Technology Licensing, LLC Driving simulator control with virtual skeleton
9821226, Oct 07 2009 Microsoft Technology Licensing, LLC Human tracking system
9823339, Dec 21 2010 Microsoft Technology Licensing, LLC Plural anode time-of-flight sensor
9824260, Mar 13 2013 Microsoft Technology Licensing, LLC Depth image processing
9824480, Mar 20 2009 Microsoft Technology Licensing, LLC Chaining animations
9836590, Jun 22 2012 Microsoft Technology Licensing, LLC Enhanced accuracy of user presence status determination
9842405, Jan 30 2009 Microsoft Technology Licensing, LLC Visual target tracking
9848106, Dec 21 2010 Microsoft Technology Licensing, LLC Intelligent gameplay photo capture
9857470, Dec 28 2012 Microsoft Technology Licensing, LLC Using photometric stereo for 3D environment modeling
9868213, Aug 11 2015 Empire Technology Development LLC Incidental robot-human contact detection
9898675, May 01 2009 Microsoft Technology Licensing, LLC User movement tracking feedback to improve tracking
9910509, May 01 2009 Microsoft Technology Licensing, LLC Method to control perspective for a camera-controlled computer
9940553, Feb 22 2013 Microsoft Technology Licensing, LLC Camera/object pose from predicted coordinates
9943755, May 29 2009 Microsoft Technology Licensing, LLC Device for identifying and tracking multiple humans over time
9953213, Mar 27 2013 Microsoft Technology Licensing, LLC Self discovery of autonomous NUI devices
9953426, Mar 02 2012 Microsoft Technology Licensing, LLC Object digitization
9958952, Jun 02 2010 Microsoft Technology Licensing, LLC Recognition system for sharing information
9959459, Mar 08 2013 Microsoft Technology Licensing, LLC Extraction of user behavior from depth images
9971491, Jan 09 2014 Microsoft Technology Licensing, LLC Gesture library for natural user input
Patent Priority Assignee Title
4843568, Apr 11 1986 Real time perception of and response to the actions of an unencumbered participant/user
5142589, Dec 21 1990 WACHOVIA BANK, NATIONAL Method for repairing images for optical character recognition performing different repair operations based on measured image characteristics
5563988, Aug 01 1994 Massachusetts Institute of Technology Method and system for facilitating wireless, full-body, real-time user interaction with a digitally represented visual environment
5781198, Dec 22 1995 Intel Corporation Method and apparatus for replacing a background portion of an image
5790124, Nov 20 1995 RPX Corporation System and method for allowing a performer to control and interact with an on-stage display device
5930391, Sep 13 1995 FUJIFILM Corporation Method of extracting a region of a specific configuration and determining copy conditions
5940538, Aug 04 1995 Apparatus and methods for object border tracking
5990908, Sep 22 1997 AUTODESK, Inc Method and apparatus for processing full motion computer animation
5995639, Mar 29 1993 Matsushita Electric Industrial Co., Ltd. Apparatus for identifying person
6141463, Oct 10 1997 Microsoft Technology Licensing, LLC Method and system for estimating jointed-figure configurations
6400374, Sep 18 1996 GOOGLE LLC Video superposition system and method
6445814, Jul 01 1996 Canon Kabushiki Kaisha Three-dimensional information processing apparatus and method
6636635, Nov 01 1995 Canon Kabushiki Kaisha Object extraction method, and image sensing apparatus using the method
6650778, Jan 22 1999 Canon Kabushiki Kaisha Image processing method and apparatus, and storage medium
20020154820,
//////
Executed onAssignorAssigneeConveyanceFrameReelDoc
Dec 11 2007Electric Planet InteractiveELET SYSTEMS L L C ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0272590107 pdf
Mar 10 2008EDWARDS, JEFFREY L Electric Planet InteractiveASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0274290919 pdf
Jan 09 2009Elet Systems L.L.C.(assignment on the face of the patent)
Dec 22 2011ELET SYSTEMS L L C IV GESTURE ASSETS 12, LLCASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0277100132 pdf
Feb 16 2012IV GESTURE ASSETS 12, LLCMicrosoft CorporationASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0280120370 pdf
Oct 14 2014Microsoft CorporationMicrosoft Technology Licensing, LLCASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0345640001 pdf
Date Maintenance Fee Events
Jun 08 2012ASPN: Payor Number Assigned.
Aug 22 2014REM: Maintenance Fee Reminder Mailed.
Jan 09 2015EXP: Patent Expired for Failure to Pay Maintenance Fees.


Date Maintenance Schedule
Mar 29 20144 years fee payment window open
Sep 29 20146 months grace period start (w surcharge)
Mar 29 2015patent expiry (for year 4)
Mar 29 20172 years to revive unintentionally abandoned end. (for year 4)
Mar 29 20188 years fee payment window open
Sep 29 20186 months grace period start (w surcharge)
Mar 29 2019patent expiry (for year 8)
Mar 29 20212 years to revive unintentionally abandoned end. (for year 8)
Mar 29 202212 years fee payment window open
Sep 29 20226 months grace period start (w surcharge)
Mar 29 2023patent expiry (for year 12)
Mar 29 20252 years to revive unintentionally abandoned end. (for year 12)