Abstract:
A human tracking device according to the present invention stably tracks a human with good perception of the distance to a human with high resistance against disturbance. A camera image is divided into a human region and a background region. Then, each area of the image is judged whether or not the human region can be divided into a plurality of blob models corresponding to parts of a human. The parts of a human are preferably the head, trunk and legs. When the result of the judgment is “YES”, a plurality of human blob models are produced based on the human region. When the result of the judgment is “NO”, a single human blob model is produced based on the human region. The human is then tracked based on these human blob models. In this way, the human can be stably tracked with good perception of the distance to the human and with high resistance against disturbance.

Description:
BACKGROUND OF THE INVENTION  
         [0001]    The present invention relates to a human tracking device and related techniques which are incorporated into a monitoring system that monitors intruders.  
           [0002]    Recently, studies for treating a human image contained in a camera image by image-processing have been popularly made. Some of the studies concern a method for detecting moving objects using time-lapse of sequential camera images. This method has insufficient performance to track humans.  
           [0003]    Studies, practically applicable to tracking humans, are disclosed in the following two published papers.  
           [0004]    The first paper, published in the Institute of Electronics, Information and Communication Engineers papers, PRMU99 No. 67, pp. 23-30 by Haga et al, concerns the combination of time-lapse of camera images with template matching. This technique relates to an intruder monitoring system which automatically finds an intruder and tracks him (or her) while zooming and panning. This monitoring system has two tracking algorithms, i.e., template matching and interframe difference. Errors in the tracking point obtained by template matching are corrected using the interframe differences, thereby realizing stable tracking.  
           [0005]    However, in template matching, this technique has the drawback that the tracking tends to fail when a human changes his (or her) posture. This problem arises because a template region is rectangulary defined and matching is carried out using information within the entire template.  
           [0006]    In the second technique, published in the Institute of Electronics, Information and Communication Engineers papers, PRMU99 No. 119, pp. 25-32 by Takashima et al, a human is represented in a simple way with three blob models (near-spherical blocks represented with the position on the coordinate and the similarity of colors) so as to track him (or her). This concept of the blob models is based on PFinder developed by MIT Media Lab.  
           [0007]    According to PFinder, when a human is situated near the camera and therefore is represented by a relatively large image in a camera image, the human can be stably tracked. However, when the human is situated far from the camera and therefore is represented by a small image, the human image is difficult to distinguish from the noise because the small image of the human is still treated as a three-blob model. As a result, the likelihood of tracking failure is increased. Moreover, a non-human object may possibly be regarded as a human. Furthermore, if false modeling is performed at the initial step of processing, this processing is likely to be inconsistent, which may result in the failure of successive processing.  
         OBJECTS AND SUMMARY OF THE INVENTION  
         [0008]    The present invention is devised in view of the above-described problems. The present invention has an object of providing a human tracking device which is capable of stably tracking a human, independently of the distance between the human and the camera, and related techniques thereof.  
           [0009]    According to the first aspect of the present invention, a camera image is divided into at least a human region and a background region. It is judged whether or not it is possible to divide the human region into a plurality of blob models corresponding to parts of a human body. When the result of the judgment is YES, a plurality of human blob models are produced based on the human region. When the result of the judgement is NO, a single human blob model is produced based on the human region. Human tracking is performed based on the resulting human blob models.  
           [0010]    With this structure, the human tracking device has greater resistance disturbing factors such as noise, thereby improving stability. Although only rough tracking is possible with a single human blob model, such tracking is considered sufficient for a human appearing in a distant region of the image because it is generally considered that the threat posed by a human at a great distance from an object or area being protected by human tracking is likely to be small. On the other hand, a human in a close-by region of the image, and is therefore represented by a large image, poses a much greater potential threat. The larger image enables the much more accurate multiple-blob tracking.  
           [0011]    According to the second aspect of the present invention, the plurality of blob models are three blob models, that is, those of the head, the trunk and the legs.  
           [0012]    With this structure, the human can be represented in a simple way with three blob models of the head, the trunk and the legs, whereby stable tracking can be performed. Moreover, only from the positional relationship of these three human blob models, the posture of the human such as standing, sitting, lying and the like can be derived in a simple way.  
           [0013]    According to the third aspect of the present invention, a divisional condition judgment means gives the result of the judgment with reference to the distance information of the human region.  
           [0014]    With this structure, divisional condition judgments can be appropriately carried out using the distance information.  
           [0015]    According to the fourth aspect of the present invention, the divisional condition judgment means gives the result of the judgment with reference to the size of the human region.  
           [0016]    With this structure, a human image can be flexibly treated with reference to the size of the human region. For example, when a human having a large physique appears in a rather distant region of the image, a plurality of human blob models are produced, whereas when a small baby appears in a close-by region of the image, a single blob model is produced.  
           [0017]    According to the fifth aspect of the present invention, a plurality of background blob models are produced based on the background region.  
           [0018]    With this structure, blob models are also applied to the background region, thereby making it possible to treat the background in a simpler way.  
           [0019]    According to the sixth aspect of the present invention, in addition to the fifth aspect of the present invention, a region division means obtains a minimum value of similarity between the pixel and the background blob models. When this minimum value is above a threshold value, the pixel is judged not to correspond to the background region.  
           [0020]    With this structure, the comparison with the minimum value enables the ability to appropriately distinguish a pixel which does not correspond to the background region (that is, one which possibly, corresponds to a human region).  
           [0021]    According to the seventh aspect of the present invention, in addition to the fifth aspect of the present invention, the background blob model is expressed to include X-Y coordinate average values and RGB average values of the region.  
           [0022]    With this structure, blob models which faithfully and concisely reflect the features of the background region can be obtained.  
       
    
    
       [0023]    The above, and other objects, features and advantages of the present invention will become apparent from the following description read in conjunction with the accompanying drawings, in which like reference numerals designate the same elements.  
       BRIEF DESCRIPTION OF THE DRAWINGS  
       [0024]    [0024]FIG. 1 is a block diagram of a human tracking device according to one embodiment of the present invention.  
         [0025]    [0025]FIG. 2 is a flowchart of an initializing processing of the human tracking device according to one embodiment of the present invention.  
         [0026]    [0026]FIG. 3 is a flowchart of a region dividing process of the human tracking device according to one embodiment of the present invention.  
         [0027]    [0027]FIG. 4 is a flowchart of divisional condition judgment of the human tracking device according to one embodiment of the present invention.  
         [0028]    [0028]FIG. 5 is a flowchart of human blob model production of the human tracking device according to one embodiment of the present invention.  
         [0029]    [0029]FIG. 6 is a diagram illustrating a background blob model of the human tracking device according to one embodiment of the present invention.  
         [0030]    [0030]FIG. 7 is a diagram illustrating distance information of the human tracking device according to one embodiment of the present invention.  
         [0031]    [0031]FIG. 8 is an exemplary diagram of OTHER_FLAG of the human tracking device according to one embodiment of the present invention.  
         [0032]    [0032]FIG. 9 is an exemplary diagram of pixel information of the human tracking device according to one embodiment of the present invention.  
         [0033]    [0033]FIG. 10 is an exemplary diagram of pixel information of the human tracking device according to one embodiment of the present invention.  
         [0034]    [0034]FIG. 11 is an exemplary diagram of a human region of the human tracking device according to one embodiment of the present invention.  
         [0035]    [0035]FIG. 12 is an exemplary diagram of a human blob model of the human tracking device according to one embodiment of the present invention.  
     
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS  
       [0036]    Referring to FIG. 1, a human tracking device according to the present invention includes a control means  1 , consisting of a CPU (Central Processing Unit) and the like, that controls the other components to alternately perform image input, imgae initialization, and other processes.  
         [0037]    A storage means  2  consists of a frame memory which stores image information inputted from an image input means  4  such as a camera. Storage means  2  also contains a random access memory (RAM) which stores a control program executed by the control means  1  as well as information necessary for the operation of the control program. The RAM also stores human blob models, background blob models and the like, which are described below.  
         [0038]    A display means  3  monitors the current image from the image input meansw  4  and the human blob models. The display means  3  also serves as a user interface for distance information acquisition.  
         [0039]    During initialization, a background blob model production means  5  vertically and horizontally divides the current camera image into a plurality of regions at equal intervals to produce background blob models of the respective divided regions. In this embodiment, as shown in FIG. 6, the camera image is divided into six regions in a horizontal direction and in five regions in a vertical direction at equal intervals (30 regions in total). Each divided region is identified by the region numeral 0, 1, 2, . . . , 29. Then, the background blob model is defined as expressed in the upper part of FIG. 6.  
         [0040]    Each pixel in the image has five-dimensional information, that is, X-Y coordinate (x,y) and color information in the RGB color space (r,g,b). In these blob models, elements include an average value, variance and covariance of the X-Y coordinate, and an average value, variance and covariance of the above color information and so on, whereby the features of each divided region can be represented in a simple and faithful way.  
         [0041]    The background blob model may be produced using only a single frame of the camera image, or it may be produced using an average image obtained by adding a plurality of frames.  
         [0042]    A distance information indication means  6  obtains information identifying the portions of the camera image that are distant from the camera and the portions of the camera image that are close-by. In this embodiment, as shown in FIG. 7, the camera image is shown to a user on display means  3 . The user indicates a boundary between a close-by region and a distant region using a suitable input device such as, for example, a pointing device or a keyboard. The distance information of the regions is divided by this boundary.  
         [0043]    Then, a close-by region is set with NEAR_FLAG while a distant region is set with FAR_FLAG. Although the entire camera image is divided into two regions by a straight line in FIG. 7, such a division is only exemplary. The entire camera image may be divided into three or more regions, depending on the geography. The shape of the boundary may by freely chosen. The shape may be, for example, one or more curves or a combination of a straight line and a curve. The system may measure a distance in the depth direction so as to automatically set the boundary. For this automatic setting, arbitrary methods can be used such as utilization of a distance sensor or the irradiation of light having a sin wave pattern, or utilization of parallax information obtained from corresponding points in the camera images taken by a stereo camera or a plurality of cameras. If the terrain is known, the distance information for each camera angle may be stored and retrieved as the camera line of sight is changed.  
         [0044]    A region division means  7  divides the camera image into a human region and a background region. In this embodiment, pixels of a non-background region (i.e., a possible human region) are set with OTHER_FLAG while the pixels that probably do not contain a human are not set with OTHER_FLAG. This procedure will be described in greater detail below.  
         [0045]    A divisional condition judgment means  8  examines whether or not the human region extracted by the region division means  7  should be represented with a plurality of blob models. Basically, the divisional condition judgment means  8  gives the result “Yes” for a human image (block of pixels) which appears close-by and is therefore large in the camera image and “No” for images other than the human images. This will be described below in greater detail.  
         [0046]    A human blob model production means  9  produces three human blob models, that is, those of the face, the trunk and the legs when the result of the above judgment is “Yes”. The human blob model production means  9  produces a single human blob model when the result of above judgment is “No”. This will also be described in greater detail below.  
         [0047]    A human tracking means  10  inputs the human blob models produced by the human blob model production means  9  so as to update the human blob model and the background blob model, thereby performing extraction of the human, tracking and simple judgment of his (or her) posture. Specifically, the following processing are performed.  
         [0048]    (1) Since the human blob model set with FAR_FLAG is represented by a single human blob model, the central position of this human blob model is obtained as the central position of the human. The movement of the human is tracked through the locus of this central position of the human blob model.  
         [0049]    (2) The human blob model set with NEAR_FLAG is represented by the above three human blob models. The blob model having a characteristic point obtained by Hough transform is determined as a face blob model while the blob models adjacent to the face blob model are determined as a trunk blob model, and a legs blob model in this order. The movement of the human is tracked through the locus of these blob models.  
         [0050]    The human tracking means  10  judges the posture of the human in the following way. When the blob model of the head is situated on top and the aspect ratio of a circumscribed rectangle surrounding three blob models is within a threshold value, the human is judged to be “standing”. When three blob models are arranged in a horizontal line, the human is judged to be “lying”. In the cases where the blob model does not correspond to any of these two cases, the human is judged to be “sitting”.  
         [0051]    Referring now to FIG. 2, the operation of the initialization will be described. First, at Step 1, the camera image (which, desirably, does not contain a human image) inputted from the image input means  4  is stored in a frame memory of the storage means  2 . Next, based on the image stored in the frame memory, the background blob model production means  5  produces the background blob models (30 blob models in total) shown in FIG. 6. The distance information is obtained by the distance information indication means  6  (Step 3) as shown in FIG. 7. Then each pixel is set with FAR_FLAG or NEAR_FLAG (Step 4).  
         [0052]    Referring now to FIG. 3, the operation of the region division means  7  will be described. First, a camera image (in this case, a camera image which may contain a human image) is acquired from the image input means  4  (Step 11).  
         [0053]    Then, a pixel of interest (in this embodiment, an upper-left pixel, at first) is selected from the camera image. The distances between the pixel of interest and each of the background blob models (the region numerals 0 through 29) is calculated (30 distances in total) (Step 12). Although a mahalanobis distance is obtained in this embodiment, since the distance between a point and a region (non-similarity) is calculated, other numeric values can substitute for the mahalanobis distance.  
         [0054]    A minimum value of the distances is obtained (Step 13), and is compared with a threshold value (Step 14). When this minimum value is found to be above the threshold value as a result of the comparison, OTHER_FLAG is set to the pixel of interest since this pixel of interest is completely different from the background (that is, it is highly possible that this pixel of interest is that of the human image). Otherwise, OTHER_FLAG is not set to the pixel of interest. Then, the above processing is repeated once for all pixels (Step 16) with update of a pixel of interest (Step 17).  
         [0055]    The pixels to which the OTHER_FLAG is set are collected as a block (Step 18), and the size of this block is compared with a predetermined value (Step 19). When the size of the block is small, it is highly possible that this block represents noise or the like. Even if this block represents a human image, it may be a human situated extremely far away in the camera image. Accordingly, OTHER_FLAG is canceled from the pixels of this block (Step 20) since it is impractical to track this small human image. Otherwise, OTHER_FLAG remains set to the pixels. Then, the above processing are repeated for all blocks (Steps 21 and 22).  
         [0056]    By these processes, when a camera image, for example, as shown in FIG. 8 (in the close-by region of the camera image, a man appears as a large image while, in the distant region, a woman appears as a small image) is provided, the pixels in the background region on the upper-left side of the camera image (region 0) are as shown in FIG. 9. As can be seen, all distances are below the threshold value (in this case, 100). Since the region considered to have the minimum distance is the region (region 0), OTHER_FLAG is not set thereto.  
         [0057]    On the other hand, in the background region of region 13 where a man&#39;s face is located (this is however not certain at this moment in the process), the pixels are as shown in FIG. 10. More specifically, since pixels such as (x,y)=(105,92) and (106,92) have extremely large distances (1023 and 1222), OTHER_FLAG is set thereto.  
         [0058]    Finally, as shown in FIG. 11, two blocks, i.e. block A and block B, are produced. While NEAR_FLAG is set to a close-by image of a man (block A), FAR_FLAG is set to a distant image of a woman (block B).  
         [0059]    Next, with reference to FIG. 4, the operation of the divisional condition judgment means  8  will be described. First, at Step 31, the block to which OTHER_FLAG is set is extracted. Then, the extracted block is checked to determine whether that NEAR_FLAG is set to this block (Step 32). If NEAR_FLAG is not set thereto, this block is judged as “NO”. Then, in comparison of the size of the block with a threshold value (Step 33), when the size of the block is below the threshold value, this block is also judged as “NO”.  
         [0060]    On the other hand, if the size of the block is above the threshold value, this block is subjected to high-frequency filtering to extract the edge thereof (Step 34), which is thereafter subjected to Hough transform to examine whether a characteristic point appears (step 35). The appearance of a characteristic point means that a near-circular graphic pattern (face) is contained in the block. Therefore, this block is recognized as representing a human image, and is judged as “YES” (STEP 36).  
         [0061]    If a characteristic point does not appear, this block is recognized as representing a newly placed object (for example, daily necessities or the like). Thus, OTHER_FLAG is canceled from this block (Step 37), and this block is judged as “NO”. With the cancellation of OTHER_FLAG, this block is considered hereafter as representing a part of the background (a new background), which serves as the occasion to update the background blob models. The above processing are repeated for all blocks (Steps 39 and 40).  
         [0062]    Next, with reference to FIG. 5, the operation of the human blob model production means  9  will be described. First, at Step 41, the block to which OTHER_FLAG is set is selected. At Step 42, the result of the judgment is examined. If the result of the judgement is “YES”, three human blob models, that is, those of the face, the trunk and the legs, are produced as described above (Step 43). If the result is “NO”, a single human blob model is produced (Step 44). Then, the above processing is repeated for all blocks (Steps 45 and 46).  
         [0063]    As a result of the above processing, in this embodiment, the human blob models as shown in FIG. 12 are produced. Specifically, on the man&#39;s image which is close and large, three human blob models, that is, those of the face, the trunk and the legs, are produced. On the woman&#39;s image which is distant and small, a single human blob model is produced.  
         [0064]    When the woman comes toward the close-by region with the passing of time, NEAR_FLAG is therefore set to the woman&#39;s image, and three human blob models of the face, the trunk and the legs are produced thereon. On the other hand, when the man turns around and goes away toward the distant region, OTHER_FLAG is therefore set to the man&#39;s image, and a single human blob model is produced as the man&#39;s image.  
         [0065]    It is noted that “recording medium” mentioned in this specification includes a case in which the program is spread over a plurality of record media and distributed. Additionally, regardless of whether the program is a part of an operating system or not, if the program causes some of the functions thereof to be performed by various processes or threads_iDLL, OCX, Active X, etc., (including the trademarks of Microsoft Corporation), “recording medium” includes a case in which a part concerning the functions performed by them is not stored in the recording medium.  
         [0066]    A standalone type system is shown in FIG. 1. Instead, a server/client type system can be used. In other words, instead of having all elements appearing in the specification contained in a single terminal unit, the present invention includes the case in which one terminal unit is a client, and all of or a part of the elements exist in a server or network connectable to the client.  
         [0067]    A case is also allowable in which the server side has almost all the elements of FIG. 1, and the client side has, for example, a WWW browser only. Normally, various information is located on the server, and is distributed to the client basically through a network. In this case, when necessary information is located on the server, a storage device of the server is the “recording medium” mentioned above, and, when the information is located on the client, a storage device of the client is the “recording medium”.  
         [0068]    In addition to an application that is compiled to be a machine language, the “program” includes a case in which the application exists as an intermediate code interpreted by the aforementioned process or thread, a case in which at least a resource and a source code are stored on the “recording medium”, and a compiler and a linker that can generate the application of a machine language from them are located on the “recording medium”, or a case in which at least the resource and the source code are stored on the “recording medium”, and an interpreter, that can generate the application of the intermediate code from them, is located on the “recording medium”.  
         [0069]    Having described preferred embodiments of the invention with reference to the accompanying drawings, it is to be understood that the invention is not limited to those precise embodiments, and that various changes and modifications may be effected therein by one skilled in the art without departing from the scope or spirit of the invention as defined in the appended claims.