1979 LIDS-R-959 MULTIOBJECT TRACKING BY ADAPTIVE HYPOTHESIS TESTING* by

advertisement
December, 1979
LIDS-R-959
MULTIOBJECT TRACKING BY ADAPTIVE HYPOTHESIS TESTING*
by
Kenneth M. Keverian
Nils R. Sandell, Jr.
ABSTRACT
This report is concerned with a multiobject tracking problem in which
noise-corrupted position measurements are made on a number of moving targets. The number of targets, the association between measurements and
targets, and the track of each target must be deduced from the data. The
approach adopted is that of adaptive testing of data association hypotheses. Thus a decision tree of hypotheses is formed, and hypotheses
are accepted or deleted according to the nature of subsequent measurements.
A Kalman filtering approach is used to determine the target
tracks according to the various hypotheses,
and to determine their likelihood functions. The algorithm is implemented in the artificial intelligence language LISP, to permit flexible, dynamic data structure manipulation.
*The research supported herein was supported by the Office of Naval
Research under Contract ONR/N00014-77-C-0532.
Laboratory for Information and Decision Systems
Massachusetts Institute of Technology
Cambridge, Mass. 02139
-2TABLE OF CONTENTS
Page
ABSTRACT
1
1.
INTRODUCTION
3
2.
TECHNICAL DISCUSSION
9
2.1
Data Structure and Hypothesis Formation
9
2.2
Algorithm Overview
24
2.3
Tracking Equations
32
2.4
Results
44
3.
SUGGESTED FUTURE RESEARCH
APPENDIX - ALGORITHM DETAILS
REFERENCES
61
63
114
-31.
INTRODUCTION
In the past twenty years a considerable literature has developed
on recursive tracking algorithms.
These algorithms are generally based
on Kalman filtering theory with various extensions to handle such difficulties as nonlinear relationships between sensor signals and track
parameters, missing and false measurements, and maneuvering targets.
The algorithms have generally been rather successful for the class of
applications for which they were developed, namely a single sensor such
as a radar or sonar tracking a single object.
However, there are many applications, often in the area of military
surveillance systems, which require the tracking of multiple objects
using signals obtained from a variety of sensors
servers).
(including human ob-
Of course, if the sensors are accurately registered and their
resolution is very high compared to object spacing, the problem can be
effectively handled by the techniques developed for single-sensor,
single-object problems, with perhaps some ad hoc modifications for
such difficulties as those caused by crossing objects.
But there remain
many situations in which data association, i.e., determining which object gave rise to a given sensor signal, is a fundamental issue.
issue can arise in two closely related ways.
This
First, it is necessary to
associate the signals from a given sensor with those obtained from the
same sensor at an earlier time.
Second, it is necessary to associate
the signals from different sensors to determine which of them came-
1
See, e.g.,
[1] for a textbook treatment.
-4from the same object.
Recently, there has been an increasing interest in the multiobject
tracking problem [2] - [91
.
The algorithms proposed for this problem
can be categorized in various ways.
Some provide a probabilistic
data
association, in which the same sensor signal may be associated with
more than one track according to some probabilistic weighting, while
others make a hard decision associating each sensor signal with a unique
track.
Some algorithms are based on a Bayesian framework in which a
priori probability distributions for such quantities as target density
must be specified while others do not require this information.
Finally,
some algorithms immediately make a data association decision for each
sensor signal, while others defer the decision until subsequent
are received.
scan
signals
Algorithms in this latter category are termed multiple
or track splitting algorithms.
The algorithm described in this report is most closely related to
that of Reid 14].
Reid's algorithm is a
nonprobabilistic data associ-
ation, Bayesian, multiple scan algorithm.
Our algorithm is nonBayesian,
and differs in the details of its hypothesis deletion strategies.
But
perhaps the most interesting difference is that we have chosen to implement our algorithm in the artificial intelligence language LISP instead
of FORTRAN as in Reid's implementation.
This choice permits a natural,
1
Some of these references treat the single object problem with false
measurements, which might in fact come from other objects.
2
The terminology is from radar-based tracking systems, but the idea
clearly applies to systems incorporating other types of sensors.
-5transparent, and flexible implementation.
Moreover, it suggests the
possibility of developing more sophisticated versions of the algorithm
that utilize information of a discrete character
(e.g., "the ship carries
radar X") together with continuous, position-related sensor information.
From a technical point of view, the data association problem can
be formulated as a statistical hypothesis testing problem.
In addition
to the previous work in multiobject tracking, the development of the
algorithm reported herein has been influenced by work in hypothesis
testing for dynamic systems
colleagues at M.I.T.
[8],
,
especially that of ourselves and our
[10] - [22].
This work has largely centered
on the so-called multiple-model adaptive estimation (MMAE) algorithm,
(Fig. 1-1) first derived by McGill in 1965
[23].
The MMAE algorithm provides an optimal nonlinear filter for an estimation problem with observations coming from one of a finite set of
possible linear systems.
In Bayesian form, the algorithm recursively
computes the probabilities of the hypotheses that the actual system is
one of the possible linear systems, and produces the optimal (conditional
expectation) estimate of the system state.
It can be shown under reason-
able assumptions that the MMAE algorithm asymptotically identifies which
of the possible linear systems is the actual system
,
and converges to
the optimal (Kalman) filter for that system.
See Chapter
10 of
l1].
2
More generally, it can be shown that the MMAE algorithm identifies the
linear model' closest to the true system, which may be nonlinear and
high order, where the measure of closeness is provided by a certain
information distance 1i9].
-6-
4J
0k
.,--
U)
0
.,
,-o
.,10
:E:
i
1--
r4
__
__I_
-7As applied to the multi-object tracking problem, the set of possible
linear systems generating the measurements corresponds to the set of
objects being tracked.
However, the number of objects is not known
in advance, and since measurements come from all of the objects rather
than just one, the number of hypotheses is not fixed but grows rapidly
with time.
Although the MMAE algorithm can be formally extended to
this case, as a practical matter it is necessary to have an algorithm
with enough intelligence to create and delete hypotheses as required
by the evolving situation.
Such a data-driven algorithm is adaptive in
a higher sense and will be termed an adaptive hypothesis testing algorithm.
The present report describes the development of such an algorithm and
its application to the multiobject tracking problem.
Since our objective is to explore the feasibility of the adaptive
hypothesis testing approach, we have considered the simplest meaningful
multiobject tracking problem in order to focus on the issue of hypothesis creation and deletion.
Thus planar, straight-line, non maneuvering
target motion in Cartesian coordinates is assumed, with periodic position measurements of each target. 1
believed to be critical.
None of the these assumptions is
Consideration of maneuvering targets and
nonlinear measurements of target state is common in single object
tracking problems, and the extension to multiobject tracking is conceptually straightforward.
More interesting would be the consideration
of the issues associated with random intervals between measurements, and
non-position related, discrete valued measurements.
Although we will not
However, false and missing measurements are considered.
-8-
investigate these issues in the sequal, we feel firmly that the adaptive
hypothesis testing framework is the appropriate one for such an investigation.
In the remainder of this report, we will develop the ideas summarized in this introductory section in detail.
Section 2 contains the main technical discussion.
We begin by
discussing our hypothesis generation procedure and the data structure
that represents the hypotheses.
We then give an overview of the
algorithm that creates and deletes the hypotheses, and discuss the
reasons why LISP is a natural language to implement the algorithm.
The details of the computation of likelihood functions for the various
hypotheses are then elaborated upon.
Finally, we present some simulation
results that show how the algorithm performed in various test cases.
Section 3 contains the summary and suggestions for future research.
Finally, in the Appendix
a more detailed description of the algori-
thm including a listing is provided.
-9-
2.
2.1
TECHNICAL DISCUSSION
Data Structure and Hypothesis Formation
As discussed in the introduction, we are considering straight line
target motion with noise corrupted position measurements.
We assume that
a set of measurements, said to be in a given scan, is periodically supplied
to the tracking algorithm.
The tracking algorithm must determine the
number of objects present, and maintain a track on each object detected.
We will assume that a measurement has three possible origins: it is
a false alarm, a previously hypothesized target, or a newly detected target.
As the number of previously hypothesized targets can be quite large, so
The question that confronts us is
can the measurement's possible origins.
how to represent each hypothetical association of measurement to target
in an efficient data structure.
A method that comes immediately to mind
is to update target tracks for each hypothesis.
We define a track as a
set of measurements from successive scans which hypothesize the motion of
a single target.
A hypothesis is then a collection of possible tracks which
explain the origins of all the measurements taken.
scans are shown with three measurements in each.
target tracks over the three scan period.
In Fig. 2.1-1, three
The dotted lines represent
Hypotheses A,B, and C represent
three possible associations of the measurements to targets.
We assume that
any measurement can come from at most one target in a scan.
Thus, a meas-
urement can be associated with one and only one track per scan.
The total
number of hypotheses is in this case surprisingly large (in fact greater than
40,000), and grows quite rapidly as the number of scans increases.
There are at least two distinct approaches to representing different hypotheses in a data structure.
_____
Under a tanget oriented approach
-10-
--
,Y
Y
I
,
.
o'
I
I
I
#
1
.
.1
0
HYPOTHESIS A
:
Y
l II
x!
II
,'
j
I
I
%
%
0
I
I
I
-
0
HYPOTHESIS B
% ,
V
!
-- "
Al
I
%0O
HYPOTHESIS C
Filg.
~~
III--1911-111----
1
_IL..--___C-
21-1
Three Possible Data Associations
--
~~~~~~~~~~~~~~~~~~-----TI
II
31P~~~~~~~P--- --
-------
--~~~~~~-1-1
-
-11-
we construct a tree
where each level represents a target and each node
a different measurement.
Each path through the tree from the initial
to a terminal node then represents a complete data association hypothesis,
and each node corresponds to a measurement originating from the target
at that level.
This is shown in Fig. 2.1-2.
Note that a hypothesis
indicating that a target did not show up during a given scan is indicated by putting an "x" at the appropriate node.
scan
For the initial
(top figure) we are expanding from an initially empty tree, so the
possible tracks are all new targets or false alarms (denoted by "0").
the second scan, the possible tracks are the old targets
new targets) as well as newtargets
On
(last scan's
Thus, the number
and false alarms.
of levels added after each scan equals the number of old tracks plus the
number of new tracks plus 1.
The track oriented approach to hypothesis
representation is in-
efficient compared to the measurement oriented scheme.
In this
approach we assign each different measurement in a scan to a different
level, and place targets at nodes to imply that the target gave rise to
the measurement at that level.
Consider Fig. 2.1-2.
Measurement "ml"
occupies level 1, and is hypothesized to have given rise to either
target 1 or 0 (false alarm).
The number of levels of our hypothesis
tree is identical to the total number of measurements taken so far.
Notice as well that there is no redundant information in our measurement
oriented tree.
In the target oriented tree "x"'s must be inserted to
denote the non-appearance of a target, and the last level contains all
those measurements hypothesized to be false alarms.
oriented
The measurement
tree has no such redundant nodes, and is much smaller than
the target oriented
tree, especially after a few scans are processed.
The terminology is due to Reid [4].
-12-
TARGET ORIENTED
TARGET
1
MEASUREMENT ORIENTED
LEVELS
2
3
MEASUREMENT
LEVELS
0
m3
1
m2
I
m3-X
ml1.
X
7
(
NX/m3--
(m3)
m2)
X
(m2,m3)
jm3- (ml)
m2
x.
m3-
(ml,m3)
(ml,m2)
X-- (ml,m2,m3)
After first scan
After first scan
Variables in nodes represent measurements.
"X" indicates that no measurement is
associated with the target, "0" is a
false alarm
Numbers in nodes represent targets. "0"
is a false alarm
Tree structure after second scan
Tree structure after second scan
.
.
Hypothesis Generation
Fig. 2.1-2
(a)
-·P··----·-··--·IIF-··CI-------
(b) measurement oriented hypotheses
target oriented hypotheses
------- · · · ICI··-·
----
-----
I·
---- ·
---
Il-·C---
b
-
-
-·-Llb·-
---
-
-
I
-13On the other hand, the measurement oriented tree suffers from the defect
that many of its hypotheses may contain identical or nearly identical
tracks, but there is no convenient way to detect this situation.
However,
the measurement oriented tree will be used in the sequel because of its
compactness.
Now that we have discussed the general structure of hypothesis
generation, we consider the measurement oriented approach in more detail.
Two definitions will be helpful:
Def. 1.
A confirmed target is a target which has at some time occupied all
nodes in at least one level of the tree.
Def. 2.
A tentative target is a target which is not confirmed.
Nodes on a given level in the tree represent the possible targets giving
rise to the measurement assigned to that level.
If all possible targets
are the same, then we can deduce that the given measurement originated
from that target.
In a sense we have proven the target's existence, and
thus it is called a confirmed target.
If on the other hand, a target
has never been confirmed, then it's existence is uncertain and it is
called a "tentative target".
For an existing hypothesis, the possible
targets giving rise to a measurement are:
1)
all the confirmed targets,
2)
tentative targets assumed by the hypothesis,
3)
a new target, and
4)
a false alarm
For each measurement and each
xisting hypothesis we form branches in
our hypothesis tree corresponding to the above cases.
Since a tree of
-14branching order equal to the number of above possibilities would explode
quickly, much of our work will be in pruning out unlikely branches.
The first pruning rule that we follow is that a target can be
associated with at most one measurement per scan for each hypothesis.
This simply says that any target could not have produced more than one
measurement in a scan.
Figure 2.1-3 illustrates the' tree formation for
two scans, each with two measurements.
On the first scan there are no
prior confirmed or tentative targets, so each measurement
(denoted by a
subscripted "m") could have come from either a new target or a false
alarm.
Note that new target numbers mirror the subscript of the measure-
ment's name.
Thus, the degree of branching in our initial scan is 2,
i.e. we have a binary tree.
In processing our next scan, each branch
has tentative targets from the past scan, which possibly account for
the new measurements.
Thus our degree of branching in scan 2 will in
general be greater than or equal to 2.
Upon each branching we branch
to a new target, a false alarm, and all tentatives on that hypothesis
which have not yet been assigned on the present scan.
If confirmed
targets existed at this time, we would branch to them as well.
As we
expand further in a given scan, each branch uses up more and more
possible targets, and thus our branching degree may only decrease, not
increase.
This assumption is appropriate in the case of a single radar, but not
in most others. The assumption is of course inessential for the
adaptive hypothesis testing approach, but illustrates one type of
constraint on hypothesis formation that is readily incorporated.
-15-
MEASUREMENTS FROM
SCAN 1
0
MEASUREMENTS FROM
VSCAN 2
,,
tn,..
.
(a) Two measurement scans
I
2
.
. .
'
first scan
m4
1
".'
(b) Hypothesis ree after
...............
,~/S',~~~~~~~~~~~~~~~~~~~~/,',,,-,'j,.ji,,
v
. ' .'.'-i
'"
--at.,,
1
/
2
H;
4~~
~~O
.
I
3
:
o
a
o
,.-
-:
--7
4-4
;
..
·
1~~~
'3
-~'
"--~- 0I4~~
.'
O
i
:
4
'
O
.,·
22
4·~--0
3
IiI I
(cHy4poheis
Hypothesis tree'a eW I,,;
seccnd scan
iii; -1i:
i
''
',
:
. ......
''''
;"'""
'''2
.................
-;·
:
·
.
ii
::
. .
;::
(
A
0
...............................
(c
~;
I·· '
··.
·
..
I
.
-;;:i;.:·-~.,1,
.
o
·
-.
,:I,':,
.....
4
fe...".....
--
-
0 ~Igld
J
-
-
,
ig9,,,r.S,
-x-,
-.
,
;-
,-ft
=-
.1
;;..,,,,,..~,;..,,,.
~
··
· i··Car
At
19
,
N
~ii'""
4R
........- .
~rr'----~"--~~-
-i~w3~i~~.~-
,
i;·
-:~l
Fig.
....--
-.--
u1lr
-
2.1-3. -
=;4
1-1
--
-
Tree
Formation
- -- ~ ,-
-W~
;..a.
i~-A:Iljlii:
l
·
W>.Ewmn1aI
t-1- a-r- 1-1
-
;.. - .
.............
vx, - I-` r .ii
rr..-lnt;.;
1
i·:
i
NI
11i,
l, i!1-111iT-,,,,,
i. vA ilkiLP 11r,,
i,]PI
i!";ld
IV41":!
I ii 11,11,k
1f4",
j1j11,04
I I1R,
1
I,Intrinsic
M.
t,I
1:1
., I,I, "
L,
:,.··,.
!)_
,1;1
6·.,ni-
-16-
As mentioned in the introduction, we take a multiple scan approach
to the multiobject tracking problem.
what we mean by this statement.
Let us now discuss in more detail
In most cases, considering all the
possible data associations of one scan gives us many likely hypotheses.
Often there are many hypotheses which seem just as likely as the next,
and deciding among them would be arbitrary at best.
An N-scan algorithm
attempts to solve this problem as follows; before it decides on the
association for the present scan, it will wait N more scans and then
chose the association which is most likely in light of the subsequent
measurements.
This principle is illustrated in Fig. 2.1-4.
Suppose
that at scan 2 the existence of a target whose track consists of
measurements
(ml, m2) has been determined.
Now, on scan 3 we have two
very likely possibilities; namely that the target is at m3 or m4.
With
an N-scan algorithm we postpone this decision until collecting data for
N more scans.
In Fig. 2.1-4.b we see that by the fifth or sixth scan
the assumed straight line motion of a target better fits the choice
of m3 than m4.
Thus, by using subsequent data we may be able to decide
on the best association for any scan.
While N-scan algorithms are useful in helping to chose past data
associations, we are not guaranteed that an obvious decision will
result after waiting N scans.
Consider Fig. 2.1-5 for example.
Assume
that by scan 3 we have 2 targets consisting of (ml, m3, m5) and (m2, m4,
m6).
cross.
Now on scan 4 the measurements are very close since the tracks
It is virtually impossible to tell which track the measurements
belong to.
Even after waiting N scans, the conflict is not resolved.
While the tracks become once again distinguishable after they pass each
-17-
&I
SC
%SC
1%
Nu
N
N
N
Three scans of measurements,
ambiguous tracking decision
(a)
I
I
I
II
I
I I II I
II
SCA.
N.
N%
N1
4h
%qb.
(b) Six scans of measurements,
clear tracking decision
Fig. 2.1-4
~- -------
"
-~I-
I
-~----------
N-Scan Approach
-18-
-
m12 0
ml
SCAN 6
mlO
SCAN 5
\om9
SCAN 4
m7 om8
SCAN 3
/m5
SCAN 2
SCAN
\om6
m4
/oml
*
\om2
~~~~~I
Fig. 2.1-5
III
IIIII
IIII
Crossing Tracks
I
a
II
II
25
.7 1
*- -2 ~ o -
II
I
0o
<
e-
An identified scan
Fig. 2.1-6
I
°-22 1
II
(a)
I
2
(b) An unidentified scan
Scan IdentificatIon
-19-
other, we are never able to confidently assign the measurements of scan
4.
However, the important thing is to maintain the track, not to neces-
sarily identify each and every measurement; so the fact that scan 4 remains ambiguous is not harmful to our final solution.
The important point
in the above discussion is that waiting N scans to identify a scan can
be quite powerful.
Some scans are identified almost immediately and thus
require little waiting while others remain unidentified regardless of the
amount of waiting.
The N-scan approach most commonly used in track splitting algorithms
is to wait a constant number of scans before identifying a scan.
Recog-
nizing, however, that some scans identify faster than others it seems
that we should wait only long enough to identify the scan, with of course
some maximum waiting period.
1
We begin our discussion of our variable
N-scan algorithm by defining an identified scan:
Def. 3.
An identified measurement is a measurement containing identical
hypothesized targets.
Def. 4.
An identified scan is one which contains only identified
measurements.
Fig. 2.1-6 contrasts tree structures for identified and non-identified
scans.
By definition of an identified measurement, an identified scan
contains confirmed targets only, for each measurement is uniquely assigned
to a target.
Now our implementation of the variable N-scan algorithm will
store scans in a FIFO (first in, first-out) buffer.
The oldest scan stays
in the FIFO either until it identifies (after a finite number of subsequent scans) or until the FIFO becomes full.
1
If the oldest scan identifies,
In the parlance of Artificial Intelligence theory, a variable depth decision
tree search strategy is desired.
-20-
we drop it off the FIFO and update a target state list of the most
recently identified scans.
If the oldest scan never identifies and the
FIFO becomes full, we pick the best association for the oldest scan,
update the target state list with this association, and drop the scan
off the FIFO.
Notice that we must store a particular scan only as long
as it remains in the FIFO.
Once
we update the target state list and
drop the scan off the FIFO we never refer to it again.
the FIFO with our hypothesis tree is now simple.
Implementing
We limit the size of
the FIFO by allowing the tree to contain some maximum number of nodes,
and we bump a scan off the tree by collapsing all nodes of that scan
into the root node of the tree.
Fig. 2.1-7 steps through the expansion
and shrinking of our FIFO tree structure.
nodes signify a hypothesis being pruned
likelihood.
Note that "x"'s at terminal
out due to a relatively low
This and other methods of pruning will be discussed next.
As mentioned, without strong pruning the size of the hypothesis
tree quickly explodes.
In determining the amount of pruning there is
a tradeoff between computational demands and optimal hypothesis selection.
With more pruning, fewer hypotheses will be explored, and the probability that we may drop the correct hypothesis is higher.
On the other
hand, with less pruning, many different hypotheses will be explored at
the expense of loading the computer.
pruning techniques are used.
In the present work two main
direct
The first represents a modification to the
list of possible targets to branch to
"in incorporating a new measurement.
Remember that these possible targets are:
confirmed targets, tentative tar-
gets on the hypothesis branch, a new target, and a false target. We change this
-21.
-
I
SCAN 1
OAKI
I
H I
-
FIFO:
FIFO:
(b) Scan 2 enters the FIFO
(a ) Scan 1 enters the FIFO
Q"An M
IAE
FIFO:
C
N
m
d
(c) Scan 1 becomes identified; and
is bumped off the FIFO
SCAN 5
I
I
X
l
I
I
k Nc
FIFC
SI
c I C
AIAI
N INI
4
3
FIFO:
A
N
2
6
SCAN
I
I
-
(f)
I
I
tf
I,
I
I
I
mA
Scan 2 remains unidentified; FIFO can
not accept another scan without
bumping scan 2 off
(e)
(d) Assume that after pruning,all measurements but one become identified; scans
3 and 4 are identified but can not bump
off FIFO till scan 2 does
A
I
~I
I!
~
!
!
/
I
I
S
A
N
6
-
After bumping scan 2 off the FIFO,scans 3,4, and 5 bump off because they are
identified; the remaining tree consists only of scan 6
O= identified measurement
X = pruned hypothesis
Fig. 2.1-7
1
--r
-
----
--
------
-
----
FIFO Tree Structure
-L1*--·II--·---b
-----
q·-gilll·ii_1·--^-·--·-1·sl·1
------·
FI___·----__·
---
-22-
slightly by only including those confirmed and tentative targets for which
the measurement is sufficiently close to its predicted
past measurements on the target (Fig. 2.1-8a).
value given the
This pruning constraint im-
mediately eliminates very unlikely hypotheses, and thus greatly reduces the
average branching degree of the tree.
pruning.
It can be regarded as a first pass
The second pruning constraint involves simply pruning hypotheses
with low likelihood values.
As is discussed subsequently, the likelihood
function of each hypothesis is calculated after each branching.
At any
scan, we keep only the M most likely hypotheses, simply dropping the
others from further consideration.
Now the choice of the breadth para-
meter M is critical, with a similar complexity vs. optimality tradeoff
as discussed for the N-scan FIFO setup.
A consequence of dropping past scans off the tree is that many
hypotheses become identical.
This may result when two hypotheses are
exactly alike except for a minor difference occurring a few scans back.
Once that old scan is bumped off the tree the two hypothesis branches
have identical entries (although the corresponding tracks estimates will
differ slightly) and thus it would be wasteful to carry them both along.
In this case we say that the two hypotheses are "fully identical" and
drop one of the redundant branches.
We say that two hypotheses are
"1-1 identical" when they are "fully identical" except for a one to one
renaming of tentative targets.
The 1-1 renaming of tentative targets
may occur if two hypotheses start to track an object one scan out of
phase.
The hypotheses will assign the object different names, and this
difference will be propagated throughout both hypotheses.
If they are
-23-
-
o
o
m8
c
%
X~~~
\ 0
CAN
\ SCA%N2 SCAN3
SCAN3
SCAN I SCAI
(a)
SCAN4
SCAN 4
SCAN5
SCAN5
First pass pruning by assigning to
measurements only those targets which
contain the measurement in an " N-sigma"
probability region; only m5 and m7 Nould
branch to target 1
x
x
x
x
(b)
Pruning out all but the five
most likely hypotheses
( c)
Resulting tree after pruning
_
Fig. 2.1-8
--------
_
Pruning Techniques
-24-
otherwise identical, than they will become "1-1 identical" as soon as
the scan with the original difference is bumped off the tree.
hypotheses can be merged as in the fully identical case.
Thus the
The merging
technique cuts down redundant expansion of the tree, (Fig. 2.1-9).
The goal of the tree oriented data structure we have described
has been to efficiently represent hypotheses.
Forming unlikely or re-
dundant hypotheses can cause tremendous growth of the tree and thus must
be minimized.
Techniques discussed to minimize tree growth have been
1)
the "measurement oriented" tree structure,
2)
the variable N-scan FIFO approach
3)
hypothesis pruning, and
4)
hypothesis merging.
As we will see in the sequel, these techniques succeed in limiting both
the depth and breadth of an otherwise exponentially growing hypothesis
tree.
2.2
Algorithm Overview
In this section we present an algorithm which implements the pre-
viously described data structure.
Throughout the discussion here, we
will refer to manipulations on an arbitrary tree of hypotheses.
The
association between tree properties and the tracking problem should be
kept in mind.
The overall algorithm is presented in the flow chart of Fig. 2.2-1.
Very roughly, the algorithm involves:
1)
tree expansion and pruning,
2)
FIFO maintenance, and
3)
hypothesis merging.
-25-
-
_
-
__
__
<,G<3
(a)
Hi
H2
H3
H4
H5
He
H7
H8
H9
H,,
H11
Hypothesis tree after dropping scan 1.
Notice the fully identified hypotheses:
(H 3 =H 8 ),(H-H ),(H H IO)-HH 1 1 )
(b)
Hypothesis tree after two scans
have been processed
and the 1-1 identical hypotheses:
(H 1 1 H 3 ,H 8, H4 ) and (H 2 H, s , H9 )
3 H1
3 HH3,HsH
o H2
33HH3,H8
I H4
.o H2 ,H5sH
O H,Hq
*3 H6, H10
3 H6HtO
Hypothesis tree after arbitrarily
choosing one of the 1-1 identical
branches to represent the hypothesis,
and pruning the others
(d)
Hypothesis tree after dropping
redundant,fully identical branches
i
2.1-9
Fig.
I
_
9
HH11
o H.H..
(c)
4
Hypothesis Merging
_
C
C
11
q
-26-
TREE
)
EXPANSION
I
Il
CSF:
IEXPANSIO
N
I
I
I
I
I
IIFIFO
II MAINTENANCE
Ii
I
)
Fig. 2.2-1
Algorithm Flow Chart
III
II
I
I
-27-
Refer to Fig. 2.2-1.
After completing an initialization routine we
enter the main control loop of the algorithm.
The first thing done is to
incorporate the pending measurement scan by assigning each measurement a
variable name.
Next the tree is expanded in the FINDNOD routine.
Each
node can branch to a set of possible new nodes as outlined previously.
For each such branching we update the state vector estimates and error
covariance matrices (see Section 2.4) of our targets as well as the
likelihood
function of the-new hypotheses.
In implementing the pruning
techniques a branch-and-bound type method is used.
Since
we keep only
the M most likely hypotheses, we keep a list of the current M most likely
hypotheses in the tree.
Initially, we let the list fill up by including
the first M new hypotheses formed.
Henceforth, we compare the smallest
likelihood function of the M with the likelihood function at the present
node of expansion.
Since likelihood functions can only decrease, (see
Section 2.4) if the present node is already less than the minimum of the
M, we know that its successor nodes will be even worse, and thus we prune
it out immediately.
However, if its likelihood function is greater than
the minimum of the M and we have finished branching, then we replace the
minimum likelihood node of the previous M with the new node, pruning out
the one we replaced.
tinue branching.
If neither
conditions are satisfied, we just con-
The branch and bound method corresponds to a depth first
expansion of the tree, meaning we expand the tree roughly one hypothesis
at a time.
Hypotheses with low likelihood functions will be discovered
quickly and be discarded.
This saves us from having to explore down paths
found at any point to be worse than the M best so far.
-28-
After expanding the hypothesis tree we check to see whether our
pruning has caused any targets to become confirmed, and if so we update
a confirmed targets list.
from the tree.
Then we determine whether to drop any scans
This is our FIFO maintenance section.
In BOTCHECK we
check whether our bottom scan is identified, i.e. if all hypotheses give
the same data association for the bottom scan.
If so, we update a confirmed
states file which contains the estimated state of all confirmed targets
at the time of the last bottom scan identification.
We then bump the
scan off the tree and check to see whether the new bottom scan is identified.
As soon as we find one that is not, we proceed to check whether the FIFO
is full; that is, if the number of nodes in the tree exceeds some upper
bound.
If so, we update the confirmed states file for the bottom scan
using the most likely hypothesis and bump the bottom scan off the tree.
In the last part of the algorithm, we list any hypotheses which
are either 1-1 or fully identical.
This is done in MATCH.
Once we
find these, we prune out all redundant hypotheses, keeping only the most
likely one for each group.
Finally, we again check to see whether con-
firmed targets have manifested due to MATCH prunings and we update our
list if necessary.
Having thus finished processing a data scan, we
go back, wait for the next scan to arrive, and repeat the process.
While only the major blocks of the algorithm have been presented
here, more detailed descriptions and the actual program listings can
be found in the Appendix.
LISP Implementation
As mentioned in the introduction, one of the novel aspects of our
approach to the multiobject tracking problem is the use of LISP for
-29-
implementing our algorithm.
At first thought it might seem that -the
choice of a computer language has little to do with the underlying
algorithm.
While this is true in an abstract sense, the syntactical
power of a language determines in a very real sense the computational
complexity and expandability of any algorithm.
In the target tracking
case, LISP turns out to be an extremely natural and powerful environment
in which to construct and evaluate hypothesis trees; it is much more
powerful than more conventional languages like FORTRAN.
The final choice
of LISP was treated as an important design decision when considering the
computational and programming tradeoffs in the development of our algorithm.
In what follows, we discuss the advantages and disadvantages of LISP in
light of the needs of the multiobject tracking problem.
Historically, LISP has developed as the primary computer language
for writing programs implementing artificial intelligence theoretic
concepts.
Artificial intelligence theory [24]
is concerned with deter-
mining the knowledge necessary to deal with a given problem domain, and
with efficiently representing and drawing inferences from that knowledge
so that problems apparently requiring human intelligence for their solution can be solved by a computer.
Many of these problems involve tree-
like data structures, and since LISP has been developed--with the specific
purpose of dealing with such problems, it is a very natural language for
them.
Recognizing the similarities of the multiobject tracking problem
to tree searching problems in artificial intelligence theory is a step
in its solution.
The desired algorithm must make decisions based on past
and future data.
If a clear decision is not evident, it must wait a few
scans, hoping that the situation will clarify.
In addition, it must
evaluate the quality of different hypotheses and only consider the best.
-30-
The decision analysis used throughout is based on statistical models.
Of
course, the quality of decision making can not be better than our statistical formulation.
Here, however, we can rely on a considerable body of
statistical theory and research to guide our development .
However,
the way in which we use our model to make decisions is where artificial
intelligence technology becomes useful.
Let us now discuss some of the
features of LISP which make it a suitable vehicle for multiobject tracking.
Specifically, two features of LISP make it suitable for the multiobject tracking problem.
These are LISP's recursive nature and its
natural tree structure.
Recursive solutions to problems can often be
written in relatively few lines of code, since they allow procedures to
be written that call themselves while automatically handling the nested
storage of variables needed.
In the hypothesis generation portion of
the algorithm we have developed, the recursive approach permitted the
development of very general, flexible, and succinct code.
An iterative
approach would in general weight the program down with subscripts, do
loops, and bookkeeping, thus discouraging experimentation with the data
structure and program logic.
In contrast recursion allows an almost
effortless kind of solution.
This greatly enhances the case of develop-
ment and use of the program.
The second advantage of LISP, its inherent tree structure, is
important in our tree oriented tracking problem.
constructed in a variety of ways.
Trees in LISP can be
One way is to use LISP's natural
Other languages, for example PL/1, have similar features.
-31structure of lists.
A list is an ordered collection of elements, each of
which may be a single variable or a list itself.
f (g h)) is a list of four elements.
For example:
(a (c d)
If we consider each element to be
a descendant of the root of the tree, the above list represents the following tree:
c
g
d
k
LISP is make up largely of powerful functions on lists such as sorts,
searches, mapping, etc.
This creates a very high level environment in
which to scan and operate on trees and lists.
Another way of creating trees in LISP is to use a construct known
as a property list.
To each variable, the user can assign different
attributes and corresponding values.
For instance, the variable ANODE
may have a property called LIKELIHOOD, whose value we set to be (0.75).
Using properties, trees can be constructed by assigning to each node a
SONS property whose value is a list of immediate descendants on the tree.
Likewise, values of likelihood and state estimates can be carried on each
hypothesis as values of properties.
By carrying attributes of each hypo-
thesis on property lists, we have an efficient means of characterizing
each hypothesis.
In fact, this was the method used for implementing our
-32-
hypothesis tree structure.
While we have mentioned some advantages of using LISP in our multiobject tracking problem, there are a few disadvantages.
uncompiled
LISP tends to run very slowly.
First of all,
LISP is an interpretive language,
which in effect means that the LISP operating system evaluates commands as
soon as they are typed on the terminal.
LISP's control loop for supplying
input and recognizing commands makes it very slow.
To get around this
problem, however, one could compile a LISP program and then run directly
in machine language.
Another strong disadvantage of LISP for numerical
problems is that LISP has almost no high level numerical operators.
example,
For
defining iiatrices is somewhat awkward and functions such
as matrix multiplication or addition do not exist and must be written by
the programmer.
A final disadvantage or inconvenience of LISP stems from
its unique nature.
Because of its strong recursive basis and unusual list
functions, the language seems obscure to the uninitiated user.
Becoming
accustomed to LISP's unorthodox nature and learning to think in LISP's
recursive style can be a substantial hurdle for the prospective user.
The
benefits, however, can be far reaching.
In our opinion, LISP's natural advantages relative to the multiobject
tracking problem outweigh the disadvantages mentioned.
In choosing LISP
we obtain more than just a convenient language for programming; we obtain
increased expressive power for constructing our algorithm.
2.3
Tracking Equations
As briefly mentioned in the preceeding sections, the decisions made
in our multiobject tracking algorithm concerning which hypotheses to
-33to accept and which to reject are based on statistical principles.
Thus
we postulate stochastic models for target motion and the resulting sensor
signals so that a joint probability distribution function of all the 6b-:
servations obtained can be derived for each hypothesis, and the maximum
likelihood hypothesis testing procedure invoked.
approach are developed in this section.
The details of this
We reiterate that the goals of
this research were to investigate the feasibility of the adaptive
hypothesis testing approach and not to develop an algorithm for any specific application area.
Consequently, we restrict attention to the simplest
interesting models of target motion and sensor observations.
The assumption we make concerning target motion is that all targets
move in straight lines in 2-dimensional space.
Incorporating maneuvering
models is an extension in principle easily handled within our present
framework.
Now given a hypothetical association between sensor measure-
ments and targets, we must estimate the state of each target from the present
and past measurements.
One approach is to perform a least squares re-
gression after each scan, and thus determine the desired target state
estimates and error covariance matrices.
This however is time consuming
and requires that we save all previous measurements.
What is preferable
is a sequential form of least squares regression which requires only last
state estimate, error covariance matrix, and the present measurement
to perform the update.
The appropriate algorithm is the Kalman filter
Since we consider only two dimensional motion, the state of each target
is given by its x position, x velocity, y position, and y velocity.
1
Depending on the application, maneuvering targets can be handled by adding
process noise to the target model or, alternatively, by various adaptive
filtering techniques.
-34-
Further, if we assume that motion in the x and y directions is independent,
we can decouple each target's motion in the two directions.
measurement equations for each target are of the form
systems theory
x(t+l) =
The state and
found in linear
systems
1theory
(2.3-1)
(t)x(t) + G(t)w(t)
(2.3-2)
y(t) = H(t)x(t) + v(t)
where x(t) and y(t) are our state and measurement vectors at time t, and
further:
E(x(O)) =m (0)
(2.3-3)
E(w(t)) = 0
(2.3-4)
T
E(w(t)w (t))
El(x(0) - m
(2.3-5)
= Q(t)
(0)) (x(0) - m (0 ))T] = PO
(2.3-6)
E(v(t)) = 0
(2.3-7)
E(v(t)vT(t)) = R(t)
(2.3-8)
and x(O), v(O), w(O), v(l), w(l).... are all zero mean gaussian random
variables.
From this model, the Bayes linear least squares regression
can be written in Kalman form:
(O I -l ) = m- (0)
1The various matrices and vectors in
sequently in this section.
(2.3-9)
(2.3-1) - (2.3-9) are specified sub-
-35-
P(01-1)
(2.3-10)
= P
_(tjt) =
x(t+llt) =
(tlt-1) + K(t)fy(t)
(t)
(2.3-11)
- H(t)x(tjt-l)]
(2.3-12)
(tlt)
(2.3-13)
P(tjt) = [I - K(t)H(t)]P(tlt-l)
K(t) = P(tt-1)HT (t) [H(t)P(t t-l)T
(2.3-14)
t) + R(t)]
P(t+ljt) = (t)P(tlt)T (t) + G(t)Q(t)G T (t)
where
(2.3-15)
(t+llt) denotes the estimate of x(t+l) given the observations y(O),
y(1),..., y(t).
The above recursive algorithm produces an estimate of the target state,
and moreover allows a likelihood function to be evaluated for each hypothesized data association.
Under the maximum likelihood approach we adopt,
no "a priori" information about such quantities as the expected number
of targets is assumed.
Instead, the likelihood of each hypothesized
data association is determined by how well it fits the observations.
A Bayesian approach, on the other hand, would require assumptions to be
made concerning the distribution of targets.
Although the algorithm described herein-could certainly be adapted
to a Bayesian approach, we have preferred to avoid the problem of
specifying a priori -distributions and have instead taken a maximum likelihood approach.
We now proceed to derive an expression for the likelihood function
of each hypothesis under our stated linear model.
First, note that each
hypothesis involves the motion of a number of targets.
Thus, when we
-36-
assign a target to a certain measurement, we must update that individual
target's state estimate and error covariance matrix, as well as the likelihood of the hypothesis.
We can view each hypothesis as a collection of
tracks, and thus a collection of individual Kalman Filters.
One composite
likelihood value is updated for each hypothesis, which represents the
"goodness of fit" of all tracks on that hypothesis.
In our present
scheme where many different hypotheses can exist, the total number of
Kalman filters equals the sum of tracks in each hypothesis over the number
of hypotheses (see Fig. 2.3-1).
Now the probability density give hypothesis
H. is defined as:
1
Density of
data association
under H i
= P{y(T), y(T-l),...,y(0)jH.}
(2.3-16a)
where y(t) is the vector of (x,y) measurement pairs collected on the scan
at time t.
Breaking this down to reflect the measurement to target
assignments, we get:
Density of
data association
under Hi
= P[ yL(T)
y(T),...,y
(2.3-16b)
(T)),{y (T-l),y(T-l),...,y(T-1)1,...
{y (),
(°0),...,y (0)}Hi.]
(2.3-16c)
=
P[{
1
(T), y1 (T-l),...y--l(0),
*..*.,{
T)
{y (T), y 2 (T-l),...y
, (¢T-), ...
, (O)}|Hi]
where yj (t) represents the measurement pair assigned to target j at
time t.
Note that going from (2.3.16a) to (2.3.-16c) we have merely
grouped the measurements into individual tracks.
Now, assuming that
the motion of any target is independent of all other targets, we can
write equation (2.3.16c) as:
2
(0)},...
-37KALMAN FILTER
HYPOTHESIS 1
LIKLIHOOD
VALVE; H 1
KALMAN FILTER
HYPOTHESIS 2
LIKLIHOOD
VALVE; H2
KALMAN FILTER
HYPOTHESIS N
LIKLIHOOD
VALVE; HN
Fig. 2.3-1
Filtering Scheme
-38-
Density of
) J
data association1=
P
under Hi
F
(T),
Yj(T-)...,y(O)lHi)
j
for J the highest numbered target on the hypothesis.
(2.3-16d)
By use of Bayes'
rule we can simplify the density expression for any target j:
P(
y(T), y(T-l),...,j
PP(y.
(O), HH)
(T-l)y.(T-2),..., y (O),
*-
i
H)
-
T
=
t=l
where y
(t)
P(Yj
(t)IY(t), H.)
P
(OHi)
(2.3-17)
represents all measurements assigned to target j up to and
including time t.
Recognizing P(yj (t) y t-
,
H ) as the innovations
density of the Kalman Filter for target j at time t, we obtain,
T
[
T
P(y.(
y(t)
t 1)' Hi) =T
P(V (t)Hi)
(2.3-18)
t=l
t=l
where V. (t) is the innovations and:
-3
v. (t) =
.(t)
(t) -
(tIt-l)
(2.3-19a)
N(0, S (t))
(2.3-19b)
S.(t) = E(V. (t)VT(t)) = R(t) + Hj(t)Pj(tlt-1)H
J
-j
J
3
where Rj(t), Hj(t) and P (tlt-l)
filtering equations.
(t)
(2.3-19c)
are the matrices defined in our Kalman
Since V (t) is a gaussian random vector, we can write
-39-
its distribution function:
P(v. (t))
3
T
-1
expt-V (t)S (t)vj (t)/2])
-J
21S j (t) I
27TI
where we have dropped the H
)
(Density of
)track j under =
(2.3-20)
Now from (2.3-17) we have
for brevity.
T
TTP(V.(t))
P(y(0)IHi)
(2.3-21)
the expression for the likelihood function of track j, which is just
the probability density function of all
under hypothesis i.
measurements assigned to target j
It is convenient to consider the negative log
likelihood function, which will serve as our measure of fit.
Lower
values of this new function correspond to hypotheses that fit the
measurements better.
Using equations (2.3-17),
(2.3-18), and (2.3-21)
as:
we define the negative log likelihood of hypothesis H
-log
likelih°ood
= -An
P(yj
ff(t=;T
- -Rn;j=1
En{
-= E
l
j=l
j=l
/n
(T),
y(T-l),...
y (O
H.)
p(v .(t)t
P
P Y (0),Hi I
P(v (t))
P+Rn[P(Yj0)
nP(V
(
(2.3-21a)
(2 3-21b)
i]}
Yn[P(y
(0) IHiJ (2.3-21d)
)
t)) +
t=l
J
jEl |El
(t)
pa(t)
2
+knP( (0)
J
+
i)
n 2
I Sj (t)1/2
+
(2.3-21e)
-40-
Notice that (2.3-21.e) can be calculated sequentially.
The increment to
the negative log likelihood function for target j at time T is just:
nI Sj (t)I
+
n 2
+
,
t > o0
2
A(-log likelihood) I
target j
time t
; t= 0
(2 qv
So far we have established the state estimate equations and likelihood functions for a general dynamic :hypothesis testing problem.
We
must now, however, make a few modifications to fit the multiobject
tracking problem.
We consider two distinct cases of track update:
initiation and track maintenance.
track
Track initiation occurs for the first
two measurements of a proposed target, and beyond that we have track
maintenance.
In developing state estimate and likelihood function up-
dates for initializing a target, we resort to special forms as opposed
to the equations previously given.
Immediately after the first two
scans in which any newly detected target appears, its estimated track is
simply the straight line joining the associated measurements, for we
need at least two measurements to determine a track.
Consequently, we
add no increment to the likelihood function value because we have no basis
to penalize a track before more than two measurements are obtained.
Thus, we modify (2.3-22a) to read:
V (T)S '2 (T)V(T)
+
-1
+
A(-log likelihood)
target j
time T
n 2
+
+
S(t)L
2;
T>2
)
0
; T<2
(2.3-22b)
-41-
However, we immediately delete a hypothesis if the two measurements
associated with the hypothesized new target imply a velocity above some
maximum value;
j .(t+l)
i.e. for yj(t)
= (xj(t), yj(t)), if we have
- x.(t))2 + (y (t+l)
AT-AT
y.(t))2
--
> V
(2.3-23)
max
then we delete any hypotheses that attempt to associate y (t) and yj (t+l)
with the track of a new target.
Finally, if on the scan after its
hypothesized detection a new target fails to appear, we delete any hypotheses
associated with that target.
This approach helps to prevent the algorithm
from continually assuming new targets.
If in fact a real new target is
dropped, the target will be detected again on subsequent scans.
Two additional issues must be addressed, namely, the problems of
false targets and targets that fail to appear on a given scan.
When a
measurement is hypothesized to be false alarm, we obviously have no
state estimate to update, and thus cannot update the likelihood function
as usual.
A false alarm, like any other association, should increment
the negative log likelihood function in some fashion, or else declaring
all measurements to be false alarms would always be the most likely
hypothesis.
The
How then should we increment the likelihood function?
approach taken is to assume that a given measurement is a false alarm
This allows us to calculate our increment
with some probability Pf.
to the likelihood function as:
A(-log likelihood)!
= -n
false
alarm
Pf
f
(2.3-24)
(2.3-24)
-42Similarly, when a target does not appear in a given scan, how should
we update its state estimate and its likelhood function?
that no measurement is observed contains
incorporated into our calculations.
The fact
information which should be
For example, if a hypothesis as-
sociates no measurements to a target for many scans we would probably
want to delete that hypothesis from consideration.
Similar to our
assumption for false alarms, we assume the probability of a target being
missed on a scan is P , so that we have
m
A(-log likelihood)I
= -knP
missed
target
.
(2.3-25)
We update the state estimate of a missed target by running our Kalman
filter open loop, i.e., by not incorporating any measurement.
Now we can write our final likelihood function increment equation
to incorporate the above modifications
; T>2
false alarm
; T>2
missed target
A(-log likelihood)I
target j
time T
`
tn S(T)
2
T>2
' neither
of above
; T<2
--
(2.3-26)
We now specify the matrices in our general state space model
(2.3-1) and (2.3-2).
Target motion is specified by
xl1 (t+l) = x l(
1 t) + vxl(t)AT
Xl
((2.3-27a)
-43-
x2 (t+l) = x2 (t) + vx2(t)AT
(2.3-27b)
for a two dimensional position vector
xl(t) and v
v
(t).
(x , x2 ) and
corresponding velocities
Our state, then, is comprised of four components, namely
(x1 , x2 ) and(vxl, v 2).
Writing (2.3-1) and
(2.3-2) to reflect this, we
have:
1
AT
0
0
0
1
0
0
O
0
1
AT
0
0
0
1
x (t+l) =
(2.3-28a)
and our measurement equation is
y(t)
=
ElY(tX
1
y2(t)
(2.3-28b)
xl(t)
°
1
Vxl(t
+(t)
x2(t)
2
Vx2(t
where
(v1, v 2 ) is the measurement noise of our filter.
For our Kalman
filtering equations we set:
E(v(t)vT (t)) = R(t) =
1
which represents the covariance matrix of the measurement noise.
(2.3-29)
As noted
earlier, target motion along the two coordinate axes is decoupled, and thus
we can implement the above equations for each coordinate separately.
Finally, in Section 2.1 we mentioned that one of our hypothesis
formation constraints was that the measurement lie within a certain region
-44-
of an already hypothesized target
associated with that target.
(see Fig. 2.3-8a) in order to be
This is implemented by requiring that the
measurement residual have a maximum allowed size; i.e., we require that
we require that
V
T
-1
(t)S(t)- V(t) <
20)
(2.3-30)
where V(t) is given by (2.3-19a).
2,4
Results
In this section we describe our algorithm's behavior on four
separate tracking examples.
The first two examples highlight ' track
initiation, and involve a single target with noise corrupted
measurements and false-alarms.
The third example illustrates FIFO
expansion for two crossing targets.
The final example shows the algorithm
tracking three targets in a densely cluttered environment.
Before presenting the results a word is in order concerning the
examples,
First of all, the measurement covariance matrix R, was taken
as a 2x2 identity matrix.
Further, the data was generated by adding
fairly uniform noise over
-.5, +.5]
to each (x,y) position.
A maximum
initial velocity of 100.0 was assumed and probabilities of false alarms
and missed targets were set at .01.
Finally, only the five most likely
hypotheses were kept after each expansion,
i.e., the breadth of the
hypothesis tree was at most five.
Note that the theory requires a Gaussian noise distribution. Thus the
examples illustrate the lack of sensitivity to this assumption.
-45-
Example 1:
The first example illustrates FIFO maintenance with track initiation.
In Fig. 2.4-1 we have plotted both the measurements and the position
estimates of the filter.
The solid line represents the actual linear
motion of the target, while the dashed lines connect the noise corrupted
measurements.
Further, each scan consists of only one measurement,
starting from ml at scan 1, to m8 at scan 8.
Notice that on our second
scan m2 does not fall near the track, but is at (12.0 12.0).
from the subsequent data, m2 is clearly a false alarm.
As seen
In addition,
there is a good chance that on scan 2 we failed to detect a measurement
between ml and m3.
The results of the algorithm are exactly as expected.
The algorithm names measurements ml and m2 false alarms, and then picks
up the track at m3.
ml is named a false alarm because the filter re-
quires that a new target be followed immediately by another measurement.
The only measurement following ml is m2 at (12.0 12.0), but after a few
scans we drop the possibility of this track.
tracking our target from m3
on.
Thus, the filter begins
The hypothesis tree and the cor-
responding FIFO are presented in Fig. 2.4-2.
The maximum scan depth
of our tree is seven, and the maximum breadth is 5.
For the first
five scans we fail to identify the first scan, and thus the FIFO
grows.
At scan 6 we finally identify ml as a false alarm and bump it
out of the FIFO.
By scan 7, we have received four sequential measure-
ments approximately lying on a straight line, and thus we identify the
four bottom scans in the FIFO, including m2 as the false alarm.
At
scan 8 we identify m6 and thus reduce to a FIFO size of two scans.
-46-
-I
m8
I
8
7
6
5
4
3
2
1
1
2
3
Fig. 2.4-1
^'-----------------
4
Example 1
5
6
7
8
-47-
f
SCAN 2
SCAN
SCAN 3
m2
mU
ml,
1
ml1, t
I
I
I
I1
,
m<
I
I
F
C
3
FI
A
N
F
- -
_
F
0
I
A
~Cc
A
F
MNW
21
0
m3 i
m45
m4
Ir
3
In'
,
'I
Z/iA
I
M I
/I
"-h:
I, .k~
F
F
0
S
CICIC
.S
S
0h
.
SCAN 7
--
~ ~
~
SCAN 8
I
mS
~
6
3
IA
I
e
i
I
i
-
0 b&
~
II I
aA
'A
F
-
3
nn
L
41
!
I a
A
N
3
A
N
2
O = identified meas
m2 is a false alarm
'm ,m8
;m7:
m2im3 m4
10
, 7
N
No
I
'
7
t,
I
'
11
---
C
C
~ =1U'IN
"
S"
---- --- -
-
Fig. 2.4-2
--·-
I
,.,,-,
l~
'
-
m6
'm4 m5
3
!13
F
LLLLW1
I
351415 cl
NA
I
A IAI
INI
NI
IN
21
l
I
N INININI
_
-
F
AIAIAA
__
-
m24--
I
0 -
:
A
2
SCAN 6
im1
3
t 3
I
m
,
AA
~3
n
SCAN 5
SCAN 4
'
,,
I
0
I
1I 21
t
'
IK
3 I1
Example 1
_
-48-
Assuming no more false alarms
or missed measurements, the FIFO size
will most likely remain at two from here on.
In general, Fig. 2.4-2 illustrates a basic concept of the algorithm,
i.e. tracking conflicts can often be resolved by waiting N scans in the
future.
The FIFO grows until either the conflict is resolved, or the
FIFO fills, at which time the most likely association is chosen
In
the example above, FIFO decisions were never forced by the FIFO filling,
rather scans were identified on their own accord.
Example 2:
In our second example, a few more spurious measurements are included
to illustrate some other points.
Fig. 2.4-3 gives the-measurements and
the estimated trajectory of our target.
Once again, the solid line
represents the target's actual motion, the dashed lines connect the noise
corrupted measurements, and the x's are the position estimates.
scans except for scan 2 have a single measurement.
measurements, m2 and m3.
All
Scan 2 has two
Further, m7 and m8 do not fall on the track,
but are positioned as indicated.
Using a depth three FIFO, the algorithm
manages to track the single object present in spite of the somewhat
ambiguous second scan, and the missing measurements at scans 6 and 7.
Fig. 2.4-4 illustrates the FIFO maintenance.
Note that a depth of three
means that after growing to a maximum of three scans, the FIFO will
immediately bump off the bottom scan.
The third scans then enters into
the hypothesis expansion before the oldest scan is bumped.
scans 1 and 2 enter the FIFO.
Initially,
At scan 2, we hypothesize, among other
things, that ml has moved to either m2 or m3.
At this point in time,
-49-
12
measurement
- track
=position
estimate
_- -
10
ml ,
I j
m9
10
8
,.
m8 at(l.O 1.0)
le se
6
m7 at(40.0 40.0)
4
..........
*0-
e-
®® 0
· rem6
4
%m5
m4
2
0
2
4
Fig.
---
-----
--
6
2.4-3
-----·^---·---·--i-·1
Example 2
8
10
12
-50____
- -
-
:
:-
l
SCAN
SCAN 2
ml '
1:
SCAN 3
SCAN 4
m3
I
ml m2
I
I
I
m4
mlm2 m3
m2 m3 m4, m5,
m2
-g 4
i
I
1 -- 2
I0
I
l~z1
!
!
!
I
I
I
2
II
I
I
i
I
I
II
S
F 0
F
A
N
2
F
0
i
0
j
A
N
1
I
SCAN 5
Im 5'
m4
It
I
I
N
IC
F
F
A
N
0II
'C
A
N
F
S
S
F
N
N
6
5
I
SCAN 9
II
I
< 81
I
10--10-t0--
m9
1I
I
6
F
O
A
A
N
N
9
8
F
I'1S1sq
F
__
__
SCAN 1
iniOt
intIl
I
0 I
12-I-- 12
I
I
I
F
S
C
S
C
F
S |
F
O
N
N
F
N
10
9
0 !
Fig. 2.4-4
I
I
I
I
I
Example 2
1
N
F [a
t
I
I
I
!
S
sA
.NN
T ]
I
O = identified moeas.
m12 I
i
[
I
I
.I
I '0
I
12'
I0
I
10
I
I
0 7
_
I
I
sS
i
ImlO --iaI
I
13,
I I
I
mI
I
10 I
'-6 I
F S
F!
SCAN 10
mlO,
,1O
im9
Im8I
I
$7
I
I
SCAN 8
I
m
I
N
3
N
4
I
am7 i m8
m6,
°l IIcA,,,I IcI C
A
4
F
SCAN 7
01 7
F E
c
-
II
I
I
1
F c
O
a
I
,m6m6, m7II
mSI
I
I
I
I
I
io
Fo
0
III
I
1
s
SCAN 6
m6
15
F
S
C
s
C
I
'
I
N
io
$
,I
!
= forced decision
when FIFO is
full
m8
m3, m7
are false alarms
-51-
there is not enough information to decide which track is the correct one.
On scan 3, the FIFO fills up, but we manage to identify the bottom
scan, i.e., the three scans of data have determined the existence of a
target at ml, and we bump scan 1 off the FIFO.
At scan 4, the FIFO
fils up, and since the bottom scan is not identified, the filter is
forced to decide the association of scan 2.
Choosing the most likely
hypothesis, the filter assigns m2 to our target ml and calls m3 a false
alarm.
Scan 2 is then bumped off the FIFO.
At scan 5, another valid
measurement m6, is obtained and thus the filter identifies
scan 3 with our target.
and m8 respectively.
Scans 6 and 7 include two false measurements m7
Notice that as long as m7 and m8 remain on the
tree, the FIFO is force to chose the bottom association.
As soon as
m8 is bumped off the FIFO at scan 10, the bottom scan once again
identifies on its own occord.
An important point is brought out by
comparing the present case with our previous example.
In example 1 we
were never forced to decide on the bottom scan's association because
the FIFO was large enough
accord.
to identify the association on its own
In this example, the FIFO size has been
identification decisions must at times be forced.
halved, and thus
In many cases such
as the present one, the forced decision is identical to that obtained
by waiting.
Example 3:
The third example involves two crossing tracks.
Fig. 2.4-5 depicts
the actual track, the observations and the estimated track.
The in-
teresting aspect of this example is the method in which the algorithm
-52-
-
-
m19
10.0
5.0
5.0
Fig. 2.4-5
L___
il _ICI
Example 3
10.0
-53-
resolves the ambiguity of the measurements at the crossing point.
The
algorithm has no problem tracking the two targets for the first four
scans, however at the fifth scan the tracks cross, and either measurement
association seems as likely as
the-other.
As a result of the ambiguous
association, the FIFO fills up and we are forced to make a decision about
As soon as that decision is made, the subsequent scans,
the fifth scan.
which have already become identified, are permitted to bump off the
FIFO.
Notice in Fig. 2.4-5 that the algorithm resolves the fifth scan's
ambiguity nicely by picking the associations which fall closest to the
actual target motion.
A detailed description of the FIFO maintenance is presented in Fig.
2.4-6.
In this example, we use a FIFO of depth five.
The first three
scans fill up the FIFO, and on the forth scan we identify the two tracks
comprised of scans 1-3.
scan is can 5.
Refering back to Fig. 2.4-5, the ambiguous
Notice that scan 5 enters the FIFO and remains
there
until a forced decision is made at scan 9 when the FIFO fills up.
Further,
at scan 8 we have already identified three measurements subsequent to
scan 5.
What has happened is that the algorithm has easily identified
the measurements for scans before and after the crossing point.
The
ambiguous scan 5 is kept in the FIFO with the hope of clearing up its
ambiguity.
As the FIFO fills up before the conflict is resolved, a
decision is forced, after which the subsequent clear associations enable the tree to be quickly reduced in size.
Finally, at scan 10 all the
past scans have identified, and we are left with only the present
scan in the FIFQ,
-54-
|
~~~~~~~~~~~
I
qD-NN
I
0
In
o
o U
I
z
E
O-
tl
oII
00
I
I
I II
III
III
II
I
I
--- --
w-
- qlP
NN
£
nE
a,
0
9
N
t-
E V
m) ed_'~--·
.. )
o
It
\/
)9
CqJ
.
*
0u
I
I
I
--
U
o
o-
0LLo
z
c
O
--
-J
2.
(/)
:
"'
°-E1
0
U.
L
L.
-
EI
Ill
0
-
o
SeeI-1
0E
m
z
-~~~
CU
N
-
----
r
I
Na
.. I
Ea
iL~*
CU).
N
0
C)
U.
1
V
LL
I
-H
Iu
.H
z
E V
<
u>
o
0
C/)
I
-N
00El
F14
ll II_
I
I
1U)
E
2V
-
-
Cm
- 0-
£
E
C,,--I -
(a,
TI
n n
0
z
L.
I:
Ll.
0
IL
z
i
o
r,
2
0
-N
-
IL
L.
cli
,)
(7
vn
l
U)
ui
,~~~
t
O ___S9_
-N
In
-----EE)
I---
0
N
_r
E
cC
I III
III
I I
I
I
I
_
I
_
____
_I
E
___I
I
I_
_
-55-
Example 4;
The past three examples have illustrated the problems of track
initiation, false alarms, and ambiguous decisions.
In the final example
we illustrate multiple issues by considering a dense, three target
tracking problem.
In Fig. 2.4-7 we present the raw measurement data as might be presented to a human observer.
moving upwards with time.
Each scan has three measurements which are
It is clear that a visual solution of the
tracking problem in time is difficult.
is at scans 4 and 5.
One of the biggest problem areas
The measurements are clustered so closely together
that the incoming targets could take any of the outgoing paths, which
are themselves unclear.
Fig. 2.4-8 gives the actual track and and the observations of the
three targets.
Two targets are moving at an angle to the right, while
the third travels directly upward.
The observations have been obtained
by corrupting the actual tracks with noise, which clutters the picture.
Of course, the actual solution of the tracking problem in 2.4-8 would not
in practice be known to any observer or tracking algorithm.
Fig. 2.4-9
presents the tracking results obtained from a depth three and breadth
five tree search.
As can be seen, the algorithm correctly associates
each reasurement without getting lost in the crowded area around scans
4 and 5,
algorithm,
Because of the smoothing effects of the Kalman filtering
the estimated tracks are closer to the actual tracks than
the new observations.
In Fig. 2.4-10, a similar run is shown with the same data as before
but with a FIFO of length one (i.e.,
a depth 1 search).
Because of
-56-
Scan
13
27
26
Scan
12
24
Scan
22
Scan
20
10
10
18
Scan
9
16
Scan
-
* ·
0
Scan
7
Scan
6
14
12
Scan
5
10
Scan
8
6
4
2
n
.
Scan
·
4
0
e
2-
Scan
~
I
*
I
2
3
Fig.
I_
_________
__
__111_____1_·ls______·P___Y
l-I1IS
2.4-7
4
5
Example 4
II
--
-
6
-57-
2
2
2
2
*
2
1
1
1
I
11
II
I
¢
1
2
3
4
Fig. 2.4-8 Example 4
_RI_(_I______________1
5
6
-58-
27
26
24
22
20
18
16
14
12
10
8
De pth
6
0
4
0
=
Breadth = 5
2
0
4
Fig. 2.4-9
____________________________
__
Example 4
v
-59-
27
26
24
22
20
18
16
14
12
10
8
Depth = 3
Breadth =5
6
4
2
0
1
2
Fig. 2.4-10
I
4
Example 4
5
6
-60the constraint on hypothesis tree depth, a decision on each scan is
forced immediately after it is obtained, and thus the FIFO always
shrinks back to empty after each scan.
in initializing the tracks.
rectly assumed.
were forced.
The problem in this case was
On the first scan three targets were cor-
However on scan 2 decisions on the targets' whereabouts
Any decision without at least a third measurement is com-
pletely arbitrary, for there is no velocity estimate at this time.
a result, the algorithm in fact crossed two of the tracks.
As
From this
point on, the track estimates had to reverse direction to pick up the
measurements again.
It happened in this case that by the time the esti-
mates reversed direction, their original targets were close by, and thus
the initially erring estimates ended up on their original tracks.
The
single scan run is included to point out the necessity of an N-scan
approach.
It is of course impossible to portray every different kind of
situation in a small set of tracking examples.
What we have attempted
to do here is highlight some of the basic properties of the algorithm.
Clearly, more extensive testing and development would be desirable..
-613.
SUGGESTED FUTURE RESEARCH
Clearly, the adaptive hypothesis testing technology used to construct
the multiobject tracking algorithm described herein is only in its initial
stages of development, and it has an extremely broad range of potential
applications.
Consequently, there are a number of extremely interesting
directions for future research, some of which are briefly mentioned.
The most direct extension of the work conducted herein would be a
more extensive testing of the algorithm.
only on a handful of test cases;
The algorithm has been tried
more experiments should be carried out
to collect statistics, observe the effect of changing various parameters,
and determine the computational limitations of the approach.
A priori statistical characterization of the performance of the
algorithm would be desirable, but is quite difficult in view of its
complexity.
However, it should be possible to analyze certain simple test
cases; if these are well-chosen then the various thresholds in the
algorithm could be more systematically specified.
An important issue is the track versus measurement oriented approach
to hypothesis generation.
It isn't completely clear at this point
exactly what the tradeoffs between the two approaches are.
the
More generally,
use of efficient hypothesis representation in adaptive hypothesis
algorithms is basic.
These algorithms have memory, and thus have an
associated state set, but the structure of this set seems to dynamically
change in a data-dependent fashion.
Perhaps the most interesting direction of extension would be to
generalized
the algorithm to accept
addition to continuous-valued position
discrete-valued information in
information.
LISP is well-
-62suited to such a task.
Such an development would greatly extend the
range of problems to which automated tracking algorithms could be applied.
-63APPENDIX - ALGORITHM DETAILS
We present here a much more detailed account of the algorithm
described in general in this report.
Our aim is not to comment on each
line of code of the program, but rather to discuss the input/output
characteristics of functions which make up the major blocks.
As mentioned previously, the algorithm naturally divides into four
main blocks:
initialization, hypothesis generation, FIFO maintenance,
and hypothesis merging.
We discuss the makeup of each block separately:
INITIALIZATION
IN IT:
Before calling the tracking program certain variables must be
defined and initialized.
The "init" function handles this.
The following
is a list of the variables defined, their descriptions, and the default
values set by "init".
1.
prunefactor=2.0
.
this is used in a second pass pruning after FINDNOD.
surviving FINDNOD whose
(-) likelihood values are greater than "prunefactor"
times the minimum (-) likelihood hypotheses are pruned
2.
All hypotheses
out.
markX=t
these are flags which determine whether certain variables or trees are
to be printed out during a "track" run; if set to "nil", printing is
inhibited;
3.
if set to anything but "nil", printout occurs.
mez=O
the total number of measurements input since the last "init" call.
-64-
4.
nnumb=0
the current node subscript for the nodes in the hypothesis tree.
5.
fifoscans=(0)
a list whose elements are the last measurement subscripts for each scan
(e.g. (4,2,0) implies that the FIFO contains 2 scans with scan 1 = meas's
1 & 2 and scan 2 = meas's 3 & 4.
6.
terminals=(nO)
a list of the terminal nodes of our tree.
Initially we include only the
root node nO.
7.
n0=nil
the root of our hypothesis tree.
It is initially given a likelihood
value of 0.0, and assigned to measurement number ('meznum) 0, a placebo
measurement.
8.
conf=nil
a list of confirmed targets
9.
scanmax = 3
the maximum number of scans allows in the FIFO.
10.
R=2x2 identity matrix
the covariance matrix of our observations.
11.
Vmax = 100.0
a maximum velocity allowed for initializing targets.
12.
gate=5000.0
the n of equation (2.3-30)
-65-
13.
keepnum=5
the numberaf the most likely hypotheses to be kept by FINDNOD.
This
value sets the maximum bredth of the tree.
14.
Pf=.Ol
probability of a false alarm
15.
Pm=.Ol
probability of missing a target
16.
keepnodz=nil
the terminal nodes kept after FINDNOD
17.
nodzprune=nil
the nodes to be pruned out after FINDNOD.
Note that variables 1,2,9-15 can be set to the user's desires.
In addition to setting up the above variables, "init" calls two
functions:
(initree 64) and
(initcsf).
The former erases the property
lists of the first 64 nodes of the tree (if more than 64 nodes were used
on the last run, (initree n) should be called manually).
"initcsf"
initalizes the confirmed states file.
ASSIGN:
After calling "init" manually, the processing of measurements is
performed by (track).
"track" serves as our main control loop.
The
very first thing we do in track is assign each measurement a measurement
name of the form m..
The measurements are (x,y) pairs and are stored in
the variable "data" before calling track (see the section on Usage).
-66-
If no measurements have been set up, we abort, else
(x,y) pair the name mi
ASSIGN assigns each
where i is the running count stored in "mez".
The final value of "mez" is then the total number of measurements input
since the last "init".
HYPOTHESIS GENERATION
FINDNOD:
"findnod" is a recursive program which expands the hypothesis tree
using branch and bound techniques.
"nil"
The variable "terminals" is set to
before calling "findnod", and is updated to include the new terminal
nodes after expansion. "findnod" is called with the past terminals as its
argument, for we expand our tree from the old terminals onward.
Before further discussion of "findnod" we must discuss the implementation of our hypothesis tree.
As previously mentioned, a LISP vari-
able can be assigned properties, which in turn can be given values.
Each
node of the tree is a variable called "ni" which has a "branches" and a
"parent" property.
The value of its "branches" property is a list of
nodes which are its direct descendants, i.e. a list of pointers to
children nodes.
of the node.
Conversely, the "parent" value is the direct ancestor
With these two properties,
each node has forward and back-
wards pointers which allow easy bi-directional traversal of the tree.
A representation of a general property list is given in Fig. A.1.
We now describe the various properties and their values:
1.
branches: a list of direct descendant nodes.
2.
parent: the variable name of the direct anscestor
3.
target: a number representing the hypothesized target of
the node.
-674.
meznum:
the measurement number of the node (each lvel is
assigned to one and only one measurement)
5.
likelihood: the negative log likelihood of the hypothesis
This value is propagated along the hypothesis branch
during expansion, and is finally left only on the terminal
node of the hypothesis.
6.
states: a list giving the hypothesis' state and covariance
estimate for each target on the hypothesis.
((targeti (estimate))
(targetj
The form is:
(estimate))...)
or
((1((XlvxlYlVyl)(PxOOPx01oPx10Pxll) (Py00Py01PyloPyll)) )(2(...)))
Which says that target 1 has position and velocity estimates
(xl,Vxl,yl,vyl), and covariance matricies for the x position
is:
xO10
and likewise for y.
Pxll
Like "liklihood", the "states"
property is propagated along during the "findnod" expansion
and is left only on terminal nodes.
7.
tentatives:
branch.
a list of the tentative targets on the hypothesis
Again this is a propagated property which ends up
only on terminal nodes.
In addition to those properties which are always present on the tree,
some properties are created and erased while implementing various
functions.
Because of their transient nature they are not discussed
here.
We are now in a better position to describe the expansion of
the hypothesis tree.
To expand from any node we must decide how many
-68-
_W
I,
*cn
clJ
o
0
I,-
to
-.
°
Z
W,
F-
C,
om
pi
IJ
a)
-0
cn
E-4
o
*0
0
0
I
'.
I.
..
--
W
r
a)
wu
o 0O
-O
0
ow r:.a
0O
.-if,
z
I----1----I-- C
C
t-IHX
Q
4
Nu
N
x
w
C
W
w
r
I4
(A
(4-
0
0
0
C
tm
r_
0
C
0
-6
c
C
0E
m
z
w
o_
C
C
0Z
cr
z
II
C
0
I
t
z
__
Cm
C
mo
mL
I
__
·rH
44
U,
w
-69-
nodes to branch to.
We decide this by creating a list called "possible"
which contains all the confirmed targets, the tentative targets of that
a new target, and 0 (a false alarm).
hypothesis,
Those confirmed and
tentative targets which have already been used on the branch in the
present scan are then deleted.
The resulting list then represents the
possible targets which occupy the next level of the tree.
For each
target, we create and branch to a separate new node, while listing
these nodes on our "branches" property.
For each one-level expansion we
call the routine "kalman" which updates the targets' state estimates
to account for the new target-measurement association.
We store these
updated estimates in the "states" property of our new node.
If the
(-) likelihood value of any of the new nodes exceeds the maximum
(-)
likelihood value of the present "keepnum" most likely hypotheses,
then we stop any further expansion from that node; the hypothesis'
(-) likelihood value can only increase and thus decrease the likelihood
of the hypothesis.
the tree.
In this manner we inhibit senseless expansions within
The halted node is added to a list of nodes to be pruned
(nodzprune).
When we are done with the expansion, the "keepnum"
most likely hypotheses are left on the tree, a list of which can be
found in both "keepnodz" and "terminals".
Having now expanded our tree to account for the new measurements,
we erase the nodes to be pruned by calling "pruneout".
"pruneout"
deletes all "dead-end" nodes from the "branches" property of live nodes
and de-allocates the storage created for them.
then performed in "threshprune".
A second pass pruning is
"threshprune" prunes out all of the
-70remaining hypotheses whose (-) likelihood values are greater than that
of the best hypothesis by a factor greater than "threshold".
Finally, we must recognize any newly confirmed targets which may
have resulted from the above pruning.
A routine called "confind" checks
for confirmed targets by at each level of the tree seeing if all hypothesized targets are identical.
If so, that target is a confirmed
target, and is added to the "conf" list if not already there.
After
finding the newly confirmed targets, we must then go back and delete
them from all "tentatives" properties on the terminal nodes.
Thus ends the expansion block of our algorithm.
In summary we
have expanded the tree, pruned out "unlikely" hypotheses and propagated
up-to-date state estimates.
F IFO MAINTENANCE
In this next block we maintain the dynamic size of the hypothesis
tree.
In maintaining the tree as a FIFO of scans we must bump the
oldest scan off the FIFO in two specific instances: when the FIFO is
full, and when the oldest scan is identified.
FIFO FULL
The FIFO
(tree) is allowed to expand such that it contains "scanmax"
number of scans, but as soon as it does so, it bumps the bottom scan
off the FIFO.
We check for the FIFO being full by checking the length
of the list "fifoscans".
As mentioned, "fifoscans" contains the ending
measurement numbers of each scan, and from this we easily infer the
number of scans in the FIFO.
three functions:
If the FIFO is full we call the following
-71-
1.
CSF.
This routine updates our "confirmed states file".
Remember, the confirmed states file stores the state estimates
of all confirmed targets at each time the FIFO bumps off a scan.
If the FIFO has filled up, then the bottom scan is probably not
identified and we must somehow decide which confirmed targetmeasurement associations to update the CSF with.
This decision
is made simply by using the association of the most likely hypothesis.
Using these associations, we call "kalman" and update
the CSF in a similar manner to updating a node of the tree.
CSF is itself a tree of breadth one.
where i corresponds to the scan.
CSF tree
-
(tree).
C3
C2
C!
)'-)
SCAN
BUMP.
Scan i has the node in the
The CSF thus looks like:
(( )(
2.
The -nodes are names "Ci"
(at level i), and each node has its scans' total
state estimate.
Co
The
(( )(
) ...) - - -
SCAN 2
This function
bumps the bottom scan off the FIFQ
It does this by changing the "branches" property of
the root node "nO" to include those nodes beginning the second
scan in the tree.
It then de-allocates the memory assigned
to the first scan.
3.
CLEANUP.
Bumping a scan off the tree may delete the
occurances of tentative targets on a hypothesis branch.'
"cleanup"
-72-
traverses through each branch of the tree, creates a new "tentative"
list for each branch, and stores that list on the "tenatives"
property of the associated terminal node.
In sumimary, upon detecting a full FIFO, we have completely bumped the
oldest scan off the tree, and updated the CSF.
BOTTOM IDENTIF IED
After checking whether the FIFO is full, we can now see if the new
bottom scan is identified.
and then bump
1,
it off the FIFO as well.
BOTCHECK.
or not.
If so, we want to update the CSF for this scan
This function checks
if the bottom scan is identified
As defined in chapter 2, an "identified scan" is a scan with
all "identified measurements".
Further, an
is a measurement with one and only one
its level in the tree.
"identified measurement"
target assigned to it on
BOTCHECK then checks each level in the
bottom scan; if each level is an "identified measurement"then the
bottom scan is identified and BOTCHECK returns true (t);
then it returns false (nil).
if not,
If BTCHECK return nil, we continue
on to the hypothesis merging block.
If it returns t, we bump the
bottom scan and update the CSF by calling "CSF", "BUMP", and
"CLEANUP",
exactly as we did when the FIFO was full.
We then loop
back and check for the new bottom scan to be identified.
This way,
we bump off as many bottom identified scans as the tree has.
-73HYPOTHESIS MERGING
MATCH
Our final block's purpose is to trim redundant hypotheses off the
tree.
As discussed in chapter 2, some live hypothesis branches may be
identical due to past differences being dropped off the tree.
hypotheses can be either "exact" or "1-1' identical.
Identical
"exact" identical
hypotheses have the exact same targets along their branches.
"1-1"
identical hypotheses differ only in a 1-1 renaming of tentative targets.
In the present block we first identify the groups of exact identical
branches, trim all but one of each group, and then do the same for
1-1 identical branches. The main control function for these processes is
the function "match".
"match" and its subfunctions represent a substantial
amount of the algorithm's code.
EXACT
Identifying identical hypotheses is done in a multi-pass method.
With
each pass we reduce or subdivide lists of possible identical hypothesis
using some criteria for "identicalness".
To find exactly identical branches,
a two pass method is used:
PASS 1: TENTAMATCH
For branches to be identical, they must have the same number of tentative targets.
"tentamatch" creatsa list "matchlist" whose entries
are lists of terminal nodes which have identical numbers of tentatives
on their branches,
PASS 2: EXACTMATCH
Our final pass, "exactmatch", starts from the terminal nodes, and
by traversing the tree one level at a time, reduces "matchlist" down
-74to include identical branches at each stage.
When the root node
is reached, the final list, "nextsame" contains lists of exactly
identical branches.
EXACTPRUNE
Having grouped our identical branches, we trim out all but one
hypothesis from each group.
Since the hypotheses were spawned
from different origins, their likelihood values will be close,
but not exact.
smallest
We keep that branch of each group with the
(-) likelihood value.
This determination and the
pruning operation is performed by "exactprune".
1-1
IDENTICAL
Finding and eliminating 1-1 identical hypotheses is similar to the
method used for exact hypotheses.
Our goal here is much more difficult
howerver, for we must find hypotheses which are exactly identical except for a one-to-one mapping of tentative targets from brench to branch.
To avoid an exhaustive brute force approach, a four pass method was
used for determining our 1-1 branches.
PASS1: TENTAMATCH
As described above, "tentamatch" creates a list "matchlist" of
groups of branches with identical numbers of different tentative
targets.
PASS 2: ELSAME
This routine subdivides "matchlist" into a list "nextsame" containing groups of branches which are identical except for their
tentative targets (i.e.,
identical confirmed targets and false
-75alarms are in the same levels).
PASS 3: SUBFILTER
"subfilter" subdivides "nextsame" into a list "nextsame3" containing groups of branches which have the same number of occurances
of individual tentative targets (e.g. if hypothesis n7 has tenative
targets 18, 19, 20 with frequencies on its branch of 1,1,3 respectively, and hypothesis n8 has tentative targets 21,22,23 with frequencies
of 1,3,1, then n7 and n8 would still be grouped together after subfilter).
PASS 4: FINMATCH
This subdivides "nextsame3" into a list "finsame" containing the
1-1 identical groups of hypotheses.
EXACTPRUNE
As described above, "exactprune" prunes out all but the most
likely branch of the 1-1 identical groups.
Finally, after trimming the tree of redundant hypotheses, we call "confind"
to find any newly created confirmed targets.
We then loop back to the
beginning of our "track" control loop and check if there is another
measurement scan to process.
PROGRAM USAGE
Running the tracking program requires minimum set-up from the user.
Here we outline the procedures for processing data:
-76-
STEP 1: type "(init)"
this initializes the environment and sets all parameters to
the default values listed above.
At this time, any change of
parameters can be keyed in by the user.
As described above, if
intermediate print-out is not desired then typing "(unmark)" after
If more than 64 nodes must be erased from pre-
init is necessary.
vious runs, "(initree n)" must be typed, for n equal the number of
nodes to be erased.
STEP 2: type "(setq data(?))"
We must set-up our measurements in the list "data".
"data" is
structured as follows:
Each measurement scan is a separate list in "data".
A scan's measure-
ment list in turn is comprised of the (x,y) measurement pairs; e.g.
if we wanted to process only one data scan we would type:
'(((1.3 4.7)))).
'(((1.3 4.7))(7.4
Processing two scans would require:
12.3)))).
(setq data
(setq data
To generate data following linear motin
with superimposed noise we use the "line" function:
(line 'x 'y xslope yslope)
which would increment x and y by xslope and yslope respectively.
The output is then an (x,y) pair containing the new (x,y) with noise
uniformly distributed over
-.5,+.5] added on.
Thus, for (x,y)
initially (5.0 7.0), (line 'x 'y 1 2) would give us ((6 + noise)
(9 + noise)).
-77-
STEP 4: TYPE "(track)"
"track" processes the measurements in "data".
A list of control
messages and the targets for each branch of the tree are printed
out.
GO TO STEP
TO CONTINUE ENTERING DATA
GO TO STEP 1 IF A NEW EXAMPLE IS TO BE RUN
4
ti
-78-
:; t'1::, :,
d.i;.?:. ii ' (:, ,:i
i.:.~
I:.! .
:-- : ' i
.i i.
eiZ(:.-
:' :"
A.
)(,AMPLE
R/v'
:i . . i --
S:·r',c
~,.e
!:1sl 'be
i:;",',
.- ,
l[;
i
i
e
II,. ' . 't'
'".I-.
ii((10
o.
w~r'~y '6.:, ::·i'
msv[-:
.:1
c, :{...........
i ':C,... :in
a, f
b1]. 'i:, t-:-,l
A ,
:.
.t;;
i>
:r'§
dr':'il;
.
'
j..
':.
b -It'i, l.
Pvri;·r'b----ou
o',' ', l T 1''§
l uo', i'fi
'I:,, l , -,lot,:.
''
tt.';'..:..I" i ie '
. i i-.
:.. t
---
'' 0
'- ... ' -
-. 0
e'i 0i ;:....
1,
(
.v el
!
ttrj.--,>""' w0 I,';!X-r.
u,
"
'
.i
'i~~~,
At.*$c.Aj j 'o
'' ].i l
I
'.
e
''
r-:
Lhe4
i
,i
n,si
i
i f' s' t
---
di
....>
"i Irl;..
"i:.:,f' u!"~ u. :r :i.:l
e r.u'\\ t..:(Ii- 3.:i.¢.>
( Ii :i.J s. LL t:!. r'~,:: ".
J 'L (., ,:...',t',
J . %
_
0i 3 0
'
't'~ee.:.:~'
466666
1.
6
0.6
F
oi
i ? 'the
i.:0).)S)
, :.':: c.r' s .-I '
jj 'ir'''i;¢fl
i
a'..!'.!
J
fs,,,:.
('
-
0
,:-'z,..
: i ,? }¢7
"'D.;;
'
/':.
!
J
J.
))'., ))'
d
C
-79-
(((
..!
0 ,-.0.98"
7:S3 )'
))
te
v'K..:.c.
i.>c set.u
"e
t=
!now
'e.d'.i
:.c:,r"o~ess
( :. r E'
i.
o
i
i;
re
l i
(n 0 · ·
+ 4 ' i
r : t..
J. d:
trt :i. ei
j
d
i e 'rU....
((4
0:B.3'.4.':;,;
T0)
(().5:4:~:-::3
()o9E4·
(4 3
+
4
4
7
0;.
70
-
ile 5 li.vin:! . t ,.ck
t 4:'re
7.t the
'- ;,,ee.
te
te s
;.'.:i
l
iind .
.
vale:
;,' "o1
ode'e ec c
be-.tween
; IeJ f.>renitl
, ' ,e iF b
h : '- .
(e<
eC
iv
o
reent.
.
the
i.
't
"-..."
"
t-.:,
"ee
.
-80-
..:..!................. ..................
"-
.*~c!
__ _*.+,,
,+_....
.,,* ~
.............
...."...i,,,
, e _ :,........
'.
!.......~.,....
_t~
. "
..·
t i i ', : i t.
at
'
Fi ilii; i.
Cj,
I
' ';
' i
cTCCii
ii
.3 j
1 i
. i ): i
;
,)
1vi
.I, i .
i
- J.
f':,
i,':.
1;
.S6 { 1 J
('
5
1 '3:i.'..
i li d
0o0 r(.
.: t t: .' r .i ..i ' 1 e4
-9j
(: 3
.(:-.,' im~~i....
._...._ .......
.......
..............
.._......._..
.-_.
_
:..o-.:
..
_......................
....
L7
.,
0 (i
C:1.66667)
T +-
1 ++ + .i + . +..
r '.i.
s.0
i
,r.n
..
n
00
'
.{:i4.n
'CF
-..n
+ ++ + +(2o:L5
+ -, + +..+. +
+ rA L
.j, .. r
i + :. , ++++I
,-jo8:L66I67)
+.' 3.."
2,
........
,
C,0)
+
:
+-t+++++++.
..
+++
n 1i ) e
.
':.;.)s j; ; .? si
;ryO ,
"
!
:.
2
;i
? .:.i iJT
:.
,': T
it
9
i
.
.
-81-
Y~~;I
\
.....
:tl
"- rO r;·
)
(se s:;fr; -. '4-
ii
s
r
.
1
3, )
Pset
,
I 0E
tLI0
ir'..
t7 $,,
,1
Nr.,
4
-(s-tci
-
.C'
?
(',,ta".:: r. :.
. .'ti 7r_
S
(str,,t t
%
S
( t .
V/
iir,
_ P
W.cr¢rrf,
-
tu.,
i
)5
n
¢
nil
ri
t: .'Z
f
'i
Li;
"I
if·~,'.
L nt.7
-
756
-82-
(
Cs
Tecl
e s
t([r~oS_:'
3
''
·
.1
F
rvLr . 9; .ri}
'wtt.i .: C
-. ' ifl;}'r
,s eta ii:.
c,
nI '
.
~
-- '
.
''
,(Fr;.
(set
_ Ei; >
,, 5~.
I
r j' ' ou
' . e.is
,(.~9;d
- i ;:
.·7
(s'eto
:.:k
(an d (not
fiiA'f"Z
,I i !-'"
Ct_.is-l t.....
r' -- . '
(tf;t
irct' .i
cc'i(l
'':-:.,}
s
-
,'
'"i
"' * r',I
f,(eir!d
'1u
b---
W.
: i
,.:'-ioi.
'b1sach
, es)f
;
f
..o.i
i.d
;9
z
,t
0.
i k .
.'
ts
.'".
ii
iftdet
W- i
'dPr
(;:..:,;
''
( .. su i.'*, (eet
, fi.....
._
((eou_:.l
se.,
.i..'d 'j,,
l~. . :'P, ,..;
(bu~:t
,rfti
C,;
,
'n
.~:.t.t-f
,-, ,
f
:
IC
*
,!)?,,
:- t'i ....... j
.-
S
:::s
..
si.f
:lil
I
:¢
--
-83-
':i
_ tr e<
i.at..:,'
+ 4i._-.::[i
..................
ir
t.
',
;F;rr&
'"
'.*
....
.
t.nf
.
;
I$,
r ,-E(, , ,
,EEfi
, ;,, ;,; i
i .I- t 'i ; e
EFiT5
;?;Ixi- -; -I~~t.l·;.tt.
i
r iit.;
;;z~
- -;---.--- t~~~~~~~~~~~
i s et.~
.....
.
ir'i.,Z a;-.';, t~;
,''
', :'..e' .'''-',s:
'"*sl--------·--·ll--
---
·
-
--
-84-
Ir
s r-I
E
:. I
e
.
,.n~:,-7:-
~
411Z'
1
?7-_
-
i_.L,.'
:i
;;t;
.
+
;;
1
f
'.
rF5t-
t·
i
¶
.F .
rrSW_\;-
.-·
--
,
i '! ¢_1
..
-: .
Ii
1
:ci15r4''
.
.t .(t: ";-t.:
.F..
ii
"-"'.'
':
.'
'
<n,'.;
,;'---i
., I,.
,[_:tfc.-+
"
',,-' ''-:..=r ,r'.
i .:,s;
:,,_
_,t
_ ,-;'; tF:F r,,i.,-,,,u
(.,, .r:
i
. r
.'Frit
rrn
st
.
'
,
)
I'1in
intiri
: ,t
,i
.'oi-~il.tI-
'!
..':).'
1
ii': r ..
'-rir~f.
:
t;i· ?;.::
i
~;-
l_s_s
-·lllrC -----
__I--
'-,C-
I
.l4)
i, ,
i .'):
:
:I
I'
; '
;x --;:
i
(~-'~qt
5 r(tii.-'t
i ;:'r:5
-
'
...
"-..
;
---
--
4
;
I 1l / i .
P
7."
'7
I
-I i-
-i
,;.
-85-
'
,:.
E
Ix
p,.Z-
SA
('.Ad:,.]
["..-.F;Cd
(i:
q
X _
f.-
2
,'
,
L__
L'd·- T
( ?. nt
D'i
t.-
._
_
t
~
P.
55
bu
i---
r tt
':-. X,'.::
'i. ":..ra'* C]_ '-l
-,
-t
-----~
I.~
~ ~ ~~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ----
-86-
t: 4
J
(furI~~{..
·C
oin1.d
(t
I
- r. ~L i tv3. -er
,;
in-,r
(i n
X9;rr:-o
'tI=
r't
J
d
trtex
,"e
ciKt
.fr. "C¢'-V~
U(c
(f ,ff:f!
rf
CI
iCI
, Ii : I
ar.
·{- , '...t.~'
-i-.'.;
.'
-
(ist :
r
(tri
;V.- )
-4
-s
drs
.
(<i~$<r;;li
tr
U':-
' )
'
er
"'
, n't .,a
r,~-
.1.9
I_
';
d
- i;-;j, )
3
-Al, a
I-
-87-
·
~i· --
~.q~
,,.f~ rnF
.
I"
r : ,,'
.: ( ,t.c::.
- K
r
t'Sr,
,t'f
1 1 i,
::l
__
t ! ,;
! .r ' .- . !ri F=
i
.:t
r¢.- - Czi u-i :
',:
; .4re' ,
,' s - 1
ft
d ('
d(,fr..Uttrj7
f.
;-.rru¢'
,
_ig']7i
.
'-----ar-----r--3
l
ll.l
i,. i-
'7.
III----·-----·
i
?-*-r
+ i1i ,-r
**, ?.I ;
r,,; i'e
l_.X¢l
i•e(
d(8(
.
.
I
i 'eir. ,C(c;:..__
F \u,_ c.t
.,,r
,('j~r,:e
,'
,:!i;-l (C07;S
t~'rt
-,
! ?
'
f>
f..
^
)
Tor
tt ,z )
r.
i
4,
'.
..
*
ri'
,,i
i.
x ./~
--
---
..
·
-88-
17
'((:.::,
_t,
t i
s.
e
(
:rr':=:
",
.,;en
iti (:at lnil))))
rr~,
-¢~:t-i t:.r
!
it; F
(,.::
;:
et frf,isea.O
-
vfC
i)T
,
4
.
~--c>' e ) rure
' f: : '7 .-.4:P;r ,(x:e I,.I
u
".
ist
u!a
P -t
'
cr
_.).)
2...
.
Ice
( . . .,) E
'U<.s.
,
_
*
t_
,n>j{',,. (.f_'t'i
'r'ieri[:."s
Ss',i?-jlq
( i
: o,',,
s-:t')'llfri?-''
/
$.l i
I-
- (C'SP
?", ti-,:~,c
(I(st.~-··-'
t_7F'j
t F.
er'OP
j
So
..,if
1sk i.
i' .
tC t,
f~
(dF~f~s~i-is'';l,
...rt;'":)r·l
:a
--
:.
-~
7r1)
. ' nil))
.C. - ;i
r';
:
r,,.
lif-
t]
~"
=-CP--
---
--
---
·
-89-
!.
'r:.. ...hZ"
(..et,
?
*
Y
se..I
-t
:"~'i;.
xse;G
RruriHE7
u1e Zn.
S st~~hz)~~' ets)
(CL'.d (r
fLs~ist.
"-".,_,
(sete runfl~
If5.i:-1,
nil )
jm a . i c
=hLf.5@.
_ iti>W
ist
(i r
cum'e
'IJr
r ie:
i,
C
r
o
(SE+.3 PNOset-t t))))
''
' S Z8. )
f. c,.CA.S mrCur~f 1.s
(;P-utP.
)
Source
'derd
r'IC
Csetn(fl
O
1i
(t (.utproo source
q (..
Nrid re!r (ke
eitd (or (t
( bSt L,tl.:s
i
15 io
.s.;.h rsource))
rie~
'
s OU:TcE e e .'-Z
-?
c:.-
). '...) 0 ,)
'(stll~r
;!.
r1|nj .......
' z(~t"rs7
:-"4
(sero
'X ss~
s
;
li .'s4l3
-X
,,r
(
-orz
: ,"':;"
C
-
sli
tc . n-v
il
,;a-~
, ..
( ,
(c...
,
)
E-.
, i,
,eii;.--I
f-:n-'r :
(B~o
1..r. ti '.u:,
. --
.
J
Er.-
.
,-
(iJ,.::.
-:."r
::O';T~
Iz
r(X
.
:a,)
rI:ZrO.e
_~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,;iz
-90*at i
F.>i ,
~ ~ .2i
!~.~.
-~
l
;,
aar------
.
..
;
.
1
. ;! ,
}s
ij.
-I-.
L:·-· -;;··--;·----·-_---·- ·
I --·:---·- -:_----
-91-
g
r.
IiEt (IEj
"-'.(i-f'
.
#
;
e- :4
-.
... 1
.
;
~'..ii
Xx4
.,
(.r il .
*(- f i !.. ,t
c
- -r
t~ .i;....
,
f_~i:_I
w ;:
'R.
, I
7---------
1--·
-; ) ii -
-
fr
t
(',
-~
,
.
·,,e
(
r;
'-~· _ ·
.
.
.i. ..
..
,;..
.
'i
'r,{ r
.
\'.
i,
.
r;
...
.
.
~
;
..,or'.;
.'
. r.
~
s
;8,
,r,*s-t
't
:-fel_
-.. >v
11-·11le
·---------
---- I
------ra
--- --
-1-
--
x·-- ,m;
-92-
-- -.
Z,'.aPF'~:s
f, i, ..I
2
-.,p:
f.,
{,
1
s. Foi fnlrfil!
i'P'?
t
F' . f>'
{.,t~t*-l;-'';n
41~t
-.
(F
-PII
; . ) ,, l
-A
9.,gi3'
{'i-t'
av
I'~. -I5
r
T!t
sour(..S..,
*£- .
f
:
s
-
r
ist'))
,± ,h.
-(c-V
L
r'
sf'-'
r fl
(,b
,il sI )'S
,
S
- -·-·I
---
·-----
..
-93-
,,
:lkre (stn Ee i~l
,dfu
co3st,
~
(c!ism.
:.'t.bst nilt
t
t. (.
t . E, _
'4eC
nil
'sties))) ))
'rew)))
corn; ((e¢.l (cedr l)isti
(t rrs.uP .. :is't
(Iist. (f+(X 0) (X 1))
(X 1t)
i+$ (X2.,) ' 3,1
(X 3,)))
(set.a Xnr:
(set. Pnew
0. 01t
(list (+ (PIt
(71I. I ,)
(?' I 0)
(Pi 1.
r'* ,1
(P,
(
1ti
n t Li
1,')
(r
*
, 11
(PI1I:
))
(set.a P2iew
0. 0)
0, I,)
1. 0i)
1, 1.1))
0. 1.' (P2 I. I,))
1, 0.) (P2 1. 1,))
1.))
(list (+$ (P2
(P2
(P2
(P2
(+$ (P2
($s(P2
(P2 1
t (c;
(st3tco:s
list)
(subst nil
(list. Xnew
Flnew
P2,,,-,))))))
Xrw
p-ta list '.r Y) 0.0 (c=dr Y) 0,0))
'r:ews})'
t
F....,'iAt
f! I
z
('-tQ S: . 1li
( --.
E t'liStC-Y
(list
'lt (et. source 't ret) slist))
Et (>t s Urcs)
S e
,-
(to
,=.ic
tost
liston-)
(F'Ut;'~ sou.rce (Ubskt
·I_
__=
nil ril
C·
slistc.o.))
(listt
slltC¢~-) 'tmte5))
setistcics
a
(s,
L
_rll
-·-----··-·9------·--------
111 11-
-94:,e;.
i ,I
I
(- (c r
(X C',))
')
f, c.;..d
rY)
3-~
(,:.-d~
Y) (Y 2.))))
'defun re.uj. i
I(se
rr r .i
.r t
l)
r
'
.
.
..i ..t
J,
'
(•T(ind
'
'1
i 'f t c3.
4
-'I
-1
fetan
CC
(setG Xnew
r S P . .i))
(S ttU?
t
Xl
ub st
'-
.
.,
0 t;t(:i'
''tt
~v.
nov .°,0)
2
s't)
-$ (e{.s
g..'
'
iJkli{',ood),,-,f
, ,i
(seta ne~ (F.-.rId
a*aal---
i
ik
'l ! l-: ihccd
,
Ce tt '5 ' w.
''B-~!'4
e-ts..v. I,,
i
(s
ii . )}
S
';
(//$/jr. (exi
!
i ;
)I_
)
-'
Y)
.:)
uP ~
t-:t
'"-,fW
...
0 ~ )5
Xr-w Xh:l f))F.nzi
___
"t
'~sfls
I,
?),r
.*
-95-
i
r
I
~y
S.,
'''r,,i;'
'
ct
.
'.ca
(
' )
:;r
A)
C.FcEi2
,)
FcI
41~~~~~,r.I,0+
)
(list
I
) )
I
P!
(/1/ f
!*
11R
,
I OI
(i:- O
* ~ .)
I
Fc
-I
. r
(t (PCr , 0,)
"r 1" (+1c
1
$(<,'
O
,)
I (+$ ,Fc1 :,.
,
)))
, ,
I,
i.
..I
!.))I)
nil)))
ulpr~~~~~~~~~~--------~~~~~~~~~~~~~~~~~
-
-
-,
~
~
~
~
~
~
7F-
-"
-96-
¢
j- r 7 r-/ X
s
9
fi
r
-f'
<
t
*!/
197
~t
--.
t:J.
.?
,~
nf
3'c,''f:
It
c t r,
'. s
';
5_.JI ,S1 JI
oe
E't
-i f.i4-
"
.*:
4;
' _
'. '
i
(7i.:cl
i- . . 1
r.(I..
..
' . -+'
' '.r:,'neist)r
+ :i i
¢t:]'-Esh,.
t (+.
. -ys ,;:-,L ...
-_; ' ',,;... '-*'
'
Vc ... ,
.:r
,
i
'.
.,:i
t-"*~
';re.t))
(,-¢,
. -.r.r =. ,;- f
(ecel
'"~,1
i_.:
,,_
.:
( I i-+;...en'e Ir ,.ve'
__
II__IC_
__
z)
7
.
'
I ....t
4*7
n
_
_
__
-97-
"-*
'
i
F $i:
~
~
. m ' tc.r
t
2. i
t;
:,
+4;
"\ 5
_
u
,e r. c
_~S;'i
r
X(d
(1.
_ Nr , t
f
,~-.~..~,:
-
-
-t.:;',(c...'
---
t'u/ r!
..,
-
.1
.
t
rll.
es
t)
t>
t
.)
ist
in -od
-I,_
v
, t c. -.
f
czini1r,
''!
.-....
r*st ,r '
v
7S; .'.a
't~.~,ir?::! :
(( (,=..~'
d. [
: nu, t t?,(c
'
'?
)ri . r 9rt,e,
- -t
tit
t
,.'r
.,
t r So
f(1l(c
',j
A:
irE,.:.e)
) ;
.:
I
·_L__
-98-
,
":.:'.
r.,:.d:~.
~rt' ~= ,
s ,,,
~.,
IEV'j- Fewi
;; '.4'
: i·
I^r
..
~r-e
'b = '.
..
.~
-''
:t
,.r:
'C
'
'.--- h-'
sn - =
r
a.
,.-k r;:'' ' 't . i
t
t,
t
_a*
I
~-'
'
,;SeYT
. , t xl
~.,
.
i
'-u' C
li
..
. ll,.,
_ , )n)
. ,. ::=.
.......
(.",:- ~
i)
-pll-r·----r--nr··II(···IC-"··-·IP
;
-
'~:.
;c.-
_:st.:
,;,=, (~-'
't
Ve
i
i;~.
~~~~~~~~~~~~~~~~~~
-...
___. i-r
.5
.';
=,-*-e.)r
--a----
i-
-99-
G3/ 2'-3.?¢
LSF
(dI
r2r;
r,.l
.
7
?
t7'
_ici
r
'
_
i:;
1 -,r,;gl
(defurn CSF rni
(,~utr _
t;.r,
n.
, r.cr-'
- ri:,e
(~.,'i.-
;j
.C ff 'bOuc
¢'.,..
b.:
'
.ts)i,
-,
,r z
-C 5f._!T!
'~8;'er:.)
(sorr.
o r),.
(uer:d
.rc
(Futc
r.
1 .. t.
feer-rF:od' );
'
.o?. "' ... i k'1i
( e.
sb
ri, t
s t
I:
lf!:0;
'stte))
I.
,
1
11
, .
-i.....
, ,I
-
-
Op1P~rr:lF~
-100,3"
·.1-i.-.T
.
t:..?.- i'
a
:'!.
F ''
.:i,)
'. : *, U.1:
t
i
.. ·
i'1
(i
!i . t.
; i i.t,
. ).;.F
,-
a:
ni lo.::.;
( t)
ir. i.
(ut
r
rc,-.r Ic-, i.liet00 '1
(klImmr
ne csf
,
(
a
I
-------------·I----r·--
i .U d): )
...
r)
-.
(set,.list (sust
'buffcsfnil
t(uF-erd
s ) ':.:
..
,'~;rJ +.
;,+ 1
PA o(F
Ma, .9
ma.
i
il (!istecsf)
(et Ct
.('Jeeftc-nde
'F'i i,. .rrt..))
;-iu~c
~-,t._+.!!;,C¢,
,' t-rt
JFIij(
-ICiBQlsPa*Priri*1I·l--··slli
`
-101-
;''vsi.>.'-}Xt
ii
,I7',Z I~7
:.,i
' .---
t'-- "
Ii,
, `7r
',=f'?.,a'2§
1>r
,/;
9
I'72
ri'
4 J
FE!
......
'
''
...
IIa
Jt
,a-e :
'.
i;~R',
1-,,r-c..
':ii.
rli.
*-"
': .s.c..t.':
~:.w:
:
', l
,u U:.i..
tE ,(:'.::'.t
ril
'
';,:
(Crr,
(,
rr .,r..
'
!: tiltt·
1--3·--·-------·1·--·--11111111111
--·
llr
-
, 'r;.''
i:.'.':.;.¢,>
-i
*);)
..-u:t~6--irt
-
.. .J.i
t).Z 1s
p
'"'
;
·
.
- -----
E.
:, .-
--··lul^--"IIIPii- - --
.-·------ --·
_ _ I.
·
__
-102-
I
...
,g
-%
1:Q
i,,
_,
.
t E4.:
I ..I 11
I-,II IIm-., x.-
I.,. ,-iI.,
0I
.I
o";; .;; ;6
.I - . .- - ,
I I
, I.-
·.
-103-
~~*
E*,-'
' .,
W:t.~i:.~'
('ft±
i I.f..
.S.:
-^i-'-.
.'
.~
,"
:
r .
'
.I
/"" S.0
t,)
T
f r '".,;.* +-rn'"I; I
( .,i
ii?
_.J;s,'
:;-:!:.
IC.~,'J. I's','7i
P.t'
( e Ii '
4 ~!
7t
t
.
*
Z ,i
-i r
.t,
-
ff
t
(
s<<vwiS i~s~~
d
(f~t
11 t0 ,st _irw't
iA )r
t/ 'rX
(sFet u
(IVbd~
-.
l.-;n2eizS
"~)
t'.qci,
(*tXf:f
t-t'lf
f
r_- ;M i
~~~~~~~~~v~~~~~~~
.
i
i;-s!,
ii
f
"- ~~~.^....
-.- .~~~~~L--
·
P~~~~~~~~-
-104-
-:
ki
~
:.J1t _ re_,
J T' 1,;
.J
,
' _.t
I''r;i,
(......
F·!;
r ix i
s.
t
N.,,lu/
.
l
-?i
i o-,
.I J-
--
'l.:·"'
--i;
F i s!.
'i
t
!
frIiifr
f
i;
zi<tSf
_ii
'
n2~
'fJ
.-
j '
.
,a-
,:;.;.t(o
,'1c: /
.
r
t
r,
C(cr
In
pi.i
=
:.'
-ri
list')
t
-
r- , t;
,)
:'!,-_
fS '
^
i St . i Ji-i,
-'t:.,
ri--\
s ,i
L!
· /
4;
s.. ;<
,-
e'
(~,~F'c-:r
:=.:.-,
ofj s
''
'.~.ctl)
--..
f2:
ti.
<s,
1"93il
I
-
i'e-:s\
_t.1.t~r.:ne
r - : (cdr
t {,it~fdefu
`:,,l"l I
" .I;,
·
s
f~:,~E:+li~t)
,~"-n
* _
.
!...-
'.ful
.
- r,7-r
$
- C;
.-_2 _ p iBW*~
4.I..
c s * t"
'
;
C.A
.. . - V
ICT~
-ez;·7r.
Q,17,
l",-, .-
.
1>.i".'
.
;~i
t
2
7r
i z-
Z+ N
L' r''ef,)
c
'r
s-c~,_~
-i. a
.-
e
.nr-,~=, E-2i-' s-t)~-
; st
-
r .,3,
' b r~.n-2es..)C
,
3
,
;
;:W-i;
,,
-
- r
._.
-1
'
;
.......
c! -,
"hes
i
i
i 1
.:
.~-f
IS.
D
tLf"fi
- ,1
_
r
CI
:IC.
t
3
,I _ _
_a I _
I
- t,. .'
eC-I·--· -·
---I ·
i~~~DII--------a~~~~~~~~~~lLI~~~~IIII*I--·~~~~~~~~C--
~
~
~
~
~ ~
~ ~ ~ ~ ~ --
-105-
C .
i_;
.'. ;
/*- * @ ri .
.
1.-.J. .
.-....
'~l
,
:
-:
'
_ j,t
(e:t, :'.- --+
,
A
L
,,
,
'
L.
te
-
t
r-..
L%
se q
I
, >
i ~-
iI
', .
; i.
'
'r
Sr.
_..,
.
: :'C'6
O',i'.
J
)
*^
Cj ';
_
_8-
t
4-I
. !-
._-zj,
-
r.5:^t
/.
-
o.
;t
---
X8*-¢
:
t
CS r
%
-.
*.
*, *:
t
i
!
)_:
i .,
,
_ _
_·
__
-106-
* _r -
j'
I!..
_7
rr------·-------·I-··,-L-
-
_ X, . .
,-C--'
, "
Jt.; tJ .,,
,,
x'.
· -
,-!1 ,.- .
,_
I.,
-..
, 1
""
--C---
'e
--;--LILL--
'_L
r
1
-107-
f;'
t t'
i'e
C-
..1r
t
(
i
,,
.S.
.
/i-Wf ---,.
E -
.
?.-. _ . i; 3
"--'
- '
}
1
I ,-v.
': LT!,
....
,
,u (t . ., .
Z.
..
:'~
f
en
.e
'Ee, (;?n'i
) ), ,
s.)
(fi-i'.t
t ,'r
r:)C
Et -.t i
t)r
tr)
E
J
"
: t£
.;
t
s
e,,u,~ -r.'
-
-rso!,llt
J
'"J
(' I
I-T iC·'JJi~ .'))---
11111-
:,,,;,
.'~'r
- i-.4
r .
FrE-zI
.
,
.; r u
I
A
.
t (~t '~e-' cr-r'- :--
(tr
t,
E
;. i .4eta
( ,,:T.. '...
(t-;.t te.
is
(cori:Jd,;
(:.si
*
lis
i
t
J,'(7
.
',
t-':
E
.r
''i"
'
4..-4
;
'--
k'
t
.
e-;i
ts s t i l
., . c:-,t .E.:
E"'U ,
...
:-
*
i
-
...
'--
)
;
- --,
- --
..
1---
-lil·-""---*`-..'-"-Z-L-----..
.
-108-
(_f rr
:
$S"
t_ i;
-
r-I.:'
t ,. *: r
t-
-
: ,-r- . ^ i.
t :
.1
vr.
t.:f-:.
'
t
i
M
icit
;,,
'
f?
JZ L i4
ti
0//
_
1
:.J
-i.,
,t
':r r,
pt. .' n(i lst
F r;i
(c-iI 3
'
V'_'-
o nrr
,; ,
~~~-~~--~~9·r~~i-~~---:--
I1 I
s
? i*;t)
-, .-;:iL'. r,
'~~i
-
.t-V
.
f.:5j. ,.
8
cuul,.
.T-T.
ii'
,rr
rt
te
.
.t,
(j~tO
.'.
t,
:-.,
t .t
?;
E.
,; ..- i-.
:..
S ;,
't (c.,.:~/it
-
, ',sE
-
f-.fSt
r
,
r- - I
,..,,
--
·-
'
-
-
-
·-
--
.
-109-
'.efu!-4tl
f
-..
r
t.:.
t
c.09
i",
...
";
*"
-(t..'
n
t'
;s t~, ....i
.
.
' i
4
i
...
.
.J
r
r
; .L
; \ijj
,.5
'
;
r:
E
S
-r
Z
;
i Ii
±...
,
r
.4,C , tlz
- s
i r,
.rt.
1I1
*
2
t8
L;'
,riiF
.)
,r;-z3j'
W
C:
'~j '~
-.
^
..
.
I
+: ...
.
t
'
v.,.
9
t jE
t
- <^1t
1Stri
1_.'
,;aj,
r-
. e
: ...
~ 4.,ii·
- ,r
1,
i
_
.;
_'46!f;>
-t;t;;L
,,
C;~r J _l,
;
~ t *-,'i'
_,
-
t
. t.
.. ; ...
t
i'
4I
vkt Z t it' 'ei
;.T t
,l.! "--
t
ur,_.
J
.. _I_
r
`
'd:'i
....
(tr- "t
!'
i
:
'
'
E ;_
_
4 eI ..-e
.
~"'""'-d
-' ,|il)(j;,-t 'n(OS
/
.
Cs P
.!/d
it:v
j )
.\
/
)
-110'
.
L.
i _
Jr
<
<,--
.c; e_
I:tt
(t
ri
R--C----------"------I----Di·IIBslllR
i
l
_ ':.4irI
.-' s
's '
k7-ilPl,,) C'
f
_
i
r
'-
.;; i
blOL
l!
~.¢~., .;,^,·.
t
r-s.:,
i*d;
-ii··
;,d ~
T* -
Zt
r
:.- d
.;C
.
,; : r ) _
r lC-E
_
a ,r
'i
'.
n.
-e
, t*"'-... .. :.
d
. .;
.t
.
...
.)
),.
---I
--. -----------*--·1----·------------ I--al·-r-rsncsas.aa-r;l----i-----·
_I_
-111-
.
(P C'.,
SS?;'(:'
i..b
iP
>'j
e(t')),r
t
(in eiit
(dFfUr fr'"'i
e.ir
t
.
r
t
(:~]8
. ,r
,
71>7
'(OP5
,
r'
>: .i r,';:,'~,,;.~r)r
. . I .
ii
,
3
ij{
,
'"* ....'*'
l (-'t
o:
.
:..
_i.; , t'~ "
; r 2.^t.
(defu ri i i r e,- ,rf,
(.;,Pi
l'-
it I~i::itu},inii. 3ir.
-
i
P~C';
...
V:
.
z-,
·
it x:del srIdel)
line ('n it -iri
(alur
(stef- . >dr i
.''evl
.u
.t
xir, t
:.:'d./
sii t).:.e).
. (s
+ .t (s~.
(t-. ( ,_;ir·i
-, ;.,... ,~:
....
(·~':1 xi.rit) -~..
(.'o,3s
'iout
(sitO
(;t1 i ..t.
},;ji
,
,.
i- e1
irit)
¢
(Pr ci-_ oa)l
,t
i.
\,,o
-
1------
·I·--·
--
--
---
-
·
-112-
r
irt
-Z
u,itrt ;ir .
C(d
C
c;
F. . P
t 3
i .-
0. '·e'GOrn
(,ut~rc~
'hoo
. ;)).
;riPr,: f
(:_0 1.iklie
t ti
( -trir,
)
i
~,:C..;
r-
_i ?t
sPee
(in
,
_
r_i r,-,d~
'__:..r.
n.~
tf
' r'~ )l
i., ____
t.
(t. .u.".
('rin"Ft 'Chir,
(Pe
_
_
_
__
_
i
it :;~-ll li'"-rl
.C~~~
c.,~~
f~~i '
(
.
tle
fe 'iel :
i -!i's
tiCt
C r::'~'
.......
t(~e
5;Pr
tit P
te
iC}
(>') . (-'Pr,
l-i
St ,,-'.:·~·r
'tre'
0t
-~
Si.it.~ S,)
)
'u,
(;'s ]
·1111111111111111111111111111111111111
r
)i
'
-
- ...
I-
-113-
I
(b a 1r."L
iE e
D Ji-
F I''"f
u
.'i . '.,:i'.... t r-.,:i+. '
L.
F.;
t;
't.]
;
*-ir;'
+
i}.
.it, (_c :,-......
( t ~c~r:
'
(t
I..
(cfun
nttrcks nil
(sir, t
'+2+~~f~fSff.f'f++f++4f+f+
(se
t
, .e;
,
! i
Set-,trs.m'int
7'f+'r+-?f
,ff:)
r ..
''.. nil)
<.Rs . :, '.
(seta '"
It
r ill
,
( e.t ...-..
'
<set~ . ...
,
i.'..
s
'.
.(__t_____i_j
-114-
REFERENCES
1.
F.C. Schweppe, Uncertain Dynamic Systems, Prentice-Hall, Englewood
Cliffs, N.J., 1973.
2.
R.W. Sittler, "An Optimal Data Association Problem in Surveillance
Theory," IEEE Trans. Military Electronics, Vol. MIL-8, Apr. 1964,
pp. 125-139.
3.
C.L. Morefield, "Application of 0-1 Integer Programming to Multitarget
Tracking Problems," IEEE Trans. Automatic Control, Vol. AC-22, June
1977, pp. 302-311.
4.
D.B. Reid, A Multiple Hypothesis Filter for Tracking Multiple Targets
in a Cluttered Environment, LMSC Report D-560254, Sept. 1977.
5.
D.B. Reid, "An Algorithm for Tracking Multiple Targets," to appear.
6.
Y. Bar-Shalom and E. Tse, "Tracking in a Cluttered Environment with
Probabilistic Data Association," Automatica, Vol. 11, 1975, pp. 451-460.
7.
Y. Bar-Shalom, "Tracking Methods in a Multitarget Environment," IEEE
Trans. Automatic Control, Vol. AC-23, August 1978, pp. 618-626.
8.
M. Athans, R.H. Whiting, and M. Gruber, "A Suboptimal Estimation
Algorithm with Probabilistic Editing for False Measurements with
Applications to Target Tracking with Wake Phenomena," IEEE Trans.
Automatic Control, Vol. AC-22, pp. 372-384, June 1977.
9.
F.N. Bailey, "Comments on 'Application of 0-1 Integer Programming to
Multitarget Tracking Problems,' "
IEEE Trans. Automatic Control,
Vol. AC-24, Feb. 1979, pp. 142-143.
10.
R.R. Tenney, R.S. Hebbert, and N.R. Sandell, Jr., "A Tracking Filter
for Maneuvering Sources," IEEE Trans. on Automatic Control, Vol. AC-22,
pp. 246-261, April 1977.
11.
A.S. Willsky and HoL. Jones, "A Generalized Likelihood Ratio Approach
to the Detection and Estimation of Jumps in Linear Systems," IEEE
Trans. on Automatic Control, Vol. AC-21, pp. 108-112, Feb. 1976.
12.
D, Willner, Observation and Control of Partially Unknown Systems,
Report ESL-R-496, M.I.T. Electronic Systems Laboratory, May 1973,
13.
M.A. Athans and C.B. Chang, Adaptive Estimation and Parameter
Identification Using the Multiple Model Estimation Algorithm,
ESD-TR-76-184, M.I.T. Lincoln Laboratory, June 1976.
-115-
14.
M. Athans, et.al., "The Stochastic Control of the F-8C Aircraft Using
a Multiple Model Adaptive Control (MMAC) Method," IEEE Trans. on
Automatic Control, Vol. ACC-22, pp. 768-780, Oct. 1977.
15.
Y. Baram and N.R. Sandell, Jr., "Consistent Estimation of Finite
Parameter Sets with Application to Linear Systems Identification,"
IEEE Trans. on Automatic Control, Vol. AC-23, pp. 451-454, June 1978.
16.
C.S. Greene, An Analysis of the Multiple Model Adaptive Control
Algorithm, Report ESL-TH-843, Electronic Systems Laboratory, M.I.T.,
Aug. 1978.
17.
M. Athans et.al., Investigation of the Multiple Model Adaptive Control
(MMAC) Method for Flight Control _Systems, NASA Contractor Report 3089,
May 1979.
18.
Y. Baram, Information, Consistent Estimation and Dynamic System Identification, Report ESL-R-718, Electronic
Systems Laboratory, M.I.T.,
Nov. 1976.
19.
Y. Baram and N.R. Sandell, Jr., "An Information Theoretic Approach to
Dynamic System Modeling and Identification," IEEE Trans. on Automatic
Control, Vol. AC-23, pp. 61-66, Feb. 1968.
20.
N.R. Sandell, Jr. and K. Yared, Maximum Likelihood Identification of
State Space Models for Linear Dynamic Systems, Report ESL-R-814,
Electronic Systems Laboratory, M.I.T., April 1978.
21.
K.I. Yared, On Maximum Likelihood Identification of Linear State Space
Models, Report LIDS-TH-920, Laboratory for Information and Decision
Systems, MIT,, July 1979.
22.
A.S. Willsky, "A Survey of Design Methods for Failure Detection in
Dynamic Systems," Automatica, Vol. 12, pp. 601-611, Nov. 1976,
'p
23.
D.T. Magill, "Optimal Adaptive Estimation of Sampled Processes," IEEE
Trans. on Automatic Control, Vol. AC-10, pp. 434-439, Oct. 1965.
24.
P.H. Winston, Artificial Intelligence, Addison-Wesley, Reading, MA., 1977.
--
---
Download