Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
AU2003248010B2 - Method for Tracking Facial Features in a Video Sequence - Google Patents
[go: Go Back, main page]

AU2003248010B2 - Method for Tracking Facial Features in a Video Sequence - Google Patents

Method for Tracking Facial Features in a Video Sequence Download PDF

Info

Publication number
AU2003248010B2
AU2003248010B2 AU2003248010A AU2003248010A AU2003248010B2 AU 2003248010 B2 AU2003248010 B2 AU 2003248010B2 AU 2003248010 A AU2003248010 A AU 2003248010A AU 2003248010 A AU2003248010 A AU 2003248010A AU 2003248010 B2 AU2003248010 B2 AU 2003248010B2
Authority
AU
Australia
Prior art keywords
facial features
sub
tracking
dimensional
segments
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
AU2003248010A
Other versions
AU2003248010A1 (en
Inventor
Fabrice Lestideau
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from AU2002951473A external-priority patent/AU2002951473A0/en
Application filed by Canon Inc filed Critical Canon Inc
Priority to AU2003248010A priority Critical patent/AU2003248010B2/en
Publication of AU2003248010A1 publication Critical patent/AU2003248010A1/en
Application granted granted Critical
Publication of AU2003248010B2 publication Critical patent/AU2003248010B2/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Landscapes

  • Image Analysis (AREA)
  • Image Processing (AREA)

Description

S&F Ref: 648068
AUSTRALIA
PATENTS ACT 1990 COMPLETE SPECIFICATION FOR A STANDARD PATENT Name and Address of Applicant Actual Inventor(s): Address for Service: Invention Title: Canon Kabushiki Kaisha 30-2, Shimomaruko 3-chome, Ohta-ku Tokyo 146 Japan Fabrice Lestideau Spruson Ferguson St Martins Tower Level 31 Market Street Sydney NSW 2000 (CCN 3710000177) Method for Tracking Facial Features in a Video Sequence ASSOCIATED PROVISIONAL APPLICATION DETAILS [33] Country [31] Applic. No(s) AU 2002951473 [32] Application Date 18 Sep 2002 The following statement is a full description of this invention, including the best method of performing it known to me/us:- 5815c -1- METHOD FOR TRACKING FACIAL FEATURES IN A VIDEO SEQUENCE Field of the Invention The present invention relates generally to video processing and, in particular, to the tracking of facial features in a video sequence. The term "facial features" refers particularly to the eyes and the mouth of a face.
Background Interpretation of a video sequence for human-machine interaction purposes is a problem often encountered in the image processing industry. Face tracking is an important aspect of the interpretation of video sequences, and can be classified as a high level problem. However, merely tracking the face is often not enough in certain types of applications. For example, in face recognition applications, the positions of the eyes and the mouth are needed to enable a recognition algorithm to operate. Another example of where the positions of the eyes and the mouth are needed is an eyes/head control interface. In such an interface the movement of the head is used for control of a cursor, instead of a mouse for example. Further examples include virtual reality applications and video games.
A number of techniques have been proposed for tracking facial features. The most common technique uses skin colour to detect and track a face segment. The eyes and the mouth are then detected inside this skin coloured segment. Eye blinking, valley detection, and pattern matching using principal component analysis are some of the techniques used to locate the eyes. Most of these techniques rely on a frame by frame basis feature detection. Furthermore, skin detection based on the colour of skin is known to be highly unreliable under changing lighting conditions.
648068.doc t -2o Many techniques use luminance block matching in order to track the features.
Such techniques give good results as long as the features are visible throughout the video.
If one or more feature disappear, it is not possible to detect these features again when they r reappear in the video.
Other prior art techniques use deformable wireframe models and motion Sinformation to track the whole face and its features. Some of those techniques are able to 00 ,i track the features even in a side view of the face, but require a large amount of computation power.
Yet another technique is based on the "red eye" effect, often seen in a photograph where a flash was used and is caused by the reflection of light from the retina of the eye. Because the reflection only occurs when the person more or less faces the camera, this technique has only limited application.
Summary It is an object of the present invention to substantially overcome, or at least ameliorate, one or more disadvantages of existing arrangements.
According to a first aspect of the invention, there is provided a method of tracking facial features in a video sequence, said method comprising the steps of: receiving facial features for tracking in a first frame of said video sequence; forming a three dimensional block of data from said video sequence where the first and second dimensions relate to the dimensions of said first frame and the third dimension relates to the position of frames in said video sequence; performing three-dimensional segmentation on said block of data to form a plurality of three-dimensional segments; segmenting said three-dimensional segments along said third dimension to provide a sequence of associated two-dimensional segments; 648068 -2a O identifying one of said two-dimensional segments in said first frame N including said facial features for tracking; identifying candidate facial features in at least a second two-dimensional N segment in the sequence of segments associated with said one two-dimensional segment including said facial features for tracking; and S(g) verifying which of said candidate facial features correspond with said facial features for tracking.
C~ features for tracking.
648068 -3- According to another aspect of the invention, there is provided a method of tracking facial features in a sequence of associated two-dimensional segments, a first segment in said sequence of associated two-dimensional segments including facial features for tracking, said method comprising the steps of: identifying candidate facial features in at least a second two-dimensional segment in said sequence of associated segments; verifying which of said candidate facial features correspond with said facial features for tracking; and recovering lost facial features by using known geometric relations between facial features.
According to another aspect of the invention, there is provided an apparatus for implementing any one of the aforementioned methods.
According to another aspect of the invention there is provided a computer program product including a computer readable medium having recorded thereon a computer program for implementing any one of the methods described above.
Other aspects of the invention are also disclosed.
Brief Description of the Drawings One or more embodiments of the present invention will now be described with reference to the drawings, in which: Fig. 1 shows a flow diagram of a method of tracking facial features in a video sequence; Fig. 2 shows a programmable device for performing the operations of the method shown in Fig. 1; Fig. 3 shows the sub-steps of the 3D segmentation step in the method shown in Fig. 1; 648068.doc -4- Fig. 4 shows the sub-steps of forming a sub-image, which is performed in the method shown in Fig. 1; Fig. 5 shows the sub-steps of identifying candidate facial features, which is also performed in the method shown in Fig. 1; Figs. 6A to 6G show flow diagrams of the sub-steps of assigning possible candidate facial features to facial features; and Fig. 7 shows a schematic of a face displayed in a frame, the coordinate system used, an the respective image coordinates of the left eye, right eye and mouth.
Detailed Description including Best Mode Where reference is made in any one or more of the accompanying drawings to steps and/or features, which have the same reference numerals, those steps and/or features have for the purposes of this description the same function(s) or operation(s), unless the contrary intention appears.
Some portions of the description that follows are explicitly or implicitly presented in terms of algorithms and symbolic representations of operations on data within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities.
Fig. 1 shows a flow diagram of a method 100 of tracking facial features in a video sequence, the facial features being the eyes and the mouth of a human face. For ease of explanation, the steps of method 100 are described with reference to the tracking of the facial features of a single face. However, it is not intended that the present invention be limited to tracking the facial features of only one face, as the described 648068.doc method may be used on any number of faces. Fig. 2 shows a programmable device 200 for performing the operations of the method 100 described in detail below. Such a programmable device 200 may be specially constructed for the required purposes, or may comprise a general-purpose computer or other device selectively activated or reconfigured by a computer program stored in the computer or device. The algorithms presented herein are not inherently related to any particular computer or other apparatus.
The programmable device 200 comprises a computer module 201, input devices such as a camera 250, a keyboard 202 and mouse 203, output devices including a display device 214. The computer module 201 typically includes at least one processor unit 205, a memory unit 206, for example formed from semiconductor random access memory (RAM) and read only memory (ROM), input/output interfaces including a video interface 207, and an I/O interface 213 for the keyboard 202 and mouse 203, and an interface 208 for the camera 250 through connection 248. A storage device 209 is provided and typically includes a hard disk drive 210 and a floppy disk drive 211. A CD- ROM drive212 is typically provided as a non-volatile source of data. The components205 to213 of the computer module201, typically communicate via an interconnected bus204 and in a manner which results in a conventional mode of operation of the programmable device 200 known to those in the relevant art.
The method may be implemented as software, such as an application program executing within the programmable device 200. The application program may be stored on a computer readable medium, including the storage devices 209. The application program is read into the computer 200 from the computer readable medium, and then executed by the processor 205. Intermediate storage of the program and any data fetched from the camera 250 may be accomplished using the semiconductor memory206, possibly in concert with the hard disk drive 210.
648068.doc -6- Referring again to Fig. 1, the steps of method 100 are effected by instructions in the application program that are executed by the processor 205 of the programmable device 200 (Fig. 2).
The method 100 starts in step 105 where the computer module 201 receives as input pixel data of N frames of a video sequence and forms a "block" of pixel data. The pixel data of the video sequence includes at each frame interval n, a two dimensional array of colour values typically from an image sensor, such as that in camera 250 (Fig. The colour values d(x,y,n) may be received directly from camera 250 and stored on the storage device 209 (Fig. 2).
Next, in step 110, the processor 205 receives as input image coordinates (xk,yk)1 in a first frame of the video sequence, with image coordinates (xl,yt)l, (x2,y2)1 and (x 3 ,y3)I corresponding with the positions of the left eye, right eye and mouth respectively that have to be tracked. Fig. 7 shows a schematic of a face 700 displayed in a frame, the coordinate system used, an the respective image coordinates (xk,yk)I of the left eye, right eye and mouth. In one implementation a user provides the image coordinates (xk,yk)1 to the processor 205 by using the mouse 203 for pointing and clicking on the eyes and mouth respectively in the first frame that is displayed on the display device 214 (Fig. 2).
In an alternative implementation, the image coordinates (xk,yk)1 are provided to method 100 by an automatic face feature detection algorithm.
Step 120 follows wherein the processor 205 performs spatiotemporal (3D) segmentation of the colour values in the block of pixel data to produce as output a set of three-dimensional segments having homogeneous colour. Any 3Dsegmentation algorithm may be used in step 120. In the preferred implementation, the Mumford-Shah 3D-segmentation algorithm is used, which operates on the colour values O(x,y,n) of the block of pixel data to relate every pixel in the block to one segment Si. The 648068.doc -7- 3D segmentation step 120 operates to segment the colour values to the extent that the colour values of the face containing the facial features to be tracked form one of the contiguous 3D segments The coordinates (xk,yk) of the facial features being tracked in frame t have to be in that one of the contiguous 3D segments Si. Accordingly, the search area in which the coordinates (xk,yk)i of the facial features may occur is greatly reduced by the 3D segmentation.
During segmentation, an assumption is made that each colour value q(x,y,n) is associated with a particular state. The model used to define the states is decided upon in advance. Each state is defined by an unknown segment model parameter vector a, of length c, with each state being assumed to be valid over the contiguous 3D segment S,.
The aim of segmentation is to identify the 3D segments S, and the model parameters ai for each segment Si.
A model vector of measurements y(x,y,n) over each segment Si is assumed to be a linear projection of the c-vector model parameter ai for that segment S,: 9(x,y,n) a E S (1) where S(x,y,n) is an m by c matrix, which relates the state of segment S, to the model measurements thereby encapsulating the nature of the predefined model.
In the colour video segmentation case, c=m and matrix 9(x,y,n) is the c by c identity matrix for all Each vector of actual colour values is subject to a random error e(x,y,n) such that yx,y,n) (2) Further, the error e(x,y,n) may be assumed to be drawn from a zero-mean normal (Gaussian) distribution with covariance A(x,y,n): 648068.doc -8e(x,y,n) N(O, (3) wherein A(x,y,n) is a c by c covariance matrix. Each component of the error e(x,y,n) is assumed to be independently and identically distributed, i.e.: A(x,yn) (4) where Ic is the c by c identity matrix.
Variational segmentation requires that a cost function E be assigned to each possible segmentation. A partition into segments Si may be compactly described by a binary function J(d) on the boundary elements, in which the value is assigned to each boundary element d bordering a segment This function J(d) is referred to as a boundary map.
The cost function E used in the preferred implementation is one in which a model fitting error is balanced with an overall complexity of the model. The sum of the statistical residuals of each segment Si is used as the model fitting error. Combining Equations and the residual over segment Si as a function of the model parameters a; is given by: Si The model complexity is simply the number of segment-bounding elements d.
Hence the overall cost functional E may be defined as E(y,J, Z J(d) (6) i d where the (non-negative) parameter k controls the relative importance of the model fitting error and the model complexity. The contribution of the model fitting error to the cost functional E encourages a proliferation of segments, while the model complexity encourages few segments. The functional E must therefore balance the two components to achieve a reasonable result. The aim of variational segmentation is to find 648068.doc -9a minimising model measurement y and a minimising boundary map J(d) of the overall cost functional E, for a given value of parameter X.
Note that if the segment boundaries d are given as a valid boundary map the minimising model parameters ai over each segment Si may be found by minimising the segment residuals El. This may be evaluated using a simple weighted linear least squares calculation. Given this fact, any valid boundary map J(d) will fully and uniquely describe a segmentation. Therefore, the cost function E may be regarded as a function over the space of valid edge maps (J-space), whose minimisation yields an optimal segment partition JA for a given parameter k. The corresponding minimising model parameters Wi may then be assumed to be those which minimise the residuals E, over each segment Si. The corresponding minimum residuals for segment Si will hereafter be written as Ei.
If parameter X is low, many boundaries are allowed, giving "fine" segmentation.
As parameter increases, the segmentation gets coarser. At one extreme, the optimal segment partition Jo, where the model complexity is completely discounted, is the trivial segmentation, in which every pixel constitutes its own segment Si,, and which gives zero model fitting error e. On the other hand, the optimal segment partition where the model fitting error e is completely discounted, is the null or empty segmentation in which the entire block is represented by a single segment ,Si. Somewhere between these two extremes lies the segmentation JA which will appear ideal in that the segments S, correspond to a semantically meaningful partition.
To find an approximate solution to the variational segmentation problem, a segment merging strategy is employed, wherein properties of neighbouring segments Si and Sj are used to determine whether those segments come from the same model state, 648068.doc thus allowing the segments S, and Sj to be merged into a single segment Sy. The segment residual Ey also increases after any 2 neighbouring segments Si and S, are merged.
Knowing that the trivial segmentation is the optimal segment partition J) for the smallest possible parameter k value of 0, in segment merging, each pixel in the block is initially labelled as its own unique segment Si, with model parameters a; set to the colour values Adjacent segments Si and S are then compared using some similarity criterion and merged if they are sufficiently similar. In this way, small segments take shape, and are gradually built into larger ones.
The partitions JA before and after the merger differ only in the two segments Si and Sj. Accordingly, in determining the effect on the total cost functional E after such a merger, a computation may be confined to those segments Si and Sj. By examining Equations and a merging cost for the adjacent segment pair {Si,Sj} may be written as: Ei (E Ej) Zii (7) 1(6,) where 1(ij) is the area of the common boundary between 3D segments S, and Sj.
If the merging cost ry is less than parameter X, the merge is allowed.
A key to efficient segment growing is to compute the numerator of the merging cost rj as fast as possible. Firstly, Equation is rewritten as: Ej(aj) (F H, aj)(Fj H aj) (8) where: Hj is an (vjc) by c matrix composed of the c by c identity matrices stacked on top of one another as varies over segment Sj, with vj the number of pixels in segment Sj; and 648068.doc 11 Fj is a column vector of length (vjc) composed of the individual colour value vectors stacked on top of one another.
By weighted least square theory, the minimising model parameter vector aj for the segment Sj is given by the mean of the colour value f(x,y,n) over segment Sj. The corresponding residual is given by E F H a, )F Hd (9) When merging two segments Si and Sj, the "merged" matrix HU is obtained by concatenating matrix Hi with matrix Hj; likewise for matrix Fy. These facts may be used to show that the best fitting model parameter vector fl for the merged segment Sy is given by: (va -va) ai= v, V.
The merged residual is given by: En =Ei E a, a V- (11) v, +v, The merging cost ry in Equation may be computed as: 2 V.V a-aj i (12) from the model parameters of the segments S, and Sj to be merged. If the merge is allowed, Equations (10) give the model parameter ai, of the merged segment Sy.
Note that under this strategy, only Equations (10) and (12) need to be applied throughout the merging process. Only the model parameters a, for each segment S, are 648068.doc -12therefore required as segmentation proceeds. Further, neither the original colour values b(x,y,n) nor the model structure itself the matrices are required.
Usually, when the merging cost ry exceeds a predetermined threshold the segmentation stops. However, it is possible that the face containing the facial features to be tracked is still segmented in more than one segment Si. This is typically caused by challenging lighting conditions, or shadows. To resolve this problem, the segment merging continues at least until the three facial features to be tracked form part of the same segment Si. The first time step 120 is performed, the three facial features to be tracked are those identified in step 110 and occur in frame 1. In subsequent iterations, the three facial features are those verified as being the facial features in frame t, being the oldest frame in the block of pixel data.
Fig. 3 shows the sub-steps of the 3D segmentation step 120. The segmentation step 120 starts in sub-step 304 where the processor 205 sets the model parameters to the colour values q(x,y,n) of each pixel in the block of N frames. Hence, the segmentation starts with the trivial segmentation where each pixel forms its own segment ,Si. The processor 205 then determines in sub-step 306 all adjacent segment pairs Si and Si, and computes the merging cost r according to Equation (12) for each of the boundaries between adjacent segment pairs Si and S. The boundaries with merging cost rj are then inserted by the processor 205 in sub-step 308 into a priority queue P in priority order. The priority queue P is typically stored on the storing device 209 or memory 206.
The processor 205 retrieves the first entry from the priority queue P(1) and merges the corresponding segment pair Si and Sj the segment pair Si and Sj with the lowest merging cost riy) to form a new segment S 0 in sub-step 310.
In sub-step 314 the processor 205 identifies all segments S, adjoining either of the merged segments Si and S and merges any duplicate boundaries, adding their areas.
648068.doc -13- Sub-step 318 follows where the processor 205 calculates a new merging cost zjyj for each boundary between adjacent segments Sj and S 1 The new merging costs rij- effectively reorder the priority queue P.
In sub-step 322 the processor 205 determines whether the merging cost zrj at the top of the priority queue P (entry has a value greater than the predetermined threshold If the merging cost zr of entry P(1) has a value greater than the predetermined threshold top2, then the processor 205 determines in sub-step 325 whether the known image coordinates (xk,yk) 1 that corresponds with the positions of the facial features that have to be tracked, are included in a single segment If all three positions of the facial features are in the same segment Si, then the segmentation step 120 ends.
If the conditions of either of sub-step 322 or sub-step 325 are not met, then segment merging must continue, and control is returned to sub-step 310 from where substeps 310 to 325 are repeated to merge the segment pair Si and Sj with the lowest merging cost rii.
Referring again to Fig. 1, with the set of 3D segments {Si} formed in step 120, and with the image coordinates (k,Yk)i known for the oldest frame t in the block of video data, step 130 follows where the processor 205 forms a sub-image, thereby restricting the search area for identifying candidate facial features. Fig. 4 shows step 130 in more detail.
Step 130 starts in sub-step 410 where the processor 205 "slices through" the 3D segments S, at frame interval t+l, to produce 2D segments s' Each 2D segment s'~ 1 incorporates the pixels at frame interval t+l that are included in the corresponding 3D segment S,.
In sub-step 411 the processor 205 identifies the 2D segment s' 1 containing the facial features, that being the 2D segment being associated with the same 3D segment 648068.doc -14- S, as the 2D segment s' in the previous frame containing the known coordinates (xk,yk)t of the facial features being tracked. The first time step 130 is performed, the known coordinates (Xk,yk), will correspond with those received in step 110. In subsequent iterations, the three facial features are those verified as being the facial features in frame t.
Sub-step 412 follows where the processor 205 determines whether the area of the 2D segment is equal to or above a minimum area mA. In the preferred implementation the minimum area mA is 1500 pixels. If the area of segment is smaller than the minimum area mA, then features are too small to be tracked and method 100 ends in step 490.
If the area of the 2D segment is equal to or above a minimum area mA, then step 130 continues in sub-step 415 where the processor 205 creates a boundary box subimage from the colour values at frame interval t+1. The boundary box sub-image is a rectangular shaped image formed around the segment The boundary box sub-image bt+i(x,y) is re-scaled in sub-step 420 such that the area of the segment sj in the re-scaled boundary box sub-image b', 1 y) is equal to the predefined minimum area mA.
Problems typically associated with displacement in the axis of the camera 250 are overcome by resizing the boundary box sub-image to a fixed size.
Furthermore, the resizing also cause the candidate facial features, which are identified in step 140 that follows, to be of similar size inside the re-scaled boundary box sub-image as those identified in the previous frame, thereby aiding the correspondence between frames.
Sub-step 425 follows where the processor 205 crops the re-scaled boundary box sub-image to form sub-image At this point the previous feature 648068.doc coordinates (xkk), are scaled to the size of the sub-image so that one unit equals one pixel in sub-image With image coordinates (x2,y2), corresponding with the position of the right eye then, if the right boundary of the sub-image y) is greater than a distance Au from x2t, the right bound of sub-image is set to (x2, Au), else the right bound of sub-image y) remains that of sub-image y).
Similarly, with image coordinates (xl,yl), corresponding with the position of the left eye then, if the left boundary of the sub-image b, y) is greater than the distance Au from xl,, the left bound of sub-image is set to (xt, Au), else the left bound of sub-image y) remains that of sub-image y).
If the upper boundary of the sub-image y) is greater than the distance Au from the upper one ofyl, and y2 then the upper bound of sub-image is set to (max(y,t ,y2t Au), else the upper bound of sub-image remains that of subimage y).
Finally, with image coordinates (x 3 ,y 3 1 corresponding with the position of the mouth, if the lower boundary of the sub-image is greater than the distance Au from y3,, then the lower bound of sub-image is set to (y3t Au), else the lower bound of sub-image b" 1 y) remains that of sub-image y).
In the preferred implementation the distance Au is 5. After cropping, the subimage is also stored in memory 206. Sub-image now defines the search area for identifying candidate facial features in step 140 that follows step 130. At this point, the (scaled) previous feature coordinates (xk,yk)t are referred to a new origin, namely the centroid of the current face segment All subsequent coordinates are with 648068.doc 16respect to this origin, unless otherwise stated. Accordingly, method 100 (Fig. 1) continues to step 140 where the processor 205 identifies candidate facial features, and extracts information from each of the candidate facial features in sub-image y).
Fig. 5 shows a flow diagram of the sub-steps of step 140. A first part of step 140 extracts a facial feature map from the sub-image The facial feature map is a binary image, with the value of its pixels set to when those pixels are found to be part of a candidate facial feature and set to otherwise. A second part of step 140 then extracts information from each of the candidate facial features, that information including the positions of the candidate facial features inside the facial feature map and shape characteristics of the candidate facial features.
The extraction of a facial feature map y) from the sub-image y) is based on two characteristics of facial features. A first is that such features give small edges after edge detection, and a second is that they are darker than the rest of the face.
Using these characteristics, two initial facial feature maps fi(x,y) and f 2 are formed from the sub-image b, from which the facial feature map b' is then formed.
Step 140 starts in sub-step 505 where the processor 205 forms a first initial facial feature map by applying an edge detection algorithm to the sub-image y).
Any edge detection technique may be used, but in the preferred implementation the Laplacian edge detection technique is used. A mask F is first applied to sub-image b to form a gradient map, followed by applying a threshold to the gradient map.
In the preferred implementation the mask Fis: 648068.doc 17- 0.0276655 -0.224751 1.65895 F= -2.92373 (13) 1.65895 -0.224751 0.0276655 and the threshold is set such that 15% of pixels in the initial first facial feature map are set to those pixels corresponding to the pixels in the gradient map having the highest gradient.
The second initial facial feature mapf 2 is formed by applying a threshold in sub-step 510 to sub-image giving a value of"1" to pixels with intensity values lower than a predetermined value and a value of to pixels with intensity values above the predetermined value. Again, the threshold is set such that 15% of pixels in the second initial facial feature mapf 2 are set to The facial feature map is then formed by the processor 205 in sub-step 515 by taking the result of applying an "AND" function on the two initial facial feature maps and f 2 Hence, if corresponding pixels in the two initial facial feature mapsfJ(x,y) andf 2 both have the value then that pixel has the value in the facial feature map bt", y).
The processor 205 next, in sub-step 520, identifies candidate facial features and then extracts the position and characteristics of each identified candidate facial feature. A candidate facial feature is identified as a cluster of pixels in the facial feature map having values of If the shape of the 2D segment identified as containing the face does not change drastically, the position (xi, yi)' of each facial feature should be independent of the position of the face in the frame. The characteristics of the candidate facial feature include its area A'i, which is the number of pixels in the cluster, 648068.doc
I
-18and the eccentricity ei of the candidate facial feature, which is the ratio of the width against the height of the candidate facial feature.
Referring again to Fig. 1, with candidate facial features identified and information extracted, the processor 205 identifies in step 150 which of the candidate facial features possibly correspond with the facial features for tracking identified in step 110, and in particular, the facial features verified in a previous frame as corresponding with the facial features for tracking identified in step 110. In order to identify whether the i-th candidate facial feature possibly corresponds with the facial features for tracking, the processor 205 calculates the Euclidean distance d between the i-th candidate facial feature in frame t+1, and thej-th facial feature in frame t as follows: d, \Xi X yY (14) If the Euclidean distance dij between the i-th candidate facial feature in frame t+l, and the j-th facial feature in frame t is below a threshold, then a characteristic similarity measure is calculated using the respective areas A and Aj, and eccentricities 6i and j: Di A) 2 If the characteristic similarity measure D 0 is also below a threshold, then the i-th candidate facial feature has a possible correspondence with thej-th facial feature, and an entry i is added to a list Lj. After processing all of the candidate facial features in this manner, the list Lj contains the identifier of each of the candidate facial features that may possibly correspond to thej-th facial feature in the previous frame.
An empty list Lj means that no candidate facial feature corresponding to thej-th facial feature in the previous frame has been identified. Two events may cause list Lj to be empty. Firstly, it may be that thej-th facial feature was not detected in the previous 648068.doc -19frame. In this event the Euclidean distance dij would be higher than the threshold, and an attempt is made in step 155 that follows to recover such a facial feature in case it reappeared. The second event that may cause list Lj to be empty is when thej-th facial feature was detected in the previous frame, but then disappeared in the current frame.
Method 100 (Fig. 1) now proceeds to step 155 where the processor assigns one of the possible candidate facial features to thej-th facial feature, and attempts to recover facial features where appropriate. Let the lists L 1
L
2 and L 3 relate to the left eye, right eye and mouth respectively. A total of 8 possible scenarios may arise, which are: 1: Lists LI, L 2 and L 3 are empty, which means that no corresponding candidate facial features were identified; 2: Lists L 2 and L 3 are empty, which means that the left eye has a corresponding candidate facial feature; 3: Lists L 1 and L 3 are empty, which means that the right eye has a corresponding candidate facial feature; 4: Lists L 1 and L 2 are empty, which means that the mouth has a corresponding candidate facial feature; List L 2 is empty, which means that the left eye and the mouth have corresponding candidate facial features; 6: List L, is empty, which means that the right eye and the mouth have corresponding candidate facial features; 7: List L 3 is empty, which means the eyes have corresponding candidate facial features; and 8: Lists LI, L 2 and L 3 have entries, which means that both eyes and the mouth have corresponding candidate facial features.
648068.doc In the case when scenario 1 exists, no corresponding facial features were identified and the method 100 terminates as the features being tracked have been lost.
In the case when scenario 2 exists, the left eye has at least one corresponding candidate facial feature. Fig. 6A shows a flow diagram of the sub-steps of step 155 in the case when scenario 2 exists. Step 155 starts in sub-step 605 where the possible candidate facial feature in list L 1 with the smallest characteristic similarity measure Di, is assigned as corresponding to the left eye. In sub-step 607 the processor 205 then saves the position (xi, yi)' of the left eye as coordinates (xl, yi)t+l, together with its area A'i as area A 1 and its eccentricity di as eccentricity si.
The processor 205 then determines in sub-step 610 whether the coordinates (x2,y2), of the right eye were known in the previous frame. If the coordinates (x 2
,Y
2 of the right eye were not known, then the right eye was not detected in the previous frame, but may have reappeared in the current frame. Accordingly, sub-step 615 attempts to recover the right eye by determining whether any candidate facial features have coordinates (xi, yi)' satisfying the following conditions, starting with the candidate facial feature with the lowest characteristic similarity measure Dij: AND 5<(x (16) The processor 205 then determines in sub-step 620 whether a facial feature corresponding to the right eye was found in sub-step 615. If a facial feature corresponding to the right eye was found then, in sub-step 622 the processor 205 saves the position (xi, yi)' of the candidate facial feature corresponding to the right eye as coordinates (x 2 Y2)t+1, together with its area A'i as area A 2 and its eccentricity 'i as eccentricity C2.
The processor 205 determines in sub-step 625 whether the coordinates (x3,Y3)t of the mouth were known in the previous frame. If the coordinates (x3,y3) of the mouth 648068.doc -21 were not known, then the mouth was not detected in the previous frame, but may have reappeared in the current frame. Accordingly, sub-step 630 attempts to recover the mouth by creating a triangle defined by the coordinates of the two eyes (xl,yl),+1 and (x2,y2)t+1, and any of the candidate features (xi, starting with the candidate facial feature with the lowest characteristic similarity measure Diy.
Let al and a2 be the angles in radians of the triangle at the left eye and the right eye respectively. Also, let 8 be the distance from the centre of the eye-eye line to the candidate facial feature under consideration. If the following conditions are met: (0.9<ai<1.45) AND (0.9<a2<1.45) AND (10<6<15) (17) then the candidate facial feature under consideration corresponds with the mouth.
If it is determined in sub-step 610 that the coordinates (x2,y2)t of the right eye were known in the previous frame, or if it is determined in sub-step 620 that a facial feature corresponding to the right eye was not found, then the right eye disappeared in the current frame. Step 155 proceeds to sub-step 640 where the processor 205 sets the coordinates (x2,Y2)t+ to "unknown". The processor 205 then determines in sub-step 645 whether the coordinates (x3,y3) of the mouth were known in the previous frame. If the coordinates (x3,y3)t of the mouth were not known, then the mouth was not detected in the previous frame, but may have reappeared in the current frame. Accordingly, sub-step 650 attempts to recover the mouth by determining whether any candidate facial features have coordinates yi)' satisfying the following conditions, starting again with the candidate facial feature with the lowest characteristic similarity measure Dij: xI)<-2 AND 7<(y y)<14 (18) Following sub-step 630 or 650, the processor 205 then determines in sub-step 635 whether a facial feature corresponding to the mouth was found in sub-step 630 or 650. If a facial feature corresponding to the mouth was found then, in sub-step 637 the 648068.doc -22processor 205 saves the position (xi, yi)' of the candidate facial feature corresponding to the mouth as coordinates (x 3 y3)t+1, together with its area A'i as area A 3 and its eccentricity di as eccentricity E3. Step 155 also ends.
If it is determined in either of sub-step 625 or 645 that the coordinates (x3,y3) of the mouth were known in the previous frame, then the mouth disappeared in the current frame and the processor 205 sets the coordinates (x3,y3)t+l to "unknown" in sub-step 655 before step 155 ends.
In the case when scenario 3 exists, the right eye has at least one corresponding candidate facial feature. Fig. 6B shows a flow diagram of the sub-steps of step 155 in the case when scenario 2 exists. Step 155 starts in sub-step 705 where the possible candidate facial feature in list L 2 with the smallest characteristic similarity measure Di2 is assigned as corresponding to the right eye. In sub-step 707 the processor 205 then saves the position (xi, yi)' of the right eye as coordinates (x2, y2)t+1, together with its area A'i as area
A
2 and its eccentricity as eccentricity E2.
The processor 205 then determines in sub-step 710 whether the coordinates (xi,yi), of the left eye were known in the previous frame. If the coordinates (xi,yl)i of the left eye were not known, then the left eye was not detected in the previous frame, but may have reappeared in the current frame. Accordingly, sub-step 715 attempts to recover the left eye by determining whether any candidate facial features have coordinates (xi, yi)' satisfying the following conditions, starting with the candidate facial feature with the lowest characteristic similarity measure Diy: (y y 2 AND -11<(xi x 2 1 (19) The processor 205 then determines in sub-step 720 whether a facial feature corresponding to the left eye was found in sub-step 715. If a facial feature corresponding to the left eye was found then, in sub-step 722 the processor 205 saves the position (xi, yi)' 648068.doc -23of the candidate facial feature corresponding to the left eye as coordinates (xI, yl)+l, together with its area A'i as area A and its eccentricity as eccentricity e1.
The processor 205 determines in sub-step 725 whether the coordinates (x3,y3) of the mouth were known in the previous frame. If the coordinates (x3,Y3)t of the mouth were not known, then the mouth was not detected in the previous frame, but may have reappeared in the current frame. Accordingly, sub-step 730 attempts to recover the mouth by creating a triangle defined by the coordinates of the two eyes (xl,yl)t,+ and (x 2 ,y 2 )t+1, and any of the candidate features (xi, starting with the candidate facial feature with the lowest characteristic similarity measure Dy. If the conditions of Equation (17) are 0o met, then the candidate facial feature under consideration corresponds with the mouth.
If it is determined in sub-step 710 that the coordinates (xi,yl)t of the left eye were known in the previous frame, or if it is determined in sub-step 720 that a facial feature corresponding to the left eye was not found, then the left eye disappeared in the current frame. Step 155 proceeds to sub-step 740 where the processor 205 sets the coordinates (xl,yi),+i to "unknown". The processor 205 then determines in sub-step 745 whether the coordinates (x3,y3), of the mouth were known in the previous frame. If the coordinates (x 3 of the mouth were not known, then the mouth was not detected in the previous frame, but may have reappeared in the current frame. Accordingly, sub-step 750 attempts to recover the mouth by determining whether any candidate facial features have coordinates (xe, yi)' satisfying the following conditions, starting again with the candidate facial feature with the lowest characteristic similarity measure Dy: x)<7 AND y)<14 Following sub-step 730 or 750, the processor 205 then determines in sub-step 735 whether a facial feature corresponding to the mouth was found in sub-step 730 or 750. If a facial feature corresponding to the mouth was found then, in sub-step 737 the 648068.doc -24processor 205 saves the position (xi, yi)' of the candidate facial feature corresponding to the mouth as coordinates (x 3 y3)t+i, together with its area A'i as area A 3 and its eccentricity as eccentricity 83. Step 155 also ends.
If it is determined in either of sub-step 725 or 745 that the coordinates (x 3 ,y3)t of the mouth were known in the previous frame, then the mouth disappeared in the current frame and the processor 205 sets the coordinates (x3,y3)t+1 to "unknown" in sub-step 755 before step 155 ends.
In the case when scenario 4 exists, the mouth has at least one corresponding candidate facial feature. Fig. 6C shows a flow diagram of the sub-steps of step 155 in the case when scenario 4 exists. Step 155 starts in sub-step 805 where the possible candidate facial feature in list L 3 with the smallest characteristic similarity measure D3 is assigned as corresponding to the mouth. In sub-step 807 the processor 205 then saves the position (xi, yr)' of the mouth as coordinates (x3, y3)t+i, together with its area as area A 3 and its eccentricity e'i as eccentricity 83.
The processor 205 then determines in sub-step 810 whether the coordinates of the left eye were known in the previous frame. If the coordinates of the left eye were not known, then the left eye was not detected in the previous frame, but may have reappeared in the current frame. Accordingly, sub-step 815 attempts to recover the left eye by determining whether any candidate facial features have coordinates (xi, yi)' satisfying the following conditions, starting with the candidate facial feature with the lowest characteristic similarity measure Dij: AND (21) The processor 205 then determines in sub-step 820 whether a facial feature corresponding to the left eye was found in sub-step 815. If a facial feature corresponding to the left eye was found then, in sub-step 822 the processor 205 saves the position (xi, yi)' 648068.doc of the candidate facial feature corresponding to the left eye as coordinates (xl, yi),+l, together with its area A'i as area A\ and its eccentricity e' as eccentricity el.
The processor 205 determines in sub-step 825 whether the coordinates (x2,Y2)t of the right eye were known in the previous frame. If the coordinates (x2,y2)t of the right eye were not known, then the right eye was not detected in the previous frame, but may have reappeared in the current frame. Accordingly, sub-step 830 attempts to recover the right eye by creating a triangle defined by the coordinates of the left eye (xl,yl)t+l, the mouth (x 3 ,y3) 1 and any of the candidate features (xi, starting with the candidate facial feature with the lowest characteristic similarity measure DO. If the conditions of Equation (17) are met, then the candidate facial feature under consideration corresponds with the right eye.
If it is determined in sub-step 810 that the coordinates of the left eye were known in the previous frame, or if it is determined in sub-step 820 that a facial feature corresponding to the left eye was not found, then the left eye disappeared in the current frame. Step 155 proceeds to sub-step 840 where the processor 205 sets the coordinates (xl,yl)+l to "unknown". The processor 205 then determines in sub-step 845 whether the coordinates (x 2 ,y 2 of the right eye were known in the previous frame. If the coordinates (x 2 of the right eye were not known, then the right eye was not detected in the previous frame, but may have reappeared in the current frame. Accordingly, sub-step 850 attempts to recover the right eye by determining whether any candidate facial features have coordinates (xi, yi)' satisfying the following conditions, starting with the candidate facial feature with the lowest characteristic similarity measure Dij: 2<(x 2 x)<7 AND 7<(y y 3 (22) Following sub-step 830 or 850, the processor 205 then determines in sub-step 835 whether a facial feature corresponding to the right eye was found in sub-step 830 or 648068.doc -26- 850. If a facial feature corresponding to the right eye was found then, in sub-step 837 the processor 205 saves the position (xi, yi)' of the candidate facial feature corresponding to the right as coordinates (x2, Y2)I+l, together with its area A'j as area A 2 and its eccentricity 6i as eccentricity c2. Step 155 also ends.
If it is determined in either of sub-step 825 or 845 that the coordinates (x2,y2)t Of the right eye were known in the previous frame, then the right eye disappeared in the current frame and the processor 205 sets the coordinates (x2,y2)1+1 to "unknown" in substep 855 before step 155 ends.
In the case when scenario 5 exists, the left eye and the mouth have at least one corresponding candidate facial feature. Fig. 6D shows a flow diagram of the sub-steps of step 155 in the case when scenario 5 exists. Step 155 then starts in sub-step 902 where the processor 205 forms a vector (X 3 -Xl,Y3-yl)t from the left eye to the mouth in the previous frame. A vector is also formed in sub-step 904 from a possible candidate facial feature in list L 1 to a possible candidate facial feature in list L 3 The processor 205 then calculates in sub-step 908 the Euclidean distance between the vectors formed in sub-steps 902 and 904 respectively. The processor 205 then determines in sub-step 908 whether the Euclidean distance is below a threshold. If the Euclidean distance is not below the threshold, then processor 205 determines in substep 909 whether another vector can be formed in sub-step 904 with a different combination of possible candidate facial features in lists L 1 and L 3 If another vector can be formed, then control is passed to sub-step 904 from where sub-steps 904 to 908 are repeated.
If another vector can not be formed with a different combination of possible candidate facial features in lists LI and L 3 then, in sub-step 911, the possible candidate facial feature in lists L, and L 3 with the smallest Euclidean distance dil or di 3 (calculated 648068.doc -27in step 150) is assigned as corresponding to the corresponding feature by saving its information, while the coordinates of the other two features are set to "unknown". Step 155 then ends.
If the processor 205 determines in sub-step 908 that the Euclidean distance is below the threshold, then processor 205 saves the information of the two possible candidate facial features forming the vector as the left eye and mouth respectively.
The processor 205 then determines in sub-step 912 whether the coordinates (x2,y2), of the right eye were known in the previous frame. If the coordinates (x2,y2), of the right eye were not known, then the right eye was not detected in the previous frame, but l0 may have reappeared in the current frame. Accordingly, sub-step 914 attempts to recover the right eye by creating a triangle defined by the coordinates of the left eye (xl,yl)t+, the mouth and any of the candidate features (xi, starting with the candidate facial feature with the lowest characteristic similarity measure Do. If the conditions of Equation (17) are met, then the candidate facial feature under consideration corresponds with the right eye.
The processor 205 then determines in sub-step 916 whether a facial feature corresponding to the right eye was found in sub-step 914. If a facial feature corresponding to the right eye was found then, in sub-step 918 the processor 205 saves the position (xi, yi)' of the candidate facial feature corresponding to the right eye as coordinates (X2, Y2)t+l, together with its area A'j as area A 2 and its eccentricity ti as eccentricity Step 155 also ends.
If it is determined in sub-step 912 that the coordinates (x2,y2)t of the right eye were known in the previous frame, or if it is determined in sub-step 916 that a facial feature corresponding to the right eye was not found, then the right eye disappeared in the 648068.doc -28current frame. Step 155 proceeds to sub-step 920 where the processor 205 sets the coordinates (x2,y2)t+1 to "unknown". Step 155 also ends after sub-step 920.
In the case when scenario 6 exists, the right eye and the mouth have at least one corresponding candidate facial feature. Fig. 6E shows a flow diagram of the sub-steps of step 155 in the case when scenario 6 exists. Step 155 then starts in sub-step 932 where the processor 205 forms a vector (x 3 -x2,Y3-y2)1 from the right eye to the mouth in the previous frame. A vector is also formed in sub-step 934 from a possible candidate facial feature in list L 2 to a possible candidate facial feature in list L 3 The processor 205 then calculates in sub-step 938 the Euclidean distance between the vectors formed in sub-steps 932 and 934 respectively. The processor 205 then determines in sub-step 938 whether the Euclidean distance is below a threshold. If the Euclidean distance is not below the threshold, then processor 205 determines in substep 939 whether another vector can be formed in sub-step 934 with a different combination of possible candidate facial features in lists L 2 and L 3 If another vector can be formed, then control is passed to sub-step 934 from where sub-steps 934 to 938 are repeated.
If another vector can not be formed with a different combination of possible candidate facial features in lists L 2 and L 3 then, in sub-step 941, the possible candidate facial feature in lists L 2 and L 3 with the smallest Euclidean distance di 2 or di 3 (calculated in step 150) is assigned as corresponding to the corresponding feature by saving its information, while the coordinates of the other two features are set to "unknown". Step 155 then ends.
If the processor 205 determines in sub-step 938 that the Euclidean distance is below the threshold, then processor 205 saves the information of the two possible candidate facial feature forming the vector as the right eye and mouth respectively.
648068.doc -29- The processor 205 then determines in sub-step 942 whether the coordinates (xl,yl), of the left eye were known in the previous frame. If the coordinates (xl,yl)t of the left eye were not known, then the left eye was not detected in the previous frame, but may have reappeared in the current frame. Accordingly, sub-step 944 attempts to recover the left eye by creating a triangle defined by the coordinates of the right eye (x2,Y2)t+, the mouth (x 3 ,y3)1+1, and any of the candidate features (xi, starting with the candidate facial feature with the lowest characteristic similarity measure Di. If the conditions of Equation (17) are met, then the candidate facial feature under consideration corresponds with the left eye.
The processor 205 then determines in sub-step 946 whether a facial feature corresponding to the left eye was found in sub-step 944. If a facial feature corresponding to the left eye was found then, in sub-step 948 the processor 205 saves the position (xi, yi)' of the candidate facial feature corresponding to the left eye as coordinates (xl, yl)t+l, together with its area A'i as area A 1 and its eccentricity 'i as eccentricity e1. Step 155 also ends.
If it is determined in sub-step 942 that the coordinates (xl,yl), of the left eye were known in the previous frame, or if it is determined in sub-step 946 that a facial feature corresponding to the left eye was not found, then the left eye disappeared in the current frame. Step 155 proceeds to sub-step 950 where the processor 205 sets the coordinates (xi,yl)+i to "unknown". Step 155 also ends after sub-step 950.
In the case when scenario 7 exists, each of the eyes has at least one corresponding candidate facial feature. Fig. 6F shows a flow diagram of the sub-steps of step 155 in the case when scenario 7 exists. Step 155 for this scenario starts in sub-step 962 where the processor 205 forms a vector (xz-x 1 ,y 2 -yl)t from the left eye to the right eye 648068.doc in the previous frame. A vector is also formed in sub-step 964 from a possible candidate facial feature in list L 1 to a possible candidate facial feature in list L 2 The processor 205 then calculates in sub-step 966 the Euclidean distance between the vectors formed in sub-steps 962 and 964 respectively. The processor 205 then determines in sub-step 968 whether the Euclidean distance is below a threshold. If the Euclidean distance is not below the threshold, then processor 205 determines in substep 969 whether another vector can be formed in sub-step 964 with a different combination of possible candidate facial features in lists L, and L 2 If another vector can be formed, then control is passed to sub-step 964 from where sub-steps 964 to 968 are repeated.
If another vector can not be formed with a different combination of possible candidate facial features in lists L, and L 2 then, in sub-step 971, the possible candidate facial feature in lists L, and L 2 with the smallest Euclidean distance dil or di 2 (calculated in step 150) is assigned as corresponding to the corresponding feature by saving its information, while the coordinates of the other two features are set to "unknown". Step 155 then ends.
If the processor 205 determines in sub-step 968 that the Euclidean distance is below the threshold, then processor 205 saves the information of the two possible candidate facial features forming the vector as the left eye and right eye respectively.
The processor 205 then determines in sub-step 972 whether the coordinates (x 3 ,y 3 of the mouth were known in the previous frame. If the coordinates (X3,Y3) of the mouth were not known, then the mouth was not detected in the previous frame, but may have reappeared in the current frame. Accordingly, sub-step 974 attempts to recover the mouth by creating a triangle defined by the coordinates of the left eye (xl,yl)+l, the right eye (x 2 ,y 2 and any of the candidate features (xi, starting with the candidate facial 648068.doc -31 feature with the lowest characteristic similarity measure DU. If the conditions of Equation (17) are met, then the candidate facial feature under consideration corresponds with the mouth.
The processor 205 then determines in sub-step 976 whether a facial feature corresponding to the mouth was found in sub-step 974. If a facial feature corresponding to the mouth was found then, in sub-step 978 the processor 205 saves the position (xi, yi)' of the candidate facial feature corresponding to the mouth as coordinates (x 3 Y3)+1, together with its area A'i as area A 3 and its eccentricity e'i as eccentricity 83. Step 155 also ends.
If it is determined in sub-step 972 that the coordinates (x3,y3) of the mouth were known in the previous frame, or if it is determined in sub-step 976 that a facial feature corresponding to the mouth was not found, then the mouth disappeared in the current frame. Step 155 proceeds to sub-step 980 where the processor 205 sets the coordinates (x3,y3)t+l to "unknown". Step 155 also ends after sub-step 920.
Finally, in the case when scenario 8 exists, each of the eyes and the mouth has at least one corresponding candidate facial feature. Fig. 6G shows a flow diagram of the sub-steps of step 155 in the case when scenario 8 exists. In this case step 155 starts in sub-step 1002 where the processor 205 forms a vector (xz-xl,y 2 -yl)1 from the left eye to the right eye in the previous frame. A vector is also formed in sub-step 1004 from a possible candidate facial feature in list LI to a possible candidate facial feature in list L 2 The processor 205 then calculates in sub-step 1008 the Euclidean distance between the vectors formed in sub-steps 1002 and 1004 respectively. The processor 205 then determines in sub-step 1008 whether the Euclidean distance is below a threshold. If the Euclidean distance is not below the threshold, then processor 205 determines in substep 1009 whether another vector can be formed in sub-step 1004 with a different 648068.doc -32combination of possible candidate facial features in lists L, and L 2 If another vector can be formed, then control is passed to sub-step 1004 from where sub-steps 1004 to 1008 are repeated.
If the processor 205 determines in sub-step 1008 that the Euclidean distance is below the threshold, then processor 205 saves in sub-step 1010 the information of the two possible candidate facial feature forming the vector as the left eye and right eye respectively. With the coordinates of the eyes now known, the processor 205 forms in sub-step 1012 a vectorx3 -I(X 2 -x 1 ),y 3 -2 Yl from the centre of the eye-eye 2 2 line to the mouth in the previous frame. A vector is also formed in sub-step 1014 from the centre of the current eye-eye line, which is at x2 y l) to a possible candidate facial feature in list L 3 The processor 205 then calculates in sub-step 1016 the Euclidean distance between the vectors formed in sub-steps 1012 and 1014 respectively. The processor 205 then determines in sub-step 1018 whether the Euclidean distance is below a threshold. If the Euclidean distance is not below the threshold, then processor 205 determines in substep 1019 whether another vector can be formed in sub-step 1014 with a different possible candidate facial feature from lists L 3 If another vector can be formed, then control is passed to sub-step 1014 from where sub-steps 1014 to 1018 are repeated.
If another vector can not be formed with a different combination of possible candidate facial feature from lists L 3 then, in sub-step 1021, the processor 205 sets the coordinates (x 3
,Y
3 )t+l to "unknown". Step 155 also ends after sub-step 1021.
If the processor 205 determines in sub-step 1018 that the Euclidean distance is below the threshold, then processor 205 saves in sub-step 1020 the position (xi, yi)' of the 648068.doc -33 candidate facial feature corresponding to the mouth as coordinates (x 3 y3)t+1, together with its area A'j as area A 3 and its eccentricity c, as eccentricity E3. Step 155 also ends.
If another vector can not be formed with a different combination of possible candidate facial features in lists L\ and L 2 then, in sub-step 1042, the processor 205 forms a vector (x 3 -x 1 ,y 3 -y 1 from the left eye to the mouth in the previous frame. A vector is also formed in sub-step 1044 from a possible candidate facial feature in list L 1 to a possible candidate facial feature in list L 3 The processor 205 then calculates in sub-step 1046 the Euclidean distance between the vectors formed in sub-steps 1042 and 1044 respectively. The processor 205 then determines in sub-step 1048 whether the Euclidean distance is below a threshold.
If the Euclidean distance is below the threshold, then processor 205 saves the the information of the two possible candidate facial feature forming the vector as the left eye and mouth respectively in sub-step 1050 before step 155 ends If the Euclidean distance is not below the threshold, then processor 205 determines in sub-step 1049 whether another vector can be formed in sub-step 1044 with a different combination of possible candidate facial features in lists L 1 and L 3 If another vector can be formed, then control is passed to sub-step 1044 from where sub-steps 1044 to 1048 are repeated.
If another vector can not be formed with a different combination of possible candidate facial features in lists L, and L 3 then, in sub-step 1052, the processor 205 forms a vector (X 3 -x2,Y 3 -y 2 from the right eye to the mouth in the previous frame. A vector is also formed in sub-step 1054 from a possible candidate facial feature in list L 2 to a possible candidate facial feature in list L 3 The processor 205 then calculates in sub-step 1056 the Euclidean distance between the vectors formed in sub-steps 1052 and 1054 respectively. The processor 205 648068.doc -34then determines in sub-step 1058 whether the Euclidean distance is below a threshold. If the Euclidean distance is not below the threshold, then processor 205 determines in substep 1059 whether another vector can be formed in sub-step 1054 with a different combination of possible candidate facial features in lists L 2 and L 3 If another vector can be formed, then control is passed to sub-step 1054 from where sub-steps 1054 to 1058 are repeated.
If another-vector can not be formed with a different combination of possible candidate facial features in lists L 2 and L 3 then, in sub-step 1062, the possible candidate facial feature in lists LI, L 2 and L 3 with the smallest Euclidean distance dil, di 2 or di3 (calculated in step 150) is assigned as corresponding to the corresponding feature by saving its information, while the coordinates of the other two features are set to "unknown". Step 155 then ends.
If the processor 205 determines in sub-step 1058 that the Euclidean distance is below the threshold, then processor 205 saves the information of the two possible candidate facial features forming the vector as the right eye and mouth respectively.
In summary, irrespective of which scenario exists, step 155 assigns one of the possible candidate facial features to each facial feature for tracking if possible, and attempts to recover facial features where appropriate using known geometric relations between facial features Referring again to Fig. 1, after performing step 155 the processor 205 determines in step 160 whether there are any more frames available. If no more frames are available for processing, then method 100 ends in step 180.
If more frames are available for processing, then method 100 continues to step 170 where a new frame is received by the processor 205. The new frame is added to the 648068.doc block of pixel data, while the oldest frame in the block is removed from the block. The segmentation step 120 is again performed on the updated block of pixel data.
After the segmentation step 120 described with reference to Fig. 3 has been performed a first time, in subsequent execution of the segmentation step 120 the 3D segments Si formed in a previous segmentation are maintained in sub-step 304. The pixels of the new frame are added to the data structure representing the current segment Si as new individual segments, each with model parameter a(x,y,n) set to the colour value and observing the correct adjacency relations with existing segments Si. The effect of the segmentation step 120 is thus to merge the unsegmented pixels of the new frame into the existing 3D segments Si from a previous segmentation. However, the model parameter a(x,y,n) of those existing segments Si from a previous segmentation may adjust due to the information contained in the new frame.
The sequence of coordinates (xj,y j provides the positions of the features in each frame t. It is noted that the coordinates (xj,yj), are transformed back to the coordinate system of the frames before outputting the same.
The foregoing describes only some embodiments of the present invention, and modifications and/or changes can be made thereto without departing from the scope and spirit of the invention, the embodiments being illustrative and not restrictive. The embodiment described tracks the facial features of a single face, but it would be understood by those skilled in the art that the facial features of any number of faces may be tracked in the same manner.
In the context of this specification, the word "comprising" means "including principally but not necessarily solely" or "having" or "including", and not "consisting only of'. Variations of the word "comprising", such as "comprise" and "comprises" have correspondingly varied meanings.
648068.doc

Claims (24)

1. A method of tracking facial features in a video sequence, said method I comprising the steps of: receiving facial features for tracking in a first frame of said video sequence; 0(b) forming a three dimensional block of data from said video sequence where oO ,I the first and second dimensions relate to the dimensions of said first frame and the third dimension relates to the position of frames in said video sequence; performing three-dimensional segmentation on said block of data to form a plurality of three-dimensional segments; segmenting said three-dimensional segments along said third dimension to provide a sequence of associated two-dimensional segments; identifying one of said two-dimensional segments in said first frame including said facial features for tracking; identifying candidate facial features in at least a second two-dimensional segment in the sequence of segments associated with said one two-dimensional segment including said facial features for tracking; and verifying which of said candidate facial features correspond with said facial features for tracking.
2. A method as claimed in claim 1 comprising the further step of: recovering lost facial features by using known geometric relations between facial features. 648068 -37-
3. A method as claimed in claim 1 or 2 wherein step comprises the sub-steps of: (fi) forming a sub-image including said two-dimensional segment in said sequence of associated segments; (fii) normalising the size of said sub-image; and (fiii) identifying candidate facial features in said normalised sub-image.
4. A method as claimed in any one of claims 1 to 3 wherein step measures the correspondence between said candidate facial features and said facial features for tracking.
A method as claimed in claim 4 wherein step comprises determining whether said candidate facial features are within a region of said facial features for tracking in a previous frame.
6. A method as claimed in claim 5 wherein step further comprises determining whether said candidate facial features within each of said regions are similar in shape to said facial features for tracking in said previous frame.
7. A method of tracking facial features in a sequence of associated two- dimensional segments, a first segment in said sequence of associated two-dimensional segments including facial features for tracking, said method comprising the steps of: identifying candidate facial features in at least a second two-dimensional segment in said sequence of associated segments; 648068 -38- verifying which of said candidate facial features correspond with said facial features for tracking; and tb3 recovering lost facial features by using known geometric relations between C facial features.
8. A method as claimed in claim 7 wherein step comprises the further sub- 00 C steps of: (ai) forming a sub-image including said two-dimensional segment in said sequence of associated segments; (aii) normalising the size of said sub-image; and (aiii) identifying candidate facial features in said normalised sub-image.
9. A method as claimed in any one of claims 7 to 8 wherein step measures the correspondence between said candidate facial features and said facial features for tracking.
A method as claimed in claim 9 wherein sub-step comprises determining whether said candidate facial features are within a region of said facial features for tracking in a previous frame.
11. A method as claimed in claim 10 wherein sub-step further comprises determining whether said candidate facial features within each of said regions are similar in shape to said facial features for tracking in said previous frame. 648068 -39-
12. An apparatus for tracking facial features in a video sequence, said Napparatus comprising: tb3 means for receiving facial features for tracking in a first frame of said video Ssequence; means for forming a three dimensional block of data from said video sequence where the first and second dimensions relate to the dimensions of said first frame and the 00 C third dimension relates to the position of frames in said video sequence, for performing three-dimensional segmentation on said block of data to form a plurality of three- dimensional segments, for segmenting said three-dimensional segments along said third dimension to provide a sequence of associated two-dimensional segments, a first segment in said sequence of associated two-dimensional segments; means for identifying one of said two-dimensional segments in said first frame including said facial features for tracking; means for identifying candidate facial features in at least a second two- dimensional segment in the sequence of segments accociated with said one two- dimensional segment including said facial features for tracking; and means for verifying which of said candidate facial features correspond with said facial features for tracking.
13. An apparatus as claimed in claim 12 further comprising: means for recovering lost facial features by using known geometric relations between facial features.
14. An apparatus as claimed in claim 12 or 13 wherein said means for identifying candidate facial features comprises: 648068 means for forming a sub-image including said two-dimensional segment in said sequence of associated segments; means for normalising the size of said sub-image; and N means for identifying candidate facial features in said normalised sub-image.
15. An apparatus for tracking facial features in a sequence of associated 00 oO two-dimensional segments, a first segment in said sequence of associated two- dimensional segments including facial features for tracking, said apparatus comprising: means for identifying candidate facial features in at least a second two- dimensional segment in said sequence of associated segments; means for verifying which of said candidate facial features correspond with said facial features for tracking; and means for recovering lost facial features by using known geometric relations between facial features.
16. An apparatus as claimed in claim 15 wherein said means for identifying comprises: means for forming a sub-image including said two-dimensional segment in said sequence of associated segments; means for normalising the size of said sub-image; and means for identifying candidate facial features in said normalised sub-image.
17. A program stored on a memory medium for tracking facial features in a video sequence, said program comprising: 648068 -41 code for receiving facial features for tracking in a first frame of said video Ssequence; code for forming a three dimensional block of data from said video sequence C1 where the first and second dimensions relate to the dimensions of said first frame and the third dimension relates to the position of frames in said video sequence, for performing 0 three-dimensional segmentation on said block of data to form a plurality of three- 00 r dimensional segments, for segmenting said three-dimensional segments along said third dimension to provide a sequence of associated two-dimensional segments, a first segment in said sequence of associated two-dimensional segments; code for identifying one of said two-dimensional segments in said first frame including saidjfacial features for tracking; code for identifying candidate facial features in at least a second two- dimensional segment in the sequence of segments associated with said one two- dimensional segment including said facial features for tracking; and code for verifying which of said candidate facial features correspond with said facial features for tracking.
18. A program as claimed in claim 17 further comprising: code for recovering lost facial features by using known geometric relations between facial features.
19. A program as claimed in claim 17 or 18 wherein said code for identifying candidate facial features comprises: code for forming a sub-image including said two-dimensional segment in said sequence of associated segments; 648068 -42- code for normalising the size of said sub-image; and code for identifying candidate facial features in said normalised sub-image. b13 N
20. A program stored on a memory medium for tracking facial features in a sequence of associated two-dimensional segments, a first segment in said sequence of Sassociated two-dimensional segments including facial features for tracking, said program 00 C comprising: code for identifying candidate facial features in at least a second two- dimensional segment in said sequence of associated segments; code for verifying which of said candidate facial features correspond with said facial features for tracking; and code for recovering lost facial features by using known geometric relations between facial features.
21. A program as claimed in claim 20 wherein said code for identifying comprises: code for forming a sub-image including said two-dimensional segment in said sequence of associated segments; code for normalising the size of said sub-image; and code for identifying candidate facial features in said normalised sub-image.
22. A method of tracking facial features in a video sequence, said method being substantially as herein described with reference to the accompanying drawings. 648068 -43-
23. An apparatus for tracking facial features in a video sequence, said apparatus being substantially as herein described with reference to the accompanying drawings.
24. A program for tracking facial features in a video sequence, said program 00 Sbeing substantially as herein described with reference to the accompanying drawings. otO DATED this twenty-fourth Day of August, 2005 CANON KABUSHIKI KAISHA Patent Attorneys for the Applicant SPRUSON&FERGUSON 648068
AU2003248010A 2002-09-18 2003-09-17 Method for Tracking Facial Features in a Video Sequence Ceased AU2003248010B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2003248010A AU2003248010B2 (en) 2002-09-18 2003-09-17 Method for Tracking Facial Features in a Video Sequence

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
AU2002951473 2002-09-18
AU2002951473A AU2002951473A0 (en) 2002-09-18 2002-09-18 Method for tracking facial features in video sequence
AU2003248010A AU2003248010B2 (en) 2002-09-18 2003-09-17 Method for Tracking Facial Features in a Video Sequence

Publications (2)

Publication Number Publication Date
AU2003248010A1 AU2003248010A1 (en) 2004-04-01
AU2003248010B2 true AU2003248010B2 (en) 2005-09-29

Family

ID=34275615

Family Applications (1)

Application Number Title Priority Date Filing Date
AU2003248010A Ceased AU2003248010B2 (en) 2002-09-18 2003-09-17 Method for Tracking Facial Features in a Video Sequence

Country Status (1)

Country Link
AU (1) AU2003248010B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3336774B1 (en) * 2016-12-13 2020-11-25 Axis AB Method, computer program product and device for training a neural network

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6108437A (en) * 1997-11-14 2000-08-22 Seiko Epson Corporation Face recognition apparatus, method, system and computer readable medium thereof
US6580810B1 (en) * 1999-02-26 2003-06-17 Cyberlink Corp. Method of image processing using three facial feature points in three-dimensional head motion tracking

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6108437A (en) * 1997-11-14 2000-08-22 Seiko Epson Corporation Face recognition apparatus, method, system and computer readable medium thereof
US6580810B1 (en) * 1999-02-26 2003-06-17 Cyberlink Corp. Method of image processing using three facial feature points in three-dimensional head motion tracking

Also Published As

Publication number Publication date
AU2003248010A1 (en) 2004-04-01

Similar Documents

Publication Publication Date Title
US7352881B2 (en) Method for tracking facial features in a video sequence
CN113344932B (en) A Semi-Supervised Single-Object Video Segmentation Method
Schonberger et al. Learning to fuse proposals from multiple scanline optimizations in semi-global matching
US20040017933A1 (en) Face detection and tracking in a video sequence
ES3051933T3 (en) Layered motion representation and extraction in monocular still camera videos
CN103430218A (en) Method of augmented makeover with 3d face modeling and landmark alignment
KR20220098895A (en) Apparatus and method for estimating the pose of the human body
EP3118814A1 (en) Method and apparatus for object tracking in image sequences
CN114402370B (en) Self-adaptive hand tracking and gesture recognition based on facial-shoulder feature coordinate transformation
CN111709997B (en) SLAM implementation method and system based on point and plane characteristics
CN1892702B (en) Tracking apparatus
CN115170794A (en) Visual SLAM dynamic feature point eliminating method and system in dynamic scene
CN110751097A (en) A Semi-Supervised 3D Point Cloud Gesture Keypoint Detection Method
CN113034675A (en) Scene model construction method, intelligent terminal and computer readable storage medium
Delmerico et al. Building facade detection, segmentation, and parameter estimation for mobile robot localization and guidance
CN111161219A (en) A Robust Monocular Vision SLAM Approach for Shadowed Environments
Roth et al. Deep end-to-end 3d person detection from camera and lidar
CN116429087A (en) A Visual SLAM Method Adapted to Dynamic Environment
Zhang et al. YGC-SLAM: A visual SLAM based on improved YOLOv5 and geometric constraints for dynamic indoor environments
Qian et al. LS3D: Single-view gestalt 3D surface reconstruction from Manhattan line segments
Che et al. Traffic Light Recognition for Real Scenes Based on Image Processing and Deep Learning.
Argyros 3D head pose estimation from multiple distant views
AU2003248010B2 (en) Method for Tracking Facial Features in a Video Sequence
CN119359767A (en) Human body optical flow estimation method based on frequency domain prior
Feng et al. HOSO: Histogram of surface orientation for RGB-D salient object detection

Legal Events

Date Code Title Description
FGA Letters patent sealed or granted (standard patent)
MK14 Patent ceased section 143(a) (annual fees not paid) or expired