An image processing method and apparatus

Abstract: A real time output containing data relating to states of facial parts is generated. A facial area detection unit (11) has monitoring (51-57) and determining (59-61) processing circuits operating in a pipelining manner to determine position of the facial area. The monitoring circuits (51-57) monitor pixel value frequency using 3D histogram and backprojection processing. The generating facial area signal has masks applied by a unit (12) which supplies data to mouth area and eye area detection units (14,15). Each of these operate on similar principles to the facial area detection unit (11).

Description: The invention relates to image processing, and more particularly to processing of images are of facial expressions. European Patent Specification No. EP 474,307A2 (Philips) describes a system having means for receiving facial image data and processing means for processing this data. In more detail, this specification describes a method of tracking an object such as a face. An initial template of the face is formed and a mask outlining the face is extracted. The mask is then divided into a number of sub-templates which are not associated with specific features of the subject. Each successive frame is searched to determine matches. While this method appears to be effective for tracking an overall object such as a face, it does not provide the necessary data relating to state (location, orientation, open/closed status etc.) of parts of the face and other parts such as fingertips. Accordingly, it would appear to have limited applicability and not to be suitable to such tasks as automatic generation of sign language data and generation of displays to assist in understanding and communicating sign language. It is known to provide an image processing apparatus comprising receiving means for facial image data, and processing means for processing the facial image data in which said receiving means comprises means for receiving at least one colour facial image data stream in digital format and in which said processing means comprises a plurality of image data processing circuits interconnected for processing the image data in a pipelining manner to provide a real time output, the circuits comprising means for monitoring colour values in the image data to identify image data pixels representing facial parts, and means for determining states of the facial parts by monitoring positional coordinates of the identified pixels and an output device for outputting the determined facial part state data in real time. A typical example of this is described in various publications and in particular in Proceedings CVPR '85: IEEE Computer Society Conference on Computer Vision and Pattern Recognition, San Francisco , CA , USA , 19-23 June 1985, 1985, Silver Spring, MD, USA, IEEE Comput. Soc. Press, USA, pp 40-47, Petajan E D 'Automatic Lipreading to enhance speech recognition '. However, there would be considerable computational, operational difficulties carrying out imaging processing according to the disclosure of this document. While this document does not disclose the processing of colour images, the use of colour information for determining facial parts is already well known and is, for example, disclosed in IEICE Transactions on Information and Systems, vol. E76-D , no. 10 , 1 Oct . 1993, pp 1190-1198 , Akamatsu S et al 'Automatic Extraction of Target Images for Face Identification Using the Sub-Space Classification Method'. While other general background information is disclosed in Systems and Computers in Japan, 1993, USA, vol. 24 , no. 2 , pp 88-102, Suenaga Y et al 'Human Reader: an advanced man-machine interface based on human images and speech' and Swain M et al , 'Color Indexing ', International Journal of Computer Vision, vol. 7, no . 1 , pages 11-32, 1991 . In particular in relation to the latter document, it shows that colour histograms of mutli-coloured objects provide a robust efficient queue for indexing into a large database of models. This discusses in some detail histogram backprojection which effectively allows colours that appear in other objects beside the target object are deemphasised so they are less likely to cause confusion in the recognition process. It will however be appreciated that there are certain problems with such methods and in practice would be exceedingly difficult to compute. An object of the invention is to provide for processing of facial images in real time to identify states of facial parts. Achievement of this objective leads to many useful applications such as sign language recognition, automatic cartoon animation, or improved human-machine interfacing for handicapped people. Another object is to provide for processing of hand images in conjunction with facial images for assistance in sign language understanding and communication, for example. In this specification, the phrase "sign language" relates to not only what is conventionally referred to as sign language for deaf people but also to recognition of mouth movements to assist in lip reading. The term "recognition" is used in a general manner referring to a broad range of activities including full recognition of sign language to screen display of sign language movements to assist in recognition by the user. Further, the term "colour" is intended to cover all colours including white, black and grey. According to the invention there is provided an image processing apparatus comprising receiving means for facial image data, and processing means for processing the facial image data; in which said receiving means comprises means for receiving at least one colour facial image data stream in digital format; and in which said processing means comprises:- a plurality of image data processing circuits interconnected for processing the image data in a pipelining manner to provide a real time output, the circuits comprising :- means for monitoring colour values in the image data to identify image data pixels representing facial parts, and means for determining states of the facial parts by monitoring positional coordinates of the identified pixels; and the apparatus further comprises:- an output device for outputting the determined facial part state data in real time; characterised in that said means for monitoring colour values carries out three-dimensional colour histogram matching using a variable bucket size to group similar colours into single boxes to generate the three-dimensional colour histogram and to monitor frequency of occurrence of pixel values in the image data; and in which there is a backprojection means for comparing at least one bucket representing facial parts of a template histogram generated off-line with the corresponding bucket of a generated histogram of the image data; whereby the bucket of the image data is more likely to represent a facial part the closer the ratio between the two buckets is to 1. Ideally the determining means further comprises a counter for determining the area of the facial part or parts. Ideally, the apparatus further comprises means for normalising the received colour facial image data stream. Preferably, the processing circuits comprise :- a facial area detection unit comprising circuits for carrying out facial area detection operations on the image data; and a facial part detection unit connected to said facial area detection unit and comprising processing circuits for determining states of a facial part within the detected facial area using the image data and an output signal from said facial area detection unit. In another embodiment, the apparatus further comprises a mask generating unit connected between the facial area and facial part detection units. In one embodiment, the apparatus comprises two facial part detection units, namely :- a mouth area detection unit; and an eye area detection unit. Ideally, the apparatus further comprises a mask generating unit connected between the facial area detection unit and the facial part detection units, said mask generating unit comprising means for generating an eyes mask signal and a mouth mask signal. In this latter embodiment, the mouth area and eye area detection units are connected in the apparatus to operate on the same image data in parallel. Ideally, the apparatus further comprises means for carrying out a consistency check to validate determined positional data. Preferably, each processing unit comprises means for carrying out a consistency check on positional data which it generates. Preferably, the consistency check means comprises a processor programmed to compare the positional data with reference positional data. In another embodiment, the monitoring means comprises means for carrying out binary erosion and binary dilation steps to generate image data in which noise is reduced and the subject area is recovered. In a further embodiment, the apparatus further comprises image data processing circuits for determining location of a coloured fingertip represented in the input image data. In one embodiment, the apparatus comprises image processing circuits for facial area and separate image processing circuits for coloured fingertips, said circuits being connected to process the input image data in parallel. Preferably, the apparatus further comprises a result processor comprising means for receiving facial part and coloured fingertip positional data to generate an output signal representing proximity of a coloured fingertip to facial parts for assistance in communication of sign language. The apparatus may comprise a video device for generating the image data stream, which may be a camera having an analog to digital convertor. In another aspect, the invention provides a method of processing facial image data in an image processing apparatus comprising circuits interconnected for processing the facial image data, the method comprising the steps of: receiving (20) a digital colour image data stream; monitoring (22) colour values in the image data to identify image data pixels representing facial parts; determining (22) states of the facial parts by monitoring positional coordinates of the identified pixels, said monitoring and determining steps being carried out by processing circuits interconnected for processing the image data in a pipelining manner; and outputting (38) in real time a signal representing the determined facial part state data; characterised in that the method further comprising the steps of: grouping similar colours into single boxes of variable bucket size; generating a three-dimensional colour histogram from boxes to monitor frequency of occurrence of pixel values in each box; comparing the generated histogram with a template histogram off-line; calculating the ratio of at least one bucket of the template histogram with a bucket of the generated histogram; determining whether the bucket of the generated histogram represents a facial part from the ratio. In this aspect, the monitoring and determining steps may be carried out to initially identify facial area and position, and subsequently to identify facial parts and determine states of the facial parts. Preferably in the monitoring step 1 the additional steps are performed of dividing the number of pixels in the corresponding boxes of one of the histograms and the template histogram by the other, the divisor always being the lowest number to provide a new ratio histogram. The invention will be more clearly understood from the following description of some embodiments thereof, given by way of example only with reference to the accompanying drawings, in which :- Figs. 1(a), 1(b) and 1(c) are outline views of an image processing system of the invention; Fig. 2(a) is an overview flow chart of a method carried out by the system and Fig. 2(b) is a table showing processing parameters in the flow chart; Figs. 3(a), (b) and (c) are diagrams illustrating normalisation of a captured RGB image; Fig. 4 is a flow diagram showing facial area detection steps and processing parameters; Figs. 5 to 9 inclusive are block diagrams showing a facial area detection unit of the system; Figs. 10 to 21 inclusive are diagrams showing in more detail the manner in which the steps of Fig. 2(a) for facial area detection are carried out; Fig. 22 is a flow diagram showing coloured fingertip detection steps; Figs. 23(a) and 23(b) are block diagrams of a unit for coloured fingertip and mouth area detection; Figs. 24 and 25 are diagrams showing some coloured fingertip detection steps in detail; Fig. 26 and Figs. 27(a) and (b) are block diagrams showing a unit for generation of facial part masks; Figs. 28 and 29 are diagrams showing facial part mask detection and input image masking steps in detail; Fig. 30 is a flow diagram showing mouth area detection steps; Figs. 31(a) and (b) are flow diagrams showing eye area detection steps; Figs. 32(a), (b), (c) and 33 are block diagrams showing a unit for eye area detection; Figs. 34 to 37 are diagrams showing eye area detection steps in more detail; Fig. 38 is a schematic diagram showing a communications support system of the invention to help deaf people to lip read, and Fig. 39 is a flow diagram showing operation of this system; and Fig. 40 is a schematic diagram showing a machine interface for lip reading and Fig. 41 is a flow diagram showing operation of this system. Referring to the drawings, and initially to Figs. 1(a), 1(b) and 1(c), there is shown an image processing system 1 of the invention. The system 1 comprises a video camera 2 connected to an image processing device 3 controlling a video screen 4. The device 3 is connected to a workstation 5 having processing circuits to assist in decision-making in the system 1. The primary purpose of the system 1 is to monitor movement of facial parts and to provide information on the proximity of a person's fingertips to facial parts. These are important aspects of sign language. A sample screen display 6 is shown in Fig. 1 (a). Fig. 1 (b) shows an effective arrangement for the camera 2 whereby it is mounted on a frame 7 next to a light source 8 at a lower level than the subject's face and is directed upwardly in the direction of the line A. This ensures that the face is always in the field of view, even when the subject's head has been lowered. The system 1 operates to identify facial parts and fingertips and determines states for them according to their locations, orientation, open/shut status etc.. This data is generated in real time and the system 1 is therefore useful for such applications as :- (a) sign language recognition, where the positional relationship of the fingertip to facial feature helps to determine the sign gesture, (b) automatic cartoon animation, where cartoon characters can be generated in real-time using the results of the identification to give realistic facial gestures, and (c) human-machine interfacing, where the facial part movement such as that of the eyes can be used to control a screen cursor, and where the movement of the mouth could be used to act as a switch, for use in applications where the user only has control of facial part movements. Referring now to Fig. 1(c) in particular, the general construction of the system 1 is illustrated. The camera 2 is connected to the device 3 at a normalisation unit 10 which is for elimination of noise caused by the ambient illumination conditions. An RGB image is outputted by the normalisation circuit 10 to a sub-system comprising units 11 and 12 for detection of facial area and for generation of facial part masks. The normalisation unit 10 also delivers RGB image input signals to a fingertip detection unit 13. The facial part mask unit 12 is connected to provide masking data to both a mouth area detection unit 14 and an eye area detection unit 15. The units 13, 14, and 15 are all connected at their outputs to the workstation 5 which automatically interprets sign language signal content of the received data. The output signal may be used as desired, according to the particular application. Before describing construction and operation of the system 1 in detail, important functional aspects are now briefly described. The input is a stream of digital colour (in this case RGB) image data and this is processed by the circuits in the various units in a pipelining manner i.e. successive operations are carried out on one or more data streams, individual operations being relatively simple. Processing in this manner helps to achieve real time processing. Accordingly, the output data may be used very effectively for a number of applications, some of which are outlined above. Another important aspect is that the major units in the device 3 each include circuits which fall into two main categories, namely monitoring and determining circuits. The monitoring circuits monitor the colour values of the image data stream (and more particularly, pixel value frequencies) to identify subjects, while the determining circuits use this data to determine position and area data for the subjects. For the unit 11 the subject is the facial area generally, for the unit 13 a coloured fingertip, for the unit 14 the mouth area, and for the unit 15 the eyes. In other embodiments, there is only facial area and mouth area detection, however the underlying technical features remain the same. The arrangement of units providing general followed by specific subject image data processing also helps to reduce complexity and achieve real time processing. Another important feature is provision of mask data between the general and specific subsequent processing, in this embodiment generated by the unit 12. This improves efficiency of subsequent processing. Instead of a camera, the primary image signal may be provided by any suitable video device such as a video tape player. The digital image data may alternatively received from an external source, which may be remote. Referring now to Figs. 2 - 37 operation of the system 1 is now described in detail. The overall method of operation is illustrated in flow chart format in Fig. 2(a) and 2(b). In step 20 of the method, the next frame image is captured by writing an analog pixel stream in the camera 2 between synchronisation pulses to an image memory via an A/D converter within the camera 2. This provides the initial digital input RGB image signal. In step 21, normalisation takes place. This involves inputting the captured RGB image to a large look-up table in SRAM as illustrated in Fig. 3(a) and generating a normalised RGB signal image by translation of the RGB value of each pixel according to the formulae of Fig. 3(b) or Fig. 3(c). The look-up table is pre-coded with coefficients for translation of the RGB values. The coefficients of the lookup table are calculated using either of two functions given in Figs. 3(b) and 3(c). The 24 bit RGB image data is made of up of three 8 bit values, one representing R, one representing G, and one representing B. These three values are combined for one 24 bit address into the lookup table. Using the formulae, it is possible to calculate new 8 bit values representing Normalised R, Normalised G, and Normalised B. These three 8 bit data values are combined to form a single 24 bit data signal which is outputted as the Normalised RGB image. The coefficients are precoded into the table and down-loaded into the coefficients during initialisation to the SRAM 10. Alternatively, they may be pre-coded by programming the coefficients into a PROM at time of manufacture. Where it is desired to use less memory a more complex circuit having a number of smaller look-up tables having discrete logic could be used, whereby processing is broken down into several steps. This arrangement requires less memory but provides a lower resolution. In step 22 the facial area of the captured image is detected by the unit 11. Step 22 is illustrated in more detail in Fig. 4 in which the steps 22(a) to 22(n) are shown and processing parameters are indicated. The facial area detection unit 11 is shown in more detail in Fig. 5. The unit 11 comprises a 3D histogram and backprojection circuit 51 connected to a smoothing #1 circuit 52. The former circuit is shown in detail in Fig. 6, the latter in Fig. 7(a). Operation of the circuit 51 can be divided into three phases of operation, namely X, Y and Z. The operation is as follows. Phase X The input image is routed via a multiplexor (MUX) to a memory (MEM) which is used to store an Image Colour Histogram. The pixel values are used as an address to lookup a histogram value which is loaded in a COUNTER. The counter is then incremented to indicate that another pixel whose value is within this histogram box has been encountered, and then this value is re-written back into the Image Colour Histogram memory. This process is repeated until all pixels in the input image have been processed. A histogram of the pixel values now resides in the Image Colour Histogram memory. It should be noted that this memory must be initialised to zero at the start of each frame. Phase Y In this phase an Internal Addr Gen is used to provide a memory address to the Image Colour Histogram memory and a Model Colour Histogram memory. The Model Colour Histogram is loaded with a histogram of the model colour off-line, using a workstation to down-load the values into memory. The multiplexor is set so that the Internal Addr Gen impinges upon the Image Colour Histogram. The Internal Addr Gen generates address for all of the histogram boxes and simultaneously the value for the Image Colour Histogram and the Model Colour Histogram are output to the Divider Unit. The Divider Unit, which can be either an ALU or a LUT, divides these two numbers and stores the result in a Ratio Colour Histogram memory. The address for the Ratio Colour Histogram memory is also supplied by the Internal Addr Gen via another multiplexor (MUX). The process continues until all boxes in the histogram have been processed. Phase Z In this phase the address to the Ratio Colour Histogram memory is supplied by the pixel values in the original input image, using the multiplexor. The input image is used to lookup the ratio histogram values and output these values to the next processing stage. A histogram circuit 54 (shown in detail in Fig. 7(b)) and a threshold circuit 53 (shown in detail in Fig. 7(c)) are connected to a binary erosion circuit 55 (see Fig. 8(a)). The unit 11 further comprises a binary dilation circuit 56 similar to the binary erosion circuit 55, and a binary dilation circuit * 57 (see Fig. 8(b)) There is also a projection X-Y circuit 59 (see Fig. 9). Finally, the unit 11 comprises a counter 60 and an ALU 61. The signal flows between these circuits are illustrated in Fig. 5, in which the binary erosion circuit is shown twice for conformity with the signal flows. The normalised input image signal has R, G and B components, the position in the data stream representing the x, y position. The RGB image signal is inputted to the circuit 51 and the RGB data is separated as shown in Fig. 10 into its R, G and B components. Using the component values, a histogram of colour space is derived by incrementing the particular box the RGB values point too. The function of the 3D histogram is to indicate the relative frequency that one part of the 3D space occupied in relation to another part of the same 3D space. In this example the 3D space represents RGB colour space, with the value (0,0,0) indicating black, and (255,255,255) indicating white. If the input image was only white, and the Bucket size is set to 1, then all boxes except (0,0,0) will be zero. The function of the variable Bucket Size is to allow a group of similar colours to be represented by a single box. This reduces the number of boxes in the 3D histogram and therefore reduces the complexity of the implementation. After all pixels in the input image are processed, the box in the histogram which has the highest value represents the colour (or colours, if the box in the histogram covers more than a single, discrete colour) which occur most frequently in the input image. The second highest value represents the second most frequent colour, and so on. In backprojection as shown in Fig. 11 the resulting histogram is then compared with a template histogram of the facial part which is to be identified to provide an output BP signal which indicates the degree of possibility that the pixel is in the facial area. A 3D colour histogram of the mouth template is calculated off-line. The resulting histogram represents the frequency of colours within the template image. Those boxes which have colours which are highly representative of the mouth have high values, whilst those boxes which contain no representative contain zero. By dividing the template histogram value by the resulting histogram value in those boxes where the template histogram value is greater than the resulting histogram value, and by dividing the resulting histogram value by the template histogram value in those boxes where the template histogram value is less than the resulting histogram value, a new ratio histogram can be formed which indicates which colours in the input image are likely to belong to the mouth. Finally by using the input RGB image as a look-up address into this ratio histogram, an output image can be formed which highlights those pixels which are most likely to belong to the mouth. The next step (also carried out by the circuit 51) is reduction of the image size by sub-sampling the pixel stream to reduce complexity of processing as shown in detail in Fig. 12. This step involves the circuit 51 carrying out sum and average operations on the input image. The circuit 52 then carries out smoothing operations as shown in Fig. 13 to reduce noise and increase the reliability of the correct threshold function. This involves convolution in which there is multiplication by weights and summation. In more detail, the function of the circuit 52 is to obtain an average value over a group of pixels, whose central pixel is used as the reference pixel. In the simplest case, all pixels are summed and then divided by the number of pixels. This is equivalent to multiplying all pixels by a coefficient of 1 and then summing. However, there are a multitude of smoothing algorithms where the unitary coefficients can be replaced with weight coefficients so that pixels closest to the reference pixel have greater influence on the result than those further away. Figure 13 shows some typical examples. Operation of the circuit 52 can be explained in the following way. The input image enters the circuit shown in Fig. 7(a) at the beginning of the 256 bit shift register. If the correlation surface is N x M, then there are M 256 bit shift registers and N delay elements in each row. The function of each delay element is to simply store a pixel value for 1 clock cycle and then pass it to the next delay elements. Each output from the delay elements is multiplied by a Constant, which are loaded into circuit 52 off-line using the workstation. The results from all of these multiplications are then summed before being outputted. The circuits 54 and 53 (shown in Fig. 7(b) and 7(c)) then generate a histogram as shown in Fig. 14 to obtain the threshold, the output being a set of values of frequency against pixel values as shown in Fig. 15. There is then thresholding in the area (Xs,Ys), (Xe,Ye) to generate a binary BP image as shown in Fig. 16. The sub-script "s" represents start, "e" representing end. As Fig. 14 shows, the function of the circuit 54 is to build a histogram of the pixel values, with the most commonly occurring pixel value having the highest frequency. An implementation is shown in Fig. 7(b) where the pixel value is used as an address to an SRAM to look-up the number of times the pixel value has occurred. This value is then loaded into a counter where it is incremented and then written back into the SRAM. After all pixels have been inputted into the circuit 54 and histogram values calculated, the histogram values are read into an ALU (Arithmetic Logic Unit) in the circuit 54 where a threshold value is calculated. In the circuit 54, the ALU is used to search for the maximum value by reading every histogram value in the SRAM. When the maximum value has been found it is then multiplied by a constant, usually less than 1, to produce a threshold value which is outputted to the next processing stage. The circuit 53, shown in Fig. 7 (c) takes as input the pixel stream and using a comparator compares each pixel against the threshold calculated in the circuit 54. If the pixel value is greater than or equal to the threshold the comparator outputs a 1, else 0. In this fashion, a binary image is formed. The circuit 55 then carries out binary erosion as shown in Fig. 17 to eliminate random noise from the image data. This is followed by binary dilation as shown in Figs. 18(a) and 18(b) to recover the area size. These steps are followed by a further binary erosion step as shown diagrammatically in Fig. 5. The circuit 59 then carries out projection operations to generate projection X and projection Y values for the facial area as shown in Fig. 19 to obtain the position of the final area edges. A projection search is then carried out by the ALU 61 to check representation of the pixels after binary erosion to generate location coordinates (Xsf,Ysf) (Xef,Yef) the sub-scripts indicating the coordinates of a box in which the face is located in the image. Finally, area counting by the counter 60 as shown in detail in Fig. 21 takes place to generate a value for the area of the face. This signal is outputted to the unit 12. The data which is outputted includes the area where the face is to be found in the image. Referring again to the overall flow chart of Fig. 2, a consistency check 23 is carried out by the ALU 60 whereby the position and area values generated in the facial area detection step 22 are monitored for consistency and an accept or reject signal is generated. The criteria used is the area of the identified box. If the area of the box is zero or very small (of the order of only several pixels) this indicates that no face was found in the image. In this event, there is no need to proceed with any additional processing with this frame and therefore the next frame can be processed. In step 24 the detected area is displayed and this appears in a square box on the screen 4. In step 25 there is coloured fingertip detection, the sub-steps 25 (a) to 25 (m) being illustrated in detail in Fig. 22. The input is the normalised RGB image and the output is a set of position and area values, as with the facial area detection step 22. The unit 13 to implement these steps is shown in Fig. 23(a) in which parts similar to those described with reference to Fig. 5 are identified by the same reference numerals. The unit 13 is similar to the mouth area detection unit 14, and indeed the relevant inputs are both indicated, the separate RGB image inputs being indicated by interrupted lines. The unit 13 has an additional smoothing #2 circuit 62, illustrated in Fig. 23(a) and which operates as shown in Fig. 24. There is an additional input to the histogram circuit 54 from an ALU 63 to restrict the area which the histogram is made from. Smoothing #2 and the additional input to the histogram circuit 54 may not be required if quality of the data input is high. The smoothing shown in Fig. 24 involves averaging an area of pixels around a central reference pixel. All smoothing coefficients are unitary, which amounts to all pixels within the specified area being summed and then divided by the number of pixels. The purpose of this step is to help identify a single location where the fingertip is situated. If smoothing was not performed, then it is possible that there would be several pixels which have the maximum value, determined as shown in Fig. 25. It is then difficult to decide which pixel is the true position of the fingertip. By smoothing, an average of the pixels in a given area can be obtained. The position when the fingertip is located will have many pixels in close proximity to one another with high values, whereas areas where the fingertip is not located may have a few high value pixels sparsely separated. After averaging with the smoothing filter, the area of fingertip is enhanced and it is easier to locate to true position of the fingertip. A consistency check is carried out by the ALU 61 in step 26 for acceptance or rejection of the generated position and area data for the coloured fingertips. The detected area is displayed in step 27. A tip area check is carried out in step 28 to determine if the area of the fingertip is within a set tolerance At + At-. If the tip area check is positive, a flag TFLAG is set to 1 in step 29, otherwise it is set to 0. The unit 12 then operates to detect a facial part mask in step 30. The unit 12 is shown in more detail in Figs. 26, 27(a) and 27(b) and the manner in which this step is carried out is illustrated in Fig. 28. This step involves generation of position masks for the mouth and for the eyes using the detected facial area data. Samples of the generated masks are shown at the bottom of Fig. 28. Step 31 involves masking the input image using the normalised RGB image, the mouth mask and the eyes mask as shown in Fig. 29. These masks restrict the area to search for the mouth and eyes to increase the recognition rate. The mask data is fed into the units 14 and 15. The hardware for the mask generation is shown in Fig. 27 (a). The input into the component 65 is the Skin Area Box, (Xsf, Ysf, Xef, Yef). Essentially the Mouth Area and Eye Area are found by splitting this box into two equal regions so that the Eye Area is specified by the box (Xsf, Ysf, Xef, (Ysf + Yef)/2), and the Mouth Area is specified by the box (Xsf, (Ysf + Yef)/2, Xef, Yef). Fig. 27 (b) shows the next stage of processing. The inputs to the component 66 are either the Mouth Area or the Eye Area parameters, which are stored in X1, X2, Y1 and Y2. The combination of counters, comparators and adder produce a pixel address stream which defines the box area in the context of the original image. By using this pixel address as the address to the original image, memory, it is possible to only process that part of the image which is defined as being either Eye Area or Mouth Area, as these pixels which are read from the image memory and passed to other image processing tasks. this technique is advantageous since only the pixels which are within the defined areas are processed by the post image processing hardware and not the whole image, and hence this is faster. Also shown is a multiplexor (MUX) and the Image Pixel Stream which is used to load the original image into the memory at each frame. Position and area data for the mouth area is generated by the unit 14 in step 32 as shown in Fig. 30. The following sub-steps are involved : - (a) histogram (b) backprojection (c) smoothing #2 (d) max. value search (e) smoothing #1 (f) histogram (g) threshold value search (h) threshold of image (i) binary erosion (j) binary dilation (k) projection X & Y (1) projection search, and (m) area counting. The unit 14 which carries out these tasks is shown in Fig. 23(a) and (b) and the sub-steps, being previously described for facial and fingertip detection, will be readily understood from the above description. Of course, a difference is that a masked image is used. An output signal representing mouth area and position is generated. In step 33, there is eye area detection by the unit 15 and reference is made to Figs. 31 to 37. The sub-steps involved are outlined in Figs. 31(a) and 31(b) and the unit 15 is shown in detail in Figs. 32(a), 32(b), 32(c) and 33. The unit 15 comprises an AND gate 70 for reception of the eyes mask and RGB image data. A transformation circuit 71 is connected to the gate 70, and is in turn connected to a multi-template matching circuit 72. The circuit 71 is an SRAM look-up table. The multi-template matching circuit 72 comprises a set of matching circuits 75 connected to a comparator 76, in turn connected to a smoothing #2 circuit 77 similar to that previously described. Further, there are first and second ALU's 78 and 79 connected to a set constant circuit 80. A template matching circuit 75 is shown in detail Fig. 33. In operation, the main inputs are the eye mask data from the unit 12 and the normalised input image from the unit 10, the purpose being to determine the eye positions. After the signals are processed by an AND gate, an SRAM 71 averages and divides by three to give a grey scale value as shown in Fig. 34. The multi-template matching circuit 72 determines the best match for each eye as shown in Figs. 35 to 37, a comparator selecting the closest match. The image is smoothed to determine peak intensities for the eyes by two ALU's. A constant is set to ensure that here is no repetition in determining peaks. The circuit 75 for multi-template matching is an 8 x 8 correlator as illustrated in Fig. 33. In this circuit, the sub-script e1 represents the first eye, e2 the second eye. In step 34 a consistency check is carried out to ensure that the general locations of the detected areas are consistent with the general face layout. In step 35 the detected area is displayed. A decision is then made by the workstation 5 to determine the nearest facial part to the fingertip in step 37, provided the flag TFLAG has been set to one as indicated by the decision step 36. The result is then displayed in step 38 and this involves display of the relevant part in a different colour within a square box. The process ends in step 39. Another aspect to the invention is shown in Figs 38 and 39 whereby the system acts as a communications support system comprising a TV camera 100, an image processing device 101 and a workstation 102 with a video screen 103. The image processing device 101 and the workstation 102 carry out the process steps 110 to 120 shown in Fig. 39. Basically, this system involves use of a sub-set of the circuits shown in the relevant previous drawings. The steps include capture of the next frame image in step 110 followed by normalisation in step 111 and facial area detection in step 112. In step 113 a consistency check is carried out and the system proceeds to step 114 involving display of the detected area if the consistency check output is positive. In step 115 there is detection of the facial part mask and the input image is masked in step 116 for mouth area detection 117. After a consistency check 118, the detected areas displayed in step 119 and the method ends in step 120. It will be appreciated that the communication support system shown in Fig. 38 allows a TV camera to pick up the facial image of a non-deaf person and provides for the generation of a facial image to detect the location of the mouth and its area. This information is transmitted to the workstation 102 which displays the mouth image after the image is magnified. This greatly facilitates lip reading by a deaf person. A still further aspect of the invention is now described with reference to Figs. 40 and 41. A system 130 comprises a TV camera 131, an image processing device 132, a workstation 133 and a video screen 134. The purpose of the system 130 is to provide for the inputting of machine commands by silent lip movement. The TV camera 131 picks up the user's facial image and the device 132 processes the image to detect the location of the mouth and its area in real time. Using this information, the device recognises the word (command) and this is transmitted to the workstation 133. The workstation 133 is controlled by this command to generate a display as shown on the video screen 134. Operation of the device 132, is described in Fig. 41 and it involves capture of the next frame image in step 140, normalisation, 141 and facial area detection 142. There is a consistency check 143 and the detected area is displayed in step 144. Step 145 involves detection of the facial part mask and the input image is masked in step 146 for mouth area detection 147. After a consistency check 148, the detected area is displayed in step 149 and in step 150 the positional area inputs are matched with templates for generation of a command.

