A method and system for real-time tracking of objects is are disclosed. A region is repeatedly scanned providing a plurality of images or data sets having points corresponding to ojbects objects in the region to be tracked. Given a previously determined track for each object in the region, an M-dimensional combinatorial optimization assignment problem is formulated using the points from M-1 of the images or data sets, wherein each point is preferably used in extending at most one track. The M-dimensional problem is subsequently solved for an optimal or near-optimal assignment of the points to the tracks, extending the tracking of the objects so that a response to each object can be initiated by the system in real-time. Speed and accuracy is provided by an iterative Lagrangian Relaxation technique wherein a plurality of constraint dimensions are relaxed simultaneously to yield a reduced dimensional optimization problem whose solution is used to formulate an assignment problem of dimensionality less than M. The iterative reducing of dimensions terminates when exact solutions are determined for two-dimensional cases. A recovery procedure is used for determining a higher dimensional assignment problem solution from a problem having one less dimension. The procedure is useful when the reduced dimensional optimizational problem has two constraint dimensions.

Patent
   RE44807
Priority
Dec 21 1993
Filed
May 25 2001
Issued
Mar 18 2014
Expiry
Dec 21 2013
Assg.orig
Entity
unknown
4
3
EXPIRED
0. 2. A method for tracking a plurality of objects, comprising:
using remote scanning apparatus to repeatedly scan a region containing a set consisting of one or more moving objects and generating n sequential images or data sets of said region, a plurality of observations in said images or data sets providing positional information for objects in said set;
using a computer system to determine a plurality of tracks, at least one track for each object in said set;
using a computer system to determine a plurality of costs, wherein each cost is for assigning one of said observations to one of said tracks;
defining a linear programming problem:
Minimize i 1 …i n c i 1 i n z i 1 i n Subject to i 2 i 3 …i n z i 1 i n = 1 ( i 1 = 1 , , M 1 ) i 1 i 3 …i n z i 1 i n = 1 ( i 2 = 1 , , M 2 ) i 1 i p - 1 i p + 1 …i n z i 1 i n = 1           ( i p = 1 , , M p and p = 2 , , n - 1 ) i 1 i 2 …i n - 1 z i 1 i n = 1 ( i n = 1 , , M n )           0 z i 1 i n 1 for all i 1 , , i n ,
wherein each ci1 . . . iN is included in said plurality of costs, each Mi, i=1, . . . ,n, being one of: (a) a number of observations in an ith image or data set of said n sequential images or data sets; (b) a sum of a number of tracks in said plurality of tracks, and a number of said observations in the ith image or data set not assigned to one of said tracks; and (c) a number of tracks in said plurality of tracks;
using a computer system for solving said linear programming problem for values of zi1 . . . iN for each i1 . . . in;
using a computer system for determining a value zi1 . . . iN in {0,1} for each i1 . . . in corresponding to each zi1 . . . iN, wherein said values zi1 . . . iN provide an optimal or near optimal solution to said linear programming problem; and
using a computer system to determine which one or more of the following actions will be taken based on said optimal or near-optimal assignment of said plurality of points to said plurality of tracks;
sending a warning to aircraft or a ground or sea facility,
controlling air traffic,
controlling anti-aircraft or anti-missile equipment,
taking evasive action,
working on one of said one or more objects, and
surveilling one of said one or more objects.
0. 1. A method for tracking a plurality of objects, comprising:
repeatedly scanning a region containing a set consisting of one or more moving objects and generating n sequential images or data sets of said region, a plurality of observations in said images or data sets providing positional information for objects in said set;
determining a plurality of tracks, at least one track for each object in said set;
determining a plurality of costs, wherein each cost is for assigning one of said observations to one of said tracks;
defining a linear programming problem:
Minimize     i 1 i n c i 1 i n z i 1 i n Subject To     i 2 i 3 i n z i 1 i n = 1 , ( i 1 = 1 , , M 1 ) i 1 i 3 i n z i 1 i n = 1 , ( i 2 = 1 , , M 2 ) i 1 i p - 1 i p + 1 i n z i 1 i n = 1                   ( i p = 1 , , M p and p = 2 , , n - 1 ) i 1 i 2 i n - 1 z i 1 i n = 1 ( i n = 1 , , M n ) 0 z i 1 i n 1 for all i 1 , , i n ,
wherein each ci1 . . tn is included in said plurality of costs, each Mi, i=1, . . . ,n, being one of: (a) a number of observations in an ith image or data set of said n sequential images or data sets; (b) a sum of a number of tracks in said plurality of tracks, and a number of said observations in the ith image or data set not assigned to one of said tracks; and
(c) a number of tracks in said plurality of tracks;
solving said linear programming problem for values of zi1 . . . in for each i1 . . . iN;
determining a value z11 . . . in in {0,1} for each i1 . . . iN corresponding to each zij . . in, wherein said values zi1 . . . iN provide an optimal or near optimal solution to said linear programming problem;
taking one or more of the following actions based on said optimal or near-optimal assignment of said plurality of points to said plurality of tracks;
 sending a warning to aircraft or a ground or sea facility, controlling air traffic,
 controlling anti-aircraft or anti-missile equipment, taking evasive action,
 working on one of said one or more objects, surveilling one of said one or more objects.
