Curvature-based face detector
First Claim
Patent Images
1. A method for processing data, comprising:
- receiving a depth map of a scene containing at least a humanoid head, the depth map comprising a matrix of pixels having respective pixel depth values;
using a digital processor, extracting from the depth map a curvature map of the scene, the curvature map comprising respective curvature values of at least some of the pixels in the matrix; and
processing the curvature values in order to detect and segment one or more blobs in the curvature map over which the pixels have respective curvature values that are indicative of a convex surface, to calculate a roll angle of each of the one or more blobs corresponding to an axis perpendicular to a dominant direction of a curvature orientation of the pixels in each of the one or more blobs, and to identify one of the blobs as a face in the scene by applying a face classifier filter to the one or more blobs to calculate a score for each pixel indicating a likelihood that it is a center point of the face while normalizing a rotation between the one or more blobs and the filter using the calculated roll angle.
1 Assignment
0 Petitions
Accused Products
Abstract
A method for processing data includes receiving a depth map of a scene containing at least a humanoid head, the depth map comprising a matrix of pixels having respective pixel depth values. A digital processor extracts from the depth map a curvature map of the scene. The curvature map includes respective curvature values of at least some of the pixels in the matrix. The curvature values are processed in order to identify a face in the scene.
-
Citations
16 Claims
-
1. A method for processing data, comprising:
-
receiving a depth map of a scene containing at least a humanoid head, the depth map comprising a matrix of pixels having respective pixel depth values; using a digital processor, extracting from the depth map a curvature map of the scene, the curvature map comprising respective curvature values of at least some of the pixels in the matrix; and processing the curvature values in order to detect and segment one or more blobs in the curvature map over which the pixels have respective curvature values that are indicative of a convex surface, to calculate a roll angle of each of the one or more blobs corresponding to an axis perpendicular to a dominant direction of a curvature orientation of the pixels in each of the one or more blobs, and to identify one of the blobs as a face in the scene by applying a face classifier filter to the one or more blobs to calculate a score for each pixel indicating a likelihood that it is a center point of the face while normalizing a rotation between the one or more blobs and the filter using the calculated roll angle. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. Apparatus for processing data, comprising:
-
an imaging assembly, which is configured to capture a depth map of a scene containing at least a humanoid head, the depth map comprising a matrix of pixels having respective pixel depth values; and a processor, which is configured to extract from the depth map a curvature map of the scene, the curvature map comprising respective curvature values of at least some of the pixels in the matrix, and to process the curvature values in order to detect and segment one or more blobs in the curvature map over which the pixels have respective curvature values that are indicative of a convex surface, to calculate a roll angle of each of the one or more blobs corresponding to an axis perpendicular to a dominant direction of a curvature orientation of the pixels in each of the one or more blobs, and to identify one of the blobs as a face in the scene by applying a face classifier filter to the one or more blobs to calculate a score for each pixel indicating a likelihood that it is a center point of the face while normalizing a rotation between the one or more blobs and the filter using the calculated roll angle. - View Dependent Claims (10, 11, 12, 13, 14)
-
- 15. A computer software product, comprising a non-transitory computer-readable medium in which program instructions are stored, which instructions, when read by a computer, cause the computer to receive a depth map of a scene containing at least a humanoid head, the depth map comprising a matrix of pixels having respective pixel depth values, to extract from the depth map a curvature map of the scene, the curvature map comprising respective curvature values of at least some of the pixels in the matrix, and to process the curvature values in order to detect and segment one or more blobs in the curvature map over which the pixels have respective curvature values that are indicative of a convex surface, to calculate a roll angle of each of the one or more blobs corresponding to an axis perpendicular to a dominant direction of a curvature orientation of the pixels in each of the one or more blobs, and to identify one of the blobs as a face in the scene by applying a face classifier filter to the one or more blobs to calculate a score for each pixel indicating a likelihood that it is a center point of the face while normalizing a rotation between the one or more blobs and the filter using the calculated roll angle.
Specification