Claims: An image processing apparatus (1) comprising receiving means for facial image data, and processing means (3) for processing the facial image data; in which said receiving means (10) comprises means for receiving at least one colour facial image data stream in digital format; and in which said processing means (3) comprises:- a plurality of image data processing circuits (11-15) interconnected for processing the image data in a pipelining manner to provide a real time output, the circuits comprising :- means (51-57) for monitoring colour values in the image data to identify image data pixels representing facial parts, and means (59-61) for determining states of the facial parts by monitoring positional coordinates of the identified pixels; and the apparatus (1) further comprises:- an output device (6) for outputting the determined facial part state data in real time; characterised in that said means (51 to 57) for monitoring colour values carries out three-dimensional colour histogram matching using a variable bucket size to group similar colours into single boxes to generate the three-dimensional colour histogram and to monitor frequency of occurrence of pixel values in the image data; and in which there is a back projection means for comparing at least one bucket representing facial parts of a template histogram generated off-line with the corresponding bucket of a generated histogram of the image data; whereby the bucket of the image data is more likely to represent a facial part the closer the ratio between the two buckets is to 1. An apparatus as claimed in claim 1 wherein then determining means further comprises a counter (60) for determining the area of the facial part or parts. An apparatus as claimed in claim 1 further comprising means (10) for normalising the received colour facial image data stream. An apparatus as claimed in claim 1 wherein the processing circuits comprise :- a facial area detection unit (11) comprising circuits for carrying out facial area detection operations on the image data; and a facial part detection unit (14, 15) connected to said facial area detection unit and comprising processing circuits for determining states of a facial part within the detected facial area using the image data and an output signal from said facial area detection unit. An apparatus as claimed in claim 4 further comprising a mask generating unit (12) connected between the facial area and facial part detection units. An apparatus as claimed in claim 4 comprising two facial part detection units, namely :- a mouth area detection unit (14); and an eye area detection unit (15). An apparatus as claimed in claim 6 wherein the apparatus further comprises a mask generating unit (12) connected between the facial area detection unit (11) and the facial part detection units, (14, 15) said mask generating unit (12) comprising means for generating an eyes mask signal and a mouth mask signal. An apparatus as claimed in claim 6 wherein the mouth area and eye area detection units (14, 15) are connected in the apparatus to operate on the same image data in parallel. An apparatus as claimed in claim 1, wherein the apparatus further comprises means (61) for carrying out a consistency check to validate determined positional data. An apparatus as claimed in claims 4 to 9 wherein each processing unit comprises means (61) for carrying out a consistency check on positional data which it generates. An apparatus as claimed in claim 9 wherein the consistency check means comprises a processor (61) programmed to compare the positional data with reference positional data. An apparatus as claimed in claim 1 wherein the monitoring means comprises means (55, 56, 57) for carrying out binary erosion and binary dilation steps to generate image data in which noise is reduced and the subject area is recovered. An apparatus as claimed in claim 1 further comprising image data processing circuits (13) for determining location of a coloured fingertip represented in the input image data. An apparatus as claimed in claim 1 comprising image processing circuits (11-15) for facial area and separate image processing circuits (13) for coloured fingertips, said circuits being connected to process the input image data in parallel. An apparatus as claimed in claim 13 further comprising a result processor (5) comprising means for receiving facial part and coloured fingertip positional data to generate an output signal representing proximity of a coloured fingertip to facial parts for assistance in communication of sign language. An apparatus as claimed in claim 1 further comprising a video device (2) for generating the image data stream. An apparatus as claimed in claim 16, wherein the video device is a camera (2) having an analog to digital converter. An apparatus as claimed in claim 16 wherein the video device is a camera (2), and the camera is mounted on a frame (7) adjacent a light source (8) so that it is directed upwardly at an angle so that the face of a person seated next to the frame is within the field of view. A method of processing facial image data in an image processing apparatus comprising circuits interconnected for processing the facial image data, the method comprising the steps of: receiving (20) a digital colour image data stream; monitoring (22) colour values in the image data to identify image data pixels representing facial parts; determining (22) states of the facial parts by monitoring positional coordinates of the identified pixels, said monitoring and determining steps being carried out by processing circuits interconnected for processing the image data in a pipelining manner; and outputting (38) in real time a signal representing the determined facial part state data; characterised in that the method further comprising the steps of: grouping similar colours into single boxes of variable bucket size; generating a three-dimensional colour histogram from boxes to monitor frequency of occurrence of pixel values in each box; comparing the generated histogram with a template histogram off-line; calculating the ratio of at least one bucket of the template histogram with a bucket of the generated histogram; determining whether the bucket of the generated histogram represents a facial part from the ratio. A method as claimed in claim 19, wherein the monitoring and determining steps are carried out to initially identify facial area (22) and position, and subsequently to identify facial parts and determine states of the facial parts. A method as claimed in claim 19 in which the additional steps are performed of dividing the number of pixels in the corresponding boxes of one of the histograms and the template histogram by the other, the divisor always being the lowest number to provide a new ratio histogram.

Inventors: SAKO HIROSHI, SMITH ANTHONY, WHITEHOUSE MARK, SAKO,HIROSHI, SMITH,ANTHONY, WHITEHOUSE, MARK
Applicants: HITACHI EUROP LTD, HITACHI EUROPE LIMITED
Application year: 1994
Main classification: G06K9
IPC codes: G06F3, G06T1, G06K9