0. 3. The method of claim 2, wherein the remote scanning apparatus for repeatedly scanning a region containing a set consisting of one or more moving objects comprises radar apparatus.
RELATED 3-dimensional[1.0]

2-dimensional
Consequently, the
This relationship means that either Φk

[ [ Ψ Ψ       Ψ k Ψ k u k Ψ k ] ]
determine the gradient of each Ψ
(where vT is the transpose of v),
is calculated as an estimate of ukj+1. To determine if the current step size is valid the we evaluate Ψk u3 uk−2u+ If the result represents an improvement then we double the step size. Otherwise we halve the step size. In either case a new u+ is calculated. The doubling or halving continues until the step becomes too large to improve the result, or until it becomes small enough to not degrade the result. The resulting suitable step size is saved with d as part of the subgradient bundle. The last acceptable u+ is assigned to ukj+1.

Three distinct M

For each dimension k=1M there exists a set of lists, with each list element being a pointer to a particular hypothesis:
Lki={pkj|kj=1, . . . , Nki}i=Nk,k=Mi=1,k=1
where Nki is Nki(
Γ is a discrete random element defined on Γ*, γ0 is a reference partition, and
respectively. In multisensor data fusion and multitarget tracking the data sets Z(k) may represent different classes of objects, and each data set can arise from different sensors. For track initiation the objects are measurements that must be partitioned into tracks and false alarms. In the formulation of track extensions a moving window over time of observations sets is used. The observation sets will be measurements which are: (a) assigned to existing tracks, (b) designated as false measurements, or (c) used for initiating tracks. However, note that alternative data objects instead of observation sets may also be fused such as in sensor level tracking wherein each sensor forms tracks from its own measurements and then the tracks from the sensors are fused in a central location. Note that, as one skilled in the art will appreciate, both embodiments of the present invention may be used for this type of data fusion.

The data assignment problem considered presently is represented as a case of set partitioning defined in the following way. First, for notational convenience in representing tracks, a zero index is added to each of the index sets in m<n<M[6.1][6.1]
If, in addition, wm is optimal for

With the exception of one equality being converted to an inequality, the following Fact is a converse of Fact A.2 and has also been shown to be true.

Fact A.3. Let wn be a feasible solution to problem
{circumflex over (Φ)}mn(um+1, . . . , un)−Σnk=m+1ΣMkik−oukik.

II.2.2. The Recovery Procedure

The next objective is to explain a recovery procedure or method for recovering a solution to the n-dimensional problem of [5.51]
where uok=0 for all k=m+1, . . . ,n. The evaluation of Φnmγm+1 n corresponding minimization problem
Furthermore,
Φm−1nγm m+1 n≧Φmnγn+1 n   
for all ukRMk+1 with uok=0 and k=m, . . . n.

Most of the procedures for non-smooth optimization are based on generalized gradients called subgradients, given by the following definition.


A vector qεδΦmnγ
The actual function value used in the optimization phase is
denote the set of assignable variables. Define an undirected graph G(N,A) where the set of nodes is
N={zinmin=1, . . . ,n; in=1, . . . , Nm}
and arcs,

Note that the nodes corresponding to zero index have not been Included in the above defined graph, since two variables that have only the zero index in common can be assigned independently. Connected components of the graph are then easily found by constructing a spanning forest via a depth first search. (A detailed algorithm can be found in the book by Aho, Hopcroft and Ullman cited above). Furthermore, this procedure is used at each level in the relaxation. i.e., is applied to each assignment problem
where ZN+1 represents N+1 data sets, γ
respectively. (The dummy report zok serves several purposes in the representation of missing data, false reports, initiating tracks, and terminating tracks
be an enumeration of all those zero-one variables in the solution of the assignment problem (3.5) (i.e., zi1i2 . . . iN+1=1) excluding all the false reports in the solution (i.e., all those zero-one variables with exactly one nonzero index) and zero-one variables in the solution for which (i1,i2)=(0,0). (The latter can correspond to tracks that initiate on frames three and higher.) These denote our initial tracks.

Consider only the first two index sets in this enumeration
with the following excpetions.

a. All

Then, for lk+1=1, . . . ,Lk+1, the 1lk+1th such track is denoted by {Tk+1(lk+1)={Tk(lk(lk+1)),zk+1ik+1(lk+1)} and the (N+1)-tuple {Tk+1(1k+1),zik+2k+2, . . . ,zlk+1+Nk+1+N} will denote a track Tk+1(1k+1) plus a set of reports {zlk+2k+2, . . . ,zik+1+Nk+1+N}, actual or dummy, that are feasible with the track Tk+1(1k+1). The (N+1)-tuple {Tk+1(0),zik+2k+2, . . . ,zik+1+Nk+1+N} will denote a track that initiates in the sliding window, i.e., on subsequent frames. A false report in the sliding window is one with all but one non-zero index ip for some p=k+2, . . . , k+1+N in the (N+1)-tuple {Tk+1(0),zik+2k+2, . . . ,zik+1+Nk+1+N}.

The corresponding hypothesis about a partition γεΓ* being true is now conditioned on the truth of the Lk+1 tracks existing at the beginning of the N-frame window. (Thus the assignments prior to this sliding window are fixed.) The likelihood function is given by

L l k + 1 i k + 2 i k + 1 + N = L T k + 1 ( l k + 1 ) L z i k + 2 k + 2 , , z i k + 1 + N k + 1 + N , L T k + 1 ( 0 ) = 1. ( [ [ 4.7 a ] ] 3.12 )
Next, define the cost and the zero-one variable by


where the index lk is used for an enumeration of those reports paired together. We also use the notation Tp,k(lk) to denote the sequence of reports belonging to track Tk(lk) but restricted to frames prior to and including p. Thus,
Tk(lk)=Tk,k(lk)
Tk(lk)={zi11(lk), . . . ,zipp(lk)}
Tk,k(lk)=Tp,k(lk)∪{zip+1p+1, . . . ,zik−1k−1(lk),zikk(lk)} for p≦k−1.  
Given this notation for the tracks and partition of the data in the frames {k−I, . . . ,k, . . . ,k+J}. LTp,k)lk) will denote the accumulated likelihood ratio up to and including frame p(p≦k) for a track that is declared as existing on frame k as a solution of the assignment problem. In this notation, the likelihood for Tp,k(lk) and that of the association of {zlk+1k+1, . . . , zlk+Nk+N} with track Tk(lk) is given by
Ltk(lk)=LTp,k(lk)Lip+1(lk) . ik(ik) for any p≦k−1,
LTk(lk)k+1 ik+N=LTpk(lk)Lip+1(lk) ik(ik)i+N for any p≦k−1,   
respectively.

The cost for the assignment of {klk+1k+1, . . . ,zlk+Nk+N} to track Tk(lk) and the corresponding
be an enumeration of the solution set of (3.5), i.e., those zero-one variables zi1(l2)i2(l2) . . . iN+1(l2)=1, including zOO . . . O=1 corresponding to l2=0, but excluding all those zero-one variables that are assigned to one and correspond to false reports (i.e.. there is exactly one nonzero index in the subscript of zi1i2 . . . iN+1), all those zero-one variables that are assigned to one and correspond to tracks that initiate on frames higher than I+2. Then we fix the data association decisions corresponding to the reports in our list of tracks prior to and including frame k+1=I+2. This defines the k for problem (4.4) and one can then continue the development by adding a frame to the window as in the general case.

If I+J>N, then one possibility is to start the process with N+1 frames, and assuming J≦N, proceed as before replacing I by N−J for the moment, and continue to add frames without lopping off the first frame in the window until reaches a window of length I+J+1. Then we proceed as in the previous paragraph.

If I+J<N, then one can solve the track initiation problem (3.5), formulate the problem with the center of the window at k+1=N+1−J, enumerate the solutions as above, and lop off the first N−J−I frames. Then, we proceed just as in the case I+J=N.

A primary objective in this work has been to demonstrate how multidimensional assignment problems arise in the tracking environment. The problem of track initiation and maintenance has been formulated within the framework of a moving window over the frames of data. The solution of these NP-hard, noisy, large scale, and sparse problems to the noise level in the problem is fundamental to superior track estimation and identification. Thus, one must utilize the special structure in the problems as well take advantage of special information that is available. Since these moving windows are overlapping, there are some algorithm efficiencies that can be identified and that take advantages of the overlap in the windows from one frame of reports to the next. Here is an example of the use of a primal solution of one problem to warm start the solution of the next problem in the sequence.


With this enumeration one can define the cost by
clk+1Jk+1+N=cik(ik+1),jk+1(lk+1), . . . , iN+1(jk+1)ik+1+N   
and the
where ZN represents N data sets. γ
respectively. In multisensor data fusion and multitarget tracking the data sets Z(k) may represent different classes of objects, and each data set can arise from different sensors. For track initiation the objects are measurements that must be partitioned into tracks and false alarms. In our formulation of track maintenance
with the following exceptions.


where the index lk is used for an enumeration of those reports paired together. We also use the notation Tp,k(lk) to denote the sequence of reports belonging to track Tk(lk) but restricted to frames prior to and including p. Thus,


Given this notation for the tracks and partition of the data in the frames {k−I, . . . ,k, . . . , k+J}. LTp,k(Ik) will denote the accumulated likelihood ratio up to and including frame p(p≦k) for a track that is declared as existing on frame k as a solution of the assignment problem. In this notation, the likelihood for T p,k(lk) and that of the association of {zik+1k+1, . . . ,zik+nk+N} with with track Tk(lk) is given by
be an enumeration of the solution set of (3.5), i.e., those zero-one variables zi1(l2)i2(l2) . . . iN+1(l2)=1, including zOO . . . O=1 corresponding to l2=0, but excluding all those zero-one variables that are assigned to one and correspond to false reports (i.e., there is exactly one nonzero index in the subscript of zi1i2 . . . iN+1), all those zero-one variables that are assigned to one and correspond to tracks that initiate on frames higher than I+2. Then we fix the data association decisions corresponding to the reports in our list of tracks prior to and including frame k+1=I+2. This defines the k for problem (4.4) and one can then continue the development by adding a frame to the window as in the general case.
With this enumeration one can define the cost by
and the two dimensional assignment problem
where ZN represents N data sets, γ of the data (and thus induces a partition of the data), Γγ
respectively. In multisensor data fusion and multitarget tracking the data sets Z(k) may represent different classes of objects, and each data set can arise from different sensors. For track initiation the objects are measurements that must be partitioned into tracks and false alarms. In our formulation of track maintenance, which uses a moving window over time, one data set will be tracks and remaining data sets will be measurements which are assigned to existing tracks, as false measurements, or to initiating tracks. In sensor level tracking, the objects to be fused are tracks. In centralized fusion, the objects may all be measurements that represent targets or false reports, and the problem is to determine which measurements emanate from a common source.4
If, in addition, w2 is optimal for the two-dimensional problem, then wN−k+1 is an optimal solution of the relaxed problem and ΦN−k+1(uk+2, . . . ,uN)={acute over (Φ)}−k+1(uk+2, . . . ,uN).
and
denote the objective function values of (4.8) and (4.10), respectively. Direct verification shows that wN−k+1 satisfies the constraints in (4.8) and
For the remainder of the proof, assume that w2 is optimal for (4.10). Let XN−k+1 satisfy the constraints in (4.8) and define

follows immediately from
for an optimal solution w2 of (4.10). With the exception of one equality being converted to an inequality, the following theorem is a converse of Theorem 4.1.


and
Proof: Let wN−k+1 and w2 be as in the hypotheses, and let φN−k+1(wN−k+1;uk+2, . . . ,uN) and {acute over (φ)}N−k+1(w2;uk+2, . . . ,uN) denote the objective function values of (4.8) and (4.10), respectively. Direct verification shows that w2 satisfies the constraints in (4.10) and


Most of the algorithms for nonsmooth optimization are based on generalized gradients, called subgradients, given by the following definition for a concave function.
Definition
where goop=0 are all permanently fixed. (Recall that these were used for notational conveience only.) A vector geε∂ΦN−k+1 is called a subgradient.

There is a large literature on such problems,
where gopop=uop=0 are all permanently fixed. (Recall that these were used for notational convenicence only.) A vector gε∂ΦN−k+1(u) is called
for m=2,k+1 and where (3.14)IV.3.5.
where (u3, . . . ,uN) is any multiplier value, (−3 . . . ,−NΔ maximizer of ΦNγ3 . . . , uN), −N multidimensional assignment problem
starts or multipliers close to the optimal are fundamentally important for real-time speed. The purpose of this section is to demonstrate that the multiplier set obtained at stage k≧1 provide good starting values for those obtained at step k+1. Theorem
where after the first step in the maximization of ΦN multipliers are not changed in the remaining steps. Furthermore, to improve this inequiality, let (u2+kN−k+1, . . . ,uN,N−k+1) denote a maximizer of ΦN−k+1(uk+2, . . . ,uN). Then we have

Φ N - k + 1 ( u k + 2 , , u N ) Φ N - k + 1 ( u 2 + k , N - k + 1 , , u N , N - k + 1 ) Φ N - k ( u 3 + k , N - k + 1 , , u N , N - k + 1 ) Φ N - k ( u 3 + k , N - k , , u N , N - k ) Φ 3 ( u N , 3 ) Φ 2 V N ( z ^ ) . ( 4.29 ) [ [ ( 3. xxx ) ] ]


where Φ2 γΔ is defined in (4.22).

To explain how to improve this inequality, let (u2+k,N−k+1, . . . , uN,N−k+1) denote a maximizer of ΦN−k+1(uk+2, . . . ,uN). Then by the same reasoning one has
where ΦN−k+1(uk+2, . . . ,uN) is defined by equation
is the desired inequality.

1. Step 2 is the computational part of the algorithm. Evaluating ΦN−k+1 search procedure requires 99% of the computing time in the algorithm. This part uses three dimensional
wi1i2i33=0 if i3≠j3 and (i1,i2)≠(0,0);
wooi33=1 if cooi33+ui33≦0;
wooi33=01 if cooi33+ui33>0.   
Then w3 is a feasible solution of the Lagrangian relaxed problem
woo2=1 if (i1,i2)=(00) and cooi33+ui33≦0 for some i3.
Then w2 is a feasible solution of the problem
Then the two-dimensional assignment problem that restores feasibility is

Minimize     l 2 = 0 L 2 i 3 = 0 M 3 c l 2 i 3 2 z l 2 i 3 2 Subject to     i 3 = 0 M 3 z l 2 i 3 2 = 1 , l 2 = 1 , , L 2 , l 2 = 0 L 2 z l 2 i 3 2 = 1 , i 3 = 1 , , M 3 , z l 2 i 3 2 { 0 , 1 } for all l 2 , i 3 . [ [ ( 5.14 ) ] ] ( 6.10 )

The next objective is to remove the assumption that all cost coefficients are defined and all zero-one variables are free to be assigned. We first note that the above construction of a reduced
where u3 is any multiplier value,
with the constraint
0≦zi1. . . iN≦1 for all i1, . . . iN   
Then, the problem
cij+ui1+uj2≧−ε for all (i,j)εA.

Forward Auction Algorithm

(1) Select any unassigned person i

(2) Determine the following quantities:
ji=arg min {cik+uk2|kεA(i)}
vi=clji+uji2
wi=min {cik+uk2|kεA(i), k≠ji}

In the selection of j1
βj=cijj+uij1
γj=min {ckj+uk1|kεB(j), k≠1j}

In the selection of ij, above, if a tie occurs between 0 and any non-zero index k, then select j, as k. Otherwise, if there is a tie between two or more non-zero indices, the choice of ji is arbitrary. Also if B(j) consists of only one element, then set γj ∞.

(3) Update the multipliers and the assignment:

    • If ij=0, then
    • (a) Add (0, j) to the assignment.
    • (b) Update uj2: =−cOj.
    • If ij≠0, then
    • (a) Add (ij,j) to the assignment.
    • (b) Remove (ij,j′) from the assignment if (ij,j) was previously assigned.
    • (c) Update ulj1: =ulj1+(γj−βj)+ε=γj−cij+ε.
    • (d) Update uj2: =−(cij+uij1)=−γj−ε.

Combined Forward/Reverse Auction Algorithm

1. Assume that u2 is given as an arbitrary multiplier.

2. Adjust the value of u2 for each object j as follows:
If cOj+uj2<0, then set uj2: =−cOj.

3. Run iterations of the Forward Auction Algorithm until all persons become assigned.

4. Run iterations of the Reverse Auction Algorithm until all of the objects become assigned.

Note at the completion of the Forward auction step we have the following conditions satisfied:

    • coj+uj2≧0 for all objects j.
    • cij+ui1+uj2=0 for all (i,j)εS.
    • cij+uj2kmin{cik+uk2} for all (i,j)εS.

Thus we can prove the following proposition.

Proposition: If we assume that coj+uj2≧0 at the start of the Forward Auction Algorithm and all of the persons are assigned via a forward step, then we have:
cij+ui1+uj2≧−ε for all (i,j)εA.
cij+ui1+uj2=0 for all (i,j)εS.
cij+uj2kmin{cik+uk2}+ε for all (i,j)εS.

Optimality of the Algorithm

Theorem: ε-CS preserved during every forward and reverse iteration.

Theorem: If a feasible solution exists, then the resulting solution is with mε of being optimal for the Combined Forward Reverse Algorithm.

Implementation Specifics

Parallelization

Here are but a few comments.

Although the algorithm appears to be serial in nature, its primary computational requirements are almost entirely parallelizable. Thus parallelization is planned.

Step 2 is the computational part of the algorithm. Evaluating ΦN−k+1 χχχ and computing a subgradient use in the search procedure requires 99% of the computing time in the algorithm. This part uses two dimensional two-dimensional assignment algorithms, a search over a large number of indices, and a nonsmooth optimization algorithm. It is the second part (the search) that consumes 99% of the computational time and this is almost entirely parallelizable. Indeed, there are two dimensional two-dimensional assignment solvers that are highly parallelizable. Thus, we need but parallelize the nonsmooth optimization solver to have a reasonably complete parallelization.

If a sensitivity analysis is desired or if one is interested in computing several near-optimal solutions, a parallel processor with a few powerful processors and good communication such as on the Intel Paragon would be most beneficial.

The foregoing discussion of the invention has been presented for purposes of illustration and description. Further, the description is not intended to limit the invention to the form disclosed herein. Consequently, variation and modification commensurate with the above teachings, within the skill and knowledge of the relevant art, are within the scope of the present invention. The embodiment described hereinabove is further intended to explain the best mode presently known of practicing the invention and to enable others skilled in the art to utilize the invention as such, or in other embodiments, and with the various modifications required by their particular application or use of the invention. It is intended that the appended claims be construed to include alternative embodiments of the invention to the extent permitted by the prior art.

Poore, Jr., Aubrey B.

Patent Priority Assignee Title
10310068, Dec 08 2014 Northrop Grumman Systems Corporation Variational track management
10782396, Dec 08 2014 Northrop Grumman Systems Corporation Variational track management
9291708, Mar 09 2012 Raytheon Company Multiple hypothesis tracking using maximum weight independent set
9864787, Jan 21 2015 Raytheon Company Parallel hypothesis formation for multiple hypotheses tracking
Patent Priority Assignee Title
5406289, May 18 1993 Lockheed Martin Corporation Method and system for tracking multiple regional objects
5537119, Dec 21 1993 Cornell Research Foundation, Inc Method and system for tracking multiple regional objects by multi-dimensional relaxation
5959574, Dec 21 1993 Colorado State University Research Foundation Method and system for tracking multiple regional objects by multi-dimensional relaxation
//
Executed onAssignorAssigneeConveyanceFrameReelDoc
Mar 10 1995POORE, AUBREY B , JR Colorado State University Research FoundationASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0311410066 pdf
May 25 2001Colorado State University Research Foundation(assignment on the face of the patent)
Date Maintenance Fee Events


Date Maintenance Schedule
Mar 18 20174 years fee payment window open
Sep 18 20176 months grace period start (w surcharge)
Mar 18 2018patent expiry (for year 4)
Mar 18 20202 years to revive unintentionally abandoned end. (for year 4)
Mar 18 20218 years fee payment window open
Sep 18 20216 months grace period start (w surcharge)
Mar 18 2022patent expiry (for year 8)
Mar 18 20242 years to revive unintentionally abandoned end. (for year 8)
Mar 18 202512 years fee payment window open
Sep 18 20256 months grace period start (w surcharge)
Mar 18 2026patent expiry (for year 12)
Mar 18 20282 years to revive unintentionally abandoned end. (for year 12)