The present invention pertains to surveillance systems and particularly to tracking. More particularly, the invention pertains to object tracking.
The invention is a system fusing motion and object detection for various applications such as tracking.
The present invention is a detection system, for various applications such as tracking, identification, and so forth, which is enhanced with a fusion of motion detection and object detection of targets. For an illustrative example, tracking of pedestrians or vehicles is a foundation of video surveillance. Algorithms for such tracking may incorporate just object detection or just motion detection. In some instances, motion detection may produce poor results for pedestrian or vehicle tracking. Also, in some instances, object detection may produce insufficient results for tracking. A solution for improved tracking may involve building an object detection probability map. Instead of separating the detection and tracking into two separate procedures, a probabilistic framework may be used for automatic detection and tracking of objects, which combines the detection and tracking together. It may involve finding how likely an image blob is a target (i.e., human or car) and how likely a pixel belongs to the moving foreground. With a target probability map, motion detection may be improved and better overall tracking of targets may be provided.
To improve the tracking situation, a local scale-invariant feature may be applied to build an implicit shape model (ISM), which may be demonstrated to yield good recognition results with a tolerance of shape variance. A training phase may proceed in several steps, as shown in
Given a test image, image patches may be extracted using the sample procedure 21, 22, 23 as in training and matched to the codebook. Each of the image patches could be matched with a multiple codeword. Each matched codeword may vote to all corresponding target centers. The voting space may be defined in λ=(x, y, s), where x, y is a 2-D vector relative to the center of the codeword and s is the scale of the extracted image patches. One may search for hypotheses as maxima in the voting space, which indicates there is a target at λ=(x,y,s), i.e., the target center is located at x,y and the scale of target is s. One may note that the scale s is not the size (w,h) of a target. The size of a target may be recovered after one segments the target in detection parts.
Given one hypothesis, one may hope to acquire how likely a pixel belongs to the present target. By answering this question, one may acquire a segment of a hypothesis target. One can obtain this information by marginalizing over all of the patches that contain this pixel. This means that for every pixel, one may build a weighted average over all patches containing that pixel. The weight may be proportional to the contributions to the hypothesis of each patch.
In the present tracking framework, model information may be used to reduce the false alarm rate. By establishing a background model, one may compute the motion likelihood for each pixel. By using the target model, one may acquire the model likelihood for each pixel as well. By joining these two likelihood distributions, one may significantly improve the detection accuracy and thus tracking performance.
For further description, the present system 10 may be looked at in the context of
The motion detection channel 12 may have a motion detection module 14 with the image sequence 11 input. The motion detection module 14 may use background subtraction to get just foreground. The camera may provide a sequence of images or frames of its respective field of view. The selected regions could be motion blobs separated from the background according to motion of the foreground relative to the background, or be selected regions of interest provided by an operator or computed in some way. These regions may be observations. Numerous blobs may be present in these regions. Some may be targets and others false alarms (e.g., trees waving in the wind).
The output of motion detection module 14 may go to a motion likelihood image module 16. For a motion likelihood image module 16, in the case of a stationary camera, a Gaussian background model may be established for each pixel. Thus, given the intensity of a pixel, the likelihood of whether this pixel belongs to the foreground may be computed. This information may be used in a hypothesis validation 18 procedure shown in
The image sequence 11 may be an input to an object detection module 15 of object detection channel. In object detection, an implicit shape model (ISM) may be used for pedestrian or car detection. Aspects of this “object detection” are shown in
The outputs of the motion likelihood image module 16 and the model likelihood image module 17 may go to the fusion module 18 (i.e., combiner, merger, joiner, consolidator, and the like). From the results of the motion detection channel 14 and the object detection channel 15, one may acquire a motion and model likelihood. The cues from the motion and the model may be merged at module 18 to generate a possible hypothesis to be fed into the tracking system 20 (prior application and non-provisional).
For the training phase of
Subsequent to module 23, may be an agglomerative clustering module 24. The clustering of this may involve an unsupervised learning method. Note that, the agglomerative cluster is different with K-Mean clustering. The latter one requires the number of clusters K before clustering. The agglomerative clustering only requires the distance of samples within one cluster should be small enough. A result of agglomerative clustering is a center of clusters. If a result of the similarity calculation is greater than a predetermined threshold set for similarity purposes, then these two clusters may be merged into one cluster.
Following the agglomerative clustering module 24 may be a codebook (ci) module 25 having the result of agglomerative clustering which includes the centers of clusters, c1, . . . cn. These centers of clusters may be regarded as code entries. A set of code entries may be regarded as a codebook. In module 26, there may be matching patches from module 23 with the codebook of module 25. Having the code entries, for each patch (e), the distance to each code entry may be computed. A normalized inverse distance may be used as a conditional probability of ci, given a patch e which is stated as “p(ci|e)”. The normalized inverse distance may be computed as
d−1(ci,e)/(Σid−1(ci,e)).
Beyond module 26 is a module 27 “record the center response p(λ|ci)”. λ=(λx, λy, λs) represents the center of a target which may be used in the testing phase of
p(λ|ci)=p(λ,ci)/(Σλp(λ,ci)),
may be used. This equation may indicate the number of instances that ci contributes to λ over the number of instances that ci contributes to all λ's. The probability of p(λ|ci) may be used in the detection procedure in
Also following module 26 is a module 28 “record the pixel likelihood, p(P is the object|ci,λ)”. This is the other probability to be computed in the training procedure which may be used to segment targets from the background. The meaning of this conditional probability may be the probability of a pixel P of ci is on target given the center of the target. To compute p(P is target|ci,λ), the equation that may be used is the following,
p(P is target|ci,λ)=Σep(P is target,e|ci,λ)=Σep(P is target|e,ci,λ)p(e|ci,λ),
which may be computed for all patches e which correspond to ci, the number of patches e, which P is on a target over the number of e. The probability p(P is target|ci,λ) may be used in the detection procedure, particularly the segmentation module 37 of
The detection procedure is shown in
The “voting to the center p(λ|ei)” module 35 may follow module 34. Voting to the center may involve p(λ)=Σep(λ|e)p(e). Each patch may be assumed to have equal voting weight, namely, p(e) is of uniform distribution. Thus, p(λ) is proportional to Σep(λ|e). To compute p(λ|e), the following equation,
p(λ|e)=Σcip(λ,ci|e)=Σcip(λ|ci,e)p(ci|e)=Σcip(λ|ci)p(ci|e),
may be used, where p(λ|ci) is computed in a training procedure of module 27, “record the center response p(λ|ci)” in
Following module 35 may be a module 36, “generate center hypothesis”. The result is a location of the object detected. A hypothesis of targets' centers may be selected by thresholding the p(λ). Module 37, which may have inputs from modules 34 and 36, is segmentation by computing the pixel likelihood p(P is target|λ), which is the probability of P being on a target given the center of the target. It may be noted that the center of the target is the hypothesis obtained from module 36 “generate center hypothesis”.
After the location of the detected object is known, the size and shape of the object can be sought by segmenting the target against the background. Given a location hypothesis, one can segment the target by computing the probability p(P is target|λ) for each pixel P. To compute the probability p(P is target|λ), the following equation may be used.
ti p(P is target|λ)=Σcip(P is target,ci|λ)=Σcip(P is target|ci,λ)p(ci|λ)=Σcip(P is target,|ci,λ)Σep(ci,e|λ)=Σcip(P is target,|ci,λ)Σep(λ|ci,e)p(ci|e)p(e)/p(λ) Σcip(P is target,|ci,λ)Σep(λ|ci)p(ci|e)p(e)/p(λ)
where p(P is target,|ci,λ) may be computed in the training procedure module 28 “record the pixel likelihood” of
After the above detection procedure, one has multiple hypotheses of the targets' location and for each hypothesis one can segment the target against background. Then one can compute p(P is target)=p(P is target|λ)p(λ), where p(λ) is equal to one over the number of hypotheses. Now, segmentation may be performed according to p(P is target). The probability indicates whether the pixel is an object or not. A way to segment targets according the model likelihood map is to threshold the map. However, direct thresholding may not be robust due to the difficulty in determining the parameter. Here, one may use a minimal description length (MDL) based verification stage to validate the hypotheses obtained in the detection procedure. More important, in the verification stage, one may combine the model likelihood map and motion likelihood map together. A key of this step is to integrate model and motion information about the target itself and discard misleading influences from the background. At the same time, the segmentation may reveal from where in the image a hypothesis draws its support.
Hypotheses may be evaluated in terms of the savings (S) that can be obtained by explaining part of an image by the hypothesis h.
Sh=Sarea−αSnon-motion−βSnon-object,
where α and β are weight parameters. Sarea may correspond to the number N of pixels that can be explained by h; Snon-motion may denote the cost for describing the motion error made by this explanation; Snon-object may denote the cost for describing the model error made by this explanation; Snon-motion=Σp 1−(p is motion|h) and Snon-object=Σp 1−(p is object|h).
Module 41 is only for computing the saving for one single hypothesis without considering the overlapping between hypotheses. For overlapping hypotheses, Module 42,is applied (following module 41) as “compute the saving for multiple overlapping hypothesis, Sh
Sh
If the hypotheses have no overlapping in that h1∩h2=0, then clearly Sh
With input from module 42, module 43 in
To elaborate on the clustering and codebook entries,
The object 50 may be a person and image patches 51 may extracted of the image of object 50. Each of the image patches may have centers (+) 53. Each of the patches 51 may be re-scaled to a standard size of 25×25 pixels as a normalized patch 52. Agglomerate clustering of patches 52 may involve computing the similarity of a pair of patches, or a patch with a cluster. If the similarity of the compared patches 52 and/or clusters 54 is greater than a predetermined threshold, then the patches 52 may be clustered or combined into another patch or cluster 54, or a cluster or patch 55 . In a hierarchical fashion, pairs of resultant patches 54 may have their similarities computed, and if a similarity is greater than a set threshold, then the respective pair of patches 54 may be clustered or combined into another patch 55. However, the various pairings of patches or clusters might not be of the same level in the hierarchical fashion.
This clustering should guarantee that only those patches and/or clusters are grouped which are visually similar. From the resulting clusters the cluster centers may be computed and stored in the codebook. The codebook may be used to train a classifier and used to generate top-down segmentation for each recognition hypothesis. For the respective hypothesis, one may go back to the image to determine on a per-pixel level where its support came from, thus effectively segmenting the object from the background.
In the present specification, some of the matter may be of a hypothetical or prophetic nature although stated in another manner or tense.
Although the invention has been described with respect to at least one illustrative example, many variations and modifications will become apparent to those skilled in the art upon reading the present specification. It is therefore the intention that the appended claims be interpreted as broadly as possible in view of the prior art to include all such variations and modifications.
This application claims the benefit of U.S. Provisional Application No. 60/804,761, filed Jun. 14, 2006. This application is a continuation-in-part of U.S. patent application Ser. No. 11/548,185, filed Oct. 10, 2006. U.S. Provisional Application No. 60/804,761, filed Jun. 14, 2006, is hereby incorporated by reference. U.S. patent application Ser. No. 11/548,185, filed Oct. 10, 2006, is hereby incorporated by reference.
Number | Name | Date | Kind |
---|---|---|---|
5787194 | Yair | Jul 1998 | A |
5802208 | Podilchuk et al. | Sep 1998 | A |
5864630 | Cosatto et al. | Jan 1999 | A |
6173066 | Peurach et al. | Jan 2001 | B1 |
6320976 | Murthy et al. | Nov 2001 | B1 |
6728404 | Ono et al. | Apr 2004 | B1 |
6801662 | Owechko et al. | Oct 2004 | B1 |
6826292 | Tao et al. | Nov 2004 | B1 |
7092924 | Levedahl | Aug 2006 | B1 |
7359526 | Nister | Apr 2008 | B2 |
7426301 | Porikli | Sep 2008 | B2 |
7620216 | Hammoud | Nov 2009 | B2 |
7756341 | Perronnin | Jul 2010 | B2 |
7929771 | Ko et al. | Apr 2011 | B2 |
8031906 | Fujimura et al. | Oct 2011 | B2 |
20020122596 | Bradshaw | Sep 2002 | A1 |
20030169945 | Stanek | Sep 2003 | A1 |
20040120581 | Ozer et al. | Jun 2004 | A1 |
20050058337 | Fujimura et al. | Mar 2005 | A1 |
20050104962 | Han et al. | May 2005 | A1 |
20050105780 | Ioffe | May 2005 | A1 |
20050238198 | Brown et al. | Oct 2005 | A1 |
20050285937 | Porikli | Dec 2005 | A1 |
20050286774 | Porikli | Dec 2005 | A1 |
20060053342 | Bazakos et al. | Mar 2006 | A1 |
20060093188 | Blake et al. | May 2006 | A1 |
20060177099 | Zhu et al. | Aug 2006 | A1 |
20060182339 | Connell | Aug 2006 | A1 |
20060285755 | Hager et al. | Dec 2006 | A1 |
20070005356 | Perronnin | Jan 2007 | A1 |
20070133840 | Cilia | Jun 2007 | A1 |
20070217676 | Grauman et al. | Sep 2007 | A1 |
20070237355 | Song et al. | Oct 2007 | A1 |
20080089561 | Zhang | Apr 2008 | A1 |
20090041297 | Zhang et al. | Feb 2009 | A1 |
20120058775 | Dupray et al. | Mar 2012 | A1 |
Number | Date | Country |
---|---|---|
2002032742 | Jan 2002 | JP |
Entry |
---|
Siebel et al, “Fusion of Multiple Tracking Algorithms for Robust People Tracking”, LNCS 2353, pp. 373-387 2002 Springer. |
Perez et al, “Data Fusion for Visual Tracking with Particls”, IEEE vol. 92 No. 3 Mar. 2004. |
Krystian et al, “Scale and Affine Invariant Interest Point Detectors”, International Journal of Computer Vision, 60(1), 63-68, 2004. |
Shan et al., “Measuring the Similarity of Two Image Sequences,” Asia Conference on Computer Vision, 6 pages, 2004. |
Zhou et al., “From sample similarity to ensemble similarity: Probabilistic distance measures in reproducing kernel Hilbert space,” IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 28, Issue 6, pp. 1-34, Jun. 2006. |
Zwald et al., “Statistical Properties of Kernel Principal Component Analysis,” The 8th Kernel Workshop, pp. 1-15, Jul. 4, 2004. |
Number | Date | Country | |
---|---|---|---|
20080002856 A1 | Jan 2008 | US |
Number | Date | Country | |
---|---|---|---|
60804761 | Jun 2006 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 11548185 | Oct 2006 | US |
Child | 11562266 | US |